<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />



<meta name="date" content="2022-01-14" />

<title>COVID-19 employment shock and second-tier safetynet</title>

<script src="data:application/javascript;base64,Ly8gUGFuZG9jIDIuOSBhZGRzIGF0dHJpYnV0ZXMgb24gYm90aCBoZWFkZXIgYW5kIGRpdi4gV2UgcmVtb3ZlIHRoZSBmb3JtZXIgKHRvCi8vIGJlIGNvbXBhdGlibGUgd2l0aCB0aGUgYmVoYXZpb3Igb2YgUGFuZG9jIDwgMi44KS4KZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsIGZ1bmN0aW9uKGUpIHsKICB2YXIgaHMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJkaXYuc2VjdGlvbltjbGFzcyo9J2xldmVsJ10gPiA6Zmlyc3QtY2hpbGQiKTsKICB2YXIgaSwgaCwgYTsKICBmb3IgKGkgPSAwOyBpIDwgaHMubGVuZ3RoOyBpKyspIHsKICAgIGggPSBoc1tpXTsKICAgIGlmICghL15oWzEtNl0kL2kudGVzdChoLnRhZ05hbWUpKSBjb250aW51ZTsgIC8vIGl0IHNob3VsZCBiZSBhIGhlYWRlciBoMS1oNgogICAgYSA9IGguYXR0cmlidXRlczsKICAgIHdoaWxlIChhLmxlbmd0aCA+IDApIGgucmVtb3ZlQXR0cmlidXRlKGFbMF0ubmFtZSk7CiAgfQp9KTsK"></script>
<script src="data:application/javascript;base64,LyohIGpRdWVyeSB2My41LjEgfCAoYykgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzIHwganF1ZXJ5Lm9yZy9saWNlbnNlICovCiFmdW5jdGlvbihlLHQpeyJ1c2Ugc3RyaWN0Ijsib2JqZWN0Ij09dHlwZW9mIG1vZHVsZSYmIm9iamVjdCI9PXR5cGVvZiBtb2R1bGUuZXhwb3J0cz9tb2R1bGUuZXhwb3J0cz1lLmRvY3VtZW50P3QoZSwhMCk6ZnVuY3Rpb24oZSl7aWYoIWUuZG9jdW1lbnQpdGhyb3cgbmV3IEVycm9yKCJqUXVlcnkgcmVxdWlyZXMgYSB3aW5kb3cgd2l0aCBhIGRvY3VtZW50Iik7cmV0dXJuIHQoZSl9OnQoZSl9KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp0aGlzLGZ1bmN0aW9uKEMsZSl7InVzZSBzdHJpY3QiO3ZhciB0PVtdLHI9T2JqZWN0LmdldFByb3RvdHlwZU9mLHM9dC5zbGljZSxnPXQuZmxhdD9mdW5jdGlvbihlKXtyZXR1cm4gdC5mbGF0LmNhbGwoZSl9OmZ1bmN0aW9uKGUpe3JldHVybiB0LmNvbmNhdC5hcHBseShbXSxlKX0sdT10LnB1c2gsaT10LmluZGV4T2Ysbj17fSxvPW4udG9TdHJpbmcsdj1uLmhhc093blByb3BlcnR5LGE9di50b1N0cmluZyxsPWEuY2FsbChPYmplY3QpLHk9e30sbT1mdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIm51bWJlciIhPXR5cGVvZiBlLm5vZGVUeXBlfSx4PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsIT1lJiZlPT09ZS53aW5kb3d9LEU9Qy5kb2N1bWVudCxjPXt0eXBlOiEwLHNyYzohMCxub25jZTohMCxub01vZHVsZTohMH07ZnVuY3Rpb24gYihlLHQsbil7dmFyIHIsaSxvPShuPW58fEUpLmNyZWF0ZUVsZW1lbnQoInNjcmlwdCIpO2lmKG8udGV4dD1lLHQpZm9yKHIgaW4gYykoaT10W3JdfHx0LmdldEF0dHJpYnV0ZSYmdC5nZXRBdHRyaWJ1dGUocikpJiZvLnNldEF0dHJpYnV0ZShyLGkpO24uaGVhZC5hcHBlbmRDaGlsZChvKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pfWZ1bmN0aW9uIHcoZSl7cmV0dXJuIG51bGw9PWU/ZSsiIjoib2JqZWN0Ij09dHlwZW9mIGV8fCJmdW5jdGlvbiI9PXR5cGVvZiBlP25bby5jYWxsKGUpXXx8Im9iamVjdCI6dHlwZW9mIGV9dmFyIGY9IjMuNS4xIixTPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIG5ldyBTLmZuLmluaXQoZSx0KX07ZnVuY3Rpb24gcChlKXt2YXIgdD0hIWUmJiJsZW5ndGgiaW4gZSYmZS5sZW5ndGgsbj13KGUpO3JldHVybiFtKGUpJiYheChlKSYmKCJhcnJheSI9PT1ufHwwPT09dHx8Im51bWJlciI9PXR5cGVvZiB0JiYwPHQmJnQtMSBpbiBlKX1TLmZuPVMucHJvdG90eXBlPXtqcXVlcnk6Zixjb25zdHJ1Y3RvcjpTLGxlbmd0aDowLHRvQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gcy5jYWxsKHRoaXMpfSxnZXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/cy5jYWxsKHRoaXMpOmU8MD90aGlzW2UrdGhpcy5sZW5ndGhdOnRoaXNbZV19LHB1c2hTdGFjazpmdW5jdGlvbihlKXt2YXIgdD1TLm1lcmdlKHRoaXMuY29uc3RydWN0b3IoKSxlKTtyZXR1cm4gdC5wcmV2T2JqZWN0PXRoaXMsdH0sZWFjaDpmdW5jdGlvbihlKXtyZXR1cm4gUy5lYWNoKHRoaXMsZSl9LG1hcDpmdW5jdGlvbihuKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5tYXAodGhpcyxmdW5jdGlvbihlLHQpe3JldHVybiBuLmNhbGwoZSx0LGUpfSkpfSxzbGljZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnB1c2hTdGFjayhzLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LGZpcnN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZXEoMCl9LGxhc3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lcSgtMSl9LGV2ZW46ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4odCsxKSUyfSkpfSxvZGQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wdXNoU3RhY2soUy5ncmVwKHRoaXMsZnVuY3Rpb24oZSx0KXtyZXR1cm4gdCUyfSkpfSxlcTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmxlbmd0aCxuPStlKyhlPDA/dDowKTtyZXR1cm4gdGhpcy5wdXNoU3RhY2soMDw9biYmbjx0P1t0aGlzW25dXTpbXSl9LGVuZDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnByZXZPYmplY3R8fHRoaXMuY29uc3RydWN0b3IoKX0scHVzaDp1LHNvcnQ6dC5zb3J0LHNwbGljZTp0LnNwbGljZX0sUy5leHRlbmQ9Uy5mbi5leHRlbmQ9ZnVuY3Rpb24oKXt2YXIgZSx0LG4scixpLG8sYT1hcmd1bWVudHNbMF18fHt9LHM9MSx1PWFyZ3VtZW50cy5sZW5ndGgsbD0hMTtmb3IoImJvb2xlYW4iPT10eXBlb2YgYSYmKGw9YSxhPWFyZ3VtZW50c1tzXXx8e30scysrKSwib2JqZWN0Ij09dHlwZW9mIGF8fG0oYSl8fChhPXt9KSxzPT09dSYmKGE9dGhpcyxzLS0pO3M8dTtzKyspaWYobnVsbCE9KGU9YXJndW1lbnRzW3NdKSlmb3IodCBpbiBlKXI9ZVt0XSwiX19wcm90b19fIiE9PXQmJmEhPT1yJiYobCYmciYmKFMuaXNQbGFpbk9iamVjdChyKXx8KGk9QXJyYXkuaXNBcnJheShyKSkpPyhuPWFbdF0sbz1pJiYhQXJyYXkuaXNBcnJheShuKT9bXTppfHxTLmlzUGxhaW5PYmplY3Qobik/bjp7fSxpPSExLGFbdF09Uy5leHRlbmQobCxvLHIpKTp2b2lkIDAhPT1yJiYoYVt0XT1yKSk7cmV0dXJuIGF9LFMuZXh0ZW5kKHtleHBhbmRvOiJqUXVlcnkiKyhmK01hdGgucmFuZG9tKCkpLnJlcGxhY2UoL1xEL2csIiIpLGlzUmVhZHk6ITAsZXJyb3I6ZnVuY3Rpb24oZSl7dGhyb3cgbmV3IEVycm9yKGUpfSxub29wOmZ1bmN0aW9uKCl7fSxpc1BsYWluT2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0LG47cmV0dXJuISghZXx8IltvYmplY3QgT2JqZWN0XSIhPT1vLmNhbGwoZSkpJiYoISh0PXIoZSkpfHwiZnVuY3Rpb24iPT10eXBlb2Yobj12LmNhbGwodCwiY29uc3RydWN0b3IiKSYmdC5jb25zdHJ1Y3RvcikmJmEuY2FsbChuKT09PWwpfSxpc0VtcHR5T2JqZWN0OmZ1bmN0aW9uKGUpe3ZhciB0O2Zvcih0IGluIGUpcmV0dXJuITE7cmV0dXJuITB9LGdsb2JhbEV2YWw6ZnVuY3Rpb24oZSx0LG4pe2IoZSx7bm9uY2U6dCYmdC5ub25jZX0sbil9LGVhY2g6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTA7aWYocChlKSl7Zm9yKG49ZS5sZW5ndGg7cjxuO3IrKylpZighMT09PXQuY2FsbChlW3JdLHIsZVtyXSkpYnJlYWt9ZWxzZSBmb3IociBpbiBlKWlmKCExPT09dC5jYWxsKGVbcl0scixlW3JdKSlicmVhaztyZXR1cm4gZX0sbWFrZUFycmF5OmZ1bmN0aW9uKGUsdCl7dmFyIG49dHx8W107cmV0dXJuIG51bGwhPWUmJihwKE9iamVjdChlKSk/Uy5tZXJnZShuLCJzdHJpbmciPT10eXBlb2YgZT9bZV06ZSk6dS5jYWxsKG4sZSkpLG59LGluQXJyYXk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBudWxsPT10Py0xOmkuY2FsbCh0LGUsbil9LG1lcmdlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPSt0Lmxlbmd0aCxyPTAsaT1lLmxlbmd0aDtyPG47cisrKWVbaSsrXT10W3JdO3JldHVybiBlLmxlbmd0aD1pLGV9LGdyZXA6ZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1bXSxpPTAsbz1lLmxlbmd0aCxhPSFuO2k8bztpKyspIXQoZVtpXSxpKSE9PWEmJnIucHVzaChlW2ldKTtyZXR1cm4gcn0sbWFwOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89MCxhPVtdO2lmKHAoZSkpZm9yKHI9ZS5sZW5ndGg7bzxyO28rKyludWxsIT0oaT10KGVbb10sbyxuKSkmJmEucHVzaChpKTtlbHNlIGZvcihvIGluIGUpbnVsbCE9KGk9dChlW29dLG8sbikpJiZhLnB1c2goaSk7cmV0dXJuIGcoYSl9LGd1aWQ6MSxzdXBwb3J0Onl9KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoUy5mbltTeW1ib2wuaXRlcmF0b3JdPXRbU3ltYm9sLml0ZXJhdG9yXSksUy5lYWNoKCJCb29sZWFuIE51bWJlciBTdHJpbmcgRnVuY3Rpb24gQXJyYXkgRGF0ZSBSZWdFeHAgT2JqZWN0IEVycm9yIFN5bWJvbCIuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe25bIltvYmplY3QgIit0KyJdIl09dC50b0xvd2VyQ2FzZSgpfSk7dmFyIGQ9ZnVuY3Rpb24obil7dmFyIGUsZCxiLG8saSxoLGYsZyx3LHUsbCxULEMsYSxFLHYscyxjLHksUz0ic2l6emxlIisxKm5ldyBEYXRlLHA9bi5kb2N1bWVudCxrPTAscj0wLG09dWUoKSx4PXVlKCksQT11ZSgpLE49dWUoKSxEPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIGU9PT10JiYobD0hMCksMH0saj17fS5oYXNPd25Qcm9wZXJ0eSx0PVtdLHE9dC5wb3AsTD10LnB1c2gsSD10LnB1c2gsTz10LnNsaWNlLFA9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49MCxyPWUubGVuZ3RoO248cjtuKyspaWYoZVtuXT09PXQpcmV0dXJuIG47cmV0dXJuLTF9LFI9ImNoZWNrZWR8c2VsZWN0ZWR8YXN5bmN8YXV0b2ZvY3VzfGF1dG9wbGF5fGNvbnRyb2xzfGRlZmVyfGRpc2FibGVkfGhpZGRlbnxpc21hcHxsb29wfG11bHRpcGxlfG9wZW58cmVhZG9ubHl8cmVxdWlyZWR8c2NvcGVkIixNPSJbXFx4MjBcXHRcXHJcXG5cXGZdIixJPSIoPzpcXFxcW1xcZGEtZkEtRl17MSw2fSIrTSsiP3xcXFxcW15cXHJcXG5cXGZdfFtcXHctXXxbXlwwLVxceDdmXSkrIixXPSJcXFsiK00rIiooIitJKyIpKD86IitNKyIqKFsqXiR8IX5dPz0pIitNKyIqKD86JygoPzpcXFxcLnxbXlxcXFwnXSkqKSd8XCIoKD86XFxcXC58W15cXFxcXCJdKSopXCJ8KCIrSSsiKSl8KSIrTSsiKlxcXSIsRj0iOigiK0krIikoPzpcXCgoKCcoKD86XFxcXC58W15cXFxcJ10pKiknfFwiKCg/OlxcXFwufFteXFxcXFwiXSkqKVwiKXwoKD86XFxcXC58W15cXFxcKClbXFxdXXwiK1crIikqKXwuKilcXCl8KSIsQj1uZXcgUmVnRXhwKE0rIisiLCJnIiksJD1uZXcgUmVnRXhwKCJeIitNKyIrfCgoPzpefFteXFxcXF0pKD86XFxcXC4pKikiK00rIiskIiwiZyIpLF89bmV3IFJlZ0V4cCgiXiIrTSsiKiwiK00rIioiKSx6PW5ldyBSZWdFeHAoIl4iK00rIiooWz4rfl18IitNKyIpIitNKyIqIiksVT1uZXcgUmVnRXhwKE0rInw+IiksWD1uZXcgUmVnRXhwKEYpLFY9bmV3IFJlZ0V4cCgiXiIrSSsiJCIpLEc9e0lEOm5ldyBSZWdFeHAoIl4jKCIrSSsiKSIpLENMQVNTOm5ldyBSZWdFeHAoIl5cXC4oIitJKyIpIiksVEFHOm5ldyBSZWdFeHAoIl4oIitJKyJ8WypdKSIpLEFUVFI6bmV3IFJlZ0V4cCgiXiIrVyksUFNFVURPOm5ldyBSZWdFeHAoIl4iK0YpLENISUxEOm5ldyBSZWdFeHAoIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcKCIrTSsiKihldmVufG9kZHwoKFsrLV18KShcXGQqKW58KSIrTSsiKig/OihbKy1dfCkiK00rIiooXFxkKyl8KSkiK00rIipcXCl8KSIsImkiKSxib29sOm5ldyBSZWdFeHAoIl4oPzoiK1IrIikkIiwiaSIpLG5lZWRzQ29udGV4dDpuZXcgUmVnRXhwKCJeIitNKyIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXCgiK00rIiooKD86LVxcZCk/XFxkKikiK00rIipcXCl8KSg/PVteLV18JCkiLCJpIil9LFk9L0hUTUwkL2ksUT0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLEo9L15oXGQkL2ksSz0vXltee10rXHtccypcW25hdGl2ZSBcdy8sWj0vXig/OiMoW1x3LV0rKXwoXHcrKXxcLihbXHctXSspKSQvLGVlPS9bK35dLyx0ZT1uZXcgUmVnRXhwKCJcXFxcW1xcZGEtZkEtRl17MSw2fSIrTSsiP3xcXFxcKFteXFxyXFxuXFxmXSkiLCJnIiksbmU9ZnVuY3Rpb24oZSx0KXt2YXIgbj0iMHgiK2Uuc2xpY2UoMSktNjU1MzY7cmV0dXJuIHR8fChuPDA/U3RyaW5nLmZyb21DaGFyQ29kZShuKzY1NTM2KTpTdHJpbmcuZnJvbUNoYXJDb2RlKG4+PjEwfDU1Mjk2LDEwMjMmbnw1NjMyMCkpfSxyZT0vKFtcMC1ceDFmXHg3Zl18Xi0/XGQpfF4tJHxbXlwwLVx4MWZceDdmLVx1RkZGRlx3LV0vZyxpZT1mdW5jdGlvbihlLHQpe3JldHVybiB0PyJcMCI9PT1lPyJcdWZmZmQiOmUuc2xpY2UoMCwtMSkrIlxcIitlLmNoYXJDb2RlQXQoZS5sZW5ndGgtMSkudG9TdHJpbmcoMTYpKyIgIjoiXFwiK2V9LG9lPWZ1bmN0aW9uKCl7VCgpfSxhZT1iZShmdW5jdGlvbihlKXtyZXR1cm4hMD09PWUuZGlzYWJsZWQmJiJmaWVsZHNldCI9PT1lLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCl9LHtkaXI6InBhcmVudE5vZGUiLG5leHQ6ImxlZ2VuZCJ9KTt0cnl7SC5hcHBseSh0PU8uY2FsbChwLmNoaWxkTm9kZXMpLHAuY2hpbGROb2RlcyksdFtwLmNoaWxkTm9kZXMubGVuZ3RoXS5ub2RlVHlwZX1jYXRjaChlKXtIPXthcHBseTp0Lmxlbmd0aD9mdW5jdGlvbihlLHQpe0wuYXBwbHkoZSxPLmNhbGwodCkpfTpmdW5jdGlvbihlLHQpe3ZhciBuPWUubGVuZ3RoLHI9MDt3aGlsZShlW24rK109dFtyKytdKTtlLmxlbmd0aD1uLTF9fX1mdW5jdGlvbiBzZSh0LGUsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmPWUmJmUub3duZXJEb2N1bWVudCxwPWU/ZS5ub2RlVHlwZTo5O2lmKG49bnx8W10sInN0cmluZyIhPXR5cGVvZiB0fHwhdHx8MSE9PXAmJjkhPT1wJiYxMSE9PXApcmV0dXJuIG47aWYoIXImJihUKGUpLGU9ZXx8QyxFKSl7aWYoMTEhPT1wJiYodT1aLmV4ZWModCkpKWlmKGk9dVsxXSl7aWYoOT09PXApe2lmKCEoYT1lLmdldEVsZW1lbnRCeUlkKGkpKSlyZXR1cm4gbjtpZihhLmlkPT09aSlyZXR1cm4gbi5wdXNoKGEpLG59ZWxzZSBpZihmJiYoYT1mLmdldEVsZW1lbnRCeUlkKGkpKSYmeShlLGEpJiZhLmlkPT09aSlyZXR1cm4gbi5wdXNoKGEpLG59ZWxzZXtpZih1WzJdKXJldHVybiBILmFwcGx5KG4sZS5nZXRFbGVtZW50c0J5VGFnTmFtZSh0KSksbjtpZigoaT11WzNdKSYmZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lJiZlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpcmV0dXJuIEguYXBwbHkobixlLmdldEVsZW1lbnRzQnlDbGFzc05hbWUoaSkpLG59aWYoZC5xc2EmJiFOW3QrIiAiXSYmKCF2fHwhdi50ZXN0KHQpKSYmKDEhPT1wfHwib2JqZWN0IiE9PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkpe2lmKGM9dCxmPWUsMT09PXAmJihVLnRlc3QodCl8fHoudGVzdCh0KSkpeyhmPWVlLnRlc3QodCkmJnllKGUucGFyZW50Tm9kZSl8fGUpPT09ZSYmZC5zY29wZXx8KChzPWUuZ2V0QXR0cmlidXRlKCJpZCIpKT9zPXMucmVwbGFjZShyZSxpZSk6ZS5zZXRBdHRyaWJ1dGUoImlkIixzPVMpKSxvPShsPWgodCkpLmxlbmd0aDt3aGlsZShvLS0pbFtvXT0ocz8iIyIrczoiOnNjb3BlIikrIiAiK3hlKGxbb10pO2M9bC5qb2luKCIsIil9dHJ5e3JldHVybiBILmFwcGx5KG4sZi5xdWVyeVNlbGVjdG9yQWxsKGMpKSxufWNhdGNoKGUpe04odCwhMCl9ZmluYWxseXtzPT09UyYmZS5yZW1vdmVBdHRyaWJ1dGUoImlkIil9fX1yZXR1cm4gZyh0LnJlcGxhY2UoJCwiJDEiKSxlLG4scil9ZnVuY3Rpb24gdWUoKXt2YXIgcj1bXTtyZXR1cm4gZnVuY3Rpb24gZSh0LG4pe3JldHVybiByLnB1c2godCsiICIpPmIuY2FjaGVMZW5ndGgmJmRlbGV0ZSBlW3Iuc2hpZnQoKV0sZVt0KyIgIl09bn19ZnVuY3Rpb24gbGUoZSl7cmV0dXJuIGVbU109ITAsZX1mdW5jdGlvbiBjZShlKXt2YXIgdD1DLmNyZWF0ZUVsZW1lbnQoImZpZWxkc2V0Iik7dHJ5e3JldHVybiEhZSh0KX1jYXRjaChlKXtyZXR1cm4hMX1maW5hbGx5e3QucGFyZW50Tm9kZSYmdC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHQpLHQ9bnVsbH19ZnVuY3Rpb24gZmUoZSx0KXt2YXIgbj1lLnNwbGl0KCJ8Iikscj1uLmxlbmd0aDt3aGlsZShyLS0pYi5hdHRySGFuZGxlW25bcl1dPXR9ZnVuY3Rpb24gcGUoZSx0KXt2YXIgbj10JiZlLHI9biYmMT09PWUubm9kZVR5cGUmJjE9PT10Lm5vZGVUeXBlJiZlLnNvdXJjZUluZGV4LXQuc291cmNlSW5kZXg7aWYocilyZXR1cm4gcjtpZihuKXdoaWxlKG49bi5uZXh0U2libGluZylpZihuPT09dClyZXR1cm4tMTtyZXR1cm4gZT8xOi0xfWZ1bmN0aW9uIGRlKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiZlLnR5cGU9PT10fX1mdW5jdGlvbiBoZShuKXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHQ9ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO3JldHVybigiaW5wdXQiPT09dHx8ImJ1dHRvbiI9PT10KSYmZS50eXBlPT09bn19ZnVuY3Rpb24gZ2UodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiJmb3JtImluIGU/ZS5wYXJlbnROb2RlJiYhMT09PWUuZGlzYWJsZWQ/ImxhYmVsImluIGU/ImxhYmVsImluIGUucGFyZW50Tm9kZT9lLnBhcmVudE5vZGUuZGlzYWJsZWQ9PT10OmUuZGlzYWJsZWQ9PT10OmUuaXNEaXNhYmxlZD09PXR8fGUuaXNEaXNhYmxlZCE9PSF0JiZhZShlKT09PXQ6ZS5kaXNhYmxlZD09PXQ6ImxhYmVsImluIGUmJmUuZGlzYWJsZWQ9PT10fX1mdW5jdGlvbiB2ZShhKXtyZXR1cm4gbGUoZnVuY3Rpb24obyl7cmV0dXJuIG89K28sbGUoZnVuY3Rpb24oZSx0KXt2YXIgbixyPWEoW10sZS5sZW5ndGgsbyksaT1yLmxlbmd0aDt3aGlsZShpLS0pZVtuPXJbaV1dJiYoZVtuXT0hKHRbbl09ZVtuXSkpfSl9KX1mdW5jdGlvbiB5ZShlKXtyZXR1cm4gZSYmInVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lJiZlfWZvcihlIGluIGQ9c2Uuc3VwcG9ydD17fSxpPXNlLmlzWE1MPWZ1bmN0aW9uKGUpe3ZhciB0PWUubmFtZXNwYWNlVVJJLG49KGUub3duZXJEb2N1bWVudHx8ZSkuZG9jdW1lbnRFbGVtZW50O3JldHVybiFZLnRlc3QodHx8biYmbi5ub2RlTmFtZXx8IkhUTUwiKX0sVD1zZS5zZXREb2N1bWVudD1mdW5jdGlvbihlKXt2YXIgdCxuLHI9ZT9lLm93bmVyRG9jdW1lbnR8fGU6cDtyZXR1cm4gciE9QyYmOT09PXIubm9kZVR5cGUmJnIuZG9jdW1lbnRFbGVtZW50JiYoYT0oQz1yKS5kb2N1bWVudEVsZW1lbnQsRT0haShDKSxwIT1DJiYobj1DLmRlZmF1bHRWaWV3KSYmbi50b3AhPT1uJiYobi5hZGRFdmVudExpc3RlbmVyP24uYWRkRXZlbnRMaXN0ZW5lcigidW5sb2FkIixvZSwhMSk6bi5hdHRhY2hFdmVudCYmbi5hdHRhY2hFdmVudCgib251bmxvYWQiLG9lKSksZC5zY29wZT1jZShmdW5jdGlvbihlKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZChDLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSwidW5kZWZpbmVkIiE9dHlwZW9mIGUucXVlcnlTZWxlY3RvckFsbCYmIWUucXVlcnlTZWxlY3RvckFsbCgiOnNjb3BlIGZpZWxkc2V0IGRpdiIpLmxlbmd0aH0pLGQuYXR0cmlidXRlcz1jZShmdW5jdGlvbihlKXtyZXR1cm4gZS5jbGFzc05hbWU9ImkiLCFlLmdldEF0dHJpYnV0ZSgiY2xhc3NOYW1lIil9KSxkLmdldEVsZW1lbnRzQnlUYWdOYW1lPWNlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmFwcGVuZENoaWxkKEMuY3JlYXRlQ29tbWVudCgiIikpLCFlLmdldEVsZW1lbnRzQnlUYWdOYW1lKCIqIikubGVuZ3RofSksZC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lPUsudGVzdChDLmdldEVsZW1lbnRzQnlDbGFzc05hbWUpLGQuZ2V0QnlJZD1jZShmdW5jdGlvbihlKXtyZXR1cm4gYS5hcHBlbmRDaGlsZChlKS5pZD1TLCFDLmdldEVsZW1lbnRzQnlOYW1lfHwhQy5nZXRFbGVtZW50c0J5TmFtZShTKS5sZW5ndGh9KSxkLmdldEJ5SWQ/KGIuZmlsdGVyLklEPWZ1bmN0aW9uKGUpe3ZhciB0PWUucmVwbGFjZSh0ZSxuZSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlLmdldEF0dHJpYnV0ZSgiaWQiKT09PXR9fSxiLmZpbmQuSUQ9ZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudEJ5SWQmJkUpe3ZhciBuPXQuZ2V0RWxlbWVudEJ5SWQoZSk7cmV0dXJuIG4/W25dOltdfX0pOihiLmZpbHRlci5JRD1mdW5jdGlvbihlKXt2YXIgbj1lLnJlcGxhY2UodGUsbmUpO3JldHVybiBmdW5jdGlvbihlKXt2YXIgdD0idW5kZWZpbmVkIiE9dHlwZW9mIGUuZ2V0QXR0cmlidXRlTm9kZSYmZS5nZXRBdHRyaWJ1dGVOb2RlKCJpZCIpO3JldHVybiB0JiZ0LnZhbHVlPT09bn19LGIuZmluZC5JRD1mdW5jdGlvbihlLHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgdC5nZXRFbGVtZW50QnlJZCYmRSl7dmFyIG4scixpLG89dC5nZXRFbGVtZW50QnlJZChlKTtpZihvKXtpZigobj1vLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZuLnZhbHVlPT09ZSlyZXR1cm5bb107aT10LmdldEVsZW1lbnRzQnlOYW1lKGUpLHI9MDt3aGlsZShvPWlbcisrXSlpZigobj1vLmdldEF0dHJpYnV0ZU5vZGUoImlkIikpJiZuLnZhbHVlPT09ZSlyZXR1cm5bb119cmV0dXJuW119fSksYi5maW5kLlRBRz1kLmdldEVsZW1lbnRzQnlUYWdOYW1lP2Z1bmN0aW9uKGUsdCl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiB0LmdldEVsZW1lbnRzQnlUYWdOYW1lP3QuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSk6ZC5xc2E/dC5xdWVyeVNlbGVjdG9yQWxsKGUpOnZvaWQgMH06ZnVuY3Rpb24oZSx0KXt2YXIgbixyPVtdLGk9MCxvPXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoZSk7aWYoIioiPT09ZSl7d2hpbGUobj1vW2krK10pMT09PW4ubm9kZVR5cGUmJnIucHVzaChuKTtyZXR1cm4gcn1yZXR1cm4gb30sYi5maW5kLkNMQVNTPWQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmZnVuY3Rpb24oZSx0KXtpZigidW5kZWZpbmVkIiE9dHlwZW9mIHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSYmRSlyZXR1cm4gdC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKGUpfSxzPVtdLHY9W10sKGQucXNhPUsudGVzdChDLnF1ZXJ5U2VsZWN0b3JBbGwpKSYmKGNlKGZ1bmN0aW9uKGUpe3ZhciB0O2EuYXBwZW5kQ2hpbGQoZSkuaW5uZXJIVE1MPSI8YSBpZD0nIitTKyInPjwvYT48c2VsZWN0IGlkPSciK1MrIi1cclxcJyBtc2FsbG93Y2FwdHVyZT0nJz48b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PiIsZS5xdWVyeVNlbGVjdG9yQWxsKCJbbXNhbGxvd2NhcHR1cmVePScnXSIpLmxlbmd0aCYmdi5wdXNoKCJbKl4kXT0iK00rIiooPzonJ3xcIlwiKSIpLGUucXVlcnlTZWxlY3RvckFsbCgiW3NlbGVjdGVkXSIpLmxlbmd0aHx8di5wdXNoKCJcXFsiK00rIiooPzp2YWx1ZXwiK1IrIikiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltpZH49IitTKyItXSIpLmxlbmd0aHx8di5wdXNoKCJ+PSIpLCh0PUMuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSkuc2V0QXR0cmlidXRlKCJuYW1lIiwiIiksZS5hcHBlbmRDaGlsZCh0KSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIltuYW1lPScnXSIpLmxlbmd0aHx8di5wdXNoKCJcXFsiK00rIipuYW1lIitNKyIqPSIrTSsiKig/OicnfFwiXCIpIiksZS5xdWVyeVNlbGVjdG9yQWxsKCI6Y2hlY2tlZCIpLmxlbmd0aHx8di5wdXNoKCI6Y2hlY2tlZCIpLGUucXVlcnlTZWxlY3RvckFsbCgiYSMiK1MrIisqIikubGVuZ3RofHx2LnB1c2goIi4jLitbK35dIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJcXFxmIiksdi5wdXNoKCJbXFxyXFxuXFxmXSIpfSksY2UoZnVuY3Rpb24oZSl7ZS5pbm5lckhUTUw9IjxhIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+PHNlbGVjdCBkaXNhYmxlZD0nZGlzYWJsZWQnPjxvcHRpb24vPjwvc2VsZWN0PiI7dmFyIHQ9Qy5jcmVhdGVFbGVtZW50KCJpbnB1dCIpO3Quc2V0QXR0cmlidXRlKCJ0eXBlIiwiaGlkZGVuIiksZS5hcHBlbmRDaGlsZCh0KS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJEIiksZS5xdWVyeVNlbGVjdG9yQWxsKCJbbmFtZT1kXSIpLmxlbmd0aCYmdi5wdXNoKCJuYW1lIitNKyIqWypeJHwhfl0/PSIpLDIhPT1lLnF1ZXJ5U2VsZWN0b3JBbGwoIjplbmFibGVkIikubGVuZ3RoJiZ2LnB1c2goIjplbmFibGVkIiwiOmRpc2FibGVkIiksYS5hcHBlbmRDaGlsZChlKS5kaXNhYmxlZD0hMCwyIT09ZS5xdWVyeVNlbGVjdG9yQWxsKCI6ZGlzYWJsZWQiKS5sZW5ndGgmJnYucHVzaCgiOmVuYWJsZWQiLCI6ZGlzYWJsZWQiKSxlLnF1ZXJ5U2VsZWN0b3JBbGwoIiosOngiKSx2LnB1c2goIiwuKjoiKX0pKSwoZC5tYXRjaGVzU2VsZWN0b3I9Sy50ZXN0KGM9YS5tYXRjaGVzfHxhLndlYmtpdE1hdGNoZXNTZWxlY3Rvcnx8YS5tb3pNYXRjaGVzU2VsZWN0b3J8fGEub01hdGNoZXNTZWxlY3Rvcnx8YS5tc01hdGNoZXNTZWxlY3RvcikpJiZjZShmdW5jdGlvbihlKXtkLmRpc2Nvbm5lY3RlZE1hdGNoPWMuY2FsbChlLCIqIiksYy5jYWxsKGUsIltzIT0nJ106eCIpLHMucHVzaCgiIT0iLEYpfSksdj12Lmxlbmd0aCYmbmV3IFJlZ0V4cCh2LmpvaW4oInwiKSkscz1zLmxlbmd0aCYmbmV3IFJlZ0V4cChzLmpvaW4oInwiKSksdD1LLnRlc3QoYS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbikseT10fHxLLnRlc3QoYS5jb250YWlucyk/ZnVuY3Rpb24oZSx0KXt2YXIgbj05PT09ZS5ub2RlVHlwZT9lLmRvY3VtZW50RWxlbWVudDplLHI9dCYmdC5wYXJlbnROb2RlO3JldHVybiBlPT09cnx8ISghcnx8MSE9PXIubm9kZVR5cGV8fCEobi5jb250YWlucz9uLmNvbnRhaW5zKHIpOmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24mJjE2JmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24ocikpKX06ZnVuY3Rpb24oZSx0KXtpZih0KXdoaWxlKHQ9dC5wYXJlbnROb2RlKWlmKHQ9PT1lKXJldHVybiEwO3JldHVybiExfSxEPXQ/ZnVuY3Rpb24oZSx0KXtpZihlPT09dClyZXR1cm4gbD0hMCwwO3ZhciBuPSFlLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uLSF0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uO3JldHVybiBufHwoMSYobj0oZS5vd25lckRvY3VtZW50fHxlKT09KHQub3duZXJEb2N1bWVudHx8dCk/ZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0KToxKXx8IWQuc29ydERldGFjaGVkJiZ0LmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKGUpPT09bj9lPT1DfHxlLm93bmVyRG9jdW1lbnQ9PXAmJnkocCxlKT8tMTp0PT1DfHx0Lm93bmVyRG9jdW1lbnQ9PXAmJnkocCx0KT8xOnU/UCh1LGUpLVAodSx0KTowOjQmbj8tMToxKX06ZnVuY3Rpb24oZSx0KXtpZihlPT09dClyZXR1cm4gbD0hMCwwO3ZhciBuLHI9MCxpPWUucGFyZW50Tm9kZSxvPXQucGFyZW50Tm9kZSxhPVtlXSxzPVt0XTtpZighaXx8IW8pcmV0dXJuIGU9PUM/LTE6dD09Qz8xOmk/LTE6bz8xOnU/UCh1LGUpLVAodSx0KTowO2lmKGk9PT1vKXJldHVybiBwZShlLHQpO249ZTt3aGlsZShuPW4ucGFyZW50Tm9kZSlhLnVuc2hpZnQobik7bj10O3doaWxlKG49bi5wYXJlbnROb2RlKXMudW5zaGlmdChuKTt3aGlsZShhW3JdPT09c1tyXSlyKys7cmV0dXJuIHI/cGUoYVtyXSxzW3JdKTphW3JdPT1wPy0xOnNbcl09PXA/MTowfSksQ30sc2UubWF0Y2hlcz1mdW5jdGlvbihlLHQpe3JldHVybiBzZShlLG51bGwsbnVsbCx0KX0sc2UubWF0Y2hlc1NlbGVjdG9yPWZ1bmN0aW9uKGUsdCl7aWYoVChlKSxkLm1hdGNoZXNTZWxlY3RvciYmRSYmIU5bdCsiICJdJiYoIXN8fCFzLnRlc3QodCkpJiYoIXZ8fCF2LnRlc3QodCkpKXRyeXt2YXIgbj1jLmNhbGwoZSx0KTtpZihufHxkLmRpc2Nvbm5lY3RlZE1hdGNofHxlLmRvY3VtZW50JiYxMSE9PWUuZG9jdW1lbnQubm9kZVR5cGUpcmV0dXJuIG59Y2F0Y2goZSl7Tih0LCEwKX1yZXR1cm4gMDxzZSh0LEMsbnVsbCxbZV0pLmxlbmd0aH0sc2UuY29udGFpbnM9ZnVuY3Rpb24oZSx0KXtyZXR1cm4oZS5vd25lckRvY3VtZW50fHxlKSE9QyYmVChlKSx5KGUsdCl9LHNlLmF0dHI9ZnVuY3Rpb24oZSx0KXsoZS5vd25lckRvY3VtZW50fHxlKSE9QyYmVChlKTt2YXIgbj1iLmF0dHJIYW5kbGVbdC50b0xvd2VyQ2FzZSgpXSxyPW4mJmouY2FsbChiLmF0dHJIYW5kbGUsdC50b0xvd2VyQ2FzZSgpKT9uKGUsdCwhRSk6dm9pZCAwO3JldHVybiB2b2lkIDAhPT1yP3I6ZC5hdHRyaWJ1dGVzfHwhRT9lLmdldEF0dHJpYnV0ZSh0KToocj1lLmdldEF0dHJpYnV0ZU5vZGUodCkpJiZyLnNwZWNpZmllZD9yLnZhbHVlOm51bGx9LHNlLmVzY2FwZT1mdW5jdGlvbihlKXtyZXR1cm4oZSsiIikucmVwbGFjZShyZSxpZSl9LHNlLmVycm9yPWZ1bmN0aW9uKGUpe3Rocm93IG5ldyBFcnJvcigiU3ludGF4IGVycm9yLCB1bnJlY29nbml6ZWQgZXhwcmVzc2lvbjogIitlKX0sc2UudW5pcXVlU29ydD1mdW5jdGlvbihlKXt2YXIgdCxuPVtdLHI9MCxpPTA7aWYobD0hZC5kZXRlY3REdXBsaWNhdGVzLHU9IWQuc29ydFN0YWJsZSYmZS5zbGljZSgwKSxlLnNvcnQoRCksbCl7d2hpbGUodD1lW2krK10pdD09PWVbaV0mJihyPW4ucHVzaChpKSk7d2hpbGUoci0tKWUuc3BsaWNlKG5bcl0sMSl9cmV0dXJuIHU9bnVsbCxlfSxvPXNlLmdldFRleHQ9ZnVuY3Rpb24oZSl7dmFyIHQsbj0iIixyPTAsaT1lLm5vZGVUeXBlO2lmKGkpe2lmKDE9PT1pfHw5PT09aXx8MTE9PT1pKXtpZigic3RyaW5nIj09dHlwZW9mIGUudGV4dENvbnRlbnQpcmV0dXJuIGUudGV4dENvbnRlbnQ7Zm9yKGU9ZS5maXJzdENoaWxkO2U7ZT1lLm5leHRTaWJsaW5nKW4rPW8oZSl9ZWxzZSBpZigzPT09aXx8ND09PWkpcmV0dXJuIGUubm9kZVZhbHVlfWVsc2Ugd2hpbGUodD1lW3IrK10pbis9byh0KTtyZXR1cm4gbn0sKGI9c2Uuc2VsZWN0b3JzPXtjYWNoZUxlbmd0aDo1MCxjcmVhdGVQc2V1ZG86bGUsbWF0Y2g6RyxhdHRySGFuZGxlOnt9LGZpbmQ6e30scmVsYXRpdmU6eyI+Ijp7ZGlyOiJwYXJlbnROb2RlIixmaXJzdDohMH0sIiAiOntkaXI6InBhcmVudE5vZGUifSwiKyI6e2RpcjoicHJldmlvdXNTaWJsaW5nIixmaXJzdDohMH0sIn4iOntkaXI6InByZXZpb3VzU2libGluZyJ9fSxwcmVGaWx0ZXI6e0FUVFI6ZnVuY3Rpb24oZSl7cmV0dXJuIGVbMV09ZVsxXS5yZXBsYWNlKHRlLG5lKSxlWzNdPShlWzNdfHxlWzRdfHxlWzVdfHwiIikucmVwbGFjZSh0ZSxuZSksIn49Ij09PWVbMl0mJihlWzNdPSIgIitlWzNdKyIgIiksZS5zbGljZSgwLDQpfSxDSElMRDpmdW5jdGlvbihlKXtyZXR1cm4gZVsxXT1lWzFdLnRvTG93ZXJDYXNlKCksIm50aCI9PT1lWzFdLnNsaWNlKDAsMyk/KGVbM118fHNlLmVycm9yKGVbMF0pLGVbNF09KyhlWzRdP2VbNV0rKGVbNl18fDEpOjIqKCJldmVuIj09PWVbM118fCJvZGQiPT09ZVszXSkpLGVbNV09KyhlWzddK2VbOF18fCJvZGQiPT09ZVszXSkpOmVbM10mJnNlLmVycm9yKGVbMF0pLGV9LFBTRVVETzpmdW5jdGlvbihlKXt2YXIgdCxuPSFlWzZdJiZlWzJdO3JldHVybiBHLkNISUxELnRlc3QoZVswXSk/bnVsbDooZVszXT9lWzJdPWVbNF18fGVbNV18fCIiOm4mJlgudGVzdChuKSYmKHQ9aChuLCEwKSkmJih0PW4uaW5kZXhPZigiKSIsbi5sZW5ndGgtdCktbi5sZW5ndGgpJiYoZVswXT1lWzBdLnNsaWNlKDAsdCksZVsyXT1uLnNsaWNlKDAsdCkpLGUuc2xpY2UoMCwzKSl9fSxmaWx0ZXI6e1RBRzpmdW5jdGlvbihlKXt2YXIgdD1lLnJlcGxhY2UodGUsbmUpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIioiPT09ZT9mdW5jdGlvbigpe3JldHVybiEwfTpmdW5jdGlvbihlKXtyZXR1cm4gZS5ub2RlTmFtZSYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPT09dH19LENMQVNTOmZ1bmN0aW9uKGUpe3ZhciB0PW1bZSsiICJdO3JldHVybiB0fHwodD1uZXcgUmVnRXhwKCIoXnwiK00rIikiK2UrIigiK00rInwkKSIpKSYmbShlLGZ1bmN0aW9uKGUpe3JldHVybiB0LnRlc3QoInN0cmluZyI9PXR5cGVvZiBlLmNsYXNzTmFtZSYmZS5jbGFzc05hbWV8fCJ1bmRlZmluZWQiIT10eXBlb2YgZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIil9KX0sQVRUUjpmdW5jdGlvbihuLHIsaSl7cmV0dXJuIGZ1bmN0aW9uKGUpe3ZhciB0PXNlLmF0dHIoZSxuKTtyZXR1cm4gbnVsbD09dD8iIT0iPT09cjohcnx8KHQrPSIiLCI9Ij09PXI/dD09PWk6IiE9Ij09PXI/dCE9PWk6Il49Ij09PXI/aSYmMD09PXQuaW5kZXhPZihpKToiKj0iPT09cj9pJiYtMTx0LmluZGV4T2YoaSk6IiQ9Ij09PXI/aSYmdC5zbGljZSgtaS5sZW5ndGgpPT09aToifj0iPT09cj8tMTwoIiAiK3QucmVwbGFjZShCLCIgIikrIiAiKS5pbmRleE9mKGkpOiJ8PSI9PT1yJiYodD09PWl8fHQuc2xpY2UoMCxpLmxlbmd0aCsxKT09PWkrIi0iKSl9fSxDSElMRDpmdW5jdGlvbihoLGUsdCxnLHYpe3ZhciB5PSJudGgiIT09aC5zbGljZSgwLDMpLG09Imxhc3QiIT09aC5zbGljZSgtNCkseD0ib2YtdHlwZSI9PT1lO3JldHVybiAxPT09ZyYmMD09PXY/ZnVuY3Rpb24oZSl7cmV0dXJuISFlLnBhcmVudE5vZGV9OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD15IT09bT8ibmV4dFNpYmxpbmciOiJwcmV2aW91c1NpYmxpbmciLGM9ZS5wYXJlbnROb2RlLGY9eCYmZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpLHA9IW4mJiF4LGQ9ITE7aWYoYyl7aWYoeSl7d2hpbGUobCl7YT1lO3doaWxlKGE9YVtsXSlpZih4P2Eubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PWY6MT09PWEubm9kZVR5cGUpcmV0dXJuITE7dT1sPSJvbmx5Ij09PWgmJiF1JiYibmV4dFNpYmxpbmcifXJldHVybiEwfWlmKHU9W20/Yy5maXJzdENoaWxkOmMubGFzdENoaWxkXSxtJiZwKXtkPShzPShyPShpPShvPShhPWMpW1NdfHwoYVtTXT17fSkpW2EudW5pcXVlSURdfHwob1thLnVuaXF1ZUlEXT17fSkpW2hdfHxbXSlbMF09PT1rJiZyWzFdKSYmclsyXSxhPXMmJmMuY2hpbGROb2Rlc1tzXTt3aGlsZShhPSsrcyYmYSYmYVtsXXx8KGQ9cz0wKXx8dS5wb3AoKSlpZigxPT09YS5ub2RlVHlwZSYmKytkJiZhPT09ZSl7aVtoXT1bayxzLGRdO2JyZWFrfX1lbHNlIGlmKHAmJihkPXM9KHI9KGk9KG89KGE9ZSlbU118fChhW1NdPXt9KSlbYS51bmlxdWVJRF18fChvW2EudW5pcXVlSURdPXt9KSlbaF18fFtdKVswXT09PWsmJnJbMV0pLCExPT09ZCl3aGlsZShhPSsrcyYmYSYmYVtsXXx8KGQ9cz0wKXx8dS5wb3AoKSlpZigoeD9hLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk9PT1mOjE9PT1hLm5vZGVUeXBlKSYmKytkJiYocCYmKChpPShvPWFbU118fChhW1NdPXt9KSlbYS51bmlxdWVJRF18fChvW2EudW5pcXVlSURdPXt9KSlbaF09W2ssZF0pLGE9PT1lKSlicmVhaztyZXR1cm4oZC09dik9PT1nfHxkJWc9PTAmJjA8PWQvZ319fSxQU0VVRE86ZnVuY3Rpb24oZSxvKXt2YXIgdCxhPWIucHNldWRvc1tlXXx8Yi5zZXRGaWx0ZXJzW2UudG9Mb3dlckNhc2UoKV18fHNlLmVycm9yKCJ1bnN1cHBvcnRlZCBwc2V1ZG86ICIrZSk7cmV0dXJuIGFbU10/YShvKToxPGEubGVuZ3RoPyh0PVtlLGUsIiIsb10sYi5zZXRGaWx0ZXJzLmhhc093blByb3BlcnR5KGUudG9Mb3dlckNhc2UoKSk/bGUoZnVuY3Rpb24oZSx0KXt2YXIgbixyPWEoZSxvKSxpPXIubGVuZ3RoO3doaWxlKGktLSllW249UChlLHJbaV0pXT0hKHRbbl09cltpXSl9KTpmdW5jdGlvbihlKXtyZXR1cm4gYShlLDAsdCl9KTphfX0scHNldWRvczp7bm90OmxlKGZ1bmN0aW9uKGUpe3ZhciByPVtdLGk9W10scz1mKGUucmVwbGFjZSgkLCIkMSIpKTtyZXR1cm4gc1tTXT9sZShmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvPXMoZSxudWxsLHIsW10pLGE9ZS5sZW5ndGg7d2hpbGUoYS0tKShpPW9bYV0pJiYoZVthXT0hKHRbYV09aSkpfSk6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiByWzBdPWUscyhyLG51bGwsbixpKSxyWzBdPW51bGwsIWkucG9wKCl9fSksaGFzOmxlKGZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gMDxzZSh0LGUpLmxlbmd0aH19KSxjb250YWluczpsZShmdW5jdGlvbih0KXtyZXR1cm4gdD10LnJlcGxhY2UodGUsbmUpLGZ1bmN0aW9uKGUpe3JldHVybi0xPChlLnRleHRDb250ZW50fHxvKGUpKS5pbmRleE9mKHQpfX0pLGxhbmc6bGUoZnVuY3Rpb24obil7cmV0dXJuIFYudGVzdChufHwiIil8fHNlLmVycm9yKCJ1bnN1cHBvcnRlZCBsYW5nOiAiK24pLG49bi5yZXBsYWNlKHRlLG5lKS50b0xvd2VyQ2FzZSgpLGZ1bmN0aW9uKGUpe3ZhciB0O2Rve2lmKHQ9RT9lLmxhbmc6ZS5nZXRBdHRyaWJ1dGUoInhtbDpsYW5nIil8fGUuZ2V0QXR0cmlidXRlKCJsYW5nIikpcmV0dXJuKHQ9dC50b0xvd2VyQ2FzZSgpKT09PW58fDA9PT10LmluZGV4T2YobisiLSIpfXdoaWxlKChlPWUucGFyZW50Tm9kZSkmJjE9PT1lLm5vZGVUeXBlKTtyZXR1cm4hMX19KSx0YXJnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9bi5sb2NhdGlvbiYmbi5sb2NhdGlvbi5oYXNoO3JldHVybiB0JiZ0LnNsaWNlKDEpPT09ZS5pZH0scm9vdDpmdW5jdGlvbihlKXtyZXR1cm4gZT09PWF9LGZvY3VzOmZ1bmN0aW9uKGUpe3JldHVybiBlPT09Qy5hY3RpdmVFbGVtZW50JiYoIUMuaGFzRm9jdXN8fEMuaGFzRm9jdXMoKSkmJiEhKGUudHlwZXx8ZS5ocmVmfHx+ZS50YWJJbmRleCl9LGVuYWJsZWQ6Z2UoITEpLGRpc2FibGVkOmdlKCEwKSxjaGVja2VkOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dCYmISFlLmNoZWNrZWR8fCJvcHRpb24iPT09dCYmISFlLnNlbGVjdGVkfSxzZWxlY3RlZDpmdW5jdGlvbihlKXtyZXR1cm4gZS5wYXJlbnROb2RlJiZlLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleCwhMD09PWUuc2VsZWN0ZWR9LGVtcHR5OmZ1bmN0aW9uKGUpe2ZvcihlPWUuZmlyc3RDaGlsZDtlO2U9ZS5uZXh0U2libGluZylpZihlLm5vZGVUeXBlPDYpcmV0dXJuITE7cmV0dXJuITB9LHBhcmVudDpmdW5jdGlvbihlKXtyZXR1cm4hYi5wc2V1ZG9zLmVtcHR5KGUpfSxoZWFkZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIEoudGVzdChlLm5vZGVOYW1lKX0saW5wdXQ6ZnVuY3Rpb24oZSl7cmV0dXJuIFEudGVzdChlLm5vZGVOYW1lKX0sYnV0dG9uOmZ1bmN0aW9uKGUpe3ZhciB0PWUubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iaW5wdXQiPT09dCYmImJ1dHRvbiI9PT1lLnR5cGV8fCJidXR0b24iPT09dH0sdGV4dDpmdW5jdGlvbihlKXt2YXIgdDtyZXR1cm4iaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpJiYidGV4dCI9PT1lLnR5cGUmJihudWxsPT0odD1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKXx8InRleHQiPT09dC50b0xvd2VyQ2FzZSgpKX0sZmlyc3Q6dmUoZnVuY3Rpb24oKXtyZXR1cm5bMF19KSxsYXN0OnZlKGZ1bmN0aW9uKGUsdCl7cmV0dXJuW3QtMV19KSxlcTp2ZShmdW5jdGlvbihlLHQsbil7cmV0dXJuW248MD9uK3Q6bl19KSxldmVuOnZlKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTA7bjx0O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksb2RkOnZlKGZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBuPTE7bjx0O24rPTIpZS5wdXNoKG4pO3JldHVybiBlfSksbHQ6dmUoZnVuY3Rpb24oZSx0LG4pe2Zvcih2YXIgcj1uPDA/bit0OnQ8bj90Om47MDw9LS1yOyllLnB1c2gocik7cmV0dXJuIGV9KSxndDp2ZShmdW5jdGlvbihlLHQsbil7Zm9yKHZhciByPW48MD9uK3Q6bjsrK3I8dDspZS5wdXNoKHIpO3JldHVybiBlfSl9fSkucHNldWRvcy5udGg9Yi5wc2V1ZG9zLmVxLHtyYWRpbzohMCxjaGVja2JveDohMCxmaWxlOiEwLHBhc3N3b3JkOiEwLGltYWdlOiEwfSliLnBzZXVkb3NbZV09ZGUoZSk7Zm9yKGUgaW57c3VibWl0OiEwLHJlc2V0OiEwfSliLnBzZXVkb3NbZV09aGUoZSk7ZnVuY3Rpb24gbWUoKXt9ZnVuY3Rpb24geGUoZSl7Zm9yKHZhciB0PTAsbj1lLmxlbmd0aCxyPSIiO3Q8bjt0Kyspcis9ZVt0XS52YWx1ZTtyZXR1cm4gcn1mdW5jdGlvbiBiZShzLGUsdCl7dmFyIHU9ZS5kaXIsbD1lLm5leHQsYz1sfHx1LGY9dCYmInBhcmVudE5vZGUiPT09YyxwPXIrKztyZXR1cm4gZS5maXJzdD9mdW5jdGlvbihlLHQsbil7d2hpbGUoZT1lW3VdKWlmKDE9PT1lLm5vZGVUeXBlfHxmKXJldHVybiBzKGUsdCxuKTtyZXR1cm4hMX06ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGksbyxhPVtrLHBdO2lmKG4pe3doaWxlKGU9ZVt1XSlpZigoMT09PWUubm9kZVR5cGV8fGYpJiZzKGUsdCxuKSlyZXR1cm4hMH1lbHNlIHdoaWxlKGU9ZVt1XSlpZigxPT09ZS5ub2RlVHlwZXx8ZilpZihpPShvPWVbU118fChlW1NdPXt9KSlbZS51bmlxdWVJRF18fChvW2UudW5pcXVlSURdPXt9KSxsJiZsPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKWU9ZVt1XXx8ZTtlbHNle2lmKChyPWlbY10pJiZyWzBdPT09ayYmclsxXT09PXApcmV0dXJuIGFbMl09clsyXTtpZigoaVtjXT1hKVsyXT1zKGUsdCxuKSlyZXR1cm4hMH1yZXR1cm4hMX19ZnVuY3Rpb24gd2UoaSl7cmV0dXJuIDE8aS5sZW5ndGg/ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWkubGVuZ3RoO3doaWxlKHItLSlpZighaVtyXShlLHQsbikpcmV0dXJuITE7cmV0dXJuITB9OmlbMF19ZnVuY3Rpb24gVGUoZSx0LG4scixpKXtmb3IodmFyIG8sYT1bXSxzPTAsdT1lLmxlbmd0aCxsPW51bGwhPXQ7czx1O3MrKykobz1lW3NdKSYmKG4mJiFuKG8scixpKXx8KGEucHVzaChvKSxsJiZ0LnB1c2gocykpKTtyZXR1cm4gYX1mdW5jdGlvbiBDZShkLGgsZyx2LHksZSl7cmV0dXJuIHYmJiF2W1NdJiYodj1DZSh2KSkseSYmIXlbU10mJih5PUNlKHksZSkpLGxlKGZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVtdLHU9W10sbD10Lmxlbmd0aCxjPWV8fGZ1bmN0aW9uKGUsdCxuKXtmb3IodmFyIHI9MCxpPXQubGVuZ3RoO3I8aTtyKyspc2UoZSx0W3JdLG4pO3JldHVybiBufShofHwiKiIsbi5ub2RlVHlwZT9bbl06bixbXSksZj0hZHx8IWUmJmg/YzpUZShjLHMsZCxuLHIpLHA9Zz95fHwoZT9kOmx8fHYpP1tdOnQ6ZjtpZihnJiZnKGYscCxuLHIpLHYpe2k9VGUocCx1KSx2KGksW10sbixyKSxvPWkubGVuZ3RoO3doaWxlKG8tLSkoYT1pW29dKSYmKHBbdVtvXV09IShmW3Vbb11dPWEpKX1pZihlKXtpZih5fHxkKXtpZih5KXtpPVtdLG89cC5sZW5ndGg7d2hpbGUoby0tKShhPXBbb10pJiZpLnB1c2goZltvXT1hKTt5KG51bGwscD1bXSxpLHIpfW89cC5sZW5ndGg7d2hpbGUoby0tKShhPXBbb10pJiYtMTwoaT15P1AoZSxhKTpzW29dKSYmKGVbaV09ISh0W2ldPWEpKX19ZWxzZSBwPVRlKHA9PT10P3Auc3BsaWNlKGwscC5sZW5ndGgpOnApLHk/eShudWxsLHQscCxyKTpILmFwcGx5KHQscCl9KX1mdW5jdGlvbiBFZShlKXtmb3IodmFyIGksdCxuLHI9ZS5sZW5ndGgsbz1iLnJlbGF0aXZlW2VbMF0udHlwZV0sYT1vfHxiLnJlbGF0aXZlWyIgIl0scz1vPzE6MCx1PWJlKGZ1bmN0aW9uKGUpe3JldHVybiBlPT09aX0sYSwhMCksbD1iZShmdW5jdGlvbihlKXtyZXR1cm4tMTxQKGksZSl9LGEsITApLGM9W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcj0hbyYmKG58fHQhPT13KXx8KChpPXQpLm5vZGVUeXBlP3UoZSx0LG4pOmwoZSx0LG4pKTtyZXR1cm4gaT1udWxsLHJ9XTtzPHI7cysrKWlmKHQ9Yi5yZWxhdGl2ZVtlW3NdLnR5cGVdKWM9W2JlKHdlKGMpLHQpXTtlbHNle2lmKCh0PWIuZmlsdGVyW2Vbc10udHlwZV0uYXBwbHkobnVsbCxlW3NdLm1hdGNoZXMpKVtTXSl7Zm9yKG49KytzO248cjtuKyspaWYoYi5yZWxhdGl2ZVtlW25dLnR5cGVdKWJyZWFrO3JldHVybiBDZSgxPHMmJndlKGMpLDE8cyYmeGUoZS5zbGljZSgwLHMtMSkuY29uY2F0KHt2YWx1ZToiICI9PT1lW3MtMl0udHlwZT8iKiI6IiJ9KSkucmVwbGFjZSgkLCIkMSIpLHQsczxuJiZFZShlLnNsaWNlKHMsbikpLG48ciYmRWUoZT1lLnNsaWNlKG4pKSxuPHImJnhlKGUpKX1jLnB1c2godCl9cmV0dXJuIHdlKGMpfXJldHVybiBtZS5wcm90b3R5cGU9Yi5maWx0ZXJzPWIucHNldWRvcyxiLnNldEZpbHRlcnM9bmV3IG1lLGg9c2UudG9rZW5pemU9ZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhLHMsdSxsPXhbZSsiICJdO2lmKGwpcmV0dXJuIHQ/MDpsLnNsaWNlKDApO2E9ZSxzPVtdLHU9Yi5wcmVGaWx0ZXI7d2hpbGUoYSl7Zm9yKG8gaW4gbiYmIShyPV8uZXhlYyhhKSl8fChyJiYoYT1hLnNsaWNlKHJbMF0ubGVuZ3RoKXx8YSkscy5wdXNoKGk9W10pKSxuPSExLChyPXouZXhlYyhhKSkmJihuPXIuc2hpZnQoKSxpLnB1c2goe3ZhbHVlOm4sdHlwZTpyWzBdLnJlcGxhY2UoJCwiICIpfSksYT1hLnNsaWNlKG4ubGVuZ3RoKSksYi5maWx0ZXIpIShyPUdbb10uZXhlYyhhKSl8fHVbb10mJiEocj11W29dKHIpKXx8KG49ci5zaGlmdCgpLGkucHVzaCh7dmFsdWU6bix0eXBlOm8sbWF0Y2hlczpyfSksYT1hLnNsaWNlKG4ubGVuZ3RoKSk7aWYoIW4pYnJlYWt9cmV0dXJuIHQ/YS5sZW5ndGg6YT9zZS5lcnJvcihlKTp4KGUscykuc2xpY2UoMCl9LGY9c2UuY29tcGlsZT1mdW5jdGlvbihlLHQpe3ZhciBuLHYseSxtLHgscixpPVtdLG89W10sYT1BW2UrIiAiXTtpZighYSl7dHx8KHQ9aChlKSksbj10Lmxlbmd0aDt3aGlsZShuLS0pKGE9RWUodFtuXSkpW1NdP2kucHVzaChhKTpvLnB1c2goYSk7KGE9QShlLCh2PW8sbT0wPCh5PWkpLmxlbmd0aCx4PTA8di5sZW5ndGgscj1mdW5jdGlvbihlLHQsbixyLGkpe3ZhciBvLGEscyx1PTAsbD0iMCIsYz1lJiZbXSxmPVtdLHA9dyxkPWV8fHgmJmIuZmluZC5UQUcoIioiLGkpLGg9ays9bnVsbD09cD8xOk1hdGgucmFuZG9tKCl8fC4xLGc9ZC5sZW5ndGg7Zm9yKGkmJih3PXQ9PUN8fHR8fGkpO2whPT1nJiZudWxsIT0obz1kW2xdKTtsKyspe2lmKHgmJm8pe2E9MCx0fHxvLm93bmVyRG9jdW1lbnQ9PUN8fChUKG8pLG49IUUpO3doaWxlKHM9dlthKytdKWlmKHMobyx0fHxDLG4pKXtyLnB1c2gobyk7YnJlYWt9aSYmKGs9aCl9bSYmKChvPSFzJiZvKSYmdS0tLGUmJmMucHVzaChvKSl9aWYodSs9bCxtJiZsIT09dSl7YT0wO3doaWxlKHM9eVthKytdKXMoYyxmLHQsbik7aWYoZSl7aWYoMDx1KXdoaWxlKGwtLSljW2xdfHxmW2xdfHwoZltsXT1xLmNhbGwocikpO2Y9VGUoZil9SC5hcHBseShyLGYpLGkmJiFlJiYwPGYubGVuZ3RoJiYxPHUreS5sZW5ndGgmJnNlLnVuaXF1ZVNvcnQocil9cmV0dXJuIGkmJihrPWgsdz1wKSxjfSxtP2xlKHIpOnIpKSkuc2VsZWN0b3I9ZX1yZXR1cm4gYX0sZz1zZS5zZWxlY3Q9ZnVuY3Rpb24oZSx0LG4scil7dmFyIGksbyxhLHMsdSxsPSJmdW5jdGlvbiI9PXR5cGVvZiBlJiZlLGM9IXImJmgoZT1sLnNlbGVjdG9yfHxlKTtpZihuPW58fFtdLDE9PT1jLmxlbmd0aCl7aWYoMjwobz1jWzBdPWNbMF0uc2xpY2UoMCkpLmxlbmd0aCYmIklEIj09PShhPW9bMF0pLnR5cGUmJjk9PT10Lm5vZGVUeXBlJiZFJiZiLnJlbGF0aXZlW29bMV0udHlwZV0pe2lmKCEodD0oYi5maW5kLklEKGEubWF0Y2hlc1swXS5yZXBsYWNlKHRlLG5lKSx0KXx8W10pWzBdKSlyZXR1cm4gbjtsJiYodD10LnBhcmVudE5vZGUpLGU9ZS5zbGljZShvLnNoaWZ0KCkudmFsdWUubGVuZ3RoKX1pPUcubmVlZHNDb250ZXh0LnRlc3QoZSk/MDpvLmxlbmd0aDt3aGlsZShpLS0pe2lmKGE9b1tpXSxiLnJlbGF0aXZlW3M9YS50eXBlXSlicmVhaztpZigodT1iLmZpbmRbc10pJiYocj11KGEubWF0Y2hlc1swXS5yZXBsYWNlKHRlLG5lKSxlZS50ZXN0KG9bMF0udHlwZSkmJnllKHQucGFyZW50Tm9kZSl8fHQpKSl7aWYoby5zcGxpY2UoaSwxKSwhKGU9ci5sZW5ndGgmJnhlKG8pKSlyZXR1cm4gSC5hcHBseShuLHIpLG47YnJlYWt9fX1yZXR1cm4obHx8ZihlLGMpKShyLHQsIUUsbiwhdHx8ZWUudGVzdChlKSYmeWUodC5wYXJlbnROb2RlKXx8dCksbn0sZC5zb3J0U3RhYmxlPVMuc3BsaXQoIiIpLnNvcnQoRCkuam9pbigiIik9PT1TLGQuZGV0ZWN0RHVwbGljYXRlcz0hIWwsVCgpLGQuc29ydERldGFjaGVkPWNlKGZ1bmN0aW9uKGUpe3JldHVybiAxJmUuY29tcGFyZURvY3VtZW50UG9zaXRpb24oQy5jcmVhdGVFbGVtZW50KCJmaWVsZHNldCIpKX0pLGNlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD0iPGEgaHJlZj0nIyc+PC9hPiIsIiMiPT09ZS5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSgiaHJlZiIpfSl8fGZlKCJ0eXBlfGhyZWZ8aGVpZ2h0fHdpZHRoIixmdW5jdGlvbihlLHQsbil7aWYoIW4pcmV0dXJuIGUuZ2V0QXR0cmlidXRlKHQsInR5cGUiPT09dC50b0xvd2VyQ2FzZSgpPzE6Mil9KSxkLmF0dHJpYnV0ZXMmJmNlKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlubmVySFRNTD0iPGlucHV0Lz4iLGUuZmlyc3RDaGlsZC5zZXRBdHRyaWJ1dGUoInZhbHVlIiwiIiksIiI9PT1lLmZpcnN0Q2hpbGQuZ2V0QXR0cmlidXRlKCJ2YWx1ZSIpfSl8fGZlKCJ2YWx1ZSIsZnVuY3Rpb24oZSx0LG4pe2lmKCFuJiYiaW5wdXQiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpKXJldHVybiBlLmRlZmF1bHRWYWx1ZX0pLGNlKGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lLmdldEF0dHJpYnV0ZSgiZGlzYWJsZWQiKX0pfHxmZShSLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcjtpZighbilyZXR1cm4hMD09PWVbdF0/dC50b0xvd2VyQ2FzZSgpOihyPWUuZ2V0QXR0cmlidXRlTm9kZSh0KSkmJnIuc3BlY2lmaWVkP3IudmFsdWU6bnVsbH0pLHNlfShDKTtTLmZpbmQ9ZCxTLmV4cHI9ZC5zZWxlY3RvcnMsUy5leHByWyI6Il09Uy5leHByLnBzZXVkb3MsUy51bmlxdWVTb3J0PVMudW5pcXVlPWQudW5pcXVlU29ydCxTLnRleHQ9ZC5nZXRUZXh0LFMuaXNYTUxEb2M9ZC5pc1hNTCxTLmNvbnRhaW5zPWQuY29udGFpbnMsUy5lc2NhcGVTZWxlY3Rvcj1kLmVzY2FwZTt2YXIgaD1mdW5jdGlvbihlLHQsbil7dmFyIHI9W10saT12b2lkIDAhPT1uO3doaWxlKChlPWVbdF0pJiY5IT09ZS5ub2RlVHlwZSlpZigxPT09ZS5ub2RlVHlwZSl7aWYoaSYmUyhlKS5pcyhuKSlicmVhaztyLnB1c2goZSl9cmV0dXJuIHJ9LFQ9ZnVuY3Rpb24oZSx0KXtmb3IodmFyIG49W107ZTtlPWUubmV4dFNpYmxpbmcpMT09PWUubm9kZVR5cGUmJmUhPT10JiZuLnB1c2goZSk7cmV0dXJuIG59LGs9Uy5leHByLm1hdGNoLm5lZWRzQ29udGV4dDtmdW5jdGlvbiBBKGUsdCl7cmV0dXJuIGUubm9kZU5hbWUmJmUubm9kZU5hbWUudG9Mb3dlckNhc2UoKT09PXQudG9Mb3dlckNhc2UoKX12YXIgTj0vXjwoW2Etel1bXlwvXDA+Olx4MjBcdFxyXG5cZl0qKVtceDIwXHRcclxuXGZdKlwvPz4oPzo8XC9cMT58KSQvaTtmdW5jdGlvbiBEKGUsbixyKXtyZXR1cm4gbShuKT9TLmdyZXAoZSxmdW5jdGlvbihlLHQpe3JldHVybiEhbi5jYWxsKGUsdCxlKSE9PXJ9KTpuLm5vZGVUeXBlP1MuZ3JlcChlLGZ1bmN0aW9uKGUpe3JldHVybiBlPT09biE9PXJ9KToic3RyaW5nIiE9dHlwZW9mIG4/Uy5ncmVwKGUsZnVuY3Rpb24oZSl7cmV0dXJuLTE8aS5jYWxsKG4sZSkhPT1yfSk6Uy5maWx0ZXIobixlLHIpfVMuZmlsdGVyPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcj10WzBdO3JldHVybiBuJiYoZT0iOm5vdCgiK2UrIikiKSwxPT09dC5sZW5ndGgmJjE9PT1yLm5vZGVUeXBlP1MuZmluZC5tYXRjaGVzU2VsZWN0b3IocixlKT9bcl06W106Uy5maW5kLm1hdGNoZXMoZSxTLmdyZXAodCxmdW5jdGlvbihlKXtyZXR1cm4gMT09PWUubm9kZVR5cGV9KSl9LFMuZm4uZXh0ZW5kKHtmaW5kOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzLmxlbmd0aCxpPXRoaXM7aWYoInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiB0aGlzLnB1c2hTdGFjayhTKGUpLmZpbHRlcihmdW5jdGlvbigpe2Zvcih0PTA7dDxyO3QrKylpZihTLmNvbnRhaW5zKGlbdF0sdGhpcykpcmV0dXJuITB9KSk7Zm9yKG49dGhpcy5wdXNoU3RhY2soW10pLHQ9MDt0PHI7dCsrKVMuZmluZChlLGlbdF0sbik7cmV0dXJuIDE8cj9TLnVuaXF1ZVNvcnQobik6bn0sZmlsdGVyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhEKHRoaXMsZXx8W10sITEpKX0sbm90OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnB1c2hTdGFjayhEKHRoaXMsZXx8W10sITApKX0saXM6ZnVuY3Rpb24oZSl7cmV0dXJuISFEKHRoaXMsInN0cmluZyI9PXR5cGVvZiBlJiZrLnRlc3QoZSk/UyhlKTplfHxbXSwhMSkubGVuZ3RofX0pO3ZhciBqLHE9L14oPzpccyooPFtcd1xXXSs+KVtePl0qfCMoW1x3LV0rKSkkLzsoUy5mbi5pbml0PWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpO2lmKCFlKXJldHVybiB0aGlzO2lmKG49bnx8aiwic3RyaW5nIj09dHlwZW9mIGUpe2lmKCEocj0iPCI9PT1lWzBdJiYiPiI9PT1lW2UubGVuZ3RoLTFdJiYzPD1lLmxlbmd0aD9bbnVsbCxlLG51bGxdOnEuZXhlYyhlKSl8fCFyWzFdJiZ0KXJldHVybiF0fHx0LmpxdWVyeT8odHx8bikuZmluZChlKTp0aGlzLmNvbnN0cnVjdG9yKHQpLmZpbmQoZSk7aWYoclsxXSl7aWYodD10IGluc3RhbmNlb2YgUz90WzBdOnQsUy5tZXJnZSh0aGlzLFMucGFyc2VIVE1MKHJbMV0sdCYmdC5ub2RlVHlwZT90Lm93bmVyRG9jdW1lbnR8fHQ6RSwhMCkpLE4udGVzdChyWzFdKSYmUy5pc1BsYWluT2JqZWN0KHQpKWZvcihyIGluIHQpbSh0aGlzW3JdKT90aGlzW3JdKHRbcl0pOnRoaXMuYXR0cihyLHRbcl0pO3JldHVybiB0aGlzfXJldHVybihpPUUuZ2V0RWxlbWVudEJ5SWQoclsyXSkpJiYodGhpc1swXT1pLHRoaXMubGVuZ3RoPTEpLHRoaXN9cmV0dXJuIGUubm9kZVR5cGU/KHRoaXNbMF09ZSx0aGlzLmxlbmd0aD0xLHRoaXMpOm0oZSk/dm9pZCAwIT09bi5yZWFkeT9uLnJlYWR5KGUpOmUoUyk6Uy5tYWtlQXJyYXkoZSx0aGlzKX0pLnByb3RvdHlwZT1TLmZuLGo9UyhFKTt2YXIgTD0vXig/OnBhcmVudHN8cHJldig/OlVudGlsfEFsbCkpLyxIPXtjaGlsZHJlbjohMCxjb250ZW50czohMCxuZXh0OiEwLHByZXY6ITB9O2Z1bmN0aW9uIE8oZSx0KXt3aGlsZSgoZT1lW3RdKSYmMSE9PWUubm9kZVR5cGUpO3JldHVybiBlfVMuZm4uZXh0ZW5kKHtoYXM6ZnVuY3Rpb24oZSl7dmFyIHQ9UyhlLHRoaXMpLG49dC5sZW5ndGg7cmV0dXJuIHRoaXMuZmlsdGVyKGZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTxuO2UrKylpZihTLmNvbnRhaW5zKHRoaXMsdFtlXSkpcmV0dXJuITB9KX0sY2xvc2VzdDpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXRoaXMubGVuZ3RoLG89W10sYT0ic3RyaW5nIiE9dHlwZW9mIGUmJlMoZSk7aWYoIWsudGVzdChlKSlmb3IoO3I8aTtyKyspZm9yKG49dGhpc1tyXTtuJiZuIT09dDtuPW4ucGFyZW50Tm9kZSlpZihuLm5vZGVUeXBlPDExJiYoYT8tMTxhLmluZGV4KG4pOjE9PT1uLm5vZGVUeXBlJiZTLmZpbmQubWF0Y2hlc1NlbGVjdG9yKG4sZSkpKXtvLnB1c2gobik7YnJlYWt9cmV0dXJuIHRoaXMucHVzaFN0YWNrKDE8by5sZW5ndGg/Uy51bmlxdWVTb3J0KG8pOm8pfSxpbmRleDpmdW5jdGlvbihlKXtyZXR1cm4gZT8ic3RyaW5nIj09dHlwZW9mIGU/aS5jYWxsKFMoZSksdGhpc1swXSk6aS5jYWxsKHRoaXMsZS5qcXVlcnk/ZVswXTplKTp0aGlzWzBdJiZ0aGlzWzBdLnBhcmVudE5vZGU/dGhpcy5maXJzdCgpLnByZXZBbGwoKS5sZW5ndGg6LTF9LGFkZDpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLnB1c2hTdGFjayhTLnVuaXF1ZVNvcnQoUy5tZXJnZSh0aGlzLmdldCgpLFMoZSx0KSkpKX0sYWRkQmFjazpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9fSksUy5lYWNoKHtwYXJlbnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiYxMSE9PXQubm9kZVR5cGU/dDpudWxsfSxwYXJlbnRzOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsInBhcmVudE5vZGUiKX0scGFyZW50c1VudGlsOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gaChlLCJwYXJlbnROb2RlIixuKX0sbmV4dDpmdW5jdGlvbihlKXtyZXR1cm4gTyhlLCJuZXh0U2libGluZyIpfSxwcmV2OmZ1bmN0aW9uKGUpe3JldHVybiBPKGUsInByZXZpb3VzU2libGluZyIpfSxuZXh0QWxsOmZ1bmN0aW9uKGUpe3JldHVybiBoKGUsIm5leHRTaWJsaW5nIil9LHByZXZBbGw6ZnVuY3Rpb24oZSl7cmV0dXJuIGgoZSwicHJldmlvdXNTaWJsaW5nIil9LG5leHRVbnRpbDpmdW5jdGlvbihlLHQsbil7cmV0dXJuIGgoZSwibmV4dFNpYmxpbmciLG4pfSxwcmV2VW50aWw6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBoKGUsInByZXZpb3VzU2libGluZyIsbil9LHNpYmxpbmdzOmZ1bmN0aW9uKGUpe3JldHVybiBUKChlLnBhcmVudE5vZGV8fHt9KS5maXJzdENoaWxkLGUpfSxjaGlsZHJlbjpmdW5jdGlvbihlKXtyZXR1cm4gVChlLmZpcnN0Q2hpbGQpfSxjb250ZW50czpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZS5jb250ZW50RG9jdW1lbnQmJnIoZS5jb250ZW50RG9jdW1lbnQpP2UuY29udGVudERvY3VtZW50OihBKGUsInRlbXBsYXRlIikmJihlPWUuY29udGVudHx8ZSksUy5tZXJnZShbXSxlLmNoaWxkTm9kZXMpKX19LGZ1bmN0aW9uKHIsaSl7Uy5mbltyXT1mdW5jdGlvbihlLHQpe3ZhciBuPVMubWFwKHRoaXMsaSxlKTtyZXR1cm4iVW50aWwiIT09ci5zbGljZSgtNSkmJih0PWUpLHQmJiJzdHJpbmciPT10eXBlb2YgdCYmKG49Uy5maWx0ZXIodCxuKSksMTx0aGlzLmxlbmd0aCYmKEhbcl18fFMudW5pcXVlU29ydChuKSxMLnRlc3QocikmJm4ucmV2ZXJzZSgpKSx0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgUD0vW15ceDIwXHRcclxuXGZdKy9nO2Z1bmN0aW9uIFIoZSl7cmV0dXJuIGV9ZnVuY3Rpb24gTShlKXt0aHJvdyBlfWZ1bmN0aW9uIEkoZSx0LG4scil7dmFyIGk7dHJ5e2UmJm0oaT1lLnByb21pc2UpP2kuY2FsbChlKS5kb25lKHQpLmZhaWwobik6ZSYmbShpPWUudGhlbik/aS5jYWxsKGUsdCxuKTp0LmFwcGx5KHZvaWQgMCxbZV0uc2xpY2UocikpfWNhdGNoKGUpe24uYXBwbHkodm9pZCAwLFtlXSl9fVMuQ2FsbGJhY2tzPWZ1bmN0aW9uKHIpe3ZhciBlLG47cj0ic3RyaW5nIj09dHlwZW9mIHI/KGU9cixuPXt9LFMuZWFjaChlLm1hdGNoKFApfHxbXSxmdW5jdGlvbihlLHQpe25bdF09ITB9KSxuKTpTLmV4dGVuZCh7fSxyKTt2YXIgaSx0LG8sYSxzPVtdLHU9W10sbD0tMSxjPWZ1bmN0aW9uKCl7Zm9yKGE9YXx8ci5vbmNlLG89aT0hMDt1Lmxlbmd0aDtsPS0xKXt0PXUuc2hpZnQoKTt3aGlsZSgrK2w8cy5sZW5ndGgpITE9PT1zW2xdLmFwcGx5KHRbMF0sdFsxXSkmJnIuc3RvcE9uRmFsc2UmJihsPXMubGVuZ3RoLHQ9ITEpfXIubWVtb3J5fHwodD0hMSksaT0hMSxhJiYocz10P1tdOiIiKX0sZj17YWRkOmZ1bmN0aW9uKCl7cmV0dXJuIHMmJih0JiYhaSYmKGw9cy5sZW5ndGgtMSx1LnB1c2godCkpLGZ1bmN0aW9uIG4oZSl7Uy5lYWNoKGUsZnVuY3Rpb24oZSx0KXttKHQpP3IudW5pcXVlJiZmLmhhcyh0KXx8cy5wdXNoKHQpOnQmJnQubGVuZ3RoJiYic3RyaW5nIiE9PXcodCkmJm4odCl9KX0oYXJndW1lbnRzKSx0JiYhaSYmYygpKSx0aGlzfSxyZW1vdmU6ZnVuY3Rpb24oKXtyZXR1cm4gUy5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbihlLHQpe3ZhciBuO3doaWxlKC0xPChuPVMuaW5BcnJheSh0LHMsbikpKXMuc3BsaWNlKG4sMSksbjw9bCYmbC0tfSksdGhpc30saGFzOmZ1bmN0aW9uKGUpe3JldHVybiBlPy0xPFMuaW5BcnJheShlLHMpOjA8cy5sZW5ndGh9LGVtcHR5OmZ1bmN0aW9uKCl7cmV0dXJuIHMmJihzPVtdKSx0aGlzfSxkaXNhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIGE9dT1bXSxzPXQ9IiIsdGhpc30sZGlzYWJsZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hc30sbG9jazpmdW5jdGlvbigpe3JldHVybiBhPXU9W10sdHx8aXx8KHM9dD0iIiksdGhpc30sbG9ja2VkOmZ1bmN0aW9uKCl7cmV0dXJuISFhfSxmaXJlV2l0aDpmdW5jdGlvbihlLHQpe3JldHVybiBhfHwodD1bZSwodD10fHxbXSkuc2xpY2U/dC5zbGljZSgpOnRdLHUucHVzaCh0KSxpfHxjKCkpLHRoaXN9LGZpcmU6ZnVuY3Rpb24oKXtyZXR1cm4gZi5maXJlV2l0aCh0aGlzLGFyZ3VtZW50cyksdGhpc30sZmlyZWQ6ZnVuY3Rpb24oKXtyZXR1cm4hIW99fTtyZXR1cm4gZn0sUy5leHRlbmQoe0RlZmVycmVkOmZ1bmN0aW9uKGUpe3ZhciBvPVtbIm5vdGlmeSIsInByb2dyZXNzIixTLkNhbGxiYWNrcygibWVtb3J5IiksUy5DYWxsYmFja3MoIm1lbW9yeSIpLDJdLFsicmVzb2x2ZSIsImRvbmUiLFMuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLFMuQ2FsbGJhY2tzKCJvbmNlIG1lbW9yeSIpLDAsInJlc29sdmVkIl0sWyJyZWplY3QiLCJmYWlsIixTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSxTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSwxLCJyZWplY3RlZCJdXSxpPSJwZW5kaW5nIixhPXtzdGF0ZTpmdW5jdGlvbigpe3JldHVybiBpfSxhbHdheXM6ZnVuY3Rpb24oKXtyZXR1cm4gcy5kb25lKGFyZ3VtZW50cykuZmFpbChhcmd1bWVudHMpLHRoaXN9LCJjYXRjaCI6ZnVuY3Rpb24oZSl7cmV0dXJuIGEudGhlbihudWxsLGUpfSxwaXBlOmZ1bmN0aW9uKCl7dmFyIGk9YXJndW1lbnRzO3JldHVybiBTLkRlZmVycmVkKGZ1bmN0aW9uKHIpe1MuZWFjaChvLGZ1bmN0aW9uKGUsdCl7dmFyIG49bShpW3RbNF1dKSYmaVt0WzRdXTtzW3RbMV1dKGZ1bmN0aW9uKCl7dmFyIGU9biYmbi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7ZSYmbShlLnByb21pc2UpP2UucHJvbWlzZSgpLnByb2dyZXNzKHIubm90aWZ5KS5kb25lKHIucmVzb2x2ZSkuZmFpbChyLnJlamVjdCk6clt0WzBdKyJXaXRoIl0odGhpcyxuP1tlXTphcmd1bWVudHMpfSl9KSxpPW51bGx9KS5wcm9taXNlKCl9LHRoZW46ZnVuY3Rpb24odCxuLHIpe3ZhciB1PTA7ZnVuY3Rpb24gbChpLG8sYSxzKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10aGlzLHI9YXJndW1lbnRzLGU9ZnVuY3Rpb24oKXt2YXIgZSx0O2lmKCEoaTx1KSl7aWYoKGU9YS5hcHBseShuLHIpKT09PW8ucHJvbWlzZSgpKXRocm93IG5ldyBUeXBlRXJyb3IoIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvbiIpO3Q9ZSYmKCJvYmplY3QiPT10eXBlb2YgZXx8ImZ1bmN0aW9uIj09dHlwZW9mIGUpJiZlLnRoZW4sbSh0KT9zP3QuY2FsbChlLGwodSxvLFIscyksbCh1LG8sTSxzKSk6KHUrKyx0LmNhbGwoZSxsKHUsbyxSLHMpLGwodSxvLE0scyksbCh1LG8sUixvLm5vdGlmeVdpdGgpKSk6KGEhPT1SJiYobj12b2lkIDAscj1bZV0pLChzfHxvLnJlc29sdmVXaXRoKShuLHIpKX19LHQ9cz9lOmZ1bmN0aW9uKCl7dHJ5e2UoKX1jYXRjaChlKXtTLkRlZmVycmVkLmV4Y2VwdGlvbkhvb2smJlMuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayhlLHQuc3RhY2tUcmFjZSksdTw9aSsxJiYoYSE9PU0mJihuPXZvaWQgMCxyPVtlXSksby5yZWplY3RXaXRoKG4scikpfX07aT90KCk6KFMuRGVmZXJyZWQuZ2V0U3RhY2tIb29rJiYodC5zdGFja1RyYWNlPVMuRGVmZXJyZWQuZ2V0U3RhY2tIb29rKCkpLEMuc2V0VGltZW91dCh0KSl9fXJldHVybiBTLkRlZmVycmVkKGZ1bmN0aW9uKGUpe29bMF1bM10uYWRkKGwoMCxlLG0ocik/cjpSLGUubm90aWZ5V2l0aCkpLG9bMV1bM10uYWRkKGwoMCxlLG0odCk/dDpSKSksb1syXVszXS5hZGQobCgwLGUsbShuKT9uOk0pKX0pLnByb21pc2UoKX0scHJvbWlzZTpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9ZT9TLmV4dGVuZChlLGEpOmF9fSxzPXt9O3JldHVybiBTLmVhY2gobyxmdW5jdGlvbihlLHQpe3ZhciBuPXRbMl0scj10WzVdO2FbdFsxXV09bi5hZGQsciYmbi5hZGQoZnVuY3Rpb24oKXtpPXJ9LG9bMy1lXVsyXS5kaXNhYmxlLG9bMy1lXVszXS5kaXNhYmxlLG9bMF1bMl0ubG9jayxvWzBdWzNdLmxvY2spLG4uYWRkKHRbM10uZmlyZSksc1t0WzBdXT1mdW5jdGlvbigpe3JldHVybiBzW3RbMF0rIldpdGgiXSh0aGlzPT09cz92b2lkIDA6dGhpcyxhcmd1bWVudHMpLHRoaXN9LHNbdFswXSsiV2l0aCJdPW4uZmlyZVdpdGh9KSxhLnByb21pc2UocyksZSYmZS5jYWxsKHMscyksc30sd2hlbjpmdW5jdGlvbihlKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoLHQ9bixyPUFycmF5KHQpLGk9cy5jYWxsKGFyZ3VtZW50cyksbz1TLkRlZmVycmVkKCksYT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7clt0XT10aGlzLGlbdF09MTxhcmd1bWVudHMubGVuZ3RoP3MuY2FsbChhcmd1bWVudHMpOmUsLS1ufHxvLnJlc29sdmVXaXRoKHIsaSl9fTtpZihuPD0xJiYoSShlLG8uZG9uZShhKHQpKS5yZXNvbHZlLG8ucmVqZWN0LCFuKSwicGVuZGluZyI9PT1vLnN0YXRlKCl8fG0oaVt0XSYmaVt0XS50aGVuKSkpcmV0dXJuIG8udGhlbigpO3doaWxlKHQtLSlJKGlbdF0sYSh0KSxvLnJlamVjdCk7cmV0dXJuIG8ucHJvbWlzZSgpfX0pO3ZhciBXPS9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO1MuRGVmZXJyZWQuZXhjZXB0aW9uSG9vaz1mdW5jdGlvbihlLHQpe0MuY29uc29sZSYmQy5jb25zb2xlLndhcm4mJmUmJlcudGVzdChlLm5hbWUpJiZDLmNvbnNvbGUud2FybigialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogIitlLm1lc3NhZ2UsZS5zdGFjayx0KX0sUy5yZWFkeUV4Y2VwdGlvbj1mdW5jdGlvbihlKXtDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0aHJvdyBlfSl9O3ZhciBGPVMuRGVmZXJyZWQoKTtmdW5jdGlvbiBCKCl7RS5yZW1vdmVFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIixCKSxDLnJlbW92ZUV2ZW50TGlzdGVuZXIoImxvYWQiLEIpLFMucmVhZHkoKX1TLmZuLnJlYWR5PWZ1bmN0aW9uKGUpe3JldHVybiBGLnRoZW4oZSlbImNhdGNoIl0oZnVuY3Rpb24oZSl7Uy5yZWFkeUV4Y2VwdGlvbihlKX0pLHRoaXN9LFMuZXh0ZW5kKHtpc1JlYWR5OiExLHJlYWR5V2FpdDoxLHJlYWR5OmZ1bmN0aW9uKGUpeyghMD09PWU/LS1TLnJlYWR5V2FpdDpTLmlzUmVhZHkpfHwoUy5pc1JlYWR5PSEwKSE9PWUmJjA8LS1TLnJlYWR5V2FpdHx8Ri5yZXNvbHZlV2l0aChFLFtTXSl9fSksUy5yZWFkeS50aGVuPUYudGhlbiwiY29tcGxldGUiPT09RS5yZWFkeVN0YXRlfHwibG9hZGluZyIhPT1FLnJlYWR5U3RhdGUmJiFFLmRvY3VtZW50RWxlbWVudC5kb1Njcm9sbD9DLnNldFRpbWVvdXQoUy5yZWFkeSk6KEUuYWRkRXZlbnRMaXN0ZW5lcigiRE9NQ29udGVudExvYWRlZCIsQiksQy5hZGRFdmVudExpc3RlbmVyKCJsb2FkIixCKSk7dmFyICQ9ZnVuY3Rpb24oZSx0LG4scixpLG8sYSl7dmFyIHM9MCx1PWUubGVuZ3RoLGw9bnVsbD09bjtpZigib2JqZWN0Ij09PXcobikpZm9yKHMgaW4gaT0hMCxuKSQoZSx0LHMsbltzXSwhMCxvLGEpO2Vsc2UgaWYodm9pZCAwIT09ciYmKGk9ITAsbShyKXx8KGE9ITApLGwmJihhPyh0LmNhbGwoZSxyKSx0PW51bGwpOihsPXQsdD1mdW5jdGlvbihlLHQsbil7cmV0dXJuIGwuY2FsbChTKGUpLG4pfSkpLHQpKWZvcig7czx1O3MrKyl0KGVbc10sbixhP3I6ci5jYWxsKGVbc10scyx0KGVbc10sbikpKTtyZXR1cm4gaT9lOmw/dC5jYWxsKGUpOnU/dChlWzBdLG4pOm99LF89L14tbXMtLyx6PS8tKFthLXpdKS9nO2Z1bmN0aW9uIFUoZSx0KXtyZXR1cm4gdC50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIFgoZSl7cmV0dXJuIGUucmVwbGFjZShfLCJtcy0iKS5yZXBsYWNlKHosVSl9dmFyIFY9ZnVuY3Rpb24oZSl7cmV0dXJuIDE9PT1lLm5vZGVUeXBlfHw5PT09ZS5ub2RlVHlwZXx8IStlLm5vZGVUeXBlfTtmdW5jdGlvbiBHKCl7dGhpcy5leHBhbmRvPVMuZXhwYW5kbytHLnVpZCsrfUcudWlkPTEsRy5wcm90b3R5cGU9e2NhY2hlOmZ1bmN0aW9uKGUpe3ZhciB0PWVbdGhpcy5leHBhbmRvXTtyZXR1cm4gdHx8KHQ9e30sVihlKSYmKGUubm9kZVR5cGU/ZVt0aGlzLmV4cGFuZG9dPXQ6T2JqZWN0LmRlZmluZVByb3BlcnR5KGUsdGhpcy5leHBhbmRvLHt2YWx1ZTp0LGNvbmZpZ3VyYWJsZTohMH0pKSksdH0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPXRoaXMuY2FjaGUoZSk7aWYoInN0cmluZyI9PXR5cGVvZiB0KWlbWCh0KV09bjtlbHNlIGZvcihyIGluIHQpaVtYKHIpXT10W3JdO3JldHVybiBpfSxnZXQ6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdm9pZCAwPT09dD90aGlzLmNhY2hlKGUpOmVbdGhpcy5leHBhbmRvXSYmZVt0aGlzLmV4cGFuZG9dW1godCldfSxhY2Nlc3M6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiB2b2lkIDA9PT10fHx0JiYic3RyaW5nIj09dHlwZW9mIHQmJnZvaWQgMD09PW4/dGhpcy5nZXQoZSx0KToodGhpcy5zZXQoZSx0LG4pLHZvaWQgMCE9PW4/bjp0KX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIG4scj1lW3RoaXMuZXhwYW5kb107aWYodm9pZCAwIT09cil7aWYodm9pZCAwIT09dCl7bj0odD1BcnJheS5pc0FycmF5KHQpP3QubWFwKFgpOih0PVgodCkpaW4gcj9bdF06dC5tYXRjaChQKXx8W10pLmxlbmd0aDt3aGlsZShuLS0pZGVsZXRlIHJbdFtuXV19KHZvaWQgMD09PXR8fFMuaXNFbXB0eU9iamVjdChyKSkmJihlLm5vZGVUeXBlP2VbdGhpcy5leHBhbmRvXT12b2lkIDA6ZGVsZXRlIGVbdGhpcy5leHBhbmRvXSl9fSxoYXNEYXRhOmZ1bmN0aW9uKGUpe3ZhciB0PWVbdGhpcy5leHBhbmRvXTtyZXR1cm4gdm9pZCAwIT09dCYmIVMuaXNFbXB0eU9iamVjdCh0KX19O3ZhciBZPW5ldyBHLFE9bmV3IEcsSj0vXig/Olx7W1x3XFddKlx9fFxbW1x3XFddKlxdKSQvLEs9L1tBLVpdL2c7ZnVuY3Rpb24gWihlLHQsbil7dmFyIHIsaTtpZih2b2lkIDA9PT1uJiYxPT09ZS5ub2RlVHlwZSlpZihyPSJkYXRhLSIrdC5yZXBsYWNlKEssIi0kJiIpLnRvTG93ZXJDYXNlKCksInN0cmluZyI9PXR5cGVvZihuPWUuZ2V0QXR0cmlidXRlKHIpKSl7dHJ5e249InRydWUiPT09KGk9bil8fCJmYWxzZSIhPT1pJiYoIm51bGwiPT09aT9udWxsOmk9PT0raSsiIj8raTpKLnRlc3QoaSk/SlNPTi5wYXJzZShpKTppKX1jYXRjaChlKXt9US5zZXQoZSx0LG4pfWVsc2Ugbj12b2lkIDA7cmV0dXJuIG59Uy5leHRlbmQoe2hhc0RhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIFEuaGFzRGF0YShlKXx8WS5oYXNEYXRhKGUpfSxkYXRhOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gUS5hY2Nlc3MoZSx0LG4pfSxyZW1vdmVEYXRhOmZ1bmN0aW9uKGUsdCl7US5yZW1vdmUoZSx0KX0sX2RhdGE6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBZLmFjY2VzcyhlLHQsbil9LF9yZW1vdmVEYXRhOmZ1bmN0aW9uKGUsdCl7WS5yZW1vdmUoZSx0KX19KSxTLmZuLmV4dGVuZCh7ZGF0YTpmdW5jdGlvbihuLGUpe3ZhciB0LHIsaSxvPXRoaXNbMF0sYT1vJiZvLmF0dHJpYnV0ZXM7aWYodm9pZCAwPT09bil7aWYodGhpcy5sZW5ndGgmJihpPVEuZ2V0KG8pLDE9PT1vLm5vZGVUeXBlJiYhWS5nZXQobywiaGFzRGF0YUF0dHJzIikpKXt0PWEubGVuZ3RoO3doaWxlKHQtLSlhW3RdJiYwPT09KHI9YVt0XS5uYW1lKS5pbmRleE9mKCJkYXRhLSIpJiYocj1YKHIuc2xpY2UoNSkpLFoobyxyLGlbcl0pKTtZLnNldChvLCJoYXNEYXRhQXR0cnMiLCEwKX1yZXR1cm4gaX1yZXR1cm4ib2JqZWN0Ij09dHlwZW9mIG4/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7US5zZXQodGhpcyxuKX0pOiQodGhpcyxmdW5jdGlvbihlKXt2YXIgdDtpZihvJiZ2b2lkIDA9PT1lKXJldHVybiB2b2lkIDAhPT0odD1RLmdldChvLG4pKT90OnZvaWQgMCE9PSh0PVoobyxuKSk/dDp2b2lkIDA7dGhpcy5lYWNoKGZ1bmN0aW9uKCl7US5zZXQodGhpcyxuLGUpfSl9LG51bGwsZSwxPGFyZ3VtZW50cy5sZW5ndGgsbnVsbCwhMCl9LHJlbW92ZURhdGE6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1EucmVtb3ZlKHRoaXMsZSl9KX19KSxTLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByO2lmKGUpcmV0dXJuIHQ9KHR8fCJmeCIpKyJxdWV1ZSIscj1ZLmdldChlLHQpLG4mJighcnx8QXJyYXkuaXNBcnJheShuKT9yPVkuYWNjZXNzKGUsdCxTLm1ha2VBcnJheShuKSk6ci5wdXNoKG4pKSxyfHxbXX0sZGVxdWV1ZTpmdW5jdGlvbihlLHQpe3Q9dHx8ImZ4Ijt2YXIgbj1TLnF1ZXVlKGUsdCkscj1uLmxlbmd0aCxpPW4uc2hpZnQoKSxvPVMuX3F1ZXVlSG9va3MoZSx0KTsiaW5wcm9ncmVzcyI9PT1pJiYoaT1uLnNoaWZ0KCksci0tKSxpJiYoImZ4Ij09PXQmJm4udW5zaGlmdCgiaW5wcm9ncmVzcyIpLGRlbGV0ZSBvLnN0b3AsaS5jYWxsKGUsZnVuY3Rpb24oKXtTLmRlcXVldWUoZSx0KX0sbykpLCFyJiZvJiZvLmVtcHR5LmZpcmUoKX0sX3F1ZXVlSG9va3M6ZnVuY3Rpb24oZSx0KXt2YXIgbj10KyJxdWV1ZUhvb2tzIjtyZXR1cm4gWS5nZXQoZSxuKXx8WS5hY2Nlc3MoZSxuLHtlbXB0eTpTLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKS5hZGQoZnVuY3Rpb24oKXtZLnJlbW92ZShlLFt0KyJxdWV1ZSIsbl0pfSl9KX19KSxTLmZuLmV4dGVuZCh7cXVldWU6ZnVuY3Rpb24odCxuKXt2YXIgZT0yO3JldHVybiJzdHJpbmciIT10eXBlb2YgdCYmKG49dCx0PSJmeCIsZS0tKSxhcmd1bWVudHMubGVuZ3RoPGU/Uy5xdWV1ZSh0aGlzWzBdLHQpOnZvaWQgMD09PW4/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TLnF1ZXVlKHRoaXMsdCxuKTtTLl9xdWV1ZUhvb2tzKHRoaXMsdCksImZ4Ij09PXQmJiJpbnByb2dyZXNzIiE9PWVbMF0mJlMuZGVxdWV1ZSh0aGlzLHQpfSl9LGRlcXVldWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZGVxdWV1ZSh0aGlzLGUpfSl9LGNsZWFyUXVldWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucXVldWUoZXx8ImZ4IixbXSl9LHByb21pc2U6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPTEsaT1TLkRlZmVycmVkKCksbz10aGlzLGE9dGhpcy5sZW5ndGgscz1mdW5jdGlvbigpey0tcnx8aS5yZXNvbHZlV2l0aChvLFtvXSl9OyJzdHJpbmciIT10eXBlb2YgZSYmKHQ9ZSxlPXZvaWQgMCksZT1lfHwiZngiO3doaWxlKGEtLSkobj1ZLmdldChvW2FdLGUrInF1ZXVlSG9va3MiKSkmJm4uZW1wdHkmJihyKyssbi5lbXB0eS5hZGQocykpO3JldHVybiBzKCksaS5wcm9taXNlKHQpfX0pO3ZhciBlZT0vWystXT8oPzpcZCpcLnwpXGQrKD86W2VFXVsrLV0/XGQrfCkvLnNvdXJjZSx0ZT1uZXcgUmVnRXhwKCJeKD86KFsrLV0pPXwpKCIrZWUrIikoW2EteiVdKikkIiwiaSIpLG5lPVsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0scmU9RS5kb2N1bWVudEVsZW1lbnQsaWU9ZnVuY3Rpb24oZSl7cmV0dXJuIFMuY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpfSxvZT17Y29tcG9zZWQ6ITB9O3JlLmdldFJvb3ROb2RlJiYoaWU9ZnVuY3Rpb24oZSl7cmV0dXJuIFMuY29udGFpbnMoZS5vd25lckRvY3VtZW50LGUpfHxlLmdldFJvb3ROb2RlKG9lKT09PWUub3duZXJEb2N1bWVudH0pO3ZhciBhZT1mdW5jdGlvbihlLHQpe3JldHVybiJub25lIj09PShlPXR8fGUpLnN0eWxlLmRpc3BsYXl8fCIiPT09ZS5zdHlsZS5kaXNwbGF5JiZpZShlKSYmIm5vbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIpfTtmdW5jdGlvbiBzZShlLHQsbixyKXt2YXIgaSxvLGE9MjAscz1yP2Z1bmN0aW9uKCl7cmV0dXJuIHIuY3VyKCl9OmZ1bmN0aW9uKCl7cmV0dXJuIFMuY3NzKGUsdCwiIil9LHU9cygpLGw9biYmblszXXx8KFMuY3NzTnVtYmVyW3RdPyIiOiJweCIpLGM9ZS5ub2RlVHlwZSYmKFMuY3NzTnVtYmVyW3RdfHwicHgiIT09bCYmK3UpJiZ0ZS5leGVjKFMuY3NzKGUsdCkpO2lmKGMmJmNbM10hPT1sKXt1Lz0yLGw9bHx8Y1szXSxjPSt1fHwxO3doaWxlKGEtLSlTLnN0eWxlKGUsdCxjK2wpLCgxLW8pKigxLShvPXMoKS91fHwuNSkpPD0wJiYoYT0wKSxjLz1vO2MqPTIsUy5zdHlsZShlLHQsYytsKSxuPW58fFtdfXJldHVybiBuJiYoYz0rY3x8K3V8fDAsaT1uWzFdP2MrKG5bMV0rMSkqblsyXTorblsyXSxyJiYoci51bml0PWwsci5zdGFydD1jLHIuZW5kPWkpKSxpfXZhciB1ZT17fTtmdW5jdGlvbiBsZShlLHQpe2Zvcih2YXIgbixyLGksbyxhLHMsdSxsPVtdLGM9MCxmPWUubGVuZ3RoO2M8ZjtjKyspKHI9ZVtjXSkuc3R5bGUmJihuPXIuc3R5bGUuZGlzcGxheSx0Pygibm9uZSI9PT1uJiYobFtjXT1ZLmdldChyLCJkaXNwbGF5Iil8fG51bGwsbFtjXXx8KHIuc3R5bGUuZGlzcGxheT0iIikpLCIiPT09ci5zdHlsZS5kaXNwbGF5JiZhZShyKSYmKGxbY109KHU9YT1vPXZvaWQgMCxhPShpPXIpLm93bmVyRG9jdW1lbnQscz1pLm5vZGVOYW1lLCh1PXVlW3NdKXx8KG89YS5ib2R5LmFwcGVuZENoaWxkKGEuY3JlYXRlRWxlbWVudChzKSksdT1TLmNzcyhvLCJkaXNwbGF5Iiksby5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG8pLCJub25lIj09PXUmJih1PSJibG9jayIpLHVlW3NdPXUpKSkpOiJub25lIiE9PW4mJihsW2NdPSJub25lIixZLnNldChyLCJkaXNwbGF5IixuKSkpO2ZvcihjPTA7YzxmO2MrKyludWxsIT1sW2NdJiYoZVtjXS5zdHlsZS5kaXNwbGF5PWxbY10pO3JldHVybiBlfVMuZm4uZXh0ZW5kKHtzaG93OmZ1bmN0aW9uKCl7cmV0dXJuIGxlKHRoaXMsITApfSxoaWRlOmZ1bmN0aW9uKCl7cmV0dXJuIGxlKHRoaXMpfSx0b2dnbGU6ZnVuY3Rpb24oZSl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgZT9lP3RoaXMuc2hvdygpOnRoaXMuaGlkZSgpOnRoaXMuZWFjaChmdW5jdGlvbigpe2FlKHRoaXMpP1ModGhpcykuc2hvdygpOlModGhpcykuaGlkZSgpfSl9fSk7dmFyIGNlLGZlLHBlPS9eKD86Y2hlY2tib3h8cmFkaW8pJC9pLGRlPS88KFthLXpdW15cL1wwPlx4MjBcdFxyXG5cZl0qKS9pLGhlPS9eJHxebW9kdWxlJHxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaTtjZT1FLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKS5hcHBlbmRDaGlsZChFLmNyZWF0ZUVsZW1lbnQoImRpdiIpKSwoZmU9RS5jcmVhdGVFbGVtZW50KCJpbnB1dCIpKS5zZXRBdHRyaWJ1dGUoInR5cGUiLCJyYWRpbyIpLGZlLnNldEF0dHJpYnV0ZSgiY2hlY2tlZCIsImNoZWNrZWQiKSxmZS5zZXRBdHRyaWJ1dGUoIm5hbWUiLCJ0IiksY2UuYXBwZW5kQ2hpbGQoZmUpLHkuY2hlY2tDbG9uZT1jZS5jbG9uZU5vZGUoITApLmNsb25lTm9kZSghMCkubGFzdENoaWxkLmNoZWNrZWQsY2UuaW5uZXJIVE1MPSI8dGV4dGFyZWE+eDwvdGV4dGFyZWE+Iix5Lm5vQ2xvbmVDaGVja2VkPSEhY2UuY2xvbmVOb2RlKCEwKS5sYXN0Q2hpbGQuZGVmYXVsdFZhbHVlLGNlLmlubmVySFRNTD0iPG9wdGlvbj48L29wdGlvbj4iLHkub3B0aW9uPSEhY2UubGFzdENoaWxkO3ZhciBnZT17dGhlYWQ6WzEsIjx0YWJsZT4iLCI8L3RhYmxlPiJdLGNvbDpbMiwiPHRhYmxlPjxjb2xncm91cD4iLCI8L2NvbGdyb3VwPjwvdGFibGU+Il0sdHI6WzIsIjx0YWJsZT48dGJvZHk+IiwiPC90Ym9keT48L3RhYmxlPiJdLHRkOlszLCI8dGFibGU+PHRib2R5Pjx0cj4iLCI8L3RyPjwvdGJvZHk+PC90YWJsZT4iXSxfZGVmYXVsdDpbMCwiIiwiIl19O2Z1bmN0aW9uIHZlKGUsdCl7dmFyIG47cmV0dXJuIG49InVuZGVmaW5lZCIhPXR5cGVvZiBlLmdldEVsZW1lbnRzQnlUYWdOYW1lP2UuZ2V0RWxlbWVudHNCeVRhZ05hbWUodHx8IioiKToidW5kZWZpbmVkIiE9dHlwZW9mIGUucXVlcnlTZWxlY3RvckFsbD9lLnF1ZXJ5U2VsZWN0b3JBbGwodHx8IioiKTpbXSx2b2lkIDA9PT10fHx0JiZBKGUsdCk/Uy5tZXJnZShbZV0sbik6bn1mdW5jdGlvbiB5ZShlLHQpe2Zvcih2YXIgbj0wLHI9ZS5sZW5ndGg7bjxyO24rKylZLnNldChlW25dLCJnbG9iYWxFdmFsIiwhdHx8WS5nZXQodFtuXSwiZ2xvYmFsRXZhbCIpKX1nZS50Ym9keT1nZS50Zm9vdD1nZS5jb2xncm91cD1nZS5jYXB0aW9uPWdlLnRoZWFkLGdlLnRoPWdlLnRkLHkub3B0aW9ufHwoZ2Uub3B0Z3JvdXA9Z2Uub3B0aW9uPVsxLCI8c2VsZWN0IG11bHRpcGxlPSdtdWx0aXBsZSc+IiwiPC9zZWxlY3Q+Il0pO3ZhciBtZT0vPHwmIz9cdys7LztmdW5jdGlvbiB4ZShlLHQsbixyLGkpe2Zvcih2YXIgbyxhLHMsdSxsLGMsZj10LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKSxwPVtdLGQ9MCxoPWUubGVuZ3RoO2Q8aDtkKyspaWYoKG89ZVtkXSl8fDA9PT1vKWlmKCJvYmplY3QiPT09dyhvKSlTLm1lcmdlKHAsby5ub2RlVHlwZT9bb106byk7ZWxzZSBpZihtZS50ZXN0KG8pKXthPWF8fGYuYXBwZW5kQ2hpbGQodC5jcmVhdGVFbGVtZW50KCJkaXYiKSkscz0oZGUuZXhlYyhvKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKSx1PWdlW3NdfHxnZS5fZGVmYXVsdCxhLmlubmVySFRNTD11WzFdK1MuaHRtbFByZWZpbHRlcihvKSt1WzJdLGM9dVswXTt3aGlsZShjLS0pYT1hLmxhc3RDaGlsZDtTLm1lcmdlKHAsYS5jaGlsZE5vZGVzKSwoYT1mLmZpcnN0Q2hpbGQpLnRleHRDb250ZW50PSIifWVsc2UgcC5wdXNoKHQuY3JlYXRlVGV4dE5vZGUobykpO2YudGV4dENvbnRlbnQ9IiIsZD0wO3doaWxlKG89cFtkKytdKWlmKHImJi0xPFMuaW5BcnJheShvLHIpKWkmJmkucHVzaChvKTtlbHNlIGlmKGw9aWUobyksYT12ZShmLmFwcGVuZENoaWxkKG8pLCJzY3JpcHQiKSxsJiZ5ZShhKSxuKXtjPTA7d2hpbGUobz1hW2MrK10paGUudGVzdChvLnR5cGV8fCIiKSYmbi5wdXNoKG8pfXJldHVybiBmfXZhciBiZT0vXmtleS8sd2U9L14oPzptb3VzZXxwb2ludGVyfGNvbnRleHRtZW51fGRyYWd8ZHJvcCl8Y2xpY2svLFRlPS9eKFteLl0qKSg/OlwuKC4rKXwpLztmdW5jdGlvbiBDZSgpe3JldHVybiEwfWZ1bmN0aW9uIEVlKCl7cmV0dXJuITF9ZnVuY3Rpb24gU2UoZSx0KXtyZXR1cm4gZT09PWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBFLmFjdGl2ZUVsZW1lbnR9Y2F0Y2goZSl7fX0oKT09KCJmb2N1cyI9PT10KX1mdW5jdGlvbiBrZShlLHQsbixyLGksbyl7dmFyIGEscztpZigib2JqZWN0Ij09dHlwZW9mIHQpe2ZvcihzIGluInN0cmluZyIhPXR5cGVvZiBuJiYocj1yfHxuLG49dm9pZCAwKSx0KWtlKGUscyxuLHIsdFtzXSxvKTtyZXR1cm4gZX1pZihudWxsPT1yJiZudWxsPT1pPyhpPW4scj1uPXZvaWQgMCk6bnVsbD09aSYmKCJzdHJpbmciPT10eXBlb2Ygbj8oaT1yLHI9dm9pZCAwKTooaT1yLHI9bixuPXZvaWQgMCkpLCExPT09aSlpPUVlO2Vsc2UgaWYoIWkpcmV0dXJuIGU7cmV0dXJuIDE9PT1vJiYoYT1pLChpPWZ1bmN0aW9uKGUpe3JldHVybiBTKCkub2ZmKGUpLGEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkuZ3VpZD1hLmd1aWR8fChhLmd1aWQ9Uy5ndWlkKyspKSxlLmVhY2goZnVuY3Rpb24oKXtTLmV2ZW50LmFkZCh0aGlzLHQsaSxyLG4pfSl9ZnVuY3Rpb24gQWUoZSxpLG8pe28/KFkuc2V0KGUsaSwhMSksUy5ldmVudC5hZGQoZSxpLHtuYW1lc3BhY2U6ITEsaGFuZGxlcjpmdW5jdGlvbihlKXt2YXIgdCxuLHI9WS5nZXQodGhpcyxpKTtpZigxJmUuaXNUcmlnZ2VyJiZ0aGlzW2ldKXtpZihyLmxlbmd0aCkoUy5ldmVudC5zcGVjaWFsW2ldfHx7fSkuZGVsZWdhdGVUeXBlJiZlLnN0b3BQcm9wYWdhdGlvbigpO2Vsc2UgaWYocj1zLmNhbGwoYXJndW1lbnRzKSxZLnNldCh0aGlzLGksciksdD1vKHRoaXMsaSksdGhpc1tpXSgpLHIhPT0obj1ZLmdldCh0aGlzLGkpKXx8dD9ZLnNldCh0aGlzLGksITEpOm49e30sciE9PW4pcmV0dXJuIGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksZS5wcmV2ZW50RGVmYXVsdCgpLG4udmFsdWV9ZWxzZSByLmxlbmd0aCYmKFkuc2V0KHRoaXMsaSx7dmFsdWU6Uy5ldmVudC50cmlnZ2VyKFMuZXh0ZW5kKHJbMF0sUy5FdmVudC5wcm90b3R5cGUpLHIuc2xpY2UoMSksdGhpcyl9KSxlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKX19KSk6dm9pZCAwPT09WS5nZXQoZSxpKSYmUy5ldmVudC5hZGQoZSxpLENlKX1TLmV2ZW50PXtnbG9iYWw6e30sYWRkOmZ1bmN0aW9uKHQsZSxuLHIsaSl7dmFyIG8sYSxzLHUsbCxjLGYscCxkLGgsZyx2PVkuZ2V0KHQpO2lmKFYodCkpe24uaGFuZGxlciYmKG49KG89bikuaGFuZGxlcixpPW8uc2VsZWN0b3IpLGkmJlMuZmluZC5tYXRjaGVzU2VsZWN0b3IocmUsaSksbi5ndWlkfHwobi5ndWlkPVMuZ3VpZCsrKSwodT12LmV2ZW50cyl8fCh1PXYuZXZlbnRzPU9iamVjdC5jcmVhdGUobnVsbCkpLChhPXYuaGFuZGxlKXx8KGE9di5oYW5kbGU9ZnVuY3Rpb24oZSl7cmV0dXJuInVuZGVmaW5lZCIhPXR5cGVvZiBTJiZTLmV2ZW50LnRyaWdnZXJlZCE9PWUudHlwZT9TLmV2ZW50LmRpc3BhdGNoLmFwcGx5KHQsYXJndW1lbnRzKTp2b2lkIDB9KSxsPShlPShlfHwiIikubWF0Y2goUCl8fFsiIl0pLmxlbmd0aDt3aGlsZShsLS0pZD1nPShzPVRlLmV4ZWMoZVtsXSl8fFtdKVsxXSxoPShzWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksZCYmKGY9Uy5ldmVudC5zcGVjaWFsW2RdfHx7fSxkPShpP2YuZGVsZWdhdGVUeXBlOmYuYmluZFR5cGUpfHxkLGY9Uy5ldmVudC5zcGVjaWFsW2RdfHx7fSxjPVMuZXh0ZW5kKHt0eXBlOmQsb3JpZ1R5cGU6ZyxkYXRhOnIsaGFuZGxlcjpuLGd1aWQ6bi5ndWlkLHNlbGVjdG9yOmksbmVlZHNDb250ZXh0OmkmJlMuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdChpKSxuYW1lc3BhY2U6aC5qb2luKCIuIil9LG8pLChwPXVbZF0pfHwoKHA9dVtkXT1bXSkuZGVsZWdhdGVDb3VudD0wLGYuc2V0dXAmJiExIT09Zi5zZXR1cC5jYWxsKHQscixoLGEpfHx0LmFkZEV2ZW50TGlzdGVuZXImJnQuYWRkRXZlbnRMaXN0ZW5lcihkLGEpKSxmLmFkZCYmKGYuYWRkLmNhbGwodCxjKSxjLmhhbmRsZXIuZ3VpZHx8KGMuaGFuZGxlci5ndWlkPW4uZ3VpZCkpLGk/cC5zcGxpY2UocC5kZWxlZ2F0ZUNvdW50KyssMCxjKTpwLnB1c2goYyksUy5ldmVudC5nbG9iYWxbZF09ITApfX0scmVtb3ZlOmZ1bmN0aW9uKGUsdCxuLHIsaSl7dmFyIG8sYSxzLHUsbCxjLGYscCxkLGgsZyx2PVkuaGFzRGF0YShlKSYmWS5nZXQoZSk7aWYodiYmKHU9di5ldmVudHMpKXtsPSh0PSh0fHwiIikubWF0Y2goUCl8fFsiIl0pLmxlbmd0aDt3aGlsZShsLS0paWYoZD1nPShzPVRlLmV4ZWModFtsXSl8fFtdKVsxXSxoPShzWzJdfHwiIikuc3BsaXQoIi4iKS5zb3J0KCksZCl7Zj1TLmV2ZW50LnNwZWNpYWxbZF18fHt9LHA9dVtkPShyP2YuZGVsZWdhdGVUeXBlOmYuYmluZFR5cGUpfHxkXXx8W10scz1zWzJdJiZuZXcgUmVnRXhwKCIoXnxcXC4pIitoLmpvaW4oIlxcLig/Oi4qXFwufCkiKSsiKFxcLnwkKSIpLGE9bz1wLmxlbmd0aDt3aGlsZShvLS0pYz1wW29dLCFpJiZnIT09Yy5vcmlnVHlwZXx8biYmbi5ndWlkIT09Yy5ndWlkfHxzJiYhcy50ZXN0KGMubmFtZXNwYWNlKXx8ciYmciE9PWMuc2VsZWN0b3ImJigiKioiIT09cnx8IWMuc2VsZWN0b3IpfHwocC5zcGxpY2UobywxKSxjLnNlbGVjdG9yJiZwLmRlbGVnYXRlQ291bnQtLSxmLnJlbW92ZSYmZi5yZW1vdmUuY2FsbChlLGMpKTthJiYhcC5sZW5ndGgmJihmLnRlYXJkb3duJiYhMSE9PWYudGVhcmRvd24uY2FsbChlLGgsdi5oYW5kbGUpfHxTLnJlbW92ZUV2ZW50KGUsZCx2LmhhbmRsZSksZGVsZXRlIHVbZF0pfWVsc2UgZm9yKGQgaW4gdSlTLmV2ZW50LnJlbW92ZShlLGQrdFtsXSxuLHIsITApO1MuaXNFbXB0eU9iamVjdCh1KSYmWS5yZW1vdmUoZSwiaGFuZGxlIGV2ZW50cyIpfX0sZGlzcGF0Y2g6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGksbyxhLHM9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHU9Uy5ldmVudC5maXgoZSksbD0oWS5nZXQodGhpcywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW3UudHlwZV18fFtdLGM9Uy5ldmVudC5zcGVjaWFsW3UudHlwZV18fHt9O2ZvcihzWzBdPXUsdD0xO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspc1t0XT1hcmd1bWVudHNbdF07aWYodS5kZWxlZ2F0ZVRhcmdldD10aGlzLCFjLnByZURpc3BhdGNofHwhMSE9PWMucHJlRGlzcGF0Y2guY2FsbCh0aGlzLHUpKXthPVMuZXZlbnQuaGFuZGxlcnMuY2FsbCh0aGlzLHUsbCksdD0wO3doaWxlKChpPWFbdCsrXSkmJiF1LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkpe3UuY3VycmVudFRhcmdldD1pLmVsZW0sbj0wO3doaWxlKChvPWkuaGFuZGxlcnNbbisrXSkmJiF1LmlzSW1tZWRpYXRlUHJvcGFnYXRpb25TdG9wcGVkKCkpdS5ybmFtZXNwYWNlJiYhMSE9PW8ubmFtZXNwYWNlJiYhdS5ybmFtZXNwYWNlLnRlc3Qoby5uYW1lc3BhY2UpfHwodS5oYW5kbGVPYmo9byx1LmRhdGE9by5kYXRhLHZvaWQgMCE9PShyPSgoUy5ldmVudC5zcGVjaWFsW28ub3JpZ1R5cGVdfHx7fSkuaGFuZGxlfHxvLmhhbmRsZXIpLmFwcGx5KGkuZWxlbSxzKSkmJiExPT09KHUucmVzdWx0PXIpJiYodS5wcmV2ZW50RGVmYXVsdCgpLHUuc3RvcFByb3BhZ2F0aW9uKCkpKX1yZXR1cm4gYy5wb3N0RGlzcGF0Y2gmJmMucG9zdERpc3BhdGNoLmNhbGwodGhpcyx1KSx1LnJlc3VsdH19LGhhbmRsZXJzOmZ1bmN0aW9uKGUsdCl7dmFyIG4scixpLG8sYSxzPVtdLHU9dC5kZWxlZ2F0ZUNvdW50LGw9ZS50YXJnZXQ7aWYodSYmbC5ub2RlVHlwZSYmISgiY2xpY2siPT09ZS50eXBlJiYxPD1lLmJ1dHRvbikpZm9yKDtsIT09dGhpcztsPWwucGFyZW50Tm9kZXx8dGhpcylpZigxPT09bC5ub2RlVHlwZSYmKCJjbGljayIhPT1lLnR5cGV8fCEwIT09bC5kaXNhYmxlZCkpe2ZvcihvPVtdLGE9e30sbj0wO248dTtuKyspdm9pZCAwPT09YVtpPShyPXRbbl0pLnNlbGVjdG9yKyIgIl0mJihhW2ldPXIubmVlZHNDb250ZXh0Py0xPFMoaSx0aGlzKS5pbmRleChsKTpTLmZpbmQoaSx0aGlzLG51bGwsW2xdKS5sZW5ndGgpLGFbaV0mJm8ucHVzaChyKTtvLmxlbmd0aCYmcy5wdXNoKHtlbGVtOmwsaGFuZGxlcnM6b30pfXJldHVybiBsPXRoaXMsdTx0Lmxlbmd0aCYmcy5wdXNoKHtlbGVtOmwsaGFuZGxlcnM6dC5zbGljZSh1KX0pLHN9LGFkZFByb3A6ZnVuY3Rpb24odCxlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkoUy5FdmVudC5wcm90b3R5cGUsdCx7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsZ2V0Om0oZSk/ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIGUodGhpcy5vcmlnaW5hbEV2ZW50KX06ZnVuY3Rpb24oKXtpZih0aGlzLm9yaWdpbmFsRXZlbnQpcmV0dXJuIHRoaXMub3JpZ2luYWxFdmVudFt0XX0sc2V0OmZ1bmN0aW9uKGUpe09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLHQse2VudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmV9KX19KX0sZml4OmZ1bmN0aW9uKGUpe3JldHVybiBlW1MuZXhwYW5kb10/ZTpuZXcgUy5FdmVudChlKX0sc3BlY2lhbDp7bG9hZDp7bm9CdWJibGU6ITB9LGNsaWNrOntzZXR1cDpmdW5jdGlvbihlKXt2YXIgdD10aGlzfHxlO3JldHVybiBwZS50ZXN0KHQudHlwZSkmJnQuY2xpY2smJkEodCwiaW5wdXQiKSYmQWUodCwiY2xpY2siLENlKSwhMX0sdHJpZ2dlcjpmdW5jdGlvbihlKXt2YXIgdD10aGlzfHxlO3JldHVybiBwZS50ZXN0KHQudHlwZSkmJnQuY2xpY2smJkEodCwiaW5wdXQiKSYmQWUodCwiY2xpY2siKSwhMH0sX2RlZmF1bHQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS50YXJnZXQ7cmV0dXJuIHBlLnRlc3QodC50eXBlKSYmdC5jbGljayYmQSh0LCJpbnB1dCIpJiZZLmdldCh0LCJjbGljayIpfHxBKHQsImEiKX19LGJlZm9yZXVubG9hZDp7cG9zdERpc3BhdGNoOmZ1bmN0aW9uKGUpe3ZvaWQgMCE9PWUucmVzdWx0JiZlLm9yaWdpbmFsRXZlbnQmJihlLm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWU9ZS5yZXN1bHQpfX19fSxTLnJlbW92ZUV2ZW50PWZ1bmN0aW9uKGUsdCxuKXtlLnJlbW92ZUV2ZW50TGlzdGVuZXImJmUucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LG4pfSxTLkV2ZW50PWZ1bmN0aW9uKGUsdCl7aWYoISh0aGlzIGluc3RhbmNlb2YgUy5FdmVudCkpcmV0dXJuIG5ldyBTLkV2ZW50KGUsdCk7ZSYmZS50eXBlPyh0aGlzLm9yaWdpbmFsRXZlbnQ9ZSx0aGlzLnR5cGU9ZS50eXBlLHRoaXMuaXNEZWZhdWx0UHJldmVudGVkPWUuZGVmYXVsdFByZXZlbnRlZHx8dm9pZCAwPT09ZS5kZWZhdWx0UHJldmVudGVkJiYhMT09PWUucmV0dXJuVmFsdWU/Q2U6RWUsdGhpcy50YXJnZXQ9ZS50YXJnZXQmJjM9PT1lLnRhcmdldC5ub2RlVHlwZT9lLnRhcmdldC5wYXJlbnROb2RlOmUudGFyZ2V0LHRoaXMuY3VycmVudFRhcmdldD1lLmN1cnJlbnRUYXJnZXQsdGhpcy5yZWxhdGVkVGFyZ2V0PWUucmVsYXRlZFRhcmdldCk6dGhpcy50eXBlPWUsdCYmUy5leHRlbmQodGhpcyx0KSx0aGlzLnRpbWVTdGFtcD1lJiZlLnRpbWVTdGFtcHx8RGF0ZS5ub3coKSx0aGlzW1MuZXhwYW5kb109ITB9LFMuRXZlbnQucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpTLkV2ZW50LGlzRGVmYXVsdFByZXZlbnRlZDpFZSxpc1Byb3BhZ2F0aW9uU3RvcHBlZDpFZSxpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDpFZSxpc1NpbXVsYXRlZDohMSxwcmV2ZW50RGVmYXVsdDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3JpZ2luYWxFdmVudDt0aGlzLmlzRGVmYXVsdFByZXZlbnRlZD1DZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5wcmV2ZW50RGVmYXVsdCgpfSxzdG9wUHJvcGFnYXRpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9yaWdpbmFsRXZlbnQ7dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZD1DZSxlJiYhdGhpcy5pc1NpbXVsYXRlZCYmZS5zdG9wUHJvcGFnYXRpb24oKX0sc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcmlnaW5hbEV2ZW50O3RoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQ9Q2UsZSYmIXRoaXMuaXNTaW11bGF0ZWQmJmUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCksdGhpcy5zdG9wUHJvcGFnYXRpb24oKX19LFMuZWFjaCh7YWx0S2V5OiEwLGJ1YmJsZXM6ITAsY2FuY2VsYWJsZTohMCxjaGFuZ2VkVG91Y2hlczohMCxjdHJsS2V5OiEwLGRldGFpbDohMCxldmVudFBoYXNlOiEwLG1ldGFLZXk6ITAscGFnZVg6ITAscGFnZVk6ITAsc2hpZnRLZXk6ITAsdmlldzohMCwiY2hhciI6ITAsY29kZTohMCxjaGFyQ29kZTohMCxrZXk6ITAsa2V5Q29kZTohMCxidXR0b246ITAsYnV0dG9uczohMCxjbGllbnRYOiEwLGNsaWVudFk6ITAsb2Zmc2V0WDohMCxvZmZzZXRZOiEwLHBvaW50ZXJJZDohMCxwb2ludGVyVHlwZTohMCxzY3JlZW5YOiEwLHNjcmVlblk6ITAsdGFyZ2V0VG91Y2hlczohMCx0b0VsZW1lbnQ6ITAsdG91Y2hlczohMCx3aGljaDpmdW5jdGlvbihlKXt2YXIgdD1lLmJ1dHRvbjtyZXR1cm4gbnVsbD09ZS53aGljaCYmYmUudGVzdChlLnR5cGUpP251bGwhPWUuY2hhckNvZGU/ZS5jaGFyQ29kZTplLmtleUNvZGU6IWUud2hpY2gmJnZvaWQgMCE9PXQmJndlLnRlc3QoZS50eXBlKT8xJnQ/MToyJnQ/Mzo0JnQ/MjowOmUud2hpY2h9fSxTLmV2ZW50LmFkZFByb3ApLFMuZWFjaCh7Zm9jdXM6ImZvY3VzaW4iLGJsdXI6ImZvY3Vzb3V0In0sZnVuY3Rpb24oZSx0KXtTLmV2ZW50LnNwZWNpYWxbZV09e3NldHVwOmZ1bmN0aW9uKCl7cmV0dXJuIEFlKHRoaXMsZSxTZSksITF9LHRyaWdnZXI6ZnVuY3Rpb24oKXtyZXR1cm4gQWUodGhpcyxlKSwhMH0sZGVsZWdhdGVUeXBlOnR9fSksUy5lYWNoKHttb3VzZWVudGVyOiJtb3VzZW92ZXIiLG1vdXNlbGVhdmU6Im1vdXNlb3V0Iixwb2ludGVyZW50ZXI6InBvaW50ZXJvdmVyIixwb2ludGVybGVhdmU6InBvaW50ZXJvdXQifSxmdW5jdGlvbihlLGkpe1MuZXZlbnQuc3BlY2lhbFtlXT17ZGVsZWdhdGVUeXBlOmksYmluZFR5cGU6aSxoYW5kbGU6ZnVuY3Rpb24oZSl7dmFyIHQsbj1lLnJlbGF0ZWRUYXJnZXQscj1lLmhhbmRsZU9iajtyZXR1cm4gbiYmKG49PT10aGlzfHxTLmNvbnRhaW5zKHRoaXMsbikpfHwoZS50eXBlPXIub3JpZ1R5cGUsdD1yLmhhbmRsZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudHlwZT1pKSx0fX19KSxTLmZuLmV4dGVuZCh7b246ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIGtlKHRoaXMsZSx0LG4scil9LG9uZTpmdW5jdGlvbihlLHQsbixyKXtyZXR1cm4ga2UodGhpcyxlLHQsbixyLDEpfSxvZmY6ZnVuY3Rpb24oZSx0LG4pe3ZhciByLGk7aWYoZSYmZS5wcmV2ZW50RGVmYXVsdCYmZS5oYW5kbGVPYmopcmV0dXJuIHI9ZS5oYW5kbGVPYmosUyhlLmRlbGVnYXRlVGFyZ2V0KS5vZmYoci5uYW1lc3BhY2U/ci5vcmlnVHlwZSsiLiIrci5uYW1lc3BhY2U6ci5vcmlnVHlwZSxyLnNlbGVjdG9yLHIuaGFuZGxlciksdGhpcztpZigib2JqZWN0Ij09dHlwZW9mIGUpe2ZvcihpIGluIGUpdGhpcy5vZmYoaSx0LGVbaV0pO3JldHVybiB0aGlzfXJldHVybiExIT09dCYmImZ1bmN0aW9uIiE9dHlwZW9mIHR8fChuPXQsdD12b2lkIDApLCExPT09biYmKG49RWUpLHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQucmVtb3ZlKHRoaXMsZSxuLHQpfSl9fSk7dmFyIE5lPS88c2NyaXB0fDxzdHlsZXw8bGluay9pLERlPS9jaGVja2VkXHMqKD86W149XXw9XHMqLmNoZWNrZWQuKS9pLGplPS9eXHMqPCEoPzpcW0NEQVRBXFt8LS0pfCg/OlxdXF18LS0pPlxzKiQvZztmdW5jdGlvbiBxZShlLHQpe3JldHVybiBBKGUsInRhYmxlIikmJkEoMTEhPT10Lm5vZGVUeXBlP3Q6dC5maXJzdENoaWxkLCJ0ciIpJiZTKGUpLmNoaWxkcmVuKCJ0Ym9keSIpWzBdfHxlfWZ1bmN0aW9uIExlKGUpe3JldHVybiBlLnR5cGU9KG51bGwhPT1lLmdldEF0dHJpYnV0ZSgidHlwZSIpKSsiLyIrZS50eXBlLGV9ZnVuY3Rpb24gSGUoZSl7cmV0dXJuInRydWUvIj09PShlLnR5cGV8fCIiKS5zbGljZSgwLDUpP2UudHlwZT1lLnR5cGUuc2xpY2UoNSk6ZS5yZW1vdmVBdHRyaWJ1dGUoInR5cGUiKSxlfWZ1bmN0aW9uIE9lKGUsdCl7dmFyIG4scixpLG8sYSxzO2lmKDE9PT10Lm5vZGVUeXBlKXtpZihZLmhhc0RhdGEoZSkmJihzPVkuZ2V0KGUpLmV2ZW50cykpZm9yKGkgaW4gWS5yZW1vdmUodCwiaGFuZGxlIGV2ZW50cyIpLHMpZm9yKG49MCxyPXNbaV0ubGVuZ3RoO248cjtuKyspUy5ldmVudC5hZGQodCxpLHNbaV1bbl0pO1EuaGFzRGF0YShlKSYmKG89US5hY2Nlc3MoZSksYT1TLmV4dGVuZCh7fSxvKSxRLnNldCh0LGEpKX19ZnVuY3Rpb24gUGUobixyLGksbyl7cj1nKHIpO3ZhciBlLHQsYSxzLHUsbCxjPTAsZj1uLmxlbmd0aCxwPWYtMSxkPXJbMF0saD1tKGQpO2lmKGh8fDE8ZiYmInN0cmluZyI9PXR5cGVvZiBkJiYheS5jaGVja0Nsb25lJiZEZS50ZXN0KGQpKXJldHVybiBuLmVhY2goZnVuY3Rpb24oZSl7dmFyIHQ9bi5lcShlKTtoJiYoclswXT1kLmNhbGwodGhpcyxlLHQuaHRtbCgpKSksUGUodCxyLGksbyl9KTtpZihmJiYodD0oZT14ZShyLG5bMF0ub3duZXJEb2N1bWVudCwhMSxuLG8pKS5maXJzdENoaWxkLDE9PT1lLmNoaWxkTm9kZXMubGVuZ3RoJiYoZT10KSx0fHxvKSl7Zm9yKHM9KGE9Uy5tYXAodmUoZSwic2NyaXB0IiksTGUpKS5sZW5ndGg7YzxmO2MrKyl1PWUsYyE9PXAmJih1PVMuY2xvbmUodSwhMCwhMCkscyYmUy5tZXJnZShhLHZlKHUsInNjcmlwdCIpKSksaS5jYWxsKG5bY10sdSxjKTtpZihzKWZvcihsPWFbYS5sZW5ndGgtMV0ub3duZXJEb2N1bWVudCxTLm1hcChhLEhlKSxjPTA7YzxzO2MrKyl1PWFbY10saGUudGVzdCh1LnR5cGV8fCIiKSYmIVkuYWNjZXNzKHUsImdsb2JhbEV2YWwiKSYmUy5jb250YWlucyhsLHUpJiYodS5zcmMmJiJtb2R1bGUiIT09KHUudHlwZXx8IiIpLnRvTG93ZXJDYXNlKCk/Uy5fZXZhbFVybCYmIXUubm9Nb2R1bGUmJlMuX2V2YWxVcmwodS5zcmMse25vbmNlOnUubm9uY2V8fHUuZ2V0QXR0cmlidXRlKCJub25jZSIpfSxsKTpiKHUudGV4dENvbnRlbnQucmVwbGFjZShqZSwiIiksdSxsKSl9cmV0dXJuIG59ZnVuY3Rpb24gUmUoZSx0LG4pe2Zvcih2YXIgcixpPXQ/Uy5maWx0ZXIodCxlKTplLG89MDtudWxsIT0ocj1pW29dKTtvKyspbnx8MSE9PXIubm9kZVR5cGV8fFMuY2xlYW5EYXRhKHZlKHIpKSxyLnBhcmVudE5vZGUmJihuJiZpZShyKSYmeWUodmUociwic2NyaXB0IikpLHIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyKSk7cmV0dXJuIGV9Uy5leHRlbmQoe2h0bWxQcmVmaWx0ZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LGNsb25lOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjPWUuY2xvbmVOb2RlKCEwKSxmPWllKGUpO2lmKCEoeS5ub0Nsb25lQ2hlY2tlZHx8MSE9PWUubm9kZVR5cGUmJjExIT09ZS5ub2RlVHlwZXx8Uy5pc1hNTERvYyhlKSkpZm9yKGE9dmUoYykscj0wLGk9KG89dmUoZSkpLmxlbmd0aDtyPGk7cisrKXM9b1tyXSx1PWFbcl0sdm9pZCAwLCJpbnB1dCI9PT0obD11Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkpJiZwZS50ZXN0KHMudHlwZSk/dS5jaGVja2VkPXMuY2hlY2tlZDoiaW5wdXQiIT09bCYmInRleHRhcmVhIiE9PWx8fCh1LmRlZmF1bHRWYWx1ZT1zLmRlZmF1bHRWYWx1ZSk7aWYodClpZihuKWZvcihvPW98fHZlKGUpLGE9YXx8dmUoYykscj0wLGk9by5sZW5ndGg7cjxpO3IrKylPZShvW3JdLGFbcl0pO2Vsc2UgT2UoZSxjKTtyZXR1cm4gMDwoYT12ZShjLCJzY3JpcHQiKSkubGVuZ3RoJiZ5ZShhLCFmJiZ2ZShlLCJzY3JpcHQiKSksY30sY2xlYW5EYXRhOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdCxuLHIsaT1TLmV2ZW50LnNwZWNpYWwsbz0wO3ZvaWQgMCE9PShuPWVbb10pO28rKylpZihWKG4pKXtpZih0PW5bWS5leHBhbmRvXSl7aWYodC5ldmVudHMpZm9yKHIgaW4gdC5ldmVudHMpaVtyXT9TLmV2ZW50LnJlbW92ZShuLHIpOlMucmVtb3ZlRXZlbnQobixyLHQuaGFuZGxlKTtuW1kuZXhwYW5kb109dm9pZCAwfW5bUS5leHBhbmRvXSYmKG5bUS5leHBhbmRvXT12b2lkIDApfX19KSxTLmZuLmV4dGVuZCh7ZGV0YWNoOmZ1bmN0aW9uKGUpe3JldHVybiBSZSh0aGlzLGUsITApfSxyZW1vdmU6ZnVuY3Rpb24oZSl7cmV0dXJuIFJlKHRoaXMsZSl9LHRleHQ6ZnVuY3Rpb24oZSl7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZT9TLnRleHQodGhpcyk6dGhpcy5lbXB0eSgpLmVhY2goZnVuY3Rpb24oKXsxIT09dGhpcy5ub2RlVHlwZSYmMTEhPT10aGlzLm5vZGVUeXBlJiY5IT09dGhpcy5ub2RlVHlwZXx8KHRoaXMudGV4dENvbnRlbnQ9ZSl9KX0sbnVsbCxlLGFyZ3VtZW50cy5sZW5ndGgpfSxhcHBlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gUGUodGhpcyxhcmd1bWVudHMsZnVuY3Rpb24oZSl7MSE9PXRoaXMubm9kZVR5cGUmJjExIT09dGhpcy5ub2RlVHlwZSYmOSE9PXRoaXMubm9kZVR5cGV8fHFlKHRoaXMsZSkuYXBwZW5kQ2hpbGQoZSl9KX0scHJlcGVuZDpmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXtpZigxPT09dGhpcy5ub2RlVHlwZXx8MTE9PT10aGlzLm5vZGVUeXBlfHw5PT09dGhpcy5ub2RlVHlwZSl7dmFyIHQ9cWUodGhpcyxlKTt0Lmluc2VydEJlZm9yZShlLHQuZmlyc3RDaGlsZCl9fSl9LGJlZm9yZTpmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzKX0pfSxhZnRlcjpmdW5jdGlvbigpe3JldHVybiBQZSh0aGlzLGFyZ3VtZW50cyxmdW5jdGlvbihlKXt0aGlzLnBhcmVudE5vZGUmJnRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoZSx0aGlzLm5leHRTaWJsaW5nKX0pfSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgZSx0PTA7bnVsbCE9KGU9dGhpc1t0XSk7dCsrKTE9PT1lLm5vZGVUeXBlJiYoUy5jbGVhbkRhdGEodmUoZSwhMSkpLGUudGV4dENvbnRlbnQ9IiIpO3JldHVybiB0aGlzfSxjbG9uZTpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWUmJmUsdD1udWxsPT10P2U6dCx0aGlzLm1hcChmdW5jdGlvbigpe3JldHVybiBTLmNsb25lKHRoaXMsZSx0KX0pfSxodG1sOmZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSl7dmFyIHQ9dGhpc1swXXx8e30sbj0wLHI9dGhpcy5sZW5ndGg7aWYodm9pZCAwPT09ZSYmMT09PXQubm9kZVR5cGUpcmV0dXJuIHQuaW5uZXJIVE1MO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmIU5lLnRlc3QoZSkmJiFnZVsoZGUuZXhlYyhlKXx8WyIiLCIiXSlbMV0udG9Mb3dlckNhc2UoKV0pe2U9Uy5odG1sUHJlZmlsdGVyKGUpO3RyeXtmb3IoO248cjtuKyspMT09PSh0PXRoaXNbbl18fHt9KS5ub2RlVHlwZSYmKFMuY2xlYW5EYXRhKHZlKHQsITEpKSx0LmlubmVySFRNTD1lKTt0PTB9Y2F0Y2goZSl7fX10JiZ0aGlzLmVtcHR5KCkuYXBwZW5kKGUpfSxudWxsLGUsYXJndW1lbnRzLmxlbmd0aCl9LHJlcGxhY2VXaXRoOmZ1bmN0aW9uKCl7dmFyIG49W107cmV0dXJuIFBlKHRoaXMsYXJndW1lbnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTtTLmluQXJyYXkodGhpcyxuKTwwJiYoUy5jbGVhbkRhdGEodmUodGhpcykpLHQmJnQucmVwbGFjZUNoaWxkKGUsdGhpcykpfSxuKX19KSxTLmVhY2goe2FwcGVuZFRvOiJhcHBlbmQiLHByZXBlbmRUbzoicHJlcGVuZCIsaW5zZXJ0QmVmb3JlOiJiZWZvcmUiLGluc2VydEFmdGVyOiJhZnRlciIscmVwbGFjZUFsbDoicmVwbGFjZVdpdGgifSxmdW5jdGlvbihlLGEpe1MuZm5bZV09ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LG49W10scj1TKGUpLGk9ci5sZW5ndGgtMSxvPTA7bzw9aTtvKyspdD1vPT09aT90aGlzOnRoaXMuY2xvbmUoITApLFMocltvXSlbYV0odCksdS5hcHBseShuLHQuZ2V0KCkpO3JldHVybiB0aGlzLnB1c2hTdGFjayhuKX19KTt2YXIgTWU9bmV3IFJlZ0V4cCgiXigiK2VlKyIpKD8hcHgpW2EteiVdKyQiLCJpIiksSWU9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3O3JldHVybiB0JiZ0Lm9wZW5lcnx8KHQ9QyksdC5nZXRDb21wdXRlZFN0eWxlKGUpfSxXZT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXt9O2ZvcihpIGluIHQpb1tpXT1lLnN0eWxlW2ldLGUuc3R5bGVbaV09dFtpXTtmb3IoaSBpbiByPW4uY2FsbChlKSx0KWUuc3R5bGVbaV09b1tpXTtyZXR1cm4gcn0sRmU9bmV3IFJlZ0V4cChuZS5qb2luKCJ8IiksImkiKTtmdW5jdGlvbiBCZShlLHQsbil7dmFyIHIsaSxvLGEscz1lLnN0eWxlO3JldHVybihuPW58fEllKGUpKSYmKCIiIT09KGE9bi5nZXRQcm9wZXJ0eVZhbHVlKHQpfHxuW3RdKXx8aWUoZSl8fChhPVMuc3R5bGUoZSx0KSksIXkucGl4ZWxCb3hTdHlsZXMoKSYmTWUudGVzdChhKSYmRmUudGVzdCh0KSYmKHI9cy53aWR0aCxpPXMubWluV2lkdGgsbz1zLm1heFdpZHRoLHMubWluV2lkdGg9cy5tYXhXaWR0aD1zLndpZHRoPWEsYT1uLndpZHRoLHMud2lkdGg9cixzLm1pbldpZHRoPWkscy5tYXhXaWR0aD1vKSksdm9pZCAwIT09YT9hKyIiOmF9ZnVuY3Rpb24gJGUoZSx0KXtyZXR1cm57Z2V0OmZ1bmN0aW9uKCl7aWYoIWUoKSlyZXR1cm4odGhpcy5nZXQ9dCkuYXBwbHkodGhpcyxhcmd1bWVudHMpO2RlbGV0ZSB0aGlzLmdldH19fSFmdW5jdGlvbigpe2Z1bmN0aW9uIGUoKXtpZihsKXt1LnN0eWxlLmNzc1RleHQ9InBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDttYXJnaW4tdG9wOjFweDtwYWRkaW5nOjA7Ym9yZGVyOjAiLGwuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO21hcmdpbjphdXRvO2JvcmRlcjoxcHg7cGFkZGluZzoxcHg7d2lkdGg6NjAlO3RvcDoxJSIscmUuYXBwZW5kQ2hpbGQodSkuYXBwZW5kQ2hpbGQobCk7dmFyIGU9Qy5nZXRDb21wdXRlZFN0eWxlKGwpO249IjElIiE9PWUudG9wLHM9MTI9PT10KGUubWFyZ2luTGVmdCksbC5zdHlsZS5yaWdodD0iNjAlIixvPTM2PT09dChlLnJpZ2h0KSxyPTM2PT09dChlLndpZHRoKSxsLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaT0xMj09PXQobC5vZmZzZXRXaWR0aC8zKSxyZS5yZW1vdmVDaGlsZCh1KSxsPW51bGx9fWZ1bmN0aW9uIHQoZSl7cmV0dXJuIE1hdGgucm91bmQocGFyc2VGbG9hdChlKSl9dmFyIG4scixpLG8sYSxzLHU9RS5jcmVhdGVFbGVtZW50KCJkaXYiKSxsPUUuY3JlYXRlRWxlbWVudCgiZGl2Iik7bC5zdHlsZSYmKGwuc3R5bGUuYmFja2dyb3VuZENsaXA9ImNvbnRlbnQtYm94IixsLmNsb25lTm9kZSghMCkuc3R5bGUuYmFja2dyb3VuZENsaXA9IiIseS5jbGVhckNsb25lU3R5bGU9ImNvbnRlbnQtYm94Ij09PWwuc3R5bGUuYmFja2dyb3VuZENsaXAsUy5leHRlbmQoeSx7Ym94U2l6aW5nUmVsaWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHJ9LHBpeGVsQm94U3R5bGVzOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxvfSxwaXhlbFBvc2l0aW9uOmZ1bmN0aW9uKCl7cmV0dXJuIGUoKSxufSxyZWxpYWJsZU1hcmdpbkxlZnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLHN9LHNjcm9sbGJveFNpemU6ZnVuY3Rpb24oKXtyZXR1cm4gZSgpLGl9LHJlbGlhYmxlVHJEaW1lbnNpb25zOmZ1bmN0aW9uKCl7dmFyIGUsdCxuLHI7cmV0dXJuIG51bGw9PWEmJihlPUUuY3JlYXRlRWxlbWVudCgidGFibGUiKSx0PUUuY3JlYXRlRWxlbWVudCgidHIiKSxuPUUuY3JlYXRlRWxlbWVudCgiZGl2IiksZS5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjphYnNvbHV0ZTtsZWZ0Oi0xMTExMXB4Iix0LnN0eWxlLmhlaWdodD0iMXB4IixuLnN0eWxlLmhlaWdodD0iOXB4IixyZS5hcHBlbmRDaGlsZChlKS5hcHBlbmRDaGlsZCh0KS5hcHBlbmRDaGlsZChuKSxyPUMuZ2V0Q29tcHV0ZWRTdHlsZSh0KSxhPTM8cGFyc2VJbnQoci5oZWlnaHQpLHJlLnJlbW92ZUNoaWxkKGUpKSxhfX0pKX0oKTt2YXIgX2U9WyJXZWJraXQiLCJNb3oiLCJtcyJdLHplPUUuY3JlYXRlRWxlbWVudCgiZGl2Iikuc3R5bGUsVWU9e307ZnVuY3Rpb24gWGUoZSl7dmFyIHQ9Uy5jc3NQcm9wc1tlXXx8VWVbZV07cmV0dXJuIHR8fChlIGluIHplP2U6VWVbZV09ZnVuY3Rpb24oZSl7dmFyIHQ9ZVswXS50b1VwcGVyQ2FzZSgpK2Uuc2xpY2UoMSksbj1fZS5sZW5ndGg7d2hpbGUobi0tKWlmKChlPV9lW25dK3QpaW4gemUpcmV0dXJuIGV9KGUpfHxlKX12YXIgVmU9L14obm9uZXx0YWJsZSg/IS1jW2VhXSkuKykvLEdlPS9eLS0vLFllPXtwb3NpdGlvbjoiYWJzb2x1dGUiLHZpc2liaWxpdHk6ImhpZGRlbiIsZGlzcGxheToiYmxvY2sifSxRZT17bGV0dGVyU3BhY2luZzoiMCIsZm9udFdlaWdodDoiNDAwIn07ZnVuY3Rpb24gSmUoZSx0LG4pe3ZhciByPXRlLmV4ZWModCk7cmV0dXJuIHI/TWF0aC5tYXgoMCxyWzJdLShufHwwKSkrKHJbM118fCJweCIpOnR9ZnVuY3Rpb24gS2UoZSx0LG4scixpLG8pe3ZhciBhPSJ3aWR0aCI9PT10PzE6MCxzPTAsdT0wO2lmKG49PT0ocj8iYm9yZGVyIjoiY29udGVudCIpKXJldHVybiAwO2Zvcig7YTw0O2ErPTIpIm1hcmdpbiI9PT1uJiYodSs9Uy5jc3MoZSxuK25lW2FdLCEwLGkpKSxyPygiY29udGVudCI9PT1uJiYodS09Uy5jc3MoZSwicGFkZGluZyIrbmVbYV0sITAsaSkpLCJtYXJnaW4iIT09biYmKHUtPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKSkpOih1Kz1TLmNzcyhlLCJwYWRkaW5nIituZVthXSwhMCxpKSwicGFkZGluZyIhPT1uP3UrPVMuY3NzKGUsImJvcmRlciIrbmVbYV0rIldpZHRoIiwhMCxpKTpzKz1TLmNzcyhlLCJib3JkZXIiK25lW2FdKyJXaWR0aCIsITAsaSkpO3JldHVybiFyJiYwPD1vJiYodSs9TWF0aC5tYXgoMCxNYXRoLmNlaWwoZVsib2Zmc2V0Iit0WzBdLnRvVXBwZXJDYXNlKCkrdC5zbGljZSgxKV0tby11LXMtLjUpKXx8MCksdX1mdW5jdGlvbiBaZShlLHQsbil7dmFyIHI9SWUoZSksaT0oIXkuYm94U2l6aW5nUmVsaWFibGUoKXx8bikmJiJib3JkZXItYm94Ij09PVMuY3NzKGUsImJveFNpemluZyIsITEsciksbz1pLGE9QmUoZSx0LHIpLHM9Im9mZnNldCIrdFswXS50b1VwcGVyQ2FzZSgpK3Quc2xpY2UoMSk7aWYoTWUudGVzdChhKSl7aWYoIW4pcmV0dXJuIGE7YT0iYXV0byJ9cmV0dXJuKCF5LmJveFNpemluZ1JlbGlhYmxlKCkmJml8fCF5LnJlbGlhYmxlVHJEaW1lbnNpb25zKCkmJkEoZSwidHIiKXx8ImF1dG8iPT09YXx8IXBhcnNlRmxvYXQoYSkmJiJpbmxpbmUiPT09Uy5jc3MoZSwiZGlzcGxheSIsITEscikpJiZlLmdldENsaWVudFJlY3RzKCkubGVuZ3RoJiYoaT0iYm9yZGVyLWJveCI9PT1TLmNzcyhlLCJib3hTaXppbmciLCExLHIpLChvPXMgaW4gZSkmJihhPWVbc10pKSwoYT1wYXJzZUZsb2F0KGEpfHwwKStLZShlLHQsbnx8KGk/ImJvcmRlciI6ImNvbnRlbnQiKSxvLHIsYSkrInB4In1mdW5jdGlvbiBldChlLHQsbixyLGkpe3JldHVybiBuZXcgZXQucHJvdG90eXBlLmluaXQoZSx0LG4scixpKX1TLmV4dGVuZCh7Y3NzSG9va3M6e29wYWNpdHk6e2dldDpmdW5jdGlvbihlLHQpe2lmKHQpe3ZhciBuPUJlKGUsIm9wYWNpdHkiKTtyZXR1cm4iIj09PW4/IjEiOm59fX19LGNzc051bWJlcjp7YW5pbWF0aW9uSXRlcmF0aW9uQ291bnQ6ITAsY29sdW1uQ291bnQ6ITAsZmlsbE9wYWNpdHk6ITAsZmxleEdyb3c6ITAsZmxleFNocmluazohMCxmb250V2VpZ2h0OiEwLGdyaWRBcmVhOiEwLGdyaWRDb2x1bW46ITAsZ3JpZENvbHVtbkVuZDohMCxncmlkQ29sdW1uU3RhcnQ6ITAsZ3JpZFJvdzohMCxncmlkUm93RW5kOiEwLGdyaWRSb3dTdGFydDohMCxsaW5lSGVpZ2h0OiEwLG9wYWNpdHk6ITAsb3JkZXI6ITAsb3JwaGFuczohMCx3aWRvd3M6ITAsekluZGV4OiEwLHpvb206ITB9LGNzc1Byb3BzOnt9LHN0eWxlOmZ1bmN0aW9uKGUsdCxuLHIpe2lmKGUmJjMhPT1lLm5vZGVUeXBlJiY4IT09ZS5ub2RlVHlwZSYmZS5zdHlsZSl7dmFyIGksbyxhLHM9WCh0KSx1PUdlLnRlc3QodCksbD1lLnN0eWxlO2lmKHV8fCh0PVhlKHMpKSxhPVMuY3NzSG9va3NbdF18fFMuY3NzSG9va3Nbc10sdm9pZCAwPT09bilyZXR1cm4gYSYmImdldCJpbiBhJiZ2b2lkIDAhPT0oaT1hLmdldChlLCExLHIpKT9pOmxbdF07InN0cmluZyI9PT0obz10eXBlb2YgbikmJihpPXRlLmV4ZWMobikpJiZpWzFdJiYobj1zZShlLHQsaSksbz0ibnVtYmVyIiksbnVsbCE9biYmbj09biYmKCJudW1iZXIiIT09b3x8dXx8KG4rPWkmJmlbM118fChTLmNzc051bWJlcltzXT8iIjoicHgiKSkseS5jbGVhckNsb25lU3R5bGV8fCIiIT09bnx8MCE9PXQuaW5kZXhPZigiYmFja2dyb3VuZCIpfHwobFt0XT0iaW5oZXJpdCIpLGEmJiJzZXQiaW4gYSYmdm9pZCAwPT09KG49YS5zZXQoZSxuLHIpKXx8KHU/bC5zZXRQcm9wZXJ0eSh0LG4pOmxbdF09bikpfX0sY3NzOmZ1bmN0aW9uKGUsdCxuLHIpe3ZhciBpLG8sYSxzPVgodCk7cmV0dXJuIEdlLnRlc3QodCl8fCh0PVhlKHMpKSwoYT1TLmNzc0hvb2tzW3RdfHxTLmNzc0hvb2tzW3NdKSYmImdldCJpbiBhJiYoaT1hLmdldChlLCEwLG4pKSx2b2lkIDA9PT1pJiYoaT1CZShlLHQscikpLCJub3JtYWwiPT09aSYmdCBpbiBRZSYmKGk9UWVbdF0pLCIiPT09bnx8bj8obz1wYXJzZUZsb2F0KGkpLCEwPT09bnx8aXNGaW5pdGUobyk/b3x8MDppKTppfX0pLFMuZWFjaChbImhlaWdodCIsIndpZHRoIl0sZnVuY3Rpb24oZSx1KXtTLmNzc0hvb2tzW3VdPXtnZXQ6ZnVuY3Rpb24oZSx0LG4pe2lmKHQpcmV0dXJuIVZlLnRlc3QoUy5jc3MoZSwiZGlzcGxheSIpKXx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCYmZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aD9aZShlLHUsbik6V2UoZSxZZSxmdW5jdGlvbigpe3JldHVybiBaZShlLHUsbil9KX0sc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpPUllKGUpLG89IXkuc2Nyb2xsYm94U2l6ZSgpJiYiYWJzb2x1dGUiPT09aS5wb3NpdGlvbixhPShvfHxuKSYmImJvcmRlci1ib3giPT09Uy5jc3MoZSwiYm94U2l6aW5nIiwhMSxpKSxzPW4/S2UoZSx1LG4sYSxpKTowO3JldHVybiBhJiZvJiYocy09TWF0aC5jZWlsKGVbIm9mZnNldCIrdVswXS50b1VwcGVyQ2FzZSgpK3Uuc2xpY2UoMSldLXBhcnNlRmxvYXQoaVt1XSktS2UoZSx1LCJib3JkZXIiLCExLGkpLS41KSkscyYmKHI9dGUuZXhlYyh0KSkmJiJweCIhPT0oclszXXx8InB4IikmJihlLnN0eWxlW3VdPXQsdD1TLmNzcyhlLHUpKSxKZSgwLHQscyl9fX0pLFMuY3NzSG9va3MubWFyZ2luTGVmdD0kZSh5LnJlbGlhYmxlTWFyZ2luTGVmdCxmdW5jdGlvbihlLHQpe2lmKHQpcmV0dXJuKHBhcnNlRmxvYXQoQmUoZSwibWFyZ2luTGVmdCIpKXx8ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LVdlKGUse21hcmdpbkxlZnQ6MH0sZnVuY3Rpb24oKXtyZXR1cm4gZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fSkpKyJweCJ9KSxTLmVhY2goe21hcmdpbjoiIixwYWRkaW5nOiIiLGJvcmRlcjoiV2lkdGgifSxmdW5jdGlvbihpLG8pe1MuY3NzSG9va3NbaStvXT17ZXhwYW5kOmZ1bmN0aW9uKGUpe2Zvcih2YXIgdD0wLG49e30scj0ic3RyaW5nIj09dHlwZW9mIGU/ZS5zcGxpdCgiICIpOltlXTt0PDQ7dCsrKW5baStuZVt0XStvXT1yW3RdfHxyW3QtMl18fHJbMF07cmV0dXJuIG59fSwibWFyZ2luIiE9PWkmJihTLmNzc0hvb2tzW2krb10uc2V0PUplKX0pLFMuZm4uZXh0ZW5kKHtjc3M6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLGZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89e30sYT0wO2lmKEFycmF5LmlzQXJyYXkodCkpe2ZvcihyPUllKGUpLGk9dC5sZW5ndGg7YTxpO2ErKylvW3RbYV1dPVMuY3NzKGUsdFthXSwhMSxyKTtyZXR1cm4gb31yZXR1cm4gdm9pZCAwIT09bj9TLnN0eWxlKGUsdCxuKTpTLmNzcyhlLHQpfSxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX19KSwoKFMuVHdlZW49ZXQpLnByb3RvdHlwZT17Y29uc3RydWN0b3I6ZXQsaW5pdDpmdW5jdGlvbihlLHQsbixyLGksbyl7dGhpcy5lbGVtPWUsdGhpcy5wcm9wPW4sdGhpcy5lYXNpbmc9aXx8Uy5lYXNpbmcuX2RlZmF1bHQsdGhpcy5vcHRpb25zPXQsdGhpcy5zdGFydD10aGlzLm5vdz10aGlzLmN1cigpLHRoaXMuZW5kPXIsdGhpcy51bml0PW98fChTLmNzc051bWJlcltuXT8iIjoicHgiKX0sY3VyOmZ1bmN0aW9uKCl7dmFyIGU9ZXQucHJvcEhvb2tzW3RoaXMucHJvcF07cmV0dXJuIGUmJmUuZ2V0P2UuZ2V0KHRoaXMpOmV0LnByb3BIb29rcy5fZGVmYXVsdC5nZXQodGhpcyl9LHJ1bjpmdW5jdGlvbihlKXt2YXIgdCxuPWV0LnByb3BIb29rc1t0aGlzLnByb3BdO3JldHVybiB0aGlzLm9wdGlvbnMuZHVyYXRpb24/dGhpcy5wb3M9dD1TLmVhc2luZ1t0aGlzLmVhc2luZ10oZSx0aGlzLm9wdGlvbnMuZHVyYXRpb24qZSwwLDEsdGhpcy5vcHRpb25zLmR1cmF0aW9uKTp0aGlzLnBvcz10PWUsdGhpcy5ub3c9KHRoaXMuZW5kLXRoaXMuc3RhcnQpKnQrdGhpcy5zdGFydCx0aGlzLm9wdGlvbnMuc3RlcCYmdGhpcy5vcHRpb25zLnN0ZXAuY2FsbCh0aGlzLmVsZW0sdGhpcy5ub3csdGhpcyksbiYmbi5zZXQ/bi5zZXQodGhpcyk6ZXQucHJvcEhvb2tzLl9kZWZhdWx0LnNldCh0aGlzKSx0aGlzfX0pLmluaXQucHJvdG90eXBlPWV0LnByb3RvdHlwZSwoZXQucHJvcEhvb2tzPXtfZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiAxIT09ZS5lbGVtLm5vZGVUeXBlfHxudWxsIT1lLmVsZW1bZS5wcm9wXSYmbnVsbD09ZS5lbGVtLnN0eWxlW2UucHJvcF0/ZS5lbGVtW2UucHJvcF06KHQ9Uy5jc3MoZS5lbGVtLGUucHJvcCwiIikpJiYiYXV0byIhPT10P3Q6MH0sc2V0OmZ1bmN0aW9uKGUpe1MuZnguc3RlcFtlLnByb3BdP1MuZnguc3RlcFtlLnByb3BdKGUpOjEhPT1lLmVsZW0ubm9kZVR5cGV8fCFTLmNzc0hvb2tzW2UucHJvcF0mJm51bGw9PWUuZWxlbS5zdHlsZVtYZShlLnByb3ApXT9lLmVsZW1bZS5wcm9wXT1lLm5vdzpTLnN0eWxlKGUuZWxlbSxlLnByb3AsZS5ub3crZS51bml0KX19fSkuc2Nyb2xsVG9wPWV0LnByb3BIb29rcy5zY3JvbGxMZWZ0PXtzZXQ6ZnVuY3Rpb24oZSl7ZS5lbGVtLm5vZGVUeXBlJiZlLmVsZW0ucGFyZW50Tm9kZSYmKGUuZWxlbVtlLnByb3BdPWUubm93KX19LFMuZWFzaW5nPXtsaW5lYXI6ZnVuY3Rpb24oZSl7cmV0dXJuIGV9LHN3aW5nOmZ1bmN0aW9uKGUpe3JldHVybi41LU1hdGguY29zKGUqTWF0aC5QSSkvMn0sX2RlZmF1bHQ6InN3aW5nIn0sUy5meD1ldC5wcm90b3R5cGUuaW5pdCxTLmZ4LnN0ZXA9e307dmFyIHR0LG50LHJ0LGl0LG90PS9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxhdD0vcXVldWVIb29rcyQvO2Z1bmN0aW9uIHN0KCl7bnQmJighMT09PUUuaGlkZGVuJiZDLnJlcXVlc3RBbmltYXRpb25GcmFtZT9DLnJlcXVlc3RBbmltYXRpb25GcmFtZShzdCk6Qy5zZXRUaW1lb3V0KHN0LFMuZnguaW50ZXJ2YWwpLFMuZngudGljaygpKX1mdW5jdGlvbiB1dCgpe3JldHVybiBDLnNldFRpbWVvdXQoZnVuY3Rpb24oKXt0dD12b2lkIDB9KSx0dD1EYXRlLm5vdygpfWZ1bmN0aW9uIGx0KGUsdCl7dmFyIG4scj0wLGk9e2hlaWdodDplfTtmb3IodD10PzE6MDtyPDQ7cis9Mi10KWlbIm1hcmdpbiIrKG49bmVbcl0pXT1pWyJwYWRkaW5nIituXT1lO3JldHVybiB0JiYoaS5vcGFjaXR5PWkud2lkdGg9ZSksaX1mdW5jdGlvbiBjdChlLHQsbil7Zm9yKHZhciByLGk9KGZ0LnR3ZWVuZXJzW3RdfHxbXSkuY29uY2F0KGZ0LnR3ZWVuZXJzWyIqIl0pLG89MCxhPWkubGVuZ3RoO288YTtvKyspaWYocj1pW29dLmNhbGwobix0LGUpKXJldHVybiByfWZ1bmN0aW9uIGZ0KG8sZSx0KXt2YXIgbixhLHI9MCxpPWZ0LnByZWZpbHRlcnMubGVuZ3RoLHM9Uy5EZWZlcnJlZCgpLmFsd2F5cyhmdW5jdGlvbigpe2RlbGV0ZSB1LmVsZW19KSx1PWZ1bmN0aW9uKCl7aWYoYSlyZXR1cm4hMTtmb3IodmFyIGU9dHR8fHV0KCksdD1NYXRoLm1heCgwLGwuc3RhcnRUaW1lK2wuZHVyYXRpb24tZSksbj0xLSh0L2wuZHVyYXRpb258fDApLHI9MCxpPWwudHdlZW5zLmxlbmd0aDtyPGk7cisrKWwudHdlZW5zW3JdLnJ1bihuKTtyZXR1cm4gcy5ub3RpZnlXaXRoKG8sW2wsbix0XSksbjwxJiZpP3Q6KGl8fHMubm90aWZ5V2l0aChvLFtsLDEsMF0pLHMucmVzb2x2ZVdpdGgobyxbbF0pLCExKX0sbD1zLnByb21pc2Uoe2VsZW06byxwcm9wczpTLmV4dGVuZCh7fSxlKSxvcHRzOlMuZXh0ZW5kKCEwLHtzcGVjaWFsRWFzaW5nOnt9LGVhc2luZzpTLmVhc2luZy5fZGVmYXVsdH0sdCksb3JpZ2luYWxQcm9wZXJ0aWVzOmUsb3JpZ2luYWxPcHRpb25zOnQsc3RhcnRUaW1lOnR0fHx1dCgpLGR1cmF0aW9uOnQuZHVyYXRpb24sdHdlZW5zOltdLGNyZWF0ZVR3ZWVuOmZ1bmN0aW9uKGUsdCl7dmFyIG49Uy5Ud2VlbihvLGwub3B0cyxlLHQsbC5vcHRzLnNwZWNpYWxFYXNpbmdbZV18fGwub3B0cy5lYXNpbmcpO3JldHVybiBsLnR3ZWVucy5wdXNoKG4pLG59LHN0b3A6ZnVuY3Rpb24oZSl7dmFyIHQ9MCxuPWU/bC50d2VlbnMubGVuZ3RoOjA7aWYoYSlyZXR1cm4gdGhpcztmb3IoYT0hMDt0PG47dCsrKWwudHdlZW5zW3RdLnJ1bigxKTtyZXR1cm4gZT8ocy5ub3RpZnlXaXRoKG8sW2wsMSwwXSkscy5yZXNvbHZlV2l0aChvLFtsLGVdKSk6cy5yZWplY3RXaXRoKG8sW2wsZV0pLHRoaXN9fSksYz1sLnByb3BzO2ZvcighZnVuY3Rpb24oZSx0KXt2YXIgbixyLGksbyxhO2ZvcihuIGluIGUpaWYoaT10W3I9WChuKV0sbz1lW25dLEFycmF5LmlzQXJyYXkobykmJihpPW9bMV0sbz1lW25dPW9bMF0pLG4hPT1yJiYoZVtyXT1vLGRlbGV0ZSBlW25dKSwoYT1TLmNzc0hvb2tzW3JdKSYmImV4cGFuZCJpbiBhKWZvcihuIGluIG89YS5leHBhbmQobyksZGVsZXRlIGVbcl0sbyluIGluIGV8fChlW25dPW9bbl0sdFtuXT1pKTtlbHNlIHRbcl09aX0oYyxsLm9wdHMuc3BlY2lhbEVhc2luZyk7cjxpO3IrKylpZihuPWZ0LnByZWZpbHRlcnNbcl0uY2FsbChsLG8sYyxsLm9wdHMpKXJldHVybiBtKG4uc3RvcCkmJihTLl9xdWV1ZUhvb2tzKGwuZWxlbSxsLm9wdHMucXVldWUpLnN0b3A9bi5zdG9wLmJpbmQobikpLG47cmV0dXJuIFMubWFwKGMsY3QsbCksbShsLm9wdHMuc3RhcnQpJiZsLm9wdHMuc3RhcnQuY2FsbChvLGwpLGwucHJvZ3Jlc3MobC5vcHRzLnByb2dyZXNzKS5kb25lKGwub3B0cy5kb25lLGwub3B0cy5jb21wbGV0ZSkuZmFpbChsLm9wdHMuZmFpbCkuYWx3YXlzKGwub3B0cy5hbHdheXMpLFMuZngudGltZXIoUy5leHRlbmQodSx7ZWxlbTpvLGFuaW06bCxxdWV1ZTpsLm9wdHMucXVldWV9KSksbH1TLkFuaW1hdGlvbj1TLmV4dGVuZChmdCx7dHdlZW5lcnM6eyIqIjpbZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLmNyZWF0ZVR3ZWVuKGUsdCk7cmV0dXJuIHNlKG4uZWxlbSxlLHRlLmV4ZWModCksbiksbn1dfSx0d2VlbmVyOmZ1bmN0aW9uKGUsdCl7bShlKT8odD1lLGU9WyIqIl0pOmU9ZS5tYXRjaChQKTtmb3IodmFyIG4scj0wLGk9ZS5sZW5ndGg7cjxpO3IrKyluPWVbcl0sZnQudHdlZW5lcnNbbl09ZnQudHdlZW5lcnNbbl18fFtdLGZ0LnR3ZWVuZXJzW25dLnVuc2hpZnQodCl9LHByZWZpbHRlcnM6W2Z1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbCxjLGY9IndpZHRoImluIHR8fCJoZWlnaHQiaW4gdCxwPXRoaXMsZD17fSxoPWUuc3R5bGUsZz1lLm5vZGVUeXBlJiZhZShlKSx2PVkuZ2V0KGUsImZ4c2hvdyIpO2ZvcihyIGluIG4ucXVldWV8fChudWxsPT0oYT1TLl9xdWV1ZUhvb2tzKGUsImZ4IikpLnVucXVldWVkJiYoYS51bnF1ZXVlZD0wLHM9YS5lbXB0eS5maXJlLGEuZW1wdHkuZmlyZT1mdW5jdGlvbigpe2EudW5xdWV1ZWR8fHMoKX0pLGEudW5xdWV1ZWQrKyxwLmFsd2F5cyhmdW5jdGlvbigpe3AuYWx3YXlzKGZ1bmN0aW9uKCl7YS51bnF1ZXVlZC0tLFMucXVldWUoZSwiZngiKS5sZW5ndGh8fGEuZW1wdHkuZmlyZSgpfSl9KSksdClpZihpPXRbcl0sb3QudGVzdChpKSl7aWYoZGVsZXRlIHRbcl0sbz1vfHwidG9nZ2xlIj09PWksaT09PShnPyJoaWRlIjoic2hvdyIpKXtpZigic2hvdyIhPT1pfHwhdnx8dm9pZCAwPT09dltyXSljb250aW51ZTtnPSEwfWRbcl09diYmdltyXXx8Uy5zdHlsZShlLHIpfWlmKCh1PSFTLmlzRW1wdHlPYmplY3QodCkpfHwhUy5pc0VtcHR5T2JqZWN0KGQpKWZvcihyIGluIGYmJjE9PT1lLm5vZGVUeXBlJiYobi5vdmVyZmxvdz1baC5vdmVyZmxvdyxoLm92ZXJmbG93WCxoLm92ZXJmbG93WV0sbnVsbD09KGw9diYmdi5kaXNwbGF5KSYmKGw9WS5nZXQoZSwiZGlzcGxheSIpKSwibm9uZSI9PT0oYz1TLmNzcyhlLCJkaXNwbGF5IikpJiYobD9jPWw6KGxlKFtlXSwhMCksbD1lLnN0eWxlLmRpc3BsYXl8fGwsYz1TLmNzcyhlLCJkaXNwbGF5IiksbGUoW2VdKSkpLCgiaW5saW5lIj09PWN8fCJpbmxpbmUtYmxvY2siPT09YyYmbnVsbCE9bCkmJiJub25lIj09PVMuY3NzKGUsImZsb2F0IikmJih1fHwocC5kb25lKGZ1bmN0aW9uKCl7aC5kaXNwbGF5PWx9KSxudWxsPT1sJiYoYz1oLmRpc3BsYXksbD0ibm9uZSI9PT1jPyIiOmMpKSxoLmRpc3BsYXk9ImlubGluZS1ibG9jayIpKSxuLm92ZXJmbG93JiYoaC5vdmVyZmxvdz0iaGlkZGVuIixwLmFsd2F5cyhmdW5jdGlvbigpe2gub3ZlcmZsb3c9bi5vdmVyZmxvd1swXSxoLm92ZXJmbG93WD1uLm92ZXJmbG93WzFdLGgub3ZlcmZsb3dZPW4ub3ZlcmZsb3dbMl19KSksdT0hMSxkKXV8fCh2PyJoaWRkZW4iaW4gdiYmKGc9di5oaWRkZW4pOnY9WS5hY2Nlc3MoZSwiZnhzaG93Iix7ZGlzcGxheTpsfSksbyYmKHYuaGlkZGVuPSFnKSxnJiZsZShbZV0sITApLHAuZG9uZShmdW5jdGlvbigpe2ZvcihyIGluIGd8fGxlKFtlXSksWS5yZW1vdmUoZSwiZnhzaG93IiksZClTLnN0eWxlKGUscixkW3JdKX0pKSx1PWN0KGc/dltyXTowLHIscCksciBpbiB2fHwodltyXT11LnN0YXJ0LGcmJih1LmVuZD11LnN0YXJ0LHUuc3RhcnQ9MCkpfV0scHJlZmlsdGVyOmZ1bmN0aW9uKGUsdCl7dD9mdC5wcmVmaWx0ZXJzLnVuc2hpZnQoZSk6ZnQucHJlZmlsdGVycy5wdXNoKGUpfX0pLFMuc3BlZWQ9ZnVuY3Rpb24oZSx0LG4pe3ZhciByPWUmJiJvYmplY3QiPT10eXBlb2YgZT9TLmV4dGVuZCh7fSxlKTp7Y29tcGxldGU6bnx8IW4mJnR8fG0oZSkmJmUsZHVyYXRpb246ZSxlYXNpbmc6biYmdHx8dCYmIW0odCkmJnR9O3JldHVybiBTLmZ4Lm9mZj9yLmR1cmF0aW9uPTA6Im51bWJlciIhPXR5cGVvZiByLmR1cmF0aW9uJiYoci5kdXJhdGlvbiBpbiBTLmZ4LnNwZWVkcz9yLmR1cmF0aW9uPVMuZnguc3BlZWRzW3IuZHVyYXRpb25dOnIuZHVyYXRpb249Uy5meC5zcGVlZHMuX2RlZmF1bHQpLG51bGwhPXIucXVldWUmJiEwIT09ci5xdWV1ZXx8KHIucXVldWU9ImZ4Iiksci5vbGQ9ci5jb21wbGV0ZSxyLmNvbXBsZXRlPWZ1bmN0aW9uKCl7bShyLm9sZCkmJnIub2xkLmNhbGwodGhpcyksci5xdWV1ZSYmUy5kZXF1ZXVlKHRoaXMsci5xdWV1ZSl9LHJ9LFMuZm4uZXh0ZW5kKHtmYWRlVG86ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMuZmlsdGVyKGFlKS5jc3MoIm9wYWNpdHkiLDApLnNob3coKS5lbmQoKS5hbmltYXRlKHtvcGFjaXR5OnR9LGUsbixyKX0sYW5pbWF0ZTpmdW5jdGlvbih0LGUsbixyKXt2YXIgaT1TLmlzRW1wdHlPYmplY3QodCksbz1TLnNwZWVkKGUsbixyKSxhPWZ1bmN0aW9uKCl7dmFyIGU9ZnQodGhpcyxTLmV4dGVuZCh7fSx0KSxvKTsoaXx8WS5nZXQodGhpcywiZmluaXNoIikpJiZlLnN0b3AoITApfTtyZXR1cm4gYS5maW5pc2g9YSxpfHwhMT09PW8ucXVldWU/dGhpcy5lYWNoKGEpOnRoaXMucXVldWUoby5xdWV1ZSxhKX0sc3RvcDpmdW5jdGlvbihpLGUsbyl7dmFyIGE9ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5zdG9wO2RlbGV0ZSBlLnN0b3AsdChvKX07cmV0dXJuInN0cmluZyIhPXR5cGVvZiBpJiYobz1lLGU9aSxpPXZvaWQgMCksZSYmdGhpcy5xdWV1ZShpfHwiZngiLFtdKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT0hMCx0PW51bGwhPWkmJmkrInF1ZXVlSG9va3MiLG49Uy50aW1lcnMscj1ZLmdldCh0aGlzKTtpZih0KXJbdF0mJnJbdF0uc3RvcCYmYShyW3RdKTtlbHNlIGZvcih0IGluIHIpclt0XSYmclt0XS5zdG9wJiZhdC50ZXN0KHQpJiZhKHJbdF0pO2Zvcih0PW4ubGVuZ3RoO3QtLTspblt0XS5lbGVtIT09dGhpc3x8bnVsbCE9aSYmblt0XS5xdWV1ZSE9PWl8fChuW3RdLmFuaW0uc3RvcChvKSxlPSExLG4uc3BsaWNlKHQsMSkpOyFlJiZvfHxTLmRlcXVldWUodGhpcyxpKX0pfSxmaW5pc2g6ZnVuY3Rpb24oYSl7cmV0dXJuITEhPT1hJiYoYT1hfHwiZngiKSx0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0PVkuZ2V0KHRoaXMpLG49dFthKyJxdWV1ZSJdLHI9dFthKyJxdWV1ZUhvb2tzIl0saT1TLnRpbWVycyxvPW4/bi5sZW5ndGg6MDtmb3IodC5maW5pc2g9ITAsUy5xdWV1ZSh0aGlzLGEsW10pLHImJnIuc3RvcCYmci5zdG9wLmNhbGwodGhpcywhMCksZT1pLmxlbmd0aDtlLS07KWlbZV0uZWxlbT09PXRoaXMmJmlbZV0ucXVldWU9PT1hJiYoaVtlXS5hbmltLnN0b3AoITApLGkuc3BsaWNlKGUsMSkpO2ZvcihlPTA7ZTxvO2UrKyluW2VdJiZuW2VdLmZpbmlzaCYmbltlXS5maW5pc2guY2FsbCh0aGlzKTtkZWxldGUgdC5maW5pc2h9KX19KSxTLmVhY2goWyJ0b2dnbGUiLCJzaG93IiwiaGlkZSJdLGZ1bmN0aW9uKGUscil7dmFyIGk9Uy5mbltyXTtTLmZuW3JdPWZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gbnVsbD09ZXx8ImJvb2xlYW4iPT10eXBlb2YgZT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTp0aGlzLmFuaW1hdGUobHQociwhMCksZSx0LG4pfX0pLFMuZWFjaCh7c2xpZGVEb3duOmx0KCJzaG93Iiksc2xpZGVVcDpsdCgiaGlkZSIpLHNsaWRlVG9nZ2xlOmx0KCJ0b2dnbGUiKSxmYWRlSW46e29wYWNpdHk6InNob3cifSxmYWRlT3V0OntvcGFjaXR5OiJoaWRlIn0sZmFkZVRvZ2dsZTp7b3BhY2l0eToidG9nZ2xlIn19LGZ1bmN0aW9uKGUscil7Uy5mbltlXT1mdW5jdGlvbihlLHQsbil7cmV0dXJuIHRoaXMuYW5pbWF0ZShyLGUsdCxuKX19KSxTLnRpbWVycz1bXSxTLmZ4LnRpY2s9ZnVuY3Rpb24oKXt2YXIgZSx0PTAsbj1TLnRpbWVycztmb3IodHQ9RGF0ZS5ub3coKTt0PG4ubGVuZ3RoO3QrKykoZT1uW3RdKSgpfHxuW3RdIT09ZXx8bi5zcGxpY2UodC0tLDEpO24ubGVuZ3RofHxTLmZ4LnN0b3AoKSx0dD12b2lkIDB9LFMuZngudGltZXI9ZnVuY3Rpb24oZSl7Uy50aW1lcnMucHVzaChlKSxTLmZ4LnN0YXJ0KCl9LFMuZnguaW50ZXJ2YWw9MTMsUy5meC5zdGFydD1mdW5jdGlvbigpe250fHwobnQ9ITAsc3QoKSl9LFMuZnguc3RvcD1mdW5jdGlvbigpe250PW51bGx9LFMuZnguc3BlZWRzPXtzbG93OjYwMCxmYXN0OjIwMCxfZGVmYXVsdDo0MDB9LFMuZm4uZGVsYXk9ZnVuY3Rpb24ocixlKXtyZXR1cm4gcj1TLmZ4JiZTLmZ4LnNwZWVkc1tyXXx8cixlPWV8fCJmeCIsdGhpcy5xdWV1ZShlLGZ1bmN0aW9uKGUsdCl7dmFyIG49Qy5zZXRUaW1lb3V0KGUscik7dC5zdG9wPWZ1bmN0aW9uKCl7Qy5jbGVhclRpbWVvdXQobil9fSl9LHJ0PUUuY3JlYXRlRWxlbWVudCgiaW5wdXQiKSxpdD1FLmNyZWF0ZUVsZW1lbnQoInNlbGVjdCIpLmFwcGVuZENoaWxkKEUuY3JlYXRlRWxlbWVudCgib3B0aW9uIikpLHJ0LnR5cGU9ImNoZWNrYm94Iix5LmNoZWNrT249IiIhPT1ydC52YWx1ZSx5Lm9wdFNlbGVjdGVkPWl0LnNlbGVjdGVkLChydD1FLmNyZWF0ZUVsZW1lbnQoImlucHV0IikpLnZhbHVlPSJ0IixydC50eXBlPSJyYWRpbyIseS5yYWRpb1ZhbHVlPSJ0Ij09PXJ0LnZhbHVlO3ZhciBwdCxkdD1TLmV4cHIuYXR0ckhhbmRsZTtTLmZuLmV4dGVuZCh7YXR0cjpmdW5jdGlvbihlLHQpe3JldHVybiAkKHRoaXMsUy5hdHRyLGUsdCwxPGFyZ3VtZW50cy5sZW5ndGgpfSxyZW1vdmVBdHRyOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXtTLnJlbW92ZUF0dHIodGhpcyxlKX0pfX0pLFMuZXh0ZW5kKHthdHRyOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgZS5nZXRBdHRyaWJ1dGU/Uy5wcm9wKGUsdCxuKTooMT09PW8mJlMuaXNYTUxEb2MoZSl8fChpPVMuYXR0ckhvb2tzW3QudG9Mb3dlckNhc2UoKV18fChTLmV4cHIubWF0Y2guYm9vbC50ZXN0KHQpP3B0OnZvaWQgMCkpLHZvaWQgMCE9PW4/bnVsbD09PW4/dm9pZCBTLnJlbW92ZUF0dHIoZSx0KTppJiYic2V0ImluIGkmJnZvaWQgMCE9PShyPWkuc2V0KGUsbix0KSk/cjooZS5zZXRBdHRyaWJ1dGUodCxuKyIiKSxuKTppJiYiZ2V0ImluIGkmJm51bGwhPT0ocj1pLmdldChlLHQpKT9yOm51bGw9PShyPVMuZmluZC5hdHRyKGUsdCkpP3ZvaWQgMDpyKX0sYXR0ckhvb2tzOnt0eXBlOntzZXQ6ZnVuY3Rpb24oZSx0KXtpZigheS5yYWRpb1ZhbHVlJiYicmFkaW8iPT09dCYmQShlLCJpbnB1dCIpKXt2YXIgbj1lLnZhbHVlO3JldHVybiBlLnNldEF0dHJpYnV0ZSgidHlwZSIsdCksbiYmKGUudmFsdWU9biksdH19fX0scmVtb3ZlQXR0cjpmdW5jdGlvbihlLHQpe3ZhciBuLHI9MCxpPXQmJnQubWF0Y2goUCk7aWYoaSYmMT09PWUubm9kZVR5cGUpd2hpbGUobj1pW3IrK10pZS5yZW1vdmVBdHRyaWJ1dGUobil9fSkscHQ9e3NldDpmdW5jdGlvbihlLHQsbil7cmV0dXJuITE9PT10P1MucmVtb3ZlQXR0cihlLG4pOmUuc2V0QXR0cmlidXRlKG4sbiksbn19LFMuZWFjaChTLmV4cHIubWF0Y2guYm9vbC5zb3VyY2UubWF0Y2goL1x3Ky9nKSxmdW5jdGlvbihlLHQpe3ZhciBhPWR0W3RdfHxTLmZpbmQuYXR0cjtkdFt0XT1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvPXQudG9Mb3dlckNhc2UoKTtyZXR1cm4gbnx8KGk9ZHRbb10sZHRbb109cixyPW51bGwhPWEoZSx0LG4pP286bnVsbCxkdFtvXT1pKSxyfX0pO3ZhciBodD0vXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLGd0PS9eKD86YXxhcmVhKSQvaTtmdW5jdGlvbiB2dChlKXtyZXR1cm4oZS5tYXRjaChQKXx8W10pLmpvaW4oIiAiKX1mdW5jdGlvbiB5dChlKXtyZXR1cm4gZS5nZXRBdHRyaWJ1dGUmJmUuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIn1mdW5jdGlvbiBtdChlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKT9lOiJzdHJpbmciPT10eXBlb2YgZSYmZS5tYXRjaChQKXx8W119Uy5mbi5leHRlbmQoe3Byb3A6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gJCh0aGlzLFMucHJvcCxlLHQsMTxhcmd1bWVudHMubGVuZ3RoKX0scmVtb3ZlUHJvcDpmdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXNbUy5wcm9wRml4W2VdfHxlXX0pfX0pLFMuZXh0ZW5kKHtwcm9wOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG89ZS5ub2RlVHlwZTtpZigzIT09byYmOCE9PW8mJjIhPT1vKXJldHVybiAxPT09byYmUy5pc1hNTERvYyhlKXx8KHQ9Uy5wcm9wRml4W3RdfHx0LGk9Uy5wcm9wSG9va3NbdF0pLHZvaWQgMCE9PW4/aSYmInNldCJpbiBpJiZ2b2lkIDAhPT0ocj1pLnNldChlLG4sdCkpP3I6ZVt0XT1uOmkmJiJnZXQiaW4gaSYmbnVsbCE9PShyPWkuZ2V0KGUsdCkpP3I6ZVt0XX0scHJvcEhvb2tzOnt0YWJJbmRleDp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInRhYmluZGV4Iik7cmV0dXJuIHQ/cGFyc2VJbnQodCwxMCk6aHQudGVzdChlLm5vZGVOYW1lKXx8Z3QudGVzdChlLm5vZGVOYW1lKSYmZS5ocmVmPzA6LTF9fX0scHJvcEZpeDp7ImZvciI6Imh0bWxGb3IiLCJjbGFzcyI6ImNsYXNzTmFtZSJ9fSkseS5vcHRTZWxlY3RlZHx8KFMucHJvcEhvb2tzLnNlbGVjdGVkPXtnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5wYXJlbnROb2RlO3JldHVybiB0JiZ0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4LG51bGx9LHNldDpmdW5jdGlvbihlKXt2YXIgdD1lLnBhcmVudE5vZGU7dCYmKHQuc2VsZWN0ZWRJbmRleCx0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4KX19KSxTLmVhY2goWyJ0YWJJbmRleCIsInJlYWRPbmx5IiwibWF4TGVuZ3RoIiwiY2VsbFNwYWNpbmciLCJjZWxsUGFkZGluZyIsInJvd1NwYW4iLCJjb2xTcGFuIiwidXNlTWFwIiwiZnJhbWVCb3JkZXIiLCJjb250ZW50RWRpdGFibGUiXSxmdW5jdGlvbigpe1MucHJvcEZpeFt0aGlzLnRvTG93ZXJDYXNlKCldPXRoaXN9KSxTLmZuLmV4dGVuZCh7YWRkQ2xhc3M6ZnVuY3Rpb24odCl7dmFyIGUsbixyLGksbyxhLHMsdT0wO2lmKG0odCkpcmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLmFkZENsYXNzKHQuY2FsbCh0aGlzLGUseXQodGhpcykpKX0pO2lmKChlPW10KHQpKS5sZW5ndGgpd2hpbGUobj10aGlzW3UrK10paWYoaT15dChuKSxyPTE9PT1uLm5vZGVUeXBlJiYiICIrdnQoaSkrIiAiKXthPTA7d2hpbGUobz1lW2ErK10pci5pbmRleE9mKCIgIitvKyIgIik8MCYmKHIrPW8rIiAiKTtpIT09KHM9dnQocikpJiZuLnNldEF0dHJpYnV0ZSgiY2xhc3MiLHMpfXJldHVybiB0aGlzfSxyZW1vdmVDbGFzczpmdW5jdGlvbih0KXt2YXIgZSxuLHIsaSxvLGEscyx1PTA7aWYobSh0KSlyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKGUpe1ModGhpcykucmVtb3ZlQ2xhc3ModC5jYWxsKHRoaXMsZSx5dCh0aGlzKSkpfSk7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuYXR0cigiY2xhc3MiLCIiKTtpZigoZT1tdCh0KSkubGVuZ3RoKXdoaWxlKG49dGhpc1t1KytdKWlmKGk9eXQobikscj0xPT09bi5ub2RlVHlwZSYmIiAiK3Z0KGkpKyIgIil7YT0wO3doaWxlKG89ZVthKytdKXdoaWxlKC0xPHIuaW5kZXhPZigiICIrbysiICIpKXI9ci5yZXBsYWNlKCIgIitvKyIgIiwiICIpO2khPT0ocz12dChyKSkmJm4uc2V0QXR0cmlidXRlKCJjbGFzcyIscyl9cmV0dXJuIHRoaXN9LHRvZ2dsZUNsYXNzOmZ1bmN0aW9uKGksdCl7dmFyIG89dHlwZW9mIGksYT0ic3RyaW5nIj09PW98fEFycmF5LmlzQXJyYXkoaSk7cmV0dXJuImJvb2xlYW4iPT10eXBlb2YgdCYmYT90P3RoaXMuYWRkQ2xhc3MoaSk6dGhpcy5yZW1vdmVDbGFzcyhpKTptKGkpP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLnRvZ2dsZUNsYXNzKGkuY2FsbCh0aGlzLGUseXQodGhpcyksdCksdCl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZSx0LG4scjtpZihhKXt0PTAsbj1TKHRoaXMpLHI9bXQoaSk7d2hpbGUoZT1yW3QrK10pbi5oYXNDbGFzcyhlKT9uLnJlbW92ZUNsYXNzKGUpOm4uYWRkQ2xhc3MoZSl9ZWxzZSB2b2lkIDAhPT1pJiYiYm9vbGVhbiIhPT1vfHwoKGU9eXQodGhpcykpJiZZLnNldCh0aGlzLCJfX2NsYXNzTmFtZV9fIixlKSx0aGlzLnNldEF0dHJpYnV0ZSYmdGhpcy5zZXRBdHRyaWJ1dGUoImNsYXNzIixlfHwhMT09PWk/IiI6WS5nZXQodGhpcywiX19jbGFzc05hbWVfXyIpfHwiIikpfSl9LGhhc0NsYXNzOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj0wO3Q9IiAiK2UrIiAiO3doaWxlKG49dGhpc1tyKytdKWlmKDE9PT1uLm5vZGVUeXBlJiYtMTwoIiAiK3Z0KHl0KG4pKSsiICIpLmluZGV4T2YodCkpcmV0dXJuITA7cmV0dXJuITF9fSk7dmFyIHh0PS9cci9nO1MuZm4uZXh0ZW5kKHt2YWw6ZnVuY3Rpb24obil7dmFyIHIsZSxpLHQ9dGhpc1swXTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1tKG4pLHRoaXMuZWFjaChmdW5jdGlvbihlKXt2YXIgdDsxPT09dGhpcy5ub2RlVHlwZSYmKG51bGw9PSh0PWk/bi5jYWxsKHRoaXMsZSxTKHRoaXMpLnZhbCgpKTpuKT90PSIiOiJudW1iZXIiPT10eXBlb2YgdD90Kz0iIjpBcnJheS5pc0FycmF5KHQpJiYodD1TLm1hcCh0LGZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT1lPyIiOmUrIiJ9KSksKHI9Uy52YWxIb29rc1t0aGlzLnR5cGVdfHxTLnZhbEhvb2tzW3RoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYic2V0ImluIHImJnZvaWQgMCE9PXIuc2V0KHRoaXMsdCwidmFsdWUiKXx8KHRoaXMudmFsdWU9dCkpfSkpOnQ/KHI9Uy52YWxIb29rc1t0LnR5cGVdfHxTLnZhbEhvb2tzW3Qubm9kZU5hbWUudG9Mb3dlckNhc2UoKV0pJiYiZ2V0ImluIHImJnZvaWQgMCE9PShlPXIuZ2V0KHQsInZhbHVlIikpP2U6InN0cmluZyI9PXR5cGVvZihlPXQudmFsdWUpP2UucmVwbGFjZSh4dCwiIik6bnVsbD09ZT8iIjplOnZvaWQgMH19KSxTLmV4dGVuZCh7dmFsSG9va3M6e29wdGlvbjp7Z2V0OmZ1bmN0aW9uKGUpe3ZhciB0PVMuZmluZC5hdHRyKGUsInZhbHVlIik7cmV0dXJuIG51bGwhPXQ/dDp2dChTLnRleHQoZSkpfX0sc2VsZWN0OntnZXQ6ZnVuY3Rpb24oZSl7dmFyIHQsbixyLGk9ZS5vcHRpb25zLG89ZS5zZWxlY3RlZEluZGV4LGE9InNlbGVjdC1vbmUiPT09ZS50eXBlLHM9YT9udWxsOltdLHU9YT9vKzE6aS5sZW5ndGg7Zm9yKHI9bzwwP3U6YT9vOjA7cjx1O3IrKylpZigoKG49aVtyXSkuc2VsZWN0ZWR8fHI9PT1vKSYmIW4uZGlzYWJsZWQmJighbi5wYXJlbnROb2RlLmRpc2FibGVkfHwhQShuLnBhcmVudE5vZGUsIm9wdGdyb3VwIikpKXtpZih0PVMobikudmFsKCksYSlyZXR1cm4gdDtzLnB1c2godCl9cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlLHQpe3ZhciBuLHIsaT1lLm9wdGlvbnMsbz1TLm1ha2VBcnJheSh0KSxhPWkubGVuZ3RoO3doaWxlKGEtLSkoKHI9aVthXSkuc2VsZWN0ZWQ9LTE8Uy5pbkFycmF5KFMudmFsSG9va3Mub3B0aW9uLmdldChyKSxvKSkmJihuPSEwKTtyZXR1cm4gbnx8KGUuc2VsZWN0ZWRJbmRleD0tMSksb319fX0pLFMuZWFjaChbInJhZGlvIiwiY2hlY2tib3giXSxmdW5jdGlvbigpe1MudmFsSG9va3NbdGhpc109e3NldDpmdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGUuY2hlY2tlZD0tMTxTLmluQXJyYXkoUyhlKS52YWwoKSx0KX19LHkuY2hlY2tPbnx8KFMudmFsSG9va3NbdGhpc10uZ2V0PWZ1bmN0aW9uKGUpe3JldHVybiBudWxsPT09ZS5nZXRBdHRyaWJ1dGUoInZhbHVlIik/Im9uIjplLnZhbHVlfSl9KSx5LmZvY3VzaW49Im9uZm9jdXNpbiJpbiBDO3ZhciBidD0vXig/OmZvY3VzaW5mb2N1c3xmb2N1c291dGJsdXIpJC8sd3Q9ZnVuY3Rpb24oZSl7ZS5zdG9wUHJvcGFnYXRpb24oKX07Uy5leHRlbmQoUy5ldmVudCx7dHJpZ2dlcjpmdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGwsYyxmLHA9W258fEVdLGQ9di5jYWxsKGUsInR5cGUiKT9lLnR5cGU6ZSxoPXYuY2FsbChlLCJuYW1lc3BhY2UiKT9lLm5hbWVzcGFjZS5zcGxpdCgiLiIpOltdO2lmKG89Zj1hPW49bnx8RSwzIT09bi5ub2RlVHlwZSYmOCE9PW4ubm9kZVR5cGUmJiFidC50ZXN0KGQrUy5ldmVudC50cmlnZ2VyZWQpJiYoLTE8ZC5pbmRleE9mKCIuIikmJihkPShoPWQuc3BsaXQoIi4iKSkuc2hpZnQoKSxoLnNvcnQoKSksdT1kLmluZGV4T2YoIjoiKTwwJiYib24iK2QsKGU9ZVtTLmV4cGFuZG9dP2U6bmV3IFMuRXZlbnQoZCwib2JqZWN0Ij09dHlwZW9mIGUmJmUpKS5pc1RyaWdnZXI9cj8yOjMsZS5uYW1lc3BhY2U9aC5qb2luKCIuIiksZS5ybmFtZXNwYWNlPWUubmFtZXNwYWNlP25ldyBSZWdFeHAoIihefFxcLikiK2guam9pbigiXFwuKD86LipcXC58KSIpKyIoXFwufCQpIik6bnVsbCxlLnJlc3VsdD12b2lkIDAsZS50YXJnZXR8fChlLnRhcmdldD1uKSx0PW51bGw9PXQ/W2VdOlMubWFrZUFycmF5KHQsW2VdKSxjPVMuZXZlbnQuc3BlY2lhbFtkXXx8e30scnx8IWMudHJpZ2dlcnx8ITEhPT1jLnRyaWdnZXIuYXBwbHkobix0KSkpe2lmKCFyJiYhYy5ub0J1YmJsZSYmIXgobikpe2ZvcihzPWMuZGVsZWdhdGVUeXBlfHxkLGJ0LnRlc3QocytkKXx8KG89by5wYXJlbnROb2RlKTtvO289by5wYXJlbnROb2RlKXAucHVzaChvKSxhPW87YT09PShuLm93bmVyRG9jdW1lbnR8fEUpJiZwLnB1c2goYS5kZWZhdWx0Vmlld3x8YS5wYXJlbnRXaW5kb3d8fEMpfWk9MDt3aGlsZSgobz1wW2krK10pJiYhZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpKWY9byxlLnR5cGU9MTxpP3M6Yy5iaW5kVHlwZXx8ZCwobD0oWS5nZXQobywiZXZlbnRzIil8fE9iamVjdC5jcmVhdGUobnVsbCkpW2UudHlwZV0mJlkuZ2V0KG8sImhhbmRsZSIpKSYmbC5hcHBseShvLHQpLChsPXUmJm9bdV0pJiZsLmFwcGx5JiZWKG8pJiYoZS5yZXN1bHQ9bC5hcHBseShvLHQpLCExPT09ZS5yZXN1bHQmJmUucHJldmVudERlZmF1bHQoKSk7cmV0dXJuIGUudHlwZT1kLHJ8fGUuaXNEZWZhdWx0UHJldmVudGVkKCl8fGMuX2RlZmF1bHQmJiExIT09Yy5fZGVmYXVsdC5hcHBseShwLnBvcCgpLHQpfHwhVihuKXx8dSYmbShuW2RdKSYmIXgobikmJigoYT1uW3VdKSYmKG5bdV09bnVsbCksUy5ldmVudC50cmlnZ2VyZWQ9ZCxlLmlzUHJvcGFnYXRpb25TdG9wcGVkKCkmJmYuYWRkRXZlbnRMaXN0ZW5lcihkLHd0KSxuW2RdKCksZS5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpJiZmLnJlbW92ZUV2ZW50TGlzdGVuZXIoZCx3dCksUy5ldmVudC50cmlnZ2VyZWQ9dm9pZCAwLGEmJihuW3VdPWEpKSxlLnJlc3VsdH19LHNpbXVsYXRlOmZ1bmN0aW9uKGUsdCxuKXt2YXIgcj1TLmV4dGVuZChuZXcgUy5FdmVudCxuLHt0eXBlOmUsaXNTaW11bGF0ZWQ6ITB9KTtTLmV2ZW50LnRyaWdnZXIocixudWxsLHQpfX0pLFMuZm4uZXh0ZW5kKHt0cmlnZ2VyOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe1MuZXZlbnQudHJpZ2dlcihlLHQsdGhpcyl9KX0sdHJpZ2dlckhhbmRsZXI6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzWzBdO2lmKG4pcmV0dXJuIFMuZXZlbnQudHJpZ2dlcihlLHQsbiwhMCl9fSkseS5mb2N1c2lufHxTLmVhY2goe2ZvY3VzOiJmb2N1c2luIixibHVyOiJmb2N1c291dCJ9LGZ1bmN0aW9uKG4scil7dmFyIGk9ZnVuY3Rpb24oZSl7Uy5ldmVudC5zaW11bGF0ZShyLGUudGFyZ2V0LFMuZXZlbnQuZml4KGUpKX07Uy5ldmVudC5zcGVjaWFsW3JdPXtzZXR1cDpmdW5jdGlvbigpe3ZhciBlPXRoaXMub3duZXJEb2N1bWVudHx8dGhpcy5kb2N1bWVudHx8dGhpcyx0PVkuYWNjZXNzKGUscik7dHx8ZS5hZGRFdmVudExpc3RlbmVyKG4saSwhMCksWS5hY2Nlc3MoZSxyLCh0fHwwKSsxKX0sdGVhcmRvd246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm93bmVyRG9jdW1lbnR8fHRoaXMuZG9jdW1lbnR8fHRoaXMsdD1ZLmFjY2VzcyhlLHIpLTE7dD9ZLmFjY2VzcyhlLHIsdCk6KGUucmVtb3ZlRXZlbnRMaXN0ZW5lcihuLGksITApLFkucmVtb3ZlKGUscikpfX19KTt2YXIgVHQ9Qy5sb2NhdGlvbixDdD17Z3VpZDpEYXRlLm5vdygpfSxFdD0vXD8vO1MucGFyc2VYTUw9ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoIWV8fCJzdHJpbmciIT10eXBlb2YgZSlyZXR1cm4gbnVsbDt0cnl7dD0obmV3IEMuRE9NUGFyc2VyKS5wYXJzZUZyb21TdHJpbmcoZSwidGV4dC94bWwiKX1jYXRjaChlKXt0PXZvaWQgMH1yZXR1cm4gdCYmIXQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInBhcnNlcmVycm9yIikubGVuZ3RofHxTLmVycm9yKCJJbnZhbGlkIFhNTDogIitlKSx0fTt2YXIgU3Q9L1xbXF0kLyxrdD0vXHI/XG4vZyxBdD0vXig/OnN1Ym1pdHxidXR0b258aW1hZ2V8cmVzZXR8ZmlsZSkkL2ksTnQ9L14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8a2V5Z2VuKS9pO2Z1bmN0aW9uIER0KG4sZSxyLGkpe3ZhciB0O2lmKEFycmF5LmlzQXJyYXkoZSkpUy5lYWNoKGUsZnVuY3Rpb24oZSx0KXtyfHxTdC50ZXN0KG4pP2kobix0KTpEdChuKyJbIisoIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT10P2U6IiIpKyJdIix0LHIsaSl9KTtlbHNlIGlmKHJ8fCJvYmplY3QiIT09dyhlKSlpKG4sZSk7ZWxzZSBmb3IodCBpbiBlKUR0KG4rIlsiK3QrIl0iLGVbdF0scixpKX1TLnBhcmFtPWZ1bmN0aW9uKGUsdCl7dmFyIG4scj1bXSxpPWZ1bmN0aW9uKGUsdCl7dmFyIG49bSh0KT90KCk6dDtyW3IubGVuZ3RoXT1lbmNvZGVVUklDb21wb25lbnQoZSkrIj0iK2VuY29kZVVSSUNvbXBvbmVudChudWxsPT1uPyIiOm4pfTtpZihudWxsPT1lKXJldHVybiIiO2lmKEFycmF5LmlzQXJyYXkoZSl8fGUuanF1ZXJ5JiYhUy5pc1BsYWluT2JqZWN0KGUpKVMuZWFjaChlLGZ1bmN0aW9uKCl7aSh0aGlzLm5hbWUsdGhpcy52YWx1ZSl9KTtlbHNlIGZvcihuIGluIGUpRHQobixlW25dLHQsaSk7cmV0dXJuIHIuam9pbigiJiIpfSxTLmZuLmV4dGVuZCh7c2VyaWFsaXplOmZ1bmN0aW9uKCl7cmV0dXJuIFMucGFyYW0odGhpcy5zZXJpYWxpemVBcnJheSgpKX0sc2VyaWFsaXplQXJyYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT1TLnByb3AodGhpcywiZWxlbWVudHMiKTtyZXR1cm4gZT9TLm1ha2VBcnJheShlKTp0aGlzfSkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50eXBlO3JldHVybiB0aGlzLm5hbWUmJiFTKHRoaXMpLmlzKCI6ZGlzYWJsZWQiKSYmTnQudGVzdCh0aGlzLm5vZGVOYW1lKSYmIUF0LnRlc3QoZSkmJih0aGlzLmNoZWNrZWR8fCFwZS50ZXN0KGUpKX0pLm1hcChmdW5jdGlvbihlLHQpe3ZhciBuPVModGhpcykudmFsKCk7cmV0dXJuIG51bGw9PW4/bnVsbDpBcnJheS5pc0FycmF5KG4pP1MubWFwKG4sZnVuY3Rpb24oZSl7cmV0dXJue25hbWU6dC5uYW1lLHZhbHVlOmUucmVwbGFjZShrdCwiXHJcbiIpfX0pOntuYW1lOnQubmFtZSx2YWx1ZTpuLnJlcGxhY2Uoa3QsIlxyXG4iKX19KS5nZXQoKX19KTt2YXIganQ9LyUyMC9nLHF0PS8jLiokLyxMdD0vKFs/Jl0pXz1bXiZdKi8sSHQ9L14oLio/KTpbIFx0XSooW15cclxuXSopJC9nbSxPdD0vXig/OkdFVHxIRUFEKSQvLFB0PS9eXC9cLy8sUnQ9e30sTXQ9e30sSXQ9IiovIi5jb25jYXQoIioiKSxXdD1FLmNyZWF0ZUVsZW1lbnQoImEiKTtmdW5jdGlvbiBGdChvKXtyZXR1cm4gZnVuY3Rpb24oZSx0KXsic3RyaW5nIiE9dHlwZW9mIGUmJih0PWUsZT0iKiIpO3ZhciBuLHI9MCxpPWUudG9Mb3dlckNhc2UoKS5tYXRjaChQKXx8W107aWYobSh0KSl3aGlsZShuPWlbcisrXSkiKyI9PT1uWzBdPyhuPW4uc2xpY2UoMSl8fCIqIiwob1tuXT1vW25dfHxbXSkudW5zaGlmdCh0KSk6KG9bbl09b1tuXXx8W10pLnB1c2godCl9fWZ1bmN0aW9uIEJ0KHQsaSxvLGEpe3ZhciBzPXt9LHU9dD09PU10O2Z1bmN0aW9uIGwoZSl7dmFyIHI7cmV0dXJuIHNbZV09ITAsUy5lYWNoKHRbZV18fFtdLGZ1bmN0aW9uKGUsdCl7dmFyIG49dChpLG8sYSk7cmV0dXJuInN0cmluZyIhPXR5cGVvZiBufHx1fHxzW25dP3U/IShyPW4pOnZvaWQgMDooaS5kYXRhVHlwZXMudW5zaGlmdChuKSxsKG4pLCExKX0pLHJ9cmV0dXJuIGwoaS5kYXRhVHlwZXNbMF0pfHwhc1siKiJdJiZsKCIqIil9ZnVuY3Rpb24gJHQoZSx0KXt2YXIgbixyLGk9Uy5hamF4U2V0dGluZ3MuZmxhdE9wdGlvbnN8fHt9O2ZvcihuIGluIHQpdm9pZCAwIT09dFtuXSYmKChpW25dP2U6cnx8KHI9e30pKVtuXT10W25dKTtyZXR1cm4gciYmUy5leHRlbmQoITAsZSxyKSxlfVd0LmhyZWY9VHQuaHJlZixTLmV4dGVuZCh7YWN0aXZlOjAsbGFzdE1vZGlmaWVkOnt9LGV0YWc6e30sYWpheFNldHRpbmdzOnt1cmw6VHQuaHJlZix0eXBlOiJHRVQiLGlzTG9jYWw6L14oPzphYm91dHxhcHB8YXBwLXN0b3JhZ2V8ListZXh0ZW5zaW9ufGZpbGV8cmVzfHdpZGdldCk6JC8udGVzdChUdC5wcm90b2NvbCksZ2xvYmFsOiEwLHByb2Nlc3NEYXRhOiEwLGFzeW5jOiEwLGNvbnRlbnRUeXBlOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQ7IGNoYXJzZXQ9VVRGLTgiLGFjY2VwdHM6eyIqIjpJdCx0ZXh0OiJ0ZXh0L3BsYWluIixodG1sOiJ0ZXh0L2h0bWwiLHhtbDoiYXBwbGljYXRpb24veG1sLCB0ZXh0L3htbCIsanNvbjoiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0In0sY29udGVudHM6e3htbDovXGJ4bWxcYi8saHRtbDovXGJodG1sLyxqc29uOi9cYmpzb25cYi99LHJlc3BvbnNlRmllbGRzOnt4bWw6InJlc3BvbnNlWE1MIix0ZXh0OiJyZXNwb25zZVRleHQiLGpzb246InJlc3BvbnNlSlNPTiJ9LGNvbnZlcnRlcnM6eyIqIHRleHQiOlN0cmluZywidGV4dCBodG1sIjohMCwidGV4dCBqc29uIjpKU09OLnBhcnNlLCJ0ZXh0IHhtbCI6Uy5wYXJzZVhNTH0sZmxhdE9wdGlvbnM6e3VybDohMCxjb250ZXh0OiEwfX0sYWpheFNldHVwOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHQ/JHQoJHQoZSxTLmFqYXhTZXR0aW5ncyksdCk6JHQoUy5hamF4U2V0dGluZ3MsZSl9LGFqYXhQcmVmaWx0ZXI6RnQoUnQpLGFqYXhUcmFuc3BvcnQ6RnQoTXQpLGFqYXg6ZnVuY3Rpb24oZSx0KXsib2JqZWN0Ij09dHlwZW9mIGUmJih0PWUsZT12b2lkIDApLHQ9dHx8e307dmFyIGMsZixwLG4sZCxyLGgsZyxpLG8sdj1TLmFqYXhTZXR1cCh7fSx0KSx5PXYuY29udGV4dHx8dixtPXYuY29udGV4dCYmKHkubm9kZVR5cGV8fHkuanF1ZXJ5KT9TKHkpOlMuZXZlbnQseD1TLkRlZmVycmVkKCksYj1TLkNhbGxiYWNrcygib25jZSBtZW1vcnkiKSx3PXYuc3RhdHVzQ29kZXx8e30sYT17fSxzPXt9LHU9ImNhbmNlbGVkIixUPXtyZWFkeVN0YXRlOjAsZ2V0UmVzcG9uc2VIZWFkZXI6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoaCl7aWYoIW4pe249e307d2hpbGUodD1IdC5leGVjKHApKW5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl09KG5bdFsxXS50b0xvd2VyQ2FzZSgpKyIgIl18fFtdKS5jb25jYXQodFsyXSl9dD1uW2UudG9Mb3dlckNhc2UoKSsiICJdfXJldHVybiBudWxsPT10P251bGw6dC5qb2luKCIsICIpfSxnZXRBbGxSZXNwb25zZUhlYWRlcnM6ZnVuY3Rpb24oKXtyZXR1cm4gaD9wOm51bGx9LHNldFJlcXVlc3RIZWFkZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gbnVsbD09aCYmKGU9c1tlLnRvTG93ZXJDYXNlKCldPXNbZS50b0xvd2VyQ2FzZSgpXXx8ZSxhW2VdPXQpLHRoaXN9LG92ZXJyaWRlTWltZVR5cGU6ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWgmJih2Lm1pbWVUeXBlPWUpLHRoaXN9LHN0YXR1c0NvZGU6ZnVuY3Rpb24oZSl7dmFyIHQ7aWYoZSlpZihoKVQuYWx3YXlzKGVbVC5zdGF0dXNdKTtlbHNlIGZvcih0IGluIGUpd1t0XT1bd1t0XSxlW3RdXTtyZXR1cm4gdGhpc30sYWJvcnQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZXx8dTtyZXR1cm4gYyYmYy5hYm9ydCh0KSxsKDAsdCksdGhpc319O2lmKHgucHJvbWlzZShUKSx2LnVybD0oKGV8fHYudXJsfHxUdC5ocmVmKSsiIikucmVwbGFjZShQdCxUdC5wcm90b2NvbCsiLy8iKSx2LnR5cGU9dC5tZXRob2R8fHQudHlwZXx8di5tZXRob2R8fHYudHlwZSx2LmRhdGFUeXBlcz0odi5kYXRhVHlwZXx8IioiKS50b0xvd2VyQ2FzZSgpLm1hdGNoKFApfHxbIiJdLG51bGw9PXYuY3Jvc3NEb21haW4pe3I9RS5jcmVhdGVFbGVtZW50KCJhIik7dHJ5e3IuaHJlZj12LnVybCxyLmhyZWY9ci5ocmVmLHYuY3Jvc3NEb21haW49V3QucHJvdG9jb2wrIi8vIitXdC5ob3N0IT1yLnByb3RvY29sKyIvLyIrci5ob3N0fWNhdGNoKGUpe3YuY3Jvc3NEb21haW49ITB9fWlmKHYuZGF0YSYmdi5wcm9jZXNzRGF0YSYmInN0cmluZyIhPXR5cGVvZiB2LmRhdGEmJih2LmRhdGE9Uy5wYXJhbSh2LmRhdGEsdi50cmFkaXRpb25hbCkpLEJ0KFJ0LHYsdCxUKSxoKXJldHVybiBUO2ZvcihpIGluKGc9Uy5ldmVudCYmdi5nbG9iYWwpJiYwPT1TLmFjdGl2ZSsrJiZTLmV2ZW50LnRyaWdnZXIoImFqYXhTdGFydCIpLHYudHlwZT12LnR5cGUudG9VcHBlckNhc2UoKSx2Lmhhc0NvbnRlbnQ9IU90LnRlc3Qodi50eXBlKSxmPXYudXJsLnJlcGxhY2UocXQsIiIpLHYuaGFzQ29udGVudD92LmRhdGEmJnYucHJvY2Vzc0RhdGEmJjA9PT0odi5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiYodi5kYXRhPXYuZGF0YS5yZXBsYWNlKGp0LCIrIikpOihvPXYudXJsLnNsaWNlKGYubGVuZ3RoKSx2LmRhdGEmJih2LnByb2Nlc3NEYXRhfHwic3RyaW5nIj09dHlwZW9mIHYuZGF0YSkmJihmKz0oRXQudGVzdChmKT8iJiI6Ij8iKSt2LmRhdGEsZGVsZXRlIHYuZGF0YSksITE9PT12LmNhY2hlJiYoZj1mLnJlcGxhY2UoTHQsIiQxIiksbz0oRXQudGVzdChmKT8iJiI6Ij8iKSsiXz0iK0N0Lmd1aWQrKytvKSx2LnVybD1mK28pLHYuaWZNb2RpZmllZCYmKFMubGFzdE1vZGlmaWVkW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU1vZGlmaWVkLVNpbmNlIixTLmxhc3RNb2RpZmllZFtmXSksUy5ldGFnW2ZdJiZULnNldFJlcXVlc3RIZWFkZXIoIklmLU5vbmUtTWF0Y2giLFMuZXRhZ1tmXSkpLCh2LmRhdGEmJnYuaGFzQ29udGVudCYmITEhPT12LmNvbnRlbnRUeXBlfHx0LmNvbnRlbnRUeXBlKSYmVC5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLHYuY29udGVudFR5cGUpLFQuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0Iix2LmRhdGFUeXBlc1swXSYmdi5hY2NlcHRzW3YuZGF0YVR5cGVzWzBdXT92LmFjY2VwdHNbdi5kYXRhVHlwZXNbMF1dKygiKiIhPT12LmRhdGFUeXBlc1swXT8iLCAiK0l0KyI7IHE9MC4wMSI6IiIpOnYuYWNjZXB0c1siKiJdKSx2LmhlYWRlcnMpVC5zZXRSZXF1ZXN0SGVhZGVyKGksdi5oZWFkZXJzW2ldKTtpZih2LmJlZm9yZVNlbmQmJighMT09PXYuYmVmb3JlU2VuZC5jYWxsKHksVCx2KXx8aCkpcmV0dXJuIFQuYWJvcnQoKTtpZih1PSJhYm9ydCIsYi5hZGQodi5jb21wbGV0ZSksVC5kb25lKHYuc3VjY2VzcyksVC5mYWlsKHYuZXJyb3IpLGM9QnQoTXQsdix0LFQpKXtpZihULnJlYWR5U3RhdGU9MSxnJiZtLnRyaWdnZXIoImFqYXhTZW5kIixbVCx2XSksaClyZXR1cm4gVDt2LmFzeW5jJiYwPHYudGltZW91dCYmKGQ9Qy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7VC5hYm9ydCgidGltZW91dCIpfSx2LnRpbWVvdXQpKTt0cnl7aD0hMSxjLnNlbmQoYSxsKX1jYXRjaChlKXtpZihoKXRocm93IGU7bCgtMSxlKX19ZWxzZSBsKC0xLCJObyBUcmFuc3BvcnQiKTtmdW5jdGlvbiBsKGUsdCxuLHIpe3ZhciBpLG8sYSxzLHUsbD10O2h8fChoPSEwLGQmJkMuY2xlYXJUaW1lb3V0KGQpLGM9dm9pZCAwLHA9cnx8IiIsVC5yZWFkeVN0YXRlPTA8ZT80OjAsaT0yMDA8PWUmJmU8MzAwfHwzMDQ9PT1lLG4mJihzPWZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzPWUuY29udGVudHMsdT1lLmRhdGFUeXBlczt3aGlsZSgiKiI9PT11WzBdKXUuc2hpZnQoKSx2b2lkIDA9PT1yJiYocj1lLm1pbWVUeXBlfHx0LmdldFJlc3BvbnNlSGVhZGVyKCJDb250ZW50LVR5cGUiKSk7aWYocilmb3IoaSBpbiBzKWlmKHNbaV0mJnNbaV0udGVzdChyKSl7dS51bnNoaWZ0KGkpO2JyZWFrfWlmKHVbMF1pbiBuKW89dVswXTtlbHNle2ZvcihpIGluIG4pe2lmKCF1WzBdfHxlLmNvbnZlcnRlcnNbaSsiICIrdVswXV0pe289aTticmVha31hfHwoYT1pKX1vPW98fGF9aWYobylyZXR1cm4gbyE9PXVbMF0mJnUudW5zaGlmdChvKSxuW29dfSh2LFQsbikpLCFpJiYtMTxTLmluQXJyYXkoInNjcmlwdCIsdi5kYXRhVHlwZXMpJiYodi5jb252ZXJ0ZXJzWyJ0ZXh0IHNjcmlwdCJdPWZ1bmN0aW9uKCl7fSkscz1mdW5jdGlvbihlLHQsbixyKXt2YXIgaSxvLGEscyx1LGw9e30sYz1lLmRhdGFUeXBlcy5zbGljZSgpO2lmKGNbMV0pZm9yKGEgaW4gZS5jb252ZXJ0ZXJzKWxbYS50b0xvd2VyQ2FzZSgpXT1lLmNvbnZlcnRlcnNbYV07bz1jLnNoaWZ0KCk7d2hpbGUobylpZihlLnJlc3BvbnNlRmllbGRzW29dJiYobltlLnJlc3BvbnNlRmllbGRzW29dXT10KSwhdSYmciYmZS5kYXRhRmlsdGVyJiYodD1lLmRhdGFGaWx0ZXIodCxlLmRhdGFUeXBlKSksdT1vLG89Yy5zaGlmdCgpKWlmKCIqIj09PW8pbz11O2Vsc2UgaWYoIioiIT09dSYmdSE9PW8pe2lmKCEoYT1sW3UrIiAiK29dfHxsWyIqICIrb10pKWZvcihpIGluIGwpaWYoKHM9aS5zcGxpdCgiICIpKVsxXT09PW8mJihhPWxbdSsiICIrc1swXV18fGxbIiogIitzWzBdXSkpeyEwPT09YT9hPWxbaV06ITAhPT1sW2ldJiYobz1zWzBdLGMudW5zaGlmdChzWzFdKSk7YnJlYWt9aWYoITAhPT1hKWlmKGEmJmVbInRocm93cyJdKXQ9YSh0KTtlbHNlIHRyeXt0PWEodCl9Y2F0Y2goZSl7cmV0dXJue3N0YXRlOiJwYXJzZXJlcnJvciIsZXJyb3I6YT9lOiJObyBjb252ZXJzaW9uIGZyb20gIit1KyIgdG8gIitvfX19cmV0dXJue3N0YXRlOiJzdWNjZXNzIixkYXRhOnR9fSh2LHMsVCxpKSxpPyh2LmlmTW9kaWZpZWQmJigodT1ULmdldFJlc3BvbnNlSGVhZGVyKCJMYXN0LU1vZGlmaWVkIikpJiYoUy5sYXN0TW9kaWZpZWRbZl09dSksKHU9VC5nZXRSZXNwb25zZUhlYWRlcigiZXRhZyIpKSYmKFMuZXRhZ1tmXT11KSksMjA0PT09ZXx8IkhFQUQiPT09di50eXBlP2w9Im5vY29udGVudCI6MzA0PT09ZT9sPSJub3Rtb2RpZmllZCI6KGw9cy5zdGF0ZSxvPXMuZGF0YSxpPSEoYT1zLmVycm9yKSkpOihhPWwsIWUmJmx8fChsPSJlcnJvciIsZTwwJiYoZT0wKSkpLFQuc3RhdHVzPWUsVC5zdGF0dXNUZXh0PSh0fHxsKSsiIixpP3gucmVzb2x2ZVdpdGgoeSxbbyxsLFRdKTp4LnJlamVjdFdpdGgoeSxbVCxsLGFdKSxULnN0YXR1c0NvZGUodyksdz12b2lkIDAsZyYmbS50cmlnZ2VyKGk/ImFqYXhTdWNjZXNzIjoiYWpheEVycm9yIixbVCx2LGk/bzphXSksYi5maXJlV2l0aCh5LFtULGxdKSxnJiYobS50cmlnZ2VyKCJhamF4Q29tcGxldGUiLFtULHZdKSwtLVMuYWN0aXZlfHxTLmV2ZW50LnRyaWdnZXIoImFqYXhTdG9wIikpKX1yZXR1cm4gVH0sZ2V0SlNPTjpmdW5jdGlvbihlLHQsbil7cmV0dXJuIFMuZ2V0KGUsdCxuLCJqc29uIil9LGdldFNjcmlwdDpmdW5jdGlvbihlLHQpe3JldHVybiBTLmdldChlLHZvaWQgMCx0LCJzY3JpcHQiKX19KSxTLmVhY2goWyJnZXQiLCJwb3N0Il0sZnVuY3Rpb24oZSxpKXtTW2ldPWZ1bmN0aW9uKGUsdCxuLHIpe3JldHVybiBtKHQpJiYocj1yfHxuLG49dCx0PXZvaWQgMCksUy5hamF4KFMuZXh0ZW5kKHt1cmw6ZSx0eXBlOmksZGF0YVR5cGU6cixkYXRhOnQsc3VjY2VzczpufSxTLmlzUGxhaW5PYmplY3QoZSkmJmUpKX19KSxTLmFqYXhQcmVmaWx0ZXIoZnVuY3Rpb24oZSl7dmFyIHQ7Zm9yKHQgaW4gZS5oZWFkZXJzKSJjb250ZW50LXR5cGUiPT09dC50b0xvd2VyQ2FzZSgpJiYoZS5jb250ZW50VHlwZT1lLmhlYWRlcnNbdF18fCIiKX0pLFMuX2V2YWxVcmw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiBTLmFqYXgoe3VybDplLHR5cGU6IkdFVCIsZGF0YVR5cGU6InNjcmlwdCIsY2FjaGU6ITAsYXN5bmM6ITEsZ2xvYmFsOiExLGNvbnZlcnRlcnM6eyJ0ZXh0IHNjcmlwdCI6ZnVuY3Rpb24oKXt9fSxkYXRhRmlsdGVyOmZ1bmN0aW9uKGUpe1MuZ2xvYmFsRXZhbChlLHQsbil9fSl9LFMuZm4uZXh0ZW5kKHt3cmFwQWxsOmZ1bmN0aW9uKGUpe3ZhciB0O3JldHVybiB0aGlzWzBdJiYobShlKSYmKGU9ZS5jYWxsKHRoaXNbMF0pKSx0PVMoZSx0aGlzWzBdLm93bmVyRG9jdW1lbnQpLmVxKDApLmNsb25lKCEwKSx0aGlzWzBdLnBhcmVudE5vZGUmJnQuaW5zZXJ0QmVmb3JlKHRoaXNbMF0pLHQubWFwKGZ1bmN0aW9uKCl7dmFyIGU9dGhpczt3aGlsZShlLmZpcnN0RWxlbWVudENoaWxkKWU9ZS5maXJzdEVsZW1lbnRDaGlsZDtyZXR1cm4gZX0pLmFwcGVuZCh0aGlzKSksdGhpc30sd3JhcElubmVyOmZ1bmN0aW9uKG4pe3JldHVybiBtKG4pP3RoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBJbm5lcihuLmNhbGwodGhpcyxlKSl9KTp0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZT1TKHRoaXMpLHQ9ZS5jb250ZW50cygpO3QubGVuZ3RoP3Qud3JhcEFsbChuKTplLmFwcGVuZChuKX0pfSx3cmFwOmZ1bmN0aW9uKHQpe3ZhciBuPW0odCk7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbihlKXtTKHRoaXMpLndyYXBBbGwobj90LmNhbGwodGhpcyxlKTp0KX0pfSx1bndyYXA6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMucGFyZW50KGUpLm5vdCgiYm9keSIpLmVhY2goZnVuY3Rpb24oKXtTKHRoaXMpLnJlcGxhY2VXaXRoKHRoaXMuY2hpbGROb2Rlcyl9KSx0aGlzfX0pLFMuZXhwci5wc2V1ZG9zLmhpZGRlbj1mdW5jdGlvbihlKXtyZXR1cm4hUy5leHByLnBzZXVkb3MudmlzaWJsZShlKX0sUy5leHByLnBzZXVkb3MudmlzaWJsZT1mdW5jdGlvbihlKXtyZXR1cm4hIShlLm9mZnNldFdpZHRofHxlLm9mZnNldEhlaWdodHx8ZS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCl9LFMuYWpheFNldHRpbmdzLnhocj1mdW5jdGlvbigpe3RyeXtyZXR1cm4gbmV3IEMuWE1MSHR0cFJlcXVlc3R9Y2F0Y2goZSl7fX07dmFyIF90PXswOjIwMCwxMjIzOjIwNH0senQ9Uy5hamF4U2V0dGluZ3MueGhyKCk7eS5jb3JzPSEhenQmJiJ3aXRoQ3JlZGVudGlhbHMiaW4genQseS5hamF4PXp0PSEhenQsUy5hamF4VHJhbnNwb3J0KGZ1bmN0aW9uKGkpe3ZhciBvLGE7aWYoeS5jb3JzfHx6dCYmIWkuY3Jvc3NEb21haW4pcmV0dXJue3NlbmQ6ZnVuY3Rpb24oZSx0KXt2YXIgbixyPWkueGhyKCk7aWYoci5vcGVuKGkudHlwZSxpLnVybCxpLmFzeW5jLGkudXNlcm5hbWUsaS5wYXNzd29yZCksaS54aHJGaWVsZHMpZm9yKG4gaW4gaS54aHJGaWVsZHMpcltuXT1pLnhockZpZWxkc1tuXTtmb3IobiBpbiBpLm1pbWVUeXBlJiZyLm92ZXJyaWRlTWltZVR5cGUmJnIub3ZlcnJpZGVNaW1lVHlwZShpLm1pbWVUeXBlKSxpLmNyb3NzRG9tYWlufHxlWyJYLVJlcXVlc3RlZC1XaXRoIl18fChlWyJYLVJlcXVlc3RlZC1XaXRoIl09IlhNTEh0dHBSZXF1ZXN0IiksZSlyLnNldFJlcXVlc3RIZWFkZXIobixlW25dKTtvPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe28mJihvPWE9ci5vbmxvYWQ9ci5vbmVycm9yPXIub25hYm9ydD1yLm9udGltZW91dD1yLm9ucmVhZHlzdGF0ZWNoYW5nZT1udWxsLCJhYm9ydCI9PT1lP3IuYWJvcnQoKToiZXJyb3IiPT09ZT8ibnVtYmVyIiE9dHlwZW9mIHIuc3RhdHVzP3QoMCwiZXJyb3IiKTp0KHIuc3RhdHVzLHIuc3RhdHVzVGV4dCk6dChfdFtyLnN0YXR1c118fHIuc3RhdHVzLHIuc3RhdHVzVGV4dCwidGV4dCIhPT0oci5yZXNwb25zZVR5cGV8fCJ0ZXh0Iil8fCJzdHJpbmciIT10eXBlb2Ygci5yZXNwb25zZVRleHQ/e2JpbmFyeTpyLnJlc3BvbnNlfTp7dGV4dDpyLnJlc3BvbnNlVGV4dH0sci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKSkpfX0sci5vbmxvYWQ9bygpLGE9ci5vbmVycm9yPXIub250aW1lb3V0PW8oImVycm9yIiksdm9pZCAwIT09ci5vbmFib3J0P3Iub25hYm9ydD1hOnIub25yZWFkeXN0YXRlY2hhbmdlPWZ1bmN0aW9uKCl7ND09PXIucmVhZHlTdGF0ZSYmQy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7byYmYSgpfSl9LG89bygiYWJvcnQiKTt0cnl7ci5zZW5kKGkuaGFzQ29udGVudCYmaS5kYXRhfHxudWxsKX1jYXRjaChlKXtpZihvKXRocm93IGV9fSxhYm9ydDpmdW5jdGlvbigpe28mJm8oKX19fSksUy5hamF4UHJlZmlsdGVyKGZ1bmN0aW9uKGUpe2UuY3Jvc3NEb21haW4mJihlLmNvbnRlbnRzLnNjcmlwdD0hMSl9KSxTLmFqYXhTZXR1cCh7YWNjZXB0czp7c2NyaXB0OiJ0ZXh0L2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2phdmFzY3JpcHQsIGFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdCJ9LGNvbnRlbnRzOntzY3JpcHQ6L1xiKD86amF2YXxlY21hKXNjcmlwdFxiL30sY29udmVydGVyczp7InRleHQgc2NyaXB0IjpmdW5jdGlvbihlKXtyZXR1cm4gUy5nbG9iYWxFdmFsKGUpLGV9fX0pLFMuYWpheFByZWZpbHRlcigic2NyaXB0IixmdW5jdGlvbihlKXt2b2lkIDA9PT1lLmNhY2hlJiYoZS5jYWNoZT0hMSksZS5jcm9zc0RvbWFpbiYmKGUudHlwZT0iR0VUIil9KSxTLmFqYXhUcmFuc3BvcnQoInNjcmlwdCIsZnVuY3Rpb24obil7dmFyIHIsaTtpZihuLmNyb3NzRG9tYWlufHxuLnNjcmlwdEF0dHJzKXJldHVybntzZW5kOmZ1bmN0aW9uKGUsdCl7cj1TKCI8c2NyaXB0PiIpLmF0dHIobi5zY3JpcHRBdHRyc3x8e30pLnByb3Aoe2NoYXJzZXQ6bi5zY3JpcHRDaGFyc2V0LHNyYzpuLnVybH0pLm9uKCJsb2FkIGVycm9yIixpPWZ1bmN0aW9uKGUpe3IucmVtb3ZlKCksaT1udWxsLGUmJnQoImVycm9yIj09PWUudHlwZT80MDQ6MjAwLGUudHlwZSl9KSxFLmhlYWQuYXBwZW5kQ2hpbGQoclswXSl9LGFib3J0OmZ1bmN0aW9uKCl7aSYmaSgpfX19KTt2YXIgVXQsWHQ9W10sVnQ9Lyg9KVw/KD89JnwkKXxcP1w/LztTLmFqYXhTZXR1cCh7anNvbnA6ImNhbGxiYWNrIixqc29ucENhbGxiYWNrOmZ1bmN0aW9uKCl7dmFyIGU9WHQucG9wKCl8fFMuZXhwYW5kbysiXyIrQ3QuZ3VpZCsrO3JldHVybiB0aGlzW2VdPSEwLGV9fSksUy5hamF4UHJlZmlsdGVyKCJqc29uIGpzb25wIixmdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9ITEhPT1lLmpzb25wJiYoVnQudGVzdChlLnVybCk/InVybCI6InN0cmluZyI9PXR5cGVvZiBlLmRhdGEmJjA9PT0oZS5jb250ZW50VHlwZXx8IiIpLmluZGV4T2YoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpJiZWdC50ZXN0KGUuZGF0YSkmJiJkYXRhIik7aWYoYXx8Impzb25wIj09PWUuZGF0YVR5cGVzWzBdKXJldHVybiByPWUuanNvbnBDYWxsYmFjaz1tKGUuanNvbnBDYWxsYmFjayk/ZS5qc29ucENhbGxiYWNrKCk6ZS5qc29ucENhbGxiYWNrLGE/ZVthXT1lW2FdLnJlcGxhY2UoVnQsIiQxIityKTohMSE9PWUuanNvbnAmJihlLnVybCs9KEV0LnRlc3QoZS51cmwpPyImIjoiPyIpK2UuanNvbnArIj0iK3IpLGUuY29udmVydGVyc1sic2NyaXB0IGpzb24iXT1mdW5jdGlvbigpe3JldHVybiBvfHxTLmVycm9yKHIrIiB3YXMgbm90IGNhbGxlZCIpLG9bMF19LGUuZGF0YVR5cGVzWzBdPSJqc29uIixpPUNbcl0sQ1tyXT1mdW5jdGlvbigpe289YXJndW1lbnRzfSxuLmFsd2F5cyhmdW5jdGlvbigpe3ZvaWQgMD09PWk/UyhDKS5yZW1vdmVQcm9wKHIpOkNbcl09aSxlW3JdJiYoZS5qc29ucENhbGxiYWNrPXQuanNvbnBDYWxsYmFjayxYdC5wdXNoKHIpKSxvJiZtKGkpJiZpKG9bMF0pLG89aT12b2lkIDB9KSwic2NyaXB0In0pLHkuY3JlYXRlSFRNTERvY3VtZW50PSgoVXQ9RS5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoIiIpLmJvZHkpLmlubmVySFRNTD0iPGZvcm0+PC9mb3JtPjxmb3JtPjwvZm9ybT4iLDI9PT1VdC5jaGlsZE5vZGVzLmxlbmd0aCksUy5wYXJzZUhUTUw9ZnVuY3Rpb24oZSx0LG4pe3JldHVybiJzdHJpbmciIT10eXBlb2YgZT9bXTooImJvb2xlYW4iPT10eXBlb2YgdCYmKG49dCx0PSExKSx0fHwoeS5jcmVhdGVIVE1MRG9jdW1lbnQ/KChyPSh0PUUuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCIiKSkuY3JlYXRlRWxlbWVudCgiYmFzZSIpKS5ocmVmPUUubG9jYXRpb24uaHJlZix0LmhlYWQuYXBwZW5kQ2hpbGQocikpOnQ9RSksbz0hbiYmW10sKGk9Ti5leGVjKGUpKT9bdC5jcmVhdGVFbGVtZW50KGlbMV0pXTooaT14ZShbZV0sdCxvKSxvJiZvLmxlbmd0aCYmUyhvKS5yZW1vdmUoKSxTLm1lcmdlKFtdLGkuY2hpbGROb2RlcykpKTt2YXIgcixpLG99LFMuZm4ubG9hZD1mdW5jdGlvbihlLHQsbil7dmFyIHIsaSxvLGE9dGhpcyxzPWUuaW5kZXhPZigiICIpO3JldHVybi0xPHMmJihyPXZ0KGUuc2xpY2UocykpLGU9ZS5zbGljZSgwLHMpKSxtKHQpPyhuPXQsdD12b2lkIDApOnQmJiJvYmplY3QiPT10eXBlb2YgdCYmKGk9IlBPU1QiKSwwPGEubGVuZ3RoJiZTLmFqYXgoe3VybDplLHR5cGU6aXx8IkdFVCIsZGF0YVR5cGU6Imh0bWwiLGRhdGE6dH0pLmRvbmUoZnVuY3Rpb24oZSl7bz1hcmd1bWVudHMsYS5odG1sKHI/UygiPGRpdj4iKS5hcHBlbmQoUy5wYXJzZUhUTUwoZSkpLmZpbmQocik6ZSl9KS5hbHdheXMobiYmZnVuY3Rpb24oZSx0KXthLmVhY2goZnVuY3Rpb24oKXtuLmFwcGx5KHRoaXMsb3x8W2UucmVzcG9uc2VUZXh0LHQsZV0pfSl9KSx0aGlzfSxTLmV4cHIucHNldWRvcy5hbmltYXRlZD1mdW5jdGlvbih0KXtyZXR1cm4gUy5ncmVwKFMudGltZXJzLGZ1bmN0aW9uKGUpe3JldHVybiB0PT09ZS5lbGVtfSkubGVuZ3RofSxTLm9mZnNldD17c2V0T2Zmc2V0OmZ1bmN0aW9uKGUsdCxuKXt2YXIgcixpLG8sYSxzLHUsbD1TLmNzcyhlLCJwb3NpdGlvbiIpLGM9UyhlKSxmPXt9OyJzdGF0aWMiPT09bCYmKGUuc3R5bGUucG9zaXRpb249InJlbGF0aXZlIikscz1jLm9mZnNldCgpLG89Uy5jc3MoZSwidG9wIiksdT1TLmNzcyhlLCJsZWZ0IiksKCJhYnNvbHV0ZSI9PT1sfHwiZml4ZWQiPT09bCkmJi0xPChvK3UpLmluZGV4T2YoImF1dG8iKT8oYT0ocj1jLnBvc2l0aW9uKCkpLnRvcCxpPXIubGVmdCk6KGE9cGFyc2VGbG9hdChvKXx8MCxpPXBhcnNlRmxvYXQodSl8fDApLG0odCkmJih0PXQuY2FsbChlLG4sUy5leHRlbmQoe30scykpKSxudWxsIT10LnRvcCYmKGYudG9wPXQudG9wLXMudG9wK2EpLG51bGwhPXQubGVmdCYmKGYubGVmdD10LmxlZnQtcy5sZWZ0K2kpLCJ1c2luZyJpbiB0P3QudXNpbmcuY2FsbChlLGYpOigibnVtYmVyIj09dHlwZW9mIGYudG9wJiYoZi50b3ArPSJweCIpLCJudW1iZXIiPT10eXBlb2YgZi5sZWZ0JiYoZi5sZWZ0Kz0icHgiKSxjLmNzcyhmKSl9fSxTLmZuLmV4dGVuZCh7b2Zmc2V0OmZ1bmN0aW9uKHQpe2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHZvaWQgMD09PXQ/dGhpczp0aGlzLmVhY2goZnVuY3Rpb24oZSl7Uy5vZmZzZXQuc2V0T2Zmc2V0KHRoaXMsdCxlKX0pO3ZhciBlLG4scj10aGlzWzBdO3JldHVybiByP3IuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGg/KGU9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxuPXIub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldyx7dG9wOmUudG9wK24ucGFnZVlPZmZzZXQsbGVmdDplLmxlZnQrbi5wYWdlWE9mZnNldH0pOnt0b3A6MCxsZWZ0OjB9OnZvaWQgMH0scG9zaXRpb246ZnVuY3Rpb24oKXtpZih0aGlzWzBdKXt2YXIgZSx0LG4scj10aGlzWzBdLGk9e3RvcDowLGxlZnQ6MH07aWYoImZpeGVkIj09PVMuY3NzKHIsInBvc2l0aW9uIikpdD1yLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2Vsc2V7dD10aGlzLm9mZnNldCgpLG49ci5vd25lckRvY3VtZW50LGU9ci5vZmZzZXRQYXJlbnR8fG4uZG9jdW1lbnRFbGVtZW50O3doaWxlKGUmJihlPT09bi5ib2R5fHxlPT09bi5kb2N1bWVudEVsZW1lbnQpJiYic3RhdGljIj09PVMuY3NzKGUsInBvc2l0aW9uIikpZT1lLnBhcmVudE5vZGU7ZSYmZSE9PXImJjE9PT1lLm5vZGVUeXBlJiYoKGk9UyhlKS5vZmZzZXQoKSkudG9wKz1TLmNzcyhlLCJib3JkZXJUb3BXaWR0aCIsITApLGkubGVmdCs9Uy5jc3MoZSwiYm9yZGVyTGVmdFdpZHRoIiwhMCkpfXJldHVybnt0b3A6dC50b3AtaS50b3AtUy5jc3MociwibWFyZ2luVG9wIiwhMCksbGVmdDp0LmxlZnQtaS5sZWZ0LVMuY3NzKHIsIm1hcmdpbkxlZnQiLCEwKX19fSxvZmZzZXRQYXJlbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tYXAoZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9mZnNldFBhcmVudDt3aGlsZShlJiYic3RhdGljIj09PVMuY3NzKGUsInBvc2l0aW9uIikpZT1lLm9mZnNldFBhcmVudDtyZXR1cm4gZXx8cmV9KX19KSxTLmVhY2goe3Njcm9sbExlZnQ6InBhZ2VYT2Zmc2V0IixzY3JvbGxUb3A6InBhZ2VZT2Zmc2V0In0sZnVuY3Rpb24odCxpKXt2YXIgbz0icGFnZVlPZmZzZXQiPT09aTtTLmZuW3RdPWZ1bmN0aW9uKGUpe3JldHVybiAkKHRoaXMsZnVuY3Rpb24oZSx0LG4pe3ZhciByO2lmKHgoZSk/cj1lOjk9PT1lLm5vZGVUeXBlJiYocj1lLmRlZmF1bHRWaWV3KSx2b2lkIDA9PT1uKXJldHVybiByP3JbaV06ZVt0XTtyP3Iuc2Nyb2xsVG8obz9yLnBhZ2VYT2Zmc2V0Om4sbz9uOnIucGFnZVlPZmZzZXQpOmVbdF09bn0sdCxlLGFyZ3VtZW50cy5sZW5ndGgpfX0pLFMuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLG4pe1MuY3NzSG9va3Nbbl09JGUoeS5waXhlbFBvc2l0aW9uLGZ1bmN0aW9uKGUsdCl7aWYodClyZXR1cm4gdD1CZShlLG4pLE1lLnRlc3QodCk/UyhlKS5wb3NpdGlvbigpW25dKyJweCI6dH0pfSksUy5lYWNoKHtIZWlnaHQ6ImhlaWdodCIsV2lkdGg6IndpZHRoIn0sZnVuY3Rpb24oYSxzKXtTLmVhY2goe3BhZGRpbmc6ImlubmVyIithLGNvbnRlbnQ6cywiIjoib3V0ZXIiK2F9LGZ1bmN0aW9uKHIsbyl7Uy5mbltvXT1mdW5jdGlvbihlLHQpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGgmJihyfHwiYm9vbGVhbiIhPXR5cGVvZiBlKSxpPXJ8fCghMD09PWV8fCEwPT09dD8ibWFyZ2luIjoiYm9yZGVyIik7cmV0dXJuICQodGhpcyxmdW5jdGlvbihlLHQsbil7dmFyIHI7cmV0dXJuIHgoZSk/MD09PW8uaW5kZXhPZigib3V0ZXIiKT9lWyJpbm5lciIrYV06ZS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbImNsaWVudCIrYV06OT09PWUubm9kZVR5cGU/KHI9ZS5kb2N1bWVudEVsZW1lbnQsTWF0aC5tYXgoZS5ib2R5WyJzY3JvbGwiK2FdLHJbInNjcm9sbCIrYV0sZS5ib2R5WyJvZmZzZXQiK2FdLHJbIm9mZnNldCIrYV0sclsiY2xpZW50IithXSkpOnZvaWQgMD09PW4/Uy5jc3MoZSx0LGkpOlMuc3R5bGUoZSx0LG4saSl9LHMsbj9lOnZvaWQgMCxuKX19KX0pLFMuZWFjaChbImFqYXhTdGFydCIsImFqYXhTdG9wIiwiYWpheENvbXBsZXRlIiwiYWpheEVycm9yIiwiYWpheFN1Y2Nlc3MiLCJhamF4U2VuZCJdLGZ1bmN0aW9uKGUsdCl7Uy5mblt0XT1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5vbih0LGUpfX0pLFMuZm4uZXh0ZW5kKHtiaW5kOmZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdGhpcy5vbihlLG51bGwsdCxuKX0sdW5iaW5kOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMub2ZmKGUsbnVsbCx0KX0sZGVsZWdhdGU6ZnVuY3Rpb24oZSx0LG4scil7cmV0dXJuIHRoaXMub24odCxlLG4scil9LHVuZGVsZWdhdGU6ZnVuY3Rpb24oZSx0LG4pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD90aGlzLm9mZihlLCIqKiIpOnRoaXMub2ZmKHQsZXx8IioqIixuKX0saG92ZXI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5tb3VzZWVudGVyKGUpLm1vdXNlbGVhdmUodHx8ZSl9fSksUy5lYWNoKCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBtb3VzZWRvd24gbW91c2V1cCBtb3VzZW1vdmUgbW91c2VvdmVyIG1vdXNlb3V0IG1vdXNlZW50ZXIgbW91c2VsZWF2ZSBjaGFuZ2Ugc2VsZWN0IHN1Ym1pdCBrZXlkb3duIGtleXByZXNzIGtleXVwIGNvbnRleHRtZW51Ii5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsbil7Uy5mbltuXT1mdW5jdGlvbihlLHQpe3JldHVybiAwPGFyZ3VtZW50cy5sZW5ndGg/dGhpcy5vbihuLG51bGwsZSx0KTp0aGlzLnRyaWdnZXIobil9fSk7dmFyIEd0PS9eW1xzXHVGRUZGXHhBMF0rfFtcc1x1RkVGRlx4QTBdKyQvZztTLnByb3h5PWZ1bmN0aW9uKGUsdCl7dmFyIG4scixpO2lmKCJzdHJpbmciPT10eXBlb2YgdCYmKG49ZVt0XSx0PWUsZT1uKSxtKGUpKXJldHVybiByPXMuY2FsbChhcmd1bWVudHMsMiksKGk9ZnVuY3Rpb24oKXtyZXR1cm4gZS5hcHBseSh0fHx0aGlzLHIuY29uY2F0KHMuY2FsbChhcmd1bWVudHMpKSl9KS5ndWlkPWUuZ3VpZD1lLmd1aWR8fFMuZ3VpZCsrLGl9LFMuaG9sZFJlYWR5PWZ1bmN0aW9uKGUpe2U/Uy5yZWFkeVdhaXQrKzpTLnJlYWR5KCEwKX0sUy5pc0FycmF5PUFycmF5LmlzQXJyYXksUy5wYXJzZUpTT049SlNPTi5wYXJzZSxTLm5vZGVOYW1lPUEsUy5pc0Z1bmN0aW9uPW0sUy5pc1dpbmRvdz14LFMuY2FtZWxDYXNlPVgsUy50eXBlPXcsUy5ub3c9RGF0ZS5ub3csUy5pc051bWVyaWM9ZnVuY3Rpb24oZSl7dmFyIHQ9Uy50eXBlKGUpO3JldHVybigibnVtYmVyIj09PXR8fCJzdHJpbmciPT09dCkmJiFpc05hTihlLXBhcnNlRmxvYXQoZSkpfSxTLnRyaW09ZnVuY3Rpb24oZSl7cmV0dXJuIG51bGw9PWU/IiI6KGUrIiIpLnJlcGxhY2UoR3QsIiIpfSwiZnVuY3Rpb24iPT10eXBlb2YgZGVmaW5lJiZkZWZpbmUuYW1kJiZkZWZpbmUoImpxdWVyeSIsW10sZnVuY3Rpb24oKXtyZXR1cm4gU30pO3ZhciBZdD1DLmpRdWVyeSxRdD1DLiQ7cmV0dXJuIFMubm9Db25mbGljdD1mdW5jdGlvbihlKXtyZXR1cm4gQy4kPT09UyYmKEMuJD1RdCksZSYmQy5qUXVlcnk9PT1TJiYoQy5qUXVlcnk9WXQpLFN9LCJ1bmRlZmluZWQiPT10eXBlb2YgZSYmKEMualF1ZXJ5PUMuJD1TKSxTfSk7Cg=="></script>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="data:text/css,html%7Bfont%2Dfamily%3Asans%2Dserif%3B%2Dwebkit%2Dtext%2Dsize%2Dadjust%3A100%25%3B%2Dms%2Dtext%2Dsize%2Dadjust%3A100%25%7Dbody%7Bmargin%3A0%7Darticle%2Caside%2Cdetails%2Cfigcaption%2Cfigure%2Cfooter%2Cheader%2Chgroup%2Cmain%2Cmenu%2Cnav%2Csection%2Csummary%7Bdisplay%3Ablock%7Daudio%2Ccanvas%2Cprogress%2Cvideo%7Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Abaseline%7Daudio%3Anot%28%5Bcontrols%5D%29%7Bdisplay%3Anone%3Bheight%3A0%7D%5Bhidden%5D%2Ctemplate%7Bdisplay%3Anone%7Da%7Bbackground%2Dcolor%3Atransparent%7Da%3Aactive%2Ca%3Ahover%7Boutline%3A0%7Dabbr%5Btitle%5D%7Bborder%2Dbottom%3A1px%20dotted%7Db%2Cstrong%7Bfont%2Dweight%3A700%7Ddfn%7Bfont%2Dstyle%3Aitalic%7Dh1%7Bmargin%3A%2E67em%200%3Bfont%2Dsize%3A2em%7Dmark%7Bcolor%3A%23000%3Bbackground%3A%23ff0%7Dsmall%7Bfont%2Dsize%3A80%25%7Dsub%2Csup%7Bposition%3Arelative%3Bfont%2Dsize%3A75%25%3Bline%2Dheight%3A0%3Bvertical%2Dalign%3Abaseline%7Dsup%7Btop%3A%2D%2E5em%7Dsub%7Bbottom%3A%2D%2E25em%7Dimg%7Bborder%3A0%7Dsvg%3Anot%28%3Aroot%29%7Boverflow%3Ahidden%7Dfigure%7Bmargin%3A1em%2040px%7Dhr%7Bheight%3A0%3B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%7Dpre%7Boverflow%3Aauto%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%2Cmonospace%3Bfont%2Dsize%3A1em%7Dbutton%2Cinput%2Coptgroup%2Cselect%2Ctextarea%7Bmargin%3A0%3Bfont%3Ainherit%3Bcolor%3Ainherit%7Dbutton%7Boverflow%3Avisible%7Dbutton%2Cselect%7Btext%2Dtransform%3Anone%7Dbutton%2Chtml%20input%5Btype%3Dbutton%5D%2Cinput%5Btype%3Dreset%5D%2Cinput%5Btype%3Dsubmit%5D%7B%2Dwebkit%2Dappearance%3Abutton%3Bcursor%3Apointer%7Dbutton%5Bdisabled%5D%2Chtml%20input%5Bdisabled%5D%7Bcursor%3Adefault%7Dbutton%3A%3A%2Dmoz%2Dfocus%2Dinner%2Cinput%3A%3A%2Dmoz%2Dfocus%2Dinner%7Bpadding%3A0%3Bborder%3A0%7Dinput%7Bline%2Dheight%3Anormal%7Dinput%5Btype%3Dcheckbox%5D%2Cinput%5Btype%3Dradio%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%3Bpadding%3A0%7Dinput%5Btype%3Dnumber%5D%3A%3A%2Dwebkit%2Dinner%2Dspin%2Dbutton%2Cinput%5Btype%3Dnumber%5D%3A%3A%2Dwebkit%2Douter%2Dspin%2Dbutton%7Bheight%3Aauto%7Dinput%5Btype%3Dsearch%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Acontent%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Acontent%2Dbox%3Bbox%2Dsizing%3Acontent%2Dbox%3B%2Dwebkit%2Dappearance%3Atextfield%7Dinput%5Btype%3Dsearch%5D%3A%3A%2Dwebkit%2Dsearch%2Dcancel%2Dbutton%2Cinput%5Btype%3Dsearch%5D%3A%3A%2Dwebkit%2Dsearch%2Ddecoration%7B%2Dwebkit%2Dappearance%3Anone%7Dfieldset%7Bpadding%3A%2E35em%20%2E625em%20%2E75em%3Bmargin%3A0%202px%3Bborder%3A1px%20solid%20silver%7Dlegend%7Bpadding%3A0%3Bborder%3A0%7Dtextarea%7Boverflow%3Aauto%7Doptgroup%7Bfont%2Dweight%3A700%7Dtable%7Bborder%2Dspacing%3A0%3Bborder%2Dcollapse%3Acollapse%7Dtd%2Cth%7Bpadding%3A0%7D%40media%20print%7B%2A%2C%3Aafter%2C%3Abefore%7Bcolor%3A%23000%21important%3Btext%2Dshadow%3Anone%21important%3Bbackground%3A0%200%21important%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%21important%3Bbox%2Dshadow%3Anone%21important%7Da%2Ca%3Avisited%7Btext%2Ddecoration%3Aunderline%7Da%5Bhref%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28href%29%20%22%29%22%7Dabbr%5Btitle%5D%3Aafter%7Bcontent%3A%22%20%28%22%20attr%28title%29%20%22%29%22%7Da%5Bhref%5E%3D%22javascript%3A%22%5D%3Aafter%2Ca%5Bhref%5E%3D%22%23%22%5D%3Aafter%7Bcontent%3A%22%22%7Dblockquote%2Cpre%7Bborder%3A1px%20solid%20%23999%3Bpage%2Dbreak%2Dinside%3Aavoid%7Dthead%7Bdisplay%3Atable%2Dheader%2Dgroup%7Dimg%2Ctr%7Bpage%2Dbreak%2Dinside%3Aavoid%7Dimg%7Bmax%2Dwidth%3A100%25%21important%7Dh2%2Ch3%2Cp%7Borphans%3A3%3Bwidows%3A3%7Dh2%2Ch3%7Bpage%2Dbreak%2Dafter%3Aavoid%7D%2Enavbar%7Bdisplay%3Anone%7D%2Ebtn%3E%2Ecaret%2C%2Edropup%3E%2Ebtn%3E%2Ecaret%7Bborder%2Dtop%2Dcolor%3A%23000%21important%7D%2Elabel%7Bborder%3A1px%20solid%20%23000%7D%2Etable%7Bborder%2Dcollapse%3Acollapse%21important%7D%2Etable%20td%2C%2Etable%20th%7Bbackground%2Dcolor%3A%23fff%21important%7D%2Etable%2Dbordered%20td%2C%2Etable%2Dbordered%20th%7Bborder%3A1px%20solid%20%23ddd%21important%7D%7D%40font%2Dface%7Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%29%3Bsrc%3Aurl%28data%3Aapplication%2Fvnd%2Ems%2Dfontobject%3Bbase64%2Cn04AAEFNAAACAAIABAAAAAAABQAAAAAAAAABAJABAAAEAExQAAAAAAAAAAIAAAAAAAAAAAEAAAAAAAAAJxJ%2FLAAAAAAAAAAAAAAAAAAAAAAAACgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAAAADgBSAGUAZwB1AGwAYQByAAAAeABWAGUAcgBzAGkAbwBuACAAMQAuADAAMAA5ADsAUABTACAAMAAwADEALgAwADAAOQA7AGgAbwB0AGMAbwBuAHYAIAAxAC4AMAAuADcAMAA7AG0AYQBrAGUAbwB0AGYALgBsAGkAYgAyAC4ANQAuADUAOAAzADIAOQAAADgARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzACAAUgBlAGcAdQBsAGEAcgAAAAAAQlNHUAAAAAAAAAAAAAAAAAAAAAADAKncAE0TAE0ZAEbuFM3pjM%2FSEdmjKHUbyow8ATBE40IvWA3vTu8LiABDQ%2BpexwUMcm1SMnNryctQSiI1K5ZnbOlXKmnVV5YvRe6RnNMFNCOs1KNVpn6yZhCJkRtVRNzEufeIq7HgSrcx4S8h%2Fv4vnrrKc6oCNxmSk2uKlZQHBii6iKFoH0746ThvkO1kJHlxjrkxs%2BLWORaDQBEtiYJIR5IB9Bi1UyL4Rmr0BNigNkMzlKQmnofBHviqVzUxwdMb3NdCn69hy%2BpRYVKGVS%2F1tnsqv4LL7wCCPZZAZPT4aCShHjHJVNuXbmMrY5LeQaGnvAkXlVrJgKRAUdFjrWEah9XebPeQMj7KS7DIBAFt8ycgC5PLGUOHSE3ErGZCiViNLL5ZARfywnCoZaKQCu6NuFX42AEeKtKUGnr%2FCm2Cy8tpFhBPMW5Fxi4Qm4TkDWh4IWFDClhU2hRWosUWqcKLlgyXB%2BlSHaWaHiWlBAR8SeSgSPCQxdVQgzUixWKSTrIQEbU94viDctkvX%2BVSjJuUmV8L4CXShI11esnp0pjWNZIyxKHS4wVQ2ime1P4RnhvGw0aDN1OLAXGERsB7buFpFGGBAre4QEQR0HOIO5oYH305G%2BKspT%2FFupEGGafCCwxSe6ZUa%2B073rXHnNdVXE6eWvibUS27XtRzkH838mYLMBmYysZTM0EM3A1fbpCBYFccN1B%2FEnCYu%2FTgCGmr7bMh8GfYL%2BBfcLvB0gRagC09w9elfldaIy%2FhNCBLRgBgtCC7jAF63wLSMAfbfAlEggYU0bUA7ACCJmTDpEmJtI78w4%2FBO7dN7JR7J7ZvbYaUbaILSQsRBiF3HGk5fEg6p9unwLvn98r%2BvnsV%2B372uf1xBLq4qU%2F45fTuqaAP%2BpssmCCCTF0mhEow8ZXZOS8D7Q85JsxZ%2BAzok7B7O%2Ff6J8AzYBySZQB%2FQHYUSA%2BEeQhEWiS6AIQzgcsDiER4MjgMBAWDV4AgQ3g1eBgIdweCQmCjJEMkJ%2BPKRWyFHHmg1Wi%2F6xzUgA0LREoKJChwnQa9B%2B5RQZRB3IlBlkAnxyQNaANwHMowzlYSMCBgnbpzvqpl0iTJNCQidDI9ZrSYNIRBhHtUa5YHMHxyGEik9hDE0AKj72AbTCaxtHPUaKZdAZSnQTyjGqGLsmBStCejApUhg4uBMU6mATujEl%2BKdDPbI6Ag4vLr%2BhjY6lbjBeoLKnZl0UZgRX8gTySOeynZVz1wOq7e1hFGYIq%2BMhrGxDLak0PrwYzSXtcuyhXEhwOYofiW%2BEcI%2Fjw8P6IY6ed%2BetAbuqKp5QIapT77LnAe505lMuqL79a0ut4rWexzFttsOsLDy7zvtQzcq3U1qabe7tB0wHWVXji%2BzDbo8x8HyIRUbXnwUcklFv51fvTymiV%2BMXLSmGH9d9%2BaXpD5X6lao41anWGig7IwIdnoBY2ht%2FpO9mClLo4NdXHAsefqWUKlXJkbqPOFhMoR4aiA1BXqhRNbB2Xwi%2B7u%2FjpAoOpKJ0UX24EsrzMfHXViakCNcKjBxuQX8BO0ZqjJ3xXzf%2B61t2VXOSgJ8xu65QKgtN6FibPmPYsXbJRHHqbgATcSZxBqGiDiU4NNNsYBsKD0MIP%2FOfKnlk%2FLkaid%2FO2NbKeuQrwOB2Gq3YHyr6ALgzym5wIBnsdC1ZkoBFZSQXChZvlesPqvK2c5oHHT3Q65jYpNxnQcGF0EHbvYqoFw60WNlXIHQF2HQB7zD6lWjZ9rVqUKBXUT6hrkZOle0RFYII0V5ZYGl1JAP0Ud1fZZMvSomBzJ710j4Me8mjQDwEre5Uv2wQfk1ifDwb5ksuJQQ3xt423lbuQjvoIQByQrNDh1JxGFkOdlJvu%2FgFtuW0wR4cgd%2BZKesSV7QkNE2kw6AV4hoIuC02LGmTomyf8PiO6CZzOTLTPQ%2BHW06H%2Btx%2BbQ8LmDYg1pTFrp2oJXgkZTyeRJZM0C8aE2LpFrNVDuhARsN543%2FFV6klQ6Tv1OoZGXLv0igKrl%2FCmJxRmX7JJbJ998VSIPQRyDBICzl4JJlYHbdql30NvYcOuZ7a10uWRrgoieOdgIm4rlq6vNOQBuqESLbXG5lzdJGHw2m0sDYmODXbYGTfSTGRKpssTO95fothJCjUGQgEL4yKoGAF%2F0SrpUDNn8CBgBcSDQByAeNkCXp4S4Ro2Xh4OeaGRgR66PVOsU8bc6TR5%2FxTcn4IVMLOkXSWiXxkZQCbvKfmoAvQaKjO3EDKwkwqHChCDEM5loQRPd5ACBki1TjF772oaQhQbQ5C0lcWXPFOzrfsDGUXGrpxasbG4iab6eByaQkQfm0VFlP0ZsDkvvqCL6QXMUwCjdMx1ZOyKhTJ7a1GWAdOUcJ8RSejxNVyGs31OKMyRyBVoZFjqIkmKlLQ5eHMeEL4MkUf23cQ%2F1SgRCJ1dk4UdBT7OoyuNgLs0oCd8RnrEIb6QdMxT2QjD4zMrJkfgx5aDMcA4orsTtKCqWb%2FVeyceqa5OGSmB28YwH4rFbkQaLoUN8OQQYnD3w2eXpI4ScQfbCUZiJ4yMOIKLyyTc7BQ4uXUw6Ee6%2FxM%2B4Y67ngNBknxIPwuppgIhFcwJyr6EIj%2BLzNj%2FmfR2vhhRlx0BILZoAYruF0caWQ7YxO66UmeguDREAFHYuC7HJviRgVO6ruJH59h%2FC%2FPkgSle8xNzZJULLWq9JMDTE2fjGE146a1Us6PZDGYle6ldWRqn%2FpdpgHKNGrGIdkRK%2BKPETT9nKT6kLyDI8xd9A1FgWmXWRAIHwZ37WyZHOVyCadJEmMVz0MadMjDrPho%2BEIochkVC2xgGiwwsQ6DMv2P7UXqT4x7CdcYGId2BJQQa85EQKmCmwcRejQ9Bm4oATENFPkxPXILHpMPUyWTI5rjNOsIlmEeMbcOCEqInpXACYQ9DDxmFo9vcmsDblcMtg4tqBerNngkIKaFJmrQAPnq1dEzsMXcwjcHdfdCibcAxxA%2Bq%2Fj9m3LM%2FO7WJka4tSidVCjsvo2lQ%2F2ewyoYyXwAYyr2PlRoR5MpgVmSUIrM3PQxXPbgjBOaDQFIyFMJvx3Pc5RSYj12ySVF9fwFPQu2e2KWVoL9q3Ayv3IzpGHUdvdPdrNUdicjsTQ2ISy7QU3DrEytIjvbzJnAkmANXjAFERA0MUoPF3%2F5KFmW14bBNOhwircYgMqoDpUMcDtCmBE82QM2YtdjVLB4kBuKho%2FbcwQdeboqfQartuU3CsCf%2BcXkgYAqp%2F0Ee3RorAZt0AvvOCSI4JICIlGlsV0bsSid%2FNIEALAAzb6HAgyWHBps6xAOwkJIGcB82CxRQq4sJf3FzA70A%2BTRqcqjEMETCoez3mkPcpnoALs0ugJY8kQwrC%2BJE5ik3w9rzrvDRjAQnqgEVvdGrNwlanR0SOKWzxOJOvLJhcd8Cl4AshACUkv9czdMkJCVQSQhp6kp7StAlpVRpK0t0SW6LHeBJnE2QchB5Ccu8kxRghZXGIgZIiSj7gEKMJDClcnX6hgoqJMwiQDigIXg3ioFLCgDgjPtYHYpsF5EiA4kcnN18MZtOrY866dEQAb0FB34OGKHGZQjwW%2FWDHA60cYFaI%2FPjpzquUqdaYGcIq%2BmLez3WLFFCtNBN2QJcrlcoELgiPku5R5dSlJFaCEqEZle1AQzAKC%2B1SotMcBNyQUFuRHRF6OlimSBgjZeTBCwLyc6A%2BP%2FoFRchXTz5ADknYJHxzrJ5pGuIKRQISU6WyKTBBjD8WozmVYWIsto1AS5rxzKlvJu4E%2FvwOiKxRtCWsDM%2BeTHUrmwrCK5BIfMzGkD%2B0Fk5LzBs0jMYXktNDblB06LMNJ09U8pzSLmo14MS0OMjcdrZ31pyQqxJJpRImlSvfYAK8inkYU52QY2FPEVsjoWewpwhRp5yAuNpkqhdb7ku9Seefl2D0B8SMTFD90xi4CSOwwZy9IKkpMtI3FmFUg3%2FkFutpQGNc3pCR7gvC4sgwbupDu3DyEN%2BW6YGLNM21jpB49irxy9BSlHrVDlnihGKHwPrbVFtc%2Bh1rVQKZduxIyojccZIIcOCmhEnC7UkY68WXKQgLi2JCDQkQWJRQuk60hZp0D3rtCTINSeY9Ej2kIKYfGxwOs4j9qMM7fYZiipzgcf7TamnehqdhsiMiCawXnz4xAbyCkLAx5EGbo3Ax1u3dUIKnTxIaxwQTHehPl3V491H0%2BbC5zgpGz7Io%2BmjdhKlPJ01EeMpM7UsRJMi1nGjmJg35i6bQBAAxjO%2FENJubU2mg3ONySEoWklCwdABETcs7ck3jgiuU9pcKKpbgn%2B3YlzV1FzIkB6pmEDOSSyDfPPlQskznctFji0kpgZjW5RZe6x9kYT4KJcXg0bNiCyif%2BpZACCyRMmYsfiKmN9tSO65F0R2OO6ytlEhY5Sj6uRKfFxw0ijJaAx%2Fk3QgnAFSq27%2F2i4GEBA%2BUvTJKK%2F9eISNvG46Em5RZfjTYLdeD8kdXHyrwId%2FDQZUaMCY4gGbke2C8vfjgV%2FY9kkRQOJIn%2FxM9INZSpiBnqX0Q9GlQPpPKAyO5y%2BW5NMPSRdBCUlmuxl40ZfMCnf2Cp044uI9WLFtCi4YVxKjuRCOBWIb4XbIsGdbo4qtMQnNOQz4XDSui7W%2FN6l54qOynCqD3DpWQ%2BmpD7C40D8BZEWGJX3tlAaZBMj1yjvDYKwCJBa201u6nBKE5UE%2B7QSEhCwrXfbRZylAaAkplhBWX50dumrElePyNMRYUrC99UmcSSNgImhFhDI4BXjMtiqkgizUGCrZ8iwFxU6fQ8GEHCFdLewwxYWxgScAYMdMLmcZR6b7rZl95eQVDGVoUKcRMM1ixXQtXNkBETZkVVPg8LoSrdetHzkuM7DjZRHP02tCxA1fmkXKF3VzfN1pc1cv%2F8lbTIkkYpqKM9VOhp65ktYk%2BQ46myFWBapDfyWUCnsnI00QTBQmuFjMZTcd0V2NQ768Fhpby04k2IzNR1wKabuGJqYWwSly6ocMFGTeeI%2BejsWDYgEvr66QgqdcIbFYDNgsm0x9UHY6SCd5%2B7tpsLpKdvhahIDyYmEJQCqMqtCF6UlrE5GXRmbu%2Bvtm3BFSxI6ND6UxIE7GsGMgWqghXxSnaRJuGFveTcK5ZVSPJyjUxe1dKgI6kNF7EZhIZs8y8FVqwEfbM0Xk2ltORVDKZZM40SD3qQoQe0orJEKwPfZwm3YPqwixhUMOndis6MhbmfvLBKjC8sKKIZKbJk8L11oNkCQzCgvjhyyEiQSuJcgCQSG4Mocfgc0Hkwcjal1UNgP0CBPikYqBIk9tONv4kLtBswH07vUCjEaHiFGlLf8MgXKzSgjp2HolRRccAOh0ILHz9qlGgIFkwAnzHJRjWFhlA7ROwINyB5HFj59PRZHFor6voq7l23EPNRwdWhgawqbivLSjRA4htEYUFkjESu67icTg5S0aW1sOkCiIysfJ9UnIWevOOLGpepcBxy1wEhd2WI3AZg7sr9WBmHWyasxMcvY%2FiOmsLtHSWNUWEGk9hScMPShasUA1AcHOtRZlqMeQ0OzYS9vQvYUjOLrzP07BUAFikcJNMi7gIxEw4pL1G54TcmmmoAQ5s7TGWErJZ2Io4yQ0ljRYhL8H5e62oDtLF8aDpnIvZ5R3GWJyAugdiiJW9hQAVTsnCBHhwu7rkBlBX6r3b7ejEY0k5GGeyKv66v%2B6dg7mcJTrWHbtMywbedYqCQ0FPwoytmSWsL8WTtChZCKKzEF7vP6De4x2BJkkniMgSdWhbeBSLtJZR9CTHetK1xb34AYIJ37OegYIoPVbXgJ%2FqDQK%2BbfCtxQRVKQu77WzOoM6SGL7MaZwCGJVk46aImai9fmam%2BWpHG%2B0BtQPWUgZ7RIAlPq6lkECUhZQ2gqWkMYKcYMYaIc4gYCDFHYa2d1nzp3%2BJ1eCBay8IYZ0wQRKGAqvCuZ%2FUgbQPyllosq%2BXtfKIZOzmeJqRazpmmoP%2F76YfkjzV2NlXTDSBYB04SVlNQsFTbGPk1t%2FI4Jktu0XSgifO2ozFOiwd%2F0SssJDn0dn4xqk4GDTTKX73%2FwQyBLdqgJ%2BWx6AQaba3BA9CKEzjtQYIfAsiYamapq80LAamYjinlKXUkxdpIDk0puXUEYzSalfRibAeDAKpNiqQ0FTwoxuGYzRnisyTotdVTclis1LHRQCy%2FqqL8oUaQzWRxilq5Mi0IJGtMY02cGLD69vGjkj3p6pGePKI8bkBv5evq8SjjyU04vJR2cQXQwSJyoinDsUJHCQ50jrFTT7yRdbdYQMB3MYCb6uBzJ9ewhXYPAIZSXfeEQBZZ3GPN3Nbhh%2FwkvAJLXnQMdi5NYYZ5GHE400GS5rXkOZSQsdZgIbzRnF9ueLnsfQ47wHAsirITnTlkCcuWWIUhJSbpM3wWhXNHvt2xUsKKMpdBSbJnBMcihkoDqAd1Zml%2FR4yrzow1Q2A5G%2Bkzo%2FRhRxQS2lCSDRV8LlYLBOOoo1bF4jwJAwKMK1tWLHlu9i0j4Ig8qVm6wE1DxXwAwQwsaBWUg2pOOol2dHxyt6npwJEdLDDVYyRc2D0HbcbLUJQj8gPevQBUBOUHXPrsAPBERICpnYESeu2OHotpXQxRGlCCtLdIsu23MhZVEoJg8Qumj%2FUMMc34IBqTKLDTp76WzL%2FdMjCxK7MjhiGjeYAC%2Fkj%2FjY%2FRde7hpSM1xChrog6yZ7OWTuD56xBJnGFE%2BpT2ElSyCnJcwVzCjkqeNLfMEJqKW0G7OFIp0G%2B9mh50I9o8k1tpCY0xYqFNIALgIfc2me4n1bmJnRZ89oepgLPT0NTMLNZsvSCZAc3TXaNB07vail36%2FdBySis4m9%2FDR8izaLJW6bWCkVgm5T%2Bius3ZXq4xI%2BGnbveLbdRwF2mNtsrE0JjYc1AXknCOrLSu7Te%2Fr4dPYMCl5qtiHNTn%2BTPbh1jCBHH%2BdMJNhwNgs3nT%2BOhQoQ0vYif56BMG6WowAcHR3DjQolxLzyVekHj00PBAaW7IIAF1EF%2BuRIWyXjQMAs2chdpaKPNaB%2BkSezYt0%2BCA04sOg5vx8Fr7Ofa9sUv87h7SLAUFSzbetCCZ9pmyLt6l6%2FTzoA1%2FZBG9bIUVHLAbi%2FkdBFgYGyGwRQGBpkqCEg2ah9UD6EedEcEL3j4y0BQQCiExEnocA3SZboh%2Bepgd3YsOkHskZwPuQ5OoyA0fTA5AXrHcUOQF%2BzkJHIA7PwCDk1gGVmGUZSSoPhNf%2BTklauz98QofOlCIQ%2FtCD4dosHYPqtPCXB3agggQQIqQJsSkB%2Bqn0rkQ1toJjON%2FOtCIB9RYv3PqRA4C4U68ZMlZn6BdgEvi2ziU%2BTQ6NIw3ej%2BAtDwMGEZk7e2IjxUWKdAxyaw9OCwSmeADTPPleyk6UhGDNXQb%2B%2BW6Uk4q6F7%2Frg6WVTo82IoCxSIsFDrav4EPHphD3u4hR53WKVvYZUwNCCeM4PMBWzK%2BEfIthZOkuAwPo5C5jgoZgn6dUdvx5rIDmd58cXXdKNfw3l%2BwM2UjgrDJeQHhbD7HW2QDoZMCujgIUkk5Fg8VCsdyjOtnGRx8wgKRPZN5dR0zPUyfGZFVihbFRniXZFOZGKPnEQzU3AnD1KfR6weHW2XS6KbPJxUkOTZsAB9vTVp3Le1F8q5l%2BDMcLiIq78jxAImD2pGFw0VHfRatScGlK6SMu8leTmhUSMy8Uhdd6xBiH3Gdman4tjQGLboJfqz6fL2WKHTmrfsKZRYX6BTDjDldKMosaSTLdQS7oDisJNqAUhw1PfTlnacCO8vl8706Km1FROgLDmudzxg%2BEWTiArtHgLsRrAXYWdB0NmToNCJdKm0KWycZQqb%2BMw76Qy29iQ5up%2FX7oyw8QZ75kP5F6iJAJz6KCmqxz8fEa%2FxnsMYcIO%2FvEkGRuMckhr4rIeLrKaXnmIzlNLxbFspOphkcnJdnz%2FChp%2FVlpj2P7jJQmQRwGnltkTV5dbF9fE3%2FfxoSqTROgq9wFUlbuYzYcasE0ouzBo%2BdDCDzxKAfhbAZYxQiHrLzV2iVexnDX%2FQnT1fsT%2Fxuhu1ui5qIytgbGmRoQkeQooO8eJNNZsf0iALur8QxZFH0nCMnjerYQqG1pIfjyVZWxhVRznmmfLG00BcBWJE6hzQWRyFknuJnXuk8A5FRDCulwrWASSNoBtR%2BCtGdkPwYN2o7DOw%2FVGlCZPusRBFXODQdUM5zeHDIVuAJBLqbO%2Ff9Qua%2BpDqEPk230Sob9lEZ8BHiCorjVghuI0lI4JDgHGRDD%2FprQ84B1pVGkIpVUAHCG%2Biz3Bn3qm2AVrYcYWhock4jso5%2BJ7HfHVj4WMIQdGctq3psBCVVzupQOEioBGA2Bk%2BUILT7%2BVoX5mdxxA5fS42gISQVi%2FHTzrgMxu0fY6hE1ocUwwbsbWcezrY2n6S8%2F6cxXkOH4prpmPuFoikTzY7T85C4T2XYlbxLglSv2uLCgFv8Quk%2FwdesUdWPeHYIH0R729JIisN9Apdd4eB10aqwXrPt%2BSu9mA8k8n1sjMwnfsfF2j3jMUzXepSHmZ%2FBfqXvzgUNQQWOXO8YEuFBh4QTYCkOAPxywpYu1VxiDyJmKVcmJPGWk%2Fgc3Pov02StyYDahwmzw3E1gYC9wkupyWfDqDSUMpCTH5e5N8B%2F%2FlHiMuIkTNw4USHrJU67bjXGqNav6PBuQSoqTxc8avHoGmvqNtXzIaoyMIQIiiUHIM64cXieouplhNYln7qgc4wBVAYR104kO%2BCvKqsg4yIUlFNThVUAKZxZt1XA34h3TCUUiXVkZ0w8Hh2R0Z5L0b4LZvPd%2Fp1gi%2F07h8qfwHrByuSxglc9cI4QIg2oqvC%2Fqm0i7tjPLTgDhoWTAKDO2ONW5oe%2B%2FeKB9vZB8K6C25yCZ9RFVMnb6NRdRjyVK57CHHSkJBfnM2%2Fj4ODUwRkqrtBBCrDsDpt8jhZdXoy%2F1BCqw3sSGhgGGy0a5Jw6BP%2FTExoCmNFYjZl248A0osgPyGEmRA%2BfAsqPVaNAfytu0vuQJ7rk3J4kTDTR2AlCHJ5cls26opZM4w3jMULh2YXKpcqGBtuleAlOZnaZGbD6DHzMd6i2oFeJ8z9XYmalg1Szd%2FocZDc1C7Y6vcALJz2lYnTXiWEr2wawtoR4g3jvWUU2Ngjd1cewtFzEvM1NiHZPeLlIXFbBPawxNgMwwAlyNSuGF3zizVeOoC9bag1qRAQKQE%2FEZBWC2J8mnXAN2aTBboZ7HewnObE8CwROudZHmUM5oZ%2FUgd%2FJZQK8lvAm43uDRAbyW8gZ%2BZGq0EVerVGUKUSm%2FIdn8AQHdR4m7bue88WBwft9mSCeMOt1ncBwziOmJYI2ZR7ewNMPiCugmSsE4EyQ%2BQATJG6qORMGd4snEzc6B4shPIo4G1T7PgSm8PY5eUkPdF8JZ0VBtadbHXoJgnEhZQaODPj2gpODKJY5Yp4DOsLBFxWbvXN755KWylJm%2BoOd4zEL9Hpubuy2gyyfxh8oEfFutnYWdfB8PdESLWYvSqbElP9qo3u6KTmkhoacDauMNNjj0oy40DFV7Ql0aZj77xfGl7TJNHnIwgqOkenruYYNo6h724%2BzUQ7%2BvkCpZB%2BpGA562hYQiDxHVWOq0oDQl%2FQsoiY%2BcuI7iWq%2FZIBtHcXJ7kks%2Bh2fCNUPA82BzjnqktNts%2BRLdk1VSu%2BtqEn7QZCCsvEqk6FkfiOYkrsw092J8jsfIuEKypNjLxrKA9kiA19mxBD2suxQKCzwXGws7kEJvlhUiV9tArLIdZW0IORcxEzdzKmjtFhsjKy%2F44XYXdI5noQoRcvjZ1RMPACRqYg2V1%2BOwOepcOknRLLFdYgTkT5UApt%2FJhLM3jeFYprZV%2BZow2g8fP%2BU68hkKFWJj2yBbKqsrp25xkZX1DAjUw52IMYWaOhab8Kp05VrdNftqwRrymWF4OQSjbdfzmRZirK8FMJELEgER2PHjEAN9pGfLhCUiTJFbd5LBkOBMaxLr%2FA1SY9dXFz4RjzoU9ExfJCmx%2FI9FKEGT3n2cmzl2X42L3Jh%2BAbQq6sA%2BSs1kitoa4TAYgKHaoybHUDJ51oETdeI%2F9ThSmjWGkyLi5QAGWhL0BG1UsTyRGRJOldKBrYJeB8ljLJHfATWTEQBXBDnQexOHTB%2BUn44zExFE4vLytcu5NwpWrUxO%2F0ZICUGM7hGABXym0V6ZvDST0E370St9MIWQOTWngeoQHUTdCJUP04spMBMS8LSker9cReVQkULFDIZDFPrhTzBl6sed9wcZQTbL%2BBDqMyaN3RJPh%2Fanbx%2BIv%2BqgQdAa3M9Z5JmvYlh4qop%2BHo1F1W5gbOE9YKLgAnWytXElU4G8GtW47lhgFE6gaSs%2Bgs37sFvi0PPVvA5dnCBgILTwoKd%2F%2BDoL9F6inlM7H4rOTzD79KJgKlZO%2FZgt22UsKhrAaXU5ZcLrAglTVKJEmNJvORGN1vqrcfSMizfpsgbIe9zno%2BgBoKVXgIL%2FVI8dB1O5o%2FR3Suez%2FgD7M781ShjKpIIORM%2FnxG%2BjjhhgPwsn2IoXsPGPqYHXA63zJ07M2GPEykQwJBYLK808qYxuIew4frk52nhCsnCYmXiR6CuapvE1IwRB4%2FQftDbEn%2BAucIr1oxrLabRj9q4ae0%2BfXkHnteAJwXRbVkR0mctVSwEbqhJiMSZUp9DNbEDMmjX22m3ABpkrPQQTP3S1sib5pD2VRKRd%2BeNAjLYyT0hGrdjWJZy24OYXRoWQAIhGBZRxuBFMjjZQhpgrWo8SiFYbojcHO8V5DyscJpLTHyx9Fimassyo5U6WNtquUMYgccaHY5amgR3PQzq3ToNM5ABnoB9kuxsebqmYZm0R9qxJbFXCQ1UPyFIbxoUraTJFDpCk0Wk9GaYJKz%2F6oHwEP0Q14lMtlddQsOAU9zlYdMVHiT7RQP3XCmWYDcHCGbVRHGnHuwzScA0BaSBOGkz3lM8CArjrBsyEoV6Ys4qgDK3ykQQPZ3hCRGNXQTNNXbEb6tDiTDLKOyMzRhCFT%2BmAUmiYbV3YQVqFVp9dorv%2BTsLeCykS2b5yyu8AV7IS9cxcL8z4Kfwp%2BxJyYLv1OsxQCZwTB4a8BZ%2F5EdxTBJthApqyfd9u3ifr%2FWILTqq5VqgwMT9SOxbSGWLQJUUWCVi4k9tho9nEsbUh7U6NUsLmkYFXOhZ0kmamaJLRNJzSj%2Fqn4Mso6zb6iLLBXoaZ6AqeWCjHQm2lztnejYYM2eubnpBdKVLORZhudH3JF1waBJKA9%2BW8EhMj3Kzf0L4vi4k6RoHh3Z5YgmSZmk6ns4fjScjAoL8GoOECgqgYEBYUGFVO4FUv4%2FYtowhEmTs0vrvlD%2FCrisnoBNDAcUi%2FteY7OctFlmARQzjOItrrlKuPO6E2Ox93L4O%2F4DcgV%2FdZ7qR3VBwVQxP1GCieA4RIpweYJ5FoYrHxqRBdJjnqbsikA2Ictbb8vE1GYIo9dacK0REgDX4smy6GAkxlH1yCGGsk%2BtgiDhNKuKu3yNrMdxafmKTF632F8Vx4BNK57GvlFisrkjN9WDAtjsWA0ENT2e2nETUb%2Fn7qwhvGnrHuf5bX6Vh%2Fn3xffU3PeHdR%2BFA92i6ufT3AlyAREoNDh6chiMWTvjKjHDeRhOa9YkOQRq1vQXEMppAQVwHCuIcV2g5rBn6GmZZpTR7vnSD6ZmhdSl176gqKTXu5E%2BYbfL0adwNtHP7dT7t7b46DVZIkzaRJOM%2BS6KcrzYVg%2BT3wSRFRQashjfU18NutrKa%2F7PXbtuJvpIjbgPeqd%2BpjmRw6YKpnANFSQcpzTZgpSNJ6J7uiagAbir%2F8tNXJ%2FOsOnRh6iuIexxrmkIneAgz8QoLmiaJ8sLQrELVK2yn3wOHp57BAZJhDZjTBzyoRAuuZ4eoxHruY1pSb7qq79cIeAdOwin4GdgMeIMHeG%2BFZWYaiUQQyC5b50zKjYw97dFjAeY2I4Bnl105Iku1y0lMA1ZHolLx19uZnRdILcXKlZGQx%2FGdEqSsMRU1BIrFqRcV1qQOOHyxOLXEGcbRtAEsuAC2V4K3p5mFJ22IDWaEkk9ttf5Izb2LkD1MnrSwztXmmD%2FQi%2FEmVEFBfiKGmftsPwVaIoZanlKndMZsIBOskFYpDOq3QUs9aSbAAtL5Dbokus2G4%2FasthNMK5UQKCOhU97oaOYNGsTah%2BjfCKsZnTRn5TbhFX8ghg8CBYt%2FBjeYYYUrtUZ5jVij%2Fop7V5SsbA4mYTOwZ46hqdpbB6Qvq3AS2HHNkC15pTDIcDNGsMPXaBidXYPHc6PJAkRh29Vx8KcgX46LoUQBhRM%2B3SW6Opll%2FwgxxsPgKJKzr5QCmwkUxNbeg6Wj34SUnEzOemSuvS2OetRCO8Tyy%2BQbSKVJcqkia%2BGvDefFwMOmgnD7h81TUtMn%2BmRpyJJ349HhAnoWFTejhpYTL9G8N2nVg1qkXBeoS9Nw2fB27t7trm7d%2FQK7Cr4uoCeOQ7%2F8JfKT77KiDzLImESHw%2F0wf73QeHu74hxv7uihi4fTX%2BXEwAyQG3264dwv17aJ5N335Vt9sdrAXhPOAv8JFvzqyYXwfx8WYJaef1gMl98JRFyl5Mv5Uo%2FoVH5ww5OzLFsiTPDns7fS6EURSSWd%2F92BxMYQ8sBaH%2Bj%2BwthQPdVgDGpTfi%2BJQIWMD8xKqULliRH01rTeyF8x8q%2FGBEEEBrAJMPf25UQwi0b8tmqRXY7kIvNkzrkvRWLnxoGYEJsz8u4oOyMp8cHyaybb1HdMCaLApUE%2B%2F7xLIZGP6H9xuSEXp1zLIdjk5nBaMuV%2FyTDRRP8Y2ww5RO6d2D94o%2B6ucWIqUAvgHIHXhZsmDhjVLczmZ3ca0Cb3PpKwt2UtHVQ0BgFJsqqTsnzZPlKahRUkEu4qmkJt%2Bkqdae76ViWe3STan69yaF9%2BfESD2lcQshLHWVu4ovItXxO69bqC5p1nZLvI8NdQB9s9UNaJGlQ5mG947ipdDA0eTIw%2FA1zEdjWquIsQXXGIVEH0thC5M%2BW9pZe7IhAVnPJkYCCXN5a32HjN6nsvokEqRS44tGIs7s2LVTvcrHAF%2BRVmI8L4HUYk4x%2B67AxSMJKqCg8zrGOgvK9kNMdDrNiUtSWuHFpC8%2Fp5qIQrEo%2FH%2B1l%2F0cAwQ2nKmpWxKcMIuHY44Y6DlkpO48tRuUGBWT0FyHwSKO72Ud%2BtJUfdaZ4CWNijzZtlRa8%2BCkmO%2FEwHYfPZFU%2FhzjFWH7vnzHRMo%2BaF9u8qHSAiEkA2HjoNQPEwHsDKOt6hOoK3Ce%2F%2B%2F9boMWDa44I6FrQhdgS7OnNaSzwxWKZMcyHi6LN4WC6sSj0qm2PSOGBTvDs%2FGWJS6SwEN%2FULwpb4LQo9fYjUfSXRwZkynUazlSpvX9e%2BG2zor8l%2BYaMxSEomDdLHGcD6YVQPegTaA74H8%2BV4WvJkFUrjMLGLlvSZQWvi8%2FQA7yzQ8GPno%2F%2F5SJHRP%2FOqKObPCo81s%2F%2B6WgLqykYpGAgQZhVDEBPXWgU%2FWzFZjKUhSFInufPRiMAUULC6T11yL45ZrRoB4DzOyJShKXaAJIBS9wzLYIoCEcJKQW8GVCx4fihqJ6mshBUXSw3wWVj3grrHQlGNGhIDNNzsxQ3M%2BGWn6ASobIWC%2BLbYOC6UpahVO13Zs2zOzZC8z7FmA05JhUGyBsF4tsG0drcggIFzgg%2Fkpf3%2BCnAXKiMgIE8Jk%2FMhpkc8DUJEUzDSnWlQFme3d0sHZDrg7LavtsEX3cHwjCYA17pMTfx8Ajw9hHscN67hyo%2BRJQ4458RmPywXykkVcW688oVUrQhahpPRvTWPnuI0B%2BSkQu7dCyvLRyFYlC1LG1gRCIvn3rwQeINzZQC2KXq31FaR9UmVV2QeGVqBHjmE%2BVMd3b1fhCynD0pQNhCG6%2FWCDbKPyE7NRQzL3BzQAJ0g09aUzcQA6mUp9iZFK6Sbp%2FYbHjo%2B%2B7%2FWj8S4YNa%2BZdqAw1hDrKWFXv9%2BzaXpf8ZTDSbiqsxnwN%2FCzK5tPkOr4tRh2kY3Bn9JtalbIOI4b3F7F1vPQMfoDcdxMS8CW9m%2FNCW%2FHILTUVWQIPiD0j1A6bo8vsv6P1hCESl2abrSJWDrq5sSzUpwoxaCU9FtJyYH4QFMxDBpkkBR6kn0LMPO%2B5EJ7Z6bCiRoPedRZ%2FP0SSdii7ZnPAtVwwHUidcdyspwncz5uq6vvm4IEDbJVLUFCn%2FLvIHfooUBTkFO130FC7CmmcrKdgDJcid9mvVzsDSibOoXtIf9k6ABle3PmIxejodc4aob0QKS432srrCMndbfD454q52V01G4q913mC5HOsTzWF4h2No1av1VbcUgWAqyoZl%2B11PoFYnNv2HwAODeNRkHj%2B8SF1fcvVBu6MrehHAZK1Gm69ICcTKizykHgGFx7QdowTVAsYEF2tVc0Z6wLryz2FI1sc5By2znJAAmINndoJiB4sfPdPrTC8RnkW7KRCwxC6YvXg5ahMlQuMpoCSXjOlBy0Kij%2BbsCYPbGp8BdCBiLmLSAkEQRaieWo1SYvZIKJGj9Ur%2FeWHjiB7SOVdqMAVmpBvfRiebsFjger7DC%2B8kRFGtNrTrnnGD2GAJb8rQCWkUPYHhwXsjNBSkE6lGWUj5QNhK0DMNM2l%2BkXRZ0KLZaGsFSIdQz%2FHXDxf3%2FTE30%2BDgBKWGWdxElyLccJfEpjsnszECNoDGZpdwdRgCixeg9L4EPhH%2BRptvRMVRaahu4cySjS3P5wxAUCPkmn%2BrhyASpmiTaiDeggaIxYBmtLZDDhiWIJaBgzfCsAGUF1Q1SFZYyXDt9skCaxJsxK2Ms65dmdp5WAZyxik%2FzbrTQk5KmgxCg%2Ff45L0jywebOWUYFJQAJia7XzCV0x89rpp%2Ff3AVWhSPyTanqmik2SkD8A3Ml4NhIGLAjBXtPShwKYfi2eXtrDuKLk4QlSyTw1ftXgwqA2jUuopDl%2B5tfUWZNwBpEPXghzbBggYCw%2Fdhy0ntds2yeHCDKkF%2FYxQjNIL%2FF%2F37jLPHCKBO9ibwYCmuxImIo0ijV2Wbg3kSN2psoe8IsABv3RNFaF9uMyCtCYtqcD%2BqNOhwMlfARQUdJ2tUX%2BMNJqOwIciWalZsmEjt07tfa8ma4cji9sqz%2BQ9hWfmMoKEbIHPOQORbhQRHIsrTYlnVTNvcq1imqmmPDdVDkJgRcTgB8Sb6epCQVmFZe%2BjGDiNJQLWnfx%2BdrTKYjm0G8yH0ZAGMWzEJhUEQ4Maimgf%2Fbkvo8PLVBsZl152y5S8%2BHRDfZIMCbYZ1WDp4yrdchOJw8k6R%2B%2F2pHmydK4NIK2PHdFPHtoLmHxRDwLFb7eB%2BM4zNZcB9NrAgjVyzLM7xyYSY13ykWfIEEd2n5%2FiYp3ZdrCf7fL%2Ben%2BsIJu2W7E30MrAgZBD1rAAbZHPgeAMtKCg3NpSpYQUDWJu9bT3V7tOKv%2BNRiJc8JAKqqgCA%2FPNRBR7ChpiEulyQApMK1AyqcWnpSOmYh6yLiWkGJ2mklCSPIqN7UypWj3dGi5MvsHQ87MrB4VFgypJaFriaHivwcHIpmyi5LhNqtem4q0n8awM19Qk8BOS0EsqGscuuydYsIGsbT5GHnERUiMpKJl4ON7qjB4fEqlGN%2FhCky89232UQCiaeWpDYCJINXjT6xl4Gc7DxRCtgV0i1ma4RgWLsNtnEBRQFqZggCLiuyEydmFd7WlogpkCw5G1x4ft2psm3KAREwVwr1Gzl6RT7FDAqpVal34ewVm3VH4qn5mjGj%2BbYL1NgfLNeXDwtmYSpwzbruDKpTjOdgiIHDVQSb5%2FzBgSMbHLkxWWgghIh9QTFSDILixVwg0Eg1puooBiHAt7DzwJ7m8i8%2Fi%2BjHvKf0QDnnHVkVTIqMvIQImOrzCJwhSR7qYB5gSwL6aWL9hERHCZc4G2%2BJrpgHNB8eCCmcIWIQ6rSdyPCyftXkDlErUkHafHRlkOIjxGbAktz75bnh50dU7YHk%2BMz7wwstg6RFZb%2BTZuSOx1qqP5C66c0mptQmzIC2dlpte7vZrauAMm%2F7RfBYkGtXWGiaWTtwvAQiq2oD4YixPLXE2khB2FRaNRDTk%2B9sZ6K74Ia9VntCpN4BhJGJMT4Z5c5FhSepRCRWmBXqx%2BwhVZC4me4saDs2iNqXMuCl6iAZflH8fscC1sTsy4PHeC%2BXYuqMBMUun5YezKbRKmEPwuK%2BCLzijPEQgfhahQswBBLfg%2FGBgBiI4QwAqzJkkyYAWtjzSg2ILgMAgqxYfwERRo3zruBL9WOryUArSD8sQOcD7fvIODJxKFS615KFPsb68USBEPPj1orNzFY2xoTtNBVTyzBhPbhFH0PI5AtlJBl2aSgNPYzxYLw7XTDBDinmVoENwiGzmngrMo8OmnRP0Z0i0Zrln9DDFcnmOoBZjABaQIbPOJYZGqX%2BRCMlDDbElcjaROLDoualmUIQ88Kekk3iM4OQrADcxi3rJguS4MOIBIgKgXrjd1WkbCdqxJk%2F4efRIFsavZA7KvvJQqp3Iid5Z0NFc5aiMRzGN3vrpBzaMy4JYde3wr96PjN90AYOIbyp6T4zj8LoE66OGcX1Ef4Z3KoWLAUF4BTg7ug%2FAbkG5UNQXAMkQezujSHeir2uTThgd3gpyzDrbnEdDRH2W7U6PeRvBX1ZFMP5RM%2BZu6UUZZD8hDPHldVWntTCNk7To8IeOW9yn2wx0gmurwqC60AOde4r3ETi5pVMSDK8wxhoGAoEX9NLWHIR33VbrbMveii2jAJlrxwytTHbWNu8Y4N8vCCyZjAX%2FpcsfwXbLze2%2BD%2Bu33OGBoJyAAL3jn3RuEcdp5If8O%2Ba4NKWvxOTyDltG0IWoHhwVGe7dKkCWFT%2B%2Btm%2BhaBCikRUUMrMhYKZJKYoVuv%2FbsJzO8DwfVIInQq3g3BYypiz8baogH3r3GwqCwFtZnz4xMjAVOYnyOi5HWbFA8n0qz1OjSpHWFzpQOpvkNETZBGpxN8ybhtqV%2FDMUxd9uFZmBfKXMCn%2FSqkWJyKPnT6lq%2B4zBZni6fYRByJn6OK%2BOgPBGRAJluwGSk4wxjOOzyce%2FPKODwRlsgrVkdcsEiYrqYdXo0Er2GXi2GQZd0tNJT6c9pK1EEJG1zgDJBoTVuCXGAU8BKTvCO%2FcEQ1Wjk3Zzuy90JX4m3O5IlxVFhYkSUwuQB2up7jhvkm%2BbddRQu5F9s0XftGEJ9JSuSk%2BZachCbdU45fEqbugzTIUokwoAKvpUQF%2FCvLbWW5BNQFqFkJg2f30E%2F48StNe5QwBg8zz3YAJ82FZoXBxXSv4QDooDo79NixyglO9AembuBcx5Re3CwOKTHebOPhkmFC7wNaWtoBhFuV4AkEuJ0J%2B1pT0tLkvFVZaNzfhs%2FKd3%2BA9YsImlO4XK4vpCo%2FelHQi%2F9gkFg07xxnuXLt21unCIpDV%2BbbRxb7FC6nWYTsMFF8%2B1LUg4JFjVt3vqbuhHmDKbgQ4e%2BRGizRiO8ky05LQGMdL2IKLSNar0kNG7lHJMaXr5mLdG3nykgj6vB%2FKVijd1ARWkFEf3yiUw1v%2FWaQivVUpIDdSNrrKbjO5NPnxz6qTTGgYg03HgPhDrCFyYZTi3XQw3HXCva39mpLNFtz8AiEhxAJHpWX13gCTAwgm9YTvMeiqetdNQv6IU0hH0G%2BZManTqDLPjyrOse7WiiwOJCG%2BJ0pZYULhN8NILulmYYvmVcV2MjAfA39sGKqGdjpiPo86fecg65UPyXDIAOyOkCx5NQsLeD4gGVjTVDwOHWkbbBW0GeNjDkcSOn2Nq4cEssP54t9D749A7M1AIOBl0Fi0sSO5v3P7LCBrM6ZwFY6kp2FX6AcbGUdybnfChHPyu6WlRZ2Fwv9YM0RMI7kISRgR8HpQSJJOyTfXj%2F6gQKuihPtiUtlCQVPohUgzfezTg8o1b3n9pNZeco1QucaoXe40Fa5JYhqdTspFmxGtW9h5ezLFZs3j%2FN46f%2BS2rjYNC2JySXrnSAFhvAkz9a5L3pza8eYKHNoPrvBRESpxYPJdKVUxBE39nJ1chrAFpy4MMkf0qKgYALctGg1DQI1kIymyeS2AJNT4X240d3IFQb%2F0jQbaHJ2YRK8A%2Bls6WMhWmpCXYG5jqapGs5%2FeOJErxi2%2F2KWVHiPellTgh%2FfNl%2F2KYPKb7DUcAg%2BmCOPQFCiU9Mq%2FWLcU1xxC8aLePFZZlE%2BPCLzf7ey46INWRw2kcXySR9FDgByXzfxiNKwDFbUSMMhALPFSedyjEVM5442GZ4hTrsAEvZxIieSHGSgkwFh%2FnFNdrrFD4tBH4Il7fW6ur4J8Xaz7RW9jgtuPEXQsYk7gcMs2neu3zJwTyUerHKSh1iTBkj2YJh1SSOZL5pLuQbFFAvyO4k1Hxg2h99MTC6cTUkbONQIAnEfGsGkNFWRbuRyyaEZInM5pij73EA9rPIUfU4XoqQpHT9THZkW%2BoKFLvpyvTBMM69tN1Ydwv1LIEhHsC%2BueVG%2Bw%2BkyCPsvV3erRikcscHjZCkccx6VrBkBRusTDDd8847GA7p2Ucy0y0HdSRN6YIBciYa4vuXcAZbQAuSEmzw%2BH%2FAuOx%2BaH%2BtBL88H57D0MsqyiZxhOEQkF%2F8DR1d2hSPMj%2FsNOa5rxcUnBgH8ictv2J%2Bcb4BA4v3MCShdZ2vtK30vAwkobnEWh7rsSyhmos3WC93Gn9C4nnAd%2FPjMMtQfyDNZsOPd6XcAsnBE%2FmRHtHEyJMzJfZFLE9OvQa0i9kUmToJ0ZxknTgdl%2FXPV8xoh0K7wNHHsnBdvFH3sv52lU7UFteseLG%2FVanIvcwycVA7%2BBE1Ulyb20BvwUWZcMTKhaCcmY3ROpvonVMV4N7yBXTL7IDtHzQ4CCcqF66LjF3xUqgErKzolLyCG6Kb7irP%2FMVTCCwGRxfrPGpMMGvPLgJ881PHMNMIO09T5ig7AzZTX%2F5PLlwnJLDAPfuHynSGhV4tPqR3gJ4kg4c06c%2FF1AcjGytKm2Yb5jwMotF7vro4YDLWlnMIpmPg36NgAZsGA0W1spfLSue4xxat0Gdwd0lqDBOgIaMANykwwDKejt5YaNtJYIkrSgu0KjIg0pznY0SCd1qlC6R19g97UrWDoYJGlrvCE05J%2F5wkjpkre727p5PTRX5FGrSBIfJqhJE%2FIS876PaHFkx9pGTH3oaY3jJRvLX9Iy3Edoar7cFvJqyUlOhAEiOSAyYgVEGkzHdug%2BoRHIEOXAExMiTSKU9A6nmRC8mp8iYhwWdP2U%2F5EkFAdPrZw03YA3gSyNUtMZeh7dDCu8pF5x0VORCTgKp07ehy7NZqKTpIC4UJJ89lnboyAfy5OyXzXtuDRbtAFjZRSyGFTpFrXwkpjSLIQIG3N0Vj4BtzK3wdlkBJrO18MNsgseR4BysJilI0wI6ZahLhBFA0XBmV8d4LUzEcNVb0xbLjLTETYN8OEVqNxkt10W614dd1FlFFVTIgB7%2FBQQp1sWlNolpIu4ekxUTBV7NmxOFKEBmmN%2BnA7pvF78%2FRII5ZHA09OAiE%2F66MF6HQ%2BqVEJCHxwymukkNvzqHEh52dULPbVasfQMgTDyBZzx4007YiKdBuUauQOt27Gmy8ISclPmEUCIcuLbkb1mzQSqIa3iE0PJh7UMYQbkpe%2BhXjTJKdldyt2mVPwywoODGJtBV1lJTgMsuSQBlDMwhEKIfrvsxGQjHPCEfNfMAY2oxvyKcKPUbQySkKG6tj9AQyEW3Q5rpaDJ5Sns9ScLKeizPRbvWYAw4bXkrZdmB7CQopCH8NAmqbuciZChHN8lVGaDbCnmddnqO1PQ4ieMYfcSiBE5zzMz%2BJV%2F4eyzrzTEShvqSGzgWimkNxLvUj86iAwcZuIkqdB0VaIB7wncLRmzHkiUQpPBIXbDDLHBlq7vp9xwuC9AiNkIptAYlG7Biyuk8ILdynuUM1cHWJgeB%2BK3wBP%2FineogxkvBNNQ4AkW0hvpBOQGFfeptF2YTR75MexYDUy7Q%2F9uocGsx41O4IZhViw%2F2FvAEuGO5g2kyXBUijAggWM08bRhXg5ijgMwDJy40QeY%2FcQpUDZiIzmvskQpO5G1zyGZA8WByjIQU4jRoFJt56behxtHUUE%2Fom7Rj2psYXGmq3llVOCgGYKNMo4pzwntITtapDqjvQtqpjaJwjHmDzSVGLxMt12gEXAdLi%2FcaHSM3FPRGRf7dB7YC%2BcD2ho6oL2zGDCkjlf%2FDFoQVl8GS%2F56wur3rdV6ggtzZW60MRB3g%2BU1W8o8cvqIpMkctiGVMzXUFI7FacFLrgtdz4mTEr4aRAaQ2AFQaNeG7GX0yOJgMRYFziXdJf24kg%2FgBQIZMG%2FYcPEllRTVNoDYR6oSJ8wQNLuihfw81UpiKPm714bZX1KYjcXJdfclCUOOpvTxr9AAJevTY4HK%2FG7F3mUc3GOAKqh60zM0v34v%2BELyhJZqhkaMA8UMMOU90f8RKEJFj7EqepBVwsRiLbwMo1J2zrE2UYJnsgIAscDmjPjnzI8a719Wxp757wqmSJBjXowhc46QN4RwKIxqEE6E5218OeK7RfcpGjWG1jD7qND%2B%2FGTk6M56Ig4yMsU6LUW1EWE%2BfIYycVV1thldSlbP6ltdC01y3KUfkobkt2q01YYMmxpKRvh1Z48uNKzP%2FIoRIZ%2FF6buOymSnW8gICitpJjKWBscSb9JJKaWkvEkqinAJ2kowKoqkqZftRqfRQlLtKoqvTRDi2vg%2FRrPD%2Fd3a09J8JhGZlEkOM6znTsoMCsuvTmywxTCDhw5dd0GJOHCMPbsj3QLkTE3MInsZsimDQ3HkvthT7U9VA4s6G07sID0FW4SHJmRGwCl%2BMu4xf0ezqeXD2PtPDnwMPo86sbwDV%2B9PWcgFcARUVYm3hrFQrHcgMElFGbSM2A1zUYA3baWfheJp2AINmTJLuoyYD%2FOwA4a6V0ChBN97E8YtDBerUECv0u0TlxR5yhJCXvJxgyM73Bb6pyq0jTFJDZ4p1Am1SA6sh8nADd1hAcGBMfq4d%2FUfwnmBqe0Jun1n1LzrgKuZMAnxA3NtCN7Klf4BH%2B14B7ibBmgt0TGUafVzI4uKlpF7v8NmgNjg90D6QE3tbx8AjSAC%2BOA1YJvclyPKgT27QpIEgVYpbPYGBsnyCNrGz9XUsCHkW1QAHgL2STZk12QGqmvAB0NFteERkvBIH7INDsNW9KKaAYyDMdBEMzJiWaJHZALqDxQDWRntumSDPcplyFiI1oDpT8wbwe01AHhW6%2BvAUUBoGhY3CT2tgwehdPqU%2F4Q7ZLYvhRl%2FogOvR9O2%2BwkkPKW5vCTjD2fHRYXONCoIl4Jh1bZY0ZE1O94mMGn%2FdFSWBWzQ%2FVYk%2BGezi46RgiDv3EshoTmMSlioUK6MQEN8qeyK6FRninyX8ZPeUWjjbMJChn0n%2FyJvrq5bh5UcCAcBYSafTFg7p0jDgrXo2QWLb3WpSOET%2FHh4oSadBTvyDo10IufLzxiMLAnbZ1vcUmj3w7BQuIXjEZXifwukVxrGa9j%2BDXfpi12m1RbzYLg9J2wFergEwOxFyD0%2FJstNK06ZN2XdZSGWxcJODpQHOq4iKqjqkJUmPu1VczL5xTGUfCgLEYyNBCCbMBFT%2FcUP6pE%2FmujnHsSDeWxMbhrNilS5MyYR0nJyzanWXBeVcEQrRIhQeJA6Xt4f2eQESNeLwmC10WJVHqwx8SSyrtAAjpGjidcj1E2FYN0LObUcFQhafUKTiGmHWRHGsFCB%2BHEXgrzJEB5bp0QiF8ZHh11nFX8AboTD0PS4O1LqF8XBks2MpjsQnwKHF6HgaKCVLJtcr0XjqFMRGfKv8tmmykhLRzu%2BvqQ02%2BKpJBjaLt9ye1Ab%2BBbEBhy4EVdIJDrL2naV0o4wU8YZ2Lq04FG1mWCKC%2BUwkXOoAjneU%2FxHplMQo2cXUlrVNqJYczgYlaOEczVCs%2FOCgkyvLmTmdaBJc1iBLuKwmr6qtRnhowngsDxhzKFAi02tf8bmET8BO27ovJKF1plJwm3b0JpMh38%2BxsrXXg7U74QUM8ZCIMOpXujHntKdaRtsgyEZl5MClMVMMMZkZLNxH9%2Bb8fH6%2Bb8Lev30A9TuEVj9CqAdmwAAHBPbfOBFEATAPZ2CS0OH1Pj%2F0Q7PFUcC8hDrxESWdfgFRm%2B7vvWbkEppHB4T%2F1ApWnlTIqQwjcPl0VgS1yHSmD0OdsCVST8CQVwuiew1Y%2Bg3QGFjNMzwRB2DSsAk26cmA8lp2wIU4p93AUBiUHFGOxOajAqD7Gm6NezNDjYzwLOaSXRBYcWipTSONHjUDXCY4mMI8XoVCR%2FRrs%2FJLKXgEx%2BqkmeDlFOD1%2FyTQNDClRuiUyKYCllfMiQiyFkmuTz2vLsBNyRW%2Bxz%2B5FElFxWB28VjYIGZ0Yd%2B5wIjkcoMaggxswbT0pCmckRAErbRlIlcOGdBo4djTNO8FAgQ%2BlT6vPS60BwTRSUAM3ddkEAZiwtEyArrkiDRnS7LJ%2B2hwbzd2YDQagSgACpsovmjil5wfPuXq3GuH0CyE7FK3M4FgRaFoIkaodORrPx1%2BJpI9psyNYIFuJogZa0%2F1AhOWdlHQxdAgbwacsHqPZo8u%2FngAH2GmaTdhYnBfSDbBfh8CHq6Bx5bttP2%2BRdM%2BMAaYaZ0Y%2FADkbNCZuAyAVQa2OcXOeICmDn9Q%2FeFkDeFQg5MgHEDXq%2FtVjj%2Bjtd26nhaaolWxs1ixSUgOBwrDhRIGOLyOVk2%2FBc0UxvseQCO2pQ2i%2BKrfhu%2FWeBovNb5dJxQtJRUDv2mCwYVpNl2efQM9xQHnK0JwLYt%2FU0Wf%2BphiA4uw8G91slC832pmOTCAoZXohg1fewCZqLBhkOUBofBWpMPsqg7XEXgPfAlDo2U5WXjtFdS87PIqClCK5nW6adCeXPkUiTGx0emOIDQqw1yFYGHEVx20xKjJVYe0O8iLmnQr3FA9nSIQilUKtJ4ZAdcTm7%2BExseJauyqo30hs%2B1qSW211A1SFAOUgDlCGq7eTIcMAeyZkV1SQJ4j%2Fe1Smbq4HcjqgFbLAGLyKxlMDMgZavK5NAYH19Olz3la%2FQCTiVelFnU6O%2FGCvykqS%2FwZJDhKN9gBtSOp%2F1SP5VRgJcoVj%2Bkmf2wBgv4gjrgARBWiURYx8xENV3bEVUAAWWD3dYDKAIWk5opaCFCMR5ZjJExiCAw7gYiSZ2rkyTce4eNMY3lfGn%2B8p6%2BvBckGlKEXnA6Eota69OxDO9oOsJoy28BXOR0UoXNRaJD5ceKdlWMJlOFzDdZNpc05tkMGQtqeNF2lttZqNco1VtwXgRstLSQ6tSPChgqtGV5h2DcDReIQadaNRR6AsAYKL5gSFsCJMgfsaZ7DpKh8mg8Wz8V7H%2BgDnLuMxaWEIUPevIbClgap4dqmVWSrPgVYCzAoZHIa5z2Ocx1D%2FGvDOEqMOKLrMefWIbSWHZ6jbgA8qVBhYNHpx0P%2BjAgN5TB3haSifDcApp6yymEi6Ij%2FGsEpDYUgcHATJUYDUAmC1SCkJ4cuZXSAP2DEpQsGUjQmKJfJOvlC2x%2FpChkOyLW7KEoMYc5FDC4v2FGqSoRWiLsbPCiyg1U5yiHZVm1XLkHMMZL11%2Fyxyw0UnGig3MFdZklN5FI%2FqiT65T%2BjOXOdO7XbgWurOAZR6Cv9uu1cm5LjkXX4xi6mWn5r5NjBS0gTliHhMZI2WNqSiSphEtiCAwnafS11JhseDGHYQ5%2BbqWiAYiAv6Jsf79%2FVUs4cIl%2Bn6%2BWOjcgB%2F2l5TreoAV2717JzZbQIR0W1cl%2FdEqCy5kJ3ZSIHuU0vBoHooEpiHeQWVkkkOqRX27eD1FWw4BfO9CJDdKoSogQi3hAAwsPRFrN5RbX7bqLdBJ9JYMohWrgJKHSjVl1sy2xAG0E3sNyO0oCbSGOxCNBRRXTXenYKuwAoDLfnDcQaCwehUOIDiHAu5m5hMpKeKM4sIo3vxACakIxKoH2YWF2QM84e6F5C5hJU4g8uxuFOlAYnqtwxmHyNEawLW%2FPhoawJDrGAP0JYWHgAVUByo%2FbGdiv2T2EMg8gsS14%2FrAdzlOYazFE7w4OzxeKiWdm3nSOnQRRKXSlVo8HEAbBfyJMKqoq%2BSCcTSx5NDtbFwNlh8VhjGGDu7JG5%2FTAGAvniQSSUog0pNzTim8Owc6QTuSKSTXlQqwV3eiEnklS3LeSXYPXGK2VgeZBqNcHG6tZHvA3vTINhV0ELuQdp3t1y9%2BogD8Kk%2FW7QoRN1UWPqM4%2BxdygkFDPLoTaumKReKiLWoPHOfY54m3qPx4c%2B4pgY3MRKKbljG8w4wvz8pxk3AqKsy4GMAkAtmRjRMsCxbb4Q2Ds0Ia9ci8cMT6DmsJG00XaHCIS%2Bo3F8YVVeikw13w%2BOEDaCYYhC0ZE54kA4jpjruBr5STWeqQG6M74HHL6TZ3lXrd99ZX%2B%2B7LhNatQaZosuxEf5yRA15S9gPeHskBIq3Gcw81AGb9%2FO53DYi%2F5CsQ51EmEh8Rkg4vOciClpy4d04eYsfr6fyQkBmtD%2BP8sNh6e%2BXYHJXT%2FlkXxT4KXU5F2sGxYyzfniMMQkb9OjDN2C8tRRgTyL7GwozH14PrEUZc6oz05Emne3Ts5EG7WolDmU8OB1LDG3VrpQxp%2BpT0KYV5dGtknU64JhabdqcVQbGZiAxQAnvN1u70y1AnmvOSPgLI6uB4AuDGhmAu3ATkJSw7OtS%2F2ToPjqkaq62%2F7WFG8advGlRRqxB9diP07JrXowKR9tpRa%2BjGJ91zxNTT1h8I2PcSfoUPtd7NejVoH03EUcqSBuFZPkMZhegHyo2ZAITovmm3zAIdGFWxoNNORiMRShgwdYwFzkPw5PA4a5MIIQpmq%2Bnsp3YMuXt%2FGkXxLx%2FP6%2BZJS0lFyz4MunC3eWSGE8xlCQrKvhKUPXr0hjpAN9ZK4PfEDrPMfMbGNWcHDzjA7ngMxTPnT7GMHar%2BgMQQ3NwHCv4zH4BIMYvzsdiERi6gebRmerTsVwZJTRsL8dkZgxgRxmpbgRcud%2BYlCIRpPwHShlUSwuipZnx9QCsEWziVazdDeKSYU5CF7UVPAhLer3CgJOQXl%2Fzh575R5rsrmRnKAzq4POFdgbYBuEviM4%2BLVC15ssLNFghbTtHWerS1hDt5s4qkLUha%2FqpZXhWh1C6lTQAqCNQnaDjS7UGFBC6wTu8yFnKJnExCnAs3Ok9yj5KpfZESQ4lTy5pTGTnkAUpxI%2ByjEldJfSo4y0QhG4i4IwkRFGcjWY8%2BEzgYYJUK7BXQksLxAww%2FYYWBMhJILB9e8ePEJ4OP7z%2B4%2FwOQDl64iOYDp26DaONPxpKtBxq%2FaTzRGarm3VkPYTLJKx6Z%2FMw2YbBGseJhPMwhhNswrIkyvV2BYzrvZbxLpKwcWJhYmFtVZ%2BlPEq91FzVp1HlQY1bZVLqeNR9SAUn6n0E28k%2FUuGkNpP1DBI5ch%2FEehZfjUQ9aE41NhETExoPT2gGQz0IhWJbEOvTQ4wgcXCHHFBhewYUiFHuhRSAUVmEHeCRQHQkXGFwkAgyzREJCVN7TRnTon36Zw3tPhx4EALwNdwDv%2BJ41YSP4B2CQqz0EFgARZ4ESgBHQgROwAVn9GTI%2BHYexTUevLUeta4%2FDqKrbMVS%2BYqb8hUwYCrlgKtmAq1YCrFgKrd4qpXiqZcKn1oqdWipjYKpWwVPVYqW6xUpVipKqFR3QKjagVEtAqHpxUMTitsnFaJOKx2cVhswq35RVpyiq9lFVNIKnOQVMkgqtYxVNxiqQjFS7GKlSIVIsQqPIhUWwioigFQ%2B%2BKkN8VHr49HDw9Ebo9EDo9DTo9Crg9BDg9%2FWx7gWx7YWwlobYrOGxWPNisAaAHEyALpkAVDIAeWAArsABVXACYuAD5cAF6wAKFQAQqgAbVAAsoAAlQAUaYAfkwAvogBWQACOgAD9AAHSAAKT4GUdMiOvFngBTwCn2AZ7Dv6B6k%2F90B8%2ByRnkV144AIBoAMTQATGgAjNAA4YABgwABZgB%2FmQCwyAVlwCguASlwCEuAQFwB4uAMlwBYuAJlQAUVAAhUD2KgdpUDaJgaRMDFJgX5MC1JgWJEAokQCWRAHxEAWkQBMRADpEAMkQAYROAEecC484DRpwBDTnwNOdw05tjTmiNOYwtswhYFwLA7BYG4LA2BYGOLAwRYFuLAsxYFQJAohIEyJAMwkAwiQC0JAJgkAeiQBkJAFokAPCQA0JABwcD4Dgc4cDdDgaYcDIDgYgUC6CgWgUClCgUYUAVBQBOFAEYMALgwAgDA9QYAdIn8AZzeBB2L5EcWrenUT1KXienEsuJJ7x5U8XlTjc1NVzUyXFTGb1LlpUtWlTDIjqwE4LsagowoCi2gJLKAkpoBgJQNpAIhNqaEoneI6kiiqQ6Go%2Fn6j0cS%2Ba2gEU8gIHJ%2BBwfgZX4GL%2BBd%2FgW34FZ%2BBS%2FgUH4FN6BTegTvoEv6BJegRnYEF2A79gOvYDl2BdEjCkqkGtwXp0LNToIskOTXzh%2FF062yJ7AAAAEDAWAAABWhJ%2BKPEIJgBFxMVP7w2QJBGHASQnOBKXKFIdUK4igKA9IEaYJg%29%20format%28%27embedded%2Dopentype%27%29%2Curl%28data%3Aapplication%2Ffont%2Dwoff%3Bbase64%2Cd09GRgABAAAAAFuAAA8AAAAAsVwAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABWAAAABwAAAAcbSqX3EdERUYAAAF0AAAAHwAAACABRAAET1MvMgAAAZQAAABFAAAAYGe5a4ljbWFwAAAB3AAAAsAAAAZy2q3jgWN2dCAAAAScAAAABAAAAAQAKAL4Z2FzcAAABKAAAAAIAAAACP%2F%2FAANnbHlmAAAEqAAATRcAAJSkfV3Cb2hlYWQAAFHAAAAANAAAADYFTS%2FYaGhlYQAAUfQAAAAcAAAAJApEBBFobXR4AABSEAAAAU8AAAN00scgYGxvY2EAAFNgAAACJwAAAjBv%2B5XObWF4cAAAVYgAAAAgAAAAIAFqANhuYW1lAABVqAAAAZ4AAAOisyygm3Bvc3QAAFdIAAAELQAACtG6o%2BU1d2ViZgAAW3gAAAAGAAAABsMYVFAAAAABAAAAAMw9os8AAAAA0HaBdQAAAADQdnOXeNpjYGRgYOADYgkGEGBiYGRgZBQDkixgHgMABUgASgB42mNgZulmnMDAysDCzMN0gYGBIQpCMy5hMGLaAeQDpRCACYkd6h3ux%2BDAoPD%2FP%2FOB%2FwJAdSIM1UBhRiQlCgyMADGWCwwAAAB42u2UP2hTQRzHf5ekaVPExv6JjW3fvTQ0sa3QLA5xylBLgyBx0gzSWEUaXbIoBBQyCQGHLqXUqYNdtIIgIg5FHJxEtwqtpbnfaV1E1KFaSvX5vVwGEbW6OPngk8%2FvvXfv7pt3v4SImojIDw6BViKxRgIVBaZwVdSv%2BxvXA%2BIuzqcog2cOkkvDNE8Lbqs74k64i%2B5Sf3u8Z2AnIRLbyVCyTflVSEXVoEqrrMqrgiqqsqqqWQ5xlAc5zWOc5TwXucxVnuE5HdQhHdFRHdNJndZZndeFLc%2FzsKJLQ%2FWV6BcrCdWkwspVKZVROaw0qUqqoqZZcJhdTnGGxznHBS5xhad5VhNWCuturBTXKZ3RObuS98pb9c57k6ql9rp2v1as5deb1r6s9q1GV2IrHSt73T631424YXzjgPwqt%2BRn%2BVG%2BlRvyirwsS%2FKCPCfPytPypDwhj8mjctRZd9acF86y89x55jxxHjkPnXstXfbt%2FpNjj%2FnwXW%2BcHa6%2FSYvZ7yEwbDYazDcIgoUGzY3h2HtqgUcs1AFPWKgTXrRQF7xkoQhRf7uF9hPFeyzUTTSwY6EoUUJY6AC8bSGMS4Ys1Au3WaiPSGGsMtkdGH2rzJgYHAaYjxIwQqtB1CnYkEZ9BM6ALOpROAfyqI%2FDBQudgidBETXuqRIooz4DV0AV9UV4GsyivkTEyMMmw1UYGdhkuAYjA5sMGMvIwCbDDRgZeAz1TXgcmDy3YeRhk%2BcOjCxsMjyAkYFNhscwMrDJ8BQ2886gXoaRhedQvyTSkDZ7uA6HLLQBI5vGntAbGHugTc53cMxC7%2BE4SKL%2BACOzNpk3YWTWJid%2BiRo5NXIKM3fBItAPW55FdJLY3FeHBDr90606JCIU9Jk%2BMs3%2FY%2F8L8jUq3y79bJ%2F0%2F%2BROoP4v9v%2F4%2Fmj%2Bi7HBXUd0%2FelU6IHfHt8Aj9EPGAAoAvgAAAAB%2F%2F8AAnjaxb0JfBvVtTA%2BdxaN1hltI1m2ZVuSJVneLVlSHCdy9oTEWchqtrBEJRAgCYEsQNhC2EsbWmpI2dqkQBoSYgKlpaQthVL0yusrpW77aEubfq%2Fly%2BujvJampSTW5Dvnzmi1E%2Bjr%2F%2F3%2BXmbu3Llz77nnbuece865DMu0MAy5jGtiOEZkOp8lTNeUwyLP%2FDH%2BrEH41ZTDHAtB5lkOowWMPiwayNiUwwTjE46AI5xwhFrINPXYn%2F7ENY0dbWHfZAiTZbL8ID%2FInAd5xz2NpIH4STpDGonHIJNE3OP1KG4ISaSNeBuITAyRLgIxoiEUhFAnmUpEiXSRSGqAQEw0kuyFUIb0k2gnGSApyBFi0il2SI5YLGb5MdFjXCey4mNHzQ7WwLGEdZiPPgYR64we8THZHAt%2BwnT84D%2Fx8YTpGPgheKH4CMEDVF9xBOIeP3EbQgGH29BGgpGkIxCMTCW9qUTA0Zsir%2BQUP1mt%2BP2KusevwIO6Bx%2FIaj8%2FOD5O0VNrZW2EsqZBWbO1skRiEKE0DdlKKaSVO5VAuRpqk8VQJAqY7ydxaK44YJvrO2EWjOoDBoFYzQbDNkON%2BUbiKoRkywMWWf1j4bEY2iIY1AeMgvmEz%2FkVo9v4FSc%2FaMZMrFbjl4zWLL0%2BY5FlyzNlEVYDudJohg8gPUP7kcB%2Fmn%2BG6cd%2B5PV4Q72dXCgocWJADBgUuDTwiXiGSyZo14HOEQ2lE6k0XDIEusexDzZOMXwt1Dutz%2BtqmxTvlskNWXXUQIbhaurum9GrePqm9Yaeabjkiqf%2BbUvzDOvb2Y1E%2BEX2DnemcTP%2FzLcuu7xjQXdAtjR0Lo5n4%2FHs%2FGtntMlysHt%2B29NXbH6se%2F%2FWbFcyu%2Br28H0MwzI30DYeYTLMXIA2EG8QlHpAsyS0EfEToR0a3utIxFPJ3kiIHCCrZ66b0e2xEmL1dM9YN%2FMwS5p01N5jMX%2FBLKt%2F1R83l0LyC29M6%2BiYxo%2FUNg%2FEF7c2WyyW5tYl8WnhWg2%2FhyySbD5UhnDyS7OcU0dnrFw%2BDfGdI7v4QfYIIzOMq9hFtY55gmvC7jZ2FK7sEdrn6IXBuucYhjsGdQ8z0yEbWkkczjjsE5hNAIZrPx2zOLZDmKNXcXtg7EMqidAEEWg%2BSJCBBNwxvxJfc%2FbZa%2BKKf%2BxoKZybnq5vaqpPTye7CiF%2BZFjxZ8%2F7Qij0hfOG%2FcowPA1rT1l4ymWnrKmxxqfErTVrpgwPlz1kC%2BOy8NMDz6c%2BIO38K%2Fx0xkPnLW8Kx6qGAoQdL%2BTD9V9rb%2B%2Fctn%2F%2Ftrxz8dUrZrD%2Fzk%2FferF0cNt1BzctmX2FZPXt%2FjnFCQNz4Ah%2FiKllGiCMs1w5Lkg0kiEwj6VTXCDKsX9rMpnvIj9pcDecXAIXMnqn2dTUbN6w0XQ9ue6FV%2FnnXCH7S3lPWGltVcLsH75ub3ab7A8M28caNrIeOr3o5Q0yFsYL80xaa0EY%2FUEczV7icUMY5pnelAkmUAXmHYjvFWFGxuqlSaow3OM%2B%2FiYY7%2Fl%2FhVELF4EjRqNR%2FbvRbOY%2BDUGzGR%2FOh3EqmE%2FugIQQguGt%2FeMYz%2F%2BL0cimjeZfQDI3phXMbMQsqH%2BCjwVz%2Fhf4idHovgVmB8gLvjbicDcC%2FNypP536E%2F9N%2FpuMibExdohBmNwyiaZdJGoigos7GpF222xrfnZhML%2F7Z%2BylaqP63Hr%2Bm7bdUkQ6%2F2cXqdfmvwixY%2Bs2ksXFeXcE%2BiX0Z%2BIow76DBNgjJ7TOdUK18iPsPflfQD%2BDPsZG2Aj9VmKMMJ4fYRrhIaxhTDR0Elh2vA6h%2FAE6xUb29mj3sjmL72petXjejPy%2Boel60M99tFduCI59N3221xe7apOvxs6aHs7vab1IqY2tv7q2xsHeHGml%2FcV06u%2F8S%2FxTjJ%2BJYc0bWEX0ukW6YmIbGkJRMdjJ9mYIH5QIdJF4hvRGyK7cC7ctImQRcUET99fGXOoft35GYLMQu%2Bg2smnkgZUrH8AL%2F9Si217IssJ916nv14ZrJrvdxLkQvrvtBcjgPC0NXOicO8Qf4mcxPqh3hgUw3DDfdvLJXngg7N3dN2zbPJSaed3OfZnMU7dvmznp3C3bruO%2BNmue0LFsy7S%2B6265%2BfCKFYdvvuW6vmlblnUI8xCXp37CrOZv4B9gauDBlYp7adcUXB5DNCwYImlXOJJKkAdvExXxVvKEYnCo%2B3eIskP9qrrfIYs71CccBjfXRC52udTHHdaP1A1ui%2FVvH1otbrLrpNXBsGX5B89QghDyimlvNB2KfkxZ5C9%2Fem3%2Bd1%2Bd%2F%2FIfFp2%2B2Oxn%2Fs%2B9n%2F79p39S3s8idN6g0yZObwJOgKUpNB3GyU0Ls0PbRzIRq4lcarLKOJBkLRzJQD4j2090XrbA7DW8K3jNF5hlGS5e4V2D17zgss4T20egOJte5iD0bReM9yjTxnQxCRj3c5kFzGJmGbNKmwGw39IJDJcXJZGMkaAB4jyJAKw0jt5IAuIE%2BA%2BU3cVAZZrq9zhDyBrU8oosuxcGNTzCKJfla7JjNVmuSb%2F%2BtuzN2H%2BX4vlB%2BPpdfMXXmuVsNiub1T34SFbjYw5itEvVi0K0Nt9pNJUMI7SLGRhf2xipfCYf8z5OdlGKayOucFeVPeS%2Fdbo3lBrbSMmwUiQN5%2Fed7g0Ds1s17IuZC5kNzM3MZ6EWCa0DtekdJfAxz%2BR%2FOX28sND7yRMTBcf%2B%2Bs8mQCQWHya4qBv%2FufeMoWyslPA9DtMxUknxkH%2FyfTnm2CMYzs%2BCq3r7PxY%2FMXomrvTEsRpfEGHa%2BWN8E1AHjElb7d06ddA7oK%2F%2B5Mdsv9EtPms0jv0Z5kf1FqPxWdFtfFr0kHfgDX0Y%2B5PRSG7RUj0tQr7rmfX8DH4G5W28kKeJLtmQsQkuwMP1pk16EV4sl7vrMJATfyUWo%2FGwEco4rh4XFQgaiUX9qxZHrMQqKnz%2Fc2d8b9TysYrAuXpP%2FRf%2FGr8b1qwwc5a%2BeuLa6S6sneNXToG2XrEJi4R5SGs8Sq2S3d97bsfCRaTdaLwKClRHt37mkudvXbjwVrLhuYeGhh56bvfQkHpk2CwvwClqgWwuBfndC3c8dwmstj81KkagcUgbfPY8Zje0W%2F82VPWJHmSq6pP8hPWpotc%2FEexDOK3qU%2BwngPhOCiO9MJRm8TJefjelrzoKnG2Bn%2B1NCUmPE4gHFmBN9jrTigRIpsACrc9Gstg58ULkp9467%2BGf%2FeFnD5%2F31lNrt2967dhrm7bzI%2BVT5m%2BfzKhvf2MzpICEm79Bopkn07lt1762adNr127LwVqQLdJ5%2BlpQDcvHPQtVY5knhYrK6q8%2FJsiP6EuhGZdFdaNszjvpqvc%2BPI0CdjN0AXsFOC3ZfALDJwr4q2Xq%2BGF%2BGNbsxUg5NLLIEXi8otcDQcUts0D8eQ1iVDRAMBTsYiNdRIxE09EIBJO9A2xqgERTaW86BUFn0OD2xFO97FAgFhF6OoQ7prYt4XwSeUgQHiJyDbeke9IdQntciLQ1FlJMaYcUNvZBg%2BFB1ubjlnRNvl3o6IEU2w7fdNPhm%2Fhh%2BFLysUu6%2B%2BDLHkOkrSHYEjH0tEPe7WdD3uyDgvAgK%2Fm4szFFR7ch0toUgBTdWHr7EpaWru6%2B6dmbbnqWEbV2EtxAsXiZAPTtGPSbHsotI2leoM8TePEqgSQprs7AGFf8kuOkPdZPXGb55POAW1d%2FjLST9v5YflasP6v%2FCO7%2BGNAPC2BMZWmsOjp2NNbfHwMCJD%2BLPVL%2BD%2FOYlWEEI%2F9jpPddOFkB5d1GSuKZYggmCCd7JUxD7EXAzxyirYnNDLdDZoFdx14kivkvGc3579Jm36reTTvDgBnaO6vzyQ6chQmlsMoIkIQ2%2BbBDWBud1Va4pcCn8CPqxlh%2FfgtG8IPaPH8C5wk6%2FnZDv69jurV5QhtwE0x2iqOsj9Mx8B9%2F0EaUdiPfOYYDCi%2Fq9jhWRuupMDEU0%2BCtX0sDFxv07T%2FK5niBPqN9%2BtQjgEc31NGCXFeMcCEuQBIc%2FBK4CO78u7EPYvl3yaEfK3vcb6qP1R2tI7vUjVDDUdKubsSrNjYKY1qBEa2P50SJoaXiksIoLiCwnxS6EBuBde87botNfdEWwYvF%2FR0%2Fu5yCqhGeEOR2ynSeyXjt6ka7neyye8kryBSWE52y%2BRBgogrXPZ8E1yIHoHIFUM%2BAbJhE7lbMtt8ApL%2BxmZW7PwbjAO0fAVoXQOuiSP%2FksIVdFZ0aulsamKUzwPZ%2FNYDMJRBPCxsBqLzqHyneXF6Ej9HlIFo7%2Bpg%2BjUb3unRmGpstGkm6etOuDBGA5wCMefp1gTHcdZlvPBXlOslvYTp1cd8UjYLVd%2FJ5awNrIOKLnIt9MD9qdrKrWCvA6ALm3QV9VrsPm60Q7%2BRHJHP%2B2hqfugo%2FMvI2H%2Fmqr4b9tFnKSRY1Y5Ek80Nm%2FWIhr1ikKnxGz9TWXrokf9xwujfvcOTtNTWnxd0F37Y2W79tteBqZ4G5qLCuomw%2BnSr28QESCRVLTyYKILGJOPfcnaIFOsewhRdvv%2BrWa%2FWih0vlbX6Zb75T5C0qNKVFvH1QL%2FvazSWgC2s6oWXXIuUxQelKiJbowuJDQViatLmLijg9CQBMg8WiPgiw3LEeYRmm5f%2BXdnvkDnxLLjMLxtvX74C3OlwPQqx4xwIdpPx38LrlDphiyWUWHWKAzzxurS%2FxTo%2BP5wGFak62ap1PVFFN4v%2Fy%2BxuR39WnIO7lsWfwgVsK17wxrs9K8ltIKuhkw7f%2F6dhK6gQokFKhWX3urrjk%2FrnI0pgfpGMeuQIUaEM7%2BGF5q2iMkCaMQwxxOzcvU0eXbsnS9XknXvP7Gtw5dwPXlFu2ecvSHEZgNDsU6x%2FGdXBYXyOQjzZReSedeEPY6nEv9gJR4oBQJtFO6Kd0fwC6BO4LNHDeBujB6dSNcUQC9zIv2LnAzGk99bUDrdFY%2B9yGFQtEo0GQPNv6vS2drj4%2B1jHbv3aJSMUWP%2BQTZrmbNTjU8wyG%2FiXNNpskybLcJ3CiTF5Ir%2BJYzmJwE0mSVhlxbtbmvweB3ulB6Til5UuUZydpgiFVeobhU0WaBqpJ198d%2B%2FXeNRTZ9%2F1OPfG7%2B2hwzd5W3D%2BhmyjsRcUg%2F%2BCavb%2B%2BVh2ls3L7zT%2FetOnHNxeerv313vzLVqPai4nJv%2BK1FC6040%2F4udw7sAb3laSg0XCkAAs0npBO6VJabS4Elk%2FU%2BD4gTXW%2Bj0wnrMlqNamq4tMIYB87tE10i0FR3LZNhJsb7%2FR561btmes8YBCRkhYNByRtKd55mqTas9FYhJnbRGHuOh3M4QTdgQSqmgRxuzGdSvZGcbMxNQGk5C3ebLjoXIOFM4l%2BWKHmLTJwRv9E8GWJ6dYvf%2FFmEyEGr%2Bgyrr1p5zrgkz0Cw2j94Hv8Jdx7dIVegBSNtgsqGsRQEYiIBoXwD0LNvQ5d7s5Z00QzwNhqZA0b%2BtMG1tQq5nd84uq8R0zPvX35G8uRaze4jcOHzz0w1%2BQ2BIRvf6J6Kgatnrbiem%2BCFvAxfkrndzD9MFPP1GWTUHclpASUkCNAQkpCCcCgDSUDAhDZ%2BCuEkgn8J7i9nMA7pA4lISappxILKfAeSAbIcSDuN2bJcfZILqeO5rLs0MnngSHYRdrHjmaz7JEsEPw51ZqDJDmUIOZIe34WaQeegNsJn1qz8AIpT3yCjyEih%2FxELkuJ0lEMYTLVCiWpo5oYMleMH6USyYJcD%2BuOe%2BkWKpn1Qns34iyYDjkSLvgnZXcgVQNeqINXr48m3iS7cjm8tedyY0f1QvTnHHdsrKby%2F%2BSSbPY8%2FNH6vpl%2FEsq3Ae4ZU1HC44KFiI9o7CEgab%2FRqHbj7s5KAg06s39ZP%2FzxI%2FmVuF%2FTbTSy%2B3Fb8If9%2Fcv7%2Bwt91yy8RfP1QXtW5RzQn7qIiZyuFM5QfJ5E9uVnqT85TanFx0lkP3ukBAMprvsRyi%2FC8NAJL1xbIIirSvnSj4O5netb4JxmNANHPssHAcHMHsFRgEug816gDBeMbdfiuRcghqYcm0%2BXxx%2F5IAEtN3fqFF3LzAXqwoT0PN0OVTNqxo8sxMkd5Ig6k79Zk7VxxX6gMLOZFQgvpW2RrMW1D0BDihaXQ9wVRoBxPLfpknmkeMtoB%2FqM9cRc9IqmMD2XUmdZ7GSRKPUZvChf8BoykriM2MnKYbOHX8R7cLdNCxSFFVQqoYswnlWtlFS2mNkhswVpZiQW1J%2FUKFfipHGlUkM6UKBhMz1istELIHJLMSctu3ugzfaVSOjKvUgc%2FTHK4Sdg2Wscz69leKIkkrwuuWiOe9yGYKQXRumkC3qbRcMwrvhjNXgdZk3RxAUEhuSPvn3nnd%2B%2BU%2F3vlVOmrJzCD8JLxV1OHRjrZifbcFDOuRNTGqdgQm1tSNJ2OcQ04YiEXuxtII1ECSQRoQGYioEsgCfchB4ghAtw7FfJre4WZ9hkVi9MtjuWqtdNDlpMrfEG9fOT6q21okg%2Be4As38MfGquNt7oUws6Ysarj1%2FefE%2Byst86YUVNvDdts3Pv5c8m%2FaP0C%2Bf8%2FQb%2BIMnGq09BgwN01oIOAnAdagI8mBSrqk1gxTDUBOtk2ousEtBH2z4Ir2d3f6k8PXXVlt2qN9RODxRuoJT%2Fv27wm09jRYVc%2Fe%2B%2Biyx2tyzJb%2Fn3J0htXP87eSsQaf2Ly0s6Zmxela88REy1cf4273mI3iXNJ7KxrZibOm9xm6rl4fqy%2Ft27smU8tOfdW2ucBzg2UfmOIVyLIl3kpYlwphDISTXJXsctmiDtN7fNV6zelgxwnWxsVr83Aj%2FS5ki1jL%2Fa0GC6%2B2L6Um%2BaoddlNFuj%2BbJ8mH%2FiaLh8I0%2FU51NspIEfq0dohwyFXKgm4NggwQ4rRhCOUFtxxo8XnitT4cnGfT93IS8FaT85XE3H5LMY4zIEPL1hw443wz%2B1UmhTJyJGxZzw%2BwsKkKZgUiVtKOKMEb2AKHTv61FNc01PQFwKnvsZ%2F9pPA4RKTASWahmh%2B8MxwzHxKy74IRn5LGRjsPUUwTu64UYNY38caqd7HKucZ%2FtHnODtENw%2F2UfHRMaq1UUPDJQ0OKkWCeet5fYOhII1VRz8%2B%2FElg5j4Gxur3J8o2PJ4rg%2B2d08T%2FfwEzSVbyZ9XPro95T477lRKqUSRXQnauHNsISAl27oWi6Fv9z48JMv8r%2FaMMj8onCP%2FDuDZOuN%2BGPPr%2F%2Bp7bx%2B7JlbYdppcNhzKU%2F1Px5aiaGDn%2Fs1iGMaBcleKUo%2Fv9rcxkZj7DBEKOfrayytXNLYiUdBY%2BpleQXdnscKlQcpzuWluxsieeyuXIK6SdxozitWyGOV3vOHHjguyCQ6fpIYy2JwvrQEF%2FQa9Pdf%2FQqOSqCiE%2FEE1%2FXIVKTc2tzWbHnimrEd%2BVyz311Ml3P0GVTj7PD5aDnsvCvH36alEaPMePcMegXs7x8igTu4B9v7G9vTHvhCu%2FkzIdx%2BBxC0ay9zRSvoS0F2lIxI%2BX7klU63I40gLQ3w5ep5na%2BSFnba3z5D64zv%2BQtM4n4ffG3tq4aNHGRfxgrXPMim%2B5487abL7xhdseIRn1KDl%2B7aINixdv0OD%2BJSPwKf5%2BxoP6aiTeQIDVlIhMcL1H5R9PYXvprs3fv2bO7MOplCmweuiq2JRZ1zz%2B9a%2Fv2PH1Hfz9236w%2BZrPXvWfAxlj4NLLHpq3c%2FPQ3uvmvbrjG7fe%2Bo2y%2FcLdtE6VUlXi0ASb1VLUBVSUWSU4HdvAraTyS8xzM8NxvxFkXV6pUVRiJwcgC5zEeht4rwcp7ki0k41G0qlQhG1Vzlq8alEmnFi58caB5Q9vn988MLhqyVlHvLEWjtQFeupdiocF%2FtkkOGPW2ibWaBTkeZ%2FdvPWazXfOnnvL6jkRXpi85sFzZt%2B55ZptW3bl1cCCHZPD06MhySha7UFzjcjbp8fOecFCirzAG%2FyVjBX6OFIaadSjQq1nNhyIe8tVbaaSdHlXIWKacMeuZA1uxS95zILhyrxAdsXTL6m7kNQlx2P9uZf2qhufePFFbpI6%2FOU0WcP99RrCsrwseVot5mtytpf6Y0gm9sdeyKnPQ7onyK4nXlR%2Frg7H95M1upzu89DH6pgUcikoiihJ6NJKmRxV1x%2BMJiOA3YwhDRQrWU0u%2F0rvq0VYXnyCwsLeTJYBq3dAtJDavuzyoVpzZ99Z0%2Ba0uoiFH%2FxcqgDR7rUFeOrUn6Cywb8ZeNMbhLV5ugP9l0zv9UN5b5mFkjzxUcpPJCn3V402pRxtJd2GrnLdhtVk9ZSZh9W91fCSH5B7ofxPiWL%2Bj3D%2FuwhBRdyAyozeZwvQzs79soi%2BBKSnafLviZCcfrpBpLyimfLfTyJtbyruIQKD01tUwJyKEo%2FybaxkSNFUMdMkhQoJyRBQFhnUkDQSXhTM%2B3NmY0EDM7ffLIjqWEGt8lCO6mLia3PukFnghosJD5p5SIho%2FVDkzQfLE%2BIrYoJXkD19pdP7OwG%2FvoIUtagiWiZ4PAFTHHlTVhRZ7dYmPar%2BNJ%2B8JhmR6DFK5DV1foHoLNO%2FpHrvZfmWZ15RQlwvoVDKhCWNK3CCch9lfFBuAqUgpFSShmNaPj%2Bi5%2B%2BWZfKeViJfW5HnUakVL4UCNVkA4%2BETfIqx4B5xSaP2L1yn0zn2ltPn4%2BOqZGmwwEVCaCSqG53ldtL1oLGAhdMLd09MpCCF6tD6ZnAZBY9hDaYsP0jzZ0j5ZjKsF4i1UmLuhbJMCnYJPt5VwFNvmZawXjEvLJqIH8STonZjq7BZ8gKgR20C9MDFqJAX1H64QW2NEup6qgzLP8cvppL%2FNNTOBTCJABOHeWoXzLhw4Wuy7gaBtjKr9kgKq8ZlRYBS32Lpxc8vIhpNDTfyNXWybMJbn2RyQ5EmWc2QF9wmSZ0KYCE%2BcPuYO6b15Uotj2Kd4MItLS7gtFbkTdrFND6pvEZqv5Yv7jXAus7Pg7avo7KDot50NX3CPkP%2BKps8J9%2F3mGQIteY%2FLGPC%2BL7872SPR2br5fy8MtKBMHedGuM28%2FMZmPJMrGgi3Gb1S%2BSi1%2FL%2FzrZwO9XH1ce%2Fz7ZQ1WSoY%2F%2BpMb5FT4ua0Wm%2BJf%2F298nFmChEQ%2BTi71est4mq9VYI6RsymoRJKYidElT2FGnDTZvqtfhGAFTbeqEw68GqtfmbVa%2F1IFO1%2FjdWr%2F8BDRRtQh9XNjubEm4aWVpVonpTGR7PVGc%2BKJNoBIWF7kYi4gUV3r1U6723i6TxUl3n3%2FtM27aZfKb7THiHW9VzFSwHJ05VfK6Ar7kaB0XgPPE0BSkSFKsBUpaLihEWoA9wBt8qirh2VSOkZwXEwyrxZ5jyt2rJmSo9gX7cg6jsEUGJU9z9xJPOEM3uQQxKgkh35DNATnVyrmJ3mbCNyIB%2Fyox4wH1bg2DwN7q9kov4pFqny8oSm3RQbGgJ1QQTs6ZMLilOVYJ9v6Wha3HcJ9jddsXp9YhGUXLXt%2FqMDnvLpPNTXfNa60z5%2FyjXQOMq%2BlNmwh5egpYrdfZQZV9rI47xlRkuyTjpzsmCBSWNkAXVoK8sgYWqQJWbo1RLo6QH0YW6pxqfCnRgkd%2BRiFjUQUQ7poIaYoakgXxwFd9BuuI38H1xBxXSFb%2FpBDIKQFn7YB3dB36l7sG1FLaKiBdp1KxLvfswap%2F30lnVESgNnvjbUoT6w9N%2BXoio0qcYOIM%2Bheg940YimsucQVvli9NEcft2UZwGQwLuilj1fFr1i3NP94X%2BPE7Hpvtj6lBJfJ4R6NvWiaL6MgzWHxiN66DExa%2BdAdAbMYX6HVF8A%2B7rjEZIXAVbDe7PVI9rmN69JOLV1DOSvRPxWNPZBZf%2FNf%2BNy65BhYxxxV%2B77XJ2wfQ389%2FIQPgajXbwMsuAz%2F0IaQcXJavKbRqR2IqyZruXjVC2%2Bhdee%2F5vdnYOedpmVtR3NGXldxSzDSIiBVpkGb9by89UpEPKrSLZmyFDzMab%2FwXl2CNe7s%2FqCtTvWgG5kpBmCBlSzDS%2Fr8N4uwBwohRW63JTS1y32f0TQsPfXVGEHQrV8%2FNCfiOUVirYcBbIeA2%2BiF68rQIo3B%2FS628vYESr79ehzS7Q9LEL9UXmik9XVHb1yBO3Ngvt5935%2Bk1efkV51mzzrM0LL3%2F20avnwMeKuWyOUZg2TasSqZ%2BKcZQiOn1Iu2Vh497ALUVZiCKt%2Fgh6IvTIj1ZLRjWAkpHKOKovNwp00eqPROiAbiNEKieXwMLcXhVJ1%2FuzmLP4tfxaHR59cBdJVG1kTAgl9ze9QKUEQ946Hkb%2BokJ5JRDyf54Axur1D%2BWS49cLr0tTPEu7UmXrxcSr3XNvumv4yXzInXKH4F7Tc7p17Zt%2Bt%2FqW2%2B93k063X7VW6lALxTY7i1nBXMxcxmzQbabxz%2BtJo%2BwijYaIGMNS8AoSMgAPt84DdHOoMPfjXhF%2BkuH1tZvuFQrRCN07xGcXRX9MYxYchDe5BcHj%2BZ4i%2B42WyPc8Xofi7bbZJN5nJLJ5qr6IqRtzqNlM17SpFsnkEyTWoABEjz4JXOQvzWYuwdnV5LNGOwTM5v9r4RpQ8ZXsYodks3o31JBlzbYtNotisnm22MxiwGFXam5oN1n0TA%2FhRvshvTSDwHff4nNzRo9Dum6PaJbMXzDz%2Bx%2BFkj4L4bFNBb1asqsgH7Dyh4DvbkPtf5yMDKzEwyoaESMSNS9P9gJVA3%2FRTlwoMwZvxECFWxIPNw9gi01nOHjP32esZTtmXHnxvZd8ZtakqQ7ekajbXetpNa6ocTVxJtY%2BuSe69OLz77zh5bDR3xjZMzUz6fxrz1nqrZGcHQHfPVefN%2BfiK86LeXj%2BSc5lPKy%2Bk%2FvCUI%2FDaLFYCWHr6nbXuILTIsb5imNKY%2FrCm28fSMxPhkN1XbNMNZGuqwOBhtTSxWuTk6bw0ZaG86b1hKddePOKuBvmiguYBn4T%2FyOqOyGRBt7bKUI1GjioBC8aUKwF7Q319UgcmtFGIzCJGBqwQij0ynDsfdFGc3TS3BlNfJ25xmzniMkpXXTPvCaD3ZaZvyzjmZdudBostmhb0ORZNN2sJBeed1HXkrUsywueQH%2BL0eCPxmsa5ZpgRJSDZ11yDv%2Bjmbd86vxZfc1WcZJ3UkMq1BOOOVtvu%2F%2BpB%2Ben186d3GTwWAw2jheaJs09%2F%2BLNfZft37DALyrNj1wABMuUKbODyTVnT%2FKYbJ3Tpq8IrNh92dkxOj5P%2FYpZx4%2FycyiVcDYdn4JbEoKdQi9054iBKsygLW46FRGxAb0NPNCm8BSNCPjoKcj6EAus4SuP3rB%2BcV99%2FeTF6294dA8%2BTK6v74MHVpYNRt%2FI30e8QGTOOdfGWzzxcy%2B87a7bLjw37rHw1nPzp0KyyRSeZO%2BQQhInt3dYgvycjrPOv%2BT8s1rptaP84VeywdWX2T4ysr0%2F7TLIs6%2Bx9zib56ye1dM9e%2FXsZmePY3NDs9zlnNVt4%2BWgHJbbz3Livg4P9WWgviOMm4kCRT6I8vw0NbUUEnFvOuFKoxQW1gTsvFirsF5pb7qTUCx4i7VmtToveaDxvK9uOaedVvPRpVOnNz0Q6bry7uiSdQ8t7Vy4JQKVS%2BXPplV2ts4bvCwZu%2BKzgITtxepaPRzWdpv74muvv6RO0SorX6cu%2FdqKn%2FXWnrtp%2FZragz13DUCl5myiFW2Ycvb0PtsXnU%2Btx8pvLFbUspLX68mdegwmOif%2FNPDONajTGoUh6tU56HBJCTBASVvNUB5VIiKpc9kd7kludodSFz7xQbiOmMk5dOYk56gzL6uaf7N8a6MQOHm0ae6snZpFDfuT3%2FjdYzjzwkXXIVHoXNuCfQslQZqBZjTsoHMqrkE4jaYdgkGz2ATOgB3cPkSukD01DnV3ttb1wx%2B6arPqbkcNAHoFPzKUUQ%2BqL0k97pjbZv1I%2FegC9zTFbrrlFpNdmea%2BgIgfWW3wqkcis8ky5FAcRd1If5nNZrl2FFpungc8wpoCl1BpQV%2FScS%2BzjlASyUTVv%2FAJ46gkJI4bHX4lTnloctxPZE1ckS3%2BjG2fKIjkQFyzuo8jvYQG1OrGvJPSTu%2FnSp9PHNTl4z5hK%2F8gtXVKF6gEKiglgcKiRlCESsQCV5QIlKWKpr34lt%2FwkSx%2FJCmP5%2FcBKQfl%2F5gd%2BrOS%2F%2Bp91%2F%2BYCg5CXK2W4M9fu%2B%2F6xxX%2BvnelVuldIDCG0VQTpU9Dw4pRfei%2B6zWx0MLie0gPbyrkmRU7OwT16JGeyXLHqOLqAfVN1GPlBzWtFNzj0TRTCjogtP1NjIvu5habN5Aoa1k66wGpqriVetJgiGdwDZtKhnN0y4n9sXYnsqGmZfDSR15%2B5NLBlhoDaedEm7sxmpqRija6ZEEg2EAnTiAC8IrmFbGz1q08P9PSkjl%2F5bqzYqT9hMmptEXDgTqP3Wiye%2BsD4Wir4jCeoHbbp5hRfpB7BakUIppIlPCD30dR1GtslDz8OsqbXmejFC%2Fv8wu5X2myq7SJ8Avzv9DFUJySf5uNvq4%2BTi7W9D%2FOZrLChdwxmPNiBRqVjnpK%2FaGxRCDspVYKAW9AN1JANoo8wP4BJUlGqdgw6m1qPQ2QW3%2BOfU5%2FieLS%2FNuKpDU3uf8bcAXyBal5jMR2NEAbPAZt0K3hvxHBEDlUxfIGcD%2BN2gNSNx36nfqlAYow0puatNpRz0e4W2oahKzQHsjf2c16ad%2F3t2KTtPobnX6D8C8pd0MDP%2BKx7wnXqGGlLQcvikMErm6TmfsuxJXbSAxqNjOogJLQBLiKEHAE%2BJGTS3JoEhTrz8%2FCB%2B5YlupJ58aOat8Kv4JvregxwcU5Cp8GFAFm1FyOfto6GS2m1NGTS6CPNKkbsTdCBlnN9onMho55BX8IJZtEQ35lk%2BhtwN5A0V3RCPoD%2FyXAcv6pAtbZczRUA64JmcUf4q7Q89ZHLeJVZ5D1Ps%2Ft%2B0iCT3AHVtZC7JDCXfR7OSb%2FXja5H3zQbZL1B%2BULX1BMTEk3AseSpmnKEK4T9ekMIidUCRQFfcbj7z8gNLvzF7mbhQN8h6ZbRset%2BnQWdS%2FZX3k7WpS8P9sfo0iGS64wV516pOhjI6TZ2dApgI5%2BLhxywYoWxKUrykKJsIoDsR4mSrCTg0egMPnLW%2F3Q5Nn8BZEuzqEI7HK3n0%2BzFmuO3TtWQ5WJoG9YqCD6Gc32SxnbnVPfsxvrFXK2dILl7bLthDp6glhcsfp4bYvbSmj%2FmQ94uBTw0E73x2jbNRCvC6VL6GCFDwU7eWQDcC5FY5s0slieRDwtAbRsbLXbaXAuu14e2OJw1dc6jQ3ZdY8v7rv2%2FBWZLqvFWVvvcmwZkK9f5jS4muO9yR5res4kfkRxhV03L1RfPOiPtYi8pd7jNEsOpyTwxpaY%2FyCZu%2FAmd5Or9uS3DYaeqVOhH7gZN%2F8I%2Fwi1fEuLXvyNivibjuKvN%2B1Nc01HF%2F3h%2Bef%2FsOhox8MPd5SFucPjorQwXT%2BytA8EmA5mamHNFDVhBI5pjZbQpugBNkO8MvRub8KVDKST1Wag7D3xlin1ZF7LFP%2F79nbvCXFOY%2BPUjrT7%2FotsPXXZ4exdPzuhZuL5LUXVAn7k7PbhG89uz3b41X01gbjP1xwlu5rrvvf9%2Bpbs6E%2FVu7Nk642%2FPYRaAiUBdrmO6CDTBLPQFA1ur0uXoBR1INDMkypKpoTqnSMx5GiEdTEaSHLs0Alvu%2F19%2F5QW9Rv1U1ridT22i%2B53pzumbs%2BXFFXYC%2B%2BCGsTj5JUT%2FGCgRt3n78i2n71FHG4%2Fu6X%2B%2B9%2Braya7os3ZbDmgWfXun44e%2Bu2NZKuGZ0HiF8M4TlMPR%2BEU6rPKRJ8wOU2RFUFLex3egEsz3YqEAq0cqhAAW19dBZIlVzR61tuIdTnpXH7l%2BuXrbjPUyep%2B8cl6aXKWhPHpDcXl9KiTWDNr4mBQc8Tq%2BNzK%2FOKSbsfl79o9G20R%2BbrBXYvUg0rLHhtrc4TN81TTOWSZ0gL1ZVlOYH2ery%2F7XVUjFMbzYpg7UswcqJPQwBd0LKLabJ8IaCr2otcjSkIrGwootKECaUd4XH1%2BSdazRrfddkBU98t1htvWrbjqSqjaCguxrffM%2F5zDCpBALUycmajhd%2BR6ww4SWafuZ5eU%2BtPid4lgd3gt%2Bb%2FY9rQoZNmiXYPXyRHbRs8zX%2Ff4WIFjWZJtUdSD55AP3xtXH%2BZipC0EqdBGDA4CoYEU6gRLGPU11QhkLTBiEYPiqOeQgwTCl9aok1Qr5pFf71qEeNxjy%2F8F0GoqYPv75Yh9j3x4DuJ%2BuEzHRpAq2lMqb%2BqfTdiq6kGtzfOWsv0c7lSeMXDHBDe1MT%2BLUgx0Pg%2Fp87u2UicdIvqQi8DkxhcUwUXCedMpb4NQjwY3npTmgsURJavLwCRyEcN2HfWsDVGfv%2Fu9ZUWUx%2BPYFueUKwaNvbtu%2BXps3eVWbN1GcgVrdMnWJ7WmJz9SD66EBidag0NF1Ukep0t5A7sFCWdhzvYwHv6L%2FBehXuHqfaBwBEU7hfVLcXvS4VQv%2BT%2FvaSIl7cbeMc7ekv9i8S3e1L5xxpvMGcu1EYPbKyCiijjGXcDKckm43PqU2qNWlXusZMiqF82cuVzolUHN9NNR0HZPxFPV9V0wLtvq%2Bk4DqOwVWDlzuQLVdqFiP08cRX7aRlBVfR8cb55bWe5LExnlcsDp1vAP8Q9BucPMk1Ulh4GnN0SAdxcNHv3q9ohx1Ati4S%2FtkWjIDe3hQdkUGrGRaFBiUdiTSkI41UkMuuQHP%2BEaSQYlPQTFWJF03BNPpTu5KFAdkWgDukzsZKMG0Q1TAQQglScOaP%2FdsZ8%2BfP75D%2F9Uu5Gs3FY%2F2SxPld0DHOciXI9gqjcEidXjE%2B3BLosy0OcX3T7O5g65ROGyzQ2BZs7WbZVnO5ydLe32hMwTQ4wnnKXW6XW5LAa7oaXOIHoUl0FgLQLH2by8wSTWeAx2Y5PDazK3BqZbeJZwXGPaYhX87ZNszoDdaRxotXO1nNlpdvAPFWHDm8PqEE0sZxDEqGzxisFNnuCWetPcGrObN0p23tTZwMuRVodSV8%2BLTrOV3eRvzjQZiSjaLYS1WEJe0kNsJlZu9LFun7%2B%2BwW4gRDRbaxw2nrOGm%2BxOj9cmtbp9ZqeTM1m8UXfQQCSTVSQox6pvtjot%2FFpHvIUjJovFEoYvHYV9C5Y%2FxN9OfcalvII37UEhTbTg%2FAQIaPb4Vz6j5u8%2FaViycMod%2FfkDcpu8QZbZoeBi%2FvbzP3XPsZvOubMtaPHkD9jt6%2BU2O7vqU%2F9C9SMvgrXpQNG%2FE0oJxun%2BCiElUa0IKQSUwERxOntKSV7ekcuh9VBZBBo3VUcB58ofKBHCwLyf9qFosz9Ibf8dGqwaBMjRig4SGOZ2UkWI7UiO9OfUPdxOYFApUZyfpY7mgEc5rtNGGk2H1lPhAk1Hp%2FVAMqQEHEUfEYkkUQq1JMdzsX7kklRrTrUi1wMcDjmu1YYfATj7Y%2BpGpPEBXuoQIj8rR9mgCl4C9yqmF7xnVWxGVniNqtpVmXBvQ6iwni5YQ8a1jYrXtc2J13HvgkvqWxuva1sbr%2BP2S5ceKGyBwDv2DbrToe1u6BkAJV7xnVLUaq0sJB8pFqcUIPi3yuwxi4JuLr%2BP30f3OkPQ72aO0xYo3%2FEsmO3QO5qEF8S0qQH0UsKXv0brnl9%2B8M7jF174%2BDsfvPOl1au%2FRL5%2F9DsbNnwHL2pHR1NTRxMZhJtHktOOxLxErPF6YlLvpC9YP73x%2B4ofw%2B3xVdrHcDE0dQQCmCRgvt9b35xINDf1CDcRSfJ%2BpYl%2BSf8YcurfmXP5F%2Fkj6J82jNsrkWiEuhVlgFfyNkB3S5MUzLhoNiwSCYcxQ7Ui4J0Xh7fmqRbaPa1tzujxkBRlsEHy0%2FOM4pYLPb7g9O6BQJN6l9zQ0OGyCaZz0vMTbHOzXfQ7a2tsterTcqxeInODoemdktw%2B1SbVhKwtW9ffe8VKadK0OVuC3bWzyKm5LeddsWTeorWyY9IMtUFutdu5g%2BRn533qkocdvLs2HmhU75br%2FMmWtD8zA3OP2t1ea636jEzqYxJZGAwFiDEd61oTsrRuW3%2F3pYNi3bS%2BRd%2BGjOfVpAPNd6y64Gsz1GaZleWIPoYL%2Fv9mTeQBENVEguiF1aC4YeXxFETw6QyPfn0m9g8IrMFAvKM1EI11DARnbqibHk%2FIojy5rSdgCyZi06y8sS024PeuO4MfwQ5Y9yKRZCqyYaF30vzeHlmUprR21tR0t0yz8KZY66zWuGvxVQB%2F36kP%2BK38t2Hu6NQ9SFJfw0AdpqPEK2qTMpf2VCqJwqPoJezTL824b8akoL%2Bx03nhh%2BoNo5e77psxg9Q5LzebIKD%2BfsY34f2MtB9fk9v5b8PT6tYrgv4kRPwd0q9z3gdJSJ0653KjCYPwCaR5aUY63eW48O%2Fkdo33yxX9wCiMv2QTrk8eGSI6Ag6moG9t2P%2FF7GRNlDjl0gw7pJ5aOXXqyqn8SENnXBmbSwUYLyqJjv3UmY1nKr4t80no0faXsaIEiF%2FBRaIBnItSce4OUif7W6Vm9T9H1X9Vj71BEm%2BRdmIJQST%2FZfVdudUvh9S%2FqqNvqT98g9SQ3lHibZY0mRVHooyDN%2FFHmTgzjdozKw28NwQ0hwN6BCoPKaEk3YtKwNhwRLXuk076CGoZNXDQcRwZvreTZY9EZi%2Bd0s4%2Bztv8iei04JQl6ZbDD2eHV7X4uHuFVfPrOmcs6m6Kr7hssr%2B1VZFcEZ%2FPdJkn1hOs8SXS%2FNFFgqt94PIZzZ3tdaL6Q5vo6piSzdy737pwsX1VyxUrF15iJ4uNkq%2Brbyg1Z%2BO8VsNC1UmcvORPRfxtPrfRwL2p%2FoA1eZp6Z%2FaGffoewaXcA%2FxBlKlQLfhQL%2FoPgBGP3qsA7IQS8qDVNswHKRSheDUvA3Q7MZoRcJMxlEygujn1QdyzfPfq3dEp%2FbXh5e5YXW2Ngfvza0ZF6UgFL%2FE0fTq4LBlvTE2qb%2FKuuzYSXVnjTfM1osvqMHVbm9950quIZlbqaL6YP7jk3kUtA0GnX2nvq53f3WoSsvEdDRnULgo2fN7lNZJgI8%2FVWi33c3bBZnGY05%2Bdm%2B3qc7fNmj4YGKLj2nfqFP%2Bg7jdDlxEV5XsJQZP6hYrS1l0VQr4c69Xueixp90gnZPmE5OF22j%2BSYEWHlZ0K%2FHgsh%2FZtsbh6h2DNRlvv6jJh9XaJaHCZDiUDKNTMkvb8vsqCyf3ZNdSmO0fa0Y4baJTtpbKzuVzeeSI7fCKr2Z0WypapnXJ4gnoWy3PoUIlIQ1TXdqhQJIXp9Wx5fYdpeWh2TY5D%2BYVyKd0jw3iumwi%2FBC3cEy4o83QlZnW79MrCgCjbhWXBlRZVVZZv4rIKpXC01HFlHdHLoeWVl6UVc%2FJ5uGm6CViW5mulYMk%2BHqNYr0AyUPivLg2oMs2MPqtuhHyRyiwvNJej1Br%2BfcLyoAyu8D9B7bgmzUqfFobF5nKnK4%2Bt8MPJkI%2FxHUNWk117jugWF%2BxazTAALQn6%2BUE9lhoI5ApGA%2FiuJOsrlNP28SVVuBVajXmircLel46w2bJS1Q0Ft0KDuikDFL%2F3pYrid1Q4FvofwRIo4R9h2ftSwc6jHAMqLcCql8YPHtlzGoByNXYN6v8hXnRaOhUvx0sVLCexwupGDR4NOYC7PePa5keIPACnuAdD7dEadRuTIiS6Lb7uskb381My5yjzF8lGCjBRqdwrWJCagfB3yCy7XT1i92hbcZ5Ci1FJkgYMDf6n%2BjspIsHFjJrTOdzSMuOa9DbDcj%2FnH9N9bIoGVgzHPWIQuFuYtaMRaq8eCKI0gEF6lPOZjBz3EEvaaxwSUT9U%2F8JbJZPJJLBLolH1La%2FRbF9AbC8JJjv%2FmMnssKjLRBJyqj9QXxNko0Ux%2FX79epfiXkm6fmKwF%2Fen1HLc6LxloXWKvGa5rVCVL83VuiPcDEX%2FK5pTXOxHfx6HHB0t2FI0qI2rCZFTrvPWU67zVuS%2FkTsLnc7IKhFg30e4FOkqNSfH5PtkmUy6Cpiv%2F36k2sbqCeCFNa%2BURpoY0sZoYmCgCr3qgZz6s8I0gP1bYiR%2BD79H56NOz0EVWCTy2%2FfffvSCCx59W7uRV9995eqrX8GLesOXNm360iZ%2BT%2FEl3uZqL%2BFyzSZ8XxpTiI%2FG0nkT4zznFZ0t4ipMz5v4q9ssqbdKUZt6u82knPCrt6PZwsnn0XySVnyPR1ZXAn72yx48bWJsu7apnI3Hy8bygUK5Js32qcytapqgmn95uexccj205vGgJ%2BeuOeG2SORmKZr%2FqKzcx9SFctMJdwMUFZDJITs7dnOp1EKZCxg304Cevyfya%2BvlKqv6aXK1qIj3imL%2BL6hL%2ByvUlFfE0VKZ7E8gBY3M%2F8VoJCFgizH1W6VyC76nH6b7jiibYVxUmVIEspry%2FLgZIlCeP11Z4zs%2FAwvVwtGFEut5S1JY4lfyT0N%2FevOLo%2BrUEgjcqc9IkGpQbv3iW7Co5b%2BKgjvpzYdH85PLcc4X21ouwEGl%2FS4qnUAvoSlXUUhR1eKr2VWFTB%2BGMl6FsiQsVD1R3urlAAIoSn7JQkmiVVCHSpCwDH%2FqPepXQ0Db77CJOAImohB%2BRPWr31ev5g%2FkE%2BzTa4lbvZo8xdWPffQu9yJTPCNB66s%2BzXoJt%2F0L6hSoCuBIoK8fnBGG87OoRckJpLqyWe4YbpGi50g0%2B3I3UD85Oa0fzubfoXxPLbW3FDWzigmyJeM0tQkax7PqTy80%2BUxfUHPlBZIRVNQ%2Bv0xRm8REKPoLmNr0%2BUo48v9GFbXPKylqQ2IKm00QddgyWGMROCTxdLB9nCY8P7j2DjlsV%2F%2Bmfr0C0r%2FNkeXbbpPlOTBBwT0mVz1zx9S%2FwJecBF9Wgv3p032iP2v4VSgfgW2G%2BHUEdEXU6iq4CtpLJfIN9XQG8dwa1VoO8XC2SrPDDyCOQptXgbcPvlAgBfxBoGwftQKeKFrNTASPt3pGGqDt%2FQRasn2kri%2BH6L80MJRsmVYJrAKyDItpJUy3%2F15WYIJqcJ9Q5N%2FLFJ4c3dc1URpWl9hW6mu50MUIelg4ucTPf15zs5DFo1c0VSp1tKB9jkwIyuM45kb%2BIP8gHed%2B6jO3v0KbIknzLy636E8KPTdCuUpB0wLo9JKnAO6pv0vS31EtBha%2FfJemkgLVVnd8KCk4qBTpQ5m7FbifBKrPJcq0pZAFVG%2FXbOFz%2BTcq2MLrcmV28Nmi%2FOHskh82bau0k8eWCaPijQPWQ5lUvslwVCfHkXBMIehqUgtDNLeauH1huvZTbYmw%2BluPjyWoNGEuxRLR7LK5fSyXFUyK7PURQv2v8D3XOt2NJ6liBbmPGOsakw1kbeOs%2B31Wm5qpH%2BiJWSzqdPr2O7zc2TmtnrzCig6bBd%2FvgQmzOlz0STWIlmZEQfupogOZFHUZ7EkUnMn0RrpIMqAgHRJAOjIJ3yGw1I%2FMAp9q9S3Q%2FclADNm1wEeO%2Bxbwg5OIYHZLY3ehG5lJk2xhco%2B6JWybpEVz2wrR6hZyD0QXZbeDVB%2BonmlimpkWprdAs4WEZDSQppsDlcdCBJJESIYFuAtUnC4GIF2C3Uu2Kv7L1bdz6FxtqxpG4TqQOqOUNAJ2HLvPWA2GgDy4O4vaDrtyl6P%2B1fAll%2BSyFcQ28GHqh7fvvf37udylf0fNwhzgz87Y%2Bcf5x9GnF6ygHu18sAbipWeF0YPBgp2GaKeQduxxdEr3SgbH1kvH7tvqSLhedomOvZyts2dw8acu3dY%2Ff%2BucuMtCuP%2Fe4zC4XnH3OLZ8ZuxTWxy8dJfU5dhDeKPSlJy5pn%2F%2B7u3XrJhmr9C5CuleGflGQocKnlAUaRKp0BAHV0ZwUt9VCqk6zYOgRIuMfePJzdmBdpPJ7%2F6B23%2Bf%2Bsp9NMDZevovvfYHG5dGPISQq1DojqNckchVrCcCYz%2FQ0hI0m3NKDRfkgsrnamo%2Bp0CAq1FyvC3a3Nak%2Fs5VX282x9Ufy3E39VAx6o7LpCvO2wK%2Bch9jNqpJCutcIOooKnYWtDK8gTRVYygRQfwgzKM5%2BjP2jOZdx3r32Py7rQUPOzAnoRs95NvRAR0qLGU11Taqu1bUYSzMcWjMEir067JQQHfIrLBHsrgv00%2FWavd8HRLMEEYFSW3HCSNQehnrHztKqHcDyo4VfZ6gPKCR%2BgufwA8GegxUEo4A%2Bgd0BASHiH6jYMLIsUdQJTs%2FC641KN4oCHWolCMLlMfIdtWKScjx7SM5LD9HnfmhrGI0S139UWfUnxgOXdJFW%2BAMcGjKr6eHAttHF5sUoeArYKDcxMSYcKA%2FxUDhPiEOEAPafSIUFArN0r24ynI91EPARDXvIDYyvqZaWeroBOUABQA%2FE%2BDXC7PWafDLQY2oiwpUEyj4RQtVlUp1GrM7In2p2A7VuiOW6otMiGOo5Mrp05ejVuTy6dNX%2Fk%2F7mybZQ0nUmfrbx3U4KueDnlHm5wdh8FFeKnoaKKh%2FTK18StOPhwG9Xo5mqXAxvw%2F79YQwwDR%2BnAKQQ4izVXioB84qcppWB7IqjU45z4CE17OvF1Dw%2BoTFqxtz8dxwtogBnF9MjIl%2Fin%2BK8s3hM9laIn0TiCbTAXL0T798bPXqx36p3chrv0O%2BGC9Xaj48Ecv8U8UEeBvUEsDlTepiU5OvlpeNGvpnKF0RvUooWhIjnx6GeBapXCQYTw9DNg6%2FOC3gZjp76oNTj9Kz6Jqobxb9NDqc08vcKReOpcsQV2K8InXFaXW3aI6Ofr1k48rp7CX7rx%2Bv1UKPsfvzQU0Kc83i2VdILmd2%2FyX55zT9luN2%2BCu4nKfwPcK%2FCvDVU%2BpHh8%2BLaldIf1fA5h3ndT6Fln9%2FW%2F9Ce1vndfvJtnPVO2xhm3qbafHVCN1X363UXHq9xuVD8OSD29Z8pZ5cZrern9cAdGW%2Fuib%2Fud%2BVK0L9a42r6C90kL8KzxwLQw9NkIQJL0ASU8M%2BVG0KsUdgdvpgP%2F6NqqP0%2FgHZFUfGEijZLHpiIgvV5%2FBltrj8Qd7XQd5p4P%2B7tJo30NMO6VGBwahSPMYiaaBYoLY6uEnciyhhh1Z%2FvvacG%2Frjpsvnpzs0B1Id6fmX8119l88XnOxe%2FuGrzzHcdu7UtY3%2B2vmXN5zUyj3ZcPl8p1sZSs6%2FnGXtwrV7Ka0XZdz83fwjjINpZWYw85lL8BRK4nGyIir2RiOsEyipuEcIakpGjWgBjLiHWOgj0Yi34gW1kKPxHt2Na5q%2Blwg1RdRSpFDNzosb44YJXnAfoEOpZW%2F%2F6u1lhYA6leevezbI26zNHO811M2dc5HFxpk4i1jPC0s21%2FBWW5DnPQbn2X1WK43%2FaM2n18DfSoybbNHijFpamzXI31eRibGUOxSu%2FlT96YZlq1Yt20DaSBuG6knw2eusHs5EPBfNmVvHKdaQzcDfz9ZsXmLDWGXy2U5OsYSsIn8CS12jQIyD12KKqZrLPy7mSPdICmd6WGHG8NDZkkHuE4h9TU8FpmUO%2FVjC%2FEinToFyoNDz2p9XD6g78WgQdPG7Z3R0T%2FZ5dTM9lsL8Ktek7szl2L%2BgQwGgwkZHc2g5Su7NvVqwGy2Ua4KSXUwt1X4PaM5paaEu6jQ5zVFyNabxvUksVt2T%2F4VeamYPlLtffdQsk%2B2sUTY%2FzDXl%2F05W53%2FBz9UK3p7LjapZ2ZxOm%2BUlZXrL3HHGqO8%2BwVroDaCTTnTxitMxmiAAYQzVJQH%2Bnj3oIHnPaN6Zq6sNSLjBl8tKgVr2mj%2F9CWi9dnKca8rBQBsd5R1tzVlgrl5pbnPw6kZclCr2CHxMnHohLz%2B3KRQokzALyeIKFU1TNCiayJdoHvDYe7K6mZLm8S3uJ9dojuaJ62%2FqN%2FtjQxnSnhnKPw%2BLNrLi8ZKyJ3x1YhiI1aNAtP6NzCGzYv3DmaGh%2FLvQZnt0evgIhTFV0kE%2FPYxAnOHhCQUZdCWY5JWJwMzlAGl1mpNbDU7yyGnhRMILsYhH3VRAijrPcBU8%2FCj1Y9NY6cnGVW0CjTLaz7E3epvaT%2FLtTV72Rs%2B0WVVmd0dz%2FMGTI5F0OsIviaqDlbbO5X6xT3PeXbXHRtf%2Fz%2Bfdka%2BeKPr8KF7IF4vBsT9MFPuPJMBTBMq9hQxXelQ%2Bbewnf18ap4Ib%2BmSMrtDU5zqlD8QANa5MBGh%2FOwOvSDfcV2d66mfEWsbGWmIz6nsyZDWQSmqmxDneYyvjHPmRXHZxeueyRGLZzvRioKnGto9nIPkibAJA16adcOZRQr1iAP3bUyBR7T4RgAWTKxhkCYFwshq%2B7iV9r0whk50cmRcTg4fy5x4OmmNkHndIA2%2BYuMbmE9dwGYB4KFTsvnDE6Ah47r%2FfE3AYI%2BoXADpkdlENcZ8OZEEf8FFGZNxMs6ZLpG3SUFLL7Q2kcFU%2FA%2FJsw%2BvWDa%2F7emewLaoeibaF1B9qUNnuqWK3%2BUfXYVL1v%2FomD15xxeDkPnXTOKSVcCbDGtOu0YQNpGAP7U1HU58UrqGu8xIbHtkQ3LVhb7Dx46ET3Ffcm1q0YcOizNmf3bC3VjWfAcpSv3MyTlgJ23FHQgmgvk%2Bgk8pL0mcCDOn08MDAQlf%2B%2FSlTZ1z12fnqntOhbOTL9%2FZdevbAPN%2Byby1f%2FuUtC%2Fixm8ZBo59LTXEW060hGrTDplNprWd58fwB%2Fb%2FE27BdS%2Fs7U%2BrGVCeQ46nzaw9QccnmZerGZZs3Yw9aVHt%2BKh6HN4ti6lxIhT%2FwahnZtWwzlY9QHQ2c79C%2BdxzvVDKy8GqKWQERO9YAKbpsDUTLdWV5dE8PVPjvj9pqw7ah%2FPFVtkit7aj6G5xY9mfJrCz1j1e0BcnPol4UjtrCdbahIVtd2HaURujnFJR8CuOuUUfhrGhgKKgjCYNSvCc1WKlEp8wHUaAYynFNyzZn%2B2MnYv36dbMDBTonl%2FT%2Fma5IKAyEGz%2B4eRnVtaX6tss2o34u8mWorFtuFgm4A6qK%2Fyp%2FgLEBVat5WnPDdKA574ubuFJ%2FIUfZ%2FY2Nt6mN%2BZNNTSTaeI56gKwkXerTe9DDHUw8%2FH35FY3nNN7GGuBKWhrV9ep%2B0k1WjNWVaHkW1yA%2BQHWNu8rtBw2a5YXuE40rs7%2FGA%2Bj09V3hA98yRnFPOGr8ltGlsFdD%2F7tRce3LH6Trcneuiy7K7J3khKu%2B3qUaXPWaX7T6%2FKfj9BX2eZq2XAcZT79u1ClJzUtHUqfqSMWBcZS43Ena0cUGLgpkKxB1QM%2B0Fxz10wgg6r5rltnFpH05pepUq3Y2HfYqeKRntmUFNz%2BXmcOs1H31U6cC6RTVLfCg7RNBF1UF2%2FwBgu0fFQtPEU1sSg3VcNsR7dWq3af87tUFn1l3ltXpaJxpNvtcZkH2WmMst3JqRpxUH%2BWC0E1qOGtP66s1MYv%2BVLu8%2FXFXvV%2FZbunYYBeVN64ls0ur6NzpV9xzlmQwB5qC4Tq70WC0tk8dWJXeHvkD0h9zJOM0vD86%2F1NJMaIAolctvlByferCsqOKDKceOfUu1PsmoFCamV5mCrMUOCi6V6FJosMF22AcrKJgQDVhfYh6tepp%2FlYgvnCEAbJQ1L0rOpajEmRcasMiPfxhgGoVo4rwreQpV6fUJHH2e8fa1s2c13Apl1b89a58ozdoap2sjgLN9uISl7P1DrulyeIkt0zr6JjWocoPOZsaXPb6jtqBblsgsaRre2xHi4nELm0MhG1%2Bx1SXwLpFi53b%2BaHRYo%2FIrbZtuWAKu5cSEXfybnnmUCaXGTpQr0xK2O2WWY76f%2BnAjNVf7nCZHU5XqIkTnpt6VtvsFlPXg1031g%2FVRdpkkyVpD7jnmax88QwDvg%2F66NnMRdRXTcGTmQc3cuINwN5IQqi0yzb%2BYFVHuVqI5s4ADfg5oE4ybDLd28mFSFmYvRoomsWXEdLU2Wl3GJy93ZNb%2Fd5gqmNaqJZSO1l6PVRy0nZIj%2F45EetjLguh1rLqR%2BSK0hO6NrsqcNX8zoUdjQYDJ7tb4os6%2Bi%2BY0qpY2AWlnLRDWdGFTfGY1gV0zNAtJ7pdo24se0D88AwLY%2FgZmE9iuP4V5v7CSR%2FRThaHLh%2BUeBkXwU6BC7lGOevK65udTv%2BtS%2FPfW7qj3ljTcj3b9OkbV85t8xsMj7Ddj7DGpthZKwKPvso%2Fc%2F1K9aLE12fMWLV1y1D9ua8lyJdWXr%2FbG%2BnoCFutf%2FmLILe39ITUV4igr3876fpX5g2zeB52sWnIL4fXHlgeUzOx5QfIvJQyrKQE9wHUqVq%2BPEaOrz0wVvNbJZVSfsuMzxN4l9PkedFzw9V5Dj%2BnzpgoT4ZxCxJfC5RWLc74YVHxKlExCYt0JAOMatREhHBSCAtSfod6x6Ls8HCWECLwXZ9nd5Dz1T24JUdWs6fU3%2B%2BfcnT49Qe%2BkBs%2BwdsMZgPXMp3U5S958snPP%2FEE7bvkOPCuTUDTUQ%2FUzirLhML9yPahoe1D5Fj5jWsaoveyP00PehdUAHk%2FseDVWsvDWXXXsyn%2F4wfpXc2V3%2FQxli3jl%2F5hj%2F83avSCfpTNxOEKLmTjxOEKuxgNlsQn0xgct724mhynupNW1Ph6o3RYS3%2F%2B2TJrzLlkFz%2Bip3qCHKf6eqW02QJLjBYuuj4sobhCWqa%2FYHGEHpcnumuWSOhxeaL7sOakNR6vvmo%2BYcfFA8UFXEPZf9UjyudIOyNwx%2Fi90DdsujS%2FFX2UAwvWSVK4NxaMhAGw3oowp%2Fuc8CTi7D2rBgZWwb%2F60faR7SPsEbjkXy4G0XaqhXPwe2cePjxjxuHD6ssQuR1fq6PF0E%2Bo2t1nePTn8TUmxz%2FA3crMoCc7egESuoTHYc7mYdg6etORoOhR7BBGD%2BqJopELrl4S6cJNRtEAsLP%2FOdvnJq0Wo0GolY2Et9VFB2Kf%2B4bZvVyxfOMz3WdFfSIryj6DwWghre7aQbdiDrkTL3A3vNDuDpk93HqXwam%2BbWmUJZfNn5ozKV5Pmmq8PF%2FjVY%2B2Tlk2M2RzSXKjmbQ4RZcQavEYrN%2F9rlXwtIQqzxQNMzPPfHYLvuPoO9TbT8bpGw5CQPGd%2BSyX%2FCyf0Vxjd2R9NmsunnXYa8xGHzn%2BsSfM5J0y0DZEXWWxkXjcR75KBLNLHi7XvX2G8VOrf4Ykg0AMdBESIpo7MgAfyakA6rkqpI6UjNs0px7cMV%2BD5BF49Tez1VGnYmq0WIijp985m4Sn2gJR9b07riPPFo97OYbUZbxJCpot7H%2FlpZBicglCPN7WOfJkcHqc3ElWqvvz%2F1E6bIQrG%2Btz6WkM1SM9FBTR7FSs8KyBBytSmNEoquJNFN5EQyTiCrnKDx1h58yxCepPHU5nxGoxEQeeOZi2m80DxNxncVhr6BmEfUarxejw%2BWSiHhWk19bSY7aKR5MsteblJpfTLtjimBouXsm3d3djjYM%2BwEW0El9dM%2FueVRWIsXwe43R7SgbVZqrnqoJ1X%2FkuF7pcgf8duv4q6vayV5U9zMV91GxO59UUjW8rHV6u799WzKMT7umRCXbYUKM%2BfoaCcwgaoqZUtmodV3p%2BX7akb4dnU9B9La38RPFUG2SCC90tVA4XwEFhyOpZZrUCsgWYHsczLFBBVGNtstoN1bw0Z%2BO4fYIbvZVt4EUcJEKOhHeincWqONw%2Bq6w5Go%2BWGOSR7LhKV%2BKBqbBPpfUvOf9QqkpDyVhBeyyZQGMsdA5FBUqvFMtUyGq9vjnsAJU4UcrxldP1CCaofyDkSAifoP5QwWx%2BSyUGxp75BzGAvtG7uQ38LehlyEQMeh0TeE6Bm7tYdXqdkt0uOb3kfYlNwmOdDyacOq%2FqlFo1v%2BPTmTi3E%2FglC9W11b34A22zmLzvb231Q0L2Bgg60OTW4YdstO%2BYOJnO38TtpH7zy9ymokWyA79qlVSn38HtpFlImFnhu3b4boNWXklOXV0Iwo7lQ1hrZyPFcwtjwFP7iEKSHSSJw509kh8kj6pr%2BH1jR7km9vcvqN9657vffefkv%2BfKxge1X%2B7RdjYUPIESN7gTvRkB%2FRMYtEkaVkdHApmdBPpnKmz0n1xSWFOyVIuLrinZwpoCRe6kyiVZoHX088F%2BUX4%2BWKS4iBTP0IWxGtZgOdMaV4KTayqHQF%2FVihBwTbgDXTCmKoOBJeNhwJMzEVjtjIFLuU38fPR7hqNG1JS7g%2FqRCuy3vmQ3W9Vu8qbVbP%2BSzazGRJH83MzP90Ck2m31mMjP8TiLn5uwD2Ugr2PFvPQjB5BnSJvQxGQZZEB%2BLopqzGzDbMmbkAPkZVJjeO5FzOSBKCgJze2ZS4Gemc9twrwY6u9H61iUQTcRvtdT9RW3tRxAWwFs2tcuJRnI6xjmBdWjbgFNRHMHiF1uHYBfUR%2Fut5Ug2jXAaT96%2B9RH%2FFToRwIzGbKmVJ1AZQnoabSB1yyIg7ByAridHApPMjyw0OiV6RjSbCuzwLAvFizBliWJua1tsuAgvNPbmljYbpt8lkWam7b3XZiOiKJskMOtmfScnsbPW208knwjuXrXK4Q1iKIgNyYXXDVT9C2Ye%2F78GQ5BEEXfFdde2RwauOysdJNL5AzCy84ard%2FnGAVN8alecnFdgu5Gbd5DJTL%2BhHZK0vApVy3OfU8XTSJg1TlssivsPYUlIqvn66PzrVTymCc4wgF6SDNR0pDf%2B9Gp%2BVnsUH5WtpHYsuhOaey8zdwLN47V8MTbm78g687%2BP3cx6tcAeNpjYGRgYGBk8s0%2FzBIfz2%2FzlUGeZQNQhOFCWfF0GP0%2F8P8c1jusIkAuBwMTSBQAYwQM6HjaY2BkYGAV%2Bd8KJgP%2FXWG9wwAUQQGLAYqPBl942n1TvUoDQRCe1VM8kWARjNrZGIurBAsRBIuA2vkAFsJiKTYW4guIjT5ARMgTxCLoA1hcb5OgDyGHrY7f7M65e8fpLF%2B%2B2W%2FnZ2eTmGfaIJi5I0qGDlZZcD51QzTTJirZPAI9JIwVA%2BwT8L5nOdMaV0AuMJ%2BicRHq8of6LSD18fzq8ds7xjpwBnQiSI9V5QVl6NwPvgM15NXn%2FAtWZyj3W0HjEXitOc%2FdIdbetPdFTZ%2BP6t%2BX7xU0%2Fk6GJtOe1%2FB3arN0%2Fpmz1J4UZc%2BD6ExwjD7vioeGd5HvhvU%2BR%2BDZcGZ6YBPNfAi0G97iBPwFXqph2cW8%2BD7kjMfwtinHb6kLb6Wygk3cZytSEoptGrlScdHtLPeri1JKueACMZfU1ViJG1Sq5E43dIt7SZZFl1zuRhb%2FGOs44xFVDbrJzB5tYs35OmaXTrEmkv0DajnMWQB42mNgYNCCwk0MLxheMPrhgUuY2JiUmOqY2pjWMD1hdmPOY%2B5hPsLCwWLEksSyiOUOawzrLrYiti%2FsCuxJ7Kc45DiSOPZxmnG2cG7jvMelweXDNYXrEbcBdxf3KR4OngheLd443g18fHwZfFv4NfiX8T8TEBIIEZggsEpQS7BMcJsQl5CFUI3QAWEp4RLhCyJaIldEbURXiJ4RYxEzE0sQ2yD2TzxIfJkEk4SeRJbENIkNEg8k%2FklqSGZITpE8InlL8p2UmVSG1A6pb9Jx0ltkjGSmyDySlZF1kc2RnSK7R%2FaZnJ5cmdwB%2BST5SwpuCvsUjRTLFHcoOShNU9qhzKespGyhXKV8SPmBCpOKgUqcyjSVR6omqgmqe9RE1OrUnqkHqO9R%2F6FholGgsUZzgeYZLTUtL60WbS7tKh0OnQydXTpvdGV0O3S%2F6Gnopekt0ruhz6fvpl%2Bnv0n%2Fh4GdQYvBJUMhwwTDdYYvjFSM4oxmGd0zVjK2M84w3mYiYZJgssLkkqmO6TzTF2Z2ZjVmd8ylzP3MJ5lfsRCwcLJoszhhyWXpZdlhecZKxirHapbVPesF1ndsJGwCbBbZ%2FLA1sn1jZ2XXY3fFXsM%2Bz36V%2FS8HD4cGh2OOTI51ThJOK5zeOUs4OzmXOS9wPuUi4JLgss7lm2uU6zY3NrcSty1u39zN3Mvct7l%2F8xDzMPLw88jyaPM44ynkaeEZ59niucqLyUvPKwgAn3OqOQAAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAHjarZK9TgJBEMf%2Fd6CRaAyRhMLqCgsbL4ciglTGRPEjSiSKlnLycXJ86CEniU%2FhM9jYWPgIFkYfwd6nsDD%2Bd1mBIIUx3mZnfzs3MzszuwDCeIYG8UUwQxmAFgxxPeeuyxrmcaNYxzTuFAewi0fFQSTxqXgM11pC8TgS2oPiCUS1d8Uh8ofiSczpYcVT5LjiCPlY8Qui%2BncOr7D02y6%2FBTCrP%2Fm%2Bb5bdTrPi2I26Z9qNGtbRQBMdXMJBGRW0YOCecxEWYoiTCvxrYBunqHPdoX2bLOyrMKlZg8thDETw5K7Itci1TXlGy0124QRZZLDFU%2FexhxztMozlosTpMH6ZPge0L%2BOKGnFKjJ4WRwppHPL0PP3SI2P9jLQwFOu3GRhDfkeyDo%2F%2FG7IHgzllZQxLdquvrdCyBVvat3seJlYo06gxapUxhU2JWnFygR03sSxnEkvcpf5Y5eibGq315TDp7fKWm8zbUVl71Aqq%2FZtNnlkWmLnQtno9ycvXYbA6W2pF3aKfCayyC0Ja7Fr%2FPW70%2FHO4YM0OKxFvzf0C1MyPjwAAeNpt1VWUU2cYRuHsgxenQt1d8%2F3JOUnqAyR1d%2FcCLQVKO22pu7tQd3d3d3d3d3cXmGzumrWy3pWLs%2FNdPDMpZaWu1783l1Lpf14MnfzO6FbqVupfGkD30iR60JNe9KYP09CXfvRnAAMZxGCGMG3pW6ZjemZgKDMyEzMzC7MyG7MzB3MyF3MzD%2FMyH%2FOzAAuyEAuzCIuyGIuzBGWCRIUqOQU16jRYkqVYmmVYluVYng6GMZwRNGmxAiuyEiuzCquyGquzBmuyFmuzDuuyHuuzARuyERuzCZuyGZuzBVuyFVuzDduyHdszklGMZgd2ZAw7MZZxjGdnJrALu9LJbuzOHkxkT%2FZib%2FZhX%2FZjfw7gQA7iYA7hUA7jcI7gSI7iaI7hWI7jeE7gRE7iZE5hEqdyGqdzBmdyFmdzDudyHudzARdyERdzCZdyGZdzBVdyFVdzDddyHddzAzdyEzdzC7dyG7dzB3dyF3dzD%2FdyH%2FfzAA%2FyEA%2FzCI%2FyGI%2FzBE%2FyFE%2FzDM%2FyHM%2FzAi%2FyEi%2FzCq%2FyGq%2FzBm%2FyFm%2FzDu%2FyHu%2FzAR%2FyER%2FzCZ%2FyGZ%2FzBV%2FyFV%2FzDd%2FyHd%2FzAz%2FyEz%2FzC7%2FyG7%2FzB3%2FyF3%2FzD%2F9mpYwsy7pl3bMeWc%2BsV9Y765NNk%2FXN%2BmX9swHZwGxQNjgb0nPkmInjR0V7Uq%2FOsaPL5Y7ylE3l8tQNN7kVt%2BrmbuHW3LrbcDvam1rtzVvdm50TxrU%2FDBvRtZUY1rV5a3jXFn550Wo%2FXDNWK3dFmh7X9LimxzU9qulRTY9qelTTo5rlKLt2wk7YiaprL%2ByFvbAX9pK9ZC%2FZS%2FaSvWQv2Uv2kr1kr2KvYq9ir2KvYq9ir2KvYq9ir2Kvaq9qr2qvaq9qr2qvaq9qr2qvai%2B3l9vL7eX2cnu5vdxebi%2B3l9sr7BV2CjuFncJOYaewU9gp7NTs1LyrZq9mr2avZq9mr2avZq9mr26vbq9ur26vbq9ur26vbq9ur26vYa9hr2GvYa9hr2GvYa%2FR7oXuQ%2Feh%2B2j%2FUU7e3C3cqc%2FV3fYdof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D92H7kP3ofvQfeg%2BdB%2B6D92H7kP3ofvQfRT29B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6D%2F2H%2FkP%2Fof%2FQf%2Bg%2F9B%2F6j6nuG3Ya7U5q%2F0hN3nCTW3Grbu4Wrs%2FrP%2Bk%2F6T%2FpP%2Bk%2F6T%2FpP%2Bk%2B6T7pPek86TzpPOk86TzpOuk66TrpOuk66TrpOlWmPu%2F36zrpOuk66TrpOuk66TrpOvl%2FPek76TvpO%2Bk76TvpO%2Bk76TvpO%2Bk76TvpO7V9t%2BqtVs%2FOaOURU6bo6PgPt6rZbwAAAAABVFDDFwAA%29%20format%28%27woff%27%29%2Curl%28data%3Aapplication%2Ffont%2Dsfnt%3Bbase64%2CAAEAAAAPAIAAAwBwRkZUTW0ql9wAAAD8AAAAHEdERUYBRAAEAAABGAAAACBPUy8yZ7lriQAAATgAAABgY21hcNqt44EAAAGYAAAGcmN2dCAAKAL4AAAIDAAAAARnYXNw%2F%2F8AAwAACBAAAAAIZ2x5Zn1dwm8AAAgYAACUpGhlYWQFTS%2FYAACcvAAAADZoaGVhCkQEEQAAnPQAAAAkaG10eNLHIGAAAJ0YAAADdGxvY2Fv%2B5XOAACgjAAAAjBtYXhwAWoA2AAAorwAAAAgbmFtZbMsoJsAAKLcAAADonBvc3S6o%2BU1AACmgAAACtF3ZWJmwxhUUAAAsVQAAAAGAAAAAQAAAADMPaLPAAAAANB2gXUAAAAA0HZzlwABAAAADgAAABgAAAAAAAIAAQABARYAAQAEAAAAAgAAAAMEiwGQAAUABAMMAtAAAABaAwwC0AAAAaQAMgK4AAAAAAUAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAFVLV04AQAAg%2F%2F8DwP8QAAAFFAB7AAAAAQAAAAAAAAAAAAAAIAABAAAABQAAAAMAAAAsAAAACgAAAdwAAQAAAAAEaAADAAEAAAAsAAMACgAAAdwABAGwAAAAaABAAAUAKAAgACsAoAClIAogLyBfIKwgvSISIxsl%2FCYBJvonCScP4APgCeAZ4CngOeBJ4FngYOBp4HngieCX4QnhGeEp4TnhRuFJ4VnhaeF54YnhleGZ4gbiCeIW4hniIeIn4jniSeJZ4mD4%2F%2F%2F%2FAAAAIAAqAKAApSAAIC8gXyCsIL0iEiMbJfwmASb6JwknD%2BAB4AXgEOAg4DDgQOBQ4GDgYuBw4IDgkOEB4RDhIOEw4UDhSOFQ4WDhcOGA4ZDhl%2BIA4gniEOIY4iHiI%2BIw4kDiUOJg%2BP%2F%2F%2F%2F%2Fj%2F9r%2FZv9i4Ajf5N%2B132nfWd4F3P3aHdoZ2SHZE9kOIB0gHCAWIBAgCiAEH%2F4f%2BB%2F3H%2FEf6x%2FlH3wfdh9wH2ofZB9jH10fVx9RH0sfRR9EHt4e3B7WHtUezh7NHsUevx65HrMIFQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAACjAAAAAAAAAA1AAAAIAAAACAAAAADAAAAKgAAACsAAAAEAAAAoAAAAKAAAAAGAAAApQAAAKUAAAAHAAAgAAAAIAoAAAAIAAAgLwAAIC8AAAATAAAgXwAAIF8AAAAUAAAgrAAAIKwAAAAVAAAgvQAAIL0AAAAWAAAiEgAAIhIAAAAXAAAjGwAAIxsAAAAYAAAl%2FAAAJfwAAAAZAAAmAQAAJgEAAAAaAAAm%2BgAAJvoAAAAbAAAnCQAAJwkAAAAcAAAnDwAAJw8AAAAdAADgAQAA4AMAAAAeAADgBQAA4AkAAAAhAADgEAAA4BkAAAAmAADgIAAA4CkAAAAwAADgMAAA4DkAAAA6AADgQAAA4EkAAABEAADgUAAA4FkAAABOAADgYAAA4GAAAABYAADgYgAA4GkAAABZAADgcAAA4HkAAABhAADggAAA4IkAAABrAADgkAAA4JcAAAB1AADhAQAA4QkAAAB9AADhEAAA4RkAAACGAADhIAAA4SkAAACQAADhMAAA4TkAAACaAADhQAAA4UYAAACkAADhSAAA4UkAAACrAADhUAAA4VkAAACtAADhYAAA4WkAAAC3AADhcAAA4XkAAADBAADhgAAA4YkAAADLAADhkAAA4ZUAAADVAADhlwAA4ZkAAADbAADiAAAA4gYAAADeAADiCQAA4gkAAADlAADiEAAA4hYAAADmAADiGAAA4hkAAADtAADiIQAA4iEAAADvAADiIwAA4icAAADwAADiMAAA4jkAAAD1AADiQAAA4kkAAAD%2FAADiUAAA4lkAAAEJAADiYAAA4mAAAAETAAD4%2FwAA%2BP8AAAEUAAH1EQAB9REAAAEVAAH2qgAB9qoAAAEWAAYCCgAAAAABAAABAAAAAAAAAAAAAAAAAAAAAQACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAEAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAL4AAAAAf%2F%2FAAIAAgAoAAABaAMgAAMABwAusQEALzyyBwQA7TKxBgXcPLIDAgDtMgCxAwAvPLIFBADtMrIHBgH8PLIBAgDtMjMRIRElMxEjKAFA%2Fujw8AMg%2FOAoAtAAAQBkAGQETARMAFsAAAEyFh8BHgEdATc%2BAR8BFgYPATMyFhcWFRQGDwEOASsBFx4BDwEGJi8BFRQGBwYjIiYvAS4BPQEHDgEvASY2PwEjIiYnJjU0Nj8BPgE7AScuAT8BNhYfATU0Njc2AlgPJgsLCg%2BeBxYIagcCB57gChECBgMCAQIRCuCeBwIHaggWB54PCikiDyYLCwoPngcWCGoHAgee4AoRAgYDAgECEQrgngcCB2oIFgeeDwopBEwDAgECEQrgngcCB2oIFgeeDwopIg8mCwsKD54HFghqBwIHnuAKEQIGAwIBAhEK4J4HAgdqCBYHng8KKSIPJgsLCg%2BeBxYIagcCB57gChECBgAAAAABAAAAAARMBEwAIwAAATMyFhURITIWHQEUBiMhERQGKwEiJjURISImPQE0NjMhETQ2AcLIFR0BXhUdHRX%2Boh0VyBUd%2FqIVHR0VAV4dBEwdFf6iHRXIFR3%2BohUdHRUBXh0VyBUdAV4VHQAAAAABAHAAAARABEwARQAAATMyFgcBBgchMhYPAQ4BKwEVITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ASYnASY2OwEyHwEWMj8BNgM5%2BgoFCP6UBgUBDAoGBngGGAp9ARMKBgZ4BhgKfQ8LlAsP%2Fu0KBgZ4BhgKff7tCgYGeAYYCnYFBv6UCAUK%2BhkSpAgUCKQSBEwKCP6UBgwMCKAIDGQMCKAIDK4LDw8LrgwIoAgMZAwIoAgMDAYBbAgKEqQICKQSAAABAGQABQSMBK4AOwAAATIXFhcjNC4DIyIOAwchByEGFSEHIR4EMzI%2BAzUzBgcGIyInLgEnIzczNjcjNzM%2BATc2AujycDwGtSM0QDkXEys4MjAPAXtk%2FtQGAZZk%2FtQJMDlCNBUWOUA0I64eYmunznYkQgzZZHABBdpkhhQ%2BH3UErr1oaS1LMCEPCx4uTzJkMjJkSnRCKw8PIjBKK6trdZ4wqndkLzVkV4UljQAAAgB7AAAETASwAD4ARwAAASEyHgUVHAEVFA4FKwEHITIWDwEOASsBFRQGKwEiJj0BISImPwE%2BATsBNSEiJj8BPgE7ARE0NhcRMzI2NTQmIwGsAV5DakIwFgwBAQwWMEJqQ7ICASAKBgZ4BhgKigsKlQoP%2FvUKBgZ4BhgKdf71CgYGeAYYCnUPtstALS1ABLAaJD8yTyokCwsLJCpQMkAlGmQMCKAIDK8LDg8KrwwIoAgMZAwIoAgMAdsKD8j%2B1EJWVEAAAAEAyAGQBEwCvAAPAAATITIWHQEUBiMhIiY9ATQ2%2BgMgFR0dFfzgFR0dArwdFcgVHR0VyBUdAAAAAgDIAAAD6ASwACUAQQAAARUUBisBFRQGBx4BHQEzMhYdASE1NDY7ATU0NjcuAT0BIyImPQEXFRQWFx4BFAYHDgEdASE1NCYnLgE0Njc%2BAT0BA%2BgdFTJjUVFjMhUd%2FOAdFTJjUVFjMhUdyEE3HCAgHDdBAZBBNxwgIBw3QQSwlhUdZFuVIyOVW5YdFZaWFR2WW5UjI5VbZB0VlshkPGMYDDI8MgwYYzyWljxjGAwyPDIMGGM8ZAAAAAEAAAAAAAAAAAAAAAAxAAAB%2F%2FIBLATCBEEAFgAAATIWFzYzMhYVFAYjISImNTQ2NyY1NDYB9261LCwueKqqeP0ST3FVQgLYBEF3YQ6teHmtclBFaw4MGZnXAAAAAgAAAGQEsASvABoAHgAAAB4BDwEBMzIWHQEhNTQ2OwEBJyY%2BARYfATc2AyEnAwL2IAkKiAHTHhQe%2B1AeFB4B1IcKCSAkCm9wCXoBebbDBLMTIxC7%2FRYlFSoqFSUC6rcQJBQJEJSWEPwecAIWAAAAAAQAAABkBLAETAALABcAIwA3AAATITIWBwEGIicBJjYXARYUBwEGJjURNDYJATYWFREUBicBJjQHARYGIyEiJjcBNjIfARYyPwE2MhkEfgoFCP3MCBQI%2FcwIBQMBCAgI%2FvgICgoDjAEICAoKCP74CFwBbAgFCvuCCgUIAWwIFAikCBQIpAgUBEwKCP3JCAgCNwgK2v74CBQI%2FvgIBQoCJgoF%2FvABCAgFCv3aCgUIAQgIFID%2BlAgKCggBbAgIpAgIpAgAAAAD%2F%2FD%2F8AS6BLoACQANABAAAAAyHwEWFA8BJzcTAScJAQUTA%2BAmDpkNDWPWXyL9mdYCZv4f%2FrNuBLoNmQ4mDlzWYP50%2FZrWAmb8anABTwAAAAEAAAAABLAEsAAPAAABETMyFh0BITU0NjsBEQEhArz6FR384B0V%2Bv4MBLACiv3aHRUyMhUdAiYCJgAAAAEADgAIBEwEnAAfAAABJTYWFREUBgcGLgE2NzYXEQURFAYHBi4BNjc2FxE0NgFwAoUnMFNGT4gkV09IQv2oWEFPiCRXT0hCHQP5ow8eIvzBN1EXGSltchkYEAIJm%2F2iKmAVGilucRoYEQJ%2FJioAAAACAAn%2F%2BAS7BKcAHQApAAAAMh4CFQcXFAcBFgYPAQYiJwEGIycHIi4CND4BBCIOARQeATI%2BATQmAZDItoNOAQFOARMXARY7GikT%2Fu13jgUCZLaDTk6DAXKwlFZWlLCUVlYEp06DtmQCBY15%2Fu4aJRg6FBQBEk0BAU6Dtsi2g1tWlLCUVlaUsJQAAQBkAFgErwREABkAAAE%2BAh4CFRQOAwcuBDU0PgIeAQKJMHt4dVg2Q3mEqD4%2Bp4V4Qzhadnh5A7VESAUtU3ZAOXmAf7JVVbJ%2FgHk5QHZTLQVIAAAAAf%2FTAF4EewSUABgAAAETNjIXEyEyFgcFExYGJyUFBiY3EyUmNjMBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAyABYRMT%2Fp8RDPn%2BbxQLDPb3DAsUAZD7DBEAAv%2FTAF4EewSUABgAIgAAARM2MhcTITIWBwUTFgYnJQUGJjcTJSY2MwUjFwc3Fyc3IycBl4MHFQeBAaUVBhH%2BqoIHDxH%2Bqf6qEQ8Hgv6lEQYUAfPwxUrBw0rA6k4DIAFhExP%2BnxEM%2Bf5vFAsM9vcMCxQBkPsMEWSO4ouM5YzTAAABAAAAAASwBLAAJgAAATIWHQEUBiMVFBYXBR4BHQEUBiMhIiY9ATQ2NyU%2BAT0BIiY9ATQ2Alh8sD4mDAkBZgkMDwr7ggoPDAkBZgkMJj6wBLCwfPouaEsKFwbmBRcKXQoPDwpdChcF5gYXCktoLvp8sAAAAA0AAAAABLAETAAPABMAIwAnACsALwAzADcARwBLAE8AUwBXAAATITIWFREUBiMhIiY1ETQ2FxUzNSkBIgYVERQWMyEyNjURNCYzFTM1BRUzNSEVMzUFFTM1IRUzNQchIgYVERQWMyEyNjURNCYFFTM1IRUzNQUVMzUhFTM1GQR%2BCg8PCvuCCg8PVWQCo%2F3aCg8PCgImCg8Pc2T8GGQDIGT8GGQDIGTh%2FdoKDw8KAiYKDw%2F872QDIGT8GGQDIGQETA8K%2B%2BYKDw8KBBoKD2RkZA8K%2FqIKDw8KAV4KD2RkyGRkZGTIZGRkZGQPCv6iCg8PCgFeCg9kZGRkZMhkZGRkAAAEAAAAAARMBEwADwAfAC8APwAAEyEyFhURFAYjISImNRE0NikBMhYVERQGIyEiJjURNDYBITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NjIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR39vQGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHQRMHRX%2BcBUdHRUBkBUdHRX%2BcBUdHRUBkBUd%2FagdFf5wFR0dFQGQFR0dFf5wFR0dFQGQFR0AAAkAAAAABEwETAAPAB8ALwA%2FAE8AXwBvAH8AjwAAEzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2ATMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYhMzIWHQEUBisBIiY9ATQ2MsgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR389cgVHR0VyBUdHQGlyBUdHRXIFR0dAaXIFR0dFcgVHR0ETB0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHf5wHRXIFR0dFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHR0VyBUdHRXIFR0ABgAAAAAEsARMAA8AHwAvAD8ATwBfAAATMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYyyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHf6FyBUdHRXIFR0dAaUCvBUdHRX9RBUdHQRMHRXIFR0dFcgVHR0VyBUdHRXIFR3%2BcB0VyBUdHRXIFR0dFcgVHR0VyBUd%2FnAdFcgVHR0VyBUdHRXIFR0dFcgVHQAAAAABACYALAToBCAAFwAACQE2Mh8BFhQHAQYiJwEmND8BNjIfARYyAdECOwgUB7EICPzxBxUH%2FoAICLEHFAirBxYB3QI7CAixBxQI%2FPAICAGACBQHsQgIqwcAAQBuAG4EQgRCACMAAAEXFhQHCQEWFA8BBiInCQEGIi8BJjQ3CQEmND8BNjIXCQE2MgOIsggI%2FvUBCwgIsggVB%2F70%2FvQHFQiyCAgBC%2F71CAiyCBUHAQwBDAcVBDuzCBUH%2FvT%2B9AcVCLIICAEL%2FvUICLIIFQcBDAEMBxUIsggI%2FvUBDAcAAwAX%2F%2BsExQSZABkAJQBJAAAAMh4CFRQHARYUDwEGIicBBiMiLgI0PgEEIg4BFB4BMj4BNCYFMzIWHQEzMhYdARQGKwEVFAYrASImPQEjIiY9ATQ2OwE1NDYBmcSzgk1OASwICG0HFQj%2B1HeOYrSBTU2BAW%2BzmFhYmLOZWFj%2BvJYKD0sKDw8KSw8KlgoPSwoPDwpLDwSZTYKzYo15%2FtUIFQhsCAgBK01NgbTEs4JNWJmzmFhYmLOZIw8KSw8KlgoPSwoPDwpLDwqWCg9LCg8AAAMAF%2F%2FrBMUEmQAZACUANQAAADIeAhUUBwEWFA8BBiInAQYjIi4CND4BBCIOARQeATI%2BATQmBSEyFh0BFAYjISImPQE0NgGZxLOCTU4BLAgIbQcVCP7Ud45itIFNTYEBb7OYWFiYs5lYWP5YAV4KDw8K%2FqIKDw8EmU2Cs2KNef7VCBUIbAgIAStNTYG0xLOCTViZs5hYWJizmYcPCpYKDw8KlgoPAAAAAAIAFwAXBJkEsAAPAC0AAAEzMhYVERQGKwEiJjURNDYFNRYSFRQOAiIuAjU0EjcVDgEVFB4BMj4BNTQmAiZkFR0dFWQVHR0BD6fSW5vW6tabW9KnZ3xyxejFcnwEsB0V%2FnAVHR0VAZAVHeGmPv7ZuHXWm1tbm9Z1uAEnPqY3yHh0xXJyxXR4yAAEAGQAAASwBLAADwAfAC8APwAAATMyFhURFAYrASImNRE0NgEzMhYVERQGKwEiJjURNDYBMzIWFREUBisBIiY1ETQ2BTMyFh0BFAYrASImPQE0NgQBlgoPDwqWCg8P%2Ft6WCg8PCpYKDw%2F%2B3pYKDw8KlgoPD%2F7elgoPDwqWCg8PBLAPCvuCCg8PCgR%2BCg%2F%2BcA8K%2FRIKDw8KAu4KD%2F7UDwr%2BPgoPDwoBwgoPyA8K%2BgoPDwr6Cg8AAAAAAgAaABsElgSWAEcATwAAATIfAhYfATcWFwcXFh8CFhUUDwIGDwEXBgcnBwYPAgYjIi8CJi8BByYnNycmLwImNTQ%2FAjY%2FASc2Nxc3Nj8CNhIiBhQWMjY0AlghKSYFMS0Fhj0rUAMZDgGYBQWYAQ8YA1AwOIYFLDIFJisfISkmBTEtBYY8LFADGQ0ClwYGlwINGQNQLzqFBS0xBSYreLJ%2BfrJ%2BBJYFmAEOGQJQMDmGBSwxBiYrHiIoJgYxLAWGPSxRAxkOApcFBZcCDhkDUTA5hgUtMAYmKiAhKCYGMC0Fhj0sUAIZDgGYBf6ZfrF%2BfrEABwBkAAAEsAUUABMAFwAhACUAKQAtADEAAAEhMhYdASEyFh0BITU0NjMhNTQ2FxUhNQERFAYjISImNREXETMRMxEzETMRMxEzETMRAfQBLCk7ARMKD%2Fu0DwoBEzspASwBLDsp%2FUQpO2RkZGRkZGRkBRQ7KWQPCktLCg9kKTtkZGT%2B1PzgKTs7KQMgZP1EArz9RAK8%2FUQCvP1EArwAAQAMAAAFCATRAB8AABMBNjIXARYGKwERFAYrASImNREhERQGKwEiJjURIyImEgJsCBUHAmAIBQqvDwr6Cg%2F%2B1A8K%2BgoPrwoFAmoCYAcH%2FaAICv3BCg8PCgF3%2FokKDw8KAj8KAAIAZAAAA%2BgEsAARABcAAAERFBYzIREUBiMhIiY1ETQ2MwEjIiY9AQJYOykBLB0V%2FOAVHR0VA1L6FR0EsP5wKTv9dhUdHRUETBUd%2FnAdFfoAAwAXABcEmQSZAA8AGwAwAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBTMyFhURMzIWHQEUBisBIiY1ETQ2AePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnL%2BfDIKD68KDw8K%2BgoPDwSZW5vW6tabW1ub1urWmztyxejFcnLF6MUNDwr%2B7Q8KMgoPDwoBXgoPAAAAAAL%2FnAAABRQEsAALAA8AACkBAyMDIQEzAzMDMwEDMwMFFP3mKfIp%2FeYBr9EVohTQ%2Fp4b4BsBkP5wBLD%2B1AEs%2FnD%2B1AEsAAAAAAIAZAAABLAEsAAVAC8AAAEzMhYVETMyFgcBBiInASY2OwERNDYBMzIWFREUBiMhIiY1ETQ2OwEyFh0BITU0NgImyBUdvxQLDf65DSYN%2FrkNCxS%2FHQJUMgoPDwr75goPDwoyCg8DhA8EsB0V%2Fj4XEP5wEBABkBAXAcIVHfzgDwr%2BogoPDwoBXgoPDwqvrwoPAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUzMhYVETMyFgcDBiInAyY2OwERNDYB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv58lgoPiRUKDd8NJg3fDQoViQ8EmVub1urWm1tbm9bq1ps7csXoxXJyxejFDQ8K%2Fu0XEP7tEBABExAXARMKDwAAAAMAFwAXBJkEmQAPABsAMQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiUTFgYrAREUBisBIiY1ESMiJjcTNjIB4%2BrWm1tbm9bq1ptbW5sBv%2BjFcnLF6MVycv7n3w0KFYkPCpYKD4kVCg3fDSYEmVub1urWm1tbm9bq1ps7csXoxXJyxejFAf7tEBf%2B7QoPDwoBExcQARMQAAAAAAIAAAAABLAEsAAZADkAABMhMhYXExYVERQGBwYjISImJyY1EzQ3Ez4BBSEiBgcDBhY7ATIWHwEeATsBMjY%2FAT4BOwEyNicDLgHhAu4KEwO6BwgFDBn7tAweAgYBB7kDEwKX%2FdQKEgJXAgwKlgoTAiYCEwr6ChMCJgITCpYKDAJXAhIEsA4K%2FXQYGf5XDB4CBggEDRkBqRkYAowKDsgOC%2F4%2BCw4OCpgKDg4KmAoODgsBwgsOAAMAFwAXBJkEmQAPABsAJwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgUXFhQPAQYmNRE0NgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJy%2Fov9ERH9EBgYBJlbm9bq1ptbW5vW6tabO3LF6MVycsXoxV2%2BDCQMvgwLFQGQFQsAAQAXABcEmQSwACgAAAE3NhYVERQGIyEiJj8BJiMiDgEUHgEyPgE1MxQOAiIuAjQ%2BAjMyA7OHBwsPCv6WCwQHhW2BdMVycsXoxXKWW5vW6tabW1ub1nXABCSHBwQL%2FpYKDwsHhUxyxejFcnLFdHXWm1tbm9bq1ptbAAAAAAIAFwABBJkEsAAaADUAAAE3NhYVERQGIyEiJj8BJiMiDgEVIzQ%2BAjMyEzMUDgIjIicHBiY1ETQ2MyEyFg8BFjMyPgEDs4cHCw8L%2FpcLBAeGboF0xXKWW5vWdcDrllub1nXAnIYHCw8LAWgKBQiFboJ0xXIEJIcHBAv%2BlwsPCweGS3LFdHXWm1v9v3XWm1t2hggFCgFoCw8LB4VMcsUAAAAKAGQAAASwBLAADwAfAC8APwBPAF8AbwB%2FAI8AnwAAEyEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0NgczMhYdARQGKwEiJj0BNDYzITIWHQEUBiMhIiY9ATQ2BzMyFh0BFAYrASImPQE0NjMhMhYdARQGIyEiJj0BNDYHMzIWHQEUBisBIiY9ATQ2MyEyFh0BFAYjISImPQE0Nn0EGgoPDwr75goPDwPA%2FK4KDw8KA1IKDw%2F9CDIKDw8KMgoPD9IBwgoPDwr%2BPgoPD74yCg8PCjIKDw%2FSAcIKDw8K%2Fj4KDw%2B%2BMgoPDwoyCg8P0gHCCg8PCv4%2BCg8PvjIKDw8KMgoPD9IBwgoPDwr%2BPgoPDwSwDwr7ggoPDwoEfgoPyA8K%2FK4KDw8KA1IKD2QPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKD8gPCjIKDw8KMgoPDwoyCg8PCjIKDwAAAAACAAAAAARMBLAAGQAjAAABNTQmIyEiBh0BIyIGFREUFjMhMjY1ETQmIyE1NDY7ATIWHQEDhHVT%2FtRSdmQpOzspA4QpOzsp%2FageFMgUHgMgyFN1dlLIOyn9qCk7OykCWCk7lhUdHRWWAAIAZAAABEwETAAJADcAABMzMhYVESMRNDYFMhcWFREUBw4DIyIuAScuAiMiBwYjIicmNRE%2BATc2HgMXHgIzMjc2fTIKD2QPA8AEBRADIUNAMRwaPyonKSxHHlVLBwgGBQ4WeDsXKC4TOQQpLUUdZ1AHBEwPCvvNBDMKDzACBhH%2BWwYGO1AkDQ0ODg8PDzkFAwcPAbY3VwMCAwsGFAEODg5XCAAAAwAAAAAEsASXACEAMQBBAAAAMh4CFREUBisBIiY1ETQuASAOARURFAYrASImNRE0PgEDMzIWFREUBisBIiY1ETQ2ITMyFhURFAYrASImNRE0NgHk6N6jYw8KMgoPjeT%2B%2BuSNDwoyCg9joyqgCAwMCKAIDAwCYKAIDAwIoAgMDASXY6PedP7UCg8PCgEsf9FyctF%2F%2FtQKDw8KASx03qP9wAwI%2FjQIDAwIAcwIDAwI%2FjQIDAwIAcwIDAAAAAACAAAA0wRHA90AFQA5AAABJTYWFREUBiclJisBIiY1ETQ2OwEyBTc2Mh8BFhQPARcWFA8BBiIvAQcGIi8BJjQ%2FAScmND8BNjIXAUEBAgkMDAn%2B%2FhUZ%2BgoPDwr6GQJYeAcUByIHB3h4BwciBxQHeHgHFAciBwd3dwcHIgcUBwMurAYHCv0SCgcGrA4PCgFeCg%2BEeAcHIgcUB3h4BxQHIgcHd3cHByIHFAd4eAcUByIICAAAAAACAAAA0wNyA90AFQAvAAABJTYWFREUBiclJisBIiY1ETQ2OwEyJTMWFxYVFAcGDwEiLwEuATc2NTQnJjY%2FATYBQQECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcDLqwGBwr9EgoHBqwODwoBXgoPZAEJgaGafwkBAQYXBxMIZ36EaggUBxYFAAAAAAMAAADEBGID7AAbADEASwAAATMWFxYVFAYHBgcjIi8BLgE3NjU0JicmNj8BNgUlNhYVERQGJyUmKwEiJjURNDY7ATIlMxYXFhUUBwYPASIvAS4BNzY1NCcmNj8BNgPHAwsGh0RABwoDCQcqCAIGbzs3BgIJKgf9ggECCQwMCf7%2BFRn6Cg8PCvoZAdIECgZgWgYLAwkHHQcDBkhOBgMIHQcD7AEJs9lpy1QJAQYiBhQIlrJarEcJFAYhBb6sBgcK%2FRIKBwasDg8KAV4KD2QBCYGhmn8JAQEGFwcTCGd%2BhGoIFQYWBQAAAAANAAAAAASwBLAACQAVABkAHQAhACUALQA7AD8AQwBHAEsATwAAATMVIxUhFSMRIQEjFTMVIREjESM1IQURIREhESERBSM1MwUjNTMBMxEhETM1MwEzFSMVIzUjNTM1IzUhBREhEQcjNTMFIzUzASM1MwUhNSEB9GRk%2FnBkAfQCvMjI%2FtTIZAJY%2B7QBLAGQASz84GRkArxkZP1EyP4MyGQB9MhkyGRkyAEs%2FUQBLGRkZAOEZGT%2BDGRkAfT%2B1AEsA4RkZGQCWP4MZMgBLAEsyGT%2B1AEs%2FtQBLMhkZGT%2BDP4MAfRk%2FtRkZGRkyGTI%2FtQBLMhkZGT%2B1GRkZAAAAAAJAAAAAASwBLAAAwAHAAsADwATABcAGwAfACMAADcjETMTIxEzASMRMxMjETMBIxEzASE1IRcjNTMXIzUzBSM1M2RkZMhkZAGQyMjIZGQBLMjI%2FOD%2B1AEsyGRkyGRkASzIyMgD6PwYA%2Bj8GAPo%2FBgD6PwYA%2Bj7UGRkW1tbW1sAAAIAAAAKBKYEsAANABUAAAkBFhQHAQYiJwETNDYzBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAUM7Uzs7UzsEsP1WCBQI%2FjAICAKqAdsKD807O1Q7OwAAAAADAAAACgXSBLAADQAZACEAAAkBFhQHAQYiJwETNDYzIQEWFAcBBiIvAQkBBCYiBhQWMjYB9AKqCAj%2BMAgUCP1WAQ8KAwYCqggI%2FjAIFAg4Aaj9RP7TO1M7O1M7BLD9VggUCP4wCAgCqgHbCg%2F9VggUCP4wCAg4AaoCvM07O1Q7OwAAAAABAGQAAASwBLAAJgAAASEyFREUDwEGJjURNCYjISIPAQYWMyEyFhURFAYjISImNRE0PwE2ASwDOUsSQAgKDwr9RBkSQAgFCgK8Cg8PCvyuCg8SixIEsEv8fBkSQAgFCgO2Cg8SQAgKDwr8SgoPDwoDzxkSixIAAAABAMj%2F%2FwRMBLAACgAAEyEyFhURCQERNDb6AyAVHf4%2B%2Fj4dBLAdFfuCAbz%2BQwR%2FFR0AAAAAAwAAAAAEsASwABUARQBVAAABISIGBwMGHwEeATMhMjY%2FATYnAy4BASMiBg8BDgEjISImLwEuASsBIgYVERQWOwEyNj0BNDYzITIWHQEUFjsBMjY1ETQmASEiBg8BBhYzITI2LwEuAQM2%2FkQLEAFOBw45BhcKAcIKFwY%2BDgdTARABVpYKFgROBBYK%2FdoKFgROBBYKlgoPDwqWCg8PCgLuCg8PCpYKDw%2F%2Bsf4MChMCJgILCgJYCgsCJgITBLAPCv7TGBVsCQwMCWwVGAEtCg%2F%2BcA0JnAkNDQmcCQ0PCv12Cg8PCpYKDw8KlgoPDwoCigoP%2FagOCpgKDg4KmAoOAAAAAAQAAABkBLAETAAdACEAKQAxAAABMzIeAh8BMzIWFREUBiMhIiY1ETQ2OwE%2BBAEVMzUEIgYUFjI2NCQyFhQGIiY0AfTIOF00JAcGlik7Oyn8GCk7OymWAgknM10ByGT%2Bz76Hh76H%2Fu9WPDxWPARMKTs7FRQ7Kf2oKTs7KQJYKTsIG0U1K%2F7UZGRGh76Hh74IPFY8PFYAAAAAAgA1AAAEsASvACAAIwAACQEWFx4BHwEVITUyNi8BIQYHBh4CMxUhNTY3PgE%2FAQEDIQMCqQGBFCgSJQkK%2Fl81LBFS%2Fnk6IgsJKjIe%2FpM4HAwaBwcBj6wBVKIEr%2FwaMioTFQECQkJXLd6RWSIuHAxCQhgcDCUNDQPu%2FVoByQAAAAADAGQAAAPwBLAAJwAyADsAAAEeBhUUDgMjITU%2BATURNC4EJzUFMh4CFRQOAgclMzI2NTQuAisBETMyNjU0JisBAvEFEzUwOyodN1htbDD%2BDCk7AQYLFyEaAdc5dWM%2BHy0tEP6Pi05pESpTPnbYUFJ9Xp8CgQEHGB0zOlIuQ3VONxpZBzMoAzsYFBwLEAkHRwEpSXNDM1s6KwkxYUopOzQb%2FK5lUFqBAAABAMgAAANvBLAAGQAAARcOAQcDBhYXFSE1NjcTNjQuBCcmJzUDbQJTQgeECSxK%2Fgy6Dq0DAw8MHxUXDQYEsDkTNSj8uTEoBmFhEFIDQBEaExAJCwYHAwI5AAAAAAL%2FtQAABRQEsAAlAC8AAAEjNC4FKwERFBYfARUhNTI%2BAzURIyIOBRUjESEFIxEzByczESM3BRQyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj7m0tLfX1LS30DhBUgFQ4IAwH8rhYZAQJkZAEFCRUOA1IBAwgOFSAVASzI%2FOCnpwMgpwACACH%2FtQSPBLAAJQAvAAABIzQuBSsBERQWHwEVITUyPgM1ESMiDgUVIxEhEwc1IRUnNxUhNQRMMggLGRMmGBnIMhkZ%2FnAEDiIaFsgZGCYTGQsIMgPoQ6f84KenAyADhBUgFQ4IAwH9dhYZAQJkZAEFCRUOAooBAwgOFSAVASz7gn1LS319S0sABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyAlgVHR0V%2FagVHR0VA%2BgVHR0V%2FBgVHR0VAyAVHR0V%2FOAVHR0VBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AABMhMhYdARQGIyEiJj0BNDYDITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NgMhMhYdARQGIyEiJj0BNDb6ArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR3dArwVHR0V%2FUQVHR2zBEwVHR0V%2B7QVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0ABAAAAAAEsARMAA8AHwAvAD8AAAE1NDYzITIWHQEUBiMhIiYBNTQ2MyEyFh0BFAYjISImEzU0NjMhMhYdARQGIyEiJgE1NDYzITIWHQEUBiMhIiYB9B0VAlgVHR0V%2FagVHf5wHRUD6BUdHRX8GBUdyB0VAyAVHR0V%2FOAVHf7UHRUETBUdHRX7tBUdA7ZkFR0dFWQVHR3%2B6WQVHR0VZBUdHf7pZBUdHRVkFR0d%2FulkFR0dFWQVHR0AAAQAAAAABLAETAAPAB8ALwA%2FAAATITIWHQEUBiMhIiY9ATQ2EyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2MgRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dFQRMFR0dFfu0FR0dBEwdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAgAAAAABLAETAAPAB8ALwA%2FAE8AXwBvAH8AABMzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2ATMyFh0BFAYrASImPQE0NikBMhYdARQGIyEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2KQEyFh0BFAYjISImPQE0NgEzMhYdARQGKwEiJj0BNDYpATIWHQEUBiMhIiY9ATQ2MmQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR3%2B6WQVHR0VZBUdHQFBAyAVHR0V%2FOAVHR0ETB0VZBUdHRVkFR0dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdHRVkFR0dFWQVHf7UHRVkFR0dFWQVHR0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0dFWQVHR0VZBUdAAAG%2F5wAAASwBEwAAwATACMAKgA6AEoAACEjETsCMhYdARQGKwEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2BQc1IzUzNQUhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2AZBkZJZkFR0dFWQVHR0VAfQVHR0V%2FgwVHR3%2B%2BqfIyAHCASwVHR0V%2FtQVHR0VAlgVHR0V%2FagVHR0ETB0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR36fUtkS68dFWQVHR0VZBUd%2FtQdFWQVHR0VZBUdAAAABgAAAAAFFARMAA8AEwAjACoAOgBKAAATMzIWHQEUBisBIiY9ATQ2ASMRMwEhMhYdARQGIyEiJj0BNDYFMxUjFSc3BSEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYyZBUdHRVkFR0dA2dkZPyuAfQVHR0V%2FgwVHR0EL8jIp6f75gEsFR0dFf7UFR0dFQJYFR0dFf2oFR0dBEwdFWQVHR0VZBUd%2B7QETP7UHRVkFR0dFWQVHchkS319rx0VZBUdHRVkFR3%2B1B0VZBUdHRVkFR0AAAAAAgAAAMgEsAPoAA8AEgAAEyEyFhURFAYjISImNRE0NgkCSwLuHywsH%2F0SHywsBIT%2B1AEsA%2BgsH%2F12HywsHwKKHyz9RAEsASwAAwAAAAAEsARMAA8AFwAfAAATITIWFREUBiMhIiY1ETQ2FxE3BScBExEEMhYUBiImNCwEWBIaGhL7qBIaGkr3ASpKASXs%2FNJwTk5wTgRMGhL8DBIaGhID9BIaZP0ftoOcAT7%2B4AH0dE5vT09vAAAAAAIA2wAFBDYEkQAWAB4AAAEyHgEVFAcOAQ8BLgQnJjU0PgIWIgYUFjI2NAKIdcZzRkWyNjYJIV5YbSk8RHOft7eCgreCBJF4ynVzj23pPz4IIWZomEiEdVijeUjDgriBgbgAAAACABcAFwSZBJkADwAXAAAAMh4CFA4CIi4CND4BAREiDgEUHgEB4%2BrWm1tbm9bq1ptbW5sBS3TFcnLFBJlbm9bq1ptbW5vW6tab%2FG8DVnLF6MVyAAACAHUAAwPfBQ8AGgA1AAABHgYVFA4DBy4DNTQ%2BBQMOAhceBBcWNj8BNiYnLgInJjc2IyYCKhVJT1dOPiUzVnB9P1SbfEokP0xXUEm8FykoAwEbITEcExUWAgYCCQkFEikMGiACCAgFD0iPdXdzdYdFR4BeRiYEBTpjl1lFh3ZzeHaQ%2Ff4hS4I6JUEnIw4IBwwQIgoYBwQQQSlZtgsBAAAAAwAAAAAEywRsAAwAKgAvAAABNz4CHgEXHgEPAiUhMhcHISIGFREUFjMhMjY9ATcRFAYjISImNRE0NgkBBzcBA%2BhsAgYUFR0OFgoFBmz9BQGQMje7%2FpApOzspAfQpO8i7o%2F5wpbm5Azj%2BlqE3AWMD9XMBAgIEDw4WKgsKc8gNuzsp%2FgwpOzsptsj%2BtKW5uaUBkKW5%2Ftf%2BljKqAWMAAgAAAAAEkwRMABsANgAAASEGByMiBhURFBYzITI2NTcVFAYjISImNRE0NgUBFhQHAQYmJzUmDgMHPgY3NT4BAV4BaaQ0wyk7OykB9Ck7yLml%2FnClubkCfwFTCAj%2BrAcLARo5ZFRYGgouOUlARioTAQsETJI2Oyn%2BDCk7OymZZ6W5uaUBkKW5G%2F7TBxUH%2Fs4GBAnLAQINFjAhO2JBNB0UBwHSCgUAAAAAAgAAAAAEnQRMAB0ANQAAASEyFwchIgYVERQWMyEyNj0BNxUUBiMhIiY1ETQ2CQE2Mh8BFhQHAQYiLwEmND8BNjIfARYyAV4BXjxDsv6jKTs7KQH0KTvIuaX%2BcKW5uQHKAYsHFQdlBwf97QcVB%2FgHB2UHFQdvCBQETBexOyn%2BDCk7OylFyNulubmlAZCluf4zAYsHB2UHFQf97AcH%2BAcVB2UHB28HAAAAAQAKAAoEpgSmADsAAAkBNjIXARYGKwEVMzU0NhcBFhQHAQYmPQEjFTMyFgcBBiInASY2OwE1IxUUBicBJjQ3ATYWHQEzNSMiJgE%2BAQgIFAgBBAcFCqrICggBCAgI%2FvgICsiqCgUH%2FvwIFAj%2B%2BAgFCq%2FICgj%2B%2BAgIAQgICsivCgUDlgEICAj%2B%2BAgKyK0KBAf%2B%2FAcVB%2F73BwQKrcgKCP74CAgBCAgKyK0KBAcBCQcVBwEEBwQKrcgKAAEAyAAAA4QETAAZAAATMzIWFREBNhYVERQGJwERFAYrASImNRE0NvpkFR0B0A8VFQ%2F%2BMB0VZBUdHQRMHRX%2BSgHFDggV%2FBgVCA4Bxf5KFR0dFQPoFR0AAAABAAAAAASwBEwAIwAAEzMyFhURATYWFREBNhYVERQGJwERFAYnAREUBisBIiY1ETQ2MmQVHQHQDxUB0A8VFQ%2F%2BMBUP%2FjAdFWQVHR0ETB0V%2FkoBxQ4IFf5KAcUOCBX8GBUIDgHF%2FkoVCA4Bxf5KFR0dFQPoFR0AAAABAJ0AGQSwBDMAFQAAAREUBicBERQGJwEmNDcBNhYVEQE2FgSwFQ%2F%2BMBUP%2FhQPDwHsDxUB0A8VBBr8GBUIDgHF%2FkoVCA4B4A4qDgHgDggV%2FkoBxQ4IAAAAAQDIABYEMwQ2AAsAABMBFhQHAQYmNRE0NvMDLhIS%2FNISGRkEMv4OCx4L%2Fg4LDhUD6BUOAAIAyABkA4QD6AAPAB8AABMzMhYVERQGKwEiJjURNDYhMzIWFREUBisBIiY1ETQ2%2BsgVHR0VyBUdHQGlyBUdHRXIFR0dA%2BgdFfzgFR0dFQMgFR0dFfzgFR0dFQMgFR0AAAEAyABkBEwD6AAPAAABERQGIyEiJjURNDYzITIWBEwdFfzgFR0dFQMgFR0DtvzgFR0dFQMgFR0dAAAAAAEAAAAZBBMEMwAVAAABETQ2FwEWFAcBBiY1EQEGJjURNDYXAfQVDwHsDw%2F%2BFA8V%2FjAPFRUPAmQBthUIDv4gDioO%2FiAOCBUBtv47DggVA%2BgVCA4AAAH%2F%2FgACBLMETwAjAAABNzIWFRMUBiMHIiY1AwEGJjUDAQYmNQM0NhcBAzQ2FwEDNDYEGGQUHgUdFWQVHQL%2BMQ4VAv4yDxUFFQ8B0gIVDwHSAh0ETgEdFfwYFR0BHRUBtf46DwkVAbX%2BOQ4JFAPoFQkP%2Fj4BthQJDv49AbYVHQAAAQEsAAAD6ARMABkAAAEzMhYVERQGKwEiJjURAQYmNRE0NhcBETQ2A1JkFR0dFWQVHf4wDxUVDwHQHQRMHRX8GBUdHRUBtv47DggVA%2BgVCA7%2BOwG2FR0AAAIAZADIBLAESAALABsAAAkBFgYjISImNwE2MgEhMhYdARQGIyEiJj0BNDYCrgH1DwkW%2B%2B4WCQ8B9Q8q%2FfcD6BUdHRX8GBUdHQQ5%2FeQPFhYPAhwP%2FUgdFWQVHR0VZBUdAAEAiP%2F8A3UESgAFAAAJAgcJAQN1%2FqABYMX92AIoA4T%2Bn%2F6fxgIoAiYAAAAAAQE7%2F%2FwEKARKAAUAAAkBJwkBNwQo%2FdnGAWH%2Bn8YCI%2F3ZxgFhAWHGAAIAFwAXBJkEmQAPADMAAAAyHgIUDgIiLgI0PgEFIyIGHQEjIgYdARQWOwEVFBY7ATI2PQEzMjY9ATQmKwE1NCYB4%2BrWm1tbm9bq1ptbW5sBfWQVHZYVHR0Vlh0VZBUdlhUdHRWWHQSZW5vW6tabW1ub1urWm7odFZYdFWQVHZYVHR0Vlh0VZBUdlhUdAAAAAAIAFwAXBJkEmQAPAB8AAAAyHgIUDgIiLgI0PgEBISIGHQEUFjMhMjY9ATQmAePq1ptbW5vW6tabW1ubAkX%2BDBUdHRUB9BUdHQSZW5vW6tabW1ub1urWm%2F5%2BHRVkFR0dFWQVHQACABcAFwSZBJkADwAzAAAAMh4CFA4CIi4CND4BBCIPAScmIg8BBhQfAQcGFB8BFjI%2FARcWMj8BNjQvATc2NC8BAePq1ptbW5vW6tabW1ubAeUZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0JCXh4CQmNBJlbm9bq1ptbW5vW6tabrQl4eAkJjQkZCXh4CRkJjQkJeHgJCY0JGQl4eAkZCY0AAgAXABcEmQSZAA8AJAAAADIeAhQOAiIuAjQ%2BAQEnJiIPAQYUHwEWMjcBNjQvASYiBwHj6tabW1ub1urWm1tbmwEVVAcVCIsHB%2FIHFQcBdwcHiwcVBwSZW5vW6tabW1ub1urWm%2F4xVQcHiwgUCPEICAF3BxUIiwcHAAAAAAMAFwAXBJkEmQAPADsASwAAADIeAhQOAiIuAjQ%2BAQUiDgMVFDsBFjc%2BATMyFhUUBgciDgUHBhY7ATI%2BAzU0LgMTIyIGHQEUFjsBMjY9ATQmAePq1ptbW5vW6tabW1ubAT8dPEIyIRSDHgUGHR8UFw4TARkOGhITDAIBDQ6tBx4oIxgiM0Q8OpYKDw8KlgoPDwSZW5vW6tabW1ub1urWm5ELHi9PMhkFEBQQFRIXFgcIBw4UHCoZCBEQKDhcNi9IKhsJ%2FeMPCpYKDw8KlgoPAAADABcAFwSZBJkADwAfAD4AAAAyHgIUDgIiLgI0PgEFIyIGHQEUFjsBMjY9ATQmAyMiBh0BFBY7ARUjIgYdARQWMyEyNj0BNCYrARE0JgHj6tabW1ub1urWm1tbmwGWlgoPDwqWCg8PCvoKDw8KS0sKDw8KAV4KDw8KSw8EmVub1urWm1tbm9bq1ptWDwqWCg8PCpYKD%2F7UDwoyCg%2FIDwoyCg8PCjIKDwETCg8AAgAAAAAEsASwAC8AXwAAATMyFh0BHgEXMzIWHQEUBisBDgEHFRQGKwEiJj0BLgEnIyImPQE0NjsBPgE3NTQ2ExUUBisBIiY9AQ4BBzMyFh0BFAYrAR4BFzU0NjsBMhYdAT4BNyMiJj0BNDY7AS4BAg2WCg9nlxvCCg8PCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw%2B5DwqWCg9EZheoCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmBLAPCsIbl2cPCpYKD2eXG8IKDw8KwhuXZw8KlgoPZ5cbwgoP%2Fs2oCg8PCqgXZkQPCpYKD0RmF6gKDw8KqBdmRA8KlgoPRGYAAwAXABcEmQSZAA8AGwA%2FAAAAMh4CFA4CIi4CND4BBCIOARQeATI%2BATQmBxcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyAePq1ptbW5vW6tabW1ubAb%2FoxXJyxejFcnKaQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwdABxUHfHwHFQSZW5vW6tabW1ub1urWmztyxejFcnLF6MVaQAcVB3x8BxUHQAcHfHwHB0AHFQd8fAcVB0AHB3x8BwAAAAMAFwAXBJkEmQAPABsAMAAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcXFhQHAQYiLwEmND8BNjIfATc2MgHj6tabW1ub1urWm1tbmwG%2F6MVycsXoxXJyg2oHB%2F7ACBQIyggIagcVB0%2FFBxUEmVub1urWm1tbm9bq1ps7csXoxXJyxejFfWoHFQf%2BvwcHywcVB2oICE%2FFBwAAAAMAFwAXBJkEmQAPABgAIQAAADIeAhQOAiIuAjQ%2BAQUiDgEVFBcBJhcBFjMyPgE1NAHj6tabW1ub1urWm1tbmwFLdMVyQQJLafX9uGhzdMVyBJlbm9bq1ptbW5vW6tabO3LFdHhpAktB0P24PnLFdHMAAAAAAQAXAFMEsAP5ABUAABMBNhYVESEyFh0BFAYjIREUBicBJjQnAgoQFwImFR0dFf3aFxD99hACRgGrDQoV%2Ft0dFcgVHf7dFQoNAasNJgAAAAABAAAAUwSZA%2FkAFQAACQEWFAcBBiY1ESEiJj0BNDYzIRE0NgJ%2FAgoQEP32EBf92hUdHRUCJhcD8f5VDSYN%2FlUNChUBIx0VyBUdASMVCgAAAAEAtwAABF0EmQAVAAAJARYGIyERFAYrASImNREhIiY3ATYyAqoBqw0KFf7dHRXIFR3%2B3RUKDQGrDSYEif32EBf92hUdHRUCJhcQAgoQAAAAAQC3ABcEXQSwABUAAAEzMhYVESEyFgcBBiInASY2MyERNDYCJsgVHQEjFQoN%2FlUNJg3%2BVQ0KFQEjHQSwHRX92hcQ%2FfYQEAIKEBcCJhUdAAABAAAAtwSZBF0AFwAACQEWFAcBBiY1EQ4DBz4ENxE0NgJ%2FAgoQEP32EBdesKWBJAUsW4fHfhcEVf5VDSYN%2FlUNChUBIwIkRHVNabGdcUYHAQYVCgACAAAAAASwBLAAFQArAAABITIWFREUBi8BBwYiLwEmND8BJyY2ASEiJjURNDYfATc2Mh8BFhQPARcWBgNSASwVHRUOXvkIFAhqBwf5Xg4I%2FiH%2B1BUdFQ5e%2BQgUCGoHB%2FleDggEsB0V%2FtQVCA5e%2BQcHaggUCPleDhX7UB0VASwVCA5e%2BQcHaggUCPleDhUAAAACAEkASQRnBGcAFQArAAABFxYUDwEXFgYjISImNRE0Nh8BNzYyASEyFhURFAYvAQcGIi8BJjQ%2FAScmNgP2agcH%2BV4OCBX%2B1BUdFQ5e%2BQgU%2FQwBLBUdFQ5e%2BQgUCGoHB%2FleDggEYGoIFAj5Xg4VHRUBLBUIDl75B%2F3xHRX%2B1BUIDl75BwdqCBQI%2BV4OFQAAAAADABcAFwSZBJkADwAfAC8AAAAyHgIUDgIiLgI0PgEFIyIGFxMeATsBMjY3EzYmAyMiBh0BFBY7ATI2PQE0JgHj6tabW1ub1urWm1tbmwGz0BQYBDoEIxQ2FCMEOgQYMZYKDw8KlgoPDwSZW5vW6tabW1ub1urWm7odFP7SFB0dFAEuFB3%2BDA8KlgoPDwqWCg8AAAAABQAAAAAEsASwAEkAVQBhAGgAbwAAATIWHwEWHwEWFxY3Nj8BNjc2MzIWHwEWHwIeATsBMhYdARQGKwEiBh0BIREjESE1NCYrASImPQE0NjsBMjY1ND8BNjc%2BBAUHBhY7ATI2LwEuAQUnJgYPAQYWOwEyNhMhIiY1ESkBERQGIyERAQQJFAUFFhbEFQ8dCAsmxBYXERUXMA0NDgQZCAEPCj0KDw8KMgoP%2FnDI%2FnAPCjIKDw8KPQsOCRkFDgIGFRYfAp2mBwQK2woKAzMDEP41sQgQAzMDCgrnCwMe%2FokKDwGQAlgPCv6JBLAEAgIKDXYNCxUJDRZ2DQoHIREQFRh7LAkLDwoyCg8PCq8BLP7UrwoPDwoyCg8GBQQwgBkUAwgWEQ55ogcKDgqVCgSqnQcECo8KDgr8cg8KAXf%2BiQoPAZAAAAAAAgAAAAwErwSmACsASQAAATYWFQYCDgQuAScmByYOAQ8BBiY1NDc%2BATc%2BAScuAT4BNz4GFyYGBw4BDwEOBAcOARY2Nz4CNz4DNz4BBI0IGgItQmxhi2KORDg9EQQRMxuZGhYqCFUYEyADCQIQOjEnUmFch3vAJQgdHyaiPT44XHRZUhcYDhItIRmKcVtGYWtbKRYEBKYDEwiy%2Ft3IlVgxEQgLCwwBAQIbG5kYEyJAJghKFRE8Hzdff4U%2FM0o1JSMbL0QJGCYvcSEhHjZST2c1ODwEJygeW0AxJUBff1UyFAABAF0AHgRyBM8ATwAAAQ4BHgQXLgc%2BATceAwYHDgQHBicmNzY3PgQuAScWDgMmJy4BJyY%2BBDcGHgM3PgEuAicmPgMCjScfCic4R0IgBBsKGAoQAwEJEg5gikggBhANPkpTPhZINx8SBgsNJysiCRZOQQoVNU1bYC9QZwICBAUWITsoCAYdJzIYHw8YIiYHDyJJYlkEz0OAZVxEOSQMBzgXOB42IzElKRIqg5Gnl0o3Z0c6IAYWCwYNAwQFIDhHXGF1OWiqb0sdBxUknF0XNTQ8PEUiNWNROBYJDS5AQVUhVZloUSkAAAAAA%2F%2FcAGoE1ARGABsAPwBRAAAAMh4FFA4FIi4FND4EBSYGFxYVFAYiJjU0NzYmBwYHDgEXHgQyPgM3NiYnJgUHDgEXFhcWNj8BNiYnJicuAQIGpJ17bk85HBw6T257naKde25POhwcOU9uewIPDwYIGbD4sBcIBw5GWg0ECxYyWl%2BDiINfWjIWCwQMWv3%2FIw8JCSU4EC0OIw4DDywtCyIERi1JXGJcSSpJXGJcSS0tSVxiXEkqSVxiXEncDwYTOT58sLB8OzcTBg9FcxAxEiRGXkQxMEVeRSQSMRF1HiQPLxJEMA0EDyIPJQ8sSRIEAAAABP%2FcAAAE1ASwABQAJwA7AEwAACEjNy4ENTQ%2BBTMyFzczEzceARUUDgMHNz4BNzYmJyYlBgcOARceBBc3LgE1NDc2JhcHDgEXFhcWNj8CJyYnLgECUJQfW6l2WSwcOU9ue51SPUEglCYvbIknUGqYUi5NdiYLBAw2%2FVFGWg0ECxIqSExoNSlrjxcIB3wjDwkJJTgQLQ4MFgMsLQsieBRhdHpiGxVJXGJcSS0Pef5StVXWNBpacm5jGq0xiD8SMRFGckVzEDESHjxRQTkNmhKnbjs3EwZwJA8vEkQwDQQPC1YELEkSBAAAAAP%2FngAABRIEqwALABgAKAAAJwE2FhcBFgYjISImJSE1NDY7ATIWHQEhAQczMhYPAQ4BKwEiJi8BJjZaAoIUOBQCghUbJfryJRsBCgFZDwqWCg8BWf5DaNAUGAQ6BCMUNhQjBDoEGGQEKh8FIfvgIEdEhEsKDw8KSwLT3x0U%2FBQdHRT8FB0AAAABAGQAFQSwBLAAKAAAADIWFREBHgEdARQGJyURFh0BFAYvAQcGJj0BNDcRBQYmPQE0NjcBETQCTHxYAWsPFhgR%2FplkGhPNzRMaZP6ZERgWDwFrBLBYPv6t%2FrsOMRQpFA0M%2Bf75XRRAFRAJgIAJEBVAFF0BB%2FkMDRQpFDEOAUUBUz4AAAARAAAAAARMBLAAHQAnACsALwAzADcAOwA%2FAEMARwBLAE8AUwBXAFsAXwBjAAABMzIWHQEzMhYdASE1NDY7ATU0NjsBMhYdASE1NDYBERQGIyEiJjURFxUzNTMVMzUzFTM1MxUzNTMVMzUFFTM1MxUzNTMVMzUzFTM1MxUzNQUVMzUzFTM1MxUzNTMVMzUzFTM1A1JkFR0yFR37tB0VMh0VZBUdAfQdAQ8dFfwYFR1kZGRkZGRkZGRk%2FHxkZGRkZGRkZGT8fGRkZGRkZGRkZASwHRUyHRWWlhUdMhUdHRUyMhUd%2FnD9EhUdHRUC7shkZGRkZGRkZGRkyGRkZGRkZGRkZGTIZGRkZGRkZGRkZAAAAAMAAAAZBXcElwAZACUANwAAARcWFA8BBiY9ASMBISImPQE0NjsBATM1NDYBBycjIiY9ATQ2MyEBFxYUDwEGJj0BIyc3FzM1NDYEb%2FkPD%2FkOFZ%2F9qP7dFR0dFdECWPEV%2FamNetEVHR0VASMDGvkPD%2FkOFfG1jXqfFQSN5g4qDuYOCBWW%2FagdFWQVHQJYlhUI%2FpiNeh0VZBUd%2Fk3mDioO5g4IFZa1jXqWFQgAAAABAAAAAASwBEwAEgAAEyEyFhURFAYjIQERIyImNRE0NmQD6Ck7Oyn9rP7QZCk7OwRMOyn9qCk7%2FtQBLDspAlgpOwAAAAMAZAAABEwEsAAJABMAPwAAEzMyFh0BITU0NiEzMhYdASE1NDYBERQOBSIuBTURIRUUFRwBHgYyPgYmNTQ9AZbIFR3%2B1B0C0cgVHf7UHQEPBhgoTGacwJxmTCgYBgEsAwcNFB8nNkI2Jx8TDwUFAQSwHRX6%2BhUdHRX6%2BhUd%2FnD%2B1ClJalZcPigoPlxWakkpASz6CRIVKyclIRsWEAgJEBccISUnKhURCPoAAAAB%2F%2F8A1ARMA8IABQAAAQcJAScBBEzG%2Fp%2F%2Bn8UCJwGbxwFh%2Fp%2FHAicAAQAAAO4ETQPcAAUAAAkCNwkBBE392v3ZxgFhAWEDFf3ZAifH%2Fp8BYQAAAAAC%2F1EAZAVfA%2BgAFAApAAABITIWFREzMhYPAQYiLwEmNjsBESElFxYGKwERIRchIiY1ESMiJj8BNjIBlALqFR2WFQgO5g4qDuYOCBWW%2FoP%2BHOYOCBWWAYHX%2FRIVHZYVCA7mDioD6B0V%2FdkVDvkPD%2FkOFQGRuPkOFf5wyB0VAiYVDvkPAAABAAYAAASeBLAAMAAAEzMyFh8BITIWBwMOASMhFyEyFhQGKwEVFAYiJj0BIRUUBiImPQEjIiYvAQMjIiY0NjheERwEJgOAGB4FZAUsIf2HMAIXFR0dFTIdKh3%2B1B0qHR8SHQYFyTYUHh4EsBYQoiUY%2FiUVK8gdKh0yFR0dFTIyFR0dFTIUCQoDwR0qHQAAAAACAAAAAASwBEwACwAPAAABFSE1MzQ2MyEyFhUFIREhBLD7UMg7KQEsKTv9RASw%2B1AD6GRkKTs7Kcj84AACAAAAAAXcBEwADAAQAAATAxEzNDYzITIWFSEVBQEhAcjIyDspASwqOgH0ASz%2B1PtQASwDIP5wAlgpOzspyGT9RAK8AAEBRQAAA2sErwAbAAABFxYGKwERMzIWDwEGIi8BJjY7AREjIiY%2FATYyAnvmDggVlpYVCA7mDioO5g4IFZaWFQgO5g4qBKD5DhX9pxUO%2BQ8P%2BQ4VAlkVDvkPAAAAAQABAUQErwNrABsAAAEXFhQPAQYmPQEhFRQGLwEmND8BNhYdASE1NDYDqPkODvkPFf2oFQ%2F5Dg75DxUCWBUDYOUPKQ%2FlDwkUl5cUCQ%2FlDykP5Q8JFZWVFQkAAAAEAAAAAASwBLAACQAZAB0AIQAAAQMuASMhIgYHAwUhIgYdARQWMyEyNj0BNCYFNTMVMzUzFQSRrAUkFP1gFCQFrAQt%2FBgpOzspA%2BgpOzv%2Bq2RkZAGQAtwXLSgV%2FR1kOylkKTs7KWQpO8hkZGRkAAAAA%2F%2BcAGQEsARMAAsAIwAxAAAAMhYVERQGIiY1ETQDJSMTFgYjIisBIiYnAj0BNDU0PgE7ASUBFSIuAz0BND4CNwRpKh0dKh1k%2FV0mLwMRFQUCVBQdBDcCCwzIAqP8GAQOIhoWFR0dCwRMHRX8rhUdHRUDUhX8mcj%2B7BAIHBUBUQ76AgQQDw36%2FtT6AQsTKRwyGigUDAEAAAACAEoAAARmBLAALAA1AAABMzIWDwEeARcTFzMyFhQGBw4EIyIuBC8BLgE0NjsBNxM%2BATcnJjYDFjMyNw4BIiYCKV4UEgYSU3oPP3YRExwaEggeZGqfTzl0XFU%2BLwwLEhocExF2Pw96UxIGEyQyNDUxDDdGOASwFRMlE39N%2FrmtHSkoBwQLHBYSCg4REg4FBAgoKR2tAUdNfhQgExr7vgYGMT09AAEAFAAUBJwEnAAXAAABNwcXBxcHFycHJwcnBzcnNyc3Jxc3FzcDIOBO6rS06k7gLZubLeBO6rS06k7gLZubA7JO4C2bmy3gTuq0tOpO4C2bmy3gTuq0tAADAAAAZASwBLAAIQAtAD0AAAEzMhYdAQchMhYdARQHAw4BKwEiJi8BIyImNRE0PwI%2BARcPAREzFzMTNSE3NQEzMhYVERQGKwEiJjURNDYCijIoPBwBSCg8He4QLBf6B0YfHz0tNxSRYA0xG2SWZIjW%2Bv4%2BMv12ZBUdHRVkFR0dBLBRLJZ9USxkLR3%2BqBghMhkZJCcBkCQbxMYcKGTU1f6JZAF3feGv%2FtQdFf4MFR0dFQH0FR0AAAAAAwAAAAAEsARMACAAMAA8AAABMzIWFxMWHQEUBiMhFh0BFAYrASImLwImNRE0NjsBNgUzMhYVERQGKwEiJjURNDYhByMRHwEzNSchNQMCWPoXLBDuHTwo%2FrgcPCgyGzENYJEUNy09fP3pZBUdHRVkFR0dAl%2BIZJZkMjIBwvoETCEY%2FqgdLWQsUXYHlixRKBzGxBskAZAnJGRkHRX%2BDBUdHRUB9BUdZP6J1dSv4X0BdwADAAAAZAUOBE8AGwA3AEcAAAElNh8BHgEPASEyFhQGKwEDDgEjISImNRE0NjcXERchEz4BOwEyNiYjISoDLgQnJj8BJwUzMhYVERQGKwEiJjURNDYBZAFrHxZuDQEMVAEuVGxuVGqDBhsP%2FqoHphwOOmQBJYMGGw%2FLFRMSFv44AgoCCQMHAwUDAQwRklb9T2QVHR0VZBUdHQNp5hAWcA0mD3lMkE7%2BrRUoog0CDRElCkj%2BCVkBUxUoMjIBAgIDBQIZFrdT5B0V%2FgwVHR0VAfQVHQAAAAP%2FnABkBLAETwAdADYARgAAAQUeBBURFAYjISImJwMjIiY0NjMhJyY2PwE2BxcWBw4FKgIjIRUzMhYXEyE3ESUFMzIWFREUBisBIiY1ETQ2AdsBbgIIFBANrAf%2Bqg8bBoNqVW1sVAEuVQsBDW4WSpIRDAIDBQMHAwkDCgH%2BJd0PHAaCASZq%2FqoCUGQVHR0VZBUdHQRP5gEFEBEXC%2F3zDaIoFQFTTpBMeQ8mDXAWrrcWGQIFAwICAWQoFf6tWQH37OQdFf4MFR0dFQH0FR0AAAADAGEAAARMBQ4AGwA3AEcAAAAyFh0BBR4BFREUBiMhIiYvAQMmPwE%2BAR8BETQXNTQmBhURHAMOBAcGLwEHEyE3ESUuAQMhMhYdARQGIyEiJj0BNDYB3pBOAVMVKKIN%2FfMRJQoJ5hAWcA0mD3nGMjIBAgIDBQIZFrdT7AH3Wf6tFSiWAfQVHR0V%2FgwVHR0FDm5UaoMGGw%2F%2BqgemHA4OAWsfFm4NAQxUAS5U1ssVExIW%2FjgCCgIJAwcDBQMBDBGSVv6tZAElgwYb%2FQsdFWQVHR0VZBUdAAP%2F%2FQAGA%2BgFFAAPAC0ASQAAASEyNj0BNCYjISIGHQEUFgEVFAYiJjURBwYmLwEmNxM%2BBDMhMhYVERQGBwEDFzc2Fx4FHAIVERQWNj0BNDY3JREnAV4B9BUdHRX%2BDBUdHQEPTpBMeQ8mDXAWEOYBBRARFwsCDQ2iKBX9iexTtxYZAgUDAgIBMjIoFQFTWQRMHRVkFR0dFWQVHfzmalRubFQBLlQMAQ1uFh8BawIIEw8Mpgf%2Bqg8bBgHP%2Fq1WkhEMAQMFAwcDCQIKAv44FhITFcsPGwaDASVkAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBJSYGHQEhIgYdARQWMyEVFBY3JTY0AeLs1ptbW5vW7NabW1ubAob%2B7RAX%2Fu0KDw8KARMXEAETEASaW5vW7NabW1ub1uzWm%2F453w0KFYkPCpYKD4kVCg3fDSYAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgENAQYUFwUWNj0BITI2PQE0JiMhNTQmAeLs1ptbW5vW7NabW1ubASX%2B7RAQARMQFwETCg8PCv7tFwSaW5vW7NabW1ub1uzWm%2BjfDSYN3w0KFYkPCpYKD4kVCgAAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEBAyYiBwMGFjsBERQWOwEyNjURMzI2AeLs1ptbW5vW7NabW1ubAkvfDSYN3w0KFYkPCpYKD4kVCgSaW5vW7NabW1ub1uzWm%2F5AARMQEP7tEBf%2B7QoPDwoBExcAAAIAFgAWBJoEmgAPACUAAAAyHgIUDgIiLgI0PgEFIyIGFREjIgYXExYyNxM2JisBETQmAeLs1ptbW5vW7NabW1ubAZeWCg%2BJFQoN3w0mDd8NChWJDwSaW5vW7NabW1ub1uzWm7sPCv7tFxD%2B7RAQARMQFwETCg8AAAMAGAAYBJgEmAAPAJYApgAAADIeAhQOAiIuAjQ%2BASUOAwcGJgcOAQcGFgcOAQcGFgcUFgcyHgEXHgIXHgI3Fg4BFx4CFxQGFBcWNz4CNy4BJy4BJyIOAgcGJyY2NS4BJzYuAQYHBicmNzY3HgIXHgMfAT4CJyY%2BATc%2BAzcmNzIWMjY3LgMnND4CJiceAT8BNi4CJwYHFB4BFS4CJz4BNxYyPgEB5OjVm1xcm9Xo1ZtcXJsBZA8rHDoKDz0PFD8DAxMBAzEFCRwGIgEMFhkHECIvCxU%2FOR0HFBkDDRQjEwcFaHUeISQDDTAMD0UREi4oLBAzDwQBBikEAQMLGhIXExMLBhAGKBsGBxYVEwYFAgsFAwMNFwQGCQcYFgYQCCARFwkKKiFBCwQCAQMDHzcLDAUdLDgNEiEQEgg%2FKhADGgMKEgoRBJhcm9Xo1ZtcXJvV6NWbEQwRBwkCAwYFBycPCxcHInIWInYcCUcYChQECA4QBAkuHgQPJioRFRscBAcSCgwCch0kPiAIAQcHEAsBAgsLIxcBMQENCQIPHxkCFBkdHB4QBgEBBwoMGBENBAMMJSAQEhYXDQ4qFBkKEhIDCQsXJxQiBgEOCQwHAQ0DBAUcJAwSCwRnETIoAwEJCwsLJQcKDBEAAAAAAQAAAAIErwSFABYAAAE2FwUXNxYGBw4BJwEGIi8BJjQ3ASY2AvSkjv79kfsGUE08hjv9rA8rD28PDwJYIk8EhVxliuh%2BWYcrIgsW%2FawQEG4PKxACV2XJAAYAAABgBLAErAAPABMAIwAnADcAOwAAEyEyFh0BFAYjISImPQE0NgUjFTMFITIWHQEUBiMhIiY9ATQ2BSEVIQUhMhYdARQGIyEiJj0BNDYFIRUhZAPoKTs7KfwYKTs7BBHIyPwYA%2BgpOzsp%2FBgpOzsEEf4MAfT8GAPoKTs7KfwYKTs7BBH%2B1AEsBKw7KWQpOzspZCk7ZGTIOylkKTs7KWQpO2RkyDspZCk7OylkKTtkZAAAAAIAZAAABEwEsAALABEAABMhMhYUBiMhIiY0NgERBxEBIZYDhBUdHRX8fBUdHQI7yP6iA4QEsB0qHR0qHf1E%2FtTIAfQB9AAAAAMAAABkBLAEsAAXABsAJQAAATMyFh0BITIWFREhNSMVIRE0NjMhNTQ2FxUzNQEVFAYjISImPQEB9MgpOwEsKTv%2BDMj%2BDDspASw7KcgB9Dsp%2FBgpOwSwOylkOyn%2BcGRkAZApO2QpO2RkZP1EyCk7OynIAAAABAAAAAAEsASwABUAKwBBAFcAABMhMhYPARcWFA8BBiIvAQcGJjURNDYpATIWFREUBi8BBwYiLwEmND8BJyY2ARcWFA8BFxYGIyEiJjURNDYfATc2MgU3NhYVERQGIyEiJj8BJyY0PwE2MhcyASwVCA5exwcHaggUCMdeDhUdAzUBLBUdFQ5exwgUCGoHB8deDgj%2BL2oHB8deDggV%2FtQVHRUOXscIFALLXg4VHRX%2B1BUIDl7HBwdqCBQIBLAVDl7HCBQIagcHx14OCBUBLBUdHRX%2B1BUIDl7HBwdqCBQIx14OFf0maggUCMdeDhUdFQEsFQgOXscHzl4OCBX%2B1BUdFQ5exwgUCGoHBwAAAAYAAAAABKgEqAAPABsAIwA7AEMASwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JiQyFhQGIiY0JDIWFAYjIicHFhUUBiImNTQ2PwImNTQEMhYUBiImNCQyFhQGIiY0Advy3Z9fX5%2Fd8t2gXl6gAcbgv29vv%2BC%2Fb2%2F%2BLS0gIC0gAUwtICAWDg83ETNIMykfegEJ%2FoctICAtIAIdLSAgLSAEqF%2Bf3fLdoF5eoN3y3Z9Xb7%2Fgv29vv%2BC%2FBiAtISEtICAtIQqRFxwkMzMkIDEFfgEODhekIC0gIC0gIC0gIC0AAf%2FYAFoEuQS8AFsAACUBNjc2JicmIyIOAwcABw4EFx4BMzI3ATYnLgEjIgcGBwEOASY0NwA3PgEzMhceARcWBgcOBgcGIyImJyY2NwE2NzYzMhceARcWBgcBDgEnLgECIgHVWwgHdl8WGSJBMD8hIP6IDx4eLRMNBQlZN0ozAiQkEAcdEhoYDRr%2Bqw8pHA4BRyIjQS4ODyw9DQ4YIwwod26La1YOOEBGdiIwGkQB%2F0coW2tQSE5nDxE4Qv4eDyoQEAOtAdZbZWKbEQQUGjIhH%2F6JDxsdNSg3HT5CMwIkJCcQFBcMGv6uDwEcKQ4BTSIjIQEINykvYyMLKnhuiWZMBxtAOU6%2BRAH%2FSBg3ISSGV121Qv4kDwIPDyYAAAACAGQAWASvBEQAGQBEAAABPgIeAhUUDgMHLgQ1ND4CHgEFIg4DIi4DIyIGFRQeAhcWFx4EMj4DNzY3PgQ1NCYCiTB7eHVYNkN5hKg%2BPqeFeEM4WnZ4eQEjIT8yLSohJyktPyJDbxtBMjMPBw86KzEhDSIzKUAMBAgrKT8dF2oDtURIBS1TdkA5eYB%2FslVVsn%2BAeTlAdlMtBUgtJjY1JiY1NiZvTRc4SjQxDwcOPCouGBgwKEALBAkpKkQqMhNPbQACADn%2F8gR3BL4AFwAuAAAAMh8BFhUUBg8BJi8BNycBFwcvASY0NwEDNxYfARYUBwEGIi8BJjQ%2FARYfAQcXAQKru0KNQjgiHR8uEl%2F3%2FnvUaRONQkIBGxJpCgmNQkL%2B5UK6Qo1CQjcdLhJf9wGFBL5CjUJeKmsiHTUuEl%2F4%2FnvUahKNQrpCARv%2BRmkICY1CukL%2B5UJCjUK7Qjc3LxFf%2BAGFAAAAAAMAyAAAA%2BgEsAARABUAHQAAADIeAhURFAYjISImNRE0PgEHESERACIGFBYyNjQCBqqaZDo7Kf2oKTs8Zj4CWP7%2FVj09Vj0EsB4uMhX8Ryk7OykDuRUzLar9RAK8%2FRY9Vj09VgABAAAAAASwBLAAFgAACQEWFAYiLwEBEScBBRMBJyEBJyY0NjIDhgEbDx0qDiT%2B6dT%2BzP7oywEz0gEsAQsjDx0qBKH%2B5g8qHQ8j%2FvX%2B1NL%2BzcsBGAE01AEXJA4qHQAAAAADAScAEQQJBOAAMgBAAEsAAAEVHgQXIy4DJxEXHgQVFAYHFSM1JicuASczHgEXEScuBDU0PgI3NRkBDgMVFB4DFxYXET4ENC4CArwmRVI8LAKfBA0dMydAIjxQNyiym2SWVygZA4sFV0obLkJOMCAyVWg6HSoqFQ4TJhkZCWgWKTEiGBkzNwTgTgUTLD9pQiQuLBsH%2Fs0NBxMtPGQ%2Bi6oMTU8QVyhrVk1iEAFPCA4ZLzlYNkZwSCoGTf4SARIEDh02Jh0rGRQIBgPQ%2FsoCCRYgNEM0JRkAAAABAGQAZgOUBK0ASgAAATIeARUjNC4CIyIGBwYVFB4BFxYXMxUjFgYHBgc%2BATM2FjMyNxcOAyMiLgEHDgEPASc%2BBTc%2BAScjNTMmJy4CPgE3NgIxVJlemSc8OxolVBQpGxoYBgPxxQgVFS02ImIWIIwiUzUyHzY4HCAXanQmJ1YYFzcEGAcTDBEJMAwk3aYXFQcKAg4tJGEErVCLTig%2FIhIdFSw5GkowKgkFZDKCHj4yCg8BIh6TExcIASIfBAMaDAuRAxAFDQsRCjePR2QvORQrREFMIVgAAAACABn%2F%2FwSXBLAADwAfAAABMzIWDwEGIi8BJjY7AREzBRcWBisBESMRIyImPwE2MgGQlhUIDuYOKg7mDggVlsgCF%2BYOCBWWyJYVCA7mDioBLBYO%2Bg8P%2Bg4WA4QQ%2BQ4V%2FHwDhBUO%2BQ8AAAQAGf%2F%2FA%2BgEsAAHABcAGwAlAAABIzUjFSMRIQEzMhYPAQYiLwEmNjsBETMFFTM1EwczFSE1NyM1IQPoZGRkASz9qJYVCA7mDioO5g4IFZbIAZFkY8jI%2FtTIyAEsArxkZAH0%2FHwWDvoPD%2FoOFgOEZMjI%2FRL6ZJb6ZAAAAAAEABn%2F%2FwPoBLAADwAZACEAJQAAATMyFg8BBiIvASY2OwERMwUHMxUhNTcjNSERIzUjFSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAljIyP7UyMgBLGRkZAEsx2QBLBYO%2Bg8P%2Bg4WA4SW%2BmSW%2BmT7UGRkAfRkyMgAAAAEABn%2F%2FwRMBLAADwAVABsAHwAAATMyFg8BBiIvASY2OwERMwEjESM1MxMjNSMRIQcVMzUBkJYVCA7mDioO5g4IFZbIAlhkZMhkZMgBLMdkASwWDvoPD%2FoOFgOE%2FgwBkGT7UGQBkGTIyAAAAAAEABn%2F%2FwRMBLAADwAVABkAHwAAATMyFg8BBiIvASY2OwERMwEjNSMRIQcVMzUDIxEjNTMBkJYVCA7mDioO5g4IFZbIArxkyAEsx2QBZGTIASwWDvoPD%2FoOFgOE%2FgxkAZBkyMj7tAGQZAAAAAAFABn%2F%2FwSwBLAADwATABcAGwAfAAABMzIWDwEGIi8BJjY7AREzBSM1MxMhNSETITUhEyE1IQGQlhUIDuYOKg7mDggVlsgB9MjIZP7UASxk%2FnABkGT%2BDAH0ASwWDvoPD%2FoOFgOEyMj%2BDMj%2BDMj%2BDMgABQAZ%2F%2F8EsASwAA8AEwAXABsAHwAAATMyFg8BBiIvASY2OwERMwUhNSEDITUhAyE1IQMjNTMBkJYVCA7mDioO5g4IFZbIAyD%2BDAH0ZP5wAZBk%2FtQBLGTIyAEsFg76Dw%2F6DhYDhMjI%2FgzI%2FgzI%2FgzIAAIAAAAABEwETAAPAB8AAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmAV4BkKK8u6P%2BcKW5uQJn%2FgwpOzspAfQpOzsETLuj%2FnClubmlAZClucg7Kf4MKTs7KQH0KTsAAAAAAwAAAAAETARMAA8AHwArAAABITIWFREUBiMhIiY1ETQ2BSEiBhURFBYzITI2NRE0JgUXFhQPAQYmNRE0NgFeAZClubml%2FnCju7wCZP4MKTs7KQH0KTs7%2Fm%2F9ERH9EBgYBEy5pf5wpbm5pQGQo7vIOyn%2BDCk7OykB9Ck7gr4MJAy%2BDAsVAZAVCwAAAAADAAAAAARMBEwADwAfACsAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFg8BBiIvASY2AV4BkKO7uaX%2BcKW5uQJn%2FgwpOzspAfQpOzv%2BFQGQFQsMvgwkDL4MCwRMvKL%2BcKW5uaUBkKO7yDsp%2FgwpOzspAfQpO8gYEP0REf0QGAAAAAMAAAAABEwETAAPAB8AKwAAASEyFhURFAYjISImNRE0NgUhIgYVERQWMyEyNjURNCYFFxYGIyEiJj8BNjIBXgGQpbm5pf5wo7u5Amf%2BDCk7OykB9Ck7O%2F77vgwLFf5wFQsMvgwkBEy5pf5wo7u8ogGQpbnIOyn%2BDCk7OykB9Ck7z%2F0QGBgQ%2FREAAAAAAgAAAAAFFARMAB8ANQAAASEyFhURFAYjISImPQE0NjMhMjY1ETQmIyEiJj0BNDYHARYUBwEGJj0BIyImPQE0NjsBNTQ2AiYBkKW5uaX%2BcBUdHRUBwik7Oyn%2BPhUdHb8BRBAQ%2FrwQFvoVHR0V%2BhYETLml%2FnCluR0VZBUdOykB9Ck7HRVkFR3p%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgAAAQDZAAID1wSeACMAAAEXFgcGAgclMhYHIggBBwYrAScmNz4BPwEhIicmNzYANjc2MwMZCQgDA5gCASwYEQ4B%2Fvf%2B8wQMDgkJCQUCUCcn%2FtIXCAoQSwENuwUJEASeCQoRC%2F5TBwEjEv7K%2FsUFDwgLFQnlbm4TFRRWAS%2FTBhAAAAACAAAAAAT%2BBEwAHwA1AAABITIWHQEUBiMhIgYVERQWMyEyFh0BFAYjISImNRE0NgUBFhQHAQYmPQEjIiY9ATQ2OwE1NDYBXgGQFR0dFf4%2BKTs7KQHCFR0dFf5wpbm5AvEBRBAQ%2FrwQFvoVHR0V%2BhYETB0VZBUdOyn%2BDCk7HRVkFR25pQGQpbnp%2FuQOJg7%2B5A4KFZYdFcgVHZYVCgACAAAAAASwBLAAFQAxAAABITIWFREUBi8BAQYiLwEmNDcBJyY2ASMiBhURFBYzITI2PQE3ERQGIyEiJjURNDYzIQLuAZAVHRUObf7IDykPjQ8PAThtDgj%2B75wpOzspAfQpO8i7o%2F5wpbm5pQEsBLAdFf5wFQgObf7IDw%2BNDykPAThtDhX%2B1Dsp%2FgwpOzsplMj%2B1qW5uaUBkKW5AAADAA4ADgSiBKIADwAbACMAAAAyHgIUDgIiLgI0PgEEIg4BFB4BMj4BNCYEMhYUBiImNAHh7tmdXV2d2e7ZnV1dnQHD5sJxccLmwnFx%2FnugcnKgcgSiXZ3Z7tmdXV2d2e7ZnUdxwubCcXHC5sJzcqBycqAAAAMAAAAABEwEsAAVAB8AIwAAATMyFhURMzIWBwEGIicBJjY7ARE0NgEhMhYdASE1NDYFFTM1AcLIFR31FAoO%2FoEOJw3%2BhQ0JFfod%2FoUD6BUd%2B7QdA2dkBLAdFf6iFg%2F%2BVg8PAaoPFgFeFR38fB0V%2BvoVHWQyMgAAAAMAAAAABEwErAAVAB8AIwAACQEWBisBFRQGKwEiJj0BIyImNwE%2BAQEhMhYdASE1NDYFFTM1AkcBeg4KFfQiFsgUGPoUCw4Bfw4n%2FfkD6BUd%2B7QdA2dkBJ7%2BTQ8g%2BhQeHRX6IQ8BrxAC%2FH8dFfr6FR1kMjIAAwAAAAAETARLABQAHgAiAAAJATYyHwEWFAcBBiInASY0PwE2MhcDITIWHQEhNTQ2BRUzNQGMAXEHFQeLBwf98wcVB%2F7cBweLCBUH1APoFR37tB0DZ2QC0wFxBweLCBUH%2FfMICAEjCBQIiwcH%2FdIdFfr6FR1kMjIABAAAAAAETASbAAkAGQAjACcAABM3NjIfAQcnJjQFNzYWFQMOASMFIiY%2FASc3ASEyFh0BITU0NgUVMzWHjg4qDk3UTQ4CFtIOFQIBHRX9qxUIDtCa1P49A%2BgVHfu0HQNnZAP%2Fjg4OTdRMDyqa0g4IFf2pFB4BFQ7Qm9T9Oh0V%2BvoVHWQyMgAAAAQAAAAABEwEsAAPABkAIwAnAAABBR4BFRMUBi8BByc3JyY2EwcGIi8BJjQ%2FAQEhMhYdASE1NDYFFTM1AV4CVxQeARUO0JvUm9IOCMNMDyoOjg4OTf76A%2BgVHfu0HQNnZASwAgEdFf2rFQgO0JrUmtIOFf1QTQ4Ojg4qDk3%2BWB0V%2BvoVHWQyMgACAAT%2F7ASwBK8ABQAIAAAlCQERIQkBFQEEsP4d%2Fsb%2BcQSs%2FTMCq2cBFP5xAacDHPz55gO5AAAAAAIAAABkBEwEsAAVABkAAAERFAYrAREhESMiJjURNDY7AREhETMHIzUzBEwdFZb9RJYVHR0V%2BgH0ZMhkZAPo%2FK4VHQGQ%2FnAdFQPoFB7%2B1AEsyMgAAAMAAABFBN0EsAAWABoALwAAAQcBJyYiDwEhESMiJjURNDY7AREhETMHIzUzARcWFAcBBiIvASY0PwE2Mh8BATYyBEwC%2FtVfCRkJlf7IlhUdHRX6AfRkyGRkAbBqBwf%2BXAgUCMoICGoHFQdPASkHFQPolf7VXwkJk%2F5wHRUD6BQe%2FtQBLMjI%2Fc5qBxUH%2FlsHB8sHFQdqCAhPASkHAAMAAAANBQcEsAAWABoAPgAAAREHJy4BBwEhESMiJjURNDY7AREhETMHIzUzARcWFA8BFxYUDwEGIi8BBwYiLwEmND8BJyY0PwE2Mh8BNzYyBExnhg8lEP72%2FreWFR0dFfoB9GTIZGQB9kYPD4ODDw9GDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykD6P7zZ4YPAw7%2B9v5wHRUD6BQe%2FtQBLMjI%2FYxGDykPg4MPKQ9GDw%2BDgw8PRg8pD4ODDykPRg8Pg4MPAAADAAAAFQSXBLAAFQAZAC8AAAERISIGHQEhESMiJjURNDY7AREhETMHIzUzEzMyFh0BMzIWDwEGIi8BJjY7ATU0NgRM%2FqIVHf4MlhUdHRX6AfRkyGRklmQVHZYVCA7mDioO5g4IFZYdA%2Bj%2B1B0Vlv5wHRUD6BQe%2FtQBLMjI%2FagdFfoVDuYODuYOFfoVHQAAAAADAAAAAASXBLAAFQAZAC8AAAERJyYiBwEhESMiJjURNDY7AREhETMHIzUzExcWBisBFRQGKwEiJj0BIyImPwE2MgRMpQ4qDv75%2Fm6WFR0dFfoB9GTIZGTr5g4IFZYdFWQVHZYVCA7mDioD6P5wpQ8P%2Fvf%2BcB0VA%2BgUHv7UASzIyP2F5Q8V%2BhQeHhT6FQ%2FlDwADAAAAyASwBEwACQATABcAABMhMhYdASE1NDYBERQGIyEiJjURExUhNTIETBUd%2B1AdBJMdFfu0FR1kAZAETB0VlpYVHf7U%2FdoVHR0VAib%2B1MjIAAAGAAMAfQStBJcADwAZAB0ALQAxADsAAAEXFhQPAQYmPQEhNSE1NDYBIyImPQE0NjsBFyM1MwE3NhYdASEVIRUUBi8BJjQFIzU7AjIWHQEUBisBA6f4Dg74DhX%2BcAGQFf0vMhUdHRUyyGRk%2FoL3DhUBkP5wFQ73DwOBZGRkMxQdHRQzBI3mDioO5g4IFZbIlhUI%2FoUdFWQVHcjI%2FcvmDggVlsiWFQgO5g4qecgdFWQVHQAAAAACAGQAAASwBLAAFgBRAAABJTYWFREUBisBIiY1ES4ENRE0NiUyFh8BERQOAg8BERQGKwEiJjURLgQ1ETQ%2BAzMyFh8BETMRPAE%2BAjMyFh8BETMRND4DA14BFBklHRXIFR0EDiIaFiX%2B4RYZAgEVHR0LCh0VyBUdBA4iGhYBBwoTDRQZAgNkBQkVDxcZAQFkAQUJFQQxdBIUH%2FuuFR0dFQGNAQgbHzUeAWcfRJEZDA3%2BPhw%2FMSkLC%2F5BFR0dFQG%2FBA8uLkAcAcICBxENCxkMDf6iAV4CBxENCxkMDf6iAV4CBxENCwABAGQAAASwBEwAMwAAARUiDgMVERQWHwEVITUyNjURIREUFjMVITUyPgM1ETQmLwE1IRUiBhURIRE0JiM1BLAEDiIaFjIZGf5wSxn%2BDBlL%2FnAEDiIaFjIZGQGQSxkB9BlLBEw4AQUKFA78iBYZAQI4OA0lAYr%2BdiUNODgBBQoUDgN4FhkBAjg4DSX%2BdgGKJQ04AAAABgAAAAAETARMAAwAHAAgACQAKAA0AAABITIWHQEjBTUnITchBSEyFhURFAYjISImNRE0NhcVITUBBTUlBRUhNQUVFAYjIQchJyE3MwKjAXcVHWn%2B2cj%2BcGQBd%2F4lASwpOzsp%2FtQpOzspASwCvP5wAZD8GAEsArwdFf6JZP6JZAGQyGkD6B0VlmJiyGTIOyn%2BDCk7OykB9Ck7ZMjI%2FveFo4XGyMhm%2BBUdZGTIAAEAEAAQBJ8EnwAmAAATNzYWHwEWBg8BHgEXNz4BHwEeAQ8BBiIuBicuBTcRohEuDosOBhF3ZvyNdxEzE8ATBxGjAw0uMUxPZWZ4O0p3RjITCwED76IRBhPCFDERdo78ZXYRBA6IDi8RogEECBUgNUNjO0qZfHNVQBAAAAACAAAAAASwBEwAIwBBAAAAMh4EHwEVFAYvAS4BPQEmIAcVFAYPAQYmPQE%2BBRIyHgIfARUBHgEdARQGIyEiJj0BNDY3ATU0PgIB%2FLimdWQ%2FLAkJHRTKFB2N%2FsKNHRTKFB0DDTE7ZnTKcFImFgEBAW0OFR0V%2B7QVHRUOAW0CFiYETBUhKCgiCgrIFRgDIgMiFZIYGJIVIgMiAxgVyAQNJyQrIP7kExwcCgoy%2FtEPMhTUFR0dFdQUMg8BLzIEDSEZAAADAAAAAASwBLAADQAdACcAAAEHIScRMxUzNTMVMzUzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYETMj9qMjIyMjIyPyuArwVHR0VDIn8SokMFR0dswRMFR37UB0CvMjIAfTIyMjI%2FOAdKh1kZB0qHf7UHRUyMhUdAAAAAwBkAAAEsARMAAkAEwAdAAABIyIGFREhETQmASMiBhURIRE0JgEhETQ2OwEyFhUCvGQpOwEsOwFnZCk7ASw7%2FRv%2B1DspZCk7BEw7KfwYA%2BgpO%2F7UOyn9RAK8KTv84AGQKTs7KQAAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQURByMRMwcRMxHIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkyMhkZARMsHz%2BDHywsHwB9HywyP1EArzIZP7UZGQBLGT%2B1GQB9GT%2B1AEsAAAABf%2BcAAAEsARMAA8AEwAfACUAKQAAEyEyFhURFAYjISImNRE0NhcRIREBIzUjFSMRMxUzNTMFEQcjETMHETMRyAK8fLCwfP1EfLCwGAOE%2FgxkZGRkZGQBkGTIyGRkBEywfP4MfLCwfAH0fLDI%2FUQCvP2oyMgB9MjIZP7UZAH0ZP7UASwABP%2BcAAAEsARMAA8AEwAbACMAABMhMhYVERQGIyEiJjURNDYXESERBSMRMxUhESEFIxEzFSERIcgCvHywsHz9RHywsBgDhP4MyMj%2B1AEsAZDIyP7UASwETLB8%2Fgx8sLB8AfR8sMj9RAK8yP7UZAH0ZP7UZAH0AAAABP%2BcAAAEsARMAA8AEwAWABkAABMhMhYVERQGIyEiJjURNDYXESERAS0BDQERyAK8fLCwfP1EfLCwGAOE%2Fgz%2B1AEsAZD%2B1ARMsHz%2BDHywsHwB9HywyP1EArz%2BDJaWlpYBLAAAAAX%2FnAAABLAETAAPABMAFwAgACkAABMhMhYVERQGIyEiJjURNDYXESERAyERIQcjIgYVFBY7AQERMzI2NTQmI8gCvHywsHz9RHywsBgDhGT9RAK8ZIImOTYpgv4Mgik2OSYETLB8%2Fgx8sLB8AfR8sMj9RAK8%2FagB9GRWQUFUASz%2B1FRBQVYAAAAF%2F5wAAASwBEwADwATAB8AJQApAAATITIWFREUBiMhIiY1ETQ2FxEhEQUjFTMRITUzNSMRIQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMjI%2FtTIyAEsAZBkZMjIZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yGT%2B1GRkASz%2BDAGQZP4MZAAG%2F5wAAASwBEwADwATABkAHwAjACcAABMhMhYVERQGIyEiJjURNDYXESERBTMRIREzASMRIzUzBRUzNQEjNTPIArx8sLB8%2FUR8sLAYA4T9RMj%2B1GQCWGRkyP2oZAEsZGQETLB8%2Fgx8sLB8AfR8sMj9RAK8yP5wAfT%2BDAGQZMjIyP7UZAAF%2F5wAAASwBEwADwATABwAIgAmAAATITIWFREUBiMhIiY1ETQ2FxEhEQEHIzU3NSM1IQEjESM1MwMjNTPIArx8sLB8%2FUR8sLAYA4T%2BDMdkx8gBLAGQZGTIx2RkBEywfP4MfLCwfAH0fLDI%2FUQCvP5wyDLIlmT%2BDAGQZP4MZAAAAAMACQAJBKcEpwAPABsAJQAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgchFSEVISc1NyEB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWz%2B1AEs%2FtRkZAEsBKdentvw255eXp7b8NueTHHC5MJxccLkwtDIZGTIZAAAAAAEAAkACQSnBKcADwAbACcAKwAAADIeAhQOAiIuAjQ%2BAQQiDgEUHgEyPgE0JgcVBxcVIycjFSMRIQcVMzUB4PDbnl5entvw255eXp4BxeTCcXHC5MJxcWwyZGRklmQBLMjIBKdentvw255eXp7b8NueTHHC5MJxccLkwtBkMmQyZGQBkGRkZAAAAv%2Fy%2F50EwgRBACAANgAAATIWFzYzMhYUBisBNTQmIyEiBh0BIyImNTQ2NyY1ND4BEzMyFhURMzIWDwEGIi8BJjY7ARE0NgH3brUsLC54qqp4gB0V%2FtQVHd5QcFZBAmKqepYKD4kVCg3fDSYN3w0KFYkPBEF3YQ6t8a36FR0dFfpzT0VrDhMSZKpi%2FbMPCv7tFxD0EBD0EBcBEwoPAAAAAAL%2F8v%2BcBMMEQQAcADMAAAEyFhc2MzIWFxQGBwEmIgcBIyImNTQ2NyY1ND4BExcWBisBERQGKwEiJjURIyImNzY3NjIB9m62LCsueaoBeFr%2Bhg0lDf6DCU9xVkECYqnm3w0KFYkPCpYKD4kVCg3HGBMZBEF3YQ%2BteGOkHAFoEBD%2Bk3NPRWsOExNkqWP9kuQQF%2F7tCg8PCgETFxDMGBMAAAABAGQAAARMBG0AGAAAJTUhATMBMwkBMwEzASEVIyIGHQEhNTQmIwK8AZD%2B8qr%2B8qr%2B1P7Uqv7yqv7yAZAyFR0BkB0VZGQBLAEsAU3%2Bs%2F7U%2FtRkHRUyMhUdAAAAAAEAeQAABDcEmwAvAAABMhYXHgEVFAYHFhUUBiMiJxUyFh0BITU0NjM1BiMiJjU0Ny4BNTQ2MzIXNCY1NDYCWF6TGll7OzIJaUo3LRUd%2FtQdFS03SmkELzlpSgUSAqMEm3FZBoNaPWcfHRpKaR77HRUyMhUd%2Bx5pShIUFVg1SmkCAhAFdKMAAAAGACcAFASJBJwAEQAqAEIASgBiAHsAAAEWEgIHDgEiJicmAhI3PgEyFgUiBw4BBwYWHwEWMzI3Njc2Nz4BLwEmJyYXIgcOAQcGFh8BFjMyNz4BNz4BLwEmJyYWJiIGFBYyNjciBw4BBw4BHwEWFxYzMjc%2BATc2Ji8BJhciBwYHBgcOAR8BFhcWMzI3PgE3NiYvASYD8m9PT29T2dzZU29PT29T2dzZ%2Fj0EBHmxIgQNDCQDBBcGG0dGYAsNAwkDCwccBAVQdRgEDA0iBAQWBhJROQwMAwkDCwf5Y4xjY4xjVhYGElE6CwwDCQMLBwgEBVB1GAQNDCIEjRcGG0dGYAsNAwkDCwcIBAR5sSIEDQwkAwPyb%2F7V%2FtVvU1dXU28BKwErb1NXVxwBIrF5DBYDCQEWYEZHGwMVDCMNBgSRAhh1UA0WAwkBFTpREgMVCyMMBwT6Y2OMY2MVFTpREQQVCyMMBwQCGHVQDRYDCQEkFmBGRxsDFQwjDQYEASKxeQwWAwkBAAAABQBkAAAD6ASwAAwADwAWABwAIgAAASERIzUhFSERNDYzIQEjNQMzByczNTMDISImNREFFRQGKwECvAEstP6s%2FoQPCgI%2FASzIZKLU1KJktP51Cg8DhA8KwwMg%2FoTIyALzCg%2F%2B1Mj84NTUyP4MDwoBi8jDCg8AAAAABQBkAAAD6ASwAAkADAATABoAIQAAASERCQERNDYzIQEjNRMjFSM1IzcDISImPQEpARUUBisBNQK8ASz%2Bov3aDwoCPwEsyD6iZKLUqv6dCg8BfAIIDwqbAyD9%2BAFe%2FdoERwoP%2FtTI%2FHzIyNT%2BZA8KNzcKD1AAAAAAAwAAAAAEsAP0AAgAGQAfAAABIxUzFyERIzcFMzIeAhUhFSEDETM0PgIBMwMhASEEiqJkZP7UotT9EsgbGiEOASz9qMhkDiEaAnPw8PzgASwB9AMgyGQBLNTUBBErJGT%2BogHCJCsRBP5w%2FnAB9AAAAAMAAAAABEwETAAZADIAOQAAATMyFh0BMzIWHQEUBiMhIiY9ATQ2OwE1NDYFNTIWFREUBiMhIic3ARE0NjMVFBYzITI2AQc1IzUzNQKKZBUdMhUdHRX%2B1BUdHRUyHQFzKTs7Kf2oARP2%2Fro7KVg%2BASw%2BWP201MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7KfzgKTsE9gFGAUQpO5Y%2BWFj95tSiZKIAAwBkAAAEvARMABkANgA9AAABMzIWHQEzMhYdARQGIyEiJj0BNDY7ATU0NgU1MhYVESMRMxQOAiMhIiY1ETQ2MxUUFjMhMjYBBzUjNTM1AcJkFR0yFR0dFf7UFR0dFTIdAXMpO8jIDiEaG%2F2oKTs7KVg%2BASw%2BWAGc1MjIBEwdFTIdFWQVHR0VZBUdMhUd%2BpY7Kf4M%2FtQkKxEEOykDICk7lj5YWP3m1KJkogAAAAP%2FogAABRYE1AALABsAHwAACQEWBiMhIiY3ATYyEyMiBhcTHgE7ATI2NxM2JgMVMzUCkgJ9FyAs%2BwQsIBcCfRZARNAUGAQ6BCMUNhQjBDoEGODIBK37sCY3NyYEUCf%2BTB0U%2FtIUHR0UAS4UHf4MZGQAAAAACQAAAAAETARMAA8AHwAvAD8ATwBfAG8AfwCPAAABMzIWHQEUBisBIiY9ATQ2EzMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBMzIWHQEUBisBIiY9ATQ2ITMyFh0BFAYrASImPQE0NiEzMhYdARQGKwEiJj0BNDYBqfoKDw8K%2BgoPDwr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPD%2Fzq%2BgoPDwr6Cg8PAZr6Cg8PCvoKDw8BmvoKDw8K%2BgoPDwRMDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg%2F%2B1A8KlgoPDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKD%2F7UDwqWCg8PCpYKDw8KlgoPDwqWCg8PCpYKDw8KlgoPAAAAAwAAAAAEsAUUABkAKQAzAAABMxUjFSEyFg8BBgchJi8BJjYzITUjNTM1MwEhMhYUBisBFyE3IyImNDYDITIWHQEhNTQ2ArxkZAFePjEcQiko%2FPwoKUIcMT4BXmRkyP4%2BArwVHR0VDIn8SooNFR0dswRMFR37UB0EsMhkTzeEUzMzU4Q3T2TIZPx8HSodZGQdKh3%2B1B0VMjIVHQAABAAAAAAEsAUUAAUAGQArADUAAAAyFhUjNAchFhUUByEyFg8BIScmNjMhJjU0AyEyFhQGKwEVBSElNSMiJjQ2AyEyFh0BITU0NgIwUDnCPAE6EgMBSCkHIq%2F9WrIiCikBSAOvArwVHR0VlgET%2FEoBE5YVHR2zBEwVHftQHQUUOykpjSUmCBEhFpGRFiERCCb%2BlR0qHcjIyMgdKh39qB0VMjIVHQAEAAAAAASwBJ0ABwAUACQALgAAADIWFAYiJjQTMzIWFRQXITY1NDYzASEyFhQGKwEXITcjIiY0NgMhMhYdASE1NDYCDZZqapZqty4iKyf%2BvCcrI%2F7NArwVHR0VDYr8SokMFR0dswRMFR37UB0EnWqWamqW%2Fus5Okxra0w6Of5yHSodZGQdKh3%2B1B0VMjIVHQAEAAAAAASwBRQADwAcACwANgAAATIeARUUBiImNTQ3FzcnNhMzMhYVFBchNjU0NjMBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYL1szb5xvIpBvoyIfLiIrJ%2F68Jysj%2Fs0CvBUdHRUNivxKiQwVHR2zBEwVHftQHQUUa4s2Tm9vTj5Rj2%2BjGv4KOTpMa2tMOjn%2Bch0qHWRkHSod%2FtQdFTIyFR0AAAADAAAAAASwBRIAEgAiACwAAAEFFSEUHgMXIS4BNTQ%2BAjcBITIWFAYrARchNyMiJjQ2AyEyFh0BITU0NgJYASz%2B1CU%2FP00T%2Fe48PUJtj0r%2BogK8FR0dFQ2K%2FEqJDBUdHbMETBUd%2B1AdBLChizlmUT9IGVO9VFShdksE%2FH4dKh1kZB0qHf7UHRUyMhUdAAIAyAAAA%2BgFFAAPACkAAAAyFh0BHgEdASE1NDY3NTQDITIWFyMVMxUjFTMVIxUzFAYjISImNRE0NgIvUjsuNv5wNi5kAZA2XBqsyMjIyMh1U%2F5wU3V1BRQ7KU4aXDYyMjZcGk4p%2Fkc2LmRkZGRkU3V1UwGQU3UAAAMAZP%2F%2FBEwETAAPAC8AMwAAEyEyFhURFAYjISImNRE0NgMhMhYdARQGIyEXFhQGIi8BIQcGIiY0PwEhIiY9ATQ2BQchJ5YDhBUdHRX8fBUdHQQDtgoPDwr%2B5eANGiUNWP30Vw0mGg3g%2Ft8KDw8BqmQBRGQETB0V%2FgwVHR0VAfQVHf1EDwoyCg%2FgDSUbDVhYDRslDeAPCjIKD2RkZAAAAAAEAAAAAASwBEwAGQAjAC0ANwAAEyEyFh0BIzQmKwEiBhUjNCYrASIGFSM1NDYDITIWFREhETQ2ExUUBisBIiY9ASEVFAYrASImPQHIAyBTdWQ7KfopO2Q7KfopO2R1EQPoKTv7UDvxHRVkFR0D6B0VZBUdBEx1U8gpOzspKTs7KchTdf4MOyn%2B1AEsKTv%2BDDIVHR0VMjIVHR0VMgADAAEAAASpBKwADQARABsAAAkBFhQPASEBJjQ3ATYyCQMDITIWHQEhNTQ2AeACqh8fg%2F4f%2FfsgIAEnH1n%2BrAFWAS%2F%2Bq6IDIBUd%2FHwdBI39VR9ZH4MCBh9ZHwEoH%2F5u%2FqoBMAFV%2FBsdFTIyFR0AAAAAAgCPAAAEIQSwABcALwAAAQMuASMhIgYHAwYWMyEVFBYyNj0BMzI2AyE1NDY7ATU0NjsBETMRMzIWHQEzMhYVBCG9CCcV%2FnAVJwi9CBMVAnEdKh19FROo%2Fa0dFTIdFTDILxUdMhUdAocB%2BhMcHBP%2BBhMclhUdHRWWHP2MMhUdMhUdASz%2B1B0VMh0VAAAEAAAAAASwBLAADQAQAB8AIgAAASERFAYjIREBNTQ2MyEBIzUBIREUBiMhIiY1ETQ2MyEBIzUDhAEsDwr%2Bif7UDwoBdwEsyP2oASwPCv12Cg8PCgF3ASzIAyD9wQoPAk8BLFQKD%2F7UyP4M%2FcEKDw8KA7YKD%2F7UyAAC%2F5wAZAUUBEcARgBWAAABMzIeAhcWFxY2NzYnJjc%2BARYXFgcOASsBDgEPAQ4BKwEiJj8BBisBIicHDgErASImPwEmLwEuAT0BNDY7ATY3JyY2OwE2BSMiBh0BFBY7ATI2PQE0JgHkw0uOakkMEhEfQwoKGRMKBQ8XDCkCA1Y9Pgc4HCcDIhVkFRgDDDEqwxgpCwMiFWQVGAMaVCyfExwdFXwLLW8QBxXLdAFF%2BgoPDwr6Cg8PBEdBa4pJDgYKISAiJRsQCAYIDCw9P1c3fCbqFB0dFEYOCEAUHR0UnUplNQcmFTIVHVdPXw4TZV8PCjIKDw8KMgoPAAb%2FnP%2FmBRQEfgAJACQANAA8AFIAYgAAASU2Fh8BFgYPASUzMhYfASEyFh0BFAYHBQYmJyYjISImPQE0NhcjIgYdARQ7ATI2NTQmJyYEIgYUFjI2NAE3PgEeARceAT8BFxYGDwEGJi8BJjYlBwYfAR4BPwE2Jy4BJy4BAoEBpxMuDiAOAxCL%2FCtqQ0geZgM3FR0cE%2F0fFyIJKjr%2B1D5YWLlQExIqhhALIAsSAYBALS1ALf4PmBIgHhMQHC0aPzANITNQL3wpgigJASlmHyElDR0RPRMFAhQHCxADhPcICxAmDyoNeMgiNtQdFTIVJgeEBBQPQ1g%2ByD5YrBwVODMQEAtEERzJLUAtLUD%2B24ITChESEyMgAwWzPUkrRSgJL5cvfRxYGyYrDwkLNRAhFEgJDAQAAAAAAwBkAAAEOQSwAFEAYABvAAABMzIWHQEeARcWDgIPATIeBRUUDgUjFRQGKwEiJj0BIxUUBisBIiY9ASMiJj0BNDY7AREjIiY9ATQ2OwE1NDY7ATIWHQEzNTQ2AxUhMj4CNTc0LgMjARUhMj4CNTc0LgMjAnGWCg9PaAEBIC4uEBEGEjQwOiodFyI2LUAjGg8KlgoPZA8KlgoPrwoPDwpLSwoPDwqvDwqWCg9kD9cBBxwpEwsBAQsTKRz%2B%2BQFrHCkTCwEBCxMpHASwDwptIW1KLk0tHwYGAw8UKDJOLTtdPCoVCwJLCg8PCktLCg8PCksPCpYKDwJYDwqWCg9LCg8PCktLCg%2F%2B1MgVHR0LCgQOIhoW%2FnDIFR0dCwoEDiIaFgAAAwAEAAIEsASuABcAKQAsAAATITIWFREUBg8BDgEjISImJy4CNRE0NgQiDgQPARchNy4FAyMT1AMMVnokEhIdgVL9xFKCHAgYKHoCIIx9VkcrHQYGnAIwnAIIIClJVSGdwwSuelb%2BYDO3QkJXd3ZYHFrFMwGgVnqZFyYtLSUMDPPzBQ8sKDEj%2FsIBBQACAMgAAAOEBRQADwAZAAABMzIWFREUBiMhIiY1ETQ2ARUUBisBIiY9AQHblmesVCn%2BPilUrAFINhWWFTYFFKxn%2FgwpVFQpAfRnrPwY4RU2NhXhAAACAMgAAAOEBRQADwAZAAABMxQWMxEUBiMhIiY1ETQ2ARUUBisBIiY9AQHbYLOWVCn%2BPilUrAFINhWWFTYFFJaz%2FkIpVFQpAfRnrPwY4RU2NhXhAAACAAAAFAUOBBoAFAAaAAAJASUHFRcVJwc1NzU0Jj4CPwEnCQEFJTUFJQUO%2FYL%2Bhk5klpZkAQEBBQQvkwKCAVz%2Bov6iAV4BXgL%2F%2FuWqPOCWx5SVyJb6BA0GCgYDKEEBG%2F1ipqaTpaUAAAMAZAH0BLADIAAHAA8AFwAAEjIWFAYiJjQkMhYUBiImNCQyFhQGIiY0vHxYWHxYAeh8WFh8WAHofFhYfFgDIFh8WFh8WFh8WFh8WFh8WFh8AAAAAAMBkAAAArwETAAHAA8AFwAAADIWFAYiJjQSMhYUBiImNBIyFhQGIiY0Aeh8WFh8WFh8WFh8WFh8WFh8WARMWHxYWHz%2ByFh8WFh8%2FshYfFhYfAAAAAMAZABkBEwETAAPAB8ALwAAEyEyFh0BFAYjISImPQE0NhMhMhYdARQGIyEiJj0BNDYTITIWHQEUBiMhIiY9ATQ2fQO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PCgO2Cg8PCvxKCg8PBEwPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoP%2FnAPCpYKDw8KlgoPAAAABAAAAAAEsASwAA8AHwAvADMAAAEhMhYVERQGIyEiJjURNDYFISIGFREUFjMhMjY1ETQmBSEyFhURFAYjISImNRE0NhcVITUBXgH0ory7o%2F4Mpbm5Asv9qCk7OykCWCk7O%2F2xAfQVHR0V%2FgwVHR1HAZAEsLuj%2FgylubmlAfSlucg7Kf2oKTs7KQJYKTtkHRX%2B1BUdHRUBLBUdZMjIAAAAAAEAZABkBLAETAA7AAATITIWFAYrARUzMhYUBisBFTMyFhQGKwEVMzIWFAYjISImNDY7ATUjIiY0NjsBNSMiJjQ2OwE1IyImNDaWA%2BgVHR0VMjIVHR0VMjIVHR0VMjIVHR0V%2FBgVHR0VMjIVHR0VMjIVHR0VMjIVHR0ETB0qHcgdKh3IHSodyB0qHR0qHcgdKh3IHSodyB0qHQAAAAYBLAAFA%2BgEowAHAA0AEwAZAB8AKgAAAR4BBgcuATYBMhYVIiYlFAYjNDYBMhYVIiYlFAYjNDYDFRQGIiY9ARYzMgKKVz8%2FV1c%2FP%2F75fLB8sAK8sHyw%2FcB8sHywArywfLCwHSodKAMRBKNDsrJCQrKy%2FsCwfLB8fLB8sP7UsHywfHywfLD%2B05AVHR0VjgQAAAH%2FtQDIBJQDgQBCAAABNzYXAR4BBw4BKwEyFRQOBCsBIhE0NyYiBxYVECsBIi4DNTQzIyImJyY2NwE2HwEeAQ4BLwEHIScHBi4BNgLpRRkUASoLCAYFGg8IAQQNGyc%2FKZK4ChRUFQu4jjBJJxkHAgcPGQYGCAsBKhQaTBQVCiMUM7YDe7YsFCMKFgNuEwYS%2FtkLHw8OEw0dNkY4MhwBIBgXBAQYF%2F7gKjxTQyMNEw4PHwoBKBIHEwUjKBYGDMHBDAUWKCMAAAAAAgAAAAAEsASwACUAQwAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjNC4DKwERFBYXMxUjNTI1ESMiDgMVIzUhBLAyCAsZEyYYGcgyGRn%2BcAQOIhoWyBkYJhMZCwgyA%2Bj9RBkIChgQEWQZDQzIMmQREBgKCBkB9AOEFSAVDggDAfyuFhkBAmRkAQUJFQ4DUgEDCA4VIBUBLP0SDxMKBQH%2BVwsNATIyGQGpAQUKEw%2BWAAAAAAMAAAAABEwErgAdACAAMAAAATUiJy4BLwEBIwEGBw4BDwEVITUiJj8BIRcWBiMVARsBARUUBiMhIiY9ATQ2MyEyFgPoGR4OFgUE%2Ft9F%2FtQSFQkfCwsBETE7EkUBJT0NISf%2B7IZ5AbEdFfwYFR0dFQPoFR0BLDIgDiIKCwLr%2FQ4jFQkTBQUyMisusKYiQTIBhwFW%2Fqr942QVHR0VZBUdHQADAAAAAASwBLAADwBHAEoAABMhMhYVERQGIyEiJjURNDYFIyIHAQYHBgcGHQEUFjMhMjY9ATQmIyInJj8BIRcWBwYjIgYdARQWMyEyNj0BNCYnIicmJyMBJhMjEzIETBUdHRX7tBUdHQJGRg0F%2FtUREhImDAsJAREIDAwINxAKCj8BCjkLEQwYCAwMCAE5CAwLCBEZGQ8B%2FuAFDsVnBLAdFfu0FR0dFQRMFR1SDP0PIBMSEAUNMggMDAgyCAwXDhmjmR8YEQwIMggMDAgyBwwBGRskAuwM%2FgUBCAAABAAAAAAEsASwAAMAEwAjACcAAAEhNSEFITIWFREUBiMhIiY1ETQ2KQEyFhURFAYjISImNRE0NhcRIREEsPtQBLD7ggGQFR0dFf5wFR0dAm0BkBUdHRX%2BcBUdHUcBLARMZMgdFfx8FR0dFQOEFR0dFf5wFR0dFQGQFR1k%2FtQBLAAEAAAAAASwBLAADwAfACMAJwAAEyEyFhURFAYjISImNRE0NgEhMhYVERQGIyEiJjURNDYXESEREyE1ITIBkBUdHRX%2BcBUdHQJtAZAVHR0V%2FnAVHR1HASzI%2B1AEsASwHRX8fBUdHRUDhBUd%2FgwdFf5wFR0dFQGQFR1k%2FtQBLP2oZAAAAAACAAAAZASwA%2BgAJwArAAATITIWFREzNTQ2MyEyFh0BMxUjFRQGIyEiJj0BIxEUBiMhIiY1ETQ2AREhETIBkBUdZB0VAZAVHWRkHRX%2BcBUdZB0V%2FnAVHR0CnwEsA%2BgdFf6ilhUdHRWWZJYVHR0Vlv6iFR0dFQMgFR3%2B1P7UASwAAAQAAAAABLAEsAADABMAFwAnAAAzIxEzFyEyFhURFAYjISImNRE0NhcRIREBITIWFREUBiMhIiY1ETQ2ZGRklgGQFR0dFf5wFR0dRwEs%2FqIDhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAAAAgBkAAAETASwACcAKwAAATMyFhURFAYrARUhMhYVERQGIyEiJjURNDYzITUjIiY1ETQ2OwE1MwcRIRECWJYVHR0VlgHCFR0dFfx8FR0dFQFelhUdHRWWZMgBLARMHRX%2BcBUdZB0V%2FnAVHR0VAZAVHWQdFQGQFR1kyP7UASwAAAAEAAAAAASwBLAAAwATABcAJwAAISMRMwUhMhYVERQGIyEiJjURNDYXESERASEyFhURFAYjISImNRE0NgSwZGT9dgGQFR0dFf5wFR0dRwEs%2FK4DhBUdHRX8fBUdHQSwZB0V%2FnAVHR0VAZAVHWT%2B1AEs%2FgwdFf5wFR0dFQGQFR0AAAEBLAAwA28EgAAPAAAJAQYjIiY1ETQ2MzIXARYUA2H%2BEhcSDhAQDhIXAe4OAjX%2BEhcbGQPoGRsX%2FhIOKgAAAAABAUEAMgOEBH4ACwAACQE2FhURFAYnASY0AU8B7h0qKh3%2BEg4CewHuHREp%2FBgpER0B7g4qAAAAAAEAMgFBBH4DhAALAAATITIWBwEGIicBJjZkA%2BgpER3%2BEg4qDv4SHREDhCod%2FhIODgHuHSoAAAAAAQAyASwEfgNvAAsAAAkBFgYjISImNwE2MgJ7Ae4dESn8GCkRHQHuDioDYf4SHSoqHQHuDgAAAAACAAgAAASwBCgABgAKAAABFQE1LQE1ASE1IQK8%2FUwBnf5jBKj84AMgAuW2%2Fr3dwcHd%2B9jIAAAAAAIAAABkBLAEsAALADEAAAEjFTMVIREzNSM1IQEzND4FOwERFAYPARUhNSIuAzURMzIeBRUzESEEsMjI%2FtTIyAEs%2B1AyCAsZEyYYGWQyGRkBkAQOIhoWZBkYJhMZCwgy%2FOADhGRkASxkZP4MFSAVDggDAf3aFhkBAmRkAQUJFQ4CJgEDCA4VIBUBLAAAAgAAAAAETAPoACUAMQAAASM0LgUrAREUFh8BFSE1Mj4DNREjIg4FFSMRIQEjFTMVIREzNSM1IQMgMggLGRMmGBlkMhkZ%2FnAEDiIaFmQZGCYTGQsIMgMgASzIyP7UyMgBLAK8FSAVDggDAf3aFhkCAWRkAQUJFQ4CJgEDCA4VIBUBLPzgZGQBLGRkAAABAMgAZgNyBEoAEgAAATMyFgcJARYGKwEiJwEmNDcBNgK9oBAKDP4wAdAMChCgDQr%2BKQcHAdcKBEoWDP4w%2FjAMFgkB1wgUCAHXCQAAAQE%2BAGYD6ARKABIAAAEzMhcBFhQHAQYrASImNwkBJjYBU6ANCgHXBwf%2BKQoNoBAKDAHQ%2FjAMCgRKCf4pCBQI%2FikJFgwB0AHQDBYAAAEAZgDIBEoDcgASAAAAFh0BFAcBBiInASY9ATQ2FwkBBDQWCf4pCBQI%2FikJFgwB0AHQA3cKEKANCv4pBwcB1woNoBAKDP4wAdAAAAABAGYBPgRKA%2BgAEgAACQEWHQEUBicJAQYmPQE0NwE2MgJqAdcJFgz%2BMP4wDBYJAdcIFAPh%2FikKDaAQCgwB0P4wDAoQoA0KAdcHAAAAAgDZ%2F%2FkEPQSwAAUAOgAAARQGIzQ2BTMyFh8BNjc%2BAh4EBgcOBgcGIiYjIgYiJy4DLwEuAT4EHgEXJyY2A%2BiwfLD%2BVmQVJgdPBQsiKFAzRyorDwURAQQSFyozTSwNOkkLDkc3EDlfNyYHBw8GDyUqPjdGMR%2BTDA0EsHywfLDIHBPCAQIGBwcFDx81S21DBxlLR1xKQhEFBQcHGWt0bCQjP2hJNyATBwMGBcASGAAAAAACAMgAFQOEBLAAFgAaAAATITIWFREUBisBEQcGJjURIyImNRE0NhcVITX6AlgVHR0Vlv8TGpYVHR2rASwEsB0V%2FnAVHf4MsgkQFQKKHRUBkBUdZGRkAAAAAgDIABkETASwAA4AEgAAEyEyFhURBRElIREjETQ2ARU3NfoC7ic9%2FUQCWP1EZB8BDWQEsFEs%2FFt1A7Z9%2FBgEARc0%2FV1kFGQAAQAAAAECTW%2FDBF9fDzz1AB8EsAAAAADQdnOXAAAAANB2c5f%2FUf%2BcBdwFFAAAAAgAAgAAAAAAAAABAAAFFP%2BFAAAFFP9R%2FtQF3AABAAAAAAAAAAAAAAAAAAAAowG4ACgAAAAAAZAAAASwAAAEsABkBLAAAASwAAAEsABwAooAAAUUAAACigAABRQAAAGxAAABRQAAANgAAADYAAAAogAAAQQAAABIAAABBAAAAUUAAASwAGQEsAB7BLAAyASwAMgB9AAABLD%2F8gSwAAAEsAAABLD%2F8ASwAAAEsAAOBLAACQSwAGQEsP%2FTBLD%2F0wSwAAAEsAAABLAAAASwAAAEsAAABLAAJgSwAG4EsAAXBLAAFwSwABcEsABkBLAAGgSwAGQEsAAMBLAAZASwABcEsP%2BcBLAAZASwABcEsAAXBLAAAASwABcEsAAXBLAAFwSwAGQEsAAABLAAZASwAAAEsAAABLAAAASwAAAEsAAABLAAAASwAAAEsAAABLAAZASwAMgEsAAABLAAAASwADUEsABkBLAAyASw%2F7UEsAAhBLAAAASwAAAEsAAABLAAAASwAAAEsP%2BcBLAAAASwAAAEsAAABLAA2wSwABcEsAB1BLAAAASwAAAEsAAABLAACgSwAMgEsAAABLAAnQSwAMgEsADIBLAAyASwAAAEsP%2F%2BBLABLASwAGQEsACIBLABOwSwABcEsAAXBLAAFwSwABcEsAAXBLAAFwSwAAAEsAAXBLAAFwSwABcEsAAXBLAAAASwALcEsAC3BLAAAASwAAAEsABJBLAAFwSwAAAEsAAABLAAXQSw%2F9wEsP%2FcBLD%2FnwSwAGQEsAAABLAAAASwAAAEsABkBLD%2F%2FwSwAAAEsP9RBLAABgSwAAAEsAAABLABRQSwAAEEsAAABLD%2FnASwAEoEsAAUBLAAAASwAAAEsAAABLD%2FnASwAGEEsP%2F9BLAAFgSwABYEsAAWBLAAFgSwABgEsAAABMQAAASwAGQAAAAAAAD%2F2ABkADkAyAAAAScAZAAZABkAGQAZABkAGQAZAAAAAAAAAAAAAADZAAAAAAAOAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAMAZABkAAAAEAAAAAAAZP%2Bc%2F5z%2FnP%2Bc%2F5z%2FnP%2Bc%2F5wACQAJ%2F%2FL%2F8gBkAHkAJwBkAGQAAAAAAGT%2FogAAAAAAAAAAAAAAAADIAGQAAAABAI8AAP%2Bc%2F5wAZAAEAMgAyAAAAGQBkABkAAAAZAEs%2F7UAAAAAAAAAAAAAAAAAAABkAAABLAFBADIAMgAIAAAAAADIAT4AZgBmANkAyADIAAAAKgAqACoAKgCyAOgA6AFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BTgFOAU4BpAIGAiICfgKGAqwC5ANGA24DjAPEBAgEMgRiBKIE3AVcBboGcgb0ByAHYgfKCB4IYgi%2BCTYJhAm2Cd4KKApMCpQK4gswC4oLygwIDFgNKg1eDbAODg5oDrQPKA%2BmD%2BYQEhBUEJAQqhEqEXYRthIKEjgSfBLAExoTdBPQFCoU1BU8FagVzBYEFjYWYBawFv4XUhemGAIYLhhqGJYYsBjgGP4ZKBloGZQZxBnaGe4aNhpoGrga9hteG7QcMhyUHOIdHB1EHWwdlB28HeYeLh52HsAfYh%2FSIEYgviEyIXYhuCJAIpYiuCMOIyIjOCN6I8Ij4CQCJDAkXiSWJOIlNCVgJbwmFCZ%2BJuYnUCe8J%2FgoNChwKKwpoCnMKiYqSiqEKworeiwILGgsuizsLRwtiC30LiguZi6iLtgvDi9GL34vsi%2F4MD4whDDSMRIxYDGuMegyJDJeMpoy3jMiMz4zaDO2NBg0YDSoNNI1LDWeNeg2PjZ8Ntw3GjdON5I31DgQOEI4hjjIOQo5SjmIOcw6HDpsOpo63jugO9w8GDxQPKI8%2BD0yPew%2BOj6MPtQ%2FKD9uP6o%2F%2BkBIQIBAxkECQX5CGEKoQu5DGENCQ3ZDoEPKRBBEYESuRPZFWkW2RgZGdEa0RvZHNkd2R7ZH9kgWSDJITkhqSIZIzEkSSThJXkmESapKAkouSlIAAQAAARcApwARAAAAAAACAAAAAQABAAAAQAAuAAAAAAAAABAAxgABAAAAAAATABIAAAADAAEECQAAAGoAEgADAAEECQABACgAfAADAAEECQACAA4ApAADAAEECQADAEwAsgADAAEECQAEADgA%2FgADAAEECQAFAHgBNgADAAEECQAGADYBrgADAAEECQAIABYB5AADAAEECQAJABYB%2BgADAAEECQALACQCEAADAAEECQAMACQCNAADAAEECQATACQCWAADAAEECQDIABYCfAADAAEECQDJADACkgADAAEECdkDABoCwnd3dy5nbHlwaGljb25zLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgAKkAIAAyADAAMQA0ACAAYgB5ACAASgBhAG4AIABLAG8AdgBhAHIAaQBrAC4AIABBAGwAbAAgAHIAaQBnAGgAdABzACAAcgBlAHMAZQByAHYAZQBkAC4ARwBMAFkAUABIAEkAQwBPAE4AUwAgAEgAYQBsAGYAbABpAG4AZwBzAFIAZQBnAHUAbABhAHIAMQAuADAAMAA5ADsAVQBLAFcATgA7AEcATABZAFAASABJAEMATwBOAFMASABhAGwAZgBsAGkAbgBnAHMALQBSAGUAZwB1AGwAYQByAEcATABZAFAASABJAEMATwBOAFMAIABIAGEAbABmAGwAaQBuAGcAcwAgAFIAZQBnAHUAbABhAHIAVgBlAHIAcwBpAG8AbgAgADEALgAwADAAOQA7AFAAUwAgADAAMAAxAC4AMAAwADkAOwBoAG8AdABjAG8AbgB2ACAAMQAuADAALgA3ADAAOwBtAGEAawBlAG8AdABmAC4AbABpAGIAMgAuADUALgA1ADgAMwAyADkARwBMAFkAUABIAEkAQwBPAE4AUwBIAGEAbABmAGwAaQBuAGcAcwAtAFIAZQBnAHUAbABhAHIASgBhAG4AIABLAG8AdgBhAHIAaQBrAEoAYQBuACAASwBvAHYAYQByAGkAawB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQB3AHcAdwAuAGcAbAB5AHAAaABpAGMAbwBuAHMALgBjAG8AbQBXAGUAYgBmAG8AbgB0ACAAMQAuADAAVwBlAGQAIABPAGMAdAAgADIAOQAgADAANgA6ADMANgA6ADAANwAgADIAMAAxADQARgBvAG4AdAAgAFMAcQB1AGkAcgByAGUAbAAAAAIAAAAAAAD%2FtQAyAAAAAAAAAAAAAAAAAAAAAAAAAAABFwAAAQIBAwADAA0ADgEEAJYBBQEGAQcBCAEJAQoBCwEMAQ0BDgEPARABEQESARMA7wEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATABMQEyATMBNAE1ATYBNwE4ATkBOgE7ATwBPQE%2BAT8BQAFBAUIBQwFEAUUBRgFHAUgBSQFKAUsBTAFNAU4BTwFQAVEBUgFTAVQBVQFWAVcBWAFZAVoBWwFcAV0BXgFfAWABYQFiAWMBZAFlAWYBZwFoAWkBagFrAWwBbQFuAW8BcAFxAXIBcwF0AXUBdgF3AXgBeQF6AXsBfAF9AX4BfwGAAYEBggGDAYQBhQGGAYcBiAGJAYoBiwGMAY0BjgGPAZABkQGSAZMBlAGVAZYBlwGYAZkBmgGbAZwBnQGeAZ8BoAGhAaIBowGkAaUBpgGnAagBqQGqAasBrAGtAa4BrwGwAbEBsgGzAbQBtQG2AbcBuAG5AboBuwG8Ab0BvgG%2FAcABwQHCAcMBxAHFAcYBxwHIAckBygHLAcwBzQHOAc8B0AHRAdIB0wHUAdUB1gHXAdgB2QHaAdsB3AHdAd4B3wHgAeEB4gHjAeQB5QHmAecB6AHpAeoB6wHsAe0B7gHvAfAB8QHyAfMB9AH1AfYB9wH4AfkB%2BgH7AfwB%2FQH%2BAf8CAAIBAgICAwIEAgUCBgIHAggCCQIKAgsCDAINAg4CDwIQAhECEgZnbHlwaDEGZ2x5cGgyB3VuaTAwQTAHdW5pMjAwMAd1bmkyMDAxB3VuaTIwMDIHdW5pMjAwMwd1bmkyMDA0B3VuaTIwMDUHdW5pMjAwNgd1bmkyMDA3B3VuaTIwMDgHdW5pMjAwOQd1bmkyMDBBB3VuaTIwMkYHdW5pMjA1RgRFdXJvB3VuaTIwQkQHdW5pMjMxQgd1bmkyNUZDB3VuaTI2MDEHdW5pMjZGQQd1bmkyNzA5B3VuaTI3MEYHdW5pRTAwMQd1bmlFMDAyB3VuaUUwMDMHdW5pRTAwNQd1bmlFMDA2B3VuaUUwMDcHdW5pRTAwOAd1bmlFMDA5B3VuaUUwMTAHdW5pRTAxMQd1bmlFMDEyB3VuaUUwMTMHdW5pRTAxNAd1bmlFMDE1B3VuaUUwMTYHdW5pRTAxNwd1bmlFMDE4B3VuaUUwMTkHdW5pRTAyMAd1bmlFMDIxB3VuaUUwMjIHdW5pRTAyMwd1bmlFMDI0B3VuaUUwMjUHdW5pRTAyNgd1bmlFMDI3B3VuaUUwMjgHdW5pRTAyOQd1bmlFMDMwB3VuaUUwMzEHdW5pRTAzMgd1bmlFMDMzB3VuaUUwMzQHdW5pRTAzNQd1bmlFMDM2B3VuaUUwMzcHdW5pRTAzOAd1bmlFMDM5B3VuaUUwNDAHdW5pRTA0MQd1bmlFMDQyB3VuaUUwNDMHdW5pRTA0NAd1bmlFMDQ1B3VuaUUwNDYHdW5pRTA0Nwd1bmlFMDQ4B3VuaUUwNDkHdW5pRTA1MAd1bmlFMDUxB3VuaUUwNTIHdW5pRTA1Mwd1bmlFMDU0B3VuaUUwNTUHdW5pRTA1Ngd1bmlFMDU3B3VuaUUwNTgHdW5pRTA1OQd1bmlFMDYwB3VuaUUwNjIHdW5pRTA2Mwd1bmlFMDY0B3VuaUUwNjUHdW5pRTA2Ngd1bmlFMDY3B3VuaUUwNjgHdW5pRTA2OQd1bmlFMDcwB3VuaUUwNzEHdW5pRTA3Mgd1bmlFMDczB3VuaUUwNzQHdW5pRTA3NQd1bmlFMDc2B3VuaUUwNzcHdW5pRTA3OAd1bmlFMDc5B3VuaUUwODAHdW5pRTA4MQd1bmlFMDgyB3VuaUUwODMHdW5pRTA4NAd1bmlFMDg1B3VuaUUwODYHdW5pRTA4Nwd1bmlFMDg4B3VuaUUwODkHdW5pRTA5MAd1bmlFMDkxB3VuaUUwOTIHdW5pRTA5Mwd1bmlFMDk0B3VuaUUwOTUHdW5pRTA5Ngd1bmlFMDk3B3VuaUUxMDEHdW5pRTEwMgd1bmlFMTAzB3VuaUUxMDQHdW5pRTEwNQd1bmlFMTA2B3VuaUUxMDcHdW5pRTEwOAd1bmlFMTA5B3VuaUUxMTAHdW5pRTExMQd1bmlFMTEyB3VuaUUxMTMHdW5pRTExNAd1bmlFMTE1B3VuaUUxMTYHdW5pRTExNwd1bmlFMTE4B3VuaUUxMTkHdW5pRTEyMAd1bmlFMTIxB3VuaUUxMjIHdW5pRTEyMwd1bmlFMTI0B3VuaUUxMjUHdW5pRTEyNgd1bmlFMTI3B3VuaUUxMjgHdW5pRTEyOQd1bmlFMTMwB3VuaUUxMzEHdW5pRTEzMgd1bmlFMTMzB3VuaUUxMzQHdW5pRTEzNQd1bmlFMTM2B3VuaUUxMzcHdW5pRTEzOAd1bmlFMTM5B3VuaUUxNDAHdW5pRTE0MQd1bmlFMTQyB3VuaUUxNDMHdW5pRTE0NAd1bmlFMTQ1B3VuaUUxNDYHdW5pRTE0OAd1bmlFMTQ5B3VuaUUxNTAHdW5pRTE1MQd1bmlFMTUyB3VuaUUxNTMHdW5pRTE1NAd1bmlFMTU1B3VuaUUxNTYHdW5pRTE1Nwd1bmlFMTU4B3VuaUUxNTkHdW5pRTE2MAd1bmlFMTYxB3VuaUUxNjIHdW5pRTE2Mwd1bmlFMTY0B3VuaUUxNjUHdW5pRTE2Ngd1bmlFMTY3B3VuaUUxNjgHdW5pRTE2OQd1bmlFMTcwB3VuaUUxNzEHdW5pRTE3Mgd1bmlFMTczB3VuaUUxNzQHdW5pRTE3NQd1bmlFMTc2B3VuaUUxNzcHdW5pRTE3OAd1bmlFMTc5B3VuaUUxODAHdW5pRTE4MQd1bmlFMTgyB3VuaUUxODMHdW5pRTE4NAd1bmlFMTg1B3VuaUUxODYHdW5pRTE4Nwd1bmlFMTg4B3VuaUUxODkHdW5pRTE5MAd1bmlFMTkxB3VuaUUxOTIHdW5pRTE5Mwd1bmlFMTk0B3VuaUUxOTUHdW5pRTE5Nwd1bmlFMTk4B3VuaUUxOTkHdW5pRTIwMAd1bmlFMjAxB3VuaUUyMDIHdW5pRTIwMwd1bmlFMjA0B3VuaUUyMDUHdW5pRTIwNgd1bmlFMjA5B3VuaUUyMTAHdW5pRTIxMQd1bmlFMjEyB3VuaUUyMTMHdW5pRTIxNAd1bmlFMjE1B3VuaUUyMTYHdW5pRTIxOAd1bmlFMjE5B3VuaUUyMjEHdW5pRTIyMwd1bmlFMjI0B3VuaUUyMjUHdW5pRTIyNgd1bmlFMjI3B3VuaUUyMzAHdW5pRTIzMQd1bmlFMjMyB3VuaUUyMzMHdW5pRTIzNAd1bmlFMjM1B3VuaUUyMzYHdW5pRTIzNwd1bmlFMjM4B3VuaUUyMzkHdW5pRTI0MAd1bmlFMjQxB3VuaUUyNDIHdW5pRTI0Mwd1bmlFMjQ0B3VuaUUyNDUHdW5pRTI0Ngd1bmlFMjQ3B3VuaUUyNDgHdW5pRTI0OQd1bmlFMjUwB3VuaUUyNTEHdW5pRTI1Mgd1bmlFMjUzB3VuaUUyNTQHdW5pRTI1NQd1bmlFMjU2B3VuaUUyNTcHdW5pRTI1OAd1bmlFMjU5B3VuaUUyNjAHdW5pRjhGRgZ1MUY1MTEGdTFGNkFBAAAAAAFUUMMXAAA%3D%29%20format%28%27truetype%27%29%2Curl%28data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI%2FPgo8IURPQ1RZUEUgc3ZnIFBVQkxJQyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9TVkcvMS4xL0RURC9zdmcxMS5kdGQiID4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgo8bWV0YWRhdGE%2BPC9tZXRhZGF0YT4KPGRlZnM%2BCjxmb250IGlkPSJnbHlwaGljb25zX2hhbGZsaW5nc3JlZ3VsYXIiIGhvcml6LWFkdi14PSIxMjAwIiA%2BCjxmb250LWZhY2UgdW5pdHMtcGVyLWVtPSIxMjAwIiBhc2NlbnQ9Ijk2MCIgZGVzY2VudD0iLTI0MCIgLz4KPG1pc3NpbmctZ2x5cGggaG9yaXotYWR2LXg9IjUwMCIgLz4KPGdseXBoIGhvcml6LWFkdi14PSIwIiAvPgo8Z2x5cGggaG9yaXotYWR2LXg9IjQwMCIgLz4KPGdseXBoIHVuaWNvZGU9IiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSIqIiBkPSJNNjAwIDExMDBxMTUgMCAzNCAtMS41dDMwIC0zLjVsMTEgLTFxMTAgLTIgMTcuNSAtMTAuNXQ3LjUgLTE4LjV2LTIyNGwxNTggMTU4cTcgNyAxOCA4dDE5IC02bDEwNiAtMTA2cTcgLTggNiAtMTl0LTggLTE4bC0xNTggLTE1OGgyMjRxMTAgMCAxOC41IC03LjV0MTAuNSAtMTcuNXE2IC00MSA2IC03NXEwIC0xNSAtMS41IC0zNHQtMy41IC0zMGwtMSAtMTFxLTIgLTEwIC0xMC41IC0xNy41dC0xOC41IC03LjVoLTIyNGwxNTggLTE1OCBxNyAtNyA4IC0xOHQtNiAtMTlsLTEwNiAtMTA2cS04IC03IC0xOSAtNnQtMTggOGwtMTU4IDE1OHYtMjI0cTAgLTEwIC03LjUgLTE4LjV0LTE3LjUgLTEwLjVxLTQxIC02IC03NSAtNnEtMTUgMCAtMzQgMS41dC0zMCAzLjVsLTExIDFxLTEwIDIgLTE3LjUgMTAuNXQtNy41IDE4LjV2MjI0bC0xNTggLTE1OHEtNyAtNyAtMTggLTh0LTE5IDZsLTEwNiAxMDZxLTcgOCAtNiAxOXQ4IDE4bDE1OCAxNThoLTIyNHEtMTAgMCAtMTguNSA3LjUgdC0xMC41IDE3LjVxLTYgNDEgLTYgNzVxMCAxNSAxLjUgMzR0My41IDMwbDEgMTFxMiAxMCAxMC41IDE3LjV0MTguNSA3LjVoMjI0bC0xNTggMTU4cS03IDcgLTggMTh0NiAxOWwxMDYgMTA2cTggNyAxOSA2dDE4IC04bDE1OCAtMTU4djIyNHEwIDEwIDcuNSAxOC41dDE3LjUgMTAuNXE0MSA2IDc1IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iKyIgZD0iTTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzUwaDM1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zNTB2LTM1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzNTBoLTM1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNSBoMzUwdjM1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTA7IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4YTU7IiBkPSJNODI1IDExMDBoMjUwcTEwIDAgMTIuNSAtNXQtNS41IC0xM2wtMzY0IC0zNjRxLTYgLTYgLTExIC0xOGgyNjhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTEwMGgyNzVxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMjV2LTE3NHEwIC0xMSAtNy41IC0xOC41dC0xOC41IC03LjVoLTE0OHEtMTEgMCAtMTguNSA3LjV0LTcuNSAxOC41djE3NCBoLTI3NXEtMTAgMCAtMTMgNnQzIDE0bDEyMCAxNjBxNiA4IDE4IDE0dDIyIDZoMTI1djEwMGgtMjc1cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMThxLTUgMTIgLTExIDE4bC0zNjQgMzY0cS04IDggLTUuNSAxM3QxMi41IDVoMjUwcTI1IDAgNDMgLTE4bDE2NCAtMTY0cTggLTggMTggLTh0MTggOGwxNjQgMTY0cTE4IDE4IDQzIDE4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDA7IiBob3Jpei1hZHYteD0iNjUwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMTsiIGhvcml6LWFkdi14PSIxMzAwIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwMjsiIGhvcml6LWFkdi14PSI2NTAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDAzOyIgaG9yaXotYWR2LXg9IjEzMDAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA0OyIgaG9yaXotYWR2LXg9IjQzMyIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDU7IiBob3Jpei1hZHYteD0iMzI1IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwNjsiIGhvcml6LWFkdi14PSIyMTYiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDA3OyIgaG9yaXotYWR2LXg9IjIxNiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwMDg7IiBob3Jpei1hZHYteD0iMTYyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAwOTsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDBhOyIgaG9yaXotYWR2LXg9IjcyIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjAyZjsiIGhvcml6LWFkdi14PSIyNjAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMDVmOyIgaG9yaXotYWR2LXg9IjMyNSIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDIwYWM7IiBkPSJNNzQ0IDExOThxMjQyIDAgMzU0IC0xODlxNjAgLTEwNCA2NiAtMjA5aC0xODFxMCA0NSAtMTcuNSA4Mi41dC00My41IDYxLjV0LTU4IDQwLjV0LTYwLjUgMjR0LTUxLjUgNy41cS0xOSAwIC00MC41IC01LjV0LTQ5LjUgLTIwLjV0LTUzIC0zOHQtNDkgLTYyLjV0LTM5IC04OS41aDM3OWwtMTAwIC0xMDBoLTMwMHEtNiAtNTAgLTYgLTEwMGg0MDZsLTEwMCAtMTAwaC0zMDBxOSAtNzQgMzMgLTEzMnQ1Mi41IC05MXQ2MS41IC01NC41dDU5IC0yOSB0NDcgLTcuNXEyMiAwIDUwLjUgNy41dDYwLjUgMjQuNXQ1OCA0MXQ0My41IDYxdDE3LjUgODBoMTc0cS0zMCAtMTcxIC0xMjggLTI3OHEtMTA3IC0xMTcgLTI3NCAtMTE3cS0yMDYgMCAtMzI0IDE1OHEtMzYgNDggLTY5IDEzM3QtNDUgMjA0aC0yMTdsMTAwIDEwMGgxMTJxMSA0NyA2IDEwMGgtMjE4bDEwMCAxMDBoMTM0cTIwIDg3IDUxIDE1My41dDYyIDEwMy41cTExNyAxNDEgMjk3IDE0MXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyMGJkOyIgZD0iTTQyOCAxMjAwaDM1MHE2NyAwIDEyMCAtMTN0ODYgLTMxdDU3IC00OS41dDM1IC01Ni41dDE3IC02NC41dDYuNSAtNjAuNXQwLjUgLTU3di0xNi41di0xNi41cTAgLTM2IC0wLjUgLTU3dC02LjUgLTYxdC0xNyAtNjV0LTM1IC01N3QtNTcgLTUwLjV0LTg2IC0zMS41dC0xMjAgLTEzaC0xNzhsLTIgLTEwMGgyODhxMTAgMCAxMyAtNnQtMyAtMTRsLTEyMCAtMTYwcS02IC04IC0xOCAtMTR0LTIyIC02aC0xMzh2LTE3NXEwIC0xMSAtNS41IC0xOCB0LTE1LjUgLTdoLTE0OXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE3NWgtMjY3cS0xMCAwIC0xMyA2dDMgMTRsMTIwIDE2MHE2IDggMTggMTR0MjIgNmgxMTd2MTAwaC0yNjdxLTEwIDAgLTEzIDZ0MyAxNGwxMjAgMTYwcTYgOCAxOCAxNHQyMiA2aDExN3Y0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNjAwIDEwMDB2LTMwMGgyMDNxNjQgMCA4Ni41IDMzdDIyLjUgMTE5cTAgODQgLTIyLjUgMTE2dC04Ni41IDMyaC0yMDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjIxMjsiIGQ9Ik0yNTAgNzAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjMxYjsiIGQ9Ik0xMDAwIDEyMDB2LTE1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTEwMHEwIC05MSAtNDkuNSAtMTY1LjV0LTEzMC41IC0xMDkuNXE4MSAtMzUgMTMwLjUgLTEwOS41dDQ5LjUgLTE2NS41di0xNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtODAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MTUwcTAgOTEgNDkuNSAxNjUuNXQxMzAuNSAxMDkuNXEtODEgMzUgLTEzMC41IDEwOS41IHQtNDkuNSAxNjUuNXYxMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxNTBoODAwek00MDAgMTAwMHYtMTAwcTAgLTYwIDMyLjUgLTEwOS41dDg3LjUgLTczLjVxMjggLTEyIDQ0IC0zN3QxNiAtNTV0LTE2IC01NXQtNDQgLTM3cS01NSAtMjQgLTg3LjUgLTczLjV0LTMyLjUgLTEwOS41di0xNTBoNDAwdjE1MHEwIDYwIC0zMi41IDEwOS41dC04Ny41IDczLjVxLTI4IDEyIC00NCAzN3QtMTYgNTV0MTYgNTV0NDQgMzcgcTU1IDI0IDg3LjUgNzMuNXQzMi41IDEwOS41djEwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI1ZmM7IiBob3Jpei1hZHYteD0iNTAwIiBkPSJNMCAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDI2MDE7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA2LjVxMCAtMTIxIC04NSAtMjA3LjV0LTIwNSAtODYuNWgtNzUwcS03OSAwIC0xMzUuNSA1N3QtNTYuNSAxMzdxMCA2OSA0Mi41IDEyMi41dDEwOC41IDY3LjVxLTIgMTIgLTIgMzdxMCAxNTMgMTA4IDI2MC41dDI2MCAxMDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNmZhOyIgZD0iTTc3NCAxMTkzLjVxMTYgLTkuNSAyMC41IC0yN3QtNS41IC0zMy41bC0xMzYgLTE4N2w0NjcgLTc0NmgzMHEyMCAwIDM1IC0xOC41dDE1IC0zOS41di00MmgtMTIwMHY0MnEwIDIxIDE1IDM5LjV0MzUgMTguNWgzMGw0NjggNzQ2bC0xMzUgMTgzcS0xMCAxNiAtNS41IDM0dDIwLjUgMjh0MzQgNS41dDI4IC0yMC41bDExMSAtMTQ4bDExMiAxNTBxOSAxNiAyNyAyMC41dDM0IC01ek02MDAgMjAwaDM3N2wtMTgyIDExMmwtMTk1IDUzNHYtNjQ2eiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3gyNzA5OyIgZD0iTTI1IDExMDBoMTE1MHExMCAwIDEyLjUgLTV0LTUuNSAtMTNsLTU2NCAtNTY3cS04IC04IC0xOCAtOHQtMTggOGwtNTY0IDU2N3EtOCA4IC01LjUgMTN0MTIuNSA1ek0xOCA4ODJsMjY0IC0yNjRxOCAtOCA4IC0xOHQtOCAtMThsLTI2NCAtMjY0cS04IC04IC0xMyAtNS41dC01IDEyLjV2NTUwcTAgMTAgNSAxMi41dDEzIC01LjV6TTkxOCA2MThsMjY0IDI2NHE4IDggMTMgNS41dDUgLTEyLjV2LTU1MHEwIC0xMCAtNSAtMTIuNXQtMTMgNS41IGwtMjY0IDI2NHEtOCA4IC04IDE4dDggMTh6TTgxOCA0ODJsMzY0IC0zNjRxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xMTUwcS0xMCAwIC0xMi41IDV0NS41IDEzbDM2NCAzNjRxOCA4IDE4IDh0MTggLThsMTY0IC0xNjRxOCAtOCAxOCAtOHQxOCA4bDE2NCAxNjRxOCA4IDE4IDh0MTggLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4MjcwZjsiIGQ9Ik0xMDExIDEyMTBxMTkgMCAzMyAtMTNsMTUzIC0xNTNxMTMgLTE0IDEzIC0zM3QtMTMgLTMzbC05OSAtOTJsLTIxNCAyMTRsOTUgOTZxMTMgMTQgMzIgMTR6TTEwMTMgODAwbC02MTUgLTYxNGwtMjE0IDIxNGw2MTQgNjE0ek0zMTcgOTZsLTMzMyAtMTEybDExMCAzMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMTsiIGQ9Ik03MDAgNjUwdi01NTBoMjUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtODAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgyNTB2NTUwbC01MDAgNTUwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwMjsiIGQ9Ik0zNjggMTAxN2w2NDUgMTYzcTM5IDE1IDYzIDB0MjQgLTQ5di04MzFxMCAtNTUgLTQxLjUgLTk1LjV0LTExMS41IC02My41cS03OSAtMjUgLTE0NyAtNC41dC04NiA3NXQyNS41IDExMS41dDEyMi41IDgycTcyIDI0IDEzOCA4djUyMWwtNjAwIC0xNTV2LTYwNnEwIC00MiAtNDQgLTkwdC0xMDkgLTY5cS03OSAtMjYgLTE0NyAtNS41dC04NiA3NS41dDI1LjUgMTExLjV0MTIyLjUgODIuNXE3MiAyNCAxMzggN3Y2MzlxMCAzOCAxNC41IDU5IHQ1My41IDM0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDM7IiBkPSJNNTAwIDExOTFxMTAwIDAgMTkxIC0zOXQxNTYuNSAtMTA0LjV0MTA0LjUgLTE1Ni41dDM5IC0xOTFsLTEgLTJsMSAtNXEwIC0xNDEgLTc4IC0yNjJsMjc1IC0yNzRxMjMgLTI2IDIyLjUgLTQ0LjV0LTIyLjUgLTQyLjVsLTU5IC01OHEtMjYgLTIwIC00Ni41IC0yMHQtMzkuNSAyMGwtMjc1IDI3NHEtMTE5IC03NyAtMjYxIC03N2wtNSAxbC0yIC0xcS0xMDAgMCAtMTkxIDM5dC0xNTYuNSAxMDQuNXQtMTA0LjUgMTU2LjV0LTM5IDE5MSB0MzkgMTkxdDEwNC41IDE1Ni41dDE1Ni41IDEwNC41dDE5MSAzOXpNNTAwIDEwMjJxLTg4IDAgLTE2MiAtNDN0LTExNyAtMTE3dC00MyAtMTYydDQzIC0xNjJ0MTE3IC0xMTd0MTYyIC00M3QxNjIgNDN0MTE3IDExN3Q0MyAxNjJ0LTQzIDE2MnQtMTE3IDExN3QtMTYyIDQzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDU7IiBkPSJNNjQ5IDk0OXE0OCA2OCAxMDkuNSAxMDR0MTIxLjUgMzguNXQxMTguNSAtMjB0MTAyLjUgLTY0dDcxIC0xMDAuNXQyNyAtMTIzcTAgLTU3IC0zMy41IC0xMTcuNXQtOTQgLTEyNC41dC0xMjYuNSAtMTI3LjV0LTE1MCAtMTUyLjV0LTE0NiAtMTc0cS02MiA4NSAtMTQ1LjUgMTc0dC0xNTAgMTUyLjV0LTEyNi41IDEyNy41dC05My41IDEyNC41dC0zMy41IDExNy41cTAgNjQgMjggMTIzdDczIDEwMC41dDEwNCA2NHQxMTkgMjAgdDEyMC41IC0zOC41dDEwNC41IC0xMDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwNjsiIGQ9Ik00MDcgODAwbDEzMSAzNTNxNyAxOSAxNy41IDE5dDE3LjUgLTE5bDEyOSAtMzUzaDQyMXEyMSAwIDI0IC04LjV0LTE0IC0yMC41bC0zNDIgLTI0OWwxMzAgLTQwMXE3IC0yMCAtMC41IC0yNS41dC0yNC41IDYuNWwtMzQzIDI0NmwtMzQyIC0yNDdxLTE3IC0xMiAtMjQuNSAtNi41dC0wLjUgMjUuNWwxMzAgNDAwbC0zNDcgMjUxcS0xNyAxMiAtMTQgMjAuNXQyMyA4LjVoNDI5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDc7IiBkPSJNNDA3IDgwMGwxMzEgMzUzcTcgMTkgMTcuNSAxOXQxNy41IC0xOWwxMjkgLTM1M2g0MjFxMjEgMCAyNCAtOC41dC0xNCAtMjAuNWwtMzQyIC0yNDlsMTMwIC00MDFxNyAtMjAgLTAuNSAtMjUuNXQtMjQuNSA2LjVsLTM0MyAyNDZsLTM0MiAtMjQ3cS0xNyAtMTIgLTI0LjUgLTYuNXQtMC41IDI1LjVsMTMwIDQwMGwtMzQ3IDI1MXEtMTcgMTIgLTE0IDIwLjV0MjMgOC41aDQyOXpNNDc3IDcwMGgtMjQwbDE5NyAtMTQybC03NCAtMjI2IGwxOTMgMTM5bDE5NSAtMTQwbC03NCAyMjlsMTkyIDE0MGgtMjM0bC03OCAyMTF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAwODsiIGQ9Ik02MDAgMTIwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTI1MHEwIC00NiAtMzEgLTk4dC02OSAtNTJ2LTc1cTAgLTEwIDYgLTIxLjV0MTUgLTE3LjVsMzU4IC0yMzBxOSAtNSAxNSAtMTYuNXQ2IC0yMS41di05M3EwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5M3EwIDEwIDYgMjEuNXQxNSAxNi41bDM1OCAyMzBxOSA2IDE1IDE3LjV0NiAyMS41djc1cS0zOCAwIC02OSA1MiB0LTMxIDk4djI1MHEwIDEyNCA4OCAyMTJ0MjEyIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMDk7IiBkPSJNMjUgMTEwMGgxMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTA1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTExNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMDUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwMCAxMDAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgMTAwMGgtNTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMzUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNTUwIHExMCAwIDE3LjUgNy41dDcuNSAxNy41djM1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTEwMDAgMTAwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwIDgwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA4MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgNjAwdi0xMDBoMTAwdjEwMGgtMTAwek04NzUgNTAwaC01NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0zNTBxMCAtMTAgNy41IC0xNy41IHQxNy41IC03LjVoNTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MzUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMTAwIDQwMHYtMTAwaDEwMHYxMDBoLTEwMHpNMTAwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCAyMDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTA7IiBkPSJNNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCA1MDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMTsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTEwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODUwIDcwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoMjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTg1MCAzMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41IHQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMjsiIGQ9Ik01MCAxMTAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAxMTAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA3MDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNDUwIDcwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTIwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQ1MCAzMDBoNzAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC03MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxMzsiIGQ9Ik00NjUgNDc3bDU3MSA1NzFxOCA4IDE4IDh0MTcgLThsMTc3IC0xNzdxOCAtNyA4IC0xN3QtOCAtMThsLTc4MyAtNzg0cS03IC04IC0xNy41IC04dC0xNy41IDhsLTM4NCAzODRxLTggOCAtOCAxOHQ4IDE3bDE3NyAxNzdxNyA4IDE3IDh0MTggLThsMTcxIC0xNzFxNyAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTQ7IiBkPSJNOTA0IDEwODNsMTc4IC0xNzlxOCAtOCA4IC0xOC41dC04IC0xNy41bC0yNjcgLTI2OGwyNjcgLTI2OHE4IC03IDggLTE3LjV0LTggLTE4LjVsLTE3OCAtMTc4cS04IC04IC0xOC41IC04dC0xNy41IDhsLTI2OCAyNjdsLTI2OCAtMjY3cS03IC04IC0xNy41IC04dC0xOC41IDhsLTE3OCAxNzhxLTggOCAtOCAxOC41dDggMTcuNWwyNjcgMjY4bC0yNjcgMjY4cS04IDcgLTggMTcuNXQ4IDE4LjVsMTc4IDE3OHE4IDggMTguNSA4dDE3LjUgLTggbDI2OCAtMjY3bDI2OCAyNjhxNyA3IDE3LjUgN3QxOC41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTU7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNNDI1IDkwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWg3NXExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41IHQtMTcuNSAtNy41aC03NXYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtNzVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg3NXY3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTY7IiBkPSJNNTA3IDExNzdxOTggMCAxODcuNSAtMzguNXQxNTQuNSAtMTAzLjV0MTAzLjUgLTE1NC41dDM4LjUgLTE4Ny41cTAgLTE0MSAtNzggLTI2MmwzMDAgLTI5OXE4IC04IDggLTE4LjV0LTggLTE4LjVsLTEwOSAtMTA4cS03IC04IC0xNy41IC04dC0xOC41IDhsLTMwMCAyOTlxLTExOSAtNzcgLTI2MSAtNzdxLTk4IDAgLTE4OCAzOC41dC0xNTQuNSAxMDN0LTEwMyAxNTQuNXQtMzguNSAxODh0MzguNSAxODcuNXQxMDMgMTU0LjUgdDE1NC41IDEwMy41dDE4OCAzOC41ek01MDYuNSAxMDIzcS04OS41IDAgLTE2NS41IC00NHQtMTIwIC0xMjAuNXQtNDQgLTE2NnQ0NCAtMTY1LjV0MTIwIC0xMjB0MTY1LjUgLTQ0dDE2NiA0NHQxMjAuNSAxMjB0NDQgMTY1LjV0LTQ0IDE2NnQtMTIwLjUgMTIwLjV0LTE2NiA0NHpNMzI1IDgwMGgzNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAxNzsiIGQ9Ik01NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04MDAgOTc1djE2NnExNjcgLTYyIDI3MiAtMjA5LjV0MTA1IC0zMzEuNXEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNSB0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHEwIDE4NCAxMDUgMzMxLjV0MjcyIDIwOS41di0xNjZxLTEwMyAtNTUgLTE2NSAtMTU1dC02MiAtMjIwcTAgLTExNiA1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXEwIDEyMCAtNjIgMjIwdC0xNjUgMTU1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMTg7IiBkPSJNMTAyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTExNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxMTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTcyNSA4MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgNTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTQ1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djQ1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0xMjUgMzAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41IHYyNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDE5OyIgZD0iTTYwMCAxMTc0cTMzIDAgNzQgLTVsMzggLTE1Mmw1IC0xcTQ5IC0xNCA5NCAtMzlsNSAtMmwxMzQgODBxNjEgLTQ4IDEwNCAtMTA1bC04MCAtMTM0bDMgLTVxMjUgLTQ0IDM5IC05M2wxIC02bDE1MiAtMzhxNSAtNDMgNSAtNzNxMCAtMzQgLTUgLTc0bC0xNTIgLTM4bC0xIC02cS0xNSAtNDkgLTM5IC05M2wtMyAtNWw4MCAtMTM0cS00OCAtNjEgLTEwNCAtMTA1bC0xMzQgODFsLTUgLTNxLTQ0IC0yNSAtOTQgLTM5bC01IC0ybC0zOCAtMTUxIHEtNDMgLTUgLTc0IC01cS0zMyAwIC03NCA1bC0zOCAxNTFsLTUgMnEtNDkgMTQgLTk0IDM5bC01IDNsLTEzNCAtODFxLTYwIDQ4IC0xMDQgMTA1bDgwIDEzNGwtMyA1cS0yNSA0NSAtMzggOTNsLTIgNmwtMTUxIDM4cS02IDQyIC02IDc0cTAgMzMgNiA3M2wxNTEgMzhsMiA2cTEzIDQ4IDM4IDkzbDMgNWwtODAgMTM0cTQ3IDYxIDEwNSAxMDVsMTMzIC04MGw1IDJxNDUgMjUgOTQgMzlsNSAxbDM4IDE1MnE0MyA1IDc0IDV6TTYwMCA4MTUgcS04OSAwIC0xNTIgLTYzdC02MyAtMTUxLjV0NjMgLTE1MS41dDE1MiAtNjN0MTUyIDYzdDYzIDE1MS41dC02MyAxNTEuNXQtMTUyIDYzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjA7IiBkPSJNNTAwIDEzMDBoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di0xMDBoMjc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoLTExMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNzV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNTAwIDEyMDB2LTEwMGgzMDB2MTAwaC0zMDB6TTExMDAgOTAwdi04MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTcwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjUgdjgwMGg5MDB6TTMwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTUwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTcwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6TTkwMCA4MDB2LTcwMGgxMDB2NzAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyMTsiIGQ9Ik0xOCA2MThsNjIwIDYwOHE4IDcgMTguNSA3dDE3LjUgLTdsNjA4IC02MDhxOCAtOCA1LjUgLTEzdC0xMi41IC01aC0xNzV2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWgtMzAwdi0zNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NzVoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDIyOyIgZD0iTTYwMCAxMjAwdi00MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDMwMHYtNjUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djExMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHpNMTAwMCA4MDBoLTI1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MjUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxMDI3cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd0MjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjV0LTU3IDIxNC41dC0xNTUuNSAxNTUuNXQtMjE0LjUgNTd6TTUyNSA5MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0yNzVoMTc1cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI0OyIgZD0iTTEzMDAgMGgtNTM4bC00MSA0MDBoLTI0MmwtNDEgLTQwMGgtNTM4bDQzMSAxMjAwaDIwOWwtMjEgLTMwMGgxNjJsLTIwIDMwMGgyMDh6TTUxNSA4MDBsLTI3IC0zMDBoMjI0bC0yNyAzMDBoLTE3MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI1OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDUwaDE5MXEyMCAwIDI1LjUgLTExLjV0LTcuNSAtMjcuNWwtMzI3IC00MDBxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMzI3IDQwMHEtMTMgMTYgLTcuNSAyNy41dDI1LjUgMTEuNWgxOTF2NDUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEyNSA0MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0zNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41IGgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTc1aDkwMHYxNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01MjUgOTAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTI3NWgxMzdxMjEgMCAyNiAtMTEuNXQtOCAtMjcuNWwtMjIzIC0yNzVxLTEzIC0xNiAtMzIgLTE2dC0zMiAxNmwtMjIzIDI3NXEtMTMgMTYgLTggMjcuNXQyNiAxMS41aDEzN3YyNzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAyNzsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNjMyIDkxNGwyMjMgLTI3NXExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTEzN3YtMjc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2Mjc1aC0xMzdxLTIxIDAgLTI2IDExLjV0OCAyNy41bDIyMyAyNzVxMTMgMTYgMzIgMTYgdDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI4OyIgZD0iTTIyNSAxMjAwaDc1MHExMCAwIDE5LjUgLTd0MTIuNSAtMTdsMTg2IC02NTJxNyAtMjQgNyAtNDl2LTQyNXEwIC0xMiAtNCAtMjd0LTkgLTE3cS0xMiAtNiAtMzcgLTZoLTExMDBxLTEyIDAgLTI3IDR0LTE3IDhxLTYgMTMgLTYgMzhsMSA0MjVxMCAyNSA3IDQ5bDE4NSA2NTJxMyAxMCAxMi41IDE3dDE5LjUgN3pNODc4IDEwMDBoLTU1NnEtMTAgMCAtMTkgLTd0LTExIC0xOGwtODcgLTQ1MHEtMiAtMTEgNCAtMTh0MTYgLTdoMTUwIHExMCAwIDE5LjUgLTd0MTEuNSAtMTdsMzggLTE1MnEyIC0xMCAxMS41IC0xN3QxOS41IC03aDI1MHExMCAwIDE5LjUgN3QxMS41IDE3bDM4IDE1MnEyIDEwIDExLjUgMTd0MTkuNSA3aDE1MHExMCAwIDE2IDd0NCAxOGwtODcgNDUwcS0yIDExIC0xMSAxOHQtMTkgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDI5OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek01NDAgODIwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMDsiIGQ9Ik05NDcgMTA2MGwxMzUgMTM1cTcgNyAxMi41IDV0NS41IC0xM3YtMzYycTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMzYycS0xMSAwIC0xMyA1LjV0NSAxMi41bDEzMyAxMzNxLTEwOSA3NiAtMjM4IDc2cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjV0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNWgxNTBxMCAtMTE3IC00NS41IC0yMjQgdC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMxOyIgZD0iTTk0NyAxMDYwbDEzNSAxMzVxNyA3IDEyLjUgNXQ1LjUgLTEzdi0zNjFxMCAtMTEgLTcuNSAtMTguNXQtMTguNSAtNy41aC0zNjFxLTExIDAgLTEzIDUuNXQ1IDEyLjVsMTM0IDEzNHEtMTEwIDc1IC0yMzkgNzVxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41aC0xNTBxMCAxMTcgNDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXExOTIgMCAzNDcgLTExN3pNMTAyNyA2MDBoMTUwIHEwIC0xMTcgLTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41cS0xOTIgMCAtMzQ4IDExOGwtMTM0IC0xMzRxLTcgLTggLTEyLjUgLTUuNXQtNS41IDEyLjV2MzYwcTAgMTEgNy41IDE4LjV0MTguNSA3LjVoMzYwcTEwIDAgMTIuNSAtNS41dC01LjUgLTEyLjVsLTEzMyAtMTMzcTExMCAtNzYgMjQwIC03NnExMTYgMCAyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDMyOyIgZD0iTTEyNSAxMjAwaDEwNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTA1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djExNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMTA3NSAxMDAwaC04NTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di04NTBxMCAtMTAgNy41IC0xNy41dDE3LjUgLTcuNWg4NTBxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXY4NTAgcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXpNMzI1IDkwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgOTAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTMyNSA3MDBoNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNTI1IDcwMGg0NTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTQ1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwIHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek0zMjUgNTAwaDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTUyNSA1MDBoNDUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC00NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMzI1IDMwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01MjUgMzAwaDQ1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNDUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NTAgcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzMzsiIGQ9Ik05MDAgODAwdjIwMHEwIDgzIC01OC41IDE0MS41dC0xNDEuNSA1OC41aC0zMDBxLTgyIDAgLTE0MSAtNTl0LTU5IC0xNDF2LTIwMGgtMTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDkwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NjAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC0xMDB6TTQwMCA4MDB2MTUwcTAgMjEgMTUgMzUuNXQzNSAxNC41aDIwMCBxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNXYtMTUwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNDsiIGQ9Ik0xMjUgMTEwMGg1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwNzVoLTEwMHYxMDc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEwNzUgMTA1MnE0IDAgOSAtMnExNiAtNiAxNiAtMjN2LTQyMXEwIC02IC0zIC0xMnEtMzMgLTU5IC02Ni41IC05OXQtNjUuNSAtNTh0LTU2LjUgLTI0LjV0LTUyLjUgLTYuNXEtMjYgMCAtNTcuNSA2LjV0LTUyLjUgMTMuNXQtNjAgMjFxLTQxIDE1IC02MyAyMi41dC01Ny41IDE1dC02NS41IDcuNSBxLTg1IDAgLTE2MCAtNTdxLTcgLTUgLTE1IC01cS02IDAgLTExIDNxLTE0IDcgLTE0IDIydjQzOHEyMiA1NSA4MiA5OC41dDExOSA0Ni41cTIzIDIgNDMgMC41dDQzIC03dDMyLjUgLTguNXQzOCAtMTN0MzIuNSAtMTFxNDEgLTE0IDYzLjUgLTIxdDU3IC0xNHQ2My41IC03cTEwMyAwIDE4MyA4N3E3IDggMTggOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM1OyIgZD0iTTYwMCAxMTc1cTExNiAwIDIyNyAtNDkuNXQxOTIuNSAtMTMxdDEzMSAtMTkyLjV0NDkuNSAtMjI3di0zMDBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djMwMHEwIDEyNyAtNzAuNSAyMzEuNXQtMTg0LjUgMTYxLjV0LTI0NSA1N3QtMjQ1IC01N3QtMTg0LjUgLTE2MS41dC03MC41IC0yMzEuNXYtMzAwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtNTAgcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzAwcTAgMTE2IDQ5LjUgMjI3dDEzMSAxOTIuNXQxOTIuNSAxMzF0MjI3IDQ5LjV6TTIyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwcTAgOCA2IDE0dDE0IDZ6TTgyMCA1MDBoMTYwcTggMCAxNCAtNnQ2IC0xNHYtNDYwcTAgLTggLTYgLTE0dC0xNCAtNmgtMTYwcS04IDAgLTE0IDZ0LTYgMTR2NDYwIHEwIDggNiAxNHQxNCA2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzY7IiBkPSJNMzIxIDgxNGwyNTggMTcycTkgNiAxNSAyLjV0NiAtMTMuNXYtNzUwcTAgLTEwIC02IC0xMy41dC0xNSAyLjVsLTI1OCAxNzJxLTIxIDE0IC00NiAxNGgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MzUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMjUwcTI1IDAgNDYgMTR6TTkwMCA2NjhsMTIwIDEyMHE3IDcgMTcgN3QxNyAtN2wzNCAtMzRxNyAtNyA3IC0xN3QtNyAtMTdsLTEyMCAtMTIwbDEyMCAtMTIwcTcgLTcgNyAtMTcgdC03IC0xN2wtMzQgLTM0cS03IC03IC0xNyAtN3QtMTcgN2wtMTIwIDExOWwtMTIwIC0xMTlxLTcgLTcgLTE3IC03dC0xNyA3bC0zNCAzNHEtNyA3IC03IDE3dDcgMTdsMTE5IDEyMGwtMTE5IDEyMHEtNyA3IC03IDE3dDcgMTdsMzQgMzRxNyA4IDE3IDh0MTcgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTAzNzsiIGQ9Ik0zMjEgODE0bDI1OCAxNzJxOSA2IDE1IDIuNXQ2IC0xMy41di03NTBxMCAtMTAgLTYgLTEzLjV0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNiBsLTI5IDIzcS03IDcgLTguNSAxNi41dDQuNSAxNy41cTcyIDEwMyA3MiAyMjlxMCAxMzIgLTc4IDIzOHEtNiA4IC00LjUgMTh0OS41IDE3bDI5IDIycTcgNSAxNSA1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwMzg7IiBkPSJNOTY3IDEwMDRoM3ExMSAtMSAxNyAtMTBxMTM1IC0xNzkgMTM1IC0zOTZxMCAtMTA1IC0zNCAtMjA2LjV0LTk4IC0xODUuNXEtNyAtOSAtMTcgLTEwaC0zcS05IDAgLTE2IDZsLTQyIDM0cS04IDYgLTkgMTZ0NSAxOHExMTEgMTUwIDExMSAzMjhxMCA5MCAtMjkuNSAxNzZ0LTg0LjUgMTU3cS02IDkgLTUgMTl0MTAgMTZsNDIgMzNxNyA1IDE1IDV6TTMyMSA4MTRsMjU4IDE3MnE5IDYgMTUgMi41dDYgLTEzLjV2LTc1MHEwIC0xMCAtNiAtMTMuNSB0LTE1IDIuNWwtMjU4IDE3MnEtMjEgMTQgLTQ2IDE0aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgyNTBxMjUgMCA0NiAxNHpNNzY2IDkwMGg0cTEwIC0xIDE2IC0xMHE5NiAtMTI5IDk2IC0yOTBxMCAtMTU0IC05MCAtMjgxcS02IC05IC0xNyAtMTBsLTMgLTFxLTkgMCAtMTYgNmwtMjkgMjNxLTcgNyAtOC41IDE2LjV0NC41IDE3LjVxNzIgMTAzIDcyIDIyOXEwIDEzMiAtNzggMjM4IHEtNiA4IC00LjUgMTguNXQ5LjUgMTYuNWwyOSAyMnE3IDUgMTUgNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDM5OyIgZD0iTTUwMCA5MDBoMTAwdi0xMDBoLTEwMHYtMTAwaC00MDB2LTEwMGgtMTAwdjYwMGg1MDB2LTMwMHpNMTIwMCA3MDBoLTIwMHYtMTAwaDIwMHYtMjAwaC0zMDB2MzAwaC0yMDB2MzAwaC0xMDB2MjAwaDYwMHYtNTAwek0xMDAgMTEwMHYtMzAwaDMwMHYzMDBoLTMwMHpNODAwIDExMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTMwMCA5MDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEwMDAgOTAwaC0xMDB2MTAwaDEwMHYtMTAwek0zMDAgNTAwaDIwMHYtNTAwIGgtNTAwdjUwMGgyMDB2MTAwaDEwMHYtMTAwek04MDAgMzAwaDIwMHYtMTAwaC0xMDB2LTEwMGgtMjAwdjEwMGgtMTAwdjEwMGgxMDB2MjAwaC0yMDB2MTAwaDMwMHYtMzAwek0xMDAgNDAwdi0zMDBoMzAwdjMwMGgtMzAwek0zMDAgMjAwaC0xMDB2MTAwaDEwMHYtMTAwek0xMjAwIDIwMGgtMTAwdjEwMGgxMDB2LTEwMHpNNzAwIDBoLTEwMHYxMDBoMTAwdi0xMDB6TTEyMDAgMGgtMzAwdjEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQwOyIgZD0iTTEwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMzAwIDIwMGgtMTAwdjEwMDBoMTAwdi0xMDAwek03MDAgMjAwaC0yMDB2MTAwMGgyMDB2LTEwMDB6TTkwMCAyMDBoLTEwMHYxMDAwaDEwMHYtMTAwMHpNMTIwMCAyMDBoLTIwMHYxMDAwaDIwMHYtMTAwMHpNNDAwIDBoLTMwMHYxMDBoMzAwdi0xMDB6TTYwMCAwaC0xMDB2OTFoMTAwdi05MXpNODAwIDBoLTEwMHY5MWgxMDB2LTkxek0xMTAwIDBoLTIwMHY5MWgyMDB2LTkxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNDE7IiBkPSJNNTAwIDEyMDBsNjgyIC02ODJxOCAtOCA4IC0xOHQtOCAtMThsLTQ2NCAtNDY0cS04IC04IC0xOCAtOHQtMTggOGwtNjgyIDY4MmwxIDQ3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDQ3NHpNMzE5LjUgMTAyNC41cS0yOS41IDI5LjUgLTcxIDI5LjV0LTcxIC0yOS41dC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQyOyIgZD0iTTUwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTY4MiA2ODJsMSA0NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWg0NzR6TTgwMCAxMjAwbDY4MiAtNjgycTggLTggOCAtMTh0LTggLTE4bC00NjQgLTQ2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTU2IDU2bDQyNCA0MjZsLTcwMCA3MDBoMTUwek0zMTkuNSAxMDI0LjVxLTI5LjUgMjkuNSAtNzEgMjkuNXQtNzEgLTI5LjUgdC0yOS41IC03MS41dDI5LjUgLTcxLjV0NzEgLTI5LjV0NzEgMjkuNXQyOS41IDcxLjV0LTI5LjUgNzEuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQzOyIgZD0iTTMwMCAxMjAwaDgyNXE3NSAwIDc1IC03NXYtOTAwcTAgLTI1IC0xOCAtNDNsLTY0IC02NHEtOCAtOCAtMTMgLTUuNXQtNSAxMi41djk1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjVoLTcwMHEtMjUgMCAtNDMgLTE4bC02NCAtNjRxLTggLTggLTUuNSAtMTN0MTIuNSAtNWg3MDBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di05NTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC04NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NzUgcTAgMjUgMTggNDNsMTM5IDEzOXExOCAxOCA0MyAxOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ0OyIgZD0iTTI1MCAxMjAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTE1MGwtNDUwIDQ0NGwtNDUwIC00NDV2MTE1MXEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NTsiIGQ9Ik04MjIgMTIwMGgtNDQ0cS0xMSAwIC0xOSAtNy41dC05IC0xNy41bC03OCAtMzAxcS03IC0yNCA3IC00NWw1NyAtMTA4cTYgLTkgMTcuNSAtMTV0MjEuNSAtNmg0NTBxMTAgMCAyMS41IDZ0MTcuNSAxNWw2MiAxMDhxMTQgMjEgNyA0NWwtODMgMzAxcS0xIDEwIC05IDE3LjV0LTE5IDcuNXpNMTE3NSA4MDBoLTE1MHEtMTAgMCAtMjEgLTYuNXQtMTUgLTE1LjVsLTc4IC0xNTZxLTQgLTkgLTE1IC0xNS41dC0yMSAtNi41aC01NTAgcS0xMCAwIC0yMSA2LjV0LTE1IDE1LjVsLTc4IDE1NnEtNCA5IC0xNSAxNS41dC0yMSA2LjVoLTE1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTY1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDc1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41IHQ3LjUgMTcuNXY2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41ek04NTAgMjAwaC01MDBxLTEwIDAgLTE5LjUgLTd0LTExLjUgLTE3bC0zOCAtMTUycS0yIC0xMCAzLjUgLTE3dDE1LjUgLTdoNjAwcTEwIDAgMTUuNSA3dDMuNSAxN2wtMzggMTUycS0yIDEwIC0xMS41IDE3dC0xOS41IDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NjsiIGQ9Ik01MDAgMTEwMGgyMDBxNTYgMCAxMDIuNSAtMjAuNXQ3Mi41IC01MHQ0NCAtNTl0MjUgLTUwLjVsNiAtMjBoMTUwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41di02MDBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTEwMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djYwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMTUwcTIgOCA2LjUgMjEuNXQyNCA0OHQ0NSA2MXQ3MiA0OHQxMDIuNSAyMS41ek05MDAgODAwdi0xMDAgaDEwMHYxMDBoLTEwMHpNNjAwIDczMHEtOTUgMCAtMTYyLjUgLTY3LjV0LTY3LjUgLTE2Mi41dDY3LjUgLTE2Mi41dDE2Mi41IC02Ny41dDE2Mi41IDY3LjV0NjcuNSAxNjIuNXQtNjcuNSAxNjIuNXQtMTYyLjUgNjcuNXpNNjAwIDYwM3E0MyAwIDczIC0zMHQzMCAtNzN0LTMwIC03M3QtNzMgLTMwdC03MyAzMHQtMzAgNzN0MzAgNzN0NzMgMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA0NzsiIGQ9Ik02ODEgMTE5OWwzODUgLTk5OHEyMCAtNTAgNjAgLTkycTE4IC0xOSAzNi41IC0yOS41dDI3LjUgLTExLjVsMTAgLTJ2LTY2aC00MTd2NjZxNTMgMCA3NSA0My41dDUgODguNWwtODIgMjIyaC0zOTFxLTU4IC0xNDUgLTkyIC0yMzRxLTExIC0zNCAtNi41IC01N3QyNS41IC0zN3Q0NiAtMjB0NTUgLTZ2LTY2aC0zNjV2NjZxNTYgMjQgODQgNTJxMTIgMTIgMjUgMzAuNXQyMCAzMS41bDcgMTNsMzk5IDEwMDZoOTN6TTQxNiA1MjFoMzQwIGwtMTYyIDQ1N3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ4OyIgZD0iTTc1MyA2NDFxNSAtMSAxNC41IC00LjV0MzYgLTE1LjV0NTAuNSAtMjYuNXQ1My41IC00MHQ1MC41IC01NC41dDM1LjUgLTcwdDE0LjUgLTg3cTAgLTY3IC0yNy41IC0xMjUuNXQtNzEuNSAtOTcuNXQtOTguNSAtNjYuNXQtMTA4LjUgLTQwLjV0LTEwMiAtMTNoLTUwMHY4OXE0MSA3IDcwLjUgMzIuNXQyOS41IDY1LjV2ODI3cTAgMjQgLTAuNSAzNHQtMy41IDI0dC04LjUgMTkuNXQtMTcgMTMuNXQtMjggMTIuNXQtNDIuNSAxMS41djcxIGw0NzEgLTFxNTcgMCAxMTUuNSAtMjAuNXQxMDggLTU3dDgwLjUgLTk0dDMxIC0xMjQuNXEwIC01MSAtMTUuNSAtOTYuNXQtMzggLTc0LjV0LTQ1IC01MC41dC0zOC41IC0zMC41ek00MDAgNzAwaDEzOXE3OCAwIDEzMC41IDQ4LjV0NTIuNSAxMjIuNXEwIDQxIC04LjUgNzAuNXQtMjkuNSA1NS41dC02Mi41IDM5LjV0LTEwMy41IDEzLjVoLTExOHYtMzUwek00MDAgMjAwaDIxNnE4MCAwIDEyMSA1MC41dDQxIDEzMC41cTAgOTAgLTYyLjUgMTU0LjUgdC0xNTYuNSA2NC41aC0xNTl2LTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDQ5OyIgZD0iTTg3NyAxMjAwbDIgLTU3cS04MyAtMTkgLTExNiAtNDUuNXQtNDAgLTY2LjVsLTEzMiAtODM5cS05IC00OSAxMyAtNjl0OTYgLTI2di05N2gtNTAwdjk3cTE4NiAxNiAyMDAgOThsMTczIDgzMnEzIDE3IDMgMzB0LTEuNSAyMi41dC05IDE3LjV0LTEzLjUgMTIuNXQtMjEuNSAxMHQtMjYgOC41dC0zMy41IDEwcS0xMyAzIC0xOSA1djU3aDQyNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDUwOyIgZD0iTTEzMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTE3NSAxMDAwaC03NXYtODAwaDc1bC0xMjUgLTE2N2wtMTI1IDE2N2g3NXY4MDBoLTc1bDEyNSAxNjd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MTsiIGQ9Ik0xMTAwIDkwMGgtNTBxMCAyMSAtNCAzN3QtOS41IDI2LjV0LTE4IDE3LjV0LTIyIDExdC0yOC41IDUuNXQtMzEgMnQtMzcgMC41aC0yMDB2LTY1MHEwIC0yMiAyNSAtMzQuNXQ1MCAtMTMuNWwyNSAtMnYtMTAwaC00MDB2MTAwcTQgMCAxMSAwLjV0MjQgM3QzMCA3dDI0IDE1dDExIDI0LjV2NjUwaC0yMDBxLTI1IDAgLTM3IC0wLjV0LTMxIC0ydC0yOC41IC01LjV0LTIyIC0xMXQtMTggLTE3LjV0LTkuNSAtMjYuNXQtNCAtMzdoLTUwdjMwMCBoMTAwMHYtMzAwek0xMTY3IDUwbC0xNjcgLTEyNXY3NWgtODAwdi03NWwtMTY3IDEyNWwxNjcgMTI1di03NWg4MDB2NzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MjsiIGQ9Ik01MCAxMTAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDgwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1MzsiIGQ9Ik0yNTAgMTEwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjUwIDUwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU0OyIgZD0iTTUwMCA5NTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg2MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNjAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXpNMTAwIDY1MHYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41ek0zMDAgMzUwdjEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTgwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV6TTAgNTB2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDU1OyIgZD0iTTUwIDExMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAgcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMjAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTEwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1NjsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCAxMTAwaDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMzUwIDgwMGg4MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgNTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTM1MCA1MDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDAgcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC04MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zNTAgMjAwaDgwMCBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNTc7IiBkPSJNNDAwIDBoLTEwMHYxMTAwaDEwMHYtMTEwMHpNNTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMjY3IDU1MGwtMTY3IC0xMjV2NzVoLTIwMHYxMDBoMjAwdjc1ek01NTAgNTAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTU1MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1ODsiIGQ9Ik01MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAwaC0xMDB2MTEwMGgxMDB2LTExMDB6TTUwIDgwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwIHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTEwMCA2MDBoMjAwdi0xMDBoLTIwMHYtNzVsLTE2NyAxMjVsMTY3IDEyNXYtNzV6TTUwIDUwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek01MCAyMDBoNjAwIHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC02MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA1OTsiIGQ9Ik03NSAxMDAwaDc1MHEzMSAwIDUzIC0yMnQyMiAtNTN2LTY1MHEwIC0zMSAtMjIgLTUzdC01MyAtMjJoLTc1MHEtMzEgMCAtNTMgMjJ0LTIyIDUzdjY1MHEwIDMxIDIyIDUzdDUzIDIyek0xMjAwIDMwMGwtMzAwIDMwMGwzMDAgMzAwdi02MDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2MDsiIGQ9Ik00NCAxMTAwaDExMTJxMTggMCAzMSAtMTN0MTMgLTMxdi0xMDEycTAgLTE4IC0xMyAtMzF0LTMxIC0xM2gtMTExMnEtMTggMCAtMzEgMTN0LTEzIDMxdjEwMTJxMCAxOCAxMyAzMXQzMSAxM3pNMTAwIDEwMDB2LTczN2wyNDcgMTgybDI5OCAtMTMxbC03NCAxNTZsMjkzIDMxOGwyMzYgLTI4OHY1MDBoLTEwMDB6TTM0MiA4ODRxNTYgMCA5NSAtMzl0MzkgLTk0LjV0LTM5IC05NXQtOTUgLTM5LjV0LTk1IDM5LjV0LTM5IDk1dDM5IDk0LjUgdDk1IDM5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjI7IiBkPSJNNjQ4IDExNjlxMTE3IDAgMjE2IC02MHQxNTYuNSAtMTYxdDU3LjUgLTIxOHEwIC0xMTUgLTcwIC0yNThxLTY5IC0xMDkgLTE1OCAtMjI1LjV0LTE0MyAtMTc5LjVsLTU0IC02MnEtOSA4IC0yNS41IDI0LjV0LTYzLjUgNjcuNXQtOTEgMTAzdC05OC41IDEyOHQtOTUuNSAxNDhxLTYwIDEzMiAtNjAgMjQ5cTAgODggMzQgMTY5LjV0OTEuNSAxNDJ0MTM3IDk2LjV0MTY2LjUgMzZ6TTY1Mi41IDk3NHEtOTEuNSAwIC0xNTYuNSAtNjUgdC02NSAtMTU3dDY1IC0xNTYuNXQxNTYuNSAtNjQuNXQxNTYuNSA2NC41dDY1IDE1Ni41dC02NSAxNTd0LTE1Ni41IDY1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjM7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTYwMCAxNzN2ODU0cS0xMTYgMCAtMjE0LjUgLTU3dC0xNTUuNSAtMTU1LjV0LTU3IC0yMTQuNXQ1NyAtMjE0LjUgdDE1NS41IC0xNTUuNXQyMTQuNSAtNTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA2NDsiIGQ9Ik01NTQgMTI5NXEyMSAtNzIgNTcuNSAtMTQzLjV0NzYgLTEzMHQ4MyAtMTE4dDgyLjUgLTExN3Q3MCAtMTE2dDQ5LjUgLTEyNnQxOC41IC0xMzYuNXEwIC03MSAtMjUuNSAtMTM1dC02OC41IC0xMTF0LTk5IC04MnQtMTE4LjUgLTU0dC0xMjUuNSAtMjNxLTg0IDUgLTE2MS41IDM0dC0xMzkuNSA3OC41dC05OSAxMjV0LTM3IDE2NC41cTAgNjkgMTggMTM2LjV0NDkuNSAxMjYuNXQ2OS41IDExNi41dDgxLjUgMTE3LjV0ODMuNSAxMTkgdDc2LjUgMTMxdDU4LjUgMTQzek0zNDQgNzEwcS0yMyAtMzMgLTQzLjUgLTcwLjV0LTQwLjUgLTEwMi41dC0xNyAtMTIzcTEgLTM3IDE0LjUgLTY5LjV0MzAgLTUydDQxIC0zN3QzOC41IC0yNC41dDMzIC0xNXEyMSAtNyAzMiAtMXQxMyAyMmw2IDM0cTIgMTAgLTIuNSAyMnQtMTMuNSAxOXEtNSA0IC0xNCAxMnQtMjkuNSA0MC41dC0zMi41IDczLjVxLTI2IDg5IDYgMjcxcTIgMTEgLTYgMTFxLTggMSAtMTUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjU7IiBkPSJNMTAwMCAxMDEzbDEwOCAxMTVxMiAxIDUgMnQxMyAydDIwLjUgLTF0MjUgLTkuNXQyOC41IC0yMS41cTIyIC0yMiAyNyAtNDN0MCAtMzJsLTYgLTEwbC0xMDggLTExNXpNMzUwIDExMDBoNDAwcTUwIDAgMTA1IC0xM2wtMTg3IC0xODdoLTM2OHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41djE4MmwyMDAgMjAwdi0zMzIgcTAgLTE2NSAtOTMuNSAtMjU3LjV0LTI1Ni41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTEwMDkgODAzbC0zNjIgLTM2MmwtMTYxIC01MGw1NSAxNzBsMzU1IDM1NXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY2OyIgZD0iTTM1MCAxMTAwaDM2MXEtMTY0IC0xNDYgLTIxNiAtMjAwaC0xOTVxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNWwyMDAgMTUzdi0xMDNxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTgyNCAxMDczbDMzOSAtMzAxcTggLTcgOCAtMTcuNXQtOCAtMTcuNWwtMzQwIC0zMDZxLTcgLTYgLTEyLjUgLTR0LTYuNSAxMXYyMDNxLTI2IDEgLTU0LjUgMHQtNzguNSAtNy41dC05MiAtMTcuNXQtODYgLTM1dC03MCAtNTdxMTAgNTkgMzMgMTA4dDUxLjUgODEuNXQ2NSA1OC41dDY4LjUgNDAuNXQ2NyAyNC41dDU2IDEzLjV0NDAgNC41djIxMHExIDEwIDYuNSAxMi41dDEzLjUgLTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY3OyIgZD0iTTM1MCAxMTAwaDM1MHE2MCAwIDEyNyAtMjNsLTE3OCAtMTc3aC0zNDlxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNXY2OWwyMDAgMjAwdi0yMTlxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXogTTY0MyA2MzlsMzk1IDM5NXE3IDcgMTcuNSA3dDE3LjUgLTdsMTAxIC0xMDFxNyAtNyA3IC0xNy41dC03IC0xNy41bC01MzEgLTUzMnEtNyAtNyAtMTcuNSAtN3QtMTcuNSA3bC0yNDggMjQ4cS03IDcgLTcgMTcuNXQ3IDE3LjVsMTAxIDEwMXE3IDcgMTcuNSA3dDE3LjUgLTdsMTExIC0xMTFxOCAtNyAxOCAtN3QxOCA3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNjg7IiBkPSJNMzE4IDkxOGwyNjQgMjY0cTggOCAxOCA4dDE4IC04bDI2MCAtMjY0cTcgLTggNC41IC0xM3QtMTIuNSAtNWgtMTcwdi0yMDBoMjAwdjE3M3EwIDEwIDUgMTJ0MTMgLTVsMjY0IC0yNjBxOCAtNyA4IC0xNy41dC04IC0xNy41bC0yNjQgLTI2NXEtOCAtNyAtMTMgLTV0LTUgMTJ2MTczaC0yMDB2LTIwMGgxNzBxMTAgMCAxMi41IC01dC00LjUgLTEzbC0yNjAgLTI2NHEtOCAtOCAtMTggLTh0LTE4IDhsLTI2NCAyNjRxLTggOCAtNS41IDEzIHQxMi41IDVoMTc1djIwMGgtMjAwdi0xNzNxMCAtMTAgLTUgLTEydC0xMyA1bC0yNjQgMjY1cS04IDcgLTggMTcuNXQ4IDE3LjVsMjY0IDI2MHE4IDcgMTMgNXQ1IC0xMnYtMTczaDIwMHYyMDBoLTE3NXEtMTAgMCAtMTIuNSA1dDUuNSAxM3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDY5OyIgZD0iTTI1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDM4bDQ2NCA0NTNxMTUgMTQgMjUuNSAxMHQxMC41IC0yNXYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcwOyIgZD0iTTUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di00MzhsNDY0IDQ1M3ExNSAxNCAyNS41IDEwdDEwLjUgLTI1di0xMDAwcTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xMC41IC0yNXQtMjUuNSAxMGwtNDY0IDQ1M3YtNDM4cTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDcxOyIgZD0iTTEyMDAgMTA1MHYtMTAwMHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ2NCA0NTN2LTQzOHEwIC0yMSAtMTAuNSAtMjV0LTI1LjUgMTBsLTQ5MiA0ODBxLTE1IDE0IC0xNSAzNXQxNSAzNWw0OTIgNDgwcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV2LTQzOGw0NjQgNDUzcTE1IDE0IDI1LjUgMTB0MTAuNSAtMjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3MjsiIGQ9Ik0yNDMgMTA3NGw4MTQgLTQ5OHExOCAtMTEgMTggLTI2dC0xOCAtMjZsLTgxNCAtNDk4cS0xOCAtMTEgLTMwLjUgLTR0LTEyLjUgMjh2MTAwMHEwIDIxIDEyLjUgMjh0MzAuNSAtNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDczOyIgZD0iTTI1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtODAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzQ7IiBkPSJNMTEwMCA5NTB2LTgwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtODAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY4MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDgwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc1OyIgZD0iTTUwMCA2MTJ2NDM4cTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0OTIgLTQ4MHExNSAtMTQgMTUgLTM1dC0xNSAtMzVsLTQ5MiAtNDgwcS0xNSAtMTQgLTI1LjUgLTEwdC0xMC41IDI1djQzOGwtNDY0IC00NTNxLTE1IC0xNCAtMjUuNSAtMTB0LTEwLjUgMjV2MTAwMHEwIDIxIDEwLjUgMjV0MjUuNSAtMTB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NjsiIGQ9Ik0xMDQ4IDExMDJsMTAwIDFxMjAgMCAzNSAtMTQuNXQxNSAtMzUuNWw1IC0xMDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41bC0xMDAgLTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41bC0yIDQzN2wtNDYzIC00NTRxLTE0IC0xNSAtMjQuNSAtMTAuNXQtMTAuNSAyNS41bC0yIDQzN2wtNDYyIC00NTVxLTE1IC0xNCAtMjUuNSAtOS41dC0xMC41IDI0LjVsLTUgMTAwMHEwIDIxIDEwLjUgMjUuNXQyNS41IC0xMC41bDQ2NiAtNDUwIGwtMiA0MzhxMCAyMCAxMC41IDI0LjV0MjUuNSAtOS41bDQ2NiAtNDUxbC0yIDQzOHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA3NzsiIGQ9Ik04NTAgMTEwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDM4bC00NjQgLTQ1M3EtMTUgLTE0IC0yNS41IC0xMHQtMTAuNSAyNXYxMDAwcTAgMjEgMTAuNSAyNXQyNS41IC0xMGw0NjQgLTQ1M3Y0MzhxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwNzg7IiBkPSJNNjg2IDEwODFsNTAxIC01NDBxMTUgLTE1IDEwLjUgLTI2dC0yNi41IC0xMWgtMTA0MnEtMjIgMCAtMjYuNSAxMXQxMC41IDI2bDUwMSA1NDBxMTUgMTUgMzYgMTV0MzYgLTE1ek0xNTAgNDAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDc5OyIgZD0iTTg4NSA5MDBsLTM1MiAtMzUzbDM1MiAtMzUzbC0xOTcgLTE5OGwtNTUyIDU1Mmw1NTIgNTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODA7IiBkPSJNMTA2NCA1NDdsLTU1MSAtNTUxbC0xOTggMTk4bDM1MyAzNTNsLTM1MyAzNTNsMTk4IDE5OHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NTAgOTAwaC0xMDBxLTIxIDAgLTM1LjUgLTE0LjV0LTE0LjUgLTM1LjV2LTE1MGgtMTUwIHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMTAwcTAgLTIxIDE0LjUgLTM1LjV0MzUuNSAtMTQuNWgxNTB2LTE1MHEwIC0yMSAxNC41IC0zNS41dDM1LjUgLTE0LjVoMTAwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxNTBoMTUwcTIxIDAgMzUuNSAxNC41dDE0LjUgMzUuNXYxMDBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTE1MHYxNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4MjsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNODUwIDcwMGgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNSB0MzUuNSAtMTQuNWg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDgzOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03NDEuNSA5MTNxLTEyLjUgMCAtMjEuNSAtOWwtMTIwIC0xMjBsLTEyMCAxMjBxLTkgOSAtMjEuNSA5IHQtMjEuNSAtOWwtMTQxIC0xNDFxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxMjAgLTEyMGwtMTIwIC0xMjBxLTkgLTkgLTkgLTIxLjV0OSAtMjEuNWwxNDEgLTE0MXE5IC05IDIxLjUgLTl0MjEuNSA5bDEyMCAxMjBsMTIwIC0xMjBxOSAtOSAyMS41IC05dDIxLjUgOWwxNDEgMTQxcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTIwIDEyMGwxMjAgMTIwcTkgOSA5IDIxLjV0LTkgMjEuNWwtMTQxIDE0MXEtOSA5IC0yMS41IDl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NDsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNTQ2IDYyM2wtODQgODVxLTcgNyAtMTcuNSA3dC0xOC41IC03bC0xMzkgLTEzOXEtNyAtOCAtNyAtMTh0NyAtMTggbDI0MiAtMjQxcTcgLTggMTcuNSAtOHQxNy41IDhsMzc1IDM3NXE3IDcgNyAxNy41dC03IDE4LjVsLTEzOSAxMzlxLTcgNyAtMTcuNSA3dC0xNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwODU7IiBkPSJNNjAwIDExNzdxMTE3IDAgMjI0IC00NS41dDE4NC41IC0xMjN0MTIzIC0xODQuNXQ0NS41IC0yMjR0LTQ1LjUgLTIyNHQtMTIzIC0xODQuNXQtMTg0LjUgLTEyM3QtMjI0IC00NS41dC0yMjQgNDUuNXQtMTg0LjUgMTIzdC0xMjMgMTg0LjV0LTQ1LjUgMjI0dDQ1LjUgMjI0dDEyMyAxODQuNXQxODQuNSAxMjN0MjI0IDQ1LjV6TTU4OCA5NDFxLTI5IDAgLTU5IC01LjV0LTYzIC0yMC41dC01OCAtMzguNXQtNDEuNSAtNjN0LTE2LjUgLTg5LjUgcTAgLTI1IDIwIC0yNWgxMzFxMzAgLTUgMzUgMTFxNiAyMCAyMC41IDI4dDQ1LjUgOHEyMCAwIDMxLjUgLTEwLjV0MTEuNSAtMjguNXEwIC0yMyAtNyAtMzR0LTI2IC0xOHEtMSAwIC0xMy41IC00dC0xOS41IC03LjV0LTIwIC0xMC41dC0yMiAtMTd0LTE4LjUgLTI0dC0xNS41IC0zNXQtOCAtNDZxLTEgLTggNS41IC0xNi41dDIwLjUgLTguNWgxNzNxNyAwIDIyIDh0MzUgMjh0MzcuNSA0OHQyOS41IDc0dDEyIDEwMHEwIDQ3IC0xNyA4MyB0LTQyLjUgNTd0LTU5LjUgMzQuNXQtNjQgMTh0LTU5IDQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg2OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02NzUgMTAwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNSB0MTcuNSAtNy41aDE1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djE1MHEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6TTY3NSA3MDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoNzV2LTIwMGgtNzVxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di01MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDM1MHExMCAwIDE3LjUgNy41dDcuNSAxNy41djUwcTAgMTAgLTcuNSAxNy41IHQtMTcuNSA3LjVoLTc1djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4NzsiIGQ9Ik01MjUgMTIwMGgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xOTRxMTAzIC0yNyAxNzguNSAtMTAyLjV0MTAyLjUgLTE3OC41aDE5NHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE5NHEtMjcgLTEwMyAtMTAyLjUgLTE3OC41dC0xNzguNSAtMTAyLjV2LTE5NHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE5NCBxLTEwMyAyNyAtMTc4LjUgMTAyLjV0LTEwMi41IDE3OC41aC0xOTRxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxOTRxMjcgMTAzIDEwMi41IDE3OC41dDE3OC41IDEwMi41djE5NHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek03MDAgODkzdi0xNjhxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNjhxLTY4IC0yMyAtMTE5IC03NCB0LTc0IC0xMTloMTY4cTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTY4cTIzIC02OCA3NCAtMTE5dDExOSAtNzR2MTY4cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTY4cTY4IDIzIDExOSA3NHQ3NCAxMTloLTE2OHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDE2OCBxLTIzIDY4IC03NCAxMTl0LTExOSA3NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDg4OyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjV0NTcgLTIxNC41IHQxNTUuNSAtMTU1LjV0MjE0LjUgLTU3dDIxNC41IDU3dDE1NS41IDE1NS41dDU3IDIxNC41dC01NyAyMTQuNXQtMTU1LjUgMTU1LjV0LTIxNC41IDU3ek03NTkgODIzbDY0IC02NHE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTEyNCAtMTI0bDEyNCAtMTI0cTcgLTcgNyAtMTcuNXQtNyAtMTcuNWwtNjQgLTY0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTEyNCAxMjRsLTEyNCAtMTI0cS03IC03IC0xNy41IC03dC0xNy41IDdsLTY0IDY0IHEtNyA3IC03IDE3LjV0NyAxNy41bDEyNCAxMjRsLTEyNCAxMjRxLTcgNyAtNyAxNy41dDcgMTcuNWw2NCA2NHE3IDcgMTcuNSA3dDE3LjUgLTdsMTI0IC0xMjRsMTI0IDEyNHE3IDcgMTcuNSA3dDE3LjUgLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA4OTsiIGQ9Ik02MDAgMTE3N3ExMTcgMCAyMjQgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNHQtNDUuNSAtMjI0dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjQgLTQ1LjV0LTIyNCA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjR0NDUuNSAyMjR0MTIzIDE4NC41dDE4NC41IDEyM3QyMjQgNDUuNXpNNjAwIDEwMjdxLTExNiAwIC0yMTQuNSAtNTd0LTE1NS41IC0xNTUuNXQtNTcgLTIxNC41dDU3IC0yMTQuNSB0MTU1LjUgLTE1NS41dDIxNC41IC01N3QyMTQuNSA1N3QxNTUuNSAxNTUuNXQ1NyAyMTQuNXQtNTcgMjE0LjV0LTE1NS41IDE1NS41dC0yMTQuNSA1N3pNNzgyIDc4OGwxMDYgLTEwNnE3IC03IDcgLTE3LjV0LTcgLTE3LjVsLTMyMCAtMzIxcS04IC03IC0xOCAtN3QtMTggN2wtMjAyIDIwM3EtOCA3IC04IDE3LjV0OCAxNy41bDEwNiAxMDZxNyA4IDE3LjUgOHQxNy41IC04bDc5IC03OWwxOTcgMTk3cTcgNyAxNy41IDd0MTcuNSAtN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkwOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek02MDAgMTAyN3EtMTE2IDAgLTIxNC41IC01N3QtMTU1LjUgLTE1NS41dC01NyAtMjE0LjVxMCAtMTIwIDY1IC0yMjUgbDU4NyA1ODdxLTEwNSA2NSAtMjI1IDY1ek05NjUgODE5bC01ODQgLTU4NHExMDQgLTYyIDIxOSAtNjJxMTE2IDAgMjE0LjUgNTd0MTU1LjUgMTU1LjV0NTcgMjE0LjVxMCAxMTUgLTYyIDIxOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDkxOyIgZD0iTTM5IDU4Mmw1MjIgNDI3cTE2IDEzIDI3LjUgOHQxMS41IC0yNnYtMjkxaDU1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC01NTB2LTI5MXEwIC0yMSAtMTEuNSAtMjZ0LTI3LjUgOGwtNTIyIDQyN3EtMTYgMTMgLTE2IDMydDE2IDMyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUwOTI7IiBkPSJNNjM5IDEwMDlsNTIyIC00MjdxMTYgLTEzIDE2IC0zMnQtMTYgLTMybC01MjIgLTQyN3EtMTYgLTEzIC0yNy41IC04dC0xMS41IDI2djI5MWgtNTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDU1MHYyOTFxMCAyMSAxMS41IDI2dDI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5MzsiIGQ9Ik02ODIgMTE2MWw0MjcgLTUyMnExMyAtMTYgOCAtMjcuNXQtMjYgLTExLjVoLTI5MXYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0yMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djU1MGgtMjkxcS0yMSAwIC0yNiAxMS41dDggMjcuNWw0MjcgNTIycTEzIDE2IDMyIDE2dDMyIC0xNnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk0OyIgZD0iTTU1MCAxMjAwaDIwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUwaDI5MXEyMSAwIDI2IC0xMS41dC04IC0yNy41bC00MjcgLTUyMnEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC00MjcgNTIycS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMjkxdjU1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTA5NTsiIGQ9Ik02MzkgMTEwOWw1MjIgLTQyN3ExNiAtMTMgMTYgLTMydC0xNiAtMzJsLTUyMiAtNDI3cS0xNiAtMTMgLTI3LjUgLTh0LTExLjUgMjZ2MjkxcS05NCAtMiAtMTgyIC0yMHQtMTcwLjUgLTUydC0xNDcgLTkyLjV0LTEwMC41IC0xMzUuNXE1IDEwNSAyNyAxOTMuNXQ2Ny41IDE2N3QxMTMgMTM1dDE2NyA5MS41dDIyNS41IDQydjI2MnEwIDIxIDExLjUgMjZ0MjcuNSAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk2OyIgZD0iTTg1MCAxMjAwaDMwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMzAwcTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtOTQgOTRsLTI0OSAtMjQ5cS04IC03IC0xOCAtN3QtMTggN2wtMTA2IDEwNnEtNyA4IC03IDE4dDcgMThsMjQ5IDI0OWwtOTQgOTRxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjV6TTM1MCAwaC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djMwMHEwIDIxIDEwLjUgMjV0MjQuNSAtMTBsOTQgLTk0bDI0OSAyNDkgcTggNyAxOCA3dDE4IC03bDEwNiAtMTA2cTcgLTggNyAtMTh0LTcgLTE4bC0yNDkgLTI0OWw5NCAtOTRxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMDk3OyIgZD0iTTEwMTQgMTEyMGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMjQ5IC0yNDlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMjQ5IDI0OXE4IDcgMTggN3QxOCAtN3pNMjUwIDYwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMjQ5IC0yNDlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwyNDkgMjQ5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAxOyIgZD0iTTYwMCAxMTc3cTExNyAwIDIyNCAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI0dC00NS41IC0yMjR0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNCAtNDUuNXQtMjI0IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNHQ0NS41IDIyNHQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNCA0NS41ek03MDQgOTAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNSB0MzcuNSAtMTQuNWg1NHEyMCAwIDM3LjUgMTQuNXQyMS41IDM0LjVsNTggMzAycTQgMjAgLTggMzQuNXQtMzIgMTQuNXpNNjc1IDQwMGgtMTUwcS0xMCAwIC0xNy41IC03LjV0LTcuNSAtMTcuNXYtMTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2MTUwcTAgMTAgLTcuNSAxNy41dC0xNy41IDcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAyOyIgZD0iTTI2MCAxMjAwcTkgMCAxOSAtMnQxNSAtNGw1IC0ycTIyIC0xMCA0NCAtMjNsMTk2IC0xMThxMjEgLTEzIDM2IC0yNHEyOSAtMjEgMzcgLTEycTExIDEzIDQ5IDM1bDE5NiAxMThxMjIgMTMgNDUgMjNxMTcgNyAzOCA3cTIzIDAgNDcgLTE2LjV0MzcgLTMzLjVsMTMgLTE2cTE0IC0yMSAxOCAtNDVsMjUgLTEyM2w4IC00NHExIC05IDguNSAtMTQuNXQxNy41IC01LjVoNjFxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di01MCBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC01MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE3NWgtNDAwdjMwMGgtMjAwdi0zMDBoLTQwMHYxNzVxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC01MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNjFxMTEgMCAxOCAzdDcgOHEwIDQgOSA1MmwyNSAxMjhxNSAyNSAxOSA0NXEyIDMgNSA3dDEzLjUgMTV0MjEuNSAxOS41dDI2LjUgMTUuNSB0MjkuNSA3ek05MTUgMTA3OWwtMTY2IC0xNjJxLTcgLTcgLTUgLTEydDEyIC01aDIxOXExMCAwIDE1IDd0MiAxN2wtNTEgMTQ5cS0zIDEwIC0xMSAxMnQtMTUgLTZ6TTQ2MyA5MTdsLTE3NyAxNTdxLTggNyAtMTYgNXQtMTEgLTEybC01MSAtMTQzcS0zIC0xMCAyIC0xN3QxNSAtN2gyMzFxMTEgMCAxMi41IDV0LTUuNSAxMnpNNTAwIDBoLTM3NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djM3NWg0MDB2LTQwMHpNMTEwMCA0MDB2LTM3NSBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0zNzV2NDAwaDQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTAzOyIgZD0iTTExNjUgMTE5MHE4IDMgMjEgLTYuNXQxMyAtMTcuNXEtMiAtMTc4IC0yNC41IC0zMjMuNXQtNTUuNSAtMjQ1LjV0LTg3IC0xNzQuNXQtMTAyLjUgLTExOC41dC0xMTggLTY4LjV0LTExOC41IC0zM3QtMTIwIC00LjV0LTEwNSA5LjV0LTkwIDE2LjVxLTYxIDEyIC03OCAxMXEtNCAxIC0xMi41IDB0LTM0IC0xNC41dC01Mi41IC00MC41bC0xNTMgLTE1M3EtMjYgLTI0IC0zNyAtMTQuNXQtMTEgNDMuNXEwIDY0IDQyIDEwMnE4IDggNTAuNSA0NSB0NjYuNSA1OHExOSAxNyAzNSA0N3QxMyA2MXEtOSA1NSAtMTAgMTAyLjV0NyAxMTF0MzcgMTMwdDc4IDEyOS41cTM5IDUxIDgwIDg4dDg5LjUgNjMuNXQ5NC41IDQ1dDExMy41IDM2dDEyOSAzMXQxNTcuNSAzN3QxODIgNDcuNXpNMTExNiAxMDk4cS04IDkgLTIyLjUgLTN0LTQ1LjUgLTUwcS0zOCAtNDcgLTExOSAtMTAzLjV0LTE0MiAtODkuNWwtNjIgLTMzcS01NiAtMzAgLTEwMiAtNTd0LTEwNCAtNjh0LTEwMi41IC04MC41dC04NS41IC05MSB0LTY0IC0xMDQuNXEtMjQgLTU2IC0zMSAtODZ0MiAtMzJ0MzEuNSAxNy41dDU1LjUgNTkuNXEyNSAzMCA5NCA3NS41dDEyNS41IDc3LjV0MTQ3LjUgODFxNzAgMzcgMTE4LjUgNjl0MTAyIDc5LjV0OTkgMTExdDg2LjUgMTQ4LjVxMjIgNTAgMjQgNjB0LTYgMTl6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNDsiIGQ9Ik02NTMgMTIzMXEtMzkgLTY3IC01NC41IC0xMzF0LTEwLjUgLTExNC41dDI0LjUgLTk2LjV0NDcuNSAtODB0NjMuNSAtNjIuNXQ2OC41IC00Ni41dDY1IC0zMHEtNCA3IC0xNy41IDM1dC0xOC41IDM5LjV0LTE3IDM5LjV0LTE3IDQzdC0xMyA0MnQtOS41IDQ0LjV0LTIgNDJ0NCA0M3QxMy41IDM5dDIzIDM4LjVxOTYgLTQyIDE2NSAtMTA3LjV0MTA1IC0xMzh0NTIgLTE1NnQxMyAtMTU5dC0xOSAtMTQ5LjVxLTEzIC01NSAtNDQgLTEwNi41IHQtNjggLTg3dC03OC41IC02NC41dC03Mi41IC00NXQtNTMgLTIycS03MiAtMjIgLTEyNyAtMTFxLTMxIDYgLTEzIDE5cTYgMyAxNyA3cTEzIDUgMzIuNSAyMXQ0MSA0NHQzOC41IDYzLjV0MjEuNSA4MS41dC02LjUgOTQuNXQtNTAgMTA3dC0xMDQgMTE1LjVxMTAgLTEwNCAtMC41IC0xODl0LTM3IC0xNDAuNXQtNjUgLTkzdC04NCAtNTJ0LTkzLjUgLTExdC05NSAyNC41cS04MCAzNiAtMTMxLjUgMTE0dC01My41IDE3MXEtMiAyMyAwIDQ5LjUgdDQuNSA1Mi41dDEzLjUgNTZ0MjcuNSA2MHQ0NiA2NC41dDY5LjUgNjguNXEtOCAtNTMgLTUgLTEwMi41dDE3LjUgLTkwdDM0IC02OC41dDQ0LjUgLTM5dDQ5IC0ycTMxIDEzIDM4LjUgMzZ0LTQuNSA1NXQtMjkgNjQuNXQtMzYgNzV0LTI2IDc1LjVxLTE1IDg1IDIgMTYxLjV0NTMuNSAxMjguNXQ4NS41IDkyLjV0OTMuNSA2MXQ4MS41IDI1LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNTsiIGQ9Ik02MDAgMTA5NHE4MiAwIDE2MC41IC0yMi41dDE0MCAtNTl0MTE2LjUgLTgyLjV0OTQuNSAtOTV0NjggLTk1dDQyLjUgLTgyLjV0MTQgLTU3LjV0LTE0IC01Ny41dC00MyAtODIuNXQtNjguNSAtOTV0LTk0LjUgLTk1dC0xMTYuNSAtODIuNXQtMTQwIC01OXQtMTU5LjUgLTIyLjV0LTE1OS41IDIyLjV0LTE0MCA1OXQtMTE2LjUgODIuNXQtOTQuNSA5NXQtNjguNSA5NXQtNDMgODIuNXQtMTQgNTcuNXQxNCA1Ny41dDQyLjUgODIuNXQ2OCA5NSB0OTQuNSA5NXQxMTYuNSA4Mi41dDE0MCA1OXQxNjAuNSAyMi41ek04ODggODI5cS0xNSAxNSAtMTggMTJ0NSAtMjJxMjUgLTU3IDI1IC0xMTlxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4dC0yMTIgODh0LTg4IDIxMnEwIDU5IDIzIDExNHE4IDE5IDQuNSAyMnQtMTcuNSAtMTJxLTcwIC02OSAtMTYwIC0xODRxLTEzIC0xNiAtMTUgLTQwLjV0OSAtNDIuNXEyMiAtMzYgNDcgLTcxdDcwIC04MnQ5Mi41IC04MXQxMTMgLTU4LjV0MTMzLjUgLTI0LjUgdDEzMy41IDI0dDExMyA1OC41dDkyLjUgODEuNXQ3MCA4MS41dDQ3IDcwLjVxMTEgMTggOSA0Mi41dC0xNCA0MS41cS05MCAxMTcgLTE2MyAxODl6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wzNSAzNHExNCAxNSAxMi41IDMzLjV0LTE2LjUgMzMuNXEtNDQgNDQgLTg5IDExN3EtMTEgMTggLTI4IDIwdC0zMiAtMTJ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwNjsiIGQ9Ik01OTIgMGgtMTQ4bDMxIDEyMHEtOTEgMjAgLTE3NS41IDY4LjV0LTE0My41IDEwNi41dC0xMDMuNSAxMTl0LTY2LjUgMTEwdC0yMiA3NnEwIDIxIDE0IDU3LjV0NDIuNSA4Mi41dDY4IDk1dDk0LjUgOTV0MTE2LjUgODIuNXQxNDAgNTl0MTYwLjUgMjIuNXE2MSAwIDEyNiAtMTVsMzIgMTIxaDE0OHpNOTQ0IDc3MGw0NyAxODFxMTA4IC04NSAxNzYuNSAtMTkydDY4LjUgLTE1OXEwIC0yNiAtMTkuNSAtNzF0LTU5LjUgLTEwMnQtOTMgLTExMiB0LTEyOSAtMTA0LjV0LTE1OCAtNzUuNWw0NiAxNzNxNzcgNDkgMTM2IDExN3Q5NyAxMzFxMTEgMTggOSA0Mi41dC0xNCA0MS41cS01NCA3MCAtMTA3IDEzMHpNMzEwIDgyNHEtNzAgLTY5IC0xNjAgLTE4NHEtMTMgLTE2IC0xNSAtNDAuNXQ5IC00Mi41cTE4IC0zMCAzOSAtNjB0NTcgLTcwLjV0NzQgLTczdDkwIC02MXQxMDUgLTQxLjVsNDEgMTU0cS0xMDcgMTggLTE3OC41IDEwMS41dC03MS41IDE5My41cTAgNTkgMjMgMTE0cTggMTkgNC41IDIyIHQtMTcuNSAtMTJ6TTQ0OCA3MjdsLTM1IC0zNnEtMTUgLTE1IC0xOS41IC0zOC41dDQuNSAtNDEuNXEzNyAtNjggOTMgLTExNnExNiAtMTMgMzguNSAtMTF0MzYuNSAxN2wxMiAxMWwyMiA4NmwtMyA0cS00NCA0NCAtODkgMTE3cS0xMSAxOCAtMjggMjB0LTMyIC0xMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTA3OyIgZD0iTS05MCAxMDBsNjQyIDEwNjZxMjAgMzEgNDggMjguNXQ0OCAtMzUuNWw2NDIgLTEwNTZxMjEgLTMyIDcuNSAtNjcuNXQtNTAuNSAtMzUuNWgtMTI5NHEtMzcgMCAtNTAuNSAzNHQ3LjUgNjZ6TTE1NSAyMDBoMzQ1djc1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtNzVoMzQ1bC00NDUgNzIzek00OTYgNzAwaDIwOHEyMCAwIDMyIC0xNC41dDggLTM0LjVsLTU4IC0yNTIgcS00IC0yMCAtMjEuNSAtMzQuNXQtMzcuNSAtMTQuNWgtNTRxLTIwIDAgLTM3LjUgMTQuNXQtMjEuNSAzNC41bC01OCAyNTJxLTQgMjAgOCAzNC41dDMyIDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwODsiIGQ9Ik02NTAgMTIwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnYtMzM5bDM2MyAtMzI1cTE1IC0xNCAyNiAtMzguNXQxMSAtNDQuNXYtNDFxMCAtMjAgLTEyIC0yNi41dC0yOSA1LjVsLTM1OSAyNDl2LTI2M3ExMDAgLTkzIDEwMCAtMTEzdi02NHEwIC0yMSAtMTMgLTI5dC0zMiAxbC0yMDUgMTI4bC0yMDUgLTEyOHEtMTkgLTkgLTMyIC0xdC0xMyAyOXY2NHEwIDIwIDEwMCAxMTN2MjYzbC0zNTkgLTI0OXEtMTcgLTEyIC0yOSAtNS41dC0xMiAyNi41djQxIHEwIDIwIDExIDQ0LjV0MjYgMzguNWwzNjMgMzI1djMzOXEwIDYyIDQ0IDEwNnQxMDYgNDR6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEwOTsiIGQ9Ik04NTAgMTIwMGgxMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTExMDB2MTUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMTAwIDgwMHYtNzUwcTAgLTIxIC0xNC41IC0zNS41IHQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NzUwaDExMDB6TTEwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTcwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTkwMCA2MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTEwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTMwMCA0MDB2LTEwMGgxMDB2MTAwaC0xMDB6TTUwMCA0MDAgdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgNDAwdi0xMDBoMTAwdjEwMGgtMTAwek0xMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek0zMDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek01MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek03MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAwek05MDAgMjAwdi0xMDBoMTAwdjEwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTA7IiBkPSJNMTEzNSAxMTY1bDI0OSAtMjMwcTE1IC0xNCAxNSAtMzV0LTE1IC0zNWwtMjQ5IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC0xNTlsLTYwMCAtNjAwaC0yOTFxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjA5bDYwMCA2MDBoMjQxdjE1MHEwIDIxIDEwLjUgMjV0MjQuNSAtMTB6TTUyMiA4MTlsLTE0MSAtMTQxbC0xMjIgMTIyaC0yMDlxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI5MXpNMTEzNSA1NjVsMjQ5IC0yMzBxMTUgLTE0IDE1IC0zNXQtMTUgLTM1bC0yNDkgLTIzMHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYxNTBoLTI0MWwtMTgxIDE4MWwxNDEgMTQxbDEyMiAtMTIyaDE1OXYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTE7IiBkPSJNMTAwIDExMDBoMTAwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC01OTZsLTMwNCAtMzAwdjMwMGgtMTAwcS00MSAwIC03MC41IDI5LjV0LTI5LjUgNzAuNXY2MDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTI7IiBkPSJNMTUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTMwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgyMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMzAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTExMDAgODAwdi0zMDBxMCAtNDEgLTMgLTc3LjV0LTE1IC04OS41dC0zMiAtOTZ0LTU4IC04OXQtODkgLTc3dC0xMjkgLTUxdC0xNzQgLTIwdC0xNzQgMjAgdC0xMjkgNTF0LTg5IDc3dC01OCA4OXQtMzIgOTZ0LTE1IDg5LjV0LTMgNzcuNXYzMDBoMzAwdi0yNTB2LTI3di00Mi41dDEuNSAtNDF0NSAtMzh0MTAgLTM1dDE2LjUgLTMwdDI1LjUgLTI0LjV0MzUgLTE5dDQ2LjUgLTEydDYwIC00dDYwIDQuNXQ0Ni41IDEyLjV0MzUgMTkuNXQyNSAyNS41dDE3IDMwLjV0MTAgMzV0NSAzOHQyIDQwLjV0LTAuNSA0MnYyNXYyNTBoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTM7IiBkPSJNMTEwMCA0MTFsLTE5OCAtMTk5bC0zNTMgMzUzbC0zNTMgLTM1M2wtMTk3IDE5OWw1NTEgNTUxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTQ7IiBkPSJNMTEwMSA3ODlsLTU1MCAtNTUxbC01NTEgNTUxbDE5OCAxOTlsMzUzIC0zNTNsMzUzIDM1M3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE1OyIgZD0iTTQwNCAxMDAwaDc0NnEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTUxaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtMjMwIC0yNDlxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI0OXEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNWgxNTB2NDAxaC0zODF6TTEzNSA5ODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi00MDBoMzg1bDIxNSAtMjAwaC03NTBxLTIxIDAgLTM1LjUgMTQuNSB0LTE0LjUgMzUuNXY1NTBoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTY7IiBkPSJNNTYgMTIwMGg5NHExNyAwIDMxIC0xMXQxOCAtMjdsMzggLTE2Mmg4OTZxMjQgMCAzOSAtMTguNXQxMCAtNDIuNWwtMTAwIC00NzVxLTUgLTIxIC0yNyAtNDIuNXQtNTUgLTIxLjVoLTYzM2w0OCAtMjAwaDUzNXEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41dC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MGgtMzAwdi01MCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaC0zMXEtMTggMCAtMzIuNSAxMHQtMjAuNSAxOWwtNSAxMGwtMjAxIDk2MWgtNTRxLTIwIDAgLTM1IDE0LjV0LTE1IDM1LjV0MTUgMzUuNXQzNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTc7IiBkPSJNMTIwMCAxMDAwdi0xMDBoLTEyMDB2MTAwaDIwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwcTQxIDAgNzAuNSAtMjkuNXQyOS41IC03MC41aDUwMHpNMCA4MDBoMTIwMHYtODAwaC0xMjAwdjgwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTE4OyIgZD0iTTIwMCA4MDBsLTIwMCAtNDAwdjYwMGgyMDBxMCA0MSAyOS41IDcwLjV0NzAuNSAyOS41aDMwMHE0MiAwIDcxIC0yOS41dDI5IC03MC41aDUwMHYtMjAwaC0xMDAwek0xNTAwIDcwMGwtMzAwIC03MDBoLTEyMDBsMzAwIDcwMGgxMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMTk7IiBkPSJNNjM1IDExODRsMjMwIC0yNDlxMTQgLTE0IDEwIC0yNC41dC0yNSAtMTAuNWgtMTUwdi02MDFoMTUwcTIxIDAgMjUgLTEwLjV0LTEwIC0yNC41bC0yMzAgLTI0OXEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjQ5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41aDE1MHY2MDFoLTE1MHEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIzMCAyNDlxMTQgMTUgMzUgMTV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjA7IiBkPSJNOTM2IDg2NGwyNDkgLTIyOXExNCAtMTUgMTQgLTM1LjV0LTE0IC0zNS41bC0yNDkgLTIyOXEtMTUgLTE1IC0yNS41IC0xMC41dC0xMC41IDI0LjV2MTUxaC02MDB2LTE1MXEwIC0yMCAtMTAuNSAtMjQuNXQtMjUuNSAxMC41bC0yNDkgMjI5cS0xNCAxNSAtMTQgMzUuNXQxNCAzNS41bDI0OSAyMjlxMTUgMTUgMjUuNSAxMC41dDEwLjUgLTI1LjV2LTE0OWg2MDB2MTQ5cTAgMjEgMTAuNSAyNS41dDI1LjUgLTEwLjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMTsiIGQ9Ik0xMTY5IDQwMGwtMTcyIDczMnEtNSAyMyAtMjMgNDUuNXQtMzggMjIuNWgtNjcycS0yMCAwIC0zOCAtMjB0LTIzIC00MWwtMTcyIC03MzloMTEzOHpNMTEwMCAzMDBoLTEwMDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTEwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoMTAwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek04MDAgMTAwdjEwMGgxMDB2LTEwMGgtMTAwIHpNMTAwMCAxMDB2MTAwaDEwMHYtMTAwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyMjsiIGQ9Ik0xMTUwIDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTg1MHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUuNSAxNC41dC0xNC41IDM1LjV2ODUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNMTAwMCAyMDBsLTY3NSAyMDBoLTM4bDQ3IC0yNzZxMyAtMTYgLTUuNSAtMjB0LTI5LjUgLTRoLTdoLTg0cS0yMCAwIC0zNC41IDE0dC0xOC41IDM1cS01NSAzMzcgLTU1IDM1MXYyNTB2NnEwIDE2IDEgMjMuNXQ2LjUgMTQgdDE3LjUgNi41aDIwMGw2NzUgMjUwdi04NTB6TTAgNzUwdi0yNTBxLTQgMCAtMTEgMC41dC0yNCA2dC0zMCAxNXQtMjQgMzB0LTExIDQ4LjV2NTBxMCAyNiAxMC41IDQ2dDI1IDMwdDI5IDE2dDI1LjUgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTIzOyIgZD0iTTU1MyAxMjAwaDk0cTIwIDAgMjkgLTEwLjV0MyAtMjkuNWwtMTggLTM3cTgzIC0xOSAxNDQgLTgyLjV0NzYgLTE0MC41bDYzIC0zMjdsMTE4IC0xNzNoMTdxMTkgMCAzMyAtMTQuNXQxNCAtMzV0LTEzIC00MC41dC0zMSAtMjdxLTggLTQgLTIzIC05LjV0LTY1IC0xOS41dC0xMDMgLTI1dC0xMzIuNSAtMjB0LTE1OC41IC05cS01NyAwIC0xMTUgNXQtMTA0IDEydC04OC41IDE1LjV0LTczLjUgMTcuNXQtNTQuNSAxNnQtMzUuNSAxMmwtMTEgNCBxLTE4IDggLTMxIDI4dC0xMyA0MC41dDE0IDM1dDMzIDE0LjVoMTdsMTE4IDE3M2w2MyAzMjdxMTUgNzcgNzYgMTQwdDE0NCA4M2wtMTggMzJxLTYgMTkgMy41IDMydDI4LjUgMTN6TTQ5OCAxMTBxNTAgLTYgMTAyIC02cTUzIDAgMTAyIDZxLTEyIC00OSAtMzkuNSAtNzkuNXQtNjIuNSAtMzAuNXQtNjMgMzAuNXQtMzkgNzkuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI0OyIgZD0iTTgwMCA5NDZsMjI0IDc4bC03OCAtMjI0bDIzNCAtNDVsLTE4MCAtMTU1bDE4MCAtMTU1bC0yMzQgLTQ1bDc4IC0yMjRsLTIyNCA3OGwtNDUgLTIzNGwtMTU1IDE4MGwtMTU1IC0xODBsLTQ1IDIzNGwtMjI0IC03OGw3OCAyMjRsLTIzNCA0NWwxODAgMTU1bC0xODAgMTU1bDIzNCA0NWwtNzggMjI0bDIyNCAtNzhsNDUgMjM0bDE1NSAtMTgwbDE1NSAxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyNTsiIGQ9Ik02NTAgMTIwMGg1MHE0MCAwIDcwIC00MC41dDMwIC04NC41di0xNTBsLTI4IC0xMjVoMzI4cTQwIDAgNzAgLTQwLjV0MzAgLTg0LjV2LTEwMHEwIC00NSAtMjkgLTc0bC0yMzggLTM0NHEtMTYgLTI0IC0zOCAtNDAuNXQtNDUgLTE2LjVoLTI1MHEtNyAwIC00MiAyNXQtNjYgNTBsLTMxIDI1aC02MXEtNDUgMCAtNzIuNSAxOHQtMjcuNSA1N3Y0MDBxMCAzNiAyMCA2M2wxNDUgMTk2bDk2IDE5OHExMyAyOCAzNy41IDQ4dDUxLjUgMjB6IE02NTAgMTEwMGwtMTAwIC0yMTJsLTE1MCAtMjEzdi0zNzVoMTAwbDEzNiAtMTAwaDIxNGwyNTAgMzc1djEyNWgtNDUwbDUwIDIyNXYxNzVoLTUwek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTI2OyIgZD0iTTYwMCAxMTAwaDI1MHEyMyAwIDQ1IC0xNi41dDM4IC00MC41bDIzOCAtMzQ0cTI5IC0yOSAyOSAtNzR2LTEwMHEwIC00NCAtMzAgLTg0LjV0LTcwIC00MC41aC0zMjhxMjggLTExOCAyOCAtMTI1di0xNTBxMCAtNDQgLTMwIC04NC41dC03MCAtNDAuNWgtNTBxLTI3IDAgLTUxLjUgMjB0LTM3LjUgNDhsLTk2IDE5OGwtMTQ1IDE5NnEtMjAgMjcgLTIwIDYzdjQwMHEwIDM5IDI3LjUgNTd0NzIuNSAxOGg2MXExMjQgMTAwIDEzOSAxMDB6IE01MCAxMDAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTYzNiAxMDAwbC0xMzYgLTEwMGgtMTAwdi0zNzVsMTUwIC0yMTNsMTAwIC0yMTJoNTB2MTc1bC01MCAyMjVoNDUwdjEyNWwtMjUwIDM3NWgtMjE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMjc7IiBkPSJNMzU2IDg3M2wzNjMgMjMwcTMxIDE2IDUzIC02bDExMCAtMTEycTEzIC0xMyAxMy41IC0zMnQtMTEuNSAtMzRsLTg0IC0xMjFoMzAycTg0IDAgMTM4IC0zOHQ1NCAtMTEwdC01NSAtMTExdC0xMzkgLTM5aC0xMDZsLTEzMSAtMzM5cS02IC0yMSAtMTkuNSAtNDF0LTI4LjUgLTIwaC0zNDJxLTcgMCAtOTAgODF0LTgzIDk0djUyNXEwIDE3IDE0IDM1LjV0MjggMjguNXpNNDAwIDc5MnYtNTAzbDEwMCAtODloMjkzbDEzMSAzMzkgcTYgMjEgMTkuNSA0MXQyOC41IDIwaDIwM3EyMSAwIDMwLjUgMjV0MC41IDUwdC0zMSAyNWgtNDU2aC03aC02aC01LjV0LTYgMC41dC01IDEuNXQtNSAydC00IDIuNXQtNCA0dC0yLjUgNC41cS0xMiAyNSA1IDQ3bDE0NiAxODNsLTg2IDgzek01MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NTAwIHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyODsiIGQ9Ik00NzUgMTEwM2wzNjYgLTIzMHEyIC0xIDYgLTMuNXQxNCAtMTAuNXQxOCAtMTYuNXQxNC41IC0yMHQ2LjUgLTIyLjV2LTUyNXEwIC0xMyAtODYgLTk0dC05MyAtODFoLTM0MnEtMTUgMCAtMjguNSAyMHQtMTkuNSA0MWwtMTMxIDMzOWgtMTA2cS04NSAwIC0xMzkuNSAzOXQtNTQuNSAxMTF0NTQgMTEwdDEzOCAzOGgzMDJsLTg1IDEyMXEtMTEgMTUgLTEwLjUgMzR0MTMuNSAzMmwxMTAgMTEycTIyIDIyIDUzIDZ6TTM3MCA5NDVsMTQ2IC0xODMgcTE3IC0yMiA1IC00N3EtMiAtMiAtMy41IC00LjV0LTQgLTR0LTQgLTIuNXQtNSAtMnQtNSAtMS41dC02IC0wLjVoLTZoLTYuNWgtNmgtNDc1di0xMDBoMjIxcTE1IDAgMjkgLTIwdDIwIC00MWwxMzAgLTMzOWgyOTRsMTA2IDg5djUwM2wtMzQyIDIzNnpNMTA1MCA4MDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjUgdjUwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEyOTsiIGQ9Ik01NTAgMTI5NHE3MiAwIDExMSAtNTV0MzkgLTEzOXYtMTA2bDMzOSAtMTMxcTIxIC02IDQxIC0xOS41dDIwIC0yOC41di0zNDJxMCAtNyAtODEgLTkwdC05NCAtODNoLTUyNXEtMTcgMCAtMzUuNSAxNHQtMjguNSAyOGwtOSAxNGwtMjMwIDM2M3EtMTYgMzEgNiA1M2wxMTIgMTEwcTEzIDEzIDMyIDEzLjV0MzQgLTExLjVsMTIxIC04NHYzMDJxMCA4NCAzOCAxMzh0MTEwIDU0ek02MDAgOTcydjIwM3EwIDIxIC0yNSAzMC41dC01MCAwLjUgdC0yNSAtMzF2LTQ1NnYtN3YtNnYtNS41dC0wLjUgLTZ0LTEuNSAtNXQtMiAtNXQtMi41IC00dC00IC00dC00LjUgLTIuNXEtMjUgLTEyIC00NyA1bC0xODMgMTQ2bC04MyAtODZsMjM2IC0zMzloNTAzbDg5IDEwMHYyOTNsLTMzOSAxMzFxLTIxIDYgLTQxIDE5LjV0LTIwIDI4LjV6TTQ1MCAyMDBoNTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTUwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMDsiIGQ9Ik0zNTAgMTEwMGg1MDBxMjEgMCAzNS41IDE0LjV0MTQuNSAzNS41djEwMHEwIDIxIC0xNC41IDM1LjV0LTM1LjUgMTQuNWgtNTAwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xMDBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41ek02MDAgMzA2di0xMDZxMCAtODQgLTM5IC0xMzl0LTExMSAtNTV0LTExMCA1NHQtMzggMTM4djMwMmwtMTIxIC04NHEtMTUgLTEyIC0zNCAtMTEuNXQtMzIgMTMuNWwtMTEyIDExMCBxLTIyIDIyIC02IDUzbDIzMCAzNjNxMSAyIDMuNSA2dDEwLjUgMTMuNXQxNi41IDE3dDIwIDEzLjV0MjIuNSA2aDUyNXExMyAwIDk0IC04M3Q4MSAtOTB2LTM0MnEwIC0xNSAtMjAgLTI4LjV0LTQxIC0xOS41ek0zMDggOTAwbC0yMzYgLTMzOWw4MyAtODZsMTgzIDE0NnEyMiAxNyA0NyA1cTIgLTEgNC41IC0yLjV0NCAtNHQyLjUgLTR0MiAtNXQxLjUgLTV0MC41IC02di01LjV2LTZ2LTd2LTQ1NnEwIC0yMiAyNSAtMzF0NTAgMC41dDI1IDMwLjUgdjIwM3EwIDE1IDIwIDI4LjV0NDEgMTkuNWwzMzkgMTMxdjI5M2wtODkgMTAwaC01MDN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMTsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNOTE0IDYzMmwtMjc1IDIyM3EtMTYgMTMgLTI3LjUgOHQtMTEuNSAtMjZ2LTEzN2gtMjc1IHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTE1MHEwIC0xMCA3LjUgLTE3LjV0MTcuNSAtNy41aDI3NXYtMTM3cTAgLTIxIDExLjUgLTI2dDI3LjUgOGwyNzUgMjIzcTE2IDEzIDE2IDMydC0xNiAzMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTMyOyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek01NjEgODU1bC0yNzUgLTIyM3EtMTYgLTEzIC0xNiAtMzJ0MTYgLTMybDI3NSAtMjIzcTE2IC0xMyAyNy41IC04IHQxMS41IDI2djEzN2gyNzVxMTAgMCAxNy41IDcuNXQ3LjUgMTcuNXYxNTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41aC0yNzV2MTM3cTAgMjEgLTExLjUgMjZ0LTI3LjUgLTh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzMzsiIGQ9Ik02MDAgMTE3OHExMTggMCAyMjUgLTQ1LjV0MTg0LjUgLTEyM3QxMjMgLTE4NC41dDQ1LjUgLTIyNXQtNDUuNSAtMjI1dC0xMjMgLTE4NC41dC0xODQuNSAtMTIzdC0yMjUgLTQ1LjV0LTIyNSA0NS41dC0xODQuNSAxMjN0LTEyMyAxODQuNXQtNDUuNSAyMjV0NDUuNSAyMjV0MTIzIDE4NC41dDE4NC41IDEyM3QyMjUgNDUuNXpNODU1IDYzOWwtMjIzIDI3NXEtMTMgMTYgLTMyIDE2dC0zMiAtMTZsLTIyMyAtMjc1cS0xMyAtMTYgLTggLTI3LjUgdDI2IC0xMS41aDEzN3YtMjc1cTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMTUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2Mjc1aDEzN3EyMSAwIDI2IDExLjV0LTggMjcuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM0OyIgZD0iTTYwMCAxMTc4cTExOCAwIDIyNSAtNDUuNXQxODQuNSAtMTIzdDEyMyAtMTg0LjV0NDUuNSAtMjI1dC00NS41IC0yMjV0LTEyMyAtMTg0LjV0LTE4NC41IC0xMjN0LTIyNSAtNDUuNXQtMjI1IDQ1LjV0LTE4NC41IDEyM3QtMTIzIDE4NC41dC00NS41IDIyNXQ0NS41IDIyNXQxMjMgMTg0LjV0MTg0LjUgMTIzdDIyNSA0NS41ek02NzUgOTAwaC0xNTBxLTEwIDAgLTE3LjUgLTcuNXQtNy41IC0xNy41di0yNzVoLTEzN3EtMjEgMCAtMjYgLTExLjUgdDggLTI3LjVsMjIzIC0yNzVxMTMgLTE2IDMyIC0xNnQzMiAxNmwyMjMgMjc1cTEzIDE2IDggMjcuNXQtMjYgMTEuNWgtMTM3djI3NXEwIDEwIC03LjUgMTcuNXQtMTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTEzNTsiIGQ9Ik02MDAgMTE3NnExMTYgMCAyMjIuNSAtNDZ0MTg0IC0xMjMuNXQxMjMuNSAtMTg0dDQ2IC0yMjIuNXQtNDYgLTIyMi41dC0xMjMuNSAtMTg0dC0xODQgLTEyMy41dC0yMjIuNSAtNDZ0LTIyMi41IDQ2dC0xODQgMTIzLjV0LTEyMy41IDE4NHQtNDYgMjIyLjV0NDYgMjIyLjV0MTIzLjUgMTg0dDE4NCAxMjMuNXQyMjIuNSA0NnpNNjI3IDExMDFxLTE1IC0xMiAtMzYuNSAtMjAuNXQtMzUuNSAtMTJ0LTQzIC04dC0zOSAtNi41IHEtMTUgLTMgLTQ1LjUgMHQtNDUuNSAtMnEtMjAgLTcgLTUxLjUgLTI2LjV0LTM0LjUgLTM0LjVxLTMgLTExIDYuNSAtMjIuNXQ4LjUgLTE4LjVxLTMgLTM0IC0yNy41IC05MXQtMjkuNSAtNzlxLTkgLTM0IDUgLTkzdDggLTg3cTAgLTkgMTcgLTQ0LjV0MTYgLTU5LjVxMTIgMCAyMyAtNXQyMy41IC0xNXQxOS41IC0xNHExNiAtOCAzMyAtMTV0NDAuNSAtMTV0MzQuNSAtMTJxMjEgLTkgNTIuNSAtMzJ0NjAgLTM4dDU3LjUgLTExIHE3IC0xNSAtMyAtMzR0LTIyLjUgLTQwdC05LjUgLTM4cTEzIC0yMSAyMyAtMzQuNXQyNy41IC0yNy41dDM2LjUgLTE4cTAgLTcgLTMuNSAtMTZ0LTMuNSAtMTR0NSAtMTdxMTA0IC0yIDIyMSAxMTJxMzAgMjkgNDYuNSA0N3QzNC41IDQ5dDIxIDYzcS0xMyA4IC0zNyA4LjV0LTM2IDcuNXEtMTUgNyAtNDkuNSAxNXQtNTEuNSAxOXEtMTggMCAtNDEgLTAuNXQtNDMgLTEuNXQtNDIgLTYuNXQtMzggLTE2LjVxLTUxIC0zNSAtNjYgLTEyIHEtNCAxIC0zLjUgMjUuNXQwLjUgMjUuNXEtNiAxMyAtMjYuNSAxNy41dC0yNC41IDYuNXExIDE1IC0wLjUgMzAuNXQtNyAyOHQtMTguNSAxMS41dC0zMSAtMjFxLTIzIC0yNSAtNDIgNHEtMTkgMjggLTggNThxNiAxNiAyMiAyMnE2IC0xIDI2IC0xLjV0MzMuNSAtNHQxOS41IC0xMy41cTcgLTEyIDE4IC0yNHQyMS41IC0yMC41dDIwIC0xNXQxNS41IC0xMC41bDUgLTNxMiAxMiA3LjUgMzAuNXQ4IDM0LjV0LTAuNSAzMnEtMyAxOCAzLjUgMjkgdDE4IDIyLjV0MTUuNSAyNC41cTYgMTQgMTAuNSAzNXQ4IDMxdDE1LjUgMjIuNXQzNCAyMi41cS02IDE4IDEwIDM2cTggMCAyNCAtMS41dDI0LjUgLTEuNXQyMCA0LjV0MjAuNSAxNS41cS0xMCAyMyAtMzEgNDIuNXQtMzcuNSAyOS41dC00OSAyN3QtNDMuNSAyM3EwIDEgMiA4dDMgMTEuNXQxLjUgMTAuNXQtMSA5LjV0LTQuNSA0LjVxMzEgLTEzIDU4LjUgLTE0LjV0MzguNSAyLjVsMTIgNXE1IDI4IC05LjUgNDZ0LTM2LjUgMjR0LTUwIDE1IHQtNDEgMjBxLTE4IC00IC0zNyAwek02MTMgOTk0cTAgLTE3IDggLTQydDE3IC00NXQ5IC0yM3EtOCAxIC0zOS41IDUuNXQtNTIuNSAxMHQtMzcgMTYuNXEzIDExIDE2IDI5LjV0MTYgMjUuNXExMCAtMTAgMTkgLTEwdDE0IDZ0MTMuNSAxNC41dDE2LjUgMTIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM2OyIgZD0iTTc1NiAxMTU3cTE2NCA5MiAzMDYgLTlsLTI1OSAtMTM4bDE0NSAtMjMybDI1MSAxMjZxNiAtODkgLTM0IC0xNTYuNXQtMTE3IC0xMTAuNXEtNjAgLTM0IC0xMjcgLTM5LjV0LTEyNiAxNi41bC01OTYgLTU5NnEtMTUgLTE2IC0zNi41IC0xNnQtMzYuNSAxNmwtMTExIDExMHEtMTUgMTUgLTE1IDM2LjV0MTUgMzcuNWw2MDAgNTk5cS0zNCAxMDEgNS41IDIwMS41dDEzNS41IDE1NC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzc7IiBob3Jpei1hZHYteD0iMTIyMCIgZD0iTTEwMCAxMTk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAxMDk2aC0yMDB2LTEwMGgyMDB2MTAwek0xMDAgNzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMCBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTExMDAgNjk2aC01MDB2LTEwMGg1MDB2MTAwek0xMDAgMzk2aDEwMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTEwMHEwIC00MSAtMjkuNSAtNzAuNXQtNzAuNSAtMjkuNWgtMTAwMHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MTAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNMTEwMCAyOTZoLTMwMHYtMTAwaDMwMHYxMDB6ICIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxMzg7IiBkPSJNMTUwIDEyMDBoOTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41dC0xNC41IC0zNS41dC0zNS41IC0xNC41aC05MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA1MDB2LTMwMGwtMjAwIC0yMDB2NTAwbC0zNTAgNTAwaDkwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTM5OyIgZD0iTTUwMCAxMjAwaDIwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtMTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNDAwaC01MDB2MTAwaC0yMDB2LTEwMGgtNTAwdjQwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjVoMzAwdjEwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTUwMCAxMTAwdi0xMDBoMjAwdjEwMGgtMjAwek0xMjAwIDQwMHYtMjAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0xMDAwIHEtNDEgMCAtNzAuNSAyOS41dC0yOS41IDcwLjV2MjAwaDEyMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MDsiIGQ9Ik01MCAxMjAwaDMwMHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNWwtOTQgLTk0bDE5OSAtMTk5cTcgLTggNyAtMTh0LTcgLTE4bC0xMDYgLTEwNnEtOCAtNyAtMTggLTd0LTE4IDdsLTE5OSAxOTlsLTk0IC05NHEtMTQgLTE0IC0yNC41IC0xMHQtMTAuNSAyNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek04NTAgMTIwMGgzMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTk0IDk0IGwtMTk5IC0xOTlxLTggLTcgLTE4IC03dC0xOCA3bC0xMDYgMTA2cS03IDggLTcgMTh0NyAxOGwxOTkgMTk5bC05NCA5NHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNMzY0IDQ3MGwxMDYgLTEwNnE3IC04IDcgLTE4dC03IC0xOGwtMTk5IC0xOTlsOTQgLTk0cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTMwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MzAwcTAgMjEgMTAuNSAyNXQyNC41IC0xMGw5NCAtOTRsMTk5IDE5OSBxOCA3IDE4IDd0MTggLTd6TTEwNzEgMjcxbDk0IDk0cTE0IDE0IDI0LjUgMTB0MTAuNSAtMjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0yNSAxMC41dDEwIDI0LjVsOTQgOTRsLTE5OSAxOTlxLTcgOCAtNyAxOHQ3IDE4bDEwNiAxMDZxOCA3IDE4IDd0MTggLTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0MTsiIGQ9Ik01OTYgMTE5MnExMjEgMCAyMzEuNSAtNDcuNXQxOTAgLTEyN3QxMjcgLTE5MHQ0Ny41IC0yMzEuNXQtNDcuNSAtMjMxLjV0LTEyNyAtMTkwLjV0LTE5MCAtMTI3dC0yMzEuNSAtNDd0LTIzMS41IDQ3dC0xOTAuNSAxMjd0LTEyNyAxOTAuNXQtNDcgMjMxLjV0NDcgMjMxLjV0MTI3IDE5MHQxOTAuNSAxMjd0MjMxLjUgNDcuNXpNNTk2IDEwMTBxLTExMiAwIC0yMDcuNSAtNTUuNXQtMTUxIC0xNTF0LTU1LjUgLTIwNy41dDU1LjUgLTIwNy41IHQxNTEgLTE1MXQyMDcuNSAtNTUuNXQyMDcuNSA1NS41dDE1MSAxNTF0NTUuNSAyMDcuNXQtNTUuNSAyMDcuNXQtMTUxIDE1MXQtMjA3LjUgNTUuNXpNNDU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOC41IC0xNi41dC0zOC41IDE2LjV0LTE2IDM5dDE2IDM4LjV0MzguNSAxNnpNNzU0LjUgOTA1cTIyLjUgMCAzOC41IC0xNnQxNiAtMzguNXQtMTYgLTM5dC0zOCAtMTYuNXEtMTQgMCAtMjkgMTBsLTU1IC0xNDUgcTE3IC0yMyAxNyAtNTFxMCAtMzYgLTI1LjUgLTYxLjV0LTYxLjUgLTI1LjV0LTYxLjUgMjUuNXQtMjUuNSA2MS41cTAgMzIgMjAuNSA1Ni41dDUxLjUgMjkuNWwxMjIgMTI2bDEgMXEtOSAxNCAtOSAyOHEwIDIzIDE2IDM5dDM4LjUgMTZ6TTM0NS41IDcwOXEyMi41IDAgMzguNSAtMTZ0MTYgLTM4LjV0LTE2IC0zOC41dC0zOC41IC0xNnQtMzguNSAxNnQtMTYgMzguNXQxNiAzOC41dDM4LjUgMTZ6TTg1NC41IDcwOXEyMi41IDAgMzguNSAtMTYgdDE2IC0zOC41dC0xNiAtMzguNXQtMzguNSAtMTZ0LTM4LjUgMTZ0LTE2IDM4LjV0MTYgMzguNXQzOC41IDE2eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDI7IiBkPSJNNTQ2IDE3M2w0NjkgNDcwcTkxIDkxIDk5IDE5MnE3IDk4IC01MiAxNzUuNXQtMTU0IDk0LjVxLTIyIDQgLTQ3IDRxLTM0IDAgLTY2LjUgLTEwdC01Ni41IC0yM3QtNTUuNSAtMzh0LTQ4IC00MS41dC00OC41IC00Ny41cS0zNzYgLTM3NSAtMzkxIC0zOTBxLTMwIC0yNyAtNDUgLTQxLjV0LTM3LjUgLTQxdC0zMiAtNDYuNXQtMTYgLTQ3LjV0LTEuNSAtNTYuNXE5IC02MiA1My41IC05NXQ5OS41IC0zM3E3NCAwIDEyNSA1MWw1NDggNTQ4IHEzNiAzNiAyMCA3NXEtNyAxNiAtMjEuNSAyNnQtMzIuNSAxMHEtMjYgMCAtNTAgLTIzcS0xMyAtMTIgLTM5IC0zOGwtMzQxIC0zMzhxLTE1IC0xNSAtMzUuNSAtMTUuNXQtMzQuNSAxMy41dC0xNCAzNC41dDE0IDM0LjVxMzI3IDMzMyAzNjEgMzY3cTM1IDM1IDY3LjUgNTEuNXQ3OC41IDE2LjVxMTQgMCAyOSAtMXE0NCAtOCA3NC41IC0zNS41dDQzLjUgLTY4LjVxMTQgLTQ3IDIgLTk2LjV0LTQ3IC04NC41cS0xMiAtMTEgLTMyIC0zMiB0LTc5LjUgLTgxdC0xMTQuNSAtMTE1dC0xMjQuNSAtMTIzLjV0LTEyMyAtMTE5LjV0LTk2LjUgLTg5dC01NyAtNDVxLTU2IC0yNyAtMTIwIC0yN3EtNzAgMCAtMTI5IDMydC05MyA4OXEtNDggNzggLTM1IDE3M3Q4MSAxNjNsNTExIDUxMXE3MSA3MiAxMTEgOTZxOTEgNTUgMTk4IDU1cTgwIDAgMTUyIC0zM3E3OCAtMzYgMTI5LjUgLTEwM3Q2Ni41IC0xNTRxMTcgLTkzIC0xMSAtMTgzLjV0LTk0IC0xNTYuNWwtNDgyIC00NzYgcS0xNSAtMTUgLTM2IC0xNnQtMzcgMTR0LTE3LjUgMzR0MTQuNSAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQzOyIgZD0iTTY0OSA5NDlxNDggNjggMTA5LjUgMTA0dDEyMS41IDM4LjV0MTE4LjUgLTIwdDEwMi41IC02NHQ3MSAtMTAwLjV0MjcgLTEyM3EwIC01NyAtMzMuNSAtMTE3LjV0LTk0IC0xMjQuNXQtMTI2LjUgLTEyNy41dC0xNTAgLTE1Mi41dC0xNDYgLTE3NHEtNjIgODUgLTE0NS41IDE3NHQtMTUwIDE1Mi41dC0xMjYuNSAxMjcuNXQtOTMuNSAxMjQuNXQtMzMuNSAxMTcuNXEwIDY0IDI4IDEyM3Q3MyAxMDAuNXQxMDQgNjR0MTE5IDIwIHQxMjAuNSAtMzguNXQxMDQuNSAtMTA0ek04OTYgOTcycS0zMyAwIC02NC41IC0xOXQtNTYuNSAtNDZ0LTQ3LjUgLTUzLjV0LTQzLjUgLTQ1LjV0LTM3LjUgLTE5dC0zNiAxOXQtNDAgNDUuNXQtNDMgNTMuNXQtNTQgNDZ0LTY1LjUgMTlxLTY3IDAgLTEyMi41IC01NS41dC01NS41IC0xMzIuNXEwIC0yMyAxMy41IC01MXQ0NiAtNjV0NTcuNSAtNjN0NzYgLTc1bDIyIC0yMnExNSAtMTQgNDQgLTQ0dDUwLjUgLTUxdDQ2IC00NHQ0MSAtMzV0MjMgLTEyIHQyMy41IDEydDQyLjUgMzZ0NDYgNDR0NTIuNSA1MnQ0NCA0M3E0IDQgMTIgMTNxNDMgNDEgNjMuNSA2MnQ1MiA1NXQ0NiA1NXQyNiA0NnQxMS41IDQ0cTAgNzkgLTUzIDEzMy41dC0xMjAgNTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTQ0OyIgZD0iTTc3Ni41IDEyMTRxOTMuNSAwIDE1OS41IC02NmwxNDEgLTE0MXE2NiAtNjYgNjYgLTE2MHEwIC00MiAtMjggLTk1LjV0LTYyIC04Ny41bC0yOSAtMjlxLTMxIDUzIC03NyA5OWwtMTggMThsOTUgOTVsLTI0NyAyNDhsLTM4OSAtMzg5bDIxMiAtMjEybC0xMDUgLTEwNmwtMTkgMThsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTl0NjYgMTU5bDI4MyAyODNxNjUgNjYgMTU4LjUgNjZ6TTYwMCA3MDZsMTA1IDEwNXExMCAtOCAxOSAtMTdsMTQxIC0xNDEgcTY2IC02NiA2NiAtMTU5dC02NiAtMTU5bC0yODMgLTI4M3EtNjYgLTY2IC0xNTkgLTY2dC0xNTkgNjZsLTE0MSAxNDFxLTY2IDY2IC02NiAxNTkuNXQ2NiAxNTkuNWw1NSA1NXEyOSAtNTUgNzUgLTEwMmwxOCAtMTdsLTk1IC05NWwyNDcgLTI0OGwzODkgMzg5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDU7IiBkPSJNNjAzIDEyMDBxODUgMCAxNjIgLTE1dDEyNyAtMzh0NzkgLTQ4dDI5IC00NnYtOTUzcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djk1M3EwIDIxIDMwIDQ2LjV0ODEgNDh0MTI5IDM3LjV0MTYzIDE1ek0zMDAgMTAwMHYtNzAwaDYwMHY3MDBoLTYwMHpNNjAwIDI1NHEtNDMgMCAtNzMuNSAtMzAuNXQtMzAuNSAtNzMuNXQzMC41IC03My41dDczLjUgLTMwLjV0NzMuNSAzMC41IHQzMC41IDczLjV0LTMwLjUgNzMuNXQtNzMuNSAzMC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDY7IiBkPSJNOTAyIDExODVsMjgzIC0yODJxMTUgLTE1IDE1IC0zNnQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNXQtMzUgMTVsLTM2IDM1bC0yNzkgLTI2N3YtMzAwbC0yMTIgMjEwbC0zMDggLTMwN2wtMjgwIC0yMDNsMjAzIDI4MGwzMDcgMzA4bC0yMTAgMjEyaDMwMGwyNjcgMjc5bC0zNSAzNnEtMTUgMTQgLTE1IDM1dDE0LjUgMzUuNXQzNS41IDE0LjV0MzUgLTE1eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNDg7IiBkPSJNNzAwIDEyNDh2LTc4cTM4IC01IDcyLjUgLTE0LjV0NzUuNSAtMzEuNXQ3MSAtNTMuNXQ1MiAtODR0MjQgLTExOC41aC0xNTlxLTQgMzYgLTEwLjUgNTl0LTIxIDQ1dC00MCAzNS41dC02NC41IDIwLjV2LTMwN2w2NCAtMTNxMzQgLTcgNjQgLTE2LjV0NzAgLTMydDY3LjUgLTUyLjV0NDcuNSAtODB0MjAgLTExMnEwIC0xMzkgLTg5IC0yMjR0LTI0NCAtOTd2LTc3aC0xMDB2NzlxLTE1MCAxNiAtMjM3IDEwM3EtNDAgNDAgLTUyLjUgOTMuNSB0LTE1LjUgMTM5LjVoMTM5cTUgLTc3IDQ4LjUgLTEyNnQxMTcuNSAtNjV2MzM1bC0yNyA4cS00NiAxNCAtNzkgMjYuNXQtNzIgMzZ0LTYzIDUydC00MCA3Mi41dC0xNiA5OHEwIDcwIDI1IDEyNnQ2Ny41IDkydDk0LjUgNTd0MTEwIDI3djc3aDEwMHpNNjAwIDc1NHYyNzRxLTI5IC00IC01MCAtMTF0LTQyIC0yMS41dC0zMS41IC00MS41dC0xMC41IC02NXEwIC0yOSA3IC01MC41dDE2LjUgLTM0dDI4LjUgLTIyLjV0MzEuNSAtMTR0MzcuNSAtMTAgcTkgLTMgMTMgLTR6TTcwMCA1NDd2LTMxMHEyMiAyIDQyLjUgNi41dDQ1IDE1LjV0NDEuNSAyN3QyOSA0MnQxMiA1OS41dC0xMi41IDU5LjV0LTM4IDQ0LjV0LTUzIDMxdC02Ni41IDI0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE0OTsiIGQ9Ik01NjEgMTE5N3E4NCAwIDE2MC41IC00MHQxMjMuNSAtMTA5LjV0NDcgLTE0Ny41aC0xNTNxMCA0MCAtMTkuNSA3MS41dC00OS41IDQ4LjV0LTU5LjUgMjZ0LTU1LjUgOXEtMzcgMCAtNzkgLTE0LjV0LTYyIC0zNS41cS00MSAtNDQgLTQxIC0xMDFxMCAtMjYgMTMuNSAtNjN0MjYuNSAtNjF0MzcgLTY2cTYgLTkgOSAtMTRoMjQxdi0xMDBoLTE5N3E4IC01MCAtMi41IC0xMTV0LTMxLjUgLTk1cS00NSAtNjIgLTk5IC0xMTIgcTM0IDEwIDgzIDE3LjV0NzEgNy41cTMyIDEgMTAyIC0xNnQxMDQgLTE3cTgzIDAgMTM2IDMwbDUwIC0xNDdxLTMxIC0xOSAtNTggLTMwLjV0LTU1IC0xNS41dC00MiAtNC41dC00NiAtMC41cS0yMyAwIC03NiAxN3QtMTExIDMyLjV0LTk2IDExLjVxLTM5IC0zIC04MiAtMTZ0LTY3IC0yNWwtMjMgLTExbC01NSAxNDVxNCAzIDE2IDExdDE1LjUgMTAuNXQxMyA5dDE1LjUgMTJ0MTQuNSAxNHQxNy41IDE4LjVxNDggNTUgNTQgMTI2LjUgdC0zMCAxNDIuNWgtMjIxdjEwMGgxNjZxLTIzIDQ3IC00NCAxMDRxLTcgMjAgLTEyIDQxLjV0LTYgNTUuNXQ2IDY2LjV0MjkuNSA3MC41dDU4LjUgNzFxOTcgODggMjYzIDg4eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTA7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkzNSAxMTg0bDIzMCAtMjQ5cTE0IC0xNCAxMCAtMjQuNXQtMjUgLTEwLjVoLTE1MHYtOTAwaC0yMDB2OTAwaC0xNTBxLTIxIDAgLTI1IDEwLjV0MTAgMjQuNWwyMzAgMjQ5cTE0IDE1IDM1IDE1dDM1IC0xNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUxOyIgZD0iTTEwMDAgNzAwaC0xMDB2MTAwaC0xMDB2LTEwMGgtMTAwdjUwMGgzMDB2LTUwMHpNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTgwMSAxMTAwdi0yMDBoMTAwdjIwMGgtMTAwek0xMDAwIDM1MGwtMjAwIC0yNTBoMjAwdi0xMDBoLTMwMHYxNTBsMjAwIDI1MGgtMjAwdjEwMGgzMDB2LTE1MHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1MjsiIGQ9Ik00MDAgMzAwaDE1MHEyMSAwIDI1IC0xMXQtMTAgLTI1bC0yMzAgLTI1MHEtMTQgLTE1IC0zNSAtMTV0LTM1IDE1bC0yMzAgMjUwcS0xNCAxNCAtMTAgMjV0MjUgMTFoMTUwdjkwMGgyMDB2LTkwMHpNMTAwMCAxMDUwbC0yMDAgLTI1MGgyMDB2LTEwMGgtMzAwdjE1MGwyMDAgMjUwaC0yMDB2MTAwaDMwMHYtMTUwek0xMDAwIDBoLTEwMHYxMDBoLTEwMHYtMTAwaC0xMDB2NTAwaDMwMHYtNTAwek04MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiAiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTUzOyIgZD0iTTQwMCAzMDBoMTUwcTIxIDAgMjUgLTExdC0xMCAtMjVsLTIzMCAtMjUwcS0xNCAtMTUgLTM1IC0xNXQtMzUgMTVsLTIzMCAyNTBxLTE0IDE0IC0xMCAyNXQyNSAxMWgxNTB2OTAwaDIwMHYtOTAwek0xMDAwIDcwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMTEwMCAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgNDAwdi0yMDBoMTAwdjIwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTQ7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTExMDAgNzAwaC0xMDB2MTAwaC0yMDB2NDAwaDMwMHYtNTAwek05MDEgMTEwMHYtMjAwaDEwMHYyMDBoLTEwMHpNMTAwMCAwaC0xMDB2NDAwaC0xMDB2MTAwaDIwMHYtNTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTU7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTkwMCAxMDAwaC0yMDB2MjAwaDIwMHYtMjAwek0xMDAwIDcwMGgtMzAwdjIwMGgzMDB2LTIwMHpNMTEwMCA0MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEyMDAgMTAwaC01MDB2MjAwaDUwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTY7IiBkPSJNNDAwIDMwMGgxNTBxMjEgMCAyNSAtMTF0LTEwIC0yNWwtMjMwIC0yNTBxLTE0IC0xNSAtMzUgLTE1dC0zNSAxNWwtMjMwIDI1MHEtMTQgMTQgLTEwIDI1dDI1IDExaDE1MHY5MDBoMjAwdi05MDB6TTEyMDAgMTAwMGgtNTAwdjIwMGg1MDB2LTIwMHpNMTEwMCA3MDBoLTQwMHYyMDBoNDAwdi0yMDB6TTEwMDAgNDAwaC0zMDB2MjAwaDMwMHYtMjAwek05MDAgMTAwaC0yMDB2MjAwaDIwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTc7IiBkPSJNMzUwIDExMDBoNDAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTQwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNTg7IiBkPSJNMzUwIDExMDBoNDAwcTE2NSAwIDI1Ny41IC05Mi41dDkyLjUgLTI1Ny41di00MDBxMCAtMTY1IC05Mi41IC0yNTcuNXQtMjU3LjUgLTkyLjVoLTQwMHEtMTYzIDAgLTI1Ni41IDkyLjV0LTkzLjUgMjU3LjV2NDAwcTAgMTYzIDk0IDI1Ni41dDI1NiA5My41ek04MDAgOTAwaC01MDBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNTAwcTQxIDAgNzAuNSAyOS41dDI5LjUgNzAuNSB2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41ek00NDAgNzcwbDI1MyAtMTkwcTE3IC0xMiAxNyAtMzB0LTE3IC0zMGwtMjUzIC0xOTBxLTE2IC0xMiAtMjggLTYuNXQtMTIgMjYuNXY0MDBxMCAyMSAxMiAyNi41dDI4IC02LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE1OTsiIGQ9Ik0zNTAgMTEwMGg0MDBxMTYzIDAgMjU2LjUgLTk0dDkzLjUgLTI1NnYtNDAwcTAgLTE2NSAtOTIuNSAtMjU3LjV0LTI1Ny41IC05Mi41aC00MDBxLTE2NSAwIC0yNTcuNSA5Mi41dC05Mi41IDI1Ny41djQwMHEwIDE2MyA5Mi41IDI1Ni41dDI1Ny41IDkzLjV6TTgwMCA5MDBoLTUwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNTAwcTAgLTQxIDI5LjUgLTcwLjV0NzAuNSAtMjkuNWg1MDBxNDEgMCA3MC41IDI5LjV0MjkuNSA3MC41IHY1MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTM1MCA3MDBoNDAwcTIxIDAgMjYuNSAtMTJ0LTYuNSAtMjhsLTE5MCAtMjUzcS0xMiAtMTcgLTMwIC0xN3QtMzAgMTdsLTE5MCAyNTNxLTEyIDE2IC02LjUgMjh0MjYuNSAxMnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYwOyIgZD0iTTM1MCAxMTAwaDQwMHExNjUgMCAyNTcuNSAtOTIuNXQ5Mi41IC0yNTcuNXYtNDAwcTAgLTE2MyAtOTIuNSAtMjU2LjV0LTI1Ny41IC05My41aC00MDBxLTE2MyAwIC0yNTYuNSA5NHQtOTMuNSAyNTZ2NDAwcTAgMTY1IDkyLjUgMjU3LjV0MjU3LjUgOTIuNXpNODAwIDkwMGgtNTAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di01MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjUgdjUwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNNTgwIDY5M2wxOTAgLTI1M3ExMiAtMTYgNi41IC0yOHQtMjYuNSAtMTJoLTQwMHEtMjEgMCAtMjYuNSAxMnQ2LjUgMjhsMTkwIDI1M3ExMiAxNyAzMCAxN3QzMCAtMTd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2MTsiIGQ9Ik01NTAgMTEwMGg0MDBxMTY1IDAgMjU3LjUgLTkyLjV0OTIuNSAtMjU3LjV2LTQwMHEwIC0xNjUgLTkyLjUgLTI1Ny41dC0yNTcuNSAtOTIuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ1MHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2NTAwcTAgNDEgLTI5LjUgNzAuNXQtNzAuNSAyOS41aC00NTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMzggODY3bDMyNCAtMjg0cTE2IC0xNCAxNiAtMzN0LTE2IC0zM2wtMzI0IC0yODRxLTE2IC0xNCAtMjcgLTl0LTExIDI2djE1MGgtMjUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDI1MHYxNTBxMCAyMSAxMSAyNnQyNyAtOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYyOyIgZD0iTTc5MyAxMTgybDkgLTlxOCAtMTAgNSAtMjdxLTMgLTExIC03OSAtMjI1LjV0LTc4IC0yMjEuNWwzMDAgMXEyNCAwIDMyLjUgLTE3LjV0LTUuNSAtMzUuNXEtMSAwIC0xMzMuNSAtMTU1dC0yNjcgLTMxMi41dC0xMzguNSAtMTYyLjVxLTEyIC0xNSAtMjYgLTE1aC05bC05IDhxLTkgMTEgLTQgMzJxMiA5IDQyIDEyMy41dDc5IDIyNC41bDM5IDExMGgtMzAycS0yMyAwIC0zMSAxOXEtMTAgMjEgNiA0MXE3NSA4NiAyMDkuNSAyMzcuNSB0MjI4IDI1N3Q5OC41IDExMS41cTkgMTYgMjUgMTZoOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTYzOyIgZD0iTTM1MCAxMTAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00NTBxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMHEwIC00MSAyOS41IC03MC41dDcwLjUgLTI5LjVoNDUwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMTY1IDAgLTI1Ny41IDkyLjV0LTkyLjUgMjU3LjV2NDAwIHEwIDE2NSA5Mi41IDI1Ny41dDI1Ny41IDkyLjV6TTkzOCA4NjdsMzI0IC0yODRxMTYgLTE0IDE2IC0zM3QtMTYgLTMzbC0zMjQgLTI4NHEtMTYgLTE0IC0yNyAtOXQtMTEgMjZ2MTUwaC0yNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djIwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMjUwdjE1MHEwIDIxIDExIDI2dDI3IC05eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjQ7IiBkPSJNNzUwIDEyMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTEwLjUgLTI1dC0yNC41IDEwbC0xMDkgMTA5bC0zMTIgLTMxMnEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtMTQxIDE0MXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWwzMTIgMzEybC0xMDkgMTA5cS0xNCAxNCAtMTAgMjQuNXQyNSAxMC41ek00NTYgOTAwaC0xNTZxLTQxIDAgLTcwLjUgLTI5LjV0LTI5LjUgLTcwLjV2LTUwMCBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDUwMHE0MSAwIDcwLjUgMjkuNXQyOS41IDcwLjV2MTQ4bDIwMCAyMDB2LTI5OHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNDAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY0MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41aDMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY1OyIgZD0iTTYwMCAxMTg2cTExOSAwIDIyNy41IC00Ni41dDE4NyAtMTI1dDEyNSAtMTg3dDQ2LjUgLTIyNy41dC00Ni41IC0yMjcuNXQtMTI1IC0xODd0LTE4NyAtMTI1dC0yMjcuNSAtNDYuNXQtMjI3LjUgNDYuNXQtMTg3IDEyNXQtMTI1IDE4N3QtNDYuNSAyMjcuNXQ0Ni41IDIyNy41dDEyNSAxODd0MTg3IDEyNXQyMjcuNSA0Ni41ek02MDAgMTAyMnEtMTE1IDAgLTIxMiAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTJ0NTYuNSAtMjEyIHQxNTMuNSAtMTUzLjV0MjEyIC01Ni41dDIxMiA1Ni41dDE1My41IDE1My41dDU2LjUgMjEydC01Ni41IDIxMnQtMTUzLjUgMTUzLjV0LTIxMiA1Ni41ek02MDAgNzk0cTgwIDAgMTM3IC01N3Q1NyAtMTM3dC01NyAtMTM3dC0xMzcgLTU3dC0xMzcgNTd0LTU3IDEzN3Q1NyAxMzd0MTM3IDU3eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjY7IiBkPSJNNDUwIDEyMDBoMjAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMjQ1cTIwIDAgMjUgLTExdC05IC0yNmwtMzgzIC00MjZxLTE0IC0xNSAtMzMuNSAtMTV0LTMyLjUgMTVsLTM3OSA0MjZxLTEzIDE1IC04LjUgMjZ0MjUuNSAxMWgyNTB2MzUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTI1MGgtMTEwMHYyNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiBNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE2NzsiIGQ9Ik01ODMgMTE4MmwzNzggLTQzNXExNCAtMTUgOSAtMzF0LTI2IC0xNmgtMjQ0di0yNTBxMCAtMjAgLTE3IC0zNXQtMzkgLTE1aC0yMDBxLTIwIDAgLTMyIDE0LjV0LTEyIDM1LjV2MjUwaC0yNTBxLTIwIDAgLTI1LjUgMTYuNXQ4LjUgMzEuNWwzODMgNDMxcTE0IDE2IDMzLjUgMTd0MzMuNSAtMTR6TTUwIDMwMGgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXogTTkwMCAyMDB2LTUwaDEwMHY1MGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNjg7IiBkPSJNMzk2IDcyM2wzNjkgMzY5cTcgNyAxNy41IDd0MTcuNSAtN2wxMzkgLTEzOXE3IC04IDcgLTE4LjV0LTcgLTE3LjVsLTUyNSAtNTI1cS03IC04IC0xNy41IC04dC0xNy41IDhsLTI5MiAyOTFxLTcgOCAtNyAxOHQ3IDE4bDEzOSAxMzlxOCA3IDE4LjUgN3QxNy41IC03ek01MCAzMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaC0xMTAwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTkwMCAyMDB2LTUwaDEwMHY1MCBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTY5OyIgZD0iTTEzNSAxMDIzbDE0MiAxNDJxMTQgMTQgMzUgMTR0MzUgLTE0bDc3IC03N2wtMjEyIC0yMTJsLTc3IDc2cS0xNCAxNSAtMTQgMzZ0MTQgMzV6TTY1NSA4NTVsMjEwIDIxMHExNCAxNCAyNC41IDEwdDEwLjUgLTI1bC0yIC01OTlxLTEgLTIwIC0xNS41IC0zNXQtMzUuNSAtMTVsLTU5NyAtMXEtMjEgMCAtMjUgMTAuNXQxMCAyNC41bDIwOCAyMDhsLTE1NCAxNTVsMjEyIDIxMnpNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjUgdi0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MDsiIGQ9Ik0zNTAgMTIwMGw1OTkgLTJxMjAgLTEgMzUgLTE1LjV0MTUgLTM1LjVsMSAtNTk3cTAgLTIxIC0xMC41IC0yNXQtMjQuNSAxMGwtMjA4IDIwOGwtMTU1IC0xNTRsLTIxMiAyMTJsMTU1IDE1NGwtMjEwIDIxMHEtMTQgMTQgLTEwIDI0LjV0MjUgMTAuNXpNNTI0IDUxMmwtNzYgLTc3cS0xNSAtMTQgLTM2IC0xNHQtMzUgMTRsLTE0MiAxNDJxLTE0IDE0IC0xNCAzNXQxNCAzNWw3NyA3N3pNNTAgMzAwaDEwMDBxMjEgMCAzNS41IC0xNC41IHQxNC41IC0zNS41di0yNTBoLTExMDB2MjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNOTAwIDIwMHYtNTBoMTAwdjUwaC0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3MTsiIGQ9Ik0xMjAwIDEwM2wtNDgzIDI3NmwtMzE0IC0zOTl2NDIzaC0zOTlsMTE5NiA3OTZ2LTEwOTZ6TTQ4MyA0MjR2LTIzMGw2ODMgOTUzeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzI7IiBkPSJNMTEwMCAxMDAwdi04NTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTE1MHY0MDBoLTcwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzM7IiBkPSJNMTEwMCAxMDAwbC0yIC0xNDlsLTI5OSAtMjk5bC05NSA5NXEtOSA5IC0yMS41IDl0LTIxLjUgLTlsLTE0OSAtMTQ3aC0zMTJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTEzMiA2MzhsMTA2IC0xMDZxNyAtNyA3IC0xNy41dC03IC0xNy41bC00MjAgLTQyMXEtOCAtNyAtMTggLTcgdC0xOCA3bC0yMDIgMjAzcS04IDcgLTggMTcuNXQ4IDE3LjVsMTA2IDEwNnE3IDggMTcuNSA4dDE3LjUgLThsNzkgLTc5bDI5NyAyOTdxNyA3IDE3LjUgN3QxNy41IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzQ7IiBkPSJNMTEwMCAxMDAwdi0yNjlsLTEwMyAtMTAzbC0xMzQgMTM0cS0xNSAxNSAtMzMuNSAxNi41dC0zNC41IC0xMi41bC0yNjYgLTI2NmgtMzI5di00MDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwMHEwIDIwIDE0LjUgMzV0MzUuNSAxNWgyNTB2LTMwMGg1MDB2MzAwaDEwMHpNNzAwIDEwMDBoLTEwMHYyMDBoMTAwdi0yMDB6TTEyMDIgNTcybDcwIC03MHExNSAtMTUgMTUgLTM1LjV0LTE1IC0zNS41bC0xMzEgLTEzMSBsMTMxIC0xMzFxMTUgLTE1IDE1IC0zNS41dC0xNSAtMzUuNWwtNzAgLTcwcS0xNSAtMTUgLTM1LjUgLTE1dC0zNS41IDE1bC0xMzEgMTMxbC0xMzEgLTEzMXEtMTUgLTE1IC0zNS41IC0xNXQtMzUuNSAxNWwtNzAgNzBxLTE1IDE1IC0xNSAzNS41dDE1IDM1LjVsMTMxIDEzMWwtMTMxIDEzMXEtMTUgMTUgLTE1IDM1LjV0MTUgMzUuNWw3MCA3MHExNSAxNSAzNS41IDE1dDM1LjUgLTE1bDEzMSAtMTMxbDEzMSAxMzFxMTUgMTUgMzUuNSAxNSB0MzUuNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NTsiIGQ9Ik0xMTAwIDEwMDB2LTMwMGgtMzUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di0xNTBoLTUwMHYtNDAwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMDBxMCAyMCAxNC41IDM1dDM1LjUgMTVoMjUwdi0zMDBoNTAwdjMwMGgxMDB6TTcwMCAxMDAwaC0xMDB2MjAwaDEwMHYtMjAwek04NTAgNjAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMjUwaDE1MHEyMSAwIDI1IC0xMC41dC0xMCAtMjQuNSBsLTIzMCAtMjMwcS0xNCAtMTQgLTM1IC0xNHQtMzUgMTRsLTIzMCAyMzBxLTE0IDE0IC0xMCAyNC41dDI1IDEwLjVoMTUwdjI1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NjsiIGQ9Ik0xMTAwIDEwMDB2LTQwMGwtMTY1IDE2NXEtMTQgMTUgLTM1IDE1dC0zNSAtMTVsLTI2MyAtMjY1aC00MDJ2LTQwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDAwcTAgMjAgMTQuNSAzNXQzNS41IDE1aDI1MHYtMzAwaDUwMHYzMDBoMTAwek03MDAgMTAwMGgtMTAwdjIwMGgxMDB2LTIwMHpNOTM1IDU2NWwyMzAgLTIyOXExNCAtMTUgMTAgLTI1LjV0LTI1IC0xMC41aC0xNTB2LTI1MHEwIC0yMCAtMTQuNSAtMzUgdC0zNS41IC0xNWgtMTAwcS0yMSAwIC0zNS41IDE1dC0xNC41IDM1djI1MGgtMTUwcS0yMSAwIC0yNSAxMC41dDEwIDI1LjVsMjMwIDIyOXExNCAxNSAzNSAxNXQzNSAtMTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE3NzsiIGQ9Ik01MCAxMTAwaDExMDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTE1MGgtMTIwMHYxNTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjAwIDgwMHYtNTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1NTBoMTIwMHpNMTAwIDUwMHYtMjAwaDQwMHYyMDBoLTQwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTc4OyIgZD0iTTkzNSAxMTY1bDI0OCAtMjMwcTE0IC0xNCAxNCAtMzV0LTE0IC0zNWwtMjQ4IC0yMzBxLTE0IC0xNCAtMjQuNSAtMTB0LTEwLjUgMjV2MTUwaC00MDB2MjAwaDQwMHYxNTBxMCAyMSAxMC41IDI1dDI0LjUgLTEwek0yMDAgODAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHYtMjAwek00MDAgODAwaC0xMDB2MjAwaDEwMHYtMjAwek0xOCA0MzVsMjQ3IDIzMCBxMTQgMTQgMjQuNSAxMHQxMC41IC0yNXYtMTUwaDQwMHYtMjAwaC00MDB2LTE1MHEwIC0yMSAtMTAuNSAtMjV0LTI0LjUgMTBsLTI0NyAyMzBxLTE1IDE0IC0xNSAzNXQxNSAzNXpNOTAwIDMwMGgtMTAwdjIwMGgxMDB2LTIwMHpNMTAwMCA1MDBoNTFxMjAgMCAzNC41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzQuNSAtMTQuNWgtNTF2MjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxNzk7IiBkPSJNODYyIDEwNzNsMjc2IDExNnEyNSAxOCA0My41IDh0MTguNSAtNDF2LTExMDZxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2Mzk3cS00IDEgLTExIDV0LTI0IDE3LjV0LTMwIDI5dC0yNCA0MnQtMTEgNTYuNXYzNTlxMCAzMSAxOC41IDY1dDQzLjUgNTJ6TTU1MCAxMjAwcTIyIDAgMzQuNSAtMTIuNXQxNC41IC0yNC41bDEgLTEzdi00NTBxMCAtMjggLTEwLjUgLTU5LjUgdC0yNSAtNTZ0LTI5IC00NXQtMjUuNSAtMzEuNWwtMTAgLTExdi00NDdxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTIwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDQ3cS00IDQgLTExIDExLjV0LTI0IDMwLjV0LTMwIDQ2dC0yNCA1NXQtMTEgNjB2NDUwcTAgMiAwLjUgNS41dDQgMTJ0OC41IDE1dDE0LjUgMTJ0MjIuNSA1LjVxMjAgMCAzMi41IC0xMi41dDE0LjUgLTI0LjVsMyAtMTN2LTM1MGgxMDB2MzUwdjUuNXQyLjUgMTIgdDcgMTV0MTUgMTJ0MjUuNSA1LjVxMjMgMCAzNS41IC0xMi41dDEzLjUgLTI0LjVsMSAtMTN2LTM1MGgxMDB2MzUwcTAgMiAwLjUgNS41dDMgMTJ0NyAxNXQxNSAxMnQyNC41IDUuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgwOyIgZD0iTTEyMDAgMTEwMHYtNTZxLTQgMCAtMTEgLTAuNXQtMjQgLTN0LTMwIC03LjV0LTI0IC0xNXQtMTEgLTI0di04ODhxMCAtMjIgMjUgLTM0LjV0NTAgLTEzLjVsMjUgLTJ2LTU2aC00MDB2NTZxNzUgMCA4Ny41IDYuNXQxMi41IDQzLjV2Mzk0aC01MDB2LTM5NHEwIC0zNyAxMi41IC00My41dDg3LjUgLTYuNXYtNTZoLTQwMHY1NnE0IDAgMTEgMC41dDI0IDN0MzAgNy41dDI0IDE1dDExIDI0djg4OHEwIDIyIC0yNSAzNC41dC01MCAxMy41IGwtMjUgMnY1Nmg0MDB2LTU2cS03NSAwIC04Ny41IC02LjV0LTEyLjUgLTQzLjV2LTM5NGg1MDB2Mzk0cTAgMzcgLTEyLjUgNDMuNXQtODcuNSA2LjV2NTZoNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODE7IiBkPSJNNjc1IDEwMDBoMzc1cTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoLTEwNWwtMjk1IC05OHY5OGwtMjAwIDIwMGgtNDAwbDEwMCAxMDBoMzc1ek0xMDAgOTAwaDMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNTAwcTAgLTQxIC0yOS41IC03MC41dC03MC41IC0yOS41aC0zMDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djUwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTEwMCA4MDB2LTIwMGgzMDB2MjAwIGgtMzAwek0xMTAwIDUzNWwtNDAwIC0xMzN2MTYzbDQwMCAxMzN2LTE2M3pNMTAwIDUwMHYtMjAwaDMwMHYyMDBoLTMwMHpNMTEwMCAzOTh2LTI0OHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzc1bC0xMDAgLTEwMGgtMzc1bC0xMDAgMTAwaDQwMGwyMDAgMjAwaDEwNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTgyOyIgZD0iTTE3IDEwMDdsMTYyIDE2MnExNyAxNyA0MCAxNHQzNyAtMjJsMTM5IC0xOTRxMTQgLTIwIDExIC00NC41dC0yMCAtNDEuNWwtMTE5IC0xMThxMTAyIC0xNDIgMjI4IC0yNjh0MjY3IC0yMjdsMTE5IDExOHExNyAxNyA0Mi41IDE5dDQ0LjUgLTEybDE5MiAtMTM2cTE5IC0xNCAyMi41IC0zNy41dC0xMy41IC00MC41bC0xNjMgLTE2MnEtMyAtMSAtOS41IC0xdC0yOS41IDJ0LTQ3LjUgNnQtNjIuNSAxNC41dC03Ny41IDI2LjV0LTkwIDQyLjUgdC0xMDEuNSA2MHQtMTExIDgzdC0xMTkgMTA4LjVxLTc0IDc0IC0xMzMuNSAxNTAuNXQtOTQuNSAxMzguNXQtNjAgMTE5LjV0LTM0LjUgMTAwdC0xNSA3NC41dC00LjUgNDh6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4MzsiIGQ9Ik02MDAgMTEwMHE5MiAwIDE3NSAtMTAuNXQxNDEuNSAtMjd0MTA4LjUgLTM2LjV0ODEuNSAtNDB0NTMuNSAtMzd0MzEgLTI3bDkgLTEwdi0yMDBxMCAtMjEgLTE0LjUgLTMzdC0zNC41IC05bC0yMDIgMzRxLTIwIDMgLTM0LjUgMjB0LTE0LjUgMzh2MTQ2cS0xNDEgMjQgLTMwMCAyNHQtMzAwIC0yNHYtMTQ2cTAgLTIxIC0xNC41IC0zOHQtMzQuNSAtMjBsLTIwMiAtMzRxLTIwIC0zIC0zNC41IDl0LTE0LjUgMzN2MjAwcTMgNCA5LjUgMTAuNSB0MzEgMjZ0NTQgMzcuNXQ4MC41IDM5LjV0MTA5IDM3LjV0MTQxIDI2LjV0MTc1IDEwLjV6TTYwMCA3OTVxNTYgMCA5NyAtOS41dDYwIC0yMy41dDMwIC0yOHQxMiAtMjRsMSAtMTB2LTUwbDM2NSAtMzAzcTE0IC0xNSAyNC41IC00MHQxMC41IC00NXYtMjEycTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYyMTJxMCAyMCAxMC41IDQ1dDI0LjUgNDBsMzY1IDMwM3Y1MCBxMCA0IDEgMTAuNXQxMiAyM3QzMCAyOXQ2MCAyMi41dDk3IDEweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODQ7IiBkPSJNMTEwMCA3MDBsLTIwMCAtMjAwaC02MDBsLTIwMCAyMDB2NTAwaDIwMHYtMjAwaDIwMHYyMDBoMjAwdi0yMDBoMjAwdjIwMGgyMDB2LTUwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODU7IiBkPSJNNzAwIDExMDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtMTAwMGgzMDB2MTAwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMTEwMCA4MDBoLTEwMHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNXYtNzAwaDMwMHY3MDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjV6TTQwMCAwaC0zMDB2NDAwcTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNWgxMDBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTQwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4NjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDcwMHYtMzAwbC0xMDAgLTEwMGgtMjAwdjUwMGgyMDB6IE03MDAgNzAwdi0zMDBoMTAwdjMwMGgtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxODc7IiBkPSJNMjAwIDExMDBoNzAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnYtNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OGgtNzAwcS0xMjQgMCAtMjEyIDg4dC04OCAyMTJ2NTAwcTAgMTI0IDg4IDIxMnQyMTIgODh6TTEwMCA5MDB2LTcwMGg5MDB2NzAwaC05MDB6TTUwMCAzMDBoLTEwMHYyMDBoLTEwMHYtMjAwaC0xMDB2NTAwaDEwMHYtMjAwaDEwMHYyMDBoMTAwdi01MDB6TTkwMCA3MDB2LTMwMGwtMTAwIC0xMDBoLTIwMHY1MDBoMjAweiBNNzAwIDcwMHYtMzAwaDEwMHYzMDBoLTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTg4OyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek01MDAgNzAwaC0yMDB2LTMwMGgyMDB2LTEwMGgtMzAwdjUwMGgzMDB2LTEwMHpNOTAwIDcwMGgtMjAwdi0zMDBoMjAwdi0xMDBoLTMwMHY1MDBoMzAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE4OTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDQwMGwtMzAwIDE1MGwzMDAgMTUwdi0zMDB6TTkwMCA1NTBsLTMwMCAtMTUwdjMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTkwOyIgZD0iTTIwMCAxMTAwaDcwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJ2LTUwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhoLTcwMHEtMTI0IDAgLTIxMiA4OHQtODggMjEydjUwMHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek0xMDAgOTAwdi03MDBoOTAwdjcwMGgtOTAwek05MDAgMzAwaC03MDB2NTAwaDcwMHYtNTAwek04MDAgNzAwaC0xMzBxLTM4IDAgLTY2LjUgLTQzdC0yOC41IC0xMDh0MjcgLTEwN3Q2OCAtNDJoMTMwdjMwMHpNMzAwIDcwMHYtMzAwIGgxMzBxNDEgMCA2OCA0MnQyNyAxMDd0LTI4LjUgMTA4dC02Ni41IDQzaC0xMzB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MTsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDcwMGgtMjAwdi0xMDBoMjAwdi0zMDBoLTMwMHYxMDBoMjAwdjEwMGgtMjAwdjMwMGgzMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MjsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNMzAwIDcwMGgyMDB2LTQwMGgtMzAwdjUwMGgxMDB2LTEwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNMzAwIDYwMHYtMjAwaDEwMHYyMDBoLTEwMHogTTcwMCAzMDBoLTEwMHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5MzsiIGQ9Ik0yMDAgMTEwMGg3MDBxMTI0IDAgMjEyIC04OHQ4OCAtMjEydi01MDBxMCAtMTI0IC04OCAtMjEydC0yMTIgLTg4aC03MDBxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnY1MDBxMCAxMjQgODggMjEydDIxMiA4OHpNMTAwIDkwMHYtNzAwaDkwMHY3MDBoLTkwMHpNNTAwIDUwMGwtMTk5IC0yMDBoLTEwMHY1MGwxOTkgMjAwdjE1MGgtMjAwdjEwMGgzMDB2LTMwMHpNOTAwIDMwMGgtMTAwdjQwMGgtMTAwdjEwMGgyMDB2LTUwMHpNNzAxIDMwMGgtMTAwIHYxMDBoMTAwdi0xMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTE5NDsiIGQ9Ik02MDAgMTE5MXExMjAgMCAyMjkuNSAtNDd0MTg4LjUgLTEyNnQxMjYgLTE4OC41dDQ3IC0yMjkuNXQtNDcgLTIyOS41dC0xMjYgLTE4OC41dC0xODguNSAtMTI2dC0yMjkuNSAtNDd0LTIyOS41IDQ3dC0xODguNSAxMjZ0LTEyNiAxODguNXQtNDcgMjI5LjV0NDcgMjI5LjV0MTI2IDE4OC41dDE4OC41IDEyNnQyMjkuNSA0N3pNNjAwIDEwMjFxLTExNCAwIC0yMTEgLTU2LjV0LTE1My41IC0xNTMuNXQtNTYuNSAtMjExdDU2LjUgLTIxMSB0MTUzLjUgLTE1My41dDIxMSAtNTYuNXQyMTEgNTYuNXQxNTMuNSAxNTMuNXQ1Ni41IDIxMXQtNTYuNSAyMTF0LTE1My41IDE1My41dC0yMTEgNTYuNXpNODAwIDcwMGgtMzAwdi0yMDBoMzAwdi0xMDBoLTMwMGwtMTAwIDEwMHYyMDBsMTAwIDEwMGgzMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk1OyIgZD0iTTYwMCAxMTkxcTEyMCAwIDIyOS41IC00N3QxODguNSAtMTI2dDEyNiAtMTg4LjV0NDcgLTIyOS41dC00NyAtMjI5LjV0LTEyNiAtMTg4LjV0LTE4OC41IC0xMjZ0LTIyOS41IC00N3QtMjI5LjUgNDd0LTE4OC41IDEyNnQtMTI2IDE4OC41dC00NyAyMjkuNXQ0NyAyMjkuNXQxMjYgMTg4LjV0MTg4LjUgMTI2dDIyOS41IDQ3ek02MDAgMTAyMXEtMTE0IDAgLTIxMSAtNTYuNXQtMTUzLjUgLTE1My41dC01Ni41IC0yMTF0NTYuNSAtMjExIHQxNTMuNSAtMTUzLjV0MjExIC01Ni41dDIxMSA1Ni41dDE1My41IDE1My41dDU2LjUgMjExdC01Ni41IDIxMXQtMTUzLjUgMTUzLjV0LTIxMSA1Ni41ek04MDAgNzAwdi0xMDBsLTUwIC01MGwxMDAgLTEwMHYtNTBoLTEwMGwtMTAwIDEwMGgtMTUwdi0xMDBoLTEwMHY0MDBoMzAwek01MDAgNzAwdi0xMDBoMjAwdjEwMGgtMjAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTc7IiBkPSJNNTAzIDEwODlxMTEwIDAgMjAwLjUgLTU5LjV0MTM0LjUgLTE1Ni41cTQ0IDE0IDkwIDE0cTEyMCAwIDIwNSAtODYuNXQ4NSAtMjA3dC04NSAtMjA3dC0yMDUgLTg2LjVoLTEyOHYyNTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTMwMHEtMjEgMCAtMzUuNSAtMTQuNXQtMTQuNSAtMzUuNXYtMjUwaC0yMjJxLTgwIDAgLTEzNiA1Ny41dC01NiAxMzYuNXEwIDY5IDQzIDEyMi41dDEwOCA2Ny41cS0yIDE5IC0yIDM3cTAgMTAwIDQ5IDE4NSB0MTM0IDEzNHQxODUgNDl6TTUyNSA1MDBoMTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMjc1aDEzN3EyMSAwIDI2IC0xMS41dC04IC0yNy41bC0yMjMgLTI0NHEtMTMgLTE2IC0zMiAtMTZ0LTMyIDE2bC0yMjMgMjQ0cS0xMyAxNiAtOCAyNy41dDI2IDExLjVoMTM3djI3NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUxOTg7IiBkPSJNNTAyIDEwODlxMTEwIDAgMjAxIC01OS41dDEzNSAtMTU2LjVxNDMgMTUgODkgMTVxMTIxIDAgMjA2IC04Ni41dDg2IC0yMDYuNXEwIC05OSAtNjAgLTE4MXQtMTUwIC0xMTBsLTM3OCAzNjBxLTEzIDE2IC0zMS41IDE2dC0zMS41IC0xNmwtMzgxIC0zNjVoLTlxLTc5IDAgLTEzNS41IDU3LjV0LTU2LjUgMTM2LjVxMCA2OSA0MyAxMjIuNXQxMDggNjcuNXEtMiAxOSAtMiAzOHEwIDEwMCA0OSAxODQuNXQxMzMuNSAxMzR0MTg0LjUgNDkuNXogTTYzMiA0NjdsMjIzIC0yMjhxMTMgLTE2IDggLTI3LjV0LTI2IC0xMS41aC0xMzd2LTI3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djI3NWgtMTM3cS0yMSAwIC0yNiAxMS41dDggMjcuNXExOTkgMjA0IDIyMyAyMjhxMTkgMTkgMzEuNSAxOXQzMi41IC0xOXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMTk5OyIgZD0iTTcwMCAxMDB2MTAwaDQwMGwtMjcwIDMwMGgxNzBsLTI3MCAzMDBoMTcwbC0zMDAgMzMzbC0zMDAgLTMzM2gxNzBsLTI3MCAtMzAwaDE3MGwtMjcwIC0zMDBoNDAwdi0xMDBoLTUwcS0yMSAwIC0zNS41IC0xNC41dC0xNC41IC0zNS41di01MGg0MDB2NTBxMCAyMSAtMTQuNSAzNS41dC0zNS41IDE0LjVoLTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDA7IiBkPSJNNjAwIDExNzlxOTQgMCAxNjcuNSAtNTYuNXQ5OS41IC0xNDUuNXE4OSAtNiAxNTAuNSAtNzEuNXQ2MS41IC0xNTUuNXEwIC02MSAtMjkuNSAtMTEyLjV0LTc5LjUgLTgyLjVxOSAtMjkgOSAtNTVxMCAtNzQgLTUyLjUgLTEyNi41dC0xMjYuNSAtNTIuNXEtNTUgMCAtMTAwIDMwdi0yNTFxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwaC0zMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41djI1MXEtNDUgLTMwIC0xMDAgLTMwIHEtNzQgMCAtMTI2LjUgNTIuNXQtNTIuNSAxMjYuNXEwIDE4IDQgMzhxLTQ3IDIxIC03NS41IDY1dC0yOC41IDk3cTAgNzQgNTIuNSAxMjYuNXQxMjYuNSA1Mi41cTUgMCAyMyAtMnEwIDIgLTEgMTB0LTEgMTNxMCAxMTYgODEuNSAxOTcuNXQxOTcuNSA4MS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDE7IiBkPSJNMTAxMCAxMDEwcTExMSAtMTExIDE1MC41IC0yNjAuNXQwIC0yOTl0LTE1MC41IC0yNjAuNXEtODMgLTgzIC0xOTEuNSAtMTI2LjV0LTIxOC41IC00My41dC0yMTguNSA0My41dC0xOTEuNSAxMjYuNXEtMTExIDExMSAtMTUwLjUgMjYwLjV0MCAyOTl0MTUwLjUgMjYwLjVxODMgODMgMTkxLjUgMTI2LjV0MjE4LjUgNDMuNXQyMTguNSAtNDMuNXQxOTEuNSAtMTI2LjV6TTQ3NiAxMDY1cS00IDAgLTggLTFxLTEyMSAtMzQgLTIwOS41IC0xMjIuNSB0LTEyMi41IC0yMDkuNXEtNCAtMTIgMi41IC0yM3QxOC41IC0xNGwzNiAtOXEzIC0xIDcgLTFxMjMgMCAyOSAyMnEyNyA5NiA5OCAxNjZxNzAgNzEgMTY2IDk4cTExIDMgMTcuNSAxMy41dDMuNSAyMi41bC05IDM1cS0zIDEzIC0xNCAxOXEtNyA0IC0xNSA0ek01MTIgOTIwcS00IDAgLTkgLTJxLTgwIC0yNCAtMTM4LjUgLTgyLjV0LTgyLjUgLTEzOC41cS00IC0xMyAyIC0yNHQxOSAtMTRsMzQgLTlxNCAtMSA4IC0xcTIyIDAgMjggMjEgcTE4IDU4IDU4LjUgOTguNXQ5Ny41IDU4LjVxMTIgMyAxOCAxMy41dDMgMjEuNWwtOSAzNXEtMyAxMiAtMTQgMTlxLTcgNCAtMTUgNHpNNzE5LjUgNzE5LjVxLTQ5LjUgNDkuNSAtMTE5LjUgNDkuNXQtMTE5LjUgLTQ5LjV0LTQ5LjUgLTExOS41dDQ5LjUgLTExOS41dDExOS41IC00OS41dDExOS41IDQ5LjV0NDkuNSAxMTkuNXQtNDkuNSAxMTkuNXpNODU1IDU1MXEtMjIgMCAtMjggLTIxcS0xOCAtNTggLTU4LjUgLTk4LjV0LTk4LjUgLTU3LjUgcS0xMSAtNCAtMTcgLTE0LjV0LTMgLTIxLjVsOSAtMzVxMyAtMTIgMTQgLTE5cTcgLTQgMTUgLTRxNCAwIDkgMnE4MCAyNCAxMzguNSA4Mi41dDgyLjUgMTM4LjVxNCAxMyAtMi41IDI0dC0xOC41IDE0bC0zNCA5cS00IDEgLTggMXpNMTAwMCA1MTVxLTIzIDAgLTI5IC0yMnEtMjcgLTk2IC05OCAtMTY2cS03MCAtNzEgLTE2NiAtOThxLTExIC0zIC0xNy41IC0xMy41dC0zLjUgLTIyLjVsOSAtMzVxMyAtMTMgMTQgLTE5cTcgLTQgMTUgLTQgcTQgMCA4IDFxMTIxIDM0IDIwOS41IDEyMi41dDEyMi41IDIwOS41cTQgMTIgLTIuNSAyM3QtMTguNSAxNGwtMzYgOXEtMyAxIC03IDF6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMjsiIGQ9Ik03MDAgODAwaDMwMHYtMzgwaC0xODB2MjAwaC0zNDB2LTIwMGgtMzgwdjc1NXEwIDEwIDcuNSAxNy41dDE3LjUgNy41aDU3NXYtNDAwek0xMDAwIDkwMGgtMjAwdjIwMHpNNzAwIDMwMGgxNjJsLTIxMiAtMjEybC0yMTIgMjEyaDE2MnYyMDBoMTAwdi0yMDB6TTUyMCAwaC0zOTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYzOTV6TTEwMDAgMjIwdi0xOTVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xOTV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwMzsiIGQ9Ik03MDAgODAwaDMwMHYtNTIwbC0zNTAgMzUwbC01NTAgLTU1MHYxMDk1cTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNTc1di00MDB6TTEwMDAgOTAwaC0yMDB2MjAwek04NjIgMjAwaC0xNjJ2LTIwMGgtMTAwdjIwMGgtMTYybDIxMiAyMTJ6TTQ4MCAwaC0zNTVxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1NWgzODB2LTgwek0xMDAwIDgwdi01NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTE1NXY4MGgxODB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIwNDsiIGQ9Ik0xMTYyIDgwMGgtMTYydi0yMDBoMTAwbDEwMCAtMTAwaC0zMDB2MzAwaC0xNjJsMjEyIDIxMnpNMjAwIDgwMGgyMDBxMjcgMCA0MCAtMnQyOS41IC0xMC41dDIzLjUgLTMwdDcgLTU3LjVoMzAwdi0xMDBoLTYwMGwtMjAwIC0zNTB2NDUwaDEwMHEwIDM2IDcgNTcuNXQyMy41IDMwdDI5LjUgMTAuNXQ0MCAyek04MDAgNDAwaDI0MGwtMjQwIC00MDBoLTgwMGwzMDAgNTAwaDUwMHYtMTAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDU7IiBkPSJNNjUwIDExMDBoMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0zMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djEwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMDAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTgwMCBxMCAtNDEgLTI5LjUgLTcwLjV0LTcwLjUgLTI5LjVoLTYwMHEtMSAwIC0yMCA0bDI0NiAyNDZsLTMyNiAzMjZ2MzI0cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXYtMTUwcTAgLTYyIDQ0IC0xMDZ0MTA2IC00NGgzMDBxNjIgMCAxMDYgNDR0NDQgMTA2ek00MTIgMjUwbC0yMTIgLTIxMnYxNjJoLTIwMHYxMDBoMjAwdjE2MnoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjA2OyIgZD0iTTQ1MCAxMTAwaDEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMzAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDUwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNODAwIDg1MHYxNTBxNDEgMCA3MC41IC0yOS41dDI5LjUgLTcwLjV2LTUwMCBoLTIwMHYtMzAwaDIwMHEwIC0zNiAtNyAtNTcuNXQtMjMuNSAtMzB0LTI5LjUgLTEwLjV0LTQwIC0yaC02MDBxLTQxIDAgLTcwLjUgMjkuNXQtMjkuNSA3MC41djgwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV2LTE1MHEwIC02MiA0NCAtMTA2dDEwNiAtNDRoMzAwcTYyIDAgMTA2IDQ0dDQ0IDEwNnpNMTIxMiAyNTBsLTIxMiAtMjEydjE2MmgtMjAwdjEwMGgyMDB2MTYyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMDk7IiBkPSJNNjU4IDExOTdsNjM3IC0xMTA0cTIzIC0zOCA3IC02NS41dC02MCAtMjcuNWgtMTI3NnEtNDQgMCAtNjAgMjcuNXQ3IDY1LjVsNjM3IDExMDRxMjIgMzkgNTQgMzl0NTQgLTM5ek03MDQgODAwaC0yMDhxLTIwIDAgLTMyIC0xNC41dC04IC0zNC41bDU4IC0zMDJxNCAtMjAgMjEuNSAtMzQuNXQzNy41IC0xNC41aDU0cTIwIDAgMzcuNSAxNC41dDIxLjUgMzQuNWw1OCAzMDJxNCAyMCAtOCAzNC41dC0zMiAxNC41ek01MDAgMzAwdi0xMDBoMjAwIHYxMDBoLTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjEwOyIgZD0iTTQyNSAxMTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek00MjUgODAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41IHQxNy41IDcuNXpNODI1IDgwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNMjUgNTAwaDI1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTI1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNODI1IDUwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNSB2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXYxNTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDI1IDIwMGgyNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di0xNTBxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0yNTBxLTEwIDAgLTE3LjUgNy41IHQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTgyNSAyMDBoMjUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxMTsiIGQ9Ik03MDAgMTIwMGgxMDB2LTIwMGgtMTAwdi0xMDBoMzUwcTYyIDAgODYuNSAtMzkuNXQtMy41IC05NC41bC02NiAtMTMycS00MSAtODMgLTgxIC0xMzRoLTc3MnEtNDAgNTEgLTgxIDEzNGwtNjYgMTMycS0yOCA1NSAtMy41IDk0LjV0ODYuNSAzOS41aDM1MHYxMDBoLTEwMHYyMDBoMTAwdjEwMGgyMDB2LTEwMHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEybDEzNyAtMTAwIGgtOTUwbDEzOCAxMDBoLTEzcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTI7IiBkPSJNNjAwIDEzMDBxNDAgMCA2OC41IC0yOS41dDI4LjUgLTcwLjVoLTE5NHEwIDQxIDI4LjUgNzAuNXQ2OC41IDI5LjV6TTQ0MyAxMTAwaDMxNHExOCAtMzcgMTggLTc1cTAgLTggLTMgLTI1aDMyOHE0MSAwIDQ0LjUgLTE2LjV0LTMwLjUgLTM4LjVsLTE3NSAtMTQ1aC02NzhsLTE3OCAxNDVxLTM0IDIyIC0yOSAzOC41dDQ2IDE2LjVoMzI4cS0zIDE3IC0zIDI1cTAgMzggMTggNzV6TTI1MCA3MDBoNzAwcTIxIDAgMzUuNSAtMTQuNSB0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTUwdi0yMDBsMjc1IC0yMDBoLTk1MGwyNzUgMjAwdjIwMGgtMTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41ek01MCAxMDBoMTEwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoLTEyMDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMTM7IiBkPSJNNjAwIDExODFxNzUgMCAxMjggLTUzdDUzIC0xMjh0LTUzIC0xMjh0LTEyOCAtNTN0LTEyOCA1M3QtNTMgMTI4dDUzIDEyOHQxMjggNTN6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTMgbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNDsiIGQ9Ik02MDAgMTMwMHE0NyAwIDkyLjUgLTUzLjV0NzEgLTEyM3QyNS41IC0xMjMuNXEwIC03OCAtNTUuNSAtMTMzLjV0LTEzMy41IC01NS41dC0xMzMuNSA1NS41dC01NS41IDEzMy41cTAgNjIgMzQgMTQzbDE0NCAtMTQzbDExMSAxMTFsLTE2MyAxNjNxMzQgMjYgNjMgMjZ6TTYwMiA3OThoNDZxMzQgMCA1NS41IC0yOC41dDIxLjUgLTg2LjVxMCAtNzYgMzkgLTE4M2gtMzI0cTM5IDEwNyAzOSAxODNxMCA1OCAyMS41IDg2LjV0NTYuNSAyOC41aDQ1IHpNMjUwIDQwMGg3MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV0LTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTEzbDEzOCAtMTAwaC05NTBsMTM3IDEwMGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNTsiIGQ9Ik02MDAgMTIwMGwzMDAgLTE2MXYtMTM5aC0zMDBxMCAtNTcgMTguNSAtMTA4dDUwIC05MS41dDYzIC03MnQ3MCAtNjcuNXQ1Ny41IC02MWgtNTMwcS02MCA4MyAtOTAuNSAxNzcuNXQtMzAuNSAxNzguNXQzMyAxNjQuNXQ4Ny41IDEzOS41dDEyNiA5Ni41dDE0NS41IDQxLjV2LTk4ek0yNTAgNDAwaDcwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTNsMTM4IC0xMDBoLTk1MGwxMzcgMTAwIGgtMTJxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6TTUwIDEwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtMTIwMHY1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxNjsiIGQ9Ik02MDAgMTMwMHE0MSAwIDcwLjUgLTI5LjV0MjkuNSAtNzAuNXYtNzhxNDYgLTI2IDczIC03MnQyNyAtMTAwdi01MGgtNDAwdjUwcTAgNTQgMjcgMTAwdDczIDcydjc4cTAgNDEgMjkuNSA3MC41dDcwLjUgMjkuNXpNNDAwIDgwMGg0MDBxNTQgMCAxMDAgLTI3dDcyIC03M2gtMTcydi0xMDBoMjAwdi0xMDBoLTIwMHYtMTAwaDIwMHYtMTAwaC0yMDB2LTEwMGgyMDBxMCAtODMgLTU4LjUgLTE0MS41dC0xNDEuNSAtNTguNWgtNDAwIHEtODMgMCAtMTQxLjUgNTguNXQtNTguNSAxNDEuNXY0MDBxMCA4MyA1OC41IDE0MS41dDE0MS41IDU4LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIxODsiIGQ9Ik0xNTAgMTEwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY1MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0xMjUgNDAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMjgzbDIyNCAtMjI0cTEzIC0xMyAxMyAtMzEuNXQtMTMgLTMyIHQtMzEuNSAtMTMuNXQtMzEuNSAxM2wtODggODhoLTUyNGwtODcgLTg4cS0xMyAtMTMgLTMyIC0xM3QtMzIgMTMuNXQtMTMgMzJ0MTMgMzEuNWwyMjQgMjI0aC0yODlxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41ek01NDEgMzAwbC0xMDAgLTEwMGgzMjRsLTEwMCAxMDBoLTEyNHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjE5OyIgZD0iTTIwMCAxMTAwaDgwMHE4MyAwIDE0MS41IC01OC41dDU4LjUgLTE0MS41di0yMDBoLTEwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNWgtMjUwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41aC0xMDBxMCA0MSAtMjkuNSA3MC41dC03MC41IDI5LjVoLTI1MHEtNDEgMCAtNzAuNSAtMjkuNXQtMjkuNSAtNzAuNWgtMTAwdjIwMHEwIDgzIDU4LjUgMTQxLjV0MTQxLjUgNTguNXpNMTAwIDYwMGgxMDAwcTQxIDAgNzAuNSAtMjkuNSB0MjkuNSAtNzAuNXYtMzAwaC0xMjAwdjMwMHEwIDQxIDI5LjUgNzAuNXQ3MC41IDI5LjV6TTMwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHpNMTEwMCAxMDB2LTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djUwaDIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIxOyIgZD0iTTQ4MCAxMTY1bDY4MiAtNjgzcTMxIC0zMSAzMSAtNzUuNXQtMzEgLTc1LjVsLTEzMSAtMTMxaC00ODFsLTUxNyA1MThxLTMyIDMxIC0zMiA3NS41dDMyIDc1LjVsMjk1IDI5NnEzMSAzMSA3NS41IDMxdDc2LjUgLTMxek0xMDggNzk0bDM0MiAtMzQybDMwMyAzMDRsLTM0MSAzNDF6TTI1MCAxMDBoODAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di01MGgtOTAwdjUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjIzOyIgZD0iTTEwNTcgNjQ3bC0xODkgNTA2cS04IDE5IC0yNy41IDMzdC00MC41IDE0aC00MDBxLTIxIDAgLTQwLjUgLTE0dC0yNy41IC0zM2wtMTg5IC01MDZxLTggLTE5IDEuNSAtMzN0MzAuNSAtMTRoNjI1di0xNTBxMCAtMjEgMTQuNSAtMzUuNXQzNS41IC0xNC41dDM1LjUgMTQuNXQxNC41IDM1LjV2MTUwaDEyNXEyMSAwIDMwLjUgMTR0MS41IDMzek04OTcgMGgtNTk1djUwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWg1MHY1MCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDQ4djMwMGgyMDB2LTMwMGg0N3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBoNTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTUweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjQ7IiBkPSJNOTAwIDgwMGgzMDB2LTU3NXEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTM3NXY1OTFsLTMwMCAzMDB2ODRxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNMTIwMCA5MDBoLTIwMHYyMDB6TTQwMCA2MDBoMzAwdi01NzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC02NTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY5NTBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgzNzV2LTQwMHpNNzAwIDcwMGgtMjAwdjIwMHogIiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIyNTsiIGQ9Ik00ODQgMTA5NWgxOTVxNzUgMCAxNDYgLTMyLjV0MTI0IC04NnQ4OS41IC0xMjIuNXQ0OC41IC0xNDJxMTggLTE0IDM1IC0yMHEzMSAtMTAgNjQuNSA2LjV0NDMuNSA0OC41cTEwIDM0IC0xNSA3MXEtMTkgMjcgLTkgNDNxNSA4IDEyLjUgMTF0MTkgLTF0MjMuNSAtMTZxNDEgLTQ0IDM5IC0xMDVxLTMgLTYzIC00NiAtMTA2LjV0LTEwNCAtNDMuNWgtNjJxLTcgLTU1IC0zNSAtMTE3dC01NiAtMTAwbC0zOSAtMjM0cS0zIC0yMCAtMjAgLTM0LjUgdC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMTIgNzBxLTQ5IC0xNCAtOTEgLTE0aC0xOTVxLTI0IDAgLTY1IDhsLTExIC02NHEtMyAtMjAgLTIwIC0zNC41dC0zOCAtMTQuNWgtMTAwcS0yMSAwIC0zMyAxNC41dC05IDM0LjVsMjYgMTU3cS04NCA3NCAtMTI4IDE3NWwtMTU5IDUzcS0xOSA3IC0zMyAyNnQtMTQgNDB2NTBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDEyNHExMSA4NyA1NiAxNjZsLTExMSA5NSBxLTE2IDE0IC0xMi41IDIzLjV0MjQuNSA5LjVoMjAzcTExNiAxMDEgMjUwIDEwMXpNNjc1IDEwMDBoLTI1MHEtMTAgMCAtMTcuNSAtNy41dC03LjUgLTE3LjV2LTUwcTAgLTEwIDcuNSAtMTcuNXQxNy41IC03LjVoMjUwcTEwIDAgMTcuNSA3LjV0Ny41IDE3LjV2NTBxMCAxMCAtNy41IDE3LjV0LTE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMjY7IiBkPSJNNjQxIDkwMGw0MjMgMjQ3cTE5IDggNDIgMi41dDM3IC0yMS41bDMyIC0zOHExNCAtMTUgMTIuNSAtMzZ0LTE3LjUgLTM0bC0xMzkgLTEyMGgtMzkwek01MCAxMTAwaDEwNnE2NyAwIDEwMyAtMTd0NjYgLTcxbDEwMiAtMjEyaDgyM3EyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNTBxMCAtMjEgLTE0IC00MHQtMzMgLTI2bC03MzcgLTEzMnEtMjMgLTQgLTQwIDZ0LTI2IDI1cS00MiA2NyAtMTAwIDY3aC0zMDBxLTYyIDAgLTEwNiA0NCB0LTQ0IDEwNnYyMDBxMCA2MiA0NCAxMDZ0MTA2IDQ0ek0xNzMgOTI4aC04MHEtMTkgMCAtMjggLTE0dC05IC0zNXYtNTZxMCAtNTEgNDIgLTUxaDEzNHExNiAwIDIxLjUgOHQ1LjUgMjRxMCAxMSAtMTYgNDV0LTI3IDUxcS0xOCAyOCAtNDMgMjh6TTU1MCA3MjdxLTMyIDAgLTU0LjUgLTIyLjV0LTIyLjUgLTU0LjV0MjIuNSAtNTQuNXQ1NC41IC0yMi41dDU0LjUgMjIuNXQyMi41IDU0LjV0LTIyLjUgNTQuNXQtNTQuNSAyMi41ek0xMzAgMzg5IGwxNTIgMTMwcTE4IDE5IDM0IDI0dDMxIC0zLjV0MjQuNSAtMTcuNXQyNS41IC0yOHEyOCAtMzUgNTAuNSAtNTF0NDguNSAtMTNsNjMgNWw0OCAtMTc5cTEzIC02MSAtMy41IC05Ny41dC02Ny41IC03OS41bC04MCAtNjlxLTQ3IC00MCAtMTA5IC0zNS41dC0xMDMgNTEuNWwtMTMwIDE1MXEtNDAgNDcgLTM1LjUgMTA5LjV0NTEuNSAxMDIuNXpNMzgwIDM3N2wtMTAyIC04OHEtMzEgLTI3IDIgLTY1bDM3IC00M3ExMyAtMTUgMjcuNSAtMTkuNSB0MzEuNSA2LjVsNjEgNTNxMTkgMTYgMTQgNDlxLTIgMjAgLTEyIDU2dC0xNyA0NXEtMTEgMTIgLTE5IDE0dC0yMyAtOHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjI3OyIgZD0iTTYyNSAxMjAwaDE1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTEwOXE3OSAtMzMgMTMxIC04Ny41dDUzIC0xMjguNXExIC00NiAtMTUgLTg0LjV0LTM5IC02MXQtNDYgLTM4dC0zOSAtMjEuNWwtMTcgLTZxNiAwIDE1IC0xLjV0MzUgLTl0NTAgLTE3LjV0NTMgLTMwdDUwIC00NXQzNS41IC02NHQxNC41IC04NHEwIC01OSAtMTEuNSAtMTA1LjV0LTI4LjUgLTc2LjV0LTQ0IC01MXQtNDkuNSAtMzEuNXQtNTQuNSAtMTZ0LTQ5LjUgLTYuNSB0LTQzLjUgLTF2LTc1cTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtMTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2NzVoLTEwMHYtNzVxMCAtMTAgLTcuNSAtMTcuNXQtMTcuNSAtNy41aC0xNTBxLTEwIDAgLTE3LjUgNy41dC03LjUgMTcuNXY3NWgtMTc1cS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjVoNzV2NjAwaC03NXEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MCBxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNzV2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNWgxNTBxMTAgMCAxNy41IC03LjV0Ny41IC0xNy41di03NWgxMDB2NzVxMCAxMCA3LjUgMTcuNXQxNy41IDcuNXpNNDAwIDkwMHYtMjAwaDI2M3EyOCAwIDQ4LjUgMTAuNXQzMCAyNXQxNSAyOXQ1LjUgMjUuNWwxIDEwcTAgNCAtMC41IDExdC02IDI0dC0xNSAzMHQtMzAgMjR0LTQ4LjUgMTFoLTI2M3pNNDAwIDUwMHYtMjAwaDM2M3EyOCAwIDQ4LjUgMTAuNSB0MzAgMjV0MTUgMjl0NS41IDI1LjVsMSAxMHEwIDQgLTAuNSAxMXQtNiAyNHQtMTUgMzB0LTMwIDI0dC00OC41IDExaC0zNjN6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMDsiIGQ9Ik0yMTIgMTE5OGg3ODBxODYgMCAxNDcgLTYxdDYxIC0xNDd2LTQxNnEwIC01MSAtMTggLTE0Mi41dC0zNiAtMTU3LjVsLTE4IC02NnEtMjkgLTg3IC05My41IC0xNDYuNXQtMTQ2LjUgLTU5LjVoLTU3MnEtODIgMCAtMTQ3IDU5dC05MyAxNDdxLTggMjggLTIwIDczdC0zMiAxNDMuNXQtMjAgMTQ5LjV2NDE2cTAgODYgNjEgMTQ3dDE0NyA2MXpNNjAwIDEwNDVxLTcwIDAgLTEzMi41IC0xMS41dC0xMDUuNSAtMzAuNXQtNzguNSAtNDEuNSB0LTU3IC00NXQtMzYgLTQxdC0yMC41IC0zMC41bC02IC0xMmwxNTYgLTI0M2g1NjBsMTU2IDI0M3EtMiA1IC02IDEyLjV0LTIwIDI5LjV0LTM2LjUgNDJ0LTU3IDQ0LjV0LTc5IDQydC0xMDUgMjkuNXQtMTMyLjUgMTJ6TTc2MiA3MDNoLTE1N2wxOTUgMjYxeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzE7IiBkPSJNNDc1IDEzMDBoMTUwcTEwMyAwIDE4OSAtODZ0ODYgLTE4OXYtNTAwcTAgLTQxIC00MiAtODN0LTgzIC00MmgtNDUwcS00MSAwIC04MyA0MnQtNDIgODN2NTAwcTAgMTAzIDg2IDE4OXQxODkgODZ6TTcwMCAzMDB2LTIyNXEwIC0yMSAtMjcgLTQ4dC00OCAtMjdoLTE1MHEtMjEgMCAtNDggMjd0LTI3IDQ4djIyNWgzMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzMjsiIGQ9Ik00NzUgMTMwMGg5NnEwIC0xNTAgODkuNSAtMjM5LjV0MjM5LjUgLTg5LjV2LTQ0NnEwIC00MSAtNDIgLTgzdC04MyAtNDJoLTQ1MHEtNDEgMCAtODMgNDJ0LTQyIDgzdjUwMHEwIDEwMyA4NiAxODl0MTg5IDg2ek03MDAgMzAwdi0yMjVxMCAtMjEgLTI3IC00OHQtNDggLTI3aC0xNTBxLTIxIDAgLTQ4IDI3dC0yNyA0OHYyMjVoMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzM7IiBkPSJNMTI5NCA3NjdsLTYzOCAtMjgzbC0zNzggMTcwbC03OCAtNjB2LTIyNGwxMDAgLTE1MHYtMTk5bC0xNTAgMTQ4bC0xNTAgLTE0OXYyMDBsMTAwIDE1MHYyNTBxMCA0IC0wLjUgMTAuNXQwIDkuNXQxIDh0MyA4dDYuNSA2bDQ3IDQwbC0xNDcgNjVsNjQyIDI4M3pNMTAwMCAzODBsLTM1MCAtMTY2bC0zNTAgMTY2djE0N2wzNTAgLTE2NWwzNTAgMTY1di0xNDd6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzNDsiIGQ9Ik0yNTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek02NTAgODAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek0xMDUwIDgwMHE2MiAwIDEwNiAtNDR0NDQgLTEwNnQtNDQgLTEwNnQtMTA2IC00NHQtMTA2IDQ0dC00NCAxMDZ0NDQgMTA2dDEwNiA0NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjM1OyIgZD0iTTU1MCAxMTAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgNzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0ek01NTAgMzAwcTYyIDAgMTA2IC00NHQ0NCAtMTA2dC00NCAtMTA2dC0xMDYgLTQ0dC0xMDYgNDR0LTQ0IDEwNnQ0NCAxMDZ0MTA2IDQ0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzY7IiBkPSJNMTI1IDExMDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjV0MTcuNSA3LjV6TTEyNSA3MDBoOTUwcTEwIDAgMTcuNSAtNy41dDcuNSAtMTcuNXYtMTUwcTAgLTEwIC03LjUgLTE3LjV0LTE3LjUgLTcuNWgtOTUwcS0xMCAwIC0xNy41IDcuNXQtNy41IDE3LjV2MTUwcTAgMTAgNy41IDE3LjUgdDE3LjUgNy41ek0xMjUgMzAwaDk1MHExMCAwIDE3LjUgLTcuNXQ3LjUgLTE3LjV2LTE1MHEwIC0xMCAtNy41IC0xNy41dC0xNy41IC03LjVoLTk1MHEtMTAgMCAtMTcuNSA3LjV0LTcuNSAxNy41djE1MHEwIDEwIDcuNSAxNy41dDE3LjUgNy41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzc7IiBkPSJNMzUwIDEyMDBoNTAwcTE2MiAwIDI1NiAtOTMuNXQ5NCAtMjU2LjV2LTUwMHEwIC0xNjUgLTkzLjUgLTI1Ny41dC0yNTYuNSAtOTIuNWgtNTAwcS0xNjUgMCAtMjU3LjUgOTIuNXQtOTIuNSAyNTcuNXY1MDBxMCAxNjUgOTIuNSAyNTcuNXQyNTcuNSA5Mi41ek05MDAgMTAwMGgtNjAwcS00MSAwIC03MC41IC0yOS41dC0yOS41IC03MC41di02MDBxMCAtNDEgMjkuNSAtNzAuNXQ3MC41IC0yOS41aDYwMHE0MSAwIDcwLjUgMjkuNSB0MjkuNSA3MC41djYwMHEwIDQxIC0yOS41IDcwLjV0LTcwLjUgMjkuNXpNMzUwIDkwMGg1MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTMwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYzMDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek00MDAgODAwdi0yMDBoNDAwdjIwMGgtNDAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyMzg7IiBkPSJNMTUwIDExMDBoMTAwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNTB2LTIwMGg1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXQtMTQuNSAtMzUuNSB0LTM1LjUgLTE0LjVoLTEwMDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjVoNTB2MjAwaC01MHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV0MTQuNSAzNS41dDM1LjUgMTQuNWg1MHYyMDBoLTUwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXQxNC41IDM1LjV0MzUuNSAxNC41aDUwdjIwMGgtNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41dDE0LjUgMzUuNXQzNS41IDE0LjV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTIzOTsiIGQ9Ik02NTAgMTE4N3E4NyAtNjcgMTE4LjUgLTE1NnQwIC0xNzh0LTExOC41IC0xNTVxLTg3IDY2IC0xMTguNSAxNTV0MCAxNzh0MTE4LjUgMTU2ek0zMDAgODAwcTEyNCAwIDIxMiAtODh0ODggLTIxMnEtMTI0IDAgLTIxMiA4OHQtODggMjEyek0xMDAwIDgwMHEwIC0xMjQgLTg4IC0yMTJ0LTIxMiAtODhxMCAxMjQgODggMjEydDIxMiA4OHpNMzAwIDUwMHExMjQgMCAyMTIgLTg4dDg4IC0yMTJxLTEyNCAwIC0yMTIgODh0LTg4IDIxMnogTTEwMDAgNTAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek03MDAgMTk5di0xNDRxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjV0LTM1LjUgMTQuNXQtMTQuNSAzNS41djE0MnE0MCAtNCA0MyAtNHExNyAwIDU3IDZ6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0MDsiIGQ9Ik03NDUgODc4bDY5IDE5cTI1IDYgNDUgLTEybDI5OCAtMjk1cTExIC0xMSAxNSAtMjYuNXQtMiAtMzAuNXEtNSAtMTQgLTE4IC0yMy41dC0yOCAtOS41aC04cTEgMCAxIC0xM3EwIC0yOSAtMiAtNTZ0LTguNSAtNjJ0LTIwIC02M3QtMzMgLTUzdC01MSAtMzl0LTcyLjUgLTE0aC0xNDZxLTE4NCAwIC0xODQgMjg4cTAgMjQgMTAgNDdxLTIwIDQgLTYyIDR0LTYzIC00cTExIC0yNCAxMSAtNDdxMCAtMjg4IC0xODQgLTI4OGgtMTQyIHEtNDggMCAtODQuNSAyMXQtNTYgNTF0LTMyIDcxLjV0LTE2IDc1dC0zLjUgNjguNXEwIDEzIDIgMTNoLTdxLTE1IDAgLTI3LjUgOS41dC0xOC41IDIzLjVxLTYgMTUgLTIgMzAuNXQxNSAyNS41bDI5OCAyOTZxMjAgMTggNDYgMTFsNzYgLTE5cTIwIC01IDMwLjUgLTIyLjV0NS41IC0zNy41dC0yMi41IC0zMXQtMzcuNSAtNWwtNTEgMTJsLTE4MiAtMTkzaDg5MWwtMTgyIDE5M2wtNDQgLTEycS0yMCAtNSAtMzcuNSA2dC0yMi41IDMxdDYgMzcuNSB0MzEgMjIuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQxOyIgZD0iTTEyMDAgOTAwaC01MHEwIDIxIC00IDM3dC05LjUgMjYuNXQtMTggMTcuNXQtMjIgMTF0LTI4LjUgNS41dC0zMSAydC0zNyAwLjVoLTIwMHYtODUwcTAgLTIyIDI1IC0zNC41dDUwIC0xMy41bDI1IC0ydi0xMDBoLTQwMHYxMDBxNCAwIDExIDAuNXQyNCAzdDMwIDd0MjQgMTV0MTEgMjQuNXY4NTBoLTIwMHEtMjUgMCAtMzcgLTAuNXQtMzEgLTJ0LTI4LjUgLTUuNXQtMjIgLTExdC0xOCAtMTcuNXQtOS41IC0yNi41dC00IC0zN2gtNTB2MzAwIGgxMDAwdi0zMDB6TTUwMCA0NTBoLTI1cTAgMTUgLTQgMjQuNXQtOSAxNC41dC0xNyA3LjV0LTIwIDN0LTI1IDAuNWgtMTAwdi00MjVxMCAtMTEgMTIuNSAtMTcuNXQyNS41IC03LjVoMTJ2LTUwaC0yMDB2NTBxNTAgMCA1MCAyNXY0MjVoLTEwMHEtMTcgMCAtMjUgLTAuNXQtMjAgLTN0LTE3IC03LjV0LTkgLTE0LjV0LTQgLTI0LjVoLTI1djE1MGg1MDB2LTE1MHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQyOyIgZD0iTTEwMDAgMzAwdjUwcS0yNSAwIC01NSAzMnEtMTQgMTQgLTI1IDMxdC0xNiAyN2wtNCAxMWwtMjg5IDc0N2gtNjlsLTMwMCAtNzU0cS0xOCAtMzUgLTM5IC01NnEtOSAtOSAtMjQuNSAtMTguNXQtMjYuNSAtMTQuNWwtMTEgLTV2LTUwaDI3M3Y1MHEtNDkgMCAtNzguNSAyMS41dC0xMS41IDY3LjVsNjkgMTc2aDI5M2w2MSAtMTY2cTEzIC0zNCAtMy41IC02Ni41dC01NS41IC0zMi41di01MGgzMTJ6TTQxMiA2OTFsMTM0IDM0MmwxMjEgLTM0MiBoLTI1NXpNMTEwMCAxNTB2LTEwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtMTAwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2MTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNWgxMDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDM7IiBkPSJNNTAgMTIwMGgxMTAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xMTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xMTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXYxMTAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjExIDExMThoLTcwcS0xMyAwIC0xOCAtMTJsLTI5OSAtNzUzcS0xNyAtMzIgLTM1IC01MXEtMTggLTE4IC01NiAtMzRxLTEyIC01IC0xMiAtMTh2LTUwcTAgLTggNS41IC0xNHQxNC41IC02IGgyNzNxOCAwIDE0IDZ0NiAxNHY1MHEwIDggLTYgMTR0LTE0IDZxLTU1IDAgLTcxIDIzcS0xMCAxNCAwIDM5bDYzIDE2M2gyNjZsNTcgLTE1M3ExMSAtMzEgLTYgLTU1cS0xMiAtMTcgLTM2IC0xN3EtOCAwIC0xNCAtNnQtNiAtMTR2LTUwcTAgLTggNiAtMTR0MTQgLTZoMzEzcTggMCAxNCA2dDYgMTR2NTBxMCA3IC01LjUgMTN0LTEzLjUgN3EtMTcgMCAtNDIgMjVxLTI1IDI3IC00MCA2M2gtMWwtMjg4IDc0OHEtNSAxMiAtMTkgMTJ6TTYzOSA2MTEgaC0xOTdsMTAzIDI2NHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ0OyIgZD0iTTEyMDAgMTEwMGgtMTIwMHYxMDBoMTIwMHYtMTAwek01MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtOTAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djkwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTY1MCAxMDAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDAgcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgOTAwdi0zMDBoMzAwdjMwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNDU7IiBkPSJNNTAgMTIwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTkwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY5MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek02NTAgNzAwaDQwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMCBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek03MDAgNjAwdi0zMDBoMzAwdjMwMGgtMzAwek0xMjAwIDBoLTEyMDB2MTAwaDEyMDB2LTEwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ2OyIgZD0iTTUwIDEwMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0zNTBoMTAwdjE1MHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di0xNTBoMTAwdi0xMDBoLTEwMHYtMTUwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC00MDBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djE1MGgtMTAwdi0zNTBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMCBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djgwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTcwMCA3MDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0NzsiIGQ9Ik0xMDAgMGgtMTAwdjEyMDBoMTAwdi0xMjAwek0yNTAgMTEwMGg0MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtNDAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41ek0zMDAgMTAwMHYtMzAwaDMwMHYzMDBoLTMwMHpNMjUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjQ4OyIgZD0iTTYwMCAxMTAwaDE1MHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTEwMGg0NTBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMHEwIC0yMSAtMTQuNSAtMzUuNXQtMzUuNSAtMTQuNWgtOTAwcS0yMSAwIC0zNS41IDE0LjV0LTE0LjUgMzUuNXY0MDBxMCAyMSAxNC41IDM1LjV0MzUuNSAxNC41aDM1MHYxMDBoLTE1MHEtMjEgMCAtMzUuNSAxNC41IHQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjVoMTUwdjEwMGgxMDB2LTEwMHpNNDAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI0OTsiIGQ9Ik0xMjAwIDBoLTEwMHYxMjAwaDEwMHYtMTIwMHpNNTUwIDExMDBoNDAwcTIxIDAgMzUuNSAtMTQuNXQxNC41IC0zNS41di00MDBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTQwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXpNNjAwIDEwMDB2LTMwMGgzMDB2MzAwaC0zMDB6TTUwIDUwMGg5MDBxMjEgMCAzNS41IC0xNC41dDE0LjUgLTM1LjV2LTQwMCBxMCAtMjEgLTE0LjUgLTM1LjV0LTM1LjUgLTE0LjVoLTkwMHEtMjEgMCAtMzUuNSAxNC41dC0xNC41IDM1LjV2NDAwcTAgMjEgMTQuNSAzNS41dDM1LjUgMTQuNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUwOyIgZD0iTTg2NSA1NjVsLTQ5NCAtNDk0cS0yMyAtMjMgLTQxIC0yM3EtMTQgMCAtMjIgMTMuNXQtOCAzOC41djEwMDBxMCAyNSA4IDM4LjV0MjIgMTMuNXExOCAwIDQxIC0yM2w0OTQgLTQ5NHExNCAtMTQgMTQgLTM1dC0xNCAtMzV6IiAvPgo8Z2x5cGggdW5pY29kZT0iJiN4ZTI1MTsiIGQ9Ik0zMzUgNjM1bDQ5NCA0OTRxMjkgMjkgNTAgMjAuNXQyMSAtNDkuNXYtMTAwMHEwIC00MSAtMjEgLTQ5LjV0LTUwIDIwLjVsLTQ5NCA0OTRxLTE0IDE0IC0xNCAzNXQxNCAzNXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUyOyIgZD0iTTEwMCA5MDBoMTAwMHE0MSAwIDQ5LjUgLTIxdC0yMC41IC01MGwtNDk0IC00OTRxLTE0IC0xNCAtMzUgLTE0dC0zNSAxNGwtNDk0IDQ5NHEtMjkgMjkgLTIwLjUgNTB0NDkuNSAyMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjUzOyIgZD0iTTYzNSA4NjVsNDk0IC00OTRxMjkgLTI5IDIwLjUgLTUwdC00OS41IC0yMWgtMTAwMHEtNDEgMCAtNDkuNSAyMXQyMC41IDUwbDQ5NCA0OTRxMTQgMTQgMzUgMTR0MzUgLTE0eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTQ7IiBkPSJNNzAwIDc0MXYtMTgybC02OTIgLTMyM3YyMjFsNDEzIDE5M2wtNDEzIDE5M3YyMjF6TTEyMDAgMGgtODAwdjIwMGg4MDB2LTIwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU1OyIgZD0iTTEyMDAgOTAwaC0yMDB2LTEwMGgyMDB2LTEwMGgtMzAwdjMwMGgyMDB2MTAwaC0yMDB2MTAwaDMwMHYtMzAwek0wIDcwMGg1MHEwIDIxIDQgMzd0OS41IDI2LjV0MTggMTcuNXQyMiAxMXQyOC41IDUuNXQzMSAydDM3IDAuNWgxMDB2LTU1MHEwIC0yMiAtMjUgLTM0LjV0LTUwIC0xMy41bC0yNSAtMnYtMTAwaDQwMHYxMDBxLTQgMCAtMTEgMC41dC0yNCAzdC0zMCA3dC0yNCAxNXQtMTEgMjQuNXY1NTBoMTAwcTI1IDAgMzcgLTAuNXQzMSAtMiB0MjguNSAtNS41dDIyIC0xMXQxOCAtMTcuNXQ5LjUgLTI2LjV0NCAtMzdoNTB2MzAwaC04MDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU2OyIgZD0iTTgwMCA3MDBoLTUwcTAgMjEgLTQgMzd0LTkuNSAyNi41dC0xOCAxNy41dC0yMiAxMXQtMjguNSA1LjV0LTMxIDJ0LTM3IDAuNWgtMTAwdi01NTBxMCAtMjIgMjUgLTM0LjV0NTAgLTE0LjVsMjUgLTF2LTEwMGgtNDAwdjEwMHE0IDAgMTEgMC41dDI0IDN0MzAgN3QyNCAxNXQxMSAyNC41djU1MGgtMTAwcS0yNSAwIC0zNyAtMC41dC0zMSAtMnQtMjguNSAtNS41dC0yMiAtMTF0LTE4IC0xNy41dC05LjUgLTI2LjV0LTQgLTM3aC01MHYzMDAgaDgwMHYtMzAwek0xMTAwIDIwMGgtMjAwdi0xMDBoMjAwdi0xMDBoLTMwMHYzMDBoMjAwdjEwMGgtMjAwdjEwMGgzMDB2LTMwMHoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU3OyIgZD0iTTcwMSAxMDk4aDE2MHExNiAwIDIxIC0xMXQtNyAtMjNsLTQ2NCAtNDY0bDQ2NCAtNDY0cTEyIC0xMiA3IC0yM3QtMjEgLTExaC0xNjBxLTEzIDAgLTIzIDlsLTQ3MSA0NzFxLTcgOCAtNyAxOHQ3IDE4bDQ3MSA0NzFxMTAgOSAyMyA5eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGUyNTg7IiBkPSJNMzM5IDEwOThoMTYwcTEzIDAgMjMgLTlsNDcxIC00NzFxNyAtOCA3IC0xOHQtNyAtMThsLTQ3MSAtNDcxcS0xMCAtOSAtMjMgLTloLTE2MHEtMTYgMCAtMjEgMTF0NyAyM2w0NjQgNDY0bC00NjQgNDY0cS0xMiAxMiAtNyAyM3QyMSAxMXoiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjU5OyIgZD0iTTEwODcgODgycTExIC01IDExIC0yMXYtMTYwcTAgLTEzIC05IC0yM2wtNDcxIC00NzFxLTggLTcgLTE4IC03dC0xOCA3bC00NzEgNDcxcS05IDEwIC05IDIzdjE2MHEwIDE2IDExIDIxdDIzIC03bDQ2NCAtNDY0bDQ2NCA0NjRxMTIgMTIgMjMgN3oiIC8%2BCjxnbHlwaCB1bmljb2RlPSImI3hlMjYwOyIgZD0iTTYxOCA5OTNsNDcxIC00NzFxOSAtMTAgOSAtMjN2LTE2MHEwIC0xNiAtMTEgLTIxdC0yMyA3bC00NjQgNDY0bC00NjQgLTQ2NHEtMTIgLTEyIC0yMyAtN3QtMTEgMjF2MTYwcTAgMTMgOSAyM2w0NzEgNDcxcTggNyAxOCA3dDE4IC03eiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeGY4ZmY7IiBkPSJNMTAwMCAxMjAwcTAgLTEyNCAtODggLTIxMnQtMjEyIC04OHEwIDEyNCA4OCAyMTJ0MjEyIDg4ek00NTAgMTAwMGgxMDBxMjEgMCA0MCAtMTR0MjYgLTMzbDc5IC0xOTRxNSAxIDE2IDNxMzQgNiA1NCA5LjV0NjAgN3Q2NS41IDF0NjEgLTEwdDU2LjUgLTIzdDQyLjUgLTQydDI5IC02NHQ1IC05MnQtMTkuNSAtMTIxLjVxLTEgLTcgLTMgLTE5LjV0LTExIC01MHQtMjAuNSAtNzN0LTMyLjUgLTgxLjV0LTQ2LjUgLTgzdC02NCAtNzAgdC04Mi41IC01MHEtMTMgLTUgLTQyIC01dC02NS41IDIuNXQtNDcuNSAyLjVxLTE0IDAgLTQ5LjUgLTMuNXQtNjMgLTMuNXQtNDMuNSA3cS01NyAyNSAtMTA0LjUgNzguNXQtNzUgMTExLjV0LTQ2LjUgMTEydC0yNiA5MGwtNyAzNXEtMTUgNjMgLTE4IDExNXQ0LjUgODguNXQyNiA2NHQzOS41IDQzLjV0NTIgMjUuNXQ1OC41IDEzdDYyLjUgMnQ1OS41IC00LjV0NTUuNSAtOGwtMTQ3IDE5MnEtMTIgMTggLTUuNSAzMHQyNy41IDEyeiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNTExOyIgZD0iTTI1MCAxMjAwaDYwMHEyMSAwIDM1LjUgLTE0LjV0MTQuNSAtMzUuNXYtNDAwcTAgLTIxIC0xNC41IC0zNS41dC0zNS41IC0xNC41aC0xNTB2LTUwMGwtMjU1IC0xNzhxLTE5IC05IC0zMiAtMXQtMTMgMjl2NjUwaC0xNTBxLTIxIDAgLTM1LjUgMTQuNXQtMTQuNSAzNS41djQwMHEwIDIxIDE0LjUgMzUuNXQzNS41IDE0LjV6TTQwMCAxMTAwdi0xMDBoMzAwdjEwMGgtMzAweiIgLz4KPGdseXBoIHVuaWNvZGU9IiYjeDFmNmFhOyIgZD0iTTI1MCAxMjAwaDc1MHEzOSAwIDY5LjUgLTQwLjV0MzAuNSAtODQuNXYtOTMzbC03MDAgLTExN3Y5NTBsNjAwIDEyNWgtNzAwdi0xMDAwaC0xMDB2MTAyNXEwIDIzIDE1LjUgNDl0MzQuNSAyNnpNNTAwIDUyNXYtMTAwbDEwMCAyMHYxMDB6IiAvPgo8L2ZvbnQ%2BCjwvZGVmcz48L3N2Zz4g%29%20format%28%27svg%27%29%7D%2Eglyphicon%7Bposition%3Arelative%3Btop%3A1px%3Bdisplay%3Ainline%2Dblock%3Bfont%2Dfamily%3A%27Glyphicons%20Halflings%27%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%3B%2Dwebkit%2Dfont%2Dsmoothing%3Aantialiased%3B%2Dmoz%2Dosx%2Dfont%2Dsmoothing%3Agrayscale%7D%2Eglyphicon%2Dasterisk%3Abefore%7Bcontent%3A%22%5C2a%22%7D%2Eglyphicon%2Dplus%3Abefore%7Bcontent%3A%22%5C2b%22%7D%2Eglyphicon%2Deur%3Abefore%2C%2Eglyphicon%2Deuro%3Abefore%7Bcontent%3A%22%5C20ac%22%7D%2Eglyphicon%2Dminus%3Abefore%7Bcontent%3A%22%5C2212%22%7D%2Eglyphicon%2Dcloud%3Abefore%7Bcontent%3A%22%5C2601%22%7D%2Eglyphicon%2Denvelope%3Abefore%7Bcontent%3A%22%5C2709%22%7D%2Eglyphicon%2Dpencil%3Abefore%7Bcontent%3A%22%5C270f%22%7D%2Eglyphicon%2Dglass%3Abefore%7Bcontent%3A%22%5Ce001%22%7D%2Eglyphicon%2Dmusic%3Abefore%7Bcontent%3A%22%5Ce002%22%7D%2Eglyphicon%2Dsearch%3Abefore%7Bcontent%3A%22%5Ce003%22%7D%2Eglyphicon%2Dheart%3Abefore%7Bcontent%3A%22%5Ce005%22%7D%2Eglyphicon%2Dstar%3Abefore%7Bcontent%3A%22%5Ce006%22%7D%2Eglyphicon%2Dstar%2Dempty%3Abefore%7Bcontent%3A%22%5Ce007%22%7D%2Eglyphicon%2Duser%3Abefore%7Bcontent%3A%22%5Ce008%22%7D%2Eglyphicon%2Dfilm%3Abefore%7Bcontent%3A%22%5Ce009%22%7D%2Eglyphicon%2Dth%2Dlarge%3Abefore%7Bcontent%3A%22%5Ce010%22%7D%2Eglyphicon%2Dth%3Abefore%7Bcontent%3A%22%5Ce011%22%7D%2Eglyphicon%2Dth%2Dlist%3Abefore%7Bcontent%3A%22%5Ce012%22%7D%2Eglyphicon%2Dok%3Abefore%7Bcontent%3A%22%5Ce013%22%7D%2Eglyphicon%2Dremove%3Abefore%7Bcontent%3A%22%5Ce014%22%7D%2Eglyphicon%2Dzoom%2Din%3Abefore%7Bcontent%3A%22%5Ce015%22%7D%2Eglyphicon%2Dzoom%2Dout%3Abefore%7Bcontent%3A%22%5Ce016%22%7D%2Eglyphicon%2Doff%3Abefore%7Bcontent%3A%22%5Ce017%22%7D%2Eglyphicon%2Dsignal%3Abefore%7Bcontent%3A%22%5Ce018%22%7D%2Eglyphicon%2Dcog%3Abefore%7Bcontent%3A%22%5Ce019%22%7D%2Eglyphicon%2Dtrash%3Abefore%7Bcontent%3A%22%5Ce020%22%7D%2Eglyphicon%2Dhome%3Abefore%7Bcontent%3A%22%5Ce021%22%7D%2Eglyphicon%2Dfile%3Abefore%7Bcontent%3A%22%5Ce022%22%7D%2Eglyphicon%2Dtime%3Abefore%7Bcontent%3A%22%5Ce023%22%7D%2Eglyphicon%2Droad%3Abefore%7Bcontent%3A%22%5Ce024%22%7D%2Eglyphicon%2Ddownload%2Dalt%3Abefore%7Bcontent%3A%22%5Ce025%22%7D%2Eglyphicon%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce026%22%7D%2Eglyphicon%2Dupload%3Abefore%7Bcontent%3A%22%5Ce027%22%7D%2Eglyphicon%2Dinbox%3Abefore%7Bcontent%3A%22%5Ce028%22%7D%2Eglyphicon%2Dplay%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce029%22%7D%2Eglyphicon%2Drepeat%3Abefore%7Bcontent%3A%22%5Ce030%22%7D%2Eglyphicon%2Drefresh%3Abefore%7Bcontent%3A%22%5Ce031%22%7D%2Eglyphicon%2Dlist%2Dalt%3Abefore%7Bcontent%3A%22%5Ce032%22%7D%2Eglyphicon%2Dlock%3Abefore%7Bcontent%3A%22%5Ce033%22%7D%2Eglyphicon%2Dflag%3Abefore%7Bcontent%3A%22%5Ce034%22%7D%2Eglyphicon%2Dheadphones%3Abefore%7Bcontent%3A%22%5Ce035%22%7D%2Eglyphicon%2Dvolume%2Doff%3Abefore%7Bcontent%3A%22%5Ce036%22%7D%2Eglyphicon%2Dvolume%2Ddown%3Abefore%7Bcontent%3A%22%5Ce037%22%7D%2Eglyphicon%2Dvolume%2Dup%3Abefore%7Bcontent%3A%22%5Ce038%22%7D%2Eglyphicon%2Dqrcode%3Abefore%7Bcontent%3A%22%5Ce039%22%7D%2Eglyphicon%2Dbarcode%3Abefore%7Bcontent%3A%22%5Ce040%22%7D%2Eglyphicon%2Dtag%3Abefore%7Bcontent%3A%22%5Ce041%22%7D%2Eglyphicon%2Dtags%3Abefore%7Bcontent%3A%22%5Ce042%22%7D%2Eglyphicon%2Dbook%3Abefore%7Bcontent%3A%22%5Ce043%22%7D%2Eglyphicon%2Dbookmark%3Abefore%7Bcontent%3A%22%5Ce044%22%7D%2Eglyphicon%2Dprint%3Abefore%7Bcontent%3A%22%5Ce045%22%7D%2Eglyphicon%2Dcamera%3Abefore%7Bcontent%3A%22%5Ce046%22%7D%2Eglyphicon%2Dfont%3Abefore%7Bcontent%3A%22%5Ce047%22%7D%2Eglyphicon%2Dbold%3Abefore%7Bcontent%3A%22%5Ce048%22%7D%2Eglyphicon%2Ditalic%3Abefore%7Bcontent%3A%22%5Ce049%22%7D%2Eglyphicon%2Dtext%2Dheight%3Abefore%7Bcontent%3A%22%5Ce050%22%7D%2Eglyphicon%2Dtext%2Dwidth%3Abefore%7Bcontent%3A%22%5Ce051%22%7D%2Eglyphicon%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce052%22%7D%2Eglyphicon%2Dalign%2Dcenter%3Abefore%7Bcontent%3A%22%5Ce053%22%7D%2Eglyphicon%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce054%22%7D%2Eglyphicon%2Dalign%2Djustify%3Abefore%7Bcontent%3A%22%5Ce055%22%7D%2Eglyphicon%2Dlist%3Abefore%7Bcontent%3A%22%5Ce056%22%7D%2Eglyphicon%2Dindent%2Dleft%3Abefore%7Bcontent%3A%22%5Ce057%22%7D%2Eglyphicon%2Dindent%2Dright%3Abefore%7Bcontent%3A%22%5Ce058%22%7D%2Eglyphicon%2Dfacetime%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce059%22%7D%2Eglyphicon%2Dpicture%3Abefore%7Bcontent%3A%22%5Ce060%22%7D%2Eglyphicon%2Dmap%2Dmarker%3Abefore%7Bcontent%3A%22%5Ce062%22%7D%2Eglyphicon%2Dadjust%3Abefore%7Bcontent%3A%22%5Ce063%22%7D%2Eglyphicon%2Dtint%3Abefore%7Bcontent%3A%22%5Ce064%22%7D%2Eglyphicon%2Dedit%3Abefore%7Bcontent%3A%22%5Ce065%22%7D%2Eglyphicon%2Dshare%3Abefore%7Bcontent%3A%22%5Ce066%22%7D%2Eglyphicon%2Dcheck%3Abefore%7Bcontent%3A%22%5Ce067%22%7D%2Eglyphicon%2Dmove%3Abefore%7Bcontent%3A%22%5Ce068%22%7D%2Eglyphicon%2Dstep%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce069%22%7D%2Eglyphicon%2Dfast%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce070%22%7D%2Eglyphicon%2Dbackward%3Abefore%7Bcontent%3A%22%5Ce071%22%7D%2Eglyphicon%2Dplay%3Abefore%7Bcontent%3A%22%5Ce072%22%7D%2Eglyphicon%2Dpause%3Abefore%7Bcontent%3A%22%5Ce073%22%7D%2Eglyphicon%2Dstop%3Abefore%7Bcontent%3A%22%5Ce074%22%7D%2Eglyphicon%2Dforward%3Abefore%7Bcontent%3A%22%5Ce075%22%7D%2Eglyphicon%2Dfast%2Dforward%3Abefore%7Bcontent%3A%22%5Ce076%22%7D%2Eglyphicon%2Dstep%2Dforward%3Abefore%7Bcontent%3A%22%5Ce077%22%7D%2Eglyphicon%2Deject%3Abefore%7Bcontent%3A%22%5Ce078%22%7D%2Eglyphicon%2Dchevron%2Dleft%3Abefore%7Bcontent%3A%22%5Ce079%22%7D%2Eglyphicon%2Dchevron%2Dright%3Abefore%7Bcontent%3A%22%5Ce080%22%7D%2Eglyphicon%2Dplus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce081%22%7D%2Eglyphicon%2Dminus%2Dsign%3Abefore%7Bcontent%3A%22%5Ce082%22%7D%2Eglyphicon%2Dremove%2Dsign%3Abefore%7Bcontent%3A%22%5Ce083%22%7D%2Eglyphicon%2Dok%2Dsign%3Abefore%7Bcontent%3A%22%5Ce084%22%7D%2Eglyphicon%2Dquestion%2Dsign%3Abefore%7Bcontent%3A%22%5Ce085%22%7D%2Eglyphicon%2Dinfo%2Dsign%3Abefore%7Bcontent%3A%22%5Ce086%22%7D%2Eglyphicon%2Dscreenshot%3Abefore%7Bcontent%3A%22%5Ce087%22%7D%2Eglyphicon%2Dremove%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce088%22%7D%2Eglyphicon%2Dok%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce089%22%7D%2Eglyphicon%2Dban%2Dcircle%3Abefore%7Bcontent%3A%22%5Ce090%22%7D%2Eglyphicon%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce091%22%7D%2Eglyphicon%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce092%22%7D%2Eglyphicon%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce093%22%7D%2Eglyphicon%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce094%22%7D%2Eglyphicon%2Dshare%2Dalt%3Abefore%7Bcontent%3A%22%5Ce095%22%7D%2Eglyphicon%2Dresize%2Dfull%3Abefore%7Bcontent%3A%22%5Ce096%22%7D%2Eglyphicon%2Dresize%2Dsmall%3Abefore%7Bcontent%3A%22%5Ce097%22%7D%2Eglyphicon%2Dexclamation%2Dsign%3Abefore%7Bcontent%3A%22%5Ce101%22%7D%2Eglyphicon%2Dgift%3Abefore%7Bcontent%3A%22%5Ce102%22%7D%2Eglyphicon%2Dleaf%3Abefore%7Bcontent%3A%22%5Ce103%22%7D%2Eglyphicon%2Dfire%3Abefore%7Bcontent%3A%22%5Ce104%22%7D%2Eglyphicon%2Deye%2Dopen%3Abefore%7Bcontent%3A%22%5Ce105%22%7D%2Eglyphicon%2Deye%2Dclose%3Abefore%7Bcontent%3A%22%5Ce106%22%7D%2Eglyphicon%2Dwarning%2Dsign%3Abefore%7Bcontent%3A%22%5Ce107%22%7D%2Eglyphicon%2Dplane%3Abefore%7Bcontent%3A%22%5Ce108%22%7D%2Eglyphicon%2Dcalendar%3Abefore%7Bcontent%3A%22%5Ce109%22%7D%2Eglyphicon%2Drandom%3Abefore%7Bcontent%3A%22%5Ce110%22%7D%2Eglyphicon%2Dcomment%3Abefore%7Bcontent%3A%22%5Ce111%22%7D%2Eglyphicon%2Dmagnet%3Abefore%7Bcontent%3A%22%5Ce112%22%7D%2Eglyphicon%2Dchevron%2Dup%3Abefore%7Bcontent%3A%22%5Ce113%22%7D%2Eglyphicon%2Dchevron%2Ddown%3Abefore%7Bcontent%3A%22%5Ce114%22%7D%2Eglyphicon%2Dretweet%3Abefore%7Bcontent%3A%22%5Ce115%22%7D%2Eglyphicon%2Dshopping%2Dcart%3Abefore%7Bcontent%3A%22%5Ce116%22%7D%2Eglyphicon%2Dfolder%2Dclose%3Abefore%7Bcontent%3A%22%5Ce117%22%7D%2Eglyphicon%2Dfolder%2Dopen%3Abefore%7Bcontent%3A%22%5Ce118%22%7D%2Eglyphicon%2Dresize%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce119%22%7D%2Eglyphicon%2Dresize%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce120%22%7D%2Eglyphicon%2Dhdd%3Abefore%7Bcontent%3A%22%5Ce121%22%7D%2Eglyphicon%2Dbullhorn%3Abefore%7Bcontent%3A%22%5Ce122%22%7D%2Eglyphicon%2Dbell%3Abefore%7Bcontent%3A%22%5Ce123%22%7D%2Eglyphicon%2Dcertificate%3Abefore%7Bcontent%3A%22%5Ce124%22%7D%2Eglyphicon%2Dthumbs%2Dup%3Abefore%7Bcontent%3A%22%5Ce125%22%7D%2Eglyphicon%2Dthumbs%2Ddown%3Abefore%7Bcontent%3A%22%5Ce126%22%7D%2Eglyphicon%2Dhand%2Dright%3Abefore%7Bcontent%3A%22%5Ce127%22%7D%2Eglyphicon%2Dhand%2Dleft%3Abefore%7Bcontent%3A%22%5Ce128%22%7D%2Eglyphicon%2Dhand%2Dup%3Abefore%7Bcontent%3A%22%5Ce129%22%7D%2Eglyphicon%2Dhand%2Ddown%3Abefore%7Bcontent%3A%22%5Ce130%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dright%3Abefore%7Bcontent%3A%22%5Ce131%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dleft%3Abefore%7Bcontent%3A%22%5Ce132%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Dup%3Abefore%7Bcontent%3A%22%5Ce133%22%7D%2Eglyphicon%2Dcircle%2Darrow%2Ddown%3Abefore%7Bcontent%3A%22%5Ce134%22%7D%2Eglyphicon%2Dglobe%3Abefore%7Bcontent%3A%22%5Ce135%22%7D%2Eglyphicon%2Dwrench%3Abefore%7Bcontent%3A%22%5Ce136%22%7D%2Eglyphicon%2Dtasks%3Abefore%7Bcontent%3A%22%5Ce137%22%7D%2Eglyphicon%2Dfilter%3Abefore%7Bcontent%3A%22%5Ce138%22%7D%2Eglyphicon%2Dbriefcase%3Abefore%7Bcontent%3A%22%5Ce139%22%7D%2Eglyphicon%2Dfullscreen%3Abefore%7Bcontent%3A%22%5Ce140%22%7D%2Eglyphicon%2Ddashboard%3Abefore%7Bcontent%3A%22%5Ce141%22%7D%2Eglyphicon%2Dpaperclip%3Abefore%7Bcontent%3A%22%5Ce142%22%7D%2Eglyphicon%2Dheart%2Dempty%3Abefore%7Bcontent%3A%22%5Ce143%22%7D%2Eglyphicon%2Dlink%3Abefore%7Bcontent%3A%22%5Ce144%22%7D%2Eglyphicon%2Dphone%3Abefore%7Bcontent%3A%22%5Ce145%22%7D%2Eglyphicon%2Dpushpin%3Abefore%7Bcontent%3A%22%5Ce146%22%7D%2Eglyphicon%2Dusd%3Abefore%7Bcontent%3A%22%5Ce148%22%7D%2Eglyphicon%2Dgbp%3Abefore%7Bcontent%3A%22%5Ce149%22%7D%2Eglyphicon%2Dsort%3Abefore%7Bcontent%3A%22%5Ce150%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%3Abefore%7Bcontent%3A%22%5Ce151%22%7D%2Eglyphicon%2Dsort%2Dby%2Dalphabet%2Dalt%3Abefore%7Bcontent%3A%22%5Ce152%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%3Abefore%7Bcontent%3A%22%5Ce153%22%7D%2Eglyphicon%2Dsort%2Dby%2Dorder%2Dalt%3Abefore%7Bcontent%3A%22%5Ce154%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%3Abefore%7Bcontent%3A%22%5Ce155%22%7D%2Eglyphicon%2Dsort%2Dby%2Dattributes%2Dalt%3Abefore%7Bcontent%3A%22%5Ce156%22%7D%2Eglyphicon%2Dunchecked%3Abefore%7Bcontent%3A%22%5Ce157%22%7D%2Eglyphicon%2Dexpand%3Abefore%7Bcontent%3A%22%5Ce158%22%7D%2Eglyphicon%2Dcollapse%2Ddown%3Abefore%7Bcontent%3A%22%5Ce159%22%7D%2Eglyphicon%2Dcollapse%2Dup%3Abefore%7Bcontent%3A%22%5Ce160%22%7D%2Eglyphicon%2Dlog%2Din%3Abefore%7Bcontent%3A%22%5Ce161%22%7D%2Eglyphicon%2Dflash%3Abefore%7Bcontent%3A%22%5Ce162%22%7D%2Eglyphicon%2Dlog%2Dout%3Abefore%7Bcontent%3A%22%5Ce163%22%7D%2Eglyphicon%2Dnew%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce164%22%7D%2Eglyphicon%2Drecord%3Abefore%7Bcontent%3A%22%5Ce165%22%7D%2Eglyphicon%2Dsave%3Abefore%7Bcontent%3A%22%5Ce166%22%7D%2Eglyphicon%2Dopen%3Abefore%7Bcontent%3A%22%5Ce167%22%7D%2Eglyphicon%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce168%22%7D%2Eglyphicon%2Dimport%3Abefore%7Bcontent%3A%22%5Ce169%22%7D%2Eglyphicon%2Dexport%3Abefore%7Bcontent%3A%22%5Ce170%22%7D%2Eglyphicon%2Dsend%3Abefore%7Bcontent%3A%22%5Ce171%22%7D%2Eglyphicon%2Dfloppy%2Ddisk%3Abefore%7Bcontent%3A%22%5Ce172%22%7D%2Eglyphicon%2Dfloppy%2Dsaved%3Abefore%7Bcontent%3A%22%5Ce173%22%7D%2Eglyphicon%2Dfloppy%2Dremove%3Abefore%7Bcontent%3A%22%5Ce174%22%7D%2Eglyphicon%2Dfloppy%2Dsave%3Abefore%7Bcontent%3A%22%5Ce175%22%7D%2Eglyphicon%2Dfloppy%2Dopen%3Abefore%7Bcontent%3A%22%5Ce176%22%7D%2Eglyphicon%2Dcredit%2Dcard%3Abefore%7Bcontent%3A%22%5Ce177%22%7D%2Eglyphicon%2Dtransfer%3Abefore%7Bcontent%3A%22%5Ce178%22%7D%2Eglyphicon%2Dcutlery%3Abefore%7Bcontent%3A%22%5Ce179%22%7D%2Eglyphicon%2Dheader%3Abefore%7Bcontent%3A%22%5Ce180%22%7D%2Eglyphicon%2Dcompressed%3Abefore%7Bcontent%3A%22%5Ce181%22%7D%2Eglyphicon%2Dearphone%3Abefore%7Bcontent%3A%22%5Ce182%22%7D%2Eglyphicon%2Dphone%2Dalt%3Abefore%7Bcontent%3A%22%5Ce183%22%7D%2Eglyphicon%2Dtower%3Abefore%7Bcontent%3A%22%5Ce184%22%7D%2Eglyphicon%2Dstats%3Abefore%7Bcontent%3A%22%5Ce185%22%7D%2Eglyphicon%2Dsd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce186%22%7D%2Eglyphicon%2Dhd%2Dvideo%3Abefore%7Bcontent%3A%22%5Ce187%22%7D%2Eglyphicon%2Dsubtitles%3Abefore%7Bcontent%3A%22%5Ce188%22%7D%2Eglyphicon%2Dsound%2Dstereo%3Abefore%7Bcontent%3A%22%5Ce189%22%7D%2Eglyphicon%2Dsound%2Ddolby%3Abefore%7Bcontent%3A%22%5Ce190%22%7D%2Eglyphicon%2Dsound%2D5%2D1%3Abefore%7Bcontent%3A%22%5Ce191%22%7D%2Eglyphicon%2Dsound%2D6%2D1%3Abefore%7Bcontent%3A%22%5Ce192%22%7D%2Eglyphicon%2Dsound%2D7%2D1%3Abefore%7Bcontent%3A%22%5Ce193%22%7D%2Eglyphicon%2Dcopyright%2Dmark%3Abefore%7Bcontent%3A%22%5Ce194%22%7D%2Eglyphicon%2Dregistration%2Dmark%3Abefore%7Bcontent%3A%22%5Ce195%22%7D%2Eglyphicon%2Dcloud%2Ddownload%3Abefore%7Bcontent%3A%22%5Ce197%22%7D%2Eglyphicon%2Dcloud%2Dupload%3Abefore%7Bcontent%3A%22%5Ce198%22%7D%2Eglyphicon%2Dtree%2Dconifer%3Abefore%7Bcontent%3A%22%5Ce199%22%7D%2Eglyphicon%2Dtree%2Ddeciduous%3Abefore%7Bcontent%3A%22%5Ce200%22%7D%2Eglyphicon%2Dcd%3Abefore%7Bcontent%3A%22%5Ce201%22%7D%2Eglyphicon%2Dsave%2Dfile%3Abefore%7Bcontent%3A%22%5Ce202%22%7D%2Eglyphicon%2Dopen%2Dfile%3Abefore%7Bcontent%3A%22%5Ce203%22%7D%2Eglyphicon%2Dlevel%2Dup%3Abefore%7Bcontent%3A%22%5Ce204%22%7D%2Eglyphicon%2Dcopy%3Abefore%7Bcontent%3A%22%5Ce205%22%7D%2Eglyphicon%2Dpaste%3Abefore%7Bcontent%3A%22%5Ce206%22%7D%2Eglyphicon%2Dalert%3Abefore%7Bcontent%3A%22%5Ce209%22%7D%2Eglyphicon%2Dequalizer%3Abefore%7Bcontent%3A%22%5Ce210%22%7D%2Eglyphicon%2Dking%3Abefore%7Bcontent%3A%22%5Ce211%22%7D%2Eglyphicon%2Dqueen%3Abefore%7Bcontent%3A%22%5Ce212%22%7D%2Eglyphicon%2Dpawn%3Abefore%7Bcontent%3A%22%5Ce213%22%7D%2Eglyphicon%2Dbishop%3Abefore%7Bcontent%3A%22%5Ce214%22%7D%2Eglyphicon%2Dknight%3Abefore%7Bcontent%3A%22%5Ce215%22%7D%2Eglyphicon%2Dbaby%2Dformula%3Abefore%7Bcontent%3A%22%5Ce216%22%7D%2Eglyphicon%2Dtent%3Abefore%7Bcontent%3A%22%5C26fa%22%7D%2Eglyphicon%2Dblackboard%3Abefore%7Bcontent%3A%22%5Ce218%22%7D%2Eglyphicon%2Dbed%3Abefore%7Bcontent%3A%22%5Ce219%22%7D%2Eglyphicon%2Dapple%3Abefore%7Bcontent%3A%22%5Cf8ff%22%7D%2Eglyphicon%2Derase%3Abefore%7Bcontent%3A%22%5Ce221%22%7D%2Eglyphicon%2Dhourglass%3Abefore%7Bcontent%3A%22%5C231b%22%7D%2Eglyphicon%2Dlamp%3Abefore%7Bcontent%3A%22%5Ce223%22%7D%2Eglyphicon%2Dduplicate%3Abefore%7Bcontent%3A%22%5Ce224%22%7D%2Eglyphicon%2Dpiggy%2Dbank%3Abefore%7Bcontent%3A%22%5Ce225%22%7D%2Eglyphicon%2Dscissors%3Abefore%7Bcontent%3A%22%5Ce226%22%7D%2Eglyphicon%2Dbitcoin%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dbtc%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dxbt%3Abefore%7Bcontent%3A%22%5Ce227%22%7D%2Eglyphicon%2Dyen%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Djpy%3Abefore%7Bcontent%3A%22%5C00a5%22%7D%2Eglyphicon%2Druble%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Drub%3Abefore%7Bcontent%3A%22%5C20bd%22%7D%2Eglyphicon%2Dscale%3Abefore%7Bcontent%3A%22%5Ce230%22%7D%2Eglyphicon%2Dice%2Dlolly%3Abefore%7Bcontent%3A%22%5Ce231%22%7D%2Eglyphicon%2Dice%2Dlolly%2Dtasted%3Abefore%7Bcontent%3A%22%5Ce232%22%7D%2Eglyphicon%2Deducation%3Abefore%7Bcontent%3A%22%5Ce233%22%7D%2Eglyphicon%2Doption%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce234%22%7D%2Eglyphicon%2Doption%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce235%22%7D%2Eglyphicon%2Dmenu%2Dhamburger%3Abefore%7Bcontent%3A%22%5Ce236%22%7D%2Eglyphicon%2Dmodal%2Dwindow%3Abefore%7Bcontent%3A%22%5Ce237%22%7D%2Eglyphicon%2Doil%3Abefore%7Bcontent%3A%22%5Ce238%22%7D%2Eglyphicon%2Dgrain%3Abefore%7Bcontent%3A%22%5Ce239%22%7D%2Eglyphicon%2Dsunglasses%3Abefore%7Bcontent%3A%22%5Ce240%22%7D%2Eglyphicon%2Dtext%2Dsize%3Abefore%7Bcontent%3A%22%5Ce241%22%7D%2Eglyphicon%2Dtext%2Dcolor%3Abefore%7Bcontent%3A%22%5Ce242%22%7D%2Eglyphicon%2Dtext%2Dbackground%3Abefore%7Bcontent%3A%22%5Ce243%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dtop%3Abefore%7Bcontent%3A%22%5Ce244%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce245%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dhorizontal%3Abefore%7Bcontent%3A%22%5Ce246%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dleft%3Abefore%7Bcontent%3A%22%5Ce247%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dvertical%3Abefore%7Bcontent%3A%22%5Ce248%22%7D%2Eglyphicon%2Dobject%2Dalign%2Dright%3Abefore%7Bcontent%3A%22%5Ce249%22%7D%2Eglyphicon%2Dtriangle%2Dright%3Abefore%7Bcontent%3A%22%5Ce250%22%7D%2Eglyphicon%2Dtriangle%2Dleft%3Abefore%7Bcontent%3A%22%5Ce251%22%7D%2Eglyphicon%2Dtriangle%2Dbottom%3Abefore%7Bcontent%3A%22%5Ce252%22%7D%2Eglyphicon%2Dtriangle%2Dtop%3Abefore%7Bcontent%3A%22%5Ce253%22%7D%2Eglyphicon%2Dconsole%3Abefore%7Bcontent%3A%22%5Ce254%22%7D%2Eglyphicon%2Dsuperscript%3Abefore%7Bcontent%3A%22%5Ce255%22%7D%2Eglyphicon%2Dsubscript%3Abefore%7Bcontent%3A%22%5Ce256%22%7D%2Eglyphicon%2Dmenu%2Dleft%3Abefore%7Bcontent%3A%22%5Ce257%22%7D%2Eglyphicon%2Dmenu%2Dright%3Abefore%7Bcontent%3A%22%5Ce258%22%7D%2Eglyphicon%2Dmenu%2Ddown%3Abefore%7Bcontent%3A%22%5Ce259%22%7D%2Eglyphicon%2Dmenu%2Dup%3Abefore%7Bcontent%3A%22%5Ce260%22%7D%2A%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7D%3Aafter%2C%3Abefore%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dhtml%7Bfont%2Dsize%3A10px%3B%2Dwebkit%2Dtap%2Dhighlight%2Dcolor%3Argba%280%2C0%2C0%2C0%29%7Dbody%7Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23fff%7Dbutton%2Cinput%2Cselect%2Ctextarea%7Bfont%2Dfamily%3Ainherit%3Bfont%2Dsize%3Ainherit%3Bline%2Dheight%3Ainherit%7Da%7Bcolor%3A%23337ab7%3Btext%2Ddecoration%3Anone%7Da%3Afocus%2Ca%3Ahover%7Bcolor%3A%2323527c%3Btext%2Ddecoration%3Aunderline%7Da%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Dfigure%7Bmargin%3A0%7Dimg%7Bvertical%2Dalign%3Amiddle%7D%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%2C%2Eimg%2Dresponsive%2C%2Ethumbnail%20a%3Eimg%2C%2Ethumbnail%3Eimg%7Bdisplay%3Ablock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%7D%2Eimg%2Drounded%7Bborder%2Dradius%3A6px%7D%2Eimg%2Dthumbnail%7Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bheight%3Aauto%3Bpadding%3A4px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aall%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aall%20%2E2s%20ease%2Din%2Dout%7D%2Eimg%2Dcircle%7Bborder%2Dradius%3A50%25%7Dhr%7Bmargin%2Dtop%3A20px%3Bmargin%2Dbottom%3A20px%3Bborder%3A0%3Bborder%2Dtop%3A1px%20solid%20%23eee%7D%2Esr%2Donly%7Bposition%3Aabsolute%3Bwidth%3A1px%3Bheight%3A1px%3Bpadding%3A0%3Bmargin%3A%2D1px%3Boverflow%3Ahidden%3Bclip%3Arect%280%2C0%2C0%2C0%29%3Bborder%3A0%7D%2Esr%2Donly%2Dfocusable%3Aactive%2C%2Esr%2Donly%2Dfocusable%3Afocus%7Bposition%3Astatic%3Bwidth%3Aauto%3Bheight%3Aauto%3Bmargin%3A0%3Boverflow%3Avisible%3Bclip%3Aauto%7D%5Brole%3Dbutton%5D%7Bcursor%3Apointer%7D%2Eh1%2C%2Eh2%2C%2Eh3%2C%2Eh4%2C%2Eh5%2C%2Eh6%2Ch1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%7Bfont%2Dfamily%3Ainherit%3Bfont%2Dweight%3A500%3Bline%2Dheight%3A1%2E1%3Bcolor%3Ainherit%7D%2Eh1%20%2Esmall%2C%2Eh1%20small%2C%2Eh2%20%2Esmall%2C%2Eh2%20small%2C%2Eh3%20%2Esmall%2C%2Eh3%20small%2C%2Eh4%20%2Esmall%2C%2Eh4%20small%2C%2Eh5%20%2Esmall%2C%2Eh5%20small%2C%2Eh6%20%2Esmall%2C%2Eh6%20small%2Ch1%20%2Esmall%2Ch1%20small%2Ch2%20%2Esmall%2Ch2%20small%2Ch3%20%2Esmall%2Ch3%20small%2Ch4%20%2Esmall%2Ch4%20small%2Ch5%20%2Esmall%2Ch5%20small%2Ch6%20%2Esmall%2Ch6%20small%7Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%3Bcolor%3A%23777%7D%2Eh1%2C%2Eh2%2C%2Eh3%2Ch1%2Ch2%2Ch3%7Bmargin%2Dtop%3A20px%3Bmargin%2Dbottom%3A10px%7D%2Eh1%20%2Esmall%2C%2Eh1%20small%2C%2Eh2%20%2Esmall%2C%2Eh2%20small%2C%2Eh3%20%2Esmall%2C%2Eh3%20small%2Ch1%20%2Esmall%2Ch1%20small%2Ch2%20%2Esmall%2Ch2%20small%2Ch3%20%2Esmall%2Ch3%20small%7Bfont%2Dsize%3A65%25%7D%2Eh4%2C%2Eh5%2C%2Eh6%2Ch4%2Ch5%2Ch6%7Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Eh4%20%2Esmall%2C%2Eh4%20small%2C%2Eh5%20%2Esmall%2C%2Eh5%20small%2C%2Eh6%20%2Esmall%2C%2Eh6%20small%2Ch4%20%2Esmall%2Ch4%20small%2Ch5%20%2Esmall%2Ch5%20small%2Ch6%20%2Esmall%2Ch6%20small%7Bfont%2Dsize%3A75%25%7D%2Eh1%2Ch1%7Bfont%2Dsize%3A36px%7D%2Eh2%2Ch2%7Bfont%2Dsize%3A30px%7D%2Eh3%2Ch3%7Bfont%2Dsize%3A24px%7D%2Eh4%2Ch4%7Bfont%2Dsize%3A18px%7D%2Eh5%2Ch5%7Bfont%2Dsize%3A14px%7D%2Eh6%2Ch6%7Bfont%2Dsize%3A12px%7Dp%7Bmargin%3A0%200%2010px%7D%2Elead%7Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A16px%3Bfont%2Dweight%3A300%3Bline%2Dheight%3A1%2E4%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Elead%7Bfont%2Dsize%3A21px%7D%7D%2Esmall%2Csmall%7Bfont%2Dsize%3A85%25%7D%2Emark%2Cmark%7Bpadding%3A%2E2em%3Bbackground%2Dcolor%3A%23fcf8e3%7D%2Etext%2Dleft%7Btext%2Dalign%3Aleft%7D%2Etext%2Dright%7Btext%2Dalign%3Aright%7D%2Etext%2Dcenter%7Btext%2Dalign%3Acenter%7D%2Etext%2Djustify%7Btext%2Dalign%3Ajustify%7D%2Etext%2Dnowrap%7Bwhite%2Dspace%3Anowrap%7D%2Etext%2Dlowercase%7Btext%2Dtransform%3Alowercase%7D%2Etext%2Duppercase%7Btext%2Dtransform%3Auppercase%7D%2Etext%2Dcapitalize%7Btext%2Dtransform%3Acapitalize%7D%2Etext%2Dmuted%7Bcolor%3A%23777%7D%2Etext%2Dprimary%7Bcolor%3A%23337ab7%7Da%2Etext%2Dprimary%3Afocus%2Ca%2Etext%2Dprimary%3Ahover%7Bcolor%3A%23286090%7D%2Etext%2Dsuccess%7Bcolor%3A%233c763d%7Da%2Etext%2Dsuccess%3Afocus%2Ca%2Etext%2Dsuccess%3Ahover%7Bcolor%3A%232b542c%7D%2Etext%2Dinfo%7Bcolor%3A%2331708f%7Da%2Etext%2Dinfo%3Afocus%2Ca%2Etext%2Dinfo%3Ahover%7Bcolor%3A%23245269%7D%2Etext%2Dwarning%7Bcolor%3A%238a6d3b%7Da%2Etext%2Dwarning%3Afocus%2Ca%2Etext%2Dwarning%3Ahover%7Bcolor%3A%2366512c%7D%2Etext%2Ddanger%7Bcolor%3A%23a94442%7Da%2Etext%2Ddanger%3Afocus%2Ca%2Etext%2Ddanger%3Ahover%7Bcolor%3A%23843534%7D%2Ebg%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%7Da%2Ebg%2Dprimary%3Afocus%2Ca%2Ebg%2Dprimary%3Ahover%7Bbackground%2Dcolor%3A%23286090%7D%2Ebg%2Dsuccess%7Bbackground%2Dcolor%3A%23dff0d8%7Da%2Ebg%2Dsuccess%3Afocus%2Ca%2Ebg%2Dsuccess%3Ahover%7Bbackground%2Dcolor%3A%23c1e2b3%7D%2Ebg%2Dinfo%7Bbackground%2Dcolor%3A%23d9edf7%7Da%2Ebg%2Dinfo%3Afocus%2Ca%2Ebg%2Dinfo%3Ahover%7Bbackground%2Dcolor%3A%23afd9ee%7D%2Ebg%2Dwarning%7Bbackground%2Dcolor%3A%23fcf8e3%7Da%2Ebg%2Dwarning%3Afocus%2Ca%2Ebg%2Dwarning%3Ahover%7Bbackground%2Dcolor%3A%23f7ecb5%7D%2Ebg%2Ddanger%7Bbackground%2Dcolor%3A%23f2dede%7Da%2Ebg%2Ddanger%3Afocus%2Ca%2Ebg%2Ddanger%3Ahover%7Bbackground%2Dcolor%3A%23e4b9b9%7D%2Epage%2Dheader%7Bpadding%2Dbottom%3A9px%3Bmargin%3A40px%200%2020px%3Bborder%2Dbottom%3A1px%20solid%20%23eee%7Dol%2Cul%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A10px%7Dol%20ol%2Col%20ul%2Cul%20ol%2Cul%20ul%7Bmargin%2Dbottom%3A0%7D%2Elist%2Dunstyled%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dinline%7Bpadding%2Dleft%3A0%3Bmargin%2Dleft%3A%2D5px%3Blist%2Dstyle%3Anone%7D%2Elist%2Dinline%3Eli%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dright%3A5px%3Bpadding%2Dleft%3A5px%7Ddl%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A20px%7Ddd%2Cdt%7Bline%2Dheight%3A1%2E42857143%7Ddt%7Bfont%2Dweight%3A700%7Ddd%7Bmargin%2Dleft%3A0%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Edl%2Dhorizontal%20dt%7Bfloat%3Aleft%3Bwidth%3A160px%3Boverflow%3Ahidden%3Bclear%3Aleft%3Btext%2Dalign%3Aright%3Btext%2Doverflow%3Aellipsis%3Bwhite%2Dspace%3Anowrap%7D%2Edl%2Dhorizontal%20dd%7Bmargin%2Dleft%3A180px%7D%7Dabbr%5Bdata%2Doriginal%2Dtitle%5D%2Cabbr%5Btitle%5D%7Bcursor%3Ahelp%3Bborder%2Dbottom%3A1px%20dotted%20%23777%7D%2Einitialism%7Bfont%2Dsize%3A90%25%3Btext%2Dtransform%3Auppercase%7Dblockquote%7Bpadding%3A10px%2020px%3Bmargin%3A0%200%2020px%3Bfont%2Dsize%3A17%2E5px%3Bborder%2Dleft%3A5px%20solid%20%23eee%7Dblockquote%20ol%3Alast%2Dchild%2Cblockquote%20p%3Alast%2Dchild%2Cblockquote%20ul%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7Dblockquote%20%2Esmall%2Cblockquote%20footer%2Cblockquote%20small%7Bdisplay%3Ablock%3Bfont%2Dsize%3A80%25%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23777%7Dblockquote%20%2Esmall%3Abefore%2Cblockquote%20footer%3Abefore%2Cblockquote%20small%3Abefore%7Bcontent%3A%27%5C2014%20%5C00A0%27%7D%2Eblockquote%2Dreverse%2Cblockquote%2Epull%2Dright%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A0%3Btext%2Dalign%3Aright%3Bborder%2Dright%3A5px%20solid%20%23eee%3Bborder%2Dleft%3A0%7D%2Eblockquote%2Dreverse%20%2Esmall%3Abefore%2C%2Eblockquote%2Dreverse%20footer%3Abefore%2C%2Eblockquote%2Dreverse%20small%3Abefore%2Cblockquote%2Epull%2Dright%20%2Esmall%3Abefore%2Cblockquote%2Epull%2Dright%20footer%3Abefore%2Cblockquote%2Epull%2Dright%20small%3Abefore%7Bcontent%3A%27%27%7D%2Eblockquote%2Dreverse%20%2Esmall%3Aafter%2C%2Eblockquote%2Dreverse%20footer%3Aafter%2C%2Eblockquote%2Dreverse%20small%3Aafter%2Cblockquote%2Epull%2Dright%20%2Esmall%3Aafter%2Cblockquote%2Epull%2Dright%20footer%3Aafter%2Cblockquote%2Epull%2Dright%20small%3Aafter%7Bcontent%3A%27%5C00A0%20%5C2014%27%7Daddress%7Bmargin%2Dbottom%3A20px%3Bfont%2Dstyle%3Anormal%3Bline%2Dheight%3A1%2E42857143%7Dcode%2Ckbd%2Cpre%2Csamp%7Bfont%2Dfamily%3Amonospace%7Dcode%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23c7254e%3Bbackground%2Dcolor%3A%23f9f2f4%3Bborder%2Dradius%3A4px%7Dkbd%7Bpadding%3A2px%204px%3Bfont%2Dsize%3A90%25%3Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23333%3Bborder%2Dradius%3A3px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C%2E25%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C%2E25%29%7Dkbd%20kbd%7Bpadding%3A0%3Bfont%2Dsize%3A100%25%3Bfont%2Dweight%3A700%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7Dpre%7Bdisplay%3Ablock%3Bpadding%3A9%2E5px%3Bmargin%3A0%200%2010px%3Bfont%2Dsize%3A13px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333%3Bword%2Dbreak%3Abreak%2Dall%3Bword%2Dwrap%3Abreak%2Dword%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23ccc%3Bborder%2Dradius%3A4px%7Dpre%20code%7Bpadding%3A0%3Bfont%2Dsize%3Ainherit%3Bcolor%3Ainherit%3Bwhite%2Dspace%3Apre%2Dwrap%3Bbackground%2Dcolor%3Atransparent%3Bborder%2Dradius%3A0%7D%2Epre%2Dscrollable%7Bmax%2Dheight%3A340px%3Boverflow%2Dy%3Ascroll%7D%2Econtainer%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%7Bwidth%3A750px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Econtainer%7Bwidth%3A970px%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Econtainer%7Bwidth%3A1170px%7D%7D%2Econtainer%2Dfluid%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7D%2Erow%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%2Ecol%2Dlg%2D1%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dlg%2D12%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dlg%2D9%2C%2Ecol%2Dmd%2D1%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dmd%2D12%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dmd%2D9%2C%2Ecol%2Dsm%2D1%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dsm%2D12%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dsm%2D9%2C%2Ecol%2Dxs%2D1%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dxs%2D12%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dxs%2D9%7Bposition%3Arelative%3Bmin%2Dheight%3A1px%3Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%7D%2Ecol%2Dxs%2D1%2C%2Ecol%2Dxs%2D10%2C%2Ecol%2Dxs%2D11%2C%2Ecol%2Dxs%2D12%2C%2Ecol%2Dxs%2D2%2C%2Ecol%2Dxs%2D3%2C%2Ecol%2Dxs%2D4%2C%2Ecol%2Dxs%2D5%2C%2Ecol%2Dxs%2D6%2C%2Ecol%2Dxs%2D7%2C%2Ecol%2Dxs%2D8%2C%2Ecol%2Dxs%2D9%7Bfloat%3Aleft%7D%2Ecol%2Dxs%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dxs%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dxs%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dxs%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dxs%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dxs%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dxs%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dxs%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dxs%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dxs%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dxs%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dxs%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dxs%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dxs%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dxs%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dxs%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dxs%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dxs%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dxs%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dxs%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dxs%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dxs%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dxs%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dxs%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dxs%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dxs%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dxs%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dxs%2Doffset%2D0%7Bmargin%2Dleft%3A0%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Ecol%2Dsm%2D1%2C%2Ecol%2Dsm%2D10%2C%2Ecol%2Dsm%2D11%2C%2Ecol%2Dsm%2D12%2C%2Ecol%2Dsm%2D2%2C%2Ecol%2Dsm%2D3%2C%2Ecol%2Dsm%2D4%2C%2Ecol%2Dsm%2D5%2C%2Ecol%2Dsm%2D6%2C%2Ecol%2Dsm%2D7%2C%2Ecol%2Dsm%2D8%2C%2Ecol%2Dsm%2D9%7Bfloat%3Aleft%7D%2Ecol%2Dsm%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dsm%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dsm%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dsm%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dsm%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dsm%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dsm%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dsm%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dsm%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dsm%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dsm%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dsm%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dsm%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dsm%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dsm%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dsm%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dsm%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dsm%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dsm%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dsm%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dsm%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dsm%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dsm%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dsm%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dsm%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dsm%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dsm%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dsm%2Doffset%2D0%7Bmargin%2Dleft%3A0%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Ecol%2Dmd%2D1%2C%2Ecol%2Dmd%2D10%2C%2Ecol%2Dmd%2D11%2C%2Ecol%2Dmd%2D12%2C%2Ecol%2Dmd%2D2%2C%2Ecol%2Dmd%2D3%2C%2Ecol%2Dmd%2D4%2C%2Ecol%2Dmd%2D5%2C%2Ecol%2Dmd%2D6%2C%2Ecol%2Dmd%2D7%2C%2Ecol%2Dmd%2D8%2C%2Ecol%2Dmd%2D9%7Bfloat%3Aleft%7D%2Ecol%2Dmd%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dmd%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dmd%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dmd%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dmd%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dmd%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dmd%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dmd%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dmd%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dmd%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dmd%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dmd%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dmd%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dmd%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dmd%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dmd%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dmd%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dmd%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dmd%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dmd%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dmd%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dmd%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dmd%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dmd%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dmd%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dmd%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dmd%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dmd%2Doffset%2D0%7Bmargin%2Dleft%3A0%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ecol%2Dlg%2D1%2C%2Ecol%2Dlg%2D10%2C%2Ecol%2Dlg%2D11%2C%2Ecol%2Dlg%2D12%2C%2Ecol%2Dlg%2D2%2C%2Ecol%2Dlg%2D3%2C%2Ecol%2Dlg%2D4%2C%2Ecol%2Dlg%2D5%2C%2Ecol%2Dlg%2D6%2C%2Ecol%2Dlg%2D7%2C%2Ecol%2Dlg%2D8%2C%2Ecol%2Dlg%2D9%7Bfloat%3Aleft%7D%2Ecol%2Dlg%2D12%7Bwidth%3A100%25%7D%2Ecol%2Dlg%2D11%7Bwidth%3A91%2E66666667%25%7D%2Ecol%2Dlg%2D10%7Bwidth%3A83%2E33333333%25%7D%2Ecol%2Dlg%2D9%7Bwidth%3A75%25%7D%2Ecol%2Dlg%2D8%7Bwidth%3A66%2E66666667%25%7D%2Ecol%2Dlg%2D7%7Bwidth%3A58%2E33333333%25%7D%2Ecol%2Dlg%2D6%7Bwidth%3A50%25%7D%2Ecol%2Dlg%2D5%7Bwidth%3A41%2E66666667%25%7D%2Ecol%2Dlg%2D4%7Bwidth%3A33%2E33333333%25%7D%2Ecol%2Dlg%2D3%7Bwidth%3A25%25%7D%2Ecol%2Dlg%2D2%7Bwidth%3A16%2E66666667%25%7D%2Ecol%2Dlg%2D1%7Bwidth%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D12%7Bright%3A100%25%7D%2Ecol%2Dlg%2Dpull%2D11%7Bright%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D10%7Bright%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D9%7Bright%3A75%25%7D%2Ecol%2Dlg%2Dpull%2D8%7Bright%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D7%7Bright%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D6%7Bright%3A50%25%7D%2Ecol%2Dlg%2Dpull%2D5%7Bright%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D4%7Bright%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D3%7Bright%3A25%25%7D%2Ecol%2Dlg%2Dpull%2D2%7Bright%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpull%2D1%7Bright%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpull%2D0%7Bright%3Aauto%7D%2Ecol%2Dlg%2Dpush%2D12%7Bleft%3A100%25%7D%2Ecol%2Dlg%2Dpush%2D11%7Bleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D10%7Bleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D9%7Bleft%3A75%25%7D%2Ecol%2Dlg%2Dpush%2D8%7Bleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D7%7Bleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D6%7Bleft%3A50%25%7D%2Ecol%2Dlg%2Dpush%2D5%7Bleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D4%7Bleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D3%7Bleft%3A25%25%7D%2Ecol%2Dlg%2Dpush%2D2%7Bleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Dpush%2D1%7Bleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Dpush%2D0%7Bleft%3Aauto%7D%2Ecol%2Dlg%2Doffset%2D12%7Bmargin%2Dleft%3A100%25%7D%2Ecol%2Dlg%2Doffset%2D11%7Bmargin%2Dleft%3A91%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D10%7Bmargin%2Dleft%3A83%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D9%7Bmargin%2Dleft%3A75%25%7D%2Ecol%2Dlg%2Doffset%2D8%7Bmargin%2Dleft%3A66%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D7%7Bmargin%2Dleft%3A58%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D6%7Bmargin%2Dleft%3A50%25%7D%2Ecol%2Dlg%2Doffset%2D5%7Bmargin%2Dleft%3A41%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D4%7Bmargin%2Dleft%3A33%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D3%7Bmargin%2Dleft%3A25%25%7D%2Ecol%2Dlg%2Doffset%2D2%7Bmargin%2Dleft%3A16%2E66666667%25%7D%2Ecol%2Dlg%2Doffset%2D1%7Bmargin%2Dleft%3A8%2E33333333%25%7D%2Ecol%2Dlg%2Doffset%2D0%7Bmargin%2Dleft%3A0%7D%7Dtable%7Bbackground%2Dcolor%3Atransparent%7Dcaption%7Bpadding%2Dtop%3A8px%3Bpadding%2Dbottom%3A8px%3Bcolor%3A%23777%3Btext%2Dalign%3Aleft%7Dth%7B%7D%2Etable%7Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A20px%7D%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2C%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%3Ethead%3Etr%3Eth%7Bpadding%3A8px%3Bline%2Dheight%3A1%2E42857143%3Bvertical%2Dalign%3Atop%3Bborder%2Dtop%3A1px%20solid%20%23ddd%7D%2Etable%3Ethead%3Etr%3Eth%7Bvertical%2Dalign%3Abottom%3Bborder%2Dbottom%3A2px%20solid%20%23ddd%7D%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ecaption%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ecolgroup%2Bthead%3Etr%3Afirst%2Dchild%3Eth%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Etd%2C%2Etable%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%3Eth%7Bborder%2Dtop%3A0%7D%2Etable%3Etbody%2Btbody%7Bborder%2Dtop%3A2px%20solid%20%23ddd%7D%2Etable%20%2Etable%7Bbackground%2Dcolor%3A%23fff%7D%2Etable%2Dcondensed%3Etbody%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etbody%3Etr%3Eth%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Etd%2C%2Etable%2Dcondensed%3Etfoot%3Etr%3Eth%2C%2Etable%2Dcondensed%3Ethead%3Etr%3Etd%2C%2Etable%2Dcondensed%3Ethead%3Etr%3Eth%7Bpadding%3A5px%7D%2Etable%2Dbordered%7Bborder%3A1px%20solid%20%23ddd%7D%2Etable%2Dbordered%3Etbody%3Etr%3Etd%2C%2Etable%2Dbordered%3Etbody%3Etr%3Eth%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%2C%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%2C%2Etable%2Dbordered%3Ethead%3Etr%3Etd%2C%2Etable%2Dbordered%3Ethead%3Etr%3Eth%7Bborder%3A1px%20solid%20%23ddd%7D%2Etable%2Dbordered%3Ethead%3Etr%3Etd%2C%2Etable%2Dbordered%3Ethead%3Etr%3Eth%7Bborder%2Dbottom%2Dwidth%3A2px%7D%2Etable%2Dstriped%3Etbody%3Etr%3Anth%2Dof%2Dtype%28odd%29%7Bbackground%2Dcolor%3A%23f9f9f9%7D%2Etable%2Dhover%3Etbody%3Etr%3Ahover%7Bbackground%2Dcolor%3A%23f5f5f5%7Dtable%20col%5Bclass%2A%3Dcol%2D%5D%7Bposition%3Astatic%3Bdisplay%3Atable%2Dcolumn%3Bfloat%3Anone%7Dtable%20td%5Bclass%2A%3Dcol%2D%5D%2Ctable%20th%5Bclass%2A%3Dcol%2D%5D%7Bposition%3Astatic%3Bdisplay%3Atable%2Dcell%3Bfloat%3Anone%7D%2Etable%3Etbody%3Etr%2Eactive%3Etd%2C%2Etable%3Etbody%3Etr%2Eactive%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Eactive%2C%2Etable%3Etbody%3Etr%3Eth%2Eactive%2C%2Etable%3Etfoot%3Etr%2Eactive%3Etd%2C%2Etable%3Etfoot%3Etr%2Eactive%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Eactive%2C%2Etable%3Etfoot%3Etr%3Eth%2Eactive%2C%2Etable%3Ethead%3Etr%2Eactive%3Etd%2C%2Etable%3Ethead%3Etr%2Eactive%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Eactive%2C%2Etable%3Ethead%3Etr%3Eth%2Eactive%7Bbackground%2Dcolor%3A%23f5f5f5%7D%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Eactive%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Eactive%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Eactive%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Eactive%3Ahover%7Bbackground%2Dcolor%3A%23e8e8e8%7D%2Etable%3Etbody%3Etr%2Esuccess%3Etd%2C%2Etable%3Etbody%3Etr%2Esuccess%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Esuccess%2C%2Etable%3Etbody%3Etr%3Eth%2Esuccess%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Etd%2C%2Etable%3Etfoot%3Etr%2Esuccess%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Esuccess%2C%2Etable%3Etfoot%3Etr%3Eth%2Esuccess%2C%2Etable%3Ethead%3Etr%2Esuccess%3Etd%2C%2Etable%3Ethead%3Etr%2Esuccess%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Esuccess%2C%2Etable%3Ethead%3Etr%3Eth%2Esuccess%7Bbackground%2Dcolor%3A%23dff0d8%7D%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Esuccess%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Esuccess%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Esuccess%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Esuccess%3Ahover%7Bbackground%2Dcolor%3A%23d0e9c6%7D%2Etable%3Etbody%3Etr%2Einfo%3Etd%2C%2Etable%3Etbody%3Etr%2Einfo%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Einfo%2C%2Etable%3Etbody%3Etr%3Eth%2Einfo%2C%2Etable%3Etfoot%3Etr%2Einfo%3Etd%2C%2Etable%3Etfoot%3Etr%2Einfo%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Einfo%2C%2Etable%3Etfoot%3Etr%3Eth%2Einfo%2C%2Etable%3Ethead%3Etr%2Einfo%3Etd%2C%2Etable%3Ethead%3Etr%2Einfo%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Einfo%2C%2Etable%3Ethead%3Etr%3Eth%2Einfo%7Bbackground%2Dcolor%3A%23d9edf7%7D%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Einfo%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Einfo%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Einfo%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Einfo%3Ahover%7Bbackground%2Dcolor%3A%23c4e3f3%7D%2Etable%3Etbody%3Etr%2Ewarning%3Etd%2C%2Etable%3Etbody%3Etr%2Ewarning%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Ewarning%2C%2Etable%3Etbody%3Etr%3Eth%2Ewarning%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Etd%2C%2Etable%3Etfoot%3Etr%2Ewarning%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Ewarning%2C%2Etable%3Etfoot%3Etr%3Eth%2Ewarning%2C%2Etable%3Ethead%3Etr%2Ewarning%3Etd%2C%2Etable%3Ethead%3Etr%2Ewarning%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Ewarning%2C%2Etable%3Ethead%3Etr%3Eth%2Ewarning%7Bbackground%2Dcolor%3A%23fcf8e3%7D%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Ewarning%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Ewarning%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Ewarning%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Ewarning%3Ahover%7Bbackground%2Dcolor%3A%23faf2cc%7D%2Etable%3Etbody%3Etr%2Edanger%3Etd%2C%2Etable%3Etbody%3Etr%2Edanger%3Eth%2C%2Etable%3Etbody%3Etr%3Etd%2Edanger%2C%2Etable%3Etbody%3Etr%3Eth%2Edanger%2C%2Etable%3Etfoot%3Etr%2Edanger%3Etd%2C%2Etable%3Etfoot%3Etr%2Edanger%3Eth%2C%2Etable%3Etfoot%3Etr%3Etd%2Edanger%2C%2Etable%3Etfoot%3Etr%3Eth%2Edanger%2C%2Etable%3Ethead%3Etr%2Edanger%3Etd%2C%2Etable%3Ethead%3Etr%2Edanger%3Eth%2C%2Etable%3Ethead%3Etr%3Etd%2Edanger%2C%2Etable%3Ethead%3Etr%3Eth%2Edanger%7Bbackground%2Dcolor%3A%23f2dede%7D%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Etd%2C%2Etable%2Dhover%3Etbody%3Etr%2Edanger%3Ahover%3Eth%2C%2Etable%2Dhover%3Etbody%3Etr%3Ahover%3E%2Edanger%2C%2Etable%2Dhover%3Etbody%3Etr%3Etd%2Edanger%3Ahover%2C%2Etable%2Dhover%3Etbody%3Etr%3Eth%2Edanger%3Ahover%7Bbackground%2Dcolor%3A%23ebcccc%7D%2Etable%2Dresponsive%7Bmin%2Dheight%3A%2E01%25%3Boverflow%2Dx%3Aauto%7D%40media%20screen%20and%20%28max%2Dwidth%3A767px%29%7B%2Etable%2Dresponsive%7Bwidth%3A100%25%3Bmargin%2Dbottom%3A15px%3Boverflow%2Dy%3Ahidden%3B%2Dms%2Doverflow%2Dstyle%3A%2Dms%2Dautohiding%2Dscrollbar%3Bborder%3A1px%20solid%20%23ddd%7D%2Etable%2Dresponsive%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etbody%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Etfoot%3Etr%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%3Ethead%3Etr%3Eth%7Bwhite%2Dspace%3Anowrap%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%7Dfieldset%7Bmin%2Dwidth%3A0%3Bpadding%3A0%3Bmargin%3A0%3Bborder%3A0%7Dlegend%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bpadding%3A0%3Bmargin%2Dbottom%3A20px%3Bfont%2Dsize%3A21px%3Bline%2Dheight%3Ainherit%3Bcolor%3A%23333%3Bborder%3A0%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7Dlabel%7Bdisplay%3Ainline%2Dblock%3Bmax%2Dwidth%3A100%25%3Bmargin%2Dbottom%3A5px%3Bfont%2Dweight%3A700%7Dinput%5Btype%3Dsearch%5D%7B%2Dwebkit%2Dbox%2Dsizing%3Aborder%2Dbox%3B%2Dmoz%2Dbox%2Dsizing%3Aborder%2Dbox%3Bbox%2Dsizing%3Aborder%2Dbox%7Dinput%5Btype%3Dcheckbox%5D%2Cinput%5Btype%3Dradio%5D%7Bmargin%3A4px%200%200%3Bmargin%2Dtop%3A1px%5C9%3Bline%2Dheight%3Anormal%7Dinput%5Btype%3Dfile%5D%7Bdisplay%3Ablock%7Dinput%5Btype%3Drange%5D%7Bdisplay%3Ablock%3Bwidth%3A100%25%7Dselect%5Bmultiple%5D%2Cselect%5Bsize%5D%7Bheight%3Aauto%7Dinput%5Btype%3Dfile%5D%3Afocus%2Cinput%5Btype%3Dcheckbox%5D%3Afocus%2Cinput%5Btype%3Dradio%5D%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7Doutput%7Bdisplay%3Ablock%3Bpadding%2Dtop%3A7px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23555%7D%2Eform%2Dcontrol%7Bdisplay%3Ablock%3Bwidth%3A100%25%3Bheight%3A34px%3Bpadding%3A6px%2012px%3Bfont%2Dsize%3A14px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23fff%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20%23ccc%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3B%2Dwebkit%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2C%2Dwebkit%2Dbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3B%2Do%2Dtransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%3Btransition%3Aborder%2Dcolor%20ease%2Din%2Dout%20%2E15s%2Cbox%2Dshadow%20ease%2Din%2Dout%20%2E15s%7D%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%2366afe9%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C%2E6%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%208px%20rgba%28102%2C175%2C233%2C%2E6%29%7D%2Eform%2Dcontrol%3A%3A%2Dmoz%2Dplaceholder%7Bcolor%3A%23999%3Bopacity%3A1%7D%2Eform%2Dcontrol%3A%2Dms%2Dinput%2Dplaceholder%7Bcolor%3A%23999%7D%2Eform%2Dcontrol%3A%3A%2Dwebkit%2Dinput%2Dplaceholder%7Bcolor%3A%23999%7D%2Eform%2Dcontrol%5Bdisabled%5D%2C%2Eform%2Dcontrol%5Breadonly%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bbackground%2Dcolor%3A%23eee%3Bopacity%3A1%7D%2Eform%2Dcontrol%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Eform%2Dcontrol%7Bcursor%3Anot%2Dallowed%7Dtextarea%2Eform%2Dcontrol%7Bheight%3Aauto%7Dinput%5Btype%3Dsearch%5D%7B%2Dwebkit%2Dappearance%3Anone%7D%40media%20screen%20and%20%28%2Dwebkit%2Dmin%2Ddevice%2Dpixel%2Dratio%3A0%29%7Binput%5Btype%3Ddate%5D%2Eform%2Dcontrol%2Cinput%5Btype%3Dtime%5D%2Eform%2Dcontrol%2Cinput%5Btype%3Ddatetime%2Dlocal%5D%2Eform%2Dcontrol%2Cinput%5Btype%3Dmonth%5D%2Eform%2Dcontrol%7Bline%2Dheight%3A34px%7D%2Einput%2Dgroup%2Dsm%20input%5Btype%3Ddate%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3Dtime%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3Ddatetime%2Dlocal%5D%2C%2Einput%2Dgroup%2Dsm%20input%5Btype%3Dmonth%5D%2Cinput%5Btype%3Ddate%5D%2Einput%2Dsm%2Cinput%5Btype%3Dtime%5D%2Einput%2Dsm%2Cinput%5Btype%3Ddatetime%2Dlocal%5D%2Einput%2Dsm%2Cinput%5Btype%3Dmonth%5D%2Einput%2Dsm%7Bline%2Dheight%3A30px%7D%2Einput%2Dgroup%2Dlg%20input%5Btype%3Ddate%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3Dtime%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3Ddatetime%2Dlocal%5D%2C%2Einput%2Dgroup%2Dlg%20input%5Btype%3Dmonth%5D%2Cinput%5Btype%3Ddate%5D%2Einput%2Dlg%2Cinput%5Btype%3Dtime%5D%2Einput%2Dlg%2Cinput%5Btype%3Ddatetime%2Dlocal%5D%2Einput%2Dlg%2Cinput%5Btype%3Dmonth%5D%2Einput%2Dlg%7Bline%2Dheight%3A46px%7D%7D%2Eform%2Dgroup%7Bmargin%2Dbottom%3A15px%7D%2Echeckbox%2C%2Eradio%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Echeckbox%20label%2C%2Eradio%20label%7Bmin%2Dheight%3A20px%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3A400%3Bcursor%3Apointer%7D%2Echeckbox%20input%5Btype%3Dcheckbox%5D%2C%2Echeckbox%2Dinline%20input%5Btype%3Dcheckbox%5D%2C%2Eradio%20input%5Btype%3Dradio%5D%2C%2Eradio%2Dinline%20input%5Btype%3Dradio%5D%7Bposition%3Aabsolute%3Bmargin%2Dtop%3A4px%5C9%3Bmargin%2Dleft%3A%2D20px%7D%2Echeckbox%2B%2Echeckbox%2C%2Eradio%2B%2Eradio%7Bmargin%2Dtop%3A%2D5px%7D%2Echeckbox%2Dinline%2C%2Eradio%2Dinline%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A20px%3Bmargin%2Dbottom%3A0%3Bfont%2Dweight%3A400%3Bvertical%2Dalign%3Amiddle%3Bcursor%3Apointer%7D%2Echeckbox%2Dinline%2B%2Echeckbox%2Dinline%2C%2Eradio%2Dinline%2B%2Eradio%2Dinline%7Bmargin%2Dtop%3A0%3Bmargin%2Dleft%3A10px%7Dfieldset%5Bdisabled%5D%20input%5Btype%3Dcheckbox%5D%2Cfieldset%5Bdisabled%5D%20input%5Btype%3Dradio%5D%2Cinput%5Btype%3Dcheckbox%5D%2Edisabled%2Cinput%5Btype%3Dcheckbox%5D%5Bdisabled%5D%2Cinput%5Btype%3Dradio%5D%2Edisabled%2Cinput%5Btype%3Dradio%5D%5Bdisabled%5D%7Bcursor%3Anot%2Dallowed%7D%2Echeckbox%2Dinline%2Edisabled%2C%2Eradio%2Dinline%2Edisabled%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%2Dinline%2Cfieldset%5Bdisabled%5D%20%2Eradio%2Dinline%7Bcursor%3Anot%2Dallowed%7D%2Echeckbox%2Edisabled%20label%2C%2Eradio%2Edisabled%20label%2Cfieldset%5Bdisabled%5D%20%2Echeckbox%20label%2Cfieldset%5Bdisabled%5D%20%2Eradio%20label%7Bcursor%3Anot%2Dallowed%7D%2Eform%2Dcontrol%2Dstatic%7Bmin%2Dheight%3A34px%3Bpadding%2Dtop%3A7px%3Bpadding%2Dbottom%3A7px%3Bmargin%2Dbottom%3A0%7D%2Eform%2Dcontrol%2Dstatic%2Einput%2Dlg%2C%2Eform%2Dcontrol%2Dstatic%2Einput%2Dsm%7Bpadding%2Dright%3A0%3Bpadding%2Dleft%3A0%7D%2Einput%2Dsm%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7Dselect%2Einput%2Dsm%7Bheight%3A30px%3Bline%2Dheight%3A30px%7Dselect%5Bmultiple%5D%2Einput%2Dsm%2Ctextarea%2Einput%2Dsm%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Eform%2Dgroup%2Dsm%20select%2Eform%2Dcontrol%7Bheight%3A30px%3Bline%2Dheight%3A30px%7D%2Eform%2Dgroup%2Dsm%20select%5Bmultiple%5D%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dsm%20textarea%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A30px%3Bmin%2Dheight%3A32px%3Bpadding%3A6px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%7D%2Einput%2Dlg%7Bheight%3A46px%3Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7Dselect%2Einput%2Dlg%7Bheight%3A46px%3Bline%2Dheight%3A46px%7Dselect%5Bmultiple%5D%2Einput%2Dlg%2Ctextarea%2Einput%2Dlg%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%7Bheight%3A46px%3Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7D%2Eform%2Dgroup%2Dlg%20select%2Eform%2Dcontrol%7Bheight%3A46px%3Bline%2Dheight%3A46px%7D%2Eform%2Dgroup%2Dlg%20select%5Bmultiple%5D%2Eform%2Dcontrol%2C%2Eform%2Dgroup%2Dlg%20textarea%2Eform%2Dcontrol%7Bheight%3Aauto%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2Dstatic%7Bheight%3A46px%3Bmin%2Dheight%3A38px%3Bpadding%3A11px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%7D%2Ehas%2Dfeedback%7Bposition%3Arelative%7D%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%7Bpadding%2Dright%3A42%2E5px%7D%2Eform%2Dcontrol%2Dfeedback%7Bposition%3Aabsolute%3Btop%3A0%3Bright%3A0%3Bz%2Dindex%3A2%3Bdisplay%3Ablock%3Bwidth%3A34px%3Bheight%3A34px%3Bline%2Dheight%3A34px%3Btext%2Dalign%3Acenter%3Bpointer%2Devents%3Anone%7D%2Eform%2Dgroup%2Dlg%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dlg%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A46px%3Bheight%3A46px%3Bline%2Dheight%3A46px%7D%2Eform%2Dgroup%2Dsm%20%2Eform%2Dcontrol%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dgroup%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%2C%2Einput%2Dsm%2B%2Eform%2Dcontrol%2Dfeedback%7Bwidth%3A30px%3Bheight%3A30px%3Bline%2Dheight%3A30px%7D%2Ehas%2Dsuccess%20%2Echeckbox%2C%2Ehas%2Dsuccess%20%2Echeckbox%2Dinline%2C%2Ehas%2Dsuccess%20%2Econtrol%2Dlabel%2C%2Ehas%2Dsuccess%20%2Ehelp%2Dblock%2C%2Ehas%2Dsuccess%20%2Eradio%2C%2Ehas%2Dsuccess%20%2Eradio%2Dinline%2C%2Ehas%2Dsuccess%2Echeckbox%20label%2C%2Ehas%2Dsuccess%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dsuccess%2Eradio%20label%2C%2Ehas%2Dsuccess%2Eradio%2Dinline%20label%7Bcolor%3A%233c763d%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%233c763d%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%232b542c%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%2367b168%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%2367b168%7D%2Ehas%2Dsuccess%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%233c763d%7D%2Ehas%2Dsuccess%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%233c763d%7D%2Ehas%2Dwarning%20%2Echeckbox%2C%2Ehas%2Dwarning%20%2Echeckbox%2Dinline%2C%2Ehas%2Dwarning%20%2Econtrol%2Dlabel%2C%2Ehas%2Dwarning%20%2Ehelp%2Dblock%2C%2Ehas%2Dwarning%20%2Eradio%2C%2Ehas%2Dwarning%20%2Eradio%2Dinline%2C%2Ehas%2Dwarning%2Echeckbox%20label%2C%2Ehas%2Dwarning%2Echeckbox%2Dinline%20label%2C%2Ehas%2Dwarning%2Eradio%20label%2C%2Ehas%2Dwarning%2Eradio%2Dinline%20label%7Bcolor%3A%238a6d3b%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%238a6d3b%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%2366512c%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%23c0a16b%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%23c0a16b%7D%2Ehas%2Dwarning%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%2Dcolor%3A%238a6d3b%7D%2Ehas%2Dwarning%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%238a6d3b%7D%2Ehas%2Derror%20%2Echeckbox%2C%2Ehas%2Derror%20%2Echeckbox%2Dinline%2C%2Ehas%2Derror%20%2Econtrol%2Dlabel%2C%2Ehas%2Derror%20%2Ehelp%2Dblock%2C%2Ehas%2Derror%20%2Eradio%2C%2Ehas%2Derror%20%2Eradio%2Dinline%2C%2Ehas%2Derror%2Echeckbox%20label%2C%2Ehas%2Derror%2Echeckbox%2Dinline%20label%2C%2Ehas%2Derror%2Eradio%20label%2C%2Ehas%2Derror%2Eradio%2Dinline%20label%7Bcolor%3A%23a94442%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%7Bborder%2Dcolor%3A%23a94442%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%3Afocus%7Bborder%2Dcolor%3A%23843534%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%23ce8483%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E075%29%2C0%200%206px%20%23ce8483%7D%2Ehas%2Derror%20%2Einput%2Dgroup%2Daddon%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23a94442%7D%2Ehas%2Derror%20%2Eform%2Dcontrol%2Dfeedback%7Bcolor%3A%23a94442%7D%2Ehas%2Dfeedback%20label%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A25px%7D%2Ehas%2Dfeedback%20label%2Esr%2Donly%7E%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%2Ehelp%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dtop%3A5px%3Bmargin%2Dbottom%3A10px%3Bcolor%3A%23737373%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dinline%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Eform%2Dinline%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Eform%2Dinline%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%7Bwidth%3Aauto%7D%2Eform%2Dinline%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Eform%2Dinline%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Echeckbox%2C%2Eform%2Dinline%20%2Eradio%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Eform%2Dinline%20%2Echeckbox%20label%2C%2Eform%2Dinline%20%2Eradio%20label%7Bpadding%2Dleft%3A0%7D%2Eform%2Dinline%20%2Echeckbox%20input%5Btype%3Dcheckbox%5D%2C%2Eform%2Dinline%20%2Eradio%20input%5Btype%3Dradio%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Eform%2Dinline%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%2Eform%2Dhorizontal%20%2Echeckbox%2C%2Eform%2Dhorizontal%20%2Echeckbox%2Dinline%2C%2Eform%2Dhorizontal%20%2Eradio%2C%2Eform%2Dhorizontal%20%2Eradio%2Dinline%7Bpadding%2Dtop%3A7px%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%7D%2Eform%2Dhorizontal%20%2Echeckbox%2C%2Eform%2Dhorizontal%20%2Eradio%7Bmin%2Dheight%3A27px%7D%2Eform%2Dhorizontal%20%2Eform%2Dgroup%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A7px%3Bmargin%2Dbottom%3A0%3Btext%2Dalign%3Aright%7D%7D%2Eform%2Dhorizontal%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Bright%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dlg%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A14%2E33px%3Bfont%2Dsize%3A18px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Eform%2Dhorizontal%20%2Eform%2Dgroup%2Dsm%20%2Econtrol%2Dlabel%7Bpadding%2Dtop%3A6px%3Bfont%2Dsize%3A12px%7D%7D%2Ebtn%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A6px%2012px%3Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A14px%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%3B%2Dms%2Dtouch%2Daction%3Amanipulation%3Btouch%2Daction%3Amanipulation%3Bcursor%3Apointer%3B%2Dwebkit%2Duser%2Dselect%3Anone%3B%2Dmoz%2Duser%2Dselect%3Anone%3B%2Dms%2Duser%2Dselect%3Anone%3Buser%2Dselect%3Anone%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Ebtn%2Eactive%2Efocus%2C%2Ebtn%2Eactive%3Afocus%2C%2Ebtn%2Efocus%2C%2Ebtn%3Aactive%2Efocus%2C%2Ebtn%3Aactive%3Afocus%2C%2Ebtn%3Afocus%7Boutline%3Athin%20dotted%3Boutline%3A5px%20auto%20%2Dwebkit%2Dfocus%2Dring%2Dcolor%3Boutline%2Doffset%3A%2D2px%7D%2Ebtn%2Efocus%2C%2Ebtn%3Afocus%2C%2Ebtn%3Ahover%7Bcolor%3A%23333%3Btext%2Ddecoration%3Anone%7D%2Ebtn%2Eactive%2C%2Ebtn%3Aactive%7Bbackground%2Dimage%3Anone%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C%2E125%29%7D%2Ebtn%2Edisabled%2C%2Ebtn%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%7Bcursor%3Anot%2Dallowed%3Bfilter%3Aalpha%28opacity%3D65%29%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%3Bopacity%3A%2E65%7Da%2Ebtn%2Edisabled%2Cfieldset%5Bdisabled%5D%20a%2Ebtn%7Bpointer%2Devents%3Anone%7D%2Ebtn%2Ddefault%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23fff%3Bborder%2Dcolor%3A%23ccc%7D%2Ebtn%2Ddefault%2Efocus%2C%2Ebtn%2Ddefault%3Afocus%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%2Dcolor%3A%238c8c8c%7D%2Ebtn%2Ddefault%3Ahover%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%2Dcolor%3A%23adadad%7D%2Ebtn%2Ddefault%2Eactive%2C%2Ebtn%2Ddefault%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23e6e6e6%3Bborder%2Dcolor%3A%23adadad%7D%2Ebtn%2Ddefault%2Eactive%2Efocus%2C%2Ebtn%2Ddefault%2Eactive%3Afocus%2C%2Ebtn%2Ddefault%2Eactive%3Ahover%2C%2Ebtn%2Ddefault%3Aactive%2Efocus%2C%2Ebtn%2Ddefault%3Aactive%3Afocus%2C%2Ebtn%2Ddefault%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%3Ahover%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23d4d4d4%3Bborder%2Dcolor%3A%238c8c8c%7D%2Ebtn%2Ddefault%2Eactive%2C%2Ebtn%2Ddefault%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddefault%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddefault%2Edisabled%2C%2Ebtn%2Ddefault%2Edisabled%2Eactive%2C%2Ebtn%2Ddefault%2Edisabled%2Efocus%2C%2Ebtn%2Ddefault%2Edisabled%3Aactive%2C%2Ebtn%2Ddefault%2Edisabled%3Afocus%2C%2Ebtn%2Ddefault%2Edisabled%3Ahover%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Ddefault%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Ddefault%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddefault%3Ahover%7Bbackground%2Dcolor%3A%23fff%3Bborder%2Dcolor%3A%23ccc%7D%2Ebtn%2Ddefault%20%2Ebadge%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23333%7D%2Ebtn%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%232e6da4%7D%2Ebtn%2Dprimary%2Efocus%2C%2Ebtn%2Dprimary%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23286090%3Bborder%2Dcolor%3A%23122b40%7D%2Ebtn%2Dprimary%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23286090%3Bborder%2Dcolor%3A%23204d74%7D%2Ebtn%2Dprimary%2Eactive%2C%2Ebtn%2Dprimary%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23286090%3Bborder%2Dcolor%3A%23204d74%7D%2Ebtn%2Dprimary%2Eactive%2Efocus%2C%2Ebtn%2Dprimary%2Eactive%3Afocus%2C%2Ebtn%2Dprimary%2Eactive%3Ahover%2C%2Ebtn%2Dprimary%3Aactive%2Efocus%2C%2Ebtn%2Dprimary%3Aactive%3Afocus%2C%2Ebtn%2Dprimary%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23204d74%3Bborder%2Dcolor%3A%23122b40%7D%2Ebtn%2Dprimary%2Eactive%2C%2Ebtn%2Dprimary%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dprimary%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dprimary%2Edisabled%2C%2Ebtn%2Dprimary%2Edisabled%2Eactive%2C%2Ebtn%2Dprimary%2Edisabled%2Efocus%2C%2Ebtn%2Dprimary%2Edisabled%3Aactive%2C%2Ebtn%2Dprimary%2Edisabled%3Afocus%2C%2Ebtn%2Dprimary%2Edisabled%3Ahover%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Dprimary%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dprimary%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dprimary%3Ahover%7Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%232e6da4%7D%2Ebtn%2Dprimary%20%2Ebadge%7Bcolor%3A%23337ab7%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Dsuccess%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%235cb85c%3Bborder%2Dcolor%3A%234cae4c%7D%2Ebtn%2Dsuccess%2Efocus%2C%2Ebtn%2Dsuccess%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23449d44%3Bborder%2Dcolor%3A%23255625%7D%2Ebtn%2Dsuccess%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23449d44%3Bborder%2Dcolor%3A%23398439%7D%2Ebtn%2Dsuccess%2Eactive%2C%2Ebtn%2Dsuccess%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23449d44%3Bborder%2Dcolor%3A%23398439%7D%2Ebtn%2Dsuccess%2Eactive%2Efocus%2C%2Ebtn%2Dsuccess%2Eactive%3Afocus%2C%2Ebtn%2Dsuccess%2Eactive%3Ahover%2C%2Ebtn%2Dsuccess%3Aactive%2Efocus%2C%2Ebtn%2Dsuccess%3Aactive%3Afocus%2C%2Ebtn%2Dsuccess%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23398439%3Bborder%2Dcolor%3A%23255625%7D%2Ebtn%2Dsuccess%2Eactive%2C%2Ebtn%2Dsuccess%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dsuccess%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dsuccess%2Edisabled%2C%2Ebtn%2Dsuccess%2Edisabled%2Eactive%2C%2Ebtn%2Dsuccess%2Edisabled%2Efocus%2C%2Ebtn%2Dsuccess%2Edisabled%3Aactive%2C%2Ebtn%2Dsuccess%2Edisabled%3Afocus%2C%2Ebtn%2Dsuccess%2Edisabled%3Ahover%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dsuccess%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dsuccess%3Ahover%7Bbackground%2Dcolor%3A%235cb85c%3Bborder%2Dcolor%3A%234cae4c%7D%2Ebtn%2Dsuccess%20%2Ebadge%7Bcolor%3A%235cb85c%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Dinfo%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%235bc0de%3Bborder%2Dcolor%3A%2346b8da%7D%2Ebtn%2Dinfo%2Efocus%2C%2Ebtn%2Dinfo%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2331b0d5%3Bborder%2Dcolor%3A%231b6d85%7D%2Ebtn%2Dinfo%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2331b0d5%3Bborder%2Dcolor%3A%23269abc%7D%2Ebtn%2Dinfo%2Eactive%2C%2Ebtn%2Dinfo%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2331b0d5%3Bborder%2Dcolor%3A%23269abc%7D%2Ebtn%2Dinfo%2Eactive%2Efocus%2C%2Ebtn%2Dinfo%2Eactive%3Afocus%2C%2Ebtn%2Dinfo%2Eactive%3Ahover%2C%2Ebtn%2Dinfo%3Aactive%2Efocus%2C%2Ebtn%2Dinfo%3Aactive%3Afocus%2C%2Ebtn%2Dinfo%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23269abc%3Bborder%2Dcolor%3A%231b6d85%7D%2Ebtn%2Dinfo%2Eactive%2C%2Ebtn%2Dinfo%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dinfo%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dinfo%2Edisabled%2C%2Ebtn%2Dinfo%2Edisabled%2Eactive%2C%2Ebtn%2Dinfo%2Edisabled%2Efocus%2C%2Ebtn%2Dinfo%2Edisabled%3Aactive%2C%2Ebtn%2Dinfo%2Edisabled%3Afocus%2C%2Ebtn%2Dinfo%2Edisabled%3Ahover%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Dinfo%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dinfo%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dinfo%3Ahover%7Bbackground%2Dcolor%3A%235bc0de%3Bborder%2Dcolor%3A%2346b8da%7D%2Ebtn%2Dinfo%20%2Ebadge%7Bcolor%3A%235bc0de%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Dwarning%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23f0ad4e%3Bborder%2Dcolor%3A%23eea236%7D%2Ebtn%2Dwarning%2Efocus%2C%2Ebtn%2Dwarning%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ec971f%3Bborder%2Dcolor%3A%23985f0d%7D%2Ebtn%2Dwarning%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ec971f%3Bborder%2Dcolor%3A%23d58512%7D%2Ebtn%2Dwarning%2Eactive%2C%2Ebtn%2Dwarning%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ec971f%3Bborder%2Dcolor%3A%23d58512%7D%2Ebtn%2Dwarning%2Eactive%2Efocus%2C%2Ebtn%2Dwarning%2Eactive%3Afocus%2C%2Ebtn%2Dwarning%2Eactive%3Ahover%2C%2Ebtn%2Dwarning%3Aactive%2Efocus%2C%2Ebtn%2Dwarning%3Aactive%3Afocus%2C%2Ebtn%2Dwarning%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23d58512%3Bborder%2Dcolor%3A%23985f0d%7D%2Ebtn%2Dwarning%2Eactive%2C%2Ebtn%2Dwarning%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Dwarning%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Dwarning%2Edisabled%2C%2Ebtn%2Dwarning%2Edisabled%2Eactive%2C%2Ebtn%2Dwarning%2Edisabled%2Efocus%2C%2Ebtn%2Dwarning%2Edisabled%3Aactive%2C%2Ebtn%2Dwarning%2Edisabled%3Afocus%2C%2Ebtn%2Dwarning%2Edisabled%3Ahover%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Dwarning%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dwarning%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dwarning%3Ahover%7Bbackground%2Dcolor%3A%23f0ad4e%3Bborder%2Dcolor%3A%23eea236%7D%2Ebtn%2Dwarning%20%2Ebadge%7Bcolor%3A%23f0ad4e%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Ddanger%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23d9534f%3Bborder%2Dcolor%3A%23d43f3a%7D%2Ebtn%2Ddanger%2Efocus%2C%2Ebtn%2Ddanger%3Afocus%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23c9302c%3Bborder%2Dcolor%3A%23761c19%7D%2Ebtn%2Ddanger%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23c9302c%3Bborder%2Dcolor%3A%23ac2925%7D%2Ebtn%2Ddanger%2Eactive%2C%2Ebtn%2Ddanger%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23c9302c%3Bborder%2Dcolor%3A%23ac2925%7D%2Ebtn%2Ddanger%2Eactive%2Efocus%2C%2Ebtn%2Ddanger%2Eactive%3Afocus%2C%2Ebtn%2Ddanger%2Eactive%3Ahover%2C%2Ebtn%2Ddanger%3Aactive%2Efocus%2C%2Ebtn%2Ddanger%3Aactive%3Afocus%2C%2Ebtn%2Ddanger%3Aactive%3Ahover%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%2Efocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Afocus%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23ac2925%3Bborder%2Dcolor%3A%23761c19%7D%2Ebtn%2Ddanger%2Eactive%2C%2Ebtn%2Ddanger%3Aactive%2C%2Eopen%3E%2Edropdown%2Dtoggle%2Ebtn%2Ddanger%7Bbackground%2Dimage%3Anone%7D%2Ebtn%2Ddanger%2Edisabled%2C%2Ebtn%2Ddanger%2Edisabled%2Eactive%2C%2Ebtn%2Ddanger%2Edisabled%2Efocus%2C%2Ebtn%2Ddanger%2Edisabled%3Aactive%2C%2Ebtn%2Ddanger%2Edisabled%3Afocus%2C%2Ebtn%2Ddanger%2Edisabled%3Ahover%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2Eactive%2C%2Ebtn%2Ddanger%5Bdisabled%5D%2Efocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Aactive%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Ddanger%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Eactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%2Efocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Aactive%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Ddanger%3Ahover%7Bbackground%2Dcolor%3A%23d9534f%3Bborder%2Dcolor%3A%23d43f3a%7D%2Ebtn%2Ddanger%20%2Ebadge%7Bcolor%3A%23d9534f%3Bbackground%2Dcolor%3A%23fff%7D%2Ebtn%2Dlink%7Bfont%2Dweight%3A400%3Bcolor%3A%23337ab7%3Bborder%2Dradius%3A0%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%2Eactive%2C%2Ebtn%2Dlink%3Aactive%2C%2Ebtn%2Dlink%5Bdisabled%5D%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%7Bbackground%2Dcolor%3Atransparent%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%2Dlink%2C%2Ebtn%2Dlink%3Aactive%2C%2Ebtn%2Dlink%3Afocus%2C%2Ebtn%2Dlink%3Ahover%7Bborder%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%3Afocus%2C%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%2323527c%3Btext%2Ddecoration%3Aunderline%3Bbackground%2Dcolor%3Atransparent%7D%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2C%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23777%3Btext%2Ddecoration%3Anone%7D%2Ebtn%2Dgroup%2Dlg%3E%2Ebtn%2C%2Ebtn%2Dlg%7Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7D%2Ebtn%2Dgroup%2Dsm%3E%2Ebtn%2C%2Ebtn%2Dsm%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%2C%2Ebtn%2Dxs%7Bpadding%3A1px%205px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7D%2Ebtn%2Dblock%7Bdisplay%3Ablock%3Bwidth%3A100%25%7D%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dtop%3A5px%7Dinput%5Btype%3Dbutton%5D%2Ebtn%2Dblock%2Cinput%5Btype%3Dreset%5D%2Ebtn%2Dblock%2Cinput%5Btype%3Dsubmit%5D%2Ebtn%2Dblock%7Bwidth%3A100%25%7D%2Efade%7Bopacity%3A0%3B%2Dwebkit%2Dtransition%3Aopacity%20%2E15s%20linear%3B%2Do%2Dtransition%3Aopacity%20%2E15s%20linear%3Btransition%3Aopacity%20%2E15s%20linear%7D%2Efade%2Ein%7Bopacity%3A1%7D%2Ecollapse%7Bdisplay%3Anone%7D%2Ecollapse%2Ein%7Bdisplay%3Ablock%7Dtr%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%7Dtbody%2Ecollapse%2Ein%7Bdisplay%3Atable%2Drow%2Dgroup%7D%2Ecollapsing%7Bposition%3Arelative%3Bheight%3A0%3Boverflow%3Ahidden%3B%2Dwebkit%2Dtransition%2Dtiming%2Dfunction%3Aease%3B%2Do%2Dtransition%2Dtiming%2Dfunction%3Aease%3Btransition%2Dtiming%2Dfunction%3Aease%3B%2Dwebkit%2Dtransition%2Dduration%3A%2E35s%3B%2Do%2Dtransition%2Dduration%3A%2E35s%3Btransition%2Dduration%3A%2E35s%3B%2Dwebkit%2Dtransition%2Dproperty%3Aheight%2Cvisibility%3B%2Do%2Dtransition%2Dproperty%3Aheight%2Cvisibility%3Btransition%2Dproperty%3Aheight%2Cvisibility%7D%2Ecaret%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A0%3Bheight%3A0%3Bmargin%2Dleft%3A2px%3Bvertical%2Dalign%3Amiddle%3Bborder%2Dtop%3A4px%20dashed%3Bborder%2Dtop%3A4px%20solid%5C9%3Bborder%2Dright%3A4px%20solid%20transparent%3Bborder%2Dleft%3A4px%20solid%20transparent%7D%2Edropdown%2C%2Edropup%7Bposition%3Arelative%7D%2Edropdown%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Edropdown%2Dmenu%7Bposition%3Aabsolute%3Btop%3A100%25%3Bleft%3A0%3Bz%2Dindex%3A1000%3Bdisplay%3Anone%3Bfloat%3Aleft%3Bmin%2Dwidth%3A160px%3Bpadding%3A5px%200%3Bmargin%3A2px%200%200%3Bfont%2Dsize%3A14px%3Btext%2Dalign%3Aleft%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3A%23fff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C%2E15%29%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C%2E175%29%3Bbox%2Dshadow%3A0%206px%2012px%20rgba%280%2C0%2C0%2C%2E175%29%7D%2Edropdown%2Dmenu%2Epull%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Edropdown%2Dmenu%20%2Edivider%7Bheight%3A1px%3Bmargin%3A9px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Edropdown%2Dmenu%3Eli%3Ea%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bclear%3Aboth%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23333%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%7Bcolor%3A%23262626%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%7D%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%2C%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23337ab7%3Boutline%3A0%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23777%7D%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%2C%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%7Btext%2Ddecoration%3Anone%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28enabled%3Dfalse%29%7D%2Eopen%3E%2Edropdown%2Dmenu%7Bdisplay%3Ablock%7D%2Eopen%3Ea%7Boutline%3A0%7D%2Edropdown%2Dmenu%2Dright%7Bright%3A0%3Bleft%3Aauto%7D%2Edropdown%2Dmenu%2Dleft%7Bright%3Aauto%3Bleft%3A0%7D%2Edropdown%2Dheader%7Bdisplay%3Ablock%3Bpadding%3A3px%2020px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23777%3Bwhite%2Dspace%3Anowrap%7D%2Edropdown%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A990%7D%2Epull%2Dright%3E%2Edropdown%2Dmenu%7Bright%3A0%3Bleft%3Aauto%7D%2Edropup%20%2Ecaret%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Ecaret%7Bcontent%3A%22%22%3Bborder%2Dtop%3A0%3Bborder%2Dbottom%3A4px%20dashed%3Bborder%2Dbottom%3A4px%20solid%5C9%7D%2Edropup%20%2Edropdown%2Dmenu%2C%2Enavbar%2Dfixed%2Dbottom%20%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bbottom%3A100%25%3Bmargin%2Dbottom%3A2px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dright%20%2Edropdown%2Dmenu%7Bright%3A0%3Bleft%3Aauto%7D%2Enavbar%2Dright%20%2Edropdown%2Dmenu%2Dleft%7Bright%3Aauto%3Bleft%3A0%7D%7D%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%7Bposition%3Arelative%3Bdisplay%3Ainline%2Dblock%3Bvertical%2Dalign%3Amiddle%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2C%2Ebtn%2Dgroup%3E%2Ebtn%7Bposition%3Arelative%3Bfloat%3Aleft%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Eactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Ahover%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Eactive%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Aactive%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Afocus%2C%2Ebtn%2Dgroup%3E%2Ebtn%3Ahover%7Bz%2Dindex%3A2%7D%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%20%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dleft%3A%2D1px%7D%2Ebtn%2Dtoolbar%7Bmargin%2Dleft%3A%2D5px%7D%2Ebtn%2Dtoolbar%20%2Ebtn%2C%2Ebtn%2Dtoolbar%20%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%20%2Einput%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dtoolbar%3E%2Ebtn%2C%2Ebtn%2Dtoolbar%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dtoolbar%3E%2Einput%2Dgroup%7Bmargin%2Dleft%3A5px%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%2C%2Ebtn%2Dgroup%3E%2Edropdown%2Dtoggle%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%7Bfloat%3Aleft%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%20%2Edropdown%2Dtoggle%3Aactive%2C%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7Boutline%3A0%7D%2Ebtn%2Dgroup%3E%2Ebtn%2B%2Edropdown%2Dtoggle%7Bpadding%2Dright%3A8px%3Bpadding%2Dleft%3A8px%7D%2Ebtn%2Dgroup%3E%2Ebtn%2Dlg%2B%2Edropdown%2Dtoggle%7Bpadding%2Dright%3A12px%3Bpadding%2Dleft%3A12px%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%7B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C%2E125%29%3Bbox%2Dshadow%3Ainset%200%203px%205px%20rgba%280%2C0%2C0%2C%2E125%29%7D%2Ebtn%2Dgroup%2Eopen%20%2Edropdown%2Dtoggle%2Ebtn%2Dlink%7B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Ebtn%20%2Ecaret%7Bmargin%2Dleft%3A0%7D%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Edropup%20%2Ebtn%2Dlg%20%2Ecaret%7Bborder%2Dwidth%3A0%205px%205px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bdisplay%3Ablock%3Bfloat%3Anone%3Bwidth%3A100%25%3Bmax%2Dwidth%3A100%25%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3E%2Ebtn%7Bfloat%3Anone%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2B%2Ebtn%2Dgroup%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%2B%2Ebtn%2Dgroup%7Bmargin%2Dtop%3A%2D1px%3Bmargin%2Dleft%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%7Bborder%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%3Alast%2Dchild%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Afirst%2Dchild%3Anot%28%3Alast%2Dchild%29%3E%2Edropdown%2Dtoggle%7Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Alast%2Dchild%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Ebtn%2Dgroup%2Djustified%7Bdisplay%3Atable%3Bwidth%3A100%25%3Btable%2Dlayout%3Afixed%3Bborder%2Dcollapse%3Aseparate%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2C%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%7Bdisplay%3Atable%2Dcell%3Bfloat%3Anone%3Bwidth%3A1%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Ebtn%7Bwidth%3A100%25%7D%2Ebtn%2Dgroup%2Djustified%3E%2Ebtn%2Dgroup%20%2Edropdown%2Dmenu%7Bleft%3Aauto%7D%5Bdata%2Dtoggle%3Dbuttons%5D%3E%2Ebtn%20input%5Btype%3Dcheckbox%5D%2C%5Bdata%2Dtoggle%3Dbuttons%5D%3E%2Ebtn%20input%5Btype%3Dradio%5D%2C%5Bdata%2Dtoggle%3Dbuttons%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3Dcheckbox%5D%2C%5Bdata%2Dtoggle%3Dbuttons%5D%3E%2Ebtn%2Dgroup%3E%2Ebtn%20input%5Btype%3Dradio%5D%7Bposition%3Aabsolute%3Bclip%3Arect%280%2C0%2C0%2C0%29%3Bpointer%2Devents%3Anone%7D%2Einput%2Dgroup%7Bposition%3Arelative%3Bdisplay%3Atable%3Bborder%2Dcollapse%3Aseparate%7D%2Einput%2Dgroup%5Bclass%2A%3Dcol%2D%5D%7Bfloat%3Anone%3Bpadding%2Dright%3A0%3Bpadding%2Dleft%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%7Bposition%3Arelative%3Bz%2Dindex%3A2%3Bfloat%3Aleft%3Bwidth%3A100%25%3Bmargin%2Dbottom%3A0%7D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A46px%3Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%3Bborder%2Dradius%3A6px%7Dselect%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A46px%3Bline%2Dheight%3A46px%7Dselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dlg%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A30px%3Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%3Bborder%2Dradius%3A3px%7Dselect%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3A30px%3Bline%2Dheight%3A30px%7Dselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Cselect%5Bmultiple%5D%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Eform%2Dcontrol%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Daddon%2Ctextarea%2Einput%2Dgroup%2Dsm%3E%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bheight%3Aauto%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%2C%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%7Bdisplay%3Atable%2Dcell%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%2Daddon%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Anot%28%3Afirst%2Dchild%29%3Anot%28%3Alast%2Dchild%29%7Bborder%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%2C%2Einput%2Dgroup%2Dbtn%7Bwidth%3A1%25%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%7D%2Einput%2Dgroup%2Daddon%7Bpadding%3A6px%2012px%3Bfont%2Dsize%3A14px%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%3Bcolor%3A%23555%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23eee%3Bborder%3A1px%20solid%20%23ccc%3Bborder%2Dradius%3A4px%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dsm%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bborder%2Dradius%3A3px%7D%2Einput%2Dgroup%2Daddon%2Einput%2Dlg%7Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bborder%2Dradius%3A6px%7D%2Einput%2Dgroup%2Daddon%20input%5Btype%3Dcheckbox%5D%2C%2Einput%2Dgroup%2Daddon%20input%5Btype%3Dradio%5D%7Bmargin%2Dtop%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Edropdown%2Dtoggle%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Alast%2Dchild%29%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%3Anot%28%3Alast%2Dchild%29%3Anot%28%2Edropdown%2Dtoggle%29%7Bborder%2Dtop%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Afirst%2Dchild%7Bborder%2Dright%3A0%7D%2Einput%2Dgroup%20%2Eform%2Dcontrol%3Alast%2Dchild%2C%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%3Anot%28%3Afirst%2Dchild%29%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%3Anot%28%3Afirst%2Dchild%29%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Edropdown%2Dtoggle%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Einput%2Dgroup%2Daddon%3Alast%2Dchild%7Bborder%2Dleft%3A0%7D%2Einput%2Dgroup%2Dbtn%7Bposition%3Arelative%3Bfont%2Dsize%3A0%3Bwhite%2Dspace%3Anowrap%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%7Bposition%3Arelative%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Aactive%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Afocus%2C%2Einput%2Dgroup%2Dbtn%3E%2Ebtn%3Ahover%7Bz%2Dindex%3A2%7D%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Afirst%2Dchild%3E%2Ebtn%2Dgroup%7Bmargin%2Dright%3A%2D1px%7D%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2C%2Einput%2Dgroup%2Dbtn%3Alast%2Dchild%3E%2Ebtn%2Dgroup%7Bz%2Dindex%3A2%3Bmargin%2Dleft%3A%2D1px%7D%2Enav%7Bpadding%2Dleft%3A0%3Bmargin%2Dbottom%3A0%3Blist%2Dstyle%3Anone%7D%2Enav%3Eli%7Bposition%3Arelative%3Bdisplay%3Ablock%7D%2Enav%3Eli%3Ea%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%7D%2Enav%3Eli%3Ea%3Afocus%2C%2Enav%3Eli%3Ea%3Ahover%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23eee%7D%2Enav%3Eli%2Edisabled%3Ea%7Bcolor%3A%23777%7D%2Enav%3Eli%2Edisabled%3Ea%3Afocus%2C%2Enav%3Eli%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23777%3Btext%2Ddecoration%3Anone%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3Atransparent%7D%2Enav%20%2Eopen%3Ea%2C%2Enav%20%2Eopen%3Ea%3Afocus%2C%2Enav%20%2Eopen%3Ea%3Ahover%7Bbackground%2Dcolor%3A%23eee%3Bborder%2Dcolor%3A%23337ab7%7D%2Enav%20%2Enav%2Ddivider%7Bheight%3A1px%3Bmargin%3A9px%200%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23e5e5e5%7D%2Enav%3Eli%3Ea%3Eimg%7Bmax%2Dwidth%3Anone%7D%2Enav%2Dtabs%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%7D%2Enav%2Dtabs%3Eli%7Bfloat%3Aleft%3Bmargin%2Dbottom%3A%2D1px%7D%2Enav%2Dtabs%3Eli%3Ea%7Bmargin%2Dright%3A2px%3Bline%2Dheight%3A1%2E42857143%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%3Eli%3Ea%3Ahover%7Bborder%2Dcolor%3A%23eee%20%23eee%20%23ddd%7D%2Enav%2Dtabs%3Eli%2Eactive%3Ea%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%3Eli%2Eactive%3Ea%3Ahover%7Bcolor%3A%23555%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dbottom%2Dcolor%3Atransparent%7D%2Enav%2Dtabs%2Enav%2Djustified%7Bwidth%3A100%25%3Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A5px%3Btext%2Dalign%3Acenter%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A4px%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%7Bborder%3A1px%20solid%20%23ddd%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Enav%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%2Enav%2Djustified%3E%2Eactive%3Ea%3Ahover%7Bborder%2Dbottom%2Dcolor%3A%23fff%7D%7D%2Enav%2Dpills%3Eli%7Bfloat%3Aleft%7D%2Enav%2Dpills%3Eli%3Ea%7Bborder%2Dradius%3A4px%7D%2Enav%2Dpills%3Eli%2Bli%7Bmargin%2Dleft%3A2px%7D%2Enav%2Dpills%3Eli%2Eactive%3Ea%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Afocus%2C%2Enav%2Dpills%3Eli%2Eactive%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%7D%2Enav%2Dstacked%3Eli%7Bfloat%3Anone%7D%2Enav%2Dstacked%3Eli%2Bli%7Bmargin%2Dtop%3A2px%3Bmargin%2Dleft%3A0%7D%2Enav%2Djustified%7Bwidth%3A100%25%7D%2Enav%2Djustified%3Eli%7Bfloat%3Anone%7D%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A5px%3Btext%2Dalign%3Acenter%7D%2Enav%2Djustified%3E%2Edropdown%20%2Edropdown%2Dmenu%7Btop%3Aauto%3Bleft%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Djustified%3Eli%7Bdisplay%3Atable%2Dcell%3Bwidth%3A1%25%7D%2Enav%2Djustified%3Eli%3Ea%7Bmargin%2Dbottom%3A0%7D%7D%2Enav%2Dtabs%2Djustified%7Bborder%2Dbottom%3A0%7D%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bmargin%2Dright%3A0%3Bborder%2Dradius%3A4px%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%7Bborder%3A1px%20solid%20%23ddd%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enav%2Dtabs%2Djustified%3Eli%3Ea%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A4px%204px%200%200%7D%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Afocus%2C%2Enav%2Dtabs%2Djustified%3E%2Eactive%3Ea%3Ahover%7Bborder%2Dbottom%2Dcolor%3A%23fff%7D%7D%2Etab%2Dcontent%3E%2Etab%2Dpane%7Bdisplay%3Anone%7D%2Etab%2Dcontent%3E%2Eactive%7Bdisplay%3Ablock%7D%2Enav%2Dtabs%20%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A%2D1px%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Enavbar%7Bposition%3Arelative%3Bmin%2Dheight%3A50px%3Bmargin%2Dbottom%3A20px%3Bborder%3A1px%20solid%20transparent%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%7Bborder%2Dradius%3A4px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dheader%7Bfloat%3Aleft%7D%7D%2Enavbar%2Dcollapse%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%3Boverflow%2Dx%3Avisible%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%3Bborder%2Dtop%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Aauto%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dcollapse%7Bwidth%3Aauto%3Bborder%2Dtop%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dcollapse%2Ecollapse%7Bdisplay%3Ablock%21important%3Bheight%3Aauto%21important%3Bpadding%2Dbottom%3A0%3Boverflow%3Avisible%21important%7D%2Enavbar%2Dcollapse%2Ein%7Boverflow%2Dy%3Avisible%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dstatic%2Dtop%20%2Enavbar%2Dcollapse%7Bpadding%2Dright%3A0%3Bpadding%2Dleft%3A0%7D%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A340px%7D%40media%20%28max%2Ddevice%2Dwidth%3A480px%29%20and%20%28orientation%3Alandscape%29%7B%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dfixed%2Dtop%20%2Enavbar%2Dcollapse%7Bmax%2Dheight%3A200px%7D%7D%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%3E%2Enavbar%2Dheader%7Bmargin%2Dright%3A%2D15px%3Bmargin%2Dleft%3A%2D15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Econtainer%2Dfluid%3E%2Enavbar%2Dcollapse%2C%2Econtainer%2Dfluid%3E%2Enavbar%2Dheader%2C%2Econtainer%3E%2Enavbar%2Dcollapse%2C%2Econtainer%3E%2Enavbar%2Dheader%7Bmargin%2Dright%3A0%3Bmargin%2Dleft%3A0%7D%7D%2Enavbar%2Dstatic%2Dtop%7Bz%2Dindex%3A1000%3Bborder%2Dwidth%3A0%200%201px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dstatic%2Dtop%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dbottom%2C%2Enavbar%2Dfixed%2Dtop%7Bposition%3Afixed%3Bright%3A0%3Bleft%3A0%3Bz%2Dindex%3A1030%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dfixed%2Dbottom%2C%2Enavbar%2Dfixed%2Dtop%7Bborder%2Dradius%3A0%7D%7D%2Enavbar%2Dfixed%2Dtop%7Btop%3A0%3Bborder%2Dwidth%3A0%200%201px%7D%2Enavbar%2Dfixed%2Dbottom%7Bbottom%3A0%3Bmargin%2Dbottom%3A0%3Bborder%2Dwidth%3A1px%200%200%7D%2Enavbar%2Dbrand%7Bfloat%3Aleft%3Bheight%3A50px%3Bpadding%3A15px%2015px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A20px%7D%2Enavbar%2Dbrand%3Afocus%2C%2Enavbar%2Dbrand%3Ahover%7Btext%2Ddecoration%3Anone%7D%2Enavbar%2Dbrand%3Eimg%7Bdisplay%3Ablock%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%3E%2Econtainer%20%2Enavbar%2Dbrand%2C%2Enavbar%3E%2Econtainer%2Dfluid%20%2Enavbar%2Dbrand%7Bmargin%2Dleft%3A%2D15px%7D%7D%2Enavbar%2Dtoggle%7Bposition%3Arelative%3Bfloat%3Aright%3Bpadding%3A9px%2010px%3Bmargin%2Dtop%3A8px%3Bmargin%2Dright%3A15px%3Bmargin%2Dbottom%3A8px%3Bbackground%2Dcolor%3Atransparent%3Bbackground%2Dimage%3Anone%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Enavbar%2Dtoggle%3Afocus%7Boutline%3A0%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bdisplay%3Ablock%3Bwidth%3A22px%3Bheight%3A2px%3Bborder%2Dradius%3A1px%7D%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%2B%2Eicon%2Dbar%7Bmargin%2Dtop%3A4px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtoggle%7Bdisplay%3Anone%7D%7D%2Enavbar%2Dnav%7Bmargin%3A7%2E5px%20%2D15px%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A10px%3Bpadding%2Dbottom%3A10px%3Bline%2Dheight%3A20px%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%7Bposition%3Astatic%3Bfloat%3Anone%3Bwidth%3Aauto%3Bmargin%2Dtop%3A0%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edropdown%2Dheader%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bpadding%3A5px%2015px%205px%2025px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bline%2Dheight%3A20px%7D%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%7Bbackground%2Dimage%3Anone%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dnav%7Bfloat%3Aleft%3Bmargin%3A0%7D%2Enavbar%2Dnav%3Eli%7Bfloat%3Aleft%7D%2Enavbar%2Dnav%3Eli%3Ea%7Bpadding%2Dtop%3A15px%3Bpadding%2Dbottom%3A15px%7D%7D%2Enavbar%2Dform%7Bpadding%3A10px%2015px%3Bmargin%2Dtop%3A8px%3Bmargin%2Dright%3A%2D15px%3Bmargin%2Dbottom%3A8px%3Bmargin%2Dleft%3A%2D15px%3Bborder%2Dtop%3A1px%20solid%20transparent%3Bborder%2Dbottom%3A1px%20solid%20transparent%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%2C0%201px%200%20rgba%28255%2C255%2C255%2C%2E1%29%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%7Bdisplay%3Ainline%2Dblock%3Bwidth%3Aauto%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Eform%2Dcontrol%2Dstatic%7Bdisplay%3Ainline%2Dblock%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%7Bdisplay%3Ainline%2Dtable%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Eform%2Dcontrol%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Daddon%2C%2Enavbar%2Dform%20%2Einput%2Dgroup%20%2Einput%2Dgroup%2Dbtn%7Bwidth%3Aauto%7D%2Enavbar%2Dform%20%2Einput%2Dgroup%3E%2Eform%2Dcontrol%7Bwidth%3A100%25%7D%2Enavbar%2Dform%20%2Econtrol%2Dlabel%7Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Echeckbox%2C%2Enavbar%2Dform%20%2Eradio%7Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bvertical%2Dalign%3Amiddle%7D%2Enavbar%2Dform%20%2Echeckbox%20label%2C%2Enavbar%2Dform%20%2Eradio%20label%7Bpadding%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Echeckbox%20input%5Btype%3Dcheckbox%5D%2C%2Enavbar%2Dform%20%2Eradio%20input%5Btype%3Dradio%5D%7Bposition%3Arelative%3Bmargin%2Dleft%3A0%7D%2Enavbar%2Dform%20%2Ehas%2Dfeedback%20%2Eform%2Dcontrol%2Dfeedback%7Btop%3A0%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dform%20%2Eform%2Dgroup%7Bmargin%2Dbottom%3A5px%7D%2Enavbar%2Dform%20%2Eform%2Dgroup%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dform%7Bwidth%3Aauto%3Bpadding%2Dtop%3A0%3Bpadding%2Dbottom%3A0%3Bmargin%2Dright%3A0%3Bmargin%2Dleft%3A0%3Bborder%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3Anone%3Bbox%2Dshadow%3Anone%7D%7D%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dtop%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Enavbar%2Dfixed%2Dbottom%20%2Enavbar%2Dnav%3Eli%3E%2Edropdown%2Dmenu%7Bmargin%2Dbottom%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A0%3Bborder%2Dbottom%2Dleft%2Dradius%3A0%7D%2Enavbar%2Dbtn%7Bmargin%2Dtop%3A8px%3Bmargin%2Dbottom%3A8px%7D%2Enavbar%2Dbtn%2Ebtn%2Dsm%7Bmargin%2Dtop%3A10px%3Bmargin%2Dbottom%3A10px%7D%2Enavbar%2Dbtn%2Ebtn%2Dxs%7Bmargin%2Dtop%3A14px%3Bmargin%2Dbottom%3A14px%7D%2Enavbar%2Dtext%7Bmargin%2Dtop%3A15px%3Bmargin%2Dbottom%3A15px%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dtext%7Bfloat%3Aleft%3Bmargin%2Dright%3A15px%3Bmargin%2Dleft%3A15px%7D%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Enavbar%2Dleft%7Bfloat%3Aleft%21important%7D%2Enavbar%2Dright%7Bfloat%3Aright%21important%3Bmargin%2Dright%3A%2D15px%7D%2Enavbar%2Dright%7E%2Enavbar%2Dright%7Bmargin%2Dright%3A0%7D%7D%2Enavbar%2Ddefault%7Bbackground%2Dcolor%3A%23f8f8f8%3Bborder%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dbrand%3Ahover%7Bcolor%3A%235e5e5e%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtext%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%7Bcolor%3A%23333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23ccc%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3A%23ddd%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%3Ahover%7Bbackground%2Dcolor%3A%23ddd%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23888%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%7Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23e7e7e7%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%7Bcolor%3A%23333%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23555%3Bbackground%2Dcolor%3A%23e7e7e7%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%2C%2Enavbar%2Ddefault%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23ccc%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23333%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%7Bcolor%3A%23777%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23333%7D%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2C%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Ddefault%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23ccc%7D%2Enavbar%2Dinverse%7Bbackground%2Dcolor%3A%23222%3Bborder%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dbrand%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtext%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3Eli%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23444%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%7Bborder%2Dcolor%3A%23333%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%3Ahover%7Bbackground%2Dcolor%3A%23333%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dtoggle%20%2Eicon%2Dbar%7Bbackground%2Dcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dcollapse%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dform%7Bborder%2Dcolor%3A%23101010%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%3E%2Eopen%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23080808%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edropdown%2Dheader%7Bborder%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%20%2Edivider%7Bbackground%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3Eli%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3Atransparent%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Eactive%3Ea%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23080808%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Afocus%2C%2Enavbar%2Dinverse%20%2Enavbar%2Dnav%20%2Eopen%20%2Edropdown%2Dmenu%3E%2Edisabled%3Ea%3Ahover%7Bcolor%3A%23444%3Bbackground%2Dcolor%3Atransparent%7D%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Enavbar%2Dlink%3Ahover%7Bcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%7Bcolor%3A%239d9d9d%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23fff%7D%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Afocus%2C%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%5Bdisabled%5D%3Ahover%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Afocus%2Cfieldset%5Bdisabled%5D%20%2Enavbar%2Dinverse%20%2Ebtn%2Dlink%3Ahover%7Bcolor%3A%23444%7D%2Ebreadcrumb%7Bpadding%3A8px%2015px%3Bmargin%2Dbottom%3A20px%3Blist%2Dstyle%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dradius%3A4px%7D%2Ebreadcrumb%3Eli%7Bdisplay%3Ainline%2Dblock%7D%2Ebreadcrumb%3Eli%2Bli%3Abefore%7Bpadding%3A0%205px%3Bcolor%3A%23ccc%3Bcontent%3A%22%2F%5C00a0%22%7D%2Ebreadcrumb%3E%2Eactive%7Bcolor%3A%23777%7D%2Epagination%7Bdisplay%3Ainline%2Dblock%3Bpadding%2Dleft%3A0%3Bmargin%3A20px%200%3Bborder%2Dradius%3A4px%7D%2Epagination%3Eli%7Bdisplay%3Ainline%7D%2Epagination%3Eli%3Ea%2C%2Epagination%3Eli%3Espan%7Bposition%3Arelative%3Bfloat%3Aleft%3Bpadding%3A6px%2012px%3Bmargin%2Dleft%3A%2D1px%3Bline%2Dheight%3A1%2E42857143%3Bcolor%3A%23337ab7%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%7D%2Epagination%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%3Eli%3Afirst%2Dchild%3Espan%7Bmargin%2Dleft%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7D%2Epagination%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dtop%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%7D%2Epagination%3Eli%3Ea%3Afocus%2C%2Epagination%3Eli%3Ea%3Ahover%2C%2Epagination%3Eli%3Espan%3Afocus%2C%2Epagination%3Eli%3Espan%3Ahover%7Bz%2Dindex%3A3%3Bcolor%3A%2323527c%3Bbackground%2Dcolor%3A%23eee%3Bborder%2Dcolor%3A%23ddd%7D%2Epagination%3E%2Eactive%3Ea%2C%2Epagination%3E%2Eactive%3Ea%3Afocus%2C%2Epagination%3E%2Eactive%3Ea%3Ahover%2C%2Epagination%3E%2Eactive%3Espan%2C%2Epagination%3E%2Eactive%3Espan%3Afocus%2C%2Epagination%3E%2Eactive%3Espan%3Ahover%7Bz%2Dindex%3A2%3Bcolor%3A%23fff%3Bcursor%3Adefault%3Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%23337ab7%7D%2Epagination%3E%2Edisabled%3Ea%2C%2Epagination%3E%2Edisabled%3Ea%3Afocus%2C%2Epagination%3E%2Edisabled%3Ea%3Ahover%2C%2Epagination%3E%2Edisabled%3Espan%2C%2Epagination%3E%2Edisabled%3Espan%3Afocus%2C%2Epagination%3E%2Edisabled%3Espan%3Ahover%7Bcolor%3A%23777%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3A%23fff%3Bborder%2Dcolor%3A%23ddd%7D%2Epagination%2Dlg%3Eli%3Ea%2C%2Epagination%2Dlg%3Eli%3Espan%7Bpadding%3A10px%2016px%3Bfont%2Dsize%3A18px%3Bline%2Dheight%3A1%2E3333333%7D%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dtop%2Dleft%2Dradius%3A6px%3Bborder%2Dbottom%2Dleft%2Dradius%3A6px%7D%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dlg%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dtop%2Dright%2Dradius%3A6px%3Bborder%2Dbottom%2Dright%2Dradius%3A6px%7D%2Epagination%2Dsm%3Eli%3Ea%2C%2Epagination%2Dsm%3Eli%3Espan%7Bpadding%3A5px%2010px%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A1%2E5%7D%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Afirst%2Dchild%3Espan%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Ea%2C%2Epagination%2Dsm%3Eli%3Alast%2Dchild%3Espan%7Bborder%2Dtop%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%7D%2Epager%7Bpadding%2Dleft%3A0%3Bmargin%3A20px%200%3Btext%2Dalign%3Acenter%3Blist%2Dstyle%3Anone%7D%2Epager%20li%7Bdisplay%3Ainline%7D%2Epager%20li%3Ea%2C%2Epager%20li%3Espan%7Bdisplay%3Ainline%2Dblock%3Bpadding%3A5px%2014px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A15px%7D%2Epager%20li%3Ea%3Afocus%2C%2Epager%20li%3Ea%3Ahover%7Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23eee%7D%2Epager%20%2Enext%3Ea%2C%2Epager%20%2Enext%3Espan%7Bfloat%3Aright%7D%2Epager%20%2Eprevious%3Ea%2C%2Epager%20%2Eprevious%3Espan%7Bfloat%3Aleft%7D%2Epager%20%2Edisabled%3Ea%2C%2Epager%20%2Edisabled%3Ea%3Afocus%2C%2Epager%20%2Edisabled%3Ea%3Ahover%2C%2Epager%20%2Edisabled%3Espan%7Bcolor%3A%23777%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3A%23fff%7D%2Elabel%7Bdisplay%3Ainline%3Bpadding%3A%2E2em%20%2E6em%20%2E3em%3Bfont%2Dsize%3A75%25%3Bfont%2Dweight%3A700%3Bline%2Dheight%3A1%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Abaseline%3Bborder%2Dradius%3A%2E25em%7Da%2Elabel%3Afocus%2Ca%2Elabel%3Ahover%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elabel%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Elabel%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Elabel%2Ddefault%7Bbackground%2Dcolor%3A%23777%7D%2Elabel%2Ddefault%5Bhref%5D%3Afocus%2C%2Elabel%2Ddefault%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%235e5e5e%7D%2Elabel%2Dprimary%7Bbackground%2Dcolor%3A%23337ab7%7D%2Elabel%2Dprimary%5Bhref%5D%3Afocus%2C%2Elabel%2Dprimary%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%23286090%7D%2Elabel%2Dsuccess%7Bbackground%2Dcolor%3A%235cb85c%7D%2Elabel%2Dsuccess%5Bhref%5D%3Afocus%2C%2Elabel%2Dsuccess%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%23449d44%7D%2Elabel%2Dinfo%7Bbackground%2Dcolor%3A%235bc0de%7D%2Elabel%2Dinfo%5Bhref%5D%3Afocus%2C%2Elabel%2Dinfo%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%2331b0d5%7D%2Elabel%2Dwarning%7Bbackground%2Dcolor%3A%23f0ad4e%7D%2Elabel%2Dwarning%5Bhref%5D%3Afocus%2C%2Elabel%2Dwarning%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%23ec971f%7D%2Elabel%2Ddanger%7Bbackground%2Dcolor%3A%23d9534f%7D%2Elabel%2Ddanger%5Bhref%5D%3Afocus%2C%2Elabel%2Ddanger%5Bhref%5D%3Ahover%7Bbackground%2Dcolor%3A%23c9302c%7D%2Ebadge%7Bdisplay%3Ainline%2Dblock%3Bmin%2Dwidth%3A10px%3Bpadding%3A3px%207px%3Bfont%2Dsize%3A12px%3Bfont%2Dweight%3A700%3Bline%2Dheight%3A1%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bwhite%2Dspace%3Anowrap%3Bvertical%2Dalign%3Amiddle%3Bbackground%2Dcolor%3A%23777%3Bborder%2Dradius%3A10px%7D%2Ebadge%3Aempty%7Bdisplay%3Anone%7D%2Ebtn%20%2Ebadge%7Bposition%3Arelative%3Btop%3A%2D1px%7D%2Ebtn%2Dgroup%2Dxs%3E%2Ebtn%20%2Ebadge%2C%2Ebtn%2Dxs%20%2Ebadge%7Btop%3A0%3Bpadding%3A1px%205px%7Da%2Ebadge%3Afocus%2Ca%2Ebadge%3Ahover%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%7D%2Elist%2Dgroup%2Ditem%2Eactive%3E%2Ebadge%2C%2Enav%2Dpills%3E%2Eactive%3Ea%3E%2Ebadge%7Bcolor%3A%23337ab7%3Bbackground%2Dcolor%3A%23fff%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%7Bfloat%3Aright%7D%2Elist%2Dgroup%2Ditem%3E%2Ebadge%2B%2Ebadge%7Bmargin%2Dright%3A5px%7D%2Enav%2Dpills%3Eli%3Ea%3E%2Ebadge%7Bmargin%2Dleft%3A3px%7D%2Ejumbotron%7Bpadding%2Dtop%3A30px%3Bpadding%2Dbottom%3A30px%3Bmargin%2Dbottom%3A30px%3Bcolor%3Ainherit%3Bbackground%2Dcolor%3A%23eee%7D%2Ejumbotron%20%2Eh1%2C%2Ejumbotron%20h1%7Bcolor%3Ainherit%7D%2Ejumbotron%20p%7Bmargin%2Dbottom%3A15px%3Bfont%2Dsize%3A21px%3Bfont%2Dweight%3A200%7D%2Ejumbotron%3Ehr%7Bborder%2Dtop%2Dcolor%3A%23d5d5d5%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bborder%2Dradius%3A6px%7D%2Ejumbotron%20%2Econtainer%7Bmax%2Dwidth%3A100%25%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ejumbotron%7Bpadding%2Dtop%3A48px%3Bpadding%2Dbottom%3A48px%7D%2Econtainer%20%2Ejumbotron%2C%2Econtainer%2Dfluid%20%2Ejumbotron%7Bpadding%2Dright%3A60px%3Bpadding%2Dleft%3A60px%7D%2Ejumbotron%20%2Eh1%2C%2Ejumbotron%20h1%7Bfont%2Dsize%3A63px%7D%7D%2Ethumbnail%7Bdisplay%3Ablock%3Bpadding%3A4px%3Bmargin%2Dbottom%3A20px%3Bline%2Dheight%3A1%2E42857143%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3Aborder%20%2E2s%20ease%2Din%2Dout%3Btransition%3Aborder%20%2E2s%20ease%2Din%2Dout%7D%2Ethumbnail%20a%3Eimg%2C%2Ethumbnail%3Eimg%7Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7Da%2Ethumbnail%2Eactive%2Ca%2Ethumbnail%3Afocus%2Ca%2Ethumbnail%3Ahover%7Bborder%2Dcolor%3A%23337ab7%7D%2Ethumbnail%20%2Ecaption%7Bpadding%3A9px%3Bcolor%3A%23333%7D%2Ealert%7Bpadding%3A15px%3Bmargin%2Dbottom%3A20px%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%7D%2Ealert%20h4%7Bmargin%2Dtop%3A0%3Bcolor%3Ainherit%7D%2Ealert%20%2Ealert%2Dlink%7Bfont%2Dweight%3A700%7D%2Ealert%3Ep%2C%2Ealert%3Eul%7Bmargin%2Dbottom%3A0%7D%2Ealert%3Ep%2Bp%7Bmargin%2Dtop%3A5px%7D%2Ealert%2Ddismissable%2C%2Ealert%2Ddismissible%7Bpadding%2Dright%3A35px%7D%2Ealert%2Ddismissable%20%2Eclose%2C%2Ealert%2Ddismissible%20%2Eclose%7Bposition%3Arelative%3Btop%3A%2D2px%3Bright%3A%2D21px%3Bcolor%3Ainherit%7D%2Ealert%2Dsuccess%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%23d6e9c6%7D%2Ealert%2Dsuccess%20hr%7Bborder%2Dtop%2Dcolor%3A%23c9e2b3%7D%2Ealert%2Dsuccess%20%2Ealert%2Dlink%7Bcolor%3A%232b542c%7D%2Ealert%2Dinfo%7Bcolor%3A%2331708f%3Bbackground%2Dcolor%3A%23d9edf7%3Bborder%2Dcolor%3A%23bce8f1%7D%2Ealert%2Dinfo%20hr%7Bborder%2Dtop%2Dcolor%3A%23a6e1ec%7D%2Ealert%2Dinfo%20%2Ealert%2Dlink%7Bcolor%3A%23245269%7D%2Ealert%2Dwarning%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%2Dcolor%3A%23faebcc%7D%2Ealert%2Dwarning%20hr%7Bborder%2Dtop%2Dcolor%3A%23f7e1b5%7D%2Ealert%2Dwarning%20%2Ealert%2Dlink%7Bcolor%3A%2366512c%7D%2Ealert%2Ddanger%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23ebccd1%7D%2Ealert%2Ddanger%20hr%7Bborder%2Dtop%2Dcolor%3A%23e4b9c0%7D%2Ealert%2Ddanger%20%2Ealert%2Dlink%7Bcolor%3A%23843534%7D%40%2Dwebkit%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40%2Do%2Dkeyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%40keyframes%20progress%2Dbar%2Dstripes%7Bfrom%7Bbackground%2Dposition%3A40px%200%7Dto%7Bbackground%2Dposition%3A0%200%7D%7D%2Eprogress%7Bheight%3A20px%3Bmargin%2Dbottom%3A20px%3Boverflow%3Ahidden%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C%2E1%29%3Bbox%2Dshadow%3Ainset%200%201px%202px%20rgba%280%2C0%2C0%2C%2E1%29%7D%2Eprogress%2Dbar%7Bfloat%3Aleft%3Bwidth%3A0%3Bheight%3A100%25%3Bfont%2Dsize%3A12px%3Bline%2Dheight%3A20px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23337ab7%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C%2E15%29%3Bbox%2Dshadow%3Ainset%200%20%2D1px%200%20rgba%280%2C0%2C0%2C%2E15%29%3B%2Dwebkit%2Dtransition%3Awidth%20%2E6s%20ease%3B%2Do%2Dtransition%3Awidth%20%2E6s%20ease%3Btransition%3Awidth%20%2E6s%20ease%7D%2Eprogress%2Dbar%2Dstriped%2C%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3B%2Dwebkit%2Dbackground%2Dsize%3A40px%2040px%3Bbackground%2Dsize%3A40px%2040px%7D%2Eprogress%2Dbar%2Eactive%2C%2Eprogress%2Eactive%20%2Eprogress%2Dbar%7B%2Dwebkit%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3B%2Do%2Danimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%3Banimation%3Aprogress%2Dbar%2Dstripes%202s%20linear%20infinite%7D%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dcolor%3A%235cb85c%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dsuccess%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dcolor%3A%235bc0de%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dinfo%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dcolor%3A%23f0ad4e%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Dwarning%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dcolor%3A%23d9534f%7D%2Eprogress%2Dstriped%20%2Eprogress%2Dbar%2Ddanger%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%3Bbackground%2Dimage%3Alinear%2Dgradient%2845deg%2Crgba%28255%2C255%2C255%2C%2E15%29%2025%25%2Ctransparent%2025%25%2Ctransparent%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2050%25%2Crgba%28255%2C255%2C255%2C%2E15%29%2075%25%2Ctransparent%2075%25%2Ctransparent%29%7D%2Emedia%7Bmargin%2Dtop%3A15px%7D%2Emedia%3Afirst%2Dchild%7Bmargin%2Dtop%3A0%7D%2Emedia%2C%2Emedia%2Dbody%7Boverflow%3Ahidden%3Bzoom%3A1%7D%2Emedia%2Dbody%7Bwidth%3A10000px%7D%2Emedia%2Dobject%7Bdisplay%3Ablock%7D%2Emedia%2Dobject%2Eimg%2Dthumbnail%7Bmax%2Dwidth%3Anone%7D%2Emedia%2Dright%2C%2Emedia%3E%2Epull%2Dright%7Bpadding%2Dleft%3A10px%7D%2Emedia%2Dleft%2C%2Emedia%3E%2Epull%2Dleft%7Bpadding%2Dright%3A10px%7D%2Emedia%2Dbody%2C%2Emedia%2Dleft%2C%2Emedia%2Dright%7Bdisplay%3Atable%2Dcell%3Bvertical%2Dalign%3Atop%7D%2Emedia%2Dmiddle%7Bvertical%2Dalign%3Amiddle%7D%2Emedia%2Dbottom%7Bvertical%2Dalign%3Abottom%7D%2Emedia%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Emedia%2Dlist%7Bpadding%2Dleft%3A0%3Blist%2Dstyle%3Anone%7D%2Elist%2Dgroup%7Bpadding%2Dleft%3A0%3Bmargin%2Dbottom%3A20px%7D%2Elist%2Dgroup%2Ditem%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bpadding%3A10px%2015px%3Bmargin%2Dbottom%3A%2D1px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20%23ddd%7D%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A4px%3Bborder%2Dtop%2Dright%2Dradius%3A4px%7D%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bmargin%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A4px%3Bborder%2Dbottom%2Dleft%2Dradius%3A4px%7Da%2Elist%2Dgroup%2Ditem%2Cbutton%2Elist%2Dgroup%2Ditem%7Bcolor%3A%23555%7Da%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3A%23333%7Da%2Elist%2Dgroup%2Ditem%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%3Ahover%7Bcolor%3A%23555%3Btext%2Ddecoration%3Anone%3Bbackground%2Dcolor%3A%23f5f5f5%7Dbutton%2Elist%2Dgroup%2Ditem%7Bwidth%3A100%25%3Btext%2Dalign%3Aleft%7D%2Elist%2Dgroup%2Ditem%2Edisabled%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%7Bcolor%3A%23777%3Bcursor%3Anot%2Dallowed%3Bbackground%2Dcolor%3A%23eee%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Edisabled%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Edisabled%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23777%7D%2Elist%2Dgroup%2Ditem%2Eactive%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%7Bz%2Dindex%3A2%3Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%23337ab7%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3E%2Esmall%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dheading%3Esmall%7Bcolor%3Ainherit%7D%2Elist%2Dgroup%2Ditem%2Eactive%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Afocus%20%2Elist%2Dgroup%2Ditem%2Dtext%2C%2Elist%2Dgroup%2Ditem%2Eactive%3Ahover%20%2Elist%2Dgroup%2Ditem%2Dtext%7Bcolor%3A%23c7ddef%7D%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23dff0d8%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%7Bcolor%3A%233c763d%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%3Ahover%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23d0e9c6%7Da%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dsuccess%2Eactive%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%233c763d%3Bborder%2Dcolor%3A%233c763d%7D%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%2331708f%3Bbackground%2Dcolor%3A%23d9edf7%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%7Bcolor%3A%2331708f%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%3Ahover%7Bcolor%3A%2331708f%3Bbackground%2Dcolor%3A%23c4e3f3%7Da%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dinfo%2Eactive%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%2331708f%3Bborder%2Dcolor%3A%2331708f%7D%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23fcf8e3%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%7Bcolor%3A%238a6d3b%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%3Ahover%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23faf2cc%7Da%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Dwarning%2Eactive%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%238a6d3b%3Bborder%2Dcolor%3A%238a6d3b%7D%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23f2dede%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%7Bcolor%3A%23a94442%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%20%2Elist%2Dgroup%2Ditem%2Dheading%7Bcolor%3Ainherit%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%3Ahover%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23ebcccc%7Da%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%2Ca%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Afocus%2Cbutton%2Elist%2Dgroup%2Ditem%2Ddanger%2Eactive%3Ahover%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23a94442%3Bborder%2Dcolor%3A%23a94442%7D%2Elist%2Dgroup%2Ditem%2Dheading%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A5px%7D%2Elist%2Dgroup%2Ditem%2Dtext%7Bmargin%2Dbottom%3A0%3Bline%2Dheight%3A1%2E3%7D%2Epanel%7Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23fff%3Bborder%3A1px%20solid%20transparent%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C%2E05%29%3Bbox%2Dshadow%3A0%201px%201px%20rgba%280%2C0%2C0%2C%2E05%29%7D%2Epanel%2Dbody%7Bpadding%3A15px%7D%2Epanel%2Dheading%7Bpadding%3A10px%2015px%3Bborder%2Dbottom%3A1px%20solid%20transparent%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%2Dheading%3E%2Edropdown%20%2Edropdown%2Dtoggle%7Bcolor%3Ainherit%7D%2Epanel%2Dtitle%7Bmargin%2Dtop%3A0%3Bmargin%2Dbottom%3A0%3Bfont%2Dsize%3A16px%3Bcolor%3Ainherit%7D%2Epanel%2Dtitle%3E%2Esmall%2C%2Epanel%2Dtitle%3E%2Esmall%3Ea%2C%2Epanel%2Dtitle%3Ea%2C%2Epanel%2Dtitle%3Esmall%2C%2Epanel%2Dtitle%3Esmall%3Ea%7Bcolor%3Ainherit%7D%2Epanel%2Dfooter%7Bpadding%3A10px%2015px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dtop%3A1px%20solid%20%23ddd%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Elist%2Dgroup%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%7Bborder%2Dwidth%3A1px%200%3Bborder%2Dradius%3A0%7D%2Epanel%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Afirst%2Dchild%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%3A0%3Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%2C%2Epanel%3E%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%3Alast%2Dchild%20%2Elist%2Dgroup%2Ditem%3Alast%2Dchild%7Bborder%2Dbottom%3A0%3Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A0%3Bborder%2Dtop%2Dright%2Dradius%3A0%7D%2Epanel%2Dheading%2B%2Elist%2Dgroup%20%2Elist%2Dgroup%2Ditem%3Afirst%2Dchild%7Bborder%2Dtop%2Dwidth%3A0%7D%2Elist%2Dgroup%2B%2Epanel%2Dfooter%7Bborder%2Dtop%2Dwidth%3A0%7D%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%2C%2Epanel%3E%2Etable%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%7Bmargin%2Dbottom%3A0%7D%2Epanel%3E%2Epanel%2Dcollapse%3E%2Etable%20caption%2C%2Epanel%3E%2Etable%20caption%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%20caption%7Bpadding%2Dright%3A15px%3Bpadding%2Dleft%3A15px%7D%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%3Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dtop%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Afirst%2Dchild%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Afirst%2Dchild%3Ethead%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dtop%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%3Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Afirst%2Dchild%7Bborder%2Dbottom%2Dleft%2Dradius%3A3px%7D%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3Alast%2Dchild%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etbody%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20td%3Alast%2Dchild%2C%2Epanel%3E%2Etable%3Alast%2Dchild%3Etfoot%3Alast%2Dchild%3Etr%3Alast%2Dchild%20th%3Alast%2Dchild%7Bborder%2Dbottom%2Dright%2Dradius%3A3px%7D%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2C%2Epanel%3E%2Epanel%2Dbody%2B%2Etable%2Dresponsive%2C%2Epanel%3E%2Etable%2B%2Epanel%2Dbody%2C%2Epanel%3E%2Etable%2Dresponsive%2B%2Epanel%2Dbody%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7D%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20td%2C%2Epanel%3E%2Etable%3Etbody%3Afirst%2Dchild%3Etr%3Afirst%2Dchild%20th%7Bborder%2Dtop%3A0%7D%2Epanel%3E%2Etable%2Dbordered%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%7Bborder%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Afirst%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Afirst%2Dchild%7Bborder%2Dleft%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Eth%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Etd%3Alast%2Dchild%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Eth%3Alast%2Dchild%7Bborder%2Dright%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Afirst%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Ethead%3Etr%3Afirst%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etbody%3Etr%3Alast%2Dchild%3Eth%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Etd%2C%2Epanel%3E%2Etable%2Dresponsive%3E%2Etable%2Dbordered%3Etfoot%3Etr%3Alast%2Dchild%3Eth%7Bborder%2Dbottom%3A0%7D%2Epanel%3E%2Etable%2Dresponsive%7Bmargin%2Dbottom%3A0%3Bborder%3A0%7D%2Epanel%2Dgroup%7Bmargin%2Dbottom%3A20px%7D%2Epanel%2Dgroup%20%2Epanel%7Bmargin%2Dbottom%3A0%3Bborder%2Dradius%3A4px%7D%2Epanel%2Dgroup%20%2Epanel%2B%2Epanel%7Bmargin%2Dtop%3A5px%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%7Bborder%2Dbottom%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Elist%2Dgroup%2C%2Epanel%2Dgroup%20%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%3A1px%20solid%20%23ddd%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%7Bborder%2Dtop%3A0%7D%2Epanel%2Dgroup%20%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%20%2Epanel%2Dbody%7Bborder%2Dbottom%3A1px%20solid%20%23ddd%7D%2Epanel%2Ddefault%7Bborder%2Dcolor%3A%23ddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%7Bcolor%3A%23333%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%2Dcolor%3A%23ddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23ddd%7D%2Epanel%2Ddefault%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23f5f5f5%3Bbackground%2Dcolor%3A%23333%7D%2Epanel%2Ddefault%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23ddd%7D%2Epanel%2Dprimary%7Bborder%2Dcolor%3A%23337ab7%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%7Bcolor%3A%23fff%3Bbackground%2Dcolor%3A%23337ab7%3Bborder%2Dcolor%3A%23337ab7%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23337ab7%7D%2Epanel%2Dprimary%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23337ab7%3Bbackground%2Dcolor%3A%23fff%7D%2Epanel%2Dprimary%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23337ab7%7D%2Epanel%2Dsuccess%7Bborder%2Dcolor%3A%23d6e9c6%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%7Bcolor%3A%233c763d%3Bbackground%2Dcolor%3A%23dff0d8%3Bborder%2Dcolor%3A%23d6e9c6%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23d6e9c6%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23dff0d8%3Bbackground%2Dcolor%3A%233c763d%7D%2Epanel%2Dsuccess%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23d6e9c6%7D%2Epanel%2Dinfo%7Bborder%2Dcolor%3A%23bce8f1%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%7Bcolor%3A%2331708f%3Bbackground%2Dcolor%3A%23d9edf7%3Bborder%2Dcolor%3A%23bce8f1%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23bce8f1%7D%2Epanel%2Dinfo%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23d9edf7%3Bbackground%2Dcolor%3A%2331708f%7D%2Epanel%2Dinfo%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23bce8f1%7D%2Epanel%2Dwarning%7Bborder%2Dcolor%3A%23faebcc%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%7Bcolor%3A%238a6d3b%3Bbackground%2Dcolor%3A%23fcf8e3%3Bborder%2Dcolor%3A%23faebcc%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23faebcc%7D%2Epanel%2Dwarning%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23fcf8e3%3Bbackground%2Dcolor%3A%238a6d3b%7D%2Epanel%2Dwarning%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23faebcc%7D%2Epanel%2Ddanger%7Bborder%2Dcolor%3A%23ebccd1%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%7Bcolor%3A%23a94442%3Bbackground%2Dcolor%3A%23f2dede%3Bborder%2Dcolor%3A%23ebccd1%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dtop%2Dcolor%3A%23ebccd1%7D%2Epanel%2Ddanger%3E%2Epanel%2Dheading%20%2Ebadge%7Bcolor%3A%23f2dede%3Bbackground%2Dcolor%3A%23a94442%7D%2Epanel%2Ddanger%3E%2Epanel%2Dfooter%2B%2Epanel%2Dcollapse%3E%2Epanel%2Dbody%7Bborder%2Dbottom%2Dcolor%3A%23ebccd1%7D%2Eembed%2Dresponsive%7Bposition%3Arelative%3Bdisplay%3Ablock%3Bheight%3A0%3Bpadding%3A0%3Boverflow%3Ahidden%7D%2Eembed%2Dresponsive%20%2Eembed%2Dresponsive%2Ditem%2C%2Eembed%2Dresponsive%20embed%2C%2Eembed%2Dresponsive%20iframe%2C%2Eembed%2Dresponsive%20object%2C%2Eembed%2Dresponsive%20video%7Bposition%3Aabsolute%3Btop%3A0%3Bbottom%3A0%3Bleft%3A0%3Bwidth%3A100%25%3Bheight%3A100%25%3Bborder%3A0%7D%2Eembed%2Dresponsive%2D16by9%7Bpadding%2Dbottom%3A56%2E25%25%7D%2Eembed%2Dresponsive%2D4by3%7Bpadding%2Dbottom%3A75%25%7D%2Ewell%7Bmin%2Dheight%3A20px%3Bpadding%3A19px%3Bmargin%2Dbottom%3A20px%3Bbackground%2Dcolor%3A%23f5f5f5%3Bborder%3A1px%20solid%20%23e3e3e3%3Bborder%2Dradius%3A4px%3B%2Dwebkit%2Dbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E05%29%3Bbox%2Dshadow%3Ainset%200%201px%201px%20rgba%280%2C0%2C0%2C%2E05%29%7D%2Ewell%20blockquote%7Bborder%2Dcolor%3A%23ddd%3Bborder%2Dcolor%3Argba%280%2C0%2C0%2C%2E15%29%7D%2Ewell%2Dlg%7Bpadding%3A24px%3Bborder%2Dradius%3A6px%7D%2Ewell%2Dsm%7Bpadding%3A9px%3Bborder%2Dradius%3A3px%7D%2Eclose%7Bfloat%3Aright%3Bfont%2Dsize%3A21px%3Bfont%2Dweight%3A700%3Bline%2Dheight%3A1%3Bcolor%3A%23000%3Btext%2Dshadow%3A0%201px%200%20%23fff%3Bfilter%3Aalpha%28opacity%3D20%29%3Bopacity%3A%2E2%7D%2Eclose%3Afocus%2C%2Eclose%3Ahover%7Bcolor%3A%23000%3Btext%2Ddecoration%3Anone%3Bcursor%3Apointer%3Bfilter%3Aalpha%28opacity%3D50%29%3Bopacity%3A%2E5%7Dbutton%2Eclose%7B%2Dwebkit%2Dappearance%3Anone%3Bpadding%3A0%3Bcursor%3Apointer%3Bbackground%3A0%200%3Bborder%3A0%7D%2Emodal%2Dopen%7Boverflow%3Ahidden%7D%2Emodal%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1050%3Bdisplay%3Anone%3Boverflow%3Ahidden%3B%2Dwebkit%2Doverflow%2Dscrolling%3Atouch%3Boutline%3A0%7D%2Emodal%2Efade%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E3s%20ease%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E3s%20ease%2Dout%3Btransition%3Atransform%20%2E3s%20ease%2Dout%3B%2Dwebkit%2Dtransform%3Atranslate%280%2C%2D25%25%29%3B%2Dms%2Dtransform%3Atranslate%280%2C%2D25%25%29%3B%2Do%2Dtransform%3Atranslate%280%2C%2D25%25%29%3Btransform%3Atranslate%280%2C%2D25%25%29%7D%2Emodal%2Ein%20%2Emodal%2Ddialog%7B%2Dwebkit%2Dtransform%3Atranslate%280%2C0%29%3B%2Dms%2Dtransform%3Atranslate%280%2C0%29%3B%2Do%2Dtransform%3Atranslate%280%2C0%29%3Btransform%3Atranslate%280%2C0%29%7D%2Emodal%2Dopen%20%2Emodal%7Boverflow%2Dx%3Ahidden%3Boverflow%2Dy%3Aauto%7D%2Emodal%2Ddialog%7Bposition%3Arelative%3Bwidth%3Aauto%3Bmargin%3A10px%7D%2Emodal%2Dcontent%7Bposition%3Arelative%3Bbackground%2Dcolor%3A%23fff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23999%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C%2E2%29%3Bborder%2Dradius%3A6px%3Boutline%3A0%3B%2Dwebkit%2Dbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C%2E5%29%3Bbox%2Dshadow%3A0%203px%209px%20rgba%280%2C0%2C0%2C%2E5%29%7D%2Emodal%2Dbackdrop%7Bposition%3Afixed%3Btop%3A0%3Bright%3A0%3Bbottom%3A0%3Bleft%3A0%3Bz%2Dindex%3A1040%3Bbackground%2Dcolor%3A%23000%7D%2Emodal%2Dbackdrop%2Efade%7Bfilter%3Aalpha%28opacity%3D0%29%3Bopacity%3A0%7D%2Emodal%2Dbackdrop%2Ein%7Bfilter%3Aalpha%28opacity%3D50%29%3Bopacity%3A%2E5%7D%2Emodal%2Dheader%7Bmin%2Dheight%3A16%2E43px%3Bpadding%3A15px%3Bborder%2Dbottom%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dheader%20%2Eclose%7Bmargin%2Dtop%3A%2D2px%7D%2Emodal%2Dtitle%7Bmargin%3A0%3Bline%2Dheight%3A1%2E42857143%7D%2Emodal%2Dbody%7Bposition%3Arelative%3Bpadding%3A15px%7D%2Emodal%2Dfooter%7Bpadding%3A15px%3Btext%2Dalign%3Aright%3Bborder%2Dtop%3A1px%20solid%20%23e5e5e5%7D%2Emodal%2Dfooter%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dbottom%3A0%3Bmargin%2Dleft%3A5px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dgroup%20%2Ebtn%2B%2Ebtn%7Bmargin%2Dleft%3A%2D1px%7D%2Emodal%2Dfooter%20%2Ebtn%2Dblock%2B%2Ebtn%2Dblock%7Bmargin%2Dleft%3A0%7D%2Emodal%2Dscrollbar%2Dmeasure%7Bposition%3Aabsolute%3Btop%3A%2D9999px%3Bwidth%3A50px%3Bheight%3A50px%3Boverflow%3Ascroll%7D%40media%20%28min%2Dwidth%3A768px%29%7B%2Emodal%2Ddialog%7Bwidth%3A600px%3Bmargin%3A30px%20auto%7D%2Emodal%2Dcontent%7B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C%2E5%29%3Bbox%2Dshadow%3A0%205px%2015px%20rgba%280%2C0%2C0%2C%2E5%29%7D%2Emodal%2Dsm%7Bwidth%3A300px%7D%7D%40media%20%28min%2Dwidth%3A992px%29%7B%2Emodal%2Dlg%7Bwidth%3A900px%7D%7D%2Etooltip%7Bposition%3Aabsolute%3Bz%2Dindex%3A1070%3Bdisplay%3Ablock%3Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A12px%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bletter%2Dspacing%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bwhite%2Dspace%3Anormal%3Bfilter%3Aalpha%28opacity%3D0%29%3Bopacity%3A0%3Bline%2Dbreak%3Aauto%7D%2Etooltip%2Ein%7Bfilter%3Aalpha%28opacity%3D90%29%3Bopacity%3A%2E9%7D%2Etooltip%2Etop%7Bpadding%3A5px%200%3Bmargin%2Dtop%3A%2D3px%7D%2Etooltip%2Eright%7Bpadding%3A0%205px%3Bmargin%2Dleft%3A3px%7D%2Etooltip%2Ebottom%7Bpadding%3A5px%200%3Bmargin%2Dtop%3A3px%7D%2Etooltip%2Eleft%7Bpadding%3A0%205px%3Bmargin%2Dleft%3A%2D3px%7D%2Etooltip%2Dinner%7Bmax%2Dwidth%3A200px%3Bpadding%3A3px%208px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Bbackground%2Dcolor%3A%23000%3Bborder%2Dradius%3A4px%7D%2Etooltip%2Darrow%7Bposition%3Aabsolute%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Etooltip%2Etop%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000%7D%2Etooltip%2Etop%2Dleft%20%2Etooltip%2Darrow%7Bright%3A5px%3Bbottom%3A0%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000%7D%2Etooltip%2Etop%2Dright%20%2Etooltip%2Darrow%7Bbottom%3A0%3Bleft%3A5px%3Bmargin%2Dbottom%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%200%3Bborder%2Dtop%2Dcolor%3A%23000%7D%2Etooltip%2Eright%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bleft%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%205px%205px%200%3Bborder%2Dright%2Dcolor%3A%23000%7D%2Etooltip%2Eleft%20%2Etooltip%2Darrow%7Btop%3A50%25%3Bright%3A0%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A5px%200%205px%205px%3Bborder%2Dleft%2Dcolor%3A%23000%7D%2Etooltip%2Ebottom%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000%7D%2Etooltip%2Ebottom%2Dleft%20%2Etooltip%2Darrow%7Btop%3A0%3Bright%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000%7D%2Etooltip%2Ebottom%2Dright%20%2Etooltip%2Darrow%7Btop%3A0%3Bleft%3A5px%3Bmargin%2Dtop%3A%2D5px%3Bborder%2Dwidth%3A0%205px%205px%3Bborder%2Dbottom%2Dcolor%3A%23000%7D%2Epopover%7Bposition%3Aabsolute%3Btop%3A0%3Bleft%3A0%3Bz%2Dindex%3A1060%3Bdisplay%3Anone%3Bmax%2Dwidth%3A276px%3Bpadding%3A1px%3Bfont%2Dfamily%3A%22Helvetica%20Neue%22%2CHelvetica%2CArial%2Csans%2Dserif%3Bfont%2Dsize%3A14px%3Bfont%2Dstyle%3Anormal%3Bfont%2Dweight%3A400%3Bline%2Dheight%3A1%2E42857143%3Btext%2Dalign%3Aleft%3Btext%2Dalign%3Astart%3Btext%2Ddecoration%3Anone%3Btext%2Dshadow%3Anone%3Btext%2Dtransform%3Anone%3Bletter%2Dspacing%3Anormal%3Bword%2Dbreak%3Anormal%3Bword%2Dspacing%3Anormal%3Bword%2Dwrap%3Anormal%3Bwhite%2Dspace%3Anormal%3Bbackground%2Dcolor%3A%23fff%3B%2Dwebkit%2Dbackground%2Dclip%3Apadding%2Dbox%3Bbackground%2Dclip%3Apadding%2Dbox%3Bborder%3A1px%20solid%20%23ccc%3Bborder%3A1px%20solid%20rgba%280%2C0%2C0%2C%2E2%29%3Bborder%2Dradius%3A6px%3B%2Dwebkit%2Dbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C%2E2%29%3Bbox%2Dshadow%3A0%205px%2010px%20rgba%280%2C0%2C0%2C%2E2%29%3Bline%2Dbreak%3Aauto%7D%2Epopover%2Etop%7Bmargin%2Dtop%3A%2D10px%7D%2Epopover%2Eright%7Bmargin%2Dleft%3A10px%7D%2Epopover%2Ebottom%7Bmargin%2Dtop%3A10px%7D%2Epopover%2Eleft%7Bmargin%2Dleft%3A%2D10px%7D%2Epopover%2Dtitle%7Bpadding%3A8px%2014px%3Bmargin%3A0%3Bfont%2Dsize%3A14px%3Bbackground%2Dcolor%3A%23f7f7f7%3Bborder%2Dbottom%3A1px%20solid%20%23ebebeb%3Bborder%2Dradius%3A5px%205px%200%200%7D%2Epopover%2Dcontent%7Bpadding%3A9px%2014px%7D%2Epopover%3E%2Earrow%2C%2Epopover%3E%2Earrow%3Aafter%7Bposition%3Aabsolute%3Bdisplay%3Ablock%3Bwidth%3A0%3Bheight%3A0%3Bborder%2Dcolor%3Atransparent%3Bborder%2Dstyle%3Asolid%7D%2Epopover%3E%2Earrow%7Bborder%2Dwidth%3A11px%7D%2Epopover%3E%2Earrow%3Aafter%7Bcontent%3A%22%22%3Bborder%2Dwidth%3A10px%7D%2Epopover%2Etop%3E%2Earrow%7Bbottom%3A%2D11px%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dtop%2Dcolor%3A%23999%3Bborder%2Dtop%2Dcolor%3Argba%280%2C0%2C0%2C%2E25%29%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Epopover%2Etop%3E%2Earrow%3Aafter%7Bbottom%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bcontent%3A%22%20%22%3Bborder%2Dtop%2Dcolor%3A%23fff%3Bborder%2Dbottom%2Dwidth%3A0%7D%2Epopover%2Eright%3E%2Earrow%7Btop%3A50%25%3Bleft%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dright%2Dcolor%3A%23999%3Bborder%2Dright%2Dcolor%3Argba%280%2C0%2C0%2C%2E25%29%3Bborder%2Dleft%2Dwidth%3A0%7D%2Epopover%2Eright%3E%2Earrow%3Aafter%7Bbottom%3A%2D10px%3Bleft%3A1px%3Bcontent%3A%22%20%22%3Bborder%2Dright%2Dcolor%3A%23fff%3Bborder%2Dleft%2Dwidth%3A0%7D%2Epopover%2Ebottom%3E%2Earrow%7Btop%3A%2D11px%3Bleft%3A50%25%3Bmargin%2Dleft%3A%2D11px%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23999%3Bborder%2Dbottom%2Dcolor%3Argba%280%2C0%2C0%2C%2E25%29%7D%2Epopover%2Ebottom%3E%2Earrow%3Aafter%7Btop%3A1px%3Bmargin%2Dleft%3A%2D10px%3Bcontent%3A%22%20%22%3Bborder%2Dtop%2Dwidth%3A0%3Bborder%2Dbottom%2Dcolor%3A%23fff%7D%2Epopover%2Eleft%3E%2Earrow%7Btop%3A50%25%3Bright%3A%2D11px%3Bmargin%2Dtop%3A%2D11px%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23999%3Bborder%2Dleft%2Dcolor%3Argba%280%2C0%2C0%2C%2E25%29%7D%2Epopover%2Eleft%3E%2Earrow%3Aafter%7Bright%3A1px%3Bbottom%3A%2D10px%3Bcontent%3A%22%20%22%3Bborder%2Dright%2Dwidth%3A0%3Bborder%2Dleft%2Dcolor%3A%23fff%7D%2Ecarousel%7Bposition%3Arelative%7D%2Ecarousel%2Dinner%7Bposition%3Arelative%3Bwidth%3A100%25%3Boverflow%3Ahidden%7D%2Ecarousel%2Dinner%3E%2Eitem%7Bposition%3Arelative%3Bdisplay%3Anone%3B%2Dwebkit%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3B%2Do%2Dtransition%3A%2E6s%20ease%2Din%2Dout%20left%3Btransition%3A%2E6s%20ease%2Din%2Dout%20left%7D%2Ecarousel%2Dinner%3E%2Eitem%3Ea%3Eimg%2C%2Ecarousel%2Dinner%3E%2Eitem%3Eimg%7Bline%2Dheight%3A1%7D%40media%20all%20and%20%28transform%2D3d%29%2C%28%2Dwebkit%2Dtransform%2D3d%29%7B%2Ecarousel%2Dinner%3E%2Eitem%7B%2Dwebkit%2Dtransition%3A%2Dwebkit%2Dtransform%20%2E6s%20ease%2Din%2Dout%3B%2Do%2Dtransition%3A%2Do%2Dtransform%20%2E6s%20ease%2Din%2Dout%3Btransition%3Atransform%20%2E6s%20ease%2Din%2Dout%3B%2Dwebkit%2Dbackface%2Dvisibility%3Ahidden%3Bbackface%2Dvisibility%3Ahidden%3B%2Dwebkit%2Dperspective%3A1000px%3Bperspective%3A1000px%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eright%2C%2Ecarousel%2Dinner%3E%2Eitem%2Enext%7Bleft%3A0%3B%2Dwebkit%2Dtransform%3Atranslate3d%28100%25%2C0%2C0%29%3Btransform%3Atranslate3d%28100%25%2C0%2C0%29%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%7Bleft%3A0%3B%2Dwebkit%2Dtransform%3Atranslate3d%28%2D100%25%2C0%2C0%29%3Btransform%3Atranslate3d%28%2D100%25%2C0%2C0%29%7D%2Ecarousel%2Dinner%3E%2Eitem%2Eactive%2C%2Ecarousel%2Dinner%3E%2Eitem%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eitem%2Eprev%2Eright%7Bleft%3A0%3B%2Dwebkit%2Dtransform%3Atranslate3d%280%2C0%2C0%29%3Btransform%3Atranslate3d%280%2C0%2C0%29%7D%7D%2Ecarousel%2Dinner%3E%2Eactive%2C%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bdisplay%3Ablock%7D%2Ecarousel%2Dinner%3E%2Eactive%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Enext%2C%2Ecarousel%2Dinner%3E%2Eprev%7Bposition%3Aabsolute%3Btop%3A0%3Bwidth%3A100%25%7D%2Ecarousel%2Dinner%3E%2Enext%7Bleft%3A100%25%7D%2Ecarousel%2Dinner%3E%2Eprev%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Enext%2Eleft%2C%2Ecarousel%2Dinner%3E%2Eprev%2Eright%7Bleft%3A0%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eleft%7Bleft%3A%2D100%25%7D%2Ecarousel%2Dinner%3E%2Eactive%2Eright%7Bleft%3A100%25%7D%2Ecarousel%2Dcontrol%7Bposition%3Aabsolute%3Btop%3A0%3Bbottom%3A0%3Bleft%3A0%3Bwidth%3A15%25%3Bfont%2Dsize%3A20px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C%2E6%29%3Bfilter%3Aalpha%28opacity%3D50%29%3Bopacity%3A%2E5%7D%2Ecarousel%2Dcontrol%2Eleft%7Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2Crgba%280%2C0%2C0%2C%2E5%29%200%2Crgba%280%2C0%2C0%2C%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2Crgba%280%2C0%2C0%2C%2E5%29%200%2Crgba%280%2C0%2C0%2C%2E0001%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2Cleft%20top%2Cright%20top%2Cfrom%28rgba%280%2C0%2C0%2C%2E5%29%29%2Cto%28rgba%280%2C0%2C0%2C%2E0001%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2Crgba%280%2C0%2C0%2C%2E5%29%200%2Crgba%280%2C0%2C0%2C%2E0001%29%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2380000000%27%2C%20endColorstr%3D%27%2300000000%27%2C%20GradientType%3D1%29%3Bbackground%2Drepeat%3Arepeat%2Dx%7D%2Ecarousel%2Dcontrol%2Eright%7Bright%3A0%3Bleft%3Aauto%3Bbackground%2Dimage%3A%2Dwebkit%2Dlinear%2Dgradient%28left%2Crgba%280%2C0%2C0%2C%2E0001%29%200%2Crgba%280%2C0%2C0%2C%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Do%2Dlinear%2Dgradient%28left%2Crgba%280%2C0%2C0%2C%2E0001%29%200%2Crgba%280%2C0%2C0%2C%2E5%29%20100%25%29%3Bbackground%2Dimage%3A%2Dwebkit%2Dgradient%28linear%2Cleft%20top%2Cright%20top%2Cfrom%28rgba%280%2C0%2C0%2C%2E0001%29%29%2Cto%28rgba%280%2C0%2C0%2C%2E5%29%29%29%3Bbackground%2Dimage%3Alinear%2Dgradient%28to%20right%2Crgba%280%2C0%2C0%2C%2E0001%29%200%2Crgba%280%2C0%2C0%2C%2E5%29%20100%25%29%3Bfilter%3Aprogid%3ADXImageTransform%2EMicrosoft%2Egradient%28startColorstr%3D%27%2300000000%27%2C%20endColorstr%3D%27%2380000000%27%2C%20GradientType%3D1%29%3Bbackground%2Drepeat%3Arepeat%2Dx%7D%2Ecarousel%2Dcontrol%3Afocus%2C%2Ecarousel%2Dcontrol%3Ahover%7Bcolor%3A%23fff%3Btext%2Ddecoration%3Anone%3Bfilter%3Aalpha%28opacity%3D90%29%3Boutline%3A0%3Bopacity%3A%2E9%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bposition%3Aabsolute%3Btop%3A50%25%3Bz%2Dindex%3A5%3Bdisplay%3Ainline%2Dblock%3Bmargin%2Dtop%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bleft%3A50%25%3Bmargin%2Dleft%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bright%3A50%25%3Bmargin%2Dright%3A%2D10px%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bwidth%3A20px%3Bheight%3A20px%3Bfont%2Dfamily%3Aserif%3Bline%2Dheight%3A1%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%3Abefore%7Bcontent%3A%27%5C2039%27%7D%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%3Abefore%7Bcontent%3A%27%5C203a%27%7D%2Ecarousel%2Dindicators%7Bposition%3Aabsolute%3Bbottom%3A10px%3Bleft%3A50%25%3Bz%2Dindex%3A15%3Bwidth%3A60%25%3Bpadding%2Dleft%3A0%3Bmargin%2Dleft%3A%2D30%25%3Btext%2Dalign%3Acenter%3Blist%2Dstyle%3Anone%7D%2Ecarousel%2Dindicators%20li%7Bdisplay%3Ainline%2Dblock%3Bwidth%3A10px%3Bheight%3A10px%3Bmargin%3A1px%3Btext%2Dindent%3A%2D999px%3Bcursor%3Apointer%3Bbackground%2Dcolor%3A%23000%5C9%3Bbackground%2Dcolor%3Argba%280%2C0%2C0%2C0%29%3Bborder%3A1px%20solid%20%23fff%3Bborder%2Dradius%3A10px%7D%2Ecarousel%2Dindicators%20%2Eactive%7Bwidth%3A12px%3Bheight%3A12px%3Bmargin%3A0%3Bbackground%2Dcolor%3A%23fff%7D%2Ecarousel%2Dcaption%7Bposition%3Aabsolute%3Bright%3A15%25%3Bbottom%3A20px%3Bleft%3A15%25%3Bz%2Dindex%3A10%3Bpadding%2Dtop%3A20px%3Bpadding%2Dbottom%3A20px%3Bcolor%3A%23fff%3Btext%2Dalign%3Acenter%3Btext%2Dshadow%3A0%201px%202px%20rgba%280%2C0%2C0%2C%2E6%29%7D%2Ecarousel%2Dcaption%20%2Ebtn%7Btext%2Dshadow%3Anone%7D%40media%20screen%20and%20%28min%2Dwidth%3A768px%29%7B%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bwidth%3A30px%3Bheight%3A30px%3Bmargin%2Dtop%3A%2D15px%3Bfont%2Dsize%3A30px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dleft%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dprev%7Bmargin%2Dleft%3A%2D15px%7D%2Ecarousel%2Dcontrol%20%2Eglyphicon%2Dchevron%2Dright%2C%2Ecarousel%2Dcontrol%20%2Eicon%2Dnext%7Bmargin%2Dright%3A%2D15px%7D%2Ecarousel%2Dcaption%7Bright%3A20%25%3Bleft%3A20%25%3Bpadding%2Dbottom%3A30px%7D%2Ecarousel%2Dindicators%7Bbottom%3A20px%7D%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Abefore%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Ebtn%2Dtoolbar%3Abefore%2C%2Eclearfix%3Aafter%2C%2Eclearfix%3Abefore%2C%2Econtainer%2Dfluid%3Aafter%2C%2Econtainer%2Dfluid%3Abefore%2C%2Econtainer%3Aafter%2C%2Econtainer%3Abefore%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Abefore%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Abefore%2C%2Emodal%2Dfooter%3Aafter%2C%2Emodal%2Dfooter%3Abefore%2C%2Enav%3Aafter%2C%2Enav%3Abefore%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Enavbar%2Dcollapse%3Abefore%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%2Dheader%3Abefore%2C%2Enavbar%3Aafter%2C%2Enavbar%3Abefore%2C%2Epager%3Aafter%2C%2Epager%3Abefore%2C%2Epanel%2Dbody%3Aafter%2C%2Epanel%2Dbody%3Abefore%2C%2Erow%3Aafter%2C%2Erow%3Abefore%7Bdisplay%3Atable%3Bcontent%3A%22%20%22%7D%2Ebtn%2Dgroup%2Dvertical%3E%2Ebtn%2Dgroup%3Aafter%2C%2Ebtn%2Dtoolbar%3Aafter%2C%2Eclearfix%3Aafter%2C%2Econtainer%2Dfluid%3Aafter%2C%2Econtainer%3Aafter%2C%2Edl%2Dhorizontal%20dd%3Aafter%2C%2Eform%2Dhorizontal%20%2Eform%2Dgroup%3Aafter%2C%2Emodal%2Dfooter%3Aafter%2C%2Enav%3Aafter%2C%2Enavbar%2Dcollapse%3Aafter%2C%2Enavbar%2Dheader%3Aafter%2C%2Enavbar%3Aafter%2C%2Epager%3Aafter%2C%2Epanel%2Dbody%3Aafter%2C%2Erow%3Aafter%7Bclear%3Aboth%7D%2Ecenter%2Dblock%7Bdisplay%3Ablock%3Bmargin%2Dright%3Aauto%3Bmargin%2Dleft%3Aauto%7D%2Epull%2Dright%7Bfloat%3Aright%21important%7D%2Epull%2Dleft%7Bfloat%3Aleft%21important%7D%2Ehide%7Bdisplay%3Anone%21important%7D%2Eshow%7Bdisplay%3Ablock%21important%7D%2Einvisible%7Bvisibility%3Ahidden%7D%2Etext%2Dhide%7Bfont%3A0%2F0%20a%3Bcolor%3Atransparent%3Btext%2Dshadow%3Anone%3Bbackground%2Dcolor%3Atransparent%3Bborder%3A0%7D%2Ehidden%7Bdisplay%3Anone%21important%7D%2Eaffix%7Bposition%3Afixed%7D%40%2Dms%2Dviewport%7Bwidth%3Adevice%2Dwidth%7D%2Evisible%2Dlg%2C%2Evisible%2Dmd%2C%2Evisible%2Dsm%2C%2Evisible%2Dxs%7Bdisplay%3Anone%21important%7D%2Evisible%2Dlg%2Dblock%2C%2Evisible%2Dlg%2Dinline%2C%2Evisible%2Dlg%2Dinline%2Dblock%2C%2Evisible%2Dmd%2Dblock%2C%2Evisible%2Dmd%2Dinline%2C%2Evisible%2Dmd%2Dinline%2Dblock%2C%2Evisible%2Dsm%2Dblock%2C%2Evisible%2Dsm%2Dinline%2C%2Evisible%2Dsm%2Dinline%2Dblock%2C%2Evisible%2Dxs%2Dblock%2C%2Evisible%2Dxs%2Dinline%2C%2Evisible%2Dxs%2Dinline%2Dblock%7Bdisplay%3Anone%21important%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dxs%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dxs%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dxs%2Cth%2Evisible%2Dxs%7Bdisplay%3Atable%2Dcell%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Evisible%2Dxs%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dsm%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dsm%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dsm%2Cth%2Evisible%2Dsm%7Bdisplay%3Atable%2Dcell%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Evisible%2Dsm%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dmd%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dmd%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dmd%2Cth%2Evisible%2Dmd%7Bdisplay%3Atable%2Dcell%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Evisible%2Dmd%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dlg%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dlg%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dlg%2Cth%2Evisible%2Dlg%7Bdisplay%3Atable%2Dcell%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Evisible%2Dlg%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20%28max%2Dwidth%3A767px%29%7B%2Ehidden%2Dxs%7Bdisplay%3Anone%21important%7D%7D%40media%20%28min%2Dwidth%3A768px%29%20and%20%28max%2Dwidth%3A991px%29%7B%2Ehidden%2Dsm%7Bdisplay%3Anone%21important%7D%7D%40media%20%28min%2Dwidth%3A992px%29%20and%20%28max%2Dwidth%3A1199px%29%7B%2Ehidden%2Dmd%7Bdisplay%3Anone%21important%7D%7D%40media%20%28min%2Dwidth%3A1200px%29%7B%2Ehidden%2Dlg%7Bdisplay%3Anone%21important%7D%7D%2Evisible%2Dprint%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%7Bdisplay%3Ablock%21important%7Dtable%2Evisible%2Dprint%7Bdisplay%3Atable%21important%7Dtr%2Evisible%2Dprint%7Bdisplay%3Atable%2Drow%21important%7Dtd%2Evisible%2Dprint%2Cth%2Evisible%2Dprint%7Bdisplay%3Atable%2Dcell%21important%7D%7D%2Evisible%2Dprint%2Dblock%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dblock%7Bdisplay%3Ablock%21important%7D%7D%2Evisible%2Dprint%2Dinline%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%7Bdisplay%3Ainline%21important%7D%7D%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Anone%21important%7D%40media%20print%7B%2Evisible%2Dprint%2Dinline%2Dblock%7Bdisplay%3Ainline%2Dblock%21important%7D%7D%40media%20print%7B%2Ehidden%2Dprint%7Bdisplay%3Anone%21important%7D%7D%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,LyohCiAqIEJvb3RzdHJhcCB2My4zLjUgKGh0dHA6Ly9nZXRib290c3RyYXAuY29tKQogKiBDb3B5cmlnaHQgMjAxMS0yMDE1IFR3aXR0ZXIsIEluYy4KICogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiAqLwppZigidW5kZWZpbmVkIj09dHlwZW9mIGpRdWVyeSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5Iik7K2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0Ijt2YXIgYj1hLmZuLmpxdWVyeS5zcGxpdCgiICIpWzBdLnNwbGl0KCIuIik7aWYoYlswXTwyJiZiWzFdPDl8fDE9PWJbMF0mJjk9PWJbMV0mJmJbMl08MSl0aHJvdyBuZXcgRXJyb3IoIkJvb3RzdHJhcCdzIEphdmFTY3JpcHQgcmVxdWlyZXMgalF1ZXJ5IHZlcnNpb24gMS45LjEgb3IgaGlnaGVyIil9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYm9vdHN0cmFwIiksYj17V2Via2l0VHJhbnNpdGlvbjoid2Via2l0VHJhbnNpdGlvbkVuZCIsTW96VHJhbnNpdGlvbjoidHJhbnNpdGlvbmVuZCIsT1RyYW5zaXRpb246Im9UcmFuc2l0aW9uRW5kIG90cmFuc2l0aW9uZW5kIix0cmFuc2l0aW9uOiJ0cmFuc2l0aW9uZW5kIn07Zm9yKHZhciBjIGluIGIpaWYodm9pZCAwIT09YS5zdHlsZVtjXSlyZXR1cm57ZW5kOmJbY119O3JldHVybiExfWEuZm4uZW11bGF0ZVRyYW5zaXRpb25FbmQ9ZnVuY3Rpb24oYil7dmFyIGM9ITEsZD10aGlzO2EodGhpcykub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Yz0hMH0pO3ZhciBlPWZ1bmN0aW9uKCl7Y3x8YShkKS50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCl9O3JldHVybiBzZXRUaW1lb3V0KGUsYiksdGhpc30sYShmdW5jdGlvbigpe2Euc3VwcG9ydC50cmFuc2l0aW9uPWIoKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGEuZXZlbnQuc3BlY2lhbC5ic1RyYW5zaXRpb25FbmQ9e2JpbmRUeXBlOmEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCxkZWxlZ2F0ZVR5cGU6YS5zdXBwb3J0LnRyYW5zaXRpb24uZW5kLGhhbmRsZTpmdW5jdGlvbihiKXtyZXR1cm4gYShiLnRhcmdldCkuaXModGhpcyk/Yi5oYW5kbGVPYmouaGFuZGxlci5hcHBseSh0aGlzLGFyZ3VtZW50cyk6dm9pZCAwfX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgYz1hKHRoaXMpLGU9Yy5kYXRhKCJicy5hbGVydCIpO2V8fGMuZGF0YSgiYnMuYWxlcnQiLGU9bmV3IGQodGhpcykpLCJzdHJpbmciPT10eXBlb2YgYiYmZVtiXS5jYWxsKGMpfSl9dmFyIGM9J1tkYXRhLWRpc21pc3M9ImFsZXJ0Il0nLGQ9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2siLGMsdGhpcy5jbG9zZSl9O2QuVkVSU0lPTj0iMy4zLjUiLGQuVFJBTlNJVElPTl9EVVJBVElPTj0xNTAsZC5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gYygpe2cuZGV0YWNoKCkudHJpZ2dlcigiY2xvc2VkLmJzLmFsZXJ0IikucmVtb3ZlKCl9dmFyIGU9YSh0aGlzKSxmPWUuYXR0cigiZGF0YS10YXJnZXQiKTtmfHwoZj1lLmF0dHIoImhyZWYiKSxmPWYmJmYucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGc9YShmKTtiJiZiLnByZXZlbnREZWZhdWx0KCksZy5sZW5ndGh8fChnPWUuY2xvc2VzdCgiLmFsZXJ0IikpLGcudHJpZ2dlcihiPWEuRXZlbnQoImNsb3NlLmJzLmFsZXJ0IikpLGIuaXNEZWZhdWx0UHJldmVudGVkKCl8fChnLnJlbW92ZUNsYXNzKCJpbiIpLGEuc3VwcG9ydC50cmFuc2l0aW9uJiZnLmhhc0NsYXNzKCJmYWRlIik/Zy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYykuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKTpjKCkpfTt2YXIgZT1hLmZuLmFsZXJ0O2EuZm4uYWxlcnQ9YixhLmZuLmFsZXJ0LkNvbnN0cnVjdG9yPWQsYS5mbi5hbGVydC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWxlcnQ9ZSx0aGlzfSxhKGRvY3VtZW50KS5vbigiY2xpY2suYnMuYWxlcnQuZGF0YS1hcGkiLGMsZC5wcm90b3R5cGUuY2xvc2UpfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMuYnV0dG9uIiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5idXR0b24iLGU9bmV3IGModGhpcyxmKSksInRvZ2dsZSI9PWI/ZS50b2dnbGUoKTpiJiZlLnNldFN0YXRlKGIpfSl9dmFyIGM9ZnVuY3Rpb24oYixkKXt0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy5pc0xvYWRpbmc9ITF9O2MuVkVSU0lPTj0iMy4zLjUiLGMuREVGQVVMVFM9e2xvYWRpbmdUZXh0OiJsb2FkaW5nLi4uIn0sYy5wcm90b3R5cGUuc2V0U3RhdGU9ZnVuY3Rpb24oYil7dmFyIGM9ImRpc2FibGVkIixkPXRoaXMuJGVsZW1lbnQsZT1kLmlzKCJpbnB1dCIpPyJ2YWwiOiJodG1sIixmPWQuZGF0YSgpO2IrPSJUZXh0IixudWxsPT1mLnJlc2V0VGV4dCYmZC5kYXRhKCJyZXNldFRleHQiLGRbZV0oKSksc2V0VGltZW91dChhLnByb3h5KGZ1bmN0aW9uKCl7ZFtlXShudWxsPT1mW2JdP3RoaXMub3B0aW9uc1tiXTpmW2JdKSwibG9hZGluZ1RleHQiPT1iPyh0aGlzLmlzTG9hZGluZz0hMCxkLmFkZENsYXNzKGMpLmF0dHIoYyxjKSk6dGhpcy5pc0xvYWRpbmcmJih0aGlzLmlzTG9hZGluZz0hMSxkLnJlbW92ZUNsYXNzKGMpLnJlbW92ZUF0dHIoYykpfSx0aGlzKSwwKX0sYy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKCl7dmFyIGE9ITAsYj10aGlzLiRlbGVtZW50LmNsb3Nlc3QoJ1tkYXRhLXRvZ2dsZT0iYnV0dG9ucyJdJyk7aWYoYi5sZW5ndGgpe3ZhciBjPXRoaXMuJGVsZW1lbnQuZmluZCgiaW5wdXQiKTsicmFkaW8iPT1jLnByb3AoInR5cGUiKT8oYy5wcm9wKCJjaGVja2VkIikmJihhPSExKSxiLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIiksdGhpcy4kZWxlbWVudC5hZGRDbGFzcygiYWN0aXZlIikpOiJjaGVja2JveCI9PWMucHJvcCgidHlwZSIpJiYoYy5wcm9wKCJjaGVja2VkIikhPT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSYmKGE9ITEpLHRoaXMuJGVsZW1lbnQudG9nZ2xlQ2xhc3MoImFjdGl2ZSIpKSxjLnByb3AoImNoZWNrZWQiLHRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImFjdGl2ZSIpKSxhJiZjLnRyaWdnZXIoImNoYW5nZSIpfWVsc2UgdGhpcy4kZWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJhY3RpdmUiKSksdGhpcy4kZWxlbWVudC50b2dnbGVDbGFzcygiYWN0aXZlIil9O3ZhciBkPWEuZm4uYnV0dG9uO2EuZm4uYnV0dG9uPWIsYS5mbi5idXR0b24uQ29uc3RydWN0b3I9YyxhLmZuLmJ1dHRvbi5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYnV0dG9uPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmJ1dHRvbi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZV49ImJ1dHRvbiJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKGMudGFyZ2V0KTtkLmhhc0NsYXNzKCJidG4iKXx8KGQ9ZC5jbG9zZXN0KCIuYnRuIikpLGIuY2FsbChkLCJ0b2dnbGUiKSxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0icmFkaW8iXScpfHxhKGMudGFyZ2V0KS5pcygnaW5wdXRbdHlwZT0iY2hlY2tib3giXScpfHxjLnByZXZlbnREZWZhdWx0KCl9KS5vbigiZm9jdXMuYnMuYnV0dG9uLmRhdGEtYXBpIGJsdXIuYnMuYnV0dG9uLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlXj0iYnV0dG9uIl0nLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmNsb3Nlc3QoIi5idG4iKS50b2dnbGVDbGFzcygiZm9jdXMiLC9eZm9jdXMoaW4pPyQvLnRlc3QoYi50eXBlKSl9KX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmNhcm91c2VsIiksZj1hLmV4dGVuZCh7fSxjLkRFRkFVTFRTLGQuZGF0YSgpLCJvYmplY3QiPT10eXBlb2YgYiYmYiksZz0ic3RyaW5nIj09dHlwZW9mIGI/YjpmLnNsaWRlO2V8fGQuZGF0YSgiYnMuY2Fyb3VzZWwiLGU9bmV3IGModGhpcyxmKSksIm51bWJlciI9PXR5cGVvZiBiP2UudG8oYik6Zz9lW2ddKCk6Zi5pbnRlcnZhbCYmZS5wYXVzZSgpLmN5Y2xlKCl9KX12YXIgYz1mdW5jdGlvbihiLGMpe3RoaXMuJGVsZW1lbnQ9YShiKSx0aGlzLiRpbmRpY2F0b3JzPXRoaXMuJGVsZW1lbnQuZmluZCgiLmNhcm91c2VsLWluZGljYXRvcnMiKSx0aGlzLm9wdGlvbnM9Yyx0aGlzLnBhdXNlZD1udWxsLHRoaXMuc2xpZGluZz1udWxsLHRoaXMuaW50ZXJ2YWw9bnVsbCx0aGlzLiRhY3RpdmU9bnVsbCx0aGlzLiRpdGVtcz1udWxsLHRoaXMub3B0aW9ucy5rZXlib2FyZCYmdGhpcy4kZWxlbWVudC5vbigia2V5ZG93bi5icy5jYXJvdXNlbCIsYS5wcm94eSh0aGlzLmtleWRvd24sdGhpcykpLCJob3ZlciI9PXRoaXMub3B0aW9ucy5wYXVzZSYmISgib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkmJnRoaXMuJGVsZW1lbnQub24oIm1vdXNlZW50ZXIuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5wYXVzZSx0aGlzKSkub24oIm1vdXNlbGVhdmUuYnMuY2Fyb3VzZWwiLGEucHJveHkodGhpcy5jeWNsZSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj02MDAsYy5ERUZBVUxUUz17aW50ZXJ2YWw6NWUzLHBhdXNlOiJob3ZlciIsd3JhcDohMCxrZXlib2FyZDohMH0sYy5wcm90b3R5cGUua2V5ZG93bj1mdW5jdGlvbihhKXtpZighL2lucHV0fHRleHRhcmVhL2kudGVzdChhLnRhcmdldC50YWdOYW1lKSl7c3dpdGNoKGEud2hpY2gpe2Nhc2UgMzc6dGhpcy5wcmV2KCk7YnJlYWs7Y2FzZSAzOTp0aGlzLm5leHQoKTticmVhaztkZWZhdWx0OnJldHVybn1hLnByZXZlbnREZWZhdWx0KCl9fSxjLnByb3RvdHlwZS5jeWNsZT1mdW5jdGlvbihiKXtyZXR1cm4gYnx8KHRoaXMucGF1c2VkPSExKSx0aGlzLmludGVydmFsJiZjbGVhckludGVydmFsKHRoaXMuaW50ZXJ2YWwpLHRoaXMub3B0aW9ucy5pbnRlcnZhbCYmIXRoaXMucGF1c2VkJiYodGhpcy5pbnRlcnZhbD1zZXRJbnRlcnZhbChhLnByb3h5KHRoaXMubmV4dCx0aGlzKSx0aGlzLm9wdGlvbnMuaW50ZXJ2YWwpKSx0aGlzfSxjLnByb3RvdHlwZS5nZXRJdGVtSW5kZXg9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuJGl0ZW1zPWEucGFyZW50KCkuY2hpbGRyZW4oIi5pdGVtIiksdGhpcy4kaXRlbXMuaW5kZXgoYXx8dGhpcy4kYWN0aXZlKX0sYy5wcm90b3R5cGUuZ2V0SXRlbUZvckRpcmVjdGlvbj1mdW5jdGlvbihhLGIpe3ZhciBjPXRoaXMuZ2V0SXRlbUluZGV4KGIpLGQ9InByZXYiPT1hJiYwPT09Y3x8Im5leHQiPT1hJiZjPT10aGlzLiRpdGVtcy5sZW5ndGgtMTtpZihkJiYhdGhpcy5vcHRpb25zLndyYXApcmV0dXJuIGI7dmFyIGU9InByZXYiPT1hPy0xOjEsZj0oYytlKSV0aGlzLiRpdGVtcy5sZW5ndGg7cmV0dXJuIHRoaXMuJGl0ZW1zLmVxKGYpfSxjLnByb3RvdHlwZS50bz1mdW5jdGlvbihhKXt2YXIgYj10aGlzLGM9dGhpcy5nZXRJdGVtSW5kZXgodGhpcy4kYWN0aXZlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIikpO3JldHVybiBhPnRoaXMuJGl0ZW1zLmxlbmd0aC0xfHwwPmE/dm9pZCAwOnRoaXMuc2xpZGluZz90aGlzLiRlbGVtZW50Lm9uZSgic2xpZC5icy5jYXJvdXNlbCIsZnVuY3Rpb24oKXtiLnRvKGEpfSk6Yz09YT90aGlzLnBhdXNlKCkuY3ljbGUoKTp0aGlzLnNsaWRlKGE+Yz8ibmV4dCI6InByZXYiLHRoaXMuJGl0ZW1zLmVxKGEpKX0sYy5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oYil7cmV0dXJuIGJ8fCh0aGlzLnBhdXNlZD0hMCksdGhpcy4kZWxlbWVudC5maW5kKCIubmV4dCwgLnByZXYiKS5sZW5ndGgmJmEuc3VwcG9ydC50cmFuc2l0aW9uJiYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGEuc3VwcG9ydC50cmFuc2l0aW9uLmVuZCksdGhpcy5jeWNsZSghMCkpLHRoaXMuaW50ZXJ2YWw9Y2xlYXJJbnRlcnZhbCh0aGlzLmludGVydmFsKSx0aGlzfSxjLnByb3RvdHlwZS5uZXh0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgibmV4dCIpfSxjLnByb3RvdHlwZS5wcmV2PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2xpZGluZz92b2lkIDA6dGhpcy5zbGlkZSgicHJldiIpfSxjLnByb3RvdHlwZS5zbGlkZT1mdW5jdGlvbihiLGQpe3ZhciBlPXRoaXMuJGVsZW1lbnQuZmluZCgiLml0ZW0uYWN0aXZlIiksZj1kfHx0aGlzLmdldEl0ZW1Gb3JEaXJlY3Rpb24oYixlKSxnPXRoaXMuaW50ZXJ2YWwsaD0ibmV4dCI9PWI/ImxlZnQiOiJyaWdodCIsaT10aGlzO2lmKGYuaGFzQ2xhc3MoImFjdGl2ZSIpKXJldHVybiB0aGlzLnNsaWRpbmc9ITE7dmFyIGo9ZlswXSxrPWEuRXZlbnQoInNsaWRlLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7aWYodGhpcy4kZWxlbWVudC50cmlnZ2VyKGspLCFrLmlzRGVmYXVsdFByZXZlbnRlZCgpKXtpZih0aGlzLnNsaWRpbmc9ITAsZyYmdGhpcy5wYXVzZSgpLHRoaXMuJGluZGljYXRvcnMubGVuZ3RoKXt0aGlzLiRpbmRpY2F0b3JzLmZpbmQoIi5hY3RpdmUiKS5yZW1vdmVDbGFzcygiYWN0aXZlIik7dmFyIGw9YSh0aGlzLiRpbmRpY2F0b3JzLmNoaWxkcmVuKClbdGhpcy5nZXRJdGVtSW5kZXgoZildKTtsJiZsLmFkZENsYXNzKCJhY3RpdmUiKX12YXIgbT1hLkV2ZW50KCJzbGlkLmJzLmNhcm91c2VsIix7cmVsYXRlZFRhcmdldDpqLGRpcmVjdGlvbjpofSk7cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uJiZ0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJzbGlkZSIpPyhmLmFkZENsYXNzKGIpLGZbMF0ub2Zmc2V0V2lkdGgsZS5hZGRDbGFzcyhoKSxmLmFkZENsYXNzKGgpLGUub25lKCJic1RyYW5zaXRpb25FbmQiLGZ1bmN0aW9uKCl7Zi5yZW1vdmVDbGFzcyhbYixoXS5qb2luKCIgIikpLmFkZENsYXNzKCJhY3RpdmUiKSxlLnJlbW92ZUNsYXNzKFsiYWN0aXZlIixoXS5qb2luKCIgIikpLGkuc2xpZGluZz0hMSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7aS4kZWxlbWVudC50cmlnZ2VyKG0pfSwwKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTikpOihlLnJlbW92ZUNsYXNzKCJhY3RpdmUiKSxmLmFkZENsYXNzKCJhY3RpdmUiKSx0aGlzLnNsaWRpbmc9ITEsdGhpcy4kZWxlbWVudC50cmlnZ2VyKG0pKSxnJiZ0aGlzLmN5Y2xlKCksdGhpc319O3ZhciBkPWEuZm4uY2Fyb3VzZWw7YS5mbi5jYXJvdXNlbD1iLGEuZm4uY2Fyb3VzZWwuQ29uc3RydWN0b3I9YyxhLmZuLmNhcm91c2VsLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5jYXJvdXNlbD1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe3ZhciBkLGU9YSh0aGlzKSxmPWEoZS5hdHRyKCJkYXRhLXRhcmdldCIpfHwoZD1lLmF0dHIoImhyZWYiKSkmJmQucmVwbGFjZSgvLiooPz0jW15cc10rJCkvLCIiKSk7aWYoZi5oYXNDbGFzcygiY2Fyb3VzZWwiKSl7dmFyIGc9YS5leHRlbmQoe30sZi5kYXRhKCksZS5kYXRhKCkpLGg9ZS5hdHRyKCJkYXRhLXNsaWRlLXRvIik7aCYmKGcuaW50ZXJ2YWw9ITEpLGIuY2FsbChmLGcpLGgmJmYuZGF0YSgiYnMuY2Fyb3VzZWwiKS50byhoKSxjLnByZXZlbnREZWZhdWx0KCl9fTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMuY2Fyb3VzZWwuZGF0YS1hcGkiLCJbZGF0YS1zbGlkZV0iLGUpLm9uKCJjbGljay5icy5jYXJvdXNlbC5kYXRhLWFwaSIsIltkYXRhLXNsaWRlLXRvXSIsZSksYSh3aW5kb3cpLm9uKCJsb2FkIixmdW5jdGlvbigpe2EoJ1tkYXRhLXJpZGU9ImNhcm91c2VsIl0nKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKTtiLmNhbGwoYyxjLmRhdGEoKSl9KX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXt2YXIgYyxkPWIuYXR0cigiZGF0YS10YXJnZXQiKXx8KGM9Yi5hdHRyKCJocmVmIikpJiZjLnJlcGxhY2UoLy4qKD89I1teXHNdKyQpLywiIik7cmV0dXJuIGEoZCl9ZnVuY3Rpb24gYyhiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGM9YSh0aGlzKSxlPWMuZGF0YSgiYnMuY29sbGFwc2UiKSxmPWEuZXh0ZW5kKHt9LGQuREVGQVVMVFMsYy5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTshZSYmZi50b2dnbGUmJi9zaG93fGhpZGUvLnRlc3QoYikmJihmLnRvZ2dsZT0hMSksZXx8Yy5kYXRhKCJicy5jb2xsYXBzZSIsZT1uZXcgZCh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBkPWZ1bmN0aW9uKGIsYyl7dGhpcy4kZWxlbWVudD1hKGIpLHRoaXMub3B0aW9ucz1hLmV4dGVuZCh7fSxkLkRFRkFVTFRTLGMpLHRoaXMuJHRyaWdnZXI9YSgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2hyZWY9IiMnK2IuaWQrJyJdLFtkYXRhLXRvZ2dsZT0iY29sbGFwc2UiXVtkYXRhLXRhcmdldD0iIycrYi5pZCsnIl0nKSx0aGlzLnRyYW5zaXRpb25pbmc9bnVsbCx0aGlzLm9wdGlvbnMucGFyZW50P3RoaXMuJHBhcmVudD10aGlzLmdldFBhcmVudCgpOnRoaXMuYWRkQXJpYUFuZENvbGxhcHNlZENsYXNzKHRoaXMuJGVsZW1lbnQsdGhpcy4kdHJpZ2dlciksdGhpcy5vcHRpb25zLnRvZ2dsZSYmdGhpcy50b2dnbGUoKX07ZC5WRVJTSU9OPSIzLjMuNSIsZC5UUkFOU0lUSU9OX0RVUkFUSU9OPTM1MCxkLkRFRkFVTFRTPXt0b2dnbGU6ITB9LGQucHJvdG90eXBlLmRpbWVuc2lvbj1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoIndpZHRoIik7cmV0dXJuIGE/IndpZHRoIjoiaGVpZ2h0In0sZC5wcm90b3R5cGUuc2hvdz1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJiF0aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJpbiIpKXt2YXIgYixlPXRoaXMuJHBhcmVudCYmdGhpcy4kcGFyZW50LmNoaWxkcmVuKCIucGFuZWwiKS5jaGlsZHJlbigiLmluLCAuY29sbGFwc2luZyIpO2lmKCEoZSYmZS5sZW5ndGgmJihiPWUuZGF0YSgiYnMuY29sbGFwc2UiKSxiJiZiLnRyYW5zaXRpb25pbmcpKSl7dmFyIGY9YS5FdmVudCgic2hvdy5icy5jb2xsYXBzZSIpO2lmKHRoaXMuJGVsZW1lbnQudHJpZ2dlcihmKSwhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7ZSYmZS5sZW5ndGgmJihjLmNhbGwoZSwiaGlkZSIpLGJ8fGUuZGF0YSgiYnMuY29sbGFwc2UiLG51bGwpKTt2YXIgZz10aGlzLmRpbWVuc2lvbigpO3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIikuYWRkQ2xhc3MoImNvbGxhcHNpbmciKVtnXSgwKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksdGhpcy4kdHJpZ2dlci5yZW1vdmVDbGFzcygiY29sbGFwc2VkIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITApLHRoaXMudHJhbnNpdGlvbmluZz0xO3ZhciBoPWZ1bmN0aW9uKCl7dGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcygiY29sbGFwc2luZyIpLmFkZENsYXNzKCJjb2xsYXBzZSBpbiIpW2ddKCIiKSx0aGlzLnRyYW5zaXRpb25pbmc9MCx0aGlzLiRlbGVtZW50LnRyaWdnZXIoInNob3duLmJzLmNvbGxhcHNlIil9O2lmKCFhLnN1cHBvcnQudHJhbnNpdGlvbilyZXR1cm4gaC5jYWxsKHRoaXMpO3ZhciBpPWEuY2FtZWxDYXNlKFsic2Nyb2xsIixnXS5qb2luKCItIikpO3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkoaCx0aGlzKSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoZC5UUkFOU0lUSU9OX0RVUkFUSU9OKVtnXSh0aGlzLiRlbGVtZW50WzBdW2ldKX19fX0sZC5wcm90b3R5cGUuaGlkZT1mdW5jdGlvbigpe2lmKCF0aGlzLnRyYW5zaXRpb25pbmcmJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIikpe3ZhciBiPWEuRXZlbnQoImhpZGUuYnMuY29sbGFwc2UiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoYiksIWIuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBjPXRoaXMuZGltZW5zaW9uKCk7dGhpcy4kZWxlbWVudFtjXSh0aGlzLiRlbGVtZW50W2NdKCkpWzBdLm9mZnNldEhlaWdodCx0aGlzLiRlbGVtZW50LmFkZENsYXNzKCJjb2xsYXBzaW5nIikucmVtb3ZlQ2xhc3MoImNvbGxhcHNlIGluIikuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLHRoaXMuJHRyaWdnZXIuYWRkQ2xhc3MoImNvbGxhcHNlZCIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCExKSx0aGlzLnRyYW5zaXRpb25pbmc9MTt2YXIgZT1mdW5jdGlvbigpe3RoaXMudHJhbnNpdGlvbmluZz0wLHRoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoImNvbGxhcHNpbmciKS5hZGRDbGFzcygiY29sbGFwc2UiKS50cmlnZ2VyKCJoaWRkZW4uYnMuY29sbGFwc2UiKX07cmV0dXJuIGEuc3VwcG9ydC50cmFuc2l0aW9uP3ZvaWQgdGhpcy4kZWxlbWVudFtjXSgwKS5vbmUoImJzVHJhbnNpdGlvbkVuZCIsYS5wcm94eShlLHRoaXMpKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChkLlRSQU5TSVRJT05fRFVSQVRJT04pOmUuY2FsbCh0aGlzKX19fSxkLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oKXt0aGlzW3RoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImluIik/ImhpZGUiOiJzaG93Il0oKX0sZC5wcm90b3R5cGUuZ2V0UGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcy5vcHRpb25zLnBhcmVudCkuZmluZCgnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdW2RhdGEtcGFyZW50PSInK3RoaXMub3B0aW9ucy5wYXJlbnQrJyJdJykuZWFjaChhLnByb3h5KGZ1bmN0aW9uKGMsZCl7dmFyIGU9YShkKTt0aGlzLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcyhiKGUpLGUpfSx0aGlzKSkuZW5kKCl9LGQucHJvdG90eXBlLmFkZEFyaWFBbmRDb2xsYXBzZWRDbGFzcz1mdW5jdGlvbihhLGIpe3ZhciBjPWEuaGFzQ2xhc3MoImluIik7YS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKSxiLnRvZ2dsZUNsYXNzKCJjb2xsYXBzZWQiLCFjKS5hdHRyKCJhcmlhLWV4cGFuZGVkIixjKX07dmFyIGU9YS5mbi5jb2xsYXBzZTthLmZuLmNvbGxhcHNlPWMsYS5mbi5jb2xsYXBzZS5Db25zdHJ1Y3Rvcj1kLGEuZm4uY29sbGFwc2Uubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLmNvbGxhcHNlPWUsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLmNvbGxhcHNlLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJjb2xsYXBzZSJdJyxmdW5jdGlvbihkKXt2YXIgZT1hKHRoaXMpO2UuYXR0cigiZGF0YS10YXJnZXQiKXx8ZC5wcmV2ZW50RGVmYXVsdCgpO3ZhciBmPWIoZSksZz1mLmRhdGEoImJzLmNvbGxhcHNlIiksaD1nPyJ0b2dnbGUiOmUuZGF0YSgpO2MuY2FsbChmLGgpfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3ZhciBjPWIuYXR0cigiZGF0YS10YXJnZXQiKTtjfHwoYz1iLmF0dHIoImhyZWYiKSxjPWMmJi8jW0EtWmEtel0vLnRlc3QoYykmJmMucmVwbGFjZSgvLiooPz0jW15cc10qJCkvLCIiKSk7dmFyIGQ9YyYmYShjKTtyZXR1cm4gZCYmZC5sZW5ndGg/ZDpiLnBhcmVudCgpfWZ1bmN0aW9uIGMoYyl7YyYmMz09PWMud2hpY2h8fChhKGUpLnJlbW92ZSgpLGEoZikuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1iKGQpLGY9e3JlbGF0ZWRUYXJnZXQ6dGhpc307ZS5oYXNDbGFzcygib3BlbiIpJiYoYyYmImNsaWNrIj09Yy50eXBlJiYvaW5wdXR8dGV4dGFyZWEvaS50ZXN0KGMudGFyZ2V0LnRhZ05hbWUpJiZhLmNvbnRhaW5zKGVbMF0sYy50YXJnZXQpfHwoZS50cmlnZ2VyKGM9YS5FdmVudCgiaGlkZS5icy5kcm9wZG93biIsZikpLGMuaXNEZWZhdWx0UHJldmVudGVkKCl8fChkLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLGUucmVtb3ZlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJoaWRkZW4uYnMuZHJvcGRvd24iLGYpKSkpfSkpfWZ1bmN0aW9uIGQoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoImJzLmRyb3Bkb3duIik7ZHx8Yy5kYXRhKCJicy5kcm9wZG93biIsZD1uZXcgZyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZkW2JdLmNhbGwoYyl9KX12YXIgZT0iLmRyb3Bkb3duLWJhY2tkcm9wIixmPSdbZGF0YS10b2dnbGU9ImRyb3Bkb3duIl0nLGc9ZnVuY3Rpb24oYil7YShiKS5vbigiY2xpY2suYnMuZHJvcGRvd24iLHRoaXMudG9nZ2xlKX07Zy5WRVJTSU9OPSIzLjMuNSIsZy5wcm90b3R5cGUudG9nZ2xlPWZ1bmN0aW9uKGQpe3ZhciBlPWEodGhpcyk7aWYoIWUuaXMoIi5kaXNhYmxlZCwgOmRpc2FibGVkIikpe3ZhciBmPWIoZSksZz1mLmhhc0NsYXNzKCJvcGVuIik7aWYoYygpLCFnKXsib250b3VjaHN0YXJ0ImluIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCYmIWYuY2xvc2VzdCgiLm5hdmJhci1uYXYiKS5sZW5ndGgmJmEoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpLmFkZENsYXNzKCJkcm9wZG93bi1iYWNrZHJvcCIpLmluc2VydEFmdGVyKGEodGhpcykpLm9uKCJjbGljayIsYyk7dmFyIGg9e3JlbGF0ZWRUYXJnZXQ6dGhpc307aWYoZi50cmlnZ2VyKGQ9YS5FdmVudCgic2hvdy5icy5kcm9wZG93biIsaCkpLGQuaXNEZWZhdWx0UHJldmVudGVkKCkpcmV0dXJuO2UudHJpZ2dlcigiZm9jdXMiKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwidHJ1ZSIpLGYudG9nZ2xlQ2xhc3MoIm9wZW4iKS50cmlnZ2VyKCJzaG93bi5icy5kcm9wZG93biIsaCl9cmV0dXJuITF9fSxnLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKGMpe2lmKC8oMzh8NDB8Mjd8MzIpLy50ZXN0KGMud2hpY2gpJiYhL2lucHV0fHRleHRhcmVhL2kudGVzdChjLnRhcmdldC50YWdOYW1lKSl7dmFyIGQ9YSh0aGlzKTtpZihjLnByZXZlbnREZWZhdWx0KCksYy5zdG9wUHJvcGFnYXRpb24oKSwhZC5pcygiLmRpc2FibGVkLCA6ZGlzYWJsZWQiKSl7dmFyIGU9YihkKSxnPWUuaGFzQ2xhc3MoIm9wZW4iKTtpZighZyYmMjchPWMud2hpY2h8fGcmJjI3PT1jLndoaWNoKXJldHVybiAyNz09Yy53aGljaCYmZS5maW5kKGYpLnRyaWdnZXIoImZvY3VzIiksZC50cmlnZ2VyKCJjbGljayIpO3ZhciBoPSIgbGk6bm90KC5kaXNhYmxlZCk6dmlzaWJsZSBhIixpPWUuZmluZCgiLmRyb3Bkb3duLW1lbnUiK2gpO2lmKGkubGVuZ3RoKXt2YXIgaj1pLmluZGV4KGMudGFyZ2V0KTszOD09Yy53aGljaCYmaj4wJiZqLS0sNDA9PWMud2hpY2gmJmo8aS5sZW5ndGgtMSYmaisrLH5qfHwoaj0wKSxpLmVxKGopLnRyaWdnZXIoImZvY3VzIil9fX19O3ZhciBoPWEuZm4uZHJvcGRvd247YS5mbi5kcm9wZG93bj1kLGEuZm4uZHJvcGRvd24uQ29uc3RydWN0b3I9ZyxhLmZuLmRyb3Bkb3duLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5kcm9wZG93bj1oLHRoaXN9LGEoZG9jdW1lbnQpLm9uKCJjbGljay5icy5kcm9wZG93bi5kYXRhLWFwaSIsYykub24oImNsaWNrLmJzLmRyb3Bkb3duLmRhdGEtYXBpIiwiLmRyb3Bkb3duIGZvcm0iLGZ1bmN0aW9uKGEpe2Euc3RvcFByb3BhZ2F0aW9uKCl9KS5vbigiY2xpY2suYnMuZHJvcGRvd24uZGF0YS1hcGkiLGYsZy5wcm90b3R5cGUudG9nZ2xlKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsZixnLnByb3RvdHlwZS5rZXlkb3duKS5vbigia2V5ZG93bi5icy5kcm9wZG93bi5kYXRhLWFwaSIsIi5kcm9wZG93bi1tZW51IixnLnByb3RvdHlwZS5rZXlkb3duKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYixkKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGU9YSh0aGlzKSxmPWUuZGF0YSgiYnMubW9kYWwiKSxnPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZS5kYXRhKCksIm9iamVjdCI9PXR5cGVvZiBiJiZiKTtmfHxlLmRhdGEoImJzLm1vZGFsIixmPW5ldyBjKHRoaXMsZykpLCJzdHJpbmciPT10eXBlb2YgYj9mW2JdKGQpOmcuc2hvdyYmZi5zaG93KGQpfSl9dmFyIGM9ZnVuY3Rpb24oYixjKXt0aGlzLm9wdGlvbnM9Yyx0aGlzLiRib2R5PWEoZG9jdW1lbnQuYm9keSksdGhpcy4kZWxlbWVudD1hKGIpLHRoaXMuJGRpYWxvZz10aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1kaWFsb2ciKSx0aGlzLiRiYWNrZHJvcD1udWxsLHRoaXMuaXNTaG93bj1udWxsLHRoaXMub3JpZ2luYWxCb2R5UGFkPW51bGwsdGhpcy5zY3JvbGxiYXJXaWR0aD0wLHRoaXMuaWdub3JlQmFja2Ryb3BDbGljaz0hMSx0aGlzLm9wdGlvbnMucmVtb3RlJiZ0aGlzLiRlbGVtZW50LmZpbmQoIi5tb2RhbC1jb250ZW50IikubG9hZCh0aGlzLm9wdGlvbnMucmVtb3RlLGEucHJveHkoZnVuY3Rpb24oKXt0aGlzLiRlbGVtZW50LnRyaWdnZXIoImxvYWRlZC5icy5tb2RhbCIpfSx0aGlzKSl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuVFJBTlNJVElPTl9EVVJBVElPTj0zMDAsYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLkRFRkFVTFRTPXtiYWNrZHJvcDohMCxrZXlib2FyZDohMCxzaG93OiEwfSxjLnByb3RvdHlwZS50b2dnbGU9ZnVuY3Rpb24oYSl7cmV0dXJuIHRoaXMuaXNTaG93bj90aGlzLmhpZGUoKTp0aGlzLnNob3coYSl9LGMucHJvdG90eXBlLnNob3c9ZnVuY3Rpb24oYil7dmFyIGQ9dGhpcyxlPWEuRXZlbnQoInNob3cuYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTt0aGlzLiRlbGVtZW50LnRyaWdnZXIoZSksdGhpcy5pc1Nob3dufHxlLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwodGhpcy5pc1Nob3duPSEwLHRoaXMuY2hlY2tTY3JvbGxiYXIoKSx0aGlzLnNldFNjcm9sbGJhcigpLHRoaXMuJGJvZHkuYWRkQ2xhc3MoIm1vZGFsLW9wZW4iKSx0aGlzLmVzY2FwZSgpLHRoaXMucmVzaXplKCksdGhpcy4kZWxlbWVudC5vbigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIsJ1tkYXRhLWRpc21pc3M9Im1vZGFsIl0nLGEucHJveHkodGhpcy5oaWRlLHRoaXMpKSx0aGlzLiRkaWFsb2cub24oIm1vdXNlZG93bi5kaXNtaXNzLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuJGVsZW1lbnQub25lKCJtb3VzZXVwLmRpc21pc3MuYnMubW9kYWwiLGZ1bmN0aW9uKGIpe2EoYi50YXJnZXQpLmlzKGQuJGVsZW1lbnQpJiYoZC5pZ25vcmVCYWNrZHJvcENsaWNrPSEwKX0pfSksdGhpcy5iYWNrZHJvcChmdW5jdGlvbigpe3ZhciBlPWEuc3VwcG9ydC50cmFuc2l0aW9uJiZkLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik7ZC4kZWxlbWVudC5wYXJlbnQoKS5sZW5ndGh8fGQuJGVsZW1lbnQuYXBwZW5kVG8oZC4kYm9keSksZC4kZWxlbWVudC5zaG93KCkuc2Nyb2xsVG9wKDApLGQuYWRqdXN0RGlhbG9nKCksZSYmZC4kZWxlbWVudFswXS5vZmZzZXRXaWR0aCxkLiRlbGVtZW50LmFkZENsYXNzKCJpbiIpLGQuZW5mb3JjZUZvY3VzKCk7dmFyIGY9YS5FdmVudCgic2hvd24uYnMubW9kYWwiLHtyZWxhdGVkVGFyZ2V0OmJ9KTtlP2QuJGRpYWxvZy5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZnVuY3Rpb24oKXtkLiRlbGVtZW50LnRyaWdnZXIoImZvY3VzIikudHJpZ2dlcihmKX0pLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZC4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpLnRyaWdnZXIoZil9KSl9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7YiYmYi5wcmV2ZW50RGVmYXVsdCgpLGI9YS5FdmVudCgiaGlkZS5icy5tb2RhbCIpLHRoaXMuJGVsZW1lbnQudHJpZ2dlcihiKSx0aGlzLmlzU2hvd24mJiFiLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYodGhpcy5pc1Nob3duPSExLHRoaXMuZXNjYXBlKCksdGhpcy5yZXNpemUoKSxhKGRvY3VtZW50KS5vZmYoImZvY3VzaW4uYnMubW9kYWwiKSx0aGlzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJpbiIpLm9mZigiY2xpY2suZGlzbWlzcy5icy5tb2RhbCIpLm9mZigibW91c2V1cC5kaXNtaXNzLmJzLm1vZGFsIiksdGhpcy4kZGlhbG9nLm9mZigibW91c2Vkb3duLmRpc21pc3MuYnMubW9kYWwiKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kZWxlbWVudC5oYXNDbGFzcygiZmFkZSIpP3RoaXMuJGVsZW1lbnQub25lKCJic1RyYW5zaXRpb25FbmQiLGEucHJveHkodGhpcy5oaWRlTW9kYWwsdGhpcykpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6dGhpcy5oaWRlTW9kYWwoKSl9LGMucHJvdG90eXBlLmVuZm9yY2VGb2N1cz1mdW5jdGlvbigpe2EoZG9jdW1lbnQpLm9mZigiZm9jdXNpbi5icy5tb2RhbCIpLm9uKCJmb2N1c2luLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3RoaXMuJGVsZW1lbnRbMF09PT1hLnRhcmdldHx8dGhpcy4kZWxlbWVudC5oYXMoYS50YXJnZXQpLmxlbmd0aHx8dGhpcy4kZWxlbWVudC50cmlnZ2VyKCJmb2N1cyIpfSx0aGlzKSl9LGMucHJvdG90eXBlLmVzY2FwZT1mdW5jdGlvbigpe3RoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmtleWJvYXJkP3RoaXMuJGVsZW1lbnQub24oImtleWRvd24uZGlzbWlzcy5icy5tb2RhbCIsYS5wcm94eShmdW5jdGlvbihhKXsyNz09YS53aGljaCYmdGhpcy5oaWRlKCl9LHRoaXMpKTp0aGlzLmlzU2hvd258fHRoaXMuJGVsZW1lbnQub2ZmKCJrZXlkb3duLmRpc21pc3MuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5pc1Nob3duP2Eod2luZG93KS5vbigicmVzaXplLmJzLm1vZGFsIixhLnByb3h5KHRoaXMuaGFuZGxlVXBkYXRlLHRoaXMpKTphKHdpbmRvdykub2ZmKCJyZXNpemUuYnMubW9kYWwiKX0sYy5wcm90b3R5cGUuaGlkZU1vZGFsPWZ1bmN0aW9uKCl7dmFyIGE9dGhpczt0aGlzLiRlbGVtZW50LmhpZGUoKSx0aGlzLmJhY2tkcm9wKGZ1bmN0aW9uKCl7YS4kYm9keS5yZW1vdmVDbGFzcygibW9kYWwtb3BlbiIpLGEucmVzZXRBZGp1c3RtZW50cygpLGEucmVzZXRTY3JvbGxiYXIoKSxhLiRlbGVtZW50LnRyaWdnZXIoImhpZGRlbi5icy5tb2RhbCIpfSl9LGMucHJvdG90eXBlLnJlbW92ZUJhY2tkcm9wPWZ1bmN0aW9uKCl7dGhpcy4kYmFja2Ryb3AmJnRoaXMuJGJhY2tkcm9wLnJlbW92ZSgpLHRoaXMuJGJhY2tkcm9wPW51bGx9LGMucHJvdG90eXBlLmJhY2tkcm9wPWZ1bmN0aW9uKGIpe3ZhciBkPXRoaXMsZT10aGlzLiRlbGVtZW50Lmhhc0NsYXNzKCJmYWRlIik/ImZhZGUiOiIiO2lmKHRoaXMuaXNTaG93biYmdGhpcy5vcHRpb25zLmJhY2tkcm9wKXt2YXIgZj1hLnN1cHBvcnQudHJhbnNpdGlvbiYmZTtpZih0aGlzLiRiYWNrZHJvcD1hKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpKS5hZGRDbGFzcygibW9kYWwtYmFja2Ryb3AgIitlKS5hcHBlbmRUbyh0aGlzLiRib2R5KSx0aGlzLiRlbGVtZW50Lm9uKCJjbGljay5kaXNtaXNzLmJzLm1vZGFsIixhLnByb3h5KGZ1bmN0aW9uKGEpe3JldHVybiB0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s/dm9pZCh0aGlzLmlnbm9yZUJhY2tkcm9wQ2xpY2s9ITEpOnZvaWQoYS50YXJnZXQ9PT1hLmN1cnJlbnRUYXJnZXQmJigic3RhdGljIj09dGhpcy5vcHRpb25zLmJhY2tkcm9wP3RoaXMuJGVsZW1lbnRbMF0uZm9jdXMoKTp0aGlzLmhpZGUoKSkpfSx0aGlzKSksZiYmdGhpcy4kYmFja2Ryb3BbMF0ub2Zmc2V0V2lkdGgsdGhpcy4kYmFja2Ryb3AuYWRkQ2xhc3MoImluIiksIWIpcmV0dXJuO2Y/dGhpcy4kYmFja2Ryb3Aub25lKCJic1RyYW5zaXRpb25FbmQiLGIpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuQkFDS0RST1BfVFJBTlNJVElPTl9EVVJBVElPTik6YigpfWVsc2UgaWYoIXRoaXMuaXNTaG93biYmdGhpcy4kYmFja2Ryb3Ape3RoaXMuJGJhY2tkcm9wLnJlbW92ZUNsYXNzKCJpbiIpO3ZhciBnPWZ1bmN0aW9uKCl7ZC5yZW1vdmVCYWNrZHJvcCgpLGImJmIoKX07YS5zdXBwb3J0LnRyYW5zaXRpb24mJnRoaXMuJGVsZW1lbnQuaGFzQ2xhc3MoImZhZGUiKT90aGlzLiRiYWNrZHJvcC5vbmUoImJzVHJhbnNpdGlvbkVuZCIsZykuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5CQUNLRFJPUF9UUkFOU0lUSU9OX0RVUkFUSU9OKTpnKCl9ZWxzZSBiJiZiKCl9LGMucHJvdG90eXBlLmhhbmRsZVVwZGF0ZT1mdW5jdGlvbigpe3RoaXMuYWRqdXN0RGlhbG9nKCl9LGMucHJvdG90eXBlLmFkanVzdERpYWxvZz1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnRbMF0uc2Nyb2xsSGVpZ2h0PmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7dGhpcy4kZWxlbWVudC5jc3Moe3BhZGRpbmdMZWZ0OiF0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiIscGFkZGluZ1JpZ2h0OnRoaXMuYm9keUlzT3ZlcmZsb3dpbmcmJiFhP3RoaXMuc2Nyb2xsYmFyV2lkdGg6IiJ9KX0sYy5wcm90b3R5cGUucmVzZXRBZGp1c3RtZW50cz1mdW5jdGlvbigpe3RoaXMuJGVsZW1lbnQuY3NzKHtwYWRkaW5nTGVmdDoiIixwYWRkaW5nUmlnaHQ6IiJ9KX0sYy5wcm90b3R5cGUuY2hlY2tTY3JvbGxiYXI9ZnVuY3Rpb24oKXt2YXIgYT13aW5kb3cuaW5uZXJXaWR0aDtpZighYSl7dmFyIGI9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2E9Yi5yaWdodC1NYXRoLmFicyhiLmxlZnQpfXRoaXMuYm9keUlzT3ZlcmZsb3dpbmc9ZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aDxhLHRoaXMuc2Nyb2xsYmFyV2lkdGg9dGhpcy5tZWFzdXJlU2Nyb2xsYmFyKCl9LGMucHJvdG90eXBlLnNldFNjcm9sbGJhcj1mdW5jdGlvbigpe3ZhciBhPXBhcnNlSW50KHRoaXMuJGJvZHkuY3NzKCJwYWRkaW5nLXJpZ2h0Iil8fDAsMTApO3RoaXMub3JpZ2luYWxCb2R5UGFkPWRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZ1JpZ2h0fHwiIix0aGlzLmJvZHlJc092ZXJmbG93aW5nJiZ0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsYSt0aGlzLnNjcm9sbGJhcldpZHRoKX0sYy5wcm90b3R5cGUucmVzZXRTY3JvbGxiYXI9ZnVuY3Rpb24oKXt0aGlzLiRib2R5LmNzcygicGFkZGluZy1yaWdodCIsdGhpcy5vcmlnaW5hbEJvZHlQYWQpfSxjLnByb3RvdHlwZS5tZWFzdXJlU2Nyb2xsYmFyPWZ1bmN0aW9uKCl7dmFyIGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7YS5jbGFzc05hbWU9Im1vZGFsLXNjcm9sbGJhci1tZWFzdXJlIix0aGlzLiRib2R5LmFwcGVuZChhKTt2YXIgYj1hLm9mZnNldFdpZHRoLWEuY2xpZW50V2lkdGg7cmV0dXJuIHRoaXMuJGJvZHlbMF0ucmVtb3ZlQ2hpbGQoYSksYn07dmFyIGQ9YS5mbi5tb2RhbDthLmZuLm1vZGFsPWIsYS5mbi5tb2RhbC5Db25zdHJ1Y3Rvcj1jLGEuZm4ubW9kYWwubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLm1vZGFsPWQsdGhpc30sYShkb2N1bWVudCkub24oImNsaWNrLmJzLm1vZGFsLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJtb2RhbCJdJyxmdW5jdGlvbihjKXt2YXIgZD1hKHRoaXMpLGU9ZC5hdHRyKCJocmVmIiksZj1hKGQuYXR0cigiZGF0YS10YXJnZXQiKXx8ZSYmZS5yZXBsYWNlKC8uKig/PSNbXlxzXSskKS8sIiIpKSxnPWYuZGF0YSgiYnMubW9kYWwiKT8idG9nZ2xlIjphLmV4dGVuZCh7cmVtb3RlOiEvIy8udGVzdChlKSYmZX0sZi5kYXRhKCksZC5kYXRhKCkpO2QuaXMoImEiKSYmYy5wcmV2ZW50RGVmYXVsdCgpLGYub25lKCJzaG93LmJzLm1vZGFsIixmdW5jdGlvbihhKXthLmlzRGVmYXVsdFByZXZlbnRlZCgpfHxmLm9uZSgiaGlkZGVuLmJzLm1vZGFsIixmdW5jdGlvbigpe2QuaXMoIjp2aXNpYmxlIikmJmQudHJpZ2dlcigiZm9jdXMiKX0pfSksYi5jYWxsKGYsZyx0aGlzKX0pfShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMudG9vbHRpcCIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnRvb2x0aXAiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLnR5cGU9bnVsbCx0aGlzLm9wdGlvbnM9bnVsbCx0aGlzLmVuYWJsZWQ9bnVsbCx0aGlzLnRpbWVvdXQ9bnVsbCx0aGlzLmhvdmVyU3RhdGU9bnVsbCx0aGlzLiRlbGVtZW50PW51bGwsdGhpcy5pblN0YXRlPW51bGwsdGhpcy5pbml0KCJ0b29sdGlwIixhLGIpfTtjLlZFUlNJT049IjMuMy41IixjLlRSQU5TSVRJT05fRFVSQVRJT049MTUwLGMuREVGQVVMVFM9e2FuaW1hdGlvbjohMCxwbGFjZW1lbnQ6InRvcCIsc2VsZWN0b3I6ITEsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InRvb2x0aXAiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9InRvb2x0aXAtYXJyb3ciPjwvZGl2PjxkaXYgY2xhc3M9InRvb2x0aXAtaW5uZXIiPjwvZGl2PjwvZGl2PicsdHJpZ2dlcjoiaG92ZXIgZm9jdXMiLHRpdGxlOiIiLGRlbGF5OjAsaHRtbDohMSxjb250YWluZXI6ITEsdmlld3BvcnQ6e3NlbGVjdG9yOiJib2R5IixwYWRkaW5nOjB9fSxjLnByb3RvdHlwZS5pbml0PWZ1bmN0aW9uKGIsYyxkKXtpZih0aGlzLmVuYWJsZWQ9ITAsdGhpcy50eXBlPWIsdGhpcy4kZWxlbWVudD1hKGMpLHRoaXMub3B0aW9ucz10aGlzLmdldE9wdGlvbnMoZCksdGhpcy4kdmlld3BvcnQ9dGhpcy5vcHRpb25zLnZpZXdwb3J0JiZhKGEuaXNGdW5jdGlvbih0aGlzLm9wdGlvbnMudmlld3BvcnQpP3RoaXMub3B0aW9ucy52aWV3cG9ydC5jYWxsKHRoaXMsdGhpcy4kZWxlbWVudCk6dGhpcy5vcHRpb25zLnZpZXdwb3J0LnNlbGVjdG9yfHx0aGlzLm9wdGlvbnMudmlld3BvcnQpLHRoaXMuaW5TdGF0ZT17Y2xpY2s6ITEsaG92ZXI6ITEsZm9jdXM6ITF9LHRoaXMuJGVsZW1lbnRbMF1pbnN0YW5jZW9mIGRvY3VtZW50LmNvbnN0cnVjdG9yJiYhdGhpcy5vcHRpb25zLnNlbGVjdG9yKXRocm93IG5ldyBFcnJvcigiYHNlbGVjdG9yYCBvcHRpb24gbXVzdCBiZSBzcGVjaWZpZWQgd2hlbiBpbml0aWFsaXppbmcgIit0aGlzLnR5cGUrIiBvbiB0aGUgd2luZG93LmRvY3VtZW50IG9iamVjdCEiKTtmb3IodmFyIGU9dGhpcy5vcHRpb25zLnRyaWdnZXIuc3BsaXQoIiAiKSxmPWUubGVuZ3RoO2YtLTspe3ZhciBnPWVbZl07aWYoImNsaWNrIj09Zyl0aGlzLiRlbGVtZW50Lm9uKCJjbGljay4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLnRvZ2dsZSx0aGlzKSk7ZWxzZSBpZigibWFudWFsIiE9Zyl7dmFyIGg9ImhvdmVyIj09Zz8ibW91c2VlbnRlciI6ImZvY3VzaW4iLGk9ImhvdmVyIj09Zz8ibW91c2VsZWF2ZSI6ImZvY3Vzb3V0Ijt0aGlzLiRlbGVtZW50Lm9uKGgrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmVudGVyLHRoaXMpKSx0aGlzLiRlbGVtZW50Lm9uKGkrIi4iK3RoaXMudHlwZSx0aGlzLm9wdGlvbnMuc2VsZWN0b3IsYS5wcm94eSh0aGlzLmxlYXZlLHRoaXMpKX19dGhpcy5vcHRpb25zLnNlbGVjdG9yP3RoaXMuX29wdGlvbnM9YS5leHRlbmQoe30sdGhpcy5vcHRpb25zLHt0cmlnZ2VyOiJtYW51YWwiLHNlbGVjdG9yOiIifSk6dGhpcy5maXhUaXRsZSgpfSxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5nZXRPcHRpb25zPWZ1bmN0aW9uKGIpe3JldHVybiBiPWEuZXh0ZW5kKHt9LHRoaXMuZ2V0RGVmYXVsdHMoKSx0aGlzLiRlbGVtZW50LmRhdGEoKSxiKSxiLmRlbGF5JiYibnVtYmVyIj09dHlwZW9mIGIuZGVsYXkmJihiLmRlbGF5PXtzaG93OmIuZGVsYXksaGlkZTpiLmRlbGF5fSksYn0sYy5wcm90b3R5cGUuZ2V0RGVsZWdhdGVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIGI9e30sYz10aGlzLmdldERlZmF1bHRzKCk7cmV0dXJuIHRoaXMuX29wdGlvbnMmJmEuZWFjaCh0aGlzLl9vcHRpb25zLGZ1bmN0aW9uKGEsZCl7Y1thXSE9ZCYmKGJbYV09ZCl9KSxifSxjLnByb3RvdHlwZS5lbnRlcj1mdW5jdGlvbihiKXt2YXIgYz1iIGluc3RhbmNlb2YgdGhpcy5jb25zdHJ1Y3Rvcj9iOmEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSk7cmV0dXJuIGN8fChjPW5ldyB0aGlzLmNvbnN0cnVjdG9yKGIuY3VycmVudFRhcmdldCx0aGlzLmdldERlbGVnYXRlT3B0aW9ucygpKSxhKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsYykpLGIgaW5zdGFuY2VvZiBhLkV2ZW50JiYoYy5pblN0YXRlWyJmb2N1c2luIj09Yi50eXBlPyJmb2N1cyI6ImhvdmVyIl09ITApLGMudGlwKCkuaGFzQ2xhc3MoImluIil8fCJpbiI9PWMuaG92ZXJTdGF0ZT92b2lkKGMuaG92ZXJTdGF0ZT0iaW4iKTooY2xlYXJUaW1lb3V0KGMudGltZW91dCksYy5ob3ZlclN0YXRlPSJpbiIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuc2hvdz92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7ImluIj09Yy5ob3ZlclN0YXRlJiZjLnNob3coKX0sYy5vcHRpb25zLmRlbGF5LnNob3cpKTpjLnNob3coKSl9LGMucHJvdG90eXBlLmlzSW5TdGF0ZVRydWU9ZnVuY3Rpb24oKXtmb3IodmFyIGEgaW4gdGhpcy5pblN0YXRlKWlmKHRoaXMuaW5TdGF0ZVthXSlyZXR1cm4hMDtyZXR1cm4hMX0sYy5wcm90b3R5cGUubGVhdmU9ZnVuY3Rpb24oYil7dmFyIGM9YiBpbnN0YW5jZW9mIHRoaXMuY29uc3RydWN0b3I/YjphKGIuY3VycmVudFRhcmdldCkuZGF0YSgiYnMuIit0aGlzLnR5cGUpO3JldHVybiBjfHwoYz1uZXcgdGhpcy5jb25zdHJ1Y3RvcihiLmN1cnJlbnRUYXJnZXQsdGhpcy5nZXREZWxlZ2F0ZU9wdGlvbnMoKSksYShiLmN1cnJlbnRUYXJnZXQpLmRhdGEoImJzLiIrdGhpcy50eXBlLGMpKSxiIGluc3RhbmNlb2YgYS5FdmVudCYmKGMuaW5TdGF0ZVsiZm9jdXNvdXQiPT1iLnR5cGU/ImZvY3VzIjoiaG92ZXIiXT0hMSksYy5pc0luU3RhdGVUcnVlKCk/dm9pZCAwOihjbGVhclRpbWVvdXQoYy50aW1lb3V0KSxjLmhvdmVyU3RhdGU9Im91dCIsYy5vcHRpb25zLmRlbGF5JiZjLm9wdGlvbnMuZGVsYXkuaGlkZT92b2lkKGMudGltZW91dD1zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7Im91dCI9PWMuaG92ZXJTdGF0ZSYmYy5oaWRlKCl9LGMub3B0aW9ucy5kZWxheS5oaWRlKSk6Yy5oaWRlKCkpfSxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9YS5FdmVudCgic2hvdy5icy4iK3RoaXMudHlwZSk7aWYodGhpcy5oYXNDb250ZW50KCkmJnRoaXMuZW5hYmxlZCl7dGhpcy4kZWxlbWVudC50cmlnZ2VyKGIpO3ZhciBkPWEuY29udGFpbnModGhpcy4kZWxlbWVudFswXS5vd25lckRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0aGlzLiRlbGVtZW50WzBdKTtpZihiLmlzRGVmYXVsdFByZXZlbnRlZCgpfHwhZClyZXR1cm47dmFyIGU9dGhpcyxmPXRoaXMudGlwKCksZz10aGlzLmdldFVJRCh0aGlzLnR5cGUpO3RoaXMuc2V0Q29udGVudCgpLGYuYXR0cigiaWQiLGcpLHRoaXMuJGVsZW1lbnQuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZyksdGhpcy5vcHRpb25zLmFuaW1hdGlvbiYmZi5hZGRDbGFzcygiZmFkZSIpO3ZhciBoPSJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLm9wdGlvbnMucGxhY2VtZW50P3RoaXMub3B0aW9ucy5wbGFjZW1lbnQuY2FsbCh0aGlzLGZbMF0sdGhpcy4kZWxlbWVudFswXSk6dGhpcy5vcHRpb25zLnBsYWNlbWVudCxpPS9ccz9hdXRvP1xzPy9pLGo9aS50ZXN0KGgpO2omJihoPWgucmVwbGFjZShpLCIiKXx8InRvcCIpLGYuZGV0YWNoKCkuY3NzKHt0b3A6MCxsZWZ0OjAsZGlzcGxheToiYmxvY2sifSkuYWRkQ2xhc3MoaCkuZGF0YSgiYnMuIit0aGlzLnR5cGUsdGhpcyksdGhpcy5vcHRpb25zLmNvbnRhaW5lcj9mLmFwcGVuZFRvKHRoaXMub3B0aW9ucy5jb250YWluZXIpOmYuaW5zZXJ0QWZ0ZXIodGhpcy4kZWxlbWVudCksdGhpcy4kZWxlbWVudC50cmlnZ2VyKCJpbnNlcnRlZC5icy4iK3RoaXMudHlwZSk7dmFyIGs9dGhpcy5nZXRQb3NpdGlvbigpLGw9ZlswXS5vZmZzZXRXaWR0aCxtPWZbMF0ub2Zmc2V0SGVpZ2h0O2lmKGope3ZhciBuPWgsbz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtoPSJib3R0b20iPT1oJiZrLmJvdHRvbSttPm8uYm90dG9tPyJ0b3AiOiJ0b3AiPT1oJiZrLnRvcC1tPG8udG9wPyJib3R0b20iOiJyaWdodCI9PWgmJmsucmlnaHQrbD5vLndpZHRoPyJsZWZ0IjoibGVmdCI9PWgmJmsubGVmdC1sPG8ubGVmdD8icmlnaHQiOmgsZi5yZW1vdmVDbGFzcyhuKS5hZGRDbGFzcyhoKX12YXIgcD10aGlzLmdldENhbGN1bGF0ZWRPZmZzZXQoaCxrLGwsbSk7dGhpcy5hcHBseVBsYWNlbWVudChwLGgpO3ZhciBxPWZ1bmN0aW9uKCl7dmFyIGE9ZS5ob3ZlclN0YXRlO2UuJGVsZW1lbnQudHJpZ2dlcigic2hvd24uYnMuIitlLnR5cGUpLGUuaG92ZXJTdGF0ZT1udWxsLCJvdXQiPT1hJiZlLmxlYXZlKGUpfTthLnN1cHBvcnQudHJhbnNpdGlvbiYmdGhpcy4kdGlwLmhhc0NsYXNzKCJmYWRlIik/Zi5vbmUoImJzVHJhbnNpdGlvbkVuZCIscSkuZW11bGF0ZVRyYW5zaXRpb25FbmQoYy5UUkFOU0lUSU9OX0RVUkFUSU9OKTpxKCl9fSxjLnByb3RvdHlwZS5hcHBseVBsYWNlbWVudD1mdW5jdGlvbihiLGMpe3ZhciBkPXRoaXMudGlwKCksZT1kWzBdLm9mZnNldFdpZHRoLGY9ZFswXS5vZmZzZXRIZWlnaHQsZz1wYXJzZUludChkLmNzcygibWFyZ2luLXRvcCIpLDEwKSxoPXBhcnNlSW50KGQuY3NzKCJtYXJnaW4tbGVmdCIpLDEwKTtpc05hTihnKSYmKGc9MCksaXNOYU4oaCkmJihoPTApLGIudG9wKz1nLGIubGVmdCs9aCxhLm9mZnNldC5zZXRPZmZzZXQoZFswXSxhLmV4dGVuZCh7dXNpbmc6ZnVuY3Rpb24oYSl7ZC5jc3Moe3RvcDpNYXRoLnJvdW5kKGEudG9wKSxsZWZ0Ok1hdGgucm91bmQoYS5sZWZ0KX0pfX0sYiksMCksZC5hZGRDbGFzcygiaW4iKTt2YXIgaT1kWzBdLm9mZnNldFdpZHRoLGo9ZFswXS5vZmZzZXRIZWlnaHQ7InRvcCI9PWMmJmohPWYmJihiLnRvcD1iLnRvcCtmLWopO3ZhciBrPXRoaXMuZ2V0Vmlld3BvcnRBZGp1c3RlZERlbHRhKGMsYixpLGopO2subGVmdD9iLmxlZnQrPWsubGVmdDpiLnRvcCs9ay50b3A7dmFyIGw9L3RvcHxib3R0b20vLnRlc3QoYyksbT1sPzIqay5sZWZ0LWUraToyKmsudG9wLWYraixuPWw/Im9mZnNldFdpZHRoIjoib2Zmc2V0SGVpZ2h0IjtkLm9mZnNldChiKSx0aGlzLnJlcGxhY2VBcnJvdyhtLGRbMF1bbl0sbCl9LGMucHJvdG90eXBlLnJlcGxhY2VBcnJvdz1mdW5jdGlvbihhLGIsYyl7dGhpcy5hcnJvdygpLmNzcyhjPyJsZWZ0IjoidG9wIiw1MCooMS1hL2IpKyIlIikuY3NzKGM/InRvcCI6ImxlZnQiLCIiKX0sYy5wcm90b3R5cGUuc2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMudGlwKCksYj10aGlzLmdldFRpdGxlKCk7YS5maW5kKCIudG9vbHRpcC1pbm5lciIpW3RoaXMub3B0aW9ucy5odG1sPyJodG1sIjoidGV4dCJdKGIpLGEucmVtb3ZlQ2xhc3MoImZhZGUgaW4gdG9wIGJvdHRvbSBsZWZ0IHJpZ2h0Iil9LGMucHJvdG90eXBlLmhpZGU9ZnVuY3Rpb24oYil7ZnVuY3Rpb24gZCgpeyJpbiIhPWUuaG92ZXJTdGF0ZSYmZi5kZXRhY2goKSxlLiRlbGVtZW50LnJlbW92ZUF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKS50cmlnZ2VyKCJoaWRkZW4uYnMuIitlLnR5cGUpLGImJmIoKX12YXIgZT10aGlzLGY9YSh0aGlzLiR0aXApLGc9YS5FdmVudCgiaGlkZS5icy4iK3RoaXMudHlwZSk7cmV0dXJuIHRoaXMuJGVsZW1lbnQudHJpZ2dlcihnKSxnLmlzRGVmYXVsdFByZXZlbnRlZCgpP3ZvaWQgMDooZi5yZW1vdmVDbGFzcygiaW4iKSxhLnN1cHBvcnQudHJhbnNpdGlvbiYmZi5oYXNDbGFzcygiZmFkZSIpP2Yub25lKCJic1RyYW5zaXRpb25FbmQiLGQpLmVtdWxhdGVUcmFuc2l0aW9uRW5kKGMuVFJBTlNJVElPTl9EVVJBVElPTik6ZCgpLHRoaXMuaG92ZXJTdGF0ZT1udWxsLHRoaXMpfSxjLnByb3RvdHlwZS5maXhUaXRsZT1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQ7KGEuYXR0cigidGl0bGUiKXx8InN0cmluZyIhPXR5cGVvZiBhLmF0dHIoImRhdGEtb3JpZ2luYWwtdGl0bGUiKSkmJmEuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIsYS5hdHRyKCJ0aXRsZSIpfHwiIikuYXR0cigidGl0bGUiLCIiKX0sYy5wcm90b3R5cGUuaGFzQ29udGVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFRpdGxlKCl9LGMucHJvdG90eXBlLmdldFBvc2l0aW9uPWZ1bmN0aW9uKGIpe2I9Ynx8dGhpcy4kZWxlbWVudDt2YXIgYz1iWzBdLGQ9IkJPRFkiPT1jLnRhZ05hbWUsZT1jLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO251bGw9PWUud2lkdGgmJihlPWEuZXh0ZW5kKHt9LGUse3dpZHRoOmUucmlnaHQtZS5sZWZ0LGhlaWdodDplLmJvdHRvbS1lLnRvcH0pKTt2YXIgZj1kP3t0b3A6MCxsZWZ0OjB9OmIub2Zmc2V0KCksZz17c2Nyb2xsOmQ/ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcHx8ZG9jdW1lbnQuYm9keS5zY3JvbGxUb3A6Yi5zY3JvbGxUb3AoKX0saD1kP3t3aWR0aDphKHdpbmRvdykud2lkdGgoKSxoZWlnaHQ6YSh3aW5kb3cpLmhlaWdodCgpfTpudWxsO3JldHVybiBhLmV4dGVuZCh7fSxlLGcsaCxmKX0sYy5wcm90b3R5cGUuZ2V0Q2FsY3VsYXRlZE9mZnNldD1mdW5jdGlvbihhLGIsYyxkKXtyZXR1cm4iYm90dG9tIj09YT97dG9wOmIudG9wK2IuaGVpZ2h0LGxlZnQ6Yi5sZWZ0K2Iud2lkdGgvMi1jLzJ9OiJ0b3AiPT1hP3t0b3A6Yi50b3AtZCxsZWZ0OmIubGVmdCtiLndpZHRoLzItYy8yfToibGVmdCI9PWE/e3RvcDpiLnRvcCtiLmhlaWdodC8yLWQvMixsZWZ0OmIubGVmdC1jfTp7dG9wOmIudG9wK2IuaGVpZ2h0LzItZC8yLGxlZnQ6Yi5sZWZ0K2Iud2lkdGh9fSxjLnByb3RvdHlwZS5nZXRWaWV3cG9ydEFkanVzdGVkRGVsdGE9ZnVuY3Rpb24oYSxiLGMsZCl7dmFyIGU9e3RvcDowLGxlZnQ6MH07aWYoIXRoaXMuJHZpZXdwb3J0KXJldHVybiBlO3ZhciBmPXRoaXMub3B0aW9ucy52aWV3cG9ydCYmdGhpcy5vcHRpb25zLnZpZXdwb3J0LnBhZGRpbmd8fDAsZz10aGlzLmdldFBvc2l0aW9uKHRoaXMuJHZpZXdwb3J0KTtpZigvcmlnaHR8bGVmdC8udGVzdChhKSl7dmFyIGg9Yi50b3AtZi1nLnNjcm9sbCxpPWIudG9wK2YtZy5zY3JvbGwrZDtoPGcudG9wP2UudG9wPWcudG9wLWg6aT5nLnRvcCtnLmhlaWdodCYmKGUudG9wPWcudG9wK2cuaGVpZ2h0LWkpfWVsc2V7dmFyIGo9Yi5sZWZ0LWYsaz1iLmxlZnQrZitjO2o8Zy5sZWZ0P2UubGVmdD1nLmxlZnQtajprPmcucmlnaHQmJihlLmxlZnQ9Zy5sZWZ0K2cud2lkdGgtayl9cmV0dXJuIGV9LGMucHJvdG90eXBlLmdldFRpdGxlPWZ1bmN0aW9uKCl7dmFyIGEsYj10aGlzLiRlbGVtZW50LGM9dGhpcy5vcHRpb25zO3JldHVybiBhPWIuYXR0cigiZGF0YS1vcmlnaW5hbC10aXRsZSIpfHwoImZ1bmN0aW9uIj09dHlwZW9mIGMudGl0bGU/Yy50aXRsZS5jYWxsKGJbMF0pOmMudGl0bGUpfSxjLnByb3RvdHlwZS5nZXRVSUQ9ZnVuY3Rpb24oYSl7ZG8gYSs9fn4oMWU2Kk1hdGgucmFuZG9tKCkpO3doaWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpKTtyZXR1cm4gYX0sYy5wcm90b3R5cGUudGlwPWZ1bmN0aW9uKCl7aWYoIXRoaXMuJHRpcCYmKHRoaXMuJHRpcD1hKHRoaXMub3B0aW9ucy50ZW1wbGF0ZSksMSE9dGhpcy4kdGlwLmxlbmd0aCkpdGhyb3cgbmV3IEVycm9yKHRoaXMudHlwZSsiIGB0ZW1wbGF0ZWAgb3B0aW9uIG11c3QgY29uc2lzdCBvZiBleGFjdGx5IDEgdG9wLWxldmVsIGVsZW1lbnQhIik7cmV0dXJuIHRoaXMuJHRpcH0sYy5wcm90b3R5cGUuYXJyb3c9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kYXJyb3c9dGhpcy4kYXJyb3d8fHRoaXMudGlwKCkuZmluZCgiLnRvb2x0aXAtYXJyb3ciKX0sYy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSEwfSxjLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSExfSxjLnByb3RvdHlwZS50b2dnbGVFbmFibGVkPWZ1bmN0aW9uKCl7dGhpcy5lbmFibGVkPSF0aGlzLmVuYWJsZWR9LGMucHJvdG90eXBlLnRvZ2dsZT1mdW5jdGlvbihiKXt2YXIgYz10aGlzO2ImJihjPWEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSksY3x8KGM9bmV3IHRoaXMuY29uc3RydWN0b3IoYi5jdXJyZW50VGFyZ2V0LHRoaXMuZ2V0RGVsZWdhdGVPcHRpb25zKCkpLGEoYi5jdXJyZW50VGFyZ2V0KS5kYXRhKCJicy4iK3RoaXMudHlwZSxjKSkpLGI/KGMuaW5TdGF0ZS5jbGljaz0hYy5pblN0YXRlLmNsaWNrLGMuaXNJblN0YXRlVHJ1ZSgpP2MuZW50ZXIoYyk6Yy5sZWF2ZShjKSk6Yy50aXAoKS5oYXNDbGFzcygiaW4iKT9jLmxlYXZlKGMpOmMuZW50ZXIoYyl9LGMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgYT10aGlzO2NsZWFyVGltZW91dCh0aGlzLnRpbWVvdXQpLHRoaXMuaGlkZShmdW5jdGlvbigpe2EuJGVsZW1lbnQub2ZmKCIuIithLnR5cGUpLnJlbW92ZURhdGEoImJzLiIrYS50eXBlKSxhLiR0aXAmJmEuJHRpcC5kZXRhY2goKSxhLiR0aXA9bnVsbCxhLiRhcnJvdz1udWxsLGEuJHZpZXdwb3J0PW51bGx9KX07dmFyIGQ9YS5mbi50b29sdGlwO2EuZm4udG9vbHRpcD1iLGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvcj1jLGEuZm4udG9vbHRpcC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4udG9vbHRpcD1kLHRoaXN9fShqUXVlcnkpLCtmdW5jdGlvbihhKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gYihiKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGQ9YSh0aGlzKSxlPWQuZGF0YSgiYnMucG9wb3ZlciIpLGY9Im9iamVjdCI9PXR5cGVvZiBiJiZiOyhlfHwhL2Rlc3Ryb3l8aGlkZS8udGVzdChiKSkmJihlfHxkLmRhdGEoImJzLnBvcG92ZXIiLGU9bmV3IGModGhpcyxmKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCkpfSl9dmFyIGM9ZnVuY3Rpb24oYSxiKXt0aGlzLmluaXQoInBvcG92ZXIiLGEsYil9O2lmKCFhLmZuLnRvb2x0aXApdGhyb3cgbmV3IEVycm9yKCJQb3BvdmVyIHJlcXVpcmVzIHRvb2x0aXAuanMiKTtjLlZFUlNJT049IjMuMy41IixjLkRFRkFVTFRTPWEuZXh0ZW5kKHt9LGEuZm4udG9vbHRpcC5Db25zdHJ1Y3Rvci5ERUZBVUxUUyx7cGxhY2VtZW50OiJyaWdodCIsdHJpZ2dlcjoiY2xpY2siLGNvbnRlbnQ6IiIsdGVtcGxhdGU6JzxkaXYgY2xhc3M9InBvcG92ZXIiIHJvbGU9InRvb2x0aXAiPjxkaXYgY2xhc3M9ImFycm93Ij48L2Rpdj48aDMgY2xhc3M9InBvcG92ZXItdGl0bGUiPjwvaDM+PGRpdiBjbGFzcz0icG9wb3Zlci1jb250ZW50Ij48L2Rpdj48L2Rpdj4nfSksYy5wcm90b3R5cGU9YS5leHRlbmQoe30sYS5mbi50b29sdGlwLkNvbnN0cnVjdG9yLnByb3RvdHlwZSksYy5wcm90b3R5cGUuY29uc3RydWN0b3I9YyxjLnByb3RvdHlwZS5nZXREZWZhdWx0cz1mdW5jdGlvbigpe3JldHVybiBjLkRFRkFVTFRTfSxjLnByb3RvdHlwZS5zZXRDb250ZW50PWZ1bmN0aW9uKCl7dmFyIGE9dGhpcy50aXAoKSxiPXRoaXMuZ2V0VGl0bGUoKSxjPXRoaXMuZ2V0Q29udGVudCgpO2EuZmluZCgiLnBvcG92ZXItdGl0bGUiKVt0aGlzLm9wdGlvbnMuaHRtbD8iaHRtbCI6InRleHQiXShiKSxhLmZpbmQoIi5wb3BvdmVyLWNvbnRlbnQiKS5jaGlsZHJlbigpLmRldGFjaCgpLmVuZCgpW3RoaXMub3B0aW9ucy5odG1sPyJzdHJpbmciPT10eXBlb2YgYz8iaHRtbCI6ImFwcGVuZCI6InRleHQiXShjKSxhLnJlbW92ZUNsYXNzKCJmYWRlIHRvcCBib3R0b20gbGVmdCByaWdodCBpbiIpLGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5odG1sKCl8fGEuZmluZCgiLnBvcG92ZXItdGl0bGUiKS5oaWRlKCl9LGMucHJvdG90eXBlLmhhc0NvbnRlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nZXRUaXRsZSgpfHx0aGlzLmdldENvbnRlbnQoKX0sYy5wcm90b3R5cGUuZ2V0Q29udGVudD1mdW5jdGlvbigpe3ZhciBhPXRoaXMuJGVsZW1lbnQsYj10aGlzLm9wdGlvbnM7cmV0dXJuIGEuYXR0cigiZGF0YS1jb250ZW50Iil8fCgiZnVuY3Rpb24iPT10eXBlb2YgYi5jb250ZW50P2IuY29udGVudC5jYWxsKGFbMF0pOmIuY29udGVudCl9LGMucHJvdG90eXBlLmFycm93PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuJGFycm93PXRoaXMuJGFycm93fHx0aGlzLnRpcCgpLmZpbmQoIi5hcnJvdyIpfTt2YXIgZD1hLmZuLnBvcG92ZXI7YS5mbi5wb3BvdmVyPWIsYS5mbi5wb3BvdmVyLkNvbnN0cnVjdG9yPWMsYS5mbi5wb3BvdmVyLm5vQ29uZmxpY3Q9ZnVuY3Rpb24oKXtyZXR1cm4gYS5mbi5wb3BvdmVyPWQsdGhpc319KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGMsZCl7dGhpcy4kYm9keT1hKGRvY3VtZW50LmJvZHkpLHRoaXMuJHNjcm9sbEVsZW1lbnQ9YShhKGMpLmlzKGRvY3VtZW50LmJvZHkpP3dpbmRvdzpjKSx0aGlzLm9wdGlvbnM9YS5leHRlbmQoe30sYi5ERUZBVUxUUyxkKSx0aGlzLnNlbGVjdG9yPSh0aGlzLm9wdGlvbnMudGFyZ2V0fHwiIikrIiAubmF2IGxpID4gYSIsdGhpcy5vZmZzZXRzPVtdLHRoaXMudGFyZ2V0cz1bXSx0aGlzLmFjdGl2ZVRhcmdldD1udWxsLHRoaXMuc2Nyb2xsSGVpZ2h0PTAsdGhpcy4kc2Nyb2xsRWxlbWVudC5vbigic2Nyb2xsLmJzLnNjcm9sbHNweSIsYS5wcm94eSh0aGlzLnByb2Nlc3MsdGhpcykpLHRoaXMucmVmcmVzaCgpLHRoaXMucHJvY2VzcygpfWZ1bmN0aW9uIGMoYyl7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLnNjcm9sbHNweSIpLGY9Im9iamVjdCI9PXR5cGVvZiBjJiZjO2V8fGQuZGF0YSgiYnMuc2Nyb2xsc3B5IixlPW5ldyBiKHRoaXMsZikpLCJzdHJpbmciPT10eXBlb2YgYyYmZVtjXSgpfSl9Yi5WRVJTSU9OPSIzLjMuNSIsYi5ERUZBVUxUUz17b2Zmc2V0OjEwfSxiLnByb3RvdHlwZS5nZXRTY3JvbGxIZWlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy4kc2Nyb2xsRWxlbWVudFswXS5zY3JvbGxIZWlnaHR8fE1hdGgubWF4KHRoaXMuJGJvZHlbMF0uc2Nyb2xsSGVpZ2h0LGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxIZWlnaHQpfSxiLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIGI9dGhpcyxjPSJvZmZzZXQiLGQ9MDt0aGlzLm9mZnNldHM9W10sdGhpcy50YXJnZXRzPVtdLHRoaXMuc2Nyb2xsSGVpZ2h0PXRoaXMuZ2V0U2Nyb2xsSGVpZ2h0KCksYS5pc1dpbmRvdyh0aGlzLiRzY3JvbGxFbGVtZW50WzBdKXx8KGM9InBvc2l0aW9uIixkPXRoaXMuJHNjcm9sbEVsZW1lbnQuc2Nyb2xsVG9wKCkpLHRoaXMuJGJvZHkuZmluZCh0aGlzLnNlbGVjdG9yKS5tYXAoZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpLGU9Yi5kYXRhKCJ0YXJnZXQiKXx8Yi5hdHRyKCJocmVmIiksZj0vXiMuLy50ZXN0KGUpJiZhKGUpO3JldHVybiBmJiZmLmxlbmd0aCYmZi5pcygiOnZpc2libGUiKSYmW1tmW2NdKCkudG9wK2QsZV1dfHxudWxsfSkuc29ydChmdW5jdGlvbihhLGIpe3JldHVybiBhWzBdLWJbMF19KS5lYWNoKGZ1bmN0aW9uKCl7Yi5vZmZzZXRzLnB1c2godGhpc1swXSksYi50YXJnZXRzLnB1c2godGhpc1sxXSl9KX0sYi5wcm90b3R5cGUucHJvY2Vzcz1mdW5jdGlvbigpe3ZhciBhLGI9dGhpcy4kc2Nyb2xsRWxlbWVudC5zY3JvbGxUb3AoKSt0aGlzLm9wdGlvbnMub2Zmc2V0LGM9dGhpcy5nZXRTY3JvbGxIZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQrYy10aGlzLiRzY3JvbGxFbGVtZW50LmhlaWdodCgpLGU9dGhpcy5vZmZzZXRzLGY9dGhpcy50YXJnZXRzLGc9dGhpcy5hY3RpdmVUYXJnZXQ7aWYodGhpcy5zY3JvbGxIZWlnaHQhPWMmJnRoaXMucmVmcmVzaCgpLGI+PWQpcmV0dXJuIGchPShhPWZbZi5sZW5ndGgtMV0pJiZ0aGlzLmFjdGl2YXRlKGEpO2lmKGcmJmI8ZVswXSlyZXR1cm4gdGhpcy5hY3RpdmVUYXJnZXQ9bnVsbCx0aGlzLmNsZWFyKCk7Zm9yKGE9ZS5sZW5ndGg7YS0tOylnIT1mW2FdJiZiPj1lW2FdJiYodm9pZCAwPT09ZVthKzFdfHxiPGVbYSsxXSkmJnRoaXMuYWN0aXZhdGUoZlthXSl9LGIucHJvdG90eXBlLmFjdGl2YXRlPWZ1bmN0aW9uKGIpe3RoaXMuYWN0aXZlVGFyZ2V0PWIsdGhpcy5jbGVhcigpO3ZhciBjPXRoaXMuc2VsZWN0b3IrJ1tkYXRhLXRhcmdldD0iJytiKyciXSwnK3RoaXMuc2VsZWN0b3IrJ1tocmVmPSInK2IrJyJdJyxkPWEoYykucGFyZW50cygibGkiKS5hZGRDbGFzcygiYWN0aXZlIik7ZC5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiYoZD1kLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpKSwKZC50cmlnZ2VyKCJhY3RpdmF0ZS5icy5zY3JvbGxzcHkiKX0sYi5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXthKHRoaXMuc2VsZWN0b3IpLnBhcmVudHNVbnRpbCh0aGlzLm9wdGlvbnMudGFyZ2V0LCIuYWN0aXZlIikucmVtb3ZlQ2xhc3MoImFjdGl2ZSIpfTt2YXIgZD1hLmZuLnNjcm9sbHNweTthLmZuLnNjcm9sbHNweT1jLGEuZm4uc2Nyb2xsc3B5LkNvbnN0cnVjdG9yPWIsYS5mbi5zY3JvbGxzcHkubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnNjcm9sbHNweT1kLHRoaXN9LGEod2luZG93KS5vbigibG9hZC5icy5zY3JvbGxzcHkuZGF0YS1hcGkiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJzY3JvbGwiXScpLmVhY2goZnVuY3Rpb24oKXt2YXIgYj1hKHRoaXMpO2MuY2FsbChiLGIuZGF0YSgpKX0pfSl9KGpRdWVyeSksK2Z1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKGIpe3JldHVybiB0aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgZD1hKHRoaXMpLGU9ZC5kYXRhKCJicy50YWIiKTtlfHxkLmRhdGEoImJzLnRhYiIsZT1uZXcgYyh0aGlzKSksInN0cmluZyI9PXR5cGVvZiBiJiZlW2JdKCl9KX12YXIgYz1mdW5jdGlvbihiKXt0aGlzLmVsZW1lbnQ9YShiKX07Yy5WRVJTSU9OPSIzLjMuNSIsYy5UUkFOU0lUSU9OX0RVUkFUSU9OPTE1MCxjLnByb3RvdHlwZS5zaG93PWZ1bmN0aW9uKCl7dmFyIGI9dGhpcy5lbGVtZW50LGM9Yi5jbG9zZXN0KCJ1bDpub3QoLmRyb3Bkb3duLW1lbnUpIiksZD1iLmRhdGEoInRhcmdldCIpO2lmKGR8fChkPWIuYXR0cigiaHJlZiIpLGQ9ZCYmZC5yZXBsYWNlKC8uKig/PSNbXlxzXSokKS8sIiIpKSwhYi5wYXJlbnQoImxpIikuaGFzQ2xhc3MoImFjdGl2ZSIpKXt2YXIgZT1jLmZpbmQoIi5hY3RpdmU6bGFzdCBhIiksZj1hLkV2ZW50KCJoaWRlLmJzLnRhYiIse3JlbGF0ZWRUYXJnZXQ6YlswXX0pLGc9YS5FdmVudCgic2hvdy5icy50YWIiLHtyZWxhdGVkVGFyZ2V0OmVbMF19KTtpZihlLnRyaWdnZXIoZiksYi50cmlnZ2VyKGcpLCFnLmlzRGVmYXVsdFByZXZlbnRlZCgpJiYhZi5pc0RlZmF1bHRQcmV2ZW50ZWQoKSl7dmFyIGg9YShkKTt0aGlzLmFjdGl2YXRlKGIuY2xvc2VzdCgibGkiKSxjKSx0aGlzLmFjdGl2YXRlKGgsaC5wYXJlbnQoKSxmdW5jdGlvbigpe2UudHJpZ2dlcih7dHlwZToiaGlkZGVuLmJzLnRhYiIscmVsYXRlZFRhcmdldDpiWzBdfSksYi50cmlnZ2VyKHt0eXBlOiJzaG93bi5icy50YWIiLHJlbGF0ZWRUYXJnZXQ6ZVswXX0pfSl9fX0sYy5wcm90b3R5cGUuYWN0aXZhdGU9ZnVuY3Rpb24oYixkLGUpe2Z1bmN0aW9uIGYoKXtnLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5maW5kKCI+IC5kcm9wZG93bi1tZW51ID4gLmFjdGl2ZSIpLnJlbW92ZUNsYXNzKCJhY3RpdmUiKS5lbmQoKS5maW5kKCdbZGF0YS10b2dnbGU9InRhYiJdJykuYXR0cigiYXJpYS1leHBhbmRlZCIsITEpLGIuYWRkQ2xhc3MoImFjdGl2ZSIpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksaD8oYlswXS5vZmZzZXRXaWR0aCxiLmFkZENsYXNzKCJpbiIpKTpiLnJlbW92ZUNsYXNzKCJmYWRlIiksYi5wYXJlbnQoIi5kcm9wZG93bi1tZW51IikubGVuZ3RoJiZiLmNsb3Nlc3QoImxpLmRyb3Bkb3duIikuYWRkQ2xhc3MoImFjdGl2ZSIpLmVuZCgpLmZpbmQoJ1tkYXRhLXRvZ2dsZT0idGFiIl0nKS5hdHRyKCJhcmlhLWV4cGFuZGVkIiwhMCksZSYmZSgpfXZhciBnPWQuZmluZCgiPiAuYWN0aXZlIiksaD1lJiZhLnN1cHBvcnQudHJhbnNpdGlvbiYmKGcubGVuZ3RoJiZnLmhhc0NsYXNzKCJmYWRlIil8fCEhZC5maW5kKCI+IC5mYWRlIikubGVuZ3RoKTtnLmxlbmd0aCYmaD9nLm9uZSgiYnNUcmFuc2l0aW9uRW5kIixmKS5lbXVsYXRlVHJhbnNpdGlvbkVuZChjLlRSQU5TSVRJT05fRFVSQVRJT04pOmYoKSxnLnJlbW92ZUNsYXNzKCJpbiIpfTt2YXIgZD1hLmZuLnRhYjthLmZuLnRhYj1iLGEuZm4udGFiLkNvbnN0cnVjdG9yPWMsYS5mbi50YWIubm9Db25mbGljdD1mdW5jdGlvbigpe3JldHVybiBhLmZuLnRhYj1kLHRoaXN9O3ZhciBlPWZ1bmN0aW9uKGMpe2MucHJldmVudERlZmF1bHQoKSxiLmNhbGwoYSh0aGlzKSwic2hvdyIpfTthKGRvY3VtZW50KS5vbigiY2xpY2suYnMudGFiLmRhdGEtYXBpIiwnW2RhdGEtdG9nZ2xlPSJ0YWIiXScsZSkub24oImNsaWNrLmJzLnRhYi5kYXRhLWFwaSIsJ1tkYXRhLXRvZ2dsZT0icGlsbCJdJyxlKX0oalF1ZXJ5KSwrZnVuY3Rpb24oYSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGIoYil7cmV0dXJuIHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciBkPWEodGhpcyksZT1kLmRhdGEoImJzLmFmZml4IiksZj0ib2JqZWN0Ij09dHlwZW9mIGImJmI7ZXx8ZC5kYXRhKCJicy5hZmZpeCIsZT1uZXcgYyh0aGlzLGYpKSwic3RyaW5nIj09dHlwZW9mIGImJmVbYl0oKX0pfXZhciBjPWZ1bmN0aW9uKGIsZCl7dGhpcy5vcHRpb25zPWEuZXh0ZW5kKHt9LGMuREVGQVVMVFMsZCksdGhpcy4kdGFyZ2V0PWEodGhpcy5vcHRpb25zLnRhcmdldCkub24oInNjcm9sbC5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb24sdGhpcykpLm9uKCJjbGljay5icy5hZmZpeC5kYXRhLWFwaSIsYS5wcm94eSh0aGlzLmNoZWNrUG9zaXRpb25XaXRoRXZlbnRMb29wLHRoaXMpKSx0aGlzLiRlbGVtZW50PWEoYiksdGhpcy5hZmZpeGVkPW51bGwsdGhpcy51bnBpbj1udWxsLHRoaXMucGlubmVkT2Zmc2V0PW51bGwsdGhpcy5jaGVja1Bvc2l0aW9uKCl9O2MuVkVSU0lPTj0iMy4zLjUiLGMuUkVTRVQ9ImFmZml4IGFmZml4LXRvcCBhZmZpeC1ib3R0b20iLGMuREVGQVVMVFM9e29mZnNldDowLHRhcmdldDp3aW5kb3d9LGMucHJvdG90eXBlLmdldFN0YXRlPWZ1bmN0aW9uKGEsYixjLGQpe3ZhciBlPXRoaXMuJHRhcmdldC5zY3JvbGxUb3AoKSxmPXRoaXMuJGVsZW1lbnQub2Zmc2V0KCksZz10aGlzLiR0YXJnZXQuaGVpZ2h0KCk7aWYobnVsbCE9YyYmInRvcCI9PXRoaXMuYWZmaXhlZClyZXR1cm4gYz5lPyJ0b3AiOiExO2lmKCJib3R0b20iPT10aGlzLmFmZml4ZWQpcmV0dXJuIG51bGwhPWM/ZSt0aGlzLnVucGluPD1mLnRvcD8hMToiYm90dG9tIjphLWQ+PWUrZz8hMToiYm90dG9tIjt2YXIgaD1udWxsPT10aGlzLmFmZml4ZWQsaT1oP2U6Zi50b3Asaj1oP2c6YjtyZXR1cm4gbnVsbCE9YyYmYz49ZT8idG9wIjpudWxsIT1kJiZpK2o+PWEtZD8iYm90dG9tIjohMX0sYy5wcm90b3R5cGUuZ2V0UGlubmVkT2Zmc2V0PWZ1bmN0aW9uKCl7aWYodGhpcy5waW5uZWRPZmZzZXQpcmV0dXJuIHRoaXMucGlubmVkT2Zmc2V0O3RoaXMuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoYy5SRVNFVCkuYWRkQ2xhc3MoImFmZml4Iik7dmFyIGE9dGhpcy4kdGFyZ2V0LnNjcm9sbFRvcCgpLGI9dGhpcy4kZWxlbWVudC5vZmZzZXQoKTtyZXR1cm4gdGhpcy5waW5uZWRPZmZzZXQ9Yi50b3AtYX0sYy5wcm90b3R5cGUuY2hlY2tQb3NpdGlvbldpdGhFdmVudExvb3A9ZnVuY3Rpb24oKXtzZXRUaW1lb3V0KGEucHJveHkodGhpcy5jaGVja1Bvc2l0aW9uLHRoaXMpLDEpfSxjLnByb3RvdHlwZS5jaGVja1Bvc2l0aW9uPWZ1bmN0aW9uKCl7aWYodGhpcy4kZWxlbWVudC5pcygiOnZpc2libGUiKSl7dmFyIGI9dGhpcy4kZWxlbWVudC5oZWlnaHQoKSxkPXRoaXMub3B0aW9ucy5vZmZzZXQsZT1kLnRvcCxmPWQuYm90dG9tLGc9TWF0aC5tYXgoYShkb2N1bWVudCkuaGVpZ2h0KCksYShkb2N1bWVudC5ib2R5KS5oZWlnaHQoKSk7Im9iamVjdCIhPXR5cGVvZiBkJiYoZj1lPWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZT1kLnRvcCh0aGlzLiRlbGVtZW50KSksImZ1bmN0aW9uIj09dHlwZW9mIGYmJihmPWQuYm90dG9tKHRoaXMuJGVsZW1lbnQpKTt2YXIgaD10aGlzLmdldFN0YXRlKGcsYixlLGYpO2lmKHRoaXMuYWZmaXhlZCE9aCl7bnVsbCE9dGhpcy51bnBpbiYmdGhpcy4kZWxlbWVudC5jc3MoInRvcCIsIiIpO3ZhciBpPSJhZmZpeCIrKGg/Ii0iK2g6IiIpLGo9YS5FdmVudChpKyIuYnMuYWZmaXgiKTtpZih0aGlzLiRlbGVtZW50LnRyaWdnZXIoaiksai5pc0RlZmF1bHRQcmV2ZW50ZWQoKSlyZXR1cm47dGhpcy5hZmZpeGVkPWgsdGhpcy51bnBpbj0iYm90dG9tIj09aD90aGlzLmdldFBpbm5lZE9mZnNldCgpOm51bGwsdGhpcy4kZWxlbWVudC5yZW1vdmVDbGFzcyhjLlJFU0VUKS5hZGRDbGFzcyhpKS50cmlnZ2VyKGkucmVwbGFjZSgiYWZmaXgiLCJhZmZpeGVkIikrIi5icy5hZmZpeCIpfSJib3R0b20iPT1oJiZ0aGlzLiRlbGVtZW50Lm9mZnNldCh7dG9wOmctYi1mfSl9fTt2YXIgZD1hLmZuLmFmZml4O2EuZm4uYWZmaXg9YixhLmZuLmFmZml4LkNvbnN0cnVjdG9yPWMsYS5mbi5hZmZpeC5ub0NvbmZsaWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGEuZm4uYWZmaXg9ZCx0aGlzfSxhKHdpbmRvdykub24oImxvYWQiLGZ1bmN0aW9uKCl7YSgnW2RhdGEtc3B5PSJhZmZpeCJdJykuZWFjaChmdW5jdGlvbigpe3ZhciBjPWEodGhpcyksZD1jLmRhdGEoKTtkLm9mZnNldD1kLm9mZnNldHx8e30sbnVsbCE9ZC5vZmZzZXRCb3R0b20mJihkLm9mZnNldC5ib3R0b209ZC5vZmZzZXRCb3R0b20pLG51bGwhPWQub2Zmc2V0VG9wJiYoZC5vZmZzZXQudG9wPWQub2Zmc2V0VG9wKSxiLmNhbGwoYyxkKX0pfSl9KGpRdWVyeSk7"></script>
<script src="data:application/javascript;base64,LyoqCiogQHByZXNlcnZlIEhUTUw1IFNoaXYgMy43LjIgfCBAYWZhcmthcyBAamRhbHRvbiBAam9uX25lYWwgQHJlbSB8IE1JVC9HUEwyIExpY2Vuc2VkCiovCi8vIE9ubHkgcnVuIHRoaXMgY29kZSBpbiBJRSA4CmlmICghIXdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50Lm1hdGNoKCJNU0lFIDgiKSkgewohZnVuY3Rpb24oYSxiKXtmdW5jdGlvbiBjKGEsYil7dmFyIGM9YS5jcmVhdGVFbGVtZW50KCJwIiksZD1hLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGEuZG9jdW1lbnRFbGVtZW50O3JldHVybiBjLmlubmVySFRNTD0ieDxzdHlsZT4iK2IrIjwvc3R5bGU+IixkLmluc2VydEJlZm9yZShjLmxhc3RDaGlsZCxkLmZpcnN0Q2hpbGQpfWZ1bmN0aW9uIGQoKXt2YXIgYT10LmVsZW1lbnRzO3JldHVybiJzdHJpbmciPT10eXBlb2YgYT9hLnNwbGl0KCIgIik6YX1mdW5jdGlvbiBlKGEsYil7dmFyIGM9dC5lbGVtZW50czsic3RyaW5nIiE9dHlwZW9mIGMmJihjPWMuam9pbigiICIpKSwic3RyaW5nIiE9dHlwZW9mIGEmJihhPWEuam9pbigiICIpKSx0LmVsZW1lbnRzPWMrIiAiK2EsaihiKX1mdW5jdGlvbiBmKGEpe3ZhciBiPXNbYVtxXV07cmV0dXJuIGJ8fChiPXt9LHIrKyxhW3FdPXIsc1tyXT1iKSxifWZ1bmN0aW9uIGcoYSxjLGQpe2lmKGN8fChjPWIpLGwpcmV0dXJuIGMuY3JlYXRlRWxlbWVudChhKTtkfHwoZD1mKGMpKTt2YXIgZTtyZXR1cm4gZT1kLmNhY2hlW2FdP2QuY2FjaGVbYV0uY2xvbmVOb2RlKCk6cC50ZXN0KGEpPyhkLmNhY2hlW2FdPWQuY3JlYXRlRWxlbShhKSkuY2xvbmVOb2RlKCk6ZC5jcmVhdGVFbGVtKGEpLCFlLmNhbkhhdmVDaGlsZHJlbnx8by50ZXN0KGEpfHxlLnRhZ1Vybj9lOmQuZnJhZy5hcHBlbmRDaGlsZChlKX1mdW5jdGlvbiBoKGEsYyl7aWYoYXx8KGE9YiksbClyZXR1cm4gYS5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCk7Yz1jfHxmKGEpO2Zvcih2YXIgZT1jLmZyYWcuY2xvbmVOb2RlKCksZz0wLGg9ZCgpLGk9aC5sZW5ndGg7aT5nO2crKyllLmNyZWF0ZUVsZW1lbnQoaFtnXSk7cmV0dXJuIGV9ZnVuY3Rpb24gaShhLGIpe2IuY2FjaGV8fChiLmNhY2hlPXt9LGIuY3JlYXRlRWxlbT1hLmNyZWF0ZUVsZW1lbnQsYi5jcmVhdGVGcmFnPWEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCxiLmZyYWc9Yi5jcmVhdGVGcmFnKCkpLGEuY3JlYXRlRWxlbWVudD1mdW5jdGlvbihjKXtyZXR1cm4gdC5zaGl2TWV0aG9kcz9nKGMsYSxiKTpiLmNyZWF0ZUVsZW0oYyl9LGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudD1GdW5jdGlvbigiaCxmIiwicmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49Zi5jbG9uZU5vZGUoKSxjPW4uY3JlYXRlRWxlbWVudDtoLnNoaXZNZXRob2RzJiYoIitkKCkuam9pbigpLnJlcGxhY2UoL1tcd1wtOl0rL2csZnVuY3Rpb24oYSl7cmV0dXJuIGIuY3JlYXRlRWxlbShhKSxiLmZyYWcuY3JlYXRlRWxlbWVudChhKSwnYygiJythKyciKSd9KSsiKTtyZXR1cm4gbn0iKSh0LGIuZnJhZyl9ZnVuY3Rpb24gaihhKXthfHwoYT1iKTt2YXIgZD1mKGEpO3JldHVybiF0LnNoaXZDU1N8fGt8fGQuaGFzQ1NTfHwoZC5oYXNDU1M9ISFjKGEsImFydGljbGUsYXNpZGUsZGlhbG9nLGZpZ2NhcHRpb24sZmlndXJlLGZvb3RlcixoZWFkZXIsaGdyb3VwLG1haW4sbmF2LHNlY3Rpb257ZGlzcGxheTpibG9ja31tYXJre2JhY2tncm91bmQ6I0ZGMDtjb2xvcjojMDAwfXRlbXBsYXRle2Rpc3BsYXk6bm9uZX0iKSksbHx8aShhLGQpLGF9dmFyIGssbCxtPSIzLjcuMiIsbj1hLmh0bWw1fHx7fSxvPS9ePHxeKD86YnV0dG9ufG1hcHxzZWxlY3R8dGV4dGFyZWF8b2JqZWN0fGlmcmFtZXxvcHRpb258b3B0Z3JvdXApJC9pLHA9L14oPzphfGJ8Y29kZXxkaXZ8ZmllbGRzZXR8aDF8aDJ8aDN8aDR8aDV8aDZ8aXxsYWJlbHxsaXxvbHxwfHF8c3BhbnxzdHJvbmd8c3R5bGV8dGFibGV8dGJvZHl8dGR8dGh8dHJ8dWwpJC9pLHE9Il9odG1sNXNoaXYiLHI9MCxzPXt9OyFmdW5jdGlvbigpe3RyeXt2YXIgYT1iLmNyZWF0ZUVsZW1lbnQoImEiKTthLmlubmVySFRNTD0iPHh5ej48L3h5ej4iLGs9ImhpZGRlbiJpbiBhLGw9MT09YS5jaGlsZE5vZGVzLmxlbmd0aHx8ZnVuY3Rpb24oKXtiLmNyZWF0ZUVsZW1lbnQoImEiKTt2YXIgYT1iLmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTtyZXR1cm4idW5kZWZpbmVkIj09dHlwZW9mIGEuY2xvbmVOb2RlfHwidW5kZWZpbmVkIj09dHlwZW9mIGEuY3JlYXRlRG9jdW1lbnRGcmFnbWVudHx8InVuZGVmaW5lZCI9PXR5cGVvZiBhLmNyZWF0ZUVsZW1lbnR9KCl9Y2F0Y2goYyl7az0hMCxsPSEwfX0oKTt2YXIgdD17ZWxlbWVudHM6bi5lbGVtZW50c3x8ImFiYnIgYXJ0aWNsZSBhc2lkZSBhdWRpbyBiZGkgY2FudmFzIGRhdGEgZGF0YWxpc3QgZGV0YWlscyBkaWFsb2cgZmlnY2FwdGlvbiBmaWd1cmUgZm9vdGVyIGhlYWRlciBoZ3JvdXAgbWFpbiBtYXJrIG1ldGVyIG5hdiBvdXRwdXQgcGljdHVyZSBwcm9ncmVzcyBzZWN0aW9uIHN1bW1hcnkgdGVtcGxhdGUgdGltZSB2aWRlbyIsdmVyc2lvbjptLHNoaXZDU1M6bi5zaGl2Q1NTIT09ITEsc3VwcG9ydHNVbmtub3duRWxlbWVudHM6bCxzaGl2TWV0aG9kczpuLnNoaXZNZXRob2RzIT09ITEsdHlwZToiZGVmYXVsdCIsc2hpdkRvY3VtZW50OmosY3JlYXRlRWxlbWVudDpnLGNyZWF0ZURvY3VtZW50RnJhZ21lbnQ6aCxhZGRFbGVtZW50czplfTthLmh0bWw1PXQsaihiKX0odGhpcyxkb2N1bWVudCk7Cn07Cg=="></script>
<script src="data:application/javascript;base64,LyohIFJlc3BvbmQuanMgdjEuNC4yOiBtaW4vbWF4LXdpZHRoIG1lZGlhIHF1ZXJ5IHBvbHlmaWxsICogQ29weXJpZ2h0IDIwMTMgU2NvdHQgSmVobAogKiBMaWNlbnNlZCB1bmRlciBodHRwczovL2dpdGh1Yi5jb20vc2NvdHRqZWhsL1Jlc3BvbmQvYmxvYi9tYXN0ZXIvTElDRU5TRS1NSVQKICogICovCgovLyBPbmx5IHJ1biB0aGlzIGNvZGUgaW4gSUUgOAppZiAoISF3aW5kb3cubmF2aWdhdG9yLnVzZXJBZ2VudC5tYXRjaCgiTVNJRSA4IikpIHsKIWZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjthLm1hdGNoTWVkaWE9YS5tYXRjaE1lZGlhfHxmdW5jdGlvbihhKXt2YXIgYixjPWEuZG9jdW1lbnRFbGVtZW50LGQ9Yy5maXJzdEVsZW1lbnRDaGlsZHx8Yy5maXJzdENoaWxkLGU9YS5jcmVhdGVFbGVtZW50KCJib2R5IiksZj1hLmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiBmLmlkPSJtcS10ZXN0LTEiLGYuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7dG9wOi0xMDBlbSIsZS5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIixlLmFwcGVuZENoaWxkKGYpLGZ1bmN0aW9uKGEpe3JldHVybiBmLmlubmVySFRNTD0nJnNoeTs8c3R5bGUgbWVkaWE9IicrYSsnIj4gI21xLXRlc3QtMSB7IHdpZHRoOiA0MnB4OyB9PC9zdHlsZT4nLGMuaW5zZXJ0QmVmb3JlKGUsZCksYj00Mj09PWYub2Zmc2V0V2lkdGgsYy5yZW1vdmVDaGlsZChlKSx7bWF0Y2hlczpiLG1lZGlhOmF9fX0oYS5kb2N1bWVudCl9KHRoaXMpLGZ1bmN0aW9uKGEpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBiKCl7dSghMCl9dmFyIGM9e307YS5yZXNwb25kPWMsYy51cGRhdGU9ZnVuY3Rpb24oKXt9O3ZhciBkPVtdLGU9ZnVuY3Rpb24oKXt2YXIgYj0hMTt0cnl7Yj1uZXcgYS5YTUxIdHRwUmVxdWVzdH1jYXRjaChjKXtiPW5ldyBhLkFjdGl2ZVhPYmplY3QoIk1pY3Jvc29mdC5YTUxIVFRQIil9cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGJ9fSgpLGY9ZnVuY3Rpb24oYSxiKXt2YXIgYz1lKCk7YyYmKGMub3BlbigiR0VUIixhLCEwKSxjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpezQhPT1jLnJlYWR5U3RhdGV8fDIwMCE9PWMuc3RhdHVzJiYzMDQhPT1jLnN0YXR1c3x8YihjLnJlc3BvbnNlVGV4dCl9LDQhPT1jLnJlYWR5U3RhdGUmJmMuc2VuZChudWxsKSl9O2lmKGMuYWpheD1mLGMucXVldWU9ZCxjLnJlZ2V4PXttZWRpYTovQG1lZGlhW15ce10rXHsoW15ce1x9XSpce1teXH1ce10qXH0pKy9naSxrZXlmcmFtZXM6L0AoPzpcLSg/Om98bW96fHdlYmtpdClcLSk/a2V5ZnJhbWVzW15ce10rXHsoPzpbXlx7XH1dKlx7W15cfVx7XSpcfSkrW15cfV0qXH0vZ2ksdXJsczovKHVybFwoKVsnIl0/KFteXC9cKSciXVteOlwpJyJdKylbJyJdPyhcKSkvZyxmaW5kU3R5bGVzOi9AbWVkaWEgKihbXlx7XSspXHsoW1xTXHNdKz8pJC8sb25seTovKG9ubHlccyspPyhbYS16QS1aXSspXHM/LyxtaW53Oi9cKFtcc10qbWluXC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpLyxtYXh3Oi9cKFtcc10qbWF4XC13aWR0aFxzKjpbXHNdKihbXHNdKlswLTlcLl0rKShweHxlbSlbXHNdKlwpL30sYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQ9YS5tYXRjaE1lZGlhJiZudWxsIT09YS5tYXRjaE1lZGlhKCJvbmx5IGFsbCIpJiZhLm1hdGNoTWVkaWEoIm9ubHkgYWxsIikubWF0Y2hlcywhYy5tZWRpYVF1ZXJpZXNTdXBwb3J0ZWQpe3ZhciBnLGgsaSxqPWEuZG9jdW1lbnQsaz1qLmRvY3VtZW50RWxlbWVudCxsPVtdLG09W10sbj1bXSxvPXt9LHA9MzAscT1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF18fGsscj1qLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJiYXNlIilbMF0scz1xLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIiksdD1mdW5jdGlvbigpe3ZhciBhLGI9ai5jcmVhdGVFbGVtZW50KCJkaXYiKSxjPWouYm9keSxkPWsuc3R5bGUuZm9udFNpemUsZT1jJiZjLnN0eWxlLmZvbnRTaXplLGY9ITE7cmV0dXJuIGIuc3R5bGUuY3NzVGV4dD0icG9zaXRpb246YWJzb2x1dGU7Zm9udC1zaXplOjFlbTt3aWR0aDoxZW0iLGN8fChjPWY9ai5jcmVhdGVFbGVtZW50KCJib2R5IiksYy5zdHlsZS5iYWNrZ3JvdW5kPSJub25lIiksay5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5zdHlsZS5mb250U2l6ZT0iMTAwJSIsYy5hcHBlbmRDaGlsZChiKSxmJiZrLmluc2VydEJlZm9yZShjLGsuZmlyc3RDaGlsZCksYT1iLm9mZnNldFdpZHRoLGY/ay5yZW1vdmVDaGlsZChjKTpjLnJlbW92ZUNoaWxkKGIpLGsuc3R5bGUuZm9udFNpemU9ZCxlJiYoYy5zdHlsZS5mb250U2l6ZT1lKSxhPWk9cGFyc2VGbG9hdChhKX0sdT1mdW5jdGlvbihiKXt2YXIgYz0iY2xpZW50V2lkdGgiLGQ9a1tjXSxlPSJDU1MxQ29tcGF0Ij09PWouY29tcGF0TW9kZSYmZHx8ai5ib2R5W2NdfHxkLGY9e30sbz1zW3MubGVuZ3RoLTFdLHI9KG5ldyBEYXRlKS5nZXRUaW1lKCk7aWYoYiYmZyYmcD5yLWcpcmV0dXJuIGEuY2xlYXJUaW1lb3V0KGgpLGg9YS5zZXRUaW1lb3V0KHUscCksdm9pZCAwO2c9cjtmb3IodmFyIHYgaW4gbClpZihsLmhhc093blByb3BlcnR5KHYpKXt2YXIgdz1sW3ZdLHg9dy5taW53LHk9dy5tYXh3LHo9bnVsbD09PXgsQT1udWxsPT09eSxCPSJlbSI7eCYmKHg9cGFyc2VGbG9hdCh4KSooeC5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSkseSYmKHk9cGFyc2VGbG9hdCh5KSooeS5pbmRleE9mKEIpPi0xP2l8fHQoKToxKSksdy5oYXNxdWVyeSYmKHomJkF8fCEoenx8ZT49eCl8fCEoQXx8eT49ZSkpfHwoZlt3Lm1lZGlhXXx8KGZbdy5tZWRpYV09W10pLGZbdy5tZWRpYV0ucHVzaChtW3cucnVsZXNdKSl9Zm9yKHZhciBDIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShDKSYmbltDXSYmbltDXS5wYXJlbnROb2RlPT09cSYmcS5yZW1vdmVDaGlsZChuW0NdKTtuLmxlbmd0aD0wO2Zvcih2YXIgRCBpbiBmKWlmKGYuaGFzT3duUHJvcGVydHkoRCkpe3ZhciBFPWouY3JlYXRlRWxlbWVudCgic3R5bGUiKSxGPWZbRF0uam9pbigiXG4iKTtFLnR5cGU9InRleHQvY3NzIixFLm1lZGlhPUQscS5pbnNlcnRCZWZvcmUoRSxvLm5leHRTaWJsaW5nKSxFLnN0eWxlU2hlZXQ/RS5zdHlsZVNoZWV0LmNzc1RleHQ9RjpFLmFwcGVuZENoaWxkKGouY3JlYXRlVGV4dE5vZGUoRikpLG4ucHVzaChFKX19LHY9ZnVuY3Rpb24oYSxiLGQpe3ZhciBlPWEucmVwbGFjZShjLnJlZ2V4LmtleWZyYW1lcywiIikubWF0Y2goYy5yZWdleC5tZWRpYSksZj1lJiZlLmxlbmd0aHx8MDtiPWIuc3Vic3RyaW5nKDAsYi5sYXN0SW5kZXhPZigiLyIpKTt2YXIgZz1mdW5jdGlvbihhKXtyZXR1cm4gYS5yZXBsYWNlKGMucmVnZXgudXJscywiJDEiK2IrIiQyJDMiKX0saD0hZiYmZDtiLmxlbmd0aCYmKGIrPSIvIiksaCYmKGY9MSk7Zm9yKHZhciBpPTA7Zj5pO2krKyl7dmFyIGosayxuLG87aD8oaj1kLG0ucHVzaChnKGEpKSk6KGo9ZVtpXS5tYXRjaChjLnJlZ2V4LmZpbmRTdHlsZXMpJiZSZWdFeHAuJDEsbS5wdXNoKFJlZ0V4cC4kMiYmZyhSZWdFeHAuJDIpKSksbj1qLnNwbGl0KCIsIiksbz1uLmxlbmd0aDtmb3IodmFyIHA9MDtvPnA7cCsrKWs9bltwXSxsLnB1c2goe21lZGlhOmsuc3BsaXQoIigiKVswXS5tYXRjaChjLnJlZ2V4Lm9ubHkpJiZSZWdFeHAuJDJ8fCJhbGwiLHJ1bGVzOm0ubGVuZ3RoLTEsaGFzcXVlcnk6ay5pbmRleE9mKCIoIik+LTEsbWludzprLm1hdGNoKGMucmVnZXgubWludykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIiksbWF4dzprLm1hdGNoKGMucmVnZXgubWF4dykmJnBhcnNlRmxvYXQoUmVnRXhwLiQxKSsoUmVnRXhwLiQyfHwiIil9KX11KCl9LHc9ZnVuY3Rpb24oKXtpZihkLmxlbmd0aCl7dmFyIGI9ZC5zaGlmdCgpO2YoYi5ocmVmLGZ1bmN0aW9uKGMpe3YoYyxiLmhyZWYsYi5tZWRpYSksb1tiLmhyZWZdPSEwLGEuc2V0VGltZW91dChmdW5jdGlvbigpe3coKX0sMCl9KX19LHg9ZnVuY3Rpb24oKXtmb3IodmFyIGI9MDtiPHMubGVuZ3RoO2IrKyl7dmFyIGM9c1tiXSxlPWMuaHJlZixmPWMubWVkaWEsZz1jLnJlbCYmInN0eWxlc2hlZXQiPT09Yy5yZWwudG9Mb3dlckNhc2UoKTtlJiZnJiYhb1tlXSYmKGMuc3R5bGVTaGVldCYmYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQ/KHYoYy5zdHlsZVNoZWV0LnJhd0Nzc1RleHQsZSxmKSxvW2VdPSEwKTooIS9eKFthLXpBLVo6XSpcL1wvKS8udGVzdChlKSYmIXJ8fGUucmVwbGFjZShSZWdFeHAuJDEsIiIpLnNwbGl0KCIvIilbMF09PT1hLmxvY2F0aW9uLmhvc3QpJiYoIi8vIj09PWUuc3Vic3RyaW5nKDAsMikmJihlPWEubG9jYXRpb24ucHJvdG9jb2wrZSksZC5wdXNoKHtocmVmOmUsbWVkaWE6Zn0pKSl9dygpfTt4KCksYy51cGRhdGU9eCxjLmdldEVtVmFsdWU9dCxhLmFkZEV2ZW50TGlzdGVuZXI/YS5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLGIsITEpOmEuYXR0YWNoRXZlbnQmJmEuYXR0YWNoRXZlbnQoIm9ucmVzaXplIixiKX19KHRoaXMpOwp9Owo="></script>
<style>h1 {font-size: 34px;}
       h1.title {font-size: 38px;}
       h2 {font-size: 30px;}
       h3 {font-size: 24px;}
       h4 {font-size: 18px;}
       h5 {font-size: 16px;}
       h6 {font-size: 12px;}
       code {color: inherit; background-color: rgba(0, 0, 0, 0.04);}
       pre:not([class]) { background-color: white }</style>
<script src="data:application/javascript;base64,LyohIGpRdWVyeSBVSSAtIHYxLjExLjQgLSAyMDE2LTAxLTA1CiogaHR0cDovL2pxdWVyeXVpLmNvbQoqIEluY2x1ZGVzOiBjb3JlLmpzLCB3aWRnZXQuanMsIG1vdXNlLmpzLCBwb3NpdGlvbi5qcywgZHJhZ2dhYmxlLmpzLCBkcm9wcGFibGUuanMsIHJlc2l6YWJsZS5qcywgc2VsZWN0YWJsZS5qcywgc29ydGFibGUuanMsIGFjY29yZGlvbi5qcywgYXV0b2NvbXBsZXRlLmpzLCBidXR0b24uanMsIGRpYWxvZy5qcywgbWVudS5qcywgcHJvZ3Jlc3NiYXIuanMsIHNlbGVjdG1lbnUuanMsIHNsaWRlci5qcywgc3Bpbm5lci5qcywgdGFicy5qcywgdG9vbHRpcC5qcywgZWZmZWN0LmpzLCBlZmZlY3QtYmxpbmQuanMsIGVmZmVjdC1ib3VuY2UuanMsIGVmZmVjdC1jbGlwLmpzLCBlZmZlY3QtZHJvcC5qcywgZWZmZWN0LWV4cGxvZGUuanMsIGVmZmVjdC1mYWRlLmpzLCBlZmZlY3QtZm9sZC5qcywgZWZmZWN0LWhpZ2hsaWdodC5qcywgZWZmZWN0LXB1ZmYuanMsIGVmZmVjdC1wdWxzYXRlLmpzLCBlZmZlY3Qtc2NhbGUuanMsIGVmZmVjdC1zaGFrZS5qcywgZWZmZWN0LXNpemUuanMsIGVmZmVjdC1zbGlkZS5qcywgZWZmZWN0LXRyYW5zZmVyLmpzCiogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnM7IExpY2Vuc2VkIE1JVCAqLwoKKGZ1bmN0aW9uKGUpeyJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQ/ZGVmaW5lKFsianF1ZXJ5Il0sZSk6ZShqUXVlcnkpfSkoZnVuY3Rpb24oZSl7ZnVuY3Rpb24gdCh0LHMpe3ZhciBuLGEsbyxyPXQubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtyZXR1cm4iYXJlYSI9PT1yPyhuPXQucGFyZW50Tm9kZSxhPW4ubmFtZSx0LmhyZWYmJmEmJiJtYXAiPT09bi5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpPyhvPWUoImltZ1t1c2VtYXA9JyMiK2ErIiddIilbMF0sISFvJiZpKG8pKTohMSk6KC9eKGlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b258b2JqZWN0KSQvLnRlc3Qocik/IXQuZGlzYWJsZWQ6ImEiPT09cj90LmhyZWZ8fHM6cykmJmkodCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZS5leHByLmZpbHRlcnMudmlzaWJsZSh0KSYmIWUodCkucGFyZW50cygpLmFkZEJhY2soKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4iaGlkZGVuIj09PWUuY3NzKHRoaXMsInZpc2liaWxpdHkiKX0pLmxlbmd0aH1mdW5jdGlvbiBzKGUpe3JldHVybiBmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWxlbWVudC52YWwoKTtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9yZWZyZXNoKCksdCE9PXRoaXMuZWxlbWVudC52YWwoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIil9fWUudWk9ZS51aXx8e30sZS5leHRlbmQoZS51aSx7dmVyc2lvbjoiMS4xMS40IixrZXlDb2RlOntCQUNLU1BBQ0U6OCxDT01NQToxODgsREVMRVRFOjQ2LERPV046NDAsRU5EOjM1LEVOVEVSOjEzLEVTQ0FQRToyNyxIT01FOjM2LExFRlQ6MzcsUEFHRV9ET1dOOjM0LFBBR0VfVVA6MzMsUEVSSU9EOjE5MCxSSUdIVDozOSxTUEFDRTozMixUQUI6OSxVUDozOH19KSxlLmZuLmV4dGVuZCh7c2Nyb2xsUGFyZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuY3NzKCJwb3NpdGlvbiIpLHM9ImFic29sdXRlIj09PWksbj10Py8oYXV0b3xzY3JvbGx8aGlkZGVuKS86LyhhdXRvfHNjcm9sbCkvLGE9dGhpcy5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gcyYmInN0YXRpYyI9PT10LmNzcygicG9zaXRpb24iKT8hMTpuLnRlc3QodC5jc3MoIm92ZXJmbG93IikrdC5jc3MoIm92ZXJmbG93LXkiKSt0LmNzcygib3ZlcmZsb3cteCIpKX0pLmVxKDApO3JldHVybiJmaXhlZCIhPT1pJiZhLmxlbmd0aD9hOmUodGhpc1swXS5vd25lckRvY3VtZW50fHxkb2N1bWVudCl9LHVuaXF1ZUlkOmZ1bmN0aW9uKCl7dmFyIGU9MDtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dGhpcy5pZHx8KHRoaXMuaWQ9InVpLWlkLSIrICsrZSl9KX19KCkscmVtb3ZlVW5pcXVlSWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKGZ1bmN0aW9uKCl7L151aS1pZC1cZCskLy50ZXN0KHRoaXMuaWQpJiZlKHRoaXMpLnJlbW92ZUF0dHIoImlkIil9KX19KSxlLmV4dGVuZChlLmV4cHJbIjoiXSx7ZGF0YTplLmV4cHIuY3JlYXRlUHNldWRvP2UuZXhwci5jcmVhdGVQc2V1ZG8oZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiEhZS5kYXRhKGksdCl9fSk6ZnVuY3Rpb24odCxpLHMpe3JldHVybiEhZS5kYXRhKHQsc1szXSl9LGZvY3VzYWJsZTpmdW5jdGlvbihpKXtyZXR1cm4gdChpLCFpc05hTihlLmF0dHIoaSwidGFiaW5kZXgiKSkpfSx0YWJiYWJsZTpmdW5jdGlvbihpKXt2YXIgcz1lLmF0dHIoaSwidGFiaW5kZXgiKSxuPWlzTmFOKHMpO3JldHVybihufHxzPj0wKSYmdChpLCFuKX19KSxlKCI8YT4iKS5vdXRlcldpZHRoKDEpLmpxdWVyeXx8ZS5lYWNoKFsiV2lkdGgiLCJIZWlnaHQiXSxmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHModCxpLHMsYSl7cmV0dXJuIGUuZWFjaChuLGZ1bmN0aW9uKCl7aS09cGFyc2VGbG9hdChlLmNzcyh0LCJwYWRkaW5nIit0aGlzKSl8fDAscyYmKGktPXBhcnNlRmxvYXQoZS5jc3ModCwiYm9yZGVyIit0aGlzKyJXaWR0aCIpKXx8MCksYSYmKGktPXBhcnNlRmxvYXQoZS5jc3ModCwibWFyZ2luIit0aGlzKSl8fDApfSksaX12YXIgbj0iV2lkdGgiPT09aT9bIkxlZnQiLCJSaWdodCJdOlsiVG9wIiwiQm90dG9tIl0sYT1pLnRvTG93ZXJDYXNlKCksbz17aW5uZXJXaWR0aDplLmZuLmlubmVyV2lkdGgsaW5uZXJIZWlnaHQ6ZS5mbi5pbm5lckhlaWdodCxvdXRlcldpZHRoOmUuZm4ub3V0ZXJXaWR0aCxvdXRlckhlaWdodDplLmZuLm91dGVySGVpZ2h0fTtlLmZuWyJpbm5lciIraV09ZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/b1siaW5uZXIiK2ldLmNhbGwodGhpcyk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3MoYSxzKHRoaXMsdCkrInB4Iil9KX0sZS5mblsib3V0ZXIiK2ldPWZ1bmN0aW9uKHQsbil7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0P29bIm91dGVyIitpXS5jYWxsKHRoaXMsdCk6dGhpcy5lYWNoKGZ1bmN0aW9uKCl7ZSh0aGlzKS5jc3MoYSxzKHRoaXMsdCwhMCxuKSsicHgiKX0pfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlKCI8YT4iKS5kYXRhKCJhLWIiLCJhIikucmVtb3ZlRGF0YSgiYS1iIikuZGF0YSgiYS1iIikmJihlLmZuLnJlbW92ZURhdGE9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3QuY2FsbCh0aGlzLGUuY2FtZWxDYXNlKGkpKTp0LmNhbGwodGhpcyl9fShlLmZuLnJlbW92ZURhdGEpKSxlLnVpLmllPSEhL21zaWUgW1x3Ll0rLy5leGVjKG5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKSksZS5mbi5leHRlbmQoe2ZvY3VzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMpe3JldHVybiJudW1iZXIiPT10eXBlb2YgaT90aGlzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD10aGlzO3NldFRpbWVvdXQoZnVuY3Rpb24oKXtlKHQpLmZvY3VzKCkscyYmcy5jYWxsKHQpfSxpKX0pOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5mb2N1cyksZGlzYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3ZhciBlPSJvbnNlbGVjdHN0YXJ0ImluIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpPyJzZWxlY3RzdGFydCI6Im1vdXNlZG93biI7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYmluZChlKyIudWktZGlzYWJsZVNlbGVjdGlvbiIsZnVuY3Rpb24oZSl7ZS5wcmV2ZW50RGVmYXVsdCgpfSl9fSgpLGVuYWJsZVNlbGVjdGlvbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnVuYmluZCgiLnVpLWRpc2FibGVTZWxlY3Rpb24iKX0sekluZGV4OmZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQpcmV0dXJuIHRoaXMuY3NzKCJ6SW5kZXgiLHQpO2lmKHRoaXMubGVuZ3RoKWZvcih2YXIgaSxzLG49ZSh0aGlzWzBdKTtuLmxlbmd0aCYmblswXSE9PWRvY3VtZW50Oyl7aWYoaT1uLmNzcygicG9zaXRpb24iKSwoImFic29sdXRlIj09PWl8fCJyZWxhdGl2ZSI9PT1pfHwiZml4ZWQiPT09aSkmJihzPXBhcnNlSW50KG4uY3NzKCJ6SW5kZXgiKSwxMCksIWlzTmFOKHMpJiYwIT09cykpcmV0dXJuIHM7bj1uLnBhcmVudCgpfXJldHVybiAwfX0pLGUudWkucGx1Z2luPXthZGQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9ZS51aVt0XS5wcm90b3R5cGU7Zm9yKG4gaW4gcylhLnBsdWdpbnNbbl09YS5wbHVnaW5zW25dfHxbXSxhLnBsdWdpbnNbbl0ucHVzaChbaSxzW25dXSl9LGNhbGw6ZnVuY3Rpb24oZSx0LGkscyl7dmFyIG4sYT1lLnBsdWdpbnNbdF07aWYoYSYmKHN8fGUuZWxlbWVudFswXS5wYXJlbnROb2RlJiYxMSE9PWUuZWxlbWVudFswXS5wYXJlbnROb2RlLm5vZGVUeXBlKSlmb3Iobj0wO2EubGVuZ3RoPm47bisrKWUub3B0aW9uc1thW25dWzBdXSYmYVtuXVsxXS5hcHBseShlLmVsZW1lbnQsaSl9fTt2YXIgbj0wLGE9QXJyYXkucHJvdG90eXBlLnNsaWNlO2UuY2xlYW5EYXRhPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgcyxuLGE7Zm9yKGE9MDtudWxsIT0obj1pW2FdKTthKyspdHJ5e3M9ZS5fZGF0YShuLCJldmVudHMiKSxzJiZzLnJlbW92ZSYmZShuKS50cmlnZ2VySGFuZGxlcigicmVtb3ZlIil9Y2F0Y2gobyl7fXQoaSl9fShlLmNsZWFuRGF0YSksZS53aWRnZXQ9ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbyxyLGg9e30sbD10LnNwbGl0KCIuIilbMF07cmV0dXJuIHQ9dC5zcGxpdCgiLiIpWzFdLG49bCsiLSIrdCxzfHwocz1pLGk9ZS5XaWRnZXQpLGUuZXhwclsiOiJdW24udG9Mb3dlckNhc2UoKV09ZnVuY3Rpb24odCl7cmV0dXJuISFlLmRhdGEodCxuKX0sZVtsXT1lW2xdfHx7fSxhPWVbbF1bdF0sbz1lW2xdW3RdPWZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2NyZWF0ZVdpZGdldD8oYXJndW1lbnRzLmxlbmd0aCYmdGhpcy5fY3JlYXRlV2lkZ2V0KGUsdCksdm9pZCAwKTpuZXcgbyhlLHQpfSxlLmV4dGVuZChvLGEse3ZlcnNpb246cy52ZXJzaW9uLF9wcm90bzplLmV4dGVuZCh7fSxzKSxfY2hpbGRDb25zdHJ1Y3RvcnM6W119KSxyPW5ldyBpLHIub3B0aW9ucz1lLndpZGdldC5leHRlbmQoe30sci5vcHRpb25zKSxlLmVhY2gocyxmdW5jdGlvbih0LHMpe3JldHVybiBlLmlzRnVuY3Rpb24ocyk/KGhbdF09ZnVuY3Rpb24oKXt2YXIgZT1mdW5jdGlvbigpe3JldHVybiBpLnByb3RvdHlwZVt0XS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LG49ZnVuY3Rpb24oZSl7cmV0dXJuIGkucHJvdG90eXBlW3RdLmFwcGx5KHRoaXMsZSl9O3JldHVybiBmdW5jdGlvbigpe3ZhciB0LGk9dGhpcy5fc3VwZXIsYT10aGlzLl9zdXBlckFwcGx5O3JldHVybiB0aGlzLl9zdXBlcj1lLHRoaXMuX3N1cGVyQXBwbHk9bix0PXMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX3N1cGVyPWksdGhpcy5fc3VwZXJBcHBseT1hLHR9fSgpLHZvaWQgMCk6KGhbdF09cyx2b2lkIDApfSksby5wcm90b3R5cGU9ZS53aWRnZXQuZXh0ZW5kKHIse3dpZGdldEV2ZW50UHJlZml4OmE/ci53aWRnZXRFdmVudFByZWZpeHx8dDp0fSxoLHtjb25zdHJ1Y3RvcjpvLG5hbWVzcGFjZTpsLHdpZGdldE5hbWU6dCx3aWRnZXRGdWxsTmFtZTpufSksYT8oZS5lYWNoKGEuX2NoaWxkQ29uc3RydWN0b3JzLGZ1bmN0aW9uKHQsaSl7dmFyIHM9aS5wcm90b3R5cGU7ZS53aWRnZXQocy5uYW1lc3BhY2UrIi4iK3Mud2lkZ2V0TmFtZSxvLGkuX3Byb3RvKX0pLGRlbGV0ZSBhLl9jaGlsZENvbnN0cnVjdG9ycyk6aS5fY2hpbGRDb25zdHJ1Y3RvcnMucHVzaChvKSxlLndpZGdldC5icmlkZ2UodCxvKSxvfSxlLndpZGdldC5leHRlbmQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBpLHMsbj1hLmNhbGwoYXJndW1lbnRzLDEpLG89MCxyPW4ubGVuZ3RoO3I+bztvKyspZm9yKGkgaW4gbltvXSlzPW5bb11baV0sbltvXS5oYXNPd25Qcm9wZXJ0eShpKSYmdm9pZCAwIT09cyYmKHRbaV09ZS5pc1BsYWluT2JqZWN0KHMpP2UuaXNQbGFpbk9iamVjdCh0W2ldKT9lLndpZGdldC5leHRlbmQoe30sdFtpXSxzKTplLndpZGdldC5leHRlbmQoe30scyk6cyk7cmV0dXJuIHR9LGUud2lkZ2V0LmJyaWRnZT1mdW5jdGlvbih0LGkpe3ZhciBzPWkucHJvdG90eXBlLndpZGdldEZ1bGxOYW1lfHx0O2UuZm5bdF09ZnVuY3Rpb24obil7dmFyIG89InN0cmluZyI9PXR5cGVvZiBuLHI9YS5jYWxsKGFyZ3VtZW50cywxKSxoPXRoaXM7cmV0dXJuIG8/dGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIGksYT1lLmRhdGEodGhpcyxzKTtyZXR1cm4iaW5zdGFuY2UiPT09bj8oaD1hLCExKTphP2UuaXNGdW5jdGlvbihhW25dKSYmIl8iIT09bi5jaGFyQXQoMCk/KGk9YVtuXS5hcHBseShhLHIpLGkhPT1hJiZ2b2lkIDAhPT1pPyhoPWkmJmkuanF1ZXJ5P2gucHVzaFN0YWNrKGkuZ2V0KCkpOmksITEpOnZvaWQgMCk6ZS5lcnJvcigibm8gc3VjaCBtZXRob2QgJyIrbisiJyBmb3IgIit0KyIgd2lkZ2V0IGluc3RhbmNlIik6ZS5lcnJvcigiY2Fubm90IGNhbGwgbWV0aG9kcyBvbiAiK3QrIiBwcmlvciB0byBpbml0aWFsaXphdGlvbjsgIisiYXR0ZW1wdGVkIHRvIGNhbGwgbWV0aG9kICciK24rIiciKX0pOihyLmxlbmd0aCYmKG49ZS53aWRnZXQuZXh0ZW5kLmFwcGx5KG51bGwsW25dLmNvbmNhdChyKSkpLHRoaXMuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUuZGF0YSh0aGlzLHMpO3Q/KHQub3B0aW9uKG58fHt9KSx0Ll9pbml0JiZ0Ll9pbml0KCkpOmUuZGF0YSh0aGlzLHMsbmV3IGkobix0aGlzKSl9KSksaH19LGUuV2lkZ2V0PWZ1bmN0aW9uKCl7fSxlLldpZGdldC5fY2hpbGRDb25zdHJ1Y3RvcnM9W10sZS5XaWRnZXQucHJvdG90eXBlPXt3aWRnZXROYW1lOiJ3aWRnZXQiLHdpZGdldEV2ZW50UHJlZml4OiIiLGRlZmF1bHRFbGVtZW50OiI8ZGl2PiIsb3B0aW9uczp7ZGlzYWJsZWQ6ITEsY3JlYXRlOm51bGx9LF9jcmVhdGVXaWRnZXQ6ZnVuY3Rpb24odCxpKXtpPWUoaXx8dGhpcy5kZWZhdWx0RWxlbWVudHx8dGhpcylbMF0sdGhpcy5lbGVtZW50PWUoaSksdGhpcy51dWlkPW4rKyx0aGlzLmV2ZW50TmFtZXNwYWNlPSIuIit0aGlzLndpZGdldE5hbWUrdGhpcy51dWlkLHRoaXMuYmluZGluZ3M9ZSgpLHRoaXMuaG92ZXJhYmxlPWUoKSx0aGlzLmZvY3VzYWJsZT1lKCksaSE9PXRoaXMmJihlLmRhdGEoaSx0aGlzLndpZGdldEZ1bGxOYW1lLHRoaXMpLHRoaXMuX29uKCEwLHRoaXMuZWxlbWVudCx7cmVtb3ZlOmZ1bmN0aW9uKGUpe2UudGFyZ2V0PT09aSYmdGhpcy5kZXN0cm95KCl9fSksdGhpcy5kb2N1bWVudD1lKGkuc3R5bGU/aS5vd25lckRvY3VtZW50OmkuZG9jdW1lbnR8fGkpLHRoaXMud2luZG93PWUodGhpcy5kb2N1bWVudFswXS5kZWZhdWx0Vmlld3x8dGhpcy5kb2N1bWVudFswXS5wYXJlbnRXaW5kb3cpKSx0aGlzLm9wdGlvbnM9ZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyx0aGlzLl9nZXRDcmVhdGVPcHRpb25zKCksdCksdGhpcy5fY3JlYXRlKCksdGhpcy5fdHJpZ2dlcigiY3JlYXRlIixudWxsLHRoaXMuX2dldENyZWF0ZUV2ZW50RGF0YSgpKSx0aGlzLl9pbml0KCl9LF9nZXRDcmVhdGVPcHRpb25zOmUubm9vcCxfZ2V0Q3JlYXRlRXZlbnREYXRhOmUubm9vcCxfY3JlYXRlOmUubm9vcCxfaW5pdDplLm5vb3AsZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuX2Rlc3Ryb3koKSx0aGlzLmVsZW1lbnQudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLnJlbW92ZURhdGEodGhpcy53aWRnZXRGdWxsTmFtZSkucmVtb3ZlRGF0YShlLmNhbWVsQ2FzZSh0aGlzLndpZGdldEZ1bGxOYW1lKSksdGhpcy53aWRnZXQoKS51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSkucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpLnJlbW92ZUNsYXNzKHRoaXMud2lkZ2V0RnVsbE5hbWUrIi1kaXNhYmxlZCAiKyJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuYmluZGluZ3MudW5iaW5kKHRoaXMuZXZlbnROYW1lc3BhY2UpLHRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuZm9jdXNhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxfZGVzdHJveTplLm5vb3Asd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWxlbWVudH0sb3B0aW9uOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89dDtpZigwPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9ucyk7aWYoInN0cmluZyI9PXR5cGVvZiB0KWlmKG89e30scz10LnNwbGl0KCIuIiksdD1zLnNoaWZ0KCkscy5sZW5ndGgpe2ZvcihuPW9bdF09ZS53aWRnZXQuZXh0ZW5kKHt9LHRoaXMub3B0aW9uc1t0XSksYT0wO3MubGVuZ3RoLTE+YTthKyspbltzW2FdXT1uW3NbYV1dfHx7fSxuPW5bc1thXV07aWYodD1zLnBvcCgpLDE9PT1hcmd1bWVudHMubGVuZ3RoKXJldHVybiB2b2lkIDA9PT1uW3RdP251bGw6blt0XTtuW3RdPWl9ZWxzZXtpZigxPT09YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gdm9pZCAwPT09dGhpcy5vcHRpb25zW3RdP251bGw6dGhpcy5vcHRpb25zW3RdO29bdF09aX1yZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyhvKSx0aGlzfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdDtmb3IodCBpbiBlKXRoaXMuX3NldE9wdGlvbih0LGVbdF0pO3JldHVybiB0aGlzfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMub3B0aW9uc1tlXT10LCJkaXNhYmxlZCI9PT1lJiYodGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcyh0aGlzLndpZGdldEZ1bGxOYW1lKyItZGlzYWJsZWQiLCEhdCksdCYmKHRoaXMuaG92ZXJhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLHRoaXMuZm9jdXNhYmxlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpKSksdGhpc30sZW5hYmxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NldE9wdGlvbnMoe2Rpc2FibGVkOiExfSl9LGRpc2FibGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc2V0T3B0aW9ucyh7ZGlzYWJsZWQ6ITB9KX0sX29uOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbixhPXRoaXM7ImJvb2xlYW4iIT10eXBlb2YgdCYmKHM9aSxpPXQsdD0hMSkscz8oaT1uPWUoaSksdGhpcy5iaW5kaW5ncz10aGlzLmJpbmRpbmdzLmFkZChpKSk6KHM9aSxpPXRoaXMuZWxlbWVudCxuPXRoaXMud2lkZ2V0KCkpLGUuZWFjaChzLGZ1bmN0aW9uKHMsbyl7ZnVuY3Rpb24gcigpe3JldHVybiB0fHxhLm9wdGlvbnMuZGlzYWJsZWQhPT0hMCYmIWUodGhpcykuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIik/KCJzdHJpbmciPT10eXBlb2Ygbz9hW29dOm8pLmFwcGx5KGEsYXJndW1lbnRzKTp2b2lkIDB9InN0cmluZyIhPXR5cGVvZiBvJiYoci5ndWlkPW8uZ3VpZD1vLmd1aWR8fHIuZ3VpZHx8ZS5ndWlkKyspO3ZhciBoPXMubWF0Y2goL14oW1x3Oi1dKilccyooLiopJC8pLGw9aFsxXSthLmV2ZW50TmFtZXNwYWNlLHU9aFsyXTt1P24uZGVsZWdhdGUodSxsLHIpOmkuYmluZChsLHIpfSl9LF9vZmY6ZnVuY3Rpb24odCxpKXtpPShpfHwiIikuc3BsaXQoIiAiKS5qb2luKHRoaXMuZXZlbnROYW1lc3BhY2UrIiAiKSt0aGlzLmV2ZW50TmFtZXNwYWNlLHQudW5iaW5kKGkpLnVuZGVsZWdhdGUoaSksdGhpcy5iaW5kaW5ncz1lKHRoaXMuYmluZGluZ3Mubm90KHQpLmdldCgpKSx0aGlzLmZvY3VzYWJsZT1lKHRoaXMuZm9jdXNhYmxlLm5vdCh0KS5nZXQoKSksdGhpcy5ob3ZlcmFibGU9ZSh0aGlzLmhvdmVyYWJsZS5ub3QodCkuZ2V0KCkpfSxfZGVsYXk6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKCl7cmV0dXJuKCJzdHJpbmciPT10eXBlb2YgZT9zW2VdOmUpLmFwcGx5KHMsYXJndW1lbnRzKX12YXIgcz10aGlzO3JldHVybiBzZXRUaW1lb3V0KGksdHx8MCl9LF9ob3ZlcmFibGU6ZnVuY3Rpb24odCl7dGhpcy5ob3ZlcmFibGU9dGhpcy5ob3ZlcmFibGUuYWRkKHQpLHRoaXMuX29uKHQse21vdXNlZW50ZXI6ZnVuY3Rpb24odCl7ZSh0LmN1cnJlbnRUYXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpfSxtb3VzZWxlYXZlOmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtaG92ZXIiKX19KX0sX2ZvY3VzYWJsZTpmdW5jdGlvbih0KXt0aGlzLmZvY3VzYWJsZT10aGlzLmZvY3VzYWJsZS5hZGQodCksdGhpcy5fb24odCx7Zm9jdXNpbjpmdW5jdGlvbih0KXtlKHQuY3VycmVudFRhcmdldCkuYWRkQ2xhc3MoInVpLXN0YXRlLWZvY3VzIil9LGZvY3Vzb3V0OmZ1bmN0aW9uKHQpe2UodC5jdXJyZW50VGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKX19KX0sX3RyaWdnZXI6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnNbdF07aWYocz1zfHx7fSxpPWUuRXZlbnQoaSksaS50eXBlPSh0PT09dGhpcy53aWRnZXRFdmVudFByZWZpeD90OnRoaXMud2lkZ2V0RXZlbnRQcmVmaXgrdCkudG9Mb3dlckNhc2UoKSxpLnRhcmdldD10aGlzLmVsZW1lbnRbMF0sYT1pLm9yaWdpbmFsRXZlbnQpZm9yKG4gaW4gYSluIGluIGl8fChpW25dPWFbbl0pO3JldHVybiB0aGlzLmVsZW1lbnQudHJpZ2dlcihpLHMpLCEoZS5pc0Z1bmN0aW9uKG8pJiZvLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbaV0uY29uY2F0KHMpKT09PSExfHxpLmlzRGVmYXVsdFByZXZlbnRlZCgpKX19LGUuZWFjaCh7c2hvdzoiZmFkZUluIixoaWRlOiJmYWRlT3V0In0sZnVuY3Rpb24odCxpKXtlLldpZGdldC5wcm90b3R5cGVbIl8iK3RdPWZ1bmN0aW9uKHMsbixhKXsic3RyaW5nIj09dHlwZW9mIG4mJihuPXtlZmZlY3Q6bn0pO3ZhciBvLHI9bj9uPT09ITB8fCJudW1iZXIiPT10eXBlb2Ygbj9pOm4uZWZmZWN0fHxpOnQ7bj1ufHx7fSwibnVtYmVyIj09dHlwZW9mIG4mJihuPXtkdXJhdGlvbjpufSksbz0hZS5pc0VtcHR5T2JqZWN0KG4pLG4uY29tcGxldGU9YSxuLmRlbGF5JiZzLmRlbGF5KG4uZGVsYXkpLG8mJmUuZWZmZWN0cyYmZS5lZmZlY3RzLmVmZmVjdFtyXT9zW3RdKG4pOnIhPT10JiZzW3JdP3Nbcl0obi5kdXJhdGlvbixuLmVhc2luZyxhKTpzLnF1ZXVlKGZ1bmN0aW9uKGkpe2UodGhpcylbdF0oKSxhJiZhLmNhbGwoc1swXSksaSgpfSl9fSksZS53aWRnZXQ7dmFyIG89ITE7ZShkb2N1bWVudCkubW91c2V1cChmdW5jdGlvbigpe289ITF9KSxlLndpZGdldCgidWkubW91c2UiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2NhbmNlbDoiaW5wdXQsdGV4dGFyZWEsYnV0dG9uLHNlbGVjdCxvcHRpb24iLGRpc3RhbmNlOjEsZGVsYXk6MH0sX21vdXNlSW5pdDpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5lbGVtZW50LmJpbmQoIm1vdXNlZG93bi4iK3RoaXMud2lkZ2V0TmFtZSxmdW5jdGlvbihlKXtyZXR1cm4gdC5fbW91c2VEb3duKGUpfSkuYmluZCgiY2xpY2suIit0aGlzLndpZGdldE5hbWUsZnVuY3Rpb24oaSl7cmV0dXJuITA9PT1lLmRhdGEoaS50YXJnZXQsdC53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKT8oZS5yZW1vdmVEYXRhKGkudGFyZ2V0LHQud2lkZ2V0TmFtZSsiLnByZXZlbnRDbGlja0V2ZW50IiksaS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKSwhMSk6dm9pZCAwfSksdGhpcy5zdGFydGVkPSExfSxfbW91c2VEZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnVuYmluZCgiLiIrdGhpcy53aWRnZXROYW1lKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSYmdGhpcy5kb2N1bWVudC51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSl9LF9tb3VzZURvd246ZnVuY3Rpb24odCl7aWYoIW8pe3RoaXMuX21vdXNlTW92ZWQ9ITEsdGhpcy5fbW91c2VTdGFydGVkJiZ0aGlzLl9tb3VzZVVwKHQpLHRoaXMuX21vdXNlRG93bkV2ZW50PXQ7dmFyIGk9dGhpcyxzPTE9PT10LndoaWNoLG49InN0cmluZyI9PXR5cGVvZiB0aGlzLm9wdGlvbnMuY2FuY2VsJiZ0LnRhcmdldC5ub2RlTmFtZT9lKHQudGFyZ2V0KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5jYW5jZWwpLmxlbmd0aDohMTtyZXR1cm4gcyYmIW4mJnRoaXMuX21vdXNlQ2FwdHVyZSh0KT8odGhpcy5tb3VzZURlbGF5TWV0PSF0aGlzLm9wdGlvbnMuZGVsYXksdGhpcy5tb3VzZURlbGF5TWV0fHwodGhpcy5fbW91c2VEZWxheVRpbWVyPXNldFRpbWVvdXQoZnVuY3Rpb24oKXtpLm1vdXNlRGVsYXlNZXQ9ITB9LHRoaXMub3B0aW9ucy5kZWxheSkpLHRoaXMuX21vdXNlRGlzdGFuY2VNZXQodCkmJnRoaXMuX21vdXNlRGVsYXlNZXQodCkmJih0aGlzLl9tb3VzZVN0YXJ0ZWQ9dGhpcy5fbW91c2VTdGFydCh0KSE9PSExLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpPyh0LnByZXZlbnREZWZhdWx0KCksITApOighMD09PWUuZGF0YSh0LnRhcmdldCx0aGlzLndpZGdldE5hbWUrIi5wcmV2ZW50Q2xpY2tFdmVudCIpJiZlLnJlbW92ZURhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiKSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZT1mdW5jdGlvbihlKXtyZXR1cm4gaS5fbW91c2VNb3ZlKGUpfSx0aGlzLl9tb3VzZVVwRGVsZWdhdGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGkuX21vdXNlVXAoZSl9LHRoaXMuZG9jdW1lbnQuYmluZCgibW91c2Vtb3ZlLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlTW92ZURlbGVnYXRlKS5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdC5wcmV2ZW50RGVmYXVsdCgpLG89ITAsITApKTohMH19LF9tb3VzZU1vdmU6ZnVuY3Rpb24odCl7aWYodGhpcy5fbW91c2VNb3ZlZCl7aWYoZS51aS5pZSYmKCFkb2N1bWVudC5kb2N1bWVudE1vZGV8fDk+ZG9jdW1lbnQuZG9jdW1lbnRNb2RlKSYmIXQuYnV0dG9uKXJldHVybiB0aGlzLl9tb3VzZVVwKHQpO2lmKCF0LndoaWNoKXJldHVybiB0aGlzLl9tb3VzZVVwKHQpfXJldHVybih0LndoaWNofHx0LmJ1dHRvbikmJih0aGlzLl9tb3VzZU1vdmVkPSEwKSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/KHRoaXMuX21vdXNlRHJhZyh0KSx0LnByZXZlbnREZWZhdWx0KCkpOih0aGlzLl9tb3VzZURpc3RhbmNlTWV0KHQpJiZ0aGlzLl9tb3VzZURlbGF5TWV0KHQpJiYodGhpcy5fbW91c2VTdGFydGVkPXRoaXMuX21vdXNlU3RhcnQodGhpcy5fbW91c2VEb3duRXZlbnQsdCkhPT0hMSx0aGlzLl9tb3VzZVN0YXJ0ZWQ/dGhpcy5fbW91c2VEcmFnKHQpOnRoaXMuX21vdXNlVXAodCkpLCF0aGlzLl9tb3VzZVN0YXJ0ZWQpfSxfbW91c2VVcDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kb2N1bWVudC51bmJpbmQoIm1vdXNlbW92ZS4iK3RoaXMud2lkZ2V0TmFtZSx0aGlzLl9tb3VzZU1vdmVEZWxlZ2F0ZSkudW5iaW5kKCJtb3VzZXVwLiIrdGhpcy53aWRnZXROYW1lLHRoaXMuX21vdXNlVXBEZWxlZ2F0ZSksdGhpcy5fbW91c2VTdGFydGVkJiYodGhpcy5fbW91c2VTdGFydGVkPSExLHQudGFyZ2V0PT09dGhpcy5fbW91c2VEb3duRXZlbnQudGFyZ2V0JiZlLmRhdGEodC50YXJnZXQsdGhpcy53aWRnZXROYW1lKyIucHJldmVudENsaWNrRXZlbnQiLCEwKSx0aGlzLl9tb3VzZVN0b3AodCkpLG89ITEsITF9LF9tb3VzZURpc3RhbmNlTWV0OmZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWC1lLnBhZ2VYKSxNYXRoLmFicyh0aGlzLl9tb3VzZURvd25FdmVudC5wYWdlWS1lLnBhZ2VZKSk+PXRoaXMub3B0aW9ucy5kaXN0YW5jZX0sX21vdXNlRGVsYXlNZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tb3VzZURlbGF5TWV0fSxfbW91c2VTdGFydDpmdW5jdGlvbigpe30sX21vdXNlRHJhZzpmdW5jdGlvbigpe30sX21vdXNlU3RvcDpmdW5jdGlvbigpe30sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbigpe3JldHVybiEwfX0pLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdChlLHQsaSl7cmV0dXJuW3BhcnNlRmxvYXQoZVswXSkqKHAudGVzdChlWzBdKT90LzEwMDoxKSxwYXJzZUZsb2F0KGVbMV0pKihwLnRlc3QoZVsxXSk/aS8xMDA6MSldfWZ1bmN0aW9uIGkodCxpKXtyZXR1cm4gcGFyc2VJbnQoZS5jc3ModCxpKSwxMCl8fDB9ZnVuY3Rpb24gcyh0KXt2YXIgaT10WzBdO3JldHVybiA5PT09aS5ub2RlVHlwZT97d2lkdGg6dC53aWR0aCgpLGhlaWdodDp0LmhlaWdodCgpLG9mZnNldDp7dG9wOjAsbGVmdDowfX06ZS5pc1dpbmRvdyhpKT97d2lkdGg6dC53aWR0aCgpLGhlaWdodDp0LmhlaWdodCgpLG9mZnNldDp7dG9wOnQuc2Nyb2xsVG9wKCksbGVmdDp0LnNjcm9sbExlZnQoKX19OmkucHJldmVudERlZmF1bHQ/e3dpZHRoOjAsaGVpZ2h0OjAsb2Zmc2V0Ont0b3A6aS5wYWdlWSxsZWZ0OmkucGFnZVh9fTp7d2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKSxvZmZzZXQ6dC5vZmZzZXQoKX19ZS51aT1lLnVpfHx7fTt2YXIgbixhLG89TWF0aC5tYXgscj1NYXRoLmFicyxoPU1hdGgucm91bmQsbD0vbGVmdHxjZW50ZXJ8cmlnaHQvLHU9L3RvcHxjZW50ZXJ8Ym90dG9tLyxkPS9bXCtcLV1cZCsoXC5bXGRdKyk/JT8vLGM9L15cdysvLHA9LyUkLyxmPWUuZm4ucG9zaXRpb247ZS5wb3NpdGlvbj17c2Nyb2xsYmFyV2lkdGg6ZnVuY3Rpb24oKXtpZih2b2lkIDAhPT1uKXJldHVybiBuO3ZhciB0LGkscz1lKCI8ZGl2IHN0eWxlPSdkaXNwbGF5OmJsb2NrO3Bvc2l0aW9uOmFic29sdXRlO3dpZHRoOjUwcHg7aGVpZ2h0OjUwcHg7b3ZlcmZsb3c6aGlkZGVuOyc+PGRpdiBzdHlsZT0naGVpZ2h0OjEwMHB4O3dpZHRoOmF1dG87Jz48L2Rpdj48L2Rpdj4iKSxhPXMuY2hpbGRyZW4oKVswXTtyZXR1cm4gZSgiYm9keSIpLmFwcGVuZChzKSx0PWEub2Zmc2V0V2lkdGgscy5jc3MoIm92ZXJmbG93Iiwic2Nyb2xsIiksaT1hLm9mZnNldFdpZHRoLHQ9PT1pJiYoaT1zWzBdLmNsaWVudFdpZHRoKSxzLnJlbW92ZSgpLG49dC1pfSxnZXRTY3JvbGxJbmZvOmZ1bmN0aW9uKHQpe3ZhciBpPXQuaXNXaW5kb3d8fHQuaXNEb2N1bWVudD8iIjp0LmVsZW1lbnQuY3NzKCJvdmVyZmxvdy14Iikscz10LmlzV2luZG93fHx0LmlzRG9jdW1lbnQ/IiI6dC5lbGVtZW50LmNzcygib3ZlcmZsb3cteSIpLG49InNjcm9sbCI9PT1pfHwiYXV0byI9PT1pJiZ0LndpZHRoPHQuZWxlbWVudFswXS5zY3JvbGxXaWR0aCxhPSJzY3JvbGwiPT09c3x8ImF1dG8iPT09cyYmdC5oZWlnaHQ8dC5lbGVtZW50WzBdLnNjcm9sbEhlaWdodDtyZXR1cm57d2lkdGg6YT9lLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MCxoZWlnaHQ6bj9lLnBvc2l0aW9uLnNjcm9sbGJhcldpZHRoKCk6MH19LGdldFdpdGhpbkluZm86ZnVuY3Rpb24odCl7dmFyIGk9ZSh0fHx3aW5kb3cpLHM9ZS5pc1dpbmRvdyhpWzBdKSxuPSEhaVswXSYmOT09PWlbMF0ubm9kZVR5cGU7cmV0dXJue2VsZW1lbnQ6aSxpc1dpbmRvdzpzLGlzRG9jdW1lbnQ6bixvZmZzZXQ6aS5vZmZzZXQoKXx8e2xlZnQ6MCx0b3A6MH0sc2Nyb2xsTGVmdDppLnNjcm9sbExlZnQoKSxzY3JvbGxUb3A6aS5zY3JvbGxUb3AoKSx3aWR0aDpzfHxuP2kud2lkdGgoKTppLm91dGVyV2lkdGgoKSxoZWlnaHQ6c3x8bj9pLmhlaWdodCgpOmkub3V0ZXJIZWlnaHQoKX19fSxlLmZuLnBvc2l0aW9uPWZ1bmN0aW9uKG4pe2lmKCFufHwhbi5vZilyZXR1cm4gZi5hcHBseSh0aGlzLGFyZ3VtZW50cyk7bj1lLmV4dGVuZCh7fSxuKTt2YXIgcCxtLGcsdix5LGIsXz1lKG4ub2YpLHg9ZS5wb3NpdGlvbi5nZXRXaXRoaW5JbmZvKG4ud2l0aGluKSx3PWUucG9zaXRpb24uZ2V0U2Nyb2xsSW5mbyh4KSxrPShuLmNvbGxpc2lvbnx8ImZsaXAiKS5zcGxpdCgiICIpLFQ9e307cmV0dXJuIGI9cyhfKSxfWzBdLnByZXZlbnREZWZhdWx0JiYobi5hdD0ibGVmdCB0b3AiKSxtPWIud2lkdGgsZz1iLmhlaWdodCx2PWIub2Zmc2V0LHk9ZS5leHRlbmQoe30sdiksZS5lYWNoKFsibXkiLCJhdCJdLGZ1bmN0aW9uKCl7dmFyIGUsdCxpPShuW3RoaXNdfHwiIikuc3BsaXQoIiAiKTsxPT09aS5sZW5ndGgmJihpPWwudGVzdChpWzBdKT9pLmNvbmNhdChbImNlbnRlciJdKTp1LnRlc3QoaVswXSk/WyJjZW50ZXIiXS5jb25jYXQoaSk6WyJjZW50ZXIiLCJjZW50ZXIiXSksaVswXT1sLnRlc3QoaVswXSk/aVswXToiY2VudGVyIixpWzFdPXUudGVzdChpWzFdKT9pWzFdOiJjZW50ZXIiLGU9ZC5leGVjKGlbMF0pLHQ9ZC5leGVjKGlbMV0pLFRbdGhpc109W2U/ZVswXTowLHQ/dFswXTowXSxuW3RoaXNdPVtjLmV4ZWMoaVswXSlbMF0sYy5leGVjKGlbMV0pWzBdXX0pLDE9PT1rLmxlbmd0aCYmKGtbMV09a1swXSksInJpZ2h0Ij09PW4uYXRbMF0/eS5sZWZ0Kz1tOiJjZW50ZXIiPT09bi5hdFswXSYmKHkubGVmdCs9bS8yKSwiYm90dG9tIj09PW4uYXRbMV0/eS50b3ArPWc6ImNlbnRlciI9PT1uLmF0WzFdJiYoeS50b3ArPWcvMikscD10KFQuYXQsbSxnKSx5LmxlZnQrPXBbMF0seS50b3ArPXBbMV0sdGhpcy5lYWNoKGZ1bmN0aW9uKCl7dmFyIHMsbCx1PWUodGhpcyksZD11Lm91dGVyV2lkdGgoKSxjPXUub3V0ZXJIZWlnaHQoKSxmPWkodGhpcywibWFyZ2luTGVmdCIpLGI9aSh0aGlzLCJtYXJnaW5Ub3AiKSxEPWQrZitpKHRoaXMsIm1hcmdpblJpZ2h0Iikrdy53aWR0aCxTPWMrYitpKHRoaXMsIm1hcmdpbkJvdHRvbSIpK3cuaGVpZ2h0LE49ZS5leHRlbmQoe30seSksTT10KFQubXksdS5vdXRlcldpZHRoKCksdS5vdXRlckhlaWdodCgpKTsicmlnaHQiPT09bi5teVswXT9OLmxlZnQtPWQ6ImNlbnRlciI9PT1uLm15WzBdJiYoTi5sZWZ0LT1kLzIpLCJib3R0b20iPT09bi5teVsxXT9OLnRvcC09YzoiY2VudGVyIj09PW4ubXlbMV0mJihOLnRvcC09Yy8yKSxOLmxlZnQrPU1bMF0sTi50b3ArPU1bMV0sYXx8KE4ubGVmdD1oKE4ubGVmdCksTi50b3A9aChOLnRvcCkpLHM9e21hcmdpbkxlZnQ6ZixtYXJnaW5Ub3A6Yn0sZS5lYWNoKFsibGVmdCIsInRvcCJdLGZ1bmN0aW9uKHQsaSl7ZS51aS5wb3NpdGlvbltrW3RdXSYmZS51aS5wb3NpdGlvbltrW3RdXVtpXShOLHt0YXJnZXRXaWR0aDptLHRhcmdldEhlaWdodDpnLGVsZW1XaWR0aDpkLGVsZW1IZWlnaHQ6Yyxjb2xsaXNpb25Qb3NpdGlvbjpzLGNvbGxpc2lvbldpZHRoOkQsY29sbGlzaW9uSGVpZ2h0OlMsb2Zmc2V0OltwWzBdK01bMF0scFsxXStNWzFdXSxteTpuLm15LGF0Om4uYXQsd2l0aGluOngsZWxlbTp1fSl9KSxuLnVzaW5nJiYobD1mdW5jdGlvbihlKXt2YXIgdD12LmxlZnQtTi5sZWZ0LGk9dCttLWQscz12LnRvcC1OLnRvcCxhPXMrZy1jLGg9e3RhcmdldDp7ZWxlbWVudDpfLGxlZnQ6di5sZWZ0LHRvcDp2LnRvcCx3aWR0aDptLGhlaWdodDpnfSxlbGVtZW50OntlbGVtZW50OnUsbGVmdDpOLmxlZnQsdG9wOk4udG9wLHdpZHRoOmQsaGVpZ2h0OmN9LGhvcml6b250YWw6MD5pPyJsZWZ0Ijp0PjA/InJpZ2h0IjoiY2VudGVyIix2ZXJ0aWNhbDowPmE/InRvcCI6cz4wPyJib3R0b20iOiJtaWRkbGUifTtkPm0mJm0+cih0K2kpJiYoaC5ob3Jpem9udGFsPSJjZW50ZXIiKSxjPmcmJmc+cihzK2EpJiYoaC52ZXJ0aWNhbD0ibWlkZGxlIiksaC5pbXBvcnRhbnQ9byhyKHQpLHIoaSkpPm8ocihzKSxyKGEpKT8iaG9yaXpvbnRhbCI6InZlcnRpY2FsIixuLnVzaW5nLmNhbGwodGhpcyxlLGgpfSksdS5vZmZzZXQoZS5leHRlbmQoTix7dXNpbmc6bH0pKX0pfSxlLnVpLnBvc2l0aW9uPXtmaXQ6e2xlZnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzPXQud2l0aGluLG49cy5pc1dpbmRvdz9zLnNjcm9sbExlZnQ6cy5vZmZzZXQubGVmdCxhPXMud2lkdGgscj1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0LGg9bi1yLGw9cit0LmNvbGxpc2lvbldpZHRoLWEtbjt0LmNvbGxpc2lvbldpZHRoPmE/aD4wJiYwPj1sPyhpPWUubGVmdCtoK3QuY29sbGlzaW9uV2lkdGgtYS1uLGUubGVmdCs9aC1pKTplLmxlZnQ9bD4wJiYwPj1oP246aD5sP24rYS10LmNvbGxpc2lvbldpZHRoOm46aD4wP2UubGVmdCs9aDpsPjA/ZS5sZWZ0LT1sOmUubGVmdD1vKGUubGVmdC1yLGUubGVmdCl9LHRvcDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dC53aXRoaW4sbj1zLmlzV2luZG93P3Muc2Nyb2xsVG9wOnMub2Zmc2V0LnRvcCxhPXQud2l0aGluLmhlaWdodCxyPWUudG9wLXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLGg9bi1yLGw9cit0LmNvbGxpc2lvbkhlaWdodC1hLW47dC5jb2xsaXNpb25IZWlnaHQ+YT9oPjAmJjA+PWw/KGk9ZS50b3AraCt0LmNvbGxpc2lvbkhlaWdodC1hLW4sZS50b3ArPWgtaSk6ZS50b3A9bD4wJiYwPj1oP246aD5sP24rYS10LmNvbGxpc2lvbkhlaWdodDpuOmg+MD9lLnRvcCs9aDpsPjA/ZS50b3AtPWw6ZS50b3A9byhlLnRvcC1yLGUudG9wKX19LGZsaXA6e2xlZnQ6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dC53aXRoaW4sYT1uLm9mZnNldC5sZWZ0K24uc2Nyb2xsTGVmdCxvPW4ud2lkdGgsaD1uLmlzV2luZG93P24uc2Nyb2xsTGVmdDpuLm9mZnNldC5sZWZ0LGw9ZS5sZWZ0LXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luTGVmdCx1PWwtaCxkPWwrdC5jb2xsaXNpb25XaWR0aC1vLWgsYz0ibGVmdCI9PT10Lm15WzBdPy10LmVsZW1XaWR0aDoicmlnaHQiPT09dC5teVswXT90LmVsZW1XaWR0aDowLHA9ImxlZnQiPT09dC5hdFswXT90LnRhcmdldFdpZHRoOiJyaWdodCI9PT10LmF0WzBdPy10LnRhcmdldFdpZHRoOjAsZj0tMip0Lm9mZnNldFswXTswPnU/KGk9ZS5sZWZ0K2MrcCtmK3QuY29sbGlzaW9uV2lkdGgtby1hLCgwPml8fHIodSk+aSkmJihlLmxlZnQrPWMrcCtmKSk6ZD4wJiYocz1lLmxlZnQtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5MZWZ0K2MrcCtmLWgsKHM+MHx8ZD5yKHMpKSYmKGUubGVmdCs9YytwK2YpKX0sdG9wOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPXQud2l0aGluLGE9bi5vZmZzZXQudG9wK24uc2Nyb2xsVG9wLG89bi5oZWlnaHQsaD1uLmlzV2luZG93P24uc2Nyb2xsVG9wOm4ub2Zmc2V0LnRvcCxsPWUudG9wLXQuY29sbGlzaW9uUG9zaXRpb24ubWFyZ2luVG9wLHU9bC1oLGQ9bCt0LmNvbGxpc2lvbkhlaWdodC1vLWgsYz0idG9wIj09PXQubXlbMV0scD1jPy10LmVsZW1IZWlnaHQ6ImJvdHRvbSI9PT10Lm15WzFdP3QuZWxlbUhlaWdodDowLGY9InRvcCI9PT10LmF0WzFdP3QudGFyZ2V0SGVpZ2h0OiJib3R0b20iPT09dC5hdFsxXT8tdC50YXJnZXRIZWlnaHQ6MCxtPS0yKnQub2Zmc2V0WzFdOzA+dT8ocz1lLnRvcCtwK2YrbSt0LmNvbGxpc2lvbkhlaWdodC1vLWEsKDA+c3x8cih1KT5zKSYmKGUudG9wKz1wK2YrbSkpOmQ+MCYmKGk9ZS50b3AtdC5jb2xsaXNpb25Qb3NpdGlvbi5tYXJnaW5Ub3ArcCtmK20taCwoaT4wfHxkPnIoaSkpJiYoZS50b3ArPXArZittKSl9fSxmbGlwZml0OntsZWZ0OmZ1bmN0aW9uKCl7ZS51aS5wb3NpdGlvbi5mbGlwLmxlZnQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUudWkucG9zaXRpb24uZml0LmxlZnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfSx0b3A6ZnVuY3Rpb24oKXtlLnVpLnBvc2l0aW9uLmZsaXAudG9wLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxlLnVpLnBvc2l0aW9uLmZpdC50b3AuYXBwbHkodGhpcyxhcmd1bWVudHMpfX19LGZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sbyxyPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0saD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTt0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQocj8iZGl2IjoiYm9keSIpLHM9e3Zpc2liaWxpdHk6ImhpZGRlbiIsd2lkdGg6MCxoZWlnaHQ6MCxib3JkZXI6MCxtYXJnaW46MCxiYWNrZ3JvdW5kOiJub25lIn0sciYmZS5leHRlbmQocyx7cG9zaXRpb246ImFic29sdXRlIixsZWZ0OiItMTAwMHB4Iix0b3A6Ii0xMDAwcHgifSk7Zm9yKG8gaW4gcyl0LnN0eWxlW29dPXNbb107dC5hcHBlbmRDaGlsZChoKSxpPXJ8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCxpLmluc2VydEJlZm9yZSh0LGkuZmlyc3RDaGlsZCksaC5zdHlsZS5jc3NUZXh0PSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDEwLjc0MzIyMjJweDsiLG49ZShoKS5vZmZzZXQoKS5sZWZ0LGE9bj4xMCYmMTE+bix0LmlubmVySFRNTD0iIixpLnJlbW92ZUNoaWxkKHQpfSgpfSgpLGUudWkucG9zaXRpb24sZS53aWRnZXQoInVpLmRyYWdnYWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoiZHJhZyIsb3B0aW9uczp7YWRkQ2xhc3NlczohMCxhcHBlbmRUbzoicGFyZW50IixheGlzOiExLGNvbm5lY3RUb1NvcnRhYmxlOiExLGNvbnRhaW5tZW50OiExLGN1cnNvcjoiYXV0byIsY3Vyc29yQXQ6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaWZyYW1lRml4OiExLG9wYWNpdHk6ITEscmVmcmVzaFBvc2l0aW9uczohMSxyZXZlcnQ6ITEscmV2ZXJ0RHVyYXRpb246NTAwLHNjb3BlOiJkZWZhdWx0IixzY3JvbGw6ITAsc2Nyb2xsU2Vuc2l0aXZpdHk6MjAsc2Nyb2xsU3BlZWQ6MjAsc25hcDohMSxzbmFwTW9kZToiYm90aCIsc25hcFRvbGVyYW5jZToyMCxzdGFjazohMSx6SW5kZXg6ITEsZHJhZzpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7Im9yaWdpbmFsIj09PXRoaXMub3B0aW9ucy5oZWxwZXImJnRoaXMuX3NldFBvc2l0aW9uUmVsYXRpdmUoKSx0aGlzLm9wdGlvbnMuYWRkQ2xhc3NlcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1kcmFnZ2FibGUiKSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VJbml0KCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmKHRoaXMuX3JlbW92ZUhhbmRsZUNsYXNzTmFtZSgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXtyZXR1cm4odGhpcy5oZWxwZXJ8fHRoaXMuZWxlbWVudCkuaXMoIi51aS1kcmFnZ2FibGUtZHJhZ2dpbmciKT8odGhpcy5kZXN0cm95T25DbGVhcj0hMCx2b2lkIDApOih0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyYWdnYWJsZSB1aS1kcmFnZ2FibGUtZHJhZ2dpbmcgdWktZHJhZ2dhYmxlLWRpc2FibGVkIiksdGhpcy5fcmVtb3ZlSGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5fbW91c2VEZXN0cm95KCksdm9pZCAwKX0sX21vdXNlQ2FwdHVyZTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuX2JsdXJBY3RpdmVFbGVtZW50KHQpLHRoaXMuaGVscGVyfHxpLmRpc2FibGVkfHxlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktcmVzaXphYmxlLWhhbmRsZSIpLmxlbmd0aD4wPyExOih0aGlzLmhhbmRsZT10aGlzLl9nZXRIYW5kbGUodCksdGhpcy5oYW5kbGU/KHRoaXMuX2Jsb2NrRnJhbWVzKGkuaWZyYW1lRml4PT09ITA/ImlmcmFtZSI6aS5pZnJhbWVGaXgpLCEwKTohMSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbih0KXt0aGlzLmlmcmFtZUJsb2Nrcz10aGlzLmRvY3VtZW50LmZpbmQodCkubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKS5hcHBlbmRUbyh0LnBhcmVudCgpKS5vdXRlcldpZHRoKHQub3V0ZXJXaWR0aCgpKS5vdXRlckhlaWdodCh0Lm91dGVySGVpZ2h0KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2JsdXJBY3RpdmVFbGVtZW50OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuZG9jdW1lbnRbMF07aWYodGhpcy5oYW5kbGVFbGVtZW50LmlzKHQudGFyZ2V0KSl0cnl7aS5hY3RpdmVFbGVtZW50JiYiYm9keSIhPT1pLmFjdGl2ZUVsZW1lbnQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpLmFjdGl2ZUVsZW1lbnQpLmJsdXIoKX1jYXRjaChzKXt9fSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnM7cmV0dXJuIHRoaXMuaGVscGVyPXRoaXMuX2NyZWF0ZUhlbHBlcih0KSx0aGlzLmhlbHBlci5hZGRDbGFzcygidWktZHJhZ2dhYmxlLWRyYWdnaW5nIiksdGhpcy5fY2FjaGVIZWxwZXJQcm9wb3J0aW9ucygpLGUudWkuZGRtYW5hZ2VyJiYoZS51aS5kZG1hbmFnZXIuY3VycmVudD10aGlzKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoITApLHRoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpLHRoaXMuaGFzRml4ZWRBbmNlc3Rvcj10aGlzLmhlbHBlci5wYXJlbnRzKCkuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuImZpeGVkIj09PWUodGhpcykuY3NzKCJwb3NpdGlvbiIpfSkubGVuZ3RoPjAsdGhpcy5wb3NpdGlvbkFicz10aGlzLmVsZW1lbnQub2Zmc2V0KCksdGhpcy5fcmVmcmVzaE9mZnNldHModCksdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXRoaXMucG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0LCExKSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxpLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKGkuY3Vyc29yQXQpLHRoaXMuX3NldENvbnRhaW5tZW50KCksdGhpcy5fdHJpZ2dlcigic3RhcnQiLHQpPT09ITE/KHRoaXMuX2NsZWFyKCksITEpOih0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksZS51aS5kZG1hbmFnZXImJiFpLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCksdGhpcy5fbm9ybWFsaXplUmlnaHRCb3R0b20oKSx0aGlzLl9tb3VzZURyYWcodCwhMCksZS51aS5kZG1hbmFnZXImJmUudWkuZGRtYW5hZ2VyLmRyYWdTdGFydCh0aGlzLHQpLCEwKX0sX3JlZnJlc2hPZmZzZXRzOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXt0b3A6dGhpcy5wb3NpdGlvbkFicy50b3AtdGhpcy5tYXJnaW5zLnRvcCxsZWZ0OnRoaXMucG9zaXRpb25BYnMubGVmdC10aGlzLm1hcmdpbnMubGVmdCxzY3JvbGw6ITEscGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9LHRoaXMub2Zmc2V0LmNsaWNrPXtsZWZ0OmUucGFnZVgtdGhpcy5vZmZzZXQubGVmdCx0b3A6ZS5wYWdlWS10aGlzLm9mZnNldC50b3B9fSxfbW91c2VEcmFnOmZ1bmN0aW9uKHQsaSl7aWYodGhpcy5oYXNGaXhlZEFuY2VzdG9yJiYodGhpcy5vZmZzZXQucGFyZW50PXRoaXMuX2dldFBhcmVudE9mZnNldCgpKSx0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCwhMCksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSwhaSl7dmFyIHM9dGhpcy5fdWlIYXNoKCk7aWYodGhpcy5fdHJpZ2dlcigiZHJhZyIsdCxzKT09PSExKXJldHVybiB0aGlzLl9tb3VzZVVwKHt9KSwhMTt0aGlzLnBvc2l0aW9uPXMucG9zaXRpb259cmV0dXJuIHRoaXMuaGVscGVyWzBdLnN0eWxlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIsdGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIsZS51aS5kZG1hbmFnZXImJmUudWkuZGRtYW5hZ2VyLmRyYWcodGhpcyx0KSwhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLHM9ITE7cmV0dXJuIGUudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJihzPWUudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSksdGhpcy5kcm9wcGVkJiYocz10aGlzLmRyb3BwZWQsdGhpcy5kcm9wcGVkPSExKSwiaW52YWxpZCI9PT10aGlzLm9wdGlvbnMucmV2ZXJ0JiYhc3x8InZhbGlkIj09PXRoaXMub3B0aW9ucy5yZXZlcnQmJnN8fHRoaXMub3B0aW9ucy5yZXZlcnQ9PT0hMHx8ZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5yZXZlcnQpJiZ0aGlzLm9wdGlvbnMucmV2ZXJ0LmNhbGwodGhpcy5lbGVtZW50LHMpP2UodGhpcy5oZWxwZXIpLmFuaW1hdGUodGhpcy5vcmlnaW5hbFBvc2l0aW9uLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnREdXJhdGlvbiwxMCksZnVuY3Rpb24oKXtpLl90cmlnZ2VyKCJzdG9wIix0KSE9PSExJiZpLl9jbGVhcigpfSk6dGhpcy5fdHJpZ2dlcigic3RvcCIsdCkhPT0hMSYmdGhpcy5fY2xlYXIoKSwhMX0sX21vdXNlVXA6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3VuYmxvY2tGcmFtZXMoKSxlLnVpLmRkbWFuYWdlciYmZS51aS5kZG1hbmFnZXIuZHJhZ1N0b3AodGhpcyx0KSx0aGlzLmhhbmRsZUVsZW1lbnQuaXModC50YXJnZXQpJiZ0aGlzLmVsZW1lbnQuZm9jdXMoKSxlLnVpLm1vdXNlLnByb3RvdHlwZS5fbW91c2VVcC5jYWxsKHRoaXMsdCl9LGNhbmNlbDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmhlbHBlci5pcygiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpP3RoaXMuX21vdXNlVXAoe30pOnRoaXMuX2NsZWFyKCksdGhpc30sX2dldEhhbmRsZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5vcHRpb25zLmhhbmRsZT8hIWUodC50YXJnZXQpLmNsb3Nlc3QodGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLmhhbmRsZSkpLmxlbmd0aDohMH0sX3NldEhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudD10aGlzLm9wdGlvbnMuaGFuZGxlP3RoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5oYW5kbGUpOnRoaXMuZWxlbWVudCx0aGlzLmhhbmRsZUVsZW1lbnQuYWRkQ2xhc3MoInVpLWRyYWdnYWJsZS1oYW5kbGUiKX0sX3JlbW92ZUhhbmRsZUNsYXNzTmFtZTpmdW5jdGlvbigpe3RoaXMuaGFuZGxlRWxlbWVudC5yZW1vdmVDbGFzcygidWktZHJhZ2dhYmxlLWhhbmRsZSIpfSxfY3JlYXRlSGVscGVyOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucyxzPWUuaXNGdW5jdGlvbihpLmhlbHBlciksbj1zP2UoaS5oZWxwZXIuYXBwbHkodGhpcy5lbGVtZW50WzBdLFt0XSkpOiJjbG9uZSI9PT1pLmhlbHBlcj90aGlzLmVsZW1lbnQuY2xvbmUoKS5yZW1vdmVBdHRyKCJpZCIpOnRoaXMuZWxlbWVudDtyZXR1cm4gbi5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxuLmFwcGVuZFRvKCJwYXJlbnQiPT09aS5hcHBlbmRUbz90aGlzLmVsZW1lbnRbMF0ucGFyZW50Tm9kZTppLmFwcGVuZFRvKSxzJiZuWzBdPT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLl9zZXRQb3NpdGlvblJlbGF0aXZlKCksblswXT09PXRoaXMuZWxlbWVudFswXXx8LyhmaXhlZHxhYnNvbHV0ZSkvLnRlc3Qobi5jc3MoInBvc2l0aW9uIikpfHxuLmNzcygicG9zaXRpb24iLCJhYnNvbHV0ZSIpLG59LF9zZXRQb3NpdGlvblJlbGF0aXZlOmZ1bmN0aW9uKCl7L14oPzpyfGF8ZikvLnRlc3QodGhpcy5lbGVtZW50LmNzcygicG9zaXRpb24iKSl8fCh0aGlzLmVsZW1lbnRbMF0uc3R5bGUucG9zaXRpb249InJlbGF0aXZlIil9LF9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5zcGxpdCgiICIpKSxlLmlzQXJyYXkodCkmJih0PXtsZWZ0Oit0WzBdLHRvcDordFsxXXx8MH0pLCJsZWZ0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksInJpZ2h0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdC5yaWdodCt0aGlzLm1hcmdpbnMubGVmdCksInRvcCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXQudG9wK3RoaXMubWFyZ2lucy50b3ApLCJib3R0b20iaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2lzUm9vdE5vZGU6ZnVuY3Rpb24oZSl7cmV0dXJuLyhodG1sfGJvZHkpL2kudGVzdChlLnRhZ05hbWUpfHxlPT09dGhpcy5kb2N1bWVudFswXX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpLGk9dGhpcy5kb2N1bWVudFswXTtyZXR1cm4iYWJzb2x1dGUiPT09dGhpcy5jc3NQb3NpdGlvbiYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT1pJiZlLmNvbnRhaW5zKHRoaXMuc2Nyb2xsUGFyZW50WzBdLHRoaXMub2Zmc2V0UGFyZW50WzBdKSYmKHQubGVmdCs9dGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpLHQudG9wKz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksdGhpcy5faXNSb290Tm9kZSh0aGlzLm9mZnNldFBhcmVudFswXSkmJih0PXt0b3A6MCxsZWZ0OjB9KSx7dG9wOnQudG9wKyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoInJlbGF0aXZlIiE9PXRoaXMuY3NzUG9zaXRpb24pcmV0dXJue3RvcDowLGxlZnQ6MH07dmFyIGU9dGhpcy5lbGVtZW50LnBvc2l0aW9uKCksdD10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKTtyZXR1cm57dG9wOmUudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrKHQ/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSksbGVmdDplLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrKHQ/MDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCkpfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5MZWZ0IiksMTApfHwwLHRvcDpwYXJzZUludCh0aGlzLmVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSwxMCl8fDAscmlnaHQ6cGFyc2VJbnQodGhpcy5lbGVtZW50LmNzcygibWFyZ2luUmlnaHQiKSwxMCl8fDAsYm90dG9tOnBhcnNlSW50KHRoaXMuZWxlbWVudC5jc3MoIm1hcmdpbkJvdHRvbSIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclByb3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG49dGhpcy5vcHRpb25zLGE9dGhpcy5kb2N1bWVudFswXTtyZXR1cm4gdGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj1udWxsLG4uY29udGFpbm1lbnQ/IndpbmRvdyI9PT1uLmNvbnRhaW5tZW50Pyh0aGlzLmNvbnRhaW5tZW50PVtlKHdpbmRvdykuc2Nyb2xsTGVmdCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQsZSh3aW5kb3cpLnNjcm9sbFRvcCgpLXRoaXMub2Zmc2V0LnJlbGF0aXZlLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLGUod2luZG93KS5zY3JvbGxMZWZ0KCkrZSh3aW5kb3cpLndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCxlKHdpbmRvdykuc2Nyb2xsVG9wKCkrKGUod2luZG93KS5oZWlnaHQoKXx8YS5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0KS10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10aGlzLm1hcmdpbnMudG9wXSx2b2lkIDApOiJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50Pyh0aGlzLmNvbnRhaW5tZW50PVswLDAsZShhKS53aWR0aCgpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsKGUoYSkuaGVpZ2h0KCl8fGEuYm9keS5wYXJlbnROb2RlLnNjcm9sbEhlaWdodCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQtdGhpcy5tYXJnaW5zLnRvcF0sdm9pZCAwKTpuLmNvbnRhaW5tZW50LmNvbnN0cnVjdG9yPT09QXJyYXk/KHRoaXMuY29udGFpbm1lbnQ9bi5jb250YWlubWVudCx2b2lkIDApOigicGFyZW50Ij09PW4uY29udGFpbm1lbnQmJihuLmNvbnRhaW5tZW50PXRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUpLGk9ZShuLmNvbnRhaW5tZW50KSxzPWlbMF0scyYmKHQ9LyhzY3JvbGx8YXV0bykvLnRlc3QoaS5jc3MoIm92ZXJmbG93IikpLHRoaXMuY29udGFpbm1lbnQ9WyhwYXJzZUludChpLmNzcygiYm9yZGVyTGVmdFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdMZWZ0IiksMTApfHwwKSwocGFyc2VJbnQoaS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdUb3AiKSwxMCl8fDApLCh0P01hdGgubWF4KHMuc2Nyb2xsV2lkdGgscy5vZmZzZXRXaWR0aCk6cy5vZmZzZXRXaWR0aCktKHBhcnNlSW50KGkuY3NzKCJib3JkZXJSaWdodFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdSaWdodCIpLDEwKXx8MCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdC10aGlzLm1hcmdpbnMucmlnaHQsKHQ/TWF0aC5tYXgocy5zY3JvbGxIZWlnaHQscy5vZmZzZXRIZWlnaHQpOnMub2Zmc2V0SGVpZ2h0KS0ocGFyc2VJbnQoaS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoaS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3AtdGhpcy5tYXJnaW5zLmJvdHRvbV0sdGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj1pKSx2b2lkIDApOih0aGlzLmNvbnRhaW5tZW50PW51bGwsdm9pZCAwKX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKGUsdCl7dHx8KHQ9dGhpcy5wb3NpdGlvbik7dmFyIGk9ImFic29sdXRlIj09PWU/MTotMSxzPXRoaXMuX2lzUm9vdE5vZGUodGhpcy5zY3JvbGxQYXJlbnRbMF0pO3JldHVybnt0b3A6dC50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKmkrdGhpcy5vZmZzZXQucGFyZW50LnRvcCppLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLnRvcDpzPzA6dGhpcy5vZmZzZXQuc2Nyb2xsLnRvcCkqaSxsZWZ0OnQubGVmdCt0aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0KmkrdGhpcy5vZmZzZXQucGFyZW50LmxlZnQqaS0oImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0OnM/MDp0aGlzLm9mZnNldC5zY3JvbGwubGVmdCkqaX19LF9nZW5lcmF0ZVBvc2l0aW9uOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuLGEsbz10aGlzLm9wdGlvbnMscj10aGlzLl9pc1Jvb3ROb2RlKHRoaXMuc2Nyb2xsUGFyZW50WzBdKSxoPWUucGFnZVgsbD1lLnBhZ2VZO3JldHVybiByJiZ0aGlzLm9mZnNldC5zY3JvbGx8fCh0aGlzLm9mZnNldC5zY3JvbGw9e3RvcDp0aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxUb3AoKSxsZWZ0OnRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbExlZnQoKX0pLHQmJih0aGlzLmNvbnRhaW5tZW50JiYodGhpcy5yZWxhdGl2ZUNvbnRhaW5lcj8ocz10aGlzLnJlbGF0aXZlQ29udGFpbmVyLm9mZnNldCgpLGk9W3RoaXMuY29udGFpbm1lbnRbMF0rcy5sZWZ0LHRoaXMuY29udGFpbm1lbnRbMV0rcy50b3AsdGhpcy5jb250YWlubWVudFsyXStzLmxlZnQsdGhpcy5jb250YWlubWVudFszXStzLnRvcF0pOmk9dGhpcy5jb250YWlubWVudCxlLnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8aVswXSYmKGg9aVswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSxlLnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDxpWzFdJiYobD1pWzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksZS5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PmlbMl0mJihoPWlbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksZS5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+aVszXSYmKGw9aVszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxvLmdyaWQmJihuPW8uZ3JpZFsxXT90aGlzLm9yaWdpbmFsUGFnZVkrTWF0aC5yb3VuZCgobC10aGlzLm9yaWdpbmFsUGFnZVkpL28uZ3JpZFsxXSkqby5ncmlkWzFdOnRoaXMub3JpZ2luYWxQYWdlWSxsPWk/bi10aGlzLm9mZnNldC5jbGljay50b3A+PWlbMV18fG4tdGhpcy5vZmZzZXQuY2xpY2sudG9wPmlbM10/bjpuLXRoaXMub2Zmc2V0LmNsaWNrLnRvcD49aVsxXT9uLW8uZ3JpZFsxXTpuK28uZ3JpZFsxXTpuLGE9by5ncmlkWzBdP3RoaXMub3JpZ2luYWxQYWdlWCtNYXRoLnJvdW5kKChoLXRoaXMub3JpZ2luYWxQYWdlWCkvby5ncmlkWzBdKSpvLmdyaWRbMF06dGhpcy5vcmlnaW5hbFBhZ2VYLGg9aT9hLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PWlbMF18fGEtdGhpcy5vZmZzZXQuY2xpY2subGVmdD5pWzJdP2E6YS10aGlzLm9mZnNldC5jbGljay5sZWZ0Pj1pWzBdP2Etby5ncmlkWzBdOmErby5ncmlkWzBdOmEpLCJ5Ij09PW8uYXhpcyYmKGg9dGhpcy5vcmlnaW5hbFBhZ2VYKSwieCI9PT1vLmF4aXMmJihsPXRoaXMub3JpZ2luYWxQYWdlWSkpLHt0b3A6bC10aGlzLm9mZnNldC5jbGljay50b3AtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3ArKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLm9mZnNldC5zY3JvbGwudG9wOnI/MDp0aGlzLm9mZnNldC5zY3JvbGwudG9wKSxsZWZ0OmgtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5vZmZzZXQuc2Nyb2xsLmxlZnQ6cj8wOnRoaXMub2Zmc2V0LnNjcm9sbC5sZWZ0KX19LF9jbGVhcjpmdW5jdGlvbigpe3RoaXMuaGVscGVyLnJlbW92ZUNsYXNzKCJ1aS1kcmFnZ2FibGUtZHJhZ2dpbmciKSx0aGlzLmhlbHBlclswXT09PXRoaXMuZWxlbWVudFswXXx8dGhpcy5jYW5jZWxIZWxwZXJSZW1vdmFsfHx0aGlzLmhlbHBlci5yZW1vdmUoKSx0aGlzLmhlbHBlcj1udWxsLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSx0aGlzLmRlc3Ryb3lPbkNsZWFyJiZ0aGlzLmRlc3Ryb3koKX0sX25vcm1hbGl6ZVJpZ2h0Qm90dG9tOmZ1bmN0aW9uKCl7InkiIT09dGhpcy5vcHRpb25zLmF4aXMmJiJhdXRvIiE9PXRoaXMuaGVscGVyLmNzcygicmlnaHQiKSYmKHRoaXMuaGVscGVyLndpZHRoKHRoaXMuaGVscGVyLndpZHRoKCkpLHRoaXMuaGVscGVyLmNzcygicmlnaHQiLCJhdXRvIikpLCJ4IiE9PXRoaXMub3B0aW9ucy5heGlzJiYiYXV0byIhPT10aGlzLmhlbHBlci5jc3MoImJvdHRvbSIpJiYodGhpcy5oZWxwZXIuaGVpZ2h0KHRoaXMuaGVscGVyLmhlaWdodCgpKSx0aGlzLmhlbHBlci5jc3MoImJvdHRvbSIsImF1dG8iKSl9LF90cmlnZ2VyOmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gcz1zfHx0aGlzLl91aUhhc2goKSxlLnVpLnBsdWdpbi5jYWxsKHRoaXMsdCxbaSxzLHRoaXNdLCEwKSwvXihkcmFnfHN0YXJ0fHN0b3ApLy50ZXN0KHQpJiYodGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSxzLm9mZnNldD10aGlzLnBvc2l0aW9uQWJzKSxlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuY2FsbCh0aGlzLHQsaSxzKX0scGx1Z2luczp7fSxfdWlIYXNoOmZ1bmN0aW9uKCl7cmV0dXJue2hlbHBlcjp0aGlzLmhlbHBlcixwb3NpdGlvbjp0aGlzLnBvc2l0aW9uLG9yaWdpbmFsUG9zaXRpb246dGhpcy5vcmlnaW5hbFBvc2l0aW9uLG9mZnNldDp0aGlzLnBvc2l0aW9uQWJzfX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsImNvbm5lY3RUb1NvcnRhYmxlIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUuZXh0ZW5kKHt9LGkse2l0ZW06cy5lbGVtZW50fSk7cy5zb3J0YWJsZXM9W10sZShzLm9wdGlvbnMuY29ubmVjdFRvU29ydGFibGUpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLnNvcnRhYmxlKCJpbnN0YW5jZSIpO2kmJiFpLm9wdGlvbnMuZGlzYWJsZWQmJihzLnNvcnRhYmxlcy5wdXNoKGkpLGkucmVmcmVzaFBvc2l0aW9ucygpLGkuX3RyaWdnZXIoImFjdGl2YXRlIix0LG4pKX0pfSxzdG9wOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lLmV4dGVuZCh7fSxpLHtpdGVtOnMuZWxlbWVudH0pO3MuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt2YXIgZT10aGlzO2UuaXNPdmVyPyhlLmlzT3Zlcj0wLHMuY2FuY2VsSGVscGVyUmVtb3ZhbD0hMCxlLmNhbmNlbEhlbHBlclJlbW92YWw9ITEsZS5fc3RvcmVkQ1NTPXtwb3NpdGlvbjplLnBsYWNlaG9sZGVyLmNzcygicG9zaXRpb24iKSx0b3A6ZS5wbGFjZWhvbGRlci5jc3MoInRvcCIpLGxlZnQ6ZS5wbGFjZWhvbGRlci5jc3MoImxlZnQiKX0sZS5fbW91c2VTdG9wKHQpLGUub3B0aW9ucy5oZWxwZXI9ZS5vcHRpb25zLl9oZWxwZXIpOihlLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsZS5fdHJpZ2dlcigiZGVhY3RpdmF0ZSIsdCxuKSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7ZS5lYWNoKHMuc29ydGFibGVzLGZ1bmN0aW9uKCl7dmFyIG49ITEsYT10aGlzO2EucG9zaXRpb25BYnM9cy5wb3NpdGlvbkFicyxhLmhlbHBlclByb3BvcnRpb25zPXMuaGVscGVyUHJvcG9ydGlvbnMsYS5vZmZzZXQuY2xpY2s9cy5vZmZzZXQuY2xpY2ssYS5faW50ZXJzZWN0c1dpdGgoYS5jb250YWluZXJDYWNoZSkmJihuPSEwLGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uQWJzPXMucG9zaXRpb25BYnMsdGhpcy5oZWxwZXJQcm9wb3J0aW9ucz1zLmhlbHBlclByb3BvcnRpb25zLHRoaXMub2Zmc2V0LmNsaWNrPXMub2Zmc2V0LmNsaWNrLHRoaXMhPT1hJiZ0aGlzLl9pbnRlcnNlY3RzV2l0aCh0aGlzLmNvbnRhaW5lckNhY2hlKSYmZS5jb250YWlucyhhLmVsZW1lbnRbMF0sdGhpcy5lbGVtZW50WzBdKSYmKG49ITEpLG4KfSkpLG4/KGEuaXNPdmVyfHwoYS5pc092ZXI9MSxzLl9wYXJlbnQ9aS5oZWxwZXIucGFyZW50KCksYS5jdXJyZW50SXRlbT1pLmhlbHBlci5hcHBlbmRUbyhhLmVsZW1lbnQpLmRhdGEoInVpLXNvcnRhYmxlLWl0ZW0iLCEwKSxhLm9wdGlvbnMuX2hlbHBlcj1hLm9wdGlvbnMuaGVscGVyLGEub3B0aW9ucy5oZWxwZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaS5oZWxwZXJbMF19LHQudGFyZ2V0PWEuY3VycmVudEl0ZW1bMF0sYS5fbW91c2VDYXB0dXJlKHQsITApLGEuX21vdXNlU3RhcnQodCwhMCwhMCksYS5vZmZzZXQuY2xpY2sudG9wPXMub2Zmc2V0LmNsaWNrLnRvcCxhLm9mZnNldC5jbGljay5sZWZ0PXMub2Zmc2V0LmNsaWNrLmxlZnQsYS5vZmZzZXQucGFyZW50LmxlZnQtPXMub2Zmc2V0LnBhcmVudC5sZWZ0LWEub2Zmc2V0LnBhcmVudC5sZWZ0LGEub2Zmc2V0LnBhcmVudC50b3AtPXMub2Zmc2V0LnBhcmVudC50b3AtYS5vZmZzZXQucGFyZW50LnRvcCxzLl90cmlnZ2VyKCJ0b1NvcnRhYmxlIix0KSxzLmRyb3BwZWQ9YS5lbGVtZW50LGUuZWFjaChzLnNvcnRhYmxlcyxmdW5jdGlvbigpe3RoaXMucmVmcmVzaFBvc2l0aW9ucygpfSkscy5jdXJyZW50SXRlbT1zLmVsZW1lbnQsYS5mcm9tT3V0c2lkZT1zKSxhLmN1cnJlbnRJdGVtJiYoYS5fbW91c2VEcmFnKHQpLGkucG9zaXRpb249YS5wb3NpdGlvbikpOmEuaXNPdmVyJiYoYS5pc092ZXI9MCxhLmNhbmNlbEhlbHBlclJlbW92YWw9ITAsYS5vcHRpb25zLl9yZXZlcnQ9YS5vcHRpb25zLnJldmVydCxhLm9wdGlvbnMucmV2ZXJ0PSExLGEuX3RyaWdnZXIoIm91dCIsdCxhLl91aUhhc2goYSkpLGEuX21vdXNlU3RvcCh0LCEwKSxhLm9wdGlvbnMucmV2ZXJ0PWEub3B0aW9ucy5fcmV2ZXJ0LGEub3B0aW9ucy5oZWxwZXI9YS5vcHRpb25zLl9oZWxwZXIsYS5wbGFjZWhvbGRlciYmYS5wbGFjZWhvbGRlci5yZW1vdmUoKSxpLmhlbHBlci5hcHBlbmRUbyhzLl9wYXJlbnQpLHMuX3JlZnJlc2hPZmZzZXRzKHQpLGkucG9zaXRpb249cy5fZ2VuZXJhdGVQb3NpdGlvbih0LCEwKSxzLl90cmlnZ2VyKCJmcm9tU29ydGFibGUiLHQpLHMuZHJvcHBlZD0hMSxlLmVhY2gocy5zb3J0YWJsZXMsZnVuY3Rpb24oKXt0aGlzLnJlZnJlc2hQb3NpdGlvbnMoKX0pKX0pfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwiY3Vyc29yIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPWUoImJvZHkiKSxhPXMub3B0aW9ucztuLmNzcygiY3Vyc29yIikmJihhLl9jdXJzb3I9bi5jc3MoImN1cnNvciIpKSxuLmNzcygiY3Vyc29yIixhLmN1cnNvcil9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl9jdXJzb3ImJmUoImJvZHkiKS5jc3MoImN1cnNvciIsbi5fY3Vyc29yKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsIm9wYWNpdHkiLHtzdGFydDpmdW5jdGlvbih0LGkscyl7dmFyIG49ZShpLmhlbHBlciksYT1zLm9wdGlvbnM7bi5jc3MoIm9wYWNpdHkiKSYmKGEuX29wYWNpdHk9bi5jc3MoIm9wYWNpdHkiKSksbi5jc3MoIm9wYWNpdHkiLGEub3BhY2l0eSl9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl9vcGFjaXR5JiZlKGkuaGVscGVyKS5jc3MoIm9wYWNpdHkiLG4uX29wYWNpdHkpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic2Nyb2xsIix7c3RhcnQ6ZnVuY3Rpb24oZSx0LGkpe2kuc2Nyb2xsUGFyZW50Tm90SGlkZGVufHwoaS5zY3JvbGxQYXJlbnROb3RIaWRkZW49aS5oZWxwZXIuc2Nyb2xsUGFyZW50KCExKSksaS5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0hPT1pLmRvY3VtZW50WzBdJiYiSFRNTCIhPT1pLnNjcm9sbFBhcmVudE5vdEhpZGRlblswXS50YWdOYW1lJiYoaS5vdmVyZmxvd09mZnNldD1pLnNjcm9sbFBhcmVudE5vdEhpZGRlbi5vZmZzZXQoKSl9LGRyYWc6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucyxhPSExLG89cy5zY3JvbGxQYXJlbnROb3RIaWRkZW5bMF0scj1zLmRvY3VtZW50WzBdO28hPT1yJiYiSFRNTCIhPT1vLnRhZ05hbWU/KG4uYXhpcyYmIngiPT09bi5heGlzfHwocy5vdmVyZmxvd09mZnNldC50b3Arby5vZmZzZXRIZWlnaHQtdC5wYWdlWTxuLnNjcm9sbFNlbnNpdGl2aXR5P28uc2Nyb2xsVG9wPWE9by5zY3JvbGxUb3Arbi5zY3JvbGxTcGVlZDp0LnBhZ2VZLXMub3ZlcmZsb3dPZmZzZXQudG9wPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihvLnNjcm9sbFRvcD1hPW8uc2Nyb2xsVG9wLW4uc2Nyb2xsU3BlZWQpKSxuLmF4aXMmJiJ5Ij09PW4uYXhpc3x8KHMub3ZlcmZsb3dPZmZzZXQubGVmdCtvLm9mZnNldFdpZHRoLXQucGFnZVg8bi5zY3JvbGxTZW5zaXRpdml0eT9vLnNjcm9sbExlZnQ9YT1vLnNjcm9sbExlZnQrbi5zY3JvbGxTcGVlZDp0LnBhZ2VYLXMub3ZlcmZsb3dPZmZzZXQubGVmdDxuLnNjcm9sbFNlbnNpdGl2aXR5JiYoby5zY3JvbGxMZWZ0PWE9by5zY3JvbGxMZWZ0LW4uc2Nyb2xsU3BlZWQpKSk6KG4uYXhpcyYmIngiPT09bi5heGlzfHwodC5wYWdlWS1lKHIpLnNjcm9sbFRvcCgpPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/YT1lKHIpLnNjcm9sbFRvcChlKHIpLnNjcm9sbFRvcCgpLW4uc2Nyb2xsU3BlZWQpOmUod2luZG93KS5oZWlnaHQoKS0odC5wYWdlWS1lKHIpLnNjcm9sbFRvcCgpKTxuLnNjcm9sbFNlbnNpdGl2aXR5JiYoYT1lKHIpLnNjcm9sbFRvcChlKHIpLnNjcm9sbFRvcCgpK24uc2Nyb2xsU3BlZWQpKSksbi5heGlzJiYieSI9PT1uLmF4aXN8fCh0LnBhZ2VYLWUocikuc2Nyb2xsTGVmdCgpPG4uc2Nyb2xsU2Vuc2l0aXZpdHk/YT1lKHIpLnNjcm9sbExlZnQoZShyKS5zY3JvbGxMZWZ0KCktbi5zY3JvbGxTcGVlZCk6ZSh3aW5kb3cpLndpZHRoKCktKHQucGFnZVgtZShyKS5zY3JvbGxMZWZ0KCkpPG4uc2Nyb2xsU2Vuc2l0aXZpdHkmJihhPWUocikuc2Nyb2xsTGVmdChlKHIpLnNjcm9sbExlZnQoKStuLnNjcm9sbFNwZWVkKSkpKSxhIT09ITEmJmUudWkuZGRtYW5hZ2VyJiYhbi5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyhzLHQpfX0pLGUudWkucGx1Z2luLmFkZCgiZHJhZ2dhYmxlIiwic25hcCIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1zLm9wdGlvbnM7cy5zbmFwRWxlbWVudHM9W10sZShuLnNuYXAuY29uc3RydWN0b3IhPT1TdHJpbmc/bi5zbmFwLml0ZW1zfHwiOmRhdGEodWktZHJhZ2dhYmxlKSI6bi5zbmFwKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKSxpPXQub2Zmc2V0KCk7dGhpcyE9PXMuZWxlbWVudFswXSYmcy5zbmFwRWxlbWVudHMucHVzaCh7aXRlbTp0aGlzLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOmkudG9wLGxlZnQ6aS5sZWZ0fSl9KX0sZHJhZzpmdW5jdGlvbih0LGkscyl7dmFyIG4sYSxvLHIsaCxsLHUsZCxjLHAsZj1zLm9wdGlvbnMsbT1mLnNuYXBUb2xlcmFuY2UsZz1pLm9mZnNldC5sZWZ0LHY9ZytzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLHk9aS5vZmZzZXQudG9wLGI9eStzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodDtmb3IoYz1zLnNuYXBFbGVtZW50cy5sZW5ndGgtMTtjPj0wO2MtLSloPXMuc25hcEVsZW1lbnRzW2NdLmxlZnQtcy5tYXJnaW5zLmxlZnQsbD1oK3Muc25hcEVsZW1lbnRzW2NdLndpZHRoLHU9cy5zbmFwRWxlbWVudHNbY10udG9wLXMubWFyZ2lucy50b3AsZD11K3Muc25hcEVsZW1lbnRzW2NdLmhlaWdodCxoLW0+dnx8Zz5sK218fHUtbT5ifHx5PmQrbXx8IWUuY29udGFpbnMocy5zbmFwRWxlbWVudHNbY10uaXRlbS5vd25lckRvY3VtZW50LHMuc25hcEVsZW1lbnRzW2NdLml0ZW0pPyhzLnNuYXBFbGVtZW50c1tjXS5zbmFwcGluZyYmcy5vcHRpb25zLnNuYXAucmVsZWFzZSYmcy5vcHRpb25zLnNuYXAucmVsZWFzZS5jYWxsKHMuZWxlbWVudCx0LGUuZXh0ZW5kKHMuX3VpSGFzaCgpLHtzbmFwSXRlbTpzLnNuYXBFbGVtZW50c1tjXS5pdGVtfSkpLHMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nPSExKTooImlubmVyIiE9PWYuc25hcE1vZGUmJihuPW0+PU1hdGguYWJzKHUtYiksYT1tPj1NYXRoLmFicyhkLXkpLG89bT49TWF0aC5hYnMoaC12KSxyPW0+PU1hdGguYWJzKGwtZyksbiYmKGkucG9zaXRpb24udG9wPXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDp1LXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGxlZnQ6MH0pLnRvcCksYSYmKGkucG9zaXRpb24udG9wPXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDpkLGxlZnQ6MH0pLnRvcCksbyYmKGkucG9zaXRpb24ubGVmdD1zLl9jb252ZXJ0UG9zaXRpb25UbygicmVsYXRpdmUiLHt0b3A6MCxsZWZ0Omgtcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aH0pLmxlZnQpLHImJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsfSkubGVmdCkpLHA9bnx8YXx8b3x8ciwib3V0ZXIiIT09Zi5zbmFwTW9kZSYmKG49bT49TWF0aC5hYnModS15KSxhPW0+PU1hdGguYWJzKGQtYiksbz1tPj1NYXRoLmFicyhoLWcpLHI9bT49TWF0aC5hYnMobC12KSxuJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOnUsbGVmdDowfSkudG9wKSxhJiYoaS5wb3NpdGlvbi50b3A9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOmQtcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsbGVmdDowfSkudG9wKSxvJiYoaS5wb3NpdGlvbi5sZWZ0PXMuX2NvbnZlcnRQb3NpdGlvblRvKCJyZWxhdGl2ZSIse3RvcDowLGxlZnQ6aH0pLmxlZnQpLHImJihpLnBvc2l0aW9uLmxlZnQ9cy5fY29udmVydFBvc2l0aW9uVG8oInJlbGF0aXZlIix7dG9wOjAsbGVmdDpsLXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGh9KS5sZWZ0KSksIXMuc25hcEVsZW1lbnRzW2NdLnNuYXBwaW5nJiYobnx8YXx8b3x8cnx8cCkmJnMub3B0aW9ucy5zbmFwLnNuYXAmJnMub3B0aW9ucy5zbmFwLnNuYXAuY2FsbChzLmVsZW1lbnQsdCxlLmV4dGVuZChzLl91aUhhc2goKSx7c25hcEl0ZW06cy5zbmFwRWxlbWVudHNbY10uaXRlbX0pKSxzLnNuYXBFbGVtZW50c1tjXS5zbmFwcGluZz1ufHxhfHxvfHxyfHxwKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInN0YWNrIix7c3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGE9cy5vcHRpb25zLG89ZS5tYWtlQXJyYXkoZShhLnN0YWNrKSkuc29ydChmdW5jdGlvbih0LGkpe3JldHVybihwYXJzZUludChlKHQpLmNzcygiekluZGV4IiksMTApfHwwKS0ocGFyc2VJbnQoZShpKS5jc3MoInpJbmRleCIpLDEwKXx8MCl9KTtvLmxlbmd0aCYmKG49cGFyc2VJbnQoZShvWzBdKS5jc3MoInpJbmRleCIpLDEwKXx8MCxlKG8pLmVhY2goZnVuY3Rpb24odCl7ZSh0aGlzKS5jc3MoInpJbmRleCIsbit0KX0pLHRoaXMuY3NzKCJ6SW5kZXgiLG4rby5sZW5ndGgpKX19KSxlLnVpLnBsdWdpbi5hZGQoImRyYWdnYWJsZSIsInpJbmRleCIse3N0YXJ0OmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj1lKGkuaGVscGVyKSxhPXMub3B0aW9ucztuLmNzcygiekluZGV4IikmJihhLl96SW5kZXg9bi5jc3MoInpJbmRleCIpKSxuLmNzcygiekluZGV4IixhLnpJbmRleCl9LHN0b3A6ZnVuY3Rpb24odCxpLHMpe3ZhciBuPXMub3B0aW9ucztuLl96SW5kZXgmJmUoaS5oZWxwZXIpLmNzcygiekluZGV4IixuLl96SW5kZXgpfX0pLGUudWkuZHJhZ2dhYmxlLGUud2lkZ2V0KCJ1aS5kcm9wcGFibGUiLHt2ZXJzaW9uOiIxLjExLjQiLHdpZGdldEV2ZW50UHJlZml4OiJkcm9wIixvcHRpb25zOnthY2NlcHQ6IioiLGFjdGl2ZUNsYXNzOiExLGFkZENsYXNzZXM6ITAsZ3JlZWR5OiExLGhvdmVyQ2xhc3M6ITEsc2NvcGU6ImRlZmF1bHQiLHRvbGVyYW5jZToiaW50ZXJzZWN0IixhY3RpdmF0ZTpudWxsLGRlYWN0aXZhdGU6bnVsbCxkcm9wOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaT10aGlzLm9wdGlvbnMscz1pLmFjY2VwdDt0aGlzLmlzb3Zlcj0hMSx0aGlzLmlzb3V0PSEwLHRoaXMuYWNjZXB0PWUuaXNGdW5jdGlvbihzKT9zOmZ1bmN0aW9uKGUpe3JldHVybiBlLmlzKHMpfSx0aGlzLnByb3BvcnRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9YXJndW1lbnRzWzBdLHZvaWQgMCk6dD90OnQ9e3dpZHRoOnRoaXMuZWxlbWVudFswXS5vZmZzZXRXaWR0aCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLm9mZnNldEhlaWdodH19LHRoaXMuX2FkZFRvTWFuYWdlcihpLnNjb3BlKSxpLmFkZENsYXNzZXMmJnRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktZHJvcHBhYmxlIil9LF9hZGRUb01hbmFnZXI6ZnVuY3Rpb24odCl7ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0XT1lLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdfHxbXSxlLnVpLmRkbWFuYWdlci5kcm9wcGFibGVzW3RdLnB1c2godGhpcyl9LF9zcGxpY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTA7ZS5sZW5ndGg+dDt0KyspZVt0XT09PXRoaXMmJmUuc3BsaWNlKHQsMSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZSh0KSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWRyb3BwYWJsZSB1aS1kcm9wcGFibGUtZGlzYWJsZWQiKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe2lmKCJhY2NlcHQiPT09dCl0aGlzLmFjY2VwdD1lLmlzRnVuY3Rpb24oaSk/aTpmdW5jdGlvbihlKXtyZXR1cm4gZS5pcyhpKX07ZWxzZSBpZigic2NvcGUiPT09dCl7dmFyIHM9ZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0aGlzLm9wdGlvbnMuc2NvcGVdO3RoaXMuX3NwbGljZShzKSx0aGlzLl9hZGRUb01hbmFnZXIoaSl9dGhpcy5fc3VwZXIodCxpKX0sX2FjdGl2YXRlOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7dGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3ModGhpcy5vcHRpb25zLmFjdGl2ZUNsYXNzKSxpJiZ0aGlzLl90cmlnZ2VyKCJhY3RpdmF0ZSIsdCx0aGlzLnVpKGkpKX0sX2RlYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9ZS51aS5kZG1hbmFnZXIuY3VycmVudDt0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuYWN0aXZlQ2xhc3MpLGkmJnRoaXMuX3RyaWdnZXIoImRlYWN0aXZhdGUiLHQsdGhpcy51aShpKSl9LF9vdmVyOmZ1bmN0aW9uKHQpe3ZhciBpPWUudWkuZGRtYW5hZ2VyLmN1cnJlbnQ7aSYmKGkuY3VycmVudEl0ZW18fGkuZWxlbWVudClbMF0hPT10aGlzLmVsZW1lbnRbMF0mJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLGkuY3VycmVudEl0ZW18fGkuZWxlbWVudCkmJih0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyYmdGhpcy5lbGVtZW50LmFkZENsYXNzKHRoaXMub3B0aW9ucy5ob3ZlckNsYXNzKSx0aGlzLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMudWkoaSkpKX0sX291dDpmdW5jdGlvbih0KXt2YXIgaT1lLnVpLmRkbWFuYWdlci5jdXJyZW50O2kmJihpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLmFjY2VwdC5jYWxsKHRoaXMuZWxlbWVudFswXSxpLmN1cnJlbnRJdGVtfHxpLmVsZW1lbnQpJiYodGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigib3V0Iix0LHRoaXMudWkoaSkpKX0sX2Ryb3A6ZnVuY3Rpb24odCxpKXt2YXIgcz1pfHxlLnVpLmRkbWFuYWdlci5jdXJyZW50LG49ITE7cmV0dXJuIHMmJihzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpWzBdIT09dGhpcy5lbGVtZW50WzBdPyh0aGlzLmVsZW1lbnQuZmluZCgiOmRhdGEodWktZHJvcHBhYmxlKSIpLm5vdCgiLnVpLWRyYWdnYWJsZS1kcmFnZ2luZyIpLmVhY2goZnVuY3Rpb24oKXt2YXIgaT1lKHRoaXMpLmRyb3BwYWJsZSgiaW5zdGFuY2UiKTtyZXR1cm4gaS5vcHRpb25zLmdyZWVkeSYmIWkub3B0aW9ucy5kaXNhYmxlZCYmaS5vcHRpb25zLnNjb3BlPT09cy5vcHRpb25zLnNjb3BlJiZpLmFjY2VwdC5jYWxsKGkuZWxlbWVudFswXSxzLmN1cnJlbnRJdGVtfHxzLmVsZW1lbnQpJiZlLnVpLmludGVyc2VjdChzLGUuZXh0ZW5kKGkse29mZnNldDppLmVsZW1lbnQub2Zmc2V0KCl9KSxpLm9wdGlvbnMudG9sZXJhbmNlLHQpPyhuPSEwLCExKTp2b2lkIDB9KSxuPyExOnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLHMuY3VycmVudEl0ZW18fHMuZWxlbWVudCk/KHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyYmdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKHRoaXMub3B0aW9ucy5hY3RpdmVDbGFzcyksdGhpcy5vcHRpb25zLmhvdmVyQ2xhc3MmJnRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaG92ZXJDbGFzcyksdGhpcy5fdHJpZ2dlcigiZHJvcCIsdCx0aGlzLnVpKHMpKSx0aGlzLmVsZW1lbnQpOiExKTohMX0sdWk6ZnVuY3Rpb24oZSl7cmV0dXJue2RyYWdnYWJsZTplLmN1cnJlbnRJdGVtfHxlLmVsZW1lbnQsaGVscGVyOmUuaGVscGVyLHBvc2l0aW9uOmUucG9zaXRpb24sb2Zmc2V0OmUucG9zaXRpb25BYnN9fX0pLGUudWkuaW50ZXJzZWN0PWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHQsaSl7cmV0dXJuIGU+PXQmJnQraT5lfXJldHVybiBmdW5jdGlvbih0LGkscyxuKXtpZighaS5vZmZzZXQpcmV0dXJuITE7dmFyIGE9KHQucG9zaXRpb25BYnN8fHQucG9zaXRpb24uYWJzb2x1dGUpLmxlZnQrdC5tYXJnaW5zLmxlZnQsbz0odC5wb3NpdGlvbkFic3x8dC5wb3NpdGlvbi5hYnNvbHV0ZSkudG9wK3QubWFyZ2lucy50b3Ascj1hK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgsaD1vK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LGw9aS5vZmZzZXQubGVmdCx1PWkub2Zmc2V0LnRvcCxkPWwraS5wcm9wb3J0aW9ucygpLndpZHRoLGM9dStpLnByb3BvcnRpb25zKCkuaGVpZ2h0O3N3aXRjaChzKXtjYXNlImZpdCI6cmV0dXJuIGE+PWwmJmQ+PXImJm8+PXUmJmM+PWg7Y2FzZSJpbnRlcnNlY3QiOnJldHVybiBhK3QuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMj5sJiZkPnItdC5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC8yJiZvK3QuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI+dSYmYz5oLXQuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LzI7Y2FzZSJwb2ludGVyIjpyZXR1cm4gZShuLnBhZ2VZLHUsaS5wcm9wb3J0aW9ucygpLmhlaWdodCkmJmUobi5wYWdlWCxsLGkucHJvcG9ydGlvbnMoKS53aWR0aCk7Y2FzZSJ0b3VjaCI6cmV0dXJuKG8+PXUmJmM+PW98fGg+PXUmJmM+PWh8fHU+byYmaD5jKSYmKGE+PWwmJmQ+PWF8fHI+PWwmJmQ+PXJ8fGw+YSYmcj5kKTtkZWZhdWx0OnJldHVybiExfX19KCksZS51aS5kZG1hbmFnZXI9e2N1cnJlbnQ6bnVsbCxkcm9wcGFibGVzOnsiZGVmYXVsdCI6W119LHByZXBhcmVPZmZzZXRzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhPWUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10sbz1pP2kudHlwZTpudWxsLHI9KHQuY3VycmVudEl0ZW18fHQuZWxlbWVudCkuZmluZCgiOmRhdGEodWktZHJvcHBhYmxlKSIpLmFkZEJhY2soKTtlOmZvcihzPTA7YS5sZW5ndGg+cztzKyspaWYoIShhW3NdLm9wdGlvbnMuZGlzYWJsZWR8fHQmJiFhW3NdLmFjY2VwdC5jYWxsKGFbc10uZWxlbWVudFswXSx0LmN1cnJlbnRJdGVtfHx0LmVsZW1lbnQpKSl7Zm9yKG49MDtyLmxlbmd0aD5uO24rKylpZihyW25dPT09YVtzXS5lbGVtZW50WzBdKXthW3NdLnByb3BvcnRpb25zKCkuaGVpZ2h0PTA7Y29udGludWUgZX1hW3NdLnZpc2libGU9Im5vbmUiIT09YVtzXS5lbGVtZW50LmNzcygiZGlzcGxheSIpLGFbc10udmlzaWJsZSYmKCJtb3VzZWRvd24iPT09byYmYVtzXS5fYWN0aXZhdGUuY2FsbChhW3NdLGkpLGFbc10ub2Zmc2V0PWFbc10uZWxlbWVudC5vZmZzZXQoKSxhW3NdLnByb3BvcnRpb25zKHt3aWR0aDphW3NdLmVsZW1lbnRbMF0ub2Zmc2V0V2lkdGgsaGVpZ2h0OmFbc10uZWxlbWVudFswXS5vZmZzZXRIZWlnaHR9KSl9fSxkcm9wOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ITE7cmV0dXJuIGUuZWFjaCgoZS51aS5kZG1hbmFnZXIuZHJvcHBhYmxlc1t0Lm9wdGlvbnMuc2NvcGVdfHxbXSkuc2xpY2UoKSxmdW5jdGlvbigpe3RoaXMub3B0aW9ucyYmKCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMudmlzaWJsZSYmZS51aS5pbnRlcnNlY3QodCx0aGlzLHRoaXMub3B0aW9ucy50b2xlcmFuY2UsaSkmJihzPXRoaXMuX2Ryb3AuY2FsbCh0aGlzLGkpfHxzKSwhdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLnZpc2libGUmJnRoaXMuYWNjZXB0LmNhbGwodGhpcy5lbGVtZW50WzBdLHQuY3VycmVudEl0ZW18fHQuZWxlbWVudCkmJih0aGlzLmlzb3V0PSEwLHRoaXMuaXNvdmVyPSExLHRoaXMuX2RlYWN0aXZhdGUuY2FsbCh0aGlzLGkpKSl9KSxzfSxkcmFnU3RhcnQ6ZnVuY3Rpb24odCxpKXt0LmVsZW1lbnQucGFyZW50c1VudGlsKCJib2R5IikuYmluZCgic2Nyb2xsLmRyb3BwYWJsZSIsZnVuY3Rpb24oKXt0Lm9wdGlvbnMucmVmcmVzaFBvc2l0aW9uc3x8ZS51aS5kZG1hbmFnZXIucHJlcGFyZU9mZnNldHModCxpKX0pfSxkcmFnOmZ1bmN0aW9uKHQsaSl7dC5vcHRpb25zLnJlZnJlc2hQb3NpdGlvbnMmJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHQsaSksZS5lYWNoKGUudWkuZGRtYW5hZ2VyLmRyb3BwYWJsZXNbdC5vcHRpb25zLnNjb3BlXXx8W10sZnVuY3Rpb24oKXtpZighdGhpcy5vcHRpb25zLmRpc2FibGVkJiYhdGhpcy5ncmVlZHlDaGlsZCYmdGhpcy52aXNpYmxlKXt2YXIgcyxuLGEsbz1lLnVpLmludGVyc2VjdCh0LHRoaXMsdGhpcy5vcHRpb25zLnRvbGVyYW5jZSxpKSxyPSFvJiZ0aGlzLmlzb3Zlcj8iaXNvdXQiOm8mJiF0aGlzLmlzb3Zlcj8iaXNvdmVyIjpudWxsO3ImJih0aGlzLm9wdGlvbnMuZ3JlZWR5JiYobj10aGlzLm9wdGlvbnMuc2NvcGUsYT10aGlzLmVsZW1lbnQucGFyZW50cygiOmRhdGEodWktZHJvcHBhYmxlKSIpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmRyb3BwYWJsZSgiaW5zdGFuY2UiKS5vcHRpb25zLnNjb3BlPT09bn0pLGEubGVuZ3RoJiYocz1lKGFbMF0pLmRyb3BwYWJsZSgiaW5zdGFuY2UiKSxzLmdyZWVkeUNoaWxkPSJpc292ZXIiPT09cikpLHMmJiJpc292ZXIiPT09ciYmKHMuaXNvdmVyPSExLHMuaXNvdXQ9ITAscy5fb3V0LmNhbGwocyxpKSksdGhpc1tyXT0hMCx0aGlzWyJpc291dCI9PT1yPyJpc292ZXIiOiJpc291dCJdPSExLHRoaXNbImlzb3ZlciI9PT1yPyJfb3ZlciI6Il9vdXQiXS5jYWxsKHRoaXMsaSkscyYmImlzb3V0Ij09PXImJihzLmlzb3V0PSExLHMuaXNvdmVyPSEwLHMuX292ZXIuY2FsbChzLGkpKSl9fSl9LGRyYWdTdG9wOmZ1bmN0aW9uKHQsaSl7dC5lbGVtZW50LnBhcmVudHNVbnRpbCgiYm9keSIpLnVuYmluZCgic2Nyb2xsLmRyb3BwYWJsZSIpLHQub3B0aW9ucy5yZWZyZXNoUG9zaXRpb25zfHxlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0LGkpfX0sZS51aS5kcm9wcGFibGUsZS53aWRnZXQoInVpLnJlc2l6YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoicmVzaXplIixvcHRpb25zOnthbHNvUmVzaXplOiExLGFuaW1hdGU6ITEsYW5pbWF0ZUR1cmF0aW9uOiJzbG93IixhbmltYXRlRWFzaW5nOiJzd2luZyIsYXNwZWN0UmF0aW86ITEsYXV0b0hpZGU6ITEsY29udGFpbm1lbnQ6ITEsZ2hvc3Q6ITEsZ3JpZDohMSxoYW5kbGVzOiJlLHMsc2UiLGhlbHBlcjohMSxtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxMCxtaW5XaWR0aDoxMCx6SW5kZXg6OTAscmVzaXplOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9udW06ZnVuY3Rpb24oZSl7cmV0dXJuIHBhcnNlSW50KGUsMTApfHwwfSxfaXNOdW1iZXI6ZnVuY3Rpb24oZSl7cmV0dXJuIWlzTmFOKHBhcnNlSW50KGUsMTApKX0sX2hhc1Njcm9sbDpmdW5jdGlvbih0LGkpe2lmKCJoaWRkZW4iPT09ZSh0KS5jc3MoIm92ZXJmbG93IikpcmV0dXJuITE7dmFyIHM9aSYmImxlZnQiPT09aT8ic2Nyb2xsTGVmdCI6InNjcm9sbFRvcCIsbj0hMTtyZXR1cm4gdFtzXT4wPyEwOih0W3NdPTEsbj10W3NdPjAsdFtzXT0wLG4pfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG4sYSxvPXRoaXMscj10aGlzLm9wdGlvbnM7aWYodGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1yZXNpemFibGUiKSxlLmV4dGVuZCh0aGlzLHtfYXNwZWN0UmF0aW86ISFyLmFzcGVjdFJhdGlvLGFzcGVjdFJhdGlvOnIuYXNwZWN0UmF0aW8sb3JpZ2luYWxFbGVtZW50OnRoaXMuZWxlbWVudCxfcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50czpbXSxfaGVscGVyOnIuaGVscGVyfHxyLmdob3N0fHxyLmFuaW1hdGU/ci5oZWxwZXJ8fCJ1aS1yZXNpemFibGUtaGVscGVyIjpudWxsfSksdGhpcy5lbGVtZW50WzBdLm5vZGVOYW1lLm1hdGNoKC9eKGNhbnZhc3x0ZXh0YXJlYXxpbnB1dHxzZWxlY3R8YnV0dG9ufGltZykkL2kpJiYodGhpcy5lbGVtZW50LndyYXAoZSgiPGRpdiBjbGFzcz0ndWktd3JhcHBlcicgc3R5bGU9J292ZXJmbG93OiBoaWRkZW47Jz48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOnRoaXMuZWxlbWVudC5jc3MoInBvc2l0aW9uIiksd2lkdGg6dGhpcy5lbGVtZW50Lm91dGVyV2lkdGgoKSxoZWlnaHQ6dGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCksdG9wOnRoaXMuZWxlbWVudC5jc3MoInRvcCIpLGxlZnQ6dGhpcy5lbGVtZW50LmNzcygibGVmdCIpfSkpLHRoaXMuZWxlbWVudD10aGlzLmVsZW1lbnQucGFyZW50KCkuZGF0YSgidWktcmVzaXphYmxlIix0aGlzLmVsZW1lbnQucmVzaXphYmxlKCJpbnN0YW5jZSIpKSx0aGlzLmVsZW1lbnRJc1dyYXBwZXI9ITAsdGhpcy5lbGVtZW50LmNzcyh7bWFyZ2luTGVmdDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbkxlZnQiKSxtYXJnaW5Ub3A6dGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJtYXJnaW5Ub3AiKSxtYXJnaW5SaWdodDp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpblJpZ2h0IiksbWFyZ2luQm90dG9tOnRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygibWFyZ2luQm90dG9tIil9KSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbkxlZnQ6MCxtYXJnaW5Ub3A6MCxtYXJnaW5SaWdodDowLG1hcmdpbkJvdHRvbTowfSksdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlPXRoaXMub3JpZ2luYWxFbGVtZW50LmNzcygicmVzaXplIiksdGhpcy5vcmlnaW5hbEVsZW1lbnQuY3NzKCJyZXNpemUiLCJub25lIiksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50cy5wdXNoKHRoaXMub3JpZ2luYWxFbGVtZW50LmNzcyh7cG9zaXRpb246InN0YXRpYyIsem9vbToxLGRpc3BsYXk6ImJsb2NrIn0pKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe21hcmdpbjp0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoIm1hcmdpbiIpfSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5oYW5kbGVzPXIuaGFuZGxlc3x8KGUoIi51aS1yZXNpemFibGUtaGFuZGxlIix0aGlzLmVsZW1lbnQpLmxlbmd0aD97bjoiLnVpLXJlc2l6YWJsZS1uIixlOiIudWktcmVzaXphYmxlLWUiLHM6Ii51aS1yZXNpemFibGUtcyIsdzoiLnVpLXJlc2l6YWJsZS13IixzZToiLnVpLXJlc2l6YWJsZS1zZSIsc3c6Ii51aS1yZXNpemFibGUtc3ciLG5lOiIudWktcmVzaXphYmxlLW5lIixudzoiLnVpLXJlc2l6YWJsZS1udyJ9OiJlLHMsc2UiKSx0aGlzLl9oYW5kbGVzPWUoKSx0aGlzLmhhbmRsZXMuY29uc3RydWN0b3I9PT1TdHJpbmcpZm9yKCJhbGwiPT09dGhpcy5oYW5kbGVzJiYodGhpcy5oYW5kbGVzPSJuLGUscyx3LHNlLHN3LG5lLG53IiksdD10aGlzLmhhbmRsZXMuc3BsaXQoIiwiKSx0aGlzLmhhbmRsZXM9e30saT0wO3QubGVuZ3RoPmk7aSsrKXM9ZS50cmltKHRbaV0pLGE9InVpLXJlc2l6YWJsZS0iK3Msbj1lKCI8ZGl2IGNsYXNzPSd1aS1yZXNpemFibGUtaGFuZGxlICIrYSsiJz48L2Rpdj4iKSxuLmNzcyh7ekluZGV4OnIuekluZGV4fSksInNlIj09PXMmJm4uYWRkQ2xhc3MoInVpLWljb24gdWktaWNvbi1ncmlwc21hbGwtZGlhZ29uYWwtc2UiKSx0aGlzLmhhbmRsZXNbc109Ii51aS1yZXNpemFibGUtIitzLHRoaXMuZWxlbWVudC5hcHBlbmQobik7dGhpcy5fcmVuZGVyQXhpcz1mdW5jdGlvbih0KXt2YXIgaSxzLG4sYTt0PXR8fHRoaXMuZWxlbWVudDtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpdGhpcy5oYW5kbGVzW2ldLmNvbnN0cnVjdG9yPT09U3RyaW5nP3RoaXMuaGFuZGxlc1tpXT10aGlzLmVsZW1lbnQuY2hpbGRyZW4odGhpcy5oYW5kbGVzW2ldKS5maXJzdCgpLnNob3coKToodGhpcy5oYW5kbGVzW2ldLmpxdWVyeXx8dGhpcy5oYW5kbGVzW2ldLm5vZGVUeXBlKSYmKHRoaXMuaGFuZGxlc1tpXT1lKHRoaXMuaGFuZGxlc1tpXSksdGhpcy5fb24odGhpcy5oYW5kbGVzW2ldLHttb3VzZWRvd246by5fbW91c2VEb3dufSkpLHRoaXMuZWxlbWVudElzV3JhcHBlciYmdGhpcy5vcmlnaW5hbEVsZW1lbnRbMF0ubm9kZU5hbWUubWF0Y2goL14odGV4dGFyZWF8aW5wdXR8c2VsZWN0fGJ1dHRvbikkL2kpJiYocz1lKHRoaXMuaGFuZGxlc1tpXSx0aGlzLmVsZW1lbnQpLGE9L3N3fG5lfG53fHNlfG58cy8udGVzdChpKT9zLm91dGVySGVpZ2h0KCk6cy5vdXRlcldpZHRoKCksbj1bInBhZGRpbmciLC9uZXxud3xuLy50ZXN0KGkpPyJUb3AiOi9zZXxzd3xzLy50ZXN0KGkpPyJCb3R0b20iOi9eZSQvLnRlc3QoaSk/IlJpZ2h0IjoiTGVmdCJdLmpvaW4oIiIpLHQuY3NzKG4sYSksdGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemUoKSksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmhhbmRsZXNbaV0pfSx0aGlzLl9yZW5kZXJBeGlzKHRoaXMuZWxlbWVudCksdGhpcy5faGFuZGxlcz10aGlzLl9oYW5kbGVzLmFkZCh0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKSksdGhpcy5faGFuZGxlcy5kaXNhYmxlU2VsZWN0aW9uKCksdGhpcy5faGFuZGxlcy5tb3VzZW92ZXIoZnVuY3Rpb24oKXtvLnJlc2l6aW5nfHwodGhpcy5jbGFzc05hbWUmJihuPXRoaXMuY2xhc3NOYW1lLm1hdGNoKC91aS1yZXNpemFibGUtKHNlfHN3fG5lfG53fG58ZXxzfHcpL2kpKSxvLmF4aXM9biYmblsxXT9uWzFdOiJzZSIpfSksci5hdXRvSGlkZSYmKHRoaXMuX2hhbmRsZXMuaGlkZSgpLGUodGhpcy5lbGVtZW50KS5hZGRDbGFzcygidWktcmVzaXphYmxlLWF1dG9oaWRlIikubW91c2VlbnRlcihmdW5jdGlvbigpe3IuZGlzYWJsZWR8fChlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1yZXNpemFibGUtYXV0b2hpZGUiKSxvLl9oYW5kbGVzLnNob3coKSl9KS5tb3VzZWxlYXZlKGZ1bmN0aW9uKCl7ci5kaXNhYmxlZHx8by5yZXNpemluZ3x8KGUodGhpcykuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1hdXRvaGlkZSIpLG8uX2hhbmRsZXMuaGlkZSgpKX0pKSx0aGlzLl9tb3VzZUluaXQoKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9tb3VzZURlc3Ryb3koKTt2YXIgdCxpPWZ1bmN0aW9uKHQpe2UodCkucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZSB1aS1yZXNpemFibGUtZGlzYWJsZWQgdWktcmVzaXphYmxlLXJlc2l6aW5nIikucmVtb3ZlRGF0YSgicmVzaXphYmxlIikucmVtb3ZlRGF0YSgidWktcmVzaXphYmxlIikudW5iaW5kKCIucmVzaXphYmxlIikuZmluZCgiLnVpLXJlc2l6YWJsZS1oYW5kbGUiKS5yZW1vdmUoKX07cmV0dXJuIHRoaXMuZWxlbWVudElzV3JhcHBlciYmKGkodGhpcy5lbGVtZW50KSx0PXRoaXMuZWxlbWVudCx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3Moe3Bvc2l0aW9uOnQuY3NzKCJwb3NpdGlvbiIpLHdpZHRoOnQub3V0ZXJXaWR0aCgpLGhlaWdodDp0Lm91dGVySGVpZ2h0KCksdG9wOnQuY3NzKCJ0b3AiKSxsZWZ0OnQuY3NzKCJsZWZ0Iil9KS5pbnNlcnRBZnRlcih0KSx0LnJlbW92ZSgpKSx0aGlzLm9yaWdpbmFsRWxlbWVudC5jc3MoInJlc2l6ZSIsdGhpcy5vcmlnaW5hbFJlc2l6ZVN0eWxlKSxpKHRoaXMub3JpZ2luYWxFbGVtZW50KSx0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbj0hMTtmb3IoaSBpbiB0aGlzLmhhbmRsZXMpcz1lKHRoaXMuaGFuZGxlc1tpXSlbMF0sKHM9PT10LnRhcmdldHx8ZS5jb250YWlucyhzLHQudGFyZ2V0KSkmJihuPSEwKTtyZXR1cm4hdGhpcy5vcHRpb25zLmRpc2FibGVkJiZufSxfbW91c2VTdGFydDpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYT10aGlzLm9wdGlvbnMsbz10aGlzLmVsZW1lbnQ7cmV0dXJuIHRoaXMucmVzaXppbmc9ITAsdGhpcy5fcmVuZGVyUHJveHkoKSxpPXRoaXMuX251bSh0aGlzLmhlbHBlci5jc3MoImxlZnQiKSkscz10aGlzLl9udW0odGhpcy5oZWxwZXIuY3NzKCJ0b3AiKSksYS5jb250YWlubWVudCYmKGkrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsTGVmdCgpfHwwLHMrPWUoYS5jb250YWlubWVudCkuc2Nyb2xsVG9wKCl8fDApLHRoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMucG9zaXRpb249e2xlZnQ6aSx0b3A6c30sdGhpcy5zaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6dGhpcy5oZWxwZXIud2lkdGgoKSxoZWlnaHQ6dGhpcy5oZWxwZXIuaGVpZ2h0KCl9Ont3aWR0aDpvLndpZHRoKCksaGVpZ2h0Om8uaGVpZ2h0KCl9LHRoaXMub3JpZ2luYWxTaXplPXRoaXMuX2hlbHBlcj97d2lkdGg6by5vdXRlcldpZHRoKCksaGVpZ2h0Om8ub3V0ZXJIZWlnaHQoKX06e3dpZHRoOm8ud2lkdGgoKSxoZWlnaHQ6by5oZWlnaHQoKX0sdGhpcy5zaXplRGlmZj17d2lkdGg6by5vdXRlcldpZHRoKCktby53aWR0aCgpLGhlaWdodDpvLm91dGVySGVpZ2h0KCktby5oZWlnaHQoKX0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtsZWZ0OmksdG9wOnN9LHRoaXMub3JpZ2luYWxNb3VzZVBvc2l0aW9uPXtsZWZ0OnQucGFnZVgsdG9wOnQucGFnZVl9LHRoaXMuYXNwZWN0UmF0aW89Im51bWJlciI9PXR5cGVvZiBhLmFzcGVjdFJhdGlvP2EuYXNwZWN0UmF0aW86dGhpcy5vcmlnaW5hbFNpemUud2lkdGgvdGhpcy5vcmlnaW5hbFNpemUuaGVpZ2h0fHwxLG49ZSgiLnVpLXJlc2l6YWJsZS0iK3RoaXMuYXhpcykuY3NzKCJjdXJzb3IiKSxlKCJib2R5IikuY3NzKCJjdXJzb3IiLCJhdXRvIj09PW4/dGhpcy5heGlzKyItcmVzaXplIjpuKSxvLmFkZENsYXNzKCJ1aS1yZXNpemFibGUtcmVzaXppbmciKSx0aGlzLl9wcm9wYWdhdGUoInN0YXJ0Iix0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG49dGhpcy5vcmlnaW5hbE1vdXNlUG9zaXRpb24sYT10aGlzLmF4aXMsbz10LnBhZ2VYLW4ubGVmdHx8MCxyPXQucGFnZVktbi50b3B8fDAsaD10aGlzLl9jaGFuZ2VbYV07cmV0dXJuIHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksaD8oaT1oLmFwcGx5KHRoaXMsW3QsbyxyXSksdGhpcy5fdXBkYXRlVmlydHVhbEJvdW5kYXJpZXModC5zaGlmdEtleSksKHRoaXMuX2FzcGVjdFJhdGlvfHx0LnNoaWZ0S2V5KSYmKGk9dGhpcy5fdXBkYXRlUmF0aW8oaSx0KSksaT10aGlzLl9yZXNwZWN0U2l6ZShpLHQpLHRoaXMuX3VwZGF0ZUNhY2hlKGkpLHRoaXMuX3Byb3BhZ2F0ZSgicmVzaXplIix0KSxzPXRoaXMuX2FwcGx5Q2hhbmdlcygpLCF0aGlzLl9oZWxwZXImJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoJiZ0aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZSgpLGUuaXNFbXB0eU9iamVjdChzKXx8KHRoaXMuX3VwZGF0ZVByZXZQcm9wZXJ0aWVzKCksdGhpcy5fdHJpZ2dlcigicmVzaXplIix0LHRoaXMudWkoKSksdGhpcy5fYXBwbHlDaGFuZ2VzKCkpLCExKTohMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0KXt0aGlzLnJlc2l6aW5nPSExO3ZhciBpLHMsbixhLG8scixoLGw9dGhpcy5vcHRpb25zLHU9dGhpcztyZXR1cm4gdGhpcy5faGVscGVyJiYoaT10aGlzLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLHM9aS5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoaVswXS5ub2RlTmFtZSksbj1zJiZ0aGlzLl9oYXNTY3JvbGwoaVswXSwibGVmdCIpPzA6dS5zaXplRGlmZi5oZWlnaHQsYT1zPzA6dS5zaXplRGlmZi53aWR0aCxvPXt3aWR0aDp1LmhlbHBlci53aWR0aCgpLWEsaGVpZ2h0OnUuaGVscGVyLmhlaWdodCgpLW59LHI9cGFyc2VJbnQodS5lbGVtZW50LmNzcygibGVmdCIpLDEwKSsodS5wb3NpdGlvbi5sZWZ0LXUub3JpZ2luYWxQb3NpdGlvbi5sZWZ0KXx8bnVsbCxoPXBhcnNlSW50KHUuZWxlbWVudC5jc3MoInRvcCIpLDEwKSsodS5wb3NpdGlvbi50b3AtdS5vcmlnaW5hbFBvc2l0aW9uLnRvcCl8fG51bGwsbC5hbmltYXRlfHx0aGlzLmVsZW1lbnQuY3NzKGUuZXh0ZW5kKG8se3RvcDpoLGxlZnQ6cn0pKSx1LmhlbHBlci5oZWlnaHQodS5zaXplLmhlaWdodCksdS5oZWxwZXIud2lkdGgodS5zaXplLndpZHRoKSx0aGlzLl9oZWxwZXImJiFsLmFuaW1hdGUmJnRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplKCkpLGUoImJvZHkiKS5jc3MoImN1cnNvciIsImF1dG8iKSx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXJlc2l6YWJsZS1yZXNpemluZyIpLHRoaXMuX3Byb3BhZ2F0ZSgic3RvcCIsdCksdGhpcy5faGVscGVyJiZ0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX0sX3VwZGF0ZVByZXZQcm9wZXJ0aWVzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2UG9zaXRpb249e3RvcDp0aGlzLnBvc2l0aW9uLnRvcCxsZWZ0OnRoaXMucG9zaXRpb24ubGVmdH0sdGhpcy5wcmV2U2l6ZT17d2lkdGg6dGhpcy5zaXplLndpZHRoLGhlaWdodDp0aGlzLnNpemUuaGVpZ2h0fX0sX2FwcGx5Q2hhbmdlczpmdW5jdGlvbigpe3ZhciBlPXt9O3JldHVybiB0aGlzLnBvc2l0aW9uLnRvcCE9PXRoaXMucHJldlBvc2l0aW9uLnRvcCYmKGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLHRoaXMucG9zaXRpb24ubGVmdCE9PXRoaXMucHJldlBvc2l0aW9uLmxlZnQmJihlLmxlZnQ9dGhpcy5wb3NpdGlvbi5sZWZ0KyJweCIpLHRoaXMuc2l6ZS53aWR0aCE9PXRoaXMucHJldlNpemUud2lkdGgmJihlLndpZHRoPXRoaXMuc2l6ZS53aWR0aCsicHgiKSx0aGlzLnNpemUuaGVpZ2h0IT09dGhpcy5wcmV2U2l6ZS5oZWlnaHQmJihlLmhlaWdodD10aGlzLnNpemUuaGVpZ2h0KyJweCIpLHRoaXMuaGVscGVyLmNzcyhlKSxlfSxfdXBkYXRlVmlydHVhbEJvdW5kYXJpZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYSxvPXRoaXMub3B0aW9uczthPXttaW5XaWR0aDp0aGlzLl9pc051bWJlcihvLm1pbldpZHRoKT9vLm1pbldpZHRoOjAsbWF4V2lkdGg6dGhpcy5faXNOdW1iZXIoby5tYXhXaWR0aCk/by5tYXhXaWR0aDoxLzAsbWluSGVpZ2h0OnRoaXMuX2lzTnVtYmVyKG8ubWluSGVpZ2h0KT9vLm1pbkhlaWdodDowLG1heEhlaWdodDp0aGlzLl9pc051bWJlcihvLm1heEhlaWdodCk/by5tYXhIZWlnaHQ6MS8wfSwodGhpcy5fYXNwZWN0UmF0aW98fGUpJiYodD1hLm1pbkhlaWdodCp0aGlzLmFzcGVjdFJhdGlvLHM9YS5taW5XaWR0aC90aGlzLmFzcGVjdFJhdGlvLGk9YS5tYXhIZWlnaHQqdGhpcy5hc3BlY3RSYXRpbyxuPWEubWF4V2lkdGgvdGhpcy5hc3BlY3RSYXRpbyx0PmEubWluV2lkdGgmJihhLm1pbldpZHRoPXQpLHM+YS5taW5IZWlnaHQmJihhLm1pbkhlaWdodD1zKSxhLm1heFdpZHRoPmkmJihhLm1heFdpZHRoPWkpLGEubWF4SGVpZ2h0Pm4mJihhLm1heEhlaWdodD1uKSksdGhpcy5fdkJvdW5kYXJpZXM9YX0sX3VwZGF0ZUNhY2hlOmZ1bmN0aW9uKGUpe3RoaXMub2Zmc2V0PXRoaXMuaGVscGVyLm9mZnNldCgpLHRoaXMuX2lzTnVtYmVyKGUubGVmdCkmJih0aGlzLnBvc2l0aW9uLmxlZnQ9ZS5sZWZ0KSx0aGlzLl9pc051bWJlcihlLnRvcCkmJih0aGlzLnBvc2l0aW9uLnRvcD1lLnRvcCksdGhpcy5faXNOdW1iZXIoZS5oZWlnaHQpJiYodGhpcy5zaXplLmhlaWdodD1lLmhlaWdodCksdGhpcy5faXNOdW1iZXIoZS53aWR0aCkmJih0aGlzLnNpemUud2lkdGg9ZS53aWR0aCl9LF91cGRhdGVSYXRpbzpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uLGk9dGhpcy5zaXplLHM9dGhpcy5heGlzO3JldHVybiB0aGlzLl9pc051bWJlcihlLmhlaWdodCk/ZS53aWR0aD1lLmhlaWdodCp0aGlzLmFzcGVjdFJhdGlvOnRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiYoZS5oZWlnaHQ9ZS53aWR0aC90aGlzLmFzcGVjdFJhdGlvKSwic3ciPT09cyYmKGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCksZS50b3A9bnVsbCksIm53Ij09PXMmJihlLnRvcD10LnRvcCsoaS5oZWlnaHQtZS5oZWlnaHQpLGUubGVmdD10LmxlZnQrKGkud2lkdGgtZS53aWR0aCkpLGV9LF9yZXNwZWN0U2l6ZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLl92Qm91bmRhcmllcyxpPXRoaXMuYXhpcyxzPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1heFdpZHRoJiZ0Lm1heFdpZHRoPGUud2lkdGgsbj10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWF4SGVpZ2h0JiZ0Lm1heEhlaWdodDxlLmhlaWdodCxhPXRoaXMuX2lzTnVtYmVyKGUud2lkdGgpJiZ0Lm1pbldpZHRoJiZ0Lm1pbldpZHRoPmUud2lkdGgsbz10aGlzLl9pc051bWJlcihlLmhlaWdodCkmJnQubWluSGVpZ2h0JiZ0Lm1pbkhlaWdodD5lLmhlaWdodCxyPXRoaXMub3JpZ2luYWxQb3NpdGlvbi5sZWZ0K3RoaXMub3JpZ2luYWxTaXplLndpZHRoLGg9dGhpcy5wb3NpdGlvbi50b3ArdGhpcy5zaXplLmhlaWdodCxsPS9zd3xud3x3Ly50ZXN0KGkpLHU9L253fG5lfG4vLnRlc3QoaSk7cmV0dXJuIGEmJihlLndpZHRoPXQubWluV2lkdGgpLG8mJihlLmhlaWdodD10Lm1pbkhlaWdodCkscyYmKGUud2lkdGg9dC5tYXhXaWR0aCksbiYmKGUuaGVpZ2h0PXQubWF4SGVpZ2h0KSxhJiZsJiYoZS5sZWZ0PXItdC5taW5XaWR0aCkscyYmbCYmKGUubGVmdD1yLXQubWF4V2lkdGgpLG8mJnUmJihlLnRvcD1oLXQubWluSGVpZ2h0KSxuJiZ1JiYoZS50b3A9aC10Lm1heEhlaWdodCksZS53aWR0aHx8ZS5oZWlnaHR8fGUubGVmdHx8IWUudG9wP2Uud2lkdGh8fGUuaGVpZ2h0fHxlLnRvcHx8IWUubGVmdHx8KGUubGVmdD1udWxsKTplLnRvcD1udWxsLGV9LF9nZXRQYWRkaW5nUGx1c0JvcmRlckRpbWVuc2lvbnM6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0PTAsaT1bXSxzPVtlLmNzcygiYm9yZGVyVG9wV2lkdGgiKSxlLmNzcygiYm9yZGVyUmlnaHRXaWR0aCIpLGUuY3NzKCJib3JkZXJCb3R0b21XaWR0aCIpLGUuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKV0sbj1bZS5jc3MoInBhZGRpbmdUb3AiKSxlLmNzcygicGFkZGluZ1JpZ2h0IiksZS5jc3MoInBhZGRpbmdCb3R0b20iKSxlLmNzcygicGFkZGluZ0xlZnQiKV07ND50O3QrKylpW3RdPXBhcnNlSW50KHNbdF0sMTApfHwwLGlbdF0rPXBhcnNlSW50KG5bdF0sMTApfHwwO3JldHVybntoZWlnaHQ6aVswXStpWzJdLHdpZHRoOmlbMV0raVszXX19LF9wcm9wb3J0aW9uYWxseVJlc2l6ZTpmdW5jdGlvbigpe2lmKHRoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoKWZvcih2YXIgZSx0PTAsaT10aGlzLmhlbHBlcnx8dGhpcy5lbGVtZW50O3RoaXMuX3Byb3BvcnRpb25hbGx5UmVzaXplRWxlbWVudHMubGVuZ3RoPnQ7dCsrKWU9dGhpcy5fcHJvcG9ydGlvbmFsbHlSZXNpemVFbGVtZW50c1t0XSx0aGlzLm91dGVyRGltZW5zaW9uc3x8KHRoaXMub3V0ZXJEaW1lbnNpb25zPXRoaXMuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyhlKSksZS5jc3Moe2hlaWdodDppLmhlaWdodCgpLXRoaXMub3V0ZXJEaW1lbnNpb25zLmhlaWdodHx8MCx3aWR0aDppLndpZHRoKCktdGhpcy5vdXRlckRpbWVuc2lvbnMud2lkdGh8fDB9KX0sX3JlbmRlclByb3h5OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5lbGVtZW50LGk9dGhpcy5vcHRpb25zO3RoaXMuZWxlbWVudE9mZnNldD10Lm9mZnNldCgpLHRoaXMuX2hlbHBlcj8odGhpcy5oZWxwZXI9dGhpcy5oZWxwZXJ8fGUoIjxkaXYgc3R5bGU9J292ZXJmbG93OmhpZGRlbjsnPjwvZGl2PiIpLHRoaXMuaGVscGVyLmFkZENsYXNzKHRoaXMuX2hlbHBlcikuY3NzKHt3aWR0aDp0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpLTEsaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLTEscG9zaXRpb246ImFic29sdXRlIixsZWZ0OnRoaXMuZWxlbWVudE9mZnNldC5sZWZ0KyJweCIsdG9wOnRoaXMuZWxlbWVudE9mZnNldC50b3ArInB4Iix6SW5kZXg6KytpLnpJbmRleH0pLHRoaXMuaGVscGVyLmFwcGVuZFRvKCJib2R5IikuZGlzYWJsZVNlbGVjdGlvbigpKTp0aGlzLmhlbHBlcj10aGlzLmVsZW1lbnR9LF9jaGFuZ2U6e2U6ZnVuY3Rpb24oZSx0KXtyZXR1cm57d2lkdGg6dGhpcy5vcmlnaW5hbFNpemUud2lkdGgrdH19LHc6ZnVuY3Rpb24oZSx0KXt2YXIgaT10aGlzLm9yaWdpbmFsU2l6ZSxzPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57bGVmdDpzLmxlZnQrdCx3aWR0aDppLndpZHRoLXR9fSxuOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcz10aGlzLm9yaWdpbmFsU2l6ZSxuPXRoaXMub3JpZ2luYWxQb3NpdGlvbjtyZXR1cm57dG9wOm4udG9wK2ksaGVpZ2h0OnMuaGVpZ2h0LWl9fSxzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm57aGVpZ2h0OnRoaXMub3JpZ2luYWxTaXplLmhlaWdodCtpfX0sc2U6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uucy5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLmUuYXBwbHkodGhpcyxbdCxpLHNdKSl9LHN3OmZ1bmN0aW9uKHQsaSxzKXtyZXR1cm4gZS5leHRlbmQodGhpcy5fY2hhbmdlLnMuYXBwbHkodGhpcyxhcmd1bWVudHMpLHRoaXMuX2NoYW5nZS53LmFwcGx5KHRoaXMsW3QsaSxzXSkpfSxuZTpmdW5jdGlvbih0LGkscyl7cmV0dXJuIGUuZXh0ZW5kKHRoaXMuX2NoYW5nZS5uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLl9jaGFuZ2UuZS5hcHBseSh0aGlzLFt0LGksc10pKX0sbnc6ZnVuY3Rpb24odCxpLHMpe3JldHVybiBlLmV4dGVuZCh0aGlzLl9jaGFuZ2Uubi5hcHBseSh0aGlzLGFyZ3VtZW50cyksdGhpcy5fY2hhbmdlLncuYXBwbHkodGhpcyxbdCxpLHNdKSl9fSxfcHJvcGFnYXRlOmZ1bmN0aW9uKHQsaSl7ZS51aS5wbHVnaW4uY2FsbCh0aGlzLHQsW2ksdGhpcy51aSgpXSksInJlc2l6ZSIhPT10JiZ0aGlzLl90cmlnZ2VyKHQsaSx0aGlzLnVpKCkpfSxwbHVnaW5zOnt9LHVpOmZ1bmN0aW9uKCl7cmV0dXJue29yaWdpbmFsRWxlbWVudDp0aGlzLm9yaWdpbmFsRWxlbWVudCxlbGVtZW50OnRoaXMuZWxlbWVudCxoZWxwZXI6dGhpcy5oZWxwZXIscG9zaXRpb246dGhpcy5wb3NpdGlvbixzaXplOnRoaXMuc2l6ZSxvcmlnaW5hbFNpemU6dGhpcy5vcmlnaW5hbFNpemUsb3JpZ2luYWxQb3NpdGlvbjp0aGlzLm9yaWdpbmFsUG9zaXRpb259fX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiYW5pbWF0ZSIse3N0b3A6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscz1pLm9wdGlvbnMsbj1pLl9wcm9wb3J0aW9uYWxseVJlc2l6ZUVsZW1lbnRzLGE9bi5sZW5ndGgmJi90ZXh0YXJlYS9pLnRlc3QoblswXS5ub2RlTmFtZSksbz1hJiZpLl9oYXNTY3JvbGwoblswXSwibGVmdCIpPzA6aS5zaXplRGlmZi5oZWlnaHQscj1hPzA6aS5zaXplRGlmZi53aWR0aCxoPXt3aWR0aDppLnNpemUud2lkdGgtcixoZWlnaHQ6aS5zaXplLmhlaWdodC1vfSxsPXBhcnNlSW50KGkuZWxlbWVudC5jc3MoImxlZnQiKSwxMCkrKGkucG9zaXRpb24ubGVmdC1pLm9yaWdpbmFsUG9zaXRpb24ubGVmdCl8fG51bGwsdT1wYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCkrKGkucG9zaXRpb24udG9wLWkub3JpZ2luYWxQb3NpdGlvbi50b3ApfHxudWxsO2kuZWxlbWVudC5hbmltYXRlKGUuZXh0ZW5kKGgsdSYmbD97dG9wOnUsbGVmdDpsfTp7fSkse2R1cmF0aW9uOnMuYW5pbWF0ZUR1cmF0aW9uLGVhc2luZzpzLmFuaW1hdGVFYXNpbmcsc3RlcDpmdW5jdGlvbigpe3ZhciBzPXt3aWR0aDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ3aWR0aCIpLDEwKSxoZWlnaHQ6cGFyc2VJbnQoaS5lbGVtZW50LmNzcygiaGVpZ2h0IiksMTApLHRvcDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJ0b3AiKSwxMCksbGVmdDpwYXJzZUludChpLmVsZW1lbnQuY3NzKCJsZWZ0IiksMTApfTtuJiZuLmxlbmd0aCYmZShuWzBdKS5jc3Moe3dpZHRoOnMud2lkdGgsaGVpZ2h0OnMuaGVpZ2h0fSksaS5fdXBkYXRlQ2FjaGUocyksaS5fcHJvcGFnYXRlKCJyZXNpemUiLHQpfX0pfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiY29udGFpbm1lbnQiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbyxyLGg9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksbD1oLm9wdGlvbnMsdT1oLmVsZW1lbnQsZD1sLmNvbnRhaW5tZW50LGM9ZCBpbnN0YW5jZW9mIGU/ZC5nZXQoMCk6L3BhcmVudC8udGVzdChkKT91LnBhcmVudCgpLmdldCgwKTpkO2MmJihoLmNvbnRhaW5lckVsZW1lbnQ9ZShjKSwvZG9jdW1lbnQvLnRlc3QoZCl8fGQ9PT1kb2N1bWVudD8oaC5jb250YWluZXJPZmZzZXQ9e2xlZnQ6MCx0b3A6MH0saC5jb250YWluZXJQb3NpdGlvbj17bGVmdDowLHRvcDowfSxoLnBhcmVudERhdGE9e2VsZW1lbnQ6ZShkb2N1bWVudCksbGVmdDowLHRvcDowLHdpZHRoOmUoZG9jdW1lbnQpLndpZHRoKCksaGVpZ2h0OmUoZG9jdW1lbnQpLmhlaWdodCgpfHxkb2N1bWVudC5ib2R5LnBhcmVudE5vZGUuc2Nyb2xsSGVpZ2h0fSk6KHQ9ZShjKSxpPVtdLGUoWyJUb3AiLCJSaWdodCIsIkxlZnQiLCJCb3R0b20iXSkuZWFjaChmdW5jdGlvbihlLHMpe2lbZV09aC5fbnVtKHQuY3NzKCJwYWRkaW5nIitzKSl9KSxoLmNvbnRhaW5lck9mZnNldD10Lm9mZnNldCgpLGguY29udGFpbmVyUG9zaXRpb249dC5wb3NpdGlvbigpLGguY29udGFpbmVyU2l6ZT17aGVpZ2h0OnQuaW5uZXJIZWlnaHQoKS1pWzNdLHdpZHRoOnQuaW5uZXJXaWR0aCgpLWlbMV19LHM9aC5jb250YWluZXJPZmZzZXQsbj1oLmNvbnRhaW5lclNpemUuaGVpZ2h0LGE9aC5jb250YWluZXJTaXplLndpZHRoLG89aC5faGFzU2Nyb2xsKGMsImxlZnQiKT9jLnNjcm9sbFdpZHRoOmEscj1oLl9oYXNTY3JvbGwoYyk/Yy5zY3JvbGxIZWlnaHQ6bixoLnBhcmVudERhdGE9e2VsZW1lbnQ6YyxsZWZ0OnMubGVmdCx0b3A6cy50b3Asd2lkdGg6byxoZWlnaHQ6cn0pKX0scmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIikscj1vLm9wdGlvbnMsaD1vLmNvbnRhaW5lck9mZnNldCxsPW8ucG9zaXRpb24sdT1vLl9hc3BlY3RSYXRpb3x8dC5zaGlmdEtleSxkPXt0b3A6MCxsZWZ0OjB9LGM9by5jb250YWluZXJFbGVtZW50LHA9ITA7Y1swXSE9PWRvY3VtZW50JiYvc3RhdGljLy50ZXN0KGMuY3NzKCJwb3NpdGlvbiIpKSYmKGQ9aCksbC5sZWZ0PChvLl9oZWxwZXI/aC5sZWZ0OjApJiYoby5zaXplLndpZHRoPW8uc2l6ZS53aWR0aCsoby5faGVscGVyP28ucG9zaXRpb24ubGVmdC1oLmxlZnQ6by5wb3NpdGlvbi5sZWZ0LWQubGVmdCksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSksby5wb3NpdGlvbi5sZWZ0PXIuaGVscGVyP2gubGVmdDowKSxsLnRvcDwoby5faGVscGVyP2gudG9wOjApJiYoby5zaXplLmhlaWdodD1vLnNpemUuaGVpZ2h0KyhvLl9oZWxwZXI/by5wb3NpdGlvbi50b3AtaC50b3A6by5wb3NpdGlvbi50b3ApLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpLG8ucG9zaXRpb24udG9wPW8uX2hlbHBlcj9oLnRvcDowKSxuPW8uY29udGFpbmVyRWxlbWVudC5nZXQoMCk9PT1vLmVsZW1lbnQucGFyZW50KCkuZ2V0KDApLGE9L3JlbGF0aXZlfGFic29sdXRlLy50ZXN0KG8uY29udGFpbmVyRWxlbWVudC5jc3MoInBvc2l0aW9uIikpLG4mJmE/KG8ub2Zmc2V0LmxlZnQ9by5wYXJlbnREYXRhLmxlZnQrby5wb3NpdGlvbi5sZWZ0LG8ub2Zmc2V0LnRvcD1vLnBhcmVudERhdGEudG9wK28ucG9zaXRpb24udG9wKTooby5vZmZzZXQubGVmdD1vLmVsZW1lbnQub2Zmc2V0KCkubGVmdCxvLm9mZnNldC50b3A9by5lbGVtZW50Lm9mZnNldCgpLnRvcCksaT1NYXRoLmFicyhvLnNpemVEaWZmLndpZHRoKyhvLl9oZWxwZXI/by5vZmZzZXQubGVmdC1kLmxlZnQ6by5vZmZzZXQubGVmdC1oLmxlZnQpKSxzPU1hdGguYWJzKG8uc2l6ZURpZmYuaGVpZ2h0KyhvLl9oZWxwZXI/by5vZmZzZXQudG9wLWQudG9wOm8ub2Zmc2V0LnRvcC1oLnRvcCkpLGkrby5zaXplLndpZHRoPj1vLnBhcmVudERhdGEud2lkdGgmJihvLnNpemUud2lkdGg9by5wYXJlbnREYXRhLndpZHRoLWksdSYmKG8uc2l6ZS5oZWlnaHQ9by5zaXplLndpZHRoL28uYXNwZWN0UmF0aW8scD0hMSkpLHMrby5zaXplLmhlaWdodD49by5wYXJlbnREYXRhLmhlaWdodCYmKG8uc2l6ZS5oZWlnaHQ9by5wYXJlbnREYXRhLmhlaWdodC1zLHUmJihvLnNpemUud2lkdGg9by5zaXplLmhlaWdodCpvLmFzcGVjdFJhdGlvLHA9ITEpKSxwfHwoby5wb3NpdGlvbi5sZWZ0PW8ucHJldlBvc2l0aW9uLmxlZnQsby5wb3NpdGlvbi50b3A9by5wcmV2UG9zaXRpb24udG9wLG8uc2l6ZS53aWR0aD1vLnByZXZTaXplLndpZHRoLG8uc2l6ZS5oZWlnaHQ9by5wcmV2U2l6ZS5oZWlnaHQpfSxzdG9wOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIiksaT10Lm9wdGlvbnMscz10LmNvbnRhaW5lck9mZnNldCxuPXQuY29udGFpbmVyUG9zaXRpb24sYT10LmNvbnRhaW5lckVsZW1lbnQsbz1lKHQuaGVscGVyKSxyPW8ub2Zmc2V0KCksaD1vLm91dGVyV2lkdGgoKS10LnNpemVEaWZmLndpZHRoLGw9by5vdXRlckhlaWdodCgpLXQuc2l6ZURpZmYuaGVpZ2h0O3QuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3JlbGF0aXZlLy50ZXN0KGEuY3NzKCJwb3NpdGlvbiIpKSYmZSh0aGlzKS5jc3Moe2xlZnQ6ci5sZWZ0LW4ubGVmdC1zLmxlZnQsd2lkdGg6aCxoZWlnaHQ6bH0pLHQuX2hlbHBlciYmIWkuYW5pbWF0ZSYmL3N0YXRpYy8udGVzdChhLmNzcygicG9zaXRpb24iKSkmJmUodGhpcykuY3NzKHtsZWZ0OnIubGVmdC1uLmxlZnQtcy5sZWZ0LHdpZHRoOmgsaGVpZ2h0Omx9KX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImFsc29SZXNpemUiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zO2UoaS5hbHNvUmVzaXplKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTt0LmRhdGEoInVpLXJlc2l6YWJsZS1hbHNvcmVzaXplIix7d2lkdGg6cGFyc2VJbnQodC53aWR0aCgpLDEwKSxoZWlnaHQ6cGFyc2VJbnQodC5oZWlnaHQoKSwxMCksbGVmdDpwYXJzZUludCh0LmNzcygibGVmdCIpLDEwKSx0b3A6cGFyc2VJbnQodC5jc3MoInRvcCIpLDEwKX0pfSl9LHJlc2l6ZTpmdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLG49cy5vcHRpb25zLGE9cy5vcmlnaW5hbFNpemUsbz1zLm9yaWdpbmFsUG9zaXRpb24scj17aGVpZ2h0OnMuc2l6ZS5oZWlnaHQtYS5oZWlnaHR8fDAsd2lkdGg6cy5zaXplLndpZHRoLWEud2lkdGh8fDAsdG9wOnMucG9zaXRpb24udG9wLW8udG9wfHwwLGxlZnQ6cy5wb3NpdGlvbi5sZWZ0LW8ubGVmdHx8MH07ZShuLmFsc29SZXNpemUpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLHM9ZSh0aGlzKS5kYXRhKCJ1aS1yZXNpemFibGUtYWxzb3Jlc2l6ZSIpLG49e30sYT10LnBhcmVudHMoaS5vcmlnaW5hbEVsZW1lbnRbMF0pLmxlbmd0aD9bIndpZHRoIiwiaGVpZ2h0Il06WyJ3aWR0aCIsImhlaWdodCIsInRvcCIsImxlZnQiXTtlLmVhY2goYSxmdW5jdGlvbihlLHQpe3ZhciBpPShzW3RdfHwwKSsoclt0XXx8MCk7aSYmaT49MCYmKG5bdF09aXx8bnVsbCl9KSx0LmNzcyhuKX0pfSxzdG9wOmZ1bmN0aW9uKCl7ZSh0aGlzKS5yZW1vdmVEYXRhKCJyZXNpemFibGUtYWxzb3Jlc2l6ZSIpfX0pLGUudWkucGx1Z2luLmFkZCgicmVzaXphYmxlIiwiZ2hvc3QiLHtzdGFydDpmdW5jdGlvbigpe3ZhciB0PWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLGk9dC5vcHRpb25zLHM9dC5zaXplO3QuZ2hvc3Q9dC5vcmlnaW5hbEVsZW1lbnQuY2xvbmUoKSx0Lmdob3N0LmNzcyh7b3BhY2l0eTouMjUsZGlzcGxheToiYmxvY2siLHBvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnMuaGVpZ2h0LHdpZHRoOnMud2lkdGgsbWFyZ2luOjAsbGVmdDowLHRvcDowfSkuYWRkQ2xhc3MoInVpLXJlc2l6YWJsZS1naG9zdCIpLmFkZENsYXNzKCJzdHJpbmciPT10eXBlb2YgaS5naG9zdD9pLmdob3N0OiIiKSx0Lmdob3N0LmFwcGVuZFRvKHQuaGVscGVyKX0scmVzaXplOmZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKS5yZXNpemFibGUoImluc3RhbmNlIik7dC5naG9zdCYmdC5naG9zdC5jc3Moe3Bvc2l0aW9uOiJyZWxhdGl2ZSIsaGVpZ2h0OnQuc2l6ZS5oZWlnaHQsd2lkdGg6dC5zaXplLndpZHRofSl9LHN0b3A6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLnJlc2l6YWJsZSgiaW5zdGFuY2UiKTt0Lmdob3N0JiZ0LmhlbHBlciYmdC5oZWxwZXIuZ2V0KDApLnJlbW92ZUNoaWxkKHQuZ2hvc3QuZ2V0KDApKX19KSxlLnVpLnBsdWdpbi5hZGQoInJlc2l6YWJsZSIsImdyaWQiLHtyZXNpemU6ZnVuY3Rpb24oKXt2YXIgdCxpPWUodGhpcykucmVzaXphYmxlKCJpbnN0YW5jZSIpLHM9aS5vcHRpb25zLG49aS5zaXplLGE9aS5vcmlnaW5hbFNpemUsbz1pLm9yaWdpbmFsUG9zaXRpb24scj1pLmF4aXMsaD0ibnVtYmVyIj09dHlwZW9mIHMuZ3JpZD9bcy5ncmlkLHMuZ3JpZF06cy5ncmlkLGw9aFswXXx8MSx1PWhbMV18fDEsZD1NYXRoLnJvdW5kKChuLndpZHRoLWEud2lkdGgpL2wpKmwsYz1NYXRoLnJvdW5kKChuLmhlaWdodC1hLmhlaWdodCkvdSkqdSxwPWEud2lkdGgrZCxmPWEuaGVpZ2h0K2MsbT1zLm1heFdpZHRoJiZwPnMubWF4V2lkdGgsZz1zLm1heEhlaWdodCYmZj5zLm1heEhlaWdodCx2PXMubWluV2lkdGgmJnMubWluV2lkdGg+cCx5PXMubWluSGVpZ2h0JiZzLm1pbkhlaWdodD5mO3MuZ3JpZD1oLHYmJihwKz1sKSx5JiYoZis9dSksbSYmKHAtPWwpLGcmJihmLT11KSwvXihzZXxzfGUpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mKTovXihuZSkkLy50ZXN0KHIpPyhpLnNpemUud2lkdGg9cCxpLnNpemUuaGVpZ2h0PWYsaS5wb3NpdGlvbi50b3A9by50b3AtYyk6L14oc3cpJC8udGVzdChyKT8oaS5zaXplLndpZHRoPXAsaS5zaXplLmhlaWdodD1mLGkucG9zaXRpb24ubGVmdD1vLmxlZnQtZCk6KCgwPj1mLXV8fDA+PXAtbCkmJih0PWkuX2dldFBhZGRpbmdQbHVzQm9yZGVyRGltZW5zaW9ucyh0aGlzKSksZi11PjA/KGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcC1jKTooZj11LXQuaGVpZ2h0LGkuc2l6ZS5oZWlnaHQ9ZixpLnBvc2l0aW9uLnRvcD1vLnRvcCthLmhlaWdodC1mKSxwLWw+MD8oaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdC1kKToocD1sLXQud2lkdGgsaS5zaXplLndpZHRoPXAsaS5wb3NpdGlvbi5sZWZ0PW8ubGVmdCthLndpZHRoLXApKX19KSxlLnVpLnJlc2l6YWJsZSxlLndpZGdldCgidWkuc2VsZWN0YWJsZSIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b1JlZnJlc2g6ITAsZGlzdGFuY2U6MCxmaWx0ZXI6IioiLHRvbGVyYW5jZToidG91Y2giLHNlbGVjdGVkOm51bGwsc2VsZWN0aW5nOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdW5zZWxlY3RlZDpudWxsLHVuc2VsZWN0aW5nOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXM7dGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS1zZWxlY3RhYmxlIiksdGhpcy5kcmFnZ2VkPSExLHRoaXMucmVmcmVzaD1mdW5jdGlvbigpe3Q9ZShpLm9wdGlvbnMuZmlsdGVyLGkuZWxlbWVudFswXSksdC5hZGRDbGFzcygidWktc2VsZWN0ZWUiKSx0LmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5vZmZzZXQoKTtlLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIix7ZWxlbWVudDp0aGlzLCRlbGVtZW50OnQsbGVmdDppLmxlZnQsdG9wOmkudG9wLHJpZ2h0OmkubGVmdCt0Lm91dGVyV2lkdGgoKSxib3R0b206aS50b3ArdC5vdXRlckhlaWdodCgpLHN0YXJ0c2VsZWN0ZWQ6ITEsc2VsZWN0ZWQ6dC5oYXNDbGFzcygidWktc2VsZWN0ZWQiKSxzZWxlY3Rpbmc6dC5oYXNDbGFzcygidWktc2VsZWN0aW5nIiksdW5zZWxlY3Rpbmc6dC5oYXNDbGFzcygidWktdW5zZWxlY3RpbmciKX0pfSl9LHRoaXMucmVmcmVzaCgpLHRoaXMuc2VsZWN0ZWVzPXQuYWRkQ2xhc3MoInVpLXNlbGVjdGVlIiksdGhpcy5fbW91c2VJbml0KCksdGhpcy5oZWxwZXI9ZSgiPGRpdiBjbGFzcz0ndWktc2VsZWN0YWJsZS1oZWxwZXInPjwvZGl2PiIpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuc2VsZWN0ZWVzLnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZSIpLnJlbW92ZURhdGEoInNlbGVjdGFibGUtaXRlbSIpLHRoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0YWJsZSB1aS1zZWxlY3RhYmxlLWRpc2FibGVkIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZVN0YXJ0OmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz10aGlzLm9wdGlvbnM7dGhpcy5vcG9zPVt0LnBhZ2VYLHQucGFnZVldLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8KHRoaXMuc2VsZWN0ZWVzPWUocy5maWx0ZXIsdGhpcy5lbGVtZW50WzBdKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsdCksZShzLmFwcGVuZFRvKS5hcHBlbmQodGhpcy5oZWxwZXIpLHRoaXMuaGVscGVyLmNzcyh7bGVmdDp0LnBhZ2VYLHRvcDp0LnBhZ2VZLHdpZHRoOjAsaGVpZ2h0OjB9KSxzLmF1dG9SZWZyZXNoJiZ0aGlzLnJlZnJlc2goKSx0aGlzLnNlbGVjdGVlcy5maWx0ZXIoIi51aS1zZWxlY3RlZCIpLmVhY2goZnVuY3Rpb24oKXt2YXIgcz1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7cy5zdGFydHNlbGVjdGVkPSEwLHQubWV0YUtleXx8dC5jdHJsS2V5fHwocy4kZWxlbWVudC5yZW1vdmVDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGVkPSExLHMuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMCxpLl90cmlnZ2VyKCJ1bnNlbGVjdGluZyIsdCx7dW5zZWxlY3Rpbmc6cy5lbGVtZW50fSkpfSksZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHMsbj1lLmRhdGEodGhpcywic2VsZWN0YWJsZS1pdGVtIik7cmV0dXJuIG4/KHM9IXQubWV0YUtleSYmIXQuY3RybEtleXx8IW4uJGVsZW1lbnQuaGFzQ2xhc3MoInVpLXNlbGVjdGVkIiksbi4kZWxlbWVudC5yZW1vdmVDbGFzcyhzPyJ1aS11bnNlbGVjdGluZyI6InVpLXNlbGVjdGVkIikuYWRkQ2xhc3Mocz8idWktc2VsZWN0aW5nIjoidWktdW5zZWxlY3RpbmciKSxuLnVuc2VsZWN0aW5nPSFzLG4uc2VsZWN0aW5nPXMsbi5zZWxlY3RlZD1zLHM/aS5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6bi5lbGVtZW50fSk6aS5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOm4uZWxlbWVudH0pLCExKTp2b2lkIDB9KSl9LF9tb3VzZURyYWc6ZnVuY3Rpb24odCl7aWYodGhpcy5kcmFnZ2VkPSEwLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQpe3ZhciBpLHM9dGhpcyxuPXRoaXMub3B0aW9ucyxhPXRoaXMub3Bvc1swXSxvPXRoaXMub3Bvc1sxXSxyPXQucGFnZVgsaD10LnBhZ2VZO3JldHVybiBhPnImJihpPXIscj1hLGE9aSksbz5oJiYoaT1oLGg9byxvPWkpLHRoaXMuaGVscGVyLmNzcyh7bGVmdDphLHRvcDpvLHdpZHRoOnItYSxoZWlnaHQ6aC1vfSksdGhpcy5zZWxlY3RlZXMuZWFjaChmdW5jdGlvbigpe3ZhciBpPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKSxsPSExOwppJiZpLmVsZW1lbnQhPT1zLmVsZW1lbnRbMF0mJigidG91Y2giPT09bi50b2xlcmFuY2U/bD0hKGkubGVmdD5yfHxhPmkucmlnaHR8fGkudG9wPmh8fG8+aS5ib3R0b20pOiJmaXQiPT09bi50b2xlcmFuY2UmJihsPWkubGVmdD5hJiZyPmkucmlnaHQmJmkudG9wPm8mJmg+aS5ib3R0b20pLGw/KGkuc2VsZWN0ZWQmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEpLGkudW5zZWxlY3RpbmcmJihpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS11bnNlbGVjdGluZyIpLGkudW5zZWxlY3Rpbmc9ITEpLGkuc2VsZWN0aW5nfHwoaS4kZWxlbWVudC5hZGRDbGFzcygidWktc2VsZWN0aW5nIiksaS5zZWxlY3Rpbmc9ITAscy5fdHJpZ2dlcigic2VsZWN0aW5nIix0LHtzZWxlY3Rpbmc6aS5lbGVtZW50fSkpKTooaS5zZWxlY3RpbmcmJigodC5tZXRhS2V5fHx0LmN0cmxLZXkpJiZpLnN0YXJ0c2VsZWN0ZWQ/KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXNlbGVjdGVkIiksaS5zZWxlY3RlZD0hMCk6KGkuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXNlbGVjdGluZyIpLGkuc2VsZWN0aW5nPSExLGkuc3RhcnRzZWxlY3RlZCYmKGkuJGVsZW1lbnQuYWRkQ2xhc3MoInVpLXVuc2VsZWN0aW5nIiksaS51bnNlbGVjdGluZz0hMCkscy5fdHJpZ2dlcigidW5zZWxlY3RpbmciLHQse3Vuc2VsZWN0aW5nOmkuZWxlbWVudH0pKSksaS5zZWxlY3RlZCYmKHQubWV0YUtleXx8dC5jdHJsS2V5fHxpLnN0YXJ0c2VsZWN0ZWR8fChpLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RlZCIpLGkuc2VsZWN0ZWQ9ITEsaS4kZWxlbWVudC5hZGRDbGFzcygidWktdW5zZWxlY3RpbmciKSxpLnVuc2VsZWN0aW5nPSEwLHMuX3RyaWdnZXIoInVuc2VsZWN0aW5nIix0LHt1bnNlbGVjdGluZzppLmVsZW1lbnR9KSkpKSl9KSwhMX19LF9tb3VzZVN0b3A6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcztyZXR1cm4gdGhpcy5kcmFnZ2VkPSExLGUoIi51aS11bnNlbGVjdGluZyIsdGhpcy5lbGVtZW50WzBdKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHM9ZS5kYXRhKHRoaXMsInNlbGVjdGFibGUtaXRlbSIpO3MuJGVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXVuc2VsZWN0aW5nIikscy51bnNlbGVjdGluZz0hMSxzLnN0YXJ0c2VsZWN0ZWQ9ITEsaS5fdHJpZ2dlcigidW5zZWxlY3RlZCIsdCx7dW5zZWxlY3RlZDpzLmVsZW1lbnR9KX0pLGUoIi51aS1zZWxlY3RpbmciLHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe3ZhciBzPWUuZGF0YSh0aGlzLCJzZWxlY3RhYmxlLWl0ZW0iKTtzLiRlbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zZWxlY3RpbmciKS5hZGRDbGFzcygidWktc2VsZWN0ZWQiKSxzLnNlbGVjdGluZz0hMSxzLnNlbGVjdGVkPSEwLHMuc3RhcnRzZWxlY3RlZD0hMCxpLl90cmlnZ2VyKCJzZWxlY3RlZCIsdCx7c2VsZWN0ZWQ6cy5lbGVtZW50fSl9KSx0aGlzLl90cmlnZ2VyKCJzdG9wIix0KSx0aGlzLmhlbHBlci5yZW1vdmUoKSwhMX19KSxlLndpZGdldCgidWkuc29ydGFibGUiLGUudWkubW91c2Use3ZlcnNpb246IjEuMTEuNCIsd2lkZ2V0RXZlbnRQcmVmaXg6InNvcnQiLHJlYWR5OiExLG9wdGlvbnM6e2FwcGVuZFRvOiJwYXJlbnQiLGF4aXM6ITEsY29ubmVjdFdpdGg6ITEsY29udGFpbm1lbnQ6ITEsY3Vyc29yOiJhdXRvIixjdXJzb3JBdDohMSxkcm9wT25FbXB0eTohMCxmb3JjZVBsYWNlaG9sZGVyU2l6ZTohMSxmb3JjZUhlbHBlclNpemU6ITEsZ3JpZDohMSxoYW5kbGU6ITEsaGVscGVyOiJvcmlnaW5hbCIsaXRlbXM6Ij4gKiIsb3BhY2l0eTohMSxwbGFjZWhvbGRlcjohMSxyZXZlcnQ6ITEsc2Nyb2xsOiEwLHNjcm9sbFNlbnNpdGl2aXR5OjIwLHNjcm9sbFNwZWVkOjIwLHNjb3BlOiJkZWZhdWx0Iix0b2xlcmFuY2U6ImludGVyc2VjdCIsekluZGV4OjFlMyxhY3RpdmF0ZTpudWxsLGJlZm9yZVN0b3A6bnVsbCxjaGFuZ2U6bnVsbCxkZWFjdGl2YXRlOm51bGwsb3V0Om51bGwsb3ZlcjpudWxsLHJlY2VpdmU6bnVsbCxyZW1vdmU6bnVsbCxzb3J0Om51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGwsdXBkYXRlOm51bGx9LF9pc092ZXJBeGlzOmZ1bmN0aW9uKGUsdCxpKXtyZXR1cm4gZT49dCYmdCtpPmV9LF9pc0Zsb2F0aW5nOmZ1bmN0aW9uKGUpe3JldHVybi9sZWZ0fHJpZ2h0Ly50ZXN0KGUuY3NzKCJmbG9hdCIpKXx8L2lubGluZXx0YWJsZS1jZWxsLy50ZXN0KGUuY3NzKCJkaXNwbGF5IikpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5jb250YWluZXJDYWNoZT17fSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNvcnRhYmxlIiksdGhpcy5yZWZyZXNoKCksdGhpcy5vZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLHRoaXMuX21vdXNlSW5pdCgpLHRoaXMuX3NldEhhbmRsZUNsYXNzTmFtZSgpLHRoaXMucmVhZHk9ITB9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJoYW5kbGUiPT09ZSYmdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCl9LF9zZXRIYW5kbGVDbGFzc05hbWU6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuZmluZCgiLnVpLXNvcnRhYmxlLWhhbmRsZSIpLnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZS1oYW5kbGUiKSxlLmVhY2godGhpcy5pdGVtcyxmdW5jdGlvbigpeyh0aGlzLmluc3RhbmNlLm9wdGlvbnMuaGFuZGxlP3RoaXMuaXRlbS5maW5kKHRoaXMuaW5zdGFuY2Uub3B0aW9ucy5oYW5kbGUpOnRoaXMuaXRlbSkuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhhbmRsZSIpfSl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zb3J0YWJsZSB1aS1zb3J0YWJsZS1kaXNhYmxlZCIpLmZpbmQoIi51aS1zb3J0YWJsZS1oYW5kbGUiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGFuZGxlIiksdGhpcy5fbW91c2VEZXN0cm95KCk7Zm9yKHZhciBlPXRoaXMuaXRlbXMubGVuZ3RoLTE7ZT49MDtlLS0pdGhpcy5pdGVtc1tlXS5pdGVtLnJlbW92ZURhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIpO3JldHVybiB0aGlzfSxfbW91c2VDYXB0dXJlOmZ1bmN0aW9uKHQsaSl7dmFyIHM9bnVsbCxuPSExLGE9dGhpcztyZXR1cm4gdGhpcy5yZXZlcnRpbmc/ITE6dGhpcy5vcHRpb25zLmRpc2FibGVkfHwic3RhdGljIj09PXRoaXMub3B0aW9ucy50eXBlPyExOih0aGlzLl9yZWZyZXNoSXRlbXModCksZSh0LnRhcmdldCkucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gZS5kYXRhKHRoaXMsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YT8ocz1lKHRoaXMpLCExKTp2b2lkIDB9KSxlLmRhdGEodC50YXJnZXQsYS53aWRnZXROYW1lKyItaXRlbSIpPT09YSYmKHM9ZSh0LnRhcmdldCkpLHM/IXRoaXMub3B0aW9ucy5oYW5kbGV8fGl8fChlKHRoaXMub3B0aW9ucy5oYW5kbGUscykuZmluZCgiKiIpLmFkZEJhY2soKS5lYWNoKGZ1bmN0aW9uKCl7dGhpcz09PXQudGFyZ2V0JiYobj0hMCl9KSxuKT8odGhpcy5jdXJyZW50SXRlbT1zLHRoaXMuX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zKCksITApOiExOiExKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24odCxpLHMpe3ZhciBuLGEsbz10aGlzLm9wdGlvbnM7aWYodGhpcy5jdXJyZW50Q29udGFpbmVyPXRoaXMsdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpcy5oZWxwZXI9dGhpcy5fY3JlYXRlSGVscGVyKHQpLHRoaXMuX2NhY2hlSGVscGVyUHJvcG9ydGlvbnMoKSx0aGlzLl9jYWNoZU1hcmdpbnMoKSx0aGlzLnNjcm9sbFBhcmVudD10aGlzLmhlbHBlci5zY3JvbGxQYXJlbnQoKSx0aGlzLm9mZnNldD10aGlzLmN1cnJlbnRJdGVtLm9mZnNldCgpLHRoaXMub2Zmc2V0PXt0b3A6dGhpcy5vZmZzZXQudG9wLXRoaXMubWFyZ2lucy50b3AsbGVmdDp0aGlzLm9mZnNldC5sZWZ0LXRoaXMubWFyZ2lucy5sZWZ0fSxlLmV4dGVuZCh0aGlzLm9mZnNldCx7Y2xpY2s6e2xlZnQ6dC5wYWdlWC10aGlzLm9mZnNldC5sZWZ0LHRvcDp0LnBhZ2VZLXRoaXMub2Zmc2V0LnRvcH0scGFyZW50OnRoaXMuX2dldFBhcmVudE9mZnNldCgpLHJlbGF0aXZlOnRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCl9KSx0aGlzLmhlbHBlci5jc3MoInBvc2l0aW9uIiwiYWJzb2x1dGUiKSx0aGlzLmNzc1Bvc2l0aW9uPXRoaXMuaGVscGVyLmNzcygicG9zaXRpb24iKSx0aGlzLm9yaWdpbmFsUG9zaXRpb249dGhpcy5fZ2VuZXJhdGVQb3NpdGlvbih0KSx0aGlzLm9yaWdpbmFsUGFnZVg9dC5wYWdlWCx0aGlzLm9yaWdpbmFsUGFnZVk9dC5wYWdlWSxvLmN1cnNvckF0JiZ0aGlzLl9hZGp1c3RPZmZzZXRGcm9tSGVscGVyKG8uY3Vyc29yQXQpLHRoaXMuZG9tUG9zaXRpb249e3ByZXY6dGhpcy5jdXJyZW50SXRlbS5wcmV2KClbMF0scGFyZW50OnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KClbMF19LHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5jdXJyZW50SXRlbS5oaWRlKCksdGhpcy5fY3JlYXRlUGxhY2Vob2xkZXIoKSxvLmNvbnRhaW5tZW50JiZ0aGlzLl9zZXRDb250YWlubWVudCgpLG8uY3Vyc29yJiYiYXV0byIhPT1vLmN1cnNvciYmKGE9dGhpcy5kb2N1bWVudC5maW5kKCJib2R5IiksdGhpcy5zdG9yZWRDdXJzb3I9YS5jc3MoImN1cnNvciIpLGEuY3NzKCJjdXJzb3IiLG8uY3Vyc29yKSx0aGlzLnN0b3JlZFN0eWxlc2hlZXQ9ZSgiPHN0eWxlPip7IGN1cnNvcjogIitvLmN1cnNvcisiICFpbXBvcnRhbnQ7IH08L3N0eWxlPiIpLmFwcGVuZFRvKGEpKSxvLm9wYWNpdHkmJih0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiKSYmKHRoaXMuX3N0b3JlZE9wYWNpdHk9dGhpcy5oZWxwZXIuY3NzKCJvcGFjaXR5IikpLHRoaXMuaGVscGVyLmNzcygib3BhY2l0eSIsby5vcGFjaXR5KSksby56SW5kZXgmJih0aGlzLmhlbHBlci5jc3MoInpJbmRleCIpJiYodGhpcy5fc3RvcmVkWkluZGV4PXRoaXMuaGVscGVyLmNzcygiekluZGV4IikpLHRoaXMuaGVscGVyLmNzcygiekluZGV4IixvLnpJbmRleCkpLHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmIkhUTUwiIT09dGhpcy5zY3JvbGxQYXJlbnRbMF0udGFnTmFtZSYmKHRoaXMub3ZlcmZsb3dPZmZzZXQ9dGhpcy5zY3JvbGxQYXJlbnQub2Zmc2V0KCkpLHRoaXMuX3RyaWdnZXIoInN0YXJ0Iix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLl9wcmVzZXJ2ZUhlbHBlclByb3BvcnRpb25zfHx0aGlzLl9jYWNoZUhlbHBlclByb3BvcnRpb25zKCksIXMpZm9yKG49dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO24+PTA7bi0tKXRoaXMuY29udGFpbmVyc1tuXS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKTtyZXR1cm4gZS51aS5kZG1hbmFnZXImJihlLnVpLmRkbWFuYWdlci5jdXJyZW50PXRoaXMpLGUudWkuZGRtYW5hZ2VyJiYhby5kcm9wQmVoYXZpb3VyJiZlLnVpLmRkbWFuYWdlci5wcmVwYXJlT2Zmc2V0cyh0aGlzLHQpLHRoaXMuZHJhZ2dpbmc9ITAsdGhpcy5oZWxwZXIuYWRkQ2xhc3MoInVpLXNvcnRhYmxlLWhlbHBlciIpLHRoaXMuX21vdXNlRHJhZyh0KSwhMH0sX21vdXNlRHJhZzpmdW5jdGlvbih0KXt2YXIgaSxzLG4sYSxvPXRoaXMub3B0aW9ucyxyPSExO2Zvcih0aGlzLnBvc2l0aW9uPXRoaXMuX2dlbmVyYXRlUG9zaXRpb24odCksdGhpcy5wb3NpdGlvbkFicz10aGlzLl9jb252ZXJ0UG9zaXRpb25UbygiYWJzb2x1dGUiKSx0aGlzLmxhc3RQb3NpdGlvbkFic3x8KHRoaXMubGFzdFBvc2l0aW9uQWJzPXRoaXMucG9zaXRpb25BYnMpLHRoaXMub3B0aW9ucy5zY3JvbGwmJih0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJiJIVE1MIiE9PXRoaXMuc2Nyb2xsUGFyZW50WzBdLnRhZ05hbWU/KHRoaXMub3ZlcmZsb3dPZmZzZXQudG9wK3RoaXMuc2Nyb2xsUGFyZW50WzBdLm9mZnNldEhlaWdodC10LnBhZ2VZPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPXI9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wK28uc2Nyb2xsU3BlZWQ6dC5wYWdlWS10aGlzLm92ZXJmbG93T2Zmc2V0LnRvcDxvLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wPXI9dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsVG9wLW8uc2Nyb2xsU3BlZWQpLHRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdCt0aGlzLnNjcm9sbFBhcmVudFswXS5vZmZzZXRXaWR0aC10LnBhZ2VYPG8uc2Nyb2xsU2Vuc2l0aXZpdHk/dGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQrby5zY3JvbGxTcGVlZDp0LnBhZ2VYLXRoaXMub3ZlcmZsb3dPZmZzZXQubGVmdDxvLnNjcm9sbFNlbnNpdGl2aXR5JiYodGhpcy5zY3JvbGxQYXJlbnRbMF0uc2Nyb2xsTGVmdD1yPXRoaXMuc2Nyb2xsUGFyZW50WzBdLnNjcm9sbExlZnQtby5zY3JvbGxTcGVlZCkpOih0LnBhZ2VZLXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCk8by5zY3JvbGxTZW5zaXRpdml0eT9yPXRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKHRoaXMuZG9jdW1lbnQuc2Nyb2xsVG9wKCktby5zY3JvbGxTcGVlZCk6dGhpcy53aW5kb3cuaGVpZ2h0KCktKHQucGFnZVktdGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKSk8by5zY3JvbGxTZW5zaXRpdml0eSYmKHI9dGhpcy5kb2N1bWVudC5zY3JvbGxUb3AodGhpcy5kb2N1bWVudC5zY3JvbGxUb3AoKStvLnNjcm9sbFNwZWVkKSksdC5wYWdlWC10aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKTxvLnNjcm9sbFNlbnNpdGl2aXR5P3I9dGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KHRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCgpLW8uc2Nyb2xsU3BlZWQpOnRoaXMud2luZG93LndpZHRoKCktKHQucGFnZVgtdGhpcy5kb2N1bWVudC5zY3JvbGxMZWZ0KCkpPG8uc2Nyb2xsU2Vuc2l0aXZpdHkmJihyPXRoaXMuZG9jdW1lbnQuc2Nyb2xsTGVmdCh0aGlzLmRvY3VtZW50LnNjcm9sbExlZnQoKStvLnNjcm9sbFNwZWVkKSkpLHIhPT0hMSYmZS51aS5kZG1hbmFnZXImJiFvLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLnByZXBhcmVPZmZzZXRzKHRoaXMsdCkpLHRoaXMucG9zaXRpb25BYnM9dGhpcy5fY29udmVydFBvc2l0aW9uVG8oImFic29sdXRlIiksdGhpcy5vcHRpb25zLmF4aXMmJiJ5Ij09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUubGVmdD10aGlzLnBvc2l0aW9uLmxlZnQrInB4IiksdGhpcy5vcHRpb25zLmF4aXMmJiJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHwodGhpcy5oZWxwZXJbMF0uc3R5bGUudG9wPXRoaXMucG9zaXRpb24udG9wKyJweCIpLGk9dGhpcy5pdGVtcy5sZW5ndGgtMTtpPj0wO2ktLSlpZihzPXRoaXMuaXRlbXNbaV0sbj1zLml0ZW1bMF0sYT10aGlzLl9pbnRlcnNlY3RzV2l0aFBvaW50ZXIocyksYSYmcy5pbnN0YW5jZT09PXRoaXMuY3VycmVudENvbnRhaW5lciYmbiE9PXRoaXMuY3VycmVudEl0ZW1bMF0mJnRoaXMucGxhY2Vob2xkZXJbMT09PWE/Im5leHQiOiJwcmV2Il0oKVswXSE9PW4mJiFlLmNvbnRhaW5zKHRoaXMucGxhY2Vob2xkZXJbMF0sbikmJigic2VtaS1keW5hbWljIj09PXRoaXMub3B0aW9ucy50eXBlPyFlLmNvbnRhaW5zKHRoaXMuZWxlbWVudFswXSxuKTohMCkpe2lmKHRoaXMuZGlyZWN0aW9uPTE9PT1hPyJkb3duIjoidXAiLCJwb2ludGVyIiE9PXRoaXMub3B0aW9ucy50b2xlcmFuY2UmJiF0aGlzLl9pbnRlcnNlY3RzV2l0aFNpZGVzKHMpKWJyZWFrO3RoaXMuX3JlYXJyYW5nZSh0LHMpLHRoaXMuX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2goKSk7YnJlYWt9cmV0dXJuIHRoaXMuX2NvbnRhY3RDb250YWluZXJzKHQpLGUudWkuZGRtYW5hZ2VyJiZlLnVpLmRkbWFuYWdlci5kcmFnKHRoaXMsdCksdGhpcy5fdHJpZ2dlcigic29ydCIsdCx0aGlzLl91aUhhc2goKSksdGhpcy5sYXN0UG9zaXRpb25BYnM9dGhpcy5wb3NpdGlvbkFicywhMX0sX21vdXNlU3RvcDpmdW5jdGlvbih0LGkpe2lmKHQpe2lmKGUudWkuZGRtYW5hZ2VyJiYhdGhpcy5vcHRpb25zLmRyb3BCZWhhdmlvdXImJmUudWkuZGRtYW5hZ2VyLmRyb3AodGhpcyx0KSx0aGlzLm9wdGlvbnMucmV2ZXJ0KXt2YXIgcz10aGlzLG49dGhpcy5wbGFjZWhvbGRlci5vZmZzZXQoKSxhPXRoaXMub3B0aW9ucy5heGlzLG89e307YSYmIngiIT09YXx8KG8ubGVmdD1uLmxlZnQtdGhpcy5vZmZzZXQucGFyZW50LmxlZnQtdGhpcy5tYXJnaW5zLmxlZnQrKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsTGVmdCkpLGEmJiJ5IiE9PWF8fChvLnRvcD1uLnRvcC10aGlzLm9mZnNldC5wYXJlbnQudG9wLXRoaXMubWFyZ2lucy50b3ArKHRoaXMub2Zmc2V0UGFyZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5ib2R5PzA6dGhpcy5vZmZzZXRQYXJlbnRbMF0uc2Nyb2xsVG9wKSksdGhpcy5yZXZlcnRpbmc9ITAsZSh0aGlzLmhlbHBlcikuYW5pbWF0ZShvLHBhcnNlSW50KHRoaXMub3B0aW9ucy5yZXZlcnQsMTApfHw1MDAsZnVuY3Rpb24oKXtzLl9jbGVhcih0KX0pfWVsc2UgdGhpcy5fY2xlYXIodCxpKTtyZXR1cm4hMX19LGNhbmNlbDpmdW5jdGlvbigpe2lmKHRoaXMuZHJhZ2dpbmcpe3RoaXMuX21vdXNlVXAoe3RhcmdldDpudWxsfSksIm9yaWdpbmFsIj09PXRoaXMub3B0aW9ucy5oZWxwZXI/dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik6dGhpcy5jdXJyZW50SXRlbS5zaG93KCk7Zm9yKHZhciB0PXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTt0Pj0wO3QtLSl0aGlzLmNvbnRhaW5lcnNbdF0uX3RyaWdnZXIoImRlYWN0aXZhdGUiLG51bGwsdGhpcy5fdWlIYXNoKHRoaXMpKSx0aGlzLmNvbnRhaW5lcnNbdF0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1t0XS5fdHJpZ2dlcigib3V0IixudWxsLHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3RdLmNvbnRhaW5lckNhY2hlLm92ZXI9MCl9cmV0dXJuIHRoaXMucGxhY2Vob2xkZXImJih0aGlzLnBsYWNlaG9sZGVyWzBdLnBhcmVudE5vZGUmJnRoaXMucGxhY2Vob2xkZXJbMF0ucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKSwib3JpZ2luYWwiIT09dGhpcy5vcHRpb25zLmhlbHBlciYmdGhpcy5oZWxwZXImJnRoaXMuaGVscGVyWzBdLnBhcmVudE5vZGUmJnRoaXMuaGVscGVyLnJlbW92ZSgpLGUuZXh0ZW5kKHRoaXMse2hlbHBlcjpudWxsLGRyYWdnaW5nOiExLHJldmVydGluZzohMSxfbm9GaW5hbFNvcnQ6bnVsbH0pLHRoaXMuZG9tUG9zaXRpb24ucHJldj9lKHRoaXMuZG9tUG9zaXRpb24ucHJldikuYWZ0ZXIodGhpcy5jdXJyZW50SXRlbSk6ZSh0aGlzLmRvbVBvc2l0aW9uLnBhcmVudCkucHJlcGVuZCh0aGlzLmN1cnJlbnRJdGVtKSksdGhpc30sc2VyaWFsaXplOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMuX2dldEl0ZW1zQXNqUXVlcnkodCYmdC5jb25uZWN0ZWQpLHM9W107cmV0dXJuIHQ9dHx8e30sZShpKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9KGUodC5pdGVtfHx0aGlzKS5hdHRyKHQuYXR0cmlidXRlfHwiaWQiKXx8IiIpLm1hdGNoKHQuZXhwcmVzc2lvbnx8LyguKylbXC09X10oLispLyk7aSYmcy5wdXNoKCh0LmtleXx8aVsxXSsiW10iKSsiPSIrKHQua2V5JiZ0LmV4cHJlc3Npb24/aVsxXTppWzJdKSl9KSwhcy5sZW5ndGgmJnQua2V5JiZzLnB1c2godC5rZXkrIj0iKSxzLmpvaW4oIiYiKX0sdG9BcnJheTpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9nZXRJdGVtc0FzalF1ZXJ5KHQmJnQuY29ubmVjdGVkKSxzPVtdO3JldHVybiB0PXR8fHt9LGkuZWFjaChmdW5jdGlvbigpe3MucHVzaChlKHQuaXRlbXx8dGhpcykuYXR0cih0LmF0dHJpYnV0ZXx8ImlkIil8fCIiKX0pLHN9LF9pbnRlcnNlY3RzV2l0aDpmdW5jdGlvbihlKXt2YXIgdD10aGlzLnBvc2l0aW9uQWJzLmxlZnQsaT10K3RoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgscz10aGlzLnBvc2l0aW9uQWJzLnRvcCxuPXMrdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy5oZWlnaHQsYT1lLmxlZnQsbz1hK2Uud2lkdGgscj1lLnRvcCxoPXIrZS5oZWlnaHQsbD10aGlzLm9mZnNldC5jbGljay50b3AsdT10aGlzLm9mZnNldC5jbGljay5sZWZ0LGQ9IngiPT09dGhpcy5vcHRpb25zLmF4aXN8fHMrbD5yJiZoPnMrbCxjPSJ5Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0K3U+YSYmbz50K3UscD1kJiZjO3JldHVybiJwb2ludGVyIj09PXRoaXMub3B0aW9ucy50b2xlcmFuY2V8fHRoaXMub3B0aW9ucy5mb3JjZVBvaW50ZXJGb3JDb250YWluZXJzfHwicG9pbnRlciIhPT10aGlzLm9wdGlvbnMudG9sZXJhbmNlJiZ0aGlzLmhlbHBlclByb3BvcnRpb25zW3RoaXMuZmxvYXRpbmc/IndpZHRoIjoiaGVpZ2h0Il0+ZVt0aGlzLmZsb2F0aW5nPyJ3aWR0aCI6ImhlaWdodCJdP3A6dCt0aGlzLmhlbHBlclByb3BvcnRpb25zLndpZHRoLzI+YSYmbz5pLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgvMiYmcyt0aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yPnImJmg+bi10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC8yfSxfaW50ZXJzZWN0c1dpdGhQb2ludGVyOmZ1bmN0aW9uKGUpe3ZhciB0PSJ4Ij09PXRoaXMub3B0aW9ucy5heGlzfHx0aGlzLl9pc092ZXJBeGlzKHRoaXMucG9zaXRpb25BYnMudG9wK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCxlLnRvcCxlLmhlaWdodCksaT0ieSI9PT10aGlzLm9wdGlvbnMuYXhpc3x8dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxlLmxlZnQsZS53aWR0aCkscz10JiZpLG49dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCksYT10aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpO3JldHVybiBzP3RoaXMuZmxvYXRpbmc/YSYmInJpZ2h0Ij09PWF8fCJkb3duIj09PW4/MjoxOm4mJigiZG93biI9PT1uPzI6MSk6ITF9LF9pbnRlcnNlY3RzV2l0aFNpZGVzOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuX2lzT3ZlckF4aXModGhpcy5wb3NpdGlvbkFicy50b3ArdGhpcy5vZmZzZXQuY2xpY2sudG9wLGUudG9wK2UuaGVpZ2h0LzIsZS5oZWlnaHQpLGk9dGhpcy5faXNPdmVyQXhpcyh0aGlzLnBvc2l0aW9uQWJzLmxlZnQrdGhpcy5vZmZzZXQuY2xpY2subGVmdCxlLmxlZnQrZS53aWR0aC8yLGUud2lkdGgpLHM9dGhpcy5fZ2V0RHJhZ1ZlcnRpY2FsRGlyZWN0aW9uKCksbj10aGlzLl9nZXREcmFnSG9yaXpvbnRhbERpcmVjdGlvbigpO3JldHVybiB0aGlzLmZsb2F0aW5nJiZuPyJyaWdodCI9PT1uJiZpfHwibGVmdCI9PT1uJiYhaTpzJiYoImRvd24iPT09cyYmdHx8InVwIj09PXMmJiF0KX0sX2dldERyYWdWZXJ0aWNhbERpcmVjdGlvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMucG9zaXRpb25BYnMudG9wLXRoaXMubGFzdFBvc2l0aW9uQWJzLnRvcDtyZXR1cm4gMCE9PWUmJihlPjA/ImRvd24iOiJ1cCIpfSxfZ2V0RHJhZ0hvcml6b250YWxEaXJlY3Rpb246ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnBvc2l0aW9uQWJzLmxlZnQtdGhpcy5sYXN0UG9zaXRpb25BYnMubGVmdDtyZXR1cm4gMCE9PWUmJihlPjA/InJpZ2h0IjoibGVmdCIpfSxyZWZyZXNoOmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9yZWZyZXNoSXRlbXMoZSksdGhpcy5fc2V0SGFuZGxlQ2xhc3NOYW1lKCksdGhpcy5yZWZyZXNoUG9zaXRpb25zKCksdGhpc30sX2Nvbm5lY3RXaXRoOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiBlLmNvbm5lY3RXaXRoLmNvbnN0cnVjdG9yPT09U3RyaW5nP1tlLmNvbm5lY3RXaXRoXTplLmNvbm5lY3RXaXRofSxfZ2V0SXRlbXNBc2pRdWVyeTpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7ci5wdXNoKHRoaXMpfXZhciBzLG4sYSxvLHI9W10saD1bXSxsPXRoaXMuX2Nvbm5lY3RXaXRoKCk7aWYobCYmdClmb3Iocz1sLmxlbmd0aC0xO3M+PTA7cy0tKWZvcihhPWUobFtzXSx0aGlzLmRvY3VtZW50WzBdKSxuPWEubGVuZ3RoLTE7bj49MDtuLS0pbz1lLmRhdGEoYVtuXSx0aGlzLndpZGdldEZ1bGxOYW1lKSxvJiZvIT09dGhpcyYmIW8ub3B0aW9ucy5kaXNhYmxlZCYmaC5wdXNoKFtlLmlzRnVuY3Rpb24oby5vcHRpb25zLml0ZW1zKT9vLm9wdGlvbnMuaXRlbXMuY2FsbChvLmVsZW1lbnQpOmUoby5vcHRpb25zLml0ZW1zLG8uZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSxvXSk7Zm9yKGgucHVzaChbZS5pc0Z1bmN0aW9uKHRoaXMub3B0aW9ucy5pdGVtcyk/dGhpcy5vcHRpb25zLml0ZW1zLmNhbGwodGhpcy5lbGVtZW50LG51bGwse29wdGlvbnM6dGhpcy5vcHRpb25zLGl0ZW06dGhpcy5jdXJyZW50SXRlbX0pOmUodGhpcy5vcHRpb25zLml0ZW1zLHRoaXMuZWxlbWVudCkubm90KCIudWktc29ydGFibGUtaGVscGVyIikubm90KCIudWktc29ydGFibGUtcGxhY2Vob2xkZXIiKSx0aGlzXSkscz1oLmxlbmd0aC0xO3M+PTA7cy0tKWhbc11bMF0uZWFjaChpKTtyZXR1cm4gZShyKX0sX3JlbW92ZUN1cnJlbnRzRnJvbUl0ZW1zOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jdXJyZW50SXRlbS5maW5kKCI6ZGF0YSgiK3RoaXMud2lkZ2V0TmFtZSsiLWl0ZW0pIik7dGhpcy5pdGVtcz1lLmdyZXAodGhpcy5pdGVtcyxmdW5jdGlvbihlKXtmb3IodmFyIGk9MDt0Lmxlbmd0aD5pO2krKylpZih0W2ldPT09ZS5pdGVtWzBdKXJldHVybiExO3JldHVybiEwfSl9LF9yZWZyZXNoSXRlbXM6ZnVuY3Rpb24odCl7dGhpcy5pdGVtcz1bXSx0aGlzLmNvbnRhaW5lcnM9W3RoaXNdO3ZhciBpLHMsbixhLG8scixoLGwsdT10aGlzLml0ZW1zLGQ9W1tlLmlzRnVuY3Rpb24odGhpcy5vcHRpb25zLml0ZW1zKT90aGlzLm9wdGlvbnMuaXRlbXMuY2FsbCh0aGlzLmVsZW1lbnRbMF0sdCx7aXRlbTp0aGlzLmN1cnJlbnRJdGVtfSk6ZSh0aGlzLm9wdGlvbnMuaXRlbXMsdGhpcy5lbGVtZW50KSx0aGlzXV0sYz10aGlzLl9jb25uZWN0V2l0aCgpO2lmKGMmJnRoaXMucmVhZHkpZm9yKGk9Yy5sZW5ndGgtMTtpPj0wO2ktLSlmb3Iobj1lKGNbaV0sdGhpcy5kb2N1bWVudFswXSkscz1uLmxlbmd0aC0xO3M+PTA7cy0tKWE9ZS5kYXRhKG5bc10sdGhpcy53aWRnZXRGdWxsTmFtZSksYSYmYSE9PXRoaXMmJiFhLm9wdGlvbnMuZGlzYWJsZWQmJihkLnB1c2goW2UuaXNGdW5jdGlvbihhLm9wdGlvbnMuaXRlbXMpP2Eub3B0aW9ucy5pdGVtcy5jYWxsKGEuZWxlbWVudFswXSx0LHtpdGVtOnRoaXMuY3VycmVudEl0ZW19KTplKGEub3B0aW9ucy5pdGVtcyxhLmVsZW1lbnQpLGFdKSx0aGlzLmNvbnRhaW5lcnMucHVzaChhKSk7Zm9yKGk9ZC5sZW5ndGgtMTtpPj0wO2ktLSlmb3Iobz1kW2ldWzFdLHI9ZFtpXVswXSxzPTAsbD1yLmxlbmd0aDtsPnM7cysrKWg9ZShyW3NdKSxoLmRhdGEodGhpcy53aWRnZXROYW1lKyItaXRlbSIsbyksdS5wdXNoKHtpdGVtOmgsaW5zdGFuY2U6byx3aWR0aDowLGhlaWdodDowLGxlZnQ6MCx0b3A6MH0pfSxyZWZyZXNoUG9zaXRpb25zOmZ1bmN0aW9uKHQpe3RoaXMuZmxvYXRpbmc9dGhpcy5pdGVtcy5sZW5ndGg/IngiPT09dGhpcy5vcHRpb25zLmF4aXN8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5pdGVtc1swXS5pdGVtKTohMSx0aGlzLm9mZnNldFBhcmVudCYmdGhpcy5oZWxwZXImJih0aGlzLm9mZnNldC5wYXJlbnQ9dGhpcy5fZ2V0UGFyZW50T2Zmc2V0KCkpO3ZhciBpLHMsbixhO2ZvcihpPXRoaXMuaXRlbXMubGVuZ3RoLTE7aT49MDtpLS0pcz10aGlzLml0ZW1zW2ldLHMuaW5zdGFuY2UhPT10aGlzLmN1cnJlbnRDb250YWluZXImJnRoaXMuY3VycmVudENvbnRhaW5lciYmcy5pdGVtWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXXx8KG49dGhpcy5vcHRpb25zLnRvbGVyYW5jZUVsZW1lbnQ/ZSh0aGlzLm9wdGlvbnMudG9sZXJhbmNlRWxlbWVudCxzLml0ZW0pOnMuaXRlbSx0fHwocy53aWR0aD1uLm91dGVyV2lkdGgoKSxzLmhlaWdodD1uLm91dGVySGVpZ2h0KCkpLGE9bi5vZmZzZXQoKSxzLmxlZnQ9YS5sZWZ0LHMudG9wPWEudG9wKTtpZih0aGlzLm9wdGlvbnMuY3VzdG9tJiZ0aGlzLm9wdGlvbnMuY3VzdG9tLnJlZnJlc2hDb250YWluZXJzKXRoaXMub3B0aW9ucy5jdXN0b20ucmVmcmVzaENvbnRhaW5lcnMuY2FsbCh0aGlzKTtlbHNlIGZvcihpPXRoaXMuY29udGFpbmVycy5sZW5ndGgtMTtpPj0wO2ktLSlhPXRoaXMuY29udGFpbmVyc1tpXS5lbGVtZW50Lm9mZnNldCgpLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS5sZWZ0PWEubGVmdCx0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUudG9wPWEudG9wLHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZS53aWR0aD10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlcldpZHRoKCksdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLmhlaWdodD10aGlzLmNvbnRhaW5lcnNbaV0uZWxlbWVudC5vdXRlckhlaWdodCgpO3JldHVybiB0aGlzfSxfY3JlYXRlUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCl7dD10fHx0aGlzO3ZhciBpLHM9dC5vcHRpb25zO3MucGxhY2Vob2xkZXImJnMucGxhY2Vob2xkZXIuY29uc3RydWN0b3IhPT1TdHJpbmd8fChpPXMucGxhY2Vob2xkZXIscy5wbGFjZWhvbGRlcj17ZWxlbWVudDpmdW5jdGlvbigpe3ZhciBzPXQuY3VycmVudEl0ZW1bMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxuPWUoIjwiK3MrIj4iLHQuZG9jdW1lbnRbMF0pLmFkZENsYXNzKGl8fHQuY3VycmVudEl0ZW1bMF0uY2xhc3NOYW1lKyIgdWktc29ydGFibGUtcGxhY2Vob2xkZXIiKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIik7cmV0dXJuInRib2R5Ij09PXM/dC5fY3JlYXRlVHJQbGFjZWhvbGRlcih0LmN1cnJlbnRJdGVtLmZpbmQoInRyIikuZXEoMCksZSgiPHRyPiIsdC5kb2N1bWVudFswXSkuYXBwZW5kVG8obikpOiJ0ciI9PT1zP3QuX2NyZWF0ZVRyUGxhY2Vob2xkZXIodC5jdXJyZW50SXRlbSxuKToiaW1nIj09PXMmJm4uYXR0cigic3JjIix0LmN1cnJlbnRJdGVtLmF0dHIoInNyYyIpKSxpfHxuLmNzcygidmlzaWJpbGl0eSIsImhpZGRlbiIpLG59LHVwZGF0ZTpmdW5jdGlvbihlLG4peyghaXx8cy5mb3JjZVBsYWNlaG9sZGVyU2l6ZSkmJihuLmhlaWdodCgpfHxuLmhlaWdodCh0LmN1cnJlbnRJdGVtLmlubmVySGVpZ2h0KCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdUb3AiKXx8MCwxMCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdCb3R0b20iKXx8MCwxMCkpLG4ud2lkdGgoKXx8bi53aWR0aCh0LmN1cnJlbnRJdGVtLmlubmVyV2lkdGgoKS1wYXJzZUludCh0LmN1cnJlbnRJdGVtLmNzcygicGFkZGluZ0xlZnQiKXx8MCwxMCktcGFyc2VJbnQodC5jdXJyZW50SXRlbS5jc3MoInBhZGRpbmdSaWdodCIpfHwwLDEwKSkpfX0pLHQucGxhY2Vob2xkZXI9ZShzLnBsYWNlaG9sZGVyLmVsZW1lbnQuY2FsbCh0LmVsZW1lbnQsdC5jdXJyZW50SXRlbSkpLHQuY3VycmVudEl0ZW0uYWZ0ZXIodC5wbGFjZWhvbGRlcikscy5wbGFjZWhvbGRlci51cGRhdGUodCx0LnBsYWNlaG9sZGVyKX0sX2NyZWF0ZVRyUGxhY2Vob2xkZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz10aGlzO3QuY2hpbGRyZW4oKS5lYWNoKGZ1bmN0aW9uKCl7ZSgiPHRkPiYjMTYwOzwvdGQ+IixzLmRvY3VtZW50WzBdKS5hdHRyKCJjb2xzcGFuIixlKHRoaXMpLmF0dHIoImNvbHNwYW4iKXx8MSkuYXBwZW5kVG8oaSl9KX0sX2NvbnRhY3RDb250YWluZXJzOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scixoLGwsdSxkLGM9bnVsbCxwPW51bGw7Zm9yKGk9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO2k+PTA7aS0tKWlmKCFlLmNvbnRhaW5zKHRoaXMuY3VycmVudEl0ZW1bMF0sdGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0pKWlmKHRoaXMuX2ludGVyc2VjdHNXaXRoKHRoaXMuY29udGFpbmVyc1tpXS5jb250YWluZXJDYWNoZSkpe2lmKGMmJmUuY29udGFpbnModGhpcy5jb250YWluZXJzW2ldLmVsZW1lbnRbMF0sYy5lbGVtZW50WzBdKSljb250aW51ZTtjPXRoaXMuY29udGFpbmVyc1tpXSxwPWl9ZWxzZSB0aGlzLmNvbnRhaW5lcnNbaV0uY29udGFpbmVyQ2FjaGUub3ZlciYmKHRoaXMuY29udGFpbmVyc1tpXS5fdHJpZ2dlcigib3V0Iix0LHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW2ldLmNvbnRhaW5lckNhY2hlLm92ZXI9MCk7aWYoYylpZigxPT09dGhpcy5jb250YWluZXJzLmxlbmd0aCl0aGlzLmNvbnRhaW5lcnNbcF0uY29udGFpbmVyQ2FjaGUub3Zlcnx8KHRoaXMuY29udGFpbmVyc1twXS5fdHJpZ2dlcigib3ZlciIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY29udGFpbmVyc1twXS5jb250YWluZXJDYWNoZS5vdmVyPTEpO2Vsc2V7Zm9yKG49MWU0LGE9bnVsbCx1PWMuZmxvYXRpbmd8fHRoaXMuX2lzRmxvYXRpbmcodGhpcy5jdXJyZW50SXRlbSksbz11PyJsZWZ0IjoidG9wIixyPXU/IndpZHRoIjoiaGVpZ2h0IixkPXU/ImNsaWVudFgiOiJjbGllbnRZIixzPXRoaXMuaXRlbXMubGVuZ3RoLTE7cz49MDtzLS0pZS5jb250YWlucyh0aGlzLmNvbnRhaW5lcnNbcF0uZWxlbWVudFswXSx0aGlzLml0ZW1zW3NdLml0ZW1bMF0pJiZ0aGlzLml0ZW1zW3NdLml0ZW1bMF0hPT10aGlzLmN1cnJlbnRJdGVtWzBdJiYoaD10aGlzLml0ZW1zW3NdLml0ZW0ub2Zmc2V0KClbb10sbD0hMSx0W2RdLWg+dGhpcy5pdGVtc1tzXVtyXS8yJiYobD0hMCksbj5NYXRoLmFicyh0W2RdLWgpJiYobj1NYXRoLmFicyh0W2RdLWgpLGE9dGhpcy5pdGVtc1tzXSx0aGlzLmRpcmVjdGlvbj1sPyJ1cCI6ImRvd24iKSk7aWYoIWEmJiF0aGlzLm9wdGlvbnMuZHJvcE9uRW1wdHkpcmV0dXJuO2lmKHRoaXMuY3VycmVudENvbnRhaW5lcj09PXRoaXMuY29udGFpbmVyc1twXSlyZXR1cm4gdGhpcy5jdXJyZW50Q29udGFpbmVyLmNvbnRhaW5lckNhY2hlLm92ZXJ8fCh0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoIm92ZXIiLHQsdGhpcy5fdWlIYXNoKCkpLHRoaXMuY3VycmVudENvbnRhaW5lci5jb250YWluZXJDYWNoZS5vdmVyPTEpLHZvaWQgMDthP3RoaXMuX3JlYXJyYW5nZSh0LGEsbnVsbCwhMCk6dGhpcy5fcmVhcnJhbmdlKHQsbnVsbCx0aGlzLmNvbnRhaW5lcnNbcF0uZWxlbWVudCwhMCksdGhpcy5fdHJpZ2dlcigiY2hhbmdlIix0LHRoaXMuX3VpSGFzaCgpKSx0aGlzLmNvbnRhaW5lcnNbcF0uX3RyaWdnZXIoImNoYW5nZSIsdCx0aGlzLl91aUhhc2godGhpcykpLHRoaXMuY3VycmVudENvbnRhaW5lcj10aGlzLmNvbnRhaW5lcnNbcF0sdGhpcy5vcHRpb25zLnBsYWNlaG9sZGVyLnVwZGF0ZSh0aGlzLmN1cnJlbnRDb250YWluZXIsdGhpcy5wbGFjZWhvbGRlciksdGhpcy5jb250YWluZXJzW3BdLl90cmlnZ2VyKCJvdmVyIix0LHRoaXMuX3VpSGFzaCh0aGlzKSksdGhpcy5jb250YWluZXJzW3BdLmNvbnRhaW5lckNhY2hlLm92ZXI9MX19LF9jcmVhdGVIZWxwZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS5pc0Z1bmN0aW9uKGkuaGVscGVyKT9lKGkuaGVscGVyLmFwcGx5KHRoaXMuZWxlbWVudFswXSxbdCx0aGlzLmN1cnJlbnRJdGVtXSkpOiJjbG9uZSI9PT1pLmhlbHBlcj90aGlzLmN1cnJlbnRJdGVtLmNsb25lKCk6dGhpcy5jdXJyZW50SXRlbTtyZXR1cm4gcy5wYXJlbnRzKCJib2R5IikubGVuZ3RofHxlKCJwYXJlbnQiIT09aS5hcHBlbmRUbz9pLmFwcGVuZFRvOnRoaXMuY3VycmVudEl0ZW1bMF0ucGFyZW50Tm9kZSlbMF0uYXBwZW5kQ2hpbGQoc1swXSksc1swXT09PXRoaXMuY3VycmVudEl0ZW1bMF0mJih0aGlzLl9zdG9yZWRDU1M9e3dpZHRoOnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUud2lkdGgsaGVpZ2h0OnRoaXMuY3VycmVudEl0ZW1bMF0uc3R5bGUuaGVpZ2h0LHBvc2l0aW9uOnRoaXMuY3VycmVudEl0ZW0uY3NzKCJwb3NpdGlvbiIpLHRvcDp0aGlzLmN1cnJlbnRJdGVtLmNzcygidG9wIiksbGVmdDp0aGlzLmN1cnJlbnRJdGVtLmNzcygibGVmdCIpfSksKCFzWzBdLnN0eWxlLndpZHRofHxpLmZvcmNlSGVscGVyU2l6ZSkmJnMud2lkdGgodGhpcy5jdXJyZW50SXRlbS53aWR0aCgpKSwoIXNbMF0uc3R5bGUuaGVpZ2h0fHxpLmZvcmNlSGVscGVyU2l6ZSkmJnMuaGVpZ2h0KHRoaXMuY3VycmVudEl0ZW0uaGVpZ2h0KCkpLHN9LF9hZGp1c3RPZmZzZXRGcm9tSGVscGVyOmZ1bmN0aW9uKHQpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5zcGxpdCgiICIpKSxlLmlzQXJyYXkodCkmJih0PXtsZWZ0Oit0WzBdLHRvcDordFsxXXx8MH0pLCJsZWZ0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXQubGVmdCt0aGlzLm1hcmdpbnMubGVmdCksInJpZ2h0ImluIHQmJih0aGlzLm9mZnNldC5jbGljay5sZWZ0PXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdC5yaWdodCt0aGlzLm1hcmdpbnMubGVmdCksInRvcCJpbiB0JiYodGhpcy5vZmZzZXQuY2xpY2sudG9wPXQudG9wK3RoaXMubWFyZ2lucy50b3ApLCJib3R0b20iaW4gdCYmKHRoaXMub2Zmc2V0LmNsaWNrLnRvcD10aGlzLmhlbHBlclByb3BvcnRpb25zLmhlaWdodC10LmJvdHRvbSt0aGlzLm1hcmdpbnMudG9wKX0sX2dldFBhcmVudE9mZnNldDpmdW5jdGlvbigpe3RoaXMub2Zmc2V0UGFyZW50PXRoaXMuaGVscGVyLm9mZnNldFBhcmVudCgpO3ZhciB0PXRoaXMub2Zmc2V0UGFyZW50Lm9mZnNldCgpO3JldHVybiJhYnNvbHV0ZSI9PT10aGlzLmNzc1Bvc2l0aW9uJiZ0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pJiYodC5sZWZ0Kz10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCksdC50b3ArPXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpKSwodGhpcy5vZmZzZXRQYXJlbnRbMF09PT10aGlzLmRvY3VtZW50WzBdLmJvZHl8fHRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUmJiJodG1sIj09PXRoaXMub2Zmc2V0UGFyZW50WzBdLnRhZ05hbWUudG9Mb3dlckNhc2UoKSYmZS51aS5pZSkmJih0PXt0b3A6MCxsZWZ0OjB9KSx7dG9wOnQudG9wKyhwYXJzZUludCh0aGlzLm9mZnNldFBhcmVudC5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKSxsZWZ0OnQubGVmdCsocGFyc2VJbnQodGhpcy5vZmZzZXRQYXJlbnQuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApfX0sX2dldFJlbGF0aXZlT2Zmc2V0OmZ1bmN0aW9uKCl7aWYoInJlbGF0aXZlIj09PXRoaXMuY3NzUG9zaXRpb24pe3ZhciBlPXRoaXMuY3VycmVudEl0ZW0ucG9zaXRpb24oKTtyZXR1cm57dG9wOmUudG9wLShwYXJzZUludCh0aGlzLmhlbHBlci5jc3MoInRvcCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCksbGVmdDplLmxlZnQtKHBhcnNlSW50KHRoaXMuaGVscGVyLmNzcygibGVmdCIpLDEwKXx8MCkrdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpfX1yZXR1cm57dG9wOjAsbGVmdDowfX0sX2NhY2hlTWFyZ2luczpmdW5jdGlvbigpe3RoaXMubWFyZ2lucz17bGVmdDpwYXJzZUludCh0aGlzLmN1cnJlbnRJdGVtLmNzcygibWFyZ2luTGVmdCIpLDEwKXx8MCx0b3A6cGFyc2VJbnQodGhpcy5jdXJyZW50SXRlbS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MH19LF9jYWNoZUhlbHBlclByb3BvcnRpb25zOmZ1bmN0aW9uKCl7dGhpcy5oZWxwZXJQcm9wb3J0aW9ucz17d2lkdGg6dGhpcy5oZWxwZXIub3V0ZXJXaWR0aCgpLGhlaWdodDp0aGlzLmhlbHBlci5vdXRlckhlaWdodCgpfX0sX3NldENvbnRhaW5tZW50OmZ1bmN0aW9uKCl7dmFyIHQsaSxzLG49dGhpcy5vcHRpb25zOyJwYXJlbnQiPT09bi5jb250YWlubWVudCYmKG4uY29udGFpbm1lbnQ9dGhpcy5oZWxwZXJbMF0ucGFyZW50Tm9kZSksKCJkb2N1bWVudCI9PT1uLmNvbnRhaW5tZW50fHwid2luZG93Ij09PW4uY29udGFpbm1lbnQpJiYodGhpcy5jb250YWlubWVudD1bMC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0LDAtdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wLXRoaXMub2Zmc2V0LnBhcmVudC50b3AsImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LndpZHRoKCktdGhpcy5oZWxwZXJQcm9wb3J0aW9ucy53aWR0aC10aGlzLm1hcmdpbnMubGVmdCwoImRvY3VtZW50Ij09PW4uY29udGFpbm1lbnQ/dGhpcy5kb2N1bWVudC53aWR0aCgpOnRoaXMud2luZG93LmhlaWdodCgpfHx0aGlzLmRvY3VtZW50WzBdLmJvZHkucGFyZW50Tm9kZS5zY3JvbGxIZWlnaHQpLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKSwvXihkb2N1bWVudHx3aW5kb3d8cGFyZW50KSQvLnRlc3Qobi5jb250YWlubWVudCl8fCh0PWUobi5jb250YWlubWVudClbMF0saT1lKG4uY29udGFpbm1lbnQpLm9mZnNldCgpLHM9ImhpZGRlbiIhPT1lKHQpLmNzcygib3ZlcmZsb3ciKSx0aGlzLmNvbnRhaW5tZW50PVtpLmxlZnQrKHBhcnNlSW50KGUodCkuY3NzKCJib3JkZXJMZWZ0V2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChlKHQpLmNzcygicGFkZGluZ0xlZnQiKSwxMCl8fDApLXRoaXMubWFyZ2lucy5sZWZ0LGkudG9wKyhwYXJzZUludChlKHQpLmNzcygiYm9yZGVyVG9wV2lkdGgiKSwxMCl8fDApKyhwYXJzZUludChlKHQpLmNzcygicGFkZGluZ1RvcCIpLDEwKXx8MCktdGhpcy5tYXJnaW5zLnRvcCxpLmxlZnQrKHM/TWF0aC5tYXgodC5zY3JvbGxXaWR0aCx0Lm9mZnNldFdpZHRoKTp0Lm9mZnNldFdpZHRoKS0ocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlckxlZnRXaWR0aCIpLDEwKXx8MCktKHBhcnNlSW50KGUodCkuY3NzKCJwYWRkaW5nUmlnaHQiKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMud2lkdGgtdGhpcy5tYXJnaW5zLmxlZnQsaS50b3ArKHM/TWF0aC5tYXgodC5zY3JvbGxIZWlnaHQsdC5vZmZzZXRIZWlnaHQpOnQub2Zmc2V0SGVpZ2h0KS0ocGFyc2VJbnQoZSh0KS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoZSh0KS5jc3MoInBhZGRpbmdCb3R0b20iKSwxMCl8fDApLXRoaXMuaGVscGVyUHJvcG9ydGlvbnMuaGVpZ2h0LXRoaXMubWFyZ2lucy50b3BdKX0sX2NvbnZlcnRQb3NpdGlvblRvOmZ1bmN0aW9uKHQsaSl7aXx8KGk9dGhpcy5wb3NpdGlvbik7dmFyIHM9ImFic29sdXRlIj09PXQ/MTotMSxuPSJhYnNvbHV0ZSIhPT10aGlzLmNzc1Bvc2l0aW9ufHx0aGlzLnNjcm9sbFBhcmVudFswXSE9PXRoaXMuZG9jdW1lbnRbMF0mJmUuY29udGFpbnModGhpcy5zY3JvbGxQYXJlbnRbMF0sdGhpcy5vZmZzZXRQYXJlbnRbMF0pP3RoaXMuc2Nyb2xsUGFyZW50OnRoaXMub2Zmc2V0UGFyZW50LGE9LyhodG1sfGJvZHkpL2kudGVzdChuWzBdLnRhZ05hbWUpO3JldHVybnt0b3A6aS50b3ArdGhpcy5vZmZzZXQucmVsYXRpdmUudG9wKnMrdGhpcy5vZmZzZXQucGFyZW50LnRvcCpzLSgiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsVG9wKCk6YT8wOm4uc2Nyb2xsVG9wKCkpKnMsbGVmdDppLmxlZnQrdGhpcy5vZmZzZXQucmVsYXRpdmUubGVmdCpzK3RoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KnMtKCJmaXhlZCI9PT10aGlzLmNzc1Bvc2l0aW9uPy10aGlzLnNjcm9sbFBhcmVudC5zY3JvbGxMZWZ0KCk6YT8wOm4uc2Nyb2xsTGVmdCgpKSpzfX0sX2dlbmVyYXRlUG9zaXRpb246ZnVuY3Rpb24odCl7dmFyIGkscyxuPXRoaXMub3B0aW9ucyxhPXQucGFnZVgsbz10LnBhZ2VZLHI9ImFic29sdXRlIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmZS5jb250YWlucyh0aGlzLnNjcm9sbFBhcmVudFswXSx0aGlzLm9mZnNldFBhcmVudFswXSk/dGhpcy5zY3JvbGxQYXJlbnQ6dGhpcy5vZmZzZXRQYXJlbnQsaD0vKGh0bWx8Ym9keSkvaS50ZXN0KHJbMF0udGFnTmFtZSk7cmV0dXJuInJlbGF0aXZlIiE9PXRoaXMuY3NzUG9zaXRpb258fHRoaXMuc2Nyb2xsUGFyZW50WzBdIT09dGhpcy5kb2N1bWVudFswXSYmdGhpcy5zY3JvbGxQYXJlbnRbMF0hPT10aGlzLm9mZnNldFBhcmVudFswXXx8KHRoaXMub2Zmc2V0LnJlbGF0aXZlPXRoaXMuX2dldFJlbGF0aXZlT2Zmc2V0KCkpLHRoaXMub3JpZ2luYWxQb3NpdGlvbiYmKHRoaXMuY29udGFpbm1lbnQmJih0LnBhZ2VYLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ8dGhpcy5jb250YWlubWVudFswXSYmKGE9dGhpcy5jb250YWlubWVudFswXSt0aGlzLm9mZnNldC5jbGljay5sZWZ0KSx0LnBhZ2VZLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDx0aGlzLmNvbnRhaW5tZW50WzFdJiYobz10aGlzLmNvbnRhaW5tZW50WzFdK3RoaXMub2Zmc2V0LmNsaWNrLnRvcCksdC5wYWdlWC10aGlzLm9mZnNldC5jbGljay5sZWZ0PnRoaXMuY29udGFpbm1lbnRbMl0mJihhPXRoaXMuY29udGFpbm1lbnRbMl0rdGhpcy5vZmZzZXQuY2xpY2subGVmdCksdC5wYWdlWS10aGlzLm9mZnNldC5jbGljay50b3A+dGhpcy5jb250YWlubWVudFszXSYmKG89dGhpcy5jb250YWlubWVudFszXSt0aGlzLm9mZnNldC5jbGljay50b3ApKSxuLmdyaWQmJihpPXRoaXMub3JpZ2luYWxQYWdlWStNYXRoLnJvdW5kKChvLXRoaXMub3JpZ2luYWxQYWdlWSkvbi5ncmlkWzFdKSpuLmdyaWRbMV0sbz10aGlzLmNvbnRhaW5tZW50P2ktdGhpcy5vZmZzZXQuY2xpY2sudG9wPj10aGlzLmNvbnRhaW5tZW50WzFdJiZpLXRoaXMub2Zmc2V0LmNsaWNrLnRvcDw9dGhpcy5jb250YWlubWVudFszXT9pOmktdGhpcy5vZmZzZXQuY2xpY2sudG9wPj10aGlzLmNvbnRhaW5tZW50WzFdP2ktbi5ncmlkWzFdOmkrbi5ncmlkWzFdOmkscz10aGlzLm9yaWdpbmFsUGFnZVgrTWF0aC5yb3VuZCgoYS10aGlzLm9yaWdpbmFsUGFnZVgpL24uZ3JpZFswXSkqbi5ncmlkWzBdLGE9dGhpcy5jb250YWlubWVudD9zLXRoaXMub2Zmc2V0LmNsaWNrLmxlZnQ+PXRoaXMuY29udGFpbm1lbnRbMF0mJnMtdGhpcy5vZmZzZXQuY2xpY2subGVmdDw9dGhpcy5jb250YWlubWVudFsyXT9zOnMtdGhpcy5vZmZzZXQuY2xpY2subGVmdD49dGhpcy5jb250YWlubWVudFswXT9zLW4uZ3JpZFswXTpzK24uZ3JpZFswXTpzKSkse3RvcDpvLXRoaXMub2Zmc2V0LmNsaWNrLnRvcC10aGlzLm9mZnNldC5yZWxhdGl2ZS50b3AtdGhpcy5vZmZzZXQucGFyZW50LnRvcCsoImZpeGVkIj09PXRoaXMuY3NzUG9zaXRpb24/LXRoaXMuc2Nyb2xsUGFyZW50LnNjcm9sbFRvcCgpOmg/MDpyLnNjcm9sbFRvcCgpKSxsZWZ0OmEtdGhpcy5vZmZzZXQuY2xpY2subGVmdC10aGlzLm9mZnNldC5yZWxhdGl2ZS5sZWZ0LXRoaXMub2Zmc2V0LnBhcmVudC5sZWZ0KygiZml4ZWQiPT09dGhpcy5jc3NQb3NpdGlvbj8tdGhpcy5zY3JvbGxQYXJlbnQuc2Nyb2xsTGVmdCgpOmg/MDpyLnNjcm9sbExlZnQoKSl9fSxfcmVhcnJhbmdlOmZ1bmN0aW9uKGUsdCxpLHMpe2k/aVswXS5hcHBlbmRDaGlsZCh0aGlzLnBsYWNlaG9sZGVyWzBdKTp0Lml0ZW1bMF0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodGhpcy5wbGFjZWhvbGRlclswXSwiZG93biI9PT10aGlzLmRpcmVjdGlvbj90Lml0ZW1bMF06dC5pdGVtWzBdLm5leHRTaWJsaW5nKSx0aGlzLmNvdW50ZXI9dGhpcy5jb3VudGVyPysrdGhpcy5jb3VudGVyOjE7dmFyIG49dGhpcy5jb3VudGVyO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7bj09PXRoaXMuY291bnRlciYmdGhpcy5yZWZyZXNoUG9zaXRpb25zKCFzKX0pfSxfY2xlYXI6ZnVuY3Rpb24oZSx0KXtmdW5jdGlvbiBpKGUsdCxpKXtyZXR1cm4gZnVuY3Rpb24ocyl7aS5fdHJpZ2dlcihlLHMsdC5fdWlIYXNoKHQpKX19dGhpcy5yZXZlcnRpbmc9ITE7dmFyIHMsbj1bXTtpZighdGhpcy5fbm9GaW5hbFNvcnQmJnRoaXMuY3VycmVudEl0ZW0ucGFyZW50KCkubGVuZ3RoJiZ0aGlzLnBsYWNlaG9sZGVyLmJlZm9yZSh0aGlzLmN1cnJlbnRJdGVtKSx0aGlzLl9ub0ZpbmFsU29ydD1udWxsLHRoaXMuaGVscGVyWzBdPT09dGhpcy5jdXJyZW50SXRlbVswXSl7Zm9yKHMgaW4gdGhpcy5fc3RvcmVkQ1NTKSgiYXV0byI9PT10aGlzLl9zdG9yZWRDU1Nbc118fCJzdGF0aWMiPT09dGhpcy5fc3RvcmVkQ1NTW3NdKSYmKHRoaXMuX3N0b3JlZENTU1tzXT0iIik7dGhpcy5jdXJyZW50SXRlbS5jc3ModGhpcy5fc3RvcmVkQ1NTKS5yZW1vdmVDbGFzcygidWktc29ydGFibGUtaGVscGVyIil9ZWxzZSB0aGlzLmN1cnJlbnRJdGVtLnNob3coKTtmb3IodGhpcy5mcm9tT3V0c2lkZSYmIXQmJm4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJyZWNlaXZlIixlLHRoaXMuX3VpSGFzaCh0aGlzLmZyb21PdXRzaWRlKSl9KSwhdGhpcy5mcm9tT3V0c2lkZSYmdGhpcy5kb21Qb3NpdGlvbi5wcmV2PT09dGhpcy5jdXJyZW50SXRlbS5wcmV2KCkubm90KCIudWktc29ydGFibGUtaGVscGVyIilbMF0mJnRoaXMuZG9tUG9zaXRpb24ucGFyZW50PT09dGhpcy5jdXJyZW50SXRlbS5wYXJlbnQoKVswXXx8dHx8bi5wdXNoKGZ1bmN0aW9uKGUpe3RoaXMuX3RyaWdnZXIoInVwZGF0ZSIsZSx0aGlzLl91aUhhc2goKSl9KSx0aGlzIT09dGhpcy5jdXJyZW50Q29udGFpbmVyJiYodHx8KG4ucHVzaChmdW5jdGlvbihlKXt0aGlzLl90cmlnZ2VyKCJyZW1vdmUiLGUsdGhpcy5fdWlIYXNoKCkpfSksbi5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKCJyZWNlaXZlIix0LHRoaXMuX3VpSGFzaCh0aGlzKSl9fS5jYWxsKHRoaXMsdGhpcy5jdXJyZW50Q29udGFpbmVyKSksbi5wdXNoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0KXtlLl90cmlnZ2VyKCJ1cGRhdGUiLHQsdGhpcy5fdWlIYXNoKHRoaXMpKX19LmNhbGwodGhpcyx0aGlzLmN1cnJlbnRDb250YWluZXIpKSkpLHM9dGhpcy5jb250YWluZXJzLmxlbmd0aC0xO3M+PTA7cy0tKXR8fG4ucHVzaChpKCJkZWFjdGl2YXRlIix0aGlzLHRoaXMuY29udGFpbmVyc1tzXSkpLHRoaXMuY29udGFpbmVyc1tzXS5jb250YWluZXJDYWNoZS5vdmVyJiYobi5wdXNoKGkoIm91dCIsdGhpcyx0aGlzLmNvbnRhaW5lcnNbc10pKSx0aGlzLmNvbnRhaW5lcnNbc10uY29udGFpbmVyQ2FjaGUub3Zlcj0wKTtpZih0aGlzLnN0b3JlZEN1cnNvciYmKHRoaXMuZG9jdW1lbnQuZmluZCgiYm9keSIpLmNzcygiY3Vyc29yIix0aGlzLnN0b3JlZEN1cnNvciksdGhpcy5zdG9yZWRTdHlsZXNoZWV0LnJlbW92ZSgpKSx0aGlzLl9zdG9yZWRPcGFjaXR5JiZ0aGlzLmhlbHBlci5jc3MoIm9wYWNpdHkiLHRoaXMuX3N0b3JlZE9wYWNpdHkpLHRoaXMuX3N0b3JlZFpJbmRleCYmdGhpcy5oZWxwZXIuY3NzKCJ6SW5kZXgiLCJhdXRvIj09PXRoaXMuX3N0b3JlZFpJbmRleD8iIjp0aGlzLl9zdG9yZWRaSW5kZXgpLHRoaXMuZHJhZ2dpbmc9ITEsdHx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlU3RvcCIsZSx0aGlzLl91aUhhc2goKSksdGhpcy5wbGFjZWhvbGRlclswXS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMucGxhY2Vob2xkZXJbMF0pLHRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbHx8KHRoaXMuaGVscGVyWzBdIT09dGhpcy5jdXJyZW50SXRlbVswXSYmdGhpcy5oZWxwZXIucmVtb3ZlKCksdGhpcy5oZWxwZXI9bnVsbCksIXQpe2ZvcihzPTA7bi5sZW5ndGg+cztzKyspbltzXS5jYWxsKHRoaXMsZSk7dGhpcy5fdHJpZ2dlcigic3RvcCIsZSx0aGlzLl91aUhhc2goKSl9cmV0dXJuIHRoaXMuZnJvbU91dHNpZGU9ITEsIXRoaXMuY2FuY2VsSGVscGVyUmVtb3ZhbH0sX3RyaWdnZXI6ZnVuY3Rpb24oKXtlLldpZGdldC5wcm90b3R5cGUuX3RyaWdnZXIuYXBwbHkodGhpcyxhcmd1bWVudHMpPT09ITEmJnRoaXMuY2FuY2VsKCl9LF91aUhhc2g6ZnVuY3Rpb24odCl7dmFyIGk9dHx8dGhpcztyZXR1cm57aGVscGVyOmkuaGVscGVyLHBsYWNlaG9sZGVyOmkucGxhY2Vob2xkZXJ8fGUoW10pLHBvc2l0aW9uOmkucG9zaXRpb24sb3JpZ2luYWxQb3NpdGlvbjppLm9yaWdpbmFsUG9zaXRpb24sb2Zmc2V0OmkucG9zaXRpb25BYnMsaXRlbTppLmN1cnJlbnRJdGVtLHNlbmRlcjp0P3QuZWxlbWVudDpudWxsfX19KSxlLndpZGdldCgidWkuYWNjb3JkaW9uIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthY3RpdmU6MCxhbmltYXRlOnt9LGNvbGxhcHNpYmxlOiExLGV2ZW50OiJjbGljayIsaGVhZGVyOiI+IGxpID4gOmZpcnN0LWNoaWxkLD4gOm5vdChsaSk6ZXZlbiIsaGVpZ2h0U3R5bGU6ImF1dG8iLGljb25zOnthY3RpdmVIZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1zIixoZWFkZXI6InVpLWljb24tdHJpYW5nbGUtMS1lIn0sYWN0aXZhdGU6bnVsbCxiZWZvcmVBY3RpdmF0ZTpudWxsfSxoaWRlUHJvcHM6e2JvcmRlclRvcFdpZHRoOiJoaWRlIixib3JkZXJCb3R0b21XaWR0aDoiaGlkZSIscGFkZGluZ1RvcDoiaGlkZSIscGFkZGluZ0JvdHRvbToiaGlkZSIsaGVpZ2h0OiJoaWRlIn0sc2hvd1Byb3BzOntib3JkZXJUb3BXaWR0aDoic2hvdyIsYm9yZGVyQm90dG9tV2lkdGg6InNob3ciLHBhZGRpbmdUb3A6InNob3ciLHBhZGRpbmdCb3R0b206InNob3ciLGhlaWdodDoic2hvdyJ9LF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnM7dGhpcy5wcmV2U2hvdz10aGlzLnByZXZIaWRlPWUoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWFjY29yZGlvbiB1aS13aWRnZXQgdWktaGVscGVyLXJlc2V0IikuYXR0cigicm9sZSIsInRhYmxpc3QiKSx0LmNvbGxhcHNpYmxlfHx0LmFjdGl2ZSE9PSExJiZudWxsIT10LmFjdGl2ZXx8KHQuYWN0aXZlPTApLHRoaXMuX3Byb2Nlc3NQYW5lbHMoKSwwPnQuYWN0aXZlJiYodC5hY3RpdmUrPXRoaXMuaGVhZGVycy5sZW5ndGgpLHRoaXMuX3JlZnJlc2goKX0sX2dldENyZWF0ZUV2ZW50RGF0YTpmdW5jdGlvbigpe3JldHVybntoZWFkZXI6dGhpcy5hY3RpdmUscGFuZWw6dGhpcy5hY3RpdmUubGVuZ3RoP3RoaXMuYWN0aXZlLm5leHQoKTplKCl9fSxfY3JlYXRlSWNvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuaWNvbnM7dCYmKGUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taGVhZGVyLWljb24gdWktaWNvbiAiK3QuaGVhZGVyKS5wcmVwZW5kVG8odGhpcy5oZWFkZXJzKSx0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKHQuaGVhZGVyKS5hZGRDbGFzcyh0LmFjdGl2ZUhlYWRlciksdGhpcy5oZWFkZXJzLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24taWNvbnMiKSl9LF9kZXN0cm95SWNvbnM6ZnVuY3Rpb24oKXt0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1pY29ucyIpLmNoaWxkcmVuKCIudWktYWNjb3JkaW9uLWhlYWRlci1pY29uIikucmVtb3ZlKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24gdWktd2lkZ2V0IHVpLWhlbHBlci1yZXNldCIpLnJlbW92ZUF0dHIoInJvbGUiKSx0aGlzLmhlYWRlcnMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXIgdWktYWNjb3JkaW9uLWhlYWRlci1hY3RpdmUgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsIHVpLXN0YXRlLWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCB1aS1jb3JuZXItdG9wIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZXhwYW5kZWQiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1jb250cm9scyIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLl9kZXN0cm95SWNvbnMoKSxlPXRoaXMuaGVhZGVycy5uZXh0KCkucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1yZXNldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYm90dG9tIHVpLWFjY29yZGlvbi1jb250ZW50IHVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSB1aS1zdGF0ZS1kaXNhYmxlZCIpLmNzcygiZGlzcGxheSIsIiIpLnJlbW92ZUF0dHIoInJvbGUiKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLnJlbW92ZUF0dHIoImFyaWEtbGFiZWxsZWRieSIpLnJlbW92ZVVuaXF1ZUlkKCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZlLmNzcygiaGVpZ2h0IiwiIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6KCJldmVudCI9PT1lJiYodGhpcy5vcHRpb25zLmV2ZW50JiZ0aGlzLl9vZmYodGhpcy5oZWFkZXJzLHRoaXMub3B0aW9ucy5ldmVudCksdGhpcy5fc2V0dXBFdmVudHModCkpLHRoaXMuX3N1cGVyKGUsdCksImNvbGxhcHNpYmxlIiE9PWV8fHR8fHRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMXx8dGhpcy5fYWN0aXZhdGUoMCksImljb25zIj09PWUmJih0aGlzLl9kZXN0cm95SWNvbnMoKSx0JiZ0aGlzLl9jcmVhdGVJY29ucygpKSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkpLHZvaWQgMCl9LF9rZXlkb3duOmZ1bmN0aW9uKHQpe2lmKCF0LmFsdEtleSYmIXQuY3RybEtleSl7dmFyIGk9ZS51aS5rZXlDb2RlLHM9dGhpcy5oZWFkZXJzLmxlbmd0aCxuPXRoaXMuaGVhZGVycy5pbmRleCh0LnRhcmdldCksYT0hMTtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGkuUklHSFQ6Y2FzZSBpLkRPV046YT10aGlzLmhlYWRlcnNbKG4rMSklc107YnJlYWs7Y2FzZSBpLkxFRlQ6Y2FzZSBpLlVQOmE9dGhpcy5oZWFkZXJzWyhuLTErcyklc107YnJlYWs7Y2FzZSBpLlNQQUNFOmNhc2UgaS5FTlRFUjp0aGlzLl9ldmVudEhhbmRsZXIodCk7YnJlYWs7Y2FzZSBpLkhPTUU6YT10aGlzLmhlYWRlcnNbMF07YnJlYWs7Y2FzZSBpLkVORDphPXRoaXMuaGVhZGVyc1tzLTFdfWEmJihlKHQudGFyZ2V0KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGUoYSkuYXR0cigidGFiSW5kZXgiLDApLGEuZm9jdXMoKSx0LnByZXZlbnREZWZhdWx0KCkpfX0sX3BhbmVsS2V5RG93bjpmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuVVAmJnQuY3RybEtleSYmZSh0LmN1cnJlbnRUYXJnZXQpLnByZXYoKS5mb2N1cygpfSxyZWZyZXNoOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zO3RoaXMuX3Byb2Nlc3NQYW5lbHMoKSx0LmFjdGl2ZT09PSExJiZ0LmNvbGxhcHNpYmxlPT09ITB8fCF0aGlzLmhlYWRlcnMubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnQuYWN0aXZlPT09ITE/dGhpcy5fYWN0aXZhdGUoMCk6dGhpcy5hY3RpdmUubGVuZ3RoJiYhZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5hY3RpdmVbMF0pP3RoaXMuaGVhZGVycy5sZW5ndGg9PT10aGlzLmhlYWRlcnMuZmluZCgiLnVpLXN0YXRlLWRpc2FibGVkIikubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKE1hdGgubWF4KDAsdC5hY3RpdmUtMSkpOnQuYWN0aXZlPXRoaXMuaGVhZGVycy5pbmRleCh0aGlzLmFjdGl2ZSksdGhpcy5fZGVzdHJveUljb25zKCksdGhpcy5fcmVmcmVzaCgpfSxfcHJvY2Vzc1BhbmVsczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuaGVhZGVycyx0PXRoaXMucGFuZWxzO3RoaXMuaGVhZGVycz10aGlzLmVsZW1lbnQuZmluZCh0aGlzLm9wdGlvbnMuaGVhZGVyKS5hZGRDbGFzcygidWktYWNjb3JkaW9uLWhlYWRlciB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSx0aGlzLnBhbmVscz10aGlzLmhlYWRlcnMubmV4dCgpLmFkZENsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudCB1aS1oZWxwZXItcmVzZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmZpbHRlcigiOm5vdCgudWktYWNjb3JkaW9uLWNvbnRlbnQtYWN0aXZlKSIpLmhpZGUoKSx0JiYodGhpcy5fb2ZmKGUubm90KHRoaXMuaGVhZGVycykpLHRoaXMuX29mZih0Lm5vdCh0aGlzLnBhbmVscykpKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpPXRoaXMub3B0aW9ucyxzPWkuaGVpZ2h0U3R5bGUsbj10aGlzLmVsZW1lbnQucGFyZW50KCk7dGhpcy5hY3RpdmU9dGhpcy5fZmluZEFjdGl2ZShpLmFjdGl2ZSkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLmFjdGl2ZS5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpLnNob3coKSx0aGlzLmhlYWRlcnMuYXR0cigicm9sZSIsInRhYiIpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC51bmlxdWVJZCgpLmF0dHIoImlkIikscz10Lm5leHQoKSxuPXMudW5pcXVlSWQoKS5hdHRyKCJpZCIpO3QuYXR0cigiYXJpYS1jb250cm9scyIsbikscy5hdHRyKCJhcmlhLWxhYmVsbGVkYnkiLGkpfSkubmV4dCgpLmF0dHIoInJvbGUiLCJ0YWJwYW5lbCIpLHRoaXMuaGVhZGVycy5ub3QodGhpcy5hY3RpdmUpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UiLHRhYkluZGV4Oi0xfSkubmV4dCgpLmF0dHIoeyJhcmlhLWhpZGRlbiI6InRydWUifSkuaGlkZSgpLHRoaXMuYWN0aXZlLmxlbmd0aD90aGlzLmFjdGl2ZS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLm5leHQoKS5hdHRyKHsiYXJpYS1oaWRkZW4iOiJmYWxzZSJ9KTp0aGlzLmhlYWRlcnMuZXEoMCkuYXR0cigidGFiSW5kZXgiLDApLHRoaXMuX2NyZWF0ZUljb25zKCksdGhpcy5fc2V0dXBFdmVudHMoaS5ldmVudCksImZpbGwiPT09cz8odD1uLmhlaWdodCgpLHRoaXMuZWxlbWVudC5zaWJsaW5ncygiOnZpc2libGUiKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPWkuY3NzKCJwb3NpdGlvbiIpOyJhYnNvbHV0ZSIhPT1zJiYiZml4ZWQiIT09cyYmKHQtPWkub3V0ZXJIZWlnaHQoITApKX0pLHRoaXMuaGVhZGVycy5lYWNoKGZ1bmN0aW9uKCl7dC09ZSh0aGlzKS5vdXRlckhlaWdodCghMCl9KSx0aGlzLmhlYWRlcnMubmV4dCgpLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLHQtZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXMmJih0PTAsdGhpcy5oZWFkZXJzLm5leHQoKS5lYWNoKGZ1bmN0aW9uKCl7dD1NYXRoLm1heCh0LGUodGhpcykuY3NzKCJoZWlnaHQiLCIiKS5oZWlnaHQoKSl9KS5oZWlnaHQodCkpfSxfYWN0aXZhdGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5fZmluZEFjdGl2ZSh0KVswXTtpIT09dGhpcy5hY3RpdmVbMF0mJihpPWl8fHRoaXMuYWN0aXZlWzBdLHRoaXMuX2V2ZW50SGFuZGxlcih7dGFyZ2V0OmksY3VycmVudFRhcmdldDppLHByZXZlbnREZWZhdWx0OmUubm9vcH0pKX0sX2ZpbmRBY3RpdmU6ZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P3RoaXMuaGVhZGVycy5lcSh0KTplKCl9LF9zZXR1cEV2ZW50czpmdW5jdGlvbih0KXt2YXIgaT17a2V5ZG93bjoiX2tleWRvd24ifTt0JiZlLmVhY2godC5zcGxpdCgiICIpLGZ1bmN0aW9uKGUsdCl7aVt0XT0iX2V2ZW50SGFuZGxlciJ9KSx0aGlzLl9vZmYodGhpcy5oZWFkZXJzLmFkZCh0aGlzLmhlYWRlcnMubmV4dCgpKSksdGhpcy5fb24odGhpcy5oZWFkZXJzLGkpLHRoaXMuX29uKHRoaXMuaGVhZGVycy5uZXh0KCkse2tleWRvd246Il9wYW5lbEtleURvd24ifSksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGVhZGVycyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGVhZGVycyl9LF9ldmVudEhhbmRsZXI6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9dGhpcy5hY3RpdmUsbj1lKHQuY3VycmVudFRhcmdldCksYT1uWzBdPT09c1swXSxvPWEmJmkuY29sbGFwc2libGUscj1vP2UoKTpuLm5leHQoKSxoPXMubmV4dCgpLGw9e29sZEhlYWRlcjpzLG9sZFBhbmVsOmgsbmV3SGVhZGVyOm8/ZSgpOm4sbmV3UGFuZWw6cn07CnQucHJldmVudERlZmF1bHQoKSxhJiYhaS5jb2xsYXBzaWJsZXx8dGhpcy5fdHJpZ2dlcigiYmVmb3JlQWN0aXZhdGUiLHQsbCk9PT0hMXx8KGkuYWN0aXZlPW8/ITE6dGhpcy5oZWFkZXJzLmluZGV4KG4pLHRoaXMuYWN0aXZlPWE/ZSgpOm4sdGhpcy5fdG9nZ2xlKGwpLHMucmVtb3ZlQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLGkuaWNvbnMmJnMuY2hpbGRyZW4oIi51aS1hY2NvcmRpb24taGVhZGVyLWljb24iKS5yZW1vdmVDbGFzcyhpLmljb25zLmFjdGl2ZUhlYWRlcikuYWRkQ2xhc3MoaS5pY29ucy5oZWFkZXIpLGF8fChuLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItYWxsIikuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1oZWFkZXItYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSB1aS1jb3JuZXItdG9wIiksaS5pY29ucyYmbi5jaGlsZHJlbigiLnVpLWFjY29yZGlvbi1oZWFkZXItaWNvbiIpLnJlbW92ZUNsYXNzKGkuaWNvbnMuaGVhZGVyKS5hZGRDbGFzcyhpLmljb25zLmFjdGl2ZUhlYWRlciksbi5uZXh0KCkuYWRkQ2xhc3MoInVpLWFjY29yZGlvbi1jb250ZW50LWFjdGl2ZSIpKSl9LF90b2dnbGU6ZnVuY3Rpb24odCl7dmFyIGk9dC5uZXdQYW5lbCxzPXRoaXMucHJldlNob3cubGVuZ3RoP3RoaXMucHJldlNob3c6dC5vbGRQYW5lbDt0aGlzLnByZXZTaG93LmFkZCh0aGlzLnByZXZIaWRlKS5zdG9wKCEwLCEwKSx0aGlzLnByZXZTaG93PWksdGhpcy5wcmV2SGlkZT1zLHRoaXMub3B0aW9ucy5hbmltYXRlP3RoaXMuX2FuaW1hdGUoaSxzLHQpOihzLmhpZGUoKSxpLnNob3coKSx0aGlzLl90b2dnbGVDb21wbGV0ZSh0KSkscy5hdHRyKHsiYXJpYS1oaWRkZW4iOiJ0cnVlIn0pLHMucHJldigpLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoiZmFsc2UiLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSksaS5sZW5ndGgmJnMubGVuZ3RoP3MucHJldigpLmF0dHIoe3RhYkluZGV4Oi0xLCJhcmlhLWV4cGFuZGVkIjoiZmFsc2UifSk6aS5sZW5ndGgmJnRoaXMuaGVhZGVycy5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gMD09PXBhcnNlSW50KGUodGhpcykuYXR0cigidGFiSW5kZXgiKSwxMCl9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLGkuYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLnByZXYoKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pfSxfYW5pbWF0ZTpmdW5jdGlvbihlLHQsaSl7dmFyIHMsbixhLG89dGhpcyxyPTAsaD1lLmNzcygiYm94LXNpemluZyIpLGw9ZS5sZW5ndGgmJighdC5sZW5ndGh8fGUuaW5kZXgoKTx0LmluZGV4KCkpLHU9dGhpcy5vcHRpb25zLmFuaW1hdGV8fHt9LGQ9bCYmdS5kb3dufHx1LGM9ZnVuY3Rpb24oKXtvLl90b2dnbGVDb21wbGV0ZShpKX07cmV0dXJuIm51bWJlciI9PXR5cGVvZiBkJiYoYT1kKSwic3RyaW5nIj09dHlwZW9mIGQmJihuPWQpLG49bnx8ZC5lYXNpbmd8fHUuZWFzaW5nLGE9YXx8ZC5kdXJhdGlvbnx8dS5kdXJhdGlvbix0Lmxlbmd0aD9lLmxlbmd0aD8ocz1lLnNob3coKS5vdXRlckhlaWdodCgpLHQuYW5pbWF0ZSh0aGlzLmhpZGVQcm9wcyx7ZHVyYXRpb246YSxlYXNpbmc6bixzdGVwOmZ1bmN0aW9uKGUsdCl7dC5ub3c9TWF0aC5yb3VuZChlKX19KSxlLmhpZGUoKS5hbmltYXRlKHRoaXMuc2hvd1Byb3BzLHtkdXJhdGlvbjphLGVhc2luZzpuLGNvbXBsZXRlOmMsc3RlcDpmdW5jdGlvbihlLGkpe2kubm93PU1hdGgucm91bmQoZSksImhlaWdodCIhPT1pLnByb3A/ImNvbnRlbnQtYm94Ij09PWgmJihyKz1pLm5vdyk6ImNvbnRlbnQiIT09by5vcHRpb25zLmhlaWdodFN0eWxlJiYoaS5ub3c9TWF0aC5yb3VuZChzLXQub3V0ZXJIZWlnaHQoKS1yKSxyPTApfX0pLHZvaWQgMCk6dC5hbmltYXRlKHRoaXMuaGlkZVByb3BzLGEsbixjKTplLmFuaW1hdGUodGhpcy5zaG93UHJvcHMsYSxuLGMpfSxfdG9nZ2xlQ29tcGxldGU6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5vbGRQYW5lbDt0LnJlbW92ZUNsYXNzKCJ1aS1hY2NvcmRpb24tY29udGVudC1hY3RpdmUiKS5wcmV2KCkucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci10b3AiKS5hZGRDbGFzcygidWktY29ybmVyLWFsbCIpLHQubGVuZ3RoJiYodC5wYXJlbnQoKVswXS5jbGFzc05hbWU9dC5wYXJlbnQoKVswXS5jbGFzc05hbWUpLHRoaXMuX3RyaWdnZXIoImFjdGl2YXRlIixudWxsLGUpfX0pLGUud2lkZ2V0KCJ1aS5tZW51Iix7dmVyc2lvbjoiMS4xMS40IixkZWZhdWx0RWxlbWVudDoiPHVsPiIsZGVsYXk6MzAwLG9wdGlvbnM6e2ljb25zOntzdWJtZW51OiJ1aS1pY29uLWNhcmF0LTEtZSJ9LGl0ZW1zOiI+ICoiLG1lbnVzOiJ1bCIscG9zaXRpb246e215OiJsZWZ0LTEgdG9wIixhdDoicmlnaHQgdG9wIn0scm9sZToibWVudSIsYmx1cjpudWxsLGZvY3VzOm51bGwsc2VsZWN0Om51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZU1lbnU9dGhpcy5lbGVtZW50LHRoaXMubW91c2VIYW5kbGVkPSExLHRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmFkZENsYXNzKCJ1aS1tZW51IHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCIpLnRvZ2dsZUNsYXNzKCJ1aS1tZW51LWljb25zIiwhIXRoaXMuZWxlbWVudC5maW5kKCIudWktaWNvbiIpLmxlbmd0aCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSx0YWJJbmRleDowfSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLl9vbih7Im1vdXNlZG93biAudWktbWVudS1pdGVtIjpmdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCl9LCJjbGljayAudWktbWVudS1pdGVtIjpmdW5jdGlvbih0KXt2YXIgaT1lKHQudGFyZ2V0KTshdGhpcy5tb3VzZUhhbmRsZWQmJmkubm90KCIudWktc3RhdGUtZGlzYWJsZWQiKS5sZW5ndGgmJih0aGlzLnNlbGVjdCh0KSx0LmlzUHJvcGFnYXRpb25TdG9wcGVkKCl8fCh0aGlzLm1vdXNlSGFuZGxlZD0hMCksaS5oYXMoIi51aS1tZW51IikubGVuZ3RoP3RoaXMuZXhwYW5kKHQpOiF0aGlzLmVsZW1lbnQuaXMoIjpmb2N1cyIpJiZlKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCkuY2xvc2VzdCgiLnVpLW1lbnUiKS5sZW5ndGgmJih0aGlzLmVsZW1lbnQudHJpZ2dlcigiZm9jdXMiLFshMF0pLHRoaXMuYWN0aXZlJiYxPT09dGhpcy5hY3RpdmUucGFyZW50cygiLnVpLW1lbnUiKS5sZW5ndGgmJmNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSkpfSwibW91c2VlbnRlciAudWktbWVudS1pdGVtIjpmdW5jdGlvbih0KXtpZighdGhpcy5wcmV2aW91c0ZpbHRlcil7dmFyIGk9ZSh0LmN1cnJlbnRUYXJnZXQpO2kuc2libGluZ3MoIi51aS1zdGF0ZS1hY3RpdmUiKS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5mb2N1cyh0LGkpfX0sbW91c2VsZWF2ZToiY29sbGFwc2VBbGwiLCJtb3VzZWxlYXZlIC51aS1tZW51IjoiY29sbGFwc2VBbGwiLGZvY3VzOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy5hY3RpdmV8fHRoaXMuZWxlbWVudC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcykuZXEoMCk7dHx8dGhpcy5mb2N1cyhlLGkpfSxibHVyOmZ1bmN0aW9uKHQpe3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7ZS5jb250YWlucyh0aGlzLmVsZW1lbnRbMF0sdGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KXx8dGhpcy5jb2xsYXBzZUFsbCh0KX0pfSxrZXlkb3duOiJfa2V5ZG93biJ9KSx0aGlzLnJlZnJlc2goKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHtjbGljazpmdW5jdGlvbihlKXt0aGlzLl9jbG9zZU9uRG9jdW1lbnRDbGljayhlKSYmdGhpcy5jb2xsYXBzZUFsbChlKSx0aGlzLm1vdXNlSGFuZGxlZD0hMX19KX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQXR0cigiYXJpYS1hY3RpdmVkZXNjZW5kYW50IikuZmluZCgiLnVpLW1lbnUiKS5hZGRCYWNrKCkucmVtb3ZlQ2xhc3MoInVpLW1lbnUgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtaWNvbnMgdWktZnJvbnQiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxhYmVsbGVkYnkiKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWRpc2FibGVkIikucmVtb3ZlVW5pcXVlSWQoKS5zaG93KCksdGhpcy5lbGVtZW50LmZpbmQoIi51aS1tZW51LWl0ZW0iKS5yZW1vdmVDbGFzcygidWktbWVudS1pdGVtIikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtZGlzYWJsZWQiKS5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1ob3ZlciIpLnJlbW92ZUF0dHIoInRhYkluZGV4IikucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtaGFzcG9wdXAiKS5jaGlsZHJlbigpLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3QuZGF0YSgidWktbWVudS1zdWJtZW51LWNhcmF0IikmJnQucmVtb3ZlKCl9KSx0aGlzLmVsZW1lbnQuZmluZCgiLnVpLW1lbnUtZGl2aWRlciIpLnJlbW92ZUNsYXNzKCJ1aS1tZW51LWRpdmlkZXIgdWktd2lkZ2V0LWNvbnRlbnQiKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbz0hMDtzd2l0Y2godC5rZXlDb2RlKXtjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMucHJldmlvdXNQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlBBR0VfRE9XTjp0aGlzLm5leHRQYWdlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6dGhpcy5fbW92ZSgiZmlyc3QiLCJmaXJzdCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnRoaXMuX21vdmUoImxhc3QiLCJsYXN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0aGlzLnByZXZpb3VzKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046dGhpcy5uZXh0KHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5jb2xsYXBzZSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5SSUdIVDp0aGlzLmFjdGl2ZSYmIXRoaXMuYWN0aXZlLmlzKCIudWktc3RhdGUtZGlzYWJsZWQiKSYmdGhpcy5leHBhbmQodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5URVI6Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5fYWN0aXZhdGUodCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRVNDQVBFOnRoaXMuY29sbGFwc2UodCk7YnJlYWs7ZGVmYXVsdDpvPSExLHM9dGhpcy5wcmV2aW91c0ZpbHRlcnx8IiIsbj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksYT0hMSxjbGVhclRpbWVvdXQodGhpcy5maWx0ZXJUaW1lciksbj09PXM/YT0hMDpuPXMrbixpPXRoaXMuX2ZpbHRlck1lbnVJdGVtcyhuKSxpPWEmJi0xIT09aS5pbmRleCh0aGlzLmFjdGl2ZS5uZXh0KCkpP3RoaXMuYWN0aXZlLm5leHRBbGwoIi51aS1tZW51LWl0ZW0iKTppLGkubGVuZ3RofHwobj1TdHJpbmcuZnJvbUNoYXJDb2RlKHQua2V5Q29kZSksaT10aGlzLl9maWx0ZXJNZW51SXRlbXMobikpLGkubGVuZ3RoPyh0aGlzLmZvY3VzKHQsaSksdGhpcy5wcmV2aW91c0ZpbHRlcj1uLHRoaXMuZmlsdGVyVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5wcmV2aW91c0ZpbHRlcn0sMWUzKSk6ZGVsZXRlIHRoaXMucHJldmlvdXNGaWx0ZXJ9byYmdC5wcmV2ZW50RGVmYXVsdCgpfSxfYWN0aXZhdGU6ZnVuY3Rpb24oZSl7dGhpcy5hY3RpdmUuaXMoIi51aS1zdGF0ZS1kaXNhYmxlZCIpfHwodGhpcy5hY3RpdmUuaXMoIlthcmlhLWhhc3BvcHVwPSd0cnVlJ10iKT90aGlzLmV4cGFuZChlKTp0aGlzLnNlbGVjdChlKSl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcyxuPXRoaXMub3B0aW9ucy5pY29ucy5zdWJtZW51LGE9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLm1lbnVzKTt0aGlzLmVsZW1lbnQudG9nZ2xlQ2xhc3MoInVpLW1lbnUtaWNvbnMiLCEhdGhpcy5lbGVtZW50LmZpbmQoIi51aS1pY29uIikubGVuZ3RoKSxhLmZpbHRlcigiOm5vdCgudWktbWVudSkiKS5hZGRDbGFzcygidWktbWVudSB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktZnJvbnQiKS5oaWRlKCkuYXR0cih7cm9sZTp0aGlzLm9wdGlvbnMucm9sZSwiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5wYXJlbnQoKSxzPWUoIjxzcGFuPiIpLmFkZENsYXNzKCJ1aS1tZW51LWljb24gdWktaWNvbiAiK24pLmRhdGEoInVpLW1lbnUtc3VibWVudS1jYXJhdCIsITApO2kuYXR0cigiYXJpYS1oYXNwb3B1cCIsInRydWUiKS5wcmVwZW5kKHMpLHQuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixpLmF0dHIoImlkIikpfSksdD1hLmFkZCh0aGlzLmVsZW1lbnQpLGk9dC5maW5kKHRoaXMub3B0aW9ucy5pdGVtcyksaS5ub3QoIi51aS1tZW51LWl0ZW0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtzLl9pc0RpdmlkZXIodCkmJnQuYWRkQ2xhc3MoInVpLXdpZGdldC1jb250ZW50IHVpLW1lbnUtZGl2aWRlciIpfSksaS5ub3QoIi51aS1tZW51LWl0ZW0sIC51aS1tZW51LWRpdmlkZXIiKS5hZGRDbGFzcygidWktbWVudS1pdGVtIikudW5pcXVlSWQoKS5hdHRyKHt0YWJJbmRleDotMSxyb2xlOnRoaXMuX2l0ZW1Sb2xlKCl9KSxpLmZpbHRlcigiLnVpLXN0YXRlLWRpc2FibGVkIikuYXR0cigiYXJpYS1kaXNhYmxlZCIsInRydWUiKSx0aGlzLmFjdGl2ZSYmIWUuY29udGFpbnModGhpcy5lbGVtZW50WzBdLHRoaXMuYWN0aXZlWzBdKSYmdGhpcy5ibHVyKCl9LF9pdGVtUm9sZTpmdW5jdGlvbigpe3JldHVybnttZW51OiJtZW51aXRlbSIsbGlzdGJveDoib3B0aW9uIn1bdGhpcy5vcHRpb25zLnJvbGVdfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Imljb25zIj09PWUmJnRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLnN1Ym1lbnUpLmFkZENsYXNzKHQuc3VibWVudSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sZm9jdXM6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO3RoaXMuYmx1cihlLGUmJiJmb2N1cyI9PT1lLnR5cGUpLHRoaXMuX3Njcm9sbEludG9WaWV3KHQpLHRoaXMuYWN0aXZlPXQuZmlyc3QoKSxzPXRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLm9wdGlvbnMucm9sZSYmdGhpcy5lbGVtZW50LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIscy5hdHRyKCJpZCIpKSx0aGlzLmFjdGl2ZS5wYXJlbnQoKS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLGUmJiJrZXlkb3duIj09PWUudHlwZT90aGlzLl9jbG9zZSgpOnRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLl9jbG9zZSgpfSx0aGlzLmRlbGF5KSxpPXQuY2hpbGRyZW4oIi51aS1tZW51IiksaS5sZW5ndGgmJmUmJi9ebW91c2UvLnRlc3QoZS50eXBlKSYmdGhpcy5fc3RhcnRPcGVuaW5nKGkpLHRoaXMuYWN0aXZlTWVudT10LnBhcmVudCgpLHRoaXMuX3RyaWdnZXIoImZvY3VzIixlLHtpdGVtOnR9KX0sX3Njcm9sbEludG9WaWV3OmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG8scjt0aGlzLl9oYXNTY3JvbGwoKSYmKGk9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sImJvcmRlclRvcFdpZHRoIikpfHwwLHM9cGFyc2VGbG9hdChlLmNzcyh0aGlzLmFjdGl2ZU1lbnVbMF0sInBhZGRpbmdUb3AiKSl8fDAsbj10Lm9mZnNldCgpLnRvcC10aGlzLmFjdGl2ZU1lbnUub2Zmc2V0KCkudG9wLWktcyxhPXRoaXMuYWN0aXZlTWVudS5zY3JvbGxUb3AoKSxvPXRoaXMuYWN0aXZlTWVudS5oZWlnaHQoKSxyPXQub3V0ZXJIZWlnaHQoKSwwPm4/dGhpcy5hY3RpdmVNZW51LnNjcm9sbFRvcChhK24pOm4rcj5vJiZ0aGlzLmFjdGl2ZU1lbnUuc2Nyb2xsVG9wKGErbi1vK3IpKX0sYmx1cjpmdW5jdGlvbihlLHQpe3R8fGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSx0aGlzLmFjdGl2ZSYmKHRoaXMuYWN0aXZlLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMuYWN0aXZlPW51bGwsdGhpcy5fdHJpZ2dlcigiYmx1ciIsZSx7aXRlbTp0aGlzLmFjdGl2ZX0pKX0sX3N0YXJ0T3BlbmluZzpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy50aW1lciksInRydWUiPT09ZS5hdHRyKCJhcmlhLWhpZGRlbiIpJiYodGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX2Nsb3NlKCksdGhpcy5fb3BlbihlKX0sdGhpcy5kZWxheSkpfSxfb3BlbjpmdW5jdGlvbih0KXt2YXIgaT1lLmV4dGVuZCh7b2Y6dGhpcy5hY3RpdmV9LHRoaXMub3B0aW9ucy5wb3NpdGlvbik7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpLm5vdCh0LnBhcmVudHMoIi51aS1tZW51IikpLmhpZGUoKS5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSx0LnNob3coKS5yZW1vdmVBdHRyKCJhcmlhLWhpZGRlbiIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJ0cnVlIikucG9zaXRpb24oaSl9LGNvbGxhcHNlQWxsOmZ1bmN0aW9uKHQsaSl7Y2xlYXJUaW1lb3V0KHRoaXMudGltZXIpLHRoaXMudGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt2YXIgcz1pP3RoaXMuZWxlbWVudDplKHQmJnQudGFyZ2V0KS5jbG9zZXN0KHRoaXMuZWxlbWVudC5maW5kKCIudWktbWVudSIpKTtzLmxlbmd0aHx8KHM9dGhpcy5lbGVtZW50KSx0aGlzLl9jbG9zZShzKSx0aGlzLmJsdXIodCksdGhpcy5hY3RpdmVNZW51PXN9LHRoaXMuZGVsYXkpfSxfY2xvc2U6ZnVuY3Rpb24oZSl7ZXx8KGU9dGhpcy5hY3RpdmU/dGhpcy5hY3RpdmUucGFyZW50KCk6dGhpcy5lbGVtZW50KSxlLmZpbmQoIi51aS1tZW51IikuaGlkZSgpLmF0dHIoImFyaWEtaGlkZGVuIiwidHJ1ZSIpLmF0dHIoImFyaWEtZXhwYW5kZWQiLCJmYWxzZSIpLmVuZCgpLmZpbmQoIi51aS1zdGF0ZS1hY3RpdmUiKS5ub3QoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKX0sX2Nsb3NlT25Eb2N1bWVudENsaWNrOmZ1bmN0aW9uKHQpe3JldHVybiFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudSIpLmxlbmd0aH0sX2lzRGl2aWRlcjpmdW5jdGlvbihlKXtyZXR1cm4hL1teXC1cdTIwMTRcdTIwMTNcc10vLnRlc3QoZS50ZXh0KCkpfSxjb2xsYXBzZTpmdW5jdGlvbihlKXt2YXIgdD10aGlzLmFjdGl2ZSYmdGhpcy5hY3RpdmUucGFyZW50KCkuY2xvc2VzdCgiLnVpLW1lbnUtaXRlbSIsdGhpcy5lbGVtZW50KTt0JiZ0Lmxlbmd0aCYmKHRoaXMuX2Nsb3NlKCksdGhpcy5mb2N1cyhlLHQpKX0sZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMuYWN0aXZlJiZ0aGlzLmFjdGl2ZS5jaGlsZHJlbigiLnVpLW1lbnUgIikuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpLmZpcnN0KCk7dCYmdC5sZW5ndGgmJih0aGlzLl9vcGVuKHQucGFyZW50KCkpLHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dGhpcy5mb2N1cyhlLHQpfSkpfSxuZXh0OmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoIm5leHQiLCJmaXJzdCIsZSl9LHByZXZpb3VzOmZ1bmN0aW9uKGUpe3RoaXMuX21vdmUoInByZXYiLCJsYXN0IixlKX0saXNGaXJzdEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hY3RpdmUmJiF0aGlzLmFjdGl2ZS5wcmV2QWxsKCIudWktbWVudS1pdGVtIikubGVuZ3RofSxpc0xhc3RJdGVtOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYWN0aXZlJiYhdGhpcy5hY3RpdmUubmV4dEFsbCgiLnVpLW1lbnUtaXRlbSIpLmxlbmd0aH0sX21vdmU6ZnVuY3Rpb24oZSx0LGkpe3ZhciBzO3RoaXMuYWN0aXZlJiYocz0iZmlyc3QiPT09ZXx8Imxhc3QiPT09ZT90aGlzLmFjdGl2ZVsiZmlyc3QiPT09ZT8icHJldkFsbCI6Im5leHRBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKC0xKTp0aGlzLmFjdGl2ZVtlKyJBbGwiXSgiLnVpLW1lbnUtaXRlbSIpLmVxKDApKSxzJiZzLmxlbmd0aCYmdGhpcy5hY3RpdmV8fChzPXRoaXMuYWN0aXZlTWVudS5maW5kKHRoaXMub3B0aW9ucy5pdGVtcylbdF0oKSksdGhpcy5mb2N1cyhpLHMpfSxuZXh0UGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzTGFzdEl0ZW0oKXx8KHRoaXMuX2hhc1Njcm9sbCgpPyhzPXRoaXMuYWN0aXZlLm9mZnNldCgpLnRvcCxuPXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmFjdGl2ZS5uZXh0QWxsKCIudWktbWVudS1pdGVtIikuZWFjaChmdW5jdGlvbigpe3JldHVybiBpPWUodGhpcyksMD5pLm9mZnNldCgpLnRvcC1zLW59KSx0aGlzLmZvY3VzKHQsaSkpOnRoaXMuZm9jdXModCx0aGlzLmFjdGl2ZU1lbnUuZmluZCh0aGlzLm9wdGlvbnMuaXRlbXMpW3RoaXMuYWN0aXZlPyJsYXN0IjoiZmlyc3QiXSgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LHByZXZpb3VzUGFnZTpmdW5jdGlvbih0KXt2YXIgaSxzLG47cmV0dXJuIHRoaXMuYWN0aXZlPyh0aGlzLmlzRmlyc3RJdGVtKCl8fCh0aGlzLl9oYXNTY3JvbGwoKT8ocz10aGlzLmFjdGl2ZS5vZmZzZXQoKS50b3Asbj10aGlzLmVsZW1lbnQuaGVpZ2h0KCksdGhpcy5hY3RpdmUucHJldkFsbCgiLnVpLW1lbnUtaXRlbSIpLmVhY2goZnVuY3Rpb24oKXtyZXR1cm4gaT1lKHRoaXMpLGkub2Zmc2V0KCkudG9wLXMrbj4wfSksdGhpcy5mb2N1cyh0LGkpKTp0aGlzLmZvY3VzKHQsdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maXJzdCgpKSksdm9pZCAwKToodGhpcy5uZXh0KHQpLHZvaWQgMCl9LF9oYXNTY3JvbGw6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbGVtZW50Lm91dGVySGVpZ2h0KCk8dGhpcy5lbGVtZW50LnByb3AoInNjcm9sbEhlaWdodCIpfSxzZWxlY3Q6ZnVuY3Rpb24odCl7dGhpcy5hY3RpdmU9dGhpcy5hY3RpdmV8fGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1tZW51LWl0ZW0iKTt2YXIgaT17aXRlbTp0aGlzLmFjdGl2ZX07dGhpcy5hY3RpdmUuaGFzKCIudWktbWVudSIpLmxlbmd0aHx8dGhpcy5jb2xsYXBzZUFsbCh0LCEwKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQsaSl9LF9maWx0ZXJNZW51SXRlbXM6ZnVuY3Rpb24odCl7dmFyIGk9dC5yZXBsYWNlKC9bXC1cW1xde30oKSorPy4sXFxcXiR8I1xzXS9nLCJcXCQmIikscz1SZWdFeHAoIl4iK2ksImkiKTtyZXR1cm4gdGhpcy5hY3RpdmVNZW51LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5maWx0ZXIoIi51aS1tZW51LWl0ZW0iKS5maWx0ZXIoZnVuY3Rpb24oKXtyZXR1cm4gcy50ZXN0KGUudHJpbShlKHRoaXMpLnRleHQoKSkpfSl9fSksZS53aWRnZXQoInVpLmF1dG9jb21wbGV0ZSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLG9wdGlvbnM6e2FwcGVuZFRvOm51bGwsYXV0b0ZvY3VzOiExLGRlbGF5OjMwMCxtaW5MZW5ndGg6MSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHNvdXJjZTpudWxsLGNoYW5nZTpudWxsLGNsb3NlOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzcG9uc2U6bnVsbCxzZWFyY2g6bnVsbCxzZWxlY3Q6bnVsbH0scmVxdWVzdEluZGV4OjAscGVuZGluZzowLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdCxpLHMsbj10aGlzLmVsZW1lbnRbMF0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxhPSJ0ZXh0YXJlYSI9PT1uLG89ImlucHV0Ij09PW47dGhpcy5pc011bHRpTGluZT1hPyEwOm8/ITE6dGhpcy5lbGVtZW50LnByb3AoImlzQ29udGVudEVkaXRhYmxlIiksdGhpcy52YWx1ZU1ldGhvZD10aGlzLmVsZW1lbnRbYXx8bz8idmFsIjoidGV4dCJdLHRoaXMuaXNOZXdNZW51PSEwLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYXV0b2NvbXBsZXRlLWlucHV0IikuYXR0cigiYXV0b2NvbXBsZXRlIiwib2ZmIiksdGhpcy5fb24odGhpcy5lbGVtZW50LHtrZXlkb3duOmZ1bmN0aW9uKG4pe2lmKHRoaXMuZWxlbWVudC5wcm9wKCJyZWFkT25seSIpKXJldHVybiB0PSEwLHM9ITAsaT0hMCx2b2lkIDA7dD0hMSxzPSExLGk9ITE7dmFyIGE9ZS51aS5rZXlDb2RlO3N3aXRjaChuLmtleUNvZGUpe2Nhc2UgYS5QQUdFX1VQOnQ9ITAsdGhpcy5fbW92ZSgicHJldmlvdXNQYWdlIixuKTticmVhaztjYXNlIGEuUEFHRV9ET1dOOnQ9ITAsdGhpcy5fbW92ZSgibmV4dFBhZ2UiLG4pO2JyZWFrO2Nhc2UgYS5VUDp0PSEwLHRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIsbik7YnJlYWs7Y2FzZSBhLkRPV046dD0hMCx0aGlzLl9rZXlFdmVudCgibmV4dCIsbik7YnJlYWs7Y2FzZSBhLkVOVEVSOnRoaXMubWVudS5hY3RpdmUmJih0PSEwLG4ucHJldmVudERlZmF1bHQoKSx0aGlzLm1lbnUuc2VsZWN0KG4pKTticmVhaztjYXNlIGEuVEFCOnRoaXMubWVudS5hY3RpdmUmJnRoaXMubWVudS5zZWxlY3Qobik7YnJlYWs7Y2FzZSBhLkVTQ0FQRTp0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSYmKHRoaXMuaXNNdWx0aUxpbmV8fHRoaXMuX3ZhbHVlKHRoaXMudGVybSksdGhpcy5jbG9zZShuKSxuLnByZXZlbnREZWZhdWx0KCkpO2JyZWFrO2RlZmF1bHQ6aT0hMCx0aGlzLl9zZWFyY2hUaW1lb3V0KG4pfX0sa2V5cHJlc3M6ZnVuY3Rpb24ocyl7aWYodClyZXR1cm4gdD0hMSwoIXRoaXMuaXNNdWx0aUxpbmV8fHRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpKSYmcy5wcmV2ZW50RGVmYXVsdCgpLHZvaWQgMDtpZighaSl7dmFyIG49ZS51aS5rZXlDb2RlO3N3aXRjaChzLmtleUNvZGUpe2Nhc2Ugbi5QQUdFX1VQOnRoaXMuX21vdmUoInByZXZpb3VzUGFnZSIscyk7YnJlYWs7Y2FzZSBuLlBBR0VfRE9XTjp0aGlzLl9tb3ZlKCJuZXh0UGFnZSIscyk7YnJlYWs7Y2FzZSBuLlVQOnRoaXMuX2tleUV2ZW50KCJwcmV2aW91cyIscyk7YnJlYWs7Y2FzZSBuLkRPV046dGhpcy5fa2V5RXZlbnQoIm5leHQiLHMpfX19LGlucHV0OmZ1bmN0aW9uKGUpe3JldHVybiBzPyhzPSExLGUucHJldmVudERlZmF1bHQoKSx2b2lkIDApOih0aGlzLl9zZWFyY2hUaW1lb3V0KGUpLHZvaWQgMCl9LGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5zZWxlY3RlZEl0ZW09bnVsbCx0aGlzLnByZXZpb3VzPXRoaXMuX3ZhbHVlKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOihjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuY2xvc2UoZSksdGhpcy5fY2hhbmdlKGUpLHZvaWQgMCl9fSksdGhpcy5faW5pdFNvdXJjZSgpLHRoaXMubWVudT1lKCI8dWw+IikuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLm1lbnUoe3JvbGU6bnVsbH0pLmhpZGUoKS5tZW51KCJpbnN0YW5jZSIpLHRoaXMuX29uKHRoaXMubWVudS5lbGVtZW50LHttb3VzZWRvd246ZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpLHRoaXMuY2FuY2VsQmx1cj0hMCx0aGlzLl9kZWxheShmdW5jdGlvbigpe2RlbGV0ZSB0aGlzLmNhbmNlbEJsdXJ9KTt2YXIgaT10aGlzLm1lbnUuZWxlbWVudFswXTtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktbWVudS1pdGVtIikubGVuZ3RofHx0aGlzLl9kZWxheShmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5kb2N1bWVudC5vbmUoIm1vdXNlZG93biIsZnVuY3Rpb24ocyl7cy50YXJnZXQ9PT10LmVsZW1lbnRbMF18fHMudGFyZ2V0PT09aXx8ZS5jb250YWlucyhpLHMudGFyZ2V0KXx8dC5jbG9zZSgpfSl9KX0sbWVudWZvY3VzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbjtyZXR1cm4gdGhpcy5pc05ld01lbnUmJih0aGlzLmlzTmV3TWVudT0hMSx0Lm9yaWdpbmFsRXZlbnQmJi9ebW91c2UvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpKT8odGhpcy5tZW51LmJsdXIoKSx0aGlzLmRvY3VtZW50Lm9uZSgibW91c2Vtb3ZlIixmdW5jdGlvbigpe2UodC50YXJnZXQpLnRyaWdnZXIodC5vcmlnaW5hbEV2ZW50KX0pLHZvaWQgMCk6KG49aS5pdGVtLmRhdGEoInVpLWF1dG9jb21wbGV0ZS1pdGVtIiksITEhPT10aGlzLl90cmlnZ2VyKCJmb2N1cyIsdCx7aXRlbTpufSkmJnQub3JpZ2luYWxFdmVudCYmL15rZXkvLnRlc3QodC5vcmlnaW5hbEV2ZW50LnR5cGUpJiZ0aGlzLl92YWx1ZShuLnZhbHVlKSxzPWkuaXRlbS5hdHRyKCJhcmlhLWxhYmVsIil8fG4udmFsdWUscyYmZS50cmltKHMpLmxlbmd0aCYmKHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQocykuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSksdm9pZCAwKX0sbWVudXNlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXQuaXRlbS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIpLHM9dGhpcy5wcmV2aW91czt0aGlzLmVsZW1lbnRbMF0hPT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQmJih0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXMsdGhpcy5zZWxlY3RlZEl0ZW09aX0pKSwhMSE9PXRoaXMuX3RyaWdnZXIoInNlbGVjdCIsZSx7aXRlbTppfSkmJnRoaXMuX3ZhbHVlKGkudmFsdWUpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLHRoaXMuY2xvc2UoZSksdGhpcy5zZWxlY3RlZEl0ZW09aX19KSx0aGlzLmxpdmVSZWdpb249ZSgiPHNwYW4+Iix7cm9sZToic3RhdHVzIiwiYXJpYS1saXZlIjoiYXNzZXJ0aXZlIiwiYXJpYS1yZWxldmFudCI6ImFkZGl0aW9ucyJ9KS5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIikuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZGVzdHJveTpmdW5jdGlvbigpe2NsZWFyVGltZW91dCh0aGlzLnNlYXJjaGluZyksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1hdXRvY29tcGxldGUtaW5wdXQiKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKSx0aGlzLm1lbnUuZWxlbWVudC5yZW1vdmUoKSx0aGlzLmxpdmVSZWdpb24ucmVtb3ZlKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt0aGlzLl9zdXBlcihlLHQpLCJzb3VyY2UiPT09ZSYmdGhpcy5faW5pdFNvdXJjZSgpLCJhcHBlbmRUbyI9PT1lJiZ0aGlzLm1lbnUuZWxlbWVudC5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiZGlzYWJsZWQiPT09ZSYmdCYmdGhpcy54aHImJnRoaXMueGhyLmFib3J0KCl9LF9hcHBlbmRUbzpmdW5jdGlvbigpe3ZhciB0PXRoaXMub3B0aW9ucy5hcHBlbmRUbztyZXR1cm4gdCYmKHQ9dC5qcXVlcnl8fHQubm9kZVR5cGU/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodCkuZXEoMCkpLHQmJnRbMF18fCh0PXRoaXMuZWxlbWVudC5jbG9zZXN0KCIudWktZnJvbnQiKSksdC5sZW5ndGh8fCh0PXRoaXMuZG9jdW1lbnRbMF0uYm9keSksdH0sX2luaXRTb3VyY2U6ZnVuY3Rpb24oKXt2YXIgdCxpLHM9dGhpcztlLmlzQXJyYXkodGhpcy5vcHRpb25zLnNvdXJjZSk/KHQ9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbihpLHMpe3MoZS51aS5hdXRvY29tcGxldGUuZmlsdGVyKHQsaS50ZXJtKSl9KToic3RyaW5nIj09dHlwZW9mIHRoaXMub3B0aW9ucy5zb3VyY2U/KGk9dGhpcy5vcHRpb25zLnNvdXJjZSx0aGlzLnNvdXJjZT1mdW5jdGlvbih0LG4pe3MueGhyJiZzLnhoci5hYm9ydCgpLHMueGhyPWUuYWpheCh7dXJsOmksZGF0YTp0LGRhdGFUeXBlOiJqc29uIixzdWNjZXNzOmZ1bmN0aW9uKGUpe24oZSl9LGVycm9yOmZ1bmN0aW9uKCl7bihbXSl9fSl9KTp0aGlzLnNvdXJjZT10aGlzLm9wdGlvbnMuc291cmNlfSxfc2VhcmNoVGltZW91dDpmdW5jdGlvbihlKXtjbGVhclRpbWVvdXQodGhpcy5zZWFyY2hpbmcpLHRoaXMuc2VhcmNoaW5nPXRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50ZXJtPT09dGhpcy5fdmFsdWUoKSxpPXRoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpLHM9ZS5hbHRLZXl8fGUuY3RybEtleXx8ZS5tZXRhS2V5fHxlLnNoaWZ0S2V5OyghdHx8dCYmIWkmJiFzKSYmKHRoaXMuc2VsZWN0ZWRJdGVtPW51bGwsdGhpcy5zZWFyY2gobnVsbCxlKSl9LHRoaXMub3B0aW9ucy5kZWxheSl9LHNlYXJjaDpmdW5jdGlvbihlLHQpe3JldHVybiBlPW51bGwhPWU/ZTp0aGlzLl92YWx1ZSgpLHRoaXMudGVybT10aGlzLl92YWx1ZSgpLGUubGVuZ3RoPHRoaXMub3B0aW9ucy5taW5MZW5ndGg/dGhpcy5jbG9zZSh0KTp0aGlzLl90cmlnZ2VyKCJzZWFyY2giLHQpIT09ITE/dGhpcy5fc2VhcmNoKGUpOnZvaWQgMH0sX3NlYXJjaDpmdW5jdGlvbihlKXt0aGlzLnBlbmRpbmcrKyx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIiksdGhpcy5jYW5jZWxTZWFyY2g9ITEsdGhpcy5zb3VyY2Uoe3Rlcm06ZX0sdGhpcy5fcmVzcG9uc2UoKSl9LF9yZXNwb25zZTpmdW5jdGlvbigpe3ZhciB0PSsrdGhpcy5yZXF1ZXN0SW5kZXg7cmV0dXJuIGUucHJveHkoZnVuY3Rpb24oZSl7dD09PXRoaXMucmVxdWVzdEluZGV4JiZ0aGlzLl9fcmVzcG9uc2UoZSksdGhpcy5wZW5kaW5nLS0sdGhpcy5wZW5kaW5nfHx0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWF1dG9jb21wbGV0ZS1sb2FkaW5nIil9LHRoaXMpfSxfX3Jlc3BvbnNlOmZ1bmN0aW9uKGUpe2UmJihlPXRoaXMuX25vcm1hbGl6ZShlKSksdGhpcy5fdHJpZ2dlcigicmVzcG9uc2UiLG51bGwse2NvbnRlbnQ6ZX0pLCF0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJmUmJmUubGVuZ3RoJiYhdGhpcy5jYW5jZWxTZWFyY2g/KHRoaXMuX3N1Z2dlc3QoZSksdGhpcy5fdHJpZ2dlcigib3BlbiIpKTp0aGlzLl9jbG9zZSgpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmNhbmNlbFNlYXJjaD0hMCx0aGlzLl9jbG9zZShlKX0sX2Nsb3NlOmZ1bmN0aW9uKGUpe3RoaXMubWVudS5lbGVtZW50LmlzKCI6dmlzaWJsZSIpJiYodGhpcy5tZW51LmVsZW1lbnQuaGlkZSgpLHRoaXMubWVudS5ibHVyKCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5fdHJpZ2dlcigiY2xvc2UiLGUpKX0sX2NoYW5nZTpmdW5jdGlvbihlKXt0aGlzLnByZXZpb3VzIT09dGhpcy5fdmFsdWUoKSYmdGhpcy5fdHJpZ2dlcigiY2hhbmdlIixlLHtpdGVtOnRoaXMuc2VsZWN0ZWRJdGVtfSl9LF9ub3JtYWxpemU6ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoJiZ0WzBdLmxhYmVsJiZ0WzBdLnZhbHVlP3Q6ZS5tYXAodCxmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/e2xhYmVsOnQsdmFsdWU6dH06ZS5leHRlbmQoe30sdCx7bGFiZWw6dC5sYWJlbHx8dC52YWx1ZSx2YWx1ZTp0LnZhbHVlfHx0LmxhYmVsfSl9KX0sX3N1Z2dlc3Q6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5tZW51LmVsZW1lbnQuZW1wdHkoKTt0aGlzLl9yZW5kZXJNZW51KGksdCksdGhpcy5pc05ld01lbnU9ITAsdGhpcy5tZW51LnJlZnJlc2goKSxpLnNob3coKSx0aGlzLl9yZXNpemVNZW51KCksaS5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5lbGVtZW50fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pKSx0aGlzLm9wdGlvbnMuYXV0b0ZvY3VzJiZ0aGlzLm1lbnUubmV4dCgpfSxfcmVzaXplTWVudTpmdW5jdGlvbigpe3ZhciBlPXRoaXMubWVudS5lbGVtZW50O2Uub3V0ZXJXaWR0aChNYXRoLm1heChlLndpZHRoKCIiKS5vdXRlcldpZHRoKCkrMSx0aGlzLmVsZW1lbnQub3V0ZXJXaWR0aCgpKSl9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztlLmVhY2goaSxmdW5jdGlvbihlLGkpe3MuX3JlbmRlckl0ZW1EYXRhKHQsaSl9KX0sX3JlbmRlckl0ZW1EYXRhOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX3JlbmRlckl0ZW0oZSx0KS5kYXRhKCJ1aS1hdXRvY29tcGxldGUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7cmV0dXJuIGUoIjxsaT4iKS50ZXh0KGkubGFiZWwpLmFwcGVuZFRvKHQpfSxfbW92ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKT90aGlzLm1lbnUuaXNGaXJzdEl0ZW0oKSYmL15wcmV2aW91cy8udGVzdChlKXx8dGhpcy5tZW51LmlzTGFzdEl0ZW0oKSYmL15uZXh0Ly50ZXN0KGUpPyh0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLl92YWx1ZSh0aGlzLnRlcm0pLHRoaXMubWVudS5ibHVyKCksdm9pZCAwKToodGhpcy5tZW51W2VdKHQpLHZvaWQgMCk6KHRoaXMuc2VhcmNoKG51bGwsdCksdm9pZCAwKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWVudS5lbGVtZW50fSxfdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy52YWx1ZU1ldGhvZC5hcHBseSh0aGlzLmVsZW1lbnQsYXJndW1lbnRzKX0sX2tleUV2ZW50OmZ1bmN0aW9uKGUsdCl7KCF0aGlzLmlzTXVsdGlMaW5lfHx0aGlzLm1lbnUuZWxlbWVudC5pcygiOnZpc2libGUiKSkmJih0aGlzLl9tb3ZlKGUsdCksdC5wcmV2ZW50RGVmYXVsdCgpKX19KSxlLmV4dGVuZChlLnVpLmF1dG9jb21wbGV0ZSx7ZXNjYXBlUmVnZXg6ZnVuY3Rpb24oZSl7cmV0dXJuIGUucmVwbGFjZSgvW1wtXFtcXXt9KCkqKz8uLFxcXF4kfCNcc10vZywiXFwkJiIpfSxmaWx0ZXI6ZnVuY3Rpb24odCxpKXt2YXIgcz1SZWdFeHAoZS51aS5hdXRvY29tcGxldGUuZXNjYXBlUmVnZXgoaSksImkiKTtyZXR1cm4gZS5ncmVwKHQsZnVuY3Rpb24oZSl7cmV0dXJuIHMudGVzdChlLmxhYmVsfHxlLnZhbHVlfHxlKX0pfX0pLGUud2lkZ2V0KCJ1aS5hdXRvY29tcGxldGUiLGUudWkuYXV0b2NvbXBsZXRlLHtvcHRpb25zOnttZXNzYWdlczp7bm9SZXN1bHRzOiJObyBzZWFyY2ggcmVzdWx0cy4iLHJlc3VsdHM6ZnVuY3Rpb24oZSl7cmV0dXJuIGUrKGU+MT8iIHJlc3VsdHMgYXJlIjoiIHJlc3VsdCBpcyIpKyIgYXZhaWxhYmxlLCB1c2UgdXAgYW5kIGRvd24gYXJyb3cga2V5cyB0byBuYXZpZ2F0ZS4ifX19LF9fcmVzcG9uc2U6ZnVuY3Rpb24odCl7dmFyIGk7dGhpcy5fc3VwZXJBcHBseShhcmd1bWVudHMpLHRoaXMub3B0aW9ucy5kaXNhYmxlZHx8dGhpcy5jYW5jZWxTZWFyY2h8fChpPXQmJnQubGVuZ3RoP3RoaXMub3B0aW9ucy5tZXNzYWdlcy5yZXN1bHRzKHQubGVuZ3RoKTp0aGlzLm9wdGlvbnMubWVzc2FnZXMubm9SZXN1bHRzLHRoaXMubGl2ZVJlZ2lvbi5jaGlsZHJlbigpLmhpZGUoKSxlKCI8ZGl2PiIpLnRleHQoaSkuYXBwZW5kVG8odGhpcy5saXZlUmVnaW9uKSl9fSksZS51aS5hdXRvY29tcGxldGU7dmFyIHIsaD0idWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLGw9InVpLWJ1dHRvbi1pY29ucy1vbmx5IHVpLWJ1dHRvbi1pY29uLW9ubHkgdWktYnV0dG9uLXRleHQtaWNvbnMgdWktYnV0dG9uLXRleHQtaWNvbi1wcmltYXJ5IHVpLWJ1dHRvbi10ZXh0LWljb24tc2Vjb25kYXJ5IHVpLWJ1dHRvbi10ZXh0LW9ubHkiLHU9ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpO3NldFRpbWVvdXQoZnVuY3Rpb24oKXt0LmZpbmQoIjp1aS1idXR0b24iKS5idXR0b24oInJlZnJlc2giKX0sMSl9LGQ9ZnVuY3Rpb24odCl7dmFyIGk9dC5uYW1lLHM9dC5mb3JtLG49ZShbXSk7cmV0dXJuIGkmJihpPWkucmVwbGFjZSgvJy9nLCJcXCciKSxuPXM/ZShzKS5maW5kKCJbbmFtZT0nIitpKyInXVt0eXBlPXJhZGlvXSIpOmUoIltuYW1lPSciK2krIiddW3R5cGU9cmFkaW9dIix0Lm93bmVyRG9jdW1lbnQpLmZpbHRlcihmdW5jdGlvbigpe3JldHVybiF0aGlzLmZvcm19KSksbn07ZS53aWRnZXQoInVpLmJ1dHRvbiIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxidXR0b24+IixvcHRpb25zOntkaXNhYmxlZDpudWxsLHRleHQ6ITAsbGFiZWw6bnVsbCxpY29uczp7cHJpbWFyeTpudWxsLHNlY29uZGFyeTpudWxsfX0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5jbG9zZXN0KCJmb3JtIikudW5iaW5kKCJyZXNldCIrdGhpcy5ldmVudE5hbWVzcGFjZSkuYmluZCgicmVzZXQiK3RoaXMuZXZlbnROYW1lc3BhY2UsdSksImJvb2xlYW4iIT10eXBlb2YgdGhpcy5vcHRpb25zLmRpc2FibGVkP3RoaXMub3B0aW9ucy5kaXNhYmxlZD0hIXRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9kZXRlcm1pbmVCdXR0b25UeXBlKCksdGhpcy5oYXNUaXRsZT0hIXRoaXMuYnV0dG9uRWxlbWVudC5hdHRyKCJ0aXRsZSIpO3ZhciB0PXRoaXMsaT10aGlzLm9wdGlvbnMscz0iY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlLG49cz8iIjoidWktc3RhdGUtYWN0aXZlIjtudWxsPT09aS5sYWJlbCYmKGkubGFiZWw9ImlucHV0Ij09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQudmFsKCk6dGhpcy5idXR0b25FbGVtZW50Lmh0bWwoKSksdGhpcy5faG92ZXJhYmxlKHRoaXMuYnV0dG9uRWxlbWVudCksdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKGgpLmF0dHIoInJvbGUiLCJidXR0b24iKS5iaW5kKCJtb3VzZWVudGVyIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7aS5kaXNhYmxlZHx8dGhpcz09PXImJmUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSkuYmluZCgibW91c2VsZWF2ZSIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2kuZGlzYWJsZWR8fGUodGhpcykucmVtb3ZlQ2xhc3Mobil9KS5iaW5kKCJjbGljayIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbihlKXtpLmRpc2FibGVkJiYoZS5wcmV2ZW50RGVmYXVsdCgpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCkpfSksdGhpcy5fb24oe2ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfSxibHVyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpfX0pLHMmJnRoaXMuZWxlbWVudC5iaW5kKCJjaGFuZ2UiK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXt0LnJlZnJlc2goKX0pLCJjaGVja2JveCI9PT10aGlzLnR5cGU/dGhpcy5idXR0b25FbGVtZW50LmJpbmQoImNsaWNrIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6dm9pZCAwfSk6InJhZGlvIj09PXRoaXMudHlwZT90aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgiY2xpY2siK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24oKXtpZihpLmRpc2FibGVkKXJldHVybiExO2UodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHQuYnV0dG9uRWxlbWVudC5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik7dmFyIHM9dC5lbGVtZW50WzBdO2Qocykubm90KHMpLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikuYXR0cigiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKX0pOih0aGlzLmJ1dHRvbkVsZW1lbnQuYmluZCgibW91c2Vkb3duIit0aGlzLmV2ZW50TmFtZXNwYWNlLGZ1bmN0aW9uKCl7cmV0dXJuIGkuZGlzYWJsZWQ/ITE6KGUodGhpcykuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLHI9dGhpcyx0LmRvY3VtZW50Lm9uZSgibW91c2V1cCIsZnVuY3Rpb24oKXtyPW51bGx9KSx2b2lkIDApfSkuYmluZCgibW91c2V1cCIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe3JldHVybiBpLmRpc2FibGVkPyExOihlKHRoaXMpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx2b2lkIDApfSkuYmluZCgia2V5ZG93biIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbih0KXtyZXR1cm4gaS5kaXNhYmxlZD8hMTooKHQua2V5Q29kZT09PWUudWkua2V5Q29kZS5TUEFDRXx8dC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVOVEVSKSYmZSh0aGlzKS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdm9pZCAwKX0pLmJpbmQoImtleXVwIit0aGlzLmV2ZW50TmFtZXNwYWNlKyIgYmx1ciIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpfSksdGhpcy5idXR0b25FbGVtZW50LmlzKCJhIikmJnRoaXMuYnV0dG9uRWxlbWVudC5rZXl1cChmdW5jdGlvbih0KXt0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuU1BBQ0UmJmUodGhpcykuY2xpY2soKX0pKSx0aGlzLl9zZXRPcHRpb24oImRpc2FibGVkIixpLmRpc2FibGVkKSx0aGlzLl9yZXNldEJ1dHRvbigpfSxfZGV0ZXJtaW5lQnV0dG9uVHlwZTpmdW5jdGlvbigpe3ZhciBlLHQsaTt0aGlzLnR5cGU9dGhpcy5lbGVtZW50LmlzKCJbdHlwZT1jaGVja2JveF0iKT8iY2hlY2tib3giOnRoaXMuZWxlbWVudC5pcygiW3R5cGU9cmFkaW9dIik/InJhZGlvIjp0aGlzLmVsZW1lbnQuaXMoImlucHV0Iik/ImlucHV0IjoiYnV0dG9uIiwiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlPyhlPXRoaXMuZWxlbWVudC5wYXJlbnRzKCkubGFzdCgpLHQ9ImxhYmVsW2Zvcj0nIit0aGlzLmVsZW1lbnQuYXR0cigiaWQiKSsiJ10iLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbmQodCksdGhpcy5idXR0b25FbGVtZW50Lmxlbmd0aHx8KGU9ZS5sZW5ndGg/ZS5zaWJsaW5ncygpOnRoaXMuZWxlbWVudC5zaWJsaW5ncygpLHRoaXMuYnV0dG9uRWxlbWVudD1lLmZpbHRlcih0KSx0aGlzLmJ1dHRvbkVsZW1lbnQubGVuZ3RofHwodGhpcy5idXR0b25FbGVtZW50PWUuZmluZCh0KSkpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktaGVscGVyLWhpZGRlbi1hY2Nlc3NpYmxlIiksaT10aGlzLmVsZW1lbnQuaXMoIjpjaGVja2VkIiksaSYmdGhpcy5idXR0b25FbGVtZW50LmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSx0aGlzLmJ1dHRvbkVsZW1lbnQucHJvcCgiYXJpYS1wcmVzc2VkIixpKSk6dGhpcy5idXR0b25FbGVtZW50PXRoaXMuZWxlbWVudH0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYnV0dG9uRWxlbWVudH0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLWhlbHBlci1oaWRkZW4tYWNjZXNzaWJsZSIpLHRoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcyhoKyIgdWktc3RhdGUtYWN0aXZlICIrbCkucmVtb3ZlQXR0cigicm9sZSIpLnJlbW92ZUF0dHIoImFyaWEtcHJlc3NlZCIpLmh0bWwodGhpcy5idXR0b25FbGVtZW50LmZpbmQoIi51aS1idXR0b24tdGV4dCIpLmh0bWwoKSksdGhpcy5oYXNUaXRsZXx8dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUF0dHIoInRpdGxlIil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZT8odGhpcy53aWRnZXQoKS50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCksdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIiwhIXQpLHQmJigiY2hlY2tib3giPT09dGhpcy50eXBlfHwicmFkaW8iPT09dGhpcy50eXBlP3RoaXMuYnV0dG9uRWxlbWVudC5yZW1vdmVDbGFzcygidWktc3RhdGUtZm9jdXMiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWZvY3VzIHVpLXN0YXRlLWFjdGl2ZSIpKSx2b2lkIDApOih0aGlzLl9yZXNldEJ1dHRvbigpLHZvaWQgMCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQuaXMoImlucHV0LCBidXR0b24iKT90aGlzLmVsZW1lbnQuaXMoIjpkaXNhYmxlZCIpOnRoaXMuZWxlbWVudC5oYXNDbGFzcygidWktYnV0dG9uLWRpc2FibGVkIik7dCE9PXRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdCksInJhZGlvIj09PXRoaXMudHlwZT9kKHRoaXMuZWxlbWVudFswXSkuZWFjaChmdW5jdGlvbigpe2UodGhpcykuaXMoIjpjaGVja2VkIik/ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJ0cnVlIik6ZSh0aGlzKS5idXR0b24oIndpZGdldCIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpfSk6ImNoZWNrYm94Ij09PXRoaXMudHlwZSYmKHRoaXMuZWxlbWVudC5pcygiOmNoZWNrZWQiKT90aGlzLmJ1dHRvbkVsZW1lbnQuYWRkQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsInRydWUiKTp0aGlzLmJ1dHRvbkVsZW1lbnQucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpLmF0dHIoImFyaWEtcHJlc3NlZCIsImZhbHNlIikpfSxfcmVzZXRCdXR0b246ZnVuY3Rpb24oKXtpZigiaW5wdXQiPT09dGhpcy50eXBlKXJldHVybiB0aGlzLm9wdGlvbnMubGFiZWwmJnRoaXMuZWxlbWVudC52YWwodGhpcy5vcHRpb25zLmxhYmVsKSx2b2lkIDA7dmFyIHQ9dGhpcy5idXR0b25FbGVtZW50LnJlbW92ZUNsYXNzKGwpLGk9ZSgiPHNwYW4+PC9zcGFuPiIsdGhpcy5kb2N1bWVudFswXSkuYWRkQ2xhc3MoInVpLWJ1dHRvbi10ZXh0IikuaHRtbCh0aGlzLm9wdGlvbnMubGFiZWwpLmFwcGVuZFRvKHQuZW1wdHkoKSkudGV4dCgpLHM9dGhpcy5vcHRpb25zLmljb25zLG49cy5wcmltYXJ5JiZzLnNlY29uZGFyeSxhPVtdO3MucHJpbWFyeXx8cy5zZWNvbmRhcnk/KHRoaXMub3B0aW9ucy50ZXh0JiZhLnB1c2goInVpLWJ1dHRvbi10ZXh0LWljb24iKyhuPyJzIjpzLnByaW1hcnk/Ii1wcmltYXJ5IjoiLXNlY29uZGFyeSIpKSxzLnByaW1hcnkmJnQucHJlcGVuZCgiPHNwYW4gY2xhc3M9J3VpLWJ1dHRvbi1pY29uLXByaW1hcnkgdWktaWNvbiAiK3MucHJpbWFyeSsiJz48L3NwYW4+Iikscy5zZWNvbmRhcnkmJnQuYXBwZW5kKCI8c3BhbiBjbGFzcz0ndWktYnV0dG9uLWljb24tc2Vjb25kYXJ5IHVpLWljb24gIitzLnNlY29uZGFyeSsiJz48L3NwYW4+IiksdGhpcy5vcHRpb25zLnRleHR8fChhLnB1c2gobj8idWktYnV0dG9uLWljb25zLW9ubHkiOiJ1aS1idXR0b24taWNvbi1vbmx5IiksdGhpcy5oYXNUaXRsZXx8dC5hdHRyKCJ0aXRsZSIsZS50cmltKGkpKSkpOmEucHVzaCgidWktYnV0dG9uLXRleHQtb25seSIpLHQuYWRkQ2xhc3MoYS5qb2luKCIgIikpfX0pLGUud2lkZ2V0KCJ1aS5idXR0b25zZXQiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2l0ZW1zOiJidXR0b24sIGlucHV0W3R5cGU9YnV0dG9uXSwgaW5wdXRbdHlwZT1zdWJtaXRdLCBpbnB1dFt0eXBlPXJlc2V0XSwgaW5wdXRbdHlwZT1jaGVja2JveF0sIGlucHV0W3R5cGU9cmFkaW9dLCBhLCA6ZGF0YSh1aS1idXR0b24pIn0sX2NyZWF0ZTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5hZGRDbGFzcygidWktYnV0dG9uc2V0Iil9LF9pbml0OmZ1bmN0aW9uKCl7dGhpcy5yZWZyZXNoKCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiZGlzYWJsZWQiPT09ZSYmdGhpcy5idXR0b25zLmJ1dHRvbigib3B0aW9uIixlLHQpLHRoaXMuX3N1cGVyKGUsdCl9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD0icnRsIj09PXRoaXMuZWxlbWVudC5jc3MoImRpcmVjdGlvbiIpLGk9dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKSxzPWkuZmlsdGVyKCI6dWktYnV0dG9uIik7aS5ub3QoIjp1aS1idXR0b24iKS5idXR0b24oKSxzLmJ1dHRvbigicmVmcmVzaCIpLHRoaXMuYnV0dG9ucz1pLm1hcChmdW5jdGlvbigpe3JldHVybiBlKHRoaXMpLmJ1dHRvbigid2lkZ2V0IilbMF19KS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCB1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5maWx0ZXIoIjpmaXJzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1yaWdodCI6InVpLWNvcm5lci1sZWZ0IikuZW5kKCkuZmlsdGVyKCI6bGFzdCIpLmFkZENsYXNzKHQ/InVpLWNvcm5lci1sZWZ0IjoidWktY29ybmVyLXJpZ2h0IikuZW5kKCkuZW5kKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1idXR0b25zZXQiKSx0aGlzLmJ1dHRvbnMubWFwKGZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcykuYnV0dG9uKCJ3aWRnZXQiKVswXX0pLnJlbW92ZUNsYXNzKCJ1aS1jb3JuZXItbGVmdCB1aS1jb3JuZXItcmlnaHQiKS5lbmQoKS5idXR0b24oImRlc3Ryb3kiKX19KSxlLnVpLmJ1dHRvbixlLndpZGdldCgidWkuZGlhbG9nIix7dmVyc2lvbjoiMS4xMS40IixvcHRpb25zOnthcHBlbmRUbzoiYm9keSIsYXV0b09wZW46ITAsYnV0dG9uczpbXSxjbG9zZU9uRXNjYXBlOiEwLGNsb3NlVGV4dDoiQ2xvc2UiLGRpYWxvZ0NsYXNzOiIiLGRyYWdnYWJsZTohMCxoaWRlOm51bGwsaGVpZ2h0OiJhdXRvIixtYXhIZWlnaHQ6bnVsbCxtYXhXaWR0aDpudWxsLG1pbkhlaWdodDoxNTAsbWluV2lkdGg6MTUwLG1vZGFsOiExLHBvc2l0aW9uOntteToiY2VudGVyIixhdDoiY2VudGVyIixvZjp3aW5kb3csY29sbGlzaW9uOiJmaXQiLHVzaW5nOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcykuY3NzKHQpLm9mZnNldCgpLnRvcDswPmkmJmUodGhpcykuY3NzKCJ0b3AiLHQudG9wLWkpfX0scmVzaXphYmxlOiEwLHNob3c6bnVsbCx0aXRsZTpudWxsLHdpZHRoOjMwMCxiZWZvcmVDbG9zZTpudWxsLGNsb3NlOm51bGwsZHJhZzpudWxsLGRyYWdTdGFydDpudWxsLGRyYWdTdG9wOm51bGwsZm9jdXM6bnVsbCxvcGVuOm51bGwscmVzaXplOm51bGwscmVzaXplU3RhcnQ6bnVsbCxyZXNpemVTdG9wOm51bGx9LHNpemVSZWxhdGVkT3B0aW9uczp7YnV0dG9uczohMCxoZWlnaHQ6ITAsbWF4SGVpZ2h0OiEwLG1heFdpZHRoOiEwLG1pbkhlaWdodDohMCxtaW5XaWR0aDohMCx3aWR0aDohMH0scmVzaXphYmxlUmVsYXRlZE9wdGlvbnM6e21heEhlaWdodDohMCxtYXhXaWR0aDohMCxtaW5IZWlnaHQ6ITAsbWluV2lkdGg6ITB9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLm9yaWdpbmFsQ3NzPXtkaXNwbGF5OnRoaXMuZWxlbWVudFswXS5zdHlsZS5kaXNwbGF5LHdpZHRoOnRoaXMuZWxlbWVudFswXS5zdHlsZS53aWR0aCxtaW5IZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1pbkhlaWdodCxtYXhIZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLm1heEhlaWdodCxoZWlnaHQ6dGhpcy5lbGVtZW50WzBdLnN0eWxlLmhlaWdodH0sdGhpcy5vcmlnaW5hbFBvc2l0aW9uPXtwYXJlbnQ6dGhpcy5lbGVtZW50LnBhcmVudCgpLGluZGV4OnRoaXMuZWxlbWVudC5wYXJlbnQoKS5jaGlsZHJlbigpLmluZGV4KHRoaXMuZWxlbWVudCl9LHRoaXMub3JpZ2luYWxUaXRsZT10aGlzLmVsZW1lbnQuYXR0cigidGl0bGUiKSx0aGlzLm9wdGlvbnMudGl0bGU9dGhpcy5vcHRpb25zLnRpdGxlfHx0aGlzLm9yaWdpbmFsVGl0bGUsdGhpcy5fY3JlYXRlV3JhcHBlcigpLHRoaXMuZWxlbWVudC5zaG93KCkucmVtb3ZlQXR0cigidGl0bGUiKS5hZGRDbGFzcygidWktZGlhbG9nLWNvbnRlbnQgdWktd2lkZ2V0LWNvbnRlbnQiKS5hcHBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9jcmVhdGVUaXRsZWJhcigpLHRoaXMuX2NyZWF0ZUJ1dHRvblBhbmUoKSx0aGlzLm9wdGlvbnMuZHJhZ2dhYmxlJiZlLmZuLmRyYWdnYWJsZSYmdGhpcy5fbWFrZURyYWdnYWJsZSgpLHRoaXMub3B0aW9ucy5yZXNpemFibGUmJmUuZm4ucmVzaXphYmxlJiZ0aGlzLl9tYWtlUmVzaXphYmxlKCksdGhpcy5faXNPcGVuPSExLHRoaXMuX3RyYWNrRm9jdXMoKX0sX2luaXQ6ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuYXV0b09wZW4mJnRoaXMub3BlbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0LmpxdWVyeXx8dC5ub2RlVHlwZSk/ZSh0KTp0aGlzLmRvY3VtZW50LmZpbmQodHx8ImJvZHkiKS5lcSgwKX0sX2Rlc3Ryb3k6ZnVuY3Rpb24oKXt2YXIgZSx0PXRoaXMub3JpZ2luYWxQb3NpdGlvbjt0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSx0aGlzLl9kZXN0cm95T3ZlcmxheSgpLHRoaXMuZWxlbWVudC5yZW1vdmVVbmlxdWVJZCgpLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctY29udGVudCB1aS13aWRnZXQtY29udGVudCIpLmNzcyh0aGlzLm9yaWdpbmFsQ3NzKS5kZXRhY2goKSx0aGlzLnVpRGlhbG9nLnN0b3AoITAsITApLnJlbW92ZSgpLHRoaXMub3JpZ2luYWxUaXRsZSYmdGhpcy5lbGVtZW50LmF0dHIoInRpdGxlIix0aGlzLm9yaWdpbmFsVGl0bGUpLGU9dC5wYXJlbnQuY2hpbGRyZW4oKS5lcSh0LmluZGV4KSxlLmxlbmd0aCYmZVswXSE9PXRoaXMuZWxlbWVudFswXT9lLmJlZm9yZSh0aGlzLmVsZW1lbnQpOnQucGFyZW50LmFwcGVuZCh0aGlzLmVsZW1lbnQpfSx3aWRnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy51aURpYWxvZ30sZGlzYWJsZTplLm5vb3AsZW5hYmxlOmUubm9vcCxjbG9zZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXM7aWYodGhpcy5faXNPcGVuJiZ0aGlzLl90cmlnZ2VyKCJiZWZvcmVDbG9zZSIsdCkhPT0hMSl7aWYodGhpcy5faXNPcGVuPSExLHRoaXMuX2ZvY3VzZWRFbGVtZW50PW51bGwsdGhpcy5fZGVzdHJveU92ZXJsYXkoKSx0aGlzLl91bnRyYWNrSW5zdGFuY2UoKSwhdGhpcy5vcGVuZXIuZmlsdGVyKCI6Zm9jdXNhYmxlIikuZm9jdXMoKS5sZW5ndGgpdHJ5e2k9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGkmJiJib2R5IiE9PWkubm9kZU5hbWUudG9Mb3dlckNhc2UoKSYmZShpKS5ibHVyKCl9Y2F0Y2gobil7fXRoaXMuX2hpZGUodGhpcy51aURpYWxvZyx0aGlzLm9wdGlvbnMuaGlkZSxmdW5jdGlvbigpe3MuX3RyaWdnZXIoImNsb3NlIix0KX0pfX0saXNPcGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2lzT3Blbn0sbW92ZVRvVG9wOmZ1bmN0aW9uKCl7dGhpcy5fbW92ZVRvVG9wKCl9LF9tb3ZlVG9Ub3A6ZnVuY3Rpb24odCxpKXt2YXIgcz0hMSxuPXRoaXMudWlEaWFsb2cuc2libGluZ3MoIi51aS1mcm9udDp2aXNpYmxlIikubWFwKGZ1bmN0aW9uKCl7cmV0dXJuK2UodGhpcykuY3NzKCJ6LWluZGV4Iil9KS5nZXQoKSxhPU1hdGgubWF4LmFwcGx5KG51bGwsbik7cmV0dXJuIGE+PSt0aGlzLnVpRGlhbG9nLmNzcygiei1pbmRleCIpJiYodGhpcy51aURpYWxvZy5jc3MoInotaW5kZXgiLGErMSkscz0hMCkscyYmIWkmJnRoaXMuX3RyaWdnZXIoImZvY3VzIix0KSxzfSxvcGVuOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5faXNPcGVuPyh0aGlzLl9tb3ZlVG9Ub3AoKSYmdGhpcy5fZm9jdXNUYWJiYWJsZSgpLHZvaWQgMCk6KHRoaXMuX2lzT3Blbj0hMCx0aGlzLm9wZW5lcj1lKHRoaXMuZG9jdW1lbnRbMF0uYWN0aXZlRWxlbWVudCksdGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCksdGhpcy5fY3JlYXRlT3ZlcmxheSgpLHRoaXMuX21vdmVUb1RvcChudWxsLCEwKSx0aGlzLm92ZXJsYXkmJnRoaXMub3ZlcmxheS5jc3MoInotaW5kZXgiLHRoaXMudWlEaWFsb2cuY3NzKCJ6LWluZGV4IiktMSksdGhpcy5fc2hvdyh0aGlzLnVpRGlhbG9nLHRoaXMub3B0aW9ucy5zaG93LGZ1bmN0aW9uKCl7dC5fZm9jdXNUYWJiYWJsZSgpLHQuX3RyaWdnZXIoImZvY3VzIil9KSx0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl90cmlnZ2VyKCJvcGVuIiksdm9pZCAwKX0sX2ZvY3VzVGFiYmFibGU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLl9mb2N1c2VkRWxlbWVudDtlfHwoZT10aGlzLmVsZW1lbnQuZmluZCgiW2F1dG9mb2N1c10iKSksZS5sZW5ndGh8fChlPXRoaXMuZWxlbWVudC5maW5kKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2dCdXR0b25QYW5lLmZpbmQoIjp0YWJiYWJsZSIpKSxlLmxlbmd0aHx8KGU9dGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2UuZmlsdGVyKCI6dGFiYmFibGUiKSksZS5sZW5ndGh8fChlPXRoaXMudWlEaWFsb2cpLGUuZXEoMCkuZm9jdXMoKX0sX2tlZXBGb2N1czpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIHQ9dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50LGk9dGhpcy51aURpYWxvZ1swXT09PXR8fGUuY29udGFpbnModGhpcy51aURpYWxvZ1swXSx0KTtpfHx0aGlzLl9mb2N1c1RhYmJhYmxlKCl9dC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLl9kZWxheShpKX0sX2NyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24oKXt0aGlzLnVpRGlhbG9nPWUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLWRpYWxvZyB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCB1aS1mcm9udCAiK3RoaXMub3B0aW9ucy5kaWFsb2dDbGFzcykuaGlkZSgpLmF0dHIoe3RhYkluZGV4Oi0xLHJvbGU6ImRpYWxvZyJ9KS5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nLHtrZXlkb3duOmZ1bmN0aW9uKHQpe2lmKHRoaXMub3B0aW9ucy5jbG9zZU9uRXNjYXBlJiYhdC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSYmdC5rZXlDb2RlJiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuRVNDQVBFKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdGhpcy5jbG9zZSh0KSx2b2lkIDA7aWYodC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlRBQiYmIXQuaXNEZWZhdWx0UHJldmVudGVkKCkpe3ZhciBpPXRoaXMudWlEaWFsb2cuZmluZCgiOnRhYmJhYmxlIikscz1pLmZpbHRlcigiOmZpcnN0Iiksbj1pLmZpbHRlcigiOmxhc3QiKTt0LnRhcmdldCE9PW5bMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8dC5zaGlmdEtleT90LnRhcmdldCE9PXNbMF0mJnQudGFyZ2V0IT09dGhpcy51aURpYWxvZ1swXXx8IXQuc2hpZnRLZXl8fCh0aGlzLl9kZWxheShmdW5jdGlvbigpe24uZm9jdXMoKX0pLHQucHJldmVudERlZmF1bHQoKSk6KHRoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7cy5mb2N1cygpfSksdC5wcmV2ZW50RGVmYXVsdCgpKX19LG1vdXNlZG93bjpmdW5jdGlvbihlKXt0aGlzLl9tb3ZlVG9Ub3AoZSkmJnRoaXMuX2ZvY3VzVGFiYmFibGUoKX19KSx0aGlzLmVsZW1lbnQuZmluZCgiW2FyaWEtZGVzY3JpYmVkYnldIikubGVuZ3RofHx0aGlzLnVpRGlhbG9nLmF0dHIoeyJhcmlhLWRlc2NyaWJlZGJ5Ijp0aGlzLmVsZW1lbnQudW5pcXVlSWQoKS5hdHRyKCJpZCIpfSl9LF9jcmVhdGVUaXRsZWJhcjpmdW5jdGlvbigpe3ZhciB0O3RoaXMudWlEaWFsb2dUaXRsZWJhcj1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctdGl0bGViYXIgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIHVpLWhlbHBlci1jbGVhcmZpeCIpLnByZXBlbmRUbyh0aGlzLnVpRGlhbG9nKSx0aGlzLl9vbih0aGlzLnVpRGlhbG9nVGl0bGViYXIse21vdXNlZG93bjpmdW5jdGlvbih0KXtlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGlhbG9nLXRpdGxlYmFyLWNsb3NlIil8fHRoaXMudWlEaWFsb2cuZm9jdXMoKX19KSx0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZT1lKCI8YnV0dG9uIHR5cGU9J2J1dHRvbic+PC9idXR0b24+IikuYnV0dG9uKHtsYWJlbDp0aGlzLm9wdGlvbnMuY2xvc2VUZXh0LGljb25zOntwcmltYXJ5OiJ1aS1pY29uLWNsb3NldGhpY2sifSx0ZXh0OiExfSkuYWRkQ2xhc3MoInVpLWRpYWxvZy10aXRsZWJhci1jbG9zZSIpLmFwcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fb24odGhpcy51aURpYWxvZ1RpdGxlYmFyQ2xvc2Use2NsaWNrOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLmNsb3NlKGUpfX0pLHQ9ZSgiPHNwYW4+IikudW5pcXVlSWQoKS5hZGRDbGFzcygidWktZGlhbG9nLXRpdGxlIikucHJlcGVuZFRvKHRoaXMudWlEaWFsb2dUaXRsZWJhciksdGhpcy5fdGl0bGUodCksdGhpcy51aURpYWxvZy5hdHRyKHsiYXJpYS1sYWJlbGxlZGJ5Ijp0LmF0dHIoImlkIil9KX0sX3RpdGxlOmZ1bmN0aW9uKGUpe3RoaXMub3B0aW9ucy50aXRsZXx8ZS5odG1sKCImIzE2MDsiKSxlLnRleHQodGhpcy5vcHRpb25zLnRpdGxlKQp9LF9jcmVhdGVCdXR0b25QYW5lOmZ1bmN0aW9uKCl7dGhpcy51aURpYWxvZ0J1dHRvblBhbmU9ZSgiPGRpdj4iKS5hZGRDbGFzcygidWktZGlhbG9nLWJ1dHRvbnBhbmUgdWktd2lkZ2V0LWNvbnRlbnQgdWktaGVscGVyLWNsZWFyZml4IiksdGhpcy51aUJ1dHRvblNldD1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS1kaWFsb2ctYnV0dG9uc2V0IikuYXBwZW5kVG8odGhpcy51aURpYWxvZ0J1dHRvblBhbmUpLHRoaXMuX2NyZWF0ZUJ1dHRvbnMoKX0sX2NyZWF0ZUJ1dHRvbnM6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zLmJ1dHRvbnM7cmV0dXJuIHRoaXMudWlEaWFsb2dCdXR0b25QYW5lLnJlbW92ZSgpLHRoaXMudWlCdXR0b25TZXQuZW1wdHkoKSxlLmlzRW1wdHlPYmplY3QoaSl8fGUuaXNBcnJheShpKSYmIWkubGVuZ3RoPyh0aGlzLnVpRGlhbG9nLnJlbW92ZUNsYXNzKCJ1aS1kaWFsb2ctYnV0dG9ucyIpLHZvaWQgMCk6KGUuZWFjaChpLGZ1bmN0aW9uKGkscyl7dmFyIG4sYTtzPWUuaXNGdW5jdGlvbihzKT97Y2xpY2s6cyx0ZXh0Oml9OnMscz1lLmV4dGVuZCh7dHlwZToiYnV0dG9uIn0scyksbj1zLmNsaWNrLHMuY2xpY2s9ZnVuY3Rpb24oKXtuLmFwcGx5KHQuZWxlbWVudFswXSxhcmd1bWVudHMpfSxhPXtpY29uczpzLmljb25zLHRleHQ6cy5zaG93VGV4dH0sZGVsZXRlIHMuaWNvbnMsZGVsZXRlIHMuc2hvd1RleHQsZSgiPGJ1dHRvbj48L2J1dHRvbj4iLHMpLmJ1dHRvbihhKS5hcHBlbmRUbyh0LnVpQnV0dG9uU2V0KX0pLHRoaXMudWlEaWFsb2cuYWRkQ2xhc3MoInVpLWRpYWxvZy1idXR0b25zIiksdGhpcy51aURpYWxvZ0J1dHRvblBhbmUuYXBwZW5kVG8odGhpcy51aURpYWxvZyksdm9pZCAwKX0sX21ha2VEcmFnZ2FibGU6ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpe3JldHVybntwb3NpdGlvbjplLnBvc2l0aW9uLG9mZnNldDplLm9mZnNldH19dmFyIGk9dGhpcyxzPXRoaXMub3B0aW9uczt0aGlzLnVpRGlhbG9nLmRyYWdnYWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQsIC51aS1kaWFsb2ctdGl0bGViYXItY2xvc2UiLGhhbmRsZToiLnVpLWRpYWxvZy10aXRsZWJhciIsY29udGFpbm1lbnQ6ImRvY3VtZW50IixzdGFydDpmdW5jdGlvbihzLG4pe2UodGhpcykuYWRkQ2xhc3MoInVpLWRpYWxvZy1kcmFnZ2luZyIpLGkuX2Jsb2NrRnJhbWVzKCksaS5fdHJpZ2dlcigiZHJhZ1N0YXJ0IixzLHQobikpfSxkcmFnOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigiZHJhZyIsZSx0KHMpKX0sc3RvcDpmdW5jdGlvbihuLGEpe3ZhciBvPWEub2Zmc2V0LmxlZnQtaS5kb2N1bWVudC5zY3JvbGxMZWZ0KCkscj1hLm9mZnNldC50b3AtaS5kb2N1bWVudC5zY3JvbGxUb3AoKTtzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisobz49MD8iKyI6IiIpK28rIiAiKyJ0b3AiKyhyPj0wPyIrIjoiIikrcixvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLWRyYWdnaW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoImRyYWdTdG9wIixuLHQoYSkpfX0pfSxfbWFrZVJlc2l6YWJsZTpmdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7cmV0dXJue29yaWdpbmFsUG9zaXRpb246ZS5vcmlnaW5hbFBvc2l0aW9uLG9yaWdpbmFsU2l6ZTplLm9yaWdpbmFsU2l6ZSxwb3NpdGlvbjplLnBvc2l0aW9uLHNpemU6ZS5zaXplfX12YXIgaT10aGlzLHM9dGhpcy5vcHRpb25zLG49cy5yZXNpemFibGUsYT10aGlzLnVpRGlhbG9nLmNzcygicG9zaXRpb24iKSxvPSJzdHJpbmciPT10eXBlb2Ygbj9uOiJuLGUscyx3LHNlLHN3LG5lLG53Ijt0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSh7Y2FuY2VsOiIudWktZGlhbG9nLWNvbnRlbnQiLGNvbnRhaW5tZW50OiJkb2N1bWVudCIsYWxzb1Jlc2l6ZTp0aGlzLmVsZW1lbnQsbWF4V2lkdGg6cy5tYXhXaWR0aCxtYXhIZWlnaHQ6cy5tYXhIZWlnaHQsbWluV2lkdGg6cy5taW5XaWR0aCxtaW5IZWlnaHQ6dGhpcy5fbWluSGVpZ2h0KCksaGFuZGxlczpvLHN0YXJ0OmZ1bmN0aW9uKHMsbil7ZSh0aGlzKS5hZGRDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fYmxvY2tGcmFtZXMoKSxpLl90cmlnZ2VyKCJyZXNpemVTdGFydCIscyx0KG4pKX0scmVzaXplOmZ1bmN0aW9uKGUscyl7aS5fdHJpZ2dlcigicmVzaXplIixlLHQocykpfSxzdG9wOmZ1bmN0aW9uKG4sYSl7dmFyIG89aS51aURpYWxvZy5vZmZzZXQoKSxyPW8ubGVmdC1pLmRvY3VtZW50LnNjcm9sbExlZnQoKSxoPW8udG9wLWkuZG9jdW1lbnQuc2Nyb2xsVG9wKCk7cy5oZWlnaHQ9aS51aURpYWxvZy5oZWlnaHQoKSxzLndpZHRoPWkudWlEaWFsb2cud2lkdGgoKSxzLnBvc2l0aW9uPXtteToibGVmdCB0b3AiLGF0OiJsZWZ0Iisocj49MD8iKyI6IiIpK3IrIiAiKyJ0b3AiKyhoPj0wPyIrIjoiIikraCxvZjppLndpbmRvd30sZSh0aGlzKS5yZW1vdmVDbGFzcygidWktZGlhbG9nLXJlc2l6aW5nIiksaS5fdW5ibG9ja0ZyYW1lcygpLGkuX3RyaWdnZXIoInJlc2l6ZVN0b3AiLG4sdChhKSl9fSkuY3NzKCJwb3NpdGlvbiIsYSl9LF90cmFja0ZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5fb24odGhpcy53aWRnZXQoKSx7Zm9jdXNpbjpmdW5jdGlvbih0KXt0aGlzLl9tYWtlRm9jdXNUYXJnZXQoKSx0aGlzLl9mb2N1c2VkRWxlbWVudD1lKHQudGFyZ2V0KX19KX0sX21ha2VGb2N1c1RhcmdldDpmdW5jdGlvbigpe3RoaXMuX3VudHJhY2tJbnN0YW5jZSgpLHRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCkudW5zaGlmdCh0aGlzKX0sX3VudHJhY2tJbnN0YW5jZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RyYWNraW5nSW5zdGFuY2VzKCksaT1lLmluQXJyYXkodGhpcyx0KTstMSE9PWkmJnQuc3BsaWNlKGksMSl9LF90cmFja2luZ0luc3RhbmNlczpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLWluc3RhbmNlcyIpO3JldHVybiBlfHwoZT1bXSx0aGlzLmRvY3VtZW50LmRhdGEoInVpLWRpYWxvZy1pbnN0YW5jZXMiLGUpKSxlfSxfbWluSGVpZ2h0OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zO3JldHVybiJhdXRvIj09PWUuaGVpZ2h0P2UubWluSGVpZ2h0Ok1hdGgubWluKGUubWluSGVpZ2h0LGUuaGVpZ2h0KX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy51aURpYWxvZy5pcygiOnZpc2libGUiKTtlfHx0aGlzLnVpRGlhbG9nLnNob3coKSx0aGlzLnVpRGlhbG9nLnBvc2l0aW9uKHRoaXMub3B0aW9ucy5wb3NpdGlvbiksZXx8dGhpcy51aURpYWxvZy5oaWRlKCl9LF9zZXRPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz0hMSxuPXt9O2UuZWFjaCh0LGZ1bmN0aW9uKGUsdCl7aS5fc2V0T3B0aW9uKGUsdCksZSBpbiBpLnNpemVSZWxhdGVkT3B0aW9ucyYmKHM9ITApLGUgaW4gaS5yZXNpemFibGVSZWxhdGVkT3B0aW9ucyYmKG5bZV09dCl9KSxzJiYodGhpcy5fc2l6ZSgpLHRoaXMuX3Bvc2l0aW9uKCkpLHRoaXMudWlEaWFsb2cuaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSYmdGhpcy51aURpYWxvZy5yZXNpemFibGUoIm9wdGlvbiIsbil9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXt2YXIgaSxzLG49dGhpcy51aURpYWxvZzsiZGlhbG9nQ2xhc3MiPT09ZSYmbi5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuZGlhbG9nQ2xhc3MpLmFkZENsYXNzKHQpLCJkaXNhYmxlZCIhPT1lJiYodGhpcy5fc3VwZXIoZSx0KSwiYXBwZW5kVG8iPT09ZSYmdGhpcy51aURpYWxvZy5hcHBlbmRUbyh0aGlzLl9hcHBlbmRUbygpKSwiYnV0dG9ucyI9PT1lJiZ0aGlzLl9jcmVhdGVCdXR0b25zKCksImNsb3NlVGV4dCI9PT1lJiZ0aGlzLnVpRGlhbG9nVGl0bGViYXJDbG9zZS5idXR0b24oe2xhYmVsOiIiK3R9KSwiZHJhZ2dhYmxlIj09PWUmJihpPW4uaXMoIjpkYXRhKHVpLWRyYWdnYWJsZSkiKSxpJiYhdCYmbi5kcmFnZ2FibGUoImRlc3Ryb3kiKSwhaSYmdCYmdGhpcy5fbWFrZURyYWdnYWJsZSgpKSwicG9zaXRpb24iPT09ZSYmdGhpcy5fcG9zaXRpb24oKSwicmVzaXphYmxlIj09PWUmJihzPW4uaXMoIjpkYXRhKHVpLXJlc2l6YWJsZSkiKSxzJiYhdCYmbi5yZXNpemFibGUoImRlc3Ryb3kiKSxzJiYic3RyaW5nIj09dHlwZW9mIHQmJm4ucmVzaXphYmxlKCJvcHRpb24iLCJoYW5kbGVzIix0KSxzfHx0PT09ITF8fHRoaXMuX21ha2VSZXNpemFibGUoKSksInRpdGxlIj09PWUmJnRoaXMuX3RpdGxlKHRoaXMudWlEaWFsb2dUaXRsZWJhci5maW5kKCIudWktZGlhbG9nLXRpdGxlIikpKX0sX3NpemU6ZnVuY3Rpb24oKXt2YXIgZSx0LGkscz10aGlzLm9wdGlvbnM7dGhpcy5lbGVtZW50LnNob3coKS5jc3Moe3dpZHRoOiJhdXRvIixtaW5IZWlnaHQ6MCxtYXhIZWlnaHQ6Im5vbmUiLGhlaWdodDowfSkscy5taW5XaWR0aD5zLndpZHRoJiYocy53aWR0aD1zLm1pbldpZHRoKSxlPXRoaXMudWlEaWFsb2cuY3NzKHtoZWlnaHQ6ImF1dG8iLHdpZHRoOnMud2lkdGh9KS5vdXRlckhlaWdodCgpLHQ9TWF0aC5tYXgoMCxzLm1pbkhlaWdodC1lKSxpPSJudW1iZXIiPT10eXBlb2Ygcy5tYXhIZWlnaHQ/TWF0aC5tYXgoMCxzLm1heEhlaWdodC1lKToibm9uZSIsImF1dG8iPT09cy5oZWlnaHQ/dGhpcy5lbGVtZW50LmNzcyh7bWluSGVpZ2h0OnQsbWF4SGVpZ2h0OmksaGVpZ2h0OiJhdXRvIn0pOnRoaXMuZWxlbWVudC5oZWlnaHQoTWF0aC5tYXgoMCxzLmhlaWdodC1lKSksdGhpcy51aURpYWxvZy5pcygiOmRhdGEodWktcmVzaXphYmxlKSIpJiZ0aGlzLnVpRGlhbG9nLnJlc2l6YWJsZSgib3B0aW9uIiwibWluSGVpZ2h0Iix0aGlzLl9taW5IZWlnaHQoKSl9LF9ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzPXRoaXMuZG9jdW1lbnQuZmluZCgiaWZyYW1lIikubWFwKGZ1bmN0aW9uKCl7dmFyIHQ9ZSh0aGlzKTtyZXR1cm4gZSgiPGRpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsd2lkdGg6dC5vdXRlcldpZHRoKCksaGVpZ2h0OnQub3V0ZXJIZWlnaHQoKX0pLmFwcGVuZFRvKHQucGFyZW50KCkpLm9mZnNldCh0Lm9mZnNldCgpKVswXX0pfSxfdW5ibG9ja0ZyYW1lczpmdW5jdGlvbigpe3RoaXMuaWZyYW1lQmxvY2tzJiYodGhpcy5pZnJhbWVCbG9ja3MucmVtb3ZlKCksZGVsZXRlIHRoaXMuaWZyYW1lQmxvY2tzKX0sX2FsbG93SW50ZXJhY3Rpb246ZnVuY3Rpb24odCl7cmV0dXJuIGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1kaWFsb2ciKS5sZW5ndGg/ITA6ISFlKHQudGFyZ2V0KS5jbG9zZXN0KCIudWktZGF0ZXBpY2tlciIpLmxlbmd0aH0sX2NyZWF0ZU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwpe3ZhciB0PSEwO3RoaXMuX2RlbGF5KGZ1bmN0aW9uKCl7dD0hMX0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIil8fHRoaXMuX29uKHRoaXMuZG9jdW1lbnQse2ZvY3VzaW46ZnVuY3Rpb24oZSl7dHx8dGhpcy5fYWxsb3dJbnRlcmFjdGlvbihlKXx8KGUucHJldmVudERlZmF1bHQoKSx0aGlzLl90cmFja2luZ0luc3RhbmNlcygpWzBdLl9mb2N1c1RhYmJhYmxlKCkpfX0pLHRoaXMub3ZlcmxheT1lKCI8ZGl2PiIpLmFkZENsYXNzKCJ1aS13aWRnZXQtb3ZlcmxheSB1aS1mcm9udCIpLmFwcGVuZFRvKHRoaXMuX2FwcGVuZFRvKCkpLHRoaXMuX29uKHRoaXMub3ZlcmxheSx7bW91c2Vkb3duOiJfa2VlcEZvY3VzIn0pLHRoaXMuZG9jdW1lbnQuZGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiwodGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKXx8MCkrMSl9fSxfZGVzdHJveU92ZXJsYXk6ZnVuY3Rpb24oKXtpZih0aGlzLm9wdGlvbnMubW9kYWwmJnRoaXMub3ZlcmxheSl7dmFyIGU9dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiKS0xO2U/dGhpcy5kb2N1bWVudC5kYXRhKCJ1aS1kaWFsb2ctb3ZlcmxheXMiLGUpOnRoaXMuZG9jdW1lbnQudW5iaW5kKCJmb2N1c2luIikucmVtb3ZlRGF0YSgidWktZGlhbG9nLW92ZXJsYXlzIiksdGhpcy5vdmVybGF5LnJlbW92ZSgpLHRoaXMub3ZlcmxheT1udWxsfX19KSxlLndpZGdldCgidWkucHJvZ3Jlc3NiYXIiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e21heDoxMDAsdmFsdWU6MCxjaGFuZ2U6bnVsbCxjb21wbGV0ZTpudWxsfSxtaW46MCxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5vbGRWYWx1ZT10aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZSgpLHRoaXMuZWxlbWVudC5hZGRDbGFzcygidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS5hdHRyKHtyb2xlOiJwcm9ncmVzc2JhciIsImFyaWEtdmFsdWVtaW4iOnRoaXMubWlufSksdGhpcy52YWx1ZURpdj1lKCI8ZGl2IGNsYXNzPSd1aS1wcm9ncmVzc2Jhci12YWx1ZSB1aS13aWRnZXQtaGVhZGVyIHVpLWNvcm5lci1sZWZ0Jz48L2Rpdj4iKS5hcHBlbmRUbyh0aGlzLmVsZW1lbnQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuZWxlbWVudC5yZW1vdmVDbGFzcygidWktcHJvZ3Jlc3NiYXIgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy52YWx1ZURpdi5yZW1vdmUoKX0sdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMD09PWU/dGhpcy5vcHRpb25zLnZhbHVlOih0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fY29uc3RyYWluZWRWYWx1ZShlKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx2b2lkIDApfSxfY29uc3RyYWluZWRWYWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdm9pZCAwPT09ZSYmKGU9dGhpcy5vcHRpb25zLnZhbHVlKSx0aGlzLmluZGV0ZXJtaW5hdGU9ZT09PSExLCJudW1iZXIiIT10eXBlb2YgZSYmKGU9MCksdGhpcy5pbmRldGVybWluYXRlPyExOk1hdGgubWluKHRoaXMub3B0aW9ucy5tYXgsTWF0aC5tYXgodGhpcy5taW4sZSkpfSxfc2V0T3B0aW9uczpmdW5jdGlvbihlKXt2YXIgdD1lLnZhbHVlO2RlbGV0ZSBlLnZhbHVlLHRoaXMuX3N1cGVyKGUpLHRoaXMub3B0aW9ucy52YWx1ZT10aGlzLl9jb25zdHJhaW5lZFZhbHVlKHQpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7Im1heCI9PT1lJiYodD1NYXRoLm1heCh0aGlzLm1pbix0KSksImRpc2FibGVkIj09PWUmJnRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLCEhdCkuYXR0cigiYXJpYS1kaXNhYmxlZCIsdCksdGhpcy5fc3VwZXIoZSx0KX0sX3BlcmNlbnRhZ2U6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbmRldGVybWluYXRlPzEwMDoxMDAqKHRoaXMub3B0aW9ucy52YWx1ZS10aGlzLm1pbikvKHRoaXMub3B0aW9ucy5tYXgtdGhpcy5taW4pfSxfcmVmcmVzaFZhbHVlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLnZhbHVlLGk9dGhpcy5fcGVyY2VudGFnZSgpO3RoaXMudmFsdWVEaXYudG9nZ2xlKHRoaXMuaW5kZXRlcm1pbmF0ZXx8dD50aGlzLm1pbikudG9nZ2xlQ2xhc3MoInVpLWNvcm5lci1yaWdodCIsdD09PXRoaXMub3B0aW9ucy5tYXgpLndpZHRoKGkudG9GaXhlZCgwKSsiJSIpLHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktcHJvZ3Jlc3NiYXItaW5kZXRlcm1pbmF0ZSIsdGhpcy5pbmRldGVybWluYXRlKSx0aGlzLmluZGV0ZXJtaW5hdGU/KHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy5vdmVybGF5RGl2fHwodGhpcy5vdmVybGF5RGl2PWUoIjxkaXYgY2xhc3M9J3VpLXByb2dyZXNzYmFyLW92ZXJsYXknPjwvZGl2PiIpLmFwcGVuZFRvKHRoaXMudmFsdWVEaXYpKSk6KHRoaXMuZWxlbWVudC5hdHRyKHsiYXJpYS12YWx1ZW1heCI6dGhpcy5vcHRpb25zLm1heCwiYXJpYS12YWx1ZW5vdyI6dH0pLHRoaXMub3ZlcmxheURpdiYmKHRoaXMub3ZlcmxheURpdi5yZW1vdmUoKSx0aGlzLm92ZXJsYXlEaXY9bnVsbCkpLHRoaXMub2xkVmFsdWUhPT10JiYodGhpcy5vbGRWYWx1ZT10LHRoaXMuX3RyaWdnZXIoImNoYW5nZSIpKSx0PT09dGhpcy5vcHRpb25zLm1heCYmdGhpcy5fdHJpZ2dlcigiY29tcGxldGUiKX19KSxlLndpZGdldCgidWkuc2VsZWN0bWVudSIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxzZWxlY3Q+IixvcHRpb25zOnthcHBlbmRUbzpudWxsLGRpc2FibGVkOm51bGwsaWNvbnM6e2J1dHRvbjoidWktaWNvbi10cmlhbmdsZS0xLXMifSxwb3NpdGlvbjp7bXk6ImxlZnQgdG9wIixhdDoibGVmdCBib3R0b20iLGNvbGxpc2lvbjoibm9uZSJ9LHdpZHRoOm51bGwsY2hhbmdlOm51bGwsY2xvc2U6bnVsbCxmb2N1czpudWxsLG9wZW46bnVsbCxzZWxlY3Q6bnVsbH0sX2NyZWF0ZTpmdW5jdGlvbigpe3ZhciBlPXRoaXMuZWxlbWVudC51bmlxdWVJZCgpLmF0dHIoImlkIik7dGhpcy5pZHM9e2VsZW1lbnQ6ZSxidXR0b246ZSsiLWJ1dHRvbiIsbWVudTplKyItbWVudSJ9LHRoaXMuX2RyYXdCdXR0b24oKSx0aGlzLl9kcmF3TWVudSgpLHRoaXMub3B0aW9ucy5kaXNhYmxlZCYmdGhpcy5kaXNhYmxlKCl9LF9kcmF3QnV0dG9uOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0aGlzLmxhYmVsPWUoImxhYmVsW2Zvcj0nIit0aGlzLmlkcy5lbGVtZW50KyInXSIpLmF0dHIoImZvciIsdGhpcy5pZHMuYnV0dG9uKSx0aGlzLl9vbih0aGlzLmxhYmVsLHtjbGljazpmdW5jdGlvbihlKXt0aGlzLmJ1dHRvbi5mb2N1cygpLGUucHJldmVudERlZmF1bHQoKX19KSx0aGlzLmVsZW1lbnQuaGlkZSgpLHRoaXMuYnV0dG9uPWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiLHRhYmluZGV4OnRoaXMub3B0aW9ucy5kaXNhYmxlZD8tMTowLGlkOnRoaXMuaWRzLmJ1dHRvbixyb2xlOiJjb21ib2JveCIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsImFyaWEtYXV0b2NvbXBsZXRlIjoibGlzdCIsImFyaWEtb3ducyI6dGhpcy5pZHMubWVudSwiYXJpYS1oYXNwb3B1cCI6InRydWUifSkuaW5zZXJ0QWZ0ZXIodGhpcy5lbGVtZW50KSxlKCI8c3Bhbj4iLHsiY2xhc3MiOiJ1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbn0pLnByZXBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5idXR0b25UZXh0PWUoIjxzcGFuPiIseyJjbGFzcyI6InVpLXNlbGVjdG1lbnUtdGV4dCJ9KS5hcHBlbmRUbyh0aGlzLmJ1dHRvbiksdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsdGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbjpzZWxlY3RlZCIpLnRleHQoKSksdGhpcy5fcmVzaXplQnV0dG9uKCksdGhpcy5fb24odGhpcy5idXR0b24sdGhpcy5fYnV0dG9uRXZlbnRzKSx0aGlzLmJ1dHRvbi5vbmUoImZvY3VzaW4iLGZ1bmN0aW9uKCl7dC5tZW51SXRlbXN8fHQuX3JlZnJlc2hNZW51KCl9KSx0aGlzLl9ob3ZlcmFibGUodGhpcy5idXR0b24pLHRoaXMuX2ZvY3VzYWJsZSh0aGlzLmJ1dHRvbil9LF9kcmF3TWVudTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5tZW51PWUoIjx1bD4iLHsiYXJpYS1oaWRkZW4iOiJ0cnVlIiwiYXJpYS1sYWJlbGxlZGJ5Ijp0aGlzLmlkcy5idXR0b24saWQ6dGhpcy5pZHMubWVudX0pLHRoaXMubWVudVdyYXA9ZSgiPGRpdj4iLHsiY2xhc3MiOiJ1aS1zZWxlY3RtZW51LW1lbnUgdWktZnJvbnQifSkuYXBwZW5kKHRoaXMubWVudSkuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksdGhpcy5tZW51SW5zdGFuY2U9dGhpcy5tZW51Lm1lbnUoe3JvbGU6Imxpc3Rib3giLHNlbGVjdDpmdW5jdGlvbihlLGkpe2UucHJldmVudERlZmF1bHQoKSx0Ll9zZXRTZWxlY3Rpb24oKSx0Ll9zZWxlY3QoaS5pdGVtLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIpLGUpfSxmb2N1czpmdW5jdGlvbihlLGkpe3ZhciBzPWkuaXRlbS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKTtudWxsIT10LmZvY3VzSW5kZXgmJnMuaW5kZXghPT10LmZvY3VzSW5kZXgmJih0Ll90cmlnZ2VyKCJmb2N1cyIsZSx7aXRlbTpzfSksdC5pc09wZW58fHQuX3NlbGVjdChzLGUpKSx0LmZvY3VzSW5kZXg9cy5pbmRleCx0LmJ1dHRvbi5hdHRyKCJhcmlhLWFjdGl2ZWRlc2NlbmRhbnQiLHQubWVudUl0ZW1zLmVxKHMuaW5kZXgpLmF0dHIoImlkIikpfX0pLm1lbnUoImluc3RhbmNlIiksdGhpcy5tZW51LmFkZENsYXNzKCJ1aS1jb3JuZXItYm90dG9tIikucmVtb3ZlQ2xhc3MoInVpLWNvcm5lci1hbGwiKSx0aGlzLm1lbnVJbnN0YW5jZS5fb2ZmKHRoaXMubWVudSwibW91c2VsZWF2ZSIpLHRoaXMubWVudUluc3RhbmNlLl9jbG9zZU9uRG9jdW1lbnRDbGljaz1mdW5jdGlvbigpe3JldHVybiExfSx0aGlzLm1lbnVJbnN0YW5jZS5faXNEaXZpZGVyPWZ1bmN0aW9uKCl7cmV0dXJuITF9fSxyZWZyZXNoOmZ1bmN0aW9uKCl7dGhpcy5fcmVmcmVzaE1lbnUoKSx0aGlzLl9zZXRUZXh0KHRoaXMuYnV0dG9uVGV4dCx0aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKS50ZXh0KCkpLHRoaXMub3B0aW9ucy53aWR0aHx8dGhpcy5fcmVzaXplQnV0dG9uKCl9LF9yZWZyZXNoTWVudTpmdW5jdGlvbigpe3RoaXMubWVudS5lbXB0eSgpO3ZhciBlLHQ9dGhpcy5lbGVtZW50LmZpbmQoIm9wdGlvbiIpO3QubGVuZ3RoJiYodGhpcy5fcGFyc2VPcHRpb25zKHQpLHRoaXMuX3JlbmRlck1lbnUodGhpcy5tZW51LHRoaXMuaXRlbXMpLHRoaXMubWVudUluc3RhbmNlLnJlZnJlc2goKSx0aGlzLm1lbnVJdGVtcz10aGlzLm1lbnUuZmluZCgibGkiKS5ub3QoIi51aS1zZWxlY3RtZW51LW9wdGdyb3VwIiksZT10aGlzLl9nZXRTZWxlY3RlZEl0ZW0oKSx0aGlzLm1lbnVJbnN0YW5jZS5mb2N1cyhudWxsLGUpLHRoaXMuX3NldEFyaWEoZS5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIikpKX0sb3BlbjpmdW5jdGlvbihlKXt0aGlzLm9wdGlvbnMuZGlzYWJsZWR8fCh0aGlzLm1lbnVJdGVtcz8odGhpcy5tZW51LmZpbmQoIi51aS1zdGF0ZS1mb2N1cyIpLnJlbW92ZUNsYXNzKCJ1aS1zdGF0ZS1mb2N1cyIpLHRoaXMubWVudUluc3RhbmNlLmZvY3VzKG51bGwsdGhpcy5fZ2V0U2VsZWN0ZWRJdGVtKCkpKTp0aGlzLl9yZWZyZXNoTWVudSgpLHRoaXMuaXNPcGVuPSEwLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLl9yZXNpemVNZW51KCksdGhpcy5fcG9zaXRpb24oKSx0aGlzLl9vbih0aGlzLmRvY3VtZW50LHRoaXMuX2RvY3VtZW50Q2xpY2spLHRoaXMuX3RyaWdnZXIoIm9wZW4iLGUpKX0sX3Bvc2l0aW9uOmZ1bmN0aW9uKCl7dGhpcy5tZW51V3JhcC5wb3NpdGlvbihlLmV4dGVuZCh7b2Y6dGhpcy5idXR0b259LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpfSxjbG9zZTpmdW5jdGlvbihlKXt0aGlzLmlzT3BlbiYmKHRoaXMuaXNPcGVuPSExLHRoaXMuX3RvZ2dsZUF0dHIoKSx0aGlzLnJhbmdlPW51bGwsdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQpLHRoaXMuX3RyaWdnZXIoImNsb3NlIixlKSl9LHdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1dHRvbn0sbWVudVdpZGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1lbnV9LF9yZW5kZXJNZW51OmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcyxuPSIiO2UuZWFjaChpLGZ1bmN0aW9uKGksYSl7YS5vcHRncm91cCE9PW4mJihlKCI8bGk+Iix7ImNsYXNzIjoidWktc2VsZWN0bWVudS1vcHRncm91cCB1aS1tZW51LWRpdmlkZXIiKyhhLmVsZW1lbnQucGFyZW50KCJvcHRncm91cCIpLnByb3AoImRpc2FibGVkIik/IiB1aS1zdGF0ZS1kaXNhYmxlZCI6IiIpLHRleHQ6YS5vcHRncm91cH0pLmFwcGVuZFRvKHQpLG49YS5vcHRncm91cCkscy5fcmVuZGVySXRlbURhdGEodCxhKX0pfSxfcmVuZGVySXRlbURhdGE6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fcmVuZGVySXRlbShlLHQpLmRhdGEoInVpLXNlbGVjdG1lbnUtaXRlbSIsdCl9LF9yZW5kZXJJdGVtOmZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSgiPGxpPiIpO3JldHVybiBpLmRpc2FibGVkJiZzLmFkZENsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpLHRoaXMuX3NldFRleHQocyxpLmxhYmVsKSxzLmFwcGVuZFRvKHQpfSxfc2V0VGV4dDpmdW5jdGlvbihlLHQpe3Q/ZS50ZXh0KHQpOmUuaHRtbCgiJiMxNjA7Iil9LF9tb3ZlOmZ1bmN0aW9uKGUsdCl7dmFyIGkscyxuPSIudWktbWVudS1pdGVtIjt0aGlzLmlzT3Blbj9pPXRoaXMubWVudUl0ZW1zLmVxKHRoaXMuZm9jdXNJbmRleCk6KGk9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpLG4rPSI6bm90KC51aS1zdGF0ZS1kaXNhYmxlZCkiKSxzPSJmaXJzdCI9PT1lfHwibGFzdCI9PT1lP2lbImZpcnN0Ij09PWU/InByZXZBbGwiOiJuZXh0QWxsIl0obikuZXEoLTEpOmlbZSsiQWxsIl0obikuZXEoMCkscy5sZW5ndGgmJnRoaXMubWVudUluc3RhbmNlLmZvY3VzKHQscyl9LF9nZXRTZWxlY3RlZEl0ZW06ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZW51SXRlbXMuZXEodGhpcy5lbGVtZW50WzBdLnNlbGVjdGVkSW5kZXgpfSxfdG9nZ2xlOmZ1bmN0aW9uKGUpe3RoaXNbdGhpcy5pc09wZW4/ImNsb3NlIjoib3BlbiJdKGUpfSxfc2V0U2VsZWN0aW9uOmZ1bmN0aW9uKCl7dmFyIGU7dGhpcy5yYW5nZSYmKHdpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmVtb3ZlQWxsUmFuZ2VzKCksZS5hZGRSYW5nZSh0aGlzLnJhbmdlKSk6dGhpcy5yYW5nZS5zZWxlY3QoKSx0aGlzLmJ1dHRvbi5mb2N1cygpKX0sX2RvY3VtZW50Q2xpY2s6e21vdXNlZG93bjpmdW5jdGlvbih0KXt0aGlzLmlzT3BlbiYmKGUodC50YXJnZXQpLmNsb3Nlc3QoIi51aS1zZWxlY3RtZW51LW1lbnUsICMiK3RoaXMuaWRzLmJ1dHRvbikubGVuZ3RofHx0aGlzLmNsb3NlKHQpKX19LF9idXR0b25FdmVudHM6e21vdXNlZG93bjpmdW5jdGlvbigpe3ZhciBlO3dpbmRvdy5nZXRTZWxlY3Rpb24/KGU9d2luZG93LmdldFNlbGVjdGlvbigpLGUucmFuZ2VDb3VudCYmKHRoaXMucmFuZ2U9ZS5nZXRSYW5nZUF0KDApKSk6dGhpcy5yYW5nZT1kb2N1bWVudC5zZWxlY3Rpb24uY3JlYXRlUmFuZ2UoKX0sY2xpY2s6ZnVuY3Rpb24oZSl7dGhpcy5fc2V0U2VsZWN0aW9uKCksdGhpcy5fdG9nZ2xlKGUpfSxrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPSEwO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlRBQjpjYXNlIGUudWkua2V5Q29kZS5FU0NBUEU6dGhpcy5jbG9zZSh0KSxpPSExO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnRoaXMuaXNPcGVuJiZ0aGlzLl9zZWxlY3RGb2N1c2VkSXRlbSh0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRE9XTjp0LmFsdEtleT90aGlzLl90b2dnbGUodCk6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuU1BBQ0U6dGhpcy5pc09wZW4/dGhpcy5fc2VsZWN0Rm9jdXNlZEl0ZW0odCk6dGhpcy5fdG9nZ2xlKHQpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkxFRlQ6dGhpcy5fbW92ZSgicHJldiIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUklHSFQ6dGhpcy5fbW92ZSgibmV4dCIsdCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuSE9NRTpjYXNlIGUudWkua2V5Q29kZS5QQUdFX1VQOnRoaXMuX21vdmUoImZpcnN0Iix0KTticmVhaztjYXNlIGUudWkua2V5Q29kZS5FTkQ6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOnRoaXMuX21vdmUoImxhc3QiLHQpO2JyZWFrO2RlZmF1bHQ6dGhpcy5tZW51LnRyaWdnZXIodCksaT0hMX1pJiZ0LnByZXZlbnREZWZhdWx0KCl9fSxfc2VsZWN0Rm9jdXNlZEl0ZW06ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcy5tZW51SXRlbXMuZXEodGhpcy5mb2N1c0luZGV4KTt0Lmhhc0NsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIpfHx0aGlzLl9zZWxlY3QodC5kYXRhKCJ1aS1zZWxlY3RtZW51LWl0ZW0iKSxlKX0sX3NlbGVjdDpmdW5jdGlvbihlLHQpe3ZhciBpPXRoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4O3RoaXMuZWxlbWVudFswXS5zZWxlY3RlZEluZGV4PWUuaW5kZXgsdGhpcy5fc2V0VGV4dCh0aGlzLmJ1dHRvblRleHQsZS5sYWJlbCksdGhpcy5fc2V0QXJpYShlKSx0aGlzLl90cmlnZ2VyKCJzZWxlY3QiLHQse2l0ZW06ZX0pLGUuaW5kZXghPT1pJiZ0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLHQse2l0ZW06ZX0pLHRoaXMuY2xvc2UodCl9LF9zZXRBcmlhOmZ1bmN0aW9uKGUpe3ZhciB0PXRoaXMubWVudUl0ZW1zLmVxKGUuaW5kZXgpLmF0dHIoImlkIik7dGhpcy5idXR0b24uYXR0cih7ImFyaWEtbGFiZWxsZWRieSI6dCwiYXJpYS1hY3RpdmVkZXNjZW5kYW50Ijp0fSksdGhpcy5tZW51LmF0dHIoImFyaWEtYWN0aXZlZGVzY2VuZGFudCIsdCl9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXsiaWNvbnMiPT09ZSYmdGhpcy5idXR0b24uZmluZCgic3Bhbi51aS1pY29uIikucmVtb3ZlQ2xhc3ModGhpcy5vcHRpb25zLmljb25zLmJ1dHRvbikuYWRkQ2xhc3ModC5idXR0b24pLHRoaXMuX3N1cGVyKGUsdCksImFwcGVuZFRvIj09PWUmJnRoaXMubWVudVdyYXAuYXBwZW5kVG8odGhpcy5fYXBwZW5kVG8oKSksImRpc2FibGVkIj09PWUmJih0aGlzLm1lbnVJbnN0YW5jZS5vcHRpb24oImRpc2FibGVkIix0KSx0aGlzLmJ1dHRvbi50b2dnbGVDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiLHQpLmF0dHIoImFyaWEtZGlzYWJsZWQiLHQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsdCksdD8odGhpcy5idXR0b24uYXR0cigidGFiaW5kZXgiLC0xKSx0aGlzLmNsb3NlKCkpOnRoaXMuYnV0dG9uLmF0dHIoInRhYmluZGV4IiwwKSksIndpZHRoIj09PWUmJnRoaXMuX3Jlc2l6ZUJ1dHRvbigpfSxfYXBwZW5kVG86ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYXBwZW5kVG87cmV0dXJuIHQmJih0PXQuanF1ZXJ5fHx0Lm5vZGVUeXBlP2UodCk6dGhpcy5kb2N1bWVudC5maW5kKHQpLmVxKDApKSx0JiZ0WzBdfHwodD10aGlzLmVsZW1lbnQuY2xvc2VzdCgiLnVpLWZyb250IikpLHQubGVuZ3RofHwodD10aGlzLmRvY3VtZW50WzBdLmJvZHkpLHR9LF90b2dnbGVBdHRyOmZ1bmN0aW9uKCl7dGhpcy5idXR0b24udG9nZ2xlQ2xhc3MoInVpLWNvcm5lci10b3AiLHRoaXMuaXNPcGVuKS50b2dnbGVDbGFzcygidWktY29ybmVyLWFsbCIsIXRoaXMuaXNPcGVuKS5hdHRyKCJhcmlhLWV4cGFuZGVkIix0aGlzLmlzT3BlbiksdGhpcy5tZW51V3JhcC50b2dnbGVDbGFzcygidWktc2VsZWN0bWVudS1vcGVuIix0aGlzLmlzT3BlbiksdGhpcy5tZW51LmF0dHIoImFyaWEtaGlkZGVuIiwhdGhpcy5pc09wZW4pfSxfcmVzaXplQnV0dG9uOmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLndpZHRoO2V8fChlPXRoaXMuZWxlbWVudC5zaG93KCkub3V0ZXJXaWR0aCgpLHRoaXMuZWxlbWVudC5oaWRlKCkpLHRoaXMuYnV0dG9uLm91dGVyV2lkdGgoZSl9LF9yZXNpemVNZW51OmZ1bmN0aW9uKCl7dGhpcy5tZW51Lm91dGVyV2lkdGgoTWF0aC5tYXgodGhpcy5idXR0b24ub3V0ZXJXaWR0aCgpLHRoaXMubWVudS53aWR0aCgiIikub3V0ZXJXaWR0aCgpKzEpKX0sX2dldENyZWF0ZU9wdGlvbnM6ZnVuY3Rpb24oKXtyZXR1cm57ZGlzYWJsZWQ6dGhpcy5lbGVtZW50LnByb3AoImRpc2FibGVkIil9fSxfcGFyc2VPcHRpb25zOmZ1bmN0aW9uKHQpe3ZhciBpPVtdO3QuZWFjaChmdW5jdGlvbih0LHMpe3ZhciBuPWUocyksYT1uLnBhcmVudCgib3B0Z3JvdXAiKTtpLnB1c2goe2VsZW1lbnQ6bixpbmRleDp0LHZhbHVlOm4udmFsKCksbGFiZWw6bi50ZXh0KCksb3B0Z3JvdXA6YS5hdHRyKCJsYWJlbCIpfHwiIixkaXNhYmxlZDphLnByb3AoImRpc2FibGVkIil8fG4ucHJvcCgiZGlzYWJsZWQiKX0pfSksdGhpcy5pdGVtcz1pfSxfZGVzdHJveTpmdW5jdGlvbigpe3RoaXMubWVudVdyYXAucmVtb3ZlKCksdGhpcy5idXR0b24ucmVtb3ZlKCksdGhpcy5lbGVtZW50LnNob3coKSx0aGlzLmVsZW1lbnQucmVtb3ZlVW5pcXVlSWQoKSx0aGlzLmxhYmVsLmF0dHIoImZvciIsdGhpcy5pZHMuZWxlbWVudCl9fSksZS53aWRnZXQoInVpLnNsaWRlciIsZS51aS5tb3VzZSx7dmVyc2lvbjoiMS4xMS40Iix3aWRnZXRFdmVudFByZWZpeDoic2xpZGUiLG9wdGlvbnM6e2FuaW1hdGU6ITEsZGlzdGFuY2U6MCxtYXg6MTAwLG1pbjowLG9yaWVudGF0aW9uOiJob3Jpem9udGFsIixyYW5nZTohMSxzdGVwOjEsdmFsdWU6MCx2YWx1ZXM6bnVsbCxjaGFuZ2U6bnVsbCxzbGlkZTpudWxsLHN0YXJ0Om51bGwsc3RvcDpudWxsfSxudW1QYWdlczo1LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX21vdXNlU2xpZGluZz0hMSx0aGlzLl9hbmltYXRlT2ZmPSEwLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fZGV0ZWN0T3JpZW50YXRpb24oKSx0aGlzLl9tb3VzZUluaXQoKSx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNsaWRlciB1aS1zbGlkZXItIit0aGlzLm9yaWVudGF0aW9uKyIgdWktd2lkZ2V0IisiIHVpLXdpZGdldC1jb250ZW50IisiIHVpLWNvcm5lci1hbGwiKSx0aGlzLl9yZWZyZXNoKCksdGhpcy5fc2V0T3B0aW9uKCJkaXNhYmxlZCIsdGhpcy5vcHRpb25zLmRpc2FibGVkKSx0aGlzLl9hbmltYXRlT2ZmPSExfSxfcmVmcmVzaDpmdW5jdGlvbigpe3RoaXMuX2NyZWF0ZVJhbmdlKCksdGhpcy5fY3JlYXRlSGFuZGxlcygpLHRoaXMuX3NldHVwRXZlbnRzKCksdGhpcy5fcmVmcmVzaFZhbHVlKCl9LF9jcmVhdGVIYW5kbGVzOmZ1bmN0aW9uKCl7dmFyIHQsaSxzPXRoaXMub3B0aW9ucyxuPXRoaXMuZWxlbWVudC5maW5kKCIudWktc2xpZGVyLWhhbmRsZSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwiKSxhPSI8c3BhbiBjbGFzcz0ndWktc2xpZGVyLWhhbmRsZSB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwnIHRhYmluZGV4PScwJz48L3NwYW4+IixvPVtdO2ZvcihpPXMudmFsdWVzJiZzLnZhbHVlcy5sZW5ndGh8fDEsbi5sZW5ndGg+aSYmKG4uc2xpY2UoaSkucmVtb3ZlKCksbj1uLnNsaWNlKDAsaSkpLHQ9bi5sZW5ndGg7aT50O3QrKylvLnB1c2goYSk7dGhpcy5oYW5kbGVzPW4uYWRkKGUoby5qb2luKCIiKSkuYXBwZW5kVG8odGhpcy5lbGVtZW50KSksdGhpcy5oYW5kbGU9dGhpcy5oYW5kbGVzLmVxKDApLHRoaXMuaGFuZGxlcy5lYWNoKGZ1bmN0aW9uKHQpe2UodGhpcykuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIsdCl9KX0sX2NyZWF0ZVJhbmdlOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vcHRpb25zLGk9IiI7dC5yYW5nZT8odC5yYW5nZT09PSEwJiYodC52YWx1ZXM/dC52YWx1ZXMubGVuZ3RoJiYyIT09dC52YWx1ZXMubGVuZ3RoP3QudmFsdWVzPVt0LnZhbHVlc1swXSx0LnZhbHVlc1swXV06ZS5pc0FycmF5KHQudmFsdWVzKSYmKHQudmFsdWVzPXQudmFsdWVzLnNsaWNlKDApKTp0LnZhbHVlcz1bdGhpcy5fdmFsdWVNaW4oKSx0aGlzLl92YWx1ZU1pbigpXSksdGhpcy5yYW5nZSYmdGhpcy5yYW5nZS5sZW5ndGg/dGhpcy5yYW5nZS5yZW1vdmVDbGFzcygidWktc2xpZGVyLXJhbmdlLW1pbiB1aS1zbGlkZXItcmFuZ2UtbWF4IikuY3NzKHtsZWZ0OiIiLGJvdHRvbToiIn0pOih0aGlzLnJhbmdlPWUoIjxkaXY+PC9kaXY+IikuYXBwZW5kVG8odGhpcy5lbGVtZW50KSxpPSJ1aS1zbGlkZXItcmFuZ2UgdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIiksdGhpcy5yYW5nZS5hZGRDbGFzcyhpKygibWluIj09PXQucmFuZ2V8fCJtYXgiPT09dC5yYW5nZT8iIHVpLXNsaWRlci1yYW5nZS0iK3QucmFuZ2U6IiIpKSk6KHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5yYW5nZT1udWxsKX0sX3NldHVwRXZlbnRzOmZ1bmN0aW9uKCl7dGhpcy5fb2ZmKHRoaXMuaGFuZGxlcyksdGhpcy5fb24odGhpcy5oYW5kbGVzLHRoaXMuX2hhbmRsZUV2ZW50cyksdGhpcy5faG92ZXJhYmxlKHRoaXMuaGFuZGxlcyksdGhpcy5fZm9jdXNhYmxlKHRoaXMuaGFuZGxlcyl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5oYW5kbGVzLnJlbW92ZSgpLHRoaXMucmFuZ2UmJnRoaXMucmFuZ2UucmVtb3ZlKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXIgdWktc2xpZGVyLWhvcml6b250YWwgdWktc2xpZGVyLXZlcnRpY2FsIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIiksdGhpcy5fbW91c2VEZXN0cm95KCl9LF9tb3VzZUNhcHR1cmU6ZnVuY3Rpb24odCl7dmFyIGkscyxuLGEsbyxyLGgsbCx1PXRoaXMsZD10aGlzLm9wdGlvbnM7cmV0dXJuIGQuZGlzYWJsZWQ/ITE6KHRoaXMuZWxlbWVudFNpemU9e3dpZHRoOnRoaXMuZWxlbWVudC5vdXRlcldpZHRoKCksaGVpZ2h0OnRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpfSx0aGlzLmVsZW1lbnRPZmZzZXQ9dGhpcy5lbGVtZW50Lm9mZnNldCgpLGk9e3g6dC5wYWdlWCx5OnQucGFnZVl9LHM9dGhpcy5fbm9ybVZhbHVlRnJvbU1vdXNlKGkpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKzEsdGhpcy5oYW5kbGVzLmVhY2goZnVuY3Rpb24odCl7dmFyIGk9TWF0aC5hYnMocy11LnZhbHVlcyh0KSk7KG4+aXx8bj09PWkmJih0PT09dS5fbGFzdENoYW5nZWRWYWx1ZXx8dS52YWx1ZXModCk9PT1kLm1pbikpJiYobj1pLGE9ZSh0aGlzKSxvPXQpfSkscj10aGlzLl9zdGFydCh0LG8pLHI9PT0hMT8hMToodGhpcy5fbW91c2VTbGlkaW5nPSEwLHRoaXMuX2hhbmRsZUluZGV4PW8sYS5hZGRDbGFzcygidWktc3RhdGUtYWN0aXZlIikuZm9jdXMoKSxoPWEub2Zmc2V0KCksbD0hZSh0LnRhcmdldCkucGFyZW50cygpLmFkZEJhY2soKS5pcygiLnVpLXNsaWRlci1oYW5kbGUiKSx0aGlzLl9jbGlja09mZnNldD1sP3tsZWZ0OjAsdG9wOjB9OntsZWZ0OnQucGFnZVgtaC5sZWZ0LWEud2lkdGgoKS8yLHRvcDp0LnBhZ2VZLWgudG9wLWEuaGVpZ2h0KCkvMi0ocGFyc2VJbnQoYS5jc3MoImJvcmRlclRvcFdpZHRoIiksMTApfHwwKS0ocGFyc2VJbnQoYS5jc3MoImJvcmRlckJvdHRvbVdpZHRoIiksMTApfHwwKSsocGFyc2VJbnQoYS5jc3MoIm1hcmdpblRvcCIpLDEwKXx8MCl9LHRoaXMuaGFuZGxlcy5oYXNDbGFzcygidWktc3RhdGUtaG92ZXIiKXx8dGhpcy5fc2xpZGUodCxvLHMpLHRoaXMuX2FuaW1hdGVPZmY9ITAsITApKX0sX21vdXNlU3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sX21vdXNlRHJhZzpmdW5jdGlvbihlKXt2YXIgdD17eDplLnBhZ2VYLHk6ZS5wYWdlWX0saT10aGlzLl9ub3JtVmFsdWVGcm9tTW91c2UodCk7cmV0dXJuIHRoaXMuX3NsaWRlKGUsdGhpcy5faGFuZGxlSW5kZXgsaSksITF9LF9tb3VzZVN0b3A6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuaGFuZGxlcy5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIiksdGhpcy5fbW91c2VTbGlkaW5nPSExLHRoaXMuX3N0b3AoZSx0aGlzLl9oYW5kbGVJbmRleCksdGhpcy5fY2hhbmdlKGUsdGhpcy5faGFuZGxlSW5kZXgpLHRoaXMuX2hhbmRsZUluZGV4PW51bGwsdGhpcy5fY2xpY2tPZmZzZXQ9bnVsbCx0aGlzLl9hbmltYXRlT2ZmPSExLCExfSxfZGV0ZWN0T3JpZW50YXRpb246ZnVuY3Rpb24oKXt0aGlzLm9yaWVudGF0aW9uPSJ2ZXJ0aWNhbCI9PT10aGlzLm9wdGlvbnMub3JpZW50YXRpb24/InZlcnRpY2FsIjoiaG9yaXpvbnRhbCJ9LF9ub3JtVmFsdWVGcm9tTW91c2U6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzLG4sYTtyZXR1cm4iaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyh0PXRoaXMuZWxlbWVudFNpemUud2lkdGgsaT1lLngtdGhpcy5lbGVtZW50T2Zmc2V0LmxlZnQtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LmxlZnQ6MCkpOih0PXRoaXMuZWxlbWVudFNpemUuaGVpZ2h0LGk9ZS55LXRoaXMuZWxlbWVudE9mZnNldC50b3AtKHRoaXMuX2NsaWNrT2Zmc2V0P3RoaXMuX2NsaWNrT2Zmc2V0LnRvcDowKSkscz1pL3Qscz4xJiYocz0xKSwwPnMmJihzPTApLCJ2ZXJ0aWNhbCI9PT10aGlzLm9yaWVudGF0aW9uJiYocz0xLXMpLG49dGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNaW4oKStzKm4sdGhpcy5fdHJpbUFsaWduVmFsdWUoYSl9LF9zdGFydDpmdW5jdGlvbihlLHQpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07cmV0dXJuIHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSxpKX0sX3NsaWRlOmZ1bmN0aW9uKGUsdCxpKXt2YXIgcyxuLGE7dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/KHM9dGhpcy52YWx1ZXModD8wOjEpLDI9PT10aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aCYmdGhpcy5vcHRpb25zLnJhbmdlPT09ITAmJigwPT09dCYmaT5zfHwxPT09dCYmcz5pKSYmKGk9cyksaSE9PXRoaXMudmFsdWVzKHQpJiYobj10aGlzLnZhbHVlcygpLG5bdF09aSxhPXRoaXMuX3RyaWdnZXIoInNsaWRlIixlLHtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOmksdmFsdWVzOm59KSxzPXRoaXMudmFsdWVzKHQ/MDoxKSxhIT09ITEmJnRoaXMudmFsdWVzKHQsaSkpKTppIT09dGhpcy52YWx1ZSgpJiYoYT10aGlzLl90cmlnZ2VyKCJzbGlkZSIsZSx7aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTppfSksYSE9PSExJiZ0aGlzLnZhbHVlKGkpKX0sX3N0b3A6ZnVuY3Rpb24oZSx0KXt2YXIgaT17aGFuZGxlOnRoaXMuaGFuZGxlc1t0XSx2YWx1ZTp0aGlzLnZhbHVlKCl9O3RoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoJiYoaS52YWx1ZT10aGlzLnZhbHVlcyh0KSxpLnZhbHVlcz10aGlzLnZhbHVlcygpKSx0aGlzLl90cmlnZ2VyKCJzdG9wIixlLGkpfSxfY2hhbmdlOmZ1bmN0aW9uKGUsdCl7aWYoIXRoaXMuX2tleVNsaWRpbmcmJiF0aGlzLl9tb3VzZVNsaWRpbmcpe3ZhciBpPXtoYW5kbGU6dGhpcy5oYW5kbGVzW3RdLHZhbHVlOnRoaXMudmFsdWUoKX07dGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGgmJihpLnZhbHVlPXRoaXMudmFsdWVzKHQpLGkudmFsdWVzPXRoaXMudmFsdWVzKCkpLHRoaXMuX2xhc3RDaGFuZ2VkVmFsdWU9dCx0aGlzLl90cmlnZ2VyKCJjaGFuZ2UiLGUsaSl9fSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3RyaW1BbGlnblZhbHVlKGUpLHRoaXMuX3JlZnJlc2hWYWx1ZSgpLHRoaXMuX2NoYW5nZShudWxsLDApLHZvaWQgMCk6dGhpcy5fdmFsdWUoKX0sdmFsdWVzOmZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhO2lmKGFyZ3VtZW50cy5sZW5ndGg+MSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlc1t0XT10aGlzLl90cmltQWxpZ25WYWx1ZShpKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCx0KSx2b2lkIDA7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHRoaXMuX3ZhbHVlcygpO2lmKCFlLmlzQXJyYXkoYXJndW1lbnRzWzBdKSlyZXR1cm4gdGhpcy5vcHRpb25zLnZhbHVlcyYmdGhpcy5vcHRpb25zLnZhbHVlcy5sZW5ndGg/dGhpcy5fdmFsdWVzKHQpOnRoaXMudmFsdWUoKTtmb3Iocz10aGlzLm9wdGlvbnMudmFsdWVzLG49YXJndW1lbnRzWzBdLGE9MDtzLmxlbmd0aD5hO2ErPTEpc1thXT10aGlzLl90cmltQWxpZ25WYWx1ZShuW2FdKSx0aGlzLl9jaGFuZ2UobnVsbCxhKTt0aGlzLl9yZWZyZXNoVmFsdWUoKX0sX3NldE9wdGlvbjpmdW5jdGlvbih0LGkpe3ZhciBzLG49MDtzd2l0Y2goInJhbmdlIj09PXQmJnRoaXMub3B0aW9ucy5yYW5nZT09PSEwJiYoIm1pbiI9PT1pPyh0aGlzLm9wdGlvbnMudmFsdWU9dGhpcy5fdmFsdWVzKDApLHRoaXMub3B0aW9ucy52YWx1ZXM9bnVsbCk6Im1heCI9PT1pJiYodGhpcy5vcHRpb25zLnZhbHVlPXRoaXMuX3ZhbHVlcyh0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aC0xKSx0aGlzLm9wdGlvbnMudmFsdWVzPW51bGwpKSxlLmlzQXJyYXkodGhpcy5vcHRpb25zLnZhbHVlcykmJihuPXRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKSwiZGlzYWJsZWQiPT09dCYmdGhpcy5lbGVtZW50LnRvZ2dsZUNsYXNzKCJ1aS1zdGF0ZS1kaXNhYmxlZCIsISFpKSx0aGlzLl9zdXBlcih0LGkpLHQpe2Nhc2Uib3JpZW50YXRpb24iOnRoaXMuX2RldGVjdE9yaWVudGF0aW9uKCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zbGlkZXItaG9yaXpvbnRhbCB1aS1zbGlkZXItdmVydGljYWwiKS5hZGRDbGFzcygidWktc2xpZGVyLSIrdGhpcy5vcmllbnRhdGlvbiksdGhpcy5fcmVmcmVzaFZhbHVlKCksdGhpcy5oYW5kbGVzLmNzcygiaG9yaXpvbnRhbCI9PT1pPyJib3R0b20iOiJsZWZ0IiwiIik7YnJlYWs7Y2FzZSJ2YWx1ZSI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9jaGFuZ2UobnVsbCwwKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UidmFsdWVzIjpmb3IodGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9yZWZyZXNoVmFsdWUoKSxzPTA7bj5zO3MrPTEpdGhpcy5fY2hhbmdlKG51bGwscyk7dGhpcy5fYW5pbWF0ZU9mZj0hMTticmVhaztjYXNlInN0ZXAiOmNhc2UibWluIjpjYXNlIm1heCI6dGhpcy5fYW5pbWF0ZU9mZj0hMCx0aGlzLl9jYWxjdWxhdGVOZXdNYXgoKSx0aGlzLl9yZWZyZXNoVmFsdWUoKSx0aGlzLl9hbmltYXRlT2ZmPSExO2JyZWFrO2Nhc2UicmFuZ2UiOnRoaXMuX2FuaW1hdGVPZmY9ITAsdGhpcy5fcmVmcmVzaCgpLHRoaXMuX2FuaW1hdGVPZmY9ITF9fSxfdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLm9wdGlvbnMudmFsdWU7cmV0dXJuIGU9dGhpcy5fdHJpbUFsaWduVmFsdWUoZSl9LF92YWx1ZXM6ZnVuY3Rpb24oZSl7dmFyIHQsaSxzO2lmKGFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQ9dGhpcy5vcHRpb25zLnZhbHVlc1tlXSx0PXRoaXMuX3RyaW1BbGlnblZhbHVlKHQpO2lmKHRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoKXtmb3IoaT10aGlzLm9wdGlvbnMudmFsdWVzLnNsaWNlKCkscz0wO2kubGVuZ3RoPnM7cys9MSlpW3NdPXRoaXMuX3RyaW1BbGlnblZhbHVlKGlbc10pO3JldHVybiBpfXJldHVybltdfSxfdHJpbUFsaWduVmFsdWU6ZnVuY3Rpb24oZSl7aWYodGhpcy5fdmFsdWVNaW4oKT49ZSlyZXR1cm4gdGhpcy5fdmFsdWVNaW4oKTtpZihlPj10aGlzLl92YWx1ZU1heCgpKXJldHVybiB0aGlzLl92YWx1ZU1heCgpO3ZhciB0PXRoaXMub3B0aW9ucy5zdGVwPjA/dGhpcy5vcHRpb25zLnN0ZXA6MSxpPShlLXRoaXMuX3ZhbHVlTWluKCkpJXQscz1lLWk7cmV0dXJuIDIqTWF0aC5hYnMoaSk+PXQmJihzKz1pPjA/dDotdCkscGFyc2VGbG9hdChzLnRvRml4ZWQoNSkpfSxfY2FsY3VsYXRlTmV3TWF4OmZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5vcHRpb25zLm1heCx0PXRoaXMuX3ZhbHVlTWluKCksaT10aGlzLm9wdGlvbnMuc3RlcCxzPU1hdGguZmxvb3IoKyhlLXQpLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpL2kpKmk7ZT1zK3QsdGhpcy5tYXg9cGFyc2VGbG9hdChlLnRvRml4ZWQodGhpcy5fcHJlY2lzaW9uKCkpKX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX3ZhbHVlTWluOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3B0aW9ucy5taW59LF92YWx1ZU1heDpmdW5jdGlvbigpe3JldHVybiB0aGlzLm1heH0sX3JlZnJlc2hWYWx1ZTpmdW5jdGlvbigpe3ZhciB0LGkscyxuLGEsbz10aGlzLm9wdGlvbnMucmFuZ2Uscj10aGlzLm9wdGlvbnMsaD10aGlzLGw9dGhpcy5fYW5pbWF0ZU9mZj8hMTpyLmFuaW1hdGUsdT17fTt0aGlzLm9wdGlvbnMudmFsdWVzJiZ0aGlzLm9wdGlvbnMudmFsdWVzLmxlbmd0aD90aGlzLmhhbmRsZXMuZWFjaChmdW5jdGlvbihzKXtpPTEwMCooKGgudmFsdWVzKHMpLWguX3ZhbHVlTWluKCkpLyhoLl92YWx1ZU1heCgpLWguX3ZhbHVlTWluKCkpKSx1WyJob3Jpem9udGFsIj09PWgub3JpZW50YXRpb24/ImxlZnQiOiJib3R0b20iXT1pKyIlIixlKHRoaXMpLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0odSxyLmFuaW1hdGUpLGgub3B0aW9ucy5yYW5nZT09PSEwJiYoImhvcml6b250YWwiPT09aC5vcmllbnRhdGlvbj8oMD09PXMmJmgucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7bGVmdDppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmktdCsiJSJ9LHtxdWV1ZTohMSxkdXJhdGlvbjpyLmFuaW1hdGV9KSk6KDA9PT1zJiZoLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe2JvdHRvbTppKyIlIn0sci5hbmltYXRlKSwxPT09cyYmaC5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe2hlaWdodDppLXQrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpKSx0PWl9KToocz10aGlzLnZhbHVlKCksbj10aGlzLl92YWx1ZU1pbigpLGE9dGhpcy5fdmFsdWVNYXgoKSxpPWEhPT1uPzEwMCooKHMtbikvKGEtbikpOjAsdVsiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uPyJsZWZ0IjoiYm90dG9tIl09aSsiJSIsdGhpcy5oYW5kbGUuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh1LHIuYW5pbWF0ZSksIm1pbiI9PT1vJiYiaG9yaXpvbnRhbCI9PT10aGlzLm9yaWVudGF0aW9uJiZ0aGlzLnJhbmdlLnN0b3AoMSwxKVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmImhvcml6b250YWwiPT09dGhpcy5vcmllbnRhdGlvbiYmdGhpcy5yYW5nZVtsPyJhbmltYXRlIjoiY3NzIl0oe3dpZHRoOjEwMC1pKyIlIn0se3F1ZXVlOiExLGR1cmF0aW9uOnIuYW5pbWF0ZX0pLCJtaW4iPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2Uuc3RvcCgxLDEpW2w/ImFuaW1hdGUiOiJjc3MiXSh7aGVpZ2h0OmkrIiUifSxyLmFuaW1hdGUpLCJtYXgiPT09byYmInZlcnRpY2FsIj09PXRoaXMub3JpZW50YXRpb24mJnRoaXMucmFuZ2VbbD8iYW5pbWF0ZSI6ImNzcyJdKHtoZWlnaHQ6MTAwLWkrIiUifSx7cXVldWU6ITEsZHVyYXRpb246ci5hbmltYXRlfSkpfSxfaGFuZGxlRXZlbnRzOntrZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpLHMsbixhLG89ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6Y2FzZSBlLnVpLmtleUNvZGUuRU5EOmNhc2UgZS51aS5rZXlDb2RlLlBBR0VfVVA6Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOmNhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZih0LnByZXZlbnREZWZhdWx0KCksIXRoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSEwLGUodC50YXJnZXQpLmFkZENsYXNzKCJ1aS1zdGF0ZS1hY3RpdmUiKSxpPXRoaXMuX3N0YXJ0KHQsbyksaT09PSExKSlyZXR1cm59c3dpdGNoKGE9dGhpcy5vcHRpb25zLnN0ZXAscz1uPXRoaXMub3B0aW9ucy52YWx1ZXMmJnRoaXMub3B0aW9ucy52YWx1ZXMubGVuZ3RoP3RoaXMudmFsdWVzKG8pOnRoaXMudmFsdWUoKSx0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6bj10aGlzLl92YWx1ZU1pbigpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkVORDpuPXRoaXMuX3ZhbHVlTWF4KCk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9VUDpuPXRoaXMuX3RyaW1BbGlnblZhbHVlKHMrKHRoaXMuX3ZhbHVlTWF4KCktdGhpcy5fdmFsdWVNaW4oKSkvdGhpcy5udW1QYWdlcyk7YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuUEFHRV9ET1dOOm49dGhpcy5fdHJpbUFsaWduVmFsdWUocy0odGhpcy5fdmFsdWVNYXgoKS10aGlzLl92YWx1ZU1pbigpKS90aGlzLm51bVBhZ2VzKTticmVhaztjYXNlIGUudWkua2V5Q29kZS5VUDpjYXNlIGUudWkua2V5Q29kZS5SSUdIVDppZihzPT09dGhpcy5fdmFsdWVNYXgoKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzK2EpO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkRPV046Y2FzZSBlLnVpLmtleUNvZGUuTEVGVDppZihzPT09dGhpcy5fdmFsdWVNaW4oKSlyZXR1cm47bj10aGlzLl90cmltQWxpZ25WYWx1ZShzLWEpfXRoaXMuX3NsaWRlKHQsbyxuKX0sa2V5dXA6ZnVuY3Rpb24odCl7dmFyIGk9ZSh0LnRhcmdldCkuZGF0YSgidWktc2xpZGVyLWhhbmRsZS1pbmRleCIpO3RoaXMuX2tleVNsaWRpbmcmJih0aGlzLl9rZXlTbGlkaW5nPSExLHRoaXMuX3N0b3AodCxpKSx0aGlzLl9jaGFuZ2UodCxpKSxlKHQudGFyZ2V0KS5yZW1vdmVDbGFzcygidWktc3RhdGUtYWN0aXZlIikpfX19KSxlLndpZGdldCgidWkuc3Bpbm5lciIse3ZlcnNpb246IjEuMTEuNCIsZGVmYXVsdEVsZW1lbnQ6IjxpbnB1dD4iLHdpZGdldEV2ZW50UHJlZml4OiJzcGluIixvcHRpb25zOntjdWx0dXJlOm51bGwsaWNvbnM6e2Rvd246InVpLWljb24tdHJpYW5nbGUtMS1zIix1cDoidWktaWNvbi10cmlhbmdsZS0xLW4ifSxpbmNyZW1lbnRhbDohMCxtYXg6bnVsbCxtaW46bnVsbCxudW1iZXJGb3JtYXQ6bnVsbCxwYWdlOjEwLHN0ZXA6MSxjaGFuZ2U6bnVsbCxzcGluOm51bGwsc3RhcnQ6bnVsbCxzdG9wOm51bGx9LF9jcmVhdGU6ZnVuY3Rpb24oKXt0aGlzLl9zZXRPcHRpb24oIm1heCIsdGhpcy5vcHRpb25zLm1heCksdGhpcy5fc2V0T3B0aW9uKCJtaW4iLHRoaXMub3B0aW9ucy5taW4pLHRoaXMuX3NldE9wdGlvbigic3RlcCIsdGhpcy5vcHRpb25zLnN0ZXApLCIiIT09dGhpcy52YWx1ZSgpJiZ0aGlzLl92YWx1ZSh0aGlzLmVsZW1lbnQudmFsKCksITApLHRoaXMuX2RyYXcoKSx0aGlzLl9vbih0aGlzLl9ldmVudHMpLHRoaXMuX3JlZnJlc2goKSx0aGlzLl9vbih0aGlzLndpbmRvdyx7YmVmb3JldW5sb2FkOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUF0dHIoImF1dG9jb21wbGV0ZSIpfX0pfSxfZ2V0Q3JlYXRlT3B0aW9uczpmdW5jdGlvbigpe3ZhciB0PXt9LGk9dGhpcy5lbGVtZW50O3JldHVybiBlLmVhY2goWyJtaW4iLCJtYXgiLCJzdGVwIl0sZnVuY3Rpb24oZSxzKXt2YXIgbj1pLmF0dHIocyk7dm9pZCAwIT09biYmbi5sZW5ndGgmJih0W3NdPW4pfSksdH0sX2V2ZW50czp7a2V5ZG93bjpmdW5jdGlvbihlKXt0aGlzLl9zdGFydChlKSYmdGhpcy5fa2V5ZG93bihlKSYmZS5wcmV2ZW50RGVmYXVsdCgpfSxrZXl1cDoiX3N0b3AiLGZvY3VzOmZ1bmN0aW9uKCl7dGhpcy5wcmV2aW91cz10aGlzLmVsZW1lbnQudmFsKCl9LGJsdXI6ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuY2FuY2VsQmx1cj8oZGVsZXRlIHRoaXMuY2FuY2VsQmx1cix2b2lkIDApOih0aGlzLl9zdG9wKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMucHJldmlvdXMhPT10aGlzLmVsZW1lbnQudmFsKCkmJnRoaXMuX3RyaWdnZXIoImNoYW5nZSIsZSksdm9pZCAwKX0sbW91c2V3aGVlbDpmdW5jdGlvbihlLHQpe2lmKHQpe2lmKCF0aGlzLnNwaW5uaW5nJiYhdGhpcy5fc3RhcnQoZSkpcmV0dXJuITE7dGhpcy5fc3BpbigodD4wPzE6LTEpKnRoaXMub3B0aW9ucy5zdGVwLGUpLGNsZWFyVGltZW91dCh0aGlzLm1vdXNld2hlZWxUaW1lciksdGhpcy5tb3VzZXdoZWVsVGltZXI9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnNwaW5uaW5nJiZ0aGlzLl9zdG9wKGUpfSwxMDApLGUucHJldmVudERlZmF1bHQoKX19LCJtb3VzZWRvd24gLnVpLXNwaW5uZXItYnV0dG9uIjpmdW5jdGlvbih0KXtmdW5jdGlvbiBpKCl7dmFyIGU9dGhpcy5lbGVtZW50WzBdPT09dGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50O2V8fCh0aGlzLmVsZW1lbnQuZm9jdXMoKSx0aGlzLnByZXZpb3VzPXMsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLnByZXZpb3VzPXN9KSl9dmFyIHM7cz10aGlzLmVsZW1lbnRbMF09PT10aGlzLmRvY3VtZW50WzBdLmFjdGl2ZUVsZW1lbnQ/dGhpcy5wcmV2aW91czp0aGlzLmVsZW1lbnQudmFsKCksdC5wcmV2ZW50RGVmYXVsdCgpLGkuY2FsbCh0aGlzKSx0aGlzLmNhbmNlbEJsdXI9ITAsdGhpcy5fZGVsYXkoZnVuY3Rpb24oKXtkZWxldGUgdGhpcy5jYW5jZWxCbHVyLGkuY2FsbCh0aGlzKX0pLHRoaXMuX3N0YXJ0KHQpIT09ITEmJnRoaXMuX3JlcGVhdChudWxsLGUodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygidWktc3Bpbm5lci11cCIpPzE6LTEsdCl9LCJtb3VzZXVwIC51aS1zcGlubmVyLWJ1dHRvbiI6Il9zdG9wIiwibW91c2VlbnRlciAudWktc3Bpbm5lci1idXR0b24iOmZ1bmN0aW9uKHQpe3JldHVybiBlKHQuY3VycmVudFRhcmdldCkuaGFzQ2xhc3MoInVpLXN0YXRlLWFjdGl2ZSIpP3RoaXMuX3N0YXJ0KHQpPT09ITE/ITE6KHRoaXMuX3JlcGVhdChudWxsLGUodC5jdXJyZW50VGFyZ2V0KS5oYXNDbGFzcygidWktc3Bpbm5lci11cCIpPzE6LTEsdCksdm9pZCAwKTp2b2lkIDB9LCJtb3VzZWxlYXZlIC51aS1zcGlubmVyLWJ1dHRvbiI6Il9zdG9wIn0sX2RyYXc6ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnVpU3Bpbm5lcj10aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXNwaW5uZXItaW5wdXQiKS5hdHRyKCJhdXRvY29tcGxldGUiLCJvZmYiKS53cmFwKHRoaXMuX3VpU3Bpbm5lckh0bWwoKSkucGFyZW50KCkuYXBwZW5kKHRoaXMuX2J1dHRvbkh0bWwoKSk7dGhpcy5lbGVtZW50LmF0dHIoInJvbGUiLCJzcGluYnV0dG9uIiksdGhpcy5idXR0b25zPWUuZmluZCgiLnVpLXNwaW5uZXItYnV0dG9uIikuYXR0cigidGFiSW5kZXgiLC0xKS5idXR0b24oKS5yZW1vdmVDbGFzcygidWktY29ybmVyLWFsbCIpLHRoaXMuYnV0dG9ucy5oZWlnaHQoKT5NYXRoLmNlaWwoLjUqZS5oZWlnaHQoKSkmJmUuaGVpZ2h0KCk+MCYmZS5oZWlnaHQoZS5oZWlnaHQoKSksdGhpcy5vcHRpb25zLmRpc2FibGVkJiZ0aGlzLmRpc2FibGUoKX0sX2tleWRvd246ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLHM9ZS51aS5rZXlDb2RlO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2Ugcy5VUDpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsMSx0KSwhMDtjYXNlIHMuRE9XTjpyZXR1cm4gdGhpcy5fcmVwZWF0KG51bGwsLTEsdCksITA7Y2FzZSBzLlBBR0VfVVA6cmV0dXJuIHRoaXMuX3JlcGVhdChudWxsLGkucGFnZSx0KSwhMDtjYXNlIHMuUEFHRV9ET1dOOnJldHVybiB0aGlzLl9yZXBlYXQobnVsbCwtaS5wYWdlLHQpLCEwfXJldHVybiExfSxfdWlTcGlubmVySHRtbDpmdW5jdGlvbigpe3JldHVybiI8c3BhbiBjbGFzcz0ndWktc3Bpbm5lciB1aS13aWRnZXQgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWFsbCc+PC9zcGFuPiJ9LF9idXR0b25IdG1sOmZ1bmN0aW9uKCl7cmV0dXJuIjxhIGNsYXNzPSd1aS1zcGlubmVyLWJ1dHRvbiB1aS1zcGlubmVyLXVwIHVpLWNvcm5lci10cic+PHNwYW4gY2xhc3M9J3VpLWljb24gIit0aGlzLm9wdGlvbnMuaWNvbnMudXArIic+JiM5NjUwOzwvc3Bhbj4iKyI8L2E+IisiPGEgY2xhc3M9J3VpLXNwaW5uZXItYnV0dG9uIHVpLXNwaW5uZXItZG93biB1aS1jb3JuZXItYnInPiIrIjxzcGFuIGNsYXNzPSd1aS1pY29uICIrdGhpcy5vcHRpb25zLmljb25zLmRvd24rIic+JiM5NjYwOzwvc3Bhbj4iKyI8L2E+In0sX3N0YXJ0OmZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnNwaW5uaW5nfHx0aGlzLl90cmlnZ2VyKCJzdGFydCIsZSkhPT0hMT8odGhpcy5jb3VudGVyfHwodGhpcy5jb3VudGVyPTEpLHRoaXMuc3Bpbm5pbmc9ITAsITApOiExfSxfcmVwZWF0OmZ1bmN0aW9uKGUsdCxpKXtlPWV8fDUwMCxjbGVhclRpbWVvdXQodGhpcy50aW1lciksdGhpcy50aW1lcj10aGlzLl9kZWxheShmdW5jdGlvbigpe3RoaXMuX3JlcGVhdCg0MCx0LGkpfSxlKSx0aGlzLl9zcGluKHQqdGhpcy5vcHRpb25zLnN0ZXAsaSl9LF9zcGluOmZ1bmN0aW9uKGUsdCl7dmFyIGk9dGhpcy52YWx1ZSgpfHwwO3RoaXMuY291bnRlcnx8KHRoaXMuY291bnRlcj0xKSxpPXRoaXMuX2FkanVzdFZhbHVlKGkrZSp0aGlzLl9pbmNyZW1lbnQodGhpcy5jb3VudGVyKSksdGhpcy5zcGlubmluZyYmdGhpcy5fdHJpZ2dlcigic3BpbiIsdCx7dmFsdWU6aX0pPT09ITF8fCh0aGlzLl92YWx1ZShpKSx0aGlzLmNvdW50ZXIrKyl9LF9pbmNyZW1lbnQ6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLmluY3JlbWVudGFsO3JldHVybiBpP2UuaXNGdW5jdGlvbihpKT9pKHQpOk1hdGguZmxvb3IodCp0KnQvNWU0LXQqdC81MDArMTcqdC8yMDArMSk6MX0sX3ByZWNpc2lvbjpmdW5jdGlvbigpe3ZhciBlPXRoaXMuX3ByZWNpc2lvbk9mKHRoaXMub3B0aW9ucy5zdGVwKTtyZXR1cm4gbnVsbCE9PXRoaXMub3B0aW9ucy5taW4mJihlPU1hdGgubWF4KGUsdGhpcy5fcHJlY2lzaW9uT2YodGhpcy5vcHRpb25zLm1pbikpKSxlfSxfcHJlY2lzaW9uT2Y6ZnVuY3Rpb24oZSl7dmFyIHQ9IiIrZSxpPXQuaW5kZXhPZigiLiIpO3JldHVybi0xPT09aT8wOnQubGVuZ3RoLWktMX0sX2FkanVzdFZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LGkscz10aGlzLm9wdGlvbnM7cmV0dXJuIHQ9bnVsbCE9PXMubWluP3MubWluOjAsaT1lLXQsaT1NYXRoLnJvdW5kKGkvcy5zdGVwKSpzLnN0ZXAsZT10K2ksZT1wYXJzZUZsb2F0KGUudG9GaXhlZCh0aGlzLl9wcmVjaXNpb24oKSkpLG51bGwhPT1zLm1heCYmZT5zLm1heD9zLm1heDpudWxsIT09cy5taW4mJnMubWluPmU/cy5taW46ZX0sX3N0b3A6ZnVuY3Rpb24oZSl7dGhpcy5zcGlubmluZyYmKGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKSxjbGVhclRpbWVvdXQodGhpcy5tb3VzZXdoZWVsVGltZXIpLHRoaXMuY291bnRlcj0wLHRoaXMuc3Bpbm5pbmc9ITEsdGhpcy5fdHJpZ2dlcigic3RvcCIsZSkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKGUsdCl7aWYoImN1bHR1cmUiPT09ZXx8Im51bWJlckZvcm1hdCI9PT1lKXt2YXIgaT10aGlzLl9wYXJzZSh0aGlzLmVsZW1lbnQudmFsKCkpO3JldHVybiB0aGlzLm9wdGlvbnNbZV09dCx0aGlzLmVsZW1lbnQudmFsKHRoaXMuX2Zvcm1hdChpKSksdm9pZCAwfSgibWF4Ij09PWV8fCJtaW4iPT09ZXx8InN0ZXAiPT09ZSkmJiJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dGhpcy5fcGFyc2UodCkpLCJpY29ucyI9PT1lJiYodGhpcy5idXR0b25zLmZpcnN0KCkuZmluZCgiLnVpLWljb24iKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaWNvbnMudXApLmFkZENsYXNzKHQudXApLHRoaXMuYnV0dG9ucy5sYXN0KCkuZmluZCgiLnVpLWljb24iKS5yZW1vdmVDbGFzcyh0aGlzLm9wdGlvbnMuaWNvbnMuZG93bikuYWRkQ2xhc3ModC5kb3duKSksdGhpcy5fc3VwZXIoZSx0KSwiZGlzYWJsZWQiPT09ZSYmKHRoaXMud2lkZ2V0KCkudG9nZ2xlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIiwhIXQpLHRoaXMuZWxlbWVudC5wcm9wKCJkaXNhYmxlZCIsISF0KSx0aGlzLmJ1dHRvbnMuYnV0dG9uKHQ/ImRpc2FibGUiOiJlbmFibGUiKSl9LF9zZXRPcHRpb25zOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3VwZXIoZSl9KSxfcGFyc2U6ZnVuY3Rpb24oZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlJiYiIiE9PWUmJihlPXdpbmRvdy5HbG9iYWxpemUmJnRoaXMub3B0aW9ucy5udW1iZXJGb3JtYXQ/R2xvYmFsaXplLnBhcnNlRmxvYXQoZSwxMCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6K2UpLCIiPT09ZXx8aXNOYU4oZSk/bnVsbDplCn0sX2Zvcm1hdDpmdW5jdGlvbihlKXtyZXR1cm4iIj09PWU/IiI6d2luZG93Lkdsb2JhbGl6ZSYmdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdD9HbG9iYWxpemUuZm9ybWF0KGUsdGhpcy5vcHRpb25zLm51bWJlckZvcm1hdCx0aGlzLm9wdGlvbnMuY3VsdHVyZSk6ZX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLmVsZW1lbnQuYXR0cih7ImFyaWEtdmFsdWVtaW4iOnRoaXMub3B0aW9ucy5taW4sImFyaWEtdmFsdWVtYXgiOnRoaXMub3B0aW9ucy5tYXgsImFyaWEtdmFsdWVub3ciOnRoaXMuX3BhcnNlKHRoaXMuZWxlbWVudC52YWwoKSl9KX0saXNWYWxpZDpmdW5jdGlvbigpe3ZhciBlPXRoaXMudmFsdWUoKTtyZXR1cm4gbnVsbD09PWU/ITE6ZT09PXRoaXMuX2FkanVzdFZhbHVlKGUpfSxfdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgaTsiIiE9PWUmJihpPXRoaXMuX3BhcnNlKGUpLG51bGwhPT1pJiYodHx8KGk9dGhpcy5fYWRqdXN0VmFsdWUoaSkpLGU9dGhpcy5fZm9ybWF0KGkpKSksdGhpcy5lbGVtZW50LnZhbChlKSx0aGlzLl9yZWZyZXNoKCl9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS1zcGlubmVyLWlucHV0IikucHJvcCgiZGlzYWJsZWQiLCExKS5yZW1vdmVBdHRyKCJhdXRvY29tcGxldGUiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigiYXJpYS12YWx1ZW1pbiIpLnJlbW92ZUF0dHIoImFyaWEtdmFsdWVtYXgiKS5yZW1vdmVBdHRyKCJhcmlhLXZhbHVlbm93IiksdGhpcy51aVNwaW5uZXIucmVwbGFjZVdpdGgodGhpcy5lbGVtZW50KX0sc3RlcFVwOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKGUpfSksX3N0ZXBVcDpmdW5jdGlvbihlKXt0aGlzLl9zdGFydCgpJiYodGhpcy5fc3BpbigoZXx8MSkqdGhpcy5vcHRpb25zLnN0ZXApLHRoaXMuX3N0b3AoKSl9LHN0ZXBEb3duOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcERvd24oZSl9KSxfc3RlcERvd246ZnVuY3Rpb24oZSl7dGhpcy5fc3RhcnQoKSYmKHRoaXMuX3NwaW4oKGV8fDEpKi10aGlzLm9wdGlvbnMuc3RlcCksdGhpcy5fc3RvcCgpKX0scGFnZVVwOnMoZnVuY3Rpb24oZSl7dGhpcy5fc3RlcFVwKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSxwYWdlRG93bjpzKGZ1bmN0aW9uKGUpe3RoaXMuX3N0ZXBEb3duKChlfHwxKSp0aGlzLm9wdGlvbnMucGFnZSl9KSx2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocyh0aGlzLl92YWx1ZSkuY2FsbCh0aGlzLGUpLHZvaWQgMCk6dGhpcy5fcGFyc2UodGhpcy5lbGVtZW50LnZhbCgpKX0sd2lkZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudWlTcGlubmVyfX0pLGUud2lkZ2V0KCJ1aS50YWJzIix7dmVyc2lvbjoiMS4xMS40IixkZWxheTozMDAsb3B0aW9uczp7YWN0aXZlOm51bGwsY29sbGFwc2libGU6ITEsZXZlbnQ6ImNsaWNrIixoZWlnaHRTdHlsZToiY29udGVudCIsaGlkZTpudWxsLHNob3c6bnVsbCxhY3RpdmF0ZTpudWxsLGJlZm9yZUFjdGl2YXRlOm51bGwsYmVmb3JlTG9hZDpudWxsLGxvYWQ6bnVsbH0sX2lzTG9jYWw6ZnVuY3Rpb24oKXt2YXIgZT0vIy4qJC87cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBpLHM7dD10LmNsb25lTm9kZSghMSksaT10LmhyZWYucmVwbGFjZShlLCIiKSxzPWxvY2F0aW9uLmhyZWYucmVwbGFjZShlLCIiKTt0cnl7aT1kZWNvZGVVUklDb21wb25lbnQoaSl9Y2F0Y2gobil7fXRyeXtzPWRlY29kZVVSSUNvbXBvbmVudChzKX1jYXRjaChuKXt9cmV0dXJuIHQuaGFzaC5sZW5ndGg+MSYmaT09PXN9fSgpLF9jcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLGk9dGhpcy5vcHRpb25zO3RoaXMucnVubmluZz0hMSx0aGlzLmVsZW1lbnQuYWRkQ2xhc3MoInVpLXRhYnMgdWktd2lkZ2V0IHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1hbGwiKS50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsaS5jb2xsYXBzaWJsZSksdGhpcy5fcHJvY2Vzc1RhYnMoKSxpLmFjdGl2ZT10aGlzLl9pbml0aWFsQWN0aXZlKCksZS5pc0FycmF5KGkuZGlzYWJsZWQpJiYoaS5kaXNhYmxlZD1lLnVuaXF1ZShpLmRpc2FibGVkLmNvbmNhdChlLm1hcCh0aGlzLnRhYnMuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gdC50YWJzLmluZGV4KGUpfSkpKS5zb3J0KCkpLHRoaXMuYWN0aXZlPXRoaXMub3B0aW9ucy5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLl9maW5kQWN0aXZlKGkuYWN0aXZlKTplKCksdGhpcy5fcmVmcmVzaCgpLHRoaXMuYWN0aXZlLmxlbmd0aCYmdGhpcy5sb2FkKGkuYWN0aXZlKX0sX2luaXRpYWxBY3RpdmU6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMuYWN0aXZlLGk9dGhpcy5vcHRpb25zLmNvbGxhcHNpYmxlLHM9bG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSk7cmV0dXJuIG51bGw9PT10JiYocyYmdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oaSxuKXtyZXR1cm4gZShuKS5hdHRyKCJhcmlhLWNvbnRyb2xzIik9PT1zPyh0PWksITEpOnZvaWQgMH0pLG51bGw9PT10JiYodD10aGlzLnRhYnMuaW5kZXgodGhpcy50YWJzLmZpbHRlcigiLnVpLXRhYnMtYWN0aXZlIikpKSwobnVsbD09PXR8fC0xPT09dCkmJih0PXRoaXMudGFicy5sZW5ndGg/MDohMSkpLHQhPT0hMSYmKHQ9dGhpcy50YWJzLmluZGV4KHRoaXMudGFicy5lcSh0KSksLTE9PT10JiYodD1pPyExOjApKSwhaSYmdD09PSExJiZ0aGlzLmFuY2hvcnMubGVuZ3RoJiYodD0wKSx0fSxfZ2V0Q3JlYXRlRXZlbnREYXRhOmZ1bmN0aW9uKCl7cmV0dXJue3RhYjp0aGlzLmFjdGl2ZSxwYW5lbDp0aGlzLmFjdGl2ZS5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpOmUoKX19LF90YWJLZXlkb3duOmZ1bmN0aW9uKHQpe3ZhciBpPWUodGhpcy5kb2N1bWVudFswXS5hY3RpdmVFbGVtZW50KS5jbG9zZXN0KCJsaSIpLHM9dGhpcy50YWJzLmluZGV4KGkpLG49ITA7aWYoIXRoaXMuX2hhbmRsZVBhZ2VOYXYodCkpe3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgZS51aS5rZXlDb2RlLlJJR0hUOmNhc2UgZS51aS5rZXlDb2RlLkRPV046cysrO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlVQOmNhc2UgZS51aS5rZXlDb2RlLkxFRlQ6bj0hMSxzLS07YnJlYWs7Y2FzZSBlLnVpLmtleUNvZGUuRU5EOnM9dGhpcy5hbmNob3JzLmxlbmd0aC0xO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLkhPTUU6cz0wO2JyZWFrO2Nhc2UgZS51aS5rZXlDb2RlLlNQQUNFOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocyksdm9pZCAwO2Nhc2UgZS51aS5rZXlDb2RlLkVOVEVSOnJldHVybiB0LnByZXZlbnREZWZhdWx0KCksY2xlYXJUaW1lb3V0KHRoaXMuYWN0aXZhdGluZyksdGhpcy5fYWN0aXZhdGUocz09PXRoaXMub3B0aW9ucy5hY3RpdmU/ITE6cyksdm9pZCAwO2RlZmF1bHQ6cmV0dXJufXQucHJldmVudERlZmF1bHQoKSxjbGVhclRpbWVvdXQodGhpcy5hY3RpdmF0aW5nKSxzPXRoaXMuX2ZvY3VzTmV4dFRhYihzLG4pLHQuY3RybEtleXx8dC5tZXRhS2V5fHwoaS5hdHRyKCJhcmlhLXNlbGVjdGVkIiwiZmFsc2UiKSx0aGlzLnRhYnMuZXEocykuYXR0cigiYXJpYS1zZWxlY3RlZCIsInRydWUiKSx0aGlzLmFjdGl2YXRpbmc9dGhpcy5fZGVsYXkoZnVuY3Rpb24oKXt0aGlzLm9wdGlvbigiYWN0aXZlIixzKX0sdGhpcy5kZWxheSkpfX0sX3BhbmVsS2V5ZG93bjpmdW5jdGlvbih0KXt0aGlzLl9oYW5kbGVQYWdlTmF2KHQpfHx0LmN0cmxLZXkmJnQua2V5Q29kZT09PWUudWkua2V5Q29kZS5VUCYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLmFjdGl2ZS5mb2N1cygpKX0sX2hhbmRsZVBhZ2VOYXY6ZnVuY3Rpb24odCl7cmV0dXJuIHQuYWx0S2V5JiZ0LmtleUNvZGU9PT1lLnVpLmtleUNvZGUuUEFHRV9VUD8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUtMSwhMSkpLCEwKTp0LmFsdEtleSYmdC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLlBBR0VfRE9XTj8odGhpcy5fYWN0aXZhdGUodGhpcy5fZm9jdXNOZXh0VGFiKHRoaXMub3B0aW9ucy5hY3RpdmUrMSwhMCkpLCEwKTp2b2lkIDB9LF9maW5kTmV4dFRhYjpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXtyZXR1cm4gdD5uJiYodD0wKSwwPnQmJih0PW4pLHR9Zm9yKHZhciBuPXRoaXMudGFicy5sZW5ndGgtMTstMSE9PWUuaW5BcnJheShzKCksdGhpcy5vcHRpb25zLmRpc2FibGVkKTspdD1pP3QrMTp0LTE7cmV0dXJuIHR9LF9mb2N1c05leHRUYWI6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gZT10aGlzLl9maW5kTmV4dFRhYihlLHQpLHRoaXMudGFicy5lcShlKS5mb2N1cygpLGV9LF9zZXRPcHRpb246ZnVuY3Rpb24oZSx0KXtyZXR1cm4iYWN0aXZlIj09PWU/KHRoaXMuX2FjdGl2YXRlKHQpLHZvaWQgMCk6ImRpc2FibGVkIj09PWU/KHRoaXMuX3NldHVwRGlzYWJsZWQodCksdm9pZCAwKToodGhpcy5fc3VwZXIoZSx0KSwiY29sbGFwc2libGUiPT09ZSYmKHRoaXMuZWxlbWVudC50b2dnbGVDbGFzcygidWktdGFicy1jb2xsYXBzaWJsZSIsdCksdHx8dGhpcy5vcHRpb25zLmFjdGl2ZSE9PSExfHx0aGlzLl9hY3RpdmF0ZSgwKSksImV2ZW50Ij09PWUmJnRoaXMuX3NldHVwRXZlbnRzKHQpLCJoZWlnaHRTdHlsZSI9PT1lJiZ0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHQpLHZvaWQgMCl9LF9zYW5pdGl6ZVNlbGVjdG9yOmZ1bmN0aW9uKGUpe3JldHVybiBlP2UucmVwbGFjZSgvWyEiJCUmJygpKissLlwvOjs8PT4/QFxbXF1cXmB7fH1+XS9nLCJcXCQmIik6IiJ9LHJlZnJlc2g6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMsaT10aGlzLnRhYmxpc3QuY2hpbGRyZW4oIjpoYXMoYVtocmVmXSkiKTt0LmRpc2FibGVkPWUubWFwKGkuZmlsdGVyKCIudWktc3RhdGUtZGlzYWJsZWQiKSxmdW5jdGlvbihlKXtyZXR1cm4gaS5pbmRleChlKX0pLHRoaXMuX3Byb2Nlc3NUYWJzKCksdC5hY3RpdmUhPT0hMSYmdGhpcy5hbmNob3JzLmxlbmd0aD90aGlzLmFjdGl2ZS5sZW5ndGgmJiFlLmNvbnRhaW5zKHRoaXMudGFibGlzdFswXSx0aGlzLmFjdGl2ZVswXSk/dGhpcy50YWJzLmxlbmd0aD09PXQuZGlzYWJsZWQubGVuZ3RoPyh0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpOnRoaXMuX2FjdGl2YXRlKHRoaXMuX2ZpbmROZXh0VGFiKE1hdGgubWF4KDAsdC5hY3RpdmUtMSksITEpKTp0LmFjdGl2ZT10aGlzLnRhYnMuaW5kZXgodGhpcy5hY3RpdmUpOih0LmFjdGl2ZT0hMSx0aGlzLmFjdGl2ZT1lKCkpLHRoaXMuX3JlZnJlc2goKX0sX3JlZnJlc2g6ZnVuY3Rpb24oKXt0aGlzLl9zZXR1cERpc2FibGVkKHRoaXMub3B0aW9ucy5kaXNhYmxlZCksdGhpcy5fc2V0dXBFdmVudHModGhpcy5vcHRpb25zLmV2ZW50KSx0aGlzLl9zZXR1cEhlaWdodFN0eWxlKHRoaXMub3B0aW9ucy5oZWlnaHRTdHlsZSksdGhpcy50YWJzLm5vdCh0aGlzLmFjdGl2ZSkuYXR0cih7ImFyaWEtc2VsZWN0ZWQiOiJmYWxzZSIsImFyaWEtZXhwYW5kZWQiOiJmYWxzZSIsdGFiSW5kZXg6LTF9KSx0aGlzLnBhbmVscy5ub3QodGhpcy5fZ2V0UGFuZWxGb3JUYWIodGhpcy5hY3RpdmUpKS5oaWRlKCkuYXR0cih7ImFyaWEtaGlkZGVuIjoidHJ1ZSJ9KSx0aGlzLmFjdGl2ZS5sZW5ndGg/KHRoaXMuYWN0aXZlLmFkZENsYXNzKCJ1aS10YWJzLWFjdGl2ZSB1aS1zdGF0ZS1hY3RpdmUiKS5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6InRydWUiLCJhcmlhLWV4cGFuZGVkIjoidHJ1ZSIsdGFiSW5kZXg6MH0pLHRoaXMuX2dldFBhbmVsRm9yVGFiKHRoaXMuYWN0aXZlKS5zaG93KCkuYXR0cih7ImFyaWEtaGlkZGVuIjoiZmFsc2UifSkpOnRoaXMudGFicy5lcSgwKS5hdHRyKCJ0YWJJbmRleCIsMCl9LF9wcm9jZXNzVGFiczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT10aGlzLnRhYnMscz10aGlzLmFuY2hvcnMsbj10aGlzLnBhbmVsczt0aGlzLnRhYmxpc3Q9dGhpcy5fZ2V0TGlzdCgpLmFkZENsYXNzKCJ1aS10YWJzLW5hdiB1aS1oZWxwZXItcmVzZXQgdWktaGVscGVyLWNsZWFyZml4IHVpLXdpZGdldC1oZWFkZXIgdWktY29ybmVyLWFsbCIpLmF0dHIoInJvbGUiLCJ0YWJsaXN0IikuZGVsZWdhdGUoIj4gbGkiLCJtb3VzZWRvd24iK3RoaXMuZXZlbnROYW1lc3BhY2UsZnVuY3Rpb24odCl7ZSh0aGlzKS5pcygiLnVpLXN0YXRlLWRpc2FibGVkIikmJnQucHJldmVudERlZmF1bHQoKX0pLmRlbGVnYXRlKCIudWktdGFicy1hbmNob3IiLCJmb2N1cyIrdGhpcy5ldmVudE5hbWVzcGFjZSxmdW5jdGlvbigpe2UodGhpcykuY2xvc2VzdCgibGkiKS5pcygiLnVpLXN0YXRlLWRpc2FibGVkIikmJnRoaXMuYmx1cigpfSksdGhpcy50YWJzPXRoaXMudGFibGlzdC5maW5kKCI+IGxpOmhhcyhhW2hyZWZdKSIpLmFkZENsYXNzKCJ1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci10b3AiKS5hdHRyKHtyb2xlOiJ0YWIiLHRhYkluZGV4Oi0xfSksdGhpcy5hbmNob3JzPXRoaXMudGFicy5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gZSgiYSIsdGhpcylbMF19KS5hZGRDbGFzcygidWktdGFicy1hbmNob3IiKS5hdHRyKHtyb2xlOiJwcmVzZW50YXRpb24iLHRhYkluZGV4Oi0xfSksdGhpcy5wYW5lbHM9ZSgpLHRoaXMuYW5jaG9ycy5lYWNoKGZ1bmN0aW9uKGkscyl7dmFyIG4sYSxvLHI9ZShzKS51bmlxdWVJZCgpLmF0dHIoImlkIiksaD1lKHMpLmNsb3Nlc3QoImxpIiksbD1oLmF0dHIoImFyaWEtY29udHJvbHMiKTt0Ll9pc0xvY2FsKHMpPyhuPXMuaGFzaCxvPW4uc3Vic3RyaW5nKDEpLGE9dC5lbGVtZW50LmZpbmQodC5fc2FuaXRpemVTZWxlY3RvcihuKSkpOihvPWguYXR0cigiYXJpYS1jb250cm9scyIpfHxlKHt9KS51bmlxdWVJZCgpWzBdLmlkLG49IiMiK28sYT10LmVsZW1lbnQuZmluZChuKSxhLmxlbmd0aHx8KGE9dC5fY3JlYXRlUGFuZWwobyksYS5pbnNlcnRBZnRlcih0LnBhbmVsc1tpLTFdfHx0LnRhYmxpc3QpKSxhLmF0dHIoImFyaWEtbGl2ZSIsInBvbGl0ZSIpKSxhLmxlbmd0aCYmKHQucGFuZWxzPXQucGFuZWxzLmFkZChhKSksbCYmaC5kYXRhKCJ1aS10YWJzLWFyaWEtY29udHJvbHMiLGwpLGguYXR0cih7ImFyaWEtY29udHJvbHMiOm8sImFyaWEtbGFiZWxsZWRieSI6cn0pLGEuYXR0cigiYXJpYS1sYWJlbGxlZGJ5IixyKX0pLHRoaXMucGFuZWxzLmFkZENsYXNzKCJ1aS10YWJzLXBhbmVsIHVpLXdpZGdldC1jb250ZW50IHVpLWNvcm5lci1ib3R0b20iKS5hdHRyKCJyb2xlIiwidGFicGFuZWwiKSxpJiYodGhpcy5fb2ZmKGkubm90KHRoaXMudGFicykpLHRoaXMuX29mZihzLm5vdCh0aGlzLmFuY2hvcnMpKSx0aGlzLl9vZmYobi5ub3QodGhpcy5wYW5lbHMpKSl9LF9nZXRMaXN0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFibGlzdHx8dGhpcy5lbGVtZW50LmZpbmQoIm9sLHVsIikuZXEoMCl9LF9jcmVhdGVQYW5lbDpmdW5jdGlvbih0KXtyZXR1cm4gZSgiPGRpdj4iKS5hdHRyKCJpZCIsdCkuYWRkQ2xhc3MoInVpLXRhYnMtcGFuZWwgdWktd2lkZ2V0LWNvbnRlbnQgdWktY29ybmVyLWJvdHRvbSIpLmRhdGEoInVpLXRhYnMtZGVzdHJveSIsITApfSxfc2V0dXBEaXNhYmxlZDpmdW5jdGlvbih0KXtlLmlzQXJyYXkodCkmJih0Lmxlbmd0aD90Lmxlbmd0aD09PXRoaXMuYW5jaG9ycy5sZW5ndGgmJih0PSEwKTp0PSExKTtmb3IodmFyIGkscz0wO2k9dGhpcy50YWJzW3NdO3MrKyl0PT09ITB8fC0xIT09ZS5pbkFycmF5KHMsdCk/ZShpKS5hZGRDbGFzcygidWktc3RhdGUtZGlzYWJsZWQiKS5hdHRyKCJhcmlhLWRpc2FibGVkIiwidHJ1ZSIpOmUoaSkucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIikucmVtb3ZlQXR0cigiYXJpYS1kaXNhYmxlZCIpO3RoaXMub3B0aW9ucy5kaXNhYmxlZD10fSxfc2V0dXBFdmVudHM6ZnVuY3Rpb24odCl7dmFyIGk9e307dCYmZS5lYWNoKHQuc3BsaXQoIiAiKSxmdW5jdGlvbihlLHQpe2lbdF09Il9ldmVudEhhbmRsZXIifSksdGhpcy5fb2ZmKHRoaXMuYW5jaG9ycy5hZGQodGhpcy50YWJzKS5hZGQodGhpcy5wYW5lbHMpKSx0aGlzLl9vbighMCx0aGlzLmFuY2hvcnMse2NsaWNrOmZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKX19KSx0aGlzLl9vbih0aGlzLmFuY2hvcnMsaSksdGhpcy5fb24odGhpcy50YWJzLHtrZXlkb3duOiJfdGFiS2V5ZG93biJ9KSx0aGlzLl9vbih0aGlzLnBhbmVscyx7a2V5ZG93bjoiX3BhbmVsS2V5ZG93biJ9KSx0aGlzLl9mb2N1c2FibGUodGhpcy50YWJzKSx0aGlzLl9ob3ZlcmFibGUodGhpcy50YWJzKX0sX3NldHVwSGVpZ2h0U3R5bGU6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLmVsZW1lbnQucGFyZW50KCk7ImZpbGwiPT09dD8oaT1zLmhlaWdodCgpLGktPXRoaXMuZWxlbWVudC5vdXRlckhlaWdodCgpLXRoaXMuZWxlbWVudC5oZWlnaHQoKSx0aGlzLmVsZW1lbnQuc2libGluZ3MoIjp2aXNpYmxlIikuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcykscz10LmNzcygicG9zaXRpb24iKTsiYWJzb2x1dGUiIT09cyYmImZpeGVkIiE9PXMmJihpLT10Lm91dGVySGVpZ2h0KCEwKSl9KSx0aGlzLmVsZW1lbnQuY2hpbGRyZW4oKS5ub3QodGhpcy5wYW5lbHMpLmVhY2goZnVuY3Rpb24oKXtpLT1lKHRoaXMpLm91dGVySGVpZ2h0KCEwKX0pLHRoaXMucGFuZWxzLmVhY2goZnVuY3Rpb24oKXtlKHRoaXMpLmhlaWdodChNYXRoLm1heCgwLGktZSh0aGlzKS5pbm5lckhlaWdodCgpK2UodGhpcykuaGVpZ2h0KCkpKX0pLmNzcygib3ZlcmZsb3ciLCJhdXRvIikpOiJhdXRvIj09PXQmJihpPTAsdGhpcy5wYW5lbHMuZWFjaChmdW5jdGlvbigpe2k9TWF0aC5tYXgoaSxlKHRoaXMpLmhlaWdodCgiIikuaGVpZ2h0KCkpfSkuaGVpZ2h0KGkpKX0sX2V2ZW50SGFuZGxlcjpmdW5jdGlvbih0KXt2YXIgaT10aGlzLm9wdGlvbnMscz10aGlzLmFjdGl2ZSxuPWUodC5jdXJyZW50VGFyZ2V0KSxhPW4uY2xvc2VzdCgibGkiKSxvPWFbMF09PT1zWzBdLHI9byYmaS5jb2xsYXBzaWJsZSxoPXI/ZSgpOnRoaXMuX2dldFBhbmVsRm9yVGFiKGEpLGw9cy5sZW5ndGg/dGhpcy5fZ2V0UGFuZWxGb3JUYWIocyk6ZSgpLHU9e29sZFRhYjpzLG9sZFBhbmVsOmwsbmV3VGFiOnI/ZSgpOmEsbmV3UGFuZWw6aH07dC5wcmV2ZW50RGVmYXVsdCgpLGEuaGFzQ2xhc3MoInVpLXN0YXRlLWRpc2FibGVkIil8fGEuaGFzQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpfHx0aGlzLnJ1bm5pbmd8fG8mJiFpLmNvbGxhcHNpYmxlfHx0aGlzLl90cmlnZ2VyKCJiZWZvcmVBY3RpdmF0ZSIsdCx1KT09PSExfHwoaS5hY3RpdmU9cj8hMTp0aGlzLnRhYnMuaW5kZXgoYSksdGhpcy5hY3RpdmU9bz9lKCk6YSx0aGlzLnhociYmdGhpcy54aHIuYWJvcnQoKSxsLmxlbmd0aHx8aC5sZW5ndGh8fGUuZXJyb3IoImpRdWVyeSBVSSBUYWJzOiBNaXNtYXRjaGluZyBmcmFnbWVudCBpZGVudGlmaWVyLiIpLGgubGVuZ3RoJiZ0aGlzLmxvYWQodGhpcy50YWJzLmluZGV4KGEpLHQpLHRoaXMuX3RvZ2dsZSh0LHUpKX0sX3RvZ2dsZTpmdW5jdGlvbih0LGkpe2Z1bmN0aW9uIHMoKXthLnJ1bm5pbmc9ITEsYS5fdHJpZ2dlcigiYWN0aXZhdGUiLHQsaSl9ZnVuY3Rpb24gbigpe2kubmV3VGFiLmNsb3Nlc3QoImxpIikuYWRkQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLG8ubGVuZ3RoJiZhLm9wdGlvbnMuc2hvdz9hLl9zaG93KG8sYS5vcHRpb25zLnNob3cscyk6KG8uc2hvdygpLHMoKSl9dmFyIGE9dGhpcyxvPWkubmV3UGFuZWwscj1pLm9sZFBhbmVsO3RoaXMucnVubmluZz0hMCxyLmxlbmd0aCYmdGhpcy5vcHRpb25zLmhpZGU/dGhpcy5faGlkZShyLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7aS5vbGRUYWIuY2xvc2VzdCgibGkiKS5yZW1vdmVDbGFzcygidWktdGFicy1hY3RpdmUgdWktc3RhdGUtYWN0aXZlIiksbigpfSk6KGkub2xkVGFiLmNsb3Nlc3QoImxpIikucmVtb3ZlQ2xhc3MoInVpLXRhYnMtYWN0aXZlIHVpLXN0YXRlLWFjdGl2ZSIpLHIuaGlkZSgpLG4oKSksci5hdHRyKCJhcmlhLWhpZGRlbiIsInRydWUiKSxpLm9sZFRhYi5hdHRyKHsiYXJpYS1zZWxlY3RlZCI6ImZhbHNlIiwiYXJpYS1leHBhbmRlZCI6ImZhbHNlIn0pLG8ubGVuZ3RoJiZyLmxlbmd0aD9pLm9sZFRhYi5hdHRyKCJ0YWJJbmRleCIsLTEpOm8ubGVuZ3RoJiZ0aGlzLnRhYnMuZmlsdGVyKGZ1bmN0aW9uKCl7cmV0dXJuIDA9PT1lKHRoaXMpLmF0dHIoInRhYkluZGV4Iil9KS5hdHRyKCJ0YWJJbmRleCIsLTEpLG8uYXR0cigiYXJpYS1oaWRkZW4iLCJmYWxzZSIpLGkubmV3VGFiLmF0dHIoeyJhcmlhLXNlbGVjdGVkIjoidHJ1ZSIsImFyaWEtZXhwYW5kZWQiOiJ0cnVlIix0YWJJbmRleDowfSl9LF9hY3RpdmF0ZTpmdW5jdGlvbih0KXt2YXIgaSxzPXRoaXMuX2ZpbmRBY3RpdmUodCk7c1swXSE9PXRoaXMuYWN0aXZlWzBdJiYocy5sZW5ndGh8fChzPXRoaXMuYWN0aXZlKSxpPXMuZmluZCgiLnVpLXRhYnMtYW5jaG9yIilbMF0sdGhpcy5fZXZlbnRIYW5kbGVyKHt0YXJnZXQ6aSxjdXJyZW50VGFyZ2V0OmkscHJldmVudERlZmF1bHQ6ZS5ub29wfSkpfSxfZmluZEFjdGl2ZTpmdW5jdGlvbih0KXtyZXR1cm4gdD09PSExP2UoKTp0aGlzLnRhYnMuZXEodCl9LF9nZXRJbmRleDpmdW5jdGlvbihlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXRoaXMuYW5jaG9ycy5pbmRleCh0aGlzLmFuY2hvcnMuZmlsdGVyKCJbaHJlZiQ9JyIrZSsiJ10iKSkpLGV9LF9kZXN0cm95OmZ1bmN0aW9uKCl7dGhpcy54aHImJnRoaXMueGhyLmFib3J0KCksdGhpcy5lbGVtZW50LnJlbW92ZUNsYXNzKCJ1aS10YWJzIHVpLXdpZGdldCB1aS13aWRnZXQtY29udGVudCB1aS1jb3JuZXItYWxsIHVpLXRhYnMtY29sbGFwc2libGUiKSx0aGlzLnRhYmxpc3QucmVtb3ZlQ2xhc3MoInVpLXRhYnMtbmF2IHVpLWhlbHBlci1yZXNldCB1aS1oZWxwZXItY2xlYXJmaXggdWktd2lkZ2V0LWhlYWRlciB1aS1jb3JuZXItYWxsIikucmVtb3ZlQXR0cigicm9sZSIpLHRoaXMuYW5jaG9ycy5yZW1vdmVDbGFzcygidWktdGFicy1hbmNob3IiKS5yZW1vdmVBdHRyKCJyb2xlIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVVbmlxdWVJZCgpLHRoaXMudGFibGlzdC51bmJpbmQodGhpcy5ldmVudE5hbWVzcGFjZSksdGhpcy50YWJzLmFkZCh0aGlzLnBhbmVscykuZWFjaChmdW5jdGlvbigpe2UuZGF0YSh0aGlzLCJ1aS10YWJzLWRlc3Ryb3kiKT9lKHRoaXMpLnJlbW92ZSgpOmUodGhpcykucmVtb3ZlQ2xhc3MoInVpLXN0YXRlLWRlZmF1bHQgdWktc3RhdGUtYWN0aXZlIHVpLXN0YXRlLWRpc2FibGVkIHVpLWNvcm5lci10b3AgdWktY29ybmVyLWJvdHRvbSB1aS13aWRnZXQtY29udGVudCB1aS10YWJzLWFjdGl2ZSB1aS10YWJzLXBhbmVsIikucmVtb3ZlQXR0cigidGFiSW5kZXgiKS5yZW1vdmVBdHRyKCJhcmlhLWxpdmUiKS5yZW1vdmVBdHRyKCJhcmlhLWJ1c3kiKS5yZW1vdmVBdHRyKCJhcmlhLXNlbGVjdGVkIikucmVtb3ZlQXR0cigiYXJpYS1sYWJlbGxlZGJ5IikucmVtb3ZlQXR0cigiYXJpYS1oaWRkZW4iKS5yZW1vdmVBdHRyKCJhcmlhLWV4cGFuZGVkIikucmVtb3ZlQXR0cigicm9sZSIpfSksdGhpcy50YWJzLmVhY2goZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLGk9dC5kYXRhKCJ1aS10YWJzLWFyaWEtY29udHJvbHMiKTtpP3QuYXR0cigiYXJpYS1jb250cm9scyIsaSkucmVtb3ZlRGF0YSgidWktdGFicy1hcmlhLWNvbnRyb2xzIik6dC5yZW1vdmVBdHRyKCJhcmlhLWNvbnRyb2xzIil9KSx0aGlzLnBhbmVscy5zaG93KCksImNvbnRlbnQiIT09dGhpcy5vcHRpb25zLmhlaWdodFN0eWxlJiZ0aGlzLnBhbmVscy5jc3MoImhlaWdodCIsIiIpfSxlbmFibGU6ZnVuY3Rpb24odCl7dmFyIGk9dGhpcy5vcHRpb25zLmRpc2FibGVkO2khPT0hMSYmKHZvaWQgMD09PXQ/aT0hMToodD10aGlzLl9nZXRJbmRleCh0KSxpPWUuaXNBcnJheShpKT9lLm1hcChpLGZ1bmN0aW9uKGUpe3JldHVybiBlIT09dD9lOm51bGx9KTplLm1hcCh0aGlzLnRhYnMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gaSE9PXQ/aTpudWxsfSkpLHRoaXMuX3NldHVwRGlzYWJsZWQoaSkpfSxkaXNhYmxlOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMub3B0aW9ucy5kaXNhYmxlZDtpZihpIT09ITApe2lmKHZvaWQgMD09PXQpaT0hMDtlbHNle2lmKHQ9dGhpcy5fZ2V0SW5kZXgodCksLTEhPT1lLmluQXJyYXkodCxpKSlyZXR1cm47aT1lLmlzQXJyYXkoaSk/ZS5tZXJnZShbdF0saSkuc29ydCgpOlt0XX10aGlzLl9zZXR1cERpc2FibGVkKGkpfX0sbG9hZDpmdW5jdGlvbih0LGkpe3Q9dGhpcy5fZ2V0SW5kZXgodCk7dmFyIHM9dGhpcyxuPXRoaXMudGFicy5lcSh0KSxhPW4uZmluZCgiLnVpLXRhYnMtYW5jaG9yIiksbz10aGlzLl9nZXRQYW5lbEZvclRhYihuKSxyPXt0YWI6bixwYW5lbDpvfSxoPWZ1bmN0aW9uKGUsdCl7ImFib3J0Ij09PXQmJnMucGFuZWxzLnN0b3AoITEsITApLG4ucmVtb3ZlQ2xhc3MoInVpLXRhYnMtbG9hZGluZyIpLG8ucmVtb3ZlQXR0cigiYXJpYS1idXN5IiksZT09PXMueGhyJiZkZWxldGUgcy54aHJ9O3RoaXMuX2lzTG9jYWwoYVswXSl8fCh0aGlzLnhocj1lLmFqYXgodGhpcy5fYWpheFNldHRpbmdzKGEsaSxyKSksdGhpcy54aHImJiJjYW5jZWxlZCIhPT10aGlzLnhoci5zdGF0dXNUZXh0JiYobi5hZGRDbGFzcygidWktdGFicy1sb2FkaW5nIiksby5hdHRyKCJhcmlhLWJ1c3kiLCJ0cnVlIiksdGhpcy54aHIuZG9uZShmdW5jdGlvbihlLHQsbil7c2V0VGltZW91dChmdW5jdGlvbigpe28uaHRtbChlKSxzLl90cmlnZ2VyKCJsb2FkIixpLHIpLGgobix0KX0sMSl9KS5mYWlsKGZ1bmN0aW9uKGUsdCl7c2V0VGltZW91dChmdW5jdGlvbigpe2goZSx0KX0sMSl9KSkpfSxfYWpheFNldHRpbmdzOmZ1bmN0aW9uKHQsaSxzKXt2YXIgbj10aGlzO3JldHVybnt1cmw6dC5hdHRyKCJocmVmIiksYmVmb3JlU2VuZDpmdW5jdGlvbih0LGEpe3JldHVybiBuLl90cmlnZ2VyKCJiZWZvcmVMb2FkIixpLGUuZXh0ZW5kKHtqcVhIUjp0LGFqYXhTZXR0aW5nczphfSxzKSl9fX0sX2dldFBhbmVsRm9yVGFiOmZ1bmN0aW9uKHQpe3ZhciBpPWUodCkuYXR0cigiYXJpYS1jb250cm9scyIpO3JldHVybiB0aGlzLmVsZW1lbnQuZmluZCh0aGlzLl9zYW5pdGl6ZVNlbGVjdG9yKCIjIitpKSl9fSksZS53aWRnZXQoInVpLnRvb2x0aXAiLHt2ZXJzaW9uOiIxLjExLjQiLG9wdGlvbnM6e2NvbnRlbnQ6ZnVuY3Rpb24oKXt2YXIgdD1lKHRoaXMpLmF0dHIoInRpdGxlIil8fCIiO3JldHVybiBlKCI8YT4iKS50ZXh0KHQpLmh0bWwoKX0saGlkZTohMCxpdGVtczoiW3RpdGxlXTpub3QoW2Rpc2FibGVkXSkiLHBvc2l0aW9uOntteToibGVmdCB0b3ArMTUiLGF0OiJsZWZ0IGJvdHRvbSIsY29sbGlzaW9uOiJmbGlwZml0IGZsaXAifSxzaG93OiEwLHRvb2x0aXBDbGFzczpudWxsLHRyYWNrOiExLGNsb3NlOm51bGwsb3BlbjpudWxsfSxfYWRkRGVzY3JpYmVkQnk6ZnVuY3Rpb24odCxpKXt2YXIgcz0odC5hdHRyKCJhcmlhLWRlc2NyaWJlZGJ5Iil8fCIiKS5zcGxpdCgvXHMrLyk7cy5wdXNoKGkpLHQuZGF0YSgidWktdG9vbHRpcC1pZCIsaSkuYXR0cigiYXJpYS1kZXNjcmliZWRieSIsZS50cmltKHMuam9pbigiICIpKSl9LF9yZW1vdmVEZXNjcmliZWRCeTpmdW5jdGlvbih0KXt2YXIgaT10LmRhdGEoInVpLXRvb2x0aXAtaWQiKSxzPSh0LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiKXx8IiIpLnNwbGl0KC9ccysvKSxuPWUuaW5BcnJheShpLHMpOy0xIT09biYmcy5zcGxpY2UobiwxKSx0LnJlbW92ZURhdGEoInVpLXRvb2x0aXAtaWQiKSxzPWUudHJpbShzLmpvaW4oIiAiKSkscz90LmF0dHIoImFyaWEtZGVzY3JpYmVkYnkiLHMpOnQucmVtb3ZlQXR0cigiYXJpYS1kZXNjcmliZWRieSIpfSxfY3JlYXRlOmZ1bmN0aW9uKCl7dGhpcy5fb24oe21vdXNlb3Zlcjoib3BlbiIsZm9jdXNpbjoib3BlbiJ9KSx0aGlzLnRvb2x0aXBzPXt9LHRoaXMucGFyZW50cz17fSx0aGlzLm9wdGlvbnMuZGlzYWJsZWQmJnRoaXMuX2Rpc2FibGUoKSx0aGlzLmxpdmVSZWdpb249ZSgiPGRpdj4iKS5hdHRyKHtyb2xlOiJsb2ciLCJhcmlhLWxpdmUiOiJhc3NlcnRpdmUiLCJhcmlhLXJlbGV2YW50IjoiYWRkaXRpb25zIn0pLmFkZENsYXNzKCJ1aS1oZWxwZXItaGlkZGVuLWFjY2Vzc2libGUiKS5hcHBlbmRUbyh0aGlzLmRvY3VtZW50WzBdLmJvZHkpfSxfc2V0T3B0aW9uOmZ1bmN0aW9uKHQsaSl7dmFyIHM9dGhpcztyZXR1cm4iZGlzYWJsZWQiPT09dD8odGhpc1tpPyJfZGlzYWJsZSI6Il9lbmFibGUiXSgpLHRoaXMub3B0aW9uc1t0XT1pLHZvaWQgMCk6KHRoaXMuX3N1cGVyKHQsaSksImNvbnRlbnQiPT09dCYmZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oZSx0KXtzLl91cGRhdGVDb250ZW50KHQuZWxlbWVudCl9KSx2b2lkIDApfSxfZGlzYWJsZTpmdW5jdGlvbigpe3ZhciB0PXRoaXM7ZS5lYWNoKHRoaXMudG9vbHRpcHMsZnVuY3Rpb24oaSxzKXt2YXIgbj1lLkV2ZW50KCJibHVyIik7bi50YXJnZXQ9bi5jdXJyZW50VGFyZ2V0PXMuZWxlbWVudFswXSx0LmNsb3NlKG4sITApfSksdGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5pcygiW3RpdGxlXSIpJiZ0LmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiLHQuYXR0cigidGl0bGUiKSkucmVtb3ZlQXR0cigidGl0bGUiKX0pfSxfZW5hYmxlOmZ1bmN0aW9uKCl7dGhpcy5lbGVtZW50LmZpbmQodGhpcy5vcHRpb25zLml0ZW1zKS5hZGRCYWNrKCkuZWFjaChmdW5jdGlvbigpe3ZhciB0PWUodGhpcyk7dC5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikmJnQuYXR0cigidGl0bGUiLHQuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpKX0pfSxvcGVuOmZ1bmN0aW9uKHQpe3ZhciBpPXRoaXMscz1lKHQ/dC50YXJnZXQ6dGhpcy5lbGVtZW50KS5jbG9zZXN0KHRoaXMub3B0aW9ucy5pdGVtcyk7cy5sZW5ndGgmJiFzLmRhdGEoInVpLXRvb2x0aXAtaWQiKSYmKHMuYXR0cigidGl0bGUiKSYmcy5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIixzLmF0dHIoInRpdGxlIikpLHMuZGF0YSgidWktdG9vbHRpcC1vcGVuIiwhMCksdCYmIm1vdXNlb3ZlciI9PT10LnR5cGUmJnMucGFyZW50cygpLmVhY2goZnVuY3Rpb24oKXt2YXIgdCxzPWUodGhpcyk7cy5kYXRhKCJ1aS10b29sdGlwLW9wZW4iKSYmKHQ9ZS5FdmVudCgiYmx1ciIpLHQudGFyZ2V0PXQuY3VycmVudFRhcmdldD10aGlzLGkuY2xvc2UodCwhMCkpLHMuYXR0cigidGl0bGUiKSYmKHMudW5pcXVlSWQoKSxpLnBhcmVudHNbdGhpcy5pZF09e2VsZW1lbnQ6dGhpcyx0aXRsZTpzLmF0dHIoInRpdGxlIil9LHMuYXR0cigidGl0bGUiLCIiKSl9KSx0aGlzLl9yZWdpc3RlckNsb3NlSGFuZGxlcnModCxzKSx0aGlzLl91cGRhdGVDb250ZW50KHMsdCkpfSxfdXBkYXRlQ29udGVudDpmdW5jdGlvbihlLHQpe3ZhciBpLHM9dGhpcy5vcHRpb25zLmNvbnRlbnQsbj10aGlzLGE9dD90LnR5cGU6bnVsbDtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHM/dGhpcy5fb3Blbih0LGUscyk6KGk9cy5jYWxsKGVbMF0sZnVuY3Rpb24oaSl7bi5fZGVsYXkoZnVuY3Rpb24oKXtlLmRhdGEoInVpLXRvb2x0aXAtb3BlbiIpJiYodCYmKHQudHlwZT1hKSx0aGlzLl9vcGVuKHQsZSxpKSl9KX0pLGkmJnRoaXMuX29wZW4odCxlLGkpLHZvaWQgMCl9LF9vcGVuOmZ1bmN0aW9uKHQsaSxzKXtmdW5jdGlvbiBuKGUpe2wub2Y9ZSxvLmlzKCI6aGlkZGVuIil8fG8ucG9zaXRpb24obCl9dmFyIGEsbyxyLGgsbD1lLmV4dGVuZCh7fSx0aGlzLm9wdGlvbnMucG9zaXRpb24pO2lmKHMpe2lmKGE9dGhpcy5fZmluZChpKSlyZXR1cm4gYS50b29sdGlwLmZpbmQoIi51aS10b29sdGlwLWNvbnRlbnQiKS5odG1sKHMpLHZvaWQgMDtpLmlzKCJbdGl0bGVdIikmJih0JiYibW91c2VvdmVyIj09PXQudHlwZT9pLmF0dHIoInRpdGxlIiwiIik6aS5yZW1vdmVBdHRyKCJ0aXRsZSIpKSxhPXRoaXMuX3Rvb2x0aXAoaSksbz1hLnRvb2x0aXAsdGhpcy5fYWRkRGVzY3JpYmVkQnkoaSxvLmF0dHIoImlkIikpLG8uZmluZCgiLnVpLXRvb2x0aXAtY29udGVudCIpLmh0bWwocyksdGhpcy5saXZlUmVnaW9uLmNoaWxkcmVuKCkuaGlkZSgpLHMuY2xvbmU/KGg9cy5jbG9uZSgpLGgucmVtb3ZlQXR0cigiaWQiKS5maW5kKCJbaWRdIikucmVtb3ZlQXR0cigiaWQiKSk6aD1zLGUoIjxkaXY+IikuaHRtbChoKS5hcHBlbmRUbyh0aGlzLmxpdmVSZWdpb24pLHRoaXMub3B0aW9ucy50cmFjayYmdCYmL15tb3VzZS8udGVzdCh0LnR5cGUpPyh0aGlzLl9vbih0aGlzLmRvY3VtZW50LHttb3VzZW1vdmU6bn0pLG4odCkpOm8ucG9zaXRpb24oZS5leHRlbmQoe29mOml9LHRoaXMub3B0aW9ucy5wb3NpdGlvbikpLG8uaGlkZSgpLHRoaXMuX3Nob3cobyx0aGlzLm9wdGlvbnMuc2hvdyksdGhpcy5vcHRpb25zLnNob3cmJnRoaXMub3B0aW9ucy5zaG93LmRlbGF5JiYocj10aGlzLmRlbGF5ZWRTaG93PXNldEludGVydmFsKGZ1bmN0aW9uKCl7by5pcygiOnZpc2libGUiKSYmKG4obC5vZiksY2xlYXJJbnRlcnZhbChyKSl9LGUuZnguaW50ZXJ2YWwpKSx0aGlzLl90cmlnZ2VyKCJvcGVuIix0LHt0b29sdGlwOm99KX19LF9yZWdpc3RlckNsb3NlSGFuZGxlcnM6ZnVuY3Rpb24odCxpKXt2YXIgcz17a2V5dXA6ZnVuY3Rpb24odCl7aWYodC5rZXlDb2RlPT09ZS51aS5rZXlDb2RlLkVTQ0FQRSl7dmFyIHM9ZS5FdmVudCh0KTtzLmN1cnJlbnRUYXJnZXQ9aVswXSx0aGlzLmNsb3NlKHMsITApfX19O2lbMF0hPT10aGlzLmVsZW1lbnRbMF0mJihzLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3JlbW92ZVRvb2x0aXAodGhpcy5fZmluZChpKS50b29sdGlwKX0pLHQmJiJtb3VzZW92ZXIiIT09dC50eXBlfHwocy5tb3VzZWxlYXZlPSJjbG9zZSIpLHQmJiJmb2N1c2luIiE9PXQudHlwZXx8KHMuZm9jdXNvdXQ9ImNsb3NlIiksdGhpcy5fb24oITAsaSxzKX0sY2xvc2U6ZnVuY3Rpb24odCl7dmFyIGkscz10aGlzLG49ZSh0P3QuY3VycmVudFRhcmdldDp0aGlzLmVsZW1lbnQpLGE9dGhpcy5fZmluZChuKTtyZXR1cm4gYT8oaT1hLnRvb2x0aXAsYS5jbG9zaW5nfHwoY2xlYXJJbnRlcnZhbCh0aGlzLmRlbGF5ZWRTaG93KSxuLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSYmIW4uYXR0cigidGl0bGUiKSYmbi5hdHRyKCJ0aXRsZSIsbi5kYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpLHRoaXMuX3JlbW92ZURlc2NyaWJlZEJ5KG4pLGEuaGlkaW5nPSEwLGkuc3RvcCghMCksdGhpcy5faGlkZShpLHRoaXMub3B0aW9ucy5oaWRlLGZ1bmN0aW9uKCl7cy5fcmVtb3ZlVG9vbHRpcChlKHRoaXMpKX0pLG4ucmVtb3ZlRGF0YSgidWktdG9vbHRpcC1vcGVuIiksdGhpcy5fb2ZmKG4sIm1vdXNlbGVhdmUgZm9jdXNvdXQga2V5dXAiKSxuWzBdIT09dGhpcy5lbGVtZW50WzBdJiZ0aGlzLl9vZmYobiwicmVtb3ZlIiksdGhpcy5fb2ZmKHRoaXMuZG9jdW1lbnQsIm1vdXNlbW92ZSIpLHQmJiJtb3VzZWxlYXZlIj09PXQudHlwZSYmZS5lYWNoKHRoaXMucGFyZW50cyxmdW5jdGlvbih0LGkpe2UoaS5lbGVtZW50KS5hdHRyKCJ0aXRsZSIsaS50aXRsZSksZGVsZXRlIHMucGFyZW50c1t0XX0pLGEuY2xvc2luZz0hMCx0aGlzLl90cmlnZ2VyKCJjbG9zZSIsdCx7dG9vbHRpcDppfSksYS5oaWRpbmd8fChhLmNsb3Npbmc9ITEpKSx2b2lkIDApOihuLnJlbW92ZURhdGEoInVpLXRvb2x0aXAtb3BlbiIpLHZvaWQgMCl9LF90b29sdGlwOmZ1bmN0aW9uKHQpe3ZhciBpPWUoIjxkaXY+IikuYXR0cigicm9sZSIsInRvb2x0aXAiKS5hZGRDbGFzcygidWktdG9vbHRpcCB1aS13aWRnZXQgdWktY29ybmVyLWFsbCB1aS13aWRnZXQtY29udGVudCAiKyh0aGlzLm9wdGlvbnMudG9vbHRpcENsYXNzfHwiIikpLHM9aS51bmlxdWVJZCgpLmF0dHIoImlkIik7cmV0dXJuIGUoIjxkaXY+IikuYWRkQ2xhc3MoInVpLXRvb2x0aXAtY29udGVudCIpLmFwcGVuZFRvKGkpLGkuYXBwZW5kVG8odGhpcy5kb2N1bWVudFswXS5ib2R5KSx0aGlzLnRvb2x0aXBzW3NdPXtlbGVtZW50OnQsdG9vbHRpcDppfX0sX2ZpbmQ6ZnVuY3Rpb24oZSl7dmFyIHQ9ZS5kYXRhKCJ1aS10b29sdGlwLWlkIik7cmV0dXJuIHQ/dGhpcy50b29sdGlwc1t0XTpudWxsfSxfcmVtb3ZlVG9vbHRpcDpmdW5jdGlvbihlKXtlLnJlbW92ZSgpLGRlbGV0ZSB0aGlzLnRvb2x0aXBzW2UuYXR0cigiaWQiKV19LF9kZXN0cm95OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztlLmVhY2godGhpcy50b29sdGlwcyxmdW5jdGlvbihpLHMpe3ZhciBuPWUuRXZlbnQoImJsdXIiKSxhPXMuZWxlbWVudDtuLnRhcmdldD1uLmN1cnJlbnRUYXJnZXQ9YVswXSx0LmNsb3NlKG4sITApLGUoIiMiK2kpLnJlbW92ZSgpLGEuZGF0YSgidWktdG9vbHRpcC10aXRsZSIpJiYoYS5hdHRyKCJ0aXRsZSIpfHxhLmF0dHIoInRpdGxlIixhLmRhdGEoInVpLXRvb2x0aXAtdGl0bGUiKSksYS5yZW1vdmVEYXRhKCJ1aS10b29sdGlwLXRpdGxlIikpfSksdGhpcy5saXZlUmVnaW9uLnJlbW92ZSgpfX0pO3ZhciBjPSJ1aS1lZmZlY3RzLSIscD1lO2UuZWZmZWN0cz17ZWZmZWN0Ont9fSxmdW5jdGlvbihlLHQpe2Z1bmN0aW9uIGkoZSx0LGkpe3ZhciBzPWRbdC50eXBlXXx8e307cmV0dXJuIG51bGw9PWU/aXx8IXQuZGVmP251bGw6dC5kZWY6KGU9cy5mbG9vcj9+fmU6cGFyc2VGbG9hdChlKSxpc05hTihlKT90LmRlZjpzLm1vZD8oZStzLm1vZCklcy5tb2Q6MD5lPzA6ZT5zLm1heD9zLm1heDplKX1mdW5jdGlvbiBzKGkpe3ZhciBzPWwoKSxuPXMuX3JnYmE9W107cmV0dXJuIGk9aS50b0xvd2VyQ2FzZSgpLGYoaCxmdW5jdGlvbihlLGEpe3ZhciBvLHI9YS5yZS5leGVjKGkpLGg9ciYmYS5wYXJzZShyKSxsPWEuc3BhY2V8fCJyZ2JhIjtyZXR1cm4gaD8obz1zW2xdKGgpLHNbdVtsXS5jYWNoZV09b1t1W2xdLmNhY2hlXSxuPXMuX3JnYmE9by5fcmdiYSwhMSk6dH0pLG4ubGVuZ3RoPygiMCwwLDAsMCI9PT1uLmpvaW4oKSYmZS5leHRlbmQobixhLnRyYW5zcGFyZW50KSxzKTphW2ldfWZ1bmN0aW9uIG4oZSx0LGkpe3JldHVybiBpPShpKzEpJTEsMT42Kmk/ZSs2Kih0LWUpKmk6MT4yKmk/dDoyPjMqaT9lKzYqKHQtZSkqKDIvMy1pKTplfXZhciBhLG89ImJhY2tncm91bmRDb2xvciBib3JkZXJCb3R0b21Db2xvciBib3JkZXJMZWZ0Q29sb3IgYm9yZGVyUmlnaHRDb2xvciBib3JkZXJUb3BDb2xvciBjb2xvciBjb2x1bW5SdWxlQ29sb3Igb3V0bGluZUNvbG9yIHRleHREZWNvcmF0aW9uQ29sb3IgdGV4dEVtcGhhc2lzQ29sb3IiLHI9L14oW1wtK10pPVxzKihcZCtcLj9cZCopLyxoPVt7cmU6L3JnYmE/XChccyooXGR7MSwzfSlccyosXHMqKFxkezEsM30pXHMqLFxzKihcZHsxLDN9KVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bZVsxXSxlWzJdLGVbM10sZVs0XV19fSx7cmU6L3JnYmE/XChccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKixccyooXGQrKD86XC5cZCspPylcJVxzKig/OixccyooXGQ/KD86XC5cZCspPylccyopP1wpLyxwYXJzZTpmdW5jdGlvbihlKXtyZXR1cm5bMi41NSplWzFdLDIuNTUqZVsyXSwyLjU1KmVbM10sZVs0XV19fSx7cmU6LyMoW2EtZjAtOV17Mn0pKFthLWYwLTldezJ9KShbYS1mMC05XXsyfSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdLDE2KSxwYXJzZUludChlWzJdLDE2KSxwYXJzZUludChlWzNdLDE2KV19fSx7cmU6LyMoW2EtZjAtOV0pKFthLWYwLTldKShbYS1mMC05XSkvLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltwYXJzZUludChlWzFdK2VbMV0sMTYpLHBhcnNlSW50KGVbMl0rZVsyXSwxNikscGFyc2VJbnQoZVszXStlWzNdLDE2KV19fSx7cmU6L2hzbGE/XChccyooXGQrKD86XC5cZCspPylccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyosXHMqKFxkKyg/OlwuXGQrKT8pXCVccyooPzosXHMqKFxkPyg/OlwuXGQrKT8pXHMqKT9cKS8sc3BhY2U6ImhzbGEiLHBhcnNlOmZ1bmN0aW9uKGUpe3JldHVybltlWzFdLGVbMl0vMTAwLGVbM10vMTAwLGVbNF1dfX1dLGw9ZS5Db2xvcj1mdW5jdGlvbih0LGkscyxuKXtyZXR1cm4gbmV3IGUuQ29sb3IuZm4ucGFyc2UodCxpLHMsbil9LHU9e3JnYmE6e3Byb3BzOntyZWQ6e2lkeDowLHR5cGU6ImJ5dGUifSxncmVlbjp7aWR4OjEsdHlwZToiYnl0ZSJ9LGJsdWU6e2lkeDoyLHR5cGU6ImJ5dGUifX19LGhzbGE6e3Byb3BzOntodWU6e2lkeDowLHR5cGU6ImRlZ3JlZXMifSxzYXR1cmF0aW9uOntpZHg6MSx0eXBlOiJwZXJjZW50In0sbGlnaHRuZXNzOntpZHg6Mix0eXBlOiJwZXJjZW50In19fX0sZD17ImJ5dGUiOntmbG9vcjohMCxtYXg6MjU1fSxwZXJjZW50OnttYXg6MX0sZGVncmVlczp7bW9kOjM2MCxmbG9vcjohMH19LGM9bC5zdXBwb3J0PXt9LHA9ZSgiPHA+IilbMF0sZj1lLmVhY2g7cC5zdHlsZS5jc3NUZXh0PSJiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMSwxLDEsLjUpIixjLnJnYmE9cC5zdHlsZS5iYWNrZ3JvdW5kQ29sb3IuaW5kZXhPZigicmdiYSIpPi0xLGYodSxmdW5jdGlvbihlLHQpe3QuY2FjaGU9Il8iK2UsdC5wcm9wcy5hbHBoYT17aWR4OjMsdHlwZToicGVyY2VudCIsZGVmOjF9fSksbC5mbj1lLmV4dGVuZChsLnByb3RvdHlwZSx7cGFyc2U6ZnVuY3Rpb24obixvLHIsaCl7aWYobj09PXQpcmV0dXJuIHRoaXMuX3JnYmE9W251bGwsbnVsbCxudWxsLG51bGxdLHRoaXM7KG4uanF1ZXJ5fHxuLm5vZGVUeXBlKSYmKG49ZShuKS5jc3Mobyksbz10KTt2YXIgZD10aGlzLGM9ZS50eXBlKG4pLHA9dGhpcy5fcmdiYT1bXTtyZXR1cm4gbyE9PXQmJihuPVtuLG8scixoXSxjPSJhcnJheSIpLCJzdHJpbmciPT09Yz90aGlzLnBhcnNlKHMobil8fGEuX2RlZmF1bHQpOiJhcnJheSI9PT1jPyhmKHUucmdiYS5wcm9wcyxmdW5jdGlvbihlLHQpe3BbdC5pZHhdPWkoblt0LmlkeF0sdCl9KSx0aGlzKToib2JqZWN0Ij09PWM/KG4gaW5zdGFuY2VvZiBsP2YodSxmdW5jdGlvbihlLHQpe25bdC5jYWNoZV0mJihkW3QuY2FjaGVdPW5bdC5jYWNoZV0uc2xpY2UoKSl9KTpmKHUsZnVuY3Rpb24odCxzKXt2YXIgYT1zLmNhY2hlO2Yocy5wcm9wcyxmdW5jdGlvbihlLHQpe2lmKCFkW2FdJiZzLnRvKXtpZigiYWxwaGEiPT09ZXx8bnVsbD09bltlXSlyZXR1cm47ZFthXT1zLnRvKGQuX3JnYmEpfWRbYV1bdC5pZHhdPWkobltlXSx0LCEwKX0pLGRbYV0mJjA+ZS5pbkFycmF5KG51bGwsZFthXS5zbGljZSgwLDMpKSYmKGRbYV1bM109MSxzLmZyb20mJihkLl9yZ2JhPXMuZnJvbShkW2FdKSkpfSksdGhpcyk6dH0saXM6ZnVuY3Rpb24oZSl7dmFyIGk9bChlKSxzPSEwLG49dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGUsYSl7dmFyIG8scj1pW2EuY2FjaGVdO3JldHVybiByJiYobz1uW2EuY2FjaGVdfHxhLnRvJiZhLnRvKG4uX3JnYmEpfHxbXSxmKGEucHJvcHMsZnVuY3Rpb24oZSxpKXtyZXR1cm4gbnVsbCE9cltpLmlkeF0/cz1yW2kuaWR4XT09PW9baS5pZHhdOnR9KSksc30pLHN9LF9zcGFjZTpmdW5jdGlvbigpe3ZhciBlPVtdLHQ9dGhpcztyZXR1cm4gZih1LGZ1bmN0aW9uKGkscyl7dFtzLmNhY2hlXSYmZS5wdXNoKGkpfSksZS5wb3AoKX0sdHJhbnNpdGlvbjpmdW5jdGlvbihlLHQpe3ZhciBzPWwoZSksbj1zLl9zcGFjZSgpLGE9dVtuXSxvPTA9PT10aGlzLmFscGhhKCk/bCgidHJhbnNwYXJlbnQiKTp0aGlzLHI9b1thLmNhY2hlXXx8YS50byhvLl9yZ2JhKSxoPXIuc2xpY2UoKTtyZXR1cm4gcz1zW2EuY2FjaGVdLGYoYS5wcm9wcyxmdW5jdGlvbihlLG4pe3ZhciBhPW4uaWR4LG89clthXSxsPXNbYV0sdT1kW24udHlwZV18fHt9O251bGwhPT1sJiYobnVsbD09PW8/aFthXT1sOih1Lm1vZCYmKGwtbz51Lm1vZC8yP28rPXUubW9kOm8tbD51Lm1vZC8yJiYoby09dS5tb2QpKSxoW2FdPWkoKGwtbykqdCtvLG4pKSl9KSx0aGlzW25dKGgpfSxibGVuZDpmdW5jdGlvbih0KXtpZigxPT09dGhpcy5fcmdiYVszXSlyZXR1cm4gdGhpczt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpLG49bCh0KS5fcmdiYTtyZXR1cm4gbChlLm1hcChpLGZ1bmN0aW9uKGUsdCl7cmV0dXJuKDEtcykqblt0XStzKmV9KSl9LHRvUmdiYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJyZ2JhKCIsaT1lLm1hcCh0aGlzLl9yZ2JhLGZ1bmN0aW9uKGUsdCl7cmV0dXJuIG51bGw9PWU/dD4yPzE6MDplfSk7cmV0dXJuIDE9PT1pWzNdJiYoaS5wb3AoKSx0PSJyZ2IoIiksdCtpLmpvaW4oKSsiKSJ9LHRvSHNsYVN0cmluZzpmdW5jdGlvbigpe3ZhciB0PSJoc2xhKCIsaT1lLm1hcCh0aGlzLmhzbGEoKSxmdW5jdGlvbihlLHQpe3JldHVybiBudWxsPT1lJiYoZT10PjI/MTowKSx0JiYzPnQmJihlPU1hdGgucm91bmQoMTAwKmUpKyIlIiksZX0pO3JldHVybiAxPT09aVszXSYmKGkucG9wKCksdD0iaHNsKCIpLHQraS5qb2luKCkrIikifSx0b0hleFN0cmluZzpmdW5jdGlvbih0KXt2YXIgaT10aGlzLl9yZ2JhLnNsaWNlKCkscz1pLnBvcCgpO3JldHVybiB0JiZpLnB1c2gofn4oMjU1KnMpKSwiIyIrZS5tYXAoaSxmdW5jdGlvbihlKXtyZXR1cm4gZT0oZXx8MCkudG9TdHJpbmcoMTYpLDE9PT1lLmxlbmd0aD8iMCIrZTplfSkuam9pbigiIil9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLl9yZ2JhWzNdPyJ0cmFuc3BhcmVudCI6dGhpcy50b1JnYmFTdHJpbmcoKX19KSxsLmZuLnBhcnNlLnByb3RvdHlwZT1sLmZuLHUuaHNsYS50bz1mdW5jdGlvbihlKXtpZihudWxsPT1lWzBdfHxudWxsPT1lWzFdfHxudWxsPT1lWzJdKXJldHVybltudWxsLG51bGwsbnVsbCxlWzNdXTt2YXIgdCxpLHM9ZVswXS8yNTUsbj1lWzFdLzI1NSxhPWVbMl0vMjU1LG89ZVszXSxyPU1hdGgubWF4KHMsbixhKSxoPU1hdGgubWluKHMsbixhKSxsPXItaCx1PXIraCxkPS41KnU7cmV0dXJuIHQ9aD09PXI/MDpzPT09cj82MCoobi1hKS9sKzM2MDpuPT09cj82MCooYS1zKS9sKzEyMDo2MCoocy1uKS9sKzI0MCxpPTA9PT1sPzA6LjU+PWQ/bC91OmwvKDItdSksW01hdGgucm91bmQodCklMzYwLGksZCxudWxsPT1vPzE6b119LHUuaHNsYS5mcm9tPWZ1bmN0aW9uKGUpe2lmKG51bGw9PWVbMF18fG51bGw9PWVbMV18fG51bGw9PWVbMl0pcmV0dXJuW251bGwsbnVsbCxudWxsLGVbM11dO3ZhciB0PWVbMF0vMzYwLGk9ZVsxXSxzPWVbMl0sYT1lWzNdLG89LjU+PXM/cyooMStpKTpzK2ktcyppLHI9MipzLW87cmV0dXJuW01hdGgucm91bmQoMjU1Km4ocixvLHQrMS8zKSksTWF0aC5yb3VuZCgyNTUqbihyLG8sdCkpLE1hdGgucm91bmQoMjU1Km4ocixvLHQtMS8zKSksYV19LGYodSxmdW5jdGlvbihzLG4pe3ZhciBhPW4ucHJvcHMsbz1uLmNhY2hlLGg9bi50byx1PW4uZnJvbTtsLmZuW3NdPWZ1bmN0aW9uKHMpe2lmKGgmJiF0aGlzW29dJiYodGhpc1tvXT1oKHRoaXMuX3JnYmEpKSxzPT09dClyZXR1cm4gdGhpc1tvXS5zbGljZSgpO3ZhciBuLHI9ZS50eXBlKHMpLGQ9ImFycmF5Ij09PXJ8fCJvYmplY3QiPT09cj9zOmFyZ3VtZW50cyxjPXRoaXNbb10uc2xpY2UoKTtyZXR1cm4gZihhLGZ1bmN0aW9uKGUsdCl7dmFyIHM9ZFsib2JqZWN0Ij09PXI/ZTp0LmlkeF07bnVsbD09cyYmKHM9Y1t0LmlkeF0pLGNbdC5pZHhdPWkocyx0KX0pLHU/KG49bCh1KGMpKSxuW29dPWMsbik6bChjKX0sZihhLGZ1bmN0aW9uKHQsaSl7bC5mblt0XXx8KGwuZm5bdF09ZnVuY3Rpb24obil7dmFyIGEsbz1lLnR5cGUobiksaD0iYWxwaGEiPT09dD90aGlzLl9oc2xhPyJoc2xhIjoicmdiYSI6cyxsPXRoaXNbaF0oKSx1PWxbaS5pZHhdO3JldHVybiJ1bmRlZmluZWQiPT09bz91OigiZnVuY3Rpb24iPT09byYmKG49bi5jYWxsKHRoaXMsdSksbz1lLnR5cGUobikpLG51bGw9PW4mJmkuZW1wdHk/dGhpczooInN0cmluZyI9PT1vJiYoYT1yLmV4ZWMobiksYSYmKG49dStwYXJzZUZsb2F0KGFbMl0pKigiKyI9PT1hWzFdPzE6LTEpKSksbFtpLmlkeF09bix0aGlzW2hdKGwpKSl9KX0pfSksbC5ob29rPWZ1bmN0aW9uKHQpe3ZhciBpPXQuc3BsaXQoIiAiKTtmKGksZnVuY3Rpb24odCxpKXtlLmNzc0hvb2tzW2ldPXtzZXQ6ZnVuY3Rpb24odCxuKXt2YXIgYSxvLHI9IiI7aWYoInRyYW5zcGFyZW50IiE9PW4mJigic3RyaW5nIiE9PWUudHlwZShuKXx8KGE9cyhuKSkpKXtpZihuPWwoYXx8biksIWMucmdiYSYmMSE9PW4uX3JnYmFbM10pe2ZvcihvPSJiYWNrZ3JvdW5kQ29sb3IiPT09aT90LnBhcmVudE5vZGU6dDsoIiI9PT1yfHwidHJhbnNwYXJlbnQiPT09cikmJm8mJm8uc3R5bGU7KXRyeXtyPWUuY3NzKG8sImJhY2tncm91bmRDb2xvciIpLG89by5wYXJlbnROb2RlfWNhdGNoKGgpe31uPW4uYmxlbmQociYmInRyYW5zcGFyZW50IiE9PXI/cjoiX2RlZmF1bHQiKX1uPW4udG9SZ2JhU3RyaW5nKCl9dHJ5e3Quc3R5bGVbaV09bn1jYXRjaChoKXt9fX0sZS5meC5zdGVwW2ldPWZ1bmN0aW9uKHQpe3QuY29sb3JJbml0fHwodC5zdGFydD1sKHQuZWxlbSxpKSx0LmVuZD1sKHQuZW5kKSx0LmNvbG9ySW5pdD0hMCksZS5jc3NIb29rc1tpXS5zZXQodC5lbGVtLHQuc3RhcnQudHJhbnNpdGlvbih0LmVuZCx0LnBvcykpfX0pfSxsLmhvb2sobyksZS5jc3NIb29rcy5ib3JkZXJDb2xvcj17ZXhwYW5kOmZ1bmN0aW9uKGUpe3ZhciB0PXt9O3JldHVybiBmKFsiVG9wIiwiUmlnaHQiLCJCb3R0b20iLCJMZWZ0Il0sZnVuY3Rpb24oaSxzKXt0WyJib3JkZXIiK3MrIkNvbG9yIl09ZX0pLHR9fSxhPWUuQ29sb3IubmFtZXM9e2FxdWE6IiMwMGZmZmYiLGJsYWNrOiIjMDAwMDAwIixibHVlOiIjMDAwMGZmIixmdWNoc2lhOiIjZmYwMGZmIixncmF5OiIjODA4MDgwIixncmVlbjoiIzAwODAwMCIsbGltZToiIzAwZmYwMCIsbWFyb29uOiIjODAwMDAwIixuYXZ5OiIjMDAwMDgwIixvbGl2ZToiIzgwODAwMCIscHVycGxlOiIjODAwMDgwIixyZWQ6IiNmZjAwMDAiLHNpbHZlcjoiI2MwYzBjMCIsdGVhbDoiIzAwODA4MCIsd2hpdGU6IiNmZmZmZmYiLHllbGxvdzoiI2ZmZmYwMCIsdHJhbnNwYXJlbnQ6W251bGwsbnVsbCxudWxsLDBdLF9kZWZhdWx0OiIjZmZmZmZmIn19KHApLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0KXt2YXIgaSxzLG49dC5vd25lckRvY3VtZW50LmRlZmF1bHRWaWV3P3Qub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCk6dC5jdXJyZW50U3R5bGUsYT17fTtpZihuJiZuLmxlbmd0aCYmblswXSYmbltuWzBdXSlmb3Iocz1uLmxlbmd0aDtzLS07KWk9bltzXSwic3RyaW5nIj09dHlwZW9mIG5baV0mJihhW2UuY2FtZWxDYXNlKGkpXT1uW2ldKTtlbHNlIGZvcihpIGluIG4pInN0cmluZyI9PXR5cGVvZiBuW2ldJiYoYVtpXT1uW2ldKTtyZXR1cm4gYX1mdW5jdGlvbiBpKHQsaSl7dmFyIHMsYSxvPXt9O2ZvcihzIGluIGkpYT1pW3NdLHRbc10hPT1hJiYobltzXXx8KGUuZnguc3RlcFtzXXx8IWlzTmFOKHBhcnNlRmxvYXQoYSkpKSYmKG9bc109YSkpO3JldHVybiBvfXZhciBzPVsiYWRkIiwicmVtb3ZlIiwidG9nZ2xlIl0sbj17Ym9yZGVyOjEsYm9yZGVyQm90dG9tOjEsYm9yZGVyQ29sb3I6MSxib3JkZXJMZWZ0OjEsYm9yZGVyUmlnaHQ6MSxib3JkZXJUb3A6MSxib3JkZXJXaWR0aDoxLG1hcmdpbjoxLHBhZGRpbmc6MX07ZS5lYWNoKFsiYm9yZGVyTGVmdFN0eWxlIiwiYm9yZGVyUmlnaHRTdHlsZSIsImJvcmRlckJvdHRvbVN0eWxlIiwiYm9yZGVyVG9wU3R5bGUiXSxmdW5jdGlvbih0LGkpe2UuZnguc3RlcFtpXT1mdW5jdGlvbihlKXsoIm5vbmUiIT09ZS5lbmQmJiFlLnNldEF0dHJ8fDE9PT1lLnBvcyYmIWUuc2V0QXR0cikmJihwLnN0eWxlKGUuZWxlbSxpLGUuZW5kKSxlLnNldEF0dHI9ITApfX0pLGUuZm4uYWRkQmFja3x8KGUuZm4uYWRkQmFjaz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5hZGQobnVsbD09ZT90aGlzLnByZXZPYmplY3Q6dGhpcy5wcmV2T2JqZWN0LmZpbHRlcihlKSl9KSxlLmVmZmVjdHMuYW5pbWF0ZUNsYXNzPWZ1bmN0aW9uKG4sYSxvLHIpe3ZhciBoPWUuc3BlZWQoYSxvLHIpO3JldHVybiB0aGlzLnF1ZXVlKGZ1bmN0aW9uKCl7dmFyIGEsbz1lKHRoaXMpLHI9by5hdHRyKCJjbGFzcyIpfHwiIixsPWguY2hpbGRyZW4/by5maW5kKCIqIikuYWRkQmFjaygpOm87bD1sLm1hcChmdW5jdGlvbigpe3ZhciBpPWUodGhpcyk7cmV0dXJue2VsOmksc3RhcnQ6dCh0aGlzKX19KSxhPWZ1bmN0aW9uKCl7ZS5lYWNoKHMsZnVuY3Rpb24oZSx0KXtuW3RdJiZvW3QrIkNsYXNzIl0oblt0XSl9KX0sYSgpLGw9bC5tYXAoZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lbmQ9dCh0aGlzLmVsWzBdKSx0aGlzLmRpZmY9aSh0aGlzLnN0YXJ0LHRoaXMuZW5kKSx0aGlzfSksby5hdHRyKCJjbGFzcyIsciksbD1sLm1hcChmdW5jdGlvbigpe3ZhciB0PXRoaXMsaT1lLkRlZmVycmVkKCkscz1lLmV4dGVuZCh7fSxoLHtxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpe2kucmVzb2x2ZSh0KX19KTtyZXR1cm4gdGhpcy5lbC5hbmltYXRlKHRoaXMuZGlmZixzKSxpLnByb21pc2UoKX0pLGUud2hlbi5hcHBseShlLGwuZ2V0KCkpLmRvbmUoZnVuY3Rpb24oKXthKCksZS5lYWNoKGFyZ3VtZW50cyxmdW5jdGlvbigpe3ZhciB0PXRoaXMuZWw7ZS5lYWNoKHRoaXMuZGlmZixmdW5jdGlvbihlKXt0LmNzcyhlLCIiKX0pfSksaC5jb21wbGV0ZS5jYWxsKG9bMF0pfSl9KX0sZS5mbi5leHRlbmQoe2FkZENsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gcz9lLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7YWRkOml9LHMsbixhKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX19KGUuZm4uYWRkQ2xhc3MpLHJlbW92ZUNsYXNzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihpLHMsbixhKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHtyZW1vdmU6aX0scyxuLGEpOnQuYXBwbHkodGhpcyxhcmd1bWVudHMpfX0oZS5mbi5yZW1vdmVDbGFzcyksdG9nZ2xlQ2xhc3M6ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGkscyxuLGEsbyl7cmV0dXJuImJvb2xlYW4iPT10eXBlb2Ygc3x8dm9pZCAwPT09cz9uP2UuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHM/e2FkZDppfTp7cmVtb3ZlOml9LG4sYSxvKTp0LmFwcGx5KHRoaXMsYXJndW1lbnRzKTplLmVmZmVjdHMuYW5pbWF0ZUNsYXNzLmNhbGwodGhpcyx7dG9nZ2xlOml9LHMsbixhKX19KGUuZm4udG9nZ2xlQ2xhc3MpLHN3aXRjaENsYXNzOmZ1bmN0aW9uKHQsaSxzLG4sYSl7cmV0dXJuIGUuZWZmZWN0cy5hbmltYXRlQ2xhc3MuY2FsbCh0aGlzLHthZGQ6aSxyZW1vdmU6dH0scyxuLGEpfX0pfSgpLGZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCh0LGkscyxuKXtyZXR1cm4gZS5pc1BsYWluT2JqZWN0KHQpJiYoaT10LHQ9dC5lZmZlY3QpLHQ9e2VmZmVjdDp0fSxudWxsPT1pJiYoaT17fSksZS5pc0Z1bmN0aW9uKGkpJiYobj1pLHM9bnVsbCxpPXt9KSwoIm51bWJlciI9PXR5cGVvZiBpfHxlLmZ4LnNwZWVkc1tpXSkmJihuPXMscz1pLGk9e30pLGUuaXNGdW5jdGlvbihzKSYmKG49cyxzPW51bGwpLGkmJmUuZXh0ZW5kKHQsaSkscz1zfHxpLmR1cmF0aW9uLHQuZHVyYXRpb249ZS5meC5vZmY/MDoibnVtYmVyIj09dHlwZW9mIHM/czpzIGluIGUuZnguc3BlZWRzP2UuZnguc3BlZWRzW3NdOmUuZnguc3BlZWRzLl9kZWZhdWx0LHQuY29tcGxldGU9bnx8aS5jb21wbGV0ZSx0fWZ1bmN0aW9uIGkodCl7cmV0dXJuIXR8fCJudW1iZXIiPT10eXBlb2YgdHx8ZS5meC5zcGVlZHNbdF0/ITA6InN0cmluZyIhPXR5cGVvZiB0fHxlLmVmZmVjdHMuZWZmZWN0W3RdP2UuaXNGdW5jdGlvbih0KT8hMDoib2JqZWN0IiE9dHlwZW9mIHR8fHQuZWZmZWN0PyExOiEwOiEwfWUuZXh0ZW5kKGUuZWZmZWN0cyx7dmVyc2lvbjoiMS4xMS40IixzYXZlOmZ1bmN0aW9uKGUsdCl7Zm9yKHZhciBpPTA7dC5sZW5ndGg+aTtpKyspbnVsbCE9PXRbaV0mJmUuZGF0YShjK3RbaV0sZVswXS5zdHlsZVt0W2ldXSl9LHJlc3RvcmU6ZnVuY3Rpb24oZSx0KXt2YXIgaSxzO2ZvcihzPTA7dC5sZW5ndGg+cztzKyspbnVsbCE9PXRbc10mJihpPWUuZGF0YShjK3Rbc10pLHZvaWQgMD09PWkmJihpPSIiKSxlLmNzcyh0W3NdLGkpKX0sc2V0TW9kZTpmdW5jdGlvbihlLHQpe3JldHVybiJ0b2dnbGUiPT09dCYmKHQ9ZS5pcygiOmhpZGRlbiIpPyJzaG93IjoiaGlkZSIpLHR9LGdldEJhc2VsaW5lOmZ1bmN0aW9uKGUsdCl7dmFyIGkscztzd2l0Y2goZVswXSl7Y2FzZSJ0b3AiOmk9MDticmVhaztjYXNlIm1pZGRsZSI6aT0uNTticmVhaztjYXNlImJvdHRvbSI6aT0xO2JyZWFrO2RlZmF1bHQ6aT1lWzBdL3QuaGVpZ2h0fXN3aXRjaChlWzFdKXtjYXNlImxlZnQiOnM9MDticmVhaztjYXNlImNlbnRlciI6cz0uNTticmVhaztjYXNlInJpZ2h0IjpzPTE7YnJlYWs7ZGVmYXVsdDpzPWVbMV0vdC53aWR0aH1yZXR1cm57eDpzLHk6aX19LGNyZWF0ZVdyYXBwZXI6ZnVuY3Rpb24odCl7aWYodC5wYXJlbnQoKS5pcygiLnVpLWVmZmVjdHMtd3JhcHBlciIpKXJldHVybiB0LnBhcmVudCgpO3ZhciBpPXt3aWR0aDp0Lm91dGVyV2lkdGgoITApLGhlaWdodDp0Lm91dGVySGVpZ2h0KCEwKSwiZmxvYXQiOnQuY3NzKCJmbG9hdCIpfSxzPWUoIjxkaXY+PC9kaXY+IikuYWRkQ2xhc3MoInVpLWVmZmVjdHMtd3JhcHBlciIpLmNzcyh7Zm9udFNpemU6IjEwMCUiLGJhY2tncm91bmQ6InRyYW5zcGFyZW50Iixib3JkZXI6Im5vbmUiLG1hcmdpbjowLHBhZGRpbmc6MH0pLG49e3dpZHRoOnQud2lkdGgoKSxoZWlnaHQ6dC5oZWlnaHQoKX0sYT1kb2N1bWVudC5hY3RpdmVFbGVtZW50O3RyeXthLmlkfWNhdGNoKG8pe2E9ZG9jdW1lbnQuYm9keX1yZXR1cm4gdC53cmFwKHMpLCh0WzBdPT09YXx8ZS5jb250YWlucyh0WzBdLGEpKSYmZShhKS5mb2N1cygpLHM9dC5wYXJlbnQoKSwic3RhdGljIj09PXQuY3NzKCJwb3NpdGlvbiIpPyhzLmNzcyh7cG9zaXRpb246InJlbGF0aXZlIn0pLHQuY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUifSkpOihlLmV4dGVuZChpLHtwb3NpdGlvbjp0LmNzcygicG9zaXRpb24iKSx6SW5kZXg6dC5jc3MoInotaW5kZXgiKX0pLGUuZWFjaChbInRvcCIsImxlZnQiLCJib3R0b20iLCJyaWdodCJdLGZ1bmN0aW9uKGUscyl7aVtzXT10LmNzcyhzKSxpc05hTihwYXJzZUludChpW3NdLDEwKSkmJihpW3NdPSJhdXRvIil9KSx0LmNzcyh7cG9zaXRpb246InJlbGF0aXZlIix0b3A6MCxsZWZ0OjAscmlnaHQ6ImF1dG8iLGJvdHRvbToiYXV0byJ9KSksdC5jc3Mobikscy5jc3MoaSkuc2hvdygpfSxyZW1vdmVXcmFwcGVyOmZ1bmN0aW9uKHQpe3ZhciBpPWRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7cmV0dXJuIHQucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKSYmKHQucGFyZW50KCkucmVwbGFjZVdpdGgodCksKHRbMF09PT1pfHxlLmNvbnRhaW5zKHRbMF0saSkpJiZlKGkpLmZvY3VzKCkpLHR9LHNldFRyYW5zaXRpb246ZnVuY3Rpb24odCxpLHMsbil7cmV0dXJuIG49bnx8e30sZS5lYWNoKGksZnVuY3Rpb24oZSxpKXt2YXIgYT10LmNzc1VuaXQoaSk7YVswXT4wJiYobltpXT1hWzBdKnMrYVsxXSl9KSxufX0pLGUuZm4uZXh0ZW5kKHtlZmZlY3Q6ZnVuY3Rpb24oKXtmdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGkoKXtlLmlzRnVuY3Rpb24oYSkmJmEuY2FsbChuWzBdKSxlLmlzRnVuY3Rpb24odCkmJnQoKX12YXIgbj1lKHRoaXMpLGE9cy5jb21wbGV0ZSxyPXMubW9kZTsobi5pcygiOmhpZGRlbiIpPyJoaWRlIj09PXI6InNob3ciPT09cik/KG5bcl0oKSxpKCkpOm8uY2FsbChuWzBdLHMsaSl9dmFyIHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbj1zLm1vZGUsYT1zLnF1ZXVlLG89ZS5lZmZlY3RzLmVmZmVjdFtzLmVmZmVjdF07cmV0dXJuIGUuZngub2ZmfHwhbz9uP3RoaXNbbl0ocy5kdXJhdGlvbixzLmNvbXBsZXRlKTp0aGlzLmVhY2goZnVuY3Rpb24oKXtzLmNvbXBsZXRlJiZzLmNvbXBsZXRlLmNhbGwodGhpcyl9KTphPT09ITE/dGhpcy5lYWNoKGkpOnRoaXMucXVldWUoYXx8ImZ4IixpKX0sc2hvdzpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKSlyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0ic2hvdyIsdGhpcy5lZmZlY3QuY2FsbCh0aGlzLG4pfX0oZS5mbi5zaG93KSxoaWRlOmZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbihzKXtpZihpKHMpKXJldHVybiBlLmFwcGx5KHRoaXMsYXJndW1lbnRzKTt2YXIgbj10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gbi5tb2RlPSJoaWRlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLmhpZGUpLHRvZ2dsZTpmdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24ocyl7aWYoaShzKXx8ImJvb2xlYW4iPT10eXBlb2YgcylyZXR1cm4gZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7dmFyIG49dC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuIG4ubW9kZT0idG9nZ2xlIix0aGlzLmVmZmVjdC5jYWxsKHRoaXMsbil9fShlLmZuLnRvZ2dsZSksY3NzVW5pdDpmdW5jdGlvbih0KXt2YXIgaT10aGlzLmNzcyh0KSxzPVtdO3JldHVybiBlLmVhY2goWyJlbSIsInB4IiwiJSIsInB0Il0sZnVuY3Rpb24oZSx0KXtpLmluZGV4T2YodCk+MCYmKHM9W3BhcnNlRmxvYXQoaSksdF0pfSksc319KX0oKSxmdW5jdGlvbigpe3ZhciB0PXt9O2UuZWFjaChbIlF1YWQiLCJDdWJpYyIsIlF1YXJ0IiwiUXVpbnQiLCJFeHBvIl0sZnVuY3Rpb24oZSxpKXt0W2ldPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnBvdyh0LGUrMil9fSksZS5leHRlbmQodCx7U2luZTpmdW5jdGlvbihlKXtyZXR1cm4gMS1NYXRoLmNvcyhlKk1hdGguUEkvMil9LENpcmM6ZnVuY3Rpb24oZSl7cmV0dXJuIDEtTWF0aC5zcXJ0KDEtZSplKX0sRWxhc3RpYzpmdW5jdGlvbihlKXtyZXR1cm4gMD09PWV8fDE9PT1lP2U6LU1hdGgucG93KDIsOCooZS0xKSkqTWF0aC5zaW4oKDgwKihlLTEpLTcuNSkqTWF0aC5QSS8xNSl9LEJhY2s6ZnVuY3Rpb24oZSl7cmV0dXJuIGUqZSooMyplLTIpfSxCb3VuY2U6ZnVuY3Rpb24oZSl7Zm9yKHZhciB0LGk9NDsoKHQ9TWF0aC5wb3coMiwtLWkpKS0xKS8xMT5lOyk7cmV0dXJuIDEvTWF0aC5wb3coNCwzLWkpLTcuNTYyNSpNYXRoLnBvdygoMyp0LTIpLzIyLWUsMil9fSksZS5lYWNoKHQsZnVuY3Rpb24odCxpKXtlLmVhc2luZ1siZWFzZUluIit0XT1pLGUuZWFzaW5nWyJlYXNlT3V0Iit0XT1mdW5jdGlvbihlKXtyZXR1cm4gMS1pKDEtZSl9LGUuZWFzaW5nWyJlYXNlSW5PdXQiK3RdPWZ1bmN0aW9uKGUpe3JldHVybi41PmU/aSgyKmUpLzI6MS1pKC0yKmUrMikvMn19KX0oKSxlLmVmZmVjdHMsZS5lZmZlY3RzLmVmZmVjdC5ibGluZD1mdW5jdGlvbih0LGkpe3ZhciBzLG4sYSxvPWUodGhpcykscj0vdXB8ZG93bnx2ZXJ0aWNhbC8saD0vdXB8bGVmdHx2ZXJ0aWNhbHxob3Jpem9udGFsLyxsPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHU9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksZD10LmRpcmVjdGlvbnx8InVwIixjPXIudGVzdChkKSxwPWM/ImhlaWdodCI6IndpZHRoIixmPWM/InRvcCI6ImxlZnQiLG09aC50ZXN0KGQpLGc9e30sdj0ic2hvdyI9PT11O28ucGFyZW50KCkuaXMoIi51aS1lZmZlY3RzLXdyYXBwZXIiKT9lLmVmZmVjdHMuc2F2ZShvLnBhcmVudCgpLGwpOmUuZWZmZWN0cy5zYXZlKG8sbCksby5zaG93KCkscz1lLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksbj1zW3BdKCksYT1wYXJzZUZsb2F0KHMuY3NzKGYpKXx8MCxnW3BdPXY/bjowLG18fChvLmNzcyhjPyJib3R0b20iOiJyaWdodCIsMCkuY3NzKGM/InRvcCI6ImxlZnQiLCJhdXRvIikuY3NzKHtwb3NpdGlvbjoiYWJzb2x1dGUifSksZ1tmXT12P2E6bithKSx2JiYocy5jc3MocCwwKSxtfHxzLmNzcyhmLGErbikpLHMuYW5pbWF0ZShnLHtkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxxdWV1ZTohMSxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PXUmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sbCksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpCn19KX0sZS5lZmZlY3RzLmVmZmVjdC5ib3VuY2U9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGEsbz1lKHRoaXMpLHI9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0saD1lLmVmZmVjdHMuc2V0TW9kZShvLHQubW9kZXx8ImVmZmVjdCIpLGw9ImhpZGUiPT09aCx1PSJzaG93Ij09PWgsZD10LmRpcmVjdGlvbnx8InVwIixjPXQuZGlzdGFuY2UscD10LnRpbWVzfHw1LGY9MipwKyh1fHxsPzE6MCksbT10LmR1cmF0aW9uL2YsZz10LmVhc2luZyx2PSJ1cCI9PT1kfHwiZG93biI9PT1kPyJ0b3AiOiJsZWZ0Iix5PSJ1cCI9PT1kfHwibGVmdCI9PT1kLGI9by5xdWV1ZSgpLF89Yi5sZW5ndGg7Zm9yKCh1fHxsKSYmci5wdXNoKCJvcGFjaXR5IiksZS5lZmZlY3RzLnNhdmUobyxyKSxvLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihvKSxjfHwoYz1vWyJ0b3AiPT09dj8ib3V0ZXJIZWlnaHQiOiJvdXRlcldpZHRoIl0oKS8zKSx1JiYoYT17b3BhY2l0eToxfSxhW3ZdPTAsby5jc3MoIm9wYWNpdHkiLDApLmNzcyh2LHk/MiotYzoyKmMpLmFuaW1hdGUoYSxtLGcpKSxsJiYoYy89TWF0aC5wb3coMixwLTEpKSxhPXt9LGFbdl09MCxzPTA7cD5zO3MrKyluPXt9LG5bdl09KHk/Ii09IjoiKz0iKStjLG8uYW5pbWF0ZShuLG0sZykuYW5pbWF0ZShhLG0sZyksYz1sPzIqYzpjLzI7bCYmKG49e29wYWNpdHk6MH0sblt2XT0oeT8iLT0iOiIrPSIpK2Msby5hbmltYXRlKG4sbSxnKSksby5xdWV1ZShmdW5jdGlvbigpe2wmJm8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sciksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfSksXz4xJiZiLnNwbGljZS5hcHBseShiLFsxLDBdLmNvbmNhdChiLnNwbGljZShfLGYrMSkpKSxvLmRlcXVldWUoKX0sZS5lZmZlY3RzLmVmZmVjdC5jbGlwPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89ZSh0aGlzKSxyPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLGg9ZS5lZmZlY3RzLnNldE1vZGUobyx0Lm1vZGV8fCJoaWRlIiksbD0ic2hvdyI9PT1oLHU9dC5kaXJlY3Rpb258fCJ2ZXJ0aWNhbCIsZD0idmVydGljYWwiPT09dSxjPWQ/ImhlaWdodCI6IndpZHRoIixwPWQ/InRvcCI6ImxlZnQiLGY9e307ZS5lZmZlY3RzLnNhdmUobyxyKSxvLnNob3coKSxzPWUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxuPSJJTUciPT09b1swXS50YWdOYW1lP3M6byxhPW5bY10oKSxsJiYobi5jc3MoYywwKSxuLmNzcyhwLGEvMikpLGZbY109bD9hOjAsZltwXT1sPzA6YS8yLG4uYW5pbWF0ZShmLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpe2x8fG8uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG8sciksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmRyb3A9ZnVuY3Rpb24odCxpKXt2YXIgcyxuPWUodGhpcyksYT1bInBvc2l0aW9uIiwidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Iiwib3BhY2l0eSIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImhpZGUiKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWg/InBvcyI6Im5lZyIsZD17b3BhY2l0eTpyPzE6MH07ZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxzPXQuZGlzdGFuY2V8fG5bInRvcCI9PT1sPyJvdXRlckhlaWdodCI6Im91dGVyV2lkdGgiXSghMCkvMixyJiZuLmNzcygib3BhY2l0eSIsMCkuY3NzKGwsInBvcyI9PT11Py1zOnMpLGRbbF09KHI/InBvcyI9PT11PyIrPSI6Ii09IjoicG9zIj09PXU/Ii09IjoiKz0iKStzLG4uYW5pbWF0ZShkLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpeyJoaWRlIj09PW8mJm4uaGlkZSgpLGUuZWZmZWN0cy5yZXN0b3JlKG4sYSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobiksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LmV4cGxvZGU9ZnVuY3Rpb24odCxpKXtmdW5jdGlvbiBzKCl7Yi5wdXNoKHRoaXMpLGIubGVuZ3RoPT09ZCpjJiZuKCl9ZnVuY3Rpb24gbigpe3AuY3NzKHt2aXNpYmlsaXR5OiJ2aXNpYmxlIn0pLGUoYikucmVtb3ZlKCksbXx8cC5oaWRlKCksaSgpfXZhciBhLG8scixoLGwsdSxkPXQucGllY2VzP01hdGgucm91bmQoTWF0aC5zcXJ0KHQucGllY2VzKSk6MyxjPWQscD1lKHRoaXMpLGY9ZS5lZmZlY3RzLnNldE1vZGUocCx0Lm1vZGV8fCJoaWRlIiksbT0ic2hvdyI9PT1mLGc9cC5zaG93KCkuY3NzKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikub2Zmc2V0KCksdj1NYXRoLmNlaWwocC5vdXRlcldpZHRoKCkvYykseT1NYXRoLmNlaWwocC5vdXRlckhlaWdodCgpL2QpLGI9W107Zm9yKGE9MDtkPmE7YSsrKWZvcihoPWcudG9wK2EqeSx1PWEtKGQtMSkvMixvPTA7Yz5vO28rKylyPWcubGVmdCtvKnYsbD1vLShjLTEpLzIscC5jbG9uZSgpLmFwcGVuZFRvKCJib2R5Iikud3JhcCgiPGRpdj48L2Rpdj4iKS5jc3Moe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsdmlzaWJpbGl0eToidmlzaWJsZSIsbGVmdDotbyp2LHRvcDotYSp5fSkucGFyZW50KCkuYWRkQ2xhc3MoInVpLWVmZmVjdHMtZXhwbG9kZSIpLmNzcyh7cG9zaXRpb246ImFic29sdXRlIixvdmVyZmxvdzoiaGlkZGVuIix3aWR0aDp2LGhlaWdodDp5LGxlZnQ6cisobT9sKnY6MCksdG9wOmgrKG0/dSp5OjApLG9wYWNpdHk6bT8wOjF9KS5hbmltYXRlKHtsZWZ0OnIrKG0/MDpsKnYpLHRvcDpoKyhtPzA6dSp5KSxvcGFjaXR5Om0/MTowfSx0LmR1cmF0aW9ufHw1MDAsdC5lYXNpbmcscyl9LGUuZWZmZWN0cy5lZmZlY3QuZmFkZT1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8InRvZ2dsZSIpO3MuYW5pbWF0ZSh7b3BhY2l0eTpufSx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6aX0pfSxlLmVmZmVjdHMuZWZmZWN0LmZvbGQ9ZnVuY3Rpb24odCxpKXt2YXIgcyxuLGE9ZSh0aGlzKSxvPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJoZWlnaHQiLCJ3aWR0aCJdLHI9ZS5lZmZlY3RzLnNldE1vZGUoYSx0Lm1vZGV8fCJoaWRlIiksaD0ic2hvdyI9PT1yLGw9ImhpZGUiPT09cix1PXQuc2l6ZXx8MTUsZD0vKFswLTldKyklLy5leGVjKHUpLGM9ISF0Lmhvcml6Rmlyc3QscD1oIT09YyxmPXA/WyJ3aWR0aCIsImhlaWdodCJdOlsiaGVpZ2h0Iiwid2lkdGgiXSxtPXQuZHVyYXRpb24vMixnPXt9LHY9e307ZS5lZmZlY3RzLnNhdmUoYSxvKSxhLnNob3coKSxzPWUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKGEpLmNzcyh7b3ZlcmZsb3c6ImhpZGRlbiJ9KSxuPXA/W3Mud2lkdGgoKSxzLmhlaWdodCgpXTpbcy5oZWlnaHQoKSxzLndpZHRoKCldLGQmJih1PXBhcnNlSW50KGRbMV0sMTApLzEwMCpuW2w/MDoxXSksaCYmcy5jc3MoYz97aGVpZ2h0OjAsd2lkdGg6dX06e2hlaWdodDp1LHdpZHRoOjB9KSxnW2ZbMF1dPWg/blswXTp1LHZbZlsxXV09aD9uWzFdOjAscy5hbmltYXRlKGcsbSx0LmVhc2luZykuYW5pbWF0ZSh2LG0sdC5lYXNpbmcsZnVuY3Rpb24oKXtsJiZhLmhpZGUoKSxlLmVmZmVjdHMucmVzdG9yZShhLG8pLGUuZWZmZWN0cy5yZW1vdmVXcmFwcGVyKGEpLGkoKX0pfSxlLmVmZmVjdHMuZWZmZWN0LmhpZ2hsaWdodD1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1bImJhY2tncm91bmRJbWFnZSIsImJhY2tncm91bmRDb2xvciIsIm9wYWNpdHkiXSxhPWUuZWZmZWN0cy5zZXRNb2RlKHMsdC5tb2RlfHwic2hvdyIpLG89e2JhY2tncm91bmRDb2xvcjpzLmNzcygiYmFja2dyb3VuZENvbG9yIil9OyJoaWRlIj09PWEmJihvLm9wYWNpdHk9MCksZS5lZmZlY3RzLnNhdmUocyxuKSxzLnNob3coKS5jc3Moe2JhY2tncm91bmRJbWFnZToibm9uZSIsYmFja2dyb3VuZENvbG9yOnQuY29sb3J8fCIjZmZmZjk5In0pLmFuaW1hdGUobyx7cXVldWU6ITEsZHVyYXRpb246dC5kdXJhdGlvbixlYXNpbmc6dC5lYXNpbmcsY29tcGxldGU6ZnVuY3Rpb24oKXsiaGlkZSI9PT1hJiZzLmhpZGUoKSxlLmVmZmVjdHMucmVzdG9yZShzLG4pLGkoKX19KX0sZS5lZmZlY3RzLmVmZmVjdC5zaXplPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbixhLG89ZSh0aGlzKSxyPVsicG9zaXRpb24iLCJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiLCJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Iiwib3BhY2l0eSJdLGg9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIm92ZXJmbG93Iiwib3BhY2l0eSJdLGw9WyJ3aWR0aCIsImhlaWdodCIsIm92ZXJmbG93Il0sdT1bImZvbnRTaXplIl0sZD1bImJvcmRlclRvcFdpZHRoIiwiYm9yZGVyQm90dG9tV2lkdGgiLCJwYWRkaW5nVG9wIiwicGFkZGluZ0JvdHRvbSJdLGM9WyJib3JkZXJMZWZ0V2lkdGgiLCJib3JkZXJSaWdodFdpZHRoIiwicGFkZGluZ0xlZnQiLCJwYWRkaW5nUmlnaHQiXSxwPWUuZWZmZWN0cy5zZXRNb2RlKG8sdC5tb2RlfHwiZWZmZWN0IiksZj10LnJlc3RvcmV8fCJlZmZlY3QiIT09cCxtPXQuc2NhbGV8fCJib3RoIixnPXQub3JpZ2lufHxbIm1pZGRsZSIsImNlbnRlciJdLHY9by5jc3MoInBvc2l0aW9uIikseT1mP3I6aCxiPXtoZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTsic2hvdyI9PT1wJiZvLnNob3coKSxzPXtoZWlnaHQ6by5oZWlnaHQoKSx3aWR0aDpvLndpZHRoKCksb3V0ZXJIZWlnaHQ6by5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6by5vdXRlcldpZHRoKCl9LCJ0b2dnbGUiPT09dC5tb2RlJiYic2hvdyI9PT1wPyhvLmZyb209dC50b3x8YixvLnRvPXQuZnJvbXx8cyk6KG8uZnJvbT10LmZyb218fCgic2hvdyI9PT1wP2I6cyksby50bz10LnRvfHwoImhpZGUiPT09cD9iOnMpKSxhPXtmcm9tOnt5Om8uZnJvbS5oZWlnaHQvcy5oZWlnaHQseDpvLmZyb20ud2lkdGgvcy53aWR0aH0sdG86e3k6by50by5oZWlnaHQvcy5oZWlnaHQseDpvLnRvLndpZHRoL3Mud2lkdGh9fSwoImJveCI9PT1tfHwiYm90aCI9PT1tKSYmKGEuZnJvbS55IT09YS50by55JiYoeT15LmNvbmNhdChkKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxkLGEuZnJvbS55LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLGQsYS50by55LG8udG8pKSxhLmZyb20ueCE9PWEudG8ueCYmKHk9eS5jb25jYXQoYyksby5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKG8sYyxhLmZyb20ueCxvLmZyb20pLG8udG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyxjLGEudG8ueCxvLnRvKSkpLCgiY29udGVudCI9PT1tfHwiYm90aCI9PT1tKSYmYS5mcm9tLnkhPT1hLnRvLnkmJih5PXkuY29uY2F0KHUpLmNvbmNhdChsKSxvLmZyb209ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24obyx1LGEuZnJvbS55LG8uZnJvbSksby50bz1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihvLHUsYS50by55LG8udG8pKSxlLmVmZmVjdHMuc2F2ZShvLHkpLG8uc2hvdygpLGUuZWZmZWN0cy5jcmVhdGVXcmFwcGVyKG8pLG8uY3NzKCJvdmVyZmxvdyIsImhpZGRlbiIpLmNzcyhvLmZyb20pLGcmJihuPWUuZWZmZWN0cy5nZXRCYXNlbGluZShnLHMpLG8uZnJvbS50b3A9KHMub3V0ZXJIZWlnaHQtby5vdXRlckhlaWdodCgpKSpuLnksby5mcm9tLmxlZnQ9KHMub3V0ZXJXaWR0aC1vLm91dGVyV2lkdGgoKSkqbi54LG8udG8udG9wPShzLm91dGVySGVpZ2h0LW8udG8ub3V0ZXJIZWlnaHQpKm4ueSxvLnRvLmxlZnQ9KHMub3V0ZXJXaWR0aC1vLnRvLm91dGVyV2lkdGgpKm4ueCksby5jc3Moby5mcm9tKSwoImNvbnRlbnQiPT09bXx8ImJvdGgiPT09bSkmJihkPWQuY29uY2F0KFsibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIl0pLmNvbmNhdCh1KSxjPWMuY29uY2F0KFsibWFyZ2luTGVmdCIsIm1hcmdpblJpZ2h0Il0pLGw9ci5jb25jYXQoZCkuY29uY2F0KGMpLG8uZmluZCgiKlt3aWR0aF0iKS5lYWNoKGZ1bmN0aW9uKCl7dmFyIGk9ZSh0aGlzKSxzPXtoZWlnaHQ6aS5oZWlnaHQoKSx3aWR0aDppLndpZHRoKCksb3V0ZXJIZWlnaHQ6aS5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6aS5vdXRlcldpZHRoKCl9O2YmJmUuZWZmZWN0cy5zYXZlKGksbCksaS5mcm9tPXtoZWlnaHQ6cy5oZWlnaHQqYS5mcm9tLnksd2lkdGg6cy53aWR0aCphLmZyb20ueCxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KmEuZnJvbS55LG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKmEuZnJvbS54fSxpLnRvPXtoZWlnaHQ6cy5oZWlnaHQqYS50by55LHdpZHRoOnMud2lkdGgqYS50by54LG91dGVySGVpZ2h0OnMuaGVpZ2h0KmEudG8ueSxvdXRlcldpZHRoOnMud2lkdGgqYS50by54fSxhLmZyb20ueSE9PWEudG8ueSYmKGkuZnJvbT1lLmVmZmVjdHMuc2V0VHJhbnNpdGlvbihpLGQsYS5mcm9tLnksaS5mcm9tKSxpLnRvPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksZCxhLnRvLnksaS50bykpLGEuZnJvbS54IT09YS50by54JiYoaS5mcm9tPWUuZWZmZWN0cy5zZXRUcmFuc2l0aW9uKGksYyxhLmZyb20ueCxpLmZyb20pLGkudG89ZS5lZmZlY3RzLnNldFRyYW5zaXRpb24oaSxjLGEudG8ueCxpLnRvKSksaS5jc3MoaS5mcm9tKSxpLmFuaW1hdGUoaS50byx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7ZiYmZS5lZmZlY3RzLnJlc3RvcmUoaSxsKX0pfSkpLG8uYW5pbWF0ZShvLnRvLHtxdWV1ZTohMSxkdXJhdGlvbjp0LmR1cmF0aW9uLGVhc2luZzp0LmVhc2luZyxjb21wbGV0ZTpmdW5jdGlvbigpezA9PT1vLnRvLm9wYWNpdHkmJm8uY3NzKCJvcGFjaXR5IixvLmZyb20ub3BhY2l0eSksImhpZGUiPT09cCYmby5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobyx5KSxmfHwoInN0YXRpYyI9PT12P28uY3NzKHtwb3NpdGlvbjoicmVsYXRpdmUiLHRvcDpvLnRvLnRvcCxsZWZ0Om8udG8ubGVmdH0pOmUuZWFjaChbInRvcCIsImxlZnQiXSxmdW5jdGlvbihlLHQpe28uY3NzKHQsZnVuY3Rpb24odCxpKXt2YXIgcz1wYXJzZUludChpLDEwKSxuPWU/by50by5sZWZ0Om8udG8udG9wO3JldHVybiJhdXRvIj09PWk/bisicHgiOnMrbisicHgifSl9KSksZS5lZmZlY3RzLnJlbW92ZVdyYXBwZXIobyksaSgpfX0pfSxlLmVmZmVjdHMuZWZmZWN0LnNjYWxlPWZ1bmN0aW9uKHQsaSl7dmFyIHM9ZSh0aGlzKSxuPWUuZXh0ZW5kKCEwLHt9LHQpLGE9ZS5lZmZlY3RzLnNldE1vZGUocyx0Lm1vZGV8fCJlZmZlY3QiKSxvPXBhcnNlSW50KHQucGVyY2VudCwxMCl8fCgwPT09cGFyc2VJbnQodC5wZXJjZW50LDEwKT8wOiJoaWRlIj09PWE/MDoxMDApLHI9dC5kaXJlY3Rpb258fCJib3RoIixoPXQub3JpZ2luLGw9e2hlaWdodDpzLmhlaWdodCgpLHdpZHRoOnMud2lkdGgoKSxvdXRlckhlaWdodDpzLm91dGVySGVpZ2h0KCksb3V0ZXJXaWR0aDpzLm91dGVyV2lkdGgoKX0sdT17eToiaG9yaXpvbnRhbCIhPT1yP28vMTAwOjEseDoidmVydGljYWwiIT09cj9vLzEwMDoxfTtuLmVmZmVjdD0ic2l6ZSIsbi5xdWV1ZT0hMSxuLmNvbXBsZXRlPWksImVmZmVjdCIhPT1hJiYobi5vcmlnaW49aHx8WyJtaWRkbGUiLCJjZW50ZXIiXSxuLnJlc3RvcmU9ITApLG4uZnJvbT10LmZyb218fCgic2hvdyI9PT1hP3toZWlnaHQ6MCx3aWR0aDowLG91dGVySGVpZ2h0OjAsb3V0ZXJXaWR0aDowfTpsKSxuLnRvPXtoZWlnaHQ6bC5oZWlnaHQqdS55LHdpZHRoOmwud2lkdGgqdS54LG91dGVySGVpZ2h0Omwub3V0ZXJIZWlnaHQqdS55LG91dGVyV2lkdGg6bC5vdXRlcldpZHRoKnUueH0sbi5mYWRlJiYoInNob3ciPT09YSYmKG4uZnJvbS5vcGFjaXR5PTAsbi50by5vcGFjaXR5PTEpLCJoaWRlIj09PWEmJihuLmZyb20ub3BhY2l0eT0xLG4udG8ub3BhY2l0eT0wKSkscy5lZmZlY3Qobil9LGUuZWZmZWN0cy5lZmZlY3QucHVmZj1mdW5jdGlvbih0LGkpe3ZhciBzPWUodGhpcyksbj1lLmVmZmVjdHMuc2V0TW9kZShzLHQubW9kZXx8ImhpZGUiKSxhPSJoaWRlIj09PW4sbz1wYXJzZUludCh0LnBlcmNlbnQsMTApfHwxNTAscj1vLzEwMCxoPXtoZWlnaHQ6cy5oZWlnaHQoKSx3aWR0aDpzLndpZHRoKCksb3V0ZXJIZWlnaHQ6cy5vdXRlckhlaWdodCgpLG91dGVyV2lkdGg6cy5vdXRlcldpZHRoKCl9O2UuZXh0ZW5kKHQse2VmZmVjdDoic2NhbGUiLHF1ZXVlOiExLGZhZGU6ITAsbW9kZTpuLGNvbXBsZXRlOmkscGVyY2VudDphP286MTAwLGZyb206YT9oOntoZWlnaHQ6aC5oZWlnaHQqcix3aWR0aDpoLndpZHRoKnIsb3V0ZXJIZWlnaHQ6aC5vdXRlckhlaWdodCpyLG91dGVyV2lkdGg6aC5vdXRlcldpZHRoKnJ9fSkscy5lZmZlY3QodCl9LGUuZWZmZWN0cy5lZmZlY3QucHVsc2F0ZT1mdW5jdGlvbih0LGkpe3ZhciBzLG49ZSh0aGlzKSxhPWUuZWZmZWN0cy5zZXRNb2RlKG4sdC5tb2RlfHwic2hvdyIpLG89InNob3ciPT09YSxyPSJoaWRlIj09PWEsaD1vfHwiaGlkZSI9PT1hLGw9MioodC50aW1lc3x8NSkrKGg/MTowKSx1PXQuZHVyYXRpb24vbCxkPTAsYz1uLnF1ZXVlKCkscD1jLmxlbmd0aDtmb3IoKG98fCFuLmlzKCI6dmlzaWJsZSIpKSYmKG4uY3NzKCJvcGFjaXR5IiwwKS5zaG93KCksZD0xKSxzPTE7bD5zO3MrKyluLmFuaW1hdGUoe29wYWNpdHk6ZH0sdSx0LmVhc2luZyksZD0xLWQ7bi5hbmltYXRlKHtvcGFjaXR5OmR9LHUsdC5lYXNpbmcpLG4ucXVldWUoZnVuY3Rpb24oKXtyJiZuLmhpZGUoKSxpKCl9KSxwPjEmJmMuc3BsaWNlLmFwcGx5KGMsWzEsMF0uY29uY2F0KGMuc3BsaWNlKHAsbCsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNoYWtlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsImhlaWdodCIsIndpZHRoIl0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8ImVmZmVjdCIpLHI9dC5kaXJlY3Rpb258fCJsZWZ0IixoPXQuZGlzdGFuY2V8fDIwLGw9dC50aW1lc3x8Myx1PTIqbCsxLGQ9TWF0aC5yb3VuZCh0LmR1cmF0aW9uL3UpLGM9InVwIj09PXJ8fCJkb3duIj09PXI/InRvcCI6ImxlZnQiLHA9InVwIj09PXJ8fCJsZWZ0Ij09PXIsZj17fSxtPXt9LGc9e30sdj1uLnF1ZXVlKCkseT12Lmxlbmd0aDtmb3IoZS5lZmZlY3RzLnNhdmUobixhKSxuLnNob3coKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKSxmW2NdPShwPyItPSI6Iis9IikraCxtW2NdPShwPyIrPSI6Ii09IikrMipoLGdbY109KHA/Ii09IjoiKz0iKSsyKmgsbi5hbmltYXRlKGYsZCx0LmVhc2luZykscz0xO2w+cztzKyspbi5hbmltYXRlKG0sZCx0LmVhc2luZykuYW5pbWF0ZShnLGQsdC5lYXNpbmcpO24uYW5pbWF0ZShtLGQsdC5lYXNpbmcpLmFuaW1hdGUoZixkLzIsdC5lYXNpbmcpLnF1ZXVlKGZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9KSx5PjEmJnYuc3BsaWNlLmFwcGx5KHYsWzEsMF0uY29uY2F0KHYuc3BsaWNlKHksdSsxKSkpLG4uZGVxdWV1ZSgpfSxlLmVmZmVjdHMuZWZmZWN0LnNsaWRlPWZ1bmN0aW9uKHQsaSl7dmFyIHMsbj1lKHRoaXMpLGE9WyJwb3NpdGlvbiIsInRvcCIsImJvdHRvbSIsImxlZnQiLCJyaWdodCIsIndpZHRoIiwiaGVpZ2h0Il0sbz1lLmVmZmVjdHMuc2V0TW9kZShuLHQubW9kZXx8InNob3ciKSxyPSJzaG93Ij09PW8saD10LmRpcmVjdGlvbnx8ImxlZnQiLGw9InVwIj09PWh8fCJkb3duIj09PWg/InRvcCI6ImxlZnQiLHU9InVwIj09PWh8fCJsZWZ0Ij09PWgsZD17fTtlLmVmZmVjdHMuc2F2ZShuLGEpLG4uc2hvdygpLHM9dC5kaXN0YW5jZXx8blsidG9wIj09PWw/Im91dGVySGVpZ2h0Ijoib3V0ZXJXaWR0aCJdKCEwKSxlLmVmZmVjdHMuY3JlYXRlV3JhcHBlcihuKS5jc3Moe292ZXJmbG93OiJoaWRkZW4ifSksciYmbi5jc3MobCx1P2lzTmFOKHMpPyItIitzOi1zOnMpLGRbbF09KHI/dT8iKz0iOiItPSI6dT8iLT0iOiIrPSIpK3Msbi5hbmltYXRlKGQse3F1ZXVlOiExLGR1cmF0aW9uOnQuZHVyYXRpb24sZWFzaW5nOnQuZWFzaW5nLGNvbXBsZXRlOmZ1bmN0aW9uKCl7ImhpZGUiPT09byYmbi5oaWRlKCksZS5lZmZlY3RzLnJlc3RvcmUobixhKSxlLmVmZmVjdHMucmVtb3ZlV3JhcHBlcihuKSxpKCl9fSl9LGUuZWZmZWN0cy5lZmZlY3QudHJhbnNmZXI9ZnVuY3Rpb24odCxpKXt2YXIgcz1lKHRoaXMpLG49ZSh0LnRvKSxhPSJmaXhlZCI9PT1uLmNzcygicG9zaXRpb24iKSxvPWUoImJvZHkiKSxyPWE/by5zY3JvbGxUb3AoKTowLGg9YT9vLnNjcm9sbExlZnQoKTowLGw9bi5vZmZzZXQoKSx1PXt0b3A6bC50b3AtcixsZWZ0OmwubGVmdC1oLGhlaWdodDpuLmlubmVySGVpZ2h0KCksd2lkdGg6bi5pbm5lcldpZHRoKCl9LGQ9cy5vZmZzZXQoKSxjPWUoIjxkaXYgY2xhc3M9J3VpLWVmZmVjdHMtdHJhbnNmZXInPjwvZGl2PiIpLmFwcGVuZFRvKGRvY3VtZW50LmJvZHkpLmFkZENsYXNzKHQuY2xhc3NOYW1lKS5jc3Moe3RvcDpkLnRvcC1yLGxlZnQ6ZC5sZWZ0LWgsaGVpZ2h0OnMuaW5uZXJIZWlnaHQoKSx3aWR0aDpzLmlubmVyV2lkdGgoKSxwb3NpdGlvbjphPyJmaXhlZCI6ImFic29sdXRlIn0pLmFuaW1hdGUodSx0LmR1cmF0aW9uLHQuZWFzaW5nLGZ1bmN0aW9uKCl7Yy5yZW1vdmUoKSxpKCl9KX19KTs="></script>
<link href="data:text/css,%0A%0A%2Etocify%20%7B%0Awidth%3A%2020%25%3B%0Amax%2Dheight%3A%2090%25%3B%0Aoverflow%3A%20auto%3B%0Amargin%2Dleft%3A%202%25%3B%0Aposition%3A%20fixed%3B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Aborder%2Dradius%3A%206px%3B%0A%7D%0A%0A%2Etocify%20ul%2C%20%2Etocify%20li%20%7B%0Alist%2Dstyle%3A%20none%3B%0Amargin%3A%200%3B%0Apadding%3A%200%3B%0Aborder%3A%20none%3B%0Aline%2Dheight%3A%2030px%3B%0A%7D%0A%0A%2Etocify%2Dheader%20%7B%0Atext%2Dindent%3A%2010px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2020px%3B%0Adisplay%3A%20none%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20li%20%7B%0Afont%2Dsize%3A%2012px%3B%0A%7D%0A%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2030px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2040px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2050px%3B%0A%7D%0A%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%2Etocify%2Dsubheader%20%7B%0Atext%2Dindent%3A%2060px%3B%0A%7D%0A%0A%2Etocify%20%2Etocify%2Ditem%20%3E%20a%2C%20%2Etocify%20%2Enav%2Dlist%20%2Enav%2Dheader%20%7B%0Amargin%3A%200px%3B%0A%7D%0A%0A%2Etocify%20%2Etocify%2Ditem%20a%2C%20%2Etocify%20%2Elist%2Dgroup%2Ditem%20%7B%0Apadding%3A%205px%3B%0A%7D%0A%2Etocify%20%2Enav%2Dpills%20%3E%20li%20%7B%0Afloat%3A%20none%3B%0A%7D%0A%0A%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,LyoganF1ZXJ5IFRvY2lmeSAtIHYxLjkuMSAtIDIwMTMtMTAtMjIKICogaHR0cDovL3d3dy5ncmVnZnJhbmtvLmNvbS9qcXVlcnkudG9jaWZ5LmpzLwogKiBDb3B5cmlnaHQgKGMpIDIwMTMgR3JlZyBGcmFua287IExpY2Vuc2VkIE1JVCAqLwoKLy8gSW1tZWRpYXRlbHktSW52b2tlZCBGdW5jdGlvbiBFeHByZXNzaW9uIChJSUZFKSBbQmVuIEFsbWFuIEJsb2cgUG9zdF0oaHR0cDovL2JlbmFsbWFuLmNvbS9uZXdzLzIwMTAvMTEvaW1tZWRpYXRlbHktaW52b2tlZC1mdW5jdGlvbi1leHByZXNzaW9uLykgdGhhdCBjYWxscyBhbm90aGVyIElJRkUgdGhhdCBjb250YWlucyBhbGwgb2YgdGhlIHBsdWdpbiBsb2dpYy4gIEkgdXNlZCB0aGlzIHBhdHRlcm4gc28gdGhhdCBhbnlvbmUgdmlld2luZyB0aGlzIGNvZGUgd291bGQgbm90IGhhdmUgdG8gc2Nyb2xsIHRvIHRoZSBib3R0b20gb2YgdGhlIHBhZ2UgdG8gdmlldyB0aGUgbG9jYWwgcGFyYW1ldGVycyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoZSBtYWluIElJRkUuCihmdW5jdGlvbih0b2NpZnkpIHsKCiAgICAvLyBFQ01BU2NyaXB0IDUgU3RyaWN0IE1vZGU6IFtKb2huIFJlc2lnIEJsb2cgUG9zdF0oaHR0cDovL2Vqb2huLm9yZy9ibG9nL2VjbWFzY3JpcHQtNS1zdHJpY3QtbW9kZS1qc29uLWFuZC1tb3JlLykKICAgICJ1c2Ugc3RyaWN0IjsKCiAgICAvLyBDYWxscyB0aGUgc2Vjb25kIElJRkUgYW5kIGxvY2FsbHkgcGFzc2VzIGluIHRoZSBnbG9iYWwgalF1ZXJ5LCB3aW5kb3csIGFuZCBkb2N1bWVudCBvYmplY3RzCiAgICB0b2NpZnkod2luZG93LmpRdWVyeSwgd2luZG93LCBkb2N1bWVudCk7CgogIH0KCiAgLy8gTG9jYWxseSBwYXNzZXMgaW4gYGpRdWVyeWAsIHRoZSBgd2luZG93YCBvYmplY3QsIHRoZSBgZG9jdW1lbnRgIG9iamVjdCwgYW5kIGFuIGB1bmRlZmluZWRgIHZhcmlhYmxlLiAgVGhlIGBqUXVlcnlgLCBgd2luZG93YCBhbmQgYGRvY3VtZW50YCBvYmplY3RzIGFyZSBwYXNzZWQgaW4gbG9jYWxseSwgdG8gaW1wcm92ZSBwZXJmb3JtYW5jZSwgc2luY2UgamF2YXNjcmlwdCBmaXJzdCBzZWFyY2hlcyBmb3IgYSB2YXJpYWJsZSBtYXRjaCB3aXRoaW4gdGhlIGxvY2FsIHZhcmlhYmxlcyBzZXQgYmVmb3JlIHNlYXJjaGluZyB0aGUgZ2xvYmFsIHZhcmlhYmxlcyBzZXQuICBBbGwgb2YgdGhlIGdsb2JhbCB2YXJpYWJsZXMgYXJlIGFsc28gcGFzc2VkIGluIGxvY2FsbHkgdG8gYmUgbWluaWZpZXIgZnJpZW5kbHkuIGB1bmRlZmluZWRgIGNhbiBiZSBwYXNzZWQgaW4gbG9jYWxseSwgYmVjYXVzZSBpdCBpcyBub3QgYSByZXNlcnZlZCB3b3JkIGluIEphdmFTY3JpcHQuCiAgKGZ1bmN0aW9uKCQsIHdpbmRvdywgZG9jdW1lbnQsIHVuZGVmaW5lZCkgewoKICAgIC8vIEVDTUFTY3JpcHQgNSBTdHJpY3QgTW9kZTogW0pvaG4gUmVzaWcgQmxvZyBQb3N0XShodHRwOi8vZWpvaG4ub3JnL2Jsb2cvZWNtYXNjcmlwdC01LXN0cmljdC1tb2RlLWpzb24tYW5kLW1vcmUvKQogICAgInVzZSBzdHJpY3QiOwoKICAgIHZhciB0b2NDbGFzc05hbWUgPSAidG9jaWZ5IiwKICAgICAgdG9jQ2xhc3MgPSAiLiIgKyB0b2NDbGFzc05hbWUsCiAgICAgIHRvY0ZvY3VzQ2xhc3NOYW1lID0gInRvY2lmeS1mb2N1cyIsCiAgICAgIHRvY0hvdmVyQ2xhc3NOYW1lID0gInRvY2lmeS1ob3ZlciIsCiAgICAgIGhpZGVUb2NDbGFzc05hbWUgPSAidG9jaWZ5LWhpZGUiLAogICAgICBoaWRlVG9jQ2xhc3MgPSAiLiIgKyBoaWRlVG9jQ2xhc3NOYW1lLAogICAgICBoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LWhlYWRlciIsCiAgICAgIGhlYWRlckNsYXNzID0gIi4iICsgaGVhZGVyQ2xhc3NOYW1lLAogICAgICBzdWJoZWFkZXJDbGFzc05hbWUgPSAidG9jaWZ5LXN1YmhlYWRlciIsCiAgICAgIHN1YmhlYWRlckNsYXNzID0gIi4iICsgc3ViaGVhZGVyQ2xhc3NOYW1lLAogICAgICBpdGVtQ2xhc3NOYW1lID0gInRvY2lmeS1pdGVtIiwKICAgICAgaXRlbUNsYXNzID0gIi4iICsgaXRlbUNsYXNzTmFtZSwKICAgICAgZXh0ZW5kUGFnZUNsYXNzTmFtZSA9ICJ0b2NpZnktZXh0ZW5kLXBhZ2UiLAogICAgICBleHRlbmRQYWdlQ2xhc3MgPSAiLiIgKyBleHRlbmRQYWdlQ2xhc3NOYW1lOwoKICAgIC8vIENhbGxpbmcgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IE1ldGhvZAogICAgJC53aWRnZXQoInRvYy50b2NpZnkiLCB7CgogICAgICAvL1BsdWdpbiB2ZXJzaW9uCiAgICAgIHZlcnNpb246ICIxLjkuMSIsCgogICAgICAvLyBUaGVzZSBvcHRpb25zIHdpbGwgYmUgdXNlZCBhcyBkZWZhdWx0cwogICAgICBvcHRpb25zOiB7CgogICAgICAgIC8vICoqY29udGV4dCoqOiBBY2NlcHRzIFN0cmluZzogQW55IGpRdWVyeSBzZWxlY3RvcgogICAgICAgIC8vIFRoZSBjb250YWluZXIgZWxlbWVudCB0aGF0IGhvbGRzIGFsbCBvZiB0aGUgZWxlbWVudHMgdXNlZCB0byBnZW5lcmF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMKICAgICAgICBjb250ZXh0OiAiYm9keSIsCgogICAgICAgIC8vICoqaWdub3JlU2VsZWN0b3IqKjogQWNjZXB0cyBTdHJpbmc6IEFueSBqUXVlcnkgc2VsZWN0b3IKICAgICAgICAvLyBBIHNlbGVjdG9yIHRvIGFueSBlbGVtZW50IHRoYXQgd291bGQgYmUgbWF0Y2hlZCBieSBzZWxlY3RvcnMgdGhhdCB5b3Ugd2lzaCB0byBiZSBpZ25vcmVkCiAgICAgICAgaWdub3JlU2VsZWN0b3I6IG51bGwsCgogICAgICAgIC8vICoqc2VsZWN0b3JzKio6IEFjY2VwdHMgYW4gQXJyYXkgb2YgU3RyaW5nczogQW55IGpRdWVyeSBzZWxlY3RvcnMKICAgICAgICAvLyBUaGUgZWxlbWVudCdzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgVGhlIG9yZGVyIGlzIHZlcnkgaW1wb3J0YW50IHNpbmNlIGl0IHdpbGwgZGV0ZXJtaW5lIHRoZSB0YWJsZSBvZiBjb250ZW50J3MgbmVzdGluZyBzdHJ1Y3R1cmUKICAgICAgICBzZWxlY3RvcnM6ICJoMSwgaDIsIGgzIiwKCiAgICAgICAgLy8gKipzaG93QW5kSGlkZSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIFVzZWQgdG8gZGV0ZXJtaW5lIGlmIGVsZW1lbnRzIHNob3VsZCBiZSBzaG93biBhbmQgaGlkZGVuCiAgICAgICAgc2hvd0FuZEhpZGU6IHRydWUsCgogICAgICAgIC8vICoqc2hvd0VmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZUluIiwgInNob3ciLCBvciAic2xpZGVEb3duIgogICAgICAgIC8vIFVzZWQgdG8gZGlzcGxheSBhbnkgb2YgdGhlIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcwogICAgICAgIHNob3dFZmZlY3Q6ICJzbGlkZURvd24iLAoKICAgICAgICAvLyAqKnNob3dFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBzaG93IGFuaW1hdGlvbgogICAgICAgIHNob3dFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqaGlkZUVmZmVjdCoqOiBBY2NlcHRzIFN0cmluZzogIm5vbmUiLCAiZmFkZU91dCIsICJoaWRlIiwgb3IgInNsaWRlVXAiCiAgICAgICAgLy8gVXNlZCB0byBoaWRlIGFueSBvZiB0aGUgdGFibGUgb2YgY29udGVudHMgbmVzdGVkIGl0ZW1zCiAgICAgICAgaGlkZUVmZmVjdDogInNsaWRlVXAiLAoKICAgICAgICAvLyAqKmhpZGVFZmZlY3RTcGVlZCoqOiBBY2NlcHRzIE51bWJlciAobWlsbGlzZWNvbmRzKSBvciBTdHJpbmc6ICJzbG93IiwgIm1lZGl1bSIsIG9yICJmYXN0IgogICAgICAgIC8vIFRoZSB0aW1lIGR1cmF0aW9uIG9mIHRoZSBoaWRlIGFuaW1hdGlvbgogICAgICAgIGhpZGVFZmZlY3RTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc21vb3RoU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiBhIGpRdWVyeSBhbmltYXRpb24gc2hvdWxkIGJlIHVzZWQgdG8gc2Nyb2xsIHRvIHNwZWNpZmljIHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW1zIG9uIHRoZSBwYWdlCiAgICAgICAgc21vb3RoU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKnNtb290aFNjcm9sbFNwZWVkKio6IEFjY2VwdHMgTnVtYmVyIChtaWxsaXNlY29uZHMpIG9yIFN0cmluZzogInNsb3ciLCAibWVkaXVtIiwgb3IgImZhc3QiCiAgICAgICAgLy8gVGhlIHRpbWUgZHVyYXRpb24gb2YgdGhlIHNtb290aFNjcm9sbCBhbmltYXRpb24KICAgICAgICBzbW9vdGhTY3JvbGxTcGVlZDogIm1lZGl1bSIsCgogICAgICAgIC8vICoqc2Nyb2xsVG8qKjogQWNjZXB0cyBOdW1iZXIgKHBpeGVscykKICAgICAgICAvLyBUaGUgYW1vdW50IG9mIHNwYWNlIGJldHdlZW4gdGhlIHRvcCBvZiBwYWdlIGFuZCB0aGUgc2VsZWN0ZWQgdGFibGUgb2YgY29udGVudHMgaXRlbSBhZnRlciB0aGUgcGFnZSBoYXMgYmVlbiBzY3JvbGxlZAogICAgICAgIHNjcm9sbFRvOiAwLAoKICAgICAgICAvLyAqKnNob3dBbmRIaWRlT25TY3JvbGwqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBEZXRlcm1pbmVzIGlmIHRhYmxlIG9mIGNvbnRlbnRzIG5lc3RlZCBpdGVtcyBzaG91bGQgYmUgc2hvd24gYW5kIGhpZGRlbiB3aGlsZSBzY3JvbGxpbmcKICAgICAgICBzaG93QW5kSGlkZU9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9uU2Nyb2xsKio6IEFjY2VwdHMgYSBib29sZWFuOiB0cnVlIG9yIGZhbHNlCiAgICAgICAgLy8gRGV0ZXJtaW5lcyBpZiB0YWJsZSBvZiBjb250ZW50cyBuZXN0ZWQgaXRlbXMgc2hvdWxkIGJlIGhpZ2hsaWdodGVkIChzZXQgdG8gYSBkaWZmZXJlbnQgY29sb3IpIHdoaWxlIHNjcm9sbGluZwogICAgICAgIGhpZ2hsaWdodE9uU2Nyb2xsOiB0cnVlLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodE9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyCiAgICAgICAgLy8gVGhlIG9mZnNldCBkaXN0YW5jZSBpbiBwaXhlbHMgdG8gdHJpZ2dlciB0aGUgbmV4dCBhY3RpdmUgdGFibGUgb2YgY29udGVudHMgaXRlbQogICAgICAgIGhpZ2hsaWdodE9mZnNldDogNDAsCgogICAgICAgIC8vICoqdGhlbWUqKjogQWNjZXB0cyBhIHN0cmluZzogImJvb3RzdHJhcCIsICJqcXVlcnl1aSIsIG9yICJub25lIgogICAgICAgIC8vIERldGVybWluZXMgaWYgVHdpdHRlciBCb290c3RyYXAsIGpRdWVyeVVJLCBvciBUb2NpZnkgY2xhc3NlcyBzaG91bGQgYmUgYWRkZWQgdG8gdGhlIHRhYmxlIG9mIGNvbnRlbnRzCiAgICAgICAgdGhlbWU6ICJib290c3RyYXAiLAoKICAgICAgICAvLyAqKmV4dGVuZFBhZ2UqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBJZiBhIHVzZXIgc2Nyb2xscyB0byB0aGUgYm90dG9tIG9mIHRoZSBwYWdlIGFuZCB0aGUgcGFnZSBpcyBub3QgdGFsbCBlbm91Z2ggdG8gc2Nyb2xsIHRvIHRoZSBsYXN0IHRhYmxlIG9mIGNvbnRlbnRzIGl0ZW0sIHRoZW4gdGhlIHBhZ2UgaGVpZ2h0IGlzIGluY3JlYXNlZAogICAgICAgIGV4dGVuZFBhZ2U6IHRydWUsCgogICAgICAgIC8vICoqZXh0ZW5kUGFnZU9mZnNldCoqOiBBY2NlcHRzIGEgbnVtYmVyOiBwaXhlbHMKICAgICAgICAvLyBIb3cgY2xvc2UgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhIHVzZXIgbXVzdCBzY3JvbGwgYmVmb3JlIHRoZSBwYWdlIGlzIGV4dGVuZGVkCiAgICAgICAgZXh0ZW5kUGFnZU9mZnNldDogMTAwLAoKICAgICAgICAvLyAqKmhpc3RvcnkqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBBZGRzIGEgaGFzaCB0byB0aGUgcGFnZSB1cmwgdG8gbWFpbnRhaW4gaGlzdG9yeQogICAgICAgIGhpc3Rvcnk6IHRydWUsCgogICAgICAgIC8vICoqc2Nyb2xsSGlzdG9yeSoqOiBBY2NlcHRzIGEgYm9vbGVhbjogdHJ1ZSBvciBmYWxzZQogICAgICAgIC8vIEFkZHMgYSBoYXNoIHRvIHRoZSBwYWdlIHVybCwgdG8gbWFpbnRhaW4gaGlzdG9yeSwgd2hlbiBzY3JvbGxpbmcgdG8gYSBUT0MgaXRlbQogICAgICAgIHNjcm9sbEhpc3Rvcnk6IGZhbHNlLAoKICAgICAgICAvLyAqKmhhc2hHZW5lcmF0b3IqKjogSG93IHRoZSBoYXNoIHZhbHVlICh0aGUgYW5jaG9yIHNlZ21lbnQgb2YgdGhlIFVSTCwgZm9sbG93aW5nIHRoZQogICAgICAgIC8vICMgY2hhcmFjdGVyKSB3aWxsIGJlIGdlbmVyYXRlZC4KICAgICAgICAvLwogICAgICAgIC8vICJjb21wYWN0IiAoZGVmYXVsdCkgLSAjQ29tcHJlc3Nlc0V2ZXJ5dGhpbmdUb2dldGhlcgogICAgICAgIC8vICJwcmV0dHkiIC0gI2xvb2tzLWxpa2UtYS1uaWNlLXVybC1hbmQtaXMtZWFzaWx5LXJlYWRhYmxlCiAgICAgICAgLy8gZnVuY3Rpb24odGV4dCwgZWxlbWVudCl7fSAtIFlvdXIgb3duIGhhc2ggZ2VuZXJhdGlvbiBmdW5jdGlvbiB0aGF0IGFjY2VwdHMgdGhlIHRleHQgYXMgYW4KICAgICAgICAvLyBhcmd1bWVudCwgYW5kIHJldHVybnMgdGhlIGhhc2ggdmFsdWUuCiAgICAgICAgaGFzaEdlbmVyYXRvcjogImNvbXBhY3QiLAoKICAgICAgICAvLyAqKmhpZ2hsaWdodERlZmF1bHQqKjogQWNjZXB0cyBhIGJvb2xlYW46IHRydWUgb3IgZmFsc2UKICAgICAgICAvLyBTZXQncyB0aGUgZmlyc3QgVE9DIGl0ZW0gYXMgYWN0aXZlIGlmIG5vIG90aGVyIFRPQyBpdGVtIGlzIGFjdGl2ZS4KICAgICAgICBoaWdobGlnaHREZWZhdWx0OiB0cnVlCgogICAgICB9LAoKICAgICAgLy8gX0NyZWF0ZQogICAgICAvLyAtLS0tLS0tCiAgICAgIC8vICAgICAgQ29uc3RydWN0cyB0aGUgcGx1Z2luLiAgT25seSBjYWxsZWQgb25jZS4KICAgICAgX2NyZWF0ZTogZnVuY3Rpb24oKSB7CgogICAgICAgIHZhciBzZWxmID0gdGhpczsKCiAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gdHJ1ZTsKCiAgICAgICAgLy8gSW50ZXJuYWwgYXJyYXkgdGhhdCBrZWVwcyB0cmFjayBvZiBhbGwgVE9DIGl0ZW1zIChIZWxwcyB0byByZWNvZ25pemUgaWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBUT0MgaXRlbSBzdHJpbmdzKQogICAgICAgIHNlbGYuaXRlbXMgPSBbXTsKCiAgICAgICAgLy8gR2VuZXJhdGVzIHRoZSBIVE1MIGZvciB0aGUgZHluYW1pYyB0YWJsZSBvZiBjb250ZW50cwogICAgICAgIHNlbGYuX2dlbmVyYXRlVG9jKCk7CgogICAgICAgIC8vIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgICAgc2VsZi5fYWRkQ1NTQ2xhc3NlcygpOwoKICAgICAgICBzZWxmLndlYmtpdCA9IChmdW5jdGlvbigpIHsKCiAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIHdpbmRvdykgewoKICAgICAgICAgICAgaWYgKHByb3ApIHsKCiAgICAgICAgICAgICAgaWYgKHByb3AudG9Mb3dlckNhc2UoKS5pbmRleE9mKCJ3ZWJraXQiKSAhPT0gLTEpIHsKCiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKCiAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0KCiAgICAgICAgICByZXR1cm4gZmFsc2U7CgogICAgICAgIH0oKSk7CgogICAgICAgIC8vIEFkZHMgalF1ZXJ5IGV2ZW50IGhhbmRsZXJzIHRvIHRoZSBuZXdseSBnZW5lcmF0ZWQgdGFibGUgb2YgY29udGVudHMKICAgICAgICBzZWxmLl9zZXRFdmVudEhhbmRsZXJzKCk7CgogICAgICAgIC8vIEJpbmRpbmcgdG8gdGhlIFdpbmRvdyBsb2FkIGV2ZW50IHRvIG1ha2Ugc3VyZSB0aGUgY29ycmVjdCBzY3JvbGxUb3AgaXMgY2FsY3VsYXRlZAogICAgICAgICQod2luZG93KS5vbigibG9hZCIsIGZ1bmN0aW9uKCkgewoKICAgICAgICAgIC8vIFNldHMgdGhlIGFjdGl2ZSBUT0MgaXRlbQogICAgICAgICAgc2VsZi5fc2V0QWN0aXZlRWxlbWVudCh0cnVlKTsKCiAgICAgICAgICAvLyBPbmNlIGFsbCBhbmltYXRpb25zIG9uIHRoZSBwYWdlIGFyZSBjb21wbGV0ZSwgdGhpcyBjYWxsYmFjayBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZAogICAgICAgICAgJCgiaHRtbCwgYm9keSIpLnByb21pc2UoKS5kb25lKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgc2VsZi5leHRlbmRQYWdlU2Nyb2xsID0gZmFsc2U7CgogICAgICAgICAgICB9LCAwKTsKCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlVG9jCiAgICAgIC8vIC0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgSFRNTCBmb3IgdGhlIGR5bmFtaWMgdGFibGUgb2YgY29udGVudHMKICAgICAgX2dlbmVyYXRlVG9jOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gX0xvY2FsIHZhcmlhYmxlc18KCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgc2VsZiB2YXJpYWJsZQogICAgICAgIHZhciBzZWxmID0gdGhpcywKCiAgICAgICAgICAvLyBBbGwgb2YgdGhlIEhUTUwgdGFncyBmb3VuZCB3aXRoaW4gdGhlIGNvbnRleHQgcHJvdmlkZWQgKGkuZS4gYm9keSkgdGhhdCBtYXRjaCB0aGUgdG9wIGxldmVsIGpRdWVyeSBzZWxlY3RvciBhYm92ZQogICAgICAgICAgZmlyc3RFbGVtLAoKICAgICAgICAgIC8vIEluc3RhbnRpYXRlZCB2YXJpYWJsZSB0aGF0IHdpbGwgc3RvcmUgdGhlIHRvcCBsZXZlbCBuZXdseSBjcmVhdGVkIHVub3JkZXJlZCBsaXN0IERPTSBlbGVtZW50CiAgICAgICAgICB1bCwKICAgICAgICAgIGlnbm9yZVNlbGVjdG9yID0gc2VsZi5vcHRpb25zLmlnbm9yZVNlbGVjdG9yOwoKCiAgICAgICAgLy8gRGV0ZXJtaW5lIHRoZSBlbGVtZW50IHRvIHN0YXJ0IHRoZSB0b2Mgd2l0aAogICAgICAgIC8vIGdldCBhbGwgdGhlIHRvcCBsZXZlbCBzZWxlY3RvcnMKICAgICAgICBmaXJzdEVsZW0gPSBbXTsKICAgICAgICB2YXIgc2VsZWN0b3JzID0gdGhpcy5vcHRpb25zLnNlbGVjdG9ycy5yZXBsYWNlKC8gL2csICIiKS5zcGxpdCgiLCIpOwogICAgICAgIC8vIGZpbmQgdGhlIGZpcnN0IHNldCB0aGF0IGhhdmUgYXQgbGVhc3Qgb25lIG5vbi1pZ25vcmVkIGVsZW1lbnQKICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgc2VsZWN0b3JzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgZm91bmRTZWxlY3RvcnMgPSAkKHRoaXMub3B0aW9ucy5jb250ZXh0KS5maW5kKHNlbGVjdG9yc1tpXSk7CiAgICAgICAgICBmb3IgKHZhciBzID0gMDsgcyA8IGZvdW5kU2VsZWN0b3JzLmxlbmd0aDsgcysrKSB7CiAgICAgICAgICAgIGlmICghJChmb3VuZFNlbGVjdG9yc1tzXSkuaXMoaWdub3JlU2VsZWN0b3IpKSB7CiAgICAgICAgICAgICAgZmlyc3RFbGVtID0gZm91bmRTZWxlY3RvcnM7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIGlmIChmaXJzdEVsZW0ubGVuZ3RoPiAwKQogICAgICAgICAgICBicmVhazsKICAgICAgICB9CgogICAgICAgIGlmICghZmlyc3RFbGVtLmxlbmd0aCkgewoKICAgICAgICAgIHNlbGYuZWxlbWVudC5hZGRDbGFzcyhoaWRlVG9jQ2xhc3NOYW1lKTsKCiAgICAgICAgICByZXR1cm47CgogICAgICAgIH0KCiAgICAgICAgc2VsZi5lbGVtZW50LmFkZENsYXNzKHRvY0NsYXNzTmFtZSk7CgogICAgICAgIC8vIExvb3BzIHRocm91Z2ggZWFjaCB0b3AgbGV2ZWwgc2VsZWN0b3IKICAgICAgICBmaXJzdEVsZW0uZWFjaChmdW5jdGlvbihpbmRleCkgewoKICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIENyZWF0ZXMgYW4gdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGFuZCBhZGRzIGEgZHluYW1pYyBJRCBhbmQgc3RhbmRhcmQgY2xhc3MgbmFtZQogICAgICAgICAgdWwgPSAkKCI8dWwvPiIsIHsKICAgICAgICAgICAgImlkIjogaGVhZGVyQ2xhc3NOYW1lICsgaW5kZXgsCiAgICAgICAgICAgICJjbGFzcyI6IGhlYWRlckNsYXNzTmFtZQogICAgICAgICAgfSkuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIHRvcCBsZXZlbCBsaXN0IGl0ZW0gSFRNTCBlbGVtZW50IHRvIHRoZSBwcmV2aW91c2x5IGNyZWF0ZWQgSFRNTCBoZWFkZXIKICAgICAgICAgIGFwcGVuZChzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgICAvLyBBZGQgdGhlIGNyZWF0ZWQgdW5vcmRlcmVkIGxpc3QgZWxlbWVudCB0byB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgc2VsZi5lbGVtZW50LmFwcGVuZCh1bCk7CgogICAgICAgICAgLy8gRmluZHMgYWxsIG9mIHRoZSBIVE1MIHRhZ3MgYmV0d2VlbiB0aGUgaGVhZGVyIGFuZCBzdWJoZWFkZXIgZWxlbWVudHMKICAgICAgICAgICQodGhpcykubmV4dFVudGlsKHRoaXMubm9kZU5hbWUudG9Mb3dlckNhc2UoKSkuZWFjaChmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIElmIHRoZXJlIGFyZSBubyBuZXN0ZWQgc3ViaGVhZGVyIGVsZW1lbWVudHMKICAgICAgICAgICAgaWYgKCQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5sZW5ndGggPT09IDApIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmlsdGVyKHNlbGYub3B0aW9ucy5zZWxlY3RvcnMpLmVhY2goZnVuY3Rpb24oKSB7CgogICAgICAgICAgICAgICAgLy9JZiB0aGUgZWxlbWVudCBtYXRjaGVzIHRoZSBpZ25vcmVTZWxlY3RvciB0aGVuIHdlIHNraXAgaXQKICAgICAgICAgICAgICAgIGlmICgkKHRoaXMpLmlzKGlnbm9yZVNlbGVjdG9yKSkgewogICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgc2VsZi5fYXBwZW5kU3ViaGVhZGVycy5jYWxsKHRoaXMsIHNlbGYsIHVsKTsKCiAgICAgICAgICAgICAgfSk7CgogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBJZiB0aGVyZSBhcmUgbmVzdGVkIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICBlbHNlIHsKCiAgICAgICAgICAgICAgLy8gTG9vcHMgdGhyb3VnaCBhbGwgb2YgdGhlIHN1YmhlYWRlciBlbGVtZW50cwogICAgICAgICAgICAgICQodGhpcykuZmluZChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKS5lYWNoKGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vSWYgdGhlIGVsZW1lbnQgbWF0Y2hlcyB0aGUgaWdub3JlU2VsZWN0b3IgdGhlbiB3ZSBza2lwIGl0CiAgICAgICAgICAgICAgICBpZiAoJCh0aGlzKS5pcyhpZ25vcmVTZWxlY3RvcikpIHsKICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIHNlbGYuX2FwcGVuZFN1YmhlYWRlcnMuY2FsbCh0aGlzLCBzZWxmLCB1bCk7CgogICAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgfQoKICAgICAgICAgIH0pOwoKICAgICAgICB9KTsKCiAgICAgIH0sCgogICAgICBfc2V0QWN0aXZlRWxlbWVudDogZnVuY3Rpb24ocGFnZWxvYWQpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAoKICAgICAgICAgIGhhc2ggPSB3aW5kb3cubG9jYXRpb24uaGFzaC5zdWJzdHJpbmcoMSksCgogICAgICAgICAgZWxlbSA9IHNlbGYuZWxlbWVudC5maW5kKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGhhc2ggKyAnIl0nKTsKCiAgICAgICAgaWYgKGhhc2gubGVuZ3RoKSB7CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgZWxlbS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIFRyaWdnZXJzIHRoZSBjbGljayBldmVudCBvbiB0aGUgY3VycmVudGx5IGZvY3VzZWQgVE9DIGl0ZW0KICAgICAgICAgIGVsZW0uY2xpY2soKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBSZW1vdmVzIGhpZ2hsaWdodGluZyBmcm9tIGFsbCBvZiB0aGUgbGlzdCBpdGVtJ3MKICAgICAgICAgIHNlbGYuZWxlbWVudC5maW5kKCIuIiArIHNlbGYuZm9jdXNDbGFzcykucmVtb3ZlQ2xhc3Moc2VsZi5mb2N1c0NsYXNzKTsKCiAgICAgICAgICBpZiAoIWhhc2gubGVuZ3RoICYmIHBhZ2Vsb2FkICYmIHNlbGYub3B0aW9ucy5oaWdobGlnaHREZWZhdWx0KSB7CgogICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBmaXJzdCBUT0MgaXRlbSBpZiBubyBvdGhlciBpdGVtcyBhcmUgaGlnaGxpZ2h0ZWQKICAgICAgICAgICAgc2VsZi5lbGVtZW50LmZpbmQoaXRlbUNsYXNzKS5maXJzdCgpLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgfQoKICAgICAgICB9CgogICAgICAgIHJldHVybiBzZWxmOwoKICAgICAgfSwKCiAgICAgIC8vIF9uZXN0RWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEhlbHBzIGNyZWF0ZSB0aGUgdGFibGUgb2YgY29udGVudHMgbGlzdCBieSBhcHBlbmRpbmcgbmVzdGVkIGxpc3QgaXRlbXMKICAgICAgX25lc3RFbGVtZW50czogZnVuY3Rpb24oc2VsZiwgaW5kZXgpIHsKCiAgICAgICAgdmFyIGFyciwgaXRlbSwgaGFzaFZhbHVlOwoKICAgICAgICBhcnIgPSAkLmdyZXAodGhpcy5pdGVtcywgZnVuY3Rpb24oaXRlbSkgewoKICAgICAgICAgIHJldHVybiBpdGVtID09PSBzZWxmLnRleHQoKTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSBkdXBsaWNhdGUgVE9DIGl0ZW0KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewoKICAgICAgICAgIC8vIEFkZHMgdGhlIGN1cnJlbnQgVE9DIGl0ZW0gdGV4dCBhbmQgaW5kZXggKGZvciBzbGlnaHQgcmFuZG9taXphdGlvbikgdG8gdGhlIGludGVybmFsIGFycmF5CiAgICAgICAgICB0aGlzLml0ZW1zLnB1c2goc2VsZi50ZXh0KCkgKyBpbmRleCk7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlcmUgbm90IGEgZHVwbGljYXRlIFRPQyBpdGVtCiAgICAgICAgZWxzZSB7CgogICAgICAgICAgLy8gQWRkcyB0aGUgY3VycmVudCBUT0MgaXRlbSB0ZXh0IHRvIHRoZSBpbnRlcm5hbCBhcnJheQogICAgICAgICAgdGhpcy5pdGVtcy5wdXNoKHNlbGYudGV4dCgpKTsKCiAgICAgICAgfQoKICAgICAgICBoYXNoVmFsdWUgPSB0aGlzLl9nZW5lcmF0ZUhhc2hWYWx1ZShhcnIsIHNlbGYsIGluZGV4KTsKCiAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIGl0ZW0gPSAkKCI8bGkvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUgdG8gdGhlIGxpc3QgaXRlbQogICAgICAgICAgImNsYXNzIjogaXRlbUNsYXNzTmFtZSwKCiAgICAgICAgICAiZGF0YS11bmlxdWUiOiBoYXNoVmFsdWUKCiAgICAgICAgfSk7CgogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAzIikgewoKICAgICAgICAgIGl0ZW0uYXBwZW5kKCQoIjxhLz4iLCB7CgogICAgICAgICAgICAiaHRtbCI6IHNlbGYuaHRtbCgpCgogICAgICAgICAgfSkpOwoKICAgICAgICB9IGVsc2UgewoKICAgICAgICAgIGl0ZW0uaHRtbChzZWxmLmh0bWwoKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gQWRkcyBhbiBIVE1MIGFuY2hvciB0YWcgYmVmb3JlIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIEhUTUwgZWxlbWVudAogICAgICAgIHNlbGYuYmVmb3JlKCQoIjxkaXYvPiIsIHsKCiAgICAgICAgICAvLyBTZXRzIGEgbmFtZSBhdHRyaWJ1dGUgb24gdGhlIGFuY2hvciB0YWcgdG8gdGhlIHRleHQgb2YgdGhlIGN1cnJlbnRseSB0cmF2ZXJzZWQgSFRNTCBlbGVtZW50IChhbHNvIG1ha2luZyBzdXJlIHRoYXQgYWxsIHdoaXRlc3BhY2UgaXMgcmVwbGFjZWQgd2l0aCBhbiB1bmRlcnNjb3JlKQogICAgICAgICAgIm5hbWUiOiBoYXNoVmFsdWUsCgogICAgICAgICAgImRhdGEtdW5pcXVlIjogaGFzaFZhbHVlCgogICAgICAgIH0pKTsKCiAgICAgICAgcmV0dXJuIGl0ZW07CgogICAgICB9LAoKICAgICAgLy8gX2dlbmVyYXRlSGFzaFZhbHVlCiAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEdlbmVyYXRlcyB0aGUgaGFzaCB2YWx1ZSB0aGF0IHdpbGwgYmUgdXNlZCB0byByZWZlciB0byBlYWNoIGl0ZW0uCiAgICAgIF9nZW5lcmF0ZUhhc2hWYWx1ZTogZnVuY3Rpb24oYXJyLCBzZWxmLCBpbmRleCkgewoKICAgICAgICB2YXIgaGFzaFZhbHVlID0gIiIsCiAgICAgICAgICBoYXNoR2VuZXJhdG9yT3B0aW9uID0gdGhpcy5vcHRpb25zLmhhc2hHZW5lcmF0b3I7CgogICAgICAgIGlmIChoYXNoR2VuZXJhdG9yT3B0aW9uID09PSAicHJldHR5IikgewoKICAgICAgICAgIC8vIHByZXR0aWZ5IHRoZSB0ZXh0CiAgICAgICAgICBoYXNoVmFsdWUgPSBzZWxmLnRleHQoKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xzL2csICItIik7CgogICAgICAgICAgLy8gZml4IGRvdWJsZSBoeXBoZW5zCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIi0tIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvLS0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgICAvLyBmaXggY29sb24tc3BhY2UgaW5zdGFuY2VzCiAgICAgICAgICB3aGlsZSAoaGFzaFZhbHVlLmluZGV4T2YoIjotIikgPiAtMSkgewogICAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoVmFsdWUucmVwbGFjZSgvOi0vZywgIi0iKTsKICAgICAgICAgIH0KCiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaGFzaEdlbmVyYXRvck9wdGlvbiA9PT0gImZ1bmN0aW9uIikgewoKICAgICAgICAgIC8vIGNhbGwgdGhlIGZ1bmN0aW9uCiAgICAgICAgICBoYXNoVmFsdWUgPSBoYXNoR2VuZXJhdG9yT3B0aW9uKHNlbGYudGV4dCgpLCBzZWxmKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBjb21wYWN0IC0gdGhlIGRlZmF1bHQKICAgICAgICAgIGhhc2hWYWx1ZSA9IHNlbGYudGV4dCgpLnJlcGxhY2UoL1xzL2csICIiKTsKCiAgICAgICAgfQoKICAgICAgICAvLyBhZGQgdGhlIGluZGV4IGlmIHdlIG5lZWQgdG8KICAgICAgICBpZiAoYXJyLmxlbmd0aCkgewogICAgICAgICAgaGFzaFZhbHVlICs9ICIiICsgaW5kZXg7CiAgICAgICAgfQoKICAgICAgICAvLyByZXR1cm4gdGhlIHZhbHVlCiAgICAgICAgcmV0dXJuIGhhc2hWYWx1ZTsKCiAgICAgIH0sCgogICAgICAvLyBfYXBwZW5kRWxlbWVudHMKICAgICAgLy8gLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgSGVscHMgY3JlYXRlIHRoZSB0YWJsZSBvZiBjb250ZW50cyBsaXN0IGJ5IGFwcGVuZGluZyBzdWJoZWFkZXIgZWxlbWVudHMKCiAgICAgIF9hcHBlbmRTdWJoZWFkZXJzOiBmdW5jdGlvbihzZWxmLCB1bCkgewoKICAgICAgICAvLyBUaGUgY3VycmVudCBlbGVtZW50IGluZGV4CiAgICAgICAgdmFyIGluZGV4ID0gJCh0aGlzKS5pbmRleChzZWxmLm9wdGlvbnMuc2VsZWN0b3JzKSwKCiAgICAgICAgICAvLyBGaW5kcyB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50CiAgICAgICAgICBwcmV2aW91c0hlYWRlciA9ICQoc2VsZi5vcHRpb25zLnNlbGVjdG9ycykuZXEoaW5kZXggLSAxKSwKCiAgICAgICAgICBjdXJyZW50VGFnTmFtZSA9ICskKHRoaXMpLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgcHJldmlvdXNUYWdOYW1lID0gK3ByZXZpb3VzSGVhZGVyLnByb3AoInRhZ05hbWUiKS5jaGFyQXQoMSksCgogICAgICAgICAgbGFzdFN1YmhlYWRlcjsKCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgaGVhZGVyIERPTSBlbGVtZW50IGlzIHNtYWxsZXIgdGhhbiB0aGUgcHJldmlvdXMgaGVhZGVyIERPTSBlbGVtZW50IG9yIHRoZSBmaXJzdCBzdWJoZWFkZXIKICAgICAgICBpZiAoY3VycmVudFRhZ05hbWUgPCBwcmV2aW91c1RhZ05hbWUpIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZChzdWJoZWFkZXJDbGFzcyArICJbZGF0YS10YWc9IiArIGN1cnJlbnRUYWdOYW1lICsgIl0iKS5sYXN0KCkuYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGhlYWRlciBET00gZWxlbWVudCBpcyB0aGUgc2FtZSB0eXBlIG9mIGhlYWRlcihlZy4gaDQpIGFzIHRoZSBwcmV2aW91cyBoZWFkZXIgRE9NIGVsZW1lbnQKICAgICAgICBlbHNlIGlmIChjdXJyZW50VGFnTmFtZSA9PT0gcHJldmlvdXNUYWdOYW1lKSB7CgogICAgICAgICAgdWwuZmluZChpdGVtQ2xhc3MpLmxhc3QoKS5hZnRlcihzZWxmLl9uZXN0RWxlbWVudHMoJCh0aGlzKSwgaW5kZXgpKTsKCiAgICAgICAgfSBlbHNlIHsKCiAgICAgICAgICAvLyBTZWxlY3RzIHRoZSBsYXN0IHVub3JkZXJlZCBsaXN0IEhUTUwgZm91bmQgd2l0aGluIHRoZSBIVE1MIGVsZW1lbnQgY2FsbGluZyB0aGUgcGx1Z2luCiAgICAgICAgICB1bC5maW5kKGl0ZW1DbGFzcykubGFzdCgpLgoKICAgICAgICAgIC8vIEFwcGVuZHMgYW4gdW5vcmRlcmVkTGlzdCBIVE1MIGVsZW1lbnQgdG8gdGhlIGR5bmFtaWMgYHVub3JkZXJlZExpc3RgIHZhcmlhYmxlIGFuZCBzZXRzIGEgY29tbW9uIGNsYXNzIG5hbWUKICAgICAgICAgIGFmdGVyKCQoIjx1bC8+IiwgewoKICAgICAgICAgICAgImNsYXNzIjogc3ViaGVhZGVyQ2xhc3NOYW1lLAoKICAgICAgICAgICAgImRhdGEtdGFnIjogY3VycmVudFRhZ05hbWUKCiAgICAgICAgICB9KSkubmV4dChzdWJoZWFkZXJDbGFzcykuCgogICAgICAgICAgLy8gQXBwZW5kcyBhIGxpc3QgaXRlbSBIVE1MIGVsZW1lbnQgdG8gdGhlIGxhc3QgdW5vcmRlcmVkIGxpc3QgSFRNTCBlbGVtZW50IGZvdW5kIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgICAgYXBwZW5kKHNlbGYuX25lc3RFbGVtZW50cygkKHRoaXMpLCBpbmRleCkpOwogICAgICAgIH0KCiAgICAgIH0sCgogICAgICAvLyBfc2V0RXZlbnRIYW5kbGVycwogICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tCiAgICAgIC8vICAgICAgQWRkcyBqUXVlcnkgZXZlbnQgaGFuZGxlcnMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cwogICAgICBfc2V0RXZlbnRIYW5kbGVyczogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgIC8vIFN0b3JlcyB0aGUgcGx1Z2luIGNvbnRleHQgaW4gdGhlIHNlbGYgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGhvbGQgYSBzcGVjaWZpYyBlbGVtZW50J3MgY29udGV4dAogICAgICAgICAgJHNlbGYsCgogICAgICAgICAgLy8gSW5zdGFudGlhdGVzIGEgbmV3IHZhcmlhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIHRvIGRldGVybWluZSB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uCiAgICAgICAgICBkdXJhdGlvbjsKCiAgICAgICAgLy8gRXZlbnQgZGVsZWdhdGlvbiB0aGF0IGxvb2tzIGZvciBhbnkgY2xpY2tzIG9uIGxpc3QgaXRlbSBlbGVtZW50cyBpbnNpZGUgb2YgdGhlIEhUTUwgZWxlbWVudCBjYWxsaW5nIHRoZSBwbHVnaW4KICAgICAgICB0aGlzLmVsZW1lbnQub24oImNsaWNrLnRvY2lmeSIsICJsaSIsIGZ1bmN0aW9uKGV2ZW50KSB7CgogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5oaXN0b3J5KSB7CgogICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaGFzaCA9ICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gUmVtb3ZlcyBoaWdobGlnaHRpbmcgZnJvbSBhbGwgb2YgdGhlIGxpc3QgaXRlbSdzCiAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgLy8gSGlnaGxpZ2h0cyB0aGUgY3VycmVudCBsaXN0IGl0ZW0gdGhhdCB3YXMgY2xpY2tlZAogICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgIC8vIElmIHRoZSBzaG93QW5kSGlkZSBvcHRpb24gaXMgdHJ1ZQogICAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5zaG93QW5kSGlkZSkgewoKICAgICAgICAgICAgdmFyIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArICQodGhpcykuYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICAgICAgc2VsZi5fdHJpZ2dlclNob3coZWxlbSk7CgogICAgICAgICAgfQoKICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQodGhpcykpOwoKICAgICAgICB9KTsKCiAgICAgICAgLy8gTW91c2VlbnRlciBhbmQgTW91c2VsZWF2ZSBldmVudCBoYW5kbGVycyBmb3IgdGhlIGxpc3QgaXRlbSdzIHdpdGhpbiB0aGUgSFRNTCBlbGVtZW50IGNhbGxpbmcgdGhlIHBsdWdpbgogICAgICAgIHRoaXMuZWxlbWVudC5maW5kKCJsaSIpLm9uKHsKCiAgICAgICAgICAvLyBNb3VzZWVudGVyIGV2ZW50IGhhbmRsZXIKICAgICAgICAgICJtb3VzZWVudGVyLnRvY2lmeSI6IGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgLy8gQWRkcyBhIGhvdmVyIENTUyBjbGFzcyB0byB0aGUgY3VycmVudCBsaXN0IGl0ZW0KICAgICAgICAgICAgJCh0aGlzKS5hZGRDbGFzcyhzZWxmLmhvdmVyQ2xhc3MpOwoKICAgICAgICAgICAgLy8gTWFrZXMgc3VyZSB0aGUgY3Vyc29yIGlzIHNldCB0byB0aGUgcG9pbnRlciBpY29uCiAgICAgICAgICAgICQodGhpcykuY3NzKCJjdXJzb3IiLCAicG9pbnRlciIpOwoKICAgICAgICAgIH0sCgogICAgICAgICAgLy8gTW91c2VsZWF2ZSBldmVudCBoYW5kbGVyCiAgICAgICAgICAibW91c2VsZWF2ZS50b2NpZnkiOiBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMudGhlbWUgIT09ICJib290c3RyYXAiKSB7CgogICAgICAgICAgICAgIC8vIFJlbW92ZXMgdGhlIGhvdmVyIENTUyBjbGFzcyBmcm9tIHRoZSBjdXJyZW50IGxpc3QgaXRlbQogICAgICAgICAgICAgICQodGhpcykucmVtb3ZlQ2xhc3Moc2VsZi5ob3ZlckNsYXNzKTsKCiAgICAgICAgICAgIH0KCiAgICAgICAgICB9CiAgICAgICAgfSk7CgogICAgICAgIC8vIG9ubHkgYXR0YWNoIGhhbmRsZXIgaWYgbmVlZGVkIChleHBlbnNpdmUgaW4gSUUpCiAgICAgICAgaWYgKHNlbGYub3B0aW9ucy5leHRlbmRQYWdlIHx8IHNlbGYub3B0aW9ucy5oaWdobGlnaHRPblNjcm9sbCB8fCBzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSB8fCBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCkgewogICAgICAgICAgLy8gV2luZG93IHNjcm9sbCBldmVudCBoYW5kbGVyCiAgICAgICAgICAkKHdpbmRvdykub24oInNjcm9sbC50b2NpZnkiLCBmdW5jdGlvbigpIHsKCiAgICAgICAgICAgIC8vIE9uY2UgYWxsIGFuaW1hdGlvbnMgb24gdGhlIHBhZ2UgYXJlIGNvbXBsZXRlLCB0aGlzIGNhbGxiYWNrIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkCiAgICAgICAgICAgICQoImh0bWwsIGJvZHkiKS5wcm9taXNlKCkuZG9uZShmdW5jdGlvbigpIHsKCiAgICAgICAgICAgICAgLy8gTG9jYWwgdmFyaWFibGVzCgogICAgICAgICAgICAgIC8vIFN0b3JlcyBob3cgZmFyIHRoZSB1c2VyIGhhcyBzY3JvbGxlZAogICAgICAgICAgICAgIHZhciB3aW5TY3JvbGxUb3AgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCksCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBoZWlnaHQgb2YgdGhlIHdpbmRvdwogICAgICAgICAgICAgICAgd2luSGVpZ2h0ID0gJCh3aW5kb3cpLmhlaWdodCgpLAoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgaGVpZ2h0IG9mIHRoZSBkb2N1bWVudAogICAgICAgICAgICAgICAgZG9jSGVpZ2h0ID0gJChkb2N1bWVudCkuaGVpZ2h0KCksCgogICAgICAgICAgICAgICAgc2Nyb2xsSGVpZ2h0ID0gJCgiYm9keSIpWzBdLnNjcm9sbEhlaWdodCwKCiAgICAgICAgICAgICAgICAvLyBJbnN0YW50aWF0ZXMgYSB2YXJpYWJsZSB0aGF0IHdpbGwgYmUgdXNlZCB0byBob2xkIGEgc2VsZWN0ZWQgSFRNTCBlbGVtZW50CiAgICAgICAgICAgICAgICBlbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtLAoKICAgICAgICAgICAgICAgIGxhc3RFbGVtT2Zmc2V0LAoKICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtOwoKICAgICAgICAgICAgICBpZiAoc2VsZi5vcHRpb25zLmV4dGVuZFBhZ2UpIHsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgdXNlciBoYXMgc2Nyb2xsZWQgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgdGhlIGxhc3QgdG9jIGl0ZW0gaXMgbm90IGZvY3VzZWQKICAgICAgICAgICAgICAgIGlmICgoc2VsZi53ZWJraXQgJiYgd2luU2Nyb2xsVG9wID49IHNjcm9sbEhlaWdodCAtIHdpbkhlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSB8fCAoIXNlbGYud2Via2l0ICYmIHdpbkhlaWdodCArIHdpblNjcm9sbFRvcCA+IGRvY0hlaWdodCAtIHNlbGYub3B0aW9ucy5leHRlbmRQYWdlT2Zmc2V0KSkgewoKICAgICAgICAgICAgICAgICAgaWYgKCEkKGV4dGVuZFBhZ2VDbGFzcykubGVuZ3RoKSB7CgogICAgICAgICAgICAgICAgICAgIGxhc3RFbGVtID0gJCgnZGl2W2RhdGEtdW5pcXVlPSInICsgJChpdGVtQ2xhc3MpLmxhc3QoKS5hdHRyKCJkYXRhLXVuaXF1ZSIpICsgJyJdJyk7CgogICAgICAgICAgICAgICAgICAgIGlmICghbGFzdEVsZW0ubGVuZ3RoKSByZXR1cm47CgogICAgICAgICAgICAgICAgICAgIC8vIEdldHMgdGhlIHRvcCBvZmZzZXQgb2YgdGhlIHBhZ2UgaGVhZGVyIHRoYXQgaXMgbGlua2VkIHRvIHRoZSBsYXN0IHRvYyBpdGVtCiAgICAgICAgICAgICAgICAgICAgbGFzdEVsZW1PZmZzZXQgPSBsYXN0RWxlbS5vZmZzZXQoKS50b3A7CgogICAgICAgICAgICAgICAgICAgIC8vIEFwcGVuZHMgYSBkaXYgdG8gdGhlIGJvdHRvbSBvZiB0aGUgcGFnZSBhbmQgc2V0cyB0aGUgaGVpZ2h0IHRvIHRoZSBkaWZmZXJlbmNlIG9mIHRoZSB3aW5kb3cgc2Nyb2xsVG9wIGFuZCB0aGUgbGFzdCBlbGVtZW50J3MgcG9zaXRpb24gdG9wIG9mZnNldAogICAgICAgICAgICAgICAgICAgICQoc2VsZi5vcHRpb25zLmNvbnRleHQpLmFwcGVuZCgkKCI8ZGl2Lz4iLCB7CgogICAgICAgICAgICAgICAgICAgICAgImNsYXNzIjogZXh0ZW5kUGFnZUNsYXNzTmFtZSwKCiAgICAgICAgICAgICAgICAgICAgICAiaGVpZ2h0IjogTWF0aC5hYnMobGFzdEVsZW1PZmZzZXQgLSB3aW5TY3JvbGxUb3ApICsgInB4IiwKCiAgICAgICAgICAgICAgICAgICAgICAiZGF0YS11bmlxdWUiOiBleHRlbmRQYWdlQ2xhc3NOYW1lCgogICAgICAgICAgICAgICAgICAgIH0pKTsKCiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYuZXh0ZW5kUGFnZVNjcm9sbCkgewoKICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRFbGVtID0gc2VsZi5lbGVtZW50LmZpbmQoJ2xpLicgKyBzZWxmLmZvY3VzQ2xhc3MpOwoKICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3Njcm9sbFRvKCQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGN1cnJlbnRFbGVtLmF0dHIoImRhdGEtdW5pcXVlIikgKyAnIl0nKSk7CgogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgLy8gVGhlIHplcm8gdGltZW91dCBlbnN1cmVzIHRoZSBmb2xsb3dpbmcgY29kZSBpcyBydW4gYWZ0ZXIgdGhlIHNjcm9sbCBldmVudHMKICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewoKICAgICAgICAgICAgICAgIC8vIF9Mb2NhbCB2YXJpYWJsZXNfCgogICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBkaXN0YW5jZSB0byB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIHZhciBjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPSBudWxsLAoKICAgICAgICAgICAgICAgICAgLy8gU3RvcmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgICAgY2xvc2VzdEFuY2hvcklkeCA9IG51bGwsCgogICAgICAgICAgICAgICAgICAvLyBLZWVwcyBhIHJlZmVyZW5jZSB0byBhbGwgYW5jaG9ycwogICAgICAgICAgICAgICAgICBhbmNob3JzID0gJChzZWxmLm9wdGlvbnMuY29udGV4dCkuZmluZCgiZGl2W2RhdGEtdW5pcXVlXSIpLAoKICAgICAgICAgICAgICAgICAgYW5jaG9yVGV4dDsKCiAgICAgICAgICAgICAgICAvLyBEZXRlcm1pbmVzIHRoZSBpbmRleCBvZiB0aGUgY2xvc2VzdCBhbmNob3IKICAgICAgICAgICAgICAgIGFuY2hvcnMuZWFjaChmdW5jdGlvbihpZHgpIHsKICAgICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlID0gTWF0aC5hYnMoKCQodGhpcykubmV4dCgpLmxlbmd0aCA/ICQodGhpcykubmV4dCgpIDogJCh0aGlzKSkub2Zmc2V0KCkudG9wIC0gd2luU2Nyb2xsVG9wIC0gc2VsZi5vcHRpb25zLmhpZ2hsaWdodE9mZnNldCk7CiAgICAgICAgICAgICAgICAgIGlmIChjbG9zZXN0QW5jaG9yRGlzdGFuY2UgPT0gbnVsbCB8fCBkaXN0YW5jZSA8IGNsb3Nlc3RBbmNob3JEaXN0YW5jZSkgewogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JEaXN0YW5jZSA9IGRpc3RhbmNlOwogICAgICAgICAgICAgICAgICAgIGNsb3Nlc3RBbmNob3JJZHggPSBpZHg7CiAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKCiAgICAgICAgICAgICAgICBhbmNob3JUZXh0ID0gJChhbmNob3JzW2Nsb3Nlc3RBbmNob3JJZHhdKS5hdHRyKCJkYXRhLXVuaXF1ZSIpOwoKICAgICAgICAgICAgICAgIC8vIFN0b3JlcyB0aGUgbGlzdCBpdGVtIEhUTUwgZWxlbWVudCB0aGF0IGNvcnJlc3BvbmRzIHRvIHRoZSBjdXJyZW50bHkgdHJhdmVyc2VkIGFuY2hvciB0YWcKICAgICAgICAgICAgICAgIGVsZW0gPSAkKCdsaVtkYXRhLXVuaXF1ZT0iJyArIGFuY2hvclRleHQgKyAnIl0nKTsKCiAgICAgICAgICAgICAgICAvLyBJZiB0aGUgYGhpZ2hsaWdodE9uU2Nyb2xsYCBvcHRpb24gaXMgdHJ1ZSBhbmQgYSBuZXh0IGVsZW1lbnQgaXMgZm91bmQKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuaGlnaGxpZ2h0T25TY3JvbGwgJiYgZWxlbS5sZW5ndGgpIHsKCiAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZXMgaGlnaGxpZ2h0aW5nIGZyb20gYWxsIG9mIHRoZSBsaXN0IGl0ZW0ncwogICAgICAgICAgICAgICAgICBzZWxmLmVsZW1lbnQuZmluZCgiLiIgKyBzZWxmLmZvY3VzQ2xhc3MpLnJlbW92ZUNsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgICAvLyBIaWdobGlnaHRzIHRoZSBjb3JyZXNwb25kaW5nIGxpc3QgaXRlbQogICAgICAgICAgICAgICAgICBlbGVtLmFkZENsYXNzKHNlbGYuZm9jdXNDbGFzcyk7CgogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2Nyb2xsSGlzdG9yeSkgewoKICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5oYXNoICE9PSAiIyIgKyBhbmNob3JUZXh0KSB7CgogICAgICAgICAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZXBsYWNlKCIjIiArIGFuY2hvclRleHQpOwoKICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIC8vIElmIHRoZSBgc2hvd0FuZEhpZGVPblNjcm9sbGAgb3B0aW9uIGlzIHRydWUKICAgICAgICAgICAgICAgIGlmIChzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGVPblNjcm9sbCAmJiBzZWxmLm9wdGlvbnMuc2hvd0FuZEhpZGUpIHsKCiAgICAgICAgICAgICAgICAgIHNlbGYuX3RyaWdnZXJTaG93KGVsZW0sIHRydWUpOwoKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgfSwgMCk7CgogICAgICAgICAgICB9KTsKCiAgICAgICAgICB9KTsKICAgICAgICB9CgogICAgICB9LAoKICAgICAgLy8gU2hvdwogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgT3BlbnMgdGhlIGN1cnJlbnQgc3ViLWhlYWRlcgogICAgICBzaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgLy8gU3RvcmVzIHRoZSBwbHVnaW4gY29udGV4dCBpbiB0aGUgYHNlbGZgIHZhcmlhYmxlCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzLAogICAgICAgICAgZWxlbWVudCA9IGVsZW07CgogICAgICAgIC8vIElmIHRoZSBzdWItaGVhZGVyIGlzIG5vdCBhbHJlYWR5IHZpc2libGUKICAgICAgICBpZiAoIWVsZW0uaXMoIjp2aXNpYmxlIikpIHsKCiAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50IGRvZXMgbm90IGhhdmUgYW55IG5lc3RlZCBzdWJoZWFkZXJzLCBpcyBub3QgYSBoZWFkZXIsIGFuZCBpdHMgcGFyZW50IGlzIG5vdCB2aXNpYmxlCiAgICAgICAgICBpZiAoIWVsZW0uZmluZChzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSAmJiAhZWxlbS5wYXJlbnQoKS5pcygiOnZpc2libGUiKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIGFsbCBvZiB0aGUgc3ViaGVhZGVycyB3aXRoaW4gdGhlIGN1cnJlbnQgaGVhZGVyCiAgICAgICAgICAgIGVsZW0gPSBlbGVtLnBhcmVudHMoc3ViaGVhZGVyQ2xhc3MpLmFkZChlbGVtKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGFueSBuZXN0ZWQgc3ViaGVhZGVycyBhbmQgaXMgbm90IGEgaGVhZGVyCiAgICAgICAgICBlbHNlIGlmICghZWxlbS5jaGlsZHJlbihzdWJoZWFkZXJDbGFzcykubGVuZ3RoICYmICFlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSkgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgY3VycmVudCBlbGVtZW50IHRvIHRoZSBjbG9zZXN0IHN1YmhlYWRlcgogICAgICAgICAgICBlbGVtID0gZWxlbS5jbG9zZXN0KHN1YmhlYWRlckNsYXNzKTsKCiAgICAgICAgICB9CgogICAgICAgICAgLy9EZXRlcm1pbmVzIHdoYXQgalF1ZXJ5IGVmZmVjdCB0byB1c2UKICAgICAgICAgIHN3aXRjaCAoc2VsZi5vcHRpb25zLnNob3dFZmZlY3QpIHsKCiAgICAgICAgICAgIC8vVXNlcyBgbm8gZWZmZWN0YAogICAgICAgICAgICBjYXNlICJub25lIjoKCiAgICAgICAgICAgICAgZWxlbS5zaG93KCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL1VzZXMgdGhlIGpRdWVyeSBgc2hvd2Agc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAic2hvdyI6CgogICAgICAgICAgICAgIGVsZW0uc2hvdyhzZWxmLm9wdGlvbnMuc2hvd0VmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAgIC8vVXNlcyB0aGUgalF1ZXJ5IGBzbGlkZURvd25gIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICAgIGNhc2UgInNsaWRlRG93biI6CgogICAgICAgICAgICAgIGVsZW0uc2xpZGVEb3duKHNlbGYub3B0aW9ucy5zaG93RWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgICAgLy9Vc2VzIHRoZSBqUXVlcnkgYGZhZGVJbmAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgICAgY2FzZSAiZmFkZUluIjoKCiAgICAgICAgICAgICAgZWxlbS5mYWRlSW4oc2VsZi5vcHRpb25zLnNob3dFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgICAvL0lmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBgalF1ZXJ5VUkgc2hvdyBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICAgIGRlZmF1bHQ6CgogICAgICAgICAgICAgIGVsZW0uc2hvdygpOwoKICAgICAgICAgICAgICBicmVhazsKCiAgICAgICAgICB9CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgc3ViaGVhZGVyIHBhcmVudCBlbGVtZW50IGlzIGEgaGVhZGVyCiAgICAgICAgaWYgKGVsZW0ucGFyZW50KCkuaXMoaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gSGlkZXMgYWxsIG5vbi1hY3RpdmUgc3ViLWhlYWRlcnMKICAgICAgICAgIHNlbGYuaGlkZSgkKHN1YmhlYWRlckNsYXNzKS5ub3QoZWxlbSkpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IHN1YmhlYWRlciBwYXJlbnQgZWxlbWVudCBpcyBub3QgYSBoZWFkZXIKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBIaWRlcyBhbGwgbm9uLWFjdGl2ZSBzdWItaGVhZGVycwogICAgICAgICAgc2VsZi5oaWRlKCQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLmNsb3Nlc3QoaGVhZGVyQ2xhc3MpLmZpbmQoc3ViaGVhZGVyQ2xhc3MpLm5vdChlbGVtLnNpYmxpbmdzKCkpKSk7CgogICAgICAgIH0KCiAgICAgICAgLy8gTWFpbnRhaW5zIGNoYWluYWJsaXR5CiAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICB9LAoKICAgICAgLy8gSGlkZQogICAgICAvLyAtLS0tCiAgICAgIC8vICAgICAgQ2xvc2VzIHRoZSBjdXJyZW50IHN1Yi1oZWFkZXIKICAgICAgaGlkZTogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICAvLyBTdG9yZXMgdGhlIHBsdWdpbiBjb250ZXh0IGluIHRoZSBgc2VsZmAgdmFyaWFibGUKICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CgogICAgICAgIC8vRGV0ZXJtaW5lcyB3aGF0IGpRdWVyeSBlZmZlY3QgdG8gdXNlCiAgICAgICAgc3dpdGNoIChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdCkgewoKICAgICAgICAgIC8vIFVzZXMgYG5vIGVmZmVjdGAKICAgICAgICAgIGNhc2UgIm5vbmUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIFVzZXMgdGhlIGpRdWVyeSBgaGlkZWAgc3BlY2lhbCBlZmZlY3QKICAgICAgICAgIGNhc2UgImhpZGUiOgoKICAgICAgICAgICAgZWxlbS5oaWRlKHNlbGYub3B0aW9ucy5oaWRlRWZmZWN0U3BlZWQpOwoKICAgICAgICAgICAgYnJlYWs7CgogICAgICAgICAgICAvLyBVc2VzIHRoZSBqUXVlcnkgYHNsaWRlVXBgIHNwZWNpYWwgZWZmZWN0CiAgICAgICAgICBjYXNlICJzbGlkZVVwIjoKCiAgICAgICAgICAgIGVsZW0uc2xpZGVVcChzZWxmLm9wdGlvbnMuaGlkZUVmZmVjdFNwZWVkKTsKCiAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgLy8gVXNlcyB0aGUgalF1ZXJ5IGBmYWRlT3V0YCBzcGVjaWFsIGVmZmVjdAogICAgICAgICAgY2FzZSAiZmFkZU91dCI6CgogICAgICAgICAgICBlbGVtLmZhZGVPdXQoc2VsZi5vcHRpb25zLmhpZGVFZmZlY3RTcGVlZCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgICAgIC8vIElmIG5vbmUgb2YgdGhlIGFib3ZlIG9wdGlvbnMgd2VyZSBwYXNzZWQsIHRoZW4gYSBganF1ZXJ5VUkgaGlkZSBlZmZlY3RgIGlzIGV4cGVjdGVkCiAgICAgICAgICBkZWZhdWx0OgoKICAgICAgICAgICAgZWxlbS5oaWRlKCk7CgogICAgICAgICAgICBicmVhazsKCiAgICAgICAgfQoKICAgICAgICAvLyBNYWludGFpbnMgY2hhaW5hYmxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKICAgICAgfSwKCiAgICAgIC8vIF90cmlnZ2VyU2hvdwogICAgICAvLyAtLS0tLS0tLS0tLS0KICAgICAgLy8gICAgICBEZXRlcm1pbmVzIHdoYXQgZWxlbWVudHMgZ2V0IHNob3duIG9uIHNjcm9sbCBhbmQgY2xpY2sKICAgICAgX3RyaWdnZXJTaG93OiBmdW5jdGlvbihlbGVtLCBzY3JvbGwpIHsKCiAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwoKICAgICAgICAvLyBJZiB0aGUgY3VycmVudCBlbGVtZW50J3MgcGFyZW50IGlzIGEgaGVhZGVyIGVsZW1lbnQgb3IgdGhlIG5leHQgZWxlbWVudCBpcyBhIG5lc3RlZCBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGlmIChlbGVtLnBhcmVudCgpLmlzKGhlYWRlckNsYXNzKSB8fCBlbGVtLm5leHQoKS5pcyhzdWJoZWFkZXJDbGFzcykpIHsKCiAgICAgICAgICAvLyBTaG93cyB0aGUgbmV4dCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLm5leHQoc3ViaGVhZGVyQ2xhc3MpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSBjdXJyZW50IGVsZW1lbnQncyBwYXJlbnQgaXMgYSBzdWJoZWFkZXIgZWxlbWVudAogICAgICAgIGVsc2UgaWYgKGVsZW0ucGFyZW50KCkuaXMoc3ViaGVhZGVyQ2xhc3MpKSB7CgogICAgICAgICAgLy8gU2hvd3MgdGhlIHBhcmVudCBzdWItaGVhZGVyIGVsZW1lbnQKICAgICAgICAgIHNlbGYuc2hvdyhlbGVtLnBhcmVudCgpLCBzY3JvbGwpOwoKICAgICAgICB9CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0sCgogICAgICAvLyBfYWRkQ1NTQ2xhc3NlcwogICAgICAvLyAtLS0tLS0tLS0tLS0tLQogICAgICAvLyAgICAgIEFkZHMgQ1NTIGNsYXNzZXMgdG8gdGhlIG5ld2x5IGdlbmVyYXRlZCB0YWJsZSBvZiBjb250ZW50cyBIVE1MCiAgICAgIF9hZGRDU1NDbGFzc2VzOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSBqcXVlcnlVSSB0aGVtZQogICAgICAgIGlmICh0aGlzLm9wdGlvbnMudGhlbWUgPT09ICJqcXVlcnl1aSIpIHsKCiAgICAgICAgICB0aGlzLmZvY3VzQ2xhc3MgPSAidWktc3RhdGUtZGVmYXVsdCI7CgogICAgICAgICAgdGhpcy5ob3ZlckNsYXNzID0gInVpLXN0YXRlLWhvdmVyIjsKCiAgICAgICAgICAvL0FkZHMgdGhlIGRlZmF1bHQgc3R5bGluZyB0byB0aGUgZHJvcGRvd24gbGlzdAogICAgICAgICAgdGhpcy5lbGVtZW50LmFkZENsYXNzKCJ1aS13aWRnZXQiKS5maW5kKCIudG9jLXRpdGxlIikuYWRkQ2xhc3MoInVpLXdpZGdldC1oZWFkZXIiKS5lbmQoKS5maW5kKCJsaSIpLmFkZENsYXNzKCJ1aS13aWRnZXQtY29udGVudCIpOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIHRoZSB1c2VyIHdhbnRzIGEgdHdpdHRlckJvb3RzdHJhcCB0aGVtZQogICAgICAgIGVsc2UgaWYgKHRoaXMub3B0aW9ucy50aGVtZSA9PT0gImJvb3RzdHJhcCIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibmF2IG5hdi1saXN0Iik7CgogICAgICAgICAgdGhpcy5mb2N1c0NsYXNzID0gImFjdGl2ZSI7CgogICAgICAgIH0KCiAgICAgICAgLy8gSWYgdGhlIHVzZXIgd2FudHMgYSB0d2l0dGVyQm9vdHN0cmFwIHRoZW1lCiAgICAgICAgZWxzZSBpZiAodGhpcy5vcHRpb25zLnRoZW1lID09PSAiYm9vdHN0cmFwMyIpIHsKCiAgICAgICAgICB0aGlzLmVsZW1lbnQuZmluZChoZWFkZXJDbGFzcyArICIsIiArIHN1YmhlYWRlckNsYXNzKS5hZGRDbGFzcygibGlzdC1ncm91cCIpOwoKICAgICAgICAgIHRoaXMuZWxlbWVudC5maW5kKGl0ZW1DbGFzcykuYWRkQ2xhc3MoImxpc3QtZ3JvdXAtaXRlbSIpOwoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9ICJhY3RpdmUiOwoKICAgICAgICB9CgogICAgICAgIC8vIElmIGEgdXNlciBkb2VzIG5vdCB3YW50IGEgcHJlYnVpbHQgdGhlbWUKICAgICAgICBlbHNlIHsKCiAgICAgICAgICAvLyBBZGRzIG1vcmUgbmV1dHJhbCBjbGFzc2VzIChpbnN0ZWFkIG9mIGpxdWVyeXVpKQoKICAgICAgICAgIHRoaXMuZm9jdXNDbGFzcyA9IHRvY0ZvY3VzQ2xhc3NOYW1lOwoKICAgICAgICAgIHRoaXMuaG92ZXJDbGFzcyA9IHRvY0hvdmVyQ2xhc3NOYW1lOwoKICAgICAgICB9CgogICAgICAgIC8vTWFpbnRhaW5zIGNoYWluYWJpbGl0eQogICAgICAgIHJldHVybiB0aGlzOwoKICAgICAgfSwKCiAgICAgIC8vIHNldE9wdGlvbgogICAgICAvLyAtLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIFRvY2lmeSBvcHRpb24gYWZ0ZXIgdGhlIHBsdWdpbiBpcyBpbnZva2VkCiAgICAgIHNldE9wdGlvbjogZnVuY3Rpb24oKSB7CgogICAgICAgIC8vIENhbGxzIHRoZSBqUXVlcnlVSSBXaWRnZXQgRmFjdG9yeSBzZXRPcHRpb24gbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb24uYXBwbHkodGhpcywgYXJndW1lbnRzKTsKCiAgICAgIH0sCgogICAgICAvLyBzZXRPcHRpb25zCiAgICAgIC8vIC0tLS0tLS0tLS0KICAgICAgLy8gICAgICBTZXRzIGEgc2luZ2xlIG9yIG11bHRpcGxlIFRvY2lmeSBvcHRpb25zIGFmdGVyIHRoZSBwbHVnaW4gaXMgaW52b2tlZAogICAgICBzZXRPcHRpb25zOiBmdW5jdGlvbigpIHsKCiAgICAgICAgLy8gQ2FsbHMgdGhlIGpRdWVyeVVJIFdpZGdldCBGYWN0b3J5IHNldE9wdGlvbnMgbWV0aG9kCiAgICAgICAgJC5XaWRnZXQucHJvdG90eXBlLl9zZXRPcHRpb25zLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CgogICAgICB9LAoKICAgICAgLy8gX3Njcm9sbFRvCiAgICAgIC8vIC0tLS0tLS0tLQogICAgICAvLyAgICAgIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyBlbGVtZW50CiAgICAgIF9zY3JvbGxUbzogZnVuY3Rpb24oZWxlbSkgewoKICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCiAgICAgICAgICBkdXJhdGlvbiA9IHNlbGYub3B0aW9ucy5zbW9vdGhTY3JvbGwgfHwgMCwKICAgICAgICAgIHNjcm9sbFRvID0gc2VsZi5vcHRpb25zLnNjcm9sbFRvLAogICAgICAgICAgY3VycmVudERpdiA9ICQoJ2RpdltkYXRhLXVuaXF1ZT0iJyArIGVsZW0uYXR0cigiZGF0YS11bmlxdWUiKSArICciXScpOwoKICAgICAgICBpZiAoIWN1cnJlbnREaXYubGVuZ3RoKSB7CgogICAgICAgICAgcmV0dXJuIHNlbGY7CgogICAgICAgIH0KCiAgICAgICAgLy8gT25jZSBhbGwgYW5pbWF0aW9ucyBvbiB0aGUgcGFnZSBhcmUgY29tcGxldGUsIHRoaXMgY2FsbGJhY2sgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQKICAgICAgICAkKCJodG1sLCBib2R5IikucHJvbWlzZSgpLmRvbmUoZnVuY3Rpb24oKSB7CgogICAgICAgICAgLy8gQW5pbWF0ZXMgdGhlIGh0bWwgYW5kIGJvZHkgZWxlbWVudCBzY3JvbGx0b3BzCiAgICAgICAgICAkKCJodG1sLCBib2R5IikuYW5pbWF0ZSh7CgogICAgICAgICAgICAvLyBTZXRzIHRoZSBqUXVlcnkgYHNjcm9sbFRvcGAgdG8gdGhlIHRvcCBvZmZzZXQgb2YgdGhlIEhUTUwgZGl2IHRhZyB0aGF0IG1hdGNoZXMgdGhlIGN1cnJlbnQgbGlzdCBpdGVtJ3MgYGRhdGEtdW5pcXVlYCB0YWcKICAgICAgICAgICAgInNjcm9sbFRvcCI6IGN1cnJlbnREaXYub2Zmc2V0KCkudG9wIC0gKCQuaXNGdW5jdGlvbihzY3JvbGxUbykgPyBzY3JvbGxUby5jYWxsKCkgOiBzY3JvbGxUbykgKyAicHgiCgogICAgICAgICAgfSwgewoKICAgICAgICAgICAgLy8gU2V0cyB0aGUgc21vb3RoU2Nyb2xsIGFuaW1hdGlvbiB0aW1lIGR1cmF0aW9uIHRvIHRoZSBzbW9vdGhTY3JvbGxTcGVlZCBvcHRpb24KICAgICAgICAgICAgImR1cmF0aW9uIjogZHVyYXRpb24KCiAgICAgICAgICB9KTsKCiAgICAgICAgfSk7CgogICAgICAgIC8vIE1haW50YWlucyBjaGFpbmFiaWxpdHkKICAgICAgICByZXR1cm4gc2VsZjsKCiAgICAgIH0KCiAgICB9KTsKCiAgfSkpOyAvL2VuZCBvZiBwbHVnaW4K"></script>
<script src="data:application/javascript;base64,CgovKioKICogalF1ZXJ5IFBsdWdpbjogU3RpY2t5IFRhYnMKICoKICogQGF1dGhvciBBaWRhbiBMaXN0ZXIgPGFpZGFuQHBocC5uZXQ+CiAqIGFkYXB0ZWQgYnkgUnViZW4gQXJzbGFuIHRvIGFjdGl2YXRlIHBhcmVudCB0YWJzIHRvbwogKiBodHRwOi8vd3d3LmFpZGFubGlzdGVyLmNvbS8yMDE0LzAzL3BlcnNpc3RpbmctdGhlLXRhYi1zdGF0ZS1pbi1ib290c3RyYXAvCiAqLwooZnVuY3Rpb24oJCkgewogICJ1c2Ugc3RyaWN0IjsKICAkLmZuLnJtYXJrZG93blN0aWNreVRhYnMgPSBmdW5jdGlvbigpIHsKICAgIHZhciBjb250ZXh0ID0gdGhpczsKICAgIC8vIFNob3cgdGhlIHRhYiBjb3JyZXNwb25kaW5nIHdpdGggdGhlIGhhc2ggaW4gdGhlIFVSTCwgb3IgdGhlIGZpcnN0IHRhYgogICAgdmFyIHNob3dTdHVmZkZyb21IYXNoID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciBoYXNoID0gd2luZG93LmxvY2F0aW9uLmhhc2g7CiAgICAgIHZhciBzZWxlY3RvciA9IGhhc2ggPyAnYVtocmVmPSInICsgaGFzaCArICciXScgOiAnbGkuYWN0aXZlID4gYSc7CiAgICAgIHZhciAkc2VsZWN0b3IgPSAkKHNlbGVjdG9yLCBjb250ZXh0KTsKICAgICAgaWYoJHNlbGVjdG9yLmRhdGEoJ3RvZ2dsZScpID09PSAidGFiIikgewogICAgICAgICRzZWxlY3Rvci50YWIoJ3Nob3cnKTsKICAgICAgICAvLyB3YWxrIHVwIHRoZSBhbmNlc3RvcnMgb2YgdGhpcyBlbGVtZW50LCBzaG93IGFueSBoaWRkZW4gdGFicwogICAgICAgICRzZWxlY3Rvci5wYXJlbnRzKCcuc2VjdGlvbi50YWJzZXQnKS5lYWNoKGZ1bmN0aW9uKGksIGVsbSkgewogICAgICAgICAgdmFyIGxpbmsgPSAkKCdhW2hyZWY9IiMnICsgJChlbG0pLmF0dHIoJ2lkJykgKyAnIl0nKTsKICAgICAgICAgIGlmKGxpbmsuZGF0YSgndG9nZ2xlJykgPT09ICJ0YWIiKSB7CiAgICAgICAgICAgIGxpbmsudGFiKCJzaG93Iik7CiAgICAgICAgICB9CiAgICAgICAgfSk7CiAgICAgIH0KICAgIH07CgoKICAgIC8vIFNldCB0aGUgY29ycmVjdCB0YWIgd2hlbiB0aGUgcGFnZSBsb2FkcwogICAgc2hvd1N0dWZmRnJvbUhhc2goY29udGV4dCk7CgogICAgLy8gU2V0IHRoZSBjb3JyZWN0IHRhYiB3aGVuIGEgdXNlciB1c2VzIHRoZWlyIGJhY2svZm9yd2FyZCBidXR0b24KICAgICQod2luZG93KS5vbignaGFzaGNoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICBzaG93U3R1ZmZGcm9tSGFzaChjb250ZXh0KTsKICAgIH0pOwoKICAgIC8vIENoYW5nZSB0aGUgVVJMIHdoZW4gdGFicyBhcmUgY2xpY2tlZAogICAgJCgnYScsIGNvbnRleHQpLm9uKCdjbGljaycsIGZ1bmN0aW9uKGUpIHsKICAgICAgaGlzdG9yeS5wdXNoU3RhdGUobnVsbCwgbnVsbCwgdGhpcy5ocmVmKTsKICAgICAgc2hvd1N0dWZmRnJvbUhhc2goY29udGV4dCk7CiAgICB9KTsKCiAgICByZXR1cm4gdGhpczsKICB9Owp9KGpRdWVyeSkpOwoKd2luZG93LmJ1aWxkVGFic2V0cyA9IGZ1bmN0aW9uKHRvY0lEKSB7CgogIC8vIGJ1aWxkIGEgdGFic2V0IGZyb20gYSBzZWN0aW9uIGRpdiB3aXRoIHRoZSAudGFic2V0IGNsYXNzCiAgZnVuY3Rpb24gYnVpbGRUYWJzZXQodGFic2V0KSB7CgogICAgLy8gY2hlY2sgZm9yIGZhZGUgYW5kIHBpbGxzIG9wdGlvbnMKICAgIHZhciBmYWRlID0gdGFic2V0Lmhhc0NsYXNzKCJ0YWJzZXQtZmFkZSIpOwogICAgdmFyIHBpbGxzID0gdGFic2V0Lmhhc0NsYXNzKCJ0YWJzZXQtcGlsbHMiKTsKICAgIHZhciBuYXZDbGFzcyA9IHBpbGxzID8gIm5hdi1waWxscyIgOiAibmF2LXRhYnMiOwoKICAgIC8vIGRldGVybWluZSB0aGUgaGVhZGluZyBsZXZlbCBvZiB0aGUgdGFic2V0IGFuZCB0YWJzCiAgICB2YXIgbWF0Y2ggPSB0YWJzZXQuYXR0cignY2xhc3MnKS5tYXRjaCgvbGV2ZWwoXGQpIC8pOwogICAgaWYgKG1hdGNoID09PSBudWxsKQogICAgICByZXR1cm47CiAgICB2YXIgdGFic2V0TGV2ZWwgPSBOdW1iZXIobWF0Y2hbMV0pOwogICAgdmFyIHRhYkxldmVsID0gdGFic2V0TGV2ZWwgKyAxOwoKICAgIC8vIGZpbmQgYWxsIHN1YmhlYWRpbmdzIGltbWVkaWF0ZWx5IGJlbG93CiAgICB2YXIgdGFicyA9IHRhYnNldC5maW5kKCJkaXYuc2VjdGlvbi5sZXZlbCIgKyB0YWJMZXZlbCk7CiAgICBpZiAoIXRhYnMubGVuZ3RoKQogICAgICByZXR1cm47CgogICAgLy8gY3JlYXRlIHRhYmxpc3QgYW5kIHRhYi1jb250ZW50IGVsZW1lbnRzCiAgICB2YXIgdGFiTGlzdCA9ICQoJzx1bCBjbGFzcz0ibmF2ICcgKyBuYXZDbGFzcyArICciIHJvbGU9InRhYmxpc3QiPjwvdWw+Jyk7CiAgICAkKHRhYnNbMF0pLmJlZm9yZSh0YWJMaXN0KTsKICAgIHZhciB0YWJDb250ZW50ID0gJCgnPGRpdiBjbGFzcz0idGFiLWNvbnRlbnQiPjwvZGl2PicpOwogICAgJCh0YWJzWzBdKS5iZWZvcmUodGFiQ29udGVudCk7CgogICAgLy8gYnVpbGQgdGhlIHRhYnNldAogICAgdmFyIGFjdGl2ZVRhYiA9IDA7CiAgICB0YWJzLmVhY2goZnVuY3Rpb24oaSkgewoKICAgICAgLy8gZ2V0IHRoZSB0YWIgZGl2CiAgICAgIHZhciB0YWIgPSAkKHRhYnNbaV0pOwoKICAgICAgLy8gZ2V0IHRoZSBpZCB0aGVuIHNhbml0aXplIGl0IGZvciB1c2Ugd2l0aCBib290c3RyYXAgdGFicwogICAgICB2YXIgaWQgPSB0YWIuYXR0cignaWQnKTsKCiAgICAgIC8vIHNlZSBpZiB0aGlzIGlzIG1hcmtlZCBhcyB0aGUgYWN0aXZlIHRhYgogICAgICBpZiAodGFiLmhhc0NsYXNzKCdhY3RpdmUnKSkKICAgICAgICBhY3RpdmVUYWIgPSBpOwoKICAgICAgLy8gcmVtb3ZlIGFueSB0YWJsZSBvZiBjb250ZW50cyBlbnRyaWVzIGFzc29jaWF0ZWQgd2l0aAogICAgICAvLyB0aGlzIElEIChzaW5jZSB3ZSdsbCBiZSByZW1vdmluZyB0aGUgaGVhZGluZyBlbGVtZW50KQogICAgICAkKCJkaXYjIiArIHRvY0lEICsgIiBsaSBhW2hyZWY9JyMiICsgaWQgKyAiJ10iKS5wYXJlbnQoKS5yZW1vdmUoKTsKCiAgICAgIC8vIHNhbml0aXplIHRoZSBpZCBmb3IgdXNlIHdpdGggYm9vdHN0cmFwIHRhYnMKICAgICAgaWQgPSBpZC5yZXBsYWNlKC9bLlwvPyYhIzw+XS9nLCAnJykucmVwbGFjZSgvXHMvZywgJ18nKTsKICAgICAgdGFiLmF0dHIoJ2lkJywgaWQpOwoKICAgICAgLy8gZ2V0IHRoZSBoZWFkaW5nIGVsZW1lbnQgd2l0aGluIGl0LCBncmFiIGl0J3MgdGV4dCwgdGhlbiByZW1vdmUgaXQKICAgICAgdmFyIGhlYWRpbmcgPSB0YWIuZmluZCgnaCcgKyB0YWJMZXZlbCArICc6Zmlyc3QnKTsKICAgICAgdmFyIGhlYWRpbmdUZXh0ID0gaGVhZGluZy5odG1sKCk7CiAgICAgIGhlYWRpbmcucmVtb3ZlKCk7CgogICAgICAvLyBidWlsZCBhbmQgYXBwZW5kIHRoZSB0YWIgbGlzdCBpdGVtCiAgICAgIHZhciBhID0gJCgnPGEgcm9sZT0idGFiIiBkYXRhLXRvZ2dsZT0idGFiIj4nICsgaGVhZGluZ1RleHQgKyAnPC9hPicpOwogICAgICBhLmF0dHIoJ2hyZWYnLCAnIycgKyBpZCk7CiAgICAgIGEuYXR0cignYXJpYS1jb250cm9scycsIGlkKTsKICAgICAgdmFyIGxpID0gJCgnPGxpIHJvbGU9InByZXNlbnRhdGlvbiI+PC9saT4nKTsKICAgICAgbGkuYXBwZW5kKGEpOwogICAgICB0YWJMaXN0LmFwcGVuZChsaSk7CgogICAgICAvLyBzZXQgaXQncyBhdHRyaWJ1dGVzCiAgICAgIHRhYi5hdHRyKCdyb2xlJywgJ3RhYnBhbmVsJyk7CiAgICAgIHRhYi5hZGRDbGFzcygndGFiLXBhbmUnKTsKICAgICAgdGFiLmFkZENsYXNzKCd0YWJiZWQtcGFuZScpOwogICAgICBpZiAoZmFkZSkKICAgICAgICB0YWIuYWRkQ2xhc3MoJ2ZhZGUnKTsKCiAgICAgIC8vIG1vdmUgaXQgaW50byB0aGUgdGFiIGNvbnRlbnQgZGl2CiAgICAgIHRhYi5kZXRhY2goKS5hcHBlbmRUbyh0YWJDb250ZW50KTsKICAgIH0pOwoKICAgIC8vIHNldCBhY3RpdmUgdGFiCiAgICAkKHRhYkxpc3QuY2hpbGRyZW4oJ2xpJylbYWN0aXZlVGFiXSkuYWRkQ2xhc3MoJ2FjdGl2ZScpOwogICAgdmFyIGFjdGl2ZSA9ICQodGFiQ29udGVudC5jaGlsZHJlbignZGl2LnNlY3Rpb24nKVthY3RpdmVUYWJdKTsKICAgIGFjdGl2ZS5hZGRDbGFzcygnYWN0aXZlJyk7CiAgICBpZiAoZmFkZSkKICAgICAgYWN0aXZlLmFkZENsYXNzKCdpbicpOwoKICAgIGlmICh0YWJzZXQuaGFzQ2xhc3MoInRhYnNldC1zdGlja3kiKSkKICAgICAgdGFic2V0LnJtYXJrZG93blN0aWNreVRhYnMoKTsKICB9CgogIC8vIGNvbnZlcnQgc2VjdGlvbiBkaXZzIHdpdGggdGhlIC50YWJzZXQgY2xhc3MgdG8gdGFic2V0cwogIHZhciB0YWJzZXRzID0gJCgiZGl2LnNlY3Rpb24udGFic2V0Iik7CiAgdGFic2V0cy5lYWNoKGZ1bmN0aW9uKGkpIHsKICAgIGJ1aWxkVGFic2V0KCQodGFic2V0c1tpXSkpOwogIH0pOwp9OwoK"></script>
<script src="data:application/javascript;base64,CndpbmRvdy5pbml0aWFsaXplQ29kZUZvbGRpbmcgPSBmdW5jdGlvbihzaG93KSB7CgogIC8vIGhhbmRsZXJzIGZvciBzaG93LWFsbCBhbmQgaGlkZSBhbGwKICAkKCIjcm1kLXNob3ctYWxsLWNvZGUiKS5jbGljayhmdW5jdGlvbigpIHsKICAgICQoJ2Rpdi5yLWNvZGUtY29sbGFwc2UnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAkKHRoaXMpLmNvbGxhcHNlKCdzaG93Jyk7CiAgICB9KTsKICB9KTsKICAkKCIjcm1kLWhpZGUtYWxsLWNvZGUiKS5jbGljayhmdW5jdGlvbigpIHsKICAgICQoJ2Rpdi5yLWNvZGUtY29sbGFwc2UnKS5lYWNoKGZ1bmN0aW9uKCkgewogICAgICAkKHRoaXMpLmNvbGxhcHNlKCdoaWRlJyk7CiAgICB9KTsKICB9KTsKCiAgLy8gaW5kZXggZm9yIHVuaXF1ZSBjb2RlIGVsZW1lbnQgaWRzCiAgdmFyIGN1cnJlbnRJbmRleCA9IDE7CgogIC8vIHNlbGVjdCBhbGwgUiBjb2RlIGJsb2NrcwogIHZhciByQ29kZUJsb2NrcyA9ICQoJ3ByZS5yLCBwcmUucHl0aG9uLCBwcmUuYmFzaCwgcHJlLnNxbCwgcHJlLmNwcCwgcHJlLnN0YW4sIHByZS5qdWxpYSwgcHJlLmZvbGRhYmxlJyk7CiAgckNvZGVCbG9ja3MuZWFjaChmdW5jdGlvbigpIHsKCiAgICAvLyBjcmVhdGUgYSBjb2xsYXBzYWJsZSBkaXYgdG8gd3JhcCB0aGUgY29kZSBpbgogICAgdmFyIGRpdiA9ICQoJzxkaXYgY2xhc3M9ImNvbGxhcHNlIHItY29kZS1jb2xsYXBzZSI+PC9kaXY+Jyk7CiAgICB2YXIgc2hvd1RoaXMgPSAoc2hvdyB8fCAkKHRoaXMpLmhhc0NsYXNzKCdmb2xkLXNob3cnKSkgJiYgISQodGhpcykuaGFzQ2xhc3MoJ2ZvbGQtaGlkZScpOwogICAgdmFyIGlkID0gJ3Jjb2RlLTY0M0UwRjM2JyArIGN1cnJlbnRJbmRleCsrOwogICAgZGl2LmF0dHIoJ2lkJywgaWQpOwogICAgJCh0aGlzKS5iZWZvcmUoZGl2KTsKICAgICQodGhpcykuZGV0YWNoKCkuYXBwZW5kVG8oZGl2KTsKCiAgICAvLyBhZGQgYSBzaG93IGNvZGUgYnV0dG9uIHJpZ2h0IGFib3ZlCiAgICB2YXIgc2hvd0NvZGVUZXh0ID0gJCgnPHNwYW4+JyArIChzaG93VGhpcyA/ICdIaWRlJyA6ICdDb2RlJykgKyAnPC9zcGFuPicpOwogICAgdmFyIHNob3dDb2RlQnV0dG9uID0gJCgnPGJ1dHRvbiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgYnRuLXhzIGJ0bi1zZWNvbmRhcnkgYnRuLXNtIGNvZGUtZm9sZGluZy1idG4gcHVsbC1yaWdodCBmbG9hdC1yaWdodCI+PC9idXR0b24+Jyk7CiAgICBzaG93Q29kZUJ1dHRvbi5hcHBlbmQoc2hvd0NvZGVUZXh0KTsKICAgIHNob3dDb2RlQnV0dG9uCiAgICAgICAgLmF0dHIoJ2RhdGEtdG9nZ2xlJywgJ2NvbGxhcHNlJykKICAgICAgICAuYXR0cignZGF0YS10YXJnZXQnLCAnIycgKyBpZCkKICAgICAgICAuYXR0cignYXJpYS1leHBhbmRlZCcsIHNob3dUaGlzKQogICAgICAgIC5hdHRyKCdhcmlhLWNvbnRyb2xzJywgaWQpOwoKICAgIHZhciBidXR0b25Sb3cgPSAkKCc8ZGl2IGNsYXNzPSJyb3ciPjwvZGl2PicpOwogICAgdmFyIGJ1dHRvbkNvbCA9ICQoJzxkaXYgY2xhc3M9ImNvbC1tZC0xMiI+PC9kaXY+Jyk7CgogICAgYnV0dG9uQ29sLmFwcGVuZChzaG93Q29kZUJ1dHRvbik7CiAgICBidXR0b25Sb3cuYXBwZW5kKGJ1dHRvbkNvbCk7CgogICAgZGl2LmJlZm9yZShidXR0b25Sb3cpOwoKICAgIC8vIHNob3cgdGhlIGRpdiBpZiBuZWNlc3NhcnkKICAgIGlmIChzaG93VGhpcykgZGl2LmNvbGxhcHNlKCdzaG93Jyk7CgogICAgLy8gdXBkYXRlIHN0YXRlIG9mIGJ1dHRvbiBvbiBzaG93L2hpZGUKICAgIC8vICAgKiBDaGFuZ2UgdGV4dAogICAgLy8gICAqIGFkZCBhIGNsYXNzIGZvciBpbnRlcm1lZGlhdGUgc3RhdGVzIHN0eWxpbmcKICAgIGRpdi5vbignaGlkZS5icy5jb2xsYXBzZScsIGZ1bmN0aW9uICgpIHsKICAgICAgc2hvd0NvZGVUZXh0LnRleHQoJ0NvZGUnKTsKICAgICAgc2hvd0NvZGVCdXR0b24uYWRkQ2xhc3MoJ2J0bi1jb2xsYXBzaW5nJyk7CiAgICB9KTsKICAgIGRpdi5vbignaGlkZGVuLmJzLmNvbGxhcHNlJywgZnVuY3Rpb24gKCkgewogICAgICBzaG93Q29kZUJ1dHRvbi5yZW1vdmVDbGFzcygnYnRuLWNvbGxhcHNpbmcnKTsKICAgIH0pOwogICAgZGl2Lm9uKCdzaG93LmJzLmNvbGxhcHNlJywgZnVuY3Rpb24gKCkgewogICAgICBzaG93Q29kZVRleHQudGV4dCgnSGlkZScpOwogICAgICBzaG93Q29kZUJ1dHRvbi5hZGRDbGFzcygnYnRuLWV4cGFuZGluZycpOwogICAgfSk7CiAgICBkaXYub24oJ3Nob3duLmJzLmNvbGxhcHNlJywgZnVuY3Rpb24gKCkgewogICAgICBzaG93Q29kZUJ1dHRvbi5yZW1vdmVDbGFzcygnYnRuLWV4cGFuZGluZycpOwogICAgfSk7CgogIH0pOwoKfQo="></script>
<link href="data:text/css,%2Epagedtable%20%7B%0Aoverflow%3A%20auto%3B%0Apadding%2Dleft%3A%208px%3B%0Apadding%2Dright%3A%208px%3B%0A%7D%0A%2Epagedtable%2Dwrapper%20%7B%0Aborder%3A%201px%20solid%20%23ccc%3B%0Aborder%2Dradius%3A%204px%3B%0Amargin%2Dbottom%3A%2010px%3B%0A%7D%0A%2Epagedtable%20table%20%7B%0Awidth%3A%20100%25%3B%0Amax%2Dwidth%3A%20100%25%3B%0Amargin%3A%200%3B%0A%7D%0A%2Epagedtable%20th%20%7B%0Apadding%3A%200%205px%200%205px%3B%0Aborder%3A%20none%3B%0Aborder%2Dbottom%3A%202px%20solid%20%23dddddd%3B%0Amin%2Dwidth%3A%2045px%3B%0A%7D%0A%2Epagedtable%2Dempty%20th%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Epagedtable%20td%20%7B%0Apadding%3A%200%204px%200%204px%3B%0A%7D%0A%2Epagedtable%20%2Eeven%20%7B%0Abackground%2Dcolor%3A%20rgba%28140%2C%20140%2C%20140%2C%200%2E1%29%3B%0A%7D%0A%2Epagedtable%2Dpadding%2Dcol%20%7B%0Adisplay%3A%20none%3B%0A%7D%0A%2Epagedtable%20a%20%7B%0A%2Dwebkit%2Dtouch%2Dcallout%3A%20none%3B%0A%2Dwebkit%2Duser%2Dselect%3A%20none%3B%0A%2Dkhtml%2Duser%2Dselect%3A%20none%3B%0A%2Dmoz%2Duser%2Dselect%3A%20none%3B%0A%2Dms%2Duser%2Dselect%3A%20none%3B%0Auser%2Dselect%3A%20none%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dnav%20%7B%0Acursor%3A%20pointer%3B%0Apadding%3A%200%205px%200%205px%3B%0Afloat%3A%20right%3B%0Aborder%3A%200%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dnav%2Ddisabled%20%7B%0Acursor%3A%20default%3B%0Atext%2Ddecoration%3A%20none%3B%0Acolor%3A%20%23999%3B%0A%7D%0Aa%2Epagedtable%2Dindex%2Dnav%2Ddisabled%3Ahover%20%7B%0Atext%2Ddecoration%3A%20none%3B%0Acolor%3A%20%23999%3B%0A%7D%0A%2Epagedtable%2Dindexes%20%7B%0Acursor%3A%20pointer%3B%0Afloat%3A%20right%3B%0Aborder%3A%200%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dcurrent%20%7B%0Acursor%3A%20default%3B%0Atext%2Ddecoration%3A%20none%3B%0Afont%2Dweight%3A%20bold%3B%0Acolor%3A%20%23333%3B%0Aborder%3A%200%3B%0A%7D%0Aa%2Epagedtable%2Dindex%2Dcurrent%3Ahover%20%7B%0Atext%2Ddecoration%3A%20none%3B%0Afont%2Dweight%3A%20bold%3B%0Acolor%3A%20%23333%3B%0A%7D%0A%2Epagedtable%2Dindex%20%7B%0Awidth%3A%2030px%3B%0Adisplay%3A%20inline%2Dblock%3B%0Atext%2Dalign%3A%20center%3B%0Aborder%3A%200%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dseparator%2Dleft%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Acolor%3A%20%23333%3B%0Afont%2Dsize%3A%209px%3B%0Apadding%3A%200%200%200%200%3B%0Acursor%3A%20default%3B%0A%7D%0A%2Epagedtable%2Dindex%2Dseparator%2Dright%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Acolor%3A%20%23333%3B%0Afont%2Dsize%3A%209px%3B%0Apadding%3A%200%204px%200%200%3B%0Acursor%3A%20default%3B%0A%7D%0A%2Epagedtable%2Dfooter%20%7B%0Apadding%2Dtop%3A%204px%3B%0Apadding%2Dbottom%3A%205px%3B%0A%7D%0A%2Epagedtable%2Dnot%2Dempty%20%2Epagedtable%2Dfooter%20%7B%0Aborder%2Dtop%3A%202px%20solid%20%23dddddd%3B%0A%7D%0A%2Epagedtable%2Dinfo%20%7B%0Aoverflow%3A%20hidden%3B%0Acolor%3A%20%23999%3B%0Awhite%2Dspace%3A%20nowrap%3B%0Atext%2Doverflow%3A%20ellipsis%3B%0A%7D%0A%2Epagedtable%2Dheader%2Dname%20%7B%0Aoverflow%3A%20hidden%3B%0Atext%2Doverflow%3A%20ellipsis%3B%0A%7D%0A%2Epagedtable%2Dheader%2Dtype%20%7B%0Acolor%3A%20%23999%3B%0Afont%2Dweight%3A%20400%3B%0A%7D%0A%2Epagedtable%2Dna%2Dcell%20%7B%0Afont%2Dstyle%3A%20italic%3B%0Aopacity%3A%200%2E3%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,Ly8gUHJvZHVjdGlvbiBzdGVwcyBvZiBFQ01BLTI2MiwgRWRpdGlvbiA1LCAxNS40LjQuMTgKLy8gUmVmZXJlbmNlOiBodHRwOi8vZXM1LmdpdGh1Yi5pby8jeDE1LjQuNC4xOAppZiAoIUFycmF5LnByb3RvdHlwZS5mb3JFYWNoKSB7CgogIEFycmF5LnByb3RvdHlwZS5mb3JFYWNoID0gZnVuY3Rpb24oY2FsbGJhY2ssIHRoaXNBcmcpIHsKCiAgICB2YXIgVCwgazsKCiAgICBpZiAodGhpcyA9PT0gbnVsbCkgewogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCcgdGhpcyBpcyBudWxsIG9yIG5vdCBkZWZpbmVkJyk7CiAgICB9CgogICAgLy8gMS4gTGV0IE8gYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRvT2JqZWN0KCkgcGFzc2luZyB0aGUKICAgIC8vIHx0aGlzfCB2YWx1ZSBhcyB0aGUgYXJndW1lbnQuCiAgICB2YXIgTyA9IE9iamVjdCh0aGlzKTsKCiAgICAvLyAyLiBMZXQgbGVuVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBHZXQoKSBpbnRlcm5hbAogICAgLy8gbWV0aG9kIG9mIE8gd2l0aCB0aGUgYXJndW1lbnQgImxlbmd0aCIuCiAgICAvLyAzLiBMZXQgbGVuIGJlIHRvVWludDMyKGxlblZhbHVlKS4KICAgIHZhciBsZW4gPSBPLmxlbmd0aCA+Pj4gMDsKCiAgICAvLyA0LiBJZiBpc0NhbGxhYmxlKGNhbGxiYWNrKSBpcyBmYWxzZSwgdGhyb3cgYSBUeXBlRXJyb3IgZXhjZXB0aW9uLgogICAgLy8gU2VlOiBodHRwOi8vZXM1LmdpdGh1Yi5jb20vI3g5LjExCiAgICBpZiAodHlwZW9mIGNhbGxiYWNrICE9PSAiZnVuY3Rpb24iKSB7CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoY2FsbGJhY2sgKyAnIGlzIG5vdCBhIGZ1bmN0aW9uJyk7CiAgICB9CgogICAgLy8gNS4gSWYgdGhpc0FyZyB3YXMgc3VwcGxpZWQsIGxldCBUIGJlIHRoaXNBcmc7IGVsc2UgbGV0CiAgICAvLyBUIGJlIHVuZGVmaW5lZC4KICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgewogICAgICBUID0gdGhpc0FyZzsKICAgIH0KCiAgICAvLyA2LiBMZXQgayBiZSAwCiAgICBrID0gMDsKCiAgICAvLyA3LiBSZXBlYXQsIHdoaWxlIGsgPCBsZW4KICAgIHdoaWxlIChrIDwgbGVuKSB7CgogICAgICB2YXIga1ZhbHVlOwoKICAgICAgLy8gYS4gTGV0IFBrIGJlIFRvU3RyaW5nKGspLgogICAgICAvLyAgICBUaGlzIGlzIGltcGxpY2l0IGZvciBMSFMgb3BlcmFuZHMgb2YgdGhlIGluIG9wZXJhdG9yCiAgICAgIC8vIGIuIExldCBrUHJlc2VudCBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIEhhc1Byb3BlcnR5CiAgICAgIC8vICAgIGludGVybmFsIG1ldGhvZCBvZiBPIHdpdGggYXJndW1lbnQgUGsuCiAgICAgIC8vICAgIFRoaXMgc3RlcCBjYW4gYmUgY29tYmluZWQgd2l0aCBjCiAgICAgIC8vIGMuIElmIGtQcmVzZW50IGlzIHRydWUsIHRoZW4KICAgICAgaWYgKGsgaW4gTykgewoKICAgICAgICAvLyBpLiBMZXQga1ZhbHVlIGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyB0aGUgR2V0IGludGVybmFsCiAgICAgICAgLy8gbWV0aG9kIG9mIE8gd2l0aCBhcmd1bWVudCBQay4KICAgICAgICBrVmFsdWUgPSBPW2tdOwoKICAgICAgICAvLyBpaS4gQ2FsbCB0aGUgQ2FsbCBpbnRlcm5hbCBtZXRob2Qgb2YgY2FsbGJhY2sgd2l0aCBUIGFzCiAgICAgICAgLy8gdGhlIHRoaXMgdmFsdWUgYW5kIGFyZ3VtZW50IGxpc3QgY29udGFpbmluZyBrVmFsdWUsIGssIGFuZCBPLgogICAgICAgIGNhbGxiYWNrLmNhbGwoVCwga1ZhbHVlLCBrLCBPKTsKICAgICAgfQogICAgICAvLyBkLiBJbmNyZWFzZSBrIGJ5IDEuCiAgICAgIGsrKzsKICAgIH0KICAgIC8vIDguIHJldHVybiB1bmRlZmluZWQKICB9Owp9CgovLyBQcm9kdWN0aW9uIHN0ZXBzIG9mIEVDTUEtMjYyLCBFZGl0aW9uIDUsIDE1LjQuNC4xOQovLyBSZWZlcmVuY2U6IGh0dHA6Ly9lczUuZ2l0aHViLmlvLyN4MTUuNC40LjE5CmlmICghQXJyYXkucHJvdG90eXBlLm1hcCkgewoKICBBcnJheS5wcm90b3R5cGUubWFwID0gZnVuY3Rpb24oY2FsbGJhY2ssIHRoaXNBcmcpIHsKCiAgICB2YXIgVCwgQSwgazsKCiAgICBpZiAodGhpcyA9PSBudWxsKSB7CiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJyB0aGlzIGlzIG51bGwgb3Igbm90IGRlZmluZWQnKTsKICAgIH0KCiAgICAvLyAxLiBMZXQgTyBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9PYmplY3QgcGFzc2luZyB0aGUgfHRoaXN8CiAgICAvLyAgICB2YWx1ZSBhcyB0aGUgYXJndW1lbnQuCiAgICB2YXIgTyA9IE9iamVjdCh0aGlzKTsKCiAgICAvLyAyLiBMZXQgbGVuVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBHZXQgaW50ZXJuYWwKICAgIC8vICAgIG1ldGhvZCBvZiBPIHdpdGggdGhlIGFyZ3VtZW50ICJsZW5ndGgiLgogICAgLy8gMy4gTGV0IGxlbiBiZSBUb1VpbnQzMihsZW5WYWx1ZSkuCiAgICB2YXIgbGVuID0gTy5sZW5ndGggPj4+IDA7CgogICAgLy8gNC4gSWYgSXNDYWxsYWJsZShjYWxsYmFjaykgaXMgZmFsc2UsIHRocm93IGEgVHlwZUVycm9yIGV4Y2VwdGlvbi4KICAgIC8vIFNlZTogaHR0cDovL2VzNS5naXRodWIuY29tLyN4OS4xMQogICAgaWYgKHR5cGVvZiBjYWxsYmFjayAhPT0gJ2Z1bmN0aW9uJykgewogICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKGNhbGxiYWNrICsgJyBpcyBub3QgYSBmdW5jdGlvbicpOwogICAgfQoKICAgIC8vIDUuIElmIHRoaXNBcmcgd2FzIHN1cHBsaWVkLCBsZXQgVCBiZSB0aGlzQXJnOyBlbHNlIGxldCBUIGJlIHVuZGVmaW5lZC4KICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID4gMSkgewogICAgICBUID0gdGhpc0FyZzsKICAgIH0KCiAgICAvLyA2LiBMZXQgQSBiZSBhIG5ldyBhcnJheSBjcmVhdGVkIGFzIGlmIGJ5IHRoZSBleHByZXNzaW9uIG5ldyBBcnJheShsZW4pCiAgICAvLyAgICB3aGVyZSBBcnJheSBpcyB0aGUgc3RhbmRhcmQgYnVpbHQtaW4gY29uc3RydWN0b3Igd2l0aCB0aGF0IG5hbWUgYW5kCiAgICAvLyAgICBsZW4gaXMgdGhlIHZhbHVlIG9mIGxlbi4KICAgIEEgPSBuZXcgQXJyYXkobGVuKTsKCiAgICAvLyA3LiBMZXQgayBiZSAwCiAgICBrID0gMDsKCiAgICAvLyA4LiBSZXBlYXQsIHdoaWxlIGsgPCBsZW4KICAgIHdoaWxlIChrIDwgbGVuKSB7CgogICAgICB2YXIga1ZhbHVlLCBtYXBwZWRWYWx1ZTsKCiAgICAgIC8vIGEuIExldCBQayBiZSBUb1N0cmluZyhrKS4KICAgICAgLy8gICBUaGlzIGlzIGltcGxpY2l0IGZvciBMSFMgb3BlcmFuZHMgb2YgdGhlIGluIG9wZXJhdG9yCiAgICAgIC8vIGIuIExldCBrUHJlc2VudCBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgdGhlIEhhc1Byb3BlcnR5IGludGVybmFsCiAgICAgIC8vICAgIG1ldGhvZCBvZiBPIHdpdGggYXJndW1lbnQgUGsuCiAgICAgIC8vICAgVGhpcyBzdGVwIGNhbiBiZSBjb21iaW5lZCB3aXRoIGMKICAgICAgLy8gYy4gSWYga1ByZXNlbnQgaXMgdHJ1ZSwgdGhlbgogICAgICBpZiAoayBpbiBPKSB7CgogICAgICAgIC8vIGkuIExldCBrVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBHZXQgaW50ZXJuYWwKICAgICAgICAvLyAgICBtZXRob2Qgb2YgTyB3aXRoIGFyZ3VtZW50IFBrLgogICAgICAgIGtWYWx1ZSA9IE9ba107CgogICAgICAgIC8vIGlpLiBMZXQgbWFwcGVkVmFsdWUgYmUgdGhlIHJlc3VsdCBvZiBjYWxsaW5nIHRoZSBDYWxsIGludGVybmFsCiAgICAgICAgLy8gICAgIG1ldGhvZCBvZiBjYWxsYmFjayB3aXRoIFQgYXMgdGhlIHRoaXMgdmFsdWUgYW5kIGFyZ3VtZW50CiAgICAgICAgLy8gICAgIGxpc3QgY29udGFpbmluZyBrVmFsdWUsIGssIGFuZCBPLgogICAgICAgIG1hcHBlZFZhbHVlID0gY2FsbGJhY2suY2FsbChULCBrVmFsdWUsIGssIE8pOwoKICAgICAgICAvLyBpaWkuIENhbGwgdGhlIERlZmluZU93blByb3BlcnR5IGludGVybmFsIG1ldGhvZCBvZiBBIHdpdGggYXJndW1lbnRzCiAgICAgICAgLy8gUGssIFByb3BlcnR5IERlc2NyaXB0b3IKICAgICAgICAvLyB7IFZhbHVlOiBtYXBwZWRWYWx1ZSwKICAgICAgICAvLyAgIFdyaXRhYmxlOiB0cnVlLAogICAgICAgIC8vICAgRW51bWVyYWJsZTogdHJ1ZSwKICAgICAgICAvLyAgIENvbmZpZ3VyYWJsZTogdHJ1ZSB9LAogICAgICAgIC8vIGFuZCBmYWxzZS4KCiAgICAgICAgLy8gSW4gYnJvd3NlcnMgdGhhdCBzdXBwb3J0IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSwgdXNlIHRoZSBmb2xsb3dpbmc6CiAgICAgICAgLy8gT2JqZWN0LmRlZmluZVByb3BlcnR5KEEsIGssIHsKICAgICAgICAvLyAgIHZhbHVlOiBtYXBwZWRWYWx1ZSwKICAgICAgICAvLyAgIHdyaXRhYmxlOiB0cnVlLAogICAgICAgIC8vICAgZW51bWVyYWJsZTogdHJ1ZSwKICAgICAgICAvLyAgIGNvbmZpZ3VyYWJsZTogdHJ1ZQogICAgICAgIC8vIH0pOwoKICAgICAgICAvLyBGb3IgYmVzdCBicm93c2VyIHN1cHBvcnQsIHVzZSB0aGUgZm9sbG93aW5nOgogICAgICAgIEFba10gPSBtYXBwZWRWYWx1ZTsKICAgICAgfQogICAgICAvLyBkLiBJbmNyZWFzZSBrIGJ5IDEuCiAgICAgIGsrKzsKICAgIH0KCiAgICAvLyA5LiByZXR1cm4gQQogICAgcmV0dXJuIEE7CiAgfTsKfQoKdmFyIFBhZ2VkVGFibGUgPSBmdW5jdGlvbiAocGFnZWRUYWJsZSkgewogIHZhciBtZSA9IHRoaXM7CgogIHZhciBzb3VyY2UgPSBmdW5jdGlvbihwYWdlZFRhYmxlKSB7CiAgICB2YXIgc291cmNlRWxlbXMgPSBbXS5zbGljZS5jYWxsKHBhZ2VkVGFibGUuY2hpbGRyZW4pLmZpbHRlcihmdW5jdGlvbihlKSB7CiAgICAgIHJldHVybiBlLmhhc0F0dHJpYnV0ZSgiZGF0YS1wYWdlZHRhYmxlLXNvdXJjZSIpOwogICAgfSk7CgogICAgaWYgKHNvdXJjZUVsZW1zID09PSBudWxsIHx8IHNvdXJjZUVsZW1zLmxlbmd0aCAhPT0gMSkgewogICAgICB0aHJvdygiQSBzaW5nbGUgZGF0YS1wYWdlZHRhYmxlLXNvdXJjZSB3YXMgbm90IGZvdW5kIik7CiAgICB9CgogICAgcmV0dXJuIEpTT04ucGFyc2Uoc291cmNlRWxlbXNbMF0uaW5uZXJIVE1MKTsKICB9KHBhZ2VkVGFibGUpOwoKICB2YXIgb3B0aW9ucyA9IGZ1bmN0aW9uKHNvdXJjZSkgewogICAgdmFyIG9wdGlvbnMgPSB0eXBlb2Yoc291cmNlLm9wdGlvbnMpICE9PSAidW5kZWZpbmVkIiAmJgogICAgICBzb3VyY2Uub3B0aW9ucyAhPT0gbnVsbCA/IHNvdXJjZS5vcHRpb25zIDoge307CgogICAgdmFyIGNvbHVtbnMgPSB0eXBlb2Yob3B0aW9ucy5jb2x1bW5zKSAhPT0gInVuZGVmaW5lZCIgPyBvcHRpb25zLmNvbHVtbnMgOiB7fTsKICAgIHZhciByb3dzID0gdHlwZW9mKG9wdGlvbnMucm93cykgIT09ICJ1bmRlZmluZWQiID8gb3B0aW9ucy5yb3dzIDoge307CgogICAgdmFyIHBvc2l0aXZlSW50T3JOdWxsID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlKSA+PSAwID8gcGFyc2VJbnQodmFsdWUpIDogbnVsbDsKICAgIH07CgogICAgcmV0dXJuIHsKICAgICAgcGFnZXM6IHBvc2l0aXZlSW50T3JOdWxsKG9wdGlvbnMucGFnZXMpLAogICAgICByb3dzOiB7CiAgICAgICAgbWluOiBwb3NpdGl2ZUludE9yTnVsbChyb3dzLm1pbiksCiAgICAgICAgbWF4OiBwb3NpdGl2ZUludE9yTnVsbChyb3dzLm1heCksCiAgICAgICAgdG90YWw6IHBvc2l0aXZlSW50T3JOdWxsKHJvd3MudG90YWwpCiAgICAgIH0sCiAgICAgIGNvbHVtbnM6IHsKICAgICAgICBtaW46IHBvc2l0aXZlSW50T3JOdWxsKGNvbHVtbnMubWluKSwKICAgICAgICBtYXg6IHBvc2l0aXZlSW50T3JOdWxsKGNvbHVtbnMubWF4KSwKICAgICAgICB0b3RhbDogcG9zaXRpdmVJbnRPck51bGwoY29sdW1ucy50b3RhbCkKICAgICAgfQogICAgfTsKICB9KHNvdXJjZSk7CgogIHZhciBNZWFzdXJlciA9IGZ1bmN0aW9uKCkgewoKICAgIC8vIHNldCBzb21lIGRlZmF1bHQgaW5pdGlhbCB2YWx1ZXMgdGhhdCB3aWxsIGdldCBhZGp1c3RlZCBpbiBydW50aW1lCiAgICBtZS5tZWFzdXJlcyA9IHsKICAgICAgcGFkZGluZzogMTIsCiAgICAgIGNoYXJhY3RlcjogOCwKICAgICAgaGVpZ2h0OiAxNSwKICAgICAgZGVmYXVsdHM6IHRydWUKICAgIH07CgogICAgbWUuY2FsY3VsYXRlID0gZnVuY3Rpb24obWVhc3VyZXNDZWxsKSB7CiAgICAgIGlmICghbWUubWVhc3VyZXMuZGVmYXVsdHMpCiAgICAgICAgcmV0dXJuOwoKICAgICAgdmFyIG1lYXN1cmVzQ2VsbFN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUobWVhc3VyZXNDZWxsLCBudWxsKTsKCiAgICAgIHZhciBuZXdQYWRkaW5nID0gcGFyc2VQYWRkaW5nKG1lYXN1cmVzQ2VsbFN0eWxlLnBhZGRpbmdMZWZ0KSArCiAgICAgICAgICAgIHBhcnNlUGFkZGluZyhtZWFzdXJlc0NlbGxTdHlsZS5wYWRkaW5nUmlnaHQpOwoKICAgICAgdmFyIHNhbXBsZVN0cmluZyA9ICJBQkNERUZHSElKMDEyMzQ1Njc4OSI7CiAgICAgIHZhciBuZXdDaGFyYWN0ZXIgPSBNYXRoLmNlaWwobWVhc3VyZXNDZWxsLmNsaWVudFdpZHRoIC8gc2FtcGxlU3RyaW5nLmxlbmd0aCk7CgogICAgICBpZiAobmV3UGFkZGluZyA8PSAwIHx8IG5ld0NoYXJhY3RlciA8PSAwKQogICAgICAgIHJldHVybjsKCiAgICAgIG1lLm1lYXN1cmVzLnBhZGRpbmcgPSBuZXdQYWRkaW5nOwogICAgICBtZS5tZWFzdXJlcy5jaGFyYWN0ZXIgPSBuZXdDaGFyYWN0ZXI7CiAgICAgIG1lLm1lYXN1cmVzLmhlaWdodCA9IG1lYXN1cmVzQ2VsbC5jbGllbnRIZWlnaHQ7CiAgICAgIG1lLm1lYXN1cmVzLmRlZmF1bHRzID0gZmFsc2U7CiAgICB9OwoKICAgIHJldHVybiBtZTsKICB9OwoKICB2YXIgUGFnZSA9IGZ1bmN0aW9uKGRhdGEsIG9wdGlvbnMpIHsKICAgIHZhciBtZSA9IHRoaXM7CgogICAgdmFyIGRlZmF1bHRzID0gewogICAgICBtYXg6IDcsCiAgICAgIHJvd3M6IDEwCiAgICB9OwoKICAgIHZhciB0b3RhbFBhZ2VzID0gZnVuY3Rpb24oKSB7CiAgICAgIHJldHVybiBNYXRoLmNlaWwoZGF0YS5sZW5ndGggLyBtZS5yb3dzKTsKICAgIH07CgogICAgbWUubnVtYmVyID0gMDsKICAgIG1lLm1heCA9IG9wdGlvbnMucGFnZXMgIT09IG51bGwgPyBvcHRpb25zLnBhZ2VzIDogZGVmYXVsdHMubWF4OwogICAgbWUudmlzaWJsZSA9IG1lLm1heDsKICAgIG1lLnJvd3MgPSBvcHRpb25zLnJvd3MubWluICE9PSBudWxsID8gb3B0aW9ucy5yb3dzLm1pbiA6IGRlZmF1bHRzLnJvd3M7CiAgICBtZS50b3RhbCA9IHRvdGFsUGFnZXMoKTsKCiAgICBtZS5zZXRSb3dzID0gZnVuY3Rpb24obmV3Um93cykgewogICAgICBtZS5yb3dzID0gbmV3Um93czsKICAgICAgbWUudG90YWwgPSB0b3RhbFBhZ2VzKCk7CiAgICB9OwoKICAgIG1lLnNldFBhZ2VOdW1iZXIgPSBmdW5jdGlvbihuZXdQYWdlTnVtYmVyKSB7CiAgICAgIGlmIChuZXdQYWdlTnVtYmVyIDwgMCkgbmV3UGFnZU51bWJlciA9IDA7CiAgICAgIGlmIChuZXdQYWdlTnVtYmVyID49IG1lLnRvdGFsKSBuZXdQYWdlTnVtYmVyID0gbWUudG90YWwgLSAxOwoKICAgICAgbWUubnVtYmVyID0gbmV3UGFnZU51bWJlcjsKICAgIH07CgogICAgbWUuc2V0VmlzaWJsZVBhZ2VzID0gZnVuY3Rpb24odmlzaWJsZVBhZ2VzKSB7CiAgICAgIG1lLnZpc2libGUgPSBNYXRoLm1pbihtZS5tYXgsIHZpc2libGVQYWdlcyk7CiAgICAgIG1lLnNldFBhZ2VOdW1iZXIobWUubnVtYmVyKTsKICAgIH07CgogICAgbWUuZ2V0VmlzaWJsZVBhZ2VSYW5nZSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgc3RhcnQgPSBtZS5udW1iZXIgLSBNYXRoLm1heChNYXRoLmZsb29yKChtZS52aXNpYmxlIC0gMSkgLyAyKSwgMCk7CiAgICAgIHZhciBlbmQgPSBtZS5udW1iZXIgKyBNYXRoLmZsb29yKG1lLnZpc2libGUgLyAyKSArIDE7CiAgICAgIHZhciBwYWdlQ291bnQgPSBtZS50b3RhbDsKCiAgICAgIGlmIChzdGFydCA8IDApIHsKICAgICAgICB2YXIgZGlmZlRvU3RhcnQgPSAwIC0gc3RhcnQ7CiAgICAgICAgc3RhcnQgKz0gZGlmZlRvU3RhcnQ7CiAgICAgICAgZW5kICs9IGRpZmZUb1N0YXJ0OwogICAgICB9CgogICAgICBpZiAoZW5kID4gcGFnZUNvdW50KSB7CiAgICAgICAgdmFyIGRpZmZUb0VuZCA9IGVuZCAtIHBhZ2VDb3VudDsKICAgICAgICBzdGFydCAtPSBkaWZmVG9FbmQ7CiAgICAgICAgZW5kIC09IGRpZmZUb0VuZDsKICAgICAgfQoKICAgICAgc3RhcnQgPSBzdGFydCA8IDAgPyAwIDogc3RhcnQ7CiAgICAgIGVuZCA9IGVuZCA+PSBwYWdlQ291bnQgPyBwYWdlQ291bnQgOiBlbmQ7CgogICAgICB2YXIgZmlyc3QgPSBmYWxzZTsKICAgICAgdmFyIGxhc3QgPSBmYWxzZTsKCiAgICAgIGlmIChzdGFydCA+IDAgJiYgbWUudmlzaWJsZSA+IDEpIHsKICAgICAgICBzdGFydCA9IHN0YXJ0ICsgMTsKICAgICAgICBmaXJzdCA9IHRydWU7CiAgICAgIH0KCiAgICAgIGlmIChlbmQgPCBwYWdlQ291bnQgJiYgbWUudmlzaWJsZSA+IDIpIHsKICAgICAgICBlbmQgPSBlbmQgLSAxOwogICAgICAgIGxhc3QgPSB0cnVlOwogICAgICB9CgogICAgICByZXR1cm4gewogICAgICAgIGZpcnN0OiBmaXJzdCwKICAgICAgICBzdGFydDogc3RhcnQsCiAgICAgICAgZW5kOiBlbmQsCiAgICAgICAgbGFzdDogbGFzdAogICAgICB9OwogICAgfTsKCiAgICBtZS5nZXRSb3dTdGFydCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgcm93U3RhcnQgPSBwYWdlLm51bWJlciAqIHBhZ2Uucm93czsKICAgICAgaWYgKHJvd1N0YXJ0IDwgMCkKICAgICAgICByb3dTdGFydCA9IDA7CgogICAgICByZXR1cm4gcm93U3RhcnQ7CiAgICB9OwoKICAgIG1lLmdldFJvd0VuZCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgcm93U3RhcnQgPSBtZS5nZXRSb3dTdGFydCgpOwogICAgICByZXR1cm4gTWF0aC5taW4ocm93U3RhcnQgKyBtZS5yb3dzLCBkYXRhLmxlbmd0aCk7CiAgICB9OwoKICAgIG1lLmdldFBhZGRpbmdSb3dzID0gZnVuY3Rpb24oKSB7CiAgICAgIHZhciByb3dTdGFydCA9IG1lLmdldFJvd1N0YXJ0KCk7CiAgICAgIHZhciByb3dFbmQgPSBtZS5nZXRSb3dFbmQoKTsKICAgICAgcmV0dXJuIGRhdGEubGVuZ3RoID4gbWUucm93cyA/IG1lLnJvd3MgLSAocm93RW5kIC0gcm93U3RhcnQpIDogMDsKICAgIH07CiAgfTsKCiAgdmFyIENvbHVtbnMgPSBmdW5jdGlvbihkYXRhLCBjb2x1bW5zLCBvcHRpb25zKSB7CiAgICB2YXIgbWUgPSB0aGlzOwoKICAgIG1lLmRlZmF1bHRzID0gewogICAgICBtaW46IDUKICAgIH07CgogICAgbWUubnVtYmVyID0gMDsKICAgIG1lLnZpc2libGUgPSAwOwogICAgbWUudG90YWwgPSBjb2x1bW5zLmxlbmd0aDsKICAgIG1lLnN1YnNldCA9IFtdOwogICAgbWUucGFkZGluZyA9IDA7CiAgICBtZS5taW4gPSBvcHRpb25zLmNvbHVtbnMubWluICE9PSBudWxsID8gb3B0aW9ucy5jb2x1bW5zLm1pbiA6IG1lLmRlZmF1bHRzLm1pbjsKICAgIG1lLm1heCA9IG9wdGlvbnMuY29sdW1ucy5tYXggIT09IG51bGwgPyBvcHRpb25zLmNvbHVtbnMubWF4IDogbnVsbDsKICAgIG1lLndpZHRocyA9IHt9OwoKICAgIHZhciB3aWR0aHNMb29rQWhlYWQgPSBNYXRoLm1heCgxMDAsIG9wdGlvbnMucm93cy5taW4pOwogICAgdmFyIHBhZGRpbmdDb2xDaGFycyA9IDEwOwoKICAgIG1lLmVtcHR5TmFtZXMgPSBmdW5jdGlvbigpIHsKICAgICAgY29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKGNvbHVtbikgewogICAgICAgIGlmIChjb2x1bW5zLmxhYmVsICE9PSBudWxsICYmIGNvbHVtbnMubGFiZWwgIT09ICIiKQogICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICB9KTsKCiAgICAgIHJldHVybiB0cnVlOwogICAgfTsKCiAgICB2YXIgcGFyc2VQYWRkaW5nID0gZnVuY3Rpb24odmFsdWUpIHsKICAgICAgcmV0dXJuIHBhcnNlSW50KHZhbHVlKSA+PSAwID8gcGFyc2VJbnQodmFsdWUpIDogMDsKICAgIH07CgogICAgbWUuY2FsY3VsYXRlV2lkdGhzID0gZnVuY3Rpb24obWVhc3VyZXMpIHsKICAgICAgY29sdW1ucy5mb3JFYWNoKGZ1bmN0aW9uKGNvbHVtbikgewogICAgICAgIHZhciBtYXhDaGFycyA9IE1hdGgubWF4KAogICAgICAgICAgY29sdW1uLmxhYmVsLnRvU3RyaW5nKCkubGVuZ3RoLAogICAgICAgICAgY29sdW1uLnR5cGUudG9TdHJpbmcoKS5sZW5ndGgKICAgICAgICApOwoKICAgICAgICBmb3IgKHZhciBpZHhSb3cgPSAwOyBpZHhSb3cgPCBNYXRoLm1pbih3aWR0aHNMb29rQWhlYWQsIGRhdGEubGVuZ3RoKTsgaWR4Um93KyspIHsKICAgICAgICAgIG1heENoYXJzID0gTWF0aC5tYXgobWF4Q2hhcnMsIGRhdGFbaWR4Um93XVtjb2x1bW4ubmFtZS50b1N0cmluZygpXS5sZW5ndGgpOwogICAgICAgIH0KCiAgICAgICAgbWUud2lkdGhzW2NvbHVtbi5uYW1lXSA9IHsKICAgICAgICAgIC8vIHdpZHRoIGluIGNoYXJhY3RlcnMKICAgICAgICAgIGNoYXJzOiBtYXhDaGFycywKICAgICAgICAgIC8vIHdpZHRoIGZvciB0aGUgaW5uZXIgaHRtbCBjb2x1bW5zCiAgICAgICAgICBpbm5lcjogbWF4Q2hhcnMgKiBtZWFzdXJlcy5jaGFyYWN0ZXIsCiAgICAgICAgICAvLyB3aWR0aCBhZGRpbmcgb3V0ZXIgc3R5bGVzIGxpa2UgcGFkZGluZwogICAgICAgICAgb3V0ZXI6IG1heENoYXJzICogbWVhc3VyZXMuY2hhcmFjdGVyICsgbWVhc3VyZXMucGFkZGluZwogICAgICAgIH07CiAgICAgIH0pOwogICAgfTsKCiAgICBtZS5nZXRXaWR0aCA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgd2lkdGhPdXRlciA9IDA7CiAgICAgIGZvciAodmFyIGlkeENvbCA9IDA7IGlkeENvbCA8IG1lLnN1YnNldC5sZW5ndGg7IGlkeENvbCsrKSB7CiAgICAgICAgdmFyIGNvbHVtbk5hbWUgPSBtZS5zdWJzZXRbaWR4Q29sXS5uYW1lOwogICAgICAgIHdpZHRoT3V0ZXIgPSB3aWR0aE91dGVyICsgbWUud2lkdGhzW2NvbHVtbk5hbWVdLm91dGVyOwogICAgICB9CgogICAgICB3aWR0aE91dGVyID0gd2lkdGhPdXRlciArIG1lLnBhZGRpbmcgKiBwYWRkaW5nQ29sQ2hhcnMgKiBtZWFzdXJlci5tZWFzdXJlcy5jaGFyYWN0ZXI7CgogICAgICBpZiAobWUuaGFzTW9yZUxlZnRDb2x1bW5zKCkpIHsKICAgICAgICB3aWR0aE91dGVyID0gd2lkdGhPdXRlciArIGNvbHVtbk5hdmlnYXRpb25XaWR0aFBYICsgbWVhc3VyZXIubWVhc3VyZXMucGFkZGluZzsKICAgICAgfQoKICAgICAgaWYgKG1lLmhhc01vcmVSaWdodENvbHVtbnMoKSkgewogICAgICAgIHdpZHRoT3V0ZXIgPSB3aWR0aE91dGVyICsgY29sdW1uTmF2aWdhdGlvbldpZHRoUFggKyBtZWFzdXJlci5tZWFzdXJlcy5wYWRkaW5nOwogICAgICB9CgogICAgICByZXR1cm4gd2lkdGhPdXRlcjsKICAgIH07CgogICAgbWUudXBkYXRlU2xpY2UgPSBmdW5jdGlvbigpIHsKICAgICAgaWYgKG1lLm51bWJlciArIG1lLnZpc2libGUgPj0gbWUudG90YWwpCiAgICAgICAgbWUubnVtYmVyID0gbWUudG90YWwgLSBtZS52aXNpYmxlOwoKICAgICAgaWYgKG1lLm51bWJlciA8IDApIG1lLm51bWJlciA9IDA7CgogICAgICBtZS5zdWJzZXQgPSBjb2x1bW5zLnNsaWNlKG1lLm51bWJlciwgTWF0aC5taW4obWUubnVtYmVyICsgbWUudmlzaWJsZSwgbWUudG90YWwpKTsKCiAgICAgIG1lLnN1YnNldCA9IG1lLnN1YnNldC5tYXAoZnVuY3Rpb24oY29sdW1uKSB7CiAgICAgICAgT2JqZWN0LmtleXMoY29sdW1uKS5mb3JFYWNoKGZ1bmN0aW9uKGNvbEtleSkgewogICAgICAgICAgY29sdW1uW2NvbEtleV0gPSBjb2x1bW5bY29sS2V5XSA9PT0gbnVsbCA/ICIiIDogY29sdW1uW2NvbEtleV0udG9TdHJpbmcoKTsKICAgICAgICB9KTsKCiAgICAgICAgY29sdW1uLndpZHRoID0gbnVsbDsKICAgICAgICByZXR1cm4gY29sdW1uOwogICAgICB9KTsKICAgIH07CgogICAgbWUuc2V0VmlzaWJsZUNvbHVtbnMgPSBmdW5jdGlvbihjb2x1bW5OdW1iZXIsIG5ld1Zpc2libGVDb2x1bW5zLCBwYWRkaW5nQ291bnQpIHsKICAgICAgbWUubnVtYmVyID0gY29sdW1uTnVtYmVyOwogICAgICBtZS52aXNpYmxlID0gbmV3VmlzaWJsZUNvbHVtbnM7CiAgICAgIG1lLnBhZGRpbmcgPSBwYWRkaW5nQ291bnQ7CgogICAgICBtZS51cGRhdGVTbGljZSgpOwogICAgfTsKCiAgICBtZS5pbmNDb2x1bW5OdW1iZXIgPSBmdW5jdGlvbihpbmNyZW1lbnQpIHsKICAgICAgbWUubnVtYmVyID0gbWUubnVtYmVyICsgaW5jcmVtZW50OwogICAgfTsKCiAgICBtZS5zZXRDb2x1bW5OdW1iZXIgPSBmdW5jdGlvbihuZXdOdW1iZXIpIHsKICAgICAgbWUubnVtYmVyID0gbmV3TnVtYmVyOwogICAgfTsKCiAgICBtZS5zZXRQYWRkaW5nQ291bnQgPSBmdW5jdGlvbihuZXdQYWRkaW5nKSB7CiAgICAgIG1lLnBhZGRpbmcgPSBuZXdQYWRkaW5nOwogICAgfTsKCiAgICBtZS5nZXRQYWRkaW5nQ291bnQgPSBmdW5jdGlvbigpIHsKICAgICAgcmV0dXJuIG1lLnBhZGRpbmc7CiAgICB9OwoKICAgIG1lLmhhc01vcmVMZWZ0Q29sdW1ucyA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWUubnVtYmVyID4gMDsKICAgIH07CgogICAgbWUuaGFzTW9yZVJpZ2h0Q29sdW1ucyA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gbWUubnVtYmVyICsgbWUudmlzaWJsZSA8IG1lLnRvdGFsOwogICAgfTsKCiAgICBtZS51cGRhdGVTbGljZSgwKTsKICAgIHJldHVybiBtZTsKICB9OwoKICB2YXIgZGF0YSA9IHNvdXJjZS5kYXRhOwogIHZhciBwYWdlID0gbmV3IFBhZ2UoZGF0YSwgb3B0aW9ucyk7CiAgdmFyIG1lYXN1cmVyID0gbmV3IE1lYXN1cmVyKGRhdGEsIG9wdGlvbnMpOwogIHZhciBjb2x1bW5zID0gbmV3IENvbHVtbnMoZGF0YSwgc291cmNlLmNvbHVtbnMsIG9wdGlvbnMpOwoKICB2YXIgdGFibGUgPSBudWxsOwogIHZhciB0YWJsZURpdiA9IG51bGw7CiAgdmFyIGhlYWRlciA9IG51bGw7CiAgdmFyIGZvb3RlciA9IG51bGw7CiAgdmFyIHRib2R5ID0gbnVsbDsKCiAgLy8gQ2FjaGVzIHBhZ2VkVGFibGUuY2xpZW50V2lkdGgsIHNwZWNpYWxseSBmb3Igd2Via2l0CiAgdmFyIGNhY2hlZFBhZ2VkVGFibGVDbGllbnRXaWR0aCA9IG51bGw7CgogIHZhciBvbkNoYW5nZUNhbGxiYWNrcyA9IFtdOwoKICB2YXIgY2xlYXJTZWxlY3Rpb24gPSBmdW5jdGlvbigpIHsKICAgIGlmKGRvY3VtZW50LnNlbGVjdGlvbiAmJiBkb2N1bWVudC5zZWxlY3Rpb24uZW1wdHkpIHsKICAgICAgZG9jdW1lbnQuc2VsZWN0aW9uLmVtcHR5KCk7CiAgICB9IGVsc2UgaWYod2luZG93LmdldFNlbGVjdGlvbikgewogICAgICB2YXIgc2VsID0gd2luZG93LmdldFNlbGVjdGlvbigpOwogICAgICBzZWwucmVtb3ZlQWxsUmFuZ2VzKCk7CiAgICB9CiAgfTsKCiAgdmFyIGNvbHVtbk5hdmlnYXRpb25XaWR0aFBYID0gNTsKCiAgdmFyIHJlbmRlckNvbHVtbk5hdmlnYXRpb24gPSBmdW5jdGlvbihpbmNyZW1lbnQsIGJhY2t3YXJkcykgewogICAgdmFyIGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICBhcnJvdy5zZXRBdHRyaWJ1dGUoInN0eWxlIiwKICAgICAgImJvcmRlci10b3A6ICIgKyBjb2x1bW5OYXZpZ2F0aW9uV2lkdGhQWCArICJweCBzb2xpZCB0cmFuc3BhcmVudDsiICsKICAgICAgImJvcmRlci1ib3R0b206ICIgKyBjb2x1bW5OYXZpZ2F0aW9uV2lkdGhQWCArICJweCBzb2xpZCB0cmFuc3BhcmVudDsiICsKICAgICAgImJvcmRlci0iICsgKGJhY2t3YXJkcyA/ICJyaWdodCIgOiAibGVmdCIpICsgIjogIiArIGNvbHVtbk5hdmlnYXRpb25XaWR0aFBYICsgInB4IHNvbGlkOyIpOwoKICAgIHZhciBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0aCIpOwogICAgaGVhZGVyLmFwcGVuZENoaWxkKGFycm93KTsKICAgIGhlYWRlci5zZXRBdHRyaWJ1dGUoInN0eWxlIiwKICAgICAgImN1cnNvcjogcG9pbnRlcjsiICsKICAgICAgInZlcnRpY2FsLWFsaWduOiBtaWRkbGU7IiArCiAgICAgICJtaW4td2lkdGg6ICIgKyBjb2x1bW5OYXZpZ2F0aW9uV2lkdGhQWCArICJweDsiICsKICAgICAgIndpZHRoOiAiICsgY29sdW1uTmF2aWdhdGlvbldpZHRoUFggKyAicHg7Iik7CgogICAgaGVhZGVyLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgY29sdW1ucy5pbmNDb2x1bW5OdW1iZXIoYmFja3dhcmRzID8gLTEgOiBpbmNyZW1lbnQpOwoKICAgICAgbWUuYW5pbWF0ZUNvbHVtbnMoYmFja3dhcmRzKTsKICAgICAgcmVuZGVyRm9vdGVyKCk7CgogICAgICBjbGVhclNlbGVjdGlvbigpOwogICAgICB0cmlnZ2VyT25DaGFuZ2UoKTsKICAgIH07CgogICAgcmV0dXJuIGhlYWRlcjsKICB9OwoKICB2YXIgbWF4Q29sdW1uV2lkdGggPSBmdW5jdGlvbih3aWR0aCkgewogICAgdmFyIHBhZGRpbmcgPSA4MDsKICAgIHZhciBjb2x1bW5NYXggPSBNYXRoLm1heChjYWNoZWRQYWdlZFRhYmxlQ2xpZW50V2lkdGggLSBwYWRkaW5nLCAwKTsKCiAgICByZXR1cm4gcGFyc2VJbnQod2lkdGgpID4gMCA/CiAgICAgIE1hdGgubWluKGNvbHVtbk1heCwgcGFyc2VJbnQod2lkdGgpKSArICJweCIgOgogICAgICBjb2x1bW5NYXggKyAicHgiOwogIH07CgogIHZhciBjbGVhckhlYWRlciA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHRoZWFkID0gcGFnZWRUYWJsZS5xdWVyeVNlbGVjdG9yQWxsKCJ0aGVhZCIpWzBdOwogICAgdGhlYWQuaW5uZXJIVE1MID0gIiI7CiAgfTsKCiAgdmFyIHJlbmRlckhlYWRlciA9IGZ1bmN0aW9uKGNsZWFyKSB7CiAgICBjYWNoZWRQYWdlZFRhYmxlQ2xpZW50V2lkdGggPSBwYWdlZFRhYmxlLmNsaWVudFdpZHRoOwoKICAgIHZhciBmcmFnbWVudCA9IGRvY3VtZW50LmNyZWF0ZURvY3VtZW50RnJhZ21lbnQoKTsKCiAgICBoZWFkZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ciIpOwogICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoaGVhZGVyKTsKCiAgICBpZiAoY29sdW1ucy5udW1iZXIgPiAwKQogICAgICBoZWFkZXIuYXBwZW5kQ2hpbGQocmVuZGVyQ29sdW1uTmF2aWdhdGlvbigtY29sdW1ucy52aXNpYmxlLCB0cnVlKSk7CgogICAgY29sdW1ucy5zdWJzZXQgPSBjb2x1bW5zLnN1YnNldC5tYXAoZnVuY3Rpb24oY29sdW1uRGF0YSkgewogICAgICB2YXIgY29sdW1uID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGgiKTsKICAgICAgY29sdW1uLnNldEF0dHJpYnV0ZSgiYWxpZ24iLCBjb2x1bW5EYXRhLmFsaWduKTsKICAgICAgY29sdW1uLnN0eWxlLnRleHRBbGlnbiA9IGNvbHVtbkRhdGEuYWxpZ247CgogICAgICBjb2x1bW4uc3R5bGUubWF4V2lkdGggPSBtYXhDb2x1bW5XaWR0aChudWxsKTsKICAgICAgaWYgKGNvbHVtbkRhdGEud2lkdGgpIHsKICAgICAgICBjb2x1bW4uc3R5bGUubWluV2lkdGggPQogICAgICAgICAgY29sdW1uLnN0eWxlLm1heFdpZHRoID0gbWF4Q29sdW1uV2lkdGgoY29sdW1uRGF0YS53aWR0aCk7CiAgICAgIH0KCiAgICAgIHZhciBjb2x1bW5OYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgIGNvbHVtbk5hbWUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJwYWdlZHRhYmxlLWhlYWRlci1uYW1lIik7CiAgICAgIGlmIChjb2x1bW5EYXRhLmxhYmVsID09PSAiIikgewogICAgICAgIGNvbHVtbk5hbWUuaW5uZXJIVE1MID0gIiZuYnNwOyI7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgY29sdW1uTmFtZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShjb2x1bW5EYXRhLmxhYmVsKSk7CiAgICAgIH0KICAgICAgY29sdW1uLmFwcGVuZENoaWxkKGNvbHVtbk5hbWUpOwoKICAgICAgdmFyIGNvbHVtblR5cGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgY29sdW1uVHlwZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInBhZ2VkdGFibGUtaGVhZGVyLXR5cGUiKTsKICAgICAgaWYgKGNvbHVtbkRhdGEudHlwZSA9PT0gIiIpIHsKICAgICAgICBjb2x1bW5UeXBlLmlubmVySFRNTCA9ICImbmJzcDsiOwogICAgICB9CiAgICAgIGVsc2UgewogICAgICAgIGNvbHVtblR5cGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIjwiICsgY29sdW1uRGF0YS50eXBlICsgIj4iKSk7CiAgICAgIH0KICAgICAgY29sdW1uLmFwcGVuZENoaWxkKGNvbHVtblR5cGUpOwoKICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKGNvbHVtbik7CgogICAgICBjb2x1bW5EYXRhLmVsZW1lbnQgPSBjb2x1bW47CgogICAgICByZXR1cm4gY29sdW1uRGF0YTsKICAgIH0pOwoKICAgIGZvciAodmFyIGlkeCA9IDA7IGlkeCA8IGNvbHVtbnMuZ2V0UGFkZGluZ0NvdW50KCk7IGlkeCsrKSB7CiAgICAgIHZhciBwYWRkaW5nQ29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGgiKTsKICAgICAgcGFkZGluZ0NvbC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInBhZ2VkdGFibGUtcGFkZGluZy1jb2wiKTsKICAgICAgaGVhZGVyLmFwcGVuZENoaWxkKHBhZGRpbmdDb2wpOwogICAgfQoKICAgIGlmIChjb2x1bW5zLm51bWJlciArIGNvbHVtbnMudmlzaWJsZSA8IGNvbHVtbnMudG90YWwpCiAgICAgIGhlYWRlci5hcHBlbmRDaGlsZChyZW5kZXJDb2x1bW5OYXZpZ2F0aW9uKGNvbHVtbnMudmlzaWJsZSwgZmFsc2UpKTsKCiAgICBpZiAodHlwZW9mKGNsZWFyKSA9PSAidW5kZWZpbmVkIiB8fCBjbGVhcikgY2xlYXJIZWFkZXIoKTsKICAgIHZhciB0aGVhZCA9IHBhZ2VkVGFibGUucXVlcnlTZWxlY3RvckFsbCgidGhlYWQiKVswXTsKICAgIHRoZWFkLmFwcGVuZENoaWxkKGZyYWdtZW50KTsKICB9OwoKICBtZS5hbmltYXRlQ29sdW1ucyA9IGZ1bmN0aW9uKGJhY2t3YXJkcykgewogICAgdmFyIHRoZWFkID0gcGFnZWRUYWJsZS5xdWVyeVNlbGVjdG9yQWxsKCJ0aGVhZCIpWzBdOwoKICAgIHZhciBoZWFkZXJPbGQgPSB0aGVhZC5xdWVyeVNlbGVjdG9yQWxsKCJ0ciIpWzBdOwogICAgdmFyIHRib2R5T2xkID0gdGFibGUucXVlcnlTZWxlY3RvckFsbCgidGJvZHkiKVswXTsKCiAgICBtZS5maXRDb2x1bW5zKGJhY2t3YXJkcyk7CgogICAgcmVuZGVySGVhZGVyKGZhbHNlKTsKCiAgICBoZWFkZXIuc3R5bGUub3BhY2l0eSA9ICIwIjsKICAgIGhlYWRlci5zdHlsZS50cmFuc2Zvcm0gPSBiYWNrd2FyZHMgPyAidHJhbnNsYXRlWCgtMzBweCkiIDogInRyYW5zbGF0ZVgoMzBweCkiOwogICAgaGVhZGVyLnN0eWxlLnRyYW5zaXRpb24gPSAidHJhbnNmb3JtIDIwMG1zIGxpbmVhciwgb3BhY2l0eSAyMDBtcyI7CiAgICBoZWFkZXIuc3R5bGUudHJhbnNpdGlvbkRlbGF5ID0gIjAiOwoKICAgIHJlbmRlckJvZHkoZmFsc2UpOwoKICAgIGlmIChoZWFkZXJPbGQpIHsKICAgICAgaGVhZGVyT2xkLnN0eWxlLnBvc2l0aW9uID0gImFic29sdXRlIjsKICAgICAgaGVhZGVyT2xkLnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGVYKDBweCkiOwogICAgICBoZWFkZXJPbGQuc3R5bGUub3BhY2l0eSA9ICIxIjsKICAgICAgaGVhZGVyT2xkLnN0eWxlLnRyYW5zaXRpb24gPSAidHJhbnNmb3JtIDEwMG1zIGxpbmVhciwgb3BhY2l0eSAxMDBtcyI7CiAgICAgIGhlYWRlck9sZC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInBhZ2VkdGFibGUtcmVtb3ZlLWhlYWQiKTsKICAgICAgaWYgKGhlYWRlck9sZC5zdHlsZS50cmFuc2l0aW9uRW5kKSB7CiAgICAgICAgaGVhZGVyT2xkLmFkZEV2ZW50TGlzdGVuZXIoInRyYW5zaXRpb25lbmQiLCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBoZWFkZXJPbGRCeUNsYXNzID0gdGhlYWQucXVlcnlTZWxlY3RvcigiLnBhZ2VkdGFibGUtcmVtb3ZlLWhlYWQiKTsKICAgICAgICAgIGlmIChoZWFkZXJPbGRCeUNsYXNzKSB0aGVhZC5yZW1vdmVDaGlsZChoZWFkZXJPbGRCeUNsYXNzKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICBlbHNlIHsKICAgICAgICB0aGVhZC5yZW1vdmVDaGlsZChoZWFkZXJPbGQpOwogICAgICB9CiAgICB9CgogICAgaWYgKHRib2R5T2xkKSB0YWJsZS5yZW1vdmVDaGlsZCh0Ym9keU9sZCk7CgogICAgdGJvZHkuc3R5bGUub3BhY2l0eSA9ICIwIjsKICAgIHRib2R5LnN0eWxlLnRyYW5zaXRpb24gPSAidHJhbnNmb3JtIDIwMG1zIGxpbmVhciwgb3BhY2l0eSAyMDBtcyI7CiAgICB0Ym9keS5zdHlsZS50cmFuc2l0aW9uRGVsYXkgPSAiMG1zIjsKCiAgICAvLyBmb3JjZSByZWxheW91dAogICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoaGVhZGVyKS5vcGFjaXR5OwogICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGJvZHkpLm9wYWNpdHk7CgogICAgaWYgKGhlYWRlck9sZCkgewogICAgICBoZWFkZXJPbGQuc3R5bGUudHJhbnNmb3JtID0gYmFja3dhcmRzID8gInRyYW5zbGF0ZVgoMjBweCkiIDogInRyYW5zbGF0ZVgoLTMwcHgpIjsKICAgICAgaGVhZGVyT2xkLnN0eWxlLm9wYWNpdHkgPSAiMCI7CiAgICB9CgogICAgaGVhZGVyLnN0eWxlLnRyYW5zZm9ybSA9ICJ0cmFuc2xhdGVYKDBweCkiOwogICAgaGVhZGVyLnN0eWxlLm9wYWNpdHkgPSAiMSI7CgogICAgdGJvZHkuc3R5bGUub3BhY2l0eSA9ICIxIjsKICB9CgogIG1lLm9uQ2hhbmdlID0gZnVuY3Rpb24oY2FsbGJhY2spIHsKICAgIG9uQ2hhbmdlQ2FsbGJhY2tzLnB1c2goY2FsbGJhY2spOwogIH07CgogIHZhciB0cmlnZ2VyT25DaGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgIG9uQ2hhbmdlQ2FsbGJhY2tzLmZvckVhY2goZnVuY3Rpb24ob25DaGFuZ2UpIHsKICAgICAgb25DaGFuZ2UoKTsKICAgIH0pOwogIH07CgogIHZhciBjbGVhckJvZHkgPSBmdW5jdGlvbigpIHsKICAgIGlmICh0Ym9keSkgewogICAgICB0YWJsZS5yZW1vdmVDaGlsZCh0Ym9keSk7CiAgICAgIHRib2R5ID0gbnVsbDsKICAgIH0KICB9OwoKICB2YXIgcmVuZGVyQm9keSA9IGZ1bmN0aW9uKGNsZWFyKSB7CiAgICBjYWNoZWRQYWdlZFRhYmxlQ2xpZW50V2lkdGggPSBwYWdlZFRhYmxlLmNsaWVudFdpZHRoCgogICAgdmFyIGZyYWdtZW50ID0gZG9jdW1lbnQuY3JlYXRlRG9jdW1lbnRGcmFnbWVudCgpOwoKICAgIHZhciBwYWdlRGF0YSA9IGRhdGEuc2xpY2UocGFnZS5nZXRSb3dTdGFydCgpLCBwYWdlLmdldFJvd0VuZCgpKTsKCiAgICBwYWdlRGF0YS5mb3JFYWNoKGZ1bmN0aW9uKGRhdGFSb3csIGlkeFJvdykgewogICAgICB2YXIgaHRtbFJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRyIik7CiAgICAgIGh0bWxSb3cuc2V0QXR0cmlidXRlKCJjbGFzcyIsIChpZHhSb3cgJSAyICE9PTApID8gImV2ZW4iIDogIm9kZCIpOwoKICAgICAgaWYgKGNvbHVtbnMuaGFzTW9yZUxlZnRDb2x1bW5zKCkpCiAgICAgICAgaHRtbFJvdy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpKTsKCiAgICAgIGNvbHVtbnMuc3Vic2V0LmZvckVhY2goZnVuY3Rpb24oY29sdW1uRGF0YSkgewogICAgICAgIHZhciBjZWxsTmFtZSA9IGNvbHVtbkRhdGEubmFtZTsKICAgICAgICB2YXIgZGF0YUNlbGwgPSBkYXRhUm93W2NlbGxOYW1lXTsKICAgICAgICB2YXIgaHRtbENlbGwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0ZCIpOwoKICAgICAgICBpZiAoZGF0YUNlbGwgPT09ICJOQSIpIGh0bWxDZWxsLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1uYS1jZWxsIik7CiAgICAgICAgaWYgKGRhdGFDZWxsID09PSAiX19OQV9fIikgZGF0YUNlbGwgPSAiTkEiOwoKICAgICAgICB2YXIgY2VsbFRleHQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShkYXRhQ2VsbCk7CiAgICAgICAgaHRtbENlbGwuYXBwZW5kQ2hpbGQoY2VsbFRleHQpOwogICAgICAgIGlmIChkYXRhQ2VsbC5sZW5ndGggPiA1MCkgewogICAgICAgICAgaHRtbENlbGwuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIGRhdGFDZWxsKTsKICAgICAgICB9CiAgICAgICAgaHRtbENlbGwuc2V0QXR0cmlidXRlKCJhbGlnbiIsIGNvbHVtbkRhdGEuYWxpZ24pOwogICAgICAgIGh0bWxDZWxsLnN0eWxlLnRleHRBbGlnbiA9IGNvbHVtbkRhdGEuYWxpZ247CiAgICAgICAgaHRtbENlbGwuc3R5bGUubWF4V2lkdGggPSBtYXhDb2x1bW5XaWR0aChudWxsKTsKICAgICAgICBpZiAoY29sdW1uRGF0YS53aWR0aCkgewogICAgICAgICAgaHRtbENlbGwuc3R5bGUubWluV2lkdGggPSBodG1sQ2VsbC5zdHlsZS5tYXhXaWR0aCA9IG1heENvbHVtbldpZHRoKGNvbHVtbkRhdGEud2lkdGgpOwogICAgICAgIH0KICAgICAgICBodG1sUm93LmFwcGVuZENoaWxkKGh0bWxDZWxsKTsKICAgICAgfSk7CgogICAgICBmb3IgKHZhciBpZHggPSAwOyBpZHggPCBjb2x1bW5zLmdldFBhZGRpbmdDb3VudCgpOyBpZHgrKykgewogICAgICAgIHZhciBwYWRkaW5nQ29sID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGQiKTsKICAgICAgICBwYWRkaW5nQ29sLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1wYWRkaW5nLWNvbCIpOwogICAgICAgIGh0bWxSb3cuYXBwZW5kQ2hpbGQocGFkZGluZ0NvbCk7CiAgICAgIH0KCiAgICAgIGlmIChjb2x1bW5zLmhhc01vcmVSaWdodENvbHVtbnMoKSkKICAgICAgICBodG1sUm93LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIikpOwoKICAgICAgZnJhZ21lbnQuYXBwZW5kQ2hpbGQoaHRtbFJvdyk7CiAgICB9KTsKCiAgICBmb3IgKHZhciBpZHhQYWRkaW5nID0gMDsgaWR4UGFkZGluZyA8IHBhZ2UuZ2V0UGFkZGluZ1Jvd3MoKTsgaWR4UGFkZGluZysrKSB7CiAgICAgIHZhciBwYWRkaW5nUm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKCiAgICAgIHZhciBwYWRkaW5nQ2VsbFJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7CiAgICAgIHBhZGRpbmdDZWxsUm93LmlubmVySFRNTCA9ICImbmJzcDsiOwogICAgICBwYWRkaW5nQ2VsbFJvdy5zZXRBdHRyaWJ1dGUoImNvbHNwYW4iLCAiMTAwJSIpOwogICAgICBwYWRkaW5nUm93LmFwcGVuZENoaWxkKHBhZGRpbmdDZWxsUm93KTsKCiAgICAgIGZyYWdtZW50LmFwcGVuZENoaWxkKHBhZGRpbmdSb3cpOwogICAgfQoKICAgIGlmICh0eXBlb2YoY2xlYXIpID09ICJ1bmRlZmluZWQiIHx8IGNsZWFyKSBjbGVhckJvZHkoKTsKICAgIHRib2R5ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidGJvZHkiKTsKICAgIHRib2R5LmFwcGVuZENoaWxkKGZyYWdtZW50KTsKCiAgICB0YWJsZS5hcHBlbmRDaGlsZCh0Ym9keSk7CiAgfTsKCiAgdmFyIGdldExhYmVsSW5mbyA9IGZ1bmN0aW9uKCkgewogICAgdmFyIHBhZ2VTdGFydCA9IHBhZ2UuZ2V0Um93U3RhcnQoKTsKICAgIHZhciBwYWdlRW5kID0gcGFnZS5nZXRSb3dFbmQoKTsKICAgIHZhciB0b3RhbFJvd3MgPSBkYXRhLmxlbmd0aDsKCiAgICB2YXIgdG90YWxSb3dzTGFiZWwgPSBvcHRpb25zLnJvd3MudG90YWwgPyBvcHRpb25zLnJvd3MudG90YWwgOiB0b3RhbFJvd3M7CiAgICB2YXIgdG90YWxSb3dzTGFiZWxGb3JtYXQgPSB0b3RhbFJvd3NMYWJlbC50b1N0cmluZygpLnJlcGxhY2UoLyhcZCkoPz0oXGRcZFxkKSsoPyFcZCkpL2csICckMSwnKTsKCiAgICB2YXIgaW5mb1RleHQgPSAocGFnZVN0YXJ0ICsgMSkgKyAiLSIgKyBwYWdlRW5kICsgIiBvZiAiICsgdG90YWxSb3dzTGFiZWxGb3JtYXQgKyAiIHJvd3MiOwogICAgaWYgKHRvdGFsUm93cyA8IHBhZ2Uucm93cykgewogICAgICBpbmZvVGV4dCA9IHRvdGFsUm93c0xhYmVsICsgIiByb3ciICsgKHRvdGFsUm93cyAhPSAxID8gInMiIDogIiIpOwogICAgfQogICAgaWYgKGNvbHVtbnMudG90YWwgPiBjb2x1bW5zLnZpc2libGUpIHsKICAgICAgdmFyIHRvdGFsQ29sdW1uc0xhYmVsID0gb3B0aW9ucy5jb2x1bW5zLnRvdGFsID8gb3B0aW9ucy5jb2x1bW5zLnRvdGFsIDogY29sdW1ucy50b3RhbDsKCiAgICAgIGluZm9UZXh0ID0gaW5mb1RleHQgKyAiIHwgIiArIChjb2x1bW5zLm51bWJlciArIDEpICsgIi0iICsKICAgICAgICAoTWF0aC5taW4oY29sdW1ucy5udW1iZXIgKyBjb2x1bW5zLnZpc2libGUsIGNvbHVtbnMudG90YWwpKSArCiAgICAgICAgIiBvZiAiICsgdG90YWxDb2x1bW5zTGFiZWwgKyAiIGNvbHVtbnMiOwogICAgfQoKICAgIHJldHVybiBpbmZvVGV4dDsKICB9OwoKICB2YXIgY2xlYXJGb290ZXIgPSBmdW5jdGlvbigpIHsKICAgIGZvb3RlciA9IHBhZ2VkVGFibGUucXVlcnlTZWxlY3RvckFsbCgiZGl2LnBhZ2VkdGFibGUtZm9vdGVyIilbMF07CiAgICBmb290ZXIuaW5uZXJIVE1MID0gIiI7CgogICAgcmV0dXJuIGZvb3RlcjsKICB9OwoKICB2YXIgY3JlYXRlUGFnZUxpbmsgPSBmdW5jdGlvbihpZHhQYWdlKSB7CiAgICB2YXIgcGFnZUxpbmsgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7CiAgICBwYWdlTGlua0NsYXNzID0gaWR4UGFnZSA9PT0gcGFnZS5udW1iZXIgPyAicGFnZWR0YWJsZS1pbmRleCBwYWdlZHRhYmxlLWluZGV4LWN1cnJlbnQiIDogInBhZ2VkdGFibGUtaW5kZXgiOwogICAgcGFnZUxpbmsuc2V0QXR0cmlidXRlKCJjbGFzcyIsIHBhZ2VMaW5rQ2xhc3MpOwogICAgcGFnZUxpbmsuc2V0QXR0cmlidXRlKCJkYXRhLXBhZ2UtaW5kZXgiLCBpZHhQYWdlKTsKICAgIHBhZ2VMaW5rLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgcGFnZS5zZXRQYWdlTnVtYmVyKHBhcnNlSW50KHRoaXMuZ2V0QXR0cmlidXRlKCJkYXRhLXBhZ2UtaW5kZXgiKSkpOwogICAgICByZW5kZXJCb2R5KCk7CiAgICAgIHJlbmRlckZvb3RlcigpOwoKICAgICAgdHJpZ2dlck9uQ2hhbmdlKCk7CiAgICB9OwoKICAgIHBhZ2VMaW5rLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKGlkeFBhZ2UgKyAxKSk7CgogICAgcmV0dXJuIHBhZ2VMaW5rOwogIH0KCiAgdmFyIHJlbmRlckZvb3RlciA9IGZ1bmN0aW9uKCkgewogICAgZm9vdGVyID0gY2xlYXJGb290ZXIoKTsKCiAgICB2YXIgbmV4dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgIG5leHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIk5leHQiKSk7CiAgICBuZXh0Lm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgcGFnZS5zZXRQYWdlTnVtYmVyKHBhZ2UubnVtYmVyICsgMSk7CiAgICAgIHJlbmRlckJvZHkoKTsKICAgICAgcmVuZGVyRm9vdGVyKCk7CgogICAgICB0cmlnZ2VyT25DaGFuZ2UoKTsKICAgIH07CiAgICBpZiAoZGF0YS5sZW5ndGggPiBwYWdlLnJvd3MpIGZvb3Rlci5hcHBlbmRDaGlsZChuZXh0KTsKCiAgICB2YXIgcGFnZU51bWJlcnMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHBhZ2VOdW1iZXJzLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1pbmRleGVzIik7CgogICAgdmFyIHBhZ2VSYW5nZSA9IHBhZ2UuZ2V0VmlzaWJsZVBhZ2VSYW5nZSgpOwoKICAgIGlmIChwYWdlUmFuZ2UuZmlyc3QpIHsKICAgICAgdmFyIHBhZ2VMaW5rID0gY3JlYXRlUGFnZUxpbmsoMCk7CiAgICAgIHBhZ2VOdW1iZXJzLmFwcGVuZENoaWxkKHBhZ2VMaW5rKTsKCiAgICAgIHZhciBwYWdlU2VwYXJhdG9yID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgIHBhZ2VTZXBhcmF0b3Iuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJwYWdlZHRhYmxlLWluZGV4LXNlcGFyYXRvci1sZWZ0Iik7CiAgICAgIHBhZ2VTZXBhcmF0b3IuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIi4uLiIpKQogICAgICBwYWdlTnVtYmVycy5hcHBlbmRDaGlsZChwYWdlU2VwYXJhdG9yKTsKICAgIH0KCiAgICBmb3IgKHZhciBpZHhQYWdlID0gcGFnZVJhbmdlLnN0YXJ0OyBpZHhQYWdlIDwgcGFnZVJhbmdlLmVuZDsgaWR4UGFnZSsrKSB7CiAgICAgIHZhciBwYWdlTGluayA9IGNyZWF0ZVBhZ2VMaW5rKGlkeFBhZ2UpOwoKICAgICAgcGFnZU51bWJlcnMuYXBwZW5kQ2hpbGQocGFnZUxpbmspOwogICAgfQoKICAgIGlmIChwYWdlUmFuZ2UubGFzdCkgewogICAgICB2YXIgcGFnZVNlcGFyYXRvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICBwYWdlU2VwYXJhdG9yLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1pbmRleC1zZXBhcmF0b3ItcmlnaHQiKTsKICAgICAgcGFnZVNlcGFyYXRvci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiLi4uIikpCiAgICAgIHBhZ2VOdW1iZXJzLmFwcGVuZENoaWxkKHBhZ2VTZXBhcmF0b3IpOwoKICAgICAgdmFyIHBhZ2VMaW5rID0gY3JlYXRlUGFnZUxpbmsocGFnZS50b3RhbCAtIDEpOwogICAgICBwYWdlTnVtYmVycy5hcHBlbmRDaGlsZChwYWdlTGluayk7CiAgICB9CgogICAgaWYgKGRhdGEubGVuZ3RoID4gcGFnZS5yb3dzKSBmb290ZXIuYXBwZW5kQ2hpbGQocGFnZU51bWJlcnMpOwoKICAgIHZhciBwcmV2aW91cyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTsKICAgIHByZXZpb3VzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJQcmV2aW91cyIpKTsKICAgIHByZXZpb3VzLm9uY2xpY2sgPSBmdW5jdGlvbigpIHsKICAgICAgcGFnZS5zZXRQYWdlTnVtYmVyKHBhZ2UubnVtYmVyIC0gMSk7CiAgICAgIHJlbmRlckJvZHkoKTsKICAgICAgcmVuZGVyRm9vdGVyKCk7CgogICAgICB0cmlnZ2VyT25DaGFuZ2UoKTsKICAgIH07CiAgICBpZiAoZGF0YS5sZW5ndGggPiBwYWdlLnJvd3MpIGZvb3Rlci5hcHBlbmRDaGlsZChwcmV2aW91cyk7CgogICAgdmFyIGluZm9MYWJlbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgaW5mb0xhYmVsLnNldEF0dHJpYnV0ZSgiY2xhc3MiLCAicGFnZWR0YWJsZS1pbmZvIik7CiAgICBpbmZvTGFiZWwuc2V0QXR0cmlidXRlKCJ0aXRsZSIsIGdldExhYmVsSW5mbygpKTsKICAgIGluZm9MYWJlbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShnZXRMYWJlbEluZm8oKSkpOwogICAgZm9vdGVyLmFwcGVuZENoaWxkKGluZm9MYWJlbCk7CgogICAgdmFyIGVuYWJsZWRDbGFzcyA9ICJwYWdlZHRhYmxlLWluZGV4LW5hdiI7CiAgICB2YXIgZGlzYWJsZWRDbGFzcyA9ICJwYWdlZHRhYmxlLWluZGV4LW5hdiBwYWdlZHRhYmxlLWluZGV4LW5hdi1kaXNhYmxlZCI7CiAgICBwcmV2aW91cy5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgcGFnZS5udW1iZXIgPD0gMCA/IGRpc2FibGVkQ2xhc3MgOiBlbmFibGVkQ2xhc3MpOwogICAgbmV4dC5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgKHBhZ2UubnVtYmVyICsgMSkgKiBwYWdlLnJvd3MgPj0gZGF0YS5sZW5ndGggPyBkaXNhYmxlZENsYXNzIDogZW5hYmxlZENsYXNzKTsKICB9OwoKICB2YXIgbWVhc3VyZXNDZWxsID0gbnVsbDsKCiAgdmFyIHJlbmRlck1lYXN1cmVzID0gZnVuY3Rpb24oKSB7CiAgICB2YXIgbWVhc3VyZXNUYWJsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRhYmxlIik7CiAgICBtZWFzdXJlc1RhYmxlLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgIG1lYXN1cmVzVGFibGUuc3R5bGUucG9zaXRpb24gPSAiYWJzb2x1dGUiOwogICAgbWVhc3VyZXNUYWJsZS5zdHlsZS53aGl0ZVNwYWNlID0gIm5vd3JhcCI7CiAgICBtZWFzdXJlc1RhYmxlLnN0eWxlLmhlaWdodCA9ICJhdXRvIjsKICAgIG1lYXN1cmVzVGFibGUuc3R5bGUud2lkdGggPSAiYXV0byI7CgogICAgdmFyIG1lYXN1cmVzUm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidHIiKTsKICAgIG1lYXN1cmVzVGFibGUuYXBwZW5kQ2hpbGQobWVhc3VyZXNSb3cpOwoKICAgIG1lYXN1cmVzQ2VsbCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRkIik7CiAgICB2YXIgc2FtcGxlU3RyaW5nID0gIkFCQ0RFRkdISUowMTIzNDU2Nzg5IjsKICAgIG1lYXN1cmVzQ2VsbC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzYW1wbGVTdHJpbmcpKTsKCiAgICBtZWFzdXJlc1Jvdy5hcHBlbmRDaGlsZChtZWFzdXJlc0NlbGwpOwoKICAgIHRhYmxlRGl2LmFwcGVuZENoaWxkKG1lYXN1cmVzVGFibGUpOwogIH0KCiAgbWUuaW5pdCA9IGZ1bmN0aW9uKCkgewogICAgdGFibGVEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIHBhZ2VkVGFibGUuYXBwZW5kQ2hpbGQodGFibGVEaXYpOwogICAgdmFyIHBhZ2VkVGFibGVDbGFzcyA9IGRhdGEubGVuZ3RoID4gMCA/CiAgICAgICJwYWdlZHRhYmxlIHBhZ2VkdGFibGUtbm90LWVtcHR5IiA6CiAgICAgICJwYWdlZHRhYmxlIHBhZ2VkdGFibGUtZW1wdHkiOwoKICAgIGlmIChjb2x1bW5zLnRvdGFsID09IDAgfHwgKGNvbHVtbnMuZW1wdHlOYW1lcygpICYmIGRhdGEubGVuZ3RoID09IDApKSB7CiAgICAgIHBhZ2VkVGFibGVDbGFzcyA9IHBhZ2VkVGFibGVDbGFzcyArICIgcGFnZWR0YWJsZS1lbXB0eS1jb2x1bW5zIjsKICAgIH0KCiAgICB0YWJsZURpdi5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgcGFnZWRUYWJsZUNsYXNzKTsKCiAgICByZW5kZXJNZWFzdXJlcygpOwogICAgbWVhc3VyZXIuY2FsY3VsYXRlKG1lYXN1cmVzQ2VsbCk7CiAgICBjb2x1bW5zLmNhbGN1bGF0ZVdpZHRocyhtZWFzdXJlci5tZWFzdXJlcyk7CgogICAgdGFibGUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJ0YWJsZSIpOwogICAgdGFibGUuc2V0QXR0cmlidXRlKCJjZWxsc3BhY2luZyIsICIwIik7CiAgICB0YWJsZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInRhYmxlIHRhYmxlLWNvbmRlbnNlZCIpOwogICAgdGFibGVEaXYuYXBwZW5kQ2hpbGQodGFibGUpOwoKICAgIHRhYmxlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInRoZWFkIikpOwoKICAgIHZhciBmb290ZXJEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgIGZvb3RlckRpdi5zZXRBdHRyaWJ1dGUoImNsYXNzIiwgInBhZ2VkdGFibGUtZm9vdGVyIik7CiAgICB0YWJsZURpdi5hcHBlbmRDaGlsZChmb290ZXJEaXYpOwoKICAgIC8vIGlmIHRoZSBob3N0IGhhcyBub3QgeWV0IHByb3ZpZGVkIGhvcml6b250YWwgc3BhY2UsIHJlbmRlciBoaWRkZW4KICAgIGlmICh0YWJsZURpdi5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHRhYmxlRGl2LnN0eWxlLm9wYWNpdHkgPSAiMCI7CiAgICB9CgogICAgbWUucmVuZGVyKCk7CgogICAgLy8gcmV0cnkgc2VpemluZyBjb2x1bW5zIGxhdGVyIGlmIHRoZSBob3N0IGhhcyBub3QgcHJvdmlkZWQgc3BhY2UKICAgIGZ1bmN0aW9uIHJldHJ5Rml0KCkgewogICAgICBpZiAodGFibGVEaXYuY2xpZW50V2lkdGggPD0gMCkgewogICAgICAgIHNldFRpbWVvdXQocmV0cnlGaXQsIDEwMCk7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWUucmVuZGVyKCk7CiAgICAgICAgdHJpZ2dlck9uQ2hhbmdlKCk7CiAgICAgIH0KICAgIH0KICAgIGlmICh0YWJsZURpdi5jbGllbnRXaWR0aCA8PSAwKSB7CiAgICAgIHJldHJ5Rml0KCk7CiAgICB9CiAgfTsKCiAgdmFyIHJlZ2lzdGVyV2lkdGhzID0gZnVuY3Rpb24oKSB7CiAgICBjb2x1bW5zLnN1YnNldCA9IGNvbHVtbnMuc3Vic2V0Lm1hcChmdW5jdGlvbihjb2x1bW4pIHsKICAgICAgY29sdW1uLndpZHRoID0gY29sdW1ucy53aWR0aHNbY29sdW1uLm5hbWVdLmlubmVyOwogICAgICByZXR1cm4gY29sdW1uOwogICAgfSk7CiAgfTsKCiAgdmFyIHBhcnNlUGFkZGluZyA9IGZ1bmN0aW9uKHZhbHVlKSB7CiAgICByZXR1cm4gcGFyc2VJbnQodmFsdWUpID49IDAgPyBwYXJzZUludCh2YWx1ZSkgOiAwOwogIH07CgogIG1lLmZpeGVkSGVpZ2h0ID0gZnVuY3Rpb24oKSB7CiAgICByZXR1cm4gb3B0aW9ucy5yb3dzLm1heCAhPSBudWxsOwogIH0KCiAgbWUuZml0Um93cyA9IGZ1bmN0aW9uKCkgewogICAgaWYgKG1lLmZpeGVkSGVpZ2h0KCkpCiAgICAgIHJldHVybjsKCiAgICBtZWFzdXJlci5jYWxjdWxhdGUobWVhc3VyZXNDZWxsKTsKCiAgICB2YXIgcm93cyA9IG9wdGlvbnMucm93cy5taW4gIT09IG51bGwgPyBvcHRpb25zLnJvd3MubWluIDogMDsKICAgIHZhciBoZWFkZXJIZWlnaHQgPSBoZWFkZXIgIT09IG51bGwgJiYgaGVhZGVyLm9mZnNldEhlaWdodCA+IDAgPyBoZWFkZXIub2Zmc2V0SGVpZ2h0IDogMDsKICAgIHZhciBmb290ZXJIZWlnaHQgPSBmb290ZXIgIT09IG51bGwgJiYgZm9vdGVyLm9mZnNldEhlaWdodCA+IDAgPyBmb290ZXIub2Zmc2V0SGVpZ2h0IDogMDsKCiAgICBpZiAocGFnZWRUYWJsZS5vZmZzZXRIZWlnaHQgPiAwKSB7CiAgICAgIHZhciBhdmFpbGFibGVIZWlnaHQgPSBwYWdlZFRhYmxlLm9mZnNldEhlaWdodCAtIGhlYWRlckhlaWdodCAtIGZvb3RlckhlaWdodDsKICAgICAgcm93cyA9IE1hdGguZmxvb3IoKGF2YWlsYWJsZUhlaWdodCkgLyBtZWFzdXJlci5tZWFzdXJlcy5oZWlnaHQpOwogICAgfQoKICAgIHJvd3MgPSBvcHRpb25zLnJvd3MubWluICE9PSBudWxsID8gTWF0aC5tYXgob3B0aW9ucy5yb3dzLm1pbiwgcm93cykgOiByb3dzOwoKICAgIHBhZ2Uuc2V0Um93cyhyb3dzKTsKICB9CgogIC8vIFRoZSBnb2FsIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gYWRkIGFzIG1hbnkgY29sdW1ucyBhcyBwb3NzaWJsZQogIC8vIHN0YXJ0aW5nIGZyb20gbGVmdC10by1yaWdodCwgd2hlbiB0aGUgcmlnaHQgbW9zdCBsaW1pdCBpcyByZWFjaGVkCiAgLy8gaXQgdHJpZXMgdG8gYWRkIGNvbHVtbnMgZnJvbSB0aGUgbGVmdCBhcyB3ZWxsLgogIC8vCiAgLy8gV2hlbiBzdGFydEJhY2t3YXJkcyBpcyB0cnVlIGNvbHVtbnMgYXJlIGFkZGVkIGZyb20gcmlnaHQtdG8tbGVmdAogIG1lLmZpdENvbHVtbnMgPSBmdW5jdGlvbihzdGFydEJhY2t3YXJkcykgewogICAgbWVhc3VyZXIuY2FsY3VsYXRlKG1lYXN1cmVzQ2VsbCk7CiAgICBjb2x1bW5zLmNhbGN1bGF0ZVdpZHRocyhtZWFzdXJlci5tZWFzdXJlcyk7CgogICAgaWYgKHRhYmxlRGl2LmNsaWVudFdpZHRoID4gMCkgewogICAgICB0YWJsZURpdi5zdHlsZS5vcGFjaXR5ID0gMTsKICAgIH0KCiAgICB2YXIgdmlzaWJsZUNvbHVtbnMgPSB0YWJsZURpdi5jbGllbnRXaWR0aCA8PSAwID8gTWF0aC5tYXgoY29sdW1ucy5taW4sIDEpIDogMTsKICAgIHZhciBjb2x1bW5OdW1iZXIgPSBjb2x1bW5zLm51bWJlcjsKICAgIHZhciBwYWRkaW5nQ291bnQgPSAwOwoKICAgIC8vIHRyYWNrIGEgbGlzdCBvZiBhZGRlZCBjb2x1bW5zIGFzIHdlIGJ1aWxkIHRoZSB2aXNpYmxlIG9uZXMgdG8gYWxsb3cgdXMKICAgIC8vIHRvIHJlbW92ZSBjb2x1bW5zIHdoZW4gdGhleSBkb24ndCBmaXQgYW55bW9yZS4KICAgIHZhciBjb2x1bW5IaXN0b3J5ID0gW107CgogICAgdmFyIGxhc3RUYWJsZUhlaWdodCA9IDA7CiAgICB2YXIgYmFja3dhcmRzID0gc3RhcnRCYWNrd2FyZHM7CgogICAgdmFyIHRhYmxlRGl2U3R5bGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0YWJsZURpdiwgbnVsbCk7CiAgICB2YXIgdGFibGVEaXZQYWRkaW5nID0gcGFyc2VQYWRkaW5nKHRhYmxlRGl2U3R5bGUucGFkZGluZ0xlZnQpICsKICAgICAgcGFyc2VQYWRkaW5nKHRhYmxlRGl2U3R5bGUucGFkZGluZ1JpZ2h0KTsKCiAgICB2YXIgYWRkUGFkZGluZ0NvbCA9IGZhbHNlOwogICAgdmFyIGN1cnJlbnRXaWR0aCA9IDA7CgogICAgd2hpbGUgKHRydWUpIHsKICAgICAgY29sdW1ucy5zZXRWaXNpYmxlQ29sdW1ucyhjb2x1bW5OdW1iZXIsIHZpc2libGVDb2x1bW5zLCBwYWRkaW5nQ291bnQpOwogICAgICBjdXJyZW50V2lkdGggPSBjb2x1bW5zLmdldFdpZHRoKCk7CgogICAgICBpZiAodGFibGVEaXYuY2xpZW50V2lkdGggLSB0YWJsZURpdlBhZGRpbmcgPCBjdXJyZW50V2lkdGgpIHsKICAgICAgICBicmVhazsKICAgICAgfQoKICAgICAgY29sdW1uSGlzdG9yeS5wdXNoKHsKICAgICAgICBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciwKICAgICAgICB2aXNpYmxlQ29sdW1uczogdmlzaWJsZUNvbHVtbnMsCiAgICAgICAgcGFkZGluZ0NvdW50OiBwYWRkaW5nQ291bnQKICAgICAgfSk7CgogICAgICBpZiAoY29sdW1uSGlzdG9yeS5sZW5ndGggPiAxMDApIHsKICAgICAgICBjb25zb2xlLmVycm9yKCJNb3JlIHRoYW4gMTAwIHRyaWVzIHRvIGZpdCBjb2x1bW5zLCBhYm9ydGluZyIpOwogICAgICAgIGJyZWFrOwogICAgICB9CgogICAgICBpZiAoY29sdW1ucy5tYXggIT09IG51bGwgJiYKICAgICAgICBjb2x1bW5zLnZpc2libGUgKyBjb2x1bW5zLmdldFBhZGRpbmdDb3VudCgpID49IGNvbHVtbnMubWF4KSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KCiAgICAgIC8vIGlmIHdlIHJ1biBvdXQgb2YgcmlnaHQtY29sdW1ucwogICAgICBpZiAoIWJhY2t3YXJkcyAmJiBjb2x1bW5OdW1iZXIgKyBjb2x1bW5zLnZpc2libGUgPj0gY29sdW1ucy50b3RhbCkgewogICAgICAgIC8vIGlmIHdlIHN0YXJ0ZWQgYWRkaW5nIHJpZ2h0LWNvbHVtbnMsIHRyeSBhZGRpbmcgbGVmdC1jb2x1bW5zCiAgICAgICAgaWYgKCFzdGFydEJhY2t3YXJkcyAmJiBjb2x1bW5OdW1iZXIgPiAwKSB7CiAgICAgICAgICBiYWNrd2FyZHMgPSB0cnVlOwogICAgICAgIH0KICAgICAgICBlbHNlIGlmIChjb2x1bW5zLm1pbiA9PT0gbnVsbCB8fCB2aXNpYmxlQ29sdW1ucyArIGNvbHVtbnMuZ2V0UGFkZGluZ0NvdW50KCkgPj0gY29sdW1ucy5taW4pIHsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgIHBhZGRpbmdDb3VudCA9IHBhZGRpbmdDb3VudCArIDE7CiAgICAgICAgfQogICAgICB9CgogICAgICAvLyBpZiB3ZSBydW4gb3V0IG9mIGxlZnQtY29sdW1ucwogICAgICBpZiAoYmFja3dhcmRzICYmIGNvbHVtbk51bWJlciA9PSAwKSB7CiAgICAgICAgLy8gaWYgd2Ugc3RhcnRlZCBhZGRpbmcgbGVmdC1jb2x1bW5zLCB0cnkgYWRkaW5nIHJpZ2h0LWNvbHVtbnMKICAgICAgICBpZiAoc3RhcnRCYWNrd2FyZHMgJiYgY29sdW1uTnVtYmVyICsgY29sdW1ucy52aXNpYmxlIDwgY29sdW1ucy50b3RhbCkgewogICAgICAgICAgYmFja3dhcmRzID0gZmFsc2U7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYgKGNvbHVtbnMubWluID09PSBudWxsIHx8IHZpc2libGVDb2x1bW5zICsgY29sdW1ucy5nZXRQYWRkaW5nQ291bnQoKSA+PSBjb2x1bW5zLm1pbikgewogICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgcGFkZGluZ0NvdW50ID0gcGFkZGluZ0NvdW50ICsgMTsKICAgICAgICB9CiAgICAgIH0KCiAgICAgIC8vIHdoZW4gbW92aW5nIGJhY2t3YXJkcyB0cnkgZml0dGluZyBsZWZ0IGNvbHVtbnMgZmlyc3QKICAgICAgaWYgKGJhY2t3YXJkcyAmJiBjb2x1bW5OdW1iZXIgPiAwKSB7CiAgICAgICAgY29sdW1uTnVtYmVyID0gY29sdW1uTnVtYmVyIC0gMTsKICAgICAgfQoKICAgICAgaWYgKGNvbHVtbk51bWJlciArIHZpc2libGVDb2x1bW5zIDwgY29sdW1ucy50b3RhbCkgewogICAgICAgIHZpc2libGVDb2x1bW5zID0gdmlzaWJsZUNvbHVtbnMgKyAxOwogICAgICB9CiAgICB9CgogICAgdmFyIGxhc3RSZW5kZXJhYmxlQ29sdW1uID0gewogICAgICAgIGNvbHVtbk51bWJlcjogY29sdW1uTnVtYmVyLAogICAgICAgIHZpc2libGVDb2x1bW5zOiB2aXNpYmxlQ29sdW1ucywKICAgICAgICBwYWRkaW5nQ291bnQ6IHBhZGRpbmdDb3VudAogICAgfTsKCiAgICBpZiAoY29sdW1uSGlzdG9yeS5sZW5ndGggPiAwKSB7CiAgICAgIGxhc3RSZW5kZXJhYmxlQ29sdW1uID0gY29sdW1uSGlzdG9yeVtjb2x1bW5IaXN0b3J5Lmxlbmd0aCAtIDFdOwogICAgfQoKICAgIGNvbHVtbnMuc2V0VmlzaWJsZUNvbHVtbnMoCiAgICAgIGxhc3RSZW5kZXJhYmxlQ29sdW1uLmNvbHVtbk51bWJlciwKICAgICAgbGFzdFJlbmRlcmFibGVDb2x1bW4udmlzaWJsZUNvbHVtbnMsCiAgICAgIGxhc3RSZW5kZXJhYmxlQ29sdW1uLnBhZGRpbmdDb3VudCk7CgogICAgaWYgKHBhZ2VkVGFibGUub2Zmc2V0V2lkdGggPiAwKSB7CiAgICAgIHBhZ2Uuc2V0VmlzaWJsZVBhZ2VzKE1hdGgubWF4KE1hdGguY2VpbCgxLjAgKiAocGFnZWRUYWJsZS5vZmZzZXRXaWR0aCAtIDI1MCkgLyA0MCksIDIpKTsKICAgIH0KCiAgICByZWdpc3RlcldpZHRocygpOwogIH07CgogIG1lLmZpdCA9IGZ1bmN0aW9uKHN0YXJ0QmFja3dhcmRzKSB7CiAgICBtZS5maXRSb3dzKCk7CiAgICBtZS5maXRDb2x1bW5zKHN0YXJ0QmFja3dhcmRzKTsKICB9CgogIG1lLnJlbmRlciA9IGZ1bmN0aW9uKCkgewogICAgbWUuZml0Q29sdW1ucyhmYWxzZSk7CgogICAgLy8gcmVuZGVyIGhlYWRlci9mb290ZXIgdG8gbWVhc3VyZSBoZWlnaHQgYWNjdXJhdGVseQogICAgcmVuZGVySGVhZGVyKCk7CiAgICByZW5kZXJGb290ZXIoKTsKCiAgICBtZS5maXRSb3dzKCk7CiAgICByZW5kZXJCb2R5KCk7CgogICAgLy8gcmUtcmVuZGVyIGZvb3RlciB0byBtYXRjaCBuZXcgcm93cwogICAgcmVuZGVyRm9vdGVyKCk7CiAgfQoKICB2YXIgcmVzaXplTGFzdFdpZHRoID0gLTE7CiAgdmFyIHJlc2l6ZUxhc3RIZWlnaHQgPSAtMTsKICB2YXIgcmVzaXplTmV3V2lkdGggPSAtMTsKICB2YXIgcmVzaXplTmV3SGVpZ2h0ID0gLTE7CiAgdmFyIHJlc2l6ZVBlbmRpbmcgPSBmYWxzZTsKCiAgbWUucmVzaXplID0gZnVuY3Rpb24obmV3V2lkdGgsIG5ld0hlaWdodCkgewoKICAgIGZ1bmN0aW9uIHJlc2l6ZURlbGF5ZWQoKSB7CiAgICAgIHJlc2l6ZVBlbmRpbmcgPSBmYWxzZTsKCiAgICAgIGlmICgKICAgICAgICAocmVzaXplTmV3V2lkdGggIT09IHJlc2l6ZUxhc3RXaWR0aCkgfHwKICAgICAgICAoIW1lLmZpeGVkSGVpZ2h0KCkgJiYgcmVzaXplTmV3SGVpZ2h0ICE9PSByZXNpemVMYXN0SGVpZ2h0KQogICAgICApIHsKICAgICAgICByZXNpemVMYXN0V2lkdGggPSByZXNpemVOZXdXaWR0aDsKICAgICAgICByZXNpemVMYXN0SGVpZ2h0ID0gcmVzaXplTmV3SGVpZ2h0OwoKICAgICAgICBzZXRUaW1lb3V0KHJlc2l6ZURlbGF5ZWQsIDIwMCk7CiAgICAgICAgcmVzaXplUGVuZGluZyA9IHRydWU7CiAgICAgIH0gZWxzZSB7CiAgICAgICAgbWUucmVuZGVyKCk7CiAgICAgICAgdHJpZ2dlck9uQ2hhbmdlKCk7CgogICAgICAgIHJlc2l6ZUxhc3RXaWR0aCA9IC0xOwogICAgICAgIHJlc2l6ZUxhc3RIZWlnaHQgPSAtMTsKICAgICAgfQogICAgfQoKICAgIHJlc2l6ZU5ld1dpZHRoID0gbmV3V2lkdGg7CiAgICByZXNpemVOZXdIZWlnaHQgPSBuZXdIZWlnaHQ7CgogICAgaWYgKCFyZXNpemVQZW5kaW5nKSByZXNpemVEZWxheWVkKCk7CiAgfTsKfTsKCnZhciBQYWdlZFRhYmxlRG9jOwooZnVuY3Rpb24gKFBhZ2VkVGFibGVEb2MpIHsKICB2YXIgYWxsUGFnZWRUYWJsZXMgPSBbXTsKCiAgUGFnZWRUYWJsZURvYy5pbml0QWxsID0gZnVuY3Rpb24oKSB7CiAgICBhbGxQYWdlZFRhYmxlcyA9IFtdOwoKICAgIHZhciBwYWdlZFRhYmxlcyA9IFtdLnNsaWNlLmNhbGwoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgnW2RhdGEtcGFnZWR0YWJsZT0iZmFsc2UiXSxbZGF0YS1wYWdlZHRhYmxlPSIiXScpKTsKICAgIHBhZ2VkVGFibGVzLmZvckVhY2goZnVuY3Rpb24ocGFnZWRUYWJsZSwgaWR4KSB7CiAgICAgIHBhZ2VkVGFibGUuc2V0QXR0cmlidXRlKCJkYXRhLXBhZ2VkdGFibGUiLCAidHJ1ZSIpOwogICAgICBwYWdlZFRhYmxlLnNldEF0dHJpYnV0ZSgicGFnZWR0YWJsZS1wYWdlIiwgMCk7CiAgICAgIHBhZ2VkVGFibGUuc2V0QXR0cmlidXRlKCJjbGFzcyIsICJwYWdlZHRhYmxlLXdyYXBwZXIiKTsKCiAgICAgIHZhciBwYWdlZFRhYmxlSW5zdGFuY2UgPSBuZXcgUGFnZWRUYWJsZShwYWdlZFRhYmxlKTsKICAgICAgcGFnZWRUYWJsZUluc3RhbmNlLmluaXQoKTsKCiAgICAgIGFsbFBhZ2VkVGFibGVzLnB1c2gocGFnZWRUYWJsZUluc3RhbmNlKTsKICAgIH0pOwogIH07CgogIFBhZ2VkVGFibGVEb2MucmVzaXplQWxsID0gZnVuY3Rpb24oKSB7CiAgICBhbGxQYWdlZFRhYmxlcy5mb3JFYWNoKGZ1bmN0aW9uKHBhZ2VkVGFibGUpIHsKICAgICAgcGFnZWRUYWJsZS5yZW5kZXIoKTsKICAgIH0pOwogIH07CgogIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLCBQYWdlZFRhYmxlRG9jLnJlc2l6ZUFsbCk7CgogIHJldHVybiBQYWdlZFRhYmxlRG9jOwp9KShQYWdlZFRhYmxlRG9jIHx8IChQYWdlZFRhYmxlRG9jID0ge30pKTsKCndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICBQYWdlZFRhYmxlRG9jLmluaXRBbGwoKTsKfTsK"></script>
<script src="data:application/javascript;base64,KGZ1bmN0aW9uKCkgewogIC8vIElmIHdpbmRvdy5IVE1MV2lkZ2V0cyBpcyBhbHJlYWR5IGRlZmluZWQsIHRoZW4gdXNlIGl0OyBvdGhlcndpc2UgY3JlYXRlIGEKICAvLyBuZXcgb2JqZWN0LiBUaGlzIGFsbG93cyBwcmVjZWRpbmcgY29kZSB0byBzZXQgb3B0aW9ucyB0aGF0IGFmZmVjdCB0aGUKICAvLyBpbml0aWFsaXphdGlvbiBwcm9jZXNzICh0aG91Z2ggbm9uZSBjdXJyZW50bHkgZXhpc3QpLgogIHdpbmRvdy5IVE1MV2lkZ2V0cyA9IHdpbmRvdy5IVE1MV2lkZ2V0cyB8fCB7fTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gYSB2aWV3ZXIgcGFuZS4gSWYgbm90LCB3ZSdyZSBpbiBhIHdlYiBicm93c2VyLgogIHZhciB2aWV3ZXJNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnZpZXdlck1vZGUgPQogICAgICAvXGJ2aWV3ZXJfcGFuZT0xXGIvLnRlc3Qod2luZG93LmxvY2F0aW9uKTsKCiAgLy8gU2VlIGlmIHdlJ3JlIHJ1bm5pbmcgaW4gU2hpbnkgbW9kZS4gSWYgbm90LCBpdCdzIGEgc3RhdGljIGRvY3VtZW50LgogIC8vIE5vdGUgdGhhdCBzdGF0aWMgd2lkZ2V0cyBjYW4gYXBwZWFyIGluIGJvdGggU2hpbnkgYW5kIHN0YXRpYyBtb2RlcywgYnV0CiAgLy8gb2J2aW91c2x5LCBTaGlueSB3aWRnZXRzIGNhbiBvbmx5IGFwcGVhciBpbiBTaGlueSBhcHBzL2RvY3VtZW50cy4KICB2YXIgc2hpbnlNb2RlID0gd2luZG93LkhUTUxXaWRnZXRzLnNoaW55TW9kZSA9CiAgICAgIHR5cGVvZih3aW5kb3cuU2hpbnkpICE9PSAidW5kZWZpbmVkIiAmJiAhIXdpbmRvdy5TaGlueS5vdXRwdXRCaW5kaW5nczsKCiAgLy8gV2UgY2FuJ3QgY291bnQgb24galF1ZXJ5IGJlaW5nIGF2YWlsYWJsZSwgc28gd2UgaW1wbGVtZW50IG91ciBvd24KICAvLyB2ZXJzaW9uIGlmIG5lY2Vzc2FyeS4KICBmdW5jdGlvbiBxdWVyeVNlbGVjdG9yQWxsKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKHR5cGVvZihqUXVlcnkpICE9PSAidW5kZWZpbmVkIiAmJiBzY29wZSBpbnN0YW5jZW9mIGpRdWVyeSkgewogICAgICByZXR1cm4gc2NvcGUuZmluZChzZWxlY3Rvcik7CiAgICB9CiAgICBpZiAoc2NvcGUucXVlcnlTZWxlY3RvckFsbCkgewogICAgICByZXR1cm4gc2NvcGUucXVlcnlTZWxlY3RvckFsbChzZWxlY3Rvcik7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBhc0FycmF5KHZhbHVlKSB7CiAgICBpZiAodmFsdWUgPT09IG51bGwpCiAgICAgIHJldHVybiBbXTsKICAgIGlmICgkLmlzQXJyYXkodmFsdWUpKQogICAgICByZXR1cm4gdmFsdWU7CiAgICByZXR1cm4gW3ZhbHVlXTsKICB9CgogIC8vIEltcGxlbWVudCBqUXVlcnkncyBleHRlbmQKICBmdW5jdGlvbiBleHRlbmQodGFyZ2V0IC8qLCAuLi4gKi8pIHsKICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09IDEpIHsKICAgICAgcmV0dXJuIHRhcmdldDsKICAgIH0KICAgIGZvciAodmFyIGkgPSAxOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHZhciBzb3VyY2UgPSBhcmd1bWVudHNbaV07CiAgICAgIGZvciAodmFyIHByb3AgaW4gc291cmNlKSB7CiAgICAgICAgaWYgKHNvdXJjZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkgewogICAgICAgICAgdGFyZ2V0W3Byb3BdID0gc291cmNlW3Byb3BdOwogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmV0dXJuIHRhcmdldDsKICB9CgogIC8vIElFOCBkb2Vzbid0IHN1cHBvcnQgQXJyYXkuZm9yRWFjaC4KICBmdW5jdGlvbiBmb3JFYWNoKHZhbHVlcywgY2FsbGJhY2ssIHRoaXNBcmcpIHsKICAgIGlmICh2YWx1ZXMuZm9yRWFjaCkgewogICAgICB2YWx1ZXMuZm9yRWFjaChjYWxsYmFjaywgdGhpc0FyZyk7CiAgICB9IGVsc2UgewogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHZhbHVlcy5sZW5ndGg7IGkrKykgewogICAgICAgIGNhbGxiYWNrLmNhbGwodGhpc0FyZywgdmFsdWVzW2ldLCBpLCB2YWx1ZXMpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZXBsYWNlcyB0aGUgc3BlY2lmaWVkIG1ldGhvZCB3aXRoIHRoZSByZXR1cm4gdmFsdWUgb2YgZnVuY1NvdXJjZS4KICAvLwogIC8vIE5vdGUgdGhhdCBmdW5jU291cmNlIHNob3VsZCBub3QgQkUgdGhlIG5ldyBtZXRob2QsIGl0IHNob3VsZCBiZSBhIGZ1bmN0aW9uCiAgLy8gdGhhdCBSRVRVUk5TIHRoZSBuZXcgbWV0aG9kLiBmdW5jU291cmNlIHJlY2VpdmVzIGEgc2luZ2xlIGFyZ3VtZW50IHRoYXQgaXMKICAvLyB0aGUgb3ZlcnJpZGRlbiBtZXRob2QsIGl0IGNhbiBiZSBjYWxsZWQgZnJvbSB0aGUgbmV3IG1ldGhvZC4gVGhlIG92ZXJyaWRkZW4KICAvLyBtZXRob2QgY2FuIGJlIGNhbGxlZCBsaWtlIGEgcmVndWxhciBmdW5jdGlvbiwgaXQgaGFzIHRoZSB0YXJnZXQgcGVybWFuZW50bHkKICAvLyBib3VuZCB0byBpdCBzbyAidGhpcyIgd2lsbCB3b3JrIGNvcnJlY3RseS4KICBmdW5jdGlvbiBvdmVycmlkZU1ldGhvZCh0YXJnZXQsIG1ldGhvZE5hbWUsIGZ1bmNTb3VyY2UpIHsKICAgIHZhciBzdXBlckZ1bmMgPSB0YXJnZXRbbWV0aG9kTmFtZV0gfHwgZnVuY3Rpb24oKSB7fTsKICAgIHZhciBzdXBlckZ1bmNCb3VuZCA9IGZ1bmN0aW9uKCkgewogICAgICByZXR1cm4gc3VwZXJGdW5jLmFwcGx5KHRhcmdldCwgYXJndW1lbnRzKTsKICAgIH07CiAgICB0YXJnZXRbbWV0aG9kTmFtZV0gPSBmdW5jU291cmNlKHN1cGVyRnVuY0JvdW5kKTsKICB9CgogIC8vIEFkZCBhIG1ldGhvZCB0byBkZWxlZ2F0b3IgdGhhdCwgd2hlbiBpbnZva2VkLCBjYWxscwogIC8vIGRlbGVnYXRlZS5tZXRob2ROYW1lLiBJZiB0aGVyZSBpcyBubyBzdWNoIG1ldGhvZCBvbgogIC8vIHRoZSBkZWxlZ2F0ZWUsIGJ1dCB0aGVyZSB3YXMgb25lIG9uIGRlbGVnYXRvciBiZWZvcmUKICAvLyBkZWxlZ2F0ZU1ldGhvZCB3YXMgY2FsbGVkLCB0aGVuIHRoZSBvcmlnaW5hbCB2ZXJzaW9uCiAgLy8gaXMgaW52b2tlZCBpbnN0ZWFkLgogIC8vIEZvciBleGFtcGxlOgogIC8vCiAgLy8gdmFyIGEgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2ExJyk7IH0KICAvLyAgIG1ldGhvZDI6IGZ1bmN0aW9uKCkgeyBjb25zb2xlLmxvZygnYTInKTsgfQogIC8vIH07CiAgLy8gdmFyIGIgPSB7CiAgLy8gICBtZXRob2QxOiBmdW5jdGlvbigpIHsgY29uc29sZS5sb2coJ2IxJyk7IH0KICAvLyB9OwogIC8vIGRlbGVnYXRlTWV0aG9kKGEsIGIsICJtZXRob2QxIik7CiAgLy8gZGVsZWdhdGVNZXRob2QoYSwgYiwgIm1ldGhvZDIiKTsKICAvLyBhLm1ldGhvZDEoKTsKICAvLyBhLm1ldGhvZDIoKTsKICAvLwogIC8vIFRoZSBvdXRwdXQgd291bGQgYmUgImIxIiwgImEyIi4KICBmdW5jdGlvbiBkZWxlZ2F0ZU1ldGhvZChkZWxlZ2F0b3IsIGRlbGVnYXRlZSwgbWV0aG9kTmFtZSkgewogICAgdmFyIGluaGVyaXRlZCA9IGRlbGVnYXRvclttZXRob2ROYW1lXTsKICAgIGRlbGVnYXRvclttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkgewogICAgICB2YXIgdGFyZ2V0ID0gZGVsZWdhdGVlOwogICAgICB2YXIgbWV0aG9kID0gZGVsZWdhdGVlW21ldGhvZE5hbWVdOwoKICAgICAgLy8gVGhlIG1ldGhvZCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBkZWxlZ2F0ZWUuIEluc3RlYWQsCiAgICAgIC8vIGNhbGwgdGhlIG1ldGhvZCBvbiB0aGUgZGVsZWdhdG9yLCBpZiBpdCBleGlzdHMuCiAgICAgIGlmICghbWV0aG9kKSB7CiAgICAgICAgdGFyZ2V0ID0gZGVsZWdhdG9yOwogICAgICAgIG1ldGhvZCA9IGluaGVyaXRlZDsKICAgICAgfQoKICAgICAgaWYgKG1ldGhvZCkgewogICAgICAgIHJldHVybiBtZXRob2QuYXBwbHkodGFyZ2V0LCBhcmd1bWVudHMpOwogICAgICB9CiAgICB9OwogIH0KCiAgLy8gSW1wbGVtZW50IGEgdmFndWUgZmFjc2ltaWxpZSBvZiBqUXVlcnkncyBkYXRhIG1ldGhvZAogIGZ1bmN0aW9uIGVsZW1lbnREYXRhKGVsLCBuYW1lLCB2YWx1ZSkgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMikgewogICAgICByZXR1cm4gZWxbImh0bWx3aWRnZXRfZGF0YV8iICsgbmFtZV07CiAgICB9IGVsc2UgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMykgewogICAgICBlbFsiaHRtbHdpZGdldF9kYXRhXyIgKyBuYW1lXSA9IHZhbHVlOwogICAgICByZXR1cm4gZWw7CiAgICB9IGVsc2UgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIldyb25nIG51bWJlciBvZiBhcmd1bWVudHMgZm9yIGVsZW1lbnREYXRhOiAiICsKICAgICAgICBhcmd1bWVudHMubGVuZ3RoKTsKICAgIH0KICB9CgogIC8vIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzQ0NjE3MC9lc2NhcGUtc3RyaW5nLWZvci11c2UtaW4tamF2YXNjcmlwdC1yZWdleAogIGZ1bmN0aW9uIGVzY2FwZVJlZ0V4cChzdHIpIHsKICAgIHJldHVybiBzdHIucmVwbGFjZSgvW1wtXFtcXVwvXHtcfVwoXClcKlwrXD9cLlxcXF5cJFx8XS9nLCAiXFwkJiIpOwogIH0KCiAgZnVuY3Rpb24gaGFzQ2xhc3MoZWwsIGNsYXNzTmFtZSkgewogICAgdmFyIHJlID0gbmV3IFJlZ0V4cCgiXFxiIiArIGVzY2FwZVJlZ0V4cChjbGFzc05hbWUpICsgIlxcYiIpOwogICAgcmV0dXJuIHJlLnRlc3QoZWwuY2xhc3NOYW1lKTsKICB9CgogIC8vIGVsZW1lbnRzIC0gYXJyYXkgKG9yIGFycmF5LWxpa2Ugb2JqZWN0KSBvZiBIVE1MIGVsZW1lbnRzCiAgLy8gY2xhc3NOYW1lIC0gY2xhc3MgbmFtZSB0byB0ZXN0IGZvcgogIC8vIGluY2x1ZGUgLSBpZiB0cnVlLCBvbmx5IHJldHVybiBlbGVtZW50cyB3aXRoIGdpdmVuIGNsYXNzTmFtZTsKICAvLyAgIGlmIGZhbHNlLCBvbmx5IHJldHVybiBlbGVtZW50cyAqd2l0aG91dCogZ2l2ZW4gY2xhc3NOYW1lCiAgZnVuY3Rpb24gZmlsdGVyQnlDbGFzcyhlbGVtZW50cywgY2xhc3NOYW1lLCBpbmNsdWRlKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtZW50cy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudHNbaV0sIGNsYXNzTmFtZSkgPT0gaW5jbHVkZSkKICAgICAgICByZXN1bHRzLnB1c2goZWxlbWVudHNbaV0pOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfQoKICBmdW5jdGlvbiBvbihvYmosIGV2ZW50TmFtZSwgZnVuYykgewogICAgaWYgKG9iai5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIG9iai5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgZnVuYywgZmFsc2UpOwogICAgfSBlbHNlIGlmIChvYmouYXR0YWNoRXZlbnQpIHsKICAgICAgb2JqLmF0dGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBvZmYob2JqLCBldmVudE5hbWUsIGZ1bmMpIHsKICAgIGlmIChvYmoucmVtb3ZlRXZlbnRMaXN0ZW5lcikKICAgICAgb2JqLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBmdW5jLCBmYWxzZSk7CiAgICBlbHNlIGlmIChvYmouZGV0YWNoRXZlbnQpIHsKICAgICAgb2JqLmRldGFjaEV2ZW50KGV2ZW50TmFtZSwgZnVuYyk7CiAgICB9CiAgfQoKICAvLyBUcmFuc2xhdGUgYXJyYXkgb2YgdmFsdWVzIHRvIHRvcC9yaWdodC9ib3R0b20vbGVmdCwgYXMgdXN1YWwgd2l0aAogIC8vIHRoZSAicGFkZGluZyIgQ1NTIHByb3BlcnR5CiAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL3BhZGRpbmcKICBmdW5jdGlvbiB1bnBhY2tQYWRkaW5nKHZhbHVlKSB7CiAgICBpZiAodHlwZW9mKHZhbHVlKSA9PT0gIm51bWJlciIpCiAgICAgIHZhbHVlID0gW3ZhbHVlXTsKICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDEpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMF0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzBdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDIpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMF0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDMpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzFdfTsKICAgIH0KICAgIGlmICh2YWx1ZS5sZW5ndGggPT09IDQpIHsKICAgICAgcmV0dXJuIHt0b3A6IHZhbHVlWzBdLCByaWdodDogdmFsdWVbMV0sIGJvdHRvbTogdmFsdWVbMl0sIGxlZnQ6IHZhbHVlWzNdfTsKICAgIH0KICB9CgogIC8vIENvbnZlcnQgYW4gdW5wYWNrZWQgcGFkZGluZyBvYmplY3QgdG8gYSBDU1MgdmFsdWUKICBmdW5jdGlvbiBwYWRkaW5nVG9Dc3MocGFkZGluZ09iaikgewogICAgcmV0dXJuIHBhZGRpbmdPYmoudG9wICsgInB4ICIgKyBwYWRkaW5nT2JqLnJpZ2h0ICsgInB4ICIgKyBwYWRkaW5nT2JqLmJvdHRvbSArICJweCAiICsgcGFkZGluZ09iai5sZWZ0ICsgInB4IjsKICB9CgogIC8vIE1ha2VzIGEgbnVtYmVyIHN1aXRhYmxlIGZvciBDU1MKICBmdW5jdGlvbiBweCh4KSB7CiAgICBpZiAodHlwZW9mKHgpID09PSAibnVtYmVyIikKICAgICAgcmV0dXJuIHggKyAicHgiOwogICAgZWxzZQogICAgICByZXR1cm4geDsKICB9CgogIC8vIFJldHJpZXZlcyBydW50aW1lIHdpZGdldCBzaXppbmcgaW5mb3JtYXRpb24gZm9yIGFuIGVsZW1lbnQuCiAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyBlaXRoZXIgbnVsbCwgb3IgYW4gb2JqZWN0IHdpdGggZmlsbCwgcGFkZGluZywKICAvLyBkZWZhdWx0V2lkdGgsIGRlZmF1bHRIZWlnaHQgZmllbGRzLgogIGZ1bmN0aW9uIHNpemluZ1BvbGljeShlbCkgewogICAgdmFyIHNpemluZ0VsID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigic2NyaXB0W2RhdGEtZm9yPSciICsgZWwuaWQgKyAiJ11bdHlwZT0nYXBwbGljYXRpb24vaHRtbHdpZGdldC1zaXppbmcnXSIpOwogICAgaWYgKCFzaXppbmdFbCkKICAgICAgcmV0dXJuIG51bGw7CiAgICB2YXIgc3AgPSBKU09OLnBhcnNlKHNpemluZ0VsLnRleHRDb250ZW50IHx8IHNpemluZ0VsLnRleHQgfHwgInt9Iik7CiAgICBpZiAodmlld2VyTW9kZSkgewogICAgICByZXR1cm4gc3Audmlld2VyOwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuIHNwLmJyb3dzZXI7CiAgICB9CiAgfQoKICAvLyBAcGFyYW0gdGFza3MgQXJyYXkgb2Ygc3RyaW5ncyAob3IgZmFsc3kgdmFsdWUsIGluIHdoaWNoIGNhc2Ugbm8tb3ApLgogIC8vICAgRWFjaCBlbGVtZW50IG11c3QgYmUgYSB2YWxpZCBKYXZhU2NyaXB0IGV4cHJlc3Npb24gdGhhdCB5aWVsZHMgYQogIC8vICAgZnVuY3Rpb24uIE9yLCBjYW4gYmUgYW4gYXJyYXkgb2Ygb2JqZWN0cyB3aXRoICJjb2RlIiBhbmQgImRhdGEiCiAgLy8gICBwcm9wZXJ0aWVzOyBpbiB0aGlzIGNhc2UsIHRoZSAiY29kZSIgcHJvcGVydHkgc2hvdWxkIGJlIGEgc3RyaW5nCiAgLy8gICBvZiBKUyB0aGF0J3MgYW4gZXhwciB0aGF0IHlpZWxkcyBhIGZ1bmN0aW9uLCBhbmQgImRhdGEiIHNob3VsZCBiZQogIC8vICAgYW4gb2JqZWN0IHRoYXQgd2lsbCBiZSBhZGRlZCBhcyBhbiBhZGRpdGlvbmFsIGFyZ3VtZW50IHdoZW4gdGhhdAogIC8vICAgZnVuY3Rpb24gaXMgY2FsbGVkLgogIC8vIEBwYXJhbSB0YXJnZXQgVGhlIG9iamVjdCB0aGF0IHdpbGwgYmUgInRoaXMiIGZvciBlYWNoIGZ1bmN0aW9uCiAgLy8gICBleGVjdXRpb24uCiAgLy8gQHBhcmFtIGFyZ3MgQXJyYXkgb2YgYXJndW1lbnRzIHRvIGJlIHBhc3NlZCB0byB0aGUgZnVuY3Rpb25zLiAoVGhlCiAgLy8gICBzYW1lIGFyZ3VtZW50cyB3aWxsIGJlIHBhc3NlZCB0byBhbGwgZnVuY3Rpb25zLikKICBmdW5jdGlvbiBldmFsQW5kUnVuKHRhc2tzLCB0YXJnZXQsIGFyZ3MpIHsKICAgIGlmICh0YXNrcykgewogICAgICBmb3JFYWNoKHRhc2tzLCBmdW5jdGlvbih0YXNrKSB7CiAgICAgICAgdmFyIHRoZXNlQXJncyA9IGFyZ3M7CiAgICAgICAgaWYgKHR5cGVvZih0YXNrKSA9PT0gIm9iamVjdCIpIHsKICAgICAgICAgIHRoZXNlQXJncyA9IHRoZXNlQXJncy5jb25jYXQoW3Rhc2suZGF0YV0pOwogICAgICAgICAgdGFzayA9IHRhc2suY29kZTsKICAgICAgICB9CiAgICAgICAgdmFyIHRhc2tGdW5jID0gdHJ5RXZhbCh0YXNrKTsKICAgICAgICBpZiAodHlwZW9mKHRhc2tGdW5jKSAhPT0gImZ1bmN0aW9uIikgewogICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJUYXNrIG11c3QgYmUgYSBmdW5jdGlvbiEgU291cmNlOlxuIiArIHRhc2spOwogICAgICAgIH0KICAgICAgICB0YXNrRnVuYy5hcHBseSh0YXJnZXQsIHRoZXNlQXJncyk7CiAgICAgIH0pOwogICAgfQogIH0KCiAgLy8gQXR0ZW1wdCBldmFsKCkgYm90aCB3aXRoIGFuZCB3aXRob3V0IGVuY2xvc2luZyBpbiBwYXJlbnRoZXNlcy4KICAvLyBOb3RlIHRoYXQgZW5jbG9zaW5nIGNvZXJjZXMgYSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBpbnRvCiAgLy8gYW4gZXhwcmVzc2lvbiB0aGF0IGV2YWwoKSBjYW4gcGFyc2UKICAvLyAob3RoZXJ3aXNlLCBhIFN5bnRheEVycm9yIGlzIHRocm93bikKICBmdW5jdGlvbiB0cnlFdmFsKGNvZGUpIHsKICAgIHZhciByZXN1bHQgPSBudWxsOwogICAgdHJ5IHsKICAgICAgcmVzdWx0ID0gZXZhbCgiKCIgKyBjb2RlICsgIikiKTsKICAgIH0gY2F0Y2goZXJyb3IpIHsKICAgICAgaWYgKCFlcnJvciBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7CiAgICAgICAgdGhyb3cgZXJyb3I7CiAgICAgIH0KICAgICAgdHJ5IHsKICAgICAgICByZXN1bHQgPSBldmFsKGNvZGUpOwogICAgICB9IGNhdGNoKGUpIHsKICAgICAgICBpZiAoZSBpbnN0YW5jZW9mIFN5bnRheEVycm9yKSB7CiAgICAgICAgICB0aHJvdyBlcnJvcjsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgdGhyb3cgZTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJldHVybiByZXN1bHQ7CiAgfQoKICBmdW5jdGlvbiBpbml0U2l6aW5nKGVsKSB7CiAgICB2YXIgc2l6aW5nID0gc2l6aW5nUG9saWN5KGVsKTsKICAgIGlmICghc2l6aW5nKQogICAgICByZXR1cm47CgogICAgdmFyIGNlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJodG1sd2lkZ2V0X2NvbnRhaW5lciIpOwogICAgaWYgKCFjZWwpCiAgICAgIHJldHVybjsKCiAgICBpZiAodHlwZW9mKHNpemluZy5wYWRkaW5nKSAhPT0gInVuZGVmaW5lZCIpIHsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5tYXJnaW4gPSAiMCI7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUucGFkZGluZyA9IHBhZGRpbmdUb0Nzcyh1bnBhY2tQYWRkaW5nKHNpemluZy5wYWRkaW5nKSk7CiAgICB9CgogICAgaWYgKHNpemluZy5maWxsKSB7CiAgICAgIGRvY3VtZW50LmJvZHkuc3R5bGUub3ZlcmZsb3cgPSAiaGlkZGVuIjsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLmhlaWdodCA9ICIxMDAlIjsKICAgICAgaWYgKGNlbCkgewogICAgICAgIGNlbC5zdHlsZS5wb3NpdGlvbiA9ICJhYnNvbHV0ZSI7CiAgICAgICAgdmFyIHBhZCA9IHVucGFja1BhZGRpbmcoc2l6aW5nLnBhZGRpbmcpOwogICAgICAgIGNlbC5zdHlsZS50b3AgPSBwYWQudG9wICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUucmlnaHQgPSBwYWQucmlnaHQgKyAicHgiOwogICAgICAgIGNlbC5zdHlsZS5ib3R0b20gPSBwYWQuYm90dG9tICsgInB4IjsKICAgICAgICBjZWwuc3R5bGUubGVmdCA9IHBhZC5sZWZ0ICsgInB4IjsKICAgICAgICBlbC5zdHlsZS53aWR0aCA9ICIxMDAlIjsKICAgICAgICBlbC5zdHlsZS5oZWlnaHQgPSAiMTAwJSI7CiAgICAgIH0KCiAgICAgIHJldHVybiB7CiAgICAgICAgZ2V0V2lkdGg6IGZ1bmN0aW9uKCkgeyByZXR1cm4gY2VsLm9mZnNldFdpZHRoOyB9LAogICAgICAgIGdldEhlaWdodDogZnVuY3Rpb24oKSB7IHJldHVybiBjZWwub2Zmc2V0SGVpZ2h0OyB9CiAgICAgIH07CgogICAgfSBlbHNlIHsKICAgICAgZWwuc3R5bGUud2lkdGggPSBweChzaXppbmcud2lkdGgpOwogICAgICBlbC5zdHlsZS5oZWlnaHQgPSBweChzaXppbmcuaGVpZ2h0KTsKCiAgICAgIHJldHVybiB7CiAgICAgICAgZ2V0V2lkdGg6IGZ1bmN0aW9uKCkgeyByZXR1cm4gZWwub2Zmc2V0V2lkdGg7IH0sCiAgICAgICAgZ2V0SGVpZ2h0OiBmdW5jdGlvbigpIHsgcmV0dXJuIGVsLm9mZnNldEhlaWdodDsgfQogICAgICB9OwogICAgfQogIH0KCiAgLy8gRGVmYXVsdCBpbXBsZW1lbnRhdGlvbnMgZm9yIG1ldGhvZHMKICB2YXIgZGVmYXVsdHMgPSB7CiAgICBmaW5kOiBmdW5jdGlvbihzY29wZSkgewogICAgICByZXR1cm4gcXVlcnlTZWxlY3RvckFsbChzY29wZSwgIi4iICsgdGhpcy5uYW1lKTsKICAgIH0sCiAgICByZW5kZXJFcnJvcjogZnVuY3Rpb24oZWwsIGVycikgewogICAgICB2YXIgJGVsID0gJChlbCk7CgogICAgICB0aGlzLmNsZWFyRXJyb3IoZWwpOwoKICAgICAgLy8gQWRkIGFsbCB0aGVzZSBlcnJvciBjbGFzc2VzLCBhcyBTaGlueSBkb2VzCiAgICAgIHZhciBlcnJDbGFzcyA9ICJzaGlueS1vdXRwdXQtZXJyb3IiOwogICAgICBpZiAoZXJyLnR5cGUgIT09IG51bGwpIHsKICAgICAgICAvLyB1c2UgdGhlIGNsYXNzZXMgb2YgdGhlIGVycm9yIGNvbmRpdGlvbiBhcyBDU1MgY2xhc3MgbmFtZXMKICAgICAgICBlcnJDbGFzcyA9IGVyckNsYXNzICsgIiAiICsgJC5tYXAoYXNBcnJheShlcnIudHlwZSksIGZ1bmN0aW9uKHR5cGUpIHsKICAgICAgICAgIHJldHVybiBlcnJDbGFzcyArICItIiArIHR5cGU7CiAgICAgICAgfSkuam9pbigiICIpOwogICAgICB9CiAgICAgIGVyckNsYXNzID0gZXJyQ2xhc3MgKyAiIGh0bWx3aWRnZXRzLWVycm9yIjsKCiAgICAgIC8vIElzIGVsIGlubGluZSBvciBibG9jaz8gSWYgaW5saW5lIG9yIGlubGluZS1ibG9jaywganVzdCBkaXNwbGF5Om5vbmUgaXQKICAgICAgLy8gYW5kIGFkZCBhbiBpbmxpbmUgZXJyb3IuCiAgICAgIHZhciBkaXNwbGF5ID0gJGVsLmNzcygiZGlzcGxheSIpOwogICAgICAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiLCBkaXNwbGF5KTsKCiAgICAgIGlmIChkaXNwbGF5ID09PSAiaW5saW5lIiB8fCBkaXNwbGF5ID09PSAiaW5saW5lLWJsb2NrIikgewogICAgICAgICRlbC5oaWRlKCk7CiAgICAgICAgaWYgKGVyci5tZXNzYWdlICE9PSAiIikgewogICAgICAgICAgdmFyIGVycm9yU3BhbiA9ICQoIjxzcGFuPiIpLmFkZENsYXNzKGVyckNsYXNzKTsKICAgICAgICAgIGVycm9yU3Bhbi50ZXh0KGVyci5tZXNzYWdlKTsKICAgICAgICAgICRlbC5hZnRlcihlcnJvclNwYW4pOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChkaXNwbGF5ID09PSAiYmxvY2siKSB7CiAgICAgICAgLy8gSWYgYmxvY2ssIGFkZCBhbiBlcnJvciBqdXN0IGFmdGVyIHRoZSBlbCwgc2V0IHZpc2liaWxpdHk6bm9uZSBvbiB0aGUKICAgICAgICAvLyBlbCwgYW5kIHBvc2l0aW9uIHRoZSBlcnJvciB0byBiZSBvbiB0b3Agb2YgdGhlIGVsLgogICAgICAgIC8vIE1hcmsgaXQgd2l0aCBhIHVuaXF1ZSBJRCBhbmQgQ1NTIGNsYXNzIHNvIHdlIGNhbiByZW1vdmUgaXQgbGF0ZXIuCiAgICAgICAgJGVsLmNzcygidmlzaWJpbGl0eSIsICJoaWRkZW4iKTsKICAgICAgICBpZiAoZXJyLm1lc3NhZ2UgIT09ICIiKSB7CiAgICAgICAgICB2YXIgZXJyb3JEaXYgPSAkKCI8ZGl2PiIpLmFkZENsYXNzKGVyckNsYXNzKS5jc3MoInBvc2l0aW9uIiwgImFic29sdXRlIikKICAgICAgICAgICAgLmNzcygidG9wIiwgZWwub2Zmc2V0VG9wKQogICAgICAgICAgICAuY3NzKCJsZWZ0IiwgZWwub2Zmc2V0TGVmdCkKICAgICAgICAgICAgLy8gc2V0dGluZyB3aWR0aCBjYW4gcHVzaCBvdXQgdGhlIHBhZ2Ugc2l6ZSwgZm9yY2luZyBvdGhlcndpc2UKICAgICAgICAgICAgLy8gdW5uZWNlc3Nhcnkgc2Nyb2xsYmFycyB0byBhcHBlYXIgYW5kIG1ha2luZyBpdCBpbXBvc3NpYmxlIGZvcgogICAgICAgICAgICAvLyB0aGUgZWxlbWVudCB0byBzaHJpbms7IHNvIHVzZSBtYXgtd2lkdGggaW5zdGVhZAogICAgICAgICAgICAuY3NzKCJtYXhXaWR0aCIsIGVsLm9mZnNldFdpZHRoKQogICAgICAgICAgICAuY3NzKCJoZWlnaHQiLCBlbC5vZmZzZXRIZWlnaHQpOwogICAgICAgICAgZXJyb3JEaXYudGV4dChlcnIubWVzc2FnZSk7CiAgICAgICAgICAkZWwuYWZ0ZXIoZXJyb3JEaXYpOwoKICAgICAgICAgIC8vIFJlYWxseSBkdW1iIHdheSB0byBrZWVwIHRoZSBzaXplL3Bvc2l0aW9uIG9mIHRoZSBlcnJvciBpbiBzeW5jIHdpdGgKICAgICAgICAgIC8vIHRoZSBwYXJlbnQgZWxlbWVudCBhcyB0aGUgd2luZG93IGlzIHJlc2l6ZWQgb3Igd2hhdGV2ZXIuCiAgICAgICAgICB2YXIgaW50SWQgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKICAgICAgICAgICAgaWYgKCFlcnJvckRpdlswXS5wYXJlbnRFbGVtZW50KSB7CiAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChpbnRJZCk7CiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVycm9yRGl2CiAgICAgICAgICAgICAgLmNzcygidG9wIiwgZWwub2Zmc2V0VG9wKQogICAgICAgICAgICAgIC5jc3MoImxlZnQiLCBlbC5vZmZzZXRMZWZ0KQogICAgICAgICAgICAgIC5jc3MoIm1heFdpZHRoIiwgZWwub2Zmc2V0V2lkdGgpCiAgICAgICAgICAgICAgLmNzcygiaGVpZ2h0IiwgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgIH0sIDUwMCk7CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgY2xlYXJFcnJvcjogZnVuY3Rpb24oZWwpIHsKICAgICAgdmFyICRlbCA9ICQoZWwpOwogICAgICB2YXIgZGlzcGxheSA9ICRlbC5kYXRhKCJyZXN0b3JlLWRpc3BsYXktbW9kZSIpOwogICAgICAkZWwuZGF0YSgicmVzdG9yZS1kaXNwbGF5LW1vZGUiLCBudWxsKTsKCiAgICAgIGlmIChkaXNwbGF5ID09PSAiaW5saW5lIiB8fCBkaXNwbGF5ID09PSAiaW5saW5lLWJsb2NrIikgewogICAgICAgIGlmIChkaXNwbGF5KQogICAgICAgICAgJGVsLmNzcygiZGlzcGxheSIsIGRpc3BsYXkpOwogICAgICAgICQoZWwubmV4dFNpYmxpbmcpLmZpbHRlcigiLmh0bWx3aWRnZXRzLWVycm9yIikucmVtb3ZlKCk7CiAgICAgIH0gZWxzZSBpZiAoZGlzcGxheSA9PT0gImJsb2NrIil7CiAgICAgICAgJGVsLmNzcygidmlzaWJpbGl0eSIsICJpbmhlcml0Iik7CiAgICAgICAgJChlbC5uZXh0U2libGluZykuZmlsdGVyKCIuaHRtbHdpZGdldHMtZXJyb3IiKS5yZW1vdmUoKTsKICAgICAgfQogICAgfSwKICAgIHNpemluZzoge30KICB9OwoKICAvLyBDYWxsZWQgYnkgd2lkZ2V0IGJpbmRpbmdzIHRvIHJlZ2lzdGVyIGEgbmV3IHR5cGUgb2Ygd2lkZ2V0LiBUaGUgZGVmaW5pdGlvbgogIC8vIG9iamVjdCBjYW4gY29udGFpbiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6CiAgLy8gLSBuYW1lIChyZXF1aXJlZCkgLSBBIHN0cmluZyBpbmRpY2F0aW5nIHRoZSBiaW5kaW5nIG5hbWUsIHdoaWNoIHdpbGwgYmUKICAvLyAgIHVzZWQgYnkgZGVmYXVsdCBhcyB0aGUgQ1NTIGNsYXNzbmFtZSB0byBsb29rIGZvci4KICAvLyAtIGluaXRpYWxpemUgKG9wdGlvbmFsKSAtIEEgZnVuY3Rpb24oZWwpIHRoYXQgd2lsbCBiZSBjYWxsZWQgb25jZSBwZXIKICAvLyAgIHdpZGdldCBlbGVtZW50OyBpZiBhIHZhbHVlIGlzIHJldHVybmVkLCBpdCB3aWxsIGJlIHBhc3NlZCBhcyB0aGUgdGhpcmQKICAvLyAgIHZhbHVlIHRvIHJlbmRlclZhbHVlLgogIC8vIC0gcmVuZGVyVmFsdWUgKHJlcXVpcmVkKSAtIEEgZnVuY3Rpb24oZWwsIGRhdGEsIGluaXRWYWx1ZSkgdGhhdCB3aWxsIGJlCiAgLy8gICBjYWxsZWQgd2l0aCBkYXRhLiBTdGF0aWMgY29udGV4dHMgd2lsbCBjYXVzZSB0aGlzIHRvIGJlIGNhbGxlZCBvbmNlIHBlcgogIC8vICAgZWxlbWVudDsgU2hpbnkgYXBwcyB3aWxsIGNhdXNlIHRoaXMgdG8gYmUgY2FsbGVkIG11bHRpcGxlIHRpbWVzIHBlcgogIC8vICAgZWxlbWVudCwgYXMgdGhlIGRhdGEgY2hhbmdlcy4KICB3aW5kb3cuSFRNTFdpZGdldHMud2lkZ2V0ID0gZnVuY3Rpb24oZGVmaW5pdGlvbikgewogICAgaWYgKCFkZWZpbml0aW9uLm5hbWUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgbmFtZSIpOwogICAgfQogICAgaWYgKCFkZWZpbml0aW9uLnR5cGUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgdHlwZSIpOwogICAgfQogICAgLy8gQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCBvdXRwdXQgd2lkZ2V0cwogICAgaWYgKGRlZmluaXRpb24udHlwZSAhPT0gIm91dHB1dCIpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbnJlY29nbml6ZWQgd2lkZ2V0IHR5cGUgJyIgKyBkZWZpbml0aW9uLnR5cGUgKyAiJyIpOwogICAgfQogICAgLy8gVE9ETzogVmVyaWZ5IHRoYXQgLm5hbWUgaXMgYSB2YWxpZCBDU1MgY2xhc3NuYW1lCgogICAgLy8gU3VwcG9ydCBuZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbnMuIE9sZC1zdHlsZSBjbGFzcy1ib3VuZAogICAgLy8gZGVmaW5pdGlvbnMgaGF2ZSBvbmUgd2lkZ2V0ICJvYmplY3QiIHBlciB3aWRnZXQgcGVyIHR5cGUvY2xhc3Mgb2YKICAgIC8vIHdpZGdldDsgdGhlIHJlbmRlclZhbHVlIGFuZCByZXNpemUgbWV0aG9kcyBvbiBzdWNoIHdpZGdldCBvYmplY3RzCiAgICAvLyB0YWtlIGVsIGFuZCBpbnN0YW5jZSBhcmd1bWVudHMsIGJlY2F1c2UgdGhlIHdpZGdldCBvYmplY3QgY2FuJ3QKICAgIC8vIHN0b3JlIHRoZW0uIE5ldy1zdHlsZSBpbnN0YW5jZS1ib3VuZCBkZWZpbml0aW9ucyBoYXZlIG9uZSB3aWRnZXQKICAgIC8vIG9iamVjdCBwZXIgd2lkZ2V0IGluc3RhbmNlOyB0aGUgZGVmaW5pdGlvbiB0aGF0J3MgcGFzc2VkIGluIGRvZXNuJ3QKICAgIC8vIHByb3ZpZGUgcmVuZGVyVmFsdWUgb3IgcmVzaXplIG1ldGhvZHMgYXQgYWxsLCBqdXN0IHRoZSBzaW5nbGUgbWV0aG9kCiAgICAvLyAgIGZhY3RvcnkoZWwsIHdpZHRoLCBoZWlnaHQpCiAgICAvLyB3aGljaCByZXR1cm5zIGFuIG9iamVjdCB0aGF0IGhhcyByZW5kZXJWYWx1ZSh4KSBhbmQgcmVzaXplKHcsIGgpLgogICAgLy8gVGhpcyBlbmFibGVzIGEgZmFyIG1vcmUgbmF0dXJhbCBwcm9ncmFtbWluZyBzdHlsZSBmb3IgdGhlIHdpZGdldAogICAgLy8gYXV0aG9yLCB3aG8gY2FuIHN0b3JlIHBlci1pbnN0YW5jZSBzdGF0ZSB1c2luZyBlaXRoZXIgT08tc3R5bGUKICAgIC8vIGluc3RhbmNlIGZpZWxkcyBvciBmdW5jdGlvbmFsLXN0eWxlIGNsb3N1cmUgdmFyaWFibGVzIChJIGd1ZXNzIHRoaXMKICAgIC8vIGlzIGluIGNvbnRyYXN0IHRvIHdoYXQgY2FuIG9ubHkgYmUgY2FsbGVkIEMtc3R5bGUgcHNldWRvLU9PIHdoaWNoIGlzCiAgICAvLyB3aGF0IHdlIHJlcXVpcmVkIGJlZm9yZSkuCiAgICBpZiAoZGVmaW5pdGlvbi5mYWN0b3J5KSB7CiAgICAgIGRlZmluaXRpb24gPSBjcmVhdGVMZWdhY3lEZWZpbml0aW9uQWRhcHRlcihkZWZpbml0aW9uKTsKICAgIH0KCiAgICBpZiAoIWRlZmluaXRpb24ucmVuZGVyVmFsdWUpIHsKICAgICAgdGhyb3cgbmV3IEVycm9yKCJXaWRnZXQgbXVzdCBoYXZlIGEgcmVuZGVyVmFsdWUgZnVuY3Rpb24iKTsKICAgIH0KCiAgICAvLyBGb3Igc3RhdGljIHJlbmRlcmluZyAobm9uLVNoaW55KSwgdXNlIGEgc2ltcGxlIHdpZGdldCByZWdpc3RyYXRpb24KICAgIC8vIHNjaGVtZS4gV2UgYWxzbyB1c2UgdGhpcyBzY2hlbWUgZm9yIFNoaW55IGFwcHMvZG9jdW1lbnRzIHRoYXQgYWxzbwogICAgLy8gY29udGFpbiBzdGF0aWMgd2lkZ2V0cy4KICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzID0gd2luZG93LkhUTUxXaWRnZXRzLndpZGdldHMgfHwgW107CiAgICAvLyBNZXJnZSBkZWZhdWx0cyBpbnRvIHRoZSBkZWZpbml0aW9uOyBkb24ndCBtdXRhdGUgdGhlIG9yaWdpbmFsIGRlZmluaXRpb24uCiAgICB2YXIgc3RhdGljQmluZGluZyA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIGRlZmluaXRpb24pOwogICAgb3ZlcnJpZGVNZXRob2Qoc3RhdGljQmluZGluZywgImZpbmQiLCBmdW5jdGlvbihzdXBlcmZ1bmMpIHsKICAgICAgcmV0dXJuIGZ1bmN0aW9uKHNjb3BlKSB7CiAgICAgICAgdmFyIHJlc3VsdHMgPSBzdXBlcmZ1bmMoc2NvcGUpOwogICAgICAgIC8vIEZpbHRlciBvdXQgU2hpbnkgb3V0cHV0cywgd2Ugb25seSB3YW50IHRoZSBzdGF0aWMga2luZAogICAgICAgIHJldHVybiBmaWx0ZXJCeUNsYXNzKHJlc3VsdHMsICJodG1sLXdpZGdldC1vdXRwdXQiLCBmYWxzZSk7CiAgICAgIH07CiAgICB9KTsKICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy53aWRnZXRzLnB1c2goc3RhdGljQmluZGluZyk7CgogICAgaWYgKHNoaW55TW9kZSkgewogICAgICAvLyBTaGlueSBpcyBydW5uaW5nLiBSZWdpc3RlciB0aGUgZGVmaW5pdGlvbiB3aXRoIGFuIG91dHB1dCBiaW5kaW5nLgogICAgICAvLyBUaGUgZGVmaW5pdGlvbiBpdHNlbGYgd2lsbCBub3QgYmUgdGhlIG91dHB1dCBiaW5kaW5nLCBpbnN0ZWFkCiAgICAgIC8vIHdlIHdpbGwgbWFrZSBhbiBvdXRwdXQgYmluZGluZyBvYmplY3QgdGhhdCBkZWxlZ2F0ZXMgdG8gdGhlCiAgICAgIC8vIGRlZmluaXRpb24uIFRoaXMgaXMgYmVjYXVzZSB3ZSBmb29saXNobHkgdXNlZCB0aGUgc2FtZSBtZXRob2QKICAgICAgLy8gbmFtZSAocmVuZGVyVmFsdWUpIGZvciBodG1sd2lkZ2V0cyBkZWZpbml0aW9uIGFuZCBTaGlueSBiaW5kaW5ncwogICAgICAvLyBidXQgdGhleSBhY3R1YWxseSBoYXZlIHF1aXRlIGRpZmZlcmVudCBzZW1hbnRpY3MgKHRoZSBTaGlueQogICAgICAvLyBiaW5kaW5ncyByZWNlaXZlIGRhdGEgdGhhdCBpbmNsdWRlcyBsb3RzIG9mIG1ldGFkYXRhIHRoYXQgaXQKICAgICAgLy8gc3RyaXBzIG9mZiBiZWZvcmUgY2FsbGluZyBodG1sd2lkZ2V0cyByZW5kZXJWYWx1ZSkuIFdlIGNhbid0CiAgICAgIC8vIGp1c3QgaWdub3JlIHRoZSBkaWZmZXJlbmNlIGJlY2F1c2UgaW4gc29tZSB3aWRnZXRzIGl0J3MgaGVscGZ1bAogICAgICAvLyB0byBjYWxsIHRoaXMucmVuZGVyVmFsdWUoKSBmcm9tIGluc2lkZSBvZiByZXNpemUoKSwgYW5kIGlmCiAgICAgIC8vIHdlJ3JlIG5vdCBkZWxlZ2F0aW5nLCB0aGVuIHRoYXQgY2FsbCB3aWxsIGdvIHRvIHRoZSBTaGlueQogICAgICAvLyB2ZXJzaW9uIGluc3RlYWQgb2YgdGhlIGh0bWx3aWRnZXRzIHZlcnNpb24uCgogICAgICAvLyBNZXJnZSBkZWZhdWx0cyB3aXRoIGRlZmluaXRpb24sIHdpdGhvdXQgbXV0YXRpbmcgZWl0aGVyLgogICAgICB2YXIgYmluZGluZ0RlZiA9IGV4dGVuZCh7fSwgZGVmYXVsdHMsIGRlZmluaXRpb24pOwoKICAgICAgLy8gVGhpcyBvYmplY3Qgd2lsbCBiZSBvdXIgYWN0dWFsIFNoaW55IGJpbmRpbmcuCiAgICAgIHZhciBzaGlueUJpbmRpbmcgPSBuZXcgU2hpbnkuT3V0cHV0QmluZGluZygpOwoKICAgICAgLy8gV2l0aCBhIGZldyBleGNlcHRpb25zLCB3ZSdsbCB3YW50IHRvIHNpbXBseSB1c2UgdGhlIGJpbmRpbmdEZWYncwogICAgICAvLyB2ZXJzaW9uIG9mIG1ldGhvZHMgaWYgdGhleSBhcmUgYXZhaWxhYmxlLCBvdGhlcndpc2UgZmFsbCBiYWNrIHRvCiAgICAgIC8vIFNoaW55J3MgZGVmYXVsdHMuIE5PVEU6IElmIFNoaW55J3Mgb3V0cHV0IGJpbmRpbmdzIGdhaW4gYWRkaXRpb25hbAogICAgICAvLyBtZXRob2RzIGluIHRoZSBmdXR1cmUsIGFuZCB3ZSB3YW50IHRoZW0gdG8gYmUgb3ZlcnJpZGVhYmxlIGJ5CiAgICAgIC8vIEhUTUxXaWRnZXQgYmluZGluZyBkZWZpbml0aW9ucywgdGhlbiB3ZSdsbCBuZWVkIHRvIGFkZCB0aGVtIHRvIHRoaXMKICAgICAgLy8gbGlzdC4KICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAiZ2V0SWQiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAib25WYWx1ZUNoYW5nZSIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJvblZhbHVlRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAicmVuZGVyRXJyb3IiKTsKICAgICAgZGVsZWdhdGVNZXRob2Qoc2hpbnlCaW5kaW5nLCBiaW5kaW5nRGVmLCAiY2xlYXJFcnJvciIpOwogICAgICBkZWxlZ2F0ZU1ldGhvZChzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYsICJzaG93UHJvZ3Jlc3MiKTsKCiAgICAgIC8vIFRoZSBmaW5kLCByZW5kZXJWYWx1ZSwgYW5kIHJlc2l6ZSBhcmUgaGFuZGxlZCBkaWZmZXJlbnRseSwgYmVjYXVzZSB3ZQogICAgICAvLyB3YW50IHRvIGFjdHVhbGx5IGRlY29yYXRlIHRoZSBiZWhhdmlvciBvZiB0aGUgYmluZGluZ0RlZiBtZXRob2RzLgoKICAgICAgc2hpbnlCaW5kaW5nLmZpbmQgPSBmdW5jdGlvbihzY29wZSkgewogICAgICAgIHZhciByZXN1bHRzID0gYmluZGluZ0RlZi5maW5kKHNjb3BlKTsKCiAgICAgICAgLy8gT25seSByZXR1cm4gZWxlbWVudHMgdGhhdCBhcmUgU2hpbnkgb3V0cHV0cywgbm90IHN0YXRpYyBvbmVzCiAgICAgICAgdmFyIGR5bmFtaWNSZXN1bHRzID0gcmVzdWx0cy5maWx0ZXIoIi5odG1sLXdpZGdldC1vdXRwdXQiKTsKCiAgICAgICAgLy8gSXQncyBwb3NzaWJsZSB0aGF0IHdoYXRldmVyIGNhdXNlZCBTaGlueSB0byB0aGluayB0aGVyZSBtaWdodCBiZQogICAgICAgIC8vIG5ldyBkeW5hbWljIG91dHB1dHMsIGFsc28gY2F1c2VkIHRoZXJlIHRvIGJlIG5ldyBzdGF0aWMgb3V0cHV0cy4KICAgICAgICAvLyBTaW5jZSB0aGVyZSBtaWdodCBiZSBsb3RzIG9mIGRpZmZlcmVudCBodG1sd2lkZ2V0cyBiaW5kaW5ncywgd2UKICAgICAgICAvLyBzY2hlZHVsZSBleGVjdXRpb24gZm9yIGxhdGVyLS1ubyBuZWVkIHRvIHN0YXRpY1JlbmRlciBtdWx0aXBsZQogICAgICAgIC8vIHRpbWVzLgogICAgICAgIGlmIChyZXN1bHRzLmxlbmd0aCAhPT0gZHluYW1pY1Jlc3VsdHMubGVuZ3RoKQogICAgICAgICAgc2NoZWR1bGVTdGF0aWNSZW5kZXIoKTsKCiAgICAgICAgcmV0dXJuIGR5bmFtaWNSZXN1bHRzOwogICAgICB9OwoKICAgICAgLy8gV3JhcCByZW5kZXJWYWx1ZSB0byBoYW5kbGUgaW5pdGlhbGl6YXRpb24sIHdoaWNoIHVuZm9ydHVuYXRlbHkgaXNuJ3QKICAgICAgLy8gc3VwcG9ydGVkIG5hdGl2ZWx5IGJ5IFNoaW55IGF0IHRoZSB0aW1lIG9mIHRoaXMgd3JpdGluZy4KCiAgICAgIHNoaW55QmluZGluZy5yZW5kZXJWYWx1ZSA9IGZ1bmN0aW9uKGVsLCBkYXRhKSB7CiAgICAgICAgU2hpbnkucmVuZGVyRGVwZW5kZW5jaWVzKGRhdGEuZGVwcyk7CiAgICAgICAgLy8gUmVzb2x2ZSBzdHJpbmdzIG1hcmtlZCBhcyBqYXZhc2NyaXB0IGxpdGVyYWxzIHRvIG9iamVjdHMKICAgICAgICBpZiAoIShkYXRhLmV2YWxzIGluc3RhbmNlb2YgQXJyYXkpKSBkYXRhLmV2YWxzID0gW2RhdGEuZXZhbHNdOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBkYXRhLmV2YWxzICYmIGkgPCBkYXRhLmV2YWxzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuZXZhbHVhdGVTdHJpbmdNZW1iZXIoZGF0YS54LCBkYXRhLmV2YWxzW2ldKTsKICAgICAgICB9CiAgICAgICAgaWYgKCFiaW5kaW5nRGVmLnJlbmRlck9uTnVsbFZhbHVlKSB7CiAgICAgICAgICBpZiAoZGF0YS54ID09PSBudWxsKSB7CiAgICAgICAgICAgIGVsLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgZWwuc3R5bGUudmlzaWJpbGl0eSA9ICJpbmhlcml0IjsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFlbGVtZW50RGF0YShlbCwgImluaXRpYWxpemVkIikpIHsKICAgICAgICAgIGluaXRTaXppbmcoZWwpOwoKICAgICAgICAgIGVsZW1lbnREYXRhKGVsLCAiaW5pdGlhbGl6ZWQiLCB0cnVlKTsKICAgICAgICAgIGlmIChiaW5kaW5nRGVmLmluaXRpYWxpemUpIHsKICAgICAgICAgICAgdmFyIHJlc3VsdCA9IGJpbmRpbmdEZWYuaW5pdGlhbGl6ZShlbCwgZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgZWwub2Zmc2V0SGVpZ2h0KTsKICAgICAgICAgICAgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIsIHJlc3VsdCk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGJpbmRpbmdEZWYucmVuZGVyVmFsdWUoZWwsIGRhdGEueCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICBldmFsQW5kUnVuKGRhdGEuanNIb29rcy5yZW5kZXIsIGVsZW1lbnREYXRhKGVsLCAiaW5pdF9yZXN1bHQiKSwgW2VsLCBkYXRhLnhdKTsKICAgICAgfTsKCiAgICAgIC8vIE9ubHkgb3ZlcnJpZGUgcmVzaXplIGlmIGJpbmRpbmdEZWYgaW1wbGVtZW50cyBpdAogICAgICBpZiAoYmluZGluZ0RlZi5yZXNpemUpIHsKICAgICAgICBzaGlueUJpbmRpbmcucmVzaXplID0gZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQpIHsKICAgICAgICAgIC8vIFNoaW55IGNhbiBjYWxsIHJlc2l6ZSBiZWZvcmUgaW5pdGlhbGl6ZS9yZW5kZXJWYWx1ZSBoYXZlIGJlZW4KICAgICAgICAgIC8vIGNhbGxlZCwgd2hpY2ggZG9lc24ndCBtYWtlIHNlbnNlIGZvciB3aWRnZXRzLgogICAgICAgICAgaWYgKGVsZW1lbnREYXRhKGVsLCAiaW5pdGlhbGl6ZWQiKSkgewogICAgICAgICAgICBiaW5kaW5nRGVmLnJlc2l6ZShlbCwgd2lkdGgsIGhlaWdodCwgZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpKTsKICAgICAgICAgIH0KICAgICAgICB9OwogICAgICB9CgogICAgICBTaGlueS5vdXRwdXRCaW5kaW5ncy5yZWdpc3RlcihzaGlueUJpbmRpbmcsIGJpbmRpbmdEZWYubmFtZSk7CiAgICB9CiAgfTsKCiAgdmFyIHNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCA9IG51bGw7CiAgZnVuY3Rpb24gc2NoZWR1bGVTdGF0aWNSZW5kZXIoKSB7CiAgICBpZiAoIXNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCkgewogICAgICBzY2hlZHVsZVN0YXRpY1JlbmRlclRpbWVySWQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgIHNjaGVkdWxlU3RhdGljUmVuZGVyVGltZXJJZCA9IG51bGw7CiAgICAgICAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlcigpOwogICAgICB9LCAxKTsKICAgIH0KICB9CgogIC8vIFJlbmRlciBzdGF0aWMgd2lkZ2V0cyBhZnRlciB0aGUgZG9jdW1lbnQgZmluaXNoZXMgbG9hZGluZwogIC8vIFN0YXRpY2FsbHkgcmVuZGVyIGFsbCBlbGVtZW50cyB0aGF0IGFyZSBvZiB0aGlzIHdpZGdldCdzIGNsYXNzCiAgd2luZG93LkhUTUxXaWRnZXRzLnN0YXRpY1JlbmRlciA9IGZ1bmN0aW9uKCkgewogICAgdmFyIGJpbmRpbmdzID0gd2luZG93LkhUTUxXaWRnZXRzLndpZGdldHMgfHwgW107CiAgICBmb3JFYWNoKGJpbmRpbmdzLCBmdW5jdGlvbihiaW5kaW5nKSB7CiAgICAgIHZhciBtYXRjaGVzID0gYmluZGluZy5maW5kKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCk7CiAgICAgIGZvckVhY2gobWF0Y2hlcywgZnVuY3Rpb24oZWwpIHsKICAgICAgICB2YXIgc2l6ZU9iaiA9IGluaXRTaXppbmcoZWwsIGJpbmRpbmcpOwoKICAgICAgICBpZiAoaGFzQ2xhc3MoZWwsICJodG1sLXdpZGdldC1zdGF0aWMtYm91bmQiKSkKICAgICAgICAgIHJldHVybjsKICAgICAgICBlbC5jbGFzc05hbWUgPSBlbC5jbGFzc05hbWUgKyAiIGh0bWwtd2lkZ2V0LXN0YXRpYy1ib3VuZCI7CgogICAgICAgIHZhciBpbml0UmVzdWx0OwogICAgICAgIGlmIChiaW5kaW5nLmluaXRpYWxpemUpIHsKICAgICAgICAgIGluaXRSZXN1bHQgPSBiaW5kaW5nLmluaXRpYWxpemUoZWwsCiAgICAgICAgICAgIHNpemVPYmogPyBzaXplT2JqLmdldFdpZHRoKCkgOiBlbC5vZmZzZXRXaWR0aCwKICAgICAgICAgICAgc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICk7CiAgICAgICAgICBlbGVtZW50RGF0YShlbCwgImluaXRfcmVzdWx0IiwgaW5pdFJlc3VsdCk7CiAgICAgICAgfQoKICAgICAgICBpZiAoYmluZGluZy5yZXNpemUpIHsKICAgICAgICAgIHZhciBsYXN0U2l6ZSA9IHsKICAgICAgICAgICAgdzogc2l6ZU9iaiA/IHNpemVPYmouZ2V0V2lkdGgoKSA6IGVsLm9mZnNldFdpZHRoLAogICAgICAgICAgICBoOiBzaXplT2JqID8gc2l6ZU9iai5nZXRIZWlnaHQoKSA6IGVsLm9mZnNldEhlaWdodAogICAgICAgICAgfTsKICAgICAgICAgIHZhciByZXNpemVIYW5kbGVyID0gZnVuY3Rpb24oZSkgewogICAgICAgICAgICB2YXIgc2l6ZSA9IHsKICAgICAgICAgICAgICB3OiBzaXplT2JqID8gc2l6ZU9iai5nZXRXaWR0aCgpIDogZWwub2Zmc2V0V2lkdGgsCiAgICAgICAgICAgICAgaDogc2l6ZU9iaiA/IHNpemVPYmouZ2V0SGVpZ2h0KCkgOiBlbC5vZmZzZXRIZWlnaHQKICAgICAgICAgICAgfTsKICAgICAgICAgICAgaWYgKHNpemUudyA9PT0gMCAmJiBzaXplLmggPT09IDApCiAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICBpZiAoc2l6ZS53ID09PSBsYXN0U2l6ZS53ICYmIHNpemUuaCA9PT0gbGFzdFNpemUuaCkKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIGxhc3RTaXplID0gc2l6ZTsKICAgICAgICAgICAgYmluZGluZy5yZXNpemUoZWwsIHNpemUudywgc2l6ZS5oLCBpbml0UmVzdWx0KTsKICAgICAgICAgIH07CgogICAgICAgICAgb24od2luZG93LCAicmVzaXplIiwgcmVzaXplSGFuZGxlcik7CgogICAgICAgICAgLy8gVGhpcyBpcyBuZWVkZWQgZm9yIGNhc2VzIHdoZXJlIHdlJ3JlIHJ1bm5pbmcgaW4gYSBTaGlueQogICAgICAgICAgLy8gYXBwLCBidXQgdGhlIHdpZGdldCBpdHNlbGYgaXMgbm90IGEgU2hpbnkgb3V0cHV0LCBidXQKICAgICAgICAgIC8vIHJhdGhlciBhIHNpbXBsZSBzdGF0aWMgd2lkZ2V0LiBPbmUgZXhhbXBsZSBvZiB0aGlzIGlzCiAgICAgICAgICAvLyBhbiBybWFya2Rvd24gZG9jdW1lbnQgdGhhdCBoYXMgcnVudGltZTpzaGlueSBhbmQgd2lkZ2V0CiAgICAgICAgICAvLyB0aGF0IGlzbid0IGluIGEgcmVuZGVyIGZ1bmN0aW9uLiBTaGlueSBvbmx5IGtub3dzIHRvCiAgICAgICAgICAvLyBjYWxsIHJlc2l6ZSBoYW5kbGVycyBmb3IgU2hpbnkgb3V0cHV0cywgbm90IGZvciBzdGF0aWMKICAgICAgICAgIC8vIHdpZGdldHMsIHNvIHdlIGRvIGl0IG91cnNlbHZlcy4KICAgICAgICAgIGlmICh3aW5kb3cualF1ZXJ5KSB7CiAgICAgICAgICAgIHdpbmRvdy5qUXVlcnkoZG9jdW1lbnQpLm9uKAogICAgICAgICAgICAgICJzaG93bi5odG1sd2lkZ2V0cyBzaG93bi5icy50YWIuaHRtbHdpZGdldHMgc2hvd24uYnMuY29sbGFwc2UuaHRtbHdpZGdldHMiLAogICAgICAgICAgICAgIHJlc2l6ZUhhbmRsZXIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgd2luZG93LmpRdWVyeShkb2N1bWVudCkub24oCiAgICAgICAgICAgICAgImhpZGRlbi5odG1sd2lkZ2V0cyBoaWRkZW4uYnMudGFiLmh0bWx3aWRnZXRzIGhpZGRlbi5icy5jb2xsYXBzZS5odG1sd2lkZ2V0cyIsCiAgICAgICAgICAgICAgcmVzaXplSGFuZGxlcgogICAgICAgICAgICApOwogICAgICAgICAgfQoKICAgICAgICAgIC8vIFRoaXMgaXMgbmVlZGVkIGZvciB0aGUgc3BlY2lmaWMgY2FzZSBvZiBpb3NsaWRlcywgd2hpY2gKICAgICAgICAgIC8vIGZsaXBzIHNsaWRlcyBiZXR3ZWVuIGRpc3BsYXk6bm9uZSBhbmQgZGlzcGxheTpibG9jay4KICAgICAgICAgIC8vIElkZWFsbHkgd2Ugd291bGQgbm90IGhhdmUgdG8gaGF2ZSBpb3NsaWRlLXNwZWNpZmljIGNvZGUKICAgICAgICAgIC8vIGhlcmUsIGJ1dCByYXRoZXIgaGF2ZSBpb3NsaWRlcyByYWlzZSBhIGdlbmVyaWMgZXZlbnQsCiAgICAgICAgICAvLyBidXQgdGhlIHJtYXJrZG93biBwYWNrYWdlIGp1c3Qgd2VudCB0byBDUkFOIHNvIHRoZQogICAgICAgICAgLy8gd2luZG93IHRvIGdldHRpbmcgdGhhdCBmaXhlZCBtYXkgYmUgbG9uZy4KICAgICAgICAgIGlmICh3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICAgICAgICAvLyBJdCdzIE9LIHRvIGxpbWl0IHRoaXMgdG8gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIKICAgICAgICAgICAgLy8gYnJvd3NlcnMgYmVjYXVzZSBpb3NsaWRlcyBpdHNlbGYgb25seSBzdXBwb3J0cwogICAgICAgICAgICAvLyBzdWNoIGJyb3dzZXJzLgogICAgICAgICAgICBvbihkb2N1bWVudCwgInNsaWRlZW50ZXIiLCByZXNpemVIYW5kbGVyKTsKICAgICAgICAgICAgb24oZG9jdW1lbnQsICJzbGlkZWxlYXZlIiwgcmVzaXplSGFuZGxlcik7CiAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICB2YXIgc2NyaXB0RGF0YSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoInNjcmlwdFtkYXRhLWZvcj0nIiArIGVsLmlkICsgIiddW3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXSIpOwogICAgICAgIGlmIChzY3JpcHREYXRhKSB7CiAgICAgICAgICB2YXIgZGF0YSA9IEpTT04ucGFyc2Uoc2NyaXB0RGF0YS50ZXh0Q29udGVudCB8fCBzY3JpcHREYXRhLnRleHQpOwogICAgICAgICAgLy8gUmVzb2x2ZSBzdHJpbmdzIG1hcmtlZCBhcyBqYXZhc2NyaXB0IGxpdGVyYWxzIHRvIG9iamVjdHMKICAgICAgICAgIGlmICghKGRhdGEuZXZhbHMgaW5zdGFuY2VvZiBBcnJheSkpIGRhdGEuZXZhbHMgPSBbZGF0YS5ldmFsc107CiAgICAgICAgICBmb3IgKHZhciBrID0gMDsgZGF0YS5ldmFscyAmJiBrIDwgZGF0YS5ldmFscy5sZW5ndGg7IGsrKykgewogICAgICAgICAgICB3aW5kb3cuSFRNTFdpZGdldHMuZXZhbHVhdGVTdHJpbmdNZW1iZXIoZGF0YS54LCBkYXRhLmV2YWxzW2tdKTsKICAgICAgICAgIH0KICAgICAgICAgIGJpbmRpbmcucmVuZGVyVmFsdWUoZWwsIGRhdGEueCwgaW5pdFJlc3VsdCk7CiAgICAgICAgICBldmFsQW5kUnVuKGRhdGEuanNIb29rcy5yZW5kZXIsIGluaXRSZXN1bHQsIFtlbCwgZGF0YS54XSk7CiAgICAgICAgfQogICAgICB9KTsKICAgIH0pOwoKICAgIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpOwogIH0KCgogIGZ1bmN0aW9uIGhhc19qUXVlcnkzKCkgewogICAgaWYgKCF3aW5kb3cualF1ZXJ5KSB7CiAgICAgIHJldHVybiBmYWxzZTsKICAgIH0KICAgIHZhciAkdmVyc2lvbiA9IHdpbmRvdy5qUXVlcnkuZm4uanF1ZXJ5OwogICAgdmFyICRtYWpvcl92ZXJzaW9uID0gcGFyc2VJbnQoJHZlcnNpb24uc3BsaXQoIi4iKVswXSk7CiAgICByZXR1cm4gJG1ham9yX3ZlcnNpb24gPj0gMzsKICB9CgogIC8qCiAgLyBTaGlueSAxLjQgYnVtcGVkIGpRdWVyeSBmcm9tIDEueCB0byAzLnggd2hpY2ggbWVhbnMgalF1ZXJ5J3MKICAvIG9uLXJlYWR5IGhhbmRsZXIgKGkuZS4sICQoZm4pKSBpcyBub3cgYXN5bmNyb25vdXMgKGkuZS4sIGl0IG5vdwogIC8gcmVhbGx5IG1lYW5zICQoc2V0VGltZW91dChmbikpLgogIC8gaHR0cHM6Ly9qcXVlcnkuY29tL3VwZ3JhZGUtZ3VpZGUvMy4wLyNicmVha2luZy1jaGFuZ2UtZG9jdW1lbnQtcmVhZHktaGFuZGxlcnMtYXJlLW5vdy1hc3luY2hyb25vdXMKICAvCiAgLyBTaW5jZSBTaGlueSB1c2VzICQoKSB0byBzY2hlZHVsZSBpbml0U2hpbnksIHNoaW55Pj0xLjQgY2FsbHMgaW5pdFNoaW55CiAgLyBvbmUgdGljayBsYXRlciB0aGFuIGl0IGRpZCBiZWZvcmUsIHdoaWNoIG1lYW5zIHN0YXRpY1JlbmRlcigpIGlzCiAgLyBjYWxsZWQgcmVuZGVyVmFsdWUoKSBlYXJsaWVyIHRoYW4gKGFkdmFuY2VkKSB3aWRnZXQgYXV0aG9ycyBtaWdodCBiZSBleHBlY3RpbmcuCiAgLyBodHRwczovL2dpdGh1Yi5jb20vcnN0dWRpby9zaGlueS9pc3N1ZXMvMjYzMAogIC8KICAvIEZvciBhIGNvbmNyZXRlIGV4YW1wbGUsIGxlYWZsZXQgaGFzIHNvbWUgbWV0aG9kcyAoZS5nLiwgdXBkYXRlQm91bmRzKQogIC8gd2hpY2ggcmVmZXJlbmNlIFNoaW55IG1ldGhvZHMgcmVnaXN0ZXJlZCBpbiBpbml0U2hpbnkgKGUuZy4sIHNldElucHV0VmFsdWUpLgogIC8gU2luY2UgbGVhZmxldCBpcyBwcml2eSB0byB0aGlzIGxpZmUtY3ljbGUsIGl0IGtub3dzIHRvIHVzZSBzZXRUaW1lb3V0KCkgdG8KICAvIGRlbGF5IGV4ZWN1dGlvbiBvZiB0aG9zZSBtZXRob2RzICh1bnRpbCBTaGlueSBtZXRob2RzIGFyZSByZWFkeSkKICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvYmxvYi8xOGVjOTgxL2phdmFzY3JpcHQvc3JjL2luZGV4LmpzI0wyNjYtTDI2OAogIC8KICAvIElkZWFsbHkgd2lkZ2V0IGF1dGhvcnMgd291bGRuJ3QgbmVlZCB0byB1c2UgdGhpcyBzZXRUaW1lb3V0KCkgaGFjayB0aGF0CiAgLyBsZWFmbGV0IHVzZXMgdG8gY2FsbCBTaGlueSBtZXRob2RzIG9uIGEgc3RhdGljUmVuZGVyKCkuIEluIHRoZSBsb25nIHJ1biwKICAvIHRoZSBsb2dpYyBpbml0U2hpbnkgc2hvdWxkIGJlIGJyb2tlbiB1cCBzbyB0aGF0IG1ldGhvZCByZWdpc3RyYXRpb24gaGFwcGVucwogIC8gcmlnaHQgYXdheSwgYnV0IGJpbmRpbmcgaGFwcGVucyBsYXRlci4KICAqLwogIGZ1bmN0aW9uIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKSB7CiAgICBpZiAoc2hpbnlNb2RlICYmIGhhc19qUXVlcnkzKCkpIHsKICAgICAgd2luZG93LmpRdWVyeSh3aW5kb3cuSFRNTFdpZGdldHMuc3RhdGljUmVuZGVyKTsKICAgIH0gZWxzZSB7CiAgICAgIHdpbmRvdy5IVE1MV2lkZ2V0cy5zdGF0aWNSZW5kZXIoKTsKICAgIH0KICB9CgogIGlmIChkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oKSB7CiAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoIkRPTUNvbnRlbnRMb2FkZWQiLCBhcmd1bWVudHMuY2FsbGVlLCBmYWxzZSk7CiAgICAgIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKTsKICAgIH0sIGZhbHNlKTsKICB9IGVsc2UgaWYgKGRvY3VtZW50LmF0dGFjaEV2ZW50KSB7CiAgICBkb2N1bWVudC5hdHRhY2hFdmVudCgib25yZWFkeXN0YXRlY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSAiY29tcGxldGUiKSB7CiAgICAgICAgZG9jdW1lbnQuZGV0YWNoRXZlbnQoIm9ucmVhZHlzdGF0ZWNoYW5nZSIsIGFyZ3VtZW50cy5jYWxsZWUpOwogICAgICAgIG1heWJlU3RhdGljUmVuZGVyTGF0ZXIoKTsKICAgICAgfQogICAgfSk7CiAgfQoKCiAgd2luZG93LkhUTUxXaWRnZXRzLmdldEF0dGFjaG1lbnRVcmwgPSBmdW5jdGlvbihkZXBuYW1lLCBrZXkpIHsKICAgIC8vIElmIG5vIGtleSwgZGVmYXVsdCB0byB0aGUgZmlyc3QgaXRlbQogICAgaWYgKHR5cGVvZihrZXkpID09PSAidW5kZWZpbmVkIikKICAgICAga2V5ID0gMTsKCiAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGRlcG5hbWUgKyAiLSIgKyBrZXkgKyAiLWF0dGFjaG1lbnQiKTsKICAgIGlmICghbGluaykgewogICAgICB0aHJvdyBuZXcgRXJyb3IoIkF0dGFjaG1lbnQgIiArIGRlcG5hbWUgKyAiLyIgKyBrZXkgKyAiIG5vdCBmb3VuZCBpbiBkb2N1bWVudCIpOwogICAgfQogICAgcmV0dXJuIGxpbmsuZ2V0QXR0cmlidXRlKCJocmVmIik7CiAgfTsKCiAgd2luZG93LkhUTUxXaWRnZXRzLmRhdGFmcmFtZVRvRDMgPSBmdW5jdGlvbihkZikgewogICAgdmFyIG5hbWVzID0gW107CiAgICB2YXIgbGVuZ3RoOwogICAgZm9yICh2YXIgbmFtZSBpbiBkZikgewogICAgICAgIGlmIChkZi5oYXNPd25Qcm9wZXJ0eShuYW1lKSkKICAgICAgICAgICAgbmFtZXMucHVzaChuYW1lKTsKICAgICAgICBpZiAodHlwZW9mKGRmW25hbWVdKSAhPT0gIm9iamVjdCIgfHwgdHlwZW9mKGRmW25hbWVdLmxlbmd0aCkgPT09ICJ1bmRlZmluZWQiKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyIpOwogICAgICAgIH0gZWxzZSBpZiAodHlwZW9mKGxlbmd0aCkgIT09ICJ1bmRlZmluZWQiICYmIGxlbmd0aCAhPT0gZGZbbmFtZV0ubGVuZ3RoKSB7CiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigiQWxsIGZpZWxkcyBtdXN0IGJlIGFycmF5cyBvZiB0aGUgc2FtZSBsZW5ndGgiKTsKICAgICAgICB9CiAgICAgICAgbGVuZ3RoID0gZGZbbmFtZV0ubGVuZ3RoOwogICAgfQogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIHZhciBpdGVtOwogICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgbGVuZ3RoOyByb3crKykgewogICAgICAgIGl0ZW0gPSB7fTsKICAgICAgICBmb3IgKHZhciBjb2wgPSAwOyBjb2wgPCBuYW1lcy5sZW5ndGg7IGNvbCsrKSB7CiAgICAgICAgICAgIGl0ZW1bbmFtZXNbY29sXV0gPSBkZltuYW1lc1tjb2xdXVtyb3ddOwogICAgICAgIH0KICAgICAgICByZXN1bHRzLnB1c2goaXRlbSk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9OwoKICB3aW5kb3cuSFRNTFdpZGdldHMudHJhbnNwb3NlQXJyYXkyRCA9IGZ1bmN0aW9uKGFycmF5KSB7CiAgICAgIGlmIChhcnJheS5sZW5ndGggPT09IDApIHJldHVybiBhcnJheTsKICAgICAgdmFyIG5ld0FycmF5ID0gYXJyYXlbMF0ubWFwKGZ1bmN0aW9uKGNvbCwgaSkgewogICAgICAgICAgcmV0dXJuIGFycmF5Lm1hcChmdW5jdGlvbihyb3cpIHsKICAgICAgICAgICAgICByZXR1cm4gcm93W2ldCiAgICAgICAgICB9KQogICAgICB9KTsKICAgICAgcmV0dXJuIG5ld0FycmF5OwogIH07CiAgLy8gU3BsaXQgdmFsdWUgYXQgc3BsaXRDaGFyLCBidXQgYWxsb3cgc3BsaXRDaGFyIHRvIGJlIGVzY2FwZWQKICAvLyB1c2luZyBlc2NhcGVDaGFyLiBBbnkgb3RoZXIgY2hhcmFjdGVycyBlc2NhcGVkIGJ5IGVzY2FwZUNoYXIKICAvLyB3aWxsIGJlIGluY2x1ZGVkIGFzIHVzdWFsIChpbmNsdWRpbmcgZXNjYXBlQ2hhciBpdHNlbGYpLgogIGZ1bmN0aW9uIHNwbGl0V2l0aEVzY2FwZSh2YWx1ZSwgc3BsaXRDaGFyLCBlc2NhcGVDaGFyKSB7CiAgICB2YXIgcmVzdWx0cyA9IFtdOwogICAgdmFyIGVzY2FwZU1vZGUgPSBmYWxzZTsKICAgIHZhciBjdXJyZW50UmVzdWx0ID0gIiI7CiAgICBmb3IgKHZhciBwb3MgPSAwOyBwb3MgPCB2YWx1ZS5sZW5ndGg7IHBvcysrKSB7CiAgICAgIGlmICghZXNjYXBlTW9kZSkgewogICAgICAgIGlmICh2YWx1ZVtwb3NdID09PSBzcGxpdENoYXIpIHsKICAgICAgICAgIHJlc3VsdHMucHVzaChjdXJyZW50UmVzdWx0KTsKICAgICAgICAgIGN1cnJlbnRSZXN1bHQgPSAiIjsKICAgICAgICB9IGVsc2UgaWYgKHZhbHVlW3Bvc10gPT09IGVzY2FwZUNoYXIpIHsKICAgICAgICAgIGVzY2FwZU1vZGUgPSB0cnVlOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBjdXJyZW50UmVzdWx0ICs9IHZhbHVlW3Bvc107CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGN1cnJlbnRSZXN1bHQgKz0gdmFsdWVbcG9zXTsKICAgICAgICBlc2NhcGVNb2RlID0gZmFsc2U7CiAgICAgIH0KICAgIH0KICAgIGlmIChjdXJyZW50UmVzdWx0ICE9PSAiIikgewogICAgICByZXN1bHRzLnB1c2goY3VycmVudFJlc3VsdCk7CiAgICB9CiAgICByZXR1cm4gcmVzdWx0czsKICB9CiAgLy8gRnVuY3Rpb24gYXV0aG9yZWQgYnkgWWlodWkvSkogQWxsYWlyZQogIHdpbmRvdy5IVE1MV2lkZ2V0cy5ldmFsdWF0ZVN0cmluZ01lbWJlciA9IGZ1bmN0aW9uKG8sIG1lbWJlcikgewogICAgdmFyIHBhcnRzID0gc3BsaXRXaXRoRXNjYXBlKG1lbWJlciwgJy4nLCAnXFwnKTsKICAgIGZvciAodmFyIGkgPSAwLCBsID0gcGFydHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7CiAgICAgIHZhciBwYXJ0ID0gcGFydHNbaV07CiAgICAgIC8vIHBhcnQgbWF5IGJlIGEgY2hhcmFjdGVyIG9yICdudW1lcmljJyBtZW1iZXIgbmFtZQogICAgICBpZiAobyAhPT0gbnVsbCAmJiB0eXBlb2YgbyA9PT0gIm9iamVjdCIgJiYgcGFydCBpbiBvKSB7CiAgICAgICAgaWYgKGkgPT0gKGwgLSAxKSkgeyAvLyBpZiB3ZSBhcmUgYXQgdGhlIGVuZCBvZiB0aGUgbGluZSB0aGVuIGV2YWx1bGF0ZQogICAgICAgICAgaWYgKHR5cGVvZiBvW3BhcnRdID09PSAic3RyaW5nIikKICAgICAgICAgICAgb1twYXJ0XSA9IHRyeUV2YWwob1twYXJ0XSk7CiAgICAgICAgfSBlbHNlIHsgLy8gb3RoZXJ3aXNlIGNvbnRpbnVlIHRvIG5leHQgZW1iZWRkZWQgb2JqZWN0CiAgICAgICAgICBvID0gb1twYXJ0XTsKICAgICAgICB9CiAgICAgIH0KICAgIH0KICB9OwoKICAvLyBSZXRyaWV2ZSB0aGUgSFRNTFdpZGdldCBpbnN0YW5jZSAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlIG9mIGFuCiAgLy8gSFRNTFdpZGdldCBiaW5kaW5nJ3MgaW5pdGlhbGl6ZSgpIG9yIGZhY3RvcnkoKSBmdW5jdGlvbikKICAvLyBhc3NvY2lhdGVkIHdpdGggYW4gZWxlbWVudCwgb3IgbnVsbCBpZiBub25lLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZSA9IGZ1bmN0aW9uKGVsKSB7CiAgICByZXR1cm4gZWxlbWVudERhdGEoZWwsICJpbml0X3Jlc3VsdCIpOwogIH07CgogIC8vIEZpbmRzIHRoZSBmaXJzdCBlbGVtZW50IGluIHRoZSBzY29wZSB0aGF0IG1hdGNoZXMgdGhlIHNlbGVjdG9yLAogIC8vIGFuZCByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlIChpLmUuIHRoZSByZXR1cm4gdmFsdWUgb2YKICAvLyBhbiBIVE1MV2lkZ2V0IGJpbmRpbmcncyBpbml0aWFsaXplKCkgb3IgZmFjdG9yeSgpIGZ1bmN0aW9uKQogIC8vIGFzc29jaWF0ZWQgd2l0aCB0aGF0IGVsZW1lbnQsIGlmIGFueS4gSWYgbm8gZWxlbWVudCBtYXRjaGVzIHRoZQogIC8vIHNlbGVjdG9yLCBvciB0aGUgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBoYXMgbm8gSFRNTFdpZGdldAogIC8vIGluc3RhbmNlIGFzc29jaWF0ZWQgd2l0aCBpdCwgdGhlbiBudWxsIGlzIHJldHVybmVkLgogIC8vCiAgLy8gVGhlIHNjb3BlIGFyZ3VtZW50IGlzIG9wdGlvbmFsLCBhbmQgZGVmYXVsdHMgdG8gd2luZG93LmRvY3VtZW50LgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5maW5kID0gZnVuY3Rpb24oc2NvcGUsIHNlbGVjdG9yKSB7CiAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PSAxKSB7CiAgICAgIHNlbGVjdG9yID0gc2NvcGU7CiAgICAgIHNjb3BlID0gZG9jdW1lbnQ7CiAgICB9CgogICAgdmFyIGVsID0gc2NvcGUucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7CiAgICBpZiAoZWwgPT09IG51bGwpIHsKICAgICAgcmV0dXJuIG51bGw7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd2luZG93LkhUTUxXaWRnZXRzLmdldEluc3RhbmNlKGVsKTsKICAgIH0KICB9OwoKICAvLyBGaW5kcyBhbGwgZWxlbWVudHMgaW4gdGhlIHNjb3BlIHRoYXQgbWF0Y2ggdGhlIHNlbGVjdG9yLCBhbmQKICAvLyByZXR1cm5zIHRoZSBIVE1MV2lkZ2V0IGluc3RhbmNlcyAoaS5lLiB0aGUgcmV0dXJuIHZhbHVlcyBvZgogIC8vIGFuIEhUTUxXaWRnZXQgYmluZGluZydzIGluaXRpYWxpemUoKSBvciBmYWN0b3J5KCkgZnVuY3Rpb24pCiAgLy8gYXNzb2NpYXRlZCB3aXRoIHRoZSBlbGVtZW50cywgaW4gYW4gYXJyYXkuIElmIGVsZW1lbnRzIHRoYXQKICAvLyBtYXRjaCB0aGUgc2VsZWN0b3IgZG9uJ3QgaGF2ZSBhbiBhc3NvY2lhdGVkIEhUTUxXaWRnZXQKICAvLyBpbnN0YW5jZSwgdGhlIHJldHVybmVkIGFycmF5IHdpbGwgY29udGFpbiBudWxscy4KICAvLwogIC8vIFRoZSBzY29wZSBhcmd1bWVudCBpcyBvcHRpb25hbCwgYW5kIGRlZmF1bHRzIHRvIHdpbmRvdy5kb2N1bWVudC4KICB3aW5kb3cuSFRNTFdpZGdldHMuZmluZEFsbCA9IGZ1bmN0aW9uKHNjb3BlLCBzZWxlY3RvcikgewogICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT0gMSkgewogICAgICBzZWxlY3RvciA9IHNjb3BlOwogICAgICBzY29wZSA9IGRvY3VtZW50OwogICAgfQoKICAgIHZhciBub2RlcyA9IHNjb3BlLnF1ZXJ5U2VsZWN0b3JBbGwoc2VsZWN0b3IpOwogICAgdmFyIHJlc3VsdHMgPSBbXTsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZXMubGVuZ3RoOyBpKyspIHsKICAgICAgcmVzdWx0cy5wdXNoKHdpbmRvdy5IVE1MV2lkZ2V0cy5nZXRJbnN0YW5jZShub2Rlc1tpXSkpOwogICAgfQogICAgcmV0dXJuIHJlc3VsdHM7CiAgfTsKCiAgdmFyIHBvc3RSZW5kZXJIYW5kbGVycyA9IFtdOwogIGZ1bmN0aW9uIGludm9rZVBvc3RSZW5kZXJIYW5kbGVycygpIHsKICAgIHdoaWxlIChwb3N0UmVuZGVySGFuZGxlcnMubGVuZ3RoKSB7CiAgICAgIHZhciBoYW5kbGVyID0gcG9zdFJlbmRlckhhbmRsZXJzLnNoaWZ0KCk7CiAgICAgIGlmIChoYW5kbGVyKSB7CiAgICAgICAgaGFuZGxlcigpOwogICAgICB9CiAgICB9CiAgfQoKICAvLyBSZWdpc3RlciB0aGUgZ2l2ZW4gY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBhZnRlciB0aGUKICAvLyBuZXh0IHRpbWUgc3RhdGljIHdpZGdldHMgYXJlIHJlbmRlcmVkLgogIHdpbmRvdy5IVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlciA9IGZ1bmN0aW9uKGNhbGxiYWNrKSB7CiAgICBwb3N0UmVuZGVySGFuZGxlcnMucHVzaChjYWxsYmFjayk7CiAgfTsKCiAgLy8gVGFrZXMgYSBuZXctc3R5bGUgaW5zdGFuY2UtYm91bmQgZGVmaW5pdGlvbiwgYW5kIHJldHVybnMgYW4KICAvLyBvbGQtc3R5bGUgY2xhc3MtYm91bmQgZGVmaW5pdGlvbi4gVGhpcyBzYXZlcyB1cyBmcm9tIGhhdmluZwogIC8vIHRvIHJld3JpdGUgYWxsIHRoZSBsb2dpYyBpbiB0aGlzIGZpbGUgdG8gYWNjb21vZGF0ZSBib3RoCiAgLy8gdHlwZXMgb2YgZGVmaW5pdGlvbnMuCiAgZnVuY3Rpb24gY3JlYXRlTGVnYWN5RGVmaW5pdGlvbkFkYXB0ZXIoZGVmbikgewogICAgdmFyIHJlc3VsdCA9IHsKICAgICAgbmFtZTogZGVmbi5uYW1lLAogICAgICB0eXBlOiBkZWZuLnR5cGUsCiAgICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICAgICAgcmV0dXJuIGRlZm4uZmFjdG9yeShlbCwgd2lkdGgsIGhlaWdodCk7CiAgICAgIH0sCiAgICAgIHJlbmRlclZhbHVlOiBmdW5jdGlvbihlbCwgeCwgaW5zdGFuY2UpIHsKICAgICAgICByZXR1cm4gaW5zdGFuY2UucmVuZGVyVmFsdWUoeCk7CiAgICAgIH0sCiAgICAgIHJlc2l6ZTogZnVuY3Rpb24oZWwsIHdpZHRoLCBoZWlnaHQsIGluc3RhbmNlKSB7CiAgICAgICAgcmV0dXJuIGluc3RhbmNlLnJlc2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICAgfQogICAgfTsKCiAgICBpZiAoZGVmbi5maW5kKQogICAgICByZXN1bHQuZmluZCA9IGRlZm4uZmluZDsKICAgIGlmIChkZWZuLnJlbmRlckVycm9yKQogICAgICByZXN1bHQucmVuZGVyRXJyb3IgPSBkZWZuLnJlbmRlckVycm9yOwogICAgaWYgKGRlZm4uY2xlYXJFcnJvcikKICAgICAgcmVzdWx0LmNsZWFyRXJyb3IgPSBkZWZuLmNsZWFyRXJyb3I7CgogICAgcmV0dXJuIHJlc3VsdDsKICB9Cn0pKCk7Cgo="></script>
<script src="data:application/javascript;base64,CkhUTUxXaWRnZXRzLndpZGdldCh7CiAgbmFtZTogInBsb3RseSIsCiAgdHlwZTogIm91dHB1dCIsCgogIGluaXRpYWxpemU6IGZ1bmN0aW9uKGVsLCB3aWR0aCwgaGVpZ2h0KSB7CiAgICByZXR1cm4ge307CiAgfSwKCiAgcmVzaXplOiBmdW5jdGlvbihlbCwgd2lkdGgsIGhlaWdodCwgaW5zdGFuY2UpIHsKICAgIGlmIChpbnN0YW5jZS5hdXRvc2l6ZSkgewogICAgICB2YXIgd2lkdGggPSBpbnN0YW5jZS53aWR0aCB8fCB3aWR0aDsKICAgICAgdmFyIGhlaWdodCA9IGluc3RhbmNlLmhlaWdodCB8fCBoZWlnaHQ7CiAgICAgIFBsb3RseS5yZWxheW91dChlbC5pZCwge3dpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHR9KTsKICAgIH0KICB9LCAgCiAgCiAgcmVuZGVyVmFsdWU6IGZ1bmN0aW9uKGVsLCB4LCBpbnN0YW5jZSkgewogICAgCiAgICAvLyBQbG90bHkucmVsYXlvdXQoKSBtdXRhdGVzIHRoZSBwbG90IGlucHV0IG9iamVjdCwgc28gbWFrZSBzdXJlIHRvIAogICAgLy8ga2VlcCBhIHJlZmVyZW5jZSB0byB0aGUgdXNlci1zdXBwbGllZCB3aWR0aC9oZWlnaHQgKmJlZm9yZSoKICAgIC8vIHdlIGNhbGwgUGxvdGx5LnBsb3QoKTsKICAgIHZhciBsYXkgPSB4LmxheW91dCB8fCB7fTsKICAgIGluc3RhbmNlLndpZHRoID0gbGF5LndpZHRoOwogICAgaW5zdGFuY2UuaGVpZ2h0ID0gbGF5LmhlaWdodDsKICAgIGluc3RhbmNlLmF1dG9zaXplID0gbGF5LmF1dG9zaXplIHx8IHRydWU7CiAgICAKICAgIC8qIAogICAgLyAnaW5mb3JtIHRoZSB3b3JsZCcgYWJvdXQgaGlnaGxpZ2h0aW5nIG9wdGlvbnMgdGhpcyBpcyBzbyBvdGhlcgogICAgLyBjcm9zc3RhbGsgbGlicmFyaWVzIGhhdmUgYSBjaGFuY2UgdG8gcmVzcG9uZCB0byBzcGVjaWFsIHNldHRpbmdzIAogICAgLyBzdWNoIGFzIHBlcnNpc3RlbnQgc2VsZWN0aW9uLiAKICAgIC8gQUZBSUssIGxlYWZsZXQgaXMgdGhlIG9ubHkgbGlicmFyeSB3aXRoIHN1Y2ggaW50ZXJncmF0aW9uCiAgICAvIGh0dHBzOi8vZ2l0aHViLmNvbS9yc3R1ZGlvL2xlYWZsZXQvcHVsbC8zNDYvZmlsZXMjZGlmZi1hZDBjMmQ1MWNlNWZkZjhjOTBjNzM5NWIxMDJmNDI2NVIxNTQKICAgICovCiAgICB2YXIgY3RDb25maWcgPSBjcm9zc3RhbGsudmFyKCdwbG90bHlDcm9zc3RhbGtPcHRzJykuc2V0KHguaGlnaGxpZ2h0KTsKICAgICAgCiAgICBpZiAodHlwZW9mKHdpbmRvdykgIT09ICJ1bmRlZmluZWQiKSB7CiAgICAgIC8vIG1ha2Ugc3VyZSBwbG90cyBkb24ndCBnZXQgY3JlYXRlZCBvdXRzaWRlIHRoZSBuZXR3b3JrIChmb3Igb24tcHJlbSkKICAgICAgd2luZG93LlBMT1RMWUVOViA9IHdpbmRvdy5QTE9UTFlFTlYgfHwge307CiAgICAgIHdpbmRvdy5QTE9UTFlFTlYuQkFTRV9VUkwgPSB4LmJhc2VfdXJsOwogICAgICAKICAgICAgLy8gRW5hYmxlIHBlcnNpc3RlbnQgc2VsZWN0aW9uIHdoZW4gc2hpZnQga2V5IGlzIGRvd24KICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTgyODYxMy9jaGVjay1pZi1hLWtleS1pcy1kb3duCiAgICAgIHZhciBwZXJzaXN0T25TaGlmdCA9IGZ1bmN0aW9uKGUpIHsKICAgICAgICBpZiAoIWUpIHdpbmRvdy5ldmVudDsKICAgICAgICBpZiAoZS5zaGlmdEtleSkgeyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSB0cnVlOyAKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCA9IHRydWU7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnQgPSBmYWxzZTsgCiAgICAgICAgICB4LmhpZ2hsaWdodC5wZXJzaXN0ZW50U2hpZnQgPSBmYWxzZTsKICAgICAgICB9CiAgICAgIH07CiAgICAgIAogICAgICAvLyBPbmx5IHJlbGV2YW50IGlmIHdlIGhhdmVuJ3QgZm9yY2VkIHBlcnNpc3RlbnQgbW9kZSBhdCBjb21tYW5kIGxpbmUKICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgd2luZG93Lm9ubW91c2Vtb3ZlID0gcGVyc2lzdE9uU2hpZnQ7CiAgICAgIH0KICAgIH0KCiAgICB2YXIgZ3JhcGhEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbC5pZCk7CiAgICAKICAgIC8vIFRPRE86IG1vdmUgdGhlIGNvbnRyb2wgcGFuZWwgaW5qZWN0aW9uIHN0cmF0ZWd5IGluc2lkZSBoZXJlLi4uCiAgICBIVE1MV2lkZ2V0cy5hZGRQb3N0UmVuZGVySGFuZGxlcihmdW5jdGlvbigpIHsKICAgICAgCiAgICAgIC8vIGxvd2VyIHRoZSB6LWluZGV4IG9mIHRoZSBtb2RlYmFyIHRvIHByZXZlbnQgaXQgZnJvbSBoaWdoamFja2luZyBob3ZlcgogICAgICAvLyAoVE9ETzogZG8gdGhpcyB2aWEgQ1NTPykKICAgICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3JvcGVuc2NpL3Bsb3RseS9pc3N1ZXMvOTU2CiAgICAgIC8vIGh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vanNyZWYvcHJvcF9zdHlsZV96aW5kZXguYXNwCiAgICAgIHZhciBtb2RlYmFycyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5qcy1wbG90bHktcGxvdCAucGxvdGx5IC5tb2RlYmFyIik7CiAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbW9kZWJhcnMubGVuZ3RoOyBpKyspIHsKICAgICAgICBtb2RlYmFyc1tpXS5zdHlsZS56SW5kZXggPSAxOwogICAgICB9CiAgICB9KTsKICAgICAgCiAgICAgIC8vIGluamVjdCBhICJjb250cm9sIHBhbmVsIiBob2xkaW5nIHNlbGVjdGl6ZS9keW5hbWljIGNvbG9yIHdpZGdldChzKQogICAgaWYgKCh4LnNlbGVjdGl6ZSB8fCB4LmhpZ2hsaWdodC5keW5hbWljKSAmJiAhaW5zdGFuY2UucGxvdGx5KSB7CiAgICAgIHZhciBmbGV4ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgIGZsZXguY2xhc3MgPSAicGxvdGx5LWNyb3NzdGFsay1jb250cm9sLXBhbmVsIjsKICAgICAgZmxleC5zdHlsZSA9ICJkaXNwbGF5OiBmbGV4OyBmbGV4LXdyYXA6IHdyYXAiOwogICAgICAKICAgICAgLy8gaW5qZWN0IHRoZSBjb2xvdXJwaWNrZXIgSFRNTCBjb250YWluZXIgaW50byB0aGUgZmxleGJveAogICAgICBpZiAoeC5oaWdobGlnaHQuZHluYW1pYykgewogICAgICAgIHZhciBwaWNrZXJEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKICAgICAgICAKICAgICAgICB2YXIgcGlja2VySW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbnB1dCIpOwogICAgICAgIHBpY2tlcklucHV0LmlkID0gZWwuaWQgKyAiLWNvbG91cnBpY2tlciI7CiAgICAgICAgcGlja2VySW5wdXQucGxhY2Vob2xkZXIgPSAiYXNkYXNkIjsKICAgICAgICAKICAgICAgICB2YXIgcGlja2VyTGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgIHBpY2tlckxhYmVsLmZvciA9IHBpY2tlcklucHV0LmlkOwogICAgICAgIHBpY2tlckxhYmVsLmlubmVySFRNTCA9ICJCcnVzaCBjb2xvciZuYnNwOyZuYnNwOyI7CiAgICAgICAgCiAgICAgICAgcGlja2VyRGl2LmFwcGVuZENoaWxkKHBpY2tlckxhYmVsKTsKICAgICAgICBwaWNrZXJEaXYuYXBwZW5kQ2hpbGQocGlja2VySW5wdXQpOwogICAgICAgIGZsZXguYXBwZW5kQ2hpbGQocGlja2VyRGl2KTsKICAgICAgfQogICAgICAKICAgICAgLy8gaW5qZWN0IHNlbGVjdGl6ZSBIVE1MIGNvbnRhaW5lcnMgKG9uZSBmb3IgZXZlcnkgY3Jvc3N0YWxrIGdyb3VwKQogICAgICBpZiAoeC5zZWxlY3RpemUpIHsKICAgICAgICB2YXIgaWRzID0gT2JqZWN0LmtleXMoeC5zZWxlY3RpemUpOwogICAgICAgIAogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaWRzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICB2YXIgY29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICBjb250YWluZXIuaWQgPSBpZHNbaV07CiAgICAgICAgICBjb250YWluZXIuc3R5bGUgPSAid2lkdGg6IDgwJTsgaGVpZ2h0OiAxMCUiOwogICAgICAgICAgY29udGFpbmVyLmNsYXNzID0gImZvcm0tZ3JvdXAgY3Jvc3N0YWxrLWlucHV0LXBsb3RseS1oaWdobGlnaHQiOwogICAgICAgICAgCiAgICAgICAgICB2YXIgbGFiZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJsYWJlbCIpOwogICAgICAgICAgbGFiZWwuZm9yID0gaWRzW2ldOwogICAgICAgICAgbGFiZWwuaW5uZXJIVE1MID0geC5zZWxlY3RpemVbaWRzW2ldXS5ncm91cDsKICAgICAgICAgIGxhYmVsLmNsYXNzID0gImNvbnRyb2wtbGFiZWwiOwogICAgICAgICAgCiAgICAgICAgICB2YXIgc2VsZWN0RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgICAgICB2YXIgc2VsZWN0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic2VsZWN0Iik7CiAgICAgICAgICBzZWxlY3QubXVsdGlwbGUgPSB0cnVlOwogICAgICAgICAgCiAgICAgICAgICBzZWxlY3REaXYuYXBwZW5kQ2hpbGQoc2VsZWN0KTsKICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChsYWJlbCk7CiAgICAgICAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoc2VsZWN0RGl2KTsKICAgICAgICAgIGZsZXguYXBwZW5kQ2hpbGQoY29udGFpbmVyKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIC8vIGZpbmFsbHksIGluc2VydCB0aGUgZmxleGJveCBpbnNpZGUgdGhlIGh0bWx3aWRnZXQgY29udGFpbmVyLAogICAgICAvLyBidXQgYmVmb3JlIHRoZSBwbG90bHkgZ3JhcGggZGl2CiAgICAgIGdyYXBoRGl2LnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGZsZXgsIGdyYXBoRGl2KTsKICAgICAgCiAgICAgIGlmICh4LmhpZ2hsaWdodC5keW5hbWljKSB7CiAgICAgICAgdmFyIHBpY2tlciA9ICQoIiMiICsgcGlja2VySW5wdXQuaWQpOwogICAgICAgIHZhciBjb2xvcnMgPSB4LmhpZ2hsaWdodC5jb2xvciB8fCBbXTsKICAgICAgICAvLyBUT0RPOiBsZXQgdXNlcnMgc3BlY2lmeSBvcHRpb25zPwogICAgICAgIHZhciBvcHRzID0gewogICAgICAgICAgdmFsdWU6IGNvbG9yc1swXSwKICAgICAgICAgIHNob3dDb2xvdXI6ICJib3RoIiwKICAgICAgICAgIHBhbGV0dGU6ICJsaW1pdGVkIiwKICAgICAgICAgIGFsbG93ZWRDb2xzOiBjb2xvcnMuam9pbigiICIpLAogICAgICAgICAgd2lkdGg6ICIyMCUiLAogICAgICAgICAgaGVpZ2h0OiAiMTAlIgogICAgICAgIH07CiAgICAgICAgcGlja2VyLmNvbG91cnBpY2tlcih7Y2hhbmdlRGVsYXk6IDB9KTsKICAgICAgICBwaWNrZXIuY29sb3VycGlja2VyKCJzZXR0aW5ncyIsIG9wdHMpOwogICAgICAgIHBpY2tlci5jb2xvdXJwaWNrZXIoInZhbHVlIiwgb3B0cy52YWx1ZSk7CiAgICAgICAgLy8gaW5mb3JtIGNyb3NzdGFsayBhYm91dCBhIGNoYW5nZSBpbiB0aGUgY3VycmVudCBzZWxlY3Rpb24gY29sb3VyCiAgICAgICAgdmFyIGdycHMgPSB4LmhpZ2hsaWdodC5jdEdyb3VwcyB8fCBbXTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdycHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGNyb3NzdGFsay5ncm91cChncnBzW2ldKS52YXIoJ3Bsb3RseVNlbGVjdGlvbkNvbG91cicpCiAgICAgICAgICAgIC5zZXQocGlja2VyLmNvbG91cnBpY2tlcigndmFsdWUnKSk7CiAgICAgICAgfQogICAgICAgIHBpY2tlci5vbigiY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGdycHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgY3Jvc3N0YWxrLmdyb3VwKGdycHNbaV0pLnZhcigncGxvdGx5U2VsZWN0aW9uQ29sb3VyJykKICAgICAgICAgICAgICAuc2V0KHBpY2tlci5jb2xvdXJwaWNrZXIoJ3ZhbHVlJykpOwogICAgICAgICAgfQogICAgICAgIH0pOwogICAgICB9CiAgICB9CiAgICAKICAgIC8vIGlmIG5vIHBsb3QgZXhpc3RzIHlldCwgY3JlYXRlIG9uZSB3aXRoIGEgcGFydGljdWxhciBjb25maWd1cmF0aW9uCiAgICBpZiAoIWluc3RhbmNlLnBsb3RseSkgewogICAgICAKICAgICAgdmFyIHBsb3QgPSBQbG90bHkubmV3UGxvdChncmFwaERpdiwgeCk7CiAgICAgIGluc3RhbmNlLnBsb3RseSA9IHRydWU7CiAgICAgIAogICAgfSBlbHNlIGlmICh4LmxheW91dC50cmFuc2l0aW9uKSB7CiAgICAgIAogICAgICB2YXIgcGxvdCA9IFBsb3RseS5yZWFjdChncmFwaERpdiwgeCk7CiAgICAKICAgIH0gZWxzZSB7CiAgICAgIAogICAgICAvLyB0aGlzIGlzIGVzc2VudGlhbGx5IGVxdWl2YWxlbnQgdG8gUGxvdGx5Lm5ld1Bsb3QoKSwgYnV0IGF2b2lkcyBjcmVhdGluZyAKICAgICAgLy8gYSBuZXcgd2ViZ2wgY29udGV4dAogICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGxvdGx5L3Bsb3RseS5qcy9ibG9iLzJiMjRmOWRlZjkwMTgzMWU2MTI4MjA3NmNmM2Y4MzU1OThkNTZmMGUvc3JjL3Bsb3RfYXBpL3Bsb3RfYXBpLmpzI0w1MzEtTDUzMgoKICAgICAgLy8gVE9ETzogcmVzdG9yZSBjcm9zc3RhbGsgc2VsZWN0aW9ucz8KICAgICAgUGxvdGx5LnB1cmdlKGdyYXBoRGl2KTsKICAgICAgLy8gVE9ETzogd2h5IGlzIHRoaXMgbmVjZXNzYXJ5IHRvIGdldCBjcm9zc3RhbGsgd29ya2luZz8KICAgICAgZ3JhcGhEaXYuZGF0YSA9IHVuZGVmaW5lZDsKICAgICAgZ3JhcGhEaXYubGF5b3V0ID0gdW5kZWZpbmVkOwogICAgICB2YXIgcGxvdCA9IFBsb3RseS5uZXdQbG90KGdyYXBoRGl2LCB4KTsKICAgIH0KICAgIAogICAgLy8gVHJpZ2dlciBwbG90bHkuanMgY2FsbHMgZGVmaW5lZCB2aWEgYHBsb3RseVByb3h5KClgCiAgICBwbG90LnRoZW4oZnVuY3Rpb24oKSB7CiAgICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUpIHsKICAgICAgICBTaGlueS5hZGRDdXN0b21NZXNzYWdlSGFuZGxlcigicGxvdGx5LWNhbGxzIiwgZnVuY3Rpb24obXNnKSB7CiAgICAgICAgICB2YXIgZ2QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChtc2cuaWQpOwogICAgICAgICAgaWYgKCFnZCkgewogICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIkNvdWxkbid0IGZpbmQgcGxvdGx5IGdyYXBoIHdpdGggaWQ6ICIgKyBtc2cuaWQpOwogICAgICAgICAgfQogICAgICAgICAgLy8gVGhpcyBpc24ndCBhbiBvZmZpY2lhbCBwbG90bHkuanMgbWV0aG9kLCBidXQgaXQncyB0aGUgb25seSBjdXJyZW50IHdheSB0byAKICAgICAgICAgIC8vIGNoYW5nZSBqdXN0IHRoZSBjb25maWd1cmF0aW9uIG9mIGEgcGxvdCAKICAgICAgICAgIC8vIGh0dHBzOi8vY29tbXVuaXR5LnBsb3QubHkvdC91cGRhdGUtY29uZmlnLWZ1bmN0aW9uLzkwNTcKICAgICAgICAgIGlmIChtc2cubWV0aG9kID09ICJyZWNvbmZpZyIpIHsKICAgICAgICAgICAgUGxvdGx5LnJlYWN0KGdkLCBnZC5kYXRhLCBnZC5sYXlvdXQsIG1zZy5hcmdzKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgfQogICAgICAgICAgaWYgKCFQbG90bHlbbXNnLm1ldGhvZF0pIHsKICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG1ldGhvZCAiICsgbXNnLm1ldGhvZCk7CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgYXJncyA9IFtnZF0uY29uY2F0KG1zZy5hcmdzKTsKICAgICAgICAgIFBsb3RseVttc2cubWV0aG9kXS5hcHBseShudWxsLCBhcmdzKTsKICAgICAgICB9KTsKICAgICAgfQogICAgICAKICAgICAgLy8gcGxvdGx5J3MgbWFwYm94IEFQSSBkb2Vzbid0IGN1cnJlbnRseSBzdXBwb3J0IHNldHRpbmcgYm91bmRpbmcgYm94ZXMKICAgICAgLy8gaHR0cHM6Ly93d3cubWFwYm94LmNvbS9tYXBib3gtZ2wtanMvZXhhbXBsZS9maXRib3VuZHMvCiAgICAgIC8vIHNvIHdlIGRvIHRoaXMgbWFudWFsbHkuLi4KICAgICAgLy8gVE9ETzogbWFrZSBzdXJlIHRoaXMgdHJpZ2dlcnMgb24gYSByZWRyYXcgYW5kIHJlbGF5b3V0IGFzIHdlbGwgYXMgb24gaW5pdGlhbCBkcmF3CiAgICAgIHZhciBtYXBib3hJRHMgPSBncmFwaERpdi5fZnVsbExheW91dC5fc3VicGxvdHMubWFwYm94IHx8IFtdOwogICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG1hcGJveElEcy5sZW5ndGg7IGkrKykgewogICAgICAgIHZhciBpZCA9IG1hcGJveElEc1tpXTsKICAgICAgICB2YXIgbWFwT3B0cyA9IHgubGF5b3V0W2lkXSB8fCB7fTsKICAgICAgICB2YXIgYXJncyA9IG1hcE9wdHMuX2ZpdEJvdW5kcyB8fCB7fTsKICAgICAgICBpZiAoIWFyZ3MpIHsKICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICB2YXIgbWFwT2JqID0gZ3JhcGhEaXYuX2Z1bGxMYXlvdXRbaWRdLl9zdWJwbG90Lm1hcDsKICAgICAgICBtYXBPYmouZml0Qm91bmRzKGFyZ3MuYm91bmRzLCBhcmdzLm9wdGlvbnMpOwogICAgICB9CiAgICAgIAogICAgfSk7CiAgICAKICAgIC8vIEF0dGFjaCBhdHRyaWJ1dGVzIChlLmcuLCAia2V5IiwgInoiKSB0byBwbG90bHkgZXZlbnQgZGF0YQogICAgZnVuY3Rpb24gZXZlbnREYXRhV2l0aEtleShldmVudERhdGEpIHsKICAgICAgaWYgKGV2ZW50RGF0YSA9PT0gdW5kZWZpbmVkIHx8ICFldmVudERhdGEuaGFzT3duUHJvcGVydHkoInBvaW50cyIpKSB7CiAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgIH0KICAgICAgcmV0dXJuIGV2ZW50RGF0YS5wb2ludHMubWFwKGZ1bmN0aW9uKHB0KSB7CiAgICAgICAgdmFyIG9iaiA9IHsKICAgICAgICAgIGN1cnZlTnVtYmVyOiBwdC5jdXJ2ZU51bWJlciwgCiAgICAgICAgICBwb2ludE51bWJlcjogcHQucG9pbnROdW1iZXIsIAogICAgICAgICAgeDogcHQueCwKICAgICAgICAgIHk6IHB0LnkKICAgICAgICB9OwogICAgICAgIAogICAgICAgIC8vIElmICd6JyBpcyByZXBvcnRlZCB3aXRoIHRoZSBldmVudCBkYXRhLCB0aGVuIHVzZSBpdCEKICAgICAgICBpZiAocHQuaGFzT3duUHJvcGVydHkoInoiKSkgewogICAgICAgICAgb2JqLnogPSBwdC56OwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZiAocHQuaGFzT3duUHJvcGVydHkoImN1c3RvbWRhdGEiKSkgewogICAgICAgICAgb2JqLmN1c3RvbWRhdGEgPSBwdC5jdXN0b21kYXRhOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvKiAKICAgICAgICAgIFRMO0RSOiAoSSB0aGluaykgd2UgaGF2ZSB0byBzZWxlY3QgdGhlIGdyYXBoIGRpdiAoYWdhaW4pIHRvIGF0dGFjaCBrZXlzLi4uCiAgICAgICAgICAKICAgICAgICAgIFdoeT8gUmVtZW1iZXIgdGhhdCBjcm9zc3RhbGsgd2lsbCBkeW5hbWljYWxseSBhZGQvZGVsZXRlIHRyYWNlcyAKICAgICAgICAgIChzZWUgdHJhY2VNYW5hZ2VyLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb24oKSBiZWxvdykKICAgICAgICAgIEZvciB0aGlzIHJlYXNvbiwgd2UgY2FuJ3Qgc2ltcGx5IGdyYWIga2V5cyBmcm9tIHguZGF0YSAobGlrZSB3ZSBkaWQgcHJldmlvdXNseSkKICAgICAgICAgIE1vcmVvdmVyLCB3ZSBjYW4ndCB1c2UgX2Z1bGxEYXRhLCBzaW5jZSB0aGF0IGRvZXNuJ3QgaW5jbHVkZSAKICAgICAgICAgIHVub2ZmaWNpYWwgYXR0cmlidXRlcy4gSXQncyB0cnVlIHRoYXQgY2xpY2svaG92ZXIgZXZlbnRzIGZpcmUgd2l0aCAKICAgICAgICAgIHB0LmRhdGEsIGJ1dCBkcmFnIGV2ZW50cyBkb24ndC4uLgogICAgICAgICovCiAgICAgICAgdmFyIGdkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWwuaWQpOwogICAgICAgIHZhciB0cmFjZSA9IGdkLmRhdGFbcHQuY3VydmVOdW1iZXJdOwogICAgICAgIAogICAgICAgIGlmICghdHJhY2UuX2lzU2ltcGxlS2V5KSB7CiAgICAgICAgICB2YXIgYXR0cnNUb0F0dGFjaCA9IFsia2V5Il07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIC8vIHNpbXBsZSBrZXlzIGZpcmUgdGhlIHdob2xlIGtleQogICAgICAgICAgb2JqLmtleSA9IHRyYWNlLmtleTsKICAgICAgICAgIHZhciBhdHRyc1RvQXR0YWNoID0gW107CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXR0cnNUb0F0dGFjaC5sZW5ndGg7IGkrKykgewogICAgICAgICAgdmFyIGF0dHIgPSB0cmFjZVthdHRyc1RvQXR0YWNoW2ldXTsKICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGF0dHIpKSB7CiAgICAgICAgICAgIGlmICh0eXBlb2YgcHQucG9pbnROdW1iZXIgPT09ICJudW1iZXIiKSB7CiAgICAgICAgICAgICAgb2JqW2F0dHJzVG9BdHRhY2hbaV1dID0gYXR0cltwdC5wb2ludE51bWJlcl07CiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwdC5wb2ludE51bWJlcikpIHsKICAgICAgICAgICAgICBvYmpbYXR0cnNUb0F0dGFjaFtpXV0gPSBhdHRyW3B0LnBvaW50TnVtYmVyWzBdXVtwdC5wb2ludE51bWJlclsxXV07CiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShwdC5wb2ludE51bWJlcnMpKSB7CiAgICAgICAgICAgICAgb2JqW2F0dHJzVG9BdHRhY2hbaV1dID0gcHQucG9pbnROdW1iZXJzLm1hcChmdW5jdGlvbihpZHgpIHsgcmV0dXJuIGF0dHJbaWR4XTsgfSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIG9iajsKICAgICAgfSk7CiAgICB9CiAgICAKICAgIAogICAgdmFyIGxlZ2VuZEV2ZW50RGF0YSA9IGZ1bmN0aW9uKGQpIHsKICAgICAgLy8gaWYgbGVnZW5kZ3JvdXAgaXMgbm90IHJlbGV2YW50IGp1c3QgcmV0dXJuIHRoZSB0cmFjZQogICAgICB2YXIgdHJhY2UgPSBkLmRhdGFbZC5jdXJ2ZU51bWJlcl07CiAgICAgIGlmICghdHJhY2UubGVnZW5kZ3JvdXApIHJldHVybiB0cmFjZTsKICAgICAgCiAgICAgIC8vIGlmIGxlZ2VuZGdyb3VwIHdhcyBzcGVjaWZpZWQsIHJldHVybiBhbGwgdHJhY2VzIHRoYXQgbWF0Y2ggdGhlIGdyb3VwCiAgICAgIHZhciBsZWdlbmRncnBzID0gZC5kYXRhLm1hcChmdW5jdGlvbih0cmFjZSl7IHJldHVybiB0cmFjZS5sZWdlbmRncm91cDsgfSk7CiAgICAgIHZhciB0cmFjZXMgPSBbXTsKICAgICAgZm9yIChpID0gMDsgaSA8IGxlZ2VuZGdycHMubGVuZ3RoOyBpKyspIHsKICAgICAgICBpZiAobGVnZW5kZ3Jwc1tpXSA9PSB0cmFjZS5sZWdlbmRncm91cCkgewogICAgICAgICAgdHJhY2VzLnB1c2goZC5kYXRhW2ldKTsKICAgICAgICB9CiAgICAgIH0KICAgICAgCiAgICAgIHJldHVybiB0cmFjZXM7CiAgICB9OwoKICAgIAogICAgLy8gc2VuZCB1c2VyIGlucHV0IGV2ZW50IGRhdGEgdG8gc2hpbnkKICAgIGlmIChIVE1MV2lkZ2V0cy5zaGlueU1vZGUgJiYgU2hpbnkuc2V0SW5wdXRWYWx1ZSkgewogICAgICAKICAgICAgLy8gU29tZSBldmVudHMgY2xlYXIgb3RoZXIgaW5wdXQgdmFsdWVzCiAgICAgIC8vIFRPRE86IGFsd2F5cyByZWdpc3RlciB0aGVzZT8KICAgICAgdmFyIGV2ZW50Q2xlYXJNYXAgPSB7CiAgICAgICAgcGxvdGx5X2Rlc2VsZWN0OiBbInBsb3RseV9zZWxlY3RlZCIsICJwbG90bHlfc2VsZWN0aW5nIiwgInBsb3RseV9icnVzaGVkIiwgInBsb3RseV9icnVzaGluZyIsICJwbG90bHlfY2xpY2siXSwKICAgICAgICBwbG90bHlfdW5ob3ZlcjogWyJwbG90bHlfaG92ZXIiXSwKICAgICAgICBwbG90bHlfZG91YmxlY2xpY2s6IFsicGxvdGx5X2NsaWNrIl0KICAgICAgfTsKICAgIAogICAgICBPYmplY3Qua2V5cyhldmVudENsZWFyTWFwKS5tYXAoZnVuY3Rpb24oZXZ0KSB7CiAgICAgICAgZ3JhcGhEaXYub24oZXZ0LCBmdW5jdGlvbigpIHsKICAgICAgICAgIHZhciBpbnB1dHNUb0NsZWFyID0gZXZlbnRDbGVhck1hcFtldnRdOwogICAgICAgICAgaW5wdXRzVG9DbGVhci5tYXAoZnVuY3Rpb24oaW5wdXQpIHsKICAgICAgICAgICAgU2hpbnkuc2V0SW5wdXRWYWx1ZShpbnB1dCArICItIiArIHguc291cmNlLCBudWxsLCB7cHJpb3JpdHk6ICJldmVudCJ9KTsKICAgICAgICAgIH0pOwogICAgICAgIH0pOwogICAgICB9KTsKICAgICAgCiAgICAgIHZhciBldmVudERhdGFGdW5jdGlvbk1hcCA9IHsKICAgICAgICBwbG90bHlfY2xpY2s6IGV2ZW50RGF0YVdpdGhLZXksCiAgICAgICAgcGxvdGx5X3N1bmJ1cnN0Y2xpY2s6IGV2ZW50RGF0YVdpdGhLZXksCiAgICAgICAgcGxvdGx5X2hvdmVyOiBldmVudERhdGFXaXRoS2V5LAogICAgICAgIHBsb3RseV91bmhvdmVyOiBldmVudERhdGFXaXRoS2V5LAogICAgICAgIC8vIElmICdwbG90bHlfc2VsZWN0ZWQnIGhhcyBhbHJlYWR5IGJlZW4gZmlyZWQsIGFuZCB5b3UgY2xpY2sKICAgICAgICAvLyBvbiB0aGUgcGxvdCBhZnRlcndhcmRzLCB0aGlzIGV2ZW50IGZpcmVzIGB1bmRlZmluZWRgPyE/CiAgICAgICAgLy8gVGhhdCBtaWdodCBiZSBjb25zaWRlcmVkIGEgcGxvdGx5LmpzIGJ1ZywgYnV0IGl0IGRvZXNuJ3QgbWFrZSAKICAgICAgICAvLyBzZW5zZSBmb3IgdGhpcyBpbnB1dCBjaGFuZ2UgdG8gb2NjdXIgaWYgYGRgIGlzIGZhbHN5IGJlY2F1c2UsCiAgICAgICAgLy8gZXZlbiBpbiB0aGUgZW1wdHkgc2VsZWN0aW9uIGNhc2UsIGBkYCBpcyB0cnV0aHkgKGFuIG9iamVjdCksCiAgICAgICAgLy8gYW5kIHRoZSAncGxvdGx5X2Rlc2VsZWN0JyBldmVudCB3aWxsIHJlc2V0IHRoaXMgaW5wdXQKICAgICAgICBwbG90bHlfc2VsZWN0ZWQ6IGZ1bmN0aW9uKGQpIHsgaWYgKGQpIHsgcmV0dXJuIGV2ZW50RGF0YVdpdGhLZXkoZCk7IH0gfSwKICAgICAgICBwbG90bHlfc2VsZWN0aW5nOiBmdW5jdGlvbihkKSB7IGlmIChkKSB7IHJldHVybiBldmVudERhdGFXaXRoS2V5KGQpOyB9IH0sCiAgICAgICAgcGxvdGx5X2JydXNoZWQ6IGZ1bmN0aW9uKGQpIHsKICAgICAgICAgIGlmIChkKSB7IHJldHVybiBkLnJhbmdlID8gZC5yYW5nZSA6IGQubGFzc29Qb2ludHM7IH0KICAgICAgICB9LAogICAgICAgIHBsb3RseV9icnVzaGluZzogZnVuY3Rpb24oZCkgewogICAgICAgICAgaWYgKGQpIHsgcmV0dXJuIGQucmFuZ2UgPyBkLnJhbmdlIDogZC5sYXNzb1BvaW50czsgfQogICAgICAgIH0sCiAgICAgICAgcGxvdGx5X2xlZ2VuZGNsaWNrOiBsZWdlbmRFdmVudERhdGEsCiAgICAgICAgcGxvdGx5X2xlZ2VuZGRvdWJsZWNsaWNrOiBsZWdlbmRFdmVudERhdGEsCiAgICAgICAgcGxvdGx5X2NsaWNrYW5ub3RhdGlvbjogZnVuY3Rpb24oZCkgeyByZXR1cm4gZC5mdWxsQW5ub3RhdGlvbiB9CiAgICAgIH07CiAgICAgIAogICAgICB2YXIgcmVnaXN0ZXJTaGlueVZhbHVlID0gZnVuY3Rpb24oZXZlbnQpIHsKICAgICAgICB2YXIgZXZlbnREYXRhUHJlUHJvY2Vzc29yID0gZXZlbnREYXRhRnVuY3Rpb25NYXBbZXZlbnRdIHx8IGZ1bmN0aW9uKGQpIHsgcmV0dXJuIGQgPyBkIDogZWwuaWQgfTsKICAgICAgICAvLyBzb21lIGV2ZW50cyBhcmUgdW5pcXVlIHRvIHRoZSBSIHBhY2thZ2UKICAgICAgICB2YXIgcGxvdGx5SlNldmVudCA9IChldmVudCA9PSAicGxvdGx5X2JydXNoZWQiKSA/ICJwbG90bHlfc2VsZWN0ZWQiIDogKGV2ZW50ID09ICJwbG90bHlfYnJ1c2hpbmciKSA/ICJwbG90bHlfc2VsZWN0aW5nIiA6IGV2ZW50OwogICAgICAgIC8vIHJlZ2lzdGVyIHRoZSBldmVudAogICAgICAgIGdyYXBoRGl2Lm9uKHBsb3RseUpTZXZlbnQsIGZ1bmN0aW9uKGQpIHsKICAgICAgICAgIFNoaW55LnNldElucHV0VmFsdWUoCiAgICAgICAgICAgIGV2ZW50ICsgIi0iICsgeC5zb3VyY2UsCiAgICAgICAgICAgIEpTT04uc3RyaW5naWZ5KGV2ZW50RGF0YVByZVByb2Nlc3NvcihkKSksCiAgICAgICAgICAgIHtwcmlvcml0eTogImV2ZW50In0KICAgICAgICAgICk7CiAgICAgICAgfSk7CiAgICAgIH0KICAgIAogICAgICB2YXIgc2hpbnlFdmVudHMgPSB4LnNoaW55RXZlbnRzIHx8IFtdOwogICAgICBzaGlueUV2ZW50cy5tYXAocmVnaXN0ZXJTaGlueVZhbHVlKTsKICAgIH0KICAgIAogICAgLy8gR2l2ZW4gYW4gYXJyYXkgb2Yge2N1cnZlTnVtYmVyOiB4LCBwb2ludE51bWJlcjogeX0gb2JqZWN0cywKICAgIC8vIHJldHVybiBhIGhhc2ggb2YgewogICAgLy8gICBzZXQxOiB7dmFsdWU6IFtrZXkxLCBrZXkyLCAuLi5dLCBfaXNTaW1wbGVLZXk6IGZhbHNlfSwgCiAgICAvLyAgIHNldDI6IHt2YWx1ZTogW2tleTMsIGtleTQsIC4uLl0sIF9pc1NpbXBsZUtleTogZmFsc2V9CiAgICAvLyB9CiAgICBmdW5jdGlvbiBwb2ludHNUb0tleXMocG9pbnRzKSB7CiAgICAgIHZhciBrZXlzQnlTZXQgPSB7fTsKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwb2ludHMubGVuZ3RoOyBpKyspIHsKICAgICAgICAKICAgICAgICB2YXIgdHJhY2UgPSBncmFwaERpdi5kYXRhW3BvaW50c1tpXS5jdXJ2ZU51bWJlcl07CiAgICAgICAgaWYgKCF0cmFjZS5rZXkgfHwgIXRyYWNlLnNldCkgewogICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIHNldCBkZWZhdWx0cyBmb3IgdGhpcyBrZXlTZXQKICAgICAgICAvLyBub3RlIHRoYXQgd2UgZG9uJ3QgdHJhY2sgdGhlIG5lc3RlZCBwcm9wZXJ0eSAoeWV0KSBzaW5jZSB3ZSBhbHdheXMgCiAgICAgICAgLy8gZW1pdCB0aGUgdW5pb24gLS0gaHR0cDovL2Nwc2lldmVydC5naXRodWIuaW8vdGFsa3MvMjAxNjEyMTJiLyMyMQogICAgICAgIGtleXNCeVNldFt0cmFjZS5zZXRdID0ga2V5c0J5U2V0W3RyYWNlLnNldF0gfHwgewogICAgICAgICAgdmFsdWU6IFtdLAogICAgICAgICAgX2lzU2ltcGxlS2V5OiB0cmFjZS5faXNTaW1wbGVLZXkKICAgICAgICB9OwogICAgICAgIAogICAgICAgIC8vIFVzZSBwb2ludE51bWJlciBieSBkZWZhdWx0LCBidXQgYWdncmVnYXRlZCB0cmFjZXMgc2hvdWxkIGVtaXQgcG9pbnROdW1iZXJzCiAgICAgICAgdmFyIHB0TnVtID0gcG9pbnRzW2ldLnBvaW50TnVtYmVyOwogICAgICAgIHZhciBoYXNQdE51bSA9IHR5cGVvZiBwdE51bSA9PT0gIm51bWJlciI7CiAgICAgICAgdmFyIHB0TnVtID0gaGFzUHROdW0gPyBwdE51bSA6IHBvaW50c1tpXS5wb2ludE51bWJlcnM7CiAgICAgICAgCiAgICAgICAgLy8gc2VsZWN0aW5nIGEgcG9pbnQgb2YgYSAic2ltcGxlIiB0cmFjZSBtZWFuczogc2VsZWN0IHRoZSAKICAgICAgICAvLyBlbnRpcmUga2V5IGF0dGFjaGVkIHRvIHRoaXMgdHJhY2UsIHdoaWNoIGlzIHVzZWZ1bCBmb3IsCiAgICAgICAgLy8gc2F5IGNsaWNraW5nIG9uIGEgZml0dGVkIGxpbmUgdG8gc2VsZWN0IGNvcnJlc3BvbmRpbmcgb2JzZXJ2YXRpb25zIAogICAgICAgIHZhciBrZXkgPSB0cmFjZS5faXNTaW1wbGVLZXkgPyB0cmFjZS5rZXkgOiBBcnJheS5pc0FycmF5KHB0TnVtKSA/IHB0TnVtLm1hcChmdW5jdGlvbihpZHgpIHsgcmV0dXJuIHRyYWNlLmtleVtpZHhdOyB9KSA6IHRyYWNlLmtleVtwdE51bV07CiAgICAgICAgLy8gaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMDg2NTAyNS9tZXJnZS1mbGF0dGVuLWFuLWFycmF5LW9mLWFycmF5cy1pbi1qYXZhc2NyaXB0CiAgICAgICAgdmFyIGtleUZsYXQgPSB0cmFjZS5faXNOZXN0ZWRLZXkgPyBbXS5jb25jYXQuYXBwbHkoW10sIGtleSkgOiBrZXk7CiAgICAgICAgCiAgICAgICAgLy8gVE9ETzogYmV0dGVyIHRvIG9ubHkgYWRkIG5ldyB2YWx1ZXM/CiAgICAgICAga2V5c0J5U2V0W3RyYWNlLnNldF0udmFsdWUgPSBrZXlzQnlTZXRbdHJhY2Uuc2V0XS52YWx1ZS5jb25jYXQoa2V5RmxhdCk7CiAgICAgIH0KICAgICAgCiAgICAgIHJldHVybiBrZXlzQnlTZXQ7CiAgICB9CiAgICAKICAgIAogICAgeC5oaWdobGlnaHQuY29sb3IgPSB4LmhpZ2hsaWdodC5jb2xvciB8fCBbXTsKICAgIC8vIG1ha2Ugc3VyZSBoaWdobGlnaHQgY29sb3IgaXMgYW4gYXJyYXkKICAgIGlmICghQXJyYXkuaXNBcnJheSh4LmhpZ2hsaWdodC5jb2xvcikpIHsKICAgICAgeC5oaWdobGlnaHQuY29sb3IgPSBbeC5oaWdobGlnaHQuY29sb3JdOwogICAgfQoKICAgIHZhciB0cmFjZU1hbmFnZXIgPSBuZXcgVHJhY2VNYW5hZ2VyKGdyYXBoRGl2LCB4LmhpZ2hsaWdodCk7CgogICAgLy8gR2F0aGVyIGFsbCAqdW5pcXVlKiBzZXRzLgogICAgdmFyIGFsbFNldHMgPSBbXTsKICAgIGZvciAodmFyIGN1cnZlSWR4ID0gMDsgY3VydmVJZHggPCB4LmRhdGEubGVuZ3RoOyBjdXJ2ZUlkeCsrKSB7CiAgICAgIHZhciBuZXdTZXQgPSB4LmRhdGFbY3VydmVJZHhdLnNldDsKICAgICAgaWYgKG5ld1NldCkgewogICAgICAgIGlmIChhbGxTZXRzLmluZGV4T2YobmV3U2V0KSA9PT0gLTEpIHsKICAgICAgICAgIGFsbFNldHMucHVzaChuZXdTZXQpOwogICAgICAgIH0KICAgICAgfQogICAgfQoKICAgIC8vIHJlZ2lzdGVyIGV2ZW50IGxpc3RlbmVycyBmb3IgYWxsIHNldHMKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWxsU2V0cy5sZW5ndGg7IGkrKykgewogICAgICAKICAgICAgdmFyIHNldCA9IGFsbFNldHNbaV07CiAgICAgIHZhciBzZWxlY3Rpb24gPSBuZXcgY3Jvc3N0YWxrLlNlbGVjdGlvbkhhbmRsZShzZXQpOwogICAgICB2YXIgZmlsdGVyID0gbmV3IGNyb3NzdGFsay5GaWx0ZXJIYW5kbGUoc2V0KTsKICAgICAgCiAgICAgIHZhciBmaWx0ZXJDaGFuZ2UgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgcmVtb3ZlQnJ1c2goZWwpOwogICAgICAgIHRyYWNlTWFuYWdlci51cGRhdGVGaWx0ZXIoc2V0LCBlLnZhbHVlKTsKICAgICAgfTsKICAgICAgZmlsdGVyLm9uKCJjaGFuZ2UiLCBmaWx0ZXJDaGFuZ2UpOwogICAgICAKICAgICAgCiAgICAgIHZhciBzZWxlY3Rpb25DaGFuZ2UgPSBmdW5jdGlvbihlKSB7CiAgICAgICAgCiAgICAgICAgLy8gV29ya2Fyb3VuZCBmb3IgJ3Bsb3RseV9zZWxlY3RlZCcgbm93IGZpcmluZyBwcmV2aW91c2x5IHNlbGVjdGVkCiAgICAgICAgLy8gcG9pbnRzIChpbiBhZGRpdGlvbiB0byBuZXcgb25lcykgd2hlbiBob2xkaW5nIHNoaWZ0IGtleS4gSW4gb3VyIGNhc2UsCiAgICAgICAgLy8gd2UganVzdCB3YW50IHRoZSBuZXcga2V5cyAKICAgICAgICBpZiAoeC5oaWdobGlnaHQub24gPT09ICJwbG90bHlfc2VsZWN0ZWQiICYmIHguaGlnaGxpZ2h0LnBlcnNpc3RlbnRTaGlmdCkgewogICAgICAgICAgLy8gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMTE4NzUxOC9ob3ctdG8tZ2V0LXRoZS1kaWZmZXJlbmNlLWJldHdlZW4tdHdvLWFycmF5cy1pbi1qYXZhc2NyaXB0CiAgICAgICAgICBBcnJheS5wcm90b3R5cGUuZGlmZiA9IGZ1bmN0aW9uKGEpIHsKICAgICAgICAgICAgICByZXR1cm4gdGhpcy5maWx0ZXIoZnVuY3Rpb24oaSkge3JldHVybiBhLmluZGV4T2YoaSkgPCAwO30pOwogICAgICAgICAgfTsKICAgICAgICAgIGUudmFsdWUgPSBlLnZhbHVlLmRpZmYoZS5vbGRWYWx1ZSk7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vIGFycmF5IG9mICJldmVudCBvYmplY3RzIiB0cmFja2luZyB0aGUgc2VsZWN0aW9uIGhpc3RvcnkKICAgICAgICAvLyB0aGlzIGlzIHVzZWQgdG8gYXZvaWQgYWRkaW5nIHJlZHVuZGFudCBzZWxlY3Rpb25zCiAgICAgICAgdmFyIHNlbGVjdGlvbkhpc3RvcnkgPSBjcm9zc3RhbGsudmFyKCJwbG90bHlTZWxlY3Rpb25IaXN0b3J5IikuZ2V0KCkgfHwgW107CiAgICAgICAgCiAgICAgICAgLy8gQ29uc3RydWN0IGFuIGV2ZW50IG9iamVjdCAiZGVmaW5pbmciIHRoZSBjdXJyZW50IGV2ZW50LiAKICAgICAgICB2YXIgZXZlbnQgPSB7CiAgICAgICAgICByZWNlaXZlcklEOiB0cmFjZU1hbmFnZXIuZ2QuaWQsCiAgICAgICAgICBwbG90bHlTZWxlY3Rpb25Db2xvdXI6IGNyb3NzdGFsay5ncm91cChzZXQpLnZhcigicGxvdGx5U2VsZWN0aW9uQ29sb3VyIikuZ2V0KCkKICAgICAgICB9OwogICAgICAgIGV2ZW50W3NldF0gPSBlLnZhbHVlOwogICAgICAgIC8vIFRPRE86IGlzIHRoZXJlIGEgc21hcnRlciB3YXkgdG8gY2hlY2sgb2JqZWN0IGVxdWFsaXR5PwogICAgICAgIGlmIChzZWxlY3Rpb25IaXN0b3J5Lmxlbmd0aCA+IDApIHsKICAgICAgICAgIHZhciBldiA9IEpTT04uc3RyaW5naWZ5KGV2ZW50KTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2VsZWN0aW9uSGlzdG9yeS5sZW5ndGg7IGkrKykgewogICAgICAgICAgICB2YXIgc2VsID0gSlNPTi5zdHJpbmdpZnkoc2VsZWN0aW9uSGlzdG9yeVtpXSk7CiAgICAgICAgICAgIGlmIChzZWwgPT0gZXYpIHsKICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8gYWNjdW11bGF0ZSBoaXN0b3J5IGZvciBwZXJzaXN0ZW50IHNlbGVjdGlvbgogICAgICAgIGlmICgheC5oaWdobGlnaHQucGVyc2lzdGVudCkgewogICAgICAgICAgc2VsZWN0aW9uSGlzdG9yeSA9IFtldmVudF07CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIHNlbGVjdGlvbkhpc3RvcnkucHVzaChldmVudCk7CiAgICAgICAgfQogICAgICAgIGNyb3NzdGFsay52YXIoInBsb3RseVNlbGVjdGlvbkhpc3RvcnkiKS5zZXQoc2VsZWN0aW9uSGlzdG9yeSk7CiAgICAgICAgCiAgICAgICAgLy8gZG8gdGhlIGFjdHVhbCB1cGRhdGluZyBvZiB0cmFjZXMsIGZyYW1lcywgYW5kIHRoZSBzZWxlY3RpemUgd2lkZ2V0CiAgICAgICAgdHJhY2VNYW5hZ2VyLnVwZGF0ZVNlbGVjdGlvbihzZXQsIGUudmFsdWUpOwogICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9zZWxlY3RpemUvc2VsZWN0aXplLmpzL2Jsb2IvbWFzdGVyL2RvY3MvYXBpLm1kI21ldGhvZHNfaXRlbXMKICAgICAgICBpZiAoeC5zZWxlY3RpemUpIHsKICAgICAgICAgIGlmICgheC5oaWdobGlnaHQucGVyc2lzdGVudCB8fCBlLnZhbHVlID09PSBudWxsKSB7CiAgICAgICAgICAgIHNlbGVjdGl6ZS5jbGVhcih0cnVlKTsKICAgICAgICAgIH0KICAgICAgICAgIHNlbGVjdGl6ZS5hZGRJdGVtcyhlLnZhbHVlLCB0cnVlKTsKICAgICAgICAgIHNlbGVjdGl6ZS5jbG9zZSgpOwogICAgICAgIH0KICAgICAgfQogICAgICBzZWxlY3Rpb24ub24oImNoYW5nZSIsIHNlbGVjdGlvbkNoYW5nZSk7CiAgICAgIAogICAgICAvLyBTZXQgYSBjcm9zc3RhbGsgdmFyaWFibGUgc2VsZWN0aW9uIHZhbHVlLCB0cmlnZ2VyaW5nIGFuIHVwZGF0ZQogICAgICB2YXIgdHVybk9uID0gZnVuY3Rpb24oZSkgewogICAgICAgIGlmIChlKSB7CiAgICAgICAgICB2YXIgc2VsZWN0ZWRLZXlzID0gcG9pbnRzVG9LZXlzKGUucG9pbnRzKTsKICAgICAgICAgIC8vIEtleXMgYXJlIGdyb3VwIG5hbWVzLCB2YWx1ZXMgYXJlIGFycmF5IG9mIHNlbGVjdGVkIGtleXMgZnJvbSBncm91cC4KICAgICAgICAgIGZvciAodmFyIHNldCBpbiBzZWxlY3RlZEtleXMpIHsKICAgICAgICAgICAgaWYgKHNlbGVjdGVkS2V5cy5oYXNPd25Qcm9wZXJ0eShzZXQpKSB7CiAgICAgICAgICAgICAgc2VsZWN0aW9uLnNldChzZWxlY3RlZEtleXNbc2V0XS52YWx1ZSwge3NlbmRlcjogZWx9KTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfTsKICAgICAgaWYgKHguaGlnaGxpZ2h0LmRlYm91bmNlID4gMCkgewogICAgICAgIHR1cm5PbiA9IGRlYm91bmNlKHR1cm5PbiwgeC5oaWdobGlnaHQuZGVib3VuY2UpOwogICAgICB9CiAgICAgIGdyYXBoRGl2Lm9uKHguaGlnaGxpZ2h0Lm9uLCB0dXJuT24pOwogICAgICAKICAgICAgZ3JhcGhEaXYub24oeC5oaWdobGlnaHQub2ZmLCBmdW5jdGlvbiB0dXJuT2ZmKGUpIHsKICAgICAgICAvLyByZW1vdmUgYW55IHZpc3VhbCBjbHVlcwogICAgICAgIHJlbW92ZUJydXNoKGVsKTsKICAgICAgICAvLyByZW1vdmUgYW55IHNlbGVjdGlvbiBoaXN0b3J5CiAgICAgICAgY3Jvc3N0YWxrLnZhcigicGxvdGx5U2VsZWN0aW9uSGlzdG9yeSIpLnNldChudWxsKTsKICAgICAgICAvLyB0cmlnZ2VyIHRoZSBhY3R1YWwgcmVtb3ZhbCBvZiBzZWxlY3Rpb24gdHJhY2VzCiAgICAgICAgc2VsZWN0aW9uLnNldChudWxsLCB7c2VuZGVyOiBlbH0pOwogICAgICB9KTsKICAgICAgICAgIAogICAgICAvLyByZWdpc3RlciBhIGNhbGxiYWNrIGZvciBzZWxlY3RpemUgc28gdGhhdCB0aGVyZSBpcyBiaS1kaXJlY3Rpb25hbAogICAgICAvLyBjb21tdW5pY2F0aW9uIGJldHdlZW4gdGhlIHdpZGdldCBhbmQgZGlyZWN0IG1hbmlwdWxhdGlvbiBldmVudHMKICAgICAgaWYgKHguc2VsZWN0aXplKSB7CiAgICAgICAgdmFyIHNlbGVjdGl6ZUlEID0gT2JqZWN0LmtleXMoeC5zZWxlY3RpemUpW2ldOwogICAgICAgIHZhciBpdGVtcyA9IHguc2VsZWN0aXplW3NlbGVjdGl6ZUlEXS5pdGVtczsKICAgICAgICB2YXIgZmlyc3QgPSBbe3ZhbHVlOiAiIiwgbGFiZWw6ICIoQWxsKSJ9XTsKICAgICAgICB2YXIgb3B0cyA9IHsKICAgICAgICAgIG9wdGlvbnM6IGZpcnN0LmNvbmNhdChpdGVtcyksCiAgICAgICAgICBzZWFyY2hGaWVsZDogImxhYmVsIiwKICAgICAgICAgIHZhbHVlRmllbGQ6ICJ2YWx1ZSIsCiAgICAgICAgICBsYWJlbEZpZWxkOiAibGFiZWwiLAogICAgICAgICAgbWF4SXRlbXM6IDUwCiAgICAgICAgfTsKICAgICAgICB2YXIgc2VsZWN0ID0gJCgiIyIgKyBzZWxlY3RpemVJRCkuZmluZCgic2VsZWN0IilbMF07CiAgICAgICAgdmFyIHNlbGVjdGl6ZSA9ICQoc2VsZWN0KS5zZWxlY3RpemUob3B0cylbMF0uc2VsZWN0aXplOwogICAgICAgIC8vIE5PVEU6IHRoaXMgY2FsbGJhY2sgaXMgdHJpZ2dlcmVkIHdoZW4gKmRpcmVjdGx5KiBhbHRlcmluZyAKICAgICAgICAvLyBkcm9wZG93biBpdGVtcwogICAgICAgIHNlbGVjdGl6ZS5vbigiY2hhbmdlIiwgZnVuY3Rpb24oKSB7CiAgICAgICAgICB2YXIgY3VycmVudEl0ZW1zID0gdHJhY2VNYW5hZ2VyLmdyb3VwU2VsZWN0aW9uc1tzZXRdIHx8IFtdOwogICAgICAgICAgaWYgKCF4LmhpZ2hsaWdodC5wZXJzaXN0ZW50KSB7CiAgICAgICAgICAgIHJlbW92ZUJydXNoKGVsKTsKICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjdXJyZW50SXRlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICBzZWxlY3RpemUucmVtb3ZlSXRlbShjdXJyZW50SXRlbXNbaV0sIHRydWUpOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgICB2YXIgbmV3SXRlbXMgPSBzZWxlY3RpemUuaXRlbXMuZmlsdGVyKGZ1bmN0aW9uKGlkeCkgeyAKICAgICAgICAgICAgcmV0dXJuIGN1cnJlbnRJdGVtcy5pbmRleE9mKGlkeCkgPCAwOwogICAgICAgICAgfSk7CiAgICAgICAgICBpZiAobmV3SXRlbXMubGVuZ3RoID4gMCkgewogICAgICAgICAgICB0cmFjZU1hbmFnZXIudXBkYXRlU2VsZWN0aW9uKHNldCwgbmV3SXRlbXMpOwogICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gSXRlbSBoYXMgYmVlbiByZW1vdmVkLi4uCiAgICAgICAgICAgIC8vIFRPRE86IHRoaXMgbG9naWMgd29uJ3Qgd29yayBmb3IgZHluYW1pY2FsbHkgY2hhbmdpbmcgcGFsZXR0ZSAKICAgICAgICAgICAgdHJhY2VNYW5hZ2VyLnVwZGF0ZVNlbGVjdGlvbihzZXQsIG51bGwpOwogICAgICAgICAgICB0cmFjZU1hbmFnZXIudXBkYXRlU2VsZWN0aW9uKHNldCwgc2VsZWN0aXplLml0ZW1zKTsKICAgICAgICAgIH0KICAgICAgICB9KTsKICAgICAgfQogICAgfSAvLyBlbmQgb2Ygc2VsZWN0aW9uQ2hhbmdlCiAgICAKICB9IC8vIGVuZCBvZiByZW5kZXJWYWx1ZQp9KTsgLy8gZW5kIG9mIHdpZGdldCBkZWZpbml0aW9uCgovKioKICogQHBhcmFtIGdyYXBoRGl2IFRoZSBQbG90bHkgZ3JhcGggZGl2CiAqIEBwYXJhbSBoaWdobGlnaHQgQW4gb2JqZWN0IHdpdGggb3B0aW9ucyBmb3IgdXBkYXRpbmcgc2VsZWN0aW9uKHMpCiAqLwpmdW5jdGlvbiBUcmFjZU1hbmFnZXIoZ3JhcGhEaXYsIGhpZ2hsaWdodCkgewogIC8vIFRoZSBQbG90bHkgZ3JhcGggZGl2CiAgdGhpcy5nZCA9IGdyYXBoRGl2OwoKICAvLyBQcmVzZXJ2ZSB0aGUgb3JpZ2luYWwgZGF0YS4KICAvLyBUT0RPOiB0cnkgdXNpbmcgTGliLmV4dGVuZEZsYXQoKSBhcyBkb25lIGluICAKICAvLyBodHRwczovL2dpdGh1Yi5jb20vcGxvdGx5L3Bsb3RseS5qcy9wdWxsLzExMzYgCiAgdGhpcy5vcmlnRGF0YSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZ3JhcGhEaXYuZGF0YSkpOwogIAogIC8vIGF2b2lkIGRvaW5nIHRoaXMgb3ZlciBhbmQgb3ZlcgogIHRoaXMub3JpZ09wYWNpdHkgPSBbXTsKICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3JpZ0RhdGEubGVuZ3RoOyBpKyspIHsKICAgIHRoaXMub3JpZ09wYWNpdHlbaV0gPSB0aGlzLm9yaWdEYXRhW2ldLm9wYWNpdHkgPT09IDAgPyAwIDogKHRoaXMub3JpZ0RhdGFbaV0ub3BhY2l0eSB8fCAxKTsKICB9CgogIC8vIGtleTogZ3JvdXAgbmFtZSwgdmFsdWU6IG51bGwgb3IgYXJyYXkgb2Yga2V5cyByZXByZXNlbnRpbmcgdGhlCiAgLy8gbW9zdCByZWNlbnRseSByZWNlaXZlZCBzZWxlY3Rpb24gZm9yIHRoYXQgZ3JvdXAuCiAgdGhpcy5ncm91cFNlbGVjdGlvbnMgPSB7fTsKICAKICAvLyBzZWxlY3Rpb24gcGFyYW1ldGVycyAoZS5nLiwgdHJhbnNpZW50IHZlcnN1cyBwZXJzaXN0ZW50IHNlbGVjdGlvbikKICB0aGlzLmhpZ2hsaWdodCA9IGhpZ2hsaWdodDsKfQoKVHJhY2VNYW5hZ2VyLnByb3RvdHlwZS5jbG9zZSA9IGZ1bmN0aW9uKCkgewogIC8vIFRPRE86IFVuaG9vayBhbGwgZXZlbnQgaGFuZGxlcnMKfTsKClRyYWNlTWFuYWdlci5wcm90b3R5cGUudXBkYXRlRmlsdGVyID0gZnVuY3Rpb24oZ3JvdXAsIGtleXMpIHsKCiAgaWYgKHR5cGVvZihrZXlzKSA9PT0gInVuZGVmaW5lZCIgfHwga2V5cyA9PT0gbnVsbCkgewogICAgCiAgICB0aGlzLmdkLmRhdGEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMub3JpZ0RhdGEpKTsKICAgIAogIH0gZWxzZSB7CiAgCiAgICB2YXIgdHJhY2VzID0gW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3JpZ0RhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIHRyYWNlID0gdGhpcy5vcmlnRGF0YVtpXTsKICAgICAgaWYgKCF0cmFjZS5rZXkgfHwgdHJhY2Uuc2V0ICE9PSBncm91cCkgewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIHZhciBtYXRjaEZ1bmMgPSBnZXRNYXRjaEZ1bmModHJhY2UpOwogICAgICB2YXIgbWF0Y2hlcyA9IG1hdGNoRnVuYyh0cmFjZS5rZXksIGtleXMpOwogICAgICAKICAgICAgaWYgKG1hdGNoZXMubGVuZ3RoID4gMCkgewogICAgICAgIGlmICghdHJhY2UuX2lzU2ltcGxlS2V5KSB7CiAgICAgICAgICAvLyBzdWJzZXRBcnJheUF0dHJzIGRvZXNuJ3QgbXV0YXRlIHRyYWNlIChpdCBtYWtlcyBhIG1vZGlmaWVkIGNsb25lKQogICAgICAgICAgdHJhY2UgPSBzdWJzZXRBcnJheUF0dHJzKHRyYWNlLCBtYXRjaGVzKTsKICAgICAgICB9CiAgICAgICAgdHJhY2VzLnB1c2godHJhY2UpOwogICAgICB9CiAgICB9CiAgfQogIAogIHRoaXMuZ2QuZGF0YSA9IHRyYWNlczsKICBQbG90bHkucmVkcmF3KHRoaXMuZ2QpOwogIAogIC8vIE5PVEU6IHdlIHB1cnBvc2VseSBkbyBfbm90XyByZXN0b3JlIHNlbGVjdGlvbihzKSwgc2luY2Ugb24gZmlsdGVyLAogIC8vIGF4aXMgbGlrZWx5IHdpbGwgdXBkYXRlLCBjaGFuZ2luZyB0aGUgcGl4ZWwgLT4gZGF0YSBtYXBwaW5nLCBsZWFkaW5nIAogIC8vIHRvIGEgbGlrZWx5IG1pc21hdGNoIGluIHRoZSBicnVzaCBvdXRsaW5lIGFuZCBoaWdobGlnaHRlZCBtYXJrcwogIAp9OwoKVHJhY2VNYW5hZ2VyLnByb3RvdHlwZS51cGRhdGVTZWxlY3Rpb24gPSBmdW5jdGlvbihncm91cCwga2V5cykgewogIAogIGlmIChrZXlzICE9PSBudWxsICYmICFBcnJheS5pc0FycmF5KGtleXMpKSB7CiAgICB0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQga2V5cyBhcmd1bWVudDsgbnVsbCBvciBhcnJheSBleHBlY3RlZCIpOwogIH0KICAKICAvLyBpZiBzZWxlY3Rpb24gaGFzIGJlZW4gY2xlYXJlZCwgb3IgaWYgdGhpcyBpcyB0cmFuc2llbnQKICAvLyBzZWxlY3Rpb24sIGRlbGV0ZSB0aGUgInNlbGVjdGlvbiB0cmFjZXMiCiAgdmFyIG5OZXdUcmFjZXMgPSB0aGlzLmdkLmRhdGEubGVuZ3RoIC0gdGhpcy5vcmlnRGF0YS5sZW5ndGg7CiAgaWYgKGtleXMgPT09IG51bGwgfHwgIXRoaXMuaGlnaGxpZ2h0LnBlcnNpc3RlbnQgJiYgbk5ld1RyYWNlcyA+IDApIHsKICAgIHZhciB0cmFjZXNUb1JlbW92ZSA9IFtdOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLmdkLmRhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKHRoaXMuZ2QuZGF0YVtpXS5faXNDcm9zc3RhbGtUcmFjZSkgdHJhY2VzVG9SZW1vdmUucHVzaChpKTsKICAgIH0KICAgIFBsb3RseS5kZWxldGVUcmFjZXModGhpcy5nZCwgdHJhY2VzVG9SZW1vdmUpOwogICAgdGhpcy5ncm91cFNlbGVjdGlvbnNbZ3JvdXBdID0ga2V5czsKICB9IGVsc2UgewogICAgLy8gYWRkIHRvIHRoZSBncm91cFNlbGVjdGlvbiwgcmF0aGVyIHRoYW4gb3ZlcndyaXRpbmcgaXQKICAgIC8vIFRPRE86IGNhbiB0aGlzIGJlIHJlbW92ZWQ/CiAgICB0aGlzLmdyb3VwU2VsZWN0aW9uc1tncm91cF0gPSB0aGlzLmdyb3VwU2VsZWN0aW9uc1tncm91cF0gfHwgW107CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyBpKyspIHsKICAgICAgdmFyIGsgPSBrZXlzW2ldOwogICAgICBpZiAodGhpcy5ncm91cFNlbGVjdGlvbnNbZ3JvdXBdLmluZGV4T2YoaykgPCAwKSB7CiAgICAgICAgdGhpcy5ncm91cFNlbGVjdGlvbnNbZ3JvdXBdLnB1c2goayk7CiAgICAgIH0KICAgIH0KICB9CiAgCiAgaWYgKGtleXMgPT09IG51bGwpIHsKICAgIAogICAgUGxvdGx5LnJlc3R5bGUodGhpcy5nZCwgeyJvcGFjaXR5IjogdGhpcy5vcmlnT3BhY2l0eX0pOwogICAgCiAgfSBlbHNlIGlmIChrZXlzLmxlbmd0aCA+PSAxKSB7CiAgICAKICAgIC8vIHBsYWNlaG9sZGVyIGZvciBuZXcgInNlbGVjdGlvbiB0cmFjZXMiCiAgICB2YXIgdHJhY2VzID0gW107CiAgICAvLyB0aGlzIHZhcmlhYmxlIGlzIHNldCBpbiBSL2hpZ2hsaWdodC5SCiAgICB2YXIgc2VsZWN0aW9uQ29sb3VyID0gY3Jvc3N0YWxrLmdyb3VwKGdyb3VwKS52YXIoInBsb3RseVNlbGVjdGlvbkNvbG91ciIpLmdldCgpIHx8IAogICAgICB0aGlzLmhpZ2hsaWdodC5jb2xvclswXTsKCiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMub3JpZ0RhdGEubGVuZ3RoOyBpKyspIHsKICAgICAgLy8gVE9ETzogdHJ5IHVzaW5nIExpYi5leHRlbmRGbGF0KCkgYXMgZG9uZSBpbiAgCiAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9wbG90bHkvcGxvdGx5LmpzL3B1bGwvMTEzNiAKICAgICAgdmFyIHRyYWNlID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmdkLmRhdGFbaV0pKTsKICAgICAgaWYgKCF0cmFjZS5rZXkgfHwgdHJhY2Uuc2V0ICE9PSBncm91cCkgewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIC8vIEdldCBzb3J0ZWQgYXJyYXkgb2YgbWF0Y2hpbmcgaW5kaWNlcyBpbiB0cmFjZS5rZXkKICAgICAgdmFyIG1hdGNoRnVuYyA9IGdldE1hdGNoRnVuYyh0cmFjZSk7CiAgICAgIHZhciBtYXRjaGVzID0gbWF0Y2hGdW5jKHRyYWNlLmtleSwga2V5cyk7CiAgICAgIAogICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwKSB7CiAgICAgICAgLy8gSWYgdGhpcyBpcyBhICJzaW1wbGUiIGtleSwgdGhhdCBtZWFucyBzZWxlY3QgdGhlIGVudGlyZSB0cmFjZQogICAgICAgIGlmICghdHJhY2UuX2lzU2ltcGxlS2V5KSB7CiAgICAgICAgICB0cmFjZSA9IHN1YnNldEFycmF5QXR0cnModHJhY2UsIG1hdGNoZXMpOwogICAgICAgIH0KICAgICAgICAvLyByZWFjaCBpbnRvIHRoZSBmdWxsIHRyYWNlIG9iamVjdCBzbyB3ZSBjYW4gcHJvcGVybHkgcmVmbGVjdCB0aGUgCiAgICAgICAgLy8gc2VsZWN0aW9uIGF0dHJpYnV0ZXMgaW4gZXZlcnkgdmlldwogICAgICAgIHZhciBkID0gdGhpcy5nZC5fZnVsbERhdGFbaV07CiAgICAgICAgCiAgICAgICAgLyogCiAgICAgICAgLyBSZWN1cnNpdmVseSBpbmhlcml0IHNlbGVjdGlvbiBhdHRyaWJ1dGVzIGZyb20gdmFyaW91cyBzb3VyY2VzLCAKICAgICAgICAvIGluIG9yZGVyIG9mIHByZWZlcmVuY2U6CiAgICAgICAgLyAgKDEpIG9mZmljaWFsIHBsb3RseS5qcyBzZWxlY3RlZCBhdHRyaWJ1dGUKICAgICAgICAvICAoMikgaGlnaGxpZ2h0KHNlbGVjdGVkID0gYXR0cnNfc2VsZWN0ZWQoLi4uKSkKICAgICAgICAqLwogICAgICAgIC8vIFRPRE86IGl0IHdvdWxkIGJlIG5lYXQgdG8gaGF2ZSBhIGRyb3Bkb3duIHRvIGR5bmFtaWNhbGx5IHNwZWNpZnkgdGhlc2UhCiAgICAgICAgJC5leHRlbmQodHJ1ZSwgdHJhY2UsIHRoaXMuaGlnaGxpZ2h0LnNlbGVjdGVkKTsKICAgICAgICAKICAgICAgICAvLyBpZiBpdCBpcyBkZWZpbmVkLCBvdmVycmlkZSBjb2xvciB3aXRoIHRoZSAiZHluYW1pYyBicnVzaCBjb2xvciIiCiAgICAgICAgaWYgKGQubWFya2VyKSB7CiAgICAgICAgICB0cmFjZS5tYXJrZXIgPSB0cmFjZS5tYXJrZXIgfHwge307CiAgICAgICAgICB0cmFjZS5tYXJrZXIuY29sb3IgPSAgc2VsZWN0aW9uQ29sb3VyIHx8IHRyYWNlLm1hcmtlci5jb2xvciB8fCBkLm1hcmtlci5jb2xvcjsKICAgICAgICB9CiAgICAgICAgaWYgKGQubGluZSkgewogICAgICAgICAgdHJhY2UubGluZSA9IHRyYWNlLmxpbmUgfHwge307CiAgICAgICAgICB0cmFjZS5saW5lLmNvbG9yID0gIHNlbGVjdGlvbkNvbG91ciB8fCB0cmFjZS5saW5lLmNvbG9yIHx8IGQubGluZS5jb2xvcjsKICAgICAgICB9CiAgICAgICAgaWYgKGQudGV4dGZvbnQpIHsKICAgICAgICAgIHRyYWNlLnRleHRmb250ID0gdHJhY2UudGV4dGZvbnQgfHwge307CiAgICAgICAgICB0cmFjZS50ZXh0Zm9udC5jb2xvciA9ICBzZWxlY3Rpb25Db2xvdXIgfHwgdHJhY2UudGV4dGZvbnQuY29sb3IgfHwgZC50ZXh0Zm9udC5jb2xvcjsKICAgICAgICB9CiAgICAgICAgaWYgKGQuZmlsbGNvbG9yKSB7CiAgICAgICAgICAvLyBUT0RPOiBzaG91bGQgc2VsZWN0aW9uQ29sb3VyIGluaGVyaXQgYWxwaGEgZnJvbSB0aGUgZXhpc3RpbmcgZmlsbGNvbG9yPwogICAgICAgICAgdHJhY2UuZmlsbGNvbG9yID0gc2VsZWN0aW9uQ29sb3VyIHx8IHRyYWNlLmZpbGxjb2xvciB8fCBkLmZpbGxjb2xvcjsKICAgICAgICB9CiAgICAgICAgLy8gYXR0YWNoIGEgc2Vuc2libGUgbmFtZS9sZWdlbmRncm91cAogICAgICAgIHRyYWNlLm5hbWUgPSB0cmFjZS5uYW1lIHx8IGtleXMuam9pbigiPGJyIC8+Iik7CiAgICAgICAgdHJhY2UubGVnZW5kZ3JvdXAgPSB0cmFjZS5sZWdlbmRncm91cCB8fCBrZXlzLmpvaW4oIjxiciAvPiIpOwogICAgICAgIAogICAgICAgIC8vIGtlZXAgdHJhY2sgb2YgbWFwcGluZyBiZXR3ZWVuIHRoaXMgbmV3IHRyYWNlIGFuZCB0aGUgdHJhY2UgaXQgdGFyZ2V0cwogICAgICAgIC8vIChuZWNlc3NhcnkgZm9yIHVwZGF0aW5nIGZyYW1lcyB0byByZWZsZWN0IHRoZSBzZWxlY3Rpb24gdHJhY2VzKQogICAgICAgIHRyYWNlLl9vcmlnaW5hbEluZGV4ID0gaTsKICAgICAgICB0cmFjZS5fbmV3SW5kZXggPSB0aGlzLmdkLl9mdWxsRGF0YS5sZW5ndGggKyB0cmFjZXMubGVuZ3RoOwogICAgICAgIHRyYWNlLl9pc0Nyb3NzdGFsa1RyYWNlID0gdHJ1ZTsKICAgICAgICB0cmFjZXMucHVzaCh0cmFjZSk7CiAgICAgIH0KICAgIH0KICAgIAogICAgaWYgKHRyYWNlcy5sZW5ndGggPiAwKSB7CiAgICAgIAogICAgICBQbG90bHkuYWRkVHJhY2VzKHRoaXMuZ2QsIHRyYWNlcykudGhlbihmdW5jdGlvbihnZCkgewogICAgICAgIC8vIGluY3JlbWVudGFsbHkgYWRkIHNlbGVjdGlvbiB0cmFjZXMgdG8gZnJhbWVzCiAgICAgICAgLy8gKHRoaXMgaXMgaGVhdmlseSBpbnNwaXJlZCBieSBQbG90bHkuUGxvdHMubW9kaWZ5RnJhbWVzKCkgCiAgICAgICAgLy8gaW4gc3JjL3Bsb3RzL3Bsb3RzLmpzKQogICAgICAgIHZhciBfaGFzaCA9IGdkLl90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNoOwogICAgICAgIHZhciBfZnJhbWVzID0gZ2QuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMgfHwgW107CiAgICAgICAgCiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBfZnJhbWVzLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAKICAgICAgICAgIC8vIGFkZCB0byBfZnJhbWVzW2ldLnRyYWNlcyAqaWYqIHRoaXMgZnJhbWUgcmVmZXJlbmNlcyBzZWxlY3RlZCB0cmFjZShzKQogICAgICAgICAgdmFyIG5ld0luZGljZXMgPSBbXTsKICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDwgdHJhY2VzLmxlbmd0aDsgaisrKSB7CiAgICAgICAgICAgIHZhciB0ciA9IHRyYWNlc1tqXTsKICAgICAgICAgICAgaWYgKF9mcmFtZXNbaV0udHJhY2VzLmluZGV4T2YodHIuX29yaWdpbmFsSW5kZXgpID4gLTEpIHsKICAgICAgICAgICAgICBuZXdJbmRpY2VzLnB1c2godHIuX25ld0luZGV4KTsKICAgICAgICAgICAgICBfZnJhbWVzW2ldLnRyYWNlcy5wdXNoKHRyLl9uZXdJbmRleCk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgLy8gbm90aGluZyB0byBkby4uLgogICAgICAgICAgaWYgKG5ld0luZGljZXMubGVuZ3RoID09PSAwKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgfQogICAgICAgICAgCiAgICAgICAgICB2YXIgY3RyID0gMDsKICAgICAgICAgIHZhciBuRnJhbWVUcmFjZXMgPSBfZnJhbWVzW2ldLmRhdGEubGVuZ3RoOwogICAgICAgICAgCiAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IG5GcmFtZVRyYWNlczsgaisrKSB7CiAgICAgICAgICAgIHZhciBmcmFtZVRyYWNlID0gX2ZyYW1lc1tpXS5kYXRhW2pdOwogICAgICAgICAgICBpZiAoIWZyYW1lVHJhY2Uua2V5IHx8IGZyYW1lVHJhY2Uuc2V0ICE9PSBncm91cCkgewogICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICB2YXIgbWF0Y2hGdW5jID0gZ2V0TWF0Y2hGdW5jKGZyYW1lVHJhY2UpOwogICAgICAgICAgICB2YXIgbWF0Y2hlcyA9IG1hdGNoRnVuYyhmcmFtZVRyYWNlLmtleSwga2V5cyk7CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAobWF0Y2hlcy5sZW5ndGggPiAwKSB7CiAgICAgICAgICAgICAgaWYgKCF0cmFjZS5faXNTaW1wbGVLZXkpIHsKICAgICAgICAgICAgICAgIGZyYW1lVHJhY2UgPSBzdWJzZXRBcnJheUF0dHJzKGZyYW1lVHJhY2UsIG1hdGNoZXMpOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICB2YXIgZCA9IGdkLl9mdWxsRGF0YVtuZXdJbmRpY2VzW2N0cl1dOwogICAgICAgICAgICAgIGlmIChkLm1hcmtlcikgewogICAgICAgICAgICAgICAgZnJhbWVUcmFjZS5tYXJrZXIgPSBkLm1hcmtlcjsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgaWYgKGQubGluZSkgewogICAgICAgICAgICAgICAgZnJhbWVUcmFjZS5saW5lID0gZC5saW5lOwogICAgICAgICAgICAgIH0KICAgICAgICAgICAgICBpZiAoZC50ZXh0Zm9udCkgewogICAgICAgICAgICAgICAgZnJhbWVUcmFjZS50ZXh0Zm9udCA9IGQudGV4dGZvbnQ7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIGN0ciA9IGN0ciArIDE7CiAgICAgICAgICAgICAgX2ZyYW1lc1tpXS5kYXRhLnB1c2goZnJhbWVUcmFjZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICAgIAogICAgICAgICAgLy8gdXBkYXRlIGdkLl90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNoCiAgICAgICAgICBfaGFzaFtfZnJhbWVzW2ldLm5hbWVdID0gX2ZyYW1lc1tpXTsKICAgICAgICB9CiAgICAgIAogICAgICB9KTsKICAgICAgCiAgICAgIC8vIGRpbSB0cmFjZXMgdGhhdCBoYXZlIGEgc2V0IG1hdGNoaW5nIHRoZSBzZXQgb2Ygc2VsZWN0aW9uIHNldHMKICAgICAgdmFyIHRyYWNlc1RvRGltID0gW10sCiAgICAgICAgICBvcGFjaXRpZXMgPSBbXSwKICAgICAgICAgIHNldHMgPSBPYmplY3Qua2V5cyh0aGlzLmdyb3VwU2VsZWN0aW9ucyksCiAgICAgICAgICBuID0gdGhpcy5vcmlnRGF0YS5sZW5ndGg7CiAgICAgICAgICAKICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICB2YXIgb3BhY2l0eSA9IHRoaXMub3JpZ09wYWNpdHlbaV0gfHwgMTsKICAgICAgICAvLyBoYXZlIHdlIGFscmVhZHkgZGltbWVkIHRoaXMgdHJhY2U/IE9yIGlzIHRoaXMgZXZlbiB3b3J0aCBkb2luZz8KICAgICAgICBpZiAob3BhY2l0eSAhPT0gdGhpcy5nZC5fZnVsbERhdGFbaV0ub3BhY2l0eSB8fCB0aGlzLmhpZ2hsaWdodC5vcGFjaXR5RGltID09PSAxKSB7CiAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgLy8gaXMgdGhpcyBzZXQgYW4gZWxlbWVudCBvZiB0aGUgc2V0IG9mIHNlbGVjdGlvbiBzZXRzPwogICAgICAgIHZhciBtYXRjaGVzID0gZmluZE1hdGNoZXMoc2V0cywgW3RoaXMuZ2QuZGF0YVtpXS5zZXRdKTsKICAgICAgICBpZiAobWF0Y2hlcy5sZW5ndGgpIHsKICAgICAgICAgIHRyYWNlc1RvRGltLnB1c2goaSk7CiAgICAgICAgICBvcGFjaXRpZXMucHVzaChvcGFjaXR5ICogdGhpcy5oaWdobGlnaHQub3BhY2l0eURpbSk7CiAgICAgICAgfQogICAgICB9CiAgICAgIAogICAgICBpZiAodHJhY2VzVG9EaW0ubGVuZ3RoID4gMCkgewogICAgICAgIFBsb3RseS5yZXN0eWxlKHRoaXMuZ2QsIHsib3BhY2l0eSI6IG9wYWNpdGllc30sIHRyYWNlc1RvRGltKTsKICAgICAgICAvLyB0dXJuIG9mZiB0aGUgc2VsZWN0ZWQvdW5zZWxlY3RlZCBBUEkKICAgICAgICBQbG90bHkucmVzdHlsZSh0aGlzLmdkLCB7InNlbGVjdGVkcG9pbnRzIjogbnVsbH0pOwogICAgICB9CiAgICAgIAogICAgfQogICAgCiAgfQp9OwoKLyogCk5vdGU6IGluIGFsbCBvZiB0aGVzZSBtYXRjaCBmdW5jdGlvbnMsIHdlIGFzc3VtZSBuZWVkbGVTZXQgKGkuZS4gdGhlIHNlbGVjdGVkIGtleXMpCmlzIGEgMUQgKG9yIGZsYXQpIGFycmF5LiBUaGUgcmVhbCBkaWZmZXJlbmNlIGlzIHRoZSBtZWFuaW5nIG9mIGhheXN0YWNrLgpmaW5kTWF0Y2hlcygpIGRvZXMgdGhlIHVzdWFsIHRoaW5nIHlvdSdkIGV4cGVjdCBmb3IgCmxpbmtlZCBicnVzaGluZyBvbiBhIHNjYXR0ZXJwbG90IG1hdHJpeC4gZmluZFNpbXBsZU1hdGNoZXMoKSByZXR1cm5zIGEgbWF0Y2ggaWZmIApoYXlzdGFjayBpcyBhIHN1YnNldCBvZiB0aGUgbmVlZGxlU2V0LiBmaW5kTmVzdGVkTWF0Y2hlcygpIHJldHVybnMgCiovCgpmdW5jdGlvbiBnZXRNYXRjaEZ1bmModHJhY2UpIHsKICByZXR1cm4gKHRyYWNlLl9pc05lc3RlZEtleSkgPyBmaW5kTmVzdGVkTWF0Y2hlcyA6IAogICAgKHRyYWNlLl9pc1NpbXBsZUtleSkgPyBmaW5kU2ltcGxlTWF0Y2hlcyA6IGZpbmRNYXRjaGVzOwp9CgovLyBmaW5kIG1hdGNoZXMgZm9yICJmbGF0IiBrZXlzCmZ1bmN0aW9uIGZpbmRNYXRjaGVzKGhheXN0YWNrLCBuZWVkbGVTZXQpIHsKICB2YXIgbWF0Y2hlcyA9IFtdOwogIGhheXN0YWNrLmZvckVhY2goZnVuY3Rpb24ob2JqLCBpKSB7CiAgICBpZiAob2JqID09PSBudWxsIHx8IG5lZWRsZVNldC5pbmRleE9mKG9iaikgPj0gMCkgewogICAgICBtYXRjaGVzLnB1c2goaSk7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG1hdGNoZXM7Cn0KCi8vIGZpbmQgbWF0Y2hlcyBmb3IgInNpbXBsZSIga2V5cwpmdW5jdGlvbiBmaW5kU2ltcGxlTWF0Y2hlcyhoYXlzdGFjaywgbmVlZGxlU2V0KSB7CiAgdmFyIG1hdGNoID0gaGF5c3RhY2suZXZlcnkoZnVuY3Rpb24odmFsKSB7CiAgICByZXR1cm4gdmFsID09PSBudWxsIHx8IG5lZWRsZVNldC5pbmRleE9mKHZhbCkgPj0gMDsKICB9KTsKICAvLyB5ZXMsIHRoaXMgZG9lc24ndCBtYWtlIG11Y2ggc2Vuc2Ugb3RoZXIgdGhhbiBjb25mb3JtaW5nIAogIC8vIHRvIHRoZSBvdXRwdXQgdHlwZSBvZiB0aGUgb3RoZXIgbWF0Y2ggZnVuY3Rpb25zCiAgcmV0dXJuIChtYXRjaCkgPyBbMF0gOiBbXQp9CgovLyBmaW5kIG1hdGNoZXMgZm9yIGEgIm5lc3RlZCIgaGF5c3RhY2sgKDJEIGFycmF5cykKZnVuY3Rpb24gZmluZE5lc3RlZE1hdGNoZXMoaGF5c3RhY2ssIG5lZWRsZVNldCkgewogIHZhciBtYXRjaGVzID0gW107CiAgZm9yICh2YXIgaSA9IDA7IGkgPCBoYXlzdGFjay5sZW5ndGg7IGkrKykgewogICAgdmFyIGhheSA9IGhheXN0YWNrW2ldOwogICAgdmFyIG1hdGNoID0gaGF5LmV2ZXJ5KGZ1bmN0aW9uKHZhbCkgeyAKICAgICAgcmV0dXJuIHZhbCA9PT0gbnVsbCB8fCBuZWVkbGVTZXQuaW5kZXhPZih2YWwpID49IDA7IAogICAgfSk7CiAgICBpZiAobWF0Y2gpIHsKICAgICAgbWF0Y2hlcy5wdXNoKGkpOwogICAgfQogIH0KICByZXR1cm4gbWF0Y2hlczsKfQoKZnVuY3Rpb24gaXNQbGFpbk9iamVjdChvYmopIHsKICByZXR1cm4gKAogICAgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG9iaikgPT09ICdbb2JqZWN0IE9iamVjdF0nICYmCiAgICBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSA9PT0gT2JqZWN0LnByb3RvdHlwZQogICk7Cn0KCmZ1bmN0aW9uIHN1YnNldEFycmF5QXR0cnMob2JqLCBpbmRpY2VzKSB7CiAgdmFyIG5ld09iaiA9IHt9OwogIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChmdW5jdGlvbihrKSB7CiAgICB2YXIgdmFsID0gb2JqW2tdOwoKICAgIGlmIChrLmNoYXJBdCgwKSA9PT0gIl8iKSB7CiAgICAgIG5ld09ialtrXSA9IHZhbDsKICAgIH0gZWxzZSBpZiAoayA9PT0gInRyYW5zZm9ybXMiICYmIEFycmF5LmlzQXJyYXkodmFsKSkgewogICAgICBuZXdPYmpba10gPSB2YWwubWFwKGZ1bmN0aW9uKHRyYW5zZm9ybSkgewogICAgICAgIHJldHVybiBzdWJzZXRBcnJheUF0dHJzKHRyYW5zZm9ybSwgaW5kaWNlcyk7CiAgICAgIH0pOwogICAgfSBlbHNlIGlmIChrID09PSAiY29sb3JzY2FsZSIgJiYgQXJyYXkuaXNBcnJheSh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHZhbDsKICAgIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdCh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHN1YnNldEFycmF5QXR0cnModmFsLCBpbmRpY2VzKTsKICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheSh2YWwpKSB7CiAgICAgIG5ld09ialtrXSA9IHN1YnNldEFycmF5KHZhbCwgaW5kaWNlcyk7CiAgICB9IGVsc2UgewogICAgICBuZXdPYmpba10gPSB2YWw7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG5ld09iajsKfQoKZnVuY3Rpb24gc3Vic2V0QXJyYXkoYXJyLCBpbmRpY2VzKSB7CiAgdmFyIHJlc3VsdCA9IFtdOwogIGZvciAodmFyIGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7IGkrKykgewogICAgcmVzdWx0LnB1c2goYXJyW2luZGljZXNbaV1dKTsKICB9CiAgcmV0dXJuIHJlc3VsdDsKfQoKLy8gQ29udmVuaWVuY2UgZnVuY3Rpb24gZm9yIHJlbW92aW5nIHBsb3RseSdzIGJydXNoIApmdW5jdGlvbiByZW1vdmVCcnVzaChlbCkgewogIHZhciBvdXRsaW5lcyA9IGVsLnF1ZXJ5U2VsZWN0b3JBbGwoIi5zZWxlY3Qtb3V0bGluZSIpOwogIGZvciAodmFyIGkgPSAwOyBpIDwgb3V0bGluZXMubGVuZ3RoOyBpKyspIHsKICAgIG91dGxpbmVzW2ldLnJlbW92ZSgpOwogIH0KfQoKCi8vIGh0dHBzOi8vZGF2aWR3YWxzaC5uYW1lL2phdmFzY3JpcHQtZGVib3VuY2UtZnVuY3Rpb24KCi8vIFJldHVybnMgYSBmdW5jdGlvbiwgdGhhdCwgYXMgbG9uZyBhcyBpdCBjb250aW51ZXMgdG8gYmUgaW52b2tlZCwgd2lsbCBub3QKLy8gYmUgdHJpZ2dlcmVkLiBUaGUgZnVuY3Rpb24gd2lsbCBiZSBjYWxsZWQgYWZ0ZXIgaXQgc3RvcHMgYmVpbmcgY2FsbGVkIGZvcgovLyBOIG1pbGxpc2Vjb25kcy4gSWYgYGltbWVkaWF0ZWAgaXMgcGFzc2VkLCB0cmlnZ2VyIHRoZSBmdW5jdGlvbiBvbiB0aGUKLy8gbGVhZGluZyBlZGdlLCBpbnN0ZWFkIG9mIHRoZSB0cmFpbGluZy4KZnVuY3Rpb24gZGVib3VuY2UoZnVuYywgd2FpdCwgaW1tZWRpYXRlKSB7Cgl2YXIgdGltZW91dDsKCXJldHVybiBmdW5jdGlvbigpIHsKCQl2YXIgY29udGV4dCA9IHRoaXMsIGFyZ3MgPSBhcmd1bWVudHM7CgkJdmFyIGxhdGVyID0gZnVuY3Rpb24oKSB7CgkJCXRpbWVvdXQgPSBudWxsOwoJCQlpZiAoIWltbWVkaWF0ZSkgZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTsKCQl9OwoJCXZhciBjYWxsTm93ID0gaW1tZWRpYXRlICYmICF0aW1lb3V0OwoJCWNsZWFyVGltZW91dCh0aW1lb3V0KTsKCQl0aW1lb3V0ID0gc2V0VGltZW91dChsYXRlciwgd2FpdCk7CgkJaWYgKGNhbGxOb3cpIGZ1bmMuYXBwbHkoY29udGV4dCwgYXJncyk7Cgl9Owp9Owo="></script>
<script src="data:application/javascript;base64,KGZ1bmN0aW9uKGdsb2JhbCl7InVzZSBzdHJpY3QiO3ZhciB1bmRlZmluZWQ9dm9pZCAwO3ZhciBNQVhfQVJSQVlfTEVOR1RIPTFlNTtmdW5jdGlvbiBUeXBlKHYpe3N3aXRjaCh0eXBlb2Ygdil7Y2FzZSJ1bmRlZmluZWQiOnJldHVybiJ1bmRlZmluZWQiO2Nhc2UiYm9vbGVhbiI6cmV0dXJuImJvb2xlYW4iO2Nhc2UibnVtYmVyIjpyZXR1cm4ibnVtYmVyIjtjYXNlInN0cmluZyI6cmV0dXJuInN0cmluZyI7ZGVmYXVsdDpyZXR1cm4gdj09PW51bGw/Im51bGwiOiJvYmplY3QifX1mdW5jdGlvbiBDbGFzcyh2KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHYpLnJlcGxhY2UoL15cW29iamVjdCAqfFxdJC9nLCIiKX1mdW5jdGlvbiBJc0NhbGxhYmxlKG8pe3JldHVybiB0eXBlb2Ygbz09PSJmdW5jdGlvbiJ9ZnVuY3Rpb24gVG9PYmplY3Qodil7aWYodj09PW51bGx8fHY9PT11bmRlZmluZWQpdGhyb3cgVHlwZUVycm9yKCk7cmV0dXJuIE9iamVjdCh2KX1mdW5jdGlvbiBUb0ludDMyKHYpe3JldHVybiB2Pj4wfWZ1bmN0aW9uIFRvVWludDMyKHYpe3JldHVybiB2Pj4+MH12YXIgTE4yPU1hdGguTE4yLGFicz1NYXRoLmFicyxmbG9vcj1NYXRoLmZsb29yLGxvZz1NYXRoLmxvZyxtYXg9TWF0aC5tYXgsbWluPU1hdGgubWluLHBvdz1NYXRoLnBvdyxyb3VuZD1NYXRoLnJvdW5kOyhmdW5jdGlvbigpe3ZhciBvcmlnPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgZG9tX29ubHk9IWZ1bmN0aW9uKCl7dHJ5e3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sIngiLHt9KX1jYXRjaChfKXtyZXR1cm4gZmFsc2V9fSgpO2lmKCFvcmlnfHxkb21fb25seSl7T2JqZWN0LmRlZmluZVByb3BlcnR5PWZ1bmN0aW9uKG8scHJvcCxkZXNjKXtpZihvcmlnKXRyeXtyZXR1cm4gb3JpZyhvLHByb3AsZGVzYyl9Y2F0Y2goXyl7fWlmKG8hPT1PYmplY3QobykpdGhyb3cgVHlwZUVycm9yKCJPYmplY3QuZGVmaW5lUHJvcGVydHkgY2FsbGVkIG9uIG5vbi1vYmplY3QiKTtpZihPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18mJiJnZXQiaW4gZGVzYylPYmplY3QucHJvdG90eXBlLl9fZGVmaW5lR2V0dGVyX18uY2FsbChvLHByb3AsZGVzYy5nZXQpO2lmKE9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXyYmInNldCJpbiBkZXNjKU9iamVjdC5wcm90b3R5cGUuX19kZWZpbmVTZXR0ZXJfXy5jYWxsKG8scHJvcCxkZXNjLnNldCk7aWYoInZhbHVlImluIGRlc2Mpb1twcm9wXT1kZXNjLnZhbHVlO3JldHVybiBvfX19KSgpO2Z1bmN0aW9uIG1ha2VBcnJheUFjY2Vzc29ycyhvYmope2lmKG9iai5sZW5ndGg+TUFYX0FSUkFZX0xFTkdUSCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSB0b28gbGFyZ2UgZm9yIHBvbHlmaWxsIik7ZnVuY3Rpb24gbWFrZUFycmF5QWNjZXNzb3IoaW5kZXgpe09iamVjdC5kZWZpbmVQcm9wZXJ0eShvYmosaW5kZXgse2dldDpmdW5jdGlvbigpe3JldHVybiBvYmouX2dldHRlcihpbmRleCl9LHNldDpmdW5jdGlvbih2KXtvYmouX3NldHRlcihpbmRleCx2KX0sZW51bWVyYWJsZTp0cnVlLGNvbmZpZ3VyYWJsZTpmYWxzZX0pfXZhciBpO2ZvcihpPTA7aTxvYmoubGVuZ3RoO2krPTEpe21ha2VBcnJheUFjY2Vzc29yKGkpfX1mdW5jdGlvbiBhc19zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+PnN9ZnVuY3Rpb24gYXNfdW5zaWduZWQodmFsdWUsYml0cyl7dmFyIHM9MzItYml0cztyZXR1cm4gdmFsdWU8PHM+Pj5zfWZ1bmN0aW9uIHBhY2tJOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja0k4KGJ5dGVzKXtyZXR1cm4gYXNfc2lnbmVkKGJ5dGVzWzBdLDgpfWZ1bmN0aW9uIHBhY2tVOChuKXtyZXR1cm5bbiYyNTVdfWZ1bmN0aW9uIHVucGFja1U4KGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF0sOCl9ZnVuY3Rpb24gcGFja1U4Q2xhbXBlZChuKXtuPXJvdW5kKE51bWJlcihuKSk7cmV0dXJuW248MD8wOm4+MjU1PzI1NTpuJjI1NV19ZnVuY3Rpb24gcGFja0kxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja0kxNihieXRlcyl7cmV0dXJuIGFzX3NpZ25lZChieXRlc1swXTw8OHxieXRlc1sxXSwxNil9ZnVuY3Rpb24gcGFja1UxNihuKXtyZXR1cm5bbj4+OCYyNTUsbiYyNTVdfWZ1bmN0aW9uIHVucGFja1UxNihieXRlcyl7cmV0dXJuIGFzX3Vuc2lnbmVkKGJ5dGVzWzBdPDw4fGJ5dGVzWzFdLDE2KX1mdW5jdGlvbiBwYWNrSTMyKG4pe3JldHVybltuPj4yNCYyNTUsbj4+MTYmMjU1LG4+PjgmMjU1LG4mMjU1XX1mdW5jdGlvbiB1bnBhY2tJMzIoYnl0ZXMpe3JldHVybiBhc19zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja1UzMihuKXtyZXR1cm5bbj4+MjQmMjU1LG4+PjE2JjI1NSxuPj44JjI1NSxuJjI1NV19ZnVuY3Rpb24gdW5wYWNrVTMyKGJ5dGVzKXtyZXR1cm4gYXNfdW5zaWduZWQoYnl0ZXNbMF08PDI0fGJ5dGVzWzFdPDwxNnxieXRlc1syXTw8OHxieXRlc1szXSwzMil9ZnVuY3Rpb24gcGFja0lFRUU3NTQodixlYml0cyxmYml0cyl7dmFyIGJpYXM9KDE8PGViaXRzLTEpLTEscyxlLGYsbG4saSxiaXRzLHN0cixieXRlcztmdW5jdGlvbiByb3VuZFRvRXZlbihuKXt2YXIgdz1mbG9vcihuKSxmPW4tdztpZihmPC41KXJldHVybiB3O2lmKGY+LjUpcmV0dXJuIHcrMTtyZXR1cm4gdyUyP3crMTp3fWlmKHYhPT12KXtlPSgxPDxlYml0cyktMTtmPXBvdygyLGZiaXRzLTEpO3M9MH1lbHNlIGlmKHY9PT1JbmZpbml0eXx8dj09PS1JbmZpbml0eSl7ZT0oMTw8ZWJpdHMpLTE7Zj0wO3M9djwwPzE6MH1lbHNlIGlmKHY9PT0wKXtlPTA7Zj0wO3M9MS92PT09LUluZmluaXR5PzE6MH1lbHNle3M9djwwO3Y9YWJzKHYpO2lmKHY+PXBvdygyLDEtYmlhcykpe2U9bWluKGZsb29yKGxvZyh2KS9MTjIpLDEwMjMpO2Y9cm91bmRUb0V2ZW4odi9wb3coMixlKSpwb3coMixmYml0cykpO2lmKGYvcG93KDIsZmJpdHMpPj0yKXtlPWUrMTtmPTF9aWYoZT5iaWFzKXtlPSgxPDxlYml0cyktMTtmPTB9ZWxzZXtlPWUrYmlhcztmPWYtcG93KDIsZmJpdHMpfX1lbHNle2U9MDtmPXJvdW5kVG9FdmVuKHYvcG93KDIsMS1iaWFzLWZiaXRzKSl9fWJpdHM9W107Zm9yKGk9ZmJpdHM7aTtpLT0xKXtiaXRzLnB1c2goZiUyPzE6MCk7Zj1mbG9vcihmLzIpfWZvcihpPWViaXRzO2k7aS09MSl7Yml0cy5wdXNoKGUlMj8xOjApO2U9Zmxvb3IoZS8yKX1iaXRzLnB1c2gocz8xOjApO2JpdHMucmV2ZXJzZSgpO3N0cj1iaXRzLmpvaW4oIiIpO2J5dGVzPVtdO3doaWxlKHN0ci5sZW5ndGgpe2J5dGVzLnB1c2gocGFyc2VJbnQoc3RyLnN1YnN0cmluZygwLDgpLDIpKTtzdHI9c3RyLnN1YnN0cmluZyg4KX1yZXR1cm4gYnl0ZXN9ZnVuY3Rpb24gdW5wYWNrSUVFRTc1NChieXRlcyxlYml0cyxmYml0cyl7dmFyIGJpdHM9W10saSxqLGIsc3RyLGJpYXMscyxlLGY7Zm9yKGk9Ynl0ZXMubGVuZ3RoO2k7aS09MSl7Yj1ieXRlc1tpLTFdO2ZvcihqPTg7ajtqLT0xKXtiaXRzLnB1c2goYiUyPzE6MCk7Yj1iPj4xfX1iaXRzLnJldmVyc2UoKTtzdHI9Yml0cy5qb2luKCIiKTtiaWFzPSgxPDxlYml0cy0xKS0xO3M9cGFyc2VJbnQoc3RyLnN1YnN0cmluZygwLDEpLDIpPy0xOjE7ZT1wYXJzZUludChzdHIuc3Vic3RyaW5nKDEsMStlYml0cyksMik7Zj1wYXJzZUludChzdHIuc3Vic3RyaW5nKDErZWJpdHMpLDIpO2lmKGU9PT0oMTw8ZWJpdHMpLTEpe3JldHVybiBmIT09MD9OYU46cypJbmZpbml0eX1lbHNlIGlmKGU+MCl7cmV0dXJuIHMqcG93KDIsZS1iaWFzKSooMStmL3BvdygyLGZiaXRzKSl9ZWxzZSBpZihmIT09MCl7cmV0dXJuIHMqcG93KDIsLShiaWFzLTEpKSooZi9wb3coMixmYml0cykpfWVsc2V7cmV0dXJuIHM8MD8tMDowfX1mdW5jdGlvbiB1bnBhY2tGNjQoYil7cmV0dXJuIHVucGFja0lFRUU3NTQoYiwxMSw1Mil9ZnVuY3Rpb24gcGFja0Y2NCh2KXtyZXR1cm4gcGFja0lFRUU3NTQodiwxMSw1Mil9ZnVuY3Rpb24gdW5wYWNrRjMyKGIpe3JldHVybiB1bnBhY2tJRUVFNzU0KGIsOCwyMyl9ZnVuY3Rpb24gcGFja0YzMih2KXtyZXR1cm4gcGFja0lFRUU3NTQodiw4LDIzKX0oZnVuY3Rpb24oKXtmdW5jdGlvbiBBcnJheUJ1ZmZlcihsZW5ndGgpe2xlbmd0aD1Ub0ludDMyKGxlbmd0aCk7aWYobGVuZ3RoPDApdGhyb3cgUmFuZ2VFcnJvcigiQXJyYXlCdWZmZXIgc2l6ZSBpcyBub3QgYSBzbWFsbCBlbm91Z2ggcG9zaXRpdmUgaW50ZWdlci4iKTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJfYnl0ZXMiLHt2YWx1ZTpBcnJheShsZW5ndGgpfSk7Zm9yKHZhciBpPTA7aTxsZW5ndGg7aSs9MSl0aGlzLl9ieXRlc1tpXT0wfWdsb2JhbC5BcnJheUJ1ZmZlcj1nbG9iYWwuQXJyYXlCdWZmZXJ8fEFycmF5QnVmZmVyO2Z1bmN0aW9uICRUeXBlZEFycmF5JCgpe2lmKCFhcmd1bWVudHMubGVuZ3RofHx0eXBlb2YgYXJndW1lbnRzWzBdIT09Im9iamVjdCIpe3JldHVybiBmdW5jdGlvbihsZW5ndGgpe2xlbmd0aD1Ub0ludDMyKGxlbmd0aCk7aWYobGVuZ3RoPDApdGhyb3cgUmFuZ2VFcnJvcigibGVuZ3RoIGlzIG5vdCBhIHNtYWxsIGVub3VnaCBwb3NpdGl2ZSBpbnRlZ2VyLiIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJsZW5ndGgiLHt2YWx1ZTpsZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOm5ldyBBcnJheUJ1ZmZlcih0aGlzLmJ5dGVMZW5ndGgpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ5dGVPZmZzZXQiLHt2YWx1ZTowfSl9LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1pZihhcmd1bWVudHMubGVuZ3RoPj0xJiZUeXBlKGFyZ3VtZW50c1swXSk9PT0ib2JqZWN0IiYmYXJndW1lbnRzWzBdaW5zdGFuY2VvZiAkVHlwZWRBcnJheSQpe3JldHVybiBmdW5jdGlvbih0eXBlZEFycmF5KXtpZih0aGlzLmNvbnN0cnVjdG9yIT09dHlwZWRBcnJheS5jb25zdHJ1Y3Rvcil0aHJvdyBUeXBlRXJyb3IoKTt2YXIgYnl0ZUxlbmd0aD10eXBlZEFycmF5Lmxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJidWZmZXIiLHt2YWx1ZTpuZXcgQXJyYXlCdWZmZXIoYnl0ZUxlbmd0aCl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmJ5dGVMZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZU9mZnNldCIse3ZhbHVlOjB9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibGVuZ3RoIix7dmFsdWU6dHlwZWRBcnJheS5sZW5ndGh9KTtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpdGhpcy5fc2V0dGVyKGksdHlwZWRBcnJheS5fZ2V0dGVyKGkpKX0uYXBwbHkodGhpcyxhcmd1bWVudHMpfWlmKGFyZ3VtZW50cy5sZW5ndGg+PTEmJlR5cGUoYXJndW1lbnRzWzBdKT09PSJvYmplY3QiJiYhKGFyZ3VtZW50c1swXWluc3RhbmNlb2YgJFR5cGVkQXJyYXkkKSYmIShhcmd1bWVudHNbMF1pbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxDbGFzcyhhcmd1bWVudHNbMF0pPT09IkFycmF5QnVmZmVyIikpe3JldHVybiBmdW5jdGlvbihhcnJheSl7dmFyIGJ5dGVMZW5ndGg9YXJyYXkubGVuZ3RoKnRoaXMuQllURVNfUEVSX0VMRU1FTlQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOm5ldyBBcnJheUJ1ZmZlcihieXRlTGVuZ3RoKX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlTGVuZ3RoIix7dmFsdWU6Ynl0ZUxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlT2Zmc2V0Iix7dmFsdWU6MH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJsZW5ndGgiLHt2YWx1ZTphcnJheS5sZW5ndGh9KTtmb3IodmFyIGk9MDtpPHRoaXMubGVuZ3RoO2krPTEpe3ZhciBzPWFycmF5W2ldO3RoaXMuX3NldHRlcihpLE51bWJlcihzKSl9fS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9aWYoYXJndW1lbnRzLmxlbmd0aD49MSYmVHlwZShhcmd1bWVudHNbMF0pPT09Im9iamVjdCImJihhcmd1bWVudHNbMF1pbnN0YW5jZW9mIEFycmF5QnVmZmVyfHxDbGFzcyhhcmd1bWVudHNbMF0pPT09IkFycmF5QnVmZmVyIikpe3JldHVybiBmdW5jdGlvbihidWZmZXIsYnl0ZU9mZnNldCxsZW5ndGgpe2J5dGVPZmZzZXQ9VG9VaW50MzIoYnl0ZU9mZnNldCk7aWYoYnl0ZU9mZnNldD5idWZmZXIuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJieXRlT2Zmc2V0IG91dCBvZiByYW5nZSIpO2lmKGJ5dGVPZmZzZXQldGhpcy5CWVRFU19QRVJfRUxFTUVOVCl0aHJvdyBSYW5nZUVycm9yKCJidWZmZXIgbGVuZ3RoIG1pbnVzIHRoZSBieXRlT2Zmc2V0IGlzIG5vdCBhIG11bHRpcGxlIG9mIHRoZSBlbGVtZW50IHNpemUuIik7aWYobGVuZ3RoPT09dW5kZWZpbmVkKXt2YXIgYnl0ZUxlbmd0aD1idWZmZXIuYnl0ZUxlbmd0aC1ieXRlT2Zmc2V0O2lmKGJ5dGVMZW5ndGgldGhpcy5CWVRFU19QRVJfRUxFTUVOVCl0aHJvdyBSYW5nZUVycm9yKCJsZW5ndGggb2YgYnVmZmVyIG1pbnVzIGJ5dGVPZmZzZXQgbm90IGEgbXVsdGlwbGUgb2YgdGhlIGVsZW1lbnQgc2l6ZSIpO2xlbmd0aD1ieXRlTGVuZ3RoL3RoaXMuQllURVNfUEVSX0VMRU1FTlR9ZWxzZXtsZW5ndGg9VG9VaW50MzIobGVuZ3RoKTtieXRlTGVuZ3RoPWxlbmd0aCp0aGlzLkJZVEVTX1BFUl9FTEVNRU5UfWlmKGJ5dGVPZmZzZXQrYnl0ZUxlbmd0aD5idWZmZXIuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJieXRlT2Zmc2V0IGFuZCBsZW5ndGggcmVmZXJlbmNlIGFuIGFyZWEgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlciIpO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJidWZmZXIiLHt2YWx1ZTpidWZmZXJ9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZUxlbmd0aCIse3ZhbHVlOmJ5dGVMZW5ndGh9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiYnl0ZU9mZnNldCIse3ZhbHVlOmJ5dGVPZmZzZXR9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywibGVuZ3RoIix7dmFsdWU6bGVuZ3RofSl9LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10aHJvdyBUeXBlRXJyb3IoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLCJmcm9tIix7dmFsdWU6ZnVuY3Rpb24oaXRlcmFibGUpe3JldHVybiBuZXcgdGhpcyhpdGVyYWJsZSl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JCwib2YiLHt2YWx1ZTpmdW5jdGlvbigpe3JldHVybiBuZXcgdGhpcyhhcmd1bWVudHMpfX0pO3ZhciAkVHlwZWRBcnJheVByb3RvdHlwZSQ9e307JFR5cGVkQXJyYXkkLnByb3RvdHlwZT0kVHlwZWRBcnJheVByb3RvdHlwZSQ7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsIl9nZXR0ZXIiLHt2YWx1ZTpmdW5jdGlvbihpbmRleCl7aWYoYXJndW1lbnRzLmxlbmd0aDwxKXRocm93IFN5bnRheEVycm9yKCJOb3QgZW5vdWdoIGFyZ3VtZW50cyIpO2luZGV4PVRvVWludDMyKGluZGV4KTtpZihpbmRleD49dGhpcy5sZW5ndGgpcmV0dXJuIHVuZGVmaW5lZDt2YXIgYnl0ZXM9W10saSxvO2ZvcihpPTAsbz10aGlzLmJ5dGVPZmZzZXQraW5kZXgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpPHRoaXMuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSxvKz0xKXtieXRlcy5wdXNoKHRoaXMuYnVmZmVyLl9ieXRlc1tvXSl9cmV0dXJuIHRoaXMuX3VucGFjayhieXRlcyl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImdldCIse3ZhbHVlOiRUeXBlZEFycmF5JC5wcm90b3R5cGUuX2dldHRlcn0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJfc2V0dGVyIix7dmFsdWU6ZnVuY3Rpb24oaW5kZXgsdmFsdWUpe2lmKGFyZ3VtZW50cy5sZW5ndGg8Mil0aHJvdyBTeW50YXhFcnJvcigiTm90IGVub3VnaCBhcmd1bWVudHMiKTtpbmRleD1Ub1VpbnQzMihpbmRleCk7aWYoaW5kZXg+PXRoaXMubGVuZ3RoKXJldHVybjt2YXIgYnl0ZXM9dGhpcy5fcGFjayh2YWx1ZSksaSxvO2ZvcihpPTAsbz10aGlzLmJ5dGVPZmZzZXQraW5kZXgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpPHRoaXMuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSxvKz0xKXt0aGlzLmJ1ZmZlci5fYnl0ZXNbb109Ynl0ZXNbaV19fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJjb25zdHJ1Y3RvciIse3ZhbHVlOiRUeXBlZEFycmF5JH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJjb3B5V2l0aGluIix7dmFsdWU6ZnVuY3Rpb24odGFyZ2V0LHN0YXJ0KXt2YXIgZW5kPWFyZ3VtZW50c1syXTt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTtsZW49bWF4KGxlbiwwKTt2YXIgcmVsYXRpdmVUYXJnZXQ9VG9JbnQzMih0YXJnZXQpO3ZhciB0bztpZihyZWxhdGl2ZVRhcmdldDwwKXRvPW1heChsZW4rcmVsYXRpdmVUYXJnZXQsMCk7ZWxzZSB0bz1taW4ocmVsYXRpdmVUYXJnZXQsbGVuKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgZnJvbTtpZihyZWxhdGl2ZVN0YXJ0PDApZnJvbT1tYXgobGVuK3JlbGF0aXZlU3RhcnQsMCk7ZWxzZSBmcm9tPW1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kO2lmKGVuZD09PXVuZGVmaW5lZClyZWxhdGl2ZUVuZD1sZW47ZWxzZSByZWxhdGl2ZUVuZD1Ub0ludDMyKGVuZCk7dmFyIGZpbmFsO2lmKHJlbGF0aXZlRW5kPDApZmluYWw9bWF4KGxlbityZWxhdGl2ZUVuZCwwKTtlbHNlIGZpbmFsPW1pbihyZWxhdGl2ZUVuZCxsZW4pO3ZhciBjb3VudD1taW4oZmluYWwtZnJvbSxsZW4tdG8pO3ZhciBkaXJlY3Rpb247aWYoZnJvbTx0byYmdG88ZnJvbStjb3VudCl7ZGlyZWN0aW9uPS0xO2Zyb209ZnJvbStjb3VudC0xO3RvPXRvK2NvdW50LTF9ZWxzZXtkaXJlY3Rpb249MX13aGlsZShjb3VudD4wKXtvLl9zZXR0ZXIodG8sby5fZ2V0dGVyKGZyb20pKTtmcm9tPWZyb20rZGlyZWN0aW9uO3RvPXRvK2RpcmVjdGlvbjtjb3VudD1jb3VudC0xfXJldHVybiBvfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJldmVyeSIse3ZhbHVlOmZ1bmN0aW9uKGNhbGxiYWNrZm4pe2lmKHRoaXM9PT11bmRlZmluZWR8fHRoaXM9PT1udWxsKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PU9iamVjdCh0aGlzKTt2YXIgbGVuPVRvVWludDMyKHQubGVuZ3RoKTtpZighSXNDYWxsYWJsZShjYWxsYmFja2ZuKSl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdGhpc0FyZz1hcmd1bWVudHNbMV07Zm9yKHZhciBpPTA7aTxsZW47aSsrKXtpZighY2FsbGJhY2tmbi5jYWxsKHRoaXNBcmcsdC5fZ2V0dGVyKGkpLGksdCkpcmV0dXJuIGZhbHNlfXJldHVybiB0cnVlfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaWxsIix7dmFsdWU6ZnVuY3Rpb24odmFsdWUpe3ZhciBzdGFydD1hcmd1bWVudHNbMV0sZW5kPWFyZ3VtZW50c1syXTt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTtsZW49bWF4KGxlbiwwKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgaztpZihyZWxhdGl2ZVN0YXJ0PDApaz1tYXgobGVuK3JlbGF0aXZlU3RhcnQsMCk7ZWxzZSBrPW1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kO2lmKGVuZD09PXVuZGVmaW5lZClyZWxhdGl2ZUVuZD1sZW47ZWxzZSByZWxhdGl2ZUVuZD1Ub0ludDMyKGVuZCk7dmFyIGZpbmFsO2lmKHJlbGF0aXZlRW5kPDApZmluYWw9bWF4KGxlbityZWxhdGl2ZUVuZCwwKTtlbHNlIGZpbmFsPW1pbihyZWxhdGl2ZUVuZCxsZW4pO3doaWxlKGs8ZmluYWwpe28uX3NldHRlcihrLHZhbHVlKTtrKz0xfXJldHVybiBvfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaWx0ZXIiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHJlcz1bXTt2YXIgdGhpc3A9YXJndW1lbnRzWzFdO2Zvcih2YXIgaT0wO2k8bGVuO2krKyl7dmFyIHZhbD10Ll9nZXR0ZXIoaSk7aWYoY2FsbGJhY2tmbi5jYWxsKHRoaXNwLHZhbCxpLHQpKXJlcy5wdXNoKHZhbCl9cmV0dXJuIG5ldyB0aGlzLmNvbnN0cnVjdG9yKHJlcyl9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImZpbmQiLHt2YWx1ZTpmdW5jdGlvbihwcmVkaWNhdGUpe3ZhciBvPVRvT2JqZWN0KHRoaXMpO3ZhciBsZW5WYWx1ZT1vLmxlbmd0aDt2YXIgbGVuPVRvVWludDMyKGxlblZhbHVlKTtpZighSXNDYWxsYWJsZShwcmVkaWNhdGUpKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dW5kZWZpbmVkO3ZhciBrPTA7d2hpbGUoazxsZW4pe3ZhciBrVmFsdWU9by5fZ2V0dGVyKGspO3ZhciB0ZXN0UmVzdWx0PXByZWRpY2F0ZS5jYWxsKHQsa1ZhbHVlLGssbyk7aWYoQm9vbGVhbih0ZXN0UmVzdWx0KSlyZXR1cm4ga1ZhbHVlOysra31yZXR1cm4gdW5kZWZpbmVkfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJmaW5kSW5kZXgiLHt2YWx1ZTpmdW5jdGlvbihwcmVkaWNhdGUpe3ZhciBvPVRvT2JqZWN0KHRoaXMpO3ZhciBsZW5WYWx1ZT1vLmxlbmd0aDt2YXIgbGVuPVRvVWludDMyKGxlblZhbHVlKTtpZighSXNDYWxsYWJsZShwcmVkaWNhdGUpKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PWFyZ3VtZW50cy5sZW5ndGg+MT9hcmd1bWVudHNbMV06dW5kZWZpbmVkO3ZhciBrPTA7d2hpbGUoazxsZW4pe3ZhciBrVmFsdWU9by5fZ2V0dGVyKGspO3ZhciB0ZXN0UmVzdWx0PXByZWRpY2F0ZS5jYWxsKHQsa1ZhbHVlLGssbyk7aWYoQm9vbGVhbih0ZXN0UmVzdWx0KSlyZXR1cm4gazsrK2t9cmV0dXJuLTF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImZvckVhY2giLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHRoaXNwPWFyZ3VtZW50c1sxXTtmb3IodmFyIGk9MDtpPGxlbjtpKyspY2FsbGJhY2tmbi5jYWxsKHRoaXNwLHQuX2dldHRlcihpKSxpLHQpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJpbmRleE9mIix7dmFsdWU6ZnVuY3Rpb24oc2VhcmNoRWxlbWVudCl7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO2lmKGxlbj09PTApcmV0dXJuLTE7dmFyIG49MDtpZihhcmd1bWVudHMubGVuZ3RoPjApe249TnVtYmVyKGFyZ3VtZW50c1sxXSk7aWYobiE9PW4pe249MH1lbHNlIGlmKG4hPT0wJiZuIT09MS8wJiZuIT09LSgxLzApKXtuPShuPjB8fC0xKSpmbG9vcihhYnMobikpfX1pZihuPj1sZW4pcmV0dXJuLTE7dmFyIGs9bj49MD9uOm1heChsZW4tYWJzKG4pLDApO2Zvcig7azxsZW47aysrKXtpZih0Ll9nZXR0ZXIoayk9PT1zZWFyY2hFbGVtZW50KXtyZXR1cm4ga319cmV0dXJuLTF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsImpvaW4iLHt2YWx1ZTpmdW5jdGlvbihzZXBhcmF0b3Ipe2lmKHRoaXM9PT11bmRlZmluZWR8fHRoaXM9PT1udWxsKXRocm93IFR5cGVFcnJvcigpO3ZhciB0PU9iamVjdCh0aGlzKTt2YXIgbGVuPVRvVWludDMyKHQubGVuZ3RoKTt2YXIgdG1wPUFycmF5KGxlbik7Zm9yKHZhciBpPTA7aTxsZW47KytpKXRtcFtpXT10Ll9nZXR0ZXIoaSk7cmV0dXJuIHRtcC5qb2luKHNlcGFyYXRvcj09PXVuZGVmaW5lZD8iLCI6c2VwYXJhdG9yKX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwibGFzdEluZGV4T2YiLHt2YWx1ZTpmdW5jdGlvbihzZWFyY2hFbGVtZW50KXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYobGVuPT09MClyZXR1cm4tMTt2YXIgbj1sZW47aWYoYXJndW1lbnRzLmxlbmd0aD4xKXtuPU51bWJlcihhcmd1bWVudHNbMV0pO2lmKG4hPT1uKXtuPTB9ZWxzZSBpZihuIT09MCYmbiE9PTEvMCYmbiE9PS0oMS8wKSl7bj0obj4wfHwtMSkqZmxvb3IoYWJzKG4pKX19dmFyIGs9bj49MD9taW4obixsZW4tMSk6bGVuLWFicyhuKTtmb3IoO2s+PTA7ay0tKXtpZih0Ll9nZXR0ZXIoayk9PT1zZWFyY2hFbGVtZW50KXJldHVybiBrfXJldHVybi0xfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJtYXAiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHJlcz1bXTtyZXMubGVuZ3RoPWxlbjt2YXIgdGhpc3A9YXJndW1lbnRzWzFdO2Zvcih2YXIgaT0wO2k8bGVuO2krKylyZXNbaV09Y2FsbGJhY2tmbi5jYWxsKHRoaXNwLHQuX2dldHRlcihpKSxpLHQpO3JldHVybiBuZXcgdGhpcy5jb25zdHJ1Y3RvcihyZXMpfX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSgkVHlwZWRBcnJheSQucHJvdG90eXBlLCJyZWR1Y2UiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7aWYobGVuPT09MCYmYXJndW1lbnRzLmxlbmd0aD09PTEpdGhyb3cgVHlwZUVycm9yKCk7dmFyIGs9MDt2YXIgYWNjdW11bGF0b3I7aWYoYXJndW1lbnRzLmxlbmd0aD49Mil7YWNjdW11bGF0b3I9YXJndW1lbnRzWzFdfWVsc2V7YWNjdW11bGF0b3I9dC5fZ2V0dGVyKGsrKyl9d2hpbGUoazxsZW4pe2FjY3VtdWxhdG9yPWNhbGxiYWNrZm4uY2FsbCh1bmRlZmluZWQsYWNjdW11bGF0b3IsdC5fZ2V0dGVyKGspLGssdCk7aysrfXJldHVybiBhY2N1bXVsYXRvcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwicmVkdWNlUmlnaHQiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7aWYobGVuPT09MCYmYXJndW1lbnRzLmxlbmd0aD09PTEpdGhyb3cgVHlwZUVycm9yKCk7dmFyIGs9bGVuLTE7dmFyIGFjY3VtdWxhdG9yO2lmKGFyZ3VtZW50cy5sZW5ndGg+PTIpe2FjY3VtdWxhdG9yPWFyZ3VtZW50c1sxXX1lbHNle2FjY3VtdWxhdG9yPXQuX2dldHRlcihrLS0pfXdoaWxlKGs+PTApe2FjY3VtdWxhdG9yPWNhbGxiYWNrZm4uY2FsbCh1bmRlZmluZWQsYWNjdW11bGF0b3IsdC5fZ2V0dGVyKGspLGssdCk7ay0tfXJldHVybiBhY2N1bXVsYXRvcn19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwicmV2ZXJzZSIse3ZhbHVlOmZ1bmN0aW9uKCl7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO3ZhciBoYWxmPWZsb29yKGxlbi8yKTtmb3IodmFyIGk9MCxqPWxlbi0xO2k8aGFsZjsrK2ksLS1qKXt2YXIgdG1wPXQuX2dldHRlcihpKTt0Ll9zZXR0ZXIoaSx0Ll9nZXR0ZXIoaikpO3QuX3NldHRlcihqLHRtcCl9cmV0dXJuIHR9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNldCIse3ZhbHVlOmZ1bmN0aW9uKGluZGV4LHZhbHVlKXtpZihhcmd1bWVudHMubGVuZ3RoPDEpdGhyb3cgU3ludGF4RXJyb3IoIk5vdCBlbm91Z2ggYXJndW1lbnRzIik7dmFyIGFycmF5LHNlcXVlbmNlLG9mZnNldCxsZW4saSxzLGQsYnl0ZU9mZnNldCxieXRlTGVuZ3RoLHRtcDtpZih0eXBlb2YgYXJndW1lbnRzWzBdPT09Im9iamVjdCImJmFyZ3VtZW50c1swXS5jb25zdHJ1Y3Rvcj09PXRoaXMuY29uc3RydWN0b3Ipe2FycmF5PWFyZ3VtZW50c1swXTtvZmZzZXQ9VG9VaW50MzIoYXJndW1lbnRzWzFdKTtpZihvZmZzZXQrYXJyYXkubGVuZ3RoPnRoaXMubGVuZ3RoKXt0aHJvdyBSYW5nZUVycm9yKCJPZmZzZXQgcGx1cyBsZW5ndGggb2YgYXJyYXkgaXMgb3V0IG9mIHJhbmdlIil9Ynl0ZU9mZnNldD10aGlzLmJ5dGVPZmZzZXQrb2Zmc2V0KnRoaXMuQllURVNfUEVSX0VMRU1FTlQ7Ynl0ZUxlbmd0aD1hcnJheS5sZW5ndGgqdGhpcy5CWVRFU19QRVJfRUxFTUVOVDtpZihhcnJheS5idWZmZXI9PT10aGlzLmJ1ZmZlcil7dG1wPVtdO2ZvcihpPTAscz1hcnJheS5ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLHMrPTEpe3RtcFtpXT1hcnJheS5idWZmZXIuX2J5dGVzW3NdfWZvcihpPTAsZD1ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLGQrPTEpe3RoaXMuYnVmZmVyLl9ieXRlc1tkXT10bXBbaV19fWVsc2V7Zm9yKGk9MCxzPWFycmF5LmJ5dGVPZmZzZXQsZD1ieXRlT2Zmc2V0O2k8Ynl0ZUxlbmd0aDtpKz0xLHMrPTEsZCs9MSl7dGhpcy5idWZmZXIuX2J5dGVzW2RdPWFycmF5LmJ1ZmZlci5fYnl0ZXNbc119fX1lbHNlIGlmKHR5cGVvZiBhcmd1bWVudHNbMF09PT0ib2JqZWN0IiYmdHlwZW9mIGFyZ3VtZW50c1swXS5sZW5ndGghPT0idW5kZWZpbmVkIil7c2VxdWVuY2U9YXJndW1lbnRzWzBdO2xlbj1Ub1VpbnQzMihzZXF1ZW5jZS5sZW5ndGgpO29mZnNldD1Ub1VpbnQzMihhcmd1bWVudHNbMV0pO2lmKG9mZnNldCtsZW4+dGhpcy5sZW5ndGgpe3Rocm93IFJhbmdlRXJyb3IoIk9mZnNldCBwbHVzIGxlbmd0aCBvZiBhcnJheSBpcyBvdXQgb2YgcmFuZ2UiKX1mb3IoaT0wO2k8bGVuO2krPTEpe3M9c2VxdWVuY2VbaV07dGhpcy5fc2V0dGVyKG9mZnNldCtpLE51bWJlcihzKSl9fWVsc2V7dGhyb3cgVHlwZUVycm9yKCJVbmV4cGVjdGVkIGFyZ3VtZW50IHR5cGUocykiKX19fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNsaWNlIix7dmFsdWU6ZnVuY3Rpb24oc3RhcnQsZW5kKXt2YXIgbz1Ub09iamVjdCh0aGlzKTt2YXIgbGVuVmFsPW8ubGVuZ3RoO3ZhciBsZW49VG9VaW50MzIobGVuVmFsKTt2YXIgcmVsYXRpdmVTdGFydD1Ub0ludDMyKHN0YXJ0KTt2YXIgaz1yZWxhdGl2ZVN0YXJ0PDA/bWF4KGxlbityZWxhdGl2ZVN0YXJ0LDApOm1pbihyZWxhdGl2ZVN0YXJ0LGxlbik7dmFyIHJlbGF0aXZlRW5kPWVuZD09PXVuZGVmaW5lZD9sZW46VG9JbnQzMihlbmQpO3ZhciBmaW5hbD1yZWxhdGl2ZUVuZDwwP21heChsZW4rcmVsYXRpdmVFbmQsMCk6bWluKHJlbGF0aXZlRW5kLGxlbik7dmFyIGNvdW50PWZpbmFsLWs7dmFyIGM9by5jb25zdHJ1Y3Rvcjt2YXIgYT1uZXcgYyhjb3VudCk7dmFyIG49MDt3aGlsZShrPGZpbmFsKXt2YXIga1ZhbHVlPW8uX2dldHRlcihrKTthLl9zZXR0ZXIobixrVmFsdWUpOysrazsrK259cmV0dXJuIGF9fSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KCRUeXBlZEFycmF5JC5wcm90b3R5cGUsInNvbWUiLHt2YWx1ZTpmdW5jdGlvbihjYWxsYmFja2ZuKXtpZih0aGlzPT09dW5kZWZpbmVkfHx0aGlzPT09bnVsbCl0aHJvdyBUeXBlRXJyb3IoKTt2YXIgdD1PYmplY3QodGhpcyk7dmFyIGxlbj1Ub1VpbnQzMih0Lmxlbmd0aCk7aWYoIUlzQ2FsbGFibGUoY2FsbGJhY2tmbikpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHRoaXNwPWFyZ3VtZW50c1sxXTtmb3IodmFyIGk9MDtpPGxlbjtpKyspe2lmKGNhbGxiYWNrZm4uY2FsbCh0aGlzcCx0Ll9nZXR0ZXIoaSksaSx0KSl7cmV0dXJuIHRydWV9fXJldHVybiBmYWxzZX19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwic29ydCIse3ZhbHVlOmZ1bmN0aW9uKGNvbXBhcmVmbil7aWYodGhpcz09PXVuZGVmaW5lZHx8dGhpcz09PW51bGwpdGhyb3cgVHlwZUVycm9yKCk7dmFyIHQ9T2JqZWN0KHRoaXMpO3ZhciBsZW49VG9VaW50MzIodC5sZW5ndGgpO3ZhciB0bXA9QXJyYXkobGVuKTtmb3IodmFyIGk9MDtpPGxlbjsrK2kpdG1wW2ldPXQuX2dldHRlcihpKTtpZihjb21wYXJlZm4pdG1wLnNvcnQoY29tcGFyZWZuKTtlbHNlIHRtcC5zb3J0KCk7Zm9yKGk9MDtpPGxlbjsrK2kpdC5fc2V0dGVyKGksdG1wW2ldKTtyZXR1cm4gdH19KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoJFR5cGVkQXJyYXkkLnByb3RvdHlwZSwic3ViYXJyYXkiLHt2YWx1ZTpmdW5jdGlvbihzdGFydCxlbmQpe2Z1bmN0aW9uIGNsYW1wKHYsbWluLG1heCl7cmV0dXJuIHY8bWluP21pbjp2Pm1heD9tYXg6dn1zdGFydD1Ub0ludDMyKHN0YXJ0KTtlbmQ9VG9JbnQzMihlbmQpO2lmKGFyZ3VtZW50cy5sZW5ndGg8MSl7c3RhcnQ9MH1pZihhcmd1bWVudHMubGVuZ3RoPDIpe2VuZD10aGlzLmxlbmd0aH1pZihzdGFydDwwKXtzdGFydD10aGlzLmxlbmd0aCtzdGFydH1pZihlbmQ8MCl7ZW5kPXRoaXMubGVuZ3RoK2VuZH1zdGFydD1jbGFtcChzdGFydCwwLHRoaXMubGVuZ3RoKTtlbmQ9Y2xhbXAoZW5kLDAsdGhpcy5sZW5ndGgpO3ZhciBsZW49ZW5kLXN0YXJ0O2lmKGxlbjwwKXtsZW49MH1yZXR1cm4gbmV3IHRoaXMuY29uc3RydWN0b3IodGhpcy5idWZmZXIsdGhpcy5ieXRlT2Zmc2V0K3N0YXJ0KnRoaXMuQllURVNfUEVSX0VMRU1FTlQsbGVuKX19KTtmdW5jdGlvbiBtYWtlVHlwZWRBcnJheShlbGVtZW50U2l6ZSxwYWNrLHVucGFjayl7dmFyIFR5cGVkQXJyYXk9ZnVuY3Rpb24oKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywiY29uc3RydWN0b3IiLHt2YWx1ZTpUeXBlZEFycmF5fSk7JFR5cGVkQXJyYXkkLmFwcGx5KHRoaXMsYXJndW1lbnRzKTttYWtlQXJyYXlBY2Nlc3NvcnModGhpcyl9O2lmKCJfX3Byb3RvX18iaW4gVHlwZWRBcnJheSl7VHlwZWRBcnJheS5fX3Byb3RvX189JFR5cGVkQXJyYXkkfWVsc2V7VHlwZWRBcnJheS5mcm9tPSRUeXBlZEFycmF5JC5mcm9tO1R5cGVkQXJyYXkub2Y9JFR5cGVkQXJyYXkkLm9mfVR5cGVkQXJyYXkuQllURVNfUEVSX0VMRU1FTlQ9ZWxlbWVudFNpemU7dmFyIFR5cGVkQXJyYXlQcm90b3R5cGU9ZnVuY3Rpb24oKXt9O1R5cGVkQXJyYXlQcm90b3R5cGUucHJvdG90eXBlPSRUeXBlZEFycmF5UHJvdG90eXBlJDtUeXBlZEFycmF5LnByb3RvdHlwZT1uZXcgVHlwZWRBcnJheVByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZWRBcnJheS5wcm90b3R5cGUsIkJZVEVTX1BFUl9FTEVNRU5UIix7dmFsdWU6ZWxlbWVudFNpemV9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoVHlwZWRBcnJheS5wcm90b3R5cGUsIl9wYWNrIix7dmFsdWU6cGFja30pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShUeXBlZEFycmF5LnByb3RvdHlwZSwiX3VucGFjayIse3ZhbHVlOnVucGFja30pO3JldHVybiBUeXBlZEFycmF5fXZhciBJbnQ4QXJyYXk9bWFrZVR5cGVkQXJyYXkoMSxwYWNrSTgsdW5wYWNrSTgpO3ZhciBVaW50OEFycmF5PW1ha2VUeXBlZEFycmF5KDEscGFja1U4LHVucGFja1U4KTt2YXIgVWludDhDbGFtcGVkQXJyYXk9bWFrZVR5cGVkQXJyYXkoMSxwYWNrVThDbGFtcGVkLHVucGFja1U4KTt2YXIgSW50MTZBcnJheT1tYWtlVHlwZWRBcnJheSgyLHBhY2tJMTYsdW5wYWNrSTE2KTt2YXIgVWludDE2QXJyYXk9bWFrZVR5cGVkQXJyYXkoMixwYWNrVTE2LHVucGFja1UxNik7dmFyIEludDMyQXJyYXk9bWFrZVR5cGVkQXJyYXkoNCxwYWNrSTMyLHVucGFja0kzMik7dmFyIFVpbnQzMkFycmF5PW1ha2VUeXBlZEFycmF5KDQscGFja1UzMix1bnBhY2tVMzIpO3ZhciBGbG9hdDMyQXJyYXk9bWFrZVR5cGVkQXJyYXkoNCxwYWNrRjMyLHVucGFja0YzMik7dmFyIEZsb2F0NjRBcnJheT1tYWtlVHlwZWRBcnJheSg4LHBhY2tGNjQsdW5wYWNrRjY0KTtnbG9iYWwuSW50OEFycmF5PWdsb2JhbC5JbnQ4QXJyYXl8fEludDhBcnJheTtnbG9iYWwuVWludDhBcnJheT1nbG9iYWwuVWludDhBcnJheXx8VWludDhBcnJheTtnbG9iYWwuVWludDhDbGFtcGVkQXJyYXk9Z2xvYmFsLlVpbnQ4Q2xhbXBlZEFycmF5fHxVaW50OENsYW1wZWRBcnJheTtnbG9iYWwuSW50MTZBcnJheT1nbG9iYWwuSW50MTZBcnJheXx8SW50MTZBcnJheTtnbG9iYWwuVWludDE2QXJyYXk9Z2xvYmFsLlVpbnQxNkFycmF5fHxVaW50MTZBcnJheTtnbG9iYWwuSW50MzJBcnJheT1nbG9iYWwuSW50MzJBcnJheXx8SW50MzJBcnJheTtnbG9iYWwuVWludDMyQXJyYXk9Z2xvYmFsLlVpbnQzMkFycmF5fHxVaW50MzJBcnJheTtnbG9iYWwuRmxvYXQzMkFycmF5PWdsb2JhbC5GbG9hdDMyQXJyYXl8fEZsb2F0MzJBcnJheTtnbG9iYWwuRmxvYXQ2NEFycmF5PWdsb2JhbC5GbG9hdDY0QXJyYXl8fEZsb2F0NjRBcnJheX0pKCk7KGZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihhcnJheSxpbmRleCl7cmV0dXJuIElzQ2FsbGFibGUoYXJyYXkuZ2V0KT9hcnJheS5nZXQoaW5kZXgpOmFycmF5W2luZGV4XX12YXIgSVNfQklHX0VORElBTj1mdW5jdGlvbigpe3ZhciB1MTZhcnJheT1uZXcgVWludDE2QXJyYXkoWzQ2NjBdKSx1OGFycmF5PW5ldyBVaW50OEFycmF5KHUxNmFycmF5LmJ1ZmZlcik7cmV0dXJuIHIodThhcnJheSwwKT09PTE4fSgpO2Z1bmN0aW9uIERhdGFWaWV3KGJ1ZmZlcixieXRlT2Zmc2V0LGJ5dGVMZW5ndGgpe2lmKCEoYnVmZmVyIGluc3RhbmNlb2YgQXJyYXlCdWZmZXJ8fENsYXNzKGJ1ZmZlcik9PT0iQXJyYXlCdWZmZXIiKSl0aHJvdyBUeXBlRXJyb3IoKTtieXRlT2Zmc2V0PVRvVWludDMyKGJ5dGVPZmZzZXQpO2lmKGJ5dGVPZmZzZXQ+YnVmZmVyLmJ5dGVMZW5ndGgpdGhyb3cgUmFuZ2VFcnJvcigiYnl0ZU9mZnNldCBvdXQgb2YgcmFuZ2UiKTtpZihieXRlTGVuZ3RoPT09dW5kZWZpbmVkKWJ5dGVMZW5ndGg9YnVmZmVyLmJ5dGVMZW5ndGgtYnl0ZU9mZnNldDtlbHNlIGJ5dGVMZW5ndGg9VG9VaW50MzIoYnl0ZUxlbmd0aCk7aWYoYnl0ZU9mZnNldCtieXRlTGVuZ3RoPmJ1ZmZlci5ieXRlTGVuZ3RoKXRocm93IFJhbmdlRXJyb3IoImJ5dGVPZmZzZXQgYW5kIGxlbmd0aCByZWZlcmVuY2UgYW4gYXJlYSBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgYnVmZmVyIik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsImJ1ZmZlciIse3ZhbHVlOmJ1ZmZlcn0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlTGVuZ3RoIix7dmFsdWU6Ynl0ZUxlbmd0aH0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCJieXRlT2Zmc2V0Iix7dmFsdWU6Ynl0ZU9mZnNldH0pfWZ1bmN0aW9uIG1ha2VHZXR0ZXIoYXJyYXlUeXBlKXtyZXR1cm4gZnVuY3Rpb24gR2V0Vmlld1ZhbHVlKGJ5dGVPZmZzZXQsbGl0dGxlRW5kaWFuKXtieXRlT2Zmc2V0PVRvVWludDMyKGJ5dGVPZmZzZXQpO2lmKGJ5dGVPZmZzZXQrYXJyYXlUeXBlLkJZVEVTX1BFUl9FTEVNRU5UPnRoaXMuYnl0ZUxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKCJBcnJheSBpbmRleCBvdXQgb2YgcmFuZ2UiKTtieXRlT2Zmc2V0Kz10aGlzLmJ5dGVPZmZzZXQ7dmFyIHVpbnQ4QXJyYXk9bmV3IFVpbnQ4QXJyYXkodGhpcy5idWZmZXIsYnl0ZU9mZnNldCxhcnJheVR5cGUuQllURVNfUEVSX0VMRU1FTlQpLGJ5dGVzPVtdO2Zvcih2YXIgaT0wO2k8YXJyYXlUeXBlLkJZVEVTX1BFUl9FTEVNRU5UO2krPTEpYnl0ZXMucHVzaChyKHVpbnQ4QXJyYXksaSkpO2lmKEJvb2xlYW4obGl0dGxlRW5kaWFuKT09PUJvb2xlYW4oSVNfQklHX0VORElBTikpYnl0ZXMucmV2ZXJzZSgpO3JldHVybiByKG5ldyBhcnJheVR5cGUobmV3IFVpbnQ4QXJyYXkoYnl0ZXMpLmJ1ZmZlciksMCl9fU9iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldFVpbnQ4Iix7dmFsdWU6bWFrZUdldHRlcihVaW50OEFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEludDgiLHt2YWx1ZTptYWtlR2V0dGVyKEludDhBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJnZXRVaW50MTYiLHt2YWx1ZTptYWtlR2V0dGVyKFVpbnQxNkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEludDE2Iix7dmFsdWU6bWFrZUdldHRlcihJbnQxNkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldFVpbnQzMiIse3ZhbHVlOm1ha2VHZXR0ZXIoVWludDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwiZ2V0SW50MzIiLHt2YWx1ZTptYWtlR2V0dGVyKEludDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwiZ2V0RmxvYXQzMiIse3ZhbHVlOm1ha2VHZXR0ZXIoRmxvYXQzMkFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsImdldEZsb2F0NjQiLHt2YWx1ZTptYWtlR2V0dGVyKEZsb2F0NjRBcnJheSl9KTtmdW5jdGlvbiBtYWtlU2V0dGVyKGFycmF5VHlwZSl7cmV0dXJuIGZ1bmN0aW9uIFNldFZpZXdWYWx1ZShieXRlT2Zmc2V0LHZhbHVlLGxpdHRsZUVuZGlhbil7Ynl0ZU9mZnNldD1Ub1VpbnQzMihieXRlT2Zmc2V0KTtpZihieXRlT2Zmc2V0K2FycmF5VHlwZS5CWVRFU19QRVJfRUxFTUVOVD50aGlzLmJ5dGVMZW5ndGgpdGhyb3cgUmFuZ2VFcnJvcigiQXJyYXkgaW5kZXggb3V0IG9mIHJhbmdlIik7dmFyIHR5cGVBcnJheT1uZXcgYXJyYXlUeXBlKFt2YWx1ZV0pLGJ5dGVBcnJheT1uZXcgVWludDhBcnJheSh0eXBlQXJyYXkuYnVmZmVyKSxieXRlcz1bXSxpLGJ5dGVWaWV3O2ZvcihpPTA7aTxhcnJheVR5cGUuQllURVNfUEVSX0VMRU1FTlQ7aSs9MSlieXRlcy5wdXNoKHIoYnl0ZUFycmF5LGkpKTtpZihCb29sZWFuKGxpdHRsZUVuZGlhbik9PT1Cb29sZWFuKElTX0JJR19FTkRJQU4pKWJ5dGVzLnJldmVyc2UoKTtieXRlVmlldz1uZXcgVWludDhBcnJheSh0aGlzLmJ1ZmZlcixieXRlT2Zmc2V0LGFycmF5VHlwZS5CWVRFU19QRVJfRUxFTUVOVCk7Ynl0ZVZpZXcuc2V0KGJ5dGVzKX19T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0VWludDgiLHt2YWx1ZTptYWtlU2V0dGVyKFVpbnQ4QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0SW50OCIse3ZhbHVlOm1ha2VTZXR0ZXIoSW50OEFycmF5KX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0eShEYXRhVmlldy5wcm90b3R5cGUsInNldFVpbnQxNiIse3ZhbHVlOm1ha2VTZXR0ZXIoVWludDE2QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0SW50MTYiLHt2YWx1ZTptYWtlU2V0dGVyKEludDE2QXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0VWludDMyIix7dmFsdWU6bWFrZVNldHRlcihVaW50MzJBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJzZXRJbnQzMiIse3ZhbHVlOm1ha2VTZXR0ZXIoSW50MzJBcnJheSl9KTtPYmplY3QuZGVmaW5lUHJvcGVydHkoRGF0YVZpZXcucHJvdG90eXBlLCJzZXRGbG9hdDMyIix7dmFsdWU6bWFrZVNldHRlcihGbG9hdDMyQXJyYXkpfSk7T2JqZWN0LmRlZmluZVByb3BlcnR5KERhdGFWaWV3LnByb3RvdHlwZSwic2V0RmxvYXQ2NCIse3ZhbHVlOm1ha2VTZXR0ZXIoRmxvYXQ2NEFycmF5KX0pO2dsb2JhbC5EYXRhVmlldz1nbG9iYWwuRGF0YVZpZXd8fERhdGFWaWV3fSkoKX0pKHRoaXMpOw=="></script>
<link href="data:text/css,%0A%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20%2D30px%3B%0Amargin%2Dright%3A%20%2D30px%3B%0Awhite%2Dspace%3A%20normal%3B%0A%7D%0A%0Abody%20%3E%20%2Econtainer%2Dfluid%2Ecrosstalk%2Dbscols%20%7B%0Amargin%2Dleft%3A%20auto%3B%0Amargin%2Dright%3A%20auto%3B%0A%7D%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20inline%2Dblock%3B%0Apadding%2Dright%3A%2012px%3B%0Avertical%2Dalign%3A%20top%3B%0A%7D%0A%40media%20only%20screen%20and%20%28max%2Dwidth%3A480px%29%20%7B%0A%2Ecrosstalk%2Dinput%2Dcheckboxgroup%20%2Ecrosstalk%2Doptions%2Dgroup%20%2Ecrosstalk%2Doptions%2Dcolumn%20%7B%0Adisplay%3A%20block%3B%0Apadding%2Dright%3A%20inherit%3B%0A%7D%0A%7D%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,IWZ1bmN0aW9uIG8odSxhLGwpe2Z1bmN0aW9uIHMobixlKXtpZighYVtuXSl7aWYoIXVbbl0pe3ZhciB0PSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlO2lmKCFlJiZ0KXJldHVybiB0KG4sITApO2lmKGYpcmV0dXJuIGYobiwhMCk7dmFyIHI9bmV3IEVycm9yKCJDYW5ub3QgZmluZCBtb2R1bGUgJyIrbisiJyIpO3Rocm93IHIuY29kZT0iTU9EVUxFX05PVF9GT1VORCIscn12YXIgaT1hW25dPXtleHBvcnRzOnt9fTt1W25dWzBdLmNhbGwoaS5leHBvcnRzLGZ1bmN0aW9uKGUpe3ZhciB0PXVbbl1bMV1bZV07cmV0dXJuIHModHx8ZSl9LGksaS5leHBvcnRzLG8sdSxhLGwpfXJldHVybiBhW25dLmV4cG9ydHN9Zm9yKHZhciBmPSJmdW5jdGlvbiI9PXR5cGVvZiByZXF1aXJlJiZyZXF1aXJlLGU9MDtlPGwubGVuZ3RoO2UrKylzKGxbZV0pO3JldHVybiBzfSh7MTpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIHI9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCk7dmFyIGk9ZnVuY3Rpb24oKXtmdW5jdGlvbiBlKCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsZSksdGhpcy5fdHlwZXM9e30sdGhpcy5fc2VxPTB9cmV0dXJuIHIoZSxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fdHlwZXNbZV07bnx8KG49dGhpcy5fdHlwZXNbZV09e30pO3ZhciByPSJzdWIiK3RoaXMuX3NlcSsrO3JldHVybiBuW3JdPXQscn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl90eXBlc1tlXTtpZigiZnVuY3Rpb24iPT10eXBlb2YgdCl7Zm9yKHZhciByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmbltyXT09PXQpcmV0dXJuIGRlbGV0ZSBuW3JdLHI7cmV0dXJuITF9aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiEoIW58fCFuW3RdKSYmKGRlbGV0ZSBuW3RdLHQpO3Rocm93IG5ldyBFcnJvcigiVW5leHBlY3RlZCB0eXBlIGZvciBsaXN0ZW5lciIpfX0se2tleToidHJpZ2dlciIsdmFsdWU6ZnVuY3Rpb24oZSx0LG4pe3ZhciByPXRoaXMuX3R5cGVzW2VdO2Zvcih2YXIgaSBpbiByKXIuaGFzT3duUHJvcGVydHkoaSkmJnJbaV0uY2FsbChuLHQpfX1dKSxlfSgpO24uZGVmYXVsdD1pfSx7fV0sMjpbZnVuY3Rpb24oZSx0LG4peyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkobiwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSksbi5GaWx0ZXJIYW5kbGU9dm9pZCAwO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGk9bChlKCIuL2V2ZW50cyIpKSxvPWwoZSgiLi9maWx0ZXJzZXQiKSksdT1sKGUoIi4vZ3JvdXAiKSksYT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fXZhciBzPTE7bi5GaWx0ZXJIYW5kbGU9ZnVuY3Rpb24oKXtmdW5jdGlvbiBuKGUsdCl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IGEuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX2ZpbHRlclNldD1udWxsLHRoaXMuX2ZpbHRlclZhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPWEuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5faWQ9ImZpbHRlciIrcysrLHRoaXMuc2V0R3JvdXAoZSl9cmV0dXJuIHIobixbe2tleToic2V0R3JvdXAiLHZhbHVlOmZ1bmN0aW9uKGUpe3ZhciB0LG4scj10aGlzO2lmKHRoaXMuX2dyb3VwIT09ZSYmKCh0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl9maWx0ZXJWYXImJih0aGlzLl9maWx0ZXJWYXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLmNsZWFyKCksdGhpcy5fdmFyT25DaGFuZ2VTdWI9bnVsbCx0aGlzLl9maWx0ZXJWYXI9bnVsbCx0aGlzLl9maWx0ZXJTZXQ9bnVsbCksdGhpcy5fZ3JvdXA9ZSkpKXtlPSgwLHUuZGVmYXVsdCkoZSksdGhpcy5fZmlsdGVyU2V0PSh0PWUudmFyKCJmaWx0ZXJzZXQiKSwobj10LmdldCgpKXx8KG49bmV3IG8uZGVmYXVsdCx0LnNldChuKSksbiksdGhpcy5fZmlsdGVyVmFyPSgwLHUuZGVmYXVsdCkoZSkudmFyKCJmaWx0ZXIiKTt2YXIgaT10aGlzLl9maWx0ZXJWYXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7ci5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUscil9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj1pfX19LHtrZXk6Il9tZXJnZUV4dHJhSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIGEuZXh0ZW5kKHt9LHRoaXMuX2V4dHJhSW5mbz90aGlzLl9leHRyYUluZm86bnVsbCxlfHxudWxsKX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5jbGVhcigpLHRoaXMuc2V0R3JvdXAobnVsbCl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LmNsZWFyKHRoaXMuX2lkKSx0aGlzLl9vbkNoYW5nZShlKSl9fSx7a2V5OiJzZXQiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dGhpcy5fZmlsdGVyU2V0JiYodGhpcy5fZmlsdGVyU2V0LnVwZGF0ZSh0aGlzLl9pZCxlKSx0aGlzLl9vbkNoYW5nZSh0KSl9fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vbihlLHQpfX0se2tleToib2ZmIix2YWx1ZTpmdW5jdGlvbihlLHQpe3JldHVybiB0aGlzLl9lbWl0dGVyLm9mZihlLHQpfX0se2tleToiX29uQ2hhbmdlIix2YWx1ZTpmdW5jdGlvbihlKXt0aGlzLl9maWx0ZXJTZXQmJnRoaXMuX2ZpbHRlclZhci5zZXQodGhpcy5fZmlsdGVyU2V0LnZhbHVlLHRoaXMuX21lcmdlRXh0cmFJbmZvKGUpKX19LHtrZXk6ImZpbHRlcmVkS2V5cyIsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2ZpbHRlclNldD90aGlzLl9maWx0ZXJTZXQudmFsdWU6bnVsbH19XSksbn0oKX0seyIuL2V2ZW50cyI6MSwiLi9maWx0ZXJzZXQiOjMsIi4vZ3JvdXAiOjQsIi4vdXRpbCI6MTF9XSwzOltmdW5jdGlvbihlLHQsbil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxhPWUoIi4vdXRpbCIpO2Z1bmN0aW9uIGwoZSx0KXtyZXR1cm4gZT09PXQ/MDplPHQ/LTE6dDxlPzE6dm9pZCAwfXZhciBpPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZSgpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLGUpLHRoaXMucmVzZXQoKX1yZXR1cm4gcihlLFt7a2V5OiJyZXNldCIsdmFsdWU6ZnVuY3Rpb24oKXt0aGlzLl9oYW5kbGVzPXt9LHRoaXMuX2tleXM9e30sdGhpcy5fdmFsdWU9bnVsbCx0aGlzLl9hY3RpdmVIYW5kbGVzPTB9fSx7a2V5OiJ1cGRhdGUiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7bnVsbCE9PXQmJih0PXQuc2xpY2UoMCkpLnNvcnQobCk7dmFyIG49KDAsYS5kaWZmU29ydGVkTGlzdHMpKHRoaXMuX2hhbmRsZXNbZV0sdCkscj1uLmFkZGVkLGk9bi5yZW1vdmVkO3RoaXMuX2hhbmRsZXNbZV09dDtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKyl0aGlzLl9rZXlzW3Jbb11dPSh0aGlzLl9rZXlzW3Jbb11dfHwwKSsxO2Zvcih2YXIgdT0wO3U8aS5sZW5ndGg7dSsrKXRoaXMuX2tleXNbaVt1XV0tLTt0aGlzLl91cGRhdGVWYWx1ZSh0KX19LHtrZXk6Il91cGRhdGVWYWx1ZSIsdmFsdWU6ZnVuY3Rpb24oKXt2YXIgZT0wPGFyZ3VtZW50cy5sZW5ndGgmJnZvaWQgMCE9PWFyZ3VtZW50c1swXT9hcmd1bWVudHNbMF06dGhpcy5fYWxsS2V5cyx0PU9iamVjdC5rZXlzKHRoaXMuX2hhbmRsZXMpLmxlbmd0aDtpZigwPT09dCl0aGlzLl92YWx1ZT1udWxsO2Vsc2V7dGhpcy5fdmFsdWU9W107Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3RoaXMuX2tleXNbZVtuXV09PT10JiZ0aGlzLl92YWx1ZS5wdXNoKGVbbl0pfX19fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7aWYodm9pZCAwIT09dGhpcy5faGFuZGxlc1tlXSl7dmFyIHQ9dGhpcy5faGFuZGxlc1tlXTt0fHwodD1bXSk7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspdGhpcy5fa2V5c1t0W25dXS0tO2RlbGV0ZSB0aGlzLl9oYW5kbGVzW2VdLHRoaXMuX3VwZGF0ZVZhbHVlKCl9fX0se2tleToidmFsdWUiLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl92YWx1ZX19LHtrZXk6Il9hbGxLZXlzIixnZXQ6ZnVuY3Rpb24oKXt2YXIgZT1PYmplY3Qua2V5cyh0aGlzLl9rZXlzKTtyZXR1cm4gZS5zb3J0KGwpLGV9fV0pLGV9KCk7bi5kZWZhdWx0PWl9LHsiLi91dGlsIjoxMX1dLDQ6W2Z1bmN0aW9uKGwsZSxzKXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxyPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKGUpe3JldHVybiB0eXBlb2YgZX06ZnVuY3Rpb24oZSl7cmV0dXJuIGUmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJmUuY29uc3RydWN0b3I9PT1TeW1ib2wmJmUhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiBlfTtzLmRlZmF1bHQ9ZnVuY3Rpb24gZSh0KXt7aWYodCYmInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiB1Lmhhc093blByb3BlcnR5KHQpfHwodVt0XT1uZXcgYSh0KSksdVt0XTtpZigib2JqZWN0Ij09PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnIodCkpJiZ0Ll92YXJzJiZ0LnZhcilyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpJiYxPT10Lmxlbmd0aCYmInN0cmluZyI9PXR5cGVvZiB0WzBdKXJldHVybiBlKHRbMF0pO3Rocm93IG5ldyBFcnJvcigiSW52YWxpZCBncm91cE5hbWUgYXJndW1lbnQiKX19O3ZhciB0LGk9bCgiLi92YXIiKSxvPSh0PWkpJiZ0Ll9fZXNNb2R1bGU/dDp7ZGVmYXVsdDp0fTtlLl9fY3Jvc3N0YWxrX2dyb3Vwcz1lLl9fY3Jvc3N0YWxrX2dyb3Vwc3x8e307dmFyIHU9ZS5fX2Nyb3NzdGFsa19ncm91cHM7dmFyIGE9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KGUpeyFmdW5jdGlvbihlLHQpe2lmKCEoZSBpbnN0YW5jZW9mIHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLHQpLHRoaXMubmFtZT1lLHRoaXMuX3ZhcnM9e319cmV0dXJuIG4odCxbe2tleToidmFyIix2YWx1ZTpmdW5jdGlvbihlKXtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCB2YXIgbmFtZSIpO3JldHVybiB0aGlzLl92YXJzLmhhc093blByb3BlcnR5KGUpfHwodGhpcy5fdmFyc1tlXT1uZXcgby5kZWZhdWx0KHRoaXMsZSkpLHRoaXMuX3ZhcnNbZV19fSx7a2V5OiJoYXMiLHZhbHVlOmZ1bmN0aW9uKGUpe2lmKCFlfHwic3RyaW5nIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhciBuYW1lIik7cmV0dXJuIHRoaXMuX3ZhcnMuaGFzT3duUHJvcGVydHkoZSl9fV0pLHR9KCl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi92YXIiOjEyfV0sNTpbZnVuY3Rpb24oZixlLGMpeyhmdW5jdGlvbihlKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciB0LG49ZigiLi9ncm91cCIpLHI9KHQ9bikmJnQuX19lc01vZHVsZT90OntkZWZhdWx0OnR9LGk9ZigiLi9zZWxlY3Rpb24iKSxvPWYoIi4vZmlsdGVyIiksdT1mKCIuL2lucHV0Iik7ZigiLi9pbnB1dF9zZWxlY3RpemUiKSxmKCIuL2lucHV0X2NoZWNrYm94Z3JvdXAiKSxmKCIuL2lucHV0X3NsaWRlciIpO3ZhciBhPSgwLHIuZGVmYXVsdCkoImRlZmF1bHQiKTtmdW5jdGlvbiBsKGUpe3JldHVybiBhLnZhcihlKX1lLlNoaW55JiZlLlNoaW55LmFkZEN1c3RvbU1lc3NhZ2VIYW5kbGVyKCJ1cGRhdGUtY2xpZW50LXZhbHVlIixmdW5jdGlvbihlKXsic3RyaW5nIj09dHlwZW9mIGUuZ3JvdXA/KDAsci5kZWZhdWx0KShlLmdyb3VwKS52YXIoZS5uYW1lKS5zZXQoZS52YWx1ZSk6bChlLm5hbWUpLnNldChlLnZhbHVlKX0pO3ZhciBzPXtncm91cDpyLmRlZmF1bHQsdmFyOmwsaGFzOmZ1bmN0aW9uKGUpe3JldHVybiBhLmhhcyhlKX0sU2VsZWN0aW9uSGFuZGxlOmkuU2VsZWN0aW9uSGFuZGxlLEZpbHRlckhhbmRsZTpvLkZpbHRlckhhbmRsZSxiaW5kOnUuYmluZH07Yy5kZWZhdWx0PXMsZS5jcm9zc3RhbGs9c30pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2ZpbHRlciI6MiwiLi9ncm91cCI6NCwiLi9pbnB1dCI6NiwiLi9pbnB1dF9jaGVja2JveGdyb3VwIjo3LCIuL2lucHV0X3NlbGVjdGl6ZSI6OCwiLi9pbnB1dF9zbGlkZXIiOjksIi4vc2VsZWN0aW9uIjoxMH1dLDY6W2Z1bmN0aW9uKGUsdCxhKXsoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSxhLnJlZ2lzdGVyPWZ1bmN0aW9uKGUpe3JbZS5jbGFzc05hbWVdPWUsdC5kb2N1bWVudCYmImNvbXBsZXRlIiE9PXQuZG9jdW1lbnQucmVhZHlTdGF0ZT9vKGZ1bmN0aW9uKCl7bigpfSk6dC5kb2N1bWVudCYmc2V0VGltZW91dChuLDEwMCl9LGEuYmluZD1uO3ZhciBvPXQualF1ZXJ5LHI9e307ZnVuY3Rpb24gbigpe09iamVjdC5rZXlzKHIpLmZvckVhY2goZnVuY3Rpb24oZSl7dmFyIG49cltlXTtvKCIuIituLmNsYXNzTmFtZSkubm90KCIuY3Jvc3N0YWxrLWlucHV0LWJvdW5kIikuZWFjaChmdW5jdGlvbihlLHQpe2kobix0KX0pfSl9ZnVuY3Rpb24gaShlLHQpe3ZhciBuPW8odCkuZmluZCgic2NyaXB0W3R5cGU9J2FwcGxpY2F0aW9uL2pzb24nXVtkYXRhLWZvcj0nIit0LmlkLnJlcGxhY2UoLyhbISIjJCUmJygpKissLi86Ozw9Pj9AW1xcXF1eYHt8fX5dKS9nLCJcXCQxIikrIiddIikscj1KU09OLnBhcnNlKG5bMF0uaW5uZXJUZXh0KSxpPWUuZmFjdG9yeSh0LHIpO28odCkuZGF0YSgiY3Jvc3N0YWxrLWluc3RhbmNlIixpKSxvKHQpLmFkZENsYXNzKCJjcm9zc3RhbGstaW5wdXQtYm91bmQiKX1pZih0LlNoaW55KXt2YXIgZT1uZXcgdC5TaGlueS5JbnB1dEJpbmRpbmcsdT10LmpRdWVyeTt1LmV4dGVuZChlLHtmaW5kOmZ1bmN0aW9uKGUpe3JldHVybiB1KGUpLmZpbmQoIi5jcm9zc3RhbGstaW5wdXQiKX0saW5pdGlhbGl6ZTpmdW5jdGlvbihlKXt2YXIgdCxuO3UoZSkuaGFzQ2xhc3MoImNyb3NzdGFsay1pbnB1dC1ib3VuZCIpfHwobj1vKHQ9ZSksT2JqZWN0LmtleXMocikuZm9yRWFjaChmdW5jdGlvbihlKXtuLmhhc0NsYXNzKGUpJiYhbi5oYXNDbGFzcygiY3Jvc3N0YWxrLWlucHV0LWJvdW5kIikmJmkocltlXSx0KX0pKX0sZ2V0SWQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGUuaWR9LGdldFZhbHVlOmZ1bmN0aW9uKGUpe30sc2V0VmFsdWU6ZnVuY3Rpb24oZSx0KXt9LHJlY2VpdmVNZXNzYWdlOmZ1bmN0aW9uKGUsdCl7fSxzdWJzY3JpYmU6ZnVuY3Rpb24oZSx0KXt1KGUpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIpLnJlc3VtZSgpfSx1bnN1YnNjcmliZTpmdW5jdGlvbihlKXt1KGUpLmRhdGEoImNyb3NzdGFsay1pbnN0YW5jZSIpLnN1c3BlbmQoKX19KSx0LlNoaW55LmlucHV0QmluZGluZ3MucmVnaXN0ZXIoZSwiY3Jvc3N0YWxrLmlucHV0QmluZGluZyIpfX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se31dLDc6W2Z1bmN0aW9uKHIsZSx0KXsoZnVuY3Rpb24oZSl7InVzZSBzdHJpY3QiO3ZhciB0PWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShyKCIuL2lucHV0IikpLG49cigiLi9maWx0ZXIiKTt2YXIgYT1lLmpRdWVyeTt0LnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1jaGVja2JveGdyb3VwIixmYWN0b3J5OmZ1bmN0aW9uKGUscil7dmFyIGk9bmV3IG4uRmlsdGVySGFuZGxlKHIuZ3JvdXApLG89dm9pZCAwLHU9YShlKTtyZXR1cm4gdS5vbigiY2hhbmdlIiwiaW5wdXRbdHlwZT0nY2hlY2tib3gnXSIsZnVuY3Rpb24oKXt2YXIgZT11LmZpbmQoImlucHV0W3R5cGU9J2NoZWNrYm94J106Y2hlY2tlZCIpO2lmKDA9PT1lLmxlbmd0aClvPW51bGwsaS5jbGVhcigpO2Vsc2V7dmFyIHQ9e307ZS5lYWNoKGZ1bmN0aW9uKCl7ci5tYXBbdGhpcy52YWx1ZV0uZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPSEwfSl9KTt2YXIgbj1PYmplY3Qua2V5cyh0KTtuLnNvcnQoKSxvPW4saS5zZXQobil9fSkse3N1c3BlbmQ6ZnVuY3Rpb24oKXtpLmNsZWFyKCl9LHJlc3VtZTpmdW5jdGlvbigpe28mJmkuc2V0KG8pfX19fSl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9maWx0ZXIiOjIsIi4vaW5wdXQiOjZ9XSw4OltmdW5jdGlvbihyLGUsdCl7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD1uKHIoIi4vaW5wdXQiKSksbD1uKHIoIi4vdXRpbCIpKSxzPXIoIi4vZmlsdGVyIik7ZnVuY3Rpb24gbihlKXtpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9dmFyIGY9ZS5qUXVlcnk7dC5yZWdpc3Rlcih7Y2xhc3NOYW1lOiJjcm9zc3RhbGstaW5wdXQtc2VsZWN0IixmYWN0b3J5OmZ1bmN0aW9uKGUsbil7dmFyIHQ9bC5kYXRhZnJhbWVUb0QzKG4uaXRlbXMpLHI9e29wdGlvbnM6W3t2YWx1ZToiIixsYWJlbDoiKEFsbCkifV0uY29uY2F0KHQpLHZhbHVlRmllbGQ6InZhbHVlIixsYWJlbEZpZWxkOiJsYWJlbCIsc2VhcmNoRmllbGQ6ImxhYmVsIn0saT1mKGUpLmZpbmQoInNlbGVjdCIpWzBdLG89ZihpKS5zZWxlY3RpemUocilbMF0uc2VsZWN0aXplLHU9bmV3IHMuRmlsdGVySGFuZGxlKG4uZ3JvdXApLGE9dm9pZCAwO3JldHVybiBvLm9uKCJjaGFuZ2UiLGZ1bmN0aW9uKCl7aWYoMD09PW8uaXRlbXMubGVuZ3RoKWE9bnVsbCx1LmNsZWFyKCk7ZWxzZXt2YXIgdD17fTtvLml0ZW1zLmZvckVhY2goZnVuY3Rpb24oZSl7bi5tYXBbZV0uZm9yRWFjaChmdW5jdGlvbihlKXt0W2VdPSEwfSl9KTt2YXIgZT1PYmplY3Qua2V5cyh0KTtlLnNvcnQoKSxhPWUsdS5zZXQoZSl9fSkse3N1c3BlbmQ6ZnVuY3Rpb24oKXt1LmNsZWFyKCl9LHJlc3VtZTpmdW5jdGlvbigpe2EmJnUuc2V0KGEpfX19fSl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi9maWx0ZXIiOjIsIi4vaW5wdXQiOjYsIi4vdXRpbCI6MTF9XSw5OltmdW5jdGlvbihuLGUsdCl7KGZ1bmN0aW9uKGUpeyJ1c2Ugc3RyaWN0Ijt2YXIgZD1mdW5jdGlvbihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIGU7aWYoU3ltYm9sLml0ZXJhdG9yIGluIE9iamVjdChlKSlyZXR1cm4gZnVuY3Rpb24oZSx0KXt2YXIgbj1bXSxyPSEwLGk9ITEsbz12b2lkIDA7dHJ5e2Zvcih2YXIgdSxhPWVbU3ltYm9sLml0ZXJhdG9yXSgpOyEocj0odT1hLm5leHQoKSkuZG9uZSkmJihuLnB1c2godS52YWx1ZSksIXR8fG4ubGVuZ3RoIT09dCk7cj0hMCk7fWNhdGNoKGUpe2k9ITAsbz1lfWZpbmFsbHl7dHJ5eyFyJiZhLnJldHVybiYmYS5yZXR1cm4oKX1maW5hbGx5e2lmKGkpdGhyb3cgb319cmV0dXJuIG59KGUsdCk7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIGRlc3RydWN0dXJlIG5vbi1pdGVyYWJsZSBpbnN0YW5jZSIpfSx0PWZ1bmN0aW9uKGUpe3tpZihlJiZlLl9fZXNNb2R1bGUpcmV0dXJuIGU7dmFyIHQ9e307aWYobnVsbCE9ZSlmb3IodmFyIG4gaW4gZSlPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoZSxuKSYmKHRbbl09ZVtuXSk7cmV0dXJuIHQuZGVmYXVsdD1lLHR9fShuKCIuL2lucHV0IikpLGE9bigiLi9maWx0ZXIiKTt2YXIgdj1lLmpRdWVyeSxwPWUuc3RyZnRpbWU7ZnVuY3Rpb24geShlLHQpe2Zvcih2YXIgbj1lLnRvU3RyaW5nKCk7bi5sZW5ndGg8dDspbj0iMCIrbjtyZXR1cm4gbn10LnJlZ2lzdGVyKHtjbGFzc05hbWU6ImNyb3NzdGFsay1pbnB1dC1zbGlkZXIiLGZhY3Rvcnk6ZnVuY3Rpb24oZSxsKXt2YXIgcz1uZXcgYS5GaWx0ZXJIYW5kbGUobC5ncm91cCksdD17fSxmPXYoZSkuZmluZCgiaW5wdXQiKSxuPWYuZGF0YSgiZGF0YS10eXBlIikscj1mLmRhdGEoInRpbWUtZm9ybWF0IiksaT1mLmRhdGEoInJvdW5kIiksbz12b2lkIDA7aWYoImRhdGUiPT09bilvPXAudXRjKCksdC5wcmV0dGlmeT1mdW5jdGlvbihlKXtyZXR1cm4gbyhyLG5ldyBEYXRlKGUpKX07ZWxzZSBpZigiZGF0ZXRpbWUiPT09bil7dmFyIHU9Zi5kYXRhKCJ0aW1lem9uZSIpO289dT9wLnRpbWV6b25lKHUpOnAsdC5wcmV0dGlmeT1mdW5jdGlvbihlKXtyZXR1cm4gbyhyLG5ldyBEYXRlKGUpKX19ZWxzZSJudW1iZXIiPT09biYmdm9pZCAwIT09aSYmKHQucHJldHRpZnk9ZnVuY3Rpb24oZSl7dmFyIHQ9TWF0aC5wb3coMTAsaSk7cmV0dXJuIE1hdGgucm91bmQoZSp0KS90fSk7ZnVuY3Rpb24gYygpe3ZhciBlPWYuZGF0YSgiaW9uUmFuZ2VTbGlkZXIiKS5yZXN1bHQsdD12b2lkIDAsbj1mLmRhdGEoImRhdGEtdHlwZSIpO3JldHVybiB0PSJkYXRlIj09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuKHQ9bmV3IERhdGUoK2UpKWluc3RhbmNlb2YgRGF0ZT90LmdldFVUQ0Z1bGxZZWFyKCkrIi0iK3kodC5nZXRVVENNb250aCgpKzEsMikrIi0iK3kodC5nZXRVVENEYXRlKCksMik6bnVsbDt2YXIgdH06ImRhdGV0aW1lIj09PW4/ZnVuY3Rpb24oZSl7cmV0dXJuK2UvMWUzfTpmdW5jdGlvbihlKXtyZXR1cm4rZX0sImRvdWJsZSI9PT1mLmRhdGEoImlvblJhbmdlU2xpZGVyIikub3B0aW9ucy50eXBlP1t0KGUuZnJvbSksdChlLnRvKV06dChlLmZyb20pfWYuaW9uUmFuZ2VTbGlkZXIodCk7dmFyIGg9bnVsbDtyZXR1cm4gZi5vbigiY2hhbmdlLmNyb3NzdGFsa1NsaWRlcklucHV0IixmdW5jdGlvbihlKXtpZighZi5kYXRhKCJ1cGRhdGluZyIpJiYhZi5kYXRhKCJhbmltYXRpbmciKSl7Zm9yKHZhciB0PWMoKSxuPWQodCwyKSxyPW5bMF0saT1uWzFdLG89W10sdT0wO3U8bC52YWx1ZXMubGVuZ3RoO3UrKyl7dmFyIGE9bC52YWx1ZXNbdV07cjw9YSYmYTw9aSYmby5wdXNoKGwua2V5c1t1XSl9by5zb3J0KCkscy5zZXQobyksaD1vfX0pLHtzdXNwZW5kOmZ1bmN0aW9uKCl7cy5jbGVhcigpfSxyZXN1bWU6ZnVuY3Rpb24oKXtoJiZzLnNldChoKX19fX0pfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vZmlsdGVyIjoyLCIuL2lucHV0Ijo2fV0sMTA6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLG4uU2VsZWN0aW9uSGFuZGxlPXZvaWQgMDt2YXIgcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHIoZSx0KXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIHI9dFtuXTtyLmVudW1lcmFibGU9ci5lbnVtZXJhYmxlfHwhMSxyLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gciYmKHIud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLHIua2V5LHIpfX1yZXR1cm4gZnVuY3Rpb24oZSx0LG4pe3JldHVybiB0JiZyKGUucHJvdG90eXBlLHQpLG4mJnIoZSxuKSxlfX0oKSxpPWEoZSgiLi9ldmVudHMiKSksbz1hKGUoIi4vZ3JvdXAiKSksdT1mdW5jdGlvbihlKXt7aWYoZSYmZS5fX2VzTW9kdWxlKXJldHVybiBlO3ZhciB0PXt9O2lmKG51bGwhPWUpZm9yKHZhciBuIGluIGUpT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsbikmJih0W25dPWVbbl0pO3JldHVybiB0LmRlZmF1bHQ9ZSx0fX0oZSgiLi91dGlsIikpO2Z1bmN0aW9uIGEoZSl7cmV0dXJuIGUmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9fW4uU2VsZWN0aW9uSGFuZGxlPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3ZhciBlPTA8YXJndW1lbnRzLmxlbmd0aCYmdm9pZCAwIT09YXJndW1lbnRzWzBdP2FyZ3VtZW50c1swXTpudWxsLHQ9MTxhcmd1bWVudHMubGVuZ3RoJiZ2b2lkIDAhPT1hcmd1bWVudHNbMV0/YXJndW1lbnRzWzFdOm51bGw7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsbiksdGhpcy5fZXZlbnRSZWxheT1uZXcgaS5kZWZhdWx0LHRoaXMuX2VtaXR0ZXI9bmV3IHUuU3Vic2NyaXB0aW9uVHJhY2tlcih0aGlzLl9ldmVudFJlbGF5KSx0aGlzLl9ncm91cD1udWxsLHRoaXMuX3Zhcj1udWxsLHRoaXMuX3Zhck9uQ2hhbmdlU3ViPW51bGwsdGhpcy5fZXh0cmFJbmZvPXUuZXh0ZW5kKHtzZW5kZXI6dGhpc30sdCksdGhpcy5zZXRHcm91cChlKX1yZXR1cm4gcihuLFt7a2V5OiJzZXRHcm91cCIsdmFsdWU6ZnVuY3Rpb24oZSl7dmFyIHQ9dGhpcztpZih0aGlzLl9ncm91cCE9PWUmJih0aGlzLl9ncm91cHx8ZSkmJih0aGlzLl92YXImJih0aGlzLl92YXIub2ZmKCJjaGFuZ2UiLHRoaXMuX3Zhck9uQ2hhbmdlU3ViKSx0aGlzLl92YXI9bnVsbCx0aGlzLl92YXJPbkNoYW5nZVN1Yj1udWxsKSx0aGlzLl9ncm91cD1lKSl7dGhpcy5fdmFyPSgwLG8uZGVmYXVsdCkoZSkudmFyKCJzZWxlY3Rpb24iKTt2YXIgbj10aGlzLl92YXIub24oImNoYW5nZSIsZnVuY3Rpb24oZSl7dC5fZXZlbnRSZWxheS50cmlnZ2VyKCJjaGFuZ2UiLGUsdCl9KTt0aGlzLl92YXJPbkNoYW5nZVN1Yj1ufX19LHtrZXk6Il9tZXJnZUV4dHJhSW5mbyIsdmFsdWU6ZnVuY3Rpb24oZSl7cmV0dXJuIHUuZXh0ZW5kKHt9LHRoaXMuX2V4dHJhSW5mbz90aGlzLl9leHRyYUluZm86bnVsbCxlfHxudWxsKX19LHtrZXk6InNldCIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt0aGlzLl92YXImJnRoaXMuX3Zhci5zZXQoZSx0aGlzLl9tZXJnZUV4dHJhSW5mbyh0KSl9fSx7a2V5OiJjbGVhciIsdmFsdWU6ZnVuY3Rpb24oZSl7dGhpcy5fdmFyJiZ0aGlzLnNldCh2b2lkIDAsdGhpcy5fbWVyZ2VFeHRyYUluZm8oZSkpfX0se2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2VtaXR0ZXIub24oZSx0KX19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZW1pdHRlci5vZmYoZSx0KX19LHtrZXk6ImNsb3NlIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuX2VtaXR0ZXIucmVtb3ZlQWxsTGlzdGVuZXJzKCksdGhpcy5zZXRHcm91cChudWxsKX19LHtrZXk6InZhbHVlIixnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdmFyP3RoaXMuX3Zhci5nZXQoKTpudWxsfX1dKSxufSgpfSx7Ii4vZXZlbnRzIjoxLCIuL2dyb3VwIjo0LCIuL3V0aWwiOjExfV0sMTE6W2Z1bmN0aW9uKGUsdCxuKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgcj10W25dO3IuZW51bWVyYWJsZT1yLmVudW1lcmFibGV8fCExLHIuY29uZmlndXJhYmxlPSEwLCJ2YWx1ZSJpbiByJiYoci53cml0YWJsZT0hMCksT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsci5rZXkscil9fXJldHVybiBmdW5jdGlvbihlLHQsbil7cmV0dXJuIHQmJnIoZS5wcm90b3R5cGUsdCksbiYmcihlLG4pLGV9fSgpLGw9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9O2Z1bmN0aW9uIHUoZSl7Zm9yKHZhciB0PTE7dDxlLmxlbmd0aDt0KyspaWYoZVt0XTw9ZVt0LTFdKXRocm93IG5ldyBFcnJvcigiTGlzdCBpcyBub3Qgc29ydGVkIG9yIGNvbnRhaW5zIGR1cGxpY2F0ZSIpfW4uZXh0ZW5kPWZ1bmN0aW9uKGUpe2Zvcih2YXIgdD1hcmd1bWVudHMubGVuZ3RoLG49QXJyYXkoMTx0P3QtMTowKSxyPTE7cjx0O3IrKyluW3ItMV09YXJndW1lbnRzW3JdO2Zvcih2YXIgaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgbz1uW2ldO2lmKG51bGwhPW8pZm9yKHZhciB1IGluIG8pby5oYXNPd25Qcm9wZXJ0eSh1KSYmKGVbdV09b1t1XSl9cmV0dXJuIGV9LG4uY2hlY2tTb3J0ZWQ9dSxuLmRpZmZTb3J0ZWRMaXN0cz1mdW5jdGlvbihlLHQpe3ZhciBuPTAscj0wO2V8fChlPVtdKTt0fHwodD1bXSk7dmFyIGk9W10sbz1bXTt1KGUpLHUodCk7Zm9yKDtuPGUubGVuZ3RoJiZyPHQubGVuZ3RoOyllW25dPT09dFtyXT8obisrLHIrKyk6ZVtuXTx0W3JdP2kucHVzaChlW24rK10pOm8ucHVzaCh0W3IrK10pO248ZS5sZW5ndGgmJihpPWkuY29uY2F0KGUuc2xpY2UobikpKTtyPHQubGVuZ3RoJiYobz1vLmNvbmNhdCh0LnNsaWNlKHIpKSk7cmV0dXJue3JlbW92ZWQ6aSxhZGRlZDpvfX0sbi5kYXRhZnJhbWVUb0QzPWZ1bmN0aW9uKGUpe3ZhciB0PVtdLG49dm9pZCAwO2Zvcih2YXIgciBpbiBlKXtpZihlLmhhc093blByb3BlcnR5KHIpJiZ0LnB1c2gociksIm9iamVjdCIhPT1sKGVbcl0pfHx2b2lkIDA9PT1lW3JdLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkFsbCBmaWVsZHMgbXVzdCBiZSBhcnJheXMiKTtpZih2b2lkIDAhPT1uJiZuIT09ZVtyXS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJBbGwgZmllbGRzIG11c3QgYmUgYXJyYXlzIG9mIHRoZSBzYW1lIGxlbmd0aCIpO249ZVtyXS5sZW5ndGh9Zm9yKHZhciBpPVtdLG89dm9pZCAwLHU9MDt1PG47dSsrKXtvPXt9O2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKW9bdFthXV09ZVt0W2FdXVt1XTtpLnB1c2gobyl9cmV0dXJuIGl9O24uU3Vic2NyaXB0aW9uVHJhY2tlcj1mdW5jdGlvbigpe2Z1bmN0aW9uIHQoZSl7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsdCksdGhpcy5fZW1pdHRlcj1lLHRoaXMuX3N1YnM9e319cmV0dXJuIHIodCxbe2tleToib24iLHZhbHVlOmZ1bmN0aW9uKGUsdCl7dmFyIG49dGhpcy5fZW1pdHRlci5vbihlLHQpO3JldHVybiB0aGlzLl9zdWJzW25dPWUsbn19LHtrZXk6Im9mZiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXt2YXIgbj10aGlzLl9lbWl0dGVyLm9mZihlLHQpO3JldHVybiBuJiZkZWxldGUgdGhpcy5fc3Vic1tuXSxufX0se2tleToicmVtb3ZlQWxsTGlzdGVuZXJzIix2YWx1ZTpmdW5jdGlvbigpe3ZhciB0PXRoaXMsbj10aGlzLl9zdWJzO3RoaXMuX3N1YnM9e30sT2JqZWN0LmtleXMobikuZm9yRWFjaChmdW5jdGlvbihlKXt0Ll9lbWl0dGVyLm9mZihuW2VdLGUpfSl9fV0pLHR9KCl9LHt9XSwxMjpbZnVuY3Rpb24oYSxlLGwpeyhmdW5jdGlvbihvKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBlLHU9ImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmInN5bWJvbCI9PXR5cGVvZiBTeW1ib2wuaXRlcmF0b3I/ZnVuY3Rpb24oZSl7cmV0dXJuIHR5cGVvZiBlfTpmdW5jdGlvbihlKXtyZXR1cm4gZSYmImZ1bmN0aW9uIj09dHlwZW9mIFN5bWJvbCYmZS5jb25zdHJ1Y3Rvcj09PVN5bWJvbCYmZSE9PVN5bWJvbC5wcm90b3R5cGU/InN5bWJvbCI6dHlwZW9mIGV9LHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUsdCl7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciByPXRbbl07ci5lbnVtZXJhYmxlPXIuZW51bWVyYWJsZXx8ITEsci5jb25maWd1cmFibGU9ITAsInZhbHVlImluIHImJihyLndyaXRhYmxlPSEwKSxPYmplY3QuZGVmaW5lUHJvcGVydHkoZSxyLmtleSxyKX19cmV0dXJuIGZ1bmN0aW9uKGUsdCxuKXtyZXR1cm4gdCYmcihlLnByb3RvdHlwZSx0KSxuJiZyKGUsbiksZX19KCksbj1hKCIuL2V2ZW50cyIpLGk9KGU9bikmJmUuX19lc01vZHVsZT9lOntkZWZhdWx0OmV9O3ZhciByPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gcihlLHQsbil7IWZ1bmN0aW9uKGUsdCl7aWYoIShlIGluc3RhbmNlb2YgdCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ2Fubm90IGNhbGwgYSBjbGFzcyBhcyBhIGZ1bmN0aW9uIil9KHRoaXMsciksdGhpcy5fZ3JvdXA9ZSx0aGlzLl9uYW1lPXQsdGhpcy5fdmFsdWU9bix0aGlzLl9ldmVudHM9bmV3IGkuZGVmYXVsdH1yZXR1cm4gdChyLFt7a2V5OiJnZXQiLHZhbHVlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3ZhbHVlfX0se2tleToic2V0Iix2YWx1ZTpmdW5jdGlvbihlLHQpe2lmKHRoaXMuX3ZhbHVlIT09ZSl7dmFyIG49dGhpcy5fdmFsdWU7dGhpcy5fdmFsdWU9ZTt2YXIgcj17fTtpZih0JiYib2JqZWN0Ij09PSh2b2lkIDA9PT10PyJ1bmRlZmluZWQiOnUodCkpKWZvcih2YXIgaSBpbiB0KXQuaGFzT3duUHJvcGVydHkoaSkmJihyW2ldPXRbaV0pO3Iub2xkVmFsdWU9bixyLnZhbHVlPWUsdGhpcy5fZXZlbnRzLnRyaWdnZXIoImNoYW5nZSIscix0aGlzKSxvLlNoaW55JiZvLlNoaW55Lm9uSW5wdXRDaGFuZ2UmJm8uU2hpbnkub25JbnB1dENoYW5nZSgiLmNsaWVudFZhbHVlLSIrKG51bGwhPT10aGlzLl9ncm91cC5uYW1lP3RoaXMuX2dyb3VwLm5hbWUrIi0iOiIiKSt0aGlzLl9uYW1lLHZvaWQgMD09PWU/bnVsbDplKX19fSx7a2V5OiJvbiIsdmFsdWU6ZnVuY3Rpb24oZSx0KXtyZXR1cm4gdGhpcy5fZXZlbnRzLm9uKGUsdCl9fSx7a2V5OiJvZmYiLHZhbHVlOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIHRoaXMuX2V2ZW50cy5vZmYoZSx0KX19XSkscn0oKTtsLmRlZmF1bHQ9cn0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuL2V2ZW50cyI6MX1dfSx7fSxbNV0pOwovLyMgc291cmNlTWFwcGluZ1VSTD1jcm9zc3RhbGsubWluLmpzLm1hcA=="></script>
<link href="data:text/css,%0Aslide%3Anot%28%2Ecurrent%29%20%2Eplotly%2Ehtml%2Dwidget%7B%0Adisplay%3A%20none%3B%0A%7D%0A" rel="stylesheet" />
<script src="data:application/javascript;base64,LyoqCiogcGxvdGx5LmpzIHYyLjUuMQoqIENvcHlyaWdodCAyMDEyLTIwMjEsIFBsb3RseSwgSW5jLgoqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiogTGljZW5zZWQgdW5kZXIgdGhlIE1JVCBsaWNlbnNlCiovCiFmdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIGV4cG9ydHMmJiJ1bmRlZmluZWQiIT10eXBlb2YgbW9kdWxlKW1vZHVsZS5leHBvcnRzPXQoKTtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBkZWZpbmUmJmRlZmluZS5hbWQpZGVmaW5lKFtdLHQpO2Vsc2V7KCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzoidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6dGhpcykuUGxvdGx5PXQoKX19KChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUscixuKXtmdW5jdGlvbiBpKG8scyl7aWYoIXJbb10pe2lmKCFlW29dKXt2YXIgbD0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZTtpZighcyYmbClyZXR1cm4gbChvLCEwKTtpZihhKXJldHVybiBhKG8sITApO3ZhciBjPW5ldyBFcnJvcigiQ2Fubm90IGZpbmQgbW9kdWxlICciK28rIiciKTt0aHJvdyBjLmNvZGU9Ik1PRFVMRV9OT1RfRk9VTkQiLGN9dmFyIHU9cltvXT17ZXhwb3J0czp7fX07ZVtvXVswXS5jYWxsKHUuZXhwb3J0cywoZnVuY3Rpb24odCl7cmV0dXJuIGkoZVtvXVsxXVt0XXx8dCl9KSx1LHUuZXhwb3J0cyx0LGUscixuKX1yZXR1cm4gcltvXS5leHBvcnRzfWZvcih2YXIgYT0iZnVuY3Rpb24iPT10eXBlb2YgcmVxdWlyZSYmcmVxdWlyZSxvPTA7bzxuLmxlbmd0aDtvKyspaShuW29dKTtyZXR1cm4gaX0oezE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc3JjL2xpYiIpLGk9eyJYLFggZGl2IjonZGlyZWN0aW9uOmx0cjtmb250LWZhbWlseToiT3BlbiBTYW5zIix2ZXJkYW5hLGFyaWFsLHNhbnMtc2VyaWY7bWFyZ2luOjA7cGFkZGluZzowOycsIlggaW5wdXQsWCBidXR0b24iOidmb250LWZhbWlseToiT3BlbiBTYW5zIix2ZXJkYW5hLGFyaWFsLHNhbnMtc2VyaWY7JywiWCBpbnB1dDpmb2N1cyxYIGJ1dHRvbjpmb2N1cyI6Im91dGxpbmU6bm9uZTsiLCJYIGEiOiJ0ZXh0LWRlY29yYXRpb246bm9uZTsiLCJYIGE6aG92ZXIiOiJ0ZXh0LWRlY29yYXRpb246bm9uZTsiLCJYIC5jcmlzcCI6InNoYXBlLXJlbmRlcmluZzpjcmlzcEVkZ2VzOyIsIlggLnVzZXItc2VsZWN0LW5vbmUiOiItd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7LW1vei11c2VyLXNlbGVjdDpub25lOy1tcy11c2VyLXNlbGVjdDpub25lOy1vLXVzZXItc2VsZWN0Om5vbmU7dXNlci1zZWxlY3Q6bm9uZTsiLCJYIHN2ZyI6Im92ZXJmbG93OmhpZGRlbjsiLCJYIHN2ZyBhIjoiZmlsbDojNDQ3YWRiOyIsIlggc3ZnIGE6aG92ZXIiOiJmaWxsOiMzYzZkYzU7IiwiWCAubWFpbi1zdmciOiJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtsZWZ0OjA7cG9pbnRlci1ldmVudHM6bm9uZTsiLCJYIC5tYWluLXN2ZyAuZHJhZ2xheWVyIjoicG9pbnRlci1ldmVudHM6YWxsOyIsIlggLmN1cnNvci1kZWZhdWx0IjoiY3Vyc29yOmRlZmF1bHQ7IiwiWCAuY3Vyc29yLXBvaW50ZXIiOiJjdXJzb3I6cG9pbnRlcjsiLCJYIC5jdXJzb3ItY3Jvc3NoYWlyIjoiY3Vyc29yOmNyb3NzaGFpcjsiLCJYIC5jdXJzb3ItbW92ZSI6ImN1cnNvcjptb3ZlOyIsIlggLmN1cnNvci1jb2wtcmVzaXplIjoiY3Vyc29yOmNvbC1yZXNpemU7IiwiWCAuY3Vyc29yLXJvdy1yZXNpemUiOiJjdXJzb3I6cm93LXJlc2l6ZTsiLCJYIC5jdXJzb3ItbnMtcmVzaXplIjoiY3Vyc29yOm5zLXJlc2l6ZTsiLCJYIC5jdXJzb3ItZXctcmVzaXplIjoiY3Vyc29yOmV3LXJlc2l6ZTsiLCJYIC5jdXJzb3Itc3ctcmVzaXplIjoiY3Vyc29yOnN3LXJlc2l6ZTsiLCJYIC5jdXJzb3Itcy1yZXNpemUiOiJjdXJzb3I6cy1yZXNpemU7IiwiWCAuY3Vyc29yLXNlLXJlc2l6ZSI6ImN1cnNvcjpzZS1yZXNpemU7IiwiWCAuY3Vyc29yLXctcmVzaXplIjoiY3Vyc29yOnctcmVzaXplOyIsIlggLmN1cnNvci1lLXJlc2l6ZSI6ImN1cnNvcjplLXJlc2l6ZTsiLCJYIC5jdXJzb3ItbnctcmVzaXplIjoiY3Vyc29yOm53LXJlc2l6ZTsiLCJYIC5jdXJzb3Itbi1yZXNpemUiOiJjdXJzb3I6bi1yZXNpemU7IiwiWCAuY3Vyc29yLW5lLXJlc2l6ZSI6ImN1cnNvcjpuZS1yZXNpemU7IiwiWCAuY3Vyc29yLWdyYWIiOiJjdXJzb3I6LXdlYmtpdC1ncmFiO2N1cnNvcjpncmFiOyIsIlggLm1vZGViYXIiOiJwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MnB4O3JpZ2h0OjJweDsiLCJYIC5lYXNlLWJnIjoiLXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UgMHM7LW1vei10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246YmFja2dyb3VuZC1jb2xvciAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOmJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UgMHM7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlIDBzOyIsIlggLm1vZGViYXItLWhvdmVyPjpub3QoLndhdGVybWFyaykiOiJvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2UgMHM7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2UgMHM7LW1zLXRyYW5zaXRpb246b3BhY2l0eSAuM3MgZWFzZSAwczstby10cmFuc2l0aW9uOm9wYWNpdHkgLjNzIGVhc2UgMHM7dHJhbnNpdGlvbjpvcGFjaXR5IC4zcyBlYXNlIDBzOyIsIlg6aG92ZXIgLm1vZGViYXItLWhvdmVyIC5tb2RlYmFyLWdyb3VwIjoib3BhY2l0eToxOyIsIlggLm1vZGViYXItZ3JvdXAiOiJmbG9hdDpsZWZ0O2Rpc3BsYXk6aW5saW5lLWJsb2NrO2JveC1zaXppbmc6Ym9yZGVyLWJveDtwYWRkaW5nLWxlZnQ6OHB4O3Bvc2l0aW9uOnJlbGF0aXZlO3ZlcnRpY2FsLWFsaWduOm1pZGRsZTt3aGl0ZS1zcGFjZTpub3dyYXA7IiwiWCAubW9kZWJhci1idG4iOiJwb3NpdGlvbjpyZWxhdGl2ZTtmb250LXNpemU6MTZweDtwYWRkaW5nOjNweCA0cHg7aGVpZ2h0OjIycHg7Y3Vyc29yOnBvaW50ZXI7bGluZS1oZWlnaHQ6bm9ybWFsO2JveC1zaXppbmc6Ym9yZGVyLWJveDsiLCJYIC5tb2RlYmFyLWJ0biBzdmciOiJwb3NpdGlvbjpyZWxhdGl2ZTt0b3A6MnB4OyIsIlggLm1vZGViYXIudmVydGljYWwiOiJkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2ZsZXgtd3JhcDp3cmFwO2FsaWduLWNvbnRlbnQ6ZmxleC1lbmQ7bWF4LWhlaWdodDoxMDAlOyIsIlggLm1vZGViYXIudmVydGljYWwgc3ZnIjoidG9wOi0xcHg7IiwiWCAubW9kZWJhci52ZXJ0aWNhbCAubW9kZWJhci1ncm91cCI6ImRpc3BsYXk6YmxvY2s7ZmxvYXQ6bm9uZTtwYWRkaW5nLWxlZnQ6MHB4O3BhZGRpbmctYm90dG9tOjhweDsiLCJYIC5tb2RlYmFyLnZlcnRpY2FsIC5tb2RlYmFyLWdyb3VwIC5tb2RlYmFyLWJ0biI6ImRpc3BsYXk6YmxvY2s7dGV4dC1hbGlnbjpjZW50ZXI7IiwiWCBbZGF0YS10aXRsZV06YmVmb3JlLFggW2RhdGEtdGl0bGVdOmFmdGVyIjoicG9zaXRpb246YWJzb2x1dGU7LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLCAwLCAwKTstby10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwgMCwgMCk7dHJhbnNmb3JtOnRyYW5zbGF0ZTNkKDAsIDAsIDApO2Rpc3BsYXk6bm9uZTtvcGFjaXR5OjA7ei1pbmRleDoxMDAxO3BvaW50ZXItZXZlbnRzOm5vbmU7dG9wOjExMCU7cmlnaHQ6NTAlOyIsIlggW2RhdGEtdGl0bGVdOmhvdmVyOmJlZm9yZSxYIFtkYXRhLXRpdGxlXTpob3ZlcjphZnRlciI6ImRpc3BsYXk6YmxvY2s7b3BhY2l0eToxOyIsIlggW2RhdGEtdGl0bGVdOmJlZm9yZSI6J2NvbnRlbnQ6IiI7cG9zaXRpb246YWJzb2x1dGU7YmFja2dyb3VuZDp0cmFuc3BhcmVudDtib3JkZXI6NnB4IHNvbGlkIHRyYW5zcGFyZW50O3otaW5kZXg6MTAwMjttYXJnaW4tdG9wOi0xMnB4O2JvcmRlci1ib3R0b20tY29sb3I6IzY5NzM4YTttYXJnaW4tcmlnaHQ6LTZweDsnLCJYIFtkYXRhLXRpdGxlXTphZnRlciI6ImNvbnRlbnQ6YXR0cihkYXRhLXRpdGxlKTtiYWNrZ3JvdW5kOiM2OTczOGE7Y29sb3I6I2ZmZjtwYWRkaW5nOjhweCAxMHB4O2ZvbnQtc2l6ZToxMnB4O2xpbmUtaGVpZ2h0OjEycHg7d2hpdGUtc3BhY2U6bm93cmFwO21hcmdpbi1yaWdodDotMThweDtib3JkZXItcmFkaXVzOjJweDsiLCJYIC52ZXJ0aWNhbCBbZGF0YS10aXRsZV06YmVmb3JlLFggLnZlcnRpY2FsIFtkYXRhLXRpdGxlXTphZnRlciI6InRvcDowJTtyaWdodDoyMDAlOyIsIlggLnZlcnRpY2FsIFtkYXRhLXRpdGxlXTpiZWZvcmUiOiJib3JkZXI6NnB4IHNvbGlkIHRyYW5zcGFyZW50O2JvcmRlci1sZWZ0LWNvbG9yOiM2OTczOGE7bWFyZ2luLXRvcDo4cHg7bWFyZ2luLXJpZ2h0Oi0zMHB4OyIsIlggLnNlbGVjdC1vdXRsaW5lIjoiZmlsbDpub25lO3N0cm9rZS13aWR0aDoxO3NoYXBlLXJlbmRlcmluZzpjcmlzcEVkZ2VzOyIsIlggLnNlbGVjdC1vdXRsaW5lLTEiOiJzdHJva2U6I2ZmZjsiLCJYIC5zZWxlY3Qtb3V0bGluZS0yIjoic3Ryb2tlOiMwMDA7c3Ryb2tlLWRhc2hhcnJheToycHggMnB4OyIsWTonZm9udC1mYW1pbHk6Ik9wZW4gU2FucyIsdmVyZGFuYSxhcmlhbCxzYW5zLXNlcmlmO3Bvc2l0aW9uOmZpeGVkO3RvcDo1MHB4O3JpZ2h0OjIwcHg7ei1pbmRleDoxMDAwMDtmb250LXNpemU6MTBwdDttYXgtd2lkdGg6MTgwcHg7JywiWSBwIjoibWFyZ2luOjA7IiwiWSAubm90aWZpZXItbm90ZSI6Im1pbi13aWR0aDoxODBweDttYXgtd2lkdGg6MjUwcHg7Ym9yZGVyOjFweCBzb2xpZCAjZmZmO3otaW5kZXg6MzAwMDttYXJnaW46MDtiYWNrZ3JvdW5kLWNvbG9yOiM4Yzk3YWY7YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDE0MCwxNTEsMTc1LC45KTtjb2xvcjojZmZmO3BhZGRpbmc6MTBweDtvdmVyZmxvdy13cmFwOmJyZWFrLXdvcmQ7d29yZC13cmFwOmJyZWFrLXdvcmQ7LW1zLWh5cGhlbnM6YXV0bzstd2Via2l0LWh5cGhlbnM6YXV0bztoeXBoZW5zOmF1dG87IiwiWSAubm90aWZpZXItY2xvc2UiOiJjb2xvcjojZmZmO29wYWNpdHk6Ljg7ZmxvYXQ6cmlnaHQ7cGFkZGluZzowIDVweDtiYWNrZ3JvdW5kOm5vbmU7Ym9yZGVyOm5vbmU7Zm9udC1zaXplOjIwcHg7Zm9udC13ZWlnaHQ6Ym9sZDtsaW5lLWhlaWdodDoyMHB4OyIsIlkgLm5vdGlmaWVyLWNsb3NlOmhvdmVyIjoiY29sb3I6IzQ0NDt0ZXh0LWRlY29yYXRpb246bm9uZTtjdXJzb3I6cG9pbnRlcjsifTtmb3IodmFyIGEgaW4gaSl7dmFyIG89YS5yZXBsYWNlKC9eLC8sIiAsIikucmVwbGFjZSgvWC9nLCIuanMtcGxvdGx5LXBsb3QgLnBsb3RseSIpLnJlcGxhY2UoL1kvZywiLnBsb3RseS1ub3RpZmllciIpO24uYWRkU3R5bGVSdWxlKG8saVthXSl9fSx7Ii4uL3NyYy9saWIiOjc3Nn1dLDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFuc2Zvcm1zL2FnZ3JlZ2F0ZSIpfSx7Ii4uL3NyYy90cmFuc2Zvcm1zL2FnZ3JlZ2F0ZSI6MTM3Mn1dLDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvYmFyIil9LHsiLi4vc3JjL3RyYWNlcy9iYXIiOjkyMn1dLDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvYmFycG9sYXIiKX0seyIuLi9zcmMvdHJhY2VzL2JhcnBvbGFyIjo5MzV9XSw1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2JveCIpfSx7Ii4uL3NyYy90cmFjZXMvYm94Ijo5NDV9XSw2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvY29tcG9uZW50cy9jYWxlbmRhcnMiKX0seyIuLi9zcmMvY29tcG9uZW50cy9jYWxlbmRhcnMiOjYzN31dLDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvY2FuZGxlc3RpY2siKX0seyIuLi9zcmMvdHJhY2VzL2NhbmRsZXN0aWNrIjo5NTR9XSw4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NhcnBldCIpfSx7Ii4uL3NyYy90cmFjZXMvY2FycGV0Ijo5NzN9XSw5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGgiKX0seyIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGgiOjk4N31dLDEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGhtYXBib3giKX0seyIuLi9zcmMvdHJhY2VzL2Nob3JvcGxldGhtYXBib3giOjk5NH1dLDExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NvbmUiKX0seyIuLi9zcmMvdHJhY2VzL2NvbmUiOjFlM31dLDEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2NvbnRvdXIiKX0seyIuLi9zcmMvdHJhY2VzL2NvbnRvdXIiOjEwMTV9XSwxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9jb250b3VyY2FycGV0Iil9LHsiLi4vc3JjL3RyYWNlcy9jb250b3VyY2FycGV0IjoxMDI2fV0sMTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy9jb3JlIil9LHsiLi4vc3JjL2NvcmUiOjc1NH1dLDE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2RlbnNpdHltYXBib3giKX0seyIuLi9zcmMvdHJhY2VzL2RlbnNpdHltYXBib3giOjEwMzR9XSwxNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYW5zZm9ybXMvZmlsdGVyIil9LHsiLi4vc3JjL3RyYW5zZm9ybXMvZmlsdGVyIjoxMzczfV0sMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvZnVubmVsIil9LHsiLi4vc3JjL3RyYWNlcy9mdW5uZWwiOjEwNDR9XSwxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9mdW5uZWxhcmVhIil9LHsiLi4vc3JjL3RyYWNlcy9mdW5uZWxhcmVhIjoxMDUzfV0sMTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFuc2Zvcm1zL2dyb3VwYnkiKX0seyIuLi9zcmMvdHJhbnNmb3Jtcy9ncm91cGJ5IjoxMzc0fV0sMjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGVhdG1hcCIpfSx7Ii4uL3NyYy90cmFjZXMvaGVhdG1hcCI6MTA2Nn1dLDIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2hlYXRtYXBnbCIpfSx7Ii4uL3NyYy90cmFjZXMvaGVhdG1hcGdsIjoxMDc2fV0sMjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaGlzdG9ncmFtIil9LHsiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0iOjEwODh9XSwyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0yZCIpfSx7Ii4uL3NyYy90cmFjZXMvaGlzdG9ncmFtMmQiOjEwOTR9XSwyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9oaXN0b2dyYW0yZGNvbnRvdXIiKX0seyIuLi9zcmMvdHJhY2VzL2hpc3RvZ3JhbTJkY29udG91ciI6MTA5OH1dLDI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2ljaWNsZSIpfSx7Ii4uL3NyYy90cmFjZXMvaWNpY2xlIjoxMTA0fV0sMjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvaW1hZ2UiKX0seyIuLi9zcmMvdHJhY2VzL2ltYWdlIjoxMTE3fV0sMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb3JlIik7bi5yZWdpc3RlcihbdCgiLi9iYXIiKSx0KCIuL2JveCIpLHQoIi4vaGVhdG1hcCIpLHQoIi4vaGlzdG9ncmFtIiksdCgiLi9oaXN0b2dyYW0yZCIpLHQoIi4vaGlzdG9ncmFtMmRjb250b3VyIiksdCgiLi9jb250b3VyIiksdCgiLi9zY2F0dGVydGVybmFyeSIpLHQoIi4vdmlvbGluIiksdCgiLi9mdW5uZWwiKSx0KCIuL3dhdGVyZmFsbCIpLHQoIi4vaW1hZ2UiKSx0KCIuL3BpZSIpLHQoIi4vc3VuYnVyc3QiKSx0KCIuL3RyZWVtYXAiKSx0KCIuL2ljaWNsZSIpLHQoIi4vZnVubmVsYXJlYSIpLHQoIi4vc2NhdHRlcjNkIiksdCgiLi9zdXJmYWNlIiksdCgiLi9pc29zdXJmYWNlIiksdCgiLi92b2x1bWUiKSx0KCIuL21lc2gzZCIpLHQoIi4vY29uZSIpLHQoIi4vc3RyZWFtdHViZSIpLHQoIi4vc2NhdHRlcmdlbyIpLHQoIi4vY2hvcm9wbGV0aCIpLHQoIi4vc2NhdHRlcmdsIiksdCgiLi9zcGxvbSIpLHQoIi4vcG9pbnRjbG91ZCIpLHQoIi4vaGVhdG1hcGdsIiksdCgiLi9wYXJjb29yZHMiKSx0KCIuL3BhcmNhdHMiKSx0KCIuL3NjYXR0ZXJtYXBib3giKSx0KCIuL2Nob3JvcGxldGhtYXBib3giKSx0KCIuL2RlbnNpdHltYXBib3giKSx0KCIuL3NhbmtleSIpLHQoIi4vaW5kaWNhdG9yIiksdCgiLi90YWJsZSIpLHQoIi4vY2FycGV0IiksdCgiLi9zY2F0dGVyY2FycGV0IiksdCgiLi9jb250b3VyY2FycGV0IiksdCgiLi9vaGxjIiksdCgiLi9jYW5kbGVzdGljayIpLHQoIi4vc2NhdHRlcnBvbGFyIiksdCgiLi9zY2F0dGVycG9sYXJnbCIpLHQoIi4vYmFycG9sYXIiKSx0KCIuL2FnZ3JlZ2F0ZSIpLHQoIi4vZmlsdGVyIiksdCgiLi9ncm91cGJ5IiksdCgiLi9zb3J0IiksdCgiLi9jYWxlbmRhcnMiKV0pLGUuZXhwb3J0cz1ufSx7Ii4vYWdncmVnYXRlIjoyLCIuL2JhciI6MywiLi9iYXJwb2xhciI6NCwiLi9ib3giOjUsIi4vY2FsZW5kYXJzIjo2LCIuL2NhbmRsZXN0aWNrIjo3LCIuL2NhcnBldCI6OCwiLi9jaG9yb3BsZXRoIjo5LCIuL2Nob3JvcGxldGhtYXBib3giOjEwLCIuL2NvbmUiOjExLCIuL2NvbnRvdXIiOjEyLCIuL2NvbnRvdXJjYXJwZXQiOjEzLCIuL2NvcmUiOjE0LCIuL2RlbnNpdHltYXBib3giOjE1LCIuL2ZpbHRlciI6MTYsIi4vZnVubmVsIjoxNywiLi9mdW5uZWxhcmVhIjoxOCwiLi9ncm91cGJ5IjoxOSwiLi9oZWF0bWFwIjoyMCwiLi9oZWF0bWFwZ2wiOjIxLCIuL2hpc3RvZ3JhbSI6MjIsIi4vaGlzdG9ncmFtMmQiOjIzLCIuL2hpc3RvZ3JhbTJkY29udG91ciI6MjQsIi4vaWNpY2xlIjoyNSwiLi9pbWFnZSI6MjYsIi4vaW5kaWNhdG9yIjoyOCwiLi9pc29zdXJmYWNlIjoyOSwiLi9tZXNoM2QiOjMwLCIuL29obGMiOjMxLCIuL3BhcmNhdHMiOjMyLCIuL3BhcmNvb3JkcyI6MzMsIi4vcGllIjozNCwiLi9wb2ludGNsb3VkIjozNSwiLi9zYW5rZXkiOjM2LCIuL3NjYXR0ZXIzZCI6MzcsIi4vc2NhdHRlcmNhcnBldCI6MzgsIi4vc2NhdHRlcmdlbyI6MzksIi4vc2NhdHRlcmdsIjo0MCwiLi9zY2F0dGVybWFwYm94Ijo0MSwiLi9zY2F0dGVycG9sYXIiOjQyLCIuL3NjYXR0ZXJwb2xhcmdsIjo0MywiLi9zY2F0dGVydGVybmFyeSI6NDQsIi4vc29ydCI6NDUsIi4vc3Bsb20iOjQ2LCIuL3N0cmVhbXR1YmUiOjQ3LCIuL3N1bmJ1cnN0Ijo0OCwiLi9zdXJmYWNlIjo0OSwiLi90YWJsZSI6NTAsIi4vdHJlZW1hcCI6NTEsIi4vdmlvbGluIjo1MiwiLi92b2x1bWUiOjUzLCIuL3dhdGVyZmFsbCI6NTR9XSwyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9pbmRpY2F0b3IiKX0seyIuLi9zcmMvdHJhY2VzL2luZGljYXRvciI6MTEyNX1dLDI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL2lzb3N1cmZhY2UiKX0seyIuLi9zcmMvdHJhY2VzL2lzb3N1cmZhY2UiOjExMzF9XSwzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9tZXNoM2QiKX0seyIuLi9zcmMvdHJhY2VzL21lc2gzZCI6MTEzNn1dLDMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL29obGMiKX0seyIuLi9zcmMvdHJhY2VzL29obGMiOjExNDF9XSwzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9wYXJjYXRzIil9LHsiLi4vc3JjL3RyYWNlcy9wYXJjYXRzIjoxMTUwfV0sMzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvcGFyY29vcmRzIil9LHsiLi4vc3JjL3RyYWNlcy9wYXJjb29yZHMiOjExNjB9XSwzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9waWUiKX0seyIuLi9zcmMvdHJhY2VzL3BpZSI6MTE3MX1dLDM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3BvaW50Y2xvdWQiKX0seyIuLi9zcmMvdHJhY2VzL3BvaW50Y2xvdWQiOjExODB9XSwzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zYW5rZXkiKX0seyIuLi9zcmMvdHJhY2VzL3NhbmtleSI6MTE4Nn1dLDM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXIzZCIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcjNkIjoxMjI0fV0sMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvc2NhdHRlcmNhcnBldCIpfSx7Ii4uL3NyYy90cmFjZXMvc2NhdHRlcmNhcnBldCI6MTIzMX1dLDM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnZW8iKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnZW8iOjEyMzl9XSw0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVyZ2wiKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJnbCI6MTI1Mn1dLDQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJtYXBib3giKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJtYXBib3giOjEyNjJ9XSw0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zY2F0dGVycG9sYXIiKX0seyIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJwb2xhciI6MTI3MH1dLDQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJwb2xhcmdsIil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVycG9sYXJnbCI6MTI3N31dLDQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NjYXR0ZXJ0ZXJuYXJ5Iil9LHsiLi4vc3JjL3RyYWNlcy9zY2F0dGVydGVybmFyeSI6MTI4NX1dLDQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhbnNmb3Jtcy9zb3J0Iil9LHsiLi4vc3JjL3RyYW5zZm9ybXMvc29ydCI6MTM3Nn1dLDQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3NwbG9tIil9LHsiLi4vc3JjL3RyYWNlcy9zcGxvbSI6MTI5NH1dLDQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3N0cmVhbXR1YmUiKX0seyIuLi9zcmMvdHJhY2VzL3N0cmVhbXR1YmUiOjEzMDJ9XSw0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zdW5idXJzdCIpfSx7Ii4uL3NyYy90cmFjZXMvc3VuYnVyc3QiOjEzMTB9XSw0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy9zdXJmYWNlIil9LHsiLi4vc3JjL3RyYWNlcy9zdXJmYWNlIjoxMzE5fV0sNTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvdGFibGUiKX0seyIuLi9zcmMvdHJhY2VzL3RhYmxlIjoxMzI3fV0sNTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvdHJlZW1hcCIpfSx7Ii4uL3NyYy90cmFjZXMvdHJlZW1hcCI6MTMzOH1dLDUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuLi9zcmMvdHJhY2VzL3Zpb2xpbiIpfSx7Ii4uL3NyYy90cmFjZXMvdmlvbGluIjoxMzUxfV0sNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4uL3NyYy90cmFjZXMvdm9sdW1lIil9LHsiLi4vc3JjL3RyYWNlcy92b2x1bWUiOjEzNTl9XSw1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi4vc3JjL3RyYWNlcy93YXRlcmZhbGwiKX0seyIuLi9zcmMvdHJhY2VzL3dhdGVyZmFsbCI6MTM2N31dLDU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx7fSkuZXllfHxbMCwwLDFdLHI9dC5jZW50ZXJ8fFswLDAsMF0scz10LnVwfHxbMCwxLDBdLGw9dC5kaXN0YW5jZUxpbWl0c3x8WzAsMS8wXSxjPXQubW9kZXx8InR1cm50YWJsZSIsdT1uKCksZj1pKCksaD1hKCk7cmV0dXJuIHUuc2V0RGlzdGFuY2VMaW1pdHMobFswXSxsWzFdKSx1Lmxvb2tBdCgwLGUscixzKSxmLnNldERpc3RhbmNlTGltaXRzKGxbMF0sbFsxXSksZi5sb29rQXQoMCxlLHIscyksaC5zZXREaXN0YW5jZUxpbWl0cyhsWzBdLGxbMV0pLGgubG9va0F0KDAsZSxyLHMpLG5ldyBvKHt0dXJudGFibGU6dSxvcmJpdDpmLG1hdHJpeDpofSxjKX07dmFyIG49dCgidHVybnRhYmxlLWNhbWVyYS1jb250cm9sbGVyIiksaT10KCJvcmJpdC1jYW1lcmEtY29udHJvbGxlciIpLGE9dCgibWF0cml4LWNhbWVyYS1jb250cm9sbGVyIik7ZnVuY3Rpb24gbyh0LGUpe3RoaXMuX2NvbnRyb2xsZXJOYW1lcz1PYmplY3Qua2V5cyh0KSx0aGlzLl9jb250cm9sbGVyTGlzdD10aGlzLl9jb250cm9sbGVyTmFtZXMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdFtlXX0pKSx0aGlzLl9tb2RlPWUsdGhpcy5fYWN0aXZlPXRbZV0sdGhpcy5fYWN0aXZlfHwodGhpcy5fbW9kZT0idHVybnRhYmxlIix0aGlzLl9hY3RpdmU9dC50dXJudGFibGUpLHRoaXMubW9kZXM9dGhpcy5fY29udHJvbGxlck5hbWVzLHRoaXMuY29tcHV0ZWRNYXRyaXg9dGhpcy5fYWN0aXZlLmNvbXB1dGVkTWF0cml4LHRoaXMuY29tcHV0ZWRFeWU9dGhpcy5fYWN0aXZlLmNvbXB1dGVkRXllLHRoaXMuY29tcHV0ZWRVcD10aGlzLl9hY3RpdmUuY29tcHV0ZWRVcCx0aGlzLmNvbXB1dGVkQ2VudGVyPXRoaXMuX2FjdGl2ZS5jb21wdXRlZENlbnRlcix0aGlzLmNvbXB1dGVkUmFkaXVzPXRoaXMuX2FjdGl2ZS5jb21wdXRlZFJhZGl1c312YXIgcz1vLnByb3RvdHlwZTtzLmZsdXNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb250cm9sbGVyTGlzdCxyPTA7cjxlLmxlbmd0aDsrK3IpZVtyXS5mbHVzaCh0KX0scy5pZGxlPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb250cm9sbGVyTGlzdCxyPTA7cjxlLmxlbmd0aDsrK3IpZVtyXS5pZGxlKHQpfSxzLmxvb2tBdD1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5fY29udHJvbGxlckxpc3QsYT0wO2E8aS5sZW5ndGg7KythKWlbYV0ubG9va0F0KHQsZSxyLG4pfSxzLnJvdGF0ZT1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5fY29udHJvbGxlckxpc3QsYT0wO2E8aS5sZW5ndGg7KythKWlbYV0ucm90YXRlKHQsZSxyLG4pfSxzLnBhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5fY29udHJvbGxlckxpc3QsYT0wO2E8aS5sZW5ndGg7KythKWlbYV0ucGFuKHQsZSxyLG4pfSxzLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9dGhpcy5fY29udHJvbGxlckxpc3QsYT0wO2E8aS5sZW5ndGg7KythKWlbYV0udHJhbnNsYXRlKHQsZSxyLG4pfSxzLnNldE1hdHJpeD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9jb250cm9sbGVyTGlzdCxuPTA7bjxyLmxlbmd0aDsrK24pcltuXS5zZXRNYXRyaXgodCxlKX0scy5zZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl9jb250cm9sbGVyTGlzdCxuPTA7bjxyLmxlbmd0aDsrK24pcltuXS5zZXREaXN0YW5jZUxpbWl0cyh0LGUpfSxzLnNldERpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX2NvbnRyb2xsZXJMaXN0LG49MDtuPHIubGVuZ3RoOysrbilyW25dLnNldERpc3RhbmNlKHQsZSl9LHMucmVjYWxjTWF0cml4PWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZS5yZWNhbGNNYXRyaXgodCl9LHMuZ2V0RGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2FjdGl2ZS5nZXREaXN0YW5jZSh0KX0scy5nZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYWN0aXZlLmdldERpc3RhbmNlTGltaXRzKHQpfSxzLmxhc3RUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZS5sYXN0VCgpfSxzLnNldE1vZGU9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuX21vZGUpe3ZhciBlPXRoaXMuX2NvbnRyb2xsZXJOYW1lcy5pbmRleE9mKHQpO2lmKCEoZTwwKSl7dmFyIHI9dGhpcy5fYWN0aXZlLG49dGhpcy5fY29udHJvbGxlckxpc3RbZV0saT1NYXRoLm1heChyLmxhc3RUKCksbi5sYXN0VCgpKTtyLnJlY2FsY01hdHJpeChpKSxuLnNldE1hdHJpeChpLHIuY29tcHV0ZWRNYXRyaXgpLHRoaXMuX2FjdGl2ZT1uLHRoaXMuX21vZGU9dCx0aGlzLmNvbXB1dGVkTWF0cml4PXRoaXMuX2FjdGl2ZS5jb21wdXRlZE1hdHJpeCx0aGlzLmNvbXB1dGVkRXllPXRoaXMuX2FjdGl2ZS5jb21wdXRlZEV5ZSx0aGlzLmNvbXB1dGVkVXA9dGhpcy5fYWN0aXZlLmNvbXB1dGVkVXAsdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLl9hY3RpdmUuY29tcHV0ZWRDZW50ZXIsdGhpcy5jb21wdXRlZFJhZGl1cz10aGlzLl9hY3RpdmUuY29tcHV0ZWRSYWRpdXN9fX0scy5nZXRNb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vZGV9fSx7Im1hdHJpeC1jYW1lcmEtY29udHJvbGxlciI6NDQ3LCJvcmJpdC1jYW1lcmEtY29udHJvbGxlciI6NDY4LCJ0dXJudGFibGUtY2FtZXJhLWNvbnRyb2xsZXIiOjU3Nn1dLDU2OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKG4saSl7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2kocix0KCJkMy1hcnJheSIpLHQoImQzLWNvbGxlY3Rpb24iKSx0KCJkMy1zaGFwZSIpLHQoImVsZW1lbnRhcnktY2lyY3VpdHMtZGlyZWN0ZWQtZ3JhcGgiKSk6aShuLmQzPW4uZDN8fHt9LG4uZDMsbi5kMyxuLmQzLG51bGwpfSh0aGlzLChmdW5jdGlvbih0LGUscixuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKHQpe3JldHVybiB0LnRhcmdldC5kZXB0aH1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQuc291cmNlTGlua3MubGVuZ3RoP3QuZGVwdGg6ZS0xfWZ1bmN0aW9uIHModCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWk9aSYmaS5oYXNPd25Qcm9wZXJ0eSgiZGVmYXVsdCIpP2kuZGVmYXVsdDppO3ZhciBsPSJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJiJzeW1ib2wiPT10eXBlb2YgU3ltYm9sLml0ZXJhdG9yP2Z1bmN0aW9uKHQpe3JldHVybiB0eXBlb2YgdH06ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJmdW5jdGlvbiI9PXR5cGVvZiBTeW1ib2wmJnQuY29uc3RydWN0b3I9PT1TeW1ib2wmJnQhPT1TeW1ib2wucHJvdG90eXBlPyJzeW1ib2wiOnR5cGVvZiB0fTtmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIGYodC5zb3VyY2UsZS5zb3VyY2UpfHx0LmluZGV4LWUuaW5kZXh9ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBmKHQudGFyZ2V0LGUudGFyZ2V0KXx8dC5pbmRleC1lLmluZGV4fWZ1bmN0aW9uIGYodCxlKXtyZXR1cm4gdC5wYXJ0T2ZDeWNsZT09PWUucGFydE9mQ3ljbGU/dC55MC1lLnkwOiJ0b3AiPT09dC5jaXJjdWxhckxpbmtUeXBlfHwiYm90dG9tIj09PWUuY2lyY3VsYXJMaW5rVHlwZT8tMToxfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQudmFsdWV9ZnVuY3Rpb24gcCh0KXtyZXR1cm4odC55MCt0LnkxKS8yfWZ1bmN0aW9uIGQodCl7cmV0dXJuIHAodC5zb3VyY2UpfWZ1bmN0aW9uIG0odCl7cmV0dXJuIHAodC50YXJnZXQpfWZ1bmN0aW9uIGcodCl7cmV0dXJuIHQuaW5kZXh9ZnVuY3Rpb24gdih0KXtyZXR1cm4gdC5ub2Rlc31mdW5jdGlvbiB5KHQpe3JldHVybiB0LmxpbmtzfWZ1bmN0aW9uIHgodCxlKXt2YXIgcj10LmdldChlKTtpZighcil0aHJvdyBuZXcgRXJyb3IoIm1pc3Npbmc6ICIrZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gYih0LGUpe3JldHVybiBlKHQpfWZ1bmN0aW9uIF8odCxlLHIpe3ZhciBuPTA7aWYobnVsbD09PXIpe2Zvcih2YXIgYT1bXSxvPTA7bzx0LmxpbmtzLmxlbmd0aDtvKyspe3ZhciBzPXQubGlua3Nbb10sbD1zLnNvdXJjZS5pbmRleCxjPXMudGFyZ2V0LmluZGV4O2FbbF18fChhW2xdPVtdKSxhW2NdfHwoYVtjXT1bXSksLTE9PT1hW2xdLmluZGV4T2YoYykmJmFbbF0ucHVzaChjKX12YXIgdT1pKGEpO3Uuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGgtZS5sZW5ndGh9KSk7dmFyIGY9e307Zm9yKG89MDtvPHUubGVuZ3RoO28rKyl7dmFyIGg9dVtvXS5zbGljZSgtMik7ZltoWzBdXXx8KGZbaFswXV09e30pLGZbaFswXV1baFsxXV09ITB9dC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnRhcmdldC5pbmRleCxyPXQuc291cmNlLmluZGV4O2U9PT1yfHxmW3JdJiZmW3JdW2VdPyh0LmNpcmN1bGFyPSEwLHQuY2lyY3VsYXJMaW5rSUQ9bixuKz0xKTp0LmNpcmN1bGFyPSExfSkpfWVsc2UgdC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnNvdXJjZVtyXTx0LnRhcmdldFtyXT90LmNpcmN1bGFyPSExOih0LmNpcmN1bGFyPSEwLHQuY2lyY3VsYXJMaW5rSUQ9bixuKz0xKX0pKX1mdW5jdGlvbiB3KHQsZSl7dmFyIHI9MCxuPTA7dC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbihpKXtpLmNpcmN1bGFyJiYoaS5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZXx8aS50YXJnZXQuY2lyY3VsYXJMaW5rVHlwZT9pLmNpcmN1bGFyTGlua1R5cGU9aS5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZT9pLnNvdXJjZS5jaXJjdWxhckxpbmtUeXBlOmkudGFyZ2V0LmNpcmN1bGFyTGlua1R5cGU6aS5jaXJjdWxhckxpbmtUeXBlPXI8bj8idG9wIjoiYm90dG9tIiwidG9wIj09aS5jaXJjdWxhckxpbmtUeXBlP3IrPTE6bis9MSx0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2IodCxlKSE9YihpLnNvdXJjZSxlKSYmYih0LGUpIT1iKGkudGFyZ2V0LGUpfHwodC5jaXJjdWxhckxpbmtUeXBlPWkuY2lyY3VsYXJMaW5rVHlwZSl9KSkpfSkpLHQubGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jaXJjdWxhciYmKHQuc291cmNlLmNpcmN1bGFyTGlua1R5cGU9PXQudGFyZ2V0LmNpcmN1bGFyTGlua1R5cGUmJih0LmNpcmN1bGFyTGlua1R5cGU9dC5zb3VyY2UuY2lyY3VsYXJMaW5rVHlwZSkscSh0LGUpJiYodC5jaXJjdWxhckxpbmtUeXBlPXQuc291cmNlLmNpcmN1bGFyTGlua1R5cGUpKX0pKX1mdW5jdGlvbiBUKHQpe3ZhciBlPU1hdGguYWJzKHQueTEtdC55MCkscj1NYXRoLmFicyh0LnRhcmdldC54MC10LnNvdXJjZS54MSk7cmV0dXJuIE1hdGguYXRhbihyL2UpfWZ1bmN0aW9uIGsodCxlKXt2YXIgcj0wO3Quc291cmNlTGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7cj10LmNpcmN1bGFyJiYhcSh0LGUpP3IrMTpyfSkpO3ZhciBuPTA7cmV0dXJuIHQudGFyZ2V0TGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7bj10LmNpcmN1bGFyJiYhcSh0LGUpP24rMTpufSkpLHIrbn1mdW5jdGlvbiBBKHQpe3ZhciBlPXQuc291cmNlLnNvdXJjZUxpbmtzLHI9MDtlLmZvckVhY2goKGZ1bmN0aW9uKHQpe3I9dC5jaXJjdWxhcj9yKzE6cn0pKTt2YXIgbj10LnRhcmdldC50YXJnZXRMaW5rcyxpPTA7cmV0dXJuIG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7aT10LmNpcmN1bGFyP2krMTppfSkpLCEocj4xfHxpPjEpfWZ1bmN0aW9uIE0odCxlLHIpe3JldHVybiB0LnNvcnQoRSksdC5mb3JFYWNoKChmdW5jdGlvbihuLGkpe3ZhciBhLG8scz0wO2lmKHEobixyKSYmQShuKSluLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxCdWZmZXI9cytuLndpZHRoLzI7ZWxzZXtmb3IodmFyIGw9MDtsPGk7bCsrKWlmKGE9dFtpXSxvPXRbbF0sIShhLnNvdXJjZS5jb2x1bW48by50YXJnZXQuY29sdW1ufHxhLnRhcmdldC5jb2x1bW4+by5zb3VyY2UuY29sdW1uKSl7dmFyIGM9dFtsXS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsQnVmZmVyK3RbbF0ud2lkdGgvMitlO3M9Yz5zP2M6c31uLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxCdWZmZXI9cytuLndpZHRoLzJ9fSkpLHR9ZnVuY3Rpb24gUyh0LHIsaSxhKXt2YXIgbz1lLm1pbih0LmxpbmtzLChmdW5jdGlvbih0KXtyZXR1cm4gdC5zb3VyY2UueTB9KSk7dC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmNpcmN1bGFyJiYodC5jaXJjdWxhclBhdGhEYXRhPXt9KX0pKSxNKHQubGlua3MuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4idG9wIj09dC5jaXJjdWxhckxpbmtUeXBlfSkpLHIsYSksTSh0LmxpbmtzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZX0pKSxyLGEpLHQubGlua3MuZm9yRWFjaCgoZnVuY3Rpb24oZSl7aWYoZS5jaXJjdWxhcil7aWYoZS5jaXJjdWxhclBhdGhEYXRhLmFyY1JhZGl1cz1lLndpZHRoKzEwLGUuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0Tm9kZUJ1ZmZlcj01LGUuY2lyY3VsYXJQYXRoRGF0YS5yaWdodE5vZGVCdWZmZXI9NSxlLmNpcmN1bGFyUGF0aERhdGEuc291cmNlV2lkdGg9ZS5zb3VyY2UueDEtZS5zb3VyY2UueDAsZS5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVg9ZS5zb3VyY2UueDArZS5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVdpZHRoLGUuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRYPWUudGFyZ2V0LngwLGUuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VZPWUueTAsZS5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFk9ZS55MSxxKGUsYSkmJkEoZSkpZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRTbWFsbEFyY1JhZGl1cz0xMCtlLndpZHRoLzIsZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cz0xMCtlLndpZHRoLzIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0U21hbGxBcmNSYWRpdXM9MTArZS53aWR0aC8yLGUuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzPTEwK2Uud2lkdGgvMiwiYm90dG9tIj09ZS5jaXJjdWxhckxpbmtUeXBlPyhlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50PWUuc291cmNlLnkxKzI1K2UuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudC1lLmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudC1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cyk6KGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQ9ZS5zb3VyY2UueTAtMjUtZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsQnVmZmVyLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbExlZnRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50K2UuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXMsZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50K2UuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKTtlbHNle3ZhciBzPWUuc291cmNlLmNvbHVtbixsPWUuY2lyY3VsYXJMaW5rVHlwZSxjPXQubGlua3MuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zb3VyY2UuY29sdW1uPT1zJiZ0LmNpcmN1bGFyTGlua1R5cGU9PWx9KSk7ImJvdHRvbSI9PWUuY2lyY3VsYXJMaW5rVHlwZT9jLnNvcnQoQyk6Yy5zb3J0KEwpO3ZhciB1PTA7Yy5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3QuY2lyY3VsYXJMaW5rSUQ9PWUuY2lyY3VsYXJMaW5rSUQmJihlLmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzPTEwK2Uud2lkdGgvMit1LGUuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXM9MTArZS53aWR0aC8yK24qcit1KSx1Kz10LndpZHRofSkpLHM9ZS50YXJnZXQuY29sdW1uLGM9dC5saW5rcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldC5jb2x1bW49PXMmJnQuY2lyY3VsYXJMaW5rVHlwZT09bH0pKSwiYm90dG9tIj09ZS5jaXJjdWxhckxpbmtUeXBlP2Muc29ydChJKTpjLnNvcnQoUCksdT0wLGMuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXt0LmNpcmN1bGFyTGlua0lEPT1lLmNpcmN1bGFyTGlua0lEJiYoZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0U21hbGxBcmNSYWRpdXM9MTArZS53aWR0aC8yK3UsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXM9MTArZS53aWR0aC8yK24qcit1KSx1Kz10LndpZHRofSkpLCJib3R0b20iPT1lLmNpcmN1bGFyTGlua1R5cGU/KGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQ9TWF0aC5tYXgoaSxlLnNvdXJjZS55MSxlLnRhcmdldC55MSkrMjUrZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsQnVmZmVyLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbExlZnRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50LWUuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXMsZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50LWUuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKTooZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudD1vLTI1LWUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCtlLmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzLGUuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCtlLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cyl9ZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEuc291cmNlWCtlLmNpcmN1bGFyUGF0aERhdGEubGVmdE5vZGVCdWZmZXIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFgtZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0Tm9kZUJ1ZmZlcixlLmNpcmN1bGFyUGF0aERhdGEubGVmdEZ1bGxFeHRlbnQ9ZS5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVgrZS5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cytlLmNpcmN1bGFyUGF0aERhdGEubGVmdE5vZGVCdWZmZXIsZS5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0RnVsbEV4dGVudD1lLmNpcmN1bGFyUGF0aERhdGEudGFyZ2V0WC1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cy1lLmNpcmN1bGFyUGF0aERhdGEucmlnaHROb2RlQnVmZmVyfWlmKGUuY2lyY3VsYXIpZS5wYXRoPWZ1bmN0aW9uKHQpe3ZhciBlPSIiO2U9InRvcCI9PXQuY2lyY3VsYXJMaW5rVHlwZT8iTSIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVgrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VZKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVkrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzKyIgMCAwIDAgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdEZ1bGxFeHRlbnQrIiAiKyh0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWS10LmNpcmN1bGFyUGF0aERhdGEubGVmdFNtYWxsQXJjUmFkaXVzKSsiIEwiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0RnVsbEV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsTGVmdElubmVyRXh0ZW50KyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cysiICIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRMYXJnZUFyY1JhZGl1cysiIDAgMCAwICIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCsiIEwiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50KyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKyIgMCAwIDAgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRGdWxsRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxSaWdodElubmVyRXh0ZW50KyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0RnVsbEV4dGVudCsiICIrKHQuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZLXQuY2lyY3VsYXJQYXRoRGF0YS5yaWdodFNtYWxsQXJjUmFkaXVzKSsiIEEiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRTbWFsbEFyY1JhZGl1cysiIDAgMCAwICIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFgrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS50YXJnZXRZOiJNIit0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnNvdXJjZVkrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEuc291cmNlWSsiIEEiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0U21hbGxBcmNSYWRpdXMrIiAwIDAgMSAiK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0RnVsbEV4dGVudCsiICIrKHQuY2lyY3VsYXJQYXRoRGF0YS5zb3VyY2VZK3QuY2lyY3VsYXJQYXRoRGF0YS5sZWZ0U21hbGxBcmNSYWRpdXMpKyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLmxlZnRGdWxsRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxMZWZ0SW5uZXJFeHRlbnQrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdExhcmdlQXJjUmFkaXVzKyIgMCAwIDEgIit0LmNpcmN1bGFyUGF0aERhdGEubGVmdElubmVyRXh0ZW50KyIgIit0LmNpcmN1bGFyUGF0aERhdGEudmVydGljYWxGdWxsRXh0ZW50KyIgTCIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0SW5uZXJFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbEZ1bGxFeHRlbnQrIiBBIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRMYXJnZUFyY1JhZGl1cysiICIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAwIDAgMSAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodEZ1bGxFeHRlbnQrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS52ZXJ0aWNhbFJpZ2h0SW5uZXJFeHRlbnQrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRGdWxsRXh0ZW50KyIgIisodC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFkrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0U21hbGxBcmNSYWRpdXMpKyIgQSIrdC5jaXJjdWxhclBhdGhEYXRhLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrIiAiK3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodFNtYWxsQXJjUmFkaXVzKyIgMCAwIDEgIit0LmNpcmN1bGFyUGF0aERhdGEucmlnaHRJbm5lckV4dGVudCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFkrIiBMIit0LmNpcmN1bGFyUGF0aERhdGEudGFyZ2V0WCsiICIrdC5jaXJjdWxhclBhdGhEYXRhLnRhcmdldFk7cmV0dXJuIGV9KGUpO2Vsc2V7dmFyIGY9bi5saW5rSG9yaXpvbnRhbCgpLnNvdXJjZSgoZnVuY3Rpb24odCl7cmV0dXJuW3Quc291cmNlLngwKyh0LnNvdXJjZS54MS10LnNvdXJjZS54MCksdC55MF19KSkudGFyZ2V0KChmdW5jdGlvbih0KXtyZXR1cm5bdC50YXJnZXQueDAsdC55MV19KSk7ZS5wYXRoPWYoZSl9fSkpfWZ1bmN0aW9uIEUodCxlKXtyZXR1cm4gTyh0KT09TyhlKT8iYm90dG9tIj09dC5jaXJjdWxhckxpbmtUeXBlP0ModCxlKTpMKHQsZSk6TyhlKS1PKHQpfWZ1bmN0aW9uIEwodCxlKXtyZXR1cm4gdC55MC1lLnkwfWZ1bmN0aW9uIEModCxlKXtyZXR1cm4gZS55MC10LnkwfWZ1bmN0aW9uIFAodCxlKXtyZXR1cm4gdC55MS1lLnkxfWZ1bmN0aW9uIEkodCxlKXtyZXR1cm4gZS55MS10LnkxfWZ1bmN0aW9uIE8odCl7cmV0dXJuIHQudGFyZ2V0LmNvbHVtbi10LnNvdXJjZS5jb2x1bW59ZnVuY3Rpb24geih0KXtyZXR1cm4gdC50YXJnZXQueDAtdC5zb3VyY2UueDF9ZnVuY3Rpb24gRCh0LGUpe3ZhciByPVQodCksbj16KGUpL01hdGgudGFuKHIpO3JldHVybiJ1cCI9PUgodCk/dC55MStuOnQueTEtbn1mdW5jdGlvbiBSKHQsZSl7dmFyIHI9VCh0KSxuPXooZSkvTWF0aC50YW4ocik7cmV0dXJuInVwIj09SCh0KT90LnkxLW46dC55MStufWZ1bmN0aW9uIEYodCxlLHIsbil7dC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbihpKXtpZighaS5jaXJjdWxhciYmaS50YXJnZXQuY29sdW1uLWkuc291cmNlLmNvbHVtbj4xKXt2YXIgYT1pLnNvdXJjZS5jb2x1bW4rMSxvPWkudGFyZ2V0LmNvbHVtbi0xLHM9MSxsPW8tYSsxO2ZvcihzPTE7YTw9bzthKysscysrKXQubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24obyl7aWYoby5jb2x1bW49PWEpe3ZhciBjLHU9cy8obCsxKSxmPU1hdGgucG93KDEtdSwzKSxoPTMqdSpNYXRoLnBvdygxLXUsMikscD0zKk1hdGgucG93KHUsMikqKDEtdSksZD1NYXRoLnBvdyh1LDMpLG09ZippLnkwK2gqaS55MCtwKmkueTErZCppLnkxLGc9bS1pLndpZHRoLzIsdj1tK2kud2lkdGgvMjtnPm8ueTAmJmc8by55MT8oYz1vLnkxLWcrMTAsYz0iYm90dG9tIj09by5jaXJjdWxhckxpbmtUeXBlP2M6LWMsbz1OKG8sYyxlLHIpLHQubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7Yih0LG4pIT1iKG8sbikmJnQuY29sdW1uPT1vLmNvbHVtbiYmQihvLHQpJiZOKHQsYyxlLHIpfSkpKToodj5vLnkwJiZ2PG8ueTF8fGc8by55MCYmdj5vLnkxKSYmKGM9di1vLnkwKzEwLG89TihvLGMsZSxyKSx0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe2IodCxuKSE9YihvLG4pJiZ0LmNvbHVtbj09by5jb2x1bW4mJnQueTA8by55MSYmdC55MT5vLnkxJiZOKHQsYyxlLHIpfSkpKX19KSl9fSkpfWZ1bmN0aW9uIEIodCxlKXtyZXR1cm4gdC55MD5lLnkwJiZ0LnkwPGUueTF8fCh0LnkxPmUueTAmJnQueTE8ZS55MXx8dC55MDxlLnkwJiZ0LnkxPmUueTEpfWZ1bmN0aW9uIE4odCxlLHIsbil7cmV0dXJuIHQueTArZT49ciYmdC55MStlPD1uJiYodC55MD10LnkwK2UsdC55MT10LnkxK2UsdC50YXJnZXRMaW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnkxPXQueTErZX0pKSx0LnNvdXJjZUxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QueTA9dC55MCtlfSkpKSx0fWZ1bmN0aW9uIGoodCxlLHIsbil7dC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbihpKXtuJiZpLnkrKGkueTEtaS55MCk+ZSYmKGkueT1pLnktKGkueSsoaS55MS1pLnkwKS1lKSk7dmFyIGE9dC5saW5rcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBiKHQuc291cmNlLHIpPT1iKGkscil9KSksbz1hLmxlbmd0aDtvPjEmJmEuc29ydCgoZnVuY3Rpb24odCxlKXtpZighdC5jaXJjdWxhciYmIWUuY2lyY3VsYXIpe2lmKHQudGFyZ2V0LmNvbHVtbj09ZS50YXJnZXQuY29sdW1uKXJldHVybiB0LnkxLWUueTE7aWYoIVYodCxlKSlyZXR1cm4gdC55MS1lLnkxO2lmKHQudGFyZ2V0LmNvbHVtbj5lLnRhcmdldC5jb2x1bW4pe3ZhciByPVIoZSx0KTtyZXR1cm4gdC55MS1yfWlmKGUudGFyZ2V0LmNvbHVtbj50LnRhcmdldC5jb2x1bW4pcmV0dXJuIFIodCxlKS1lLnkxfXJldHVybiB0LmNpcmN1bGFyJiYhZS5jaXJjdWxhcj8idG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6ZS5jaXJjdWxhciYmIXQuY2lyY3VsYXI/InRvcCI9PWUuY2lyY3VsYXJMaW5rVHlwZT8xOi0xOnQuY2lyY3VsYXImJmUuY2lyY3VsYXI/dC5jaXJjdWxhckxpbmtUeXBlPT09ZS5jaXJjdWxhckxpbmtUeXBlJiYidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP3QudGFyZ2V0LmNvbHVtbj09PWUudGFyZ2V0LmNvbHVtbj90LnRhcmdldC55MS1lLnRhcmdldC55MTplLnRhcmdldC5jb2x1bW4tdC50YXJnZXQuY29sdW1uOnQuY2lyY3VsYXJMaW5rVHlwZT09PWUuY2lyY3VsYXJMaW5rVHlwZSYmImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZT90LnRhcmdldC5jb2x1bW49PT1lLnRhcmdldC5jb2x1bW4/ZS50YXJnZXQueTEtdC50YXJnZXQueTE6dC50YXJnZXQuY29sdW1uLWUudGFyZ2V0LmNvbHVtbjoidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6dm9pZCAwfSkpO3ZhciBzPWkueTA7YS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnkwPXMrdC53aWR0aC8yLHMrPXQud2lkdGh9KSksYS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2lmKCJib3R0b20iPT10LmNpcmN1bGFyTGlua1R5cGUpe2Zvcih2YXIgcj1lKzEsbj0wO3I8bztyKyspbis9YVtyXS53aWR0aDt0LnkwPWkueTEtbi10LndpZHRoLzJ9fSkpfSkpfWZ1bmN0aW9uIFUodCxlLHIpe3Qubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG49dC5saW5rcy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBiKHQudGFyZ2V0LHIpPT1iKGUscil9KSksaT1uLmxlbmd0aDtpPjEmJm4uc29ydCgoZnVuY3Rpb24odCxlKXtpZighdC5jaXJjdWxhciYmIWUuY2lyY3VsYXIpe2lmKHQuc291cmNlLmNvbHVtbj09ZS5zb3VyY2UuY29sdW1uKXJldHVybiB0LnkwLWUueTA7aWYoIVYodCxlKSlyZXR1cm4gdC55MC1lLnkwO2lmKGUuc291cmNlLmNvbHVtbjx0LnNvdXJjZS5jb2x1bW4pe3ZhciByPUQoZSx0KTtyZXR1cm4gdC55MC1yfWlmKHQuc291cmNlLmNvbHVtbjxlLnNvdXJjZS5jb2x1bW4pcmV0dXJuIEQodCxlKS1lLnkwfXJldHVybiB0LmNpcmN1bGFyJiYhZS5jaXJjdWxhcj8idG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6ZS5jaXJjdWxhciYmIXQuY2lyY3VsYXI/InRvcCI9PWUuY2lyY3VsYXJMaW5rVHlwZT8xOi0xOnQuY2lyY3VsYXImJmUuY2lyY3VsYXI/dC5jaXJjdWxhckxpbmtUeXBlPT09ZS5jaXJjdWxhckxpbmtUeXBlJiYidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP3Quc291cmNlLmNvbHVtbj09PWUuc291cmNlLmNvbHVtbj90LnNvdXJjZS55MS1lLnNvdXJjZS55MTp0LnNvdXJjZS5jb2x1bW4tZS5zb3VyY2UuY29sdW1uOnQuY2lyY3VsYXJMaW5rVHlwZT09PWUuY2lyY3VsYXJMaW5rVHlwZSYmImJvdHRvbSI9PXQuY2lyY3VsYXJMaW5rVHlwZT90LnNvdXJjZS5jb2x1bW49PT1lLnNvdXJjZS5jb2x1bW4/dC5zb3VyY2UueTEtZS5zb3VyY2UueTE6ZS5zb3VyY2UuY29sdW1uLXQuc291cmNlLmNvbHVtbjoidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPy0xOjE6dm9pZCAwfSkpO3ZhciBhPWUueTA7bi5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnkxPWErdC53aWR0aC8yLGErPXQud2lkdGh9KSksbi5mb3JFYWNoKChmdW5jdGlvbih0LHIpe2lmKCJib3R0b20iPT10LmNpcmN1bGFyTGlua1R5cGUpe2Zvcih2YXIgYT1yKzEsbz0wO2E8aTthKyspbys9blthXS53aWR0aDt0LnkxPWUueTEtby10LndpZHRoLzJ9fSkpfSkpfWZ1bmN0aW9uIFYodCxlKXtyZXR1cm4gSCh0KT09SChlKX1mdW5jdGlvbiBIKHQpe3JldHVybiB0LnkwLXQueTE+MD8idXAiOiJkb3duIn1mdW5jdGlvbiBxKHQsZSl7cmV0dXJuIGIodC5zb3VyY2UsZSk9PWIodC50YXJnZXQsZSl9ZnVuY3Rpb24gRyh0LHIsbil7dmFyIGk9dC5ub2RlcyxhPXQubGlua3Msbz0hMSxzPSExO2lmKGEuZm9yRWFjaCgoZnVuY3Rpb24odCl7InRvcCI9PXQuY2lyY3VsYXJMaW5rVHlwZT9vPSEwOiJib3R0b20iPT10LmNpcmN1bGFyTGlua1R5cGUmJihzPSEwKX0pKSwwPT1vfHwwPT1zKXt2YXIgbD1lLm1pbihpLChmdW5jdGlvbih0KXtyZXR1cm4gdC55MH0pKSxjPShuLXIpLyhlLm1heChpLChmdW5jdGlvbih0KXtyZXR1cm4gdC55MX0pKS1sKTtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPSh0LnkxLXQueTApKmM7dC55MD0odC55MC1sKSpjLHQueTE9dC55MCtlfSkpLGEuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC55MD0odC55MC1sKSpjLHQueTE9KHQueTEtbCkqYyx0LndpZHRoPXQud2lkdGgqY30pKX19dC5zYW5rZXlDaXJjdWxhcj1mdW5jdGlvbigpe3ZhciB0LG4saT0wLGE9MCxiPTEsVD0xLEE9MjQsTT1nLEU9byxMPXYsQz15LFA9MzIsST0yLE89bnVsbDtmdW5jdGlvbiB6KCl7dmFyIHQ9e25vZGVzOkwuYXBwbHkobnVsbCxhcmd1bWVudHMpLGxpbmtzOkMuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtEKHQpLF8odCxNLE8pLFIodCksQih0KSx3KHQsTSksTih0LFAsTSksVih0KTtmb3IodmFyIGU9NCxyPTA7cjxlO3IrKylqKHQsVCxNKSxVKHQsVCxNKSxGKHQsYSxULE0pLGoodCxULE0pLFUodCxULE0pO3JldHVybiBHKHQsYSxUKSxTKHQsSSxULE0pLHR9ZnVuY3Rpb24gRCh0KXt0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC5pbmRleD1lLHQuc291cmNlTGlua3M9W10sdC50YXJnZXRMaW5rcz1bXX0pKTt2YXIgZT1yLm1hcCh0Lm5vZGVzLE0pO3JldHVybiB0LmxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQscil7dC5pbmRleD1yO3ZhciBuPXQuc291cmNlLGk9dC50YXJnZXQ7Im9iamVjdCIhPT0odm9pZCAwPT09bj8idW5kZWZpbmVkIjpsKG4pKSYmKG49dC5zb3VyY2U9eChlLG4pKSwib2JqZWN0IiE9PSh2b2lkIDA9PT1pPyJ1bmRlZmluZWQiOmwoaSkpJiYoaT10LnRhcmdldD14KGUsaSkpLG4uc291cmNlTGlua3MucHVzaCh0KSxpLnRhcmdldExpbmtzLnB1c2godCl9KSksdH1mdW5jdGlvbiBSKHQpe3Qubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5wYXJ0T2ZDeWNsZT0hMSx0LnZhbHVlPU1hdGgubWF4KGUuc3VtKHQuc291cmNlTGlua3MsaCksZS5zdW0odC50YXJnZXRMaW5rcyxoKSksdC5zb3VyY2VMaW5rcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLmNpcmN1bGFyJiYodC5wYXJ0T2ZDeWNsZT0hMCx0LmNpcmN1bGFyTGlua1R5cGU9ZS5jaXJjdWxhckxpbmtUeXBlKX0pKSx0LnRhcmdldExpbmtzLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuY2lyY3VsYXImJih0LnBhcnRPZkN5Y2xlPSEwLHQuY2lyY3VsYXJMaW5rVHlwZT1lLmNpcmN1bGFyTGlua1R5cGUpfSkpfSkpfWZ1bmN0aW9uIEIodCl7dmFyIGUscixuO2ZvcihlPXQubm9kZXMscj1bXSxuPTA7ZS5sZW5ndGg7KytuLGU9cixyPVtdKWUuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5kZXB0aD1uLHQuc291cmNlTGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7ci5pbmRleE9mKHQudGFyZ2V0KTwwJiYhdC5jaXJjdWxhciYmci5wdXNoKHQudGFyZ2V0KX0pKX0pKTtmb3IoZT10Lm5vZGVzLHI9W10sbj0wO2UubGVuZ3RoOysrbixlPXIscj1bXSllLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuaGVpZ2h0PW4sdC50YXJnZXRMaW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXtyLmluZGV4T2YodC5zb3VyY2UpPDAmJiF0LmNpcmN1bGFyJiZyLnB1c2godC5zb3VyY2UpfSkpfSkpO3Qubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb2x1bW49TWF0aC5mbG9vcihFLmNhbGwobnVsbCx0LG4pKX0pKX1mdW5jdGlvbiBOKG8scyxsKXt2YXIgYz1yLm5lc3QoKS5rZXkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbHVtbn0pKS5zb3J0S2V5cyhlLmFzY2VuZGluZykuZW50cmllcyhvLm5vZGVzKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZhbHVlc30pKTshZnVuY3Rpb24ocil7aWYobil7dmFyIHM9MS8wO2MuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9VCpuLyh0Lmxlbmd0aCsxKTtzPWU8cz9lOnN9KSksdD1zfXZhciBsPWUubWluKGMsKGZ1bmN0aW9uKHIpe3JldHVybihULWEtKHIubGVuZ3RoLTEpKnQpL2Uuc3VtKHIsaCl9KSk7bCo9LjMsby5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LndpZHRoPXQudmFsdWUqbH0pKTt2YXIgdT1mdW5jdGlvbih0KXt2YXIgcj0wLG49MCxpPTAsYT0wLG89ZS5tYXgodC5ub2RlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sdW1ufSkpO3JldHVybiB0LmxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY2lyY3VsYXImJigidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlP3IrPXQud2lkdGg6bis9dC53aWR0aCwwPT10LnRhcmdldC5jb2x1bW4mJihhKz10LndpZHRoKSx0LnNvdXJjZS5jb2x1bW49PW8mJihpKz10LndpZHRoKSl9KSkse3RvcDpyPXI+MD9yKzI1KzEwOnIsYm90dG9tOm49bj4wP24rMjUrMTA6bixsZWZ0OmE9YT4wP2ErMjUrMTA6YSxyaWdodDppPWk+MD9pKzI1KzEwOml9fShvKSxmPWZ1bmN0aW9uKHQscil7dmFyIG49ZS5tYXgodC5ub2RlcywoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sdW1ufSkpLG89Yi1pLHM9VC1hLGw9by8obytyLnJpZ2h0K3IubGVmdCksYz1zLyhzK3IudG9wK3IuYm90dG9tKTtyZXR1cm4gaT1pKmwrci5sZWZ0LGI9MD09ci5yaWdodD9iOmIqbCxhPWEqYytyLnRvcCxUKj1jLHQubm9kZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC54MD1pK3QuY29sdW1uKigoYi1pLUEpL24pLHQueDE9dC54MCtBfSkpLGN9KG8sdSk7bCo9ZixvLmxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Qud2lkdGg9dC52YWx1ZSpsfSkpLGMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7dC5mb3JFYWNoKChmdW5jdGlvbih0LG4pe3QuZGVwdGg9PWMubGVuZ3RoLTEmJjE9PWV8fDA9PXQuZGVwdGgmJjE9PWU/KHQueTA9VC8yLXQudmFsdWUqbCx0LnkxPXQueTArdC52YWx1ZSpsKTp0LnBhcnRPZkN5Y2xlPzA9PWsodCxyKT8odC55MD1ULzIrbix0LnkxPXQueTArdC52YWx1ZSpsKToidG9wIj09dC5jaXJjdWxhckxpbmtUeXBlPyh0LnkwPWErbix0LnkxPXQueTArdC52YWx1ZSpsKToodC55MD1ULXQudmFsdWUqbC1uLHQueTE9dC55MCt0LnZhbHVlKmwpOjA9PXUudG9wfHwwPT11LmJvdHRvbT8odC55MD0oVC1hKS9lKm4sdC55MT10LnkwK3QudmFsdWUqbCk6KHQueTA9KFQtYSkvMi1lLzIrbix0LnkxPXQueTArdC52YWx1ZSpsKX0pKX0pKX0obCkseSgpO2Zvcih2YXIgdT0xLGc9cztnPjA7LS1nKXYodSo9Ljk5LGwpLHkoKTtmdW5jdGlvbiB2KHQscil7dmFyIG49Yy5sZW5ndGg7Yy5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgYT1pLmxlbmd0aCxvPWlbMF0uZGVwdGg7aS5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgcztpZihpLnNvdXJjZUxpbmtzLmxlbmd0aHx8aS50YXJnZXRMaW5rcy5sZW5ndGgpaWYoaS5wYXJ0T2ZDeWNsZSYmayhpLHIpPjApO2Vsc2UgaWYoMD09byYmMT09YSlzPWkueTEtaS55MCxpLnkwPVQvMi1zLzIsaS55MT1ULzIrcy8yO2Vsc2UgaWYobz09bi0xJiYxPT1hKXM9aS55MS1pLnkwLGkueTA9VC8yLXMvMixpLnkxPVQvMitzLzI7ZWxzZXt2YXIgbD1lLm1lYW4oaS5zb3VyY2VMaW5rcyxtKSxjPWUubWVhbihpLnRhcmdldExpbmtzLGQpLHU9KChsJiZjPyhsK2MpLzI6bHx8YyktcChpKSkqdDtpLnkwKz11LGkueTErPXV9fSkpfSkpfWZ1bmN0aW9uIHkoKXtjLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByLG4saSxvPWEscz1lLmxlbmd0aDtmb3IoZS5zb3J0KGYpLGk9MDtpPHM7KytpKShuPW8tKHI9ZVtpXSkueTApPjAmJihyLnkwKz1uLHIueTErPW4pLG89ci55MSt0O2lmKChuPW8tdC1UKT4wKWZvcihvPXIueTAtPW4sci55MS09bixpPXMtMjtpPj0wOy0taSkobj0ocj1lW2ldKS55MSt0LW8pPjAmJihyLnkwLT1uLHIueTEtPW4pLG89ci55MH0pKX19ZnVuY3Rpb24gVih0KXt0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc291cmNlTGlua3Muc29ydCh1KSx0LnRhcmdldExpbmtzLnNvcnQoYyl9KSksdC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnkwLHI9ZSxuPXQueTEsaT1uO3Quc291cmNlTGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jaXJjdWxhcj8odC55MD1uLXQud2lkdGgvMixuLT10LndpZHRoKToodC55MD1lK3Qud2lkdGgvMixlKz10LndpZHRoKX0pKSx0LnRhcmdldExpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY2lyY3VsYXI/KHQueTE9aS10LndpZHRoLzIsaS09dC53aWR0aCk6KHQueTE9cit0LndpZHRoLzIscis9dC53aWR0aCl9KSl9KSl9cmV0dXJuIHoubm9kZUlkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cyh0KSx6KTpNfSx6Lm5vZGVBbGlnbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oRT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnModCkseik6RX0sei5ub2RlV2lkdGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KEE9K3Qseik6QX0sei5ub2RlUGFkZGluZz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rZSx6KTp0fSx6Lm5vZGVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhMPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cyh0KSx6KTpMfSx6LmxpbmtzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhDPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cyh0KSx6KTpDfSx6LnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9YT0wLGI9K3RbMF0sVD0rdFsxXSx6KTpbYi1pLFQtYV19LHouZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSt0WzBdWzBdLGI9K3RbMV1bMF0sYT0rdFswXVsxXSxUPSt0WzFdWzFdLHopOltbaSxhXSxbYixUXV19LHouaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUD0rdCx6KTpQfSx6LmNpcmN1bGFyTGlua0dhcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oST0rdCx6KTpJfSx6Lm5vZGVQYWRkaW5nUmF0aW89ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49K3Qseik6bn0sei5zb3J0Tm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KE89dCx6KTpPfSx6LnVwZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdyh0LE0pLFYodCksdC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmNpcmN1bGFyJiYodC5jaXJjdWxhckxpbmtUeXBlPXQueTArdC55MTxUPyJ0b3AiOiJib3R0b20iLHQuc291cmNlLmNpcmN1bGFyTGlua1R5cGU9dC5jaXJjdWxhckxpbmtUeXBlLHQudGFyZ2V0LmNpcmN1bGFyTGlua1R5cGU9dC5jaXJjdWxhckxpbmtUeXBlKX0pKSxqKHQsVCxNLCExKSxVKHQsVCxNKSxTKHQsSSxULE0pLHR9LHp9LHQuc2Fua2V5Q2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldExpbmtzLmxlbmd0aD90LmRlcHRoOnQuc291cmNlTGlua3MubGVuZ3RoP2UubWluKHQuc291cmNlTGlua3MsYSktMTowfSx0LnNhbmtleUxlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVwdGh9LHQuc2Fua2V5UmlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS0xLXQuaGVpZ2h0fSx0LnNhbmtleUp1c3RpZnk9byxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtYXJyYXkiOjE1NSwiZDMtY29sbGVjdGlvbiI6MTU2LCJkMy1zaGFwZSI6MTY3LCJlbGVtZW50YXJ5LWNpcmN1aXRzLWRpcmVjdGVkLWdyYXBoIjoxODB9XSw1NzpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbihuLGkpeyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9pKHIsdCgiZDMtYXJyYXkiKSx0KCJkMy1jb2xsZWN0aW9uIiksdCgiZDMtc2hhcGUiKSk6aShuLmQzPW4uZDN8fHt9LG4uZDMsbi5kMyxuLmQzKX0odGhpcywoZnVuY3Rpb24odCxlLHIsbil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGkodCl7cmV0dXJuIHQudGFyZ2V0LmRlcHRofWZ1bmN0aW9uIGEodCxlKXtyZXR1cm4gdC5zb3VyY2VMaW5rcy5sZW5ndGg/dC5kZXB0aDplLTF9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gcyh0LGUpe3JldHVybiBjKHQuc291cmNlLGUuc291cmNlKXx8dC5pbmRleC1lLmluZGV4fWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gYyh0LnRhcmdldCxlLnRhcmdldCl8fHQuaW5kZXgtZS5pbmRleH1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIHQueTAtZS55MH1mdW5jdGlvbiB1KHQpe3JldHVybiB0LnZhbHVlfWZ1bmN0aW9uIGYodCl7cmV0dXJuKHQueTArdC55MSkvMn1mdW5jdGlvbiBoKHQpe3JldHVybiBmKHQuc291cmNlKSp0LnZhbHVlfWZ1bmN0aW9uIHAodCl7cmV0dXJuIGYodC50YXJnZXQpKnQudmFsdWV9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gdC5pbmRleH1mdW5jdGlvbiBtKHQpe3JldHVybiB0Lm5vZGVzfWZ1bmN0aW9uIGcodCl7cmV0dXJuIHQubGlua3N9ZnVuY3Rpb24gdih0LGUpe3ZhciByPXQuZ2V0KGUpO2lmKCFyKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIitlKTtyZXR1cm4gcn1mdW5jdGlvbiB5KHQpe3JldHVyblt0LnNvdXJjZS54MSx0LnkwXX1mdW5jdGlvbiB4KHQpe3JldHVyblt0LnRhcmdldC54MCx0LnkxXX10LnNhbmtleT1mdW5jdGlvbigpe3ZhciB0PTAsbj0wLGk9MSx5PTEseD0yNCxiPTgsXz1kLHc9YSxUPW0saz1nLEE9MzI7ZnVuY3Rpb24gTSgpe3ZhciB0PXtub2RlczpULmFwcGx5KG51bGwsYXJndW1lbnRzKSxsaW5rczprLmFwcGx5KG51bGwsYXJndW1lbnRzKX07cmV0dXJuIFModCksRSh0KSxMKHQpLEModCksUCh0KSx0fWZ1bmN0aW9uIFModCl7dC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3QuaW5kZXg9ZSx0LnNvdXJjZUxpbmtzPVtdLHQudGFyZ2V0TGlua3M9W119KSk7dmFyIGU9ci5tYXAodC5ub2RlcyxfKTt0LmxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQscil7dC5pbmRleD1yO3ZhciBuPXQuc291cmNlLGk9dC50YXJnZXQ7Im9iamVjdCIhPXR5cGVvZiBuJiYobj10LnNvdXJjZT12KGUsbikpLCJvYmplY3QiIT10eXBlb2YgaSYmKGk9dC50YXJnZXQ9dihlLGkpKSxuLnNvdXJjZUxpbmtzLnB1c2godCksaS50YXJnZXRMaW5rcy5wdXNoKHQpfSkpfWZ1bmN0aW9uIEUodCl7dC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnZhbHVlPU1hdGgubWF4KGUuc3VtKHQuc291cmNlTGlua3MsdSksZS5zdW0odC50YXJnZXRMaW5rcyx1KSl9KSl9ZnVuY3Rpb24gTChlKXt2YXIgcixuLGE7Zm9yKHI9ZS5ub2RlcyxuPVtdLGE9MDtyLmxlbmd0aDsrK2Escj1uLG49W10pci5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmRlcHRoPWEsdC5zb3VyY2VMaW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXtuLmluZGV4T2YodC50YXJnZXQpPDAmJm4ucHVzaCh0LnRhcmdldCl9KSl9KSk7Zm9yKHI9ZS5ub2RlcyxuPVtdLGE9MDtyLmxlbmd0aDsrK2Escj1uLG49W10pci5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmhlaWdodD1hLHQudGFyZ2V0TGlua3MuZm9yRWFjaCgoZnVuY3Rpb24odCl7bi5pbmRleE9mKHQuc291cmNlKTwwJiZuLnB1c2godC5zb3VyY2UpfSkpfSkpO3ZhciBvPShpLXQteCkvKGEtMSk7ZS5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbihlKXtlLngxPShlLngwPXQrTWF0aC5tYXgoMCxNYXRoLm1pbihhLTEsTWF0aC5mbG9vcih3LmNhbGwobnVsbCxlLGEpKSkpKm8pK3h9KSl9ZnVuY3Rpb24gQyh0KXt2YXIgaT1yLm5lc3QoKS5rZXkoKGZ1bmN0aW9uKHQpe3JldHVybiB0LngwfSkpLnNvcnRLZXlzKGUuYXNjZW5kaW5nKS5lbnRyaWVzKHQubm9kZXMpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudmFsdWVzfSkpOyFmdW5jdGlvbigpe3ZhciByPWUubWF4KGksKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aH0pKSxhPTIvMyooeS1uKS8oci0xKTtiPmEmJihiPWEpO3ZhciBvPWUubWluKGksKGZ1bmN0aW9uKHQpe3JldHVybih5LW4tKHQubGVuZ3RoLTEpKmIpL2Uuc3VtKHQsdSl9KSk7aS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC55MT0odC55MD1lKSt0LnZhbHVlKm99KSl9KSksdC5saW5rcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LndpZHRoPXQudmFsdWUqb30pKX0oKSxkKCk7Zm9yKHZhciBhPTEsbz1BO28+MDstLW8pbChhKj0uOTkpLGQoKSxzKGEpLGQoKTtmdW5jdGlvbiBzKHQpe2kuZm9yRWFjaCgoZnVuY3Rpb24ocil7ci5mb3JFYWNoKChmdW5jdGlvbihyKXtpZihyLnRhcmdldExpbmtzLmxlbmd0aCl7dmFyIG49KGUuc3VtKHIudGFyZ2V0TGlua3MsaCkvZS5zdW0oci50YXJnZXRMaW5rcyx1KS1mKHIpKSp0O3IueTArPW4sci55MSs9bn19KSl9KSl9ZnVuY3Rpb24gbCh0KXtpLnNsaWNlKCkucmV2ZXJzZSgpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3IuZm9yRWFjaCgoZnVuY3Rpb24ocil7aWYoci5zb3VyY2VMaW5rcy5sZW5ndGgpe3ZhciBuPShlLnN1bShyLnNvdXJjZUxpbmtzLHApL2Uuc3VtKHIuc291cmNlTGlua3MsdSktZihyKSkqdDtyLnkwKz1uLHIueTErPW59fSkpfSkpfWZ1bmN0aW9uIGQoKXtpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlLHIsaSxhPW4sbz10Lmxlbmd0aDtmb3IodC5zb3J0KGMpLGk9MDtpPG87KytpKShyPWEtKGU9dFtpXSkueTApPjAmJihlLnkwKz1yLGUueTErPXIpLGE9ZS55MStiO2lmKChyPWEtYi15KT4wKWZvcihhPWUueTAtPXIsZS55MS09cixpPW8tMjtpPj0wOy0taSkocj0oZT10W2ldKS55MStiLWEpPjAmJihlLnkwLT1yLGUueTEtPXIpLGE9ZS55MH0pKX19ZnVuY3Rpb24gUCh0KXt0Lm5vZGVzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc291cmNlTGlua3Muc29ydChsKSx0LnRhcmdldExpbmtzLnNvcnQocyl9KSksdC5ub2Rlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnkwLHI9ZTt0LnNvdXJjZUxpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QueTA9ZSt0LndpZHRoLzIsZSs9dC53aWR0aH0pKSx0LnRhcmdldExpbmtzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QueTE9cit0LndpZHRoLzIscis9dC53aWR0aH0pKX0pKX1yZXR1cm4gTS51cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIFAodCksdH0sTS5ub2RlSWQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KF89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLE0pOl99LE0ubm9kZUFsaWduPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh3PSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6byh0KSxNKTp3fSxNLm5vZGVXaWR0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oeD0rdCxNKTp4fSxNLm5vZGVQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPSt0LE0pOmJ9LE0ubm9kZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KFQ9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLE0pOlR9LE0ubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGs9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpvKHQpLE0pOmt9LE0uc2l6ZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1uPTAsaT0rZVswXSx5PStlWzFdLE0pOltpLXQseS1uXX0sTS5leHRlbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2VbMF1bMF0saT0rZVsxXVswXSxuPStlWzBdWzFdLHk9K2VbMV1bMV0sTSk6W1t0LG5dLFtpLHldXX0sTS5pdGVyYXRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPSt0LE0pOkF9LE19LHQuc2Fua2V5Q2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0LnRhcmdldExpbmtzLmxlbmd0aD90LmRlcHRoOnQuc291cmNlTGlua3MubGVuZ3RoP2UubWluKHQuc291cmNlTGlua3MsaSktMTowfSx0LnNhbmtleUxlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVwdGh9LHQuc2Fua2V5UmlnaHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS0xLXQuaGVpZ2h0fSx0LnNhbmtleUp1c3RpZnk9YSx0LnNhbmtleUxpbmtIb3Jpem9udGFsPWZ1bmN0aW9uKCl7cmV0dXJuIG4ubGlua0hvcml6b250YWwoKS5zb3VyY2UoeSkudGFyZ2V0KHgpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtYXJyYXkiOjE1NSwiZDMtY29sbGVjdGlvbiI6MTU2LCJkMy1zaGFwZSI6MTY3fV0sNTg6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24oKXt2YXIgdD17dmVyc2lvbjoiMy44LjAifSxyPVtdLnNsaWNlLG49ZnVuY3Rpb24odCl7cmV0dXJuIHIuY2FsbCh0KX0saT1zZWxmLmRvY3VtZW50O2Z1bmN0aW9uIGEodCl7cmV0dXJuIHQmJih0Lm93bmVyRG9jdW1lbnR8fHQuZG9jdW1lbnR8fHQpLmRvY3VtZW50RWxlbWVudH1mdW5jdGlvbiBvKHQpe3JldHVybiB0JiYodC5vd25lckRvY3VtZW50JiZ0Lm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXd8fHQuZG9jdW1lbnQmJnR8fHQuZGVmYXVsdFZpZXcpfWlmKGkpdHJ5e24oaS5kb2N1bWVudEVsZW1lbnQuY2hpbGROb2RlcylbMF0ubm9kZVR5cGV9Y2F0Y2godCl7bj1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSk7ZS0tOylyW2VdPXRbZV07cmV0dXJuIHJ9fWlmKERhdGUubm93fHwoRGF0ZS5ub3c9ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9KSxpKXRyeXtpLmNyZWF0ZUVsZW1lbnQoIkRJViIpLnN0eWxlLnNldFByb3BlcnR5KCJvcGFjaXR5IiwwLCIiKX1jYXRjaCh0KXt2YXIgcz10aGlzLkVsZW1lbnQucHJvdG90eXBlLGw9cy5zZXRBdHRyaWJ1dGUsYz1zLnNldEF0dHJpYnV0ZU5TLHU9dGhpcy5DU1NTdHlsZURlY2xhcmF0aW9uLnByb3RvdHlwZSxmPXUuc2V0UHJvcGVydHk7cy5zZXRBdHRyaWJ1dGU9ZnVuY3Rpb24odCxlKXtsLmNhbGwodGhpcyx0LGUrIiIpfSxzLnNldEF0dHJpYnV0ZU5TPWZ1bmN0aW9uKHQsZSxyKXtjLmNhbGwodGhpcyx0LGUscisiIil9LHUuc2V0UHJvcGVydHk9ZnVuY3Rpb24odCxlLHIpe2YuY2FsbCh0aGlzLHQsZSsiIixyKX19ZnVuY3Rpb24gaCh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiBwKHQpe3JldHVybiBudWxsPT09dD9OYU46K3R9ZnVuY3Rpb24gZCh0KXtyZXR1cm4haXNOYU4odCl9ZnVuY3Rpb24gbSh0KXtyZXR1cm57bGVmdDpmdW5jdGlvbihlLHIsbixpKXtmb3IoYXJndW1lbnRzLmxlbmd0aDwzJiYobj0wKSxhcmd1bWVudHMubGVuZ3RoPDQmJihpPWUubGVuZ3RoKTtuPGk7KXt2YXIgYT1uK2k+Pj4xO3QoZVthXSxyKTwwP249YSsxOmk9YX1yZXR1cm4gbn0scmlnaHQ6ZnVuY3Rpb24oZSxyLG4saSl7Zm9yKGFyZ3VtZW50cy5sZW5ndGg8MyYmKG49MCksYXJndW1lbnRzLmxlbmd0aDw0JiYoaT1lLmxlbmd0aCk7bjxpOyl7dmFyIGE9bitpPj4+MTt0KGVbYV0scik+MD9pPWE6bj1hKzF9cmV0dXJuIG59fX10LmFzY2VuZGluZz1oLHQuZGVzY2VuZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn0sdC5taW49ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9LTEsYT10Lmxlbmd0aDtpZigxPT09YXJndW1lbnRzLmxlbmd0aCl7Zm9yKDsrK2k8YTspaWYobnVsbCE9KG49dFtpXSkmJm4+PW4pe3I9bjticmVha31mb3IoOysraTxhOyludWxsIT0obj10W2ldKSYmcj5uJiYocj1uKX1lbHNle2Zvcig7KytpPGE7KWlmKG51bGwhPShuPWUuY2FsbCh0LHRbaV0saSkpJiZuPj1uKXtyPW47YnJlYWt9Zm9yKDsrK2k8YTspbnVsbCE9KG49ZS5jYWxsKHQsdFtpXSxpKSkmJnI+biYmKHI9bil9cmV0dXJuIHJ9LHQubWF4PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPS0xLGE9dC5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7KytpPGE7KWlmKG51bGwhPShuPXRbaV0pJiZuPj1uKXtyPW47YnJlYWt9Zm9yKDsrK2k8YTspbnVsbCE9KG49dFtpXSkmJm4+ciYmKHI9bil9ZWxzZXtmb3IoOysraTxhOylpZihudWxsIT0obj1lLmNhbGwodCx0W2ldLGkpKSYmbj49bil7cj1uO2JyZWFrfWZvcig7KytpPGE7KW51bGwhPShuPWUuY2FsbCh0LHRbaV0saSkpJiZuPnImJihyPW4pfXJldHVybiByfSx0LmV4dGVudD1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhPS0xLG89dC5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpe2Zvcig7KythPG87KWlmKG51bGwhPShuPXRbYV0pJiZuPj1uKXtyPWk9bjticmVha31mb3IoOysrYTxvOyludWxsIT0obj10W2FdKSYmKHI+biYmKHI9biksaTxuJiYoaT1uKSl9ZWxzZXtmb3IoOysrYTxvOylpZihudWxsIT0obj1lLmNhbGwodCx0W2FdLGEpKSYmbj49bil7cj1pPW47YnJlYWt9Zm9yKDsrK2E8bzspbnVsbCE9KG49ZS5jYWxsKHQsdFthXSxhKSkmJihyPm4mJihyPW4pLGk8biYmKGk9bikpfXJldHVybltyLGldfSx0LnN1bT1mdW5jdGlvbih0LGUpe3ZhciByLG49MCxpPXQubGVuZ3RoLGE9LTE7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK2E8aTspZChyPSt0W2FdKSYmKG4rPXIpO2Vsc2UgZm9yKDsrK2E8aTspZChyPStlLmNhbGwodCx0W2FdLGEpKSYmKG4rPXIpO3JldHVybiBufSx0Lm1lYW49ZnVuY3Rpb24odCxlKXt2YXIgcixuPTAsaT10Lmxlbmd0aCxhPS0xLG89aTtpZigxPT09YXJndW1lbnRzLmxlbmd0aClmb3IoOysrYTxpOylkKHI9cCh0W2FdKSk/bis9cjotLW87ZWxzZSBmb3IoOysrYTxpOylkKHI9cChlLmNhbGwodCx0W2FdLGEpKSk/bis9cjotLW87aWYobylyZXR1cm4gbi9vfSx0LnF1YW50aWxlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQubGVuZ3RoLTEpKmUrMSxuPU1hdGguZmxvb3IociksaT0rdFtuLTFdLGE9ci1uO3JldHVybiBhP2krYSoodFtuXS1pKTppfSx0Lm1lZGlhbj1mdW5jdGlvbihlLHIpe3ZhciBuLGk9W10sYT1lLmxlbmd0aCxvPS0xO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKWZvcig7KytvPGE7KWQobj1wKGVbb10pKSYmaS5wdXNoKG4pO2Vsc2UgZm9yKDsrK288YTspZChuPXAoci5jYWxsKGUsZVtvXSxvKSkpJiZpLnB1c2gobik7aWYoaS5sZW5ndGgpcmV0dXJuIHQucXVhbnRpbGUoaS5zb3J0KGgpLC41KX0sdC52YXJpYW5jZT1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10Lmxlbmd0aCxhPTAsbz0wLHM9LTEsbD0wO2lmKDE9PT1hcmd1bWVudHMubGVuZ3RoKWZvcig7KytzPGk7KWQocj1wKHRbc10pKSYmKG8rPShuPXItYSkqKHItKGErPW4vKytsKSkpO2Vsc2UgZm9yKDsrK3M8aTspZChyPXAoZS5jYWxsKHQsdFtzXSxzKSkpJiYobys9KG49ci1hKSooci0oYSs9bi8rK2wpKSk7aWYobD4xKXJldHVybiBvLyhsLTEpfSx0LmRldmlhdGlvbj1mdW5jdGlvbigpe3ZhciBlPXQudmFyaWFuY2UuYXBwbHkodGhpcyxhcmd1bWVudHMpO3JldHVybiBlP01hdGguc3FydChlKTplfTt2YXIgZz1tKGgpO2Z1bmN0aW9uIHYodCl7cmV0dXJuIHQubGVuZ3RofXQuYmlzZWN0TGVmdD1nLmxlZnQsdC5iaXNlY3Q9dC5iaXNlY3RSaWdodD1nLnJpZ2h0LHQuYmlzZWN0b3I9ZnVuY3Rpb24odCl7cmV0dXJuIG0oMT09PXQubGVuZ3RoP2Z1bmN0aW9uKGUscil7cmV0dXJuIGgodChlKSxyKX06dCl9LHQuc2h1ZmZsZT1mdW5jdGlvbih0LGUscil7KGE9YXJndW1lbnRzLmxlbmd0aCk8MyYmKHI9dC5sZW5ndGgsYTwyJiYoZT0wKSk7Zm9yKHZhciBuLGksYT1yLWU7YTspaT1NYXRoLnJhbmRvbSgpKmEtLXwwLG49dFthK2VdLHRbYStlXT10W2krZV0sdFtpK2VdPW47cmV0dXJuIHR9LHQucGVybXV0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmxlbmd0aCxuPW5ldyBBcnJheShyKTtyLS07KW5bcl09dFtlW3JdXTtyZXR1cm4gbn0sdC5wYWlycz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoLTEsbj10WzBdLGk9bmV3IEFycmF5KHI8MD8wOnIpO2U8cjspaVtlXT1bbixuPXRbKytlXV07cmV0dXJuIGl9LHQudHJhbnNwb3NlPWZ1bmN0aW9uKGUpe2lmKCEoYT1lLmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciByPS0xLG49dC5taW4oZSx2KSxpPW5ldyBBcnJheShuKTsrK3I8bjspZm9yKHZhciBhLG89LTEscz1pW3JdPW5ldyBBcnJheShhKTsrK288YTspc1tvXT1lW29dW3JdO3JldHVybiBpfSx0LnppcD1mdW5jdGlvbigpe3JldHVybiB0LnRyYW5zcG9zZShhcmd1bWVudHMpfSx0LmtleXM9ZnVuY3Rpb24odCl7dmFyIGU9W107Zm9yKHZhciByIGluIHQpZS5wdXNoKHIpO3JldHVybiBlfSx0LnZhbHVlcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2godFtyXSk7cmV0dXJuIGV9LHQuZW50cmllcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2goe2tleTpyLHZhbHVlOnRbcl19KTtyZXR1cm4gZX0sdC5tZXJnZT1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGk9dC5sZW5ndGgsYT0tMSxvPTA7KythPGk7KW8rPXRbYV0ubGVuZ3RoO2ZvcihyPW5ldyBBcnJheShvKTstLWk+PTA7KWZvcihlPShuPXRbaV0pLmxlbmd0aDstLWU+PTA7KXJbLS1vXT1uW2VdO3JldHVybiByfTt2YXIgeT1NYXRoLmFicztmdW5jdGlvbiB4KHQpe2Zvcih2YXIgZT0xO3QqZSUxOyllKj0xMDtyZXR1cm4gZX1mdW5jdGlvbiBiKHQsZSl7Zm9yKHZhciByIGluIGUpT2JqZWN0LmRlZmluZVByb3BlcnR5KHQucHJvdG90eXBlLHIse3ZhbHVlOmVbcl0sZW51bWVyYWJsZTohMX0pfWZ1bmN0aW9uIF8oKXt0aGlzLl89T2JqZWN0LmNyZWF0ZShudWxsKX10LnJhbmdlPWZ1bmN0aW9uKHQsZSxyKXtpZihhcmd1bWVudHMubGVuZ3RoPDMmJihyPTEsYXJndW1lbnRzLmxlbmd0aDwyJiYoZT10LHQ9MCkpLChlLXQpL3I9PTEvMCl0aHJvdyBuZXcgRXJyb3IoImluZmluaXRlIHJhbmdlIik7dmFyIG4saT1bXSxhPXgoeShyKSksbz0tMTtpZih0Kj1hLGUqPWEsKHIqPWEpPDApZm9yKDsobj10K3IqKytvKT5lOylpLnB1c2gobi9hKTtlbHNlIGZvcig7KG49dCtyKisrbyk8ZTspaS5wdXNoKG4vYSk7cmV0dXJuIGl9LHQubWFwPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IF87aWYodCBpbnN0YW5jZW9mIF8pdC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3Iuc2V0KHQsZSl9KSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgbixpPS0xLGE9dC5sZW5ndGg7aWYoMT09PWFyZ3VtZW50cy5sZW5ndGgpZm9yKDsrK2k8YTspci5zZXQoaSx0W2ldKTtlbHNlIGZvcig7KytpPGE7KXIuc2V0KGUuY2FsbCh0LG49dFtpXSxpKSxuKX1lbHNlIGZvcih2YXIgbyBpbiB0KXIuc2V0KG8sdFtvXSk7cmV0dXJuIHJ9O2Z1bmN0aW9uIHcodCl7cmV0dXJuIl9fcHJvdG9fXyI9PSh0Kz0iIil8fCJcMCI9PT10WzBdPyJcMCIrdDp0fWZ1bmN0aW9uIFQodCl7cmV0dXJuIlwwIj09PSh0Kz0iIilbMF0/dC5zbGljZSgxKTp0fWZ1bmN0aW9uIGsodCl7cmV0dXJuIHcodClpbiB0aGlzLl99ZnVuY3Rpb24gQSh0KXtyZXR1cm4odD13KHQpKWluIHRoaXMuXyYmZGVsZXRlIHRoaXMuX1t0XX1mdW5jdGlvbiBNKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuXyl0LnB1c2goVChlKSk7cmV0dXJuIHR9ZnVuY3Rpb24gUygpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMuXykrK3Q7cmV0dXJuIHR9ZnVuY3Rpb24gRSgpe2Zvcih2YXIgdCBpbiB0aGlzLl8pcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gTCgpe3RoaXMuXz1PYmplY3QuY3JlYXRlKG51bGwpfWZ1bmN0aW9uIEModCl7cmV0dXJuIHR9ZnVuY3Rpb24gUCh0LGUscil7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG49ci5hcHBseShlLGFyZ3VtZW50cyk7cmV0dXJuIG49PT1lP3Q6bn19ZnVuY3Rpb24gSSh0LGUpe2lmKGUgaW4gdClyZXR1cm4gZTtlPWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkrZS5zbGljZSgxKTtmb3IodmFyIHI9MCxuPU8ubGVuZ3RoO3I8bjsrK3Ipe3ZhciBpPU9bcl0rZTtpZihpIGluIHQpcmV0dXJuIGl9fWIoXyx7aGFzOmssZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9bdyh0KV19LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9bdyh0KV09ZX0scmVtb3ZlOkEsa2V5czpNLHZhbHVlczpmdW5jdGlvbigpe3ZhciB0PVtdO2Zvcih2YXIgZSBpbiB0aGlzLl8pdC5wdXNoKHRoaXMuX1tlXSk7cmV0dXJuIHR9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcy5fKXQucHVzaCh7a2V5OlQoZSksdmFsdWU6dGhpcy5fW2VdfSk7cmV0dXJuIHR9LHNpemU6UyxlbXB0eTpFLGZvckVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuXyl0LmNhbGwodGhpcyxUKGUpLHRoaXMuX1tlXSl9fSksdC5uZXN0PWZ1bmN0aW9uKCl7dmFyIGUscixuPXt9LGk9W10sYT1bXTtmdW5jdGlvbiBvKHQsYSxzKXtpZihzPj1pLmxlbmd0aClyZXR1cm4gcj9yLmNhbGwobixhKTplP2Euc29ydChlKTphO2Zvcih2YXIgbCxjLHUsZixoPS0xLHA9YS5sZW5ndGgsZD1pW3MrK10sbT1uZXcgXzsrK2g8cDspKGY9bS5nZXQobD1kKGM9YVtoXSkpKT9mLnB1c2goYyk6bS5zZXQobCxbY10pO3JldHVybiB0PyhjPXQoKSx1PWZ1bmN0aW9uKGUscil7Yy5zZXQoZSxvKHQscixzKSl9KTooYz17fSx1PWZ1bmN0aW9uKGUscil7Y1tlXT1vKHQscixzKX0pLG0uZm9yRWFjaCh1KSxjfXJldHVybiBuLm1hcD1mdW5jdGlvbih0LGUpe3JldHVybiBvKGUsdCwwKX0sbi5lbnRyaWVzPWZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbiB0KGUscil7aWYocj49aS5sZW5ndGgpcmV0dXJuIGU7dmFyIG49W10sbz1hW3IrK107cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24oZSxpKXtuLnB1c2goe2tleTplLHZhbHVlczp0KGkscil9KX0pKSxvP24uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbyh0LmtleSxlLmtleSl9KSk6bn0obyh0Lm1hcCxlLDApLDApfSxuLmtleT1mdW5jdGlvbih0KXtyZXR1cm4gaS5wdXNoKHQpLG59LG4uc29ydEtleXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFbaS5sZW5ndGgtMV09dCxufSxuLnNvcnRWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGU9dCxufSxuLnJvbGx1cD1mdW5jdGlvbih0KXtyZXR1cm4gcj10LG59LG59LHQuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBMO2lmKHQpZm9yKHZhciByPTAsbj10Lmxlbmd0aDtyPG47KytyKWUuYWRkKHRbcl0pO3JldHVybiBlfSxiKEwse2hhczprLGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fW3codCs9IiIpXT0hMCx0fSxyZW1vdmU6QSx2YWx1ZXM6TSxzaXplOlMsZW1wdHk6RSxmb3JFYWNoOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzLl8pdC5jYWxsKHRoaXMsVChlKSl9fSksdC5iZWhhdmlvcj17fSx0LnJlYmluZD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuPTEsaT1hcmd1bWVudHMubGVuZ3RoOysrbjxpOyl0W3I9YXJndW1lbnRzW25dXT1QKHQsZSxlW3JdKTtyZXR1cm4gdH07dmFyIE89WyJ3ZWJraXQiLCJtcyIsIm1veiIsIk1veiIsIm8iLCJPIl07ZnVuY3Rpb24geigpe31mdW5jdGlvbiBEKCl7fWZ1bmN0aW9uIFIodCl7dmFyIGU9W10scj1uZXcgXztmdW5jdGlvbiBuKCl7Zm9yKHZhciByLG49ZSxpPS0xLGE9bi5sZW5ndGg7KytpPGE7KShyPW5baV0ub24pJiZyLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gdH1yZXR1cm4gbi5vbj1mdW5jdGlvbihuLGkpe3ZhciBhLG89ci5nZXQobik7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj9vJiZvLm9uOihvJiYoby5vbj1udWxsLGU9ZS5zbGljZSgwLGE9ZS5pbmRleE9mKG8pKS5jb25jYXQoZS5zbGljZShhKzEpKSxyLnJlbW92ZShuKSksaSYmZS5wdXNoKHIuc2V0KG4se29uOml9KSksdCl9LG59ZnVuY3Rpb24gRigpe3QuZXZlbnQucHJldmVudERlZmF1bHQoKX1mdW5jdGlvbiBCKCl7Zm9yKHZhciBlLHI9dC5ldmVudDtlPXIuc291cmNlRXZlbnQ7KXI9ZTtyZXR1cm4gcn1mdW5jdGlvbiBOKGUpe2Zvcih2YXIgcj1uZXcgRCxuPTAsaT1hcmd1bWVudHMubGVuZ3RoOysrbjxpOylyW2FyZ3VtZW50c1tuXV09UihyKTtyZXR1cm4gci5vZj1mdW5jdGlvbihuLGkpe3JldHVybiBmdW5jdGlvbihhKXt0cnl7dmFyIG89YS5zb3VyY2VFdmVudD10LmV2ZW50O2EudGFyZ2V0PWUsdC5ldmVudD1hLHJbYS50eXBlXS5hcHBseShuLGkpfWZpbmFsbHl7dC5ldmVudD1vfX19LHJ9dC5kaXNwYXRjaD1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgRCxlPS0xLHI9YXJndW1lbnRzLmxlbmd0aDsrK2U8cjspdFthcmd1bWVudHNbZV1dPVIodCk7cmV0dXJuIHR9LEQucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5pbmRleE9mKCIuIiksbj0iIjtpZihyPj0wJiYobj10LnNsaWNlKHIrMSksdD10LnNsaWNlKDAscikpLHQpcmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj90aGlzW3RdLm9uKG4pOnRoaXNbdF0ub24obixlKTtpZigyPT09YXJndW1lbnRzLmxlbmd0aCl7aWYobnVsbD09ZSlmb3IodCBpbiB0aGlzKXRoaXMuaGFzT3duUHJvcGVydHkodCkmJnRoaXNbdF0ub24obixudWxsKTtyZXR1cm4gdGhpc319LHQuZXZlbnQ9bnVsbCx0LnJlcXVvdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZShqLCJcXCQmIil9O3ZhciBqPS9bXFxcXlwkXCpcK1w/XHxcW1xdXChcKVwuXHtcfV0vZyxVPXt9Ll9fcHJvdG9fXz9mdW5jdGlvbih0LGUpe3QuX19wcm90b19fPWV9OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIGUpdFtyXT1lW3JdfTtmdW5jdGlvbiBWKHQpe3JldHVybiBVKHQsWSksdH12YXIgSD1mdW5jdGlvbih0LGUpe3JldHVybiBlLnF1ZXJ5U2VsZWN0b3IodCl9LHE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5xdWVyeVNlbGVjdG9yQWxsKHQpfSxHPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5tYXRjaGVzfHx0W0kodCwibWF0Y2hlc1NlbGVjdG9yIildO3JldHVybihHPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIuY2FsbCh0LGUpfSkodCxlKX07ImZ1bmN0aW9uIj09dHlwZW9mIFNpenpsZSYmKEg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gU2l6emxlKHQsZSlbMF18fG51bGx9LHE9U2l6emxlLEc9U2l6emxlLm1hdGNoZXNTZWxlY3RvciksdC5zZWxlY3Rpb249ZnVuY3Rpb24oKXtyZXR1cm4gdC5zZWxlY3QoaS5kb2N1bWVudEVsZW1lbnQpfTt2YXIgWT10LnNlbGVjdGlvbi5wcm90b3R5cGU9W107ZnVuY3Rpb24gVyh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZ1bmN0aW9uKCl7cmV0dXJuIEgodCx0aGlzKX19ZnVuY3Rpb24gWCh0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdD90OmZ1bmN0aW9uKCl7cmV0dXJuIHEodCx0aGlzKX19WS5zZWxlY3Q9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYT1bXTt0PVcodCk7Zm9yKHZhciBvPS0xLHM9dGhpcy5sZW5ndGg7KytvPHM7KXthLnB1c2goZT1bXSksZS5wYXJlbnROb2RlPShuPXRoaXNbb10pLnBhcmVudE5vZGU7Zm9yKHZhciBsPS0xLGM9bi5sZW5ndGg7KytsPGM7KShpPW5bbF0pPyhlLnB1c2gocj10LmNhbGwoaSxpLl9fZGF0YV9fLGwsbykpLHImJiJfX2RhdGFfXyJpbiBpJiYoci5fX2RhdGFfXz1pLl9fZGF0YV9fKSk6ZS5wdXNoKG51bGwpfXJldHVybiBWKGEpfSxZLnNlbGVjdEFsbD1mdW5jdGlvbih0KXt2YXIgZSxyLGk9W107dD1YKHQpO2Zvcih2YXIgYT0tMSxvPXRoaXMubGVuZ3RoOysrYTxvOylmb3IodmFyIHM9dGhpc1thXSxsPS0xLGM9cy5sZW5ndGg7KytsPGM7KShyPXNbbF0pJiYoaS5wdXNoKGU9bih0LmNhbGwocixyLl9fZGF0YV9fLGwsYSkpKSxlLnBhcmVudE5vZGU9cik7cmV0dXJuIFYoaSl9O3ZhciBaPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIixKPXtzdmc6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIix4aHRtbDpaLHhsaW5rOiJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIix4bWw6Imh0dHA6Ly93d3cudzMub3JnL1hNTC8xOTk4L25hbWVzcGFjZSIseG1sbnM6Imh0dHA6Ly93d3cudzMub3JnLzIwMDAveG1sbnMvIn07ZnVuY3Rpb24gSyhlLHIpe3JldHVybiBlPXQubnMucXVhbGlmeShlKSxudWxsPT1yP2UubG9jYWw/ZnVuY3Rpb24oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCl9OmZ1bmN0aW9uKCl7dGhpcy5yZW1vdmVBdHRyaWJ1dGUoZSl9OiJmdW5jdGlvbiI9PXR5cGVvZiByP2UubG9jYWw/ZnVuY3Rpb24oKXt2YXIgdD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT10P3RoaXMucmVtb3ZlQXR0cmlidXRlTlMoZS5zcGFjZSxlLmxvY2FsKTp0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCx0KX06ZnVuY3Rpb24oKXt2YXIgdD1yLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT10P3RoaXMucmVtb3ZlQXR0cmlidXRlKGUpOnRoaXMuc2V0QXR0cmlidXRlKGUsdCl9OmUubG9jYWw/ZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZU5TKGUuc3BhY2UsZS5sb2NhbCxyKX06ZnVuY3Rpb24oKXt0aGlzLnNldEF0dHJpYnV0ZShlLHIpfX1mdW5jdGlvbiBRKHQpe3JldHVybiB0LnRyaW0oKS5yZXBsYWNlKC9ccysvZywiICIpfWZ1bmN0aW9uICQoZSl7cmV0dXJuIG5ldyBSZWdFeHAoIig/Ol58XFxzKykiK3QucmVxdW90ZShlKSsiKD86XFxzK3wkKSIsImciKX1mdW5jdGlvbiB0dCh0KXtyZXR1cm4odCsiIikudHJpbSgpLnNwbGl0KC9efFxzKy8pfWZ1bmN0aW9uIGV0KHQsZSl7dmFyIHI9KHQ9dHQodCkubWFwKHJ0KSkubGVuZ3RoO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2Z1bmN0aW9uKCl7Zm9yKHZhciBuPS0xLGk9ZS5hcHBseSh0aGlzLGFyZ3VtZW50cyk7KytuPHI7KXRbbl0odGhpcyxpKX06ZnVuY3Rpb24oKXtmb3IodmFyIG49LTE7KytuPHI7KXRbbl0odGhpcyxlKX19ZnVuY3Rpb24gcnQodCl7dmFyIGU9JCh0KTtyZXR1cm4gZnVuY3Rpb24ocixuKXtpZihpPXIuY2xhc3NMaXN0KXJldHVybiBuP2kuYWRkKHQpOmkucmVtb3ZlKHQpO3ZhciBpPXIuZ2V0QXR0cmlidXRlKCJjbGFzcyIpfHwiIjtuPyhlLmxhc3RJbmRleD0wLGUudGVzdChpKXx8ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixRKGkrIiAiK3QpKSk6ci5zZXRBdHRyaWJ1dGUoImNsYXNzIixRKGkucmVwbGFjZShlLCIgIikpKX19ZnVuY3Rpb24gbnQodCxlLHIpe3JldHVybiBudWxsPT1lP2Z1bmN0aW9uKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX06ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZnVuY3Rpb24oKXt2YXIgbj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1uP3RoaXMuc3R5bGUucmVtb3ZlUHJvcGVydHkodCk6dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LG4scil9OmZ1bmN0aW9uKCl7dGhpcy5zdHlsZS5zZXRQcm9wZXJ0eSh0LGUscil9fWZ1bmN0aW9uIGl0KHQsZSl7cmV0dXJuIG51bGw9PWU/ZnVuY3Rpb24oKXtkZWxldGUgdGhpc1t0XX06ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZnVuY3Rpb24oKXt2YXIgcj1lLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtudWxsPT1yP2RlbGV0ZSB0aGlzW3RdOnRoaXNbdF09cn06ZnVuY3Rpb24oKXt0aGlzW3RdPWV9fWZ1bmN0aW9uIGF0KGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6KGU9dC5ucy5xdWFsaWZ5KGUpKS5sb2NhbD9mdW5jdGlvbigpe3JldHVybiB0aGlzLm93bmVyRG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKGUuc3BhY2UsZS5sb2NhbCl9OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5vd25lckRvY3VtZW50LHI9dGhpcy5uYW1lc3BhY2VVUkk7cmV0dXJuIHI9PT1aJiZ0LmRvY3VtZW50RWxlbWVudC5uYW1lc3BhY2VVUkk9PT1aP3QuY3JlYXRlRWxlbWVudChlKTp0LmNyZWF0ZUVsZW1lbnROUyhyLGUpfX1mdW5jdGlvbiBvdCgpe3ZhciB0PXRoaXMucGFyZW50Tm9kZTt0JiZ0LnJlbW92ZUNoaWxkKHRoaXMpfWZ1bmN0aW9uIHN0KHQpe3JldHVybntfX2RhdGFfXzp0fX1mdW5jdGlvbiBsdCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gRyh0aGlzLHQpfX1mdW5jdGlvbiBjdCh0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aHx8KHQ9aCksZnVuY3Rpb24oZSxyKXtyZXR1cm4gZSYmcj90KGUuX19kYXRhX18sci5fX2RhdGFfXyk6IWUtIXJ9fWZ1bmN0aW9uIHV0KHQsZSl7Zm9yKHZhciByPTAsbj10Lmxlbmd0aDtyPG47cisrKWZvcih2YXIgaSxhPXRbcl0sbz0wLHM9YS5sZW5ndGg7bzxzO28rKykoaT1hW29dKSYmZShpLG8scik7cmV0dXJuIHR9ZnVuY3Rpb24gZnQodCl7cmV0dXJuIFUodCxodCksdH10Lm5zPXtwcmVmaXg6SixxdWFsaWZ5OmZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiOiIpLHI9dDtyZXR1cm4gZT49MCYmInhtbG5zIiE9PShyPXQuc2xpY2UoMCxlKSkmJih0PXQuc2xpY2UoZSsxKSksSi5oYXNPd25Qcm9wZXJ0eShyKT97c3BhY2U6SltyXSxsb2NhbDp0fTp0fX0sWS5hdHRyPWZ1bmN0aW9uKGUscil7aWYoYXJndW1lbnRzLmxlbmd0aDwyKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe3ZhciBuPXRoaXMubm9kZSgpO3JldHVybihlPXQubnMucXVhbGlmeShlKSkubG9jYWw/bi5nZXRBdHRyaWJ1dGVOUyhlLnNwYWNlLGUubG9jYWwpOm4uZ2V0QXR0cmlidXRlKGUpfWZvcihyIGluIGUpdGhpcy5lYWNoKEsocixlW3JdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChLKGUscikpfSxZLmNsYXNzZWQ9ZnVuY3Rpb24odCxlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIHI9dGhpcy5ub2RlKCksbj0odD10dCh0KSkubGVuZ3RoLGk9LTE7aWYoZT1yLmNsYXNzTGlzdCl7Zm9yKDsrK2k8bjspaWYoIWUuY29udGFpbnModFtpXSkpcmV0dXJuITF9ZWxzZSBmb3IoZT1yLmdldEF0dHJpYnV0ZSgiY2xhc3MiKTsrK2k8bjspaWYoISQodFtpXSkudGVzdChlKSlyZXR1cm4hMTtyZXR1cm4hMH1mb3IoZSBpbiB0KXRoaXMuZWFjaChldChlLHRbZV0pKTtyZXR1cm4gdGhpc31yZXR1cm4gdGhpcy5lYWNoKGV0KHQsZSkpfSxZLnN0eWxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoO2lmKG48Myl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXtmb3IociBpbiBuPDImJihlPSIiKSx0KXRoaXMuZWFjaChudChyLHRbcl0sZSkpO3JldHVybiB0aGlzfWlmKG48Mil7dmFyIGk9dGhpcy5ub2RlKCk7cmV0dXJuIG8oaSkuZ2V0Q29tcHV0ZWRTdHlsZShpLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCl9cj0iIn1yZXR1cm4gdGhpcy5lYWNoKG50KHQsZSxyKSl9LFkucHJvcGVydHk9ZnVuY3Rpb24odCxlKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gdGhpcy5ub2RlKClbdF07Zm9yKGUgaW4gdCl0aGlzLmVhY2goaXQoZSx0W2VdKSk7cmV0dXJuIHRoaXN9cmV0dXJuIHRoaXMuZWFjaChpdCh0LGUpKX0sWS50ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMudGV4dENvbnRlbnQ9bnVsbD09ZT8iIjplfTpudWxsPT10P2Z1bmN0aW9uKCl7dGhpcy50ZXh0Q29udGVudD0iIn06ZnVuY3Rpb24oKXt0aGlzLnRleHRDb250ZW50PXR9KTp0aGlzLm5vZGUoKS50ZXh0Q29udGVudH0sWS5odG1sPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuZWFjaCgiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbigpe3ZhciBlPXQuYXBwbHkodGhpcyxhcmd1bWVudHMpO3RoaXMuaW5uZXJIVE1MPW51bGw9PWU/IiI6ZX06bnVsbD09dD9mdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPSIifTpmdW5jdGlvbigpe3RoaXMuaW5uZXJIVE1MPXR9KTp0aGlzLm5vZGUoKS5pbm5lckhUTUx9LFkuYXBwZW5kPWZ1bmN0aW9uKHQpe3JldHVybiB0PWF0KHQpLHRoaXMuc2VsZWN0KChmdW5jdGlvbigpe3JldHVybiB0aGlzLmFwcGVuZENoaWxkKHQuYXBwbHkodGhpcyxhcmd1bWVudHMpKX0pKX0sWS5pbnNlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD1hdCh0KSxlPVcoZSksdGhpcy5zZWxlY3QoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW5zZXJ0QmVmb3JlKHQuYXBwbHkodGhpcyxhcmd1bWVudHMpLGUuYXBwbHkodGhpcyxhcmd1bWVudHMpfHxudWxsKX0pKX0sWS5yZW1vdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lYWNoKG90KX0sWS5kYXRhPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPS0xLGE9dGhpcy5sZW5ndGg7aWYoIWFyZ3VtZW50cy5sZW5ndGgpe2Zvcih0PW5ldyBBcnJheShhPShyPXRoaXNbMF0pLmxlbmd0aCk7KytpPGE7KShuPXJbaV0pJiYodFtpXT1uLl9fZGF0YV9fKTtyZXR1cm4gdH1mdW5jdGlvbiBvKHQscil7dmFyIG4saSxhLG89dC5sZW5ndGgsdT1yLmxlbmd0aCxmPU1hdGgubWluKG8sdSksaD1uZXcgQXJyYXkodSkscD1uZXcgQXJyYXkodSksZD1uZXcgQXJyYXkobyk7aWYoZSl7dmFyIG0sZz1uZXcgXyx2PW5ldyBBcnJheShvKTtmb3Iobj0tMTsrK248bzspKGk9dFtuXSkmJihnLmhhcyhtPWUuY2FsbChpLGkuX19kYXRhX18sbikpP2Rbbl09aTpnLnNldChtLGkpLHZbbl09bSk7Zm9yKG49LTE7KytuPHU7KShpPWcuZ2V0KG09ZS5jYWxsKHIsYT1yW25dLG4pKSk/ITAhPT1pJiYoaFtuXT1pLGkuX19kYXRhX189YSk6cFtuXT1zdChhKSxnLnNldChtLCEwKTtmb3Iobj0tMTsrK248bzspbiBpbiB2JiYhMCE9PWcuZ2V0KHZbbl0pJiYoZFtuXT10W25dKX1lbHNle2ZvcihuPS0xOysrbjxmOylpPXRbbl0sYT1yW25dLGk/KGkuX19kYXRhX189YSxoW25dPWkpOnBbbl09c3QoYSk7Zm9yKDtuPHU7KytuKXBbbl09c3QocltuXSk7Zm9yKDtuPG87KytuKWRbbl09dFtuXX1wLnVwZGF0ZT1oLHAucGFyZW50Tm9kZT1oLnBhcmVudE5vZGU9ZC5wYXJlbnROb2RlPXQucGFyZW50Tm9kZSxzLnB1c2gocCksbC5wdXNoKGgpLGMucHVzaChkKX12YXIgcz1mdChbXSksbD1WKFtdKSxjPVYoW10pO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KWZvcig7KytpPGE7KW8ocj10aGlzW2ldLHQuY2FsbChyLHIucGFyZW50Tm9kZS5fX2RhdGFfXyxpKSk7ZWxzZSBmb3IoOysraTxhOylvKHI9dGhpc1tpXSx0KTtyZXR1cm4gbC5lbnRlcj1mdW5jdGlvbigpe3JldHVybiBzfSxsLmV4aXQ9ZnVuY3Rpb24oKXtyZXR1cm4gY30sbH0sWS5kYXR1bT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD90aGlzLnByb3BlcnR5KCJfX2RhdGFfXyIsdCk6dGhpcy5wcm9wZXJ0eSgiX19kYXRhX18iKX0sWS5maWx0ZXI9ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9W107ImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PWx0KHQpKTtmb3IodmFyIGE9MCxvPXRoaXMubGVuZ3RoO2E8bzthKyspe2kucHVzaChlPVtdKSxlLnBhcmVudE5vZGU9KHI9dGhpc1thXSkucGFyZW50Tm9kZTtmb3IodmFyIHM9MCxsPXIubGVuZ3RoO3M8bDtzKyspKG49cltzXSkmJnQuY2FsbChuLG4uX19kYXRhX18scyxhKSYmZS5wdXNoKG4pfXJldHVybiBWKGkpfSxZLm9yZGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PS0xLGU9dGhpcy5sZW5ndGg7Kyt0PGU7KWZvcih2YXIgcixuPXRoaXNbdF0saT1uLmxlbmd0aC0xLGE9bltpXTstLWk+PTA7KShyPW5baV0pJiYoYSYmYSE9PXIubmV4dFNpYmxpbmcmJmEucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUocixhKSxhPXIpO3JldHVybiB0aGlzfSxZLnNvcnQ9ZnVuY3Rpb24odCl7dD1jdC5hcHBseSh0aGlzLGFyZ3VtZW50cyk7Zm9yKHZhciBlPS0xLHI9dGhpcy5sZW5ndGg7KytlPHI7KXRoaXNbZV0uc29ydCh0KTtyZXR1cm4gdGhpcy5vcmRlcigpfSxZLmVhY2g9ZnVuY3Rpb24odCl7cmV0dXJuIHV0KHRoaXMsKGZ1bmN0aW9uKGUscixuKXt0LmNhbGwoZSxlLl9fZGF0YV9fLHIsbil9KSl9LFkuY2FsbD1mdW5jdGlvbih0KXt2YXIgZT1uKGFyZ3VtZW50cyk7cmV0dXJuIHQuYXBwbHkoZVswXT10aGlzLGUpLHRoaXN9LFkuZW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5ub2RlKCl9LFkubm9kZT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9dGhpcy5sZW5ndGg7dDxlO3QrKylmb3IodmFyIHI9dGhpc1t0XSxuPTAsaT1yLmxlbmd0aDtuPGk7bisrKXt2YXIgYT1yW25dO2lmKGEpcmV0dXJuIGF9cmV0dXJuIG51bGx9LFkuc2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHV0KHRoaXMsKGZ1bmN0aW9uKCl7Kyt0fSkpLHR9O3ZhciBodD1bXTtmdW5jdGlvbiBwdCh0KXt2YXIgZSxyO3JldHVybiBmdW5jdGlvbihuLGksYSl7dmFyIG8scz10W2FdLnVwZGF0ZSxsPXMubGVuZ3RoO2ZvcihhIT1yJiYocj1hLGU9MCksaT49ZSYmKGU9aSsxKTshKG89c1tlXSkmJisrZTxsOyk7cmV0dXJuIG99fWZ1bmN0aW9uIGR0KGUscixpKXt2YXIgYT0iX19vbiIrZSxvPWUuaW5kZXhPZigiLiIpLHM9Z3Q7bz4wJiYoZT1lLnNsaWNlKDAsbykpO3ZhciBsPW10LmdldChlKTtmdW5jdGlvbiBjKCl7dmFyIHQ9dGhpc1thXTt0JiYodGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKGUsdCx0LiQpLGRlbGV0ZSB0aGlzW2FdKX1yZXR1cm4gbCYmKGU9bCxzPXZ0KSxvP3I/ZnVuY3Rpb24oKXt2YXIgdD1zKHIsbihhcmd1bWVudHMpKTtjLmNhbGwodGhpcyksdGhpcy5hZGRFdmVudExpc3RlbmVyKGUsdGhpc1thXT10LHQuJD1pKSx0Ll89cn06YzpyP3o6ZnVuY3Rpb24oKXt2YXIgcixuPW5ldyBSZWdFeHAoIl5fX29uKFteLl0rKSIrdC5yZXF1b3RlKGUpKyIkIik7Zm9yKHZhciBpIGluIHRoaXMpaWYocj1pLm1hdGNoKG4pKXt2YXIgYT10aGlzW2ldO3RoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcihyWzFdLGEsYS4kKSxkZWxldGUgdGhpc1tpXX19fXQuc2VsZWN0aW9uLmVudGVyPWZ0LHQuc2VsZWN0aW9uLmVudGVyLnByb3RvdHlwZT1odCxodC5hcHBlbmQ9WS5hcHBlbmQsaHQuZW1wdHk9WS5lbXB0eSxodC5ub2RlPVkubm9kZSxodC5jYWxsPVkuY2FsbCxodC5zaXplPVkuc2l6ZSxodC5zZWxlY3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixpLGEsbz1bXSxzPS0xLGw9dGhpcy5sZW5ndGg7KytzPGw7KXtuPShpPXRoaXNbc10pLnVwZGF0ZSxvLnB1c2goZT1bXSksZS5wYXJlbnROb2RlPWkucGFyZW50Tm9kZTtmb3IodmFyIGM9LTEsdT1pLmxlbmd0aDsrK2M8dTspKGE9aVtjXSk/KGUucHVzaChuW2NdPXI9dC5jYWxsKGkucGFyZW50Tm9kZSxhLl9fZGF0YV9fLGMscykpLHIuX19kYXRhX189YS5fX2RhdGFfXyk6ZS5wdXNoKG51bGwpfXJldHVybiBWKG8pfSxodC5pbnNlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyJiYoZT1wdCh0aGlzKSksWS5pbnNlcnQuY2FsbCh0aGlzLHQsZSl9LHQuc2VsZWN0PWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8oZT1bSCh0LGkpXSkucGFyZW50Tm9kZT1pLmRvY3VtZW50RWxlbWVudDooZT1bdF0pLnBhcmVudE5vZGU9YSh0KSxWKFtlXSl9LHQuc2VsZWN0QWxsPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiJzdHJpbmciPT10eXBlb2YgdD8oZT1uKHEodCxpKSkpLnBhcmVudE5vZGU9aS5kb2N1bWVudEVsZW1lbnQ6KGU9bih0KSkucGFyZW50Tm9kZT1udWxsLFYoW2VdKX0sWS5vbj1mdW5jdGlvbih0LGUscil7dmFyIG49YXJndW1lbnRzLmxlbmd0aDtpZihuPDMpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl7Zm9yKHIgaW4gbjwyJiYoZT0hMSksdCl0aGlzLmVhY2goZHQocix0W3JdLGUpKTtyZXR1cm4gdGhpc31pZihuPDIpcmV0dXJuKG49dGhpcy5ub2RlKClbIl9fb24iK3RdKSYmbi5fO3I9ITF9cmV0dXJuIHRoaXMuZWFjaChkdCh0LGUscikpfTt2YXIgbXQ9dC5tYXAoe21vdXNlZW50ZXI6Im1vdXNlb3ZlciIsbW91c2VsZWF2ZToibW91c2VvdXQifSk7ZnVuY3Rpb24gZ3QoZSxyKXtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9dC5ldmVudDt0LmV2ZW50PW4sclswXT10aGlzLl9fZGF0YV9fO3RyeXtlLmFwcGx5KHRoaXMscil9ZmluYWxseXt0LmV2ZW50PWl9fX1mdW5jdGlvbiB2dCh0LGUpe3ZhciByPWd0KHQsZSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQucmVsYXRlZFRhcmdldDtlJiYoZT09PXRoaXN8fDgmZS5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbih0aGlzKSl8fHIuY2FsbCh0aGlzLHQpfX1pJiZtdC5mb3JFYWNoKChmdW5jdGlvbih0KXsib24iK3QgaW4gaSYmbXQucmVtb3ZlKHQpfSkpO3ZhciB5dCx4dD0wO2Z1bmN0aW9uIGJ0KGUpe3ZhciByPSIuZHJhZ3N1cHByZXNzLSIrICsreHQsbj0iY2xpY2siK3IsaT10LnNlbGVjdChvKGUpKS5vbigidG91Y2htb3ZlIityLEYpLm9uKCJkcmFnc3RhcnQiK3IsRikub24oInNlbGVjdHN0YXJ0IityLEYpO2lmKG51bGw9PXl0JiYoeXQ9ISgib25zZWxlY3RzdGFydCJpbiBlKSYmSShlLnN0eWxlLCJ1c2VyU2VsZWN0IikpLHl0KXt2YXIgcz1hKGUpLnN0eWxlLGw9c1t5dF07c1t5dF09Im5vbmUifXJldHVybiBmdW5jdGlvbih0KXtpZihpLm9uKHIsbnVsbCkseXQmJihzW3l0XT1sKSx0KXt2YXIgZT1mdW5jdGlvbigpe2kub24obixudWxsKX07aS5vbihuLChmdW5jdGlvbigpe0YoKSxlKCl9KSwhMCksc2V0VGltZW91dChlLDApfX19dC5tb3VzZT1mdW5jdGlvbih0KXtyZXR1cm4gd3QodCxCKCkpfTt2YXIgX3Q9dGhpcy5uYXZpZ2F0b3ImJi9XZWJLaXQvLnRlc3QodGhpcy5uYXZpZ2F0b3IudXNlckFnZW50KT8tMTowO2Z1bmN0aW9uIHd0KGUscil7ci5jaGFuZ2VkVG91Y2hlcyYmKHI9ci5jaGFuZ2VkVG91Y2hlc1swXSk7dmFyIG49ZS5vd25lclNWR0VsZW1lbnR8fGU7aWYobi5jcmVhdGVTVkdQb2ludCl7dmFyIGk9bi5jcmVhdGVTVkdQb2ludCgpO2lmKF90PDApe3ZhciBhPW8oZSk7aWYoYS5zY3JvbGxYfHxhLnNjcm9sbFkpe3ZhciBzPShuPXQuc2VsZWN0KCJib2R5IikuYXBwZW5kKCJzdmciKS5zdHlsZSh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsbWFyZ2luOjAscGFkZGluZzowLGJvcmRlcjoibm9uZSJ9LCJpbXBvcnRhbnQiKSlbMF1bMF0uZ2V0U2NyZWVuQ1RNKCk7X3Q9IShzLmZ8fHMuZSksbi5yZW1vdmUoKX19cmV0dXJuIF90PyhpLng9ci5wYWdlWCxpLnk9ci5wYWdlWSk6KGkueD1yLmNsaWVudFgsaS55PXIuY2xpZW50WSksWyhpPWkubWF0cml4VHJhbnNmb3JtKGUuZ2V0U2NyZWVuQ1RNKCkuaW52ZXJzZSgpKSkueCxpLnldfXZhciBsPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuW3IuY2xpZW50WC1sLmxlZnQtZS5jbGllbnRMZWZ0LHIuY2xpZW50WS1sLnRvcC1lLmNsaWVudFRvcF19ZnVuY3Rpb24gVHQoKXtyZXR1cm4gdC5ldmVudC5jaGFuZ2VkVG91Y2hlc1swXS5pZGVudGlmaWVyfXQudG91Y2g9ZnVuY3Rpb24odCxlLHIpe2lmKGFyZ3VtZW50cy5sZW5ndGg8MyYmKHI9ZSxlPUIoKS5jaGFuZ2VkVG91Y2hlcyksZSlmb3IodmFyIG4saT0wLGE9ZS5sZW5ndGg7aTxhOysraSlpZigobj1lW2ldKS5pZGVudGlmaWVyPT09cilyZXR1cm4gd3QodCxuKX0sdC5iZWhhdmlvci5kcmFnPWZ1bmN0aW9uKCl7dmFyIGU9TihhLCJkcmFnIiwiZHJhZ3N0YXJ0IiwiZHJhZ2VuZCIpLHI9bnVsbCxuPXMoeix0Lm1vdXNlLG8sIm1vdXNlbW92ZSIsIm1vdXNldXAiKSxpPXMoVHQsdC50b3VjaCxDLCJ0b3VjaG1vdmUiLCJ0b3VjaGVuZCIpO2Z1bmN0aW9uIGEoKXt0aGlzLm9uKCJtb3VzZWRvd24uZHJhZyIsbikub24oInRvdWNoc3RhcnQuZHJhZyIsaSl9ZnVuY3Rpb24gcyhuLGksYSxvLHMpe3JldHVybiBmdW5jdGlvbigpe3ZhciBsLGM9dGhpcyx1PXQuZXZlbnQudGFyZ2V0LmNvcnJlc3BvbmRpbmdFbGVtZW50fHx0LmV2ZW50LnRhcmdldCxmPWMucGFyZW50Tm9kZSxoPWUub2YoYyxhcmd1bWVudHMpLHA9MCxkPW4oKSxtPSIuZHJhZyIrKG51bGw9PWQ/IiI6Ii0iK2QpLGc9dC5zZWxlY3QoYSh1KSkub24obyttLHgpLm9uKHMrbSxiKSx2PWJ0KHUpLHk9aShmLGQpO2Z1bmN0aW9uIHgoKXt2YXIgdCxlLHI9aShmLGQpO3ImJih0PXJbMF0teVswXSxlPXJbMV0teVsxXSxwfD10fGUseT1yLGgoe3R5cGU6ImRyYWciLHg6clswXStsWzBdLHk6clsxXStsWzFdLGR4OnQsZHk6ZX0pKX1mdW5jdGlvbiBiKCl7aShmLGQpJiYoZy5vbihvK20sbnVsbCkub24ocyttLG51bGwpLHYocCksaCh7dHlwZToiZHJhZ2VuZCJ9KSl9bD1yP1sobD1yLmFwcGx5KGMsYXJndW1lbnRzKSkueC15WzBdLGwueS15WzFdXTpbMCwwXSxoKHt0eXBlOiJkcmFnc3RhcnQifSl9fXJldHVybiBhLm9yaWdpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LGEpOnJ9LHQucmViaW5kKGEsZSwib24iKX0sdC50b3VjaGVzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MiYmKGU9QigpLnRvdWNoZXMpLGU/bihlKS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciByPXd0KHQsZSk7cmV0dXJuIHIuaWRlbnRpZmllcj1lLmlkZW50aWZpZXIscn0pKTpbXX07dmFyIGt0PTFlLTYsQXQ9TWF0aC5QSSxNdD0yKkF0LFN0PU10LWt0LEV0PUF0LzIsTHQ9QXQvMTgwLEN0PTE4MC9BdDtmdW5jdGlvbiBQdCh0KXtyZXR1cm4gdD4xP0V0OnQ8LTE/LUV0Ok1hdGguYXNpbih0KX1mdW5jdGlvbiBJdCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn12YXIgT3Q9TWF0aC5TUVJUMjt0LmludGVycG9sYXRlWm9vbT1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10WzBdLGE9dFsxXSxvPXRbMl0scz1lWzBdLGw9ZVsxXSxjPWVbMl0sdT1zLWksZj1sLWEsaD11KnUrZipmO2lmKGg8MWUtMTIpbj1NYXRoLmxvZyhjL28pL090LHI9ZnVuY3Rpb24odCl7cmV0dXJuW2krdCp1LGErdCpmLG8qTWF0aC5leHAoT3QqdCpuKV19O2Vsc2V7dmFyIHA9TWF0aC5zcXJ0KGgpLGQ9KGMqYy1vKm8rNCpoKS8oMipvKjIqcCksbT0oYypjLW8qby00KmgpLygyKmMqMipwKSxnPU1hdGgubG9nKE1hdGguc3FydChkKmQrMSktZCksdj1NYXRoLmxvZyhNYXRoLnNxcnQobSptKzEpLW0pO249KHYtZykvT3Qscj1mdW5jdGlvbih0KXt2YXIgZSxyPXQqbixzPUl0KGcpLGw9by8oMipwKSoocyooZT1PdCpyK2csKChlPU1hdGguZXhwKDIqZSkpLTEpLyhlKzEpKS1mdW5jdGlvbih0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpLTEvdCkvMn0oZykpO3JldHVybltpK2wqdSxhK2wqZixvKnMvSXQoT3QqcitnKV19fXJldHVybiByLmR1cmF0aW9uPTFlMypuLHJ9LHQuYmVoYXZpb3Iuem9vbT1mdW5jdGlvbigpe3ZhciBlLHIsbixhLHMsbCxjLHUsZixoPXt4OjAseTowLGs6MX0scD1bOTYwLDUwMF0sZD1SdCxtPTI1MCxnPTAsdj0ibW91c2Vkb3duLnpvb20iLHk9Im1vdXNlbW92ZS56b29tIix4PSJtb3VzZXVwLnpvb20iLGI9InRvdWNoc3RhcnQuem9vbSIsXz1OKHcsInpvb21zdGFydCIsInpvb20iLCJ6b29tZW5kIik7ZnVuY3Rpb24gdyh0KXt0Lm9uKHYsUCkub24oRHQrIi56b29tIixPKS5vbigiZGJsY2xpY2suem9vbSIseikub24oYixJKX1mdW5jdGlvbiBUKHQpe3JldHVyblsodFswXS1oLngpL2guaywodFsxXS1oLnkpL2gua119ZnVuY3Rpb24gayh0KXtoLms9TWF0aC5tYXgoZFswXSxNYXRoLm1pbihkWzFdLHQpKX1mdW5jdGlvbiBBKHQsZSl7ZT1mdW5jdGlvbih0KXtyZXR1cm5bdFswXSpoLmsraC54LHRbMV0qaC5rK2gueV19KGUpLGgueCs9dFswXS1lWzBdLGgueSs9dFsxXS1lWzFdfWZ1bmN0aW9uIE0oZSxuLGksYSl7ZS5fX2NoYXJ0X189e3g6aC54LHk6aC55LGs6aC5rfSxrKE1hdGgucG93KDIsYSkpLEEocj1uLGkpLGU9dC5zZWxlY3QoZSksbT4wJiYoZT1lLnRyYW5zaXRpb24oKS5kdXJhdGlvbihtKSksZS5jYWxsKHcuZXZlbnQpfWZ1bmN0aW9uIFMoKXtjJiZjLmRvbWFpbihsLnJhbmdlKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4odC1oLngpL2gua30pKS5tYXAobC5pbnZlcnQpKSxmJiZmLmRvbWFpbih1LnJhbmdlKCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4odC1oLnkpL2gua30pKS5tYXAodS5pbnZlcnQpKX1mdW5jdGlvbiBFKHQpe2crK3x8dCh7dHlwZToiem9vbXN0YXJ0In0pfWZ1bmN0aW9uIEwodCl7UygpLHQoe3R5cGU6Inpvb20iLHNjYWxlOmguayx0cmFuc2xhdGU6W2gueCxoLnldfSl9ZnVuY3Rpb24gQyh0KXstLWd8fCh0KHt0eXBlOiJ6b29tZW5kIn0pLHI9bnVsbCl9ZnVuY3Rpb24gUCgpe3ZhciBlPXRoaXMscj1fLm9mKGUsYXJndW1lbnRzKSxuPTAsaT10LnNlbGVjdChvKGUpKS5vbih5LGwpLm9uKHgsYyksYT1UKHQubW91c2UoZSkpLHM9YnQoZSk7ZnVuY3Rpb24gbCgpe249MSxBKHQubW91c2UoZSksYSksTChyKX1mdW5jdGlvbiBjKCl7aS5vbih5LG51bGwpLm9uKHgsbnVsbCkscyhuKSxDKHIpfURpLmNhbGwoZSksRShyKX1mdW5jdGlvbiBJKCl7dmFyIGUscj10aGlzLG49Xy5vZihyLGFyZ3VtZW50cyksaT17fSxhPTAsbz0iLnpvb20tIit0LmV2ZW50LmNoYW5nZWRUb3VjaGVzWzBdLmlkZW50aWZpZXIsbD0idG91Y2htb3ZlIitvLGM9InRvdWNoZW5kIitvLHU9W10sZj10LnNlbGVjdChyKSxwPWJ0KHIpO2Z1bmN0aW9uIGQoKXt2YXIgbj10LnRvdWNoZXMocik7cmV0dXJuIGU9aC5rLG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5pZGVudGlmaWVyIGluIGkmJihpW3QuaWRlbnRpZmllcl09VCh0KSl9KSksbn1mdW5jdGlvbiBtKCl7dmFyIGU9dC5ldmVudC50YXJnZXQ7dC5zZWxlY3QoZSkub24obCxnKS5vbihjLHkpLHUucHVzaChlKTtmb3IodmFyIG49dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxvPTAsZj1uLmxlbmd0aDtvPGY7KytvKWlbbltvXS5pZGVudGlmaWVyXT1udWxsO3ZhciBwPWQoKSxtPURhdGUubm93KCk7aWYoMT09PXAubGVuZ3RoKXtpZihtLXM8NTAwKXt2YXIgdj1wWzBdO00ocix2LGlbdi5pZGVudGlmaWVyXSxNYXRoLmZsb29yKE1hdGgubG9nKGguaykvTWF0aC5MTjIpKzEpLEYoKX1zPW19ZWxzZSBpZihwLmxlbmd0aD4xKXt2PXBbMF07dmFyIHg9cFsxXSxiPXZbMF0teFswXSxfPXZbMV0teFsxXTthPWIqYitfKl99fWZ1bmN0aW9uIGcoKXt2YXIgbyxsLGMsdSxmPXQudG91Y2hlcyhyKTtEaS5jYWxsKHIpO2Zvcih2YXIgaD0wLHA9Zi5sZW5ndGg7aDxwOysraCx1PW51bGwpaWYoYz1mW2hdLHU9aVtjLmlkZW50aWZpZXJdKXtpZihsKWJyZWFrO289YyxsPXV9aWYodSl7dmFyIGQ9KGQ9Y1swXS1vWzBdKSpkKyhkPWNbMV0tb1sxXSkqZCxtPWEmJk1hdGguc3FydChkL2EpO289WyhvWzBdK2NbMF0pLzIsKG9bMV0rY1sxXSkvMl0sbD1bKGxbMF0rdVswXSkvMiwobFsxXSt1WzFdKS8yXSxrKG0qZSl9cz1udWxsLEEobyxsKSxMKG4pfWZ1bmN0aW9uIHkoKXtpZih0LmV2ZW50LnRvdWNoZXMubGVuZ3RoKXtmb3IodmFyIGU9dC5ldmVudC5jaGFuZ2VkVG91Y2hlcyxyPTAsYT1lLmxlbmd0aDtyPGE7KytyKWRlbGV0ZSBpW2Vbcl0uaWRlbnRpZmllcl07Zm9yKHZhciBzIGluIGkpcmV0dXJuIHZvaWQgZCgpfXQuc2VsZWN0QWxsKHUpLm9uKG8sbnVsbCksZi5vbih2LFApLm9uKGIsSSkscCgpLEMobil9bSgpLEUobiksZi5vbih2LG51bGwpLm9uKGIsbSl9ZnVuY3Rpb24gTygpe3ZhciBpPV8ub2YodGhpcyxhcmd1bWVudHMpO2E/Y2xlYXJUaW1lb3V0KGEpOihEaS5jYWxsKHRoaXMpLGU9VChyPW58fHQubW91c2UodGhpcykpLEUoaSkpLGE9c2V0VGltZW91dCgoZnVuY3Rpb24oKXthPW51bGwsQyhpKX0pLDUwKSxGKCksayhNYXRoLnBvdygyLC4wMDIqenQoKSkqaC5rKSxBKHIsZSksTChpKX1mdW5jdGlvbiB6KCl7dmFyIGU9dC5tb3VzZSh0aGlzKSxyPU1hdGgubG9nKGguaykvTWF0aC5MTjI7TSh0aGlzLGUsVChlKSx0LmV2ZW50LnNoaWZ0S2V5P01hdGguY2VpbChyKS0xOk1hdGguZmxvb3IocikrMSl9cmV0dXJuIER0fHwoRHQ9Im9ud2hlZWwiaW4gaT8oenQ9ZnVuY3Rpb24oKXtyZXR1cm4tdC5ldmVudC5kZWx0YVkqKHQuZXZlbnQuZGVsdGFNb2RlPzEyMDoxKX0sIndoZWVsIik6Im9ubW91c2V3aGVlbCJpbiBpPyh6dD1mdW5jdGlvbigpe3JldHVybiB0LmV2ZW50LndoZWVsRGVsdGF9LCJtb3VzZXdoZWVsIik6KHp0PWZ1bmN0aW9uKCl7cmV0dXJuLXQuZXZlbnQuZGV0YWlsfSwiTW96TW91c2VQaXhlbFNjcm9sbCIpKSx3LmV2ZW50PWZ1bmN0aW9uKGUpe2UuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT1fLm9mKHRoaXMsYXJndW1lbnRzKSxuPWg7Qmk/dC5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmVhY2goInN0YXJ0Lnpvb20iLChmdW5jdGlvbigpe2g9dGhpcy5fX2NoYXJ0X198fHt4OjAseTowLGs6MX0sRShlKX0pKS50d2Vlbigiem9vbTp6b29tIiwoZnVuY3Rpb24oKXt2YXIgaT1wWzBdLGE9cFsxXSxvPXI/clswXTppLzIscz1yP3JbMV06YS8yLGw9dC5pbnRlcnBvbGF0ZVpvb20oWyhvLWgueCkvaC5rLChzLWgueSkvaC5rLGkvaC5rXSxbKG8tbi54KS9uLmssKHMtbi55KS9uLmssaS9uLmtdKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9bCh0KSxuPWkvclsyXTt0aGlzLl9fY2hhcnRfXz1oPXt4Om8tclswXSpuLHk6cy1yWzFdKm4sazpufSxMKGUpfX0pKS5lYWNoKCJpbnRlcnJ1cHQuem9vbSIsKGZ1bmN0aW9uKCl7QyhlKX0pKS5lYWNoKCJlbmQuem9vbSIsKGZ1bmN0aW9uKCl7QyhlKX0pKToodGhpcy5fX2NoYXJ0X189aCxFKGUpLEwoZSksQyhlKSl9KSl9LHcudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPXt4Oit0WzBdLHk6K3RbMV0sazpoLmt9LFMoKSx3KTpbaC54LGgueV19LHcuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9e3g6aC54LHk6aC55LGs6bnVsbH0saygrdCksUygpLHcpOmgua30sdy5zY2FsZUV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD1udWxsPT10P1J0OlsrdFswXSwrdFsxXV0sdyk6ZH0sdy5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCYmWyt0WzBdLCt0WzFdXSx3KTpufSx3LnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9dCYmWyt0WzBdLCt0WzFdXSx3KTpwfSx3LmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhtPSt0LHcpOm19LHcueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10LGw9dC5jb3B5KCksaD17eDowLHk6MCxrOjF9LHcpOmN9LHcueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj10LHU9dC5jb3B5KCksaD17eDowLHk6MCxrOjF9LHcpOmZ9LHQucmViaW5kKHcsXywib24iKX07dmFyIHp0LER0LFJ0PVswLDEvMF07ZnVuY3Rpb24gRnQoKXt9ZnVuY3Rpb24gQnQodCxlLHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgQnQ/KHRoaXMuaD0rdCx0aGlzLnM9K2Usdm9pZCh0aGlzLmw9K3IpKTphcmd1bWVudHMubGVuZ3RoPDI/dCBpbnN0YW5jZW9mIEJ0P25ldyBCdCh0LmgsdC5zLHQubCk6bmUoIiIrdCxpZSxCdCk6bmV3IEJ0KHQsZSxyKX10LmNvbG9yPUZ0LEZ0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpKyIifSx0LmhzbD1CdDt2YXIgTnQ9QnQucHJvdG90eXBlPW5ldyBGdDtmdW5jdGlvbiBqdCh0LGUscil7dmFyIG4saTtmdW5jdGlvbiBhKHQpe3JldHVybiBNYXRoLnJvdW5kKDI1NSpmdW5jdGlvbih0KXtyZXR1cm4gdD4zNjA/dC09MzYwOnQ8MCYmKHQrPTM2MCksdDw2MD9uKyhpLW4pKnQvNjA6dDwxODA/aTp0PDI0MD9uKyhpLW4pKigyNDAtdCkvNjA6bn0odCkpfXJldHVybiB0PWlzTmFOKHQpPzA6KHQlPTM2MCk8MD90KzM2MDp0LGU9aXNOYU4oZSl8fGU8MD8wOmU+MT8xOmUsbj0yKihyPXI8MD8wOnI+MT8xOnIpLShpPXI8PS41P3IqKDErZSk6citlLXIqZSksbmV3IFF0KGEodCsxMjApLGEodCksYSh0LTEyMCkpfWZ1bmN0aW9uIFV0KGUscixuKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIFV0Pyh0aGlzLmg9K2UsdGhpcy5jPStyLHZvaWQodGhpcy5sPStuKSk6YXJndW1lbnRzLmxlbmd0aDwyP2UgaW5zdGFuY2VvZiBVdD9uZXcgVXQoZS5oLGUuYyxlLmwpOlh0KGUgaW5zdGFuY2VvZiBxdD9lLmw6KGU9YWUoKGU9dC5yZ2IoZSkpLnIsZS5nLGUuYikpLmwsZS5hLGUuYik6bmV3IFV0KGUscixuKX1OdC5icmlnaHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP3Q6MSksbmV3IEJ0KHRoaXMuaCx0aGlzLnMsdGhpcy5sL3QpfSxOdC5kYXJrZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD90OjEpLG5ldyBCdCh0aGlzLmgsdGhpcy5zLHQqdGhpcy5sKX0sTnQucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIGp0KHRoaXMuaCx0aGlzLnMsdGhpcy5sKX0sdC5oY2w9VXQ7dmFyIFZ0PVV0LnByb3RvdHlwZT1uZXcgRnQ7ZnVuY3Rpb24gSHQodCxlLHIpe3JldHVybiBpc05hTih0KSYmKHQ9MCksaXNOYU4oZSkmJihlPTApLG5ldyBxdChyLE1hdGguY29zKHQqPUx0KSplLE1hdGguc2luKHQpKmUpfWZ1bmN0aW9uIHF0KHQsZSxyKXtyZXR1cm4gdGhpcyBpbnN0YW5jZW9mIHF0Pyh0aGlzLmw9K3QsdGhpcy5hPStlLHZvaWQodGhpcy5iPStyKSk6YXJndW1lbnRzLmxlbmd0aDwyP3QgaW5zdGFuY2VvZiBxdD9uZXcgcXQodC5sLHQuYSx0LmIpOnQgaW5zdGFuY2VvZiBVdD9IdCh0LmgsdC5jLHQubCk6YWUoKHQ9UXQodCkpLnIsdC5nLHQuYik6bmV3IHF0KHQsZSxyKX1WdC5icmlnaHRlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFV0KHRoaXMuaCx0aGlzLmMsTWF0aC5taW4oMTAwLHRoaXMubCtHdCooYXJndW1lbnRzLmxlbmd0aD90OjEpKSl9LFZ0LmRhcmtlcj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFV0KHRoaXMuaCx0aGlzLmMsTWF0aC5tYXgoMCx0aGlzLmwtR3QqKGFyZ3VtZW50cy5sZW5ndGg/dDoxKSkpfSxWdC5yZ2I9ZnVuY3Rpb24oKXtyZXR1cm4gSHQodGhpcy5oLHRoaXMuYyx0aGlzLmwpLnJnYigpfSx0LmxhYj1xdDt2YXIgR3Q9MTgsWXQ9cXQucHJvdG90eXBlPW5ldyBGdDtmdW5jdGlvbiBXdCh0LGUscil7dmFyIG49KHQrMTYpLzExNixpPW4rZS81MDAsYT1uLXIvMjAwO3JldHVybiBuZXcgUXQoS3QoMy4yNDA0NTQyKihpPS45NTA0NypadChpKSktMS41MzcxMzg1KihuPTEqWnQobikpLS40OTg1MzE0KihhPTEuMDg4ODMqWnQoYSkpKSxLdCgtLjk2OTI2NippKzEuODc2MDEwOCpuKy4wNDE1NTYqYSksS3QoLjA1NTY0MzQqaS0uMjA0MDI1OSpuKzEuMDU3MjI1MiphKSl9ZnVuY3Rpb24gWHQodCxlLHIpe3JldHVybiB0PjA/bmV3IFV0KE1hdGguYXRhbjIocixlKSpDdCxNYXRoLnNxcnQoZSplK3IqciksdCk6bmV3IFV0KE5hTixOYU4sdCl9ZnVuY3Rpb24gWnQodCl7cmV0dXJuIHQ+LjIwNjg5MzAzND90KnQqdDoodC00LzI5KS83Ljc4NzAzN31mdW5jdGlvbiBKdCh0KXtyZXR1cm4gdD4uMDA4ODU2P01hdGgucG93KHQsMS8zKTo3Ljc4NzAzNyp0KzQvMjl9ZnVuY3Rpb24gS3QodCl7cmV0dXJuIE1hdGgucm91bmQoMjU1Kih0PD0uMDAzMDQ/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KSl9ZnVuY3Rpb24gUXQodCxlLHIpe3JldHVybiB0aGlzIGluc3RhbmNlb2YgUXQ/KHRoaXMucj1+fnQsdGhpcy5nPX5+ZSx2b2lkKHRoaXMuYj1+fnIpKTphcmd1bWVudHMubGVuZ3RoPDI/dCBpbnN0YW5jZW9mIFF0P25ldyBRdCh0LnIsdC5nLHQuYik6bmUoIiIrdCxRdCxqdCk6bmV3IFF0KHQsZSxyKX1mdW5jdGlvbiAkdCh0KXtyZXR1cm4gbmV3IFF0KHQ+PjE2LHQ+PjgmMjU1LDI1NSZ0KX1mdW5jdGlvbiB0ZSh0KXtyZXR1cm4gJHQodCkrIiJ9WXQuYnJpZ2h0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxdChNYXRoLm1pbigxMDAsdGhpcy5sK0d0Kihhcmd1bWVudHMubGVuZ3RoP3Q6MSkpLHRoaXMuYSx0aGlzLmIpfSxZdC5kYXJrZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxdChNYXRoLm1heCgwLHRoaXMubC1HdCooYXJndW1lbnRzLmxlbmd0aD90OjEpKSx0aGlzLmEsdGhpcy5iKX0sWXQucmdiPWZ1bmN0aW9uKCl7cmV0dXJuIFd0KHRoaXMubCx0aGlzLmEsdGhpcy5iKX0sdC5yZ2I9UXQ7dmFyIGVlPVF0LnByb3RvdHlwZT1uZXcgRnQ7ZnVuY3Rpb24gcmUodCl7cmV0dXJuIHQ8MTY/IjAiK01hdGgubWF4KDAsdCkudG9TdHJpbmcoMTYpOk1hdGgubWluKDI1NSx0KS50b1N0cmluZygxNil9ZnVuY3Rpb24gbmUodCxlLHIpe3ZhciBuLGksYSxvPTAscz0wLGw9MDtpZihuPS8oW2Etel0rKVwoKC4qKVwpLy5leGVjKHQ9dC50b0xvd2VyQ2FzZSgpKSlzd2l0Y2goaT1uWzJdLnNwbGl0KCIsIiksblsxXSl7Y2FzZSJoc2wiOnJldHVybiByKHBhcnNlRmxvYXQoaVswXSkscGFyc2VGbG9hdChpWzFdKS8xMDAscGFyc2VGbG9hdChpWzJdKS8xMDApO2Nhc2UicmdiIjpyZXR1cm4gZShzZShpWzBdKSxzZShpWzFdKSxzZShpWzJdKSl9cmV0dXJuKGE9bGUuZ2V0KHQpKT9lKGEucixhLmcsYS5iKToobnVsbD09dHx8IiMiIT09dC5jaGFyQXQoMCl8fGlzTmFOKGE9cGFyc2VJbnQodC5zbGljZSgxKSwxNikpfHwoND09PXQubGVuZ3RoPyhvPSgzODQwJmEpPj40LG98PW8+PjQscz0yNDAmYSxzfD1zPj40LGw9MTUmYSxsfD1sPDw0KTo3PT09dC5sZW5ndGgmJihvPSgxNjcxMTY4MCZhKT4+MTYscz0oNjUyODAmYSk+PjgsbD0yNTUmYSkpLGUobyxzLGwpKX1mdW5jdGlvbiBpZSh0LGUscil7dmFyIG4saSxhPU1hdGgubWluKHQvPTI1NSxlLz0yNTUsci89MjU1KSxvPU1hdGgubWF4KHQsZSxyKSxzPW8tYSxsPShvK2EpLzI7cmV0dXJuIHM/KGk9bDwuNT9zLyhvK2EpOnMvKDItby1hKSxuPXQ9PW8/KGUtcikvcysoZTxyPzY6MCk6ZT09bz8oci10KS9zKzI6KHQtZSkvcys0LG4qPTYwKToobj1OYU4saT1sPjAmJmw8MT8wOm4pLG5ldyBCdChuLGksbCl9ZnVuY3Rpb24gYWUodCxlLHIpe3ZhciBuPUp0KCguNDEyNDU2NCoodD1vZSh0KSkrLjM1NzU3NjEqKGU9b2UoZSkpKy4xODA0Mzc1KihyPW9lKHIpKSkvLjk1MDQ3KSxpPUp0KCguMjEyNjcyOSp0Ky43MTUxNTIyKmUrLjA3MjE3NSpyKS8xKTtyZXR1cm4gcXQoMTE2KmktMTYsNTAwKihuLWkpLDIwMCooaS1KdCgoLjAxOTMzMzkqdCsuMTE5MTkyKmUrLjk1MDMwNDEqcikvMS4wODg4MykpKX1mdW5jdGlvbiBvZSh0KXtyZXR1cm4odC89MjU1KTw9LjA0MDQ1P3QvMTIuOTI6TWF0aC5wb3coKHQrLjA1NSkvMS4wNTUsMi40KX1mdW5jdGlvbiBzZSh0KXt2YXIgZT1wYXJzZUZsb2F0KHQpO3JldHVybiIlIj09PXQuY2hhckF0KHQubGVuZ3RoLTEpP01hdGgucm91bmQoMi41NSplKTplfWVlLmJyaWdodGVyPWZ1bmN0aW9uKHQpe3Q9TWF0aC5wb3coLjcsYXJndW1lbnRzLmxlbmd0aD90OjEpO3ZhciBlPXRoaXMucixyPXRoaXMuZyxuPXRoaXMuYixpPTMwO3JldHVybiBlfHxyfHxuPyhlJiZlPGkmJihlPWkpLHImJnI8aSYmKHI9aSksbiYmbjxpJiYobj1pKSxuZXcgUXQoTWF0aC5taW4oMjU1LGUvdCksTWF0aC5taW4oMjU1LHIvdCksTWF0aC5taW4oMjU1LG4vdCkpKTpuZXcgUXQoaSxpLGkpfSxlZS5kYXJrZXI9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBRdCgodD1NYXRoLnBvdyguNyxhcmd1bWVudHMubGVuZ3RoP3Q6MSkpKnRoaXMucix0KnRoaXMuZyx0KnRoaXMuYil9LGVlLmhzbD1mdW5jdGlvbigpe3JldHVybiBpZSh0aGlzLnIsdGhpcy5nLHRoaXMuYil9LGVlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIiMiK3JlKHRoaXMucikrcmUodGhpcy5nKStyZSh0aGlzLmIpfTt2YXIgbGU9dC5tYXAoe2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH0pO2Z1bmN0aW9uIGNlKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6ZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gdWUodCl7cmV0dXJuIGZ1bmN0aW9uKGUscixuKXtyZXR1cm4gMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiByJiYobj1yLHI9bnVsbCksZmUoZSxyLHQsbil9fWZ1bmN0aW9uIGZlKGUscixpLGEpe3ZhciBvPXt9LHM9dC5kaXNwYXRjaCgiYmVmb3Jlc2VuZCIsInByb2dyZXNzIiwibG9hZCIsImVycm9yIiksbD17fSxjPW5ldyBYTUxIdHRwUmVxdWVzdCx1PW51bGw7ZnVuY3Rpb24gZigpe3ZhciB0LGU9Yy5zdGF0dXM7aWYoIWUmJmZ1bmN0aW9uKHQpe3ZhciBlPXQucmVzcG9uc2VUeXBlO3JldHVybiBlJiYidGV4dCIhPT1lP3QucmVzcG9uc2U6dC5yZXNwb25zZVRleHR9KGMpfHxlPj0yMDAmJmU8MzAwfHwzMDQ9PT1lKXt0cnl7dD1pLmNhbGwobyxjKX1jYXRjaCh0KXtyZXR1cm4gdm9pZCBzLmVycm9yLmNhbGwobyx0KX1zLmxvYWQuY2FsbChvLHQpfWVsc2Ugcy5lcnJvci5jYWxsKG8sYyl9cmV0dXJuIHNlbGYuWERvbWFpblJlcXVlc3QmJiEoIndpdGhDcmVkZW50aWFscyJpbiBjKSYmL14oaHR0cChzKT86KT9cL1wvLy50ZXN0KGUpJiYoYz1uZXcgWERvbWFpblJlcXVlc3QpLCJvbmxvYWQiaW4gYz9jLm9ubG9hZD1jLm9uZXJyb3I9ZjpjLm9ucmVhZHlzdGF0ZWNoYW5nZT1mdW5jdGlvbigpe2MucmVhZHlTdGF0ZT4zJiZmKCl9LGMub25wcm9ncmVzcz1mdW5jdGlvbihlKXt2YXIgcj10LmV2ZW50O3QuZXZlbnQ9ZTt0cnl7cy5wcm9ncmVzcy5jYWxsKG8sYyl9ZmluYWxseXt0LmV2ZW50PXJ9fSxvLmhlYWRlcj1mdW5jdGlvbih0LGUpe3JldHVybiB0PSh0KyIiKS50b0xvd2VyQ2FzZSgpLGFyZ3VtZW50cy5sZW5ndGg8Mj9sW3RdOihudWxsPT1lP2RlbGV0ZSBsW3RdOmxbdF09ZSsiIixvKX0sby5taW1lVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj1udWxsPT10P251bGw6dCsiIixvKTpyfSxvLnJlc3BvbnNlVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odT10LG8pOnV9LG8ucmVzcG9uc2U9ZnVuY3Rpb24odCl7cmV0dXJuIGk9dCxvfSxbImdldCIsInBvc3QiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtvW3RdPWZ1bmN0aW9uKCl7cmV0dXJuIG8uc2VuZC5hcHBseShvLFt0XS5jb25jYXQobihhcmd1bWVudHMpKSl9fSkpLG8uc2VuZD1mdW5jdGlvbih0LG4saSl7aWYoMj09PWFyZ3VtZW50cy5sZW5ndGgmJiJmdW5jdGlvbiI9PXR5cGVvZiBuJiYoaT1uLG49bnVsbCksYy5vcGVuKHQsZSwhMCksbnVsbD09cnx8ImFjY2VwdCJpbiBsfHwobC5hY2NlcHQ9cisiLCovKiIpLGMuc2V0UmVxdWVzdEhlYWRlcilmb3IodmFyIGEgaW4gbCljLnNldFJlcXVlc3RIZWFkZXIoYSxsW2FdKTtyZXR1cm4gbnVsbCE9ciYmYy5vdmVycmlkZU1pbWVUeXBlJiZjLm92ZXJyaWRlTWltZVR5cGUociksbnVsbCE9dSYmKGMucmVzcG9uc2VUeXBlPXUpLG51bGwhPWkmJm8ub24oImVycm9yIixpKS5vbigibG9hZCIsKGZ1bmN0aW9uKHQpe2kobnVsbCx0KX0pKSxzLmJlZm9yZXNlbmQuY2FsbChvLGMpLGMuc2VuZChudWxsPT1uP251bGw6biksb30sby5hYm9ydD1mdW5jdGlvbigpe3JldHVybiBjLmFib3J0KCksb30sdC5yZWJpbmQobyxzLCJvbiIpLG51bGw9PWE/bzpvLmdldChmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoP2Z1bmN0aW9uKGUscil7dChudWxsPT1lP3I6bnVsbCl9OnR9KGEpKX1sZS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2xlLnNldCh0LCR0KGUpKX0pKSx0LmZ1bmN0b3I9Y2UsdC54aHI9dWUoQyksdC5kc3Y9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgUmVnRXhwKCdbIicrdCsiXG5dIiksbj10LmNoYXJDb2RlQXQoMCk7ZnVuY3Rpb24gaSh0LHIsbil7YXJndW1lbnRzLmxlbmd0aDwzJiYobj1yLHI9bnVsbCk7dmFyIGk9ZmUodCxlLG51bGw9PXI/YTpvKHIpLG4pO3JldHVybiBpLnJvdz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9pLnJlc3BvbnNlKG51bGw9PShyPXQpP2E6byh0KSk6cn0saX1mdW5jdGlvbiBhKHQpe3JldHVybiBpLnBhcnNlKHQucmVzcG9uc2VUZXh0KX1mdW5jdGlvbiBvKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gaS5wYXJzZShlLnJlc3BvbnNlVGV4dCx0KX19ZnVuY3Rpb24gcyhlKXtyZXR1cm4gZS5tYXAobCkuam9pbih0KX1mdW5jdGlvbiBsKHQpe3JldHVybiByLnRlc3QodCk/JyInK3QucmVwbGFjZSgvXCIvZywnIiInKSsnIic6dH1yZXR1cm4gaS5wYXJzZT1mdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiBpLnBhcnNlUm93cyh0LChmdW5jdGlvbih0LG4pe2lmKHIpcmV0dXJuIHIodCxuLTEpO3ZhciBpPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcj17fSxuPXQubGVuZ3RoLGk9MDtpPG47KytpKXJbdFtpXV09ZVtpXTtyZXR1cm4gcn07cj1lP2Z1bmN0aW9uKHQscil7cmV0dXJuIGUoaSh0KSxyKX06aX0pKX0saS5wYXJzZVJvd3M9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGE9e30sbz17fSxzPVtdLGw9dC5sZW5ndGgsYz0wLHU9MDtmdW5jdGlvbiBmKCl7aWYoYz49bClyZXR1cm4gbztpZihpKXJldHVybiBpPSExLGE7dmFyIGU9YztpZigzND09PXQuY2hhckNvZGVBdChlKSl7Zm9yKHZhciByPWU7cisrPGw7KWlmKDM0PT09dC5jaGFyQ29kZUF0KHIpKXtpZigzNCE9PXQuY2hhckNvZGVBdChyKzEpKWJyZWFrOysrcn1yZXR1cm4gYz1yKzIsMTM9PT0ocz10LmNoYXJDb2RlQXQocisxKSk/KGk9ITAsMTA9PT10LmNoYXJDb2RlQXQocisyKSYmKytjKToxMD09PXMmJihpPSEwKSx0LnNsaWNlKGUrMSxyKS5yZXBsYWNlKC8iIi9nLCciJyl9Zm9yKDtjPGw7KXt2YXIgcyx1PTE7aWYoMTA9PT0ocz10LmNoYXJDb2RlQXQoYysrKSkpaT0hMDtlbHNlIGlmKDEzPT09cylpPSEwLDEwPT09dC5jaGFyQ29kZUF0KGMpJiYoKytjLCsrdSk7ZWxzZSBpZihzIT09biljb250aW51ZTtyZXR1cm4gdC5zbGljZShlLGMtdSl9cmV0dXJuIHQuc2xpY2UoZSl9Zm9yKDsocj1mKCkpIT09bzspe2Zvcih2YXIgaD1bXTtyIT09YSYmciE9PW87KWgucHVzaChyKSxyPWYoKTtlJiZudWxsPT0oaD1lKGgsdSsrKSl8fHMucHVzaChoKX1yZXR1cm4gc30saS5mb3JtYXQ9ZnVuY3Rpb24oZSl7aWYoQXJyYXkuaXNBcnJheShlWzBdKSlyZXR1cm4gaS5mb3JtYXRSb3dzKGUpO3ZhciByPW5ldyBMLG49W107cmV0dXJuIGUuZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpci5oYXMoZSl8fG4ucHVzaChyLmFkZChlKSl9KSksW24ubWFwKGwpLmpvaW4odCldLmNvbmNhdChlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbChlW3RdKX0pKS5qb2luKHQpfSkpKS5qb2luKCJcbiIpfSxpLmZvcm1hdFJvd3M9ZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKHMpLmpvaW4oIlxuIil9LGl9LHQuY3N2PXQuZHN2KCIsIiwidGV4dC9jc3YiKSx0LnRzdj10LmRzdigiXHQiLCJ0ZXh0L3RhYi1zZXBhcmF0ZWQtdmFsdWVzIik7dmFyIGhlLHBlLGRlLG1lLGdlPXRoaXNbSSh0aGlzLCJyZXF1ZXN0QW5pbWF0aW9uRnJhbWUiKV18fGZ1bmN0aW9uKHQpe3NldFRpbWVvdXQodCwxNyl9O2Z1bmN0aW9uIHZlKHQsZSxyKXt2YXIgbj1hcmd1bWVudHMubGVuZ3RoO248MiYmKGU9MCksbjwzJiYocj1EYXRlLm5vdygpKTt2YXIgaT1yK2UsYT17Yzp0LHQ6aSxuOm51bGx9O3JldHVybiBwZT9wZS5uPWE6aGU9YSxwZT1hLGRlfHwobWU9Y2xlYXJUaW1lb3V0KG1lKSxkZT0xLGdlKHllKSksYX1mdW5jdGlvbiB5ZSgpe3ZhciB0PXhlKCksZT1iZSgpLXQ7ZT4yND8oaXNGaW5pdGUoZSkmJihjbGVhclRpbWVvdXQobWUpLG1lPXNldFRpbWVvdXQoeWUsZSkpLGRlPTApOihkZT0xLGdlKHllKSl9ZnVuY3Rpb24geGUoKXtmb3IodmFyIHQ9RGF0ZS5ub3coKSxlPWhlO2U7KXQ+PWUudCYmZS5jKHQtZS50KSYmKGUuYz1udWxsKSxlPWUubjtyZXR1cm4gdH1mdW5jdGlvbiBiZSgpe2Zvcih2YXIgdCxlPWhlLHI9MS8wO2U7KWUuYz8oZS50PHImJihyPWUudCksZT0odD1lKS5uKTplPXQ/dC5uPWUubjpoZT1lLm47cmV0dXJuIHBlPXQscn1mdW5jdGlvbiBfZSh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiB3ZSh0KXtyZXR1cm4gdFsxXX1mdW5jdGlvbiBUZSh0KXtmb3IodmFyIGUscixuLGk9dC5sZW5ndGgsYT1bMCwxXSxvPTIscz0yO3M8aTtzKyspe2Zvcig7bz4xJiYoZT10W2Fbby0yXV0scj10W2Fbby0xXV0sbj10W3NdLChyWzBdLWVbMF0pKihuWzFdLWVbMV0pLShyWzFdLWVbMV0pKihuWzBdLWVbMF0pPD0wKTspLS1vO2FbbysrXT1zfXJldHVybiBhLnNsaWNlKDAsbyl9ZnVuY3Rpb24ga2UodCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV19dC50aW1lcj1mdW5jdGlvbigpe3ZlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX0sdC50aW1lci5mbHVzaD1mdW5jdGlvbigpe3hlKCksYmUoKX0sdC5yb3VuZD1mdW5jdGlvbih0LGUpe3JldHVybiBlP01hdGgucm91bmQodCooZT1NYXRoLnBvdygxMCxlKSkpL2U6TWF0aC5yb3VuZCh0KX0sdC5nZW9tPXt9LHQuZ2VvbS5odWxsPWZ1bmN0aW9uKHQpe3ZhciBlPV9lLHI9d2U7aWYoYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbih0KTtmdW5jdGlvbiBuKHQpe2lmKHQubGVuZ3RoPDMpcmV0dXJuW107dmFyIG4saT1jZShlKSxhPWNlKHIpLG89dC5sZW5ndGgscz1bXSxsPVtdO2ZvcihuPTA7bjxvO24rKylzLnB1c2goWytpLmNhbGwodGhpcyx0W25dLG4pLCthLmNhbGwodGhpcyx0W25dLG4pLG5dKTtmb3Iocy5zb3J0KGtlKSxuPTA7bjxvO24rKylsLnB1c2goW3Nbbl1bMF0sLXNbbl1bMV1dKTt2YXIgYz1UZShzKSx1PVRlKGwpLGY9dVswXT09PWNbMF0saD11W3UubGVuZ3RoLTFdPT09Y1tjLmxlbmd0aC0xXSxwPVtdO2ZvcihuPWMubGVuZ3RoLTE7bj49MDstLW4pcC5wdXNoKHRbc1tjW25dXVsyXV0pO2ZvcihuPStmO248dS5sZW5ndGgtaDsrK24pcC5wdXNoKHRbc1t1W25dXVsyXV0pO3JldHVybiBwfXJldHVybiBuLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxuKTplfSxuLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxuKTpyfSxufSx0Lmdlb20ucG9seWdvbj1mdW5jdGlvbih0KXtyZXR1cm4gVSh0LEFlKSx0fTt2YXIgQWU9dC5nZW9tLnBvbHlnb24ucHJvdG90eXBlPVtdO2Z1bmN0aW9uIE1lKHQsZSxyKXtyZXR1cm4oclswXS1lWzBdKSoodFsxXS1lWzFdKTwoclsxXS1lWzFdKSoodFswXS1lWzBdKX1mdW5jdGlvbiBTZSh0LGUscixuKXt2YXIgaT10WzBdLGE9clswXSxvPWVbMF0taSxzPW5bMF0tYSxsPXRbMV0sYz1yWzFdLHU9ZVsxXS1sLGY9blsxXS1jLGg9KHMqKGwtYyktZiooaS1hKSkvKGYqby1zKnUpO3JldHVybltpK2gqbyxsK2gqdV19ZnVuY3Rpb24gRWUodCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07cmV0dXJuIShlWzBdLXJbMF18fGVbMV0tclsxXSl9QWUuYXJlYT1mdW5jdGlvbigpe2Zvcih2YXIgdCxlPS0xLHI9dGhpcy5sZW5ndGgsbj10aGlzW3ItMV0saT0wOysrZTxyOyl0PW4sbj10aGlzW2VdLGkrPXRbMV0qblswXS10WzBdKm5bMV07cmV0dXJuLjUqaX0sQWUuY2VudHJvaWQ9ZnVuY3Rpb24odCl7dmFyIGUscixuPS0xLGk9dGhpcy5sZW5ndGgsYT0wLG89MCxzPXRoaXNbaS0xXTtmb3IoYXJndW1lbnRzLmxlbmd0aHx8KHQ9LTEvKDYqdGhpcy5hcmVhKCkpKTsrK248aTspZT1zLHM9dGhpc1tuXSxyPWVbMF0qc1sxXS1zWzBdKmVbMV0sYSs9KGVbMF0rc1swXSkqcixvKz0oZVsxXStzWzFdKSpyO3JldHVyblthKnQsbyp0XX0sQWUuY2xpcD1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGksYSxvLHM9RWUodCksbD0tMSxjPXRoaXMubGVuZ3RoLUVlKHRoaXMpLHU9dGhpc1tjLTFdOysrbDxjOyl7Zm9yKGU9dC5zbGljZSgpLHQubGVuZ3RoPTAsaT10aGlzW2xdLGE9ZVsobj1lLmxlbmd0aC1zKS0xXSxyPS0xOysrcjxuOylNZShvPWVbcl0sdSxpKT8oTWUoYSx1LGkpfHx0LnB1c2goU2UoYSxvLHUsaSkpLHQucHVzaChvKSk6TWUoYSx1LGkpJiZ0LnB1c2goU2UoYSxvLHUsaSkpLGE9bztzJiZ0LnB1c2godFswXSksdT1pfXJldHVybiB0fTt2YXIgTGUsQ2UsUGUsSWUsT2UsemU9W10sRGU9W107ZnVuY3Rpb24gUmUoKXtlcih0aGlzKSx0aGlzLmVkZ2U9dGhpcy5zaXRlPXRoaXMuY2lyY2xlPW51bGx9ZnVuY3Rpb24gRmUodCl7dmFyIGU9emUucG9wKCl8fG5ldyBSZTtyZXR1cm4gZS5zaXRlPXQsZX1mdW5jdGlvbiBCZSh0KXtXZSh0KSxQZS5yZW1vdmUodCksemUucHVzaCh0KSxlcih0KX1mdW5jdGlvbiBOZSh0KXt2YXIgZT10LmNpcmNsZSxyPWUueCxuPWUuY3ksaT17eDpyLHk6bn0sYT10LlAsbz10Lk4scz1bdF07QmUodCk7Zm9yKHZhciBsPWE7bC5jaXJjbGUmJnkoci1sLmNpcmNsZS54KTxrdCYmeShuLWwuY2lyY2xlLmN5KTxrdDspYT1sLlAscy51bnNoaWZ0KGwpLEJlKGwpLGw9YTtzLnVuc2hpZnQobCksV2UobCk7Zm9yKHZhciBjPW87Yy5jaXJjbGUmJnkoci1jLmNpcmNsZS54KTxrdCYmeShuLWMuY2lyY2xlLmN5KTxrdDspbz1jLk4scy5wdXNoKGMpLEJlKGMpLGM9bztzLnB1c2goYyksV2UoYyk7dmFyIHUsZj1zLmxlbmd0aDtmb3IodT0xO3U8ZjsrK3UpYz1zW3VdLGw9c1t1LTFdLFFlKGMuZWRnZSxsLnNpdGUsYy5zaXRlLGkpO2w9c1swXSwoYz1zW2YtMV0pLmVkZ2U9SmUobC5zaXRlLGMuc2l0ZSxudWxsLGkpLFllKGwpLFllKGMpfWZ1bmN0aW9uIGplKHQpe2Zvcih2YXIgZSxyLG4saSxhPXQueCxvPXQueSxzPVBlLl87czspaWYoKG49VWUocyxvKS1hKT5rdClzPXMuTDtlbHNle2lmKCEoKGk9YS1WZShzLG8pKT5rdCkpe24+LWt0PyhlPXMuUCxyPXMpOmk+LWt0PyhlPXMscj1zLk4pOmU9cj1zO2JyZWFrfWlmKCFzLlIpe2U9czticmVha31zPXMuUn12YXIgbD1GZSh0KTtpZihQZS5pbnNlcnQoZSxsKSxlfHxyKXtpZihlPT09cilyZXR1cm4gV2UoZSkscj1GZShlLnNpdGUpLFBlLmluc2VydChsLHIpLGwuZWRnZT1yLmVkZ2U9SmUoZS5zaXRlLGwuc2l0ZSksWWUoZSksdm9pZCBZZShyKTtpZihyKXtXZShlKSxXZShyKTt2YXIgYz1lLnNpdGUsdT1jLngsZj1jLnksaD10LngtdSxwPXQueS1mLGQ9ci5zaXRlLG09ZC54LXUsZz1kLnktZix2PTIqKGgqZy1wKm0pLHk9aCpoK3AqcCx4PW0qbStnKmcsYj17eDooZyp5LXAqeCkvdit1LHk6KGgqeC1tKnkpL3YrZn07UWUoci5lZGdlLGMsZCxiKSxsLmVkZ2U9SmUoYyx0LG51bGwsYiksci5lZGdlPUplKHQsZCxudWxsLGIpLFllKGUpLFllKHIpfWVsc2UgbC5lZGdlPUplKGUuc2l0ZSxsLnNpdGUpfX1mdW5jdGlvbiBVZSh0LGUpe3ZhciByPXQuc2l0ZSxuPXIueCxpPXIueSxhPWktZTtpZighYSlyZXR1cm4gbjt2YXIgbz10LlA7aWYoIW8pcmV0dXJuLTEvMDt2YXIgcz0ocj1vLnNpdGUpLngsbD1yLnksYz1sLWU7aWYoIWMpcmV0dXJuIHM7dmFyIHU9cy1uLGY9MS9hLTEvYyxoPXUvYztyZXR1cm4gZj8oLWgrTWF0aC5zcXJ0KGgqaC0yKmYqKHUqdS8oLTIqYyktbCtjLzIraS1hLzIpKSkvZituOihuK3MpLzJ9ZnVuY3Rpb24gVmUodCxlKXt2YXIgcj10Lk47aWYocilyZXR1cm4gVWUocixlKTt2YXIgbj10LnNpdGU7cmV0dXJuIG4ueT09PWU/bi54OjEvMH1mdW5jdGlvbiBIZSh0KXt0aGlzLnNpdGU9dCx0aGlzLmVkZ2VzPVtdfWZ1bmN0aW9uIHFlKHQsZSl7cmV0dXJuIGUuYW5nbGUtdC5hbmdsZX1mdW5jdGlvbiBHZSgpe2VyKHRoaXMpLHRoaXMueD10aGlzLnk9dGhpcy5hcmM9dGhpcy5zaXRlPXRoaXMuY3k9bnVsbH1mdW5jdGlvbiBZZSh0KXt2YXIgZT10LlAscj10Lk47aWYoZSYmcil7dmFyIG49ZS5zaXRlLGk9dC5zaXRlLGE9ci5zaXRlO2lmKG4hPT1hKXt2YXIgbz1pLngscz1pLnksbD1uLngtbyxjPW4ueS1zLHU9YS54LW8sZj0yKihsKihnPWEueS1zKS1jKnUpO2lmKCEoZj49LTFlLTEyKSl7dmFyIGg9bCpsK2MqYyxwPXUqdStnKmcsZD0oZypoLWMqcCkvZixtPShsKnAtdSpoKS9mLGc9bStzLHY9RGUucG9wKCl8fG5ldyBHZTt2LmFyYz10LHYuc2l0ZT1pLHYueD1kK28sdi55PWcrTWF0aC5zcXJ0KGQqZCttKm0pLHYuY3k9Zyx0LmNpcmNsZT12O2Zvcih2YXIgeT1udWxsLHg9T2UuXzt4OylpZih2Lnk8eC55fHx2Lnk9PT14LnkmJnYueDw9eC54KXtpZigheC5MKXt5PXguUDticmVha314PXguTH1lbHNle2lmKCF4LlIpe3k9eDticmVha314PXguUn1PZS5pbnNlcnQoeSx2KSx5fHwoSWU9dil9fX19ZnVuY3Rpb24gV2UodCl7dmFyIGU9dC5jaXJjbGU7ZSYmKGUuUHx8KEllPWUuTiksT2UucmVtb3ZlKGUpLERlLnB1c2goZSksZXIoZSksdC5jaXJjbGU9bnVsbCl9ZnVuY3Rpb24gWGUodCxlKXt2YXIgcj10LmI7aWYocilyZXR1cm4hMDt2YXIgbixpLGE9dC5hLG89ZVswXVswXSxzPWVbMV1bMF0sbD1lWzBdWzFdLGM9ZVsxXVsxXSx1PXQubCxmPXQucixoPXUueCxwPXUueSxkPWYueCxtPWYueSxnPShoK2QpLzIsdj0ocCttKS8yO2lmKG09PT1wKXtpZihnPG98fGc+PXMpcmV0dXJuO2lmKGg+ZCl7aWYoYSl7aWYoYS55Pj1jKXJldHVybn1lbHNlIGE9e3g6Zyx5Omx9O3I9e3g6Zyx5OmN9fWVsc2V7aWYoYSl7aWYoYS55PGwpcmV0dXJufWVsc2UgYT17eDpnLHk6Y307cj17eDpnLHk6bH19fWVsc2UgaWYoaT12LShuPShoLWQpLyhtLXApKSpnLG48LTF8fG4+MSlpZihoPmQpe2lmKGEpe2lmKGEueT49YylyZXR1cm59ZWxzZSBhPXt4OihsLWkpL24seTpsfTtyPXt4OihjLWkpL24seTpjfX1lbHNle2lmKGEpe2lmKGEueTxsKXJldHVybn1lbHNlIGE9e3g6KGMtaSkvbix5OmN9O3I9e3g6KGwtaSkvbix5Omx9fWVsc2UgaWYocDxtKXtpZihhKXtpZihhLng+PXMpcmV0dXJufWVsc2UgYT17eDpvLHk6bipvK2l9O3I9e3g6cyx5Om4qcytpfX1lbHNle2lmKGEpe2lmKGEueDxvKXJldHVybn1lbHNlIGE9e3g6cyx5Om4qcytpfTtyPXt4Om8seTpuKm8raX19cmV0dXJuIHQuYT1hLHQuYj1yLCEwfWZ1bmN0aW9uIFplKHQsZSl7dGhpcy5sPXQsdGhpcy5yPWUsdGhpcy5hPXRoaXMuYj1udWxsfWZ1bmN0aW9uIEplKHQsZSxyLG4pe3ZhciBpPW5ldyBaZSh0LGUpO3JldHVybiBMZS5wdXNoKGkpLHImJlFlKGksdCxlLHIpLG4mJlFlKGksZSx0LG4pLENlW3QuaV0uZWRnZXMucHVzaChuZXcgJGUoaSx0LGUpKSxDZVtlLmldLmVkZ2VzLnB1c2gobmV3ICRlKGksZSx0KSksaX1mdW5jdGlvbiBLZSh0LGUscil7dmFyIG49bmV3IFplKHQsbnVsbCk7cmV0dXJuIG4uYT1lLG4uYj1yLExlLnB1c2gobiksbn1mdW5jdGlvbiBRZSh0LGUscixuKXt0LmF8fHQuYj90Lmw9PT1yP3QuYj1uOnQuYT1uOih0LmE9bix0Lmw9ZSx0LnI9cil9ZnVuY3Rpb24gJGUodCxlLHIpe3ZhciBuPXQuYSxpPXQuYjt0aGlzLmVkZ2U9dCx0aGlzLnNpdGU9ZSx0aGlzLmFuZ2xlPXI/TWF0aC5hdGFuMihyLnktZS55LHIueC1lLngpOnQubD09PWU/TWF0aC5hdGFuMihpLngtbi54LG4ueS1pLnkpOk1hdGguYXRhbjIobi54LWkueCxpLnktbi55KX1mdW5jdGlvbiB0cigpe3RoaXMuXz1udWxsfWZ1bmN0aW9uIGVyKHQpe3QuVT10LkM9dC5MPXQuUj10LlA9dC5OPW51bGx9ZnVuY3Rpb24gcnIodCxlKXt2YXIgcj1lLG49ZS5SLGk9ci5VO2k/aS5MPT09cj9pLkw9bjppLlI9bjp0Ll89bixuLlU9aSxyLlU9bixyLlI9bi5MLHIuUiYmKHIuUi5VPXIpLG4uTD1yfWZ1bmN0aW9uIG5yKHQsZSl7dmFyIHI9ZSxuPWUuTCxpPXIuVTtpP2kuTD09PXI/aS5MPW46aS5SPW46dC5fPW4sbi5VPWksci5VPW4sci5MPW4uUixyLkwmJihyLkwuVT1yKSxuLlI9cn1mdW5jdGlvbiBpcih0KXtmb3IoO3QuTDspdD10Lkw7cmV0dXJuIHR9ZnVuY3Rpb24gYXIodCxlKXt2YXIgcixuLGksYT10LnNvcnQob3IpLnBvcCgpO2ZvcihMZT1bXSxDZT1uZXcgQXJyYXkodC5sZW5ndGgpLFBlPW5ldyB0cixPZT1uZXcgdHI7OylpZihpPUllLGEmJighaXx8YS55PGkueXx8YS55PT09aS55JiZhLng8aS54KSlhLng9PT1yJiZhLnk9PT1ufHwoQ2VbYS5pXT1uZXcgSGUoYSksamUoYSkscj1hLngsbj1hLnkpLGE9dC5wb3AoKTtlbHNle2lmKCFpKWJyZWFrO05lKGkuYXJjKX1lJiYoZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixpLGEsbz1MZSxzPShyPXRbMF1bMF0sbj10WzBdWzFdLGk9dFsxXVswXSxhPXRbMV1bMV0sZnVuY3Rpb24odCl7dmFyIGUsbz10LmEscz10LmIsbD1vLngsYz1vLnksdT0wLGY9MSxoPXMueC1sLHA9cy55LWM7aWYoZT1yLWwsaHx8IShlPjApKXtpZihlLz1oLGg8MCl7aWYoZTx1KXJldHVybjtlPGYmJihmPWUpfWVsc2UgaWYoaD4wKXtpZihlPmYpcmV0dXJuO2U+dSYmKHU9ZSl9aWYoZT1pLWwsaHx8IShlPDApKXtpZihlLz1oLGg8MCl7aWYoZT5mKXJldHVybjtlPnUmJih1PWUpfWVsc2UgaWYoaD4wKXtpZihlPHUpcmV0dXJuO2U8ZiYmKGY9ZSl9aWYoZT1uLWMscHx8IShlPjApKXtpZihlLz1wLHA8MCl7aWYoZTx1KXJldHVybjtlPGYmJihmPWUpfWVsc2UgaWYocD4wKXtpZihlPmYpcmV0dXJuO2U+dSYmKHU9ZSl9aWYoZT1hLWMscHx8IShlPDApKXtpZihlLz1wLHA8MCl7aWYoZT5mKXJldHVybjtlPnUmJih1PWUpfWVsc2UgaWYocD4wKXtpZihlPHUpcmV0dXJuO2U8ZiYmKGY9ZSl9cmV0dXJuIHU+MCYmKHQuYT17eDpsK3UqaCx5OmMrdSpwfSksZjwxJiYodC5iPXt4OmwrZipoLHk6YytmKnB9KSx0fX19fX0pLGw9by5sZW5ndGg7bC0tOykoIVhlKGU9b1tsXSx0KXx8IXMoZSl8fHkoZS5hLngtZS5iLngpPGt0JiZ5KGUuYS55LWUuYi55KTxrdCkmJihlLmE9ZS5iPW51bGwsby5zcGxpY2UobCwxKSl9KGUpLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG4saSxhLG8scyxsLGMsdSxmPXRbMF1bMF0saD10WzFdWzBdLHA9dFswXVsxXSxkPXRbMV1bMV0sbT1DZSxnPW0ubGVuZ3RoO2ctLTspaWYoKGE9bVtnXSkmJmEucHJlcGFyZSgpKWZvcihsPShzPWEuZWRnZXMpLmxlbmd0aCxvPTA7bzxsOyluPSh1PXNbb10uZW5kKCkpLngsaT11LnksZT0oYz1zWysrbyVsXS5zdGFydCgpKS54LHI9Yy55LCh5KG4tZSk+a3R8fHkoaS1yKT5rdCkmJihzLnNwbGljZShvLDAsbmV3ICRlKEtlKGEuc2l0ZSx1LHkobi1mKTxrdCYmZC1pPmt0P3t4OmYseTp5KGUtZik8a3Q/cjpkfTp5KGktZCk8a3QmJmgtbj5rdD97eDp5KHItZCk8a3Q/ZTpoLHk6ZH06eShuLWgpPGt0JiZpLXA+a3Q/e3g6aCx5OnkoZS1oKTxrdD9yOnB9OnkoaS1wKTxrdCYmbi1mPmt0P3t4Onkoci1wKTxrdD9lOmYseTpwfTpudWxsKSxhLnNpdGUsbnVsbCkpLCsrbCl9KGUpKTt2YXIgbz17Y2VsbHM6Q2UsZWRnZXM6TGV9O3JldHVybiBQZT1PZT1MZT1DZT1udWxsLG99ZnVuY3Rpb24gb3IodCxlKXtyZXR1cm4gZS55LXQueXx8ZS54LXQueH1IZS5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2Zvcih2YXIgdCxlPXRoaXMuZWRnZXMscj1lLmxlbmd0aDtyLS07KSh0PWVbcl0uZWRnZSkuYiYmdC5hfHxlLnNwbGljZShyLDEpO3JldHVybiBlLnNvcnQocWUpLGUubGVuZ3RofSwkZS5wcm90b3R5cGU9e3N0YXJ0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWRnZS5sPT09dGhpcy5zaXRlP3RoaXMuZWRnZS5hOnRoaXMuZWRnZS5ifSxlbmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5lZGdlLmw9PT10aGlzLnNpdGU/dGhpcy5lZGdlLmI6dGhpcy5lZGdlLmF9fSx0ci5wcm90b3R5cGU9e2luc2VydDpmdW5jdGlvbih0LGUpe3ZhciByLG4saTtpZih0KXtpZihlLlA9dCxlLk49dC5OLHQuTiYmKHQuTi5QPWUpLHQuTj1lLHQuUil7Zm9yKHQ9dC5SO3QuTDspdD10Lkw7dC5MPWV9ZWxzZSB0LlI9ZTtyPXR9ZWxzZSB0aGlzLl8/KHQ9aXIodGhpcy5fKSxlLlA9bnVsbCxlLk49dCx0LlA9dC5MPWUscj10KTooZS5QPWUuTj1udWxsLHRoaXMuXz1lLHI9bnVsbCk7Zm9yKGUuTD1lLlI9bnVsbCxlLlU9cixlLkM9ITAsdD1lO3ImJnIuQzspcj09PShuPXIuVSkuTD8oaT1uLlIpJiZpLkM/KHIuQz1pLkM9ITEsbi5DPSEwLHQ9bik6KHQ9PT1yLlImJihycih0aGlzLHIpLHI9KHQ9cikuVSksci5DPSExLG4uQz0hMCxucih0aGlzLG4pKTooaT1uLkwpJiZpLkM/KHIuQz1pLkM9ITEsbi5DPSEwLHQ9bik6KHQ9PT1yLkwmJihucih0aGlzLHIpLHI9KHQ9cikuVSksci5DPSExLG4uQz0hMCxycih0aGlzLG4pKSxyPXQuVTt0aGlzLl8uQz0hMX0scmVtb3ZlOmZ1bmN0aW9uKHQpe3QuTiYmKHQuTi5QPXQuUCksdC5QJiYodC5QLk49dC5OKSx0Lk49dC5QPW51bGw7dmFyIGUscixuLGk9dC5VLGE9dC5MLG89dC5SO2lmKHI9YT9vP2lyKG8pOmE6byxpP2kuTD09PXQ/aS5MPXI6aS5SPXI6dGhpcy5fPXIsYSYmbz8obj1yLkMsci5DPXQuQyxyLkw9YSxhLlU9cixyIT09bz8oaT1yLlUsci5VPXQuVSx0PXIuUixpLkw9dCxyLlI9byxvLlU9cik6KHIuVT1pLGk9cix0PXIuUikpOihuPXQuQyx0PXIpLHQmJih0LlU9aSksIW4paWYodCYmdC5DKXQuQz0hMTtlbHNle2Rve2lmKHQ9PT10aGlzLl8pYnJlYWs7aWYodD09PWkuTCl7aWYoKGU9aS5SKS5DJiYoZS5DPSExLGkuQz0hMCxycih0aGlzLGkpLGU9aS5SKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLlImJmUuUi5DfHwoZS5MLkM9ITEsZS5DPSEwLG5yKHRoaXMsZSksZT1pLlIpLGUuQz1pLkMsaS5DPWUuUi5DPSExLHJyKHRoaXMsaSksdD10aGlzLl87YnJlYWt9fWVsc2UgaWYoKGU9aS5MKS5DJiYoZS5DPSExLGkuQz0hMCxucih0aGlzLGkpLGU9aS5MKSxlLkwmJmUuTC5DfHxlLlImJmUuUi5DKXtlLkwmJmUuTC5DfHwoZS5SLkM9ITEsZS5DPSEwLHJyKHRoaXMsZSksZT1pLkwpLGUuQz1pLkMsaS5DPWUuTC5DPSExLG5yKHRoaXMsaSksdD10aGlzLl87YnJlYWt9ZS5DPSEwLHQ9aSxpPWkuVX13aGlsZSghdC5DKTt0JiYodC5DPSExKX19fSx0Lmdlb20udm9yb25vaT1mdW5jdGlvbih0KXt2YXIgZT1fZSxyPXdlLG49ZSxpPXIsYT1zcjtpZih0KXJldHVybiBvKHQpO2Z1bmN0aW9uIG8odCl7dmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPWFbMF1bMF0sbj1hWzBdWzFdLGk9YVsxXVswXSxvPWFbMV1bMV07cmV0dXJuIGFyKHModCksYSkuY2VsbHMuZm9yRWFjaCgoZnVuY3Rpb24oYSxzKXt2YXIgbD1hLmVkZ2VzLGM9YS5zaXRlOyhlW3NdPWwubGVuZ3RoP2wubWFwKChmdW5jdGlvbih0KXt2YXIgZT10LnN0YXJ0KCk7cmV0dXJuW2UueCxlLnldfSkpOmMueD49ciYmYy54PD1pJiZjLnk+PW4mJmMueTw9bz9bW3Isb10sW2ksb10sW2ksbl0sW3Isbl1dOltdKS5wb2ludD10W3NdfSkpLGV9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJue3g6TWF0aC5yb3VuZChuKHQsZSkva3QpKmt0LHk6TWF0aC5yb3VuZChpKHQsZSkva3QpKmt0LGk6ZX19KSl9cmV0dXJuIG8ubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGFyKHModCkpLmVkZ2VzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubCYmdC5yfSkpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJue3NvdXJjZTp0W2UubC5pXSx0YXJnZXQ6dFtlLnIuaV19fSkpfSxvLnRyaWFuZ2xlcz1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gYXIocyh0KSkuY2VsbHMuZm9yRWFjaCgoZnVuY3Rpb24ocixuKXtmb3IodmFyIGksYSxvLHMsbD1yLnNpdGUsYz1yLmVkZ2VzLnNvcnQocWUpLHU9LTEsZj1jLmxlbmd0aCxoPWNbZi0xXS5lZGdlLHA9aC5sPT09bD9oLnI6aC5sOysrdTxmOyloLGk9cCxwPShoPWNbdV0uZWRnZSkubD09PWw/aC5yOmgubCxuPGkuaSYmbjxwLmkmJihvPWkscz1wLCgoYT1sKS54LXMueCkqKG8ueS1hLnkpLShhLngtby54KSoocy55LWEueSk8MCkmJmUucHVzaChbdFtuXSx0W2kuaV0sdFtwLmldXSl9KSksZX0sby54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPWNlKGU9dCksbyk6ZX0sby55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWNlKHI9dCksbyk6cn0sby5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PXQ/c3I6dCxvKTphPT09c3I/bnVsbDphfSxvLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/by5jbGlwRXh0ZW50KHQmJltbMCwwXSx0XSk6YT09PXNyP251bGw6YSYmYVsxXX0sb307dmFyIHNyPVtbLTFlNiwtMWU2XSxbMWU2LDFlNl1dO2Z1bmN0aW9uIGxyKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gY3IodCl7cmV0dXJuIHQueX1mdW5jdGlvbiB1cih0LGUscixuLGksYSl7aWYoIXQoZSxyLG4saSxhKSl7dmFyIG89LjUqKHIraSkscz0uNSoobithKSxsPWUubm9kZXM7bFswXSYmdXIodCxsWzBdLHIsbixvLHMpLGxbMV0mJnVyKHQsbFsxXSxvLG4saSxzKSxsWzJdJiZ1cih0LGxbMl0scixzLG8sYSksbFszXSYmdXIodCxsWzNdLG8scyxpLGEpfX1mdW5jdGlvbiBmcih0LGUscixuLGksYSxvKXt2YXIgcyxsPTEvMDtyZXR1cm4gZnVuY3Rpb24gdChjLHUsZixoLHApe2lmKCEodT5hfHxmPm98fGg8bnx8cDxpKSl7aWYoZD1jLnBvaW50KXt2YXIgZCxtPWUtYy54LGc9ci1jLnksdj1tKm0rZypnO2lmKHY8bCl7dmFyIHk9TWF0aC5zcXJ0KGw9dik7bj1lLXksaT1yLXksYT1lK3ksbz1yK3kscz1kfX1mb3IodmFyIHg9Yy5ub2RlcyxiPS41Kih1K2gpLF89LjUqKGYrcCksdz0ocj49Xyk8PDF8ZT49YixUPXcrNDt3PFQ7Kyt3KWlmKGM9eFszJnddKXN3aXRjaCgzJncpe2Nhc2UgMDp0KGMsdSxmLGIsXyk7YnJlYWs7Y2FzZSAxOnQoYyxiLGYsaCxfKTticmVhaztjYXNlIDI6dChjLHUsXyxiLHApO2JyZWFrO2Nhc2UgMzp0KGMsYixfLGgscCl9fX0odCxuLGksYSxvKSxzfWZ1bmN0aW9uIGhyKGUscil7ZT10LnJnYihlKSxyPXQucmdiKHIpO3ZhciBuPWUucixpPWUuZyxhPWUuYixvPXIuci1uLHM9ci5nLWksbD1yLmItYTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIiMiK3JlKE1hdGgucm91bmQobitvKnQpKStyZShNYXRoLnJvdW5kKGkrcyp0KSkrcmUoTWF0aC5yb3VuZChhK2wqdCkpfX1mdW5jdGlvbiBwcih0LGUpe3ZhciByLG49e30saT17fTtmb3IociBpbiB0KXIgaW4gZT9uW3JdPXlyKHRbcl0sZVtyXSk6aVtyXT10W3JdO2ZvcihyIGluIGUpciBpbiB0fHwoaVtyXT1lW3JdKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHIgaW4gbilpW3JdPW5bcl0odCk7cmV0dXJuIGl9fWZ1bmN0aW9uIGRyKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihyKXtyZXR1cm4gdCooMS1yKStlKnJ9fWZ1bmN0aW9uIG1yKHQsZSl7dmFyIHIsbixpLGE9Z3IubGFzdEluZGV4PXZyLmxhc3RJbmRleD0wLG89LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsocj1nci5leGVjKHQpKSYmKG49dnIuZXhlYyhlKSk7KShpPW4uaW5kZXgpPmEmJihpPWUuc2xpY2UoYSxpKSxzW29dP3Nbb10rPWk6c1srK29dPWkpLChyPXJbMF0pPT09KG49blswXSk/c1tvXT9zW29dKz1uOnNbKytvXT1uOihzWysrb109bnVsbCxsLnB1c2goe2k6byx4OmRyKHIsbil9KSksYT12ci5sYXN0SW5kZXg7cmV0dXJuIGE8ZS5sZW5ndGgmJihpPWUuc2xpY2UoYSksc1tvXT9zW29dKz1pOnNbKytvXT1pKSxzLmxlbmd0aDwyP2xbMF0/KGU9bFswXS54LGZ1bmN0aW9uKHQpe3JldHVybiBlKHQpKyIifSk6ZnVuY3Rpb24oKXtyZXR1cm4gZX06KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciByLG49MDtuPGU7KytuKXNbKHI9bFtuXSkuaV09ci54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9dC5nZW9tLmRlbGF1bmF5PWZ1bmN0aW9uKGUpe3JldHVybiB0Lmdlb20udm9yb25vaSgpLnRyaWFuZ2xlcyhlKX0sdC5nZW9tLnF1YWR0cmVlPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsbz1fZSxzPXdlO2lmKGE9YXJndW1lbnRzLmxlbmd0aClyZXR1cm4gbz1scixzPWNyLDM9PT1hJiYoaT1yLG49ZSxyPWU9MCksbCh0KTtmdW5jdGlvbiBsKHQpe3ZhciBsLGMsdSxmLGgscCxkLG0sZyx2PWNlKG8pLHg9Y2Uocyk7aWYobnVsbCE9ZSlwPWUsZD1yLG09bixnPWk7ZWxzZSBpZihtPWc9LShwPWQ9MS8wKSxjPVtdLHU9W10saD10Lmxlbmd0aCxhKWZvcihmPTA7ZjxoOysrZikobD10W2ZdKS54PHAmJihwPWwueCksbC55PGQmJihkPWwueSksbC54Pm0mJihtPWwueCksbC55PmcmJihnPWwueSksYy5wdXNoKGwueCksdS5wdXNoKGwueSk7ZWxzZSBmb3IoZj0wO2Y8aDsrK2Ype3ZhciBiPSt2KGw9dFtmXSxmKSxfPSt4KGwsZik7YjxwJiYocD1iKSxfPGQmJihkPV8pLGI+bSYmKG09YiksXz5nJiYoZz1fKSxjLnB1c2goYiksdS5wdXNoKF8pfXZhciB3PW0tcCxUPWctZDtmdW5jdGlvbiBrKHQsZSxyLG4saSxhLG8scyl7aWYoIWlzTmFOKHIpJiYhaXNOYU4obikpaWYodC5sZWFmKXt2YXIgbD10LngsYz10Lnk7aWYobnVsbCE9bClpZih5KGwtcikreShjLW4pPC4wMSlBKHQsZSxyLG4saSxhLG8scyk7ZWxzZXt2YXIgdT10LnBvaW50O3QueD10Lnk9dC5wb2ludD1udWxsLEEodCx1LGwsYyxpLGEsbyxzKSxBKHQsZSxyLG4saSxhLG8scyl9ZWxzZSB0Lng9cix0Lnk9bix0LnBvaW50PWV9ZWxzZSBBKHQsZSxyLG4saSxhLG8scyl9ZnVuY3Rpb24gQSh0LGUscixuLGksYSxvLHMpe3ZhciBsPS41KihpK28pLGM9LjUqKGErcyksdT1yPj1sLGY9bj49YyxoPWY8PDF8dTt0LmxlYWY9ITEsdT9pPWw6bz1sLGY/YT1jOnM9YyxrKHQ9dC5ub2Rlc1toXXx8KHQubm9kZXNbaF09e2xlYWY6ITAsbm9kZXM6W10scG9pbnQ6bnVsbCx4Om51bGwseTpudWxsfSksZSxyLG4saSxhLG8scyl9dz5UP2c9ZCt3Om09cCtUO3ZhciBNPXtsZWFmOiEwLG5vZGVzOltdLHBvaW50Om51bGwseDpudWxsLHk6bnVsbCxhZGQ6ZnVuY3Rpb24odCl7ayhNLHQsK3YodCwrK2YpLCt4KHQsZikscCxkLG0sZyl9LHZpc2l0OmZ1bmN0aW9uKHQpe3VyKHQsTSxwLGQsbSxnKX0sZmluZDpmdW5jdGlvbih0KXtyZXR1cm4gZnIoTSx0WzBdLHRbMV0scCxkLG0sZyl9fTtpZihmPS0xLG51bGw9PWUpe2Zvcig7KytmPGg7KWsoTSx0W2ZdLGNbZl0sdVtmXSxwLGQsbSxnKTstLWZ9ZWxzZSB0LmZvckVhY2goTS5hZGQpO3JldHVybiBjPXU9dD1sPW51bGwsTX1yZXR1cm4gbC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQsbCk6b30sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsbCk6c30sbC5leHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/ZT1yPW49aT1udWxsOihlPSt0WzBdWzBdLHI9K3RbMF1bMV0sbj0rdFsxXVswXSxpPSt0WzFdWzFdKSxsKTpudWxsPT1lP251bGw6W1tlLHJdLFtuLGldXX0sbC5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P2U9cj1uPWk9bnVsbDooZT1yPTAsbj0rdFswXSxpPSt0WzFdKSxsKTpudWxsPT1lP251bGw6W24tZSxpLXJdfSxsfSx0LmludGVycG9sYXRlUmdiPWhyLHQuaW50ZXJwb2xhdGVPYmplY3Q9cHIsdC5pbnRlcnBvbGF0ZU51bWJlcj1kcix0LmludGVycG9sYXRlU3RyaW5nPW1yO3ZhciBncj0vWy0rXT8oPzpcZCtcLj9cZCp8XC4/XGQrKSg/OltlRV1bLStdP1xkKyk/L2csdnI9bmV3IFJlZ0V4cChnci5zb3VyY2UsImciKTtmdW5jdGlvbiB5cihlLHIpe2Zvcih2YXIgbixpPXQuaW50ZXJwb2xhdG9ycy5sZW5ndGg7LS1pPj0wJiYhKG49dC5pbnRlcnBvbGF0b3JzW2ldKGUscikpOyk7cmV0dXJuIG59ZnVuY3Rpb24geHIodCxlKXt2YXIgcixuPVtdLGk9W10sYT10Lmxlbmd0aCxvPWUubGVuZ3RoLHM9TWF0aC5taW4odC5sZW5ndGgsZS5sZW5ndGgpO2ZvcihyPTA7cjxzOysrciluLnB1c2goeXIodFtyXSxlW3JdKSk7Zm9yKDtyPGE7KytyKWlbcl09dFtyXTtmb3IoO3I8bzsrK3IpaVtyXT1lW3JdO3JldHVybiBmdW5jdGlvbih0KXtmb3Iocj0wO3I8czsrK3IpaVtyXT1uW3JdKHQpO3JldHVybiBpfX10LmludGVycG9sYXRlPXlyLHQuaW50ZXJwb2xhdG9ycz1bZnVuY3Rpb24odCxlKXt2YXIgcj10eXBlb2YgZTtyZXR1cm4oInN0cmluZyI9PT1yP2xlLmhhcyhlLnRvTG93ZXJDYXNlKCkpfHwvXigjfHJnYlwofGhzbFwoKS9pLnRlc3QoZSk/aHI6bXI6ZSBpbnN0YW5jZW9mIEZ0P2hyOkFycmF5LmlzQXJyYXkoZSk/eHI6Im9iamVjdCI9PT1yJiZpc05hTihlKT9wcjpkcikodCxlKX1dLHQuaW50ZXJwb2xhdGVBcnJheT14cjt2YXIgYnI9ZnVuY3Rpb24oKXtyZXR1cm4gQ30sX3I9dC5tYXAoe2xpbmVhcjpicixwb2x5OmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5wb3coZSx0KX19LHF1YWQ6ZnVuY3Rpb24oKXtyZXR1cm4gTXJ9LGN1YmljOmZ1bmN0aW9uKCl7cmV0dXJuIFNyfSxzaW46ZnVuY3Rpb24oKXtyZXR1cm4gTHJ9LGV4cDpmdW5jdGlvbigpe3JldHVybiBDcn0sY2lyY2xlOmZ1bmN0aW9uKCl7cmV0dXJuIFByfSxlbGFzdGljOmZ1bmN0aW9uKHQsZSl7dmFyIHI7YXJndW1lbnRzLmxlbmd0aDwyJiYoZT0uNDUpO2FyZ3VtZW50cy5sZW5ndGg/cj1lL010Kk1hdGguYXNpbigxL3QpOih0PTEscj1lLzQpO3JldHVybiBmdW5jdGlvbihuKXtyZXR1cm4gMSt0Kk1hdGgucG93KDIsLTEwKm4pKk1hdGguc2luKChuLXIpKk10L2UpfX0sYmFjazpmdW5jdGlvbih0KXt0fHwodD0xLjcwMTU4KTtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUqZSooKHQrMSkqZS10KX19LGJvdW5jZTpmdW5jdGlvbigpe3JldHVybiBJcn19KSx3cj10Lm1hcCh7aW46QyxvdXQ6a3IsImluLW91dCI6QXIsIm91dC1pbiI6ZnVuY3Rpb24odCl7cmV0dXJuIEFyKGtyKHQpKX19KTtmdW5jdGlvbiBUcih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGU8PTA/MDplPj0xPzE6dChlKX19ZnVuY3Rpb24ga3IodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiAxLXQoMS1lKX19ZnVuY3Rpb24gQXIodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybi41KihlPC41P3QoMiplKToyLXQoMi0yKmUpKX19ZnVuY3Rpb24gTXIodCl7cmV0dXJuIHQqdH1mdW5jdGlvbiBTcih0KXtyZXR1cm4gdCp0KnR9ZnVuY3Rpb24gRXIodCl7aWYodDw9MClyZXR1cm4gMDtpZih0Pj0xKXJldHVybiAxO3ZhciBlPXQqdCxyPWUqdDtyZXR1cm4gNCoodDwuNT9yOjMqKHQtZSkrci0uNzUpfWZ1bmN0aW9uIExyKHQpe3JldHVybiAxLU1hdGguY29zKHQqRXQpfWZ1bmN0aW9uIENyKHQpe3JldHVybiBNYXRoLnBvdygyLDEwKih0LTEpKX1mdW5jdGlvbiBQcih0KXtyZXR1cm4gMS1NYXRoLnNxcnQoMS10KnQpfWZ1bmN0aW9uIElyKHQpe3JldHVybiB0PDEvMi43NT83LjU2MjUqdCp0OnQ8Mi8yLjc1PzcuNTYyNSoodC09MS41LzIuNzUpKnQrLjc1OnQ8Mi41LzIuNzU/Ny41NjI1Kih0LT0yLjI1LzIuNzUpKnQrLjkzNzU6Ny41NjI1Kih0LT0yLjYyNS8yLjc1KSp0Ky45ODQzNzV9ZnVuY3Rpb24gT3IodCxlKXtyZXR1cm4gZS09dCxmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5yb3VuZCh0K2Uqcil9fWZ1bmN0aW9uIHpyKHQpe3ZhciBlLHIsbixpPVt0LmEsdC5iXSxhPVt0LmMsdC5kXSxvPVJyKGkpLHM9RHIoaSxhKSxsPVJyKCgoZT1hKVswXSs9KG49LXMpKihyPWkpWzBdLGVbMV0rPW4qclsxXSxlKSl8fDA7aVswXSphWzFdPGFbMF0qaVsxXSYmKGlbMF0qPS0xLGlbMV0qPS0xLG8qPS0xLHMqPS0xKSx0aGlzLnJvdGF0ZT0obz9NYXRoLmF0YW4yKGlbMV0saVswXSk6TWF0aC5hdGFuMigtYVswXSxhWzFdKSkqQ3QsdGhpcy50cmFuc2xhdGU9W3QuZSx0LmZdLHRoaXMuc2NhbGU9W28sbF0sdGhpcy5za2V3PWw/TWF0aC5hdGFuMihzLGwpKkN0OjB9ZnVuY3Rpb24gRHIodCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXX1mdW5jdGlvbiBScih0KXt2YXIgZT1NYXRoLnNxcnQoRHIodCx0KSk7cmV0dXJuIGUmJih0WzBdLz1lLHRbMV0vPWUpLGV9dC5lYXNlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaW5kZXhPZigiLSIpLG49ZT49MD90LnNsaWNlKDAsZSk6dCxpPWU+PTA/dC5zbGljZShlKzEpOiJpbiI7cmV0dXJuIG49X3IuZ2V0KG4pfHxicixUcigoaT13ci5nZXQoaSl8fEMpKG4uYXBwbHkobnVsbCxyLmNhbGwoYXJndW1lbnRzLDEpKSkpfSx0LmludGVycG9sYXRlSGNsPWZ1bmN0aW9uKGUscil7ZT10LmhjbChlKSxyPXQuaGNsKHIpO3ZhciBuPWUuaCxpPWUuYyxhPWUubCxvPXIuaC1uLHM9ci5jLWksbD1yLmwtYTtpc05hTihzKSYmKHM9MCxpPWlzTmFOKGkpP3IuYzppKTtpc05hTihvKT8obz0wLG49aXNOYU4obik/ci5oOm4pOm8+MTgwP28tPTM2MDpvPC0xODAmJihvKz0zNjApO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gSHQobitvKnQsaStzKnQsYStsKnQpKyIifX0sdC5pbnRlcnBvbGF0ZUhzbD1mdW5jdGlvbihlLHIpe2U9dC5oc2woZSkscj10LmhzbChyKTt2YXIgbj1lLmgsaT1lLnMsYT1lLmwsbz1yLmgtbixzPXIucy1pLGw9ci5sLWE7aXNOYU4ocykmJihzPTAsaT1pc05hTihpKT9yLnM6aSk7aXNOYU4obyk/KG89MCxuPWlzTmFOKG4pP3IuaDpuKTpvPjE4MD9vLT0zNjA6bzwtMTgwJiYobys9MzYwKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGp0KG4rbyp0LGkrcyp0LGErbCp0KSsiIn19LHQuaW50ZXJwb2xhdGVMYWI9ZnVuY3Rpb24oZSxyKXtlPXQubGFiKGUpLHI9dC5sYWIocik7dmFyIG49ZS5sLGk9ZS5hLGE9ZS5iLG89ci5sLW4scz1yLmEtaSxsPXIuYi1hO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gV3QobitvKnQsaStzKnQsYStsKnQpKyIifX0sdC5pbnRlcnBvbGF0ZVJvdW5kPU9yLHQudHJhbnNmb3JtPWZ1bmN0aW9uKGUpe3ZhciByPWkuY3JlYXRlRWxlbWVudE5TKHQubnMucHJlZml4LnN2ZywiZyIpO3JldHVybih0LnRyYW5zZm9ybT1mdW5jdGlvbih0KXtpZihudWxsIT10KXtyLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIix0KTt2YXIgZT1yLnRyYW5zZm9ybS5iYXNlVmFsLmNvbnNvbGlkYXRlKCl9cmV0dXJuIG5ldyB6cihlP2UubWF0cml4OkZyKX0pKGUpfSx6ci5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4idHJhbnNsYXRlKCIrdGhpcy50cmFuc2xhdGUrIilyb3RhdGUoIit0aGlzLnJvdGF0ZSsiKXNrZXdYKCIrdGhpcy5za2V3KyIpc2NhbGUoIit0aGlzLnNjYWxlKyIpIn07dmFyIEZyPXthOjEsYjowLGM6MCxkOjEsZTowLGY6MH07ZnVuY3Rpb24gQnIodCl7cmV0dXJuIHQubGVuZ3RoP3QucG9wKCkrIiwiOiIifWZ1bmN0aW9uIE5yKGUscil7dmFyIG49W10saT1bXTtyZXR1cm4gZT10LnRyYW5zZm9ybShlKSxyPXQudHJhbnNmb3JtKHIpLGZ1bmN0aW9uKHQsZSxyLG4pe2lmKHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXSl7dmFyIGk9ci5wdXNoKCJ0cmFuc2xhdGUoIixudWxsLCIsIixudWxsLCIpIik7bi5wdXNoKHtpOmktNCx4OmRyKHRbMF0sZVswXSl9LHtpOmktMix4OmRyKHRbMV0sZVsxXSl9KX1lbHNlKGVbMF18fGVbMV0pJiZyLnB1c2goInRyYW5zbGF0ZSgiK2UrIikiKX0oZS50cmFuc2xhdGUsci50cmFuc2xhdGUsbixpKSxmdW5jdGlvbih0LGUscixuKXt0IT09ZT8odC1lPjE4MD9lKz0zNjA6ZS10PjE4MCYmKHQrPTM2MCksbi5wdXNoKHtpOnIucHVzaChCcihyKSsicm90YXRlKCIsbnVsbCwiKSIpLTIseDpkcih0LGUpfSkpOmUmJnIucHVzaChCcihyKSsicm90YXRlKCIrZSsiKSIpfShlLnJvdGF0ZSxyLnJvdGF0ZSxuLGkpLGZ1bmN0aW9uKHQsZSxyLG4pe3QhPT1lP24ucHVzaCh7aTpyLnB1c2goQnIocikrInNrZXdYKCIsbnVsbCwiKSIpLTIseDpkcih0LGUpfSk6ZSYmci5wdXNoKEJyKHIpKyJza2V3WCgiK2UrIikiKX0oZS5za2V3LHIuc2tldyxuLGkpLGZ1bmN0aW9uKHQsZSxyLG4pe2lmKHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXSl7dmFyIGk9ci5wdXNoKEJyKHIpKyJzY2FsZSgiLG51bGwsIiwiLG51bGwsIikiKTtuLnB1c2goe2k6aS00LHg6ZHIodFswXSxlWzBdKX0se2k6aS0yLHg6ZHIodFsxXSxlWzFdKX0pfWVsc2UgMT09PWVbMF0mJjE9PT1lWzFdfHxyLnB1c2goQnIocikrInNjYWxlKCIrZSsiKSIpfShlLnNjYWxlLHIuc2NhbGUsbixpKSxlPXI9bnVsbCxmdW5jdGlvbih0KXtmb3IodmFyIGUscj0tMSxhPWkubGVuZ3RoOysrcjxhOyluWyhlPWlbcl0pLmldPWUueCh0KTtyZXR1cm4gbi5qb2luKCIiKX19ZnVuY3Rpb24ganIodCxlKXtyZXR1cm4gZT0oZS09dD0rdCl8fDEvZSxmdW5jdGlvbihyKXtyZXR1cm4oci10KS9lfX1mdW5jdGlvbiBVcih0LGUpe3JldHVybiBlPShlLT10PSt0KXx8MS9lLGZ1bmN0aW9uKHIpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKDEsKHItdCkvZSkpfX1mdW5jdGlvbiBWcih0KXtmb3IodmFyIGU9dC5zb3VyY2Uscj10LnRhcmdldCxuPWZ1bmN0aW9uKHQsZSl7aWYodD09PWUpcmV0dXJuIHQ7dmFyIHI9SHIodCksbj1IcihlKSxpPXIucG9wKCksYT1uLnBvcCgpLG89bnVsbDtmb3IoO2k9PT1hOylvPWksaT1yLnBvcCgpLGE9bi5wb3AoKTtyZXR1cm4gb30oZSxyKSxpPVtlXTtlIT09bjspZT1lLnBhcmVudCxpLnB1c2goZSk7Zm9yKHZhciBhPWkubGVuZ3RoO3IhPT1uOylpLnNwbGljZShhLDAscikscj1yLnBhcmVudDtyZXR1cm4gaX1mdW5jdGlvbiBIcih0KXtmb3IodmFyIGU9W10scj10LnBhcmVudDtudWxsIT1yOyllLnB1c2godCksdD1yLHI9ci5wYXJlbnQ7cmV0dXJuIGUucHVzaCh0KSxlfWZ1bmN0aW9uIHFyKHQpe3QuZml4ZWR8PTJ9ZnVuY3Rpb24gR3IodCl7dC5maXhlZCY9LTd9ZnVuY3Rpb24gWXIodCl7dC5maXhlZHw9NCx0LnB4PXQueCx0LnB5PXQueX1mdW5jdGlvbiBXcih0KXt0LmZpeGVkJj0tNX10LmludGVycG9sYXRlVHJhbnNmb3JtPU5yLHQubGF5b3V0PXt9LHQubGF5b3V0LmJ1bmRsZT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0tMSxuPXQubGVuZ3RoOysrcjxuOyllLnB1c2goVnIodFtyXSkpO3JldHVybiBlfX0sdC5sYXlvdXQuY2hvcmQ9ZnVuY3Rpb24oKXt2YXIgZSxyLG4saSxhLG8scyxsPXt9LGM9MDtmdW5jdGlvbiB1KCl7dmFyIGwsdSxoLHAsZCxtPXt9LGc9W10sdj10LnJhbmdlKGkpLHk9W107Zm9yKGU9W10scj1bXSxsPTAscD0tMTsrK3A8aTspe2Zvcih1PTAsZD0tMTsrK2Q8aTspdSs9bltwXVtkXTtnLnB1c2godSkseS5wdXNoKHQucmFuZ2UoaSkpLGwrPXV9Zm9yKGEmJnYuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gYShnW3RdLGdbZV0pfSkpLG8mJnkuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0LnNvcnQoKGZ1bmN0aW9uKHQscil7cmV0dXJuIG8obltlXVt0XSxuW2VdW3JdKX0pKX0pKSxsPShNdC1jKmkpL2wsdT0wLHA9LTE7KytwPGk7KXtmb3IoaD11LGQ9LTE7KytkPGk7KXt2YXIgeD12W3BdLGI9eVt4XVtkXSxfPW5beF1bYl0sdz11LFQ9dSs9XypsO21beCsiLSIrYl09e2luZGV4Ongsc3ViaW5kZXg6YixzdGFydEFuZ2xlOncsZW5kQW5nbGU6VCx2YWx1ZTpffX1yW3hdPXtpbmRleDp4LHN0YXJ0QW5nbGU6aCxlbmRBbmdsZTp1LHZhbHVlOmdbeF19LHUrPWN9Zm9yKHA9LTE7KytwPGk7KWZvcihkPXAtMTsrK2Q8aTspe3ZhciBrPW1bcCsiLSIrZF0sQT1tW2QrIi0iK3BdOyhrLnZhbHVlfHxBLnZhbHVlKSYmZS5wdXNoKGsudmFsdWU8QS52YWx1ZT97c291cmNlOkEsdGFyZ2V0Omt9Ontzb3VyY2U6ayx0YXJnZXQ6QX0pfXMmJmYoKX1mdW5jdGlvbiBmKCl7ZS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBzKCh0LnNvdXJjZS52YWx1ZSt0LnRhcmdldC52YWx1ZSkvMiwoZS5zb3VyY2UudmFsdWUrZS50YXJnZXQudmFsdWUpLzIpfSkpfXJldHVybiBsLm1hdHJpeD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0obj10KSYmbi5sZW5ndGgsZT1yPW51bGwsbCk6bn0sbC5wYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhjPXQsZT1yPW51bGwsbCk6Y30sbC5zb3J0R3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsZT1yPW51bGwsbCk6YX0sbC5zb3J0U3ViZ3JvdXBzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQsZT1udWxsLGwpOm99LGwuc29ydENob3Jkcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz10LGUmJmYoKSxsKTpzfSxsLmNob3Jkcz1mdW5jdGlvbigpe3JldHVybiBlfHx1KCksZX0sbC5ncm91cHM9ZnVuY3Rpb24oKXtyZXR1cm4gcnx8dSgpLHJ9LGx9LHQubGF5b3V0LmZvcmNlPWZ1bmN0aW9uKCl7dmFyIGUscixuLGksYSxvLHM9e30sbD10LmRpc3BhdGNoKCJzdGFydCIsInRpY2siLCJlbmQiKSxjPVsxLDFdLHU9LjksZj1YcixoPVpyLHA9LTMwLGQ9SnIsbT0uMSxnPS42NCx2PVtdLHk9W107ZnVuY3Rpb24geCh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyLG4saSl7aWYoZS5wb2ludCE9PXQpe3ZhciBhPWUuY3gtdC54LG89ZS5jeS10Lnkscz1pLXIsbD1hKmErbypvO2lmKHMqcy9nPGwpe2lmKGw8ZCl7dmFyIGM9ZS5jaGFyZ2UvbDt0LnB4LT1hKmMsdC5weS09bypjfXJldHVybiEwfWlmKGUucG9pbnQmJmwmJmw8ZCl7Yz1lLnBvaW50Q2hhcmdlL2w7dC5weC09YSpjLHQucHktPW8qY319cmV0dXJuIWUuY2hhcmdlfX1mdW5jdGlvbiBiKGUpe2UucHg9dC5ldmVudC54LGUucHk9dC5ldmVudC55LHMucmVzdW1lKCl9cmV0dXJuIHMudGljaz1mdW5jdGlvbigpe2lmKChuKj0uOTkpPC4wMDUpcmV0dXJuIGU9bnVsbCxsLmVuZCh7dHlwZToiZW5kIixhbHBoYTpuPTB9KSwhMDt2YXIgcixzLGYsaCxkLGcsYixfLHcsVD12Lmxlbmd0aCxrPXkubGVuZ3RoO2ZvcihzPTA7czxrOysrcyloPShmPXlbc10pLnNvdXJjZSwoZz0oXz0oZD1mLnRhcmdldCkueC1oLngpKl8rKHc9ZC55LWgueSkqdykmJihfKj1nPW4qYVtzXSooKGc9TWF0aC5zcXJ0KGcpKS1pW3NdKS9nLHcqPWcsZC54LT1fKihiPWgud2VpZ2h0K2Qud2VpZ2h0P2gud2VpZ2h0LyhoLndlaWdodCtkLndlaWdodCk6LjUpLGQueS09dypiLGgueCs9XyooYj0xLWIpLGgueSs9dypiKTtpZigoYj1uKm0pJiYoXz1jWzBdLzIsdz1jWzFdLzIscz0tMSxiKSlmb3IoOysrczxUOykoZj12W3NdKS54Kz0oXy1mLngpKmIsZi55Kz0ody1mLnkpKmI7aWYocClmb3IoIWZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBpPTAsYT0wO2lmKGUuY2hhcmdlPTAsIWUubGVhZilmb3IodmFyIG8scz1lLm5vZGVzLGw9cy5sZW5ndGgsYz0tMTsrK2M8bDspbnVsbCE9KG89c1tjXSkmJih0KG8scixuKSxlLmNoYXJnZSs9by5jaGFyZ2UsaSs9by5jaGFyZ2Uqby5jeCxhKz1vLmNoYXJnZSpvLmN5KTtpZihlLnBvaW50KXtlLmxlYWZ8fChlLnBvaW50LngrPU1hdGgucmFuZG9tKCktLjUsZS5wb2ludC55Kz1NYXRoLnJhbmRvbSgpLS41KTt2YXIgdT1yKm5bZS5wb2ludC5pbmRleF07ZS5jaGFyZ2UrPWUucG9pbnRDaGFyZ2U9dSxpKz11KmUucG9pbnQueCxhKz11KmUucG9pbnQueX1lLmN4PWkvZS5jaGFyZ2UsZS5jeT1hL2UuY2hhcmdlfShyPXQuZ2VvbS5xdWFkdHJlZSh2KSxuLG8pLHM9LTE7KytzPFQ7KShmPXZbc10pLmZpeGVkfHxyLnZpc2l0KHgoZikpO2ZvcihzPS0xOysrczxUOykoZj12W3NdKS5maXhlZD8oZi54PWYucHgsZi55PWYucHkpOihmLngtPShmLnB4LShmLnB4PWYueCkpKnUsZi55LT0oZi5weS0oZi5weT1mLnkpKSp1KTtsLnRpY2soe3R5cGU6InRpY2siLGFscGhhOm59KX0scy5ub2Rlcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odj10LHMpOnZ9LHMubGlua3M9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9dCxzKTp5fSxzLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCxzKTpjfSxzLmxpbmtEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Oit0LHMpOmZ9LHMuZGlzdGFuY2U9cy5saW5rRGlzdGFuY2Uscy5saW5rU3RyZW5ndGg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGg9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDordCxzKTpofSxzLmZyaWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PSt0LHMpOnV9LHMuY2hhcmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhwPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6K3Qscyk6cH0scy5jaGFyZ2VEaXN0YW5jZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD10KnQscyk6TWF0aC5zcXJ0KGQpfSxzLmdyYXZpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09K3Qscyk6bX0scy50aGV0YT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZz10KnQscyk6TWF0aC5zcXJ0KGcpfSxzLmFscGhhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSt0LG4/dD4wP249dDooZS5jPW51bGwsZS50PU5hTixlPW51bGwsbC5lbmQoe3R5cGU6ImVuZCIsYWxwaGE6bj0wfSkpOnQ+MCYmKGwuc3RhcnQoe3R5cGU6InN0YXJ0IixhbHBoYTpuPXR9KSxlPXZlKHMudGljaykpLHMpOm59LHMuc3RhcnQ9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbj12Lmxlbmd0aCxsPXkubGVuZ3RoLHU9Y1swXSxkPWNbMV07Zm9yKHQ9MDt0PG47Kyt0KShyPXZbdF0pLmluZGV4PXQsci53ZWlnaHQ9MDtmb3IodD0wO3Q8bDsrK3QpIm51bWJlciI9PXR5cGVvZihyPXlbdF0pLnNvdXJjZSYmKHIuc291cmNlPXZbci5zb3VyY2VdKSwibnVtYmVyIj09dHlwZW9mIHIudGFyZ2V0JiYoci50YXJnZXQ9dltyLnRhcmdldF0pLCsrci5zb3VyY2Uud2VpZ2h0LCsrci50YXJnZXQud2VpZ2h0O2Zvcih0PTA7dDxuOysrdClyPXZbdF0saXNOYU4oci54KSYmKHIueD1tKCJ4Iix1KSksaXNOYU4oci55KSYmKHIueT1tKCJ5IixkKSksaXNOYU4oci5weCkmJihyLnB4PXIueCksaXNOYU4oci5weSkmJihyLnB5PXIueSk7aWYoaT1bXSwiZnVuY3Rpb24iPT10eXBlb2YgZilmb3IodD0wO3Q8bDsrK3QpaVt0XT0rZi5jYWxsKHRoaXMseVt0XSx0KTtlbHNlIGZvcih0PTA7dDxsOysrdClpW3RdPWY7aWYoYT1bXSwiZnVuY3Rpb24iPT10eXBlb2YgaClmb3IodD0wO3Q8bDsrK3QpYVt0XT0raC5jYWxsKHRoaXMseVt0XSx0KTtlbHNlIGZvcih0PTA7dDxsOysrdClhW3RdPWg7aWYobz1bXSwiZnVuY3Rpb24iPT10eXBlb2YgcClmb3IodD0wO3Q8bjsrK3Qpb1t0XT0rcC5jYWxsKHRoaXMsdlt0XSx0KTtlbHNlIGZvcih0PTA7dDxuOysrdClvW3RdPXA7ZnVuY3Rpb24gbShyLGkpe2lmKCFlKXtmb3IoZT1uZXcgQXJyYXkobiksYz0wO2M8bjsrK2MpZVtjXT1bXTtmb3IoYz0wO2M8bDsrK2Mpe3ZhciBhPXlbY107ZVthLnNvdXJjZS5pbmRleF0ucHVzaChhLnRhcmdldCksZVthLnRhcmdldC5pbmRleF0ucHVzaChhLnNvdXJjZSl9fWZvcih2YXIgbyxzPWVbdF0sYz0tMSx1PXMubGVuZ3RoOysrYzx1OylpZighaXNOYU4obz1zW2NdW3JdKSlyZXR1cm4gbztyZXR1cm4gTWF0aC5yYW5kb20oKSppfXJldHVybiBzLnJlc3VtZSgpfSxzLnJlc3VtZT1mdW5jdGlvbigpe3JldHVybiBzLmFscGhhKC4xKX0scy5zdG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHMuYWxwaGEoMCl9LHMuZHJhZz1mdW5jdGlvbigpe2lmKHJ8fChyPXQuYmVoYXZpb3IuZHJhZygpLm9yaWdpbihDKS5vbigiZHJhZ3N0YXJ0LmZvcmNlIixxcikub24oImRyYWcuZm9yY2UiLGIpLm9uKCJkcmFnZW5kLmZvcmNlIixHcikpLCFhcmd1bWVudHMubGVuZ3RoKXJldHVybiByO3RoaXMub24oIm1vdXNlb3Zlci5mb3JjZSIsWXIpLm9uKCJtb3VzZW91dC5mb3JjZSIsV3IpLmNhbGwocil9LHQucmViaW5kKHMsbCwib24iKX07dmFyIFhyPTIwLFpyPTEsSnI9MS8wO2Z1bmN0aW9uIEtyKGUscil7cmV0dXJuIHQucmViaW5kKGUsciwic29ydCIsImNoaWxkcmVuIiwidmFsdWUiKSxlLm5vZGVzPWUsZS5saW5rcz1ubixlfWZ1bmN0aW9uIFFyKHQsZSl7Zm9yKHZhciByPVt0XTtudWxsIT0odD1yLnBvcCgpKTspaWYoZSh0KSwoaT10LmNoaWxkcmVuKSYmKG49aS5sZW5ndGgpKWZvcih2YXIgbixpOy0tbj49MDspci5wdXNoKGlbbl0pfWZ1bmN0aW9uICRyKHQsZSl7Zm9yKHZhciByPVt0XSxuPVtdO251bGwhPSh0PXIucG9wKCkpOylpZihuLnB1c2godCksKGE9dC5jaGlsZHJlbikmJihpPWEubGVuZ3RoKSlmb3IodmFyIGksYSxvPS0xOysrbzxpOylyLnB1c2goYVtvXSk7Zm9yKDtudWxsIT0odD1uLnBvcCgpKTspZSh0KX1mdW5jdGlvbiB0bih0KXtyZXR1cm4gdC5jaGlsZHJlbn1mdW5jdGlvbiBlbih0KXtyZXR1cm4gdC52YWx1ZX1mdW5jdGlvbiBybih0LGUpe3JldHVybiBlLnZhbHVlLXQudmFsdWV9ZnVuY3Rpb24gbm4oZSl7cmV0dXJuIHQubWVyZ2UoZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybih0LmNoaWxkcmVufHxbXSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm57c291cmNlOnQsdGFyZ2V0OmV9fSkpfSkpKX10LmxheW91dC5oaWVyYXJjaHk9ZnVuY3Rpb24oKXt2YXIgdD1ybixlPXRuLHI9ZW47ZnVuY3Rpb24gbihpKXt2YXIgYSxvPVtpXSxzPVtdO2ZvcihpLmRlcHRoPTA7bnVsbCE9KGE9by5wb3AoKSk7KWlmKHMucHVzaChhKSwoYz1lLmNhbGwobixhLGEuZGVwdGgpKSYmKGw9Yy5sZW5ndGgpKXtmb3IodmFyIGwsYyx1Oy0tbD49MDspby5wdXNoKHU9Y1tsXSksdS5wYXJlbnQ9YSx1LmRlcHRoPWEuZGVwdGgrMTtyJiYoYS52YWx1ZT0wKSxhLmNoaWxkcmVuPWN9ZWxzZSByJiYoYS52YWx1ZT0rci5jYWxsKG4sYSxhLmRlcHRoKXx8MCksZGVsZXRlIGEuY2hpbGRyZW47cmV0dXJuICRyKGksKGZ1bmN0aW9uKGUpe3ZhciBuLGk7dCYmKG49ZS5jaGlsZHJlbikmJm4uc29ydCh0KSxyJiYoaT1lLnBhcmVudCkmJihpLnZhbHVlKz1lLnZhbHVlKX0pKSxzfXJldHVybiBuLnNvcnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxuKTp0fSxuLmNoaWxkcmVuPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsbik6ZX0sbi52YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG4pOnJ9LG4ucmV2YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gciYmKFFyKHQsKGZ1bmN0aW9uKHQpe3QuY2hpbGRyZW4mJih0LnZhbHVlPTApfSkpLCRyKHQsKGZ1bmN0aW9uKHQpe3ZhciBlO3QuY2hpbGRyZW58fCh0LnZhbHVlPStyLmNhbGwobix0LHQuZGVwdGgpfHwwKSwoZT10LnBhcmVudCkmJihlLnZhbHVlKz10LnZhbHVlKX0pKSksdH0sbn0sdC5sYXlvdXQucGFydGl0aW9uPWZ1bmN0aW9uKCl7dmFyIGU9dC5sYXlvdXQuaGllcmFyY2h5KCkscj1bMSwxXTtmdW5jdGlvbiBuKHQsbil7dmFyIGk9ZS5jYWxsKHRoaXMsdCxuKTtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpKXt2YXIgYT1lLmNoaWxkcmVuO2lmKGUueD1yLGUueT1lLmRlcHRoKmksZS5keD1uLGUuZHk9aSxhJiYobz1hLmxlbmd0aCkpe3ZhciBvLHMsbCxjPS0xO2ZvcihuPWUudmFsdWU/bi9lLnZhbHVlOjA7KytjPG87KXQocz1hW2NdLHIsbD1zLnZhbHVlKm4saSkscis9bH19KGlbMF0sMCxyWzBdLHJbMV0vZnVuY3Rpb24gdChlKXt2YXIgcj1lLmNoaWxkcmVuLG49MDtpZihyJiYoaT1yLmxlbmd0aCkpZm9yKHZhciBpLGE9LTE7KythPGk7KW49TWF0aC5tYXgobix0KHJbYV0pKTtyZXR1cm4gMStufShpWzBdKSksaX1yZXR1cm4gbi5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sS3IobixlKX0sdC5sYXlvdXQucGllPWZ1bmN0aW9uKCl7dmFyIGU9TnVtYmVyLHI9YW4sbj0wLGk9TXQsYT0wO2Z1bmN0aW9uIG8ocyl7dmFyIGwsYz1zLmxlbmd0aCx1PXMubWFwKChmdW5jdGlvbih0LHIpe3JldHVybitlLmNhbGwobyx0LHIpfSkpLGY9KygiZnVuY3Rpb24iPT10eXBlb2Ygbj9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpuKSxoPSgiZnVuY3Rpb24iPT10eXBlb2YgaT9pLmFwcGx5KHRoaXMsYXJndW1lbnRzKTppKS1mLHA9TWF0aC5taW4oTWF0aC5hYnMoaCkvYywrKCJmdW5jdGlvbiI9PXR5cGVvZiBhP2EuYXBwbHkodGhpcyxhcmd1bWVudHMpOmEpKSxkPXAqKGg8MD8tMToxKSxtPXQuc3VtKHUpLGc9bT8oaC1jKmQpL206MCx2PXQucmFuZ2UoYykseT1bXTtyZXR1cm4gbnVsbCE9ciYmdi5zb3J0KHI9PT1hbj9mdW5jdGlvbih0LGUpe3JldHVybiB1W2VdLXVbdF19OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIoc1t0XSxzW2VdKX0pLHYuZm9yRWFjaCgoZnVuY3Rpb24odCl7eVt0XT17ZGF0YTpzW3RdLHZhbHVlOmw9dVt0XSxzdGFydEFuZ2xlOmYsZW5kQW5nbGU6Zis9bCpnK2QscGFkQW5nbGU6cH19KSkseX1yZXR1cm4gby52YWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LG8pOmV9LG8uc29ydD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LG8pOnJ9LG8uc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LG8pOm59LG8uZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxvKTppfSxvLnBhZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsbyk6YX0sb307dmFyIGFuPXt9O2Z1bmN0aW9uIG9uKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gc24odCl7cmV0dXJuIHQueX1mdW5jdGlvbiBsbih0LGUscil7dC55MD1lLHQueT1yfXQubGF5b3V0LnN0YWNrPWZ1bmN0aW9uKCl7dmFyIGU9QyxyPWZuLG49aG4saT1sbixhPW9uLG89c247ZnVuY3Rpb24gcyhsLGMpe2lmKCEocD1sLmxlbmd0aCkpcmV0dXJuIGw7dmFyIHU9bC5tYXAoKGZ1bmN0aW9uKHQscil7cmV0dXJuIGUuY2FsbChzLHQscil9KSksZj11Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0LGUpe3JldHVyblthLmNhbGwocyx0LGUpLG8uY2FsbChzLHQsZSldfSkpfSkpLGg9ci5jYWxsKHMsZixjKTt1PXQucGVybXV0ZSh1LGgpLGY9dC5wZXJtdXRlKGYsaCk7dmFyIHAsZCxtLGcsdj1uLmNhbGwocyxmLGMpLHk9dVswXS5sZW5ndGg7Zm9yKG09MDttPHk7KyttKWZvcihpLmNhbGwocyx1WzBdW21dLGc9dlttXSxmWzBdW21dWzFdKSxkPTE7ZDxwOysrZClpLmNhbGwocyx1W2RdW21dLGcrPWZbZC0xXVttXVsxXSxmW2RdW21dWzFdKTtyZXR1cm4gbH1yZXR1cm4gcy52YWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCxzKTplfSxzLm9yZGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6Y24uZ2V0KHQpfHxmbixzKTpyfSxzLm9mZnNldD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnVuLmdldCh0KXx8aG4scyk6bn0scy54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQscyk6YX0scy55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPXQscyk6b30scy5vdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxzKTppfSxzfTt2YXIgY249dC5tYXAoeyJpbnNpZGUtb3V0IjpmdW5jdGlvbihlKXt2YXIgcixuLGk9ZS5sZW5ndGgsYT1lLm1hcChwbiksbz1lLm1hcChkbikscz10LnJhbmdlKGkpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGFbdF0tYVtlXX0pKSxsPTAsYz0wLHU9W10sZj1bXTtmb3Iocj0wO3I8aTsrK3Ipbj1zW3JdLGw8Yz8obCs9b1tuXSx1LnB1c2gobikpOihjKz1vW25dLGYucHVzaChuKSk7cmV0dXJuIGYucmV2ZXJzZSgpLmNvbmNhdCh1KX0scmV2ZXJzZTpmdW5jdGlvbihlKXtyZXR1cm4gdC5yYW5nZShlLmxlbmd0aCkucmV2ZXJzZSgpfSxkZWZhdWx0OmZufSksdW49dC5tYXAoe3NpbGhvdWV0dGU6ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9dC5sZW5ndGgsYT10WzBdLmxlbmd0aCxvPVtdLHM9MCxsPVtdO2ZvcihyPTA7cjxhOysrcil7Zm9yKGU9MCxuPTA7ZTxpO2UrKyluKz10W2VdW3JdWzFdO24+cyYmKHM9biksby5wdXNoKG4pfWZvcihyPTA7cjxhOysrcilsW3JdPShzLW9bcl0pLzI7cmV0dXJuIGx9LHdpZ2dsZTpmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scyxsLGMsdT10Lmxlbmd0aCxmPXRbMF0saD1mLmxlbmd0aCxwPVtdO2ZvcihwWzBdPWw9Yz0wLHI9MTtyPGg7KytyKXtmb3IoZT0wLGk9MDtlPHU7KytlKWkrPXRbZV1bcl1bMV07Zm9yKGU9MCxhPTAscz1mW3JdWzBdLWZbci0xXVswXTtlPHU7KytlKXtmb3Iobj0wLG89KHRbZV1bcl1bMV0tdFtlXVtyLTFdWzFdKS8oMipzKTtuPGU7KytuKW8rPSh0W25dW3JdWzFdLXRbbl1bci0xXVsxXSkvczthKz1vKnRbZV1bcl1bMV19cFtyXT1sLT1pP2EvaSpzOjAsbDxjJiYoYz1sKX1mb3Iocj0wO3I8aDsrK3IpcFtyXS09YztyZXR1cm4gcH0sZXhwYW5kOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPXQubGVuZ3RoLGE9dFswXS5sZW5ndGgsbz0xL2kscz1bXTtmb3Iocj0wO3I8YTsrK3Ipe2ZvcihlPTAsbj0wO2U8aTtlKyspbis9dFtlXVtyXVsxXTtpZihuKWZvcihlPTA7ZTxpO2UrKyl0W2VdW3JdWzFdLz1uO2Vsc2UgZm9yKGU9MDtlPGk7ZSsrKXRbZV1bcl1bMV09b31mb3Iocj0wO3I8YTsrK3Ipc1tyXT0wO3JldHVybiBzfSx6ZXJvOmhufSk7ZnVuY3Rpb24gZm4oZSl7cmV0dXJuIHQucmFuZ2UoZS5sZW5ndGgpfWZ1bmN0aW9uIGhuKHQpe2Zvcih2YXIgZT0tMSxyPXRbMF0ubGVuZ3RoLG49W107KytlPHI7KW5bZV09MDtyZXR1cm4gbn1mdW5jdGlvbiBwbih0KXtmb3IodmFyIGUscj0xLG49MCxpPXRbMF1bMV0sYT10Lmxlbmd0aDtyPGE7KytyKShlPXRbcl1bMV0pPmkmJihuPXIsaT1lKTtyZXR1cm4gbn1mdW5jdGlvbiBkbih0KXtyZXR1cm4gdC5yZWR1Y2UobW4sMCl9ZnVuY3Rpb24gbW4odCxlKXtyZXR1cm4gdCtlWzFdfWZ1bmN0aW9uIGduKHQsZSl7cmV0dXJuIHZuKHQsTWF0aC5jZWlsKE1hdGgubG9nKGUubGVuZ3RoKS9NYXRoLkxOMisxKSl9ZnVuY3Rpb24gdm4odCxlKXtmb3IodmFyIHI9LTEsbj0rdFswXSxpPSh0WzFdLW4pL2UsYT1bXTsrK3I8PWU7KWFbcl09aSpyK247cmV0dXJuIGF9ZnVuY3Rpb24geW4oZSl7cmV0dXJuW3QubWluKGUpLHQubWF4KGUpXX1mdW5jdGlvbiB4bih0LGUpe3JldHVybiB0LnZhbHVlLWUudmFsdWV9ZnVuY3Rpb24gYm4odCxlKXt2YXIgcj10Ll9wYWNrX25leHQ7dC5fcGFja19uZXh0PWUsZS5fcGFja19wcmV2PXQsZS5fcGFja19uZXh0PXIsci5fcGFja19wcmV2PWV9ZnVuY3Rpb24gX24odCxlKXt0Ll9wYWNrX25leHQ9ZSxlLl9wYWNrX3ByZXY9dH1mdW5jdGlvbiB3bih0LGUpe3ZhciByPWUueC10Lngsbj1lLnktdC55LGk9dC5yK2UucjtyZXR1cm4uOTk5KmkqaT5yKnIrbipufWZ1bmN0aW9uIFRuKHQpe2lmKChlPXQuY2hpbGRyZW4pJiYobD1lLmxlbmd0aCkpe3ZhciBlLHIsbixpLGEsbyxzLGwsYz0xLzAsdT0tMS8wLGY9MS8wLGg9LTEvMDtpZihlLmZvckVhY2goa24pLChyPWVbMF0pLng9LXIucixyLnk9MCx4KHIpLGw+MSYmKChuPWVbMV0pLng9bi5yLG4ueT0wLHgobiksbD4yKSlmb3IoTW4ocixuLGk9ZVsyXSkseChpKSxibihyLGkpLHIuX3BhY2tfcHJldj1pLGJuKGksbiksbj1yLl9wYWNrX25leHQsYT0zO2E8bDthKyspe01uKHIsbixpPWVbYV0pO3ZhciBwPTAsZD0xLG09MTtmb3Iobz1uLl9wYWNrX25leHQ7byE9PW47bz1vLl9wYWNrX25leHQsZCsrKWlmKHduKG8saSkpe3A9MTticmVha31pZigxPT1wKWZvcihzPXIuX3BhY2tfcHJldjtzIT09by5fcGFja19wcmV2JiYhd24ocyxpKTtzPXMuX3BhY2tfcHJldixtKyspO3A/KGQ8bXx8ZD09bSYmbi5yPHIucj9fbihyLG49byk6X24ocj1zLG4pLGEtLSk6KGJuKHIsaSksbj1pLHgoaSkpfXZhciBnPShjK3UpLzIsdj0oZitoKS8yLHk9MDtmb3IoYT0wO2E8bDthKyspKGk9ZVthXSkueC09ZyxpLnktPXYseT1NYXRoLm1heCh5LGkucitNYXRoLnNxcnQoaS54KmkueCtpLnkqaS55KSk7dC5yPXksZS5mb3JFYWNoKEFuKX1mdW5jdGlvbiB4KHQpe2M9TWF0aC5taW4odC54LXQucixjKSx1PU1hdGgubWF4KHQueCt0LnIsdSksZj1NYXRoLm1pbih0LnktdC5yLGYpLGg9TWF0aC5tYXgodC55K3QucixoKX19ZnVuY3Rpb24ga24odCl7dC5fcGFja19uZXh0PXQuX3BhY2tfcHJldj10fWZ1bmN0aW9uIEFuKHQpe2RlbGV0ZSB0Ll9wYWNrX25leHQsZGVsZXRlIHQuX3BhY2tfcHJldn1mdW5jdGlvbiBNbih0LGUscil7dmFyIG49dC5yK3IucixpPWUueC10LngsYT1lLnktdC55O2lmKG4mJihpfHxhKSl7dmFyIG89ZS5yK3IucixzPWkqaSthKmEsbD0uNSsoKG4qPW4pLShvKj1vKSkvKDIqcyksYz1NYXRoLnNxcnQoTWF0aC5tYXgoMCwyKm8qKG4rcyktKG4tPXMpKm4tbypvKSkvKDIqcyk7ci54PXQueCtsKmkrYyphLHIueT10LnkrbCphLWMqaX1lbHNlIHIueD10LngrbixyLnk9dC55fWZ1bmN0aW9uIFNuKHQsZSl7cmV0dXJuIHQucGFyZW50PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gRW4odCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZS5sZW5ndGg/ZVswXTp0LnR9ZnVuY3Rpb24gTG4odCl7dmFyIGUscj10LmNoaWxkcmVuO3JldHVybihlPXIubGVuZ3RoKT9yW2UtMV06dC50fWZ1bmN0aW9uIENuKHQsZSxyKXt2YXIgbj1yLyhlLmktdC5pKTtlLmMtPW4sZS5zKz1yLHQuYys9bixlLnorPXIsZS5tKz1yfWZ1bmN0aW9uIFBuKHQsZSxyKXtyZXR1cm4gdC5hLnBhcmVudD09PWUucGFyZW50P3QuYTpyfWZ1bmN0aW9uIEluKHQpe3JldHVybnt4OnQueCx5OnQueSxkeDp0LmR4LGR5OnQuZHl9fWZ1bmN0aW9uIE9uKHQsZSl7dmFyIHI9dC54K2VbM10sbj10LnkrZVswXSxpPXQuZHgtZVsxXS1lWzNdLGE9dC5keS1lWzBdLWVbMl07cmV0dXJuIGk8MCYmKHIrPWkvMixpPTApLGE8MCYmKG4rPWEvMixhPTApLHt4OnIseTpuLGR4OmksZHk6YX19ZnVuY3Rpb24gem4odCl7dmFyIGU9dFswXSxyPXRbdC5sZW5ndGgtMV07cmV0dXJuIGU8cj9bZSxyXTpbcixlXX1mdW5jdGlvbiBEbih0KXtyZXR1cm4gdC5yYW5nZUV4dGVudD90LnJhbmdlRXh0ZW50KCk6em4odC5yYW5nZSgpKX1mdW5jdGlvbiBSbih0LGUscixuKXt2YXIgaT1yKHRbMF0sdFsxXSksYT1uKGVbMF0sZVsxXSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBhKGkodCkpfX1mdW5jdGlvbiBGbih0LGUpe3ZhciByLG49MCxpPXQubGVuZ3RoLTEsYT10W25dLG89dFtpXTtyZXR1cm4gbzxhJiYocj1uLG49aSxpPXIscj1hLGE9byxvPXIpLHRbbl09ZS5mbG9vcihhKSx0W2ldPWUuY2VpbChvKSx0fWZ1bmN0aW9uIEJuKHQpe3JldHVybiB0P3tmbG9vcjpmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5mbG9vcihlL3QpKnR9LGNlaWw6ZnVuY3Rpb24oZSl7cmV0dXJuIE1hdGguY2VpbChlL3QpKnR9fTpObn10LmxheW91dC5oaXN0b2dyYW09ZnVuY3Rpb24oKXt2YXIgZT0hMCxyPU51bWJlcixuPXluLGk9Z247ZnVuY3Rpb24gYShhLG8pe2Zvcih2YXIgcyxsLGM9W10sdT1hLm1hcChyLHRoaXMpLGY9bi5jYWxsKHRoaXMsdSxvKSxoPWkuY2FsbCh0aGlzLGYsdSxvKSxwPShvPS0xLHUubGVuZ3RoKSxkPWgubGVuZ3RoLTEsbT1lPzE6MS9wOysrbzxkOykocz1jW29dPVtdKS5keD1oW28rMV0tKHMueD1oW29dKSxzLnk9MDtpZihkPjApZm9yKG89LTE7KytvPHA7KShsPXVbb10pPj1mWzBdJiZsPD1mWzFdJiYoKHM9Y1t0LmJpc2VjdChoLGwsMSxkKS0xXSkueSs9bSxzLnB1c2goYVtvXSkpO3JldHVybiBjfXJldHVybiBhLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsYSk6cn0sYS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1jZSh0KSxhKTpufSxhLmJpbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9Im51bWJlciI9PXR5cGVvZiB0P2Z1bmN0aW9uKGUpe3JldHVybiB2bihlLHQpfTpjZSh0KSxhKTppfSxhLmZyZXF1ZW5jeT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0hIXQsYSk6ZX0sYX0sdC5sYXlvdXQucGFjaz1mdW5jdGlvbigpe3ZhciBlLHI9dC5sYXlvdXQuaGllcmFyY2h5KCkuc29ydCh4biksbj0wLGk9WzEsMV07ZnVuY3Rpb24gYSh0LGEpe3ZhciBvPXIuY2FsbCh0aGlzLHQsYSkscz1vWzBdLGw9aVswXSxjPWlbMV0sdT1udWxsPT1lP01hdGguc3FydDoiZnVuY3Rpb24iPT10eXBlb2YgZT9lOmZ1bmN0aW9uKCl7cmV0dXJuIGV9O2lmKHMueD1zLnk9MCwkcihzLChmdW5jdGlvbih0KXt0LnI9K3UodC52YWx1ZSl9KSksJHIocyxUbiksbil7dmFyIGY9biooZT8xOk1hdGgubWF4KDIqcy5yL2wsMipzLnIvYykpLzI7JHIocywoZnVuY3Rpb24odCl7dC5yKz1mfSkpLCRyKHMsVG4pLCRyKHMsKGZ1bmN0aW9uKHQpe3Quci09Zn0pKX1yZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpKXt2YXIgYT1lLmNoaWxkcmVuO2lmKGUueD1yKz1pKmUueCxlLnk9bis9aSplLnksZS5yKj1pLGEpZm9yKHZhciBvPS0xLHM9YS5sZW5ndGg7KytvPHM7KXQoYVtvXSxyLG4saSl9KHMsbC8yLGMvMixlPzE6MS9NYXRoLm1heCgyKnMuci9sLDIqcy5yL2MpKSxvfXJldHVybiBhLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9dCxhKTppfSxhLnJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10fHwiZnVuY3Rpb24iPT10eXBlb2YgdD90Oit0LGEpOmV9LGEucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rdCxhKTpufSxLcihhLHIpfSx0LmxheW91dC50cmVlPWZ1bmN0aW9uKCl7dmFyIGU9dC5sYXlvdXQuaGllcmFyY2h5KCkuc29ydChudWxsKS52YWx1ZShudWxsKSxyPVNuLG49WzEsMV0saT1udWxsO2Z1bmN0aW9uIGEodCxhKXt2YXIgYz1lLmNhbGwodGhpcyx0LGEpLHU9Y1swXSxmPWZ1bmN0aW9uKHQpe3ZhciBlLHI9e0E6bnVsbCxjaGlsZHJlbjpbdF19LG49W3JdO2Zvcig7bnVsbCE9KGU9bi5wb3AoKSk7KWZvcih2YXIgaSxhPWUuY2hpbGRyZW4sbz0wLHM9YS5sZW5ndGg7bzxzOysrbyluLnB1c2goKGFbb109aT17XzphW29dLHBhcmVudDplLGNoaWxkcmVuOihpPWFbb10uY2hpbGRyZW4pJiZpLnNsaWNlKCl8fFtdLEE6bnVsbCxhOm51bGwsejowLG06MCxjOjAsczowLHQ6bnVsbCxpOm99KS5hPWkpO3JldHVybiByLmNoaWxkcmVuWzBdfSh1KTtpZigkcihmLG8pLGYucGFyZW50Lm09LWYueixRcihmLHMpLGkpUXIodSxsKTtlbHNle3ZhciBoPXUscD11LGQ9dTtRcih1LChmdW5jdGlvbih0KXt0Lng8aC54JiYoaD10KSx0Lng+cC54JiYocD10KSx0LmRlcHRoPmQuZGVwdGgmJihkPXQpfSkpO3ZhciBtPXIoaCxwKS8yLWgueCxnPW5bMF0vKHAueCtyKHAsaCkvMittKSx2PW5bMV0vKGQuZGVwdGh8fDEpO1FyKHUsKGZ1bmN0aW9uKHQpe3QueD0odC54K20pKmcsdC55PXQuZGVwdGgqdn0pKX1yZXR1cm4gY31mdW5jdGlvbiBvKHQpe3ZhciBlPXQuY2hpbGRyZW4sbj10LnBhcmVudC5jaGlsZHJlbixpPXQuaT9uW3QuaS0xXTpudWxsO2lmKGUubGVuZ3RoKXshZnVuY3Rpb24odCl7dmFyIGUscj0wLG49MCxpPXQuY2hpbGRyZW4sYT1pLmxlbmd0aDtmb3IoOy0tYT49MDspKGU9aVthXSkueis9cixlLm0rPXIscis9ZS5zKyhuKz1lLmMpfSh0KTt2YXIgYT0oZVswXS56K2VbZS5sZW5ndGgtMV0ueikvMjtpPyh0Lno9aS56K3IodC5fLGkuXyksdC5tPXQuei1hKTp0Lno9YX1lbHNlIGkmJih0Lno9aS56K3IodC5fLGkuXykpO3QucGFyZW50LkE9ZnVuY3Rpb24odCxlLG4pe2lmKGUpe2Zvcih2YXIgaSxhPXQsbz10LHM9ZSxsPWEucGFyZW50LmNoaWxkcmVuWzBdLGM9YS5tLHU9by5tLGY9cy5tLGg9bC5tO3M9TG4ocyksYT1FbihhKSxzJiZhOylsPUVuKGwpLChvPUxuKG8pKS5hPXQsKGk9cy56K2YtYS56LWMrcihzLl8sYS5fKSk+MCYmKENuKFBuKHMsdCxuKSx0LGkpLGMrPWksdSs9aSksZis9cy5tLGMrPWEubSxoKz1sLm0sdSs9by5tO3MmJiFMbihvKSYmKG8udD1zLG8ubSs9Zi11KSxhJiYhRW4obCkmJihsLnQ9YSxsLm0rPWMtaCxuPXQpfXJldHVybiBufSh0LGksdC5wYXJlbnQuQXx8blswXSl9ZnVuY3Rpb24gcyh0KXt0Ll8ueD10LnordC5wYXJlbnQubSx0Lm0rPXQucGFyZW50Lm19ZnVuY3Rpb24gbCh0KXt0LngqPW5bMF0sdC55PXQuZGVwdGgqblsxXX1yZXR1cm4gYS5zZXBhcmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsYSk6cn0sYS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PShuPXQpP2w6bnVsbCxhKTppP251bGw6bn0sYS5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1udWxsPT0obj10KT9udWxsOmwsYSk6aT9uOm51bGx9LEtyKGEsZSl9LHQubGF5b3V0LmNsdXN0ZXI9ZnVuY3Rpb24oKXt2YXIgZT10LmxheW91dC5oaWVyYXJjaHkoKS5zb3J0KG51bGwpLnZhbHVlKG51bGwpLHI9U24sbj1bMSwxXSxpPSExO2Z1bmN0aW9uIGEoYSxvKXt2YXIgcyxsPWUuY2FsbCh0aGlzLGEsbyksYz1sWzBdLHU9MDskcihjLChmdW5jdGlvbihlKXt2YXIgbj1lLmNoaWxkcmVuO24mJm4ubGVuZ3RoPyhlLng9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K2UueH0pLDApL3QubGVuZ3RofShuKSxlLnk9ZnVuY3Rpb24oZSl7cmV0dXJuIDErdC5tYXgoZSwoZnVuY3Rpb24odCl7cmV0dXJuIHQueX0pKX0obikpOihlLng9cz91Kz1yKGUscyk6MCxlLnk9MCxzPWUpfSkpO3ZhciBmPWZ1bmN0aW9uIHQoZSl7dmFyIHI9ZS5jaGlsZHJlbjtyZXR1cm4gciYmci5sZW5ndGg/dChyWzBdKTplfShjKSxoPWZ1bmN0aW9uIHQoZSl7dmFyIHIsbj1lLmNoaWxkcmVuO3JldHVybiBuJiYocj1uLmxlbmd0aCk/dChuW3ItMV0pOmV9KGMpLHA9Zi54LXIoZixoKS8yLGQ9aC54K3IoaCxmKS8yO3JldHVybiAkcihjLGk/ZnVuY3Rpb24odCl7dC54PSh0LngtYy54KSpuWzBdLHQueT0oYy55LXQueSkqblsxXX06ZnVuY3Rpb24odCl7dC54PSh0LngtcCkvKGQtcCkqblswXSx0Lnk9KDEtKGMueT90LnkvYy55OjEpKSpuWzFdfSksbH1yZXR1cm4gYS5zZXBhcmF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsYSk6cn0sYS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGw9PShuPXQpLGEpOmk/bnVsbDpufSxhLm5vZGVTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPW51bGwhPShuPXQpLGEpOmk/bjpudWxsfSxLcihhLGUpfSx0LmxheW91dC50cmVlbWFwPWZ1bmN0aW9uKCl7dmFyIGUscj10LmxheW91dC5oaWVyYXJjaHkoKSxuPU1hdGgucm91bmQsaT1bMSwxXSxhPW51bGwsbz1JbixzPSExLGw9InNxdWFyaWZ5IixjPS41KigxK01hdGguc3FydCg1KSk7ZnVuY3Rpb24gdSh0LGUpe2Zvcih2YXIgcixuLGk9LTEsYT10Lmxlbmd0aDsrK2k8YTspbj0ocj10W2ldKS52YWx1ZSooZTwwPzA6ZSksci5hcmVhPWlzTmFOKG4pfHxuPD0wPzA6bn1mdW5jdGlvbiBmKHQpe3ZhciBlPXQuY2hpbGRyZW47aWYoZSYmZS5sZW5ndGgpe3ZhciByLG4saSxhPW8odCkscz1bXSxjPWUuc2xpY2UoKSxoPTEvMCxtPSJzbGljZSI9PT1sP2EuZHg6ImRpY2UiPT09bD9hLmR5OiJzbGljZS1kaWNlIj09PWw/MSZ0LmRlcHRoP2EuZHk6YS5keDpNYXRoLm1pbihhLmR4LGEuZHkpO2Zvcih1KGMsYS5keCphLmR5L3QudmFsdWUpLHMuYXJlYT0wOyhpPWMubGVuZ3RoKT4wOylzLnB1c2gocj1jW2ktMV0pLHMuYXJlYSs9ci5hcmVhLCJzcXVhcmlmeSIhPT1sfHwobj1wKHMsbSkpPD1oPyhjLnBvcCgpLGg9bik6KHMuYXJlYS09cy5wb3AoKS5hcmVhLGQocyxtLGEsITEpLG09TWF0aC5taW4oYS5keCxhLmR5KSxzLmxlbmd0aD1zLmFyZWE9MCxoPTEvMCk7cy5sZW5ndGgmJihkKHMsbSxhLCEwKSxzLmxlbmd0aD1zLmFyZWE9MCksZS5mb3JFYWNoKGYpfX1mdW5jdGlvbiBoKHQpe3ZhciBlPXQuY2hpbGRyZW47aWYoZSYmZS5sZW5ndGgpe3ZhciByLG49byh0KSxpPWUuc2xpY2UoKSxhPVtdO2Zvcih1KGksbi5keCpuLmR5L3QudmFsdWUpLGEuYXJlYT0wO3I9aS5wb3AoKTspYS5wdXNoKHIpLGEuYXJlYSs9ci5hcmVhLG51bGwhPXIueiYmKGQoYSxyLno/bi5keDpuLmR5LG4sIWkubGVuZ3RoKSxhLmxlbmd0aD1hLmFyZWE9MCk7ZS5mb3JFYWNoKGgpfX1mdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByLG49dC5hcmVhLGk9MCxhPTEvMCxvPS0xLHM9dC5sZW5ndGg7KytvPHM7KShyPXRbb10uYXJlYSkmJihyPGEmJihhPXIpLHI+aSYmKGk9cikpO3JldHVybiBlKj1lLChuKj1uKT9NYXRoLm1heChlKmkqYy9uLG4vKGUqYSpjKSk6MS8wfWZ1bmN0aW9uIGQodCxlLHIsaSl7dmFyIGEsbz0tMSxzPXQubGVuZ3RoLGw9ci54LGM9ci55LHU9ZT9uKHQuYXJlYS9lKTowO2lmKGU9PXIuZHgpe2ZvcigoaXx8dT5yLmR5KSYmKHU9ci5keSk7KytvPHM7KShhPXRbb10pLng9bCxhLnk9YyxhLmR5PXUsbCs9YS5keD1NYXRoLm1pbihyLngrci5keC1sLHU/bihhLmFyZWEvdSk6MCk7YS56PSEwLGEuZHgrPXIueCtyLmR4LWwsci55Kz11LHIuZHktPXV9ZWxzZXtmb3IoKGl8fHU+ci5keCkmJih1PXIuZHgpOysrbzxzOykoYT10W29dKS54PWwsYS55PWMsYS5keD11LGMrPWEuZHk9TWF0aC5taW4oci55K3IuZHktYyx1P24oYS5hcmVhL3UpOjApO2Euej0hMSxhLmR5Kz1yLnkrci5keS1jLHIueCs9dSxyLmR4LT11fX1mdW5jdGlvbiBtKHQpe3ZhciBuPWV8fHIodCksYT1uWzBdO3JldHVybiBhLng9YS55PTAsYS52YWx1ZT8oYS5keD1pWzBdLGEuZHk9aVsxXSk6YS5keD1hLmR5PTAsZSYmci5yZXZhbHVlKGEpLHUoW2FdLGEuZHgqYS5keS9hLnZhbHVlKSwoZT9oOmYpKGEpLHMmJihlPW4pLG59cmV0dXJuIG0uc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10LG0pOml9LG0ucGFkZGluZz1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gYTtmdW5jdGlvbiBlKGUpe3ZhciByPXQuY2FsbChtLGUsZS5kZXB0aCk7cmV0dXJuIG51bGw9PXI/SW4oZSk6T24oZSwibnVtYmVyIj09dHlwZW9mIHI/W3IscixyLHJdOnIpfWZ1bmN0aW9uIHIoZSl7cmV0dXJuIE9uKGUsdCl9dmFyIG47cmV0dXJuIG89bnVsbD09KGE9dCk/SW46ImZ1bmN0aW9uIj09KG49dHlwZW9mIHQpP2U6Im51bWJlciI9PT1uPyh0PVt0LHQsdCx0XSxyKTpyLG19LG0ucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dD9NYXRoLnJvdW5kOk51bWJlcixtKTpuIT1OdW1iZXJ9LG0uc3RpY2t5PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPXQsZT1udWxsLG0pOnN9LG0ucmF0aW89ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCxtKTpjfSxtLm1vZGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9dCsiIixtKTpsfSxLcihtLHIpfSx0LnJhbmRvbT17bm9ybWFsOmZ1bmN0aW9uKHQsZSl7dmFyIHI9YXJndW1lbnRzLmxlbmd0aDtyZXR1cm4gcjwyJiYoZT0xKSxyPDEmJih0PTApLGZ1bmN0aW9uKCl7dmFyIHIsbixpO2Rve2k9KHI9MipNYXRoLnJhbmRvbSgpLTEpKnIrKG49MipNYXRoLnJhbmRvbSgpLTEpKm59d2hpbGUoIWl8fGk+MSk7cmV0dXJuIHQrZSpyKk1hdGguc3FydCgtMipNYXRoLmxvZyhpKS9pKX19LGxvZ05vcm1hbDpmdW5jdGlvbigpe3ZhciBlPXQucmFuZG9tLm5vcm1hbC5hcHBseSh0LGFyZ3VtZW50cyk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguZXhwKGUoKSl9fSxiYXRlczpmdW5jdGlvbihlKXt2YXIgcj10LnJhbmRvbS5pcndpbkhhbGwoZSk7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHIoKS9lfX0saXJ3aW5IYWxsOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT0wLHI9MDtyPHQ7cisrKWUrPU1hdGgucmFuZG9tKCk7cmV0dXJuIGV9fX0sdC5zY2FsZT17fTt2YXIgTm49e2Zsb29yOkMsY2VpbDpDfTtmdW5jdGlvbiBqbihlLHIsbixpKXt2YXIgYT1bXSxvPVtdLHM9MCxsPU1hdGgubWluKGUubGVuZ3RoLHIubGVuZ3RoKS0xO2ZvcihlW2xdPGVbMF0mJihlPWUuc2xpY2UoKS5yZXZlcnNlKCkscj1yLnNsaWNlKCkucmV2ZXJzZSgpKTsrK3M8PWw7KWEucHVzaChuKGVbcy0xXSxlW3NdKSksby5wdXNoKGkocltzLTFdLHJbc10pKTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49dC5iaXNlY3QoZSxyLDEsbCktMTtyZXR1cm4gb1tuXShhW25dKHIpKX19ZnVuY3Rpb24gVW4oZSxyKXtyZXR1cm4gdC5yZWJpbmQoZSxyLCJyYW5nZSIsInJhbmdlUm91bmQiLCJpbnRlcnBvbGF0ZSIsImNsYW1wIil9ZnVuY3Rpb24gVm4odCxlKXtyZXR1cm4gRm4odCxCbihIbih0LGUpWzJdKSksRm4odCxCbihIbih0LGUpWzJdKSksdH1mdW5jdGlvbiBIbih0LGUpe251bGw9PWUmJihlPTEwKTt2YXIgcj16bih0KSxuPXJbMV0tclswXSxpPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cobi9lKS9NYXRoLkxOMTApKSxhPWUvbippO3JldHVybiBhPD0uMTU/aSo9MTA6YTw9LjM1P2kqPTU6YTw9Ljc1JiYoaSo9MiksclswXT1NYXRoLmNlaWwoclswXS9pKSppLHJbMV09TWF0aC5mbG9vcihyWzFdL2kpKmkrLjUqaSxyWzJdPWkscn1mdW5jdGlvbiBxbihlLHIpe3JldHVybiB0LnJhbmdlLmFwcGx5KHQsSG4oZSxyKSl9dC5zY2FsZS5saW5lYXI9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpKXt2YXIgYSxvO2Z1bmN0aW9uIHMoKXt2YXIgdD1NYXRoLm1pbihlLmxlbmd0aCxyLmxlbmd0aCk+Mj9qbjpSbixzPWk/VXI6anI7cmV0dXJuIGE9dChlLHIscyxuKSxvPXQocixlLHMseXIpLGx9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gYSh0KX1yZXR1cm4gbC5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8odCl9LGwuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQubWFwKE51bWJlcikscygpKTplfSxsLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQscygpKTpyfSxsLnJhbmdlUm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwucmFuZ2UodCkuaW50ZXJwb2xhdGUoT3IpfSxsLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQscygpKTppfSxsLmludGVycG9sYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscygpKTpufSxsLnRpY2tzPWZ1bmN0aW9uKHQpe3JldHVybiBxbihlLHQpfSxsLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZDNfc2NhbGVfbGluZWFyVGlja0Zvcm1hdChlLHQscil9LGwubmljZT1mdW5jdGlvbih0KXtyZXR1cm4gVm4oZSx0KSxzKCl9LGwuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUscixuLGkpfSxzKCl9KFswLDFdLFswLDFdLHlyLCExKX07dC5zY2FsZS5sb2c9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbixpKXtmdW5jdGlvbiBhKHQpe3JldHVybihuP01hdGgubG9nKHQ8MD8wOnQpOi1NYXRoLmxvZyh0PjA/MDotdCkpL01hdGgubG9nKHIpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIG4/TWF0aC5wb3cocix0KTotTWF0aC5wb3cociwtdCl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZShhKHQpKX1yZXR1cm4gcy5pbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG8oZS5pbnZlcnQodCkpfSxzLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10WzBdPj0wLGUuZG9tYWluKChpPXQubWFwKE51bWJlcikpLm1hcChhKSkscyk6aX0scy5iYXNlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPSt0LGUuZG9tYWluKGkubWFwKGEpKSxzKTpyfSxzLm5pY2U9ZnVuY3Rpb24oKXt2YXIgdD1GbihpLm1hcChhKSxuP01hdGg6R24pO3JldHVybiBlLmRvbWFpbih0KSxpPXQubWFwKG8pLHN9LHMudGlja3M9ZnVuY3Rpb24oKXt2YXIgdD16bihpKSxlPVtdLHM9dFswXSxsPXRbMV0sYz1NYXRoLmZsb29yKGEocykpLHU9TWF0aC5jZWlsKGEobCkpLGY9ciUxPzI6cjtpZihpc0Zpbml0ZSh1LWMpKXtpZihuKXtmb3IoO2M8dTtjKyspZm9yKHZhciBoPTE7aDxmO2grKyllLnB1c2gobyhjKSpoKTtlLnB1c2gobyhjKSl9ZWxzZSBmb3IoZS5wdXNoKG8oYykpO2MrKzx1Oylmb3IoaD1mLTE7aD4wO2gtLSllLnB1c2gobyhjKSpoKTtmb3IoYz0wO2VbY108cztjKyspO2Zvcih1PWUubGVuZ3RoO2VbdS0xXT5sO3UtLSk7ZT1lLnNsaWNlKGMsdSl9cmV0dXJuIGV9LHMuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUuY29weSgpLHIsbixpKX0sVW4ocyxlKX0odC5zY2FsZS5saW5lYXIoKS5kb21haW4oWzAsMV0pLDEwLCEwLFsxLDEwXSl9O3ZhciBHbj17Zmxvb3I6ZnVuY3Rpb24odCl7cmV0dXJuLU1hdGguY2VpbCgtdCl9LGNlaWw6ZnVuY3Rpb24odCl7cmV0dXJuLU1hdGguZmxvb3IoLXQpfX07ZnVuY3Rpb24gWW4odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBlPDA/LU1hdGgucG93KC1lLHQpOk1hdGgucG93KGUsdCl9fXQuc2NhbGUucG93PWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIHQoZSxyLG4pe3ZhciBpPVluKHIpLGE9WW4oMS9yKTtmdW5jdGlvbiBvKHQpe3JldHVybiBlKGkodCkpfXJldHVybiBvLmludmVydD1mdW5jdGlvbih0KXtyZXR1cm4gYShlLmludmVydCh0KSl9LG8uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlLmRvbWFpbigobj10Lm1hcChOdW1iZXIpKS5tYXAoaSkpLG8pOm59LG8udGlja3M9ZnVuY3Rpb24odCl7cmV0dXJuIHFuKG4sdCl9LG8udGlja0Zvcm1hdD1mdW5jdGlvbih0LGUpe3JldHVybiBkM19zY2FsZV9saW5lYXJUaWNrRm9ybWF0KG4sdCxlKX0sby5uaWNlPWZ1bmN0aW9uKHQpe3JldHVybiBvLmRvbWFpbihWbihuLHQpKX0sby5leHBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1ZbihyPXQpLGE9WW4oMS9yKSxlLmRvbWFpbihuLm1hcChpKSksbyk6cn0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoZS5jb3B5KCkscixuKX0sVW4obyxlKX0odC5zY2FsZS5saW5lYXIoKSwxLFswLDFdKX0sdC5zY2FsZS5zcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIHQuc2NhbGUucG93KCkuZXhwb25lbnQoLjUpfSx0LnNjYWxlLm9yZGluYWw9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gZShyLG4pe3ZhciBpLGEsbztmdW5jdGlvbiBzKHQpe3JldHVybiBhWygoaS5nZXQodCl8fCgicmFuZ2UiPT09bi50P2kuc2V0KHQsci5wdXNoKHQpKTpOYU4pKS0xKSVhLmxlbmd0aF19ZnVuY3Rpb24gbChlLG4pe3JldHVybiB0LnJhbmdlKHIubGVuZ3RoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlK24qdH0pKX1yZXR1cm4gcy5kb21haW49ZnVuY3Rpb24odCl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHI7cj1bXSxpPW5ldyBfO2Zvcih2YXIgZSxhPS0xLG89dC5sZW5ndGg7KythPG87KWkuaGFzKGU9dFthXSl8fGkuc2V0KGUsci5wdXNoKGUpKTtyZXR1cm4gc1tuLnRdLmFwcGx5KHMsbi5hKX0scy5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYT10LG89MCxuPXt0OiJyYW5nZSIsYTphcmd1bWVudHN9LHMpOmF9LHMucmFuZ2VQb2ludHM9ZnVuY3Rpb24odCxlKXthcmd1bWVudHMubGVuZ3RoPDImJihlPTApO3ZhciBpPXRbMF0sYz10WzFdLHU9ci5sZW5ndGg8Mj8oaT0oaStjKS8yLDApOihjLWkpLyhyLmxlbmd0aC0xK2UpO3JldHVybiBhPWwoaSt1KmUvMix1KSxvPTAsbj17dDoicmFuZ2VQb2ludHMiLGE6YXJndW1lbnRzfSxzfSxzLnJhbmdlUm91bmRQb2ludHM9ZnVuY3Rpb24odCxlKXthcmd1bWVudHMubGVuZ3RoPDImJihlPTApO3ZhciBpPXRbMF0sYz10WzFdLHU9ci5sZW5ndGg8Mj8oaT1jPU1hdGgucm91bmQoKGkrYykvMiksMCk6KGMtaSkvKHIubGVuZ3RoLTErZSl8MDtyZXR1cm4gYT1sKGkrTWF0aC5yb3VuZCh1KmUvMisoYy1pLShyLmxlbmd0aC0xK2UpKnUpLzIpLHUpLG89MCxuPXt0OiJyYW5nZVJvdW5kUG9pbnRzIixhOmFyZ3VtZW50c30sc30scy5yYW5nZUJhbmRzPWZ1bmN0aW9uKHQsZSxpKXthcmd1bWVudHMubGVuZ3RoPDImJihlPTApLGFyZ3VtZW50cy5sZW5ndGg8MyYmKGk9ZSk7dmFyIGM9dFsxXTx0WzBdLHU9dFtjLTBdLGY9dFsxLWNdLGg9KGYtdSkvKHIubGVuZ3RoLWUrMippKTtyZXR1cm4gYT1sKHUraCppLGgpLGMmJmEucmV2ZXJzZSgpLG89aCooMS1lKSxuPXt0OiJyYW5nZUJhbmRzIixhOmFyZ3VtZW50c30sc30scy5yYW5nZVJvdW5kQmFuZHM9ZnVuY3Rpb24odCxlLGkpe2FyZ3VtZW50cy5sZW5ndGg8MiYmKGU9MCksYXJndW1lbnRzLmxlbmd0aDwzJiYoaT1lKTt2YXIgYz10WzFdPHRbMF0sdT10W2MtMF0sZj10WzEtY10saD1NYXRoLmZsb29yKChmLXUpLyhyLmxlbmd0aC1lKzIqaSkpO3JldHVybiBhPWwodStNYXRoLnJvdW5kKChmLXUtKHIubGVuZ3RoLWUpKmgpLzIpLGgpLGMmJmEucmV2ZXJzZSgpLG89TWF0aC5yb3VuZChoKigxLWUpKSxuPXt0OiJyYW5nZVJvdW5kQmFuZHMiLGE6YXJndW1lbnRzfSxzfSxzLnJhbmdlQmFuZD1mdW5jdGlvbigpe3JldHVybiBvfSxzLnJhbmdlRXh0ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHpuKG4uYVswXSl9LHMuY29weT1mdW5jdGlvbigpe3JldHVybiBlKHIsbil9LHMuZG9tYWluKHIpfShbXSx7dDoicmFuZ2UiLGE6W1tdXX0pfSx0LnNjYWxlLmNhdGVnb3J5MTA9ZnVuY3Rpb24oKXtyZXR1cm4gdC5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoV24pfSx0LnNjYWxlLmNhdGVnb3J5MjA9ZnVuY3Rpb24oKXtyZXR1cm4gdC5zY2FsZS5vcmRpbmFsKCkucmFuZ2UoWG4pfSx0LnNjYWxlLmNhdGVnb3J5MjBiPWZ1bmN0aW9uKCl7cmV0dXJuIHQuc2NhbGUub3JkaW5hbCgpLnJhbmdlKFpuKX0sdC5zY2FsZS5jYXRlZ29yeTIwYz1mdW5jdGlvbigpe3JldHVybiB0LnNjYWxlLm9yZGluYWwoKS5yYW5nZShKbil9O3ZhciBXbj1bMjA2MjI2MCwxNjc0NDIwNiwyOTI0NTg4LDE0MDM0NzI4LDk3MjU4ODUsOTE5NzEzMSwxNDkwNzMzMCw4MzU1NzExLDEyMzY5MTg2LDE1NTYxNzVdLm1hcCh0ZSksWG49WzIwNjIyNjAsMTE0NTQ0NDAsMTY3NDQyMDYsMTY3NTk2NzIsMjkyNDU4OCwxMDAxODY5OCwxNDAzNDcyOCwxNjc1MDc0Miw5NzI1ODg1LDEyOTU1ODYxLDkxOTcxMzEsMTI4ODUxNDAsMTQ5MDczMzAsMTYyMzQxOTQsODM1NTcxMSwxMzA5MjgwNywxMjM2OTE4NiwxNDQwODU4OSwxNTU2MTc1LDEwNDEwNzI1XS5tYXAodGUpLFpuPVszNzUwNzc3LDUzOTU2MTksNzA0MDcxOSwxMDI2NDI4Niw2NTE5MDk3LDkyMTY1OTQsMTE5MTUxMTUsMTM1NTY2MzYsOTIwMjk5MywxMjQyNjgwOSwxNTE4NjUxNCwxNTE5MDkzMiw4NjY2MTY5LDExMzU2NDkwLDE0MDQ5NjQzLDE1MTc3MzcyLDgwNzc2ODMsMTA4MzQzMjQsMTM1Mjg1MDksMTQ1ODk2NTRdLm1hcCh0ZSksSm49WzMyNDQ3MzMsNzA1NzExMCwxMDQwNjYyNSwxMzAzMjQzMSwxNTA5NTA1MywxNjYxNjc2NCwxNjYyNTI1OSwxNjYzNDAxOCwzMjUzMDc2LDc2NTI0NzAsMTA2MDcwMDMsMTMxMDE1MDQsNzY5NTI4MSwxMDM5NDMxMiwxMjM2OTM3MiwxNDM0Mjg5MSw2NTEzNTA3LDk4Njg5NTAsMTI0MzQ4NzcsMTQyNzcwODFdLm1hcCh0ZSk7ZnVuY3Rpb24gS24oKXtyZXR1cm4gMH10LnNjYWxlLnF1YW50aWxlPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUocixuKXt2YXIgaTtmdW5jdGlvbiBhKCl7dmFyIGU9MCxhPW4ubGVuZ3RoO2ZvcihpPVtdOysrZTxhOylpW2UtMV09dC5xdWFudGlsZShyLGUvYSk7cmV0dXJuIG99ZnVuY3Rpb24gbyhlKXtpZighaXNOYU4oZT0rZSkpcmV0dXJuIG5bdC5iaXNlY3QoaSxlKV19cmV0dXJuIG8uZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQubWFwKHApLmZpbHRlcihkKS5zb3J0KGgpLGEoKSk6cn0sby5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGEoKSk6bn0sby5xdWFudGlsZXM9ZnVuY3Rpb24oKXtyZXR1cm4gaX0sby5pbnZlcnRFeHRlbnQ9ZnVuY3Rpb24odCl7cmV0dXJuKHQ9bi5pbmRleE9mKHQpKTwwP1tOYU4sTmFOXTpbdD4wP2lbdC0xXTpyWzBdLHQ8aS5sZW5ndGg/aVt0XTpyW3IubGVuZ3RoLTFdXX0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIGUocixuKX0sYSgpfShbXSxbXSl9LHQuc2NhbGUucXVhbnRpemU9ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24gdChlLHIsbil7dmFyIGksYTtmdW5jdGlvbiBvKHQpe3JldHVybiBuW01hdGgubWF4KDAsTWF0aC5taW4oYSxNYXRoLmZsb29yKGkqKHQtZSkpKSldfWZ1bmN0aW9uIHMoKXtyZXR1cm4gaT1uLmxlbmd0aC8oci1lKSxhPW4ubGVuZ3RoLTEsb31yZXR1cm4gby5kb21haW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9K3RbMF0scj0rdFt0Lmxlbmd0aC0xXSxzKCkpOltlLHJdfSxvLnJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPXQscygpKTpufSxvLmludmVydEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm5bdD0odD1uLmluZGV4T2YodCkpPDA/TmFOOnQvaStlLHQrMS9pXX0sby5jb3B5PWZ1bmN0aW9uKCl7cmV0dXJuIHQoZSxyLG4pfSxzKCl9KDAsMSxbMCwxXSl9LHQuc2NhbGUudGhyZXNob2xkPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uIGUocixuKXtmdW5jdGlvbiBpKGUpe2lmKGU8PWUpcmV0dXJuIG5bdC5iaXNlY3QocixlKV19cmV0dXJuIGkuZG9tYWluPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsaSk6cn0saS5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGkpOm59LGkuaW52ZXJ0RXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0PW4uaW5kZXhPZih0KSxbclt0LTFdLHJbdF1dfSxpLmNvcHk9ZnVuY3Rpb24oKXtyZXR1cm4gZShyLG4pfSxpfShbLjVdLFswLDFdKX0sdC5zY2FsZS5pZGVudGl0eT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuK3R9cmV0dXJuIHIuaW52ZXJ0PXIsci5kb21haW49ci5yYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10Lm1hcChyKSxyKTplfSxyLnRpY2tzPWZ1bmN0aW9uKHQpe3JldHVybiBxbihlLHQpfSxyLnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCxyKXtyZXR1cm4gZDNfc2NhbGVfbGluZWFyVGlja0Zvcm1hdChlLHQscil9LHIuY29weT1mdW5jdGlvbigpe3JldHVybiB0KGUpfSxyfShbMCwxXSl9LHQuc3ZnPXt9LHQuc3ZnLmFyYz1mdW5jdGlvbigpe3ZhciB0PSRuLGU9dGkscj1LbixuPVFuLGk9ZWksYT1yaSxvPW5pO2Z1bmN0aW9uIHMoKXt2YXIgcz1NYXRoLm1heCgwLCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSksYz1NYXRoLm1heCgwLCtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSksdT1pLmFwcGx5KHRoaXMsYXJndW1lbnRzKS1FdCxmPWEuYXBwbHkodGhpcyxhcmd1bWVudHMpLUV0LGg9TWF0aC5hYnMoZi11KSxwPXU+Zj8wOjE7aWYoYzxzJiYoZD1jLGM9cyxzPWQpLGg+PVN0KXJldHVybiBsKGMscCkrKHM/bChzLDEtcCk6IiIpKyJaIjt2YXIgZCxtLGcsdix5LHgsYixfLHcsVCxrLEEsTT0wLFM9MCxFPVtdO2lmKCh2PSgrby5hcHBseSh0aGlzLGFyZ3VtZW50cyl8fDApLzIpJiYoZz1uPT09UW4/TWF0aC5zcXJ0KHMqcytjKmMpOituLmFwcGx5KHRoaXMsYXJndW1lbnRzKSxwfHwoUyo9LTEpLGMmJihTPVB0KGcvYypNYXRoLnNpbih2KSkpLHMmJihNPVB0KGcvcypNYXRoLnNpbih2KSkpKSxjKXt5PWMqTWF0aC5jb3ModStTKSx4PWMqTWF0aC5zaW4odStTKSxiPWMqTWF0aC5jb3MoZi1TKSxfPWMqTWF0aC5zaW4oZi1TKTt2YXIgTD1NYXRoLmFicyhmLXUtMipTKTw9QXQ/MDoxO2lmKFMmJmlpKHkseCxiLF8pPT09cF5MKXt2YXIgQz0odStmKS8yO3k9YypNYXRoLmNvcyhDKSx4PWMqTWF0aC5zaW4oQyksYj1fPW51bGx9fWVsc2UgeT14PTA7aWYocyl7dz1zKk1hdGguY29zKGYtTSksVD1zKk1hdGguc2luKGYtTSksaz1zKk1hdGguY29zKHUrTSksQT1zKk1hdGguc2luKHUrTSk7dmFyIFA9TWF0aC5hYnModS1mKzIqTSk8PUF0PzA6MTtpZihNJiZpaSh3LFQsayxBKT09PTEtcF5QKXt2YXIgST0odStmKS8yO3c9cypNYXRoLmNvcyhJKSxUPXMqTWF0aC5zaW4oSSksaz1BPW51bGx9fWVsc2Ugdz1UPTA7aWYoaD5rdCYmKGQ9TWF0aC5taW4oTWF0aC5hYnMoYy1zKS8yLCtyLmFwcGx5KHRoaXMsYXJndW1lbnRzKSkpPi4wMDEpe209czxjXnA/MDoxO3ZhciBPPWQsej1kO2lmKGg8QXQpe3ZhciBEPW51bGw9PWs/W3csVF06bnVsbD09Yj9beSx4XTpTZShbeSx4XSxbayxBXSxbYixfXSxbdyxUXSksUj15LURbMF0sRj14LURbMV0sQj1iLURbMF0sTj1fLURbMV0saj0xL01hdGguc2luKE1hdGguYWNvcygoUipCK0YqTikvKE1hdGguc3FydChSKlIrRipGKSpNYXRoLnNxcnQoQipCK04qTikpKS8yKSxVPU1hdGguc3FydChEWzBdKkRbMF0rRFsxXSpEWzFdKTt6PU1hdGgubWluKGQsKHMtVSkvKGotMSkpLE89TWF0aC5taW4oZCwoYy1VKS8oaisxKSl9aWYobnVsbCE9Yil7dmFyIFY9YWkobnVsbD09az9bdyxUXTpbayxBXSxbeSx4XSxjLE8scCksSD1haShbYixfXSxbdyxUXSxjLE8scCk7ZD09PU8/RS5wdXNoKCJNIixWWzBdLCJBIixPLCIsIixPLCIgMCAwLCIsbSwiICIsVlsxXSwiQSIsYywiLCIsYywiIDAgIiwxLXBeaWkoVlsxXVswXSxWWzFdWzFdLEhbMV1bMF0sSFsxXVsxXSksIiwiLHAsIiAiLEhbMV0sIkEiLE8sIiwiLE8sIiAwIDAsIixtLCIgIixIWzBdKTpFLnB1c2goIk0iLFZbMF0sIkEiLE8sIiwiLE8sIiAwIDEsIixtLCIgIixIWzBdKX1lbHNlIEUucHVzaCgiTSIseSwiLCIseCk7aWYobnVsbCE9ayl7dmFyIHE9YWkoW3kseF0sW2ssQV0scywteixwKSxHPWFpKFt3LFRdLG51bGw9PWI/W3kseF06W2IsX10scywteixwKTtkPT09ej9FLnB1c2goIkwiLEdbMF0sIkEiLHosIiwiLHosIiAwIDAsIixtLCIgIixHWzFdLCJBIixzLCIsIixzLCIgMCAiLHBeaWkoR1sxXVswXSxHWzFdWzFdLHFbMV1bMF0scVsxXVsxXSksIiwiLDEtcCwiICIscVsxXSwiQSIseiwiLCIseiwiIDAgMCwiLG0sIiAiLHFbMF0pOkUucHVzaCgiTCIsR1swXSwiQSIseiwiLCIseiwiIDAgMCwiLG0sIiAiLHFbMF0pfWVsc2UgRS5wdXNoKCJMIix3LCIsIixUKX1lbHNlIEUucHVzaCgiTSIseSwiLCIseCksbnVsbCE9YiYmRS5wdXNoKCJBIixjLCIsIixjLCIgMCAiLEwsIiwiLHAsIiAiLGIsIiwiLF8pLEUucHVzaCgiTCIsdywiLCIsVCksbnVsbCE9ayYmRS5wdXNoKCJBIixzLCIsIixzLCIgMCAiLFAsIiwiLDEtcCwiICIsaywiLCIsQSk7cmV0dXJuIEUucHVzaCgiWiIpLEUuam9pbigiIil9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiJNMCwiK3QrIkEiK3QrIiwiK3QrIiAwIDEsIitlKyIgMCwiKy10KyJBIit0KyIsIit0KyIgMCAxLCIrZSsiIDAsIit0fXJldHVybiBzLmlubmVyUmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWNlKGUpLHMpOnR9LHMub3V0ZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Y2UodCkscyk6ZX0scy5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9Y2UodCkscyk6cn0scy5wYWRSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dD09UW4/UW46Y2UodCkscyk6bn0scy5zdGFydEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWNlKHQpLHMpOml9LHMuZW5kQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9Y2UodCkscyk6YX0scy5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz1jZSh0KSxzKTpvfSxzLmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIHI9KCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2UuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLG49KCtpLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK2EuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLUV0O3JldHVybltNYXRoLmNvcyhuKSpyLE1hdGguc2luKG4pKnJdfSxzfTt2YXIgUW49ImF1dG8iO2Z1bmN0aW9uICRuKHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIHRpKHQpe3JldHVybiB0Lm91dGVyUmFkaXVzfWZ1bmN0aW9uIGVpKHQpe3JldHVybiB0LnN0YXJ0QW5nbGV9ZnVuY3Rpb24gcmkodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24gbmkodCl7cmV0dXJuIHQmJnQucGFkQW5nbGV9ZnVuY3Rpb24gaWkodCxlLHIsbil7cmV0dXJuKHQtcikqZS0oZS1uKSp0PjA/MDoxfWZ1bmN0aW9uIGFpKHQsZSxyLG4saSl7dmFyIGE9dFswXS1lWzBdLG89dFsxXS1lWzFdLHM9KGk/bjotbikvTWF0aC5zcXJ0KGEqYStvKm8pLGw9cypvLGM9LXMqYSx1PXRbMF0rbCxmPXRbMV0rYyxoPWVbMF0rbCxwPWVbMV0rYyxkPSh1K2gpLzIsbT0oZitwKS8yLGc9aC11LHY9cC1mLHk9ZypnK3Yqdix4PXItbixiPXUqcC1oKmYsXz0odjwwPy0xOjEpKk1hdGguc3FydChNYXRoLm1heCgwLHgqeCp5LWIqYikpLHc9KGIqdi1nKl8pL3ksVD0oLWIqZy12Kl8pL3ksaz0oYip2K2cqXykveSxBPSgtYipnK3YqXykveSxNPXctZCxTPVQtbSxFPWstZCxMPUEtbTtyZXR1cm4gTSpNK1MqUz5FKkUrTCpMJiYodz1rLFQ9QSksW1t3LWwsVC1jXSxbdypyL3gsVCpyL3hdXX1mdW5jdGlvbiBvaSgpe3JldHVybiEwfWZ1bmN0aW9uIHNpKHQpe3ZhciBlPV9lLHI9d2Usbj1vaSxpPWNpLGE9aS5rZXksbz0uNztmdW5jdGlvbiBzKGEpe3ZhciBzLGw9W10sYz1bXSx1PS0xLGY9YS5sZW5ndGgsaD1jZShlKSxwPWNlKHIpO2Z1bmN0aW9uIGQoKXtsLnB1c2goIk0iLGkodChjKSxvKSl9Zm9yKDsrK3U8Zjspbi5jYWxsKHRoaXMscz1hW3VdLHUpP2MucHVzaChbK2guY2FsbCh0aGlzLHMsdSksK3AuY2FsbCh0aGlzLHMsdSldKTpjLmxlbmd0aCYmKGQoKSxjPVtdKTtyZXR1cm4gYy5sZW5ndGgmJmQoKSxsLmxlbmd0aD9sLmpvaW4oIiIpOm51bGx9cmV0dXJuIHMueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LHMpOmV9LHMueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj10LHMpOnJ9LHMuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LHMpOm59LHMuaW50ZXJwb2xhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGE9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/aT10OihpPWxpLmdldCh0KXx8Y2kpLmtleSxzKTphfSxzLnRlbnNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxzKTpvfSxzfXQuc3ZnLmxpbmU9ZnVuY3Rpb24oKXtyZXR1cm4gc2koQyl9O3ZhciBsaT10Lm1hcCh7bGluZWFyOmNpLCJsaW5lYXItY2xvc2VkIjp1aSxzdGVwOmZ1bmN0aW9uKHQpe3ZhciBlPTAscj10Lmxlbmd0aCxuPXRbMF0saT1bblswXSwiLCIsblsxXV07Zm9yKDsrK2U8cjspaS5wdXNoKCJIIiwoblswXSsobj10W2VdKVswXSkvMiwiViIsblsxXSk7cj4xJiZpLnB1c2goIkgiLG5bMF0pO3JldHVybiBpLmpvaW4oIiIpfSwic3RlcC1iZWZvcmUiOmZpLCJzdGVwLWFmdGVyIjpoaSxiYXNpczptaSwiYmFzaXMtb3BlbiI6ZnVuY3Rpb24odCl7aWYodC5sZW5ndGg8NClyZXR1cm4gY2kodCk7dmFyIGUscj1bXSxuPS0xLGk9dC5sZW5ndGgsYT1bMF0sbz1bMF07Zm9yKDsrK248MzspZT10W25dLGEucHVzaChlWzBdKSxvLnB1c2goZVsxXSk7ci5wdXNoKGdpKHhpLGEpKyIsIitnaSh4aSxvKSksLS1uO2Zvcig7KytuPGk7KWU9dFtuXSxhLnNoaWZ0KCksYS5wdXNoKGVbMF0pLG8uc2hpZnQoKSxvLnB1c2goZVsxXSksYmkocixhLG8pO3JldHVybiByLmpvaW4oIiIpfSwiYmFzaXMtY2xvc2VkIjpmdW5jdGlvbih0KXt2YXIgZSxyLG49LTEsaT10Lmxlbmd0aCxhPWkrNCxvPVtdLHM9W107Zm9yKDsrK248NDspcj10W24laV0sby5wdXNoKHJbMF0pLHMucHVzaChyWzFdKTtlPVtnaSh4aSxvKSwiLCIsZ2koeGkscyldLC0tbjtmb3IoOysrbjxhOylyPXRbbiVpXSxvLnNoaWZ0KCksby5wdXNoKHJbMF0pLHMuc2hpZnQoKSxzLnB1c2goclsxXSksYmkoZSxvLHMpO3JldHVybiBlLmpvaW4oIiIpfSxidW5kbGU6ZnVuY3Rpb24odCxlKXt2YXIgcj10Lmxlbmd0aC0xO2lmKHIpZm9yKHZhciBuLGksYT10WzBdWzBdLG89dFswXVsxXSxzPXRbcl1bMF0tYSxsPXRbcl1bMV0tbyxjPS0xOysrYzw9cjspbj10W2NdLGk9Yy9yLG5bMF09ZSpuWzBdKygxLWUpKihhK2kqcyksblsxXT1lKm5bMV0rKDEtZSkqKG8raSpsKTtyZXR1cm4gbWkodCl9LGNhcmRpbmFsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGVuZ3RoPDM/Y2kodCk6dFswXStwaSh0LGRpKHQsZSkpfSwiY2FyZGluYWwtb3BlbiI6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGg8ND9jaSh0KTp0WzFdK3BpKHQuc2xpY2UoMSwtMSksZGkodCxlKSl9LCJjYXJkaW5hbC1jbG9zZWQiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGVuZ3RoPDM/dWkodCk6dFswXStwaSgodC5wdXNoKHRbMF0pLHQpLGRpKFt0W3QubGVuZ3RoLTJdXS5jb25jYXQodCxbdFsxXV0pLGUpKX0sbW9ub3RvbmU6ZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoPDM/Y2kodCk6dFswXStwaSh0LGZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGE9W10sbz1mdW5jdGlvbih0KXt2YXIgZT0wLHI9dC5sZW5ndGgtMSxuPVtdLGk9dFswXSxhPXRbMV0sbz1uWzBdPV9pKGksYSk7Zm9yKDsrK2U8cjspbltlXT0obysobz1faShpPWEsYT10W2UrMV0pKSkvMjtyZXR1cm4gbltlXT1vLG59KHQpLHM9LTEsbD10Lmxlbmd0aC0xO2Zvcig7KytzPGw7KWU9X2kodFtzXSx0W3MrMV0pLHkoZSk8a3Q/b1tzXT1vW3MrMV09MDoocj1vW3NdL2Usbj1vW3MrMV0vZSwoaT1yKnIrbipuKT45JiYoaT0zKmUvTWF0aC5zcXJ0KGkpLG9bc109aSpyLG9bcysxXT1pKm4pKTtzPS0xO2Zvcig7KytzPD1sOylpPSh0W01hdGgubWluKGwscysxKV1bMF0tdFtNYXRoLm1heCgwLHMtMSldWzBdKS8oNiooMStvW3NdKm9bc10pKSxhLnB1c2goW2l8fDAsb1tzXSppfHwwXSk7cmV0dXJuIGF9KHQpKX19KTtmdW5jdGlvbiBjaSh0KXtyZXR1cm4gdC5sZW5ndGg+MT90LmpvaW4oIkwiKTp0KyJaIn1mdW5jdGlvbiB1aSh0KXtyZXR1cm4gdC5qb2luKCJMIikrIloifWZ1bmN0aW9uIGZpKHQpe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGgsbj10WzBdLGk9W25bMF0sIiwiLG5bMV1dOysrZTxyOylpLnB1c2goIlYiLChuPXRbZV0pWzFdLCJIIixuWzBdKTtyZXR1cm4gaS5qb2luKCIiKX1mdW5jdGlvbiBoaSh0KXtmb3IodmFyIGU9MCxyPXQubGVuZ3RoLG49dFswXSxpPVtuWzBdLCIsIixuWzFdXTsrK2U8cjspaS5wdXNoKCJIIiwobj10W2VdKVswXSwiViIsblsxXSk7cmV0dXJuIGkuam9pbigiIil9ZnVuY3Rpb24gcGkodCxlKXtpZihlLmxlbmd0aDwxfHx0Lmxlbmd0aCE9ZS5sZW5ndGgmJnQubGVuZ3RoIT1lLmxlbmd0aCsyKXJldHVybiBjaSh0KTt2YXIgcj10Lmxlbmd0aCE9ZS5sZW5ndGgsbj0iIixpPXRbMF0sYT10WzFdLG89ZVswXSxzPW8sbD0xO2lmKHImJihuKz0iUSIrKGFbMF0tMipvWzBdLzMpKyIsIisoYVsxXS0yKm9bMV0vMykrIiwiK2FbMF0rIiwiK2FbMV0saT10WzFdLGw9MiksZS5sZW5ndGg+MSl7cz1lWzFdLGE9dFtsXSxsKyssbis9IkMiKyhpWzBdK29bMF0pKyIsIisoaVsxXStvWzFdKSsiLCIrKGFbMF0tc1swXSkrIiwiKyhhWzFdLXNbMV0pKyIsIithWzBdKyIsIithWzFdO2Zvcih2YXIgYz0yO2M8ZS5sZW5ndGg7YysrLGwrKylhPXRbbF0scz1lW2NdLG4rPSJTIisoYVswXS1zWzBdKSsiLCIrKGFbMV0tc1sxXSkrIiwiK2FbMF0rIiwiK2FbMV19aWYocil7dmFyIHU9dFtsXTtuKz0iUSIrKGFbMF0rMipzWzBdLzMpKyIsIisoYVsxXSsyKnNbMV0vMykrIiwiK3VbMF0rIiwiK3VbMV19cmV0dXJuIG59ZnVuY3Rpb24gZGkodCxlKXtmb3IodmFyIHIsbj1bXSxpPSgxLWUpLzIsYT10WzBdLG89dFsxXSxzPTEsbD10Lmxlbmd0aDsrK3M8bDspcj1hLGE9byxvPXRbc10sbi5wdXNoKFtpKihvWzBdLXJbMF0pLGkqKG9bMV0tclsxXSldKTtyZXR1cm4gbn1mdW5jdGlvbiBtaSh0KXtpZih0Lmxlbmd0aDwzKXJldHVybiBjaSh0KTt2YXIgZT0xLHI9dC5sZW5ndGgsbj10WzBdLGk9blswXSxhPW5bMV0sbz1baSxpLGksKG49dFsxXSlbMF1dLHM9W2EsYSxhLG5bMV1dLGw9W2ksIiwiLGEsIkwiLGdpKHhpLG8pLCIsIixnaSh4aSxzKV07Zm9yKHQucHVzaCh0W3ItMV0pOysrZTw9cjspbj10W2VdLG8uc2hpZnQoKSxvLnB1c2goblswXSkscy5zaGlmdCgpLHMucHVzaChuWzFdKSxiaShsLG8scyk7cmV0dXJuIHQucG9wKCksbC5wdXNoKCJMIixuKSxsLmpvaW4oIiIpfWZ1bmN0aW9uIGdpKHQsZSl7cmV0dXJuIHRbMF0qZVswXSt0WzFdKmVbMV0rdFsyXSplWzJdK3RbM10qZVszXX1saS5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2Uua2V5PXQsZS5jbG9zZWQ9Ly1jbG9zZWQkLy50ZXN0KHQpfSkpO3ZhciB2aT1bMCwyLzMsMS8zLDBdLHlpPVswLDEvMywyLzMsMF0seGk9WzAsMS82LDIvMywxLzZdO2Z1bmN0aW9uIGJpKHQsZSxyKXt0LnB1c2goIkMiLGdpKHZpLGUpLCIsIixnaSh2aSxyKSwiLCIsZ2koeWksZSksIiwiLGdpKHlpLHIpLCIsIixnaSh4aSxlKSwiLCIsZ2koeGkscikpfWZ1bmN0aW9uIF9pKHQsZSl7cmV0dXJuKGVbMV0tdFsxXSkvKGVbMF0tdFswXSl9ZnVuY3Rpb24gd2kodCl7Zm9yKHZhciBlLHIsbixpPS0xLGE9dC5sZW5ndGg7KytpPGE7KXI9KGU9dFtpXSlbMF0sbj1lWzFdLUV0LGVbMF09cipNYXRoLmNvcyhuKSxlWzFdPXIqTWF0aC5zaW4obik7cmV0dXJuIHR9ZnVuY3Rpb24gVGkodCl7dmFyIGU9X2Uscj1fZSxuPTAsaT13ZSxhPW9pLG89Y2kscz1vLmtleSxsPW8sYz0iTCIsdT0uNztmdW5jdGlvbiBmKHMpe3ZhciBmLGgscCxkPVtdLG09W10sZz1bXSx2PS0xLHk9cy5sZW5ndGgseD1jZShlKSxiPWNlKG4pLF89ZT09PXI/ZnVuY3Rpb24oKXtyZXR1cm4gaH06Y2Uociksdz1uPT09aT9mdW5jdGlvbigpe3JldHVybiBwfTpjZShpKTtmdW5jdGlvbiBUKCl7ZC5wdXNoKCJNIixvKHQoZyksdSksYyxsKHQobS5yZXZlcnNlKCkpLHUpLCJaIil9Zm9yKDsrK3Y8eTspYS5jYWxsKHRoaXMsZj1zW3ZdLHYpPyhtLnB1c2goW2g9K3guY2FsbCh0aGlzLGYsdikscD0rYi5jYWxsKHRoaXMsZix2KV0pLGcucHVzaChbK18uY2FsbCh0aGlzLGYsdiksK3cuY2FsbCh0aGlzLGYsdildKSk6bS5sZW5ndGgmJihUKCksbT1bXSxnPVtdKTtyZXR1cm4gbS5sZW5ndGgmJlQoKSxkLmxlbmd0aD9kLmpvaW4oIiIpOm51bGx9cmV0dXJuIGYueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1yPXQsZik6cn0sZi54MD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT10LGYpOmV9LGYueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCxmKTpyfSxmLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49aT10LGYpOml9LGYueTA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49dCxmKTpufSxmLnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsZik6aX0sZi5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPXQsZik6YX0sZi5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD9vPXQ6KG89bGkuZ2V0KHQpfHxjaSkua2V5LGw9by5yZXZlcnNlfHxvLGM9by5jbG9zZWQ/Ik0iOiJMIixmKTpzfSxmLnRlbnNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHU9dCxmKTp1fSxmfWZ1bmN0aW9uIGtpKHQpe3JldHVybiB0LnNvdXJjZX1mdW5jdGlvbiBBaSh0KXtyZXR1cm4gdC50YXJnZXR9ZnVuY3Rpb24gTWkodCl7cmV0dXJuIHQucmFkaXVzfWZ1bmN0aW9uIFNpKHQpe3JldHVyblt0LngsdC55XX1mdW5jdGlvbiBFaSh0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKSxyPWVbMF0sbj1lWzFdLUV0O3JldHVybltyKk1hdGguY29zKG4pLHIqTWF0aC5zaW4obildfX1mdW5jdGlvbiBMaSgpe3JldHVybiA2NH1mdW5jdGlvbiBDaSgpe3JldHVybiJjaXJjbGUifWZ1bmN0aW9uIFBpKHQpe3ZhciBlPU1hdGguc3FydCh0L0F0KTtyZXR1cm4iTTAsIitlKyJBIitlKyIsIitlKyIgMCAxLDEgMCwiKy1lKyJBIitlKyIsIitlKyIgMCAxLDEgMCwiK2UrIloifXQuc3ZnLmxpbmUucmFkaWFsPWZ1bmN0aW9uKCl7dmFyIHQ9c2kod2kpO3JldHVybiB0LnJhZGl1cz10LngsZGVsZXRlIHQueCx0LmFuZ2xlPXQueSxkZWxldGUgdC55LHR9LGZpLnJldmVyc2U9aGksaGkucmV2ZXJzZT1maSx0LnN2Zy5hcmVhPWZ1bmN0aW9uKCl7cmV0dXJuIFRpKEMpfSx0LnN2Zy5hcmVhLnJhZGlhbD1mdW5jdGlvbigpe3ZhciB0PVRpKHdpKTtyZXR1cm4gdC5yYWRpdXM9dC54LGRlbGV0ZSB0LngsdC5pbm5lclJhZGl1cz10LngwLGRlbGV0ZSB0LngwLHQub3V0ZXJSYWRpdXM9dC54MSxkZWxldGUgdC54MSx0LmFuZ2xlPXQueSxkZWxldGUgdC55LHQuc3RhcnRBbmdsZT10LnkwLGRlbGV0ZSB0LnkwLHQuZW5kQW5nbGU9dC55MSxkZWxldGUgdC55MSx0fSx0LnN2Zy5jaG9yZD1mdW5jdGlvbigpe3ZhciB0PWtpLGU9QWkscj1NaSxuPWVpLGk9cmk7ZnVuY3Rpb24gYShyLG4pe3ZhciBpLGEsYz1vKHRoaXMsdCxyLG4pLHU9byh0aGlzLGUscixuKTtyZXR1cm4iTSIrYy5wMCtzKGMucixjLnAxLGMuYTEtYy5hMCkrKGE9dSwoKGk9YykuYTA9PWEuYTAmJmkuYTE9PWEuYTE/bChjLnIsYy5wMSxjLnIsYy5wMCk6bChjLnIsYy5wMSx1LnIsdS5wMCkrcyh1LnIsdS5wMSx1LmExLXUuYTApK2wodS5yLHUucDEsYy5yLGMucDApKSsiWiIpfWZ1bmN0aW9uIG8odCxlLGEsbyl7dmFyIHM9ZS5jYWxsKHQsYSxvKSxsPXIuY2FsbCh0LHMsbyksYz1uLmNhbGwodCxzLG8pLUV0LHU9aS5jYWxsKHQscyxvKS1FdDtyZXR1cm57cjpsLGEwOmMsYTE6dSxwMDpbbCpNYXRoLmNvcyhjKSxsKk1hdGguc2luKGMpXSxwMTpbbCpNYXRoLmNvcyh1KSxsKk1hdGguc2luKHUpXX19ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJuIkEiK3QrIiwiK3QrIiAwICIrICsocj5BdCkrIiwxICIrZX1mdW5jdGlvbiBsKHQsZSxyLG4pe3JldHVybiJRIDAsMCAiK259cmV0dXJuIGEucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPWNlKHQpLGEpOnJ9LGEuc291cmNlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWNlKGUpLGEpOnR9LGEudGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPWNlKHQpLGEpOmV9LGEuc3RhcnRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1jZSh0KSxhKTpufSxhLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPWNlKHQpLGEpOml9LGF9LHQuc3ZnLmRpYWdvbmFsPWZ1bmN0aW9uKCl7dmFyIHQ9a2ksZT1BaSxyPVNpO2Z1bmN0aW9uIG4obixpKXt2YXIgYT10LmNhbGwodGhpcyxuLGkpLG89ZS5jYWxsKHRoaXMsbixpKSxzPShhLnkrby55KS8yLGw9W2Ese3g6YS54LHk6c30se3g6by54LHk6c30sb107cmV0dXJuIk0iKyhsPWwubWFwKHIpKVswXSsiQyIrbFsxXSsiICIrbFsyXSsiICIrbFszXX1yZXR1cm4gbi5zb3VyY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9Y2UoZSksbik6dH0sbi50YXJnZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Y2UodCksbik6ZX0sbi5wcm9qZWN0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPXQsbik6cn0sbn0sdC5zdmcuZGlhZ29uYWwucmFkaWFsPWZ1bmN0aW9uKCl7dmFyIGU9dC5zdmcuZGlhZ29uYWwoKSxyPVNpLG49ZS5wcm9qZWN0aW9uO3JldHVybiBlLnByb2plY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bihFaShyPXQpKTpyfSxlfSx0LnN2Zy5zeW1ib2w9ZnVuY3Rpb24oKXt2YXIgdD1DaSxlPUxpO2Z1bmN0aW9uIHIocixuKXtyZXR1cm4oSWkuZ2V0KHQuY2FsbCh0aGlzLHIsbikpfHxQaSkoZS5jYWxsKHRoaXMscixuKSl9cmV0dXJuIHIudHlwZT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD1jZShlKSxyKTp0fSxyLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9Y2UodCkscik6ZX0scn07dmFyIElpPXQubWFwKHtjaXJjbGU6UGksY3Jvc3M6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5zcXJ0KHQvNSkvMjtyZXR1cm4iTSIrLTMqZSsiLCIrLWUrIkgiKy1lKyJWIistMyplKyJIIitlKyJWIistZSsiSCIrMyplKyJWIitlKyJIIitlKyJWIiszKmUrIkgiKy1lKyJWIitlKyJIIistMyplKyJaIn0sZGlhbW9uZDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodC8oMip6aSkpLHI9ZSp6aTtyZXR1cm4iTTAsIistZSsiTCIrcisiLDAgMCwiK2UrIiAiKy1yKyIsMFoifSxzcXVhcmU6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5zcXJ0KHQpLzI7cmV0dXJuIk0iKy1lKyIsIistZSsiTCIrZSsiLCIrLWUrIiAiK2UrIiwiK2UrIiAiKy1lKyIsIitlKyJaIn0sInRyaWFuZ2xlLWRvd24iOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguc3FydCh0L09pKSxyPWUqT2kvMjtyZXR1cm4iTTAsIityKyJMIitlKyIsIistcisiICIrLWUrIiwiKy1yKyJaIn0sInRyaWFuZ2xlLXVwIjpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodC9PaSkscj1lKk9pLzI7cmV0dXJuIk0wLCIrLXIrIkwiK2UrIiwiK3IrIiAiKy1lKyIsIityKyJaIn19KTt0LnN2Zy5zeW1ib2xUeXBlcz1JaS5rZXlzKCk7dmFyIE9pPU1hdGguc3FydCgzKSx6aT1NYXRoLnRhbigzMCpMdCk7WS50cmFuc2l0aW9uPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG49Qml8fCsrVWksaT1xaSh0KSxhPVtdLG89Tml8fHt0aW1lOkRhdGUubm93KCksZWFzZTpFcixkZWxheTowLGR1cmF0aW9uOjI1MH0scz0tMSxsPXRoaXMubGVuZ3RoOysrczxsOyl7YS5wdXNoKGU9W10pO2Zvcih2YXIgYz10aGlzW3NdLHU9LTEsZj1jLmxlbmd0aDsrK3U8ZjspKHI9Y1t1XSkmJkdpKHIsdSxpLG4sbyksZS5wdXNoKHIpfXJldHVybiBGaShhLGksbil9LFkuaW50ZXJydXB0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2gobnVsbD09dD9EaTpSaShxaSh0KSkpfTt2YXIgRGk9UmkocWkoKSk7ZnVuY3Rpb24gUmkodCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGUscixuOyhlPXRoaXNbdF0pJiYobj1lW3I9ZS5hY3RpdmVdKSYmKG4udGltZXIuYz1udWxsLG4udGltZXIudD1OYU4sLS1lLmNvdW50P2RlbGV0ZSBlW3JdOmRlbGV0ZSB0aGlzW3RdLGUuYWN0aXZlKz0uNSxuLmV2ZW50JiZuLmV2ZW50LmludGVycnVwdC5jYWxsKHRoaXMsdGhpcy5fX2RhdGFfXyxuLmluZGV4KSl9fWZ1bmN0aW9uIEZpKHQsZSxyKXtyZXR1cm4gVSh0LGppKSx0Lm5hbWVzcGFjZT1lLHQuaWQ9cix0fXZhciBCaSxOaSxqaT1bXSxVaT0wO2Z1bmN0aW9uIFZpKHQsZSxyLG4pe3ZhciBpPXQuaWQsYT10Lm5hbWVzcGFjZTtyZXR1cm4gdXQodCwiZnVuY3Rpb24iPT10eXBlb2Ygcj9mdW5jdGlvbih0LG8scyl7dFthXVtpXS50d2Vlbi5zZXQoZSxuKHIuY2FsbCh0LHQuX19kYXRhX18sbyxzKSkpfToocj1uKHIpLGZ1bmN0aW9uKHQpe3RbYV1baV0udHdlZW4uc2V0KGUscil9KSl9ZnVuY3Rpb24gSGkodCl7cmV0dXJuIG51bGw9PXQmJih0PSIiKSxmdW5jdGlvbigpe3RoaXMudGV4dENvbnRlbnQ9dH19ZnVuY3Rpb24gcWkodCl7cmV0dXJuIG51bGw9PXQ/Il9fdHJhbnNpdGlvbl9fIjoiX190cmFuc2l0aW9uXyIrdCsiX18ifWZ1bmN0aW9uIEdpKHQsZSxyLG4saSl7dmFyIGEsbyxzLGwsYyx1PXRbcl18fCh0W3JdPXthY3RpdmU6MCxjb3VudDowfSksZj11W25dO2Z1bmN0aW9uIGgocil7dmFyIGk9dS5hY3RpdmUsaD11W2ldO2Zvcih2YXIgZCBpbiBoJiYoaC50aW1lci5jPW51bGwsaC50aW1lci50PU5hTiwtLXUuY291bnQsZGVsZXRlIHVbaV0saC5ldmVudCYmaC5ldmVudC5pbnRlcnJ1cHQuY2FsbCh0LHQuX19kYXRhX18saC5pbmRleCkpLHUpaWYoK2Q8bil7dmFyIG09dVtkXTttLnRpbWVyLmM9bnVsbCxtLnRpbWVyLnQ9TmFOLC0tdS5jb3VudCxkZWxldGUgdVtkXX1vLmM9cCx2ZSgoZnVuY3Rpb24oKXtyZXR1cm4gby5jJiZwKHJ8fDEpJiYoby5jPW51bGwsby50PU5hTiksMX0pLDAsYSksdS5hY3RpdmU9bixmLmV2ZW50JiZmLmV2ZW50LnN0YXJ0LmNhbGwodCx0Ll9fZGF0YV9fLGUpLGM9W10sZi50d2Vlbi5mb3JFYWNoKChmdW5jdGlvbihyLG4peyhuPW4uY2FsbCh0LHQuX19kYXRhX18sZSkpJiZjLnB1c2gobil9KSksbD1mLmVhc2Uscz1mLmR1cmF0aW9ufWZ1bmN0aW9uIHAoaSl7Zm9yKHZhciBhPWkvcyxvPWwoYSksaD1jLmxlbmd0aDtoPjA7KWNbLS1oXS5jYWxsKHQsbyk7aWYoYT49MSlyZXR1cm4gZi5ldmVudCYmZi5ldmVudC5lbmQuY2FsbCh0LHQuX19kYXRhX18sZSksLS11LmNvdW50P2RlbGV0ZSB1W25dOmRlbGV0ZSB0W3JdLDF9Znx8KGE9aS50aW1lLG89dmUoKGZ1bmN0aW9uKHQpe3ZhciBlPWYuZGVsYXk7aWYoby50PWUrYSxlPD10KXJldHVybiBoKHQtZSk7by5jPWh9KSwwLGEpLGY9dVtuXT17dHdlZW46bmV3IF8sdGltZTphLHRpbWVyOm8sZGVsYXk6aS5kZWxheSxkdXJhdGlvbjppLmR1cmF0aW9uLGVhc2U6aS5lYXNlLGluZGV4OmV9LGk9bnVsbCwrK3UuY291bnQpfWppLmNhbGw9WS5jYWxsLGppLmVtcHR5PVkuZW1wdHksamkubm9kZT1ZLm5vZGUsamkuc2l6ZT1ZLnNpemUsdC50cmFuc2l0aW9uPWZ1bmN0aW9uKGUscil7cmV0dXJuIGUmJmUudHJhbnNpdGlvbj9CaT9lLnRyYW5zaXRpb24ocik6ZTp0LnNlbGVjdGlvbigpLnRyYW5zaXRpb24oZSl9LHQudHJhbnNpdGlvbi5wcm90b3R5cGU9amksamkuc2VsZWN0PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpPXRoaXMuaWQsYT10aGlzLm5hbWVzcGFjZSxvPVtdO3Q9Vyh0KTtmb3IodmFyIHM9LTEsbD10aGlzLmxlbmd0aDsrK3M8bDspe28ucHVzaChlPVtdKTtmb3IodmFyIGM9dGhpc1tzXSx1PS0xLGY9Yy5sZW5ndGg7Kyt1PGY7KShuPWNbdV0pJiYocj10LmNhbGwobixuLl9fZGF0YV9fLHUscykpPygiX19kYXRhX18iaW4gbiYmKHIuX19kYXRhX189bi5fX2RhdGFfXyksR2kocix1LGEsaSxuW2FdW2ldKSxlLnB1c2gocikpOmUucHVzaChudWxsKX1yZXR1cm4gRmkobyxhLGkpfSxqaS5zZWxlY3RBbGw9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvPXRoaXMuaWQscz10aGlzLm5hbWVzcGFjZSxsPVtdO3Q9WCh0KTtmb3IodmFyIGM9LTEsdT10aGlzLmxlbmd0aDsrK2M8dTspZm9yKHZhciBmPXRoaXNbY10saD0tMSxwPWYubGVuZ3RoOysraDxwOylpZihuPWZbaF0pe2E9bltzXVtvXSxyPXQuY2FsbChuLG4uX19kYXRhX18saCxjKSxsLnB1c2goZT1bXSk7Zm9yKHZhciBkPS0xLG09ci5sZW5ndGg7KytkPG07KShpPXJbZF0pJiZHaShpLGQscyxvLGEpLGUucHVzaChpKX1yZXR1cm4gRmkobCxzLG8pfSxqaS5maWx0ZXI9ZnVuY3Rpb24odCl7dmFyIGUscixuPVtdOyJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1sdCh0KSk7Zm9yKHZhciBpPTAsYT10aGlzLmxlbmd0aDtpPGE7aSsrKXtuLnB1c2goZT1bXSk7Zm9yKHZhciBvLHM9MCxsPShvPXRoaXNbaV0pLmxlbmd0aDtzPGw7cysrKShyPW9bc10pJiZ0LmNhbGwocixyLl9fZGF0YV9fLHMsaSkmJmUucHVzaChyKX1yZXR1cm4gRmkobix0aGlzLm5hbWVzcGFjZSx0aGlzLmlkKX0samkudHdlZW49ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmlkLG49dGhpcy5uYW1lc3BhY2U7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8Mj90aGlzLm5vZGUoKVtuXVtyXS50d2Vlbi5nZXQodCk6dXQodGhpcyxudWxsPT1lP2Z1bmN0aW9uKGUpe2Vbbl1bcl0udHdlZW4ucmVtb3ZlKHQpfTpmdW5jdGlvbihpKXtpW25dW3JdLnR3ZWVuLnNldCh0LGUpfSl9LGppLmF0dHI9ZnVuY3Rpb24oZSxyKXtpZihhcmd1bWVudHMubGVuZ3RoPDIpe2ZvcihyIGluIGUpdGhpcy5hdHRyKHIsZVtyXSk7cmV0dXJuIHRoaXN9dmFyIG49InRyYW5zZm9ybSI9PWU/TnI6eXIsaT10Lm5zLnF1YWxpZnkoZSk7ZnVuY3Rpb24gYSgpe3RoaXMucmVtb3ZlQXR0cmlidXRlKGkpfWZ1bmN0aW9uIG8oKXt0aGlzLnJlbW92ZUF0dHJpYnV0ZU5TKGkuc3BhY2UsaS5sb2NhbCl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gbnVsbD09dD9hOih0Kz0iIixmdW5jdGlvbigpe3ZhciBlLHI9dGhpcy5nZXRBdHRyaWJ1dGUoaSk7cmV0dXJuIHIhPT10JiYoZT1uKHIsdCksZnVuY3Rpb24odCl7dGhpcy5zZXRBdHRyaWJ1dGUoaSxlKHQpKX0pfSl9ZnVuY3Rpb24gbCh0KXtyZXR1cm4gbnVsbD09dD9vOih0Kz0iIixmdW5jdGlvbigpe3ZhciBlLHI9dGhpcy5nZXRBdHRyaWJ1dGVOUyhpLnNwYWNlLGkubG9jYWwpO3JldHVybiByIT09dCYmKGU9bihyLHQpLGZ1bmN0aW9uKHQpe3RoaXMuc2V0QXR0cmlidXRlTlMoaS5zcGFjZSxpLmxvY2FsLGUodCkpfSl9KX1yZXR1cm4gVmkodGhpcywiYXR0ci4iK2UscixpLmxvY2FsP2w6cyl9LGppLmF0dHJUd2Vlbj1mdW5jdGlvbihlLHIpe3ZhciBuPXQubnMucXVhbGlmeShlKTtyZXR1cm4gdGhpcy50d2VlbigiYXR0ci4iK2Usbi5sb2NhbD9mdW5jdGlvbih0LGUpe3ZhciBpPXIuY2FsbCh0aGlzLHQsZSx0aGlzLmdldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCkpO3JldHVybiBpJiZmdW5jdGlvbih0KXt0aGlzLnNldEF0dHJpYnV0ZU5TKG4uc3BhY2Usbi5sb2NhbCxpKHQpKX19OmZ1bmN0aW9uKHQsZSl7dmFyIGk9ci5jYWxsKHRoaXMsdCxlLHRoaXMuZ2V0QXR0cmlidXRlKG4pKTtyZXR1cm4gaSYmZnVuY3Rpb24odCl7dGhpcy5zZXRBdHRyaWJ1dGUobixpKHQpKX19KX0samkuc3R5bGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWFyZ3VtZW50cy5sZW5ndGg7aWYobjwzKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpe2ZvcihyIGluIG48MiYmKGU9IiIpLHQpdGhpcy5zdHlsZShyLHRbcl0sZSk7cmV0dXJuIHRoaXN9cj0iIn1mdW5jdGlvbiBpKCl7dGhpcy5zdHlsZS5yZW1vdmVQcm9wZXJ0eSh0KX1mdW5jdGlvbiBhKGUpe3JldHVybiBudWxsPT1lP2k6KGUrPSIiLGZ1bmN0aW9uKCl7dmFyIG4saT1vKHRoaXMpLmdldENvbXB1dGVkU3R5bGUodGhpcyxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKHQpO3JldHVybiBpIT09ZSYmKG49eXIoaSxlKSxmdW5jdGlvbihlKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsbihlKSxyKX0pfSl9cmV0dXJuIFZpKHRoaXMsInN0eWxlLiIrdCxlLGEpfSxqaS5zdHlsZVR3ZWVuPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKG4saSl7dmFyIGE9ZS5jYWxsKHRoaXMsbixpLG8odGhpcykuZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLG51bGwpLmdldFByb3BlcnR5VmFsdWUodCkpO3JldHVybiBhJiZmdW5jdGlvbihlKXt0aGlzLnN0eWxlLnNldFByb3BlcnR5KHQsYShlKSxyKX19cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8MyYmKHI9IiIpLHRoaXMudHdlZW4oInN0eWxlLiIrdCxuKX0samkudGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gVmkodGhpcywidGV4dCIsdCxIaSl9LGppLnJlbW92ZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMubmFtZXNwYWNlO3JldHVybiB0aGlzLmVhY2goImVuZC50cmFuc2l0aW9uIiwoZnVuY3Rpb24oKXt2YXIgZTt0aGlzW3RdLmNvdW50PDImJihlPXRoaXMucGFyZW50Tm9kZSkmJmUucmVtb3ZlQ2hpbGQodGhpcyl9KSl9LGppLmVhc2U9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5pZCxuPXRoaXMubmFtZXNwYWNlO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/dGhpcy5ub2RlKClbbl1bcl0uZWFzZTooImZ1bmN0aW9uIiE9dHlwZW9mIGUmJihlPXQuZWFzZS5hcHBseSh0LGFyZ3VtZW50cykpLHV0KHRoaXMsKGZ1bmN0aW9uKHQpe3Rbbl1bcl0uZWFzZT1lfSkpKX0samkuZGVsYXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pZCxyPXRoaXMubmFtZXNwYWNlO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPDE/dGhpcy5ub2RlKClbcl1bZV0uZGVsYXk6dXQodGhpcywiZnVuY3Rpb24iPT10eXBlb2YgdD9mdW5jdGlvbihuLGksYSl7bltyXVtlXS5kZWxheT0rdC5jYWxsKG4sbi5fX2RhdGFfXyxpLGEpfToodD0rdCxmdW5jdGlvbihuKXtuW3JdW2VdLmRlbGF5PXR9KSl9LGppLmR1cmF0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaWQscj10aGlzLm5hbWVzcGFjZTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwxP3RoaXMubm9kZSgpW3JdW2VdLmR1cmF0aW9uOnV0KHRoaXMsImZ1bmN0aW9uIj09dHlwZW9mIHQ/ZnVuY3Rpb24obixpLGEpe25bcl1bZV0uZHVyYXRpb249TWF0aC5tYXgoMSx0LmNhbGwobixuLl9fZGF0YV9fLGksYSkpfToodD1NYXRoLm1heCgxLHQpLGZ1bmN0aW9uKG4pe25bcl1bZV0uZHVyYXRpb249dH0pKX0samkuZWFjaD1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMuaWQsaT10aGlzLm5hbWVzcGFjZTtpZihhcmd1bWVudHMubGVuZ3RoPDIpe3ZhciBhPU5pLG89Qmk7dHJ5e0JpPW4sdXQodGhpcywoZnVuY3Rpb24odCxyLGEpe05pPXRbaV1bbl0sZS5jYWxsKHQsdC5fX2RhdGFfXyxyLGEpfSkpfWZpbmFsbHl7Tmk9YSxCaT1vfX1lbHNlIHV0KHRoaXMsKGZ1bmN0aW9uKGEpe3ZhciBvPWFbaV1bbl07KG8uZXZlbnR8fChvLmV2ZW50PXQuZGlzcGF0Y2goInN0YXJ0IiwiZW5kIiwiaW50ZXJydXB0IikpKS5vbihlLHIpfSkpO3JldHVybiB0aGlzfSxqaS50cmFuc2l0aW9uPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGUscixuPXRoaXMuaWQsaT0rK1VpLGE9dGhpcy5uYW1lc3BhY2Usbz1bXSxzPTAsbD10aGlzLmxlbmd0aDtzPGw7cysrKXtvLnB1c2godD1bXSk7Zm9yKHZhciBjLHU9MCxmPShjPXRoaXNbc10pLmxlbmd0aDt1PGY7dSsrKShlPWNbdV0pJiZHaShlLHUsYSxpLHt0aW1lOihyPWVbYV1bbl0pLnRpbWUsZWFzZTpyLmVhc2UsZGVsYXk6ci5kZWxheStyLmR1cmF0aW9uLGR1cmF0aW9uOnIuZHVyYXRpb259KSx0LnB1c2goZSl9cmV0dXJuIEZpKG8sYSxpKX0sdC5zdmcuYXhpcz1mdW5jdGlvbigpe3ZhciBlLHI9dC5zY2FsZS5saW5lYXIoKSxpPVlpLGE9NixvPTYscz0zLGw9WzEwXSxjPW51bGw7ZnVuY3Rpb24gdShuKXtuLmVhY2goKGZ1bmN0aW9uKCl7dmFyIG4sdT10LnNlbGVjdCh0aGlzKSxmPXRoaXMuX19jaGFydF9ffHxyLGg9dGhpcy5fX2NoYXJ0X189ci5jb3B5KCkscD1udWxsPT1jP2gudGlja3M/aC50aWNrcy5hcHBseShoLGwpOmguZG9tYWluKCk6YyxkPW51bGw9PWU/aC50aWNrRm9ybWF0P2gudGlja0Zvcm1hdC5hcHBseShoLGwpOkM6ZSxtPXUuc2VsZWN0QWxsKCIudGljayIpLmRhdGEocCxoKSxnPW0uZW50ZXIoKS5pbnNlcnQoImciLCIuZG9tYWluIikuYXR0cigiY2xhc3MiLCJ0aWNrIikuc3R5bGUoIm9wYWNpdHkiLGt0KSx2PXQudHJhbnNpdGlvbihtLmV4aXQoKSkuc3R5bGUoIm9wYWNpdHkiLGt0KS5yZW1vdmUoKSx5PXQudHJhbnNpdGlvbihtLm9yZGVyKCkpLnN0eWxlKCJvcGFjaXR5IiwxKSx4PU1hdGgubWF4KGEsMCkrcyxiPURuKGgpLF89dS5zZWxlY3RBbGwoIi5kb21haW4iKS5kYXRhKFswXSksdz0oXy5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiZG9tYWluIiksdC50cmFuc2l0aW9uKF8pKTtnLmFwcGVuZCgibGluZSIpLGcuYXBwZW5kKCJ0ZXh0Iik7dmFyIFQsayxBLE0sUz1nLnNlbGVjdCgibGluZSIpLEU9eS5zZWxlY3QoImxpbmUiKSxMPW0uc2VsZWN0KCJ0ZXh0IikudGV4dChkKSxQPWcuc2VsZWN0KCJ0ZXh0IiksST15LnNlbGVjdCgidGV4dCIpLE89InRvcCI9PT1pfHwibGVmdCI9PT1pPy0xOjE7aWYoImJvdHRvbSI9PT1pfHwidG9wIj09PWk/KG49WGksVD0ieCIsQT0ieSIsaz0ieDIiLE09InkyIixMLmF0dHIoImR5IixPPDA/IjBlbSI6Ii43MWVtIikuc3R5bGUoInRleHQtYW5jaG9yIiwibWlkZGxlIiksdy5hdHRyKCJkIiwiTSIrYlswXSsiLCIrTypvKyJWMEgiK2JbMV0rIlYiK08qbykpOihuPVppLFQ9InkiLEE9IngiLGs9InkyIixNPSJ4MiIsTC5hdHRyKCJkeSIsIi4zMmVtIikuc3R5bGUoInRleHQtYW5jaG9yIixPPDA/ImVuZCI6InN0YXJ0Iiksdy5hdHRyKCJkIiwiTSIrTypvKyIsIitiWzBdKyJIMFYiK2JbMV0rIkgiK08qbykpLFMuYXR0cihNLE8qYSksUC5hdHRyKEEsTyp4KSxFLmF0dHIoaywwKS5hdHRyKE0sTyphKSxJLmF0dHIoVCwwKS5hdHRyKEEsTyp4KSxoLnJhbmdlQmFuZCl7dmFyIHo9aCxEPXoucmFuZ2VCYW5kKCkvMjtmPWg9ZnVuY3Rpb24odCl7cmV0dXJuIHoodCkrRH19ZWxzZSBmLnJhbmdlQmFuZD9mPWg6di5jYWxsKG4saCxmKTtnLmNhbGwobixmLGgpLHkuY2FsbChuLGgsaCl9KSl9cmV0dXJuIHUuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9dCx1KTpyfSx1Lm9yaWVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT10IGluIFdpP3QrIiI6WWksdSk6aX0sdS50aWNrcz1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPW4oYXJndW1lbnRzKSx1KTpsfSx1LnRpY2tWYWx1ZXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9dCx1KTpjfSx1LnRpY2tGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9dCx1KTplfSx1LnRpY2tTaXplPWZ1bmN0aW9uKHQpe3ZhciBlPWFyZ3VtZW50cy5sZW5ndGg7cmV0dXJuIGU/KGE9K3Qsbz0rYXJndW1lbnRzW2UtMV0sdSk6YX0sdS5pbm5lclRpY2tTaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LHUpOmF9LHUub3V0ZXJUaWNrU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0rdCx1KTpvfSx1LnRpY2tQYWRkaW5nPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSt0LHUpOnN9LHUudGlja1N1YmRpdmlkZT1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoJiZ1fSx1fTt2YXIgWWk9ImJvdHRvbSIsV2k9e3RvcDoxLHJpZ2h0OjEsYm90dG9tOjEsbGVmdDoxfTtmdW5jdGlvbiBYaSh0LGUscil7dC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgbj1lKHQpO3JldHVybiJ0cmFuc2xhdGUoIisoaXNGaW5pdGUobik/bjpyKHQpKSsiLDApIn0pKX1mdW5jdGlvbiBaaSh0LGUscil7dC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgbj1lKHQpO3JldHVybiJ0cmFuc2xhdGUoMCwiKyhpc0Zpbml0ZShuKT9uOnIodCkpKyIpIn0pKX10LnN2Zy5icnVzaD1mdW5jdGlvbigpe3ZhciBlLHIsbj1OKGgsImJydXNoc3RhcnQiLCJicnVzaCIsImJydXNoZW5kIiksaT1udWxsLGE9bnVsbCxzPVswLDBdLGw9WzAsMF0sYz0hMCx1PSEwLGY9S2lbMF07ZnVuY3Rpb24gaChlKXtlLmVhY2goKGZ1bmN0aW9uKCl7dmFyIGU9dC5zZWxlY3QodGhpcykuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIikuc3R5bGUoIi13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvciIsInJnYmEoMCwwLDAsMCkiKS5vbigibW91c2Vkb3duLmJydXNoIixnKS5vbigidG91Y2hzdGFydC5icnVzaCIsZykscj1lLnNlbGVjdEFsbCgiLmJhY2tncm91bmQiKS5kYXRhKFswXSk7ci5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmFja2dyb3VuZCIpLnN0eWxlKCJ2aXNpYmlsaXR5IiwiaGlkZGVuIikuc3R5bGUoImN1cnNvciIsImNyb3NzaGFpciIpLGUuc2VsZWN0QWxsKCIuZXh0ZW50IikuZGF0YShbMF0pLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJleHRlbnQiKS5zdHlsZSgiY3Vyc29yIiwibW92ZSIpO3ZhciBuPWUuc2VsZWN0QWxsKCIucmVzaXplIikuZGF0YShmLEMpO24uZXhpdCgpLnJlbW92ZSgpLG4uZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJyZXNpemUgIit0fSkpLnN0eWxlKCJjdXJzb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gSmlbdF19KSkuYXBwZW5kKCJyZWN0IikuYXR0cigieCIsKGZ1bmN0aW9uKHQpe3JldHVybi9bZXddJC8udGVzdCh0KT8tMzpudWxsfSkpLmF0dHIoInkiLChmdW5jdGlvbih0KXtyZXR1cm4vXltuc10vLnRlc3QodCk/LTM6bnVsbH0pKS5hdHRyKCJ3aWR0aCIsNikuYXR0cigiaGVpZ2h0Iiw2KS5zdHlsZSgidmlzaWJpbGl0eSIsImhpZGRlbiIpLG4uc3R5bGUoImRpc3BsYXkiLGguZW1wdHkoKT8ibm9uZSI6bnVsbCk7dmFyIG8scz10LnRyYW5zaXRpb24oZSksbD10LnRyYW5zaXRpb24ocik7aSYmKG89RG4oaSksbC5hdHRyKCJ4IixvWzBdKS5hdHRyKCJ3aWR0aCIsb1sxXS1vWzBdKSxkKHMpKSxhJiYobz1EbihhKSxsLmF0dHIoInkiLG9bMF0pLmF0dHIoImhlaWdodCIsb1sxXS1vWzBdKSxtKHMpKSxwKHMpfSkpfWZ1bmN0aW9uIHAodCl7dC5zZWxlY3RBbGwoIi5yZXNpemUiKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4idHJhbnNsYXRlKCIrc1srL2UkLy50ZXN0KHQpXSsiLCIrbFsrL15zLy50ZXN0KHQpXSsiKSJ9KSl9ZnVuY3Rpb24gZCh0KXt0LnNlbGVjdCgiLmV4dGVudCIpLmF0dHIoIngiLHNbMF0pLHQuc2VsZWN0QWxsKCIuZXh0ZW50LC5uPnJlY3QsLnM+cmVjdCIpLmF0dHIoIndpZHRoIixzWzFdLXNbMF0pfWZ1bmN0aW9uIG0odCl7dC5zZWxlY3QoIi5leHRlbnQiKS5hdHRyKCJ5IixsWzBdKSx0LnNlbGVjdEFsbCgiLmV4dGVudCwuZT5yZWN0LC53PnJlY3QiKS5hdHRyKCJoZWlnaHQiLGxbMV0tbFswXSl9ZnVuY3Rpb24gZygpe3ZhciBmLGcsdj10aGlzLHk9dC5zZWxlY3QodC5ldmVudC50YXJnZXQpLHg9bi5vZih2LGFyZ3VtZW50cyksYj10LnNlbGVjdCh2KSxfPXkuZGF0dW0oKSx3PSEvXihufHMpJC8udGVzdChfKSYmaSxUPSEvXihlfHcpJC8udGVzdChfKSYmYSxrPXkuY2xhc3NlZCgiZXh0ZW50IiksQT1idCh2KSxNPXQubW91c2UodiksUz10LnNlbGVjdChvKHYpKS5vbigia2V5ZG93bi5icnVzaCIsQykub24oImtleXVwLmJydXNoIixQKTtpZih0LmV2ZW50LmNoYW5nZWRUb3VjaGVzP1Mub24oInRvdWNobW92ZS5icnVzaCIsSSkub24oInRvdWNoZW5kLmJydXNoIix6KTpTLm9uKCJtb3VzZW1vdmUuYnJ1c2giLEkpLm9uKCJtb3VzZXVwLmJydXNoIix6KSxiLmludGVycnVwdCgpLnNlbGVjdEFsbCgiKiIpLmludGVycnVwdCgpLGspTVswXT1zWzBdLU1bMF0sTVsxXT1sWzBdLU1bMV07ZWxzZSBpZihfKXt2YXIgRT0rL3ckLy50ZXN0KF8pLEw9Ky9ebi8udGVzdChfKTtnPVtzWzEtRV0tTVswXSxsWzEtTF0tTVsxXV0sTVswXT1zW0VdLE1bMV09bFtMXX1lbHNlIHQuZXZlbnQuYWx0S2V5JiYoZj1NLnNsaWNlKCkpO2Z1bmN0aW9uIEMoKXszMj09dC5ldmVudC5rZXlDb2RlJiYoa3x8KGY9bnVsbCxNWzBdLT1zWzFdLE1bMV0tPWxbMV0saz0yKSxGKCkpfWZ1bmN0aW9uIFAoKXszMj09dC5ldmVudC5rZXlDb2RlJiYyPT1rJiYoTVswXSs9c1sxXSxNWzFdKz1sWzFdLGs9MCxGKCkpfWZ1bmN0aW9uIEkoKXt2YXIgZT10Lm1vdXNlKHYpLHI9ITE7ZyYmKGVbMF0rPWdbMF0sZVsxXSs9Z1sxXSksa3x8KHQuZXZlbnQuYWx0S2V5PyhmfHwoZj1bKHNbMF0rc1sxXSkvMiwobFswXStsWzFdKS8yXSksTVswXT1zWysoZVswXTxmWzBdKV0sTVsxXT1sWysoZVsxXTxmWzFdKV0pOmY9bnVsbCksdyYmTyhlLGksMCkmJihkKGIpLHI9ITApLFQmJk8oZSxhLDEpJiYobShiKSxyPSEwKSxyJiYocChiKSx4KHt0eXBlOiJicnVzaCIsbW9kZTprPyJtb3ZlIjoicmVzaXplIn0pKX1mdW5jdGlvbiBPKHQsbixpKXt2YXIgYSxvLGg9RG4obikscD1oWzBdLGQ9aFsxXSxtPU1baV0sZz1pP2w6cyx2PWdbMV0tZ1swXTtpZihrJiYocC09bSxkLT12K20pLGE9KGk/dTpjKT9NYXRoLm1heChwLE1hdGgubWluKGQsdFtpXSkpOnRbaV0saz9vPShhKz1tKSt2OihmJiYobT1NYXRoLm1heChwLE1hdGgubWluKGQsMipmW2ldLWEpKSksbTxhPyhvPWEsYT1tKTpvPW0pLGdbMF0hPWF8fGdbMV0hPW8pcmV0dXJuIGk/cj1udWxsOmU9bnVsbCxnWzBdPWEsZ1sxXT1vLCEwfWZ1bmN0aW9uIHooKXtJKCksYi5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKS5zZWxlY3RBbGwoIi5yZXNpemUiKS5zdHlsZSgiZGlzcGxheSIsaC5lbXB0eSgpPyJub25lIjpudWxsKSx0LnNlbGVjdCgiYm9keSIpLnN0eWxlKCJjdXJzb3IiLG51bGwpLFMub24oIm1vdXNlbW92ZS5icnVzaCIsbnVsbCkub24oIm1vdXNldXAuYnJ1c2giLG51bGwpLm9uKCJ0b3VjaG1vdmUuYnJ1c2giLG51bGwpLm9uKCJ0b3VjaGVuZC5icnVzaCIsbnVsbCkub24oImtleWRvd24uYnJ1c2giLG51bGwpLm9uKCJrZXl1cC5icnVzaCIsbnVsbCksQSgpLHgoe3R5cGU6ImJydXNoZW5kIn0pfWIuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwibm9uZSIpLnNlbGVjdEFsbCgiLnJlc2l6ZSIpLnN0eWxlKCJkaXNwbGF5IixudWxsKSx0LnNlbGVjdCgiYm9keSIpLnN0eWxlKCJjdXJzb3IiLHkuc3R5bGUoImN1cnNvciIpKSx4KHt0eXBlOiJicnVzaHN0YXJ0In0pLEkoKX1yZXR1cm4gaC5ldmVudD1mdW5jdGlvbihpKXtpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIGk9bi5vZih0aGlzLGFyZ3VtZW50cyksYT17eDpzLHk6bCxpOmUsajpyfSxvPXRoaXMuX19jaGFydF9ffHxhO3RoaXMuX19jaGFydF9fPWEsQmk/dC5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmVhY2goInN0YXJ0LmJydXNoIiwoZnVuY3Rpb24oKXtlPW8uaSxyPW8uaixzPW8ueCxsPW8ueSxpKHt0eXBlOiJicnVzaHN0YXJ0In0pfSkpLnR3ZWVuKCJicnVzaDpicnVzaCIsKGZ1bmN0aW9uKCl7dmFyIHQ9eHIocyxhLngpLG49eHIobCxhLnkpO3JldHVybiBlPXI9bnVsbCxmdW5jdGlvbihlKXtzPWEueD10KGUpLGw9YS55PW4oZSksaSh7dHlwZToiYnJ1c2giLG1vZGU6InJlc2l6ZSJ9KX19KSkuZWFjaCgiZW5kLmJydXNoIiwoZnVuY3Rpb24oKXtlPWEuaSxyPWEuaixpKHt0eXBlOiJicnVzaCIsbW9kZToicmVzaXplIn0pLGkoe3R5cGU6ImJydXNoZW5kIn0pfSkpOihpKHt0eXBlOiJicnVzaHN0YXJ0In0pLGkoe3R5cGU6ImJydXNoIixtb2RlOiJyZXNpemUifSksaSh7dHlwZToiYnJ1c2hlbmQifSkpfSkpfSxoLng9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9S2lbIShpPXQpPDwxfCFhXSxoKTppfSxoLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGY9S2lbIWk8PDF8IShhPXQpXSxoKTphfSxoLmNsYW1wPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpJiZhPyhjPSEhdFswXSx1PSEhdFsxXSk6aT9jPSEhdDphJiYodT0hIXQpLGgpOmkmJmE/W2MsdV06aT9jOmE/dTpudWxsfSxoLmV4dGVudD1mdW5jdGlvbih0KXt2YXIgbixvLGMsdSxmO3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpJiYobj10WzBdLG89dFsxXSxhJiYobj1uWzBdLG89b1swXSksZT1bbixvXSxpLmludmVydCYmKG49aShuKSxvPWkobykpLG88biYmKGY9bixuPW8sbz1mKSxuPT1zWzBdJiZvPT1zWzFdfHwocz1bbixvXSkpLGEmJihjPXRbMF0sdT10WzFdLGkmJihjPWNbMV0sdT11WzFdKSxyPVtjLHVdLGEuaW52ZXJ0JiYoYz1hKGMpLHU9YSh1KSksdTxjJiYoZj1jLGM9dSx1PWYpLGM9PWxbMF0mJnU9PWxbMV18fChsPVtjLHVdKSksaCk6KGkmJihlPyhuPWVbMF0sbz1lWzFdKToobj1zWzBdLG89c1sxXSxpLmludmVydCYmKG49aS5pbnZlcnQobiksbz1pLmludmVydChvKSksbzxuJiYoZj1uLG49byxvPWYpKSksYSYmKHI/KGM9clswXSx1PXJbMV0pOihjPWxbMF0sdT1sWzFdLGEuaW52ZXJ0JiYoYz1hLmludmVydChjKSx1PWEuaW52ZXJ0KHUpKSx1PGMmJihmPWMsYz11LHU9ZikpKSxpJiZhP1tbbixjXSxbbyx1XV06aT9bbixvXTphJiZbYyx1XSl9LGguY2xlYXI9ZnVuY3Rpb24oKXtyZXR1cm4gaC5lbXB0eSgpfHwocz1bMCwwXSxsPVswLDBdLGU9cj1udWxsKSxofSxoLmVtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuISFpJiZzWzBdPT1zWzFdfHwhIWEmJmxbMF09PWxbMV19LHQucmViaW5kKGgsbiwib24iKX07dmFyIEppPXtuOiJucy1yZXNpemUiLGU6ImV3LXJlc2l6ZSIsczoibnMtcmVzaXplIix3OiJldy1yZXNpemUiLG53OiJud3NlLXJlc2l6ZSIsbmU6Im5lc3ctcmVzaXplIixzZToibndzZS1yZXNpemUiLHN3OiJuZXN3LXJlc2l6ZSJ9LEtpPVtbIm4iLCJlIiwicyIsInciLCJudyIsIm5lIiwic2UiLCJzdyJdLFsiZSIsInciXSxbIm4iLCJzIl0sW11dO2Z1bmN0aW9uIFFpKHQpe3JldHVybiBKU09OLnBhcnNlKHQucmVzcG9uc2VUZXh0KX1mdW5jdGlvbiAkaSh0KXt2YXIgZT1pLmNyZWF0ZVJhbmdlKCk7cmV0dXJuIGUuc2VsZWN0Tm9kZShpLmJvZHkpLGUuY3JlYXRlQ29udGV4dHVhbEZyYWdtZW50KHQucmVzcG9uc2VUZXh0KX10LnRleHQ9dWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnJlc3BvbnNlVGV4dH0pKSx0Lmpzb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gZmUodCwiYXBwbGljYXRpb24vanNvbiIsUWksZSl9LHQuaHRtbD1mdW5jdGlvbih0LGUpe3JldHVybiBmZSh0LCJ0ZXh0L2h0bWwiLCRpLGUpfSx0LnhtbD11ZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVzcG9uc2VYTUx9KSksIm9iamVjdCI9PXR5cGVvZiBlJiZlLmV4cG9ydHM/ZS5leHBvcnRzPXQ6dGhpcy5kMz10fSkuYXBwbHkoc2VsZil9LHt9XSw1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9xdWFkIil9LHsiLi9xdWFkIjo2MH1dLDYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksaT10KCJjbGFtcCIpLGE9dCgicGFyc2UtcmVjdCIpLG89dCgiYXJyYXktYm91bmRzIikscz10KCJwaWNrLWJ5LWFsaWFzIiksbD10KCJkZWZpbmVkIiksYz10KCJmbGF0dGVuLXZlcnRleC1kYXRhIiksdT10KCJpcy1vYmoiKSxmPXQoImR0eXBlIiksaD10KCJtYXRoLWxvZzIiKTtmdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByPWVbMF0sbj1lWzFdLGE9MS8oZVsyXS1yKSxvPTEvKGVbM10tbikscz1uZXcgQXJyYXkodC5sZW5ndGgpLGw9MCxjPXQubGVuZ3RoLzI7bDxjO2wrKylzWzIqbF09aSgodFsyKmxdLXIpKmEsMCwxKSxzWzIqbCsxXT1pKCh0WzIqbCsxXS1uKSpvLDAsMSk7cmV0dXJuIHN9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9e30pLHQ9Yyh0LCJmbG9hdDY0IiksZT1zKGUse2JvdW5kczoicmFuZ2UgYm91bmRzIGRhdGFCb3ggZGF0YWJveCIsbWF4RGVwdGg6ImRlcHRoIG1heERlcHRoIG1heGRlcHRoIGxldmVsIG1heExldmVsIG1heGxldmVsIGxldmVscyIsZHR5cGU6InR5cGUgZHR5cGUgZm9ybWF0IG91dCBkc3Qgb3V0cHV0IGRlc3RpbmF0aW9uIn0pO3ZhciByPWwoZS5tYXhEZXB0aCwyNTUpLGk9bChlLmJvdW5kcyxvKHQsMikpO2lbMF09PT1pWzJdJiZpWzJdKyssaVsxXT09PWlbM10mJmlbM10rKzt2YXIgZCxtPXAodCxpKSxnPXQubGVuZ3RoPj4+MTtlLmR0eXBlfHwoZS5kdHlwZT0iYXJyYXkiKSwic3RyaW5nIj09dHlwZW9mIGUuZHR5cGU/ZD1uZXcoZihlLmR0eXBlKSkoZyk6ZS5kdHlwZSYmKGQ9ZS5kdHlwZSxBcnJheS5pc0FycmF5KGQpJiYoZC5sZW5ndGg9ZykpO2Zvcih2YXIgdj0wO3Y8ZzsrK3YpZFt2XT12O3ZhciB5PVtdLHg9W10sYj1bXSxfPVtdOyFmdW5jdGlvbiB0KGUsbixpLGEsbyxzKXtpZighYS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIGw9eVtvXXx8KHlbb109W10pLGM9YltvXXx8KGJbb109W10pLHU9eFtvXXx8KHhbb109W10pLGY9bC5sZW5ndGg7aWYoKytvPnJ8fHM+MTA3Mzc0MTgyNCl7Zm9yKHZhciBoPTA7aDxhLmxlbmd0aDtoKyspbC5wdXNoKGFbaF0pLGMucHVzaChzKSx1LnB1c2gobnVsbCxudWxsLG51bGwsbnVsbCk7cmV0dXJuIGZ9aWYobC5wdXNoKGFbMF0pLGMucHVzaChzKSxhLmxlbmd0aDw9MSlyZXR1cm4gdS5wdXNoKG51bGwsbnVsbCxudWxsLG51bGwpLGY7Zm9yKHZhciBwPS41KmksZD1lK3AsZz1uK3Asdj1bXSxfPVtdLHc9W10sVD1bXSxrPTEsQT1hLmxlbmd0aDtrPEE7aysrKXt2YXIgTT1hW2tdLFM9bVsyKk1dLEU9bVsyKk0rMV07UzxkP0U8Zz92LnB1c2goTSk6Xy5wdXNoKE0pOkU8Zz93LnB1c2goTSk6VC5wdXNoKE0pfXJldHVybiBzPDw9Mix1LnB1c2godChlLG4scCx2LG8scyksdChlLGcscCxfLG8scysxKSx0KGQsbixwLHcsbyxzKzIpLHQoZCxnLHAsVCxvLHMrMykpLGZ9KDAsMCwxLGQsMCwxKTtmb3IodmFyIHc9MCxUPTA7VDx5Lmxlbmd0aDtUKyspe3ZhciBrPXlbVF07aWYoZC5zZXQpZC5zZXQoayx3KTtlbHNlIGZvcih2YXIgQT0wLE09ay5sZW5ndGg7QTxNO0ErKylkW0Erd109a1tBXTt2YXIgUz13K3lbVF0ubGVuZ3RoO19bVF09W3csU10sdz1TfXJldHVybiBkLnJhbmdlPWZ1bmN0aW9uKCl7dmFyIGUscj1bXSxuPWFyZ3VtZW50cy5sZW5ndGg7Zm9yKDtuLS07KXJbbl09YXJndW1lbnRzW25dO2lmKHUocltyLmxlbmd0aC0xXSkpe3ZhciBvPXIucG9wKCk7ci5sZW5ndGh8fG51bGw9PW8ueCYmbnVsbD09by5sJiZudWxsPT1vLmxlZnR8fChyPVtvXSxlPXt9KSxlPXMobyx7bGV2ZWw6ImxldmVsIG1heExldmVsIixkOiJkIGRpYW0gZGlhbWV0ZXIgciByYWRpdXMgcHggcHhTaXplIHBpeGVsIHBpeGVsU2l6ZSBtYXhEIHNpemUgbWluU2l6ZSIsbG9kOiJsb2QgZGV0YWlscyByYW5nZXMgb2Zmc2V0cyJ9KX1lbHNlIGU9e307ci5sZW5ndGh8fChyPWkpO3ZhciBjPWEuYXBwbHkodm9pZCAwLHIpLGY9W01hdGgubWluKGMueCxjLngrYy53aWR0aCksTWF0aC5taW4oYy55LGMueStjLmhlaWdodCksTWF0aC5tYXgoYy54LGMueCtjLndpZHRoKSxNYXRoLm1heChjLnksYy55K2MuaGVpZ2h0KV0sZD1mWzBdLG09ZlsxXSxnPWZbMl0sdj1mWzNdLGI9cChbZCxtLGcsdl0saSksXz1iWzBdLHc9YlsxXSxUPWJbMl0saz1iWzNdLEE9bChlLmxldmVsLHkubGVuZ3RoKTtpZihudWxsIT1lLmQpe3ZhciBNOyJudW1iZXIiPT10eXBlb2YgZS5kP009W2UuZCxlLmRdOmUuZC5sZW5ndGgmJihNPWUuZCksQT1NYXRoLm1pbihNYXRoLm1heChNYXRoLmNlaWwoLWgoTWF0aC5hYnMoTVswXSkvKGlbMl0taVswXSkpKSxNYXRoLmNlaWwoLWgoTWF0aC5hYnMoTVsxXSkvKGlbM10taVsxXSkpKSksQSl9aWYoQT1NYXRoLm1pbihBLHkubGVuZ3RoKSxlLmxvZClyZXR1cm4gRShfLHcsVCxrLEEpO3ZhciBTPVtdO2Z1bmN0aW9uIEwoZSxyLG4saSxhLG8pe2lmKG51bGwhPT1hJiZudWxsIT09byYmIShfPmUrbnx8dz5yK258fFQ8ZXx8azxyfHxpPj1BfHxhPT09bykpe3ZhciBzPXlbaV07dm9pZCAwPT09byYmKG89cy5sZW5ndGgpO2Zvcih2YXIgbD1hO2w8bztsKyspe3ZhciBjPXNbbF0sdT10WzIqY10sZj10WzIqYysxXTt1Pj1kJiZ1PD1nJiZmPj1tJiZmPD12JiZTLnB1c2goYyl9dmFyIGg9eFtpXSxwPWhbNCphKzBdLGI9aFs0KmErMV0sTT1oWzQqYSsyXSxFPWhbNCphKzNdLFA9QyhoLGErMSksST0uNSpuLE89aSsxO0woZSxyLEksTyxwLGJ8fE18fEV8fFApLEwoZSxyK0ksSSxPLGIsTXx8RXx8UCksTChlK0kscixJLE8sTSxFfHxQKSxMKGUrSSxyK0ksSSxPLEUsUCl9fWZ1bmN0aW9uIEModCxlKXtmb3IodmFyIHI9bnVsbCxuPTA7bnVsbD09PXI7KWlmKHI9dFs0KmUrbl0sKytuPnQubGVuZ3RoKXJldHVybiBudWxsO3JldHVybiByfXJldHVybiBMKDAsMCwxLDAsMCwxKSxTfSxkO2Z1bmN0aW9uIEUodCxlLHIsaSxhKXtmb3IodmFyIG89W10scz0wO3M8YTtzKyspe3ZhciBsPWJbc10sYz1fW3NdWzBdLHU9TCh0LGUscyksZj1MKHIsaSxzKSxoPW4uZ2UobCx1KSxwPW4uZ3QobCxmLGgsbC5sZW5ndGgtMSk7b1tzXT1baCtjLHArY119cmV0dXJuIG99ZnVuY3Rpb24gTCh0LGUscil7Zm9yKHZhciBuPTEsaT0uNSxhPS41LG89LjUscz0wO3M8cjtzKyspbjw8PTIsbis9dDxpP2U8YT8wOjE6ZTxhPzI6MyxvKj0uNSxpKz10PGk/LW86byxhKz1lPGE/LW86bztyZXR1cm4gbn19fSx7ImFycmF5LWJvdW5kcyI6NzIsImJpbmFyeS1zZWFyY2gtYm91bmRzIjoxMDAsY2xhbXA6MTIxLGRlZmluZWQ6MTcxLGR0eXBlOjE3NiwiZmxhdHRlbi12ZXJ0ZXgtZGF0YSI6MjQ0LCJpcy1vYmoiOjQzNiwibWF0aC1sb2cyIjo0NDYsInBhcnNlLXJlY3QiOjQ3MSwicGljay1ieS1hbGlhcyI6NDc1fV0sNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPXQoIkB0dXJmL21ldGEiKTtmdW5jdGlvbiBpKHQpe3ZhciBlPTA7aWYodCYmdC5sZW5ndGg+MCl7ZSs9TWF0aC5hYnMoYSh0WzBdKSk7Zm9yKHZhciByPTE7cjx0Lmxlbmd0aDtyKyspZS09TWF0aC5hYnMoYSh0W3JdKSl9cmV0dXJuIGV9ZnVuY3Rpb24gYSh0KXt2YXIgZSxyLG4saSxhLHMsbD0wLGM9dC5sZW5ndGg7aWYoYz4yKXtmb3Iocz0wO3M8YztzKyspcz09PWMtMj8obj1jLTIsaT1jLTEsYT0wKTpzPT09Yy0xPyhuPWMtMSxpPTAsYT0xKToobj1zLGk9cysxLGE9cysyKSxlPXRbbl0scj10W2ldLGwrPShvKHRbYV1bMF0pLW8oZVswXSkpKk1hdGguc2luKG8oclsxXSkpO2w9NjM3ODEzNypsKjYzNzgxMzcvMn1yZXR1cm4gbH1mdW5jdGlvbiBvKHQpe3JldHVybiB0Kk1hdGguUEkvMTgwfXIuZGVmYXVsdD1mdW5jdGlvbih0KXtyZXR1cm4gbi5nZW9tUmVkdWNlKHQsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZnVuY3Rpb24odCl7dmFyIGUscj0wO3N3aXRjaCh0LnR5cGUpe2Nhc2UiUG9seWdvbiI6cmV0dXJuIGkodC5jb29yZGluYXRlcyk7Y2FzZSJNdWx0aVBvbHlnb24iOmZvcihlPTA7ZTx0LmNvb3JkaW5hdGVzLmxlbmd0aDtlKyspcis9aSh0LmNvb3JkaW5hdGVzW2VdKTtyZXR1cm4gcjtjYXNlIlBvaW50IjpjYXNlIk11bHRpUG9pbnQiOmNhc2UiTGluZVN0cmluZyI6Y2FzZSJNdWx0aUxpbmVTdHJpbmciOnJldHVybiAwfXJldHVybiAwfShlKX0pLDApfX0seyJAdHVyZi9tZXRhIjo2NX1dLDYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO09iamVjdC5kZWZpbmVQcm9wZXJ0eShyLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTt2YXIgbj10KCJAdHVyZi9tZXRhIik7ZnVuY3Rpb24gaSh0KXt2YXIgZT1bMS8wLDEvMCwtMS8wLC0xLzBdO3JldHVybiBuLmNvb3JkRWFjaCh0LChmdW5jdGlvbih0KXtlWzBdPnRbMF0mJihlWzBdPXRbMF0pLGVbMV0+dFsxXSYmKGVbMV09dFsxXSksZVsyXTx0WzBdJiYoZVsyXT10WzBdKSxlWzNdPHRbMV0mJihlWzNdPXRbMV0pfSkpLGV9aS5kZWZhdWx0PWksci5kZWZhdWx0PWl9LHsiQHR1cmYvbWV0YSI6NjV9XSw2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dCgiQHR1cmYvbWV0YSIpLGk9dCgiQHR1cmYvaGVscGVycyIpO3IuZGVmYXVsdD1mdW5jdGlvbih0LGUpe3ZvaWQgMD09PWUmJihlPXt9KTt2YXIgcj0wLGE9MCxvPTA7cmV0dXJuIG4uY29vcmRFYWNoKHQsKGZ1bmN0aW9uKHQpe3IrPXRbMF0sYSs9dFsxXSxvKyt9KSwhMCksaS5wb2ludChbci9vLGEvb10sZS5wcm9wZXJ0aWVzKX19LHsiQHR1cmYvaGVscGVycyI6NjQsIkB0dXJmL21ldGEiOjY1fV0sNjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscil7dm9pZCAwPT09ciYmKHI9e30pO3ZhciBuPXt0eXBlOiJGZWF0dXJlIn07cmV0dXJuKDA9PT1yLmlkfHxyLmlkKSYmKG4uaWQ9ci5pZCksci5iYm94JiYobi5iYm94PXIuYmJveCksbi5wcm9wZXJ0aWVzPWV8fHt9LG4uZ2VvbWV0cnk9dCxufWZ1bmN0aW9uIGkodCxlLHIpe2lmKHZvaWQgMD09PXImJihyPXt9KSwhdCl0aHJvdyBuZXcgRXJyb3IoImNvb3JkaW5hdGVzIGlzIHJlcXVpcmVkIik7aWYoIUFycmF5LmlzQXJyYXkodCkpdGhyb3cgbmV3IEVycm9yKCJjb29yZGluYXRlcyBtdXN0IGJlIGFuIEFycmF5Iik7aWYodC5sZW5ndGg8Mil0aHJvdyBuZXcgRXJyb3IoImNvb3JkaW5hdGVzIG11c3QgYmUgYXQgbGVhc3QgMiBudW1iZXJzIGxvbmciKTtpZighZCh0WzBdKXx8IWQodFsxXSkpdGhyb3cgbmV3IEVycm9yKCJjb29yZGluYXRlcyBtdXN0IGNvbnRhaW4gbnVtYmVycyIpO3JldHVybiBuKHt0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiBhKHQsZSxyKXt2b2lkIDA9PT1yJiYocj17fSk7Zm9yKHZhciBpPTAsYT10O2k8YS5sZW5ndGg7aSsrKXt2YXIgbz1hW2ldO2lmKG8ubGVuZ3RoPDQpdGhyb3cgbmV3IEVycm9yKCJFYWNoIExpbmVhclJpbmcgb2YgYSBQb2x5Z29uIG11c3QgaGF2ZSA0IG9yIG1vcmUgUG9zaXRpb25zLiIpO2Zvcih2YXIgcz0wO3M8b1tvLmxlbmd0aC0xXS5sZW5ndGg7cysrKWlmKG9bby5sZW5ndGgtMV1bc10hPT1vWzBdW3NdKXRocm93IG5ldyBFcnJvcigiRmlyc3QgYW5kIGxhc3QgUG9zaXRpb24gYXJlIG5vdCBlcXVpdmFsZW50LiIpfXJldHVybiBuKHt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczp0fSxlLHIpfWZ1bmN0aW9uIG8odCxlLHIpe2lmKHZvaWQgMD09PXImJihyPXt9KSx0Lmxlbmd0aDwyKXRocm93IG5ldyBFcnJvcigiY29vcmRpbmF0ZXMgbXVzdCBiZSBhbiBhcnJheSBvZiB0d28gb3IgbW9yZSBwb3NpdGlvbnMiKTtyZXR1cm4gbih7dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiBzKHQsZSl7dm9pZCAwPT09ZSYmKGU9e30pO3ZhciByPXt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiJ9O3JldHVybiBlLmlkJiYoci5pZD1lLmlkKSxlLmJib3gmJihyLmJib3g9ZS5iYm94KSxyLmZlYXR1cmVzPXQscn1mdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLG4oe3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dH0sZSxyKX1mdW5jdGlvbiBjKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLG4oe3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOnR9LGUscil9ZnVuY3Rpb24gdSh0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxuKHt0eXBlOiJNdWx0aVBvbHlnb24iLGNvb3JkaW5hdGVzOnR9LGUscil9ZnVuY3Rpb24gZih0LGUpe3ZvaWQgMD09PWUmJihlPSJraWxvbWV0ZXJzIik7dmFyIG49ci5mYWN0b3JzW2VdO2lmKCFuKXRocm93IG5ldyBFcnJvcihlKyIgdW5pdHMgaXMgaW52YWxpZCIpO3JldHVybiB0Km59ZnVuY3Rpb24gaCh0LGUpe3ZvaWQgMD09PWUmJihlPSJraWxvbWV0ZXJzIik7dmFyIG49ci5mYWN0b3JzW2VdO2lmKCFuKXRocm93IG5ldyBFcnJvcihlKyIgdW5pdHMgaXMgaW52YWxpZCIpO3JldHVybiB0L259ZnVuY3Rpb24gcCh0KXtyZXR1cm4gMTgwKih0JSgyKk1hdGguUEkpKS9NYXRoLlBJfWZ1bmN0aW9uIGQodCl7cmV0dXJuIWlzTmFOKHQpJiZudWxsIT09dCYmIUFycmF5LmlzQXJyYXkodCl9T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pLHIuZWFydGhSYWRpdXM9NjM3MTAwOC44LHIuZmFjdG9ycz17Y2VudGltZXRlcnM6MTAwKnIuZWFydGhSYWRpdXMsY2VudGltZXRyZXM6MTAwKnIuZWFydGhSYWRpdXMsZGVncmVlczpyLmVhcnRoUmFkaXVzLzExMTMyNSxmZWV0OjMuMjgwODQqci5lYXJ0aFJhZGl1cyxpbmNoZXM6MzkuMzcqci5lYXJ0aFJhZGl1cyxraWxvbWV0ZXJzOnIuZWFydGhSYWRpdXMvMWUzLGtpbG9tZXRyZXM6ci5lYXJ0aFJhZGl1cy8xZTMsbWV0ZXJzOnIuZWFydGhSYWRpdXMsbWV0cmVzOnIuZWFydGhSYWRpdXMsbWlsZXM6ci5lYXJ0aFJhZGl1cy8xNjA5LjM0NCxtaWxsaW1ldGVyczoxZTMqci5lYXJ0aFJhZGl1cyxtaWxsaW1ldHJlczoxZTMqci5lYXJ0aFJhZGl1cyxuYXV0aWNhbG1pbGVzOnIuZWFydGhSYWRpdXMvMTg1MixyYWRpYW5zOjEseWFyZHM6MS4wOTM2KnIuZWFydGhSYWRpdXN9LHIudW5pdHNGYWN0b3JzPXtjZW50aW1ldGVyczoxMDAsY2VudGltZXRyZXM6MTAwLGRlZ3JlZXM6MS8xMTEzMjUsZmVldDozLjI4MDg0LGluY2hlczozOS4zNyxraWxvbWV0ZXJzOi4wMDEsa2lsb21ldHJlczouMDAxLG1ldGVyczoxLG1ldHJlczoxLG1pbGVzOjEvMTYwOS4zNDQsbWlsbGltZXRlcnM6MWUzLG1pbGxpbWV0cmVzOjFlMyxuYXV0aWNhbG1pbGVzOjEvMTg1MixyYWRpYW5zOjEvci5lYXJ0aFJhZGl1cyx5YXJkczoxLjA5MzYxMzN9LHIuYXJlYUZhY3RvcnM9e2FjcmVzOjI0NzEwNWUtOSxjZW50aW1ldGVyczoxZTQsY2VudGltZXRyZXM6MWU0LGZlZXQ6MTAuNzYzOTEwNDE3LGhlY3RhcmVzOjFlLTQsaW5jaGVzOjE1NTAuMDAzMTAwMDA2LGtpbG9tZXRlcnM6MWUtNixraWxvbWV0cmVzOjFlLTYsbWV0ZXJzOjEsbWV0cmVzOjEsbWlsZXM6Mzg2ZS05LG1pbGxpbWV0ZXJzOjFlNixtaWxsaW1ldHJlczoxZTYseWFyZHM6MS4xOTU5OTAwNDZ9LHIuZmVhdHVyZT1uLHIuZ2VvbWV0cnk9ZnVuY3Rpb24odCxlLHIpe3N3aXRjaCh2b2lkIDA9PT1yJiYocj17fSksdCl7Y2FzZSJQb2ludCI6cmV0dXJuIGkoZSkuZ2VvbWV0cnk7Y2FzZSJMaW5lU3RyaW5nIjpyZXR1cm4gbyhlKS5nZW9tZXRyeTtjYXNlIlBvbHlnb24iOnJldHVybiBhKGUpLmdlb21ldHJ5O2Nhc2UiTXVsdGlQb2ludCI6cmV0dXJuIGMoZSkuZ2VvbWV0cnk7Y2FzZSJNdWx0aUxpbmVTdHJpbmciOnJldHVybiBsKGUpLmdlb21ldHJ5O2Nhc2UiTXVsdGlQb2x5Z29uIjpyZXR1cm4gdShlKS5nZW9tZXRyeTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcih0KyIgaXMgaW52YWxpZCIpfX0sci5wb2ludD1pLHIucG9pbnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLHModC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBpKHQsZSl9KSkscil9LHIucG9seWdvbj1hLHIucG9seWdvbnM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB2b2lkIDA9PT1yJiYocj17fSkscyh0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGEodCxlKX0pKSxyKX0sci5saW5lU3RyaW5nPW8sci5saW5lU3RyaW5ncz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSxzKHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbyh0LGUpfSkpLHIpfSxyLmZlYXR1cmVDb2xsZWN0aW9uPXMsci5tdWx0aUxpbmVTdHJpbmc9bCxyLm11bHRpUG9pbnQ9YyxyLm11bHRpUG9seWdvbj11LHIuZ2VvbWV0cnlDb2xsZWN0aW9uPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9e30pLG4oe3R5cGU6Ikdlb21ldHJ5Q29sbGVjdGlvbiIsZ2VvbWV0cmllczp0fSxlLHIpfSxyLnJvdW5kPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09ZSYmKGU9MCksZSYmIShlPj0wKSl0aHJvdyBuZXcgRXJyb3IoInByZWNpc2lvbiBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyIik7dmFyIHI9TWF0aC5wb3coMTAsZXx8MCk7cmV0dXJuIE1hdGgucm91bmQodCpyKS9yfSxyLnJhZGlhbnNUb0xlbmd0aD1mLHIubGVuZ3RoVG9SYWRpYW5zPWgsci5sZW5ndGhUb0RlZ3JlZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcChoKHQsZSkpfSxyLmJlYXJpbmdUb0F6aW11dGg9ZnVuY3Rpb24odCl7dmFyIGU9dCUzNjA7cmV0dXJuIGU8MCYmKGUrPTM2MCksZX0sci5yYWRpYW5zVG9EZWdyZWVzPXAsci5kZWdyZWVzVG9SYWRpYW5zPWZ1bmN0aW9uKHQpe3JldHVybiB0JTM2MCpNYXRoLlBJLzE4MH0sci5jb252ZXJ0TGVuZ3RoPWZ1bmN0aW9uKHQsZSxyKXtpZih2b2lkIDA9PT1lJiYoZT0ia2lsb21ldGVycyIpLHZvaWQgMD09PXImJihyPSJraWxvbWV0ZXJzIiksISh0Pj0wKSl0aHJvdyBuZXcgRXJyb3IoImxlbmd0aCBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyIik7cmV0dXJuIGYoaCh0LGUpLHIpfSxyLmNvbnZlcnRBcmVhPWZ1bmN0aW9uKHQsZSxuKXtpZih2b2lkIDA9PT1lJiYoZT0ibWV0ZXJzIiksdm9pZCAwPT09biYmKG49ImtpbG9tZXRlcnMiKSwhKHQ+PTApKXRocm93IG5ldyBFcnJvcigiYXJlYSBtdXN0IGJlIGEgcG9zaXRpdmUgbnVtYmVyIik7dmFyIGk9ci5hcmVhRmFjdG9yc1tlXTtpZighaSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgb3JpZ2luYWwgdW5pdHMiKTt2YXIgYT1yLmFyZWFGYWN0b3JzW25dO2lmKCFhKXRocm93IG5ldyBFcnJvcigiaW52YWxpZCBmaW5hbCB1bml0cyIpO3JldHVybiB0L2kqYX0sci5pc051bWJlcj1kLHIuaXNPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuISF0JiZ0LmNvbnN0cnVjdG9yPT09T2JqZWN0fSxyLnZhbGlkYXRlQkJveD1mdW5jdGlvbih0KXtpZighdCl0aHJvdyBuZXcgRXJyb3IoImJib3ggaXMgcmVxdWlyZWQiKTtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgRXJyb3IoImJib3ggbXVzdCBiZSBhbiBBcnJheSIpO2lmKDQhPT10Lmxlbmd0aCYmNiE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYmJveCBtdXN0IGJlIGFuIEFycmF5IG9mIDQgb3IgNiBudW1iZXJzIik7dC5mb3JFYWNoKChmdW5jdGlvbih0KXtpZighZCh0KSl0aHJvdyBuZXcgRXJyb3IoImJib3ggbXVzdCBvbmx5IGNvbnRhaW4gbnVtYmVycyIpfSkpfSxyLnZhbGlkYXRlSWQ9ZnVuY3Rpb24odCl7aWYoIXQpdGhyb3cgbmV3IEVycm9yKCJpZCBpcyByZXF1aXJlZCIpO2lmKC0xPT09WyJzdHJpbmciLCJudW1iZXIiXS5pbmRleE9mKHR5cGVvZiB0KSl0aHJvdyBuZXcgRXJyb3IoImlkIG11c3QgYmUgYSBudW1iZXIgb3IgYSBzdHJpbmciKX19LHt9XSw2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtPYmplY3QuZGVmaW5lUHJvcGVydHkociwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSk7dmFyIG49dCgiQHR1cmYvaGVscGVycyIpO2Z1bmN0aW9uIGkodCxlLHIpe2lmKG51bGwhPT10KWZvcih2YXIgbixhLG8scyxsLGMsdSxmLGg9MCxwPTAsZD10LnR5cGUsbT0iRmVhdHVyZUNvbGxlY3Rpb24iPT09ZCxnPSJGZWF0dXJlIj09PWQsdj1tP3QuZmVhdHVyZXMubGVuZ3RoOjEseT0wO3k8djt5Kyspe2w9KGY9ISEodT1tP3QuZmVhdHVyZXNbeV0uZ2VvbWV0cnk6Zz90Lmdlb21ldHJ5OnQpJiYiR2VvbWV0cnlDb2xsZWN0aW9uIj09PXUudHlwZSk/dS5nZW9tZXRyaWVzLmxlbmd0aDoxO2Zvcih2YXIgeD0wO3g8bDt4Kyspe3ZhciBiPTAsXz0wO2lmKG51bGwhPT0ocz1mP3UuZ2VvbWV0cmllc1t4XTp1KSl7Yz1zLmNvb3JkaW5hdGVzO3ZhciB3PXMudHlwZTtzd2l0Y2goaD0hcnx8IlBvbHlnb24iIT09dyYmIk11bHRpUG9seWdvbiIhPT13PzA6MSx3KXtjYXNlIG51bGw6YnJlYWs7Y2FzZSJQb2ludCI6aWYoITE9PT1lKGMscCx5LGIsXykpcmV0dXJuITE7cCsrLGIrKzticmVhaztjYXNlIkxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2ludCI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7aWYoITE9PT1lKGNbbl0scCx5LGIsXykpcmV0dXJuITE7cCsrLCJNdWx0aVBvaW50Ij09PXcmJmIrK30iTGluZVN0cmluZyI9PT13JiZiKys7YnJlYWs7Y2FzZSJQb2x5Z29uIjpjYXNlIk11bHRpTGluZVN0cmluZyI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7Zm9yKGE9MDthPGNbbl0ubGVuZ3RoLWg7YSsrKXtpZighMT09PWUoY1tuXVthXSxwLHksYixfKSlyZXR1cm4hMTtwKyt9Ik11bHRpTGluZVN0cmluZyI9PT13JiZiKyssIlBvbHlnb24iPT09dyYmXysrfSJQb2x5Z29uIj09PXcmJmIrKzticmVhaztjYXNlIk11bHRpUG9seWdvbiI6Zm9yKG49MDtuPGMubGVuZ3RoO24rKyl7Zm9yKF89MCxhPTA7YTxjW25dLmxlbmd0aDthKyspe2ZvcihvPTA7bzxjW25dW2FdLmxlbmd0aC1oO28rKyl7aWYoITE9PT1lKGNbbl1bYV1bb10scCx5LGIsXykpcmV0dXJuITE7cCsrfV8rK31iKyt9YnJlYWs7Y2FzZSJHZW9tZXRyeUNvbGxlY3Rpb24iOmZvcihuPTA7bjxzLmdlb21ldHJpZXMubGVuZ3RoO24rKylpZighMT09PWkocy5nZW9tZXRyaWVzW25dLGUscikpcmV0dXJuITE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gR2VvbWV0cnkgVHlwZSIpfX19fX1mdW5jdGlvbiBhKHQsZSl7dmFyIHI7c3dpdGNoKHQudHlwZSl7Y2FzZSJGZWF0dXJlQ29sbGVjdGlvbiI6Zm9yKHI9MDtyPHQuZmVhdHVyZXMubGVuZ3RoJiYhMSE9PWUodC5mZWF0dXJlc1tyXS5wcm9wZXJ0aWVzLHIpO3IrKyk7YnJlYWs7Y2FzZSJGZWF0dXJlIjplKHQucHJvcGVydGllcywwKX19ZnVuY3Rpb24gbyh0LGUpe2lmKCJGZWF0dXJlIj09PXQudHlwZSllKHQsMCk7ZWxzZSBpZigiRmVhdHVyZUNvbGxlY3Rpb24iPT09dC50eXBlKWZvcih2YXIgcj0wO3I8dC5mZWF0dXJlcy5sZW5ndGgmJiExIT09ZSh0LmZlYXR1cmVzW3JdLHIpO3IrKyk7fWZ1bmN0aW9uIHModCxlKXt2YXIgcixuLGksYSxvLHMsbCxjLHUsZixoPTAscD0iRmVhdHVyZUNvbGxlY3Rpb24iPT09dC50eXBlLGQ9IkZlYXR1cmUiPT09dC50eXBlLG09cD90LmZlYXR1cmVzLmxlbmd0aDoxO2ZvcihyPTA7cjxtO3IrKyl7Zm9yKHM9cD90LmZlYXR1cmVzW3JdLmdlb21ldHJ5OmQ/dC5nZW9tZXRyeTp0LGM9cD90LmZlYXR1cmVzW3JdLnByb3BlcnRpZXM6ZD90LnByb3BlcnRpZXM6e30sdT1wP3QuZmVhdHVyZXNbcl0uYmJveDpkP3QuYmJveDp2b2lkIDAsZj1wP3QuZmVhdHVyZXNbcl0uaWQ6ZD90LmlkOnZvaWQgMCxvPShsPSEhcyYmIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1zLnR5cGUpP3MuZ2VvbWV0cmllcy5sZW5ndGg6MSxpPTA7aTxvO2krKylpZihudWxsIT09KGE9bD9zLmdlb21ldHJpZXNbaV06cykpc3dpdGNoKGEudHlwZSl7Y2FzZSJQb2ludCI6Y2FzZSJMaW5lU3RyaW5nIjpjYXNlIk11bHRpUG9pbnQiOmNhc2UiUG9seWdvbiI6Y2FzZSJNdWx0aUxpbmVTdHJpbmciOmNhc2UiTXVsdGlQb2x5Z29uIjppZighMT09PWUoYSxoLGMsdSxmKSlyZXR1cm4hMTticmVhaztjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6Zm9yKG49MDtuPGEuZ2VvbWV0cmllcy5sZW5ndGg7bisrKWlmKCExPT09ZShhLmdlb21ldHJpZXNbbl0saCxjLHUsZikpcmV0dXJuITE7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVua25vd24gR2VvbWV0cnkgVHlwZSIpfWVsc2UgaWYoITE9PT1lKG51bGwsaCxjLHUsZikpcmV0dXJuITE7aCsrfX1mdW5jdGlvbiBsKHQsZSl7cyh0LChmdW5jdGlvbih0LHIsaSxhLG8pe3ZhciBzLGw9bnVsbD09PXQ/bnVsbDp0LnR5cGU7c3dpdGNoKGwpe2Nhc2UgbnVsbDpjYXNlIlBvaW50IjpjYXNlIkxpbmVTdHJpbmciOmNhc2UiUG9seWdvbiI6cmV0dXJuITEhPT1lKG4uZmVhdHVyZSh0LGkse2Jib3g6YSxpZDpvfSksciwwKSYmdm9pZCAwfXN3aXRjaChsKXtjYXNlIk11bHRpUG9pbnQiOnM9IlBvaW50IjticmVhaztjYXNlIk11bHRpTGluZVN0cmluZyI6cz0iTGluZVN0cmluZyI7YnJlYWs7Y2FzZSJNdWx0aVBvbHlnb24iOnM9IlBvbHlnb24ifWZvcih2YXIgYz0wO2M8dC5jb29yZGluYXRlcy5sZW5ndGg7YysrKXt2YXIgdT17dHlwZTpzLGNvb3JkaW5hdGVzOnQuY29vcmRpbmF0ZXNbY119O2lmKCExPT09ZShuLmZlYXR1cmUodSxpKSxyLGMpKXJldHVybiExfX0pKX1mdW5jdGlvbiBjKHQsZSl7bCh0LChmdW5jdGlvbih0LHIsYSl7dmFyIG89MDtpZih0Lmdlb21ldHJ5KXt2YXIgcz10Lmdlb21ldHJ5LnR5cGU7aWYoIlBvaW50IiE9PXMmJiJNdWx0aVBvaW50IiE9PXMpe3ZhciBsLGM9MCx1PTAsZj0wO3JldHVybiExIT09aSh0LChmdW5jdGlvbihpLHMsaCxwLGQpe2lmKHZvaWQgMD09PWx8fHI+Y3x8cD51fHxkPmYpcmV0dXJuIGw9aSxjPXIsdT1wLGY9ZCx2b2lkKG89MCk7dmFyIG09bi5saW5lU3RyaW5nKFtsLGldLHQucHJvcGVydGllcyk7aWYoITE9PT1lKG0scixhLGQsbykpcmV0dXJuITE7bysrLGw9aX0pKSYmdm9pZCAwfX19KSl9ZnVuY3Rpb24gdSh0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcigiZ2VvanNvbiBpcyByZXF1aXJlZCIpO2wodCwoZnVuY3Rpb24odCxyLGkpe2lmKG51bGwhPT10Lmdlb21ldHJ5KXt2YXIgYT10Lmdlb21ldHJ5LnR5cGUsbz10Lmdlb21ldHJ5LmNvb3JkaW5hdGVzO3N3aXRjaChhKXtjYXNlIkxpbmVTdHJpbmciOmlmKCExPT09ZSh0LHIsaSwwLDApKXJldHVybiExO2JyZWFrO2Nhc2UiUG9seWdvbiI6Zm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspaWYoITE9PT1lKG4ubGluZVN0cmluZyhvW3NdLHQucHJvcGVydGllcykscixpLHMpKXJldHVybiExfX19KSl9ci5jb29yZEFsbD1mdW5jdGlvbih0KXt2YXIgZT1bXTtyZXR1cm4gaSh0LChmdW5jdGlvbih0KXtlLnB1c2godCl9KSksZX0sci5jb29yZEVhY2g9aSxyLmNvb3JkUmVkdWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXI7cmV0dXJuIGkodCwoZnVuY3Rpb24odCxuLGksbyxzKXthPTA9PT1uJiZ2b2lkIDA9PT1yP3Q6ZShhLHQsbixpLG8scyl9KSxuKSxhfSxyLmZlYXR1cmVFYWNoPW8sci5mZWF0dXJlUmVkdWNlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yO3JldHVybiBvKHQsKGZ1bmN0aW9uKHQsaSl7bj0wPT09aSYmdm9pZCAwPT09cj90OmUobix0LGkpfSkpLG59LHIuZmluZFBvaW50PWZ1bmN0aW9uKHQsZSl7aWYoZT1lfHx7fSwhbi5pc09iamVjdChlKSl0aHJvdyBuZXcgRXJyb3IoIm9wdGlvbnMgaXMgaW52YWxpZCIpO3ZhciByLGk9ZS5mZWF0dXJlSW5kZXh8fDAsYT1lLm11bHRpRmVhdHVyZUluZGV4fHwwLG89ZS5nZW9tZXRyeUluZGV4fHwwLHM9ZS5jb29yZEluZGV4fHwwLGw9ZS5wcm9wZXJ0aWVzO3N3aXRjaCh0LnR5cGUpe2Nhc2UiRmVhdHVyZUNvbGxlY3Rpb24iOmk8MCYmKGk9dC5mZWF0dXJlcy5sZW5ndGgraSksbD1sfHx0LmZlYXR1cmVzW2ldLnByb3BlcnRpZXMscj10LmZlYXR1cmVzW2ldLmdlb21ldHJ5O2JyZWFrO2Nhc2UiRmVhdHVyZSI6bD1sfHx0LnByb3BlcnRpZXMscj10Lmdlb21ldHJ5O2JyZWFrO2Nhc2UiUG9pbnQiOmNhc2UiTXVsdGlQb2ludCI6cmV0dXJuIG51bGw7Y2FzZSJMaW5lU3RyaW5nIjpjYXNlIlBvbHlnb24iOmNhc2UiTXVsdGlMaW5lU3RyaW5nIjpjYXNlIk11bHRpUG9seWdvbiI6cj10O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJnZW9qc29uIGlzIGludmFsaWQiKX1pZihudWxsPT09cilyZXR1cm4gbnVsbDt2YXIgYz1yLmNvb3JkaW5hdGVzO3N3aXRjaChyLnR5cGUpe2Nhc2UiUG9pbnQiOnJldHVybiBuLnBvaW50KGMsbCxlKTtjYXNlIk11bHRpUG9pbnQiOnJldHVybiBhPDAmJihhPWMubGVuZ3RoK2EpLG4ucG9pbnQoY1thXSxsLGUpO2Nhc2UiTGluZVN0cmluZyI6cmV0dXJuIHM8MCYmKHM9Yy5sZW5ndGgrcyksbi5wb2ludChjW3NdLGwsZSk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gbzwwJiYobz1jLmxlbmd0aCtvKSxzPDAmJihzPWNbb10ubGVuZ3RoK3MpLG4ucG9pbnQoY1tvXVtzXSxsLGUpO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpyZXR1cm4gYTwwJiYoYT1jLmxlbmd0aCthKSxzPDAmJihzPWNbYV0ubGVuZ3RoK3MpLG4ucG9pbnQoY1thXVtzXSxsLGUpO2Nhc2UiTXVsdGlQb2x5Z29uIjpyZXR1cm4gYTwwJiYoYT1jLmxlbmd0aCthKSxvPDAmJihvPWNbYV0ubGVuZ3RoK28pLHM8MCYmKHM9Y1thXVtvXS5sZW5ndGgtcyksbi5wb2ludChjW2FdW29dW3NdLGwsZSl9dGhyb3cgbmV3IEVycm9yKCJnZW9qc29uIGlzIGludmFsaWQiKX0sci5maW5kU2VnbWVudD1mdW5jdGlvbih0LGUpe2lmKGU9ZXx8e30sIW4uaXNPYmplY3QoZSkpdGhyb3cgbmV3IEVycm9yKCJvcHRpb25zIGlzIGludmFsaWQiKTt2YXIgcixpPWUuZmVhdHVyZUluZGV4fHwwLGE9ZS5tdWx0aUZlYXR1cmVJbmRleHx8MCxvPWUuZ2VvbWV0cnlJbmRleHx8MCxzPWUuc2VnbWVudEluZGV4fHwwLGw9ZS5wcm9wZXJ0aWVzO3N3aXRjaCh0LnR5cGUpe2Nhc2UiRmVhdHVyZUNvbGxlY3Rpb24iOmk8MCYmKGk9dC5mZWF0dXJlcy5sZW5ndGgraSksbD1sfHx0LmZlYXR1cmVzW2ldLnByb3BlcnRpZXMscj10LmZlYXR1cmVzW2ldLmdlb21ldHJ5O2JyZWFrO2Nhc2UiRmVhdHVyZSI6bD1sfHx0LnByb3BlcnRpZXMscj10Lmdlb21ldHJ5O2JyZWFrO2Nhc2UiUG9pbnQiOmNhc2UiTXVsdGlQb2ludCI6cmV0dXJuIG51bGw7Y2FzZSJMaW5lU3RyaW5nIjpjYXNlIlBvbHlnb24iOmNhc2UiTXVsdGlMaW5lU3RyaW5nIjpjYXNlIk11bHRpUG9seWdvbiI6cj10O2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJnZW9qc29uIGlzIGludmFsaWQiKX1pZihudWxsPT09cilyZXR1cm4gbnVsbDt2YXIgYz1yLmNvb3JkaW5hdGVzO3N3aXRjaChyLnR5cGUpe2Nhc2UiUG9pbnQiOmNhc2UiTXVsdGlQb2ludCI6cmV0dXJuIG51bGw7Y2FzZSJMaW5lU3RyaW5nIjpyZXR1cm4gczwwJiYocz1jLmxlbmd0aCtzLTEpLG4ubGluZVN0cmluZyhbY1tzXSxjW3MrMV1dLGwsZSk7Y2FzZSJQb2x5Z29uIjpyZXR1cm4gbzwwJiYobz1jLmxlbmd0aCtvKSxzPDAmJihzPWNbb10ubGVuZ3RoK3MtMSksbi5saW5lU3RyaW5nKFtjW29dW3NdLGNbb11bcysxXV0sbCxlKTtjYXNlIk11bHRpTGluZVN0cmluZyI6cmV0dXJuIGE8MCYmKGE9Yy5sZW5ndGgrYSksczwwJiYocz1jW2FdLmxlbmd0aCtzLTEpLG4ubGluZVN0cmluZyhbY1thXVtzXSxjW2FdW3MrMV1dLGwsZSk7Y2FzZSJNdWx0aVBvbHlnb24iOnJldHVybiBhPDAmJihhPWMubGVuZ3RoK2EpLG88MCYmKG89Y1thXS5sZW5ndGgrbyksczwwJiYocz1jW2FdW29dLmxlbmd0aC1zLTEpLG4ubGluZVN0cmluZyhbY1thXVtvXVtzXSxjW2FdW29dW3MrMV1dLGwsZSl9dGhyb3cgbmV3IEVycm9yKCJnZW9qc29uIGlzIGludmFsaWQiKX0sci5mbGF0dGVuRWFjaD1sLHIuZmxhdHRlblJlZHVjZT1mdW5jdGlvbih0LGUscil7dmFyIG49cjtyZXR1cm4gbCh0LChmdW5jdGlvbih0LGksYSl7bj0wPT09aSYmMD09PWEmJnZvaWQgMD09PXI/dDplKG4sdCxpLGEpfSkpLG59LHIuZ2VvbUVhY2g9cyxyLmdlb21SZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIHModCwoZnVuY3Rpb24odCxpLGEsbyxzKXtuPTA9PT1pJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsaSxhLG8scyl9KSksbn0sci5saW5lRWFjaD11LHIubGluZVJlZHVjZT1mdW5jdGlvbih0LGUscil7dmFyIG49cjtyZXR1cm4gdSh0LChmdW5jdGlvbih0LGksYSxvKXtuPTA9PT1pJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsaSxhLG8pfSkpLG59LHIucHJvcEVhY2g9YSxyLnByb3BSZWR1Y2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXI7cmV0dXJuIGEodCwoZnVuY3Rpb24odCxpKXtuPTA9PT1pJiZ2b2lkIDA9PT1yP3Q6ZShuLHQsaSl9KSksbn0sci5zZWdtZW50RWFjaD1jLHIuc2VnbWVudFJlZHVjZT1mdW5jdGlvbih0LGUscil7dmFyIG49cixpPSExO3JldHVybiBjKHQsKGZ1bmN0aW9uKHQsYSxvLHMsbCl7bj0hMT09PWkmJnZvaWQgMD09PXI/dDplKG4sdCxhLG8scyxsKSxpPSEwfSkpLG59fSx7IkB0dXJmL2hlbHBlcnMiOjY0fV0sNjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49InVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrTWFwP3QoIndlYWstbWFwIik6V2Vha01hcCxpPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIiksbz1uZXcgbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9by5nZXQodCkscj1lJiYoZS5fdHJpYW5nbGVCdWZmZXIuaGFuZGxlfHxlLl90cmlhbmdsZUJ1ZmZlci5idWZmZXIpO2lmKCFyfHwhdC5pc0J1ZmZlcihyKSl7dmFyIG49aSh0LG5ldyBGbG9hdDMyQXJyYXkoWy0xLC0xLC0xLDQsNCwtMV0pKTsoZT1hKHQsW3tidWZmZXI6bix0eXBlOnQuRkxPQVQsc2l6ZToyfV0pKS5fdHJpYW5nbGVCdWZmZXI9bixvLnNldCh0LGUpfWUuYmluZCgpLHQuZHJhd0FycmF5cyh0LlRSSUFOR0xFUywwLDMpLGUudW5iaW5kKCl9fSx7ImdsLWJ1ZmZlciI6MjU3LCJnbC12YW8iOjM0Mywid2Vhay1tYXAiOjU5OH1dLDY3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPTAscj0wLG49MCxpPTA7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXt2YXIgYT0odD10LnNsaWNlKCkpWzBdLG89YS50b1VwcGVyQ2FzZSgpO2lmKGEhPW8pc3dpdGNoKHRbMF09byxhKXtjYXNlImEiOnRbNl0rPW4sdFs3XSs9aTticmVhaztjYXNlInYiOnRbMV0rPWk7YnJlYWs7Y2FzZSJoIjp0WzFdKz1uO2JyZWFrO2RlZmF1bHQ6Zm9yKHZhciBzPTE7czx0Lmxlbmd0aDspdFtzKytdKz1uLHRbcysrXSs9aX1zd2l0Y2gobyl7Y2FzZSJaIjpuPWUsaT1yO2JyZWFrO2Nhc2UiSCI6bj10WzFdO2JyZWFrO2Nhc2UiViI6aT10WzFdO2JyZWFrO2Nhc2UiTSI6bj1lPXRbMV0saT1yPXRbMl07YnJlYWs7ZGVmYXVsdDpuPXRbdC5sZW5ndGgtMl0saT10W3QubGVuZ3RoLTFdfXJldHVybiB0fSkpfX0se31dLDY4OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgicGFkLWxlZnQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2U9Im51bWJlciI9PXR5cGVvZiBlP2U6MSxyPXJ8fCI6ICI7dmFyIGk9dC5zcGxpdCgvXHI/XG4vKSxhPVN0cmluZyhpLmxlbmd0aCtlLTEpLmxlbmd0aDtyZXR1cm4gaS5tYXAoKGZ1bmN0aW9uKHQsaSl7dmFyIG89aStlLHM9U3RyaW5nKG8pLmxlbmd0aDtyZXR1cm4gbihvLGEtcykrcit0fSkpLmpvaW4oIlxuIil9fSx7InBhZC1sZWZ0Ijo0Njl9XSw2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoMD09PWUpcmV0dXJuW107aWYoMT09PWUpcmV0dXJuWzBdO2Zvcih2YXIgcj10WzBdLmxlbmd0aCxuPVt0WzBdXSxhPVswXSxvPTE7bzxlOysrbylpZihuLnB1c2godFtvXSksaShuLHIpKXtpZihhLnB1c2gobyksYS5sZW5ndGg9PT1yKzEpcmV0dXJuIGF9ZWxzZSBuLnBvcCgpO3JldHVybiBhfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKTtmdW5jdGlvbiBpKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKzEpLGk9MDtpPHQubGVuZ3RoOysraSlyW2ldPXRbaV07Zm9yKGk9MDtpPD10Lmxlbmd0aDsrK2kpe2Zvcih2YXIgYT10Lmxlbmd0aDthPD1lOysrYSl7Zm9yKHZhciBvPW5ldyBBcnJheShlKSxzPTA7czxlOysrcylvW3NdPU1hdGgucG93KGErMS1pLHMpO3JbYV09b31pZihuLmFwcGx5KHZvaWQgMCxyKSlyZXR1cm4hMH1yZXR1cm4hMX19LHsicm9idXN0LW9yaWVudGF0aW9uIjo1MjR9XSw3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbihlKS5maWx0ZXIoKGZ1bmN0aW9uKHIpe2Zvcih2YXIgbj1uZXcgQXJyYXkoci5sZW5ndGgpLGE9MDthPHIubGVuZ3RoOysrYSluW2FdPWVbclthXV07cmV0dXJuIGkobikqdDwxfSkpfTt2YXIgbj10KCJkZWxhdW5heS10cmlhbmd1bGF0ZSIpLGk9dCgiY2lyY3VtcmFkaXVzIil9LHtjaXJjdW1yYWRpdXM6MTIwLCJkZWxhdW5heS10cmlhbmd1bGF0ZSI6MTcyfV0sNzE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaShuKHQsZSkpfTt2YXIgbj10KCJhbHBoYS1jb21wbGV4IiksaT10KCJzaW1wbGljaWFsLWNvbXBsZXgtYm91bmRhcnkiKX0seyJhbHBoYS1jb21wbGV4Ijo3MCwic2ltcGxpY2lhbC1jb21wbGV4LWJvdW5kYXJ5Ijo1MzF9XSw3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighdHx8bnVsbD09dC5sZW5ndGgpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IHNob3VsZCBiZSBhbiBhcnJheSIpO2U9bnVsbD09ZT8xOk1hdGguZmxvb3IoZSk7Zm9yKHZhciByPUFycmF5KDIqZSksbj0wO248ZTtuKyspe2Zvcih2YXIgaT0tMS8wLGE9MS8wLG89bixzPXQubGVuZ3RoO288cztvKz1lKXRbb10+aSYmKGk9dFtvXSksdFtvXTxhJiYoYT10W29dKTtyW25dPWEscltlK25dPWl9cmV0dXJuIHJ9fSx7fV0sNzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXkucHJvdG90eXBlLmZpbmRJbmRleClyZXR1cm4gdC5maW5kSW5kZXgoZSxyKTtpZigiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCJwcmVkaWNhdGUgbXVzdCBiZSBhIGZ1bmN0aW9uIik7dmFyIG49T2JqZWN0KHQpLGk9bi5sZW5ndGg7aWYoMD09PWkpcmV0dXJuLTE7Zm9yKHZhciBhPTA7YTxpO2ErKylpZihlLmNhbGwocixuW2FdLGEsbikpcmV0dXJuIGE7cmV0dXJuLTF9fSx7fV0sNzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYXJyYXktYm91bmRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZighdHx8bnVsbD09dC5sZW5ndGgpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IHNob3VsZCBiZSBhbiBhcnJheSIpO251bGw9PWUmJihlPTEpO251bGw9PXImJihyPW4odCxlKSk7Zm9yKHZhciBpPTA7aTxlO2krKyl7dmFyIGE9cltlK2ldLG89cltpXSxzPWksbD10Lmxlbmd0aDtpZihhPT09MS8wJiZvPT09LTEvMClmb3Iocz1pO3M8bDtzKz1lKXRbc109dFtzXT09PWE/MTp0W3NdPT09bz8wOi41O2Vsc2UgaWYoYT09PTEvMClmb3Iocz1pO3M8bDtzKz1lKXRbc109dFtzXT09PWE/MTowO2Vsc2UgaWYobz09PS0xLzApZm9yKHM9aTtzPGw7cys9ZSl0W3NdPXRbc109PT1vPzA6MTtlbHNle3ZhciBjPWEtbztmb3Iocz1pO3M8bDtzKz1lKWlzTmFOKHRbc10pfHwodFtzXT0wPT09Yz8uNToodFtzXS1vKS9jKX19cmV0dXJuIHR9fSx7ImFycmF5LWJvdW5kcyI6NzJ9XSw3NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPSJudW1iZXIiPT10eXBlb2YgdCxuPSJudW1iZXIiPT10eXBlb2YgZTtyJiYhbj8oZT10LHQ9MCk6cnx8bnx8KHQ9MCxlPTApO3ZhciBpPShlfD0wKS0odHw9MCk7aWYoaTwwKXRocm93IG5ldyBFcnJvcigiYXJyYXkgbGVuZ3RoIG11c3QgYmUgcG9zaXRpdmUiKTtmb3IodmFyIGE9bmV3IEFycmF5KGkpLG89MCxzPXQ7bzxpO28rKyxzKyspYVtvXT1zO3JldHVybiBhfX0se31dLDc2OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHIpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJvYmplY3QtYXNzaWduIik7Ci8qIQogKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci4KICoKICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGZlcm9zc0BmZXJvc3Mub3JnPiA8aHR0cDovL2Zlcm9zcy5vcmc+CiAqIEBsaWNlbnNlICBNSVQKICovZnVuY3Rpb24gaSh0LGUpe2lmKHQ9PT1lKXJldHVybiAwO2Zvcih2YXIgcj10Lmxlbmd0aCxuPWUubGVuZ3RoLGk9MCxhPU1hdGgubWluKHIsbik7aTxhOysraSlpZih0W2ldIT09ZVtpXSl7cj10W2ldLG49ZVtpXTticmVha31yZXR1cm4gcjxuPy0xOm48cj8xOjB9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gci5CdWZmZXImJiJmdW5jdGlvbiI9PXR5cGVvZiByLkJ1ZmZlci5pc0J1ZmZlcj9yLkJ1ZmZlci5pc0J1ZmZlcih0KTohKG51bGw9PXR8fCF0Ll9pc0J1ZmZlcil9dmFyIG89dCgidXRpbC8iKSxzPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksbD1BcnJheS5wcm90b3R5cGUuc2xpY2UsYz0iZm9vIj09PWZ1bmN0aW9uKCl7fS5uYW1lO2Z1bmN0aW9uIHUodCl7cmV0dXJuIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBmKHQpe3JldHVybiFhKHQpJiYoImZ1bmN0aW9uIj09dHlwZW9mIHIuQXJyYXlCdWZmZXImJigiZnVuY3Rpb24iPT10eXBlb2YgQXJyYXlCdWZmZXIuaXNWaWV3P0FycmF5QnVmZmVyLmlzVmlldyh0KTohIXQmJih0IGluc3RhbmNlb2YgRGF0YVZpZXd8fCEhKHQuYnVmZmVyJiZ0LmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSkpKX12YXIgaD1lLmV4cG9ydHM9eSxwPS9ccypmdW5jdGlvblxzKyhbXlwoXHNdKilccyovO2Z1bmN0aW9uIGQodCl7aWYoby5pc0Z1bmN0aW9uKHQpKXtpZihjKXJldHVybiB0Lm5hbWU7dmFyIGU9dC50b1N0cmluZygpLm1hdGNoKHApO3JldHVybiBlJiZlWzFdfX1mdW5jdGlvbiBtKHQsZSl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P3QubGVuZ3RoPGU/dDp0LnNsaWNlKDAsZSk6dH1mdW5jdGlvbiBnKHQpe2lmKGN8fCFvLmlzRnVuY3Rpb24odCkpcmV0dXJuIG8uaW5zcGVjdCh0KTt2YXIgZT1kKHQpO3JldHVybiJbRnVuY3Rpb24iKyhlPyI6ICIrZToiIikrIl0ifWZ1bmN0aW9uIHYodCxlLHIsbixpKXt0aHJvdyBuZXcgaC5Bc3NlcnRpb25FcnJvcih7bWVzc2FnZTpyLGFjdHVhbDp0LGV4cGVjdGVkOmUsb3BlcmF0b3I6bixzdGFja1N0YXJ0RnVuY3Rpb246aX0pfWZ1bmN0aW9uIHkodCxlKXt0fHx2KHQsITAsZSwiPT0iLGgub2spfWZ1bmN0aW9uIHgodCxlLHIsbil7aWYodD09PWUpcmV0dXJuITA7aWYoYSh0KSYmYShlKSlyZXR1cm4gMD09PWkodCxlKTtpZihvLmlzRGF0ZSh0KSYmby5pc0RhdGUoZSkpcmV0dXJuIHQuZ2V0VGltZSgpPT09ZS5nZXRUaW1lKCk7aWYoby5pc1JlZ0V4cCh0KSYmby5pc1JlZ0V4cChlKSlyZXR1cm4gdC5zb3VyY2U9PT1lLnNvdXJjZSYmdC5nbG9iYWw9PT1lLmdsb2JhbCYmdC5tdWx0aWxpbmU9PT1lLm11bHRpbGluZSYmdC5sYXN0SW5kZXg9PT1lLmxhc3RJbmRleCYmdC5pZ25vcmVDYXNlPT09ZS5pZ25vcmVDYXNlO2lmKG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHR8fG51bGwhPT1lJiYib2JqZWN0Ij09dHlwZW9mIGUpe2lmKGYodCkmJmYoZSkmJnUodCk9PT11KGUpJiYhKHQgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXl8fHQgaW5zdGFuY2VvZiBGbG9hdDY0QXJyYXkpKXJldHVybiAwPT09aShuZXcgVWludDhBcnJheSh0LmJ1ZmZlciksbmV3IFVpbnQ4QXJyYXkoZS5idWZmZXIpKTtpZihhKHQpIT09YShlKSlyZXR1cm4hMTt2YXIgcz0obj1ufHx7YWN0dWFsOltdLGV4cGVjdGVkOltdfSkuYWN0dWFsLmluZGV4T2YodCk7cmV0dXJuLTEhPT1zJiZzPT09bi5leHBlY3RlZC5pbmRleE9mKGUpfHwobi5hY3R1YWwucHVzaCh0KSxuLmV4cGVjdGVkLnB1c2goZSksZnVuY3Rpb24odCxlLHIsbil7aWYobnVsbD09dHx8bnVsbD09ZSlyZXR1cm4hMTtpZihvLmlzUHJpbWl0aXZlKHQpfHxvLmlzUHJpbWl0aXZlKGUpKXJldHVybiB0PT09ZTtpZihyJiZPYmplY3QuZ2V0UHJvdG90eXBlT2YodCkhPT1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSkpcmV0dXJuITE7dmFyIGk9Yih0KSxhPWIoZSk7aWYoaSYmIWF8fCFpJiZhKXJldHVybiExO2lmKGkpcmV0dXJuIHQ9bC5jYWxsKHQpLGU9bC5jYWxsKGUpLHgodCxlLHIpO3ZhciBzLGMsdT1UKHQpLGY9VChlKTtpZih1Lmxlbmd0aCE9PWYubGVuZ3RoKXJldHVybiExO2Zvcih1LnNvcnQoKSxmLnNvcnQoKSxjPXUubGVuZ3RoLTE7Yz49MDtjLS0paWYodVtjXSE9PWZbY10pcmV0dXJuITE7Zm9yKGM9dS5sZW5ndGgtMTtjPj0wO2MtLSlpZihzPXVbY10sIXgodFtzXSxlW3NdLHIsbikpcmV0dXJuITE7cmV0dXJuITB9KHQsZSxyLG4pKX1yZXR1cm4gcj90PT09ZTp0PT1lfWZ1bmN0aW9uIGIodCl7cmV0dXJuIltvYmplY3QgQXJndW1lbnRzXSI9PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KX1mdW5jdGlvbiBfKHQsZSl7aWYoIXR8fCFlKXJldHVybiExO2lmKCJbb2JqZWN0IFJlZ0V4cF0iPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSkpcmV0dXJuIGUudGVzdCh0KTt0cnl7aWYodCBpbnN0YW5jZW9mIGUpcmV0dXJuITB9Y2F0Y2godCl7fXJldHVybiFFcnJvci5pc1Byb3RvdHlwZU9mKGUpJiYhMD09PWUuY2FsbCh7fSx0KX1mdW5jdGlvbiB3KHQsZSxyLG4pe3ZhciBpO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXRocm93IG5ldyBUeXBlRXJyb3IoJyJibG9jayIgYXJndW1lbnQgbXVzdCBiZSBhIGZ1bmN0aW9uJyk7InN0cmluZyI9PXR5cGVvZiByJiYobj1yLHI9bnVsbCksaT1mdW5jdGlvbih0KXt2YXIgZTt0cnl7dCgpfWNhdGNoKHQpe2U9dH1yZXR1cm4gZX0oZSksbj0ociYmci5uYW1lPyIgKCIrci5uYW1lKyIpLiI6Ii4iKSsobj8iICIrbjoiLiIpLHQmJiFpJiZ2KGksciwiTWlzc2luZyBleHBlY3RlZCBleGNlcHRpb24iK24pO3ZhciBhPSJzdHJpbmciPT10eXBlb2YgbixzPSF0JiZpJiYhcjtpZigoIXQmJm8uaXNFcnJvcihpKSYmYSYmXyhpLHIpfHxzKSYmdihpLHIsIkdvdCB1bndhbnRlZCBleGNlcHRpb24iK24pLHQmJmkmJnImJiFfKGkscil8fCF0JiZpKXRocm93IGl9aC5Bc3NlcnRpb25FcnJvcj1mdW5jdGlvbih0KXt0aGlzLm5hbWU9IkFzc2VydGlvbkVycm9yIix0aGlzLmFjdHVhbD10LmFjdHVhbCx0aGlzLmV4cGVjdGVkPXQuZXhwZWN0ZWQsdGhpcy5vcGVyYXRvcj10Lm9wZXJhdG9yLHQubWVzc2FnZT8odGhpcy5tZXNzYWdlPXQubWVzc2FnZSx0aGlzLmdlbmVyYXRlZE1lc3NhZ2U9ITEpOih0aGlzLm1lc3NhZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIG0oZyh0LmFjdHVhbCksMTI4KSsiICIrdC5vcGVyYXRvcisiICIrbShnKHQuZXhwZWN0ZWQpLDEyOCl9KHRoaXMpLHRoaXMuZ2VuZXJhdGVkTWVzc2FnZT0hMCk7dmFyIGU9dC5zdGFja1N0YXJ0RnVuY3Rpb258fHY7aWYoRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UpRXJyb3IuY2FwdHVyZVN0YWNrVHJhY2UodGhpcyxlKTtlbHNle3ZhciByPW5ldyBFcnJvcjtpZihyLnN0YWNrKXt2YXIgbj1yLnN0YWNrLGk9ZChlKSxhPW4uaW5kZXhPZigiXG4iK2kpO2lmKGE+PTApe3ZhciBvPW4uaW5kZXhPZigiXG4iLGErMSk7bj1uLnN1YnN0cmluZyhvKzEpfXRoaXMuc3RhY2s9bn19fSxvLmluaGVyaXRzKGguQXNzZXJ0aW9uRXJyb3IsRXJyb3IpLGguZmFpbD12LGgub2s9eSxoLmVxdWFsPWZ1bmN0aW9uKHQsZSxyKXt0IT1lJiZ2KHQsZSxyLCI9PSIsaC5lcXVhbCl9LGgubm90RXF1YWw9ZnVuY3Rpb24odCxlLHIpe3Q9PWUmJnYodCxlLHIsIiE9IixoLm5vdEVxdWFsKX0saC5kZWVwRXF1YWw9ZnVuY3Rpb24odCxlLHIpe3godCxlLCExKXx8dih0LGUsciwiZGVlcEVxdWFsIixoLmRlZXBFcXVhbCl9LGguZGVlcFN0cmljdEVxdWFsPWZ1bmN0aW9uKHQsZSxyKXt4KHQsZSwhMCl8fHYodCxlLHIsImRlZXBTdHJpY3RFcXVhbCIsaC5kZWVwU3RyaWN0RXF1YWwpfSxoLm5vdERlZXBFcXVhbD1mdW5jdGlvbih0LGUscil7eCh0LGUsITEpJiZ2KHQsZSxyLCJub3REZWVwRXF1YWwiLGgubm90RGVlcEVxdWFsKX0saC5ub3REZWVwU3RyaWN0RXF1YWw9ZnVuY3Rpb24gdChlLHIsbil7eChlLHIsITApJiZ2KGUscixuLCJub3REZWVwU3RyaWN0RXF1YWwiLHQpfSxoLnN0cmljdEVxdWFsPWZ1bmN0aW9uKHQsZSxyKXt0IT09ZSYmdih0LGUsciwiPT09IixoLnN0cmljdEVxdWFsKX0saC5ub3RTdHJpY3RFcXVhbD1mdW5jdGlvbih0LGUscil7dD09PWUmJnYodCxlLHIsIiE9PSIsaC5ub3RTdHJpY3RFcXVhbCl9LGgudGhyb3dzPWZ1bmN0aW9uKHQsZSxyKXt3KCEwLHQsZSxyKX0saC5kb2VzTm90VGhyb3c9ZnVuY3Rpb24odCxlLHIpe3coITEsdCxlLHIpfSxoLmlmRXJyb3I9ZnVuY3Rpb24odCl7aWYodCl0aHJvdyB0fSxoLnN0cmljdD1uKChmdW5jdGlvbiB0KGUscil7ZXx8dihlLCEwLHIsIj09Iix0KX0pLGgse2VxdWFsOmguc3RyaWN0RXF1YWwsZGVlcEVxdWFsOmguZGVlcFN0cmljdEVxdWFsLG5vdEVxdWFsOmgubm90U3RyaWN0RXF1YWwsbm90RGVlcEVxdWFsOmgubm90RGVlcFN0cmljdEVxdWFsfSksaC5zdHJpY3Quc3RyaWN0PWguc3RyaWN0O3ZhciBUPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdClzLmNhbGwodCxyKSYmZS5wdXNoKHIpO3JldHVybiBlfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsib2JqZWN0LWFzc2lnbiI6NDY2LCJ1dGlsLyI6Nzl9XSw3NzpbZnVuY3Rpb24odCxlLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3Quc3VwZXJfPWUsdC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6e3ZhbHVlOnQsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9fSl9OmUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3Quc3VwZXJfPWU7dmFyIHI9ZnVuY3Rpb24oKXt9O3IucHJvdG90eXBlPWUucHJvdG90eXBlLHQucHJvdG90eXBlPW5ldyByLHQucHJvdG90eXBlLmNvbnN0cnVjdG9yPXR9fSx7fV0sNzg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY29weSYmImZ1bmN0aW9uIj09dHlwZW9mIHQuZmlsbCYmImZ1bmN0aW9uIj09dHlwZW9mIHQucmVhZFVJbnQ4fX0se31dLDc5OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKGUsbil7KGZ1bmN0aW9uKCl7dmFyIGk9LyVbc2RqJV0vZztyLmZvcm1hdD1mdW5jdGlvbih0KXtpZighdih0KSl7Zm9yKHZhciBlPVtdLHI9MDtyPGFyZ3VtZW50cy5sZW5ndGg7cisrKWUucHVzaChzKGFyZ3VtZW50c1tyXSkpO3JldHVybiBlLmpvaW4oIiAiKX1yPTE7Zm9yKHZhciBuPWFyZ3VtZW50cyxhPW4ubGVuZ3RoLG89U3RyaW5nKHQpLnJlcGxhY2UoaSwoZnVuY3Rpb24odCl7aWYoIiUlIj09PXQpcmV0dXJuIiUiO2lmKHI+PWEpcmV0dXJuIHQ7c3dpdGNoKHQpe2Nhc2UiJXMiOnJldHVybiBTdHJpbmcobltyKytdKTtjYXNlIiVkIjpyZXR1cm4gTnVtYmVyKG5bcisrXSk7Y2FzZSIlaiI6dHJ5e3JldHVybiBKU09OLnN0cmluZ2lmeShuW3IrK10pfWNhdGNoKHQpe3JldHVybiJbQ2lyY3VsYXJdIn1kZWZhdWx0OnJldHVybiB0fX0pKSxsPW5bcl07cjxhO2w9blsrK3JdKW0obCl8fCFiKGwpP28rPSIgIitsOm8rPSIgIitzKGwpO3JldHVybiBvfSxyLmRlcHJlY2F0ZT1mdW5jdGlvbih0LGkpe2lmKHkobi5wcm9jZXNzKSlyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gci5kZXByZWNhdGUodCxpKS5hcHBseSh0aGlzLGFyZ3VtZW50cyl9O2lmKCEwPT09ZS5ub0RlcHJlY2F0aW9uKXJldHVybiB0O3ZhciBhPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFhKXtpZihlLnRocm93RGVwcmVjYXRpb24pdGhyb3cgbmV3IEVycm9yKGkpO2UudHJhY2VEZXByZWNhdGlvbj9jb25zb2xlLnRyYWNlKGkpOmNvbnNvbGUuZXJyb3IoaSksYT0hMH1yZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fTt2YXIgYSxvPXt9O2Z1bmN0aW9uIHModCxlKXt2YXIgbj17c2VlbjpbXSxzdHlsaXplOmN9O3JldHVybiBhcmd1bWVudHMubGVuZ3RoPj0zJiYobi5kZXB0aD1hcmd1bWVudHNbMl0pLGFyZ3VtZW50cy5sZW5ndGg+PTQmJihuLmNvbG9ycz1hcmd1bWVudHNbM10pLGQoZSk/bi5zaG93SGlkZGVuPWU6ZSYmci5fZXh0ZW5kKG4sZSkseShuLnNob3dIaWRkZW4pJiYobi5zaG93SGlkZGVuPSExKSx5KG4uZGVwdGgpJiYobi5kZXB0aD0yKSx5KG4uY29sb3JzKSYmKG4uY29sb3JzPSExKSx5KG4uY3VzdG9tSW5zcGVjdCkmJihuLmN1c3RvbUluc3BlY3Q9ITApLG4uY29sb3JzJiYobi5zdHlsaXplPWwpLHUobix0LG4uZGVwdGgpfWZ1bmN0aW9uIGwodCxlKXt2YXIgcj1zLnN0eWxlc1tlXTtyZXR1cm4gcj8iXHgxYlsiK3MuY29sb3JzW3JdWzBdKyJtIit0KyJceDFiWyIrcy5jb2xvcnNbcl1bMV0rIm0iOnR9ZnVuY3Rpb24gYyh0LGUpe3JldHVybiB0fWZ1bmN0aW9uIHUodCxlLG4pe2lmKHQuY3VzdG9tSW5zcGVjdCYmZSYmVChlLmluc3BlY3QpJiZlLmluc3BlY3QhPT1yLmluc3BlY3QmJighZS5jb25zdHJ1Y3Rvcnx8ZS5jb25zdHJ1Y3Rvci5wcm90b3R5cGUhPT1lKSl7dmFyIGk9ZS5pbnNwZWN0KG4sdCk7cmV0dXJuIHYoaSl8fChpPXUodCxpLG4pKSxpfXZhciBhPWZ1bmN0aW9uKHQsZSl7aWYoeShlKSlyZXR1cm4gdC5zdHlsaXplKCJ1bmRlZmluZWQiLCJ1bmRlZmluZWQiKTtpZih2KGUpKXt2YXIgcj0iJyIrSlNPTi5zdHJpbmdpZnkoZSkucmVwbGFjZSgvXiJ8IiQvZywiIikucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywnIicpKyInIjtyZXR1cm4gdC5zdHlsaXplKHIsInN0cmluZyIpfWlmKGcoZSkpcmV0dXJuIHQuc3R5bGl6ZSgiIitlLCJudW1iZXIiKTtpZihkKGUpKXJldHVybiB0LnN0eWxpemUoIiIrZSwiYm9vbGVhbiIpO2lmKG0oZSkpcmV0dXJuIHQuc3R5bGl6ZSgibnVsbCIsIm51bGwiKX0odCxlKTtpZihhKXJldHVybiBhO3ZhciBvPU9iamVjdC5rZXlzKGUpLHM9ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtlW3RdPSEwfSkpLGV9KG8pO2lmKHQuc2hvd0hpZGRlbiYmKG89T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkpLHcoZSkmJihvLmluZGV4T2YoIm1lc3NhZ2UiKT49MHx8by5pbmRleE9mKCJkZXNjcmlwdGlvbiIpPj0wKSlyZXR1cm4gZihlKTtpZigwPT09by5sZW5ndGgpe2lmKFQoZSkpe3ZhciBsPWUubmFtZT8iOiAiK2UubmFtZToiIjtyZXR1cm4gdC5zdHlsaXplKCJbRnVuY3Rpb24iK2wrIl0iLCJzcGVjaWFsIil9aWYoeChlKSlyZXR1cm4gdC5zdHlsaXplKFJlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSwicmVnZXhwIik7aWYoXyhlKSlyZXR1cm4gdC5zdHlsaXplKERhdGUucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSksImRhdGUiKTtpZih3KGUpKXJldHVybiBmKGUpfXZhciBjLGI9IiIsaz0hMSxBPVsieyIsIn0iXTsocChlKSYmKGs9ITAsQT1bIlsiLCJdIl0pLFQoZSkpJiYoYj0iIFtGdW5jdGlvbiIrKGUubmFtZT8iOiAiK2UubmFtZToiIikrIl0iKTtyZXR1cm4geChlKSYmKGI9IiAiK1JlZ0V4cC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChlKSksXyhlKSYmKGI9IiAiK0RhdGUucHJvdG90eXBlLnRvVVRDU3RyaW5nLmNhbGwoZSkpLHcoZSkmJihiPSIgIitmKGUpKSwwIT09by5sZW5ndGh8fGsmJjAhPWUubGVuZ3RoP248MD94KGUpP3Quc3R5bGl6ZShSZWdFeHAucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoZSksInJlZ2V4cCIpOnQuc3R5bGl6ZSgiW09iamVjdF0iLCJzcGVjaWFsIik6KHQuc2Vlbi5wdXNoKGUpLGM9az9mdW5jdGlvbih0LGUscixuLGkpe2Zvcih2YXIgYT1bXSxvPTAscz1lLmxlbmd0aDtvPHM7KytvKUUoZSxTdHJpbmcobykpP2EucHVzaChoKHQsZSxyLG4sU3RyaW5nKG8pLCEwKSk6YS5wdXNoKCIiKTtyZXR1cm4gaS5mb3JFYWNoKChmdW5jdGlvbihpKXtpLm1hdGNoKC9eXGQrJC8pfHxhLnB1c2goaCh0LGUscixuLGksITApKX0pKSxhfSh0LGUsbixzLG8pOm8ubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gaCh0LGUsbixzLHIsayl9KSksdC5zZWVuLnBvcCgpLGZ1bmN0aW9uKHQsZSxyKXtpZih0LnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5pbmRleE9mKCJcbiIpPj0wJiYwLHQrZS5yZXBsYWNlKC9cdTAwMWJcW1xkXGQ/bS9nLCIiKS5sZW5ndGgrMX0pLDApPjYwKXJldHVybiByWzBdKygiIj09PWU/IiI6ZSsiXG4gIikrIiAiK3Quam9pbigiLFxuICAiKSsiICIrclsxXTtyZXR1cm4gclswXStlKyIgIit0LmpvaW4oIiwgIikrIiAiK3JbMV19KGMsYixBKSk6QVswXStiK0FbMV19ZnVuY3Rpb24gZih0KXtyZXR1cm4iWyIrRXJyb3IucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkrIl0ifWZ1bmN0aW9uIGgodCxlLHIsbixpLGEpe3ZhciBvLHMsbDtpZigobD1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsaSl8fHt2YWx1ZTplW2ldfSkuZ2V0P3M9bC5zZXQ/dC5zdHlsaXplKCJbR2V0dGVyL1NldHRlcl0iLCJzcGVjaWFsIik6dC5zdHlsaXplKCJbR2V0dGVyXSIsInNwZWNpYWwiKTpsLnNldCYmKHM9dC5zdHlsaXplKCJbU2V0dGVyXSIsInNwZWNpYWwiKSksRShuLGkpfHwobz0iWyIraSsiXSIpLHN8fCh0LnNlZW4uaW5kZXhPZihsLnZhbHVlKTwwPyhzPW0ocik/dSh0LGwudmFsdWUsbnVsbCk6dSh0LGwudmFsdWUsci0xKSkuaW5kZXhPZigiXG4iKT4tMSYmKHM9YT9zLnNwbGl0KCJcbiIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIiAgIit0fSkpLmpvaW4oIlxuIikuc3Vic3RyKDIpOiJcbiIrcy5zcGxpdCgiXG4iKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiIgICAiK3R9KSkuam9pbigiXG4iKSk6cz10LnN0eWxpemUoIltDaXJjdWxhcl0iLCJzcGVjaWFsIikpLHkobykpe2lmKGEmJmkubWF0Y2goL15cZCskLykpcmV0dXJuIHM7KG89SlNPTi5zdHJpbmdpZnkoIiIraSkpLm1hdGNoKC9eIihbYS16QS1aX11bYS16QS1aXzAtOV0qKSIkLyk/KG89by5zdWJzdHIoMSxvLmxlbmd0aC0yKSxvPXQuc3R5bGl6ZShvLCJuYW1lIikpOihvPW8ucmVwbGFjZSgvJy9nLCJcXCciKS5yZXBsYWNlKC9cXCIvZywnIicpLnJlcGxhY2UoLyheInwiJCkvZywiJyIpLG89dC5zdHlsaXplKG8sInN0cmluZyIpKX1yZXR1cm4gbysiOiAiK3N9ZnVuY3Rpb24gcCh0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KX1mdW5jdGlvbiBkKHQpe3JldHVybiJib29sZWFuIj09dHlwZW9mIHR9ZnVuY3Rpb24gbSh0KXtyZXR1cm4gbnVsbD09PXR9ZnVuY3Rpb24gZyh0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHR9ZnVuY3Rpb24gdih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHR9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdm9pZCAwPT09dH1mdW5jdGlvbiB4KHQpe3JldHVybiBiKHQpJiYiW29iamVjdCBSZWdFeHBdIj09PWsodCl9ZnVuY3Rpb24gYih0KXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIHQmJm51bGwhPT10fWZ1bmN0aW9uIF8odCl7cmV0dXJuIGIodCkmJiJbb2JqZWN0IERhdGVdIj09PWsodCl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gYih0KSYmKCJbb2JqZWN0IEVycm9yXSI9PT1rKHQpfHx0IGluc3RhbmNlb2YgRXJyb3IpfWZ1bmN0aW9uIFQodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHR9ZnVuY3Rpb24gayh0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIEEodCl7cmV0dXJuIHQ8MTA/IjAiK3QudG9TdHJpbmcoMTApOnQudG9TdHJpbmcoMTApfXIuZGVidWdsb2c9ZnVuY3Rpb24odCl7aWYoeShhKSYmKGE9ZS5lbnYuTk9ERV9ERUJVR3x8IiIpLHQ9dC50b1VwcGVyQ2FzZSgpLCFvW3RdKWlmKG5ldyBSZWdFeHAoIlxcYiIrdCsiXFxiIiwiaSIpLnRlc3QoYSkpe3ZhciBuPWUucGlkO29bdF09ZnVuY3Rpb24oKXt2YXIgZT1yLmZvcm1hdC5hcHBseShyLGFyZ3VtZW50cyk7Y29uc29sZS5lcnJvcigiJXMgJWQ6ICVzIix0LG4sZSl9fWVsc2Ugb1t0XT1mdW5jdGlvbigpe307cmV0dXJuIG9bdF19LHIuaW5zcGVjdD1zLHMuY29sb3JzPXtib2xkOlsxLDIyXSxpdGFsaWM6WzMsMjNdLHVuZGVybGluZTpbNCwyNF0saW52ZXJzZTpbNywyN10sd2hpdGU6WzM3LDM5XSxncmV5Ols5MCwzOV0sYmxhY2s6WzMwLDM5XSxibHVlOlszNCwzOV0sY3lhbjpbMzYsMzldLGdyZWVuOlszMiwzOV0sbWFnZW50YTpbMzUsMzldLHJlZDpbMzEsMzldLHllbGxvdzpbMzMsMzldfSxzLnN0eWxlcz17c3BlY2lhbDoiY3lhbiIsbnVtYmVyOiJ5ZWxsb3ciLGJvb2xlYW46InllbGxvdyIsdW5kZWZpbmVkOiJncmV5IixudWxsOiJib2xkIixzdHJpbmc6ImdyZWVuIixkYXRlOiJtYWdlbnRhIixyZWdleHA6InJlZCJ9LHIuaXNBcnJheT1wLHIuaXNCb29sZWFuPWQsci5pc051bGw9bSxyLmlzTnVsbE9yVW5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBudWxsPT10fSxyLmlzTnVtYmVyPWcsci5pc1N0cmluZz12LHIuaXNTeW1ib2w9ZnVuY3Rpb24odCl7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0fSxyLmlzVW5kZWZpbmVkPXksci5pc1JlZ0V4cD14LHIuaXNPYmplY3Q9YixyLmlzRGF0ZT1fLHIuaXNFcnJvcj13LHIuaXNGdW5jdGlvbj1ULHIuaXNQcmltaXRpdmU9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10fHwiYm9vbGVhbiI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdHx8InN5bWJvbCI9PXR5cGVvZiB0fHx2b2lkIDA9PT10fSxyLmlzQnVmZmVyPXQoIi4vc3VwcG9ydC9pc0J1ZmZlciIpO3ZhciBNPVsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl07ZnVuY3Rpb24gUygpe3ZhciB0PW5ldyBEYXRlLGU9W0EodC5nZXRIb3VycygpKSxBKHQuZ2V0TWludXRlcygpKSxBKHQuZ2V0U2Vjb25kcygpKV0uam9pbigiOiIpO3JldHVyblt0LmdldERhdGUoKSxNW3QuZ2V0TW9udGgoKV0sZV0uam9pbigiICIpfWZ1bmN0aW9uIEUodCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9ci5sb2c9ZnVuY3Rpb24oKXtjb25zb2xlLmxvZygiJXMgLSAlcyIsUygpLHIuZm9ybWF0LmFwcGx5KHIsYXJndW1lbnRzKSl9LHIuaW5oZXJpdHM9dCgiaW5oZXJpdHMiKSxyLl9leHRlbmQ9ZnVuY3Rpb24odCxlKXtpZighZXx8IWIoZSkpcmV0dXJuIHQ7Zm9yKHZhciByPU9iamVjdC5rZXlzKGUpLG49ci5sZW5ndGg7bi0tOyl0W3Jbbl1dPWVbcltuXV07cmV0dXJuIHR9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vc3VwcG9ydC9pc0J1ZmZlciI6NzgsX3Byb2Nlc3M6NTA0LGluaGVyaXRzOjc3fV0sODA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGF0b2IodCl9fSx7fV0sODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUubGVuZ3RoLGE9bmV3IEFycmF5KHIrMSksbz0wO288cjsrK28pe2Zvcih2YXIgcz1uZXcgQXJyYXkocisxKSxsPTA7bDw9cjsrK2wpc1tsXT10W2xdW29dO2Fbb109c31hW3JdPW5ldyBBcnJheShyKzEpO2ZvcihvPTA7bzw9cjsrK28pYVtyXVtvXT0xO3ZhciBjPW5ldyBBcnJheShyKzEpO2ZvcihvPTA7bzxyOysrbyljW29dPWVbb107Y1tyXT0xO3ZhciB1PW4oYSxjKSxmPWkodVtyKzFdKTswPT09ZiYmKGY9MSk7dmFyIGg9bmV3IEFycmF5KHIrMSk7Zm9yKG89MDtvPD1yOysrbyloW29dPWkodVtvXSkvZjtyZXR1cm4gaH07dmFyIG49dCgicm9idXN0LWxpbmVhci1zb2x2ZSIpO2Z1bmN0aW9uIGkodCl7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7KytyKWUrPXRbcl07cmV0dXJuIGV9fSx7InJvYnVzdC1saW5lYXItc29sdmUiOjUyM31dLDgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuYnl0ZUxlbmd0aD1mdW5jdGlvbih0KXt2YXIgZT1jKHQpLHI9ZVswXSxuPWVbMV07cmV0dXJuIDMqKHIrbikvNC1ufSxyLnRvQnl0ZUFycmF5PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj1jKHQpLG89blswXSxzPW5bMV0sbD1uZXcgYShmdW5jdGlvbih0LGUscil7cmV0dXJuIDMqKGUrcikvNC1yfSgwLG8scykpLHU9MCxmPXM+MD9vLTQ6bztmb3Iocj0wO3I8ZjtyKz00KWU9aVt0LmNoYXJDb2RlQXQocildPDwxOHxpW3QuY2hhckNvZGVBdChyKzEpXTw8MTJ8aVt0LmNoYXJDb2RlQXQocisyKV08PDZ8aVt0LmNoYXJDb2RlQXQociszKV0sbFt1KytdPWU+PjE2JjI1NSxsW3UrK109ZT4+OCYyNTUsbFt1KytdPTI1NSZlOzI9PT1zJiYoZT1pW3QuY2hhckNvZGVBdChyKV08PDJ8aVt0LmNoYXJDb2RlQXQocisxKV0+PjQsbFt1KytdPTI1NSZlKTsxPT09cyYmKGU9aVt0LmNoYXJDb2RlQXQocildPDwxMHxpW3QuY2hhckNvZGVBdChyKzEpXTw8NHxpW3QuY2hhckNvZGVBdChyKzIpXT4+MixsW3UrK109ZT4+OCYyNTUsbFt1KytdPTI1NSZlKTtyZXR1cm4gbH0sci5mcm9tQnl0ZUFycmF5PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPXQubGVuZ3RoLGk9ciUzLGE9W10sbz0wLHM9ci1pO288cztvKz0xNjM4MylhLnB1c2godSh0LG8sbysxNjM4Mz5zP3M6bysxNjM4MykpOzE9PT1pPyhlPXRbci0xXSxhLnB1c2gobltlPj4yXStuW2U8PDQmNjNdKyI9PSIpKToyPT09aSYmKGU9KHRbci0yXTw8OCkrdFtyLTFdLGEucHVzaChuW2U+PjEwXStuW2U+PjQmNjNdK25bZTw8MiY2M10rIj0iKSk7cmV0dXJuIGEuam9pbigiIil9O2Zvcih2YXIgbj1bXSxpPVtdLGE9InVuZGVmaW5lZCIhPXR5cGVvZiBVaW50OEFycmF5P1VpbnQ4QXJyYXk6QXJyYXksbz0iQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyIscz0wLGw9by5sZW5ndGg7czxsOysrcyluW3NdPW9bc10saVtvLmNoYXJDb2RlQXQocyldPXM7ZnVuY3Rpb24gYyh0KXt2YXIgZT10Lmxlbmd0aDtpZihlJTQ+MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgc3RyaW5nLiBMZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQiKTt2YXIgcj10LmluZGV4T2YoIj0iKTtyZXR1cm4tMT09PXImJihyPWUpLFtyLHI9PT1lPzA6NC1yJTRdfWZ1bmN0aW9uIHUodCxlLHIpe2Zvcih2YXIgaSxhLG89W10scz1lO3M8cjtzKz0zKWk9KHRbc108PDE2JjE2NzExNjgwKSsodFtzKzFdPDw4JjY1MjgwKSsoMjU1JnRbcysyXSksby5wdXNoKG5bKGE9aSk+PjE4JjYzXStuW2E+PjEyJjYzXStuW2E+PjYmNjNdK25bNjMmYV0pO3JldHVybiBvLmpvaW4oIiIpfWlbIi0iLmNoYXJDb2RlQXQoMCldPTYyLGlbIl8iLmNoYXJDb2RlQXQoMCldPTYzfSx7fV0sODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvcmF0aW9uYWxpemUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0WzBdLm11bChlWzFdKS5hZGQoZVswXS5tdWwodFsxXSkpLHRbMV0ubXVsKGVbMV0pKX19LHsiLi9saWIvcmF0aW9uYWxpemUiOjkzfV0sODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0ubXVsKGVbMV0pLmNtcChlWzBdLm11bCh0WzFdKSl9fSx7fV0sODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvcmF0aW9uYWxpemUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0WzBdLm11bChlWzFdKSx0WzFdLm11bChlWzBdKSl9fSx7Ii4vbGliL3JhdGlvbmFsaXplIjo5M31dLDg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaXMtcmF0IiksaT10KCIuL2xpYi9pcy1ibiIpLGE9dCgiLi9saWIvbnVtLXRvLWJuIiksbz10KCIuL2xpYi9zdHItdG8tYm4iKSxzPXQoIi4vbGliL3JhdGlvbmFsaXplIiksbD10KCIuL2RpdiIpO2UuZXhwb3J0cz1mdW5jdGlvbiB0KGUscil7aWYobihlKSlyZXR1cm4gcj9sKGUsdChyKSk6W2VbMF0uY2xvbmUoKSxlWzFdLmNsb25lKCldO3ZhciBjLHUsZj0wO2lmKGkoZSkpYz1lLmNsb25lKCk7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGUpYz1vKGUpO2Vsc2V7aWYoMD09PWUpcmV0dXJuW2EoMCksYSgxKV07aWYoZT09PU1hdGguZmxvb3IoZSkpYz1hKGUpO2Vsc2V7Zm9yKDtlIT09TWF0aC5mbG9vcihlKTspZSo9TWF0aC5wb3coMiwyNTYpLGYtPTI1NjtjPWEoZSl9fWlmKG4ocikpYy5tdWwoclsxXSksdT1yWzBdLmNsb25lKCk7ZWxzZSBpZihpKHIpKXU9ci5jbG9uZSgpO2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiByKXU9byhyKTtlbHNlIGlmKHIpaWYocj09PU1hdGguZmxvb3IocikpdT1hKHIpO2Vsc2V7Zm9yKDtyIT09TWF0aC5mbG9vcihyKTspcio9TWF0aC5wb3coMiwyNTYpLGYrPTI1Njt1PWEocil9ZWxzZSB1PWEoMSk7Zj4wP2M9Yy51c2hsbihmKTpmPDAmJih1PXUudXNobG4oLWYpKTtyZXR1cm4gcyhjLHUpfX0seyIuL2RpdiI6ODUsIi4vaXMtcmF0Ijo4NywiLi9saWIvaXMtYm4iOjkxLCIuL2xpYi9udW0tdG8tYm4iOjkyLCIuL2xpYi9yYXRpb25hbGl6ZSI6OTMsIi4vbGliL3N0ci10by1ibiI6OTR9XSw4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9pcy1ibiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmMj09PXQubGVuZ3RoJiZuKHRbMF0pJiZuKHRbMV0pfX0seyIuL2xpYi9pcy1ibiI6OTF9XSw4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJibi5qcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdC5jbXAobmV3IG4oMCkpfX0seyJibi5qcyI6OTZ9XSw4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2JuLXNpZ24iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGgscj10LndvcmRzLGk9MDtpZigxPT09ZSlpPXJbMF07ZWxzZSBpZigyPT09ZSlpPXJbMF0rNjcxMDg4NjQqclsxXTtlbHNlIGZvcih2YXIgYT0wO2E8ZTthKyspe3ZhciBvPXJbYV07aSs9bypNYXRoLnBvdyg2NzEwODg2NCxhKX1yZXR1cm4gbih0KSppfX0seyIuL2JuLXNpZ24iOjg4fV0sOTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZG91YmxlLWJpdHMiKSxpPXQoImJpdC10d2lkZGxlIikuY291bnRUcmFpbGluZ1plcm9zO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pKG4ubG8odCkpO2lmKGU8MzIpcmV0dXJuIGU7dmFyIHI9aShuLmhpKHQpKTtpZihyPjIwKXJldHVybiA1MjtyZXR1cm4gciszMn19LHsiYml0LXR3aWRkbGUiOjEwMSwiZG91YmxlLWJpdHMiOjE3NH1dLDkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3QoImJuLmpzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0JiYib2JqZWN0Ij09dHlwZW9mIHQmJkJvb2xlYW4odC53b3Jkcyl9fSx7ImJuLmpzIjo5Nn1dLDkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJuLmpzIiksaT10KCJkb3VibGUtYml0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1pLmV4cG9uZW50KHQpO3JldHVybiBlPDUyP25ldyBuKHQpOm5ldyBuKHQqTWF0aC5wb3coMiw1Mi1lKSkudXNobG4oZS01Mil9fSx7ImJuLmpzIjo5NiwiZG91YmxlLWJpdHMiOjE3NH1dLDkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbnVtLXRvLWJuIiksaT10KCIuL2JuLXNpZ24iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1pKHQpLGE9aShlKTtpZigwPT09cilyZXR1cm5bbigwKSxuKDEpXTtpZigwPT09YSlyZXR1cm5bbigwKSxuKDApXTthPDAmJih0PXQubmVnKCksZT1lLm5lZygpKTt2YXIgbz10LmdjZChlKTtpZihvLmNtcG4oMSkpcmV0dXJuW3QuZGl2KG8pLGUuZGl2KG8pXTtyZXR1cm5bdCxlXX19LHsiLi9ibi1zaWduIjo4OCwiLi9udW0tdG8tYm4iOjkyfV0sOTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYm4uanMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBuKHQpfX0seyJibi5qcyI6OTZ9XSw5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9yYXRpb25hbGl6ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuKHRbMF0ubXVsKGVbMF0pLHRbMV0ubXVsKGVbMV0pKX19LHsiLi9saWIvcmF0aW9uYWxpemUiOjkzfV0sOTY6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24oZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2lmKCF0KXRocm93IG5ldyBFcnJvcihlfHwiQXNzZXJ0aW9uIGZhaWxlZCIpfWZ1bmN0aW9uIGkodCxlKXt0LnN1cGVyXz1lO3ZhciByPWZ1bmN0aW9uKCl7fTtyLnByb3RvdHlwZT1lLnByb3RvdHlwZSx0LnByb3RvdHlwZT1uZXcgcix0LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIGEodCxlLHIpe2lmKGEuaXNCTih0KSlyZXR1cm4gdDt0aGlzLm5lZ2F0aXZlPTAsdGhpcy53b3Jkcz1udWxsLHRoaXMubGVuZ3RoPTAsdGhpcy5yZWQ9bnVsbCxudWxsIT09dCYmKCJsZSIhPT1lJiYiYmUiIT09ZXx8KHI9ZSxlPTEwKSx0aGlzLl9pbml0KHR8fDAsZXx8MTAscnx8ImJlIikpfXZhciBvOyJvYmplY3QiPT10eXBlb2YgZT9lLmV4cG9ydHM9YTpyLkJOPWEsYS5CTj1hLGEud29yZFNpemU9MjY7dHJ5e289InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJnZvaWQgMCE9PXdpbmRvdy5CdWZmZXI/d2luZG93LkJ1ZmZlcjp0KCJidWZmZXIiKS5CdWZmZXJ9Y2F0Y2godCl7fWZ1bmN0aW9uIHModCxlKXt2YXIgcj10LmNoYXJDb2RlQXQoZSk7cmV0dXJuIHI+PTY1JiZyPD03MD9yLTU1OnI+PTk3JiZyPD0xMDI/ci04NzpyLTQ4JjE1fWZ1bmN0aW9uIGwodCxlLHIpe3ZhciBuPXModCxyKTtyZXR1cm4gci0xPj1lJiYobnw9cyh0LHItMSk8PDQpLG59ZnVuY3Rpb24gYyh0LGUscixuKXtmb3IodmFyIGk9MCxhPU1hdGgubWluKHQubGVuZ3RoLHIpLG89ZTtvPGE7bysrKXt2YXIgcz10LmNoYXJDb2RlQXQobyktNDg7aSo9bixpKz1zPj00OT9zLTQ5KzEwOnM+PTE3P3MtMTcrMTA6c31yZXR1cm4gaX1hLmlzQk49ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBhfHxudWxsIT09dCYmIm9iamVjdCI9PXR5cGVvZiB0JiZ0LmNvbnN0cnVjdG9yLndvcmRTaXplPT09YS53b3JkU2l6ZSYmQXJyYXkuaXNBcnJheSh0LndvcmRzKX0sYS5tYXg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5jbXAoZSk+MD90OmV9LGEubWluPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuY21wKGUpPDA/dDplfSxhLnByb3RvdHlwZS5faW5pdD1mdW5jdGlvbih0LGUscil7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVybiB0aGlzLl9pbml0TnVtYmVyKHQsZSxyKTtpZigib2JqZWN0Ij09dHlwZW9mIHQpcmV0dXJuIHRoaXMuX2luaXRBcnJheSh0LGUscik7ImhleCI9PT1lJiYoZT0xNiksbihlPT09KDB8ZSkmJmU+PTImJmU8PTM2KTt2YXIgaT0wOyItIj09PSh0PXQudG9TdHJpbmcoKS5yZXBsYWNlKC9ccysvZywiIikpWzBdJiYoaSsrLHRoaXMubmVnYXRpdmU9MSksaTx0Lmxlbmd0aCYmKDE2PT09ZT90aGlzLl9wYXJzZUhleCh0LGkscik6KHRoaXMuX3BhcnNlQmFzZSh0LGUsaSksImxlIj09PXImJnRoaXMuX2luaXRBcnJheSh0aGlzLnRvQXJyYXkoKSxlLHIpKSl9LGEucHJvdG90eXBlLl9pbml0TnVtYmVyPWZ1bmN0aW9uKHQsZSxyKXt0PDAmJih0aGlzLm5lZ2F0aXZlPTEsdD0tdCksdDw2NzEwODg2ND8odGhpcy53b3Jkcz1bNjcxMDg4NjMmdF0sdGhpcy5sZW5ndGg9MSk6dDw0NTAzNTk5NjI3MzcwNDk2Pyh0aGlzLndvcmRzPVs2NzEwODg2MyZ0LHQvNjcxMDg4NjQmNjcxMDg4NjNdLHRoaXMubGVuZ3RoPTIpOihuKHQ8OTAwNzE5OTI1NDc0MDk5MiksdGhpcy53b3Jkcz1bNjcxMDg4NjMmdCx0LzY3MTA4ODY0JjY3MTA4ODYzLDFdLHRoaXMubGVuZ3RoPTMpLCJsZSI9PT1yJiZ0aGlzLl9pbml0QXJyYXkodGhpcy50b0FycmF5KCksZSxyKX0sYS5wcm90b3R5cGUuX2luaXRBcnJheT1mdW5jdGlvbih0LGUscil7aWYobigibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKSx0Lmxlbmd0aDw9MClyZXR1cm4gdGhpcy53b3Jkcz1bMF0sdGhpcy5sZW5ndGg9MSx0aGlzO3RoaXMubGVuZ3RoPU1hdGguY2VpbCh0Lmxlbmd0aC8zKSx0aGlzLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCk7Zm9yKHZhciBpPTA7aTx0aGlzLmxlbmd0aDtpKyspdGhpcy53b3Jkc1tpXT0wO3ZhciBhLG8scz0wO2lmKCJiZSI9PT1yKWZvcihpPXQubGVuZ3RoLTEsYT0wO2k+PTA7aS09MylvPXRbaV18dFtpLTFdPDw4fHRbaS0yXTw8MTYsdGhpcy53b3Jkc1thXXw9bzw8cyY2NzEwODg2Myx0aGlzLndvcmRzW2ErMV09bz4+PjI2LXMmNjcxMDg4NjMsKHMrPTI0KT49MjYmJihzLT0yNixhKyspO2Vsc2UgaWYoImxlIj09PXIpZm9yKGk9MCxhPTA7aTx0Lmxlbmd0aDtpKz0zKW89dFtpXXx0W2krMV08PDh8dFtpKzJdPDwxNix0aGlzLndvcmRzW2FdfD1vPDxzJjY3MTA4ODYzLHRoaXMud29yZHNbYSsxXT1vPj4+MjYtcyY2NzEwODg2Mywocys9MjQpPj0yNiYmKHMtPTI2LGErKyk7cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuX3BhcnNlSGV4PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmxlbmd0aD1NYXRoLmNlaWwoKHQubGVuZ3RoLWUpLzYpLHRoaXMud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIG49MDtuPHRoaXMubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPTA7dmFyIGksYT0wLG89MDtpZigiYmUiPT09cilmb3Iobj10Lmxlbmd0aC0xO24+PWU7bi09MilpPWwodCxlLG4pPDxhLHRoaXMud29yZHNbb118PTY3MTA4ODYzJmksYT49MTg/KGEtPTE4LG8rPTEsdGhpcy53b3Jkc1tvXXw9aT4+PjI2KTphKz04O2Vsc2UgZm9yKG49KHQubGVuZ3RoLWUpJTI9PTA/ZSsxOmU7bjx0Lmxlbmd0aDtuKz0yKWk9bCh0LGUsbik8PGEsdGhpcy53b3Jkc1tvXXw9NjcxMDg4NjMmaSxhPj0xOD8oYS09MTgsbys9MSx0aGlzLndvcmRzW29dfD1pPj4+MjYpOmErPTg7dGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5fcGFyc2VCYXNlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLndvcmRzPVswXSx0aGlzLmxlbmd0aD0xO2Zvcih2YXIgbj0wLGk9MTtpPD02NzEwODg2MztpKj1lKW4rKztuLS0saT1pL2V8MDtmb3IodmFyIGE9dC5sZW5ndGgtcixvPWElbixzPU1hdGgubWluKGEsYS1vKStyLGw9MCx1PXI7dTxzO3UrPW4pbD1jKHQsdSx1K24sZSksdGhpcy5pbXVsbihpKSx0aGlzLndvcmRzWzBdK2w8NjcxMDg4NjQ/dGhpcy53b3Jkc1swXSs9bDp0aGlzLl9pYWRkbihsKTtpZigwIT09byl7dmFyIGY9MTtmb3IobD1jKHQsdSx0Lmxlbmd0aCxlKSx1PTA7dTxvO3UrKylmKj1lO3RoaXMuaW11bG4oZiksdGhpcy53b3Jkc1swXStsPDY3MTA4ODY0P3RoaXMud29yZHNbMF0rPWw6dGhpcy5faWFkZG4obCl9dGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQpe3Qud29yZHM9bmV3IEFycmF5KHRoaXMubGVuZ3RoKTtmb3IodmFyIGU9MDtlPHRoaXMubGVuZ3RoO2UrKyl0LndvcmRzW2VdPXRoaXMud29yZHNbZV07dC5sZW5ndGg9dGhpcy5sZW5ndGgsdC5uZWdhdGl2ZT10aGlzLm5lZ2F0aXZlLHQucmVkPXRoaXMucmVkfSxhLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3ZhciB0PW5ldyBhKG51bGwpO3JldHVybiB0aGlzLmNvcHkodCksdH0sYS5wcm90b3R5cGUuX2V4cGFuZD1mdW5jdGlvbih0KXtmb3IoO3RoaXMubGVuZ3RoPHQ7KXRoaXMud29yZHNbdGhpcy5sZW5ndGgrK109MDtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuc3RyaXA9ZnVuY3Rpb24oKXtmb3IoO3RoaXMubGVuZ3RoPjEmJjA9PT10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdOyl0aGlzLmxlbmd0aC0tO3JldHVybiB0aGlzLl9ub3JtU2lnbigpfSxhLnByb3RvdHlwZS5fbm9ybVNpZ249ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXSYmKHRoaXMubmVnYXRpdmU9MCksdGhpc30sYS5wcm90b3R5cGUuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybih0aGlzLnJlZD8iPEJOLVI6ICI6IjxCTjogIikrdGhpcy50b1N0cmluZygxNikrIj4ifTt2YXIgdT1bIiIsIjAiLCIwMCIsIjAwMCIsIjAwMDAiLCIwMDAwMCIsIjAwMDAwMCIsIjAwMDAwMDAiLCIwMDAwMDAwMCIsIjAwMDAwMDAwMCIsIjAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiLCIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCIsIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAiXSxmPVswLDAsMjUsMTYsMTIsMTEsMTAsOSw4LDgsNyw3LDcsNyw2LDYsNiw2LDYsNiw2LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDUsNSw1LDVdLGg9WzAsMCwzMzU1NDQzMiw0MzA0NjcyMSwxNjc3NzIxNiw0ODgyODEyNSw2MDQ2NjE3Niw0MDM1MzYwNywxNjc3NzIxNiw0MzA0NjcyMSwxZTcsMTk0ODcxNzEsMzU4MzE4MDgsNjI3NDg1MTcsNzUyOTUzNiwxMTM5MDYyNSwxNjc3NzIxNiwyNDEzNzU2OSwzNDAxMjIyNCw0NzA0NTg4MSw2NGU2LDQwODQxMDEsNTE1MzYzMiw2NDM2MzQzLDc5NjI2MjQsOTc2NTYyNSwxMTg4MTM3NiwxNDM0ODkwNywxNzIxMDM2OCwyMDUxMTE0OSwyNDNlNSwyODYyOTE1MSwzMzU1NDQzMiwzOTEzNTM5Myw0NTQzNTQyNCw1MjUyMTg3NSw2MDQ2NjE3Nl07ZnVuY3Rpb24gcCh0LGUscil7ci5uZWdhdGl2ZT1lLm5lZ2F0aXZlXnQubmVnYXRpdmU7dmFyIG49dC5sZW5ndGgrZS5sZW5ndGh8MDtyLmxlbmd0aD1uLG49bi0xfDA7dmFyIGk9MHx0LndvcmRzWzBdLGE9MHxlLndvcmRzWzBdLG89aSphLHM9NjcxMDg4NjMmbyxsPW8vNjcxMDg4NjR8MDtyLndvcmRzWzBdPXM7Zm9yKHZhciBjPTE7YzxuO2MrKyl7Zm9yKHZhciB1PWw+Pj4yNixmPTY3MTA4ODYzJmwsaD1NYXRoLm1pbihjLGUubGVuZ3RoLTEpLHA9TWF0aC5tYXgoMCxjLXQubGVuZ3RoKzEpO3A8PWg7cCsrKXt2YXIgZD1jLXB8MDt1Kz0obz0oaT0wfHQud29yZHNbZF0pKihhPTB8ZS53b3Jkc1twXSkrZikvNjcxMDg4NjR8MCxmPTY3MTA4ODYzJm99ci53b3Jkc1tjXT0wfGYsbD0wfHV9cmV0dXJuIDAhPT1sP3Iud29yZHNbY109MHxsOnIubGVuZ3RoLS0sci5zdHJpcCgpfWEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKHQsZSl7dmFyIHI7aWYoZT0wfGV8fDEsMTY9PT0odD10fHwxMCl8fCJoZXgiPT09dCl7cj0iIjtmb3IodmFyIGk9MCxhPTAsbz0wO288dGhpcy5sZW5ndGg7bysrKXt2YXIgcz10aGlzLndvcmRzW29dLGw9KDE2Nzc3MjE1JihzPDxpfGEpKS50b1N0cmluZygxNik7cj0wIT09KGE9cz4+PjI0LWkmMTY3NzcyMTUpfHxvIT09dGhpcy5sZW5ndGgtMT91WzYtbC5sZW5ndGhdK2wrcjpsK3IsKGkrPTIpPj0yNiYmKGktPTI2LG8tLSl9Zm9yKDAhPT1hJiYocj1hLnRvU3RyaW5nKDE2KStyKTtyLmxlbmd0aCVlIT0wOylyPSIwIityO3JldHVybiAwIT09dGhpcy5uZWdhdGl2ZSYmKHI9Ii0iK3IpLHJ9aWYodD09PSgwfHQpJiZ0Pj0yJiZ0PD0zNil7dmFyIGM9Zlt0XSxwPWhbdF07cj0iIjt2YXIgZD10aGlzLmNsb25lKCk7Zm9yKGQubmVnYXRpdmU9MDshZC5pc1plcm8oKTspe3ZhciBtPWQubW9kbihwKS50b1N0cmluZyh0KTtyPShkPWQuaWRpdm4ocCkpLmlzWmVybygpP20rcjp1W2MtbS5sZW5ndGhdK20rcn1mb3IodGhpcy5pc1plcm8oKSYmKHI9IjAiK3IpO3IubGVuZ3RoJWUhPTA7KXI9IjAiK3I7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlJiYocj0iLSIrcikscn1uKCExLCJCYXNlIHNob3VsZCBiZSBiZXR3ZWVuIDIgYW5kIDM2Iil9LGEucHJvdG90eXBlLnRvTnVtYmVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy53b3Jkc1swXTtyZXR1cm4gMj09PXRoaXMubGVuZ3RoP3QrPTY3MTA4ODY0KnRoaXMud29yZHNbMV06Mz09PXRoaXMubGVuZ3RoJiYxPT09dGhpcy53b3Jkc1syXT90Kz00NTAzNTk5NjI3MzcwNDk2KzY3MTA4ODY0KnRoaXMud29yZHNbMV06dGhpcy5sZW5ndGg+MiYmbighMSwiTnVtYmVyIGNhbiBvbmx5IHNhZmVseSBzdG9yZSB1cCB0byA1MyBiaXRzIiksMCE9PXRoaXMubmVnYXRpdmU/LXQ6dH0sYS5wcm90b3R5cGUudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudG9TdHJpbmcoMTYpfSxhLnByb3RvdHlwZS50b0J1ZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybiBuKHZvaWQgMCE9PW8pLHRoaXMudG9BcnJheUxpa2Uobyx0LGUpfSxhLnByb3RvdHlwZS50b0FycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMudG9BcnJheUxpa2UoQXJyYXksdCxlKX0sYS5wcm90b3R5cGUudG9BcnJheUxpa2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuYnl0ZUxlbmd0aCgpLGE9cnx8TWF0aC5tYXgoMSxpKTtuKGk8PWEsImJ5dGUgYXJyYXkgbG9uZ2VyIHRoYW4gZGVzaXJlZCBsZW5ndGgiKSxuKGE+MCwiUmVxdWVzdGVkIGFycmF5IGxlbmd0aCA8PSAwIiksdGhpcy5zdHJpcCgpO3ZhciBvLHMsbD0ibGUiPT09ZSxjPW5ldyB0KGEpLHU9dGhpcy5jbG9uZSgpO2lmKGwpe2ZvcihzPTA7IXUuaXNaZXJvKCk7cysrKW89dS5hbmRsbigyNTUpLHUuaXVzaHJuKDgpLGNbc109bztmb3IoO3M8YTtzKyspY1tzXT0wfWVsc2V7Zm9yKHM9MDtzPGEtaTtzKyspY1tzXT0wO2ZvcihzPTA7IXUuaXNaZXJvKCk7cysrKW89dS5hbmRsbigyNTUpLHUuaXVzaHJuKDgpLGNbYS1zLTFdPW99cmV0dXJuIGN9LE1hdGguY2x6MzI/YS5wcm90b3R5cGUuX2NvdW50Qml0cz1mdW5jdGlvbih0KXtyZXR1cm4gMzItTWF0aC5jbHozMih0KX06YS5wcm90b3R5cGUuX2NvdW50Qml0cz1mdW5jdGlvbih0KXt2YXIgZT10LHI9MDtyZXR1cm4gZT49NDA5NiYmKHIrPTEzLGU+Pj49MTMpLGU+PTY0JiYocis9NyxlPj4+PTcpLGU+PTgmJihyKz00LGU+Pj49NCksZT49MiYmKHIrPTIsZT4+Pj0yKSxyK2V9LGEucHJvdG90eXBlLl96ZXJvQml0cz1mdW5jdGlvbih0KXtpZigwPT09dClyZXR1cm4gMjY7dmFyIGU9dCxyPTA7cmV0dXJuIDA9PSg4MTkxJmUpJiYocis9MTMsZT4+Pj0xMyksMD09KDEyNyZlKSYmKHIrPTcsZT4+Pj03KSwwPT0oMTUmZSkmJihyKz00LGU+Pj49NCksMD09KDMmZSkmJihyKz0yLGU+Pj49MiksMD09KDEmZSkmJnIrKyxyfSxhLnByb3RvdHlwZS5iaXRMZW5ndGg9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLndvcmRzW3RoaXMubGVuZ3RoLTFdLGU9dGhpcy5fY291bnRCaXRzKHQpO3JldHVybiAyNioodGhpcy5sZW5ndGgtMSkrZX0sYS5wcm90b3R5cGUuemVyb0JpdHM9ZnVuY3Rpb24oKXtpZih0aGlzLmlzWmVybygpKXJldHVybiAwO2Zvcih2YXIgdD0wLGU9MDtlPHRoaXMubGVuZ3RoO2UrKyl7dmFyIHI9dGhpcy5femVyb0JpdHModGhpcy53b3Jkc1tlXSk7aWYodCs9ciwyNiE9PXIpYnJlYWt9cmV0dXJuIHR9LGEucHJvdG90eXBlLmJ5dGVMZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5jZWlsKHRoaXMuYml0TGVuZ3RoKCkvOCl9LGEucHJvdG90eXBlLnRvVHdvcz1mdW5jdGlvbih0KXtyZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/dGhpcy5hYnMoKS5pbm90bih0KS5pYWRkbigxKTp0aGlzLmNsb25lKCl9LGEucHJvdG90eXBlLmZyb21Ud29zPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRlc3RuKHQtMSk/dGhpcy5ub3RuKHQpLmlhZGRuKDEpLmluZWcoKTp0aGlzLmNsb25lKCl9LGEucHJvdG90eXBlLmlzTmVnPWZ1bmN0aW9uKCl7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlfSxhLnByb3RvdHlwZS5uZWc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLmluZWcoKX0sYS5wcm90b3R5cGUuaW5lZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmlzWmVybygpfHwodGhpcy5uZWdhdGl2ZV49MSksdGhpc30sYS5wcm90b3R5cGUuaXVvcj1mdW5jdGlvbih0KXtmb3IoO3RoaXMubGVuZ3RoPHQubGVuZ3RoOyl0aGlzLndvcmRzW3RoaXMubGVuZ3RoKytdPTA7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspdGhpcy53b3Jkc1tlXT10aGlzLndvcmRzW2VdfHQud29yZHNbZV07cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuaW9yPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1b3IodCl9LGEucHJvdG90eXBlLm9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaW9yKHQpOnQuY2xvbmUoKS5pb3IodGhpcyl9LGEucHJvdG90eXBlLnVvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLml1b3IodCk6dC5jbG9uZSgpLml1b3IodGhpcyl9LGEucHJvdG90eXBlLml1YW5kPWZ1bmN0aW9uKHQpe3ZhciBlO2U9dGhpcy5sZW5ndGg+dC5sZW5ndGg/dDp0aGlzO2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXRoaXMud29yZHNbcl09dGhpcy53b3Jkc1tyXSZ0LndvcmRzW3JdO3JldHVybiB0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLmlhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4oMD09KHRoaXMubmVnYXRpdmV8dC5uZWdhdGl2ZSkpLHRoaXMuaXVhbmQodCl9LGEucHJvdG90eXBlLmFuZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhbmQodCk6dC5jbG9uZSgpLmlhbmQodGhpcyl9LGEucHJvdG90eXBlLnVhbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5pdWFuZCh0KTp0LmNsb25lKCkuaXVhbmQodGhpcyl9LGEucHJvdG90eXBlLml1eG9yPWZ1bmN0aW9uKHQpe3ZhciBlLHI7dGhpcy5sZW5ndGg+dC5sZW5ndGg/KGU9dGhpcyxyPXQpOihlPXQscj10aGlzKTtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl0aGlzLndvcmRzW25dPWUud29yZHNbbl1eci53b3Jkc1tuXTtpZih0aGlzIT09ZSlmb3IoO248ZS5sZW5ndGg7bisrKXRoaXMud29yZHNbbl09ZS53b3Jkc1tuXTtyZXR1cm4gdGhpcy5sZW5ndGg9ZS5sZW5ndGgsdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5peG9yPWZ1bmN0aW9uKHQpe3JldHVybiBuKDA9PSh0aGlzLm5lZ2F0aXZlfHQubmVnYXRpdmUpKSx0aGlzLml1eG9yKHQpfSxhLnByb3RvdHlwZS54b3I9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVuZ3RoPnQubGVuZ3RoP3RoaXMuY2xvbmUoKS5peG9yKHQpOnQuY2xvbmUoKS5peG9yKHRoaXMpfSxhLnByb3RvdHlwZS51eG9yPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmxlbmd0aD50Lmxlbmd0aD90aGlzLmNsb25lKCkuaXV4b3IodCk6dC5jbG9uZSgpLml1eG9yKHRoaXMpfSxhLnByb3RvdHlwZS5pbm90bj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9MHxNYXRoLmNlaWwodC8yNikscj10JTI2O3RoaXMuX2V4cGFuZChlKSxyPjAmJmUtLTtmb3IodmFyIGk9MDtpPGU7aSsrKXRoaXMud29yZHNbaV09NjcxMDg4NjMmfnRoaXMud29yZHNbaV07cmV0dXJuIHI+MCYmKHRoaXMud29yZHNbaV09fnRoaXMud29yZHNbaV0mNjcxMDg4NjM+PjI2LXIpLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUubm90bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlub3RuKHQpfSxhLnByb3RvdHlwZS5zZXRuPWZ1bmN0aW9uKHQsZSl7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciByPXQvMjZ8MCxpPXQlMjY7cmV0dXJuIHRoaXMuX2V4cGFuZChyKzEpLHRoaXMud29yZHNbcl09ZT90aGlzLndvcmRzW3JdfDE8PGk6dGhpcy53b3Jkc1tyXSZ+KDE8PGkpLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0KXt2YXIgZSxyLG47aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT10Lm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsZT10aGlzLmlzdWIodCksdGhpcy5uZWdhdGl2ZV49MSx0aGlzLl9ub3JtU2lnbigpO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dC5uZWdhdGl2ZSlyZXR1cm4gdC5uZWdhdGl2ZT0wLGU9dGhpcy5pc3ViKHQpLHQubmVnYXRpdmU9MSxlLl9ub3JtU2lnbigpO3RoaXMubGVuZ3RoPnQubGVuZ3RoPyhyPXRoaXMsbj10KToocj10LG49dGhpcyk7Zm9yKHZhciBpPTAsYT0wO2E8bi5sZW5ndGg7YSsrKWU9KDB8ci53b3Jkc1thXSkrKDB8bi53b3Jkc1thXSkraSx0aGlzLndvcmRzW2FdPTY3MTA4ODYzJmUsaT1lPj4+MjY7Zm9yKDswIT09aSYmYTxyLmxlbmd0aDthKyspZT0oMHxyLndvcmRzW2FdKStpLHRoaXMud29yZHNbYV09NjcxMDg4NjMmZSxpPWU+Pj4yNjtpZih0aGlzLmxlbmd0aD1yLmxlbmd0aCwwIT09aSl0aGlzLndvcmRzW3RoaXMubGVuZ3RoXT1pLHRoaXMubGVuZ3RoKys7ZWxzZSBpZihyIT09dGhpcylmb3IoO2E8ci5sZW5ndGg7YSsrKXRoaXMud29yZHNbYV09ci53b3Jkc1thXTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiAwIT09dC5uZWdhdGl2ZSYmMD09PXRoaXMubmVnYXRpdmU/KHQubmVnYXRpdmU9MCxlPXRoaXMuc3ViKHQpLHQubmVnYXRpdmVePTEsZSk6MD09PXQubmVnYXRpdmUmJjAhPT10aGlzLm5lZ2F0aXZlPyh0aGlzLm5lZ2F0aXZlPTAsZT10LnN1Yih0aGlzKSx0aGlzLm5lZ2F0aXZlPTEsZSk6dGhpcy5sZW5ndGg+dC5sZW5ndGg/dGhpcy5jbG9uZSgpLmlhZGQodCk6dC5jbG9uZSgpLmlhZGQodGhpcyl9LGEucHJvdG90eXBlLmlzdWI9ZnVuY3Rpb24odCl7aWYoMCE9PXQubmVnYXRpdmUpe3QubmVnYXRpdmU9MDt2YXIgZT10aGlzLmlhZGQodCk7cmV0dXJuIHQubmVnYXRpdmU9MSxlLl9ub3JtU2lnbigpfWlmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkKHQpLHRoaXMubmVnYXRpdmU9MSx0aGlzLl9ub3JtU2lnbigpO3ZhciByLG4saT10aGlzLmNtcCh0KTtpZigwPT09aSlyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXMubGVuZ3RoPTEsdGhpcy53b3Jkc1swXT0wLHRoaXM7aT4wPyhyPXRoaXMsbj10KToocj10LG49dGhpcyk7Zm9yKHZhciBhPTAsbz0wO288bi5sZW5ndGg7bysrKWE9KGU9KDB8ci53b3Jkc1tvXSktKDB8bi53b3Jkc1tvXSkrYSk+PjI2LHRoaXMud29yZHNbb109NjcxMDg4NjMmZTtmb3IoOzAhPT1hJiZvPHIubGVuZ3RoO28rKylhPShlPSgwfHIud29yZHNbb10pK2EpPj4yNix0aGlzLndvcmRzW29dPTY3MTA4ODYzJmU7aWYoMD09PWEmJm88ci5sZW5ndGgmJnIhPT10aGlzKWZvcig7bzxyLmxlbmd0aDtvKyspdGhpcy53b3Jkc1tvXT1yLndvcmRzW29dO3JldHVybiB0aGlzLmxlbmd0aD1NYXRoLm1heCh0aGlzLmxlbmd0aCxvKSxyIT09dGhpcyYmKHRoaXMubmVnYXRpdmU9MSksdGhpcy5zdHJpcCgpfSxhLnByb3RvdHlwZS5zdWI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pc3ViKHQpfTt2YXIgZD1mdW5jdGlvbih0LGUscil7dmFyIG4saSxhLG89dC53b3JkcyxzPWUud29yZHMsbD1yLndvcmRzLGM9MCx1PTB8b1swXSxmPTgxOTEmdSxoPXU+Pj4xMyxwPTB8b1sxXSxkPTgxOTEmcCxtPXA+Pj4xMyxnPTB8b1syXSx2PTgxOTEmZyx5PWc+Pj4xMyx4PTB8b1szXSxiPTgxOTEmeCxfPXg+Pj4xMyx3PTB8b1s0XSxUPTgxOTEmdyxrPXc+Pj4xMyxBPTB8b1s1XSxNPTgxOTEmQSxTPUE+Pj4xMyxFPTB8b1s2XSxMPTgxOTEmRSxDPUU+Pj4xMyxQPTB8b1s3XSxJPTgxOTEmUCxPPVA+Pj4xMyx6PTB8b1s4XSxEPTgxOTEmeixSPXo+Pj4xMyxGPTB8b1s5XSxCPTgxOTEmRixOPUY+Pj4xMyxqPTB8c1swXSxVPTgxOTEmaixWPWo+Pj4xMyxIPTB8c1sxXSxxPTgxOTEmSCxHPUg+Pj4xMyxZPTB8c1syXSxXPTgxOTEmWSxYPVk+Pj4xMyxaPTB8c1szXSxKPTgxOTEmWixLPVo+Pj4xMyxRPTB8c1s0XSwkPTgxOTEmUSx0dD1RPj4+MTMsZXQ9MHxzWzVdLHJ0PTgxOTEmZXQsbnQ9ZXQ+Pj4xMyxpdD0wfHNbNl0sYXQ9ODE5MSZpdCxvdD1pdD4+PjEzLHN0PTB8c1s3XSxsdD04MTkxJnN0LGN0PXN0Pj4+MTMsdXQ9MHxzWzhdLGZ0PTgxOTEmdXQsaHQ9dXQ+Pj4xMyxwdD0wfHNbOV0sZHQ9ODE5MSZwdCxtdD1wdD4+PjEzO3IubmVnYXRpdmU9dC5uZWdhdGl2ZV5lLm5lZ2F0aXZlLHIubGVuZ3RoPTE5O3ZhciBndD0oYysobj1NYXRoLmltdWwoZixVKSl8MCkrKCg4MTkxJihpPShpPU1hdGguaW11bChmLFYpKStNYXRoLmltdWwoaCxVKXwwKSk8PDEzKXwwO2M9KChhPU1hdGguaW11bChoLFYpKSsoaT4+PjEzKXwwKSsoZ3Q+Pj4yNil8MCxndCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoZCxVKSxpPShpPU1hdGguaW11bChkLFYpKStNYXRoLmltdWwobSxVKXwwLGE9TWF0aC5pbXVsKG0sVik7dmFyIHZ0PShjKyhuPW4rTWF0aC5pbXVsKGYscSl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGYsRyl8MCkrTWF0aC5pbXVsKGgscSl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChoLEcpfDApKyhpPj4+MTMpfDApKyh2dD4+PjI2KXwwLHZ0Jj02NzEwODg2MyxuPU1hdGguaW11bCh2LFUpLGk9KGk9TWF0aC5pbXVsKHYsVikpK01hdGguaW11bCh5LFUpfDAsYT1NYXRoLmltdWwoeSxWKSxuPW4rTWF0aC5pbXVsKGQscSl8MCxpPShpPWkrTWF0aC5pbXVsKGQsRyl8MCkrTWF0aC5pbXVsKG0scSl8MCxhPWErTWF0aC5pbXVsKG0sRyl8MDt2YXIgeXQ9KGMrKG49bitNYXRoLmltdWwoZixXKXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoZixYKXwwKStNYXRoLmltdWwoaCxXKXwwKSk8PDEzKXwwO2M9KChhPWErTWF0aC5pbXVsKGgsWCl8MCkrKGk+Pj4xMyl8MCkrKHl0Pj4+MjYpfDAseXQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKGIsVSksaT0oaT1NYXRoLmltdWwoYixWKSkrTWF0aC5pbXVsKF8sVSl8MCxhPU1hdGguaW11bChfLFYpLG49bitNYXRoLmltdWwodixxKXwwLGk9KGk9aStNYXRoLmltdWwodixHKXwwKStNYXRoLmltdWwoeSxxKXwwLGE9YStNYXRoLmltdWwoeSxHKXwwLG49bitNYXRoLmltdWwoZCxXKXwwLGk9KGk9aStNYXRoLmltdWwoZCxYKXwwKStNYXRoLmltdWwobSxXKXwwLGE9YStNYXRoLmltdWwobSxYKXwwO3ZhciB4dD0oYysobj1uK01hdGguaW11bChmLEopfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChmLEspfDApK01hdGguaW11bChoLEopfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoaCxLKXwwKSsoaT4+PjEzKXwwKSsoeHQ+Pj4yNil8MCx4dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoVCxVKSxpPShpPU1hdGguaW11bChULFYpKStNYXRoLmltdWwoayxVKXwwLGE9TWF0aC5pbXVsKGssViksbj1uK01hdGguaW11bChiLHEpfDAsaT0oaT1pK01hdGguaW11bChiLEcpfDApK01hdGguaW11bChfLHEpfDAsYT1hK01hdGguaW11bChfLEcpfDAsbj1uK01hdGguaW11bCh2LFcpfDAsaT0oaT1pK01hdGguaW11bCh2LFgpfDApK01hdGguaW11bCh5LFcpfDAsYT1hK01hdGguaW11bCh5LFgpfDAsbj1uK01hdGguaW11bChkLEopfDAsaT0oaT1pK01hdGguaW11bChkLEspfDApK01hdGguaW11bChtLEopfDAsYT1hK01hdGguaW11bChtLEspfDA7dmFyIGJ0PShjKyhuPW4rTWF0aC5pbXVsKGYsJCl8MCl8MCkrKCg4MTkxJihpPShpPWkrTWF0aC5pbXVsKGYsdHQpfDApK01hdGguaW11bChoLCQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoaCx0dCl8MCkrKGk+Pj4xMyl8MCkrKGJ0Pj4+MjYpfDAsYnQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKE0sVSksaT0oaT1NYXRoLmltdWwoTSxWKSkrTWF0aC5pbXVsKFMsVSl8MCxhPU1hdGguaW11bChTLFYpLG49bitNYXRoLmltdWwoVCxxKXwwLGk9KGk9aStNYXRoLmltdWwoVCxHKXwwKStNYXRoLmltdWwoayxxKXwwLGE9YStNYXRoLmltdWwoayxHKXwwLG49bitNYXRoLmltdWwoYixXKXwwLGk9KGk9aStNYXRoLmltdWwoYixYKXwwKStNYXRoLmltdWwoXyxXKXwwLGE9YStNYXRoLmltdWwoXyxYKXwwLG49bitNYXRoLmltdWwodixKKXwwLGk9KGk9aStNYXRoLmltdWwodixLKXwwKStNYXRoLmltdWwoeSxKKXwwLGE9YStNYXRoLmltdWwoeSxLKXwwLG49bitNYXRoLmltdWwoZCwkKXwwLGk9KGk9aStNYXRoLmltdWwoZCx0dCl8MCkrTWF0aC5pbXVsKG0sJCl8MCxhPWErTWF0aC5pbXVsKG0sdHQpfDA7dmFyIF90PShjKyhuPW4rTWF0aC5pbXVsKGYscnQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChmLG50KXwwKStNYXRoLmltdWwoaCxydCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChoLG50KXwwKSsoaT4+PjEzKXwwKSsoX3Q+Pj4yNil8MCxfdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoTCxVKSxpPShpPU1hdGguaW11bChMLFYpKStNYXRoLmltdWwoQyxVKXwwLGE9TWF0aC5pbXVsKEMsViksbj1uK01hdGguaW11bChNLHEpfDAsaT0oaT1pK01hdGguaW11bChNLEcpfDApK01hdGguaW11bChTLHEpfDAsYT1hK01hdGguaW11bChTLEcpfDAsbj1uK01hdGguaW11bChULFcpfDAsaT0oaT1pK01hdGguaW11bChULFgpfDApK01hdGguaW11bChrLFcpfDAsYT1hK01hdGguaW11bChrLFgpfDAsbj1uK01hdGguaW11bChiLEopfDAsaT0oaT1pK01hdGguaW11bChiLEspfDApK01hdGguaW11bChfLEopfDAsYT1hK01hdGguaW11bChfLEspfDAsbj1uK01hdGguaW11bCh2LCQpfDAsaT0oaT1pK01hdGguaW11bCh2LHR0KXwwKStNYXRoLmltdWwoeSwkKXwwLGE9YStNYXRoLmltdWwoeSx0dCl8MCxuPW4rTWF0aC5pbXVsKGQscnQpfDAsaT0oaT1pK01hdGguaW11bChkLG50KXwwKStNYXRoLmltdWwobSxydCl8MCxhPWErTWF0aC5pbXVsKG0sbnQpfDA7dmFyIHd0PShjKyhuPW4rTWF0aC5pbXVsKGYsYXQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChmLG90KXwwKStNYXRoLmltdWwoaCxhdCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChoLG90KXwwKSsoaT4+PjEzKXwwKSsod3Q+Pj4yNil8MCx3dCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoSSxVKSxpPShpPU1hdGguaW11bChJLFYpKStNYXRoLmltdWwoTyxVKXwwLGE9TWF0aC5pbXVsKE8sViksbj1uK01hdGguaW11bChMLHEpfDAsaT0oaT1pK01hdGguaW11bChMLEcpfDApK01hdGguaW11bChDLHEpfDAsYT1hK01hdGguaW11bChDLEcpfDAsbj1uK01hdGguaW11bChNLFcpfDAsaT0oaT1pK01hdGguaW11bChNLFgpfDApK01hdGguaW11bChTLFcpfDAsYT1hK01hdGguaW11bChTLFgpfDAsbj1uK01hdGguaW11bChULEopfDAsaT0oaT1pK01hdGguaW11bChULEspfDApK01hdGguaW11bChrLEopfDAsYT1hK01hdGguaW11bChrLEspfDAsbj1uK01hdGguaW11bChiLCQpfDAsaT0oaT1pK01hdGguaW11bChiLHR0KXwwKStNYXRoLmltdWwoXywkKXwwLGE9YStNYXRoLmltdWwoXyx0dCl8MCxuPW4rTWF0aC5pbXVsKHYscnQpfDAsaT0oaT1pK01hdGguaW11bCh2LG50KXwwKStNYXRoLmltdWwoeSxydCl8MCxhPWErTWF0aC5pbXVsKHksbnQpfDAsbj1uK01hdGguaW11bChkLGF0KXwwLGk9KGk9aStNYXRoLmltdWwoZCxvdCl8MCkrTWF0aC5pbXVsKG0sYXQpfDAsYT1hK01hdGguaW11bChtLG90KXwwO3ZhciBUdD0oYysobj1uK01hdGguaW11bChmLGx0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoZixjdCl8MCkrTWF0aC5pbXVsKGgsbHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoaCxjdCl8MCkrKGk+Pj4xMyl8MCkrKFR0Pj4+MjYpfDAsVHQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEQsVSksaT0oaT1NYXRoLmltdWwoRCxWKSkrTWF0aC5pbXVsKFIsVSl8MCxhPU1hdGguaW11bChSLFYpLG49bitNYXRoLmltdWwoSSxxKXwwLGk9KGk9aStNYXRoLmltdWwoSSxHKXwwKStNYXRoLmltdWwoTyxxKXwwLGE9YStNYXRoLmltdWwoTyxHKXwwLG49bitNYXRoLmltdWwoTCxXKXwwLGk9KGk9aStNYXRoLmltdWwoTCxYKXwwKStNYXRoLmltdWwoQyxXKXwwLGE9YStNYXRoLmltdWwoQyxYKXwwLG49bitNYXRoLmltdWwoTSxKKXwwLGk9KGk9aStNYXRoLmltdWwoTSxLKXwwKStNYXRoLmltdWwoUyxKKXwwLGE9YStNYXRoLmltdWwoUyxLKXwwLG49bitNYXRoLmltdWwoVCwkKXwwLGk9KGk9aStNYXRoLmltdWwoVCx0dCl8MCkrTWF0aC5pbXVsKGssJCl8MCxhPWErTWF0aC5pbXVsKGssdHQpfDAsbj1uK01hdGguaW11bChiLHJ0KXwwLGk9KGk9aStNYXRoLmltdWwoYixudCl8MCkrTWF0aC5pbXVsKF8scnQpfDAsYT1hK01hdGguaW11bChfLG50KXwwLG49bitNYXRoLmltdWwodixhdCl8MCxpPShpPWkrTWF0aC5pbXVsKHYsb3QpfDApK01hdGguaW11bCh5LGF0KXwwLGE9YStNYXRoLmltdWwoeSxvdCl8MCxuPW4rTWF0aC5pbXVsKGQsbHQpfDAsaT0oaT1pK01hdGguaW11bChkLGN0KXwwKStNYXRoLmltdWwobSxsdCl8MCxhPWErTWF0aC5pbXVsKG0sY3QpfDA7dmFyIGt0PShjKyhuPW4rTWF0aC5pbXVsKGYsZnQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChmLGh0KXwwKStNYXRoLmltdWwoaCxmdCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChoLGh0KXwwKSsoaT4+PjEzKXwwKSsoa3Q+Pj4yNil8MCxrdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQixVKSxpPShpPU1hdGguaW11bChCLFYpKStNYXRoLmltdWwoTixVKXwwLGE9TWF0aC5pbXVsKE4sViksbj1uK01hdGguaW11bChELHEpfDAsaT0oaT1pK01hdGguaW11bChELEcpfDApK01hdGguaW11bChSLHEpfDAsYT1hK01hdGguaW11bChSLEcpfDAsbj1uK01hdGguaW11bChJLFcpfDAsaT0oaT1pK01hdGguaW11bChJLFgpfDApK01hdGguaW11bChPLFcpfDAsYT1hK01hdGguaW11bChPLFgpfDAsbj1uK01hdGguaW11bChMLEopfDAsaT0oaT1pK01hdGguaW11bChMLEspfDApK01hdGguaW11bChDLEopfDAsYT1hK01hdGguaW11bChDLEspfDAsbj1uK01hdGguaW11bChNLCQpfDAsaT0oaT1pK01hdGguaW11bChNLHR0KXwwKStNYXRoLmltdWwoUywkKXwwLGE9YStNYXRoLmltdWwoUyx0dCl8MCxuPW4rTWF0aC5pbXVsKFQscnQpfDAsaT0oaT1pK01hdGguaW11bChULG50KXwwKStNYXRoLmltdWwoayxydCl8MCxhPWErTWF0aC5pbXVsKGssbnQpfDAsbj1uK01hdGguaW11bChiLGF0KXwwLGk9KGk9aStNYXRoLmltdWwoYixvdCl8MCkrTWF0aC5pbXVsKF8sYXQpfDAsYT1hK01hdGguaW11bChfLG90KXwwLG49bitNYXRoLmltdWwodixsdCl8MCxpPShpPWkrTWF0aC5pbXVsKHYsY3QpfDApK01hdGguaW11bCh5LGx0KXwwLGE9YStNYXRoLmltdWwoeSxjdCl8MCxuPW4rTWF0aC5pbXVsKGQsZnQpfDAsaT0oaT1pK01hdGguaW11bChkLGh0KXwwKStNYXRoLmltdWwobSxmdCl8MCxhPWErTWF0aC5pbXVsKG0saHQpfDA7dmFyIEF0PShjKyhuPW4rTWF0aC5pbXVsKGYsZHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChmLG10KXwwKStNYXRoLmltdWwoaCxkdCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChoLG10KXwwKSsoaT4+PjEzKXwwKSsoQXQ+Pj4yNil8MCxBdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQixxKSxpPShpPU1hdGguaW11bChCLEcpKStNYXRoLmltdWwoTixxKXwwLGE9TWF0aC5pbXVsKE4sRyksbj1uK01hdGguaW11bChELFcpfDAsaT0oaT1pK01hdGguaW11bChELFgpfDApK01hdGguaW11bChSLFcpfDAsYT1hK01hdGguaW11bChSLFgpfDAsbj1uK01hdGguaW11bChJLEopfDAsaT0oaT1pK01hdGguaW11bChJLEspfDApK01hdGguaW11bChPLEopfDAsYT1hK01hdGguaW11bChPLEspfDAsbj1uK01hdGguaW11bChMLCQpfDAsaT0oaT1pK01hdGguaW11bChMLHR0KXwwKStNYXRoLmltdWwoQywkKXwwLGE9YStNYXRoLmltdWwoQyx0dCl8MCxuPW4rTWF0aC5pbXVsKE0scnQpfDAsaT0oaT1pK01hdGguaW11bChNLG50KXwwKStNYXRoLmltdWwoUyxydCl8MCxhPWErTWF0aC5pbXVsKFMsbnQpfDAsbj1uK01hdGguaW11bChULGF0KXwwLGk9KGk9aStNYXRoLmltdWwoVCxvdCl8MCkrTWF0aC5pbXVsKGssYXQpfDAsYT1hK01hdGguaW11bChrLG90KXwwLG49bitNYXRoLmltdWwoYixsdCl8MCxpPShpPWkrTWF0aC5pbXVsKGIsY3QpfDApK01hdGguaW11bChfLGx0KXwwLGE9YStNYXRoLmltdWwoXyxjdCl8MCxuPW4rTWF0aC5pbXVsKHYsZnQpfDAsaT0oaT1pK01hdGguaW11bCh2LGh0KXwwKStNYXRoLmltdWwoeSxmdCl8MCxhPWErTWF0aC5pbXVsKHksaHQpfDA7dmFyIE10PShjKyhuPW4rTWF0aC5pbXVsKGQsZHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChkLG10KXwwKStNYXRoLmltdWwobSxkdCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChtLG10KXwwKSsoaT4+PjEzKXwwKSsoTXQ+Pj4yNil8MCxNdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQixXKSxpPShpPU1hdGguaW11bChCLFgpKStNYXRoLmltdWwoTixXKXwwLGE9TWF0aC5pbXVsKE4sWCksbj1uK01hdGguaW11bChELEopfDAsaT0oaT1pK01hdGguaW11bChELEspfDApK01hdGguaW11bChSLEopfDAsYT1hK01hdGguaW11bChSLEspfDAsbj1uK01hdGguaW11bChJLCQpfDAsaT0oaT1pK01hdGguaW11bChJLHR0KXwwKStNYXRoLmltdWwoTywkKXwwLGE9YStNYXRoLmltdWwoTyx0dCl8MCxuPW4rTWF0aC5pbXVsKEwscnQpfDAsaT0oaT1pK01hdGguaW11bChMLG50KXwwKStNYXRoLmltdWwoQyxydCl8MCxhPWErTWF0aC5pbXVsKEMsbnQpfDAsbj1uK01hdGguaW11bChNLGF0KXwwLGk9KGk9aStNYXRoLmltdWwoTSxvdCl8MCkrTWF0aC5pbXVsKFMsYXQpfDAsYT1hK01hdGguaW11bChTLG90KXwwLG49bitNYXRoLmltdWwoVCxsdCl8MCxpPShpPWkrTWF0aC5pbXVsKFQsY3QpfDApK01hdGguaW11bChrLGx0KXwwLGE9YStNYXRoLmltdWwoayxjdCl8MCxuPW4rTWF0aC5pbXVsKGIsZnQpfDAsaT0oaT1pK01hdGguaW11bChiLGh0KXwwKStNYXRoLmltdWwoXyxmdCl8MCxhPWErTWF0aC5pbXVsKF8saHQpfDA7dmFyIFN0PShjKyhuPW4rTWF0aC5pbXVsKHYsZHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bCh2LG10KXwwKStNYXRoLmltdWwoeSxkdCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bCh5LG10KXwwKSsoaT4+PjEzKXwwKSsoU3Q+Pj4yNil8MCxTdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQixKKSxpPShpPU1hdGguaW11bChCLEspKStNYXRoLmltdWwoTixKKXwwLGE9TWF0aC5pbXVsKE4sSyksbj1uK01hdGguaW11bChELCQpfDAsaT0oaT1pK01hdGguaW11bChELHR0KXwwKStNYXRoLmltdWwoUiwkKXwwLGE9YStNYXRoLmltdWwoUix0dCl8MCxuPW4rTWF0aC5pbXVsKEkscnQpfDAsaT0oaT1pK01hdGguaW11bChJLG50KXwwKStNYXRoLmltdWwoTyxydCl8MCxhPWErTWF0aC5pbXVsKE8sbnQpfDAsbj1uK01hdGguaW11bChMLGF0KXwwLGk9KGk9aStNYXRoLmltdWwoTCxvdCl8MCkrTWF0aC5pbXVsKEMsYXQpfDAsYT1hK01hdGguaW11bChDLG90KXwwLG49bitNYXRoLmltdWwoTSxsdCl8MCxpPShpPWkrTWF0aC5pbXVsKE0sY3QpfDApK01hdGguaW11bChTLGx0KXwwLGE9YStNYXRoLmltdWwoUyxjdCl8MCxuPW4rTWF0aC5pbXVsKFQsZnQpfDAsaT0oaT1pK01hdGguaW11bChULGh0KXwwKStNYXRoLmltdWwoayxmdCl8MCxhPWErTWF0aC5pbXVsKGssaHQpfDA7dmFyIEV0PShjKyhuPW4rTWF0aC5pbXVsKGIsZHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChiLG10KXwwKStNYXRoLmltdWwoXyxkdCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChfLG10KXwwKSsoaT4+PjEzKXwwKSsoRXQ+Pj4yNil8MCxFdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQiwkKSxpPShpPU1hdGguaW11bChCLHR0KSkrTWF0aC5pbXVsKE4sJCl8MCxhPU1hdGguaW11bChOLHR0KSxuPW4rTWF0aC5pbXVsKEQscnQpfDAsaT0oaT1pK01hdGguaW11bChELG50KXwwKStNYXRoLmltdWwoUixydCl8MCxhPWErTWF0aC5pbXVsKFIsbnQpfDAsbj1uK01hdGguaW11bChJLGF0KXwwLGk9KGk9aStNYXRoLmltdWwoSSxvdCl8MCkrTWF0aC5pbXVsKE8sYXQpfDAsYT1hK01hdGguaW11bChPLG90KXwwLG49bitNYXRoLmltdWwoTCxsdCl8MCxpPShpPWkrTWF0aC5pbXVsKEwsY3QpfDApK01hdGguaW11bChDLGx0KXwwLGE9YStNYXRoLmltdWwoQyxjdCl8MCxuPW4rTWF0aC5pbXVsKE0sZnQpfDAsaT0oaT1pK01hdGguaW11bChNLGh0KXwwKStNYXRoLmltdWwoUyxmdCl8MCxhPWErTWF0aC5pbXVsKFMsaHQpfDA7dmFyIEx0PShjKyhuPW4rTWF0aC5pbXVsKFQsZHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChULG10KXwwKStNYXRoLmltdWwoayxkdCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChrLG10KXwwKSsoaT4+PjEzKXwwKSsoTHQ+Pj4yNil8MCxMdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQixydCksaT0oaT1NYXRoLmltdWwoQixudCkpK01hdGguaW11bChOLHJ0KXwwLGE9TWF0aC5pbXVsKE4sbnQpLG49bitNYXRoLmltdWwoRCxhdCl8MCxpPShpPWkrTWF0aC5pbXVsKEQsb3QpfDApK01hdGguaW11bChSLGF0KXwwLGE9YStNYXRoLmltdWwoUixvdCl8MCxuPW4rTWF0aC5pbXVsKEksbHQpfDAsaT0oaT1pK01hdGguaW11bChJLGN0KXwwKStNYXRoLmltdWwoTyxsdCl8MCxhPWErTWF0aC5pbXVsKE8sY3QpfDAsbj1uK01hdGguaW11bChMLGZ0KXwwLGk9KGk9aStNYXRoLmltdWwoTCxodCl8MCkrTWF0aC5pbXVsKEMsZnQpfDAsYT1hK01hdGguaW11bChDLGh0KXwwO3ZhciBDdD0oYysobj1uK01hdGguaW11bChNLGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoTSxtdCl8MCkrTWF0aC5pbXVsKFMsZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoUyxtdCl8MCkrKGk+Pj4xMyl8MCkrKEN0Pj4+MjYpfDAsQ3QmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIsYXQpLGk9KGk9TWF0aC5pbXVsKEIsb3QpKStNYXRoLmltdWwoTixhdCl8MCxhPU1hdGguaW11bChOLG90KSxuPW4rTWF0aC5pbXVsKEQsbHQpfDAsaT0oaT1pK01hdGguaW11bChELGN0KXwwKStNYXRoLmltdWwoUixsdCl8MCxhPWErTWF0aC5pbXVsKFIsY3QpfDAsbj1uK01hdGguaW11bChJLGZ0KXwwLGk9KGk9aStNYXRoLmltdWwoSSxodCl8MCkrTWF0aC5pbXVsKE8sZnQpfDAsYT1hK01hdGguaW11bChPLGh0KXwwO3ZhciBQdD0oYysobj1uK01hdGguaW11bChMLGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoTCxtdCl8MCkrTWF0aC5pbXVsKEMsZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoQyxtdCl8MCkrKGk+Pj4xMyl8MCkrKFB0Pj4+MjYpfDAsUHQmPTY3MTA4ODYzLG49TWF0aC5pbXVsKEIsbHQpLGk9KGk9TWF0aC5pbXVsKEIsY3QpKStNYXRoLmltdWwoTixsdCl8MCxhPU1hdGguaW11bChOLGN0KSxuPW4rTWF0aC5pbXVsKEQsZnQpfDAsaT0oaT1pK01hdGguaW11bChELGh0KXwwKStNYXRoLmltdWwoUixmdCl8MCxhPWErTWF0aC5pbXVsKFIsaHQpfDA7dmFyIEl0PShjKyhuPW4rTWF0aC5pbXVsKEksZHQpfDApfDApKygoODE5MSYoaT0oaT1pK01hdGguaW11bChJLG10KXwwKStNYXRoLmltdWwoTyxkdCl8MCkpPDwxMyl8MDtjPSgoYT1hK01hdGguaW11bChPLG10KXwwKSsoaT4+PjEzKXwwKSsoSXQ+Pj4yNil8MCxJdCY9NjcxMDg4NjMsbj1NYXRoLmltdWwoQixmdCksaT0oaT1NYXRoLmltdWwoQixodCkpK01hdGguaW11bChOLGZ0KXwwLGE9TWF0aC5pbXVsKE4saHQpO3ZhciBPdD0oYysobj1uK01hdGguaW11bChELGR0KXwwKXwwKSsoKDgxOTEmKGk9KGk9aStNYXRoLmltdWwoRCxtdCl8MCkrTWF0aC5pbXVsKFIsZHQpfDApKTw8MTMpfDA7Yz0oKGE9YStNYXRoLmltdWwoUixtdCl8MCkrKGk+Pj4xMyl8MCkrKE90Pj4+MjYpfDAsT3QmPTY3MTA4ODYzO3ZhciB6dD0oYysobj1NYXRoLmltdWwoQixkdCkpfDApKygoODE5MSYoaT0oaT1NYXRoLmltdWwoQixtdCkpK01hdGguaW11bChOLGR0KXwwKSk8PDEzKXwwO3JldHVybiBjPSgoYT1NYXRoLmltdWwoTixtdCkpKyhpPj4+MTMpfDApKyh6dD4+PjI2KXwwLHp0Jj02NzEwODg2MyxsWzBdPWd0LGxbMV09dnQsbFsyXT15dCxsWzNdPXh0LGxbNF09YnQsbFs1XT1fdCxsWzZdPXd0LGxbN109VHQsbFs4XT1rdCxsWzldPUF0LGxbMTBdPU10LGxbMTFdPVN0LGxbMTJdPUV0LGxbMTNdPUx0LGxbMTRdPUN0LGxbMTVdPVB0LGxbMTZdPUl0LGxbMTddPU90LGxbMThdPXp0LDAhPT1jJiYobFsxOV09YyxyLmxlbmd0aCsrKSxyfTtmdW5jdGlvbiBtKHQsZSxyKXtyZXR1cm4obmV3IGcpLm11bHAodCxlLHIpfWZ1bmN0aW9uIGcodCxlKXt0aGlzLng9dCx0aGlzLnk9ZX1NYXRoLmltdWx8fChkPXApLGEucHJvdG90eXBlLm11bFRvPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sZW5ndGgrdC5sZW5ndGg7cmV0dXJuIDEwPT09dGhpcy5sZW5ndGgmJjEwPT09dC5sZW5ndGg/ZCh0aGlzLHQsZSk6cjw2Mz9wKHRoaXMsdCxlKTpyPDEwMjQ/ZnVuY3Rpb24odCxlLHIpe3IubmVnYXRpdmU9ZS5uZWdhdGl2ZV50Lm5lZ2F0aXZlLHIubGVuZ3RoPXQubGVuZ3RoK2UubGVuZ3RoO2Zvcih2YXIgbj0wLGk9MCxhPTA7YTxyLmxlbmd0aC0xO2ErKyl7dmFyIG89aTtpPTA7Zm9yKHZhciBzPTY3MTA4ODYzJm4sbD1NYXRoLm1pbihhLGUubGVuZ3RoLTEpLGM9TWF0aC5tYXgoMCxhLXQubGVuZ3RoKzEpO2M8PWw7YysrKXt2YXIgdT1hLWMsZj0oMHx0LndvcmRzW3VdKSooMHxlLndvcmRzW2NdKSxoPTY3MTA4ODYzJmY7cz02NzEwODg2MyYoaD1oK3N8MCksaSs9KG89KG89bysoZi82NzEwODg2NHwwKXwwKSsoaD4+PjI2KXwwKT4+PjI2LG8mPTY3MTA4ODYzfXIud29yZHNbYV09cyxuPW8sbz1pfXJldHVybiAwIT09bj9yLndvcmRzW2FdPW46ci5sZW5ndGgtLSxyLnN0cmlwKCl9KHRoaXMsdCxlKTptKHRoaXMsdCxlKX0sZy5wcm90b3R5cGUubWFrZVJCVD1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9YS5wcm90b3R5cGUuX2NvdW50Qml0cyh0KS0xLG49MDtuPHQ7bisrKWVbbl09dGhpcy5yZXZCaW4obixyLHQpO3JldHVybiBlfSxnLnByb3RvdHlwZS5yZXZCaW49ZnVuY3Rpb24odCxlLHIpe2lmKDA9PT10fHx0PT09ci0xKXJldHVybiB0O2Zvcih2YXIgbj0wLGk9MDtpPGU7aSsrKW58PSgxJnQpPDxlLWktMSx0Pj49MTtyZXR1cm4gbn0sZy5wcm90b3R5cGUucGVybXV0ZT1mdW5jdGlvbih0LGUscixuLGksYSl7Zm9yKHZhciBvPTA7bzxhO28rKyluW29dPWVbdFtvXV0saVtvXT1yW3Rbb11dfSxnLnByb3RvdHlwZS50cmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIsbixpLGEpe3RoaXMucGVybXV0ZShhLHQsZSxyLG4saSk7Zm9yKHZhciBvPTE7bzxpO288PD0xKWZvcih2YXIgcz1vPDwxLGw9TWF0aC5jb3MoMipNYXRoLlBJL3MpLGM9TWF0aC5zaW4oMipNYXRoLlBJL3MpLHU9MDt1PGk7dSs9cylmb3IodmFyIGY9bCxoPWMscD0wO3A8bztwKyspe3ZhciBkPXJbdStwXSxtPW5bdStwXSxnPXJbdStwK29dLHY9blt1K3Arb10seT1mKmctaCp2O3Y9Zip2K2gqZyxnPXksclt1K3BdPWQrZyxuW3UrcF09bSt2LHJbdStwK29dPWQtZyxuW3UrcCtvXT1tLXYscCE9PXMmJih5PWwqZi1jKmgsaD1sKmgrYypmLGY9eSl9fSxnLnByb3RvdHlwZS5ndWVzc0xlbjEzYj1mdW5jdGlvbih0LGUpe3ZhciByPTF8TWF0aC5tYXgoZSx0KSxuPTEmcixpPTA7Zm9yKHI9ci8yfDA7cjtyPj4+PTEpaSsrO3JldHVybiAxPDxpKzErbn0sZy5wcm90b3R5cGUuY29uanVnYXRlPWZ1bmN0aW9uKHQsZSxyKXtpZighKHI8PTEpKWZvcih2YXIgbj0wO248ci8yO24rKyl7dmFyIGk9dFtuXTt0W25dPXRbci1uLTFdLHRbci1uLTFdPWksaT1lW25dLGVbbl09LWVbci1uLTFdLGVbci1uLTFdPS1pfX0sZy5wcm90b3R5cGUubm9ybWFsaXplMTNiPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj0wO248ZS8yO24rKyl7dmFyIGk9ODE5MipNYXRoLnJvdW5kKHRbMipuKzFdL2UpK01hdGgucm91bmQodFsyKm5dL2UpK3I7dFtuXT02NzEwODg2MyZpLHI9aTw2NzEwODg2ND8wOmkvNjcxMDg4NjR8MH1yZXR1cm4gdH0sZy5wcm90b3R5cGUuY29udmVydDEzYj1mdW5jdGlvbih0LGUscixpKXtmb3IodmFyIGE9MCxvPTA7bzxlO28rKylhKz0wfHRbb10sclsyKm9dPTgxOTEmYSxhPj4+PTEzLHJbMipvKzFdPTgxOTEmYSxhPj4+PTEzO2ZvcihvPTIqZTtvPGk7KytvKXJbb109MDtuKDA9PT1hKSxuKDA9PSgtODE5MiZhKSl9LGcucHJvdG90eXBlLnN0dWI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7cjx0O3IrKyllW3JdPTA7cmV0dXJuIGV9LGcucHJvdG90eXBlLm11bHA9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTIqdGhpcy5ndWVzc0xlbjEzYih0Lmxlbmd0aCxlLmxlbmd0aCksaT10aGlzLm1ha2VSQlQobiksYT10aGlzLnN0dWIobiksbz1uZXcgQXJyYXkobikscz1uZXcgQXJyYXkobiksbD1uZXcgQXJyYXkobiksYz1uZXcgQXJyYXkobiksdT1uZXcgQXJyYXkobiksZj1uZXcgQXJyYXkobiksaD1yLndvcmRzO2gubGVuZ3RoPW4sdGhpcy5jb252ZXJ0MTNiKHQud29yZHMsdC5sZW5ndGgsbyxuKSx0aGlzLmNvbnZlcnQxM2IoZS53b3JkcyxlLmxlbmd0aCxjLG4pLHRoaXMudHJhbnNmb3JtKG8sYSxzLGwsbixpKSx0aGlzLnRyYW5zZm9ybShjLGEsdSxmLG4saSk7Zm9yKHZhciBwPTA7cDxuO3ArKyl7dmFyIGQ9c1twXSp1W3BdLWxbcF0qZltwXTtsW3BdPXNbcF0qZltwXStsW3BdKnVbcF0sc1twXT1kfXJldHVybiB0aGlzLmNvbmp1Z2F0ZShzLGwsbiksdGhpcy50cmFuc2Zvcm0ocyxsLGgsYSxuLGkpLHRoaXMuY29uanVnYXRlKGgsYSxuKSx0aGlzLm5vcm1hbGl6ZTEzYihoLG4pLHIubmVnYXRpdmU9dC5uZWdhdGl2ZV5lLm5lZ2F0aXZlLHIubGVuZ3RoPXQubGVuZ3RoK2UubGVuZ3RoLHIuc3RyaXAoKX0sYS5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBhKG51bGwpO3JldHVybiBlLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt0Lmxlbmd0aCksdGhpcy5tdWxUbyh0LGUpfSxhLnByb3RvdHlwZS5tdWxmPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBhKG51bGwpO3JldHVybiBlLndvcmRzPW5ldyBBcnJheSh0aGlzLmxlbmd0aCt0Lmxlbmd0aCksbSh0aGlzLHQsZSl9LGEucHJvdG90eXBlLmltdWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5tdWxUbyh0LHRoaXMpfSxhLnByb3RvdHlwZS5pbXVsbj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCksbih0PDY3MTA4ODY0KTtmb3IodmFyIGU9MCxyPTA7cjx0aGlzLmxlbmd0aDtyKyspe3ZhciBpPSgwfHRoaXMud29yZHNbcl0pKnQsYT0oNjcxMDg4NjMmaSkrKDY3MTA4ODYzJmUpO2U+Pj0yNixlKz1pLzY3MTA4ODY0fDAsZSs9YT4+PjI2LHRoaXMud29yZHNbcl09NjcxMDg4NjMmYX1yZXR1cm4gMCE9PWUmJih0aGlzLndvcmRzW3JdPWUsdGhpcy5sZW5ndGgrKyksdGhpc30sYS5wcm90b3R5cGUubXVsbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmltdWxuKHQpfSxhLnByb3RvdHlwZS5zcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tdWwodGhpcyl9LGEucHJvdG90eXBlLmlzcXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pbXVsKHRoaXMuY2xvbmUoKSl9LGEucHJvdG90eXBlLnBvdz1mdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQuYml0TGVuZ3RoKCkpLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ci8yNnwwLGk9ciUyNjtlW3JdPSh0LndvcmRzW25dJjE8PGkpPj4+aX1yZXR1cm4gZX0odCk7aWYoMD09PWUubGVuZ3RoKXJldHVybiBuZXcgYSgxKTtmb3IodmFyIHI9dGhpcyxuPTA7bjxlLmxlbmd0aCYmMD09PWVbbl07bisrLHI9ci5zcXIoKSk7aWYoKytuPGUubGVuZ3RoKWZvcih2YXIgaT1yLnNxcigpO248ZS5sZW5ndGg7bisrLGk9aS5zcXIoKSkwIT09ZVtuXSYmKHI9ci5tdWwoaSkpO3JldHVybiByfSxhLnByb3RvdHlwZS5pdXNobG49ZnVuY3Rpb24odCl7bigibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTApO3ZhciBlLHI9dCUyNixpPSh0LXIpLzI2LGE9NjcxMDg4NjM+Pj4yNi1yPDwyNi1yO2lmKDAhPT1yKXt2YXIgbz0wO2ZvcihlPTA7ZTx0aGlzLmxlbmd0aDtlKyspe3ZhciBzPXRoaXMud29yZHNbZV0mYSxsPSgwfHRoaXMud29yZHNbZV0pLXM8PHI7dGhpcy53b3Jkc1tlXT1sfG8sbz1zPj4+MjYtcn1vJiYodGhpcy53b3Jkc1tlXT1vLHRoaXMubGVuZ3RoKyspfWlmKDAhPT1pKXtmb3IoZT10aGlzLmxlbmd0aC0xO2U+PTA7ZS0tKXRoaXMud29yZHNbZStpXT10aGlzLndvcmRzW2VdO2ZvcihlPTA7ZTxpO2UrKyl0aGlzLndvcmRzW2VdPTA7dGhpcy5sZW5ndGgrPWl9cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuaXNobG49ZnVuY3Rpb24odCl7cmV0dXJuIG4oMD09PXRoaXMubmVnYXRpdmUpLHRoaXMuaXVzaGxuKHQpfSxhLnByb3RvdHlwZS5pdXNocm49ZnVuY3Rpb24odCxlLHIpe3ZhciBpO24oIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKSxpPWU/KGUtZSUyNikvMjY6MDt2YXIgYT10JTI2LG89TWF0aC5taW4oKHQtYSkvMjYsdGhpcy5sZW5ndGgpLHM9NjcxMDg4NjNeNjcxMDg4NjM+Pj5hPDxhLGw9cjtpZihpLT1vLGk9TWF0aC5tYXgoMCxpKSxsKXtmb3IodmFyIGM9MDtjPG87YysrKWwud29yZHNbY109dGhpcy53b3Jkc1tjXTtsLmxlbmd0aD1vfWlmKDA9PT1vKTtlbHNlIGlmKHRoaXMubGVuZ3RoPm8pZm9yKHRoaXMubGVuZ3RoLT1vLGM9MDtjPHRoaXMubGVuZ3RoO2MrKyl0aGlzLndvcmRzW2NdPXRoaXMud29yZHNbYytvXTtlbHNlIHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xO3ZhciB1PTA7Zm9yKGM9dGhpcy5sZW5ndGgtMTtjPj0wJiYoMCE9PXV8fGM+PWkpO2MtLSl7dmFyIGY9MHx0aGlzLndvcmRzW2NdO3RoaXMud29yZHNbY109dTw8MjYtYXxmPj4+YSx1PWYmc31yZXR1cm4gbCYmMCE9PXUmJihsLndvcmRzW2wubGVuZ3RoKytdPXUpLDA9PT10aGlzLmxlbmd0aCYmKHRoaXMud29yZHNbMF09MCx0aGlzLmxlbmd0aD0xKSx0aGlzLnN0cmlwKCl9LGEucHJvdG90eXBlLmlzaHJuPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbigwPT09dGhpcy5uZWdhdGl2ZSksdGhpcy5pdXNocm4odCxlLHIpfSxhLnByb3RvdHlwZS5zaGxuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXNobG4odCl9LGEucHJvdG90eXBlLnVzaGxuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaGxuKHQpfSxhLnByb3RvdHlwZS5zaHJuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXNocm4odCl9LGEucHJvdG90eXBlLnVzaHJuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXVzaHJuKHQpfSxhLnByb3RvdHlwZS50ZXN0bj1mdW5jdGlvbih0KXtuKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MCk7dmFyIGU9dCUyNixyPSh0LWUpLzI2LGk9MTw8ZTtyZXR1cm4hKHRoaXMubGVuZ3RoPD1yKSYmISEodGhpcy53b3Jkc1tyXSZpKX0sYS5wcm90b3R5cGUuaW1hc2tuPWZ1bmN0aW9uKHQpe24oIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wKTt2YXIgZT10JTI2LHI9KHQtZSkvMjY7aWYobigwPT09dGhpcy5uZWdhdGl2ZSwiaW1hc2tuIHdvcmtzIG9ubHkgd2l0aCBwb3NpdGl2ZSBudW1iZXJzIiksdGhpcy5sZW5ndGg8PXIpcmV0dXJuIHRoaXM7aWYoMCE9PWUmJnIrKyx0aGlzLmxlbmd0aD1NYXRoLm1pbihyLHRoaXMubGVuZ3RoKSwwIT09ZSl7dmFyIGk9NjcxMDg4NjNeNjcxMDg4NjM+Pj5lPDxlO3RoaXMud29yZHNbdGhpcy5sZW5ndGgtMV0mPWl9cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUubWFza249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5pbWFza24odCl9LGEucHJvdG90eXBlLmlhZGRuPWZ1bmN0aW9uKHQpe3JldHVybiBuKCJudW1iZXIiPT10eXBlb2YgdCksbih0PDY3MTA4ODY0KSx0PDA/dGhpcy5pc3VibigtdCk6MCE9PXRoaXMubmVnYXRpdmU/MT09PXRoaXMubGVuZ3RoJiYoMHx0aGlzLndvcmRzWzBdKTx0Pyh0aGlzLndvcmRzWzBdPXQtKDB8dGhpcy53b3Jkc1swXSksdGhpcy5uZWdhdGl2ZT0wLHRoaXMpOih0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pc3Vibih0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcyk6dGhpcy5faWFkZG4odCl9LGEucHJvdG90eXBlLl9pYWRkbj1mdW5jdGlvbih0KXt0aGlzLndvcmRzWzBdKz10O2Zvcih2YXIgZT0wO2U8dGhpcy5sZW5ndGgmJnRoaXMud29yZHNbZV0+PTY3MTA4ODY0O2UrKyl0aGlzLndvcmRzW2VdLT02NzEwODg2NCxlPT09dGhpcy5sZW5ndGgtMT90aGlzLndvcmRzW2UrMV09MTp0aGlzLndvcmRzW2UrMV0rKztyZXR1cm4gdGhpcy5sZW5ndGg9TWF0aC5tYXgodGhpcy5sZW5ndGgsZSsxKSx0aGlzfSxhLnByb3RvdHlwZS5pc3Vibj1mdW5jdGlvbih0KXtpZihuKCJudW1iZXIiPT10eXBlb2YgdCksbih0PDY3MTA4ODY0KSx0PDApcmV0dXJuIHRoaXMuaWFkZG4oLXQpO2lmKDAhPT10aGlzLm5lZ2F0aXZlKXJldHVybiB0aGlzLm5lZ2F0aXZlPTAsdGhpcy5pYWRkbih0KSx0aGlzLm5lZ2F0aXZlPTEsdGhpcztpZih0aGlzLndvcmRzWzBdLT10LDE9PT10aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1swXTwwKXRoaXMud29yZHNbMF09LXRoaXMud29yZHNbMF0sdGhpcy5uZWdhdGl2ZT0xO2Vsc2UgZm9yKHZhciBlPTA7ZTx0aGlzLmxlbmd0aCYmdGhpcy53b3Jkc1tlXTwwO2UrKyl0aGlzLndvcmRzW2VdKz02NzEwODg2NCx0aGlzLndvcmRzW2UrMV0tPTE7cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuYWRkbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlhZGRuKHQpfSxhLnByb3RvdHlwZS5zdWJuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuaXN1Ym4odCl9LGEucHJvdG90eXBlLmlhYnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0wLHRoaXN9LGEucHJvdG90eXBlLmFicz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuaWFicygpfSxhLnByb3RvdHlwZS5faXNobG5zdWJtdWw9ZnVuY3Rpb24odCxlLHIpe3ZhciBpLGEsbz10Lmxlbmd0aCtyO3RoaXMuX2V4cGFuZChvKTt2YXIgcz0wO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe2E9KDB8dGhpcy53b3Jkc1tpK3JdKStzO3ZhciBsPSgwfHQud29yZHNbaV0pKmU7cz0oKGEtPTY3MTA4ODYzJmwpPj4yNiktKGwvNjcxMDg4NjR8MCksdGhpcy53b3Jkc1tpK3JdPTY3MTA4ODYzJmF9Zm9yKDtpPHRoaXMubGVuZ3RoLXI7aSsrKXM9KGE9KDB8dGhpcy53b3Jkc1tpK3JdKStzKT4+MjYsdGhpcy53b3Jkc1tpK3JdPTY3MTA4ODYzJmE7aWYoMD09PXMpcmV0dXJuIHRoaXMuc3RyaXAoKTtmb3IobigtMT09PXMpLHM9MCxpPTA7aTx0aGlzLmxlbmd0aDtpKyspcz0oYT0tKDB8dGhpcy53b3Jkc1tpXSkrcyk+PjI2LHRoaXMud29yZHNbaV09NjcxMDg4NjMmYTtyZXR1cm4gdGhpcy5uZWdhdGl2ZT0xLHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuX3dvcmREaXY9ZnVuY3Rpb24odCxlKXt2YXIgcj0odGhpcy5sZW5ndGgsdC5sZW5ndGgpLG49dGhpcy5jbG9uZSgpLGk9dCxvPTB8aS53b3Jkc1tpLmxlbmd0aC0xXTswIT09KHI9MjYtdGhpcy5fY291bnRCaXRzKG8pKSYmKGk9aS51c2hsbihyKSxuLml1c2hsbihyKSxvPTB8aS53b3Jkc1tpLmxlbmd0aC0xXSk7dmFyIHMsbD1uLmxlbmd0aC1pLmxlbmd0aDtpZigibW9kIiE9PWUpeyhzPW5ldyBhKG51bGwpKS5sZW5ndGg9bCsxLHMud29yZHM9bmV3IEFycmF5KHMubGVuZ3RoKTtmb3IodmFyIGM9MDtjPHMubGVuZ3RoO2MrKylzLndvcmRzW2NdPTB9dmFyIHU9bi5jbG9uZSgpLl9pc2hsbnN1Ym11bChpLDEsbCk7MD09PXUubmVnYXRpdmUmJihuPXUscyYmKHMud29yZHNbbF09MSkpO2Zvcih2YXIgZj1sLTE7Zj49MDtmLS0pe3ZhciBoPTY3MTA4ODY0KigwfG4ud29yZHNbaS5sZW5ndGgrZl0pKygwfG4ud29yZHNbaS5sZW5ndGgrZi0xXSk7Zm9yKGg9TWF0aC5taW4oaC9vfDAsNjcxMDg4NjMpLG4uX2lzaGxuc3VibXVsKGksaCxmKTswIT09bi5uZWdhdGl2ZTspaC0tLG4ubmVnYXRpdmU9MCxuLl9pc2hsbnN1Ym11bChpLDEsZiksbi5pc1plcm8oKXx8KG4ubmVnYXRpdmVePTEpO3MmJihzLndvcmRzW2ZdPWgpfXJldHVybiBzJiZzLnN0cmlwKCksbi5zdHJpcCgpLCJkaXYiIT09ZSYmMCE9PXImJm4uaXVzaHJuKHIpLHtkaXY6c3x8bnVsbCxtb2Q6bn19LGEucHJvdG90eXBlLmRpdm1vZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4oIXQuaXNaZXJvKCkpLHRoaXMuaXNaZXJvKCk/e2RpdjpuZXcgYSgwKSxtb2Q6bmV3IGEoMCl9OjAhPT10aGlzLm5lZ2F0aXZlJiYwPT09dC5uZWdhdGl2ZT8ocz10aGlzLm5lZygpLmRpdm1vZCh0LGUpLCJtb2QiIT09ZSYmKGk9cy5kaXYubmVnKCkpLCJkaXYiIT09ZSYmKG89cy5tb2QubmVnKCksciYmMCE9PW8ubmVnYXRpdmUmJm8uaWFkZCh0KSkse2RpdjppLG1vZDpvfSk6MD09PXRoaXMubmVnYXRpdmUmJjAhPT10Lm5lZ2F0aXZlPyhzPXRoaXMuZGl2bW9kKHQubmVnKCksZSksIm1vZCIhPT1lJiYoaT1zLmRpdi5uZWcoKSkse2RpdjppLG1vZDpzLm1vZH0pOjAhPSh0aGlzLm5lZ2F0aXZlJnQubmVnYXRpdmUpPyhzPXRoaXMubmVnKCkuZGl2bW9kKHQubmVnKCksZSksImRpdiIhPT1lJiYobz1zLm1vZC5uZWcoKSxyJiYwIT09by5uZWdhdGl2ZSYmby5pc3ViKHQpKSx7ZGl2OnMuZGl2LG1vZDpvfSk6dC5sZW5ndGg+dGhpcy5sZW5ndGh8fHRoaXMuY21wKHQpPDA/e2RpdjpuZXcgYSgwKSxtb2Q6dGhpc306MT09PXQubGVuZ3RoPyJkaXYiPT09ZT97ZGl2OnRoaXMuZGl2bih0LndvcmRzWzBdKSxtb2Q6bnVsbH06Im1vZCI9PT1lP3tkaXY6bnVsbCxtb2Q6bmV3IGEodGhpcy5tb2RuKHQud29yZHNbMF0pKX06e2Rpdjp0aGlzLmRpdm4odC53b3Jkc1swXSksbW9kOm5ldyBhKHRoaXMubW9kbih0LndvcmRzWzBdKSl9OnRoaXMuX3dvcmREaXYodCxlKTt2YXIgaSxvLHN9LGEucHJvdG90eXBlLmRpdj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXZtb2QodCwiZGl2IiwhMSkuZGl2fSxhLnByb3RvdHlwZS5tb2Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGl2bW9kKHQsIm1vZCIsITEpLm1vZH0sYS5wcm90b3R5cGUudW1vZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5kaXZtb2QodCwibW9kIiwhMCkubW9kfSxhLnByb3RvdHlwZS5kaXZSb3VuZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmRpdm1vZCh0KTtpZihlLm1vZC5pc1plcm8oKSlyZXR1cm4gZS5kaXY7dmFyIHI9MCE9PWUuZGl2Lm5lZ2F0aXZlP2UubW9kLmlzdWIodCk6ZS5tb2Qsbj10LnVzaHJuKDEpLGk9dC5hbmRsbigxKSxhPXIuY21wKG4pO3JldHVybiBhPDB8fDE9PT1pJiYwPT09YT9lLmRpdjowIT09ZS5kaXYubmVnYXRpdmU/ZS5kaXYuaXN1Ym4oMSk6ZS5kaXYuaWFkZG4oMSl9LGEucHJvdG90eXBlLm1vZG49ZnVuY3Rpb24odCl7bih0PD02NzEwODg2Myk7Zm9yKHZhciBlPSgxPDwyNikldCxyPTAsaT10aGlzLmxlbmd0aC0xO2k+PTA7aS0tKXI9KGUqcisoMHx0aGlzLndvcmRzW2ldKSkldDtyZXR1cm4gcn0sYS5wcm90b3R5cGUuaWRpdm49ZnVuY3Rpb24odCl7bih0PD02NzEwODg2Myk7Zm9yKHZhciBlPTAscj10aGlzLmxlbmd0aC0xO3I+PTA7ci0tKXt2YXIgaT0oMHx0aGlzLndvcmRzW3JdKSs2NzEwODg2NCplO3RoaXMud29yZHNbcl09aS90fDAsZT1pJXR9cmV0dXJuIHRoaXMuc3RyaXAoKX0sYS5wcm90b3R5cGUuZGl2bj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLmlkaXZuKHQpfSxhLnByb3RvdHlwZS5lZ2NkPWZ1bmN0aW9uKHQpe24oMD09PXQubmVnYXRpdmUpLG4oIXQuaXNaZXJvKCkpO3ZhciBlPXRoaXMscj10LmNsb25lKCk7ZT0wIT09ZS5uZWdhdGl2ZT9lLnVtb2QodCk6ZS5jbG9uZSgpO2Zvcih2YXIgaT1uZXcgYSgxKSxvPW5ldyBhKDApLHM9bmV3IGEoMCksbD1uZXcgYSgxKSxjPTA7ZS5pc0V2ZW4oKSYmci5pc0V2ZW4oKTspZS5pdXNocm4oMSksci5pdXNocm4oMSksKytjO2Zvcih2YXIgdT1yLmNsb25lKCksZj1lLmNsb25lKCk7IWUuaXNaZXJvKCk7KXtmb3IodmFyIGg9MCxwPTE7MD09KGUud29yZHNbMF0mcCkmJmg8MjY7KytoLHA8PD0xKTtpZihoPjApZm9yKGUuaXVzaHJuKGgpO2gtLSA+MDspKGkuaXNPZGQoKXx8by5pc09kZCgpKSYmKGkuaWFkZCh1KSxvLmlzdWIoZikpLGkuaXVzaHJuKDEpLG8uaXVzaHJuKDEpO2Zvcih2YXIgZD0wLG09MTswPT0oci53b3Jkc1swXSZtKSYmZDwyNjsrK2QsbTw8PTEpO2lmKGQ+MClmb3Ioci5pdXNocm4oZCk7ZC0tID4wOykocy5pc09kZCgpfHxsLmlzT2RkKCkpJiYocy5pYWRkKHUpLGwuaXN1YihmKSkscy5pdXNocm4oMSksbC5pdXNocm4oMSk7ZS5jbXAocik+PTA/KGUuaXN1YihyKSxpLmlzdWIocyksby5pc3ViKGwpKTooci5pc3ViKGUpLHMuaXN1YihpKSxsLmlzdWIobykpfXJldHVybnthOnMsYjpsLGdjZDpyLml1c2hsbihjKX19LGEucHJvdG90eXBlLl9pbnZtcD1mdW5jdGlvbih0KXtuKDA9PT10Lm5lZ2F0aXZlKSxuKCF0LmlzWmVybygpKTt2YXIgZT10aGlzLHI9dC5jbG9uZSgpO2U9MCE9PWUubmVnYXRpdmU/ZS51bW9kKHQpOmUuY2xvbmUoKTtmb3IodmFyIGksbz1uZXcgYSgxKSxzPW5ldyBhKDApLGw9ci5jbG9uZSgpO2UuY21wbigxKT4wJiZyLmNtcG4oMSk+MDspe2Zvcih2YXIgYz0wLHU9MTswPT0oZS53b3Jkc1swXSZ1KSYmYzwyNjsrK2MsdTw8PTEpO2lmKGM+MClmb3IoZS5pdXNocm4oYyk7Yy0tID4wOylvLmlzT2RkKCkmJm8uaWFkZChsKSxvLml1c2hybigxKTtmb3IodmFyIGY9MCxoPTE7MD09KHIud29yZHNbMF0maCkmJmY8MjY7KytmLGg8PD0xKTtpZihmPjApZm9yKHIuaXVzaHJuKGYpO2YtLSA+MDspcy5pc09kZCgpJiZzLmlhZGQobCkscy5pdXNocm4oMSk7ZS5jbXAocik+PTA/KGUuaXN1YihyKSxvLmlzdWIocykpOihyLmlzdWIoZSkscy5pc3ViKG8pKX1yZXR1cm4oaT0wPT09ZS5jbXBuKDEpP286cykuY21wbigwKTwwJiZpLmlhZGQodCksaX0sYS5wcm90b3R5cGUuZ2NkPWZ1bmN0aW9uKHQpe2lmKHRoaXMuaXNaZXJvKCkpcmV0dXJuIHQuYWJzKCk7aWYodC5pc1plcm8oKSlyZXR1cm4gdGhpcy5hYnMoKTt2YXIgZT10aGlzLmNsb25lKCkscj10LmNsb25lKCk7ZS5uZWdhdGl2ZT0wLHIubmVnYXRpdmU9MDtmb3IodmFyIG49MDtlLmlzRXZlbigpJiZyLmlzRXZlbigpO24rKyllLml1c2hybigxKSxyLml1c2hybigxKTtmb3IoOzspe2Zvcig7ZS5pc0V2ZW4oKTspZS5pdXNocm4oMSk7Zm9yKDtyLmlzRXZlbigpOylyLml1c2hybigxKTt2YXIgaT1lLmNtcChyKTtpZihpPDApe3ZhciBhPWU7ZT1yLHI9YX1lbHNlIGlmKDA9PT1pfHwwPT09ci5jbXBuKDEpKWJyZWFrO2UuaXN1YihyKX1yZXR1cm4gci5pdXNobG4obil9LGEucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZWdjZCh0KS5hLnVtb2QodCl9LGEucHJvdG90eXBlLmlzRXZlbj1mdW5jdGlvbigpe3JldHVybiAwPT0oMSZ0aGlzLndvcmRzWzBdKX0sYS5wcm90b3R5cGUuaXNPZGQ9ZnVuY3Rpb24oKXtyZXR1cm4gMT09KDEmdGhpcy53b3Jkc1swXSl9LGEucHJvdG90eXBlLmFuZGxuPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLndvcmRzWzBdJnR9LGEucHJvdG90eXBlLmJpbmNuPWZ1bmN0aW9uKHQpe24oIm51bWJlciI9PXR5cGVvZiB0KTt2YXIgZT10JTI2LHI9KHQtZSkvMjYsaT0xPDxlO2lmKHRoaXMubGVuZ3RoPD1yKXJldHVybiB0aGlzLl9leHBhbmQocisxKSx0aGlzLndvcmRzW3JdfD1pLHRoaXM7Zm9yKHZhciBhPWksbz1yOzAhPT1hJiZvPHRoaXMubGVuZ3RoO28rKyl7dmFyIHM9MHx0aGlzLndvcmRzW29dO2E9KHMrPWEpPj4+MjYscyY9NjcxMDg4NjMsdGhpcy53b3Jkc1tvXT1zfXJldHVybiAwIT09YSYmKHRoaXMud29yZHNbb109YSx0aGlzLmxlbmd0aCsrKSx0aGlzfSxhLnByb3RvdHlwZS5pc1plcm89ZnVuY3Rpb24oKXtyZXR1cm4gMT09PXRoaXMubGVuZ3RoJiYwPT09dGhpcy53b3Jkc1swXX0sYS5wcm90b3R5cGUuY21wbj1mdW5jdGlvbih0KXt2YXIgZSxyPXQ8MDtpZigwIT09dGhpcy5uZWdhdGl2ZSYmIXIpcmV0dXJuLTE7aWYoMD09PXRoaXMubmVnYXRpdmUmJnIpcmV0dXJuIDE7aWYodGhpcy5zdHJpcCgpLHRoaXMubGVuZ3RoPjEpZT0xO2Vsc2V7ciYmKHQ9LXQpLG4odDw9NjcxMDg4NjMsIk51bWJlciBpcyB0b28gYmlnIik7dmFyIGk9MHx0aGlzLndvcmRzWzBdO2U9aT09PXQ/MDppPHQ/LTE6MX1yZXR1cm4gMCE9PXRoaXMubmVnYXRpdmU/MHwtZTplfSxhLnByb3RvdHlwZS5jbXA9ZnVuY3Rpb24odCl7aWYoMCE9PXRoaXMubmVnYXRpdmUmJjA9PT10Lm5lZ2F0aXZlKXJldHVybi0xO2lmKDA9PT10aGlzLm5lZ2F0aXZlJiYwIT09dC5uZWdhdGl2ZSlyZXR1cm4gMTt2YXIgZT10aGlzLnVjbXAodCk7cmV0dXJuIDAhPT10aGlzLm5lZ2F0aXZlPzB8LWU6ZX0sYS5wcm90b3R5cGUudWNtcD1mdW5jdGlvbih0KXtpZih0aGlzLmxlbmd0aD50Lmxlbmd0aClyZXR1cm4gMTtpZih0aGlzLmxlbmd0aDx0Lmxlbmd0aClyZXR1cm4tMTtmb3IodmFyIGU9MCxyPXRoaXMubGVuZ3RoLTE7cj49MDtyLS0pe3ZhciBuPTB8dGhpcy53b3Jkc1tyXSxpPTB8dC53b3Jkc1tyXTtpZihuIT09aSl7bjxpP2U9LTE6bj5pJiYoZT0xKTticmVha319cmV0dXJuIGV9LGEucHJvdG90eXBlLmd0bj1mdW5jdGlvbih0KXtyZXR1cm4gMT09PXRoaXMuY21wbih0KX0sYS5wcm90b3R5cGUuZ3Q9ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10aGlzLmNtcCh0KX0sYS5wcm90b3R5cGUuZ3Rlbj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbXBuKHQpPj0wfSxhLnByb3RvdHlwZS5ndGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wKHQpPj0wfSxhLnByb3RvdHlwZS5sdG49ZnVuY3Rpb24odCl7cmV0dXJuLTE9PT10aGlzLmNtcG4odCl9LGEucHJvdG90eXBlLmx0PWZ1bmN0aW9uKHQpe3JldHVybi0xPT09dGhpcy5jbXAodCl9LGEucHJvdG90eXBlLmx0ZW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY21wbih0KTw9MH0sYS5wcm90b3R5cGUubHRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNtcCh0KTw9MH0sYS5wcm90b3R5cGUuZXFuPWZ1bmN0aW9uKHQpe3JldHVybiAwPT09dGhpcy5jbXBuKHQpfSxhLnByb3RvdHlwZS5lcT1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuY21wKHQpfSxhLnJlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFQodCl9LGEucHJvdG90eXBlLnRvUmVkPWZ1bmN0aW9uKHQpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLG4oMD09PXRoaXMubmVnYXRpdmUsInJlZCB3b3JrcyBvbmx5IHdpdGggcG9zaXRpdmVzIiksdC5jb252ZXJ0VG8odGhpcykuX2ZvcmNlUmVkKHQpfSxhLnByb3RvdHlwZS5mcm9tUmVkPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsImZyb21SZWQgd29ya3Mgb25seSB3aXRoIG51bWJlcnMgaW4gcmVkdWN0aW9uIGNvbnRleHQiKSx0aGlzLnJlZC5jb252ZXJ0RnJvbSh0aGlzKX0sYS5wcm90b3R5cGUuX2ZvcmNlUmVkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlZD10LHRoaXN9LGEucHJvdG90eXBlLmZvcmNlUmVkPWZ1bmN0aW9uKHQpe3JldHVybiBuKCF0aGlzLnJlZCwiQWxyZWFkeSBhIG51bWJlciBpbiByZWR1Y3Rpb24gY29udGV4dCIpLHRoaXMuX2ZvcmNlUmVkKHQpfSxhLnByb3RvdHlwZS5yZWRBZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZEFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5hZGQodGhpcyx0KX0sYS5wcm90b3R5cGUucmVkSUFkZD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSUFkZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5pYWRkKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZFN1Yj1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLnN1Yih0aGlzLHQpfSxhLnByb3RvdHlwZS5yZWRJU3ViPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJU3ViIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLmlzdWIodGhpcyx0KX0sYS5wcm90b3R5cGUucmVkU2hsPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRoaXMucmVkLCJyZWRTaGwgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuc2hsKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZE11bD1mdW5jdGlvbih0KXtyZXR1cm4gbih0aGlzLnJlZCwicmVkTXVsIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkyKHRoaXMsdCksdGhpcy5yZWQubXVsKHRoaXMsdCl9LGEucHJvdG90eXBlLnJlZElNdWw9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZE11bCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5Mih0aGlzLHQpLHRoaXMucmVkLmltdWwodGhpcyx0KX0sYS5wcm90b3R5cGUucmVkU3FyPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5zcXIodGhpcyl9LGEucHJvdG90eXBlLnJlZElTcXI9ZnVuY3Rpb24oKXtyZXR1cm4gbih0aGlzLnJlZCwicmVkSVNxciB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5pc3FyKHRoaXMpfSxhLnByb3RvdHlwZS5yZWRTcXJ0PWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcy5yZWQsInJlZFNxcnQgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQuc3FydCh0aGlzKX0sYS5wcm90b3R5cGUucmVkSW52bT1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWRJbnZtIHdvcmtzIG9ubHkgd2l0aCByZWQgbnVtYmVycyIpLHRoaXMucmVkLl92ZXJpZnkxKHRoaXMpLHRoaXMucmVkLmludm0odGhpcyl9LGEucHJvdG90eXBlLnJlZE5lZz1mdW5jdGlvbigpe3JldHVybiBuKHRoaXMucmVkLCJyZWROZWcgd29ya3Mgb25seSB3aXRoIHJlZCBudW1iZXJzIiksdGhpcy5yZWQuX3ZlcmlmeTEodGhpcyksdGhpcy5yZWQubmVnKHRoaXMpfSxhLnByb3RvdHlwZS5yZWRQb3c9ZnVuY3Rpb24odCl7cmV0dXJuIG4odGhpcy5yZWQmJiF0LnJlZCwicmVkUG93KG5vcm1hbE51bSkiKSx0aGlzLnJlZC5fdmVyaWZ5MSh0aGlzKSx0aGlzLnJlZC5wb3codGhpcyx0KX07dmFyIHY9e2syNTY6bnVsbCxwMjI0Om51bGwscDE5MjpudWxsLHAyNTUxOTpudWxsfTtmdW5jdGlvbiB5KHQsZSl7dGhpcy5uYW1lPXQsdGhpcy5wPW5ldyBhKGUsMTYpLHRoaXMubj10aGlzLnAuYml0TGVuZ3RoKCksdGhpcy5rPW5ldyBhKDEpLml1c2hsbih0aGlzLm4pLmlzdWIodGhpcy5wKSx0aGlzLnRtcD10aGlzLl90bXAoKX1mdW5jdGlvbiB4KCl7eS5jYWxsKHRoaXMsImsyNTYiLCJmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZiBmZmZmZmZmZSBmZmZmZmMyZiIpfWZ1bmN0aW9uIGIoKXt5LmNhbGwodGhpcywicDIyNCIsImZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIGZmZmZmZmZmIDAwMDAwMDAwIDAwMDAwMDAwIDAwMDAwMDAxIil9ZnVuY3Rpb24gXygpe3kuY2FsbCh0aGlzLCJwMTkyIiwiZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmYgZmZmZmZmZmUgZmZmZmZmZmYgZmZmZmZmZmYiKX1mdW5jdGlvbiB3KCl7eS5jYWxsKHRoaXMsIjI1NTE5IiwiN2ZmZmZmZmZmZmZmZmZmZiBmZmZmZmZmZmZmZmZmZmZmIGZmZmZmZmZmZmZmZmZmZmYgZmZmZmZmZmZmZmZmZmZlZCIpfWZ1bmN0aW9uIFQodCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgZT1hLl9wcmltZSh0KTt0aGlzLm09ZS5wLHRoaXMucHJpbWU9ZX1lbHNlIG4odC5ndG4oMSksIm1vZHVsdXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gMSIpLHRoaXMubT10LHRoaXMucHJpbWU9bnVsbH1mdW5jdGlvbiBrKHQpe1QuY2FsbCh0aGlzLHQpLHRoaXMuc2hpZnQ9dGhpcy5tLmJpdExlbmd0aCgpLHRoaXMuc2hpZnQlMjYhPTAmJih0aGlzLnNoaWZ0Kz0yNi10aGlzLnNoaWZ0JTI2KSx0aGlzLnI9bmV3IGEoMSkuaXVzaGxuKHRoaXMuc2hpZnQpLHRoaXMucjI9dGhpcy5pbW9kKHRoaXMuci5zcXIoKSksdGhpcy5yaW52PXRoaXMuci5faW52bXAodGhpcy5tKSx0aGlzLm1pbnY9dGhpcy5yaW52Lm11bCh0aGlzLnIpLmlzdWJuKDEpLmRpdih0aGlzLm0pLHRoaXMubWludj10aGlzLm1pbnYudW1vZCh0aGlzLnIpLHRoaXMubWludj10aGlzLnIuc3ViKHRoaXMubWludil9eS5wcm90b3R5cGUuX3RtcD1mdW5jdGlvbigpe3ZhciB0PW5ldyBhKG51bGwpO3JldHVybiB0LndvcmRzPW5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5uLzEzKSksdH0seS5wcm90b3R5cGUuaXJlZHVjZT1mdW5jdGlvbih0KXt2YXIgZSxyPXQ7ZG97dGhpcy5zcGxpdChyLHRoaXMudG1wKSxlPShyPShyPXRoaXMuaW11bEsocikpLmlhZGQodGhpcy50bXApKS5iaXRMZW5ndGgoKX13aGlsZShlPnRoaXMubik7dmFyIG49ZTx0aGlzLm4/LTE6ci51Y21wKHRoaXMucCk7cmV0dXJuIDA9PT1uPyhyLndvcmRzWzBdPTAsci5sZW5ndGg9MSk6bj4wP3IuaXN1Yih0aGlzLnApOnZvaWQgMCE9PXIuc3RyaXA/ci5zdHJpcCgpOnIuX3N0cmlwKCkscn0seS5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXt0Lml1c2hybih0aGlzLm4sMCxlKX0seS5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7cmV0dXJuIHQuaW11bCh0aGlzLmspfSxpKHgseSkseC5wcm90b3R5cGUuc3BsaXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9TWF0aC5taW4odC5sZW5ndGgsOSksbj0wO248cjtuKyspZS53b3Jkc1tuXT10LndvcmRzW25dO2lmKGUubGVuZ3RoPXIsdC5sZW5ndGg8PTkpcmV0dXJuIHQud29yZHNbMF09MCx2b2lkKHQubGVuZ3RoPTEpO3ZhciBpPXQud29yZHNbOV07Zm9yKGUud29yZHNbZS5sZW5ndGgrK109NDE5NDMwMyZpLG49MTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBhPTB8dC53b3Jkc1tuXTt0LndvcmRzW24tMTBdPSg0MTk0MzAzJmEpPDw0fGk+Pj4yMixpPWF9aT4+Pj0yMix0LndvcmRzW24tMTBdPWksMD09PWkmJnQubGVuZ3RoPjEwP3QubGVuZ3RoLT0xMDp0Lmxlbmd0aC09OX0seC5wcm90b3R5cGUuaW11bEs9ZnVuY3Rpb24odCl7dC53b3Jkc1t0Lmxlbmd0aF09MCx0LndvcmRzW3QubGVuZ3RoKzFdPTAsdC5sZW5ndGgrPTI7Zm9yKHZhciBlPTAscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj0wfHQud29yZHNbcl07ZSs9OTc3Km4sdC53b3Jkc1tyXT02NzEwODg2MyZlLGU9NjQqbisoZS82NzEwODg2NHwwKX1yZXR1cm4gMD09PXQud29yZHNbdC5sZW5ndGgtMV0mJih0Lmxlbmd0aC0tLDA9PT10LndvcmRzW3QubGVuZ3RoLTFdJiZ0Lmxlbmd0aC0tKSx0fSxpKGIseSksaShfLHkpLGkodyx5KSx3LnByb3RvdHlwZS5pbXVsSz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPTE5KigwfHQud29yZHNbcl0pK2UsaT02NzEwODg2MyZuO24+Pj49MjYsdC53b3Jkc1tyXT1pLGU9bn1yZXR1cm4gMCE9PWUmJih0LndvcmRzW3QubGVuZ3RoKytdPWUpLHR9LGEuX3ByaW1lPWZ1bmN0aW9uKHQpe2lmKHZbdF0pcmV0dXJuIHZbdF07dmFyIGU7aWYoImsyNTYiPT09dCllPW5ldyB4O2Vsc2UgaWYoInAyMjQiPT09dCllPW5ldyBiO2Vsc2UgaWYoInAxOTIiPT09dCllPW5ldyBfO2Vsc2V7aWYoInAyNTUxOSIhPT10KXRocm93IG5ldyBFcnJvcigiVW5rbm93biBwcmltZSAiK3QpO2U9bmV3IHd9cmV0dXJuIHZbdF09ZSxlfSxULnByb3RvdHlwZS5fdmVyaWZ5MT1mdW5jdGlvbih0KXtuKDA9PT10Lm5lZ2F0aXZlLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLG4odC5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVC5wcm90b3R5cGUuX3ZlcmlmeTI9ZnVuY3Rpb24odCxlKXtuKDA9PSh0Lm5lZ2F0aXZlfGUubmVnYXRpdmUpLCJyZWQgd29ya3Mgb25seSB3aXRoIHBvc2l0aXZlcyIpLG4odC5yZWQmJnQucmVkPT09ZS5yZWQsInJlZCB3b3JrcyBvbmx5IHdpdGggcmVkIG51bWJlcnMiKX0sVC5wcm90b3R5cGUuaW1vZD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5wcmltZT90aGlzLnByaW1lLmlyZWR1Y2UodCkuX2ZvcmNlUmVkKHRoaXMpOnQudW1vZCh0aGlzLm0pLl9mb3JjZVJlZCh0aGlzKX0sVC5wcm90b3R5cGUubmVnPWZ1bmN0aW9uKHQpe3JldHVybiB0LmlzWmVybygpP3QuY2xvbmUoKTp0aGlzLm0uc3ViKHQpLl9mb3JjZVJlZCh0aGlzKX0sVC5wcm90b3R5cGUuYWRkPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciByPXQuYWRkKGUpO3JldHVybiByLmNtcCh0aGlzLm0pPj0wJiZyLmlzdWIodGhpcy5tKSxyLl9mb3JjZVJlZCh0aGlzKX0sVC5wcm90b3R5cGUuaWFkZD1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LmlhZGQoZSk7cmV0dXJuIHIuY21wKHRoaXMubSk+PTAmJnIuaXN1Yih0aGlzLm0pLHJ9LFQucHJvdG90eXBlLnN1Yj1mdW5jdGlvbih0LGUpe3RoaXMuX3ZlcmlmeTIodCxlKTt2YXIgcj10LnN1YihlKTtyZXR1cm4gci5jbXBuKDApPDAmJnIuaWFkZCh0aGlzLm0pLHIuX2ZvcmNlUmVkKHRoaXMpfSxULnByb3RvdHlwZS5pc3ViPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmVyaWZ5Mih0LGUpO3ZhciByPXQuaXN1YihlKTtyZXR1cm4gci5jbXBuKDApPDAmJnIuaWFkZCh0aGlzLm0pLHJ9LFQucHJvdG90eXBlLnNobD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkxKHQpLHRoaXMuaW1vZCh0LnVzaGxuKGUpKX0sVC5wcm90b3R5cGUuaW11bD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsZSksdGhpcy5pbW9kKHQuaW11bChlKSl9LFQucHJvdG90eXBlLm11bD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl92ZXJpZnkyKHQsZSksdGhpcy5pbW9kKHQubXVsKGUpKX0sVC5wcm90b3R5cGUuaXNxcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbXVsKHQsdC5jbG9uZSgpKX0sVC5wcm90b3R5cGUuc3FyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm11bCh0LHQpfSxULnByb3RvdHlwZS5zcXJ0PWZ1bmN0aW9uKHQpe2lmKHQuaXNaZXJvKCkpcmV0dXJuIHQuY2xvbmUoKTt2YXIgZT10aGlzLm0uYW5kbG4oMyk7aWYobihlJTI9PTEpLDM9PT1lKXt2YXIgcj10aGlzLm0uYWRkKG5ldyBhKDEpKS5pdXNocm4oMik7cmV0dXJuIHRoaXMucG93KHQscil9Zm9yKHZhciBpPXRoaXMubS5zdWJuKDEpLG89MDshaS5pc1plcm8oKSYmMD09PWkuYW5kbG4oMSk7KW8rKyxpLml1c2hybigxKTtuKCFpLmlzWmVybygpKTt2YXIgcz1uZXcgYSgxKS50b1JlZCh0aGlzKSxsPXMucmVkTmVnKCksYz10aGlzLm0uc3VibigxKS5pdXNocm4oMSksdT10aGlzLm0uYml0TGVuZ3RoKCk7Zm9yKHU9bmV3IGEoMip1KnUpLnRvUmVkKHRoaXMpOzAhPT10aGlzLnBvdyh1LGMpLmNtcChsKTspdS5yZWRJQWRkKGwpO2Zvcih2YXIgZj10aGlzLnBvdyh1LGkpLGg9dGhpcy5wb3codCxpLmFkZG4oMSkuaXVzaHJuKDEpKSxwPXRoaXMucG93KHQsaSksZD1vOzAhPT1wLmNtcChzKTspe2Zvcih2YXIgbT1wLGc9MDswIT09bS5jbXAocyk7ZysrKW09bS5yZWRTcXIoKTtuKGc8ZCk7dmFyIHY9dGhpcy5wb3coZixuZXcgYSgxKS5pdXNobG4oZC1nLTEpKTtoPWgucmVkTXVsKHYpLGY9di5yZWRTcXIoKSxwPXAucmVkTXVsKGYpLGQ9Z31yZXR1cm4gaH0sVC5wcm90b3R5cGUuaW52bT1mdW5jdGlvbih0KXt2YXIgZT10Ll9pbnZtcCh0aGlzLm0pO3JldHVybiAwIT09ZS5uZWdhdGl2ZT8oZS5uZWdhdGl2ZT0wLHRoaXMuaW1vZChlKS5yZWROZWcoKSk6dGhpcy5pbW9kKGUpfSxULnByb3RvdHlwZS5wb3c9ZnVuY3Rpb24odCxlKXtpZihlLmlzWmVybygpKXJldHVybiBuZXcgYSgxKS50b1JlZCh0aGlzKTtpZigwPT09ZS5jbXBuKDEpKXJldHVybiB0LmNsb25lKCk7dmFyIHI9bmV3IEFycmF5KDE2KTtyWzBdPW5ldyBhKDEpLnRvUmVkKHRoaXMpLHJbMV09dDtmb3IodmFyIG49MjtuPHIubGVuZ3RoO24rKylyW25dPXRoaXMubXVsKHJbbi0xXSx0KTt2YXIgaT1yWzBdLG89MCxzPTAsbD1lLmJpdExlbmd0aCgpJTI2O2ZvcigwPT09bCYmKGw9MjYpLG49ZS5sZW5ndGgtMTtuPj0wO24tLSl7Zm9yKHZhciBjPWUud29yZHNbbl0sdT1sLTE7dT49MDt1LS0pe3ZhciBmPWM+PnUmMTtpIT09clswXSYmKGk9dGhpcy5zcXIoaSkpLDAhPT1mfHwwIT09bz8obzw8PTEsb3w9ZiwoND09PSsrc3x8MD09PW4mJjA9PT11KSYmKGk9dGhpcy5tdWwoaSxyW29dKSxzPTAsbz0wKSk6cz0wfWw9MjZ9cmV0dXJuIGl9LFQucHJvdG90eXBlLmNvbnZlcnRUbz1mdW5jdGlvbih0KXt2YXIgZT10LnVtb2QodGhpcy5tKTtyZXR1cm4gZT09PXQ/ZS5jbG9uZSgpOmV9LFQucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2xvbmUoKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxhLm1vbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrKHQpfSxpKGssVCksay5wcm90b3R5cGUuY29udmVydFRvPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmltb2QodC51c2hsbih0aGlzLnNoaWZ0KSl9LGsucHJvdG90eXBlLmNvbnZlcnRGcm9tPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW1vZCh0Lm11bCh0aGlzLnJpbnYpKTtyZXR1cm4gZS5yZWQ9bnVsbCxlfSxrLnByb3RvdHlwZS5pbXVsPWZ1bmN0aW9uKHQsZSl7aWYodC5pc1plcm8oKXx8ZS5pc1plcm8oKSlyZXR1cm4gdC53b3Jkc1swXT0wLHQubGVuZ3RoPTEsdDt2YXIgcj10LmltdWwoZSksbj1yLm1hc2tuKHRoaXMuc2hpZnQpLm11bCh0aGlzLm1pbnYpLmltYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5tKSxpPXIuaXN1YihuKS5pdXNocm4odGhpcy5zaGlmdCksYT1pO3JldHVybiBpLmNtcCh0aGlzLm0pPj0wP2E9aS5pc3ViKHRoaXMubSk6aS5jbXBuKDApPDAmJihhPWkuaWFkZCh0aGlzLm0pKSxhLl9mb3JjZVJlZCh0aGlzKX0say5wcm90b3R5cGUubXVsPWZ1bmN0aW9uKHQsZSl7aWYodC5pc1plcm8oKXx8ZS5pc1plcm8oKSlyZXR1cm4gbmV3IGEoMCkuX2ZvcmNlUmVkKHRoaXMpO3ZhciByPXQubXVsKGUpLG49ci5tYXNrbih0aGlzLnNoaWZ0KS5tdWwodGhpcy5taW52KS5pbWFza24odGhpcy5zaGlmdCkubXVsKHRoaXMubSksaT1yLmlzdWIobikuaXVzaHJuKHRoaXMuc2hpZnQpLG89aTtyZXR1cm4gaS5jbXAodGhpcy5tKT49MD9vPWkuaXN1Yih0aGlzLm0pOmkuY21wbigwKTwwJiYobz1pLmlhZGQodGhpcy5tKSksby5fZm9yY2VSZWQodGhpcyl9LGsucHJvdG90eXBlLmludm09ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW1vZCh0Ll9pbnZtcCh0aGlzLm0pLm11bCh0aGlzLnIyKSkuX2ZvcmNlUmVkKHRoaXMpfX0odm9pZCAwPT09ZXx8ZSx0aGlzKX0se2J1ZmZlcjoxMTF9XSw5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9ibi1zaWduIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKHRbMF0pKm4odFsxXSl9fSx7Ii4vbGliL2JuLXNpZ24iOjg4fV0sOTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvcmF0aW9uYWxpemUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0WzBdLm11bChlWzFdKS5zdWIodFsxXS5tdWwoZVswXSkpLHRbMV0ubXVsKGVbMV0pKX19LHsiLi9saWIvcmF0aW9uYWxpemUiOjkzfV0sOTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvYm4tdG8tbnVtIiksaT10KCIuL2xpYi9jdHoiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV07aWYoMD09PWUuY21wbigwKSlyZXR1cm4gMDt2YXIgYT1lLmFicygpLmRpdm1vZChyLmFicygpKSxvPWEuZGl2LHM9bihvKSxsPWEubW9kLGM9ZS5uZWdhdGl2ZSE9PXIubmVnYXRpdmU/LTE6MTtpZigwPT09bC5jbXBuKDApKXJldHVybiBjKnM7aWYocyl7dmFyIHU9aShzKSs0LGY9bihsLnVzaGxuKHUpLmRpdlJvdW5kKHIpKTtyZXR1cm4gYyoocytmKk1hdGgucG93KDIsLXUpKX12YXIgaD1yLmJpdExlbmd0aCgpLWwuYml0TGVuZ3RoKCkrNTM7Zj1uKGwudXNobG4oaCkuZGl2Um91bmQocikpO3JldHVybiBoPDEwMjM/YypmKk1hdGgucG93KDIsLWgpOihmKj1NYXRoLnBvdygyLC0xMDIzKSxjKmYqTWF0aC5wb3coMiwxMDIzLWgpKX19LHsiLi9saWIvYm4tdG8tbnVtIjo4OSwiLi9saWIvY3R6Ijo5MH1dLDEwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyLG4saSl7Zm9yKHZhciBhPWkrMTtuPD1pOyl7dmFyIG89bitpPj4+MSxzPXRbb107KHZvaWQgMCE9PXI/cihzLGUpOnMtZSk+PTA/KGE9byxpPW8tMSk6bj1vKzF9cmV0dXJuIGF9ZnVuY3Rpb24gaSh0LGUscixuLGkpe2Zvcih2YXIgYT1pKzE7bjw9aTspe3ZhciBvPW4raT4+PjEscz10W29dOyh2b2lkIDAhPT1yP3IocyxlKTpzLWUpPjA/KGE9byxpPW8tMSk6bj1vKzF9cmV0dXJuIGF9ZnVuY3Rpb24gYSh0LGUscixuLGkpe2Zvcih2YXIgYT1uLTE7bjw9aTspe3ZhciBvPW4raT4+PjEscz10W29dOyh2b2lkIDAhPT1yP3IocyxlKTpzLWUpPDA/KGE9byxuPW8rMSk6aT1vLTF9cmV0dXJuIGF9ZnVuY3Rpb24gbyh0LGUscixuLGkpe2Zvcih2YXIgYT1uLTE7bjw9aTspe3ZhciBvPW4raT4+PjEscz10W29dOyh2b2lkIDAhPT1yP3IocyxlKTpzLWUpPD0wPyhhPW8sbj1vKzEpOmk9by0xfXJldHVybiBhfWZ1bmN0aW9uIHModCxlLHIsbixpKXtmb3IoO248PWk7KXt2YXIgYT1uK2k+Pj4xLG89dFthXSxzPXZvaWQgMCE9PXI/cihvLGUpOm8tZTtpZigwPT09cylyZXR1cm4gYTtzPD0wP249YSsxOmk9YS0xfXJldHVybi0xfWZ1bmN0aW9uIGwodCxlLHIsbixpLGEpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByP2EodCxlLHIsdm9pZCAwPT09bj8wOjB8bix2b2lkIDA9PT1pP3QubGVuZ3RoLTE6MHxpKTphKHQsZSx2b2lkIDAsdm9pZCAwPT09cj8wOjB8cix2b2lkIDA9PT1uP3QubGVuZ3RoLTE6MHxuKX1lLmV4cG9ydHM9e2dlOmZ1bmN0aW9uKHQsZSxyLGksYSl7cmV0dXJuIGwodCxlLHIsaSxhLG4pfSxndDpmdW5jdGlvbih0LGUscixuLGEpe3JldHVybiBsKHQsZSxyLG4sYSxpKX0sbHQ6ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gbCh0LGUscixuLGksYSl9LGxlOmZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIGwodCxlLHIsbixpLG8pfSxlcTpmdW5jdGlvbih0LGUscixuLGkpe3JldHVybiBsKHQsZSxyLG4saSxzKX19fSx7fV0sMTAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7dmFyIGU9MzI7cmV0dXJuKHQmPS10KSYmZS0tLDY1NTM1JnQmJihlLT0xNiksMTY3MTE5MzUmdCYmKGUtPTgpLDI1MjY0NTEzNSZ0JiYoZS09NCksODU4OTkzNDU5JnQmJihlLT0yKSwxNDMxNjU1NzY1JnQmJihlLT0xKSxlfXIuSU5UX0JJVFM9MzIsci5JTlRfTUFYPTIxNDc0ODM2NDcsci5JTlRfTUlOPS0xPDwzMSxyLnNpZ249ZnVuY3Rpb24odCl7cmV0dXJuKHQ+MCktKHQ8MCl9LHIuYWJzPWZ1bmN0aW9uKHQpe3ZhciBlPXQ+PjMxO3JldHVybih0XmUpLWV9LHIubWluPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVeKHReZSkmLSh0PGUpfSxyLm1heD1mdW5jdGlvbih0LGUpe3JldHVybiB0Xih0XmUpJi0odDxlKX0sci5pc1BvdzI9ZnVuY3Rpb24odCl7cmV0dXJuISh0JnQtMXx8IXQpfSxyLmxvZzI9ZnVuY3Rpb24odCl7dmFyIGUscjtyZXR1cm4gZT0odD42NTUzNSk8PDQsZXw9cj0oKHQ+Pj49ZSk+MjU1KTw8MyxlfD1yPSgodD4+Pj1yKT4xNSk8PDIsKGV8PXI9KCh0Pj4+PXIpPjMpPDwxKXwodD4+Pj1yKT4+MX0sci5sb2cxMD1mdW5jdGlvbih0KXtyZXR1cm4gdD49MWU5Pzk6dD49MWU4Pzg6dD49MWU3Pzc6dD49MWU2PzY6dD49MWU1PzU6dD49MWU0PzQ6dD49MWUzPzM6dD49MTAwPzI6dD49MTA/MTowfSxyLnBvcENvdW50PWZ1bmN0aW9uKHQpe3JldHVybiAxNjg0MzAwOSooKHQ9KDg1ODk5MzQ1OSYodC09dD4+PjEmMTQzMTY1NTc2NSkpKyh0Pj4+MiY4NTg5OTM0NTkpKSsodD4+PjQpJjI1MjY0NTEzNSk+Pj4yNH0sci5jb3VudFRyYWlsaW5nWmVyb3M9bixyLm5leHRQb3cyPWZ1bmN0aW9uKHQpe3JldHVybiB0Kz0wPT09dCwtLXQsdHw9dD4+PjEsdHw9dD4+PjIsdHw9dD4+PjQsdHw9dD4+PjgsKHR8PXQ+Pj4xNikrMX0sci5wcmV2UG93Mj1mdW5jdGlvbih0KXtyZXR1cm4gdHw9dD4+PjEsdHw9dD4+PjIsdHw9dD4+PjQsdHw9dD4+PjgsKHR8PXQ+Pj4xNiktKHQ+Pj4xKX0sci5wYXJpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRePXQ+Pj4xNix0Xj10Pj4+OCx0Xj10Pj4+NCwyNzAzMD4+Pih0Jj0xNSkmMX07dmFyIGk9bmV3IEFycmF5KDI1Nik7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8MjU2OysrZSl7dmFyIHI9ZSxuPWUsaT03O2ZvcihyPj4+PTE7cjtyPj4+PTEpbjw8PTEsbnw9MSZyLC0taTt0W2VdPW48PGkmMjU1fX0oaSksci5yZXZlcnNlPWZ1bmN0aW9uKHQpe3JldHVybiBpWzI1NSZ0XTw8MjR8aVt0Pj4+OCYyNTVdPDwxNnxpW3Q+Pj4xNiYyNTVdPDw4fGlbdD4+PjI0JjI1NV19LHIuaW50ZXJsZWF2ZTI9ZnVuY3Rpb24odCxlKXtyZXR1cm4odD0xNDMxNjU1NzY1JigodD04NTg5OTM0NTkmKCh0PTI1MjY0NTEzNSYoKHQ9MTY3MTE5MzUmKCh0Jj02NTUzNSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGUmPTY1NTM1KXxlPDw4KSl8ZTw8NCkpfGU8PDIpKXxlPDwxKSk8PDF9LHIuZGVpbnRlcmxlYXZlMj1mdW5jdGlvbih0LGUpe3JldHVybih0PTY1NTM1JigodD0xNjcxMTkzNSYoKHQ9MjUyNjQ1MTM1JigodD04NTg5OTM0NTkmKCh0PXQ+Pj5lJjE0MzE2NTU3NjUpfHQ+Pj4xKSl8dD4+PjIpKXx0Pj4+NCkpfHQ+Pj4xNikpPDwxNj4+MTZ9LHIuaW50ZXJsZWF2ZTM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PTEyMjcxMzM1MTMmKCh0PTMyNzIzNTYwMzUmKCh0PTI1MTcxOTY5NSYoKHQ9NDI3ODE5MDMzNSYoKHQmPTEwMjMpfHQ8PDE2KSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSwodHw9KGU9MTIyNzEzMzUxMyYoKGU9MzI3MjM1NjAzNSYoKGU9MjUxNzE5Njk1JigoZT00Mjc4MTkwMzM1JigoZSY9MTAyMyl8ZTw8MTYpKXxlPDw4KSl8ZTw8NCkpfGU8PDIpKTw8MSl8KHI9MTIyNzEzMzUxMyYoKHI9MzI3MjM1NjAzNSYoKHI9MjUxNzE5Njk1Jigocj00Mjc4MTkwMzM1JigociY9MTAyMyl8cjw8MTYpKXxyPDw4KSl8cjw8NCkpfHI8PDIpKTw8Mn0sci5kZWludGVybGVhdmUzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQ9MTAyMyYoKHQ9NDI3ODE5MDMzNSYoKHQ9MjUxNzE5Njk1JigodD0zMjcyMzU2MDM1JigodD10Pj4+ZSYxMjI3MTMzNTEzKXx0Pj4+MikpfHQ+Pj40KSl8dD4+PjgpKXx0Pj4+MTYpKTw8MjI+PjIyfSxyLm5leHRDb21iaW5hdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10fHQtMTtyZXR1cm4gZSsxfCh+ZSYtfmUpLTE+Pj5uKHQpKzF9fSx7fV0sMTAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNsYW1wIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZXx8KGU9e30pO3ZhciByLG8scyxsLGMsdSxmLGgscCxkLG0sZz1udWxsPT1lLmN1dG9mZj8uMjU6ZS5jdXRvZmYsdj1udWxsPT1lLnJhZGl1cz84OmUucmFkaXVzLHk9ZS5jaGFubmVsfHwwO2lmKEFycmF5QnVmZmVyLmlzVmlldyh0KXx8QXJyYXkuaXNBcnJheSh0KSl7aWYoIWUud2lkdGh8fCFlLmhlaWdodCl0aHJvdyBFcnJvcigiRm9yIHJhdyBkYXRhIHdpZHRoIGFuZCBoZWlnaHQgc2hvdWxkIGJlIHByb3ZpZGVkIGJ5IG9wdGlvbnMiKTtyPWUud2lkdGgsbz1lLmhlaWdodCxsPXQsdT1lLnN0cmlkZT9lLnN0cmlkZTpNYXRoLmZsb29yKHQubGVuZ3RoL3Ivbyl9ZWxzZSB3aW5kb3cuSFRNTENhbnZhc0VsZW1lbnQmJnQgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTENhbnZhc0VsZW1lbnQ/KGY9KGg9dCkuZ2V0Q29udGV4dCgiMmQiKSxyPWgud2lkdGgsbz1oLmhlaWdodCxwPWYuZ2V0SW1hZ2VEYXRhKDAsMCxyLG8pLGw9cC5kYXRhLHU9NCk6d2luZG93LkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCYmdCBpbnN0YW5jZW9mIHdpbmRvdy5DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ/KGg9dC5jYW52YXMsZj10LHI9aC53aWR0aCxvPWguaGVpZ2h0LHA9Zi5nZXRJbWFnZURhdGEoMCwwLHIsbyksbD1wLmRhdGEsdT00KTp3aW5kb3cuSW1hZ2VEYXRhJiZ0IGluc3RhbmNlb2Ygd2luZG93LkltYWdlRGF0YSYmKHA9dCxyPXQud2lkdGgsbz10LmhlaWdodCxsPXAuZGF0YSx1PTQpO2lmKHM9TWF0aC5tYXgocixvKSx3aW5kb3cuVWludDhDbGFtcGVkQXJyYXkmJmwgaW5zdGFuY2VvZiB3aW5kb3cuVWludDhDbGFtcGVkQXJyYXl8fHdpbmRvdy5VaW50OEFycmF5JiZsIGluc3RhbmNlb2Ygd2luZG93LlVpbnQ4QXJyYXkpZm9yKGM9bCxsPUFycmF5KHIqbyksZD0wLG09Yy5sZW5ndGg7ZDxtO2QrKylsW2RdPWNbZCp1K3ldLzI1NTtlbHNlIGlmKDEhPT11KXRocm93IEVycm9yKCJSYXcgZGF0YSBjYW4gaGF2ZSBvbmx5IDEgdmFsdWUgcGVyIHBpeGVsIik7dmFyIHg9QXJyYXkocipvKSxiPUFycmF5KHIqbyksXz1BcnJheShzKSx3PUFycmF5KHMpLFQ9QXJyYXkocysxKSxrPUFycmF5KHMpO2ZvcihkPTAsbT1yKm87ZDxtO2QrKyl7dmFyIEE9bFtkXTt4W2RdPTE9PT1BPzA6MD09PUE/aTpNYXRoLnBvdyhNYXRoLm1heCgwLC41LUEpLDIpLGJbZF09MT09PUE/aTowPT09QT8wOk1hdGgucG93KE1hdGgubWF4KDAsQS0uNSksMil9YSh4LHIsbyxfLHcsayxUKSxhKGIscixvLF8sdyxrLFQpO3ZhciBNPXdpbmRvdy5GbG9hdDMyQXJyYXk/bmV3IEZsb2F0MzJBcnJheShyKm8pOm5ldyBBcnJheShyKm8pO2ZvcihkPTAsbT1yKm87ZDxtO2QrKylNW2RdPW4oMS0oKHhbZF0tYltkXSkvditnKSwwLDEpO3JldHVybiBNfTt2YXIgaT0xZTIwO2Z1bmN0aW9uIGEodCxlLHIsbixpLGEscyl7Zm9yKHZhciBsPTA7bDxlO2wrKyl7Zm9yKHZhciBjPTA7YzxyO2MrKyluW2NdPXRbYyplK2xdO2ZvcihvKG4saSxhLHMsciksYz0wO2M8cjtjKyspdFtjKmUrbF09aVtjXX1mb3IoYz0wO2M8cjtjKyspe2ZvcihsPTA7bDxlO2wrKyluW2xdPXRbYyplK2xdO2ZvcihvKG4saSxhLHMsZSksbD0wO2w8ZTtsKyspdFtjKmUrbF09TWF0aC5zcXJ0KGlbbF0pfX1mdW5jdGlvbiBvKHQsZSxyLG4sYSl7clswXT0wLG5bMF09LWksblsxXT0raTtmb3IodmFyIG89MSxzPTA7bzxhO28rKyl7Zm9yKHZhciBsPSh0W29dK28qby0odFtyW3NdXStyW3NdKnJbc10pKS8oMipvLTIqcltzXSk7bDw9bltzXTspcy0tLGw9KHRbb10rbypvLSh0W3Jbc11dK3Jbc10qcltzXSkpLygyKm8tMipyW3NdKTtyWysrc109byxuW3NdPWwsbltzKzFdPStpfWZvcihvPTAscz0wO288YTtvKyspe2Zvcig7bltzKzFdPG87KXMrKztlW29dPShvLXJbc10pKihvLXJbc10pK3RbcltzXV19fX0se2NsYW1wOjEyMX1dLDEwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9dC5sZW5ndGgsYT0wO2ZvcihlPTA7ZTxpOysrZSlhKz10W2VdLmxlbmd0aDt2YXIgbz1uZXcgQXJyYXkoYSkscz0wO2ZvcihlPTA7ZTxpOysrZSl7dmFyIGw9dFtlXSxjPWwubGVuZ3RoO2ZvcihyPTA7cjxjOysrcil7dmFyIHU9b1tzKytdPW5ldyBBcnJheShjLTEpLGY9MDtmb3Iobj0wO248YzsrK24pbiE9PXImJih1W2YrK109bFtuXSk7aWYoMSZyKXt2YXIgaD11WzFdO3VbMV09dVswXSx1WzBdPWh9fX1yZXR1cm4gb319LHt9XSwxMDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAxOnJldHVybiBmKHQpO2Nhc2UgMjpyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZT9jKHQsdCxlLCEwKTpoKHQsZSk7Y2FzZSAzOnJldHVybiBjKHQsZSxyLCExKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiYm94LWludGVyc2VjdDogSW52YWxpZCBhcmd1bWVudHMiKX19O3ZhciBuLGk9dCgidHlwZWRhcnJheS1wb29sIiksYT10KCIuL2xpYi9zd2VlcCIpLG89dCgiLi9saWIvaW50ZXJzZWN0Iik7ZnVuY3Rpb24gcyh0LGUpe2Zvcih2YXIgcj0wO3I8dDsrK3IpaWYoIShlW3JdPD1lW3IrdF0pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIGwodCxlLHIsbil7Zm9yKHZhciBpPTAsYT0wLG89MCxsPXQubGVuZ3RoO288bDsrK28pe3ZhciBjPXRbb107aWYoIXMoZSxjKSl7Zm9yKHZhciB1PTA7dTwyKmU7Kyt1KXJbaSsrXT1jW3VdO25bYSsrXT1vfX1yZXR1cm4gYX1mdW5jdGlvbiBjKHQsZSxyLG4pe3ZhciBzPXQubGVuZ3RoLGM9ZS5sZW5ndGg7aWYoIShzPD0wfHxjPD0wKSl7dmFyIHU9dFswXS5sZW5ndGg+Pj4xO2lmKCEodTw9MCkpe3ZhciBmLGg9aS5tYWxsb2NEb3VibGUoMip1KnMpLHA9aS5tYWxsb2NJbnQzMihzKTtpZigocz1sKHQsdSxoLHApKT4wKXtpZigxPT09dSYmbilhLmluaXQocyksZj1hLnN3ZWVwQ29tcGxldGUodSxyLDAscyxoLHAsMCxzLGgscCk7ZWxzZXt2YXIgZD1pLm1hbGxvY0RvdWJsZSgyKnUqYyksbT1pLm1hbGxvY0ludDMyKGMpOyhjPWwoZSx1LGQsbSkpPjAmJihhLmluaXQocytjKSxmPTE9PT11P2Euc3dlZXBCaXBhcnRpdGUodSxyLDAscyxoLHAsMCxjLGQsbSk6byh1LHIsbixzLGgscCxjLGQsbSksaS5mcmVlKGQpLGkuZnJlZShtKSl9aS5mcmVlKGgpLGkuZnJlZShwKX1yZXR1cm4gZn19fWZ1bmN0aW9uIHUodCxlKXtuLnB1c2goW3QsZV0pfWZ1bmN0aW9uIGYodCl7cmV0dXJuIG49W10sYyh0LHQsdSwhMCksbn1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIG49W10sYyh0LGUsdSwhMSksbn19LHsiLi9saWIvaW50ZXJzZWN0IjoxMDYsIi4vbGliL3N3ZWVwIjoxMTAsInR5cGVkYXJyYXktcG9vbCI6NTkwfV0sMTA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIHQ/ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1KXtyZXR1cm4gaS1uPmwtcz9mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUpe2Zvcih2YXIgZj0yKnQsaD1uLHA9ZipuO2g8aTsrK2gscCs9Zil7dmFyIGQ9YVtlK3BdLG09YVtlK3ArdF0sZz1vW2hdO3Q6Zm9yKHZhciB2PXMseT1mKnM7djxsOysrdix5Kz1mKXt2YXIgeD1jW2UreV0sYj1jW2UreSt0XSxfPXVbdl07aWYoIShiPGR8fG08eCkpe2Zvcih2YXIgdz1lKzE7dzx0Oysrdyl7dmFyIFQ9YVt3K3BdLGs9YVt3K3QrcF0sQT1jW3creV0sTT1jW3crdCt5XTtpZihrPEF8fE08VCljb250aW51ZSB0fXZhciBTPXIoZyxfKTtpZih2b2lkIDAhPT1TKXJldHVybiBTfX19fSh0LGUscixuLGksYSxvLHMsbCxjLHUpOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSl7Zm9yKHZhciBmPTIqdCxoPXMscD1mKnM7aDxsOysraCxwKz1mKXt2YXIgZD1jW2UrcF0sbT1jW2UrcCt0XSxnPXVbaF07dDpmb3IodmFyIHY9bix5PWYqbjt2PGk7Kyt2LHkrPWYpe3ZhciB4PWFbZSt5XSxiPWFbZSt5K3RdLF89b1t2XTtpZighKG08eHx8YjxkKSl7Zm9yKHZhciB3PWUrMTt3PHQ7Kyt3KXt2YXIgVD1hW3creV0saz1hW3crdCt5XSxBPWNbdytwXSxNPWNbdyt0K3BdO2lmKGs8QXx8TTxUKWNvbnRpbnVlIHR9dmFyIFM9cihfLGcpO2lmKHZvaWQgMCE9PVMpcmV0dXJuIFN9fX19KHQsZSxyLG4saSxhLG8scyxsLGMsdSl9OmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmKXtyZXR1cm4gYS1pPmMtbD9uP2Z1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSl7Zm9yKHZhciBmPTIqdCxoPW4scD1mKm47aDxpOysraCxwKz1mKXt2YXIgZD1hW2UrcF0sbT1hW2UrcCt0XSxnPW9baF07dDpmb3IodmFyIHY9cyx5PWYqczt2PGw7Kyt2LHkrPWYpe3ZhciB4PWNbZSt5XSxiPXVbdl07aWYoISh4PD1kfHxtPHgpKXtmb3IodmFyIF89ZSsxO188dDsrK18pe3ZhciB3PWFbXytwXSxUPWFbXyt0K3BdLGs9Y1tfK3ldLEE9Y1tfK3QreV07aWYoVDxrfHxBPHcpY29udGludWUgdH12YXIgTT1yKGIsZyk7aWYodm9pZCAwIT09TSlyZXR1cm4gTX19fX0odCxlLHIsaSxhLG8scyxsLGMsdSxmKTpmdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUpe2Zvcih2YXIgZj0yKnQsaD1uLHA9ZipuO2g8aTsrK2gscCs9Zil7dmFyIGQ9YVtlK3BdLG09YVtlK3ArdF0sZz1vW2hdO3Q6Zm9yKHZhciB2PXMseT1mKnM7djxsOysrdix5Kz1mKXt2YXIgeD1jW2UreV0sYj11W3ZdO2lmKCEoeDxkfHxtPHgpKXtmb3IodmFyIF89ZSsxO188dDsrK18pe3ZhciB3PWFbXytwXSxUPWFbXyt0K3BdLGs9Y1tfK3ldLEE9Y1tfK3QreV07aWYoVDxrfHxBPHcpY29udGludWUgdH12YXIgTT1yKGcsYik7aWYodm9pZCAwIT09TSlyZXR1cm4gTX19fX0odCxlLHIsaSxhLG8scyxsLGMsdSxmKTpuP2Z1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSl7Zm9yKHZhciBmPTIqdCxoPXMscD1mKnM7aDxsOysraCxwKz1mKXt2YXIgZD1jW2UrcF0sbT11W2hdO3Q6Zm9yKHZhciBnPW4sdj1mKm47ZzxpOysrZyx2Kz1mKXt2YXIgeT1hW2Urdl0seD1hW2Urdit0XSxiPW9bZ107aWYoIShkPD15fHx4PGQpKXtmb3IodmFyIF89ZSsxO188dDsrK18pe3ZhciB3PWFbXyt2XSxUPWFbXyt0K3ZdLGs9Y1tfK3BdLEE9Y1tfK3QrcF07aWYoVDxrfHxBPHcpY29udGludWUgdH12YXIgTT1yKG0sYik7aWYodm9pZCAwIT09TSlyZXR1cm4gTX19fX0odCxlLHIsaSxhLG8scyxsLGMsdSxmKTpmdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUpe2Zvcih2YXIgZj0yKnQsaD1zLHA9ZipzO2g8bDsrK2gscCs9Zil7dmFyIGQ9Y1tlK3BdLG09dVtoXTt0OmZvcih2YXIgZz1uLHY9ZipuO2c8aTsrK2csdis9Zil7dmFyIHk9YVtlK3ZdLHg9YVtlK3YrdF0sYj1vW2ddO2lmKCEoZDx5fHx4PGQpKXtmb3IodmFyIF89ZSsxO188dDsrK18pe3ZhciB3PWFbXyt2XSxUPWFbXyt0K3ZdLGs9Y1tfK3BdLEE9Y1tfK3QrcF07aWYoVDxrfHxBPHcpY29udGludWUgdH12YXIgTT1yKGIsbSk7aWYodm9pZCAwIT09TSlyZXR1cm4gTX19fX0odCxlLHIsaSxhLG8scyxsLGMsdSxmKX19ci5wYXJ0aWFsPW4oITEpLHIuZnVsbD1uKCEwKX0se31dLDEwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSx1LHcsVCxrLEEpeyFmdW5jdGlvbih0LGUpe3ZhciByPTgqaS5sb2cyKGUrMSkqKHQrMSl8MCxhPWkubmV4dFBvdzIoNipyKTt2Lmxlbmd0aDxhJiYobi5mcmVlKHYpLHY9bi5tYWxsb2NJbnQzMihhKSk7dmFyIG89aS5uZXh0UG93MigyKnIpO3kubGVuZ3RoPG8mJihuLmZyZWUoeSkseT1uLm1hbGxvY0RvdWJsZShvKSl9KHQsYStUKTt2YXIgTSxTPTAsRT0yKnQ7eChTKyssMCwwLGEsMCxULHI/MTY6MCwtMS8wLDEvMCkscnx8eChTKyssMCwwLFQsMCxhLDEsLTEvMCwxLzApO2Zvcig7Uz4wOyl7dmFyIEw9NiooUy09MSksQz12W0xdLFA9dltMKzFdLEk9dltMKzJdLE89dltMKzNdLHo9dltMKzRdLEQ9dltMKzVdLFI9MipTLEY9eVtSXSxCPXlbUisxXSxOPTEmRCxqPSEhKDE2JkQpLFU9dSxWPXcsSD1rLHE9QTtpZihOJiYoVT1rLFY9QSxIPXUscT13KSwhKDImRCYmKEk9cCh0LEMsUCxJLFUsVixCKSxQPj1JKXx8NCZEJiYoUD1kKHQsQyxQLEksVSxWLEYpKT49SSkpe3ZhciBHPUktUCxZPXotTztpZihqKXtpZih0KkcqKEcrWSk8MTw8MjIpe2lmKHZvaWQgMCE9PShNPWwuc2NhbkNvbXBsZXRlKHQsQyxlLFAsSSxVLFYsTyx6LEgscSkpKXJldHVybiBNO2NvbnRpbnVlfX1lbHNle2lmKHQqTWF0aC5taW4oRyxZKTwxMjgpe2lmKHZvaWQgMCE9PShNPW8odCxDLGUsTixQLEksVSxWLE8seixILHEpKSlyZXR1cm4gTTtjb250aW51ZX1pZih0KkcqWTwxPDwyMil7aWYodm9pZCAwIT09KE09bC5zY2FuQmlwYXJ0aXRlKHQsQyxlLE4sUCxJLFUsVixPLHosSCxxKSkpcmV0dXJuIE07Y29udGludWV9fXZhciBXPWYodCxDLFAsSSxVLFYsRixCKTtpZihQPFcpaWYodCooVy1QKTwxMjgpe2lmKHZvaWQgMCE9PShNPXModCxDKzEsZSxQLFcsVSxWLE8seixILHEpKSlyZXR1cm4gTX1lbHNlIGlmKEM9PT10LTIpe2lmKHZvaWQgMCE9PShNPU4/bC5zd2VlcEJpcGFydGl0ZSh0LGUsTyx6LEgscSxQLFcsVSxWKTpsLnN3ZWVwQmlwYXJ0aXRlKHQsZSxQLFcsVSxWLE8seixILHEpKSlyZXR1cm4gTX1lbHNlIHgoUysrLEMrMSxQLFcsTyx6LE4sLTEvMCwxLzApLHgoUysrLEMrMSxPLHosUCxXLDFeTiwtMS8wLDEvMCk7aWYoVzxJKXt2YXIgWD1jKHQsQyxPLHosSCxxKSxaPUhbRSpYK0NdLEo9aCh0LEMsWCx6LEgscSxaKTtpZihKPHomJngoUysrLEMsVyxJLEoseiwoNHxOKSsoaj8xNjowKSxaLEIpLE88WCYmeChTKyssQyxXLEksTyxYLCgyfE4pKyhqPzE2OjApLEYsWiksWCsxPT09Sil7aWYodm9pZCAwIT09KE09aj9fKHQsQyxlLFcsSSxVLFYsWCxILHFbWF0pOmIodCxDLGUsTixXLEksVSxWLFgsSCxxW1hdKSkpcmV0dXJuIE19ZWxzZSBpZihYPEope3ZhciBLO2lmKGope2lmKEs9bSh0LEMsVyxJLFUsVixaKSxXPEspe3ZhciBRPWgodCxDLFcsSyxVLFYsWik7aWYoQz09PXQtMil7aWYoVzxRJiZ2b2lkIDAhPT0oTT1sLnN3ZWVwQ29tcGxldGUodCxlLFcsUSxVLFYsWCxKLEgscSkpKXJldHVybiBNO2lmKFE8SyYmdm9pZCAwIT09KE09bC5zd2VlcEJpcGFydGl0ZSh0LGUsUSxLLFUsVixYLEosSCxxKSkpcmV0dXJuIE19ZWxzZSBXPFEmJngoUysrLEMrMSxXLFEsWCxKLDE2LC0xLzAsMS8wKSxRPEsmJih4KFMrKyxDKzEsUSxLLFgsSiwwLC0xLzAsMS8wKSx4KFMrKyxDKzEsWCxKLFEsSywxLC0xLzAsMS8wKSl9fWVsc2UgSz1OP2codCxDLFcsSSxVLFYsWik6bSh0LEMsVyxJLFUsVixaKSxXPEsmJihDPT09dC0yP009Tj9sLnN3ZWVwQmlwYXJ0aXRlKHQsZSxYLEosSCxxLFcsSyxVLFYpOmwuc3dlZXBCaXBhcnRpdGUodCxlLFcsSyxVLFYsWCxKLEgscSk6KHgoUysrLEMrMSxXLEssWCxKLE4sLTEvMCwxLzApLHgoUysrLEMrMSxYLEosVyxLLDFeTiwtMS8wLDEvMCkpKX19fX19O3ZhciBuPXQoInR5cGVkYXJyYXktcG9vbCIpLGk9dCgiYml0LXR3aWRkbGUiKSxhPXQoIi4vYnJ1dGUiKSxvPWEucGFydGlhbCxzPWEuZnVsbCxsPXQoIi4vc3dlZXAiKSxjPXQoIi4vbWVkaWFuIiksdT10KCIuL3BhcnRpdGlvbiIpLGY9dSgiIShsbz49cDApJiYhKHAxPj1oaSkiKSxoPXUoImxvPT09cDAiKSxwPXUoImxvPHAwIiksZD11KCJoaTw9cDAiKSxtPXUoImxvPD1wMCYmcDA8PWhpIiksZz11KCJsbzxwMCYmcDA8PWhpIiksdj1uLm1hbGxvY0ludDMyKDEwMjQpLHk9bi5tYWxsb2NEb3VibGUoMTAyNCk7ZnVuY3Rpb24geCh0LGUscixuLGksYSxvLHMsbCl7dmFyIGM9Nip0O3ZbY109ZSx2W2MrMV09cix2W2MrMl09bix2W2MrM109aSx2W2MrNF09YSx2W2MrNV09bzt2YXIgdT0yKnQ7eVt1XT1zLHlbdSsxXT1sfWZ1bmN0aW9uIGIodCxlLHIsbixpLGEsbyxzLGwsYyx1KXt2YXIgZj0yKnQsaD1sKmYscD1jW2grZV07dDpmb3IodmFyIGQ9aSxtPWkqZjtkPGE7KytkLG0rPWYpe3ZhciBnPW9bbStlXSx2PW9bbStlK3RdO2lmKCEocDxnfHx2PHApJiYoIW58fHAhPT1nKSl7Zm9yKHZhciB5LHg9c1tkXSxiPWUrMTtiPHQ7KytiKXtnPW9bbStiXSx2PW9bbStiK3RdO3ZhciBfPWNbaCtiXSx3PWNbaCtiK3RdO2lmKHY8X3x8dzxnKWNvbnRpbnVlIHR9aWYodm9pZCAwIT09KHk9bj9yKHUseCk6cih4LHUpKSlyZXR1cm4geX19fWZ1bmN0aW9uIF8odCxlLHIsbixpLGEsbyxzLGwsYyl7dmFyIHU9Mip0LGY9cyp1LGg9bFtmK2VdO3Q6Zm9yKHZhciBwPW4sZD1uKnU7cDxpOysrcCxkKz11KXt2YXIgbT1vW3BdO2lmKG0hPT1jKXt2YXIgZz1hW2QrZV0sdj1hW2QrZSt0XTtpZighKGg8Z3x8djxoKSl7Zm9yKHZhciB5PWUrMTt5PHQ7Kyt5KXtnPWFbZCt5XSx2PWFbZCt5K3RdO3ZhciB4PWxbZit5XSxiPWxbZit5K3RdO2lmKHY8eHx8YjxnKWNvbnRpbnVlIHR9dmFyIF89cihtLGMpO2lmKHZvaWQgMCE9PV8pcmV0dXJuIF99fX19fSx7Ii4vYnJ1dGUiOjEwNSwiLi9tZWRpYW4iOjEwNywiLi9wYXJ0aXRpb24iOjEwOCwiLi9zd2VlcCI6MTEwLCJiaXQtdHdpZGRsZSI6MTAxLCJ0eXBlZGFycmF5LXBvb2wiOjU5MH1dLDEwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxvLHMpe2lmKGE8PXIrMSlyZXR1cm4gcjt2YXIgbD1yLGM9YSx1PWErcj4+PjEsZj0yKnQsaD11LHA9b1tmKnUrZV07Zm9yKDtsPGM7KXtpZihjLWw8OCl7aSh0LGUsbCxjLG8scykscD1vW2YqdStlXTticmVha312YXIgZD1jLWwsbT1NYXRoLnJhbmRvbSgpKmQrbHwwLGc9b1tmKm0rZV0sdj1NYXRoLnJhbmRvbSgpKmQrbHwwLHk9b1tmKnYrZV0seD1NYXRoLnJhbmRvbSgpKmQrbHwwLGI9b1tmKngrZV07Zzw9eT9iPj15PyhoPXYscD15KTpnPj1iPyhoPW0scD1nKTooaD14LHA9Yik6eT49Yj8oaD12LHA9eSk6Yj49Zz8oaD1tLHA9Zyk6KGg9eCxwPWIpO2Zvcih2YXIgXz1mKihjLTEpLHc9ZipoLFQ9MDtUPGY7KytULCsrXywrK3cpe3ZhciBrPW9bX107b1tfXT1vW3ddLG9bd109a312YXIgQT1zW2MtMV07c1tjLTFdPXNbaF0sc1toXT1BLGg9bih0LGUsbCxjLTEsbyxzLHApO2ZvcihfPWYqKGMtMSksdz1mKmgsVD0wO1Q8ZjsrK1QsKytfLCsrdyl7az1vW19dO29bX109b1t3XSxvW3ddPWt9QT1zW2MtMV07aWYoc1tjLTFdPXNbaF0sc1toXT1BLHU8aCl7Zm9yKGM9aC0xO2w8YyYmb1tmKihjLTEpK2VdPT09cDspYy09MTtjKz0xfWVsc2V7aWYoIShoPHUpKWJyZWFrO2ZvcihsPWgrMTtsPGMmJm9bZipsK2VdPT09cDspbCs9MX19cmV0dXJuIG4odCxlLHIsdSxvLHMsb1tmKnUrZV0pfTt2YXIgbj10KCIuL3BhcnRpdGlvbiIpKCJsbzxwMCIpO2Z1bmN0aW9uIGkodCxlLHIsbixpLGEpe2Zvcih2YXIgbz0yKnQscz1vKihyKzEpK2UsbD1yKzE7bDxuOysrbCxzKz1vKWZvcih2YXIgYz1pW3NdLHU9bCxmPW8qKGwtMSk7dT5yJiZpW2YrZV0+YzstLXUsZi09byl7Zm9yKHZhciBoPWYscD1mK28sZD0wO2Q8bzsrK2QsKytoLCsrcCl7dmFyIG09aVtoXTtpW2hdPWlbcF0saVtwXT1tfXZhciBnPWFbdV07YVt1XT1hW3UtMV0sYVt1LTFdPWd9fX0seyIuL3BhcnRpdGlvbiI6MTA4fV0sMTA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gblt0XX07dmFyIG49eyJsbz09PXAwIjpmdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9Mip0LGw9cypyLGM9bCx1PXIsZj1lLGg9cjtuPmg7KytoLGwrPXMpe2lmKGlbbCtmXT09PW8paWYodT09PWgpdSs9MSxjKz1zO2Vsc2V7Zm9yKHZhciBwPTA7cz5wOysrcCl7dmFyIGQ9aVtsK3BdO2lbbCtwXT1pW2NdLGlbYysrXT1kfXZhciBtPWFbaF07YVtoXT1hW3VdLGFbdSsrXT1tfX1yZXR1cm4gdX0sImxvPHAwIjpmdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9Mip0LGw9cypyLGM9bCx1PXIsZj1lLGg9cjtuPmg7KytoLGwrPXMpe2lmKGlbbCtmXTxvKWlmKHU9PT1oKXUrPTEsYys9cztlbHNle2Zvcih2YXIgcD0wO3M+cDsrK3Ape3ZhciBkPWlbbCtwXTtpW2wrcF09aVtjXSxpW2MrK109ZH12YXIgbT1hW2hdO2FbaF09YVt1XSxhW3UrK109bX19cmV0dXJuIHV9LCJsbzw9cDAiOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgcz0yKnQsbD1zKnIsYz1sLHU9cixmPXQrZSxoPXI7bj5oOysraCxsKz1zKXtpZihpW2wrZl08PW8paWYodT09PWgpdSs9MSxjKz1zO2Vsc2V7Zm9yKHZhciBwPTA7cz5wOysrcCl7dmFyIGQ9aVtsK3BdO2lbbCtwXT1pW2NdLGlbYysrXT1kfXZhciBtPWFbaF07YVtoXT1hW3VdLGFbdSsrXT1tfX1yZXR1cm4gdX0sImhpPD1wMCI6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPTIqdCxsPXMqcixjPWwsdT1yLGY9dCtlLGg9cjtuPmg7KytoLGwrPXMpe2lmKGlbbCtmXTw9bylpZih1PT09aCl1Kz0xLGMrPXM7ZWxzZXtmb3IodmFyIHA9MDtzPnA7KytwKXt2YXIgZD1pW2wrcF07aVtsK3BdPWlbY10saVtjKytdPWR9dmFyIG09YVtoXTthW2hdPWFbdV0sYVt1KytdPW19fXJldHVybiB1fSwibG88cDAmJnAwPD1oaSI6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPTIqdCxsPXMqcixjPWwsdT1yLGY9ZSxoPXQrZSxwPXI7bj5wOysrcCxsKz1zKXt2YXIgZD1pW2wrZl0sbT1pW2wraF07aWYoZDxvJiZvPD1tKWlmKHU9PT1wKXUrPTEsYys9cztlbHNle2Zvcih2YXIgZz0wO3M+ZzsrK2cpe3ZhciB2PWlbbCtnXTtpW2wrZ109aVtjXSxpW2MrK109dn12YXIgeT1hW3BdO2FbcF09YVt1XSxhW3UrK109eX19cmV0dXJuIHV9LCJsbzw9cDAmJnAwPD1oaSI6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPTIqdCxsPXMqcixjPWwsdT1yLGY9ZSxoPXQrZSxwPXI7bj5wOysrcCxsKz1zKXt2YXIgZD1pW2wrZl0sbT1pW2wraF07aWYoZDw9byYmbzw9bSlpZih1PT09cCl1Kz0xLGMrPXM7ZWxzZXtmb3IodmFyIGc9MDtzPmc7KytnKXt2YXIgdj1pW2wrZ107aVtsK2ddPWlbY10saVtjKytdPXZ9dmFyIHk9YVtwXTthW3BdPWFbdV0sYVt1KytdPXl9fXJldHVybiB1fSwiIShsbz49cDApJiYhKHAxPj1oaSkiOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPTIqdCxjPWwqcix1PWMsZj1yLGg9ZSxwPXQrZSxkPXI7bj5kOysrZCxjKz1sKXt2YXIgbT1pW2MraF0sZz1pW2MrcF07aWYoIShtPj1vfHxzPj1nKSlpZihmPT09ZClmKz0xLHUrPWw7ZWxzZXtmb3IodmFyIHY9MDtsPnY7Kyt2KXt2YXIgeT1pW2Mrdl07aVtjK3ZdPWlbdV0saVt1KytdPXl9dmFyIHg9YVtkXTthW2RdPWFbZl0sYVtmKytdPXh9fXJldHVybiBmfX19LHt9XSwxMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZTw9MTI4P24oMCxlLTEsdCk6ZnVuY3Rpb24gdChlLHIsdSl7dmFyIGY9KHItZSsxKS82fDAsaD1lK2YscD1yLWYsZD1lK3I+PjEsbT1kLWYsZz1kK2Ysdj1oLHk9bSx4PWQsYj1nLF89cCx3PWUrMSxUPXItMSxrPTA7bCh2LHksdSkmJihrPXYsdj15LHk9ayk7bChiLF8sdSkmJihrPWIsYj1fLF89ayk7bCh2LHgsdSkmJihrPXYsdj14LHg9ayk7bCh5LHgsdSkmJihrPXkseT14LHg9ayk7bCh2LGIsdSkmJihrPXYsdj1iLGI9ayk7bCh4LGIsdSkmJihrPXgseD1iLGI9ayk7bCh5LF8sdSkmJihrPXkseT1fLF89ayk7bCh5LHgsdSkmJihrPXkseT14LHg9ayk7bChiLF8sdSkmJihrPWIsYj1fLF89ayk7Zm9yKHZhciBBPXVbMip5XSxNPXVbMip5KzFdLFM9dVsyKmJdLEU9dVsyKmIrMV0sTD0yKnYsQz0yKngsUD0yKl8sST0yKmgsTz0yKmQsej0yKnAsRD0wO0Q8MjsrK0Qpe3ZhciBSPXVbTCtEXSxGPXVbQytEXSxCPXVbUCtEXTt1W0krRF09Uix1W08rRF09Rix1W3orRF09Qn1hKG0sZSx1KSxhKGcscix1KTtmb3IodmFyIE49dztOPD1UOysrTilpZihjKE4sQSxNLHUpKU4hPT13JiZpKE4sdyx1KSwrK3c7ZWxzZSBpZighYyhOLFMsRSx1KSlmb3IoOzspe2lmKGMoVCxTLEUsdSkpe2MoVCxBLE0sdSk/KG8oTix3LFQsdSksKyt3LC0tVCk6KGkoTixULHUpLC0tVCk7YnJlYWt9aWYoLS1UPE4pYnJlYWt9cyhlLHctMSxBLE0sdSkscyhyLFQrMSxTLEUsdSksdy0yLWU8PTMyP24oZSx3LTIsdSk6dChlLHctMix1KTtyLShUKzIpPD0zMj9uKFQrMixyLHUpOnQoVCsyLHIsdSk7VC13PD0zMj9uKHcsVCx1KTp0KHcsVCx1KX0oMCxlLTEsdCl9O2Z1bmN0aW9uIG4odCxlLHIpe2Zvcih2YXIgbj0yKih0KzEpLGk9dCsxO2k8PWU7KytpKXtmb3IodmFyIGE9cltuKytdLG89cltuKytdLHM9aSxsPW4tMjtzLS0gPnQ7KXt2YXIgYz1yW2wtMl0sdT1yW2wtMV07aWYoYzxhKWJyZWFrO2lmKGM9PT1hJiZ1PG8pYnJlYWs7cltsXT1jLHJbbCsxXT11LGwtPTJ9cltsXT1hLHJbbCsxXT1vfX1mdW5jdGlvbiBpKHQsZSxyKXtlKj0yO3ZhciBuPXJbdCo9Ml0saT1yW3QrMV07clt0XT1yW2VdLHJbdCsxXT1yW2UrMV0scltlXT1uLHJbZSsxXT1pfWZ1bmN0aW9uIGEodCxlLHIpe2UqPTIsclt0Kj0yXT1yW2VdLHJbdCsxXT1yW2UrMV19ZnVuY3Rpb24gbyh0LGUscixuKXtlKj0yLHIqPTI7dmFyIGk9blt0Kj0yXSxhPW5bdCsxXTtuW3RdPW5bZV0sblt0KzFdPW5bZSsxXSxuW2VdPW5bcl0sbltlKzFdPW5bcisxXSxuW3JdPWksbltyKzFdPWF9ZnVuY3Rpb24gcyh0LGUscixuLGkpe2UqPTIsaVt0Kj0yXT1pW2VdLGlbZV09cixpW3QrMV09aVtlKzFdLGlbZSsxXT1ufWZ1bmN0aW9uIGwodCxlLHIpe2UqPTI7dmFyIG49clt0Kj0yXSxpPXJbZV07cmV0dXJuIShuPGkpJiYobiE9PWl8fHJbdCsxXT5yW2UrMV0pfWZ1bmN0aW9uIGModCxlLHIsbil7dmFyIGk9blt0Kj0yXTtyZXR1cm4gaTxlfHxpPT09ZSYmblt0KzFdPHJ9fSx7fV0sMTEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17aW5pdDpmdW5jdGlvbih0KXt2YXIgZT1pLm5leHRQb3cyKHQpO28ubGVuZ3RoPGUmJihuLmZyZWUobyksbz1uLm1hbGxvY0ludDMyKGUpKTtzLmxlbmd0aDxlJiYobi5mcmVlKHMpLHM9bi5tYWxsb2NJbnQzMihlKSk7bC5sZW5ndGg8ZSYmKG4uZnJlZShsKSxsPW4ubWFsbG9jSW50MzIoZSkpO2MubGVuZ3RoPGUmJihuLmZyZWUoYyksYz1uLm1hbGxvY0ludDMyKGUpKTt1Lmxlbmd0aDxlJiYobi5mcmVlKHUpLHU9bi5tYWxsb2NJbnQzMihlKSk7Zi5sZW5ndGg8ZSYmKG4uZnJlZShmKSxmPW4ubWFsbG9jSW50MzIoZSkpO3ZhciByPTgqZTtoLmxlbmd0aDxyJiYobi5mcmVlKGgpLGg9bi5tYWxsb2NEb3VibGUocikpfSxzd2VlcEJpcGFydGl0ZTpmdW5jdGlvbih0LGUscixuLGksdSxmLG0sZyx2KXtmb3IodmFyIHk9MCx4PTIqdCxiPXQtMSxfPXgtMSx3PXI7dzxuOysrdyl7dmFyIFQ9dVt3XSxrPXgqdztoW3krK109aVtrK2JdLGhbeSsrXT0tKFQrMSksaFt5KytdPWlbaytfXSxoW3krK109VH1mb3Iodz1mO3c8bTsrK3cpe1Q9dlt3XSsoMTw8MjgpO3ZhciBBPXgqdztoW3krK109Z1tBK2JdLGhbeSsrXT0tVCxoW3krK109Z1tBK19dLGhbeSsrXT1UfXZhciBNPXk+Pj4xO2EoaCxNKTt2YXIgUz0wLEU9MDtmb3Iodz0wO3c8TTsrK3cpe3ZhciBMPTB8aFsyKncrMV07aWYoTD49MTw8MjgpcChsLGMsRS0tLEw9TC0oMTw8MjgpfDApO2Vsc2UgaWYoTD49MClwKG8scyxTLS0sTCk7ZWxzZSBpZihMPD0tKDE8PDI4KSl7TD0tTC0oMTw8MjgpfDA7Zm9yKHZhciBDPTA7QzxTOysrQyl7aWYodm9pZCAwIT09KFA9ZShvW0NdLEwpKSlyZXR1cm4gUH1kKGwsYyxFKyssTCl9ZWxzZXtMPS1MLTF8MDtmb3IoQz0wO0M8RTsrK0Mpe3ZhciBQO2lmKHZvaWQgMCE9PShQPWUoTCxsW0NdKSkpcmV0dXJuIFB9ZChvLHMsUysrLEwpfX19LHN3ZWVwQ29tcGxldGU6ZnVuY3Rpb24odCxlLHIsbixpLG0sZyx2LHkseCl7Zm9yKHZhciBiPTAsXz0yKnQsdz10LTEsVD1fLTEsaz1yO2s8bjsrK2spe3ZhciBBPW1ba10rMTw8MSxNPV8qaztoW2IrK109aVtNK3ddLGhbYisrXT0tQSxoW2IrK109aVtNK1RdLGhbYisrXT1BfWZvcihrPWc7azx2Oysrayl7QT14W2tdKzE8PDE7dmFyIFM9XyprO2hbYisrXT15W1Mrd10saFtiKytdPTF8LUEsaFtiKytdPXlbUytUXSxoW2IrK109MXxBfXZhciBFPWI+Pj4xO2EoaCxFKTt2YXIgTD0wLEM9MCxQPTA7Zm9yKGs9MDtrPEU7KytrKXt2YXIgST0wfGhbMiprKzFdLE89MSZJO2lmKGs8RS0xJiZJPj4xPT1oWzIqayszXT4+MSYmKE89MixrKz0xKSxJPDApe2Zvcih2YXIgej0tKEk+PjEpLTEsRD0wO0Q8UDsrK0Qpe2lmKHZvaWQgMCE9PShSPWUodVtEXSx6KSkpcmV0dXJuIFJ9aWYoMCE9PU8pZm9yKEQ9MDtEPEw7KytEKXtpZih2b2lkIDAhPT0oUj1lKG9bRF0seikpKXJldHVybiBSfWlmKDEhPT1PKWZvcihEPTA7RDxDOysrRCl7dmFyIFI7aWYodm9pZCAwIT09KFI9ZShsW0RdLHopKSlyZXR1cm4gUn0wPT09Tz9kKG8scyxMKysseik6MT09PU8/ZChsLGMsQysrLHopOjI9PT1PJiZkKHUsZixQKysseil9ZWxzZXt6PShJPj4xKS0xOzA9PT1PP3AobyxzLEwtLSx6KToxPT09Tz9wKGwsYyxDLS0seik6Mj09PU8mJnAodSxmLFAtLSx6KX19fSxzY2FuQmlwYXJ0aXRlOmZ1bmN0aW9uKHQsZSxyLG4saSxsLGMsdSxmLG0sZyx2KXt2YXIgeT0wLHg9Mip0LGI9ZSxfPWUrdCx3PTEsVD0xO24/VD0xPDwyODp3PTE8PDI4O2Zvcih2YXIgaz1pO2s8bDsrK2spe3ZhciBBPWsrdyxNPXgqaztoW3krK109Y1tNK2JdLGhbeSsrXT0tQSxoW3krK109Y1tNK19dLGhbeSsrXT1BfWZvcihrPWY7azxtOysrayl7QT1rK1Q7dmFyIFM9eCprO2hbeSsrXT1nW1MrYl0saFt5KytdPS1BfXZhciBFPXk+Pj4xO2EoaCxFKTt2YXIgTD0wO2ZvcihrPTA7azxFOysrayl7dmFyIEM9MHxoWzIqaysxXTtpZihDPDApe3ZhciBQPSExO2lmKChBPS1DKT49MTw8Mjg/KFA9IW4sQS09MTw8MjgpOihQPSEhbixBLT0xKSxQKWQobyxzLEwrKyxBKTtlbHNle3ZhciBJPXZbQV0sTz14KkEsej1nW08rZSsxXSxEPWdbTytlKzErdF07dDpmb3IodmFyIFI9MDtSPEw7KytSKXt2YXIgRj1vW1JdLEI9eCpGO2lmKCEoRDxjW0IrZSsxXXx8Y1tCK2UrMSt0XTx6KSl7Zm9yKHZhciBOPWUrMjtOPHQ7KytOKWlmKGdbTytOK3RdPGNbQitOXXx8Y1tCK04rdF08Z1tPK05dKWNvbnRpbnVlIHQ7dmFyIGosVT11W0ZdO2lmKHZvaWQgMCE9PShqPW4/cihJLFUpOnIoVSxJKSkpcmV0dXJuIGp9fX19ZWxzZSBwKG8scyxMLS0sQy13KX19LHNjYW5Db21wbGV0ZTpmdW5jdGlvbih0LGUscixuLGkscyxsLGMsdSxmLHApe2Zvcih2YXIgZD0wLG09Mip0LGc9ZSx2PWUrdCx5PW47eTxpOysreSl7dmFyIHg9eSsoMTw8MjgpLGI9bSp5O2hbZCsrXT1zW2IrZ10saFtkKytdPS14LGhbZCsrXT1zW2Irdl0saFtkKytdPXh9Zm9yKHk9Yzt5PHU7Kyt5KXt4PXkrMTt2YXIgXz1tKnk7aFtkKytdPWZbXytnXSxoW2QrK109LXh9dmFyIHc9ZD4+PjE7YShoLHcpO3ZhciBUPTA7Zm9yKHk9MDt5PHc7Kyt5KXt2YXIgaz0wfGhbMip5KzFdO2lmKGs8MCl7aWYoKHg9LWspPj0xPDwyOClvW1QrK109eC0oMTw8MjgpO2Vsc2V7dmFyIEE9cFt4LT0xXSxNPW0qeCxTPWZbTStlKzFdLEU9ZltNK2UrMSt0XTt0OmZvcih2YXIgTD0wO0w8VDsrK0wpe3ZhciBDPW9bTF0sUD1sW0NdO2lmKFA9PT1BKWJyZWFrO3ZhciBJPW0qQztpZighKEU8c1tJK2UrMV18fHNbSStlKzErdF08Uykpe2Zvcih2YXIgTz1lKzI7Tzx0OysrTylpZihmW00rTyt0XTxzW0krT118fHNbSStPK3RdPGZbTStPXSljb250aW51ZSB0O3ZhciB6PXIoUCxBKTtpZih2b2lkIDAhPT16KXJldHVybiB6fX19fWVsc2V7Zm9yKHg9ay0oMTw8MjgpLEw9VC0xO0w+PTA7LS1MKWlmKG9bTF09PT14KXtmb3IoTz1MKzE7TzxUOysrTylvW08tMV09b1tPXTticmVha30tLVR9fX19O3ZhciBuPXQoInR5cGVkYXJyYXktcG9vbCIpLGk9dCgiYml0LXR3aWRkbGUiKSxhPXQoIi4vc29ydCIpLG89bi5tYWxsb2NJbnQzMigxMDI0KSxzPW4ubWFsbG9jSW50MzIoMTAyNCksbD1uLm1hbGxvY0ludDMyKDEwMjQpLGM9bi5tYWxsb2NJbnQzMigxMDI0KSx1PW4ubWFsbG9jSW50MzIoMTAyNCksZj1uLm1hbGxvY0ludDMyKDEwMjQpLGg9bi5tYWxsb2NEb3VibGUoODE5Mik7ZnVuY3Rpb24gcCh0LGUscixuKXt2YXIgaT1lW25dLGE9dFtyLTFdO3RbaV09YSxlW2FdPWl9ZnVuY3Rpb24gZCh0LGUscixuKXt0W3JdPW4sZVtuXT1yfX0seyIuL3NvcnQiOjEwOSwiYml0LXR3aWRkbGUiOjEwMSwidHlwZWRhcnJheS1wb29sIjo1OTB9XSwxMTE6W2Z1bmN0aW9uKHQsZSxyKXt9LHt9XSwxMTI6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24oZSl7KGZ1bmN0aW9uKCl7Ci8qIQogKiBUaGUgYnVmZmVyIG1vZHVsZSBmcm9tIG5vZGUuanMsIGZvciB0aGUgYnJvd3Nlci4KICoKICogQGF1dGhvciAgIEZlcm9zcyBBYm91a2hhZGlqZWggPGh0dHBzOi8vZmVyb3NzLm9yZz4KICogQGxpY2Vuc2UgIE1JVAogKi8KInVzZSBzdHJpY3QiO3ZhciBlPXQoImJhc2U2NC1qcyIpLG49dCgiaWVlZTc1NCIpO3IuQnVmZmVyPWEsci5TbG93QnVmZmVyPWZ1bmN0aW9uKHQpeyt0IT10JiYodD0wKTtyZXR1cm4gYS5hbGxvYygrdCl9LHIuSU5TUEVDVF9NQVhfQllURVM9NTA7ZnVuY3Rpb24gaSh0KXtpZih0PjIxNDc0ODM2NDcpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKTt2YXIgZT1uZXcgVWludDhBcnJheSh0KTtyZXR1cm4gZS5fX3Byb3RvX189YS5wcm90b3R5cGUsZX1mdW5jdGlvbiBhKHQsZSxyKXtpZigibnVtYmVyIj09dHlwZW9mIHQpe2lmKCJzdHJpbmciPT10eXBlb2YgZSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvZiB0eXBlIHN0cmluZy4gUmVjZWl2ZWQgdHlwZSBudW1iZXInKTtyZXR1cm4gbCh0KX1yZXR1cm4gbyh0LGUscil9ZnVuY3Rpb24gbyh0LGUscil7aWYoInN0cmluZyI9PXR5cGVvZiB0KXJldHVybiBmdW5jdGlvbih0LGUpeyJzdHJpbmciPT10eXBlb2YgZSYmIiIhPT1lfHwoZT0idXRmOCIpO2lmKCFhLmlzRW5jb2RpbmcoZSkpdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBlbmNvZGluZzogIitlKTt2YXIgcj0wfGYodCxlKSxuPWkociksbz1uLndyaXRlKHQsZSk7byE9PXImJihuPW4uc2xpY2UoMCxvKSk7cmV0dXJuIG59KHQsZSk7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXJldHVybiBjKHQpO2lmKG51bGw9PXQpdGhyb3cgVHlwZUVycm9yKCJUaGUgZmlyc3QgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgQXJyYXlCdWZmZXIsIEFycmF5LCBvciBBcnJheS1saWtlIE9iamVjdC4gUmVjZWl2ZWQgdHlwZSAiK3R5cGVvZiB0KTtpZihCKHQsQXJyYXlCdWZmZXIpfHx0JiZCKHQuYnVmZmVyLEFycmF5QnVmZmVyKSlyZXR1cm4gZnVuY3Rpb24odCxlLHIpe2lmKGU8MHx8dC5ieXRlTGVuZ3RoPGUpdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJvZmZzZXQiIGlzIG91dHNpZGUgb2YgYnVmZmVyIGJvdW5kcycpO2lmKHQuYnl0ZUxlbmd0aDxlKyhyfHwwKSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignImxlbmd0aCIgaXMgb3V0c2lkZSBvZiBidWZmZXIgYm91bmRzJyk7dmFyIG47bj12b2lkIDA9PT1lJiZ2b2lkIDA9PT1yP25ldyBVaW50OEFycmF5KHQpOnZvaWQgMD09PXI/bmV3IFVpbnQ4QXJyYXkodCxlKTpuZXcgVWludDhBcnJheSh0LGUscik7cmV0dXJuIG4uX19wcm90b19fPWEucHJvdG90eXBlLG59KHQsZSxyKTtpZigibnVtYmVyIj09dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcignVGhlICJ2YWx1ZSIgYXJndW1lbnQgbXVzdCBub3QgYmUgb2YgdHlwZSBudW1iZXIuIFJlY2VpdmVkIHR5cGUgbnVtYmVyJyk7dmFyIG49dC52YWx1ZU9mJiZ0LnZhbHVlT2YoKTtpZihudWxsIT1uJiZuIT09dClyZXR1cm4gYS5mcm9tKG4sZSxyKTt2YXIgbz1mdW5jdGlvbih0KXtpZihhLmlzQnVmZmVyKHQpKXt2YXIgZT0wfHUodC5sZW5ndGgpLHI9aShlKTtyZXR1cm4gMD09PXIubGVuZ3RofHx0LmNvcHkociwwLDAsZSkscn1pZih2b2lkIDAhPT10Lmxlbmd0aClyZXR1cm4ibnVtYmVyIiE9dHlwZW9mIHQubGVuZ3RofHxOKHQubGVuZ3RoKT9pKDApOmModCk7aWYoIkJ1ZmZlciI9PT10LnR5cGUmJkFycmF5LmlzQXJyYXkodC5kYXRhKSlyZXR1cm4gYyh0LmRhdGEpfSh0KTtpZihvKXJldHVybiBvO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT1TeW1ib2wudG9QcmltaXRpdmUmJiJmdW5jdGlvbiI9PXR5cGVvZiB0W1N5bWJvbC50b1ByaW1pdGl2ZV0pcmV0dXJuIGEuZnJvbSh0W1N5bWJvbC50b1ByaW1pdGl2ZV0oInN0cmluZyIpLGUscik7dGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlIGZpcnN0IGFyZ3VtZW50IG11c3QgYmUgb25lIG9mIHR5cGUgc3RyaW5nLCBCdWZmZXIsIEFycmF5QnVmZmVyLCBBcnJheSwgb3IgQXJyYXktbGlrZSBPYmplY3QuIFJlY2VpdmVkIHR5cGUgIit0eXBlb2YgdCl9ZnVuY3Rpb24gcyh0KXtpZigibnVtYmVyIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcignInNpemUiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBudW1iZXInKTtpZih0PDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoJ1RoZSB2YWx1ZSAiJyt0KyciIGlzIGludmFsaWQgZm9yIG9wdGlvbiAic2l6ZSInKX1mdW5jdGlvbiBsKHQpe3JldHVybiBzKHQpLGkodDwwPzA6MHx1KHQpKX1mdW5jdGlvbiBjKHQpe2Zvcih2YXIgZT10Lmxlbmd0aDwwPzA6MHx1KHQubGVuZ3RoKSxyPWkoZSksbj0wO248ZTtuKz0xKXJbbl09MjU1JnRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdSh0KXtpZih0Pj0yMTQ3NDgzNjQ3KXRocm93IG5ldyBSYW5nZUVycm9yKCJBdHRlbXB0IHRvIGFsbG9jYXRlIEJ1ZmZlciBsYXJnZXIgdGhhbiBtYXhpbXVtIHNpemU6IDB4IisyMTQ3NDgzNjQ3Li50b1N0cmluZygxNikrIiBieXRlcyIpO3JldHVybiAwfHR9ZnVuY3Rpb24gZih0LGUpe2lmKGEuaXNCdWZmZXIodCkpcmV0dXJuIHQubGVuZ3RoO2lmKEFycmF5QnVmZmVyLmlzVmlldyh0KXx8Qih0LEFycmF5QnVmZmVyKSlyZXR1cm4gdC5ieXRlTGVuZ3RoO2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInN0cmluZyIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBzdHJpbmcsIEJ1ZmZlciwgb3IgQXJyYXlCdWZmZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdCk7dmFyIHI9dC5sZW5ndGgsbj1hcmd1bWVudHMubGVuZ3RoPjImJiEwPT09YXJndW1lbnRzWzJdO2lmKCFuJiYwPT09cilyZXR1cm4gMDtmb3IodmFyIGk9ITE7Oylzd2l0Y2goZSl7Y2FzZSJhc2NpaSI6Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gcjtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBEKHQpLmxlbmd0aDtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIDIqcjtjYXNlImhleCI6cmV0dXJuIHI+Pj4xO2Nhc2UiYmFzZTY0IjpyZXR1cm4gUih0KS5sZW5ndGg7ZGVmYXVsdDppZihpKXJldHVybiBuPy0xOkQodCkubGVuZ3RoO2U9KCIiK2UpLnRvTG93ZXJDYXNlKCksaT0hMH19ZnVuY3Rpb24gaCh0LGUscil7dmFyIG49ITE7aWYoKHZvaWQgMD09PWV8fGU8MCkmJihlPTApLGU+dGhpcy5sZW5ndGgpcmV0dXJuIiI7aWYoKHZvaWQgMD09PXJ8fHI+dGhpcy5sZW5ndGgpJiYocj10aGlzLmxlbmd0aCkscjw9MClyZXR1cm4iIjtpZigocj4+Pj0wKTw9KGU+Pj49MCkpcmV0dXJuIiI7Zm9yKHR8fCh0PSJ1dGY4Iik7Oylzd2l0Y2godCl7Y2FzZSJoZXgiOnJldHVybiBNKHRoaXMsZSxyKTtjYXNlInV0ZjgiOmNhc2UidXRmLTgiOnJldHVybiBUKHRoaXMsZSxyKTtjYXNlImFzY2lpIjpyZXR1cm4gayh0aGlzLGUscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4gQSh0aGlzLGUscik7Y2FzZSJiYXNlNjQiOnJldHVybiB3KHRoaXMsZSxyKTtjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6cmV0dXJuIFModGhpcyxlLHIpO2RlZmF1bHQ6aWYobil0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3Q9KHQrIiIpLnRvTG93ZXJDYXNlKCksbj0hMH19ZnVuY3Rpb24gcCh0LGUscil7dmFyIG49dFtlXTt0W2VdPXRbcl0sdFtyXT1ufWZ1bmN0aW9uIGQodCxlLHIsbixpKXtpZigwPT09dC5sZW5ndGgpcmV0dXJuLTE7aWYoInN0cmluZyI9PXR5cGVvZiByPyhuPXIscj0wKTpyPjIxNDc0ODM2NDc/cj0yMTQ3NDgzNjQ3OnI8LTIxNDc0ODM2NDgmJihyPS0yMTQ3NDgzNjQ4KSxOKHI9K3IpJiYocj1pPzA6dC5sZW5ndGgtMSkscjwwJiYocj10Lmxlbmd0aCtyKSxyPj10Lmxlbmd0aCl7aWYoaSlyZXR1cm4tMTtyPXQubGVuZ3RoLTF9ZWxzZSBpZihyPDApe2lmKCFpKXJldHVybi0xO3I9MH1pZigic3RyaW5nIj09dHlwZW9mIGUmJihlPWEuZnJvbShlLG4pKSxhLmlzQnVmZmVyKGUpKXJldHVybiAwPT09ZS5sZW5ndGg/LTE6bSh0LGUscixuLGkpO2lmKCJudW1iZXIiPT10eXBlb2YgZSlyZXR1cm4gZSY9MjU1LCJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5pbmRleE9mP2k/VWludDhBcnJheS5wcm90b3R5cGUuaW5kZXhPZi5jYWxsKHQsZSxyKTpVaW50OEFycmF5LnByb3RvdHlwZS5sYXN0SW5kZXhPZi5jYWxsKHQsZSxyKTptKHQsW2VdLHIsbixpKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJ2YWwgbXVzdCBiZSBzdHJpbmcsIG51bWJlciBvciBCdWZmZXIiKX1mdW5jdGlvbiBtKHQsZSxyLG4saSl7dmFyIGEsbz0xLHM9dC5sZW5ndGgsbD1lLmxlbmd0aDtpZih2b2lkIDAhPT1uJiYoInVjczIiPT09KG49U3RyaW5nKG4pLnRvTG93ZXJDYXNlKCkpfHwidWNzLTIiPT09bnx8InV0ZjE2bGUiPT09bnx8InV0Zi0xNmxlIj09PW4pKXtpZih0Lmxlbmd0aDwyfHxlLmxlbmd0aDwyKXJldHVybi0xO289MixzLz0yLGwvPTIsci89Mn1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIDE9PT1vP3RbZV06dC5yZWFkVUludDE2QkUoZSpvKX1pZihpKXt2YXIgdT0tMTtmb3IoYT1yO2E8czthKyspaWYoYyh0LGEpPT09YyhlLC0xPT09dT8wOmEtdSkpe2lmKC0xPT09dSYmKHU9YSksYS11KzE9PT1sKXJldHVybiB1Km99ZWxzZS0xIT09dSYmKGEtPWEtdSksdT0tMX1lbHNlIGZvcihyK2w+cyYmKHI9cy1sKSxhPXI7YT49MDthLS0pe2Zvcih2YXIgZj0hMCxoPTA7aDxsO2grKylpZihjKHQsYStoKSE9PWMoZSxoKSl7Zj0hMTticmVha31pZihmKXJldHVybiBhfXJldHVybi0xfWZ1bmN0aW9uIGcodCxlLHIsbil7cj1OdW1iZXIocil8fDA7dmFyIGk9dC5sZW5ndGgtcjtuPyhuPU51bWJlcihuKSk+aSYmKG49aSk6bj1pO3ZhciBhPWUubGVuZ3RoO24+YS8yJiYobj1hLzIpO2Zvcih2YXIgbz0wO288bjsrK28pe3ZhciBzPXBhcnNlSW50KGUuc3Vic3RyKDIqbywyKSwxNik7aWYoTihzKSlyZXR1cm4gbzt0W3Irb109c31yZXR1cm4gb31mdW5jdGlvbiB2KHQsZSxyLG4pe3JldHVybiBGKEQoZSx0Lmxlbmd0aC1yKSx0LHIsbil9ZnVuY3Rpb24geSh0LGUscixuKXtyZXR1cm4gRihmdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7KytyKWUucHVzaCgyNTUmdC5jaGFyQ29kZUF0KHIpKTtyZXR1cm4gZX0oZSksdCxyLG4pfWZ1bmN0aW9uIHgodCxlLHIsbil7cmV0dXJuIHkodCxlLHIsbil9ZnVuY3Rpb24gYih0LGUscixuKXtyZXR1cm4gRihSKGUpLHQscixuKX1mdW5jdGlvbiBfKHQsZSxyLG4pe3JldHVybiBGKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG4saSxhPVtdLG89MDtvPHQubGVuZ3RoJiYhKChlLT0yKTwwKTsrK28pcj10LmNoYXJDb2RlQXQobyksbj1yPj44LGk9ciUyNTYsYS5wdXNoKGkpLGEucHVzaChuKTtyZXR1cm4gYX0oZSx0Lmxlbmd0aC1yKSx0LHIsbil9ZnVuY3Rpb24gdyh0LHIsbil7cmV0dXJuIDA9PT1yJiZuPT09dC5sZW5ndGg/ZS5mcm9tQnl0ZUFycmF5KHQpOmUuZnJvbUJ5dGVBcnJheSh0LnNsaWNlKHIsbikpfWZ1bmN0aW9uIFQodCxlLHIpe3I9TWF0aC5taW4odC5sZW5ndGgscik7Zm9yKHZhciBuPVtdLGk9ZTtpPHI7KXt2YXIgYSxvLHMsbCxjPXRbaV0sdT1udWxsLGY9Yz4yMzk/NDpjPjIyMz8zOmM+MTkxPzI6MTtpZihpK2Y8PXIpc3dpdGNoKGYpe2Nhc2UgMTpjPDEyOCYmKHU9Yyk7YnJlYWs7Y2FzZSAyOjEyOD09KDE5MiYoYT10W2krMV0pKSYmKGw9KDMxJmMpPDw2fDYzJmEpPjEyNyYmKHU9bCk7YnJlYWs7Y2FzZSAzOmE9dFtpKzFdLG89dFtpKzJdLDEyOD09KDE5MiZhKSYmMTI4PT0oMTkyJm8pJiYobD0oMTUmYyk8PDEyfCg2MyZhKTw8Nnw2MyZvKT4yMDQ3JiYobDw1NTI5Nnx8bD41NzM0MykmJih1PWwpO2JyZWFrO2Nhc2UgNDphPXRbaSsxXSxvPXRbaSsyXSxzPXRbaSszXSwxMjg9PSgxOTImYSkmJjEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiYobD0oMTUmYyk8PDE4fCg2MyZhKTw8MTJ8KDYzJm8pPDw2fDYzJnMpPjY1NTM1JiZsPDExMTQxMTImJih1PWwpfW51bGw9PT11Pyh1PTY1NTMzLGY9MSk6dT42NTUzNSYmKHUtPTY1NTM2LG4ucHVzaCh1Pj4+MTAmMTAyM3w1NTI5NiksdT01NjMyMHwxMDIzJnUpLG4ucHVzaCh1KSxpKz1mfXJldHVybiBmdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtpZihlPD00MDk2KXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KFN0cmluZyx0KTt2YXIgcj0iIixuPTA7Zm9yKDtuPGU7KXIrPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkoU3RyaW5nLHQuc2xpY2UobixuKz00MDk2KSk7cmV0dXJuIHJ9KG4pfXIua01heExlbmd0aD0yMTQ3NDgzNjQ3LGEuVFlQRURfQVJSQVlfU1VQUE9SVD1mdW5jdGlvbigpe3RyeXt2YXIgdD1uZXcgVWludDhBcnJheSgxKTtyZXR1cm4gdC5fX3Byb3RvX189e19fcHJvdG9fXzpVaW50OEFycmF5LnByb3RvdHlwZSxmb286ZnVuY3Rpb24oKXtyZXR1cm4gNDJ9fSw0Mj09PXQuZm9vKCl9Y2F0Y2godCl7cmV0dXJuITF9fSgpLGEuVFlQRURfQVJSQVlfU1VQUE9SVHx8InVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlfHwiZnVuY3Rpb24iIT10eXBlb2YgY29uc29sZS5lcnJvcnx8Y29uc29sZS5lcnJvcigiVGhpcyBicm93c2VyIGxhY2tzIHR5cGVkIGFycmF5IChVaW50OEFycmF5KSBzdXBwb3J0IHdoaWNoIGlzIHJlcXVpcmVkIGJ5IGBidWZmZXJgIHY1LnguIFVzZSBgYnVmZmVyYCB2NC54IGlmIHlvdSByZXF1aXJlIG9sZCBicm93c2VyIHN1cHBvcnQuIiksT2JqZWN0LmRlZmluZVByb3BlcnR5KGEucHJvdG90eXBlLCJwYXJlbnQiLHtlbnVtZXJhYmxlOiEwLGdldDpmdW5jdGlvbigpe2lmKGEuaXNCdWZmZXIodGhpcykpcmV0dXJuIHRoaXMuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLnByb3RvdHlwZSwib2Zmc2V0Iix7ZW51bWVyYWJsZTohMCxnZXQ6ZnVuY3Rpb24oKXtpZihhLmlzQnVmZmVyKHRoaXMpKXJldHVybiB0aGlzLmJ5dGVPZmZzZXR9fSksInVuZGVmaW5lZCIhPXR5cGVvZiBTeW1ib2wmJm51bGwhPVN5bWJvbC5zcGVjaWVzJiZhW1N5bWJvbC5zcGVjaWVzXT09PWEmJk9iamVjdC5kZWZpbmVQcm9wZXJ0eShhLFN5bWJvbC5zcGVjaWVzLHt2YWx1ZTpudWxsLGNvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiExfSksYS5wb29sU2l6ZT04MTkyLGEuZnJvbT1mdW5jdGlvbih0LGUscil7cmV0dXJuIG8odCxlLHIpfSxhLnByb3RvdHlwZS5fX3Byb3RvX189VWludDhBcnJheS5wcm90b3R5cGUsYS5fX3Byb3RvX189VWludDhBcnJheSxhLmFsbG9jPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3JldHVybiBzKHQpLHQ8PTA/aSh0KTp2b2lkIDAhPT1lPyJzdHJpbmciPT10eXBlb2Ygcj9pKHQpLmZpbGwoZSxyKTppKHQpLmZpbGwoZSk6aSh0KX0odCxlLHIpfSxhLmFsbG9jVW5zYWZlPWZ1bmN0aW9uKHQpe3JldHVybiBsKHQpfSxhLmFsbG9jVW5zYWZlU2xvdz1mdW5jdGlvbih0KXtyZXR1cm4gbCh0KX0sYS5pc0J1ZmZlcj1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmITA9PT10Ll9pc0J1ZmZlciYmdCE9PWEucHJvdG90eXBlfSxhLmNvbXBhcmU9ZnVuY3Rpb24odCxlKXtpZihCKHQsVWludDhBcnJheSkmJih0PWEuZnJvbSh0LHQub2Zmc2V0LHQuYnl0ZUxlbmd0aCkpLEIoZSxVaW50OEFycmF5KSYmKGU9YS5mcm9tKGUsZS5vZmZzZXQsZS5ieXRlTGVuZ3RoKSksIWEuaXNCdWZmZXIodCl8fCFhLmlzQnVmZmVyKGUpKXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAiYnVmMSIsICJidWYyIiBhcmd1bWVudHMgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheScpO2lmKHQ9PT1lKXJldHVybiAwO2Zvcih2YXIgcj10Lmxlbmd0aCxuPWUubGVuZ3RoLGk9MCxvPU1hdGgubWluKHIsbik7aTxvOysraSlpZih0W2ldIT09ZVtpXSl7cj10W2ldLG49ZVtpXTticmVha31yZXR1cm4gcjxuPy0xOm48cj8xOjB9LGEuaXNFbmNvZGluZz1mdW5jdGlvbih0KXtzd2l0Y2goU3RyaW5nKHQpLnRvTG93ZXJDYXNlKCkpe2Nhc2UiaGV4IjpjYXNlInV0ZjgiOmNhc2UidXRmLTgiOmNhc2UiYXNjaWkiOmNhc2UibGF0aW4xIjpjYXNlImJpbmFyeSI6Y2FzZSJiYXNlNjQiOmNhc2UidWNzMiI6Y2FzZSJ1Y3MtMiI6Y2FzZSJ1dGYxNmxlIjpjYXNlInV0Zi0xNmxlIjpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX0sYS5jb25jYXQ9ZnVuY3Rpb24odCxlKXtpZighQXJyYXkuaXNBcnJheSh0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCcibGlzdCIgYXJndW1lbnQgbXVzdCBiZSBhbiBBcnJheSBvZiBCdWZmZXJzJyk7aWYoMD09PXQubGVuZ3RoKXJldHVybiBhLmFsbG9jKDApO3ZhciByO2lmKHZvaWQgMD09PWUpZm9yKGU9MCxyPTA7cjx0Lmxlbmd0aDsrK3IpZSs9dFtyXS5sZW5ndGg7dmFyIG49YS5hbGxvY1Vuc2FmZShlKSxpPTA7Zm9yKHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG89dFtyXTtpZihCKG8sVWludDhBcnJheSkmJihvPWEuZnJvbShvKSksIWEuaXNCdWZmZXIobykpdGhyb3cgbmV3IFR5cGVFcnJvcignImxpc3QiIGFyZ3VtZW50IG11c3QgYmUgYW4gQXJyYXkgb2YgQnVmZmVycycpO28uY29weShuLGkpLGkrPW8ubGVuZ3RofXJldHVybiBufSxhLmJ5dGVMZW5ndGg9ZixhLnByb3RvdHlwZS5faXNCdWZmZXI9ITAsYS5wcm90b3R5cGUuc3dhcDE2PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCUyIT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMTYtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz0yKXAodGhpcyxlLGUrMSk7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLnN3YXAzMj1mdW5jdGlvbigpe3ZhciB0PXRoaXMubGVuZ3RoO2lmKHQlNCE9MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiQnVmZmVyIHNpemUgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMyLWJpdHMiKTtmb3IodmFyIGU9MDtlPHQ7ZSs9NClwKHRoaXMsZSxlKzMpLHAodGhpcyxlKzEsZSsyKTtyZXR1cm4gdGhpc30sYS5wcm90b3R5cGUuc3dhcDY0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7aWYodCU4IT0wKXRocm93IG5ldyBSYW5nZUVycm9yKCJCdWZmZXIgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNjQtYml0cyIpO2Zvcih2YXIgZT0wO2U8dDtlKz04KXAodGhpcyxlLGUrNykscCh0aGlzLGUrMSxlKzYpLHAodGhpcyxlKzIsZSs1KSxwKHRoaXMsZSszLGUrNCk7cmV0dXJuIHRoaXN9LGEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5sZW5ndGg7cmV0dXJuIDA9PT10PyIiOjA9PT1hcmd1bWVudHMubGVuZ3RoP1QodGhpcywwLHQpOmguYXBwbHkodGhpcyxhcmd1bWVudHMpfSxhLnByb3RvdHlwZS50b0xvY2FsZVN0cmluZz1hLnByb3RvdHlwZS50b1N0cmluZyxhLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7aWYoIWEuaXNCdWZmZXIodCkpdGhyb3cgbmV3IFR5cGVFcnJvcigiQXJndW1lbnQgbXVzdCBiZSBhIEJ1ZmZlciIpO3JldHVybiB0aGlzPT09dHx8MD09PWEuY29tcGFyZSh0aGlzLHQpfSxhLnByb3RvdHlwZS5pbnNwZWN0PWZ1bmN0aW9uKCl7dmFyIHQ9IiIsZT1yLklOU1BFQ1RfTUFYX0JZVEVTO3JldHVybiB0PXRoaXMudG9TdHJpbmcoImhleCIsMCxlKS5yZXBsYWNlKC8oLnsyfSkvZywiJDEgIikudHJpbSgpLHRoaXMubGVuZ3RoPmUmJih0Kz0iIC4uLiAiKSwiPEJ1ZmZlciAiK3QrIj4ifSxhLnByb3RvdHlwZS5jb21wYXJlPWZ1bmN0aW9uKHQsZSxyLG4saSl7aWYoQih0LFVpbnQ4QXJyYXkpJiYodD1hLmZyb20odCx0Lm9mZnNldCx0LmJ5dGVMZW5ndGgpKSwhYS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgInRhcmdldCIgYXJndW1lbnQgbXVzdCBiZSBvbmUgb2YgdHlwZSBCdWZmZXIgb3IgVWludDhBcnJheS4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiB0KTtpZih2b2lkIDA9PT1lJiYoZT0wKSx2b2lkIDA9PT1yJiYocj10P3QubGVuZ3RoOjApLHZvaWQgMD09PW4mJihuPTApLHZvaWQgMD09PWkmJihpPXRoaXMubGVuZ3RoKSxlPDB8fHI+dC5sZW5ndGh8fG48MHx8aT50aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib3V0IG9mIHJhbmdlIGluZGV4Iik7aWYobj49aSYmZT49cilyZXR1cm4gMDtpZihuPj1pKXJldHVybi0xO2lmKGU+PXIpcmV0dXJuIDE7aWYodGhpcz09PXQpcmV0dXJuIDA7Zm9yKHZhciBvPShpPj4+PTApLShuPj4+PTApLHM9KHI+Pj49MCktKGU+Pj49MCksbD1NYXRoLm1pbihvLHMpLGM9dGhpcy5zbGljZShuLGkpLHU9dC5zbGljZShlLHIpLGY9MDtmPGw7KytmKWlmKGNbZl0hPT11W2ZdKXtvPWNbZl0scz11W2ZdO2JyZWFrfXJldHVybiBvPHM/LTE6czxvPzE6MH0sYS5wcm90b3R5cGUuaW5jbHVkZXM9ZnVuY3Rpb24odCxlLHIpe3JldHVybi0xIT09dGhpcy5pbmRleE9mKHQsZSxyKX0sYS5wcm90b3R5cGUuaW5kZXhPZj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGQodGhpcyx0LGUsciwhMCl9LGEucHJvdG90eXBlLmxhc3RJbmRleE9mPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZCh0aGlzLHQsZSxyLCExKX0sYS5wcm90b3R5cGUud3JpdGU9ZnVuY3Rpb24odCxlLHIsbil7aWYodm9pZCAwPT09ZSluPSJ1dGY4IixyPXRoaXMubGVuZ3RoLGU9MDtlbHNlIGlmKHZvaWQgMD09PXImJiJzdHJpbmciPT10eXBlb2YgZSluPWUscj10aGlzLmxlbmd0aCxlPTA7ZWxzZXtpZighaXNGaW5pdGUoZSkpdGhyb3cgbmV3IEVycm9yKCJCdWZmZXIud3JpdGUoc3RyaW5nLCBlbmNvZGluZywgb2Zmc2V0WywgbGVuZ3RoXSkgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZCIpO2U+Pj49MCxpc0Zpbml0ZShyKT8ocj4+Pj0wLHZvaWQgMD09PW4mJihuPSJ1dGY4IikpOihuPXIscj12b2lkIDApfXZhciBpPXRoaXMubGVuZ3RoLWU7aWYoKHZvaWQgMD09PXJ8fHI+aSkmJihyPWkpLHQubGVuZ3RoPjAmJihyPDB8fGU8MCl8fGU+dGhpcy5sZW5ndGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkF0dGVtcHQgdG8gd3JpdGUgb3V0c2lkZSBidWZmZXIgYm91bmRzIik7bnx8KG49InV0ZjgiKTtmb3IodmFyIGE9ITE7Oylzd2l0Y2gobil7Y2FzZSJoZXgiOnJldHVybiBnKHRoaXMsdCxlLHIpO2Nhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6cmV0dXJuIHYodGhpcyx0LGUscik7Y2FzZSJhc2NpaSI6cmV0dXJuIHkodGhpcyx0LGUscik7Y2FzZSJsYXRpbjEiOmNhc2UiYmluYXJ5IjpyZXR1cm4geCh0aGlzLHQsZSxyKTtjYXNlImJhc2U2NCI6cmV0dXJuIGIodGhpcyx0LGUscik7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiBfKHRoaXMsdCxlLHIpO2RlZmF1bHQ6aWYoYSl0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK24pO249KCIiK24pLnRvTG93ZXJDYXNlKCksYT0hMH19LGEucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3JldHVybnt0eXBlOiJCdWZmZXIiLGRhdGE6QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodGhpcy5fYXJyfHx0aGlzLDApfX07ZnVuY3Rpb24gayh0LGUscil7dmFyIG49IiI7cj1NYXRoLm1pbih0Lmxlbmd0aCxyKTtmb3IodmFyIGk9ZTtpPHI7KytpKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUoMTI3JnRbaV0pO3JldHVybiBufWZ1bmN0aW9uIEEodCxlLHIpe3ZhciBuPSIiO3I9TWF0aC5taW4odC5sZW5ndGgscik7Zm9yKHZhciBpPWU7aTxyOysraSluKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHRbaV0pO3JldHVybiBufWZ1bmN0aW9uIE0odCxlLHIpe3ZhciBuPXQubGVuZ3RoOyghZXx8ZTwwKSYmKGU9MCksKCFyfHxyPDB8fHI+bikmJihyPW4pO2Zvcih2YXIgaT0iIixhPWU7YTxyOysrYSlpKz16KHRbYV0pO3JldHVybiBpfWZ1bmN0aW9uIFModCxlLHIpe2Zvcih2YXIgbj10LnNsaWNlKGUsciksaT0iIixhPTA7YTxuLmxlbmd0aDthKz0yKWkrPVN0cmluZy5mcm9tQ2hhckNvZGUoblthXSsyNTYqblthKzFdKTtyZXR1cm4gaX1mdW5jdGlvbiBFKHQsZSxyKXtpZih0JTEhPTB8fHQ8MCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigib2Zmc2V0IGlzIG5vdCB1aW50Iik7aWYodCtlPnIpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIlRyeWluZyB0byBhY2Nlc3MgYmV5b25kIGJ1ZmZlciBsZW5ndGgiKX1mdW5jdGlvbiBMKHQsZSxyLG4saSxvKXtpZighYS5pc0J1ZmZlcih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKCciYnVmZmVyIiBhcmd1bWVudCBtdXN0IGJlIGEgQnVmZmVyIGluc3RhbmNlJyk7aWYoZT5pfHxlPG8pdGhyb3cgbmV3IFJhbmdlRXJyb3IoJyJ2YWx1ZSIgYXJndW1lbnQgaXMgb3V0IG9mIGJvdW5kcycpO2lmKHIrbj50Lmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIil9ZnVuY3Rpb24gQyh0LGUscixuLGksYSl7aWYocituPnQubGVuZ3RoKXRocm93IG5ldyBSYW5nZUVycm9yKCJJbmRleCBvdXQgb2YgcmFuZ2UiKTtpZihyPDApdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkluZGV4IG91dCBvZiByYW5nZSIpfWZ1bmN0aW9uIFAodCxlLHIsaSxhKXtyZXR1cm4gZT0rZSxyPj4+PTAsYXx8Qyh0LDAsciw0KSxuLndyaXRlKHQsZSxyLGksMjMsNCkscis0fWZ1bmN0aW9uIEkodCxlLHIsaSxhKXtyZXR1cm4gZT0rZSxyPj4+PTAsYXx8Qyh0LDAsciw4KSxuLndyaXRlKHQsZSxyLGksNTIsOCkscis4fWEucHJvdG90eXBlLnNsaWNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sZW5ndGg7KHQ9fn50KTwwPyh0Kz1yKTwwJiYodD0wKTp0PnImJih0PXIpLChlPXZvaWQgMD09PWU/cjp+fmUpPDA/KGUrPXIpPDAmJihlPTApOmU+ciYmKGU9ciksZTx0JiYoZT10KTt2YXIgbj10aGlzLnN1YmFycmF5KHQsZSk7cmV0dXJuIG4uX19wcm90b19fPWEucHJvdG90eXBlLG59LGEucHJvdG90eXBlLnJlYWRVSW50TEU9ZnVuY3Rpb24odCxlLHIpe3Q+Pj49MCxlPj4+PTAscnx8RSh0LGUsdGhpcy5sZW5ndGgpO2Zvcih2YXIgbj10aGlzW3RdLGk9MSxhPTA7KythPGUmJihpKj0yNTYpOyluKz10aGlzW3QrYV0qaTtyZXR1cm4gbn0sYS5wcm90b3R5cGUucmVhZFVJbnRCRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxFKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdCstLWVdLGk9MTtlPjAmJihpKj0yNTYpOyluKz10aGlzW3QrLS1lXSppO3JldHVybiBufSxhLnByb3RvdHlwZS5yZWFkVUludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCwxLHRoaXMubGVuZ3RoKSx0aGlzW3RdfSxhLnByb3RvdHlwZS5yZWFkVUludDE2TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCwyLHRoaXMubGVuZ3RoKSx0aGlzW3RdfHRoaXNbdCsxXTw8OH0sYS5wcm90b3R5cGUucmVhZFVJbnQxNkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsMix0aGlzLmxlbmd0aCksdGhpc1t0XTw8OHx0aGlzW3QrMV19LGEucHJvdG90eXBlLnJlYWRVSW50MzJMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLCh0aGlzW3RdfHRoaXNbdCsxXTw8OHx0aGlzW3QrMl08PDE2KSsxNjc3NzIxNip0aGlzW3QrM119LGEucHJvdG90eXBlLnJlYWRVSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLDE2Nzc3MjE2KnRoaXNbdF0rKHRoaXNbdCsxXTw8MTZ8dGhpc1t0KzJdPDw4fHRoaXNbdCszXSl9LGEucHJvdG90eXBlLnJlYWRJbnRMRT1mdW5jdGlvbih0LGUscil7dD4+Pj0wLGU+Pj49MCxyfHxFKHQsZSx0aGlzLmxlbmd0aCk7Zm9yKHZhciBuPXRoaXNbdF0saT0xLGE9MDsrK2E8ZSYmKGkqPTI1Nik7KW4rPXRoaXNbdCthXSppO3JldHVybiBuPj0oaSo9MTI4KSYmKG4tPU1hdGgucG93KDIsOCplKSksbn0sYS5wcm90b3R5cGUucmVhZEludEJFPWZ1bmN0aW9uKHQsZSxyKXt0Pj4+PTAsZT4+Pj0wLHJ8fEUodCxlLHRoaXMubGVuZ3RoKTtmb3IodmFyIG49ZSxpPTEsYT10aGlzW3QrLS1uXTtuPjAmJihpKj0yNTYpOylhKz10aGlzW3QrLS1uXSppO3JldHVybiBhPj0oaSo9MTI4KSYmKGEtPU1hdGgucG93KDIsOCplKSksYX0sYS5wcm90b3R5cGUucmVhZEludDg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCwxLHRoaXMubGVuZ3RoKSwxMjgmdGhpc1t0XT8tMSooMjU1LXRoaXNbdF0rMSk6dGhpc1t0XX0sYS5wcm90b3R5cGUucmVhZEludDE2TEU9ZnVuY3Rpb24odCxlKXt0Pj4+PTAsZXx8RSh0LDIsdGhpcy5sZW5ndGgpO3ZhciByPXRoaXNbdF18dGhpc1t0KzFdPDw4O3JldHVybiAzMjc2OCZyPzQyOTQ5MDE3NjB8cjpyfSxhLnByb3RvdHlwZS5yZWFkSW50MTZCRT1mdW5jdGlvbih0LGUpe3Q+Pj49MCxlfHxFKHQsMix0aGlzLmxlbmd0aCk7dmFyIHI9dGhpc1t0KzFdfHRoaXNbdF08PDg7cmV0dXJuIDMyNzY4JnI/NDI5NDkwMTc2MHxyOnJ9LGEucHJvdG90eXBlLnJlYWRJbnQzMkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ+Pj49MCxlfHxFKHQsNCx0aGlzLmxlbmd0aCksdGhpc1t0XXx0aGlzW3QrMV08PDh8dGhpc1t0KzJdPDwxNnx0aGlzW3QrM108PDI0fSxhLnByb3RvdHlwZS5yZWFkSW50MzJCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLHRoaXNbdF08PDI0fHRoaXNbdCsxXTw8MTZ8dGhpc1t0KzJdPDw4fHRoaXNbdCszXX0sYS5wcm90b3R5cGUucmVhZEZsb2F0TEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD4+Pj0wLGV8fEUodCw0LHRoaXMubGVuZ3RoKSxuLnJlYWQodGhpcyx0LCEwLDIzLDQpfSxhLnByb3RvdHlwZS5yZWFkRmxvYXRCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDQsdGhpcy5sZW5ndGgpLG4ucmVhZCh0aGlzLHQsITEsMjMsNCl9LGEucHJvdG90eXBlLnJlYWREb3VibGVMRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDgsdGhpcy5sZW5ndGgpLG4ucmVhZCh0aGlzLHQsITAsNTIsOCl9LGEucHJvdG90eXBlLnJlYWREb3VibGVCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0Pj4+PTAsZXx8RSh0LDgsdGhpcy5sZW5ndGgpLG4ucmVhZCh0aGlzLHQsITEsNTIsOCl9LGEucHJvdG90eXBlLndyaXRlVUludExFPWZ1bmN0aW9uKHQsZSxyLG4peyh0PSt0LGU+Pj49MCxyPj4+PTAsbil8fEwodGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKTt2YXIgaT0xLGE9MDtmb3IodGhpc1tlXT0yNTUmdDsrK2E8ciYmKGkqPTI1Nik7KXRoaXNbZSthXT10L2kmMjU1O3JldHVybiBlK3J9LGEucHJvdG90eXBlLndyaXRlVUludEJFPWZ1bmN0aW9uKHQsZSxyLG4peyh0PSt0LGU+Pj49MCxyPj4+PTAsbil8fEwodGhpcyx0LGUscixNYXRoLnBvdygyLDgqciktMSwwKTt2YXIgaT1yLTEsYT0xO2Zvcih0aGlzW2UraV09MjU1JnQ7LS1pPj0wJiYoYSo9MjU2KTspdGhpc1tlK2ldPXQvYSYyNTU7cmV0dXJuIGUrcn0sYS5wcm90b3R5cGUud3JpdGVVSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsMSwyNTUsMCksdGhpc1tlXT0yNTUmdCxlKzF9LGEucHJvdG90eXBlLndyaXRlVUludDE2TEU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDIsNjU1MzUsMCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsZSsyfSxhLnByb3RvdHlwZS53cml0ZVVJbnQxNkJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TCh0aGlzLHQsZSwyLDY1NTM1LDApLHRoaXNbZV09dD4+PjgsdGhpc1tlKzFdPTI1NSZ0LGUrMn0sYS5wcm90b3R5cGUud3JpdGVVSW50MzJMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsNCw0Mjk0OTY3Mjk1LDApLHRoaXNbZSszXT10Pj4+MjQsdGhpc1tlKzJdPXQ+Pj4xNix0aGlzW2UrMV09dD4+PjgsdGhpc1tlXT0yNTUmdCxlKzR9LGEucHJvdG90eXBlLndyaXRlVUludDMyQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDQsNDI5NDk2NzI5NSwwKSx0aGlzW2VdPXQ+Pj4yNCx0aGlzW2UrMV09dD4+PjE2LHRoaXNbZSsyXT10Pj4+OCx0aGlzW2UrM109MjU1JnQsZSs0fSxhLnByb3RvdHlwZS53cml0ZUludExFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtMKHRoaXMsdCxlLHIsaS0xLC1pKX12YXIgYT0wLG89MSxzPTA7Zm9yKHRoaXNbZV09MjU1JnQ7KythPHImJihvKj0yNTYpOyl0PDAmJjA9PT1zJiYwIT09dGhpc1tlK2EtMV0mJihzPTEpLHRoaXNbZSthXT0odC9vPj4wKS1zJjI1NTtyZXR1cm4gZStyfSxhLnByb3RvdHlwZS53cml0ZUludEJFPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQ9K3QsZT4+Pj0wLCFuKXt2YXIgaT1NYXRoLnBvdygyLDgqci0xKTtMKHRoaXMsdCxlLHIsaS0xLC1pKX12YXIgYT1yLTEsbz0xLHM9MDtmb3IodGhpc1tlK2FdPTI1NSZ0Oy0tYT49MCYmKG8qPTI1Nik7KXQ8MCYmMD09PXMmJjAhPT10aGlzW2UrYSsxXSYmKHM9MSksdGhpc1tlK2FdPSh0L28+PjApLXMmMjU1O3JldHVybiBlK3J9LGEucHJvdG90eXBlLndyaXRlSW50OD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsMSwxMjcsLTEyOCksdDwwJiYodD0yNTUrdCsxKSx0aGlzW2VdPTI1NSZ0LGUrMX0sYS5wcm90b3R5cGUud3JpdGVJbnQxNkxFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdD0rdCxlPj4+PTAscnx8TCh0aGlzLHQsZSwyLDMyNzY3LC0zMjc2OCksdGhpc1tlXT0yNTUmdCx0aGlzW2UrMV09dD4+PjgsZSsyfSxhLnByb3RvdHlwZS53cml0ZUludDE2QkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDIsMzI3NjcsLTMyNzY4KSx0aGlzW2VdPXQ+Pj44LHRoaXNbZSsxXT0yNTUmdCxlKzJ9LGEucHJvdG90eXBlLndyaXRlSW50MzJMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHQ9K3QsZT4+Pj0wLHJ8fEwodGhpcyx0LGUsNCwyMTQ3NDgzNjQ3LC0yMTQ3NDgzNjQ4KSx0aGlzW2VdPTI1NSZ0LHRoaXNbZSsxXT10Pj4+OCx0aGlzW2UrMl09dD4+PjE2LHRoaXNbZSszXT10Pj4+MjQsZSs0fSxhLnByb3RvdHlwZS53cml0ZUludDMyQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PSt0LGU+Pj49MCxyfHxMKHRoaXMsdCxlLDQsMjE0NzQ4MzY0NywtMjE0NzQ4MzY0OCksdDwwJiYodD00Mjk0OTY3Mjk1K3QrMSksdGhpc1tlXT10Pj4+MjQsdGhpc1tlKzFdPXQ+Pj4xNix0aGlzW2UrMl09dD4+PjgsdGhpc1tlKzNdPTI1NSZ0LGUrNH0sYS5wcm90b3R5cGUud3JpdGVGbG9hdExFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUCh0aGlzLHQsZSwhMCxyKX0sYS5wcm90b3R5cGUud3JpdGVGbG9hdEJFPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gUCh0aGlzLHQsZSwhMSxyKX0sYS5wcm90b3R5cGUud3JpdGVEb3VibGVMRT1mdW5jdGlvbih0LGUscil7cmV0dXJuIEkodGhpcyx0LGUsITAscil9LGEucHJvdG90eXBlLndyaXRlRG91YmxlQkU9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBJKHRoaXMsdCxlLCExLHIpfSxhLnByb3RvdHlwZS5jb3B5PWZ1bmN0aW9uKHQsZSxyLG4pe2lmKCFhLmlzQnVmZmVyKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoImFyZ3VtZW50IHNob3VsZCBiZSBhIEJ1ZmZlciIpO2lmKHJ8fChyPTApLG58fDA9PT1ufHwobj10aGlzLmxlbmd0aCksZT49dC5sZW5ndGgmJihlPXQubGVuZ3RoKSxlfHwoZT0wKSxuPjAmJm48ciYmKG49ciksbj09PXIpcmV0dXJuIDA7aWYoMD09PXQubGVuZ3RofHwwPT09dGhpcy5sZW5ndGgpcmV0dXJuIDA7aWYoZTwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJ0YXJnZXRTdGFydCBvdXQgb2YgYm91bmRzIik7aWYocjwwfHxyPj10aGlzLmxlbmd0aCl0aHJvdyBuZXcgUmFuZ2VFcnJvcigiSW5kZXggb3V0IG9mIHJhbmdlIik7aWYobjwwKXRocm93IG5ldyBSYW5nZUVycm9yKCJzb3VyY2VFbmQgb3V0IG9mIGJvdW5kcyIpO24+dGhpcy5sZW5ndGgmJihuPXRoaXMubGVuZ3RoKSx0Lmxlbmd0aC1lPG4tciYmKG49dC5sZW5ndGgtZStyKTt2YXIgaT1uLXI7aWYodGhpcz09PXQmJiJmdW5jdGlvbiI9PXR5cGVvZiBVaW50OEFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluKXRoaXMuY29weVdpdGhpbihlLHIsbik7ZWxzZSBpZih0aGlzPT09dCYmcjxlJiZlPG4pZm9yKHZhciBvPWktMTtvPj0wOy0tbyl0W28rZV09dGhpc1tvK3JdO2Vsc2UgVWludDhBcnJheS5wcm90b3R5cGUuc2V0LmNhbGwodCx0aGlzLnN1YmFycmF5KHIsbiksZSk7cmV0dXJuIGl9LGEucHJvdG90eXBlLmZpbGw9ZnVuY3Rpb24odCxlLHIsbil7aWYoInN0cmluZyI9PXR5cGVvZiB0KXtpZigic3RyaW5nIj09dHlwZW9mIGU/KG49ZSxlPTAscj10aGlzLmxlbmd0aCk6InN0cmluZyI9PXR5cGVvZiByJiYobj1yLHI9dGhpcy5sZW5ndGgpLHZvaWQgMCE9PW4mJiJzdHJpbmciIT10eXBlb2Ygbil0aHJvdyBuZXcgVHlwZUVycm9yKCJlbmNvZGluZyBtdXN0IGJlIGEgc3RyaW5nIik7aWYoInN0cmluZyI9PXR5cGVvZiBuJiYhYS5pc0VuY29kaW5nKG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gZW5jb2Rpbmc6ICIrbik7aWYoMT09PXQubGVuZ3RoKXt2YXIgaT10LmNoYXJDb2RlQXQoMCk7KCJ1dGY4Ij09PW4mJmk8MTI4fHwibGF0aW4xIj09PW4pJiYodD1pKX19ZWxzZSJudW1iZXIiPT10eXBlb2YgdCYmKHQmPTI1NSk7aWYoZTwwfHx0aGlzLmxlbmd0aDxlfHx0aGlzLmxlbmd0aDxyKXRocm93IG5ldyBSYW5nZUVycm9yKCJPdXQgb2YgcmFuZ2UgaW5kZXgiKTtpZihyPD1lKXJldHVybiB0aGlzO3ZhciBvO2lmKGU+Pj49MCxyPXZvaWQgMD09PXI/dGhpcy5sZW5ndGg6cj4+PjAsdHx8KHQ9MCksIm51bWJlciI9PXR5cGVvZiB0KWZvcihvPWU7bzxyOysrbyl0aGlzW29dPXQ7ZWxzZXt2YXIgcz1hLmlzQnVmZmVyKHQpP3Q6YS5mcm9tKHQsbiksbD1zLmxlbmd0aDtpZigwPT09bCl0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgdmFsdWUgIicrdCsnIiBpcyBpbnZhbGlkIGZvciBhcmd1bWVudCAidmFsdWUiJyk7Zm9yKG89MDtvPHItZTsrK28pdGhpc1tvK2VdPXNbbyVsXX1yZXR1cm4gdGhpc307dmFyIE89L1teKy8wLTlBLVphLXotX10vZztmdW5jdGlvbiB6KHQpe3JldHVybiB0PDE2PyIwIit0LnRvU3RyaW5nKDE2KTp0LnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBEKHQsZSl7dmFyIHI7ZT1lfHwxLzA7Zm9yKHZhciBuPXQubGVuZ3RoLGk9bnVsbCxhPVtdLG89MDtvPG47KytvKXtpZigocj10LmNoYXJDb2RlQXQobykpPjU1Mjk1JiZyPDU3MzQ0KXtpZighaSl7aWYocj41NjMxOSl7KGUtPTMpPi0xJiZhLnB1c2goMjM5LDE5MSwxODkpO2NvbnRpbnVlfWlmKG8rMT09PW4peyhlLT0zKT4tMSYmYS5wdXNoKDIzOSwxOTEsMTg5KTtjb250aW51ZX1pPXI7Y29udGludWV9aWYocjw1NjMyMCl7KGUtPTMpPi0xJiZhLnB1c2goMjM5LDE5MSwxODkpLGk9cjtjb250aW51ZX1yPTY1NTM2KyhpLTU1Mjk2PDwxMHxyLTU2MzIwKX1lbHNlIGkmJihlLT0zKT4tMSYmYS5wdXNoKDIzOSwxOTEsMTg5KTtpZihpPW51bGwscjwxMjgpe2lmKChlLT0xKTwwKWJyZWFrO2EucHVzaChyKX1lbHNlIGlmKHI8MjA0OCl7aWYoKGUtPTIpPDApYnJlYWs7YS5wdXNoKHI+PjZ8MTkyLDYzJnJ8MTI4KX1lbHNlIGlmKHI8NjU1MzYpe2lmKChlLT0zKTwwKWJyZWFrO2EucHVzaChyPj4xMnwyMjQscj4+NiY2M3wxMjgsNjMmcnwxMjgpfWVsc2V7aWYoIShyPDExMTQxMTIpKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBjb2RlIHBvaW50Iik7aWYoKGUtPTQpPDApYnJlYWs7YS5wdXNoKHI+PjE4fDI0MCxyPj4xMiY2M3wxMjgscj4+NiY2M3wxMjgsNjMmcnwxMjgpfX1yZXR1cm4gYX1mdW5jdGlvbiBSKHQpe3JldHVybiBlLnRvQnl0ZUFycmF5KGZ1bmN0aW9uKHQpe2lmKCh0PSh0PXQuc3BsaXQoIj0iKVswXSkudHJpbSgpLnJlcGxhY2UoTywiIikpLmxlbmd0aDwyKXJldHVybiIiO2Zvcig7dC5sZW5ndGglNCE9MDspdCs9Ij0iO3JldHVybiB0fSh0KSl9ZnVuY3Rpb24gRih0LGUscixuKXtmb3IodmFyIGk9MDtpPG4mJiEoaStyPj1lLmxlbmd0aHx8aT49dC5sZW5ndGgpOysraSllW2krcl09dFtpXTtyZXR1cm4gaX1mdW5jdGlvbiBCKHQsZSl7cmV0dXJuIHQgaW5zdGFuY2VvZiBlfHxudWxsIT10JiZudWxsIT10LmNvbnN0cnVjdG9yJiZudWxsIT10LmNvbnN0cnVjdG9yLm5hbWUmJnQuY29uc3RydWN0b3IubmFtZT09PWUubmFtZX1mdW5jdGlvbiBOKHQpe3JldHVybiB0IT10fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiYnVmZmVyIikuQnVmZmVyKX0seyJiYXNlNjQtanMiOjgyLGJ1ZmZlcjoxMTIsaWVlZTc1NDo0Mjd9XSwxMTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvbW9ub3RvbmUiKSxpPXQoIi4vbGliL3RyaWFuZ3VsYXRpb24iKSxhPXQoIi4vbGliL2RlbGF1bmF5Iiksbz10KCIuL2xpYi9maWx0ZXIiKTtmdW5jdGlvbiBzKHQpe3JldHVybltNYXRoLm1pbih0WzBdLHRbMV0pLE1hdGgubWF4KHRbMF0sdFsxXSldfWZ1bmN0aW9uIGwodCxlKXtyZXR1cm4gdFswXS1lWzBdfHx0WzFdLWVbMV19ZnVuY3Rpb24gYyh0LGUscil7cmV0dXJuIGUgaW4gdD90W2VdOnJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtBcnJheS5pc0FycmF5KGUpPyhyPXJ8fHt9LGU9ZXx8W10pOihyPWV8fHt9LGU9W10pO3ZhciB1PSEhYyhyLCJkZWxhdW5heSIsITApLGY9ISFjKHIsImludGVyaW9yIiwhMCksaD0hIWMociwiZXh0ZXJpb3IiLCEwKSxwPSEhYyhyLCJpbmZpbml0eSIsITEpO2lmKCFmJiYhaHx8MD09PXQubGVuZ3RoKXJldHVybltdO3ZhciBkPW4odCxlKTtpZih1fHxmIT09aHx8cCl7Zm9yKHZhciBtPWkodC5sZW5ndGgsZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKHMpLnNvcnQobCl9KGUpKSxnPTA7ZzxkLmxlbmd0aDsrK2cpe3ZhciB2PWRbZ107bS5hZGRUcmlhbmdsZSh2WzBdLHZbMV0sdlsyXSl9cmV0dXJuIHUmJmEodCxtKSxoP2Y/cD9vKG0sMCxwKTptLmNlbGxzKCk6byhtLDEscCk6byhtLC0xKX1yZXR1cm4gZH19LHsiLi9saWIvZGVsYXVuYXkiOjExNCwiLi9saWIvZmlsdGVyIjoxMTUsIi4vbGliL21vbm90b25lIjoxMTYsIi4vbGliL3RyaWFuZ3VsYXRpb24iOjExN31dLDExNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyb2J1c3QtaW4tc3BoZXJlIilbNF07dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtmdW5jdGlvbiBpKHQsZSxyLGksYSxvKXt2YXIgcz1lLm9wcG9zaXRlKGksYSk7aWYoIShzPDApKXtpZihhPGkpe3ZhciBsPWk7aT1hLGE9bCxsPW8sbz1zLHM9bH1lLmlzQ29uc3RyYWludChpLGEpfHxuKHRbaV0sdFthXSx0W29dLHRbc10pPDAmJnIucHVzaChpLGEpfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sYT10Lmxlbmd0aCxvPWUuc3RhcnMscz0wO3M8YTsrK3MpZm9yKHZhciBsPW9bc10sYz0xO2M8bC5sZW5ndGg7Yys9Mil7aWYoISgocD1sW2NdKTxzKSYmIWUuaXNDb25zdHJhaW50KHMscCkpe2Zvcih2YXIgdT1sW2MtMV0sZj0tMSxoPTE7aDxsLmxlbmd0aDtoKz0yKWlmKGxbaC0xXT09PXApe2Y9bFtoXTticmVha31mPDB8fG4odFtzXSx0W3BdLHRbdV0sdFtmXSk8MCYmci5wdXNoKHMscCl9fWZvcig7ci5sZW5ndGg+MDspe2Zvcih2YXIgcD1yLnBvcCgpLGQ9KHM9ci5wb3AoKSx1PS0xLGY9LTEsbD1vW3NdLDEpO2Q8bC5sZW5ndGg7ZCs9Mil7dmFyIG09bFtkLTFdLGc9bFtkXTttPT09cD9mPWc6Zz09PXAmJih1PW0pfXU8MHx8ZjwwfHwobih0W3NdLHRbcF0sdFt1XSx0W2ZdKT49MHx8KGUuZmxpcChzLHApLGkodCxlLHIsdSxzLGYpLGkodCxlLHIscyxmLHUpLGkodCxlLHIsZixwLHUpLGkodCxlLHIscCx1LGYpKSl9fX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTAwLCJyb2J1c3QtaW4tc3BoZXJlIjo1MjJ9XSwxMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpO2Z1bmN0aW9uIGEodCxlLHIsbixpLGEsbyl7dGhpcy5jZWxscz10LHRoaXMubmVpZ2hib3I9ZSx0aGlzLmZsYWdzPW4sdGhpcy5jb25zdHJhaW50PXIsdGhpcy5hY3RpdmU9aSx0aGlzLm5leHQ9YSx0aGlzLmJvdW5kYXJ5PW99ZnVuY3Rpb24gbyh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXXx8dFsyXS1lWzJdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jZWxscygpLG49ci5sZW5ndGgsaT0wO2k8bjsrK2kpe3ZhciBzPSh2PXJbaV0pWzBdLGw9dlsxXSxjPXZbMl07bDxjP2w8cyYmKHZbMF09bCx2WzFdPWMsdlsyXT1zKTpjPHMmJih2WzBdPWMsdlsxXT1zLHZbMl09bCl9ci5zb3J0KG8pO3ZhciB1PW5ldyBBcnJheShuKTtmb3IoaT0wO2k8dS5sZW5ndGg7KytpKXVbaV09MDt2YXIgZj1bXSxoPVtdLHA9bmV3IEFycmF5KDMqbiksZD1uZXcgQXJyYXkoMypuKSxtPW51bGw7ZSYmKG09W10pO3ZhciBnPW5ldyBhKHIscCxkLHUsZixoLG0pO2ZvcihpPTA7aTxuOysraSlmb3IodmFyIHY9cltpXSx5PTA7eTwzOysreSl7cz12W3ldLGw9dlsoeSsxKSUzXTt2YXIgeD1wWzMqaSt5XT1nLmxvY2F0ZShsLHMsdC5vcHBvc2l0ZShsLHMpKSxiPWRbMyppK3ldPXQuaXNDb25zdHJhaW50KHMsbCk7eDwwJiYoYj9oLnB1c2goaSk6KGYucHVzaChpKSx1W2ldPTEpLGUmJm0ucHVzaChbbCxzLC0xXSkpfXJldHVybiBnfSh0LHIpO2lmKDA9PT1lKXJldHVybiByP24uY2VsbHMuY29uY2F0KG4uYm91bmRhcnkpOm4uY2VsbHM7dmFyIGk9MSxzPW4uYWN0aXZlLGw9bi5uZXh0LGM9bi5mbGFncyx1PW4uY2VsbHMsZj1uLmNvbnN0cmFpbnQsaD1uLm5laWdoYm9yO2Zvcig7cy5sZW5ndGg+MHx8bC5sZW5ndGg+MDspe2Zvcig7cy5sZW5ndGg+MDspe3ZhciBwPXMucG9wKCk7aWYoY1twXSE9PS1pKXtjW3BdPWk7dVtwXTtmb3IodmFyIGQ9MDtkPDM7KytkKXt2YXIgbT1oWzMqcCtkXTttPj0wJiYwPT09Y1ttXSYmKGZbMypwK2RdP2wucHVzaChtKToocy5wdXNoKG0pLGNbbV09aSkpfX19dmFyIGc9bDtsPXMscz1nLGwubGVuZ3RoPTAsaT0taX12YXIgdj1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTAsaT0wO2k8dC5sZW5ndGg7KytpKWVbaV09PT1yJiYodFtuKytdPXRbaV0pO3JldHVybiB0Lmxlbmd0aD1uLHR9KHUsYyxlKTtpZihyKXJldHVybiB2LmNvbmNhdChuLmJvdW5kYXJ5KTtyZXR1cm4gdn0sYS5wcm90b3R5cGUubG9jYXRlPShuPVswLDAsMF0sZnVuY3Rpb24odCxlLHIpe3ZhciBhPXQscz1lLGw9cjtyZXR1cm4gZTxyP2U8dCYmKGE9ZSxzPXIsbD10KTpyPHQmJihhPXIscz10LGw9ZSksYTwwPy0xOihuWzBdPWEsblsxXT1zLG5bMl09bCxpLmVxKHRoaXMuY2VsbHMsbixvKSl9KX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTAwfV0sMTE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksaT10KCJyb2J1c3Qtb3JpZW50YXRpb24iKVszXTtmdW5jdGlvbiBhKHQsZSxyLG4saSl7dGhpcy5hPXQsdGhpcy5iPWUsdGhpcy5pZHg9cix0aGlzLmxvd2VySWRzPW4sdGhpcy51cHBlcklkcz1pfWZ1bmN0aW9uIG8odCxlLHIsbil7dGhpcy5hPXQsdGhpcy5iPWUsdGhpcy50eXBlPXIsdGhpcy5pZHg9bn1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9dC5hWzBdLWUuYVswXXx8dC5hWzFdLWUuYVsxXXx8dC50eXBlLWUudHlwZTtyZXR1cm4gcnx8KDAhPT10LnR5cGUmJihyPWkodC5hLHQuYixlLmIpKT9yOnQuaWR4LWUuaWR4KX1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuIGkodC5hLHQuYixlKX1mdW5jdGlvbiBjKHQsZSxyLGEsbyl7Zm9yKHZhciBzPW4ubHQoZSxhLGwpLGM9bi5ndChlLGEsbCksdT1zO3U8YzsrK3Upe2Zvcih2YXIgZj1lW3VdLGg9Zi5sb3dlcklkcyxwPWgubGVuZ3RoO3A+MSYmaShyW2hbcC0yXV0scltoW3AtMV1dLGEpPjA7KXQucHVzaChbaFtwLTFdLGhbcC0yXSxvXSkscC09MTtoLmxlbmd0aD1wLGgucHVzaChvKTt2YXIgZD1mLnVwcGVySWRzO2ZvcihwPWQubGVuZ3RoO3A+MSYmaShyW2RbcC0yXV0scltkW3AtMV1dLGEpPDA7KXQucHVzaChbZFtwLTJdLGRbcC0xXSxvXSkscC09MTtkLmxlbmd0aD1wLGQucHVzaChvKX19ZnVuY3Rpb24gdSh0LGUpe3ZhciByO3JldHVybihyPXQuYVswXTxlLmFbMF0/aSh0LmEsdC5iLGUuYSk6aShlLmIsZS5hLHQuYSkpP3I6KHI9ZS5iWzBdPHQuYlswXT9pKHQuYSx0LmIsZS5iKTppKGUuYixlLmEsdC5iKSl8fHQuaWR4LWUuaWR4fWZ1bmN0aW9uIGYodCxlLHIpe3ZhciBpPW4ubGUodCxyLHUpLG89dFtpXSxzPW8udXBwZXJJZHMsbD1zW3MubGVuZ3RoLTFdO28udXBwZXJJZHM9W2xdLHQuc3BsaWNlKGkrMSwwLG5ldyBhKHIuYSxyLmIsci5pZHgsW2xdLHMpKX1mdW5jdGlvbiBoKHQsZSxyKXt2YXIgaT1yLmE7ci5hPXIuYixyLmI9aTt2YXIgYT1uLmVxKHQscix1KSxvPXRbYV07dFthLTFdLnVwcGVySWRzPW8udXBwZXJJZHMsdC5zcGxpY2UoYSwxKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1lLmxlbmd0aCxpPVtdLGw9MDtsPHI7KytsKWkucHVzaChuZXcgbyh0W2xdLG51bGwsMCxsKSk7Zm9yKGw9MDtsPG47KytsKXt2YXIgdT1lW2xdLHA9dFt1WzBdXSxkPXRbdVsxXV07cFswXTxkWzBdP2kucHVzaChuZXcgbyhwLGQsMixsKSxuZXcgbyhkLHAsMSxsKSk6cFswXT5kWzBdJiZpLnB1c2gobmV3IG8oZCxwLDIsbCksbmV3IG8ocCxkLDEsbCkpfWkuc29ydChzKTtmb3IodmFyIG09aVswXS5hWzBdLSgxK01hdGguYWJzKGlbMF0uYVswXSkpKk1hdGgucG93KDIsLTUyKSxnPVtuZXcgYShbbSwxXSxbbSwwXSwtMSxbXSxbXSxbXSxbXSldLHY9W10seT0obD0wLGkubGVuZ3RoKTtsPHk7KytsKXt2YXIgeD1pW2xdLGI9eC50eXBlOzA9PT1iP2ModixnLHQseC5hLHguaWR4KToyPT09Yj9mKGcsdCx4KTpoKGcsdCx4KX1yZXR1cm4gdn19LHsiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjEwMCwicm9idXN0LW9yaWVudGF0aW9uIjo1MjR9XSwxMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKTtmdW5jdGlvbiBpKHQsZSl7dGhpcy5zdGFycz10LHRoaXMuZWRnZXM9ZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQpLG49MDtuPHQ7KytuKXJbbl09W107cmV0dXJuIG5ldyBpKHIsZSl9O3ZhciBhPWkucHJvdG90eXBlO2Z1bmN0aW9uIG8odCxlLHIpe2Zvcih2YXIgbj0xLGk9dC5sZW5ndGg7bjxpO24rPTIpaWYodFtuLTFdPT09ZSYmdFtuXT09PXIpcmV0dXJuIHRbbi0xXT10W2ktMl0sdFtuXT10W2ktMV0sdm9pZCh0Lmxlbmd0aD1pLTIpfWEuaXNDb25zdHJhaW50PWZ1bmN0aW9uKCl7dmFyIHQ9WzAsMF07ZnVuY3Rpb24gZSh0LGUpe3JldHVybiB0WzBdLWVbMF18fHRbMV0tZVsxXX1yZXR1cm4gZnVuY3Rpb24ocixpKXtyZXR1cm4gdFswXT1NYXRoLm1pbihyLGkpLHRbMV09TWF0aC5tYXgocixpKSxuLmVxKHRoaXMuZWRnZXMsdCxlKT49MH19KCksYS5yZW1vdmVUcmlhbmdsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5zdGFycztvKG5bdF0sZSxyKSxvKG5bZV0scix0KSxvKG5bcl0sdCxlKX0sYS5hZGRUcmlhbmdsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5zdGFycztuW3RdLnB1c2goZSxyKSxuW2VdLnB1c2gocix0KSxuW3JdLnB1c2godCxlKX0sYS5vcHBvc2l0ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLnN0YXJzW2VdLG49MSxpPXIubGVuZ3RoO248aTtuKz0yKWlmKHJbbl09PT10KXJldHVybiByW24tMV07cmV0dXJuLTF9LGEuZmxpcD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMub3Bwb3NpdGUodCxlKSxuPXRoaXMub3Bwb3NpdGUoZSx0KTt0aGlzLnJlbW92ZVRyaWFuZ2xlKHQsZSxyKSx0aGlzLnJlbW92ZVRyaWFuZ2xlKGUsdCxuKSx0aGlzLmFkZFRyaWFuZ2xlKHQsbixyKSx0aGlzLmFkZFRyaWFuZ2xlKGUscixuKX0sYS5lZGdlcz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN0YXJzLGU9W10scj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxhPTAsbz1pLmxlbmd0aDthPG87YSs9MillLnB1c2goW2lbYV0saVthKzFdXSk7cmV0dXJuIGV9LGEuY2VsbHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5zdGFycyxlPVtdLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZm9yKHZhciBpPXRbcl0sYT0wLG89aS5sZW5ndGg7YTxvO2ErPTIpe3ZhciBzPWlbYV0sbD1pW2ErMV07cjxNYXRoLm1pbihzLGwpJiZlLnB1c2goW3IscyxsXSl9cmV0dXJuIGV9fSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjoxMDB9XSwxMTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xLHI9MTtyPHQubGVuZ3RoOysrcilmb3IodmFyIG49MDtuPHI7KytuKWlmKHRbcl08dFtuXSllPS1lO2Vsc2UgaWYodFtuXT09PXRbcl0pcmV0dXJuIDA7cmV0dXJuIGV9fSx7fV0sMTE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImR1cCIpLGk9dCgicm9idXN0LWxpbmVhci1zb2x2ZSIpO2Z1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9MCxuPXQubGVuZ3RoLGk9MDtpPG47KytpKXIrPXRbaV0qZVtpXTtyZXR1cm4gcn1mdW5jdGlvbiBvKHQpe3ZhciBlPXQubGVuZ3RoO2lmKDA9PT1lKXJldHVybltdO3RbMF0ubGVuZ3RoO3ZhciByPW4oW3QubGVuZ3RoKzEsdC5sZW5ndGgrMV0sMSksbz1uKFt0Lmxlbmd0aCsxXSwxKTtyW2VdW2VdPTA7Zm9yKHZhciBzPTA7czxlOysrcyl7Zm9yKHZhciBsPTA7bDw9czsrK2wpcltsXVtzXT1yW3NdW2xdPTIqYSh0W3NdLHRbbF0pO29bc109YSh0W3NdLHRbc10pfXZhciBjPWkocixvKSx1PTAsZj1jW2UrMV07Zm9yKHM9MDtzPGYubGVuZ3RoOysrcyl1Kz1mW3NdO3ZhciBoPW5ldyBBcnJheShlKTtmb3Iocz0wO3M8ZTsrK3Mpe2Y9Y1tzXTt2YXIgcD0wO2ZvcihsPTA7bDxmLmxlbmd0aDsrK2wpcCs9ZltsXTtoW3NdPXAvdX1yZXR1cm4gaH1mdW5jdGlvbiBzKHQpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm5bXTtmb3IodmFyIGU9dFswXS5sZW5ndGgscj1uKFtlXSksaT1vKHQpLGE9MDthPHQubGVuZ3RoOysrYSlmb3IodmFyIHM9MDtzPGU7KytzKXJbc10rPXRbYV1bc10qaVthXTtyZXR1cm4gcn1zLmJhcnljZW5ldHJpYz1vLGUuZXhwb3J0cz1zfSx7ZHVwOjE3Nywicm9idXN0LWxpbmVhci1zb2x2ZSI6NTIzfV0sMTIwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uKHQpLHI9MCxpPTA7aTx0Lmxlbmd0aDsrK2kpZm9yKHZhciBhPXRbaV0sbz0wO288ZS5sZW5ndGg7KytvKXIrPU1hdGgucG93KGFbb10tZVtvXSwyKTtyZXR1cm4gTWF0aC5zcXJ0KHIvdC5sZW5ndGgpfTt2YXIgbj10KCJjaXJjdW1jZW50ZXIiKX0se2NpcmN1bWNlbnRlcjoxMTl9XSwxMjE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPHI/dDxlP2U6dD5yP3I6dDp0PHI/cjp0PmU/ZTp0fX0se31dLDEyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuO2lmKHIpe249ZTtmb3IodmFyIGk9bmV3IEFycmF5KGUubGVuZ3RoKSxhPTA7YTxlLmxlbmd0aDsrK2Epe3ZhciBvPWVbYV07aVthXT1bb1swXSxvWzFdLHJbYV1dfWU9aX12YXIgcz1mdW5jdGlvbih0LGUscil7dmFyIG49ZCh0LFtdLHAodCkpO3JldHVybiB2KGUsbixyKSwhIW59KHQsZSwhIXIpO2Zvcig7eSh0LGUsISFyKTspcz0hMDtpZihyJiZzKXtuLmxlbmd0aD0wLHIubGVuZ3RoPTA7Zm9yKGE9MDthPGUubGVuZ3RoOysrYSl7bz1lW2FdO24ucHVzaChbb1swXSxvWzFdXSksci5wdXNoKG9bMl0pfX1yZXR1cm4gc307dmFyIG49dCgidW5pb24tZmluZCIpLGk9dCgiYm94LWludGVyc2VjdCIpLGE9dCgicm9idXN0LXNlZ21lbnQtaW50ZXJzZWN0Iiksbz10KCJiaWctcmF0Iikscz10KCJiaWctcmF0L2NtcCIpLGw9dCgiYmlnLXJhdC90by1mbG9hdCIpLGM9dCgicmF0LXZlYyIpLHU9dCgibmV4dGFmdGVyIiksZj10KCIuL2xpYi9yYXQtc2VnLWludGVyc2VjdCIpO2Z1bmN0aW9uIGgodCl7dmFyIGU9bCh0KTtyZXR1cm5bdShlLC0xLzApLHUoZSwxLzApXX1mdW5jdGlvbiBwKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG49dFtyXTtlW3JdPVt1KG5bMF0sLTEvMCksdShuWzFdLC0xLzApLHUoblswXSwxLzApLHUoblsxXSwxLzApXX1yZXR1cm4gZX1mdW5jdGlvbiBkKHQsZSxyKXtmb3IodmFyIGE9ZS5sZW5ndGgsbz1uZXcgbihhKSxzPVtdLGw9MDtsPGUubGVuZ3RoOysrbCl7dmFyIGM9ZVtsXSxmPWgoY1swXSkscD1oKGNbMV0pO3MucHVzaChbdShmWzBdLC0xLzApLHUocFswXSwtMS8wKSx1KGZbMV0sMS8wKSx1KHBbMV0sMS8wKV0pfWkocywoZnVuY3Rpb24odCxlKXtvLmxpbmsodCxlKX0pKTt2YXIgZD0hMCxtPW5ldyBBcnJheShhKTtmb3IobD0wO2w8YTsrK2wpeyh2PW8uZmluZChsKSkhPT1sJiYoZD0hMSx0W3ZdPVtNYXRoLm1pbih0W2xdWzBdLHRbdl1bMF0pLE1hdGgubWluKHRbbF1bMV0sdFt2XVsxXSldKX1pZihkKXJldHVybiBudWxsO3ZhciBnPTA7Zm9yKGw9MDtsPGE7KytsKXt2YXIgdjsodj1vLmZpbmQobCkpPT09bD8obVtsXT1nLHRbZysrXT10W2xdKTptW2xdPS0xfXQubGVuZ3RoPWc7Zm9yKGw9MDtsPGE7KytsKW1bbF08MCYmKG1bbF09bVtvLmZpbmQobCldKTtyZXR1cm4gbX1mdW5jdGlvbiBtKHQsZSl7cmV0dXJuIHRbMF0tZVswXXx8dFsxXS1lWzFdfWZ1bmN0aW9uIGcodCxlKXt2YXIgcj10WzBdLWVbMF18fHRbMV0tZVsxXTtyZXR1cm4gcnx8KHRbMl08ZVsyXT8tMTp0WzJdPmVbMl0/MTowKX1mdW5jdGlvbiB2KHQsZSxyKXtpZigwIT09dC5sZW5ndGgpe2lmKGUpZm9yKHZhciBuPTA7bjx0Lmxlbmd0aDsrK24pe3ZhciBpPWVbKG89dFtuXSlbMF1dLGE9ZVtvWzFdXTtvWzBdPU1hdGgubWluKGksYSksb1sxXT1NYXRoLm1heChpLGEpfWVsc2UgZm9yKG49MDtuPHQubGVuZ3RoOysrbil7dmFyIG87aT0obz10W25dKVswXSxhPW9bMV07b1swXT1NYXRoLm1pbihpLGEpLG9bMV09TWF0aC5tYXgoaSxhKX1yP3Quc29ydChnKTp0LnNvcnQobSk7dmFyIHM9MTtmb3Iobj0xO248dC5sZW5ndGg7KytuKXt2YXIgbD10W24tMV0sYz10W25dOyhjWzBdIT09bFswXXx8Y1sxXSE9PWxbMV18fHImJmNbMl0hPT1sWzJdKSYmKHRbcysrXT1jKX10Lmxlbmd0aD1zfX1mdW5jdGlvbiB5KHQsZSxyKXt2YXIgbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkoZS5sZW5ndGgpLG49MDtuPGUubGVuZ3RoOysrbil7dmFyIGk9ZVtuXSxhPXRbaVswXV0sbz10W2lbMV1dO3Jbbl09W3UoTWF0aC5taW4oYVswXSxvWzBdKSwtMS8wKSx1KE1hdGgubWluKGFbMV0sb1sxXSksLTEvMCksdShNYXRoLm1heChhWzBdLG9bMF0pLDEvMCksdShNYXRoLm1heChhWzFdLG9bMV0pLDEvMCldfXJldHVybiByfSh0LGUpLGg9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVtdO3JldHVybiBpKHIsKGZ1bmN0aW9uKHIsaSl7dmFyIG89ZVtyXSxzPWVbaV07aWYob1swXSE9PXNbMF0mJm9bMF0hPT1zWzFdJiZvWzFdIT09c1swXSYmb1sxXSE9PXNbMV0pe3ZhciBsPXRbb1swXV0sYz10W29bMV1dLHU9dFtzWzBdXSxmPXRbc1sxXV07YShsLGMsdSxmKSYmbi5wdXNoKFtyLGldKX19KSksbn0odCxlLG4pLG09cCh0KSxnPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBvPVtdO3JldHVybiBpKHIsbiwoZnVuY3Rpb24ocixuKXt2YXIgaT1lW3JdO2lmKGlbMF0hPT1uJiZpWzFdIT09bil7dmFyIHM9dFtuXSxsPXRbaVswXV0sYz10W2lbMV1dO2EobCxjLHMscykmJm8ucHVzaChbcixuXSl9fSkpLG99KHQsZSxuLG0pLHk9ZCh0LGZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsdSxoPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bbyh0WzBdKSxvKHRbMV0pXX0pKTtmb3IoYT0wO2E8ci5sZW5ndGg7KythKXt2YXIgcD1yW2FdO3U9cFswXTt2YXIgZD1wWzFdLG09ZVt1XSxnPWVbZF0sdj1mKGModFttWzBdXSksYyh0W21bMV1dKSxjKHRbZ1swXV0pLGModFtnWzFdXSkpO2lmKHYpe3ZhciB5PXQubGVuZ3RoO3QucHVzaChbbCh2WzBdKSxsKHZbMV0pXSksaC5wdXNoKHYpLG4ucHVzaChbdSx5XSxbZCx5XSl9fWZvcihuLnNvcnQoKGZ1bmN0aW9uKHQsZSl7aWYodFswXSE9PWVbMF0pcmV0dXJuIHRbMF0tZVswXTt2YXIgcj1oW3RbMV1dLG49aFtlWzFdXTtyZXR1cm4gcyhyWzBdLG5bMF0pfHxzKHJbMV0sblsxXSl9KSksYT1uLmxlbmd0aC0xO2E+PTA7LS1hKXt2YXIgeD1lW3U9KFM9blthXSlbMF1dLGI9eFswXSxfPXhbMV0sdz10W2JdLFQ9dFtfXTtpZigod1swXS1UWzBdfHx3WzFdLVRbMV0pPDApe3ZhciBrPWI7Yj1fLF89a314WzBdPWI7dmFyIEEsTT14WzFdPVNbMV07Zm9yKGkmJihBPXhbMl0pO2E+MCYmblthLTFdWzBdPT09dTspe3ZhciBTLEU9KFM9blstLWFdKVsxXTtpP2UucHVzaChbTSxFLEFdKTplLnB1c2goW00sRV0pLE09RX1pP2UucHVzaChbTSxfLEFdKTplLnB1c2goW00sX10pfXJldHVybiBofSh0LGUsaCxnLHIpKTtyZXR1cm4gdihlLHksciksISF5fHwoaC5sZW5ndGg+MHx8Zy5sZW5ndGg+MCl9fSx7Ii4vbGliL3JhdC1zZWctaW50ZXJzZWN0IjoxMjMsImJpZy1yYXQiOjg2LCJiaWctcmF0L2NtcCI6ODQsImJpZy1yYXQvdG8tZmxvYXQiOjk5LCJib3gtaW50ZXJzZWN0IjoxMDQsbmV4dGFmdGVyOjQ2MywicmF0LXZlYyI6NTA4LCJyb2J1c3Qtc2VnbWVudC1pbnRlcnNlY3QiOjUyNywidW5pb24tZmluZCI6NTkxfV0sMTIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgYT1zKGUsdCksZj1zKG4sciksaD11KGEsZik7aWYoMD09PW8oaCkpcmV0dXJuIG51bGw7dmFyIHA9cyh0LHIpLGQ9dShmLHApLG09aShkLGgpLGc9YyhhLG0pO3JldHVybiBsKHQsZyl9O3ZhciBuPXQoImJpZy1yYXQvbXVsIiksaT10KCJiaWctcmF0L2RpdiIpLGE9dCgiYmlnLXJhdC9zdWIiKSxvPXQoImJpZy1yYXQvc2lnbiIpLHM9dCgicmF0LXZlYy9zdWIiKSxsPXQoInJhdC12ZWMvYWRkIiksYz10KCJyYXQtdmVjL211bHMiKTtmdW5jdGlvbiB1KHQsZSl7cmV0dXJuIGEobih0WzBdLGVbMV0pLG4odFsxXSxlWzBdKSl9fSx7ImJpZy1yYXQvZGl2Ijo4NSwiYmlnLXJhdC9tdWwiOjk1LCJiaWctcmF0L3NpZ24iOjk3LCJiaWctcmF0L3N1YiI6OTgsInJhdC12ZWMvYWRkIjo1MDcsInJhdC12ZWMvbXVscyI6NTA5LCJyYXQtdmVjL3N1YiI6NTEwfV0sMTI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNsYW1wIik7ZnVuY3Rpb24gaSh0LGUpe251bGw9PWUmJihlPSEwKTt2YXIgcj10WzBdLGk9dFsxXSxhPXRbMl0sbz10WzNdO3JldHVybiBudWxsPT1vJiYobz1lPzE6MjU1KSxlJiYocio9MjU1LGkqPTI1NSxhKj0yNTUsbyo9MjU1KSwxNjc3NzIxNioocj0yNTUmbihyLDAsMjU1KSkrKChpPTI1NSZuKGksMCwyNTUpKTw8MTYpKygoYT0yNTUmbihhLDAsMjU1KSk8PDgpKyhvPTI1NSZuKG8sMCwyNTUpKX1lLmV4cG9ydHM9aSxlLmV4cG9ydHMudG89aSxlLmV4cG9ydHMuZnJvbT1mdW5jdGlvbih0LGUpe3ZhciByPSh0PSt0KT4+PjI0LG49KDE2NzExNjgwJnQpPj4+MTYsaT0oNjUyODAmdCk+Pj44LGE9MjU1JnQ7cmV0dXJuITE9PT1lP1tyLG4saSxhXTpbci8yNTUsbi8yNTUsaS8yNTUsYS8yNTVdfX0se2NsYW1wOjEyMX1dLDEyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2FsaWNlYmx1ZTpbMjQwLDI0OCwyNTVdLGFudGlxdWV3aGl0ZTpbMjUwLDIzNSwyMTVdLGFxdWE6WzAsMjU1LDI1NV0sYXF1YW1hcmluZTpbMTI3LDI1NSwyMTJdLGF6dXJlOlsyNDAsMjU1LDI1NV0sYmVpZ2U6WzI0NSwyNDUsMjIwXSxiaXNxdWU6WzI1NSwyMjgsMTk2XSxibGFjazpbMCwwLDBdLGJsYW5jaGVkYWxtb25kOlsyNTUsMjM1LDIwNV0sYmx1ZTpbMCwwLDI1NV0sYmx1ZXZpb2xldDpbMTM4LDQzLDIyNl0sYnJvd246WzE2NSw0Miw0Ml0sYnVybHl3b29kOlsyMjIsMTg0LDEzNV0sY2FkZXRibHVlOls5NSwxNTgsMTYwXSxjaGFydHJldXNlOlsxMjcsMjU1LDBdLGNob2NvbGF0ZTpbMjEwLDEwNSwzMF0sY29yYWw6WzI1NSwxMjcsODBdLGNvcm5mbG93ZXJibHVlOlsxMDAsMTQ5LDIzN10sY29ybnNpbGs6WzI1NSwyNDgsMjIwXSxjcmltc29uOlsyMjAsMjAsNjBdLGN5YW46WzAsMjU1LDI1NV0sZGFya2JsdWU6WzAsMCwxMzldLGRhcmtjeWFuOlswLDEzOSwxMzldLGRhcmtnb2xkZW5yb2Q6WzE4NCwxMzQsMTFdLGRhcmtncmF5OlsxNjksMTY5LDE2OV0sZGFya2dyZWVuOlswLDEwMCwwXSxkYXJrZ3JleTpbMTY5LDE2OSwxNjldLGRhcmtraGFraTpbMTg5LDE4MywxMDddLGRhcmttYWdlbnRhOlsxMzksMCwxMzldLGRhcmtvbGl2ZWdyZWVuOls4NSwxMDcsNDddLGRhcmtvcmFuZ2U6WzI1NSwxNDAsMF0sZGFya29yY2hpZDpbMTUzLDUwLDIwNF0sZGFya3JlZDpbMTM5LDAsMF0sZGFya3NhbG1vbjpbMjMzLDE1MCwxMjJdLGRhcmtzZWFncmVlbjpbMTQzLDE4OCwxNDNdLGRhcmtzbGF0ZWJsdWU6WzcyLDYxLDEzOV0sZGFya3NsYXRlZ3JheTpbNDcsNzksNzldLGRhcmtzbGF0ZWdyZXk6WzQ3LDc5LDc5XSxkYXJrdHVycXVvaXNlOlswLDIwNiwyMDldLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMV0sZGVlcHBpbms6WzI1NSwyMCwxNDddLGRlZXBza3libHVlOlswLDE5MSwyNTVdLGRpbWdyYXk6WzEwNSwxMDUsMTA1XSxkaW1ncmV5OlsxMDUsMTA1LDEwNV0sZG9kZ2VyYmx1ZTpbMzAsMTQ0LDI1NV0sZmlyZWJyaWNrOlsxNzgsMzQsMzRdLGZsb3JhbHdoaXRlOlsyNTUsMjUwLDI0MF0sZm9yZXN0Z3JlZW46WzM0LDEzOSwzNF0sZnVjaHNpYTpbMjU1LDAsMjU1XSxnYWluc2Jvcm86WzIyMCwyMjAsMjIwXSxnaG9zdHdoaXRlOlsyNDgsMjQ4LDI1NV0sZ29sZDpbMjU1LDIxNSwwXSxnb2xkZW5yb2Q6WzIxOCwxNjUsMzJdLGdyYXk6WzEyOCwxMjgsMTI4XSxncmVlbjpbMCwxMjgsMF0sZ3JlZW55ZWxsb3c6WzE3MywyNTUsNDddLGdyZXk6WzEyOCwxMjgsMTI4XSxob25leWRldzpbMjQwLDI1NSwyNDBdLGhvdHBpbms6WzI1NSwxMDUsMTgwXSxpbmRpYW5yZWQ6WzIwNSw5Miw5Ml0saW5kaWdvOls3NSwwLDEzMF0saXZvcnk6WzI1NSwyNTUsMjQwXSxraGFraTpbMjQwLDIzMCwxNDBdLGxhdmVuZGVyOlsyMzAsMjMwLDI1MF0sbGF2ZW5kZXJibHVzaDpbMjU1LDI0MCwyNDVdLGxhd25ncmVlbjpbMTI0LDI1MiwwXSxsZW1vbmNoaWZmb246WzI1NSwyNTAsMjA1XSxsaWdodGJsdWU6WzE3MywyMTYsMjMwXSxsaWdodGNvcmFsOlsyNDAsMTI4LDEyOF0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NV0sbGlnaHRnb2xkZW5yb2R5ZWxsb3c6WzI1MCwyNTAsMjEwXSxsaWdodGdyYXk6WzIxMSwyMTEsMjExXSxsaWdodGdyZWVuOlsxNDQsMjM4LDE0NF0sbGlnaHRncmV5OlsyMTEsMjExLDIxMV0sbGlnaHRwaW5rOlsyNTUsMTgyLDE5M10sbGlnaHRzYWxtb246WzI1NSwxNjAsMTIyXSxsaWdodHNlYWdyZWVuOlszMiwxNzgsMTcwXSxsaWdodHNreWJsdWU6WzEzNSwyMDYsMjUwXSxsaWdodHNsYXRlZ3JheTpbMTE5LDEzNiwxNTNdLGxpZ2h0c2xhdGVncmV5OlsxMTksMTM2LDE1M10sbGlnaHRzdGVlbGJsdWU6WzE3NiwxOTYsMjIyXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjRdLGxpbWU6WzAsMjU1LDBdLGxpbWVncmVlbjpbNTAsMjA1LDUwXSxsaW5lbjpbMjUwLDI0MCwyMzBdLG1hZ2VudGE6WzI1NSwwLDI1NV0sbWFyb29uOlsxMjgsMCwwXSxtZWRpdW1hcXVhbWFyaW5lOlsxMDIsMjA1LDE3MF0sbWVkaXVtYmx1ZTpbMCwwLDIwNV0sbWVkaXVtb3JjaGlkOlsxODYsODUsMjExXSxtZWRpdW1wdXJwbGU6WzE0NywxMTIsMjE5XSxtZWRpdW1zZWFncmVlbjpbNjAsMTc5LDExM10sbWVkaXVtc2xhdGVibHVlOlsxMjMsMTA0LDIzOF0sbWVkaXVtc3ByaW5nZ3JlZW46WzAsMjUwLDE1NF0sbWVkaXVtdHVycXVvaXNlOls3MiwyMDksMjA0XSxtZWRpdW12aW9sZXRyZWQ6WzE5OSwyMSwxMzNdLG1pZG5pZ2h0Ymx1ZTpbMjUsMjUsMTEyXSxtaW50Y3JlYW06WzI0NSwyNTUsMjUwXSxtaXN0eXJvc2U6WzI1NSwyMjgsMjI1XSxtb2NjYXNpbjpbMjU1LDIyOCwxODFdLG5hdmFqb3doaXRlOlsyNTUsMjIyLDE3M10sbmF2eTpbMCwwLDEyOF0sb2xkbGFjZTpbMjUzLDI0NSwyMzBdLG9saXZlOlsxMjgsMTI4LDBdLG9saXZlZHJhYjpbMTA3LDE0MiwzNV0sb3JhbmdlOlsyNTUsMTY1LDBdLG9yYW5nZXJlZDpbMjU1LDY5LDBdLG9yY2hpZDpbMjE4LDExMiwyMTRdLHBhbGVnb2xkZW5yb2Q6WzIzOCwyMzIsMTcwXSxwYWxlZ3JlZW46WzE1MiwyNTEsMTUyXSxwYWxldHVycXVvaXNlOlsxNzUsMjM4LDIzOF0scGFsZXZpb2xldHJlZDpbMjE5LDExMiwxNDddLHBhcGF5YXdoaXA6WzI1NSwyMzksMjEzXSxwZWFjaHB1ZmY6WzI1NSwyMTgsMTg1XSxwZXJ1OlsyMDUsMTMzLDYzXSxwaW5rOlsyNTUsMTkyLDIwM10scGx1bTpbMjIxLDE2MCwyMjFdLHBvd2RlcmJsdWU6WzE3NiwyMjQsMjMwXSxwdXJwbGU6WzEyOCwwLDEyOF0scmViZWNjYXB1cnBsZTpbMTAyLDUxLDE1M10scmVkOlsyNTUsMCwwXSxyb3N5YnJvd246WzE4OCwxNDMsMTQzXSxyb3lhbGJsdWU6WzY1LDEwNSwyMjVdLHNhZGRsZWJyb3duOlsxMzksNjksMTldLHNhbG1vbjpbMjUwLDEyOCwxMTRdLHNhbmR5YnJvd246WzI0NCwxNjQsOTZdLHNlYWdyZWVuOls0NiwxMzksODddLHNlYXNoZWxsOlsyNTUsMjQ1LDIzOF0sc2llbm5hOlsxNjAsODIsNDVdLHNpbHZlcjpbMTkyLDE5MiwxOTJdLHNreWJsdWU6WzEzNSwyMDYsMjM1XSxzbGF0ZWJsdWU6WzEwNiw5MCwyMDVdLHNsYXRlZ3JheTpbMTEyLDEyOCwxNDRdLHNsYXRlZ3JleTpbMTEyLDEyOCwxNDRdLHNub3c6WzI1NSwyNTAsMjUwXSxzcHJpbmdncmVlbjpbMCwyNTUsMTI3XSxzdGVlbGJsdWU6WzcwLDEzMCwxODBdLHRhbjpbMjEwLDE4MCwxNDBdLHRlYWw6WzAsMTI4LDEyOF0sdGhpc3RsZTpbMjE2LDE5MSwyMTZdLHRvbWF0bzpbMjU1LDk5LDcxXSx0dXJxdW9pc2U6WzY0LDIyNCwyMDhdLHZpb2xldDpbMjM4LDEzMCwyMzhdLHdoZWF0OlsyNDUsMjIyLDE3OV0sd2hpdGU6WzI1NSwyNTUsMjU1XSx3aGl0ZXNtb2tlOlsyNDUsMjQ1LDI0NV0seWVsbG93OlsyNTUsMjU1LDBdLHllbGxvd2dyZWVuOlsxNTQsMjA1LDUwXX19LHt9XSwxMjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29sb3ItcmdiYSIpLGk9dCgiY2xhbXAiKSxhPXQoImR0eXBlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ImZsb2F0IiE9PWUmJmV8fChlPSJhcnJheSIpLCJ1aW50Ij09PWUmJihlPSJ1aW50OCIpLCJ1aW50X2NsYW1wZWQiPT09ZSYmKGU9InVpbnQ4X2NsYW1wZWQiKTt2YXIgcj1uZXcoYShlKSkoNCksbz0idWludDgiIT09ZSYmInVpbnQ4X2NsYW1wZWQiIT09ZTtyZXR1cm4gdC5sZW5ndGgmJiJzdHJpbmciIT10eXBlb2YgdHx8KCh0PW4odCkpWzBdLz0yNTUsdFsxXS89MjU1LHRbMl0vPTI1NSksZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl8fCEhKEFycmF5LmlzQXJyYXkodCkmJih0WzBdPjF8fDA9PT10WzBdKSYmKHRbMV0+MXx8MD09PXRbMV0pJiYodFsyXT4xfHwwPT09dFsyXSkmJighdFszXXx8dFszXT4xKSl9KHQpPyhyWzBdPXRbMF0sclsxXT10WzFdLHJbMl09dFsyXSxyWzNdPW51bGwhPXRbM10/dFszXToyNTUsbyYmKHJbMF0vPTI1NSxyWzFdLz0yNTUsclsyXS89MjU1LHJbM10vPTI1NSkscik6KG8/KHJbMF09dFswXSxyWzFdPXRbMV0sclsyXT10WzJdLHJbM109bnVsbCE9dFszXT90WzNdOjEpOihyWzBdPWkoTWF0aC5mbG9vcigyNTUqdFswXSksMCwyNTUpLHJbMV09aShNYXRoLmZsb29yKDI1NSp0WzFdKSwwLDI1NSksclsyXT1pKE1hdGguZmxvb3IoMjU1KnRbMl0pLDAsMjU1KSxyWzNdPW51bGw9PXRbM10/MjU1OmkoTWF0aC5mbG9vcigyNTUqdFszXSksMCwyNTUpKSxyKX19LHtjbGFtcDoxMjEsImNvbG9yLXJnYmEiOjEyOCxkdHlwZToxNzZ9XSwxMjc6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNvbG9yLW5hbWUiKSxpPXQoImlzLXBsYWluLW9iaiIpLGE9dCgiZGVmaW5lZCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxzLGw9W10sYz0xO2lmKCJzdHJpbmciPT10eXBlb2YgdClpZihuW3RdKWw9blt0XS5zbGljZSgpLHM9InJnYiI7ZWxzZSBpZigidHJhbnNwYXJlbnQiPT09dCljPTAscz0icmdiIixsPVswLDAsMF07ZWxzZSBpZigvXiNbQS1GYS1mMC05XSskLy50ZXN0KHQpKXt2YXIgdT0ocD10LnNsaWNlKDEpKS5sZW5ndGg7Yz0xLHU8PTQ/KGw9W3BhcnNlSW50KHBbMF0rcFswXSwxNikscGFyc2VJbnQocFsxXStwWzFdLDE2KSxwYXJzZUludChwWzJdK3BbMl0sMTYpXSw0PT09dSYmKGM9cGFyc2VJbnQocFszXStwWzNdLDE2KS8yNTUpKToobD1bcGFyc2VJbnQocFswXStwWzFdLDE2KSxwYXJzZUludChwWzJdK3BbM10sMTYpLHBhcnNlSW50KHBbNF0rcFs1XSwxNildLDg9PT11JiYoYz1wYXJzZUludChwWzZdK3BbN10sMTYpLzI1NSkpLGxbMF18fChsWzBdPTApLGxbMV18fChsWzFdPTApLGxbMl18fChsWzJdPTApLHM9InJnYiJ9ZWxzZSBpZihlPS9eKCg/OnJnYnxoc1tsdmJdfGh3YnxjbXlrP3x4eVt6eV18Z3JheXxsYWJ8bGNodT92P3xbbHlddXZ8bG1zKWE/KVxzKlwoKFteXCldKilcKS8uZXhlYyh0KSl7dmFyIGY9ZVsxXSxoPSJyZ2IiPT09ZixwPWYucmVwbGFjZSgvYSQvLCIiKTtzPXA7dT0iY215ayI9PT1wPzQ6ImdyYXkiPT09cD8xOjM7bD1lWzJdLnRyaW0oKS5zcGxpdCgvXHMqLFxzKi8pLm1hcCgoZnVuY3Rpb24odCxlKXtpZigvJSQvLnRlc3QodCkpcmV0dXJuIGU9PT11P3BhcnNlRmxvYXQodCkvMTAwOiJyZ2IiPT09cD8yNTUqcGFyc2VGbG9hdCh0KS8xMDA6cGFyc2VGbG9hdCh0KTtpZigiaCI9PT1wW2VdKXtpZigvZGVnJC8udGVzdCh0KSlyZXR1cm4gcGFyc2VGbG9hdCh0KTtpZih2b2lkIDAhPT1vW3RdKXJldHVybiBvW3RdfXJldHVybiBwYXJzZUZsb2F0KHQpfSkpLGY9PT1wJiZsLnB1c2goMSksYz1ofHx2b2lkIDA9PT1sW3VdPzE6bFt1XSxsPWwuc2xpY2UoMCx1KX1lbHNlIHQubGVuZ3RoPjEwJiYvWzAtOV0oPzpcc3xcLykvLnRlc3QodCkmJihsPXQubWF0Y2goLyhbMC05XSspL2cpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHBhcnNlRmxvYXQodCl9KSkscz10Lm1hdGNoKC8oW2Etel0pL2dpKS5qb2luKCIiKS50b0xvd2VyQ2FzZSgpKTtlbHNlIGlmKGlzTmFOKHQpKWlmKGkodCkpe3ZhciBkPWEodC5yLHQucmVkLHQuUixudWxsKTtudWxsIT09ZD8ocz0icmdiIixsPVtkLGEodC5nLHQuZ3JlZW4sdC5HKSxhKHQuYix0LmJsdWUsdC5CKV0pOihzPSJoc2wiLGw9W2EodC5oLHQuaHVlLHQuSCksYSh0LnMsdC5zYXR1cmF0aW9uLHQuUyksYSh0LmwsdC5saWdodG5lc3MsdC5MLHQuYix0LmJyaWdodG5lc3MpXSksYz1hKHQuYSx0LmFscGhhLHQub3BhY2l0eSwxKSxudWxsIT10Lm9wYWNpdHkmJihjLz0xMDApfWVsc2UoQXJyYXkuaXNBcnJheSh0KXx8ci5BcnJheUJ1ZmZlciYmQXJyYXlCdWZmZXIuaXNWaWV3JiZBcnJheUJ1ZmZlci5pc1ZpZXcodCkpJiYobD1bdFswXSx0WzFdLHRbMl1dLHM9InJnYiIsYz00PT09dC5sZW5ndGg/dFszXToxKTtlbHNlIHM9InJnYiIsbD1bdD4+PjE2LCg2NTI4MCZ0KT4+PjgsMjU1JnRdO3JldHVybntzcGFjZTpzLHZhbHVlczpsLGFscGhhOmN9fTt2YXIgbz17cmVkOjAsb3JhbmdlOjYwLHllbGxvdzoxMjAsZ3JlZW46MTgwLGJsdWU6MjQwLHB1cnBsZTozMDB9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJjb2xvci1uYW1lIjoxMjUsZGVmaW5lZDoxNzEsImlzLXBsYWluLW9iaiI6NDM3fV0sMTI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNvbG9yLXBhcnNlIiksaT10KCJjb2xvci1zcGFjZS9oc2wiKSxhPXQoImNsYW1wIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHI9bih0KTtyZXR1cm4gci5zcGFjZT8oKGU9QXJyYXkoMykpWzBdPWEoci52YWx1ZXNbMF0sMCwyNTUpLGVbMV09YShyLnZhbHVlc1sxXSwwLDI1NSksZVsyXT1hKHIudmFsdWVzWzJdLDAsMjU1KSwiaCI9PT1yLnNwYWNlWzBdJiYoZT1pLnJnYihlKSksZS5wdXNoKGEoci5hbHBoYSwwLDEpKSxlKTpbXX19LHtjbGFtcDoxMjEsImNvbG9yLXBhcnNlIjoxMjcsImNvbG9yLXNwYWNlL2hzbCI6MTI5fV0sMTI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vcmdiIik7ZS5leHBvcnRzPXtuYW1lOiJoc2wiLG1pbjpbMCwwLDBdLG1heDpbMzYwLDEwMCwxMDBdLGNoYW5uZWw6WyJodWUiLCJzYXR1cmF0aW9uIiwibGlnaHRuZXNzIl0sYWxpYXM6WyJIU0wiXSxyZ2I6ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvPXRbMF0vMzYwLHM9dFsxXS8xMDAsbD10WzJdLzEwMDtpZigwPT09cylyZXR1cm5bYT0yNTUqbCxhLGFdO2U9MipsLShyPWw8LjU/bCooMStzKTpsK3MtbCpzKSxpPVswLDAsMF07Zm9yKHZhciBjPTA7YzwzO2MrKykobj1vKzEvMyotKGMtMSkpPDA/bisrOm4+MSYmbi0tLGE9NipuPDE/ZSs2KihyLWUpKm46MipuPDE/cjozKm48Mj9lKyhyLWUpKigyLzMtbikqNjplLGlbY109MjU1KmE7cmV0dXJuIGl9fSxuLmhzbD1mdW5jdGlvbih0KXt2YXIgZSxyLG49dFswXS8yNTUsaT10WzFdLzI1NSxhPXRbMl0vMjU1LG89TWF0aC5taW4obixpLGEpLHM9TWF0aC5tYXgobixpLGEpLGw9cy1vO3JldHVybiBzPT09bz9lPTA6bj09PXM/ZT0oaS1hKS9sOmk9PT1zP2U9MisoYS1uKS9sOmE9PT1zJiYoZT00KyhuLWkpL2wpLChlPU1hdGgubWluKDYwKmUsMzYwKSk8MCYmKGUrPTM2MCkscj0obytzKS8yLFtlLDEwMCoocz09PW8/MDpyPD0uNT9sLyhzK28pOmwvKDItcy1vKSksMTAwKnJdfX0seyIuL3JnYiI6MTMwfV0sMTMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToicmdiIixtaW46WzAsMCwwXSxtYXg6WzI1NSwyNTUsMjU1XSxjaGFubmVsOlsicmVkIiwiZ3JlZW4iLCJibHVlIl0sYWxpYXM6WyJSR0IiXX19LHt9XSwxMzE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e2pldDpbe2luZGV4OjAscmdiOlswLDAsMTMxXX0se2luZGV4Oi4xMjUscmdiOlswLDYwLDE3MF19LHtpbmRleDouMzc1LHJnYjpbNSwyNTUsMjU1XX0se2luZGV4Oi42MjUscmdiOlsyNTUsMjU1LDBdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1MCwwLDBdfSx7aW5kZXg6MSxyZ2I6WzEyOCwwLDBdfV0saHN2Olt7aW5kZXg6MCxyZ2I6WzI1NSwwLDBdfSx7aW5kZXg6LjE2OSxyZ2I6WzI1MywyNTUsMl19LHtpbmRleDouMTczLHJnYjpbMjQ3LDI1NSwyXX0se2luZGV4Oi4zMzcscmdiOlswLDI1Miw0XX0se2luZGV4Oi4zNDEscmdiOlswLDI1MiwxMF19LHtpbmRleDouNTA2LHJnYjpbMSwyNDksMjU1XX0se2luZGV4Oi42NzEscmdiOlsyLDAsMjUzXX0se2luZGV4Oi42NzUscmdiOls4LDAsMjUzXX0se2luZGV4Oi44MzkscmdiOlsyNTUsMCwyNTFdfSx7aW5kZXg6Ljg0MyxyZ2I6WzI1NSwwLDI0NV19LHtpbmRleDoxLHJnYjpbMjU1LDAsNl19XSxob3Q6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjMscmdiOlsyMzAsMCwwXX0se2luZGV4Oi42LHJnYjpbMjU1LDIxMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSxzcHJpbmc6W3tpbmRleDowLHJnYjpbMjU1LDAsMjU1XX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDBdfV0sc3VtbWVyOlt7aW5kZXg6MCxyZ2I6WzAsMTI4LDEwMl19LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwxMDJdfV0sYXV0dW1uOlt7aW5kZXg6MCxyZ2I6WzI1NSwwLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMF19XSx3aW50ZXI6W3tpbmRleDowLHJnYjpbMCwwLDI1NV19LHtpbmRleDoxLHJnYjpbMCwyNTUsMTI4XX1dLGJvbmU6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjM3NixyZ2I6Wzg0LDg0LDExNl19LHtpbmRleDouNzUzLHJnYjpbMTY5LDIwMCwyMDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTUsMjU1XX1dLGNvcHBlcjpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouODA0LHJnYjpbMjU1LDE2MCwxMDJdfSx7aW5kZXg6MSxyZ2I6WzI1NSwxOTksMTI3XX1dLGdyZXlzOlt7aW5kZXg6MCxyZ2I6WzAsMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSx5aWduYnU6W3tpbmRleDowLHJnYjpbOCwyOSw4OF19LHtpbmRleDouMTI1LHJnYjpbMzcsNTIsMTQ4XX0se2luZGV4Oi4yNSxyZ2I6WzM0LDk0LDE2OF19LHtpbmRleDouMzc1LHJnYjpbMjksMTQ1LDE5Ml19LHtpbmRleDouNSxyZ2I6WzY1LDE4MiwxOTZdfSx7aW5kZXg6LjYyNSxyZ2I6WzEyNywyMDUsMTg3XX0se2luZGV4Oi43NSxyZ2I6WzE5OSwyMzMsMTgwXX0se2luZGV4Oi44NzUscmdiOlsyMzcsMjQ4LDIxN119LHtpbmRleDoxLHJnYjpbMjU1LDI1NSwyMTddfV0sZ3JlZW5zOlt7aW5kZXg6MCxyZ2I6WzAsNjgsMjddfSx7aW5kZXg6LjEyNSxyZ2I6WzAsMTA5LDQ0XX0se2luZGV4Oi4yNSxyZ2I6WzM1LDEzOSw2OV19LHtpbmRleDouMzc1LHJnYjpbNjUsMTcxLDkzXX0se2luZGV4Oi41LHJnYjpbMTE2LDE5NiwxMThdfSx7aW5kZXg6LjYyNSxyZ2I6WzE2MSwyMTcsMTU1XX0se2luZGV4Oi43NSxyZ2I6WzE5OSwyMzMsMTkyXX0se2luZGV4Oi44NzUscmdiOlsyMjksMjQ1LDIyNF19LHtpbmRleDoxLHJnYjpbMjQ3LDI1MiwyNDVdfV0seWlvcnJkOlt7aW5kZXg6MCxyZ2I6WzEyOCwwLDM4XX0se2luZGV4Oi4xMjUscmdiOlsxODksMCwzOF19LHtpbmRleDouMjUscmdiOlsyMjcsMjYsMjhdfSx7aW5kZXg6LjM3NSxyZ2I6WzI1Miw3OCw0Ml19LHtpbmRleDouNSxyZ2I6WzI1MywxNDEsNjBdfSx7aW5kZXg6LjYyNSxyZ2I6WzI1NCwxNzgsNzZdfSx7aW5kZXg6Ljc1LHJnYjpbMjU0LDIxNywxMThdfSx7aW5kZXg6Ljg3NSxyZ2I6WzI1NSwyMzcsMTYwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDIwNF19XSxibHVlcmVkOlt7aW5kZXg6MCxyZ2I6WzAsMCwyNTVdfSx7aW5kZXg6MSxyZ2I6WzI1NSwwLDBdfV0scmRidTpbe2luZGV4OjAscmdiOls1LDEwLDE3Ml19LHtpbmRleDouMzUscmdiOlsxMDYsMTM3LDI0N119LHtpbmRleDouNSxyZ2I6WzE5MCwxOTAsMTkwXX0se2luZGV4Oi42LHJnYjpbMjIwLDE3MCwxMzJdfSx7aW5kZXg6LjcscmdiOlsyMzAsMTQ1LDkwXX0se2luZGV4OjEscmdiOlsxNzgsMTAsMjhdfV0scGljbmljOlt7aW5kZXg6MCxyZ2I6WzAsMCwyNTVdfSx7aW5kZXg6LjEscmdiOls1MSwxNTMsMjU1XX0se2luZGV4Oi4yLHJnYjpbMTAyLDIwNCwyNTVdfSx7aW5kZXg6LjMscmdiOlsxNTMsMjA0LDI1NV19LHtpbmRleDouNCxyZ2I6WzIwNCwyMDQsMjU1XX0se2luZGV4Oi41LHJnYjpbMjU1LDI1NSwyNTVdfSx7aW5kZXg6LjYscmdiOlsyNTUsMjA0LDI1NV19LHtpbmRleDouNyxyZ2I6WzI1NSwxNTMsMjU1XX0se2luZGV4Oi44LHJnYjpbMjU1LDEwMiwyMDRdfSx7aW5kZXg6LjkscmdiOlsyNTUsMTAyLDEwMl19LHtpbmRleDoxLHJnYjpbMjU1LDAsMF19XSxyYWluYm93Olt7aW5kZXg6MCxyZ2I6WzE1MCwwLDkwXX0se2luZGV4Oi4xMjUscmdiOlswLDAsMjAwXX0se2luZGV4Oi4yNSxyZ2I6WzAsMjUsMjU1XX0se2luZGV4Oi4zNzUscmdiOlswLDE1MiwyNTVdfSx7aW5kZXg6LjUscmdiOls0NCwyNTUsMTUwXX0se2luZGV4Oi42MjUscmdiOlsxNTEsMjU1LDBdfSx7aW5kZXg6Ljc1LHJnYjpbMjU1LDIzNCwwXX0se2luZGV4Oi44NzUscmdiOlsyNTUsMTExLDBdfSx7aW5kZXg6MSxyZ2I6WzI1NSwwLDBdfV0scG9ydGxhbmQ6W3tpbmRleDowLHJnYjpbMTIsNTEsMTMxXX0se2luZGV4Oi4yNSxyZ2I6WzEwLDEzNiwxODZdfSx7aW5kZXg6LjUscmdiOlsyNDIsMjExLDU2XX0se2luZGV4Oi43NSxyZ2I6WzI0MiwxNDMsNTZdfSx7aW5kZXg6MSxyZ2I6WzIxNywzMCwzMF19XSxibGFja2JvZHk6W3tpbmRleDowLHJnYjpbMCwwLDBdfSx7aW5kZXg6LjIscmdiOlsyMzAsMCwwXX0se2luZGV4Oi40LHJnYjpbMjMwLDIxMCwwXX0se2luZGV4Oi43LHJnYjpbMjU1LDI1NSwyNTVdfSx7aW5kZXg6MSxyZ2I6WzE2MCwyMDAsMjU1XX1dLGVhcnRoOlt7aW5kZXg6MCxyZ2I6WzAsMCwxMzBdfSx7aW5kZXg6LjEscmdiOlswLDE4MCwxODBdfSx7aW5kZXg6LjIscmdiOls0MCwyMTAsNDBdfSx7aW5kZXg6LjQscmdiOlsyMzAsMjMwLDUwXX0se2luZGV4Oi42LHJnYjpbMTIwLDcwLDIwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NV19XSxlbGVjdHJpYzpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMTUscmdiOlszMCwwLDEwMF19LHtpbmRleDouNCxyZ2I6WzEyMCwwLDEwMF19LHtpbmRleDouNixyZ2I6WzE2MCw5MCwwXX0se2luZGV4Oi44LHJnYjpbMjMwLDIwMCwwXX0se2luZGV4OjEscmdiOlsyNTUsMjUwLDIyMF19XSxhbHBoYTpbe2luZGV4OjAscmdiOlsyNTUsMjU1LDI1NSwwXX0se2luZGV4OjEscmdiOlsyNTUsMjU1LDI1NSwxXX1dLHZpcmlkaXM6W3tpbmRleDowLHJnYjpbNjgsMSw4NF19LHtpbmRleDouMTMscmdiOls3MSw0NCwxMjJdfSx7aW5kZXg6LjI1LHJnYjpbNTksODEsMTM5XX0se2luZGV4Oi4zOCxyZ2I6WzQ0LDExMywxNDJdfSx7aW5kZXg6LjUscmdiOlszMywxNDQsMTQxXX0se2luZGV4Oi42MyxyZ2I6WzM5LDE3MywxMjldfSx7aW5kZXg6Ljc1LHJnYjpbOTIsMjAwLDk5XX0se2luZGV4Oi44OCxyZ2I6WzE3MCwyMjAsNTBdfSx7aW5kZXg6MSxyZ2I6WzI1MywyMzEsMzddfV0saW5mZXJubzpbe2luZGV4OjAscmdiOlswLDAsNF19LHtpbmRleDouMTMscmdiOlszMSwxMiw3Ml19LHtpbmRleDouMjUscmdiOls4NSwxNSwxMDldfSx7aW5kZXg6LjM4LHJnYjpbMTM2LDM0LDEwNl19LHtpbmRleDouNSxyZ2I6WzE4Niw1NCw4NV19LHtpbmRleDouNjMscmdiOlsyMjcsODksNTFdfSx7aW5kZXg6Ljc1LHJnYjpbMjQ5LDE0MCwxMF19LHtpbmRleDouODgscmdiOlsyNDksMjAxLDUwXX0se2luZGV4OjEscmdiOlsyNTIsMjU1LDE2NF19XSxtYWdtYTpbe2luZGV4OjAscmdiOlswLDAsNF19LHtpbmRleDouMTMscmdiOlsyOCwxNiw2OF19LHtpbmRleDouMjUscmdiOls3OSwxOCwxMjNdfSx7aW5kZXg6LjM4LHJnYjpbMTI5LDM3LDEyOV19LHtpbmRleDouNSxyZ2I6WzE4MSw1NCwxMjJdfSx7aW5kZXg6LjYzLHJnYjpbMjI5LDgwLDEwMF19LHtpbmRleDouNzUscmdiOlsyNTEsMTM1LDk3XX0se2luZGV4Oi44OCxyZ2I6WzI1NCwxOTQsMTM1XX0se2luZGV4OjEscmdiOlsyNTIsMjUzLDE5MV19XSxwbGFzbWE6W3tpbmRleDowLHJnYjpbMTMsOCwxMzVdfSx7aW5kZXg6LjEzLHJnYjpbNzUsMywxNjFdfSx7aW5kZXg6LjI1LHJnYjpbMTI1LDMsMTY4XX0se2luZGV4Oi4zOCxyZ2I6WzE2OCwzNCwxNTBdfSx7aW5kZXg6LjUscmdiOlsyMDMsNzAsMTIxXX0se2luZGV4Oi42MyxyZ2I6WzIyOSwxMDcsOTNdfSx7aW5kZXg6Ljc1LHJnYjpbMjQ4LDE0OCw2NV19LHtpbmRleDouODgscmdiOlsyNTMsMTk1LDQwXX0se2luZGV4OjEscmdiOlsyNDAsMjQ5LDMzXX1dLHdhcm06W3tpbmRleDowLHJnYjpbMTI1LDAsMTc5XX0se2luZGV4Oi4xMyxyZ2I6WzE3MiwwLDE4N119LHtpbmRleDouMjUscmdiOlsyMTksMCwxNzBdfSx7aW5kZXg6LjM4LHJnYjpbMjU1LDAsMTMwXX0se2luZGV4Oi41LHJnYjpbMjU1LDYzLDc0XX0se2luZGV4Oi42MyxyZ2I6WzI1NSwxMjMsMF19LHtpbmRleDouNzUscmdiOlsyMzQsMTc2LDBdfSx7aW5kZXg6Ljg4LHJnYjpbMTkwLDIyOCwwXX0se2luZGV4OjEscmdiOlsxNDcsMjU1LDBdfV0sY29vbDpbe2luZGV4OjAscmdiOlsxMjUsMCwxNzldfSx7aW5kZXg6LjEzLHJnYjpbMTE2LDAsMjE4XX0se2luZGV4Oi4yNSxyZ2I6Wzk4LDc0LDIzN119LHtpbmRleDouMzgscmdiOls2OCwxNDYsMjMxXX0se2luZGV4Oi41LHJnYjpbMCwyMDQsMTk3XX0se2luZGV4Oi42MyxyZ2I6WzAsMjQ3LDE0Nl19LHtpbmRleDouNzUscmdiOlswLDI1NSw4OF19LHtpbmRleDouODgscmdiOls0MCwyNTUsOF19LHtpbmRleDoxLHJnYjpbMTQ3LDI1NSwwXX1dLCJyYWluYm93LXNvZnQiOlt7aW5kZXg6MCxyZ2I6WzEyNSwwLDE3OV19LHtpbmRleDouMSxyZ2I6WzE5OSwwLDE4MF19LHtpbmRleDouMixyZ2I6WzI1NSwwLDEyMV19LHtpbmRleDouMyxyZ2I6WzI1NSwxMDgsMF19LHtpbmRleDouNCxyZ2I6WzIyMiwxOTQsMF19LHtpbmRleDouNSxyZ2I6WzE1MCwyNTUsMF19LHtpbmRleDouNixyZ2I6WzAsMjU1LDU1XX0se2luZGV4Oi43LHJnYjpbMCwyNDYsMTUwXX0se2luZGV4Oi44LHJnYjpbNTAsMTY3LDIyMl19LHtpbmRleDouOSxyZ2I6WzEwMyw1MSwyMzVdfSx7aW5kZXg6MSxyZ2I6WzEyNCwwLDE4Nl19XSxiYXRoeW1ldHJ5Olt7aW5kZXg6MCxyZ2I6WzQwLDI2LDQ0XX0se2luZGV4Oi4xMyxyZ2I6WzU5LDQ5LDkwXX0se2luZGV4Oi4yNSxyZ2I6WzY0LDc2LDEzOV19LHtpbmRleDouMzgscmdiOls2MywxMTAsMTUxXX0se2luZGV4Oi41LHJnYjpbNzIsMTQyLDE1OF19LHtpbmRleDouNjMscmdiOls4NSwxNzQsMTYzXX0se2luZGV4Oi43NSxyZ2I6WzEyMCwyMDYsMTYzXX0se2luZGV4Oi44OCxyZ2I6WzE4NywyMzAsMTcyXX0se2luZGV4OjEscmdiOlsyNTMsMjU0LDIwNF19XSxjZG9tOlt7aW5kZXg6MCxyZ2I6WzQ3LDE1LDYyXX0se2luZGV4Oi4xMyxyZ2I6Wzg3LDIzLDg2XX0se2luZGV4Oi4yNSxyZ2I6WzEzMCwyOCw5OV19LHtpbmRleDouMzgscmdiOlsxNzEsNDEsOTZdfSx7aW5kZXg6LjUscmdiOlsyMDYsNjcsODZdfSx7aW5kZXg6LjYzLHJnYjpbMjMwLDEwNiw4NF19LHtpbmRleDouNzUscmdiOlsyNDIsMTQ5LDEwM119LHtpbmRleDouODgscmdiOlsyNDksMTkzLDEzNV19LHtpbmRleDoxLHJnYjpbMjU0LDIzNywxNzZdfV0sY2hsb3JvcGh5bGw6W3tpbmRleDowLHJnYjpbMTgsMzYsMjBdfSx7aW5kZXg6LjEzLHJnYjpbMjUsNjMsNDFdfSx7aW5kZXg6LjI1LHJnYjpbMjQsOTEsNTldfSx7aW5kZXg6LjM4LHJnYjpbMTMsMTE5LDcyXX0se2luZGV4Oi41LHJnYjpbMTgsMTQ4LDgwXX0se2luZGV4Oi42MyxyZ2I6WzgwLDE3Myw4OV19LHtpbmRleDouNzUscmdiOlsxMzIsMTk2LDEyMl19LHtpbmRleDouODgscmdiOlsxNzUsMjIxLDE2Ml19LHtpbmRleDoxLHJnYjpbMjE1LDI0OSwyMDhdfV0sZGVuc2l0eTpbe2luZGV4OjAscmdiOls1NCwxNCwzNl19LHtpbmRleDouMTMscmdiOls4OSwyMyw4MF19LHtpbmRleDouMjUscmdiOlsxMTAsNDUsMTMyXX0se2luZGV4Oi4zOCxyZ2I6WzEyMCw3NywxNzhdfSx7aW5kZXg6LjUscmdiOlsxMjAsMTEzLDIxM119LHtpbmRleDouNjMscmdiOlsxMTUsMTUxLDIyOF19LHtpbmRleDouNzUscmdiOlsxMzQsMTg1LDIyN119LHtpbmRleDouODgscmdiOlsxNzcsMjE0LDIyN119LHtpbmRleDoxLHJnYjpbMjMwLDI0MSwyNDFdfV0sImZyZWVzdXJmYWNlLWJsdWUiOlt7aW5kZXg6MCxyZ2I6WzMwLDQsMTEwXX0se2luZGV4Oi4xMyxyZ2I6WzQ3LDE0LDE3Nl19LHtpbmRleDouMjUscmdiOls0MSw0NSwyMzZdfSx7aW5kZXg6LjM4LHJnYjpbMjUsOTksMjEyXX0se2luZGV4Oi41LHJnYjpbNjgsMTMxLDIwMF19LHtpbmRleDouNjMscmdiOlsxMTQsMTU2LDE5N119LHtpbmRleDouNzUscmdiOlsxNTcsMTgxLDIwM119LHtpbmRleDouODgscmdiOlsyMDAsMjA4LDIxNl19LHtpbmRleDoxLHJnYjpbMjQxLDIzNywyMzZdfV0sImZyZWVzdXJmYWNlLXJlZCI6W3tpbmRleDowLHJnYjpbNjAsOSwxOF19LHtpbmRleDouMTMscmdiOlsxMDAsMTcsMjddfSx7aW5kZXg6LjI1LHJnYjpbMTQyLDIwLDI5XX0se2luZGV4Oi4zOCxyZ2I6WzE3Nyw0MywyN119LHtpbmRleDouNSxyZ2I6WzE5Miw4Nyw2M119LHtpbmRleDouNjMscmdiOlsyMDUsMTI1LDEwNV19LHtpbmRleDouNzUscmdiOlsyMTYsMTYyLDE0OF19LHtpbmRleDouODgscmdiOlsyMjcsMTk5LDE5M119LHtpbmRleDoxLHJnYjpbMjQxLDIzNywyMzZdfV0sb3h5Z2VuOlt7aW5kZXg6MCxyZ2I6WzY0LDUsNV19LHtpbmRleDouMTMscmdiOlsxMDYsNiwxNV19LHtpbmRleDouMjUscmdiOlsxNDQsMjYsN119LHtpbmRleDouMzgscmdiOlsxNjgsNjQsM119LHtpbmRleDouNSxyZ2I6WzE4OCwxMDAsNF19LHtpbmRleDouNjMscmdiOlsyMDYsMTM2LDExXX0se2luZGV4Oi43NSxyZ2I6WzIyMCwxNzQsMjVdfSx7aW5kZXg6Ljg4LHJnYjpbMjMxLDIxNSw0NF19LHtpbmRleDoxLHJnYjpbMjQ4LDI1NCwxMDVdfV0scGFyOlt7aW5kZXg6MCxyZ2I6WzUxLDIwLDI0XX0se2luZGV4Oi4xMyxyZ2I6WzkwLDMyLDM1XX0se2luZGV4Oi4yNSxyZ2I6WzEyOSw0NCwzNF19LHtpbmRleDouMzgscmdiOlsxNTksNjgsMjVdfSx7aW5kZXg6LjUscmdiOlsxODIsOTksMTldfSx7aW5kZXg6LjYzLHJnYjpbMTk5LDEzNCwyMl19LHtpbmRleDouNzUscmdiOlsyMTIsMTcxLDM1XX0se2luZGV4Oi44OCxyZ2I6WzIyMSwyMTAsNTRdfSx7aW5kZXg6MSxyZ2I6WzIyNSwyNTMsNzVdfV0scGhhc2U6W3tpbmRleDowLHJnYjpbMTQ1LDEwNSwxOF19LHtpbmRleDouMTMscmdiOlsxODQsNzEsMzhdfSx7aW5kZXg6LjI1LHJnYjpbMTg2LDU4LDExNV19LHtpbmRleDouMzgscmdiOlsxNjAsNzEsMTg1XX0se2luZGV4Oi41LHJnYjpbMTEwLDk3LDIxOF19LHtpbmRleDouNjMscmdiOls1MCwxMjMsMTY0XX0se2luZGV4Oi43NSxyZ2I6WzMxLDEzMSwxMTBdfSx7aW5kZXg6Ljg4LHJnYjpbNzcsMTI5LDM0XX0se2luZGV4OjEscmdiOlsxNDUsMTA1LDE4XX1dLHNhbGluaXR5Olt7aW5kZXg6MCxyZ2I6WzQyLDI0LDEwOF19LHtpbmRleDouMTMscmdiOlszMyw1MCwxNjJdfSx7aW5kZXg6LjI1LHJnYjpbMTUsOTAsMTQ1XX0se2luZGV4Oi4zOCxyZ2I6WzQwLDExOCwxMzddfSx7aW5kZXg6LjUscmdiOls1OSwxNDYsMTM1XX0se2luZGV4Oi42MyxyZ2I6Wzc5LDE3NSwxMjZdfSx7aW5kZXg6Ljc1LHJnYjpbMTIwLDIwMywxMDRdfSx7aW5kZXg6Ljg4LHJnYjpbMTkzLDIyMSwxMDBdfSx7aW5kZXg6MSxyZ2I6WzI1MywyMzksMTU0XX1dLHRlbXBlcmF0dXJlOlt7aW5kZXg6MCxyZ2I6WzQsMzUsNTFdfSx7aW5kZXg6LjEzLHJnYjpbMjMsNTEsMTIyXX0se2luZGV4Oi4yNSxyZ2I6Wzg1LDU5LDE1N119LHtpbmRleDouMzgscmdiOlsxMjksNzksMTQzXX0se2luZGV4Oi41LHJnYjpbMTc1LDk1LDEzMF19LHtpbmRleDouNjMscmdiOlsyMjIsMTEyLDEwMV19LHtpbmRleDouNzUscmdiOlsyNDksMTQ2LDY2XX0se2luZGV4Oi44OCxyZ2I6WzI0OSwxOTYsNjVdfSx7aW5kZXg6MSxyZ2I6WzIzMiwyNTAsOTFdfV0sdHVyYmlkaXR5Olt7aW5kZXg6MCxyZ2I6WzM0LDMxLDI3XX0se2luZGV4Oi4xMyxyZ2I6WzY1LDUwLDQxXX0se2luZGV4Oi4yNSxyZ2I6Wzk4LDY5LDUyXX0se2luZGV4Oi4zOCxyZ2I6WzEzMSw4OSw1N119LHtpbmRleDouNSxyZ2I6WzE2MSwxMTIsNTldfSx7aW5kZXg6LjYzLHJnYjpbMTg1LDE0MCw2Nl19LHtpbmRleDouNzUscmdiOlsyMDIsMTc0LDg4XX0se2luZGV4Oi44OCxyZ2I6WzIxNiwyMDksMTI2XX0se2luZGV4OjEscmdiOlsyMzMsMjQ2LDE3MV19XSwidmVsb2NpdHktYmx1ZSI6W3tpbmRleDowLHJnYjpbMTcsMzIsNjRdfSx7aW5kZXg6LjEzLHJnYjpbMzUsNTIsMTE2XX0se2luZGV4Oi4yNSxyZ2I6WzI5LDgxLDE1Nl19LHtpbmRleDouMzgscmdiOlszMSwxMTMsMTYyXX0se2luZGV4Oi41LHJnYjpbNTAsMTQ0LDE2OV19LHtpbmRleDouNjMscmdiOls4NywxNzMsMTc2XX0se2luZGV4Oi43NSxyZ2I6WzE0OSwxOTYsMTg5XX0se2luZGV4Oi44OCxyZ2I6WzIwMywyMjEsMjExXX0se2luZGV4OjEscmdiOlsyNTQsMjUxLDIzMF19XSwidmVsb2NpdHktZ3JlZW4iOlt7aW5kZXg6MCxyZ2I6WzIzLDM1LDE5XX0se2luZGV4Oi4xMyxyZ2I6WzI0LDY0LDM4XX0se2luZGV4Oi4yNSxyZ2I6WzExLDk1LDQ1XX0se2luZGV4Oi4zOCxyZ2I6WzM5LDEyMywzNV19LHtpbmRleDouNSxyZ2I6Wzk1LDE0NiwxMl19LHtpbmRleDouNjMscmdiOlsxNTIsMTY1LDE4XX0se2luZGV4Oi43NSxyZ2I6WzIwMSwxODYsNjldfSx7aW5kZXg6Ljg4LHJnYjpbMjMzLDIxNiwxMzddfSx7aW5kZXg6MSxyZ2I6WzI1NSwyNTMsMjA1XX1dLGN1YmVoZWxpeDpbe2luZGV4OjAscmdiOlswLDAsMF19LHtpbmRleDouMDcscmdiOlsyMiw1LDU5XX0se2luZGV4Oi4xMyxyZ2I6WzYwLDQsMTA1XX0se2luZGV4Oi4yLHJnYjpbMTA5LDEsMTM1XX0se2luZGV4Oi4yNyxyZ2I6WzE2MSwwLDE0N119LHtpbmRleDouMzMscmdiOlsyMTAsMiwxNDJdfSx7aW5kZXg6LjQscmdiOlsyNTEsMTEsMTIzXX0se2luZGV4Oi40NyxyZ2I6WzI1NSwyOSw5N119LHtpbmRleDouNTMscmdiOlsyNTUsNTQsNjldfSx7aW5kZXg6LjYscmdiOlsyNTUsODUsNDZdfSx7aW5kZXg6LjY3LHJnYjpbMjU1LDEyMCwzNF19LHtpbmRleDouNzMscmdiOlsyNTUsMTU3LDM3XX0se2luZGV4Oi44LHJnYjpbMjQxLDE5MSw1N119LHtpbmRleDouODcscmdiOlsyMjQsMjIwLDkzXX0se2luZGV4Oi45MyxyZ2I6WzIxOCwyNDEsMTQyXX0se2luZGV4OjEscmdiOlsyMjcsMjUzLDE5OF19XX19LHt9XSwxMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb2xvclNjYWxlIiksaT10KCJsZXJwIik7ZnVuY3Rpb24gYSh0KXtyZXR1cm5bdFswXS8yNTUsdFsxXS8yNTUsdFsyXS8yNTUsdFszXV19ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGUscj0iIyIsbj0wO248MzsrK24pcis9KCIwMCIrKGU9KGU9dFtuXSkudG9TdHJpbmcoMTYpKSkuc3Vic3RyKGUubGVuZ3RoKTtyZXR1cm4gcn1mdW5jdGlvbiBzKHQpe3JldHVybiJyZ2JhKCIrdC5qb2luKCIsIikrIikifWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZSxyLGwsYyx1LGYsaCxwLGQsbTt0fHwodD17fSk7cD0odC5uc2hhZGVzfHw3MiktMSxoPXQuZm9ybWF0fHwiaGV4IiwoZj10LmNvbG9ybWFwKXx8KGY9ImpldCIpO2lmKCJzdHJpbmciPT10eXBlb2YgZil7aWYoZj1mLnRvTG93ZXJDYXNlKCksIW5bZl0pdGhyb3cgRXJyb3IoZisiIG5vdCBhIHN1cHBvcnRlZCBjb2xvcnNjYWxlIik7dT1uW2ZdfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkoZikpdGhyb3cgRXJyb3IoInVuc3VwcG9ydGVkIGNvbG9ybWFwIG9wdGlvbiIsZik7dT1mLnNsaWNlKCl9aWYodS5sZW5ndGg+cCsxKXRocm93IG5ldyBFcnJvcihmKyIgbWFwIHJlcXVpcmVzIG5zaGFkZXMgdG8gYmUgYXQgbGVhc3Qgc2l6ZSAiK3UubGVuZ3RoKTtkPUFycmF5LmlzQXJyYXkodC5hbHBoYSk/MiE9PXQuYWxwaGEubGVuZ3RoP1sxLDFdOnQuYWxwaGEuc2xpY2UoKToibnVtYmVyIj09dHlwZW9mIHQuYWxwaGE/W3QuYWxwaGEsdC5hbHBoYV06WzEsMV07ZT11Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodC5pbmRleCpwKX0pKSxkWzBdPU1hdGgubWluKE1hdGgubWF4KGRbMF0sMCksMSksZFsxXT1NYXRoLm1pbihNYXRoLm1heChkWzFdLDApLDEpO3ZhciBnPXUubWFwKChmdW5jdGlvbih0LGUpe3ZhciByPXVbZV0uaW5kZXgsbj11W2VdLnJnYi5zbGljZSgpO3JldHVybiA0PT09bi5sZW5ndGgmJm5bM10+PTAmJm5bM108PTF8fChuWzNdPWRbMF0rKGRbMV0tZFswXSkqciksbn0pKSx2PVtdO2ZvcihtPTA7bTxlLmxlbmd0aC0xOysrbSl7Yz1lW20rMV0tZVttXSxyPWdbbV0sbD1nW20rMV07Zm9yKHZhciB5PTA7eTxjO3krKyl7dmFyIHg9eS9jO3YucHVzaChbTWF0aC5yb3VuZChpKHJbMF0sbFswXSx4KSksTWF0aC5yb3VuZChpKHJbMV0sbFsxXSx4KSksTWF0aC5yb3VuZChpKHJbMl0sbFsyXSx4KSksaShyWzNdLGxbM10seCldKX19di5wdXNoKHVbdS5sZW5ndGgtMV0ucmdiLmNvbmNhdChkWzFdKSksImhleCI9PT1oP3Y9di5tYXAobyk6InJnYmFTdHJpbmciPT09aD92PXYubWFwKHMpOiJmbG9hdCI9PT1oJiYodj12Lm1hcChhKSk7cmV0dXJuIHZ9fSx7Ii4vY29sb3JTY2FsZSI6MTMxLGxlcnA6NDQwfV0sMTMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbz1uKGUscixhKTtpZigwPT09byl7dmFyIHM9aShuKHQsZSxyKSksYz1pKG4odCxlLGEpKTtpZihzPT09Yyl7aWYoMD09PXMpe3ZhciB1PWwodCxlLHIpLGY9bCh0LGUsYSk7cmV0dXJuIHU9PT1mPzA6dT8xOi0xfXJldHVybiAwfXJldHVybiAwPT09Yz9zPjB8fGwodCxlLGEpPy0xOjE6MD09PXM/Yz4wfHxsKHQsZSxyKT8xOi0xOmkoYy1zKX12YXIgaD1uKHQsZSxyKTtyZXR1cm4gaD4wP28+MCYmbih0LGUsYSk+MD8xOi0xOmg8MD9vPjB8fG4odCxlLGEpPjA/MTotMTpuKHQsZSxhKT4wfHxsKHQsZSxyKT8xOi0xfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxpPXQoInNpZ251bSIpLGE9dCgidHdvLXN1bSIpLG89dCgicm9idXN0LXByb2R1Y3QiKSxzPXQoInJvYnVzdC1zdW0iKTtmdW5jdGlvbiBsKHQsZSxyKXt2YXIgbj1hKHRbMF0sLWVbMF0pLGk9YSh0WzFdLC1lWzFdKSxsPWEoclswXSwtZVswXSksYz1hKHJbMV0sLWVbMV0pLHU9cyhvKG4sbCksbyhpLGMpKTtyZXR1cm4gdVt1Lmxlbmd0aC0xXT49MH19LHsicm9idXN0LW9yaWVudGF0aW9uIjo1MjQsInJvYnVzdC1wcm9kdWN0Ijo1MjUsInJvYnVzdC1zdW0iOjUyOSxzaWdudW06MTM0LCJ0d28tc3VtIjo1Nzh9XSwxMzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0PDA/LTE6dD4wPzE6MH19LHt9XSwxMzU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Lmxlbmd0aCxhPXQubGVuZ3RoLWUubGVuZ3RoO2lmKGEpcmV0dXJuIGE7c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gMDtjYXNlIDE6cmV0dXJuIHRbMF0tZVswXTtjYXNlIDI6cmV0dXJuIHRbMF0rdFsxXS1lWzBdLWVbMV18fG4odFswXSx0WzFdKS1uKGVbMF0sZVsxXSk7Y2FzZSAzOnZhciBvPXRbMF0rdFsxXSxzPWVbMF0rZVsxXTtpZihhPW8rdFsyXS0ocytlWzJdKSlyZXR1cm4gYTt2YXIgbD1uKHRbMF0sdFsxXSksYz1uKGVbMF0sZVsxXSk7cmV0dXJuIG4obCx0WzJdKS1uKGMsZVsyXSl8fG4obCt0WzJdLG8pLW4oYytlWzJdLHMpO2Nhc2UgNDp2YXIgdT10WzBdLGY9dFsxXSxoPXRbMl0scD10WzNdLGQ9ZVswXSxtPWVbMV0sZz1lWzJdLHY9ZVszXTtyZXR1cm4gdStmK2grcC0oZCttK2crdil8fG4odSxmLGgscCktbihkLG0sZyx2LGQpfHxuKHUrZix1K2gsdStwLGYraCxmK3AsaCtwKS1uKGQrbSxkK2csZCt2LG0rZyxtK3YsZyt2KXx8bih1K2YraCx1K2YrcCx1K2grcCxmK2grcCktbihkK20rZyxkK20rdixkK2crdixtK2crdik7ZGVmYXVsdDpmb3IodmFyIHk9dC5zbGljZSgpLnNvcnQoaSkseD1lLnNsaWNlKCkuc29ydChpKSxiPTA7YjxyOysrYilpZihhPXlbYl0teFtiXSlyZXR1cm4gYTtyZXR1cm4gMH19O3ZhciBuPU1hdGgubWluO2Z1bmN0aW9uIGkodCxlKXtyZXR1cm4gdC1lfX0se31dLDEzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJjb21wYXJlLWNlbGwiKSxpPXQoImNlbGwtb3JpZW50YXRpb24iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LGUpfHxpKHQpLWkoZSl9fSx7ImNlbGwtb3JpZW50YXRpb24iOjExOCwiY29tcGFyZS1jZWxsIjoxMzV9XSwxMzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvY2gxZCIpLGk9dCgiLi9saWIvY2gyZCIpLGE9dCgiLi9saWIvY2huZCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtpZigwPT09ZSlyZXR1cm5bXTtpZigxPT09ZSlyZXR1cm5bWzBdXTt2YXIgcj10WzBdLmxlbmd0aDtpZigwPT09cilyZXR1cm5bXTtpZigxPT09cilyZXR1cm4gbih0KTtpZigyPT09cilyZXR1cm4gaSh0KTtyZXR1cm4gYSh0LHIpfX0seyIuL2xpYi9jaDFkIjoxMzgsIi4vbGliL2NoMmQiOjEzOSwiLi9saWIvY2huZCI6MTQwfV0sMTM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPTAsbj0xO248dC5sZW5ndGg7KytuKXRbbl1bMF08dFtlXVswXSYmKGU9biksdFtuXVswXT50W3JdWzBdJiYocj1uKTtyZXR1cm4gZTxyP1tbZV0sW3JdXTplPnI/W1tyXSxbZV1dOltbZV1dfX0se31dLDEzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0KSxyPWUubGVuZ3RoO2lmKHI8PTIpcmV0dXJuW107Zm9yKHZhciBpPW5ldyBBcnJheShyKSxhPWVbci0xXSxvPTA7bzxyOysrbyl7dmFyIHM9ZVtvXTtpW29dPVthLHNdLGE9c31yZXR1cm4gaX07dmFyIG49dCgibW9ub3RvbmUtY29udmV4LWh1bGwtMmQiKX0seyJtb25vdG9uZS1jb252ZXgtaHVsbC0yZCI6NDQ4fV0sMTQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gbih0LCEwKX1jYXRjaChvKXt2YXIgcj1pKHQpO2lmKHIubGVuZ3RoPD1lKXJldHVybltdO3ZhciBhPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPGUubGVuZ3RoOysraSluW2ldPXRbZVtpXV07dmFyIGE9ZS5sZW5ndGg7Zm9yKGk9MDtpPHI7KytpKWUuaW5kZXhPZihpKTwwJiYoblthKytdPXRbaV0pO3JldHVybiBufSh0LHIpO3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPWUubGVuZ3RoLGk9MDtpPHI7KytpKWZvcih2YXIgYT10W2ldLG89MDtvPGEubGVuZ3RoOysrbyl7dmFyIHM9YVtvXTtpZihzPG4pYVtvXT1lW3NdO2Vsc2V7cy09bjtmb3IodmFyIGw9MDtsPG47KytsKXM+PWVbbF0mJihzKz0xKTthW29dPXN9fXJldHVybiB0fShuKGEsITApLHIpfX07dmFyIG49dCgiaW5jcmVtZW50YWwtY29udmV4LWh1bGwiKSxpPXQoImFmZmluZS1odWxsIil9LHsiYWZmaW5lLWh1bGwiOjY5LCJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCI6NDI4fV0sMTQxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtBRkc6ImFmZ2hhbiIsQUxBOiJcXGJcXHdsYW5kIixBTEI6ImFsYmFuaWEiLERaQToiYWxnZXJpYSIsQVNNOiJeKD89LiphbWVyaWMpLipzYW1vYSIsQU5EOiJhbmRvcnJhIixBR086ImFuZ29sYSIsQUlBOiJhbmd1aWxsP2EiLEFUQToiYW50YXJjdGljYSIsQVRHOiJhbnRpZ3VhIixBUkc6ImFyZ2VudGluIixBUk06ImFybWVuaWEiLEFCVzoiXig/IS4qYm9uYWlyZSkuKlxcYmFydWJhIixBVVM6ImF1c3RyYWxpYSIsQVVUOiJeKD8hLipodW5nYXJ5KS4qYXVzdHJpYXxcXGJhdXN0cmkuKlxcYmVtcCIsQVpFOiJhemVyYmFpamFuIixCSFM6ImJhaGFtYXMiLEJIUjoiYmFocmFpbiIsQkdEOiJiYW5nbGFkZXNofF4oPz0uKmVhc3QpLipwYWtpP3N0YW4iLEJSQjoiYmFyYmFkb3MiLEJMUjoiYmVsYXJ1c3xieWVsbyIsQkVMOiJeKD8hLipsdXhlbSkuKmJlbGdpdW0iLEJMWjoiYmVsaXplfF4oPz0uKmJyaXRpc2gpLipob25kdXJhcyIsQkVOOiJiZW5pbnxkYWhvbWUiLEJNVToiYmVybXVkYSIsQlROOiJiaHV0YW4iLEJPTDoiYm9saXZpYSIsQkVTOiJeKD89Lipib25haXJlKS4qZXVzdGF0aXVzfF4oPz0uKmNhcmliKS4qbmV0aGVybGFuZHN8XFxiYmVzLj9pc2xhbmRzIixCSUg6ImhlcnplZ292aW5hfGJvc25pYSIsQldBOiJib3Rzd2FuYXxiZWNodWFuYSIsQlZUOiJib3V2ZXQiLEJSQToiYnJhemlsIixJT1Q6ImJyaXRpc2guP2luZGlhbi4/b2NlYW4iLEJSTjoiYnJ1bmVpIixCR1I6ImJ1bGdhcmlhIixCRkE6ImJ1cmtpbmF8XFxiZmFzb3x1cHBlci4/dm9sdGEiLEJESToiYnVydW5kaSIsQ1BWOiJ2ZXJkZSIsS0hNOiJjYW1ib2RpYXxrYW1wdWNoZWF8a2htZXIiLENNUjoiY2FtZXJvb24iLENBTjoiY2FuYWRhIixDWU06ImNheW1hbiIsQ0FGOiJcXGJjZW50cmFsLmFmcmljYW4ucmVwdWJsaWMiLFRDRDoiXFxiY2hhZCIsQ0hMOiJcXGJjaGlsZSIsQ0hOOiJeKD8hLipcXGJtYWMpKD8hLipcXGJob25nKSg/IS4qXFxidGFpKSg/IS4qXFxicmVwKS4qY2hpbmF8Xig/PS4qcGVvKSg/PS4qcmVwKS4qY2hpbmEiLENYUjoiY2hyaXN0bWFzIixDQ0s6IlxcYmNvY29zfGtlZWxpbmciLENPTDoiY29sb21iaWEiLENPTToiY29tb3JvIixDT0c6Il4oPyEuKlxcYmRlbSkoPyEuKlxcYmRbXFwuXT9yKSg/IS4qa2luc2hhc2EpKD8hLip6YWlyZSkoPyEuKmJlbGcpKD8hLipsLm9wb2xkdmlsbGUpKD8hLipmcmVlKS4qXFxiY29uZ28iLENPSzoiXFxiY29vayIsQ1JJOiJjb3N0YS4/cmljYSIsQ0lWOiJpdm9pcmV8aXZvcnkiLEhSVjoiY3JvYXRpYSIsQ1VCOiJcXGJjdWJhIixDVVc6Il4oPyEuKmJvbmFpcmUpLipcXGJjdXJhKGN8XHhlNylhbyIsQ1lQOiJjeXBydXMiLENTSzoiY3plY2hvc2xvdmFraWEiLENaRToiXig/PS4qcmVwKS4qY3plY2h8Y3plY2hpYXxib2hlbWlhIixDT0Q6IlxcYmRlbS4qY29uZ298Y29uZ28uKlxcYmRlbXxjb25nby4qXFxiZFtcXC5dP3J8XFxiZFtcXC5dP3IuKmNvbmdvfGJlbGdpYW4uP2NvbmdvfGNvbmdvLj9mcmVlLj9zdGF0ZXxraW5zaGFzYXx6YWlyZXxsLm9wb2xkdmlsbGV8ZHJjfGRyb2N8cmRjIixETks6ImRlbm1hcmsiLERKSToiZGppYm91dGkiLERNQToiZG9taW5pY2EoPyFuKSIsRE9NOiJkb21pbmljYW4ucmVwIixFQ1U6ImVjdWFkb3IiLEVHWToiZWd5cHQiLFNMVjoiZWwuP3NhbHZhZG9yIixHTlE6Imd1aW5lLiplcXxlcS4qZ3VpbmV8Xig/PS4qc3BhbikuKmd1aW5lYSIsRVJJOiJlcml0cmVhIixFU1Q6ImVzdG9uaWEiLEVUSDoiZXRoaW9waWF8YWJ5c3NpbmlhIixGTEs6ImZhbGtsYW5kfG1hbHZpbmFzIixGUk86ImZhcm9lfGZhZXJvZSIsRkpJOiJmaWppIixGSU46ImZpbmxhbmQiLEZSQToiXig/IS4qXFxiZGVwKSg/IS4qbWFydGluaXF1ZSkuKmZyYW5jZXxmcmVuY2guP3JlcHVibGljfFxcYmdhdWwiLEdVRjoiXig/PS4qZnJlbmNoKS4qZ3VpYW5hIixQWUY6ImZyZW5jaC4/cG9seW5lc2lhfHRhaGl0aSIsQVRGOiJmcmVuY2guP3NvdXRoZXJuIixHQUI6ImdhYm9uIixHTUI6ImdhbWJpYSIsR0VPOiJeKD8hLipzb3V0aCkuKmdlb3JnaWEiLEREUjoiZ2VybWFuLj9kZW1vY3JhdGljLj9yZXB1YmxpY3xkZW1vY3JhdGljLj9yZXB1YmxpYy4qZ2VybWFueXxlYXN0Lmdlcm1hbnkiLERFVToiXig/IS4qZWFzdCkuKmdlcm1hbnl8Xig/PS4qXFxiZmVkLipcXGJyZXApLipnZXJtYW4iLEdIQToiZ2hhbmF8Z29sZC4/Y29hc3QiLEdJQjoiZ2licmFsdGFyIixHUkM6ImdyZWVjZXxoZWxsZW5pY3xoZWxsYXMiLEdSTDoiZ3JlZW5sYW5kIixHUkQ6ImdyZW5hZGEiLEdMUDoiZ3VhZGVsb3VwZSIsR1VNOiJcXGJndWFtIixHVE06Imd1YXRlbWFsYSIsR0dZOiJndWVybnNleSIsR0lOOiJeKD8hLiplcSkoPyEuKnNwYW4pKD8hLipiaXNzYXUpKD8hLipwb3J0dSkoPyEuKm5ldykuKmd1aW5lYSIsR05COiJiaXNzYXV8Xig/PS4qcG9ydHUpLipndWluZWEiLEdVWToiZ3V5YW5hfGJyaXRpc2guP2d1aWFuYSIsSFRJOiJoYWl0aSIsSE1EOiJoZWFyZC4qbWNkb25hbGQiLFZBVDoiaG9seS4/c2VlfHZhdGljYW58cGFwYWwuP3N0IixITkQ6Il4oPyEuKmJyaXQpLipob25kdXJhcyIsSEtHOiJob25nLj9rb25nIixIVU46Il4oPyEuKmF1c3RyKS4qaHVuZ2FyeSIsSVNMOiJpY2VsYW5kIixJTkQ6ImluZGlhKD8hLipvY2VhKSIsSUROOiJpbmRvbmVzaWEiLElSTjoiXFxiaXJhbnxwZXJzaWEiLElSUToiXFxiaXJhcXxtZXNvcG90YW1pYSIsSVJMOiIoXmlyZWxhbmQpfChecmVwdWJsaWMuKmlyZWxhbmQpIixJTU46Il4oPz0uKmlzbGUpLipcXGJtYW4iLElTUjoiaXNyYWVsIixJVEE6Iml0YWx5IixKQU06ImphbWFpY2EiLEpQTjoiamFwYW4iLEpFWToiamVyc2V5IixKT1I6ImpvcmRhbiIsS0FaOiJrYXphayIsS0VOOiJrZW55YXxicml0aXNoLj9lYXN0Lj9hZnJpY2F8ZWFzdC4/YWZyaWNhLj9wcm90IixLSVI6ImtpcmliYXRpIixQUks6Il4oPz0uKmRlbW9jcmF0fHBlb3BsZXxub3J0aHxkLipwLioucikuKlxcYmtvcmVhfGRwcmt8a29yZWEuKihkLipwLipyKSIsS1dUOiJrdXdhaXQiLEtHWjoia3lyZ3l6fGtpcmdoaXoiLExBTzoiXFxibGFvcz9cXGIiLExWQToibGF0dmlhIixMQk46ImxlYmFub24iLExTTzoibGVzb3Rob3xiYXN1dG8iLExCUjoibGliZXJpYSIsTEJZOiJsaWJ5YSIsTElFOiJsaWVjaHRlbnN0ZWluIixMVFU6ImxpdGh1YW5pYSIsTFVYOiJeKD8hLipiZWxnKS4qbHV4ZW0iLE1BQzoibWFjYShvfHUpIixNREc6Im1hZGFnYXNjYXJ8bWFsYWdhc3kiLE1XSToibWFsYXdpfG55YXNhIixNWVM6Im1hbGF5c2lhIixNRFY6Im1hbGRpdmUiLE1MSToiXFxibWFsaVxcYiIsTUxUOiJcXGJtYWx0YSIsTUhMOiJtYXJzaGFsbCIsTVRROiJtYXJ0aW5pcXVlIixNUlQ6Im1hdXJpdGFuaWEiLE1VUzoibWF1cml0aXVzIixNWVQ6IlxcYm1heW90dGUiLE1FWDoiXFxibWV4aWMiLEZTTToiZmVkLiptaWNyb25lc2lhfG1pY3JvbmVzaWEuKmZlZCIsTUNPOiJtb25hY28iLE1ORzoibW9uZ29saWEiLE1ORToiXig/IS4qc2VyYmlhKS4qbW9udGVuZWdybyIsTVNSOiJtb250c2VycmF0IixNQVI6Im1vcm9jY298XFxibWFyb2MiLE1PWjoibW96YW1iaXF1ZSIsTU1SOiJteWFubWFyfGJ1cm1hIixOQU06Im5hbWliaWEiLE5SVToibmF1cnUiLE5QTDoibmVwYWwiLE5MRDoiXig/IS4qXFxiYW50KSg/IS4qXFxiY2FyaWIpLipuZXRoZXJsYW5kcyIsQU5UOiJeKD89LipcXGJhbnQpLioobmV0aGVyfGR1dGNoKSIsTkNMOiJuZXcuP2NhbGVkb25pYSIsTlpMOiJuZXcuP3plYWxhbmQiLE5JQzoibmljYXJhZ3VhIixORVI6IlxcYm5pZ2VyKD8haWEpIixOR0E6Im5pZ2VyaWEiLE5JVToibml1ZSIsTkZLOiJub3Jmb2xrIixNTlA6Im1hcmlhbmEiLE5PUjoibm9yd2F5IixPTU46IlxcYm9tYW58dHJ1Y2lhbCIsUEFLOiJeKD8hLiplYXN0KS4qcGFraT9zdGFuIixQTFc6InBhbGF1IixQU0U6InBhbGVzdGlufFxcYmdhemF8d2VzdC4/YmFuayIsUEFOOiJwYW5hbWEiLFBORzoicGFwdWF8bmV3Lj9ndWluZWEiLFBSWToicGFyYWd1YXkiLFBFUjoicGVydSIsUEhMOiJwaGlsaXBwaW5lcyIsUENOOiJwaXRjYWlybiIsUE9MOiJwb2xhbmQiLFBSVDoicG9ydHVnYWwiLFBSSToicHVlcnRvLj9yaWNvIixRQVQ6InFhdGFyIixLT1I6Il4oPyEuKmQuKnAuKnIpKD8hLipkZW1vY3JhdCkoPyEuKnBlb3BsZSkoPyEuKm5vcnRoKS4qXFxia29yZWEoPyEuKmQuKnAuKnIpIixNREE6Im1vbGRvdnxiKGF8ZSlzc2FyYWJpYSIsUkVVOiJyKGV8XHhlOSl1bmlvbiIsUk9VOiJyKG98dXxvdSltYW5pYSIsUlVTOiJcXGJydXNzaWF8c292aWV0Lj91bmlvbnx1XFwuP3NcXC4/c1xcLj9yfHNvY2lhbGlzdC4/cmVwdWJsaWNzIixSV0E6InJ3YW5kYSIsQkxNOiJiYXJ0aChlfFx4ZTkpbGVteSIsU0hOOiJoZWxlbmEiLEtOQToia2l0dHN8XFxibmV2aXMiLExDQToiXFxibHVjaWEiLE1BRjoiXig/PS4qY29sbGVjdGl2aXR5KS4qbWFydGlufF4oPz0uKmZyYW5jZSkuKm1hcnRpbig/IWlxdWUpfF4oPz0uKmZyZW5jaCkuKm1hcnRpbig/IWlxdWUpIixTUE06Im1pcXVlbG9uIixWQ1Q6InZpbmNlbnQiLFdTTToiXig/IS4qYW1lcikuKnNhbW9hIixTTVI6InNhbi4/bWFyaW5vIixTVFA6IlxcYnMoYXxceGUzKW8uP3RvbShlfFx4ZTkpIixTQVU6IlxcYnNhXFx3Ki4/YXJhYmlhIixTRU46InNlbmVnYWwiLFNSQjoiXig/IS4qbW9udGUpLipzZXJiaWEiLFNZQzoic2V5Y2hlbGwiLFNMRToic2llcnJhIixTR1A6InNpbmdhcG9yZSIsU1hNOiJeKD8hLiptYXJ0aW4pKD8hLipzYWJhKS4qbWFhcnRlbiIsU1ZLOiJeKD8hLipjemUpLipzbG92YWsiLFNWTjoic2xvdmVuaWEiLFNMQjoic29sb21vbiIsU09NOiJzb21hbGkiLFpBRjoic291dGguYWZyaWNhfHNcXFxcLi4/YWZyaWNhIixTR1M6InNvdXRoLj9nZW9yZ2lhfHNhbmR3aWNoIixTU0Q6IlxcYnNcXHcqLj9zdWRhbiIsRVNQOiJzcGFpbiIsTEtBOiJzcmkuP2xhbmthfGNleWxvbiIsU0ROOiJeKD8hLipcXGJzKD8hdSkpLipzdWRhbiIsU1VSOiJzdXJpbmFtfGR1dGNoLj9ndWlhbmEiLFNKTToic3ZhbGJhcmQiLFNXWjoic3dhemlsYW5kIixTV0U6InN3ZWRlbiIsQ0hFOiJzd2l0enxzd2lzcyIsU1lSOiJzeXJpYSIsVFdOOiJ0YWl3YW58dGFpcGVpfGZvcm1vc2F8Xig/IS4qcGVvKSg/PS4qcmVwKS4qY2hpbmEiLFRKSzoidGFqaWsiLFRIQToidGhhaWxhbmR8XFxic2lhbSIsTUtEOiJtYWNlZG9uaWF8Znlyb20iLFRMUzoiXig/PS4qbGVzdGUpLip0aW1vcnxeKD89LiplYXN0KS4qdGltb3IiLFRHTzoidG9nbyIsVEtMOiJ0b2tlbGF1IixUT046InRvbmdhIixUVE86InRyaW5pZGFkfHRvYmFnbyIsVFVOOiJ0dW5pc2lhIixUVVI6InR1cmtleSIsVEtNOiJ0dXJrbWVuIixUQ0E6InR1cmtzIixUVVY6InR1dmFsdSIsVUdBOiJ1Z2FuZGEiLFVLUjoidWtyYWluIixBUkU6ImVtaXJhdGVzfF51XFwuP2FcXC4/ZVxcLj8kfHVuaXRlZC4/YXJhYi4/ZW0iLEdCUjoidW5pdGVkLj9raW5nZG9tfGJyaXRhaW58XnVcXC4/a1xcLj8kIixUWkE6InRhbnphbmlhIixVU0E6InVuaXRlZC4/c3RhdGVzXFxiKD8hLippc2xhbmRzKXxcXGJ1XFwuP3NcXC4/YVxcLj9cXGJ8Xlxccyp1XFwuP3NcXC4/XFxiKD8hLippc2xhbmRzKSIsVU1JOiJtaW5vci4/b3V0bHlpbmcuP2lzIixVUlk6InVydWd1YXkiLFVaQjoidXpiZWsiLFZVVDoidmFudWF0dXxuZXcuP2hlYnJpZGVzIixWRU46InZlbmV6dWVsYSIsVk5NOiJeKD8hLipyZXB1YmxpYykuKnZpZXQuP25hbXxeKD89Lipzb2NpYWxpc3QpLip2aWV0Lj9uYW0iLFZHQjoiXig/PS4qXFxidVxcLj9cXHM/aykuKnZpcmdpbnxeKD89Lipicml0KS4qdmlyZ2lufF4oPz0uKmtpbmdkb20pLip2aXJnaW4iLFZJUjoiXig/PS4qXFxidVxcLj9cXHM/cykuKnZpcmdpbnxeKD89LipzdGF0ZXMpLip2aXJnaW4iLFdMRjoiZnV0dW5hfHdhbGxpcyIsRVNIOiJ3ZXN0ZXJuLnNhaGFyYSIsWUVNOiJeKD8hLiphcmFiKSg/IS4qbm9ydGgpKD8hLipzYW5hKSg/IS4qcGVvKSg/IS4qZGVtKSg/IS4qc291dGgpKD8hLiphZGVuKSg/IS4qXFxicFxcLj9kXFwuP3IpLip5ZW1lbiIsWU1EOiJeKD89LipwZW8pLip5ZW1lbnxeKD8hLipyZXApKD89LipkZW0pLip5ZW1lbnxeKD89Lipzb3V0aCkuKnllbWVufF4oPz0uKmFkZW4pLip5ZW1lbnxeKD89LipcXGJwXFwuP2RcXC4/cikuKnllbWVuIixZVUc6Inl1Z29zbGF2aWEiLFpNQjoiemFtYmlhfG5vcnRoZXJuLj9yaG9kZXNpYSIsRUFaOiJ6YW56aWJhciIsWldFOiJ6aW1iYWJ3ZXxeKD8hLipub3J0aGVybikuKnJob2Rlc2lhIn19LHt9XSwxNDI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyJ4eC1zbWFsbCIsIngtc21hbGwiLCJzbWFsbCIsIm1lZGl1bSIsImxhcmdlIiwieC1sYXJnZSIsInh4LWxhcmdlIiwibGFyZ2VyIiwic21hbGxlciJdfSx7fV0sMTQzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPVsibm9ybWFsIiwiY29uZGVuc2VkIiwic2VtaS1jb25kZW5zZWQiLCJleHRyYS1jb25kZW5zZWQiLCJ1bHRyYS1jb25kZW5zZWQiLCJleHBhbmRlZCIsInNlbWktZXhwYW5kZWQiLCJleHRyYS1leHBhbmRlZCIsInVsdHJhLWV4cGFuZGVkIl19LHt9XSwxNDQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyJub3JtYWwiLCJpdGFsaWMiLCJvYmxpcXVlIl19LHt9XSwxNDU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyJub3JtYWwiLCJib2xkIiwiYm9sZGVyIiwibGlnaHRlciIsIjEwMCIsIjIwMCIsIjMwMCIsIjQwMCIsIjUwMCIsIjYwMCIsIjcwMCIsIjgwMCIsIjkwMCJdfSx7fV0sMTQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17cGFyc2U6dCgiLi9wYXJzZSIpLHN0cmluZ2lmeTp0KCIuL3N0cmluZ2lmeSIpfX0seyIuL3BhcnNlIjoxNDgsIi4vc3RyaW5naWZ5IjoxNDl9XSwxNDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY3NzLWZvbnQtc2l6ZS1rZXl3b3JkcyIpO2UuZXhwb3J0cz17aXNTaXplOmZ1bmN0aW9uKHQpe3JldHVybi9eW1xkXC5dLy50ZXN0KHQpfHwtMSE9PXQuaW5kZXhPZigiLyIpfHwtMSE9PW4uaW5kZXhPZih0KX19fSx7ImNzcy1mb250LXNpemUta2V5d29yZHMiOjE0Mn1dLDE0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ1bnF1b3RlIiksaT10KCJjc3MtZ2xvYmFsLWtleXdvcmRzIiksYT10KCJjc3Mtc3lzdGVtLWZvbnQta2V5d29yZHMiKSxvPXQoImNzcy1mb250LXdlaWdodC1rZXl3b3JkcyIpLHM9dCgiY3NzLWZvbnQtc3R5bGUta2V5d29yZHMiKSxsPXQoImNzcy1mb250LXN0cmV0Y2gta2V5d29yZHMiKSxjPXQoInN0cmluZy1zcGxpdC1ieSIpLHU9dCgiLi9saWIvdXRpbCIpLmlzU2l6ZTtlLmV4cG9ydHM9aDt2YXIgZj1oLmNhY2hlPXt9O2Z1bmN0aW9uIGgodCl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXRocm93IG5ldyBFcnJvcigiRm9udCBhcmd1bWVudCBtdXN0IGJlIGEgc3RyaW5nLiIpO2lmKGZbdF0pcmV0dXJuIGZbdF07aWYoIiI9PT10KXRocm93IG5ldyBFcnJvcigiQ2Fubm90IHBhcnNlIGFuIGVtcHR5IHN0cmluZy4iKTtpZigtMSE9PWEuaW5kZXhPZih0KSlyZXR1cm4gZlt0XT17c3lzdGVtOnR9O2Zvcih2YXIgZSxyPXtzdHlsZToibm9ybWFsIix2YXJpYW50OiJub3JtYWwiLHdlaWdodDoibm9ybWFsIixzdHJldGNoOiJub3JtYWwiLGxpbmVIZWlnaHQ6Im5vcm1hbCIsc2l6ZToiMXJlbSIsZmFtaWx5Olsic2VyaWYiXX0saD1jKHQsL1xzKy8pO2U9aC5zaGlmdCgpOyl7aWYoLTEhPT1pLmluZGV4T2YoZSkpcmV0dXJuWyJzdHlsZSIsInZhcmlhbnQiLCJ3ZWlnaHQiLCJzdHJldGNoIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7clt0XT1lfSkpLGZbdF09cjtpZigtMT09PXMuaW5kZXhPZihlKSlpZigibm9ybWFsIiE9PWUmJiJzbWFsbC1jYXBzIiE9PWUpaWYoLTE9PT1sLmluZGV4T2YoZSkpe2lmKC0xPT09by5pbmRleE9mKGUpKXtpZih1KGUpKXt2YXIgZD1jKGUsIi8iKTtpZihyLnNpemU9ZFswXSxudWxsIT1kWzFdP3IubGluZUhlaWdodD1wKGRbMV0pOiIvIj09PWhbMF0mJihoLnNoaWZ0KCksci5saW5lSGVpZ2h0PXAoaC5zaGlmdCgpKSksIWgubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiTWlzc2luZyByZXF1aXJlZCBmb250LWZhbWlseS4iKTtyZXR1cm4gci5mYW1pbHk9YyhoLmpvaW4oIiAiKSwvXHMqLFxzKi8pLm1hcChuKSxmW3RdPXJ9dGhyb3cgbmV3IEVycm9yKCJVbmtub3duIG9yIHVuc3VwcG9ydGVkIGZvbnQgdG9rZW46ICIrZSl9ci53ZWlnaHQ9ZX1lbHNlIHIuc3RyZXRjaD1lO2Vsc2Ugci52YXJpYW50PWU7ZWxzZSByLnN0eWxlPWV9dGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIGZvbnQtc2l6ZS4iKX1mdW5jdGlvbiBwKHQpe3ZhciBlPXBhcnNlRmxvYXQodCk7cmV0dXJuIGUudG9TdHJpbmcoKT09PXQ/ZTp0fX0seyIuL2xpYi91dGlsIjoxNDcsImNzcy1mb250LXN0cmV0Y2gta2V5d29yZHMiOjE0MywiY3NzLWZvbnQtc3R5bGUta2V5d29yZHMiOjE0NCwiY3NzLWZvbnQtd2VpZ2h0LWtleXdvcmRzIjoxNDUsImNzcy1nbG9iYWwta2V5d29yZHMiOjE1MCwiY3NzLXN5c3RlbS1mb250LWtleXdvcmRzIjoxNTEsInN0cmluZy1zcGxpdC1ieSI6NTYyLHVucXVvdGU6NTkzfV0sMTQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBpY2stYnktYWxpYXMiKSxpPXQoIi4vbGliL3V0aWwiKS5pc1NpemUsYT1tKHQoImNzcy1nbG9iYWwta2V5d29yZHMiKSksbz1tKHQoImNzcy1zeXN0ZW0tZm9udC1rZXl3b3JkcyIpKSxzPW0odCgiY3NzLWZvbnQtd2VpZ2h0LWtleXdvcmRzIikpLGw9bSh0KCJjc3MtZm9udC1zdHlsZS1rZXl3b3JkcyIpKSxjPW0odCgiY3NzLWZvbnQtc3RyZXRjaC1rZXl3b3JkcyIpKSx1PXtub3JtYWw6MSwic21hbGwtY2FwcyI6MX0sZj17c2VyaWY6MSwic2Fucy1zZXJpZiI6MSxtb25vc3BhY2U6MSxjdXJzaXZlOjEsZmFudGFzeToxLCJzeXN0ZW0tdWkiOjF9LGg9IjFyZW0iLHA9InNlcmlmIjtmdW5jdGlvbiBkKHQsZSl7aWYodCYmIWVbdF0mJiFhW3RdKXRocm93IEVycm9yKCJVbmtub3duIGtleXdvcmQgYCIrdCsiYCIpO3JldHVybiB0fWZ1bmN0aW9uIG0odCl7Zm9yKHZhciBlPXt9LHI9MDtyPHQubGVuZ3RoO3IrKyllW3Rbcl1dPTE7cmV0dXJuIGV9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCh0PW4odCx7c3R5bGU6InN0eWxlIGZvbnRzdHlsZSBmb250U3R5bGUgZm9udC1zdHlsZSBzbG9wZSBkaXN0aW5jdGlvbiIsdmFyaWFudDoidmFyaWFudCBmb250LXZhcmlhbnQgZm9udFZhcmlhbnQgZm9udHZhcmlhbnQgdmFyIGNhcGl0YWxpemF0aW9uIix3ZWlnaHQ6IndlaWdodCB3IGZvbnQtd2VpZ2h0IGZvbnRXZWlnaHQgZm9udHdlaWdodCIsc3RyZXRjaDoic3RyZXRjaCBmb250LXN0cmV0Y2ggZm9udFN0cmV0Y2ggZm9udHN0cmV0Y2ggd2lkdGgiLHNpemU6InNpemUgcyBmb250LXNpemUgZm9udFNpemUgZm9udHNpemUgaGVpZ2h0IGVtIGVtU2l6ZSIsbGluZUhlaWdodDoibGggbGluZS1oZWlnaHQgbGluZUhlaWdodCBsaW5laGVpZ2h0IGxlYWRpbmciLGZhbWlseToiZm9udCBmYW1pbHkgZm9udEZhbWlseSBmb250LWZhbWlseSBmb250ZmFtaWx5IHR5cGUgdHlwZWZhY2UgZmFjZSIsc3lzdGVtOiJzeXN0ZW0gcmVzZXJ2ZWQgZGVmYXVsdCBnbG9iYWwifSkpLnN5c3RlbSlyZXR1cm4gdC5zeXN0ZW0mJmQodC5zeXN0ZW0sbyksdC5zeXN0ZW07aWYoZCh0LnN0eWxlLGwpLGQodC52YXJpYW50LHUpLGQodC53ZWlnaHQscyksZCh0LnN0cmV0Y2gsYyksbnVsbD09dC5zaXplJiYodC5zaXplPWgpLCJudW1iZXIiPT10eXBlb2YgdC5zaXplJiYodC5zaXplKz0icHgiKSwhaSl0aHJvdyBFcnJvcigiQmFkIHNpemUgdmFsdWUgYCIrdC5zaXplKyJgIik7dC5mYW1pbHl8fCh0LmZhbWlseT1wKSxBcnJheS5pc0FycmF5KHQuZmFtaWx5KSYmKHQuZmFtaWx5Lmxlbmd0aHx8KHQuZmFtaWx5PVtwXSksdC5mYW1pbHk9dC5mYW1pbHkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZlt0XT90OiciJyt0KyciJ30pKS5qb2luKCIsICIpKTt2YXIgZT1bXTtyZXR1cm4gZS5wdXNoKHQuc3R5bGUpLHQudmFyaWFudCE9PXQuc3R5bGUmJmUucHVzaCh0LnZhcmlhbnQpLHQud2VpZ2h0IT09dC52YXJpYW50JiZ0LndlaWdodCE9PXQuc3R5bGUmJmUucHVzaCh0LndlaWdodCksdC5zdHJldGNoIT09dC53ZWlnaHQmJnQuc3RyZXRjaCE9PXQudmFyaWFudCYmdC5zdHJldGNoIT09dC5zdHlsZSYmZS5wdXNoKHQuc3RyZXRjaCksZS5wdXNoKHQuc2l6ZSsobnVsbD09dC5saW5lSGVpZ2h0fHwibm9ybWFsIj09PXQubGluZUhlaWdodHx8dC5saW5lSGVpZ2h0KyIiPT0iMSI/IiI6Ii8iK3QubGluZUhlaWdodCkpLGUucHVzaCh0LmZhbWlseSksZS5maWx0ZXIoQm9vbGVhbikuam9pbigiICIpfX0seyIuL2xpYi91dGlsIjoxNDcsImNzcy1mb250LXN0cmV0Y2gta2V5d29yZHMiOjE0MywiY3NzLWZvbnQtc3R5bGUta2V5d29yZHMiOjE0NCwiY3NzLWZvbnQtd2VpZ2h0LWtleXdvcmRzIjoxNDUsImNzcy1nbG9iYWwta2V5d29yZHMiOjE1MCwiY3NzLXN5c3RlbS1mb250LWtleXdvcmRzIjoxNTEsInBpY2stYnktYWxpYXMiOjQ3NX1dLDE1MDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bImluaGVyaXQiLCJpbml0aWFsIiwidW5zZXQiXX0se31dLDE1MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bImNhcHRpb24iLCJpY29uIiwibWVudSIsIm1lc3NhZ2UtYm94Iiwic21hbGwtY2FwdGlvbiIsInN0YXR1cy1iYXIiXX0se31dLDE1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPWktMSxzPWkqaSxsPW8qbyxjPSgxKzIqaSkqbCx1PWkqbCxmPXMqKDMtMippKSxoPXMqbztpZih0Lmxlbmd0aCl7YXx8KGE9bmV3IEFycmF5KHQubGVuZ3RoKSk7Zm9yKHZhciBwPXQubGVuZ3RoLTE7cD49MDstLXApYVtwXT1jKnRbcF0rdSplW3BdK2YqcltwXStoKm5bcF07cmV0dXJuIGF9cmV0dXJuIGMqdCt1KmUrZipyK2gqbn0sZS5leHBvcnRzLmRlcml2YXRpdmU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPTYqaSppLTYqaSxzPTMqaSppLTQqaSsxLGw9LTYqaSppKzYqaSxjPTMqaSppLTIqaTtpZih0Lmxlbmd0aCl7YXx8KGE9bmV3IEFycmF5KHQubGVuZ3RoKSk7Zm9yKHZhciB1PXQubGVuZ3RoLTE7dT49MDstLXUpYVt1XT1vKnRbdV0rcyplW3VdK2wqclt1XStjKm5bdV07cmV0dXJuIGF9cmV0dXJuIG8qdCtzKmUrbCpyW3VdK2Mqbn19LHt9XSwxNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCJ0eXBlL3ZhbHVlL2lzIiksYT10KCJ0eXBlL3ZhbHVlL2Vuc3VyZSIpLG89dCgidHlwZS9wbGFpbi1mdW5jdGlvbi9lbnN1cmUiKSxzPXQoImVzNS1leHQvb2JqZWN0L2NvcHkiKSxsPXQoImVzNS1leHQvb2JqZWN0L25vcm1hbGl6ZS1vcHRpb25zIiksYz10KCJlczUtZXh0L29iamVjdC9tYXAiKSx1PUZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLGY9T2JqZWN0LmRlZmluZVByb3BlcnR5LGg9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtuPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPWEoZSkmJm8oZS52YWx1ZSk7cmV0dXJuIGRlbGV0ZShuPXMoZSkpLndyaXRhYmxlLGRlbGV0ZSBuLnZhbHVlLG4uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIXIub3ZlcndyaXRlRGVmaW5pdGlvbiYmaC5jYWxsKHRoaXMsdCk/aTooZS52YWx1ZT11LmNhbGwoaSxyLnJlc29sdmVDb250ZXh0P3IucmVzb2x2ZUNvbnRleHQodGhpcyk6dGhpcyksZih0aGlzLHQsZSksdGhpc1t0XSl9LG59LGUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1sKGFyZ3VtZW50c1sxXSk7cmV0dXJuIGkoZS5yZXNvbHZlQ29udGV4dCkmJm8oZS5yZXNvbHZlQ29udGV4dCksYyh0LChmdW5jdGlvbih0LHIpe3JldHVybiBuKHIsdCxlKX0pKX19LHsiZXM1LWV4dC9vYmplY3QvY29weSI6MTk3LCJlczUtZXh0L29iamVjdC9tYXAiOjIwNSwiZXM1LWV4dC9vYmplY3Qvbm9ybWFsaXplLW9wdGlvbnMiOjIwNiwidHlwZS9wbGFpbi1mdW5jdGlvbi9lbnN1cmUiOjU4NCwidHlwZS92YWx1ZS9lbnN1cmUiOjU4OCwidHlwZS92YWx1ZS9pcyI6NTg5fV0sMTU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInR5cGUvdmFsdWUvaXMiKSxpPXQoInR5cGUvcGxhaW4tZnVuY3Rpb24vaXMiKSxhPXQoImVzNS1leHQvb2JqZWN0L2Fzc2lnbiIpLG89dCgiZXM1LWV4dC9vYmplY3Qvbm9ybWFsaXplLW9wdGlvbnMiKSxzPXQoImVzNS1leHQvc3RyaW5nLyMvY29udGFpbnMiKTsoZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaSxsLGMsdTtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aDwyfHwic3RyaW5nIiE9dHlwZW9mIHQ/KGM9ZSxlPXQsdD1udWxsKTpjPWFyZ3VtZW50c1syXSxuKHQpPyhyPXMuY2FsbCh0LCJjIiksaT1zLmNhbGwodCwiZSIpLGw9cy5jYWxsKHQsInciKSk6KHI9bD0hMCxpPSExKSx1PXt2YWx1ZTplLGNvbmZpZ3VyYWJsZTpyLGVudW1lcmFibGU6aSx3cml0YWJsZTpsfSxjP2EobyhjKSx1KTp1fSkuZ3M9ZnVuY3Rpb24odCxlLHIpe3ZhciBsLGMsdSxmO3JldHVybiJzdHJpbmciIT10eXBlb2YgdD8odT1yLHI9ZSxlPXQsdD1udWxsKTp1PWFyZ3VtZW50c1szXSxuKGUpP2koZSk/bihyKT9pKHIpfHwodT1yLHI9dm9pZCAwKTpyPXZvaWQgMDoodT1lLGU9cj12b2lkIDApOmU9dm9pZCAwLG4odCk/KGw9cy5jYWxsKHQsImMiKSxjPXMuY2FsbCh0LCJlIikpOihsPSEwLGM9ITEpLGY9e2dldDplLHNldDpyLGNvbmZpZ3VyYWJsZTpsLGVudW1lcmFibGU6Y30sdT9hKG8odSksZik6Zn19LHsiZXM1LWV4dC9vYmplY3QvYXNzaWduIjoxOTQsImVzNS1leHQvb2JqZWN0L25vcm1hbGl6ZS1vcHRpb25zIjoyMDYsImVzNS1leHQvc3RyaW5nLyMvY29udGFpbnMiOjIxMywidHlwZS9wbGFpbi1mdW5jdGlvbi9pcyI6NTg1LCJ0eXBlL3ZhbHVlL2lzIjo1ODl9XSwxNTU6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXtuKCJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9yOnQuZDM9dC5kM3x8e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6dD49ZT8wOk5hTn1mdW5jdGlvbiByKHQpe3ZhciByO3JldHVybiAxPT09dC5sZW5ndGgmJihyPXQsdD1mdW5jdGlvbih0LG4pe3JldHVybiBlKHIodCksbil9KSx7bGVmdDpmdW5jdGlvbihlLHIsbixpKXtmb3IobnVsbD09biYmKG49MCksbnVsbD09aSYmKGk9ZS5sZW5ndGgpO248aTspe3ZhciBhPW4raT4+PjE7dChlW2FdLHIpPDA/bj1hKzE6aT1hfXJldHVybiBufSxyaWdodDpmdW5jdGlvbihlLHIsbixpKXtmb3IobnVsbD09biYmKG49MCksbnVsbD09aSYmKGk9ZS5sZW5ndGgpO248aTspe3ZhciBhPW4raT4+PjE7dChlW2FdLHIpPjA/aT1hOm49YSsxfXJldHVybiBufX19dmFyIG49cihlKSxpPW4ucmlnaHQsYT1uLmxlZnQ7ZnVuY3Rpb24gbyh0LGUpe3JldHVyblt0LGVdfWZ1bmN0aW9uIHModCl7cmV0dXJuIG51bGw9PT10P05hTjordH1mdW5jdGlvbiBsKHQsZSl7dmFyIHIsbixpPXQubGVuZ3RoLGE9MCxvPS0xLGw9MCxjPTA7aWYobnVsbD09ZSlmb3IoOysrbzxpOylpc05hTihyPXModFtvXSkpfHwoYys9KG49ci1sKSooci0obCs9bi8rK2EpKSk7ZWxzZSBmb3IoOysrbzxpOylpc05hTihyPXMoZSh0W29dLG8sdCkpKXx8KGMrPShuPXItbCkqKHItKGwrPW4vKythKSkpO2lmKGE+MSlyZXR1cm4gYy8oYS0xKX1mdW5jdGlvbiBjKHQsZSl7dmFyIHI9bCh0LGUpO3JldHVybiByP01hdGguc3FydChyKTpyfWZ1bmN0aW9uIHUodCxlKXt2YXIgcixuLGksYT10Lmxlbmd0aCxvPS0xO2lmKG51bGw9PWUpe2Zvcig7KytvPGE7KWlmKG51bGwhPShyPXRbb10pJiZyPj1yKWZvcihuPWk9cjsrK288YTspbnVsbCE9KHI9dFtvXSkmJihuPnImJihuPXIpLGk8ciYmKGk9cikpfWVsc2UgZm9yKDsrK288YTspaWYobnVsbCE9KHI9ZSh0W29dLG8sdCkpJiZyPj1yKWZvcihuPWk9cjsrK288YTspbnVsbCE9KHI9ZSh0W29dLG8sdCkpJiYobj5yJiYobj1yKSxpPHImJihpPXIpKTtyZXR1cm5bbixpXX12YXIgZj1BcnJheS5wcm90b3R5cGUsaD1mLnNsaWNlLHA9Zi5tYXA7ZnVuY3Rpb24gZCh0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19ZnVuY3Rpb24gbSh0KXtyZXR1cm4gdH1mdW5jdGlvbiBnKHQsZSxyKXt0PSt0LGU9K2Uscj0oaT1hcmd1bWVudHMubGVuZ3RoKTwyPyhlPXQsdD0wLDEpOmk8Mz8xOityO2Zvcih2YXIgbj0tMSxpPTB8TWF0aC5tYXgoMCxNYXRoLmNlaWwoKGUtdCkvcikpLGE9bmV3IEFycmF5KGkpOysrbjxpOylhW25dPXQrbipyO3JldHVybiBhfXZhciB2PU1hdGguc3FydCg1MCkseT1NYXRoLnNxcnQoMTApLHg9TWF0aC5zcXJ0KDIpO2Z1bmN0aW9uIGIodCxlLHIpe3ZhciBuPShlLXQpL01hdGgubWF4KDAsciksaT1NYXRoLmZsb29yKE1hdGgubG9nKG4pL01hdGguTE4xMCksYT1uL01hdGgucG93KDEwLGkpO3JldHVybiBpPj0wPyhhPj12PzEwOmE+PXk/NTphPj14PzI6MSkqTWF0aC5wb3coMTAsaSk6LU1hdGgucG93KDEwLC1pKS8oYT49dj8xMDphPj15PzU6YT49eD8yOjEpfWZ1bmN0aW9uIF8odCxlLHIpe3ZhciBuPU1hdGguYWJzKGUtdCkvTWF0aC5tYXgoMCxyKSxpPU1hdGgucG93KDEwLE1hdGguZmxvb3IoTWF0aC5sb2cobikvTWF0aC5MTjEwKSksYT1uL2k7cmV0dXJuIGE+PXY/aSo9MTA6YT49eT9pKj01OmE+PXgmJihpKj0yKSxlPHQ/LWk6aX1mdW5jdGlvbiB3KHQpe3JldHVybiBNYXRoLmNlaWwoTWF0aC5sb2codC5sZW5ndGgpL01hdGguTE4yKSsxfWZ1bmN0aW9uIFQodCxlLHIpe2lmKG51bGw9PXImJihyPXMpLG49dC5sZW5ndGgpe2lmKChlPStlKTw9MHx8bjwyKXJldHVybityKHRbMF0sMCx0KTtpZihlPj0xKXJldHVybityKHRbbi0xXSxuLTEsdCk7dmFyIG4saT0obi0xKSplLGE9TWF0aC5mbG9vcihpKSxvPStyKHRbYV0sYSx0KTtyZXR1cm4gbysoK3IodFthKzFdLGErMSx0KS1vKSooaS1hKX19ZnVuY3Rpb24gayh0LGUpe3ZhciByLG4saT10Lmxlbmd0aCxhPS0xO2lmKG51bGw9PWUpe2Zvcig7KythPGk7KWlmKG51bGwhPShyPXRbYV0pJiZyPj1yKWZvcihuPXI7KythPGk7KW51bGwhPShyPXRbYV0pJiZuPnImJihuPXIpfWVsc2UgZm9yKDsrK2E8aTspaWYobnVsbCE9KHI9ZSh0W2FdLGEsdCkpJiZyPj1yKWZvcihuPXI7KythPGk7KW51bGwhPShyPWUodFthXSxhLHQpKSYmbj5yJiYobj1yKTtyZXR1cm4gbn1mdW5jdGlvbiBBKHQpe2lmKCEoaT10Lmxlbmd0aCkpcmV0dXJuW107Zm9yKHZhciBlPS0xLHI9ayh0LE0pLG49bmV3IEFycmF5KHIpOysrZTxyOylmb3IodmFyIGksYT0tMSxvPW5bZV09bmV3IEFycmF5KGkpOysrYTxpOylvW2FdPXRbYV1bZV07cmV0dXJuIG59ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdC5sZW5ndGh9dC5iaXNlY3Q9aSx0LmJpc2VjdFJpZ2h0PWksdC5iaXNlY3RMZWZ0PWEsdC5hc2NlbmRpbmc9ZSx0LmJpc2VjdG9yPXIsdC5jcm9zcz1mdW5jdGlvbih0LGUscil7dmFyIG4saSxhLHMsbD10Lmxlbmd0aCxjPWUubGVuZ3RoLHU9bmV3IEFycmF5KGwqYyk7Zm9yKG51bGw9PXImJihyPW8pLG49YT0wO248bDsrK24pZm9yKHM9dFtuXSxpPTA7aTxjOysraSwrK2EpdVthXT1yKHMsZVtpXSk7cmV0dXJuIHV9LHQuZGVzY2VuZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn0sdC5kZXZpYXRpb249Yyx0LmV4dGVudD11LHQuaGlzdG9ncmFtPWZ1bmN0aW9uKCl7dmFyIHQ9bSxlPXUscj13O2Z1bmN0aW9uIG4obil7dmFyIGEsbyxzPW4ubGVuZ3RoLGw9bmV3IEFycmF5KHMpO2ZvcihhPTA7YTxzOysrYSlsW2FdPXQoblthXSxhLG4pO3ZhciBjPWUobCksdT1jWzBdLGY9Y1sxXSxoPXIobCx1LGYpO0FycmF5LmlzQXJyYXkoaCl8fChoPV8odSxmLGgpLGg9ZyhNYXRoLmNlaWwodS9oKSpoLGYsaCkpO2Zvcih2YXIgcD1oLmxlbmd0aDtoWzBdPD11OyloLnNoaWZ0KCksLS1wO2Zvcig7aFtwLTFdPmY7KWgucG9wKCksLS1wO3ZhciBkLG09bmV3IEFycmF5KHArMSk7Zm9yKGE9MDthPD1wOysrYSkoZD1tW2FdPVtdKS54MD1hPjA/aFthLTFdOnUsZC54MT1hPHA/aFthXTpmO2ZvcihhPTA7YTxzOysrYSl1PD0obz1sW2FdKSYmbzw9ZiYmbVtpKGgsbywwLHApXS5wdXNoKG5bYV0pO3JldHVybiBtfXJldHVybiBuLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZChlKSxuKTp0fSxuLmRvbWFpbj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OmQoW3RbMF0sdFsxXV0pLG4pOmV9LG4udGhyZXNob2xkcz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OkFycmF5LmlzQXJyYXkodCk/ZChoLmNhbGwodCkpOmQodCksbik6cn0sbn0sdC50aHJlc2hvbGRGcmVlZG1hbkRpYWNvbmlzPWZ1bmN0aW9uKHQscixuKXtyZXR1cm4gdD1wLmNhbGwodCxzKS5zb3J0KGUpLE1hdGguY2VpbCgobi1yKS8oMiooVCh0LC43NSktVCh0LC4yNSkpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU2NvdHQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBNYXRoLmNlaWwoKHItZSkvKDMuNSpjKHQpKk1hdGgucG93KHQubGVuZ3RoLC0xLzMpKSl9LHQudGhyZXNob2xkU3R1cmdlcz13LHQubWF4PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXQubGVuZ3RoLGE9LTE7aWYobnVsbD09ZSl7Zm9yKDsrK2E8aTspaWYobnVsbCE9KHI9dFthXSkmJnI+PXIpZm9yKG49cjsrK2E8aTspbnVsbCE9KHI9dFthXSkmJnI+biYmKG49cil9ZWxzZSBmb3IoOysrYTxpOylpZihudWxsIT0ocj1lKHRbYV0sYSx0KSkmJnI+PXIpZm9yKG49cjsrK2E8aTspbnVsbCE9KHI9ZSh0W2FdLGEsdCkpJiZyPm4mJihuPXIpO3JldHVybiBufSx0Lm1lYW49ZnVuY3Rpb24odCxlKXt2YXIgcixuPXQubGVuZ3RoLGk9bixhPS0xLG89MDtpZihudWxsPT1lKWZvcig7KythPG47KWlzTmFOKHI9cyh0W2FdKSk/LS1pOm8rPXI7ZWxzZSBmb3IoOysrYTxuOylpc05hTihyPXMoZSh0W2FdLGEsdCkpKT8tLWk6bys9cjtpZihpKXJldHVybiBvL2l9LHQubWVkaWFuPWZ1bmN0aW9uKHQscil7dmFyIG4saT10Lmxlbmd0aCxhPS0xLG89W107aWYobnVsbD09cilmb3IoOysrYTxpOylpc05hTihuPXModFthXSkpfHxvLnB1c2gobik7ZWxzZSBmb3IoOysrYTxpOylpc05hTihuPXMocih0W2FdLGEsdCkpKXx8by5wdXNoKG4pO3JldHVybiBUKG8uc29ydChlKSwuNSl9LHQubWVyZ2U9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHIsbixpPXQubGVuZ3RoLGE9LTEsbz0wOysrYTxpOylvKz10W2FdLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobyk7LS1pPj0wOylmb3IoZT0obj10W2ldKS5sZW5ndGg7LS1lPj0wOylyWy0tb109bltlXTtyZXR1cm4gcn0sdC5taW49ayx0LnBhaXJzPWZ1bmN0aW9uKHQsZSl7bnVsbD09ZSYmKGU9byk7Zm9yKHZhciByPTAsbj10Lmxlbmd0aC0xLGk9dFswXSxhPW5ldyBBcnJheShuPDA/MDpuKTtyPG47KWFbcl09ZShpLGk9dFsrK3JdKTtyZXR1cm4gYX0sdC5wZXJtdXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUubGVuZ3RoLG49bmV3IEFycmF5KHIpO3ItLTspbltyXT10W2Vbcl1dO3JldHVybiBufSx0LnF1YW50aWxlPVQsdC5yYW5nZT1nLHQuc2Nhbj1mdW5jdGlvbih0LHIpe2lmKG49dC5sZW5ndGgpe3ZhciBuLGksYT0wLG89MCxzPXRbb107Zm9yKG51bGw9PXImJihyPWUpOysrYTxuOykocihpPXRbYV0scyk8MHx8MCE9PXIocyxzKSkmJihzPWksbz1hKTtyZXR1cm4gMD09PXIocyxzKT9vOnZvaWQgMH19LHQuc2h1ZmZsZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLGksYT0obnVsbD09cj90Lmxlbmd0aDpyKS0oZT1udWxsPT1lPzA6K2UpO2E7KWk9TWF0aC5yYW5kb20oKSphLS18MCxuPXRbYStlXSx0W2ErZV09dFtpK2VdLHRbaStlXT1uO3JldHVybiB0fSx0LnN1bT1mdW5jdGlvbih0LGUpe3ZhciByLG49dC5sZW5ndGgsaT0tMSxhPTA7aWYobnVsbD09ZSlmb3IoOysraTxuOykocj0rdFtpXSkmJihhKz1yKTtlbHNlIGZvcig7KytpPG47KShyPStlKHRbaV0saSx0KSkmJihhKz1yKTtyZXR1cm4gYX0sdC50aWNrcz1mdW5jdGlvbih0LGUscil7dmFyIG4saSxhLG8scz0tMTtpZihyPStyLCh0PSt0KT09PShlPStlKSYmcj4wKXJldHVyblt0XTtpZigobj1lPHQpJiYoaT10LHQ9ZSxlPWkpLDA9PT0obz1iKHQsZSxyKSl8fCFpc0Zpbml0ZShvKSlyZXR1cm5bXTtpZihvPjApZm9yKHQ9TWF0aC5jZWlsKHQvbyksZT1NYXRoLmZsb29yKGUvbyksYT1uZXcgQXJyYXkoaT1NYXRoLmNlaWwoZS10KzEpKTsrK3M8aTspYVtzXT0odCtzKSpvO2Vsc2UgZm9yKHQ9TWF0aC5mbG9vcih0Km8pLGU9TWF0aC5jZWlsKGUqbyksYT1uZXcgQXJyYXkoaT1NYXRoLmNlaWwodC1lKzEpKTsrK3M8aTspYVtzXT0odC1zKS9vO3JldHVybiBuJiZhLnJldmVyc2UoKSxhfSx0LnRpY2tJbmNyZW1lbnQ9Yix0LnRpY2tTdGVwPV8sdC50cmFuc3Bvc2U9QSx0LnZhcmlhbmNlPWwsdC56aXA9ZnVuY3Rpb24oKXtyZXR1cm4gQShhcmd1bWVudHMpfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHt9XSwxNTY6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXtuKCJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9yOnQuZDM9dC5kM3x8e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gZSgpe31mdW5jdGlvbiByKHQscil7dmFyIG49bmV3IGU7aWYodCBpbnN0YW5jZW9mIGUpdC5lYWNoKChmdW5jdGlvbih0LGUpe24uc2V0KGUsdCl9KSk7ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgaSxhPS0xLG89dC5sZW5ndGg7aWYobnVsbD09cilmb3IoOysrYTxvOyluLnNldChhLHRbYV0pO2Vsc2UgZm9yKDsrK2E8bzspbi5zZXQocihpPXRbYV0sYSx0KSxpKX1lbHNlIGlmKHQpZm9yKHZhciBzIGluIHQpbi5zZXQocyx0W3NdKTtyZXR1cm4gbn1mdW5jdGlvbiBuKCl7cmV0dXJue319ZnVuY3Rpb24gaSh0LGUscil7dFtlXT1yfWZ1bmN0aW9uIGEoKXtyZXR1cm4gcigpfWZ1bmN0aW9uIG8odCxlLHIpe3Quc2V0KGUscil9ZnVuY3Rpb24gcygpe31lLnByb3RvdHlwZT1yLnByb3RvdHlwZT17Y29uc3RydWN0b3I6ZSxoYXM6ZnVuY3Rpb24odCl7cmV0dXJuIiQiK3QgaW4gdGhpc30sZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzWyIkIit0XX0sc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXNbIiQiK3RdPWUsdGhpc30scmVtb3ZlOmZ1bmN0aW9uKHQpe3ZhciBlPSIkIit0O3JldHVybiBlIGluIHRoaXMmJmRlbGV0ZSB0aGlzW2VdfSxjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKSIkIj09PXRbMF0mJmRlbGV0ZSB0aGlzW3RdfSxrZXlzOmZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMpIiQiPT09ZVswXSYmdC5wdXNoKGUuc2xpY2UoMSkpO3JldHVybiB0fSx2YWx1ZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcykiJCI9PT1lWzBdJiZ0LnB1c2godGhpc1tlXSk7cmV0dXJuIHR9LGVudHJpZXM6ZnVuY3Rpb24oKXt2YXIgdD1bXTtmb3IodmFyIGUgaW4gdGhpcykiJCI9PT1lWzBdJiZ0LnB1c2goe2tleTplLnNsaWNlKDEpLHZhbHVlOnRoaXNbZV19KTtyZXR1cm4gdH0sc2l6ZTpmdW5jdGlvbigpe3ZhciB0PTA7Zm9yKHZhciBlIGluIHRoaXMpIiQiPT09ZVswXSYmKyt0O3JldHVybiB0fSxlbXB0eTpmdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzKWlmKCIkIj09PXRbMF0pcmV0dXJuITE7cmV0dXJuITB9LGVhY2g6ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMpIiQiPT09ZVswXSYmdCh0aGlzW2VdLGUuc2xpY2UoMSksdGhpcyl9fTt2YXIgbD1yLnByb3RvdHlwZTtmdW5jdGlvbiBjKHQsZSl7dmFyIHI9bmV3IHM7aWYodCBpbnN0YW5jZW9mIHMpdC5lYWNoKChmdW5jdGlvbih0KXtyLmFkZCh0KX0pKTtlbHNlIGlmKHQpe3ZhciBuPS0xLGk9dC5sZW5ndGg7aWYobnVsbD09ZSlmb3IoOysrbjxpOylyLmFkZCh0W25dKTtlbHNlIGZvcig7KytuPGk7KXIuYWRkKGUodFtuXSxuLHQpKX1yZXR1cm4gcn1zLnByb3RvdHlwZT1jLnByb3RvdHlwZT17Y29uc3RydWN0b3I6cyxoYXM6bC5oYXMsYWRkOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzWyIkIisodCs9IiIpXT10LHRoaXN9LHJlbW92ZTpsLnJlbW92ZSxjbGVhcjpsLmNsZWFyLHZhbHVlczpsLmtleXMsc2l6ZTpsLnNpemUsZW1wdHk6bC5lbXB0eSxlYWNoOmwuZWFjaH0sdC5uZXN0PWZ1bmN0aW9uKCl7dmFyIHQsZSxzLGw9W10sYz1bXTtmdW5jdGlvbiB1KG4saSxhLG8pe2lmKGk+PWwubGVuZ3RoKXJldHVybiBudWxsIT10JiZuLnNvcnQodCksbnVsbCE9ZT9lKG4pOm47Zm9yKHZhciBzLGMsZixoPS0xLHA9bi5sZW5ndGgsZD1sW2krK10sbT1yKCksZz1hKCk7KytoPHA7KShmPW0uZ2V0KHM9ZChjPW5baF0pKyIiKSk/Zi5wdXNoKGMpOm0uc2V0KHMsW2NdKTtyZXR1cm4gbS5lYWNoKChmdW5jdGlvbih0LGUpe28oZyxlLHUodCxpLGEsbykpfSkpLGd9cmV0dXJuIHM9e29iamVjdDpmdW5jdGlvbih0KXtyZXR1cm4gdSh0LDAsbixpKX0sbWFwOmZ1bmN0aW9uKHQpe3JldHVybiB1KHQsMCxhLG8pfSxlbnRyaWVzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbiB0KHIsbil7aWYoKytuPmwubGVuZ3RoKXJldHVybiByO3ZhciBpLGE9Y1tuLTFdO3JldHVybiBudWxsIT1lJiZuPj1sLmxlbmd0aD9pPXIuZW50cmllcygpOihpPVtdLHIuZWFjaCgoZnVuY3Rpb24oZSxyKXtpLnB1c2goe2tleTpyLHZhbHVlczp0KGUsbil9KX0pKSksbnVsbCE9YT9pLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEodC5rZXksZS5rZXkpfSkpOml9KHUodCwwLGEsbyksMCl9LGtleTpmdW5jdGlvbih0KXtyZXR1cm4gbC5wdXNoKHQpLHN9LHNvcnRLZXlzOmZ1bmN0aW9uKHQpe3JldHVybiBjW2wubGVuZ3RoLTFdPXQsc30sc29ydFZhbHVlczpmdW5jdGlvbihlKXtyZXR1cm4gdD1lLHN9LHJvbGx1cDpmdW5jdGlvbih0KXtyZXR1cm4gZT10LHN9fX0sdC5zZXQ9Yyx0Lm1hcD1yLHQua2V5cz1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2gocik7cmV0dXJuIGV9LHQudmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaCh0W3JdKTtyZXR1cm4gZX0sdC5lbnRyaWVzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaCh7a2V5OnIsdmFsdWU6dFtyXX0pO3JldHVybiBlfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHt9XSwxNTc6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/bihyKTpuKCh0PXR8fHNlbGYpLmQzPXQuZDN8fHt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCxlLHIpe3QucHJvdG90eXBlPWUucHJvdG90eXBlPXIsci5jb25zdHJ1Y3Rvcj10fWZ1bmN0aW9uIHIodCxlKXt2YXIgcj1PYmplY3QuY3JlYXRlKHQucHJvdG90eXBlKTtmb3IodmFyIG4gaW4gZSlyW25dPWVbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gbigpe312YXIgaT0iXFxzKihbKy1dP1xcZCspXFxzKiIsYT0iXFxzKihbKy1dP1xcZCpcXC4/XFxkKyg/OltlRV1bKy1dP1xcZCspPylcXHMqIixvPSJcXHMqKFsrLV0/XFxkKlxcLj9cXGQrKD86W2VFXVsrLV0/XFxkKyk/KSVcXHMqIixzPS9eIyhbMC05YS1mXXszLDh9KSQvLGw9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW2ksaSxpXSsiXFwpJCIpLGM9bmV3IFJlZ0V4cCgiXnJnYlxcKCIrW28sbyxvXSsiXFwpJCIpLHU9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tpLGksaSxhXSsiXFwpJCIpLGY9bmV3IFJlZ0V4cCgiXnJnYmFcXCgiK1tvLG8sbyxhXSsiXFwpJCIpLGg9bmV3IFJlZ0V4cCgiXmhzbFxcKCIrW2EsbyxvXSsiXFwpJCIpLHA9bmV3IFJlZ0V4cCgiXmhzbGFcXCgiK1thLG8sbyxhXSsiXFwpJCIpLGQ9e2FsaWNlYmx1ZToxNTc5MjM4MyxhbnRpcXVld2hpdGU6MTY0NDQzNzUsYXF1YTo2NTUzNSxhcXVhbWFyaW5lOjgzODg1NjQsYXp1cmU6MTU3OTQxNzUsYmVpZ2U6MTYxMTkyNjAsYmlzcXVlOjE2NzcwMjQ0LGJsYWNrOjAsYmxhbmNoZWRhbG1vbmQ6MTY3NzIwNDUsYmx1ZToyNTUsYmx1ZXZpb2xldDo5MDU1MjAyLGJyb3duOjEwODI0MjM0LGJ1cmx5d29vZDoxNDU5NjIzMSxjYWRldGJsdWU6NjI2NjUyOCxjaGFydHJldXNlOjgzODgzNTIsY2hvY29sYXRlOjEzNzg5NDcwLGNvcmFsOjE2NzQ0MjcyLGNvcm5mbG93ZXJibHVlOjY1OTE5ODEsY29ybnNpbGs6MTY3NzUzODgsY3JpbXNvbjoxNDQyMzEwMCxjeWFuOjY1NTM1LGRhcmtibHVlOjEzOSxkYXJrY3lhbjozNTcyMyxkYXJrZ29sZGVucm9kOjEyMDkyOTM5LGRhcmtncmF5OjExMTE5MDE3LGRhcmtncmVlbjoyNTYwMCxkYXJrZ3JleToxMTExOTAxNyxkYXJra2hha2k6MTI0MzMyNTksZGFya21hZ2VudGE6OTEwOTY0MyxkYXJrb2xpdmVncmVlbjo1NTk3OTk5LGRhcmtvcmFuZ2U6MTY3NDc1MjAsZGFya29yY2hpZDoxMDA0MDAxMixkYXJrcmVkOjkxMDk1MDQsZGFya3NhbG1vbjoxNTMwODQxMCxkYXJrc2VhZ3JlZW46OTQxOTkxOSxkYXJrc2xhdGVibHVlOjQ3MzQzNDcsZGFya3NsYXRlZ3JheTozMTAwNDk1LGRhcmtzbGF0ZWdyZXk6MzEwMDQ5NSxkYXJrdHVycXVvaXNlOjUyOTQ1LGRhcmt2aW9sZXQ6OTY5OTUzOSxkZWVwcGluazoxNjcxNjk0NyxkZWVwc2t5Ymx1ZTo0OTE1MSxkaW1ncmF5OjY5MDgyNjUsZGltZ3JleTo2OTA4MjY1LGRvZGdlcmJsdWU6MjAwMzE5OSxmaXJlYnJpY2s6MTE2NzQxNDYsZmxvcmFsd2hpdGU6MTY3NzU5MjAsZm9yZXN0Z3JlZW46MjI2Mzg0MixmdWNoc2lhOjE2NzExOTM1LGdhaW5zYm9ybzoxNDQ3NDQ2MCxnaG9zdHdoaXRlOjE2MzE2NjcxLGdvbGQ6MTY3NjY3MjAsZ29sZGVucm9kOjE0MzI5MTIwLGdyYXk6ODQyMTUwNCxncmVlbjozMjc2OCxncmVlbnllbGxvdzoxMTQwMzA1NSxncmV5Ojg0MjE1MDQsaG9uZXlkZXc6MTU3OTQxNjAsaG90cGluazoxNjczODc0MCxpbmRpYW5yZWQ6MTM0NTg1MjQsaW5kaWdvOjQ5MTUzMzAsaXZvcnk6MTY3NzcyMDAsa2hha2k6MTU3ODc2NjAsbGF2ZW5kZXI6MTUxMzI0MTAsbGF2ZW5kZXJibHVzaDoxNjc3MzM2NSxsYXduZ3JlZW46ODE5MDk3NixsZW1vbmNoaWZmb246MTY3NzU4ODUsbGlnaHRibHVlOjExMzkzMjU0LGxpZ2h0Y29yYWw6MTU3NjE1MzYsbGlnaHRjeWFuOjE0NzQ1NTk5LGxpZ2h0Z29sZGVucm9keWVsbG93OjE2NDQ4MjEwLGxpZ2h0Z3JheToxMzg4MjMyMyxsaWdodGdyZWVuOjk0OTgyNTYsbGlnaHRncmV5OjEzODgyMzIzLGxpZ2h0cGluazoxNjc1ODQ2NSxsaWdodHNhbG1vbjoxNjc1Mjc2MixsaWdodHNlYWdyZWVuOjIxNDI4OTAsbGlnaHRza3libHVlOjg5MDAzNDYsbGlnaHRzbGF0ZWdyYXk6NzgzMzc1MyxsaWdodHNsYXRlZ3JleTo3ODMzNzUzLGxpZ2h0c3RlZWxibHVlOjExNTg0NzM0LGxpZ2h0eWVsbG93OjE2Nzc3MTg0LGxpbWU6NjUyODAsbGltZWdyZWVuOjMzMjkzMzAsbGluZW46MTY0NDU2NzAsbWFnZW50YToxNjcxMTkzNSxtYXJvb246ODM4ODYwOCxtZWRpdW1hcXVhbWFyaW5lOjY3MzczMjIsbWVkaXVtYmx1ZToyMDUsbWVkaXVtb3JjaGlkOjEyMjExNjY3LG1lZGl1bXB1cnBsZTo5NjYyNjgzLG1lZGl1bXNlYWdyZWVuOjM5NzgwOTcsbWVkaXVtc2xhdGVibHVlOjgwODc3OTAsbWVkaXVtc3ByaW5nZ3JlZW46NjQxNTQsbWVkaXVtdHVycXVvaXNlOjQ3NzIzMDAsbWVkaXVtdmlvbGV0cmVkOjEzMDQ3MTczLG1pZG5pZ2h0Ymx1ZToxNjQ0OTEyLG1pbnRjcmVhbToxNjEyMTg1MCxtaXN0eXJvc2U6MTY3NzAyNzMsbW9jY2FzaW46MTY3NzAyMjksbmF2YWpvd2hpdGU6MTY3Njg2ODUsbmF2eToxMjgsb2xkbGFjZToxNjY0MzU1OCxvbGl2ZTo4NDIxMzc2LG9saXZlZHJhYjo3MDQ4NzM5LG9yYW5nZToxNjc1MzkyMCxvcmFuZ2VyZWQ6MTY3MjkzNDQsb3JjaGlkOjE0MzE1NzM0LHBhbGVnb2xkZW5yb2Q6MTU2NTcxMzAscGFsZWdyZWVuOjEwMDI1ODgwLHBhbGV0dXJxdW9pc2U6MTE1Mjk5NjYscGFsZXZpb2xldHJlZDoxNDM4MTIwMyxwYXBheWF3aGlwOjE2NzczMDc3LHBlYWNocHVmZjoxNjc2NzY3MyxwZXJ1OjEzNDY4OTkxLHBpbms6MTY3NjEwMzUscGx1bToxNDUyNDYzNyxwb3dkZXJibHVlOjExNTkxOTEwLHB1cnBsZTo4Mzg4NzM2LHJlYmVjY2FwdXJwbGU6NjY5Nzg4MSxyZWQ6MTY3MTE2ODAscm9zeWJyb3duOjEyMzU3NTE5LHJveWFsYmx1ZTo0Mjg2OTQ1LHNhZGRsZWJyb3duOjkxMjcxODcsc2FsbW9uOjE2NDE2ODgyLHNhbmR5YnJvd246MTYwMzI4NjQsc2VhZ3JlZW46MzA1MDMyNyxzZWFzaGVsbDoxNjc3NDYzOCxzaWVubmE6MTA1MDY3OTcsc2lsdmVyOjEyNjMyMjU2LHNreWJsdWU6ODkwMDMzMSxzbGF0ZWJsdWU6Njk3MDA2MSxzbGF0ZWdyYXk6NzM3Mjk0NCxzbGF0ZWdyZXk6NzM3Mjk0NCxzbm93OjE2Nzc1OTMwLHNwcmluZ2dyZWVuOjY1NDA3LHN0ZWVsYmx1ZTo0NjIwOTgwLHRhbjoxMzgwODc4MCx0ZWFsOjMyODk2LHRoaXN0bGU6MTQyMDQ4ODgsdG9tYXRvOjE2NzM3MDk1LHR1cnF1b2lzZTo0MjUxODU2LHZpb2xldDoxNTYzMTA4Nix3aGVhdDoxNjExMzMzMSx3aGl0ZToxNjc3NzIxNSx3aGl0ZXNtb2tlOjE2MTE5Mjg1LHllbGxvdzoxNjc3Njk2MCx5ZWxsb3dncmVlbjoxMDE0NTA3NH07ZnVuY3Rpb24gbSgpe3JldHVybiB0aGlzLnJnYigpLmZvcm1hdEhleCgpfWZ1bmN0aW9uIGcoKXtyZXR1cm4gdGhpcy5yZ2IoKS5mb3JtYXRSZ2IoKX1mdW5jdGlvbiB2KHQpe3ZhciBlLHI7cmV0dXJuIHQ9KHQrIiIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLChlPXMuZXhlYyh0KSk/KHI9ZVsxXS5sZW5ndGgsZT1wYXJzZUludChlWzFdLDE2KSw2PT09cj95KGUpOjM9PT1yP25ldyB3KGU+PjgmMTV8ZT4+NCYyNDAsZT4+NCYxNXwyNDAmZSwoMTUmZSk8PDR8MTUmZSwxKTo4PT09cj94KGU+PjI0JjI1NSxlPj4xNiYyNTUsZT4+OCYyNTUsKDI1NSZlKS8yNTUpOjQ9PT1yP3goZT4+MTImMTV8ZT4+OCYyNDAsZT4+OCYxNXxlPj40JjI0MCxlPj40JjE1fDI0MCZlLCgoMTUmZSk8PDR8MTUmZSkvMjU1KTpudWxsKTooZT1sLmV4ZWModCkpP25ldyB3KGVbMV0sZVsyXSxlWzNdLDEpOihlPWMuZXhlYyh0KSk/bmV3IHcoMjU1KmVbMV0vMTAwLDI1NSplWzJdLzEwMCwyNTUqZVszXS8xMDAsMSk6KGU9dS5leGVjKHQpKT94KGVbMV0sZVsyXSxlWzNdLGVbNF0pOihlPWYuZXhlYyh0KSk/eCgyNTUqZVsxXS8xMDAsMjU1KmVbMl0vMTAwLDI1NSplWzNdLzEwMCxlWzRdKTooZT1oLmV4ZWModCkpP00oZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCwxKTooZT1wLmV4ZWModCkpP00oZVsxXSxlWzJdLzEwMCxlWzNdLzEwMCxlWzRdKTpkLmhhc093blByb3BlcnR5KHQpP3koZFt0XSk6InRyYW5zcGFyZW50Ij09PXQ/bmV3IHcoTmFOLE5hTixOYU4sMCk6bnVsbH1mdW5jdGlvbiB5KHQpe3JldHVybiBuZXcgdyh0Pj4xNiYyNTUsdD4+OCYyNTUsMjU1JnQsMSl9ZnVuY3Rpb24geCh0LGUscixuKXtyZXR1cm4gbjw9MCYmKHQ9ZT1yPU5hTiksbmV3IHcodCxlLHIsbil9ZnVuY3Rpb24gYih0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIG58fCh0PXYodCkpLHQ/bmV3IHcoKHQ9dC5yZ2IoKSkucix0LmcsdC5iLHQub3BhY2l0eSk6bmV3IHd9ZnVuY3Rpb24gXyh0LGUscixuKXtyZXR1cm4gMT09PWFyZ3VtZW50cy5sZW5ndGg/Yih0KTpuZXcgdyh0LGUscixudWxsPT1uPzE6bil9ZnVuY3Rpb24gdyh0LGUscixuKXt0aGlzLnI9K3QsdGhpcy5nPStlLHRoaXMuYj0rcix0aGlzLm9wYWNpdHk9K259ZnVuY3Rpb24gVCgpe3JldHVybiIjIitBKHRoaXMucikrQSh0aGlzLmcpK0EodGhpcy5iKX1mdW5jdGlvbiBrKCl7dmFyIHQ9dGhpcy5vcGFjaXR5O3JldHVybigxPT09KHQ9aXNOYU4odCk/MTpNYXRoLm1heCgwLE1hdGgubWluKDEsdCkpKT8icmdiKCI6InJnYmEoIikrTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0aGlzLnIpfHwwKSkrIiwgIitNYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKHRoaXMuZyl8fDApKSsiLCAiK01hdGgubWF4KDAsTWF0aC5taW4oMjU1LE1hdGgucm91bmQodGhpcy5iKXx8MCkpKygxPT09dD8iKSI6IiwgIit0KyIpIil9ZnVuY3Rpb24gQSh0KXtyZXR1cm4oKHQ9TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCh0KXx8MCkpKTwxNj8iMCI6IiIpK3QudG9TdHJpbmcoMTYpfWZ1bmN0aW9uIE0odCxlLHIsbil7cmV0dXJuIG48PTA/dD1lPXI9TmFOOnI8PTB8fHI+PTE/dD1lPU5hTjplPD0wJiYodD1OYU4pLG5ldyBMKHQsZSxyLG4pfWZ1bmN0aW9uIFModCl7aWYodCBpbnN0YW5jZW9mIEwpcmV0dXJuIG5ldyBMKHQuaCx0LnMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIG58fCh0PXYodCkpLCF0KXJldHVybiBuZXcgTDtpZih0IGluc3RhbmNlb2YgTClyZXR1cm4gdDt2YXIgZT0odD10LnJnYigpKS5yLzI1NSxyPXQuZy8yNTUsaT10LmIvMjU1LGE9TWF0aC5taW4oZSxyLGkpLG89TWF0aC5tYXgoZSxyLGkpLHM9TmFOLGw9by1hLGM9KG8rYSkvMjtyZXR1cm4gbD8ocz1lPT09bz8oci1pKS9sKzYqKHI8aSk6cj09PW8/KGktZSkvbCsyOihlLXIpL2wrNCxsLz1jPC41P28rYToyLW8tYSxzKj02MCk6bD1jPjAmJmM8MT8wOnMsbmV3IEwocyxsLGMsdC5vcGFjaXR5KX1mdW5jdGlvbiBFKHQsZSxyLG4pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9TKHQpOm5ldyBMKHQsZSxyLG51bGw9PW4/MTpuKX1mdW5jdGlvbiBMKHQsZSxyLG4pe3RoaXMuaD0rdCx0aGlzLnM9K2UsdGhpcy5sPStyLHRoaXMub3BhY2l0eT0rbn1mdW5jdGlvbiBDKHQsZSxyKXtyZXR1cm4gMjU1Kih0PDYwP2UrKHItZSkqdC82MDp0PDE4MD9yOnQ8MjQwP2UrKHItZSkqKDI0MC10KS82MDplKX1lKG4sdix7Y29weTpmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmFzc2lnbihuZXcgdGhpcy5jb25zdHJ1Y3Rvcix0aGlzLHQpfSxkaXNwbGF5YWJsZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJnYigpLmRpc3BsYXlhYmxlKCl9LGhleDptLGZvcm1hdEhleDptLGZvcm1hdEhzbDpmdW5jdGlvbigpe3JldHVybiBTKHRoaXMpLmZvcm1hdEhzbCgpfSxmb3JtYXRSZ2I6Zyx0b1N0cmluZzpnfSksZSh3LF8scihuLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgdyh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgdyh0aGlzLnIqdCx0aGlzLmcqdCx0aGlzLmIqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30sZGlzcGxheWFibGU6ZnVuY3Rpb24oKXtyZXR1cm4tLjU8PXRoaXMuciYmdGhpcy5yPDI1NS41JiYtLjU8PXRoaXMuZyYmdGhpcy5nPDI1NS41JiYtLjU8PXRoaXMuYiYmdGhpcy5iPDI1NS41JiYwPD10aGlzLm9wYWNpdHkmJnRoaXMub3BhY2l0eTw9MX0saGV4OlQsZm9ybWF0SGV4OlQsZm9ybWF0UmdiOmssdG9TdHJpbmc6a30pKSxlKEwsRSxyKG4se2JyaWdodGVyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/MS8uNzpNYXRoLnBvdygxLy43LHQpLG5ldyBMKHRoaXMuaCx0aGlzLnMsdGhpcy5sKnQsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiB0PW51bGw9PXQ/Ljc6TWF0aC5wb3coLjcsdCksbmV3IEwodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmglMzYwKzM2MCoodGhpcy5oPDApLGU9aXNOYU4odCl8fGlzTmFOKHRoaXMucyk/MDp0aGlzLnMscj10aGlzLmwsbj1yKyhyPC41P3I6MS1yKSplLGk9MipyLW47cmV0dXJuIG5ldyB3KEModD49MjQwP3QtMjQwOnQrMTIwLGksbiksQyh0LGksbiksQyh0PDEyMD90KzI0MDp0LTEyMCxpLG4pLHRoaXMub3BhY2l0eSl9LGRpc3BsYXlhYmxlOmZ1bmN0aW9uKCl7cmV0dXJuKDA8PXRoaXMucyYmdGhpcy5zPD0xfHxpc05hTih0aGlzLnMpKSYmMDw9dGhpcy5sJiZ0aGlzLmw8PTEmJjA8PXRoaXMub3BhY2l0eSYmdGhpcy5vcGFjaXR5PD0xfSxmb3JtYXRIc2w6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wYWNpdHk7cmV0dXJuKDE9PT0odD1pc05hTih0KT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMSx0KSkpPyJoc2woIjoiaHNsYSgiKSsodGhpcy5ofHwwKSsiLCAiKzEwMCoodGhpcy5zfHwwKSsiJSwgIisxMDAqKHRoaXMubHx8MCkrIiUiKygxPT09dD8iKSI6IiwgIit0KyIpIil9fSkpO3ZhciBQPU1hdGguUEkvMTgwLEk9MTgwL01hdGguUEksTz02LzI5LHo9MypPKk87ZnVuY3Rpb24gRCh0KXtpZih0IGluc3RhbmNlb2YgRilyZXR1cm4gbmV3IEYodC5sLHQuYSx0LmIsdC5vcGFjaXR5KTtpZih0IGluc3RhbmNlb2YgcSlyZXR1cm4gRyh0KTt0IGluc3RhbmNlb2Ygd3x8KHQ9Yih0KSk7dmFyIGUscixuPVUodC5yKSxpPVUodC5nKSxhPVUodC5iKSxvPUIoKC4yMjI1MDQ1Km4rLjcxNjg3ODYqaSsuMDYwNjE2OSphKS8xKTtyZXR1cm4gbj09PWkmJmk9PT1hP2U9cj1vOihlPUIoKC40MzYwNzQ3Km4rLjM4NTA2NDkqaSsuMTQzMDgwNCphKS8uOTY0MjIpLHI9QigoLjAxMzkzMjIqbisuMDk3MTA0NSppKy43MTQxNzMzKmEpLy44MjUyMSkpLG5ldyBGKDExNipvLTE2LDUwMCooZS1vKSwyMDAqKG8tciksdC5vcGFjaXR5KX1mdW5jdGlvbiBSKHQsZSxyLG4pe3JldHVybiAxPT09YXJndW1lbnRzLmxlbmd0aD9EKHQpOm5ldyBGKHQsZSxyLG51bGw9PW4/MTpuKX1mdW5jdGlvbiBGKHQsZSxyLG4pe3RoaXMubD0rdCx0aGlzLmE9K2UsdGhpcy5iPStyLHRoaXMub3BhY2l0eT0rbn1mdW5jdGlvbiBCKHQpe3JldHVybiB0Pi4wMDg4NTY0NTE2NzkwMzU2MzE/TWF0aC5wb3codCwxLzMpOnQveis0LzI5fWZ1bmN0aW9uIE4odCl7cmV0dXJuIHQ+Tz90KnQqdDp6Kih0LTQvMjkpfWZ1bmN0aW9uIGoodCl7cmV0dXJuIDI1NSoodDw9LjAwMzEzMDg/MTIuOTIqdDoxLjA1NSpNYXRoLnBvdyh0LDEvMi40KS0uMDU1KX1mdW5jdGlvbiBVKHQpe3JldHVybih0Lz0yNTUpPD0uMDQwNDU/dC8xMi45MjpNYXRoLnBvdygodCsuMDU1KS8xLjA1NSwyLjQpfWZ1bmN0aW9uIFYodCl7aWYodCBpbnN0YW5jZW9mIHEpcmV0dXJuIG5ldyBxKHQuaCx0LmMsdC5sLHQub3BhY2l0eSk7aWYodCBpbnN0YW5jZW9mIEZ8fCh0PUQodCkpLDA9PT10LmEmJjA9PT10LmIpcmV0dXJuIG5ldyBxKE5hTiwwPHQubCYmdC5sPDEwMD8wOk5hTix0LmwsdC5vcGFjaXR5KTt2YXIgZT1NYXRoLmF0YW4yKHQuYix0LmEpKkk7cmV0dXJuIG5ldyBxKGU8MD9lKzM2MDplLE1hdGguc3FydCh0LmEqdC5hK3QuYip0LmIpLHQubCx0Lm9wYWNpdHkpfWZ1bmN0aW9uIEgodCxlLHIsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1YodCk6bmV3IHEodCxlLHIsbnVsbD09bj8xOm4pfWZ1bmN0aW9uIHEodCxlLHIsbil7dGhpcy5oPSt0LHRoaXMuYz0rZSx0aGlzLmw9K3IsdGhpcy5vcGFjaXR5PStufWZ1bmN0aW9uIEcodCl7aWYoaXNOYU4odC5oKSlyZXR1cm4gbmV3IEYodC5sLDAsMCx0Lm9wYWNpdHkpO3ZhciBlPXQuaCpQO3JldHVybiBuZXcgRih0LmwsTWF0aC5jb3MoZSkqdC5jLE1hdGguc2luKGUpKnQuYyx0Lm9wYWNpdHkpfWUoRixSLHIobix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBGKHRoaXMubCsxOCoobnVsbD09dD8xOnQpLHRoaXMuYSx0aGlzLmIsdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgRih0aGlzLmwtMTgqKG51bGw9PXQ/MTp0KSx0aGlzLmEsdGhpcy5iLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3ZhciB0PSh0aGlzLmwrMTYpLzExNixlPWlzTmFOKHRoaXMuYSk/dDp0K3RoaXMuYS81MDAscj1pc05hTih0aGlzLmIpP3Q6dC10aGlzLmIvMjAwO3JldHVybiBuZXcgdyhqKDMuMTMzODU2MSooZT0uOTY0MjIqTihlKSktMS42MTY4NjY3Kih0PTEqTih0KSktLjQ5MDYxNDYqKHI9LjgyNTIxKk4ocikpKSxqKC0uOTc4NzY4NCplKzEuOTE2MTQxNSp0Ky4wMzM0NTQqciksaiguMDcxOTQ1MyplLS4yMjg5OTE0KnQrMS40MDUyNDI3KnIpLHRoaXMub3BhY2l0eSl9fSkpLGUocSxILHIobix7YnJpZ2h0ZXI6ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBxKHRoaXMuaCx0aGlzLmMsdGhpcy5sKzE4KihudWxsPT10PzE6dCksdGhpcy5vcGFjaXR5KX0sZGFya2VyOmZ1bmN0aW9uKHQpe3JldHVybiBuZXcgcSh0aGlzLmgsdGhpcy5jLHRoaXMubC0xOCoobnVsbD09dD8xOnQpLHRoaXMub3BhY2l0eSl9LHJnYjpmdW5jdGlvbigpe3JldHVybiBHKHRoaXMpLnJnYigpfX0pKTt2YXIgWT0tLjE0ODYxLFc9MS43ODI3NyxYPS0uMjkyMjcsWj0tLjkwNjQ5LEo9MS45NzI5NCxLPUoqWixRPUoqVywkPVcqWC1aKlk7ZnVuY3Rpb24gdHQodCl7aWYodCBpbnN0YW5jZW9mIHJ0KXJldHVybiBuZXcgcnQodC5oLHQucyx0LmwsdC5vcGFjaXR5KTt0IGluc3RhbmNlb2Ygd3x8KHQ9Yih0KSk7dmFyIGU9dC5yLzI1NSxyPXQuZy8yNTUsbj10LmIvMjU1LGk9KCQqbitLKmUtUSpyKS8oJCtLLVEpLGE9bi1pLG89KEoqKHItaSktWCphKS9aLHM9TWF0aC5zcXJ0KG8qbythKmEpLyhKKmkqKDEtaSkpLGw9cz9NYXRoLmF0YW4yKG8sYSkqSS0xMjA6TmFOO3JldHVybiBuZXcgcnQobDwwP2wrMzYwOmwscyxpLHQub3BhY2l0eSl9ZnVuY3Rpb24gZXQodCxlLHIsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP3R0KHQpOm5ldyBydCh0LGUscixudWxsPT1uPzE6bil9ZnVuY3Rpb24gcnQodCxlLHIsbil7dGhpcy5oPSt0LHRoaXMucz0rZSx0aGlzLmw9K3IsdGhpcy5vcGFjaXR5PStufWUocnQsZXQscihuLHticmlnaHRlcjpmdW5jdGlvbih0KXtyZXR1cm4gdD1udWxsPT10PzEvLjc6TWF0aC5wb3coMS8uNyx0KSxuZXcgcnQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxkYXJrZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bnVsbD09dD8uNzpNYXRoLnBvdyguNyx0KSxuZXcgcnQodGhpcy5oLHRoaXMucyx0aGlzLmwqdCx0aGlzLm9wYWNpdHkpfSxyZ2I6ZnVuY3Rpb24oKXt2YXIgdD1pc05hTih0aGlzLmgpPzA6KHRoaXMuaCsxMjApKlAsZT0rdGhpcy5sLHI9aXNOYU4odGhpcy5zKT8wOnRoaXMucyplKigxLWUpLG49TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KTtyZXR1cm4gbmV3IHcoMjU1KihlK3IqKFkqbitXKmkpKSwyNTUqKGUrciooWCpuK1oqaSkpLDI1NSooZStyKihKKm4pKSx0aGlzLm9wYWNpdHkpfX0pKSx0LmNvbG9yPXYsdC5jdWJlaGVsaXg9ZXQsdC5ncmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBGKHQsMCwwLG51bGw9PWU/MTplKX0sdC5oY2w9SCx0LmhzbD1FLHQubGFiPVIsdC5sY2g9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIDE9PT1hcmd1bWVudHMubGVuZ3RoP1YodCk6bmV3IHEocixlLHQsbnVsbD09bj8xOm4pfSx0LnJnYj1fLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0se31dLDE1ODpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LG4peyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9uKHIpOm4oKHQ9dHx8c2VsZikuZDM9dC5kM3x8e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGU9e3ZhbHVlOmZ1bmN0aW9uKCl7fX07ZnVuY3Rpb24gcigpe2Zvcih2YXIgdCxlPTAscj1hcmd1bWVudHMubGVuZ3RoLGk9e307ZTxyOysrZSl7aWYoISh0PWFyZ3VtZW50c1tlXSsiIil8fHQgaW4gaXx8L1tccy5dLy50ZXN0KHQpKXRocm93IG5ldyBFcnJvcigiaWxsZWdhbCB0eXBlOiAiK3QpO2lbdF09W119cmV0dXJuIG5ldyBuKGkpfWZ1bmN0aW9uIG4odCl7dGhpcy5fPXR9ZnVuY3Rpb24gaSh0LGUpe3JldHVybiB0LnRyaW0oKS5zcGxpdCgvXnxccysvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciByPSIiLG49dC5pbmRleE9mKCIuIik7aWYobj49MCYmKHI9dC5zbGljZShuKzEpLHQ9dC5zbGljZSgwLG4pKSx0JiYhZS5oYXNPd25Qcm9wZXJ0eSh0KSl0aHJvdyBuZXcgRXJyb3IoInVua25vd24gdHlwZTogIit0KTtyZXR1cm57dHlwZTp0LG5hbWU6cn19KSl9ZnVuY3Rpb24gYSh0LGUpe2Zvcih2YXIgcixuPTAsaT10Lmxlbmd0aDtuPGk7KytuKWlmKChyPXRbbl0pLm5hbWU9PT1lKXJldHVybiByLnZhbHVlfWZ1bmN0aW9uIG8odCxyLG4pe2Zvcih2YXIgaT0wLGE9dC5sZW5ndGg7aTxhOysraSlpZih0W2ldLm5hbWU9PT1yKXt0W2ldPWUsdD10LnNsaWNlKDAsaSkuY29uY2F0KHQuc2xpY2UoaSsxKSk7YnJlYWt9cmV0dXJuIG51bGwhPW4mJnQucHVzaCh7bmFtZTpyLHZhbHVlOm59KSx0fW4ucHJvdG90eXBlPXIucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpuLG9uOmZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10aGlzLl8scz1pKHQrIiIsbiksbD0tMSxjPXMubGVuZ3RoO2lmKCEoYXJndW1lbnRzLmxlbmd0aDwyKSl7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJpbnZhbGlkIGNhbGxiYWNrOiAiK2UpO2Zvcig7KytsPGM7KWlmKHI9KHQ9c1tsXSkudHlwZSluW3JdPW8obltyXSx0Lm5hbWUsZSk7ZWxzZSBpZihudWxsPT1lKWZvcihyIGluIG4pbltyXT1vKG5bcl0sdC5uYW1lLG51bGwpO3JldHVybiB0aGlzfWZvcig7KytsPGM7KWlmKChyPSh0PXNbbF0pLnR5cGUpJiYocj1hKG5bcl0sdC5uYW1lKSkpcmV0dXJuIHJ9LGNvcHk6ZnVuY3Rpb24oKXt2YXIgdD17fSxlPXRoaXMuXztmb3IodmFyIHIgaW4gZSl0W3JdPWVbcl0uc2xpY2UoKTtyZXR1cm4gbmV3IG4odCl9LGNhbGw6ZnVuY3Rpb24odCxlKXtpZigocj1hcmd1bWVudHMubGVuZ3RoLTIpPjApZm9yKHZhciByLG4saT1uZXcgQXJyYXkociksYT0wO2E8cjsrK2EpaVthXT1hcmd1bWVudHNbYSsyXTtpZighdGhpcy5fLmhhc093blByb3BlcnR5KHQpKXRocm93IG5ldyBFcnJvcigidW5rbm93biB0eXBlOiAiK3QpO2ZvcihhPTAscj0obj10aGlzLl9bdF0pLmxlbmd0aDthPHI7KythKW5bYV0udmFsdWUuYXBwbHkoZSxpKX0sYXBwbHk6ZnVuY3Rpb24odCxlLHIpe2lmKCF0aGlzLl8uaGFzT3duUHJvcGVydHkodCkpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIHR5cGU6ICIrdCk7Zm9yKHZhciBuPXRoaXMuX1t0XSxpPTAsYT1uLmxlbmd0aDtpPGE7KytpKW5baV0udmFsdWUuYXBwbHkoZSxyKX19LHQuZGlzcGF0Y2g9cixPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHt9XSwxNTk6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24obixpKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/aShyLHQoImQzLXF1YWR0cmVlIiksdCgiZDMtY29sbGVjdGlvbiIpLHQoImQzLWRpc3BhdGNoIiksdCgiZDMtdGltZXIiKSk6aShuLmQzPW4uZDN8fHt9LG4uZDMsbi5kMyxuLmQzLG4uZDMpfSh0aGlzLChmdW5jdGlvbih0LGUscixuLGkpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBhKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBvKCl7cmV0dXJuIDFlLTYqKE1hdGgucmFuZG9tKCktLjUpfWZ1bmN0aW9uIHModCl7cmV0dXJuIHQueCt0LnZ4fWZ1bmN0aW9uIGwodCl7cmV0dXJuIHQueSt0LnZ5fWZ1bmN0aW9uIGModCl7cmV0dXJuIHQuaW5kZXh9ZnVuY3Rpb24gdSh0LGUpe3ZhciByPXQuZ2V0KGUpO2lmKCFyKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIitlKTtyZXR1cm4gcn1mdW5jdGlvbiBmKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gdC55fXZhciBwPU1hdGguUEkqKDMtTWF0aC5zcXJ0KDUpKTt0LmZvcmNlQ2VudGVyPWZ1bmN0aW9uKHQsZSl7dmFyIHI7ZnVuY3Rpb24gbigpe3ZhciBuLGksYT1yLmxlbmd0aCxvPTAscz0wO2ZvcihuPTA7bjxhOysrbilvKz0oaT1yW25dKS54LHMrPWkueTtmb3Iobz1vL2EtdCxzPXMvYS1lLG49MDtuPGE7KytuKShpPXJbbl0pLngtPW8saS55LT1zfXJldHVybiBudWxsPT10JiYodD0wKSxudWxsPT1lJiYoZT0wKSxuLmluaXRpYWxpemU9ZnVuY3Rpb24odCl7cj10fSxuLng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9K2Usbik6dH0sbi55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0LG4pOmV9LG59LHQuZm9yY2VDb2xsaWRlPWZ1bmN0aW9uKHQpe3ZhciByLG4saT0xLGM9MTtmdW5jdGlvbiB1KCl7Zm9yKHZhciB0LGEsdSxoLHAsZCxtLGc9ci5sZW5ndGgsdj0wO3Y8YzsrK3YpZm9yKGE9ZS5xdWFkdHJlZShyLHMsbCkudmlzaXRBZnRlcihmKSx0PTA7dDxnOysrdCl1PXJbdF0sZD1uW3UuaW5kZXhdLG09ZCpkLGg9dS54K3UudngscD11LnkrdS52eSxhLnZpc2l0KHkpO2Z1bmN0aW9uIHkodCxlLHIsbixhKXt2YXIgcz10LmRhdGEsbD10LnIsYz1kK2w7aWYoIXMpcmV0dXJuIGU+aCtjfHxuPGgtY3x8cj5wK2N8fGE8cC1jO2lmKHMuaW5kZXg+dS5pbmRleCl7dmFyIGY9aC1zLngtcy52eCxnPXAtcy55LXMudnksdj1mKmYrZypnO3Y8YypjJiYoMD09PWYmJih2Kz0oZj1vKCkpKmYpLDA9PT1nJiYodis9KGc9bygpKSpnKSx2PShjLSh2PU1hdGguc3FydCh2KSkpL3YqaSx1LnZ4Kz0oZio9dikqKGM9KGwqPWwpLyhtK2wpKSx1LnZ5Kz0oZyo9dikqYyxzLnZ4LT1mKihjPTEtYykscy52eS09ZypjKX19fWZ1bmN0aW9uIGYodCl7aWYodC5kYXRhKXJldHVybiB0LnI9blt0LmRhdGEuaW5kZXhdO2Zvcih2YXIgZT10LnI9MDtlPDQ7KytlKXRbZV0mJnRbZV0ucj50LnImJih0LnI9dFtlXS5yKX1mdW5jdGlvbiBoKCl7aWYocil7dmFyIGUsaSxhPXIubGVuZ3RoO2ZvcihuPW5ldyBBcnJheShhKSxlPTA7ZTxhOysrZSlpPXJbZV0sbltpLmluZGV4XT0rdChpLGUscil9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1hKG51bGw9PXQ/MTordCkpLHUuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtyPXQsaCgpfSx1Lml0ZXJhdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9K3QsdSk6Y30sdS5zdHJlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdCx1KTppfSx1LnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOmEoK2UpLGgoKSx1KTp0fSx1fSx0LmZvcmNlTGluaz1mdW5jdGlvbih0KXt2YXIgZSxuLGkscyxsLGY9YyxoPWZ1bmN0aW9uKHQpe3JldHVybiAxL01hdGgubWluKHNbdC5zb3VyY2UuaW5kZXhdLHNbdC50YXJnZXQuaW5kZXhdKX0scD1hKDMwKSxkPTE7ZnVuY3Rpb24gbShyKXtmb3IodmFyIGk9MCxhPXQubGVuZ3RoO2k8ZDsrK2kpZm9yKHZhciBzLGMsdSxmLGgscCxtLGc9MDtnPGE7KytnKWM9KHM9dFtnXSkuc291cmNlLGY9KHU9cy50YXJnZXQpLngrdS52eC1jLngtYy52eHx8bygpLGg9dS55K3UudnktYy55LWMudnl8fG8oKSxmKj1wPSgocD1NYXRoLnNxcnQoZipmK2gqaCkpLW5bZ10pL3AqciplW2ddLGgqPXAsdS52eC09ZioobT1sW2ddKSx1LnZ5LT1oKm0sYy52eCs9ZioobT0xLW0pLGMudnkrPWgqbX1mdW5jdGlvbiBnKCl7aWYoaSl7dmFyIGEsbyxjPWkubGVuZ3RoLGg9dC5sZW5ndGgscD1yLm1hcChpLGYpO2ZvcihhPTAscz1uZXcgQXJyYXkoYyk7YTxoOysrYSkobz10W2FdKS5pbmRleD1hLCJvYmplY3QiIT10eXBlb2Ygby5zb3VyY2UmJihvLnNvdXJjZT11KHAsby5zb3VyY2UpKSwib2JqZWN0IiE9dHlwZW9mIG8udGFyZ2V0JiYoby50YXJnZXQ9dShwLG8udGFyZ2V0KSksc1tvLnNvdXJjZS5pbmRleF09KHNbby5zb3VyY2UuaW5kZXhdfHwwKSsxLHNbby50YXJnZXQuaW5kZXhdPShzW28udGFyZ2V0LmluZGV4XXx8MCkrMTtmb3IoYT0wLGw9bmV3IEFycmF5KGgpO2E8aDsrK2Epbz10W2FdLGxbYV09c1tvLnNvdXJjZS5pbmRleF0vKHNbby5zb3VyY2UuaW5kZXhdK3Nbby50YXJnZXQuaW5kZXhdKTtlPW5ldyBBcnJheShoKSx2KCksbj1uZXcgQXJyYXkoaCkseSgpfX1mdW5jdGlvbiB2KCl7aWYoaSlmb3IodmFyIHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZVtyXT0raCh0W3JdLHIsdCl9ZnVuY3Rpb24geSgpe2lmKGkpZm9yKHZhciBlPTAscj10Lmxlbmd0aDtlPHI7KytlKW5bZV09K3AodFtlXSxlLHQpfXJldHVybiBudWxsPT10JiYodD1bXSksbS5pbml0aWFsaXplPWZ1bmN0aW9uKHQpe2k9dCxnKCl9LG0ubGlua3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxnKCksbSk6dH0sbS5pZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZj10LG0pOmZ9LG0uaXRlcmF0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZD0rdCxtKTpkfSxtLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhoPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6YSgrdCksdigpLG0pOmh9LG0uZGlzdGFuY2U9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHA9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDphKCt0KSx5KCksbSk6cH0sbX0sdC5mb3JjZU1hbnlCb2R5PWZ1bmN0aW9uKCl7dmFyIHQscixuLGkscz1hKC0zMCksbD0xLGM9MS8wLHU9LjgxO2Z1bmN0aW9uIHAoaSl7dmFyIGEsbz10Lmxlbmd0aCxzPWUucXVhZHRyZWUodCxmLGgpLnZpc2l0QWZ0ZXIobSk7Zm9yKG49aSxhPTA7YTxvOysrYSlyPXRbYV0scy52aXNpdChnKX1mdW5jdGlvbiBkKCl7aWYodCl7dmFyIGUscixuPXQubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShuKSxlPTA7ZTxuOysrZSlyPXRbZV0saVtyLmluZGV4XT0rcyhyLGUsdCl9fWZ1bmN0aW9uIG0odCl7dmFyIGUscixuLGEsbyxzPTAsbD0wO2lmKHQubGVuZ3RoKXtmb3Iobj1hPW89MDtvPDQ7KytvKShlPXRbb10pJiYocj1NYXRoLmFicyhlLnZhbHVlKSkmJihzKz1lLnZhbHVlLGwrPXIsbis9ciplLngsYSs9ciplLnkpO3QueD1uL2wsdC55PWEvbH1lbHNleyhlPXQpLng9ZS5kYXRhLngsZS55PWUuZGF0YS55O2Rve3MrPWlbZS5kYXRhLmluZGV4XX13aGlsZShlPWUubmV4dCl9dC52YWx1ZT1zfWZ1bmN0aW9uIGcodCxlLGEscyl7aWYoIXQudmFsdWUpcmV0dXJuITA7dmFyIGY9dC54LXIueCxoPXQueS1yLnkscD1zLWUsZD1mKmYraCpoO2lmKHAqcC91PGQpcmV0dXJuIGQ8YyYmKDA9PT1mJiYoZCs9KGY9bygpKSpmKSwwPT09aCYmKGQrPShoPW8oKSkqaCksZDxsJiYoZD1NYXRoLnNxcnQobCpkKSksci52eCs9Zip0LnZhbHVlKm4vZCxyLnZ5Kz1oKnQudmFsdWUqbi9kKSwhMDtpZighKHQubGVuZ3RofHxkPj1jKSl7KHQuZGF0YSE9PXJ8fHQubmV4dCkmJigwPT09ZiYmKGQrPShmPW8oKSkqZiksMD09PWgmJihkKz0oaD1vKCkpKmgpLGQ8bCYmKGQ9TWF0aC5zcXJ0KGwqZCkpKTtkb3t0LmRhdGEhPT1yJiYocD1pW3QuZGF0YS5pbmRleF0qbi9kLHIudngrPWYqcCxyLnZ5Kz1oKnApfXdoaWxlKHQ9dC5uZXh0KX19cmV0dXJuIHAuaW5pdGlhbGl6ZT1mdW5jdGlvbihlKXt0PWUsZCgpfSxwLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6YSgrdCksZCgpLHApOnN9LHAuZGlzdGFuY2VNaW49ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGw9dCp0LHApOk1hdGguc3FydChsKX0scC5kaXN0YW5jZU1heD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oYz10KnQscCk6TWF0aC5zcXJ0KGMpfSxwLnRoZXRhPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQqdCxwKTpNYXRoLnNxcnQodSl9LHB9LHQuZm9yY2VSYWRpYWw9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksbyxzPWEoLjEpO2Z1bmN0aW9uIGwodCl7Zm9yKHZhciBhPTAscz1uLmxlbmd0aDthPHM7KythKXt2YXIgbD1uW2FdLGM9bC54LWV8fDFlLTYsdT1sLnktcnx8MWUtNixmPU1hdGguc3FydChjKmMrdSp1KSxoPShvW2FdLWYpKmlbYV0qdC9mO2wudngrPWMqaCxsLnZ5Kz11Kmh9fWZ1bmN0aW9uIGMoKXtpZihuKXt2YXIgZSxyPW4ubGVuZ3RoO2ZvcihpPW5ldyBBcnJheShyKSxvPW5ldyBBcnJheShyKSxlPTA7ZTxyOysrZSlvW2VdPSt0KG5bZV0sZSxuKSxpW2VdPWlzTmFOKG9bZV0pPzA6K3MobltlXSxlLG4pfX1yZXR1cm4iZnVuY3Rpb24iIT10eXBlb2YgdCYmKHQ9YSgrdCkpLG51bGw9PWUmJihlPTApLG51bGw9PXImJihyPTApLGwuaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtuPXQsYygpfSxsLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6YSgrdCksYygpLGwpOnN9LGwucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6YSgrZSksYygpLGwpOnR9LGwueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT0rdCxsKTplfSxsLnk9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3QsbCk6cn0sbH0sdC5mb3JjZVNpbXVsYXRpb249ZnVuY3Rpb24odCl7dmFyIGUsYT0xLG89LjAwMSxzPTEtTWF0aC5wb3cobywxLzMwMCksbD0wLGM9LjYsdT1yLm1hcCgpLGY9aS50aW1lcihkKSxoPW4uZGlzcGF0Y2goInRpY2siLCJlbmQiKTtmdW5jdGlvbiBkKCl7bSgpLGguY2FsbCgidGljayIsZSksYTxvJiYoZi5zdG9wKCksaC5jYWxsKCJlbmQiLGUpKX1mdW5jdGlvbiBtKHIpe3ZhciBuLGksbz10Lmxlbmd0aDt2b2lkIDA9PT1yJiYocj0xKTtmb3IodmFyIGY9MDtmPHI7KytmKWZvcihhKz0obC1hKSpzLHUuZWFjaCgoZnVuY3Rpb24odCl7dChhKX0pKSxuPTA7bjxvOysrbiludWxsPT0oaT10W25dKS5meD9pLngrPWkudngqPWM6KGkueD1pLmZ4LGkudng9MCksbnVsbD09aS5meT9pLnkrPWkudnkqPWM6KGkueT1pLmZ5LGkudnk9MCk7cmV0dXJuIGV9ZnVuY3Rpb24gZygpe2Zvcih2YXIgZSxyPTAsbj10Lmxlbmd0aDtyPG47KytyKXtpZigoZT10W3JdKS5pbmRleD1yLG51bGwhPWUuZngmJihlLng9ZS5meCksbnVsbCE9ZS5meSYmKGUueT1lLmZ5KSxpc05hTihlLngpfHxpc05hTihlLnkpKXt2YXIgaT0xMCpNYXRoLnNxcnQociksYT1yKnA7ZS54PWkqTWF0aC5jb3MoYSksZS55PWkqTWF0aC5zaW4oYSl9KGlzTmFOKGUudngpfHxpc05hTihlLnZ5KSkmJihlLnZ4PWUudnk9MCl9fWZ1bmN0aW9uIHYoZSl7cmV0dXJuIGUuaW5pdGlhbGl6ZSYmZS5pbml0aWFsaXplKHQpLGV9cmV0dXJuIG51bGw9PXQmJih0PVtdKSxnKCksZT17dGljazptLHJlc3RhcnQ6ZnVuY3Rpb24oKXtyZXR1cm4gZi5yZXN0YXJ0KGQpLGV9LHN0b3A6ZnVuY3Rpb24oKXtyZXR1cm4gZi5zdG9wKCksZX0sbm9kZXM6ZnVuY3Rpb24ocil7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9cixnKCksdS5lYWNoKHYpLGUpOnR9LGFscGhhOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSt0LGUpOmF9LGFscGhhTWluOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSt0LGUpOm99LGFscGhhRGVjYXk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHM9K3QsZSk6K3N9LGFscGhhVGFyZ2V0OmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSt0LGUpOmx9LHZlbG9jaXR5RGVjYXk6ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9MS10LGUpOjEtY30sZm9yY2U6ZnVuY3Rpb24odCxyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xPyhudWxsPT1yP3UucmVtb3ZlKHQpOnUuc2V0KHQsdihyKSksZSk6dS5nZXQodCl9LGZpbmQ6ZnVuY3Rpb24oZSxyLG4pe3ZhciBpLGEsbyxzLGwsYz0wLHU9dC5sZW5ndGg7Zm9yKG51bGw9PW4/bj0xLzA6bio9bixjPTA7Yzx1OysrYykobz0oaT1lLShzPXRbY10pLngpKmkrKGE9ci1zLnkpKmEpPG4mJihsPXMsbj1vKTtyZXR1cm4gbH0sb246ZnVuY3Rpb24odCxyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD4xPyhoLm9uKHQsciksZSk6aC5vbih0KX19fSx0LmZvcmNlWD1mdW5jdGlvbih0KXt2YXIgZSxyLG4saT1hKC4xKTtmdW5jdGlvbiBvKHQpe2Zvcih2YXIgaSxhPTAsbz1lLmxlbmd0aDthPG87KythKShpPWVbYV0pLnZ4Kz0oblthXS1pLngpKnJbYV0qdH1mdW5jdGlvbiBzKCl7aWYoZSl7dmFyIGEsbz1lLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobyksbj1uZXcgQXJyYXkobyksYT0wO2E8bzsrK2EpclthXT1pc05hTihuW2FdPSt0KGVbYV0sYSxlKSk/MDoraShlW2FdLGEsZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1hKG51bGw9PXQ/MDordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQscygpfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6YSgrdCkscygpLG8pOml9LG8ueD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOmEoK2UpLHMoKSxvKTp0fSxvfSx0LmZvcmNlWT1mdW5jdGlvbih0KXt2YXIgZSxyLG4saT1hKC4xKTtmdW5jdGlvbiBvKHQpe2Zvcih2YXIgaSxhPTAsbz1lLmxlbmd0aDthPG87KythKShpPWVbYV0pLnZ5Kz0oblthXS1pLnkpKnJbYV0qdH1mdW5jdGlvbiBzKCl7aWYoZSl7dmFyIGEsbz1lLmxlbmd0aDtmb3Iocj1uZXcgQXJyYXkobyksbj1uZXcgQXJyYXkobyksYT0wO2E8bzsrK2EpclthXT1pc05hTihuW2FdPSt0KGVbYV0sYSxlKSk/MDoraShlW2FdLGEsZSl9fXJldHVybiJmdW5jdGlvbiIhPXR5cGVvZiB0JiYodD1hKG51bGw9PXQ/MDordCkpLG8uaW5pdGlhbGl6ZT1mdW5jdGlvbih0KXtlPXQscygpfSxvLnN0cmVuZ3RoPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6YSgrdCkscygpLG8pOml9LG8ueT1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOmEoK2UpLHMoKSxvKTp0fSxvfSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtY29sbGVjdGlvbiI6MTU2LCJkMy1kaXNwYXRjaCI6MTU4LCJkMy1xdWFkdHJlZSI6MTY2LCJkMy10aW1lciI6MTcwfV0sMTYwOltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP24ocik6bigodD0idW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbFRoaXM/Z2xvYmFsVGhpczp0fHxzZWxmKS5kMz10LmQzfHx7fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKHQsZSl7aWYoKHI9KHQ9ZT90LnRvRXhwb25lbnRpYWwoZS0xKTp0LnRvRXhwb25lbnRpYWwoKSkuaW5kZXhPZigiZSIpKTwwKXJldHVybiBudWxsO3ZhciByLG49dC5zbGljZSgwLHIpO3JldHVybltuLmxlbmd0aD4xP25bMF0rbi5zbGljZSgyKTpuLCt0LnNsaWNlKHIrMSldfWZ1bmN0aW9uIHIodCl7cmV0dXJuKHQ9ZShNYXRoLmFicyh0KSkpP3RbMV06TmFOfXZhciBuLGk9L14oPzooLik/KFs8Pj1eXSkpPyhbK1wtKCBdKT8oWyQjXSk/KDApPyhcZCspPygsKT8oXC5cZCspPyh+KT8oW2EteiVdKT8kL2k7ZnVuY3Rpb24gYSh0KXtpZighKGU9aS5leGVjKHQpKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZm9ybWF0OiAiK3QpO3ZhciBlO3JldHVybiBuZXcgbyh7ZmlsbDplWzFdLGFsaWduOmVbMl0sc2lnbjplWzNdLHN5bWJvbDplWzRdLHplcm86ZVs1XSx3aWR0aDplWzZdLGNvbW1hOmVbN10scHJlY2lzaW9uOmVbOF0mJmVbOF0uc2xpY2UoMSksdHJpbTplWzldLHR5cGU6ZVsxMF19KX1mdW5jdGlvbiBvKHQpe3RoaXMuZmlsbD12b2lkIDA9PT10LmZpbGw/IiAiOnQuZmlsbCsiIix0aGlzLmFsaWduPXZvaWQgMD09PXQuYWxpZ24/Ij4iOnQuYWxpZ24rIiIsdGhpcy5zaWduPXZvaWQgMD09PXQuc2lnbj8iLSI6dC5zaWduKyIiLHRoaXMuc3ltYm9sPXZvaWQgMD09PXQuc3ltYm9sPyIiOnQuc3ltYm9sKyIiLHRoaXMuemVybz0hIXQuemVybyx0aGlzLndpZHRoPXZvaWQgMD09PXQud2lkdGg/dm9pZCAwOit0LndpZHRoLHRoaXMuY29tbWE9ISF0LmNvbW1hLHRoaXMucHJlY2lzaW9uPXZvaWQgMD09PXQucHJlY2lzaW9uP3ZvaWQgMDordC5wcmVjaXNpb24sdGhpcy50cmltPSEhdC50cmltLHRoaXMudHlwZT12b2lkIDA9PT10LnR5cGU/IiI6dC50eXBlKyIifWZ1bmN0aW9uIHModCxyKXt2YXIgbj1lKHQscik7aWYoIW4pcmV0dXJuIHQrIiI7dmFyIGk9blswXSxhPW5bMV07cmV0dXJuIGE8MD8iMC4iK25ldyBBcnJheSgtYSkuam9pbigiMCIpK2k6aS5sZW5ndGg+YSsxP2kuc2xpY2UoMCxhKzEpKyIuIitpLnNsaWNlKGErMSk6aStuZXcgQXJyYXkoYS1pLmxlbmd0aCsyKS5qb2luKCIwIil9YS5wcm90b3R5cGU9by5wcm90b3R5cGUsby5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5maWxsK3RoaXMuYWxpZ24rdGhpcy5zaWduK3RoaXMuc3ltYm9sKyh0aGlzLnplcm8/IjAiOiIiKSsodm9pZCAwPT09dGhpcy53aWR0aD8iIjpNYXRoLm1heCgxLDB8dGhpcy53aWR0aCkpKyh0aGlzLmNvbW1hPyIsIjoiIikrKHZvaWQgMD09PXRoaXMucHJlY2lzaW9uPyIiOiIuIitNYXRoLm1heCgwLDB8dGhpcy5wcmVjaXNpb24pKSsodGhpcy50cmltPyJ+IjoiIikrdGhpcy50eXBlfTt2YXIgbD17IiUiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKDEwMCp0KS50b0ZpeGVkKGUpfSxiOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKHQpLnRvU3RyaW5nKDIpfSxjOmZ1bmN0aW9uKHQpe3JldHVybiB0KyIifSxkOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmFicyh0PU1hdGgucm91bmQodCkpPj0xZTIxP3QudG9Mb2NhbGVTdHJpbmcoImVuIikucmVwbGFjZSgvLC9nLCIiKTp0LnRvU3RyaW5nKDEwKX0sZTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnRvRXhwb25lbnRpYWwoZSl9LGY6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC50b0ZpeGVkKGUpfSxnOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudG9QcmVjaXNpb24oZSl9LG86ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgucm91bmQodCkudG9TdHJpbmcoOCl9LHA6ZnVuY3Rpb24odCxlKXtyZXR1cm4gcygxMDAqdCxlKX0scjpzLHM6ZnVuY3Rpb24odCxyKXt2YXIgaT1lKHQscik7aWYoIWkpcmV0dXJuIHQrIiI7dmFyIGE9aVswXSxvPWlbMV0scz1vLShuPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKG8vMykpKSkrMSxsPWEubGVuZ3RoO3JldHVybiBzPT09bD9hOnM+bD9hK25ldyBBcnJheShzLWwrMSkuam9pbigiMCIpOnM+MD9hLnNsaWNlKDAscykrIi4iK2Euc2xpY2Uocyk6IjAuIituZXcgQXJyYXkoMS1zKS5qb2luKCIwIikrZSh0LE1hdGgubWF4KDAscitzLTEpKVswXX0sWDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKX0seDpmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCh0KS50b1N0cmluZygxNil9fTtmdW5jdGlvbiBjKHQpe3JldHVybiB0fXZhciB1LGY9QXJyYXkucHJvdG90eXBlLm1hcCxoPVsieSIsInoiLCJhIiwiZiIsInAiLCJuIiwiXHhiNSIsIm0iLCIiLCJrIiwiTSIsIkciLCJUIiwiUCIsIkUiLCJaIiwiWSJdO2Z1bmN0aW9uIHAodCl7dmFyIGUsaSxvPXZvaWQgMD09PXQuZ3JvdXBpbmd8fHZvaWQgMD09PXQudGhvdXNhbmRzP2M6KGU9Zi5jYWxsKHQuZ3JvdXBpbmcsTnVtYmVyKSxpPXQudGhvdXNhbmRzKyIiLGZ1bmN0aW9uKHQscil7Zm9yKHZhciBuPXQubGVuZ3RoLGE9W10sbz0wLHM9ZVswXSxsPTA7bj4wJiZzPjAmJihsK3MrMT5yJiYocz1NYXRoLm1heCgxLHItbCkpLGEucHVzaCh0LnN1YnN0cmluZyhuLT1zLG4rcykpLCEoKGwrPXMrMSk+cikpOylzPWVbbz0obysxKSVlLmxlbmd0aF07cmV0dXJuIGEucmV2ZXJzZSgpLmpvaW4oaSl9KSxzPXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVswXSsiIix1PXZvaWQgMD09PXQuY3VycmVuY3k/IiI6dC5jdXJyZW5jeVsxXSsiIixwPXZvaWQgMD09PXQuZGVjaW1hbD8iLiI6dC5kZWNpbWFsKyIiLGQ9dm9pZCAwPT09dC5udW1lcmFscz9jOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlKC9bMC05XS9nLChmdW5jdGlvbihlKXtyZXR1cm4gdFsrZV19KSl9fShmLmNhbGwodC5udW1lcmFscyxTdHJpbmcpKSxtPXZvaWQgMD09PXQucGVyY2VudD8iJSI6dC5wZXJjZW50KyIiLGc9dm9pZCAwPT09dC5taW51cz8iLSI6dC5taW51cysiIix2PXZvaWQgMD09PXQubmFuPyJOYU4iOnQubmFuKyIiO2Z1bmN0aW9uIHkodCl7dmFyIGU9KHQ9YSh0KSkuZmlsbCxyPXQuYWxpZ24saT10LnNpZ24sYz10LnN5bWJvbCxmPXQuemVybyx5PXQud2lkdGgseD10LmNvbW1hLGI9dC5wcmVjaXNpb24sXz10LnRyaW0sdz10LnR5cGU7Im4iPT09dz8oeD0hMCx3PSJnIik6bFt3XXx8KHZvaWQgMD09PWImJihiPTEyKSxfPSEwLHc9ImciKSwoZnx8IjAiPT09ZSYmIj0iPT09cikmJihmPSEwLGU9IjAiLHI9Ij0iKTt2YXIgVD0iJCI9PT1jP3M6IiMiPT09YyYmL1tib3hYXS8udGVzdCh3KT8iMCIrdy50b0xvd2VyQ2FzZSgpOiIiLGs9IiQiPT09Yz91Oi9bJXBdLy50ZXN0KHcpP206IiIsQT1sW3ddLE09L1tkZWZncHJzJV0vLnRlc3Qodyk7ZnVuY3Rpb24gUyh0KXt2YXIgYSxzLGwsYz1ULHU9aztpZigiYyI9PT13KXU9QSh0KSt1LHQ9IiI7ZWxzZXt2YXIgbT0odD0rdCk8MHx8MS90PDA7aWYodD1pc05hTih0KT92OkEoTWF0aC5hYnModCksYiksXyYmKHQ9ZnVuY3Rpb24odCl7dDpmb3IodmFyIGUscj10Lmxlbmd0aCxuPTEsaT0tMTtuPHI7KytuKXN3aXRjaCh0W25dKXtjYXNlIi4iOmk9ZT1uO2JyZWFrO2Nhc2UiMCI6MD09PWkmJihpPW4pLGU9bjticmVhaztkZWZhdWx0OmlmKCErdFtuXSlicmVhayB0O2k+MCYmKGk9MCl9cmV0dXJuIGk+MD90LnNsaWNlKDAsaSkrdC5zbGljZShlKzEpOnR9KHQpKSxtJiYwPT0rdCYmIisiIT09aSYmKG09ITEpLGM9KG0/IigiPT09aT9pOmc6Ii0iPT09aXx8IigiPT09aT8iIjppKStjLHU9KCJzIj09PXc/aFs4K24vM106IiIpK3UrKG0mJiIoIj09PWk/IikiOiIiKSxNKWZvcihhPS0xLHM9dC5sZW5ndGg7KythPHM7KWlmKDQ4PihsPXQuY2hhckNvZGVBdChhKSl8fGw+NTcpe3U9KDQ2PT09bD9wK3Quc2xpY2UoYSsxKTp0LnNsaWNlKGEpKSt1LHQ9dC5zbGljZSgwLGEpO2JyZWFrfX14JiYhZiYmKHQ9byh0LDEvMCkpO3ZhciBTPWMubGVuZ3RoK3QubGVuZ3RoK3UubGVuZ3RoLEU9Uzx5P25ldyBBcnJheSh5LVMrMSkuam9pbihlKToiIjtzd2l0Y2goeCYmZiYmKHQ9byhFK3QsRS5sZW5ndGg/eS11Lmxlbmd0aDoxLzApLEU9IiIpLHIpe2Nhc2UiPCI6dD1jK3QrdStFO2JyZWFrO2Nhc2UiPSI6dD1jK0UrdCt1O2JyZWFrO2Nhc2UiXiI6dD1FLnNsaWNlKDAsUz1FLmxlbmd0aD4+MSkrYyt0K3UrRS5zbGljZShTKTticmVhaztkZWZhdWx0OnQ9RStjK3QrdX1yZXR1cm4gZCh0KX1yZXR1cm4gYj12b2lkIDA9PT1iPzY6L1tncHJzXS8udGVzdCh3KT9NYXRoLm1heCgxLE1hdGgubWluKDIxLGIpKTpNYXRoLm1heCgwLE1hdGgubWluKDIwLGIpKSxTLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHQrIiJ9LFN9cmV0dXJue2Zvcm1hdDp5LGZvcm1hdFByZWZpeDpmdW5jdGlvbih0LGUpe3ZhciBuPXkoKCh0PWEodCkpLnR5cGU9ImYiLHQpKSxpPTMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHIoZSkvMykpKSxvPU1hdGgucG93KDEwLC1pKSxzPWhbOCtpLzNdO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gbihvKnQpK3N9fX19ZnVuY3Rpb24gZChlKXtyZXR1cm4gdT1wKGUpLHQuZm9ybWF0PXUuZm9ybWF0LHQuZm9ybWF0UHJlZml4PXUuZm9ybWF0UHJlZml4LHV9ZCh7ZGVjaW1hbDoiLiIsdGhvdXNhbmRzOiIsIixncm91cGluZzpbM10sY3VycmVuY3k6WyIkIiwiIl0sbWludXM6Ii0ifSksdC5Gb3JtYXRTcGVjaWZpZXI9byx0LmZvcm1hdERlZmF1bHRMb2NhbGU9ZCx0LmZvcm1hdExvY2FsZT1wLHQuZm9ybWF0U3BlY2lmaWVyPWEsdC5wcmVjaXNpb25GaXhlZD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCwtcihNYXRoLmFicyh0KSkpfSx0LnByZWNpc2lvblByZWZpeD1mdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCgwLDMqTWF0aC5tYXgoLTgsTWF0aC5taW4oOCxNYXRoLmZsb29yKHIoZSkvMykpKS1yKE1hdGguYWJzKHQpKSl9LHQucHJlY2lzaW9uUm91bmQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD1NYXRoLmFicyh0KSxlPU1hdGguYWJzKGUpLXQsTWF0aC5tYXgoMCxyKGUpLXIodCkpKzF9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0se31dLDE2MTpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbihuLGkpeyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9pKHIsdCgiZDMtZ2VvIiksdCgiZDMtYXJyYXkiKSk6aShuLmQzPW4uZDN8fHt9LG4uZDMsbi5kMyl9KHRoaXMsKGZ1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49TWF0aC5hYnMsaT1NYXRoLmF0YW4sYT1NYXRoLmF0YW4yLG89TWF0aC5jb3Mscz1NYXRoLmV4cCxsPU1hdGguZmxvb3IsYz1NYXRoLmxvZyx1PU1hdGgubWF4LGY9TWF0aC5taW4saD1NYXRoLnBvdyxwPU1hdGgucm91bmQsZD1NYXRoLnNpZ258fGZ1bmN0aW9uKHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH0sbT1NYXRoLnNpbixnPU1hdGgudGFuLHY9MWUtNix5PU1hdGguUEkseD15LzIsYj15LzQsXz1NYXRoLlNRUlQxXzIsdz1MKDIpLFQ9TCh5KSxrPTIqeSxBPTE4MC95LE09eS8xODA7ZnVuY3Rpb24gUyh0KXtyZXR1cm4gdD4xP3g6dDwtMT8teDpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gRSh0KXtyZXR1cm4gdD4xPzA6dDwtMT95Ok1hdGguYWNvcyh0KX1mdW5jdGlvbiBMKHQpe3JldHVybiB0PjA/TWF0aC5zcXJ0KHQpOjB9ZnVuY3Rpb24gQyh0KXtyZXR1cm4ocyh0KS1zKC10KSkvMn1mdW5jdGlvbiBQKHQpe3JldHVybihzKHQpK3MoLXQpKS8yfWZ1bmN0aW9uIEkodCl7dmFyIGU9Zyh0LzIpLHI9MipjKG8odC8yKSkvKGUqZSk7ZnVuY3Rpb24gaSh0LGUpe3ZhciBuPW8odCksaT1vKGUpLGE9bShlKSxzPWkqbixsPS0oKDEtcz9jKCgxK3MpLzIpLygxLXMpOi0uNSkrci8oMStzKSk7cmV0dXJuW2wqaSptKHQpLGwqYV19cmV0dXJuIGkuaW52ZXJ0PWZ1bmN0aW9uKGUsaSl7dmFyIHMsbD1MKGUqZStpKmkpLHU9LXQvMixmPTUwO2lmKCFsKXJldHVyblswLDBdO2Rve3ZhciBoPXUvMixwPW8oaCksZD1tKGgpLGc9ZC9wLHk9LWMobihwKSk7dS09cz0oMi9nKnktcipnLWwpLygteS8oZCpkKSsxLXIvKDIqcCpwKSkqKHA8MD8uNzoxKX13aGlsZShuKHMpPnYmJi0tZj4wKTt2YXIgeD1tKHUpO3JldHVyblthKGUqeCxsKm8odSkpLFMoaSp4L2wpXX0saX1mdW5jdGlvbiBPKHQsZSl7dmFyIHI9byhlKSxuPWZ1bmN0aW9uKHQpe3JldHVybiB0P3QvTWF0aC5zaW4odCk6MX0oRShyKm8odC89MikpKTtyZXR1cm5bMipyKm0odCkqbixtKGUpKm5dfWZ1bmN0aW9uIHoodCl7dmFyIGU9bSh0KSxyPW8odCksaT10Pj0wPzE6LTEscz1nKGkqdCksbD0oMStlLXIpLzI7ZnVuY3Rpb24gYyh0LG4pe3ZhciBjPW8obiksdT1vKHQvPTIpO3JldHVyblsoMStjKSptKHQpLChpKm4+LWEodSxzKS0uMDAxPzA6MTAqLWkpK2wrbShuKSpyLSgxK2MpKmUqdV19cmV0dXJuIGMuaW52ZXJ0PWZ1bmN0aW9uKHQsYyl7dmFyIHU9MCxmPTAsaD01MDtkb3t2YXIgcD1vKHUpLGQ9bSh1KSxnPW8oZikseT1tKGYpLHg9MStnLGI9eCpkLXQsXz1sK3kqci14KmUqcC1jLHc9eCpwLzIsVD0tZCp5LGs9ZSp4KmQvMixBPXIqZytlKnAqeSxNPVQqay1BKncsUz0oXypULWIqQSkvTS8yLEU9KGIqay1fKncpL007bihFKT4yJiYoRS89MiksdS09UyxmLT1FfXdoaWxlKChuKFMpPnZ8fG4oRSk+dikmJi0taD4wKTtyZXR1cm4gaSpmPi1hKG8odSkscyktLjAwMT9bMip1LGZdOm51bGx9LGN9ZnVuY3Rpb24gRCh0LGUpe3ZhciByPWcoZS8yKSxuPUwoMS1yKnIpLGk9MStuKm8odC89MiksYT1tKHQpKm4vaSxzPXIvaSxsPWEqYSxjPXMqcztyZXR1cm5bNC8zKmEqKDMrbC0zKmMpLDQvMypzKigzKzMqbC1jKV19Ty5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtpZighKHQqdCs0KmUqZT55Knkrdikpe3ZhciByPXQsaT1lLGE9MjU7ZG97dmFyIHMsbD1tKHIpLGM9bShyLzIpLHU9byhyLzIpLGY9bShpKSxoPW8oaSkscD1tKDIqaSksZD1mKmYsZz1oKmgseD1jKmMsYj0xLWcqdSp1LF89Yj9FKGgqdSkqTChzPTEvYik6cz0wLHc9MipfKmgqYy10LFQ9XypmLWUsaz1zKihnKngrXypoKnUqZCksQT1zKiguNSpsKnAtMipfKmYqYyksTT0uMjUqcyoocCpjLV8qZipnKmwpLFM9cyooZCp1K18qeCpoKSxDPUEqTS1TKms7aWYoIUMpYnJlYWs7dmFyIFA9KFQqQS13KlMpL0MsST0odypNLVQqaykvQztyLT1QLGktPUl9d2hpbGUoKG4oUCk+dnx8bihJKT52KSYmLS1hPjApO3JldHVybltyLGldfX0sRC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtpZihlKj0zLzgsISh0Kj0zLzgpJiZuKGUpPjEpcmV0dXJuIG51bGw7dmFyIHI9MSt0KnQrZSplLGk9TCgoci1MKHIqci00KmUqZSkpLzIpLHM9UyhpKS8zLGw9aT9mdW5jdGlvbih0KXtyZXR1cm4gYyh0K0wodCp0LTEpKX0obihlL2kpKS8zOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQrTCh0KnQrMSkpfShuKHQpKS8zLHU9byhzKSxmPVAobCksaD1mKmYtdSp1O3JldHVyblsyKmQodCkqYShDKGwpKnUsLjI1LWgpLDIqZChlKSphKGYqbShzKSwuMjUraCldfTt2YXIgUj1MKDgpLEY9YygxK3cpO2Z1bmN0aW9uIEIodCxlKXt2YXIgcj1uKGUpO3JldHVybiByPGI/W3QsYyhnKGIrZS8yKSldOlt0Km8ocikqKDIqdy0xL20ocikpLGQoZSkqKDIqdyooci1iKS1jKGcoci8yKSkpXX1mdW5jdGlvbiBOKHQpe3ZhciByPTIqeS90O2Z1bmN0aW9uIHModCxpKXt2YXIgcz1lLmdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3KHQsaSk7aWYobih0KT54KXt2YXIgbD1hKHNbMV0sc1swXSksYz1MKHNbMF0qc1swXStzWzFdKnNbMV0pLHU9cipwKChsLXgpL3IpK3gsZj1hKG0obC09dSksMi1vKGwpKTtsPXUrUyh5L2MqbShmKSktZixzWzBdPWMqbyhsKSxzWzFdPWMqbShsKX1yZXR1cm4gc31yZXR1cm4gcy5pbnZlcnQ9ZnVuY3Rpb24odCxuKXt2YXIgcz1MKHQqdCtuKm4pO2lmKHM+eCl7dmFyIGw9YShuLHQpLGM9cipwKChsLXgpL3IpK3gsdT1sPmM/LTE6MSxmPXMqbyhjLWwpLGg9MS9nKHUqRSgoZi15KS9MKHkqKHktMipmKStzKnMpKSk7bD1jKzIqaSgoaCt1KkwoaCpoLTMpKS8zKSx0PXMqbyhsKSxuPXMqbShsKX1yZXR1cm4gZS5nZW9BemltdXRoYWxFcXVpZGlzdGFudFJhdy5pbnZlcnQodCxuKX0sc31mdW5jdGlvbiBqKHQscil7aWYoYXJndW1lbnRzLmxlbmd0aDwyJiYocj10KSwxPT09cilyZXR1cm4gZS5nZW9BemltdXRoYWxFcXVhbEFyZWFSYXc7aWYocj09PTEvMClyZXR1cm4gVTtmdW5jdGlvbiBuKG4saSl7dmFyIGE9ZS5nZW9BemltdXRoYWxFcXVhbEFyZWFSYXcobi9yLGkpO3JldHVybiBhWzBdKj10LGF9cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKG4saSl7dmFyIGE9ZS5nZW9BemltdXRoYWxFcXVhbEFyZWFSYXcuaW52ZXJ0KG4vdCxpKTtyZXR1cm4gYVswXSo9cixhfSxufWZ1bmN0aW9uIFUodCxlKXtyZXR1cm5bdCpvKGUpL28oZS89MiksMiptKGUpXX1mdW5jdGlvbiBWKHQsZSxyKXt2YXIgaSxhLG8scz0xMDA7cj12b2lkIDA9PT1yPzA6K3IsZT0rZTtkb3soYT10KHIpKT09PShvPXQocit2KSkmJihvPWErdiksci09aT0tMSp2KihhLWUpLyhhLW8pfXdoaWxlKHMtLSA+MCYmbihpKT52KTtyZXR1cm4gczwwP05hTjpyfWZ1bmN0aW9uIEgodCxlLHIpe3JldHVybiB2b2lkIDA9PT1lJiYoZT00MCksdm9pZCAwPT09ciYmKHI9MWUtMTIpLGZ1bmN0aW9uKGksYSxvLHMpe3ZhciBsLGMsdTtvPXZvaWQgMD09PW8/MDorbyxzPXZvaWQgMD09PXM/MDorcztmb3IodmFyIGY9MDtmPGU7ZisrKXt2YXIgaD10KG8scykscD1oWzBdLWksZD1oWzFdLWE7aWYobihwKTxyJiZuKGQpPHIpYnJlYWs7dmFyIG09cCpwK2QqZDtpZihtPmwpby09Yy89MixzLT11Lz0yO2Vsc2V7bD1tO3ZhciBnPShvPjA/LTE6MSkqcix2PShzPjA/LTE6MSkqcix5PXQobytnLHMpLHg9dChvLHMrdiksYj0oeVswXS1oWzBdKS9nLF89KHlbMV0taFsxXSkvZyx3PSh4WzBdLWhbMF0pL3YsVD0oeFsxXS1oWzFdKS92LGs9VCpiLV8qdyxBPShuKGspPC41Py41OjEpL2s7aWYobys9Yz0oZCp3LXAqVCkqQSxzKz11PShwKl8tZCpiKSpBLG4oYyk8ciYmbih1KTxyKWJyZWFrfX1yZXR1cm5bbyxzXX19ZnVuY3Rpb24gcSgpe3ZhciB0PWooMS42OCwyKTtmdW5jdGlvbiBlKGUscil7aWYoZStyPC0xLjQpe3ZhciBuPShlLXIrMS42KSooZStyKzEuNCkvODtlKz1uLHItPS44Km4qbShyK3kvMil9dmFyIGk9dChlLHIpLGE9KDEtbyhlKnIpKS8xMjtyZXR1cm4gaVsxXTwwJiYoaVswXSo9MSthKSxpWzFdPjAmJihpWzFdKj0xK2EvMS41KmlbMF0qaVswXSksaX1yZXR1cm4gZS5pbnZlcnQ9SChlKSxlfWZ1bmN0aW9uIEcodCxlKXt2YXIgcixpPXQqbShlKSxhPTMwO2Rve2UtPXI9KGUrbShlKS1pKS8oMStvKGUpKX13aGlsZShuKHIpPnYmJi0tYT4wKTtyZXR1cm4gZS8yfWZ1bmN0aW9uIFkodCxlLHIpe2Z1bmN0aW9uIG4obixpKXtyZXR1cm5bdCpuKm8oaT1HKHIsaSkpLGUqbShpKV19cmV0dXJuIG4uaW52ZXJ0PWZ1bmN0aW9uKG4saSl7cmV0dXJuIGk9UyhpL2UpLFtuLyh0Km8oaSkpLFMoKDIqaSttKDIqaSkpL3IpXX0sbn1CLmludmVydD1mdW5jdGlvbih0LGUpe2lmKChhPW4oZSkpPEYpcmV0dXJuW3QsMippKHMoZSkpLXhdO3ZhciByLGEsbD1iLHU9MjU7ZG97dmFyIGY9byhsLzIpLGg9ZyhsLzIpO2wtPXI9KFIqKGwtYiktYyhoKS1hKS8oUi1mKmYvKDIqaCkpfXdoaWxlKG4ocik+MWUtMTImJi0tdT4wKTtyZXR1cm5bdC8obyhsKSooUi0xL20obCkpKSxkKGUpKmxdfSxVLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPTIqUyhlLzIpO3JldHVyblt0Km8oci8yKS9vKHIpLHJdfTt2YXIgVz1ZKHcveCx3LHkpO3ZhciBYPTIuMDAyNzYsWj0xLjExMDcyO2Z1bmN0aW9uIEoodCxlKXt2YXIgcj1HKHksZSk7cmV0dXJuW1gqdC8oMS9vKGUpK1ovbyhyKSksKGUrdyptKHIpKS9YXX1mdW5jdGlvbiBLKHQpe3ZhciByPTAsbj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKHQpLGk9bihyKTtyZXR1cm4gaS5wYXJhbGxlbD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKHI9dCpNKTpyKkF9LGl9ZnVuY3Rpb24gUSh0LGUpe3JldHVyblt0Km8oZSksZV19ZnVuY3Rpb24gJCh0KXtpZighdClyZXR1cm4gUTt2YXIgZT0xL2codCk7ZnVuY3Rpb24gcihyLG4pe3ZhciBpPWUrdC1uLGE9aT9yKm8obikvaTppO3JldHVybltpKm0oYSksZS1pKm8oYSldfXJldHVybiByLmludmVydD1mdW5jdGlvbihyLG4pe3ZhciBpPUwocipyKyhuPWUtbikqbikscz1lK3QtaTtyZXR1cm5baS9vKHMpKmEocixuKSxzXX0scn1mdW5jdGlvbiB0dCh0KXtmdW5jdGlvbiBlKGUscil7dmFyIG49eC1yLGk9bj9lKnQqbShuKS9uOm47cmV0dXJuW24qbShpKS90LHgtbipvKGkpXX1yZXR1cm4gZS5pbnZlcnQ9ZnVuY3Rpb24oZSxyKXt2YXIgbj1lKnQsaT14LXIsbz1MKG4qbitpKmkpLHM9YShuLGkpO3JldHVyblsobz9vL20obyk6MSkqcy90LHgtb119LGV9Si5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGE9WCplLHM9ZTwwPy1iOmIsbD0yNTtkb3tpPWEtdyptKHMpLHMtPXI9KG0oMipzKSsyKnMteSptKGkpKS8oMipvKDIqcykrMit5Km8oaSkqdypvKHMpKX13aGlsZShuKHIpPnYmJi0tbD4wKTtyZXR1cm4gaT1hLXcqbShzKSxbdCooMS9vKGkpK1ovbyhzKSkvWCxpXX0sUS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdC9vKGUpLGVdfTt2YXIgZXQ9WSgxLDQveSx5KTtmdW5jdGlvbiBydCh0LGUscixpLHMsbCl7dmFyIGMsdT1vKGwpO2lmKG4odCk+MXx8bihsKT4xKWM9RShyKnMrZSppKnUpO2Vsc2V7dmFyIGY9bSh0LzIpLGg9bShsLzIpO2M9MipTKEwoZipmK2UqaSpoKmgpKX1yZXR1cm4gbihjKT52P1tjLGEoaSptKGwpLGUqcy1yKmkqdSldOlswLDBdfWZ1bmN0aW9uIG50KHQsZSxyKXtyZXR1cm4gRSgodCp0K2UqZS1yKnIpLygyKnQqZSkpfWZ1bmN0aW9uIGl0KHQpe3JldHVybiB0LTIqeSpsKCh0K3kpLygyKnkpKX1mdW5jdGlvbiBhdCh0LGUscil7Zm9yKHZhciBuLGk9W1t0WzBdLHRbMV0sbSh0WzFdKSxvKHRbMV0pXSxbZVswXSxlWzFdLG0oZVsxXSksbyhlWzFdKV0sW3JbMF0sclsxXSxtKHJbMV0pLG8oclsxXSldXSxhPWlbMl0scz0wO3M8MzsrK3MsYT1uKW49aVtzXSxhLnY9cnQoblsxXS1hWzFdLGFbM10sYVsyXSxuWzNdLG5bMl0sblswXS1hWzBdKSxhLnBvaW50PVswLDBdO3ZhciBsPW50KGlbMF0udlswXSxpWzJdLnZbMF0saVsxXS52WzBdKSxjPW50KGlbMF0udlswXSxpWzFdLnZbMF0saVsyXS52WzBdKSx1PXktbDtpWzJdLnBvaW50WzFdPTAsaVswXS5wb2ludFswXT0tKGlbMV0ucG9pbnRbMF09aVswXS52WzBdLzIpO3ZhciBmPVtpWzJdLnBvaW50WzBdPWlbMF0ucG9pbnRbMF0raVsyXS52WzBdKm8obCksMiooaVswXS5wb2ludFsxXT1pWzFdLnBvaW50WzFdPWlbMl0udlswXSptKGwpKV07cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1tKGUpLGE9byhlKSxzPW5ldyBBcnJheSgzKTtmb3Iocj0wO3I8MzsrK3Ipe3ZhciBsPWlbcl07aWYoc1tyXT1ydChlLWxbMV0sbFszXSxsWzJdLGEsbix0LWxbMF0pLCFzW3JdWzBdKXJldHVybiBsLnBvaW50O3Nbcl1bMV09aXQoc1tyXVsxXS1sLnZbMV0pfXZhciBoPWYuc2xpY2UoKTtmb3Iocj0wO3I8MzsrK3Ipe3ZhciBwPTI9PXI/MDpyKzEsZD1udChpW3JdLnZbMF0sc1tyXVswXSxzW3BdWzBdKTtzW3JdWzFdPDAmJihkPS1kKSxyPzE9PXI/KGQ9Yy1kLGhbMF0tPXNbcl1bMF0qbyhkKSxoWzFdLT1zW3JdWzBdKm0oZCkpOihkPXUtZCxoWzBdKz1zW3JdWzBdKm8oZCksaFsxXSs9c1tyXVswXSptKGQpKTooaFswXSs9c1tyXVswXSpvKGQpLGhbMV0tPXNbcl1bMF0qbShkKSl9cmV0dXJuIGhbMF0vPTMsaFsxXS89MyxofX1mdW5jdGlvbiBvdCh0KXtyZXR1cm4gdFswXSo9TSx0WzFdKj1NLHR9ZnVuY3Rpb24gc3QodCxyLG4pe3ZhciBpPWUuZ2VvQ2VudHJvaWQoe3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOlt0LHIsbl19KSxhPVstaVswXSwtaVsxXV0sbz1lLmdlb1JvdGF0aW9uKGEpLHM9YXQob3Qobyh0KSksb3QobyhyKSksb3QobyhuKSkpO3MuaW52ZXJ0PUgocyk7dmFyIGw9ZS5nZW9Qcm9qZWN0aW9uKHMpLnJvdGF0ZShhKSxjPWwuY2VudGVyO3JldHVybiBkZWxldGUgbC5yb3RhdGUsbC5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/YyhvKHQpKTpvLmludmVydChjKCkpfSxsLmNsaXBBbmdsZSg5MCl9ZnVuY3Rpb24gbHQodCxlKXt2YXIgcj1MKDEtbShlKSk7cmV0dXJuWzIvVCp0KnIsVCooMS1yKV19ZnVuY3Rpb24gY3QodCl7dmFyIGU9Zyh0KTtmdW5jdGlvbiByKHQscil7cmV0dXJuW3QsKHQ/dC9tKHQpOjEpKihtKHIpKm8odCktZSpvKHIpKV19cmV0dXJuIHIuaW52ZXJ0PWU/ZnVuY3Rpb24odCxyKXt0JiYocio9bSh0KS90KTt2YXIgbj1vKHQpO3JldHVyblt0LDIqYShMKG4qbitlKmUtcipyKS1uLGUtcildfTpmdW5jdGlvbih0LGUpe3JldHVyblt0LFModD9lKmcodCkvdDplKV19LHJ9bHQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHI9ZS9ULTEpKnI7cmV0dXJuW3I+MD90KkwoeS9yKS8yOjAsUygxLXIpXX07dmFyIHV0PUwoMyk7ZnVuY3Rpb24gZnQodCxlKXtyZXR1cm5bdXQqdCooMipvKDIqZS8zKS0xKS9ULHV0KlQqbShlLzMpXX1mdW5jdGlvbiBodCh0KXt2YXIgZT1vKHQpO2Z1bmN0aW9uIHIodCxyKXtyZXR1cm5bdCplLG0ocikvZV19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHQscil7cmV0dXJuW3QvZSxTKHIqZSldfSxyfWZ1bmN0aW9uIHB0KHQpe3ZhciBlPW8odCk7ZnVuY3Rpb24gcih0LHIpe3JldHVyblt0KmUsKDErZSkqZyhyLzIpXX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24odCxyKXtyZXR1cm5bdC9lLDIqaShyLygxK2UpKV19LHJ9ZnVuY3Rpb24gZHQodCxlKXt2YXIgcj1MKDgvKDMqeSkpO3JldHVybltyKnQqKDEtbihlKS95KSxyKmVdfWZ1bmN0aW9uIG10KHQsZSl7dmFyIHI9TCg0LTMqbShuKGUpKSk7cmV0dXJuWzIvTCg2KnkpKnQqcixkKGUpKkwoMip5LzMpKigyLXIpXX1mdW5jdGlvbiBndCh0LGUpe3ZhciByPUwoeSooNCt5KSk7cmV0dXJuWzIvcip0KigxK0woMS00KmUqZS8oeSp5KSkpLDQvciplXX1mdW5jdGlvbiB2dCh0LGUpe3ZhciByPSgyK3gpKm0oZSk7ZS89Mjtmb3IodmFyIGk9MCxhPTEvMDtpPDEwJiZuKGEpPnY7aSsrKXt2YXIgcz1vKGUpO2UtPWE9KGUrbShlKSoocysyKS1yKS8oMipzKigxK3MpKX1yZXR1cm5bMi9MKHkqKDQreSkpKnQqKDErbyhlKSksMipMKHkvKDQreSkpKm0oZSldfWZ1bmN0aW9uIHl0KHQsZSl7cmV0dXJuW3QqKDErbyhlKSkvTCgyK3kpLDIqZS9MKDIreSldfWZ1bmN0aW9uIHh0KHQsZSl7Zm9yKHZhciByPSgxK3gpKm0oZSksaT0wLGE9MS8wO2k8MTAmJm4oYSk+djtpKyspZS09YT0oZSttKGUpLXIpLygxK28oZSkpO3JldHVybiByPUwoMit5KSxbdCooMStvKGUpKS9yLDIqZS9yXX1mdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0zKlMoZS8odXQqVCkpO3JldHVybltUKnQvKHV0KigyKm8oMipyLzMpLTEpKSxyXX0sZHQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9TCg4LygzKnkpKSxpPWUvcjtyZXR1cm5bdC8ociooMS1uKGkpL3kpKSxpXX0sbXQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9Mi1uKGUpL0woMip5LzMpO3JldHVyblt0KkwoNip5KS8oMipyKSxkKGUpKlMoKDQtcipyKS8zKV19LGd0LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPUwoeSooNCt5KSkvMjtyZXR1cm5bdCpyLygxK0woMS1lKmUqKDQreSkvKDQqeSkpKSxlKnIvMl19LHZ0LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWUqTCgoNCt5KS95KS8yLG49UyhyKSxpPW8obik7cmV0dXJuW3QvKDIvTCh5Kig0K3kpKSooMStpKSksUygobityKihpKzIpKS8oMit4KSldfSx5dC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1MKDIreSksbj1lKnIvMjtyZXR1cm5bcip0LygxK28obikpLG5dfSx4dC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0xK3gsbj1MKHIvMik7cmV0dXJuWzIqdCpuLygxK28oZSo9bikpLFMoKGUrbShlKSkvcildfTt2YXIgYnQ9MysyKnc7ZnVuY3Rpb24gX3QodCxlKXt2YXIgcj1tKHQvPTIpLG49byh0KSxhPUwobyhlKSkscz1vKGUvPTIpLGw9bShlKS8ocyt3Km4qYSksdT1MKDIvKDErbCpsKSksZj1MKCh3KnMrKG4rcikqYSkvKHcqcysobi1yKSphKSk7cmV0dXJuW2J0Kih1KihmLTEvZiktMipjKGYpKSxidCoodSpsKihmKzEvZiktMippKGwpKV19X3QuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7aWYoIShyPUQuaW52ZXJ0KHQvMS4yLDEuMDY1KmUpKSlyZXR1cm4gbnVsbDt2YXIgcixhPXJbMF0scz1yWzFdLGw9MjA7dC89YnQsZS89YnQ7ZG97dmFyIGg9YS8yLHA9cy8yLGQ9bShoKSxnPW8oaCkseT1tKHApLGI9byhwKSxUPW8ocyksaz1MKFQpLEE9eS8oYit3KmcqayksTT1BKkEsUz1MKDIvKDErTSkpLEU9KHcqYisoZytkKSprKS8odypiKyhnLWQpKmspLEM9TChFKSxQPUMtMS9DLEk9QysxL0MsTz1TKlAtMipjKEMpLXQsej1TKkEqSS0yKmkoQSktZSxSPXkmJl8qaypkKk0veSxGPSh3KmcqYitrKS8oMiooYit3KmcqaykqKGIrdypnKmspKmspLEI9LS41KkEqUypTKlMsTj1CKlIsaj1CKkYsVT0oVT0yKmIrdyprKihnLWQpKSpVKkMsVj0odypnKmIqaytUKS9VLEg9LXcqZCp5LyhrKlUpLHE9UCpOLTIqVi9DK1MqKFYrVi9FKSxHPVAqai0yKkgvQytTKihIK0gvRSksWT1BKkkqTi0yKlIvKDErTSkrUypJKlIrUypBKihWLVYvRSksVz1BKkkqai0yKkYvKDErTSkrUypJKkYrUypBKihILUgvRSksWD1HKlktVypxO2lmKCFYKWJyZWFrO3ZhciBaPSh6KkctTypXKS9YLEo9KE8qWS16KnEpL1g7YS09WixzPXUoLXgsZih4LHMtSikpfXdoaWxlKChuKFopPnZ8fG4oSik+dikmJi0tbD4wKTtyZXR1cm4gbihuKHMpLXgpPHY/WzAsc106bCYmW2Esc119O3ZhciB3dD1vKDM1Kk0pO2Z1bmN0aW9uIFR0KHQsZSl7dmFyIHI9ZyhlLzIpO3JldHVyblt0Knd0KkwoMS1yKnIpLCgxK3d0KSpyXX1mdW5jdGlvbiBrdCh0LGUpe3ZhciByPWUvMixuPW8ocik7cmV0dXJuWzIqdC9UKm8oZSkqbipuLFQqZyhyKV19ZnVuY3Rpb24gQXQodCl7dmFyIGU9MS10LHI9aSh5LDApWzBdLWkoLXksMClbMF0sbj1MKDIqKGkoMCx4KVsxXS1pKDAsLXgpWzFdKS9yKTtmdW5jdGlvbiBpKHIsbil7dmFyIGk9byhuKSxhPW0obik7cmV0dXJuW2kvKGUrdCppKSpyLGUqbit0KmFdfWZ1bmN0aW9uIGEodCxlKXt2YXIgcj1pKHQsZSk7cmV0dXJuW3JbMF0qbixyWzFdL25dfWZ1bmN0aW9uIHModCl7cmV0dXJuIGEoMCx0KVsxXX1yZXR1cm4gYS5pbnZlcnQ9ZnVuY3Rpb24ocixpKXt2YXIgYT1WKHMsaSk7cmV0dXJuW3IvbioodCtlL28oYSkpLGFdfSxhfWZ1bmN0aW9uIE10KHQpe3JldHVyblt0WzBdLzIsUyhnKHRbMV0vMipNKSkqQV19ZnVuY3Rpb24gU3QodCl7cmV0dXJuWzIqdFswXSwyKmkobSh0WzFdKk0pKSpBXX1mdW5jdGlvbiBFdCh0LHIpe3ZhciBpPTIqeS9yLHM9dCp0O2Z1bmN0aW9uIGwocixsKXt2YXIgYz1lLmdlb0F6aW11dGhhbEVxdWlkaXN0YW50UmF3KHIsbCksdT1jWzBdLGY9Y1sxXSxoPXUqdStmKmY7aWYoaD5zKXt2YXIgZD1MKGgpLGc9YShmLHUpLGI9aSpwKGcvaSksXz1nLWIsdz10Km8oXyksVD0odCptKF8pLV8qbSh3KSkvKHgtdyksaz1MdChfLFQpLEE9KHktdCkvQ3Qoayx3LHkpO3U9ZDt2YXIgTSxTPTUwO2Rve3UtPU09KHQrQ3Qoayx3LHUpKkEtZCkvKGsodSkqQSl9d2hpbGUobihNKT52JiYtLVM+MCk7Zj1fKm0odSksdTx4JiYoZi09VCoodS14KSk7dmFyIEU9bShiKSxDPW8oYik7Y1swXT11KkMtZipFLGNbMV09dSpFK2YqQ31yZXR1cm4gY31yZXR1cm4gbC5pbnZlcnQ9ZnVuY3Rpb24ocixsKXt2YXIgYz1yKnIrbCpsO2lmKGM+cyl7dmFyIHU9TChjKSxmPWEobCxyKSxoPWkqcChmL2kpLGQ9Zi1oO3I9dSpvKGQpLGw9dSptKGQpO2Zvcih2YXIgZz1yLXgsdj1tKHIpLGI9bC92LF89cjx4PzEvMDowLHc9MTA7Oyl7dmFyIFQ9dCptKGIpLGs9dCpvKGIpLEE9bShrKSxNPXgtayxTPShULWIqQSkvTSxFPUx0KGIsUyk7aWYobihfKTwxZS0xMnx8IS0tdylicmVhaztiLT1fPShiKnYtUypnLWwpLyh2LTIqZyooTSooaytiKlQqbyhrKS1BKS1UKihULWIqQSkpLyhNKk0pKX1yPSh1PXQrQ3QoRSxrLHIpKih5LXQpL0N0KEUsayx5KSkqbyhmPWgrYiksbD11Km0oZil9cmV0dXJuIGUuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXcuaW52ZXJ0KHIsbCl9LGx9ZnVuY3Rpb24gTHQodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49dCpvKHIpO3JldHVybiByPHgmJihuLT1lKSxMKDErbipuKX19ZnVuY3Rpb24gQ3QodCxlLHIpe2Zvcih2YXIgbj0oci1lKS81MCxpPXQoZSkrdChyKSxhPTEsbz1lO2E8NTA7KythKWkrPTIqdChvKz1uKTtyZXR1cm4uNSppKm59ZnVuY3Rpb24gUHQodCxlLHIsaSxhLHMsbCxjKXtmdW5jdGlvbiB1KG4sdSl7aWYoIXUpcmV0dXJuW3Qqbi95LDBdO3ZhciBmPXUqdSxoPXQrZiooZStmKihyK2YqaSkpLHA9dSooYS0xK2YqKHMtYytmKmwpKSxkPShoKmgrcCpwKS8oMipwKSxnPW4qUyhoL2QpL3k7cmV0dXJuW2QqbShnKSx1KigxK2YqYykrZCooMS1vKGcpKV19cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg8OCYmKGM9MCksdS5pbnZlcnQ9ZnVuY3Rpb24odSxmKXt2YXIgaCxwLGQ9eSp1L3QsZz1mLHg9NTA7ZG97dmFyIGI9ZypnLF89dCtiKihlK2IqKHIrYippKSksdz1nKihhLTErYioocy1jK2IqbCkpLFQ9XypfK3cqdyxrPTIqdyxBPVQvayxNPUEqQSxFPVMoXy9BKS95LEM9ZCpFLFA9XypfLEk9KDIqZStiKig0KnIrNipiKmkpKSpnLE89YStiKigzKnMrNSpiKmwpLHo9KDIqKF8qSSt3KihPLTEpKSprLVQqKDIqKE8tMSkpKS8oayprKSxEPW8oQyksUj1tKEMpLEY9QSpELEI9QSpSLE49ZC95KigxL0woMS1QL00pKSooSSpBLV8qeikvTSxqPUItdSxVPWcqKDErYipjKStBLUYtZixWPXoqUitGKk4sSD1GKkUscT0xK3otKHoqRC1CKk4pLEc9QipFLFk9VipHLXEqSDtpZighWSlicmVhaztkLT1oPShVKlYtaipxKS9ZLGctPXA9KGoqRy1VKkgpL1l9d2hpbGUoKG4oaCk+dnx8bihwKT52KSYmLS14PjApO3JldHVybltkLGddfSx1fVR0LmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWUvKDErd3QpO3JldHVyblt0JiZ0Lyh3dCpMKDEtcipyKSksMippKHIpXX0sa3QuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9aShlL1QpLG49byhyKSxhPTIqcjtyZXR1cm5bdCpULzIvKG8oYSkqbipuKSxhXX07dmFyIEl0PVB0KDIuODI4NCwtMS42OTg4LC43NTQzMiwtLjE4MDcxLDEuNzYwMDMsLS4zODkxNCwuMDQyNTU1KTt2YXIgT3Q9UHQoMi41ODM4MTksLS44MzU4MjcsLjE3MDM1NCwtLjAzODA5NCwxLjU0MzMxMywtLjQxMTQzNSwuMDgyNzQyKTt2YXIgenQ9UHQoNS82KnksLS42MjYzNiwtLjAzNDQsMCwxLjM0OTMsLS4wNTUyNCwwLC4wNDUpO2Z1bmN0aW9uIER0KHQsZSl7dmFyIHI9dCp0LG49ZSplO3JldHVyblt0KigxLS4xNjIzODgqbikqKC44Ny05NTI0MjZlLTkqcipyKSxlKigxK24vMTIpXX1EdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcixpPXQsYT1lLG89NTA7ZG97dmFyIHM9YSphO2EtPXI9KGEqKDErcy8xMiktZSkvKDErcy80KX13aGlsZShuKHIpPnYmJi0tbz4wKTtvPTUwLHQvPTEtLjE2MjM4OCpzO2Rve3ZhciBsPShsPWkqaSkqbDtpLT1yPShpKiguODctOTUyNDI2ZS05KmwpLXQpLyguODctLjAwNDc2MjEzKmwpfXdoaWxlKG4ocik+diYmLS1vPjApO3JldHVybltpLGFdfTt2YXIgUnQ9UHQoMi42NTE2LC0uNzY1MzQsLjE5MTIzLC0uMDQ3MDk0LDEuMzYyODksLS4xMzk2NSwuMDMxNzYyKTtmdW5jdGlvbiBGdCh0KXt2YXIgZT10KHgsMClbMF0tdCgteCwwKVswXTtmdW5jdGlvbiByKHIsbil7dmFyIGk9cj4wPy0uNTouNSxhPXQocitpKnksbik7cmV0dXJuIGFbMF0tPWkqZSxhfXJldHVybiB0LmludmVydCYmKHIuaW52ZXJ0PWZ1bmN0aW9uKHIsbil7dmFyIGk9cj4wPy0uNTouNSxhPXQuaW52ZXJ0KHIraSplLG4pLG89YVswXS1pKnk7cmV0dXJuIG88LXk/bys9Mip5Om8+eSYmKG8tPTIqeSksYVswXT1vLGF9KSxyfWZ1bmN0aW9uIEJ0KHQsZSl7dmFyIHI9ZCh0KSxpPWQoZSkscz1vKGUpLGw9byh0KSpzLGM9bSh0KSpzLHU9bShpKmUpO3Q9bihhKGMsdSkpLGU9UyhsKSxuKHQteCk+diYmKHQlPXgpO3ZhciBmPWZ1bmN0aW9uKHQsZSl7aWYoZT09PXgpcmV0dXJuWzAsMF07dmFyIHIsaSxhPW0oZSkscz1hKmEsbD1zKnMsYz0xK2wsdT0xKzMqbCxmPTEtbCxoPVMoMS9MKGMpKSxwPWYrcypjKmgsZD0oMS1hKS9wLGc9TChkKSxiPWQqYyxfPUwoYiksdz1nKmY7aWYoMD09PXQpcmV0dXJuWzAsLSh3K3MqXyldO3ZhciBULGs9byhlKSxBPTEvayxNPTIqYSprLEU9KC1wKmstKC0zKnMraCp1KSpNKigxLWEpKS8ocCpwKSxDPS1BKk0sUD0tQSoocypjKkUrZCp1Kk0pLEk9LTIqQSooZiooLjUqRS9nKS0yKnMqZypNKSxPPTQqdC95O2lmKHQ+LjIyMip5fHxlPHkvNCYmdD4uMTc1Knkpe2lmKHI9KHcrcypMKGIqKDErbCktdyp3KSkvKDErbCksdD55LzQpcmV0dXJuW3Iscl07dmFyIHo9cixEPS41KnI7cj0uNSooRCt6KSxpPTUwO2Rve3ZhciBSPUwoYi1yKnIpLEY9ciooSStDKlIpK1AqUyhyL18pLU87aWYoIUYpYnJlYWs7RjwwP0Q9cjp6PXIscj0uNSooRCt6KX13aGlsZShuKHotRCk+diYmLS1pPjApfWVsc2V7cj12LGk9MjU7ZG97dmFyIEI9cipyLE49TChiLUIpLGo9SStDKk4sVT1yKmorUCpTKHIvXyktTyxWPWorKFAtQypCKS9OO3ItPVQ9Tj9VL1Y6MH13aGlsZShuKFQpPnYmJi0taT4wKX1yZXR1cm5bciwtdy1zKkwoYi1yKnIpXX0odD55LzQ/eC10OnQsZSk7cmV0dXJuIHQ+eS80JiYodT1mWzBdLGZbMF09LWZbMV0sZlsxXT0tdSksZlswXSo9cixmWzFdKj0taSxmfWZ1bmN0aW9uIE50KHQsZSl7dmFyIHIsYSxsLGMsdSxmO2lmKGU8dilyZXR1cm5bKGM9bSh0KSktKHI9ZSoodC1jKihhPW8odCkpKS80KSphLGErcipjLDEtZSpjKmMvMix0LXJdO2lmKGU+PTEtdilyZXR1cm4gcj0oMS1lKS80LGw9MS8oYT1QKHQpKSxbKGM9KChmPXMoMiooZj10KSkpLTEpLyhmKzEpKStyKigodT1hKkModCkpLXQpLyhhKmEpLGwtcipjKmwqKHUtdCksbCtyKmMqbCoodSt0KSwyKmkocyh0KSkteCtyKih1LXQpL2FdO3ZhciBoPVsxLDAsMCwwLDAsMCwwLDAsMF0scD1bTChlKSwwLDAsMCwwLDAsMCwwLDBdLGQ9MDtmb3IoYT1MKDEtZSksdT0xO24ocFtkXS9oW2RdKT52JiZkPDg7KXI9aFtkKytdLHBbZF09KHItYSkvMixoW2RdPShyK2EpLzIsYT1MKHIqYSksdSo9MjtsPXUqaFtkXSp0O2Rve2w9KFMoYz1wW2RdKm0oYT1sKS9oW2RdKStsKS8yfXdoaWxlKC0tZCk7cmV0dXJuW20obCksYz1vKGwpLGMvbyhsLWEpLGxdfWZ1bmN0aW9uIGp0KHQsZSl7aWYoIWUpcmV0dXJuIHQ7aWYoMT09PWUpcmV0dXJuIGMoZyh0LzIrYikpO2Zvcih2YXIgcj0xLGE9TCgxLWUpLG89TChlKSxzPTA7bihvKT52O3MrKyl7aWYodCV5KXt2YXIgbD1pKGEqZyh0KS9yKTtsPDAmJihsKz15KSx0Kz1sK35+KHQveSkqeX1lbHNlIHQrPXQ7bz0ocithKS8yLGE9TChyKmEpLG89KChyPW8pLWEpLzJ9cmV0dXJuIHQvKGgoMixzKSpyKX1mdW5jdGlvbiBVdCh0LGUpe3ZhciByPSh3LTEpLyh3KzEpLGw9TCgxLXIqciksdT1qdCh4LGwqbCksZj1jKGcoeS80K24oZSkvMikpLGg9cygtMSpmKS9MKHIpLHA9ZnVuY3Rpb24odCxlKXt2YXIgcj10KnQsbj1lKzEsaT0xLXItZSplO3JldHVyblsuNSooKHQ+PTA/eDoteCktYShpLDIqdCkpLC0uMjUqYyhpKmkrNCpyKSsuNSpjKG4qbityKV19KGgqbygtMSp0KSxoKm0oLTEqdCkpLHY9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPW4odCksbz1DKG4oZSkpO2lmKGEpe3ZhciBzPTEvbShhKSxsPTEvKGcoYSkqZyhhKSksYz0tKGwrcioobypvKnMqcyktMStyKSx1PSgtYytMKGMqYy00Kigoci0xKSpsKSkpLzI7cmV0dXJuW2p0KGkoMS9MKHUpKSxyKSpkKHQpLGp0KGkoTCgodS9sLTEpL3IpKSwxLXIpKmQoZSldfXJldHVyblswLGp0KGkobyksMS1yKSpkKGUpXX0ocFswXSxwWzFdLGwqbCk7cmV0dXJuWy12WzFdLChlPj0wPzE6LTEpKiguNSp1LXZbMF0pXX1mdW5jdGlvbiBWdCh0KXt2YXIgZT1tKHQpLHI9byh0KSxpPUh0KHQpO2Z1bmN0aW9uIHModCxhKXt2YXIgcz1pKHQsYSk7dD1zWzBdLGE9c1sxXTt2YXIgbD1tKGEpLGM9byhhKSx1PW8odCksZj1FKGUqbCtyKmMqdSksaD1tKGYpLHA9bihoKT52P2YvaDoxO3JldHVybltwKnIqbSh0KSwobih0KT54P3A6LXApKihlKmMtcipsKnUpXX1yZXR1cm4gaS5pbnZlcnQ9SHQoLXQpLHMuaW52ZXJ0PWZ1bmN0aW9uKHQscil7dmFyIG49TCh0KnQrcipyKSxzPS1tKG4pLGw9byhuKSxjPW4qbCx1PS1yKnMsZj1uKmUsaD1MKGMqYyt1KnUtZipmKSxwPWEoYypmK3UqaCx1KmYtYypoKSxkPShuPng/LTE6MSkqYSh0KnMsbipvKHApKmwrciptKHApKnMpO3JldHVybiBpLmludmVydChkLHApfSxzfWZ1bmN0aW9uIEh0KHQpe3ZhciBlPW0odCkscj1vKHQpO3JldHVybiBmdW5jdGlvbih0LG4pe3ZhciBpPW8obikscz1vKHQpKmksbD1tKHQpKmksYz1tKG4pO3JldHVyblthKGwscypyLWMqZSksUyhjKnIrcyplKV19fUJ0LmludmVydD1mdW5jdGlvbih0LGUpe24odCk+MSYmKHQ9MipkKHQpLXQpLG4oZSk+MSYmKGU9MipkKGUpLWUpO3ZhciByPWQodCksaT1kKGUpLHM9LXIqdCxsPS1pKmUsYz1sL3M8MSx1PWZ1bmN0aW9uKHQsZSl7dmFyIHI9MCxpPTEsYT0uNSxzPTUwO2Zvcig7Oyl7dmFyIGw9YSphLGM9TChhKSx1PVMoMS9MKDErbCkpLGY9MS1sK2EqKDErbCkqdSxoPSgxLWMpL2YscD1MKGgpLGQ9aCooMStsKSxtPXAqKDEtbCksZz1MKGQtdCp0KSx2PWUrbSthKmc7aWYobihpLXIpPDFlLTEyfHwwPT0tLXN8fDA9PT12KWJyZWFrO3Y+MD9yPWE6aT1hLGE9LjUqKHIraSl9aWYoIXMpcmV0dXJuIG51bGw7dmFyIHg9UyhjKSxiPW8oeCksXz0xL2Isdz0yKmMqYixUPSgtZipiLSgtMyphK3UqKDErMypsKSkqdyooMS1jKSkvKGYqZik7cmV0dXJuW3kvNCoodCooLTIqXyooLjUqVC9wKigxLWwpLTIqYSpwKncpKy1fKncqZykrLV8qKGEqKDErbCkqVCtoKigxKzMqbCkqdykqUyh0L0woZCkpKSx4XX0oYz9sOnMsYz9zOmwpLGY9dVswXSxoPXVbMV0scD1vKGgpO3JldHVybiBjJiYoZj0teC1mKSxbciooYShtKGYpKnAsLW0oaCkpK3kpLGkqUyhvKGYpKnApXX0sVXQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixvLGwsdSxmLGg9KHctMSkvKHcrMSkscD1MKDEtaCpoKSxkPWp0KHgscCpwKSxtPShuPS10LG89cCpwLChyPS41KmQtZSk/KGw9TnQocixvKSxuPyhmPSh1PU50KG4sMS1vKSlbMV0qdVsxXStvKmxbMF0qbFswXSp1WzBdKnVbMF0sW1tsWzBdKnVbMl0vZixsWzFdKmxbMl0qdVswXSp1WzFdL2ZdLFtsWzFdKnVbMV0vZiwtbFswXSpsWzJdKnVbMF0qdVsyXS9mXSxbbFsyXSp1WzFdKnVbMl0vZiwtbypsWzBdKmxbMV0qdVswXS9mXV0pOltbbFswXSwwXSxbbFsxXSwwXSxbbFsyXSwwXV0pOltbMCwodT1OdChuLDEtbykpWzBdL3VbMV1dLFsxL3VbMV0sMF0sW3VbMl0vdVsxXSwwXV0pLGc9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdKmVbMF0rZVsxXSplWzFdO3JldHVyblsodFswXSplWzBdK3RbMV0qZVsxXSkvciwodFsxXSplWzBdLXRbMF0qZVsxXSkvcl19KG1bMF0sbVsxXSk7cmV0dXJuW2EoZ1sxXSxnWzBdKS8tMSwyKmkocygtLjUqYyhoKmdbMF0qZ1swXStoKmdbMV0qZ1sxXSkpKS14XX07dmFyIHF0PVMoMS0xLzMpKkEsR3Q9aHQoMCk7ZnVuY3Rpb24gWXQodCl7dmFyIGU9cXQqTSxyPWx0KHksZSlbMF0tbHQoLXksZSlbMF0saT1HdCgwLGUpWzFdLGE9bHQoMCxlKVsxXSxvPVQtYSxzPWsvdCxjPTQvayxoPWkrbypvKjQvaztmdW5jdGlvbiBwKHAsZCl7dmFyIG0sZz1uKGQpO2lmKGc+ZSl7dmFyIHY9Zih0LTEsdSgwLGwoKHAreSkvcykpKTsobT1sdChwKz15Kih0LTEpL3QtdipzLGcpKVswXT1tWzBdKmsvci1rKih0LTEpLygyKnQpK3Yqay90LG1bMV09aSs0KihtWzFdLWEpKm8vayxkPDAmJihtWzFdPS1tWzFdKX1lbHNlIG09R3QocCxkKTtyZXR1cm4gbVswXSo9YyxtWzFdLz1oLG19cmV0dXJuIHAuaW52ZXJ0PWZ1bmN0aW9uKGUscCl7ZS89Yzt2YXIgZD1uKHAqPWgpO2lmKGQ+aSl7dmFyIG09Zih0LTEsdSgwLGwoKGUreSkvcykpKTtlPShlK3kqKHQtMSkvdC1tKnMpKnIvazt2YXIgZz1sdC5pbnZlcnQoZSwuMjUqKGQtaSkqay9vK2EpO3JldHVybiBnWzBdLT15Kih0LTEpL3QtbSpzLHA8MCYmKGdbMV09LWdbMV0pLGd9cmV0dXJuIEd0LmludmVydChlLHApfSxwfWZ1bmN0aW9uIFd0KHQsZSl7cmV0dXJuW3QsMSZlPzkwLXY6cXRdfWZ1bmN0aW9uIFh0KHQsZSl7cmV0dXJuW3QsMSZlPy05MCt2Oi1xdF19ZnVuY3Rpb24gWnQodCl7cmV0dXJuW3RbMF0qKDEtdiksdFsxXV19ZnVuY3Rpb24gSnQodCl7dmFyIGUscj0xK3QsaT1TKG0oMS9yKSkscz0yKkwoeS8oZT15KzQqaSpyKSksbD0uNSpzKihyK0wodCooMit0KSkpLGM9dCp0LHU9cipyO2Z1bmN0aW9uIGYoZixoKXt2YXIgcCxkLGc9MS1tKGgpO2lmKGcmJmc8Mil7dmFyIHYsYj14LWgsXz0yNTtkb3t2YXIgdz1tKGIpLFQ9byhiKSxrPWkrYSh3LHItVCksQT0xK3UtMipyKlQ7Yi09dj0oYi1jKmktcip3K0Eqay0uNSpnKmUpLygyKnIqdyprKX13aGlsZShuKHYpPjFlLTEyJiYtLV8+MCk7cD1zKkwoQSksZD1mKmsveX1lbHNlIHA9cyoodCtnKSxkPWYqaS95O3JldHVybltwKm0oZCksbC1wKm8oZCldfXJldHVybiBmLmludmVydD1mdW5jdGlvbih0LG4pe3ZhciBvPXQqdCsobi09bCkqbixmPSgxK3Utby8ocypzKSkvKDIqciksaD1FKGYpLHA9bShoKSxkPWkrYShwLHItZik7cmV0dXJuW1ModC9MKG8pKSp5L2QsUygxLTIqKGgtYyppLXIqcCsoMSt1LTIqcipmKSpkKS9lKV19LGZ9ZnVuY3Rpb24gS3QodCxlKXtyZXR1cm4gZT4tLjcxMDk4ODk1OTYyMDc1Njc/KCh0PVcodCxlKSlbMV0rPS4wNTI4MDM1Mjc0NTQyLHQpOlEodCxlKX1mdW5jdGlvbiBRdCh0LGUpe3JldHVybiBuKGUpPi43MTA5ODg5NTk2MjA3NTY3PygodD1XKHQsZSkpWzFdLT1lPjA/LjA1MjgwMzUyNzQ1NDI6LS4wNTI4MDM1Mjc0NTQyLHQpOlEodCxlKX1mdW5jdGlvbiAkdCh0LGUscixuKXt2YXIgaT1MKDQqeS8oMipyKygxK3QtZS8yKSptKDIqcikrKHQrZSkvMiptKDQqcikrZS8yKm0oNipyKSkpLGE9TChuKm0ocikqTCgoMSt0Km8oMipyKStlKm8oNCpyKSkvKDErdCtlKSkpLHM9cipjKDEpO2Z1bmN0aW9uIGwocil7cmV0dXJuIEwoMSt0Km8oMipyKStlKm8oNCpyKSl9ZnVuY3Rpb24gYyhuKXt2YXIgaT1uKnI7cmV0dXJuKDIqaSsoMSt0LWUvMikqbSgyKmkpKyh0K2UpLzIqbSg0KmkpK2UvMiptKDYqaSkpL3J9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gbCh0KSptKHQpfXZhciBmPWZ1bmN0aW9uKHQsZSl7dmFyIG49cipWKGMscyptKGUpL3IsZS95KTtpc05hTihuKSYmKG49cipkKGUpKTt2YXIgdT1pKmwobik7cmV0dXJuW3UqYSp0L3kqbyhuKSx1L2EqbShuKV19O3JldHVybiBmLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciBuPVYodSxlKmEvaSk7cmV0dXJuW3QqeS8obyhuKSppKmEqbChuKSksUyhyKmMobi9yKS9zKV19LDA9PT1yJiYoaT1MKG4veSksKGY9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCppLG0oZSkvaV19KS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdC9pLFMoZSppKV19KSxmfWZ1bmN0aW9uIHRlKHQsZSxyLG4saSl7dm9pZCAwPT09biYmKG49MWUtOCksdm9pZCAwPT09aSYmKGk9MjApO3ZhciBhPXQoZSksbz10KC41KihlK3IpKSxzPXQocik7cmV0dXJuIGZ1bmN0aW9uIHQoZSxyLG4saSxhLG8scyxsLGMsdSxmKXtpZihmLm5hbkVuY291bnRlcmVkKXJldHVybiBOYU47dmFyIGgscCxkLG0sZyx2LHkseCxiLF87aWYocD1lKHIrLjI1KihoPW4tcikpLGQ9ZShuLS4yNSpoKSxpc05hTihwKSlmLm5hbkVuY291bnRlcmVkPSEwO2Vsc2V7aWYoIWlzTmFOKGQpKXJldHVybiBfPSgodj0obT1oKihpKzQqcCthKS8xMikrKGc9aCooYSs0KmQrbykvMTIpKS1zKS8xNSx1PmM/KGYubWF4RGVwdGhDb3VudCsrLHYrXyk6TWF0aC5hYnMoXyk8bD92K186KHg9dChlLHIseT1yKy41KmgsaSxwLGEsbSwuNSpsLGMsdSsxLGYpLGlzTmFOKHgpPyhmLm5hbkVuY291bnRlcmVkPSEwLE5hTik6KGI9dChlLHksbixhLGQsbyxnLC41KmwsYyx1KzEsZiksaXNOYU4oYik/KGYubmFuRW5jb3VudGVyZWQ9ITAsTmFOKTp4K2IpKTtmLm5hbkVuY291bnRlcmVkPSEwfX0odCxlLHIsYSxvLHMsKGErNCpvK3MpKihyLWUpLzYsbixpLDEse21heERlcHRoQ291bnQ6MCxuYW5FbmNvdW50ZXJlZDohMX0pfWZ1bmN0aW9uIGVlKHQsZSxyKXtmdW5jdGlvbiBpKHIpe3JldHVybiB0KygxLXQpKmgoMS1oKHIsZSksMS9lKX1mdW5jdGlvbiBhKHQpe3JldHVybiB0ZShpLDAsdCwxZS00KX1mb3IodmFyIG89MS9hKDEpLHM9MWUzLGw9KDErMWUtOCkqbyxjPVtdLHU9MDt1PD1zO3UrKyljLnB1c2goYSh1L3MpKmwpO2Z1bmN0aW9uIGYodCl7dmFyIGU9MCxyPXMsbj01MDA7ZG97Y1tuXT50P3I9bjplPW4sbj1lK3I+PjF9d2hpbGUobj5lKTt2YXIgaT1jW24rMV0tY1tuXTtyZXR1cm4gaSYmKGk9KHQtY1tuKzFdKS9pKSwobisxK2kpL3N9dmFyIHA9MipmKDEpL3kqby9yLGc9ZnVuY3Rpb24odCxlKXt2YXIgcj1mKG4obShlKSkpLGE9aShyKSp0O3JldHVybiByLz1wLFthLGU+PTA/cjotcl19O3JldHVybiBnLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiBuKGUqPXApPDEmJihyPWQoZSkqUyhhKG4oZSkpKm8pKSxbdC9pKG4oZSkpLHJdfSxnfWZ1bmN0aW9uIHJlKHQsZSl7cmV0dXJuIG4odFswXS1lWzBdKTx2JiZuKHRbMV0tZVsxXSk8dn1mdW5jdGlvbiBuZSh0LGUpe2Zvcih2YXIgcixuLGksYT0tMSxvPXQubGVuZ3RoLHM9dFswXSxsPVtdOysrYTxvOyl7bj0oKHI9dFthXSlbMF0tc1swXSkvZSxpPShyWzFdLXNbMV0pL2U7Zm9yKHZhciBjPTA7YzxlOysrYylsLnB1c2goW3NbMF0rYypuLHNbMV0rYyppXSk7cz1yfXJldHVybiBsLnB1c2gociksbH1mdW5jdGlvbiBpZSh0KXt2YXIgZSxuLGksYSxvLHMsbCxjPVtdLHU9dFswXS5sZW5ndGg7Zm9yKGw9MDtsPHU7KytsKW49KGU9dFswXVtsXSlbMF1bMF0saT1lWzBdWzFdLGE9ZVsxXVsxXSxvPWVbMl1bMF0scz1lWzJdWzFdLGMucHVzaChuZShbW24rdixpK3ZdLFtuK3YsYS12XSxbby12LGEtdl0sW28tdixzK3ZdXSwzMCkpO2ZvcihsPXRbMV0ubGVuZ3RoLTE7bD49MDstLWwpbj0oZT10WzFdW2xdKVswXVswXSxpPWVbMF1bMV0sYT1lWzFdWzFdLG89ZVsyXVswXSxzPWVbMl1bMV0sYy5wdXNoKG5lKFtbby12LHMtdl0sW28tdixhK3ZdLFtuK3YsYSt2XSxbbit2LGktdl1dLDMwKSk7cmV0dXJue3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOltyLm1lcmdlKGMpXX19ZnVuY3Rpb24gYWUodCxyLG4pe3ZhciBpLGE7ZnVuY3Rpb24gbyhlLG4pe2Zvcih2YXIgaT1uPDA/LTE6MSxhPXJbKyhuPDApXSxvPTAscz1hLmxlbmd0aC0xO288cyYmZT5hW29dWzJdWzBdOysrbyk7dmFyIGw9dChlLWFbb11bMV1bMF0sbik7cmV0dXJuIGxbMF0rPXQoYVtvXVsxXVswXSxpKm4+aSphW29dWzBdWzFdP2Fbb11bMF1bMV06bilbMF0sbH1uP28uaW52ZXJ0PW4obyk6dC5pbnZlcnQmJihvLmludmVydD1mdW5jdGlvbihlLG4pe2Zvcih2YXIgaT1hWysobjwwKV0scz1yWysobjwwKV0sbD0wLGM9aS5sZW5ndGg7bDxjOysrbCl7dmFyIHU9aVtsXTtpZih1WzBdWzBdPD1lJiZlPHVbMV1bMF0mJnVbMF1bMV08PW4mJm48dVsxXVsxXSl7dmFyIGY9dC5pbnZlcnQoZS10KHNbbF1bMV1bMF0sMClbMF0sbik7cmV0dXJuIGZbMF0rPXNbbF1bMV1bMF0scmUobyhmWzBdLGZbMV0pLFtlLG5dKT9mOm51bGx9fX0pO3ZhciBzPWUuZ2VvUHJvamVjdGlvbihvKSxsPXMuc3RyZWFtO3JldHVybiBzLnN0cmVhbT1mdW5jdGlvbih0KXt2YXIgcj1zLnJvdGF0ZSgpLG49bCh0KSxhPShzLnJvdGF0ZShbMCwwXSksbCh0KSk7cmV0dXJuIHMucm90YXRlKHIpLG4uc3BoZXJlPWZ1bmN0aW9uKCl7ZS5nZW9TdHJlYW0oaSxhKX0sbn0scy5sb2Jlcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT1pZShlKSxyPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybltbdFswXVswXSpNLHRbMF1bMV0qTV0sW3RbMV1bMF0qTSx0WzFdWzFdKk1dLFt0WzJdWzBdKk0sdFsyXVsxXSpNXV19KSl9KSksYT1yLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUubWFwKChmdW5jdGlvbihlKXt2YXIgcixuPXQoZVswXVswXSxlWzBdWzFdKVswXSxpPXQoZVsyXVswXSxlWzJdWzFdKVswXSxhPXQoZVsxXVswXSxlWzBdWzFdKVsxXSxvPXQoZVsxXVswXSxlWzFdWzFdKVsxXTtyZXR1cm4gYT5vJiYocj1hLGE9byxvPXIpLFtbbixhXSxbaSxvXV19KSl9KSkscyk6ci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuW1t0WzBdWzBdKkEsdFswXVsxXSpBXSxbdFsxXVswXSpBLHRbMV1bMV0qQV0sW3RbMl1bMF0qQSx0WzJdWzFdKkFdXX0pKX0pKX0sbnVsbCE9ciYmcy5sb2JlcyhyKSxzfUt0LmludmVydD1mdW5jdGlvbih0LGUpe3JldHVybiBlPi0uNzEwOTg4OTU5NjIwNzU2Nz9XLmludmVydCh0LGUtLjA1MjgwMzUyNzQ1NDIpOlEuaW52ZXJ0KHQsZSl9LFF0LmludmVydD1mdW5jdGlvbih0LGUpe3JldHVybiBuKGUpPi43MTA5ODg5NTk2MjA3NTY3P1cuaW52ZXJ0KHQsZSsoZT4wPy4wNTI4MDM1Mjc0NTQyOi0uMDUyODAzNTI3NDU0MikpOlEuaW52ZXJ0KHQsZSl9O3ZhciBvZT1bW1tbLTE4MCwwXSxbLTEwMCw5MF0sWy00MCwwXV0sW1stNDAsMF0sWzMwLDkwXSxbMTgwLDBdXV0sW1tbLTE4MCwwXSxbLTE2MCwtOTBdLFstMTAwLDBdXSxbWy0xMDAsMF0sWy02MCwtOTBdLFstMjAsMF1dLFtbLTIwLDBdLFsyMCwtOTBdLFs4MCwwXV0sW1s4MCwwXSxbMTQwLC05MF0sWzE4MCwwXV1dXTt2YXIgc2U9W1tbWy0xODAsMF0sWy0xMDAsOTBdLFstNDAsMF1dLFtbLTQwLDBdLFszMCw5MF0sWzE4MCwwXV1dLFtbWy0xODAsMF0sWy0xNjAsLTkwXSxbLTEwMCwwXV0sW1stMTAwLDBdLFstNjAsLTkwXSxbLTIwLDBdXSxbWy0yMCwwXSxbMjAsLTkwXSxbODAsMF1dLFtbODAsMF0sWzE0MCwtOTBdLFsxODAsMF1dXV07dmFyIGxlPVtbW1stMTgwLDBdLFstMTAwLDkwXSxbLTQwLDBdXSxbWy00MCwwXSxbMzAsOTBdLFsxODAsMF1dXSxbW1stMTgwLDBdLFstMTYwLC05MF0sWy0xMDAsMF1dLFtbLTEwMCwwXSxbLTYwLC05MF0sWy0yMCwwXV0sW1stMjAsMF0sWzIwLC05MF0sWzgwLDBdXSxbWzgwLDBdLFsxNDAsLTkwXSxbMTgwLDBdXV1dO3ZhciBjZT1bW1tbLTE4MCwwXSxbLTkwLDkwXSxbMCwwXV0sW1swLDBdLFs5MCw5MF0sWzE4MCwwXV1dLFtbWy0xODAsMF0sWy05MCwtOTBdLFswLDBdXSxbWzAsMF0sWzkwLC05MF0sWzE4MCwwXV1dXTt2YXIgdWU9W1tbWy0xODAsMzVdLFstMzAsOTBdLFswLDM1XV0sW1swLDM1XSxbMzAsOTBdLFsxODAsMzVdXV0sW1tbLTE4MCwtMTBdLFstMTAyLC05MF0sWy02NSwtMTBdXSxbWy02NSwtMTBdLFs1LC05MF0sWzc3LC0xMF1dLFtbNzcsLTEwXSxbMTAzLC05MF0sWzE4MCwtMTBdXV1dO3ZhciBmZT1bW1tbLTE4MCwwXSxbLTExMCw5MF0sWy00MCwwXV0sW1stNDAsMF0sWzAsOTBdLFs0MCwwXV0sW1s0MCwwXSxbMTEwLDkwXSxbMTgwLDBdXV0sW1tbLTE4MCwwXSxbLTExMCwtOTBdLFstNDAsMF1dLFtbLTQwLDBdLFswLC05MF0sWzQwLDBdXSxbWzQwLDBdLFsxMTAsLTkwXSxbMTgwLDBdXV1dO2Z1bmN0aW9uIGhlKHQsZSl7cmV0dXJuWzMvayp0KkwoeSp5LzMtZSplKSxlXX1mdW5jdGlvbiBwZSh0KXtmdW5jdGlvbiBlKGUscil7aWYobihuKHIpLXgpPHYpcmV0dXJuWzAscjwwPy0yOjJdO3ZhciBpPW0ociksYT1oKCgxK2kpLygxLWkpLHQvMikscz0uNSooYSsxL2EpK28oZSo9dCk7cmV0dXJuWzIqbShlKS9zLChhLTEvYSkvc119cmV0dXJuIGUuaW52ZXJ0PWZ1bmN0aW9uKGUscil7dmFyIGk9bihyKTtpZihuKGktMik8dilyZXR1cm4gZT9udWxsOlswLGQocikqeF07aWYoaT4yKXJldHVybiBudWxsO3ZhciBvPShlLz0yKSplLHM9KHIvPTIpKnIsbD0yKnIvKDErbytzKTtyZXR1cm4gbD1oKCgxK2wpLygxLWwpLDEvdCksW2EoMiplLDEtby1zKS90LFMoKGwtMSkvKGwrMSkpXX0sZX1oZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bay8zKnQvTCh5KnkvMy1lKmUpLGVdfTt2YXIgZGU9eS93O2Z1bmN0aW9uIG1lKHQsZSl7cmV0dXJuW3QqKDErTChvKGUpKSkvMixlLyhvKGUvMikqbyh0LzYpKV19ZnVuY3Rpb24gZ2UodCxlKXt2YXIgcj10KnQsbj1lKmU7cmV0dXJuW3QqKC45NzU1MzQrbiooLS4wMTQzMDU5KnItLjExOTE2MSstLjA1NDcwMDkqbikpLGUqKDEuMDAzODQrciooLjA4MDI4OTQrLS4wMjg1NSpuKzE5OTAyNWUtOSpyKStuKiguMDk5ODkwOSstLjA0OTEwMzIqbikpXX1mdW5jdGlvbiB2ZSh0LGUpe3JldHVyblttKHQpL28oZSksZyhlKSpvKHQpXX1mdW5jdGlvbiB5ZSh0KXt2YXIgZT1vKHQpLHI9ZyhiK3QvMik7ZnVuY3Rpb24gaShpLGEpe3ZhciBvPWEtdCxzPW4obyk8dj9pKmU6bihzPWIrYS8yKTx2fHxuKG4ocykteCk8dj8wOmkqby9jKGcocykvcik7cmV0dXJuW3Msb119cmV0dXJuIGkuaW52ZXJ0PWZ1bmN0aW9uKGksYSl7dmFyIG8scz1hK3Q7cmV0dXJuW24oYSk8dj9pL2U6bihvPWIrcy8yKTx2fHxuKG4obykteCk8dj8wOmkqYyhnKG8pL3IpL2Esc119LGl9ZnVuY3Rpb24geGUodCxlKXtyZXR1cm5bdCwxLjI1KmMoZyhiKy40KmUpKV19ZnVuY3Rpb24gYmUodCl7dmFyIGU9dC5sZW5ndGgtMTtmdW5jdGlvbiByKHIsbil7Zm9yKHZhciBpLGE9byhuKSxzPTIvKDErYSpvKHIpKSxsPXMqYSptKHIpLGM9cyptKG4pLHU9ZSxmPXRbdV0saD1mWzBdLHA9ZlsxXTstLXU+PTA7KWg9KGY9dFt1XSlbMF0rbCooaT1oKS1jKnAscD1mWzFdK2wqcCtjKmk7cmV0dXJuW2g9bCooaT1oKS1jKnAscD1sKnArYyppXX1yZXR1cm4gci5pbnZlcnQ9ZnVuY3Rpb24ocixzKXt2YXIgbD0yMCxjPXIsdT1zO2Rve2Zvcih2YXIgZixoPWUscD10W2hdLGQ9cFswXSxnPXBbMV0sdj0wLHk9MDstLWg+PTA7KXY9ZCtjKihmPXYpLXUqeSx5PWcrYyp5K3UqZixkPShwPXRbaF0pWzBdK2MqKGY9ZCktdSpnLGc9cFsxXStjKmcrdSpmO3ZhciB4LGIsXz0odj1kK2MqKGY9diktdSp5KSp2Kyh5PWcrYyp5K3UqZikqeTtjLT14PSgoZD1jKihmPWQpLXUqZy1yKSp2KyhnPWMqZyt1KmYtcykqeSkvXyx1LT1iPShnKnYtZCp5KS9ffXdoaWxlKG4oeCkrbihiKT4xZS0xMiYmLS1sPjApO2lmKGwpe3ZhciB3PUwoYypjK3UqdSksVD0yKmkoLjUqdyksaz1tKFQpO3JldHVyblthKGMqayx3Km8oVCkpLHc/Uyh1Kmsvdyk6MF19fSxyfW1lLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPW4odCksaT1uKGUpLGE9dixzPXg7aTxkZT9zKj1pL2RlOmErPTYqRShkZS9pKTtmb3IodmFyIGw9MDtsPDI1O2wrKyl7dmFyIGM9bShzKSx1PUwobyhzKSksZj1tKHMvMiksaD1vKHMvMikscD1tKGEvNiksZD1vKGEvNiksZz0uNSphKigxK3UpLXIseT1zLyhoKmQpLWksYj11Py0uMjUqYSpjL3U6MCxfPS41KigxK3UpLHc9KDErLjUqcypmL2gpLyhoKmQpLFQ9cy9oKihwLzYpLyhkKmQpLGs9YipULXcqXyxBPShnKlQteSpfKS9rLE09KHkqYi1nKncpL2s7aWYocy09QSxhLT1NLG4oQSk8diYmbihNKTx2KWJyZWFrfXJldHVyblt0PDA/LWE6YSxlPDA/LXM6c119LGdlLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWQodCkqeSxpPWUvMixhPTUwO2Rve3ZhciBvPXIqcixzPWkqaSxsPXIqaSxjPXIqKC45NzU1MzQrcyooLS4wMTQzMDU5Km8tLjExOTE2MSstLjA1NDcwMDkqcykpLXQsdT1pKigxLjAwMzg0K28qKC4wODAyODk0Ky0uMDI4NTUqcysxOTkwMjVlLTkqbykrcyooLjA5OTg5MDkrLS4wNDkxMDMyKnMpKS1lLGY9Ljk3NTUzNC1zKiguMTE5MTYxKzMqbyouMDE0MzA1OSsuMDU0NzAwOSpzKSxoPS1sKiguMjM4MzIyKy4yMTg4MDM2KnMrLjAyODYxMTgqbykscD1sKiguMTYwNTc4OCs3OTYxZS03Km8rLS4wNTcxKnMpLG09MS4wMDM4NCtvKiguMDgwMjg5NCsxOTkwMjVlLTkqbykrcyooMyooLjA5OTg5MDktLjAyODU1Km8pLS4yNDU1MTYqcyksZz1oKnAtbSpmLHg9KHUqaC1jKm0pL2csYj0oYypwLXUqZikvZztyLT14LGktPWJ9d2hpbGUoKG4oeCk+dnx8bihiKT52KSYmLS1hPjApO3JldHVybiBhJiZbcixpXX0sdmUuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dCp0LG49ZSplKzEsaT1yK24sYT10P18qTCgoaS1MKGkqaS00KnIpKS9yKToxL0wobik7cmV0dXJuW1ModCphKSxkKGUpKkUoYSldfSx4ZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCwyLjUqaShzKC44KmUpKS0uNjI1KnldfTt2YXIgX2U9W1suOTk3MjUyMywwXSxbLjAwNTI1MTMsLS4wMDQxMTc1XSxbLjAwNzQ2MDYsLjAwNDgxMjVdLFstLjAxNTM3ODMsLS4xOTY4MjUzXSxbLjA2MzY4NzEsLS4xNDA4MDI3XSxbLjM2NjA5NzYsLS4yOTM3MzgyXV0sd2U9W1suOTg4NzksMF0sWzAsMF0sWy0uMDUwOTA5LDBdLFswLDBdLFsuMDc1NTI4LDBdXSxUZT1bWy45ODQyOTksMF0sWy4wMjExNjQyLC4wMDM3NjA4XSxbLS4xMDM2MDE4LC0uMDU3NTEwMl0sWy0uMDMyOTA5NSwtLjAzMjAxMTldLFsuMDQ5OTQ3MSwuMTIyMzMzNV0sWy4wMjYwNDYsLjA4OTk4MDVdLFs3Mzg4ZS03LC0uMTQzNTc5Ml0sWy4wMDc1ODQ4LC0uMTMzNDEwOF0sWy0uMDIxNjQ3MywuMDc3NjY0NV0sWy0uMDIyNTE2MSwuMDg1MzY3M11dLGtlPVtbLjkyNDUsMF0sWzAsMF0sWy4wMTk0MywwXV0sQWU9W1suNzIxMzE2LDBdLFswLDBdLFstLjAwODgxNjI1LC0uMDA2MTczMjVdXTtmdW5jdGlvbiBNZSh0LHIpe3ZhciBuPWUuZ2VvUHJvamVjdGlvbihiZSh0KSkucm90YXRlKHIpLmNsaXBBbmdsZSg5MCksaT1lLmdlb1JvdGF0aW9uKHIpLGE9bi5jZW50ZXI7cmV0dXJuIGRlbGV0ZSBuLnJvdGF0ZSxuLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9hKGkodCkpOmkuaW52ZXJ0KGEoKSl9LG59dmFyIFNlPUwoNiksRWU9TCg3KTtmdW5jdGlvbiBMZSh0LGUpe3ZhciByPVMoNyptKGUpLygzKlNlKSk7cmV0dXJuW1NlKnQqKDIqbygyKnIvMyktMSkvRWUsOSptKHIvMykvRWVdfWZ1bmN0aW9uIENlKHQsZSl7Zm9yKHZhciByLGk9KDErXykqbShlKSxhPWUscz0wO3M8MjUmJihhLT1yPShtKGEvMikrbShhKS1pKS8oLjUqbyhhLzIpK28oYSkpLCEobihyKTx2KSk7cysrKTtyZXR1cm5bdCooMSsyKm8oYSkvbyhhLzIpKS8oMyp3KSwyKkwoMykqbShhLzIpL0woMit3KV19ZnVuY3Rpb24gUGUodCxlKXtmb3IodmFyIHIsaT1MKDYvKDQreSkpLGE9KDEreS80KSptKGUpLHM9ZS8yLGw9MDtsPDI1JiYocy09cj0ocy8yK20ocyktYSkvKC41K28ocykpLCEobihyKTx2KSk7bCsrKTtyZXR1cm5baSooLjUrbyhzKSkqdC8xLjUsaSpzXX1mdW5jdGlvbiBJZSh0LGUpe3ZhciByPWUqZSxuPXIqcixpPXIqbjtyZXR1cm5bdCooLjg0NzE5LS4xMzA2MypyK2kqaSooLjA1NDk0KnItLjA0NTE1LS4wMjMyNipuKy4wMDMzMSppKSksZSooMS4wMTE4MytuKm4qKC4wMTkyNipyLS4wMjYyNS0uMDAzOTYqbikpXX1mdW5jdGlvbiBPZSh0LGUpe3JldHVyblt0KigxK28oZSkpLzIsMiooZS1nKGUvMikpXX1MZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj0zKlMoZSpFZS85KTtyZXR1cm5bdCpFZS8oU2UqKDIqbygyKnIvMyktMSkpLFMoMyptKHIpKlNlLzcpXX0sQ2UuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZSpMKDIrdykvKDIqTCgzKSksbj0yKlMocik7cmV0dXJuWzMqdyp0LygxKzIqbyhuKS9vKG4vMikpLFMoKHIrbShuKSkvKDErXykpXX0sUGUuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9TCg2Lyg0K3kpKSxpPWUvcjtyZXR1cm4gbihuKGkpLXgpPHYmJihpPWk8MD8teDp4KSxbMS41KnQvKHIqKC41K28oaSkpKSxTKChpLzIrbShpKSkvKDEreS80KSldfSxJZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGEsbyxzPWUsbD0yNTtkb3tzLT1yPShzKigxLjAxMTgzKyhhPShpPXMqcykqaSkqYSooLjAxOTI2KmktLjAyNjI1LS4wMDM5NiphKSktZSkvKDEuMDExODMrYSphKiguMjExODYqaS0uMjM2MjUrLS4wNTE0OCphKSl9d2hpbGUobihyKT4xZS0xMiYmLS1sPjApO3JldHVyblt0LyguODQ3MTktLjEzMDYzKihpPXMqcykrKG89aSooYT1pKmkpKSpvKiguMDU0OTQqaS0uMDQ1MTUtLjAyMzI2KmErLjAwMzMxKm8pKSxzXX0sT2UuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUvMixpPTAsYT0xLzA7aTwxMCYmbihhKT52OysraSl7dmFyIHM9byhlLzIpO2UtPWE9KGUtZyhlLzIpLXIpLygxLS41LyhzKnMpKX1yZXR1cm5bMip0LygxK28oZSkpLGVdfTt2YXIgemU9W1tbWy0xODAsMF0sWy05MCw5MF0sWzAsMF1dLFtbMCwwXSxbOTAsOTBdLFsxODAsMF1dXSxbW1stMTgwLDBdLFstOTAsLTkwXSxbMCwwXV0sW1swLDBdLFs5MCwtOTBdLFsxODAsMF1dXV07ZnVuY3Rpb24gRGUodCxlKXt2YXIgcj1tKGUpLGk9byhlKSxhPWQodCk7aWYoMD09PXR8fG4oZSk9PT14KXJldHVyblswLGVdO2lmKDA9PT1lKXJldHVyblt0LDBdO2lmKG4odCk9PT14KXJldHVyblt0KmkseCpyXTt2YXIgcz15LygyKnQpLTIqdC95LGw9MiplL3ksYz0oMS1sKmwpLyhyLWwpLHU9cypzLGY9YypjLGg9MSt1L2YscD0xK2YvdSxnPShzKnIvYy1zLzIpL2gsdj0oZipyL3UrYy8yKS9wLGI9dip2LShmKnIqci91K2Mqci0xKS9wO3JldHVyblt4KihnK0woZypnK2kqaS9oKSphKSx4Kih2K0woYjwwPzA6YikqZCgtZSpzKSphKV19RGUuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQvPXgpKnQsbj1yKyhlLz14KSplLGk9eSp5O3JldHVyblt0PyhuLTErTCgoMS1uKSooMS1uKSs0KnIpKS8oMip0KSp4OjAsVigoZnVuY3Rpb24odCl7cmV0dXJuIG4qKHkqbSh0KS0yKnQpKnkrNCp0KnQqKGUtbSh0KSkrMip5KnQtaSplfSksMCldfTtmdW5jdGlvbiBSZSh0LGUpe3ZhciByPWUqZTtyZXR1cm5bdCxlKigxLjAxNDgrcipyKiguMjMxODUrciooLjAyNDA2KnItLjE0NDk5KSkpXX1mdW5jdGlvbiBGZSh0LGUpe2lmKG4oZSk8dilyZXR1cm5bdCwwXTt2YXIgcj1nKGUpLGk9dCptKGUpO3JldHVyblttKGkpL3IsZSsoMS1vKGkpKS9yXX1mdW5jdGlvbiBCZSh0LGUpe3ZhciByPWplKHRbMV0sdFswXSksbj1qZShlWzFdLGVbMF0pLGk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gYSh0WzBdKmVbMV0tdFsxXSplWzBdLHRbMF0qZVswXSt0WzFdKmVbMV0pfShyLG4pLHM9VWUocikvVWUobik7cmV0dXJuIE5lKFsxLDAsdFswXVswXSwwLDEsdFswXVsxXV0sTmUoW3MsMCwwLDAscywwXSxOZShbbyhpKSxtKGkpLDAsLW0oaSksbyhpKSwwXSxbMSwwLC1lWzBdWzBdLDAsMSwtZVswXVsxXV0pKSl9ZnVuY3Rpb24gTmUodCxlKXtyZXR1cm5bdFswXSplWzBdK3RbMV0qZVszXSx0WzBdKmVbMV0rdFsxXSplWzRdLHRbMF0qZVsyXSt0WzFdKmVbNV0rdFsyXSx0WzNdKmVbMF0rdFs0XSplWzNdLHRbM10qZVsxXSt0WzRdKmVbNF0sdFszXSplWzJdK3RbNF0qZVs1XSt0WzVdXX1mdW5jdGlvbiBqZSh0LGUpe3JldHVyblt0WzBdLWVbMF0sdFsxXS1lWzFdXX1mdW5jdGlvbiBVZSh0KXtyZXR1cm4gTCh0WzBdKnRbMF0rdFsxXSp0WzFdKX1mdW5jdGlvbiBWZSh0LHIsaSl7ZnVuY3Rpb24gYSh0LGUpe3ZhciBuLGk9cih0LGUpLGE9aS5wcm9qZWN0KFt0KkEsZSpBXSk7cmV0dXJuKG49aS50cmFuc2Zvcm0pP1tuWzBdKmFbMF0rblsxXSphWzFdK25bMl0sLShuWzNdKmFbMF0rbls0XSphWzFdK25bNV0pXTooYVsxXT0tYVsxXSxhKX0hZnVuY3Rpb24gdChlLHIpe2lmKGUuZWRnZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9W10sbj10W2UtMV0saT0wO2k8ZTsrK2kpci5wdXNoKFtuLG49dFtpXV0pO3JldHVybiByfShlLmZhY2UpLHIuZmFjZSl7dmFyIG49ZS5zaGFyZWQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixpPXQubGVuZ3RoLGE9bnVsbCxvPTA7bzxpOysrbyl7cj10W29dO2Zvcih2YXIgcz1lLmxlbmd0aDstLXM+PTA7KWlmKG49ZVtzXSxyWzBdPT09blswXSYmclsxXT09PW5bMV0pe2lmKGEpcmV0dXJuW2Escl07YT1yfX19KGUuZmFjZSxyLmZhY2UpLGk9QmUobi5tYXAoci5wcm9qZWN0KSxuLm1hcChlLnByb2plY3QpKTtlLnRyYW5zZm9ybT1yLnRyYW5zZm9ybT9OZShyLnRyYW5zZm9ybSxpKTppO2Zvcih2YXIgYT1yLmVkZ2VzLG89MCxzPWEubGVuZ3RoO288czsrK28pSGUoblswXSxhW29dWzFdKSYmSGUoblsxXSxhW29dWzBdKSYmKGFbb109ZSksSGUoblswXSxhW29dWzBdKSYmSGUoblsxXSxhW29dWzFdKSYmKGFbb109ZSk7Zm9yKGE9ZS5lZGdlcyxvPTAscz1hLmxlbmd0aDtvPHM7KytvKUhlKG5bMF0sYVtvXVswXSkmJkhlKG5bMV0sYVtvXVsxXSkmJihhW29dPXIpLEhlKG5bMF0sYVtvXVsxXSkmJkhlKG5bMV0sYVtvXVswXSkmJihhW29dPXIpfWVsc2UgZS50cmFuc2Zvcm09ci50cmFuc2Zvcm07ZS5jaGlsZHJlbiYmZS5jaGlsZHJlbi5mb3JFYWNoKChmdW5jdGlvbihyKXt0KHIsZSl9KSk7cmV0dXJuIGV9KHQse3RyYW5zZm9ybTpudWxsfSkscWUodCkmJihhLmludmVydD1mdW5jdGlvbihlLG4pe3ZhciBpPWZ1bmN0aW9uIHQoZSxuKXt2YXIgaT1lLnByb2plY3QuaW52ZXJ0LGE9ZS50cmFuc2Zvcm0sbz1uO2EmJihhPWZ1bmN0aW9uKHQpe3ZhciBlPTEvKHRbMF0qdFs0XS10WzFdKnRbM10pO3JldHVybltlKnRbNF0sLWUqdFsxXSxlKih0WzFdKnRbNV0tdFsyXSp0WzRdKSwtZSp0WzNdLGUqdFswXSxlKih0WzJdKnRbM10tdFswXSp0WzVdKV19KGEpLG89W2FbMF0qb1swXSthWzFdKm9bMV0rYVsyXSxhWzNdKm9bMF0rYVs0XSpvWzFdK2FbNV1dKTtpZihpJiZlPT09ZnVuY3Rpb24odCl7cmV0dXJuIHIodFswXSpNLHRbMV0qTSl9KHM9aShvKSkpcmV0dXJuIHM7Zm9yKHZhciBzLGw9ZS5jaGlsZHJlbixjPTAsdT1sJiZsLmxlbmd0aDtjPHU7KytjKWlmKHM9dChsW2NdLG4pKXJldHVybiBzfSh0LFtlLC1uXSk7cmV0dXJuIGkmJihpWzBdKj1NLGlbMV0qPU0saSl9KTt2YXIgbz1lLmdlb1Byb2plY3Rpb24oYSkscz1vLnN0cmVhbTtyZXR1cm4gby5zdHJlYW09ZnVuY3Rpb24ocil7dmFyIGk9by5yb3RhdGUoKSxhPXMociksbD0oby5yb3RhdGUoWzAsMF0pLHMocikpO3JldHVybiBvLnJvdGF0ZShpKSxhLnNwaGVyZT1mdW5jdGlvbigpe2wucG9seWdvblN0YXJ0KCksbC5saW5lU3RhcnQoKSxmdW5jdGlvbiB0KHIsaSxhKXt2YXIgbyxzLGw9aS5lZGdlcyxjPWwubGVuZ3RoLHU9e3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOmkuZmFjZX0sZj1pLmZhY2UuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gOTAhPT1uKHRbMV0pfSkpLGg9ZS5nZW9Cb3VuZHMoe3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOmZ9KSxwPSExLGQ9LTEsbT1oWzFdWzBdLWhbMF1bMF0sZz0xODA9PT1tfHwzNjA9PT1tP1soaFswXVswXStoWzFdWzBdKS8yLChoWzBdWzFdK2hbMV1bMV0pLzJdOmUuZ2VvQ2VudHJvaWQodSk7aWYoYSlmb3IoOysrZDxjJiZsW2RdIT09YTspOysrZDtmb3IodmFyIHk9MDt5PGM7Kyt5KXM9bFsoeStkKSVjXSxBcnJheS5pc0FycmF5KHMpPyhwfHwoci5wb2ludCgobz1lLmdlb0ludGVycG9sYXRlKHNbMF0sZykodikpWzBdLG9bMV0pLHA9ITApLHIucG9pbnQoKG89ZS5nZW9JbnRlcnBvbGF0ZShzWzFdLGcpKHYpKVswXSxvWzFdKSk6KHA9ITEscyE9PWEmJnQocixzLGkpKX0obCx0KSxsLmxpbmVFbmQoKSxsLnBvbHlnb25FbmQoKX0sYX0sby5hbmdsZShudWxsPT1pPy0zMDppKkEpfWZ1bmN0aW9uIEhlKHQsZSl7cmV0dXJuIHQmJmUmJnRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXX1mdW5jdGlvbiBxZSh0KXtyZXR1cm4gdC5wcm9qZWN0LmludmVydHx8dC5jaGlsZHJlbiYmdC5jaGlsZHJlbi5zb21lKHFlKX1SZS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXtlPjEuNzkwODU3MTgzP2U9MS43OTA4NTcxODM6ZTwtMS43OTA4NTcxODMmJihlPS0xLjc5MDg1NzE4Myk7dmFyIHIsaT1lO2Rve3ZhciBhPWkqaTtpLT1yPShpKigxLjAxNDgrYSphKiguMjMxODUrYSooLjAyNDA2KmEtLjE0NDk5KSkpLWUpLygxLjAxNDgrYSphKig1Ki4yMzE4NSthKiguMjE2NTQqYS0xLjAxNDkzKSkpfXdoaWxlKG4ocik+dik7cmV0dXJuW3QsaV19LEZlLmludmVydD1mdW5jdGlvbih0LGUpe2lmKG4oZSk8dilyZXR1cm5bdCwwXTt2YXIgcixpPXQqdCtlKmUsYT0uNSplLHM9MTA7ZG97dmFyIGw9ZyhhKSxjPTEvbyhhKSx1PWktMiplKmErYSphO2EtPXI9KGwqdSsyKihhLWUpKS8oMit1KmMqYysyKihhLWUpKmwpfXdoaWxlKG4ocik+diYmLS1zPjApO3JldHVybiBsPWcoYSksWyhuKGUpPG4oYSsxL2wpP1ModCpsKTpkKGUpKmQodCkqKEUobih0KmwpKSt4KSkvbShhKSxhXX07dmFyIEdlPVtbMCw5MF0sWy05MCwwXSxbMCwwXSxbOTAsMF0sWzE4MCwwXSxbMCwtOTBdXSxZZT1bWzAsMiwxXSxbMCwzLDJdLFs1LDEsMl0sWzUsMiwzXSxbMCwxLDRdLFswLDQsM10sWzUsNCwxXSxbNSwzLDRdXS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIEdlW3RdfSkpfSkpO3ZhciBXZT0yL0woMyk7ZnVuY3Rpb24gWGUodCxlKXt2YXIgcj1sdCh0LGUpO3JldHVybltyWzBdKldlLHJbMV1dfWZ1bmN0aW9uIFplKHQsZSl7Zm9yKHZhciByPTAsbj10Lmxlbmd0aCxpPTA7cjxuOysrcilpKz10W3JdKmVbcl07cmV0dXJuIGl9ZnVuY3Rpb24gSmUodCl7cmV0dXJuW2EodFsxXSx0WzBdKSpBLFModSgtMSxmKDEsdFsyXSkpKSpBXX1mdW5jdGlvbiBLZSh0KXt2YXIgZT10WzBdKk0scj10WzFdKk0sbj1vKHIpO3JldHVybltuKm8oZSksbiptKGUpLG0ocildfWZ1bmN0aW9uIFFlKCl7fWZ1bmN0aW9uICRlKHQsZSl7cmV0dXJue3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczp0LmZlYXR1cmVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRyKHQsZSl9KSl9fWZ1bmN0aW9uIHRyKHQsZSl7cmV0dXJue3R5cGU6IkZlYXR1cmUiLGlkOnQuaWQscHJvcGVydGllczp0LnByb3BlcnRpZXMsZ2VvbWV0cnk6ZXIodC5nZW9tZXRyeSxlKX19ZnVuY3Rpb24gZXIodCxyKXtpZighdClyZXR1cm4gbnVsbDtpZigiR2VvbWV0cnlDb2xsZWN0aW9uIj09PXQudHlwZSlyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm57dHlwZToiR2VvbWV0cnlDb2xsZWN0aW9uIixnZW9tZXRyaWVzOnQuZ2VvbWV0cmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlcih0LGUpfSkpfX0odCxyKTt2YXIgbjtzd2l0Y2godC50eXBlKXtjYXNlIlBvaW50IjpjYXNlIk11bHRpUG9pbnQiOm49aXI7YnJlYWs7Y2FzZSJMaW5lU3RyaW5nIjpjYXNlIk11bHRpTGluZVN0cmluZyI6bj1hcjticmVhaztjYXNlIlBvbHlnb24iOmNhc2UiTXVsdGlQb2x5Z29uIjpjYXNlIlNwaGVyZSI6bj1vcjticmVhaztkZWZhdWx0OnJldHVybiBudWxsfXJldHVybiBlLmdlb1N0cmVhbSh0LHIobikpLG4ucmVzdWx0KCl9WGUuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGx0LmludmVydCh0L1dlLGUpfTt2YXIgcnI9W10sbnI9W10saXI9e3BvaW50OmZ1bmN0aW9uKHQsZSl7cnIucHVzaChbdCxlXSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PXJyLmxlbmd0aD9yci5sZW5ndGg8Mj97dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOnJyWzBdfTp7dHlwZToiTXVsdGlQb2ludCIsY29vcmRpbmF0ZXM6cnJ9Om51bGw7cmV0dXJuIHJyPVtdLHR9fSxhcj17bGluZVN0YXJ0OlFlLHBvaW50OmZ1bmN0aW9uKHQsZSl7cnIucHVzaChbdCxlXSl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtyci5sZW5ndGgmJihuci5wdXNoKHJyKSxycj1bXSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PW5yLmxlbmd0aD9uci5sZW5ndGg8Mj97dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6bnJbMF19Ont0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOm5yfTpudWxsO3JldHVybiBucj1bXSx0fX0sb3I9e3BvbHlnb25TdGFydDpRZSxsaW5lU3RhcnQ6UWUscG9pbnQ6ZnVuY3Rpb24odCxlKXtyci5wdXNoKFt0LGVdKX0sbGluZUVuZDpmdW5jdGlvbigpe3ZhciB0PXJyLmxlbmd0aDtpZih0KXtkb3tyci5wdXNoKHJyWzBdLnNsaWNlKCkpfXdoaWxlKCsrdDw0KTtuci5wdXNoKHJyKSxycj1bXX19LHBvbHlnb25FbmQ6UWUscmVzdWx0OmZ1bmN0aW9uKCl7aWYoIW5yLmxlbmd0aClyZXR1cm4gbnVsbDt2YXIgdD1bXSxlPVtdO3JldHVybiBuci5mb3JFYWNoKChmdW5jdGlvbihyKXshZnVuY3Rpb24odCl7aWYoKGU9dC5sZW5ndGgpPDQpcmV0dXJuITE7Zm9yKHZhciBlLHI9MCxuPXRbZS0xXVsxXSp0WzBdWzBdLXRbZS0xXVswXSp0WzBdWzFdOysrcjxlOyluKz10W3ItMV1bMV0qdFtyXVswXS10W3ItMV1bMF0qdFtyXVsxXTtyZXR1cm4gbjw9MH0ocik/ZS5wdXNoKHIpOnQucHVzaChbcl0pfSkpLGUuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9ZVswXTt0LnNvbWUoKGZ1bmN0aW9uKHQpe2lmKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWVbMF0sbj1lWzFdLGk9ITEsYT0wLG89dC5sZW5ndGgscz1vLTE7YTxvO3M9YSsrKXt2YXIgbD10W2FdLGM9bFswXSx1PWxbMV0sZj10W3NdLGg9ZlswXSxwPWZbMV07dT5uXnA+biYmcjwoaC1jKSoobi11KS8ocC11KStjJiYoaT0haSl9cmV0dXJuIGl9KHRbMF0scikpcmV0dXJuIHQucHVzaChlKSwhMH0pKXx8dC5wdXNoKFtlXSl9KSksbnI9W10sdC5sZW5ndGg/dC5sZW5ndGg+MT97dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczp0fTp7dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6dFswXX06bnVsbH19O2Z1bmN0aW9uIHNyKHQpe3ZhciByPXQoeCwwKVswXS10KC14LDApWzBdO2Z1bmN0aW9uIGkoZSxpKXt2YXIgYT1uKGUpPHgsbz10KGE/ZTplPjA/ZS15OmUreSxpKSxzPShvWzBdLW9bMV0pKl8sbD0ob1swXStvWzFdKSpfO2lmKGEpcmV0dXJuW3MsbF07dmFyIGM9cipfLHU9cz4wXmw+MD8tMToxO3JldHVyblt1KnMtZChsKSpjLHUqbC1kKHMpKmNdfXJldHVybiB0LmludmVydCYmKGkuaW52ZXJ0PWZ1bmN0aW9uKGUsaSl7dmFyIGE9KGUraSkqXyxvPShpLWUpKl8scz1uKGEpPC41KnImJm4obyk8LjUqcjtpZighcyl7dmFyIGw9cipfLGM9YT4wXm8+MD8tMToxLHU9LWMqZSsobz4wPzE6LTEpKmwsZj0tYyppKyhhPjA/MTotMSkqbDthPSgtdS1mKSpfLG89KHUtZikqX312YXIgaD10LmludmVydChhLG8pO3JldHVybiBzfHwoaFswXSs9YT4wP3k6LXkpLGh9KSxlLmdlb1Byb2plY3Rpb24oaSkucm90YXRlKFstOTAsLTkwLDQ1XSkuY2xpcEFuZ2xlKDE3OS45OTkpfWZ1bmN0aW9uIGxyKCl7cmV0dXJuIHNyKFV0KS5zY2FsZSgxMTEuNDgpfWZ1bmN0aW9uIGNyKHQpe3ZhciBlPW0odCk7ZnVuY3Rpb24gcihyLG4pe3ZhciBhPWU/ZyhyKmUvMikvZTpyLzI7aWYoIW4pcmV0dXJuWzIqYSwtdF07dmFyIHM9MippKGEqbShuKSksbD0xL2cobik7cmV0dXJuW20ocykqbCxuKygxLW8ocykpKmwtdF19cmV0dXJuIHIuaW52ZXJ0PWZ1bmN0aW9uKHIsYSl7aWYobihhKz10KTx2KXJldHVybltlPzIqaShlKnIvMikvZTpyLDBdO3ZhciBzLGw9cipyK2EqYSxjPTAsdT0xMDtkb3t2YXIgZj1nKGMpLGg9MS9vKGMpLHA9bC0yKmEqYytjKmM7Yy09cz0oZipwKzIqKGMtYSkpLygyK3AqaCpoKzIqKGMtYSkqZil9d2hpbGUobihzKT52JiYtLXU+MCk7dmFyIGQ9ciooZj1nKGMpKSx4PWcobihhKTxuKGMrMS9mKT8uNSpTKGQpOi41KkUoZCkreS80KS9tKGMpO3JldHVybltlPzIqaShlKngpL2U6Mip4LGNdfSxyfXZhciB1cj1bWy45OTg2LC0uMDYyXSxbMSwwXSxbLjk5ODYsLjA2Ml0sWy45OTU0LC4xMjRdLFsuOTksLjE4Nl0sWy45ODIyLC4yNDhdLFsuOTczLC4zMV0sWy45NiwuMzcyXSxbLjk0MjcsLjQzNF0sWy45MjE2LC40OTU4XSxbLjg5NjIsLjU1NzFdLFsuODY3OSwuNjE3Nl0sWy44MzUsLjY3NjldLFsuNzk4NiwuNzM0Nl0sWy43NTk3LC43OTAzXSxbLjcxODYsLjg0MzVdLFsuNjczMiwuODkzNl0sWy42MjEzLC45Mzk0XSxbLjU3MjIsLjk3NjFdLFsuNTMyMiwxXV07ZnVuY3Rpb24gZnIodCxlKXt2YXIgcixpPWYoMTgsMzYqbihlKS95KSxhPWwoaSksbz1pLWEscz0ocj11clthXSlbMF0sYz1yWzFdLHU9KHI9dXJbKythXSlbMF0saD1yWzFdLHA9KHI9dXJbZigxOSwrK2EpXSlbMF0sZD1yWzFdO3JldHVyblt0Kih1K28qKHAtcykvMitvKm8qKHAtMip1K3MpLzIpLChlPjA/eDoteCkqKGgrbyooZC1jKS8yK28qbyooZC0yKmgrYykvMildfWZ1bmN0aW9uIGhyKHQsZSl7dmFyIHI9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3ZhciBuPW8ociksaT0odC0xKS8odC1uKm8oZSkpO3JldHVybltpKm4qbShlKSxpKm0ocildfXJldHVybiBlLmludmVydD1mdW5jdGlvbihlLHIpe3ZhciBuPWUqZStyKnIsaT1MKG4pLG89KHQtTCgxLW4qKHQrMSkvKHQtMSkpKS8oKHQtMSkvaStpLyh0LTEpKTtyZXR1cm5bYShlKm8saSpMKDEtbypvKSksaT9TKHIqby9pKTowXX0sZX0odCk7aWYoIWUpcmV0dXJuIHI7dmFyIG49byhlKSxpPW0oZSk7ZnVuY3Rpb24gcyhlLGEpe3ZhciBvPXIoZSxhKSxzPW9bMV0sbD1zKmkvKHQtMSkrbjtyZXR1cm5bb1swXSpuL2wscy9sXX1yZXR1cm4gcy5pbnZlcnQ9ZnVuY3Rpb24oZSxhKXt2YXIgbz0odC0xKS8odC0xLWEqaSk7cmV0dXJuIHIuaW52ZXJ0KG8qZSxvKmEqbil9LHN9dXIuZm9yRWFjaCgoZnVuY3Rpb24odCl7dFsxXSo9MS4wMTQ0fSkpLGZyLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWUveCxpPTkwKnIsYT1mKDE4LG4oaS81KSksbz11KDAsbChhKSk7ZG97dmFyIHM9dXJbb11bMV0sYz11cltvKzFdWzFdLGg9dXJbZigxOSxvKzIpXVsxXSxwPWgtcyxkPWgtMipjK3MsbT0yKihuKHIpLWMpL3AsZz1kL3Asdj1tKigxLWcqbSooMS0yKmcqbSkpO2lmKHY+PTB8fDE9PT1vKXtpPShlPj0wPzU6LTUpKih2K2EpO3ZhciB5LGI9NTA7ZG97dj0oYT1mKDE4LG4oaSkvNSkpLShvPWwoYSkpLHM9dXJbb11bMV0sYz11cltvKzFdWzFdLGg9dXJbZigxOSxvKzIpXVsxXSxpLT0oeT0oZT49MD94Oi14KSooYyt2KihoLXMpLzIrdip2KihoLTIqYytzKS8yKS1lKSpBfXdoaWxlKG4oeSk+MWUtMTImJi0tYj4wKTticmVha319d2hpbGUoLS1vPj0wKTt2YXIgXz11cltvXVswXSx3PXVyW28rMV1bMF0sVD11cltmKDE5LG8rMildWzBdO3JldHVyblt0Lyh3K3YqKFQtXykvMit2KnYqKFQtMip3K18pLzIpLGkqTV19O3ZhciBwcj0tMTc5Ljk5OTksZHI9MTc5Ljk5OTksbXI9LTg5Ljk5OTk7ZnVuY3Rpb24gZ3IodCl7cmV0dXJuIHQubGVuZ3RoPjB9ZnVuY3Rpb24gdnIodCl7cmV0dXJuLTkwPT09dHx8OTA9PT10P1swLHRdOlstMTgwLChlPXQsTWF0aC5mbG9vcigxZTQqZSkvMWU0KV07dmFyIGV9ZnVuY3Rpb24geXIodCl7dmFyIGU9dFswXSxyPXRbMV0sbj0hMTtyZXR1cm4gZTw9cHI/KGU9LTE4MCxuPSEwKTplPj1kciYmKGU9MTgwLG49ITApLHI8PW1yPyhyPS05MCxuPSEwKTpyPj04OS45OTk5JiYocj05MCxuPSEwKSxuP1tlLHJdOnR9ZnVuY3Rpb24geHIodCl7cmV0dXJuIHQubWFwKHlyKX1mdW5jdGlvbiBicih0LGUscil7Zm9yKHZhciBuPTAsaT10Lmxlbmd0aDtuPGk7KytuKXt2YXIgYT10W25dLnNsaWNlKCk7ci5wdXNoKHtpbmRleDotMSxwb2x5Z29uOmUscmluZzphfSk7Zm9yKHZhciBvPTAscz1hLmxlbmd0aDtvPHM7KytvKXt2YXIgbD1hW29dLGM9bFswXSx1PWxbMV07aWYoYzw9cHJ8fGM+PWRyfHx1PD1tcnx8dT49ODkuOTk5OSl7YVtvXT15cihsKTtmb3IodmFyIGY9bysxO2Y8czsrK2Ype3ZhciBoPWFbZl0scD1oWzBdLGQ9aFsxXTtpZihwPnByJiZwPGRyJiZkPm1yJiZkPDg5Ljk5OTkpYnJlYWt9aWYoZj09PW8rMSljb250aW51ZTtpZihvKXt2YXIgbT17aW5kZXg6LTEscG9seWdvbjplLHJpbmc6YS5zbGljZSgwLG8rMSl9O20ucmluZ1ttLnJpbmcubGVuZ3RoLTFdPXZyKHUpLHJbci5sZW5ndGgtMV09bX1lbHNlIHIucG9wKCk7aWYoZj49cylicmVhaztyLnB1c2goe2luZGV4Oi0xLHBvbHlnb246ZSxyaW5nOmE9YS5zbGljZShmLTEpfSksYVswXT12cihhWzBdWzFdKSxvPS0xLHM9YS5sZW5ndGh9fX19ZnVuY3Rpb24gX3IodCl7dmFyIGUscixuLGksYSxvLHM9dC5sZW5ndGgsbD17fSxjPXt9O2ZvcihlPTA7ZTxzOysrZSluPShyPXRbZV0pLnJpbmdbMF0sYT1yLnJpbmdbci5yaW5nLmxlbmd0aC0xXSxuWzBdIT09YVswXXx8blsxXSE9PWFbMV0/KHIuaW5kZXg9ZSxsW25dPWNbYV09cik6KHIucG9seWdvbi5wdXNoKHIucmluZyksdFtlXT1udWxsKTtmb3IoZT0wO2U8czsrK2UpaWYocj10W2VdKXtpZihuPXIucmluZ1swXSxhPXIucmluZ1tyLnJpbmcubGVuZ3RoLTFdLGk9Y1tuXSxvPWxbYV0sZGVsZXRlIGxbbl0sZGVsZXRlIGNbYV0sblswXT09PWFbMF0mJm5bMV09PT1hWzFdKXtyLnBvbHlnb24ucHVzaChyLnJpbmcpO2NvbnRpbnVlfWk/KGRlbGV0ZSBjW25dLGRlbGV0ZSBsW2kucmluZ1swXV0saS5yaW5nLnBvcCgpLHRbaS5pbmRleF09bnVsbCxyPXtpbmRleDotMSxwb2x5Z29uOmkucG9seWdvbixyaW5nOmkucmluZy5jb25jYXQoci5yaW5nKX0saT09PW8/ci5wb2x5Z29uLnB1c2goci5yaW5nKTooci5pbmRleD1zKyssdC5wdXNoKGxbci5yaW5nWzBdXT1jW3IucmluZ1tyLnJpbmcubGVuZ3RoLTFdXT1yKSkpOm8/KGRlbGV0ZSBsW2FdLGRlbGV0ZSBjW28ucmluZ1tvLnJpbmcubGVuZ3RoLTFdXSxyLnJpbmcucG9wKCkscj17aW5kZXg6cysrLHBvbHlnb246by5wb2x5Z29uLHJpbmc6ci5yaW5nLmNvbmNhdChvLnJpbmcpfSx0W28uaW5kZXhdPW51bGwsdC5wdXNoKGxbci5yaW5nWzBdXT1jW3IucmluZ1tyLnJpbmcubGVuZ3RoLTFdXT1yKSk6KHIucmluZy5wdXNoKHIucmluZ1swXSksci5wb2x5Z29uLnB1c2goci5yaW5nKSl9fWZ1bmN0aW9uIHdyKHQpe3ZhciBlPXt0eXBlOiJGZWF0dXJlIixnZW9tZXRyeTpUcih0Lmdlb21ldHJ5KX07cmV0dXJuIG51bGwhPXQuaWQmJihlLmlkPXQuaWQpLG51bGwhPXQuYmJveCYmKGUuYmJveD10LmJib3gpLG51bGwhPXQucHJvcGVydGllcyYmKGUucHJvcGVydGllcz10LnByb3BlcnRpZXMpLGV9ZnVuY3Rpb24gVHIodCl7aWYobnVsbD09dClyZXR1cm4gdDt2YXIgZSxyLG4saTtzd2l0Y2godC50eXBlKXtjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6ZT17dHlwZToiR2VvbWV0cnlDb2xsZWN0aW9uIixnZW9tZXRyaWVzOnQuZ2VvbWV0cmllcy5tYXAoVHIpfTticmVhaztjYXNlIlBvaW50IjplPXt0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6eXIodC5jb29yZGluYXRlcyl9O2JyZWFrO2Nhc2UiTXVsdGlQb2ludCI6Y2FzZSJMaW5lU3RyaW5nIjplPXt0eXBlOnQudHlwZSxjb29yZGluYXRlczp4cih0LmNvb3JkaW5hdGVzKX07YnJlYWs7Y2FzZSJNdWx0aUxpbmVTdHJpbmciOmU9e3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dC5jb29yZGluYXRlcy5tYXAoeHIpfTticmVhaztjYXNlIlBvbHlnb24iOnZhciBhPVtdO2JyKHQuY29vcmRpbmF0ZXMsYSxyPVtdKSxfcihyKSxlPXt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczphfTticmVhaztjYXNlIk11bHRpUG9seWdvbiI6cj1bXSxuPS0xLGk9dC5jb29yZGluYXRlcy5sZW5ndGg7Zm9yKHZhciBvPW5ldyBBcnJheShpKTsrK248aTspYnIodC5jb29yZGluYXRlc1tuXSxvW25dPVtdLHIpO19yKHIpLGU9e3R5cGU6Ik11bHRpUG9seWdvbiIsY29vcmRpbmF0ZXM6by5maWx0ZXIoZ3IpfTticmVhaztkZWZhdWx0OnJldHVybiB0fXJldHVybiBudWxsIT10LmJib3gmJihlLmJib3g9dC5iYm94KSxlfWZ1bmN0aW9uIGtyKHQsZSl7dmFyIHI9ZyhlLzIpLG49bShiKnIpO3JldHVyblt0KiguNzQ0ODItLjM0NTg4Km4qbiksMS43MDcxMSpyXX1mdW5jdGlvbiBBcih0LHIsbil7dmFyIGk9ZS5nZW9JbnRlcnBvbGF0ZShyLG4pLGE9aSguNSksbz1lLmdlb1JvdGF0aW9uKFstYVswXSwtYVsxXV0pKHIpLHM9aS5kaXN0YW5jZS8yLGw9LVMobShvWzFdKk0pL20ocykpLGM9Wy1hWzBdLC1hWzFdLC0ob1swXT4wP3ktbDpsKSpBXSx1PWUuZ2VvUHJvamVjdGlvbih0KHMpKS5yb3RhdGUoYyksZj1lLmdlb1JvdGF0aW9uKGMpLGg9dS5jZW50ZXI7cmV0dXJuIGRlbGV0ZSB1LnJvdGF0ZSx1LmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9oKGYodCkpOmYuaW52ZXJ0KGgoKSl9LHUuY2xpcEFuZ2xlKDkwKX1mdW5jdGlvbiBNcih0KXt2YXIgcj1vKHQpO2Z1bmN0aW9uIG4odCxuKXt2YXIgaT1lLmdlb0dub21vbmljUmF3KHQsbik7cmV0dXJuIGlbMF0qPXIsaX1yZXR1cm4gbi5pbnZlcnQ9ZnVuY3Rpb24odCxuKXtyZXR1cm4gZS5nZW9Hbm9tb25pY1Jhdy5pbnZlcnQodC9yLG4pfSxufWZ1bmN0aW9uIFNyKHQsZSl7cmV0dXJuIEFyKE1yLHQsZSl9ZnVuY3Rpb24gRXIodCl7aWYoISh0Kj0yKSlyZXR1cm4gZS5nZW9BemltdXRoYWxFcXVpZGlzdGFudFJhdzt2YXIgcj0tdC8yLG49LXIsaT10KnQscz1nKG4pLGw9LjUvbShuKTtmdW5jdGlvbiBjKGUsYSl7dmFyIHM9RShvKGEpKm8oZS1yKSksbD1FKG8oYSkqbyhlLW4pKTtyZXR1cm5bKChzKj1zKS0obCo9bCkpLygyKnQpLChhPDA/LTE6MSkqTCg0KmkqbC0oaS1zK2wpKihpLXMrbCkpLygyKnQpXX1yZXR1cm4gYy5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgaSxjLHU9ZSplLGY9byhMKHUrKGk9dCtyKSppKSksaD1vKEwodSsoaT10K24pKmkpKTtyZXR1cm5bYShjPWYtaCxpPShmK2gpKnMpLChlPDA/LTE6MSkqRShMKGkqaStjKmMpKmwpXX0sY31mdW5jdGlvbiBMcih0LGUpe3JldHVybiBBcihFcix0LGUpfWZ1bmN0aW9uIENyKHQsZSl7aWYobihlKTx2KXJldHVyblt0LDBdO3ZhciByPW4oZS94KSxpPVMocik7aWYobih0KTx2fHxuKG4oZSkteCk8dilyZXR1cm5bMCxkKGUpKnkqZyhpLzIpXTt2YXIgYT1vKGkpLHM9bih5L3QtdC95KS8yLGw9cypzLGM9YS8ocithLTEpLHU9YyooMi9yLTEpLGY9dSp1LGg9ZitsLHA9Yy1mLG09bCtjO3JldHVybltkKHQpKnkqKHMqcCtMKGwqcCpwLWgqKGMqYy1mKSkpL2gsZChlKSp5Kih1Km0tcypMKChsKzEpKmgtbSptKSkvaF19ZnVuY3Rpb24gUHIodCxlKXtpZihuKGUpPHYpcmV0dXJuW3QsMF07dmFyIHI9bihlL3gpLGk9UyhyKTtpZihuKHQpPHZ8fG4obihlKS14KTx2KXJldHVyblswLGQoZSkqeSpnKGkvMildO3ZhciBhPW8oaSkscz1uKHkvdC10L3kpLzIsbD1zKnMsYz1hKihMKDErbCktcyphKS8oMStsKnIqcik7cmV0dXJuW2QodCkqeSpjLGQoZSkqeSpMKDEtYyooMipzK2MpKV19ZnVuY3Rpb24gSXIodCxlKXtpZihuKGUpPHYpcmV0dXJuW3QsMF07dmFyIHI9ZS94LGk9UyhyKTtpZihuKHQpPHZ8fG4obihlKS14KTx2KXJldHVyblswLHkqZyhpLzIpXTt2YXIgYT0oeS90LXQveSkvMixzPXIvKDErbyhpKSk7cmV0dXJuW3kqKGQodCkqTChhKmErMS1zKnMpLWEpLHkqc119ZnVuY3Rpb24gT3IodCxlKXtpZighZSlyZXR1cm5bdCwwXTt2YXIgcj1uKGUpO2lmKCF0fHxyPT09eClyZXR1cm5bMCxlXTt2YXIgaT1yL3gsYT1pKmksbz0oOCppLWEqKGErMiktNSkvKDIqYSooaS0xKSkscz1vKm8sbD1pKm8sYz1hK3MrMipsLHU9aSszKm8sZj10L3gsaD1mKzEvZixwPWQobih0KS14KSpMKGgqaC00KSxtPXAqcCxnPShwKihjK3MtMSkrMipMKGMqKGErcyptLTEpKygxLWEpKihhKih1KnUrNCpzKSsxMipsKnMrNCpzKnMpKSkvKDQqYyttKTtyZXR1cm5bZCh0KSp4KmcsZChlKSp4KkwoMStwKm4oZyktZypnKV19ZnVuY3Rpb24genIodCxlLHIsbil7dmFyIGk9eS8zO3Q9dSh0LHYpLGU9dShlLHYpLHQ9Zih0LHgpLGU9ZihlLHktdikscj11KHIsMCkscj1mKHIsMTAwLXYpO3ZhciBzPShuPXUobix2KSkvMTAwLGw9RSgoci8xMDArMSkqbyhpKSkvaSxjPW0odCkvbShsKngpLGg9ZS95LHA9TChzKm0odC8yKS9tKGUvMikpO3JldHVybiBmdW5jdGlvbih0LGUscixuLGkpe2Z1bmN0aW9uIHMoYSxzKXt2YXIgbD1yKm0obipzKSxjPUwoMS1sKmwpLHU9TCgyLygxK2MqbyhhKj1pKSkpO3JldHVyblt0KmMqdSptKGEpLGUqbCp1XX1yZXR1cm4gcy5pbnZlcnQ9ZnVuY3Rpb24obyxzKXt2YXIgbD1vL3QsYz1zL2UsdT1MKGwqbCtjKmMpLGY9MipTKHUvMik7cmV0dXJuW2EobypnKGYpLHQqdSkvaSx1JiZTKHMqbShmKS8oZSpyKnUpKS9uXX0sc30ocC9MKGgqYypsKSwxLyhwKkwoaCpjKmwpKSxjLGwsaCl9ZnVuY3Rpb24gRHIoKXt2YXIgdD02NSpNLHI9NjAqTSxuPTIwLGk9MjAwLGE9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcih6ciksbz1hKHQscixuLGkpO3JldHVybiBvLnBvbGVsaW5lPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EodD0rZSpNLHIsbixpKTp0KkF9LG8ucGFyYWxsZWxzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EodCxyPStlKk0sbixpKTpyKkF9LG8uaW5mbGF0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EodCxyLG49K2UsaSk6bn0sby5yYXRpbz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9hKHQscixuLGk9K2UpOml9LG8uc2NhbGUoMTYzLjc3NSl9a3IuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS8xLjcwNzExLG49bShiKnIpO3JldHVyblt0LyguNzQ0ODItLjM0NTg4Km4qbiksMippKHIpXX0sQ3IuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7aWYobihlKTx2KXJldHVyblt0LDBdO2lmKG4odCk8dilyZXR1cm5bMCx4Km0oMippKGUveSkpXTt2YXIgcj0odC89eSkqdCxhPShlLz15KSplLHM9cithLGw9cypzLGM9LW4oZSkqKDErcyksdT1jLTIqYStyLGY9LTIqYysxKzIqYStsLGg9YS9mKygyKnUqdSp1LyhmKmYqZiktOSpjKnUvKGYqZikpLzI3LHA9KGMtdSp1LygzKmYpKS9mLGc9MipMKC1wLzMpLGI9RSgzKmgvKHAqZykpLzM7cmV0dXJuW3kqKHMtMStMKDErMiooci1hKStsKSkvKDIqdCksZChlKSp5KigtZypvKGIreS8zKS11LygzKmYpKV19LFByLmludmVydD1mdW5jdGlvbih0LGUpe2lmKCF0KXJldHVyblswLHgqbSgyKmkoZS95KSldO3ZhciByPW4odC95KSxvPSgxLXIqci0oZS89eSkqZSkvKDIqcikscz1MKG8qbysxKTtyZXR1cm5bZCh0KSp5KihzLW8pLGQoZSkqeCptKDIqYShMKCgxLTIqbypyKSoobytzKS1yKSxMKHMrbytyKSkpXX0sSXIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7aWYoIWUpcmV0dXJuW3QsMF07dmFyIHI9ZS95LG49KHkqeSooMS1yKnIpLXQqdCkvKDIqeSp0KTtyZXR1cm5bdD95KihkKHQpKkwobipuKzEpLW4pOjAseCptKDIqaShyKSldfSxPci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcjtpZighdHx8IWUpcmV0dXJuW3QsZV07ZS89eTt2YXIgaT1kKHQpKnQveCxhPShpKmktMSs0KmUqZSkvbihpKSxvPWEqYSxzPTIqZSxsPTUwO2Rve3ZhciBjPXMqcyx1PSg4KnMtYyooYysyKS01KS8oMipjKihzLTEpKSxmPSgzKnMtYypzLTEwKS8oMipjKnMpLGg9dSp1LHA9cyp1LG09cyt1LGc9bSptLGI9cyszKnUsXz0tMiptKig0KnAqaCsoMS00KmMrMypjKmMpKigxK2YpK2gqKDE0KmMtNi1vKyg4KmMtOC0yKm8pKmYpK3AqKDEyKmMtOCsoMTAqYy0xMC1vKSpmKSksdz1MKGcqKGMraCpvLTEpKygxLWMpKihjKihiKmIrNCpoKStoKigxMipwKzQqaCkpKTtzLT1yPShhKihnK2gtMSkrMip3LWkqKDQqZytvKSkvKGEqKDIqdSpmKzIqbSooMStmKSkrXy93LTgqbSooYSooLTEraCtnKSsyKncpKigxK2YpLyhvKzQqZykpfXdoaWxlKHI+diYmLS1sPjApO3JldHVybltkKHQpKihMKGEqYSs0KSthKSp5LzQseCpzXX07dmFyIFJyPTQqeSszKkwoMyksRnI9MipMKDIqeSpMKDMpL1JyKSxCcj1ZKEZyKkwoMykveSxGcixSci82KTtmdW5jdGlvbiBOcih0LGUpe3JldHVyblt0KkwoMS0zKmUqZS8oeSp5KSksZV19ZnVuY3Rpb24ganIodCxlKXt2YXIgcj1vKGUpLG49byh0KSpyLGk9MS1uLHM9byh0PWEobSh0KSpyLC1tKGUpKSksbD1tKHQpO3JldHVybltsKihyPUwoMS1uKm4pKS1zKmksLXMqci1sKmldfWZ1bmN0aW9uIFVyKHQsZSl7dmFyIHI9Tyh0LGUpO3JldHVyblsoclswXSt0L3gpLzIsKHJbMV0rZSkvMl19TnIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3QvTCgxLTMqZSplLyh5KnkpKSxlXX0sanIuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9KHQqdCtlKmUpLy0yLG49TCgtciooMityKSksaT1lKnIrdCpuLG89dCpyLWUqbixzPUwobypvK2kqaSk7cmV0dXJuW2EobippLHMqKDErcikpLHM/LVMobipvL3MpOjBdfSxVci5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10LGk9ZSxhPTI1O2Rve3ZhciBzLGw9byhpKSxjPW0oaSksdT1tKDIqaSksZj1jKmMsaD1sKmwscD1tKHIpLGQ9byhyLzIpLGc9bShyLzIpLHk9ZypnLGI9MS1oKmQqZCxfPWI/RShsKmQpKkwocz0xL2IpOnM9MCx3PS41KigyKl8qbCpnK3IveCktdCxUPS41KihfKmMraSktZSxrPS41KnMqKGgqeStfKmwqZCpmKSsuNS94LEE9cyoocCp1LzQtXypjKmcpLE09LjEyNSpzKih1KmctXypjKmgqcCksUz0uNSpzKihmKmQrXyp5KmwpKy41LEM9QSpNLVMqayxQPShUKkEtdypTKS9DLEk9KHcqTS1UKmspL0M7ci09UCxpLT1JfXdoaWxlKChuKFApPnZ8fG4oSSk+dikmJi0tYT4wKTtyZXR1cm5bcixpXX0sdC5nZW9OYXR1cmFsRWFydGg9ZS5nZW9OYXR1cmFsRWFydGgxLHQuZ2VvTmF0dXJhbEVhcnRoUmF3PWUuZ2VvTmF0dXJhbEVhcnRoMVJhdyx0Lmdlb0Fpcnk9ZnVuY3Rpb24oKXt2YXIgdD14LHI9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihJKSxuPXIodCk7cmV0dXJuIG4ucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3IodD1lKk0pOnQqQX0sbi5zY2FsZSgxNzkuOTc2KS5jbGlwQW5nbGUoMTQ3KX0sdC5nZW9BaXJ5UmF3PUksdC5nZW9BaXRvZmY9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKE8pLnNjYWxlKDE1Mi42Myl9LHQuZ2VvQWl0b2ZmUmF3PU8sdC5nZW9Bcm1hZGlsbG89ZnVuY3Rpb24oKXt2YXIgdD0yMCpNLHI9dD49MD8xOi0xLG49ZyhyKnQpLGk9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcih6KSxzPWkodCksbD1zLnN0cmVhbTtyZXR1cm4gcy5wYXJhbGxlbD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1nKChyPSh0PWUqTSk+PTA/MTotMSkqdCksaSh0KSk6dCpBfSxzLnN0cmVhbT1mdW5jdGlvbihlKXt2YXIgaT1zLnJvdGF0ZSgpLGM9bChlKSx1PShzLnJvdGF0ZShbMCwwXSksbChlKSksZj1zLnByZWNpc2lvbigpO3JldHVybiBzLnJvdGF0ZShpKSxjLnNwaGVyZT1mdW5jdGlvbigpe3UucG9seWdvblN0YXJ0KCksdS5saW5lU3RhcnQoKTtmb3IodmFyIGU9LTE4MCpyO3IqZTwxODA7ZSs9OTAqcil1LnBvaW50KGUsOTAqcik7aWYodClmb3IoO3IqKGUtPTMqcipmKT49LTE4MDspdS5wb2ludChlLHIqLWEobyhlKk0vMiksbikqQSk7dS5saW5lRW5kKCksdS5wb2x5Z29uRW5kKCl9LGN9LHMuc2NhbGUoMjE4LjY5NSkuY2VudGVyKFswLDI4LjA5NzRdKX0sdC5nZW9Bcm1hZGlsbG9SYXc9eix0Lmdlb0F1Z3VzdD1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oRCkuc2NhbGUoNjYuMTYwMyl9LHQuZ2VvQXVndXN0UmF3PUQsdC5nZW9CYWtlcj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oQikuc2NhbGUoMTEyLjMxNCl9LHQuZ2VvQmFrZXJSYXc9Qix0Lmdlb0JlcmdoYXVzPWZ1bmN0aW9uKCl7dmFyIHQ9NSxyPWUuZ2VvUHJvamVjdGlvbk11dGF0b3IoTiksbj1yKHQpLGk9bi5zdHJlYW0scz0tbyguMDEqTSksbD1tKC4wMSpNKTtyZXR1cm4gbi5sb2Jlcz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9yKHQ9K2UpOnR9LG4uc3RyZWFtPWZ1bmN0aW9uKGUpe3ZhciByPW4ucm90YXRlKCksYz1pKGUpLHU9KG4ucm90YXRlKFswLDBdKSxpKGUpKTtyZXR1cm4gbi5yb3RhdGUociksYy5zcGhlcmU9ZnVuY3Rpb24oKXt1LnBvbHlnb25TdGFydCgpLHUubGluZVN0YXJ0KCk7Zm9yKHZhciBlPTAscj0zNjAvdCxuPTIqeS90LGk9OTAtMTgwL3QsYz14O2U8dDsrK2UsaS09cixjLT1uKXUucG9pbnQoYShsKm8oYykscykqQSxTKGwqbShjKSkqQSksaTwtOTA/KHUucG9pbnQoLTkwLC0xODAtaS0uMDEpLHUucG9pbnQoLTkwLC0xODAtaSsuMDEpKToodS5wb2ludCg5MCxpKy4wMSksdS5wb2ludCg5MCxpLS4wMSkpO3UubGluZUVuZCgpLHUucG9seWdvbkVuZCgpfSxjfSxuLnNjYWxlKDg3LjgwNzYpLmNlbnRlcihbMCwxNy4xODc1XSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0JlcmdoYXVzUmF3PU4sdC5nZW9CZXJ0aW4xOTUzPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihxKCkpLnJvdGF0ZShbLTE2LjUsLTQyXSkuc2NhbGUoMTc2LjU3KS5jZW50ZXIoWzcuOTMsLjA5XSl9LHQuZ2VvQmVydGluMTk1M1Jhdz1xLHQuZ2VvQm9nZ3M9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKEopLnNjYWxlKDE2MC44NTcpfSx0Lmdlb0JvZ2dzUmF3PUosdC5nZW9Cb25uZT1mdW5jdGlvbigpe3JldHVybiBLKCQpLnNjYWxlKDEyMy4wODIpLmNlbnRlcihbMCwyNi4xNDQxXSkucGFyYWxsZWwoNDUpfSx0Lmdlb0Jvbm5lUmF3PSQsdC5nZW9Cb3R0b21sZXk9ZnVuY3Rpb24oKXt2YXIgdD0uNSxyPWUuZ2VvUHJvamVjdGlvbk11dGF0b3IodHQpLG49cih0KTtyZXR1cm4gbi5mcmFjdGlvbj1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9yKHQ9K2UpOnR9LG4uc2NhbGUoMTU4LjgzNyl9LHQuZ2VvQm90dG9tbGV5UmF3PXR0LHQuZ2VvQnJvbWxleT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oZXQpLnNjYWxlKDE1Mi42Myl9LHQuZ2VvQnJvbWxleVJhdz1ldCx0Lmdlb0NoYW1iZXJsaW49c3QsdC5nZW9DaGFtYmVybGluUmF3PWF0LHQuZ2VvQ2hhbWJlcmxpbkFmcmljYT1mdW5jdGlvbigpe3JldHVybiBzdChbMCwyMl0sWzQ1LDIyXSxbMjIuNSwtMjJdKS5zY2FsZSgzODApLmNlbnRlcihbMjIuNSwyXSl9LHQuZ2VvQ29sbGlnbm9uPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihsdCkuc2NhbGUoOTUuNjQ2NCkuY2VudGVyKFswLDMwXSl9LHQuZ2VvQ29sbGlnbm9uUmF3PWx0LHQuZ2VvQ3JhaWc9ZnVuY3Rpb24oKXtyZXR1cm4gSyhjdCkuc2NhbGUoMjQ5LjgyOCkuY2xpcEFuZ2xlKDkwKX0sdC5nZW9DcmFpZ1Jhdz1jdCx0Lmdlb0NyYXN0ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKGZ0KS5zY2FsZSgxNTYuMTkpfSx0Lmdlb0NyYXN0ZXJSYXc9ZnQsdC5nZW9DeWxpbmRyaWNhbEVxdWFsQXJlYT1mdW5jdGlvbigpe3JldHVybiBLKGh0KS5wYXJhbGxlbCgzOC41OCkuc2NhbGUoMTk1LjA0NCl9LHQuZ2VvQ3lsaW5kcmljYWxFcXVhbEFyZWFSYXc9aHQsdC5nZW9DeWxpbmRyaWNhbFN0ZXJlb2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gSyhwdCkuc2NhbGUoMTI0Ljc1KX0sdC5nZW9DeWxpbmRyaWNhbFN0ZXJlb2dyYXBoaWNSYXc9cHQsdC5nZW9FY2tlcnQxPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihkdCkuc2NhbGUoMTY1LjY2NCl9LHQuZ2VvRWNrZXJ0MVJhdz1kdCx0Lmdlb0Vja2VydDI9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKG10KS5zY2FsZSgxNjUuNjY0KX0sdC5nZW9FY2tlcnQyUmF3PW10LHQuZ2VvRWNrZXJ0Mz1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oZ3QpLnNjYWxlKDE4MC43MzkpfSx0Lmdlb0Vja2VydDNSYXc9Z3QsdC5nZW9FY2tlcnQ0PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbih2dCkuc2NhbGUoMTgwLjczOSl9LHQuZ2VvRWNrZXJ0NFJhdz12dCx0Lmdlb0Vja2VydDU9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKHl0KS5zY2FsZSgxNzMuMDQ0KX0sdC5nZW9FY2tlcnQ1UmF3PXl0LHQuZ2VvRWNrZXJ0Nj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oeHQpLnNjYWxlKDE3My4wNDQpfSx0Lmdlb0Vja2VydDZSYXc9eHQsdC5nZW9FaXNlbmxvaHI9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKF90KS5zY2FsZSg2Mi41MjcxKX0sdC5nZW9FaXNlbmxvaHJSYXc9X3QsdC5nZW9GYWhleT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oVHQpLnNjYWxlKDEzNy4xNTIpfSx0Lmdlb0ZhaGV5UmF3PVR0LHQuZ2VvRm91Y2F1dD1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oa3QpLnNjYWxlKDEzNS4yNjQpfSx0Lmdlb0ZvdWNhdXRSYXc9a3QsdC5nZW9Gb3VjYXV0U2ludXNvaWRhbD1mdW5jdGlvbigpe3ZhciB0PS41LHI9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihBdCksbj1yKHQpO3JldHVybiBuLmFscGhhPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3IodD0rZSk6dH0sbi5zY2FsZSgxNjguNzI1KX0sdC5nZW9Gb3VjYXV0U2ludXNvaWRhbFJhdz1BdCx0Lmdlb0dpbGJlcnQ9ZnVuY3Rpb24odCl7bnVsbD09dCYmKHQ9ZS5nZW9PcnRob2dyYXBoaWMpO3ZhciByPXQoKSxuPWUuZ2VvRXF1aXJlY3Rhbmd1bGFyKCkuc2NhbGUoQSkucHJlY2lzaW9uKDApLmNsaXBBbmdsZShudWxsKS50cmFuc2xhdGUoWzAsMF0pO2Z1bmN0aW9uIGkodCl7cmV0dXJuIHIoTXQodCkpfWZ1bmN0aW9uIGEodCl7aVt0XT1mdW5jdGlvbigpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyW3RdLmFwcGx5KHIsYXJndW1lbnRzKSxpKTpyW3RdKCl9fXJldHVybiByLmludmVydCYmKGkuaW52ZXJ0PWZ1bmN0aW9uKHQpe3JldHVybiBTdChyLmludmVydCh0KSl9KSxpLnN0cmVhbT1mdW5jdGlvbih0KXt2YXIgZT1yLnN0cmVhbSh0KSxpPW4uc3RyZWFtKHtwb2ludDpmdW5jdGlvbih0LHIpe2UucG9pbnQodC8yLFMoZygtci8yKk0pKSpBKX0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7ZS5saW5lU3RhcnQoKX0sbGluZUVuZDpmdW5jdGlvbigpe2UubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtlLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7ZS5wb2x5Z29uRW5kKCl9fSk7cmV0dXJuIGkuc3BoZXJlPWUuc3BoZXJlLGl9LGkucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuLnJvdGF0ZSh0KSxpKTpuLnJvdGF0ZSgpfSxpLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oci5jZW50ZXIoTXQodCkpLGkpOlN0KHIuY2VudGVyKCkpfSxhKCJhbmdsZSIpLGEoImNsaXBBbmdsZSIpLGEoImNsaXBFeHRlbnQiKSxhKCJmaXRFeHRlbnQiKSxhKCJmaXRIZWlnaHQiKSxhKCJmaXRTaXplIiksYSgiZml0V2lkdGgiKSxhKCJzY2FsZSIpLGEoInRyYW5zbGF0ZSIpLGEoInByZWNpc2lvbiIpLGkuc2NhbGUoMjQ5LjUpfSx0Lmdlb0dpbmdlcnk9ZnVuY3Rpb24oKXt2YXIgdD02LHI9MzAqTSxuPW8ociksaT1tKHIpLHM9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihFdCksbD1zKHIsdCksYz1sLnN0cmVhbSx1PS1vKC4wMSpNKSxmPW0oLjAxKk0pO3JldHVybiBsLnJhZGl1cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1vKHI9ZSpNKSxpPW0ocikscyhyLHQpKTpyKkF9LGwubG9iZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cyhyLHQ9K2UpOnR9LGwuc3RyZWFtPWZ1bmN0aW9uKGUpe3ZhciByPWwucm90YXRlKCkscz1jKGUpLGg9KGwucm90YXRlKFswLDBdKSxjKGUpKTtyZXR1cm4gbC5yb3RhdGUocikscy5zcGhlcmU9ZnVuY3Rpb24oKXtoLnBvbHlnb25TdGFydCgpLGgubGluZVN0YXJ0KCk7Zm9yKHZhciBlPTAscj0yKnkvdCxzPTA7ZTx0OysrZSxzLT1yKWgucG9pbnQoYShmKm8ocyksdSkqQSxTKGYqbShzKSkqQSksaC5wb2ludChhKGkqbyhzLXIvMiksbikqQSxTKGkqbShzLXIvMikpKkEpO2gubGluZUVuZCgpLGgucG9seWdvbkVuZCgpfSxzfSxsLnJvdGF0ZShbOTAsLTQwXSkuc2NhbGUoOTEuNzA5NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0dpbmdlcnlSYXc9RXQsdC5nZW9HaW56YnVyZzQ9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKEl0KS5zY2FsZSgxNDkuOTk1KX0sdC5nZW9HaW56YnVyZzRSYXc9SXQsdC5nZW9HaW56YnVyZzU9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKE90KS5zY2FsZSgxNTMuOTMpfSx0Lmdlb0dpbnpidXJnNVJhdz1PdCx0Lmdlb0dpbnpidXJnNj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oenQpLnNjYWxlKDEzMC45NDUpfSx0Lmdlb0dpbnpidXJnNlJhdz16dCx0Lmdlb0dpbnpidXJnOD1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oRHQpLnNjYWxlKDEzMS43NDcpfSx0Lmdlb0dpbnpidXJnOFJhdz1EdCx0Lmdlb0dpbnpidXJnOT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oUnQpLnNjYWxlKDEzMS4wODcpfSx0Lmdlb0dpbnpidXJnOVJhdz1SdCx0Lmdlb0dyaW5nb3J0ZW49ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKEZ0KEJ0KSkuc2NhbGUoMjM5Ljc1KX0sdC5nZW9HcmluZ29ydGVuUmF3PUJ0LHQuZ2VvR3V5b3U9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKEZ0KFV0KSkuc2NhbGUoMTUxLjQ5Nil9LHQuZ2VvR3V5b3VSYXc9VXQsdC5nZW9IYW1tZXI9ZnVuY3Rpb24oKXt2YXIgdD0yLHI9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihqKSxuPXIodCk7cmV0dXJuIG4uY29lZmZpY2llbnQ9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cih0PStlKTp0fSxuLnNjYWxlKDE2OS41MjkpfSx0Lmdlb0hhbW1lclJhdz1qLHQuZ2VvSGFtbWVyUmV0cm9hemltdXRoYWw9ZnVuY3Rpb24oKXt2YXIgdD0wLHI9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihWdCksbj1yKHQpLGk9bi5yb3RhdGUsYT1uLnN0cmVhbSxvPWUuZ2VvQ2lyY2xlKCk7cmV0dXJuIG4ucGFyYWxsZWw9ZnVuY3Rpb24oZSl7aWYoIWFyZ3VtZW50cy5sZW5ndGgpcmV0dXJuIHQqQTt2YXIgaT1uLnJvdGF0ZSgpO3JldHVybiByKHQ9ZSpNKS5yb3RhdGUoaSl9LG4ucm90YXRlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpLmNhbGwobixbZVswXSxlWzFdLXQqQV0pLG8uY2VudGVyKFstZVswXSwtZVsxXV0pLG4pOigoZT1pLmNhbGwobikpWzFdKz10KkEsZSl9LG4uc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybih0PWEodCkpLnNwaGVyZT1mdW5jdGlvbigpe3QucG9seWdvblN0YXJ0KCk7dmFyIGUscj1vLnJhZGl1cyg4OS45OSkoKS5jb29yZGluYXRlc1swXSxuPXIubGVuZ3RoLTEsaT0tMTtmb3IodC5saW5lU3RhcnQoKTsrK2k8bjspdC5wb2ludCgoZT1yW2ldKVswXSxlWzFdKTtmb3IodC5saW5lRW5kKCksbj0ocj1vLnJhZGl1cyg5MC4wMSkoKS5jb29yZGluYXRlc1swXSkubGVuZ3RoLTEsdC5saW5lU3RhcnQoKTstLWk+PTA7KXQucG9pbnQoKGU9cltpXSlbMF0sZVsxXSk7dC5saW5lRW5kKCksdC5wb2x5Z29uRW5kKCl9LHR9LG4uc2NhbGUoNzkuNDE4NykucGFyYWxsZWwoNDUpLmNsaXBBbmdsZSgxNzkuOTk5KX0sdC5nZW9IYW1tZXJSZXRyb2F6aW11dGhhbFJhdz1WdCx0Lmdlb0hlYWxwaXg9ZnVuY3Rpb24oKXt2YXIgdD00LG49ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihZdCksaT1uKHQpLGE9aS5zdHJlYW07cmV0dXJuIGkubG9iZXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bih0PStlKTp0fSxpLnN0cmVhbT1mdW5jdGlvbihuKXt2YXIgbz1pLnJvdGF0ZSgpLHM9YShuKSxsPShpLnJvdGF0ZShbMCwwXSksYShuKSk7cmV0dXJuIGkucm90YXRlKG8pLHMuc3BoZXJlPWZ1bmN0aW9uKCl7dmFyIG4saTtlLmdlb1N0cmVhbSgobj0xODAvdCxpPVtdLmNvbmNhdChyLnJhbmdlKC0xODAsMTgwK24vMixuKS5tYXAoV3QpLHIucmFuZ2UoMTgwLC0xODAtbi8yLC1uKS5tYXAoWHQpKSx7dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6WzE4MD09PW4/aS5tYXAoWnQpOmldfSksbCl9LHN9LGkuc2NhbGUoMjM5Ljc1KX0sdC5nZW9IZWFscGl4UmF3PVl0LHQuZ2VvSGlsbD1mdW5jdGlvbigpe3ZhciB0PTEscj1lLmdlb1Byb2plY3Rpb25NdXRhdG9yKEp0KSxuPXIodCk7cmV0dXJuIG4ucmF0aW89ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cih0PStlKTp0fSxuLnNjYWxlKDE2Ny43NzQpLmNlbnRlcihbMCwxOC42N10pfSx0Lmdlb0hpbGxSYXc9SnQsdC5nZW9Ib21vbG9zaW5lPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihRdCkuc2NhbGUoMTUyLjYzKX0sdC5nZW9Ib21vbG9zaW5lUmF3PVF0LHQuZ2VvSHVmbmFnZWw9ZnVuY3Rpb24oKXt2YXIgdD0xLHI9MCxuPTQ1Kk0saT0yLGE9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcigkdCksbz1hKHQscixuLGkpO3JldHVybiBvLmE9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/YSh0PStlLHIsbixpKTp0fSxvLmI9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/YSh0LHI9K2UsbixpKTpyfSxvLnBzaU1heD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9hKHQscixuPStlKk0saSk6bipBfSxvLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2EodCxyLG4saT0rZSk6aX0sby5zY2FsZSgxODAuNzM5KX0sdC5nZW9IdWZuYWdlbFJhdz0kdCx0Lmdlb0h5cGVyZWxsaXB0aWNhbD1mdW5jdGlvbigpe3ZhciB0PTAscj0yLjUsbj0xLjE4MzEzNixpPWUuZ2VvUHJvamVjdGlvbk11dGF0b3IoZWUpLGE9aSh0LHIsbik7cmV0dXJuIGEuYWxwaGE9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aSh0PStlLHIsbik6dH0sYS5rPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2kodCxyPStlLG4pOnJ9LGEuZ2FtbWE9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/aSh0LHIsbj0rZSk6bn0sYS5zY2FsZSgxNTIuNjMpfSx0Lmdlb0h5cGVyZWxsaXB0aWNhbFJhdz1lZSx0Lmdlb0ludGVycnVwdD1hZSx0Lmdlb0ludGVycnVwdGVkQm9nZ3M9ZnVuY3Rpb24oKXtyZXR1cm4gYWUoSixvZSkuc2NhbGUoMTYwLjg1Nyl9LHQuZ2VvSW50ZXJydXB0ZWRIb21vbG9zaW5lPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKFF0LHNlKS5zY2FsZSgxNTIuNjMpfSx0Lmdlb0ludGVycnVwdGVkTW9sbHdlaWRlPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKFcsbGUpLnNjYWxlKDE2OS41MjkpfSx0Lmdlb0ludGVycnVwdGVkTW9sbHdlaWRlSGVtaXNwaGVyZXM9ZnVuY3Rpb24oKXtyZXR1cm4gYWUoVyxjZSkuc2NhbGUoMTY5LjUyOSkucm90YXRlKFsyMCwwXSl9LHQuZ2VvSW50ZXJydXB0ZWRTaW51TW9sbHdlaWRlPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKEt0LHVlLEgpLnJvdGF0ZShbLTIwLC01NV0pLnNjYWxlKDE2NC4yNjMpLmNlbnRlcihbMCwtNS40MDM2XSl9LHQuZ2VvSW50ZXJydXB0ZWRTaW51c29pZGFsPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKFEsZmUpLnNjYWxlKDE1Mi42Mykucm90YXRlKFstMjAsMF0pfSx0Lmdlb0thdnJheXNraXk3PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihoZSkuc2NhbGUoMTU4LjgzNyl9LHQuZ2VvS2F2cmF5c2tpeTdSYXc9aGUsdC5nZW9MYWdyYW5nZT1mdW5jdGlvbigpe3ZhciB0PS41LHI9ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihwZSksbj1yKHQpO3JldHVybiBuLnNwYWNpbmc9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/cih0PStlKTp0fSxuLnNjYWxlKDEyNC43NSl9LHQuZ2VvTGFncmFuZ2VSYXc9cGUsdC5nZW9MYXJyaXZlZT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24obWUpLnNjYWxlKDk3LjI2NzIpfSx0Lmdlb0xhcnJpdmVlUmF3PW1lLHQuZ2VvTGFza293c2tpPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihnZSkuc2NhbGUoMTM5Ljk4KX0sdC5nZW9MYXNrb3dza2lSYXc9Z2UsdC5nZW9MaXR0cm93PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbih2ZSkuc2NhbGUoMTQ0LjA0OSkuY2xpcEFuZ2xlKDg5Ljk5OSl9LHQuZ2VvTGl0dHJvd1Jhdz12ZSx0Lmdlb0xveGltdXRoYWw9ZnVuY3Rpb24oKXtyZXR1cm4gSyh5ZSkucGFyYWxsZWwoNDApLnNjYWxlKDE1OC44MzcpfSx0Lmdlb0xveGltdXRoYWxSYXc9eWUsdC5nZW9NaWxsZXI9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKHhlKS5zY2FsZSgxMDguMzE4KX0sdC5nZW9NaWxsZXJSYXc9eGUsdC5nZW9Nb2RpZmllZFN0ZXJlb2dyYXBoaWM9TWUsdC5nZW9Nb2RpZmllZFN0ZXJlb2dyYXBoaWNSYXc9YmUsdC5nZW9Nb2RpZmllZFN0ZXJlb2dyYXBoaWNBbGFza2E9ZnVuY3Rpb24oKXtyZXR1cm4gTWUoX2UsWzE1MiwtNjRdKS5zY2FsZSgxNDAwKS5jZW50ZXIoWy0xNjAuOTA4LDYyLjQ4NjRdKS5jbGlwQW5nbGUoMzApLmFuZ2xlKDcuOCl9LHQuZ2VvTW9kaWZpZWRTdGVyZW9ncmFwaGljR3M0OD1mdW5jdGlvbigpe3JldHVybiBNZSh3ZSxbOTUsLTM4XSkuc2NhbGUoMWUzKS5jbGlwQW5nbGUoNTUpLmNlbnRlcihbLTk2LjU1NjMsMzguODY3NV0pfSx0Lmdlb01vZGlmaWVkU3RlcmVvZ3JhcGhpY0dzNTA9ZnVuY3Rpb24oKXtyZXR1cm4gTWUoVGUsWzEyMCwtNDVdKS5zY2FsZSgzNTkuNTEzKS5jbGlwQW5nbGUoNTUpLmNlbnRlcihbLTExNy40NzQsNTMuMDYyOF0pfSx0Lmdlb01vZGlmaWVkU3RlcmVvZ3JhcGhpY01pbGxlcj1mdW5jdGlvbigpe3JldHVybiBNZShrZSxbLTIwLC0xOF0pLnNjYWxlKDIwOS4wOTEpLmNlbnRlcihbMjAsMTYuNzIxNF0pLmNsaXBBbmdsZSg4Mil9LHQuZ2VvTW9kaWZpZWRTdGVyZW9ncmFwaGljTGVlPWZ1bmN0aW9uKCl7cmV0dXJuIE1lKEFlLFsxNjUsMTBdKS5zY2FsZSgyNTApLmNsaXBBbmdsZSgxMzApLmNlbnRlcihbLTE2NSwtMTBdKX0sdC5nZW9Nb2xsd2VpZGU9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKFcpLnNjYWxlKDE2OS41MjkpfSx0Lmdlb01vbGx3ZWlkZVJhdz1XLHQuZ2VvTXRGbGF0UG9sYXJQYXJhYm9saWM9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKExlKS5zY2FsZSgxNjQuODU5KX0sdC5nZW9NdEZsYXRQb2xhclBhcmFib2xpY1Jhdz1MZSx0Lmdlb010RmxhdFBvbGFyUXVhcnRpYz1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oQ2UpLnNjYWxlKDE4OC4yMDkpfSx0Lmdlb010RmxhdFBvbGFyUXVhcnRpY1Jhdz1DZSx0Lmdlb010RmxhdFBvbGFyU2ludXNvaWRhbD1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oUGUpLnNjYWxlKDE2Ni41MTgpfSx0Lmdlb010RmxhdFBvbGFyU2ludXNvaWRhbFJhdz1QZSx0Lmdlb05hdHVyYWxFYXJ0aDI9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKEllKS5zY2FsZSgxNzUuMjk1KX0sdC5nZW9OYXR1cmFsRWFydGgyUmF3PUllLHQuZ2VvTmVsbEhhbW1lcj1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oT2UpLnNjYWxlKDE1Mi42Myl9LHQuZ2VvTmVsbEhhbW1lclJhdz1PZSx0Lmdlb0ludGVycnVwdGVkUXVhcnRpY0F1dGhhbGljPWZ1bmN0aW9uKCl7cmV0dXJuIGFlKGooMS8wKSx6ZSkucm90YXRlKFsyMCwwXSkuc2NhbGUoMTUyLjYzKX0sdC5nZW9OaWNvbG9zaT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oRGUpLnNjYWxlKDEyNy4yNjcpfSx0Lmdlb05pY29sb3NpUmF3PURlLHQuZ2VvUGF0dGVyc29uPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihSZSkuc2NhbGUoMTM5LjMxOSl9LHQuZ2VvUGF0dGVyc29uUmF3PVJlLHQuZ2VvUG9seWNvbmljPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihGZSkuc2NhbGUoMTAzLjc0KX0sdC5nZW9Qb2x5Y29uaWNSYXc9RmUsdC5nZW9Qb2x5aGVkcmFsPVZlLHQuZ2VvUG9seWhlZHJhbEJ1dHRlcmZseT1mdW5jdGlvbih0KXt0PXR8fGZ1bmN0aW9uKHQpe3ZhciByPWUuZ2VvQ2VudHJvaWQoe3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOnR9KTtyZXR1cm4gZS5nZW9Hbm9tb25pYygpLnNjYWxlKDEpLnRyYW5zbGF0ZShbMCwwXSkucm90YXRlKFstclswXSwtclsxXV0pfTt2YXIgcj1ZZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybntmYWNlOmUscHJvamVjdDp0KGUpfX0pKTtyZXR1cm5bLTEsMCwwLDEsMCwxLDQsNV0uZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt2YXIgbj1yW3RdO24mJihuLmNoaWxkcmVufHwobi5jaGlsZHJlbj1bXSkpLnB1c2gocltlXSl9KSksVmUoclswXSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gclt0PC15LzI/ZTwwPzY6NDp0PDA/ZTwwPzI6MDp0PHkvMj9lPDA/MzoxOmU8MD83OjVdfSkpLmFuZ2xlKC0zMCkuc2NhbGUoMTAxLjg1OCkuY2VudGVyKFswLDQ1XSl9LHQuZ2VvUG9seWhlZHJhbENvbGxpZ25vbj1mdW5jdGlvbih0KXt0PXR8fGZ1bmN0aW9uKHQpe3ZhciByPWUuZ2VvQ2VudHJvaWQoe3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOnR9KTtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKFhlKS50cmFuc2xhdGUoWzAsMF0pLnNjYWxlKDEpLnJvdGF0ZShyWzFdPjA/Wy1yWzBdLDBdOlsxODAtclswXSwxODBdKX07dmFyIHI9WWUubWFwKChmdW5jdGlvbihlKXtyZXR1cm57ZmFjZTplLHByb2plY3Q6dChlKX19KSk7cmV0dXJuWy0xLDAsMCwxLDAsMSw0LDVdLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIG49clt0XTtuJiYobi5jaGlsZHJlbnx8KG4uY2hpbGRyZW49W10pKS5wdXNoKHJbZV0pfSkpLFZlKHJbMF0sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHJbdDwteS8yP2U8MD82OjQ6dDwwP2U8MD8yOjA6dDx5LzI/ZTwwPzM6MTplPDA/Nzo1XX0pKS5hbmdsZSgtMzApLnNjYWxlKDEyMS45MDYpLmNlbnRlcihbMCw0OC41OTA0XSl9LHQuZ2VvUG9seWhlZHJhbFdhdGVybWFuPWZ1bmN0aW9uKHQpe3Q9dHx8ZnVuY3Rpb24odCl7dmFyIHI9Nj09PXQubGVuZ3RoP2UuZ2VvQ2VudHJvaWQoe3R5cGU6Ik11bHRpUG9pbnQiLGNvb3JkaW5hdGVzOnR9KTp0WzBdO3JldHVybiBlLmdlb0dub21vbmljKCkuc2NhbGUoMSkudHJhbnNsYXRlKFswLDBdKS5yb3RhdGUoWy1yWzBdLC1yWzFdXSl9O3ZhciByPVllLm1hcCgoZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9dC5tYXAoS2UpLG49ci5sZW5ndGgsaT1yW24tMV0sYT1bXSxvPTA7bzxuOysrbyllPXJbb10sYS5wdXNoKEplKFsuOTQ4NjgzMjk4MDUwNTEzOCppWzBdKy4zMTYyMjc3NjYwMTY4Mzc5NCplWzBdLC45NDg2ODMyOTgwNTA1MTM4KmlbMV0rLjMxNjIyNzc2NjAxNjgzNzk0KmVbMV0sLjk0ODY4MzI5ODA1MDUxMzgqaVsyXSsuMzE2MjI3NzY2MDE2ODM3OTQqZVsyXV0pLEplKFsuOTQ4NjgzMjk4MDUwNTEzOCplWzBdKy4zMTYyMjc3NjYwMTY4Mzc5NCppWzBdLC45NDg2ODMyOTgwNTA1MTM4KmVbMV0rLjMxNjIyNzc2NjAxNjgzNzk0KmlbMV0sLjk0ODY4MzI5ODA1MDUxMzgqZVsyXSsuMzE2MjI3NzY2MDE2ODM3OTQqaVsyXV0pKSxpPWU7cmV0dXJuIGF9KSksbj1bXSxpPVstMSwwLDAsMSwwLDEsNCw1XTtyLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBhLG8scz1ZZVtlXSxsPXMubGVuZ3RoLGM9bltlXT1bXSx1PTA7dTxsOysrdSlyLnB1c2goW3NbdV0sdFsoMip1KzIpJSgyKmwpXSx0WygyKnUrMSklKDIqbCldXSksaS5wdXNoKGUpLGMucHVzaCgoYT1LZSh0WygyKnUrMiklKDIqbCldKSxvPUtlKHRbKDIqdSsxKSUoMipsKV0pLFthWzFdKm9bMl0tYVsyXSpvWzFdLGFbMl0qb1swXS1hWzBdKm9bMl0sYVswXSpvWzFdLWFbMV0qb1swXV0pKX0pKTt2YXIgYT1yLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJue3Byb2plY3Q6dChlKSxmYWNlOmV9fSkpO3JldHVybiBpLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dmFyIHI9YVt0XTtyJiYoci5jaGlsZHJlbnx8KHIuY2hpbGRyZW49W10pKS5wdXNoKGFbZV0pfSkpLFZlKGFbMF0sKGZ1bmN0aW9uKHQsZSl7dmFyIHI9byhlKSxpPVtyKm8odCksciptKHQpLG0oZSldLHM9dDwteS8yP2U8MD82OjQ6dDwwP2U8MD8yOjA6dDx5LzI/ZTwwPzM6MTplPDA/Nzo1LGw9bltzXTtyZXR1cm4gYVtaZShsWzBdLGkpPDA/OCszKnM6WmUobFsxXSxpKTwwPzgrMypzKzE6WmUobFsyXSxpKTwwPzgrMypzKzI6c119KSkuYW5nbGUoLTMwKS5zY2FsZSgxMTAuNjI1KS5jZW50ZXIoWzAsNDVdKX0sdC5nZW9Qcm9qZWN0PWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1lLnN0cmVhbTtpZighbil0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgcHJvamVjdGlvbiIpO3N3aXRjaCh0JiZ0LnR5cGUpe2Nhc2UiRmVhdHVyZSI6cj10cjticmVhaztjYXNlIkZlYXR1cmVDb2xsZWN0aW9uIjpyPSRlO2JyZWFrO2RlZmF1bHQ6cj1lcn1yZXR1cm4gcih0LG4pfSx0Lmdlb0dyaW5nb3J0ZW5RdWluY3VuY2lhbD1mdW5jdGlvbigpe3JldHVybiBzcihCdCkuc2NhbGUoMTc2LjQyMyl9LHQuZ2VvUGVpcmNlUXVpbmN1bmNpYWw9bHIsdC5nZW9QaWVyY2VRdWluY3VuY2lhbD1scix0Lmdlb1F1YW50aXplPWZ1bmN0aW9uKHQsZSl7aWYoISgwPD0oZT0rZSkmJmU8PTIwKSl0aHJvdyBuZXcgRXJyb3IoImludmFsaWQgZGlnaXRzIik7ZnVuY3Rpb24gcih0KXt2YXIgcj10Lmxlbmd0aCxuPTIsaT1uZXcgQXJyYXkocik7Zm9yKGlbMF09K3RbMF0udG9GaXhlZChlKSxpWzFdPSt0WzFdLnRvRml4ZWQoZSk7bjxyOylpW25dPXRbbl0sKytuO3JldHVybiBpfWZ1bmN0aW9uIG4odCl7cmV0dXJuIHQubWFwKHIpfWZ1bmN0aW9uIGkodCl7Zm9yKHZhciBlPXIodFswXSksbj1bZV0saT0xO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT1yKHRbaV0pOyhhLmxlbmd0aD4yfHxhWzBdIT1lWzBdfHxhWzFdIT1lWzFdKSYmKG4ucHVzaChhKSxlPWEpfXJldHVybiAxPT09bi5sZW5ndGgmJnQubGVuZ3RoPjEmJm4ucHVzaChyKHRbdC5sZW5ndGgtMV0pKSxufWZ1bmN0aW9uIGEodCl7cmV0dXJuIHQubWFwKGkpfWZ1bmN0aW9uIG8odCl7aWYobnVsbD09dClyZXR1cm4gdDt2YXIgZTtzd2l0Y2godC50eXBlKXtjYXNlIkdlb21ldHJ5Q29sbGVjdGlvbiI6ZT17dHlwZToiR2VvbWV0cnlDb2xsZWN0aW9uIixnZW9tZXRyaWVzOnQuZ2VvbWV0cmllcy5tYXAobyl9O2JyZWFrO2Nhc2UiUG9pbnQiOmU9e3R5cGU6IlBvaW50Iixjb29yZGluYXRlczpyKHQuY29vcmRpbmF0ZXMpfTticmVhaztjYXNlIk11bHRpUG9pbnQiOmU9e3R5cGU6dC50eXBlLGNvb3JkaW5hdGVzOm4odC5jb29yZGluYXRlcyl9O2JyZWFrO2Nhc2UiTGluZVN0cmluZyI6ZT17dHlwZTp0LnR5cGUsY29vcmRpbmF0ZXM6aSh0LmNvb3JkaW5hdGVzKX07YnJlYWs7Y2FzZSJNdWx0aUxpbmVTdHJpbmciOmNhc2UiUG9seWdvbiI6ZT17dHlwZTp0LnR5cGUsY29vcmRpbmF0ZXM6YSh0LmNvb3JkaW5hdGVzKX07YnJlYWs7Y2FzZSJNdWx0aVBvbHlnb24iOmU9e3R5cGU6Ik11bHRpUG9seWdvbiIsY29vcmRpbmF0ZXM6dC5jb29yZGluYXRlcy5tYXAoYSl9O2JyZWFrO2RlZmF1bHQ6cmV0dXJuIHR9cmV0dXJuIG51bGwhPXQuYmJveCYmKGUuYmJveD10LmJib3gpLGV9ZnVuY3Rpb24gcyh0KXt2YXIgZT17dHlwZToiRmVhdHVyZSIscHJvcGVydGllczp0LnByb3BlcnRpZXMsZ2VvbWV0cnk6byh0Lmdlb21ldHJ5KX07cmV0dXJuIG51bGwhPXQuaWQmJihlLmlkPXQuaWQpLG51bGwhPXQuYmJveCYmKGUuYmJveD10LmJib3gpLGV9aWYobnVsbCE9dClzd2l0Y2godC50eXBlKXtjYXNlIkZlYXR1cmUiOnJldHVybiBzKHQpO2Nhc2UiRmVhdHVyZUNvbGxlY3Rpb24iOnZhciBsPXt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiIsZmVhdHVyZXM6dC5mZWF0dXJlcy5tYXAocyl9O3JldHVybiBudWxsIT10LmJib3gmJihsLmJib3g9dC5iYm94KSxsO2RlZmF1bHQ6cmV0dXJuIG8odCl9cmV0dXJuIHR9LHQuZ2VvUXVpbmN1bmNpYWw9c3IsdC5nZW9SZWN0YW5ndWxhclBvbHljb25pYz1mdW5jdGlvbigpe3JldHVybiBLKGNyKS5zY2FsZSgxMzEuMjE1KX0sdC5nZW9SZWN0YW5ndWxhclBvbHljb25pY1Jhdz1jcix0Lmdlb1JvYmluc29uPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihmcikuc2NhbGUoMTUyLjYzKX0sdC5nZW9Sb2JpbnNvblJhdz1mcix0Lmdlb1NhdGVsbGl0ZT1mdW5jdGlvbigpe3ZhciB0PTIscj0wLG49ZS5nZW9Qcm9qZWN0aW9uTXV0YXRvcihociksaT1uKHQscik7cmV0dXJuIGkuZGlzdGFuY2U9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/bih0PStlLHIpOnR9LGkudGlsdD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9uKHQscj1lKk0pOnIqQX0saS5zY2FsZSg0MzIuMTQ3KS5jbGlwQW5nbGUoRSgxL3QpKkEtMWUtNil9LHQuZ2VvU2F0ZWxsaXRlUmF3PWhyLHQuZ2VvU2ludU1vbGx3ZWlkZT1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oS3QpLnJvdGF0ZShbLTIwLC01NV0pLnNjYWxlKDE2NC4yNjMpLmNlbnRlcihbMCwtNS40MDM2XSl9LHQuZ2VvU2ludU1vbGx3ZWlkZVJhdz1LdCx0Lmdlb1NpbnVzb2lkYWw9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKFEpLnNjYWxlKDE1Mi42Myl9LHQuZ2VvU2ludXNvaWRhbFJhdz1RLHQuZ2VvU3RpdGNoPWZ1bmN0aW9uKHQpe2lmKG51bGw9PXQpcmV0dXJuIHQ7c3dpdGNoKHQudHlwZSl7Y2FzZSJGZWF0dXJlIjpyZXR1cm4gd3IodCk7Y2FzZSJGZWF0dXJlQ29sbGVjdGlvbiI6dmFyIGU9e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczp0LmZlYXR1cmVzLm1hcCh3cil9O3JldHVybiBudWxsIT10LmJib3gmJihlLmJib3g9dC5iYm94KSxlO2RlZmF1bHQ6cmV0dXJuIFRyKHQpfX0sdC5nZW9UaW1lcz1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oa3IpLnNjYWxlKDE0Ni4xNTMpfSx0Lmdlb1RpbWVzUmF3PWtyLHQuZ2VvVHdvUG9pbnRBemltdXRoYWw9U3IsdC5nZW9Ud29Qb2ludEF6aW11dGhhbFJhdz1Ncix0Lmdlb1R3b1BvaW50QXppbXV0aGFsVXNhPWZ1bmN0aW9uKCl7cmV0dXJuIFNyKFstMTU4LDIxLjVdLFstNzcsMzldKS5jbGlwQW5nbGUoNjApLnNjYWxlKDQwMCl9LHQuZ2VvVHdvUG9pbnRFcXVpZGlzdGFudD1Mcix0Lmdlb1R3b1BvaW50RXF1aWRpc3RhbnRSYXc9RXIsdC5nZW9Ud29Qb2ludEVxdWlkaXN0YW50VXNhPWZ1bmN0aW9uKCl7cmV0dXJuIExyKFstMTU4LDIxLjVdLFstNzcsMzldKS5jbGlwQW5nbGUoMTMwKS5zY2FsZSgxMjIuNTcxKX0sdC5nZW9WYW5EZXJHcmludGVuPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihDcikuc2NhbGUoNzkuNDE4Myl9LHQuZ2VvVmFuRGVyR3JpbnRlblJhdz1Dcix0Lmdlb1ZhbkRlckdyaW50ZW4yPWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihQcikuc2NhbGUoNzkuNDE4Myl9LHQuZ2VvVmFuRGVyR3JpbnRlbjJSYXc9UHIsdC5nZW9WYW5EZXJHcmludGVuMz1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oSXIpLnNjYWxlKDc5LjQxODMpfSx0Lmdlb1ZhbkRlckdyaW50ZW4zUmF3PUlyLHQuZ2VvVmFuRGVyR3JpbnRlbjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKE9yKS5zY2FsZSgxMjcuMTYpfSx0Lmdlb1ZhbkRlckdyaW50ZW40UmF3PU9yLHQuZ2VvV2FnbmVyPURyLHQuZ2VvV2FnbmVyNz1mdW5jdGlvbigpe3JldHVybiBEcigpLnBvbGVsaW5lKDY1KS5wYXJhbGxlbHMoNjApLmluZmxhdGlvbigwKS5yYXRpbygyMDApLnNjYWxlKDE3Mi42MzMpfSx0Lmdlb1dhZ25lclJhdz16cix0Lmdlb1dhZ25lcjQ9ZnVuY3Rpb24oKXtyZXR1cm4gZS5nZW9Qcm9qZWN0aW9uKEJyKS5zY2FsZSgxNzYuODQpfSx0Lmdlb1dhZ25lcjRSYXc9QnIsdC5nZW9XYWduZXI2PWZ1bmN0aW9uKCl7cmV0dXJuIGUuZ2VvUHJvamVjdGlvbihOcikuc2NhbGUoMTUyLjYzKX0sdC5nZW9XYWduZXI2UmF3PU5yLHQuZ2VvV2llY2hlbD1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oanIpLnJvdGF0ZShbMCwtOTAsNDVdKS5zY2FsZSgxMjQuNzUpLmNsaXBBbmdsZSgxNzkuOTk5KX0sdC5nZW9XaWVjaGVsUmF3PWpyLHQuZ2VvV2lua2VsMz1mdW5jdGlvbigpe3JldHVybiBlLmdlb1Byb2plY3Rpb24oVXIpLnNjYWxlKDE1OC44MzcpfSx0Lmdlb1dpbmtlbDNSYXc9VXIsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7ImQzLWFycmF5IjoxNTUsImQzLWdlbyI6MTYyfV0sMTYyOltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKG4saSl7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2kocix0KCJkMy1hcnJheSIpKTppKChuPW58fHNlbGYpLmQzPW4uZDN8fHt9LG4uZDMpfSh0aGlzLChmdW5jdGlvbih0LGUpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKCl7cmV0dXJuIG5ldyBufWZ1bmN0aW9uIG4oKXt0aGlzLnJlc2V0KCl9bi5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOm4scmVzZXQ6ZnVuY3Rpb24oKXt0aGlzLnM9dGhpcy50PTB9LGFkZDpmdW5jdGlvbih0KXthKGksdCx0aGlzLnQpLGEodGhpcyxpLnMsdGhpcy5zKSx0aGlzLnM/dGhpcy50Kz1pLnQ6dGhpcy5zPWkudH0sdmFsdWVPZjpmdW5jdGlvbigpe3JldHVybiB0aGlzLnN9fTt2YXIgaT1uZXcgbjtmdW5jdGlvbiBhKHQsZSxyKXt2YXIgbj10LnM9ZStyLGk9bi1lLGE9bi1pO3QudD1lLWErKHItaSl9dmFyIG89MWUtNixzPU1hdGguUEksbD1zLzIsYz1zLzQsdT0yKnMsZj0xODAvcyxoPXMvMTgwLHA9TWF0aC5hYnMsZD1NYXRoLmF0YW4sbT1NYXRoLmF0YW4yLGc9TWF0aC5jb3Msdj1NYXRoLmNlaWwseT1NYXRoLmV4cCx4PU1hdGgubG9nLGI9TWF0aC5wb3csXz1NYXRoLnNpbix3PU1hdGguc2lnbnx8ZnVuY3Rpb24odCl7cmV0dXJuIHQ+MD8xOnQ8MD8tMTowfSxUPU1hdGguc3FydCxrPU1hdGgudGFuO2Z1bmN0aW9uIEEodCl7cmV0dXJuIHQ+MT8wOnQ8LTE/czpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdD4xP2w6dDwtMT8tbDpNYXRoLmFzaW4odCl9ZnVuY3Rpb24gUyh0KXtyZXR1cm4odD1fKHQvMikpKnR9ZnVuY3Rpb24gRSgpe31mdW5jdGlvbiBMKHQsZSl7dCYmUC5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpJiZQW3QudHlwZV0odCxlKX12YXIgQz17RmVhdHVyZTpmdW5jdGlvbih0LGUpe0wodC5nZW9tZXRyeSxlKX0sRmVhdHVyZUNvbGxlY3Rpb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5mZWF0dXJlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KUwocltuXS5nZW9tZXRyeSxlKX19LFA9e1NwaGVyZTpmdW5jdGlvbih0LGUpe2Uuc3BoZXJlKCl9LFBvaW50OmZ1bmN0aW9uKHQsZSl7dD10LmNvb3JkaW5hdGVzLGUucG9pbnQodFswXSx0WzFdLHRbMl0pfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOyl0PXJbbl0sZS5wb2ludCh0WzBdLHRbMV0sdFsyXSl9LExpbmVTdHJpbmc6ZnVuY3Rpb24odCxlKXtJKHQuY29vcmRpbmF0ZXMsZSwwKX0sTXVsdGlMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylJKHJbbl0sZSwwKX0sUG9seWdvbjpmdW5jdGlvbih0LGUpe08odC5jb29yZGluYXRlcyxlKX0sTXVsdGlQb2x5Z29uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylPKHJbbl0sZSl9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmdlb21ldHJpZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylMKHJbbl0sZSl9fTtmdW5jdGlvbiBJKHQsZSxyKXt2YXIgbixpPS0xLGE9dC5sZW5ndGgtcjtmb3IoZS5saW5lU3RhcnQoKTsrK2k8YTspbj10W2ldLGUucG9pbnQoblswXSxuWzFdLG5bMl0pO2UubGluZUVuZCgpfWZ1bmN0aW9uIE8odCxlKXt2YXIgcj0tMSxuPXQubGVuZ3RoO2ZvcihlLnBvbHlnb25TdGFydCgpOysrcjxuOylJKHRbcl0sZSwxKTtlLnBvbHlnb25FbmQoKX1mdW5jdGlvbiB6KHQsZSl7dCYmQy5oYXNPd25Qcm9wZXJ0eSh0LnR5cGUpP0NbdC50eXBlXSh0LGUpOkwodCxlKX12YXIgRCxSLEYsQixOLGo9cigpLFU9cigpLFY9e3BvaW50OkUsbGluZVN0YXJ0OkUsbGluZUVuZDpFLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe2oucmVzZXQoKSxWLmxpbmVTdGFydD1ILFYubGluZUVuZD1xfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dmFyIHQ9K2o7VS5hZGQodDwwP3UrdDp0KSx0aGlzLmxpbmVTdGFydD10aGlzLmxpbmVFbmQ9dGhpcy5wb2ludD1FfSxzcGhlcmU6ZnVuY3Rpb24oKXtVLmFkZCh1KX19O2Z1bmN0aW9uIEgoKXtWLnBvaW50PUd9ZnVuY3Rpb24gcSgpe1koRCxSKX1mdW5jdGlvbiBHKHQsZSl7Vi5wb2ludD1ZLEQ9dCxSPWUsRj10Kj1oLEI9ZyhlPShlKj1oKS8yK2MpLE49XyhlKX1mdW5jdGlvbiBZKHQsZSl7dmFyIHI9KHQqPWgpLUYsbj1yPj0wPzE6LTEsaT1uKnIsYT1nKGU9KGUqPWgpLzIrYyksbz1fKGUpLHM9TipvLGw9QiphK3MqZyhpKSx1PXMqbipfKGkpO2ouYWRkKG0odSxsKSksRj10LEI9YSxOPW99ZnVuY3Rpb24gVyh0KXtyZXR1cm5bbSh0WzFdLHRbMF0pLE0odFsyXSldfWZ1bmN0aW9uIFgodCl7dmFyIGU9dFswXSxyPXRbMV0sbj1nKHIpO3JldHVybltuKmcoZSksbipfKGUpLF8ocildfWZ1bmN0aW9uIFoodCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl19ZnVuY3Rpb24gSih0LGUpe3JldHVyblt0WzFdKmVbMl0tdFsyXSplWzFdLHRbMl0qZVswXS10WzBdKmVbMl0sdFswXSplWzFdLXRbMV0qZVswXV19ZnVuY3Rpb24gSyh0LGUpe3RbMF0rPWVbMF0sdFsxXSs9ZVsxXSx0WzJdKz1lWzJdfWZ1bmN0aW9uIFEodCxlKXtyZXR1cm5bdFswXSplLHRbMV0qZSx0WzJdKmVdfWZ1bmN0aW9uICQodCl7dmFyIGU9VCh0WzBdKnRbMF0rdFsxXSp0WzFdK3RbMl0qdFsyXSk7dFswXS89ZSx0WzFdLz1lLHRbMl0vPWV9dmFyIHR0LGV0LHJ0LG50LGl0LGF0LG90LHN0LGx0LGN0LHV0LGZ0LGh0LHB0LGR0LG10LGd0LHZ0LHl0LHh0LGJ0LF90LHd0LFR0LGt0LEF0LE10PXIoKSxTdD17cG9pbnQ6RXQsbGluZVN0YXJ0OkN0LGxpbmVFbmQ6UHQscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7U3QucG9pbnQ9SXQsU3QubGluZVN0YXJ0PU90LFN0LmxpbmVFbmQ9enQsTXQucmVzZXQoKSxWLnBvbHlnb25TdGFydCgpfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7Vi5wb2x5Z29uRW5kKCksU3QucG9pbnQ9RXQsU3QubGluZVN0YXJ0PUN0LFN0LmxpbmVFbmQ9UHQsajwwPyh0dD0tKHJ0PTE4MCksZXQ9LShudD05MCkpOk10Pm8/bnQ9OTA6TXQ8LW8mJihldD0tOTApLGN0WzBdPXR0LGN0WzFdPXJ0fSxzcGhlcmU6ZnVuY3Rpb24oKXt0dD0tKHJ0PTE4MCksZXQ9LShudD05MCl9fTtmdW5jdGlvbiBFdCh0LGUpe2x0LnB1c2goY3Q9W3R0PXQscnQ9dF0pLGU8ZXQmJihldD1lKSxlPm50JiYobnQ9ZSl9ZnVuY3Rpb24gTHQodCxlKXt2YXIgcj1YKFt0KmgsZSpoXSk7aWYoc3Qpe3ZhciBuPUooc3QsciksaT1KKFtuWzFdLC1uWzBdLDBdLG4pOyQoaSksaT1XKGkpO3ZhciBhLG89dC1pdCxzPW8+MD8xOi0xLGw9aVswXSpmKnMsYz1wKG8pPjE4MDtjXihzKml0PGwmJmw8cyp0KT8oYT1pWzFdKmYpPm50JiYobnQ9YSk6Y14ocyppdDwobD0obCszNjApJTM2MC0xODApJiZsPHMqdCk/KGE9LWlbMV0qZik8ZXQmJihldD1hKTooZTxldCYmKGV0PWUpLGU+bnQmJihudD1lKSksYz90PGl0P0R0KHR0LHQpPkR0KHR0LHJ0KSYmKHJ0PXQpOkR0KHQscnQpPkR0KHR0LHJ0KSYmKHR0PXQpOnJ0Pj10dD8odDx0dCYmKHR0PXQpLHQ+cnQmJihydD10KSk6dD5pdD9EdCh0dCx0KT5EdCh0dCxydCkmJihydD10KTpEdCh0LHJ0KT5EdCh0dCxydCkmJih0dD10KX1lbHNlIGx0LnB1c2goY3Q9W3R0PXQscnQ9dF0pO2U8ZXQmJihldD1lKSxlPm50JiYobnQ9ZSksc3Q9cixpdD10fWZ1bmN0aW9uIEN0KCl7U3QucG9pbnQ9THR9ZnVuY3Rpb24gUHQoKXtjdFswXT10dCxjdFsxXT1ydCxTdC5wb2ludD1FdCxzdD1udWxsfWZ1bmN0aW9uIEl0KHQsZSl7aWYoc3Qpe3ZhciByPXQtaXQ7TXQuYWRkKHAocik+MTgwP3IrKHI+MD8zNjA6LTM2MCk6cil9ZWxzZSBhdD10LG90PWU7Vi5wb2ludCh0LGUpLEx0KHQsZSl9ZnVuY3Rpb24gT3QoKXtWLmxpbmVTdGFydCgpfWZ1bmN0aW9uIHp0KCl7SXQoYXQsb3QpLFYubGluZUVuZCgpLHAoTXQpPm8mJih0dD0tKHJ0PTE4MCkpLGN0WzBdPXR0LGN0WzFdPXJ0LHN0PW51bGx9ZnVuY3Rpb24gRHQodCxlKXtyZXR1cm4oZS09dCk8MD9lKzM2MDplfWZ1bmN0aW9uIFJ0KHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBGdCh0LGUpe3JldHVybiB0WzBdPD10WzFdP3RbMF08PWUmJmU8PXRbMV06ZTx0WzBdfHx0WzFdPGV9dmFyIEJ0PXtzcGhlcmU6RSxwb2ludDpOdCxsaW5lU3RhcnQ6VXQsbGluZUVuZDpxdCxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtCdC5saW5lU3RhcnQ9R3QsQnQubGluZUVuZD1ZdH0scG9seWdvbkVuZDpmdW5jdGlvbigpe0J0LmxpbmVTdGFydD1VdCxCdC5saW5lRW5kPXF0fX07ZnVuY3Rpb24gTnQodCxlKXt0Kj1oO3ZhciByPWcoZSo9aCk7anQocipnKHQpLHIqXyh0KSxfKGUpKX1mdW5jdGlvbiBqdCh0LGUscil7Kyt1dCxodCs9KHQtaHQpL3V0LHB0Kz0oZS1wdCkvdXQsZHQrPShyLWR0KS91dH1mdW5jdGlvbiBVdCgpe0J0LnBvaW50PVZ0fWZ1bmN0aW9uIFZ0KHQsZSl7dCo9aDt2YXIgcj1nKGUqPWgpO1R0PXIqZyh0KSxrdD1yKl8odCksQXQ9XyhlKSxCdC5wb2ludD1IdCxqdChUdCxrdCxBdCl9ZnVuY3Rpb24gSHQodCxlKXt0Kj1oO3ZhciByPWcoZSo9aCksbj1yKmcodCksaT1yKl8odCksYT1fKGUpLG89bShUKChvPWt0KmEtQXQqaSkqbysobz1BdCpuLVR0KmEpKm8rKG89VHQqaS1rdCpuKSpvKSxUdCpuK2t0KmkrQXQqYSk7ZnQrPW8sbXQrPW8qKFR0KyhUdD1uKSksZ3QrPW8qKGt0KyhrdD1pKSksdnQrPW8qKEF0KyhBdD1hKSksanQoVHQsa3QsQXQpfWZ1bmN0aW9uIHF0KCl7QnQucG9pbnQ9TnR9ZnVuY3Rpb24gR3QoKXtCdC5wb2ludD1XdH1mdW5jdGlvbiBZdCgpe1h0KF90LHd0KSxCdC5wb2ludD1OdH1mdW5jdGlvbiBXdCh0LGUpe190PXQsd3Q9ZSx0Kj1oLGUqPWgsQnQucG9pbnQ9WHQ7dmFyIHI9ZyhlKTtUdD1yKmcodCksa3Q9cipfKHQpLEF0PV8oZSksanQoVHQsa3QsQXQpfWZ1bmN0aW9uIFh0KHQsZSl7dCo9aDt2YXIgcj1nKGUqPWgpLG49cipnKHQpLGk9cipfKHQpLGE9XyhlKSxvPWt0KmEtQXQqaSxzPUF0Km4tVHQqYSxsPVR0Kmkta3QqbixjPVQobypvK3MqcytsKmwpLHU9TShjKSxmPWMmJi11L2M7eXQrPWYqbyx4dCs9ZipzLGJ0Kz1mKmwsZnQrPXUsbXQrPXUqKFR0KyhUdD1uKSksZ3QrPXUqKGt0KyhrdD1pKSksdnQrPXUqKEF0KyhBdD1hKSksanQoVHQsa3QsQXQpfWZ1bmN0aW9uIFp0KHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBKdCh0LGUpe2Z1bmN0aW9uIHIocixuKXtyZXR1cm4gcj10KHIsbiksZShyWzBdLHJbMV0pfXJldHVybiB0LmludmVydCYmZS5pbnZlcnQmJihyLmludmVydD1mdW5jdGlvbihyLG4pe3JldHVybihyPWUuaW52ZXJ0KHIsbikpJiZ0LmludmVydChyWzBdLHJbMV0pfSkscn1mdW5jdGlvbiBLdCh0LGUpe3JldHVybltwKHQpPnM/dCtNYXRoLnJvdW5kKC10L3UpKnU6dCxlXX1mdW5jdGlvbiBRdCh0LGUscil7cmV0dXJuKHQlPXUpP2V8fHI/SnQodGUodCksZWUoZSxyKSk6dGUodCk6ZXx8cj9lZShlLHIpOkt0fWZ1bmN0aW9uICR0KHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVyblsoZSs9dCk+cz9lLXU6ZTwtcz9lK3U6ZSxyXX19ZnVuY3Rpb24gdGUodCl7dmFyIGU9JHQodCk7cmV0dXJuIGUuaW52ZXJ0PSR0KC10KSxlfWZ1bmN0aW9uIGVlKHQsZSl7dmFyIHI9Zyh0KSxuPV8odCksaT1nKGUpLGE9XyhlKTtmdW5jdGlvbiBvKHQsZSl7dmFyIG89ZyhlKSxzPWcodCkqbyxsPV8odCkqbyxjPV8oZSksdT1jKnIrcypuO3JldHVyblttKGwqaS11KmEscypyLWMqbiksTSh1KmkrbCphKV19cmV0dXJuIG8uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7dmFyIG89ZyhlKSxzPWcodCkqbyxsPV8odCkqbyxjPV8oZSksdT1jKmktbCphO3JldHVyblttKGwqaStjKmEscypyK3UqbiksTSh1KnItcypuKV19LG99ZnVuY3Rpb24gcmUodCl7ZnVuY3Rpb24gZShlKXtyZXR1cm4oZT10KGVbMF0qaCxlWzFdKmgpKVswXSo9ZixlWzFdKj1mLGV9cmV0dXJuIHQ9UXQodFswXSpoLHRbMV0qaCx0Lmxlbmd0aD4yP3RbMl0qaDowKSxlLmludmVydD1mdW5jdGlvbihlKXtyZXR1cm4oZT10LmludmVydChlWzBdKmgsZVsxXSpoKSlbMF0qPWYsZVsxXSo9ZixlfSxlfWZ1bmN0aW9uIG5lKHQsZSxyLG4saSxhKXtpZihyKXt2YXIgbz1nKGUpLHM9XyhlKSxsPW4qcjtudWxsPT1pPyhpPWUrbip1LGE9ZS1sLzIpOihpPWllKG8saSksYT1pZShvLGEpLChuPjA/aTxhOmk+YSkmJihpKz1uKnUpKTtmb3IodmFyIGMsZj1pO24+MD9mPmE6ZjxhO2YtPWwpYz1XKFtvLC1zKmcoZiksLXMqXyhmKV0pLHQucG9pbnQoY1swXSxjWzFdKX19ZnVuY3Rpb24gaWUodCxlKXsoZT1YKGUpKVswXS09dCwkKGUpO3ZhciByPUEoLWVbMV0pO3JldHVybigoLWVbMl08MD8tcjpyKSt1LW8pJXV9ZnVuY3Rpb24gYWUoKXt2YXIgdCxlPVtdO3JldHVybntwb2ludDpmdW5jdGlvbihlLHIsbil7dC5wdXNoKFtlLHIsbl0pfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtlLnB1c2godD1bXSl9LGxpbmVFbmQ6RSxyZWpvaW46ZnVuY3Rpb24oKXtlLmxlbmd0aD4xJiZlLnB1c2goZS5wb3AoKS5jb25jYXQoZS5zaGlmdCgpKSl9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciByPWU7cmV0dXJuIGU9W10sdD1udWxsLHJ9fX1mdW5jdGlvbiBvZSh0LGUpe3JldHVybiBwKHRbMF0tZVswXSk8byYmcCh0WzFdLWVbMV0pPG99ZnVuY3Rpb24gc2UodCxlLHIsbil7dGhpcy54PXQsdGhpcy56PWUsdGhpcy5vPXIsdGhpcy5lPW4sdGhpcy52PSExLHRoaXMubj10aGlzLnA9bnVsbH1mdW5jdGlvbiBsZSh0LGUscixuLGkpe3ZhciBhLHMsbD1bXSxjPVtdO2lmKHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYoISgoZT10Lmxlbmd0aC0xKTw9MCkpe3ZhciBlLHIsbj10WzBdLHM9dFtlXTtpZihvZShuLHMpKXtpZighblsyXSYmIXNbMl0pe2ZvcihpLmxpbmVTdGFydCgpLGE9MDthPGU7KythKWkucG9pbnQoKG49dFthXSlbMF0sblsxXSk7cmV0dXJuIHZvaWQgaS5saW5lRW5kKCl9c1swXSs9MipvfWwucHVzaChyPW5ldyBzZShuLHQsbnVsbCwhMCkpLGMucHVzaChyLm89bmV3IHNlKG4sbnVsbCxyLCExKSksbC5wdXNoKHI9bmV3IHNlKHMsdCxudWxsLCExKSksYy5wdXNoKHIubz1uZXcgc2UocyxudWxsLHIsITApKX19KSksbC5sZW5ndGgpe2ZvcihjLnNvcnQoZSksY2UobCksY2UoYyksYT0wLHM9Yy5sZW5ndGg7YTxzOysrYSljW2FdLmU9cj0hcjtmb3IodmFyIHUsZixoPWxbMF07Oyl7Zm9yKHZhciBwPWgsZD0hMDtwLnY7KWlmKChwPXAubik9PT1oKXJldHVybjt1PXAueixpLmxpbmVTdGFydCgpO2Rve2lmKHAudj1wLm8udj0hMCxwLmUpe2lmKGQpZm9yKGE9MCxzPXUubGVuZ3RoO2E8czsrK2EpaS5wb2ludCgoZj11W2FdKVswXSxmWzFdKTtlbHNlIG4ocC54LHAubi54LDEsaSk7cD1wLm59ZWxzZXtpZihkKWZvcih1PXAucC56LGE9dS5sZW5ndGgtMTthPj0wOy0tYSlpLnBvaW50KChmPXVbYV0pWzBdLGZbMV0pO2Vsc2UgbihwLngscC5wLngsLTEsaSk7cD1wLnB9dT0ocD1wLm8pLnosZD0hZH13aGlsZSghcC52KTtpLmxpbmVFbmQoKX19fWZ1bmN0aW9uIGNlKHQpe2lmKGU9dC5sZW5ndGgpe2Zvcih2YXIgZSxyLG49MCxpPXRbMF07KytuPGU7KWkubj1yPXRbbl0sci5wPWksaT1yO2kubj1yPXRbMF0sci5wPWl9fUt0LmludmVydD1LdDt2YXIgdWU9cigpO2Z1bmN0aW9uIGZlKHQpe3JldHVybiBwKHRbMF0pPD1zP3RbMF06dyh0WzBdKSooKHAodFswXSkrcykldS1zKX1mdW5jdGlvbiBoZSh0LGUpe3ZhciByPWZlKGUpLG49ZVsxXSxpPV8obiksYT1bXyhyKSwtZyhyKSwwXSxmPTAsaD0wO3VlLnJlc2V0KCksMT09PWk/bj1sK286LTE9PT1pJiYobj0tbC1vKTtmb3IodmFyIHA9MCxkPXQubGVuZ3RoO3A8ZDsrK3ApaWYoeT0odj10W3BdKS5sZW5ndGgpZm9yKHZhciB2LHkseD12W3ktMV0sYj1mZSh4KSx3PXhbMV0vMitjLFQ9Xyh3KSxrPWcodyksQT0wO0E8eTsrK0EsYj1FLFQ9QyxrPVAseD1TKXt2YXIgUz12W0FdLEU9ZmUoUyksTD1TWzFdLzIrYyxDPV8oTCksUD1nKEwpLEk9RS1iLE89ST49MD8xOi0xLHo9TypJLEQ9ej5zLFI9VCpDO2lmKHVlLmFkZChtKFIqTypfKHopLGsqUCtSKmcoeikpKSxmKz1EP0krTyp1OkksRF5iPj1yXkU+PXIpe3ZhciBGPUooWCh4KSxYKFMpKTskKEYpO3ZhciBCPUooYSxGKTskKEIpO3ZhciBOPShEXkk+PTA/LTE6MSkqTShCWzJdKTsobj5OfHxuPT09TiYmKEZbMF18fEZbMV0pKSYmKGgrPUReST49MD8xOi0xKX19cmV0dXJuKGY8LW98fGY8byYmdWU8LW8pXjEmaH1mdW5jdGlvbiBwZSh0LHIsbixpKXtyZXR1cm4gZnVuY3Rpb24oYSl7dmFyIG8scyxsLGM9cihhKSx1PWFlKCksZj1yKHUpLGg9ITEscD17cG9pbnQ6ZCxsaW5lU3RhcnQ6ZyxsaW5lRW5kOnYscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7cC5wb2ludD15LHAubGluZVN0YXJ0PXgscC5saW5lRW5kPWIscz1bXSxvPVtdfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7cC5wb2ludD1kLHAubGluZVN0YXJ0PWcscC5saW5lRW5kPXYscz1lLm1lcmdlKHMpO3ZhciB0PWhlKG8saSk7cy5sZW5ndGg/KGh8fChhLnBvbHlnb25TdGFydCgpLGg9ITApLGxlKHMsbWUsdCxuLGEpKTp0JiYoaHx8KGEucG9seWdvblN0YXJ0KCksaD0hMCksYS5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpKSxoJiYoYS5wb2x5Z29uRW5kKCksaD0hMSkscz1vPW51bGx9LHNwaGVyZTpmdW5jdGlvbigpe2EucG9seWdvblN0YXJ0KCksYS5saW5lU3RhcnQoKSxuKG51bGwsbnVsbCwxLGEpLGEubGluZUVuZCgpLGEucG9seWdvbkVuZCgpfX07ZnVuY3Rpb24gZChlLHIpe3QoZSxyKSYmYS5wb2ludChlLHIpfWZ1bmN0aW9uIG0odCxlKXtjLnBvaW50KHQsZSl9ZnVuY3Rpb24gZygpe3AucG9pbnQ9bSxjLmxpbmVTdGFydCgpfWZ1bmN0aW9uIHYoKXtwLnBvaW50PWQsYy5saW5lRW5kKCl9ZnVuY3Rpb24geSh0LGUpe2wucHVzaChbdCxlXSksZi5wb2ludCh0LGUpfWZ1bmN0aW9uIHgoKXtmLmxpbmVTdGFydCgpLGw9W119ZnVuY3Rpb24gYigpe3kobFswXVswXSxsWzBdWzFdKSxmLmxpbmVFbmQoKTt2YXIgdCxlLHIsbixpPWYuY2xlYW4oKSxjPXUucmVzdWx0KCkscD1jLmxlbmd0aDtpZihsLnBvcCgpLG8ucHVzaChsKSxsPW51bGwscClpZigxJmkpe2lmKChlPShyPWNbMF0pLmxlbmd0aC0xKT4wKXtmb3IoaHx8KGEucG9seWdvblN0YXJ0KCksaD0hMCksYS5saW5lU3RhcnQoKSx0PTA7dDxlOysrdClhLnBvaW50KChuPXJbdF0pWzBdLG5bMV0pO2EubGluZUVuZCgpfX1lbHNlIHA+MSYmMiZpJiZjLnB1c2goYy5wb3AoKS5jb25jYXQoYy5zaGlmdCgpKSkscy5wdXNoKGMuZmlsdGVyKGRlKSl9cmV0dXJuIHB9fWZ1bmN0aW9uIGRlKHQpe3JldHVybiB0Lmxlbmd0aD4xfWZ1bmN0aW9uIG1lKHQsZSl7cmV0dXJuKCh0PXQueClbMF08MD90WzFdLWwtbzpsLXRbMV0pLSgoZT1lLngpWzBdPDA/ZVsxXS1sLW86bC1lWzFdKX12YXIgZ2U9cGUoKGZ1bmN0aW9uKCl7cmV0dXJuITB9KSwoZnVuY3Rpb24odCl7dmFyIGUscj1OYU4sbj1OYU4saT1OYU47cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe3QubGluZVN0YXJ0KCksZT0xfSxwb2ludDpmdW5jdGlvbihhLGMpe3ZhciB1PWE+MD9zOi1zLGY9cChhLXIpO3AoZi1zKTxvPyh0LnBvaW50KHIsbj0obitjKS8yPjA/bDotbCksdC5wb2ludChpLG4pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh1LG4pLHQucG9pbnQoYSxuKSxlPTApOmkhPT11JiZmPj1zJiYocChyLWkpPG8mJihyLT1pKm8pLHAoYS11KTxvJiYoYS09dSpvKSxuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEscz1fKHQtcik7cmV0dXJuIHAocyk+bz9kKChfKGUpKihhPWcobikpKl8ociktXyhuKSooaT1nKGUpKSpfKHQpKS8oaSphKnMpKTooZStuKS8yfShyLG4sYSxjKSx0LnBvaW50KGksbiksdC5saW5lRW5kKCksdC5saW5lU3RhcnQoKSx0LnBvaW50KHUsbiksZT0wKSx0LnBvaW50KHI9YSxuPWMpLGk9dX0sbGluZUVuZDpmdW5jdGlvbigpe3QubGluZUVuZCgpLHI9bj1OYU59LGNsZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIDItZX19fSksKGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpO2lmKG51bGw9PXQpaT1yKmwsbi5wb2ludCgtcyxpKSxuLnBvaW50KDAsaSksbi5wb2ludChzLGkpLG4ucG9pbnQocywwKSxuLnBvaW50KHMsLWkpLG4ucG9pbnQoMCwtaSksbi5wb2ludCgtcywtaSksbi5wb2ludCgtcywwKSxuLnBvaW50KC1zLGkpO2Vsc2UgaWYocCh0WzBdLWVbMF0pPm8pe3ZhciBhPXRbMF08ZVswXT9zOi1zO2k9ciphLzIsbi5wb2ludCgtYSxpKSxuLnBvaW50KDAsaSksbi5wb2ludChhLGkpfWVsc2Ugbi5wb2ludChlWzBdLGVbMV0pfSksWy1zLC1sXSk7ZnVuY3Rpb24gdmUodCl7dmFyIGU9Zyh0KSxyPTYqaCxuPWU+MCxpPXAoZSk+bztmdW5jdGlvbiBhKHQscil7cmV0dXJuIGcodCkqZyhyKT5lfWZ1bmN0aW9uIGwodCxyLG4pe3ZhciBpPVsxLDAsMF0sYT1KKFgodCksWChyKSksbD1aKGEsYSksYz1hWzBdLHU9bC1jKmM7aWYoIXUpcmV0dXJuIW4mJnQ7dmFyIGY9ZSpsL3UsaD0tZSpjL3UsZD1KKGksYSksbT1RKGksZik7SyhtLFEoYSxoKSk7dmFyIGc9ZCx2PVoobSxnKSx5PVooZyxnKSx4PXYqdi15KihaKG0sbSktMSk7aWYoISh4PDApKXt2YXIgYj1UKHgpLF89UShnLCgtdi1iKS95KTtpZihLKF8sbSksXz1XKF8pLCFuKXJldHVybiBfO3ZhciB3LGs9dFswXSxBPXJbMF0sTT10WzFdLFM9clsxXTtBPGsmJih3PWssaz1BLEE9dyk7dmFyIEU9QS1rLEw9cChFLXMpPG87aWYoIUwmJlM8TSYmKHc9TSxNPVMsUz13KSxMfHxFPG8/TD9NK1M+MF5fWzFdPChwKF9bMF0tayk8bz9NOlMpOk08PV9bMV0mJl9bMV08PVM6RT5zXihrPD1fWzBdJiZfWzBdPD1BKSl7dmFyIEM9UShnLCgtditiKS95KTtyZXR1cm4gSyhDLG0pLFtfLFcoQyldfX19ZnVuY3Rpb24gYyhlLHIpe3ZhciBpPW4/dDpzLXQsYT0wO3JldHVybiBlPC1pP2F8PTE6ZT5pJiYoYXw9MikscjwtaT9hfD00OnI+aSYmKGF8PTgpLGF9cmV0dXJuIHBlKGEsKGZ1bmN0aW9uKHQpe3ZhciBlLHIsbyx1LGY7cmV0dXJue2xpbmVTdGFydDpmdW5jdGlvbigpe3U9bz0hMSxmPTF9LHBvaW50OmZ1bmN0aW9uKGgscCl7dmFyIGQsbT1baCxwXSxnPWEoaCxwKSx2PW4/Zz8wOmMoaCxwKTpnP2MoaCsoaDwwP3M6LXMpLHApOjA7aWYoIWUmJih1PW89ZykmJnQubGluZVN0YXJ0KCksZyE9PW8mJighKGQ9bChlLG0pKXx8b2UoZSxkKXx8b2UobSxkKSkmJihtWzJdPTEpLGchPT1vKWY9MCxnPyh0LmxpbmVTdGFydCgpLGQ9bChtLGUpLHQucG9pbnQoZFswXSxkWzFdKSk6KGQ9bChlLG0pLHQucG9pbnQoZFswXSxkWzFdLDIpLHQubGluZUVuZCgpKSxlPWQ7ZWxzZSBpZihpJiZlJiZuXmcpe3ZhciB5O3Ymcnx8ISh5PWwobSxlLCEwKSl8fChmPTAsbj8odC5saW5lU3RhcnQoKSx0LnBvaW50KHlbMF1bMF0seVswXVsxXSksdC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpKToodC5wb2ludCh5WzFdWzBdLHlbMV1bMV0pLHQubGluZUVuZCgpLHQubGluZVN0YXJ0KCksdC5wb2ludCh5WzBdWzBdLHlbMF1bMV0sMykpKX0hZ3x8ZSYmb2UoZSxtKXx8dC5wb2ludChtWzBdLG1bMV0pLGU9bSxvPWcscj12fSxsaW5lRW5kOmZ1bmN0aW9uKCl7byYmdC5saW5lRW5kKCksZT1udWxsfSxjbGVhbjpmdW5jdGlvbigpe3JldHVybiBmfCh1JiZvKTw8MX19fSksKGZ1bmN0aW9uKGUsbixpLGEpe25lKGEsdCxyLGksZSxuKX0pLG4/WzAsLXRdOlstcyx0LXNdKX1mdW5jdGlvbiB5ZSh0LHIsbixpKXtmdW5jdGlvbiBhKGUsYSl7cmV0dXJuIHQ8PWUmJmU8PW4mJnI8PWEmJmE8PWl9ZnVuY3Rpb24gcyhlLGEsbyxzKXt2YXIgYz0wLGY9MDtpZihudWxsPT1lfHwoYz1sKGUsbykpIT09KGY9bChhLG8pKXx8dShlLGEpPDBebz4wKWRve3MucG9pbnQoMD09PWN8fDM9PT1jP3Q6bixjPjE/aTpyKX13aGlsZSgoYz0oYytvKzQpJTQpIT09Zik7ZWxzZSBzLnBvaW50KGFbMF0sYVsxXSl9ZnVuY3Rpb24gbChlLGkpe3JldHVybiBwKGVbMF0tdCk8bz9pPjA/MDozOnAoZVswXS1uKTxvP2k+MD8yOjE6cChlWzFdLXIpPG8/aT4wPzE6MDppPjA/MzoyfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gdSh0LngsZS54KX1mdW5jdGlvbiB1KHQsZSl7dmFyIHI9bCh0LDEpLG49bChlLDEpO3JldHVybiByIT09bj9yLW46MD09PXI/ZVsxXS10WzFdOjE9PT1yP3RbMF0tZVswXToyPT09cj90WzFdLWVbMV06ZVswXS10WzBdfXJldHVybiBmdW5jdGlvbihvKXt2YXIgbCx1LGYsaCxwLGQsbSxnLHYseSx4LGI9byxfPWFlKCksdz17cG9pbnQ6VCxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt3LnBvaW50PWssdSYmdS5wdXNoKGY9W10pO3k9ITAsdj0hMSxtPWc9TmFOfSxsaW5lRW5kOmZ1bmN0aW9uKCl7bCYmKGsoaCxwKSxkJiZ2JiZfLnJlam9pbigpLGwucHVzaChfLnJlc3VsdCgpKSk7dy5wb2ludD1ULHYmJmIubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtiPV8sbD1bXSx1PVtdLHg9ITB9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXt2YXIgcj1mdW5jdGlvbigpe2Zvcih2YXIgZT0wLHI9MCxuPXUubGVuZ3RoO3I8bjsrK3IpZm9yKHZhciBhLG8scz11W3JdLGw9MSxjPXMubGVuZ3RoLGY9c1swXSxoPWZbMF0scD1mWzFdO2w8YzsrK2wpYT1oLG89cCxmPXNbbF0saD1mWzBdLHA9ZlsxXSxvPD1pP3A+aSYmKGgtYSkqKGktbyk+KHAtbykqKHQtYSkmJisrZTpwPD1pJiYoaC1hKSooaS1vKTwocC1vKSoodC1hKSYmLS1lO3JldHVybiBlfSgpLG49eCYmcixhPShsPWUubWVyZ2UobCkpLmxlbmd0aDsobnx8YSkmJihvLnBvbHlnb25TdGFydCgpLG4mJihvLmxpbmVTdGFydCgpLHMobnVsbCxudWxsLDEsbyksby5saW5lRW5kKCkpLGEmJmxlKGwsYyxyLHMsbyksby5wb2x5Z29uRW5kKCkpO2I9byxsPXU9Zj1udWxsfX07ZnVuY3Rpb24gVCh0LGUpe2EodCxlKSYmYi5wb2ludCh0LGUpfWZ1bmN0aW9uIGsoZSxvKXt2YXIgcz1hKGUsbyk7aWYodSYmZi5wdXNoKFtlLG9dKSx5KWg9ZSxwPW8sZD1zLHk9ITEscyYmKGIubGluZVN0YXJ0KCksYi5wb2ludChlLG8pKTtlbHNlIGlmKHMmJnYpYi5wb2ludChlLG8pO2Vsc2V7dmFyIGw9W209TWF0aC5tYXgoLTFlOSxNYXRoLm1pbigxZTksbSkpLGc9TWF0aC5tYXgoLTFlOSxNYXRoLm1pbigxZTksZykpXSxjPVtlPU1hdGgubWF4KC0xZTksTWF0aC5taW4oMWU5LGUpKSxvPU1hdGgubWF4KC0xZTksTWF0aC5taW4oMWU5LG8pKV07IWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbyxzPXRbMF0sbD10WzFdLGM9MCx1PTEsZj1lWzBdLXMsaD1lWzFdLWw7aWYobz1yLXMsZnx8IShvPjApKXtpZihvLz1mLGY8MCl7aWYobzxjKXJldHVybjtvPHUmJih1PW8pfWVsc2UgaWYoZj4wKXtpZihvPnUpcmV0dXJuO28+YyYmKGM9byl9aWYobz1pLXMsZnx8IShvPDApKXtpZihvLz1mLGY8MCl7aWYobz51KXJldHVybjtvPmMmJihjPW8pfWVsc2UgaWYoZj4wKXtpZihvPGMpcmV0dXJuO288dSYmKHU9byl9aWYobz1uLWwsaHx8IShvPjApKXtpZihvLz1oLGg8MCl7aWYobzxjKXJldHVybjtvPHUmJih1PW8pfWVsc2UgaWYoaD4wKXtpZihvPnUpcmV0dXJuO28+YyYmKGM9byl9aWYobz1hLWwsaHx8IShvPDApKXtpZihvLz1oLGg8MCl7aWYobz51KXJldHVybjtvPmMmJihjPW8pfWVsc2UgaWYoaD4wKXtpZihvPGMpcmV0dXJuO288dSYmKHU9byl9cmV0dXJuIGM+MCYmKHRbMF09cytjKmYsdFsxXT1sK2MqaCksdTwxJiYoZVswXT1zK3UqZixlWzFdPWwrdSpoKSwhMH19fX19KGwsYyx0LHIsbixpKT9zJiYoYi5saW5lU3RhcnQoKSxiLnBvaW50KGUsbykseD0hMSk6KHZ8fChiLmxpbmVTdGFydCgpLGIucG9pbnQobFswXSxsWzFdKSksYi5wb2ludChjWzBdLGNbMV0pLHN8fGIubGluZUVuZCgpLHg9ITEpfW09ZSxnPW8sdj1zfXJldHVybiB3fX12YXIgeGUsYmUsX2Usd2U9cigpLFRlPXtzcGhlcmU6RSxwb2ludDpFLGxpbmVTdGFydDpmdW5jdGlvbigpe1RlLnBvaW50PUFlLFRlLmxpbmVFbmQ9a2V9LGxpbmVFbmQ6RSxwb2x5Z29uU3RhcnQ6RSxwb2x5Z29uRW5kOkV9O2Z1bmN0aW9uIGtlKCl7VGUucG9pbnQ9VGUubGluZUVuZD1FfWZ1bmN0aW9uIEFlKHQsZSl7eGU9dCo9aCxiZT1fKGUqPWgpLF9lPWcoZSksVGUucG9pbnQ9TWV9ZnVuY3Rpb24gTWUodCxlKXt0Kj1oO3ZhciByPV8oZSo9aCksbj1nKGUpLGk9cCh0LXhlKSxhPWcoaSksbz1uKl8oaSkscz1fZSpyLWJlKm4qYSxsPWJlKnIrX2UqbiphO3dlLmFkZChtKFQobypvK3MqcyksbCkpLHhlPXQsYmU9cixfZT1ufWZ1bmN0aW9uIFNlKHQpe3JldHVybiB3ZS5yZXNldCgpLHoodCxUZSksK3dlfXZhciBFZT1bbnVsbCxudWxsXSxMZT17dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6RWV9O2Z1bmN0aW9uIENlKHQsZSl7cmV0dXJuIEVlWzBdPXQsRWVbMV09ZSxTZShMZSl9dmFyIFBlPXtGZWF0dXJlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIE9lKHQuZ2VvbWV0cnksZSl9LEZlYXR1cmVDb2xsZWN0aW9uOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuZmVhdHVyZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylpZihPZShyW25dLmdlb21ldHJ5LGUpKXJldHVybiEwO3JldHVybiExfX0sSWU9e1NwaGVyZTpmdW5jdGlvbigpe3JldHVybiEwfSxQb2ludDpmdW5jdGlvbih0LGUpe3JldHVybiB6ZSh0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvaW50OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuY29vcmRpbmF0ZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylpZih6ZShyW25dLGUpKXJldHVybiEwO3JldHVybiExfSxMaW5lU3RyaW5nOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIERlKHQuY29vcmRpbmF0ZXMsZSl9LE11bHRpTGluZVN0cmluZzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmNvb3JkaW5hdGVzLG49LTEsaT1yLmxlbmd0aDsrK248aTspaWYoRGUocltuXSxlKSlyZXR1cm4hMDtyZXR1cm4hMX0sUG9seWdvbjpmdW5jdGlvbih0LGUpe3JldHVybiBSZSh0LmNvb3JkaW5hdGVzLGUpfSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb29yZGluYXRlcyxuPS0xLGk9ci5sZW5ndGg7KytuPGk7KWlmKFJlKHJbbl0sZSkpcmV0dXJuITA7cmV0dXJuITF9LEdlb21ldHJ5Q29sbGVjdGlvbjpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmdlb21ldHJpZXMsbj0tMSxpPXIubGVuZ3RoOysrbjxpOylpZihPZShyW25dLGUpKXJldHVybiEwO3JldHVybiExfX07ZnVuY3Rpb24gT2UodCxlKXtyZXR1cm4hKCF0fHwhSWUuaGFzT3duUHJvcGVydHkodC50eXBlKSkmJkllW3QudHlwZV0odCxlKX1mdW5jdGlvbiB6ZSh0LGUpe3JldHVybiAwPT09Q2UodCxlKX1mdW5jdGlvbiBEZSh0LGUpe2Zvcih2YXIgcixuLGksYT0wLG89dC5sZW5ndGg7YTxvO2ErKyl7aWYoMD09PShuPUNlKHRbYV0sZSkpKXJldHVybiEwO2lmKGE+MCYmKGk9Q2UodFthXSx0W2EtMV0pKT4wJiZyPD1pJiZuPD1pJiYocituLWkpKigxLU1hdGgucG93KChyLW4pL2ksMikpPDFlLTEyKmkpcmV0dXJuITA7cj1ufXJldHVybiExfWZ1bmN0aW9uIFJlKHQsZSl7cmV0dXJuISFoZSh0Lm1hcChGZSksQmUoZSkpfWZ1bmN0aW9uIEZlKHQpe3JldHVybih0PXQubWFwKEJlKSkucG9wKCksdH1mdW5jdGlvbiBCZSh0KXtyZXR1cm5bdFswXSpoLHRbMV0qaF19ZnVuY3Rpb24gTmUodCxyLG4pe3ZhciBpPWUucmFuZ2UodCxyLW8sbikuY29uY2F0KHIpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVyblt0LGVdfSkpfX1mdW5jdGlvbiBqZSh0LHIsbil7dmFyIGk9ZS5yYW5nZSh0LHItbyxuKS5jb25jYXQocik7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuW2UsdF19KSl9fWZ1bmN0aW9uIFVlKCl7dmFyIHQscixuLGksYSxzLGwsYyx1LGYsaCxkLG09MTAsZz1tLHk9OTAseD0zNjAsYj0yLjU7ZnVuY3Rpb24gXygpe3JldHVybnt0eXBlOiJNdWx0aUxpbmVTdHJpbmciLGNvb3JkaW5hdGVzOncoKX19ZnVuY3Rpb24gdygpe3JldHVybiBlLnJhbmdlKHYoaS95KSp5LG4seSkubWFwKGgpLmNvbmNhdChlLnJhbmdlKHYoYy94KSp4LGwseCkubWFwKGQpKS5jb25jYXQoZS5yYW5nZSh2KHIvbSkqbSx0LG0pLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHAodCV5KT5vfSkpLm1hcCh1KSkuY29uY2F0KGUucmFuZ2UodihzL2cpKmcsYSxnKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBwKHQleCk+b30pKS5tYXAoZikpfXJldHVybiBfLmxpbmVzPWZ1bmN0aW9uKCl7cmV0dXJuIHcoKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybnt0eXBlOiJMaW5lU3RyaW5nIixjb29yZGluYXRlczp0fX0pKX0sXy5vdXRsaW5lPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IlBvbHlnb24iLGNvb3JkaW5hdGVzOltoKGkpLmNvbmNhdChkKGwpLnNsaWNlKDEpLGgobikucmV2ZXJzZSgpLnNsaWNlKDEpLGQoYykucmV2ZXJzZSgpLnNsaWNlKDEpKV19fSxfLmV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9fLmV4dGVudE1ham9yKHQpLmV4dGVudE1pbm9yKHQpOl8uZXh0ZW50TWlub3IoKX0sXy5leHRlbnRNYWpvcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oaT0rdFswXVswXSxuPSt0WzFdWzBdLGM9K3RbMF1bMV0sbD0rdFsxXVsxXSxpPm4mJih0PWksaT1uLG49dCksYz5sJiYodD1jLGM9bCxsPXQpLF8ucHJlY2lzaW9uKGIpKTpbW2ksY10sW24sbF1dfSxfLmV4dGVudE1pbm9yPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPStlWzBdWzBdLHQ9K2VbMV1bMF0scz0rZVswXVsxXSxhPStlWzFdWzFdLHI+dCYmKGU9cixyPXQsdD1lKSxzPmEmJihlPXMscz1hLGE9ZSksXy5wcmVjaXNpb24oYikpOltbcixzXSxbdCxhXV19LF8uc3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9fLnN0ZXBNYWpvcih0KS5zdGVwTWlub3IodCk6Xy5zdGVwTWlub3IoKX0sXy5zdGVwTWFqb3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHk9K3RbMF0seD0rdFsxXSxfKTpbeSx4XX0sXy5zdGVwTWlub3I9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG09K3RbMF0sZz0rdFsxXSxfKTpbbSxnXX0sXy5wcmVjaXNpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGI9K2UsdT1OZShzLGEsOTApLGY9amUocix0LGIpLGg9TmUoYyxsLDkwKSxkPWplKGksbixiKSxfKTpifSxfLmV4dGVudE1ham9yKFtbLTE4MCwtOTArb10sWzE4MCw5MC1vXV0pLmV4dGVudE1pbm9yKFtbLTE4MCwtODAtb10sWzE4MCw4MCtvXV0pfWZ1bmN0aW9uIFZlKHQpe3JldHVybiB0fXZhciBIZSxxZSxHZSxZZSxXZT1yKCksWGU9cigpLFplPXtwb2ludDpFLGxpbmVTdGFydDpFLGxpbmVFbmQ6RSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtaZS5saW5lU3RhcnQ9SmUsWmUubGluZUVuZD0kZX0scG9seWdvbkVuZDpmdW5jdGlvbigpe1plLmxpbmVTdGFydD1aZS5saW5lRW5kPVplLnBvaW50PUUsV2UuYWRkKHAoWGUpKSxYZS5yZXNldCgpfSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1XZS8yO3JldHVybiBXZS5yZXNldCgpLHR9fTtmdW5jdGlvbiBKZSgpe1plLnBvaW50PUtlfWZ1bmN0aW9uIEtlKHQsZSl7WmUucG9pbnQ9UWUsSGU9R2U9dCxxZT1ZZT1lfWZ1bmN0aW9uIFFlKHQsZSl7WGUuYWRkKFllKnQtR2UqZSksR2U9dCxZZT1lfWZ1bmN0aW9uICRlKCl7UWUoSGUscWUpfXZhciB0cj0xLzAsZXI9dHIscnI9LXRyLG5yPXJyLGlyPXtwb2ludDpmdW5jdGlvbih0LGUpe3Q8dHImJih0cj10KTt0PnJyJiYocnI9dCk7ZTxlciYmKGVyPWUpO2U+bnImJihucj1lKX0sbGluZVN0YXJ0OkUsbGluZUVuZDpFLHBvbHlnb25TdGFydDpFLHBvbHlnb25FbmQ6RSxyZXN1bHQ6ZnVuY3Rpb24oKXt2YXIgdD1bW3RyLGVyXSxbcnIsbnJdXTtyZXR1cm4gcnI9bnI9LShlcj10cj0xLzApLHR9fTt2YXIgYXIsb3Isc3IsbHIsY3I9MCx1cj0wLGZyPTAsaHI9MCxwcj0wLGRyPTAsbXI9MCxncj0wLHZyPTAseXI9e3BvaW50OnhyLGxpbmVTdGFydDpicixsaW5lRW5kOlRyLHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3lyLmxpbmVTdGFydD1rcix5ci5saW5lRW5kPUFyfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7eXIucG9pbnQ9eHIseXIubGluZVN0YXJ0PWJyLHlyLmxpbmVFbmQ9VHJ9LHJlc3VsdDpmdW5jdGlvbigpe3ZhciB0PXZyP1ttci92cixnci92cl06ZHI/W2hyL2RyLHByL2RyXTpmcj9bY3IvZnIsdXIvZnJdOltOYU4sTmFOXTtyZXR1cm4gY3I9dXI9ZnI9aHI9cHI9ZHI9bXI9Z3I9dnI9MCx0fX07ZnVuY3Rpb24geHIodCxlKXtjcis9dCx1cis9ZSwrK2ZyfWZ1bmN0aW9uIGJyKCl7eXIucG9pbnQ9X3J9ZnVuY3Rpb24gX3IodCxlKXt5ci5wb2ludD13cix4cihzcj10LGxyPWUpfWZ1bmN0aW9uIHdyKHQsZSl7dmFyIHI9dC1zcixuPWUtbHIsaT1UKHIqcituKm4pO2hyKz1pKihzcit0KS8yLHByKz1pKihscitlKS8yLGRyKz1pLHhyKHNyPXQsbHI9ZSl9ZnVuY3Rpb24gVHIoKXt5ci5wb2ludD14cn1mdW5jdGlvbiBrcigpe3lyLnBvaW50PU1yfWZ1bmN0aW9uIEFyKCl7U3IoYXIsb3IpfWZ1bmN0aW9uIE1yKHQsZSl7eXIucG9pbnQ9U3IseHIoYXI9c3I9dCxvcj1scj1lKX1mdW5jdGlvbiBTcih0LGUpe3ZhciByPXQtc3Isbj1lLWxyLGk9VChyKnIrbipuKTtocis9aSooc3IrdCkvMixwcis9aSoobHIrZSkvMixkcis9aSxtcis9KGk9bHIqdC1zciplKSooc3IrdCksZ3IrPWkqKGxyK2UpLHZyKz0zKmkseHIoc3I9dCxscj1lKX1mdW5jdGlvbiBFcih0KXt0aGlzLl9jb250ZXh0PXR9RXIucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxwb2ludFJhZGl1czpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcmFkaXVzPXQsdGhpc30scG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPT09dGhpcy5fbGluZSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9wb2ludD1OYU59LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9jb250ZXh0LmxpbmVUbyh0LGUpO2JyZWFrO2RlZmF1bHQ6dGhpcy5fY29udGV4dC5tb3ZlVG8odCt0aGlzLl9yYWRpdXMsZSksdGhpcy5fY29udGV4dC5hcmModCxlLHRoaXMuX3JhZGl1cywwLHUpfX0scmVzdWx0OkV9O3ZhciBMcixDcixQcixJcixPcix6cj1yKCksRHI9e3BvaW50OkUsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7RHIucG9pbnQ9UnJ9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtMciYmRnIoQ3IsUHIpLERyLnBvaW50PUV9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe0xyPSEwfSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7THI9bnVsbH0scmVzdWx0OmZ1bmN0aW9uKCl7dmFyIHQ9K3pyO3JldHVybiB6ci5yZXNldCgpLHR9fTtmdW5jdGlvbiBScih0LGUpe0RyLnBvaW50PUZyLENyPUlyPXQsUHI9T3I9ZX1mdW5jdGlvbiBGcih0LGUpe0lyLT10LE9yLT1lLHpyLmFkZChUKElyKklyK09yKk9yKSksSXI9dCxPcj1lfWZ1bmN0aW9uIEJyKCl7dGhpcy5fc3RyaW5nPVtdfWZ1bmN0aW9uIE5yKHQpe3JldHVybiJtMCwiK3QrImEiK3QrIiwiK3QrIiAwIDEsMSAwLCIrLTIqdCsiYSIrdCsiLCIrdCsiIDAgMSwxIDAsIisyKnQrInoifWZ1bmN0aW9uIGpyKHQpe3JldHVybiBmdW5jdGlvbihlKXt2YXIgcj1uZXcgVXI7Zm9yKHZhciBuIGluIHQpcltuXT10W25dO3JldHVybiByLnN0cmVhbT1lLHJ9fWZ1bmN0aW9uIFVyKCl7fWZ1bmN0aW9uIFZyKHQsZSxyKXt2YXIgbj10LmNsaXBFeHRlbnQmJnQuY2xpcEV4dGVudCgpO3JldHVybiB0LnNjYWxlKDE1MCkudHJhbnNsYXRlKFswLDBdKSxudWxsIT1uJiZ0LmNsaXBFeHRlbnQobnVsbCkseihyLHQuc3RyZWFtKGlyKSksZShpci5yZXN1bHQoKSksbnVsbCE9biYmdC5jbGlwRXh0ZW50KG4pLHR9ZnVuY3Rpb24gSHIodCxlLHIpe3JldHVybiBWcih0LChmdW5jdGlvbihyKXt2YXIgbj1lWzFdWzBdLWVbMF1bMF0saT1lWzFdWzFdLWVbMF1bMV0sYT1NYXRoLm1pbihuLyhyWzFdWzBdLXJbMF1bMF0pLGkvKHJbMV1bMV0tclswXVsxXSkpLG89K2VbMF1bMF0rKG4tYSooclsxXVswXStyWzBdWzBdKSkvMixzPStlWzBdWzFdKyhpLWEqKHJbMV1bMV0rclswXVsxXSkpLzI7dC5zY2FsZSgxNTAqYSkudHJhbnNsYXRlKFtvLHNdKX0pLHIpfWZ1bmN0aW9uIHFyKHQsZSxyKXtyZXR1cm4gSHIodCxbWzAsMF0sZV0scil9ZnVuY3Rpb24gR3IodCxlLHIpe3JldHVybiBWcih0LChmdW5jdGlvbihyKXt2YXIgbj0rZSxpPW4vKHJbMV1bMF0tclswXVswXSksYT0obi1pKihyWzFdWzBdK3JbMF1bMF0pKS8yLG89LWkqclswXVsxXTt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW2Esb10pfSkscil9ZnVuY3Rpb24gWXIodCxlLHIpe3JldHVybiBWcih0LChmdW5jdGlvbihyKXt2YXIgbj0rZSxpPW4vKHJbMV1bMV0tclswXVsxXSksYT0taSpyWzBdWzBdLG89KG4taSooclsxXVsxXStyWzBdWzFdKSkvMjt0LnNjYWxlKDE1MCppKS50cmFuc2xhdGUoW2Esb10pfSkscil9QnIucHJvdG90eXBlPXtfcmFkaXVzOjQuNSxfY2lyY2xlOk5yKDQuNSkscG9pbnRSYWRpdXM6ZnVuY3Rpb24odCl7cmV0dXJuKHQ9K3QpIT09dGhpcy5fcmFkaXVzJiYodGhpcy5fcmFkaXVzPXQsdGhpcy5fY2lyY2xlPW51bGwpLHRoaXN9LHBvbHlnb25TdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7MD09PXRoaXMuX2xpbmUmJnRoaXMuX3N0cmluZy5wdXNoKCJaIiksdGhpcy5fcG9pbnQ9TmFOfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3N0cmluZy5wdXNoKCJNIix0LCIsIixlKSx0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9zdHJpbmcucHVzaCgiTCIsdCwiLCIsZSk7YnJlYWs7ZGVmYXVsdDpudWxsPT10aGlzLl9jaXJjbGUmJih0aGlzLl9jaXJjbGU9TnIodGhpcy5fcmFkaXVzKSksdGhpcy5fc3RyaW5nLnB1c2goIk0iLHQsIiwiLGUsdGhpcy5fY2lyY2xlKX19LHJlc3VsdDpmdW5jdGlvbigpe2lmKHRoaXMuX3N0cmluZy5sZW5ndGgpe3ZhciB0PXRoaXMuX3N0cmluZy5qb2luKCIiKTtyZXR1cm4gdGhpcy5fc3RyaW5nPVtdLHR9cmV0dXJuIG51bGx9fSxVci5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOlVyLHBvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5zdHJlYW0ucG9pbnQodCxlKX0sc3BoZXJlOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0uc3BoZXJlKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5zdHJlYW0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLnN0cmVhbS5wb2x5Z29uU3RhcnQoKX0scG9seWdvbkVuZDpmdW5jdGlvbigpe3RoaXMuc3RyZWFtLnBvbHlnb25FbmQoKX19O3ZhciBXcj1nKDMwKmgpO2Z1bmN0aW9uIFhyKHQsZSl7cmV0dXJuK2U/ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKG4saSxhLHMsbCxjLHUsZixoLGQsZyx2LHkseCl7dmFyIGI9dS1uLF89Zi1pLHc9YipiK18qXztpZih3PjQqZSYmeS0tKXt2YXIgaz1zK2QsQT1sK2csUz1jK3YsRT1UKGsqaytBKkErUypTKSxMPU0oUy89RSksQz1wKHAoUyktMSk8b3x8cChhLWgpPG8/KGEraCkvMjptKEEsayksUD10KEMsTCksST1QWzBdLE89UFsxXSx6PUktbixEPU8taSxSPV8qei1iKkQ7KFIqUi93PmV8fHAoKGIqeitfKkQpL3ctLjUpPi4zfHxzKmQrbCpnK2MqdjxXcikmJihyKG4saSxhLHMsbCxjLEksTyxDLGsvPUUsQS89RSxTLHkseCkseC5wb2ludChJLE8pLHIoSSxPLEMsayxBLFMsdSxmLGgsZCxnLHYseSx4KSl9fXJldHVybiBmdW5jdGlvbihlKXt2YXIgbixpLGEsbyxzLGwsYyx1LGYsaCxwLGQsbT17cG9pbnQ6ZyxsaW5lU3RhcnQ6dixsaW5lRW5kOngscG9seWdvblN0YXJ0OmZ1bmN0aW9uKCl7ZS5wb2x5Z29uU3RhcnQoKSxtLmxpbmVTdGFydD1ifSxwb2x5Z29uRW5kOmZ1bmN0aW9uKCl7ZS5wb2x5Z29uRW5kKCksbS5saW5lU3RhcnQ9dn19O2Z1bmN0aW9uIGcocixuKXtyPXQocixuKSxlLnBvaW50KHJbMF0sclsxXSl9ZnVuY3Rpb24gdigpe3U9TmFOLG0ucG9pbnQ9eSxlLmxpbmVTdGFydCgpfWZ1bmN0aW9uIHkobixpKXt2YXIgYT1YKFtuLGldKSxvPXQobixpKTtyKHUsZixjLGgscCxkLHU9b1swXSxmPW9bMV0sYz1uLGg9YVswXSxwPWFbMV0sZD1hWzJdLDE2LGUpLGUucG9pbnQodSxmKX1mdW5jdGlvbiB4KCl7bS5wb2ludD1nLGUubGluZUVuZCgpfWZ1bmN0aW9uIGIoKXt2KCksbS5wb2ludD1fLG0ubGluZUVuZD13fWZ1bmN0aW9uIF8odCxlKXt5KG49dCxlKSxpPXUsYT1mLG89aCxzPXAsbD1kLG0ucG9pbnQ9eX1mdW5jdGlvbiB3KCl7cih1LGYsYyxoLHAsZCxpLGEsbixvLHMsbCwxNixlKSxtLmxpbmVFbmQ9eCx4KCl9cmV0dXJuIG19fSh0LGUpOmZ1bmN0aW9uKHQpe3JldHVybiBqcih7cG9pbnQ6ZnVuY3Rpb24oZSxyKXtlPXQoZSxyKSx0aGlzLnN0cmVhbS5wb2ludChlWzBdLGVbMV0pfX0pfSh0KX12YXIgWnI9anIoe3BvaW50OmZ1bmN0aW9uKHQsZSl7dGhpcy5zdHJlYW0ucG9pbnQodCpoLGUqaCl9fSk7ZnVuY3Rpb24gSnIodCxlLHIsbixpKXtmdW5jdGlvbiBhKGEsbyl7cmV0dXJuW2UrdCooYSo9biksci10KihvKj1pKV19cmV0dXJuIGEuaW52ZXJ0PWZ1bmN0aW9uKGEsbyl7cmV0dXJuWyhhLWUpL3Qqbiwoci1vKS90KmldfSxhfWZ1bmN0aW9uIEtyKHQsZSxyLG4saSxhKXt2YXIgbz1nKGEpLHM9XyhhKSxsPW8qdCxjPXMqdCx1PW8vdCxmPXMvdCxoPShzKnItbyplKS90LHA9KHMqZStvKnIpL3Q7ZnVuY3Rpb24gZCh0LGEpe3JldHVybltsKih0Kj1uKS1jKihhKj1pKStlLHItYyp0LWwqYV19cmV0dXJuIGQuaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuW24qKHUqdC1mKmUraCksaSoocC1mKnQtdSplKV19LGR9ZnVuY3Rpb24gUXIodCl7cmV0dXJuICRyKChmdW5jdGlvbigpe3JldHVybiB0fSkpKCl9ZnVuY3Rpb24gJHIodCl7dmFyIGUscixuLGksYSxvLHMsbCxjLHUscD0xNTAsZD00ODAsbT0yNTAsZz0wLHY9MCx5PTAseD0wLGI9MCxfPTAsdz0xLGs9MSxBPW51bGwsTT1nZSxTPW51bGwsRT1WZSxMPS41O2Z1bmN0aW9uIEModCl7cmV0dXJuIGwodFswXSpoLHRbMV0qaCl9ZnVuY3Rpb24gUCh0KXtyZXR1cm4odD1sLmludmVydCh0WzBdLHRbMV0pKSYmW3RbMF0qZix0WzFdKmZdfWZ1bmN0aW9uIEkoKXt2YXIgdD1LcihwLDAsMCx3LGssXykuYXBwbHkobnVsbCxlKGcsdikpLG49KF8/S3I6SnIpKHAsZC10WzBdLG0tdFsxXSx3LGssXyk7cmV0dXJuIHI9UXQoeSx4LGIpLHM9SnQoZSxuKSxsPUp0KHIscyksbz1YcihzLEwpLE8oKX1mdW5jdGlvbiBPKCl7cmV0dXJuIGM9dT1udWxsLEN9cmV0dXJuIEMuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBjJiZ1PT09dD9jOmM9WnIoZnVuY3Rpb24odCl7cmV0dXJuIGpyKHtwb2ludDpmdW5jdGlvbihlLHIpe3ZhciBuPXQoZSxyKTtyZXR1cm4gdGhpcy5zdHJlYW0ucG9pbnQoblswXSxuWzFdKX19KX0ocikoTShvKEUodT10KSkpKSl9LEMucHJlY2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT10LEE9dm9pZCAwLE8oKSk6TX0sQy5wb3N0Y2xpcD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oRT10LFM9bj1pPWE9bnVsbCxPKCkpOkV9LEMuY2xpcEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhNPSt0P3ZlKEE9dCpoKTooQT1udWxsLGdlKSxPKCkpOkEqZn0sQy5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhFPW51bGw9PXQ/KFM9bj1pPWE9bnVsbCxWZSk6eWUoUz0rdFswXVswXSxuPSt0WzBdWzFdLGk9K3RbMV1bMF0sYT0rdFsxXVsxXSksTygpKTpudWxsPT1TP251bGw6W1tTLG5dLFtpLGFdXX0sQy5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD0rdCxJKCkpOnB9LEMudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhkPSt0WzBdLG09K3RbMV0sSSgpKTpbZCxtXX0sQy5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGc9dFswXSUzNjAqaCx2PXRbMV0lMzYwKmgsSSgpKTpbZypmLHYqZl19LEMucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh5PXRbMF0lMzYwKmgseD10WzFdJTM2MCpoLGI9dC5sZW5ndGg+Mj90WzJdJTM2MCpoOjAsSSgpKTpbeSpmLHgqZixiKmZdfSxDLmFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhfPXQlMzYwKmgsSSgpKTpfKmZ9LEMucmVmbGVjdFg9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9dD8tMToxLEkoKSk6dzwwfSxDLnJlZmxlY3RZPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhrPXQ/LTE6MSxJKCkpOms8MH0sQy5wcmVjaXNpb249ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89WHIocyxMPXQqdCksTygpKTpUKEwpfSxDLmZpdEV4dGVudD1mdW5jdGlvbih0LGUpe3JldHVybiBIcihDLHQsZSl9LEMuZml0U2l6ZT1mdW5jdGlvbih0LGUpe3JldHVybiBxcihDLHQsZSl9LEMuZml0V2lkdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3IoQyx0LGUpfSxDLmZpdEhlaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiBZcihDLHQsZSl9LGZ1bmN0aW9uKCl7cmV0dXJuIGU9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksQy5pbnZlcnQ9ZS5pbnZlcnQmJlAsSSgpfX1mdW5jdGlvbiB0bih0KXt2YXIgZT0wLHI9cy8zLG49JHIodCksaT1uKGUscik7cmV0dXJuIGkucGFyYWxsZWxzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP24oZT10WzBdKmgscj10WzFdKmgpOltlKmYscipmXX0saX1mdW5jdGlvbiBlbih0LGUpe3ZhciByPV8odCksbj0ocitfKGUpKS8yO2lmKHAobik8bylyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9Zyh0KTtmdW5jdGlvbiByKHQscil7cmV0dXJuW3QqZSxfKHIpL2VdfXJldHVybiByLmludmVydD1mdW5jdGlvbih0LHIpe3JldHVyblt0L2UsTShyKmUpXX0scn0odCk7dmFyIGk9MStyKigyKm4tciksYT1UKGkpL247ZnVuY3Rpb24gbCh0LGUpe3ZhciByPVQoaS0yKm4qXyhlKSkvbjtyZXR1cm5bcipfKHQqPW4pLGEtcipnKHQpXX1yZXR1cm4gbC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1hLWUsbz1tKHQscChyKSkqdyhyKTtyZXR1cm4gcipuPDAmJihvLT1zKncodCkqdyhyKSksW28vbixNKChpLSh0KnQrcipyKSpuKm4pLygyKm4pKV19LGx9ZnVuY3Rpb24gcm4oKXtyZXR1cm4gdG4oZW4pLnNjYWxlKDE1NS40MjQpLmNlbnRlcihbMCwzMy42NDQyXSl9ZnVuY3Rpb24gbm4oKXtyZXR1cm4gcm4oKS5wYXJhbGxlbHMoWzI5LjUsNDUuNV0pLnNjYWxlKDEwNzApLnRyYW5zbGF0ZShbNDgwLDI1MF0pLnJvdGF0ZShbOTYsMF0pLmNlbnRlcihbLS42LDM4LjddKX1mdW5jdGlvbiBhbih0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXt2YXIgbj1nKGUpLGk9ZyhyKSxhPXQobippKTtyZXR1cm5bYSppKl8oZSksYSpfKHIpXX19ZnVuY3Rpb24gb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG49VChlKmUrcipyKSxpPXQobiksYT1fKGkpLG89ZyhpKTtyZXR1cm5bbShlKmEsbipvKSxNKG4mJnIqYS9uKV19fXZhciBzbj1hbigoZnVuY3Rpb24odCl7cmV0dXJuIFQoMi8oMSt0KSl9KSk7c24uaW52ZXJ0PW9uKChmdW5jdGlvbih0KXtyZXR1cm4gMipNKHQvMil9KSk7dmFyIGxuPWFuKChmdW5jdGlvbih0KXtyZXR1cm4odD1BKHQpKSYmdC9fKHQpfSkpO2Z1bmN0aW9uIGNuKHQsZSl7cmV0dXJuW3QseChrKChsK2UpLzIpKV19ZnVuY3Rpb24gdW4odCl7dmFyIGUscixuLGk9UXIodCksYT1pLmNlbnRlcixvPWkuc2NhbGUsbD1pLnRyYW5zbGF0ZSxjPWkuY2xpcEV4dGVudCx1PW51bGw7ZnVuY3Rpb24gZigpe3ZhciBhPXMqbygpLGw9aShyZShpLnJvdGF0ZSgpKS5pbnZlcnQoWzAsMF0pKTtyZXR1cm4gYyhudWxsPT11P1tbbFswXS1hLGxbMV0tYV0sW2xbMF0rYSxsWzFdK2FdXTp0PT09Y24/W1tNYXRoLm1heChsWzBdLWEsdSksZV0sW01hdGgubWluKGxbMF0rYSxyKSxuXV06W1t1LE1hdGgubWF4KGxbMV0tYSxlKV0sW3IsTWF0aC5taW4obFsxXSthLG4pXV0pfXJldHVybiBpLnNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvKHQpLGYoKSk6bygpfSxpLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obCh0KSxmKCkpOmwoKX0saS5jZW50ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGEodCksZigpKTphKCl9LGkuY2xpcEV4dGVudD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obnVsbD09dD91PWU9cj1uPW51bGw6KHU9K3RbMF1bMF0sZT0rdFswXVsxXSxyPSt0WzFdWzBdLG49K3RbMV1bMV0pLGYoKSk6bnVsbD09dT9udWxsOltbdSxlXSxbcixuXV19LGYoKX1mdW5jdGlvbiBmbih0KXtyZXR1cm4gaygobCt0KS8yKX1mdW5jdGlvbiBobih0LGUpe3ZhciByPWcodCksbj10PT09ZT9fKHQpOngoci9nKGUpKS94KGZuKGUpL2ZuKHQpKSxpPXIqYihmbih0KSxuKS9uO2lmKCFuKXJldHVybiBjbjtmdW5jdGlvbiBhKHQsZSl7aT4wP2U8LWwrbyYmKGU9LWwrbyk6ZT5sLW8mJihlPWwtbyk7dmFyIHI9aS9iKGZuKGUpLG4pO3JldHVybltyKl8obip0KSxpLXIqZyhuKnQpXX1yZXR1cm4gYS5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1pLWUsYT13KG4pKlQodCp0K3Iqciksbz1tKHQscChyKSkqdyhyKTtyZXR1cm4gcipuPDAmJihvLT1zKncodCkqdyhyKSksW28vbiwyKmQoYihpL2EsMS9uKSktbF19LGF9ZnVuY3Rpb24gcG4odCxlKXtyZXR1cm5bdCxlXX1mdW5jdGlvbiBkbih0LGUpe3ZhciByPWcodCksbj10PT09ZT9fKHQpOihyLWcoZSkpLyhlLXQpLGk9ci9uK3Q7aWYocChuKTxvKXJldHVybiBwbjtmdW5jdGlvbiBhKHQsZSl7dmFyIHI9aS1lLGE9bip0O3JldHVybltyKl8oYSksaS1yKmcoYSldfXJldHVybiBhLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByPWktZSxhPW0odCxwKHIpKSp3KHIpO3JldHVybiByKm48MCYmKGEtPXMqdyh0KSp3KHIpKSxbYS9uLGktdyhuKSpUKHQqdCtyKnIpXX0sYX1sbi5pbnZlcnQ9b24oKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpLGNuLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblt0LDIqZCh5KGUpKS1sXX0scG4uaW52ZXJ0PXBuO3ZhciBtbj0xLjM0MDI2NCxnbj0tLjA4MTEwNix2bj04OTNlLTYseW49LjAwMzc5Nix4bj1UKDMpLzI7ZnVuY3Rpb24gYm4odCxlKXt2YXIgcj1NKHhuKl8oZSkpLG49cipyLGk9bipuKm47cmV0dXJuW3QqZyhyKS8oeG4qKG1uKzMqZ24qbitpKig3KnZuKzkqeW4qbikpKSxyKihtbitnbipuK2kqKHZuK3luKm4pKV19ZnVuY3Rpb24gX24odCxlKXt2YXIgcj1nKGUpLG49Zyh0KSpyO3JldHVybltyKl8odCkvbixfKGUpL25dfWZ1bmN0aW9uIHduKHQsZSl7dmFyIHI9ZSplLG49cipyO3JldHVyblt0KiguODcwNy0uMTMxOTc5KnIrbioobiooLjAwMzk3MSpyLS4wMDE1MjkqbiktLjAxMzc5MSkpLGUqKDEuMDA3MjI2K3IqKC4wMTUwODUrbiooLjAyODg3NCpyLS4wNDQ0NzUtLjAwNTkxNipuKSkpXX1mdW5jdGlvbiBUbih0LGUpe3JldHVybltnKGUpKl8odCksXyhlKV19ZnVuY3Rpb24ga24odCxlKXt2YXIgcj1nKGUpLG49MStnKHQpKnI7cmV0dXJuW3IqXyh0KS9uLF8oZSkvbl19ZnVuY3Rpb24gQW4odCxlKXtyZXR1cm5beChrKChsK2UpLzIpKSwtdF19Ym4uaW52ZXJ0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49ZSxpPW4qbixhPWkqaSppLG89MDtvPDEyJiYoYT0oaT0obi09cj0obioobW4rZ24qaSthKih2bit5bippKSktZSkvKG1uKzMqZ24qaSthKig3KnZuKzkqeW4qaSkpKSpuKSppKmksIShwKHIpPDFlLTEyKSk7KytvKTtyZXR1cm5beG4qdCoobW4rMypnbippK2EqKDcqdm4rOSp5bippKSkvZyhuKSxNKF8obikveG4pXX0sX24uaW52ZXJ0PW9uKGQpLHduLmludmVydD1mdW5jdGlvbih0LGUpe3ZhciByLG49ZSxpPTI1O2Rve3ZhciBhPW4qbixzPWEqYTtuLT1yPShuKigxLjAwNzIyNithKiguMDE1MDg1K3MqKC4wMjg4NzQqYS0uMDQ0NDc1LS4wMDU5MTYqcykpKS1lKS8oMS4wMDcyMjYrYSooLjA0NTI1NStzKiguMjU5ODY2KmEtLjMxMTMyNS0uMDA1OTE2KjExKnMpKSl9d2hpbGUocChyKT5vJiYtLWk+MCk7cmV0dXJuW3QvKC44NzA3KyhhPW4qbikqKGEqKGEqYSphKiguMDAzOTcxLS4wMDE1MjkqYSktLjAxMzc5MSktLjEzMTk3OSkpLG5dfSxUbi5pbnZlcnQ9b24oTSksa24uaW52ZXJ0PW9uKChmdW5jdGlvbih0KXtyZXR1cm4gMipkKHQpfSkpLEFuLmludmVydD1mdW5jdGlvbih0LGUpe3JldHVyblstZSwyKmQoeSh0KSktbF19LHQuZ2VvQWxiZXJzPW5uLHQuZ2VvQWxiZXJzVXNhPWZ1bmN0aW9uKCl7dmFyIHQsZSxyLG4saSxhLHM9bm4oKSxsPXJuKCkucm90YXRlKFsxNTQsMF0pLmNlbnRlcihbLTIsNTguNV0pLnBhcmFsbGVscyhbNTUsNjVdKSxjPXJuKCkucm90YXRlKFsxNTcsMF0pLmNlbnRlcihbLTMsMTkuOV0pLnBhcmFsbGVscyhbOCwxOF0pLHU9e3BvaW50OmZ1bmN0aW9uKHQsZSl7YT1bdCxlXX19O2Z1bmN0aW9uIGYodCl7dmFyIGU9dFswXSxvPXRbMV07cmV0dXJuIGE9bnVsbCxyLnBvaW50KGUsbyksYXx8KG4ucG9pbnQoZSxvKSxhKXx8KGkucG9pbnQoZSxvKSxhKX1mdW5jdGlvbiBoKCl7cmV0dXJuIHQ9ZT1udWxsLGZ9cmV0dXJuIGYuaW52ZXJ0PWZ1bmN0aW9uKHQpe3ZhciBlPXMuc2NhbGUoKSxyPXMudHJhbnNsYXRlKCksbj0odFswXS1yWzBdKS9lLGk9KHRbMV0tclsxXSkvZTtyZXR1cm4oaT49LjEyJiZpPC4yMzQmJm4+PS0uNDI1JiZuPC0uMjE0P2w6aT49LjE2NiYmaTwuMjM0JiZuPj0tLjIxNCYmbjwtLjExNT9jOnMpLmludmVydCh0KX0sZi5zdHJlYW09ZnVuY3Rpb24ocil7cmV0dXJuIHQmJmU9PT1yP3Q6KG49W3Muc3RyZWFtKGU9ciksbC5zdHJlYW0ociksYy5zdHJlYW0ocildLGk9bi5sZW5ndGgsdD17cG9pbnQ6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9LTE7KytyPGk7KW5bcl0ucG9pbnQodCxlKX0sc3BoZXJlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0PS0xOysrdDxpOyluW3RdLnNwaGVyZSgpfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9LTE7Kyt0PGk7KW5bdF0ubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9LTE7Kyt0PGk7KW5bdF0ubGluZUVuZCgpfSxwb2x5Z29uU3RhcnQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9LTE7Kyt0PGk7KW5bdF0ucG9seWdvblN0YXJ0KCl9LHBvbHlnb25FbmQ6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9LTE7Kyt0PGk7KW5bdF0ucG9seWdvbkVuZCgpfX0pO3ZhciBuLGl9LGYucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzLnByZWNpc2lvbih0KSxsLnByZWNpc2lvbih0KSxjLnByZWNpc2lvbih0KSxoKCkpOnMucHJlY2lzaW9uKCl9LGYuc2NhbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHMuc2NhbGUodCksbC5zY2FsZSguMzUqdCksYy5zY2FsZSh0KSxmLnRyYW5zbGF0ZShzLnRyYW5zbGF0ZSgpKSk6cy5zY2FsZSgpfSxmLnRyYW5zbGF0ZT1mdW5jdGlvbih0KXtpZighYXJndW1lbnRzLmxlbmd0aClyZXR1cm4gcy50cmFuc2xhdGUoKTt2YXIgZT1zLnNjYWxlKCksYT0rdFswXSxmPSt0WzFdO3JldHVybiByPXMudHJhbnNsYXRlKHQpLmNsaXBFeHRlbnQoW1thLS40NTUqZSxmLS4yMzgqZV0sW2ErLjQ1NSplLGYrLjIzOCplXV0pLnN0cmVhbSh1KSxuPWwudHJhbnNsYXRlKFthLS4zMDcqZSxmKy4yMDEqZV0pLmNsaXBFeHRlbnQoW1thLS40MjUqZStvLGYrLjEyKmUrb10sW2EtLjIxNCplLW8sZisuMjM0KmUtb11dKS5zdHJlYW0odSksaT1jLnRyYW5zbGF0ZShbYS0uMjA1KmUsZisuMjEyKmVdKS5jbGlwRXh0ZW50KFtbYS0uMjE0KmUrbyxmKy4xNjYqZStvXSxbYS0uMTE1KmUtbyxmKy4yMzQqZS1vXV0pLnN0cmVhbSh1KSxoKCl9LGYuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhyKGYsdCxlKX0sZi5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHFyKGYsdCxlKX0sZi5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBHcihmLHQsZSl9LGYuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFlyKGYsdCxlKX0sZi5zY2FsZSgxMDcwKX0sdC5nZW9BcmVhPWZ1bmN0aW9uKHQpe3JldHVybiBVLnJlc2V0KCkseih0LFYpLDIqVX0sdC5nZW9BemltdXRoYWxFcXVhbEFyZWE9ZnVuY3Rpb24oKXtyZXR1cm4gUXIoc24pLnNjYWxlKDEyNC43NSkuY2xpcEFuZ2xlKDE3OS45OTkpfSx0Lmdlb0F6aW11dGhhbEVxdWFsQXJlYVJhdz1zbix0Lmdlb0F6aW11dGhhbEVxdWlkaXN0YW50PWZ1bmN0aW9uKCl7cmV0dXJuIFFyKGxuKS5zY2FsZSg3OS40MTg4KS5jbGlwQW5nbGUoMTc5Ljk5OSl9LHQuZ2VvQXppbXV0aGFsRXF1aWRpc3RhbnRSYXc9bG4sdC5nZW9Cb3VuZHM9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHM7aWYobnQ9cnQ9LSh0dD1ldD0xLzApLGx0PVtdLHoodCxTdCkscj1sdC5sZW5ndGgpe2ZvcihsdC5zb3J0KFJ0KSxlPTEsYT1bbj1sdFswXV07ZTxyOysrZSlGdChuLChpPWx0W2VdKVswXSl8fEZ0KG4saVsxXSk/KER0KG5bMF0saVsxXSk+RHQoblswXSxuWzFdKSYmKG5bMV09aVsxXSksRHQoaVswXSxuWzFdKT5EdChuWzBdLG5bMV0pJiYoblswXT1pWzBdKSk6YS5wdXNoKG49aSk7Zm9yKG89LTEvMCxlPTAsbj1hW3I9YS5sZW5ndGgtMV07ZTw9cjtuPWksKytlKWk9YVtlXSwocz1EdChuWzFdLGlbMF0pKT5vJiYobz1zLHR0PWlbMF0scnQ9blsxXSl9cmV0dXJuIGx0PWN0PW51bGwsdHQ9PT0xLzB8fGV0PT09MS8wP1tbTmFOLE5hTl0sW05hTixOYU5dXTpbW3R0LGV0XSxbcnQsbnRdXX0sdC5nZW9DZW50cm9pZD1mdW5jdGlvbih0KXt1dD1mdD1odD1wdD1kdD1tdD1ndD12dD15dD14dD1idD0wLHoodCxCdCk7dmFyIGU9eXQscj14dCxuPWJ0LGk9ZSplK3IqcituKm47cmV0dXJuIGk8MWUtMTImJihlPW10LHI9Z3Qsbj12dCxmdDxvJiYoZT1odCxyPXB0LG49ZHQpLChpPWUqZStyKnIrbipuKTwxZS0xMik/W05hTixOYU5dOlttKHIsZSkqZixNKG4vVChpKSkqZl19LHQuZ2VvQ2lyY2xlPWZ1bmN0aW9uKCl7dmFyIHQsZSxyPVp0KFswLDBdKSxuPVp0KDkwKSxpPVp0KDYpLGE9e3BvaW50OmZ1bmN0aW9uKHIsbil7dC5wdXNoKHI9ZShyLG4pKSxyWzBdKj1mLHJbMV0qPWZ9fTtmdW5jdGlvbiBvKCl7dmFyIG89ci5hcHBseSh0aGlzLGFyZ3VtZW50cykscz1uLmFwcGx5KHRoaXMsYXJndW1lbnRzKSpoLGw9aS5hcHBseSh0aGlzLGFyZ3VtZW50cykqaDtyZXR1cm4gdD1bXSxlPVF0KC1vWzBdKmgsLW9bMV0qaCwwKS5pbnZlcnQsbmUoYSxzLGwsMSksbz17dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W3RdfSx0PWU9bnVsbCxvfXJldHVybiBvLmNlbnRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0iZnVuY3Rpb24iPT10eXBlb2YgdD90Olp0KFsrdFswXSwrdFsxXV0pLG8pOnJ9LG8ucmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6WnQoK3QpLG8pOm59LG8ucHJlY2lzaW9uPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6WnQoK3QpLG8pOml9LG99LHQuZ2VvQ2xpcEFudGltZXJpZGlhbj1nZSx0Lmdlb0NsaXBDaXJjbGU9dmUsdC5nZW9DbGlwRXh0ZW50PWZ1bmN0aW9uKCl7dmFyIHQsZSxyLG49MCxpPTAsYT05NjAsbz01MDA7cmV0dXJuIHI9e3N0cmVhbTpmdW5jdGlvbihyKXtyZXR1cm4gdCYmZT09PXI/dDp0PXllKG4saSxhLG8pKGU9cil9LGV4dGVudDpmdW5jdGlvbihzKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0rc1swXVswXSxpPStzWzBdWzFdLGE9K3NbMV1bMF0sbz0rc1sxXVsxXSx0PWU9bnVsbCxyKTpbW24saV0sW2Esb11dfX19LHQuZ2VvQ2xpcFJlY3RhbmdsZT15ZSx0Lmdlb0NvbmljQ29uZm9ybWFsPWZ1bmN0aW9uKCl7cmV0dXJuIHRuKGhuKS5zY2FsZSgxMDkuNSkucGFyYWxsZWxzKFszMCwzMF0pfSx0Lmdlb0NvbmljQ29uZm9ybWFsUmF3PWhuLHQuZ2VvQ29uaWNFcXVhbEFyZWE9cm4sdC5nZW9Db25pY0VxdWFsQXJlYVJhdz1lbix0Lmdlb0NvbmljRXF1aWRpc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdG4oZG4pLnNjYWxlKDEzMS4xNTQpLmNlbnRlcihbMCwxMy45Mzg5XSl9LHQuZ2VvQ29uaWNFcXVpZGlzdGFudFJhdz1kbix0Lmdlb0NvbnRhaW5zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuKHQmJlBlLmhhc093blByb3BlcnR5KHQudHlwZSk/UGVbdC50eXBlXTpPZSkodCxlKX0sdC5nZW9EaXN0YW5jZT1DZSx0Lmdlb0VxdWFsRWFydGg9ZnVuY3Rpb24oKXtyZXR1cm4gUXIoYm4pLnNjYWxlKDE3Ny4xNTgpfSx0Lmdlb0VxdWFsRWFydGhSYXc9Ym4sdC5nZW9FcXVpcmVjdGFuZ3VsYXI9ZnVuY3Rpb24oKXtyZXR1cm4gUXIocG4pLnNjYWxlKDE1Mi42Myl9LHQuZ2VvRXF1aXJlY3Rhbmd1bGFyUmF3PXBuLHQuZ2VvR25vbW9uaWM9ZnVuY3Rpb24oKXtyZXR1cm4gUXIoX24pLnNjYWxlKDE0NC4wNDkpLmNsaXBBbmdsZSg2MCl9LHQuZ2VvR25vbW9uaWNSYXc9X24sdC5nZW9HcmF0aWN1bGU9VWUsdC5nZW9HcmF0aWN1bGUxMD1mdW5jdGlvbigpe3JldHVybiBVZSgpKCl9LHQuZ2VvSWRlbnRpdHk9ZnVuY3Rpb24oKXt2YXIgdCxlLHIsbixpLGEsbyxzPTEsbD0wLGM9MCx1PTEscD0xLGQ9MCxtPW51bGwsdj0xLHk9MSx4PWpyKHtwb2ludDpmdW5jdGlvbih0LGUpe3ZhciByPVQoW3QsZV0pO3RoaXMuc3RyZWFtLnBvaW50KHJbMF0sclsxXSl9fSksYj1WZTtmdW5jdGlvbiB3KCl7cmV0dXJuIHY9cyp1LHk9cypwLGE9bz1udWxsLFR9ZnVuY3Rpb24gVChyKXt2YXIgbj1yWzBdKnYsaT1yWzFdKnk7aWYoZCl7dmFyIGE9aSp0LW4qZTtuPW4qdCtpKmUsaT1hfXJldHVybltuK2wsaStjXX1yZXR1cm4gVC5pbnZlcnQ9ZnVuY3Rpb24ocil7dmFyIG49clswXS1sLGk9clsxXS1jO2lmKGQpe3ZhciBhPWkqdCtuKmU7bj1uKnQtaSplLGk9YX1yZXR1cm5bbi92LGkveV19LFQuc3RyZWFtPWZ1bmN0aW9uKHQpe3JldHVybiBhJiZvPT09dD9hOmE9eChiKG89dCkpfSxULnBvc3RjbGlwPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPXQsbT1yPW49aT1udWxsLHcoKSk6Yn0sVC5jbGlwRXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhiPW51bGw9PXQ/KG09cj1uPWk9bnVsbCxWZSk6eWUobT0rdFswXVswXSxyPSt0WzBdWzFdLG49K3RbMV1bMF0saT0rdFsxXVsxXSksdygpKTpudWxsPT1tP251bGw6W1ttLHJdLFtuLGldXX0sVC5zY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0rdCx3KCkpOnN9LFQudHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPSt0WzBdLGM9K3RbMV0sdygpKTpbbCxjXX0sVC5hbmdsZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1fKGQ9ciUzNjAqaCksdD1nKGQpLHcoKSk6ZCpmfSxULnJlZmxlY3RYPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh1PXQ/LTE6MSx3KCkpOnU8MH0sVC5yZWZsZWN0WT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocD10Py0xOjEsdygpKTpwPDB9LFQuZml0RXh0ZW50PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEhyKFQsdCxlKX0sVC5maXRTaXplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHFyKFQsdCxlKX0sVC5maXRXaWR0aD1mdW5jdGlvbih0LGUpe3JldHVybiBHcihULHQsZSl9LFQuZml0SGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFlyKFQsdCxlKX0sVH0sdC5nZW9JbnRlcnBvbGF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRbMF0qaCxuPXRbMV0qaCxpPWVbMF0qaCxhPWVbMV0qaCxvPWcobikscz1fKG4pLGw9ZyhhKSxjPV8oYSksdT1vKmcocikscD1vKl8ociksZD1sKmcoaSksdj1sKl8oaSkseT0yKk0oVChTKGEtbikrbypsKlMoaS1yKSkpLHg9Xyh5KSxiPXk/ZnVuY3Rpb24odCl7dmFyIGU9Xyh0Kj15KS94LHI9Xyh5LXQpL3gsbj1yKnUrZSpkLGk9cipwK2UqdixhPXIqcytlKmM7cmV0dXJuW20oaSxuKSpmLG0oYSxUKG4qbitpKmkpKSpmXX06ZnVuY3Rpb24oKXtyZXR1cm5bcipmLG4qZl19O3JldHVybiBiLmRpc3RhbmNlPXksYn0sdC5nZW9MZW5ndGg9U2UsdC5nZW9NZXJjYXRvcj1mdW5jdGlvbigpe3JldHVybiB1bihjbikuc2NhbGUoOTYxL3UpfSx0Lmdlb01lcmNhdG9yUmF3PWNuLHQuZ2VvTmF0dXJhbEVhcnRoMT1mdW5jdGlvbigpe3JldHVybiBRcih3bikuc2NhbGUoMTc1LjI5NSl9LHQuZ2VvTmF0dXJhbEVhcnRoMVJhdz13bix0Lmdlb09ydGhvZ3JhcGhpYz1mdW5jdGlvbigpe3JldHVybiBRcihUbikuc2NhbGUoMjQ5LjUpLmNsaXBBbmdsZSg5MCtvKX0sdC5nZW9PcnRob2dyYXBoaWNSYXc9VG4sdC5nZW9QYXRoPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPTQuNTtmdW5jdGlvbiBhKHQpe3JldHVybiB0JiYoImZ1bmN0aW9uIj09dHlwZW9mIGkmJm4ucG9pbnRSYWRpdXMoK2kuYXBwbHkodGhpcyxhcmd1bWVudHMpKSx6KHQscihuKSkpLG4ucmVzdWx0KCl9cmV0dXJuIGEuYXJlYT1mdW5jdGlvbih0KXtyZXR1cm4geih0LHIoWmUpKSxaZS5yZXN1bHQoKX0sYS5tZWFzdXJlPWZ1bmN0aW9uKHQpe3JldHVybiB6KHQscihEcikpLERyLnJlc3VsdCgpfSxhLmJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4geih0LHIoaXIpKSxpci5yZXN1bHQoKX0sYS5jZW50cm9pZD1mdW5jdGlvbih0KXtyZXR1cm4geih0LHIoeXIpKSx5ci5yZXN1bHQoKX0sYS5wcm9qZWN0aW9uPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhyPW51bGw9PWU/KHQ9bnVsbCxWZSk6KHQ9ZSkuc3RyZWFtLGEpOnR9LGEuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj1udWxsPT10PyhlPW51bGwsbmV3IEJyKTpuZXcgRXIoZT10KSwiZnVuY3Rpb24iIT10eXBlb2YgaSYmbi5wb2ludFJhZGl1cyhpKSxhKTplfSxhLnBvaW50UmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6KG4ucG9pbnRSYWRpdXMoK3QpLCt0KSxhKTppfSxhLnByb2plY3Rpb24odCkuY29udGV4dChlKX0sdC5nZW9Qcm9qZWN0aW9uPVFyLHQuZ2VvUHJvamVjdGlvbk11dGF0b3I9JHIsdC5nZW9Sb3RhdGlvbj1yZSx0Lmdlb1N0ZXJlb2dyYXBoaWM9ZnVuY3Rpb24oKXtyZXR1cm4gUXIoa24pLnNjYWxlKDI1MCkuY2xpcEFuZ2xlKDE0Mil9LHQuZ2VvU3RlcmVvZ3JhcGhpY1Jhdz1rbix0Lmdlb1N0cmVhbT16LHQuZ2VvVHJhbnNmb3JtPWZ1bmN0aW9uKHQpe3JldHVybntzdHJlYW06anIodCl9fSx0Lmdlb1RyYW5zdmVyc2VNZXJjYXRvcj1mdW5jdGlvbigpe3ZhciB0PXVuKEFuKSxlPXQuY2VudGVyLHI9dC5yb3RhdGU7cmV0dXJuIHQuY2VudGVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoWy10WzFdLHRbMF1dKTpbKHQ9ZSgpKVsxXSwtdFswXV19LHQucm90YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3IoW3RbMF0sdFsxXSx0Lmxlbmd0aD4yP3RbMl0rOTA6OTBdKTpbKHQ9cigpKVswXSx0WzFdLHRbMl0tOTBdfSxyKFswLDAsOTBdKS5zY2FsZSgxNTkuMTU1KX0sdC5nZW9UcmFuc3ZlcnNlTWVyY2F0b3JSYXc9QW4sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7ImQzLWFycmF5IjoxNTV9XSwxNjM6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/bihyKTpuKCh0PXR8fHNlbGYpLmQzPXQuZDN8fHt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCxlKXtyZXR1cm4gdC5wYXJlbnQ9PT1lLnBhcmVudD8xOjJ9ZnVuY3Rpb24gcih0LGUpe3JldHVybiB0K2UueH1mdW5jdGlvbiBuKHQsZSl7cmV0dXJuIE1hdGgubWF4KHQsZS55KX1mdW5jdGlvbiBpKHQpe3ZhciBlPTAscj10LmNoaWxkcmVuLG49ciYmci5sZW5ndGg7aWYobilmb3IoOy0tbj49MDspZSs9cltuXS52YWx1ZTtlbHNlIGU9MTt0LnZhbHVlPWV9ZnVuY3Rpb24gYSh0LGUpe3ZhciByLG4saSxhLHMsdT1uZXcgYyh0KSxmPSt0LnZhbHVlJiYodS52YWx1ZT10LnZhbHVlKSxoPVt1XTtmb3IobnVsbD09ZSYmKGU9byk7cj1oLnBvcCgpOylpZihmJiYoci52YWx1ZT0rci5kYXRhLnZhbHVlKSwoaT1lKHIuZGF0YSkpJiYocz1pLmxlbmd0aCkpZm9yKHIuY2hpbGRyZW49bmV3IEFycmF5KHMpLGE9cy0xO2E+PTA7LS1hKWgucHVzaChuPXIuY2hpbGRyZW5bYV09bmV3IGMoaVthXSkpLG4ucGFyZW50PXIsbi5kZXB0aD1yLmRlcHRoKzE7cmV0dXJuIHUuZWFjaEJlZm9yZShsKX1mdW5jdGlvbiBvKHQpe3JldHVybiB0LmNoaWxkcmVufWZ1bmN0aW9uIHModCl7dC5kYXRhPXQuZGF0YS5kYXRhfWZ1bmN0aW9uIGwodCl7dmFyIGU9MDtkb3t0LmhlaWdodD1lfXdoaWxlKCh0PXQucGFyZW50KSYmdC5oZWlnaHQ8KytlKX1mdW5jdGlvbiBjKHQpe3RoaXMuZGF0YT10LHRoaXMuZGVwdGg9dGhpcy5oZWlnaHQ9MCx0aGlzLnBhcmVudD1udWxsfWMucHJvdG90eXBlPWEucHJvdG90eXBlPXtjb25zdHJ1Y3RvcjpjLGNvdW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZWFjaEFmdGVyKGkpfSxlYWNoOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGE9dGhpcyxvPVthXTtkb3tmb3IoZT1vLnJldmVyc2UoKSxvPVtdO2E9ZS5wb3AoKTspaWYodChhKSxyPWEuY2hpbGRyZW4pZm9yKG49MCxpPXIubGVuZ3RoO248aTsrK24pby5wdXNoKHJbbl0pfXdoaWxlKG8ubGVuZ3RoKTtyZXR1cm4gdGhpc30sZWFjaEFmdGVyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG4saT10aGlzLGE9W2ldLG89W107aT1hLnBvcCgpOylpZihvLnB1c2goaSksZT1pLmNoaWxkcmVuKWZvcihyPTAsbj1lLmxlbmd0aDtyPG47KytyKWEucHVzaChlW3JdKTtmb3IoO2k9by5wb3AoKTspdChpKTtyZXR1cm4gdGhpc30sZWFjaEJlZm9yZTpmdW5jdGlvbih0KXtmb3IodmFyIGUscixuPXRoaXMsaT1bbl07bj1pLnBvcCgpOylpZih0KG4pLGU9bi5jaGlsZHJlbilmb3Iocj1lLmxlbmd0aC0xO3I+PTA7LS1yKWkucHVzaChlW3JdKTtyZXR1cm4gdGhpc30sc3VtOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmVhY2hBZnRlcigoZnVuY3Rpb24oZSl7Zm9yKHZhciByPSt0KGUuZGF0YSl8fDAsbj1lLmNoaWxkcmVuLGk9biYmbi5sZW5ndGg7LS1pPj0wOylyKz1uW2ldLnZhbHVlO2UudmFsdWU9cn0pKX0sc29ydDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5lYWNoQmVmb3JlKChmdW5jdGlvbihlKXtlLmNoaWxkcmVuJiZlLmNoaWxkcmVuLnNvcnQodCl9KSl9LHBhdGg6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMscj1mdW5jdGlvbih0LGUpe2lmKHQ9PT1lKXJldHVybiB0O3ZhciByPXQuYW5jZXN0b3JzKCksbj1lLmFuY2VzdG9ycygpLGk9bnVsbDt0PXIucG9wKCksZT1uLnBvcCgpO2Zvcig7dD09PWU7KWk9dCx0PXIucG9wKCksZT1uLnBvcCgpO3JldHVybiBpfShlLHQpLG49W2VdO2UhPT1yOyllPWUucGFyZW50LG4ucHVzaChlKTtmb3IodmFyIGk9bi5sZW5ndGg7dCE9PXI7KW4uc3BsaWNlKGksMCx0KSx0PXQucGFyZW50O3JldHVybiBufSxhbmNlc3RvcnM6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcyxlPVt0XTt0PXQucGFyZW50OyllLnB1c2godCk7cmV0dXJuIGV9LGRlc2NlbmRhbnRzOmZ1bmN0aW9uKCl7dmFyIHQ9W107cmV0dXJuIHRoaXMuZWFjaCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUpfSkpLHR9LGxlYXZlczpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKGUpe2UuY2hpbGRyZW58fHQucHVzaChlKX0pKSx0fSxsaW5rczpmdW5jdGlvbigpe3ZhciB0PXRoaXMsZT1bXTtyZXR1cm4gdC5lYWNoKChmdW5jdGlvbihyKXtyIT09dCYmZS5wdXNoKHtzb3VyY2U6ci5wYXJlbnQsdGFyZ2V0OnJ9KX0pKSxlfSxjb3B5OmZ1bmN0aW9uKCl7cmV0dXJuIGEodGhpcykuZWFjaEJlZm9yZShzKX19O3ZhciB1PUFycmF5LnByb3RvdHlwZS5zbGljZTtmdW5jdGlvbiBmKHQpe2Zvcih2YXIgZSxyLG49MCxpPSh0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLG49dC5sZW5ndGg7bjspcj1NYXRoLnJhbmRvbSgpKm4tLXwwLGU9dFtuXSx0W25dPXRbcl0sdFtyXT1lO3JldHVybiB0fSh1LmNhbGwodCkpKS5sZW5ndGgsYT1bXTtuPGk7KWU9dFtuXSxyJiZkKHIsZSk/KytuOihyPWcoYT1oKGEsZSkpLG49MCk7cmV0dXJuIHJ9ZnVuY3Rpb24gaCh0LGUpe3ZhciByLG47aWYobShlLHQpKXJldHVybltlXTtmb3Iocj0wO3I8dC5sZW5ndGg7KytyKWlmKHAoZSx0W3JdKSYmbSh2KHRbcl0sZSksdCkpcmV0dXJuW3Rbcl0sZV07Zm9yKHI9MDtyPHQubGVuZ3RoLTE7KytyKWZvcihuPXIrMTtuPHQubGVuZ3RoOysrbilpZihwKHYodFtyXSx0W25dKSxlKSYmcCh2KHRbcl0sZSksdFtuXSkmJnAodih0W25dLGUpLHRbcl0pJiZtKHkodFtyXSx0W25dLGUpLHQpKXJldHVyblt0W3JdLHRbbl0sZV07dGhyb3cgbmV3IEVycm9yfWZ1bmN0aW9uIHAodCxlKXt2YXIgcj10LnItZS5yLG49ZS54LXQueCxpPWUueS10Lnk7cmV0dXJuIHI8MHx8cipyPG4qbitpKml9ZnVuY3Rpb24gZCh0LGUpe3ZhciByPXQuci1lLnIrMWUtNixuPWUueC10LngsaT1lLnktdC55O3JldHVybiByPjAmJnIqcj5uKm4raSppfWZ1bmN0aW9uIG0odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcilpZighZCh0LGVbcl0pKXJldHVybiExO3JldHVybiEwfWZ1bmN0aW9uIGcodCl7c3dpdGNoKHQubGVuZ3RoKXtjYXNlIDE6cmV0dXJue3g6KGU9dFswXSkueCx5OmUueSxyOmUucn07Y2FzZSAyOnJldHVybiB2KHRbMF0sdFsxXSk7Y2FzZSAzOnJldHVybiB5KHRbMF0sdFsxXSx0WzJdKX12YXIgZX1mdW5jdGlvbiB2KHQsZSl7dmFyIHI9dC54LG49dC55LGk9dC5yLGE9ZS54LG89ZS55LHM9ZS5yLGw9YS1yLGM9by1uLHU9cy1pLGY9TWF0aC5zcXJ0KGwqbCtjKmMpO3JldHVybnt4OihyK2ErbC9mKnUpLzIseToobitvK2MvZip1KS8yLHI6KGYraStzKS8yfX1mdW5jdGlvbiB5KHQsZSxyKXt2YXIgbj10LngsaT10LnksYT10LnIsbz1lLngscz1lLnksbD1lLnIsYz1yLngsdT1yLnksZj1yLnIsaD1uLW8scD1uLWMsZD1pLXMsbT1pLXUsZz1sLWEsdj1mLWEseT1uKm4raSppLWEqYSx4PXktbypvLXMqcytsKmwsYj15LWMqYy11KnUrZipmLF89cCpkLWgqbSx3PShkKmItbSp4KS8oMipfKS1uLFQ9KG0qZy1kKnYpL18saz0ocCp4LWgqYikvKDIqXyktaSxBPShoKnYtcCpnKS9fLE09VCpUK0EqQS0xLFM9MiooYSt3KlQraypBKSxFPXcqdytrKmstYSphLEw9LShNPyhTK01hdGguc3FydChTKlMtNCpNKkUpKS8oMipNKTpFL1MpO3JldHVybnt4Om4rdytUKkwseTppK2srQSpMLHI6TH19ZnVuY3Rpb24geCh0LGUscil7dmFyIG4saSxhLG8scz10LngtZS54LGw9dC55LWUueSxjPXMqcytsKmw7Yz8oaT1lLnIrci5yLGkqPWksbz10LnIrci5yLGk+KG8qPW8pPyhuPShjK28taSkvKDIqYyksYT1NYXRoLnNxcnQoTWF0aC5tYXgoMCxvL2MtbipuKSksci54PXQueC1uKnMtYSpsLHIueT10LnktbipsK2Eqcyk6KG49KGMraS1vKS8oMipjKSxhPU1hdGguc3FydChNYXRoLm1heCgwLGkvYy1uKm4pKSxyLng9ZS54K24qcy1hKmwsci55PWUueStuKmwrYSpzKSk6KHIueD1lLngrci5yLHIueT1lLnkpfWZ1bmN0aW9uIGIodCxlKXt2YXIgcj10LnIrZS5yLTFlLTYsbj1lLngtdC54LGk9ZS55LXQueTtyZXR1cm4gcj4wJiZyKnI+bipuK2kqaX1mdW5jdGlvbiBfKHQpe3ZhciBlPXQuXyxyPXQubmV4dC5fLG49ZS5yK3IucixpPShlLngqci5yK3IueCplLnIpL24sYT0oZS55KnIucityLnkqZS5yKS9uO3JldHVybiBpKmkrYSphfWZ1bmN0aW9uIHcodCl7dGhpcy5fPXQsdGhpcy5uZXh0PW51bGwsdGhpcy5wcmV2aW91cz1udWxsfWZ1bmN0aW9uIFQodCl7aWYoIShpPXQubGVuZ3RoKSlyZXR1cm4gMDt2YXIgZSxyLG4saSxhLG8scyxsLGMsdSxoO2lmKChlPXRbMF0pLng9MCxlLnk9MCwhKGk+MSkpcmV0dXJuIGUucjtpZihyPXRbMV0sZS54PS1yLnIsci54PWUucixyLnk9MCwhKGk+MikpcmV0dXJuIGUucityLnI7eChyLGUsbj10WzJdKSxlPW5ldyB3KGUpLHI9bmV3IHcociksbj1uZXcgdyhuKSxlLm5leHQ9bi5wcmV2aW91cz1yLHIubmV4dD1lLnByZXZpb3VzPW4sbi5uZXh0PXIucHJldmlvdXM9ZTt0OmZvcihzPTM7czxpOysrcyl7eChlLl8sci5fLG49dFtzXSksbj1uZXcgdyhuKSxsPXIubmV4dCxjPWUucHJldmlvdXMsdT1yLl8ucixoPWUuXy5yO2Rve2lmKHU8PWgpe2lmKGIobC5fLG4uXykpe3I9bCxlLm5leHQ9cixyLnByZXZpb3VzPWUsLS1zO2NvbnRpbnVlIHR9dSs9bC5fLnIsbD1sLm5leHR9ZWxzZXtpZihiKGMuXyxuLl8pKXsoZT1jKS5uZXh0PXIsci5wcmV2aW91cz1lLC0tcztjb250aW51ZSB0fWgrPWMuXy5yLGM9Yy5wcmV2aW91c319d2hpbGUobCE9PWMubmV4dCk7Zm9yKG4ucHJldmlvdXM9ZSxuLm5leHQ9cixlLm5leHQ9ci5wcmV2aW91cz1yPW4sYT1fKGUpOyhuPW4ubmV4dCkhPT1yOykobz1fKG4pKTxhJiYoZT1uLGE9byk7cj1lLm5leHR9Zm9yKGU9W3IuX10sbj1yOyhuPW4ubmV4dCkhPT1yOyllLnB1c2gobi5fKTtmb3Iobj1mKGUpLHM9MDtzPGk7KytzKShlPXRbc10pLngtPW4ueCxlLnktPW4ueTtyZXR1cm4gbi5yfWZ1bmN0aW9uIGsodCl7cmV0dXJuIG51bGw9PXQ/bnVsbDpBKHQpfWZ1bmN0aW9uIEEodCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IEVycm9yO3JldHVybiB0fWZ1bmN0aW9uIE0oKXtyZXR1cm4gMH1mdW5jdGlvbiBTKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBFKHQpe3JldHVybiBNYXRoLnNxcnQodC52YWx1ZSl9ZnVuY3Rpb24gTCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5jaGlsZHJlbnx8KGUucj1NYXRoLm1heCgwLCt0KGUpfHwwKSl9fWZ1bmN0aW9uIEModCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7aWYobj1yLmNoaWxkcmVuKXt2YXIgbixpLGEsbz1uLmxlbmd0aCxzPXQocikqZXx8MDtpZihzKWZvcihpPTA7aTxvOysraSluW2ldLnIrPXM7aWYoYT1UKG4pLHMpZm9yKGk9MDtpPG87KytpKW5baV0uci09cztyLnI9YStzfX19ZnVuY3Rpb24gUCh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9ZS5wYXJlbnQ7ZS5yKj10LHImJihlLng9ci54K3QqZS54LGUueT1yLnkrdCplLnkpfX1mdW5jdGlvbiBJKHQpe3QueDA9TWF0aC5yb3VuZCh0LngwKSx0LnkwPU1hdGgucm91bmQodC55MCksdC54MT1NYXRoLnJvdW5kKHQueDEpLHQueTE9TWF0aC5yb3VuZCh0LnkxKX1mdW5jdGlvbiBPKHQsZSxyLG4saSl7Zm9yKHZhciBhLG89dC5jaGlsZHJlbixzPS0xLGw9by5sZW5ndGgsYz10LnZhbHVlJiYobi1lKS90LnZhbHVlOysrczxsOykoYT1vW3NdKS55MD1yLGEueTE9aSxhLngwPWUsYS54MT1lKz1hLnZhbHVlKmN9dmFyIHo9e2RlcHRoOi0xfSxEPXt9O2Z1bmN0aW9uIFIodCl7cmV0dXJuIHQuaWR9ZnVuY3Rpb24gRih0KXtyZXR1cm4gdC5wYXJlbnRJZH1mdW5jdGlvbiBCKHQsZSl7cmV0dXJuIHQucGFyZW50PT09ZS5wYXJlbnQ/MToyfWZ1bmN0aW9uIE4odCl7dmFyIGU9dC5jaGlsZHJlbjtyZXR1cm4gZT9lWzBdOnQudH1mdW5jdGlvbiBqKHQpe3ZhciBlPXQuY2hpbGRyZW47cmV0dXJuIGU/ZVtlLmxlbmd0aC0xXTp0LnR9ZnVuY3Rpb24gVSh0LGUscil7dmFyIG49ci8oZS5pLXQuaSk7ZS5jLT1uLGUucys9cix0LmMrPW4sZS56Kz1yLGUubSs9cn1mdW5jdGlvbiBWKHQsZSxyKXtyZXR1cm4gdC5hLnBhcmVudD09PWUucGFyZW50P3QuYTpyfWZ1bmN0aW9uIEgodCxlKXt0aGlzLl89dCx0aGlzLnBhcmVudD1udWxsLHRoaXMuY2hpbGRyZW49bnVsbCx0aGlzLkE9bnVsbCx0aGlzLmE9dGhpcyx0aGlzLno9MCx0aGlzLm09MCx0aGlzLmM9MCx0aGlzLnM9MCx0aGlzLnQ9bnVsbCx0aGlzLmk9ZX1mdW5jdGlvbiBxKHQsZSxyLG4saSl7Zm9yKHZhciBhLG89dC5jaGlsZHJlbixzPS0xLGw9by5sZW5ndGgsYz10LnZhbHVlJiYoaS1yKS90LnZhbHVlOysrczxsOykoYT1vW3NdKS54MD1lLGEueDE9bixhLnkwPXIsYS55MT1yKz1hLnZhbHVlKmN9SC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShjLnByb3RvdHlwZSk7dmFyIEc9KDErTWF0aC5zcXJ0KDUpKS8yO2Z1bmN0aW9uIFkodCxlLHIsbixpLGEpe2Zvcih2YXIgbyxzLGwsYyx1LGYsaCxwLGQsbSxnLHY9W10seT1lLmNoaWxkcmVuLHg9MCxiPTAsXz15Lmxlbmd0aCx3PWUudmFsdWU7eDxfOyl7bD1pLXIsYz1hLW47ZG97dT15W2IrK10udmFsdWV9d2hpbGUoIXUmJmI8Xyk7Zm9yKGY9aD11LGc9dSp1KihtPU1hdGgubWF4KGMvbCxsL2MpLyh3KnQpKSxkPU1hdGgubWF4KGgvZyxnL2YpO2I8XzsrK2Ipe2lmKHUrPXM9eVtiXS52YWx1ZSxzPGYmJihmPXMpLHM+aCYmKGg9cyksZz11KnUqbSwocD1NYXRoLm1heChoL2csZy9mKSk+ZCl7dS09czticmVha31kPXB9di5wdXNoKG89e3ZhbHVlOnUsZGljZTpsPGMsY2hpbGRyZW46eS5zbGljZSh4LGIpfSksby5kaWNlP08obyxyLG4saSx3P24rPWMqdS93OmEpOnEobyxyLG4sdz9yKz1sKnUvdzppLGEpLHctPXUseD1ifXJldHVybiB2fXZhciBXPWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0LHIsbixpLGEpe1koZSx0LHIsbixpLGEpfXJldHVybiByLnJhdGlvPWZ1bmN0aW9uKGUpe3JldHVybiB0KChlPStlKT4xP2U6MSl9LHJ9KEcpO3ZhciBYPWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0LHIsbixpLGEpe2lmKChvPXQuX3NxdWFyaWZ5KSYmby5yYXRpbz09PWUpZm9yKHZhciBvLHMsbCxjLHUsZj0tMSxoPW8ubGVuZ3RoLHA9dC52YWx1ZTsrK2Y8aDspe2ZvcihsPShzPW9bZl0pLmNoaWxkcmVuLGM9cy52YWx1ZT0wLHU9bC5sZW5ndGg7Yzx1OysrYylzLnZhbHVlKz1sW2NdLnZhbHVlO3MuZGljZT9PKHMscixuLGksbis9KGEtbikqcy52YWx1ZS9wKTpxKHMscixuLHIrPShpLXIpKnMudmFsdWUvcCxhKSxwLT1zLnZhbHVlfWVsc2UgdC5fc3F1YXJpZnk9bz1ZKGUsdCxyLG4saSxhKSxvLnJhdGlvPWV9cmV0dXJuIHIucmF0aW89ZnVuY3Rpb24oZSl7cmV0dXJuIHQoKGU9K2UpPjE/ZToxKX0scn0oRyk7dC5jbHVzdGVyPWZ1bmN0aW9uKCl7dmFyIHQ9ZSxpPTEsYT0xLG89ITE7ZnVuY3Rpb24gcyhlKXt2YXIgcyxsPTA7ZS5lYWNoQWZ0ZXIoKGZ1bmN0aW9uKGUpe3ZhciBpPWUuY2hpbGRyZW47aT8oZS54PWZ1bmN0aW9uKHQpe3JldHVybiB0LnJlZHVjZShyLDApL3QubGVuZ3RofShpKSxlLnk9ZnVuY3Rpb24odCl7cmV0dXJuIDErdC5yZWR1Y2UobiwwKX0oaSkpOihlLng9cz9sKz10KGUscyk6MCxlLnk9MCxzPWUpfSkpO3ZhciBjPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZTtlPXQuY2hpbGRyZW47KXQ9ZVswXTtyZXR1cm4gdH0oZSksdT1mdW5jdGlvbih0KXtmb3IodmFyIGU7ZT10LmNoaWxkcmVuOyl0PWVbZS5sZW5ndGgtMV07cmV0dXJuIHR9KGUpLGY9Yy54LXQoYyx1KS8yLGg9dS54K3QodSxjKS8yO3JldHVybiBlLmVhY2hBZnRlcihvP2Z1bmN0aW9uKHQpe3QueD0odC54LWUueCkqaSx0Lnk9KGUueS10LnkpKmF9OmZ1bmN0aW9uKHQpe3QueD0odC54LWYpLyhoLWYpKmksdC55PSgxLShlLnk/dC55L2UueToxKSkqYX0pfXJldHVybiBzLnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxzKTp0fSxzLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ITEsaT0rdFswXSxhPSt0WzFdLHMpOm8/bnVsbDpbaSxhXX0scy5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0hMCxpPSt0WzBdLGE9K3RbMV0scyk6bz9baSxhXTpudWxsfSxzfSx0LmhpZXJhcmNoeT1hLHQucGFjaz1mdW5jdGlvbigpe3ZhciB0PW51bGwsZT0xLHI9MSxuPU07ZnVuY3Rpb24gaShpKXtyZXR1cm4gaS54PWUvMixpLnk9ci8yLHQ/aS5lYWNoQmVmb3JlKEwodCkpLmVhY2hBZnRlcihDKG4sLjUpKS5lYWNoQmVmb3JlKFAoMSkpOmkuZWFjaEJlZm9yZShMKEUpKS5lYWNoQWZ0ZXIoQyhNLDEpKS5lYWNoQWZ0ZXIoQyhuLGkuci9NYXRoLm1pbihlLHIpKSkuZWFjaEJlZm9yZShQKE1hdGgubWluKGUscikvKDIqaS5yKSkpLGl9cmV0dXJuIGkucmFkaXVzPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PWsoZSksaSk6dH0saS5zaXplPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPSt0WzBdLHI9K3RbMV0saSk6W2Uscl19LGkucGFkZGluZz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlMoK3QpLGkpOm59LGl9LHQucGFja0VuY2xvc2U9Zix0LnBhY2tTaWJsaW5ncz1mdW5jdGlvbih0KXtyZXR1cm4gVCh0KSx0fSx0LnBhcnRpdGlvbj1mdW5jdGlvbigpe3ZhciB0PTEsZT0xLHI9MCxuPSExO2Z1bmN0aW9uIGkoaSl7dmFyIGE9aS5oZWlnaHQrMTtyZXR1cm4gaS54MD1pLnkwPXIsaS54MT10LGkueTE9ZS9hLGkuZWFjaEJlZm9yZShmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihuKXtuLmNoaWxkcmVuJiZPKG4sbi54MCx0KihuLmRlcHRoKzEpL2Usbi54MSx0KihuLmRlcHRoKzIpL2UpO3ZhciBpPW4ueDAsYT1uLnkwLG89bi54MS1yLHM9bi55MS1yO288aSYmKGk9bz0oaStvKS8yKSxzPGEmJihhPXM9KGErcykvMiksbi54MD1pLG4ueTA9YSxuLngxPW8sbi55MT1zfX0oZSxhKSksbiYmaS5lYWNoQmVmb3JlKEkpLGl9cmV0dXJuIGkucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ISF0LGkpOm59LGkuc2l6ZT1mdW5jdGlvbihyKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0rclswXSxlPStyWzFdLGkpOlt0LGVdfSxpLnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHI9K3QsaSk6cn0saX0sdC5zdHJhdGlmeT1mdW5jdGlvbigpe3ZhciB0PVIsZT1GO2Z1bmN0aW9uIHIocil7dmFyIG4saSxhLG8scyx1LGYsaD1yLmxlbmd0aCxwPW5ldyBBcnJheShoKSxkPXt9O2ZvcihpPTA7aTxoOysraSluPXJbaV0scz1wW2ldPW5ldyBjKG4pLG51bGwhPSh1PXQobixpLHIpKSYmKHUrPSIiKSYmKGRbZj0iJCIrKHMuaWQ9dSldPWYgaW4gZD9EOnMpO2ZvcihpPTA7aTxoOysraSlpZihzPXBbaV0sbnVsbCE9KHU9ZShyW2ldLGkscikpJiYodSs9IiIpKXtpZighKG89ZFsiJCIrdV0pKXRocm93IG5ldyBFcnJvcigibWlzc2luZzogIit1KTtpZihvPT09RCl0aHJvdyBuZXcgRXJyb3IoImFtYmlndW91czogIit1KTtvLmNoaWxkcmVuP28uY2hpbGRyZW4ucHVzaChzKTpvLmNoaWxkcmVuPVtzXSxzLnBhcmVudD1vfWVsc2V7aWYoYSl0aHJvdyBuZXcgRXJyb3IoIm11bHRpcGxlIHJvb3RzIik7YT1zfWlmKCFhKXRocm93IG5ldyBFcnJvcigibm8gcm9vdCIpO2lmKGEucGFyZW50PXosYS5lYWNoQmVmb3JlKChmdW5jdGlvbih0KXt0LmRlcHRoPXQucGFyZW50LmRlcHRoKzEsLS1ofSkpLmVhY2hCZWZvcmUobCksYS5wYXJlbnQ9bnVsbCxoPjApdGhyb3cgbmV3IEVycm9yKCJjeWNsZSIpO3JldHVybiBhfXJldHVybiByLmlkPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PUEoZSkscik6dH0sci5wYXJlbnRJZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1BKHQpLHIpOmV9LHJ9LHQudHJlZT1mdW5jdGlvbigpe3ZhciB0PUIsZT0xLHI9MSxuPW51bGw7ZnVuY3Rpb24gaShpKXt2YXIgbD1mdW5jdGlvbih0KXtmb3IodmFyIGUscixuLGksYSxvPW5ldyBIKHQsMCkscz1bb107ZT1zLnBvcCgpOylpZihuPWUuXy5jaGlsZHJlbilmb3IoZS5jaGlsZHJlbj1uZXcgQXJyYXkoYT1uLmxlbmd0aCksaT1hLTE7aT49MDstLWkpcy5wdXNoKHI9ZS5jaGlsZHJlbltpXT1uZXcgSChuW2ldLGkpKSxyLnBhcmVudD1lO3JldHVybihvLnBhcmVudD1uZXcgSChudWxsLDApKS5jaGlsZHJlbj1bb10sb30oaSk7aWYobC5lYWNoQWZ0ZXIoYSksbC5wYXJlbnQubT0tbC56LGwuZWFjaEJlZm9yZShvKSxuKWkuZWFjaEJlZm9yZShzKTtlbHNle3ZhciBjPWksdT1pLGY9aTtpLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKHQpe3QueDxjLngmJihjPXQpLHQueD51LngmJih1PXQpLHQuZGVwdGg+Zi5kZXB0aCYmKGY9dCl9KSk7dmFyIGg9Yz09PXU/MTp0KGMsdSkvMixwPWgtYy54LGQ9ZS8odS54K2grcCksbT1yLyhmLmRlcHRofHwxKTtpLmVhY2hCZWZvcmUoKGZ1bmN0aW9uKHQpe3QueD0odC54K3ApKmQsdC55PXQuZGVwdGgqbX0pKX1yZXR1cm4gaX1mdW5jdGlvbiBhKGUpe3ZhciByPWUuY2hpbGRyZW4sbj1lLnBhcmVudC5jaGlsZHJlbixpPWUuaT9uW2UuaS0xXTpudWxsO2lmKHIpeyFmdW5jdGlvbih0KXtmb3IodmFyIGUscj0wLG49MCxpPXQuY2hpbGRyZW4sYT1pLmxlbmd0aDstLWE+PTA7KShlPWlbYV0pLnorPXIsZS5tKz1yLHIrPWUucysobis9ZS5jKX0oZSk7dmFyIGE9KHJbMF0ueityW3IubGVuZ3RoLTFdLnopLzI7aT8oZS56PWkueit0KGUuXyxpLl8pLGUubT1lLnotYSk6ZS56PWF9ZWxzZSBpJiYoZS56PWkueit0KGUuXyxpLl8pKTtlLnBhcmVudC5BPWZ1bmN0aW9uKGUscixuKXtpZihyKXtmb3IodmFyIGksYT1lLG89ZSxzPXIsbD1hLnBhcmVudC5jaGlsZHJlblswXSxjPWEubSx1PW8ubSxmPXMubSxoPWwubTtzPWoocyksYT1OKGEpLHMmJmE7KWw9TihsKSwobz1qKG8pKS5hPWUsKGk9cy56K2YtYS56LWMrdChzLl8sYS5fKSk+MCYmKFUoVihzLGUsbiksZSxpKSxjKz1pLHUrPWkpLGYrPXMubSxjKz1hLm0saCs9bC5tLHUrPW8ubTtzJiYhaihvKSYmKG8udD1zLG8ubSs9Zi11KSxhJiYhTihsKSYmKGwudD1hLGwubSs9Yy1oLG49ZSl9cmV0dXJuIG59KGUsaSxlLnBhcmVudC5BfHxuWzBdKX1mdW5jdGlvbiBvKHQpe3QuXy54PXQueit0LnBhcmVudC5tLHQubSs9dC5wYXJlbnQubX1mdW5jdGlvbiBzKHQpe3QueCo9ZSx0Lnk9dC5kZXB0aCpyfXJldHVybiBpLnNlcGFyYXRpb249ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ZSxpKTp0fSxpLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ITEsZT0rdFswXSxyPSt0WzFdLGkpOm4/bnVsbDpbZSxyXX0saS5ub2RlU2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj0hMCxlPSt0WzBdLHI9K3RbMV0saSk6bj9bZSxyXTpudWxsfSxpfSx0LnRyZWVtYXA9ZnVuY3Rpb24oKXt2YXIgdD1XLGU9ITEscj0xLG49MSxpPVswXSxhPU0sbz1NLHM9TSxsPU0sYz1NO2Z1bmN0aW9uIHUodCl7cmV0dXJuIHQueDA9dC55MD0wLHQueDE9cix0LnkxPW4sdC5lYWNoQmVmb3JlKGYpLGk9WzBdLGUmJnQuZWFjaEJlZm9yZShJKSx0fWZ1bmN0aW9uIGYoZSl7dmFyIHI9aVtlLmRlcHRoXSxuPWUueDArcix1PWUueTArcixmPWUueDEtcixoPWUueTEtcjtmPG4mJihuPWY9KG4rZikvMiksaDx1JiYodT1oPSh1K2gpLzIpLGUueDA9bixlLnkwPXUsZS54MT1mLGUueTE9aCxlLmNoaWxkcmVuJiYocj1pW2UuZGVwdGgrMV09YShlKS8yLG4rPWMoZSktcix1Kz1vKGUpLXIsKGYtPXMoZSktcik8biYmKG49Zj0obitmKS8yKSwoaC09bChlKS1yKTx1JiYodT1oPSh1K2gpLzIpLHQoZSxuLHUsZixoKSl9cmV0dXJuIHUucm91bmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGU9ISF0LHUpOmV9LHUuc2l6ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocj0rdFswXSxuPSt0WzFdLHUpOltyLG5dfSx1LnRpbGU9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9QShlKSx1KTp0fSx1LnBhZGRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nSW5uZXIodCkucGFkZGluZ091dGVyKHQpOnUucGFkZGluZ0lubmVyKCl9LHUucGFkZGluZ0lubmVyPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6UygrdCksdSk6YX0sdS5wYWRkaW5nT3V0ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/dS5wYWRkaW5nVG9wKHQpLnBhZGRpbmdSaWdodCh0KS5wYWRkaW5nQm90dG9tKHQpLnBhZGRpbmdMZWZ0KHQpOnUucGFkZGluZ1RvcCgpfSx1LnBhZGRpbmdUb3A9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpTKCt0KSx1KTpvfSx1LnBhZGRpbmdSaWdodD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8ocz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlMoK3QpLHUpOnN9LHUucGFkZGluZ0JvdHRvbT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obD0iZnVuY3Rpb24iPT10eXBlb2YgdD90OlMoK3QpLHUpOmx9LHUucGFkZGluZ0xlZnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGM9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpTKCt0KSx1KTpjfSx1fSx0LnRyZWVtYXBCaW5hcnk9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYSxvLHM9dC5jaGlsZHJlbixsPXMubGVuZ3RoLGM9bmV3IEFycmF5KGwrMSk7Zm9yKGNbMF09bz1hPTA7YTxsOysrYSljW2ErMV09bys9c1thXS52YWx1ZTshZnVuY3Rpb24gdChlLHIsbixpLGEsbyxsKXtpZihlPj1yLTEpe3ZhciB1PXNbZV07cmV0dXJuIHUueDA9aSx1LnkwPWEsdS54MT1vLHZvaWQodS55MT1sKX12YXIgZj1jW2VdLGg9bi8yK2YscD1lKzEsZD1yLTE7Zm9yKDtwPGQ7KXt2YXIgbT1wK2Q+Pj4xO2NbbV08aD9wPW0rMTpkPW19aC1jW3AtMV08Y1twXS1oJiZlKzE8cCYmLS1wO3ZhciBnPWNbcF0tZix2PW4tZztpZihvLWk+bC1hKXt2YXIgeT0oaSp2K28qZykvbjt0KGUscCxnLGksYSx5LGwpLHQocCxyLHYseSxhLG8sbCl9ZWxzZXt2YXIgeD0oYSp2K2wqZykvbjt0KGUscCxnLGksYSxvLHgpLHQocCxyLHYsaSx4LG8sbCl9fSgwLGwsdC52YWx1ZSxlLHIsbixpKX0sdC50cmVlbWFwRGljZT1PLHQudHJlZW1hcFJlc3F1YXJpZnk9WCx0LnRyZWVtYXBTbGljZT1xLHQudHJlZW1hcFNsaWNlRGljZT1mdW5jdGlvbih0LGUscixuLGkpeygxJnQuZGVwdGg/cTpPKSh0LGUscixuLGkpfSx0LnRyZWVtYXBTcXVhcmlmeT1XLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0se31dLDE2NDpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbihuLGkpeyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9pKHIsdCgiZDMtY29sb3IiKSk6aSgobj1ufHxzZWxmKS5kMz1uLmQzfHx7fSxuLmQzKX0odGhpcywoZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0LGUscixuLGkpe3ZhciBhPXQqdCxvPWEqdDtyZXR1cm4oKDEtMyp0KzMqYS1vKSplKyg0LTYqYSszKm8pKnIrKDErMyp0KzMqYS0zKm8pKm4rbyppKS82fWZ1bmN0aW9uIG4odCl7dmFyIGU9dC5sZW5ndGgtMTtyZXR1cm4gZnVuY3Rpb24obil7dmFyIGk9bjw9MD9uPTA6bj49MT8obj0xLGUtMSk6TWF0aC5mbG9vcihuKmUpLGE9dFtpXSxvPXRbaSsxXSxzPWk+MD90W2ktMV06MiphLW8sbD1pPGUtMT90W2krMl06MipvLWE7cmV0dXJuIHIoKG4taS9lKSplLHMsYSxvLGwpfX1mdW5jdGlvbiBpKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiBmdW5jdGlvbihuKXt2YXIgaT1NYXRoLmZsb29yKCgobiU9MSk8MD8rK246bikqZSksYT10WyhpK2UtMSklZV0sbz10W2klZV0scz10WyhpKzEpJWVdLGw9dFsoaSsyKSVlXTtyZXR1cm4gcigobi1pL2UpKmUsYSxvLHMsbCl9fWZ1bmN0aW9uIGEodCl7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIHR9fWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7cmV0dXJuIHQrciplfX1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9ZS10O3JldHVybiByP28odCxyPjE4MHx8cjwtMTgwP3ItMzYwKk1hdGgucm91bmQoci8zNjApOnIpOmEoaXNOYU4odCk/ZTp0KX1mdW5jdGlvbiBsKHQpe3JldHVybiAxPT0odD0rdCk/YzpmdW5jdGlvbihlLHIpe3JldHVybiByLWU/ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PU1hdGgucG93KHQsciksZT1NYXRoLnBvdyhlLHIpLXQscj0xL3IsZnVuY3Rpb24obil7cmV0dXJuIE1hdGgucG93KHQrbiplLHIpfX0oZSxyLHQpOmEoaXNOYU4oZSk/cjplKX19ZnVuY3Rpb24gYyh0LGUpe3ZhciByPWUtdDtyZXR1cm4gcj9vKHQscik6YShpc05hTih0KT9lOnQpfXZhciB1PWZ1bmN0aW9uIHQocil7dmFyIG49bChyKTtmdW5jdGlvbiBpKHQscil7dmFyIGk9bigodD1lLnJnYih0KSkuciwocj1lLnJnYihyKSkuciksYT1uKHQuZyxyLmcpLG89bih0LmIsci5iKSxzPWModC5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0LnI9aShlKSx0Lmc9YShlKSx0LmI9byhlKSx0Lm9wYWNpdHk9cyhlKSx0KyIifX1yZXR1cm4gaS5nYW1tYT10LGl9KDEpO2Z1bmN0aW9uIGYodCl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuLGksYT1yLmxlbmd0aCxvPW5ldyBBcnJheShhKSxzPW5ldyBBcnJheShhKSxsPW5ldyBBcnJheShhKTtmb3Iobj0wO248YTsrK24paT1lLnJnYihyW25dKSxvW25dPWkucnx8MCxzW25dPWkuZ3x8MCxsW25dPWkuYnx8MDtyZXR1cm4gbz10KG8pLHM9dChzKSxsPXQobCksaS5vcGFjaXR5PTEsZnVuY3Rpb24odCl7cmV0dXJuIGkucj1vKHQpLGkuZz1zKHQpLGkuYj1sKHQpLGkrIiJ9fX12YXIgaD1mKG4pLHA9ZihpKTtmdW5jdGlvbiBkKHQsZSl7ZXx8KGU9W10pO3ZhciByLG49dD9NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk6MCxpPWUuc2xpY2UoKTtyZXR1cm4gZnVuY3Rpb24oYSl7Zm9yKHI9MDtyPG47KytyKWlbcl09dFtyXSooMS1hKStlW3JdKmE7cmV0dXJuIGl9fWZ1bmN0aW9uIG0odCl7cmV0dXJuIEFycmF5QnVmZmVyLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgRGF0YVZpZXcpfWZ1bmN0aW9uIGcodCxlKXt2YXIgcixuPWU/ZS5sZW5ndGg6MCxpPXQ/TWF0aC5taW4obix0Lmxlbmd0aCk6MCxhPW5ldyBBcnJheShpKSxvPW5ldyBBcnJheShuKTtmb3Iocj0wO3I8aTsrK3IpYVtyXT1UKHRbcl0sZVtyXSk7Zm9yKDtyPG47KytyKW9bcl09ZVtyXTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHI9MDtyPGk7KytyKW9bcl09YVtyXSh0KTtyZXR1cm4gb319ZnVuY3Rpb24gdih0LGUpe3ZhciByPW5ldyBEYXRlO3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24obil7cmV0dXJuIHIuc2V0VGltZSh0KigxLW4pK2Uqbikscn19ZnVuY3Rpb24geSh0LGUpe3JldHVybiB0PSt0LGU9K2UsZnVuY3Rpb24ocil7cmV0dXJuIHQqKDEtcikrZSpyfX1mdW5jdGlvbiB4KHQsZSl7dmFyIHIsbj17fSxpPXt9O2ZvcihyIGluIG51bGwhPT10JiYib2JqZWN0Ij09dHlwZW9mIHR8fCh0PXt9KSxudWxsIT09ZSYmIm9iamVjdCI9PXR5cGVvZiBlfHwoZT17fSksZSlyIGluIHQ/bltyXT1UKHRbcl0sZVtyXSk6aVtyXT1lW3JdO3JldHVybiBmdW5jdGlvbih0KXtmb3IociBpbiBuKWlbcl09bltyXSh0KTtyZXR1cm4gaX19dmFyIGI9L1stK10/KD86XGQrXC4/XGQqfFwuP1xkKykoPzpbZUVdWy0rXT9cZCspPy9nLF89bmV3IFJlZ0V4cChiLnNvdXJjZSwiZyIpO2Z1bmN0aW9uIHcodCxlKXt2YXIgcixuLGksYT1iLmxhc3RJbmRleD1fLmxhc3RJbmRleD0wLG89LTEscz1bXSxsPVtdO2Zvcih0Kz0iIixlKz0iIjsocj1iLmV4ZWModCkpJiYobj1fLmV4ZWMoZSkpOykoaT1uLmluZGV4KT5hJiYoaT1lLnNsaWNlKGEsaSksc1tvXT9zW29dKz1pOnNbKytvXT1pKSwocj1yWzBdKT09PShuPW5bMF0pP3Nbb10/c1tvXSs9bjpzWysrb109bjooc1srK29dPW51bGwsbC5wdXNoKHtpOm8seDp5KHIsbil9KSksYT1fLmxhc3RJbmRleDtyZXR1cm4gYTxlLmxlbmd0aCYmKGk9ZS5zbGljZShhKSxzW29dP3Nbb10rPWk6c1srK29dPWkpLHMubGVuZ3RoPDI/bFswXT9mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIHQoZSkrIiJ9fShsWzBdLngpOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX0oZSk6KGU9bC5sZW5ndGgsZnVuY3Rpb24odCl7Zm9yKHZhciByLG49MDtuPGU7KytuKXNbKHI9bFtuXSkuaV09ci54KHQpO3JldHVybiBzLmpvaW4oIiIpfSl9ZnVuY3Rpb24gVCh0LHIpe3ZhciBuLGk9dHlwZW9mIHI7cmV0dXJuIG51bGw9PXJ8fCJib29sZWFuIj09PWk/YShyKTooIm51bWJlciI9PT1pP3k6InN0cmluZyI9PT1pPyhuPWUuY29sb3IocikpPyhyPW4sdSk6dzpyIGluc3RhbmNlb2YgZS5jb2xvcj91OnIgaW5zdGFuY2VvZiBEYXRlP3Y6bShyKT9kOkFycmF5LmlzQXJyYXkocik/ZzoiZnVuY3Rpb24iIT10eXBlb2Ygci52YWx1ZU9mJiYiZnVuY3Rpb24iIT10eXBlb2Ygci50b1N0cmluZ3x8aXNOYU4ocik/eDp5KSh0LHIpfXZhciBrLEEsTSxTLEU9MTgwL01hdGguUEksTD17dHJhbnNsYXRlWDowLHRyYW5zbGF0ZVk6MCxyb3RhdGU6MCxza2V3WDowLHNjYWxlWDoxLHNjYWxlWToxfTtmdW5jdGlvbiBDKHQsZSxyLG4saSxhKXt2YXIgbyxzLGw7cmV0dXJuKG89TWF0aC5zcXJ0KHQqdCtlKmUpKSYmKHQvPW8sZS89byksKGw9dCpyK2UqbikmJihyLT10Kmwsbi09ZSpsKSwocz1NYXRoLnNxcnQocipyK24qbikpJiYoci89cyxuLz1zLGwvPXMpLHQqbjxlKnImJih0PS10LGU9LWUsbD0tbCxvPS1vKSx7dHJhbnNsYXRlWDppLHRyYW5zbGF0ZVk6YSxyb3RhdGU6TWF0aC5hdGFuMihlLHQpKkUsc2tld1g6TWF0aC5hdGFuKGwpKkUsc2NhbGVYOm8sc2NhbGVZOnN9fWZ1bmN0aW9uIFAodCxlLHIsbil7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5sZW5ndGg/dC5wb3AoKSsiICI6IiJ9cmV0dXJuIGZ1bmN0aW9uKGEsbyl7dmFyIHM9W10sbD1bXTtyZXR1cm4gYT10KGEpLG89dChvKSxmdW5jdGlvbih0LG4saSxhLG8scyl7aWYodCE9PWl8fG4hPT1hKXt2YXIgbD1vLnB1c2goInRyYW5zbGF0ZSgiLG51bGwsZSxudWxsLHIpO3MucHVzaCh7aTpsLTQseDp5KHQsaSl9LHtpOmwtMix4OnkobixhKX0pfWVsc2UoaXx8YSkmJm8ucHVzaCgidHJhbnNsYXRlKCIraStlK2Ercil9KGEudHJhbnNsYXRlWCxhLnRyYW5zbGF0ZVksby50cmFuc2xhdGVYLG8udHJhbnNsYXRlWSxzLGwpLGZ1bmN0aW9uKHQsZSxyLGEpe3QhPT1lPyh0LWU+MTgwP2UrPTM2MDplLXQ+MTgwJiYodCs9MzYwKSxhLnB1c2goe2k6ci5wdXNoKGkocikrInJvdGF0ZSgiLG51bGwsbiktMix4OnkodCxlKX0pKTplJiZyLnB1c2goaShyKSsicm90YXRlKCIrZStuKX0oYS5yb3RhdGUsby5yb3RhdGUscyxsKSxmdW5jdGlvbih0LGUscixhKXt0IT09ZT9hLnB1c2goe2k6ci5wdXNoKGkocikrInNrZXdYKCIsbnVsbCxuKS0yLHg6eSh0LGUpfSk6ZSYmci5wdXNoKGkocikrInNrZXdYKCIrZStuKX0oYS5za2V3WCxvLnNrZXdYLHMsbCksZnVuY3Rpb24odCxlLHIsbixhLG8pe2lmKHQhPT1yfHxlIT09bil7dmFyIHM9YS5wdXNoKGkoYSkrInNjYWxlKCIsbnVsbCwiLCIsbnVsbCwiKSIpO28ucHVzaCh7aTpzLTQseDp5KHQscil9LHtpOnMtMix4OnkoZSxuKX0pfWVsc2UgMT09PXImJjE9PT1ufHxhLnB1c2goaShhKSsic2NhbGUoIityKyIsIituKyIpIil9KGEuc2NhbGVYLGEuc2NhbGVZLG8uc2NhbGVYLG8uc2NhbGVZLHMsbCksYT1vPW51bGwsZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9LTEsbj1sLmxlbmd0aDsrK3I8bjspc1soZT1sW3JdKS5pXT1lLngodCk7cmV0dXJuIHMuam9pbigiIil9fX12YXIgST1QKChmdW5jdGlvbih0KXtyZXR1cm4ibm9uZSI9PT10P0w6KGt8fChrPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIkRJViIpLEE9ZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LE09ZG9jdW1lbnQuZGVmYXVsdFZpZXcpLGsuc3R5bGUudHJhbnNmb3JtPXQsdD1NLmdldENvbXB1dGVkU3R5bGUoQS5hcHBlbmRDaGlsZChrKSxudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCJ0cmFuc2Zvcm0iKSxBLnJlbW92ZUNoaWxkKGspLEMoKyh0PXQuc2xpY2UoNywtMSkuc3BsaXQoIiwiKSlbMF0sK3RbMV0sK3RbMl0sK3RbM10sK3RbNF0sK3RbNV0pKX0pLCJweCwgIiwicHgpIiwiZGVnKSIpLE89UCgoZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PXQ/TDooU3x8KFM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKSksUy5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdCksKHQ9Uy50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpKT9DKCh0PXQubWF0cml4KS5hLHQuYix0LmMsdC5kLHQuZSx0LmYpOkwpfSksIiwgIiwiKSIsIikiKSx6PU1hdGguU1FSVDI7ZnVuY3Rpb24gRCh0KXtyZXR1cm4oKHQ9TWF0aC5leHAodCkpKzEvdCkvMn1mdW5jdGlvbiBSKHQpe3JldHVybiBmdW5jdGlvbihyLG4pe3ZhciBpPXQoKHI9ZS5oc2wocikpLmgsKG49ZS5oc2wobikpLmgpLGE9YyhyLnMsbi5zKSxvPWMoci5sLG4ubCkscz1jKHIub3BhY2l0eSxuLm9wYWNpdHkpO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gci5oPWkodCksci5zPWEodCksci5sPW8odCksci5vcGFjaXR5PXModCkscisiIn19fXZhciBGPVIocyksQj1SKGMpO2Z1bmN0aW9uIE4odCl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGk9dCgocj1lLmhjbChyKSkuaCwobj1lLmhjbChuKSkuaCksYT1jKHIuYyxuLmMpLG89YyhyLmwsbi5sKSxzPWMoci5vcGFjaXR5LG4ub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLmg9aSh0KSxyLmM9YSh0KSxyLmw9byh0KSxyLm9wYWNpdHk9cyh0KSxyKyIifX19dmFyIGo9TihzKSxVPU4oYyk7ZnVuY3Rpb24gVih0KXtyZXR1cm4gZnVuY3Rpb24gcihuKXtmdW5jdGlvbiBpKHIsaSl7dmFyIGE9dCgocj1lLmN1YmVoZWxpeChyKSkuaCwoaT1lLmN1YmVoZWxpeChpKSkuaCksbz1jKHIucyxpLnMpLHM9YyhyLmwsaS5sKSxsPWMoci5vcGFjaXR5LGkub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiByLmg9YSh0KSxyLnM9byh0KSxyLmw9cyhNYXRoLnBvdyh0LG4pKSxyLm9wYWNpdHk9bCh0KSxyKyIifX1yZXR1cm4gbj0rbixpLmdhbW1hPXIsaX0oMSl9dmFyIEg9VihzKSxxPVYoYyk7dC5pbnRlcnBvbGF0ZT1ULHQuaW50ZXJwb2xhdGVBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybihtKGUpP2Q6ZykodCxlKX0sdC5pbnRlcnBvbGF0ZUJhc2lzPW4sdC5pbnRlcnBvbGF0ZUJhc2lzQ2xvc2VkPWksdC5pbnRlcnBvbGF0ZUN1YmVoZWxpeD1ILHQuaW50ZXJwb2xhdGVDdWJlaGVsaXhMb25nPXEsdC5pbnRlcnBvbGF0ZURhdGU9dix0LmludGVycG9sYXRlRGlzY3JldGU9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0W01hdGgubWF4KDAsTWF0aC5taW4oZS0xLE1hdGguZmxvb3IociplKSkpXX19LHQuaW50ZXJwb2xhdGVIY2w9aix0LmludGVycG9sYXRlSGNsTG9uZz1VLHQuaW50ZXJwb2xhdGVIc2w9Rix0LmludGVycG9sYXRlSHNsTG9uZz1CLHQuaW50ZXJwb2xhdGVIdWU9ZnVuY3Rpb24odCxlKXt2YXIgcj1zKCt0LCtlKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9cih0KTtyZXR1cm4gZS0zNjAqTWF0aC5mbG9vcihlLzM2MCl9fSx0LmludGVycG9sYXRlTGFiPWZ1bmN0aW9uKHQscil7dmFyIG49YygodD1lLmxhYih0KSkubCwocj1lLmxhYihyKSkubCksaT1jKHQuYSxyLmEpLGE9Yyh0LmIsci5iKSxvPWModC5vcGFjaXR5LHIub3BhY2l0eSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0Lmw9bihlKSx0LmE9aShlKSx0LmI9YShlKSx0Lm9wYWNpdHk9byhlKSx0KyIifX0sdC5pbnRlcnBvbGF0ZU51bWJlcj15LHQuaW50ZXJwb2xhdGVOdW1iZXJBcnJheT1kLHQuaW50ZXJwb2xhdGVPYmplY3Q9eCx0LmludGVycG9sYXRlUmdiPXUsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzPWgsdC5pbnRlcnBvbGF0ZVJnYkJhc2lzQ2xvc2VkPXAsdC5pbnRlcnBvbGF0ZVJvdW5kPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9K3QsZT0rZSxmdW5jdGlvbihyKXtyZXR1cm4gTWF0aC5yb3VuZCh0KigxLXIpK2Uqcil9fSx0LmludGVycG9sYXRlU3RyaW5nPXcsdC5pbnRlcnBvbGF0ZVRyYW5zZm9ybUNzcz1JLHQuaW50ZXJwb2xhdGVUcmFuc2Zvcm1Tdmc9Tyx0LmludGVycG9sYXRlWm9vbT1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10WzBdLGE9dFsxXSxvPXRbMl0scz1lWzBdLGw9ZVsxXSxjPWVbMl0sdT1zLWksZj1sLWEsaD11KnUrZipmO2lmKGg8MWUtMTIpbj1NYXRoLmxvZyhjL28pL3oscj1mdW5jdGlvbih0KXtyZXR1cm5baSt0KnUsYSt0KmYsbypNYXRoLmV4cCh6KnQqbildfTtlbHNle3ZhciBwPU1hdGguc3FydChoKSxkPShjKmMtbypvKzQqaCkvKDIqbyoyKnApLG09KGMqYy1vKm8tNCpoKS8oMipjKjIqcCksZz1NYXRoLmxvZyhNYXRoLnNxcnQoZCpkKzEpLWQpLHY9TWF0aC5sb2coTWF0aC5zcXJ0KG0qbSsxKS1tKTtuPSh2LWcpL3oscj1mdW5jdGlvbih0KXt2YXIgZSxyPXQqbixzPUQoZyksbD1vLygyKnApKihzKihlPXoqcitnLCgoZT1NYXRoLmV4cCgyKmUpKS0xKS8oZSsxKSktZnVuY3Rpb24odCl7cmV0dXJuKCh0PU1hdGguZXhwKHQpKS0xL3QpLzJ9KGcpKTtyZXR1cm5baStsKnUsYStsKmYsbypzL0QoeipyK2cpXX19cmV0dXJuIHIuZHVyYXRpb249MWUzKm4scn0sdC5waWVjZXdpc2U9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxuPWUubGVuZ3RoLTEsaT1lWzBdLGE9bmV3IEFycmF5KG48MD8wOm4pO3I8bjspYVtyXT10KGksaT1lWysrcl0pO3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCgwLE1hdGgubWluKG4tMSxNYXRoLmZsb29yKHQqPW4pKSk7cmV0dXJuIGFbZV0odC1lKX19LHQucXVhbnRpemU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KGUpLG49MDtuPGU7KytuKXJbbl09dChuLyhlLTEpKTtyZXR1cm4gcn0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7ImQzLWNvbG9yIjoxNTd9XSwxNjU6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/bihyKTpuKCh0PXR8fHNlbGYpLmQzPXQuZDN8fHt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO3ZhciBlPU1hdGguUEkscj0yKmUsbj1yLTFlLTY7ZnVuY3Rpb24gaSgpe3RoaXMuX3gwPXRoaXMuX3kwPXRoaXMuX3gxPXRoaXMuX3kxPW51bGwsdGhpcy5fPSIifWZ1bmN0aW9uIGEoKXtyZXR1cm4gbmV3IGl9aS5wcm90b3R5cGU9YS5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOmksbW92ZVRvOmZ1bmN0aW9uKHQsZSl7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKX0sY2xvc2VQYXRoOmZ1bmN0aW9uKCl7bnVsbCE9PXRoaXMuX3gxJiYodGhpcy5feDE9dGhpcy5feDAsdGhpcy5feTE9dGhpcy5feTAsdGhpcy5fKz0iWiIpfSxsaW5lVG86ZnVuY3Rpb24odCxlKXt0aGlzLl8rPSJMIisodGhpcy5feDE9K3QpKyIsIisodGhpcy5feTE9K2UpfSxxdWFkcmF0aWNDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuXys9IlEiKyArdCsiLCIrICtlKyIsIisodGhpcy5feDE9K3IpKyIsIisodGhpcy5feTE9K24pfSxiZXppZXJDdXJ2ZVRvOmZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLl8rPSJDIisgK3QrIiwiKyArZSsiLCIrICtyKyIsIisgK24rIiwiKyh0aGlzLl94MT0raSkrIiwiKyh0aGlzLl95MT0rYSl9LGFyY1RvOmZ1bmN0aW9uKHQscixuLGksYSl7dD0rdCxyPStyLG49K24saT0raSxhPSthO3ZhciBvPXRoaXMuX3gxLHM9dGhpcy5feTEsbD1uLXQsYz1pLXIsdT1vLXQsZj1zLXIsaD11KnUrZipmO2lmKGE8MCl0aHJvdyBuZXcgRXJyb3IoIm5lZ2F0aXZlIHJhZGl1czogIithKTtpZihudWxsPT09dGhpcy5feDEpdGhpcy5fKz0iTSIrKHRoaXMuX3gxPXQpKyIsIisodGhpcy5feTE9cik7ZWxzZSBpZihoPjFlLTYpaWYoTWF0aC5hYnMoZipsLWMqdSk+MWUtNiYmYSl7dmFyIHA9bi1vLGQ9aS1zLG09bCpsK2MqYyxnPXAqcCtkKmQsdj1NYXRoLnNxcnQobSkseT1NYXRoLnNxcnQoaCkseD1hKk1hdGgudGFuKChlLU1hdGguYWNvcygobStoLWcpLygyKnYqeSkpKS8yKSxiPXgveSxfPXgvdjtNYXRoLmFicyhiLTEpPjFlLTYmJih0aGlzLl8rPSJMIisodCtiKnUpKyIsIisocitiKmYpKSx0aGlzLl8rPSJBIithKyIsIithKyIsMCwwLCIrICsoZipwPnUqZCkrIiwiKyh0aGlzLl94MT10K18qbCkrIiwiKyh0aGlzLl95MT1yK18qYyl9ZWxzZSB0aGlzLl8rPSJMIisodGhpcy5feDE9dCkrIiwiKyh0aGlzLl95MT1yKTtlbHNlO30sYXJjOmZ1bmN0aW9uKHQsaSxhLG8scyxsKXt0PSt0LGk9K2ksbD0hIWw7dmFyIGM9KGE9K2EpKk1hdGguY29zKG8pLHU9YSpNYXRoLnNpbihvKSxmPXQrYyxoPWkrdSxwPTFebCxkPWw/by1zOnMtbztpZihhPDApdGhyb3cgbmV3IEVycm9yKCJuZWdhdGl2ZSByYWRpdXM6ICIrYSk7bnVsbD09PXRoaXMuX3gxP3RoaXMuXys9Ik0iK2YrIiwiK2g6KE1hdGguYWJzKHRoaXMuX3gxLWYpPjFlLTZ8fE1hdGguYWJzKHRoaXMuX3kxLWgpPjFlLTYpJiYodGhpcy5fKz0iTCIrZisiLCIraCksYSYmKGQ8MCYmKGQ9ZCVyK3IpLGQ+bj90aGlzLl8rPSJBIithKyIsIithKyIsMCwxLCIrcCsiLCIrKHQtYykrIiwiKyhpLXUpKyJBIithKyIsIithKyIsMCwxLCIrcCsiLCIrKHRoaXMuX3gxPWYpKyIsIisodGhpcy5feTE9aCk6ZD4xZS02JiYodGhpcy5fKz0iQSIrYSsiLCIrYSsiLDAsIisgKyhkPj1lKSsiLCIrcCsiLCIrKHRoaXMuX3gxPXQrYSpNYXRoLmNvcyhzKSkrIiwiKyh0aGlzLl95MT1pK2EqTWF0aC5zaW4ocykpKSl9LHJlY3Q6ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5fKz0iTSIrKHRoaXMuX3gwPXRoaXMuX3gxPSt0KSsiLCIrKHRoaXMuX3kwPXRoaXMuX3kxPStlKSsiaCIrICtyKyJ2IisgK24rImgiKy1yKyJaIn0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5ffX0sdC5wYXRoPWEsT2JqZWN0LmRlZmluZVByb3BlcnR5KHQsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pfSkpfSx7fV0sMTY2OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP24ocik6bigodD10fHxzZWxmKS5kMz10LmQzfHx7fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBlKHQsZSxyLG4pe2lmKGlzTmFOKGUpfHxpc05hTihyKSlyZXR1cm4gdDt2YXIgaSxhLG8scyxsLGMsdSxmLGgscD10Ll9yb290LGQ9e2RhdGE6bn0sbT10Ll94MCxnPXQuX3kwLHY9dC5feDEseT10Ll95MTtpZighcClyZXR1cm4gdC5fcm9vdD1kLHQ7Zm9yKDtwLmxlbmd0aDspaWYoKGM9ZT49KGE9KG0rdikvMikpP209YTp2PWEsKHU9cj49KG89KGcreSkvMikpP2c9bzp5PW8saT1wLCEocD1wW2Y9dTw8MXxjXSkpcmV0dXJuIGlbZl09ZCx0O2lmKHM9K3QuX3guY2FsbChudWxsLHAuZGF0YSksbD0rdC5feS5jYWxsKG51bGwscC5kYXRhKSxlPT09cyYmcj09PWwpcmV0dXJuIGQubmV4dD1wLGk/aVtmXT1kOnQuX3Jvb3Q9ZCx0O2Rve2k9aT9pW2ZdPW5ldyBBcnJheSg0KTp0Ll9yb290PW5ldyBBcnJheSg0KSwoYz1lPj0oYT0obSt2KS8yKSk/bT1hOnY9YSwodT1yPj0obz0oZyt5KS8yKSk/Zz1vOnk9b313aGlsZSgoZj11PDwxfGMpPT0oaD0obD49byk8PDF8cz49YSkpO3JldHVybiBpW2hdPXAsaVtmXT1kLHR9ZnVuY3Rpb24gcih0LGUscixuLGkpe3RoaXMubm9kZT10LHRoaXMueDA9ZSx0aGlzLnkwPXIsdGhpcy54MT1uLHRoaXMueTE9aX1mdW5jdGlvbiBuKHQpe3JldHVybiB0WzBdfWZ1bmN0aW9uIGkodCl7cmV0dXJuIHRbMV19ZnVuY3Rpb24gYSh0LGUscil7dmFyIGE9bmV3IG8obnVsbD09ZT9uOmUsbnVsbD09cj9pOnIsTmFOLE5hTixOYU4sTmFOKTtyZXR1cm4gbnVsbD09dD9hOmEuYWRkQWxsKHQpfWZ1bmN0aW9uIG8odCxlLHIsbixpLGEpe3RoaXMuX3g9dCx0aGlzLl95PWUsdGhpcy5feDA9cix0aGlzLl95MD1uLHRoaXMuX3gxPWksdGhpcy5feTE9YSx0aGlzLl9yb290PXZvaWQgMH1mdW5jdGlvbiBzKHQpe2Zvcih2YXIgZT17ZGF0YTp0LmRhdGF9LHI9ZTt0PXQubmV4dDspcj1yLm5leHQ9e2RhdGE6dC5kYXRhfTtyZXR1cm4gZX12YXIgbD1hLnByb3RvdHlwZT1vLnByb3RvdHlwZTtsLmNvcHk9ZnVuY3Rpb24oKXt2YXIgdCxlLHI9bmV3IG8odGhpcy5feCx0aGlzLl95LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSxuPXRoaXMuX3Jvb3Q7aWYoIW4pcmV0dXJuIHI7aWYoIW4ubGVuZ3RoKXJldHVybiByLl9yb290PXMobikscjtmb3IodD1be3NvdXJjZTpuLHRhcmdldDpyLl9yb290PW5ldyBBcnJheSg0KX1dO249dC5wb3AoKTspZm9yKHZhciBpPTA7aTw0OysraSkoZT1uLnNvdXJjZVtpXSkmJihlLmxlbmd0aD90LnB1c2goe3NvdXJjZTplLHRhcmdldDpuLnRhcmdldFtpXT1uZXcgQXJyYXkoNCl9KTpuLnRhcmdldFtpXT1zKGUpKTtyZXR1cm4gcn0sbC5hZGQ9ZnVuY3Rpb24odCl7dmFyIHI9K3RoaXMuX3guY2FsbChudWxsLHQpLG49K3RoaXMuX3kuY2FsbChudWxsLHQpO3JldHVybiBlKHRoaXMuY292ZXIocixuKSxyLG4sdCl9LGwuYWRkQWxsPWZ1bmN0aW9uKHQpe3ZhciByLG4saSxhLG89dC5sZW5ndGgscz1uZXcgQXJyYXkobyksbD1uZXcgQXJyYXkobyksYz0xLzAsdT0xLzAsZj0tMS8wLGg9LTEvMDtmb3Iobj0wO248bzsrK24paXNOYU4oaT0rdGhpcy5feC5jYWxsKG51bGwscj10W25dKSl8fGlzTmFOKGE9K3RoaXMuX3kuY2FsbChudWxsLHIpKXx8KHNbbl09aSxsW25dPWEsaTxjJiYoYz1pKSxpPmYmJihmPWkpLGE8dSYmKHU9YSksYT5oJiYoaD1hKSk7aWYoYz5mfHx1PmgpcmV0dXJuIHRoaXM7Zm9yKHRoaXMuY292ZXIoYyx1KS5jb3ZlcihmLGgpLG49MDtuPG87KytuKWUodGhpcyxzW25dLGxbbl0sdFtuXSk7cmV0dXJuIHRoaXN9LGwuY292ZXI9ZnVuY3Rpb24odCxlKXtpZihpc05hTih0PSt0KXx8aXNOYU4oZT0rZSkpcmV0dXJuIHRoaXM7dmFyIHI9dGhpcy5feDAsbj10aGlzLl95MCxpPXRoaXMuX3gxLGE9dGhpcy5feTE7aWYoaXNOYU4ocikpaT0ocj1NYXRoLmZsb29yKHQpKSsxLGE9KG49TWF0aC5mbG9vcihlKSkrMTtlbHNle2Zvcih2YXIgbyxzLGw9aS1yLGM9dGhpcy5fcm9vdDtyPnR8fHQ+PWl8fG4+ZXx8ZT49YTspc3dpdGNoKHM9KGU8bik8PDF8dDxyLChvPW5ldyBBcnJheSg0KSlbc109YyxjPW8sbCo9MixzKXtjYXNlIDA6aT1yK2wsYT1uK2w7YnJlYWs7Y2FzZSAxOnI9aS1sLGE9bitsO2JyZWFrO2Nhc2UgMjppPXIrbCxuPWEtbDticmVhaztjYXNlIDM6cj1pLWwsbj1hLWx9dGhpcy5fcm9vdCYmdGhpcy5fcm9vdC5sZW5ndGgmJih0aGlzLl9yb290PWMpfXJldHVybiB0aGlzLl94MD1yLHRoaXMuX3kwPW4sdGhpcy5feDE9aSx0aGlzLl95MT1hLHRoaXN9LGwuZGF0YT1mdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLnZpc2l0KChmdW5jdGlvbihlKXtpZighZS5sZW5ndGgpZG97dC5wdXNoKGUuZGF0YSl9d2hpbGUoZT1lLm5leHQpfSkpLHR9LGwuZXh0ZW50PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP3RoaXMuY292ZXIoK3RbMF1bMF0sK3RbMF1bMV0pLmNvdmVyKCt0WzFdWzBdLCt0WzFdWzFdKTppc05hTih0aGlzLl94MCk/dm9pZCAwOltbdGhpcy5feDAsdGhpcy5feTBdLFt0aGlzLl94MSx0aGlzLl95MV1dfSxsLmZpbmQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLGEsbyxzLGwsYyx1LGY9dGhpcy5feDAsaD10aGlzLl95MCxwPXRoaXMuX3gxLGQ9dGhpcy5feTEsbT1bXSxnPXRoaXMuX3Jvb3Q7Zm9yKGcmJm0ucHVzaChuZXcgcihnLGYsaCxwLGQpKSxudWxsPT1uP249MS8wOihmPXQtbixoPWUtbixwPXQrbixkPWUrbixuKj1uKTtjPW0ucG9wKCk7KWlmKCEoIShnPWMubm9kZSl8fChhPWMueDApPnB8fChvPWMueTApPmR8fChzPWMueDEpPGZ8fChsPWMueTEpPGgpKWlmKGcubGVuZ3RoKXt2YXIgdj0oYStzKS8yLHk9KG8rbCkvMjttLnB1c2gobmV3IHIoZ1szXSx2LHkscyxsKSxuZXcgcihnWzJdLGEseSx2LGwpLG5ldyByKGdbMV0sdixvLHMseSksbmV3IHIoZ1swXSxhLG8sdix5KSksKHU9KGU+PXkpPDwxfHQ+PXYpJiYoYz1tW20ubGVuZ3RoLTFdLG1bbS5sZW5ndGgtMV09bVttLmxlbmd0aC0xLXVdLG1bbS5sZW5ndGgtMS11XT1jKX1lbHNle3ZhciB4PXQtK3RoaXMuX3guY2FsbChudWxsLGcuZGF0YSksYj1lLSt0aGlzLl95LmNhbGwobnVsbCxnLmRhdGEpLF89eCp4K2IqYjtpZihfPG4pe3ZhciB3PU1hdGguc3FydChuPV8pO2Y9dC13LGg9ZS13LHA9dCt3LGQ9ZSt3LGk9Zy5kYXRhfX1yZXR1cm4gaX0sbC5yZW1vdmU9ZnVuY3Rpb24odCl7aWYoaXNOYU4oYT0rdGhpcy5feC5jYWxsKG51bGwsdCkpfHxpc05hTihvPSt0aGlzLl95LmNhbGwobnVsbCx0KSkpcmV0dXJuIHRoaXM7dmFyIGUscixuLGksYSxvLHMsbCxjLHUsZixoLHA9dGhpcy5fcm9vdCxkPXRoaXMuX3gwLG09dGhpcy5feTAsZz10aGlzLl94MSx2PXRoaXMuX3kxO2lmKCFwKXJldHVybiB0aGlzO2lmKHAubGVuZ3RoKWZvcig7Oyl7aWYoKGM9YT49KHM9KGQrZykvMikpP2Q9czpnPXMsKHU9bz49KGw9KG0rdikvMikpP209bDp2PWwsZT1wLCEocD1wW2Y9dTw8MXxjXSkpcmV0dXJuIHRoaXM7aWYoIXAubGVuZ3RoKWJyZWFrOyhlW2YrMSYzXXx8ZVtmKzImM118fGVbZiszJjNdKSYmKHI9ZSxoPWYpfWZvcig7cC5kYXRhIT09dDspaWYobj1wLCEocD1wLm5leHQpKXJldHVybiB0aGlzO3JldHVybihpPXAubmV4dCkmJmRlbGV0ZSBwLm5leHQsbj8oaT9uLm5leHQ9aTpkZWxldGUgbi5uZXh0LHRoaXMpOmU/KGk/ZVtmXT1pOmRlbGV0ZSBlW2ZdLChwPWVbMF18fGVbMV18fGVbMl18fGVbM10pJiZwPT09KGVbM118fGVbMl18fGVbMV18fGVbMF0pJiYhcC5sZW5ndGgmJihyP3JbaF09cDp0aGlzLl9yb290PXApLHRoaXMpOih0aGlzLl9yb290PWksdGhpcyl9LGwucmVtb3ZlQWxsPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dC5sZW5ndGg7ZTxyOysrZSl0aGlzLnJlbW92ZSh0W2VdKTtyZXR1cm4gdGhpc30sbC5yb290PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3Jvb3R9LGwuc2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIHRoaXMudmlzaXQoKGZ1bmN0aW9uKGUpe2lmKCFlLmxlbmd0aClkb3srK3R9d2hpbGUoZT1lLm5leHQpfSkpLHR9LGwudmlzaXQ9ZnVuY3Rpb24odCl7dmFyIGUsbixpLGEsbyxzLGw9W10sYz10aGlzLl9yb290O2ZvcihjJiZsLnB1c2gobmV3IHIoYyx0aGlzLl94MCx0aGlzLl95MCx0aGlzLl94MSx0aGlzLl95MSkpO2U9bC5wb3AoKTspaWYoIXQoYz1lLm5vZGUsaT1lLngwLGE9ZS55MCxvPWUueDEscz1lLnkxKSYmYy5sZW5ndGgpe3ZhciB1PShpK28pLzIsZj0oYStzKS8yOyhuPWNbM10pJiZsLnB1c2gobmV3IHIobix1LGYsbyxzKSksKG49Y1syXSkmJmwucHVzaChuZXcgcihuLGksZix1LHMpKSwobj1jWzFdKSYmbC5wdXNoKG5ldyByKG4sdSxhLG8sZikpLChuPWNbMF0pJiZsLnB1c2gobmV3IHIobixpLGEsdSxmKSl9cmV0dXJuIHRoaXN9LGwudmlzaXRBZnRlcj1mdW5jdGlvbih0KXt2YXIgZSxuPVtdLGk9W107Zm9yKHRoaXMuX3Jvb3QmJm4ucHVzaChuZXcgcih0aGlzLl9yb290LHRoaXMuX3gwLHRoaXMuX3kwLHRoaXMuX3gxLHRoaXMuX3kxKSk7ZT1uLnBvcCgpOyl7dmFyIGE9ZS5ub2RlO2lmKGEubGVuZ3RoKXt2YXIgbyxzPWUueDAsbD1lLnkwLGM9ZS54MSx1PWUueTEsZj0ocytjKS8yLGg9KGwrdSkvMjsobz1hWzBdKSYmbi5wdXNoKG5ldyByKG8scyxsLGYsaCkpLChvPWFbMV0pJiZuLnB1c2gobmV3IHIobyxmLGwsYyxoKSksKG89YVsyXSkmJm4ucHVzaChuZXcgcihvLHMsaCxmLHUpKSwobz1hWzNdKSYmbi5wdXNoKG5ldyByKG8sZixoLGMsdSkpfWkucHVzaChlKX1mb3IoO2U9aS5wb3AoKTspdChlLm5vZGUsZS54MCxlLnkwLGUueDEsZS55MSk7cmV0dXJuIHRoaXN9LGwueD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feD10LHRoaXMpOnRoaXMuX3h9LGwueT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odGhpcy5feT10LHRoaXMpOnRoaXMuX3l9LHQucXVhZHRyZWU9YSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHt9XSwxNjc6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24obixpKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/aShyLHQoImQzLXBhdGgiKSk6aSgobj1ufHxzZWxmKS5kMz1uLmQzfHx7fSxuLmQzKX0odGhpcywoZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdH19dmFyIG49TWF0aC5hYnMsaT1NYXRoLmF0YW4yLGE9TWF0aC5jb3Msbz1NYXRoLm1heCxzPU1hdGgubWluLGw9TWF0aC5zaW4sYz1NYXRoLnNxcnQsdT1NYXRoLlBJLGY9dS8yLGg9Mip1O2Z1bmN0aW9uIHAodCl7cmV0dXJuIHQ+MT8wOnQ8LTE/dTpNYXRoLmFjb3ModCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gdD49MT9mOnQ8PS0xPy1mOk1hdGguYXNpbih0KX1mdW5jdGlvbiBtKHQpe3JldHVybiB0LmlubmVyUmFkaXVzfWZ1bmN0aW9uIGcodCl7cmV0dXJuIHQub3V0ZXJSYWRpdXN9ZnVuY3Rpb24gdih0KXtyZXR1cm4gdC5zdGFydEFuZ2xlfWZ1bmN0aW9uIHkodCl7cmV0dXJuIHQuZW5kQW5nbGV9ZnVuY3Rpb24geCh0KXtyZXR1cm4gdCYmdC5wYWRBbmdsZX1mdW5jdGlvbiBiKHQsZSxyLG4saSxhLG8scyl7dmFyIGw9ci10LGM9bi1lLHU9by1pLGY9cy1hLGg9ZipsLXUqYztpZighKGgqaDwxZS0xMikpcmV0dXJuW3QrKGg9KHUqKGUtYSktZioodC1pKSkvaCkqbCxlK2gqY119ZnVuY3Rpb24gXyh0LGUscixuLGksYSxzKXt2YXIgbD10LXIsdT1lLW4sZj0ocz9hOi1hKS9jKGwqbCt1KnUpLGg9Zip1LHA9LWYqbCxkPXQraCxtPWUrcCxnPXIraCx2PW4rcCx5PShkK2cpLzIseD0obSt2KS8yLGI9Zy1kLF89di1tLHc9YipiK18qXyxUPWktYSxrPWQqdi1nKm0sQT0oXzwwPy0xOjEpKmMobygwLFQqVCp3LWsqaykpLE09KGsqXy1iKkEpL3csUz0oLWsqYi1fKkEpL3csRT0oaypfK2IqQSkvdyxMPSgtaypiK18qQSkvdyxDPU0teSxQPVMteCxJPUUteSxPPUwteDtyZXR1cm4gQypDK1AqUD5JKkkrTypPJiYoTT1FLFM9TCkse2N4Ok0sY3k6Uyx4MDE6LWgseTAxOi1wLHgxMTpNKihpL1QtMSkseTExOlMqKGkvVC0xKX19ZnVuY3Rpb24gdyh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gVCh0KXtyZXR1cm4gbmV3IHcodCl9ZnVuY3Rpb24gayh0KXtyZXR1cm4gdFswXX1mdW5jdGlvbiBBKHQpe3JldHVybiB0WzFdfWZ1bmN0aW9uIE0oKXt2YXIgdD1rLG49QSxpPXIoITApLGE9bnVsbCxvPVQscz1udWxsO2Z1bmN0aW9uIGwocil7dmFyIGwsYyx1LGY9ci5sZW5ndGgsaD0hMTtmb3IobnVsbD09YSYmKHM9byh1PWUucGF0aCgpKSksbD0wO2w8PWY7KytsKSEobDxmJiZpKGM9cltsXSxsLHIpKT09PWgmJigoaD0haCk/cy5saW5lU3RhcnQoKTpzLmxpbmVFbmQoKSksaCYmcy5wb2ludCgrdChjLGwsciksK24oYyxsLHIpKTtpZih1KXJldHVybiBzPW51bGwsdSsiInx8bnVsbH1yZXR1cm4gbC54PWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6cigrZSksbCk6dH0sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksbCk6bn0sbC5kZWZpbmVkPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cighIXQpLGwpOml9LGwuY3VydmU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG89dCxudWxsIT1hJiYocz1vKGEpKSxsKTpvfSxsLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG51bGw9PXQ/YT1zPW51bGw6cz1vKGE9dCksbCk6YX0sbH1mdW5jdGlvbiBTKCl7dmFyIHQ9ayxuPW51bGwsaT1yKDApLGE9QSxvPXIoITApLHM9bnVsbCxsPVQsYz1udWxsO2Z1bmN0aW9uIHUocil7dmFyIHUsZixoLHAsZCxtPXIubGVuZ3RoLGc9ITEsdj1uZXcgQXJyYXkobSkseT1uZXcgQXJyYXkobSk7Zm9yKG51bGw9PXMmJihjPWwoZD1lLnBhdGgoKSkpLHU9MDt1PD1tOysrdSl7aWYoISh1PG0mJm8ocD1yW3VdLHUscikpPT09ZylpZihnPSFnKWY9dSxjLmFyZWFTdGFydCgpLGMubGluZVN0YXJ0KCk7ZWxzZXtmb3IoYy5saW5lRW5kKCksYy5saW5lU3RhcnQoKSxoPXUtMTtoPj1mOy0taCljLnBvaW50KHZbaF0seVtoXSk7Yy5saW5lRW5kKCksYy5hcmVhRW5kKCl9ZyYmKHZbdV09K3QocCx1LHIpLHlbdV09K2kocCx1LHIpLGMucG9pbnQobj8rbihwLHUscik6dlt1XSxhPythKHAsdSxyKTp5W3VdKSl9aWYoZClyZXR1cm4gYz1udWxsLGQrIiJ8fG51bGx9ZnVuY3Rpb24gZigpe3JldHVybiBNKCkuZGVmaW5lZChvKS5jdXJ2ZShsKS5jb250ZXh0KHMpfXJldHVybiB1Lng9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpyKCtlKSxuPW51bGwsdSk6dH0sdS54MD1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnIoK2UpLHUpOnR9LHUueDE9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49bnVsbD09dD9udWxsOiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksdSk6bn0sdS55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksYT1udWxsLHUpOml9LHUueTA9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSx1KTppfSx1LnkxPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPW51bGw9PXQ/bnVsbDoiZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLHUpOmF9LHUubGluZVgwPXUubGluZVkwPWZ1bmN0aW9uKCl7cmV0dXJuIGYoKS54KHQpLnkoaSl9LHUubGluZVkxPWZ1bmN0aW9uKCl7cmV0dXJuIGYoKS54KHQpLnkoYSl9LHUubGluZVgxPWZ1bmN0aW9uKCl7cmV0dXJuIGYoKS54KG4pLnkoaSl9LHUuZGVmaW5lZD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoISF0KSx1KTpvfSx1LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhsPXQsbnVsbCE9cyYmKGM9bChzKSksdSk6bH0sdS5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhudWxsPT10P3M9Yz1udWxsOmM9bChzPXQpLHUpOnN9LHV9ZnVuY3Rpb24gRSh0LGUpe3JldHVybiBlPHQ/LTE6ZT50PzE6ZT49dD8wOk5hTn1mdW5jdGlvbiBMKHQpe3JldHVybiB0fXcucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjtkZWZhdWx0OnRoaXMuX2NvbnRleHQubGluZVRvKHQsZSl9fX07dmFyIEM9SShUKTtmdW5jdGlvbiBQKHQpe3RoaXMuX2N1cnZlPXR9ZnVuY3Rpb24gSSh0KXtmdW5jdGlvbiBlKGUpe3JldHVybiBuZXcgUCh0KGUpKX1yZXR1cm4gZS5fY3VydmU9dCxlfWZ1bmN0aW9uIE8odCl7dmFyIGU9dC5jdXJ2ZTtyZXR1cm4gdC5hbmdsZT10LngsZGVsZXRlIHQueCx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmN1cnZlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP2UoSSh0KSk6ZSgpLl9jdXJ2ZX0sdH1mdW5jdGlvbiB6KCl7cmV0dXJuIE8oTSgpLmN1cnZlKEMpKX1mdW5jdGlvbiBEKCl7dmFyIHQ9UygpLmN1cnZlKEMpLGU9dC5jdXJ2ZSxyPXQubGluZVgwLG49dC5saW5lWDEsaT10LmxpbmVZMCxhPXQubGluZVkxO3JldHVybiB0LmFuZ2xlPXQueCxkZWxldGUgdC54LHQuc3RhcnRBbmdsZT10LngwLGRlbGV0ZSB0LngwLHQuZW5kQW5nbGU9dC54MSxkZWxldGUgdC54MSx0LnJhZGl1cz10LnksZGVsZXRlIHQueSx0LmlubmVyUmFkaXVzPXQueTAsZGVsZXRlIHQueTAsdC5vdXRlclJhZGl1cz10LnkxLGRlbGV0ZSB0LnkxLHQubGluZVN0YXJ0QW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gTyhyKCkpfSxkZWxldGUgdC5saW5lWDAsdC5saW5lRW5kQW5nbGU9ZnVuY3Rpb24oKXtyZXR1cm4gTyhuKCkpfSxkZWxldGUgdC5saW5lWDEsdC5saW5lSW5uZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gTyhpKCkpfSxkZWxldGUgdC5saW5lWTAsdC5saW5lT3V0ZXJSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gTyhhKCkpfSxkZWxldGUgdC5saW5lWTEsdC5jdXJ2ZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9lKEkodCkpOmUoKS5fY3VydmV9LHR9ZnVuY3Rpb24gUih0LGUpe3JldHVyblsoZT0rZSkqTWF0aC5jb3ModC09TWF0aC5QSS8yKSxlKk1hdGguc2luKHQpXX1QLnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUuYXJlYVN0YXJ0KCl9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9jdXJ2ZS5hcmVhRW5kKCl9LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX2N1cnZlLmxpbmVTdGFydCgpfSxsaW5lRW5kOmZ1bmN0aW9uKCl7dGhpcy5fY3VydmUubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX2N1cnZlLnBvaW50KGUqTWF0aC5zaW4odCksZSotTWF0aC5jb3ModCkpfX07dmFyIEY9QXJyYXkucHJvdG90eXBlLnNsaWNlO2Z1bmN0aW9uIEIodCl7cmV0dXJuIHQuc291cmNlfWZ1bmN0aW9uIE4odCl7cmV0dXJuIHQudGFyZ2V0fWZ1bmN0aW9uIGoodCl7dmFyIG49QixpPU4sYT1rLG89QSxzPW51bGw7ZnVuY3Rpb24gbCgpe3ZhciByLGw9Ri5jYWxsKGFyZ3VtZW50cyksYz1uLmFwcGx5KHRoaXMsbCksdT1pLmFwcGx5KHRoaXMsbCk7aWYoc3x8KHM9cj1lLnBhdGgoKSksdChzLCthLmFwcGx5KHRoaXMsKGxbMF09YyxsKSksK28uYXBwbHkodGhpcyxsKSwrYS5hcHBseSh0aGlzLChsWzBdPXUsbCkpLCtvLmFwcGx5KHRoaXMsbCkpLHIpcmV0dXJuIHM9bnVsbCxyKyIifHxudWxsfXJldHVybiBsLnNvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGwpOm59LGwudGFyZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPXQsbCk6aX0sbC54PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksbCk6YX0sbC55PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksbCk6b30sbC5jb250ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhzPW51bGw9PXQ/bnVsbDp0LGwpOnN9LGx9ZnVuY3Rpb24gVSh0LGUscixuLGkpe3QubW92ZVRvKGUsciksdC5iZXppZXJDdXJ2ZVRvKGU9KGUrbikvMixyLGUsaSxuLGkpfWZ1bmN0aW9uIFYodCxlLHIsbixpKXt0Lm1vdmVUbyhlLHIpLHQuYmV6aWVyQ3VydmVUbyhlLHI9KHIraSkvMixuLHIsbixpKX1mdW5jdGlvbiBIKHQsZSxyLG4saSl7dmFyIGE9UihlLHIpLG89UihlLHI9KHIraSkvMikscz1SKG4sciksbD1SKG4saSk7dC5tb3ZlVG8oYVswXSxhWzFdKSx0LmJlemllckN1cnZlVG8ob1swXSxvWzFdLHNbMF0sc1sxXSxsWzBdLGxbMV0pfXZhciBxPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KGUvdSk7dC5tb3ZlVG8ociwwKSx0LmFyYygwLDAsciwwLGgpfX0sRz17ZHJhdzpmdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc3FydChlLzUpLzI7dC5tb3ZlVG8oLTMqciwtciksdC5saW5lVG8oLXIsLXIpLHQubGluZVRvKC1yLC0zKnIpLHQubGluZVRvKHIsLTMqciksdC5saW5lVG8ociwtciksdC5saW5lVG8oMypyLC1yKSx0LmxpbmVUbygzKnIsciksdC5saW5lVG8ocixyKSx0LmxpbmVUbyhyLDMqciksdC5saW5lVG8oLXIsMypyKSx0LmxpbmVUbygtcixyKSx0LmxpbmVUbygtMypyLHIpLHQuY2xvc2VQYXRoKCl9fSxZPU1hdGguc3FydCgxLzMpLFc9MipZLFg9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNxcnQoZS9XKSxuPXIqWTt0Lm1vdmVUbygwLC1yKSx0LmxpbmVUbyhuLDApLHQubGluZVRvKDAsciksdC5saW5lVG8oLW4sMCksdC5jbG9zZVBhdGgoKX19LFo9TWF0aC5zaW4odS8xMCkvTWF0aC5zaW4oNyp1LzEwKSxKPU1hdGguc2luKGgvMTApKlosSz0tTWF0aC5jb3MoaC8xMCkqWixRPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KC44OTA4MTMwOTE1MjkyODUyKmUpLG49SipyLGk9SypyO3QubW92ZVRvKDAsLXIpLHQubGluZVRvKG4saSk7Zm9yKHZhciBhPTE7YTw1OysrYSl7dmFyIG89aCphLzUscz1NYXRoLmNvcyhvKSxsPU1hdGguc2luKG8pO3QubGluZVRvKGwqciwtcypyKSx0LmxpbmVUbyhzKm4tbCppLGwqbitzKmkpfXQuY2xvc2VQYXRoKCl9fSwkPXtkcmF3OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zcXJ0KGUpLG49LXIvMjt0LnJlY3QobixuLHIscil9fSx0dD1NYXRoLnNxcnQoMyksZXQ9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgcj0tTWF0aC5zcXJ0KGUvKDMqdHQpKTt0Lm1vdmVUbygwLDIqciksdC5saW5lVG8oLXR0KnIsLXIpLHQubGluZVRvKHR0KnIsLXIpLHQuY2xvc2VQYXRoKCl9fSxydD0tLjUsbnQ9TWF0aC5zcXJ0KDMpLzIsaXQ9MS9NYXRoLnNxcnQoMTIpLGF0PTMqKGl0LzIrMSksb3Q9e2RyYXc6ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNxcnQoZS9hdCksbj1yLzIsaT1yKml0LGE9bixvPXIqaXQrcixzPS1hLGw9bzt0Lm1vdmVUbyhuLGkpLHQubGluZVRvKGEsbyksdC5saW5lVG8ocyxsKSx0LmxpbmVUbyhydCpuLW50KmksbnQqbitydCppKSx0LmxpbmVUbyhydCphLW50Km8sbnQqYStydCpvKSx0LmxpbmVUbyhydCpzLW50KmwsbnQqcytydCpsKSx0LmxpbmVUbyhydCpuK250KmkscnQqaS1udCpuKSx0LmxpbmVUbyhydCphK250Km8scnQqby1udCphKSx0LmxpbmVUbyhydCpzK250KmwscnQqbC1udCpzKSx0LmNsb3NlUGF0aCgpfX0sc3Q9W3EsRyxYLCQsUSxldCxvdF07ZnVuY3Rpb24gbHQoKXt9ZnVuY3Rpb24gY3QodCxlLHIpe3QuX2NvbnRleHQuYmV6aWVyQ3VydmVUbygoMip0Ll94MCt0Ll94MSkvMywoMip0Ll95MCt0Ll95MSkvMywodC5feDArMip0Ll94MSkvMywodC5feTArMip0Ll95MSkvMywodC5feDArNCp0Ll94MStlKS82LCh0Ll95MCs0KnQuX3kxK3IpLzYpfWZ1bmN0aW9uIHV0KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBmdCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gaHQodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIHB0KHQsZSl7dGhpcy5fYmFzaXM9bmV3IHV0KHQpLHRoaXMuX2JldGE9ZX11dC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl95MD10aGlzLl95MT1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAzOmN0KHRoaXMsdGhpcy5feDEsdGhpcy5feTEpO2Nhc2UgMjp0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2NvbnRleHQubGluZVRvKCg1KnRoaXMuX3gwK3RoaXMuX3gxKS82LCg1KnRoaXMuX3kwK3RoaXMuX3kxKS82KTtkZWZhdWx0OmN0KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPWV9fSxmdC5wcm90b3R5cGU9e2FyZWFTdGFydDpsdCxhcmVhRW5kOmx0LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3gyPXRoaXMuX3gzPXRoaXMuX3g0PXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3kyPXRoaXMuX3kzPXRoaXMuX3k0PU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDE6dGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDIsdGhpcy5feTIpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAyOnRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MisyKnRoaXMuX3gzKS8zLCh0aGlzLl95MisyKnRoaXMuX3kzKS8zKSx0aGlzLl9jb250ZXh0LmxpbmVUbygodGhpcy5feDMrMip0aGlzLl94MikvMywodGhpcy5feTMrMip0aGlzLl95MikvMyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95MiksdGhpcy5wb2ludCh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5wb2ludCh0aGlzLl94NCx0aGlzLl95NCl9fSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX3gyPXQsdGhpcy5feTI9ZTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9Mix0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDQ9dCx0aGlzLl95ND1lLHRoaXMuX2NvbnRleHQubW92ZVRvKCh0aGlzLl94MCs0KnRoaXMuX3gxK3QpLzYsKHRoaXMuX3kwKzQqdGhpcy5feTErZSkvNik7YnJlYWs7ZGVmYXVsdDpjdCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0saHQucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feTA9dGhpcy5feTE9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTE7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTI7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTM7dmFyIHI9KHRoaXMuX3gwKzQqdGhpcy5feDErdCkvNixuPSh0aGlzLl95MCs0KnRoaXMuX3kxK2UpLzY7dGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyhyLG4pOnRoaXMuX2NvbnRleHQubW92ZVRvKHIsbik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDpjdCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lfX0scHQucHJvdG90eXBlPXtsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W10sdGhpcy5fYmFzaXMubGluZVN0YXJ0KCl9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LGU9dGhpcy5feSxyPXQubGVuZ3RoLTE7aWYocj4wKWZvcih2YXIgbixpPXRbMF0sYT1lWzBdLG89dFtyXS1pLHM9ZVtyXS1hLGw9LTE7KytsPD1yOyluPWwvcix0aGlzLl9iYXNpcy5wb2ludCh0aGlzLl9iZXRhKnRbbF0rKDEtdGhpcy5fYmV0YSkqKGkrbipvKSx0aGlzLl9iZXRhKmVbbF0rKDEtdGhpcy5fYmV0YSkqKGErbipzKSk7dGhpcy5feD10aGlzLl95PW51bGwsdGhpcy5fYmFzaXMubGluZUVuZCgpfSxwb2ludDpmdW5jdGlvbih0LGUpe3RoaXMuX3gucHVzaCgrdCksdGhpcy5feS5wdXNoKCtlKX19O3ZhciBkdD1mdW5jdGlvbiB0KGUpe2Z1bmN0aW9uIHIodCl7cmV0dXJuIDE9PT1lP25ldyB1dCh0KTpuZXcgcHQodCxlKX1yZXR1cm4gci5iZXRhPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oLjg1KTtmdW5jdGlvbiBtdCh0LGUscil7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKHQuX3gxK3QuX2sqKHQuX3gyLXQuX3gwKSx0Ll95MSt0Ll9rKih0Ll95Mi10Ll95MCksdC5feDIrdC5fayoodC5feDEtZSksdC5feTIrdC5fayoodC5feTEtciksdC5feDIsdC5feTIpfWZ1bmN0aW9uIGd0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1ndC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6bXQodGhpcyx0aGlzLl94MSx0aGlzLl95MSl9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX3gxPXQsdGhpcy5feTE9ZTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0Om10KHRoaXMsdCxlKX10aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgdnQ9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBuZXcgZ3QodCxlKX1yZXR1cm4gci50ZW5zaW9uPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oMCk7ZnVuY3Rpb24geXQodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5faz0oMS1lKS82fXl0LnByb3RvdHlwZT17YXJlYVN0YXJ0Omx0LGFyZWFFbmQ6bHQsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feDU9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9dGhpcy5feTU9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpLHRoaXMucG9pbnQodGhpcy5feDUsdGhpcy5feTUpfX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl94Mz10LHRoaXMuX3kzPWU7YnJlYWs7Y2FzZSAxOnRoaXMuX3BvaW50PTIsdGhpcy5fY29udGV4dC5tb3ZlVG8odGhpcy5feDQ9dCx0aGlzLl95ND1lKTticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl94NT10LHRoaXMuX3k1PWU7YnJlYWs7ZGVmYXVsdDptdCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIHh0PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbmV3IHl0KHQsZSl9cmV0dXJuIHIudGVuc2lvbj1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LHJ9KDApO2Z1bmN0aW9uIGJ0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2s9KDEtZSkvNn1idC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpeyh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMz09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtzd2l0Y2godD0rdCxlPStlLHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9Myx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Mix0aGlzLl95Mik7YnJlYWs7Y2FzZSAzOnRoaXMuX3BvaW50PTQ7ZGVmYXVsdDptdCh0aGlzLHQsZSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIF90PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gbmV3IGJ0KHQsZSl9cmV0dXJuIHIudGVuc2lvbj1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LHJ9KDApO2Z1bmN0aW9uIHd0KHQsZSxyKXt2YXIgbj10Ll94MSxpPXQuX3kxLGE9dC5feDIsbz10Ll95MjtpZih0Ll9sMDFfYT4xZS0xMil7dmFyIHM9Mip0Ll9sMDFfMmErMyp0Ll9sMDFfYSp0Ll9sMTJfYSt0Ll9sMTJfMmEsbD0zKnQuX2wwMV9hKih0Ll9sMDFfYSt0Ll9sMTJfYSk7bj0obipzLXQuX3gwKnQuX2wxMl8yYSt0Ll94Mip0Ll9sMDFfMmEpL2wsaT0oaSpzLXQuX3kwKnQuX2wxMl8yYSt0Ll95Mip0Ll9sMDFfMmEpL2x9aWYodC5fbDIzX2E+MWUtMTIpe3ZhciBjPTIqdC5fbDIzXzJhKzMqdC5fbDIzX2EqdC5fbDEyX2ErdC5fbDEyXzJhLHU9Myp0Ll9sMjNfYSoodC5fbDIzX2ErdC5fbDEyX2EpO2E9KGEqYyt0Ll94MSp0Ll9sMjNfMmEtZSp0Ll9sMTJfMmEpL3Usbz0obypjK3QuX3kxKnQuX2wyM18yYS1yKnQuX2wxMl8yYSkvdX10Ll9jb250ZXh0LmJlemllckN1cnZlVG8obixpLGEsbyx0Ll94Mix0Ll95Mil9ZnVuY3Rpb24gVHQodCxlKXt0aGlzLl9jb250ZXh0PXQsdGhpcy5fYWxwaGE9ZX1UdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94MD10aGlzLl94MT10aGlzLl94Mj10aGlzLl95MD10aGlzLl95MT10aGlzLl95Mj1OYU4sdGhpcy5fbDAxX2E9dGhpcy5fbDEyX2E9dGhpcy5fbDIzX2E9dGhpcy5fbDAxXzJhPXRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmE9dGhpcy5fcG9pbnQ9MH0sbGluZUVuZDpmdW5jdGlvbigpe3N3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAyOnRoaXMuX2NvbnRleHQubGluZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5wb2ludCh0aGlzLl94Mix0aGlzLl95Mil9KHRoaXMuX2xpbmV8fDAhPT10aGlzLl9saW5lJiYxPT09dGhpcy5fcG9pbnQpJiZ0aGlzLl9jb250ZXh0LmNsb3NlUGF0aCgpLHRoaXMuX2xpbmU9MS10aGlzLl9saW5lfSxwb2ludDpmdW5jdGlvbih0LGUpe2lmKHQ9K3QsZT0rZSx0aGlzLl9wb2ludCl7dmFyIHI9dGhpcy5feDItdCxuPXRoaXMuX3kyLWU7dGhpcy5fbDIzX2E9TWF0aC5zcXJ0KHRoaXMuX2wyM18yYT1NYXRoLnBvdyhyKnIrbipuLHRoaXMuX2FscGhhKSl9c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MztkZWZhdWx0Ond0KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIGt0PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZT9uZXcgVHQodCxlKTpuZXcgZ3QodCwwKX1yZXR1cm4gci5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LHJ9KC41KTtmdW5jdGlvbiBBdCh0LGUpe3RoaXMuX2NvbnRleHQ9dCx0aGlzLl9hbHBoYT1lfUF0LnByb3RvdHlwZT17YXJlYVN0YXJ0Omx0LGFyZWFFbmQ6bHQsbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feDM9dGhpcy5feDQ9dGhpcy5feDU9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9dGhpcy5feTM9dGhpcy5feTQ9dGhpcy5feTU9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXtzd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0aGlzLl94Myx0aGlzLl95MyksdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKTticmVhaztjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDMsdGhpcy5feTMpLHRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSAzOnRoaXMucG9pbnQodGhpcy5feDMsdGhpcy5feTMpLHRoaXMucG9pbnQodGhpcy5feDQsdGhpcy5feTQpLHRoaXMucG9pbnQodGhpcy5feDUsdGhpcy5feTUpfX0scG9pbnQ6ZnVuY3Rpb24odCxlKXtpZih0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe3ZhciByPXRoaXMuX3gyLXQsbj10aGlzLl95Mi1lO3RoaXMuX2wyM19hPU1hdGguc3FydCh0aGlzLl9sMjNfMmE9TWF0aC5wb3cocipyK24qbix0aGlzLl9hbHBoYSkpfXN3aXRjaCh0aGlzLl9wb2ludCl7Y2FzZSAwOnRoaXMuX3BvaW50PTEsdGhpcy5feDM9dCx0aGlzLl95Mz1lO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yLHRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3g0PXQsdGhpcy5feTQ9ZSk7YnJlYWs7Y2FzZSAyOnRoaXMuX3BvaW50PTMsdGhpcy5feDU9dCx0aGlzLl95NT1lO2JyZWFrO2RlZmF1bHQ6d3QodGhpcyx0LGUpfXRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hLHRoaXMuX2wxMl9hPXRoaXMuX2wyM19hLHRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmEsdGhpcy5fbDEyXzJhPXRoaXMuX2wyM18yYSx0aGlzLl94MD10aGlzLl94MSx0aGlzLl94MT10aGlzLl94Mix0aGlzLl94Mj10LHRoaXMuX3kwPXRoaXMuX3kxLHRoaXMuX3kxPXRoaXMuX3kyLHRoaXMuX3kyPWV9fTt2YXIgTXQ9ZnVuY3Rpb24gdChlKXtmdW5jdGlvbiByKHQpe3JldHVybiBlP25ldyBBdCh0LGUpOm5ldyB5dCh0LDApfXJldHVybiByLmFscGhhPWZ1bmN0aW9uKGUpe3JldHVybiB0KCtlKX0scn0oLjUpO2Z1bmN0aW9uIFN0KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX2FscGhhPWV9U3QucHJvdG90eXBlPXthcmVhU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPTB9LGFyZWFFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9saW5lPU5hTn0sbGluZVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5feDA9dGhpcy5feDE9dGhpcy5feDI9dGhpcy5feTA9dGhpcy5feTE9dGhpcy5feTI9TmFOLHRoaXMuX2wwMV9hPXRoaXMuX2wxMl9hPXRoaXMuX2wyM19hPXRoaXMuX2wwMV8yYT10aGlzLl9sMTJfMmE9dGhpcy5fbDIzXzJhPXRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjM9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7aWYodD0rdCxlPStlLHRoaXMuX3BvaW50KXt2YXIgcj10aGlzLl94Mi10LG49dGhpcy5feTItZTt0aGlzLl9sMjNfYT1NYXRoLnNxcnQodGhpcy5fbDIzXzJhPU1hdGgucG93KHIqcituKm4sdGhpcy5fYWxwaGEpKX1zd2l0Y2godGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2JyZWFrO2Nhc2UgMjp0aGlzLl9wb2ludD0zLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDIsdGhpcy5feTIpOnRoaXMuX2NvbnRleHQubW92ZVRvKHRoaXMuX3gyLHRoaXMuX3kyKTticmVhaztjYXNlIDM6dGhpcy5fcG9pbnQ9NDtkZWZhdWx0Ond0KHRoaXMsdCxlKX10aGlzLl9sMDFfYT10aGlzLl9sMTJfYSx0aGlzLl9sMTJfYT10aGlzLl9sMjNfYSx0aGlzLl9sMDFfMmE9dGhpcy5fbDEyXzJhLHRoaXMuX2wxMl8yYT10aGlzLl9sMjNfMmEsdGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dGhpcy5feDIsdGhpcy5feDI9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT10aGlzLl95Mix0aGlzLl95Mj1lfX07dmFyIEV0PWZ1bmN0aW9uIHQoZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gZT9uZXcgU3QodCxlKTpuZXcgYnQodCwwKX1yZXR1cm4gci5hbHBoYT1mdW5jdGlvbihlKXtyZXR1cm4gdCgrZSl9LHJ9KC41KTtmdW5jdGlvbiBMdCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gQ3QodCl7cmV0dXJuIHQ8MD8tMToxfWZ1bmN0aW9uIFB0KHQsZSxyKXt2YXIgbj10Ll94MS10Ll94MCxpPWUtdC5feDEsYT0odC5feTEtdC5feTApLyhufHxpPDAmJi0wKSxvPShyLXQuX3kxKS8oaXx8bjwwJiYtMCkscz0oYSppK28qbikvKG4raSk7cmV0dXJuKEN0KGEpK0N0KG8pKSpNYXRoLm1pbihNYXRoLmFicyhhKSxNYXRoLmFicyhvKSwuNSpNYXRoLmFicyhzKSl8fDB9ZnVuY3Rpb24gSXQodCxlKXt2YXIgcj10Ll94MS10Ll94MDtyZXR1cm4gcj8oMyoodC5feTEtdC5feTApL3ItZSkvMjplfWZ1bmN0aW9uIE90KHQsZSxyKXt2YXIgbj10Ll94MCxpPXQuX3kwLGE9dC5feDEsbz10Ll95MSxzPShhLW4pLzM7dC5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG4rcyxpK3MqZSxhLXMsby1zKnIsYSxvKX1mdW5jdGlvbiB6dCh0KXt0aGlzLl9jb250ZXh0PXR9ZnVuY3Rpb24gRHQodCl7dGhpcy5fY29udGV4dD1uZXcgUnQodCl9ZnVuY3Rpb24gUnQodCl7dGhpcy5fY29udGV4dD10fWZ1bmN0aW9uIEZ0KHQpe3RoaXMuX2NvbnRleHQ9dH1mdW5jdGlvbiBCdCh0KXt2YXIgZSxyLG49dC5sZW5ndGgtMSxpPW5ldyBBcnJheShuKSxhPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKTtmb3IoaVswXT0wLGFbMF09MixvWzBdPXRbMF0rMip0WzFdLGU9MTtlPG4tMTsrK2UpaVtlXT0xLGFbZV09NCxvW2VdPTQqdFtlXSsyKnRbZSsxXTtmb3IoaVtuLTFdPTIsYVtuLTFdPTcsb1tuLTFdPTgqdFtuLTFdK3Rbbl0sZT0xO2U8bjsrK2Upcj1pW2VdL2FbZS0xXSxhW2VdLT1yLG9bZV0tPXIqb1tlLTFdO2ZvcihpW24tMV09b1tuLTFdL2Fbbi0xXSxlPW4tMjtlPj0wOy0tZSlpW2VdPShvW2VdLWlbZSsxXSkvYVtlXTtmb3IoYVtuLTFdPSh0W25dK2lbbi0xXSkvMixlPTA7ZTxuLTE7KytlKWFbZV09Mip0W2UrMV0taVtlKzFdO3JldHVybltpLGFdfWZ1bmN0aW9uIE50KHQsZSl7dGhpcy5fY29udGV4dD10LHRoaXMuX3Q9ZX1mdW5jdGlvbiBqdCh0LGUpe2lmKChpPXQubGVuZ3RoKT4xKWZvcih2YXIgcixuLGksYT0xLG89dFtlWzBdXSxzPW8ubGVuZ3RoO2E8aTsrK2EpZm9yKG49byxvPXRbZVthXV0scj0wO3I8czsrK3Ipb1tyXVsxXSs9b1tyXVswXT1pc05hTihuW3JdWzFdKT9uW3JdWzBdOm5bcl1bMV19ZnVuY3Rpb24gVXQodCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5KGUpOy0tZT49MDspcltlXT1lO3JldHVybiByfWZ1bmN0aW9uIFZ0KHQsZSl7cmV0dXJuIHRbZV19ZnVuY3Rpb24gSHQodCl7dmFyIGU9dC5tYXAocXQpO3JldHVybiBVdCh0KS5zb3J0KChmdW5jdGlvbih0LHIpe3JldHVybiBlW3RdLWVbcl19KSl9ZnVuY3Rpb24gcXQodCl7Zm9yKHZhciBlLHI9LTEsbj0wLGk9dC5sZW5ndGgsYT0tMS8wOysrcjxpOykoZT0rdFtyXVsxXSk+YSYmKGE9ZSxuPXIpO3JldHVybiBufWZ1bmN0aW9uIEd0KHQpe3ZhciBlPXQubWFwKFl0KTtyZXR1cm4gVXQodCkuc29ydCgoZnVuY3Rpb24odCxyKXtyZXR1cm4gZVt0XS1lW3JdfSkpfWZ1bmN0aW9uIFl0KHQpe2Zvcih2YXIgZSxyPTAsbj0tMSxpPXQubGVuZ3RoOysrbjxpOykoZT0rdFtuXVsxXSkmJihyKz1lKTtyZXR1cm4gcn1MdC5wcm90b3R5cGU9e2FyZWFTdGFydDpsdCxhcmVhRW5kOmx0LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXt0aGlzLl9wb2ludCYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKX0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0PSt0LGU9K2UsdGhpcy5fcG9pbnQ/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKToodGhpcy5fcG9pbnQ9MSx0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpKX19LHp0LnByb3RvdHlwZT17YXJlYVN0YXJ0OmZ1bmN0aW9uKCl7dGhpcy5fbGluZT0wfSxhcmVhRW5kOmZ1bmN0aW9uKCl7dGhpcy5fbGluZT1OYU59LGxpbmVTdGFydDpmdW5jdGlvbigpe3RoaXMuX3gwPXRoaXMuX3gxPXRoaXMuX3kwPXRoaXMuX3kxPXRoaXMuX3QwPU5hTix0aGlzLl9wb2ludD0wfSxsaW5lRW5kOmZ1bmN0aW9uKCl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDI6dGhpcy5fY29udGV4dC5saW5lVG8odGhpcy5feDEsdGhpcy5feTEpO2JyZWFrO2Nhc2UgMzpPdCh0aGlzLHRoaXMuX3QwLEl0KHRoaXMsdGhpcy5fdDApKX0odGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT10aGlzLl9wb2ludCkmJnRoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCksdGhpcy5fbGluZT0xLXRoaXMuX2xpbmV9LHBvaW50OmZ1bmN0aW9uKHQsZSl7dmFyIHI9TmFOO2lmKGU9K2UsKHQ9K3QpIT09dGhpcy5feDF8fGUhPT10aGlzLl95MSl7c3dpdGNoKHRoaXMuX3BvaW50KXtjYXNlIDA6dGhpcy5fcG9pbnQ9MSx0aGlzLl9saW5lP3RoaXMuX2NvbnRleHQubGluZVRvKHQsZSk6dGhpcy5fY29udGV4dC5tb3ZlVG8odCxlKTticmVhaztjYXNlIDE6dGhpcy5fcG9pbnQ9MjticmVhaztjYXNlIDI6dGhpcy5fcG9pbnQ9MyxPdCh0aGlzLEl0KHRoaXMscj1QdCh0aGlzLHQsZSkpLHIpO2JyZWFrO2RlZmF1bHQ6T3QodGhpcyx0aGlzLl90MCxyPVB0KHRoaXMsdCxlKSl9dGhpcy5feDA9dGhpcy5feDEsdGhpcy5feDE9dCx0aGlzLl95MD10aGlzLl95MSx0aGlzLl95MT1lLHRoaXMuX3QwPXJ9fX0sKER0LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHp0LnByb3RvdHlwZSkpLnBvaW50PWZ1bmN0aW9uKHQsZSl7enQucHJvdG90eXBlLnBvaW50LmNhbGwodGhpcyxlLHQpfSxSdC5wcm90b3R5cGU9e21vdmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuX2NvbnRleHQubW92ZVRvKGUsdCl9LGNsb3NlUGF0aDpmdW5jdGlvbigpe3RoaXMuX2NvbnRleHQuY2xvc2VQYXRoKCl9LGxpbmVUbzpmdW5jdGlvbih0LGUpe3RoaXMuX2NvbnRleHQubGluZVRvKGUsdCl9LGJlemllckN1cnZlVG86ZnVuY3Rpb24odCxlLHIsbixpLGEpe3RoaXMuX2NvbnRleHQuYmV6aWVyQ3VydmVUbyhlLHQsbixyLGEsaSl9fSxGdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PVtdLHRoaXMuX3k9W119LGxpbmVFbmQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl94LGU9dGhpcy5feSxyPXQubGVuZ3RoO2lmKHIpaWYodGhpcy5fbGluZT90aGlzLl9jb250ZXh0LmxpbmVUbyh0WzBdLGVbMF0pOnRoaXMuX2NvbnRleHQubW92ZVRvKHRbMF0sZVswXSksMj09PXIpdGhpcy5fY29udGV4dC5saW5lVG8odFsxXSxlWzFdKTtlbHNlIGZvcih2YXIgbj1CdCh0KSxpPUJ0KGUpLGE9MCxvPTE7bzxyOysrYSwrK28pdGhpcy5fY29udGV4dC5iZXppZXJDdXJ2ZVRvKG5bMF1bYV0saVswXVthXSxuWzFdW2FdLGlbMV1bYV0sdFtvXSxlW29dKTsodGhpcy5fbGluZXx8MCE9PXRoaXMuX2xpbmUmJjE9PT1yKSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPTEtdGhpcy5fbGluZSx0aGlzLl94PXRoaXMuX3k9bnVsbH0scG9pbnQ6ZnVuY3Rpb24odCxlKXt0aGlzLl94LnB1c2goK3QpLHRoaXMuX3kucHVzaCgrZSl9fSxOdC5wcm90b3R5cGU9e2FyZWFTdGFydDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9MH0sYXJlYUVuZDpmdW5jdGlvbigpe3RoaXMuX2xpbmU9TmFOfSxsaW5lU3RhcnQ6ZnVuY3Rpb24oKXt0aGlzLl94PXRoaXMuX3k9TmFOLHRoaXMuX3BvaW50PTB9LGxpbmVFbmQ6ZnVuY3Rpb24oKXswPHRoaXMuX3QmJnRoaXMuX3Q8MSYmMj09PXRoaXMuX3BvaW50JiZ0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LHRoaXMuX3kpLCh0aGlzLl9saW5lfHwwIT09dGhpcy5fbGluZSYmMT09PXRoaXMuX3BvaW50KSYmdGhpcy5fY29udGV4dC5jbG9zZVBhdGgoKSx0aGlzLl9saW5lPj0wJiYodGhpcy5fdD0xLXRoaXMuX3QsdGhpcy5fbGluZT0xLXRoaXMuX2xpbmUpfSxwb2ludDpmdW5jdGlvbih0LGUpe3N3aXRjaCh0PSt0LGU9K2UsdGhpcy5fcG9pbnQpe2Nhc2UgMDp0aGlzLl9wb2ludD0xLHRoaXMuX2xpbmU/dGhpcy5fY29udGV4dC5saW5lVG8odCxlKTp0aGlzLl9jb250ZXh0Lm1vdmVUbyh0LGUpO2JyZWFrO2Nhc2UgMTp0aGlzLl9wb2ludD0yO2RlZmF1bHQ6aWYodGhpcy5fdDw9MCl0aGlzLl9jb250ZXh0LmxpbmVUbyh0aGlzLl94LGUpLHRoaXMuX2NvbnRleHQubGluZVRvKHQsZSk7ZWxzZXt2YXIgcj10aGlzLl94KigxLXRoaXMuX3QpK3QqdGhpcy5fdDt0aGlzLl9jb250ZXh0LmxpbmVUbyhyLHRoaXMuX3kpLHRoaXMuX2NvbnRleHQubGluZVRvKHIsZSl9fXRoaXMuX3g9dCx0aGlzLl95PWV9fSx0LmFyYz1mdW5jdGlvbigpe3ZhciB0PW0sbz1nLHc9cigwKSxUPW51bGwsaz12LEE9eSxNPXgsUz1udWxsO2Z1bmN0aW9uIEUoKXt2YXIgcixtLGc9K3QuYXBwbHkodGhpcyxhcmd1bWVudHMpLHY9K28uYXBwbHkodGhpcyxhcmd1bWVudHMpLHk9ay5hcHBseSh0aGlzLGFyZ3VtZW50cyktZix4PUEuYXBwbHkodGhpcyxhcmd1bWVudHMpLWYsRT1uKHgteSksTD14Pnk7aWYoU3x8KFM9cj1lLnBhdGgoKSksdjxnJiYobT12LHY9ZyxnPW0pLHY+MWUtMTIpaWYoRT5oLTFlLTEyKVMubW92ZVRvKHYqYSh5KSx2KmwoeSkpLFMuYXJjKDAsMCx2LHkseCwhTCksZz4xZS0xMiYmKFMubW92ZVRvKGcqYSh4KSxnKmwoeCkpLFMuYXJjKDAsMCxnLHgseSxMKSk7ZWxzZXt2YXIgQyxQLEk9eSxPPXgsej15LEQ9eCxSPUUsRj1FLEI9TS5hcHBseSh0aGlzLGFyZ3VtZW50cykvMixOPUI+MWUtMTImJihUPytULmFwcGx5KHRoaXMsYXJndW1lbnRzKTpjKGcqZyt2KnYpKSxqPXMobih2LWcpLzIsK3cuYXBwbHkodGhpcyxhcmd1bWVudHMpKSxVPWosVj1qO2lmKE4+MWUtMTIpe3ZhciBIPWQoTi9nKmwoQikpLHE9ZChOL3YqbChCKSk7KFItPTIqSCk+MWUtMTI/KHorPUgqPUw/MTotMSxELT1IKTooUj0wLHo9RD0oeSt4KS8yKSwoRi09MipxKT4xZS0xMj8oSSs9cSo9TD8xOi0xLE8tPXEpOihGPTAsST1PPSh5K3gpLzIpfXZhciBHPXYqYShJKSxZPXYqbChJKSxXPWcqYShEKSxYPWcqbChEKTtpZihqPjFlLTEyKXt2YXIgWixKPXYqYShPKSxLPXYqbChPKSxRPWcqYSh6KSwkPWcqbCh6KTtpZihFPHUmJihaPWIoRyxZLFEsJCxKLEssVyxYKSkpe3ZhciB0dD1HLVpbMF0sZXQ9WS1aWzFdLHJ0PUotWlswXSxudD1LLVpbMV0saXQ9MS9sKHAoKHR0KnJ0K2V0Km50KS8oYyh0dCp0dCtldCpldCkqYyhydCpydCtudCpudCkpKS8yKSxhdD1jKFpbMF0qWlswXStaWzFdKlpbMV0pO1U9cyhqLChnLWF0KS8oaXQtMSkpLFY9cyhqLCh2LWF0KS8oaXQrMSkpfX1GPjFlLTEyP1Y+MWUtMTI/KEM9XyhRLCQsRyxZLHYsVixMKSxQPV8oSixLLFcsWCx2LFYsTCksUy5tb3ZlVG8oQy5jeCtDLngwMSxDLmN5K0MueTAxKSxWPGo/Uy5hcmMoQy5jeCxDLmN5LFYsaShDLnkwMSxDLngwMSksaShQLnkwMSxQLngwMSksIUwpOihTLmFyYyhDLmN4LEMuY3ksVixpKEMueTAxLEMueDAxKSxpKEMueTExLEMueDExKSwhTCksUy5hcmMoMCwwLHYsaShDLmN5K0MueTExLEMuY3grQy54MTEpLGkoUC5jeStQLnkxMSxQLmN4K1AueDExKSwhTCksUy5hcmMoUC5jeCxQLmN5LFYsaShQLnkxMSxQLngxMSksaShQLnkwMSxQLngwMSksIUwpKSk6KFMubW92ZVRvKEcsWSksUy5hcmMoMCwwLHYsSSxPLCFMKSk6Uy5tb3ZlVG8oRyxZKSxnPjFlLTEyJiZSPjFlLTEyP1U+MWUtMTI/KEM9XyhXLFgsSixLLGcsLVUsTCksUD1fKEcsWSxRLCQsZywtVSxMKSxTLmxpbmVUbyhDLmN4K0MueDAxLEMuY3krQy55MDEpLFU8aj9TLmFyYyhDLmN4LEMuY3ksVSxpKEMueTAxLEMueDAxKSxpKFAueTAxLFAueDAxKSwhTCk6KFMuYXJjKEMuY3gsQy5jeSxVLGkoQy55MDEsQy54MDEpLGkoQy55MTEsQy54MTEpLCFMKSxTLmFyYygwLDAsZyxpKEMuY3krQy55MTEsQy5jeCtDLngxMSksaShQLmN5K1AueTExLFAuY3grUC54MTEpLEwpLFMuYXJjKFAuY3gsUC5jeSxVLGkoUC55MTEsUC54MTEpLGkoUC55MDEsUC54MDEpLCFMKSkpOlMuYXJjKDAsMCxnLEQseixMKTpTLmxpbmVUbyhXLFgpfWVsc2UgUy5tb3ZlVG8oMCwwKTtpZihTLmNsb3NlUGF0aCgpLHIpcmV0dXJuIFM9bnVsbCxyKyIifHxudWxsfXJldHVybiBFLmNlbnRyb2lkPWZ1bmN0aW9uKCl7dmFyIGU9KCt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK28uYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLHI9KCtrLmFwcGx5KHRoaXMsYXJndW1lbnRzKSsgK0EuYXBwbHkodGhpcyxhcmd1bWVudHMpKS8yLXUvMjtyZXR1cm5bYShyKSplLGwocikqZV19LEUuaW5uZXJSYWRpdXM9ZnVuY3Rpb24oZSl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHQ9ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTpyKCtlKSxFKTp0fSxFLm91dGVyUmFkaXVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhvPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksRSk6b30sRS5jb3JuZXJSYWRpdXM9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KHc9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxFKTp3fSxFLnBhZFJhZGl1cz1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oVD1udWxsPT10P251bGw6ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxFKTpUfSxFLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGs9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxFKTprfSxFLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhBPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksRSk6QX0sRS5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oTT0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLEUpOk19LEUuY29udGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oUz1udWxsPT10P251bGw6dCxFKTpTfSxFfSx0LmFyZWE9Uyx0LmFyZWFSYWRpYWw9RCx0LmN1cnZlQmFzaXM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB1dCh0KX0sdC5jdXJ2ZUJhc2lzQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZnQodCl9LHQuY3VydmVCYXNpc09wZW49ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBodCh0KX0sdC5jdXJ2ZUJ1bmRsZT1kdCx0LmN1cnZlQ2FyZGluYWw9dnQsdC5jdXJ2ZUNhcmRpbmFsQ2xvc2VkPXh0LHQuY3VydmVDYXJkaW5hbE9wZW49X3QsdC5jdXJ2ZUNhdG11bGxSb209a3QsdC5jdXJ2ZUNhdG11bGxSb21DbG9zZWQ9TXQsdC5jdXJ2ZUNhdG11bGxSb21PcGVuPUV0LHQuY3VydmVMaW5lYXI9VCx0LmN1cnZlTGluZWFyQ2xvc2VkPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTHQodCl9LHQuY3VydmVNb25vdG9uZVg9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB6dCh0KX0sdC5jdXJ2ZU1vbm90b25lWT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IER0KHQpfSx0LmN1cnZlTmF0dXJhbD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IEZ0KHQpfSx0LmN1cnZlU3RlcD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IE50KHQsLjUpfSx0LmN1cnZlU3RlcEFmdGVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTnQodCwxKX0sdC5jdXJ2ZVN0ZXBCZWZvcmU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBOdCh0LDApfSx0LmxpbmU9TSx0LmxpbmVSYWRpYWw9eix0LmxpbmtIb3Jpem9udGFsPWZ1bmN0aW9uKCl7cmV0dXJuIGooVSl9LHQubGlua1JhZGlhbD1mdW5jdGlvbigpe3ZhciB0PWooSCk7cmV0dXJuIHQuYW5nbGU9dC54LGRlbGV0ZSB0LngsdC5yYWRpdXM9dC55LGRlbGV0ZSB0LnksdH0sdC5saW5rVmVydGljYWw9ZnVuY3Rpb24oKXtyZXR1cm4gaihWKX0sdC5waWU9ZnVuY3Rpb24oKXt2YXIgdD1MLGU9RSxuPW51bGwsaT1yKDApLGE9cihoKSxvPXIoMCk7ZnVuY3Rpb24gcyhyKXt2YXIgcyxsLGMsdSxmLHA9ci5sZW5ndGgsZD0wLG09bmV3IEFycmF5KHApLGc9bmV3IEFycmF5KHApLHY9K2kuYXBwbHkodGhpcyxhcmd1bWVudHMpLHk9TWF0aC5taW4oaCxNYXRoLm1heCgtaCxhLmFwcGx5KHRoaXMsYXJndW1lbnRzKS12KSkseD1NYXRoLm1pbihNYXRoLmFicyh5KS9wLG8uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxiPXgqKHk8MD8tMToxKTtmb3Iocz0wO3M8cDsrK3MpKGY9Z1ttW3NdPXNdPSt0KHJbc10scyxyKSk+MCYmKGQrPWYpO2ZvcihudWxsIT1lP20uc29ydCgoZnVuY3Rpb24odCxyKXtyZXR1cm4gZShnW3RdLGdbcl0pfSkpOm51bGwhPW4mJm0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gbihyW3RdLHJbZV0pfSkpLHM9MCxjPWQ/KHktcCpiKS9kOjA7czxwOysrcyx2PXUpbD1tW3NdLHU9disoKGY9Z1tsXSk+MD9mKmM6MCkrYixnW2xdPXtkYXRhOnJbbF0saW5kZXg6cyx2YWx1ZTpmLHN0YXJ0QW5nbGU6dixlbmRBbmdsZTp1LHBhZEFuZ2xlOnh9O3JldHVybiBnfXJldHVybiBzLnZhbHVlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6cigrZSkscyk6dH0scy5zb3J0VmFsdWVzPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhlPXQsbj1udWxsLHMpOmV9LHMuc29ydD1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obj10LGU9bnVsbCxzKTpufSxzLnN0YXJ0QW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxzKTppfSxzLmVuZEFuZ2xlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhhPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCkscyk6YX0scy5wYWRBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8obz0iZnVuY3Rpb24iPT10eXBlb2YgdD90OnIoK3QpLHMpOm99LHN9LHQucG9pbnRSYWRpYWw9Uix0LnJhZGlhbEFyZWE9RCx0LnJhZGlhbExpbmU9eix0LnN0YWNrPWZ1bmN0aW9uKCl7dmFyIHQ9cihbXSksZT1VdCxuPWp0LGk9VnQ7ZnVuY3Rpb24gYShyKXt2YXIgYSxvLHM9dC5hcHBseSh0aGlzLGFyZ3VtZW50cyksbD1yLmxlbmd0aCxjPXMubGVuZ3RoLHU9bmV3IEFycmF5KGMpO2ZvcihhPTA7YTxjOysrYSl7Zm9yKHZhciBmLGg9c1thXSxwPXVbYV09bmV3IEFycmF5KGwpLGQ9MDtkPGw7KytkKXBbZF09Zj1bMCwraShyW2RdLGgsZCxyKV0sZi5kYXRhPXJbZF07cC5rZXk9aH1mb3IoYT0wLG89ZSh1KTthPGM7KythKXVbb1thXV0uaW5kZXg9YTtyZXR1cm4gbih1LG8pLHV9cmV0dXJuIGEua2V5cz1mdW5jdGlvbihlKXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8odD0iZnVuY3Rpb24iPT10eXBlb2YgZT9lOnIoRi5jYWxsKGUpKSxhKTp0fSxhLnZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhpPSJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cigrdCksYSk6aX0sYS5vcmRlcj1mdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD8oZT1udWxsPT10P1V0OiJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q6cihGLmNhbGwodCkpLGEpOmV9LGEub2Zmc2V0PWZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyhuPW51bGw9PXQ/anQ6dCxhKTpufSxhfSx0LnN0YWNrT2Zmc2V0RGl2ZXJnaW5nPWZ1bmN0aW9uKHQsZSl7aWYoKHM9dC5sZW5ndGgpPjApZm9yKHZhciByLG4saSxhLG8scyxsPTAsYz10W2VbMF1dLmxlbmd0aDtsPGM7KytsKWZvcihhPW89MCxyPTA7cjxzOysrcikoaT0obj10W2Vbcl1dW2xdKVsxXS1uWzBdKT4wPyhuWzBdPWEsblsxXT1hKz1pKTppPDA/KG5bMV09byxuWzBdPW8rPWkpOihuWzBdPTAsblsxXT1pKX0sdC5zdGFja09mZnNldEV4cGFuZD1mdW5jdGlvbih0LGUpe2lmKChuPXQubGVuZ3RoKT4wKXtmb3IodmFyIHIsbixpLGE9MCxvPXRbMF0ubGVuZ3RoO2E8bzsrK2Epe2ZvcihpPXI9MDtyPG47KytyKWkrPXRbcl1bYV1bMV18fDA7aWYoaSlmb3Iocj0wO3I8bjsrK3IpdFtyXVthXVsxXS89aX1qdCh0LGUpfX0sdC5zdGFja09mZnNldE5vbmU9anQsdC5zdGFja09mZnNldFNpbGhvdWV0dGU9ZnVuY3Rpb24odCxlKXtpZigocj10Lmxlbmd0aCk+MCl7Zm9yKHZhciByLG49MCxpPXRbZVswXV0sYT1pLmxlbmd0aDtuPGE7KytuKXtmb3IodmFyIG89MCxzPTA7bzxyOysrbylzKz10W29dW25dWzFdfHwwO2lbbl1bMV0rPWlbbl1bMF09LXMvMn1qdCh0LGUpfX0sdC5zdGFja09mZnNldFdpZ2dsZT1mdW5jdGlvbih0LGUpe2lmKChpPXQubGVuZ3RoKT4wJiYobj0ocj10W2VbMF1dKS5sZW5ndGgpPjApe2Zvcih2YXIgcixuLGksYT0wLG89MTtvPG47KytvKXtmb3IodmFyIHM9MCxsPTAsYz0wO3M8aTsrK3Mpe2Zvcih2YXIgdT10W2Vbc11dLGY9dVtvXVsxXXx8MCxoPShmLSh1W28tMV1bMV18fDApKS8yLHA9MDtwPHM7KytwKXt2YXIgZD10W2VbcF1dO2grPShkW29dWzFdfHwwKS0oZFtvLTFdWzFdfHwwKX1sKz1mLGMrPWgqZn1yW28tMV1bMV0rPXJbby0xXVswXT1hLGwmJihhLT1jL2wpfXJbby0xXVsxXSs9cltvLTFdWzBdPWEsanQodCxlKX19LHQuc3RhY2tPcmRlckFwcGVhcmFuY2U9SHQsdC5zdGFja09yZGVyQXNjZW5kaW5nPUd0LHQuc3RhY2tPcmRlckRlc2NlbmRpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIEd0KHQpLnJldmVyc2UoKX0sdC5zdGFja09yZGVySW5zaWRlT3V0PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj10Lmxlbmd0aCxpPXQubWFwKFl0KSxhPUh0KHQpLG89MCxzPTAsbD1bXSxjPVtdO2ZvcihlPTA7ZTxuOysrZSlyPWFbZV0sbzxzPyhvKz1pW3JdLGwucHVzaChyKSk6KHMrPWlbcl0sYy5wdXNoKHIpKTtyZXR1cm4gYy5yZXZlcnNlKCkuY29uY2F0KGwpfSx0LnN0YWNrT3JkZXJOb25lPVV0LHQuc3RhY2tPcmRlclJldmVyc2U9ZnVuY3Rpb24odCl7cmV0dXJuIFV0KHQpLnJldmVyc2UoKX0sdC5zeW1ib2w9ZnVuY3Rpb24oKXt2YXIgdD1yKHEpLG49cig2NCksaT1udWxsO2Z1bmN0aW9uIGEoKXt2YXIgcjtpZihpfHwoaT1yPWUucGF0aCgpKSx0LmFwcGx5KHRoaXMsYXJndW1lbnRzKS5kcmF3KGksK24uYXBwbHkodGhpcyxhcmd1bWVudHMpKSxyKXJldHVybiBpPW51bGwscisiInx8bnVsbH1yZXR1cm4gYS50eXBlPWZ1bmN0aW9uKGUpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoPyh0PSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6cihlKSxhKTp0fSxhLnNpemU9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KG49ImZ1bmN0aW9uIj09dHlwZW9mIHQ/dDpyKCt0KSxhKTpufSxhLmNvbnRleHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGg/KGk9bnVsbD09dD9udWxsOnQsYSk6aX0sYX0sdC5zeW1ib2xDaXJjbGU9cSx0LnN5bWJvbENyb3NzPUcsdC5zeW1ib2xEaWFtb25kPVgsdC5zeW1ib2xTcXVhcmU9JCx0LnN5bWJvbFN0YXI9USx0LnN5bWJvbFRyaWFuZ2xlPWV0LHQuc3ltYm9sV3llPW90LHQuc3ltYm9scz1zdCxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtcGF0aCI6MTY1fV0sMTY4OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKG4saSl7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2kocix0KCJkMy10aW1lIikpOmkoKG49bnx8c2VsZikuZDM9bi5kM3x8e30sbi5kMyl9KHRoaXMsKGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIHIodCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZSgtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCk7cmV0dXJuIGUuc2V0RnVsbFllYXIodC55KSxlfXJldHVybiBuZXcgRGF0ZSh0LnksdC5tLHQuZCx0LkgsdC5NLHQuUyx0LkwpfWZ1bmN0aW9uIG4odCl7aWYoMDw9dC55JiZ0Lnk8MTAwKXt2YXIgZT1uZXcgRGF0ZShEYXRlLlVUQygtMSx0Lm0sdC5kLHQuSCx0Lk0sdC5TLHQuTCkpO3JldHVybiBlLnNldFVUQ0Z1bGxZZWFyKHQueSksZX1yZXR1cm4gbmV3IERhdGUoRGF0ZS5VVEModC55LHQubSx0LmQsdC5ILHQuTSx0LlMsdC5MKSl9ZnVuY3Rpb24gaSh0LGUscil7cmV0dXJue3k6dCxtOmUsZDpyLEg6MCxNOjAsUzowLEw6MH19ZnVuY3Rpb24gYSh0KXt2YXIgYT10LmRhdGVUaW1lLG89dC5kYXRlLGw9dC50aW1lLGM9dC5wZXJpb2RzLHU9dC5kYXlzLGY9dC5zaG9ydERheXMsaD10Lm1vbnRocyxZPXQuc2hvcnRNb250aHMsaHQ9cChjKSxrdD1kKGMpLEF0PXAodSksTXQ9ZCh1KSxTdD1wKGYpLEV0PWQoZiksTHQ9cChoKSxDdD1kKGgpLFB0PXAoWSksSXQ9ZChZKSxPdD17YTpmdW5jdGlvbih0KXtyZXR1cm4gZlt0LmdldERheSgpXX0sQTpmdW5jdGlvbih0KXtyZXR1cm4gdVt0LmdldERheSgpXX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gWVt0LmdldE1vbnRoKCldfSxCOmZ1bmN0aW9uKHQpe3JldHVybiBoW3QuZ2V0TW9udGgoKV19LGM6bnVsbCxkOkQsZTpELGY6aixnOkssRzokLEg6UixJOkYsajpCLEw6TixtOlUsTTpWLHA6ZnVuY3Rpb24odCl7cmV0dXJuIGNbKyh0LmdldEhvdXJzKCk+PTEyKV19LHE6ZnVuY3Rpb24odCl7cmV0dXJuIDErfn4odC5nZXRNb250aCgpLzMpfSxROnd0LHM6VHQsUzpILHU6cSxVOkcsVjpXLHc6WCxXOloseDpudWxsLFg6bnVsbCx5OkosWTpRLFo6dHQsIiUiOl90fSx6dD17YTpmdW5jdGlvbih0KXtyZXR1cm4gZlt0LmdldFVUQ0RheSgpXX0sQTpmdW5jdGlvbih0KXtyZXR1cm4gdVt0LmdldFVUQ0RheSgpXX0sYjpmdW5jdGlvbih0KXtyZXR1cm4gWVt0LmdldFVUQ01vbnRoKCldfSxCOmZ1bmN0aW9uKHQpe3JldHVybiBoW3QuZ2V0VVRDTW9udGgoKV19LGM6bnVsbCxkOmV0LGU6ZXQsZjpvdCxnOnZ0LEc6eHQsSDpydCxJOm50LGo6aXQsTDphdCxtOnN0LE06bHQscDpmdW5jdGlvbih0KXtyZXR1cm4gY1srKHQuZ2V0VVRDSG91cnMoKT49MTIpXX0scTpmdW5jdGlvbih0KXtyZXR1cm4gMSt+fih0LmdldFVUQ01vbnRoKCkvMyl9LFE6d3QsczpUdCxTOmN0LHU6dXQsVTpmdCxWOnB0LHc6ZHQsVzptdCx4Om51bGwsWDpudWxsLHk6Z3QsWTp5dCxaOmJ0LCIlIjpfdH0sRHQ9e2E6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVN0LmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQudz1FdFtuWzBdLnRvTG93ZXJDYXNlKCldLHIrblswXS5sZW5ndGgpOi0xfSxBOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1BdC5leGVjKGUuc2xpY2UocikpO3JldHVybiBuPyh0Lnc9TXRbblswXS50b0xvd2VyQ2FzZSgpXSxyK25bMF0ubGVuZ3RoKTotMX0sYjpmdW5jdGlvbih0LGUscil7dmFyIG49UHQuZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC5tPUl0W25bMF0udG9Mb3dlckNhc2UoKV0scituWzBdLmxlbmd0aCk6LTF9LEI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPUx0LmV4ZWMoZS5zbGljZShyKSk7cmV0dXJuIG4/KHQubT1DdFtuWzBdLnRvTG93ZXJDYXNlKCldLHIrblswXS5sZW5ndGgpOi0xfSxjOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gQnQodCxhLGUscil9LGQ6QSxlOkEsZjpQLGc6XyxHOmIsSDpTLEk6UyxqOk0sTDpDLG06ayxNOkUscDpmdW5jdGlvbih0LGUscil7dmFyIG49aHQuZXhlYyhlLnNsaWNlKHIpKTtyZXR1cm4gbj8odC5wPWt0W25bMF0udG9Mb3dlckNhc2UoKV0scituWzBdLmxlbmd0aCk6LTF9LHE6VCxROk8sczp6LFM6TCx1OmcsVTp2LFY6eSx3Om0sVzp4LHg6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBCdCh0LG8sZSxyKX0sWDpmdW5jdGlvbih0LGUscil7cmV0dXJuIEJ0KHQsbCxlLHIpfSx5Ol8sWTpiLFo6dywiJSI6SX07ZnVuY3Rpb24gUnQodCxlKXtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG4saSxhLG89W10sbD0tMSxjPTAsdT10Lmxlbmd0aDtmb3IociBpbnN0YW5jZW9mIERhdGV8fChyPW5ldyBEYXRlKCtyKSk7KytsPHU7KTM3PT09dC5jaGFyQ29kZUF0KGwpJiYoby5wdXNoKHQuc2xpY2UoYyxsKSksbnVsbCE9KGk9c1tuPXQuY2hhckF0KCsrbCldKT9uPXQuY2hhckF0KCsrbCk6aT0iZSI9PT1uPyIgIjoiMCIsKGE9ZVtuXSkmJihuPWEocixpKSksby5wdXNoKG4pLGM9bCsxKTtyZXR1cm4gby5wdXNoKHQuc2xpY2UoYyxsKSksby5qb2luKCIiKX19ZnVuY3Rpb24gRnQodCxhKXtyZXR1cm4gZnVuY3Rpb24obyl7dmFyIHMsbCxjPWkoMTkwMCx2b2lkIDAsMSk7aWYoQnQoYyx0LG8rPSIiLDApIT1vLmxlbmd0aClyZXR1cm4gbnVsbDtpZigiUSJpbiBjKXJldHVybiBuZXcgRGF0ZShjLlEpO2lmKCJzImluIGMpcmV0dXJuIG5ldyBEYXRlKDFlMypjLnMrKCJMImluIGM/Yy5MOjApKTtpZihhJiYhKCJaImluIGMpJiYoYy5aPTApLCJwImluIGMmJihjLkg9Yy5IJTEyKzEyKmMucCksdm9pZCAwPT09Yy5tJiYoYy5tPSJxImluIGM/Yy5xOjApLCJWImluIGMpe2lmKGMuVjwxfHxjLlY+NTMpcmV0dXJuIG51bGw7InciaW4gY3x8KGMudz0xKSwiWiJpbiBjPyhsPShzPW4oaShjLnksMCwxKSkpLmdldFVUQ0RheSgpLHM9bD40fHwwPT09bD9lLnV0Y01vbmRheS5jZWlsKHMpOmUudXRjTW9uZGF5KHMpLHM9ZS51dGNEYXkub2Zmc2V0KHMsNyooYy5WLTEpKSxjLnk9cy5nZXRVVENGdWxsWWVhcigpLGMubT1zLmdldFVUQ01vbnRoKCksYy5kPXMuZ2V0VVRDRGF0ZSgpKyhjLncrNiklNyk6KGw9KHM9cihpKGMueSwwLDEpKSkuZ2V0RGF5KCkscz1sPjR8fDA9PT1sP2UudGltZU1vbmRheS5jZWlsKHMpOmUudGltZU1vbmRheShzKSxzPWUudGltZURheS5vZmZzZXQocyw3KihjLlYtMSkpLGMueT1zLmdldEZ1bGxZZWFyKCksYy5tPXMuZ2V0TW9udGgoKSxjLmQ9cy5nZXREYXRlKCkrKGMudys2KSU3KX1lbHNlKCJXImluIGN8fCJVImluIGMpJiYoInciaW4gY3x8KGMudz0idSJpbiBjP2MudSU3OiJXImluIGM/MTowKSxsPSJaImluIGM/bihpKGMueSwwLDEpKS5nZXRVVENEYXkoKTpyKGkoYy55LDAsMSkpLmdldERheSgpLGMubT0wLGMuZD0iVyJpbiBjPyhjLncrNiklNys3KmMuVy0obCs1KSU3OmMudys3KmMuVS0obCs2KSU3KTtyZXR1cm4iWiJpbiBjPyhjLkgrPWMuWi8xMDB8MCxjLk0rPWMuWiUxMDAsbihjKSk6cihjKX19ZnVuY3Rpb24gQnQodCxlLHIsbil7Zm9yKHZhciBpLGEsbz0wLGw9ZS5sZW5ndGgsYz1yLmxlbmd0aDtvPGw7KXtpZihuPj1jKXJldHVybi0xO2lmKDM3PT09KGk9ZS5jaGFyQ29kZUF0KG8rKykpKXtpZihpPWUuY2hhckF0KG8rKyksIShhPUR0W2kgaW4gcz9lLmNoYXJBdChvKyspOmldKXx8KG49YSh0LHIsbikpPDApcmV0dXJuLTF9ZWxzZSBpZihpIT1yLmNoYXJDb2RlQXQobisrKSlyZXR1cm4tMX1yZXR1cm4gbn1yZXR1cm4gT3QueD1SdChvLE90KSxPdC5YPVJ0KGwsT3QpLE90LmM9UnQoYSxPdCksenQueD1SdChvLHp0KSx6dC5YPVJ0KGwsenQpLHp0LmM9UnQoYSx6dCkse2Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1SdCh0Kz0iIixPdCk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0scGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9RnQodCs9IiIsITEpO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9LHV0Y0Zvcm1hdDpmdW5jdGlvbih0KXt2YXIgZT1SdCh0Kz0iIix6dCk7cmV0dXJuIGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZX0sdXRjUGFyc2U6ZnVuY3Rpb24odCl7dmFyIGU9RnQodCs9IiIsITApO3JldHVybiBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHR9LGV9fX12YXIgbyxzPXsiLSI6IiIsXzoiICIsMDoiMCJ9LGw9L15ccypcZCsvLGM9L14lLyx1PS9bXFxeJCorP3xbXF0oKS57fV0vZztmdW5jdGlvbiBmKHQsZSxyKXt2YXIgbj10PDA/Ii0iOiIiLGk9KG4/LXQ6dCkrIiIsYT1pLmxlbmd0aDtyZXR1cm4gbisoYTxyP25ldyBBcnJheShyLWErMSkuam9pbihlKStpOmkpfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQucmVwbGFjZSh1LCJcXCQmIil9ZnVuY3Rpb24gcCh0KXtyZXR1cm4gbmV3IFJlZ0V4cCgiXig/OiIrdC5tYXAoaCkuam9pbigifCIpKyIpIiwiaSIpfWZ1bmN0aW9uIGQodCl7Zm9yKHZhciBlPXt9LHI9LTEsbj10Lmxlbmd0aDsrK3I8bjspZVt0W3JdLnRvTG93ZXJDYXNlKCldPXI7cmV0dXJuIGV9ZnVuY3Rpb24gbSh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzEpKTtyZXR1cm4gbj8odC53PStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIGcodCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisxKSk7cmV0dXJuIG4/KHQudT0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiB2KHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMikpO3JldHVybiBuPyh0LlU9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geSh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5WPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIHgodCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KHQuVz0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBiKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrNCkpO3JldHVybiBuPyh0Lnk9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gXyh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC55PStuWzBdKygrblswXT42OD8xOTAwOjJlMykscituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gdyh0LGUscil7dmFyIG49L14oWil8KFsrLV1cZFxkKSg/Ojo/KFxkXGQpKT8vLmV4ZWMoZS5zbGljZShyLHIrNikpO3JldHVybiBuPyh0Llo9blsxXT8wOi0oblsyXSsoblszXXx8IjAwIikpLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFQodCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisxKSk7cmV0dXJuIG4/KHQucT0zKm5bMF0tMyxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBrKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMikpO3JldHVybiBuPyh0Lm09blswXS0xLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEEodCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KHQuZD0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBNKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMykpO3JldHVybiBuPyh0Lm09MCx0LmQ9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gUyh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzIpKTtyZXR1cm4gbj8odC5IPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIEUodCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscisyKSk7cmV0dXJuIG4/KHQuTT0rblswXSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBMKHQsZSxyKXt2YXIgbj1sLmV4ZWMoZS5zbGljZShyLHIrMikpO3JldHVybiBuPyh0LlM9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gQyh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocixyKzMpKTtyZXR1cm4gbj8odC5MPStuWzBdLHIrblswXS5sZW5ndGgpOi0xfWZ1bmN0aW9uIFAodCxlLHIpe3ZhciBuPWwuZXhlYyhlLnNsaWNlKHIscis2KSk7cmV0dXJuIG4/KHQuTD1NYXRoLmZsb29yKG5bMF0vMWUzKSxyK25bMF0ubGVuZ3RoKTotMX1mdW5jdGlvbiBJKHQsZSxyKXt2YXIgbj1jLmV4ZWMoZS5zbGljZShyLHIrMSkpO3JldHVybiBuP3IrblswXS5sZW5ndGg6LTF9ZnVuY3Rpb24gTyh0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocikpO3JldHVybiBuPyh0LlE9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24geih0LGUscil7dmFyIG49bC5leGVjKGUuc2xpY2UocikpO3JldHVybiBuPyh0LnM9K25bMF0scituWzBdLmxlbmd0aCk6LTF9ZnVuY3Rpb24gRCh0LGUpe3JldHVybiBmKHQuZ2V0RGF0ZSgpLGUsMil9ZnVuY3Rpb24gUih0LGUpe3JldHVybiBmKHQuZ2V0SG91cnMoKSxlLDIpfWZ1bmN0aW9uIEYodCxlKXtyZXR1cm4gZih0LmdldEhvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gQih0LHIpe3JldHVybiBmKDErZS50aW1lRGF5LmNvdW50KGUudGltZVllYXIodCksdCksciwzKX1mdW5jdGlvbiBOKHQsZSl7cmV0dXJuIGYodC5nZXRNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIGoodCxlKXtyZXR1cm4gTih0LGUpKyIwMDAifWZ1bmN0aW9uIFUodCxlKXtyZXR1cm4gZih0LmdldE1vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIFYodCxlKXtyZXR1cm4gZih0LmdldE1pbnV0ZXMoKSxlLDIpfWZ1bmN0aW9uIEgodCxlKXtyZXR1cm4gZih0LmdldFNlY29uZHMoKSxlLDIpfWZ1bmN0aW9uIHEodCl7dmFyIGU9dC5nZXREYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIEcodCxyKXtyZXR1cm4gZihlLnRpbWVTdW5kYXkuY291bnQoZS50aW1lWWVhcih0KS0xLHQpLHIsMil9ZnVuY3Rpb24gWSh0KXt2YXIgcj10LmdldERheSgpO3JldHVybiByPj00fHwwPT09cj9lLnRpbWVUaHVyc2RheSh0KTplLnRpbWVUaHVyc2RheS5jZWlsKHQpfWZ1bmN0aW9uIFcodCxyKXtyZXR1cm4gdD1ZKHQpLGYoZS50aW1lVGh1cnNkYXkuY291bnQoZS50aW1lWWVhcih0KSx0KSsoND09PWUudGltZVllYXIodCkuZ2V0RGF5KCkpLHIsMil9ZnVuY3Rpb24gWCh0KXtyZXR1cm4gdC5nZXREYXkoKX1mdW5jdGlvbiBaKHQscil7cmV0dXJuIGYoZS50aW1lTW9uZGF5LmNvdW50KGUudGltZVllYXIodCktMSx0KSxyLDIpfWZ1bmN0aW9uIEoodCxlKXtyZXR1cm4gZih0LmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gSyh0LGUpe3JldHVybiBmKCh0PVkodCkpLmdldEZ1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24gUSh0LGUpe3JldHVybiBmKHQuZ2V0RnVsbFllYXIoKSUxZTQsZSw0KX1mdW5jdGlvbiAkKHQscil7dmFyIG49dC5nZXREYXkoKTtyZXR1cm4gZigodD1uPj00fHwwPT09bj9lLnRpbWVUaHVyc2RheSh0KTplLnRpbWVUaHVyc2RheS5jZWlsKHQpKS5nZXRGdWxsWWVhcigpJTFlNCxyLDQpfWZ1bmN0aW9uIHR0KHQpe3ZhciBlPXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtyZXR1cm4oZT4wPyItIjooZSo9LTEsIisiKSkrZihlLzYwfDAsIjAiLDIpK2YoZSU2MCwiMCIsMil9ZnVuY3Rpb24gZXQodCxlKXtyZXR1cm4gZih0LmdldFVUQ0RhdGUoKSxlLDIpfWZ1bmN0aW9uIHJ0KHQsZSl7cmV0dXJuIGYodC5nZXRVVENIb3VycygpLGUsMil9ZnVuY3Rpb24gbnQodCxlKXtyZXR1cm4gZih0LmdldFVUQ0hvdXJzKCklMTJ8fDEyLGUsMil9ZnVuY3Rpb24gaXQodCxyKXtyZXR1cm4gZigxK2UudXRjRGF5LmNvdW50KGUudXRjWWVhcih0KSx0KSxyLDMpfWZ1bmN0aW9uIGF0KHQsZSl7cmV0dXJuIGYodC5nZXRVVENNaWxsaXNlY29uZHMoKSxlLDMpfWZ1bmN0aW9uIG90KHQsZSl7cmV0dXJuIGF0KHQsZSkrIjAwMCJ9ZnVuY3Rpb24gc3QodCxlKXtyZXR1cm4gZih0LmdldFVUQ01vbnRoKCkrMSxlLDIpfWZ1bmN0aW9uIGx0KHQsZSl7cmV0dXJuIGYodC5nZXRVVENNaW51dGVzKCksZSwyKX1mdW5jdGlvbiBjdCh0LGUpe3JldHVybiBmKHQuZ2V0VVRDU2Vjb25kcygpLGUsMil9ZnVuY3Rpb24gdXQodCl7dmFyIGU9dC5nZXRVVENEYXkoKTtyZXR1cm4gMD09PWU/NzplfWZ1bmN0aW9uIGZ0KHQscil7cmV0dXJuIGYoZS51dGNTdW5kYXkuY291bnQoZS51dGNZZWFyKHQpLTEsdCksciwyKX1mdW5jdGlvbiBodCh0KXt2YXIgcj10LmdldFVUQ0RheSgpO3JldHVybiByPj00fHwwPT09cj9lLnV0Y1RodXJzZGF5KHQpOmUudXRjVGh1cnNkYXkuY2VpbCh0KX1mdW5jdGlvbiBwdCh0LHIpe3JldHVybiB0PWh0KHQpLGYoZS51dGNUaHVyc2RheS5jb3VudChlLnV0Y1llYXIodCksdCkrKDQ9PT1lLnV0Y1llYXIodCkuZ2V0VVRDRGF5KCkpLHIsMil9ZnVuY3Rpb24gZHQodCl7cmV0dXJuIHQuZ2V0VVRDRGF5KCl9ZnVuY3Rpb24gbXQodCxyKXtyZXR1cm4gZihlLnV0Y01vbmRheS5jb3VudChlLnV0Y1llYXIodCktMSx0KSxyLDIpfWZ1bmN0aW9uIGd0KHQsZSl7cmV0dXJuIGYodC5nZXRVVENGdWxsWWVhcigpJTEwMCxlLDIpfWZ1bmN0aW9uIHZ0KHQsZSl7cmV0dXJuIGYoKHQ9aHQodCkpLmdldFVUQ0Z1bGxZZWFyKCklMTAwLGUsMil9ZnVuY3Rpb24geXQodCxlKXtyZXR1cm4gZih0LmdldFVUQ0Z1bGxZZWFyKCklMWU0LGUsNCl9ZnVuY3Rpb24geHQodCxyKXt2YXIgbj10LmdldFVUQ0RheSgpO3JldHVybiBmKCh0PW4+PTR8fDA9PT1uP2UudXRjVGh1cnNkYXkodCk6ZS51dGNUaHVyc2RheS5jZWlsKHQpKS5nZXRVVENGdWxsWWVhcigpJTFlNCxyLDQpfWZ1bmN0aW9uIGJ0KCl7cmV0dXJuIiswMDAwIn1mdW5jdGlvbiBfdCgpe3JldHVybiIlIn1mdW5jdGlvbiB3dCh0KXtyZXR1cm4rdH1mdW5jdGlvbiBUdCh0KXtyZXR1cm4gTWF0aC5mbG9vcigrdC8xZTMpfWZ1bmN0aW9uIGt0KGUpe3JldHVybiBvPWEoZSksdC50aW1lRm9ybWF0PW8uZm9ybWF0LHQudGltZVBhcnNlPW8ucGFyc2UsdC51dGNGb3JtYXQ9by51dGNGb3JtYXQsdC51dGNQYXJzZT1vLnV0Y1BhcnNlLG99a3Qoe2RhdGVUaW1lOiIleCwgJVgiLGRhdGU6IiUtbS8lLWQvJVkiLHRpbWU6IiUtSTolTTolUyAlcCIscGVyaW9kczpbIkFNIiwiUE0iXSxkYXlzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxzaG9ydERheXM6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxtb250aHM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLHNob3J0TW9udGhzOlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl19KTt2YXIgQXQ9RGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmc/ZnVuY3Rpb24odCl7cmV0dXJuIHQudG9JU09TdHJpbmcoKX06dC51dGNGb3JtYXQoIiVZLSVtLSVkVCVIOiVNOiVTLiVMWiIpO3ZhciBNdD0rbmV3IERhdGUoIjIwMDAtMDEtMDFUMDA6MDA6MDAuMDAwWiIpP2Z1bmN0aW9uKHQpe3ZhciBlPW5ldyBEYXRlKHQpO3JldHVybiBpc05hTihlKT9udWxsOmV9OnQudXRjUGFyc2UoIiVZLSVtLSVkVCVIOiVNOiVTLiVMWiIpO3QuaXNvRm9ybWF0PUF0LHQuaXNvUGFyc2U9TXQsdC50aW1lRm9ybWF0RGVmYXVsdExvY2FsZT1rdCx0LnRpbWVGb3JtYXRMb2NhbGU9YSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHsiZDMtdGltZSI6MTY5fV0sMTY5OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP24ocik6bigodD10fHxzZWxmKS5kMz10LmQzfHx7fSl9KHRoaXMsKGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT1uZXcgRGF0ZSxyPW5ldyBEYXRlO2Z1bmN0aW9uIG4odCxpLGEsbyl7ZnVuY3Rpb24gcyhlKXtyZXR1cm4gdChlPTA9PT1hcmd1bWVudHMubGVuZ3RoP25ldyBEYXRlOm5ldyBEYXRlKCtlKSksZX1yZXR1cm4gcy5mbG9vcj1mdW5jdGlvbihlKXtyZXR1cm4gdChlPW5ldyBEYXRlKCtlKSksZX0scy5jZWlsPWZ1bmN0aW9uKGUpe3JldHVybiB0KGU9bmV3IERhdGUoZS0xKSksaShlLDEpLHQoZSksZX0scy5yb3VuZD1mdW5jdGlvbih0KXt2YXIgZT1zKHQpLHI9cy5jZWlsKHQpO3JldHVybiB0LWU8ci10P2U6cn0scy5vZmZzZXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaSh0PW5ldyBEYXRlKCt0KSxudWxsPT1lPzE6TWF0aC5mbG9vcihlKSksdH0scy5yYW5nZT1mdW5jdGlvbihlLHIsbil7dmFyIGEsbz1bXTtpZihlPXMuY2VpbChlKSxuPW51bGw9PW4/MTpNYXRoLmZsb29yKG4pLCEoZTxyJiZuPjApKXJldHVybiBvO2Rve28ucHVzaChhPW5ldyBEYXRlKCtlKSksaShlLG4pLHQoZSl9d2hpbGUoYTxlJiZlPHIpO3JldHVybiBvfSxzLmZpbHRlcj1mdW5jdGlvbihlKXtyZXR1cm4gbigoZnVuY3Rpb24ocil7aWYocj49cilmb3IoO3QociksIWUocik7KXIuc2V0VGltZShyLTEpfSksKGZ1bmN0aW9uKHQscil7aWYodD49dClpZihyPDApZm9yKDsrK3I8PTA7KWZvcig7aSh0LC0xKSwhZSh0KTspO2Vsc2UgZm9yKDstLXI+PTA7KWZvcig7aSh0LDEpLCFlKHQpOyk7fSkpfSxhJiYocy5jb3VudD1mdW5jdGlvbihuLGkpe3JldHVybiBlLnNldFRpbWUoK24pLHIuc2V0VGltZSgraSksdChlKSx0KHIpLE1hdGguZmxvb3IoYShlLHIpKX0scy5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP3MuZmlsdGVyKG8/ZnVuY3Rpb24oZSl7cmV0dXJuIG8oZSkldD09MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHMuY291bnQoMCxlKSV0PT0wfSk6czpudWxsfSksc312YXIgaT1uKChmdW5jdGlvbigpe30pLChmdW5jdGlvbih0LGUpe3Quc2V0VGltZSgrdCtlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLXR9KSk7aS5ldmVyeT1mdW5jdGlvbih0KXtyZXR1cm4gdD1NYXRoLmZsb29yKHQpLGlzRmluaXRlKHQpJiZ0PjA/dD4xP24oKGZ1bmN0aW9uKGUpe2Uuc2V0VGltZShNYXRoLmZsb29yKGUvdCkqdCl9KSwoZnVuY3Rpb24oZSxyKXtlLnNldFRpbWUoK2Urcip0KX0pLChmdW5jdGlvbihlLHIpe3JldHVybihyLWUpL3R9KSk6aTpudWxsfTt2YXIgYT1pLnJhbmdlLG89bigoZnVuY3Rpb24odCl7dC5zZXRUaW1lKHQtdC5nZXRNaWxsaXNlY29uZHMoKSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrMWUzKmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvMWUzfSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ1NlY29uZHMoKX0pKSxzPW8ucmFuZ2UsbD1uKChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpLTFlMyp0LmdldFNlY29uZHMoKSl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrNmU0KmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvNmU0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldE1pbnV0ZXMoKX0pKSxjPWwucmFuZ2UsdT1uKChmdW5jdGlvbih0KXt0LnNldFRpbWUodC10LmdldE1pbGxpc2Vjb25kcygpLTFlMyp0LmdldFNlY29uZHMoKS02ZTQqdC5nZXRNaW51dGVzKCkpfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0KzM2ZTUqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS8zNmU1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldEhvdXJzKCl9KSksZj11LnJhbmdlLGg9bigoZnVuY3Rpb24odCl7dC5zZXRIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0RGF0ZSh0LmdldERhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtNmU0KihlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSkvODY0ZTV9KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2V0RGF0ZSgpLTF9KSkscD1oLnJhbmdlO2Z1bmN0aW9uIGQodCl7cmV0dXJuIG4oKGZ1bmN0aW9uKGUpe2Uuc2V0RGF0ZShlLmdldERhdGUoKS0oZS5nZXREYXkoKSs3LXQpJTcpLGUuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldERhdGUodC5nZXREYXRlKCkrNyplKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQtNmU0KihlLmdldFRpbWV6b25lT2Zmc2V0KCktdC5nZXRUaW1lem9uZU9mZnNldCgpKSkvNjA0OGU1fSkpfXZhciBtPWQoMCksZz1kKDEpLHY9ZCgyKSx5PWQoMykseD1kKDQpLGI9ZCg1KSxfPWQoNiksdz1tLnJhbmdlLFQ9Zy5yYW5nZSxrPXYucmFuZ2UsQT15LnJhbmdlLE09eC5yYW5nZSxTPWIucmFuZ2UsRT1fLnJhbmdlLEw9bigoZnVuY3Rpb24odCl7dC5zZXREYXRlKDEpLHQuc2V0SG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldE1vbnRoKHQuZ2V0TW9udGgoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldE1vbnRoKCktdC5nZXRNb250aCgpKzEyKihlLmdldEZ1bGxZZWFyKCktdC5nZXRGdWxsWWVhcigpKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRNb250aCgpfSkpLEM9TC5yYW5nZSxQPW4oKGZ1bmN0aW9uKHQpe3Quc2V0TW9udGgoMCwxKSx0LnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRGdWxsWWVhcih0LmdldEZ1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRGdWxsWWVhcigpLXQuZ2V0RnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRGdWxsWWVhcigpfSkpO1AuZXZlcnk9ZnVuY3Rpb24odCl7cmV0dXJuIGlzRmluaXRlKHQ9TWF0aC5mbG9vcih0KSkmJnQ+MD9uKChmdW5jdGlvbihlKXtlLnNldEZ1bGxZZWFyKE1hdGguZmxvb3IoZS5nZXRGdWxsWWVhcigpL3QpKnQpLGUuc2V0TW9udGgoMCwxKSxlLnNldEhvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKGUscil7ZS5zZXRGdWxsWWVhcihlLmdldEZ1bGxZZWFyKCkrcip0KX0pKTpudWxsfTt2YXIgST1QLnJhbmdlLE89bigoZnVuY3Rpb24odCl7dC5zZXRVVENTZWNvbmRzKDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFRpbWUoK3QrNmU0KmUpfSksKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKGUtdCkvNmU0fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ01pbnV0ZXMoKX0pKSx6PU8ucmFuZ2UsRD1uKChmdW5jdGlvbih0KXt0LnNldFVUQ01pbnV0ZXMoMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRUaW1lKCt0KzM2ZTUqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS8zNmU1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0hvdXJzKCl9KSksUj1ELnJhbmdlLEY9bigoZnVuY3Rpb24odCl7dC5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbih0LGUpe3Quc2V0VVRDRGF0ZSh0LmdldFVUQ0RhdGUoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybihlLXQpLzg2NGU1fSksKGZ1bmN0aW9uKHQpe3JldHVybiB0LmdldFVUQ0RhdGUoKS0xfSkpLEI9Ri5yYW5nZTtmdW5jdGlvbiBOKHQpe3JldHVybiBuKChmdW5jdGlvbihlKXtlLnNldFVUQ0RhdGUoZS5nZXRVVENEYXRlKCktKGUuZ2V0VVRDRGF5KCkrNy10KSU3KSxlLnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENEYXRlKHQuZ2V0VVRDRGF0ZSgpKzcqZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4oZS10KS82MDQ4ZTV9KSl9dmFyIGo9TigwKSxVPU4oMSksVj1OKDIpLEg9TigzKSxxPU4oNCksRz1OKDUpLFk9Tig2KSxXPWoucmFuZ2UsWD1VLnJhbmdlLFo9Vi5yYW5nZSxKPUgucmFuZ2UsSz1xLnJhbmdlLFE9Ry5yYW5nZSwkPVkucmFuZ2UsdHQ9bigoZnVuY3Rpb24odCl7dC5zZXRVVENEYXRlKDEpLHQuc2V0VVRDSG91cnMoMCwwLDAsMCl9KSwoZnVuY3Rpb24odCxlKXt0LnNldFVUQ01vbnRoKHQuZ2V0VVRDTW9udGgoKStlKX0pLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmdldFVUQ01vbnRoKCktdC5nZXRVVENNb250aCgpKzEyKihlLmdldFVUQ0Z1bGxZZWFyKCktdC5nZXRVVENGdWxsWWVhcigpKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENNb250aCgpfSkpLGV0PXR0LnJhbmdlLHJ0PW4oKGZ1bmN0aW9uKHQpe3Quc2V0VVRDTW9udGgoMCwxKSx0LnNldFVUQ0hvdXJzKDAsMCwwLDApfSksKGZ1bmN0aW9uKHQsZSl7dC5zZXRVVENGdWxsWWVhcih0LmdldFVUQ0Z1bGxZZWFyKCkrZSl9KSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5nZXRVVENGdWxsWWVhcigpLXQuZ2V0VVRDRnVsbFllYXIoKX0pLChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZXRVVENGdWxsWWVhcigpfSkpO3J0LmV2ZXJ5PWZ1bmN0aW9uKHQpe3JldHVybiBpc0Zpbml0ZSh0PU1hdGguZmxvb3IodCkpJiZ0PjA/bigoZnVuY3Rpb24oZSl7ZS5zZXRVVENGdWxsWWVhcihNYXRoLmZsb29yKGUuZ2V0VVRDRnVsbFllYXIoKS90KSp0KSxlLnNldFVUQ01vbnRoKDAsMSksZS5zZXRVVENIb3VycygwLDAsMCwwKX0pLChmdW5jdGlvbihlLHIpe2Uuc2V0VVRDRnVsbFllYXIoZS5nZXRVVENGdWxsWWVhcigpK3IqdCl9KSk6bnVsbH07dmFyIG50PXJ0LnJhbmdlO3QudGltZURheT1oLHQudGltZURheXM9cCx0LnRpbWVGcmlkYXk9Yix0LnRpbWVGcmlkYXlzPVMsdC50aW1lSG91cj11LHQudGltZUhvdXJzPWYsdC50aW1lSW50ZXJ2YWw9bix0LnRpbWVNaWxsaXNlY29uZD1pLHQudGltZU1pbGxpc2Vjb25kcz1hLHQudGltZU1pbnV0ZT1sLHQudGltZU1pbnV0ZXM9Yyx0LnRpbWVNb25kYXk9Zyx0LnRpbWVNb25kYXlzPVQsdC50aW1lTW9udGg9TCx0LnRpbWVNb250aHM9Qyx0LnRpbWVTYXR1cmRheT1fLHQudGltZVNhdHVyZGF5cz1FLHQudGltZVNlY29uZD1vLHQudGltZVNlY29uZHM9cyx0LnRpbWVTdW5kYXk9bSx0LnRpbWVTdW5kYXlzPXcsdC50aW1lVGh1cnNkYXk9eCx0LnRpbWVUaHVyc2RheXM9TSx0LnRpbWVUdWVzZGF5PXYsdC50aW1lVHVlc2RheXM9ayx0LnRpbWVXZWRuZXNkYXk9eSx0LnRpbWVXZWRuZXNkYXlzPUEsdC50aW1lV2Vlaz1tLHQudGltZVdlZWtzPXcsdC50aW1lWWVhcj1QLHQudGltZVllYXJzPUksdC51dGNEYXk9Rix0LnV0Y0RheXM9Qix0LnV0Y0ZyaWRheT1HLHQudXRjRnJpZGF5cz1RLHQudXRjSG91cj1ELHQudXRjSG91cnM9Uix0LnV0Y01pbGxpc2Vjb25kPWksdC51dGNNaWxsaXNlY29uZHM9YSx0LnV0Y01pbnV0ZT1PLHQudXRjTWludXRlcz16LHQudXRjTW9uZGF5PVUsdC51dGNNb25kYXlzPVgsdC51dGNNb250aD10dCx0LnV0Y01vbnRocz1ldCx0LnV0Y1NhdHVyZGF5PVksdC51dGNTYXR1cmRheXM9JCx0LnV0Y1NlY29uZD1vLHQudXRjU2Vjb25kcz1zLHQudXRjU3VuZGF5PWosdC51dGNTdW5kYXlzPVcsdC51dGNUaHVyc2RheT1xLHQudXRjVGh1cnNkYXlzPUssdC51dGNUdWVzZGF5PVYsdC51dGNUdWVzZGF5cz1aLHQudXRjV2VkbmVzZGF5PUgsdC51dGNXZWRuZXNkYXlzPUosdC51dGNXZWVrPWosdC51dGNXZWVrcz1XLHQudXRjWWVhcj1ydCx0LnV0Y1llYXJzPW50LE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KX0pKX0se31dLDE3MDpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbih0LG4peyJvYmplY3QiPT10eXBlb2YgciYmdm9pZCAwIT09ZT9uKHIpOm4oKHQ9dHx8c2VsZikuZDM9dC5kM3x8e30pfSh0aGlzLChmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGUscixuPTAsaT0wLGE9MCxvPTAscz0wLGw9MCxjPSJvYmplY3QiPT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9wZXJmb3JtYW5jZTpEYXRlLHU9Im9iamVjdCI9PXR5cGVvZiB3aW5kb3cmJndpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU/d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZS5iaW5kKHdpbmRvdyk6ZnVuY3Rpb24odCl7c2V0VGltZW91dCh0LDE3KX07ZnVuY3Rpb24gZigpe3JldHVybiBzfHwodShoKSxzPWMubm93KCkrbCl9ZnVuY3Rpb24gaCgpe3M9MH1mdW5jdGlvbiBwKCl7dGhpcy5fY2FsbD10aGlzLl90aW1lPXRoaXMuX25leHQ9bnVsbH1mdW5jdGlvbiBkKHQsZSxyKXt2YXIgbj1uZXcgcDtyZXR1cm4gbi5yZXN0YXJ0KHQsZSxyKSxufWZ1bmN0aW9uIG0oKXtmKCksKytuO2Zvcih2YXIgdCxyPWU7cjspKHQ9cy1yLl90aW1lKT49MCYmci5fY2FsbC5jYWxsKG51bGwsdCkscj1yLl9uZXh0Oy0tbn1mdW5jdGlvbiBnKCl7cz0obz1jLm5vdygpKStsLG49aT0wO3RyeXttKCl9ZmluYWxseXtuPTAsZnVuY3Rpb24oKXt2YXIgdCxuLGk9ZSxhPTEvMDtmb3IoO2k7KWkuX2NhbGw/KGE+aS5fdGltZSYmKGE9aS5fdGltZSksdD1pLGk9aS5fbmV4dCk6KG49aS5fbmV4dCxpLl9uZXh0PW51bGwsaT10P3QuX25leHQ9bjplPW4pO3I9dCx5KGEpfSgpLHM9MH19ZnVuY3Rpb24gdigpe3ZhciB0PWMubm93KCksZT10LW87ZT4xZTMmJihsLT1lLG89dCl9ZnVuY3Rpb24geSh0KXtufHwoaSYmKGk9Y2xlYXJUaW1lb3V0KGkpKSx0LXM+MjQ/KHQ8MS8wJiYoaT1zZXRUaW1lb3V0KGcsdC1jLm5vdygpLWwpKSxhJiYoYT1jbGVhckludGVydmFsKGEpKSk6KGF8fChvPWMubm93KCksYT1zZXRJbnRlcnZhbCh2LDFlMykpLG49MSx1KGcpKSl9cC5wcm90b3R5cGU9ZC5wcm90b3R5cGU9e2NvbnN0cnVjdG9yOnAscmVzdGFydDpmdW5jdGlvbih0LG4saSl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpdGhyb3cgbmV3IFR5cGVFcnJvcigiY2FsbGJhY2sgaXMgbm90IGEgZnVuY3Rpb24iKTtpPShudWxsPT1pP2YoKToraSkrKG51bGw9PW4/MDorbiksdGhpcy5fbmV4dHx8cj09PXRoaXN8fChyP3IuX25leHQ9dGhpczplPXRoaXMscj10aGlzKSx0aGlzLl9jYWxsPXQsdGhpcy5fdGltZT1pLHkoKX0sc3RvcDpmdW5jdGlvbigpe3RoaXMuX2NhbGwmJih0aGlzLl9jYWxsPW51bGwsdGhpcy5fdGltZT0xLzAseSgpKX19LHQuaW50ZXJ2YWw9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPW5ldyBwLGk9ZTtyZXR1cm4gbnVsbD09ZT8obi5yZXN0YXJ0KHQsZSxyKSxuKTooZT0rZSxyPW51bGw9PXI/ZigpOityLG4ucmVzdGFydCgoZnVuY3Rpb24gYShvKXtvKz1pLG4ucmVzdGFydChhLGkrPWUsciksdChvKX0pLGUsciksbil9LHQubm93PWYsdC50aW1lb3V0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1uZXcgcDtyZXR1cm4gZT1udWxsPT1lPzA6K2Usbi5yZXN0YXJ0KChmdW5jdGlvbihyKXtuLnN0b3AoKSx0KHIrZSl9KSxlLHIpLG59LHQudGltZXI9ZCx0LnRpbWVyRmx1c2g9bSxPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHt9XSwxNzE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWlmKHZvaWQgMCE9PWFyZ3VtZW50c1t0XSlyZXR1cm4gYXJndW1lbnRzW3RdfX0se31dLDE3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCIpLGk9dCgidW5pcSIpO2Z1bmN0aW9uIGEodCxlKXt0aGlzLnBvaW50PXQsdGhpcy5pbmRleD1lfWZ1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9dC5wb2ludCxuPWUucG9pbnQsaT1yLmxlbmd0aCxhPTA7YTxpOysrYSl7dmFyIG89blthXS1yW2FdO2lmKG8pcmV0dXJuIG99cmV0dXJuIDB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGg7aWYoMD09PXIpcmV0dXJuW107dmFyIHM9dFswXS5sZW5ndGg7aWYoczwxKXJldHVybltdO2lmKDE9PT1zKXJldHVybiBmdW5jdGlvbih0LGUscil7aWYoMT09PXQpcmV0dXJuIHI/W1stMSwwXV06W107dmFyIG49ZS5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuW3RbMF0sZV19KSk7bi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLWVbMF19KSk7Zm9yKHZhciBpPW5ldyBBcnJheSh0LTEpLGE9MTthPHQ7KythKXt2YXIgbz1uW2EtMV0scz1uW2FdO2lbYS0xXT1bb1sxXSxzWzFdXX1yJiZpLnB1c2goWy0xLGlbMF1bMV1dLFtpW3QtMV1bMV0sLTFdKTtyZXR1cm4gaX0ocix0LGUpO2Zvcih2YXIgbD1uZXcgQXJyYXkociksYz0xLHU9MDt1PHI7Kyt1KXtmb3IodmFyIGY9dFt1XSxoPW5ldyBBcnJheShzKzEpLHA9MCxkPTA7ZDxzOysrZCl7dmFyIG09ZltkXTtoW2RdPW0scCs9bSptfWhbc109cCxsW3VdPW5ldyBhKGgsdSksYz1NYXRoLm1heChwLGMpfWkobCxvKSxyPWwubGVuZ3RoO3ZhciBnPW5ldyBBcnJheShyK3MrMSksdj1uZXcgQXJyYXkocitzKzEpLHk9KHMrMSkqKHMrMSkqYyx4PW5ldyBBcnJheShzKzEpO2Zvcih1PTA7dTw9czsrK3UpeFt1XT0wO3hbc109eSxnWzBdPXguc2xpY2UoKSx2WzBdPS0xO2Zvcih1PTA7dTw9czsrK3UpeyhoPXguc2xpY2UoKSlbdV09MSxnW3UrMV09aCx2W3UrMV09LTF9Zm9yKHU9MDt1PHI7Kyt1KXt2YXIgYj1sW3VdO2dbdStzKzFdPWIucG9pbnQsdlt1K3MrMV09Yi5pbmRleH12YXIgXz1uKGcsITEpO189ZT9fLmZpbHRlcigoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wO3I8PXM7KytyKXt2YXIgbj12W3Rbcl1dO2lmKG48MCYmKytlPj0yKXJldHVybiExO3Rbcl09bn1yZXR1cm4hMH0pKTpfLmZpbHRlcigoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTw9czsrK2Upe3ZhciByPXZbdFtlXV07aWYocjwwKXJldHVybiExO3RbZV09cn1yZXR1cm4hMH0pKTtpZigxJnMpZm9yKHU9MDt1PF8ubGVuZ3RoOysrdSl7aD0oYj1fW3VdKVswXTtiWzBdPWJbMV0sYlsxXT1ofXJldHVybiBffX0seyJpbmNyZW1lbnRhbC1jb252ZXgtaHVsbCI6NDI4LHVuaXE6NTkyfV0sMTczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1hO3ZhciBuPShhLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSkuZ2V0Q29udGV4dCgiMmQiKSxpPW8oWzMyLDEyNl0pO2Z1bmN0aW9uIGEodCxlKXtBcnJheS5pc0FycmF5KHQpJiYodD10LmpvaW4oIiwgIikpO3ZhciByLGE9e30scz0xNixsPS4wNTtlJiYoMj09PWUubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIGVbMF0/cj1vKGUpOkFycmF5LmlzQXJyYXkoZSk/cj1lOihlLm8/cj1vKGUubyk6ZS5wYWlycyYmKHI9ZS5wYWlycyksZS5mb250U2l6ZSYmKHM9ZS5mb250U2l6ZSksbnVsbCE9ZS50aHJlc2hvbGQmJihsPWUudGhyZXNob2xkKSkpLHJ8fChyPWkpLG4uZm9udD1zKyJweCAiK3Q7Zm9yKHZhciBjPTA7YzxyLmxlbmd0aDtjKyspe3ZhciB1PXJbY10sZj1uLm1lYXN1cmVUZXh0KHVbMF0pLndpZHRoK24ubWVhc3VyZVRleHQodVsxXSkud2lkdGgsaD1uLm1lYXN1cmVUZXh0KHUpLndpZHRoO2lmKE1hdGguYWJzKGYtaCk+cypsKXt2YXIgcD0oaC1mKS9zO2FbdV09MWUzKnB9fXJldHVybiBhfWZ1bmN0aW9uIG8odCl7Zm9yKHZhciBlPVtdLHI9dFswXTtyPD10WzFdO3IrKylmb3IodmFyIG49U3RyaW5nLmZyb21DaGFyQ29kZShyKSxpPXRbMF07aTx0WzFdO2krKyl7dmFyIGE9bitTdHJpbmcuZnJvbUNoYXJDb2RlKGkpO2UucHVzaChhKX1yZXR1cm4gZX1hLmNyZWF0ZVBhaXJzPW8sYS5hc2NpaT1pfSx7fV0sMTc0OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpeyhmdW5jdGlvbigpe3ZhciByPSExO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgRmxvYXQ2NEFycmF5KXt2YXIgbj1uZXcgRmxvYXQ2NEFycmF5KDEpLGk9bmV3IFVpbnQzMkFycmF5KG4uYnVmZmVyKTtpZihuWzBdPTEscj0hMCwxMDcyNjkzMjQ4PT09aVsxXSl7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuWzBdPXQsW2lbMF0saVsxXV19LGUuZXhwb3J0cy5wYWNrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGlbMF09dCxpWzFdPWUsblswXX0sZS5leHBvcnRzLmxvPWZ1bmN0aW9uKHQpe3JldHVybiBuWzBdPXQsaVswXX0sZS5leHBvcnRzLmhpPWZ1bmN0aW9uKHQpe3JldHVybiBuWzBdPXQsaVsxXX19ZWxzZSBpZigxMDcyNjkzMjQ4PT09aVswXSl7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuWzBdPXQsW2lbMV0saVswXV19LGUuZXhwb3J0cy5wYWNrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGlbMV09dCxpWzBdPWUsblswXX0sZS5leHBvcnRzLmxvPWZ1bmN0aW9uKHQpe3JldHVybiBuWzBdPXQsaVsxXX0sZS5leHBvcnRzLmhpPWZ1bmN0aW9uKHQpe3JldHVybiBuWzBdPXQsaVswXX19ZWxzZSByPSExfWlmKCFyKXt2YXIgYT1uZXcgdCg4KTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGEud3JpdGVEb3VibGVMRSh0LDAsITApLFthLnJlYWRVSW50MzJMRSgwLCEwKSxhLnJlYWRVSW50MzJMRSg0LCEwKV19LGUuZXhwb3J0cy5wYWNrPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEud3JpdGVVSW50MzJMRSh0LDAsITApLGEud3JpdGVVSW50MzJMRShlLDQsITApLGEucmVhZERvdWJsZUxFKDAsITApfSxlLmV4cG9ydHMubG89ZnVuY3Rpb24odCl7cmV0dXJuIGEud3JpdGVEb3VibGVMRSh0LDAsITApLGEucmVhZFVJbnQzMkxFKDAsITApfSxlLmV4cG9ydHMuaGk9ZnVuY3Rpb24odCl7cmV0dXJuIGEud3JpdGVEb3VibGVMRSh0LDAsITApLGEucmVhZFVJbnQzMkxFKDQsITApfX1lLmV4cG9ydHMuc2lnbj1mdW5jdGlvbih0KXtyZXR1cm4gZS5leHBvcnRzLmhpKHQpPj4+MzF9LGUuZXhwb3J0cy5leHBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4oZS5leHBvcnRzLmhpKHQpPDwxPj4+MjEpLTEwMjN9LGUuZXhwb3J0cy5mcmFjdGlvbj1mdW5jdGlvbih0KXt2YXIgcj1lLmV4cG9ydHMubG8odCksbj1lLmV4cG9ydHMuaGkodCksaT0xMDQ4NTc1Jm47cmV0dXJuIDIxNDY0MzUwNzImbiYmKGkrPTE8PDIwKSxbcixpXX0sZS5leHBvcnRzLmRlbm9ybWFsaXplZD1mdW5jdGlvbih0KXtyZXR1cm4hKDIxNDY0MzUwNzImZS5leHBvcnRzLmhpKHQpKX19KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHQoImJ1ZmZlciIpLkJ1ZmZlcil9LHtidWZmZXI6MTEyfV0sMTc1OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiYWJzLXN2Zy1wYXRoIiksaT10KCJub3JtYWxpemUtc3ZnLXBhdGgiKSxhPXtNOiJtb3ZlVG8iLEM6ImJlemllckN1cnZlVG8ifTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt0LmJlZ2luUGF0aCgpLGkobihlKSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9ZVswXSxuPWUuc2xpY2UoMSk7dFthW3JdXS5hcHBseSh0LG4pfSkpLHQuY2xvc2VQYXRoKCl9fSx7ImFicy1zdmctcGF0aCI6NjcsIm5vcm1hbGl6ZS1zdmctcGF0aCI6NDY0fV0sMTc2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlImludDgiOnJldHVybiBJbnQ4QXJyYXk7Y2FzZSJpbnQxNiI6cmV0dXJuIEludDE2QXJyYXk7Y2FzZSJpbnQzMiI6cmV0dXJuIEludDMyQXJyYXk7Y2FzZSJ1aW50OCI6cmV0dXJuIFVpbnQ4QXJyYXk7Y2FzZSJ1aW50MTYiOnJldHVybiBVaW50MTZBcnJheTtjYXNlInVpbnQzMiI6cmV0dXJuIFVpbnQzMkFycmF5O2Nhc2UiZmxvYXQzMiI6cmV0dXJuIEZsb2F0MzJBcnJheTtjYXNlImZsb2F0NjQiOnJldHVybiBGbG9hdDY0QXJyYXk7Y2FzZSJhcnJheSI6cmV0dXJuIEFycmF5O2Nhc2UidWludDhfY2xhbXBlZCI6cmV0dXJuIFVpbnQ4Q2xhbXBlZEFycmF5fX19LHt9XSwxNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7c3dpdGNoKHZvaWQgMD09PWUmJihlPTApLHR5cGVvZiB0KXtjYXNlIm51bWJlciI6aWYodD4wKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByLG47Zm9yKHI9bmV3IEFycmF5KHQpLG49MDtuPHQ7KytuKXJbbl09ZTtyZXR1cm4gcn0oMHx0LGUpO2JyZWFrO2Nhc2Uib2JqZWN0IjppZigibnVtYmVyIj09dHlwZW9mIHQubGVuZ3RoKXJldHVybiBmdW5jdGlvbiB0KGUscixuKXt2YXIgaT0wfGVbbl07aWYoaTw9MClyZXR1cm5bXTt2YXIgYSxvPW5ldyBBcnJheShpKTtpZihuPT09ZS5sZW5ndGgtMSlmb3IoYT0wO2E8aTsrK2Epb1thXT1yO2Vsc2UgZm9yKGE9MDthPGk7KythKW9bYV09dChlLHIsbisxKTtyZXR1cm4gb30odCxlLDApfXJldHVybltdfX0se31dLDE3ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSxyKXtyPXJ8fDI7dmFyIG4scyxsLGMsdSxwLGQsZz1lJiZlLmxlbmd0aCx2PWc/ZVswXSpyOnQubGVuZ3RoLHk9aSh0LDAsdixyLCEwKSx4PVtdO2lmKCF5fHx5Lm5leHQ9PT15LnByZXYpcmV0dXJuIHg7aWYoZyYmKHk9ZnVuY3Rpb24odCxlLHIsbil7dmFyIG8scyxsLGMsdSxwPVtdO2ZvcihvPTAscz1lLmxlbmd0aDtvPHM7bysrKWw9ZVtvXSpuLGM9bzxzLTE/ZVtvKzFdKm46dC5sZW5ndGgsKHU9aSh0LGwsYyxuLCExKSk9PT11Lm5leHQmJih1LnN0ZWluZXI9ITApLHAucHVzaChtKHUpKTtmb3IocC5zb3J0KGYpLG89MDtvPHAubGVuZ3RoO28rKylyPWEocj1oKHBbb10sciksci5uZXh0KTtyZXR1cm4gcn0odCxlLHkscikpLHQubGVuZ3RoPjgwKnIpe249bD10WzBdLHM9Yz10WzFdO2Zvcih2YXIgYj1yO2I8djtiKz1yKSh1PXRbYl0pPG4mJihuPXUpLChwPXRbYisxXSk8cyYmKHM9cCksdT5sJiYobD11KSxwPmMmJihjPXApO2Q9MCE9PShkPU1hdGgubWF4KGwtbixjLXMpKT8xL2Q6MH1yZXR1cm4gbyh5LHgscixuLHMsZCkseH1mdW5jdGlvbiBpKHQsZSxyLG4saSl7dmFyIGEsbztpZihpPT09RSh0LGUscixuKT4wKWZvcihhPWU7YTxyO2ErPW4pbz1BKGEsdFthXSx0W2ErMV0sbyk7ZWxzZSBmb3IoYT1yLW47YT49ZTthLT1uKW89QShhLHRbYV0sdFthKzFdLG8pO3JldHVybiBvJiZ4KG8sby5uZXh0KSYmKE0obyksbz1vLm5leHQpLG99ZnVuY3Rpb24gYSh0LGUpe2lmKCF0KXJldHVybiB0O2V8fChlPXQpO3ZhciByLG49dDtkb3tpZihyPSExLG4uc3RlaW5lcnx8IXgobixuLm5leHQpJiYwIT09eShuLnByZXYsbixuLm5leHQpKW49bi5uZXh0O2Vsc2V7aWYoTShuKSwobj1lPW4ucHJldik9PT1uLm5leHQpYnJlYWs7cj0hMH19d2hpbGUocnx8biE9PWUpO3JldHVybiBlfWZ1bmN0aW9uIG8odCxlLHIsbixpLGYsaCl7aWYodCl7IWgmJmYmJmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXQ7ZG97bnVsbD09PWkueiYmKGkuej1kKGkueCxpLnksZSxyLG4pKSxpLnByZXZaPWkucHJldixpLm5leHRaPWkubmV4dCxpPWkubmV4dH13aGlsZShpIT09dCk7aS5wcmV2Wi5uZXh0Wj1udWxsLGkucHJldlo9bnVsbCxmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scyxsLGM9MTtkb3tmb3Iocj10LHQ9bnVsbCxhPW51bGwsbz0wO3I7KXtmb3IobysrLG49cixzPTAsZT0wO2U8YyYmKHMrKyxuPW4ubmV4dFopO2UrKyk7Zm9yKGw9YztzPjB8fGw+MCYmbjspMCE9PXMmJigwPT09bHx8IW58fHIuejw9bi56KT8oaT1yLHI9ci5uZXh0WixzLS0pOihpPW4sbj1uLm5leHRaLGwtLSksYT9hLm5leHRaPWk6dD1pLGkucHJldlo9YSxhPWk7cj1ufWEubmV4dFo9bnVsbCxjKj0yfXdoaWxlKG8+MSl9KGkpfSh0LG4saSxmKTtmb3IodmFyIHAsbSxnPXQ7dC5wcmV2IT09dC5uZXh0OylpZihwPXQucHJldixtPXQubmV4dCxmP2wodCxuLGksZik6cyh0KSllLnB1c2gocC5pL3IpLGUucHVzaCh0LmkvciksZS5wdXNoKG0uaS9yKSxNKHQpLHQ9bS5uZXh0LGc9bS5uZXh0O2Vsc2UgaWYoKHQ9bSk9PT1nKXtoPzE9PT1oP28odD1jKGEodCksZSxyKSxlLHIsbixpLGYsMik6Mj09PWgmJnUodCxlLHIsbixpLGYpOm8oYSh0KSxlLHIsbixpLGYsMSk7YnJlYWt9fX1mdW5jdGlvbiBzKHQpe3ZhciBlPXQucHJldixyPXQsbj10Lm5leHQ7aWYoeShlLHIsbik+PTApcmV0dXJuITE7Zm9yKHZhciBpPXQubmV4dC5uZXh0O2khPT10LnByZXY7KXtpZihnKGUueCxlLnksci54LHIueSxuLngsbi55LGkueCxpLnkpJiZ5KGkucHJldixpLGkubmV4dCk+PTApcmV0dXJuITE7aT1pLm5leHR9cmV0dXJuITB9ZnVuY3Rpb24gbCh0LGUscixuKXt2YXIgaT10LnByZXYsYT10LG89dC5uZXh0O2lmKHkoaSxhLG8pPj0wKXJldHVybiExO2Zvcih2YXIgcz1pLng8YS54P2kueDxvLng/aS54Om8ueDphLng8by54P2EueDpvLngsbD1pLnk8YS55P2kueTxvLnk/aS55Om8ueTphLnk8by55P2EueTpvLnksYz1pLng+YS54P2kueD5vLng/aS54Om8ueDphLng+by54P2EueDpvLngsdT1pLnk+YS55P2kueT5vLnk/aS55Om8ueTphLnk+by55P2EueTpvLnksZj1kKHMsbCxlLHIsbiksaD1kKGMsdSxlLHIsbikscD10LnByZXZaLG09dC5uZXh0WjtwJiZwLno+PWYmJm0mJm0uejw9aDspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJmcoaS54LGkueSxhLngsYS55LG8ueCxvLnkscC54LHAueSkmJnkocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtpZihwPXAucHJldlosbSE9PXQucHJldiYmbSE9PXQubmV4dCYmZyhpLngsaS55LGEueCxhLnksby54LG8ueSxtLngsbS55KSYmeShtLnByZXYsbSxtLm5leHQpPj0wKXJldHVybiExO209bS5uZXh0Wn1mb3IoO3AmJnAuej49Zjspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJmcoaS54LGkueSxhLngsYS55LG8ueCxvLnkscC54LHAueSkmJnkocC5wcmV2LHAscC5uZXh0KT49MClyZXR1cm4hMTtwPXAucHJldlp9Zm9yKDttJiZtLno8PWg7KXtpZihtIT09dC5wcmV2JiZtIT09dC5uZXh0JiZnKGkueCxpLnksYS54LGEueSxvLngsby55LG0ueCxtLnkpJiZ5KG0ucHJldixtLG0ubmV4dCk+PTApcmV0dXJuITE7bT1tLm5leHRafXJldHVybiEwfWZ1bmN0aW9uIGModCxlLHIpe3ZhciBuPXQ7ZG97dmFyIGk9bi5wcmV2LG89bi5uZXh0Lm5leHQ7IXgoaSxvKSYmYihpLG4sbi5uZXh0LG8pJiZUKGksbykmJlQobyxpKSYmKGUucHVzaChpLmkvciksZS5wdXNoKG4uaS9yKSxlLnB1c2goby5pL3IpLE0obiksTShuLm5leHQpLG49dD1vKSxuPW4ubmV4dH13aGlsZShuIT09dCk7cmV0dXJuIGEobil9ZnVuY3Rpb24gdSh0LGUscixuLGkscyl7dmFyIGw9dDtkb3tmb3IodmFyIGM9bC5uZXh0Lm5leHQ7YyE9PWwucHJldjspe2lmKGwuaSE9PWMuaSYmdihsLGMpKXt2YXIgdT1rKGwsYyk7cmV0dXJuIGw9YShsLGwubmV4dCksdT1hKHUsdS5uZXh0KSxvKGwsZSxyLG4saSxzKSx2b2lkIG8odSxlLHIsbixpLHMpfWM9Yy5uZXh0fWw9bC5uZXh0fXdoaWxlKGwhPT10KX1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIHQueC1lLnh9ZnVuY3Rpb24gaCh0LGUpe3ZhciByPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj1lLGk9dC54LGE9dC55LG89LTEvMDtkb3tpZihhPD1uLnkmJmE+PW4ubmV4dC55JiZuLm5leHQueSE9PW4ueSl7dmFyIHM9bi54KyhhLW4ueSkqKG4ubmV4dC54LW4ueCkvKG4ubmV4dC55LW4ueSk7aWYoczw9aSYmcz5vKXtpZihvPXMscz09PWkpe2lmKGE9PT1uLnkpcmV0dXJuIG47aWYoYT09PW4ubmV4dC55KXJldHVybiBuLm5leHR9cj1uLng8bi5uZXh0Lng/bjpuLm5leHR9fW49bi5uZXh0fXdoaWxlKG4hPT1lKTtpZighcilyZXR1cm4gbnVsbDtpZihpPT09bylyZXR1cm4gcjt2YXIgbCxjPXIsdT1yLngsZj1yLnksaD0xLzA7bj1yO2Rve2k+PW4ueCYmbi54Pj11JiZpIT09bi54JiZnKGE8Zj9pOm8sYSx1LGYsYTxmP286aSxhLG4ueCxuLnkpJiYobD1NYXRoLmFicyhhLW4ueSkvKGktbi54KSxUKG4sdCkmJihsPGh8fGw9PT1oJiYobi54PnIueHx8bi54PT09ci54JiZwKHIsbikpKSYmKHI9bixoPWwpKSxuPW4ubmV4dH13aGlsZShuIT09Yyk7cmV0dXJuIHJ9KHQsZSk7aWYoIXIpcmV0dXJuIGU7dmFyIG49ayhyLHQpLGk9YShyLHIubmV4dCk7cmV0dXJuIGEobixuLm5leHQpLGU9PT1yP2k6ZX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHkodC5wcmV2LHQsZS5wcmV2KTwwJiZ5KGUubmV4dCx0LHQubmV4dCk8MH1mdW5jdGlvbiBkKHQsZSxyLG4saSl7cmV0dXJuKHQ9MTQzMTY1NTc2NSYoKHQ9ODU4OTkzNDU5JigodD0yNTI2NDUxMzUmKCh0PTE2NzExOTM1JigodD0zMjc2NyoodC1yKSppKXx0PDw4KSl8dDw8NCkpfHQ8PDIpKXx0PDwxKSl8KGU9MTQzMTY1NTc2NSYoKGU9ODU4OTkzNDU5JigoZT0yNTI2NDUxMzUmKChlPTE2NzExOTM1JigoZT0zMjc2NyooZS1uKSppKXxlPDw4KSl8ZTw8NCkpfGU8PDIpKXxlPDwxKSk8PDF9ZnVuY3Rpb24gbSh0KXt2YXIgZT10LHI9dDtkb3soZS54PHIueHx8ZS54PT09ci54JiZlLnk8ci55KSYmKHI9ZSksZT1lLm5leHR9d2hpbGUoZSE9PXQpO3JldHVybiByfWZ1bmN0aW9uIGcodCxlLHIsbixpLGEsbyxzKXtyZXR1cm4oaS1vKSooZS1zKS0odC1vKSooYS1zKT49MCYmKHQtbykqKG4tcyktKHItbykqKGUtcyk+PTAmJihyLW8pKihhLXMpLShpLW8pKihuLXMpPj0wfWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4gdC5uZXh0LmkhPT1lLmkmJnQucHJldi5pIT09ZS5pJiYhZnVuY3Rpb24odCxlKXt2YXIgcj10O2Rve2lmKHIuaSE9PXQuaSYmci5uZXh0LmkhPT10LmkmJnIuaSE9PWUuaSYmci5uZXh0LmkhPT1lLmkmJmIocixyLm5leHQsdCxlKSlyZXR1cm4hMDtyPXIubmV4dH13aGlsZShyIT09dCk7cmV0dXJuITF9KHQsZSkmJihUKHQsZSkmJlQoZSx0KSYmZnVuY3Rpb24odCxlKXt2YXIgcj10LG49ITEsaT0odC54K2UueCkvMixhPSh0LnkrZS55KS8yO2Rve3IueT5hIT1yLm5leHQueT5hJiZyLm5leHQueSE9PXIueSYmaTwoci5uZXh0Lngtci54KSooYS1yLnkpLyhyLm5leHQueS1yLnkpK3IueCYmKG49IW4pLHI9ci5uZXh0fXdoaWxlKHIhPT10KTtyZXR1cm4gbn0odCxlKSYmKHkodC5wcmV2LHQsZS5wcmV2KXx8eSh0LGUucHJldixlKSl8fHgodCxlKSYmeSh0LnByZXYsdCx0Lm5leHQpPjAmJnkoZS5wcmV2LGUsZS5uZXh0KT4wKX1mdW5jdGlvbiB5KHQsZSxyKXtyZXR1cm4oZS55LXQueSkqKHIueC1lLngpLShlLngtdC54KSooci55LWUueSl9ZnVuY3Rpb24geCh0LGUpe3JldHVybiB0Lng9PT1lLngmJnQueT09PWUueX1mdW5jdGlvbiBiKHQsZSxyLG4pe3ZhciBpPXcoeSh0LGUscikpLGE9dyh5KHQsZSxuKSksbz13KHkocixuLHQpKSxzPXcoeShyLG4sZSkpO3JldHVybiBpIT09YSYmbyE9PXN8fCghKDAhPT1pfHwhXyh0LHIsZSkpfHwoISgwIT09YXx8IV8odCxuLGUpKXx8KCEoMCE9PW98fCFfKHIsdCxuKSl8fCEoMCE9PXN8fCFfKHIsZSxuKSkpKSl9ZnVuY3Rpb24gXyh0LGUscil7cmV0dXJuIGUueDw9TWF0aC5tYXgodC54LHIueCkmJmUueD49TWF0aC5taW4odC54LHIueCkmJmUueTw9TWF0aC5tYXgodC55LHIueSkmJmUueT49TWF0aC5taW4odC55LHIueSl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9ZnVuY3Rpb24gVCh0LGUpe3JldHVybiB5KHQucHJldix0LHQubmV4dCk8MD95KHQsZSx0Lm5leHQpPj0wJiZ5KHQsdC5wcmV2LGUpPj0wOnkodCxlLHQucHJldik8MHx8eSh0LHQubmV4dCxlKTwwfWZ1bmN0aW9uIGsodCxlKXt2YXIgcj1uZXcgUyh0LmksdC54LHQueSksbj1uZXcgUyhlLmksZS54LGUueSksaT10Lm5leHQsYT1lLnByZXY7cmV0dXJuIHQubmV4dD1lLGUucHJldj10LHIubmV4dD1pLGkucHJldj1yLG4ubmV4dD1yLHIucHJldj1uLGEubmV4dD1uLG4ucHJldj1hLG59ZnVuY3Rpb24gQSh0LGUscixuKXt2YXIgaT1uZXcgUyh0LGUscik7cmV0dXJuIG4/KGkubmV4dD1uLm5leHQsaS5wcmV2PW4sbi5uZXh0LnByZXY9aSxuLm5leHQ9aSk6KGkucHJldj1pLGkubmV4dD1pKSxpfWZ1bmN0aW9uIE0odCl7dC5uZXh0LnByZXY9dC5wcmV2LHQucHJldi5uZXh0PXQubmV4dCx0LnByZXZaJiYodC5wcmV2Wi5uZXh0Wj10Lm5leHRaKSx0Lm5leHRaJiYodC5uZXh0Wi5wcmV2Wj10LnByZXZaKX1mdW5jdGlvbiBTKHQsZSxyKXt0aGlzLmk9dCx0aGlzLng9ZSx0aGlzLnk9cix0aGlzLnByZXY9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLno9bnVsbCx0aGlzLnByZXZaPW51bGwsdGhpcy5uZXh0Wj1udWxsLHRoaXMuc3RlaW5lcj0hMX1mdW5jdGlvbiBFKHQsZSxyLG4pe2Zvcih2YXIgaT0wLGE9ZSxvPXItbjthPHI7YSs9bilpKz0odFtvXS10W2FdKSoodFthKzFdK3RbbysxXSksbz1hO3JldHVybiBpfWUuZXhwb3J0cz1uLGUuZXhwb3J0cy5kZWZhdWx0PW4sbi5kZXZpYXRpb249ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ZSYmZS5sZW5ndGgsYT1pP2VbMF0qcjp0Lmxlbmd0aCxvPU1hdGguYWJzKEUodCwwLGEscikpO2lmKGkpZm9yKHZhciBzPTAsbD1lLmxlbmd0aDtzPGw7cysrKXt2YXIgYz1lW3NdKnIsdT1zPGwtMT9lW3MrMV0qcjp0Lmxlbmd0aDtvLT1NYXRoLmFicyhFKHQsYyx1LHIpKX12YXIgZj0wO2ZvcihzPTA7czxuLmxlbmd0aDtzKz0zKXt2YXIgaD1uW3NdKnIscD1uW3MrMV0qcixkPW5bcysyXSpyO2YrPU1hdGguYWJzKCh0W2hdLXRbZF0pKih0W3ArMV0tdFtoKzFdKS0odFtoXS10W3BdKSoodFtkKzFdLXRbaCsxXSkpfXJldHVybiAwPT09byYmMD09PWY/MDpNYXRoLmFicygoZi1vKS9vKX0sbi5mbGF0dGVuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10WzBdWzBdLmxlbmd0aCxyPXt2ZXJ0aWNlczpbXSxob2xlczpbXSxkaW1lbnNpb25zOmV9LG49MCxpPTA7aTx0Lmxlbmd0aDtpKyspe2Zvcih2YXIgYT0wO2E8dFtpXS5sZW5ndGg7YSsrKWZvcih2YXIgbz0wO288ZTtvKyspci52ZXJ0aWNlcy5wdXNoKHRbaV1bYV1bb10pO2k+MCYmKG4rPXRbaS0xXS5sZW5ndGgsci5ob2xlcy5wdXNoKG4pKX1yZXR1cm4gcn19LHt9XSwxNzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5sZW5ndGg7aWYoIm51bWJlciIhPXR5cGVvZiBlKXtlPTA7Zm9yKHZhciBpPTA7aTxyOysraSl7dmFyIGE9dFtpXTtlPU1hdGgubWF4KGUsYVswXSxhWzFdKX1lPTErKDB8ZSl9ZXw9MDt2YXIgbz1uZXcgQXJyYXkoZSk7Zm9yKGk9MDtpPGU7KytpKW9baV09W107Zm9yKGk9MDtpPHI7KytpKXthPXRbaV07b1thWzBdXS5wdXNoKGFbMV0pLG9bYVsxXV0ucHVzaChhWzBdKX1mb3IodmFyIHM9MDtzPGU7KytzKW4ob1tzXSwoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpO3JldHVybiBvfTt2YXIgbj10KCJ1bmlxIil9LHt1bmlxOjU5Mn1dLDE4MDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoInN0cm9uZ2x5LWNvbm5lY3RlZC1jb21wb25lbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaT1bXSxhPVtdLG89W10scz17fSxsPVtdO2Z1bmN0aW9uIGModCl7dmFyIGUsbixpPSExO2ZvcihhLnB1c2godCksb1t0XT0hMCxlPTA7ZTxsW3RdLmxlbmd0aDtlKyspKG49bFt0XVtlXSk9PT1yPyh1KHIsYSksaT0hMCk6b1tuXXx8KGk9YyhuKSk7aWYoaSkhZnVuY3Rpb24gdChlKXtvW2VdPSExLHMuaGFzT3duUHJvcGVydHkoZSkmJk9iamVjdC5rZXlzKHNbZV0pLmZvckVhY2goKGZ1bmN0aW9uKHIpe2RlbGV0ZSBzW2VdW3JdLG9bcl0mJnQocil9KSl9KHQpO2Vsc2UgZm9yKGU9MDtlPGxbdF0ubGVuZ3RoO2UrKyl7bj1sW3RdW2VdO3ZhciBmPXNbbl07Znx8KGY9e30sc1tuXT1mKSxmW25dPSEwfXJldHVybiBhLnBvcCgpLGl9ZnVuY3Rpb24gdSh0LHIpe3ZhciBuPVtdLmNvbmNhdChyKS5jb25jYXQodCk7ZT9lKG4pOmkucHVzaChuKX1mdW5jdGlvbiBmKGUpeyFmdW5jdGlvbihlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKykocjxlfHwhdFtyXSkmJih0W3JdPVtdKSx0W3JdPXRbcl0uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdD49ZX0pKX0oZSk7Zm9yKHZhciByLGk9bih0KS5jb21wb25lbnRzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubGVuZ3RoPjF9KSksYT0xLzAsbz0wO288aS5sZW5ndGg7bysrKWZvcih2YXIgcz0wO3M8aVtvXS5sZW5ndGg7cysrKWlbb11bc108YSYmKGE9aVtvXVtzXSxyPW8pO3ZhciBsPWlbcl07cmV0dXJuISFsJiZ7bGVhc3RWZXJ0ZXg6YSxhZGpMaXN0OnQubWFwKChmdW5jdGlvbih0LGUpe3JldHVybi0xPT09bC5pbmRleE9mKGUpP1tdOnQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4tMSE9PWwuaW5kZXhPZih0KX0pKX0pKX19cj0wO2Zvcih2YXIgaD10Lmxlbmd0aDtyPGg7KXt2YXIgcD1mKHIpO2lmKHI9cC5sZWFzdFZlcnRleCxsPXAuYWRqTGlzdCl7Zm9yKHZhciBkPTA7ZDxsLmxlbmd0aDtkKyspZm9yKHZhciBtPTA7bTxsW2RdLmxlbmd0aDttKyspe3ZhciBnPWxbZF1bbV07b1srZ109ITEsc1tnXT17fX1jKHIpLHIrPTF9ZWxzZSByPWh9cmV0dXJuIGU/dm9pZCAwOml9fSx7InN0cm9uZ2x5LWNvbm5lY3RlZC1jb21wb25lbnRzIjo1NjR9XSwxODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vb2JqZWN0L3ZhbGlkLXZhbHVlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIG4odGhpcykubGVuZ3RoPTAsdGhpc319LHsiLi4vLi4vb2JqZWN0L3ZhbGlkLXZhbHVlIjoyMTJ9XSwxODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIi4vaXMtaW1wbGVtZW50ZWQiKSgpP0FycmF5LmZyb206dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MTgzLCIuL3NoaW0iOjE4NH1dLDE4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdCxlLHI9QXJyYXkuZnJvbTtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgciYmKGU9cih0PVsicmF6IiwiZHdhIl0pLEJvb2xlYW4oZSYmZSE9PXQmJiJkd2EiPT09ZVsxXSkpfX0se31dLDE4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJlczYtc3ltYm9sIikuaXRlcmF0b3IsaT10KCIuLi8uLi9mdW5jdGlvbi9pcy1hcmd1bWVudHMiKSxhPXQoIi4uLy4uL2Z1bmN0aW9uL2lzLWZ1bmN0aW9uIiksbz10KCIuLi8uLi9udW1iZXIvdG8tcG9zLWludGVnZXIiKSxzPXQoIi4uLy4uL29iamVjdC92YWxpZC1jYWxsYWJsZSIpLGw9dCgiLi4vLi4vb2JqZWN0L3ZhbGlkLXZhbHVlIiksYz10KCIuLi8uLi9vYmplY3QvaXMtdmFsdWUiKSx1PXQoIi4uLy4uL3N0cmluZy9pcy1zdHJpbmciKSxmPUFycmF5LmlzQXJyYXksaD1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCxwPXtjb25maWd1cmFibGU6ITAsZW51bWVyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTpudWxsfSxkPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixtLGcsdix5LHgsYixfLHcsVD1hcmd1bWVudHNbMV0saz1hcmd1bWVudHNbMl07aWYodD1PYmplY3QobCh0KSksYyhUKSYmcyhUKSx0aGlzJiZ0aGlzIT09QXJyYXkmJmEodGhpcykpZT10aGlzO2Vsc2V7aWYoIVQpe2lmKGkodCkpcmV0dXJuIDEhPT0odj10Lmxlbmd0aCk/QXJyYXkuYXBwbHkobnVsbCx0KTooKGc9bmV3IEFycmF5KDEpKVswXT10WzBdLGcpO2lmKGYodCkpe2ZvcihnPW5ldyBBcnJheSh2PXQubGVuZ3RoKSxyPTA7cjx2OysrcilnW3JdPXRbcl07cmV0dXJuIGd9fWc9W119aWYoIWYodCkpaWYodm9pZCAwIT09KF89dFtuXSkpe2Zvcih4PXMoXykuY2FsbCh0KSxlJiYoZz1uZXcgZSksYj14Lm5leHQoKSxyPTA7IWIuZG9uZTspdz1UP2guY2FsbChULGssYi52YWx1ZSxyKTpiLnZhbHVlLGU/KHAudmFsdWU9dyxkKGcscixwKSk6Z1tyXT13LGI9eC5uZXh0KCksKytyO3Y9cn1lbHNlIGlmKHUodCkpe2Zvcih2PXQubGVuZ3RoLGUmJihnPW5ldyBlKSxyPTAsbT0wO3I8djsrK3Ipdz10W3JdLHIrMTx2JiYoeT13LmNoYXJDb2RlQXQoMCkpPj01NTI5NiYmeTw9NTYzMTkmJih3Kz10Wysrcl0pLHc9VD9oLmNhbGwoVCxrLHcsbSk6dyxlPyhwLnZhbHVlPXcsZChnLG0scCkpOmdbbV09dywrK207dj1tfWlmKHZvaWQgMD09PXYpZm9yKHY9byh0Lmxlbmd0aCksZSYmKGc9bmV3IGUodikpLHI9MDtyPHY7KytyKXc9VD9oLmNhbGwoVCxrLHRbcl0scik6dFtyXSxlPyhwLnZhbHVlPXcsZChnLHIscCkpOmdbcl09dztyZXR1cm4gZSYmKHAudmFsdWU9bnVsbCxnLmxlbmd0aD12KSxnfX0seyIuLi8uLi9mdW5jdGlvbi9pcy1hcmd1bWVudHMiOjE4NSwiLi4vLi4vZnVuY3Rpb24vaXMtZnVuY3Rpb24iOjE4NiwiLi4vLi4vbnVtYmVyL3RvLXBvcy1pbnRlZ2VyIjoxOTIsIi4uLy4uL29iamVjdC9pcy12YWx1ZSI6MjAxLCIuLi8uLi9vYmplY3QvdmFsaWQtY2FsbGFibGUiOjIxMCwiLi4vLi4vb2JqZWN0L3ZhbGlkLXZhbHVlIjoyMTIsIi4uLy4uL3N0cmluZy9pcy1zdHJpbmciOjIxNiwiZXM2LXN5bWJvbCI6MjI1fV0sMTg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaT1uLmNhbGwoZnVuY3Rpb24oKXtyZXR1cm4gYXJndW1lbnRzfSgpKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4uY2FsbCh0KT09PWl9fSx7fV0sMTg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcsaT1SZWdFeHAucHJvdG90eXBlLnRlc3QuYmluZCgvXltvYmplY3QgW0EtWmEtejAtOV0qRnVuY3Rpb25dJC8pO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmaShuLmNhbGwodCkpfX0se31dLDE4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt9fSx7fV0sMTg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9NYXRoLnNpZ246dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MTg5LCIuL3NoaW0iOjE5MH1dLDE4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1NYXRoLnNpZ247cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJigxPT09dCgxMCkmJi0xPT09dCgtMjApKX19LHt9XSwxOTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0PU51bWJlcih0KSxpc05hTih0KXx8MD09PXQ/dDp0PjA/MTotMX19LHt9XSwxOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbWF0aC9zaWduIiksaT1NYXRoLmFicyxhPU1hdGguZmxvb3I7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpc05hTih0KT8wOjAhPT0odD1OdW1iZXIodCkpJiZpc0Zpbml0ZSh0KT9uKHQpKmEoaSh0KSk6dH19LHsiLi4vbWF0aC9zaWduIjoxODh9XSwxOTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi90by1pbnRlZ2VyIiksaT1NYXRoLm1heDtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkoMCxuKHQpKX19LHsiLi90by1pbnRlZ2VyIjoxOTF9XSwxOTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi92YWxpZC1jYWxsYWJsZSIpLGk9dCgiLi92YWxpZC12YWx1ZSIpLGE9RnVuY3Rpb24ucHJvdG90eXBlLmJpbmQsbz1GdW5jdGlvbi5wcm90b3R5cGUuY2FsbCxzPU9iamVjdC5rZXlzLGw9T2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24ocixjKXt2YXIgdSxmPWFyZ3VtZW50c1syXSxoPWFyZ3VtZW50c1szXTtyZXR1cm4gcj1PYmplY3QoaShyKSksbihjKSx1PXMociksaCYmdS5zb3J0KCJmdW5jdGlvbiI9PXR5cGVvZiBoP2EuY2FsbChoLHIpOnZvaWQgMCksImZ1bmN0aW9uIiE9dHlwZW9mIHQmJih0PXVbdF0pLG8uY2FsbCh0LHUsKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGwuY2FsbChyLHQpP28uY2FsbChjLGYsclt0XSx0LHIsbik6ZX0pKX19fSx7Ii4vdmFsaWQtY2FsbGFibGUiOjIxMCwiLi92YWxpZC12YWx1ZSI6MjEyfV0sMTk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9PYmplY3QuYXNzaWduOnQoIi4vc2hpbSIpfSx7Ii4vaXMtaW1wbGVtZW50ZWQiOjE5NSwiLi9zaGltIjoxOTZ9XSwxOTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQsZT1PYmplY3QuYXNzaWduO3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBlJiYoZSh0PXtmb286InJheiJ9LHtiYXI6ImR3YSJ9LHt0cnp5OiJ0cnp5In0pLHQuZm9vK3QuYmFyK3QudHJ6eT09PSJyYXpkd2F0cnp5Iil9fSx7fV0sMTk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2tleXMiKSxpPXQoIi4uL3ZhbGlkLXZhbHVlIiksYT1NYXRoLm1heDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixvLHMsbD1hKGFyZ3VtZW50cy5sZW5ndGgsMik7Zm9yKHQ9T2JqZWN0KGkodCkpLHM9ZnVuY3Rpb24obil7dHJ5e3Rbbl09ZVtuXX1jYXRjaCh0KXtyfHwocj10KX19LG89MTtvPGw7KytvKW4oZT1hcmd1bWVudHNbb10pLmZvckVhY2gocyk7aWYodm9pZCAwIT09cil0aHJvdyByO3JldHVybiB0fX0seyIuLi9rZXlzIjoyMDIsIi4uL3ZhbGlkLXZhbHVlIjoyMTJ9XSwxOTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYXJyYXkvZnJvbSIpLGk9dCgiLi9hc3NpZ24iKSxhPXQoIi4vdmFsaWQtdmFsdWUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9T2JqZWN0KGEodCkpLHI9YXJndW1lbnRzWzFdLG89T2JqZWN0KGFyZ3VtZW50c1syXSk7aWYoZSE9PXQmJiFyKXJldHVybiBlO3ZhciBzPXt9O3JldHVybiByP24ociwoZnVuY3Rpb24oZSl7KG8uZW5zdXJlfHxlIGluIHQpJiYoc1tlXT10W2VdKX0pKTppKHMsdCksc319LHsiLi4vYXJyYXkvZnJvbSI6MTgyLCIuL2Fzc2lnbiI6MTk0LCIuL3ZhbGlkLXZhbHVlIjoyMTJ9XSwxOTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saSxhLG8scz1PYmplY3QuY3JlYXRlO3QoIi4vc2V0LXByb3RvdHlwZS1vZi9pcy1pbXBsZW1lbnRlZCIpKCl8fChuPXQoIi4vc2V0LXByb3RvdHlwZS1vZi9zaGltIikpLGUuZXhwb3J0cz1uPzEhPT1uLmxldmVsP3M6KGk9e30sYT17fSxvPXtjb25maWd1cmFibGU6ITEsZW51bWVyYWJsZTohMSx3cml0YWJsZTohMCx2YWx1ZTp2b2lkIDB9LE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKE9iamVjdC5wcm90b3R5cGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2FbdF09Il9fcHJvdG9fXyIhPT10P286e2NvbmZpZ3VyYWJsZTohMCxlbnVtZXJhYmxlOiExLHdyaXRhYmxlOiEwLHZhbHVlOnZvaWQgMH19KSksT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoaSxhKSxPYmplY3QuZGVmaW5lUHJvcGVydHkobiwibnVsbFBvbHlmaWxsIix7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITEsdmFsdWU6aX0pLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHMobnVsbD09PXQ/aTp0LGUpfSk6c30seyIuL3NldC1wcm90b3R5cGUtb2YvaXMtaW1wbGVtZW50ZWQiOjIwOCwiLi9zZXQtcHJvdG90eXBlLW9mL3NoaW0iOjIwOX1dLDE5OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9faXRlcmF0ZSIpKCJmb3JFYWNoIil9LHsiLi9faXRlcmF0ZSI6MTkzfV0sMjAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaXMtdmFsdWUiKSxpPXtmdW5jdGlvbjohMCxvYmplY3Q6ITB9O2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbih0KSYmaVt0eXBlb2YgdF18fCExfX0seyIuL2lzLXZhbHVlIjoyMDF9XSwyMDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZnVuY3Rpb24vbm9vcCIpKCk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0IT09biYmbnVsbCE9PXR9fSx7Ii4uL2Z1bmN0aW9uL25vb3AiOjE4N31dLDIwMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9pcy1pbXBsZW1lbnRlZCIpKCk/T2JqZWN0LmtleXM6dCgiLi9zaGltIil9LHsiLi9pcy1pbXBsZW1lbnRlZCI6MjAzLCIuL3NoaW0iOjIwNH1dLDIwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIE9iamVjdC5rZXlzKCJwcmltaXRpdmUiKSwhMH1jYXRjaCh0KXtyZXR1cm4hMX19fSx7fV0sMjA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2lzLXZhbHVlIiksaT1PYmplY3Qua2V5cztlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkobih0KT9PYmplY3QodCk6dCl9fSx7Ii4uL2lzLXZhbHVlIjoyMDF9XSwyMDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi92YWxpZC1jYWxsYWJsZSIpLGk9dCgiLi9mb3ItZWFjaCIpLGE9RnVuY3Rpb24ucHJvdG90eXBlLmNhbGw7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e30sbz1hcmd1bWVudHNbMl07cmV0dXJuIG4oZSksaSh0LChmdW5jdGlvbih0LG4saSxzKXtyW25dPWEuY2FsbChlLG8sdCxuLGkscyl9KSkscn19LHsiLi9mb3ItZWFjaCI6MTk5LCIuL3ZhbGlkLWNhbGxhYmxlIjoyMTB9XSwyMDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy12YWx1ZSIpLGk9QXJyYXkucHJvdG90eXBlLmZvckVhY2gsYT1PYmplY3QuY3JlYXRlLG89ZnVuY3Rpb24odCxlKXt2YXIgcjtmb3IociBpbiB0KWVbcl09dFtyXX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPWEobnVsbCk7cmV0dXJuIGkuY2FsbChhcmd1bWVudHMsKGZ1bmN0aW9uKHQpe24odCkmJm8oT2JqZWN0KHQpLGUpfSkpLGV9fSx7Ii4vaXMtdmFsdWUiOjIwMX1dLDIwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9pcy1pbXBsZW1lbnRlZCIpKCk/T2JqZWN0LnNldFByb3RvdHlwZU9mOnQoIi4vc2hpbSIpfSx7Ii4vaXMtaW1wbGVtZW50ZWQiOjIwOCwiLi9zaGltIjoyMDl9XSwyMDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49T2JqZWN0LmNyZWF0ZSxpPU9iamVjdC5nZXRQcm90b3R5cGVPZixhPXt9O2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PU9iamVjdC5zZXRQcm90b3R5cGVPZixlPWFyZ3VtZW50c1swXXx8bjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmaSh0KGUobnVsbCksYSkpPT09YX19LHt9XSwyMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCIuLi9pcy1vYmplY3QiKSxhPXQoIi4uL3ZhbGlkLXZhbHVlIiksbz1PYmplY3QucHJvdG90eXBlLmlzUHJvdG90eXBlT2Yscz1PYmplY3QuZGVmaW5lUHJvcGVydHksbD17Y29uZmlndXJhYmxlOiEwLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsdmFsdWU6dm9pZCAwfTtuPWZ1bmN0aW9uKHQsZSl7aWYoYSh0KSxudWxsPT09ZXx8aShlKSlyZXR1cm4gdDt0aHJvdyBuZXcgVHlwZUVycm9yKCJQcm90b3R5cGUgbXVzdCBiZSBudWxsIG9yIGFuIG9iamVjdCIpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscjtyZXR1cm4gdD8oMj09PXQubGV2ZWw/dC5zZXQ/KHI9dC5zZXQsZT1mdW5jdGlvbih0LGUpe3JldHVybiByLmNhbGwobih0LGUpLGUpLHR9KTplPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxlKS5fX3Byb3RvX189ZSx0fTplPWZ1bmN0aW9uIHQoZSxyKXt2YXIgaTtyZXR1cm4gbihlLHIpLChpPW8uY2FsbCh0Lm51bGxQb2x5ZmlsbCxlKSkmJmRlbGV0ZSB0Lm51bGxQb2x5ZmlsbC5fX3Byb3RvX18sbnVsbD09PXImJihyPXQubnVsbFBvbHlmaWxsKSxlLl9fcHJvdG9fXz1yLGkmJnModC5udWxsUG9seWZpbGwsIl9fcHJvdG9fXyIsbCksZX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsImxldmVsIix7Y29uZmlndXJhYmxlOiExLGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITEsdmFsdWU6dC5sZXZlbH0pKTpudWxsfShmdW5jdGlvbigpe3ZhciB0LGU9T2JqZWN0LmNyZWF0ZShudWxsKSxyPXt9LG49T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihPYmplY3QucHJvdG90eXBlLCJfX3Byb3RvX18iKTtpZihuKXt0cnl7KHQ9bi5zZXQpLmNhbGwoZSxyKX1jYXRjaCh0KXt9aWYoT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09cilyZXR1cm57c2V0OnQsbGV2ZWw6Mn19cmV0dXJuIGUuX19wcm90b19fPXIsT2JqZWN0LmdldFByb3RvdHlwZU9mKGUpPT09cj97bGV2ZWw6Mn06KChlPXt9KS5fX3Byb3RvX189cixPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1yJiZ7bGV2ZWw6MX0pfSgpKSx0KCIuLi9jcmVhdGUiKX0seyIuLi9jcmVhdGUiOjE5OCwiLi4vaXMtb2JqZWN0IjoyMDAsIi4uL3ZhbGlkLXZhbHVlIjoyMTJ9XSwyMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IodCsiIGlzIG5vdCBhIGZ1bmN0aW9uIik7cmV0dXJuIHR9fSx7fV0sMjExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaXMtb2JqZWN0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFuKHQpKXRocm93IG5ldyBUeXBlRXJyb3IodCsiIGlzIG5vdCBhbiBPYmplY3QiKTtyZXR1cm4gdH19LHsiLi9pcy1vYmplY3QiOjIwMH1dLDIxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzLXZhbHVlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFuKHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCB1c2UgbnVsbCBvciB1bmRlZmluZWQiKTtyZXR1cm4gdH19LHsiLi9pcy12YWx1ZSI6MjAxfV0sMjEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9TdHJpbmcucHJvdG90eXBlLmNvbnRhaW5zOnQoIi4vc2hpbSIpfSx7Ii4vaXMtaW1wbGVtZW50ZWQiOjIxNCwiLi9zaGltIjoyMTV9XSwyMTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49InJhemR3YXRyenkiO2UuZXhwb3J0cz1mdW5jdGlvbigpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBuLmNvbnRhaW5zJiYoITA9PT1uLmNvbnRhaW5zKCJkd2EiKSYmITE9PT1uLmNvbnRhaW5zKCJmb28iKSl9fSx7fV0sMjE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPVN0cmluZy5wcm90b3R5cGUuaW5kZXhPZjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG4uY2FsbCh0aGlzLHQsYXJndW1lbnRzWzFdKT4tMX19LHt9XSwyMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxpPW4uY2FsbCgiIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdHx8dCYmIm9iamVjdCI9PXR5cGVvZiB0JiYodCBpbnN0YW5jZW9mIFN0cmluZ3x8bi5jYWxsKHQpPT09aSl8fCExfX0se31dLDIxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QuY3JlYXRlKG51bGwpLGk9TWF0aC5yYW5kb207ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ7ZG97dD1pKCkudG9TdHJpbmcoMzYpLnNsaWNlKDIpfXdoaWxlKG5bdF0pO3JldHVybiB0fX0se31dLDIxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPXQoImVzNS1leHQvb2JqZWN0L3NldC1wcm90b3R5cGUtb2YiKSxhPXQoImVzNS1leHQvc3RyaW5nLyMvY29udGFpbnMiKSxvPXQoImQiKSxzPXQoImVzNi1zeW1ib2wiKSxsPXQoIi4vIiksYz1PYmplY3QuZGVmaW5lUHJvcGVydHk7bj1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZighKHRoaXMgaW5zdGFuY2VvZiBuKSl0aHJvdyBuZXcgVHlwZUVycm9yKCJDb25zdHJ1Y3RvciByZXF1aXJlcyAnbmV3JyIpO2wuY2FsbCh0aGlzLHQpLGU9ZT9hLmNhbGwoZSwia2V5K3ZhbHVlIik/ImtleSt2YWx1ZSI6YS5jYWxsKGUsImtleSIpPyJrZXkiOiJ2YWx1ZSI6InZhbHVlIixjKHRoaXMsIl9fa2luZF9fIixvKCIiLGUpKX0saSYmaShuLGwpLGRlbGV0ZSBuLnByb3RvdHlwZS5jb25zdHJ1Y3RvcixuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGwucHJvdG90eXBlLHtfcmVzb2x2ZTpvKChmdW5jdGlvbih0KXtyZXR1cm4idmFsdWUiPT09dGhpcy5fX2tpbmRfXz90aGlzLl9fbGlzdF9fW3RdOiJrZXkrdmFsdWUiPT09dGhpcy5fX2tpbmRfXz9bdCx0aGlzLl9fbGlzdF9fW3RdXTp0fSkpfSksYyhuLnByb3RvdHlwZSxzLnRvU3RyaW5nVGFnLG8oImMiLCJBcnJheSBJdGVyYXRvciIpKX0seyIuLyI6MjIxLGQ6MTU0LCJlczUtZXh0L29iamVjdC9zZXQtcHJvdG90eXBlLW9mIjoyMDcsImVzNS1leHQvc3RyaW5nLyMvY29udGFpbnMiOjIxMywiZXM2LXN5bWJvbCI6MjI1fV0sMjE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImVzNS1leHQvZnVuY3Rpb24vaXMtYXJndW1lbnRzIiksaT10KCJlczUtZXh0L29iamVjdC92YWxpZC1jYWxsYWJsZSIpLGE9dCgiZXM1LWV4dC9zdHJpbmcvaXMtc3RyaW5nIiksbz10KCIuL2dldCIpLHM9QXJyYXkuaXNBcnJheSxsPUZ1bmN0aW9uLnByb3RvdHlwZS5jYWxsLGM9QXJyYXkucHJvdG90eXBlLnNvbWU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsdSxmLGgscCxkLG0sZyx2PWFyZ3VtZW50c1syXTtpZihzKHQpfHxuKHQpP3I9ImFycmF5IjphKHQpP3I9InN0cmluZyI6dD1vKHQpLGkoZSksZj1mdW5jdGlvbigpe2g9ITB9LCJhcnJheSIhPT1yKWlmKCJzdHJpbmciIT09cilmb3IodT10Lm5leHQoKTshdS5kb25lOyl7aWYobC5jYWxsKGUsdix1LnZhbHVlLGYpLGgpcmV0dXJuO3U9dC5uZXh0KCl9ZWxzZSBmb3IoZD10Lmxlbmd0aCxwPTA7cDxkJiYobT10W3BdLHArMTxkJiYoZz1tLmNoYXJDb2RlQXQoMCkpPj01NTI5NiYmZzw9NTYzMTkmJihtKz10WysrcF0pLGwuY2FsbChlLHYsbSxmKSwhaCk7KytwKTtlbHNlIGMuY2FsbCh0LChmdW5jdGlvbih0KXtyZXR1cm4gbC5jYWxsKGUsdix0LGYpLGh9KSl9fSx7Ii4vZ2V0IjoyMjAsImVzNS1leHQvZnVuY3Rpb24vaXMtYXJndW1lbnRzIjoxODUsImVzNS1leHQvb2JqZWN0L3ZhbGlkLWNhbGxhYmxlIjoyMTAsImVzNS1leHQvc3RyaW5nL2lzLXN0cmluZyI6MjE2fV0sMjIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImVzNS1leHQvZnVuY3Rpb24vaXMtYXJndW1lbnRzIiksaT10KCJlczUtZXh0L3N0cmluZy9pcy1zdHJpbmciKSxhPXQoIi4vYXJyYXkiKSxvPXQoIi4vc3RyaW5nIikscz10KCIuL3ZhbGlkLWl0ZXJhYmxlIiksbD10KCJlczYtc3ltYm9sIikuaXRlcmF0b3I7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzKHQpW2xdP3RbbF0oKTpuKHQpP25ldyBhKHQpOmkodCk/bmV3IG8odCk6bmV3IGEodCl9fSx7Ii4vYXJyYXkiOjIxOCwiLi9zdHJpbmciOjIyMywiLi92YWxpZC1pdGVyYWJsZSI6MjI0LCJlczUtZXh0L2Z1bmN0aW9uL2lzLWFyZ3VtZW50cyI6MTg1LCJlczUtZXh0L3N0cmluZy9pcy1zdHJpbmciOjIxNiwiZXM2LXN5bWJvbCI6MjI1fV0sMjIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGk9dCgiZXM1LWV4dC9hcnJheS8jL2NsZWFyIiksYT10KCJlczUtZXh0L29iamVjdC9hc3NpZ24iKSxvPXQoImVzNS1leHQvb2JqZWN0L3ZhbGlkLWNhbGxhYmxlIikscz10KCJlczUtZXh0L29iamVjdC92YWxpZC12YWx1ZSIpLGw9dCgiZCIpLGM9dCgiZC9hdXRvLWJpbmQiKSx1PXQoImVzNi1zeW1ib2wiKSxmPU9iamVjdC5kZWZpbmVQcm9wZXJ0eSxoPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzO2UuZXhwb3J0cz1uPWZ1bmN0aW9uKHQsZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgbikpdGhyb3cgbmV3IFR5cGVFcnJvcigiQ29uc3RydWN0b3IgcmVxdWlyZXMgJ25ldyciKTtoKHRoaXMse19fbGlzdF9fOmwoInciLHModCkpLF9fY29udGV4dF9fOmwoInciLGUpLF9fbmV4dEluZGV4X186bCgidyIsMCl9KSxlJiYobyhlLm9uKSxlLm9uKCJfYWRkIix0aGlzLl9vbkFkZCksZS5vbigiX2RlbGV0ZSIsdGhpcy5fb25EZWxldGUpLGUub24oIl9jbGVhciIsdGhpcy5fb25DbGVhcikpfSxkZWxldGUgbi5wcm90b3R5cGUuY29uc3RydWN0b3IsaChuLnByb3RvdHlwZSxhKHtfbmV4dDpsKChmdW5jdGlvbigpe3ZhciB0O2lmKHRoaXMuX19saXN0X18pcmV0dXJuIHRoaXMuX19yZWRvX18mJnZvaWQgMCE9PSh0PXRoaXMuX19yZWRvX18uc2hpZnQoKSk/dDp0aGlzLl9fbmV4dEluZGV4X188dGhpcy5fX2xpc3RfXy5sZW5ndGg/dGhpcy5fX25leHRJbmRleF9fKys6dm9pZCB0aGlzLl91bkJpbmQoKX0pKSxuZXh0OmwoKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NyZWF0ZVJlc3VsdCh0aGlzLl9uZXh0KCkpfSkpLF9jcmVhdGVSZXN1bHQ6bCgoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PXQ/e2RvbmU6ITAsdmFsdWU6dm9pZCAwfTp7ZG9uZTohMSx2YWx1ZTp0aGlzLl9yZXNvbHZlKHQpfX0pKSxfcmVzb2x2ZTpsKChmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fX2xpc3RfX1t0XX0pKSxfdW5CaW5kOmwoKGZ1bmN0aW9uKCl7dGhpcy5fX2xpc3RfXz1udWxsLGRlbGV0ZSB0aGlzLl9fcmVkb19fLHRoaXMuX19jb250ZXh0X18mJih0aGlzLl9fY29udGV4dF9fLm9mZigiX2FkZCIsdGhpcy5fb25BZGQpLHRoaXMuX19jb250ZXh0X18ub2ZmKCJfZGVsZXRlIix0aGlzLl9vbkRlbGV0ZSksdGhpcy5fX2NvbnRleHRfXy5vZmYoIl9jbGVhciIsdGhpcy5fb25DbGVhciksdGhpcy5fX2NvbnRleHRfXz1udWxsKX0pKSx0b1N0cmluZzpsKChmdW5jdGlvbigpe3JldHVybiJbb2JqZWN0ICIrKHRoaXNbdS50b1N0cmluZ1RhZ118fCJPYmplY3QiKSsiXSJ9KSl9LGMoe19vbkFkZDpsKChmdW5jdGlvbih0KXt0Pj10aGlzLl9fbmV4dEluZGV4X198fCgrK3RoaXMuX19uZXh0SW5kZXhfXyx0aGlzLl9fcmVkb19fPyh0aGlzLl9fcmVkb19fLmZvckVhY2goKGZ1bmN0aW9uKGUscil7ZT49dCYmKHRoaXMuX19yZWRvX19bcl09KytlKX0pLHRoaXMpLHRoaXMuX19yZWRvX18ucHVzaCh0KSk6Zih0aGlzLCJfX3JlZG9fXyIsbCgiYyIsW3RdKSkpfSkpLF9vbkRlbGV0ZTpsKChmdW5jdGlvbih0KXt2YXIgZTt0Pj10aGlzLl9fbmV4dEluZGV4X198fCgtLXRoaXMuX19uZXh0SW5kZXhfXyx0aGlzLl9fcmVkb19fJiYoLTEhPT0oZT10aGlzLl9fcmVkb19fLmluZGV4T2YodCkpJiZ0aGlzLl9fcmVkb19fLnNwbGljZShlLDEpLHRoaXMuX19yZWRvX18uZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXtlPnQmJih0aGlzLl9fcmVkb19fW3JdPS0tZSl9KSx0aGlzKSkpfSkpLF9vbkNsZWFyOmwoKGZ1bmN0aW9uKCl7dGhpcy5fX3JlZG9fXyYmaS5jYWxsKHRoaXMuX19yZWRvX18pLHRoaXMuX19uZXh0SW5kZXhfXz0wfSkpfSkpKSxmKG4ucHJvdG90eXBlLHUuaXRlcmF0b3IsbCgoZnVuY3Rpb24oKXtyZXR1cm4gdGhpc30pKSl9LHtkOjE1NCwiZC9hdXRvLWJpbmQiOjE1MywiZXM1LWV4dC9hcnJheS8jL2NsZWFyIjoxODEsImVzNS1leHQvb2JqZWN0L2Fzc2lnbiI6MTk0LCJlczUtZXh0L29iamVjdC92YWxpZC1jYWxsYWJsZSI6MjEwLCJlczUtZXh0L29iamVjdC92YWxpZC12YWx1ZSI6MjEyLCJlczYtc3ltYm9sIjoyMjV9XSwyMjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZXM1LWV4dC9mdW5jdGlvbi9pcy1hcmd1bWVudHMiKSxpPXQoImVzNS1leHQvb2JqZWN0L2lzLXZhbHVlIiksYT10KCJlczUtZXh0L3N0cmluZy9pcy1zdHJpbmciKSxvPXQoImVzNi1zeW1ib2wiKS5pdGVyYXRvcixzPUFycmF5LmlzQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiEhaSh0KSYmKCEhcyh0KXx8KCEhYSh0KXx8KCEhbih0KXx8ImZ1bmN0aW9uIj09dHlwZW9mIHRbb10pKSl9fSx7ImVzNS1leHQvZnVuY3Rpb24vaXMtYXJndW1lbnRzIjoxODUsImVzNS1leHQvb2JqZWN0L2lzLXZhbHVlIjoyMDEsImVzNS1leHQvc3RyaW5nL2lzLXN0cmluZyI6MjE2LCJlczYtc3ltYm9sIjoyMjV9XSwyMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCJlczUtZXh0L29iamVjdC9zZXQtcHJvdG90eXBlLW9mIiksYT10KCJkIiksbz10KCJlczYtc3ltYm9sIikscz10KCIuLyIpLGw9T2JqZWN0LmRlZmluZVByb3BlcnR5O249ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNvbnN0cnVjdG9yIHJlcXVpcmVzICduZXcnIik7dD1TdHJpbmcodCkscy5jYWxsKHRoaXMsdCksbCh0aGlzLCJfX2xlbmd0aF9fIixhKCIiLHQubGVuZ3RoKSl9LGkmJmkobixzKSxkZWxldGUgbi5wcm90b3R5cGUuY29uc3RydWN0b3Isbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShzLnByb3RvdHlwZSx7X25leHQ6YSgoZnVuY3Rpb24oKXtpZih0aGlzLl9fbGlzdF9fKXJldHVybiB0aGlzLl9fbmV4dEluZGV4X188dGhpcy5fX2xlbmd0aF9fP3RoaXMuX19uZXh0SW5kZXhfXysrOnZvaWQgdGhpcy5fdW5CaW5kKCl9KSksX3Jlc29sdmU6YSgoZnVuY3Rpb24odCl7dmFyIGUscj10aGlzLl9fbGlzdF9fW3RdO3JldHVybiB0aGlzLl9fbmV4dEluZGV4X189PT10aGlzLl9fbGVuZ3RoX18/cjooZT1yLmNoYXJDb2RlQXQoMCkpPj01NTI5NiYmZTw9NTYzMTk/cit0aGlzLl9fbGlzdF9fW3RoaXMuX19uZXh0SW5kZXhfXysrXTpyfSkpfSksbChuLnByb3RvdHlwZSxvLnRvU3RyaW5nVGFnLGEoImMiLCJTdHJpbmcgSXRlcmF0b3IiKSl9LHsiLi8iOjIyMSxkOjE1NCwiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiI6MjA3LCJlczYtc3ltYm9sIjoyMjV9XSwyMjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9pcy1pdGVyYWJsZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighbih0KSl0aHJvdyBuZXcgVHlwZUVycm9yKHQrIiBpcyBub3QgaXRlcmFibGUiKTtyZXR1cm4gdH19LHsiLi9pcy1pdGVyYWJsZSI6MjIyfV0sMjI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT90KCJleHQvZ2xvYmFsLXRoaXMiKS5TeW1ib2w6dCgiLi9wb2x5ZmlsbCIpfSx7Ii4vaXMtaW1wbGVtZW50ZWQiOjIyNiwiLi9wb2x5ZmlsbCI6MjMxLCJleHQvZ2xvYmFsLXRoaXMiOjIzOX1dLDIyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJleHQvZ2xvYmFsLXRoaXMiKSxpPXtvYmplY3Q6ITAsc3ltYm9sOiEwfTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdCxlPW4uU3ltYm9sO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXJldHVybiExO3Q9ZSgidGVzdCBzeW1ib2wiKTt0cnl7U3RyaW5nKHQpfWNhdGNoKHQpe3JldHVybiExfXJldHVybiEhaVt0eXBlb2YgZS5pdGVyYXRvcl0mJighIWlbdHlwZW9mIGUudG9QcmltaXRpdmVdJiYhIWlbdHlwZW9mIGUudG9TdHJpbmdUYWddKX19LHsiZXh0L2dsb2JhbC10aGlzIjoyMzl9XSwyMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiEhdCYmKCJzeW1ib2wiPT10eXBlb2YgdHx8ISF0LmNvbnN0cnVjdG9yJiYoIlN5bWJvbCI9PT10LmNvbnN0cnVjdG9yLm5hbWUmJiJTeW1ib2wiPT09dFt0LmNvbnN0cnVjdG9yLnRvU3RyaW5nVGFnXSkpfX0se31dLDIyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkIiksaT1PYmplY3QuY3JlYXRlLGE9T2JqZWN0LmRlZmluZVByb3BlcnR5LG89T2JqZWN0LnByb3RvdHlwZSxzPWkobnVsbCk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyLGk9MDtzW3QrKGl8fCIiKV07KSsraTtyZXR1cm4gc1t0Kz1pfHwiIl09ITAsYShvLGU9IkBAIit0LG4uZ3MobnVsbCwoZnVuY3Rpb24odCl7cnx8KHI9ITAsYSh0aGlzLGUsbih0KSkscj0hMSl9KSkpLGV9fSx7ZDoxNTR9XSwyMjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZCIpLGk9dCgiZXh0L2dsb2JhbC10aGlzIikuU3ltYm9sO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXModCx7aGFzSW5zdGFuY2U6bigiIixpJiZpLmhhc0luc3RhbmNlfHx0KCJoYXNJbnN0YW5jZSIpKSxpc0NvbmNhdFNwcmVhZGFibGU6bigiIixpJiZpLmlzQ29uY2F0U3ByZWFkYWJsZXx8dCgiaXNDb25jYXRTcHJlYWRhYmxlIikpLGl0ZXJhdG9yOm4oIiIsaSYmaS5pdGVyYXRvcnx8dCgiaXRlcmF0b3IiKSksbWF0Y2g6bigiIixpJiZpLm1hdGNofHx0KCJtYXRjaCIpKSxyZXBsYWNlOm4oIiIsaSYmaS5yZXBsYWNlfHx0KCJyZXBsYWNlIikpLHNlYXJjaDpuKCIiLGkmJmkuc2VhcmNofHx0KCJzZWFyY2giKSksc3BlY2llczpuKCIiLGkmJmkuc3BlY2llc3x8dCgic3BlY2llcyIpKSxzcGxpdDpuKCIiLGkmJmkuc3BsaXR8fHQoInNwbGl0IikpLHRvUHJpbWl0aXZlOm4oIiIsaSYmaS50b1ByaW1pdGl2ZXx8dCgidG9QcmltaXRpdmUiKSksdG9TdHJpbmdUYWc6bigiIixpJiZpLnRvU3RyaW5nVGFnfHx0KCJ0b1N0cmluZ1RhZyIpKSx1bnNjb3BhYmxlczpuKCIiLGkmJmkudW5zY29wYWJsZXN8fHQoInVuc2NvcGFibGVzIikpfSl9fSx7ZDoxNTQsImV4dC9nbG9iYWwtdGhpcyI6MjM5fV0sMjMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQiKSxpPXQoIi4uLy4uLy4uL3ZhbGlkYXRlLXN5bWJvbCIpLGE9T2JqZWN0LmNyZWF0ZShudWxsKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQse2ZvcjpuKChmdW5jdGlvbihlKXtyZXR1cm4gYVtlXT9hW2VdOmFbZV09dChTdHJpbmcoZSkpfSkpLGtleUZvcjpuKChmdW5jdGlvbih0KXt2YXIgZTtmb3IoZSBpbiBpKHQpLGEpaWYoYVtlXT09PXQpcmV0dXJuIGV9KSl9KX19LHsiLi4vLi4vLi4vdmFsaWRhdGUtc3ltYm9sIjoyMzIsZDoxNTR9XSwyMzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saSxhLG89dCgiZCIpLHM9dCgiLi92YWxpZGF0ZS1zeW1ib2wiKSxsPXQoImV4dC9nbG9iYWwtdGhpcyIpLlN5bWJvbCxjPXQoIi4vbGliL3ByaXZhdGUvZ2VuZXJhdGUtbmFtZSIpLHU9dCgiLi9saWIvcHJpdmF0ZS9zZXR1cC9zdGFuZGFyZC1zeW1ib2xzIiksZj10KCIuL2xpYi9wcml2YXRlL3NldHVwL3N5bWJvbC1yZWdpc3RyeSIpLGg9T2JqZWN0LmNyZWF0ZSxwPU9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzLGQ9T2JqZWN0LmRlZmluZVByb3BlcnR5O2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBsKXRyeXtTdHJpbmcobCgpKSxhPSEwfWNhdGNoKHQpe31lbHNlIGw9bnVsbDtpPWZ1bmN0aW9uKHQpe2lmKHRoaXMgaW5zdGFuY2VvZiBpKXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3JldHVybiBuKHQpfSxlLmV4cG9ydHM9bj1mdW5jdGlvbiB0KGUpe3ZhciByO2lmKHRoaXMgaW5zdGFuY2VvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIlN5bWJvbCBpcyBub3QgYSBjb25zdHJ1Y3RvciIpO3JldHVybiBhP2woZSk6KHI9aChpLnByb3RvdHlwZSksZT12b2lkIDA9PT1lPyIiOlN0cmluZyhlKSxwKHIse19fZGVzY3JpcHRpb25fXzpvKCIiLGUpLF9fbmFtZV9fOm8oIiIsYyhlKSl9KSl9LHUobiksZihuKSxwKGkucHJvdG90eXBlLHtjb25zdHJ1Y3RvcjpvKG4pLHRvU3RyaW5nOm8oIiIsKGZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX19uYW1lX199KSl9KSxwKG4ucHJvdG90eXBlLHt0b1N0cmluZzpvKChmdW5jdGlvbigpe3JldHVybiJTeW1ib2wgKCIrcyh0aGlzKS5fX2Rlc2NyaXB0aW9uX18rIikifSkpLHZhbHVlT2Y6bygoZnVuY3Rpb24oKXtyZXR1cm4gcyh0aGlzKX0pKX0pLGQobi5wcm90b3R5cGUsbi50b1ByaW1pdGl2ZSxvKCIiLChmdW5jdGlvbigpe3ZhciB0PXModGhpcyk7cmV0dXJuInN5bWJvbCI9PXR5cGVvZiB0P3Q6dC50b1N0cmluZygpfSkpKSxkKG4ucHJvdG90eXBlLG4udG9TdHJpbmdUYWcsbygiYyIsIlN5bWJvbCIpKSxkKGkucHJvdG90eXBlLG4udG9TdHJpbmdUYWcsbygiYyIsbi5wcm90b3R5cGVbbi50b1N0cmluZ1RhZ10pKSxkKGkucHJvdG90eXBlLG4udG9QcmltaXRpdmUsbygiYyIsbi5wcm90b3R5cGVbbi50b1ByaW1pdGl2ZV0pKX0seyIuL2xpYi9wcml2YXRlL2dlbmVyYXRlLW5hbWUiOjIyOCwiLi9saWIvcHJpdmF0ZS9zZXR1cC9zdGFuZGFyZC1zeW1ib2xzIjoyMjksIi4vbGliL3ByaXZhdGUvc2V0dXAvc3ltYm9sLXJlZ2lzdHJ5IjoyMzAsIi4vdmFsaWRhdGUtc3ltYm9sIjoyMzIsZDoxNTQsImV4dC9nbG9iYWwtdGhpcyI6MjM5fV0sMjMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaXMtc3ltYm9sIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCFuKHQpKXRocm93IG5ldyBUeXBlRXJyb3IodCsiIGlzIG5vdCBhIHN5bWJvbCIpO3JldHVybiB0fX0seyIuL2lzLXN5bWJvbCI6MjI3fV0sMjMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz10KCIuL2lzLWltcGxlbWVudGVkIikoKT9XZWFrTWFwOnQoIi4vcG9seWZpbGwiKX0seyIuL2lzLWltcGxlbWVudGVkIjoyMzQsIi4vcG9seWZpbGwiOjIzNn1dLDIzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdCxlO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBXZWFrTWFwKXJldHVybiExO3RyeXt0PW5ldyBXZWFrTWFwKFtbZT17fSwib25lIl0sW3t9LCJ0d28iXSxbe30sInRocmVlIl1dKX1jYXRjaCh0KXtyZXR1cm4hMX1yZXR1cm4iW29iamVjdCBXZWFrTWFwXSI9PT1TdHJpbmcodCkmJigiZnVuY3Rpb24iPT10eXBlb2YgdC5zZXQmJih0LnNldCh7fSwxKT09PXQmJigiZnVuY3Rpb24iPT10eXBlb2YgdC5kZWxldGUmJigiZnVuY3Rpb24iPT10eXBlb2YgdC5oYXMmJiJvbmUiPT09dC5nZXQoZSkpKSkpfX0se31dLDIzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtNYXAmJiJbb2JqZWN0IFdlYWtNYXBdIj09PU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChuZXcgV2Vha01hcCl9LHt9XSwyMzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCJlczUtZXh0L29iamVjdC9pcy12YWx1ZSIpLGE9dCgiZXM1LWV4dC9vYmplY3Qvc2V0LXByb3RvdHlwZS1vZiIpLG89dCgiZXM1LWV4dC9vYmplY3QvdmFsaWQtb2JqZWN0Iikscz10KCJlczUtZXh0L29iamVjdC92YWxpZC12YWx1ZSIpLGw9dCgiZXM1LWV4dC9zdHJpbmcvcmFuZG9tLXVuaXEiKSxjPXQoImQiKSx1PXQoImVzNi1pdGVyYXRvci9nZXQiKSxmPXQoImVzNi1pdGVyYXRvci9mb3Itb2YiKSxoPXQoImVzNi1zeW1ib2wiKS50b1N0cmluZ1RhZyxwPXQoIi4vaXMtbmF0aXZlLWltcGxlbWVudGVkIiksZD1BcnJheS5pc0FycmF5LG09T2JqZWN0LmRlZmluZVByb3BlcnR5LGc9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eSx2PU9iamVjdC5nZXRQcm90b3R5cGVPZjtlLmV4cG9ydHM9bj1mdW5jdGlvbigpe3ZhciB0LGU9YXJndW1lbnRzWzBdO2lmKCEodGhpcyBpbnN0YW5jZW9mIG4pKXRocm93IG5ldyBUeXBlRXJyb3IoIkNvbnN0cnVjdG9yIHJlcXVpcmVzICduZXcnIik7cmV0dXJuIHQ9cCYmYSYmV2Vha01hcCE9PW4/YShuZXcgV2Vha01hcCx2KHRoaXMpKTp0aGlzLGkoZSkmJihkKGUpfHwoZT11KGUpKSksbSh0LCJfX3dlYWtNYXBEYXRhX18iLGMoImMiLCIkd2Vha01hcCQiK2woKSkpLGU/KGYoZSwoZnVuY3Rpb24oZSl7cyhlKSx0LnNldChlWzBdLGVbMV0pfSkpLHQpOnR9LHAmJihhJiZhKG4sV2Vha01hcCksbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShXZWFrTWFwLnByb3RvdHlwZSx7Y29uc3RydWN0b3I6YyhuKX0pKSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLnByb3RvdHlwZSx7ZGVsZXRlOmMoKGZ1bmN0aW9uKHQpe3JldHVybiEhZy5jYWxsKG8odCksdGhpcy5fX3dlYWtNYXBEYXRhX18pJiYoZGVsZXRlIHRbdGhpcy5fX3dlYWtNYXBEYXRhX19dLCEwKX0pKSxnZXQ6YygoZnVuY3Rpb24odCl7aWYoZy5jYWxsKG8odCksdGhpcy5fX3dlYWtNYXBEYXRhX18pKXJldHVybiB0W3RoaXMuX193ZWFrTWFwRGF0YV9fXX0pKSxoYXM6YygoZnVuY3Rpb24odCl7cmV0dXJuIGcuY2FsbChvKHQpLHRoaXMuX193ZWFrTWFwRGF0YV9fKX0pKSxzZXQ6YygoZnVuY3Rpb24odCxlKXtyZXR1cm4gbShvKHQpLHRoaXMuX193ZWFrTWFwRGF0YV9fLGMoImMiLGUpKSx0aGlzfSkpLHRvU3RyaW5nOmMoKGZ1bmN0aW9uKCl7cmV0dXJuIltvYmplY3QgV2Vha01hcF0ifSkpfSksbShuLnByb3RvdHlwZSxoLGMoImMiLCJXZWFrTWFwIikpfSx7Ii4vaXMtbmF0aXZlLWltcGxlbWVudGVkIjoyMzUsZDoxNTQsImVzNS1leHQvb2JqZWN0L2lzLXZhbHVlIjoyMDEsImVzNS1leHQvb2JqZWN0L3NldC1wcm90b3R5cGUtb2YiOjIwNywiZXM1LWV4dC9vYmplY3QvdmFsaWQtb2JqZWN0IjoyMTEsImVzNS1leHQvb2JqZWN0L3ZhbGlkLXZhbHVlIjoyMTIsImVzNS1leHQvc3RyaW5nL3JhbmRvbS11bmlxIjoyMTcsImVzNi1pdGVyYXRvci9mb3Itb2YiOjIxOSwiZXM2LWl0ZXJhdG9yL2dldCI6MjIwLCJlczYtc3ltYm9sIjoyMjV9XSwyMzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT0ib2JqZWN0Ij09dHlwZW9mIFJlZmxlY3Q/UmVmbGVjdDpudWxsLGE9aSYmImZ1bmN0aW9uIj09dHlwZW9mIGkuYXBwbHk/aS5hcHBseTpmdW5jdGlvbih0LGUscil7cmV0dXJuIEZ1bmN0aW9uLnByb3RvdHlwZS5hcHBseS5jYWxsKHQsZSxyKX07bj1pJiYiZnVuY3Rpb24iPT10eXBlb2YgaS5vd25LZXlzP2kub3duS2V5czpPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzP2Z1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KS5jb25jYXQoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyh0KSl9OmZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KX07dmFyIG89TnVtYmVyLmlzTmFOfHxmdW5jdGlvbih0KXtyZXR1cm4gdCE9dH07ZnVuY3Rpb24gcygpe3MuaW5pdC5jYWxsKHRoaXMpfWUuZXhwb3J0cz1zLGUuZXhwb3J0cy5vbmNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLG4pe2Z1bmN0aW9uIGkocil7dC5yZW1vdmVMaXN0ZW5lcihlLGEpLG4ocil9ZnVuY3Rpb24gYSgpeyJmdW5jdGlvbiI9PXR5cGVvZiB0LnJlbW92ZUxpc3RlbmVyJiZ0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIsaSkscihbXS5zbGljZS5jYWxsKGFyZ3VtZW50cykpfXYodCxlLGEse29uY2U6ITB9KSwiZXJyb3IiIT09ZSYmZnVuY3Rpb24odCxlLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiB0Lm9uJiZ2KHQsImVycm9yIixlLHIpfSh0LGkse29uY2U6ITB9KX0pKX0scy5FdmVudEVtaXR0ZXI9cyxzLnByb3RvdHlwZS5fZXZlbnRzPXZvaWQgMCxzLnByb3RvdHlwZS5fZXZlbnRzQ291bnQ9MCxzLnByb3RvdHlwZS5fbWF4TGlzdGVuZXJzPXZvaWQgMDt2YXIgbD0xMDtmdW5jdGlvbiBjKHQpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1RoZSAibGlzdGVuZXIiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBGdW5jdGlvbi4gUmVjZWl2ZWQgdHlwZSAnK3R5cGVvZiB0KX1mdW5jdGlvbiB1KHQpe3JldHVybiB2b2lkIDA9PT10Ll9tYXhMaXN0ZW5lcnM/cy5kZWZhdWx0TWF4TGlzdGVuZXJzOnQuX21heExpc3RlbmVyc31mdW5jdGlvbiBmKHQsZSxyLG4pe3ZhciBpLGEsbyxzO2lmKGMociksdm9pZCAwPT09KGE9dC5fZXZlbnRzKT8oYT10Ll9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0Ll9ldmVudHNDb3VudD0wKToodm9pZCAwIT09YS5uZXdMaXN0ZW5lciYmKHQuZW1pdCgibmV3TGlzdGVuZXIiLGUsci5saXN0ZW5lcj9yLmxpc3RlbmVyOnIpLGE9dC5fZXZlbnRzKSxvPWFbZV0pLHZvaWQgMD09PW8pbz1hW2VdPXIsKyt0Ll9ldmVudHNDb3VudDtlbHNlIGlmKCJmdW5jdGlvbiI9PXR5cGVvZiBvP289YVtlXT1uP1tyLG9dOltvLHJdOm4/by51bnNoaWZ0KHIpOm8ucHVzaChyKSwoaT11KHQpKT4wJiZvLmxlbmd0aD5pJiYhby53YXJuZWQpe28ud2FybmVkPSEwO3ZhciBsPW5ldyBFcnJvcigiUG9zc2libGUgRXZlbnRFbWl0dGVyIG1lbW9yeSBsZWFrIGRldGVjdGVkLiAiK28ubGVuZ3RoKyIgIitTdHJpbmcoZSkrIiBsaXN0ZW5lcnMgYWRkZWQuIFVzZSBlbWl0dGVyLnNldE1heExpc3RlbmVycygpIHRvIGluY3JlYXNlIGxpbWl0Iik7bC5uYW1lPSJNYXhMaXN0ZW5lcnNFeGNlZWRlZFdhcm5pbmciLGwuZW1pdHRlcj10LGwudHlwZT1lLGwuY291bnQ9by5sZW5ndGgscz1sLGNvbnNvbGUmJmNvbnNvbGUud2FybiYmY29uc29sZS53YXJuKHMpfXJldHVybiB0fWZ1bmN0aW9uIGgoKXtpZighdGhpcy5maXJlZClyZXR1cm4gdGhpcy50YXJnZXQucmVtb3ZlTGlzdGVuZXIodGhpcy50eXBlLHRoaXMud3JhcEZuKSx0aGlzLmZpcmVkPSEwLDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMubGlzdGVuZXIuY2FsbCh0aGlzLnRhcmdldCk6dGhpcy5saXN0ZW5lci5hcHBseSh0aGlzLnRhcmdldCxhcmd1bWVudHMpfWZ1bmN0aW9uIHAodCxlLHIpe3ZhciBuPXtmaXJlZDohMSx3cmFwRm46dm9pZCAwLHRhcmdldDp0LHR5cGU6ZSxsaXN0ZW5lcjpyfSxpPWguYmluZChuKTtyZXR1cm4gaS5saXN0ZW5lcj1yLG4ud3JhcEZuPWksaX1mdW5jdGlvbiBkKHQsZSxyKXt2YXIgbj10Ll9ldmVudHM7aWYodm9pZCAwPT09bilyZXR1cm5bXTt2YXIgaT1uW2VdO3JldHVybiB2b2lkIDA9PT1pP1tdOiJmdW5jdGlvbiI9PXR5cGVvZiBpP3I/W2kubGlzdGVuZXJ8fGldOltpXTpyP2Z1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPGUubGVuZ3RoOysrcillW3JdPXRbcl0ubGlzdGVuZXJ8fHRbcl07cmV0dXJuIGV9KGkpOmcoaSxpLmxlbmd0aCl9ZnVuY3Rpb24gbSh0KXt2YXIgZT10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09ZSl7dmFyIHI9ZVt0XTtpZigiZnVuY3Rpb24iPT10eXBlb2YgcilyZXR1cm4gMTtpZih2b2lkIDAhPT1yKXJldHVybiByLmxlbmd0aH1yZXR1cm4gMH1mdW5jdGlvbiBnKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKSxuPTA7bjxlOysrbilyW25dPXRbbl07cmV0dXJuIHJ9ZnVuY3Rpb24gdih0LGUscixuKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5vbiluLm9uY2U/dC5vbmNlKGUscik6dC5vbihlLHIpO2Vsc2V7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQuYWRkRXZlbnRMaXN0ZW5lcil0aHJvdyBuZXcgVHlwZUVycm9yKCdUaGUgImVtaXR0ZXIiIGFyZ3VtZW50IG11c3QgYmUgb2YgdHlwZSBFdmVudEVtaXR0ZXIuIFJlY2VpdmVkIHR5cGUgJyt0eXBlb2YgdCk7dC5hZGRFdmVudExpc3RlbmVyKGUsKGZ1bmN0aW9uIGkoYSl7bi5vbmNlJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIoZSxpKSxyKGEpfSkpfX1PYmplY3QuZGVmaW5lUHJvcGVydHkocywiZGVmYXVsdE1heExpc3RlbmVycyIse2VudW1lcmFibGU6ITAsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9LHNldDpmdW5jdGlvbih0KXtpZigibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MHx8byh0KSl0aHJvdyBuZXcgUmFuZ2VFcnJvcignVGhlIHZhbHVlIG9mICJkZWZhdWx0TWF4TGlzdGVuZXJzIiBpcyBvdXQgb2YgcmFuZ2UuIEl0IG11c3QgYmUgYSBub24tbmVnYXRpdmUgbnVtYmVyLiBSZWNlaXZlZCAnK3QrIi4iKTtsPXR9fSkscy5pbml0PWZ1bmN0aW9uKCl7dm9pZCAwIT09dGhpcy5fZXZlbnRzJiZ0aGlzLl9ldmVudHMhPT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodGhpcykuX2V2ZW50c3x8KHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTApLHRoaXMuX21heExpc3RlbmVycz10aGlzLl9tYXhMaXN0ZW5lcnN8fHZvaWQgMH0scy5wcm90b3R5cGUuc2V0TWF4TGlzdGVuZXJzPWZ1bmN0aW9uKHQpe2lmKCJudW1iZXIiIT10eXBlb2YgdHx8dDwwfHxvKHQpKXRocm93IG5ldyBSYW5nZUVycm9yKCdUaGUgdmFsdWUgb2YgIm4iIGlzIG91dCBvZiByYW5nZS4gSXQgbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBudW1iZXIuIFJlY2VpdmVkICcrdCsiLiIpO3JldHVybiB0aGlzLl9tYXhMaXN0ZW5lcnM9dCx0aGlzfSxzLnByb3RvdHlwZS5nZXRNYXhMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdSh0aGlzKX0scy5wcm90b3R5cGUuZW1pdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspZS5wdXNoKGFyZ3VtZW50c1tyXSk7dmFyIG49ImVycm9yIj09PXQsaT10aGlzLl9ldmVudHM7aWYodm9pZCAwIT09aSluPW4mJnZvaWQgMD09PWkuZXJyb3I7ZWxzZSBpZighbilyZXR1cm4hMTtpZihuKXt2YXIgbztpZihlLmxlbmd0aD4wJiYobz1lWzBdKSxvIGluc3RhbmNlb2YgRXJyb3IpdGhyb3cgbzt2YXIgcz1uZXcgRXJyb3IoIlVuaGFuZGxlZCBlcnJvci4iKyhvPyIgKCIrby5tZXNzYWdlKyIpIjoiIikpO3Rocm93IHMuY29udGV4dD1vLHN9dmFyIGw9aVt0XTtpZih2b2lkIDA9PT1sKXJldHVybiExO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBsKWEobCx0aGlzLGUpO2Vsc2V7dmFyIGM9bC5sZW5ndGgsdT1nKGwsYyk7Zm9yKHI9MDtyPGM7KytyKWEodVtyXSx0aGlzLGUpfXJldHVybiEwfSxzLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3JldHVybiBmKHRoaXMsdCxlLCExKX0scy5wcm90b3R5cGUub249cy5wcm90b3R5cGUuYWRkTGlzdGVuZXIscy5wcm90b3R5cGUucHJlcGVuZExpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGYodGhpcyx0LGUsITApfSxzLnByb3RvdHlwZS5vbmNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGMoZSksdGhpcy5vbih0LHAodGhpcyx0LGUpKSx0aGlzfSxzLnByb3RvdHlwZS5wcmVwZW5kT25jZUxpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGMoZSksdGhpcy5wcmVwZW5kTGlzdGVuZXIodCxwKHRoaXMsdCxlKSksdGhpc30scy5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXI9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvO2lmKGMoZSksdm9pZCAwPT09KG49dGhpcy5fZXZlbnRzKSlyZXR1cm4gdGhpcztpZih2b2lkIDA9PT0ocj1uW3RdKSlyZXR1cm4gdGhpcztpZihyPT09ZXx8ci5saXN0ZW5lcj09PWUpMD09LS10aGlzLl9ldmVudHNDb3VudD90aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKTooZGVsZXRlIG5bdF0sbi5yZW1vdmVMaXN0ZW5lciYmdGhpcy5lbWl0KCJyZW1vdmVMaXN0ZW5lciIsdCxyLmxpc3RlbmVyfHxlKSk7ZWxzZSBpZigiZnVuY3Rpb24iIT10eXBlb2Ygcil7Zm9yKGk9LTEsYT1yLmxlbmd0aC0xO2E+PTA7YS0tKWlmKHJbYV09PT1lfHxyW2FdLmxpc3RlbmVyPT09ZSl7bz1yW2FdLmxpc3RlbmVyLGk9YTticmVha31pZihpPDApcmV0dXJuIHRoaXM7MD09PWk/ci5zaGlmdCgpOmZ1bmN0aW9uKHQsZSl7Zm9yKDtlKzE8dC5sZW5ndGg7ZSsrKXRbZV09dFtlKzFdO3QucG9wKCl9KHIsaSksMT09PXIubGVuZ3RoJiYoblt0XT1yWzBdKSx2b2lkIDAhPT1uLnJlbW92ZUxpc3RlbmVyJiZ0aGlzLmVtaXQoInJlbW92ZUxpc3RlbmVyIix0LG98fGUpfXJldHVybiB0aGlzfSxzLnByb3RvdHlwZS5vZmY9cy5wcm90b3R5cGUucmVtb3ZlTGlzdGVuZXIscy5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbjtpZih2b2lkIDA9PT0ocj10aGlzLl9ldmVudHMpKXJldHVybiB0aGlzO2lmKHZvaWQgMD09PXIucmVtb3ZlTGlzdGVuZXIpcmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoPyh0aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKSx0aGlzLl9ldmVudHNDb3VudD0wKTp2b2lkIDAhPT1yW3RdJiYoMD09LS10aGlzLl9ldmVudHNDb3VudD90aGlzLl9ldmVudHM9T2JqZWN0LmNyZWF0ZShudWxsKTpkZWxldGUgclt0XSksdGhpcztpZigwPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIGksYT1PYmplY3Qua2V5cyhyKTtmb3Iobj0wO248YS5sZW5ndGg7KytuKSJyZW1vdmVMaXN0ZW5lciIhPT0oaT1hW25dKSYmdGhpcy5yZW1vdmVBbGxMaXN0ZW5lcnMoaSk7cmV0dXJuIHRoaXMucmVtb3ZlQWxsTGlzdGVuZXJzKCJyZW1vdmVMaXN0ZW5lciIpLHRoaXMuX2V2ZW50cz1PYmplY3QuY3JlYXRlKG51bGwpLHRoaXMuX2V2ZW50c0NvdW50PTAsdGhpc31pZigiZnVuY3Rpb24iPT10eXBlb2YoZT1yW3RdKSl0aGlzLnJlbW92ZUxpc3RlbmVyKHQsZSk7ZWxzZSBpZih2b2lkIDAhPT1lKWZvcihuPWUubGVuZ3RoLTE7bj49MDtuLS0pdGhpcy5yZW1vdmVMaXN0ZW5lcih0LGVbbl0pO3JldHVybiB0aGlzfSxzLnByb3RvdHlwZS5saXN0ZW5lcnM9ZnVuY3Rpb24odCl7cmV0dXJuIGQodGhpcyx0LCEwKX0scy5wcm90b3R5cGUucmF3TGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybiBkKHRoaXMsdCwhMSl9LHMubGlzdGVuZXJDb3VudD1mdW5jdGlvbih0LGUpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0Lmxpc3RlbmVyQ291bnQ/dC5saXN0ZW5lckNvdW50KGUpOm0uY2FsbCh0LGUpfSxzLnByb3RvdHlwZS5saXN0ZW5lckNvdW50PW0scy5wcm90b3R5cGUuZXZlbnROYW1lcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9ldmVudHNDb3VudD4wP24odGhpcy5fZXZlbnRzKTpbXX19LHt9XSwyMzg6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj1mdW5jdGlvbigpe2lmKCJvYmplY3QiPT10eXBlb2Ygc2VsZiYmc2VsZilyZXR1cm4gc2VsZjtpZigib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmd2luZG93KXJldHVybiB3aW5kb3c7dGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gcmVzb2x2ZSBnbG9iYWwgYHRoaXNgIil9O2UuZXhwb3J0cz1mdW5jdGlvbigpe2lmKHRoaXMpcmV0dXJuIHRoaXM7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QucHJvdG90eXBlLCJfX2dsb2JhbF9fIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXN9LGNvbmZpZ3VyYWJsZTohMH0pfWNhdGNoKHQpe3JldHVybiBuKCl9dHJ5e3JldHVybiBfX2dsb2JhbF9ffHxuKCl9ZmluYWxseXtkZWxldGUgT2JqZWN0LnByb3RvdHlwZS5fX2dsb2JhbF9ffX0oKX0se31dLDIzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dCgiLi9pcy1pbXBsZW1lbnRlZCIpKCk/Z2xvYmFsVGhpczp0KCIuL2ltcGxlbWVudGF0aW9uIil9LHsiLi9pbXBsZW1lbnRhdGlvbiI6MjM4LCIuL2lzLWltcGxlbWVudGVkIjoyNDB9XSwyNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiBnbG9iYWxUaGlzJiYoISFnbG9iYWxUaGlzJiZnbG9iYWxUaGlzLkFycmF5PT09QXJyYXkpfX0se31dLDI0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWV8fDAsaT1yfHwxO3JldHVybltbdFsxMl0rdFswXSx0WzEzXSt0WzFdLHRbMTRdK3RbMl0sdFsxNV0rdFszXV0sW3RbMTJdLXRbMF0sdFsxM10tdFsxXSx0WzE0XS10WzJdLHRbMTVdLXRbM11dLFt0WzEyXSt0WzRdLHRbMTNdK3RbNV0sdFsxNF0rdFs2XSx0WzE1XSt0WzddXSxbdFsxMl0tdFs0XSx0WzEzXS10WzVdLHRbMTRdLXRbNl0sdFsxNV0tdFs3XV0sW24qdFsxMl0rdFs4XSxuKnRbMTNdK3RbOV0sbip0WzE0XSt0WzEwXSxuKnRbMTVdK3RbMTFdXSxbaSp0WzEyXS10WzhdLGkqdFsxM10tdFs5XSxpKnRbMTRdLXRbMTBdLGkqdFsxNV0tdFsxMV1dXX19LHt9XSwyNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiaXMtc3RyaW5nLWJsYW5rIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O2lmKCJzdHJpbmciPT09ZSl7dmFyIHI9dDtpZigwPT09KHQ9K3QpJiZuKHIpKXJldHVybiExfWVsc2UgaWYoIm51bWJlciIhPT1lKXJldHVybiExO3JldHVybiB0LXQ8MX19LHsiaXMtc3RyaW5nLWJsYW5rIjo0Mzh9XSwyNDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtzd2l0Y2goYXJndW1lbnRzLmxlbmd0aCl7Y2FzZSAwOnJldHVybiBuZXcgbyhbMF0sWzBdLDApO2Nhc2UgMTpyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/bmV3IG8obj1sKHQpLG4sMCk6bmV3IG8odCxsKHQubGVuZ3RoKSwwKTtjYXNlIDI6aWYoIm51bWJlciI9PXR5cGVvZiBlKXt2YXIgbj1sKHQubGVuZ3RoKTtyZXR1cm4gbmV3IG8odCxuLCtlKX1yPTA7Y2FzZSAzOmlmKHQubGVuZ3RoIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJzdGF0ZSBhbmQgdmVsb2NpdHkgbGVuZ3RocyBtdXN0IG1hdGNoIik7cmV0dXJuIG5ldyBvKHQsZSxyKX19O3ZhciBuPXQoImN1YmljLWhlcm1pdGUiKSxpPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZnVuY3Rpb24gYSh0LGUscil7cmV0dXJuIE1hdGgubWluKGUsTWF0aC5tYXgodCxyKSl9ZnVuY3Rpb24gbyh0LGUscil7dGhpcy5kaW1lbnNpb249dC5sZW5ndGgsdGhpcy5ib3VuZHM9W25ldyBBcnJheSh0aGlzLmRpbWVuc2lvbiksbmV3IEFycmF5KHRoaXMuZGltZW5zaW9uKV07Zm9yKHZhciBuPTA7bjx0aGlzLmRpbWVuc2lvbjsrK24pdGhpcy5ib3VuZHNbMF1bbl09LTEvMCx0aGlzLmJvdW5kc1sxXVtuXT0xLzA7dGhpcy5fc3RhdGU9dC5zbGljZSgpLnJldmVyc2UoKSx0aGlzLl92ZWxvY2l0eT1lLnNsaWNlKCkucmV2ZXJzZSgpLHRoaXMuX3RpbWU9W3JdLHRoaXMuX3NjcmF0Y2g9W3Quc2xpY2UoKSx0LnNsaWNlKCksdC5zbGljZSgpLHQuc2xpY2UoKSx0LnNsaWNlKCldfXZhciBzPW8ucHJvdG90eXBlO2Z1bmN0aW9uIGwodCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7cjx0OysrcillW3JdPTA7cmV0dXJuIGV9cy5mbHVzaD1mdW5jdGlvbih0KXt2YXIgZT1pLmd0KHRoaXMuX3RpbWUsdCktMTtlPD0wfHwodGhpcy5fdGltZS5zcGxpY2UoMCxlKSx0aGlzLl9zdGF0ZS5zcGxpY2UoMCxlKnRoaXMuZGltZW5zaW9uKSx0aGlzLl92ZWxvY2l0eS5zcGxpY2UoMCxlKnRoaXMuZGltZW5zaW9uKSl9LHMuY3VydmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGltZSxyPWUubGVuZ3RoLG89aS5sZShlLHQpLHM9dGhpcy5fc2NyYXRjaFswXSxsPXRoaXMuX3N0YXRlLGM9dGhpcy5fdmVsb2NpdHksdT10aGlzLmRpbWVuc2lvbixmPXRoaXMuYm91bmRzO2lmKG88MClmb3IodmFyIGg9dS0xLHA9MDtwPHU7KytwLC0taClzW3BdPWxbaF07ZWxzZSBpZihvPj1yLTEpe2g9bC5sZW5ndGgtMTt2YXIgZD10LWVbci0xXTtmb3IocD0wO3A8dTsrK3AsLS1oKXNbcF09bFtoXStkKmNbaF19ZWxzZXtoPXUqKG8rMSktMTt2YXIgbT1lW29dLGc9ZVtvKzFdLW18fDEsdj10aGlzLl9zY3JhdGNoWzFdLHk9dGhpcy5fc2NyYXRjaFsyXSx4PXRoaXMuX3NjcmF0Y2hbM10sYj10aGlzLl9zY3JhdGNoWzRdLF89ITA7Zm9yKHA9MDtwPHU7KytwLC0taCl2W3BdPWxbaF0seFtwXT1jW2hdKmcseVtwXT1sW2grdV0sYltwXT1jW2grdV0qZyxfPV8mJnZbcF09PT15W3BdJiZ4W3BdPT09YltwXSYmMD09PXhbcF07aWYoXylmb3IocD0wO3A8dTsrK3Apc1twXT12W3BdO2Vsc2Ugbih2LHgseSxiLCh0LW0pL2cscyl9dmFyIHc9ZlswXSxUPWZbMV07Zm9yKHA9MDtwPHU7KytwKXNbcF09YSh3W3BdLFRbcF0sc1twXSk7cmV0dXJuIHN9LHMuZGN1cnZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RpbWUscj1lLmxlbmd0aCxhPWkubGUoZSx0KSxvPXRoaXMuX3NjcmF0Y2hbMF0scz10aGlzLl9zdGF0ZSxsPXRoaXMuX3ZlbG9jaXR5LGM9dGhpcy5kaW1lbnNpb247aWYoYT49ci0xKWZvcih2YXIgdT1zLmxlbmd0aC0xLGY9KGVbci0xXSwwKTtmPGM7KytmLC0tdSlvW2ZdPWxbdV07ZWxzZXt1PWMqKGErMSktMTt2YXIgaD1lW2FdLHA9ZVthKzFdLWh8fDEsZD10aGlzLl9zY3JhdGNoWzFdLG09dGhpcy5fc2NyYXRjaFsyXSxnPXRoaXMuX3NjcmF0Y2hbM10sdj10aGlzLl9zY3JhdGNoWzRdLHk9ITA7Zm9yKGY9MDtmPGM7KytmLC0tdSlkW2ZdPXNbdV0sZ1tmXT1sW3VdKnAsbVtmXT1zW3UrY10sdltmXT1sW3UrY10qcCx5PXkmJmRbZl09PT1tW2ZdJiZnW2ZdPT09dltmXSYmMD09PWdbZl07aWYoeSlmb3IoZj0wO2Y8YzsrK2Ypb1tmXT0wO2Vsc2V7bi5kZXJpdmF0aXZlKGQsZyxtLHYsKHQtaCkvcCxvKTtmb3IoZj0wO2Y8YzsrK2Ypb1tmXS89cH19cmV0dXJuIG99LHMubGFzdFQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl90aW1lO3JldHVybiB0W3QubGVuZ3RoLTFdfSxzLnN0YWJsZT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLl92ZWxvY2l0eSxlPXQubGVuZ3RoLHI9dGhpcy5kaW1lbnNpb24tMTtyPj0wOy0tcilpZih0Wy0tZV0pcmV0dXJuITE7cmV0dXJuITB9LHMuanVtcD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCkscj10aGlzLmRpbWVuc2lvbjtpZighKHQ8ZXx8YXJndW1lbnRzLmxlbmd0aCE9PXIrMSkpe3ZhciBuPXRoaXMuX3N0YXRlLGk9dGhpcy5fdmVsb2NpdHksbz1uLmxlbmd0aC10aGlzLmRpbWVuc2lvbixzPXRoaXMuYm91bmRzLGw9c1swXSxjPXNbMV07dGhpcy5fdGltZS5wdXNoKGUsdCk7Zm9yKHZhciB1PTA7dTwyOysrdSlmb3IodmFyIGY9MDtmPHI7KytmKW4ucHVzaChuW28rK10pLGkucHVzaCgwKTt0aGlzLl90aW1lLnB1c2godCk7Zm9yKGY9cjtmPjA7LS1mKW4ucHVzaChhKGxbZi0xXSxjW2YtMV0sYXJndW1lbnRzW2ZdKSksaS5wdXNoKDApfX0scy5wdXNoPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGFzdFQoKSxyPXRoaXMuZGltZW5zaW9uO2lmKCEodDxlfHxhcmd1bWVudHMubGVuZ3RoIT09cisxKSl7dmFyIG49dGhpcy5fc3RhdGUsaT10aGlzLl92ZWxvY2l0eSxvPW4ubGVuZ3RoLXRoaXMuZGltZW5zaW9uLHM9dC1lLGw9dGhpcy5ib3VuZHMsYz1sWzBdLHU9bFsxXSxmPXM+MWUtNj8xL3M6MDt0aGlzLl90aW1lLnB1c2godCk7Zm9yKHZhciBoPXI7aD4wOy0taCl7dmFyIHA9YShjW2gtMV0sdVtoLTFdLGFyZ3VtZW50c1toXSk7bi5wdXNoKHApLGkucHVzaCgocC1uW28rK10pKmYpfX19LHMuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGltZW5zaW9uO2lmKCEodDx0aGlzLmxhc3RUKCl8fGFyZ3VtZW50cy5sZW5ndGghPT1lKzEpKXt2YXIgcj10aGlzLl9zdGF0ZSxuPXRoaXMuX3ZlbG9jaXR5LGk9dGhpcy5ib3VuZHMsbz1pWzBdLHM9aVsxXTt0aGlzLl90aW1lLnB1c2godCk7Zm9yKHZhciBsPWU7bD4wOy0tbClyLnB1c2goYShvW2wtMV0sc1tsLTFdLGFyZ3VtZW50c1tsXSkpLG4ucHVzaCgwKX19LHMubW92ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCkscj10aGlzLmRpbWVuc2lvbjtpZighKHQ8PWV8fGFyZ3VtZW50cy5sZW5ndGghPT1yKzEpKXt2YXIgbj10aGlzLl9zdGF0ZSxpPXRoaXMuX3ZlbG9jaXR5LG89bi5sZW5ndGgtdGhpcy5kaW1lbnNpb24scz10aGlzLmJvdW5kcyxsPXNbMF0sYz1zWzFdLHU9dC1lLGY9dT4xZS02PzEvdTowO3RoaXMuX3RpbWUucHVzaCh0KTtmb3IodmFyIGg9cjtoPjA7LS1oKXt2YXIgcD1hcmd1bWVudHNbaF07bi5wdXNoKGEobFtoLTFdLGNbaC0xXSxuW28rK10rcCkpLGkucHVzaChwKmYpfX19LHMuaWRsZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmxhc3RUKCk7aWYoISh0PGUpKXt2YXIgcj10aGlzLmRpbWVuc2lvbixuPXRoaXMuX3N0YXRlLGk9dGhpcy5fdmVsb2NpdHksbz1uLmxlbmd0aC1yLHM9dGhpcy5ib3VuZHMsbD1zWzBdLGM9c1sxXSx1PXQtZTt0aGlzLl90aW1lLnB1c2godCk7Zm9yKHZhciBmPXItMTtmPj0wOy0tZiluLnB1c2goYShsW2ZdLGNbZl0sbltvXSt1Kmlbb10pKSxpLnB1c2goMCksbys9MX19fSx7ImJpbmFyeS1zZWFyY2gtYm91bmRzIjoxMDAsImN1YmljLWhlcm1pdGUiOjE1Mn1dLDI0NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImR0eXBlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtpZighdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtdXN0IHNwZWNpZnkgZGF0YSBhcyBmaXJzdCBwYXJhbWV0ZXIiKTtpZihyPTB8KyhyfHwwKSxBcnJheS5pc0FycmF5KHQpJiZ0WzBdJiYibnVtYmVyIj09dHlwZW9mIHRbMF1bMF0pe3ZhciBpLGEsbyxzLGw9dFswXS5sZW5ndGgsYz10Lmxlbmd0aCpsO2UmJiJzdHJpbmciIT10eXBlb2YgZXx8KGU9bmV3KG4oZXx8ImZsb2F0MzIiKSkoYytyKSk7dmFyIHU9ZS5sZW5ndGgtcjtpZihjIT09dSl0aHJvdyBuZXcgRXJyb3IoInNvdXJjZSBsZW5ndGggIitjKyIgKCIrbCsieCIrdC5sZW5ndGgrIikgZG9lcyBub3QgbWF0Y2ggZGVzdGluYXRpb24gbGVuZ3RoICIrdSk7Zm9yKGk9MCxvPXI7aTx0Lmxlbmd0aDtpKyspZm9yKGE9MDthPGw7YSsrKWVbbysrXT1udWxsPT09dFtpXVthXT9OYU46dFtpXVthXX1lbHNlIGlmKGUmJiJzdHJpbmciIT10eXBlb2YgZSllLnNldCh0LHIpO2Vsc2V7dmFyIGY9bihlfHwiZmxvYXQzMiIpO2lmKEFycmF5LmlzQXJyYXkodCl8fCJhcnJheSI9PT1lKWZvcihlPW5ldyBmKHQubGVuZ3RoK3IpLGk9MCxvPXIscz1lLmxlbmd0aDtvPHM7bysrLGkrKyllW29dPW51bGw9PT10W2ldP05hTjp0W2ldO2Vsc2UgMD09PXI/ZT1uZXcgZih0KTooZT1uZXcgZih0Lmxlbmd0aCtyKSkuc2V0KHQscil9cmV0dXJuIGV9fSx7ZHR5cGU6MTc2fV0sMjQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNzcy1mb250L3N0cmluZ2lmeSIpLGk9WzMyLDEyNl07ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPSh0PXR8fHt9KS5zaGFwZT90LnNoYXBlOnQuY2FudmFzP1t0LmNhbnZhcy53aWR0aCx0LmNhbnZhcy5oZWlnaHRdOls1MTIsNTEyXSxyPXQuY2FudmFzfHxkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxhPXQuZm9udCxvPSJudW1iZXIiPT10eXBlb2YgdC5zdGVwP1t0LnN0ZXAsdC5zdGVwXTp0LnN0ZXB8fFszMiwzMl0scz10LmNoYXJzfHxpO2EmJiJzdHJpbmciIT10eXBlb2YgYSYmKGE9bihhKSk7aWYoQXJyYXkuaXNBcnJheShzKSl7aWYoMj09PXMubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIHNbMF0mJiJudW1iZXIiPT10eXBlb2Ygc1sxXSl7Zm9yKHZhciBsPVtdLGM9c1swXSx1PTA7Yzw9c1sxXTtjKyspbFt1KytdPVN0cmluZy5mcm9tQ2hhckNvZGUoYyk7cz1sfX1lbHNlIHM9U3RyaW5nKHMpLnNwbGl0KCIiKTtlPWUuc2xpY2UoKSxyLndpZHRoPWVbMF0sci5oZWlnaHQ9ZVsxXTt2YXIgZj1yLmdldENvbnRleHQoIjJkIik7Zi5maWxsU3R5bGU9IiMwMDAiLGYuZmlsbFJlY3QoMCwwLHIud2lkdGgsci5oZWlnaHQpLGYuZm9udD1hLGYudGV4dEFsaWduPSJjZW50ZXIiLGYudGV4dEJhc2VsaW5lPSJtaWRkbGUiLGYuZmlsbFN0eWxlPSIjZmZmIjt2YXIgaD1vWzBdLzIscD1vWzFdLzI7Zm9yKGM9MDtjPHMubGVuZ3RoO2MrKylmLmZpbGxUZXh0KHNbY10saCxwKSwoaCs9b1swXSk+ZVswXS1vWzBdLzImJihoPW9bMF0vMixwKz1vWzFdKTtyZXR1cm4gcn19LHsiY3NzLWZvbnQvc3RyaW5naWZ5IjoxNDl9XSwyNDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUpe2V8fChlPXt9KSwoInN0cmluZyI9PXR5cGVvZiB0fHxBcnJheS5pc0FycmF5KHQpKSYmKGUuZmFtaWx5PXQpO3ZhciByPUFycmF5LmlzQXJyYXkoZS5mYW1pbHkpP2UuZmFtaWx5LmpvaW4oIiwgIik6ZS5mYW1pbHk7aWYoIXIpdGhyb3cgRXJyb3IoImBmYW1pbHlgIG11c3QgYmUgZGVmaW5lZCIpO3ZhciBzPWUuc2l6ZXx8ZS5mb250U2l6ZXx8ZS5lbXx8NDgsbD1lLndlaWdodHx8ZS5mb250V2VpZ2h0fHwiIixjPSh0PVtlLnN0eWxlfHxlLmZvbnRTdHlsZXx8IiIsbCxzXS5qb2luKCIgIikrInB4ICIrcixlLm9yaWdpbnx8InRvcCIpO2lmKG4uY2FjaGVbcl0mJnM8PW4uY2FjaGVbcl0uZW0pcmV0dXJuIGkobi5jYWNoZVtyXSxjKTt2YXIgdT1lLmNhbnZhc3x8bi5jYW52YXMsZj11LmdldENvbnRleHQoIjJkIiksaD17dXBwZXI6dm9pZCAwIT09ZS51cHBlcj9lLnVwcGVyOiJIIixsb3dlcjp2b2lkIDAhPT1lLmxvd2VyP2UubG93ZXI6IngiLGRlc2NlbnQ6dm9pZCAwIT09ZS5kZXNjZW50P2UuZGVzY2VudDoicCIsYXNjZW50OnZvaWQgMCE9PWUuYXNjZW50P2UuYXNjZW50OiJoIix0aXR0bGU6dm9pZCAwIT09ZS50aXR0bGU/ZS50aXR0bGU6ImkiLG92ZXJzaG9vdDp2b2lkIDAhPT1lLm92ZXJzaG9vdD9lLm92ZXJzaG9vdDoiTyJ9LHA9TWF0aC5jZWlsKDEuNSpzKTt1LmhlaWdodD1wLHUud2lkdGg9LjUqcCxmLmZvbnQ9dDt2YXIgZD17dG9wOjB9O2YuY2xlYXJSZWN0KDAsMCxwLHApLGYudGV4dEJhc2VsaW5lPSJ0b3AiLGYuZmlsbFN0eWxlPSJibGFjayIsZi5maWxsVGV4dCgiSCIsMCwwKTt2YXIgbT1hKGYuZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKTtmLmNsZWFyUmVjdCgwLDAscCxwKSxmLnRleHRCYXNlbGluZT0iYm90dG9tIixmLmZpbGxUZXh0KCJIIiwwLHApO3ZhciBnPWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpO2QubGluZUhlaWdodD1kLmJvdHRvbT1wLWcrbSxmLmNsZWFyUmVjdCgwLDAscCxwKSxmLnRleHRCYXNlbGluZT0iYWxwaGFiZXRpYyIsZi5maWxsVGV4dCgiSCIsMCxwKTt2YXIgdj1wLWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpLTErbTtkLmJhc2VsaW5lPWQuYWxwaGFiZXRpYz12LGYuY2xlYXJSZWN0KDAsMCxwLHApLGYudGV4dEJhc2VsaW5lPSJtaWRkbGUiLGYuZmlsbFRleHQoIkgiLDAsLjUqcCk7dmFyIHk9YShmLmdldEltYWdlRGF0YSgwLDAscCxwKSk7ZC5tZWRpYW49ZC5taWRkbGU9cC15LTErbS0uNSpwLGYuY2xlYXJSZWN0KDAsMCxwLHApLGYudGV4dEJhc2VsaW5lPSJoYW5naW5nIixmLmZpbGxUZXh0KCJIIiwwLC41KnApO3ZhciB4PWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpO2QuaGFuZ2luZz1wLXgtMSttLS41KnAsZi5jbGVhclJlY3QoMCwwLHAscCksZi50ZXh0QmFzZWxpbmU9ImlkZW9ncmFwaGljIixmLmZpbGxUZXh0KCJIIiwwLHApO3ZhciBiPWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpO2lmKGQuaWRlb2dyYXBoaWM9cC1iLTErbSxoLnVwcGVyJiYoZi5jbGVhclJlY3QoMCwwLHAscCksZi50ZXh0QmFzZWxpbmU9InRvcCIsZi5maWxsVGV4dChoLnVwcGVyLDAsMCksZC51cHBlcj1hKGYuZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKSxkLmNhcEhlaWdodD1kLmJhc2VsaW5lLWQudXBwZXIpLGgubG93ZXImJihmLmNsZWFyUmVjdCgwLDAscCxwKSxmLnRleHRCYXNlbGluZT0idG9wIixmLmZpbGxUZXh0KGgubG93ZXIsMCwwKSxkLmxvd2VyPWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpLGQueEhlaWdodD1kLmJhc2VsaW5lLWQubG93ZXIpLGgudGl0dGxlJiYoZi5jbGVhclJlY3QoMCwwLHAscCksZi50ZXh0QmFzZWxpbmU9InRvcCIsZi5maWxsVGV4dChoLnRpdHRsZSwwLDApLGQudGl0dGxlPWEoZi5nZXRJbWFnZURhdGEoMCwwLHAscCkpKSxoLmFzY2VudCYmKGYuY2xlYXJSZWN0KDAsMCxwLHApLGYudGV4dEJhc2VsaW5lPSJ0b3AiLGYuZmlsbFRleHQoaC5hc2NlbnQsMCwwKSxkLmFzY2VudD1hKGYuZ2V0SW1hZ2VEYXRhKDAsMCxwLHApKSksaC5kZXNjZW50JiYoZi5jbGVhclJlY3QoMCwwLHAscCksZi50ZXh0QmFzZWxpbmU9InRvcCIsZi5maWxsVGV4dChoLmRlc2NlbnQsMCwwKSxkLmRlc2NlbnQ9byhmLmdldEltYWdlRGF0YSgwLDAscCxwKSkpLGgub3ZlcnNob290KXtmLmNsZWFyUmVjdCgwLDAscCxwKSxmLnRleHRCYXNlbGluZT0idG9wIixmLmZpbGxUZXh0KGgub3ZlcnNob290LDAsMCk7dmFyIF89byhmLmdldEltYWdlRGF0YSgwLDAscCxwKSk7ZC5vdmVyc2hvb3Q9Xy12fWZvcih2YXIgdyBpbiBkKWRbd10vPXM7cmV0dXJuIGQuZW09cyxuLmNhY2hlW3JdPWQsaShkLGMpfWZ1bmN0aW9uIGkodCxlKXt2YXIgcj17fTtmb3IodmFyIG4gaW4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXRbZV0pLHQpImVtIiE9PW4mJihyW25dPXRbbl0tZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gYSh0KXtmb3IodmFyIGU9dC5oZWlnaHQscj10LmRhdGEsbj0zO248ci5sZW5ndGg7bis9NClpZigwIT09cltuXSlyZXR1cm4gTWF0aC5mbG9vciguMjUqKG4tMykvZSl9ZnVuY3Rpb24gbyh0KXtmb3IodmFyIGU9dC5oZWlnaHQscj10LmRhdGEsbj1yLmxlbmd0aC0xO24+MDtuLT00KWlmKDAhPT1yW25dKXJldHVybiBNYXRoLmZsb29yKC4yNSoobi0zKS9lKX1lLmV4cG9ydHM9bixuLmNhbnZhcz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSxuLmNhY2hlPXt9fSx7fV0sMjQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHModHx8bSxudWxsKX07ZnVuY3Rpb24gbih0LGUscixuLGksYSl7dGhpcy5fY29sb3I9dCx0aGlzLmtleT1lLHRoaXMudmFsdWU9cix0aGlzLmxlZnQ9bix0aGlzLnJpZ2h0PWksdGhpcy5fY291bnQ9YX1mdW5jdGlvbiBpKHQpe3JldHVybiBuZXcgbih0Ll9jb2xvcix0LmtleSx0LnZhbHVlLHQubGVmdCx0LnJpZ2h0LHQuX2NvdW50KX1mdW5jdGlvbiBhKHQsZSl7cmV0dXJuIG5ldyBuKHQsZS5rZXksZS52YWx1ZSxlLmxlZnQsZS5yaWdodCxlLl9jb3VudCl9ZnVuY3Rpb24gbyh0KXt0Ll9jb3VudD0xKyh0LmxlZnQ/dC5sZWZ0Ll9jb3VudDowKSsodC5yaWdodD90LnJpZ2h0Ll9jb3VudDowKX1mdW5jdGlvbiBzKHQsZSl7dGhpcy5fY29tcGFyZT10LHRoaXMucm9vdD1lfXZhciBsPXMucHJvdG90eXBlO2Z1bmN0aW9uIGModCxlKXt2YXIgcjtpZihlLmxlZnQmJihyPWModCxlLmxlZnQpKSlyZXR1cm4gcjtyZXR1cm4ocj10KGUua2V5LGUudmFsdWUpKXx8KGUucmlnaHQ/Yyh0LGUucmlnaHQpOnZvaWQgMCl9ZnVuY3Rpb24gdSh0LGUscixuKXtpZihlKHQsbi5rZXkpPD0wKXt2YXIgaTtpZihuLmxlZnQpaWYoaT11KHQsZSxyLG4ubGVmdCkpcmV0dXJuIGk7aWYoaT1yKG4ua2V5LG4udmFsdWUpKXJldHVybiBpfWlmKG4ucmlnaHQpcmV0dXJuIHUodCxlLHIsbi5yaWdodCl9ZnVuY3Rpb24gZih0LGUscixuLGkpe3ZhciBhLG89cih0LGkua2V5KSxzPXIoZSxpLmtleSk7aWYobzw9MCl7aWYoaS5sZWZ0JiYoYT1mKHQsZSxyLG4saS5sZWZ0KSkpcmV0dXJuIGE7aWYocz4wJiYoYT1uKGkua2V5LGkudmFsdWUpKSlyZXR1cm4gYX1pZihzPjAmJmkucmlnaHQpcmV0dXJuIGYodCxlLHIsbixpLnJpZ2h0KX1mdW5jdGlvbiBoKHQsZSl7dGhpcy50cmVlPXQsdGhpcy5fc3RhY2s9ZX1PYmplY3QuZGVmaW5lUHJvcGVydHkobCwia2V5cyIse2dldDpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKGUscil7dC5wdXNoKGUpfSkpLHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsInZhbHVlcyIse2dldDpmdW5jdGlvbigpe3ZhciB0PVtdO3JldHVybiB0aGlzLmZvckVhY2goKGZ1bmN0aW9uKGUscil7dC5wdXNoKHIpfSkpLHR9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsImxlbmd0aCIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnJvb3Q/dGhpcy5yb290Ll9jb3VudDowfX0pLGwuaW5zZXJ0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXRoaXMuX2NvbXBhcmUsaT10aGlzLnJvb3QsbD1bXSxjPVtdO2k7KXt2YXIgdT1yKHQsaS5rZXkpO2wucHVzaChpKSxjLnB1c2godSksaT11PD0wP2kubGVmdDppLnJpZ2h0fWwucHVzaChuZXcgbigwLHQsZSxudWxsLG51bGwsMSkpO2Zvcih2YXIgZj1sLmxlbmd0aC0yO2Y+PTA7LS1mKXtpPWxbZl07Y1tmXTw9MD9sW2ZdPW5ldyBuKGkuX2NvbG9yLGkua2V5LGkudmFsdWUsbFtmKzFdLGkucmlnaHQsaS5fY291bnQrMSk6bFtmXT1uZXcgbihpLl9jb2xvcixpLmtleSxpLnZhbHVlLGkubGVmdCxsW2YrMV0saS5fY291bnQrMSl9Zm9yKGY9bC5sZW5ndGgtMTtmPjE7LS1mKXt2YXIgaD1sW2YtMV07aT1sW2ZdO2lmKDE9PT1oLl9jb2xvcnx8MT09PWkuX2NvbG9yKWJyZWFrO3ZhciBwPWxbZi0yXTtpZihwLmxlZnQ9PT1oKWlmKGgubGVmdD09PWkpe2lmKCEoZD1wLnJpZ2h0KXx8MCE9PWQuX2NvbG9yKXtpZihwLl9jb2xvcj0wLHAubGVmdD1oLnJpZ2h0LGguX2NvbG9yPTEsaC5yaWdodD1wLGxbZi0yXT1oLGxbZi0xXT1pLG8ocCksbyhoKSxmPj0zKShtPWxbZi0zXSkubGVmdD09PXA/bS5sZWZ0PWg6bS5yaWdodD1oO2JyZWFrfWguX2NvbG9yPTEscC5yaWdodD1hKDEsZCkscC5fY29sb3I9MCxmLT0xfWVsc2V7aWYoIShkPXAucmlnaHQpfHwwIT09ZC5fY29sb3Ipe2lmKGgucmlnaHQ9aS5sZWZ0LHAuX2NvbG9yPTAscC5sZWZ0PWkucmlnaHQsaS5fY29sb3I9MSxpLmxlZnQ9aCxpLnJpZ2h0PXAsbFtmLTJdPWksbFtmLTFdPWgsbyhwKSxvKGgpLG8oaSksZj49MykobT1sW2YtM10pLmxlZnQ9PT1wP20ubGVmdD1pOm0ucmlnaHQ9aTticmVha31oLl9jb2xvcj0xLHAucmlnaHQ9YSgxLGQpLHAuX2NvbG9yPTAsZi09MX1lbHNlIGlmKGgucmlnaHQ9PT1pKXtpZighKGQ9cC5sZWZ0KXx8MCE9PWQuX2NvbG9yKXtpZihwLl9jb2xvcj0wLHAucmlnaHQ9aC5sZWZ0LGguX2NvbG9yPTEsaC5sZWZ0PXAsbFtmLTJdPWgsbFtmLTFdPWksbyhwKSxvKGgpLGY+PTMpKG09bFtmLTNdKS5yaWdodD09PXA/bS5yaWdodD1oOm0ubGVmdD1oO2JyZWFrfWguX2NvbG9yPTEscC5sZWZ0PWEoMSxkKSxwLl9jb2xvcj0wLGYtPTF9ZWxzZXt2YXIgZDtpZighKGQ9cC5sZWZ0KXx8MCE9PWQuX2NvbG9yKXt2YXIgbTtpZihoLmxlZnQ9aS5yaWdodCxwLl9jb2xvcj0wLHAucmlnaHQ9aS5sZWZ0LGkuX2NvbG9yPTEsaS5yaWdodD1oLGkubGVmdD1wLGxbZi0yXT1pLGxbZi0xXT1oLG8ocCksbyhoKSxvKGkpLGY+PTMpKG09bFtmLTNdKS5yaWdodD09PXA/bS5yaWdodD1pOm0ubGVmdD1pO2JyZWFrfWguX2NvbG9yPTEscC5sZWZ0PWEoMSxkKSxwLl9jb2xvcj0wLGYtPTF9fXJldHVybiBsWzBdLl9jb2xvcj0xLG5ldyBzKHIsbFswXSl9LGwuZm9yRWFjaD1mdW5jdGlvbih0LGUscil7aWYodGhpcy5yb290KXN3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDE6cmV0dXJuIGModCx0aGlzLnJvb3QpO2Nhc2UgMjpyZXR1cm4gdShlLHRoaXMuX2NvbXBhcmUsdCx0aGlzLnJvb3QpO2Nhc2UgMzppZih0aGlzLl9jb21wYXJlKGUscik+PTApcmV0dXJuO3JldHVybiBmKGUscix0aGlzLl9jb21wYXJlLHQsdGhpcy5yb290KX19LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShsLCJiZWdpbiIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPXRoaXMucm9vdDtlOyl0LnB1c2goZSksZT1lLmxlZnQ7cmV0dXJuIG5ldyBoKHRoaXMsdCl9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGwsImVuZCIse2dldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPXRoaXMucm9vdDtlOyl0LnB1c2goZSksZT1lLnJpZ2h0O3JldHVybiBuZXcgaCh0aGlzLHQpfX0pLGwuYXQ9ZnVuY3Rpb24odCl7aWYodDwwKXJldHVybiBuZXcgaCh0aGlzLFtdKTtmb3IodmFyIGU9dGhpcy5yb290LHI9W107Oyl7aWYoci5wdXNoKGUpLGUubGVmdCl7aWYodDxlLmxlZnQuX2NvdW50KXtlPWUubGVmdDtjb250aW51ZX10LT1lLmxlZnQuX2NvdW50fWlmKCF0KXJldHVybiBuZXcgaCh0aGlzLHIpO2lmKHQtPTEsIWUucmlnaHQpYnJlYWs7aWYodD49ZS5yaWdodC5fY291bnQpYnJlYWs7ZT1lLnJpZ2h0fXJldHVybiBuZXcgaCh0aGlzLFtdKX0sbC5nZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdCxuPVtdLGk9MDtyOyl7dmFyIGE9ZSh0LHIua2V5KTtuLnB1c2gociksYTw9MCYmKGk9bi5sZW5ndGgpLHI9YTw9MD9yLmxlZnQ6ci5yaWdodH1yZXR1cm4gbi5sZW5ndGg9aSxuZXcgaCh0aGlzLG4pfSxsLmd0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb21wYXJlLHI9dGhpcy5yb290LG49W10saT0wO3I7KXt2YXIgYT1lKHQsci5rZXkpO24ucHVzaChyKSxhPDAmJihpPW4ubGVuZ3RoKSxyPWE8MD9yLmxlZnQ6ci5yaWdodH1yZXR1cm4gbi5sZW5ndGg9aSxuZXcgaCh0aGlzLG4pfSxsLmx0PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9jb21wYXJlLHI9dGhpcy5yb290LG49W10saT0wO3I7KXt2YXIgYT1lKHQsci5rZXkpO24ucHVzaChyKSxhPjAmJihpPW4ubGVuZ3RoKSxyPWE8PTA/ci5sZWZ0OnIucmlnaHR9cmV0dXJuIG4ubGVuZ3RoPWksbmV3IGgodGhpcyxuKX0sbC5sZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdCxuPVtdLGk9MDtyOyl7dmFyIGE9ZSh0LHIua2V5KTtuLnB1c2gociksYT49MCYmKGk9bi5sZW5ndGgpLHI9YTwwP3IubGVmdDpyLnJpZ2h0fXJldHVybiBuLmxlbmd0aD1pLG5ldyBoKHRoaXMsbil9LGwuZmluZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdCxuPVtdO3I7KXt2YXIgaT1lKHQsci5rZXkpO2lmKG4ucHVzaChyKSwwPT09aSlyZXR1cm4gbmV3IGgodGhpcyxuKTtyPWk8PTA/ci5sZWZ0OnIucmlnaHR9cmV0dXJuIG5ldyBoKHRoaXMsW10pfSxsLnJlbW92ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmZpbmQodCk7cmV0dXJuIGU/ZS5yZW1vdmUoKTp0aGlzfSxsLmdldD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5fY29tcGFyZSxyPXRoaXMucm9vdDtyOyl7dmFyIG49ZSh0LHIua2V5KTtpZigwPT09bilyZXR1cm4gci52YWx1ZTtyPW48PTA/ci5sZWZ0OnIucmlnaHR9fTt2YXIgcD1oLnByb3RvdHlwZTtmdW5jdGlvbiBkKHQsZSl7dC5rZXk9ZS5rZXksdC52YWx1ZT1lLnZhbHVlLHQubGVmdD1lLmxlZnQsdC5yaWdodD1lLnJpZ2h0LHQuX2NvbG9yPWUuX2NvbG9yLHQuX2NvdW50PWUuX2NvdW50fWZ1bmN0aW9uIG0odCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOjB9T2JqZWN0LmRlZmluZVByb3BlcnR5KHAsInZhbGlkIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aD4wfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLCJub2RlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YWNrLmxlbmd0aD4wP3RoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXTpudWxsfSxlbnVtZXJhYmxlOiEwfSkscC5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgaCh0aGlzLnRyZWUsdGhpcy5fc3RhY2suc2xpY2UoKSl9LHAucmVtb3ZlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMD09PXQubGVuZ3RoKXJldHVybiB0aGlzLnRyZWU7dmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPXRbdC5sZW5ndGgtMV07ZVtlLmxlbmd0aC0xXT1uZXcgbihyLl9jb2xvcixyLmtleSxyLnZhbHVlLHIubGVmdCxyLnJpZ2h0LHIuX2NvdW50KTtmb3IodmFyIGw9dC5sZW5ndGgtMjtsPj0wOy0tbCl7KHI9dFtsXSkubGVmdD09PXRbbCsxXT9lW2xdPW5ldyBuKHIuX2NvbG9yLHIua2V5LHIudmFsdWUsZVtsKzFdLHIucmlnaHQsci5fY291bnQpOmVbbF09bmV3IG4oci5fY29sb3Isci5rZXksci52YWx1ZSxyLmxlZnQsZVtsKzFdLHIuX2NvdW50KX1pZigocj1lW2UubGVuZ3RoLTFdKS5sZWZ0JiZyLnJpZ2h0KXt2YXIgYz1lLmxlbmd0aDtmb3Iocj1yLmxlZnQ7ci5yaWdodDspZS5wdXNoKHIpLHI9ci5yaWdodDt2YXIgdT1lW2MtMV07ZS5wdXNoKG5ldyBuKHIuX2NvbG9yLHUua2V5LHUudmFsdWUsci5sZWZ0LHIucmlnaHQsci5fY291bnQpKSxlW2MtMV0ua2V5PXIua2V5LGVbYy0xXS52YWx1ZT1yLnZhbHVlO2ZvcihsPWUubGVuZ3RoLTI7bD49YzstLWwpcj1lW2xdLGVbbF09bmV3IG4oci5fY29sb3Isci5rZXksci52YWx1ZSxyLmxlZnQsZVtsKzFdLHIuX2NvdW50KTtlW2MtMV0ubGVmdD1lW2NdfWlmKDA9PT0ocj1lW2UubGVuZ3RoLTFdKS5fY29sb3Ipe3ZhciBmPWVbZS5sZW5ndGgtMl07Zi5sZWZ0PT09cj9mLmxlZnQ9bnVsbDpmLnJpZ2h0PT09ciYmKGYucmlnaHQ9bnVsbCksZS5wb3AoKTtmb3IobD0wO2w8ZS5sZW5ndGg7KytsKWVbbF0uX2NvdW50LS07cmV0dXJuIG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxlWzBdKX1pZihyLmxlZnR8fHIucmlnaHQpe3IubGVmdD9kKHIsci5sZWZ0KTpyLnJpZ2h0JiZkKHIsci5yaWdodCksci5fY29sb3I9MTtmb3IobD0wO2w8ZS5sZW5ndGgtMTsrK2wpZVtsXS5fY291bnQtLTtyZXR1cm4gbmV3IHModGhpcy50cmVlLl9jb21wYXJlLGVbMF0pfWlmKDE9PT1lLmxlbmd0aClyZXR1cm4gbmV3IHModGhpcy50cmVlLl9jb21wYXJlLG51bGwpO2ZvcihsPTA7bDxlLmxlbmd0aDsrK2wpZVtsXS5fY291bnQtLTt2YXIgaD1lW2UubGVuZ3RoLTJdO3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGUscixuLHMsbD10Lmxlbmd0aC0xO2w+PTA7LS1sKXtpZihlPXRbbF0sMD09PWwpcmV0dXJuIHZvaWQoZS5fY29sb3I9MSk7aWYoKHI9dFtsLTFdKS5sZWZ0PT09ZSl7aWYoKG49ci5yaWdodCkucmlnaHQmJjA9PT1uLnJpZ2h0Ll9jb2xvcil7aWYocz0obj1yLnJpZ2h0PWkobikpLnJpZ2h0PWkobi5yaWdodCksci5yaWdodD1uLmxlZnQsbi5sZWZ0PXIsbi5yaWdodD1zLG4uX2NvbG9yPXIuX2NvbG9yLGUuX2NvbG9yPTEsci5fY29sb3I9MSxzLl9jb2xvcj0xLG8ociksbyhuKSxsPjEpKGM9dFtsLTJdKS5sZWZ0PT09cj9jLmxlZnQ9bjpjLnJpZ2h0PW47cmV0dXJuIHZvaWQodFtsLTFdPW4pfWlmKG4ubGVmdCYmMD09PW4ubGVmdC5fY29sb3Ipe2lmKHM9KG49ci5yaWdodD1pKG4pKS5sZWZ0PWkobi5sZWZ0KSxyLnJpZ2h0PXMubGVmdCxuLmxlZnQ9cy5yaWdodCxzLmxlZnQ9cixzLnJpZ2h0PW4scy5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9MSxuLl9jb2xvcj0xLGUuX2NvbG9yPTEsbyhyKSxvKG4pLG8ocyksbD4xKShjPXRbbC0yXSkubGVmdD09PXI/Yy5sZWZ0PXM6Yy5yaWdodD1zO3JldHVybiB2b2lkKHRbbC0xXT1zKX1pZigxPT09bi5fY29sb3Ipe2lmKDA9PT1yLl9jb2xvcilyZXR1cm4gci5fY29sb3I9MSx2b2lkKHIucmlnaHQ9YSgwLG4pKTtyLnJpZ2h0PWEoMCxuKTtjb250aW51ZX1uPWkobiksci5yaWdodD1uLmxlZnQsbi5sZWZ0PXIsbi5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9MCxvKHIpLG8obiksbD4xJiYoKGM9dFtsLTJdKS5sZWZ0PT09cj9jLmxlZnQ9bjpjLnJpZ2h0PW4pLHRbbC0xXT1uLHRbbF09cixsKzE8dC5sZW5ndGg/dFtsKzFdPWU6dC5wdXNoKGUpLGwrPTJ9ZWxzZXtpZigobj1yLmxlZnQpLmxlZnQmJjA9PT1uLmxlZnQuX2NvbG9yKXtpZihzPShuPXIubGVmdD1pKG4pKS5sZWZ0PWkobi5sZWZ0KSxyLmxlZnQ9bi5yaWdodCxuLnJpZ2h0PXIsbi5sZWZ0PXMsbi5fY29sb3I9ci5fY29sb3IsZS5fY29sb3I9MSxyLl9jb2xvcj0xLHMuX2NvbG9yPTEsbyhyKSxvKG4pLGw+MSkoYz10W2wtMl0pLnJpZ2h0PT09cj9jLnJpZ2h0PW46Yy5sZWZ0PW47cmV0dXJuIHZvaWQodFtsLTFdPW4pfWlmKG4ucmlnaHQmJjA9PT1uLnJpZ2h0Ll9jb2xvcil7aWYocz0obj1yLmxlZnQ9aShuKSkucmlnaHQ9aShuLnJpZ2h0KSxyLmxlZnQ9cy5yaWdodCxuLnJpZ2h0PXMubGVmdCxzLnJpZ2h0PXIscy5sZWZ0PW4scy5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9MSxuLl9jb2xvcj0xLGUuX2NvbG9yPTEsbyhyKSxvKG4pLG8ocyksbD4xKShjPXRbbC0yXSkucmlnaHQ9PT1yP2MucmlnaHQ9czpjLmxlZnQ9cztyZXR1cm4gdm9pZCh0W2wtMV09cyl9aWYoMT09PW4uX2NvbG9yKXtpZigwPT09ci5fY29sb3IpcmV0dXJuIHIuX2NvbG9yPTEsdm9pZChyLmxlZnQ9YSgwLG4pKTtyLmxlZnQ9YSgwLG4pO2NvbnRpbnVlfXZhciBjO249aShuKSxyLmxlZnQ9bi5yaWdodCxuLnJpZ2h0PXIsbi5fY29sb3I9ci5fY29sb3Isci5fY29sb3I9MCxvKHIpLG8obiksbD4xJiYoKGM9dFtsLTJdKS5yaWdodD09PXI/Yy5yaWdodD1uOmMubGVmdD1uKSx0W2wtMV09bix0W2xdPXIsbCsxPHQubGVuZ3RoP3RbbCsxXT1lOnQucHVzaChlKSxsKz0yfX19KGUpLGgubGVmdD09PXI/aC5sZWZ0PW51bGw6aC5yaWdodD1udWxsLG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxlWzBdKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsImtleSIse2dldDpmdW5jdGlvbigpe2lmKHRoaXMuX3N0YWNrLmxlbmd0aD4wKXJldHVybiB0aGlzLl9zdGFja1t0aGlzLl9zdGFjay5sZW5ndGgtMV0ua2V5fSxlbnVtZXJhYmxlOiEwfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsInZhbHVlIix7Z2V0OmZ1bmN0aW9uKCl7aWYodGhpcy5fc3RhY2subGVuZ3RoPjApcmV0dXJuIHRoaXMuX3N0YWNrW3RoaXMuX3N0YWNrLmxlbmd0aC0xXS52YWx1ZX0sZW51bWVyYWJsZTohMH0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwLCJpbmRleCIse2dldDpmdW5jdGlvbigpe3ZhciB0PTAsZT10aGlzLl9zdGFjaztpZigwPT09ZS5sZW5ndGgpe3ZhciByPXRoaXMudHJlZS5yb290O3JldHVybiByP3IuX2NvdW50OjB9ZVtlLmxlbmd0aC0xXS5sZWZ0JiYodD1lW2UubGVuZ3RoLTFdLmxlZnQuX2NvdW50KTtmb3IodmFyIG49ZS5sZW5ndGgtMjtuPj0wOy0tbillW24rMV09PT1lW25dLnJpZ2h0JiYoKyt0LGVbbl0ubGVmdCYmKHQrPWVbbl0ubGVmdC5fY291bnQpKTtyZXR1cm4gdH0sZW51bWVyYWJsZTohMH0pLHAubmV4dD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3N0YWNrO2lmKDAhPT10Lmxlbmd0aCl7dmFyIGU9dFt0Lmxlbmd0aC0xXTtpZihlLnJpZ2h0KWZvcihlPWUucmlnaHQ7ZTspdC5wdXNoKGUpLGU9ZS5sZWZ0O2Vsc2UgZm9yKHQucG9wKCk7dC5sZW5ndGg+MCYmdFt0Lmxlbmd0aC0xXS5yaWdodD09PWU7KWU9dFt0Lmxlbmd0aC0xXSx0LnBvcCgpfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsImhhc05leHQiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zdGFjaztpZigwPT09dC5sZW5ndGgpcmV0dXJuITE7aWYodFt0Lmxlbmd0aC0xXS5yaWdodClyZXR1cm4hMDtmb3IodmFyIGU9dC5sZW5ndGgtMTtlPjA7LS1lKWlmKHRbZS0xXS5sZWZ0PT09dFtlXSlyZXR1cm4hMDtyZXR1cm4hMX19KSxwLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9zdGFjaztpZigwPT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJDYW4ndCB1cGRhdGUgZW1wdHkgbm9kZSEiKTt2YXIgcj1uZXcgQXJyYXkoZS5sZW5ndGgpLGk9ZVtlLmxlbmd0aC0xXTtyW3IubGVuZ3RoLTFdPW5ldyBuKGkuX2NvbG9yLGkua2V5LHQsaS5sZWZ0LGkucmlnaHQsaS5fY291bnQpO2Zvcih2YXIgYT1lLmxlbmd0aC0yO2E+PTA7LS1hKShpPWVbYV0pLmxlZnQ9PT1lW2ErMV0/clthXT1uZXcgbihpLl9jb2xvcixpLmtleSxpLnZhbHVlLHJbYSsxXSxpLnJpZ2h0LGkuX2NvdW50KTpyW2FdPW5ldyBuKGkuX2NvbG9yLGkua2V5LGkudmFsdWUsaS5sZWZ0LHJbYSsxXSxpLl9jb3VudCk7cmV0dXJuIG5ldyBzKHRoaXMudHJlZS5fY29tcGFyZSxyWzBdKX0scC5wcmV2PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fc3RhY2s7aWYoMCE9PXQubGVuZ3RoKXt2YXIgZT10W3QubGVuZ3RoLTFdO2lmKGUubGVmdClmb3IoZT1lLmxlZnQ7ZTspdC5wdXNoKGUpLGU9ZS5yaWdodDtlbHNlIGZvcih0LnBvcCgpO3QubGVuZ3RoPjAmJnRbdC5sZW5ndGgtMV0ubGVmdD09PWU7KWU9dFt0Lmxlbmd0aC0xXSx0LnBvcCgpfX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHAsImhhc1ByZXYiLHtnZXQ6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9zdGFjaztpZigwPT09dC5sZW5ndGgpcmV0dXJuITE7aWYodFt0Lmxlbmd0aC0xXS5sZWZ0KXJldHVybiEwO2Zvcih2YXIgZT10Lmxlbmd0aC0xO2U+MDstLWUpaWYodFtlLTFdLnJpZ2h0PT09dFtlXSlyZXR1cm4hMDtyZXR1cm4hMX19KX0se31dLDI0ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJtdXN0IHNwZWNpZnkgdHlwZSBzdHJpbmciKTtpZihlPWV8fHt9LCJ1bmRlZmluZWQiPT10eXBlb2YgZG9jdW1lbnQmJiFlLmNhbnZhcylyZXR1cm4gbnVsbDt2YXIgcj1lLmNhbnZhc3x8ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Im51bWJlciI9PXR5cGVvZiBlLndpZHRoJiYoci53aWR0aD1lLndpZHRoKTsibnVtYmVyIj09dHlwZW9mIGUuaGVpZ2h0JiYoci5oZWlnaHQ9ZS5oZWlnaHQpO3ZhciBuLGk9ZTt0cnl7dmFyIGE9W3RdOzA9PT10LmluZGV4T2YoIndlYmdsIikmJmEucHVzaCgiZXhwZXJpbWVudGFsLSIrdCk7Zm9yKHZhciBvPTA7bzxhLmxlbmd0aDtvKyspaWYobj1yLmdldENvbnRleHQoYVtvXSxpKSlyZXR1cm4gbn1jYXRjaCh0KXtuPW51bGx9cmV0dXJuIG58fG51bGx9fSx7fV0sMjQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyB1KHQpO3JldHVybiByLnVwZGF0ZShlKSxyfTt2YXIgbj10KCIuL2xpYi90ZXh0LmpzIiksaT10KCIuL2xpYi9saW5lcy5qcyIpLGE9dCgiLi9saWIvYmFja2dyb3VuZC5qcyIpLG89dCgiLi9saWIvY3ViZS5qcyIpLHM9dCgiLi9saWIvdGlja3MuanMiKSxsPW5ldyBGbG9hdDMyQXJyYXkoWzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdKTtmdW5jdGlvbiBjKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHR9ZnVuY3Rpb24gdSh0KXt0aGlzLmdsPXQsdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5ib3VuZHM9W1stMTAsLTEwLC0xMF0sWzEwLDEwLDEwXV0sdGhpcy50aWNrcz1bW10sW10sW11dLHRoaXMuYXV0b1RpY2tzPSEwLHRoaXMudGlja1NwYWNpbmc9WzEsMSwxXSx0aGlzLnRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLnRpY2tGb250PVsic2Fucy1zZXJpZiIsInNhbnMtc2VyaWYiLCJzYW5zLXNlcmlmIl0sdGhpcy50aWNrU2l6ZT1bMTIsMTIsMTJdLHRoaXMudGlja0FuZ2xlPVswLDAsMF0sdGhpcy50aWNrQWxpZ249WyJhdXRvIiwiYXV0byIsImF1dG8iXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja1BhZD1bMTAsMTAsMTBdLHRoaXMubGFzdEN1YmVQcm9wcz17Y3ViZUVkZ2VzOlswLDAsMF0sYXhpczpbMCwwLDBdfSx0aGlzLmxhYmVscz1bIngiLCJ5IiwieiJdLHRoaXMubGFiZWxFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxhYmVsRm9udD0ic2Fucy1zZXJpZiIsdGhpcy5sYWJlbFNpemU9WzIwLDIwLDIwXSx0aGlzLmxhYmVsQW5nbGU9WzAsMCwwXSx0aGlzLmxhYmVsQWxpZ249WyJhdXRvIiwiYXV0byIsImF1dG8iXSx0aGlzLmxhYmVsQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVsUGFkPVsxMCwxMCwxMF0sdGhpcy5saW5lRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5saW5lTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXSx0aGlzLmxpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGluZVRpY2tFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxpbmVUaWNrTWlycm9yPVshMSwhMSwhMV0sdGhpcy5saW5lVGlja0xlbmd0aD1bMCwwLDBdLHRoaXMubGluZVRpY2tXaWR0aD1bMSwxLDFdLHRoaXMubGluZVRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZ3JpZEVuYWJsZT1bITAsITAsITBdLHRoaXMuZ3JpZFdpZHRoPVsxLDEsMV0sdGhpcy5ncmlkQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9FbmFibGU9WyEwLCEwLCEwXSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnplcm9MaW5lV2lkdGg9WzIsMiwyXSx0aGlzLmJhY2tncm91bmRFbmFibGU9WyExLCExLCExXSx0aGlzLmJhY2tncm91bmRDb2xvcj1bWy44LC44LC44LC41XSxbLjgsLjgsLjgsLjVdLFsuOCwuOCwuOCwuNV1dLHRoaXMuX2ZpcnN0SW5pdD0hMCx0aGlzLl90ZXh0PW51bGwsdGhpcy5fbGluZXM9bnVsbCx0aGlzLl9iYWNrZ3JvdW5kPWEodCl9dmFyIGY9dS5wcm90b3R5cGU7ZnVuY3Rpb24gaCgpe3RoaXMucHJpbWFsT2Zmc2V0PVswLDAsMF0sdGhpcy5wcmltYWxNaW5vcj1bMCwwLDBdLHRoaXMubWlycm9yT2Zmc2V0PVswLDAsMF0sdGhpcy5taXJyb3JNaW5vcj1bMCwwLDBdfWYudXBkYXRlPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyLG4pe2lmKG4gaW4gdCl7dmFyIGksYT10W25dLG89dGhpc1tuXTsoZT9BcnJheS5pc0FycmF5KGEpJiZBcnJheS5pc0FycmF5KGFbMF0pOkFycmF5LmlzQXJyYXkoYSkpP3RoaXNbbl09aT1bcihhWzBdKSxyKGFbMV0pLHIoYVsyXSldOnRoaXNbbl09aT1bcihhKSxyKGEpLHIoYSldO2Zvcih2YXIgcz0wO3M8MzsrK3MpaWYoaVtzXSE9PW9bc10pcmV0dXJuITB9cmV0dXJuITF9dD10fHx7fTt2YXIgcixhPWUuYmluZCh0aGlzLCExLE51bWJlciksbz1lLmJpbmQodGhpcywhMSxCb29sZWFuKSxsPWUuYmluZCh0aGlzLCExLFN0cmluZyksYz1lLmJpbmQodGhpcywhMCwoZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7aWYoMz09PXQubGVuZ3RoKXJldHVyblsrdFswXSwrdFsxXSwrdFsyXSwxXTtpZig0PT09dC5sZW5ndGgpcmV0dXJuWyt0WzBdLCt0WzFdLCt0WzJdLCt0WzNdXX1yZXR1cm5bMCwwLDAsMV19KSksdT0hMSxmPSExO2lmKCJib3VuZHMiaW4gdClmb3IodmFyIGg9dC5ib3VuZHMscD0wO3A8MjsrK3ApZm9yKHZhciBkPTA7ZDwzOysrZCloW3BdW2RdIT09dGhpcy5ib3VuZHNbcF1bZF0mJihmPSEwKSx0aGlzLmJvdW5kc1twXVtkXT1oW3BdW2RdO2lmKCJ0aWNrcyJpbiB0KXtyPXQudGlja3MsdT0hMCx0aGlzLmF1dG9UaWNrcz0hMTtmb3IocD0wO3A8MzsrK3ApdGhpcy50aWNrU3BhY2luZ1twXT0wfWVsc2UgYSgidGlja1NwYWNpbmciKSYmKHRoaXMuYXV0b1RpY2tzPSEwLGY9ITApO2lmKHRoaXMuX2ZpcnN0SW5pdCYmKCJ0aWNrcyJpbiB0fHwidGlja1NwYWNpbmciaW4gdHx8KHRoaXMuYXV0b1RpY2tzPSEwKSxmPSEwLHU9ITAsdGhpcy5fZmlyc3RJbml0PSExKSxmJiZ0aGlzLmF1dG9UaWNrcyYmKHI9cy5jcmVhdGUodGhpcy5ib3VuZHMsdGhpcy50aWNrU3BhY2luZyksdT0hMCksdSl7Zm9yKHA9MDtwPDM7KytwKXJbcF0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54LWUueH0pKTtzLmVxdWFsKHIsdGhpcy50aWNrcyk/dT0hMTp0aGlzLnRpY2tzPXJ9bygidGlja0VuYWJsZSIpLGwoInRpY2tGb250IikmJih1PSEwKSxhKCJ0aWNrU2l6ZSIpLGEoInRpY2tBbmdsZSIpLGEoInRpY2tQYWQiKSxjKCJ0aWNrQ29sb3IiKTt2YXIgbT1sKCJsYWJlbHMiKTtsKCJsYWJlbEZvbnQiKSYmKG09ITApLG8oImxhYmVsRW5hYmxlIiksYSgibGFiZWxTaXplIiksYSgibGFiZWxQYWQiKSxjKCJsYWJlbENvbG9yIiksbygibGluZUVuYWJsZSIpLG8oImxpbmVNaXJyb3IiKSxhKCJsaW5lV2lkdGgiKSxjKCJsaW5lQ29sb3IiKSxvKCJsaW5lVGlja0VuYWJsZSIpLG8oImxpbmVUaWNrTWlycm9yIiksYSgibGluZVRpY2tMZW5ndGgiKSxhKCJsaW5lVGlja1dpZHRoIiksYygibGluZVRpY2tDb2xvciIpLG8oImdyaWRFbmFibGUiKSxhKCJncmlkV2lkdGgiKSxjKCJncmlkQ29sb3IiKSxvKCJ6ZXJvRW5hYmxlIiksYygiemVyb0xpbmVDb2xvciIpLGEoInplcm9MaW5lV2lkdGgiKSxvKCJiYWNrZ3JvdW5kRW5hYmxlIiksYygiYmFja2dyb3VuZENvbG9yIiksdGhpcy5fdGV4dD90aGlzLl90ZXh0JiYobXx8dSkmJnRoaXMuX3RleHQudXBkYXRlKHRoaXMuYm91bmRzLHRoaXMubGFiZWxzLHRoaXMubGFiZWxGb250LHRoaXMudGlja3MsdGhpcy50aWNrRm9udCk6dGhpcy5fdGV4dD1uKHRoaXMuZ2wsdGhpcy5ib3VuZHMsdGhpcy5sYWJlbHMsdGhpcy5sYWJlbEZvbnQsdGhpcy50aWNrcyx0aGlzLnRpY2tGb250KSx0aGlzLl9saW5lcyYmdSYmKHRoaXMuX2xpbmVzLmRpc3Bvc2UoKSx0aGlzLl9saW5lcz1udWxsKSx0aGlzLl9saW5lc3x8KHRoaXMuX2xpbmVzPWkodGhpcy5nbCx0aGlzLmJvdW5kcyx0aGlzLnRpY2tzKSl9O3ZhciBwPVtuZXcgaCxuZXcgaCxuZXcgaF07ZnVuY3Rpb24gZCh0LGUscixuLGkpe2Zvcih2YXIgYT10LnByaW1hbE9mZnNldCxvPXQucHJpbWFsTWlub3Iscz10Lm1pcnJvck9mZnNldCxsPXQubWlycm9yTWlub3IsYz1uW2VdLHU9MDt1PDM7Kyt1KWlmKGUhPT11KXt2YXIgZj1hLGg9cyxwPW8sZD1sO2MmMTw8dSYmKGY9cyxoPWEscD1sLGQ9byksZlt1XT1yWzBdW3VdLGhbdV09clsxXVt1XSxpW3VdPjA/KHBbdV09LTEsZFt1XT0wKToocFt1XT0wLGRbdV09MSl9fXZhciBtPVswLDAsMF0sZz17bW9kZWw6bCx2aWV3OmwscHJvamVjdGlvbjpsLF9vcnRobzohMX07Zi5pc09wYXF1ZT1mdW5jdGlvbigpe3JldHVybiEwfSxmLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZi5kcmF3VHJhbnNwYXJlbnQ9ZnVuY3Rpb24odCl7fTt2YXIgdj1bMCwwLDBdLHk9WzAsMCwwXSx4PVswLDAsMF07Zi5kcmF3PWZ1bmN0aW9uKHQpe3Q9dHx8Zztmb3IodmFyIGU9dGhpcy5nbCxyPXQubW9kZWx8fGwsbj10LnZpZXd8fGwsaT10LnByb2plY3Rpb258fGwsYT10aGlzLmJvdW5kcyxzPXQuX29ydGhvfHwhMSx1PW8ocixuLGksYSxzKSxmPXUuY3ViZUVkZ2VzLGg9dS5heGlzLGI9blsxMl0sXz1uWzEzXSx3PW5bMTRdLFQ9blsxNV0saz0ocz8yOjEpKnRoaXMucGl4ZWxSYXRpbyooaVszXSpiK2lbN10qXytpWzExXSp3K2lbMTVdKlQpL2UuZHJhd2luZ0J1ZmZlckhlaWdodCxBPTA7QTwzOysrQSl0aGlzLmxhc3RDdWJlUHJvcHMuY3ViZUVkZ2VzW0FdPWZbQV0sdGhpcy5sYXN0Q3ViZVByb3BzLmF4aXNbQV09aFtBXTt2YXIgTT1wO2ZvcihBPTA7QTwzOysrQSlkKHBbQV0sQSx0aGlzLmJvdW5kcyxmLGgpO2U9dGhpcy5nbDt2YXIgUyxFPW07Zm9yKEE9MDtBPDM7KytBKXRoaXMuYmFja2dyb3VuZEVuYWJsZVtBXT9FW0FdPWhbQV06RVtBXT0wO3RoaXMuX2JhY2tncm91bmQuZHJhdyhyLG4saSxhLEUsdGhpcy5iYWNrZ3JvdW5kQ29sb3IpLHRoaXMuX2xpbmVzLmJpbmQocixuLGksdGhpcyk7Zm9yKEE9MDtBPDM7KytBKXt2YXIgTD1bMCwwLDBdO2hbQV0+MD9MW0FdPWFbMV1bQV06TFtBXT1hWzBdW0FdO2Zvcih2YXIgQz0wO0M8MjsrK0Mpe3ZhciBQPShBKzErQyklMyxJPShBKzErKDFeQykpJTM7dGhpcy5ncmlkRW5hYmxlW1BdJiZ0aGlzLl9saW5lcy5kcmF3R3JpZChQLEksdGhpcy5ib3VuZHMsTCx0aGlzLmdyaWRDb2xvcltQXSx0aGlzLmdyaWRXaWR0aFtQXSp0aGlzLnBpeGVsUmF0aW8pfWZvcihDPTA7QzwyOysrQyl7UD0oQSsxK0MpJTMsST0oQSsxKygxXkMpKSUzO3RoaXMuemVyb0VuYWJsZVtJXSYmTWF0aC5taW4oYVswXVtJXSxhWzFdW0ldKTw9MCYmTWF0aC5tYXgoYVswXVtJXSxhWzFdW0ldKT49MCYmdGhpcy5fbGluZXMuZHJhd1plcm8oUCxJLHRoaXMuYm91bmRzLEwsdGhpcy56ZXJvTGluZUNvbG9yW0ldLHRoaXMuemVyb0xpbmVXaWR0aFtJXSp0aGlzLnBpeGVsUmF0aW8pfX1mb3IoQT0wO0E8MzsrK0Epe3RoaXMubGluZUVuYWJsZVtBXSYmdGhpcy5fbGluZXMuZHJhd0F4aXNMaW5lKEEsdGhpcy5ib3VuZHMsTVtBXS5wcmltYWxPZmZzZXQsdGhpcy5saW5lQ29sb3JbQV0sdGhpcy5saW5lV2lkdGhbQV0qdGhpcy5waXhlbFJhdGlvKSx0aGlzLmxpbmVNaXJyb3JbQV0mJnRoaXMuX2xpbmVzLmRyYXdBeGlzTGluZShBLHRoaXMuYm91bmRzLE1bQV0ubWlycm9yT2Zmc2V0LHRoaXMubGluZUNvbG9yW0FdLHRoaXMubGluZVdpZHRoW0FdKnRoaXMucGl4ZWxSYXRpbyk7dmFyIE89Yyh2LE1bQV0ucHJpbWFsTWlub3IpLHo9Yyh5LE1bQV0ubWlycm9yTWlub3IpLEQ9dGhpcy5saW5lVGlja0xlbmd0aDtmb3IoQz0wO0M8MzsrK0Mpe3ZhciBSPWsvcls1KkNdO09bQ10qPURbQ10qUix6W0NdKj1EW0NdKlJ9dGhpcy5saW5lVGlja0VuYWJsZVtBXSYmdGhpcy5fbGluZXMuZHJhd0F4aXNUaWNrcyhBLE1bQV0ucHJpbWFsT2Zmc2V0LE8sdGhpcy5saW5lVGlja0NvbG9yW0FdLHRoaXMubGluZVRpY2tXaWR0aFtBXSp0aGlzLnBpeGVsUmF0aW8pLHRoaXMubGluZVRpY2tNaXJyb3JbQV0mJnRoaXMuX2xpbmVzLmRyYXdBeGlzVGlja3MoQSxNW0FdLm1pcnJvck9mZnNldCx6LHRoaXMubGluZVRpY2tDb2xvcltBXSx0aGlzLmxpbmVUaWNrV2lkdGhbQV0qdGhpcy5waXhlbFJhdGlvKX10aGlzLl9saW5lcy51bmJpbmQoKSx0aGlzLl90ZXh0LmJpbmQocixuLGksdGhpcy5waXhlbFJhdGlvKTt2YXIgRixCO2Z1bmN0aW9uIE4odCl7KEI9WzAsMCwwXSlbdF09MX1mdW5jdGlvbiBqKHQsZSxyKXt2YXIgbj0odCsxKSUzLGk9KHQrMiklMyxhPWVbbl0sbz1lW2ldLHM9cltuXSxsPXJbaV07YT4wJiZsPjB8fGE+MCYmbDwwfHxhPDAmJmw+MHx8YTwwJiZsPDA/TihuKToobz4wJiZzPjB8fG8+MCYmczwwfHxvPDAmJnM+MHx8bzwwJiZzPDApJiZOKGkpfWZvcihBPTA7QTwzOysrQSl7dmFyIFU9TVtBXS5wcmltYWxNaW5vcixWPU1bQV0ubWlycm9yTWlub3IsSD1jKHgsTVtBXS5wcmltYWxPZmZzZXQpO2ZvcihDPTA7QzwzOysrQyl0aGlzLmxpbmVUaWNrRW5hYmxlW0FdJiYoSFtDXSs9aypVW0NdKk1hdGgubWF4KHRoaXMubGluZVRpY2tMZW5ndGhbQ10sMCkvcls1KkNdKTt2YXIgcT1bMCwwLDBdO2lmKHFbQV09MSx0aGlzLnRpY2tFbmFibGVbQV0pey0zNjAwPT09dGhpcy50aWNrQW5nbGVbQV0/KHRoaXMudGlja0FuZ2xlW0FdPTAsdGhpcy50aWNrQWxpZ25bQV09ImF1dG8iKTp0aGlzLnRpY2tBbGlnbltBXT0tMSxGPTEsImF1dG8iPT09KFM9W3RoaXMudGlja0FsaWduW0FdLC41LEZdKVswXT9TWzBdPTA6U1swXT1wYXJzZUludCgiIitTWzBdKSxCPVswLDAsMF0saihBLFUsVik7Zm9yKEM9MDtDPDM7KytDKUhbQ10rPWsqVVtDXSp0aGlzLnRpY2tQYWRbQ10vcls1KkNdO3RoaXMuX3RleHQuZHJhd1RpY2tzKEEsdGhpcy50aWNrU2l6ZVtBXSx0aGlzLnRpY2tBbmdsZVtBXSxILHRoaXMudGlja0NvbG9yW0FdLHEsQixTKX1pZih0aGlzLmxhYmVsRW5hYmxlW0FdKXtGPTAsQj1bMCwwLDBdLHRoaXMubGFiZWxzW0FdLmxlbmd0aD40JiYoTihBKSxGPTEpLCJhdXRvIj09PShTPVt0aGlzLmxhYmVsQWxpZ25bQV0sLjUsRl0pWzBdP1NbMF09MDpTWzBdPXBhcnNlSW50KCIiK1NbMF0pO2ZvcihDPTA7QzwzOysrQylIW0NdKz1rKlVbQ10qdGhpcy5sYWJlbFBhZFtDXS9yWzUqQ107SFtBXSs9LjUqKGFbMF1bQV0rYVsxXVtBXSksdGhpcy5fdGV4dC5kcmF3TGFiZWwoQSx0aGlzLmxhYmVsU2l6ZVtBXSx0aGlzLmxhYmVsQW5nbGVbQV0sSCx0aGlzLmxhYmVsQ29sb3JbQV0sWzAsMCwwXSxCLFMpfX10aGlzLl90ZXh0LnVuYmluZCgpfSxmLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLl90ZXh0LmRpc3Bvc2UoKSx0aGlzLl9saW5lcy5kaXNwb3NlKCksdGhpcy5fYmFja2dyb3VuZC5kaXNwb3NlKCksdGhpcy5fbGluZXM9bnVsbCx0aGlzLl90ZXh0PW51bGwsdGhpcy5fYmFja2dyb3VuZD1udWxsLHRoaXMuZ2w9bnVsbH19LHsiLi9saWIvYmFja2dyb3VuZC5qcyI6MjUwLCIuL2xpYi9jdWJlLmpzIjoyNTEsIi4vbGliL2xpbmVzLmpzIjoyNTIsIi4vbGliL3RleHQuanMiOjI1NCwiLi9saWIvdGlja3MuanMiOjI1NX1dLDI1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9W10scz0wLGw9MDtsPDM7KytsKWZvcih2YXIgYz0obCsxKSUzLHU9KGwrMiklMyxmPVswLDAsMF0saD1bMCwwLDBdLHA9LTE7cDw9MTtwKz0yKXtyLnB1c2gocyxzKzIscysxLHMrMSxzKzIscyszKSxmW2xdPXAsaFtsXT1wO2Zvcih2YXIgZD0tMTtkPD0xO2QrPTIpe2ZbY109ZDtmb3IodmFyIG09LTE7bTw9MTttKz0yKWZbdV09bSxlLnB1c2goZlswXSxmWzFdLGZbMl0saFswXSxoWzFdLGhbMl0pLHMrPTF9dmFyIGc9YztjPXUsdT1nfXZhciB2PW4odCxuZXcgRmxvYXQzMkFycmF5KGUpKSx5PW4odCxuZXcgVWludDE2QXJyYXkociksdC5FTEVNRU5UX0FSUkFZX0JVRkZFUikseD1pKHQsW3tidWZmZXI6dix0eXBlOnQuRkxPQVQsc2l6ZTozLG9mZnNldDowLHN0cmlkZToyNH0se2J1ZmZlcjp2LHR5cGU6dC5GTE9BVCxzaXplOjMsb2Zmc2V0OjEyLHN0cmlkZToyNH1dLHkpLGI9YSh0KTtyZXR1cm4gYi5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsYi5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0xLG5ldyBvKHQsdix4LGIpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLGE9dCgiLi9zaGFkZXJzIikuYmc7ZnVuY3Rpb24gbyh0LGUscixuKXt0aGlzLmdsPXQsdGhpcy5idWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMuc2hhZGVyPW59dmFyIHM9by5wcm90b3R5cGU7cy5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtmb3IodmFyIG89ITEscz0wO3M8MzsrK3Mpbz1vfHxpW3NdO2lmKG8pe3ZhciBsPXRoaXMuZ2w7bC5lbmFibGUobC5QT0xZR09OX09GRlNFVF9GSUxMKSxsLnBvbHlnb25PZmZzZXQoMSwyKSx0aGlzLnNoYWRlci5iaW5kKCksdGhpcy5zaGFkZXIudW5pZm9ybXM9e21vZGVsOnQsdmlldzplLHByb2plY3Rpb246cixib3VuZHM6bixlbmFibGU6aSxjb2xvcnM6YX0sdGhpcy52YW8uYmluZCgpLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsMzYpLHRoaXMudmFvLnVuYmluZCgpLGwuZGlzYWJsZShsLlBPTFlHT05fT0ZGU0VUX0ZJTEwpfX0scy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52YW8uZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycyI6MjUzLCJnbC1idWZmZXIiOjI1NywiZ2wtdmFvIjozNDN9XSwyNTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEscCl7aShzLGUsdCksaShzLHIscyk7Zm9yKHZhciB5PTAseD0wO3g8MjsrK3gpe3VbMl09YVt4XVsyXTtmb3IodmFyIGI9MDtiPDI7KytiKXt1WzFdPWFbYl1bMV07Zm9yKHZhciBfPTA7XzwyOysrXyl1WzBdPWFbX11bMF0saChsW3ldLHUscykseSs9MX19dmFyIHc9LTE7Zm9yKHg9MDt4PDg7Kyt4KXtmb3IodmFyIFQ9bFt4XVszXSxrPTA7azwzOysrayljW3hdW2tdPWxbeF1ba10vVDtwJiYoY1t4XVsyXSo9LTEpLFQ8MCYmKHc8MHx8Y1t4XVsyXTxjW3ddWzJdKSYmKHc9eCl9aWYodzwwKXt3PTA7Zm9yKHZhciBBPTA7QTwzOysrQSl7Zm9yKHZhciBNPShBKzIpJTMsUz0oQSsxKSUzLEU9LTEsTD0tMSxDPTA7QzwyOysrQyl7dmFyIFA9KE89Qzw8QSkrKEM8PE0pKygxLUM8PFMpLEk9TysoMS1DPDxNKSsoQzw8Uyk7byhjW09dLGNbUF0sY1tJXSxmKTwwfHwoQz9FPTE6TD0xKX1pZihFPDB8fEw8MClMPkUmJih3fD0xPDxBKTtlbHNle2ZvcihDPTA7QzwyOysrQyl7UD0oTz1DPDxBKSsoQzw8TSkrKDEtQzw8UyksST1PKygxLUM8PE0pKyhDPDxTKTt2YXIgTyx6PWQoW2xbT10sbFtQXSxsW0ldLGxbTysoMTw8TSkrKDE8PFMpXV0pO0M/RT16Okw9en1MPkUmJih3fD0xPDxBKX19fXZhciBEPTdedyxSPS0xO2Zvcih4PTA7eDw4OysreCl4IT09dyYmeCE9PUQmJihSPDB8fGNbUl1bMV0+Y1t4XVsxXSkmJihSPXgpO3ZhciBGPS0xO2Zvcih4PTA7eDwzOysreCl7aWYoKE49Ul4xPDx4KSE9PXcmJk4hPT1EKUY8MCYmKEY9TiksKFM9Y1tOXSlbMF08Y1tGXVswXSYmKEY9Til9dmFyIEI9LTE7Zm9yKHg9MDt4PDM7Kyt4KXt2YXIgTjtpZigoTj1SXjE8PHgpIT09dyYmTiE9PUQmJk4hPT1GKUI8MCYmKEI9TiksKFM9Y1tOXSlbMF0+Y1tCXVswXSYmKEI9Til9dmFyIGo9bTtqWzBdPWpbMV09alsyXT0wLGpbbi5sb2cyKEZeUildPVImRixqW24ubG9nMihSXkIpXT1SJkI7dmFyIFU9N15CO1U9PT13fHxVPT09RD8oVT03XkYsaltuLmxvZzIoQl5VKV09VSZCKTpqW24ubG9nMihGXlUpXT1VJkY7dmFyIFY9ZyxIPXc7Zm9yKEE9MDtBPDM7KytBKVZbQV09SCYxPDxBPy0xOjE7cmV0dXJuIHZ9O3ZhciBuPXQoImJpdC10d2lkZGxlIiksaT10KCJnbC1tYXQ0L211bHRpcGx5IiksYT10KCJzcGxpdC1wb2x5Z29uIiksbz10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxzPW5ldyBBcnJheSgxNiksbD1uZXcgQXJyYXkoOCksYz1uZXcgQXJyYXkoOCksdT1uZXcgQXJyYXkoMyksZj1bMCwwLDBdO2Z1bmN0aW9uIGgodCxlLHIpe2Zvcih2YXIgbj0wO248NDsrK24pe3Rbbl09clsxMituXTtmb3IodmFyIGk9MDtpPDM7KytpKXRbbl0rPWVbaV0qcls0Kmkrbl19fSFmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ODsrK3QpbFt0XT1bMSwxLDEsMV0sY1t0XT1bMSwxLDFdfSgpO3ZhciBwPVtbMCwwLDEsMCwwXSxbMCwwLC0xLDEsMF0sWzAsLTEsMCwxLDBdLFswLDEsMCwxLDBdLFstMSwwLDAsMSwwXSxbMSwwLDAsMSwwXV07ZnVuY3Rpb24gZCh0KXtmb3IodmFyIGU9MDtlPHAubGVuZ3RoOysrZSlpZigodD1hLnBvc2l0aXZlKHQscFtlXSkpLmxlbmd0aDwzKXJldHVybiAwO3ZhciByPXRbMF0sbj1yWzBdL3JbM10saT1yWzFdL3JbM10sbz0wO2ZvcihlPTE7ZSsxPHQubGVuZ3RoOysrZSl7dmFyIHM9dFtlXSxsPXRbZSsxXSxjPXNbMF0vc1szXS1uLHU9c1sxXS9zWzNdLWksZj1sWzBdL2xbM10tbixoPWxbMV0vbFszXS1pO28rPU1hdGguYWJzKGMqaC11KmYpfXJldHVybiBvfXZhciBtPVsxLDEsMV0sZz1bMCwwLDBdLHY9e2N1YmVFZGdlczptLGF4aXM6Z319LHsiYml0LXR3aWRkbGUiOjEwMSwiZ2wtbWF0NC9tdWx0aXBseSI6Mjg5LCJyb2J1c3Qtb3JpZW50YXRpb24iOjUyNCwic3BsaXQtcG9seWdvbiI6NTQxfV0sMjUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG89W10scz1bMCwwLDBdLGw9WzAsMCwwXSxjPVswLDAsMF0sdT1bMCwwLDBdO28ucHVzaCgwLDAsMSwwLDEsMSwwLDAsLTEsMCwwLC0xLDAsMSwxLDAsMSwtMSk7Zm9yKHZhciBmPTA7ZjwzOysrZil7Zm9yKHZhciBoPW8ubGVuZ3RoLzN8MCxkPTA7ZDxyW2ZdLmxlbmd0aDsrK2Qpe3ZhciBtPStyW2ZdW2RdLng7by5wdXNoKG0sMCwxLG0sMSwxLG0sMCwtMSxtLDAsLTEsbSwxLDEsbSwxLC0xKX12YXIgZz1vLmxlbmd0aC8zfDA7c1tmXT1oLGxbZl09Zy1oO2g9by5sZW5ndGgvM3wwO2Zvcih2YXIgdj0wO3Y8cltmXS5sZW5ndGg7Kyt2KXttPStyW2ZdW3ZdLng7by5wdXNoKG0sMCwxLG0sMSwxLG0sMCwtMSxtLDAsLTEsbSwxLDEsbSwxLC0xKX1nPW8ubGVuZ3RoLzN8MDtjW2ZdPWgsdVtmXT1nLWh9dmFyIHk9bih0LG5ldyBGbG9hdDMyQXJyYXkobykpLHg9aSh0LFt7YnVmZmVyOnksdHlwZTp0LkZMT0FULHNpemU6MyxzdHJpZGU6MCxvZmZzZXQ6MH1dKSxiPWEodCk7cmV0dXJuIGIuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLG5ldyBwKHQseSx4LGIsbCxzLHUsYyl9O3ZhciBuPXQoImdsLWJ1ZmZlciIpLGk9dCgiZ2wtdmFvIiksYT10KCIuL3NoYWRlcnMiKS5saW5lLG89WzAsMCwwXSxzPVswLDAsMF0sbD1bMCwwLDBdLGM9WzAsMCwwXSx1PVsxLDFdO2Z1bmN0aW9uIGYodCl7cmV0dXJuIHRbMF09dFsxXT10WzJdPTAsdH1mdW5jdGlvbiBoKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHR9ZnVuY3Rpb24gcCh0LGUscixuLGksYSxvLHMpe3RoaXMuZ2w9dCx0aGlzLnZlcnRCdWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMuc2hhZGVyPW4sdGhpcy50aWNrQ291bnQ9aSx0aGlzLnRpY2tPZmZzZXQ9YSx0aGlzLmdyaWRDb3VudD1vLHRoaXMuZ3JpZE9mZnNldD1zfXZhciBkPXAucHJvdG90eXBlO2QuYmluZD1mdW5jdGlvbih0LGUscil7dGhpcy5zaGFkZXIuYmluZCgpLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1vZGVsPXQsdGhpcy5zaGFkZXIudW5pZm9ybXMudmlldz1lLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnByb2plY3Rpb249cix1WzBdPXRoaXMuZ2wuZHJhd2luZ0J1ZmZlcldpZHRoLHVbMV09dGhpcy5nbC5kcmF3aW5nQnVmZmVySGVpZ2h0LHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjcmVlblNoYXBlPXUsdGhpcy52YW8uYmluZCgpfSxkLnVuYmluZD1mdW5jdGlvbigpe3RoaXMudmFvLnVuYmluZCgpfSxkLmRyYXdBeGlzTGluZT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPWYocyk7dGhpcy5zaGFkZXIudW5pZm9ybXMubWFqb3JBeGlzPXMsYVt0XT1lWzFdW3RdLWVbMF1bdF0sdGhpcy5zaGFkZXIudW5pZm9ybXMubWlub3JBeGlzPWE7dmFyIG8sdT1oKGMscik7dVt0XSs9ZVswXVt0XSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9dSx0aGlzLnNoYWRlci51bmlmb3Jtcy5saW5lV2lkdGg9aSx0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1uLChvPWYobCkpWyh0KzIpJTNdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NyZWVuQXhpcz1vLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsNiksKG89ZihsKSlbKHQrMSklM109MSx0aGlzLnNoYWRlci51bmlmb3Jtcy5zY3JlZW5BeGlzPW8sdGhpcy52YW8uZHJhdyh0aGlzLmdsLlRSSUFOR0xFUyw2KX0sZC5kcmF3QXhpc1RpY2tzPWZ1bmN0aW9uKHQsZSxyLG4saSl7aWYodGhpcy50aWNrQ291bnRbdF0pe3ZhciBhPWYobyk7YVt0XT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1ham9yQXhpcz1hLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD1lLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1pbm9yQXhpcz1yLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPW4sdGhpcy5zaGFkZXIudW5pZm9ybXMubGluZVdpZHRoPWk7dmFyIHM9ZihsKTtzW3RdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NyZWVuQXhpcz1zLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsdGhpcy50aWNrQ291bnRbdF0sdGhpcy50aWNrT2Zmc2V0W3RdKX19LGQuZHJhd0dyaWQ9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2lmKHRoaXMuZ3JpZENvdW50W3RdKXt2YXIgdT1mKHMpO3VbZV09clsxXVtlXS1yWzBdW2VdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1pbm9yQXhpcz11O3ZhciBwPWgoYyxuKTtwW2VdKz1yWzBdW2VdLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD1wO3ZhciBkPWYobyk7ZFt0XT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm1ham9yQXhpcz1kO3ZhciBtPWYobCk7bVt0XT0xLHRoaXMuc2hhZGVyLnVuaWZvcm1zLnNjcmVlbkF4aXM9bSx0aGlzLnNoYWRlci51bmlmb3Jtcy5saW5lV2lkdGg9YSx0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1pLHRoaXMudmFvLmRyYXcodGhpcy5nbC5UUklBTkdMRVMsdGhpcy5ncmlkQ291bnRbdF0sdGhpcy5ncmlkT2Zmc2V0W3RdKX19LGQuZHJhd1plcm89ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPWYocyk7dGhpcy5zaGFkZXIudW5pZm9ybXMubWFqb3JBeGlzPW8sb1t0XT1yWzFdW3RdLXJbMF1bdF0sdGhpcy5zaGFkZXIudW5pZm9ybXMubWlub3JBeGlzPW87dmFyIHU9aChjLG4pO3VbdF0rPXJbMF1bdF0sdGhpcy5zaGFkZXIudW5pZm9ybXMub2Zmc2V0PXU7dmFyIHA9ZihsKTtwW2VdPTEsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NyZWVuQXhpcz1wLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmxpbmVXaWR0aD1hLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPWksdGhpcy52YW8uZHJhdyh0aGlzLmdsLlRSSUFOR0xFUyw2KX0sZC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52YW8uZGlzcG9zZSgpLHRoaXMudmVydEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5zaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMiOjI1MywiZ2wtYnVmZmVyIjoyNTcsImdsLXZhbyI6MzQzfV0sMjUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsc2xpZnkiKSxpPXQoImdsLXNoYWRlciIpLGE9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgb2Zmc2V0LCBtYWpvckF4aXMsIG1pbm9yQXhpcywgc2NyZWVuQXhpcztcbnVuaWZvcm0gZmxvYXQgbGluZVdpZHRoO1xudW5pZm9ybSB2ZWMyIHNjcmVlblNoYXBlO1xuXG52ZWMzIHByb2plY3QodmVjMyBwKSB7XG4gIHZlYzQgcHAgPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwLCAxLjApO1xuICByZXR1cm4gcHAueHl6IC8gbWF4KHBwLncsIDAuMDAwMSk7XG59XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMyBtYWpvciA9IHBvc2l0aW9uLnggKiBtYWpvckF4aXM7XG4gIHZlYzMgbWlub3IgPSBwb3NpdGlvbi55ICogbWlub3JBeGlzO1xuXG4gIHZlYzMgdlBvc2l0aW9uID0gbWFqb3IgKyBtaW5vciArIG9mZnNldDtcbiAgdmVjMyBwUG9zaXRpb24gPSBwcm9qZWN0KHZQb3NpdGlvbik7XG4gIHZlYzMgb2Zmc2V0ID0gcHJvamVjdCh2UG9zaXRpb24gKyBzY3JlZW5BeGlzICogcG9zaXRpb24ueik7XG5cbiAgdmVjMiBzY3JlZW4gPSBub3JtYWxpemUoKG9mZnNldCAtIHBQb3NpdGlvbikueHkgKiBzY3JlZW5TaGFwZSkgLyBzY3JlZW5TaGFwZTtcblxuICBnbF9Qb3NpdGlvbiA9IHZlYzQocFBvc2l0aW9uICsgdmVjMygwLjUgKiBzY3JlZW4gKiBsaW5lV2lkdGgsIDApLCAxLjApO1xufVxuIl0pLG89bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gdmVjNCBjb2xvcjtcbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7XG59Il0pO3IubGluZT1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LGEsbyxudWxsLFt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifV0pfTt2YXIgcz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMyBvZmZzZXQsIGF4aXMsIGFsaWduRGlyLCBhbGlnbk9wdDtcbnVuaWZvcm0gZmxvYXQgc2NhbGUsIGFuZ2xlLCBwaXhlbFNjYWxlO1xudW5pZm9ybSB2ZWMyIHJlc29sdXRpb247XG5cbnZlYzMgcHJvamVjdCh2ZWMzIHApIHtcbiAgdmVjNCBwcCA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHAsIDEuMCk7XG4gIHJldHVybiBwcC54eXogLyBtYXgocHAudywgMC4wMDAxKTtcbn1cblxuZmxvYXQgY29tcHV0ZVZpZXdBbmdsZSh2ZWMzIGEsIHZlYzMgYikge1xuICB2ZWMzIEEgPSBwcm9qZWN0KGEpO1xuICB2ZWMzIEIgPSBwcm9qZWN0KGIpO1xuXG4gIHJldHVybiBhdGFuKFxuICAgIChCLnkgLSBBLnkpICogcmVzb2x1dGlvbi55LFxuICAgIChCLnggLSBBLngpICogcmVzb2x1dGlvbi54XG4gICk7XG59XG5cbmNvbnN0IGZsb2F0IFBJID0gMy4xNDE1OTI7XG5jb25zdCBmbG9hdCBUV09fUEkgPSAyLjAgKiBQSTtcbmNvbnN0IGZsb2F0IEhBTEZfUEkgPSAwLjUgKiBQSTtcbmNvbnN0IGZsb2F0IE9ORV9BTkRfSEFMRl9QSSA9IDEuNSAqIFBJO1xuXG5pbnQgb3B0aW9uID0gaW50KGZsb29yKGFsaWduT3B0LnggKyAwLjAwMSkpO1xuZmxvYXQgaHZfcmF0aW8gPSAgICAgICBhbGlnbk9wdC55O1xuYm9vbCBlbmFibGVBbGlnbiA9ICAgIChhbGlnbk9wdC56ICE9IDAuMCk7XG5cbmZsb2F0IG1vZF9hbmdsZShmbG9hdCBhKSB7XG4gIHJldHVybiBtb2QoYSwgUEkpO1xufVxuXG5mbG9hdCBwb3NpdGl2ZV9hbmdsZShmbG9hdCBhKSB7XG4gIHJldHVybiBtb2RfYW5nbGUoKGEgPCAwLjApID9cbiAgICBhICsgVFdPX1BJIDpcbiAgICBhXG4gICk7XG59XG5cbmZsb2F0IGxvb2tfdXB3YXJkcyhmbG9hdCBhKSB7XG4gIGZsb2F0IGIgPSBwb3NpdGl2ZV9hbmdsZShhKTtcbiAgcmV0dXJuICgoYiA+IEhBTEZfUEkpICYmIChiIDw9IE9ORV9BTkRfSEFMRl9QSSkpID9cbiAgICBiIC0gUEkgOlxuICAgIGI7XG59XG5cbmZsb2F0IGxvb2tfaG9yaXpvbnRhbF9vcl92ZXJ0aWNhbChmbG9hdCBhLCBmbG9hdCByYXRpbykge1xuICAvLyByYXRpbyBjb250cm9scyB0aGUgcmF0aW8gYmV0d2VlbiBiZWluZyBob3Jpem9udGFsIHRvICh2ZXJ0aWNhbCArIGhvcml6b250YWwpXG4gIC8vIGlmIHJhdGlvIGlzIHNldCB0byAwLjUgdGhlbiBpdCBpcyA1MCUsIDUwJS5cbiAgLy8gd2hlbiB1c2luZyBhIGhpZ2hlciByYXRpbyBlLmcuIDAuNzUgdGhlIHJlc3VsdCB3b3VsZFxuICAvLyBsaWtlbHkgYmUgbW9yZSBob3Jpem9udGFsIHRoYW4gdmVydGljYWwuXG5cbiAgZmxvYXQgYiA9IHBvc2l0aXZlX2FuZ2xlKGEpO1xuXG4gIHJldHVyblxuICAgIChiIDwgKCAgICAgIHJhdGlvKSAqIEhBTEZfUEkpID8gMC4wIDpcbiAgICAoYiA8ICgyLjAgLSByYXRpbykgKiBIQUxGX1BJKSA/IC1IQUxGX1BJIDpcbiAgICAoYiA8ICgyLjAgKyByYXRpbykgKiBIQUxGX1BJKSA/IDAuMCA6XG4gICAgKGIgPCAoNC4wIC0gcmF0aW8pICogSEFMRl9QSSkgPyBIQUxGX1BJIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAuMDtcbn1cblxuZmxvYXQgcm91bmRUbyhmbG9hdCBhLCBmbG9hdCBiKSB7XG4gIHJldHVybiBmbG9hdChiICogZmxvb3IoKGEgKyAwLjUgKiBiKSAvIGIpKTtcbn1cblxuZmxvYXQgbG9va19yb3VuZF9uX2RpcmVjdGlvbnMoZmxvYXQgYSwgaW50IG4pIHtcbiAgZmxvYXQgYiA9IHBvc2l0aXZlX2FuZ2xlKGEpO1xuICBmbG9hdCBkaXYgPSBUV09fUEkgLyBmbG9hdChuKTtcbiAgZmxvYXQgYyA9IHJvdW5kVG8oYiwgZGl2KTtcbiAgcmV0dXJuIGxvb2tfdXB3YXJkcyhjKTtcbn1cblxuZmxvYXQgYXBwbHlBbGlnbk9wdGlvbihmbG9hdCByYXdBbmdsZSwgZmxvYXQgZGVsdGEpIHtcbiAgcmV0dXJuXG4gICAgKG9wdGlvbiA+ICAyKSA/IGxvb2tfcm91bmRfbl9kaXJlY3Rpb25zKHJhd0FuZ2xlICsgZGVsdGEsIG9wdGlvbikgOiAgICAgICAvLyBvcHRpb24gMy1uOiByb3VuZCB0byBuIGRpcmVjdGlvbnNcbiAgICAob3B0aW9uID09IDIpID8gbG9va19ob3Jpem9udGFsX29yX3ZlcnRpY2FsKHJhd0FuZ2xlICsgZGVsdGEsIGh2X3JhdGlvKSA6IC8vIGhvcml6b250YWwgb3IgdmVydGljYWxcbiAgICAob3B0aW9uID09IDEpID8gcmF3QW5nbGUgKyBkZWx0YSA6ICAgICAgIC8vIHVzZSBmcmVlIGFuZ2xlLCBhbmQgZmxpcCB0byBhbGlnbiB3aXRoIG9uZSBkaXJlY3Rpb24gb2YgdGhlIGF4aXNcbiAgICAob3B0aW9uID09IDApID8gbG9va191cHdhcmRzKHJhd0FuZ2xlKSA6IC8vIHVzZSBmcmVlIGFuZ2xlLCBhbmQgc3RheSB1cHdhcmRzXG4gICAgKG9wdGlvbiA9PS0xKSA/IDAuMCA6ICAgICAgICAgICAgICAgICAgICAvLyB1c2VmdWwgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGFsbCB0ZXh0cyByZW1haW5zIGhvcml6b250YWxcbiAgICAgICAgICAgICAgICAgICAgcmF3QW5nbGU7ICAgICAgICAgICAgICAgIC8vIG90aGVyd2lzZSByZXR1cm4gYmFjayByYXcgaW5wdXQgYW5nbGVcbn1cblxuYm9vbCBpc0F4aXNUaXRsZSA9IChheGlzLnggPT0gMC4wKSAmJlxuICAgICAgICAgICAgICAgICAgIChheGlzLnkgPT0gMC4wKSAmJlxuICAgICAgICAgICAgICAgICAgIChheGlzLnogPT0gMC4wKTtcblxudm9pZCBtYWluKCkge1xuICAvL0NvbXB1dGUgd29ybGQgb2Zmc2V0XG4gIGZsb2F0IGF4aXNEaXN0YW5jZSA9IHBvc2l0aW9uLno7XG4gIHZlYzMgZGF0YVBvc2l0aW9uID0gYXhpc0Rpc3RhbmNlICogYXhpcyArIG9mZnNldDtcblxuICBmbG9hdCBiZXRhID0gYW5nbGU7IC8vIGkuZS4gdXNlciBkZWZpbmVkIGF0dHJpYnV0ZXMgZm9yIGVhY2ggdGlja1xuXG4gIGZsb2F0IGF4aXNBbmdsZTtcbiAgZmxvYXQgY2xpcEFuZ2xlO1xuICBmbG9hdCBmbGlwO1xuXG4gIGlmIChlbmFibGVBbGlnbikge1xuICAgIGF4aXNBbmdsZSA9IChpc0F4aXNUaXRsZSkgPyBIQUxGX1BJIDpcbiAgICAgICAgICAgICAgICAgICAgICBjb21wdXRlVmlld0FuZ2xlKGRhdGFQb3NpdGlvbiwgZGF0YVBvc2l0aW9uICsgYXhpcyk7XG4gICAgY2xpcEFuZ2xlID0gY29tcHV0ZVZpZXdBbmdsZShkYXRhUG9zaXRpb24sIGRhdGFQb3NpdGlvbiArIGFsaWduRGlyKTtcblxuICAgIGF4aXNBbmdsZSArPSAoc2luKGF4aXNBbmdsZSkgPCAwLjApID8gUEkgOiAwLjA7XG4gICAgY2xpcEFuZ2xlICs9IChzaW4oY2xpcEFuZ2xlKSA8IDAuMCkgPyBQSSA6IDAuMDtcblxuICAgIGZsaXAgPSAoZG90KHZlYzIoY29zKGF4aXNBbmdsZSksIHNpbihheGlzQW5nbGUpKSxcbiAgICAgICAgICAgICAgICB2ZWMyKHNpbihjbGlwQW5nbGUpLC1jb3MoY2xpcEFuZ2xlKSkpID4gMC4wKSA/IDEuMCA6IDAuMDtcblxuICAgIGJldGEgKz0gYXBwbHlBbGlnbk9wdGlvbihjbGlwQW5nbGUsIGZsaXAgKiBQSSk7XG4gIH1cblxuICAvL0NvbXB1dGUgcGxhbmUgb2Zmc2V0XG4gIHZlYzIgcGxhbmVDb29yZCA9IHBvc2l0aW9uLnh5ICogcGl4ZWxTY2FsZTtcblxuICBtYXQyIHBsYW5lWGZvcm0gPSBzY2FsZSAqIG1hdDIoXG4gICAgIGNvcyhiZXRhKSwgc2luKGJldGEpLFxuICAgIC1zaW4oYmV0YSksIGNvcyhiZXRhKVxuICApO1xuXG4gIHZlYzIgdmlld09mZnNldCA9IDIuMCAqIHBsYW5lWGZvcm0gKiBwbGFuZUNvb3JkIC8gcmVzb2x1dGlvbjtcblxuICAvL0NvbXB1dGUgY2xpcCBwb3NpdGlvblxuICB2ZWMzIGNsaXBQb3NpdGlvbiA9IHByb2plY3QoZGF0YVBvc2l0aW9uKTtcblxuICAvL0FwcGx5IHRleHQgb2Zmc2V0IGluIGNsaXAgY29vcmRpbmF0ZXNcbiAgY2xpcFBvc2l0aW9uICs9IHZlYzModmlld09mZnNldCwgMC4wKTtcblxuICAvL0RvbmVcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KGNsaXBQb3NpdGlvbiwgMS4wKTtcbn0iXSksbD1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudm9pZCBtYWluKCkge1xuICBnbF9GcmFnQ29sb3IgPSBjb2xvcjtcbn0iXSk7ci50ZXh0PWZ1bmN0aW9uKHQpe3JldHVybiBpKHQscyxsLG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9XSl9O3ZhciBjPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWMzIG5vcm1hbDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSB2ZWMzIGVuYWJsZTtcbnVuaWZvcm0gdmVjMyBib3VuZHNbMl07XG5cbnZhcnlpbmcgdmVjMyBjb2xvckNoYW5uZWw7XG5cbnZvaWQgbWFpbigpIHtcblxuICB2ZWMzIHNpZ25BeGlzID0gc2lnbihib3VuZHNbMV0gLSBib3VuZHNbMF0pO1xuXG4gIHZlYzMgcmVhbE5vcm1hbCA9IHNpZ25BeGlzICogbm9ybWFsO1xuXG4gIGlmKGRvdChyZWFsTm9ybWFsLCBlbmFibGUpID4gMC4wKSB7XG4gICAgdmVjMyBtaW5SYW5nZSA9IG1pbihib3VuZHNbMF0sIGJvdW5kc1sxXSk7XG4gICAgdmVjMyBtYXhSYW5nZSA9IG1heChib3VuZHNbMF0sIGJvdW5kc1sxXSk7XG4gICAgdmVjMyBuUG9zaXRpb24gPSBtaXgobWluUmFuZ2UsIG1heFJhbmdlLCAwLjUgKiAocG9zaXRpb24gKyAxLjApKTtcbiAgICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KG5Qb3NpdGlvbiwgMS4wKTtcbiAgfSBlbHNlIHtcbiAgICBnbF9Qb3NpdGlvbiA9IHZlYzQoMCwwLDAsMCk7XG4gIH1cblxuICBjb2xvckNoYW5uZWwgPSBhYnMocmVhbE5vcm1hbCk7XG59Il0pLHU9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnVuaWZvcm0gdmVjNCBjb2xvcnNbM107XG5cbnZhcnlpbmcgdmVjMyBjb2xvckNoYW5uZWw7XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfRnJhZ0NvbG9yID0gY29sb3JDaGFubmVsLnggKiBjb2xvcnNbMF0gK1xuICAgICAgICAgICAgICAgICBjb2xvckNoYW5uZWwueSAqIGNvbG9yc1sxXSArXG4gICAgICAgICAgICAgICAgIGNvbG9yQ2hhbm5lbC56ICogY29sb3JzWzJdO1xufSJdKTtyLmJnPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsYyx1LG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJub3JtYWwiLHR5cGU6InZlYzMifV0pfX0seyJnbC1zaGFkZXIiOjMyMyxnbHNsaWZ5OjQyNH1dLDI1NDpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEscyxsKXt2YXIgdT1uKHQpLGY9aSh0LFt7YnVmZmVyOnUsc2l6ZTozfV0pLGg9byh0KTtoLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MDt2YXIgcD1uZXcgYyh0LGgsdSxmKTtyZXR1cm4gcC51cGRhdGUoZSxyLGEscyxsKSxwfTt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXZhbyIpLGE9dCgidmVjdG9yaXplLXRleHQiKSxvPXQoIi4vc2hhZGVycyIpLnRleHQscz13aW5kb3d8fHIuZ2xvYmFsfHx7fSxsPXMuX19URVhUX0NBQ0hFfHx7fTtzLl9fVEVYVF9DQUNIRT17fTtmdW5jdGlvbiBjKHQsZSxyLG4pe3RoaXMuZ2w9dCx0aGlzLnNoYWRlcj1lLHRoaXMuYnVmZmVyPXIsdGhpcy52YW89bix0aGlzLnRpY2tPZmZzZXQ9dGhpcy50aWNrQ291bnQ9dGhpcy5sYWJlbE9mZnNldD10aGlzLmxhYmVsQ291bnQ9bnVsbH12YXIgdT1jLnByb3RvdHlwZSxmPVswLDBdO3UuYmluZD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnZhby5iaW5kKCksdGhpcy5zaGFkZXIuYmluZCgpO3ZhciBpPXRoaXMuc2hhZGVyLnVuaWZvcm1zO2kubW9kZWw9dCxpLnZpZXc9ZSxpLnByb2plY3Rpb249cixpLnBpeGVsU2NhbGU9bixmWzBdPXRoaXMuZ2wuZHJhd2luZ0J1ZmZlcldpZHRoLGZbMV09dGhpcy5nbC5kcmF3aW5nQnVmZmVySGVpZ2h0LHRoaXMuc2hhZGVyLnVuaWZvcm1zLnJlc29sdXRpb249Zn0sdS51bmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLnZhby51bmJpbmQoKX0sdS51cGRhdGU9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz1bXTtmdW5jdGlvbiBzKHQsZSxyLG4saSxzKXt2YXIgYz1sW3JdO2N8fChjPWxbcl09e30pO3ZhciB1PWNbZV07dXx8KHU9Y1tlXT1mdW5jdGlvbih0LGUpe3RyeXtyZXR1cm4gYSh0LGUpfWNhdGNoKGUpe3JldHVybiBjb25zb2xlLndhcm4oJ2Vycm9yIHZlY3Rvcml6aW5nIHRleHQ6IicrdCsnIiBlcnJvcjonLGUpLHtjZWxsczpbXSxwb3NpdGlvbnM6W119fX0oZSx7dHJpYW5nbGVzOiEwLGZvbnQ6cix0ZXh0QWxpZ246ImNlbnRlciIsdGV4dEJhc2VsaW5lOiJtaWRkbGUiLGxpbmVTcGFjaW5nOmksc3R5bGV0YWdzOnN9KSk7Zm9yKHZhciBmPShufHwxMikvMTIsaD11LnBvc2l0aW9ucyxwPXUuY2VsbHMsZD0wLG09cC5sZW5ndGg7ZDxtOysrZClmb3IodmFyIGc9cFtkXSx2PTI7dj49MDstLXYpe3ZhciB5PWhbZ1t2XV07by5wdXNoKGYqeVswXSwtZip5WzFdLHQpfX1mb3IodmFyIGM9WzAsMCwwXSx1PVswLDAsMF0sZj1bMCwwLDBdLGg9WzAsMCwwXSxwPXticmVha2xpbmVzOiEwLGJvbGRzOiEwLGl0YWxpY3M6ITAsc3Vic2NyaXB0czohMCxzdXBlcnNjcmlwdHM6ITB9LGQ9MDtkPDM7KytkKXtmW2RdPW8ubGVuZ3RoLzN8MCxzKC41Kih0WzBdW2RdK3RbMV1bZF0pLGVbZF0scltkXSwxMiwxLjI1LHApLGhbZF09KG8ubGVuZ3RoLzN8MCktZltkXSxjW2RdPW8ubGVuZ3RoLzN8MDtmb3IodmFyIG09MDttPG5bZF0ubGVuZ3RoOysrbSluW2RdW21dLnRleHQmJnMobltkXVttXS54LG5bZF1bbV0udGV4dCxuW2RdW21dLmZvbnR8fGksbltkXVttXS5mb250U2l6ZXx8MTIsMS4yNSxwKTt1W2RdPShvLmxlbmd0aC8zfDApLWNbZF19dGhpcy5idWZmZXIudXBkYXRlKG8pLHRoaXMudGlja09mZnNldD1jLHRoaXMudGlja0NvdW50PXUsdGhpcy5sYWJlbE9mZnNldD1mLHRoaXMubGFiZWxDb3VudD1ofSx1LmRyYXdUaWNrcz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMpe3RoaXMudGlja0NvdW50W3RdJiYodGhpcy5zaGFkZXIudW5pZm9ybXMuYXhpcz1hLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmNvbG9yPWksdGhpcy5zaGFkZXIudW5pZm9ybXMuYW5nbGU9cix0aGlzLnNoYWRlci51bmlmb3Jtcy5zY2FsZT1lLHRoaXMuc2hhZGVyLnVuaWZvcm1zLm9mZnNldD1uLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmFsaWduRGlyPW8sdGhpcy5zaGFkZXIudW5pZm9ybXMuYWxpZ25PcHQ9cyx0aGlzLnZhby5kcmF3KHRoaXMuZ2wuVFJJQU5HTEVTLHRoaXMudGlja0NvdW50W3RdLHRoaXMudGlja09mZnNldFt0XSkpfSx1LmRyYXdMYWJlbD1mdW5jdGlvbih0LGUscixuLGksYSxvLHMpe3RoaXMubGFiZWxDb3VudFt0XSYmKHRoaXMuc2hhZGVyLnVuaWZvcm1zLmF4aXM9YSx0aGlzLnNoYWRlci51bmlmb3Jtcy5jb2xvcj1pLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmFuZ2xlPXIsdGhpcy5zaGFkZXIudW5pZm9ybXMuc2NhbGU9ZSx0aGlzLnNoYWRlci51bmlmb3Jtcy5vZmZzZXQ9bix0aGlzLnNoYWRlci51bmlmb3Jtcy5hbGlnbkRpcj1vLHRoaXMuc2hhZGVyLnVuaWZvcm1zLmFsaWduT3B0PXMsdGhpcy52YW8uZHJhdyh0aGlzLmdsLlRSSUFOR0xFUyx0aGlzLmxhYmVsQ291bnRbdF0sdGhpcy5sYWJlbE9mZnNldFt0XSkpfSx1LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy52YW8uZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKX19KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIikpfSx7Ii4vc2hhZGVycyI6MjUzLF9wcm9jZXNzOjUwNCwiZ2wtYnVmZmVyIjoyNTcsImdsLXZhbyI6MzQzLCJ2ZWN0b3JpemUtdGV4dCI6NTk2fV0sMjU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj10KyIiLG49ci5pbmRleE9mKCIuIiksaT0wO24+PTAmJihpPXIubGVuZ3RoLW4tMSk7dmFyIGE9TWF0aC5wb3coMTAsaSksbz1NYXRoLnJvdW5kKHQqZSphKSxzPW8rIiI7aWYocy5pbmRleE9mKCJlIik+PTApcmV0dXJuIHM7dmFyIGw9by9hLGM9byVhO288MD8obD0wfC1NYXRoLmNlaWwobCksYz0wfC1jKToobD0wfE1hdGguZmxvb3IobCksY3w9MCk7dmFyIHU9IiIrbDtpZihvPDAmJih1PSItIit1KSxpKXtmb3IodmFyIGY9IiIrYztmLmxlbmd0aDxpOylmPSIwIitmO3JldHVybiB1KyIuIitmfXJldHVybiB1fXIuY3JlYXRlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLGk9MDtpPDM7KytpKXtmb3IodmFyIGE9W10sbz0odFswXVtpXSx0WzFdW2ldLDApO28qZVtpXTw9dFsxXVtpXTsrK28pYS5wdXNoKHt4Om8qZVtpXSx0ZXh0Om4oZVtpXSxvKX0pO2ZvcihvPS0xO28qZVtpXT49dFswXVtpXTstLW8pYS5wdXNoKHt4Om8qZVtpXSx0ZXh0Om4oZVtpXSxvKX0pO3IucHVzaChhKX1yZXR1cm4gcn0sci5lcXVhbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8MzsrK3Ipe2lmKHRbcl0ubGVuZ3RoIT09ZVtyXS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0W3JdLmxlbmd0aDsrK24pe3ZhciBpPXRbcl1bbl0sYT1lW3JdW25dO2lmKGkueCE9PWEueHx8aS50ZXh0IT09YS50ZXh0fHxpLmZvbnQhPT1hLmZvbnR8fGkuZm9udENvbG9yIT09YS5mb250Q29sb3J8fGkuZm9udFNpemUhPT1hLmZvbnRTaXplfHxpLmR4IT09YS5keHx8aS5keSE9PWEuZHkpcmV0dXJuITF9fXJldHVybiEwfX0se31dLDI1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCxmKXt2YXIgaD1lLm1vZGVsfHxjLHA9ZS52aWV3fHxjLHY9ZS5wcm9qZWN0aW9ufHxjLHk9ZS5fb3J0aG98fCExLHg9dC5ib3VuZHMsYj0oZj1mfHxhKGgscCx2LHgseSkpLmF4aXM7byh1LHAsaCksbyh1LHYsdSk7Zm9yKHZhciBfPW0sdz0wO3c8MzsrK3cpX1t3XS5sbz0xLzAsX1t3XS5oaT0tMS8wLF9bd10ucGl4ZWxzUGVyRGF0YVVuaXQ9MS8wO3ZhciBUPW4ocyh1LHUpKTtzKHUsdSk7Zm9yKHZhciBrPTA7azwzOysrayl7dmFyIEE9KGsrMSklMyxNPShrKzIpJTMsUz1nO3Q6Zm9yKHc9MDt3PDI7Kyt3KXt2YXIgRT1bXTtpZihiW2tdPDAhPSEhdyl7U1trXT14W3ddW2tdO2Zvcih2YXIgTD0wO0w8MjsrK0wpe1NbQV09eFtMXnddW0FdO2Zvcih2YXIgQz0wO0M8MjsrK0MpU1tNXT14W0NeTF53XVtNXSxFLnB1c2goUy5zbGljZSgpKX12YXIgUD15PzU6NDtmb3IoTD1QO0w9PT1QOysrTCl7aWYoMD09PUUubGVuZ3RoKWNvbnRpbnVlIHQ7RT1pLnBvc2l0aXZlKEUsVFtMXSl9Zm9yKEw9MDtMPEUubGVuZ3RoOysrTCl7TT1FW0xdO3ZhciBJPWQoZyx1LE0scixsKTtmb3IoQz0wO0M8MzsrK0MpX1tDXS5sbz1NYXRoLm1pbihfW0NdLmxvLE1bQ10pLF9bQ10uaGk9TWF0aC5tYXgoX1tDXS5oaSxNW0NdKSxDIT09ayYmKF9bQ10ucGl4ZWxzUGVyRGF0YVVuaXQ9TWF0aC5taW4oX1tDXS5waXhlbHNQZXJEYXRhVW5pdCxNYXRoLmFicyhJW0NdKSkpfX19fXJldHVybiBffTt2YXIgbj10KCJleHRyYWN0LWZydXN0dW0tcGxhbmVzIiksaT10KCJzcGxpdC1wb2x5Z29uIiksYT10KCIuL2xpYi9jdWJlLmpzIiksbz10KCJnbC1tYXQ0L211bHRpcGx5Iikscz10KCJnbC1tYXQ0L3RyYW5zcG9zZSIpLGw9dCgiZ2wtdmVjNC90cmFuc2Zvcm1NYXQ0IiksYz1uZXcgRmxvYXQzMkFycmF5KFsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXSksdT1uZXcgRmxvYXQzMkFycmF5KDE2KTtmdW5jdGlvbiBmKHQsZSxyKXt0aGlzLmxvPXQsdGhpcy5oaT1lLHRoaXMucGl4ZWxzUGVyRGF0YVVuaXQ9cn12YXIgaD1bMCwwLDAsMV0scD1bMCwwLDAsMV07ZnVuY3Rpb24gZCh0LGUscixuLGkpe2Zvcih2YXIgYT0wO2E8MzsrK2Epe2Zvcih2YXIgbz1oLHM9cCxjPTA7YzwzOysrYylzW2NdPW9bY109cltjXTtzWzNdPW9bM109MSxzW2FdKz0xLGwocyxzLGUpLHNbM108MCYmKHRbYV09MS8wKSxvW2FdLT0xLGwobyxvLGUpLG9bM108MCYmKHRbYV09MS8wKTt2YXIgdT0ob1swXS9vWzNdLXNbMF0vc1szXSkqbixmPShvWzFdL29bM10tc1sxXS9zWzNdKSppO3RbYV09LjI1Kk1hdGguc3FydCh1KnUrZipmKX1yZXR1cm4gdH12YXIgbT1bbmV3IGYoMS8wLC0xLzAsMS8wKSxuZXcgZigxLzAsLTEvMCwxLzApLG5ldyBmKDEvMCwtMS8wLDEvMCldLGc9WzAsMCwwXX0seyIuL2xpYi9jdWJlLmpzIjoyNTEsImV4dHJhY3QtZnJ1c3R1bS1wbGFuZXMiOjI0MSwiZ2wtbWF0NC9tdWx0aXBseSI6Mjg5LCJnbC1tYXQ0L3RyYW5zcG9zZSI6MzAwLCJnbC12ZWM0L3RyYW5zZm9ybU1hdDQiOjQxNCwic3BsaXQtcG9seWdvbiI6NTQxfV0sMjU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInR5cGVkYXJyYXktcG9vbCIpLGk9dCgibmRhcnJheS1vcHMiKSxhPXQoIm5kYXJyYXkiKSxvPVsidWludDgiLCJ1aW50OF9jbGFtcGVkIiwidWludDE2IiwidWludDMyIiwiaW50OCIsImludDE2IiwiaW50MzIiLCJmbG9hdDMyIl07ZnVuY3Rpb24gcyh0LGUscixuLGkpe3RoaXMuZ2w9dCx0aGlzLnR5cGU9ZSx0aGlzLmhhbmRsZT1yLHRoaXMubGVuZ3RoPW4sdGhpcy51c2FnZT1pfXZhciBsPXMucHJvdG90eXBlO2Z1bmN0aW9uIGModCxlLHIsbixpLGEpe3ZhciBvPWkubGVuZ3RoKmkuQllURVNfUEVSX0VMRU1FTlQ7aWYoYTwwKXJldHVybiB0LmJ1ZmZlckRhdGEoZSxpLG4pLG87aWYobythPnIpdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IElmIHJlc2l6aW5nIGJ1ZmZlciwgbXVzdCBub3Qgc3BlY2lmeSBvZmZzZXQiKTtyZXR1cm4gdC5idWZmZXJTdWJEYXRhKGUsYSxpKSxyfWZ1bmN0aW9uIHUodCxlKXtmb3IodmFyIHI9bi5tYWxsb2ModC5sZW5ndGgsZSksaT10Lmxlbmd0aCxhPTA7YTxpOysrYSlyW2FdPXRbYV07cmV0dXJuIHJ9bC5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5nbC5iaW5kQnVmZmVyKHRoaXMudHlwZSx0aGlzLmhhbmRsZSl9LGwudW5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5nbC5iaW5kQnVmZmVyKHRoaXMudHlwZSxudWxsKX0sbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5nbC5kZWxldGVCdWZmZXIodGhpcy5oYW5kbGUpfSxsLnVwZGF0ZT1mdW5jdGlvbih0LGUpe2lmKCJudW1iZXIiIT10eXBlb2YgZSYmKGU9LTEpLHRoaXMuYmluZCgpLCJvYmplY3QiPT10eXBlb2YgdCYmdm9pZCAwIT09dC5zaGFwZSl7dmFyIHI9dC5kdHlwZTtpZihvLmluZGV4T2Yocik8MCYmKHI9ImZsb2F0MzIiKSx0aGlzLnR5cGU9PT10aGlzLmdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSKXI9Z2wuZ2V0RXh0ZW5zaW9uKCJPRVNfZWxlbWVudF9pbmRleF91aW50IikmJiJ1aW50MTYiIT09cj8idWludDMyIjoidWludDE2IjtpZihyPT09dC5kdHlwZSYmZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MSxuPWUubGVuZ3RoLTE7bj49MDstLW4pe2lmKGVbbl0hPT1yKXJldHVybiExO3IqPXRbbl19cmV0dXJuITB9KHQuc2hhcGUsdC5zdHJpZGUpKTA9PT10Lm9mZnNldCYmdC5kYXRhLmxlbmd0aD09PXQuc2hhcGVbMF0/dGhpcy5sZW5ndGg9Yyh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLHQuZGF0YSxlKTp0aGlzLmxlbmd0aD1jKHRoaXMuZ2wsdGhpcy50eXBlLHRoaXMubGVuZ3RoLHRoaXMudXNhZ2UsdC5kYXRhLnN1YmFycmF5KHQub2Zmc2V0LHQuc2hhcGVbMF0pLGUpO2Vsc2V7dmFyIHM9bi5tYWxsb2ModC5zaXplLHIpLGw9YShzLHQuc2hhcGUpO2kuYXNzaWduKGwsdCksdGhpcy5sZW5ndGg9Yyh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLGU8MD9zOnMuc3ViYXJyYXkoMCx0LnNpemUpLGUpLG4uZnJlZShzKX19ZWxzZSBpZihBcnJheS5pc0FycmF5KHQpKXt2YXIgZjtmPXRoaXMudHlwZT09PXRoaXMuZ2wuRUxFTUVOVF9BUlJBWV9CVUZGRVI/dSh0LCJ1aW50MTYiKTp1KHQsImZsb2F0MzIiKSx0aGlzLmxlbmd0aD1jKHRoaXMuZ2wsdGhpcy50eXBlLHRoaXMubGVuZ3RoLHRoaXMudXNhZ2UsZTwwP2Y6Zi5zdWJhcnJheSgwLHQubGVuZ3RoKSxlKSxuLmZyZWUoZil9ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIHQmJiJudW1iZXIiPT10eXBlb2YgdC5sZW5ndGgpdGhpcy5sZW5ndGg9Yyh0aGlzLmdsLHRoaXMudHlwZSx0aGlzLmxlbmd0aCx0aGlzLnVzYWdlLHQsZSk7ZWxzZXtpZigibnVtYmVyIiE9dHlwZW9mIHQmJnZvaWQgMCE9PXQpdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IEludmFsaWQgZGF0YSB0eXBlIik7aWYoZT49MCl0aHJvdyBuZXcgRXJyb3IoImdsLWJ1ZmZlcjogQ2Fubm90IHNwZWNpZnkgb2Zmc2V0IHdoZW4gcmVzaXppbmcgYnVmZmVyIik7KHR8PTApPD0wJiYodD0xKSx0aGlzLmdsLmJ1ZmZlckRhdGEodGhpcy50eXBlLDB8dCx0aGlzLnVzYWdlKSx0aGlzLmxlbmd0aD10fX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHI9cnx8dC5BUlJBWV9CVUZGRVIsbj1ufHx0LkRZTkFNSUNfRFJBVyxyIT09dC5BUlJBWV9CVUZGRVImJnIhPT10LkVMRU1FTlRfQVJSQVlfQlVGRkVSKXRocm93IG5ldyBFcnJvcigiZ2wtYnVmZmVyOiBJbnZhbGlkIHR5cGUgZm9yIHdlYmdsIGJ1ZmZlciwgbXVzdCBiZSBlaXRoZXIgZ2wuQVJSQVlfQlVGRkVSIG9yIGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSIik7aWYobiE9PXQuRFlOQU1JQ19EUkFXJiZuIT09dC5TVEFUSUNfRFJBVyYmbiE9PXQuU1RSRUFNX0RSQVcpdGhyb3cgbmV3IEVycm9yKCJnbC1idWZmZXI6IEludmFsaWQgdXNhZ2UgZm9yIGJ1ZmZlciwgbXVzdCBiZSBlaXRoZXIgZ2wuRFlOQU1JQ19EUkFXLCBnbC5TVEFUSUNfRFJBVyBvciBnbC5TVFJFQU1fRFJBVyIpO3ZhciBpPXQuY3JlYXRlQnVmZmVyKCksYT1uZXcgcyh0LHIsaSwwLG4pO3JldHVybiBhLnVwZGF0ZShlKSxhfX0se25kYXJyYXk6NDYyLCJuZGFycmF5LW9wcyI6NDU3LCJ0eXBlZGFycmF5LXBvb2wiOjU5MH1dLDI1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC12ZWMzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5wb3NpdGlvbnMsaT10LnZlY3RvcnMsYT17cG9zaXRpb25zOltdLHZlcnRleEludGVuc2l0eTpbXSx2ZXJ0ZXhJbnRlbnNpdHlCb3VuZHM6dC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHMsdmVjdG9yczpbXSxjZWxsczpbXSxjb25lT2Zmc2V0OnQuY29uZU9mZnNldCxjb2xvcm1hcDp0LmNvbG9ybWFwfTtpZigwPT09dC5wb3NpdGlvbnMubGVuZ3RoKXJldHVybiBlJiYoZVswXT1bMCwwLDBdLGVbMV09WzAsMCwwXSksYTtmb3IodmFyIG89MCxzPTEvMCxsPS0xLzAsYz0xLzAsdT0tMS8wLGY9MS8wLGg9LTEvMCxwPW51bGwsZD1udWxsLG09W10sZz0xLzAsdj0hMSx5PTA7eTxyLmxlbmd0aDt5Kyspe3ZhciB4PXJbeV07cz1NYXRoLm1pbih4WzBdLHMpLGw9TWF0aC5tYXgoeFswXSxsKSxjPU1hdGgubWluKHhbMV0sYyksdT1NYXRoLm1heCh4WzFdLHUpLGY9TWF0aC5taW4oeFsyXSxmKSxoPU1hdGgubWF4KHhbMl0saCk7dmFyIGI9aVt5XTtpZihuLmxlbmd0aChiKT5vJiYobz1uLmxlbmd0aChiKSkseSl7dmFyIF89MipuLmRpc3RhbmNlKHAseCkvKG4ubGVuZ3RoKGQpK24ubGVuZ3RoKGIpKTtfPyhnPU1hdGgubWluKGcsXyksdj0hMSk6dj0hMH12fHwocD14LGQ9YiksbS5wdXNoKGIpfXZhciB3PVtzLGMsZl0sVD1bbCx1LGhdO2UmJihlWzBdPXcsZVsxXT1UKSwwPT09byYmKG89MSk7dmFyIGs9MS9vO2lzRmluaXRlKGcpfHwoZz0xKSxhLnZlY3RvclNjYWxlPWc7dmFyIEE9dC5jb25lU2l6ZXx8LjU7dC5hYnNvbHV0ZUNvbmVTaXplJiYoQT10LmFic29sdXRlQ29uZVNpemUqayksYS5jb25lU2NhbGU9QTt5PTA7Zm9yKHZhciBNPTA7eTxyLmxlbmd0aDt5KyspZm9yKHZhciBTPSh4PXJbeV0pWzBdLEU9eFsxXSxMPXhbMl0sQz1tW3ldLFA9bi5sZW5ndGgoQykqayxJPTA7STw4O0krKyl7YS5wb3NpdGlvbnMucHVzaChbUyxFLEwsTSsrXSksYS5wb3NpdGlvbnMucHVzaChbUyxFLEwsTSsrXSksYS5wb3NpdGlvbnMucHVzaChbUyxFLEwsTSsrXSksYS5wb3NpdGlvbnMucHVzaChbUyxFLEwsTSsrXSksYS5wb3NpdGlvbnMucHVzaChbUyxFLEwsTSsrXSksYS5wb3NpdGlvbnMucHVzaChbUyxFLEwsTSsrXSksYS52ZWN0b3JzLnB1c2goQyksYS52ZWN0b3JzLnB1c2goQyksYS52ZWN0b3JzLnB1c2goQyksYS52ZWN0b3JzLnB1c2goQyksYS52ZWN0b3JzLnB1c2goQyksYS52ZWN0b3JzLnB1c2goQyksYS52ZXJ0ZXhJbnRlbnNpdHkucHVzaChQLFAsUCksYS52ZXJ0ZXhJbnRlbnNpdHkucHVzaChQLFAsUCk7dmFyIE89YS5wb3NpdGlvbnMubGVuZ3RoO2EuY2VsbHMucHVzaChbTy02LE8tNSxPLTRdLFtPLTMsTy0yLE8tMV0pfXJldHVybiBhfTt2YXIgaT10KCIuL2xpYi9zaGFkZXJzIik7ZS5leHBvcnRzLmNyZWF0ZU1lc2g9dCgiLi9jcmVhdGVfbWVzaCIpLGUuZXhwb3J0cy5jcmVhdGVDb25lTWVzaD1mdW5jdGlvbih0LHIpe3JldHVybiBlLmV4cG9ydHMuY3JlYXRlTWVzaCh0LHIse3NoYWRlcnM6aSx0cmFjZVR5cGU6ImNvbmUifSl9fSx7Ii4vY3JlYXRlX21lc2giOjI1OSwiLi9saWIvc2hhZGVycyI6MjYwLCJnbC12ZWMzIjozNjJ9XSwyNTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT10KCJnbC1idWZmZXIiKSxhPXQoImdsLXZhbyIpLG89dCgiZ2wtdGV4dHVyZTJkIikscz10KCJnbC1tYXQ0L211bHRpcGx5IiksbD10KCJnbC1tYXQ0L2ludmVydCIpLGM9dCgibmRhcnJheSIpLHU9dCgiY29sb3JtYXAiKSxmPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtmdW5jdGlvbiBoKHQsZSxyLG4saSxhLG8scyxsLGMsdSl7dGhpcy5nbD10LHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuY2VsbHM9W10sdGhpcy5wb3NpdGlvbnM9W10sdGhpcy5pbnRlbnNpdHk9W10sdGhpcy50ZXh0dXJlPWUsdGhpcy5kaXJ0eT0hMCx0aGlzLnRyaVNoYWRlcj1yLHRoaXMucGlja1NoYWRlcj1uLHRoaXMudHJpYW5nbGVQb3NpdGlvbnM9aSx0aGlzLnRyaWFuZ2xlVmVjdG9ycz1hLHRoaXMudHJpYW5nbGVDb2xvcnM9cyx0aGlzLnRyaWFuZ2xlVVZzPWwsdGhpcy50cmlhbmdsZUlkcz1vLHRoaXMudHJpYW5nbGVWQU89Yyx0aGlzLnRyaWFuZ2xlQ291bnQ9MCx0aGlzLnBpY2tJZD0xLHRoaXMuYm91bmRzPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dLHRoaXMuY2xpcEJvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLmxpZ2h0UG9zaXRpb249WzFlNSwxZTUsMF0sdGhpcy5hbWJpZW50TGlnaHQ9LjgsdGhpcy5kaWZmdXNlTGlnaHQ9LjgsdGhpcy5zcGVjdWxhckxpZ2h0PTIsdGhpcy5yb3VnaG5lc3M9LjUsdGhpcy5mcmVzbmVsPTEuNSx0aGlzLm9wYWNpdHk9MSx0aGlzLnRyYWNlVHlwZT11LHRoaXMudHViZVNjYWxlPTEsdGhpcy5jb25lU2NhbGU9Mix0aGlzLnZlY3RvclNjYWxlPTEsdGhpcy5jb25lT2Zmc2V0PS4yNSx0aGlzLl9tb2RlbD1mLHRoaXMuX3ZpZXc9Zix0aGlzLl9wcm9qZWN0aW9uPWYsdGhpcy5fcmVzb2x1dGlvbj1bMSwxXX12YXIgcD1oLnByb3RvdHlwZTtmdW5jdGlvbiBkKHQsZSl7dmFyIHI9bih0LGUubWVzaFNoYWRlci52ZXJ0ZXgsZS5tZXNoU2hhZGVyLmZyYWdtZW50LG51bGwsZS5tZXNoU2hhZGVyLmF0dHJpYnV0ZXMpO3JldHVybiByLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxyLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MixyLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MyxyLmF0dHJpYnV0ZXMudmVjdG9yLmxvY2F0aW9uPTQscn1mdW5jdGlvbiBtKHQsZSl7dmFyIHI9bih0LGUucGlja1NoYWRlci52ZXJ0ZXgsZS5waWNrU2hhZGVyLmZyYWdtZW50LG51bGwsZS5waWNrU2hhZGVyLmF0dHJpYnV0ZXMpO3JldHVybiByLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxyLmF0dHJpYnV0ZXMuaWQubG9jYXRpb249MSxyLmF0dHJpYnV0ZXMudmVjdG9yLmxvY2F0aW9uPTQscn1wLmlzT3BhcXVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BhY2l0eT49MX0scC5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3BhY2l0eTwxfSxwLnBpY2tTbG90cz0xLHAuc2V0UGlja0Jhc2U9ZnVuY3Rpb24odCl7dGhpcy5waWNrSWQ9dH0scC51cGRhdGU9ZnVuY3Rpb24odCl7dD10fHx7fTt2YXIgZT10aGlzLmdsO3RoaXMuZGlydHk9ITAsImxpZ2h0UG9zaXRpb24iaW4gdCYmKHRoaXMubGlnaHRQb3NpdGlvbj10LmxpZ2h0UG9zaXRpb24pLCJvcGFjaXR5ImluIHQmJih0aGlzLm9wYWNpdHk9dC5vcGFjaXR5KSwiYW1iaWVudCJpbiB0JiYodGhpcy5hbWJpZW50TGlnaHQ9dC5hbWJpZW50KSwiZGlmZnVzZSJpbiB0JiYodGhpcy5kaWZmdXNlTGlnaHQ9dC5kaWZmdXNlKSwic3BlY3VsYXIiaW4gdCYmKHRoaXMuc3BlY3VsYXJMaWdodD10LnNwZWN1bGFyKSwicm91Z2huZXNzImluIHQmJih0aGlzLnJvdWdobmVzcz10LnJvdWdobmVzcyksImZyZXNuZWwiaW4gdCYmKHRoaXMuZnJlc25lbD10LmZyZXNuZWwpLHZvaWQgMCE9PXQudHViZVNjYWxlJiYodGhpcy50dWJlU2NhbGU9dC50dWJlU2NhbGUpLHZvaWQgMCE9PXQudmVjdG9yU2NhbGUmJih0aGlzLnZlY3RvclNjYWxlPXQudmVjdG9yU2NhbGUpLHZvaWQgMCE9PXQuY29uZVNjYWxlJiYodGhpcy5jb25lU2NhbGU9dC5jb25lU2NhbGUpLHZvaWQgMCE9PXQuY29uZU9mZnNldCYmKHRoaXMuY29uZU9mZnNldD10LmNvbmVPZmZzZXQpLHQuY29sb3JtYXAmJih0aGlzLnRleHR1cmUuc2hhcGU9WzI1NiwyNTZdLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9ZS5MSU5FQVJfTUlQTUFQX0xJTkVBUix0aGlzLnRleHR1cmUubWFnRmlsdGVyPWUuTElORUFSLHRoaXMudGV4dHVyZS5zZXRQaXhlbHMoZnVuY3Rpb24odCl7Zm9yKHZhciBlPXUoe2NvbG9ybWFwOnQsbnNoYWRlczoyNTYsZm9ybWF0OiJyZ2JhIn0pLHI9bmV3IFVpbnQ4QXJyYXkoMTAyNCksbj0wO248MjU2Oysrbil7Zm9yKHZhciBpPWVbbl0sYT0wO2E8MzsrK2Epcls0Km4rYV09aVthXTtyWzQqbiszXT0yNTUqaVszXX1yZXR1cm4gYyhyLFsyNTYsMjU2LDRdLFs0LDAsMV0pfSh0LmNvbG9ybWFwKSksdGhpcy50ZXh0dXJlLmdlbmVyYXRlTWlwbWFwKCkpO3ZhciByPXQuY2VsbHMsbj10LnBvc2l0aW9ucyxpPXQudmVjdG9ycztpZihuJiZyJiZpKXt2YXIgYT1bXSxvPVtdLHM9W10sbD1bXSxmPVtdO3RoaXMuY2VsbHM9cix0aGlzLnBvc2l0aW9ucz1uLHRoaXMudmVjdG9ycz1pO3ZhciBoPXQubWVzaENvbG9yfHxbMSwxLDEsMV0scD10LnZlcnRleEludGVuc2l0eSxkPTEvMCxtPS0xLzA7aWYocClpZih0LnZlcnRleEludGVuc2l0eUJvdW5kcylkPSt0LnZlcnRleEludGVuc2l0eUJvdW5kc1swXSxtPSt0LnZlcnRleEludGVuc2l0eUJvdW5kc1sxXTtlbHNlIGZvcih2YXIgZz0wO2c8cC5sZW5ndGg7KytnKXt2YXIgdj1wW2ddO2Q9TWF0aC5taW4oZCx2KSxtPU1hdGgubWF4KG0sdil9ZWxzZSBmb3IoZz0wO2c8bi5sZW5ndGg7KytnKXt2PW5bZ11bMl07ZD1NYXRoLm1pbihkLHYpLG09TWF0aC5tYXgobSx2KX10aGlzLmludGVuc2l0eT1wfHxmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pcltuXT10W25dWzJdO3JldHVybiByfShuKSx0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXTtmb3IoZz0wO2c8bi5sZW5ndGg7KytnKWZvcih2YXIgeT1uW2ddLHg9MDt4PDM7Kyt4KSFpc05hTih5W3hdKSYmaXNGaW5pdGUoeVt4XSkmJih0aGlzLmJvdW5kc1swXVt4XT1NYXRoLm1pbih0aGlzLmJvdW5kc1swXVt4XSx5W3hdKSx0aGlzLmJvdW5kc1sxXVt4XT1NYXRoLm1heCh0aGlzLmJvdW5kc1sxXVt4XSx5W3hdKSk7dmFyIGI9MDt0OmZvcihnPTA7ZzxyLmxlbmd0aDsrK2cpe3ZhciBfPXJbZ107c3dpdGNoKF8ubGVuZ3RoKXtjYXNlIDM6Zm9yKHg9MDt4PDM7Kyt4KXt5PW5bVD1fW3hdXTtmb3IodmFyIHc9MDt3PDM7Kyt3KWlmKGlzTmFOKHlbd10pfHwhaXNGaW5pdGUoeVt3XSkpY29udGludWUgdH1mb3IoeD0wO3g8MzsrK3gpe3ZhciBUO3k9bltUPV9bMi14XV07YS5wdXNoKHlbMF0seVsxXSx5WzJdLHlbM10pO3ZhciBrPWlbVF07by5wdXNoKGtbMF0sa1sxXSxrWzJdLGtbM118fDApO3ZhciBBLE09aDszPT09TS5sZW5ndGg/cy5wdXNoKE1bMF0sTVsxXSxNWzJdLDEpOnMucHVzaChNWzBdLE1bMV0sTVsyXSxNWzNdKSxBPXA/WyhwW1RdLWQpLyhtLWQpLDBdOlsoeVsyXS1kKS8obS1kKSwwXSxsLnB1c2goQVswXSxBWzFdKSxmLnB1c2goZyl9Yis9MX19dGhpcy50cmlhbmdsZUNvdW50PWIsdGhpcy50cmlhbmdsZVBvc2l0aW9ucy51cGRhdGUoYSksdGhpcy50cmlhbmdsZVZlY3RvcnMudXBkYXRlKG8pLHRoaXMudHJpYW5nbGVDb2xvcnMudXBkYXRlKHMpLHRoaXMudHJpYW5nbGVVVnMudXBkYXRlKGwpLHRoaXMudHJpYW5nbGVJZHMudXBkYXRlKG5ldyBVaW50MzJBcnJheShmKSl9fSxwLmRyYXdUcmFuc3BhcmVudD1wLmRyYXc9ZnVuY3Rpb24odCl7dD10fHx7fTtmb3IodmFyIGU9dGhpcy5nbCxyPXQubW9kZWx8fGYsbj10LnZpZXd8fGYsaT10LnByb2plY3Rpb258fGYsYT1bWy0xZTYsLTFlNiwtMWU2XSxbMWU2LDFlNiwxZTZdXSxvPTA7bzwzOysrbylhWzBdW29dPU1hdGgubWF4KGFbMF1bb10sdGhpcy5jbGlwQm91bmRzWzBdW29dKSxhWzFdW29dPU1hdGgubWluKGFbMV1bb10sdGhpcy5jbGlwQm91bmRzWzFdW29dKTt2YXIgYz17bW9kZWw6cix2aWV3Om4scHJvamVjdGlvbjppLGludmVyc2VNb2RlbDpmLnNsaWNlKCksY2xpcEJvdW5kczphLGthbWJpZW50OnRoaXMuYW1iaWVudExpZ2h0LGtkaWZmdXNlOnRoaXMuZGlmZnVzZUxpZ2h0LGtzcGVjdWxhcjp0aGlzLnNwZWN1bGFyTGlnaHQscm91Z2huZXNzOnRoaXMucm91Z2huZXNzLGZyZXNuZWw6dGhpcy5mcmVzbmVsLGV5ZVBvc2l0aW9uOlswLDAsMF0sbGlnaHRQb3NpdGlvbjpbMCwwLDBdLG9wYWNpdHk6dGhpcy5vcGFjaXR5LHR1YmVTY2FsZTp0aGlzLnR1YmVTY2FsZSx2ZWN0b3JTY2FsZTp0aGlzLnZlY3RvclNjYWxlLGNvbmVTY2FsZTp0aGlzLmNvbmVTY2FsZSxjb25lT2Zmc2V0OnRoaXMuY29uZU9mZnNldCx0ZXh0dXJlOjB9O2MuaW52ZXJzZU1vZGVsPWwoYy5pbnZlcnNlTW9kZWwsYy5tb2RlbCksZS5kaXNhYmxlKGUuQ1VMTF9GQUNFKSx0aGlzLnRleHR1cmUuYmluZCgwKTt2YXIgdT1uZXcgQXJyYXkoMTYpO3ModSxjLnZpZXcsYy5tb2RlbCkscyh1LGMucHJvamVjdGlvbix1KSxsKHUsdSk7Zm9yKG89MDtvPDM7KytvKWMuZXllUG9zaXRpb25bb109dVsxMitvXS91WzE1XTt2YXIgaD11WzE1XTtmb3Iobz0wO288MzsrK28paCs9dGhpcy5saWdodFBvc2l0aW9uW29dKnVbNCpvKzNdO2ZvcihvPTA7bzwzOysrbyl7Zm9yKHZhciBwPXVbMTIrb10sZD0wO2Q8MzsrK2QpcCs9dVs0KmQrb10qdGhpcy5saWdodFBvc2l0aW9uW2RdO2MubGlnaHRQb3NpdGlvbltvXT1wL2h9aWYodGhpcy50cmlhbmdsZUNvdW50PjApe3ZhciBtPXRoaXMudHJpU2hhZGVyO20uYmluZCgpLG0udW5pZm9ybXM9Yyx0aGlzLnRyaWFuZ2xlVkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5UUklBTkdMRVMsMCwzKnRoaXMudHJpYW5nbGVDb3VudCksdGhpcy50cmlhbmdsZVZBTy51bmJpbmQoKX19LHAuZHJhd1BpY2s9ZnVuY3Rpb24odCl7dD10fHx7fTtmb3IodmFyIGU9dGhpcy5nbCxyPXQubW9kZWx8fGYsbj10LnZpZXd8fGYsaT10LnByb2plY3Rpb258fGYsYT1bWy0xZTYsLTFlNiwtMWU2XSxbMWU2LDFlNiwxZTZdXSxvPTA7bzwzOysrbylhWzBdW29dPU1hdGgubWF4KGFbMF1bb10sdGhpcy5jbGlwQm91bmRzWzBdW29dKSxhWzFdW29dPU1hdGgubWluKGFbMV1bb10sdGhpcy5jbGlwQm91bmRzWzFdW29dKTt0aGlzLl9tb2RlbD1bXS5zbGljZS5jYWxsKHIpLHRoaXMuX3ZpZXc9W10uc2xpY2UuY2FsbChuKSx0aGlzLl9wcm9qZWN0aW9uPVtdLnNsaWNlLmNhbGwoaSksdGhpcy5fcmVzb2x1dGlvbj1bZS5kcmF3aW5nQnVmZmVyV2lkdGgsZS5kcmF3aW5nQnVmZmVySGVpZ2h0XTt2YXIgcz17bW9kZWw6cix2aWV3Om4scHJvamVjdGlvbjppLGNsaXBCb3VuZHM6YSx0dWJlU2NhbGU6dGhpcy50dWJlU2NhbGUsdmVjdG9yU2NhbGU6dGhpcy52ZWN0b3JTY2FsZSxjb25lU2NhbGU6dGhpcy5jb25lU2NhbGUsY29uZU9mZnNldDp0aGlzLmNvbmVPZmZzZXQscGlja0lkOnRoaXMucGlja0lkLzI1NX0sbD10aGlzLnBpY2tTaGFkZXI7bC5iaW5kKCksbC51bmlmb3Jtcz1zLHRoaXMudHJpYW5nbGVDb3VudD4wJiYodGhpcy50cmlhbmdsZVZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuVFJJQU5HTEVTLDAsMyp0aGlzLnRyaWFuZ2xlQ291bnQpLHRoaXMudHJpYW5nbGVWQU8udW5iaW5kKCkpfSxwLnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO3ZhciBlPXQudmFsdWVbMF0rMjU2KnQudmFsdWVbMV0rNjU1MzYqdC52YWx1ZVsyXSxyPXRoaXMuY2VsbHNbZV0sbj10aGlzLnBvc2l0aW9uc1tyWzFdXS5zbGljZSgwLDMpLGk9e3Bvc2l0aW9uOm4sZGF0YUNvb3JkaW5hdGU6bixpbmRleDpNYXRoLmZsb29yKHJbMV0vNDgpfTtyZXR1cm4iY29uZSI9PT10aGlzLnRyYWNlVHlwZT9pLmluZGV4PU1hdGguZmxvb3IoclsxXS80OCk6InN0cmVhbXR1YmUiPT09dGhpcy50cmFjZVR5cGUmJihpLmludGVuc2l0eT10aGlzLmludGVuc2l0eVtyWzFdXSxpLnZlbG9jaXR5PXRoaXMudmVjdG9yc1tyWzFdXS5zbGljZSgwLDMpLGkuZGl2ZXJnZW5jZT10aGlzLnZlY3RvcnNbclsxXV1bM10saS5pbmRleD1lKSxpfSxwLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnRleHR1cmUuZGlzcG9zZSgpLHRoaXMudHJpU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBpY2tTaGFkZXIuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVWQU8uZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVQb3NpdGlvbnMuZGlzcG9zZSgpLHRoaXMudHJpYW5nbGVWZWN0b3JzLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlQ29sb3JzLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlVVZzLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlSWRzLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yLnNoYWRlcnM7MT09PWFyZ3VtZW50cy5sZW5ndGgmJih0PShlPXQpLmdsKTt2YXIgcz1kKHQsbiksbD1tKHQsbiksdT1vKHQsYyhuZXcgVWludDhBcnJheShbMjU1LDI1NSwyNTUsMjU1XSksWzEsMSw0XSkpO3UuZ2VuZXJhdGVNaXBtYXAoKSx1Lm1pbkZpbHRlcj10LkxJTkVBUl9NSVBNQVBfTElORUFSLHUubWFnRmlsdGVyPXQuTElORUFSO3ZhciBmPWkodCkscD1pKHQpLGc9aSh0KSx2PWkodCkseT1pKHQpLHg9YSh0LFt7YnVmZmVyOmYsdHlwZTp0LkZMT0FULHNpemU6NH0se2J1ZmZlcjp5LHR5cGU6dC5VTlNJR05FRF9CWVRFLHNpemU6NCxub3JtYWxpemVkOiEwfSx7YnVmZmVyOmcsdHlwZTp0LkZMT0FULHNpemU6NH0se2J1ZmZlcjp2LHR5cGU6dC5GTE9BVCxzaXplOjJ9LHtidWZmZXI6cCx0eXBlOnQuRkxPQVQsc2l6ZTo0fV0pLGI9bmV3IGgodCx1LHMsbCxmLHAseSxnLHYseCxyLnRyYWNlVHlwZXx8ImNvbmUiKTtyZXR1cm4gYi51cGRhdGUoZSksYn19LHtjb2xvcm1hcDoxMzIsImdsLWJ1ZmZlciI6MjU3LCJnbC1tYXQ0L2ludmVydCI6Mjg3LCJnbC1tYXQ0L211bHRpcGx5IjoyODksImdsLXNoYWRlciI6MzIzLCJnbC10ZXh0dXJlMmQiOjMzOCwiZ2wtdmFvIjozNDMsbmRhcnJheTo0NjJ9XSwyNjA6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbHNsaWZ5IiksaT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52ZWMzIGdldE9ydGhvZ29uYWxWZWN0b3IodmVjMyB2KSB7XG4gIC8vIFJldHVybiB1cC12ZWN0b3IgZm9yIG9ubHkteiB2ZWN0b3IuXG4gIC8vIFJldHVybiBheCArIGJ5ICsgY3ogPSAwLCBhIHBvaW50IHRoYXQgbGllcyBvbiB0aGUgcGxhbmUgdGhhdCBoYXMgdiBhcyBhIG5vcm1hbCBhbmQgdGhhdCBpc24ndCAoMCwwLDApLlxuICAvLyBGcm9tIHRoZSBhYm92ZSBpZi1zdGF0ZW1lbnQgd2UgaGF2ZSB8fGF8fCA+IDAgIFUgIHx8Ynx8ID4gMC5cbiAgLy8gQXNzaWduIHogPSAwLCB4ID0gLWIsIHkgPSBhOlxuICAvLyBhKi1iICsgYiphICsgYyowID0gLWJhICsgYmEgKyAwID0gMFxuICBpZiAodi54KnYueCA+IHYueip2LnogfHwgdi55KnYueSA+IHYueip2LnopIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoLXYueSwgdi54LCAwLjApKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoMC4wLCB2LnosIC12LnkpKTtcbiAgfVxufVxuXG4vLyBDYWxjdWxhdGUgdGhlIGNvbmUgdmVydGV4IGFuZCBub3JtYWwgYXQgdGhlIGdpdmVuIGluZGV4LlxuLy9cbi8vIFRoZSByZXR1cm5lZCB2ZXJ0ZXggaXMgZm9yIGEgY29uZSB3aXRoIGl0cyB0b3AgYXQgb3JpZ2luIGFuZCBoZWlnaHQgb2YgMS4wLFxuLy8gcG9pbnRpbmcgaW4gdGhlIGRpcmVjdGlvbiBvZiB0aGUgdmVjdG9yIGF0dHJpYnV0ZS5cbi8vXG4vLyBFYWNoIGNvbmUgaXMgbWFkZSB1cCBvZiBhIHRvcCB2ZXJ0ZXgsIGEgY2VudGVyIGJhc2UgdmVydGV4IGFuZCBiYXNlIHBlcmltZXRlciB2ZXJ0aWNlcy5cbi8vIFRoZXNlIHZlcnRpY2VzIGFyZSB1c2VkIHRvIG1ha2UgdXAgdGhlIHRyaWFuZ2xlcyBvZiB0aGUgY29uZSBieSB0aGUgZm9sbG93aW5nOlxuLy8gICBzZWdtZW50ICsgMCB0b3AgdmVydGV4XG4vLyAgIHNlZ21lbnQgKyAxIHBlcmltZXRlciB2ZXJ0ZXggYSsxXG4vLyAgIHNlZ21lbnQgKyAyIHBlcmltZXRlciB2ZXJ0ZXggYVxuLy8gICBzZWdtZW50ICsgMyBjZW50ZXIgYmFzZSB2ZXJ0ZXhcbi8vICAgc2VnbWVudCArIDQgcGVyaW1ldGVyIHZlcnRleCBhXG4vLyAgIHNlZ21lbnQgKyA1IHBlcmltZXRlciB2ZXJ0ZXggYSsxXG4vLyBXaGVyZSBzZWdtZW50IGlzIHRoZSBudW1iZXIgb2YgdGhlIHJhZGlhbCBzZWdtZW50ICogNiBhbmQgYSBpcyB0aGUgYW5nbGUgYXQgdGhhdCByYWRpYWwgc2VnbWVudC5cbi8vIFRvIGdvIGZyb20gaW5kZXggdG8gc2VnbWVudCwgZmxvb3IoaW5kZXggLyA2KVxuLy8gVG8gZ28gZnJvbSBzZWdtZW50IHRvIGFuZ2xlLCAyKnBpICogKHNlZ21lbnQvc2VnbWVudENvdW50KVxuLy8gVG8gZ28gZnJvbSBpbmRleCB0byBzZWdtZW50IGluZGV4LCBpbmRleCAtIChzZWdtZW50KjYpXG4vL1xudmVjMyBnZXRDb25lUG9zaXRpb24odmVjMyBkLCBmbG9hdCByYXdJbmRleCwgZmxvYXQgY29uZU9mZnNldCwgb3V0IHZlYzMgbm9ybWFsKSB7XG5cbiAgY29uc3QgZmxvYXQgc2VnbWVudENvdW50ID0gOC4wO1xuXG4gIGZsb2F0IGluZGV4ID0gcmF3SW5kZXggLSBmbG9vcihyYXdJbmRleCAvXG4gICAgKHNlZ21lbnRDb3VudCAqIDYuMCkpICpcbiAgICAoc2VnbWVudENvdW50ICogNi4wKTtcblxuICBmbG9hdCBzZWdtZW50ID0gZmxvb3IoMC4wMDEgKyBpbmRleC82LjApO1xuICBmbG9hdCBzZWdtZW50SW5kZXggPSBpbmRleCAtIChzZWdtZW50KjYuMCk7XG5cbiAgbm9ybWFsID0gLW5vcm1hbGl6ZShkKTtcblxuICBpZiAoc2VnbWVudEluZGV4ID4gMi45OSAmJiBzZWdtZW50SW5kZXggPCAzLjAxKSB7XG4gICAgcmV0dXJuIG1peCh2ZWMzKDAuMCksIC1kLCBjb25lT2Zmc2V0KTtcbiAgfVxuXG4gIGZsb2F0IG5leHRBbmdsZSA9IChcbiAgICAoc2VnbWVudEluZGV4ID4gMC45OSAmJiAgc2VnbWVudEluZGV4IDwgMS4wMSkgfHxcbiAgICAoc2VnbWVudEluZGV4ID4gNC45OSAmJiAgc2VnbWVudEluZGV4IDwgNS4wMSlcbiAgKSA/IDEuMCA6IDAuMDtcbiAgZmxvYXQgYW5nbGUgPSAyLjAgKiAzLjE0MTU5ICogKChzZWdtZW50ICsgbmV4dEFuZ2xlKSAvIHNlZ21lbnRDb3VudCk7XG5cbiAgdmVjMyB2MSA9IG1peChkLCB2ZWMzKDAuMCksIGNvbmVPZmZzZXQpO1xuICB2ZWMzIHYyID0gdjEgLSBkO1xuXG4gIHZlYzMgdSA9IGdldE9ydGhvZ29uYWxWZWN0b3IoZCk7XG4gIHZlYzMgdiA9IG5vcm1hbGl6ZShjcm9zcyh1LCBkKSk7XG5cbiAgdmVjMyB4ID0gdSAqIGNvcyhhbmdsZSkgKiBsZW5ndGgoZCkqMC4yNTtcbiAgdmVjMyB5ID0gdiAqIHNpbihhbmdsZSkgKiBsZW5ndGgoZCkqMC4yNTtcbiAgdmVjMyB2MyA9IHYyICsgeCArIHk7XG4gIGlmIChzZWdtZW50SW5kZXggPCAzLjApIHtcbiAgICB2ZWMzIHR4ID0gdSAqIHNpbihhbmdsZSk7XG4gICAgdmVjMyB0eSA9IHYgKiAtY29zKGFuZ2xlKTtcbiAgICB2ZWMzIHRhbmdlbnQgPSB0eCArIHR5O1xuICAgIG5vcm1hbCA9IG5vcm1hbGl6ZShjcm9zcyh2MyAtIHYxLCB0YW5nZW50KSk7XG4gIH1cblxuICBpZiAoc2VnbWVudEluZGV4ID09IDAuMCkge1xuICAgIHJldHVybiBtaXgoZCwgdmVjMygwLjApLCBjb25lT2Zmc2V0KTtcbiAgfVxuICByZXR1cm4gdjM7XG59XG5cbmF0dHJpYnV0ZSB2ZWMzIHZlY3RvcjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yLCBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWMyIHV2O1xuXG51bmlmb3JtIGZsb2F0IHZlY3RvclNjYWxlLCBjb25lU2NhbGUsIGNvbmVPZmZzZXQ7XG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb24sIGludmVyc2VNb2RlbDtcbnVuaWZvcm0gdmVjMyBleWVQb3NpdGlvbiwgbGlnaHRQb3NpdGlvbjtcblxudmFyeWluZyB2ZWMzIGZfbm9ybWFsLCBmX2xpZ2h0RGlyZWN0aW9uLCBmX2V5ZURpcmVjdGlvbiwgZl9kYXRhLCBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICAvLyBTY2FsZSB0aGUgdmVjdG9yIG1hZ25pdHVkZSB0byBzdGF5IGNvbnN0YW50IHdpdGhcbiAgLy8gbW9kZWwgJiB2aWV3IGNoYW5nZXMuXG4gIHZlYzMgbm9ybWFsO1xuICB2ZWMzIFhZWiA9IGdldENvbmVQb3NpdGlvbihtYXQzKG1vZGVsKSAqICgodmVjdG9yU2NhbGUgKiBjb25lU2NhbGUpICogdmVjdG9yKSwgcG9zaXRpb24udywgY29uZU9mZnNldCwgbm9ybWFsKTtcbiAgdmVjNCBjb25lUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQocG9zaXRpb24ueHl6LCAxLjApICsgdmVjNChYWVosIDAuMCk7XG5cbiAgLy9MaWdodGluZyBnZW9tZXRyeSBwYXJhbWV0ZXJzXG4gIHZlYzQgY2FtZXJhQ29vcmRpbmF0ZSA9IHZpZXcgKiBjb25lUG9zaXRpb247XG4gIGNhbWVyYUNvb3JkaW5hdGUueHl6IC89IGNhbWVyYUNvb3JkaW5hdGUudztcbiAgZl9saWdodERpcmVjdGlvbiA9IGxpZ2h0UG9zaXRpb24gLSBjYW1lcmFDb29yZGluYXRlLnh5ejtcbiAgZl9leWVEaXJlY3Rpb24gICA9IGV5ZVBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIGZfbm9ybWFsID0gbm9ybWFsaXplKCh2ZWM0KG5vcm1hbCwgMC4wKSAqIGludmVyc2VNb2RlbCkueHl6KTtcblxuICAvLyB2ZWM0IG1fcG9zaXRpb24gID0gbW9kZWwgKiB2ZWM0KGNvbmVQb3NpdGlvbiwgMS4wKTtcbiAgdmVjNCB0X3Bvc2l0aW9uICA9IHZpZXcgKiBjb25lUG9zaXRpb247XG4gIGdsX1Bvc2l0aW9uICAgICAgPSBwcm9qZWN0aW9uICogdF9wb3NpdGlvbjtcblxuICBmX2NvbG9yICAgICAgICAgID0gY29sb3I7XG4gIGZfZGF0YSAgICAgICAgICAgPSBjb25lUG9zaXRpb24ueHl6O1xuICBmX3Bvc2l0aW9uICAgICAgID0gcG9zaXRpb24ueHl6O1xuICBmX3V2ICAgICAgICAgICAgID0gdXY7XG59XG4iXSksYT1uKFsiI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGVcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuZmxvYXQgYmVja21hbm5EaXN0cmlidXRpb24oZmxvYXQgeCwgZmxvYXQgcm91Z2huZXNzKSB7XG4gIGZsb2F0IE5kb3RIID0gbWF4KHgsIDAuMDAwMSk7XG4gIGZsb2F0IGNvczJBbHBoYSA9IE5kb3RIICogTmRvdEg7XG4gIGZsb2F0IHRhbjJBbHBoYSA9IChjb3MyQWxwaGEgLSAxLjApIC8gY29zMkFscGhhO1xuICBmbG9hdCByb3VnaG5lc3MyID0gcm91Z2huZXNzICogcm91Z2huZXNzO1xuICBmbG9hdCBkZW5vbSA9IDMuMTQxNTkyNjUzNTg5NzkzICogcm91Z2huZXNzMiAqIGNvczJBbHBoYSAqIGNvczJBbHBoYTtcbiAgcmV0dXJuIGV4cCh0YW4yQWxwaGEgLyByb3VnaG5lc3MyKSAvIGRlbm9tO1xufVxuXG5mbG9hdCBjb29rVG9ycmFuY2VTcGVjdWxhcihcbiAgdmVjMyBsaWdodERpcmVjdGlvbixcbiAgdmVjMyB2aWV3RGlyZWN0aW9uLFxuICB2ZWMzIHN1cmZhY2VOb3JtYWwsXG4gIGZsb2F0IHJvdWdobmVzcyxcbiAgZmxvYXQgZnJlc25lbCkge1xuXG4gIGZsb2F0IFZkb3ROID0gbWF4KGRvdCh2aWV3RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcbiAgZmxvYXQgTGRvdE4gPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcblxuICAvL0hhbGYgYW5nbGUgdmVjdG9yXG4gIHZlYzMgSCA9IG5vcm1hbGl6ZShsaWdodERpcmVjdGlvbiArIHZpZXdEaXJlY3Rpb24pO1xuXG4gIC8vR2VvbWV0cmljIHRlcm1cbiAgZmxvYXQgTmRvdEggPSBtYXgoZG90KHN1cmZhY2VOb3JtYWwsIEgpLCAwLjApO1xuICBmbG9hdCBWZG90SCA9IG1heChkb3Qodmlld0RpcmVjdGlvbiwgSCksIDAuMDAwMDAxKTtcbiAgZmxvYXQgTGRvdEggPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBIKSwgMC4wMDAwMDEpO1xuICBmbG9hdCBHMSA9ICgyLjAgKiBOZG90SCAqIFZkb3ROKSAvIFZkb3RIO1xuICBmbG9hdCBHMiA9ICgyLjAgKiBOZG90SCAqIExkb3ROKSAvIExkb3RIO1xuICBmbG9hdCBHID0gbWluKDEuMCwgbWluKEcxLCBHMikpO1xuICBcbiAgLy9EaXN0cmlidXRpb24gdGVybVxuICBmbG9hdCBEID0gYmVja21hbm5EaXN0cmlidXRpb24oTmRvdEgsIHJvdWdobmVzcyk7XG5cbiAgLy9GcmVzbmVsIHRlcm1cbiAgZmxvYXQgRiA9IHBvdygxLjAgLSBWZG90TiwgZnJlc25lbCk7XG5cbiAgLy9NdWx0aXBseSB0ZXJtcyBhbmQgZG9uZVxuICByZXR1cm4gIEcgKiBGICogRCAvIG1heCgzLjE0MTU5MjY1ICogVmRvdE4sIDAuMDAwMDAxKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCByb3VnaG5lc3MsIGZyZXNuZWwsIGthbWJpZW50LCBrZGlmZnVzZSwga3NwZWN1bGFyLCBvcGFjaXR5O1xudW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTtcblxudmFyeWluZyB2ZWMzIGZfbm9ybWFsLCBmX2xpZ2h0RGlyZWN0aW9uLCBmX2V5ZURpcmVjdGlvbiwgZl9kYXRhLCBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBmX3Bvc2l0aW9uKSkgZGlzY2FyZDtcbiAgdmVjMyBOID0gbm9ybWFsaXplKGZfbm9ybWFsKTtcbiAgdmVjMyBMID0gbm9ybWFsaXplKGZfbGlnaHREaXJlY3Rpb24pO1xuICB2ZWMzIFYgPSBub3JtYWxpemUoZl9leWVEaXJlY3Rpb24pO1xuXG4gIGlmKGdsX0Zyb250RmFjaW5nKSB7XG4gICAgTiA9IC1OO1xuICB9XG5cbiAgZmxvYXQgc3BlY3VsYXIgPSBtaW4oMS4wLCBtYXgoMC4wLCBjb29rVG9ycmFuY2VTcGVjdWxhcihMLCBWLCBOLCByb3VnaG5lc3MsIGZyZXNuZWwpKSk7XG4gIGZsb2F0IGRpZmZ1c2UgID0gbWluKGthbWJpZW50ICsga2RpZmZ1c2UgKiBtYXgoZG90KE4sIEwpLCAwLjApLCAxLjApO1xuXG4gIHZlYzQgc3VyZmFjZUNvbG9yID0gZl9jb2xvciAqIHRleHR1cmUyRCh0ZXh0dXJlLCBmX3V2KTtcbiAgdmVjNCBsaXRDb2xvciA9IHN1cmZhY2VDb2xvci5hICogdmVjNChkaWZmdXNlICogc3VyZmFjZUNvbG9yLnJnYiArIGtzcGVjdWxhciAqIHZlYzMoMSwxLDEpICogc3BlY3VsYXIsICAxLjApO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGxpdENvbG9yICogb3BhY2l0eTtcbn1cbiJdKSxvPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZlYzMgZ2V0T3J0aG9nb25hbFZlY3Rvcih2ZWMzIHYpIHtcbiAgLy8gUmV0dXJuIHVwLXZlY3RvciBmb3Igb25seS16IHZlY3Rvci5cbiAgLy8gUmV0dXJuIGF4ICsgYnkgKyBjeiA9IDAsIGEgcG9pbnQgdGhhdCBsaWVzIG9uIHRoZSBwbGFuZSB0aGF0IGhhcyB2IGFzIGEgbm9ybWFsIGFuZCB0aGF0IGlzbid0ICgwLDAsMCkuXG4gIC8vIEZyb20gdGhlIGFib3ZlIGlmLXN0YXRlbWVudCB3ZSBoYXZlIHx8YXx8ID4gMCAgVSAgfHxifHwgPiAwLlxuICAvLyBBc3NpZ24geiA9IDAsIHggPSAtYiwgeSA9IGE6XG4gIC8vIGEqLWIgKyBiKmEgKyBjKjAgPSAtYmEgKyBiYSArIDAgPSAwXG4gIGlmICh2Lngqdi54ID4gdi56KnYueiB8fCB2Lnkqdi55ID4gdi56KnYueikge1xuICAgIHJldHVybiBub3JtYWxpemUodmVjMygtdi55LCB2LngsIDAuMCkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBub3JtYWxpemUodmVjMygwLjAsIHYueiwgLXYueSkpO1xuICB9XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgY29uZSB2ZXJ0ZXggYW5kIG5vcm1hbCBhdCB0aGUgZ2l2ZW4gaW5kZXguXG4vL1xuLy8gVGhlIHJldHVybmVkIHZlcnRleCBpcyBmb3IgYSBjb25lIHdpdGggaXRzIHRvcCBhdCBvcmlnaW4gYW5kIGhlaWdodCBvZiAxLjAsXG4vLyBwb2ludGluZyBpbiB0aGUgZGlyZWN0aW9uIG9mIHRoZSB2ZWN0b3IgYXR0cmlidXRlLlxuLy9cbi8vIEVhY2ggY29uZSBpcyBtYWRlIHVwIG9mIGEgdG9wIHZlcnRleCwgYSBjZW50ZXIgYmFzZSB2ZXJ0ZXggYW5kIGJhc2UgcGVyaW1ldGVyIHZlcnRpY2VzLlxuLy8gVGhlc2UgdmVydGljZXMgYXJlIHVzZWQgdG8gbWFrZSB1cCB0aGUgdHJpYW5nbGVzIG9mIHRoZSBjb25lIGJ5IHRoZSBmb2xsb3dpbmc6XG4vLyAgIHNlZ21lbnQgKyAwIHRvcCB2ZXJ0ZXhcbi8vICAgc2VnbWVudCArIDEgcGVyaW1ldGVyIHZlcnRleCBhKzFcbi8vICAgc2VnbWVudCArIDIgcGVyaW1ldGVyIHZlcnRleCBhXG4vLyAgIHNlZ21lbnQgKyAzIGNlbnRlciBiYXNlIHZlcnRleFxuLy8gICBzZWdtZW50ICsgNCBwZXJpbWV0ZXIgdmVydGV4IGFcbi8vICAgc2VnbWVudCArIDUgcGVyaW1ldGVyIHZlcnRleCBhKzFcbi8vIFdoZXJlIHNlZ21lbnQgaXMgdGhlIG51bWJlciBvZiB0aGUgcmFkaWFsIHNlZ21lbnQgKiA2IGFuZCBhIGlzIHRoZSBhbmdsZSBhdCB0aGF0IHJhZGlhbCBzZWdtZW50LlxuLy8gVG8gZ28gZnJvbSBpbmRleCB0byBzZWdtZW50LCBmbG9vcihpbmRleCAvIDYpXG4vLyBUbyBnbyBmcm9tIHNlZ21lbnQgdG8gYW5nbGUsIDIqcGkgKiAoc2VnbWVudC9zZWdtZW50Q291bnQpXG4vLyBUbyBnbyBmcm9tIGluZGV4IHRvIHNlZ21lbnQgaW5kZXgsIGluZGV4IC0gKHNlZ21lbnQqNilcbi8vXG52ZWMzIGdldENvbmVQb3NpdGlvbih2ZWMzIGQsIGZsb2F0IHJhd0luZGV4LCBmbG9hdCBjb25lT2Zmc2V0LCBvdXQgdmVjMyBub3JtYWwpIHtcblxuICBjb25zdCBmbG9hdCBzZWdtZW50Q291bnQgPSA4LjA7XG5cbiAgZmxvYXQgaW5kZXggPSByYXdJbmRleCAtIGZsb29yKHJhd0luZGV4IC9cbiAgICAoc2VnbWVudENvdW50ICogNi4wKSkgKlxuICAgIChzZWdtZW50Q291bnQgKiA2LjApO1xuXG4gIGZsb2F0IHNlZ21lbnQgPSBmbG9vcigwLjAwMSArIGluZGV4LzYuMCk7XG4gIGZsb2F0IHNlZ21lbnRJbmRleCA9IGluZGV4IC0gKHNlZ21lbnQqNi4wKTtcblxuICBub3JtYWwgPSAtbm9ybWFsaXplKGQpO1xuXG4gIGlmIChzZWdtZW50SW5kZXggPiAyLjk5ICYmIHNlZ21lbnRJbmRleCA8IDMuMDEpIHtcbiAgICByZXR1cm4gbWl4KHZlYzMoMC4wKSwgLWQsIGNvbmVPZmZzZXQpO1xuICB9XG5cbiAgZmxvYXQgbmV4dEFuZ2xlID0gKFxuICAgIChzZWdtZW50SW5kZXggPiAwLjk5ICYmICBzZWdtZW50SW5kZXggPCAxLjAxKSB8fFxuICAgIChzZWdtZW50SW5kZXggPiA0Ljk5ICYmICBzZWdtZW50SW5kZXggPCA1LjAxKVxuICApID8gMS4wIDogMC4wO1xuICBmbG9hdCBhbmdsZSA9IDIuMCAqIDMuMTQxNTkgKiAoKHNlZ21lbnQgKyBuZXh0QW5nbGUpIC8gc2VnbWVudENvdW50KTtcblxuICB2ZWMzIHYxID0gbWl4KGQsIHZlYzMoMC4wKSwgY29uZU9mZnNldCk7XG4gIHZlYzMgdjIgPSB2MSAtIGQ7XG5cbiAgdmVjMyB1ID0gZ2V0T3J0aG9nb25hbFZlY3RvcihkKTtcbiAgdmVjMyB2ID0gbm9ybWFsaXplKGNyb3NzKHUsIGQpKTtcblxuICB2ZWMzIHggPSB1ICogY29zKGFuZ2xlKSAqIGxlbmd0aChkKSowLjI1O1xuICB2ZWMzIHkgPSB2ICogc2luKGFuZ2xlKSAqIGxlbmd0aChkKSowLjI1O1xuICB2ZWMzIHYzID0gdjIgKyB4ICsgeTtcbiAgaWYgKHNlZ21lbnRJbmRleCA8IDMuMCkge1xuICAgIHZlYzMgdHggPSB1ICogc2luKGFuZ2xlKTtcbiAgICB2ZWMzIHR5ID0gdiAqIC1jb3MoYW5nbGUpO1xuICAgIHZlYzMgdGFuZ2VudCA9IHR4ICsgdHk7XG4gICAgbm9ybWFsID0gbm9ybWFsaXplKGNyb3NzKHYzIC0gdjEsIHRhbmdlbnQpKTtcbiAgfVxuXG4gIGlmIChzZWdtZW50SW5kZXggPT0gMC4wKSB7XG4gICAgcmV0dXJuIG1peChkLCB2ZWMzKDAuMCksIGNvbmVPZmZzZXQpO1xuICB9XG4gIHJldHVybiB2Mztcbn1cblxuYXR0cmlidXRlIHZlYzQgdmVjdG9yO1xuYXR0cmlidXRlIHZlYzQgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSBmbG9hdCB2ZWN0b3JTY2FsZSwgY29uZVNjYWxlLCBjb25lT2Zmc2V0O1xuXG52YXJ5aW5nIHZlYzMgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2lkO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgbm9ybWFsO1xuICB2ZWMzIFhZWiA9IGdldENvbmVQb3NpdGlvbihtYXQzKG1vZGVsKSAqICgodmVjdG9yU2NhbGUgKiBjb25lU2NhbGUpICogdmVjdG9yLnh5eiksIHBvc2l0aW9uLncsIGNvbmVPZmZzZXQsIG5vcm1hbCk7XG4gIHZlYzQgY29uZVBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLnh5eiwgMS4wKSArIHZlYzQoWFlaLCAwLjApO1xuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogY29uZVBvc2l0aW9uO1xuICBmX2lkICAgICAgICA9IGlkO1xuICBmX3Bvc2l0aW9uICA9IHBvc2l0aW9uLnh5ejtcbn1cbiJdKSxzPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzICBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCBwaWNrSWQ7XG5cbnZhcnlpbmcgdmVjMyBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfaWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgZl9wb3NpdGlvbikpIGRpc2NhcmQ7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChwaWNrSWQsIGZfaWQueHl6KTtcbn0iXSk7ci5tZXNoU2hhZGVyPXt2ZXJ0ZXg6aSxmcmFnbWVudDphLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjNCJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9LHtuYW1lOiJ1diIsdHlwZToidmVjMiJ9LHtuYW1lOiJ2ZWN0b3IiLHR5cGU6InZlYzMifV19LHIucGlja1NoYWRlcj17dmVydGV4Om8sZnJhZ21lbnQ6cyxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzQifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifSx7bmFtZToidmVjdG9yIix0eXBlOiJ2ZWMzIn1dfX0se2dsc2xpZnk6NDI0fV0sMjYxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXswOiJOT05FIiwxOiJPTkUiLDI6IkxJTkVfTE9PUCIsMzoiTElORV9TVFJJUCIsNDoiVFJJQU5HTEVTIiw1OiJUUklBTkdMRV9TVFJJUCIsNjoiVFJJQU5HTEVfRkFOIiwyNTY6IkRFUFRIX0JVRkZFUl9CSVQiLDUxMjoiTkVWRVIiLDUxMzoiTEVTUyIsNTE0OiJFUVVBTCIsNTE1OiJMRVFVQUwiLDUxNjoiR1JFQVRFUiIsNTE3OiJOT1RFUVVBTCIsNTE4OiJHRVFVQUwiLDUxOToiQUxXQVlTIiw3Njg6IlNSQ19DT0xPUiIsNzY5OiJPTkVfTUlOVVNfU1JDX0NPTE9SIiw3NzA6IlNSQ19BTFBIQSIsNzcxOiJPTkVfTUlOVVNfU1JDX0FMUEhBIiw3NzI6IkRTVF9BTFBIQSIsNzczOiJPTkVfTUlOVVNfRFNUX0FMUEhBIiw3NzQ6IkRTVF9DT0xPUiIsNzc1OiJPTkVfTUlOVVNfRFNUX0NPTE9SIiw3NzY6IlNSQ19BTFBIQV9TQVRVUkFURSIsMTAyNDoiU1RFTkNJTF9CVUZGRVJfQklUIiwxMDI4OiJGUk9OVCIsMTAyOToiQkFDSyIsMTAzMjoiRlJPTlRfQU5EX0JBQ0siLDEyODA6IklOVkFMSURfRU5VTSIsMTI4MToiSU5WQUxJRF9WQUxVRSIsMTI4MjoiSU5WQUxJRF9PUEVSQVRJT04iLDEyODU6Ik9VVF9PRl9NRU1PUlkiLDEyODY6IklOVkFMSURfRlJBTUVCVUZGRVJfT1BFUkFUSU9OIiwyMzA0OiJDVyIsMjMwNToiQ0NXIiwyODQ5OiJMSU5FX1dJRFRIIiwyODg0OiJDVUxMX0ZBQ0UiLDI4ODU6IkNVTExfRkFDRV9NT0RFIiwyODg2OiJGUk9OVF9GQUNFIiwyOTI4OiJERVBUSF9SQU5HRSIsMjkyOToiREVQVEhfVEVTVCIsMjkzMDoiREVQVEhfV1JJVEVNQVNLIiwyOTMxOiJERVBUSF9DTEVBUl9WQUxVRSIsMjkzMjoiREVQVEhfRlVOQyIsMjk2MDoiU1RFTkNJTF9URVNUIiwyOTYxOiJTVEVOQ0lMX0NMRUFSX1ZBTFVFIiwyOTYyOiJTVEVOQ0lMX0ZVTkMiLDI5NjM6IlNURU5DSUxfVkFMVUVfTUFTSyIsMjk2NDoiU1RFTkNJTF9GQUlMIiwyOTY1OiJTVEVOQ0lMX1BBU1NfREVQVEhfRkFJTCIsMjk2NjoiU1RFTkNJTF9QQVNTX0RFUFRIX1BBU1MiLDI5Njc6IlNURU5DSUxfUkVGIiwyOTY4OiJTVEVOQ0lMX1dSSVRFTUFTSyIsMjk3ODoiVklFV1BPUlQiLDMwMjQ6IkRJVEhFUiIsMzA0MjoiQkxFTkQiLDMwODg6IlNDSVNTT1JfQk9YIiwzMDg5OiJTQ0lTU09SX1RFU1QiLDMxMDY6IkNPTE9SX0NMRUFSX1ZBTFVFIiwzMTA3OiJDT0xPUl9XUklURU1BU0siLDMzMTc6IlVOUEFDS19BTElHTk1FTlQiLDMzMzM6IlBBQ0tfQUxJR05NRU5UIiwzMzc5OiJNQVhfVEVYVFVSRV9TSVpFIiwzMzg2OiJNQVhfVklFV1BPUlRfRElNUyIsMzQwODoiU1VCUElYRUxfQklUUyIsMzQxMDoiUkVEX0JJVFMiLDM0MTE6IkdSRUVOX0JJVFMiLDM0MTI6IkJMVUVfQklUUyIsMzQxMzoiQUxQSEFfQklUUyIsMzQxNDoiREVQVEhfQklUUyIsMzQxNToiU1RFTkNJTF9CSVRTIiwzNTUzOiJURVhUVVJFXzJEIiw0MzUyOiJET05UX0NBUkUiLDQzNTM6IkZBU1RFU1QiLDQzNTQ6Ik5JQ0VTVCIsNTEyMDoiQllURSIsNTEyMToiVU5TSUdORURfQllURSIsNTEyMjoiU0hPUlQiLDUxMjM6IlVOU0lHTkVEX1NIT1JUIiw1MTI0OiJJTlQiLDUxMjU6IlVOU0lHTkVEX0lOVCIsNTEyNjoiRkxPQVQiLDUzODY6IklOVkVSVCIsNTg5MDoiVEVYVFVSRSIsNjQwMToiU1RFTkNJTF9JTkRFWCIsNjQwMjoiREVQVEhfQ09NUE9ORU5UIiw2NDA2OiJBTFBIQSIsNjQwNzoiUkdCIiw2NDA4OiJSR0JBIiw2NDA5OiJMVU1JTkFOQ0UiLDY0MTA6IkxVTUlOQU5DRV9BTFBIQSIsNzY4MDoiS0VFUCIsNzY4MToiUkVQTEFDRSIsNzY4MjoiSU5DUiIsNzY4MzoiREVDUiIsNzkzNjoiVkVORE9SIiw3OTM3OiJSRU5ERVJFUiIsNzkzODoiVkVSU0lPTiIsOTcyODoiTkVBUkVTVCIsOTcyOToiTElORUFSIiw5OTg0OiJORUFSRVNUX01JUE1BUF9ORUFSRVNUIiw5OTg1OiJMSU5FQVJfTUlQTUFQX05FQVJFU1QiLDk5ODY6Ik5FQVJFU1RfTUlQTUFQX0xJTkVBUiIsOTk4NzoiTElORUFSX01JUE1BUF9MSU5FQVIiLDEwMjQwOiJURVhUVVJFX01BR19GSUxURVIiLDEwMjQxOiJURVhUVVJFX01JTl9GSUxURVIiLDEwMjQyOiJURVhUVVJFX1dSQVBfUyIsMTAyNDM6IlRFWFRVUkVfV1JBUF9UIiwxMDQ5NzoiUkVQRUFUIiwxMDc1MjoiUE9MWUdPTl9PRkZTRVRfVU5JVFMiLDE2Mzg0OiJDT0xPUl9CVUZGRVJfQklUIiwzMjc2OToiQ09OU1RBTlRfQ09MT1IiLDMyNzcwOiJPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1IiLDMyNzcxOiJDT05TVEFOVF9BTFBIQSIsMzI3NzI6Ik9ORV9NSU5VU19DT05TVEFOVF9BTFBIQSIsMzI3NzM6IkJMRU5EX0NPTE9SIiwzMjc3NDoiRlVOQ19BREQiLDMyNzc3OiJCTEVORF9FUVVBVElPTl9SR0IiLDMyNzc4OiJGVU5DX1NVQlRSQUNUIiwzMjc3OToiRlVOQ19SRVZFUlNFX1NVQlRSQUNUIiwzMjgxOToiVU5TSUdORURfU0hPUlRfNF80XzRfNCIsMzI4MjA6IlVOU0lHTkVEX1NIT1JUXzVfNV81XzEiLDMyODIzOiJQT0xZR09OX09GRlNFVF9GSUxMIiwzMjgyNDoiUE9MWUdPTl9PRkZTRVRfRkFDVE9SIiwzMjg1NDoiUkdCQTQiLDMyODU1OiJSR0I1X0ExIiwzMjg3MzoiVEVYVFVSRV9CSU5ESU5HXzJEIiwzMjkyNjoiU0FNUExFX0FMUEhBX1RPX0NPVkVSQUdFIiwzMjkyODoiU0FNUExFX0NPVkVSQUdFIiwzMjkzNjoiU0FNUExFX0JVRkZFUlMiLDMyOTM3OiJTQU1QTEVTIiwzMjkzODoiU0FNUExFX0NPVkVSQUdFX1ZBTFVFIiwzMjkzOToiU0FNUExFX0NPVkVSQUdFX0lOVkVSVCIsMzI5Njg6IkJMRU5EX0RTVF9SR0IiLDMyOTY5OiJCTEVORF9TUkNfUkdCIiwzMjk3MDoiQkxFTkRfRFNUX0FMUEhBIiwzMjk3MToiQkxFTkRfU1JDX0FMUEhBIiwzMzA3MToiQ0xBTVBfVE9fRURHRSIsMzMxNzA6IkdFTkVSQVRFX01JUE1BUF9ISU5UIiwzMzE4OToiREVQVEhfQ09NUE9ORU5UMTYiLDMzMzA2OiJERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQiLDMzNjM1OiJVTlNJR05FRF9TSE9SVF81XzZfNSIsMzM2NDg6Ik1JUlJPUkVEX1JFUEVBVCIsMzM5MDE6IkFMSUFTRURfUE9JTlRfU0laRV9SQU5HRSIsMzM5MDI6IkFMSUFTRURfTElORV9XSURUSF9SQU5HRSIsMzM5ODQ6IlRFWFRVUkUwIiwzMzk4NToiVEVYVFVSRTEiLDMzOTg2OiJURVhUVVJFMiIsMzM5ODc6IlRFWFRVUkUzIiwzMzk4ODoiVEVYVFVSRTQiLDMzOTg5OiJURVhUVVJFNSIsMzM5OTA6IlRFWFRVUkU2IiwzMzk5MToiVEVYVFVSRTciLDMzOTkyOiJURVhUVVJFOCIsMzM5OTM6IlRFWFRVUkU5IiwzMzk5NDoiVEVYVFVSRTEwIiwzMzk5NToiVEVYVFVSRTExIiwzMzk5NjoiVEVYVFVSRTEyIiwzMzk5NzoiVEVYVFVSRTEzIiwzMzk5ODoiVEVYVFVSRTE0IiwzMzk5OToiVEVYVFVSRTE1IiwzNGUzOiJURVhUVVJFMTYiLDM0MDAxOiJURVhUVVJFMTciLDM0MDAyOiJURVhUVVJFMTgiLDM0MDAzOiJURVhUVVJFMTkiLDM0MDA0OiJURVhUVVJFMjAiLDM0MDA1OiJURVhUVVJFMjEiLDM0MDA2OiJURVhUVVJFMjIiLDM0MDA3OiJURVhUVVJFMjMiLDM0MDA4OiJURVhUVVJFMjQiLDM0MDA5OiJURVhUVVJFMjUiLDM0MDEwOiJURVhUVVJFMjYiLDM0MDExOiJURVhUVVJFMjciLDM0MDEyOiJURVhUVVJFMjgiLDM0MDEzOiJURVhUVVJFMjkiLDM0MDE0OiJURVhUVVJFMzAiLDM0MDE1OiJURVhUVVJFMzEiLDM0MDE2OiJBQ1RJVkVfVEVYVFVSRSIsMzQwMjQ6Ik1BWF9SRU5ERVJCVUZGRVJfU0laRSIsMzQwNDE6IkRFUFRIX1NURU5DSUwiLDM0MDU1OiJJTkNSX1dSQVAiLDM0MDU2OiJERUNSX1dSQVAiLDM0MDY3OiJURVhUVVJFX0NVQkVfTUFQIiwzNDA2ODoiVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQIiwzNDA2OToiVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9YIiwzNDA3MDoiVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9YIiwzNDA3MToiVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZIiwzNDA3MjoiVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZIiwzNDA3MzoiVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9aIiwzNDA3NDoiVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aIiwzNDA3NjoiTUFYX0NVQkVfTUFQX1RFWFRVUkVfU0laRSIsMzQzMzg6IlZFUlRFWF9BVFRSSUJfQVJSQVlfRU5BQkxFRCIsMzQzMzk6IlZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRSIsMzQzNDA6IlZFUlRFWF9BVFRSSUJfQVJSQVlfU1RSSURFIiwzNDM0MToiVkVSVEVYX0FUVFJJQl9BUlJBWV9UWVBFIiwzNDM0MjoiQ1VSUkVOVF9WRVJURVhfQVRUUklCIiwzNDM3MzoiVkVSVEVYX0FUVFJJQl9BUlJBWV9QT0lOVEVSIiwzNDQ2NjoiTlVNX0NPTVBSRVNTRURfVEVYVFVSRV9GT1JNQVRTIiwzNDQ2NzoiQ09NUFJFU1NFRF9URVhUVVJFX0ZPUk1BVFMiLDM0NjYwOiJCVUZGRVJfU0laRSIsMzQ2NjE6IkJVRkZFUl9VU0FHRSIsMzQ4MTY6IlNURU5DSUxfQkFDS19GVU5DIiwzNDgxNzoiU1RFTkNJTF9CQUNLX0ZBSUwiLDM0ODE4OiJTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMIiwzNDgxOToiU1RFTkNJTF9CQUNLX1BBU1NfREVQVEhfUEFTUyIsMzQ4Nzc6IkJMRU5EX0VRVUFUSU9OX0FMUEhBIiwzNDkyMToiTUFYX1ZFUlRFWF9BVFRSSUJTIiwzNDkyMjoiVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEIiwzNDkzMDoiTUFYX1RFWFRVUkVfSU1BR0VfVU5JVFMiLDM0OTYyOiJBUlJBWV9CVUZGRVIiLDM0OTYzOiJFTEVNRU5UX0FSUkFZX0JVRkZFUiIsMzQ5NjQ6IkFSUkFZX0JVRkZFUl9CSU5ESU5HIiwzNDk2NToiRUxFTUVOVF9BUlJBWV9CVUZGRVJfQklORElORyIsMzQ5NzU6IlZFUlRFWF9BVFRSSUJfQVJSQVlfQlVGRkVSX0JJTkRJTkciLDM1MDQwOiJTVFJFQU1fRFJBVyIsMzUwNDQ6IlNUQVRJQ19EUkFXIiwzNTA0ODoiRFlOQU1JQ19EUkFXIiwzNTYzMjoiRlJBR01FTlRfU0hBREVSIiwzNTYzMzoiVkVSVEVYX1NIQURFUiIsMzU2NjA6Ik1BWF9WRVJURVhfVEVYVFVSRV9JTUFHRV9VTklUUyIsMzU2NjE6Ik1BWF9DT01CSU5FRF9URVhUVVJFX0lNQUdFX1VOSVRTIiwzNTY2MzoiU0hBREVSX1RZUEUiLDM1NjY0OiJGTE9BVF9WRUMyIiwzNTY2NToiRkxPQVRfVkVDMyIsMzU2NjY6IkZMT0FUX1ZFQzQiLDM1NjY3OiJJTlRfVkVDMiIsMzU2Njg6IklOVF9WRUMzIiwzNTY2OToiSU5UX1ZFQzQiLDM1NjcwOiJCT09MIiwzNTY3MToiQk9PTF9WRUMyIiwzNTY3MjoiQk9PTF9WRUMzIiwzNTY3MzoiQk9PTF9WRUM0IiwzNTY3NDoiRkxPQVRfTUFUMiIsMzU2NzU6IkZMT0FUX01BVDMiLDM1Njc2OiJGTE9BVF9NQVQ0IiwzNTY3ODoiU0FNUExFUl8yRCIsMzU2ODA6IlNBTVBMRVJfQ1VCRSIsMzU3MTI6IkRFTEVURV9TVEFUVVMiLDM1NzEzOiJDT01QSUxFX1NUQVRVUyIsMzU3MTQ6IkxJTktfU1RBVFVTIiwzNTcxNToiVkFMSURBVEVfU1RBVFVTIiwzNTcxNjoiSU5GT19MT0dfTEVOR1RIIiwzNTcxNzoiQVRUQUNIRURfU0hBREVSUyIsMzU3MTg6IkFDVElWRV9VTklGT1JNUyIsMzU3MTk6IkFDVElWRV9VTklGT1JNX01BWF9MRU5HVEgiLDM1NzIwOiJTSEFERVJfU09VUkNFX0xFTkdUSCIsMzU3MjE6IkFDVElWRV9BVFRSSUJVVEVTIiwzNTcyMjoiQUNUSVZFX0FUVFJJQlVURV9NQVhfTEVOR1RIIiwzNTcyNDoiU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OIiwzNTcyNToiQ1VSUkVOVF9QUk9HUkFNIiwzNjAwMzoiU1RFTkNJTF9CQUNLX1JFRiIsMzYwMDQ6IlNURU5DSUxfQkFDS19WQUxVRV9NQVNLIiwzNjAwNToiU1RFTkNJTF9CQUNLX1dSSVRFTUFTSyIsMzYwMDY6IkZSQU1FQlVGRkVSX0JJTkRJTkciLDM2MDA3OiJSRU5ERVJCVUZGRVJfQklORElORyIsMzYwNDg6IkZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfT0JKRUNUX1RZUEUiLDM2MDQ5OiJGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FIiwzNjA1MDoiRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0xFVkVMIiwzNjA1MToiRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9URVhUVVJFX0NVQkVfTUFQX0ZBQ0UiLDM2MDUzOiJGUkFNRUJVRkZFUl9DT01QTEVURSIsMzYwNTQ6IkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCIsMzYwNTU6IkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfTUlTU0lOR19BVFRBQ0hNRU5UIiwzNjA1NzoiRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TIiwzNjA2MToiRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQiLDM2MDY0OiJDT0xPUl9BVFRBQ0hNRU5UMCIsMzYwOTY6IkRFUFRIX0FUVEFDSE1FTlQiLDM2MTI4OiJTVEVOQ0lMX0FUVEFDSE1FTlQiLDM2MTYwOiJGUkFNRUJVRkZFUiIsMzYxNjE6IlJFTkRFUkJVRkZFUiIsMzYxNjI6IlJFTkRFUkJVRkZFUl9XSURUSCIsMzYxNjM6IlJFTkRFUkJVRkZFUl9IRUlHSFQiLDM2MTY0OiJSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUIiwzNjE2ODoiU1RFTkNJTF9JTkRFWDgiLDM2MTc2OiJSRU5ERVJCVUZGRVJfUkVEX1NJWkUiLDM2MTc3OiJSRU5ERVJCVUZGRVJfR1JFRU5fU0laRSIsMzYxNzg6IlJFTkRFUkJVRkZFUl9CTFVFX1NJWkUiLDM2MTc5OiJSRU5ERVJCVUZGRVJfQUxQSEFfU0laRSIsMzYxODA6IlJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFIiwzNjE4MToiUkVOREVSQlVGRkVSX1NURU5DSUxfU0laRSIsMzYxOTQ6IlJHQjU2NSIsMzYzMzY6IkxPV19GTE9BVCIsMzYzMzc6Ik1FRElVTV9GTE9BVCIsMzYzMzg6IkhJR0hfRkxPQVQiLDM2MzM5OiJMT1dfSU5UIiwzNjM0MDoiTUVESVVNX0lOVCIsMzYzNDE6IkhJR0hfSU5UIiwzNjM0NjoiU0hBREVSX0NPTVBJTEVSIiwzNjM0NzoiTUFYX1ZFUlRFWF9VTklGT1JNX1ZFQ1RPUlMiLDM2MzQ4OiJNQVhfVkFSWUlOR19WRUNUT1JTIiwzNjM0OToiTUFYX0ZSQUdNRU5UX1VOSUZPUk1fVkVDVE9SUyIsMzc0NDA6IlVOUEFDS19GTElQX1lfV0VCR0wiLDM3NDQxOiJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wiLDM3NDQyOiJDT05URVhUX0xPU1RfV0VCR0wiLDM3NDQzOiJVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9OX1dFQkdMIiwzNzQ0NDoiQlJPV1NFUl9ERUZBVUxUX1dFQkdMIn19LHt9XSwyNjI6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLzEuMC9udW1iZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuW3RdfX0seyIuLzEuMC9udW1iZXJzIjoyNjF9XSwyNjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj1uKGUpLG89aShlLFt7YnVmZmVyOnIsdHlwZTplLkZMT0FULHNpemU6MyxvZmZzZXQ6MCxzdHJpZGU6NDB9LHtidWZmZXI6cix0eXBlOmUuRkxPQVQsc2l6ZTo0LG9mZnNldDoxMixzdHJpZGU6NDB9LHtidWZmZXI6cix0eXBlOmUuRkxPQVQsc2l6ZTozLG9mZnNldDoyOCxzdHJpZGU6NDB9XSksbD1hKGUpO2wuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGwuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0xLGwuYXR0cmlidXRlcy5vZmZzZXQubG9jYXRpb249Mjt2YXIgYz1uZXcgcyhlLHIsbyxsKTtyZXR1cm4gYy51cGRhdGUodCksY307dmFyIG49dCgiZ2wtYnVmZmVyIiksaT10KCJnbC12YW8iKSxhPXQoIi4vc2hhZGVycy9pbmRleCIpLG89WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Z1bmN0aW9uIHModCxlLHIsbil7dGhpcy5nbD10LHRoaXMuc2hhZGVyPW4sdGhpcy5idWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuYm91bmRzPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dLHRoaXMuY2xpcEJvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLmxpbmVXaWR0aD1bMSwxLDFdLHRoaXMuY2FwU2l6ZT1bMTAsMTAsMTBdLHRoaXMubGluZUNvdW50PVswLDAsMF0sdGhpcy5saW5lT2Zmc2V0PVswLDAsMF0sdGhpcy5vcGFjaXR5PTEsdGhpcy5oYXNBbHBoYT0hMX12YXIgbD1zLnByb3RvdHlwZTtmdW5jdGlvbiBjKHQsZSl7Zm9yKHZhciByPTA7cjwzOysrcil0WzBdW3JdPU1hdGgubWluKHRbMF1bcl0sZVtyXSksdFsxXVtyXT1NYXRoLm1heCh0WzFdW3JdLGVbcl0pfWwuaXNPcGFxdWU9ZnVuY3Rpb24oKXtyZXR1cm4hdGhpcy5oYXNBbHBoYX0sbC5pc1RyYW5zcGFyZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaGFzQWxwaGF9LGwuZHJhd1RyYW5zcGFyZW50PWwuZHJhdz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsLHI9dGhpcy5zaGFkZXIudW5pZm9ybXM7dGhpcy5zaGFkZXIuYmluZCgpO3ZhciBuPXIudmlldz10LnZpZXd8fG8saT1yLnByb2plY3Rpb249dC5wcm9qZWN0aW9ufHxvO3IubW9kZWw9dC5tb2RlbHx8byxyLmNsaXBCb3VuZHM9dGhpcy5jbGlwQm91bmRzLHIub3BhY2l0eT10aGlzLm9wYWNpdHk7dmFyIGE9blsxMl0scz1uWzEzXSxsPW5bMTRdLGM9blsxNV0sdT0odC5fb3J0aG98fCExPzI6MSkqdGhpcy5waXhlbFJhdGlvKihpWzNdKmEraVs3XSpzK2lbMTFdKmwraVsxNV0qYykvZS5kcmF3aW5nQnVmZmVySGVpZ2h0O3RoaXMudmFvLmJpbmQoKTtmb3IodmFyIGY9MDtmPDM7KytmKWUubGluZVdpZHRoKHRoaXMubGluZVdpZHRoW2ZdKnRoaXMucGl4ZWxSYXRpbyksci5jYXBTaXplPXRoaXMuY2FwU2l6ZVtmXSp1LHRoaXMubGluZUNvdW50W2ZdJiZlLmRyYXdBcnJheXMoZS5MSU5FUyx0aGlzLmxpbmVPZmZzZXRbZl0sdGhpcy5saW5lQ291bnRbZl0pO3RoaXMudmFvLnVuYmluZCgpfTt2YXIgdT1mdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoMyksZT0wO2U8MzsrK2Upe2Zvcih2YXIgcj1bXSxuPTE7bjw9MjsrK24pZm9yKHZhciBpPS0xO2k8PTE7aSs9Mil7dmFyIGE9WzAsMCwwXTthWyhuK2UpJTNdPWksci5wdXNoKGEpfXRbZV09cn1yZXR1cm4gdH0oKTtmdW5jdGlvbiBmKHQsZSxyLG4pe2Zvcih2YXIgaT11W25dLGE9MDthPGkubGVuZ3RoOysrYSl7dmFyIG89aVthXTt0LnB1c2goZVswXSxlWzFdLGVbMl0sclswXSxyWzFdLHJbMl0sclszXSxvWzBdLG9bMV0sb1syXSl9cmV0dXJuIGkubGVuZ3RofWwudXBkYXRlPWZ1bmN0aW9uKHQpeyJsaW5lV2lkdGgiaW4odD10fHx7fSkmJih0aGlzLmxpbmVXaWR0aD10LmxpbmVXaWR0aCxBcnJheS5pc0FycmF5KHRoaXMubGluZVdpZHRoKXx8KHRoaXMubGluZVdpZHRoPVt0aGlzLmxpbmVXaWR0aCx0aGlzLmxpbmVXaWR0aCx0aGlzLmxpbmVXaWR0aF0pKSwiY2FwU2l6ZSJpbiB0JiYodGhpcy5jYXBTaXplPXQuY2FwU2l6ZSxBcnJheS5pc0FycmF5KHRoaXMuY2FwU2l6ZSl8fCh0aGlzLmNhcFNpemU9W3RoaXMuY2FwU2l6ZSx0aGlzLmNhcFNpemUsdGhpcy5jYXBTaXplXSkpLHRoaXMuaGFzQWxwaGE9ITEsIm9wYWNpdHkiaW4gdCYmKHRoaXMub3BhY2l0eT0rdC5vcGFjaXR5LHRoaXMub3BhY2l0eTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpO3ZhciBlPXQuY29sb3J8fFtbMCwwLDBdLFswLDAsMF0sWzAsMCwwXV0scj10LnBvc2l0aW9uLG49dC5lcnJvcjtpZihBcnJheS5pc0FycmF5KGVbMF0pfHwoZT1bZSxlLGVdKSxyJiZuKXt2YXIgaT1bXSxhPXIubGVuZ3RoLG89MDt0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSx0aGlzLmxpbmVDb3VudD1bMCwwLDBdO2Zvcih2YXIgcz0wO3M8MzsrK3Mpe3RoaXMubGluZU9mZnNldFtzXT1vO3Q6Zm9yKHZhciBsPTA7bDxhOysrbCl7Zm9yKHZhciB1PXJbbF0saD0wO2g8MzsrK2gpaWYoaXNOYU4odVtoXSl8fCFpc0Zpbml0ZSh1W2hdKSljb250aW51ZSB0O3ZhciBwPW5bbF0sZD1lW3NdO2lmKEFycmF5LmlzQXJyYXkoZFswXSkmJihkPWVbbF0pLDM9PT1kLmxlbmd0aD9kPVtkWzBdLGRbMV0sZFsyXSwxXTo0PT09ZC5sZW5ndGgmJihkPVtkWzBdLGRbMV0sZFsyXSxkWzNdXSwhdGhpcy5oYXNBbHBoYSYmZFszXTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpLCFpc05hTihwWzBdW3NdKSYmIWlzTmFOKHBbMV1bc10pKXt2YXIgbTtpZihwWzBdW3NdPDApKG09dS5zbGljZSgpKVtzXSs9cFswXVtzXSxpLnB1c2godVswXSx1WzFdLHVbMl0sZFswXSxkWzFdLGRbMl0sZFszXSwwLDAsMCxtWzBdLG1bMV0sbVsyXSxkWzBdLGRbMV0sZFsyXSxkWzNdLDAsMCwwKSxjKHRoaXMuYm91bmRzLG0pLG8rPTIrZihpLG0sZCxzKTtpZihwWzFdW3NdPjApKG09dS5zbGljZSgpKVtzXSs9cFsxXVtzXSxpLnB1c2godVswXSx1WzFdLHVbMl0sZFswXSxkWzFdLGRbMl0sZFszXSwwLDAsMCxtWzBdLG1bMV0sbVsyXSxkWzBdLGRbMV0sZFsyXSxkWzNdLDAsMCwwKSxjKHRoaXMuYm91bmRzLG0pLG8rPTIrZihpLG0sZCxzKX19dGhpcy5saW5lQ291bnRbc109by10aGlzLmxpbmVPZmZzZXRbc119dGhpcy5idWZmZXIudXBkYXRlKGkpfX0sbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zaGFkZXIuZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKSx0aGlzLnZhby5kaXNwb3NlKCl9fSx7Ii4vc2hhZGVycy9pbmRleCI6MjY0LCJnbC1idWZmZXIiOjI1NywiZ2wtdmFvIjozNDN9XSwyNjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2xzbGlmeSIpLGk9dCgiZ2wtc2hhZGVyIiksYT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb24sIG9mZnNldDtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uO1xudW5pZm9ybSBmbG9hdCBjYXBTaXplO1xudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMyBmcmFnUG9zaXRpb247XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCB3b3JsZFBvc2l0aW9uICA9IG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgd29ybGRQb3NpdGlvbiAgICAgICA9ICh3b3JsZFBvc2l0aW9uIC8gd29ybGRQb3NpdGlvbi53KSArIHZlYzQoY2FwU2l6ZSAqIG9mZnNldCwgMC4wKTtcbiAgZ2xfUG9zaXRpb24gICAgICAgICA9IHByb2plY3Rpb24gKiB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgZnJhZ0NvbG9yICAgICAgICAgICA9IGNvbG9yO1xuICBmcmFnUG9zaXRpb24gICAgICAgID0gcG9zaXRpb247XG59Il0pLG89bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcbnZhcnlpbmcgdmVjMyBmcmFnUG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChcbiAgICBvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZyYWdQb3NpdGlvbikgfHxcbiAgICBmcmFnQ29sb3IuYSAqIG9wYWNpdHkgPT0gMC5cbiAgKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IG9wYWNpdHkgKiBmcmFnQ29sb3I7XG59Il0pO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LGEsbyxudWxsLFt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToib2Zmc2V0Iix0eXBlOiJ2ZWMzIn1dKX19LHsiZ2wtc2hhZGVyIjozMjMsZ2xzbGlmeTo0MjR9XSwyNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtdGV4dHVyZTJkIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe2l8fChpPXQuRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQsYT10LkZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVCxvPXQuRlJBTUVCVUZGRVJfSU5DT01QTEVURV9ESU1FTlNJT05TLHM9dC5GUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVCk7dmFyIGM9dC5nZXRFeHRlbnNpb24oIldFQkdMX2RyYXdfYnVmZmVycyIpOyFsJiZjJiZmdW5jdGlvbih0LGUpe3ZhciByPXQuZ2V0UGFyYW1ldGVyKGUuTUFYX0NPTE9SX0FUVEFDSE1FTlRTX1dFQkdMKTtsPW5ldyBBcnJheShyKzEpO2Zvcih2YXIgbj0wO248PXI7KytuKXtmb3IodmFyIGk9bmV3IEFycmF5KHIpLGE9MDthPG47KythKWlbYV09dC5DT0xPUl9BVFRBQ0hNRU5UMCthO2ZvcihhPW47YTxyOysrYSlpW2FdPXQuTk9ORTtsW25dPWl9fSh0LGMpO0FycmF5LmlzQXJyYXkoZSkmJihuPXIscj0wfGVbMV0sZT0wfGVbMF0pO2lmKCJudW1iZXIiIT10eXBlb2YgZSl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogTWlzc2luZyBzaGFwZSBwYXJhbWV0ZXIiKTt2YXIgdT10LmdldFBhcmFtZXRlcih0Lk1BWF9SRU5ERVJCVUZGRVJfU0laRSk7aWYoZTwwfHxlPnV8fHI8MHx8cj51KXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBQYXJhbWV0ZXJzIGFyZSB0b28gbGFyZ2UgZm9yIEZCTyIpO3ZhciBmPTE7aWYoImNvbG9yImluKG49bnx8e30pKXtpZigoZj1NYXRoLm1heCgwfG4uY29sb3IsMCkpPDApdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IE11c3Qgc3BlY2lmeSBhIG5vbm5lZ2F0aXZlIG51bWJlciBvZiBjb2xvcnMiKTtpZihmPjEpe2lmKCFjKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBNdWx0aXBsZSBkcmF3IGJ1ZmZlciBleHRlbnNpb24gbm90IHN1cHBvcnRlZCIpO2lmKGY+dC5nZXRQYXJhbWV0ZXIoYy5NQVhfQ09MT1JfQVRUQUNITUVOVFNfV0VCR0wpKXRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBDb250ZXh0IGRvZXMgbm90IHN1cHBvcnQgIitmKyIgZHJhdyBidWZmZXJzIil9fXZhciBoPXQuVU5TSUdORURfQllURSxwPXQuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9mbG9hdCIpO2lmKG4uZmxvYXQmJmY+MCl7aWYoIXApdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IENvbnRleHQgZG9lcyBub3Qgc3VwcG9ydCBmbG9hdGluZyBwb2ludCB0ZXh0dXJlcyIpO2g9dC5GTE9BVH1lbHNlIG4ucHJlZmVyRmxvYXQmJmY+MCYmcCYmKGg9dC5GTE9BVCk7dmFyIG09ITA7ImRlcHRoImluIG4mJihtPSEhbi5kZXB0aCk7dmFyIGc9ITE7InN0ZW5jaWwiaW4gbiYmKGc9ISFuLnN0ZW5jaWwpO3JldHVybiBuZXcgZCh0LGUscixoLGYsbSxnLGMpfTt2YXIgaSxhLG8scyxsPW51bGw7ZnVuY3Rpb24gYyh0KXtyZXR1cm5bdC5nZXRQYXJhbWV0ZXIodC5GUkFNRUJVRkZFUl9CSU5ESU5HKSx0LmdldFBhcmFtZXRlcih0LlJFTkRFUkJVRkZFUl9CSU5ESU5HKSx0LmdldFBhcmFtZXRlcih0LlRFWFRVUkVfQklORElOR18yRCldfWZ1bmN0aW9uIHUodCxlKXt0LmJpbmRGcmFtZWJ1ZmZlcih0LkZSQU1FQlVGRkVSLGVbMF0pLHQuYmluZFJlbmRlcmJ1ZmZlcih0LlJFTkRFUkJVRkZFUixlWzFdKSx0LmJpbmRUZXh0dXJlKHQuVEVYVFVSRV8yRCxlWzJdKX1mdW5jdGlvbiBmKHQpe3N3aXRjaCh0KXtjYXNlIGk6dGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IEZyYW1lYnVmZmVyIHVuc3VwcG9ydGVkIik7Y2FzZSBhOnRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBGcmFtZWJ1ZmZlciBpbmNvbXBsZXRlIGF0dGFjaG1lbnQiKTtjYXNlIG86dGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IEZyYW1lYnVmZmVyIGluY29tcGxldGUgZGltZW5zaW9ucyIpO2Nhc2Ugczp0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogRnJhbWVidWZmZXIgaW5jb21wbGV0ZSBtaXNzaW5nIGF0dGFjaG1lbnQiKTtkZWZhdWx0OnRocm93IG5ldyBFcnJvcigiZ2wtZmJvOiBGcmFtZWJ1ZmZlciBmYWlsZWQgZm9yIHVuc3BlY2lmaWVkIHJlYXNvbiIpfX1mdW5jdGlvbiBoKHQsZSxyLGksYSxvKXtpZighaSlyZXR1cm4gbnVsbDt2YXIgcz1uKHQsZSxyLGEsaSk7cmV0dXJuIHMubWFnRmlsdGVyPXQuTkVBUkVTVCxzLm1pbkZpbHRlcj10Lk5FQVJFU1Qscy5taXBTYW1wbGVzPTEscy5iaW5kKCksdC5mcmFtZWJ1ZmZlclRleHR1cmUyRCh0LkZSQU1FQlVGRkVSLG8sdC5URVhUVVJFXzJELHMuaGFuZGxlLDApLHN9ZnVuY3Rpb24gcCh0LGUscixuLGkpe3ZhciBhPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCk7cmV0dXJuIHQuYmluZFJlbmRlcmJ1ZmZlcih0LlJFTkRFUkJVRkZFUixhKSx0LnJlbmRlcmJ1ZmZlclN0b3JhZ2UodC5SRU5ERVJCVUZGRVIsbixlLHIpLHQuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIodC5GUkFNRUJVRkZFUixpLHQuUkVOREVSQlVGRkVSLGEpLGF9ZnVuY3Rpb24gZCh0LGUscixuLGksYSxvLHMpe3RoaXMuZ2w9dCx0aGlzLl9zaGFwZT1bMHxlLDB8cl0sdGhpcy5fZGVzdHJveWVkPSExLHRoaXMuX2V4dD1zLHRoaXMuY29sb3I9bmV3IEFycmF5KGkpO2Zvcih2YXIgZD0wO2Q8aTsrK2QpdGhpcy5jb2xvcltkXT1udWxsO3RoaXMuX2NvbG9yX3JiPW51bGwsdGhpcy5kZXB0aD1udWxsLHRoaXMuX2RlcHRoX3JiPW51bGwsdGhpcy5fY29sb3JUeXBlPW4sdGhpcy5fdXNlRGVwdGg9YSx0aGlzLl91c2VTdGVuY2lsPW87dmFyIG09dGhpcyxnPVswfGUsMHxyXTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhnLHswOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbS5fc2hhcGVbMF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gbS53aWR0aD10fX0sMTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG0uX3NoYXBlWzFdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG0uaGVpZ2h0PXR9fX0pLHRoaXMuX3NoYXBlVmVjdG9yPWcsZnVuY3Rpb24odCl7dmFyIGU9Yyh0LmdsKSxyPXQuZ2wsbj10LmhhbmRsZT1yLmNyZWF0ZUZyYW1lYnVmZmVyKCksaT10Ll9zaGFwZVswXSxhPXQuX3NoYXBlWzFdLG89dC5jb2xvci5sZW5ndGgscz10Ll9leHQsZD10Ll91c2VTdGVuY2lsLG09dC5fdXNlRGVwdGgsZz10Ll9jb2xvclR5cGU7ci5iaW5kRnJhbWVidWZmZXIoci5GUkFNRUJVRkZFUixuKTtmb3IodmFyIHY9MDt2PG87Kyt2KXQuY29sb3Jbdl09aChyLGksYSxnLHIuUkdCQSxyLkNPTE9SX0FUVEFDSE1FTlQwK3YpOzA9PT1vPyh0Ll9jb2xvcl9yYj1wKHIsaSxhLHIuUkdCQTQsci5DT0xPUl9BVFRBQ0hNRU5UMCkscyYmcy5kcmF3QnVmZmVyc1dFQkdMKGxbMF0pKTpvPjEmJnMuZHJhd0J1ZmZlcnNXRUJHTChsW29dKTt2YXIgeT1yLmdldEV4dGVuc2lvbigiV0VCR0xfZGVwdGhfdGV4dHVyZSIpO3k/ZD90LmRlcHRoPWgocixpLGEseS5VTlNJR05FRF9JTlRfMjRfOF9XRUJHTCxyLkRFUFRIX1NURU5DSUwsci5ERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQpOm0mJih0LmRlcHRoPWgocixpLGEsci5VTlNJR05FRF9TSE9SVCxyLkRFUFRIX0NPTVBPTkVOVCxyLkRFUFRIX0FUVEFDSE1FTlQpKTptJiZkP3QuX2RlcHRoX3JiPXAocixpLGEsci5ERVBUSF9TVEVOQ0lMLHIuREVQVEhfU1RFTkNJTF9BVFRBQ0hNRU5UKTptP3QuX2RlcHRoX3JiPXAocixpLGEsci5ERVBUSF9DT01QT05FTlQxNixyLkRFUFRIX0FUVEFDSE1FTlQpOmQmJih0Ll9kZXB0aF9yYj1wKHIsaSxhLHIuU1RFTkNJTF9JTkRFWCxyLlNURU5DSUxfQVRUQUNITUVOVCkpO3ZhciB4PXIuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cyhyLkZSQU1FQlVGRkVSKTtpZih4IT09ci5GUkFNRUJVRkZFUl9DT01QTEVURSl7dC5fZGVzdHJveWVkPSEwLHIuYmluZEZyYW1lYnVmZmVyKHIuRlJBTUVCVUZGRVIsbnVsbCksci5kZWxldGVGcmFtZWJ1ZmZlcih0LmhhbmRsZSksdC5oYW5kbGU9bnVsbCx0LmRlcHRoJiYodC5kZXB0aC5kaXNwb3NlKCksdC5kZXB0aD1udWxsKSx0Ll9kZXB0aF9yYiYmKHIuZGVsZXRlUmVuZGVyYnVmZmVyKHQuX2RlcHRoX3JiKSx0Ll9kZXB0aF9yYj1udWxsKTtmb3Iodj0wO3Y8dC5jb2xvci5sZW5ndGg7Kyt2KXQuY29sb3Jbdl0uZGlzcG9zZSgpLHQuY29sb3Jbdl09bnVsbDt0Ll9jb2xvcl9yYiYmKHIuZGVsZXRlUmVuZGVyYnVmZmVyKHQuX2NvbG9yX3JiKSx0Ll9jb2xvcl9yYj1udWxsKSx1KHIsZSksZih4KX11KHIsZSl9KHRoaXMpfXZhciBtPWQucHJvdG90eXBlO2Z1bmN0aW9uIGcodCxlLHIpe2lmKHQuX2Rlc3Ryb3llZCl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogQ2FuJ3QgcmVzaXplIGRlc3Ryb3llZCBGQk8iKTtpZih0Ll9zaGFwZVswXSE9PWV8fHQuX3NoYXBlWzFdIT09cil7dmFyIG49dC5nbCxpPW4uZ2V0UGFyYW1ldGVyKG4uTUFYX1JFTkRFUkJVRkZFUl9TSVpFKTtpZihlPDB8fGU+aXx8cjwwfHxyPmkpdGhyb3cgbmV3IEVycm9yKCJnbC1mYm86IENhbid0IHJlc2l6ZSBGQk8sIGludmFsaWQgZGltZW5zaW9ucyIpO3QuX3NoYXBlWzBdPWUsdC5fc2hhcGVbMV09cjtmb3IodmFyIGE9YyhuKSxvPTA7bzx0LmNvbG9yLmxlbmd0aDsrK28pdC5jb2xvcltvXS5zaGFwZT10Ll9zaGFwZTt0Ll9jb2xvcl9yYiYmKG4uYmluZFJlbmRlcmJ1ZmZlcihuLlJFTkRFUkJVRkZFUix0Ll9jb2xvcl9yYiksbi5yZW5kZXJidWZmZXJTdG9yYWdlKG4uUkVOREVSQlVGRkVSLG4uUkdCQTQsdC5fc2hhcGVbMF0sdC5fc2hhcGVbMV0pKSx0LmRlcHRoJiYodC5kZXB0aC5zaGFwZT10Ll9zaGFwZSksdC5fZGVwdGhfcmImJihuLmJpbmRSZW5kZXJidWZmZXIobi5SRU5ERVJCVUZGRVIsdC5fZGVwdGhfcmIpLHQuX3VzZURlcHRoJiZ0Ll91c2VTdGVuY2lsP24ucmVuZGVyYnVmZmVyU3RvcmFnZShuLlJFTkRFUkJVRkZFUixuLkRFUFRIX1NURU5DSUwsdC5fc2hhcGVbMF0sdC5fc2hhcGVbMV0pOnQuX3VzZURlcHRoP24ucmVuZGVyYnVmZmVyU3RvcmFnZShuLlJFTkRFUkJVRkZFUixuLkRFUFRIX0NPTVBPTkVOVDE2LHQuX3NoYXBlWzBdLHQuX3NoYXBlWzFdKTp0Ll91c2VTdGVuY2lsJiZuLnJlbmRlcmJ1ZmZlclN0b3JhZ2Uobi5SRU5ERVJCVUZGRVIsbi5TVEVOQ0lMX0lOREVYLHQuX3NoYXBlWzBdLHQuX3NoYXBlWzFdKSksbi5iaW5kRnJhbWVidWZmZXIobi5GUkFNRUJVRkZFUix0LmhhbmRsZSk7dmFyIHM9bi5jaGVja0ZyYW1lYnVmZmVyU3RhdHVzKG4uRlJBTUVCVUZGRVIpO3MhPT1uLkZSQU1FQlVGRkVSX0NPTVBMRVRFJiYodC5kaXNwb3NlKCksdShuLGEpLGYocykpLHUobixhKX19T2JqZWN0LmRlZmluZVByb3BlcnRpZXMobSx7c2hhcGU6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXN0cm95ZWQ/WzAsMF06dGhpcy5fc2hhcGVWZWN0b3J9LHNldDpmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpfHwodD1bMHx0LDB8dF0pLDIhPT10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLWZibzogU2hhcGUgdmVjdG9yIG11c3QgYmUgbGVuZ3RoIDIiKTt2YXIgZT0wfHRbMF0scj0wfHRbMV07cmV0dXJuIGcodGhpcyxlLHIpLFtlLHJdfSxlbnVtZXJhYmxlOiExfSx3aWR0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Rlc3Ryb3llZD8wOnRoaXMuX3NoYXBlWzBdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIGcodGhpcyx0fD0wLHRoaXMuX3NoYXBlWzFdKSx0fSxlbnVtZXJhYmxlOiExfSxoZWlnaHQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZXN0cm95ZWQ/MDp0aGlzLl9zaGFwZVsxXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiB0fD0wLGcodGhpcyx0aGlzLl9zaGFwZVswXSx0KSx0fSxlbnVtZXJhYmxlOiExfX0pLG0uYmluZD1mdW5jdGlvbigpe2lmKCF0aGlzLl9kZXN0cm95ZWQpe3ZhciB0PXRoaXMuZ2w7dC5iaW5kRnJhbWVidWZmZXIodC5GUkFNRUJVRkZFUix0aGlzLmhhbmRsZSksdC52aWV3cG9ydCgwLDAsdGhpcy5fc2hhcGVbMF0sdGhpcy5fc2hhcGVbMV0pfX0sbS5kaXNwb3NlPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2Rlc3Ryb3llZCl7dGhpcy5fZGVzdHJveWVkPSEwO3ZhciB0PXRoaXMuZ2w7dC5kZWxldGVGcmFtZWJ1ZmZlcih0aGlzLmhhbmRsZSksdGhpcy5oYW5kbGU9bnVsbCx0aGlzLmRlcHRoJiYodGhpcy5kZXB0aC5kaXNwb3NlKCksdGhpcy5kZXB0aD1udWxsKSx0aGlzLl9kZXB0aF9yYiYmKHQuZGVsZXRlUmVuZGVyYnVmZmVyKHRoaXMuX2RlcHRoX3JiKSx0aGlzLl9kZXB0aF9yYj1udWxsKTtmb3IodmFyIGU9MDtlPHRoaXMuY29sb3IubGVuZ3RoOysrZSl0aGlzLmNvbG9yW2VdLmRpc3Bvc2UoKSx0aGlzLmNvbG9yW2VdPW51bGw7dGhpcy5fY29sb3JfcmImJih0LmRlbGV0ZVJlbmRlcmJ1ZmZlcih0aGlzLl9jb2xvcl9yYiksdGhpcy5fY29sb3JfcmI9bnVsbCl9fX0seyJnbC10ZXh0dXJlMmQiOjMzOH1dLDI2NjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoInNwcmludGYtanMiKS5zcHJpbnRmLGk9dCgiZ2wtY29uc3RhbnRzL2xvb2t1cCIpLGE9dCgiZ2xzbC1zaGFkZXItbmFtZSIpLG89dCgiYWRkLWxpbmUtbnVtYmVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBzPWEoZSl8fCJvZiB1bmtub3duIG5hbWUgKHNlZSBucG0gZ2xzbC1zaGFkZXItbmFtZSkiLGw9InVua25vd24gdHlwZSI7dm9pZCAwIT09ciYmKGw9cj09PWkuRlJBR01FTlRfU0hBREVSPyJmcmFnbWVudCI6InZlcnRleCIpO2Zvcih2YXIgYz1uKCJFcnJvciBjb21waWxpbmcgJXMgc2hhZGVyICVzOlxuIixsLHMpLHU9bigiJXMlcyIsYyx0KSxmPXQuc3BsaXQoIlxuIiksaD17fSxwPTA7cDxmLmxlbmd0aDtwKyspe3ZhciBkPWZbcF07aWYoIiIhPT1kJiYiXDAiIT09ZCl7dmFyIG09cGFyc2VJbnQoZC5zcGxpdCgiOiIpWzJdKTtpZihpc05hTihtKSl0aHJvdyBuZXcgRXJyb3IobigiQ291bGQgbm90IHBhcnNlIGVycm9yOiAlcyIsZCkpO2hbbV09ZH19dmFyIGc9byhlKS5zcGxpdCgiXG4iKTtmb3IocD0wO3A8Zy5sZW5ndGg7cCsrKWlmKGhbcCszXXx8aFtwKzJdfHxoW3ArMV0pe3ZhciB2PWdbcF07aWYoYys9disiXG4iLGhbcCsxXSl7dmFyIHk9aFtwKzFdO3k9eS5zdWJzdHIoeS5zcGxpdCgiOiIsMykuam9pbigiOiIpLmxlbmd0aCsxKS50cmltKCksYys9bigiXl5eICVzXG5cbiIseSl9fXJldHVybntsb25nOmMudHJpbSgpLHNob3J0OnUudHJpbSgpfX19LHsiYWRkLWxpbmUtbnVtYmVycyI6NjgsImdsLWNvbnN0YW50cy9sb29rdXAiOjI2MiwiZ2xzbC1zaGFkZXItbmFtZSI6NDE2LCJzcHJpbnRmLWpzIjo1NDJ9XSwyNjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbCxuPW8ocixsLnZlcnRleCxsLmZyYWdtZW50KSxpPW8ocixsLnBpY2tWZXJ0ZXgsbC5waWNrRnJhZ21lbnQpLGE9cyhyKSx1PXMociksZj1zKHIpLGg9cyhyKSxwPW5ldyBjKHQsbixpLGEsdSxmLGgpO3JldHVybiBwLnVwZGF0ZShlKSx0LmFkZE9iamVjdChwKSxwfTt2YXIgbj10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLGk9dCgiaW90YS1hcnJheSIpLGE9dCgidHlwZWRhcnJheS1wb29sIiksbz10KCJnbC1zaGFkZXIiKSxzPXQoImdsLWJ1ZmZlciIpLGw9dCgiLi9saWIvc2hhZGVycyIpO2Z1bmN0aW9uIGModCxlLHIsbixpLGEsbyl7dGhpcy5wbG90PXQsdGhpcy5zaGFkZXI9ZSx0aGlzLnBpY2tTaGFkZXI9cix0aGlzLnBvc2l0aW9uQnVmZmVyPW4sdGhpcy53ZWlnaHRCdWZmZXI9aSx0aGlzLmNvbG9yQnVmZmVyPWEsdGhpcy5pZEJ1ZmZlcj1vLHRoaXMueERhdGE9W10sdGhpcy55RGF0YT1bXSx0aGlzLnNoYXBlPVswLDBdLHRoaXMuYm91bmRzPVsxLzAsMS8wLC0xLzAsLTEvMF0sdGhpcy5waWNrT2Zmc2V0PTB9dmFyIHUsZj1jLnByb3RvdHlwZSxoPVswLDAsMSwwLDAsMSwxLDAsMSwxLDAsMV07Zi5kcmF3PSh1PVsxLDAsMCwwLDEsMCwwLDAsMV0sZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBsb3QsZT10aGlzLnNoYWRlcixyPXRoaXMuYm91bmRzLG49dGhpcy5udW1WZXJ0aWNlcztpZighKG48PTApKXt2YXIgaT10LmdsLGE9dC5kYXRhQm94LG89clsyXS1yWzBdLHM9clszXS1yWzFdLGw9YVsyXS1hWzBdLGM9YVszXS1hWzFdO3VbMF09MipvL2wsdVs0XT0yKnMvYyx1WzZdPTIqKHJbMF0tYVswXSkvbC0xLHVbN109MiooclsxXS1hWzFdKS9jLTEsZS5iaW5kKCk7dmFyIGY9ZS51bmlmb3JtcztmLnZpZXdUcmFuc2Zvcm09dSxmLnNoYXBlPXRoaXMuc2hhcGU7dmFyIGg9ZS5hdHRyaWJ1dGVzO3RoaXMucG9zaXRpb25CdWZmZXIuYmluZCgpLGgucG9zaXRpb24ucG9pbnRlcigpLHRoaXMud2VpZ2h0QnVmZmVyLmJpbmQoKSxoLndlaWdodC5wb2ludGVyKGkuVU5TSUdORURfQllURSwhMSksdGhpcy5jb2xvckJ1ZmZlci5iaW5kKCksaC5jb2xvci5wb2ludGVyKGkuVU5TSUdORURfQllURSwhMCksaS5kcmF3QXJyYXlzKGkuVFJJQU5HTEVTLDAsbil9fSksZi5kcmF3UGljaz1mdW5jdGlvbigpe3ZhciB0PVsxLDAsMCwwLDEsMCwwLDAsMV0sZT1bMCwwLDAsMF07cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPXRoaXMucGxvdCxpPXRoaXMucGlja1NoYWRlcixhPXRoaXMuYm91bmRzLG89dGhpcy5udW1WZXJ0aWNlcztpZighKG88PTApKXt2YXIgcz1uLmdsLGw9bi5kYXRhQm94LGM9YVsyXS1hWzBdLHU9YVszXS1hWzFdLGY9bFsyXS1sWzBdLGg9bFszXS1sWzFdO3RbMF09MipjL2YsdFs0XT0yKnUvaCx0WzZdPTIqKGFbMF0tbFswXSkvZi0xLHRbN109MiooYVsxXS1sWzFdKS9oLTE7Zm9yKHZhciBwPTA7cDw0OysrcCllW3BdPXI+PjgqcCYyNTU7dGhpcy5waWNrT2Zmc2V0PXIsaS5iaW5kKCk7dmFyIGQ9aS51bmlmb3JtcztkLnZpZXdUcmFuc2Zvcm09dCxkLnBpY2tPZmZzZXQ9ZSxkLnNoYXBlPXRoaXMuc2hhcGU7dmFyIG09aS5hdHRyaWJ1dGVzO3JldHVybiB0aGlzLnBvc2l0aW9uQnVmZmVyLmJpbmQoKSxtLnBvc2l0aW9uLnBvaW50ZXIoKSx0aGlzLndlaWdodEJ1ZmZlci5iaW5kKCksbS53ZWlnaHQucG9pbnRlcihzLlVOU0lHTkVEX0JZVEUsITEpLHRoaXMuaWRCdWZmZXIuYmluZCgpLG0ucGlja0lkLnBvaW50ZXIocy5VTlNJR05FRF9CWVRFLCExKSxzLmRyYXdBcnJheXMocy5UUklBTkdMRVMsMCxvKSxyK3RoaXMuc2hhcGVbMF0qdGhpcy5zaGFwZVsxXX19fSgpLGYucGljaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5waWNrT2Zmc2V0LGk9dGhpcy5zaGFwZVswXSp0aGlzLnNoYXBlWzFdO2lmKHI8bnx8cj49bitpKXJldHVybiBudWxsO3ZhciBhPXItbixvPXRoaXMueERhdGEscz10aGlzLnlEYXRhO3JldHVybntvYmplY3Q6dGhpcyxwb2ludElkOmEsZGF0YUNvb3JkOltvW2EldGhpcy5zaGFwZVswXV0sc1thL3RoaXMuc2hhcGVbMF18MF1dfX0sZi51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9KHQ9dHx8e30pLnNoYXBlfHxbMCwwXSxyPXQueHx8aShlWzBdKSxvPXQueXx8aShlWzFdKSxzPXQuenx8bmV3IEZsb2F0MzJBcnJheShlWzBdKmVbMV0pLGw9ITEhPT10LnpzbW9vdGg7dGhpcy54RGF0YT1yLHRoaXMueURhdGE9bzt2YXIgYyx1LGYscCxkPXQuY29sb3JMZXZlbHN8fFswXSxtPXQuY29sb3JWYWx1ZXN8fFswLDAsMCwxXSxnPWQubGVuZ3RoLHY9dGhpcy5ib3VuZHM7bD8oYz12WzBdPXJbMF0sdT12WzFdPW9bMF0sZj12WzJdPXJbci5sZW5ndGgtMV0scD12WzNdPW9bby5sZW5ndGgtMV0pOihjPXZbMF09clswXSsoclsxXS1yWzBdKS8yLHU9dlsxXT1vWzBdKyhvWzFdLW9bMF0pLzIsZj12WzJdPXJbci5sZW5ndGgtMV0rKHJbci5sZW5ndGgtMV0tcltyLmxlbmd0aC0yXSkvMixwPXZbM109b1tvLmxlbmd0aC0xXSsob1tvLmxlbmd0aC0xXS1vW28ubGVuZ3RoLTJdKS8yKTt2YXIgeT0xLyhmLWMpLHg9MS8ocC11KSxiPWVbMF0sXz1lWzFdO3RoaXMuc2hhcGU9W2IsX107dmFyIHc9KGw/KGItMSkqKF8tMSk6YipfKSooaC5sZW5ndGg+Pj4xKTt0aGlzLm51bVZlcnRpY2VzPXc7Zm9yKHZhciBUPWEubWFsbG9jVWludDgoNCp3KSxrPWEubWFsbG9jRmxvYXQzMigyKncpLEE9YS5tYWxsb2NVaW50OCgyKncpLE09YS5tYWxsb2NVaW50MzIodyksUz0wLEU9bD9iLTE6YixMPWw/Xy0xOl8sQz0wO0M8TDsrK0Mpe3ZhciBQLEk7bD8oUD14KihvW0NdLXUpLEk9eCoob1tDKzFdLXUpKTooUD1DPF8tMT94KihvW0NdLShvW0MrMV0tb1tDXSkvMi11KTp4KihvW0NdLShvW0NdLW9bQy0xXSkvMi11KSxJPUM8Xy0xP3gqKG9bQ10rKG9bQysxXS1vW0NdKS8yLXUpOngqKG9bQ10rKG9bQ10tb1tDLTFdKS8yLXUpKTtmb3IodmFyIE89MDtPPEU7KytPKXt2YXIgeixEO2w/KHo9eSoocltPXS1jKSxEPXkqKHJbTysxXS1jKSk6KHo9TzxiLTE/eSoocltPXS0ocltPKzFdLXJbT10pLzItYyk6eSoocltPXS0ocltPXS1yW08tMV0pLzItYyksRD1PPGItMT95KihyW09dKyhyW08rMV0tcltPXSkvMi1jKTp5KihyW09dKyhyW09dLXJbTy0xXSkvMi1jKSk7Zm9yKHZhciBSPTA7UjxoLmxlbmd0aDtSKz0yKXt2YXIgRixCLE4saixVPWhbUl0sVj1oW1IrMV0sSD1zW2w/KEMrVikqYisoTytVKTpDKmIrT10scT1uLmxlKGQsSCk7aWYocTwwKUY9bVswXSxCPW1bMV0sTj1tWzJdLGo9bVszXTtlbHNlIGlmKHE9PT1nLTEpRj1tWzQqZy00XSxCPW1bNCpnLTNdLE49bVs0KmctMl0saj1tWzQqZy0xXTtlbHNle3ZhciBHPShILWRbcV0pLyhkW3ErMV0tZFtxXSksWT0xLUcsVz00KnEsWD00KihxKzEpO0Y9WSptW1ddK0cqbVtYXSxCPVkqbVtXKzFdK0cqbVtYKzFdLE49WSptW1crMl0rRyptW1grMl0saj1ZKm1bVyszXStHKm1bWCszXX1UWzQqU109MjU1KkYsVFs0KlMrMV09MjU1KkIsVFs0KlMrMl09MjU1Kk4sVFs0KlMrM109MjU1Kmosa1syKlNdPS41KnorLjUqRCxrWzIqUysxXT0uNSpQKy41KkksQVsyKlNdPVUsQVsyKlMrMV09VixNW1NdPUMqYitPLFMrPTF9fX10aGlzLnBvc2l0aW9uQnVmZmVyLnVwZGF0ZShrKSx0aGlzLndlaWdodEJ1ZmZlci51cGRhdGUoQSksdGhpcy5jb2xvckJ1ZmZlci51cGRhdGUoVCksdGhpcy5pZEJ1ZmZlci51cGRhdGUoTSksYS5mcmVlKGspLGEuZnJlZShUKSxhLmZyZWUoQSksYS5mcmVlKE0pfSxmLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBvc2l0aW9uQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLndlaWdodEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5jb2xvckJ1ZmZlci5kaXNwb3NlKCksdGhpcy5pZEJ1ZmZlci5kaXNwb3NlKCksdGhpcy5wbG90LnJlbW92ZU9iamVjdCh0aGlzKX19LHsiLi9saWIvc2hhZGVycyI6MjY4LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTAwLCJnbC1idWZmZXIiOjI1NywiZ2wtc2hhZGVyIjozMjMsImlvdGEtYXJyYXkiOjQzMSwidHlwZWRhcnJheS1wb29sIjo1OTB9XSwyNjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2xzbGlmeSIpO2UuZXhwb3J0cz17ZnJhZ21lbnQ6bihbInByZWNpc2lvbiBsb3dwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQoZnJhZ0NvbG9yLnJnYiAqIGZyYWdDb2xvci5hLCBmcmFnQ29sb3IuYSk7XG59XG4iXSksdmVydGV4Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIHBvc2l0aW9uO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiB3ZWlnaHQ7XG5cbnVuaWZvcm0gdmVjMiBzaGFwZTtcbnVuaWZvcm0gbWF0MyB2aWV3VHJhbnNmb3JtO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgdlBvc2l0aW9uID0gdmlld1RyYW5zZm9ybSAqIHZlYzMoIHBvc2l0aW9uICsgKHdlaWdodC0uNSkvKHNoYXBlLTEuKSAsIDEuMCk7XG4gIGZyYWdDb2xvciA9IGNvbG9yO1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uLnh5LCAwLCB2UG9zaXRpb24ueik7XG59XG4iXSkscGlja0ZyYWdtZW50Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG52YXJ5aW5nIHZlYzIgdldlaWdodDtcblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSB2ZWM0IHBpY2tPZmZzZXQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMiBkID0gc3RlcCguNSwgdldlaWdodCk7XG4gIHZlYzQgaWQgPSBmcmFnSWQgKyBwaWNrT2Zmc2V0O1xuICBpZC54ICs9IGQueCArIGQueSpzaGFwZS54O1xuXG4gIGlkLnkgKz0gZmxvb3IoaWQueCAvIDI1Ni4wKTtcbiAgaWQueCAtPSBmbG9vcihpZC54IC8gMjU2LjApICogMjU2LjA7XG5cbiAgaWQueiArPSBmbG9vcihpZC55IC8gMjU2LjApO1xuICBpZC55IC09IGZsb29yKGlkLnkgLyAyNTYuMCkgKiAyNTYuMDtcblxuICBpZC53ICs9IGZsb29yKGlkLnogLyAyNTYuMCk7XG4gIGlkLnogLT0gZmxvb3IoaWQueiAvIDI1Ni4wKSAqIDI1Ni4wO1xuXG4gIGdsX0ZyYWdDb2xvciA9IGlkLzI1NS47XG59XG4iXSkscGlja1ZlcnRleDpuKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IHBpY2tJZDtcbmF0dHJpYnV0ZSB2ZWMyIHdlaWdodDtcblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSBtYXQzIHZpZXdUcmFuc2Zvcm07XG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG52YXJ5aW5nIHZlYzIgdldlaWdodDtcblxudm9pZCBtYWluKCkge1xuICB2V2VpZ2h0ID0gd2VpZ2h0O1xuXG4gIGZyYWdJZCA9IHBpY2tJZDtcblxuICB2ZWMzIHZQb3NpdGlvbiA9IHZpZXdUcmFuc2Zvcm0gKiB2ZWMzKCBwb3NpdGlvbiArICh3ZWlnaHQtLjUpLyhzaGFwZS0xLikgLCAxLjApO1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQodlBvc2l0aW9uLnh5LCAwLCB2UG9zaXRpb24ueik7XG59XG4iXSl9fSx7Z2xzbGlmeTo0MjR9XSwyNjk6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbHNsaWZ5IiksaT10KCJnbC1zaGFkZXIiKSxhPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbiwgbmV4dFBvc2l0aW9uO1xuYXR0cmlidXRlIGZsb2F0IGFyY0xlbmd0aCwgbGluZVdpZHRoO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5cbnVuaWZvcm0gdmVjMiBzY3JlZW5TaGFwZTtcbnVuaWZvcm0gZmxvYXQgcGl4ZWxSYXRpbztcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMyB3b3JsZFBvc2l0aW9uO1xudmFyeWluZyBmbG9hdCBwaXhlbEFyY0xlbmd0aDtcblxudmVjNCBwcm9qZWN0KHZlYzMgcCkge1xuICByZXR1cm4gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocCwgMS4wKTtcbn1cblxudm9pZCBtYWluKCkge1xuICB2ZWM0IHN0YXJ0UG9pbnQgPSBwcm9qZWN0KHBvc2l0aW9uKTtcbiAgdmVjNCBlbmRQb2ludCAgID0gcHJvamVjdChuZXh0UG9zaXRpb24pO1xuXG4gIHZlYzIgQSA9IHN0YXJ0UG9pbnQueHkgLyBzdGFydFBvaW50Lnc7XG4gIHZlYzIgQiA9ICAgZW5kUG9pbnQueHkgLyAgIGVuZFBvaW50Lnc7XG5cbiAgZmxvYXQgY2xpcEFuZ2xlID0gYXRhbihcbiAgICAoQi55IC0gQS55KSAqIHNjcmVlblNoYXBlLnksXG4gICAgKEIueCAtIEEueCkgKiBzY3JlZW5TaGFwZS54XG4gICk7XG5cbiAgdmVjMiBvZmZzZXQgPSAwLjUgKiBwaXhlbFJhdGlvICogbGluZVdpZHRoICogdmVjMihcbiAgICBzaW4oY2xpcEFuZ2xlKSxcbiAgICAtY29zKGNsaXBBbmdsZSlcbiAgKSAvIHNjcmVlblNoYXBlO1xuXG4gIGdsX1Bvc2l0aW9uID0gdmVjNChzdGFydFBvaW50Lnh5ICsgc3RhcnRQb2ludC53ICogb2Zmc2V0LCBzdGFydFBvaW50Lnp3KTtcblxuICB3b3JsZFBvc2l0aW9uID0gcG9zaXRpb247XG4gIHBpeGVsQXJjTGVuZ3RoID0gYXJjTGVuZ3RoO1xuICBmcmFnQ29sb3IgPSBjb2xvcjtcbn1cbiJdKSxvPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzICAgICAgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gc2FtcGxlcjJEIGRhc2hUZXh0dXJlO1xudW5pZm9ybSBmbG9hdCAgICAgZGFzaFNjYWxlO1xudW5pZm9ybSBmbG9hdCAgICAgb3BhY2l0eTtcblxudmFyeWluZyB2ZWMzICAgIHdvcmxkUG9zaXRpb247XG52YXJ5aW5nIGZsb2F0ICAgcGl4ZWxBcmNMZW5ndGg7XG52YXJ5aW5nIHZlYzQgICAgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChcbiAgICBvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIHdvcmxkUG9zaXRpb24pIHx8XG4gICAgZnJhZ0NvbG9yLmEgKiBvcGFjaXR5ID09IDAuXG4gICkgZGlzY2FyZDtcblxuICBmbG9hdCBkYXNoV2VpZ2h0ID0gdGV4dHVyZTJEKGRhc2hUZXh0dXJlLCB2ZWMyKGRhc2hTY2FsZSAqIHBpeGVsQXJjTGVuZ3RoLCAwKSkucjtcbiAgaWYoZGFzaFdlaWdodCA8IDAuNSkge1xuICAgIGRpc2NhcmQ7XG4gIH1cbiAgZ2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yICogb3BhY2l0eTtcbn1cbiJdKSxzPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG4jZGVmaW5lIEZMT0FUX01BWCAgMS43MDE0MTE4NGUzOFxuI2RlZmluZSBGTE9BVF9NSU4gIDEuMTc1NDk0MzVlLTM4XG5cbi8vIGh0dHBzOi8vZ2l0aHViLmNvbS9taWtvbGFseXNlbmtvL2dsc2wtcmVhZC1mbG9hdC9ibG9iL21hc3Rlci9pbmRleC5nbHNsXG52ZWM0IHBhY2tGbG9hdChmbG9hdCB2KSB7XG4gIGZsb2F0IGF2ID0gYWJzKHYpO1xuXG4gIC8vSGFuZGxlIHNwZWNpYWwgY2FzZXNcbiAgaWYoYXYgPCBGTE9BVF9NSU4pIHtcbiAgICByZXR1cm4gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjApO1xuICB9IGVsc2UgaWYodiA+IEZMT0FUX01BWCkge1xuICAgIHJldHVybiB2ZWM0KDEyNy4wLCAxMjguMCwgMC4wLCAwLjApIC8gMjU1LjA7XG4gIH0gZWxzZSBpZih2IDwgLUZMT0FUX01BWCkge1xuICAgIHJldHVybiB2ZWM0KDI1NS4wLCAxMjguMCwgMC4wLCAwLjApIC8gMjU1LjA7XG4gIH1cblxuICB2ZWM0IGMgPSB2ZWM0KDAsMCwwLDApO1xuXG4gIC8vQ29tcHV0ZSBleHBvbmVudCBhbmQgbWFudGlzc2FcbiAgZmxvYXQgZSA9IGZsb29yKGxvZzIoYXYpKTtcbiAgZmxvYXQgbSA9IGF2ICogcG93KDIuMCwgLWUpIC0gMS4wO1xuXG4gIC8vVW5wYWNrIG1hbnRpc3NhXG4gIGNbMV0gPSBmbG9vcigxMjguMCAqIG0pO1xuICBtIC09IGNbMV0gLyAxMjguMDtcbiAgY1syXSA9IGZsb29yKDMyNzY4LjAgKiBtKTtcbiAgbSAtPSBjWzJdIC8gMzI3NjguMDtcbiAgY1szXSA9IGZsb29yKDgzODg2MDguMCAqIG0pO1xuXG4gIC8vVW5wYWNrIGV4cG9uZW50XG4gIGZsb2F0IGViaWFzID0gZSArIDEyNy4wO1xuICBjWzBdID0gZmxvb3IoZWJpYXMgLyAyLjApO1xuICBlYmlhcyAtPSBjWzBdICogMi4wO1xuICBjWzFdICs9IGZsb29yKGViaWFzKSAqIDEyOC4wO1xuXG4gIC8vVW5wYWNrIHNpZ24gYml0XG4gIGNbMF0gKz0gMTI4LjAgKiBzdGVwKDAuMCwgLXYpO1xuXG4gIC8vU2NhbGUgYmFjayB0byByYW5nZVxuICByZXR1cm4gYyAvIDI1NS4wO1xufVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSBmbG9hdCBwaWNrSWQ7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWMzIHdvcmxkUG9zaXRpb247XG52YXJ5aW5nIGZsb2F0IHBpeGVsQXJjTGVuZ3RoO1xudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZFBvc2l0aW9uKSkgZGlzY2FyZDtcblxuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZC8yNTUuMCwgcGFja0Zsb2F0KHBpeGVsQXJjTGVuZ3RoKS54eXopO1xufSJdKSxsPVt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToibmV4dFBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6ImFyY0xlbmd0aCIsdHlwZToiZmxvYXQifSx7bmFtZToibGluZVdpZHRoIix0eXBlOiJmbG9hdCJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9XTtyLmNyZWF0ZVNoYWRlcj1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LGEsbyxudWxsLGwpfSxyLmNyZWF0ZVBpY2tTaGFkZXI9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCxhLHMsbnVsbCxsKX19LHsiZ2wtc2hhZGVyIjozMjMsZ2xzbGlmeTo0MjR9XSwyNzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2x8fHQuc2NlbmUmJnQuc2NlbmUuZ2wscj1mKGUpO3IuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLHIuYXR0cmlidXRlcy5uZXh0UG9zaXRpb24ubG9jYXRpb249MSxyLmF0dHJpYnV0ZXMuYXJjTGVuZ3RoLmxvY2F0aW9uPTIsci5hdHRyaWJ1dGVzLmxpbmVXaWR0aC5sb2NhdGlvbj0zLHIuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj00O3ZhciBvPWgoZSk7by5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsby5hdHRyaWJ1dGVzLm5leHRQb3NpdGlvbi5sb2NhdGlvbj0xLG8uYXR0cmlidXRlcy5hcmNMZW5ndGgubG9jYXRpb249MixvLmF0dHJpYnV0ZXMubGluZVdpZHRoLmxvY2F0aW9uPTMsby5hdHRyaWJ1dGVzLmNvbG9yLmxvY2F0aW9uPTQ7Zm9yKHZhciBzPW4oZSksbD1pKGUsW3tidWZmZXI6cyxzaXplOjMsb2Zmc2V0OjAsc3RyaWRlOjQ4fSx7YnVmZmVyOnMsc2l6ZTozLG9mZnNldDoxMixzdHJpZGU6NDh9LHtidWZmZXI6cyxzaXplOjEsb2Zmc2V0OjI0LHN0cmlkZTo0OH0se2J1ZmZlcjpzLHNpemU6MSxvZmZzZXQ6Mjgsc3RyaWRlOjQ4fSx7YnVmZmVyOnMsc2l6ZTo0LG9mZnNldDozMixzdHJpZGU6NDh9XSksdT1jKG5ldyBBcnJheSgxMDI0KSxbMjU2LDEsNF0pLHA9MDtwPDEwMjQ7KytwKXUuZGF0YVtwXT0yNTU7dmFyIGQ9YShlLHUpO2Qud3JhcD1lLlJFUEVBVDt2YXIgbT1uZXcgdihlLHIsbyxzLGwsZCk7cmV0dXJuIG0udXBkYXRlKHQpLG19O3ZhciBuPXQoImdsLWJ1ZmZlciIpLGk9dCgiZ2wtdmFvIiksYT10KCJnbC10ZXh0dXJlMmQiKSxvPW5ldyBVaW50OEFycmF5KDQpLHM9bmV3IEZsb2F0MzJBcnJheShvLmJ1ZmZlcik7dmFyIGw9dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxjPXQoIm5kYXJyYXkiKSx1PXQoIi4vbGliL3NoYWRlcnMiKSxmPXUuY3JlYXRlU2hhZGVyLGg9dS5jcmVhdGVQaWNrU2hhZGVyLHA9WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Z1bmN0aW9uIGQodCxlKXtmb3IodmFyIHI9MCxuPTA7bjwzOysrbil7dmFyIGk9dFtuXS1lW25dO3IrPWkqaX1yZXR1cm4gTWF0aC5zcXJ0KHIpfWZ1bmN0aW9uIG0odCl7Zm9yKHZhciBlPVtbLTFlNiwtMWU2LC0xZTZdLFsxZTYsMWU2LDFlNl1dLHI9MDtyPDM7KytyKWVbMF1bcl09TWF0aC5tYXgodFswXVtyXSxlWzBdW3JdKSxlWzFdW3JdPU1hdGgubWluKHRbMV1bcl0sZVsxXVtyXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZyh0LGUscixuKXt0aGlzLmFyY0xlbmd0aD10LHRoaXMucG9zaXRpb249ZSx0aGlzLmluZGV4PXIsdGhpcy5kYXRhQ29vcmRpbmF0ZT1ufWZ1bmN0aW9uIHYodCxlLHIsbixpLGEpe3RoaXMuZ2w9dCx0aGlzLnNoYWRlcj1lLHRoaXMucGlja1NoYWRlcj1yLHRoaXMuYnVmZmVyPW4sdGhpcy52YW89aSx0aGlzLmNsaXBCb3VuZHM9W1stMS8wLC0xLzAsLTEvMF0sWzEvMCwxLzAsMS8wXV0sdGhpcy5wb2ludHM9W10sdGhpcy5hcmNMZW5ndGg9W10sdGhpcy52ZXJ0ZXhDb3VudD0wLHRoaXMuYm91bmRzPVtbMCwwLDBdLFswLDAsMF1dLHRoaXMucGlja0lkPTAsdGhpcy5saW5lV2lkdGg9MSx0aGlzLnRleHR1cmU9YSx0aGlzLmRhc2hTY2FsZT0xLHRoaXMub3BhY2l0eT0xLHRoaXMuaGFzQWxwaGE9ITEsdGhpcy5kaXJ0eT0hMCx0aGlzLnBpeGVsUmF0aW89MX12YXIgeT12LnByb3RvdHlwZTt5LmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNBbHBoYX0seS5pc09wYXF1ZT1mdW5jdGlvbigpe3JldHVybiF0aGlzLmhhc0FscGhhfSx5LnBpY2tTbG90cz0xLHkuc2V0UGlja0Jhc2U9ZnVuY3Rpb24odCl7dGhpcy5waWNrSWQ9dH0seS5kcmF3VHJhbnNwYXJlbnQ9eS5kcmF3PWZ1bmN0aW9uKHQpe2lmKHRoaXMudmVydGV4Q291bnQpe3ZhciBlPXRoaXMuZ2wscj10aGlzLnNoYWRlcixuPXRoaXMudmFvO3IuYmluZCgpLHIudW5pZm9ybXM9e21vZGVsOnQubW9kZWx8fHAsdmlldzp0LnZpZXd8fHAscHJvamVjdGlvbjp0LnByb2plY3Rpb258fHAsY2xpcEJvdW5kczptKHRoaXMuY2xpcEJvdW5kcyksZGFzaFRleHR1cmU6dGhpcy50ZXh0dXJlLmJpbmQoKSxkYXNoU2NhbGU6dGhpcy5kYXNoU2NhbGUvdGhpcy5hcmNMZW5ndGhbdGhpcy5hcmNMZW5ndGgubGVuZ3RoLTFdLG9wYWNpdHk6dGhpcy5vcGFjaXR5LHNjcmVlblNoYXBlOltlLmRyYXdpbmdCdWZmZXJXaWR0aCxlLmRyYXdpbmdCdWZmZXJIZWlnaHRdLHBpeGVsUmF0aW86dGhpcy5waXhlbFJhdGlvfSxuLmJpbmQoKSxuLmRyYXcoZS5UUklBTkdMRV9TVFJJUCx0aGlzLnZlcnRleENvdW50KSxuLnVuYmluZCgpfX0seS5kcmF3UGljaz1mdW5jdGlvbih0KXtpZih0aGlzLnZlcnRleENvdW50KXt2YXIgZT10aGlzLmdsLHI9dGhpcy5waWNrU2hhZGVyLG49dGhpcy52YW87ci5iaW5kKCksci51bmlmb3Jtcz17bW9kZWw6dC5tb2RlbHx8cCx2aWV3OnQudmlld3x8cCxwcm9qZWN0aW9uOnQucHJvamVjdGlvbnx8cCxwaWNrSWQ6dGhpcy5waWNrSWQsY2xpcEJvdW5kczptKHRoaXMuY2xpcEJvdW5kcyksc2NyZWVuU2hhcGU6W2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF0scGl4ZWxSYXRpbzp0aGlzLnBpeGVsUmF0aW99LG4uYmluZCgpLG4uZHJhdyhlLlRSSUFOR0xFX1NUUklQLHRoaXMudmVydGV4Q291bnQpLG4udW5iaW5kKCl9fSx5LnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZSxyO3RoaXMuZGlydHk9ITA7dmFyIG49ISF0LmNvbm5lY3RHYXBzOyJkYXNoU2NhbGUiaW4gdCYmKHRoaXMuZGFzaFNjYWxlPXQuZGFzaFNjYWxlKSx0aGlzLmhhc0FscGhhPSExLCJvcGFjaXR5ImluIHQmJih0aGlzLm9wYWNpdHk9K3Qub3BhY2l0eSx0aGlzLm9wYWNpdHk8MSYmKHRoaXMuaGFzQWxwaGE9ITApKTt2YXIgaT1bXSxhPVtdLG89W10scz0wLHU9MCxmPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dLGg9dC5wb3NpdGlvbnx8dC5wb3NpdGlvbnM7aWYoaCl7dmFyIHA9dC5jb2xvcnx8dC5jb2xvcnN8fFswLDAsMCwxXSxtPXQubGluZVdpZHRofHwxLGc9ITE7dDpmb3IoZT0xO2U8aC5sZW5ndGg7KytlKXt2YXIgdix5LHgsYj1oW2UtMV0sXz1oW2VdO2ZvcihhLnB1c2gocyksby5wdXNoKGIuc2xpY2UoKSkscj0wO3I8MzsrK3Ipe2lmKGlzTmFOKGJbcl0pfHxpc05hTihfW3JdKXx8IWlzRmluaXRlKGJbcl0pfHwhaXNGaW5pdGUoX1tyXSkpe2lmKCFuJiZpLmxlbmd0aD4wKXtmb3IodmFyIHc9MDt3PDI0OysrdylpLnB1c2goaVtpLmxlbmd0aC0xMl0pO3UrPTIsZz0hMH1jb250aW51ZSB0fWZbMF1bcl09TWF0aC5taW4oZlswXVtyXSxiW3JdLF9bcl0pLGZbMV1bcl09TWF0aC5tYXgoZlsxXVtyXSxiW3JdLF9bcl0pfUFycmF5LmlzQXJyYXkocFswXSk/KHY9cC5sZW5ndGg+ZS0xP3BbZS0xXTpwLmxlbmd0aD4wP3BbcC5sZW5ndGgtMV06WzAsMCwwLDFdLHk9cC5sZW5ndGg+ZT9wW2VdOnAubGVuZ3RoPjA/cFtwLmxlbmd0aC0xXTpbMCwwLDAsMV0pOnY9eT1wLDM9PT12Lmxlbmd0aCYmKHY9W3ZbMF0sdlsxXSx2WzJdLDFdKSwzPT09eS5sZW5ndGgmJih5PVt5WzBdLHlbMV0seVsyXSwxXSksIXRoaXMuaGFzQWxwaGEmJnZbM108MSYmKHRoaXMuaGFzQWxwaGE9ITApLHg9QXJyYXkuaXNBcnJheShtKT9tLmxlbmd0aD5lLTE/bVtlLTFdOm0ubGVuZ3RoPjA/bVttLmxlbmd0aC0xXTpbMCwwLDAsMV06bTt2YXIgVD1zO2lmKHMrPWQoYixfKSxnKXtmb3Iocj0wO3I8MjsrK3IpaS5wdXNoKGJbMF0sYlsxXSxiWzJdLF9bMF0sX1sxXSxfWzJdLFQseCx2WzBdLHZbMV0sdlsyXSx2WzNdKTt1Kz0yLGc9ITF9aS5wdXNoKGJbMF0sYlsxXSxiWzJdLF9bMF0sX1sxXSxfWzJdLFQseCx2WzBdLHZbMV0sdlsyXSx2WzNdLGJbMF0sYlsxXSxiWzJdLF9bMF0sX1sxXSxfWzJdLFQsLXgsdlswXSx2WzFdLHZbMl0sdlszXSxfWzBdLF9bMV0sX1syXSxiWzBdLGJbMV0sYlsyXSxzLC14LHlbMF0seVsxXSx5WzJdLHlbM10sX1swXSxfWzFdLF9bMl0sYlswXSxiWzFdLGJbMl0scyx4LHlbMF0seVsxXSx5WzJdLHlbM10pLHUrPTR9fWlmKHRoaXMuYnVmZmVyLnVwZGF0ZShpKSxhLnB1c2gocyksby5wdXNoKGhbaC5sZW5ndGgtMV0uc2xpY2UoKSksdGhpcy5ib3VuZHM9Zix0aGlzLnZlcnRleENvdW50PXUsdGhpcy5wb2ludHM9byx0aGlzLmFyY0xlbmd0aD1hLCJkYXNoZXMiaW4gdCl7dmFyIGs9dC5kYXNoZXMuc2xpY2UoKTtmb3Ioay51bnNoaWZ0KDApLGU9MTtlPGsubGVuZ3RoOysrZSlrW2VdPWtbZS0xXStrW2VdO3ZhciBBPWMobmV3IEFycmF5KDEwMjQpLFsyNTYsMSw0XSk7Zm9yKGU9MDtlPDI1NjsrK2Upe2ZvcihyPTA7cjw0OysrcilBLnNldChlLDAsciwwKTsxJmwubGUoayxrW2subGVuZ3RoLTFdKmUvMjU1KT9BLnNldChlLDAsMCwwKTpBLnNldChlLDAsMCwyNTUpfXRoaXMudGV4dHVyZS5zZXRQaXhlbHMoQSl9fSx5LmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy52YW8uZGlzcG9zZSgpLHRoaXMuYnVmZmVyLmRpc3Bvc2UoKX0seS5waWNrPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiBudWxsO2lmKHQuaWQhPT10aGlzLnBpY2tJZClyZXR1cm4gbnVsbDt2YXIgZT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gb1swXT1uLG9bMV09cixvWzJdPWUsb1szXT10LHNbMF19KHQudmFsdWVbMF0sdC52YWx1ZVsxXSx0LnZhbHVlWzJdLDApLHI9bC5sZSh0aGlzLmFyY0xlbmd0aCxlKTtpZihyPDApcmV0dXJuIG51bGw7aWYocj09PXRoaXMuYXJjTGVuZ3RoLmxlbmd0aC0xKXJldHVybiBuZXcgZyh0aGlzLmFyY0xlbmd0aFt0aGlzLmFyY0xlbmd0aC5sZW5ndGgtMV0sdGhpcy5wb2ludHNbdGhpcy5wb2ludHMubGVuZ3RoLTFdLnNsaWNlKCkscik7Zm9yKHZhciBuPXRoaXMucG9pbnRzW3JdLGk9dGhpcy5wb2ludHNbTWF0aC5taW4ocisxLHRoaXMucG9pbnRzLmxlbmd0aC0xKV0sYT0oZS10aGlzLmFyY0xlbmd0aFtyXSkvKHRoaXMuYXJjTGVuZ3RoW3IrMV0tdGhpcy5hcmNMZW5ndGhbcl0pLGM9MS1hLHU9WzAsMCwwXSxmPTA7ZjwzOysrZil1W2ZdPWMqbltmXSthKmlbZl07dmFyIGg9TWF0aC5taW4oYTwuNT9yOnIrMSx0aGlzLnBvaW50cy5sZW5ndGgtMSk7cmV0dXJuIG5ldyBnKGUsdSxoLHRoaXMucG9pbnRzW2hdKX19LHsiLi9saWIvc2hhZGVycyI6MjY5LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTAwLCJnbC1idWZmZXIiOjI1NywiZ2wtdGV4dHVyZTJkIjozMzgsImdsLXZhbyI6MzQzLG5kYXJyYXk6NDYyfV0sMjcxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLGE9ZVszXSxvPWVbNF0scz1lWzVdLGw9ZVs2XSxjPWVbN10sdT1lWzhdLGY9ZVs5XSxoPWVbMTBdLHA9ZVsxMV0sZD1lWzEyXSxtPWVbMTNdLGc9ZVsxNF0sdj1lWzE1XTtyZXR1cm4gdFswXT1zKihoKnYtcCpnKS1mKihsKnYtYypnKSttKihsKnAtYypoKSx0WzFdPS0obiooaCp2LXAqZyktZiooaSp2LWEqZykrbSooaSpwLWEqaCkpLHRbMl09bioobCp2LWMqZyktcyooaSp2LWEqZykrbSooaSpjLWEqbCksdFszXT0tKG4qKGwqcC1jKmgpLXMqKGkqcC1hKmgpK2YqKGkqYy1hKmwpKSx0WzRdPS0obyooaCp2LXAqZyktdSoobCp2LWMqZykrZCoobCpwLWMqaCkpLHRbNV09ciooaCp2LXAqZyktdSooaSp2LWEqZykrZCooaSpwLWEqaCksdFs2XT0tKHIqKGwqdi1jKmcpLW8qKGkqdi1hKmcpK2QqKGkqYy1hKmwpKSx0WzddPXIqKGwqcC1jKmgpLW8qKGkqcC1hKmgpK3UqKGkqYy1hKmwpLHRbOF09byooZip2LXAqbSktdSoocyp2LWMqbSkrZCoocypwLWMqZiksdFs5XT0tKHIqKGYqdi1wKm0pLXUqKG4qdi1hKm0pK2QqKG4qcC1hKmYpKSx0WzEwXT1yKihzKnYtYyptKS1vKihuKnYtYSptKStkKihuKmMtYSpzKSx0WzExXT0tKHIqKHMqcC1jKmYpLW8qKG4qcC1hKmYpK3UqKG4qYy1hKnMpKSx0WzEyXT0tKG8qKGYqZy1oKm0pLXUqKHMqZy1sKm0pK2QqKHMqaC1sKmYpKSx0WzEzXT1yKihmKmctaCptKS11KihuKmctaSptKStkKihuKmgtaSpmKSx0WzE0XT0tKHIqKHMqZy1sKm0pLW8qKG4qZy1pKm0pK2QqKG4qbC1pKnMpKSx0WzE1XT1yKihzKmgtbCpmKS1vKihuKmgtaSpmKSt1KihuKmwtaSpzKSx0fX0se31dLDI3MjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KDE2KTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XSxlWzVdPXRbNV0sZVs2XT10WzZdLGVbN109dFs3XSxlWzhdPXRbOF0sZVs5XT10WzldLGVbMTBdPXRbMTBdLGVbMTFdPXRbMTFdLGVbMTJdPXRbMTJdLGVbMTNdPXRbMTNdLGVbMTRdPXRbMTRdLGVbMTVdPXRbMTVdLGV9fSx7fV0sMjczOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzRdPWVbNF0sdFs1XT1lWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFs4XT1lWzhdLHRbOV09ZVs5XSx0WzEwXT1lWzEwXSx0WzExXT1lWzExXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSx0fX0se31dLDI3NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbigpe3ZhciB0PW5ldyBGbG9hdDMyQXJyYXkoMTYpO3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSwyNzU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV0sbj10WzJdLGk9dFszXSxhPXRbNF0sbz10WzVdLHM9dFs2XSxsPXRbN10sYz10WzhdLHU9dFs5XSxmPXRbMTBdLGg9dFsxMV0scD10WzEyXSxkPXRbMTNdLG09dFsxNF0sZz10WzE1XTtyZXR1cm4oZSpvLXIqYSkqKGYqZy1oKm0pLShlKnMtbiphKSoodSpnLWgqZCkrKGUqbC1pKmEpKih1Km0tZipkKSsocipzLW4qbykqKGMqZy1oKnApLShyKmwtaSpvKSooYyptLWYqcCkrKG4qbC1pKnMpKihjKmQtdSpwKX19LHt9XSwyNzY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sYT1lWzNdLG89cityLHM9bituLGw9aStpLGM9cipvLHU9bipvLGY9bipzLGg9aSpvLHA9aSpzLGQ9aSpsLG09YSpvLGc9YSpzLHY9YSpsO3JldHVybiB0WzBdPTEtZi1kLHRbMV09dSt2LHRbMl09aC1nLHRbM109MCx0WzRdPXUtdix0WzVdPTEtYy1kLHRbNl09cCttLHRbN109MCx0WzhdPWgrZyx0WzldPXAtbSx0WzEwXT0xLWMtZix0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSwyNzc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYSxvPXJbMF0scz1yWzFdLGw9clsyXSxjPU1hdGguc3FydChvKm8rcypzK2wqbCk7aWYoTWF0aC5hYnMoYyk8MWUtNilyZXR1cm4gbnVsbDtyZXR1cm4gbyo9Yz0xL2Mscyo9YyxsKj1jLG49TWF0aC5zaW4oZSksaT1NYXRoLmNvcyhlKSxhPTEtaSx0WzBdPW8qbyphK2ksdFsxXT1zKm8qYStsKm4sdFsyXT1sKm8qYS1zKm4sdFszXT0wLHRbNF09bypzKmEtbCpuLHRbNV09cypzKmEraSx0WzZdPWwqcyphK28qbix0WzddPTAsdFs4XT1vKmwqYStzKm4sdFs5XT1zKmwqYS1vKm4sdFsxMF09bCpsKmEraSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSwyNzg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1uK24sbD1pK2ksYz1hK2EsdT1uKnMsZj1uKmwsaD1uKmMscD1pKmwsZD1pKmMsbT1hKmMsZz1vKnMsdj1vKmwseT1vKmM7cmV0dXJuIHRbMF09MS0ocCttKSx0WzFdPWYreSx0WzJdPWgtdix0WzNdPTAsdFs0XT1mLXksdFs1XT0xLSh1K20pLHRbNl09ZCtnLHRbN109MCx0WzhdPWgrdix0WzldPWQtZyx0WzEwXT0xLSh1K3ApLHRbMTFdPTAsdFsxMl09clswXSx0WzEzXT1yWzFdLHRbMTRdPXJbMl0sdFsxNV09MSx0fX0se31dLDI3OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09ZVsxXSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09ZVsyXSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSwyODA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT1lWzBdLHRbMTNdPWVbMV0sdFsxNF09ZVsyXSx0WzE1XT0xLHR9fSx7fV0sMjgxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9TWF0aC5zaW4oZSksbj1NYXRoLmNvcyhlKTtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPW4sdFs2XT1yLHRbN109MCx0WzhdPTAsdFs5XT0tcix0WzEwXT1uLHRbMTFdPTAsdFsxMl09MCx0WzEzXT0wLHRbMTRdPTAsdFsxNV09MSx0fX0se31dLDI4MjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc2luKGUpLG49TWF0aC5jb3MoZSk7cmV0dXJuIHRbMF09bix0WzFdPTAsdFsyXT0tcix0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09cix0WzldPTAsdFsxMF09bix0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSwyODM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNpbihlKSxuPU1hdGguY29zKGUpO3JldHVybiB0WzBdPW4sdFsxXT1yLHRbMl09MCx0WzNdPTAsdFs0XT0tcix0WzVdPW4sdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9fSx7fV0sMjg0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzPTEvKHItZSksbD0xLyhpLW4pLGM9MS8oYS1vKTtyZXR1cm4gdFswXT0yKmEqcyx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0yKmEqbCx0WzZdPTAsdFs3XT0wLHRbOF09KHIrZSkqcyx0WzldPShpK24pKmwsdFsxMF09KG8rYSkqYyx0WzExXT0tMSx0WzEyXT0wLHRbMTNdPTAsdFsxNF09byphKjIqYyx0WzE1XT0wLHR9fSx7fV0sMjg1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPTEsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09MSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09MSx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wLHRbMTVdPTEsdH19LHt9XSwyODY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e2NyZWF0ZTp0KCIuL2NyZWF0ZSIpLGNsb25lOnQoIi4vY2xvbmUiKSxjb3B5OnQoIi4vY29weSIpLGlkZW50aXR5OnQoIi4vaWRlbnRpdHkiKSx0cmFuc3Bvc2U6dCgiLi90cmFuc3Bvc2UiKSxpbnZlcnQ6dCgiLi9pbnZlcnQiKSxhZGpvaW50OnQoIi4vYWRqb2ludCIpLGRldGVybWluYW50OnQoIi4vZGV0ZXJtaW5hbnQiKSxtdWx0aXBseTp0KCIuL211bHRpcGx5IiksdHJhbnNsYXRlOnQoIi4vdHJhbnNsYXRlIiksc2NhbGU6dCgiLi9zY2FsZSIpLHJvdGF0ZTp0KCIuL3JvdGF0ZSIpLHJvdGF0ZVg6dCgiLi9yb3RhdGVYIikscm90YXRlWTp0KCIuL3JvdGF0ZVkiKSxyb3RhdGVaOnQoIi4vcm90YXRlWiIpLGZyb21Sb3RhdGlvbjp0KCIuL2Zyb21Sb3RhdGlvbiIpLGZyb21Sb3RhdGlvblRyYW5zbGF0aW9uOnQoIi4vZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24iKSxmcm9tU2NhbGluZzp0KCIuL2Zyb21TY2FsaW5nIiksZnJvbVRyYW5zbGF0aW9uOnQoIi4vZnJvbVRyYW5zbGF0aW9uIiksZnJvbVhSb3RhdGlvbjp0KCIuL2Zyb21YUm90YXRpb24iKSxmcm9tWVJvdGF0aW9uOnQoIi4vZnJvbVlSb3RhdGlvbiIpLGZyb21aUm90YXRpb246dCgiLi9mcm9tWlJvdGF0aW9uIiksZnJvbVF1YXQ6dCgiLi9mcm9tUXVhdCIpLGZydXN0dW06dCgiLi9mcnVzdHVtIikscGVyc3BlY3RpdmU6dCgiLi9wZXJzcGVjdGl2ZSIpLHBlcnNwZWN0aXZlRnJvbUZpZWxkT2ZWaWV3OnQoIi4vcGVyc3BlY3RpdmVGcm9tRmllbGRPZlZpZXciKSxvcnRobzp0KCIuL29ydGhvIiksbG9va0F0OnQoIi4vbG9va0F0Iiksc3RyOnQoIi4vc3RyIil9fSx7Ii4vYWRqb2ludCI6MjcxLCIuL2Nsb25lIjoyNzIsIi4vY29weSI6MjczLCIuL2NyZWF0ZSI6Mjc0LCIuL2RldGVybWluYW50IjoyNzUsIi4vZnJvbVF1YXQiOjI3NiwiLi9mcm9tUm90YXRpb24iOjI3NywiLi9mcm9tUm90YXRpb25UcmFuc2xhdGlvbiI6Mjc4LCIuL2Zyb21TY2FsaW5nIjoyNzksIi4vZnJvbVRyYW5zbGF0aW9uIjoyODAsIi4vZnJvbVhSb3RhdGlvbiI6MjgxLCIuL2Zyb21ZUm90YXRpb24iOjI4MiwiLi9mcm9tWlJvdGF0aW9uIjoyODMsIi4vZnJ1c3R1bSI6Mjg0LCIuL2lkZW50aXR5IjoyODUsIi4vaW52ZXJ0IjoyODcsIi4vbG9va0F0IjoyODgsIi4vbXVsdGlwbHkiOjI4OSwiLi9vcnRobyI6MjkwLCIuL3BlcnNwZWN0aXZlIjoyOTEsIi4vcGVyc3BlY3RpdmVGcm9tRmllbGRPZlZpZXciOjI5MiwiLi9yb3RhdGUiOjI5MywiLi9yb3RhdGVYIjoyOTQsIi4vcm90YXRlWSI6Mjk1LCIuL3JvdGF0ZVoiOjI5NiwiLi9zY2FsZSI6Mjk3LCIuL3N0ciI6Mjk4LCIuL3RyYW5zbGF0ZSI6Mjk5LCIuL3RyYW5zcG9zZSI6MzAwfV0sMjg3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT1lWzJdLGE9ZVszXSxvPWVbNF0scz1lWzVdLGw9ZVs2XSxjPWVbN10sdT1lWzhdLGY9ZVs5XSxoPWVbMTBdLHA9ZVsxMV0sZD1lWzEyXSxtPWVbMTNdLGc9ZVsxNF0sdj1lWzE1XSx5PXIqcy1uKm8seD1yKmwtaSpvLGI9cipjLWEqbyxfPW4qbC1pKnMsdz1uKmMtYSpzLFQ9aSpjLWEqbCxrPXUqbS1mKmQsQT11KmctaCpkLE09dSp2LXAqZCxTPWYqZy1oKm0sRT1mKnYtcCptLEw9aCp2LXAqZyxDPXkqTC14KkUrYipTK18qTS13KkErVCprO2lmKCFDKXJldHVybiBudWxsO3JldHVybiBDPTEvQyx0WzBdPShzKkwtbCpFK2MqUykqQyx0WzFdPShpKkUtbipMLWEqUykqQyx0WzJdPShtKlQtZyp3K3YqXykqQyx0WzNdPShoKnctZipULXAqXykqQyx0WzRdPShsKk0tbypMLWMqQSkqQyx0WzVdPShyKkwtaSpNK2EqQSkqQyx0WzZdPShnKmItZCpULXYqeCkqQyx0WzddPSh1KlQtaCpiK3AqeCkqQyx0WzhdPShvKkUtcypNK2MqaykqQyx0WzldPShuKk0tcipFLWEqaykqQyx0WzEwXT0oZCp3LW0qYit2KnkpKkMsdFsxMV09KGYqYi11KnctcCp5KSpDLHRbMTJdPShzKkEtbypTLWwqaykqQyx0WzEzXT0ocipTLW4qQStpKmspKkMsdFsxNF09KG0qeC1kKl8tZyp5KSpDLHRbMTVdPSh1Kl8tZip4K2gqeSkqQyx0fX0se31dLDI4ODpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vaWRlbnRpdHkiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGEsbyxzLGwsYyx1LGYsaCxwLGQsbT1lWzBdLGc9ZVsxXSx2PWVbMl0seT1pWzBdLHg9aVsxXSxiPWlbMl0sXz1yWzBdLHc9clsxXSxUPXJbMl07aWYoTWF0aC5hYnMobS1fKTwxZS02JiZNYXRoLmFicyhnLXcpPDFlLTYmJk1hdGguYWJzKHYtVCk8MWUtNilyZXR1cm4gbih0KTtmPW0tXyxoPWctdyxwPXYtVCxkPTEvTWF0aC5zcXJ0KGYqZitoKmgrcCpwKSxhPXgqKHAqPWQpLWIqKGgqPWQpLG89YiooZio9ZCkteSpwLHM9eSpoLXgqZiwoZD1NYXRoLnNxcnQoYSphK28qbytzKnMpKT8oYSo9ZD0xL2Qsbyo9ZCxzKj1kKTooYT0wLG89MCxzPTApO2w9aCpzLXAqbyxjPXAqYS1mKnMsdT1mKm8taCphLChkPU1hdGguc3FydChsKmwrYypjK3UqdSkpPyhsKj1kPTEvZCxjKj1kLHUqPWQpOihsPTAsYz0wLHU9MCk7cmV0dXJuIHRbMF09YSx0WzFdPWwsdFsyXT1mLHRbM109MCx0WzRdPW8sdFs1XT1jLHRbNl09aCx0WzddPTAsdFs4XT1zLHRbOV09dSx0WzEwXT1wLHRbMTFdPTAsdFsxMl09LShhKm0rbypnK3MqdiksdFsxM109LShsKm0rYypnK3UqdiksdFsxNF09LShmKm0raCpnK3AqdiksdFsxNV09MSx0fX0seyIuL2lkZW50aXR5IjoyODV9XSwyODk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1lWzRdLGw9ZVs1XSxjPWVbNl0sdT1lWzddLGY9ZVs4XSxoPWVbOV0scD1lWzEwXSxkPWVbMTFdLG09ZVsxMl0sZz1lWzEzXSx2PWVbMTRdLHk9ZVsxNV0seD1yWzBdLGI9clsxXSxfPXJbMl0sdz1yWzNdO3JldHVybiB0WzBdPXgqbitiKnMrXypmK3cqbSx0WzFdPXgqaStiKmwrXypoK3cqZyx0WzJdPXgqYStiKmMrXypwK3cqdix0WzNdPXgqbytiKnUrXypkK3cqeSx4PXJbNF0sYj1yWzVdLF89cls2XSx3PXJbN10sdFs0XT14Km4rYipzK18qZit3Km0sdFs1XT14KmkrYipsK18qaCt3KmcsdFs2XT14KmErYipjK18qcCt3KnYsdFs3XT14Km8rYip1K18qZCt3KnkseD1yWzhdLGI9cls5XSxfPXJbMTBdLHc9clsxMV0sdFs4XT14Km4rYipzK18qZit3Km0sdFs5XT14KmkrYipsK18qaCt3KmcsdFsxMF09eCphK2IqYytfKnArdyp2LHRbMTFdPXgqbytiKnUrXypkK3cqeSx4PXJbMTJdLGI9clsxM10sXz1yWzE0XSx3PXJbMTVdLHRbMTJdPXgqbitiKnMrXypmK3cqbSx0WzEzXT14KmkrYipsK18qaCt3KmcsdFsxNF09eCphK2IqYytfKnArdyp2LHRbMTVdPXgqbytiKnUrXypkK3cqeSx0fX0se31dLDI5MDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz0xLyhlLXIpLGw9MS8obi1pKSxjPTEvKGEtbyk7cmV0dXJuIHRbMF09LTIqcyx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0tMipsLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0yKmMsdFsxMV09MCx0WzEyXT0oZStyKSpzLHRbMTNdPShpK24pKmwsdFsxNF09KG8rYSkqYyx0WzE1XT0xLHR9fSx7fV0sMjkxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9MS9NYXRoLnRhbihlLzIpLG89MS8obi1pKTtyZXR1cm4gdFswXT1hL3IsdFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNV09YSx0WzZdPTAsdFs3XT0wLHRbOF09MCx0WzldPTAsdFsxMF09KGkrbikqbyx0WzExXT0tMSx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MippKm4qbyx0WzE1XT0wLHR9fSx7fV0sMjkyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPU1hdGgudGFuKGUudXBEZWdyZWVzKk1hdGguUEkvMTgwKSxhPU1hdGgudGFuKGUuZG93bkRlZ3JlZXMqTWF0aC5QSS8xODApLG89TWF0aC50YW4oZS5sZWZ0RGVncmVlcypNYXRoLlBJLzE4MCkscz1NYXRoLnRhbihlLnJpZ2h0RGVncmVlcypNYXRoLlBJLzE4MCksbD0yLyhvK3MpLGM9Mi8oaSthKTtyZXR1cm4gdFswXT1sLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPWMsdFs2XT0wLHRbN109MCx0WzhdPS0oby1zKSpsKi41LHRbOV09KGktYSkqYyouNSx0WzEwXT1uLyhyLW4pLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE0XT1uKnIvKHItbiksdFsxNV09MCx0fX0se31dLDI5MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgaSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFMsRT1uWzBdLEw9blsxXSxDPW5bMl0sUD1NYXRoLnNxcnQoRSpFK0wqTCtDKkMpO2lmKE1hdGguYWJzKFApPDFlLTYpcmV0dXJuIG51bGw7RSo9UD0xL1AsTCo9UCxDKj1QLGk9TWF0aC5zaW4ociksYT1NYXRoLmNvcyhyKSxvPTEtYSxzPWVbMF0sbD1lWzFdLGM9ZVsyXSx1PWVbM10sZj1lWzRdLGg9ZVs1XSxwPWVbNl0sZD1lWzddLG09ZVs4XSxnPWVbOV0sdj1lWzEwXSx5PWVbMTFdLHg9RSpFKm8rYSxiPUwqRSpvK0MqaSxfPUMqRSpvLUwqaSx3PUUqTCpvLUMqaSxUPUwqTCpvK2Esaz1DKkwqbytFKmksQT1FKkMqbytMKmksTT1MKkMqby1FKmksUz1DKkMqbythLHRbMF09cyp4K2YqYittKl8sdFsxXT1sKngraCpiK2cqXyx0WzJdPWMqeCtwKmIrdipfLHRbM109dSp4K2QqYit5Kl8sdFs0XT1zKncrZipUK20qayx0WzVdPWwqdytoKlQrZyprLHRbNl09Yyp3K3AqVCt2KmssdFs3XT11KncrZCpUK3kqayx0WzhdPXMqQStmKk0rbSpTLHRbOV09bCpBK2gqTStnKlMsdFsxMF09YypBK3AqTSt2KlMsdFsxMV09dSpBK2QqTSt5KlMsZSE9PXQmJih0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSk7cmV0dXJuIHR9fSx7fV0sMjk0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLGE9ZVs0XSxvPWVbNV0scz1lWzZdLGw9ZVs3XSxjPWVbOF0sdT1lWzldLGY9ZVsxMF0saD1lWzExXTtlIT09dCYmKHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHRbM109ZVszXSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSk7cmV0dXJuIHRbNF09YSppK2Mqbix0WzVdPW8qaSt1Km4sdFs2XT1zKmkrZipuLHRbN109bCppK2gqbix0WzhdPWMqaS1hKm4sdFs5XT11KmktbypuLHRbMTBdPWYqaS1zKm4sdFsxMV09aCppLWwqbix0fX0se31dLDI5NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49TWF0aC5zaW4ociksaT1NYXRoLmNvcyhyKSxhPWVbMF0sbz1lWzFdLHM9ZVsyXSxsPWVbM10sYz1lWzhdLHU9ZVs5XSxmPWVbMTBdLGg9ZVsxMV07ZSE9PXQmJih0WzRdPWVbNF0sdFs1XT1lWzVdLHRbNl09ZVs2XSx0WzddPWVbN10sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pO3JldHVybiB0WzBdPWEqaS1jKm4sdFsxXT1vKmktdSpuLHRbMl09cyppLWYqbix0WzNdPWwqaS1oKm4sdFs4XT1hKm4rYyppLHRbOV09bypuK3UqaSx0WzEwXT1zKm4rZippLHRbMTFdPWwqbitoKmksdH19LHt9XSwyOTY6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguc2luKHIpLGk9TWF0aC5jb3MociksYT1lWzBdLG89ZVsxXSxzPWVbMl0sbD1lWzNdLGM9ZVs0XSx1PWVbNV0sZj1lWzZdLGg9ZVs3XTtlIT09dCYmKHRbOF09ZVs4XSx0WzldPWVbOV0sdFsxMF09ZVsxMF0sdFsxMV09ZVsxMV0sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pO3JldHVybiB0WzBdPWEqaStjKm4sdFsxXT1vKmkrdSpuLHRbMl09cyppK2Yqbix0WzNdPWwqaStoKm4sdFs0XT1jKmktYSpuLHRbNV09dSppLW8qbix0WzZdPWYqaS1zKm4sdFs3XT1oKmktbCpuLHR9fSx7fV0sMjk3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yWzBdLGk9clsxXSxhPXJbMl07cmV0dXJuIHRbMF09ZVswXSpuLHRbMV09ZVsxXSpuLHRbMl09ZVsyXSpuLHRbM109ZVszXSpuLHRbNF09ZVs0XSppLHRbNV09ZVs1XSppLHRbNl09ZVs2XSppLHRbN109ZVs3XSppLHRbOF09ZVs4XSphLHRbOV09ZVs5XSphLHRbMTBdPWVbMTBdKmEsdFsxMV09ZVsxMV0qYSx0WzEyXT1lWzEyXSx0WzEzXT1lWzEzXSx0WzE0XT1lWzE0XSx0WzE1XT1lWzE1XSx0fX0se31dLDI5ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ibWF0NCgiK3RbMF0rIiwgIit0WzFdKyIsICIrdFsyXSsiLCAiK3RbM10rIiwgIit0WzRdKyIsICIrdFs1XSsiLCAiK3RbNl0rIiwgIit0WzddKyIsICIrdFs4XSsiLCAiK3RbOV0rIiwgIit0WzEwXSsiLCAiK3RbMTFdKyIsICIrdFsxMl0rIiwgIit0WzEzXSsiLCAiK3RbMTRdKyIsICIrdFsxNV0rIikifX0se31dLDI5OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG09clswXSxnPXJbMV0sdj1yWzJdO2U9PT10Pyh0WzEyXT1lWzBdKm0rZVs0XSpnK2VbOF0qditlWzEyXSx0WzEzXT1lWzFdKm0rZVs1XSpnK2VbOV0qditlWzEzXSx0WzE0XT1lWzJdKm0rZVs2XSpnK2VbMTBdKnYrZVsxNF0sdFsxNV09ZVszXSptK2VbN10qZytlWzExXSp2K2VbMTVdKToobj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9ZVs0XSxsPWVbNV0sYz1lWzZdLHU9ZVs3XSxmPWVbOF0saD1lWzldLHA9ZVsxMF0sZD1lWzExXSx0WzBdPW4sdFsxXT1pLHRbMl09YSx0WzNdPW8sdFs0XT1zLHRbNV09bCx0WzZdPWMsdFs3XT11LHRbOF09Zix0WzldPWgsdFsxMF09cCx0WzExXT1kLHRbMTJdPW4qbStzKmcrZip2K2VbMTJdLHRbMTNdPWkqbStsKmcraCp2K2VbMTNdLHRbMTRdPWEqbStjKmcrcCp2K2VbMTRdLHRbMTVdPW8qbSt1KmcrZCp2K2VbMTVdKTtyZXR1cm4gdH19LHt9XSwzMDA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZih0PT09ZSl7dmFyIHI9ZVsxXSxuPWVbMl0saT1lWzNdLGE9ZVs2XSxvPWVbN10scz1lWzExXTt0WzFdPWVbNF0sdFsyXT1lWzhdLHRbM109ZVsxMl0sdFs0XT1yLHRbNl09ZVs5XSx0WzddPWVbMTNdLHRbOF09bix0WzldPWEsdFsxMV09ZVsxNF0sdFsxMl09aSx0WzEzXT1vLHRbMTRdPXN9ZWxzZSB0WzBdPWVbMF0sdFsxXT1lWzRdLHRbMl09ZVs4XSx0WzNdPWVbMTJdLHRbNF09ZVsxXSx0WzVdPWVbNV0sdFs2XT1lWzldLHRbN109ZVsxM10sdFs4XT1lWzJdLHRbOV09ZVs2XSx0WzEwXT1lWzEwXSx0WzExXT1lWzE0XSx0WzEyXT1lWzNdLHRbMTNdPWVbN10sdFsxNF09ZVsxMV0sdFsxNV09ZVsxNV07cmV0dXJuIHR9fSx7fV0sMzAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJhcnljZW50cmljIiksaT10KCJwb2x5dG9wZS1jbG9zZXN0LXBvaW50L2xpYi9jbG9zZXN0X3BvaW50XzJkLmpzIik7ZnVuY3Rpb24gYSh0LGUpe2Zvcih2YXIgcj1bMCwwLDAsMF0sbj0wO248NDsrK24pZm9yKHZhciBpPTA7aTw0OysraSlyW2ldKz10WzQqbitpXSplW25dO3JldHVybiByfWZ1bmN0aW9uIG8odCxlLHIsbixpKXtmb3IodmFyIG89YShuLGEocixhKGUsW3RbMF0sdFsxXSx0WzJdLDFdKSkpLHM9MDtzPDM7KytzKW9bc10vPW9bM107cmV0dXJuWy41KmlbMF0qKDErb1swXSksLjUqaVsxXSooMS1vWzFdKV19ZnVuY3Rpb24gcyh0LGUpe2Zvcih2YXIgcj1bMCwwLDBdLG49MDtuPHQubGVuZ3RoOysrbilmb3IodmFyIGk9dFtuXSxhPWVbbl0sbz0wO288MzsrK28pcltvXSs9YSppW29dO3JldHVybiByfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLGwsYyl7aWYoMT09PXQubGVuZ3RoKXJldHVyblswLHRbMF0uc2xpY2UoKV07Zm9yKHZhciB1PW5ldyBBcnJheSh0Lmxlbmd0aCksZj0wO2Y8dC5sZW5ndGg7KytmKXVbZl09byh0W2ZdLHIsYSxsLGMpO3ZhciBoPTAscD0xLzA7Zm9yKGY9MDtmPHUubGVuZ3RoOysrZil7Zm9yKHZhciBkPTAsbT0wO208MjsrK20pZCs9TWF0aC5wb3codVtmXVttXS1lW21dLDIpO2Q8cCYmKHA9ZCxoPWYpfXZhciBnPWZ1bmN0aW9uKHQsZSl7aWYoMj09PXQubGVuZ3RoKXtmb3IodmFyIHI9MCxhPTAsbz0wO288MjsrK28pcis9TWF0aC5wb3coZVtvXS10WzBdW29dLDIpLGErPU1hdGgucG93KGVbb10tdFsxXVtvXSwyKTtyZXR1cm4gcj1NYXRoLnNxcnQociksYT1NYXRoLnNxcnQoYSkscithPDFlLTY/WzEsMF06W2EvKHIrYSksci8oYStyKV19aWYoMz09PXQubGVuZ3RoKXt2YXIgcz1bMCwwXTtyZXR1cm4gaSh0WzBdLHRbMV0sdFsyXSxlLHMpLG4odCxzKX1yZXR1cm5bXX0odSxlKSx2PTA7Zm9yKGY9MDtmPDM7KytmKXtpZihnW2ZdPC0uMDAxfHxnW2ZdPjEuMDAwMSlyZXR1cm4gbnVsbDt2Kz1nW2ZdfWlmKE1hdGguYWJzKHYtMSk+LjAwMSlyZXR1cm4gbnVsbDtyZXR1cm5baCxzKHQsZyksZ119fSx7YmFyeWNlbnRyaWM6ODEsInBvbHl0b3BlLWNsb3Nlc3QtcG9pbnQvbGliL2Nsb3Nlc3RfcG9pbnRfMmQuanMiOjQ4OH1dLDMwMjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsc2xpZnkiKSxpPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbiwgbm9ybWFsO1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgdmVjMiB1djtcblxudW5pZm9ybSBtYXQ0IG1vZGVsXG4gICAgICAgICAgICwgdmlld1xuICAgICAgICAgICAsIHByb2plY3Rpb25cbiAgICAgICAgICAgLCBpbnZlcnNlTW9kZWw7XG51bmlmb3JtIHZlYzMgZXllUG9zaXRpb25cbiAgICAgICAgICAgLCBsaWdodFBvc2l0aW9uO1xuXG52YXJ5aW5nIHZlYzMgZl9ub3JtYWxcbiAgICAgICAgICAgLCBmX2xpZ2h0RGlyZWN0aW9uXG4gICAgICAgICAgICwgZl9leWVEaXJlY3Rpb25cbiAgICAgICAgICAgLCBmX2RhdGE7XG52YXJ5aW5nIHZlYzQgZl9jb2xvcjtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52ZWM0IHByb2plY3QodmVjMyBwKSB7XG4gIHJldHVybiBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwLCAxLjApO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uICAgICAgPSBwcm9qZWN0KHBvc2l0aW9uKTtcblxuICAvL0xpZ2h0aW5nIGdlb21ldHJ5IHBhcmFtZXRlcnNcbiAgdmVjNCBjYW1lcmFDb29yZGluYXRlID0gdmlldyAqIHZlYzQocG9zaXRpb24gLCAxLjApO1xuICBjYW1lcmFDb29yZGluYXRlLnh5eiAvPSBjYW1lcmFDb29yZGluYXRlLnc7XG4gIGZfbGlnaHREaXJlY3Rpb24gPSBsaWdodFBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIGZfZXllRGlyZWN0aW9uICAgPSBleWVQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBmX25vcm1hbCAgPSBub3JtYWxpemUoKHZlYzQobm9ybWFsLCAwLjApICogaW52ZXJzZU1vZGVsKS54eXopO1xuXG4gIGZfY29sb3IgICAgICAgICAgPSBjb2xvcjtcbiAgZl9kYXRhICAgICAgICAgICA9IHBvc2l0aW9uO1xuICBmX3V2ICAgICAgICAgICAgID0gdXY7XG59XG4iXSksYT1uKFsiI2V4dGVuc2lvbiBHTF9PRVNfc3RhbmRhcmRfZGVyaXZhdGl2ZXMgOiBlbmFibGVcblxucHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuZmxvYXQgYmVja21hbm5EaXN0cmlidXRpb24oZmxvYXQgeCwgZmxvYXQgcm91Z2huZXNzKSB7XG4gIGZsb2F0IE5kb3RIID0gbWF4KHgsIDAuMDAwMSk7XG4gIGZsb2F0IGNvczJBbHBoYSA9IE5kb3RIICogTmRvdEg7XG4gIGZsb2F0IHRhbjJBbHBoYSA9IChjb3MyQWxwaGEgLSAxLjApIC8gY29zMkFscGhhO1xuICBmbG9hdCByb3VnaG5lc3MyID0gcm91Z2huZXNzICogcm91Z2huZXNzO1xuICBmbG9hdCBkZW5vbSA9IDMuMTQxNTkyNjUzNTg5NzkzICogcm91Z2huZXNzMiAqIGNvczJBbHBoYSAqIGNvczJBbHBoYTtcbiAgcmV0dXJuIGV4cCh0YW4yQWxwaGEgLyByb3VnaG5lc3MyKSAvIGRlbm9tO1xufVxuXG5mbG9hdCBjb29rVG9ycmFuY2VTcGVjdWxhcihcbiAgdmVjMyBsaWdodERpcmVjdGlvbixcbiAgdmVjMyB2aWV3RGlyZWN0aW9uLFxuICB2ZWMzIHN1cmZhY2VOb3JtYWwsXG4gIGZsb2F0IHJvdWdobmVzcyxcbiAgZmxvYXQgZnJlc25lbCkge1xuXG4gIGZsb2F0IFZkb3ROID0gbWF4KGRvdCh2aWV3RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcbiAgZmxvYXQgTGRvdE4gPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsKSwgMC4wKTtcblxuICAvL0hhbGYgYW5nbGUgdmVjdG9yXG4gIHZlYzMgSCA9IG5vcm1hbGl6ZShsaWdodERpcmVjdGlvbiArIHZpZXdEaXJlY3Rpb24pO1xuXG4gIC8vR2VvbWV0cmljIHRlcm1cbiAgZmxvYXQgTmRvdEggPSBtYXgoZG90KHN1cmZhY2VOb3JtYWwsIEgpLCAwLjApO1xuICBmbG9hdCBWZG90SCA9IG1heChkb3Qodmlld0RpcmVjdGlvbiwgSCksIDAuMDAwMDAxKTtcbiAgZmxvYXQgTGRvdEggPSBtYXgoZG90KGxpZ2h0RGlyZWN0aW9uLCBIKSwgMC4wMDAwMDEpO1xuICBmbG9hdCBHMSA9ICgyLjAgKiBOZG90SCAqIFZkb3ROKSAvIFZkb3RIO1xuICBmbG9hdCBHMiA9ICgyLjAgKiBOZG90SCAqIExkb3ROKSAvIExkb3RIO1xuICBmbG9hdCBHID0gbWluKDEuMCwgbWluKEcxLCBHMikpO1xuICBcbiAgLy9EaXN0cmlidXRpb24gdGVybVxuICBmbG9hdCBEID0gYmVja21hbm5EaXN0cmlidXRpb24oTmRvdEgsIHJvdWdobmVzcyk7XG5cbiAgLy9GcmVzbmVsIHRlcm1cbiAgZmxvYXQgRiA9IHBvdygxLjAgLSBWZG90TiwgZnJlc25lbCk7XG5cbiAgLy9NdWx0aXBseSB0ZXJtcyBhbmQgZG9uZVxuICByZXR1cm4gIEcgKiBGICogRCAvIG1heCgzLjE0MTU5MjY1ICogVmRvdE4sIDAuMDAwMDAxKTtcbn1cblxuLy8jcHJhZ21hIGdsc2xpZnk6IGJlY2ttYW5uID0gcmVxdWlyZShnbHNsLXNwZWN1bGFyLWJlY2ttYW5uKSAvLyB1c2VkIGluIGdsLXN1cmZhY2UzZFxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHJvdWdobmVzc1xuICAgICAgICAgICAgLCBmcmVzbmVsXG4gICAgICAgICAgICAsIGthbWJpZW50XG4gICAgICAgICAgICAsIGtkaWZmdXNlXG4gICAgICAgICAgICAsIGtzcGVjdWxhcjtcbnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7XG5cbnZhcnlpbmcgdmVjMyBmX25vcm1hbFxuICAgICAgICAgICAsIGZfbGlnaHREaXJlY3Rpb25cbiAgICAgICAgICAgLCBmX2V5ZURpcmVjdGlvblxuICAgICAgICAgICAsIGZfZGF0YTtcbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKGZfY29sb3IuYSA9PSAwLjAgfHxcbiAgICBvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfZGF0YSlcbiAgKSBkaXNjYXJkO1xuXG4gIHZlYzMgTiA9IG5vcm1hbGl6ZShmX25vcm1hbCk7XG4gIHZlYzMgTCA9IG5vcm1hbGl6ZShmX2xpZ2h0RGlyZWN0aW9uKTtcbiAgdmVjMyBWID0gbm9ybWFsaXplKGZfZXllRGlyZWN0aW9uKTtcblxuICBpZihnbF9Gcm9udEZhY2luZykge1xuICAgIE4gPSAtTjtcbiAgfVxuXG4gIGZsb2F0IHNwZWN1bGFyID0gbWluKDEuMCwgbWF4KDAuMCwgY29va1RvcnJhbmNlU3BlY3VsYXIoTCwgViwgTiwgcm91Z2huZXNzLCBmcmVzbmVsKSkpO1xuICAvL2Zsb2F0IHNwZWN1bGFyID0gbWF4KDAuMCwgYmVja21hbm4oTCwgViwgTiwgcm91Z2huZXNzKSk7IC8vIHVzZWQgaW4gZ2wtc3VyZmFjZTNkXG5cbiAgZmxvYXQgZGlmZnVzZSAgPSBtaW4oa2FtYmllbnQgKyBrZGlmZnVzZSAqIG1heChkb3QoTiwgTCksIDAuMCksIDEuMCk7XG5cbiAgdmVjNCBzdXJmYWNlQ29sb3IgPSB2ZWM0KGZfY29sb3IucmdiLCAxLjApICogdGV4dHVyZTJEKHRleHR1cmUsIGZfdXYpO1xuICB2ZWM0IGxpdENvbG9yID0gc3VyZmFjZUNvbG9yLmEgKiB2ZWM0KGRpZmZ1c2UgKiBzdXJmYWNlQ29sb3IucmdiICsga3NwZWN1bGFyICogdmVjMygxLDEsMSkgKiBzcGVjdWxhciwgIDEuMCk7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gbGl0Q29sb3IgKiBmX2NvbG9yLmE7XG59XG4iXSksbz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbmF0dHJpYnV0ZSB2ZWMyIHV2O1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG5cbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMzIGZfZGF0YTtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIGZfY29sb3IgPSBjb2xvcjtcbiAgZl9kYXRhICA9IHBvc2l0aW9uO1xuICBmX3V2ICAgID0gdXY7XG59Il0pLHM9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7XG51bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMzIGZfZGF0YTtcbnZhcnlpbmcgdmVjMiBmX3V2O1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfZGF0YSkpIGRpc2NhcmQ7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gZl9jb2xvciAqIHRleHR1cmUyRCh0ZXh0dXJlLCBmX3V2KSAqIG9wYWNpdHk7XG59Il0pLGw9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgdXY7XG5hdHRyaWJ1dGUgZmxvYXQgcG9pbnRTaXplO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBwb3NpdGlvbikpIHtcblxuICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCAsMC4wICwwLjApO1xuICB9IGVsc2Uge1xuICAgIGdsX1Bvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQocG9zaXRpb24sIDEuMCk7XG4gIH1cbiAgZ2xfUG9pbnRTaXplID0gcG9pbnRTaXplO1xuICBmX2NvbG9yID0gY29sb3I7XG4gIGZfdXYgPSB1djtcbn0iXSksYz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBzYW1wbGVyMkQgdGV4dHVyZTtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICB2ZWMyIHBvaW50UiA9IGdsX1BvaW50Q29vcmQueHkgLSB2ZWMyKDAuNSwgMC41KTtcbiAgaWYoZG90KHBvaW50UiwgcG9pbnRSKSA+IDAuMjUpIHtcbiAgICBkaXNjYXJkO1xuICB9XG4gIGdsX0ZyYWdDb2xvciA9IGZfY29sb3IgKiB0ZXh0dXJlMkQodGV4dHVyZSwgZl91dikgKiBvcGFjaXR5O1xufSJdKSx1PW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGlkO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG5cbnZhcnlpbmcgdmVjMyBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfaWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbiAgZl9pZCAgICAgICAgPSBpZDtcbiAgZl9wb3NpdGlvbiAgPSBwb3NpdGlvbjtcbn0iXSksZj1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYm9vbCBvdXRPZlJhbmdlKGZsb2F0IGEsIGZsb2F0IGIsIGZsb2F0IHApIHtcbiAgcmV0dXJuICgocCA+IG1heChhLCBiKSkgfHwgXG4gICAgICAgICAgKHAgPCBtaW4oYSwgYikpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzIgYSwgdmVjMiBiLCB2ZWMyIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMzIGEsIHZlYzMgYiwgdmVjMyBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueiwgYi56LCBwLnopKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzQgYSwgdmVjNCBiLCB2ZWM0IHApIHtcbiAgcmV0dXJuIG91dE9mUmFuZ2UoYS54eXosIGIueHl6LCBwLnh5eik7XG59XG5cbnVuaWZvcm0gdmVjMyAgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcGlja0lkO1xuXG52YXJ5aW5nIHZlYzMgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2lkO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIGZfcG9zaXRpb24pKSBkaXNjYXJkO1xuXG4gIGdsX0ZyYWdDb2xvciA9IHZlYzQocGlja0lkLCBmX2lkLnh5eik7XG59Il0pLGg9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG5hdHRyaWJ1dGUgdmVjMyAgcG9zaXRpb247XG5hdHRyaWJ1dGUgZmxvYXQgcG9pbnRTaXplO1xuYXR0cmlidXRlIHZlYzQgIGlkO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICBpZiAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCBwb3NpdGlvbikpIHtcblxuICAgIGdsX1Bvc2l0aW9uID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjApO1xuICB9IGVsc2Uge1xuICAgIGdsX1Bvc2l0aW9uICA9IHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICAgIGdsX1BvaW50U2l6ZSA9IHBvaW50U2l6ZTtcbiAgfVxuICBmX2lkICAgICAgICAgPSBpZDtcbiAgZl9wb3NpdGlvbiAgID0gcG9zaXRpb247XG59Il0pLHA9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG5cbnZvaWQgbWFpbigpIHtcbiAgZ2xfUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwb3NpdGlvbiwgMS4wKTtcbn0iXSksZD1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWMzIGNvbnRvdXJDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbnRvdXJDb2xvciwgMS4wKTtcbn1cbiJdKTtyLm1lc2hTaGFkZXI9e3ZlcnRleDppLGZyYWdtZW50OmEsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9LHtuYW1lOiJ1diIsdHlwZToidmVjMiJ9XX0sci53aXJlU2hhZGVyPXt2ZXJ0ZXg6byxmcmFnbWVudDpzLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9LHtuYW1lOiJ1diIsdHlwZToidmVjMiJ9XX0sci5wb2ludFNoYWRlcj17dmVydGV4OmwsZnJhZ21lbnQ6YyxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToidXYiLHR5cGU6InZlYzIifSx7bmFtZToicG9pbnRTaXplIix0eXBlOiJmbG9hdCJ9XX0sci5waWNrU2hhZGVyPXt2ZXJ0ZXg6dSxmcmFnbWVudDpmLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJpZCIsdHlwZToidmVjNCJ9XX0sci5wb2ludFBpY2tTaGFkZXI9e3ZlcnRleDpoLGZyYWdtZW50OmYsYXR0cmlidXRlczpbe25hbWU6InBvc2l0aW9uIix0eXBlOiJ2ZWMzIn0se25hbWU6InBvaW50U2l6ZSIsdHlwZToiZmxvYXQifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifV19LHIuY29udG91clNoYWRlcj17dmVydGV4OnAsZnJhZ21lbnQ6ZCxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifV19fSx7Z2xzbGlmeTo0MjR9XSwzMDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT10KCJnbC1idWZmZXIiKSxhPXQoImdsLXZhbyIpLG89dCgiZ2wtdGV4dHVyZTJkIikscz10KCJub3JtYWxzIiksbD10KCJnbC1tYXQ0L211bHRpcGx5IiksYz10KCJnbC1tYXQ0L2ludmVydCIpLHU9dCgibmRhcnJheSIpLGY9dCgiY29sb3JtYXAiKSxoPXQoInNpbXBsaWNpYWwtY29tcGxleC1jb250b3VyIikscD10KCJ0eXBlZGFycmF5LXBvb2wiKSxkPXQoIi4vbGliL3NoYWRlcnMiKSxtPXQoIi4vbGliL2Nsb3Nlc3QtcG9pbnQiKSxnPWQubWVzaFNoYWRlcix2PWQud2lyZVNoYWRlcix5PWQucG9pbnRTaGFkZXIseD1kLnBpY2tTaGFkZXIsYj1kLnBvaW50UGlja1NoYWRlcixfPWQuY29udG91clNoYWRlcix3PVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtmdW5jdGlvbiBUKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sVCxrLEEsTSxTKXt0aGlzLmdsPXQsdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5jZWxscz1bXSx0aGlzLnBvc2l0aW9ucz1bXSx0aGlzLmludGVuc2l0eT1bXSx0aGlzLnRleHR1cmU9ZSx0aGlzLmRpcnR5PSEwLHRoaXMudHJpU2hhZGVyPXIsdGhpcy5saW5lU2hhZGVyPW4sdGhpcy5wb2ludFNoYWRlcj1pLHRoaXMucGlja1NoYWRlcj1hLHRoaXMucG9pbnRQaWNrU2hhZGVyPW8sdGhpcy5jb250b3VyU2hhZGVyPXMsdGhpcy50cmlhbmdsZVBvc2l0aW9ucz1sLHRoaXMudHJpYW5nbGVDb2xvcnM9dSx0aGlzLnRyaWFuZ2xlTm9ybWFscz1oLHRoaXMudHJpYW5nbGVVVnM9Zix0aGlzLnRyaWFuZ2xlSWRzPWMsdGhpcy50cmlhbmdsZVZBTz1wLHRoaXMudHJpYW5nbGVDb3VudD0wLHRoaXMubGluZVdpZHRoPTEsdGhpcy5lZGdlUG9zaXRpb25zPWQsdGhpcy5lZGdlQ29sb3JzPWcsdGhpcy5lZGdlVVZzPXYsdGhpcy5lZGdlSWRzPW0sdGhpcy5lZGdlVkFPPXksdGhpcy5lZGdlQ291bnQ9MCx0aGlzLnBvaW50UG9zaXRpb25zPXgsdGhpcy5wb2ludENvbG9ycz1fLHRoaXMucG9pbnRVVnM9VCx0aGlzLnBvaW50U2l6ZXM9ayx0aGlzLnBvaW50SWRzPWIsdGhpcy5wb2ludFZBTz1BLHRoaXMucG9pbnRDb3VudD0wLHRoaXMuY29udG91ckxpbmVXaWR0aD0xLHRoaXMuY29udG91clBvc2l0aW9ucz1NLHRoaXMuY29udG91clZBTz1TLHRoaXMuY29udG91ckNvdW50PTAsdGhpcy5jb250b3VyQ29sb3I9WzAsMCwwXSx0aGlzLmNvbnRvdXJFbmFibGU9ITAsdGhpcy5waWNrVmVydGV4PSEwLHRoaXMucGlja0lkPTEsdGhpcy5ib3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV0sdGhpcy5jbGlwQm91bmRzPVtbLTEvMCwtMS8wLC0xLzBdLFsxLzAsMS8wLDEvMF1dLHRoaXMubGlnaHRQb3NpdGlvbj1bMWU1LDFlNSwwXSx0aGlzLmFtYmllbnRMaWdodD0uOCx0aGlzLmRpZmZ1c2VMaWdodD0uOCx0aGlzLnNwZWN1bGFyTGlnaHQ9Mix0aGlzLnJvdWdobmVzcz0uNSx0aGlzLmZyZXNuZWw9MS41LHRoaXMub3BhY2l0eT0xLHRoaXMuaGFzQWxwaGE9ITEsdGhpcy5vcGFjaXR5c2NhbGU9ITEsdGhpcy5fbW9kZWw9dyx0aGlzLl92aWV3PXcsdGhpcy5fcHJvamVjdGlvbj13LHRoaXMuX3Jlc29sdXRpb249WzEsMV19dmFyIGs9VC5wcm90b3R5cGU7ZnVuY3Rpb24gQSh0LGUpe2lmKCFlKXJldHVybiAxO2lmKCFlLmxlbmd0aClyZXR1cm4gMTtmb3IodmFyIHI9MDtyPGUubGVuZ3RoOysrcil7aWYoZS5sZW5ndGg8MilyZXR1cm4gMTtpZihlW3JdWzBdPT09dClyZXR1cm4gZVtyXVsxXTtpZihlW3JdWzBdPnQmJnI+MCl7dmFyIG49KGVbcl1bMF0tdCkvKGVbcl1bMF0tZVtyLTFdWzBdKTtyZXR1cm4gZVtyXVsxXSooMS1uKStuKmVbci0xXVsxXX19cmV0dXJuIDF9ZnVuY3Rpb24gTSh0KXt2YXIgZT1uKHQsZy52ZXJ0ZXgsZy5mcmFnbWVudCk7cmV0dXJuIGUuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5jb2xvci5sb2NhdGlvbj0yLGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0zLGUuYXR0cmlidXRlcy5ub3JtYWwubG9jYXRpb249NCxlfWZ1bmN0aW9uIFModCl7dmFyIGU9bih0LHYudmVydGV4LHYuZnJhZ21lbnQpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MixlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MyxlfWZ1bmN0aW9uIEUodCl7dmFyIGU9bih0LHkudmVydGV4LHkuZnJhZ21lbnQpO3JldHVybiBlLmF0dHJpYnV0ZXMucG9zaXRpb24ubG9jYXRpb249MCxlLmF0dHJpYnV0ZXMuY29sb3IubG9jYXRpb249MixlLmF0dHJpYnV0ZXMudXYubG9jYXRpb249MyxlLmF0dHJpYnV0ZXMucG9pbnRTaXplLmxvY2F0aW9uPTQsZX1mdW5jdGlvbiBMKHQpe3ZhciBlPW4odCx4LnZlcnRleCx4LmZyYWdtZW50KTtyZXR1cm4gZS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsZS5hdHRyaWJ1dGVzLmlkLmxvY2F0aW9uPTEsZX1mdW5jdGlvbiBDKHQpe3ZhciBlPW4odCxiLnZlcnRleCxiLmZyYWdtZW50KTtyZXR1cm4gZS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsZS5hdHRyaWJ1dGVzLmlkLmxvY2F0aW9uPTEsZS5hdHRyaWJ1dGVzLnBvaW50U2l6ZS5sb2NhdGlvbj00LGV9ZnVuY3Rpb24gUCh0KXt2YXIgZT1uKHQsXy52ZXJ0ZXgsXy5mcmFnbWVudCk7cmV0dXJuIGUuYXR0cmlidXRlcy5wb3NpdGlvbi5sb2NhdGlvbj0wLGV9ay5pc09wYXF1ZT1mdW5jdGlvbigpe3JldHVybiF0aGlzLmhhc0FscGhhfSxrLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNBbHBoYX0say5waWNrU2xvdHM9MSxrLnNldFBpY2tCYXNlPWZ1bmN0aW9uKHQpe3RoaXMucGlja0lkPXR9LGsuaGlnaGxpZ2h0PWZ1bmN0aW9uKHQpe2lmKHQmJnRoaXMuY29udG91ckVuYWJsZSl7Zm9yKHZhciBlPWgodGhpcy5jZWxscyx0aGlzLmludGVuc2l0eSx0LmludGVuc2l0eSkscj1lLmNlbGxzLG49ZS52ZXJ0ZXhJZHMsaT1lLnZlcnRleFdlaWdodHMsYT1yLmxlbmd0aCxvPXAubWFsbG9jRmxvYXQzMig2KmEpLHM9MCxsPTA7bDxhOysrbClmb3IodmFyIGM9cltsXSx1PTA7dTwyOysrdSl7dmFyIGY9Y1swXTsyPT09Yy5sZW5ndGgmJihmPWNbdV0pO2Zvcih2YXIgZD1uW2ZdWzBdLG09bltmXVsxXSxnPWlbZl0sdj0xLWcseT10aGlzLnBvc2l0aW9uc1tkXSx4PXRoaXMucG9zaXRpb25zW21dLGI9MDtiPDM7KytiKW9bcysrXT1nKnlbYl0rdip4W2JdfXRoaXMuY29udG91ckNvdW50PXMvM3wwLHRoaXMuY29udG91clBvc2l0aW9ucy51cGRhdGUoby5zdWJhcnJheSgwLHMpKSxwLmZyZWUobyl9ZWxzZSB0aGlzLmNvbnRvdXJDb3VudD0wfSxrLnVwZGF0ZT1mdW5jdGlvbih0KXt0PXR8fHt9O3ZhciBlPXRoaXMuZ2w7dGhpcy5kaXJ0eT0hMCwiY29udG91ckVuYWJsZSJpbiB0JiYodGhpcy5jb250b3VyRW5hYmxlPXQuY29udG91ckVuYWJsZSksImNvbnRvdXJDb2xvciJpbiB0JiYodGhpcy5jb250b3VyQ29sb3I9dC5jb250b3VyQ29sb3IpLCJsaW5lV2lkdGgiaW4gdCYmKHRoaXMubGluZVdpZHRoPXQubGluZVdpZHRoKSwibGlnaHRQb3NpdGlvbiJpbiB0JiYodGhpcy5saWdodFBvc2l0aW9uPXQubGlnaHRQb3NpdGlvbiksdGhpcy5oYXNBbHBoYT0hMSwib3BhY2l0eSJpbiB0JiYodGhpcy5vcGFjaXR5PXQub3BhY2l0eSx0aGlzLm9wYWNpdHk8MSYmKHRoaXMuaGFzQWxwaGE9ITApKSwib3BhY2l0eXNjYWxlImluIHQmJih0aGlzLm9wYWNpdHlzY2FsZT10Lm9wYWNpdHlzY2FsZSx0aGlzLmhhc0FscGhhPSEwKSwiYW1iaWVudCJpbiB0JiYodGhpcy5hbWJpZW50TGlnaHQ9dC5hbWJpZW50KSwiZGlmZnVzZSJpbiB0JiYodGhpcy5kaWZmdXNlTGlnaHQ9dC5kaWZmdXNlKSwic3BlY3VsYXIiaW4gdCYmKHRoaXMuc3BlY3VsYXJMaWdodD10LnNwZWN1bGFyKSwicm91Z2huZXNzImluIHQmJih0aGlzLnJvdWdobmVzcz10LnJvdWdobmVzcyksImZyZXNuZWwiaW4gdCYmKHRoaXMuZnJlc25lbD10LmZyZXNuZWwpLHQudGV4dHVyZT8odGhpcy50ZXh0dXJlLmRpc3Bvc2UoKSx0aGlzLnRleHR1cmU9byhlLHQudGV4dHVyZSkpOnQuY29sb3JtYXAmJih0aGlzLnRleHR1cmUuc2hhcGU9WzI1NiwyNTZdLHRoaXMudGV4dHVyZS5taW5GaWx0ZXI9ZS5MSU5FQVJfTUlQTUFQX0xJTkVBUix0aGlzLnRleHR1cmUubWFnRmlsdGVyPWUuTElORUFSLHRoaXMudGV4dHVyZS5zZXRQaXhlbHMoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9Zih7Y29sb3JtYXA6dCxuc2hhZGVzOjI1Nixmb3JtYXQ6InJnYmEifSksbj1uZXcgVWludDhBcnJheSgxMDI0KSxpPTA7aTwyNTY7KytpKXtmb3IodmFyIGE9cltpXSxvPTA7bzwzOysrbyluWzQqaStvXT1hW29dO25bNCppKzNdPWU/MjU1KkEoaS8yNTUsZSk6MjU1KmFbM119cmV0dXJuIHUobixbMjU2LDI1Niw0XSxbNCwwLDFdKX0odC5jb2xvcm1hcCx0aGlzLm9wYWNpdHlzY2FsZSkpLHRoaXMudGV4dHVyZS5nZW5lcmF0ZU1pcG1hcCgpKTt2YXIgcj10LmNlbGxzLG49dC5wb3NpdGlvbnM7aWYobiYmcil7dmFyIGk9W10sYT1bXSxsPVtdLGM9W10saD1bXSxwPVtdLGQ9W10sbT1bXSxnPVtdLHY9W10seT1bXSx4PVtdLGI9W10sXz1bXTt0aGlzLmNlbGxzPXIsdGhpcy5wb3NpdGlvbnM9bjt2YXIgdz10LnZlcnRleE5vcm1hbHMsVD10LmNlbGxOb3JtYWxzLGs9dm9pZCAwPT09dC52ZXJ0ZXhOb3JtYWxzRXBzaWxvbj8xZS02OnQudmVydGV4Tm9ybWFsc0Vwc2lsb24sTT12b2lkIDA9PT10LmZhY2VOb3JtYWxzRXBzaWxvbj8xZS02OnQuZmFjZU5vcm1hbHNFcHNpbG9uO3QudXNlRmFjZXROb3JtYWxzJiYhVCYmKFQ9cy5mYWNlTm9ybWFscyhyLG4sTSkpLFR8fHd8fCh3PXMudmVydGV4Tm9ybWFscyhyLG4saykpO3ZhciBTPXQudmVydGV4Q29sb3JzLEU9dC5jZWxsQ29sb3JzLEw9dC5tZXNoQ29sb3J8fFsxLDEsMSwxXSxDPXQudmVydGV4VVZzLFA9dC52ZXJ0ZXhJbnRlbnNpdHksST10LmNlbGxVVnMsTz10LmNlbGxJbnRlbnNpdHksej0xLzAsRD0tMS8wO2lmKCFDJiYhSSlpZihQKWlmKHQudmVydGV4SW50ZW5zaXR5Qm91bmRzKXo9K3QudmVydGV4SW50ZW5zaXR5Qm91bmRzWzBdLEQ9K3QudmVydGV4SW50ZW5zaXR5Qm91bmRzWzFdO2Vsc2UgZm9yKHZhciBSPTA7UjxQLmxlbmd0aDsrK1Ipe3ZhciBGPVBbUl07ej1NYXRoLm1pbih6LEYpLEQ9TWF0aC5tYXgoRCxGKX1lbHNlIGlmKE8paWYodC5jZWxsSW50ZW5zaXR5Qm91bmRzKXo9K3QuY2VsbEludGVuc2l0eUJvdW5kc1swXSxEPSt0LmNlbGxJbnRlbnNpdHlCb3VuZHNbMV07ZWxzZSBmb3IoUj0wO1I8Ty5sZW5ndGg7KytSKXtGPU9bUl07ej1NYXRoLm1pbih6LEYpLEQ9TWF0aC5tYXgoRCxGKX1lbHNlIGZvcihSPTA7UjxuLmxlbmd0aDsrK1Ipe0Y9bltSXVsyXTt6PU1hdGgubWluKHosRiksRD1NYXRoLm1heChELEYpfXRoaXMuaW50ZW5zaXR5PVB8fChPfHxmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pcltuXT10W25dWzJdO3JldHVybiByfShuKSksdGhpcy5waWNrVmVydGV4PSEoT3x8RSk7dmFyIEI9dC5wb2ludFNpemVzLE49dC5wb2ludFNpemV8fDE7dGhpcy5ib3VuZHM9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV07Zm9yKFI9MDtSPG4ubGVuZ3RoOysrUilmb3IodmFyIGo9bltSXSxVPTA7VTwzOysrVSkhaXNOYU4oaltVXSkmJmlzRmluaXRlKGpbVV0pJiYodGhpcy5ib3VuZHNbMF1bVV09TWF0aC5taW4odGhpcy5ib3VuZHNbMF1bVV0saltVXSksdGhpcy5ib3VuZHNbMV1bVV09TWF0aC5tYXgodGhpcy5ib3VuZHNbMV1bVV0saltVXSkpO3ZhciBWPTAsSD0wLHE9MDt0OmZvcihSPTA7UjxyLmxlbmd0aDsrK1Ipe3ZhciBHPXJbUl07c3dpdGNoKEcubGVuZ3RoKXtjYXNlIDE6Zm9yKGo9bltXPUdbMF1dLFU9MDtVPDM7KytVKWlmKGlzTmFOKGpbVV0pfHwhaXNGaW5pdGUoaltVXSkpY29udGludWUgdDt2LnB1c2goalswXSxqWzFdLGpbMl0pLFg9Uz9TW1ddOkU/RVtSXTpMLHRoaXMub3BhY2l0eXNjYWxlJiZQP2EucHVzaChYWzBdLFhbMV0sWFsyXSx0aGlzLm9wYWNpdHkqQSgoUFtXXS16KS8oRC16KSx0aGlzLm9wYWNpdHlzY2FsZSkpOjM9PT1YLmxlbmd0aD95LnB1c2goWFswXSxYWzFdLFhbMl0sdGhpcy5vcGFjaXR5KTooeS5wdXNoKFhbMF0sWFsxXSxYWzJdLFhbM10qdGhpcy5vcGFjaXR5KSxYWzNdPDEmJih0aGlzLmhhc0FscGhhPSEwKSksWj1DP0NbV106UD9bKFBbV10teikvKEQteiksMF06ST9JW1JdOk8/WyhPW1JdLXopLyhELXopLDBdOlsoalsyXS16KS8oRC16KSwwXSx4LnB1c2goWlswXSxaWzFdKSxCP2IucHVzaChCW1ddKTpiLnB1c2goTiksXy5wdXNoKFIpLHErPTE7YnJlYWs7Y2FzZSAyOmZvcihVPTA7VTwyOysrVSl7aj1uW1c9R1tVXV07Zm9yKHZhciBZPTA7WTwzOysrWSlpZihpc05hTihqW1ldKXx8IWlzRmluaXRlKGpbWV0pKWNvbnRpbnVlIHR9Zm9yKFU9MDtVPDI7KytVKXtqPW5bVz1HW1VdXTtwLnB1c2goalswXSxqWzFdLGpbMl0pLFg9Uz9TW1ddOkU/RVtSXTpMLHRoaXMub3BhY2l0eXNjYWxlJiZQP2EucHVzaChYWzBdLFhbMV0sWFsyXSx0aGlzLm9wYWNpdHkqQSgoUFtXXS16KS8oRC16KSx0aGlzLm9wYWNpdHlzY2FsZSkpOjM9PT1YLmxlbmd0aD9kLnB1c2goWFswXSxYWzFdLFhbMl0sdGhpcy5vcGFjaXR5KTooZC5wdXNoKFhbMF0sWFsxXSxYWzJdLFhbM10qdGhpcy5vcGFjaXR5KSxYWzNdPDEmJih0aGlzLmhhc0FscGhhPSEwKSksWj1DP0NbV106UD9bKFBbV10teikvKEQteiksMF06ST9JW1JdOk8/WyhPW1JdLXopLyhELXopLDBdOlsoalsyXS16KS8oRC16KSwwXSxtLnB1c2goWlswXSxaWzFdKSxnLnB1c2goUil9SCs9MTticmVhaztjYXNlIDM6Zm9yKFU9MDtVPDM7KytVKWZvcihqPW5bVz1HW1VdXSxZPTA7WTwzOysrWSlpZihpc05hTihqW1ldKXx8IWlzRmluaXRlKGpbWV0pKWNvbnRpbnVlIHQ7Zm9yKFU9MDtVPDM7KytVKXt2YXIgVyxYLFosSjtqPW5bVz1HWzItVV1dO2kucHVzaChqWzBdLGpbMV0salsyXSksKFg9Uz9TW1ddOkU/RVtSXTpMKT90aGlzLm9wYWNpdHlzY2FsZSYmUD9hLnB1c2goWFswXSxYWzFdLFhbMl0sdGhpcy5vcGFjaXR5KkEoKFBbV10teikvKEQteiksdGhpcy5vcGFjaXR5c2NhbGUpKTozPT09WC5sZW5ndGg/YS5wdXNoKFhbMF0sWFsxXSxYWzJdLHRoaXMub3BhY2l0eSk6KGEucHVzaChYWzBdLFhbMV0sWFsyXSxYWzNdKnRoaXMub3BhY2l0eSksWFszXTwxJiYodGhpcy5oYXNBbHBoYT0hMCkpOmEucHVzaCguNSwuNSwuNSwxKSxaPUM/Q1tXXTpQP1soUFtXXS16KS8oRC16KSwwXTpJP0lbUl06Tz9bKE9bUl0teikvKEQteiksMF06WyhqWzJdLXopLyhELXopLDBdLGMucHVzaChaWzBdLFpbMV0pLEo9dz93W1ddOlRbUl0sbC5wdXNoKEpbMF0sSlsxXSxKWzJdKSxoLnB1c2goUil9Vis9MX19dGhpcy5wb2ludENvdW50PXEsdGhpcy5lZGdlQ291bnQ9SCx0aGlzLnRyaWFuZ2xlQ291bnQ9Vix0aGlzLnBvaW50UG9zaXRpb25zLnVwZGF0ZSh2KSx0aGlzLnBvaW50Q29sb3JzLnVwZGF0ZSh5KSx0aGlzLnBvaW50VVZzLnVwZGF0ZSh4KSx0aGlzLnBvaW50U2l6ZXMudXBkYXRlKGIpLHRoaXMucG9pbnRJZHMudXBkYXRlKG5ldyBVaW50MzJBcnJheShfKSksdGhpcy5lZGdlUG9zaXRpb25zLnVwZGF0ZShwKSx0aGlzLmVkZ2VDb2xvcnMudXBkYXRlKGQpLHRoaXMuZWRnZVVWcy51cGRhdGUobSksdGhpcy5lZGdlSWRzLnVwZGF0ZShuZXcgVWludDMyQXJyYXkoZykpLHRoaXMudHJpYW5nbGVQb3NpdGlvbnMudXBkYXRlKGkpLHRoaXMudHJpYW5nbGVDb2xvcnMudXBkYXRlKGEpLHRoaXMudHJpYW5nbGVVVnMudXBkYXRlKGMpLHRoaXMudHJpYW5nbGVOb3JtYWxzLnVwZGF0ZShsKSx0aGlzLnRyaWFuZ2xlSWRzLnVwZGF0ZShuZXcgVWludDMyQXJyYXkoaCkpfX0say5kcmF3VHJhbnNwYXJlbnQ9ay5kcmF3PWZ1bmN0aW9uKHQpe3Q9dHx8e307Zm9yKHZhciBlPXRoaXMuZ2wscj10Lm1vZGVsfHx3LG49dC52aWV3fHx3LGk9dC5wcm9qZWN0aW9ufHx3LGE9W1stMWU2LC0xZTYsLTFlNl0sWzFlNiwxZTYsMWU2XV0sbz0wO288MzsrK28pYVswXVtvXT1NYXRoLm1heChhWzBdW29dLHRoaXMuY2xpcEJvdW5kc1swXVtvXSksYVsxXVtvXT1NYXRoLm1pbihhWzFdW29dLHRoaXMuY2xpcEJvdW5kc1sxXVtvXSk7dmFyIHM9e21vZGVsOnIsdmlldzpuLHByb2plY3Rpb246aSxpbnZlcnNlTW9kZWw6dy5zbGljZSgpLGNsaXBCb3VuZHM6YSxrYW1iaWVudDp0aGlzLmFtYmllbnRMaWdodCxrZGlmZnVzZTp0aGlzLmRpZmZ1c2VMaWdodCxrc3BlY3VsYXI6dGhpcy5zcGVjdWxhckxpZ2h0LHJvdWdobmVzczp0aGlzLnJvdWdobmVzcyxmcmVzbmVsOnRoaXMuZnJlc25lbCxleWVQb3NpdGlvbjpbMCwwLDBdLGxpZ2h0UG9zaXRpb246WzAsMCwwXSxjb250b3VyQ29sb3I6dGhpcy5jb250b3VyQ29sb3IsdGV4dHVyZTowfTtzLmludmVyc2VNb2RlbD1jKHMuaW52ZXJzZU1vZGVsLHMubW9kZWwpLGUuZGlzYWJsZShlLkNVTExfRkFDRSksdGhpcy50ZXh0dXJlLmJpbmQoMCk7dmFyIHU9bmV3IEFycmF5KDE2KTtsKHUscy52aWV3LHMubW9kZWwpLGwodSxzLnByb2plY3Rpb24sdSksYyh1LHUpO2ZvcihvPTA7bzwzOysrbylzLmV5ZVBvc2l0aW9uW29dPXVbMTIrb10vdVsxNV07dmFyIGYsaD11WzE1XTtmb3Iobz0wO288MzsrK28paCs9dGhpcy5saWdodFBvc2l0aW9uW29dKnVbNCpvKzNdO2ZvcihvPTA7bzwzOysrbyl7Zm9yKHZhciBwPXVbMTIrb10sZD0wO2Q8MzsrK2QpcCs9dVs0KmQrb10qdGhpcy5saWdodFBvc2l0aW9uW2RdO3MubGlnaHRQb3NpdGlvbltvXT1wL2h9dGhpcy50cmlhbmdsZUNvdW50PjAmJigoZj10aGlzLnRyaVNoYWRlcikuYmluZCgpLGYudW5pZm9ybXM9cyx0aGlzLnRyaWFuZ2xlVkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5UUklBTkdMRVMsMCwzKnRoaXMudHJpYW5nbGVDb3VudCksdGhpcy50cmlhbmdsZVZBTy51bmJpbmQoKSk7dGhpcy5lZGdlQ291bnQ+MCYmdGhpcy5saW5lV2lkdGg+MCYmKChmPXRoaXMubGluZVNoYWRlcikuYmluZCgpLGYudW5pZm9ybXM9cyx0aGlzLmVkZ2VWQU8uYmluZCgpLGUubGluZVdpZHRoKHRoaXMubGluZVdpZHRoKnRoaXMucGl4ZWxSYXRpbyksZS5kcmF3QXJyYXlzKGUuTElORVMsMCwyKnRoaXMuZWRnZUNvdW50KSx0aGlzLmVkZ2VWQU8udW5iaW5kKCkpO3RoaXMucG9pbnRDb3VudD4wJiYoKGY9dGhpcy5wb2ludFNoYWRlcikuYmluZCgpLGYudW5pZm9ybXM9cyx0aGlzLnBvaW50VkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5QT0lOVFMsMCx0aGlzLnBvaW50Q291bnQpLHRoaXMucG9pbnRWQU8udW5iaW5kKCkpO3RoaXMuY29udG91ckVuYWJsZSYmdGhpcy5jb250b3VyQ291bnQ+MCYmdGhpcy5jb250b3VyTGluZVdpZHRoPjAmJigoZj10aGlzLmNvbnRvdXJTaGFkZXIpLmJpbmQoKSxmLnVuaWZvcm1zPXMsdGhpcy5jb250b3VyVkFPLmJpbmQoKSxlLmRyYXdBcnJheXMoZS5MSU5FUywwLHRoaXMuY29udG91ckNvdW50KSx0aGlzLmNvbnRvdXJWQU8udW5iaW5kKCkpfSxrLmRyYXdQaWNrPWZ1bmN0aW9uKHQpe3Q9dHx8e307Zm9yKHZhciBlPXRoaXMuZ2wscj10Lm1vZGVsfHx3LG49dC52aWV3fHx3LGk9dC5wcm9qZWN0aW9ufHx3LGE9W1stMWU2LC0xZTYsLTFlNl0sWzFlNiwxZTYsMWU2XV0sbz0wO288MzsrK28pYVswXVtvXT1NYXRoLm1heChhWzBdW29dLHRoaXMuY2xpcEJvdW5kc1swXVtvXSksYVsxXVtvXT1NYXRoLm1pbihhWzFdW29dLHRoaXMuY2xpcEJvdW5kc1sxXVtvXSk7dGhpcy5fbW9kZWw9W10uc2xpY2UuY2FsbChyKSx0aGlzLl92aWV3PVtdLnNsaWNlLmNhbGwobiksdGhpcy5fcHJvamVjdGlvbj1bXS5zbGljZS5jYWxsKGkpLHRoaXMuX3Jlc29sdXRpb249W2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF07dmFyIHMsbD17bW9kZWw6cix2aWV3Om4scHJvamVjdGlvbjppLGNsaXBCb3VuZHM6YSxwaWNrSWQ6dGhpcy5waWNrSWQvMjU1fTsoKHM9dGhpcy5waWNrU2hhZGVyKS5iaW5kKCkscy51bmlmb3Jtcz1sLHRoaXMudHJpYW5nbGVDb3VudD4wJiYodGhpcy50cmlhbmdsZVZBTy5iaW5kKCksZS5kcmF3QXJyYXlzKGUuVFJJQU5HTEVTLDAsMyp0aGlzLnRyaWFuZ2xlQ291bnQpLHRoaXMudHJpYW5nbGVWQU8udW5iaW5kKCkpLHRoaXMuZWRnZUNvdW50PjAmJih0aGlzLmVkZ2VWQU8uYmluZCgpLGUubGluZVdpZHRoKHRoaXMubGluZVdpZHRoKnRoaXMucGl4ZWxSYXRpbyksZS5kcmF3QXJyYXlzKGUuTElORVMsMCwyKnRoaXMuZWRnZUNvdW50KSx0aGlzLmVkZ2VWQU8udW5iaW5kKCkpLHRoaXMucG9pbnRDb3VudD4wKSYmKChzPXRoaXMucG9pbnRQaWNrU2hhZGVyKS5iaW5kKCkscy51bmlmb3Jtcz1sLHRoaXMucG9pbnRWQU8uYmluZCgpLGUuZHJhd0FycmF5cyhlLlBPSU5UUywwLHRoaXMucG9pbnRDb3VudCksdGhpcy5wb2ludFZBTy51bmJpbmQoKSl9LGsucGljaz1mdW5jdGlvbih0KXtpZighdClyZXR1cm4gbnVsbDtpZih0LmlkIT09dGhpcy5waWNrSWQpcmV0dXJuIG51bGw7Zm9yKHZhciBlPXQudmFsdWVbMF0rMjU2KnQudmFsdWVbMV0rNjU1MzYqdC52YWx1ZVsyXSxyPXRoaXMuY2VsbHNbZV0sbj10aGlzLnBvc2l0aW9ucyxpPW5ldyBBcnJheShyLmxlbmd0aCksYT0wO2E8ci5sZW5ndGg7KythKWlbYV09bltyW2FdXTt2YXIgbz10LmNvb3JkWzBdLHM9dC5jb29yZFsxXTtpZighdGhpcy5waWNrVmVydGV4KXt2YXIgbD10aGlzLnBvc2l0aW9uc1tyWzBdXSxjPXRoaXMucG9zaXRpb25zW3JbMV1dLHU9dGhpcy5wb3NpdGlvbnNbclsyXV0sZj1bKGxbMF0rY1swXSt1WzBdKS8zLChsWzFdK2NbMV0rdVsxXSkvMywobFsyXStjWzJdK3VbMl0pLzNdO3JldHVybntfY2VsbENlbnRlcjohMCxwb3NpdGlvbjpbbyxzXSxpbmRleDplLGNlbGw6cixjZWxsSWQ6ZSxpbnRlbnNpdHk6dGhpcy5pbnRlbnNpdHlbZV0sZGF0YUNvb3JkaW5hdGU6Zn19dmFyIGg9bShpLFtvKnRoaXMucGl4ZWxSYXRpbyx0aGlzLl9yZXNvbHV0aW9uWzFdLXMqdGhpcy5waXhlbFJhdGlvXSx0aGlzLl9tb2RlbCx0aGlzLl92aWV3LHRoaXMuX3Byb2plY3Rpb24sdGhpcy5fcmVzb2x1dGlvbik7aWYoIWgpcmV0dXJuIG51bGw7dmFyIHA9aFsyXSxkPTA7Zm9yKGE9MDthPHIubGVuZ3RoOysrYSlkKz1wW2FdKnRoaXMuaW50ZW5zaXR5W3JbYV1dO3JldHVybntwb3NpdGlvbjpoWzFdLGluZGV4OnJbaFswXV0sY2VsbDpyLGNlbGxJZDplLGludGVuc2l0eTpkLGRhdGFDb29yZGluYXRlOnRoaXMucG9zaXRpb25zW3JbaFswXV1dfX0say5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy50ZXh0dXJlLmRpc3Bvc2UoKSx0aGlzLnRyaVNoYWRlci5kaXNwb3NlKCksdGhpcy5saW5lU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBvaW50U2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBpY2tTaGFkZXIuZGlzcG9zZSgpLHRoaXMucG9pbnRQaWNrU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlVkFPLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlUG9zaXRpb25zLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlQ29sb3JzLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlVVZzLmRpc3Bvc2UoKSx0aGlzLnRyaWFuZ2xlTm9ybWFscy5kaXNwb3NlKCksdGhpcy50cmlhbmdsZUlkcy5kaXNwb3NlKCksdGhpcy5lZGdlVkFPLmRpc3Bvc2UoKSx0aGlzLmVkZ2VQb3NpdGlvbnMuZGlzcG9zZSgpLHRoaXMuZWRnZUNvbG9ycy5kaXNwb3NlKCksdGhpcy5lZGdlVVZzLmRpc3Bvc2UoKSx0aGlzLmVkZ2VJZHMuZGlzcG9zZSgpLHRoaXMucG9pbnRWQU8uZGlzcG9zZSgpLHRoaXMucG9pbnRQb3NpdGlvbnMuZGlzcG9zZSgpLHRoaXMucG9pbnRDb2xvcnMuZGlzcG9zZSgpLHRoaXMucG9pbnRVVnMuZGlzcG9zZSgpLHRoaXMucG9pbnRTaXplcy5kaXNwb3NlKCksdGhpcy5wb2ludElkcy5kaXNwb3NlKCksdGhpcy5jb250b3VyVkFPLmRpc3Bvc2UoKSx0aGlzLmNvbnRvdXJQb3NpdGlvbnMuZGlzcG9zZSgpLHRoaXMuY29udG91clNoYWRlci5kaXNwb3NlKCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpezE9PT1hcmd1bWVudHMubGVuZ3RoJiYodD0oZT10KS5nbCk7dmFyIHI9dC5nZXRFeHRlbnNpb24oIk9FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpfHx0LmdldEV4dGVuc2lvbigiTU9aX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpfHx0LmdldEV4dGVuc2lvbigiV0VCS0lUX09FU19zdGFuZGFyZF9kZXJpdmF0aXZlcyIpO2lmKCFyKXRocm93IG5ldyBFcnJvcigiZGVyaXZhdGl2ZXMgbm90IHN1cHBvcnRlZCIpO3ZhciBuPU0odCkscz1TKHQpLGw9RSh0KSxjPUwodCksZj1DKHQpLGg9UCh0KSxwPW8odCx1KG5ldyBVaW50OEFycmF5KFsyNTUsMjU1LDI1NSwyNTVdKSxbMSwxLDRdKSk7cC5nZW5lcmF0ZU1pcG1hcCgpLHAubWluRmlsdGVyPXQuTElORUFSX01JUE1BUF9MSU5FQVIscC5tYWdGaWx0ZXI9dC5MSU5FQVI7dmFyIGQ9aSh0KSxtPWkodCksZz1pKHQpLHY9aSh0KSx5PWkodCkseD1hKHQsW3tidWZmZXI6ZCx0eXBlOnQuRkxPQVQsc2l6ZTozfSx7YnVmZmVyOnksdHlwZTp0LlVOU0lHTkVEX0JZVEUsc2l6ZTo0LG5vcm1hbGl6ZWQ6ITB9LHtidWZmZXI6bSx0eXBlOnQuRkxPQVQsc2l6ZTo0fSx7YnVmZmVyOmcsdHlwZTp0LkZMT0FULHNpemU6Mn0se2J1ZmZlcjp2LHR5cGU6dC5GTE9BVCxzaXplOjN9XSksYj1pKHQpLF89aSh0KSx3PWkodCksaz1pKHQpLEE9YSh0LFt7YnVmZmVyOmIsdHlwZTp0LkZMT0FULHNpemU6M30se2J1ZmZlcjprLHR5cGU6dC5VTlNJR05FRF9CWVRFLHNpemU6NCxub3JtYWxpemVkOiEwfSx7YnVmZmVyOl8sdHlwZTp0LkZMT0FULHNpemU6NH0se2J1ZmZlcjp3LHR5cGU6dC5GTE9BVCxzaXplOjJ9XSksST1pKHQpLE89aSh0KSx6PWkodCksRD1pKHQpLFI9aSh0KSxGPWEodCxbe2J1ZmZlcjpJLHR5cGU6dC5GTE9BVCxzaXplOjN9LHtidWZmZXI6Uix0eXBlOnQuVU5TSUdORURfQllURSxzaXplOjQsbm9ybWFsaXplZDohMH0se2J1ZmZlcjpPLHR5cGU6dC5GTE9BVCxzaXplOjR9LHtidWZmZXI6eix0eXBlOnQuRkxPQVQsc2l6ZToyfSx7YnVmZmVyOkQsdHlwZTp0LkZMT0FULHNpemU6MX1dKSxCPWkodCksTj1hKHQsW3tidWZmZXI6Qix0eXBlOnQuRkxPQVQsc2l6ZTozfV0pLGo9bmV3IFQodCxwLG4scyxsLGMsZixoLGQseSxtLGcsdix4LGIsayxfLHcsQSxJLFIsTyx6LEQsRixCLE4pO3JldHVybiBqLnVwZGF0ZShlKSxqfX0seyIuL2xpYi9jbG9zZXN0LXBvaW50IjozMDEsIi4vbGliL3NoYWRlcnMiOjMwMixjb2xvcm1hcDoxMzIsImdsLWJ1ZmZlciI6MjU3LCJnbC1tYXQ0L2ludmVydCI6Mjg3LCJnbC1tYXQ0L211bHRpcGx5IjoyODksImdsLXNoYWRlciI6MzIzLCJnbC10ZXh0dXJlMmQiOjMzOCwiZ2wtdmFvIjozNDMsbmRhcnJheTo0NjIsbm9ybWFsczo0NjUsInNpbXBsaWNpYWwtY29tcGxleC1jb250b3VyIjo1MzIsInR5cGVkYXJyYXktcG9vbCI6NTkwfV0sMzA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmdsLHI9bihlLFswLDAsMCwxLDEsMCwxLDFdKSxzPWkoZSxhLmJveFZlcnQsYS5saW5lRnJhZyk7cmV0dXJuIG5ldyBvKHQscixzKX07dmFyIG49dCgiZ2wtYnVmZmVyIiksaT10KCJnbC1zaGFkZXIiKSxhPXQoIi4vc2hhZGVycyIpO2Z1bmN0aW9uIG8odCxlLHIpe3RoaXMucGxvdD10LHRoaXMudmJvPWUsdGhpcy5zaGFkZXI9cn12YXIgcyxsLGM9by5wcm90b3R5cGU7Yy5iaW5kPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zaGFkZXI7dGhpcy52Ym8uYmluZCgpLHRoaXMuc2hhZGVyLmJpbmQoKSx0LmF0dHJpYnV0ZXMuY29vcmQucG9pbnRlcigpLHQudW5pZm9ybXMuc2NyZWVuQm94PXRoaXMucGxvdC5zY3JlZW5Cb3h9LGMuZHJhd0JveD0ocz1bMCwwXSxsPVswLDBdLGZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5wbG90LG89dGhpcy5zaGFkZXIsYz1hLmdsO3NbMF09dCxzWzFdPWUsbFswXT1yLGxbMV09bixvLnVuaWZvcm1zLmxvPXMsby51bmlmb3Jtcy5oaT1sLG8udW5pZm9ybXMuY29sb3I9aSxjLmRyYXdBcnJheXMoYy5UUklBTkdMRV9TVFJJUCwwLDQpfSksYy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52Ym8uZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzIjozMDcsImdsLWJ1ZmZlciI6MjU3LCJnbC1zaGFkZXIiOjMyM31dLDMwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbCxyPW4oZSksYT1pKGUsby5ncmlkVmVydCxvLmdyaWRGcmFnKSxsPWkoZSxvLnRpY2tWZXJ0LG8uZ3JpZEZyYWcpO3JldHVybiBuZXcgcyh0LHIsYSxsKX07dmFyIG49dCgiZ2wtYnVmZmVyIiksaT10KCJnbC1zaGFkZXIiKSxhPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksbz10KCIuL3NoYWRlcnMiKTtmdW5jdGlvbiBzKHQsZSxyLG4pe3RoaXMucGxvdD10LHRoaXMudmJvPWUsdGhpcy5zaGFkZXI9cix0aGlzLnRpY2tTaGFkZXI9bix0aGlzLnRpY2tzPVtbXSxbXV19ZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0LWV9dmFyIGMsdSxmLGgscCxkPXMucHJvdG90eXBlO2QuZHJhdz0oYz1bMCwwXSx1PVswLDBdLGY9WzAsMF0sZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5wbG90LGU9dGhpcy52Ym8scj10aGlzLnNoYWRlcixuPXRoaXMudGlja3MsaT10LmdsLGE9dC5fdGlja0JvdW5kcyxvPXQuZGF0YUJveCxzPXQudmlld0JveCxsPXQuZ3JpZExpbmVXaWR0aCxoPXQuZ3JpZExpbmVDb2xvcixwPXQuZ3JpZExpbmVFbmFibGUsZD10LnBpeGVsUmF0aW8sbT0wO208MjsrK20pe3ZhciBnPWFbbV0sdj1hW20rMl0tZyx5PS41KihvW20rMl0rb1ttXSkseD1vW20rMl0tb1ttXTt1W21dPTIqdi94LGNbbV09MiooZy15KS94fXIuYmluZCgpLGUuYmluZCgpLHIuYXR0cmlidXRlcy5kYXRhQ29vcmQucG9pbnRlcigpLHIudW5pZm9ybXMuZGF0YVNoaWZ0PWMsci51bmlmb3Jtcy5kYXRhU2NhbGU9dTt2YXIgYj0wO2ZvcihtPTA7bTwyOysrbSl7ZlswXT1mWzFdPTAsZlttXT0xLHIudW5pZm9ybXMuZGF0YUF4aXM9ZixyLnVuaWZvcm1zLmxpbmVXaWR0aD1sW21dLyhzW20rMl0tc1ttXSkqZCxyLnVuaWZvcm1zLmNvbG9yPWhbbV07dmFyIF89NipuW21dLmxlbmd0aDtwW21dJiZfJiZpLmRyYXdBcnJheXMoaS5UUklBTkdMRVMsYixfKSxiKz1ffX0pLGQuZHJhd1RpY2tNYXJrcz1mdW5jdGlvbigpe3ZhciB0PVswLDBdLGU9WzAsMF0scj1bMSwwXSxuPVswLDFdLGk9WzAsMF0sbz1bMCwwXTtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHM9dGhpcy5wbG90LGM9dGhpcy52Ym8sdT10aGlzLnRpY2tTaGFkZXIsZj10aGlzLnRpY2tzLGg9cy5nbCxwPXMuX3RpY2tCb3VuZHMsZD1zLmRhdGFCb3gsbT1zLnZpZXdCb3gsZz1zLnBpeGVsUmF0aW8sdj1zLnNjcmVlbkJveCx5PXZbMl0tdlswXSx4PXZbM10tdlsxXSxiPW1bMl0tbVswXSxfPW1bM10tbVsxXSx3PTA7dzwyOysrdyl7dmFyIFQ9cFt3XSxrPXBbdysyXS1ULEE9LjUqKGRbdysyXStkW3ddKSxNPWRbdysyXS1kW3ddO2Vbd109MiprL00sdFt3XT0yKihULUEpL019ZVswXSo9Yi95LHRbMF0qPWIveSxlWzFdKj1fL3gsdFsxXSo9Xy94LHUuYmluZCgpLGMuYmluZCgpLHUuYXR0cmlidXRlcy5kYXRhQ29vcmQucG9pbnRlcigpO3ZhciBTPXUudW5pZm9ybXM7Uy5kYXRhU2hpZnQ9dCxTLmRhdGFTY2FsZT1lO3ZhciBFPXMudGlja01hcmtMZW5ndGgsTD1zLnRpY2tNYXJrV2lkdGgsQz1zLnRpY2tNYXJrQ29sb3IsUD02KmZbMF0ubGVuZ3RoLEk9TWF0aC5taW4oYS5nZShmWzBdLChkWzBdLXBbMF0pLyhwWzJdLXBbMF0pLGwpLGZbMF0ubGVuZ3RoKSxPPU1hdGgubWluKGEuZ3QoZlswXSwoZFsyXS1wWzBdKS8ocFsyXS1wWzBdKSxsKSxmWzBdLmxlbmd0aCksej0wKzYqSSxEPTYqTWF0aC5tYXgoMCxPLUkpLFI9TWF0aC5taW4oYS5nZShmWzFdLChkWzFdLXBbMV0pLyhwWzNdLXBbMV0pLGwpLGZbMV0ubGVuZ3RoKSxGPU1hdGgubWluKGEuZ3QoZlsxXSwoZFszXS1wWzFdKS8ocFszXS1wWzFdKSxsKSxmWzFdLmxlbmd0aCksQj1QKzYqUixOPTYqTWF0aC5tYXgoMCxGLVIpO2lbMF09MioobVswXS1FWzFdKS95LTEsaVsxXT0obVszXSttWzFdKS94LTEsb1swXT1FWzFdKmcveSxvWzFdPUxbMV0qZy94LE4mJihTLmNvbG9yPUNbMV0sUy50aWNrU2NhbGU9byxTLmRhdGFBeGlzPW4sUy5zY3JlZW5PZmZzZXQ9aSxoLmRyYXdBcnJheXMoaC5UUklBTkdMRVMsQixOKSksaVswXT0obVsyXSttWzBdKS95LTEsaVsxXT0yKihtWzFdLUVbMF0pL3gtMSxvWzBdPUxbMF0qZy95LG9bMV09RVswXSpnL3gsRCYmKFMuY29sb3I9Q1swXSxTLnRpY2tTY2FsZT1vLFMuZGF0YUF4aXM9cixTLnNjcmVlbk9mZnNldD1pLGguZHJhd0FycmF5cyhoLlRSSUFOR0xFUyx6LEQpKSxpWzBdPTIqKG1bMl0rRVszXSkveS0xLGlbMV09KG1bM10rbVsxXSkveC0xLG9bMF09RVszXSpnL3ksb1sxXT1MWzNdKmcveCxOJiYoUy5jb2xvcj1DWzNdLFMudGlja1NjYWxlPW8sUy5kYXRhQXhpcz1uLFMuc2NyZWVuT2Zmc2V0PWksaC5kcmF3QXJyYXlzKGguVFJJQU5HTEVTLEIsTikpLGlbMF09KG1bMl0rbVswXSkveS0xLGlbMV09MioobVszXStFWzJdKS94LTEsb1swXT1MWzJdKmcveSxvWzFdPUVbMl0qZy94LEQmJihTLmNvbG9yPUNbMl0sUy50aWNrU2NhbGU9byxTLmRhdGFBeGlzPXIsUy5zY3JlZW5PZmZzZXQ9aSxoLmRyYXdBcnJheXMoaC5UUklBTkdMRVMseixEKSl9fSgpLGQudXBkYXRlPShoPVsxLDEsLTEsLTEsMSwtMV0scD1bMSwtMSwxLDEsLTEsLTFdLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LnRpY2tzLHI9dC5ib3VuZHMsbj1uZXcgRmxvYXQzMkFycmF5KDE4KihlWzBdLmxlbmd0aCtlWzFdLmxlbmd0aCkpLGk9KHRoaXMucGxvdC56ZXJvTGluZUVuYWJsZSwwKSxhPVtbXSxbXV0sbz0wO288MjsrK28pZm9yKHZhciBzPWFbb10sbD1lW29dLGM9cltvXSx1PXJbbysyXSxmPTA7ZjxsLmxlbmd0aDsrK2Ype3ZhciBkPShsW2ZdLngtYykvKHUtYyk7cy5wdXNoKGQpO2Zvcih2YXIgbT0wO208NjsrK20pbltpKytdPWQsbltpKytdPWhbbV0sbltpKytdPXBbbV19dGhpcy50aWNrcz1hLHRoaXMudmJvLnVwZGF0ZShuKX0pLGQuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMudmJvLmRpc3Bvc2UoKSx0aGlzLnNoYWRlci5kaXNwb3NlKCksdGhpcy50aWNrU2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzIjozMDcsImJpbmFyeS1zZWFyY2gtYm91bmRzIjoxMDAsImdsLWJ1ZmZlciI6MjU3LCJnbC1zaGFkZXIiOjMyM31dLDMwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbCxyPW4oZSxbLTEsLTEsLTEsMSwxLC0xLDEsMV0pLHM9aShlLGEubGluZVZlcnQsYS5saW5lRnJhZyk7cmV0dXJuIG5ldyBvKHQscixzKX07dmFyIG49dCgiZ2wtYnVmZmVyIiksaT10KCJnbC1zaGFkZXIiKSxhPXQoIi4vc2hhZGVycyIpO2Z1bmN0aW9uIG8odCxlLHIpe3RoaXMucGxvdD10LHRoaXMudmJvPWUsdGhpcy5zaGFkZXI9cn12YXIgcyxsLGM9by5wcm90b3R5cGU7Yy5iaW5kPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zaGFkZXI7dGhpcy52Ym8uYmluZCgpLHRoaXMuc2hhZGVyLmJpbmQoKSx0LmF0dHJpYnV0ZXMuY29vcmQucG9pbnRlcigpLHQudW5pZm9ybXMuc2NyZWVuQm94PXRoaXMucGxvdC5zY3JlZW5Cb3h9LGMuZHJhd0xpbmU9KHM9WzAsMF0sbD1bMCwwXSxmdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89dGhpcy5wbG90LGM9dGhpcy5zaGFkZXIsdT1vLmdsO3NbMF09dCxzWzFdPWUsbFswXT1yLGxbMV09bixjLnVuaWZvcm1zLnN0YXJ0PXMsYy51bmlmb3Jtcy5lbmQ9bCxjLnVuaWZvcm1zLndpZHRoPWkqby5waXhlbFJhdGlvLGMudW5pZm9ybXMuY29sb3I9YSx1LmRyYXdBcnJheXModS5UUklBTkdMRV9TVFJJUCwwLDQpfSksYy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy52Ym8uZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzIjozMDcsImdsLWJ1ZmZlciI6MjU3LCJnbC1zaGFkZXIiOjMyM31dLDMwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbHNsaWZ5IiksaT1uKFsicHJlY2lzaW9uIGxvd3AgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudm9pZCBtYWluKCkge1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KGNvbG9yLnh5eiAqIGNvbG9yLncsIGNvbG9yLncpO1xufVxuIl0pO2UuZXhwb3J0cz17bGluZVZlcnQ6bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgY29vcmQ7XG5cbnVuaWZvcm0gdmVjNCBzY3JlZW5Cb3g7XG51bmlmb3JtIHZlYzIgc3RhcnQsIGVuZDtcbnVuaWZvcm0gZmxvYXQgd2lkdGg7XG5cbnZlYzIgcGVycCh2ZWMyIHYpIHtcbiAgcmV0dXJuIHZlYzIodi55LCAtdi54KTtcbn1cblxudmVjMiBzY3JlZW4odmVjMiB2KSB7XG4gIHJldHVybiAyLjAgKiAodiAtIHNjcmVlbkJveC54eSkgLyAoc2NyZWVuQm94Lnp3IC0gc2NyZWVuQm94Lnh5KSAtIDEuMDtcbn1cblxudm9pZCBtYWluKCkge1xuICB2ZWMyIGRlbHRhID0gbm9ybWFsaXplKHBlcnAoc3RhcnQgLSBlbmQpKTtcbiAgdmVjMiBvZmZzZXQgPSBtaXgoc3RhcnQsIGVuZCwgMC41ICogKGNvb3JkLnkrMS4wKSk7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChzY3JlZW4ob2Zmc2V0ICsgMC41ICogd2lkdGggKiBkZWx0YSAqIGNvb3JkLngpLCAwLCAxKTtcbn1cbiJdKSxsaW5lRnJhZzppLHRleHRWZXJ0Om4oWyIjZGVmaW5lIEdMU0xJRlkgMVxuYXR0cmlidXRlIHZlYzMgdGV4dENvb3JkaW5hdGU7XG5cbnVuaWZvcm0gdmVjMiBkYXRhU2NhbGUsIGRhdGFTaGlmdCwgZGF0YUF4aXMsIHNjcmVlbk9mZnNldCwgdGV4dFNjYWxlO1xudW5pZm9ybSBmbG9hdCBhbmdsZTtcblxudm9pZCBtYWluKCkge1xuICBmbG9hdCBkYXRhT2Zmc2V0ICA9IHRleHRDb29yZGluYXRlLno7XG4gIHZlYzIgZ2x5cGhPZmZzZXQgID0gdGV4dENvb3JkaW5hdGUueHk7XG4gIG1hdDIgZ2x5cGhNYXRyaXggPSBtYXQyKGNvcyhhbmdsZSksIHNpbihhbmdsZSksIC1zaW4oYW5nbGUpLCBjb3MoYW5nbGUpKTtcbiAgdmVjMiBzY3JlZW5Db29yZGluYXRlID0gZGF0YUF4aXMgKiAoZGF0YVNjYWxlICogZGF0YU9mZnNldCArIGRhdGFTaGlmdCkgK1xuICAgIGdseXBoTWF0cml4ICogZ2x5cGhPZmZzZXQgKiB0ZXh0U2NhbGUgKyBzY3JlZW5PZmZzZXQ7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChzY3JlZW5Db29yZGluYXRlLCAwLCAxKTtcbn1cbiJdKSx0ZXh0RnJhZzppLGdyaWRWZXJ0Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIGRhdGFDb29yZDtcblxudW5pZm9ybSB2ZWMyIGRhdGFBeGlzLCBkYXRhU2hpZnQsIGRhdGFTY2FsZTtcbnVuaWZvcm0gZmxvYXQgbGluZVdpZHRoO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzIgcG9zID0gZGF0YUF4aXMgKiAoZGF0YVNjYWxlICogZGF0YUNvb3JkLnggKyBkYXRhU2hpZnQpO1xuICBwb3MgKz0gMTAuMCAqIGRhdGFDb29yZC55ICogdmVjMihkYXRhQXhpcy55LCAtZGF0YUF4aXMueCkgKyBkYXRhQ29vcmQueiAqIGxpbmVXaWR0aDtcbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvcywgMCwgMSk7XG59XG4iXSksZ3JpZEZyYWc6aSxib3hWZXJ0Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMyIGNvb3JkO1xuXG51bmlmb3JtIHZlYzQgc2NyZWVuQm94O1xudW5pZm9ybSB2ZWMyIGxvLCBoaTtcblxudmVjMiBzY3JlZW4odmVjMiB2KSB7XG4gIHJldHVybiAyLjAgKiAodiAtIHNjcmVlbkJveC54eSkgLyAoc2NyZWVuQm94Lnp3IC0gc2NyZWVuQm94Lnh5KSAtIDEuMDtcbn1cblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQoc2NyZWVuKG1peChsbywgaGksIGNvb3JkKSksIDAsIDEpO1xufVxuIl0pLHRpY2tWZXJ0Om4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIGRhdGFDb29yZDtcblxudW5pZm9ybSB2ZWMyIGRhdGFBeGlzLCBkYXRhU2hpZnQsIGRhdGFTY2FsZSwgc2NyZWVuT2Zmc2V0LCB0aWNrU2NhbGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMiBwb3MgPSBkYXRhQXhpcyAqIChkYXRhU2NhbGUgKiBkYXRhQ29vcmQueCArIGRhdGFTaGlmdCk7XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwb3MgKyB0aWNrU2NhbGUqZGF0YUNvb3JkLnl6ICsgc2NyZWVuT2Zmc2V0LCAwLCAxKTtcbn1cbiJdKX19LHtnbHNsaWZ5OjQyNH1dLDMwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbCxyPW4oZSksYT1pKGUscy50ZXh0VmVydCxzLnRleHRGcmFnKTtyZXR1cm4gbmV3IGwodCxyLGEpfTt2YXIgbj10KCJnbC1idWZmZXIiKSxpPXQoImdsLXNoYWRlciIpLGE9dCgidGV4dC1jYWNoZSIpLG89dCgiYmluYXJ5LXNlYXJjaC1ib3VuZHMiKSxzPXQoIi4vc2hhZGVycyIpO2Z1bmN0aW9uIGwodCxlLHIpe3RoaXMucGxvdD10LHRoaXMudmJvPWUsdGhpcy5zaGFkZXI9cix0aGlzLnRpY2tPZmZzZXQ9W1tdLFtdXSx0aGlzLnRpY2tYPVtbXSxbXV0sdGhpcy5sYWJlbE9mZnNldD1bMCwwXSx0aGlzLmxhYmVsQ291bnQ9WzAsMF19dmFyIGMsdSxmLGgscCxkLG09bC5wcm90b3R5cGU7bS5kcmF3VGlja3M9KGM9WzAsMF0sdT1bMCwwXSxmPVswLDBdLGZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucGxvdCxyPXRoaXMuc2hhZGVyLG49dGhpcy50aWNrWFt0XSxpPXRoaXMudGlja09mZnNldFt0XSxhPWUuZ2wscz1lLnZpZXdCb3gsbD1lLmRhdGFCb3gsaD1lLnNjcmVlbkJveCxwPWUucGl4ZWxSYXRpbyxkPWUudGlja0VuYWJsZSxtPWUudGlja1BhZCxnPWUudGlja0NvbG9yLHY9ZS50aWNrQW5nbGUseT1lLmxhYmVsRW5hYmxlLHg9ZS5sYWJlbFBhZCxiPWUubGFiZWxDb2xvcixfPWUubGFiZWxBbmdsZSx3PXRoaXMubGFiZWxPZmZzZXRbdF0sVD10aGlzLmxhYmVsQ291bnRbdF0saz1vLmx0KG4sbFt0XSksQT1vLmxlKG4sbFt0KzJdKTtjWzBdPWNbMV09MCxjW3RdPTEsdVt0XT0oc1syK3RdK3NbdF0pLyhoWzIrdF0taFt0XSktMTt2YXIgTT0yL2hbMisoMV50KV0taFsxXnRdO3VbMV50XT1NKnNbMV50XS0xLGRbdF0mJih1WzFedF0tPU0qcCptW3RdLGs8QSYmaVtBXT5pW2tdJiYoci51bmlmb3Jtcy5kYXRhQXhpcz1jLHIudW5pZm9ybXMuc2NyZWVuT2Zmc2V0PXUsci51bmlmb3Jtcy5jb2xvcj1nW3RdLHIudW5pZm9ybXMuYW5nbGU9dlt0XSxhLmRyYXdBcnJheXMoYS5UUklBTkdMRVMsaVtrXSxpW0FdLWlba10pKSkseVt0XSYmVCYmKHVbMV50XS09TSpwKnhbdF0sci51bmlmb3Jtcy5kYXRhQXhpcz1mLHIudW5pZm9ybXMuc2NyZWVuT2Zmc2V0PXUsci51bmlmb3Jtcy5jb2xvcj1iW3RdLHIudW5pZm9ybXMuYW5nbGU9X1t0XSxhLmRyYXdBcnJheXMoYS5UUklBTkdMRVMsdyxUKSksdVsxXnRdPU0qc1syKygxXnQpXS0xLGRbdCsyXSYmKHVbMV50XSs9TSpwKm1bdCsyXSxrPEEmJmlbQV0+aVtrXSYmKHIudW5pZm9ybXMuZGF0YUF4aXM9YyxyLnVuaWZvcm1zLnNjcmVlbk9mZnNldD11LHIudW5pZm9ybXMuY29sb3I9Z1t0KzJdLHIudW5pZm9ybXMuYW5nbGU9dlt0KzJdLGEuZHJhd0FycmF5cyhhLlRSSUFOR0xFUyxpW2tdLGlbQV0taVtrXSkpKSx5W3QrMl0mJlQmJih1WzFedF0rPU0qcCp4W3QrMl0sci51bmlmb3Jtcy5kYXRhQXhpcz1mLHIudW5pZm9ybXMuc2NyZWVuT2Zmc2V0PXUsci51bmlmb3Jtcy5jb2xvcj1iW3QrMl0sci51bmlmb3Jtcy5hbmdsZT1fW3QrMl0sYS5kcmF3QXJyYXlzKGEuVFJJQU5HTEVTLHcsVCkpfSksbS5kcmF3VGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD1bMCwwXSxlPVswLDBdO3JldHVybiBmdW5jdGlvbigpe3ZhciByPXRoaXMucGxvdCxuPXRoaXMuc2hhZGVyLGk9ci5nbCxhPXIuc2NyZWVuQm94LG89ci50aXRsZUNlbnRlcixzPXIudGl0bGVBbmdsZSxsPXIudGl0bGVDb2xvcixjPXIucGl4ZWxSYXRpbztpZih0aGlzLnRpdGxlQ291bnQpe2Zvcih2YXIgdT0wO3U8MjsrK3UpZVt1XT0yKihvW3VdKmMtYVt1XSkvKGFbMit1XS1hW3VdKS0xO24uYmluZCgpLG4udW5pZm9ybXMuZGF0YUF4aXM9dCxuLnVuaWZvcm1zLnNjcmVlbk9mZnNldD1lLG4udW5pZm9ybXMuYW5nbGU9cyxuLnVuaWZvcm1zLmNvbG9yPWwsaS5kcmF3QXJyYXlzKGkuVFJJQU5HTEVTLHRoaXMudGl0bGVPZmZzZXQsdGhpcy50aXRsZUNvdW50KX19fSgpLG0uYmluZD0oaD1bMCwwXSxwPVswLDBdLGQ9WzAsMF0sZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBsb3QsZT10aGlzLnNoYWRlcixyPXQuX3RpY2tCb3VuZHMsbj10LmRhdGFCb3gsaT10LnNjcmVlbkJveCxhPXQudmlld0JveDtlLmJpbmQoKTtmb3IodmFyIG89MDtvPDI7KytvKXt2YXIgcz1yW29dLGw9cltvKzJdLXMsYz0uNSoobltvKzJdK25bb10pLHU9bltvKzJdLW5bb10sZj1hW29dLG09YVtvKzJdLWYsZz1pW29dLHY9aVtvKzJdLWc7cFtvXT0yKmwvdSptL3YsaFtvXT0yKihzLWMpL3UqbS92fWRbMV09Mip0LnBpeGVsUmF0aW8vKGlbM10taVsxXSksZFswXT1kWzFdKihpWzNdLWlbMV0pLyhpWzJdLWlbMF0pLGUudW5pZm9ybXMuZGF0YVNjYWxlPXAsZS51bmlmb3Jtcy5kYXRhU2hpZnQ9aCxlLnVuaWZvcm1zLnRleHRTY2FsZT1kLHRoaXMudmJvLmJpbmQoKSxlLmF0dHJpYnV0ZXMudGV4dENvb3JkaW5hdGUucG9pbnRlcigpfSksbS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksbyxzPVtdLGw9dC50aWNrcyxjPXQuYm91bmRzO2ZvcihvPTA7bzwyOysrbyl7dmFyIHU9W01hdGguZmxvb3Iocy5sZW5ndGgvMyldLGY9Wy0xLzBdLGg9bFtvXTtmb3IoZT0wO2U8aC5sZW5ndGg7KytlKXt2YXIgcD1oW2VdLGQ9cC54LG09cC50ZXh0LGc9cC5mb250fHwic2Fucy1zZXJpZiI7aT1wLmZvbnRTaXplfHwxMjtmb3IodmFyIHY9MS8oY1tvKzJdLWNbb10pLHk9Y1tvXSx4PW0uc3BsaXQoIlxuIiksYj0wO2I8eC5sZW5ndGg7YisrKWZvcihuPWEoZyx4W2JdKS5kYXRhLHI9MDtyPG4ubGVuZ3RoO3IrPTIpcy5wdXNoKG5bcl0qaSwtbltyKzFdKmktYippKjEuMiwoZC15KSp2KTt1LnB1c2goTWF0aC5mbG9vcihzLmxlbmd0aC8zKSksZi5wdXNoKGQpfXRoaXMudGlja09mZnNldFtvXT11LHRoaXMudGlja1hbb109Zn1mb3Iobz0wO288MjsrK28pe2Zvcih0aGlzLmxhYmVsT2Zmc2V0W29dPU1hdGguZmxvb3Iocy5sZW5ndGgvMyksbj1hKHQubGFiZWxGb250W29dLHQubGFiZWxzW29dLHt0ZXh0QWxpZ246ImNlbnRlciJ9KS5kYXRhLGk9dC5sYWJlbFNpemVbb10sZT0wO2U8bi5sZW5ndGg7ZSs9MilzLnB1c2gobltlXSppLC1uW2UrMV0qaSwwKTt0aGlzLmxhYmVsQ291bnRbb109TWF0aC5mbG9vcihzLmxlbmd0aC8zKS10aGlzLmxhYmVsT2Zmc2V0W29dfWZvcih0aGlzLnRpdGxlT2Zmc2V0PU1hdGguZmxvb3Iocy5sZW5ndGgvMyksbj1hKHQudGl0bGVGb250LHQudGl0bGUpLmRhdGEsaT10LnRpdGxlU2l6ZSxlPTA7ZTxuLmxlbmd0aDtlKz0yKXMucHVzaChuW2VdKmksLW5bZSsxXSppLDApO3RoaXMudGl0bGVDb3VudD1NYXRoLmZsb29yKHMubGVuZ3RoLzMpLXRoaXMudGl0bGVPZmZzZXQsdGhpcy52Ym8udXBkYXRlKHMpfSxtLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnZiby5kaXNwb3NlKCksdGhpcy5zaGFkZXIuZGlzcG9zZSgpfX0seyIuL3NoYWRlcnMiOjMwNywiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjEwMCwiZ2wtYnVmZmVyIjoyNTcsImdsLXNoYWRlciI6MzIzLCJ0ZXh0LWNhY2hlIjo1NzB9XSwzMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj1uKGUsW2UuZHJhd2luZ0J1ZmZlcldpZHRoLGUuZHJhd2luZ0J1ZmZlckhlaWdodF0pLGM9bmV3IGwoZSxyKTtyZXR1cm4gYy5ncmlkPWkoYyksYy50ZXh0PWEoYyksYy5saW5lPW8oYyksYy5ib3g9cyhjKSxjLnVwZGF0ZSh0KSxjfTt2YXIgbj10KCJnbC1zZWxlY3Qtc3RhdGljIiksaT10KCIuL2xpYi9ncmlkIiksYT10KCIuL2xpYi90ZXh0Iiksbz10KCIuL2xpYi9saW5lIikscz10KCIuL2xpYi9ib3giKTtmdW5jdGlvbiBsKHQsZSl7dGhpcy5nbD10LHRoaXMucGlja0J1ZmZlcj1lLHRoaXMuc2NyZWVuQm94PVswLDAsdC5kcmF3aW5nQnVmZmVyV2lkdGgsdC5kcmF3aW5nQnVmZmVySGVpZ2h0XSx0aGlzLnZpZXdCb3g9WzAsMCwwLDBdLHRoaXMuZGF0YUJveD1bLTEwLC0xMCwxMCwxMF0sdGhpcy5ncmlkTGluZUVuYWJsZT1bITAsITBdLHRoaXMuZ3JpZExpbmVXaWR0aD1bMSwxXSx0aGlzLmdyaWRMaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMudGlja01hcmtMZW5ndGg9WzAsMCwwLDBdLHRoaXMudGlja01hcmtXaWR0aD1bMCwwLDAsMF0sdGhpcy50aWNrTWFya0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGlja1BhZD1bMTUsMTUsMTUsMTVdLHRoaXMudGlja0FuZ2xlPVswLDAsMCwwXSx0aGlzLnRpY2tFbmFibGU9WyEwLCEwLCEwLCEwXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVsUGFkPVsxNSwxNSwxNSwxNV0sdGhpcy5sYWJlbEFuZ2xlPVswLE1hdGguUEkvMiwwLDMqTWF0aC5QSS8yXSx0aGlzLmxhYmVsRW5hYmxlPVshMCwhMCwhMCwhMF0sdGhpcy5sYWJlbENvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMudGl0bGVDZW50ZXI9WzAsMF0sdGhpcy50aXRsZUVuYWJsZT0hMCx0aGlzLnRpdGxlQW5nbGU9MCx0aGlzLnRpdGxlQ29sb3I9WzAsMCwwLDFdLHRoaXMuYm9yZGVyQ29sb3I9WzAsMCwwLDBdLHRoaXMuYmFja2dyb3VuZENvbG9yPVswLDAsMCwwXSx0aGlzLnplcm9MaW5lRW5hYmxlPVshMCwhMF0sdGhpcy56ZXJvTGluZVdpZHRoPVs0LDRdLHRoaXMuemVyb0xpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5ib3JkZXJMaW5lRW5hYmxlPVshMCwhMCwhMCwhMF0sdGhpcy5ib3JkZXJMaW5lV2lkdGg9WzIsMiwyLDJdLHRoaXMuYm9yZGVyTGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZ3JpZD1udWxsLHRoaXMudGV4dD1udWxsLHRoaXMubGluZT1udWxsLHRoaXMuYm94PW51bGwsdGhpcy5vYmplY3RzPVtdLHRoaXMub3ZlcmxheXM9W10sdGhpcy5fdGlja0JvdW5kcz1bMS8wLDEvMCwtMS8wLC0xLzBdLHRoaXMuc3RhdGljPSExLHRoaXMuZGlydHk9ITEsdGhpcy5waWNrRGlydHk9ITEsdGhpcy5waWNrRGVsYXk9MTIwLHRoaXMucGlja1JhZGl1cz0xMCx0aGlzLl9waWNrVGltZW91dD1udWxsLHRoaXMuX2RyYXdQaWNrPXRoaXMuZHJhd1BpY2suYmluZCh0aGlzKSx0aGlzLl9kZXB0aENvdW50ZXI9MH12YXIgYz1sLnByb3RvdHlwZTtmdW5jdGlvbiB1KHQpe2Zvcih2YXIgZT10LnNsaWNlKCkscj0wO3I8ZS5sZW5ndGg7KytyKWVbcl09ZVtyXS5zbGljZSgpO3JldHVybiBlfWZ1bmN0aW9uIGYodCxlKXtyZXR1cm4gdC54LWUueH1jLnNldERpcnR5PWZ1bmN0aW9uKCl7dGhpcy5kaXJ0eT10aGlzLnBpY2tEaXJ0eT0hMH0sYy5zZXRPdmVybGF5RGlydHk9ZnVuY3Rpb24oKXt0aGlzLmRpcnR5PSEwfSxjLm5leHREZXB0aFZhbHVlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlcHRoQ291bnRlcisrLzY1NTM2fSxjLmRyYXc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsLGU9dGhpcy5zY3JlZW5Cb3gscj10aGlzLnZpZXdCb3gsbj10aGlzLmRhdGFCb3gsaT10aGlzLnBpeGVsUmF0aW8sYT10aGlzLmdyaWQsbz10aGlzLmxpbmUscz10aGlzLnRleHQsbD10aGlzLm9iamVjdHM7aWYodGhpcy5fZGVwdGhDb3VudGVyPTAsdGhpcy5waWNrRGlydHkmJih0aGlzLl9waWNrVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3BpY2tUaW1lb3V0KSx0aGlzLnBpY2tEaXJ0eT0hMSx0aGlzLl9waWNrVGltZW91dD1zZXRUaW1lb3V0KHRoaXMuX2RyYXdQaWNrLHRoaXMucGlja0RlbGF5KSksdGhpcy5kaXJ0eSl7aWYodGhpcy5kaXJ0eT0hMSx0LmJpbmRGcmFtZWJ1ZmZlcih0LkZSQU1FQlVGRkVSLG51bGwpLHQuZW5hYmxlKHQuU0NJU1NPUl9URVNUKSx0LmRpc2FibGUodC5ERVBUSF9URVNUKSx0LmRlcHRoRnVuYyh0LkxFU1MpLHQuZGVwdGhNYXNrKCExKSx0LmVuYWJsZSh0LkJMRU5EKSx0LmJsZW5kRXF1YXRpb24odC5GVU5DX0FERCx0LkZVTkNfQUREKSx0LmJsZW5kRnVuYyh0Lk9ORSx0Lk9ORV9NSU5VU19TUkNfQUxQSEEpLHRoaXMuYm9yZGVyQ29sb3Ipe3Quc2Npc3NvcihlWzBdLGVbMV0sZVsyXS1lWzBdLGVbM10tZVsxXSk7dmFyIGM9dGhpcy5ib3JkZXJDb2xvcjt0LmNsZWFyQ29sb3IoY1swXSpjWzNdLGNbMV0qY1szXSxjWzJdKmNbM10sY1szXSksdC5jbGVhcih0LkNPTE9SX0JVRkZFUl9CSVR8dC5ERVBUSF9CVUZGRVJfQklUKX10LnNjaXNzb3IoclswXSxyWzFdLHJbMl0tclswXSxyWzNdLXJbMV0pLHQudmlld3BvcnQoclswXSxyWzFdLHJbMl0tclswXSxyWzNdLXJbMV0pO3ZhciB1PXRoaXMuYmFja2dyb3VuZENvbG9yO3QuY2xlYXJDb2xvcih1WzBdKnVbM10sdVsxXSp1WzNdLHVbMl0qdVszXSx1WzNdKSx0LmNsZWFyKHQuQ09MT1JfQlVGRkVSX0JJVCksYS5kcmF3KCk7dmFyIGY9dGhpcy56ZXJvTGluZUVuYWJsZSxoPXRoaXMuemVyb0xpbmVDb2xvcixwPXRoaXMuemVyb0xpbmVXaWR0aDtpZihmWzBdfHxmWzFdKXtvLmJpbmQoKTtmb3IodmFyIGQ9MDtkPDI7KytkKWlmKGZbZF0mJm5bZF08PTAmJm5bZCsyXT49MCl7dmFyIG09ZVtkXS1uW2RdKihlW2QrMl0tZVtkXSkvKG5bZCsyXS1uW2RdKTswPT09ZD9vLmRyYXdMaW5lKG0sZVsxXSxtLGVbM10scFtkXSxoW2RdKTpvLmRyYXdMaW5lKGVbMF0sbSxlWzJdLG0scFtkXSxoW2RdKX19Zm9yKGQ9MDtkPGwubGVuZ3RoOysrZClsW2RdLmRyYXcoKTt0LnZpZXdwb3J0KGVbMF0sZVsxXSxlWzJdLWVbMF0sZVszXS1lWzFdKSx0LnNjaXNzb3IoZVswXSxlWzFdLGVbMl0tZVswXSxlWzNdLWVbMV0pLHRoaXMuZ3JpZC5kcmF3VGlja01hcmtzKCksby5iaW5kKCk7dmFyIGc9dGhpcy5ib3JkZXJMaW5lRW5hYmxlLHY9dGhpcy5ib3JkZXJMaW5lV2lkdGgseT10aGlzLmJvcmRlckxpbmVDb2xvcjtmb3IoZ1sxXSYmby5kcmF3TGluZShyWzBdLHJbMV0tLjUqdlsxXSppLHJbMF0sclszXSsuNSp2WzNdKmksdlsxXSx5WzFdKSxnWzBdJiZvLmRyYXdMaW5lKHJbMF0tLjUqdlswXSppLHJbMV0sclsyXSsuNSp2WzJdKmksclsxXSx2WzBdLHlbMF0pLGdbM10mJm8uZHJhd0xpbmUoclsyXSxyWzFdLS41KnZbMV0qaSxyWzJdLHJbM10rLjUqdlszXSppLHZbM10seVszXSksZ1syXSYmby5kcmF3TGluZShyWzBdLS41KnZbMF0qaSxyWzNdLHJbMl0rLjUqdlsyXSppLHJbM10sdlsyXSx5WzJdKSxzLmJpbmQoKSxkPTA7ZDwyOysrZClzLmRyYXdUaWNrcyhkKTt0aGlzLnRpdGxlRW5hYmxlJiZzLmRyYXdUaXRsZSgpO3ZhciB4PXRoaXMub3ZlcmxheXM7Zm9yKGQ9MDtkPHgubGVuZ3RoOysrZCl4W2RdLmRyYXcoKTt0LmRpc2FibGUodC5TQ0lTU09SX1RFU1QpLHQuZGlzYWJsZSh0LkJMRU5EKSx0LmRlcHRoTWFzayghMCl9fSxjLmRyYXdQaWNrPWZ1bmN0aW9uKCl7aWYoIXRoaXMuc3RhdGljKXt2YXIgdD10aGlzLnBpY2tCdWZmZXI7dGhpcy5nbCx0aGlzLl9waWNrVGltZW91dD1udWxsLHQuYmVnaW4oKTtmb3IodmFyIGU9MSxyPXRoaXMub2JqZWN0cyxuPTA7bjxyLmxlbmd0aDsrK24pZT1yW25dLmRyYXdQaWNrKGUpO3QuZW5kKCl9fSxjLnBpY2s9ZnVuY3Rpb24odCxlKXtpZighdGhpcy5zdGF0aWMpe3ZhciByPXRoaXMucGl4ZWxSYXRpbyxuPXRoaXMucGlja1BpeGVsUmF0aW8saT10aGlzLnZpZXdCb3gsYT0wfE1hdGgucm91bmQoKHQtaVswXS9yKSpuKSxvPTB8TWF0aC5yb3VuZCgoZS1pWzFdL3IpKm4pLHM9dGhpcy5waWNrQnVmZmVyLnF1ZXJ5KGEsbyx0aGlzLnBpY2tSYWRpdXMpO2lmKCFzKXJldHVybiBudWxsO2Zvcih2YXIgbD1zLmlkKyhzLnZhbHVlWzBdPDw4KSsocy52YWx1ZVsxXTw8MTYpKyhzLnZhbHVlWzJdPDwyNCksYz10aGlzLm9iamVjdHMsdT0wO3U8Yy5sZW5ndGg7Kyt1KXt2YXIgZj1jW3VdLnBpY2soYSxvLGwpO2lmKGYpcmV0dXJuIGZ9cmV0dXJuIG51bGx9fSxjLnNldFNjcmVlbkJveD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjcmVlbkJveCxyPXRoaXMucGl4ZWxSYXRpbztlWzBdPTB8TWF0aC5yb3VuZCh0WzBdKnIpLGVbMV09MHxNYXRoLnJvdW5kKHRbMV0qciksZVsyXT0wfE1hdGgucm91bmQodFsyXSpyKSxlWzNdPTB8TWF0aC5yb3VuZCh0WzNdKnIpLHRoaXMuc2V0RGlydHkoKX0sYy5zZXREYXRhQm94PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGF0YUJveDsoZVswXSE9PXRbMF18fGVbMV0hPT10WzFdfHxlWzJdIT09dFsyXXx8ZVszXSE9PXRbM10pJiYoZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLHRoaXMuc2V0RGlydHkoKSl9LGMuc2V0Vmlld0JveD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnBpeGVsUmF0aW8scj10aGlzLnZpZXdCb3g7clswXT0wfE1hdGgucm91bmQodFswXSplKSxyWzFdPTB8TWF0aC5yb3VuZCh0WzFdKmUpLHJbMl09MHxNYXRoLnJvdW5kKHRbMl0qZSksclszXT0wfE1hdGgucm91bmQodFszXSplKTt2YXIgbj10aGlzLnBpY2tQaXhlbFJhdGlvO3RoaXMucGlja0J1ZmZlci5zaGFwZT1bMHxNYXRoLnJvdW5kKCh0WzJdLXRbMF0pKm4pLDB8TWF0aC5yb3VuZCgodFszXS10WzFdKSpuKV0sdGhpcy5zZXREaXJ0eSgpfSxjLnVwZGF0ZT1mdW5jdGlvbih0KXt0PXR8fHt9O3ZhciBlPXRoaXMuZ2w7dGhpcy5waXhlbFJhdGlvPXQucGl4ZWxSYXRpb3x8MTt2YXIgcj10aGlzLnBpeGVsUmF0aW87dGhpcy5waWNrUGl4ZWxSYXRpbz1NYXRoLm1heChyLDEpLHRoaXMuc2V0U2NyZWVuQm94KHQuc2NyZWVuQm94fHxbMCwwLGUuZHJhd2luZ0J1ZmZlcldpZHRoL3IsZS5kcmF3aW5nQnVmZmVySGVpZ2h0L3JdKTt0aGlzLnNjcmVlbkJveDt0aGlzLnNldFZpZXdCb3godC52aWV3Qm94fHxbLjEyNSoodGhpcy5zY3JlZW5Cb3hbMl0tdGhpcy5zY3JlZW5Cb3hbMF0pL3IsLjEyNSoodGhpcy5zY3JlZW5Cb3hbM10tdGhpcy5zY3JlZW5Cb3hbMV0pL3IsLjg3NSoodGhpcy5zY3JlZW5Cb3hbMl0tdGhpcy5zY3JlZW5Cb3hbMF0pL3IsLjg3NSoodGhpcy5zY3JlZW5Cb3hbM10tdGhpcy5zY3JlZW5Cb3hbMV0pL3JdKTt2YXIgbj10aGlzLnZpZXdCb3gsaT0oblsyXS1uWzBdKS8oblszXS1uWzFdKTt0aGlzLnNldERhdGFCb3godC5kYXRhQm94fHxbLTEwLC0xMC9pLDEwLDEwL2ldKSx0aGlzLmJvcmRlckNvbG9yPSExIT09dC5ib3JkZXJDb2xvciYmKHQuYm9yZGVyQ29sb3J8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLmJhY2tncm91bmRDb2xvcj0odC5iYWNrZ3JvdW5kQ29sb3J8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLmdyaWRMaW5lRW5hYmxlPSh0LmdyaWRMaW5lRW5hYmxlfHxbITAsITBdKS5zbGljZSgpLHRoaXMuZ3JpZExpbmVXaWR0aD0odC5ncmlkTGluZVdpZHRofHxbMSwxXSkuc2xpY2UoKSx0aGlzLmdyaWRMaW5lQ29sb3I9dSh0LmdyaWRMaW5lQ29sb3J8fFtbLjUsLjUsLjUsMV0sWy41LC41LC41LDFdXSksdGhpcy56ZXJvTGluZUVuYWJsZT0odC56ZXJvTGluZUVuYWJsZXx8WyEwLCEwXSkuc2xpY2UoKSx0aGlzLnplcm9MaW5lV2lkdGg9KHQuemVyb0xpbmVXaWR0aHx8WzQsNF0pLnNsaWNlKCksdGhpcy56ZXJvTGluZUNvbG9yPXUodC56ZXJvTGluZUNvbG9yfHxbWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMudGlja01hcmtMZW5ndGg9KHQudGlja01hcmtMZW5ndGh8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLnRpY2tNYXJrV2lkdGg9KHQudGlja01hcmtXaWR0aHx8WzAsMCwwLDBdKS5zbGljZSgpLHRoaXMudGlja01hcmtDb2xvcj11KHQudGlja01hcmtDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pLHRoaXMudGl0bGVDZW50ZXI9KHQudGl0bGVDZW50ZXJ8fFsuNSooblswXStuWzJdKS9yLChuWzNdKzEyMCkvcl0pLnNsaWNlKCksdGhpcy50aXRsZUVuYWJsZT0hKCJ0aXRsZUVuYWJsZSJpbiB0KXx8ISF0LnRpdGxlRW5hYmxlLHRoaXMudGl0bGVBbmdsZT10LnRpdGxlQW5nbGV8fDAsdGhpcy50aXRsZUNvbG9yPSh0LnRpdGxlQ29sb3J8fFswLDAsMCwxXSkuc2xpY2UoKSx0aGlzLmxhYmVsUGFkPSh0LmxhYmVsUGFkfHxbMTUsMTUsMTUsMTVdKS5zbGljZSgpLHRoaXMubGFiZWxBbmdsZT0odC5sYWJlbEFuZ2xlfHxbMCxNYXRoLlBJLzIsMCwzKk1hdGguUEkvMl0pLnNsaWNlKCksdGhpcy5sYWJlbEVuYWJsZT0odC5sYWJlbEVuYWJsZXx8WyEwLCEwLCEwLCEwXSkuc2xpY2UoKSx0aGlzLmxhYmVsQ29sb3I9dSh0LmxhYmVsQ29sb3J8fFtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dKSx0aGlzLnRpY2tQYWQ9KHQudGlja1BhZHx8WzE1LDE1LDE1LDE1XSkuc2xpY2UoKSx0aGlzLnRpY2tBbmdsZT0odC50aWNrQW5nbGV8fFswLDAsMCwwXSkuc2xpY2UoKSx0aGlzLnRpY2tFbmFibGU9KHQudGlja0VuYWJsZXx8WyEwLCEwLCEwLCEwXSkuc2xpY2UoKSx0aGlzLnRpY2tDb2xvcj11KHQudGlja0NvbG9yfHxbWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSksdGhpcy5ib3JkZXJMaW5lRW5hYmxlPSh0LmJvcmRlckxpbmVFbmFibGV8fFshMCwhMCwhMCwhMF0pLnNsaWNlKCksdGhpcy5ib3JkZXJMaW5lV2lkdGg9KHQuYm9yZGVyTGluZVdpZHRofHxbMiwyLDIsMl0pLnNsaWNlKCksdGhpcy5ib3JkZXJMaW5lQ29sb3I9dSh0LmJvcmRlckxpbmVDb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pO3ZhciBhPXQudGlja3N8fFtbXSxbXV0sbz10aGlzLl90aWNrQm91bmRzO29bMF09b1sxXT0xLzAsb1syXT1vWzNdPS0xLzA7Zm9yKHZhciBzPTA7czwyOysrcyl7dmFyIGw9YVtzXS5zbGljZSgwKTswIT09bC5sZW5ndGgmJihsLnNvcnQoZiksb1tzXT1NYXRoLm1pbihvW3NdLGxbMF0ueCksb1tzKzJdPU1hdGgubWF4KG9bcysyXSxsW2wubGVuZ3RoLTFdLngpKX10aGlzLmdyaWQudXBkYXRlKHtib3VuZHM6byx0aWNrczphfSksdGhpcy50ZXh0LnVwZGF0ZSh7Ym91bmRzOm8sdGlja3M6YSxsYWJlbHM6dC5sYWJlbHN8fFsieCIsInkiXSxsYWJlbFNpemU6dC5sYWJlbFNpemV8fFsxMiwxMl0sbGFiZWxGb250OnQubGFiZWxGb250fHxbInNhbnMtc2VyaWYiLCJzYW5zLXNlcmlmIl0sdGl0bGU6dC50aXRsZXx8IiIsdGl0bGVTaXplOnQudGl0bGVTaXplfHwxOCx0aXRsZUZvbnQ6dC50aXRsZUZvbnR8fCJzYW5zLXNlcmlmIn0pLHRoaXMuc3RhdGljPSEhdC5zdGF0aWMsdGhpcy5zZXREaXJ0eSgpfSxjLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLmJveC5kaXNwb3NlKCksdGhpcy5ncmlkLmRpc3Bvc2UoKSx0aGlzLnRleHQuZGlzcG9zZSgpLHRoaXMubGluZS5kaXNwb3NlKCk7Zm9yKHZhciB0PXRoaXMub2JqZWN0cy5sZW5ndGgtMTt0Pj0wOy0tdCl0aGlzLm9iamVjdHNbdF0uZGlzcG9zZSgpO3RoaXMub2JqZWN0cy5sZW5ndGg9MDtmb3IodD10aGlzLm92ZXJsYXlzLmxlbmd0aC0xO3Q+PTA7LS10KXRoaXMub3ZlcmxheXNbdF0uZGlzcG9zZSgpO3RoaXMub3ZlcmxheXMubGVuZ3RoPTAsdGhpcy5nbD1udWxsfSxjLmFkZE9iamVjdD1mdW5jdGlvbih0KXt0aGlzLm9iamVjdHMuaW5kZXhPZih0KTwwJiYodGhpcy5vYmplY3RzLnB1c2godCksdGhpcy5zZXREaXJ0eSgpKX0sYy5yZW1vdmVPYmplY3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMub2JqZWN0cyxyPTA7cjxlLmxlbmd0aDsrK3IpaWYoZVtyXT09PXQpe2Uuc3BsaWNlKHIsMSksdGhpcy5zZXREaXJ0eSgpO2JyZWFrfX0sYy5hZGRPdmVybGF5PWZ1bmN0aW9uKHQpe3RoaXMub3ZlcmxheXMuaW5kZXhPZih0KTwwJiYodGhpcy5vdmVybGF5cy5wdXNoKHQpLHRoaXMuc2V0T3ZlcmxheURpcnR5KCkpfSxjLnJlbW92ZU92ZXJsYXk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMub3ZlcmxheXMscj0wO3I8ZS5sZW5ndGg7KytyKWlmKGVbcl09PT10KXtlLnNwbGljZShyLDEpLHRoaXMuc2V0T3ZlcmxheURpcnR5KCk7YnJlYWt9fX0seyIuL2xpYi9ib3giOjMwNCwiLi9saWIvZ3JpZCI6MzA1LCIuL2xpYi9saW5lIjozMDYsIi4vbGliL3RleHQiOjMwOCwiZ2wtc2VsZWN0LXN0YXRpYyI6MzIyfV0sMzEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3Q9dHx8ZG9jdW1lbnQuYm9keSxlPWV8fHt9O3ZhciByPVsuMDEsMS8wXTsiZGlzdGFuY2VMaW1pdHMiaW4gZSYmKHJbMF09ZS5kaXN0YW5jZUxpbWl0c1swXSxyWzFdPWUuZGlzdGFuY2VMaW1pdHNbMV0pOyJ6b29tTWluImluIGUmJihyWzBdPWUuem9vbU1pbik7Inpvb21NYXgiaW4gZSYmKHJbMV09ZS56b29tTWF4KTt2YXIgYz1pKHtjZW50ZXI6ZS5jZW50ZXJ8fFswLDAsMF0sdXA6ZS51cHx8WzAsMSwwXSxleWU6ZS5leWV8fFswLDAsMTBdLG1vZGU6ZS5tb2RlfHwib3JiaXQiLGRpc3RhbmNlTGltaXRzOnJ9KSx1PVswLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwXSxmPTAsaD10LmNsaWVudFdpZHRoLHA9dC5jbGllbnRIZWlnaHQsZD17a2V5QmluZGluZ01vZGU6InJvdGF0ZSIsZW5hYmxlV2hlZWw6ITAsdmlldzpjLGVsZW1lbnQ6dCxkZWxheTplLmRlbGF5fHwxNixyb3RhdGVTcGVlZDplLnJvdGF0ZVNwZWVkfHwxLHpvb21TcGVlZDplLnpvb21TcGVlZHx8MSx0cmFuc2xhdGVTcGVlZDplLnRyYW5zbGF0ZVNwZWVkfHwxLGZsaXBYOiEhZS5mbGlwWCxmbGlwWTohIWUuZmxpcFksbW9kZXM6Yy5tb2Rlcyxfb3J0aG86ZS5fb3J0aG98fGUucHJvamVjdGlvbiYmIm9ydGhvZ3JhcGhpYyI9PT1lLnByb2plY3Rpb24udHlwZXx8ITEsdGljazpmdW5jdGlvbigpe3ZhciBlPW4oKSxyPXRoaXMuZGVsYXksaT1lLTIqcjtjLmlkbGUoZS1yKSxjLnJlY2FsY01hdHJpeChpKSxjLmZsdXNoKGUtKDEwMCsyKnIpKTtmb3IodmFyIGE9ITAsbz1jLmNvbXB1dGVkTWF0cml4LHM9MDtzPDE2OysrcylhPWEmJnVbc109PT1vW3NdLHVbc109b1tzXTt2YXIgbD10LmNsaWVudFdpZHRoPT09aCYmdC5jbGllbnRIZWlnaHQ9PT1wO3JldHVybiBoPXQuY2xpZW50V2lkdGgscD10LmNsaWVudEhlaWdodCxhPyFsOihmPU1hdGguZXhwKGMuY29tcHV0ZWRSYWRpdXNbMF0pLCEwKX0sbG9va0F0OmZ1bmN0aW9uKHQsZSxyKXtjLmxvb2tBdChjLmxhc3RUKCksdCxlLHIpfSxyb3RhdGU6ZnVuY3Rpb24odCxlLHIpe2Mucm90YXRlKGMubGFzdFQoKSx0LGUscil9LHBhbjpmdW5jdGlvbih0LGUscil7Yy5wYW4oYy5sYXN0VCgpLHQsZSxyKX0sdHJhbnNsYXRlOmZ1bmN0aW9uKHQsZSxyKXtjLnRyYW5zbGF0ZShjLmxhc3RUKCksdCxlLHIpfX07cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGQse21hdHJpeDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuY29tcHV0ZWRNYXRyaXh9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gYy5zZXRNYXRyaXgoYy5sYXN0VCgpLHQpLGMuY29tcHV0ZWRNYXRyaXh9LGVudW1lcmFibGU6ITB9LG1vZGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBjLmdldE1vZGUoKX0sc2V0OmZ1bmN0aW9uKHQpe3ZhciBlPWMuY29tcHV0ZWRVcC5zbGljZSgpLHI9Yy5jb21wdXRlZEV5ZS5zbGljZSgpLGk9Yy5jb21wdXRlZENlbnRlci5zbGljZSgpO2lmKGMuc2V0TW9kZSh0KSwidHVybnRhYmxlIj09PXQpe3ZhciBhPW4oKTtjLl9hY3RpdmUubG9va0F0KGEscixpLGUpLGMuX2FjdGl2ZS5sb29rQXQoYSs1MDAscixpLFswLDAsMV0pLGMuX2FjdGl2ZS5mbHVzaChhKX1yZXR1cm4gYy5nZXRNb2RlKCl9LGVudW1lcmFibGU6ITB9LGNlbnRlcjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuY29tcHV0ZWRDZW50ZXJ9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gYy5sb29rQXQoYy5sYXN0VCgpLG51bGwsdCksYy5jb21wdXRlZENlbnRlcn0sZW51bWVyYWJsZTohMH0sZXllOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYy5jb21wdXRlZEV5ZX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBjLmxvb2tBdChjLmxhc3RUKCksdCksYy5jb21wdXRlZEV5ZX0sZW51bWVyYWJsZTohMH0sdXA6e2dldDpmdW5jdGlvbigpe3JldHVybiBjLmNvbXB1dGVkVXB9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gYy5sb29rQXQoYy5sYXN0VCgpLG51bGwsbnVsbCx0KSxjLmNvbXB1dGVkVXB9LGVudW1lcmFibGU6ITB9LGRpc3RhbmNlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gZn0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBjLnNldERpc3RhbmNlKGMubGFzdFQoKSx0KSx0fSxlbnVtZXJhYmxlOiEwfSxkaXN0YW5jZUxpbWl0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGMuZ2V0RGlzdGFuY2VMaW1pdHMocil9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gYy5zZXREaXN0YW5jZUxpbWl0cyh0KSx0fSxlbnVtZXJhYmxlOiEwfX0pLHQuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpLCExfSkpLGQuX2xhc3RYPS0xLGQuX2xhc3RZPS0xLGQuX2xhc3RNb2RzPXtzaGlmdDohMSxjb250cm9sOiExLGFsdDohMSxtZXRhOiExfSxkLmVuYWJsZU1vdXNlTGlzdGVuZXJzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZShlLHIsaSxhKXt2YXIgbz1kLmtleUJpbmRpbmdNb2RlO2lmKCExIT09byl7dmFyIHM9InJvdGF0ZSI9PT1vLGw9InBhbiI9PT1vLHU9Inpvb20iPT09byxoPSEhYS5jb250cm9sLHA9ISFhLmFsdCxtPSEhYS5zaGlmdCxnPSEhKDEmZSksdj0hISgyJmUpLHk9ISEoNCZlKSx4PTEvdC5jbGllbnRIZWlnaHQsYj14KihyLWQuX2xhc3RYKSxfPXgqKGktZC5fbGFzdFkpLHc9ZC5mbGlwWD8xOi0xLFQ9ZC5mbGlwWT8xOi0xLGs9TWF0aC5QSSpkLnJvdGF0ZVNwZWVkLEE9bigpO2lmKC0xIT09ZC5fbGFzdFgmJi0xIT09ZC5fbGFzdFkmJigocyYmZyYmIWgmJiFwJiYhbXx8ZyYmIWgmJiFwJiZtKSYmYy5yb3RhdGUoQSx3KmsqYiwtVCprKl8sMCksKGwmJmcmJiFoJiYhcCYmIW18fHZ8fGcmJmgmJiFwJiYhbSkmJmMucGFuKEEsLWQudHJhbnNsYXRlU3BlZWQqYipmLGQudHJhbnNsYXRlU3BlZWQqXypmLDApLHUmJmcmJiFoJiYhcCYmIW18fHl8fGcmJiFoJiZwJiYhbSkpe3ZhciBNPS1kLnpvb21TcGVlZCpfL3dpbmRvdy5pbm5lckhlaWdodCooQS1jLmxhc3RUKCkpKjEwMDtjLnBhbihBLDAsMCxmKihNYXRoLmV4cChNKS0xKSl9cmV0dXJuIGQuX2xhc3RYPXIsZC5fbGFzdFk9aSxkLl9sYXN0TW9kcz1hLCEwfX1kLm1vdXNlTGlzdGVuZXI9YSh0LGUpLHQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIsKGZ1bmN0aW9uKHIpe3ZhciBuPXMoci5jaGFuZ2VkVG91Y2hlc1swXSx0KTtlKDAsblswXSxuWzFdLGQuX2xhc3RNb2RzKSxlKDEsblswXSxuWzFdLGQuX2xhc3RNb2RzKX0pLCEhbCYme3Bhc3NpdmU6ITB9KSx0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsKGZ1bmN0aW9uKHIpe3ZhciBuPXMoci5jaGFuZ2VkVG91Y2hlc1swXSx0KTtlKDEsblswXSxuWzFdLGQuX2xhc3RNb2RzKSxyLnByZXZlbnREZWZhdWx0KCl9KSwhIWwmJntwYXNzaXZlOiExfSksdC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsKGZ1bmN0aW9uKHQpe2UoMCxkLl9sYXN0WCxkLl9sYXN0WSxkLl9sYXN0TW9kcyl9KSwhIWwmJntwYXNzaXZlOiEwfSksZC53aGVlbExpc3RlbmVyPW8odCwoZnVuY3Rpb24odCxlKXtpZighMSE9PWQua2V5QmluZGluZ01vZGUmJmQuZW5hYmxlV2hlZWwpe3ZhciByPWQuZmxpcFg/MTotMSxpPWQuZmxpcFk/MTotMSxhPW4oKTtpZihNYXRoLmFicyh0KT5NYXRoLmFicyhlKSljLnJvdGF0ZShhLDAsMCwtdCpyKk1hdGguUEkqZC5yb3RhdGVTcGVlZC93aW5kb3cuaW5uZXJXaWR0aCk7ZWxzZSBpZighZC5fb3J0aG8pe3ZhciBvPS1kLnpvb21TcGVlZCppKmUvd2luZG93LmlubmVySGVpZ2h0KihhLWMubGFzdFQoKSkvMjA7Yy5wYW4oYSwwLDAsZiooTWF0aC5leHAobyktMSkpfX19KSwhMCl9LGQuZW5hYmxlTW91c2VMaXN0ZW5lcnMoKSxkfTt2YXIgbj10KCJyaWdodC1ub3ciKSxpPXQoIjNkLXZpZXciKSxhPXQoIm1vdXNlLWNoYW5nZSIpLG89dCgibW91c2Utd2hlZWwiKSxzPXQoIm1vdXNlLWV2ZW50LW9mZnNldCIpLGw9dCgiaGFzLXBhc3NpdmUtZXZlbnRzIil9LHsiM2QtdmlldyI6NTUsImhhcy1wYXNzaXZlLWV2ZW50cyI6NDI2LCJtb3VzZS1jaGFuZ2UiOjQ0OSwibW91c2UtZXZlbnQtb2Zmc2V0Ijo0NTAsIm1vdXNlLXdoZWVsIjo0NTIsInJpZ2h0LW5vdyI6NTE4fV0sMzExOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2xzbGlmeSIpLGk9dCgiZ2wtc2hhZGVyIiksYT1uKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuYXR0cmlidXRlIHZlYzIgcG9zaXRpb247XG52YXJ5aW5nIHZlYzIgdXY7XG52b2lkIG1haW4oKSB7XG4gIHV2ID0gcG9zaXRpb247XG4gIGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiwgMCwgMSk7XG59Il0pLG89bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBzYW1wbGVyMkQgYWNjdW1CdWZmZXI7XG52YXJ5aW5nIHZlYzIgdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjNCBhY2N1bSA9IHRleHR1cmUyRChhY2N1bUJ1ZmZlciwgMC41ICogKHV2ICsgMS4wKSk7XG4gIGdsX0ZyYWdDb2xvciA9IG1pbih2ZWM0KDEsMSwxLDEpLCBhY2N1bSk7XG59Il0pO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gaSh0LGEsbyxudWxsLFt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzIifV0pfX0seyJnbC1zaGFkZXIiOjMyMyxnbHNsaWZ5OjQyNH1dLDMxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NhbWVyYS5qcyIpLGk9dCgiZ2wtYXhlczNkIiksYT10KCJnbC1heGVzM2QvcHJvcGVydGllcyIpLG89dCgiZ2wtc3Bpa2VzM2QiKSxzPXQoImdsLXNlbGVjdC1zdGF0aWMiKSxsPXQoImdsLWZibyIpLGM9dCgiYS1iaWctdHJpYW5nbGUiKSx1PXQoIm1vdXNlLWNoYW5nZSIpLGY9dCgiZ2wtbWF0NC9wZXJzcGVjdGl2ZSIpLGg9dCgiZ2wtbWF0NC9vcnRobyIpLHA9dCgiLi9saWIvc2hhZGVyIiksZD10KCJpcy1tb2JpbGUiKSh7dGFibGV0OiEwLGZlYXR1cmVEZXRlY3Q6ITB9KTtmdW5jdGlvbiBtKCl7dGhpcy5tb3VzZT1bLTEsLTFdLHRoaXMuc2NyZWVuPW51bGwsdGhpcy5kaXN0YW5jZT0xLzAsdGhpcy5pbmRleD1udWxsLHRoaXMuZGF0YUNvb3JkaW5hdGU9bnVsbCx0aGlzLmRhdGFQb3NpdGlvbj1udWxsLHRoaXMub2JqZWN0PW51bGwsdGhpcy5kYXRhPW51bGx9ZnVuY3Rpb24gZyh0KXt2YXIgZT1NYXRoLnJvdW5kKE1hdGgubG9nKE1hdGguYWJzKHQpKS9NYXRoLmxvZygxMCkpO2lmKGU8MCl7dmFyIHI9TWF0aC5yb3VuZChNYXRoLnBvdygxMCwtZSkpO3JldHVybiBNYXRoLmNlaWwodCpyKS9yfWlmKGU+MCl7cj1NYXRoLnJvdW5kKE1hdGgucG93KDEwLGUpKTtyZXR1cm4gTWF0aC5jZWlsKHQvcikqcn1yZXR1cm4gTWF0aC5jZWlsKHQpfWZ1bmN0aW9uIHYodCl7cmV0dXJuImJvb2xlYW4iIT10eXBlb2YgdHx8dH1lLmV4cG9ydHM9e2NyZWF0ZVNjZW5lOmZ1bmN0aW9uKHQpeyh0PXR8fHt9KS5jYW1lcmE9dC5jYW1lcmF8fHt9O3ZhciBlPXQuY2FudmFzO2lmKCFlKXtpZihlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHQuY29udGFpbmVyKXQuY29udGFpbmVyLmFwcGVuZENoaWxkKGUpO2Vsc2UgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChlKX12YXIgcj10LmdsO3J8fCh0LmdsT3B0aW9ucyYmKGQ9ISF0LmdsT3B0aW9ucy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpLHI9ZnVuY3Rpb24odCxlKXt2YXIgcj1udWxsO3RyeXsocj10LmdldENvbnRleHQoIndlYmdsIixlKSl8fChyPXQuZ2V0Q29udGV4dCgiZXhwZXJpbWVudGFsLXdlYmdsIixlKSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9cmV0dXJuIHJ9KGUsdC5nbE9wdGlvbnN8fHtwcmVtdWx0aXBsaWVkQWxwaGE6ITAsYW50aWFsaWFzOiEwLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjpkfSkpO2lmKCFyKXRocm93IG5ldyBFcnJvcigid2ViZ2wgbm90IHN1cHBvcnRlZCIpO3ZhciB5PXQuYm91bmRzfHxbWy0xMCwtMTAsLTEwXSxbMTAsMTAsMTBdXSx4PW5ldyBtLGI9bChyLHIuZHJhd2luZ0J1ZmZlcldpZHRoLHIuZHJhd2luZ0J1ZmZlckhlaWdodCx7cHJlZmVyRmxvYXQ6IWR9KSxfPXAociksdz10LmNhbWVyYU9iamVjdCYmITA9PT10LmNhbWVyYU9iamVjdC5fb3J0aG98fHQuY2FtZXJhLnByb2plY3Rpb24mJiJvcnRob2dyYXBoaWMiPT09dC5jYW1lcmEucHJvamVjdGlvbi50eXBlfHwhMSxUPXtleWU6dC5jYW1lcmEuZXllfHxbMiwwLDBdLGNlbnRlcjp0LmNhbWVyYS5jZW50ZXJ8fFswLDAsMF0sdXA6dC5jYW1lcmEudXB8fFswLDEsMF0sem9vbU1pbjp0LmNhbWVyYS56b29tTWF4fHwuMSx6b29tTWF4OnQuY2FtZXJhLnpvb21NaW58fDEwMCxtb2RlOnQuY2FtZXJhLm1vZGV8fCJ0dXJudGFibGUiLF9vcnRobzp3fSxrPXQuYXhlc3x8e30sQT1pKHIsayk7QS5lbmFibGU9IWsuZGlzYWJsZTt2YXIgTT10LnNwaWtlc3x8e30sUz1vKHIsTSksRT1bXSxMPVtdLEM9W10sUD1bXSxJPSEwLE89ITAsej1uZXcgQXJyYXkoMTYpLEQ9bmV3IEFycmF5KDE2KSxSPXt2aWV3Om51bGwscHJvamVjdGlvbjp6LG1vZGVsOkQsX29ydGhvOiExfSxGPShPPSEwLFtyLmRyYXdpbmdCdWZmZXJXaWR0aCxyLmRyYXdpbmdCdWZmZXJIZWlnaHRdKSxCPXQuY2FtZXJhT2JqZWN0fHxuKGUsVCksTj17Z2w6cixjb250ZXh0TG9zdDohMSxwaXhlbFJhdGlvOnQucGl4ZWxSYXRpb3x8MSxjYW52YXM6ZSxzZWxlY3Rpb246eCxjYW1lcmE6QixheGVzOkEsYXhlc1BpeGVsczpudWxsLHNwaWtlczpTLGJvdW5kczp5LG9iamVjdHM6RSxzaGFwZTpGLGFzcGVjdDp0LmFzcGVjdFJhdGlvfHxbMSwxLDFdLHBpY2tSYWRpdXM6dC5waWNrUmFkaXVzfHwxMCx6TmVhcjp0LnpOZWFyfHwuMDEsekZhcjp0LnpGYXJ8fDFlMyxmb3Z5OnQuZm92eXx8TWF0aC5QSS80LGNsZWFyQ29sb3I6dC5jbGVhckNvbG9yfHxbMCwwLDAsMF0sYXV0b1Jlc2l6ZTp2KHQuYXV0b1Jlc2l6ZSksYXV0b0JvdW5kczp2KHQuYXV0b0JvdW5kcyksYXV0b1NjYWxlOiEhdC5hdXRvU2NhbGUsYXV0b0NlbnRlcjp2KHQuYXV0b0NlbnRlciksY2xpcFRvQm91bmRzOnYodC5jbGlwVG9Cb3VuZHMpLHNuYXBUb0RhdGE6ISF0LnNuYXBUb0RhdGEsb25zZWxlY3Q6dC5vbnNlbGVjdHx8bnVsbCxvbnJlbmRlcjp0Lm9ucmVuZGVyfHxudWxsLG9uY2xpY2s6dC5vbmNsaWNrfHxudWxsLGNhbWVyYVBhcmFtczpSLG9uY29udGV4dGxvc3M6bnVsbCxtb3VzZUxpc3RlbmVyOm51bGwsX3N0b3BwZWQ6ITEsZ2V0QXNwZWN0cmF0aW86ZnVuY3Rpb24oKXtyZXR1cm57eDp0aGlzLmFzcGVjdFswXSx5OnRoaXMuYXNwZWN0WzFdLHo6dGhpcy5hc3BlY3RbMl19fSxzZXRBc3BlY3RyYXRpbzpmdW5jdGlvbih0KXt0aGlzLmFzcGVjdFswXT10LngsdGhpcy5hc3BlY3RbMV09dC55LHRoaXMuYXNwZWN0WzJdPXQueixPPSEwfSxzZXRCb3VuZHM6ZnVuY3Rpb24odCxlKXt0aGlzLmJvdW5kc1swXVt0XT1lLm1pbix0aGlzLmJvdW5kc1sxXVt0XT1lLm1heH0sc2V0Q2xlYXJDb2xvcjpmdW5jdGlvbih0KXt0aGlzLmNsZWFyQ29sb3I9dH0sY2xlYXJSR0JBOmZ1bmN0aW9uKCl7dGhpcy5nbC5jbGVhckNvbG9yKHRoaXMuY2xlYXJDb2xvclswXSx0aGlzLmNsZWFyQ29sb3JbMV0sdGhpcy5jbGVhckNvbG9yWzJdLHRoaXMuY2xlYXJDb2xvclszXSksdGhpcy5nbC5jbGVhcih0aGlzLmdsLkNPTE9SX0JVRkZFUl9CSVR8dGhpcy5nbC5ERVBUSF9CVUZGRVJfQklUKX19LGo9W3IuZHJhd2luZ0J1ZmZlcldpZHRoL04ucGl4ZWxSYXRpb3wwLHIuZHJhd2luZ0J1ZmZlckhlaWdodC9OLnBpeGVsUmF0aW98MF07ZnVuY3Rpb24gVSgpe2lmKCFOLl9zdG9wcGVkJiZOLmF1dG9SZXNpemUpe3ZhciB0PWUucGFyZW50Tm9kZSxyPTEsbj0xO3QmJnQhPT1kb2N1bWVudC5ib2R5PyhyPXQuY2xpZW50V2lkdGgsbj10LmNsaWVudEhlaWdodCk6KHI9d2luZG93LmlubmVyV2lkdGgsbj13aW5kb3cuaW5uZXJIZWlnaHQpO3ZhciBpPTB8TWF0aC5jZWlsKHIqTi5waXhlbFJhdGlvKSxhPTB8TWF0aC5jZWlsKG4qTi5waXhlbFJhdGlvKTtpZihpIT09ZS53aWR0aHx8YSE9PWUuaGVpZ2h0KXtlLndpZHRoPWksZS5oZWlnaHQ9YTt2YXIgbz1lLnN0eWxlO28ucG9zaXRpb249by5wb3NpdGlvbnx8ImFic29sdXRlIixvLmxlZnQ9IjBweCIsby50b3A9IjBweCIsby53aWR0aD1yKyJweCIsby5oZWlnaHQ9bisicHgiLEk9ITB9fX1OLmF1dG9SZXNpemUmJlUoKTtmdW5jdGlvbiBWKCl7Zm9yKHZhciB0PUUubGVuZ3RoLGU9UC5sZW5ndGgsbj0wO248ZTsrK24pQ1tuXT0wO3Q6Zm9yKG49MDtuPHQ7KytuKXt2YXIgaT1FW25dLGE9aS5waWNrU2xvdHM7aWYoYSl7Zm9yKHZhciBvPTA7bzxlOysrbylpZihDW29dK2E8MjU1KXtMW25dPW8saS5zZXRQaWNrQmFzZShDW29dKzEpLENbb10rPWE7Y29udGludWUgdH12YXIgbD1zKHIsRik7TFtuXT1lLFAucHVzaChsKSxDLnB1c2goYSksaS5zZXRQaWNrQmFzZSgxKSxlKz0xfWVsc2UgTFtuXT0tMX1mb3IoO2U+MCYmMD09PUNbZS0xXTspQy5wb3AoKSxQLnBvcCgpLmRpc3Bvc2UoKX1mdW5jdGlvbiBIKCl7aWYoTi5jb250ZXh0TG9zdClyZXR1cm4hMDtyLmlzQ29udGV4dExvc3QoKSYmKE4uY29udGV4dExvc3Q9ITAsTi5tb3VzZUxpc3RlbmVyLmVuYWJsZWQ9ITEsTi5zZWxlY3Rpb24ub2JqZWN0PW51bGwsTi5vbmNvbnRleHRsb3NzJiZOLm9uY29udGV4dGxvc3MoKSl9d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsVSksTi51cGRhdGU9ZnVuY3Rpb24odCl7Ti5fc3RvcHBlZHx8KHQ9dHx8e30sST0hMCxPPSEwKX0sTi5hZGQ9ZnVuY3Rpb24odCl7Ti5fc3RvcHBlZHx8KHQuYXhlcz1BLEUucHVzaCh0KSxMLnB1c2goLTEpLEk9ITAsTz0hMCxWKCkpfSxOLnJlbW92ZT1mdW5jdGlvbih0KXtpZighTi5fc3RvcHBlZCl7dmFyIGU9RS5pbmRleE9mKHQpO2U8MHx8KEUuc3BsaWNlKGUsMSksTC5wb3AoKSxJPSEwLE89ITAsVigpKX19LE4uZGlzcG9zZT1mdW5jdGlvbigpe2lmKCFOLl9zdG9wcGVkJiYoTi5fc3RvcHBlZD0hMCx3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixVKSxlLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dGxvc3QiLEgpLE4ubW91c2VMaXN0ZW5lci5lbmFibGVkPSExLCFOLmNvbnRleHRMb3N0KSl7QS5kaXNwb3NlKCksUy5kaXNwb3NlKCk7Zm9yKHZhciB0PTA7dDxFLmxlbmd0aDsrK3QpRVt0XS5kaXNwb3NlKCk7Yi5kaXNwb3NlKCk7Zm9yKHQ9MDt0PFAubGVuZ3RoOysrdClQW3RdLmRpc3Bvc2UoKTtfLmRpc3Bvc2UoKSxyPW51bGwsQT1udWxsLFM9bnVsbCxFPVtdfX0sTi5fbW91c2VSb3RhdGluZz0hMSxOLl9wcmV2QnV0dG9ucz0wLE4uZW5hYmxlTW91c2VMaXN0ZW5lcnM9ZnVuY3Rpb24oKXtOLm1vdXNlTGlzdGVuZXI9dShlLChmdW5jdGlvbih0LGUscil7aWYoIU4uX3N0b3BwZWQpe3ZhciBuPVAubGVuZ3RoLGk9RS5sZW5ndGgsYT14Lm9iamVjdDt4LmRpc3RhbmNlPTEvMCx4Lm1vdXNlWzBdPWUseC5tb3VzZVsxXT1yLHgub2JqZWN0PW51bGwseC5zY3JlZW49bnVsbCx4LmRhdGFDb29yZGluYXRlPXguZGF0YVBvc2l0aW9uPW51bGw7dmFyIG89ITE7aWYodCYmTi5fcHJldkJ1dHRvbnMpTi5fbW91c2VSb3RhdGluZz0hMDtlbHNle04uX21vdXNlUm90YXRpbmcmJihPPSEwKSxOLl9tb3VzZVJvdGF0aW5nPSExO2Zvcih2YXIgcz0wO3M8bjsrK3Mpe3ZhciBsPVBbc10ucXVlcnkoZSxqWzFdLXItMSxOLnBpY2tSYWRpdXMpO2lmKGwpe2lmKGwuZGlzdGFuY2U+eC5kaXN0YW5jZSljb250aW51ZTtmb3IodmFyIGM9MDtjPGk7KytjKXt2YXIgdT1FW2NdO2lmKExbY109PT1zKXt2YXIgZj11LnBpY2sobCk7ZiYmKHguYnV0dG9ucz10LHguc2NyZWVuPWwuY29vcmQseC5kaXN0YW5jZT1sLmRpc3RhbmNlLHgub2JqZWN0PXUseC5pbmRleD1mLmRpc3RhbmNlLHguZGF0YVBvc2l0aW9uPWYucG9zaXRpb24seC5kYXRhQ29vcmRpbmF0ZT1mLmRhdGFDb29yZGluYXRlLHguZGF0YT1mLG89ITApfX19fX1hJiZhIT09eC5vYmplY3QmJihhLmhpZ2hsaWdodCYmYS5oaWdobGlnaHQobnVsbCksST0hMCkseC5vYmplY3QmJih4Lm9iamVjdC5oaWdobGlnaHQmJngub2JqZWN0LmhpZ2hsaWdodCh4LmRhdGEpLEk9ITApLChvPW98fHgub2JqZWN0IT09YSkmJk4ub25zZWxlY3QmJk4ub25zZWxlY3QoeCksMSZ0JiYhKDEmTi5fcHJldkJ1dHRvbnMpJiZOLm9uY2xpY2smJk4ub25jbGljayh4KSxOLl9wcmV2QnV0dG9ucz10fX0pKX0sZS5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixIKTt2YXIgcT1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSxHPVtxWzBdLnNsaWNlKCkscVsxXS5zbGljZSgpXTtmdW5jdGlvbiBZKCl7aWYoIUgoKSl7VSgpO3ZhciB0PU4uY2FtZXJhLnRpY2soKTtSLnZpZXc9Ti5jYW1lcmEubWF0cml4LEk9SXx8dCxPPU98fHQsQS5waXhlbFJhdGlvPU4ucGl4ZWxSYXRpbyxTLnBpeGVsUmF0aW89Ti5waXhlbFJhdGlvO3ZhciBlPUUubGVuZ3RoLG49cVswXSxpPXFbMV07blswXT1uWzFdPW5bMl09MS8wLGlbMF09aVsxXT1pWzJdPS0xLzA7Zm9yKHZhciBvPTA7bzxlOysrbyl7KEM9RVtvXSkucGl4ZWxSYXRpbz1OLnBpeGVsUmF0aW8sQy5heGVzPU4uYXhlcyxJPUl8fCEhQy5kaXJ0eSxPPU98fCEhQy5kaXJ0eTt2YXIgcz1DLmJvdW5kcztpZihzKWZvcih2YXIgbD1zWzBdLHU9c1sxXSxwPTA7cDwzOysrcCluW3BdPU1hdGgubWluKG5bcF0sbFtwXSksaVtwXT1NYXRoLm1heChpW3BdLHVbcF0pfXZhciBkPU4uYm91bmRzO2lmKE4uYXV0b0JvdW5kcylmb3IocD0wO3A8MzsrK3Ape2lmKGlbcF08bltwXSluW3BdPS0xLGlbcF09MTtlbHNle25bcF09PT1pW3BdJiYobltwXS09MSxpW3BdKz0xKTt2YXIgbT0uMDUqKGlbcF0tbltwXSk7bltwXT1uW3BdLW0saVtwXT1pW3BdK219ZFswXVtwXT1uW3BdLGRbMV1bcF09aVtwXX12YXIgdj0hMTtmb3IocD0wO3A8MzsrK3Apdj12fHxHWzBdW3BdIT09ZFswXVtwXXx8R1sxXVtwXSE9PWRbMV1bcF0sR1swXVtwXT1kWzBdW3BdLEdbMV1bcF09ZFsxXVtwXTtpZihPPU98fHYsST1JfHx2KXtpZih2KXt2YXIgeT1bMCwwLDBdO2ZvcihvPTA7bzwzOysrbyl5W29dPWcoKGRbMV1bb10tZFswXVtvXSkvMTApO0EuYXV0b1RpY2tzP0EudXBkYXRlKHtib3VuZHM6ZCx0aWNrU3BhY2luZzp5fSk6QS51cGRhdGUoe2JvdW5kczpkfSl9dmFyIFQ9ci5kcmF3aW5nQnVmZmVyV2lkdGgsaz1yLmRyYXdpbmdCdWZmZXJIZWlnaHQ7RlswXT1ULEZbMV09ayxqWzBdPTB8TWF0aC5tYXgoVC9OLnBpeGVsUmF0aW8sMSksalsxXT0wfE1hdGgubWF4KGsvTi5waXhlbFJhdGlvLDEpLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5ib3VuZHMsbj10LmNhbWVyYVBhcmFtcyxpPW4ucHJvamVjdGlvbixhPW4ubW9kZWwsbz10LmdsLmRyYXdpbmdCdWZmZXJXaWR0aCxzPXQuZ2wuZHJhd2luZ0J1ZmZlckhlaWdodCxsPXQuek5lYXIsYz10LnpGYXIsdT10LmZvdnkscD1vL3M7ZT8oaChpLC1wLHAsLTEsMSxsLGMpLG4uX29ydGhvPSEwKTooZihpLHUscCxsLGMpLG4uX29ydGhvPSExKTtmb3IodmFyIGQ9MDtkPDE2OysrZClhW2RdPTA7YVsxNV09MTt2YXIgbT0wO2ZvcihkPTA7ZDwzOysrZCltPU1hdGgubWF4KG0sclsxXVtkXS1yWzBdW2RdKTtmb3IoZD0wO2Q8MzsrK2QpdC5hdXRvU2NhbGU/YVs1KmRdPXQuYXNwZWN0W2RdLyhyWzFdW2RdLXJbMF1bZF0pOmFbNSpkXT0xL20sdC5hdXRvQ2VudGVyJiYoYVsxMitkXT0uNSotYVs1KmRdKihyWzBdW2RdK3JbMV1bZF0pKX0oTix3KTtmb3Iobz0wO288ZTsrK28peyhDPUVbb10pLmF4ZXNCb3VuZHM9ZCxOLmNsaXBUb0JvdW5kcyYmKEMuY2xpcEJvdW5kcz1kKX14Lm9iamVjdCYmKE4uc25hcFRvRGF0YT9TLnBvc2l0aW9uPXguZGF0YUNvb3JkaW5hdGU6Uy5wb3NpdGlvbj14LmRhdGFQb3NpdGlvbixTLmJvdW5kcz1kKSxPJiYoTz0hMSxmdW5jdGlvbigpe2lmKCFIKCkpe3IuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSxyLmRlcHRoTWFzayghMCksci5kaXNhYmxlKHIuQkxFTkQpLHIuZW5hYmxlKHIuREVQVEhfVEVTVCksci5kZXB0aEZ1bmMoci5MRVFVQUwpO2Zvcih2YXIgdD1FLmxlbmd0aCxlPVAubGVuZ3RoLG49MDtuPGU7KytuKXt2YXIgaT1QW25dO2kuc2hhcGU9aixpLmJlZ2luKCk7Zm9yKHZhciBhPTA7YTx0OysrYSlpZihMW2FdPT09bil7dmFyIG89RVthXTtvLmRyYXdQaWNrJiYoby5waXhlbFJhdGlvPTEsby5kcmF3UGljayhSKSl9aS5lbmQoKX19fSgpKSxOLmF4ZXNQaXhlbHM9YShOLmF4ZXMsUixULGspLE4ub25yZW5kZXImJk4ub25yZW5kZXIoKSxyLmJpbmRGcmFtZWJ1ZmZlcihyLkZSQU1FQlVGRkVSLG51bGwpLHIudmlld3BvcnQoMCwwLFQsayksTi5jbGVhclJHQkEoKSxyLmRlcHRoTWFzayghMCksci5jb2xvck1hc2soITAsITAsITAsITApLHIuZW5hYmxlKHIuREVQVEhfVEVTVCksci5kZXB0aEZ1bmMoci5MRVFVQUwpLHIuZGlzYWJsZShyLkJMRU5EKSxyLmRpc2FibGUoci5DVUxMX0ZBQ0UpO3ZhciBNPSExO0EuZW5hYmxlJiYoTT1NfHxBLmlzVHJhbnNwYXJlbnQoKSxBLmRyYXcoUikpLFMuYXhlcz1BLHgub2JqZWN0JiZTLmRyYXcoUiksci5kaXNhYmxlKHIuQ1VMTF9GQUNFKTtmb3Iobz0wO288ZTsrK28peyhDPUVbb10pLmF4ZXM9QSxDLnBpeGVsUmF0aW89Ti5waXhlbFJhdGlvLEMuaXNPcGFxdWUmJkMuaXNPcGFxdWUoKSYmQy5kcmF3KFIpLEMuaXNUcmFuc3BhcmVudCYmQy5pc1RyYW5zcGFyZW50KCkmJihNPSEwKX1pZihNKXtiLnNoYXBlPUYsYi5iaW5kKCksci5jbGVhcihyLkRFUFRIX0JVRkZFUl9CSVQpLHIuY29sb3JNYXNrKCExLCExLCExLCExKSxyLmRlcHRoTWFzayghMCksci5kZXB0aEZ1bmMoci5MRVNTKSxBLmVuYWJsZSYmQS5pc1RyYW5zcGFyZW50KCkmJkEuZHJhd1RyYW5zcGFyZW50KFIpO2ZvcihvPTA7bzxlOysrbyl7KEM9RVtvXSkuaXNPcGFxdWUmJkMuaXNPcGFxdWUoKSYmQy5kcmF3KFIpfXIuZW5hYmxlKHIuQkxFTkQpLHIuYmxlbmRFcXVhdGlvbihyLkZVTkNfQUREKSxyLmJsZW5kRnVuYyhyLk9ORSxyLk9ORV9NSU5VU19TUkNfQUxQSEEpLHIuY29sb3JNYXNrKCEwLCEwLCEwLCEwKSxyLmRlcHRoTWFzayghMSksci5jbGVhckNvbG9yKDAsMCwwLDApLHIuY2xlYXIoci5DT0xPUl9CVUZGRVJfQklUKSxBLmlzVHJhbnNwYXJlbnQoKSYmQS5kcmF3VHJhbnNwYXJlbnQoUik7Zm9yKG89MDtvPGU7KytvKXt2YXIgQzsoQz1FW29dKS5pc1RyYW5zcGFyZW50JiZDLmlzVHJhbnNwYXJlbnQoKSYmQy5kcmF3VHJhbnNwYXJlbnQoUil9ci5iaW5kRnJhbWVidWZmZXIoci5GUkFNRUJVRkZFUixudWxsKSxyLmJsZW5kRnVuYyhyLk9ORSxyLk9ORV9NSU5VU19TUkNfQUxQSEEpLHIuZGlzYWJsZShyLkRFUFRIX1RFU1QpLF8uYmluZCgpLGIuY29sb3JbMF0uYmluZCgwKSxfLnVuaWZvcm1zLmFjY3VtQnVmZmVyPTAsYyhyKSxyLmRpc2FibGUoci5CTEVORCl9ST0hMTtmb3Iobz0wO288ZTsrK28pRVtvXS5kaXJ0eT0hMX19fXJldHVybiBOLmVuYWJsZU1vdXNlTGlzdGVuZXJzKCksZnVuY3Rpb24gdCgpe2lmKE4uX3N0b3BwZWR8fE4uY29udGV4dExvc3QpcmV0dXJuO1koKSxyZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9KCksTi5yZWRyYXc9ZnVuY3Rpb24oKXtOLl9zdG9wcGVkfHwoST0hMCxZKCkpfSxOfSxjcmVhdGVDYW1lcmE6bn19LHsiLi9jYW1lcmEuanMiOjMxMCwiLi9saWIvc2hhZGVyIjozMTEsImEtYmlnLXRyaWFuZ2xlIjo2NiwiZ2wtYXhlczNkIjoyNDksImdsLWF4ZXMzZC9wcm9wZXJ0aWVzIjoyNTYsImdsLWZibyI6MjY1LCJnbC1tYXQ0L29ydGhvIjoyOTAsImdsLW1hdDQvcGVyc3BlY3RpdmUiOjI5MSwiZ2wtc2VsZWN0LXN0YXRpYyI6MzIyLCJnbC1zcGlrZXMzZCI6MzMyLCJpcy1tb2JpbGUiOjQzNSwibW91c2UtY2hhbmdlIjo0NDl9XSwzMTM6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJnbHNsaWZ5Iik7ci5wb2ludFZlcnRleD1uKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjtcblxudW5pZm9ybSBtYXQzIG1hdHJpeDtcbnVuaWZvcm0gZmxvYXQgcG9pbnRTaXplO1xudW5pZm9ybSBmbG9hdCBwb2ludENsb3VkO1xuXG5oaWdocCBmbG9hdCByYW5kKHZlYzIgY28pIHtcbiAgaGlnaHAgZmxvYXQgYSA9IDEyLjk4OTg7XG4gIGhpZ2hwIGZsb2F0IGIgPSA3OC4yMzM7XG4gIGhpZ2hwIGZsb2F0IGMgPSA0Mzc1OC41NDUzO1xuICBoaWdocCBmbG9hdCBkID0gZG90KGNvLnh5LCB2ZWMyKGEsIGIpKTtcbiAgaGlnaHAgZmxvYXQgZSA9IG1vZChkLCAzLjE0KTtcbiAgcmV0dXJuIGZyYWN0KHNpbihlKSAqIGMpO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgaGdQb3NpdGlvbiA9IG1hdHJpeCAqIHZlYzMocG9zaXRpb24sIDEpO1xuICBnbF9Qb3NpdGlvbiAgPSB2ZWM0KGhnUG9zaXRpb24ueHksIDAsIGhnUG9zaXRpb24ueik7XG4gICAgLy8gaWYgd2UgZG9uJ3Qgaml0dGVyIHRoZSBwb2ludCBzaXplIGEgYml0LCBvdmVyYWxsIHBvaW50IGNsb3VkXG4gICAgLy8gc2F0dXJhdGlvbiAnanVtcHMnIG9uIHpvb21pbmcsIHdoaWNoIGlzIGRpc3R1cmJpbmcgYW5kIGNvbmZ1c2luZ1xuICBnbF9Qb2ludFNpemUgPSBwb2ludFNpemUgKiAoKDE5LjUgKyByYW5kKHBvc2l0aW9uKSkgLyAyMC4wKTtcbiAgaWYocG9pbnRDbG91ZCAhPSAwLjApIHsgLy8gcG9pbnRDbG91ZCBpcyB0cnV0aHlcbiAgICAvLyBnZXQgdGhlIHNhbWUgc3F1YXJlIHN1cmZhY2UgYXMgY2lyY2xlIHdvdWxkIGJlXG4gICAgZ2xfUG9pbnRTaXplICo9IDAuODg2O1xuICB9XG59Il0pLHIucG9pbnRGcmFnbWVudD1uKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIHZlYzQgY29sb3IsIGJvcmRlckNvbG9yO1xudW5pZm9ybSBmbG9hdCBjZW50ZXJGcmFjdGlvbjtcbnVuaWZvcm0gZmxvYXQgcG9pbnRDbG91ZDtcblxudm9pZCBtYWluKCkge1xuICBmbG9hdCByYWRpdXM7XG4gIHZlYzQgYmFzZUNvbG9yO1xuICBpZihwb2ludENsb3VkICE9IDAuMCkgeyAvLyBwb2ludENsb3VkIGlzIHRydXRoeVxuICAgIGlmKGNlbnRlckZyYWN0aW9uID09IDEuMCkge1xuICAgICAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdsX0ZyYWdDb2xvciA9IG1peChib3JkZXJDb2xvciwgY29sb3IsIGNlbnRlckZyYWN0aW9uKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgcmFkaXVzID0gbGVuZ3RoKDIuMCAqIGdsX1BvaW50Q29vcmQueHkgLSAxLjApO1xuICAgIGlmKHJhZGl1cyA+IDEuMCkge1xuICAgICAgZGlzY2FyZDtcbiAgICB9XG4gICAgYmFzZUNvbG9yID0gbWl4KGJvcmRlckNvbG9yLCBjb2xvciwgc3RlcChyYWRpdXMsIGNlbnRlckZyYWN0aW9uKSk7XG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChiYXNlQ29sb3IucmdiICogYmFzZUNvbG9yLmEsIGJhc2VDb2xvci5hKTtcbiAgfVxufVxuIl0pLHIucGlja1ZlcnRleD1uKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IHBpY2tJZDtcblxudW5pZm9ybSBtYXQzIG1hdHJpeDtcbnVuaWZvcm0gZmxvYXQgcG9pbnRTaXplO1xudW5pZm9ybSB2ZWM0IHBpY2tPZmZzZXQ7XG5cbnZhcnlpbmcgdmVjNCBmcmFnSWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgdmVjMyBoZ1Bvc2l0aW9uID0gbWF0cml4ICogdmVjMyhwb3NpdGlvbiwgMSk7XG4gIGdsX1Bvc2l0aW9uICA9IHZlYzQoaGdQb3NpdGlvbi54eSwgMCwgaGdQb3NpdGlvbi56KTtcbiAgZ2xfUG9pbnRTaXplID0gcG9pbnRTaXplO1xuXG4gIHZlYzQgaWQgPSBwaWNrSWQgKyBwaWNrT2Zmc2V0O1xuICBpZC55ICs9IGZsb29yKGlkLnggLyAyNTYuMCk7XG4gIGlkLnggLT0gZmxvb3IoaWQueCAvIDI1Ni4wKSAqIDI1Ni4wO1xuXG4gIGlkLnogKz0gZmxvb3IoaWQueSAvIDI1Ni4wKTtcbiAgaWQueSAtPSBmbG9vcihpZC55IC8gMjU2LjApICogMjU2LjA7XG5cbiAgaWQudyArPSBmbG9vcihpZC56IC8gMjU2LjApO1xuICBpZC56IC09IGZsb29yKGlkLnogLyAyNTYuMCkgKiAyNTYuMDtcblxuICBmcmFnSWQgPSBpZDtcbn1cbiJdKSxyLnBpY2tGcmFnbWVudD1uKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52YXJ5aW5nIHZlYzQgZnJhZ0lkO1xuXG52b2lkIG1haW4oKSB7XG4gIGZsb2F0IHJhZGl1cyA9IGxlbmd0aCgyLjAgKiBnbF9Qb2ludENvb3JkLnh5IC0gMS4wKTtcbiAgaWYocmFkaXVzID4gMS4wKSB7XG4gICAgZGlzY2FyZDtcbiAgfVxuICBnbF9GcmFnQ29sb3IgPSBmcmFnSWQgLyAyNTUuMDtcbn1cbiJdKX0se2dsc2xpZnk6NDI0fV0sMzE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLXNoYWRlciIpLGk9dCgiZ2wtYnVmZmVyIiksYT10KCJ0eXBlZGFycmF5LXBvb2wiKSxvPXQoIi4vbGliL3NoYWRlciIpO2Z1bmN0aW9uIHModCxlLHIsbixpKXt0aGlzLnBsb3Q9dCx0aGlzLm9mZnNldEJ1ZmZlcj1lLHRoaXMucGlja0J1ZmZlcj1yLHRoaXMuc2hhZGVyPW4sdGhpcy5waWNrU2hhZGVyPWksdGhpcy5zaXplTWluPS41LHRoaXMuc2l6ZU1pbkNhcD0yLHRoaXMuc2l6ZU1heD0yMCx0aGlzLmFyZWFSYXRpbz0xLHRoaXMucG9pbnRDb3VudD0wLHRoaXMuY29sb3I9WzEsMCwwLDFdLHRoaXMuYm9yZGVyQ29sb3I9WzAsMCwwLDFdLHRoaXMuYmxlbmQ9ITEsdGhpcy5waWNrT2Zmc2V0PTAsdGhpcy5wb2ludHM9bnVsbH1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdsLGE9aShyKSxsPWkociksYz1uKHIsby5wb2ludFZlcnRleCxvLnBvaW50RnJhZ21lbnQpLHU9bihyLG8ucGlja1ZlcnRleCxvLnBpY2tGcmFnbWVudCksZj1uZXcgcyh0LGEsbCxjLHUpO3JldHVybiBmLnVwZGF0ZShlKSx0LmFkZE9iamVjdChmKSxmfTt2YXIgbCxjLHU9cy5wcm90b3R5cGU7dS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zaGFkZXIuZGlzcG9zZSgpLHRoaXMucGlja1NoYWRlci5kaXNwb3NlKCksdGhpcy5vZmZzZXRCdWZmZXIuZGlzcG9zZSgpLHRoaXMucGlja0J1ZmZlci5kaXNwb3NlKCksdGhpcy5wbG90LnJlbW92ZU9iamVjdCh0aGlzKX0sdS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU7ZnVuY3Rpb24gcihlLHIpe3JldHVybiBlIGluIHQ/dFtlXTpyfXQ9dHx8e30sdGhpcy5zaXplTWluPXIoInNpemVNaW4iLC41KSx0aGlzLnNpemVNYXg9cigic2l6ZU1heCIsMjApLHRoaXMuY29sb3I9cigiY29sb3IiLFsxLDAsMCwxXSkuc2xpY2UoKSx0aGlzLmFyZWFSYXRpbz1yKCJhcmVhUmF0aW8iLDEpLHRoaXMuYm9yZGVyQ29sb3I9cigiYm9yZGVyQ29sb3IiLFswLDAsMCwxXSkuc2xpY2UoKSx0aGlzLmJsZW5kPXIoImJsZW5kIiwhMSk7dmFyIG49dC5wb3NpdGlvbnMubGVuZ3RoPj4+MSxpPXQucG9zaXRpb25zIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5LG89dC5pZFRvSW5kZXggaW5zdGFuY2VvZiBJbnQzMkFycmF5JiZ0LmlkVG9JbmRleC5sZW5ndGg+PW4scz10LnBvc2l0aW9ucyxsPWk/czphLm1hbGxvY0Zsb2F0MzIocy5sZW5ndGgpLGM9bz90LmlkVG9JbmRleDphLm1hbGxvY0ludDMyKG4pO2lmKGl8fGwuc2V0KHMpLCFvKWZvcihsLnNldChzKSxlPTA7ZTxuO2UrKyljW2VdPWU7dGhpcy5wb2ludHM9cyx0aGlzLm9mZnNldEJ1ZmZlci51cGRhdGUobCksdGhpcy5waWNrQnVmZmVyLnVwZGF0ZShjKSxpfHxhLmZyZWUobCksb3x8YS5mcmVlKGMpLHRoaXMucG9pbnRDb3VudD1uLHRoaXMucGlja09mZnNldD0wfSx1LnVuaWZpZWREcmF3PShsPVsxLDAsMCwwLDEsMCwwLDAsMV0sYz1bMCwwLDAsMF0sZnVuY3Rpb24odCl7dmFyIGU9dm9pZCAwIT09dCxyPWU/dGhpcy5waWNrU2hhZGVyOnRoaXMuc2hhZGVyLG49dGhpcy5wbG90LmdsLGk9dGhpcy5wbG90LmRhdGFCb3g7aWYoMD09PXRoaXMucG9pbnRDb3VudClyZXR1cm4gdDt2YXIgYT1pWzJdLWlbMF0sbz1pWzNdLWlbMV0scz1mdW5jdGlvbih0LGUpe3ZhciByLG49MCxpPXQubGVuZ3RoPj4+MTtmb3Iocj0wO3I8aTtyKyspe3ZhciBhPXRbMipyXSxvPXRbMipyKzFdO2E+PWVbMF0mJmE8PWVbMl0mJm8+PWVbMV0mJm88PWVbM10mJm4rK31yZXR1cm4gbn0odGhpcy5wb2ludHMsaSksdT10aGlzLnBsb3QucGlja1BpeGVsUmF0aW8qTWF0aC5tYXgoTWF0aC5taW4odGhpcy5zaXplTWluQ2FwLHRoaXMuc2l6ZU1pbiksTWF0aC5taW4odGhpcy5zaXplTWF4LHRoaXMuc2l6ZU1heC9NYXRoLnBvdyhzLC4zMzMzMykpKTtsWzBdPTIvYSxsWzRdPTIvbyxsWzZdPS0yKmlbMF0vYS0xLGxbN109LTIqaVsxXS9vLTEsdGhpcy5vZmZzZXRCdWZmZXIuYmluZCgpLHIuYmluZCgpLHIuYXR0cmlidXRlcy5wb3NpdGlvbi5wb2ludGVyKCksci51bmlmb3Jtcy5tYXRyaXg9bCxyLnVuaWZvcm1zLmNvbG9yPXRoaXMuY29sb3Isci51bmlmb3Jtcy5ib3JkZXJDb2xvcj10aGlzLmJvcmRlckNvbG9yLHIudW5pZm9ybXMucG9pbnRDbG91ZD11PDUsci51bmlmb3Jtcy5wb2ludFNpemU9dSxyLnVuaWZvcm1zLmNlbnRlckZyYWN0aW9uPU1hdGgubWluKDEsTWF0aC5tYXgoMCxNYXRoLnNxcnQoMS10aGlzLmFyZWFSYXRpbykpKSxlJiYoY1swXT0yNTUmdCxjWzFdPXQ+PjgmMjU1LGNbMl09dD4+MTYmMjU1LGNbM109dD4+MjQmMjU1LHRoaXMucGlja0J1ZmZlci5iaW5kKCksci5hdHRyaWJ1dGVzLnBpY2tJZC5wb2ludGVyKG4uVU5TSUdORURfQllURSksci51bmlmb3Jtcy5waWNrT2Zmc2V0PWMsdGhpcy5waWNrT2Zmc2V0PXQpO3ZhciBmPW4uZ2V0UGFyYW1ldGVyKG4uQkxFTkQpLGg9bi5nZXRQYXJhbWV0ZXIobi5ESVRIRVIpO3JldHVybiBmJiYhdGhpcy5ibGVuZCYmbi5kaXNhYmxlKG4uQkxFTkQpLGgmJm4uZGlzYWJsZShuLkRJVEhFUiksbi5kcmF3QXJyYXlzKG4uUE9JTlRTLDAsdGhpcy5wb2ludENvdW50KSxmJiYhdGhpcy5ibGVuZCYmbi5lbmFibGUobi5CTEVORCksaCYmbi5lbmFibGUobi5ESVRIRVIpLHQrdGhpcy5wb2ludENvdW50fSksdS5kcmF3PXUudW5pZmllZERyYXcsdS5kcmF3UGljaz11LnVuaWZpZWREcmF3LHUucGljaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5waWNrT2Zmc2V0LGk9dGhpcy5wb2ludENvdW50O2lmKHI8bnx8cj49bitpKXJldHVybiBudWxsO3ZhciBhPXItbixvPXRoaXMucG9pbnRzO3JldHVybntvYmplY3Q6dGhpcyxwb2ludElkOmEsZGF0YUNvb3JkOltvWzIqYV0sb1syKmErMV1dfX19LHsiLi9saWIvc2hhZGVyIjozMTMsImdsLWJ1ZmZlciI6MjU3LCJnbC1zaGFkZXIiOjMyMywidHlwZWRhcnJheS1wb29sIjo1OTB9XSwzMTU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLHMsbCxjPWVbMF0sdT1lWzFdLGY9ZVsyXSxoPWVbM10scD1yWzBdLGQ9clsxXSxtPXJbMl0sZz1yWzNdOyhhPWMqcCt1KmQrZiptK2gqZyk8MCYmKGE9LWEscD0tcCxkPS1kLG09LW0sZz0tZyk7MS1hPjFlLTY/KGk9TWF0aC5hY29zKGEpLG89TWF0aC5zaW4oaSkscz1NYXRoLnNpbigoMS1uKSppKS9vLGw9TWF0aC5zaW4obippKS9vKToocz0xLW4sbD1uKTtyZXR1cm4gdFswXT1zKmMrbCpwLHRbMV09cyp1K2wqZCx0WzJdPXMqZitsKm0sdFszXT1zKmgrbCpnLHR9fSx7fV0sMzE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdHx8MD09PXQ/dC50b1N0cmluZygpOiIifX0se31dLDMxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ2ZWN0b3JpemUtdGV4dCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGE9aVtlXTthfHwoYT1pW2VdPXt9KTtpZih0IGluIGEpcmV0dXJuIGFbdF07dmFyIG89e3RleHRBbGlnbjoiY2VudGVyIix0ZXh0QmFzZWxpbmU6Im1pZGRsZSIsbGluZUhlaWdodDoxLGZvbnQ6ZSxsaW5lU3BhY2luZzoxLjI1LHN0eWxldGFnczp7YnJlYWtsaW5lczohMCxib2xkczohMCxpdGFsaWNzOiEwLHN1YnNjcmlwdHM6ITAsc3VwZXJzY3JpcHRzOiEwfSx0cmlhbmdsZXM6ITB9LHM9bih0LG8pO28udHJpYW5nbGVzPSExO3ZhciBsLGMsdT1uKHQsbyk7aWYociYmMSE9PXIpe2ZvcihsPTA7bDxzLnBvc2l0aW9ucy5sZW5ndGg7KytsKWZvcihjPTA7YzxzLnBvc2l0aW9uc1tsXS5sZW5ndGg7KytjKXMucG9zaXRpb25zW2xdW2NdLz1yO2ZvcihsPTA7bDx1LnBvc2l0aW9ucy5sZW5ndGg7KytsKWZvcihjPTA7Yzx1LnBvc2l0aW9uc1tsXS5sZW5ndGg7KytjKXUucG9zaXRpb25zW2xdW2NdLz1yfXZhciBmPVtbMS8wLDEvMF0sWy0xLzAsLTEvMF1dLGg9dS5wb3NpdGlvbnMubGVuZ3RoO2ZvcihsPTA7bDxoOysrbCl7dmFyIHA9dS5wb3NpdGlvbnNbbF07Zm9yKGM9MDtjPDI7KytjKWZbMF1bY109TWF0aC5taW4oZlswXVtjXSxwW2NdKSxmWzFdW2NdPU1hdGgubWF4KGZbMV1bY10scFtjXSl9cmV0dXJuIGFbdF09W3MsdSxmXX07dmFyIGk9e319LHsidmVjdG9yaXplLXRleHQiOjU5Nn1dLDMxODpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsLXNoYWRlciIpLGk9dCgiZ2xzbGlmeSIpLGE9aShbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG5hdHRyaWJ1dGUgdmVjMyBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yO1xuYXR0cmlidXRlIHZlYzIgZ2x5cGg7XG5hdHRyaWJ1dGUgdmVjNCBpZDtcblxudW5pZm9ybSB2ZWM0IGhpZ2hsaWdodElkO1xudW5pZm9ybSBmbG9hdCBoaWdobGlnaHRTY2FsZTtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMyBjbGlwQm91bmRzWzJdO1xuXG52YXJ5aW5nIHZlYzQgaW50ZXJwQ29sb3I7XG52YXJ5aW5nIHZlYzQgcGlja0lkO1xudmFyeWluZyB2ZWMzIGRhdGFDb29yZGluYXRlO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIHBvc2l0aW9uKSkge1xuXG4gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDApO1xuICB9IGVsc2Uge1xuICAgIGZsb2F0IHNjYWxlID0gMS4wO1xuICAgIGlmKGRpc3RhbmNlKGhpZ2hsaWdodElkLCBpZCkgPCAwLjAwMDEpIHtcbiAgICAgIHNjYWxlID0gaGlnaGxpZ2h0U2NhbGU7XG4gICAgfVxuXG4gICAgdmVjNCB3b3JsZFBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxKTtcbiAgICB2ZWM0IHZpZXdQb3NpdGlvbiA9IHZpZXcgKiB3b3JsZFBvc2l0aW9uO1xuICAgIHZpZXdQb3NpdGlvbiA9IHZpZXdQb3NpdGlvbiAvIHZpZXdQb3NpdGlvbi53O1xuICAgIHZlYzQgY2xpcFBvc2l0aW9uID0gcHJvamVjdGlvbiAqICh2aWV3UG9zaXRpb24gKyBzY2FsZSAqIHZlYzQoZ2x5cGgueCwgLWdseXBoLnksIDAsIDApKTtcblxuICAgIGdsX1Bvc2l0aW9uID0gY2xpcFBvc2l0aW9uO1xuICAgIGludGVycENvbG9yID0gY29sb3I7XG4gICAgcGlja0lkID0gaWQ7XG4gICAgZGF0YUNvb3JkaW5hdGUgPSBwb3NpdGlvbjtcbiAgfVxufSJdKSxvPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbmF0dHJpYnV0ZSB2ZWMyIGdseXBoO1xuYXR0cmlidXRlIHZlYzQgaWQ7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMiBzY3JlZW5TaXplO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IGhpZ2hsaWdodFNjYWxlLCBwaXhlbFJhdGlvO1xudW5pZm9ybSB2ZWM0IGhpZ2hsaWdodElkO1xuXG52YXJ5aW5nIHZlYzQgaW50ZXJwQ29sb3I7XG52YXJ5aW5nIHZlYzQgcGlja0lkO1xudmFyeWluZyB2ZWMzIGRhdGFDb29yZGluYXRlO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIHBvc2l0aW9uKSkge1xuXG4gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDApO1xuICB9IGVsc2Uge1xuICAgIGZsb2F0IHNjYWxlID0gcGl4ZWxSYXRpbztcbiAgICBpZihkaXN0YW5jZShoaWdobGlnaHRJZC5iZ3IsIGlkLmJncikgPCAwLjAwMSkge1xuICAgICAgc2NhbGUgKj0gaGlnaGxpZ2h0U2NhbGU7XG4gICAgfVxuXG4gICAgdmVjNCB3b3JsZFBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLCAxLjApO1xuICAgIHZlYzQgdmlld1Bvc2l0aW9uID0gdmlldyAqIHdvcmxkUG9zaXRpb247XG4gICAgdmVjNCBjbGlwUG9zaXRpb24gPSBwcm9qZWN0aW9uICogdmlld1Bvc2l0aW9uO1xuICAgIGNsaXBQb3NpdGlvbiAvPSBjbGlwUG9zaXRpb24udztcblxuICAgIGdsX1Bvc2l0aW9uID0gY2xpcFBvc2l0aW9uICsgdmVjNChzY3JlZW5TaXplICogc2NhbGUgKiB2ZWMyKGdseXBoLngsIC1nbHlwaC55KSwgMC4wLCAwLjApO1xuICAgIGludGVycENvbG9yID0gY29sb3I7XG4gICAgcGlja0lkID0gaWQ7XG4gICAgZGF0YUNvb3JkaW5hdGUgPSBwb3NpdGlvbjtcbiAgfVxufSJdKSxzPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxuYXR0cmlidXRlIHZlYzMgcG9zaXRpb247XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcjtcbmF0dHJpYnV0ZSB2ZWMyIGdseXBoO1xuYXR0cmlidXRlIHZlYzQgaWQ7XG5cbnVuaWZvcm0gZmxvYXQgaGlnaGxpZ2h0U2NhbGU7XG51bmlmb3JtIHZlYzQgaGlnaGxpZ2h0SWQ7XG51bmlmb3JtIHZlYzMgYXhlc1syXTtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMiBzY3JlZW5TaXplO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHNjYWxlLCBwaXhlbFJhdGlvO1xuXG52YXJ5aW5nIHZlYzQgaW50ZXJwQ29sb3I7XG52YXJ5aW5nIHZlYzQgcGlja0lkO1xudmFyeWluZyB2ZWMzIGRhdGFDb29yZGluYXRlO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChvdXRPZlJhbmdlKGNsaXBCb3VuZHNbMF0sIGNsaXBCb3VuZHNbMV0sIHBvc2l0aW9uKSkge1xuXG4gICAgZ2xfUG9zaXRpb24gPSB2ZWM0KDAsMCwwLDApO1xuICB9IGVsc2Uge1xuICAgIGZsb2F0IGxzY2FsZSA9IHBpeGVsUmF0aW8gKiBzY2FsZTtcbiAgICBpZihkaXN0YW5jZShoaWdobGlnaHRJZCwgaWQpIDwgMC4wMDAxKSB7XG4gICAgICBsc2NhbGUgKj0gaGlnaGxpZ2h0U2NhbGU7XG4gICAgfVxuXG4gICAgdmVjNCBjbGlwQ2VudGVyICAgPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNChwb3NpdGlvbiwgMSk7XG4gICAgdmVjMyBkYXRhUG9zaXRpb24gPSBwb3NpdGlvbiArIDAuNSpsc2NhbGUqKGF4ZXNbMF0gKiBnbHlwaC54ICsgYXhlc1sxXSAqIGdseXBoLnkpICogY2xpcENlbnRlci53ICogc2NyZWVuU2l6ZS55O1xuICAgIHZlYzQgY2xpcFBvc2l0aW9uID0gcHJvamVjdGlvbiAqIHZpZXcgKiBtb2RlbCAqIHZlYzQoZGF0YVBvc2l0aW9uLCAxKTtcblxuICAgIGdsX1Bvc2l0aW9uID0gY2xpcFBvc2l0aW9uO1xuICAgIGludGVycENvbG9yID0gY29sb3I7XG4gICAgcGlja0lkID0gaWQ7XG4gICAgZGF0YUNvb3JkaW5hdGUgPSBkYXRhUG9zaXRpb247XG4gIH1cbn1cbiJdKSxsPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzIGZyYWdDbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xuXG52YXJ5aW5nIHZlYzQgaW50ZXJwQ29sb3I7XG52YXJ5aW5nIHZlYzMgZGF0YUNvb3JkaW5hdGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKFxuICAgIG91dE9mUmFuZ2UoZnJhZ0NsaXBCb3VuZHNbMF0sIGZyYWdDbGlwQm91bmRzWzFdLCBkYXRhQ29vcmRpbmF0ZSkgfHxcbiAgICBpbnRlcnBDb2xvci5hICogb3BhY2l0eSA9PSAwLlxuICApIGRpc2NhcmQ7XG4gIGdsX0ZyYWdDb2xvciA9IGludGVycENvbG9yICogb3BhY2l0eTtcbn1cbiJdKSxjPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzIGZyYWdDbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCBwaWNrR3JvdXA7XG5cbnZhcnlpbmcgdmVjNCBwaWNrSWQ7XG52YXJ5aW5nIHZlYzMgZGF0YUNvb3JkaW5hdGU7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoZnJhZ0NsaXBCb3VuZHNbMF0sIGZyYWdDbGlwQm91bmRzWzFdLCBkYXRhQ29vcmRpbmF0ZSkpIGRpc2NhcmQ7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChwaWNrR3JvdXAsIHBpY2tJZC5iZ3IpO1xufSJdKSx1PVt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzMifSx7bmFtZToiY29sb3IiLHR5cGU6InZlYzQifSx7bmFtZToiZ2x5cGgiLHR5cGU6InZlYzIifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifV0sZj17dmVydGV4OmEsZnJhZ21lbnQ6bCxhdHRyaWJ1dGVzOnV9LGg9e3ZlcnRleDpvLGZyYWdtZW50OmwsYXR0cmlidXRlczp1fSxwPXt2ZXJ0ZXg6cyxmcmFnbWVudDpsLGF0dHJpYnV0ZXM6dX0sZD17dmVydGV4OmEsZnJhZ21lbnQ6YyxhdHRyaWJ1dGVzOnV9LG09e3ZlcnRleDpvLGZyYWdtZW50OmMsYXR0cmlidXRlczp1fSxnPXt2ZXJ0ZXg6cyxmcmFnbWVudDpjLGF0dHJpYnV0ZXM6dX07ZnVuY3Rpb24gdih0LGUpe3ZhciByPW4odCxlKSxpPXIuYXR0cmlidXRlcztyZXR1cm4gaS5wb3NpdGlvbi5sb2NhdGlvbj0wLGkuY29sb3IubG9jYXRpb249MSxpLmdseXBoLmxvY2F0aW9uPTIsaS5pZC5sb2NhdGlvbj0zLHJ9ci5jcmVhdGVQZXJzcGVjdGl2ZT1mdW5jdGlvbih0KXtyZXR1cm4gdih0LGYpfSxyLmNyZWF0ZU9ydGhvPWZ1bmN0aW9uKHQpe3JldHVybiB2KHQsaCl9LHIuY3JlYXRlUHJvamVjdD1mdW5jdGlvbih0KXtyZXR1cm4gdih0LHApfSxyLmNyZWF0ZVBpY2tQZXJzcGVjdGl2ZT1mdW5jdGlvbih0KXtyZXR1cm4gdih0LGQpfSxyLmNyZWF0ZVBpY2tPcnRobz1mdW5jdGlvbih0KXtyZXR1cm4gdih0LG0pfSxyLmNyZWF0ZVBpY2tQcm9qZWN0PWZ1bmN0aW9uKHQpe3JldHVybiB2KHQsZyl9fSx7ImdsLXNoYWRlciI6MzIzLGdsc2xpZnk6NDI0fV0sMzE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImlzLXN0cmluZy1ibGFuayIpLGk9dCgiZ2wtYnVmZmVyIiksYT10KCJnbC12YW8iKSxvPXQoInR5cGVkYXJyYXktcG9vbCIpLHM9dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGw9dCgiLi9saWIvc2hhZGVycyIpLGM9dCgiLi9saWIvZ2x5cGhzIiksdT10KCIuL2xpYi9nZXQtc2ltcGxlLXN0cmluZyIpLGY9WzEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDFdO2Z1bmN0aW9uIGgodCxlKXt2YXIgcj10WzBdLG49dFsxXSxpPXRbMl0sYT10WzNdO3JldHVybiB0WzBdPWVbMF0qcitlWzRdKm4rZVs4XSppK2VbMTJdKmEsdFsxXT1lWzFdKnIrZVs1XSpuK2VbOV0qaStlWzEzXSphLHRbMl09ZVsyXSpyK2VbNl0qbitlWzEwXSppK2VbMTRdKmEsdFszXT1lWzNdKnIrZVs3XSpuK2VbMTFdKmkrZVsxNV0qYSx0fWZ1bmN0aW9uIHAodCxlLHIsbil7cmV0dXJuIGgobixuKSxoKG4sbiksaChuLG4pfWZ1bmN0aW9uIGQodCxlKXt0aGlzLmluZGV4PXQsdGhpcy5kYXRhQ29vcmRpbmF0ZT10aGlzLnBvc2l0aW9uPWV9ZnVuY3Rpb24gbSh0KXtyZXR1cm4hMD09PXR8fHQ+MT8xOnR9ZnVuY3Rpb24gZyh0LGUscixuLGksYSxvLHMsbCxjLHUsZil7dGhpcy5nbD10LHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMuc2hhZGVyPWUsdGhpcy5vcnRob1NoYWRlcj1yLHRoaXMucHJvamVjdFNoYWRlcj1uLHRoaXMucG9pbnRCdWZmZXI9aSx0aGlzLmNvbG9yQnVmZmVyPWEsdGhpcy5nbHlwaEJ1ZmZlcj1vLHRoaXMuaWRCdWZmZXI9cyx0aGlzLnZhbz1sLHRoaXMudmVydGV4Q291bnQ9MCx0aGlzLmxpbmVWZXJ0ZXhDb3VudD0wLHRoaXMub3BhY2l0eT0xLHRoaXMuaGFzQWxwaGE9ITEsdGhpcy5saW5lV2lkdGg9MCx0aGlzLnByb2plY3RTY2FsZT1bMi8zLDIvMywyLzNdLHRoaXMucHJvamVjdE9wYWNpdHk9WzEsMSwxXSx0aGlzLnByb2plY3RIYXNBbHBoYT0hMSx0aGlzLnBpY2tJZD0wLHRoaXMucGlja1BlcnNwZWN0aXZlU2hhZGVyPWMsdGhpcy5waWNrT3J0aG9TaGFkZXI9dSx0aGlzLnBpY2tQcm9qZWN0U2hhZGVyPWYsdGhpcy5wb2ludHM9W10sdGhpcy5fc2VsZWN0UmVzdWx0PW5ldyBkKDAsWzAsMCwwXSksdGhpcy51c2VPcnRobz0hMCx0aGlzLmJvdW5kcz1bWzEvMCwxLzAsMS8wXSxbLTEvMCwtMS8wLC0xLzBdXSx0aGlzLmF4ZXNQcm9qZWN0PVshMCwhMCwhMF0sdGhpcy5heGVzQm91bmRzPVtbLTEvMCwtMS8wLC0xLzBdLFsxLzAsMS8wLDEvMF1dLHRoaXMuaGlnaGxpZ2h0SWQ9WzEsMSwxLDFdLHRoaXMuaGlnaGxpZ2h0U2NhbGU9Mix0aGlzLmNsaXBCb3VuZHM9W1stMS8wLC0xLzAsLTEvMF0sWzEvMCwxLzAsMS8wXV0sdGhpcy5kaXJ0eT0hMH1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5nbCxyPWwuY3JlYXRlUGVyc3BlY3RpdmUoZSksbj1sLmNyZWF0ZU9ydGhvKGUpLG89bC5jcmVhdGVQcm9qZWN0KGUpLHM9bC5jcmVhdGVQaWNrUGVyc3BlY3RpdmUoZSksYz1sLmNyZWF0ZVBpY2tPcnRobyhlKSx1PWwuY3JlYXRlUGlja1Byb2plY3QoZSksZj1pKGUpLGg9aShlKSxwPWkoZSksZD1pKGUpLG09YShlLFt7YnVmZmVyOmYsc2l6ZTozLHR5cGU6ZS5GTE9BVH0se2J1ZmZlcjpoLHNpemU6NCx0eXBlOmUuRkxPQVR9LHtidWZmZXI6cCxzaXplOjIsdHlwZTplLkZMT0FUfSx7YnVmZmVyOmQsc2l6ZTo0LHR5cGU6ZS5VTlNJR05FRF9CWVRFLG5vcm1hbGl6ZWQ6ITB9XSksdj1uZXcgZyhlLHIsbixvLGYsaCxwLGQsbSxzLGMsdSk7cmV0dXJuIHYudXBkYXRlKHQpLHZ9O3ZhciB2PWcucHJvdG90eXBlO3YucGlja1Nsb3RzPTEsdi5zZXRQaWNrQmFzZT1mdW5jdGlvbih0KXt0aGlzLnBpY2tJZD10fSx2LmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtpZih0aGlzLmhhc0FscGhhKXJldHVybiEwO2Zvcih2YXIgdD0wO3Q8MzsrK3QpaWYodGhpcy5heGVzUHJvamVjdFt0XSYmdGhpcy5wcm9qZWN0SGFzQWxwaGEpcmV0dXJuITA7cmV0dXJuITF9LHYuaXNPcGFxdWU9ZnVuY3Rpb24oKXtpZighdGhpcy5oYXNBbHBoYSlyZXR1cm4hMDtmb3IodmFyIHQ9MDt0PDM7Kyt0KWlmKHRoaXMuYXhlc1Byb2plY3RbdF0mJiF0aGlzLnByb2plY3RIYXNBbHBoYSlyZXR1cm4hMDtyZXR1cm4hMX07dmFyIHk9WzAsMF0seD1bMCwwLDBdLGI9WzAsMCwwXSxfPVswLDAsMCwxXSx3PVswLDAsMCwxXSxUPWYuc2xpY2UoKSxrPVswLDAsMF0sQT1bWzAsMCwwXSxbMCwwLDBdXTtmdW5jdGlvbiBNKHQpe3JldHVybiB0WzBdPXRbMV09dFsyXT0wLHR9ZnVuY3Rpb24gUyh0LGUpe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPTEsdH1mdW5jdGlvbiBFKHQsZSxyLG4pe3JldHVybiB0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0W3JdPW4sdH1mdW5jdGlvbiBMKHQsZSxyLG4pe3ZhciBpLGE9ZS5heGVzUHJvamVjdCxvPWUuZ2wsbD10LnVuaWZvcm1zLGM9ci5tb2RlbHx8Zix1PXIudmlld3x8ZixoPXIucHJvamVjdGlvbnx8ZixkPWUuYXhlc0JvdW5kcyxtPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1BLHI9MDtyPDI7KytyKWZvcih2YXIgbj0wO248MzsrK24pZVtyXVtuXT1NYXRoLm1heChNYXRoLm1pbih0W3JdW25dLDFlOCksLTFlOCk7cmV0dXJuIGV9KGUuY2xpcEJvdW5kcyk7aT1lLmF4ZXMmJmUuYXhlcy5sYXN0Q3ViZVByb3BzP2UuYXhlcy5sYXN0Q3ViZVByb3BzLmF4aXM6WzEsMSwxXSx5WzBdPTIvby5kcmF3aW5nQnVmZmVyV2lkdGgseVsxXT0yL28uZHJhd2luZ0J1ZmZlckhlaWdodCx0LmJpbmQoKSxsLnZpZXc9dSxsLnByb2plY3Rpb249aCxsLnNjcmVlblNpemU9eSxsLmhpZ2hsaWdodElkPWUuaGlnaGxpZ2h0SWQsbC5oaWdobGlnaHRTY2FsZT1lLmhpZ2hsaWdodFNjYWxlLGwuY2xpcEJvdW5kcz1tLGwucGlja0dyb3VwPWUucGlja0lkLzI1NSxsLnBpeGVsUmF0aW89bjtmb3IodmFyIGc9MDtnPDM7KytnKWlmKGFbZ10pe2wuc2NhbGU9ZS5wcm9qZWN0U2NhbGVbZ10sbC5vcGFjaXR5PWUucHJvamVjdE9wYWNpdHlbZ107Zm9yKHZhciB2PVQsTD0wO0w8MTY7KytMKXZbTF09MDtmb3IoTD0wO0w8NDsrK0wpdls1KkxdPTE7dls1KmddPTAsaVtnXTwwP3ZbMTIrZ109ZFswXVtnXTp2WzEyK2ddPWRbMV1bZ10scyh2LGMsdiksbC5tb2RlbD12O3ZhciBDPShnKzEpJTMsUD0oZysyKSUzLEk9TSh4KSxPPU0oYik7SVtDXT0xLE9bUF09MTt2YXIgej1wKDAsMCwwLFMoXyxJKSksRD1wKDAsMCwwLFModyxPKSk7aWYoTWF0aC5hYnMoelsxXSk+TWF0aC5hYnMoRFsxXSkpe3ZhciBSPXo7ej1ELEQ9UixSPUksST1PLE89Ujt2YXIgRj1DO0M9UCxQPUZ9elswXTwwJiYoSVtDXT0tMSksRFsxXT4wJiYoT1tQXT0tMSk7dmFyIEI9MCxOPTA7Zm9yKEw9MDtMPDQ7KytMKUIrPU1hdGgucG93KGNbNCpDK0xdLDIpLE4rPU1hdGgucG93KGNbNCpQK0xdLDIpO0lbQ10vPU1hdGguc3FydChCKSxPW1BdLz1NYXRoLnNxcnQoTiksbC5heGVzWzBdPUksbC5heGVzWzFdPU8sbC5mcmFnQ2xpcEJvdW5kc1swXT1FKGssbVswXSxnLC0xZTgpLGwuZnJhZ0NsaXBCb3VuZHNbMV09RShrLG1bMV0sZywxZTgpLGUudmFvLmJpbmQoKSxlLnZhby5kcmF3KG8uVFJJQU5HTEVTLGUudmVydGV4Q291bnQpLGUubGluZVdpZHRoPjAmJihvLmxpbmVXaWR0aChlLmxpbmVXaWR0aCpuKSxlLnZhby5kcmF3KG8uTElORVMsZS5saW5lVmVydGV4Q291bnQsZS52ZXJ0ZXhDb3VudCkpLGUudmFvLnVuYmluZCgpfX12YXIgQz1bWy0xZTgsLTFlOCwtMWU4XSxbMWU4LDFlOCwxZThdXTtmdW5jdGlvbiBQKHQsZSxyLG4saSxhLG8pe3ZhciBzPXIuZ2w7aWYoKGE9PT1yLnByb2plY3RIYXNBbHBoYXx8bykmJkwoZSxyLG4saSksYT09PXIuaGFzQWxwaGF8fG8pe3QuYmluZCgpO3ZhciBsPXQudW5pZm9ybXM7bC5tb2RlbD1uLm1vZGVsfHxmLGwudmlldz1uLnZpZXd8fGYsbC5wcm9qZWN0aW9uPW4ucHJvamVjdGlvbnx8Zix5WzBdPTIvcy5kcmF3aW5nQnVmZmVyV2lkdGgseVsxXT0yL3MuZHJhd2luZ0J1ZmZlckhlaWdodCxsLnNjcmVlblNpemU9eSxsLmhpZ2hsaWdodElkPXIuaGlnaGxpZ2h0SWQsbC5oaWdobGlnaHRTY2FsZT1yLmhpZ2hsaWdodFNjYWxlLGwuZnJhZ0NsaXBCb3VuZHM9QyxsLmNsaXBCb3VuZHM9ci5heGVzLmJvdW5kcyxsLm9wYWNpdHk9ci5vcGFjaXR5LGwucGlja0dyb3VwPXIucGlja0lkLzI1NSxsLnBpeGVsUmF0aW89aSxyLnZhby5iaW5kKCksci52YW8uZHJhdyhzLlRSSUFOR0xFUyxyLnZlcnRleENvdW50KSxyLmxpbmVXaWR0aD4wJiYocy5saW5lV2lkdGgoci5saW5lV2lkdGgqaSksci52YW8uZHJhdyhzLkxJTkVTLHIubGluZVZlcnRleENvdW50LHIudmVydGV4Q291bnQpKSxyLnZhby51bmJpbmQoKX19ZnVuY3Rpb24gSSh0LGUscixpKXt2YXIgYTthPUFycmF5LmlzQXJyYXkodCk/ZTx0Lmxlbmd0aD90W2VdOnZvaWQgMDp0LGE9dShhKTt2YXIgbz0hMDtuKGEpJiYoYT0iXHUyNWJjIixvPSExKTt2YXIgcz1jKGEscixpKTtyZXR1cm57bWVzaDpzWzBdLGxpbmVzOnNbMV0sYm91bmRzOnNbMl0sdmlzaWJsZTpvfX12LmRyYXc9ZnVuY3Rpb24odCl7UCh0aGlzLnVzZU9ydGhvP3RoaXMub3J0aG9TaGFkZXI6dGhpcy5zaGFkZXIsdGhpcy5wcm9qZWN0U2hhZGVyLHRoaXMsdCx0aGlzLnBpeGVsUmF0aW8sITEsITEpfSx2LmRyYXdUcmFuc3BhcmVudD1mdW5jdGlvbih0KXtQKHRoaXMudXNlT3J0aG8/dGhpcy5vcnRob1NoYWRlcjp0aGlzLnNoYWRlcix0aGlzLnByb2plY3RTaGFkZXIsdGhpcyx0LHRoaXMucGl4ZWxSYXRpbywhMCwhMSl9LHYuZHJhd1BpY2s9ZnVuY3Rpb24odCl7UCh0aGlzLnVzZU9ydGhvP3RoaXMucGlja09ydGhvU2hhZGVyOnRoaXMucGlja1BlcnNwZWN0aXZlU2hhZGVyLHRoaXMucGlja1Byb2plY3RTaGFkZXIsdGhpcyx0LDEsITAsITApfSx2LnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO3ZhciBlPXQudmFsdWVbMl0rKHQudmFsdWVbMV08PDgpKyh0LnZhbHVlWzBdPDwxNik7aWYoZT49dGhpcy5wb2ludENvdW50fHxlPDApcmV0dXJuIG51bGw7dmFyIHI9dGhpcy5wb2ludHNbZV0sbj10aGlzLl9zZWxlY3RSZXN1bHQ7bi5pbmRleD1lO2Zvcih2YXIgaT0wO2k8MzsrK2kpbi5wb3NpdGlvbltpXT1uLmRhdGFDb29yZGluYXRlW2ldPXJbaV07cmV0dXJuIG59LHYuaGlnaGxpZ2h0PWZ1bmN0aW9uKHQpe2lmKHQpe3ZhciBlPXQuaW5kZXgscj0yNTUmZSxuPWU+PjgmMjU1LGk9ZT4+MTYmMjU1O3RoaXMuaGlnaGxpZ2h0SWQ9W3IvMjU1LG4vMjU1LGkvMjU1LDBdfWVsc2UgdGhpcy5oaWdobGlnaHRJZD1bMSwxLDEsMV19LHYudXBkYXRlPWZ1bmN0aW9uKHQpe2lmKCJwZXJzcGVjdGl2ZSJpbih0PXR8fHt9KSYmKHRoaXMudXNlT3J0aG89IXQucGVyc3BlY3RpdmUpLCJvcnRob2dyYXBoaWMiaW4gdCYmKHRoaXMudXNlT3J0aG89ISF0Lm9ydGhvZ3JhcGhpYyksImxpbmVXaWR0aCJpbiB0JiYodGhpcy5saW5lV2lkdGg9dC5saW5lV2lkdGgpLCJwcm9qZWN0ImluIHQpaWYoQXJyYXkuaXNBcnJheSh0LnByb2plY3QpKXRoaXMuYXhlc1Byb2plY3Q9dC5wcm9qZWN0O2Vsc2V7dmFyIGU9ISF0LnByb2plY3Q7dGhpcy5heGVzUHJvamVjdD1bZSxlLGVdfWlmKCJwcm9qZWN0U2NhbGUiaW4gdClpZihBcnJheS5pc0FycmF5KHQucHJvamVjdFNjYWxlKSl0aGlzLnByb2plY3RTY2FsZT10LnByb2plY3RTY2FsZS5zbGljZSgpO2Vsc2V7dmFyIHI9K3QucHJvamVjdFNjYWxlO3RoaXMucHJvamVjdFNjYWxlPVtyLHIscl19aWYodGhpcy5wcm9qZWN0SGFzQWxwaGE9ITEsInByb2plY3RPcGFjaXR5ImluIHQpe2lmKEFycmF5LmlzQXJyYXkodC5wcm9qZWN0T3BhY2l0eSkpdGhpcy5wcm9qZWN0T3BhY2l0eT10LnByb2plY3RPcGFjaXR5LnNsaWNlKCk7ZWxzZXtyPSt0LnByb2plY3RPcGFjaXR5O3RoaXMucHJvamVjdE9wYWNpdHk9W3IscixyXX1mb3IodmFyIG49MDtuPDM7KytuKXRoaXMucHJvamVjdE9wYWNpdHlbbl09bSh0aGlzLnByb2plY3RPcGFjaXR5W25dKSx0aGlzLnByb2plY3RPcGFjaXR5W25dPDEmJih0aGlzLnByb2plY3RIYXNBbHBoYT0hMCl9dGhpcy5oYXNBbHBoYT0hMSwib3BhY2l0eSJpbiB0JiYodGhpcy5vcGFjaXR5PW0odC5vcGFjaXR5KSx0aGlzLm9wYWNpdHk8MSYmKHRoaXMuaGFzQWxwaGE9ITApKSx0aGlzLmRpcnR5PSEwO3ZhciBpLGEscz10LnBvc2l0aW9uLGw9dC5mb250fHwibm9ybWFsIixjPXQuYWxpZ25tZW50fHxbMCwwXTtpZigyPT09Yy5sZW5ndGgpaT1jWzBdLGE9Y1sxXTtlbHNle2k9W10sYT1bXTtmb3Iobj0wO248Yy5sZW5ndGg7KytuKWlbbl09Y1tuXVswXSxhW25dPWNbbl1bMV19dmFyIHU9WzEvMCwxLzAsMS8wXSxmPVstMS8wLC0xLzAsLTEvMF0saD10LmdseXBoLHA9dC5jb2xvcixkPXQuc2l6ZSxnPXQuYW5nbGUsdj10LmxpbmVDb2xvcix5PS0xLHg9MCxiPTAsXz0wO2lmKHMubGVuZ3RoKXtfPXMubGVuZ3RoO3Q6Zm9yKG49MDtuPF87KytuKXtmb3IodmFyIHc9c1tuXSxUPTA7VDwzOysrVClpZihpc05hTih3W1RdKXx8IWlzRmluaXRlKHdbVF0pKWNvbnRpbnVlIHQ7dmFyIGs9KE49SShoLG4sbCx0aGlzLnBpeGVsUmF0aW8pKS5tZXNoLEE9Ti5saW5lcyxNPU4uYm91bmRzO3grPTMqay5jZWxscy5sZW5ndGgsYis9MipBLmVkZ2VzLmxlbmd0aH19dmFyIFM9eCtiLEU9by5tYWxsb2NGbG9hdCgzKlMpLEw9by5tYWxsb2NGbG9hdCg0KlMpLEM9by5tYWxsb2NGbG9hdCgyKlMpLFA9by5tYWxsb2NVaW50MzIoUyk7aWYoUz4wKXt2YXIgTz0wLHo9eCxEPVswLDAsMCwxXSxSPVswLDAsMCwxXSxGPUFycmF5LmlzQXJyYXkocCkmJkFycmF5LmlzQXJyYXkocFswXSksQj1BcnJheS5pc0FycmF5KHYpJiZBcnJheS5pc0FycmF5KHZbMF0pO3Q6Zm9yKG49MDtuPF87KytuKXt5Kz0xO2Zvcih3PXNbbl0sVD0wO1Q8MzsrK1Qpe2lmKGlzTmFOKHdbVF0pfHwhaXNGaW5pdGUod1tUXSkpY29udGludWUgdDtmW1RdPU1hdGgubWF4KGZbVF0sd1tUXSksdVtUXT1NYXRoLm1pbih1W1RdLHdbVF0pfWs9KE49SShoLG4sbCx0aGlzLnBpeGVsUmF0aW8pKS5tZXNoLEE9Ti5saW5lcyxNPU4uYm91bmRzO3ZhciBOLGo9Ti52aXNpYmxlO2lmKGopaWYoQXJyYXkuaXNBcnJheShwKSl7aWYoMz09PShVPUY/bjxwLmxlbmd0aD9wW25dOlswLDAsMCwwXTpwKS5sZW5ndGgpe2ZvcihUPTA7VDwzOysrVClEW1RdPVVbVF07RFszXT0xfWVsc2UgaWYoND09PVUubGVuZ3RoKXtmb3IoVD0wO1Q8NDsrK1QpRFtUXT1VW1RdOyF0aGlzLmhhc0FscGhhJiZVWzNdPDEmJih0aGlzLmhhc0FscGhhPSEwKX19ZWxzZSBEWzBdPURbMV09RFsyXT0wLERbM109MTtlbHNlIEQ9WzEsMSwxLDBdO2lmKGopaWYoQXJyYXkuaXNBcnJheSh2KSl7dmFyIFU7aWYoMz09PShVPUI/bjx2Lmxlbmd0aD92W25dOlswLDAsMCwwXTp2KS5sZW5ndGgpe2ZvcihUPTA7VDwzOysrVClSW1RdPVVbVF07UltUXT0xfWVsc2UgaWYoND09PVUubGVuZ3RoKXtmb3IoVD0wO1Q8NDsrK1QpUltUXT1VW1RdOyF0aGlzLmhhc0FscGhhJiZVWzNdPDEmJih0aGlzLmhhc0FscGhhPSEwKX19ZWxzZSBSWzBdPVJbMV09UlsyXT0wLFJbM109MTtlbHNlIFI9WzEsMSwxLDBdO3ZhciBWPS41O2o/QXJyYXkuaXNBcnJheShkKT9WPW48ZC5sZW5ndGg/K2Rbbl06MTI6ZD9WPStkOnRoaXMudXNlT3J0aG8mJihWPTEyKTpWPTA7dmFyIEg9MDtBcnJheS5pc0FycmF5KGcpP0g9bjxnLmxlbmd0aD8rZ1tuXTowOmcmJihIPStnKTt2YXIgcT1NYXRoLmNvcyhIKSxHPU1hdGguc2luKEgpO2Zvcih3PXNbbl0sVD0wO1Q8MzsrK1QpZltUXT1NYXRoLm1heChmW1RdLHdbVF0pLHVbVF09TWF0aC5taW4odVtUXSx3W1RdKTt2YXIgWT1pLFc9YTtZPTA7QXJyYXkuaXNBcnJheShpKT9ZPW48aS5sZW5ndGg/aVtuXTowOmkmJihZPWkpO1c9MDtBcnJheS5pc0FycmF5KGEpP1c9bjxhLmxlbmd0aD9hW25dOjA6YSYmKFc9YSk7dmFyIFg9W1kqPVk+MD8xLU1bMF1bMF06WTwwPzErTVsxXVswXToxLFcqPVc+MD8xLU1bMF1bMV06VzwwPzErTVsxXVsxXToxXSxaPWsuY2VsbHN8fFtdLEo9ay5wb3NpdGlvbnN8fFtdO2ZvcihUPTA7VDxaLmxlbmd0aDsrK1QpZm9yKHZhciBLPVpbVF0sUT0wO1E8MzsrK1Epe2Zvcih2YXIgJD0wOyQ8MzsrKyQpRVszKk8rJF09d1skXTtmb3IoJD0wOyQ8NDsrKyQpTFs0Kk8rJF09RFskXTtQW09dPXk7dmFyIHR0PUpbS1tRXV07Q1syKk9dPVYqKHEqdHRbMF0tRyp0dFsxXStYWzBdKSxDWzIqTysxXT1WKihHKnR0WzBdK3EqdHRbMV0rWFsxXSksTys9MX1mb3IoWj1BLmVkZ2VzLEo9QS5wb3NpdGlvbnMsVD0wO1Q8Wi5sZW5ndGg7KytUKWZvcihLPVpbVF0sUT0wO1E8MjsrK1Epe2ZvcigkPTA7JDwzOysrJClFWzMqeiskXT13WyRdO2ZvcigkPTA7JDw0OysrJClMWzQqeiskXT1SWyRdO1Bbel09eTt0dD1KW0tbUV1dO0NbMip6XT1WKihxKnR0WzBdLUcqdHRbMV0rWFswXSksQ1syKnorMV09ViooRyp0dFswXStxKnR0WzFdK1hbMV0pLHorPTF9fX10aGlzLmJvdW5kcz1bdSxmXSx0aGlzLnBvaW50cz1zLHRoaXMucG9pbnRDb3VudD1zLmxlbmd0aCx0aGlzLnZlcnRleENvdW50PXgsdGhpcy5saW5lVmVydGV4Q291bnQ9Yix0aGlzLnBvaW50QnVmZmVyLnVwZGF0ZShFKSx0aGlzLmNvbG9yQnVmZmVyLnVwZGF0ZShMKSx0aGlzLmdseXBoQnVmZmVyLnVwZGF0ZShDKSx0aGlzLmlkQnVmZmVyLnVwZGF0ZShQKSxvLmZyZWUoRSksby5mcmVlKEwpLG8uZnJlZShDKSxvLmZyZWUoUCl9LHYuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2hhZGVyLmRpc3Bvc2UoKSx0aGlzLm9ydGhvU2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBpY2tQZXJzcGVjdGl2ZVNoYWRlci5kaXNwb3NlKCksdGhpcy5waWNrT3J0aG9TaGFkZXIuZGlzcG9zZSgpLHRoaXMudmFvLmRpc3Bvc2UoKSx0aGlzLnBvaW50QnVmZmVyLmRpc3Bvc2UoKSx0aGlzLmNvbG9yQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLmdseXBoQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLmlkQnVmZmVyLmRpc3Bvc2UoKX19LHsiLi9saWIvZ2V0LXNpbXBsZS1zdHJpbmciOjMxNiwiLi9saWIvZ2x5cGhzIjozMTcsIi4vbGliL3NoYWRlcnMiOjMxOCwiZ2wtYnVmZmVyIjoyNTcsImdsLW1hdDQvbXVsdGlwbHkiOjI4OSwiZ2wtdmFvIjozNDMsImlzLXN0cmluZy1ibGFuayI6NDM4LCJ0eXBlZGFycmF5LXBvb2wiOjU5MH1dLDMyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbHNsaWZ5Iik7ci5ib3hWZXJ0ZXg9bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgdmVydGV4O1xuXG51bmlmb3JtIHZlYzIgY29ybmVyQSwgY29ybmVyQjtcblxudm9pZCBtYWluKCkge1xuICBnbF9Qb3NpdGlvbiA9IHZlYzQobWl4KGNvcm5lckEsIGNvcm5lckIsIHZlcnRleCksIDAsIDEpO1xufVxuIl0pLHIuYm94RnJhZ21lbnQ9bihbInByZWNpc2lvbiBtZWRpdW1wIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xufVxuIl0pfSx7Z2xzbGlmeTo0MjR9XSwzMjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT10KCJnbC1idWZmZXIiKSxhPXQoIi4vbGliL3NoYWRlcnMiKTtmdW5jdGlvbiBvKHQsZSxyKXt0aGlzLnBsb3Q9dCx0aGlzLmJveEJ1ZmZlcj1lLHRoaXMuYm94U2hhZGVyPXIsdGhpcy5lbmFibGVkPSEwLHRoaXMuc2VsZWN0Qm94PVsxLzAsMS8wLC0xLzAsLTEvMF0sdGhpcy5ib3JkZXJDb2xvcj1bMCwwLDAsMV0sdGhpcy5pbm5lckZpbGw9ITEsdGhpcy5pbm5lckNvbG9yPVswLDAsMCwuMjVdLHRoaXMub3V0ZXJGaWxsPSEwLHRoaXMub3V0ZXJDb2xvcj1bMCwwLDAsLjVdLHRoaXMuYm9yZGVyV2lkdGg9MTB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbCxzPWkocixbMCwwLDAsMSwxLDAsMSwxXSksbD1uKHIsYS5ib3hWZXJ0ZXgsYS5ib3hGcmFnbWVudCksYz1uZXcgbyh0LHMsbCk7cmV0dXJuIGMudXBkYXRlKGUpLHQuYWRkT3ZlcmxheShjKSxjfTt2YXIgcz1vLnByb3RvdHlwZTtzLmRyYXc9ZnVuY3Rpb24oKXtpZih0aGlzLmVuYWJsZWQpe3ZhciB0PXRoaXMucGxvdCxlPXRoaXMuc2VsZWN0Qm94LHI9dGhpcy5ib3JkZXJXaWR0aCxuPSh0aGlzLmlubmVyRmlsbCx0aGlzLmlubmVyQ29sb3IpLGk9KHRoaXMub3V0ZXJGaWxsLHRoaXMub3V0ZXJDb2xvciksYT10aGlzLmJvcmRlckNvbG9yLG89dC5ib3gscz10LnNjcmVlbkJveCxsPXQuZGF0YUJveCxjPXQudmlld0JveCx1PXQucGl4ZWxSYXRpbyxmPShlWzBdLWxbMF0pKihjWzJdLWNbMF0pLyhsWzJdLWxbMF0pK2NbMF0saD0oZVsxXS1sWzFdKSooY1szXS1jWzFdKS8obFszXS1sWzFdKStjWzFdLHA9KGVbMl0tbFswXSkqKGNbMl0tY1swXSkvKGxbMl0tbFswXSkrY1swXSxkPShlWzNdLWxbMV0pKihjWzNdLWNbMV0pLyhsWzNdLWxbMV0pK2NbMV07aWYoZj1NYXRoLm1heChmLGNbMF0pLGg9TWF0aC5tYXgoaCxjWzFdKSxwPU1hdGgubWluKHAsY1syXSksZD1NYXRoLm1pbihkLGNbM10pLCEocDxmfHxkPGgpKXtvLmJpbmQoKTt2YXIgbT1zWzJdLXNbMF0sZz1zWzNdLXNbMV07aWYodGhpcy5vdXRlckZpbGwmJihvLmRyYXdCb3goMCwwLG0saCxpKSxvLmRyYXdCb3goMCxoLGYsZCxpKSxvLmRyYXdCb3goMCxkLG0sZyxpKSxvLmRyYXdCb3gocCxoLG0sZCxpKSksdGhpcy5pbm5lckZpbGwmJm8uZHJhd0JveChmLGgscCxkLG4pLHI+MCl7dmFyIHY9cip1O28uZHJhd0JveChmLXYsaC12LHArdixoK3YsYSksby5kcmF3Qm94KGYtdixkLXYscCt2LGQrdixhKSxvLmRyYXdCb3goZi12LGgtdixmK3YsZCt2LGEpLG8uZHJhd0JveChwLXYsaC12LHArdixkK3YsYSl9fX19LHMudXBkYXRlPWZ1bmN0aW9uKHQpe3Q9dHx8e30sdGhpcy5pbm5lckZpbGw9ISF0LmlubmVyRmlsbCx0aGlzLm91dGVyRmlsbD0hIXQub3V0ZXJGaWxsLHRoaXMuaW5uZXJDb2xvcj0odC5pbm5lckNvbG9yfHxbMCwwLDAsLjVdKS5zbGljZSgpLHRoaXMub3V0ZXJDb2xvcj0odC5vdXRlckNvbG9yfHxbMCwwLDAsLjVdKS5zbGljZSgpLHRoaXMuYm9yZGVyQ29sb3I9KHQuYm9yZGVyQ29sb3J8fFswLDAsMCwxXSkuc2xpY2UoKSx0aGlzLmJvcmRlcldpZHRoPXQuYm9yZGVyV2lkdGh8fDAsdGhpcy5zZWxlY3RCb3g9KHQuc2VsZWN0Qm94fHx0aGlzLnNlbGVjdEJveCkuc2xpY2UoKX0scy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5ib3hCdWZmZXIuZGlzcG9zZSgpLHRoaXMuYm94U2hhZGVyLmRpc3Bvc2UoKSx0aGlzLnBsb3QucmVtb3ZlT3ZlcmxheSh0aGlzKX19LHsiLi9saWIvc2hhZGVycyI6MzIwLCJnbC1idWZmZXIiOjI1NywiZ2wtc2hhZGVyIjozMjN9XSwzMjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxhPWVbMV0sbz1uKHQscixhLHt9KSxzPWkubWFsbG9jVWludDgociphKjQpO3JldHVybiBuZXcgbCh0LG8scyl9O3ZhciBuPXQoImdsLWZibyIpLGk9dCgidHlwZWRhcnJheS1wb29sIiksYT10KCJuZGFycmF5Iiksbz10KCJiaXQtdHdpZGRsZSIpLm5leHRQb3cyO2Z1bmN0aW9uIHModCxlLHIsbixpKXt0aGlzLmNvb3JkPVt0LGVdLHRoaXMuaWQ9cix0aGlzLnZhbHVlPW4sdGhpcy5kaXN0YW5jZT1pfWZ1bmN0aW9uIGwodCxlLHIpe3RoaXMuZ2w9dCx0aGlzLmZibz1lLHRoaXMuYnVmZmVyPXIsdGhpcy5fcmVhZFRpbWVvdXQ9bnVsbDt2YXIgbj10aGlzO3RoaXMuX3JlYWRDYWxsYmFjaz1mdW5jdGlvbigpe24uZ2wmJihlLmJpbmQoKSx0LnJlYWRQaXhlbHMoMCwwLGUuc2hhcGVbMF0sZS5zaGFwZVsxXSx0LlJHQkEsdC5VTlNJR05FRF9CWVRFLG4uYnVmZmVyKSxuLl9yZWFkVGltZW91dD1udWxsKX19dmFyIGM9bC5wcm90b3R5cGU7T2JqZWN0LmRlZmluZVByb3BlcnR5KGMsInNoYXBlIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2w/dGhpcy5mYm8uc2hhcGUuc2xpY2UoKTpbMCwwXX0sc2V0OmZ1bmN0aW9uKHQpe2lmKHRoaXMuZ2wpe3RoaXMuZmJvLnNoYXBlPXQ7dmFyIGU9dGhpcy5mYm8uc2hhcGVbMF0scj10aGlzLmZiby5zaGFwZVsxXTtpZihyKmUqND50aGlzLmJ1ZmZlci5sZW5ndGgpe2kuZnJlZSh0aGlzLmJ1ZmZlcik7Zm9yKHZhciBuPXRoaXMuYnVmZmVyPWkubWFsbG9jVWludDgobyhyKmUqNCkpLGE9MDthPHIqZSo0OysrYSluW2FdPTI1NX1yZXR1cm4gdH19fSksYy5iZWdpbj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2w7dGhpcy5zaGFwZTt0JiYodGhpcy5mYm8uYmluZCgpLHQuY2xlYXJDb2xvcigxLDEsMSwxKSx0LmNsZWFyKHQuQ09MT1JfQlVGRkVSX0JJVHx0LkRFUFRIX0JVRkZFUl9CSVQpKX0sYy5lbmQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3QmJih0LmJpbmRGcmFtZWJ1ZmZlcih0LkZSQU1FQlVGRkVSLG51bGwpLHRoaXMuX3JlYWRUaW1lb3V0fHxjbGVhclRpbWVvdXQodGhpcy5fcmVhZFRpbWVvdXQpLHRoaXMuX3JlYWRUaW1lb3V0PXNldFRpbWVvdXQodGhpcy5fcmVhZENhbGxiYWNrLDEpKX0sYy5xdWVyeT1mdW5jdGlvbih0LGUscil7aWYoIXRoaXMuZ2wpcmV0dXJuIG51bGw7dmFyIG49dGhpcy5mYm8uc2hhcGUuc2xpY2UoKTt0fD0wLGV8PTAsIm51bWJlciIhPXR5cGVvZiByJiYocj0xKTt2YXIgaT0wfE1hdGgubWluKE1hdGgubWF4KHQtciwwKSxuWzBdKSxvPTB8TWF0aC5taW4oTWF0aC5tYXgodCtyLDApLG5bMF0pLGw9MHxNYXRoLm1pbihNYXRoLm1heChlLXIsMCksblsxXSksYz0wfE1hdGgubWluKE1hdGgubWF4KGUrciwwKSxuWzFdKTtpZihvPD1pfHxjPD1sKXJldHVybiBudWxsO3ZhciB1PVtvLWksYy1sXSxmPWEodGhpcy5idWZmZXIsW3VbMF0sdVsxXSw0XSxbNCw0Km5bMF0sMV0sNCooaStuWzBdKmwpKSxoPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MWU4LGk9LTEsYT0tMSxvPXQuc2hhcGVbMF0scz10LnNoYXBlWzFdLGw9MDtsPG87bCsrKWZvcih2YXIgYz0wO2M8cztjKyspe3ZhciB1PXQuZ2V0KGwsYywwKSxmPXQuZ2V0KGwsYywxKSxoPXQuZ2V0KGwsYywyKSxwPXQuZ2V0KGwsYywzKTtpZih1PDI1NXx8ZjwyNTV8fGg8MjU1fHxwPDI1NSl7dmFyIGQ9ZS1sLG09ci1jLGc9ZCpkK20qbTtnPG4mJihuPWcsaT1sLGE9Yyl9fXJldHVybltpLGEsbl19KGYuaGkodVswXSx1WzFdLDEpLHIscikscD1oWzBdLGQ9aFsxXTtyZXR1cm4gcDwwfHxNYXRoLnBvdyh0aGlzLnJhZGl1cywyKTxoWzJdP251bGw6bmV3IHMocCtpfDAsZCtsfDAsZi5nZXQocCxkLDApLFtmLmdldChwLGQsMSksZi5nZXQocCxkLDIpLGYuZ2V0KHAsZCwzKV0sTWF0aC5zcXJ0KGhbMl0pKX0sYy5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5nbCYmKHRoaXMuZmJvLmRpc3Bvc2UoKSxpLmZyZWUodGhpcy5idWZmZXIpLHRoaXMuZ2w9bnVsbCx0aGlzLl9yZWFkVGltZW91dCYmY2xlYXJUaW1lb3V0KHRoaXMuX3JlYWRUaW1lb3V0KSl9fSx7ImJpdC10d2lkZGxlIjoxMDEsImdsLWZibyI6MjY1LG5kYXJyYXk6NDYyLCJ0eXBlZGFycmF5LXBvb2wiOjU5MH1dLDMyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9jcmVhdGUtdW5pZm9ybXMiKSxpPXQoIi4vbGliL2NyZWF0ZS1hdHRyaWJ1dGVzIiksYT10KCIuL2xpYi9yZWZsZWN0Iiksbz10KCIuL2xpYi9zaGFkZXItY2FjaGUiKSxzPXQoIi4vbGliL3J1bnRpbWUtcmVmbGVjdCIpLGw9dCgiLi9saWIvR0xFcnJvciIpO2Z1bmN0aW9uIGModCl7dGhpcy5nbD10LHRoaXMuZ2wubGFzdEF0dHJpYkNvdW50PTAsdGhpcy5fdnJlZj10aGlzLl9mcmVmPXRoaXMuX3JlbGluaz10aGlzLnZlcnRTaGFkZXI9dGhpcy5mcmFnU2hhZGVyPXRoaXMucHJvZ3JhbT10aGlzLmF0dHJpYnV0ZXM9dGhpcy51bmlmb3Jtcz10aGlzLnR5cGVzPW51bGx9dmFyIHU9Yy5wcm90b3R5cGU7ZnVuY3Rpb24gZih0LGUpe3JldHVybiB0Lm5hbWU8ZS5uYW1lPy0xOjF9dS5iaW5kPWZ1bmN0aW9uKCl7dmFyIHQ7dGhpcy5wcm9ncmFtfHx0aGlzLl9yZWxpbmsoKTt2YXIgZT10aGlzLmdsLmdldFByb2dyYW1QYXJhbWV0ZXIodGhpcy5wcm9ncmFtLHRoaXMuZ2wuQUNUSVZFX0FUVFJJQlVURVMpLHI9dGhpcy5nbC5sYXN0QXR0cmliQ291bnQ7aWYoZT5yKWZvcih0PXI7dDxlO3QrKyl0aGlzLmdsLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KHQpO2Vsc2UgaWYocj5lKWZvcih0PWU7dDxyO3QrKyl0aGlzLmdsLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSh0KTt0aGlzLmdsLmxhc3RBdHRyaWJDb3VudD1lLHRoaXMuZ2wudXNlUHJvZ3JhbSh0aGlzLnByb2dyYW0pfSx1LmRpc3Bvc2U9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5nbC5sYXN0QXR0cmliQ291bnQsZT0wO2U8dDtlKyspdGhpcy5nbC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoZSk7dGhpcy5nbC5sYXN0QXR0cmliQ291bnQ9MCx0aGlzLl9mcmVmJiZ0aGlzLl9mcmVmLmRpc3Bvc2UoKSx0aGlzLl92cmVmJiZ0aGlzLl92cmVmLmRpc3Bvc2UoKSx0aGlzLmF0dHJpYnV0ZXM9dGhpcy50eXBlcz10aGlzLnZlcnRTaGFkZXI9dGhpcy5mcmFnU2hhZGVyPXRoaXMucHJvZ3JhbT10aGlzLl9yZWxpbms9dGhpcy5fZnJlZj10aGlzLl92cmVmPW51bGx9LHUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyLGMpe2lmKCFlfHwxPT09YXJndW1lbnRzLmxlbmd0aCl7dmFyIHU9dDt0PXUudmVydGV4LGU9dS5mcmFnbWVudCxyPXUudW5pZm9ybXMsYz11LmF0dHJpYnV0ZXN9dmFyIGg9dGhpcyxwPWguZ2wsZD1oLl92cmVmO2guX3ZyZWY9by5zaGFkZXIocCxwLlZFUlRFWF9TSEFERVIsdCksZCYmZC5kaXNwb3NlKCksaC52ZXJ0U2hhZGVyPWguX3ZyZWYuc2hhZGVyO3ZhciBtPXRoaXMuX2ZyZWY7aWYoaC5fZnJlZj1vLnNoYWRlcihwLHAuRlJBR01FTlRfU0hBREVSLGUpLG0mJm0uZGlzcG9zZSgpLGguZnJhZ1NoYWRlcj1oLl9mcmVmLnNoYWRlciwhcnx8IWMpe3ZhciBnPXAuY3JlYXRlUHJvZ3JhbSgpO2lmKHAuYXR0YWNoU2hhZGVyKGcsaC5mcmFnU2hhZGVyKSxwLmF0dGFjaFNoYWRlcihnLGgudmVydFNoYWRlcikscC5saW5rUHJvZ3JhbShnKSwhcC5nZXRQcm9ncmFtUGFyYW1ldGVyKGcscC5MSU5LX1NUQVRVUykpe3ZhciB2PXAuZ2V0UHJvZ3JhbUluZm9Mb2coZyk7dGhyb3cgbmV3IGwodiwiRXJyb3IgbGlua2luZyBwcm9ncmFtOiIrdil9cj1yfHxzLnVuaWZvcm1zKHAsZyksYz1jfHxzLmF0dHJpYnV0ZXMocCxnKSxwLmRlbGV0ZVByb2dyYW0oZyl9KGM9Yy5zbGljZSgpKS5zb3J0KGYpO3ZhciB5LHg9W10sYj1bXSxfPVtdO2Zvcih5PTA7eTxjLmxlbmd0aDsrK3kpe3ZhciB3PWNbeV07aWYody50eXBlLmluZGV4T2YoIm1hdCIpPj0wKXtmb3IodmFyIFQ9MHx3LnR5cGUuY2hhckF0KHcudHlwZS5sZW5ndGgtMSksaz1uZXcgQXJyYXkoVCksQT0wO0E8VDsrK0Epa1tBXT1fLmxlbmd0aCxiLnB1c2gody5uYW1lKyJbIitBKyJdIiksIm51bWJlciI9PXR5cGVvZiB3LmxvY2F0aW9uP18ucHVzaCh3LmxvY2F0aW9uK0EpOkFycmF5LmlzQXJyYXkody5sb2NhdGlvbikmJncubG9jYXRpb24ubGVuZ3RoPT09VCYmIm51bWJlciI9PXR5cGVvZiB3LmxvY2F0aW9uW0FdP18ucHVzaCgwfHcubG9jYXRpb25bQV0pOl8ucHVzaCgtMSk7eC5wdXNoKHtuYW1lOncubmFtZSx0eXBlOncudHlwZSxsb2NhdGlvbnM6a30pfWVsc2UgeC5wdXNoKHtuYW1lOncubmFtZSx0eXBlOncudHlwZSxsb2NhdGlvbnM6W18ubGVuZ3RoXX0pLGIucHVzaCh3Lm5hbWUpLCJudW1iZXIiPT10eXBlb2Ygdy5sb2NhdGlvbj9fLnB1c2goMHx3LmxvY2F0aW9uKTpfLnB1c2goLTEpfXZhciBNPTA7Zm9yKHk9MDt5PF8ubGVuZ3RoOysreSlpZihfW3ldPDApe2Zvcig7Xy5pbmRleE9mKE0pPj0wOylNKz0xO19beV09TX12YXIgUz1uZXcgQXJyYXkoci5sZW5ndGgpO2Z1bmN0aW9uIEUoKXtoLnByb2dyYW09by5wcm9ncmFtKHAsaC5fdnJlZixoLl9mcmVmLGIsXyk7Zm9yKHZhciB0PTA7dDxyLmxlbmd0aDsrK3QpU1t0XT1wLmdldFVuaWZvcm1Mb2NhdGlvbihoLnByb2dyYW0sclt0XS5uYW1lKX1FKCksaC5fcmVsaW5rPUUsaC50eXBlcz17dW5pZm9ybXM6YShyKSxhdHRyaWJ1dGVzOmEoYyl9LGguYXR0cmlidXRlcz1pKHAsaCx4LF8pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShoLCJ1bmlmb3JtcyIsbihwLGgscixTKSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPW5ldyBjKHQpO3JldHVybiBhLnVwZGF0ZShlLHIsbixpKSxhfX0seyIuL2xpYi9HTEVycm9yIjozMjQsIi4vbGliL2NyZWF0ZS1hdHRyaWJ1dGVzIjozMjUsIi4vbGliL2NyZWF0ZS11bmlmb3JtcyI6MzI2LCIuL2xpYi9yZWZsZWN0IjozMjcsIi4vbGliL3J1bnRpbWUtcmVmbGVjdCI6MzI4LCIuL2xpYi9zaGFkZXItY2FjaGUiOjMyOX1dLDMyNDpbZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIpe3RoaXMuc2hvcnRNZXNzYWdlPWV8fCIiLHRoaXMubG9uZ01lc3NhZ2U9cnx8IiIsdGhpcy5yYXdFcnJvcj10fHwiIix0aGlzLm1lc3NhZ2U9ImdsLXNoYWRlcjogIisoZXx8dHx8IiIpKyhyPyJcbiIrcjoiIiksdGhpcy5zdGFjaz0obmV3IEVycm9yKS5zdGFja31uLnByb3RvdHlwZT1uZXcgRXJyb3Isbi5wcm90b3R5cGUubmFtZT0iR0xFcnJvciIsbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bixlLmV4cG9ydHM9bn0se31dLDMyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7Zm9yKHZhciBhPXt9LG89MCxjPXIubGVuZ3RoO288YzsrK28pe3ZhciB1PXJbb10sZj11Lm5hbWUsaD11LnR5cGUscD11LmxvY2F0aW9ucztzd2l0Y2goaCl7Y2FzZSJib29sIjpjYXNlImludCI6Y2FzZSJmbG9hdCI6cyh0LGUscFswXSxpLDEsYSxmKTticmVhaztkZWZhdWx0OmlmKGguaW5kZXhPZigidmVjIik+PTApe2lmKChkPWguY2hhckNvZGVBdChoLmxlbmd0aC0xKS00OCk8Mnx8ZD40KXRocm93IG5ldyBuKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSBmb3IgYXR0cmlidXRlICIrZisiOiAiK2gpO3ModCxlLHBbMF0saSxkLGEsZil9ZWxzZXtpZighKGguaW5kZXhPZigibWF0Iik+PTApKXRocm93IG5ldyBuKCIiLCJVbmtub3duIGRhdGEgdHlwZSBmb3IgYXR0cmlidXRlICIrZisiOiAiK2gpO3ZhciBkO2lmKChkPWguY2hhckNvZGVBdChoLmxlbmd0aC0xKS00OCk8Mnx8ZD40KXRocm93IG5ldyBuKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSBmb3IgYXR0cmlidXRlICIrZisiOiAiK2gpO2wodCxlLHAsaSxkLGEsZil9fX1yZXR1cm4gYX07dmFyIG49dCgiLi9HTEVycm9yIik7ZnVuY3Rpb24gaSh0LGUscixuLGksYSl7dGhpcy5fZ2w9dCx0aGlzLl93cmFwcGVyPWUsdGhpcy5faW5kZXg9cix0aGlzLl9sb2NhdGlvbnM9bix0aGlzLl9kaW1lbnNpb249aSx0aGlzLl9jb25zdEZ1bmM9YX12YXIgYT1pLnByb3RvdHlwZTthLnBvaW50ZXI9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcy5fZ2wsYT10aGlzLl9sb2NhdGlvbnNbdGhpcy5faW5kZXhdO2kudmVydGV4QXR0cmliUG9pbnRlcihhLHRoaXMuX2RpbWVuc2lvbix0fHxpLkZMT0FULCEhZSxyfHwwLG58fDApLGkuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoYSl9LGEuc2V0PWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLl9jb25zdEZ1bmModGhpcy5fbG9jYXRpb25zW3RoaXMuX2luZGV4XSx0LGUscixuKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KGEsImxvY2F0aW9uIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvY2F0aW9uc1t0aGlzLl9pbmRleF19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gdCE9PXRoaXMuX2xvY2F0aW9uc1t0aGlzLl9pbmRleF0mJih0aGlzLl9sb2NhdGlvbnNbdGhpcy5faW5kZXhdPTB8dCx0aGlzLl93cmFwcGVyLnByb2dyYW09bnVsbCksMHx0fX0pO3ZhciBvPVtmdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXIubGVuZ3RoP3QudmVydGV4QXR0cmliMWYoZSxyKTp0LnZlcnRleEF0dHJpYjFmdihlLHIpfSxmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdm9pZCAwPT09ci5sZW5ndGg/dC52ZXJ0ZXhBdHRyaWIyZihlLHIsbik6dC52ZXJ0ZXhBdHRyaWIyZnYoZSxyKX0sZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gdm9pZCAwPT09ci5sZW5ndGg/dC52ZXJ0ZXhBdHRyaWIzZihlLHIsbixpKTp0LnZlcnRleEF0dHJpYjNmdihlLHIpfSxmdW5jdGlvbih0LGUscixuLGksYSl7cmV0dXJuIHZvaWQgMD09PXIubGVuZ3RoP3QudmVydGV4QXR0cmliNGYoZSxyLG4saSxhKTp0LnZlcnRleEF0dHJpYjRmdihlLHIpfV07ZnVuY3Rpb24gcyh0LGUscixuLGEscyxsKXt2YXIgYz1vW2FdLHU9bmV3IGkodCxlLHIsbixhLGMpO09iamVjdC5kZWZpbmVQcm9wZXJ0eShzLGwse3NldDpmdW5jdGlvbihlKXtyZXR1cm4gdC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkobltyXSksYyh0LG5bcl0sZSksZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHV9LGVudW1lcmFibGU6ITB9KX1mdW5jdGlvbiBsKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgbD1uZXcgQXJyYXkoaSksYz1uZXcgQXJyYXkoaSksdT0wO3U8aTsrK3Upcyh0LGUsclt1XSxuLGksbCx1KSxjW3VdPWxbdV07T2JqZWN0LmRlZmluZVByb3BlcnR5KGwsImxvY2F0aW9uIix7c2V0OmZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciBlPTA7ZTxpOysrZSljW2VdLmxvY2F0aW9uPXRbZV07ZWxzZSBmb3IoZT0wO2U8aTsrK2UpY1tlXS5sb2NhdGlvbj10K2U7cmV0dXJuIHR9LGdldDpmdW5jdGlvbigpe2Zvcih2YXIgdD1uZXcgQXJyYXkoaSksZT0wO2U8aTsrK2UpdFtlXT1uW3JbZV1dO3JldHVybiB0fSxlbnVtZXJhYmxlOiEwfSksbC5wb2ludGVyPWZ1bmN0aW9uKGUsYSxvLHMpe2U9ZXx8dC5GTE9BVCxhPSEhYSxvPW98fGkqaSxzPXN8fDA7Zm9yKHZhciBsPTA7bDxpOysrbCl7dmFyIGM9bltyW2xdXTt0LnZlcnRleEF0dHJpYlBvaW50ZXIoYyxpLGUsYSxvLHMrbCppKSx0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGMpfX07dmFyIGY9bmV3IEFycmF5KGkpLGg9dFsidmVydGV4QXR0cmliIitpKyJmdiJdO09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLG8se3NldDpmdW5jdGlvbihlKXtmb3IodmFyIGE9MDthPGk7KythKXt2YXIgbz1uW3JbYV1dO2lmKHQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KG8pLEFycmF5LmlzQXJyYXkoZVswXSkpaC5jYWxsKHQsbyxlW2FdKTtlbHNle2Zvcih2YXIgcz0wO3M8aTsrK3MpZltzXT1lW2kqYStzXTtoLmNhbGwodCxvLGYpfX1yZXR1cm4gZX0sZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGx9LGVudW1lcmFibGU6ITB9KX19LHsiLi9HTEVycm9yIjozMjR9XSwzMjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9yZWZsZWN0IiksaT10KCIuL0dMRXJyb3IiKTtmdW5jdGlvbiBhKHQpe3JldHVybiBmdW5jdGlvbigpe3JldHVybiB0fX1mdW5jdGlvbiBvKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWU7cmV0dXJuIHJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwoZSl7cmV0dXJuIGZ1bmN0aW9uKG4pe2Zvcih2YXIgYT1mdW5jdGlvbiB0KGUscil7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybltbZSxyXV07dmFyIG49W107Zm9yKHZhciBpIGluIHIpe3ZhciBhPXJbaV0sbz1lO3BhcnNlSW50KGkpKyIiPT09aT9vKz0iWyIraSsiXSI6bys9Ii4iK2ksIm9iamVjdCI9PXR5cGVvZiBhP24ucHVzaC5hcHBseShuLHQobyxhKSk6bi5wdXNoKFtvLGFdKX1yZXR1cm4gbn0oIiIsZSksbz0wO288YS5sZW5ndGg7KytvKXt2YXIgbD1hW29dLGM9bFswXSx1PWxbMV07aWYoc1t1XSl7dmFyIGY9bjtpZigic3RyaW5nIj09dHlwZW9mIGMmJigwPT09Yy5pbmRleE9mKCIuIil8fDA9PT1jLmluZGV4T2YoIlsiKSkpe3ZhciBoPWM7aWYoMD09PWMuaW5kZXhPZigiLiIpJiYoaD1jLnNsaWNlKDEpKSxoLmluZGV4T2YoIl0iKT09PWgubGVuZ3RoLTEpe3ZhciBwPWguaW5kZXhPZigiWyIpLGQ9aC5zbGljZSgwLHApLG09aC5zbGljZShwKzEsaC5sZW5ndGgtMSk7Zj1kP25bZF1bbV06blttXX1lbHNlIGY9bltoXX12YXIgZyx2PXJbdV0udHlwZTtzd2l0Y2godil7Y2FzZSJib29sIjpjYXNlImludCI6Y2FzZSJzYW1wbGVyMkQiOmNhc2Uic2FtcGxlckN1YmUiOnQudW5pZm9ybTFpKHNbdV0sZik7YnJlYWs7Y2FzZSJmbG9hdCI6dC51bmlmb3JtMWYoc1t1XSxmKTticmVhaztkZWZhdWx0OnZhciB5PXYuaW5kZXhPZigidmVjIik7aWYoISgwPD15JiZ5PD0xJiZ2Lmxlbmd0aD09PTQreSkpe2lmKDA9PT12LmluZGV4T2YoIm1hdCIpJiY0PT09di5sZW5ndGgpe2lmKChnPXYuY2hhckNvZGVBdCh2Lmxlbmd0aC0xKS00OCk8Mnx8Zz40KXRocm93IG5ldyBpKCIiLCJJbnZhbGlkIHVuaWZvcm0gZGltZW5zaW9uIHR5cGUgZm9yIG1hdHJpeCAiK25hbWUrIjogIit2KTt0WyJ1bmlmb3JtTWF0cml4IitnKyJmdiJdKHNbdV0sITEsZik7YnJlYWt9dGhyb3cgbmV3IGkoIiIsIlVua25vd24gdW5pZm9ybSBkYXRhIHR5cGUgZm9yICIrbmFtZSsiOiAiK3YpfWlmKChnPXYuY2hhckNvZGVBdCh2Lmxlbmd0aC0xKS00OCk8Mnx8Zz40KXRocm93IG5ldyBpKCIiLCJJbnZhbGlkIGRhdGEgdHlwZSIpO3N3aXRjaCh2LmNoYXJBdCgwKSl7Y2FzZSJiIjpjYXNlImkiOnRbInVuaWZvcm0iK2crIml2Il0oc1t1XSxmKTticmVhaztjYXNlInYiOnRbInVuaWZvcm0iK2crImZ2Il0oc1t1XSxmKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBpKCIiLCJVbnJlY29nbml6ZWQgZGF0YSB0eXBlIGZvciB2ZWN0b3IgIituYW1lKyI6ICIrdil9fX19fX1mdW5jdGlvbiBjKHQsZSxuKXtpZigib2JqZWN0Ij09dHlwZW9mIG4pe3ZhciBjPXUobik7T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Z2V0OmEoYyksc2V0OmwobiksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KX1lbHNlIHNbbl0/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7Z2V0OihmPW4sZnVuY3Rpb24odCxlLHIpe3JldHVybiB0LmdldFVuaWZvcm0oZS5wcm9ncmFtLHJbZl0pfSksc2V0OmwobiksZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITF9KTp0W2VdPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlImJvb2wiOnJldHVybiExO2Nhc2UiaW50IjpjYXNlInNhbXBsZXIyRCI6Y2FzZSJzYW1wbGVyQ3ViZSI6Y2FzZSJmbG9hdCI6cmV0dXJuIDA7ZGVmYXVsdDp2YXIgZT10LmluZGV4T2YoInZlYyIpO2lmKDA8PWUmJmU8PTEmJnQubGVuZ3RoPT09NCtlKXtpZigocj10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSktNDgpPDJ8fHI+NCl0aHJvdyBuZXcgaSgiIiwiSW52YWxpZCBkYXRhIHR5cGUiKTtyZXR1cm4iYiI9PT10LmNoYXJBdCgwKT9vKHIsITEpOm8ociwwKX1pZigwPT09dC5pbmRleE9mKCJtYXQiKSYmND09PXQubGVuZ3RoKXt2YXIgcjtpZigocj10LmNoYXJDb2RlQXQodC5sZW5ndGgtMSktNDgpPDJ8fHI+NCl0aHJvdyBuZXcgaSgiIiwiSW52YWxpZCB1bmlmb3JtIGRpbWVuc2lvbiB0eXBlIGZvciBtYXRyaXggIituYW1lKyI6ICIrdCk7cmV0dXJuIG8ocipyLDApfXRocm93IG5ldyBpKCIiLCJVbmtub3duIHVuaWZvcm0gZGF0YSB0eXBlIGZvciAiK25hbWUrIjogIit0KX19KHJbbl0udHlwZSk7dmFyIGZ9ZnVuY3Rpb24gdSh0KXt2YXIgZTtpZihBcnJheS5pc0FycmF5KHQpKXtlPW5ldyBBcnJheSh0Lmxlbmd0aCk7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpYyhlLHIsdFtyXSl9ZWxzZSBmb3IodmFyIG4gaW4gZT17fSx0KWMoZSxuLHRbbl0pO3JldHVybiBlfXZhciBmPW4ociwhMCk7cmV0dXJue2dldDphKHUoZikpLHNldDpsKGYpLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwfX19LHsiLi9HTEVycm9yIjozMjQsIi4vcmVmbGVjdCI6MzI3fV0sMzI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj17fSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBpPXRbbl0ubmFtZS5zcGxpdCgiLiIpLGE9cixvPTA7bzxpLmxlbmd0aDsrK28pe3ZhciBzPWlbb10uc3BsaXQoIlsiKTtpZihzLmxlbmd0aD4xKXtzWzBdaW4gYXx8KGFbc1swXV09W10pLGE9YVtzWzBdXTtmb3IodmFyIGw9MTtsPHMubGVuZ3RoOysrbCl7dmFyIGM9cGFyc2VJbnQoc1tsXSk7bDxzLmxlbmd0aC0xfHxvPGkubGVuZ3RoLTE/KGMgaW4gYXx8KGw8cy5sZW5ndGgtMT9hW2NdPVtdOmFbY109e30pLGE9YVtjXSk6YVtjXT1lP246dFtuXS50eXBlfX1lbHNlIG88aS5sZW5ndGgtMT8oc1swXWluIGF8fChhW3NbMF1dPXt9KSxhPWFbc1swXV0pOmFbc1swXV09ZT9uOnRbbl0udHlwZX1yZXR1cm4gcn19LHt9XSwzMjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci51bmlmb3Jtcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmdldFByb2dyYW1QYXJhbWV0ZXIoZSx0LkFDVElWRV9VTklGT1JNUyksbj1bXSxpPTA7aTxyOysraSl7dmFyIG89dC5nZXRBY3RpdmVVbmlmb3JtKGUsaSk7aWYobyl7dmFyIHM9YSh0LG8udHlwZSk7aWYoby5zaXplPjEpZm9yKHZhciBsPTA7bDxvLnNpemU7KytsKW4ucHVzaCh7bmFtZTpvLm5hbWUucmVwbGFjZSgiWzBdIiwiWyIrbCsiXSIpLHR5cGU6c30pO2Vsc2Ugbi5wdXNoKHtuYW1lOm8ubmFtZSx0eXBlOnN9KX19cmV0dXJuIG59LHIuYXR0cmlidXRlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmdldFByb2dyYW1QYXJhbWV0ZXIoZSx0LkFDVElWRV9BVFRSSUJVVEVTKSxuPVtdLGk9MDtpPHI7KytpKXt2YXIgbz10LmdldEFjdGl2ZUF0dHJpYihlLGkpO28mJm4ucHVzaCh7bmFtZTpvLm5hbWUsdHlwZTphKHQsby50eXBlKX0pfXJldHVybiBufTt2YXIgbj17RkxPQVQ6ImZsb2F0IixGTE9BVF9WRUMyOiJ2ZWMyIixGTE9BVF9WRUMzOiJ2ZWMzIixGTE9BVF9WRUM0OiJ2ZWM0IixJTlQ6ImludCIsSU5UX1ZFQzI6Iml2ZWMyIixJTlRfVkVDMzoiaXZlYzMiLElOVF9WRUM0OiJpdmVjNCIsQk9PTDoiYm9vbCIsQk9PTF9WRUMyOiJidmVjMiIsQk9PTF9WRUMzOiJidmVjMyIsQk9PTF9WRUM0OiJidmVjNCIsRkxPQVRfTUFUMjoibWF0MiIsRkxPQVRfTUFUMzoibWF0MyIsRkxPQVRfTUFUNDoibWF0NCIsU0FNUExFUl8yRDoic2FtcGxlcjJEIixTQU1QTEVSX0NVQkU6InNhbXBsZXJDdWJlIn0saT1udWxsO2Z1bmN0aW9uIGEodCxlKXtpZighaSl7dmFyIHI9T2JqZWN0LmtleXMobik7aT17fTtmb3IodmFyIGE9MDthPHIubGVuZ3RoOysrYSl7dmFyIG89clthXTtpW3Rbb11dPW5bb119fXJldHVybiBpW2VdfX0se31dLDMyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLnNoYWRlcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHUodCkuZ2V0U2hhZGVyUmVmZXJlbmNlKGUscil9LHIucHJvZ3JhbT1mdW5jdGlvbih0LGUscixuLGkpe3JldHVybiB1KHQpLmdldFByb2dyYW0oZSxyLG4saSl9O3ZhciBuPXQoIi4vR0xFcnJvciIpLGk9dCgiZ2wtZm9ybWF0LWNvbXBpbGVyLWVycm9yIiksYT1uZXcoInVuZGVmaW5lZCI9PXR5cGVvZiBXZWFrTWFwP3QoIndlYWttYXAtc2hpbSIpOldlYWtNYXApLG89MDtmdW5jdGlvbiBzKHQsZSxyLG4saSxhLG8pe3RoaXMuaWQ9dCx0aGlzLnNyYz1lLHRoaXMudHlwZT1yLHRoaXMuc2hhZGVyPW4sdGhpcy5jb3VudD1hLHRoaXMucHJvZ3JhbXM9W10sdGhpcy5jYWNoZT1vfWZ1bmN0aW9uIGwodCl7dGhpcy5nbD10LHRoaXMuc2hhZGVycz1be30se31dLHRoaXMucHJvZ3JhbXM9e319cy5wcm90b3R5cGUuZGlzcG9zZT1mdW5jdGlvbigpe2lmKDA9PS0tdGhpcy5jb3VudCl7Zm9yKHZhciB0PXRoaXMuY2FjaGUsZT10LmdsLHI9dGhpcy5wcm9ncmFtcyxuPTAsaT1yLmxlbmd0aDtuPGk7KytuKXt2YXIgYT10LnByb2dyYW1zW3Jbbl1dO2EmJihkZWxldGUgdC5wcm9ncmFtc1tuXSxlLmRlbGV0ZVByb2dyYW0oYSkpfWUuZGVsZXRlU2hhZGVyKHRoaXMuc2hhZGVyKSxkZWxldGUgdC5zaGFkZXJzW3RoaXMudHlwZT09PWUuRlJBR01FTlRfU0hBREVSfDBdW3RoaXMuc3JjXX19O3ZhciBjPWwucHJvdG90eXBlO2Z1bmN0aW9uIHUodCl7dmFyIGU9YS5nZXQodCk7cmV0dXJuIGV8fChlPW5ldyBsKHQpLGEuc2V0KHQsZSkpLGV9Yy5nZXRTaGFkZXJSZWZlcmVuY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmdsLGE9dGhpcy5zaGFkZXJzW3Q9PT1yLkZSQUdNRU5UX1NIQURFUnwwXSxsPWFbZV07aWYobCYmci5pc1NoYWRlcihsLnNoYWRlcikpbC5jb3VudCs9MTtlbHNle3ZhciBjPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10LmNyZWF0ZVNoYWRlcihlKTtpZih0LnNoYWRlclNvdXJjZShhLHIpLHQuY29tcGlsZVNoYWRlcihhKSwhdC5nZXRTaGFkZXJQYXJhbWV0ZXIoYSx0LkNPTVBJTEVfU1RBVFVTKSl7dmFyIG89dC5nZXRTaGFkZXJJbmZvTG9nKGEpO3RyeXt2YXIgcz1pKG8scixlKX1jYXRjaCh0KXt0aHJvdyBjb25zb2xlLndhcm4oIkZhaWxlZCB0byBmb3JtYXQgY29tcGlsZXIgZXJyb3I6ICIrdCksbmV3IG4obywiRXJyb3IgY29tcGlsaW5nIHNoYWRlcjpcbiIrbyl9dGhyb3cgbmV3IG4obyxzLnNob3J0LHMubG9uZyl9cmV0dXJuIGF9KHIsdCxlKTtsPWFbZV09bmV3IHMobysrLGUsdCxjLFtdLDEsdGhpcyl9cmV0dXJuIGx9LGMuZ2V0UHJvZ3JhbT1mdW5jdGlvbih0LGUscixpKXt2YXIgYT1bdC5pZCxlLmlkLHIuam9pbigiOiIpLGkuam9pbigiOiIpXS5qb2luKCJAIiksbz10aGlzLnByb2dyYW1zW2FdO3JldHVybiBvJiZ0aGlzLmdsLmlzUHJvZ3JhbShvKXx8KHRoaXMucHJvZ3JhbXNbYV09bz1mdW5jdGlvbih0LGUscixpLGEpe3ZhciBvPXQuY3JlYXRlUHJvZ3JhbSgpO3QuYXR0YWNoU2hhZGVyKG8sZSksdC5hdHRhY2hTaGFkZXIobyxyKTtmb3IodmFyIHM9MDtzPGkubGVuZ3RoOysrcyl0LmJpbmRBdHRyaWJMb2NhdGlvbihvLGFbc10saVtzXSk7aWYodC5saW5rUHJvZ3JhbShvKSwhdC5nZXRQcm9ncmFtUGFyYW1ldGVyKG8sdC5MSU5LX1NUQVRVUykpe3ZhciBsPXQuZ2V0UHJvZ3JhbUluZm9Mb2cobyk7dGhyb3cgbmV3IG4obCwiRXJyb3IgbGlua2luZyBwcm9ncmFtOiAiK2wpfXJldHVybiBvfSh0aGlzLmdsLHQuc2hhZGVyLGUuc2hhZGVyLHIsaSksdC5wcm9ncmFtcy5wdXNoKGEpLGUucHJvZ3JhbXMucHVzaChhKSksb319LHsiLi9HTEVycm9yIjozMjQsImdsLWZvcm1hdC1jb21waWxlci1lcnJvciI6MjY2LCJ3ZWFrbWFwLXNoaW0iOjYwMX1dLDMzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMucGxvdD10LHRoaXMuZW5hYmxlPVshMCwhMCwhMSwhMV0sdGhpcy53aWR0aD1bMSwxLDEsMV0sdGhpcy5jb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmNlbnRlcj1bMS8wLDEvMF19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IG4odCk7cmV0dXJuIHIudXBkYXRlKGUpLHQuYWRkT3ZlcmxheShyKSxyfTt2YXIgaT1uLnByb3RvdHlwZTtpLnVwZGF0ZT1mdW5jdGlvbih0KXt0PXR8fHt9LHRoaXMuZW5hYmxlPSh0LmVuYWJsZXx8WyEwLCEwLCExLCExXSkuc2xpY2UoKSx0aGlzLndpZHRoPSh0LndpZHRofHxbMSwxLDEsMV0pLnNsaWNlKCksdGhpcy5jb2xvcj0odC5jb2xvcnx8W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoKX0pKSx0aGlzLmNlbnRlcj0odC5jZW50ZXJ8fFsxLzAsMS8wXSkuc2xpY2UoKSx0aGlzLnBsb3Quc2V0T3ZlcmxheURpcnR5KCl9LGkuZHJhdz1mdW5jdGlvbigpe3ZhciB0PXRoaXMuZW5hYmxlLGU9dGhpcy53aWR0aCxyPXRoaXMuY29sb3Isbj10aGlzLmNlbnRlcixpPXRoaXMucGxvdCxhPWkubGluZSxvPWkuZGF0YUJveCxzPWkudmlld0JveDtpZihhLmJpbmQoKSxvWzBdPD1uWzBdJiZuWzBdPD1vWzJdJiZvWzFdPD1uWzFdJiZuWzFdPD1vWzNdKXt2YXIgbD1zWzBdKyhuWzBdLW9bMF0pLyhvWzJdLW9bMF0pKihzWzJdLXNbMF0pLGM9c1sxXSsoblsxXS1vWzFdKS8ob1szXS1vWzFdKSooc1szXS1zWzFdKTt0WzBdJiZhLmRyYXdMaW5lKGwsYyxzWzBdLGMsZVswXSxyWzBdKSx0WzFdJiZhLmRyYXdMaW5lKGwsYyxsLHNbMV0sZVsxXSxyWzFdKSx0WzJdJiZhLmRyYXdMaW5lKGwsYyxzWzJdLGMsZVsyXSxyWzJdKSx0WzNdJiZhLmRyYXdMaW5lKGwsYyxsLHNbM10sZVszXSxyWzNdKX19LGkuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMucGxvdC5yZW1vdmVPdmVybGF5KHRoaXMpfX0se31dLDMzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbHNsaWZ5IiksaT10KCJnbC1zaGFkZXIiKSxhPW4oWyJwcmVjaXNpb24gbWVkaXVtcCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmF0dHJpYnV0ZSB2ZWMzIHBvc2l0aW9uLCBjb2xvcjtcbmF0dHJpYnV0ZSBmbG9hdCB3ZWlnaHQ7XG5cbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gdmVjMyBjb29yZGluYXRlc1szXTtcbnVuaWZvcm0gdmVjNCBjb2xvcnNbM107XG51bmlmb3JtIHZlYzIgc2NyZWVuU2hhcGU7XG51bmlmb3JtIGZsb2F0IGxpbmVXaWR0aDtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIHZlcnRleFBvc2l0aW9uID0gbWl4KGNvb3JkaW5hdGVzWzBdLFxuICAgIG1peChjb29yZGluYXRlc1syXSwgY29vcmRpbmF0ZXNbMV0sIDAuNSAqIChwb3NpdGlvbiArIDEuMCkpLCBhYnMocG9zaXRpb24pKTtcblxuICB2ZWM0IGNsaXBQb3MgPSBwcm9qZWN0aW9uICogdmlldyAqIG1vZGVsICogdmVjNCh2ZXJ0ZXhQb3NpdGlvbiwgMS4wKTtcbiAgdmVjMiBjbGlwT2Zmc2V0ID0gKHByb2plY3Rpb24gKiB2aWV3ICogbW9kZWwgKiB2ZWM0KGNvbG9yLCAwLjApKS54eTtcbiAgdmVjMiBkZWx0YSA9IHdlaWdodCAqIGNsaXBPZmZzZXQgKiBzY3JlZW5TaGFwZTtcbiAgdmVjMiBsaW5lT2Zmc2V0ID0gbm9ybWFsaXplKHZlYzIoZGVsdGEueSwgLWRlbHRhLngpKSAvIHNjcmVlblNoYXBlO1xuXG4gIGdsX1Bvc2l0aW9uICAgPSB2ZWM0KGNsaXBQb3MueHkgKyBjbGlwUG9zLncgKiAwLjUgKiBsaW5lV2lkdGggKiBsaW5lT2Zmc2V0LCBjbGlwUG9zLnosIGNsaXBQb3Mudyk7XG4gIGZyYWdDb2xvciAgICAgPSBjb2xvci54ICogY29sb3JzWzBdICsgY29sb3IueSAqIGNvbG9yc1sxXSArIGNvbG9yLnogKiBjb2xvcnNbMl07XG59XG4iXSksbz1uKFsicHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGdsX0ZyYWdDb2xvciA9IGZyYWdDb2xvcjtcbn0iXSk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQsYSxvLG51bGwsW3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjMyJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjMyJ9LHtuYW1lOiJ3ZWlnaHQiLHR5cGU6ImZsb2F0In1dKX19LHsiZ2wtc2hhZGVyIjozMjMsZ2xzbGlmeTo0MjR9XSwzMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtYnVmZmVyIiksaT10KCJnbC12YW8iKSxhPXQoIi4vc2hhZGVycy9pbmRleCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPVtdO2Z1bmN0aW9uIG8odCxlLG4saSxhLG8pe3ZhciBzPVt0LGUsbiwwLDAsMCwxXTtzW2krM109MSxzW2ldPWEsci5wdXNoLmFwcGx5KHIscyksc1s2XT0tMSxyLnB1c2guYXBwbHkocixzKSxzW2ldPW8sci5wdXNoLmFwcGx5KHIscyksci5wdXNoLmFwcGx5KHIscyksc1s2XT0xLHIucHVzaC5hcHBseShyLHMpLHNbaV09YSxyLnB1c2guYXBwbHkocixzKX1vKDAsMCwwLDAsMCwxKSxvKDAsMCwwLDEsMCwxKSxvKDAsMCwwLDIsMCwxKSxvKDEsMCwwLDEsLTEsMSksbygxLDAsMCwyLC0xLDEpLG8oMCwxLDAsMCwtMSwxKSxvKDAsMSwwLDIsLTEsMSksbygwLDAsMSwwLC0xLDEpLG8oMCwwLDEsMSwtMSwxKTt2YXIgbD1uKHQsciksYz1pKHQsW3t0eXBlOnQuRkxPQVQsYnVmZmVyOmwsc2l6ZTozLG9mZnNldDowLHN0cmlkZToyOH0se3R5cGU6dC5GTE9BVCxidWZmZXI6bCxzaXplOjMsb2Zmc2V0OjEyLHN0cmlkZToyOH0se3R5cGU6dC5GTE9BVCxidWZmZXI6bCxzaXplOjEsb2Zmc2V0OjI0LHN0cmlkZToyOH1dKSx1PWEodCk7dS5hdHRyaWJ1dGVzLnBvc2l0aW9uLmxvY2F0aW9uPTAsdS5hdHRyaWJ1dGVzLmNvbG9yLmxvY2F0aW9uPTEsdS5hdHRyaWJ1dGVzLndlaWdodC5sb2NhdGlvbj0yO3ZhciBmPW5ldyBzKHQsbCxjLHUpO3JldHVybiBmLnVwZGF0ZShlKSxmfTt2YXIgbz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV07ZnVuY3Rpb24gcyh0LGUscixuKXt0aGlzLmdsPXQsdGhpcy5idWZmZXI9ZSx0aGlzLnZhbz1yLHRoaXMuc2hhZGVyPW4sdGhpcy5waXhlbFJhdGlvPTEsdGhpcy5ib3VuZHM9W1stMWUzLC0xZTMsLTFlM10sWzFlMywxZTMsMWUzXV0sdGhpcy5wb3NpdGlvbj1bMCwwLDBdLHRoaXMubGluZVdpZHRoPVsyLDIsMl0sdGhpcy5jb2xvcnM9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmVuYWJsZWQ9WyEwLCEwLCEwXSx0aGlzLmRyYXdTaWRlcz1bITAsITAsITBdLHRoaXMuYXhlcz1udWxsfXZhciBsPXMucHJvdG90eXBlLGM9WzAsMCwwXSx1PVswLDAsMF0sZj1bMCwwXTtsLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sbC5kcmF3VHJhbnNwYXJlbnQ9ZnVuY3Rpb24odCl7fSxsLmRyYXc9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nbCxyPXRoaXMudmFvLG49dGhpcy5zaGFkZXI7ci5iaW5kKCksbi5iaW5kKCk7dmFyIGksYT10Lm1vZGVsfHxvLHM9dC52aWV3fHxvLGw9dC5wcm9qZWN0aW9ufHxvO3RoaXMuYXhlcyYmKGk9dGhpcy5heGVzLmxhc3RDdWJlUHJvcHMuYXhpcyk7Zm9yKHZhciBoPWMscD11LGQ9MDtkPDM7KytkKWkmJmlbZF08MD8oaFtkXT10aGlzLmJvdW5kc1swXVtkXSxwW2RdPXRoaXMuYm91bmRzWzFdW2RdKTooaFtkXT10aGlzLmJvdW5kc1sxXVtkXSxwW2RdPXRoaXMuYm91bmRzWzBdW2RdKTtmWzBdPWUuZHJhd2luZ0J1ZmZlcldpZHRoLGZbMV09ZS5kcmF3aW5nQnVmZmVySGVpZ2h0LG4udW5pZm9ybXMubW9kZWw9YSxuLnVuaWZvcm1zLnZpZXc9cyxuLnVuaWZvcm1zLnByb2plY3Rpb249bCxuLnVuaWZvcm1zLmNvb3JkaW5hdGVzPVt0aGlzLnBvc2l0aW9uLGgscF0sbi51bmlmb3Jtcy5jb2xvcnM9dGhpcy5jb2xvcnMsbi51bmlmb3Jtcy5zY3JlZW5TaGFwZT1mO2ZvcihkPTA7ZDwzOysrZCluLnVuaWZvcm1zLmxpbmVXaWR0aD10aGlzLmxpbmVXaWR0aFtkXSp0aGlzLnBpeGVsUmF0aW8sdGhpcy5lbmFibGVkW2RdJiYoci5kcmF3KGUuVFJJQU5HTEVTLDYsNipkKSx0aGlzLmRyYXdTaWRlc1tkXSYmci5kcmF3KGUuVFJJQU5HTEVTLDEyLDE4KzEyKmQpKTtyLnVuYmluZCgpfSxsLnVwZGF0ZT1mdW5jdGlvbih0KXt0JiYoImJvdW5kcyJpbiB0JiYodGhpcy5ib3VuZHM9dC5ib3VuZHMpLCJwb3NpdGlvbiJpbiB0JiYodGhpcy5wb3NpdGlvbj10LnBvc2l0aW9uKSwibGluZVdpZHRoImluIHQmJih0aGlzLmxpbmVXaWR0aD10LmxpbmVXaWR0aCksImNvbG9ycyJpbiB0JiYodGhpcy5jb2xvcnM9dC5jb2xvcnMpLCJlbmFibGVkImluIHQmJih0aGlzLmVuYWJsZWQ9dC5lbmFibGVkKSwiZHJhd1NpZGVzImluIHQmJih0aGlzLmRyYXdTaWRlcz10LmRyYXdTaWRlcykpfSxsLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnZhby5kaXNwb3NlKCksdGhpcy5idWZmZXIuZGlzcG9zZSgpLHRoaXMuc2hhZGVyLmRpc3Bvc2UoKX19LHsiLi9zaGFkZXJzL2luZGV4IjozMzEsImdsLWJ1ZmZlciI6MjU3LCJnbC12YW8iOjM0M31dLDMzMzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsc2xpZnkiKSxpPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZlYzMgZ2V0T3J0aG9nb25hbFZlY3Rvcih2ZWMzIHYpIHtcbiAgLy8gUmV0dXJuIHVwLXZlY3RvciBmb3Igb25seS16IHZlY3Rvci5cbiAgLy8gUmV0dXJuIGF4ICsgYnkgKyBjeiA9IDAsIGEgcG9pbnQgdGhhdCBsaWVzIG9uIHRoZSBwbGFuZSB0aGF0IGhhcyB2IGFzIGEgbm9ybWFsIGFuZCB0aGF0IGlzbid0ICgwLDAsMCkuXG4gIC8vIEZyb20gdGhlIGFib3ZlIGlmLXN0YXRlbWVudCB3ZSBoYXZlIHx8YXx8ID4gMCAgVSAgfHxifHwgPiAwLlxuICAvLyBBc3NpZ24geiA9IDAsIHggPSAtYiwgeSA9IGE6XG4gIC8vIGEqLWIgKyBiKmEgKyBjKjAgPSAtYmEgKyBiYSArIDAgPSAwXG4gIGlmICh2Lngqdi54ID4gdi56KnYueiB8fCB2Lnkqdi55ID4gdi56KnYueikge1xuICAgIHJldHVybiBub3JtYWxpemUodmVjMygtdi55LCB2LngsIDAuMCkpO1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBub3JtYWxpemUodmVjMygwLjAsIHYueiwgLXYueSkpO1xuICB9XG59XG5cbi8vIENhbGN1bGF0ZSB0aGUgdHViZSB2ZXJ0ZXggYW5kIG5vcm1hbCBhdCB0aGUgZ2l2ZW4gaW5kZXguXG4vL1xuLy8gVGhlIHJldHVybmVkIHZlcnRleCBpcyBmb3IgYSB0dWJlIHJpbmcgd2l0aCBpdHMgY2VudGVyIGF0IG9yaWdpbiwgcmFkaXVzIG9mIGxlbmd0aChkKSwgcG9pbnRpbmcgaW4gdGhlIGRpcmVjdGlvbiBvZiBkLlxuLy9cbi8vIEVhY2ggdHViZSBzZWdtZW50IGlzIG1hZGUgdXAgb2YgYSByaW5nIG9mIHZlcnRpY2VzLlxuLy8gVGhlc2UgdmVydGljZXMgYXJlIHVzZWQgdG8gbWFrZSB1cCB0aGUgdHJpYW5nbGVzIG9mIHRoZSB0dWJlIGJ5IGNvbm5lY3RpbmcgdGhlbSB0b2dldGhlciBpbiB0aGUgdmVydGV4IGFycmF5LlxuLy8gVGhlIGluZGV4ZXMgb2YgdHViZSBzZWdtZW50cyBydW4gZnJvbSAwIHRvIDguXG4vL1xudmVjMyBnZXRUdWJlUG9zaXRpb24odmVjMyBkLCBmbG9hdCBpbmRleCwgb3V0IHZlYzMgbm9ybWFsKSB7XG4gIGZsb2F0IHNlZ21lbnRDb3VudCA9IDguMDtcblxuICBmbG9hdCBhbmdsZSA9IDIuMCAqIDMuMTQxNTkgKiAoaW5kZXggLyBzZWdtZW50Q291bnQpO1xuXG4gIHZlYzMgdSA9IGdldE9ydGhvZ29uYWxWZWN0b3IoZCk7XG4gIHZlYzMgdiA9IG5vcm1hbGl6ZShjcm9zcyh1LCBkKSk7XG5cbiAgdmVjMyB4ID0gdSAqIGNvcyhhbmdsZSkgKiBsZW5ndGgoZCk7XG4gIHZlYzMgeSA9IHYgKiBzaW4oYW5nbGUpICogbGVuZ3RoKGQpO1xuICB2ZWMzIHYzID0geCArIHk7XG5cbiAgbm9ybWFsID0gbm9ybWFsaXplKHYzKTtcblxuICByZXR1cm4gdjM7XG59XG5cbmF0dHJpYnV0ZSB2ZWM0IHZlY3RvcjtcbmF0dHJpYnV0ZSB2ZWM0IGNvbG9yLCBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWMyIHV2O1xuXG51bmlmb3JtIGZsb2F0IHZlY3RvclNjYWxlLCB0dWJlU2NhbGU7XG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb24sIGludmVyc2VNb2RlbDtcbnVuaWZvcm0gdmVjMyBleWVQb3NpdGlvbiwgbGlnaHRQb3NpdGlvbjtcblxudmFyeWluZyB2ZWMzIGZfbm9ybWFsLCBmX2xpZ2h0RGlyZWN0aW9uLCBmX2V5ZURpcmVjdGlvbiwgZl9kYXRhLCBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfY29sb3I7XG52YXJ5aW5nIHZlYzIgZl91djtcblxudm9pZCBtYWluKCkge1xuICAvLyBTY2FsZSB0aGUgdmVjdG9yIG1hZ25pdHVkZSB0byBzdGF5IGNvbnN0YW50IHdpdGhcbiAgLy8gbW9kZWwgJiB2aWV3IGNoYW5nZXMuXG4gIHZlYzMgbm9ybWFsO1xuICB2ZWMzIFhZWiA9IGdldFR1YmVQb3NpdGlvbihtYXQzKG1vZGVsKSAqICh0dWJlU2NhbGUgKiB2ZWN0b3IudyAqIG5vcm1hbGl6ZSh2ZWN0b3IueHl6KSksIHBvc2l0aW9uLncsIG5vcm1hbCk7XG4gIHZlYzQgdHViZVBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHBvc2l0aW9uLnh5eiwgMS4wKSArIHZlYzQoWFlaLCAwLjApO1xuXG4gIC8vTGlnaHRpbmcgZ2VvbWV0cnkgcGFyYW1ldGVyc1xuICB2ZWM0IGNhbWVyYUNvb3JkaW5hdGUgPSB2aWV3ICogdHViZVBvc2l0aW9uO1xuICBjYW1lcmFDb29yZGluYXRlLnh5eiAvPSBjYW1lcmFDb29yZGluYXRlLnc7XG4gIGZfbGlnaHREaXJlY3Rpb24gPSBsaWdodFBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIGZfZXllRGlyZWN0aW9uICAgPSBleWVQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBmX25vcm1hbCA9IG5vcm1hbGl6ZSgodmVjNChub3JtYWwsIDAuMCkgKiBpbnZlcnNlTW9kZWwpLnh5eik7XG5cbiAgLy8gdmVjNCBtX3Bvc2l0aW9uICA9IG1vZGVsICogdmVjNCh0dWJlUG9zaXRpb24sIDEuMCk7XG4gIHZlYzQgdF9wb3NpdGlvbiAgPSB2aWV3ICogdHViZVBvc2l0aW9uO1xuICBnbF9Qb3NpdGlvbiAgICAgID0gcHJvamVjdGlvbiAqIHRfcG9zaXRpb247XG5cbiAgZl9jb2xvciAgICAgICAgICA9IGNvbG9yO1xuICBmX2RhdGEgICAgICAgICAgID0gdHViZVBvc2l0aW9uLnh5ejtcbiAgZl9wb3NpdGlvbiAgICAgICA9IHBvc2l0aW9uLnh5ejtcbiAgZl91diAgICAgICAgICAgICA9IHV2O1xufVxuIl0pLGE9bihbIiNleHRlbnNpb24gR0xfT0VTX3N0YW5kYXJkX2Rlcml2YXRpdmVzIDogZW5hYmxlXG5cbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbmZsb2F0IGJlY2ttYW5uRGlzdHJpYnV0aW9uKGZsb2F0IHgsIGZsb2F0IHJvdWdobmVzcykge1xuICBmbG9hdCBOZG90SCA9IG1heCh4LCAwLjAwMDEpO1xuICBmbG9hdCBjb3MyQWxwaGEgPSBOZG90SCAqIE5kb3RIO1xuICBmbG9hdCB0YW4yQWxwaGEgPSAoY29zMkFscGhhIC0gMS4wKSAvIGNvczJBbHBoYTtcbiAgZmxvYXQgcm91Z2huZXNzMiA9IHJvdWdobmVzcyAqIHJvdWdobmVzcztcbiAgZmxvYXQgZGVub20gPSAzLjE0MTU5MjY1MzU4OTc5MyAqIHJvdWdobmVzczIgKiBjb3MyQWxwaGEgKiBjb3MyQWxwaGE7XG4gIHJldHVybiBleHAodGFuMkFscGhhIC8gcm91Z2huZXNzMikgLyBkZW5vbTtcbn1cblxuZmxvYXQgY29va1RvcnJhbmNlU3BlY3VsYXIoXG4gIHZlYzMgbGlnaHREaXJlY3Rpb24sXG4gIHZlYzMgdmlld0RpcmVjdGlvbixcbiAgdmVjMyBzdXJmYWNlTm9ybWFsLFxuICBmbG9hdCByb3VnaG5lc3MsXG4gIGZsb2F0IGZyZXNuZWwpIHtcblxuICBmbG9hdCBWZG90TiA9IG1heChkb3Qodmlld0RpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbCksIDAuMCk7XG4gIGZsb2F0IExkb3ROID0gbWF4KGRvdChsaWdodERpcmVjdGlvbiwgc3VyZmFjZU5vcm1hbCksIDAuMCk7XG5cbiAgLy9IYWxmIGFuZ2xlIHZlY3RvclxuICB2ZWMzIEggPSBub3JtYWxpemUobGlnaHREaXJlY3Rpb24gKyB2aWV3RGlyZWN0aW9uKTtcblxuICAvL0dlb21ldHJpYyB0ZXJtXG4gIGZsb2F0IE5kb3RIID0gbWF4KGRvdChzdXJmYWNlTm9ybWFsLCBIKSwgMC4wKTtcbiAgZmxvYXQgVmRvdEggPSBtYXgoZG90KHZpZXdEaXJlY3Rpb24sIEgpLCAwLjAwMDAwMSk7XG4gIGZsb2F0IExkb3RIID0gbWF4KGRvdChsaWdodERpcmVjdGlvbiwgSCksIDAuMDAwMDAxKTtcbiAgZmxvYXQgRzEgPSAoMi4wICogTmRvdEggKiBWZG90TikgLyBWZG90SDtcbiAgZmxvYXQgRzIgPSAoMi4wICogTmRvdEggKiBMZG90TikgLyBMZG90SDtcbiAgZmxvYXQgRyA9IG1pbigxLjAsIG1pbihHMSwgRzIpKTtcbiAgXG4gIC8vRGlzdHJpYnV0aW9uIHRlcm1cbiAgZmxvYXQgRCA9IGJlY2ttYW5uRGlzdHJpYnV0aW9uKE5kb3RILCByb3VnaG5lc3MpO1xuXG4gIC8vRnJlc25lbCB0ZXJtXG4gIGZsb2F0IEYgPSBwb3coMS4wIC0gVmRvdE4sIGZyZXNuZWwpO1xuXG4gIC8vTXVsdGlwbHkgdGVybXMgYW5kIGRvbmVcbiAgcmV0dXJuICBHICogRiAqIEQgLyBtYXgoMy4xNDE1OTI2NSAqIFZkb3ROLCAwLjAwMDAwMSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzLCBmcmVzbmVsLCBrYW1iaWVudCwga2RpZmZ1c2UsIGtzcGVjdWxhciwgb3BhY2l0eTtcbnVuaWZvcm0gc2FtcGxlcjJEIHRleHR1cmU7XG5cbnZhcnlpbmcgdmVjMyBmX25vcm1hbCwgZl9saWdodERpcmVjdGlvbiwgZl9leWVEaXJlY3Rpb24sIGZfZGF0YSwgZl9wb3NpdGlvbjtcbnZhcnlpbmcgdmVjNCBmX2NvbG9yO1xudmFyeWluZyB2ZWMyIGZfdXY7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgZl9wb3NpdGlvbikpIGRpc2NhcmQ7XG4gIHZlYzMgTiA9IG5vcm1hbGl6ZShmX25vcm1hbCk7XG4gIHZlYzMgTCA9IG5vcm1hbGl6ZShmX2xpZ2h0RGlyZWN0aW9uKTtcbiAgdmVjMyBWID0gbm9ybWFsaXplKGZfZXllRGlyZWN0aW9uKTtcblxuICBpZihnbF9Gcm9udEZhY2luZykge1xuICAgIE4gPSAtTjtcbiAgfVxuXG4gIGZsb2F0IHNwZWN1bGFyID0gbWluKDEuMCwgbWF4KDAuMCwgY29va1RvcnJhbmNlU3BlY3VsYXIoTCwgViwgTiwgcm91Z2huZXNzLCBmcmVzbmVsKSkpO1xuICBmbG9hdCBkaWZmdXNlICA9IG1pbihrYW1iaWVudCArIGtkaWZmdXNlICogbWF4KGRvdChOLCBMKSwgMC4wKSwgMS4wKTtcblxuICB2ZWM0IHN1cmZhY2VDb2xvciA9IGZfY29sb3IgKiB0ZXh0dXJlMkQodGV4dHVyZSwgZl91dik7XG4gIHZlYzQgbGl0Q29sb3IgPSBzdXJmYWNlQ29sb3IuYSAqIHZlYzQoZGlmZnVzZSAqIHN1cmZhY2VDb2xvci5yZ2IgKyBrc3BlY3VsYXIgKiB2ZWMzKDEsMSwxKSAqIHNwZWN1bGFyLCAgMS4wKTtcblxuICBnbF9GcmFnQ29sb3IgPSBsaXRDb2xvciAqIG9wYWNpdHk7XG59XG4iXSksbz1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG52ZWMzIGdldE9ydGhvZ29uYWxWZWN0b3IodmVjMyB2KSB7XG4gIC8vIFJldHVybiB1cC12ZWN0b3IgZm9yIG9ubHkteiB2ZWN0b3IuXG4gIC8vIFJldHVybiBheCArIGJ5ICsgY3ogPSAwLCBhIHBvaW50IHRoYXQgbGllcyBvbiB0aGUgcGxhbmUgdGhhdCBoYXMgdiBhcyBhIG5vcm1hbCBhbmQgdGhhdCBpc24ndCAoMCwwLDApLlxuICAvLyBGcm9tIHRoZSBhYm92ZSBpZi1zdGF0ZW1lbnQgd2UgaGF2ZSB8fGF8fCA+IDAgIFUgIHx8Ynx8ID4gMC5cbiAgLy8gQXNzaWduIHogPSAwLCB4ID0gLWIsIHkgPSBhOlxuICAvLyBhKi1iICsgYiphICsgYyowID0gLWJhICsgYmEgKyAwID0gMFxuICBpZiAodi54KnYueCA+IHYueip2LnogfHwgdi55KnYueSA+IHYueip2LnopIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoLXYueSwgdi54LCAwLjApKTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbm9ybWFsaXplKHZlYzMoMC4wLCB2LnosIC12LnkpKTtcbiAgfVxufVxuXG4vLyBDYWxjdWxhdGUgdGhlIHR1YmUgdmVydGV4IGFuZCBub3JtYWwgYXQgdGhlIGdpdmVuIGluZGV4LlxuLy9cbi8vIFRoZSByZXR1cm5lZCB2ZXJ0ZXggaXMgZm9yIGEgdHViZSByaW5nIHdpdGggaXRzIGNlbnRlciBhdCBvcmlnaW4sIHJhZGl1cyBvZiBsZW5ndGgoZCksIHBvaW50aW5nIGluIHRoZSBkaXJlY3Rpb24gb2YgZC5cbi8vXG4vLyBFYWNoIHR1YmUgc2VnbWVudCBpcyBtYWRlIHVwIG9mIGEgcmluZyBvZiB2ZXJ0aWNlcy5cbi8vIFRoZXNlIHZlcnRpY2VzIGFyZSB1c2VkIHRvIG1ha2UgdXAgdGhlIHRyaWFuZ2xlcyBvZiB0aGUgdHViZSBieSBjb25uZWN0aW5nIHRoZW0gdG9nZXRoZXIgaW4gdGhlIHZlcnRleCBhcnJheS5cbi8vIFRoZSBpbmRleGVzIG9mIHR1YmUgc2VnbWVudHMgcnVuIGZyb20gMCB0byA4LlxuLy9cbnZlYzMgZ2V0VHViZVBvc2l0aW9uKHZlYzMgZCwgZmxvYXQgaW5kZXgsIG91dCB2ZWMzIG5vcm1hbCkge1xuICBmbG9hdCBzZWdtZW50Q291bnQgPSA4LjA7XG5cbiAgZmxvYXQgYW5nbGUgPSAyLjAgKiAzLjE0MTU5ICogKGluZGV4IC8gc2VnbWVudENvdW50KTtcblxuICB2ZWMzIHUgPSBnZXRPcnRob2dvbmFsVmVjdG9yKGQpO1xuICB2ZWMzIHYgPSBub3JtYWxpemUoY3Jvc3ModSwgZCkpO1xuXG4gIHZlYzMgeCA9IHUgKiBjb3MoYW5nbGUpICogbGVuZ3RoKGQpO1xuICB2ZWMzIHkgPSB2ICogc2luKGFuZ2xlKSAqIGxlbmd0aChkKTtcbiAgdmVjMyB2MyA9IHggKyB5O1xuXG4gIG5vcm1hbCA9IG5vcm1hbGl6ZSh2Myk7XG5cbiAgcmV0dXJuIHYzO1xufVxuXG5hdHRyaWJ1dGUgdmVjNCB2ZWN0b3I7XG5hdHRyaWJ1dGUgdmVjNCBwb3NpdGlvbjtcbmF0dHJpYnV0ZSB2ZWM0IGlkO1xuXG51bmlmb3JtIG1hdDQgbW9kZWwsIHZpZXcsIHByb2plY3Rpb247XG51bmlmb3JtIGZsb2F0IHR1YmVTY2FsZTtcblxudmFyeWluZyB2ZWMzIGZfcG9zaXRpb247XG52YXJ5aW5nIHZlYzQgZl9pZDtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIG5vcm1hbDtcbiAgdmVjMyBYWVogPSBnZXRUdWJlUG9zaXRpb24obWF0Myhtb2RlbCkgKiAodHViZVNjYWxlICogdmVjdG9yLncgKiBub3JtYWxpemUodmVjdG9yLnh5eikpLCBwb3NpdGlvbi53LCBub3JtYWwpO1xuICB2ZWM0IHR1YmVQb3NpdGlvbiA9IG1vZGVsICogdmVjNChwb3NpdGlvbi54eXosIDEuMCkgKyB2ZWM0KFhZWiwgMC4wKTtcblxuICBnbF9Qb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogdHViZVBvc2l0aW9uO1xuICBmX2lkICAgICAgICA9IGlkO1xuICBmX3Bvc2l0aW9uICA9IHBvc2l0aW9uLnh5ejtcbn1cbiJdKSxzPW4oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMzICBjbGlwQm91bmRzWzJdO1xudW5pZm9ybSBmbG9hdCBwaWNrSWQ7XG5cbnZhcnlpbmcgdmVjMyBmX3Bvc2l0aW9uO1xudmFyeWluZyB2ZWM0IGZfaWQ7XG5cbnZvaWQgbWFpbigpIHtcbiAgaWYgKG91dE9mUmFuZ2UoY2xpcEJvdW5kc1swXSwgY2xpcEJvdW5kc1sxXSwgZl9wb3NpdGlvbikpIGRpc2NhcmQ7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gdmVjNChwaWNrSWQsIGZfaWQueHl6KTtcbn0iXSk7ci5tZXNoU2hhZGVyPXt2ZXJ0ZXg6aSxmcmFnbWVudDphLGF0dHJpYnV0ZXM6W3tuYW1lOiJwb3NpdGlvbiIsdHlwZToidmVjNCJ9LHtuYW1lOiJjb2xvciIsdHlwZToidmVjNCJ9LHtuYW1lOiJ1diIsdHlwZToidmVjMiJ9LHtuYW1lOiJ2ZWN0b3IiLHR5cGU6InZlYzQifV19LHIucGlja1NoYWRlcj17dmVydGV4Om8sZnJhZ21lbnQ6cyxhdHRyaWJ1dGVzOlt7bmFtZToicG9zaXRpb24iLHR5cGU6InZlYzQifSx7bmFtZToiaWQiLHR5cGU6InZlYzQifSx7bmFtZToidmVjdG9yIix0eXBlOiJ2ZWM0In1dfX0se2dsc2xpZnk6NDI0fV0sMzM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLXZlYzMiKSxpPXQoImdsLXZlYzQiKSxhPVsieHl6IiwieHp5IiwieXh6IiwieXp4Iiwienh5Iiwienl4Il0sbz1mdW5jdGlvbih0LGUscixhKXtmb3IodmFyIG89MCxzPTA7czx0Lmxlbmd0aDtzKyspZm9yKHZhciBsPXRbc10udmVsb2NpdGllcyxjPTA7YzxsLmxlbmd0aDtjKyspbz1NYXRoLm1heChvLG4ubGVuZ3RoKGxbY10pKTt2YXIgdT10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLGEpe2Zvcih2YXIgbz10LnBvaW50cyxzPXQudmVsb2NpdGllcyxsPXQuZGl2ZXJnZW5jZXMsYz1bXSx1PVtdLGY9W10saD1bXSxwPVtdLGQ9W10sbT0wLGc9MCx2PWkuY3JlYXRlKCkseT1pLmNyZWF0ZSgpLHg9MDt4PG8ubGVuZ3RoO3grKyl7dmFyIGI9b1t4XSxfPXNbeF0sdz1sW3hdOzA9PT1lJiYodz0uMDUqciksZz1uLmxlbmd0aChfKS9hLHY9aS5jcmVhdGUoKSxuLmNvcHkodixfKSx2WzNdPXc7Zm9yKHZhciBUPTA7VDw4O1QrKylwW1RdPVtiWzBdLGJbMV0sYlsyXSxUXTtpZihoLmxlbmd0aD4wKWZvcihUPTA7VDw4O1QrKyl7dmFyIGs9KFQrMSklODtjLnB1c2goaFtUXSxwW1RdLHBba10scFtrXSxoW2tdLGhbVF0pLGYucHVzaCh5LHYsdix2LHkseSksZC5wdXNoKG0sZyxnLGcsbSxtKTt2YXIgQT1jLmxlbmd0aDt1LnB1c2goW0EtNixBLTUsQS00XSxbQS0zLEEtMixBLTFdKX12YXIgTT1oO2g9cCxwPU07dmFyIFM9eTt5PXYsdj1TO3ZhciBFPW07bT1nLGc9RX1yZXR1cm57cG9zaXRpb25zOmMsY2VsbHM6dSx2ZWN0b3JzOmYsdmVydGV4SW50ZW5zaXR5OmR9fSh0LHIsYSxvKX0pKSxmPVtdLGg9W10scD1bXSxkPVtdO2ZvcihzPTA7czx1Lmxlbmd0aDtzKyspe3ZhciBtPXVbc10sZz1mLmxlbmd0aDtmPWYuY29uY2F0KG0ucG9zaXRpb25zKSxwPXAuY29uY2F0KG0udmVjdG9ycyksZD1kLmNvbmNhdChtLnZlcnRleEludGVuc2l0eSk7Zm9yKGM9MDtjPG0uY2VsbHMubGVuZ3RoO2MrKyl7dmFyIHY9bS5jZWxsc1tjXSx5PVtdO2gucHVzaCh5KTtmb3IodmFyIHg9MDt4PHYubGVuZ3RoO3grKyl5LnB1c2godlt4XStnKX19cmV0dXJue3Bvc2l0aW9uczpmLGNlbGxzOmgsdmVjdG9yczpwLHZlcnRleEludGVuc2l0eTpkLGNvbG9ybWFwOmV9fSxzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10Lmxlbmd0aDtmb3Iocj0wO3I8bjtyKyspe3ZhciBpPXRbcl07aWYoaT09PWUpcmV0dXJuIHI7aWYoaT5lKXJldHVybiByLTF9cmV0dXJuIHJ9LGw9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0PGU/ZTp0PnI/cjp0fSxjPWZ1bmN0aW9uKHQpe3ZhciBlPTEvMDt0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKTtmb3IodmFyIHI9dC5sZW5ndGgsbj0xO248cjtuKyspe3ZhciBpPU1hdGguYWJzKHRbbl0tdFtuLTFdKTtpPGUmJihlPWkpfXJldHVybiBlfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnN0YXJ0aW5nUG9zaXRpb25zLGk9dC5tYXhMZW5ndGh8fDFlMyx1PXQudHViZVNpemV8fDEsZj10LmFic29sdXRlVHViZVNpemUsaD10LmdyaWRGaWxsfHwiK3greSt6IixwPXt9Oy0xIT09aC5pbmRleE9mKCIteCIpJiYocC5yZXZlcnNlZFg9ITApLC0xIT09aC5pbmRleE9mKCIteSIpJiYocC5yZXZlcnNlZFk9ITApLC0xIT09aC5pbmRleE9mKCIteiIpJiYocC5yZXZlcnNlZFo9ITApLHAuZmlsbGVkPWEuaW5kZXhPZihoLnJlcGxhY2UoLy0vZywiIikucmVwbGFjZSgvXCsvZywiIikpO3ZhciBkPXQuZ2V0VmVsb2NpdHl8fGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbih0LGUscil7dmFyIGk9ZS52ZWN0b3JzLGE9ZS5tZXNoZ3JpZCxvPXRbMF0sYz10WzFdLHU9dFsyXSxmPWFbMF0ubGVuZ3RoLGg9YVsxXS5sZW5ndGgscD1hWzJdLmxlbmd0aCxkPXMoYVswXSxvKSxtPXMoYVsxXSxjKSxnPXMoYVsyXSx1KSx2PWQrMSx5PW0rMSx4PWcrMTtpZihkPWwoZCwwLGYtMSksdj1sKHYsMCxmLTEpLG09bChtLDAsaC0xKSx5PWwoeSwwLGgtMSksZz1sKGcsMCxwLTEpLHg9bCh4LDAscC0xKSxkPDB8fG08MHx8ZzwwfHx2PmYtMXx8eT5oLTF8fHg+cC0xKXJldHVybiBuLmNyZWF0ZSgpO3ZhciBiLF8sdyxULGssQSxNPWFbMF1bZF0sUz1hWzBdW3ZdLEU9YVsxXVttXSxMPWFbMV1beV0sQz1hWzJdW2ddLFA9KG8tTSkvKFMtTSksST0oYy1FKS8oTC1FKSxPPSh1LUMpLyhhWzJdW3hdLUMpO3N3aXRjaChpc0Zpbml0ZShQKXx8KFA9LjUpLGlzRmluaXRlKEkpfHwoST0uNSksaXNGaW5pdGUoTyl8fChPPS41KSxyLnJldmVyc2VkWCYmKGQ9Zi0xLWQsdj1mLTEtdiksci5yZXZlcnNlZFkmJihtPWgtMS1tLHk9aC0xLXkpLHIucmV2ZXJzZWRaJiYoZz1wLTEtZyx4PXAtMS14KSxyLmZpbGxlZCl7Y2FzZSA1Oms9ZyxBPXgsdz1tKnAsVD15KnAsYj1kKnAqaCxfPXYqcCpoO2JyZWFrO2Nhc2UgNDprPWcsQT14LGI9ZCpwLF89dipwLHc9bSpwKmYsVD15KnAqZjticmVhaztjYXNlIDM6dz1tLFQ9eSxrPWcqaCxBPXgqaCxiPWQqaCpwLF89dipoKnA7YnJlYWs7Y2FzZSAyOnc9bSxUPXksYj1kKmgsXz12Kmgsaz1nKmgqZixBPXgqaCpmO2JyZWFrO2Nhc2UgMTpiPWQsXz12LGs9ZypmLEE9eCpmLHc9bSpmKnAsVD15KmYqcDticmVhaztkZWZhdWx0OmI9ZCxfPXYsdz1tKmYsVD15KmYsaz1nKmYqaCxBPXgqZipofXZhciB6PWlbYit3K2tdLEQ9aVtiK3crQV0sUj1pW2IrVCtrXSxGPWlbYitUK0FdLEI9aVtfK3cra10sTj1pW18rdytBXSxqPWlbXytUK2tdLFU9aVtfK1QrQV0sVj1uLmNyZWF0ZSgpLEg9bi5jcmVhdGUoKSxxPW4uY3JlYXRlKCksRz1uLmNyZWF0ZSgpO24ubGVycChWLHosQixQKSxuLmxlcnAoSCxELE4sUCksbi5sZXJwKHEsUixqLFApLG4ubGVycChHLEYsVSxQKTt2YXIgWT1uLmNyZWF0ZSgpLFc9bi5jcmVhdGUoKTtuLmxlcnAoWSxWLHEsSSksbi5sZXJwKFcsSCxHLEkpO3ZhciBYPW4uY3JlYXRlKCk7cmV0dXJuIG4ubGVycChYLFksVyxPKSxYfShlLHQscCl9LG09dC5nZXREaXZlcmdlbmNlfHxmdW5jdGlvbih0LGUpe3ZhciByPW4uY3JlYXRlKCksaT0xZS00O24uYWRkKHIsdCxbaSwwLDBdKTt2YXIgYT1kKHIpO24uc3VidHJhY3QoYSxhLGUpLG4uc2NhbGUoYSxhLDEvaSksbi5hZGQocix0LFswLGksMF0pO3ZhciBvPWQocik7bi5zdWJ0cmFjdChvLG8sZSksbi5zY2FsZShvLG8sMS9pKSxuLmFkZChyLHQsWzAsMCxpXSk7dmFyIHM9ZChyKTtyZXR1cm4gbi5zdWJ0cmFjdChzLHMsZSksbi5zY2FsZShzLHMsMS9pKSxuLmFkZChyLGEsbyksbi5hZGQocixyLHMpLHJ9LGc9W10sdj1lWzBdWzBdLHk9ZVswXVsxXSx4PWVbMF1bMl0sYj1lWzFdWzBdLF89ZVsxXVsxXSx3PWVbMV1bMl0sVD1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl07cmV0dXJuIShlPHZ8fGU+Ynx8cjx5fHxyPl98fG48eHx8bj53KX0saz0xMCpuLmRpc3RhbmNlKGVbMF0sZVsxXSkvaSxBPWsqayxNPTEsUz0wLEU9ci5sZW5ndGg7RT4xJiYoTT1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj1bXSxuPVtdLGk9e30sYT17fSxvPXt9LHM9dC5sZW5ndGgsbD0wO2w8cztsKyspe3ZhciB1PXRbbF0sZj11WzBdLGg9dVsxXSxwPXVbMl07aVtmXXx8KGUucHVzaChmKSxpW2ZdPSEwKSxhW2hdfHwoci5wdXNoKGgpLGFbaF09ITApLG9bcF18fChuLnB1c2gocCksb1twXT0hMCl9dmFyIGQ9YyhlKSxtPWMociksZz1jKG4pLHY9TWF0aC5taW4oZCxtLGcpO3JldHVybiBpc0Zpbml0ZSh2KT92OjF9KHIpKTtmb3IodmFyIEw9MDtMPEU7TCsrKXt2YXIgQz1uLmNyZWF0ZSgpO24uY29weShDLHJbTF0pO3ZhciBQPVtDXSxJPVtdLE89ZChDKSx6PUM7SS5wdXNoKE8pO3ZhciBEPVtdLFI9bShDLE8pLEY9bi5sZW5ndGgoUik7aXNGaW5pdGUoRikmJkY+UyYmKFM9RiksRC5wdXNoKEYpLGcucHVzaCh7cG9pbnRzOlAsdmVsb2NpdGllczpJLGRpdmVyZ2VuY2VzOkR9KTtmb3IodmFyIEI9MDtCPDEwMCppJiZQLmxlbmd0aDxpJiZUKEMpOyl7QisrO3ZhciBOPW4uY2xvbmUoTyksaj1uLnNxdWFyZWRMZW5ndGgoTik7aWYoMD09PWopYnJlYWs7aWYoaj5BJiZuLnNjYWxlKE4sTixrL01hdGguc3FydChqKSksbi5hZGQoTixOLEMpLE89ZChOKSxuLnNxdWFyZWREaXN0YW5jZSh6LE4pLUE+LTFlLTQqQSl7UC5wdXNoKE4pLHo9TixJLnB1c2goTyk7Uj1tKE4sTyksRj1uLmxlbmd0aChSKTtpc0Zpbml0ZShGKSYmRj5TJiYoUz1GKSxELnB1c2goRil9Qz1OfX12YXIgVT1vKGcsdC5jb2xvcm1hcCxTLE0pO3JldHVybiBmP1UudHViZVNjYWxlPWY6KDA9PT1TJiYoUz0xKSxVLnR1YmVTY2FsZT0uNSp1Kk0vUyksVX07dmFyIHU9dCgiLi9saWIvc2hhZGVycyIpLGY9dCgiZ2wtY29uZTNkIikuY3JlYXRlTWVzaDtlLmV4cG9ydHMuY3JlYXRlVHViZU1lc2g9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZih0LGUse3NoYWRlcnM6dSx0cmFjZVR5cGU6InN0cmVhbXR1YmUifSl9fSx7Ii4vbGliL3NoYWRlcnMiOjMzMywiZ2wtY29uZTNkIjoyNTgsImdsLXZlYzMiOjM2MiwiZ2wtdmVjNCI6Mzk4fV0sMzM1OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2wtc2hhZGVyIiksaT10KCJnbHNsaWZ5IiksYT1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzQgdXY7XG5hdHRyaWJ1dGUgdmVjMyBmO1xuYXR0cmlidXRlIHZlYzMgbm9ybWFsO1xuXG51bmlmb3JtIHZlYzMgb2JqZWN0T2Zmc2V0O1xudW5pZm9ybSBtYXQ0IG1vZGVsLCB2aWV3LCBwcm9qZWN0aW9uLCBpbnZlcnNlTW9kZWw7XG51bmlmb3JtIHZlYzMgbGlnaHRQb3NpdGlvbiwgZXllUG9zaXRpb247XG51bmlmb3JtIHNhbXBsZXIyRCBjb2xvcm1hcDtcblxudmFyeWluZyBmbG9hdCB2YWx1ZSwga2lsbDtcbnZhcnlpbmcgdmVjMyB3b3JsZENvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzIgcGxhbmVDb29yZGluYXRlO1xudmFyeWluZyB2ZWMzIGxpZ2h0RGlyZWN0aW9uLCBleWVEaXJlY3Rpb24sIHN1cmZhY2VOb3JtYWw7XG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIHZlYzMgbG9jYWxDb29yZGluYXRlID0gdmVjMyh1di56dywgZi54KTtcbiAgd29ybGRDb29yZGluYXRlID0gb2JqZWN0T2Zmc2V0ICsgbG9jYWxDb29yZGluYXRlO1xuICB2ZWM0IHdvcmxkUG9zaXRpb24gPSBtb2RlbCAqIHZlYzQod29ybGRDb29yZGluYXRlLCAxLjApO1xuICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgZ2xfUG9zaXRpb24gPSBjbGlwUG9zaXRpb247XG4gIGtpbGwgPSBmLnk7XG4gIHZhbHVlID0gZi56O1xuICBwbGFuZUNvb3JkaW5hdGUgPSB1di54eTtcblxuICB2Q29sb3IgPSB0ZXh0dXJlMkQoY29sb3JtYXAsIHZlYzIodmFsdWUsIHZhbHVlKSk7XG5cbiAgLy9MaWdodGluZyBnZW9tZXRyeSBwYXJhbWV0ZXJzXG4gIHZlYzQgY2FtZXJhQ29vcmRpbmF0ZSA9IHZpZXcgKiB3b3JsZFBvc2l0aW9uO1xuICBjYW1lcmFDb29yZGluYXRlLnh5eiAvPSBjYW1lcmFDb29yZGluYXRlLnc7XG4gIGxpZ2h0RGlyZWN0aW9uID0gbGlnaHRQb3NpdGlvbiAtIGNhbWVyYUNvb3JkaW5hdGUueHl6O1xuICBleWVEaXJlY3Rpb24gICA9IGV5ZVBvc2l0aW9uIC0gY2FtZXJhQ29vcmRpbmF0ZS54eXo7XG4gIHN1cmZhY2VOb3JtYWwgID0gbm9ybWFsaXplKCh2ZWM0KG5vcm1hbCwwKSAqIGludmVyc2VNb2RlbCkueHl6KTtcbn1cbiJdKSxvPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5mbG9hdCBiZWNrbWFubkRpc3RyaWJ1dGlvbihmbG9hdCB4LCBmbG9hdCByb3VnaG5lc3MpIHtcbiAgZmxvYXQgTmRvdEggPSBtYXgoeCwgMC4wMDAxKTtcbiAgZmxvYXQgY29zMkFscGhhID0gTmRvdEggKiBOZG90SDtcbiAgZmxvYXQgdGFuMkFscGhhID0gKGNvczJBbHBoYSAtIDEuMCkgLyBjb3MyQWxwaGE7XG4gIGZsb2F0IHJvdWdobmVzczIgPSByb3VnaG5lc3MgKiByb3VnaG5lc3M7XG4gIGZsb2F0IGRlbm9tID0gMy4xNDE1OTI2NTM1ODk3OTMgKiByb3VnaG5lc3MyICogY29zMkFscGhhICogY29zMkFscGhhO1xuICByZXR1cm4gZXhwKHRhbjJBbHBoYSAvIHJvdWdobmVzczIpIC8gZGVub207XG59XG5cbmZsb2F0IGJlY2ttYW5uU3BlY3VsYXIoXG4gIHZlYzMgbGlnaHREaXJlY3Rpb24sXG4gIHZlYzMgdmlld0RpcmVjdGlvbixcbiAgdmVjMyBzdXJmYWNlTm9ybWFsLFxuICBmbG9hdCByb3VnaG5lc3MpIHtcbiAgcmV0dXJuIGJlY2ttYW5uRGlzdHJpYnV0aW9uKGRvdChzdXJmYWNlTm9ybWFsLCBub3JtYWxpemUobGlnaHREaXJlY3Rpb24gKyB2aWV3RGlyZWN0aW9uKSksIHJvdWdobmVzcyk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZShmbG9hdCBhLCBmbG9hdCBiLCBmbG9hdCBwKSB7XG4gIHJldHVybiAoKHAgPiBtYXgoYSwgYikpIHx8IFxuICAgICAgICAgIChwIDwgbWluKGEsIGIpKSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWMyIGEsIHZlYzIgYiwgdmVjMiBwKSB7XG4gIHJldHVybiAob3V0T2ZSYW5nZShhLngsIGIueCwgcC54KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS55LCBiLnksIHAueSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMyBhLCB2ZWMzIGIsIHZlYzMgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnosIGIueiwgcC56KSk7XG59XG5cbmJvb2wgb3V0T2ZSYW5nZSh2ZWM0IGEsIHZlYzQgYiwgdmVjNCBwKSB7XG4gIHJldHVybiBvdXRPZlJhbmdlKGEueHl6LCBiLnh5eiwgcC54eXopO1xufVxuXG51bmlmb3JtIHZlYzMgbG93ZXJCb3VuZCwgdXBwZXJCb3VuZDtcbnVuaWZvcm0gZmxvYXQgY29udG91clRpbnQ7XG51bmlmb3JtIHZlYzQgY29udG91ckNvbG9yO1xudW5pZm9ybSBzYW1wbGVyMkQgY29sb3JtYXA7XG51bmlmb3JtIHZlYzMgY2xpcEJvdW5kc1syXTtcbnVuaWZvcm0gZmxvYXQgcm91Z2huZXNzLCBmcmVzbmVsLCBrYW1iaWVudCwga2RpZmZ1c2UsIGtzcGVjdWxhciwgb3BhY2l0eTtcbnVuaWZvcm0gZmxvYXQgdmVydGV4Q29sb3I7XG5cbnZhcnlpbmcgZmxvYXQgdmFsdWUsIGtpbGw7XG52YXJ5aW5nIHZlYzMgd29ybGRDb29yZGluYXRlO1xudmFyeWluZyB2ZWMzIGxpZ2h0RGlyZWN0aW9uLCBleWVEaXJlY3Rpb24sIHN1cmZhY2VOb3JtYWw7XG52YXJ5aW5nIHZlYzQgdkNvbG9yO1xuXG52b2lkIG1haW4oKSB7XG4gIGlmIChcbiAgICBraWxsID4gMC4wIHx8XG4gICAgdkNvbG9yLmEgPT0gMC4wIHx8XG4gICAgb3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZENvb3JkaW5hdGUpXG4gICkgZGlzY2FyZDtcblxuICB2ZWMzIE4gPSBub3JtYWxpemUoc3VyZmFjZU5vcm1hbCk7XG4gIHZlYzMgViA9IG5vcm1hbGl6ZShleWVEaXJlY3Rpb24pO1xuICB2ZWMzIEwgPSBub3JtYWxpemUobGlnaHREaXJlY3Rpb24pO1xuXG4gIGlmKGdsX0Zyb250RmFjaW5nKSB7XG4gICAgTiA9IC1OO1xuICB9XG5cbiAgZmxvYXQgc3BlY3VsYXIgPSBtYXgoYmVja21hbm5TcGVjdWxhcihMLCBWLCBOLCByb3VnaG5lc3MpLCAwLik7XG4gIGZsb2F0IGRpZmZ1c2UgID0gbWluKGthbWJpZW50ICsga2RpZmZ1c2UgKiBtYXgoZG90KE4sIEwpLCAwLjApLCAxLjApO1xuXG4gIC8vZGVjaWRlIGhvdyB0byBpbnRlcnBvbGF0ZSBjb2xvciBcdTIwMTQgaW4gdmVydGV4IG9yIGluIGZyYWdtZW50XG4gIHZlYzQgc3VyZmFjZUNvbG9yID1cbiAgICBzdGVwKHZlcnRleENvbG9yLCAuNSkgKiB0ZXh0dXJlMkQoY29sb3JtYXAsIHZlYzIodmFsdWUsIHZhbHVlKSkgK1xuICAgIHN0ZXAoLjUsIHZlcnRleENvbG9yKSAqIHZDb2xvcjtcblxuICB2ZWM0IGxpdENvbG9yID0gc3VyZmFjZUNvbG9yLmEgKiB2ZWM0KGRpZmZ1c2UgKiBzdXJmYWNlQ29sb3IucmdiICsga3NwZWN1bGFyICogdmVjMygxLDEsMSkgKiBzcGVjdWxhciwgIDEuMCk7XG5cbiAgZ2xfRnJhZ0NvbG9yID0gbWl4KGxpdENvbG9yLCBjb250b3VyQ29sb3IsIGNvbnRvdXJUaW50KSAqIG9wYWNpdHk7XG59XG4iXSkscz1pKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzQgdXY7XG5hdHRyaWJ1dGUgZmxvYXQgZjtcblxudW5pZm9ybSB2ZWMzIG9iamVjdE9mZnNldDtcbnVuaWZvcm0gbWF0MyBwZXJtdXRhdGlvbjtcbnVuaWZvcm0gbWF0NCBtb2RlbCwgdmlldywgcHJvamVjdGlvbjtcbnVuaWZvcm0gZmxvYXQgaGVpZ2h0LCB6T2Zmc2V0O1xudW5pZm9ybSBzYW1wbGVyMkQgY29sb3JtYXA7XG5cbnZhcnlpbmcgZmxvYXQgdmFsdWUsIGtpbGw7XG52YXJ5aW5nIHZlYzMgd29ybGRDb29yZGluYXRlO1xudmFyeWluZyB2ZWMyIHBsYW5lQ29vcmRpbmF0ZTtcbnZhcnlpbmcgdmVjMyBsaWdodERpcmVjdGlvbiwgZXllRGlyZWN0aW9uLCBzdXJmYWNlTm9ybWFsO1xudmFyeWluZyB2ZWM0IHZDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICB2ZWMzIGRhdGFDb29yZGluYXRlID0gcGVybXV0YXRpb24gKiB2ZWMzKHV2Lnh5LCBoZWlnaHQpO1xuICB3b3JsZENvb3JkaW5hdGUgPSBvYmplY3RPZmZzZXQgKyBkYXRhQ29vcmRpbmF0ZTtcbiAgdmVjNCB3b3JsZFBvc2l0aW9uID0gbW9kZWwgKiB2ZWM0KHdvcmxkQ29vcmRpbmF0ZSwgMS4wKTtcblxuICB2ZWM0IGNsaXBQb3NpdGlvbiA9IHByb2plY3Rpb24gKiB2aWV3ICogd29ybGRQb3NpdGlvbjtcbiAgY2xpcFBvc2l0aW9uLnogKz0gek9mZnNldDtcblxuICBnbF9Qb3NpdGlvbiA9IGNsaXBQb3NpdGlvbjtcbiAgdmFsdWUgPSBmICsgb2JqZWN0T2Zmc2V0Lno7XG4gIGtpbGwgPSAtMS4wO1xuICBwbGFuZUNvb3JkaW5hdGUgPSB1di56dztcblxuICB2Q29sb3IgPSB0ZXh0dXJlMkQoY29sb3JtYXAsIHZlYzIodmFsdWUsIHZhbHVlKSk7XG5cbiAgLy9Eb24ndCBkbyBsaWdodGluZyBmb3IgY29udG91cnNcbiAgc3VyZmFjZU5vcm1hbCAgID0gdmVjMygxLDAsMCk7XG4gIGV5ZURpcmVjdGlvbiAgICA9IHZlYzMoMCwxLDApO1xuICBsaWdodERpcmVjdGlvbiAgPSB2ZWMzKDAsMCwxKTtcbn1cbiJdKSxsPWkoWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5ib29sIG91dE9mUmFuZ2UoZmxvYXQgYSwgZmxvYXQgYiwgZmxvYXQgcCkge1xuICByZXR1cm4gKChwID4gbWF4KGEsIGIpKSB8fCBcbiAgICAgICAgICAocCA8IG1pbihhLCBiKSkpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjMiBhLCB2ZWMyIGIsIHZlYzIgcCkge1xuICByZXR1cm4gKG91dE9mUmFuZ2UoYS54LCBiLngsIHAueCkgfHxcbiAgICAgICAgICBvdXRPZlJhbmdlKGEueSwgYi55LCBwLnkpKTtcbn1cblxuYm9vbCBvdXRPZlJhbmdlKHZlYzMgYSwgdmVjMyBiLCB2ZWMzIHApIHtcbiAgcmV0dXJuIChvdXRPZlJhbmdlKGEueCwgYi54LCBwLngpIHx8XG4gICAgICAgICAgb3V0T2ZSYW5nZShhLnksIGIueSwgcC55KSB8fFxuICAgICAgICAgIG91dE9mUmFuZ2UoYS56LCBiLnosIHAueikpO1xufVxuXG5ib29sIG91dE9mUmFuZ2UodmVjNCBhLCB2ZWM0IGIsIHZlYzQgcCkge1xuICByZXR1cm4gb3V0T2ZSYW5nZShhLnh5eiwgYi54eXosIHAueHl6KTtcbn1cblxudW5pZm9ybSB2ZWMyIHNoYXBlO1xudW5pZm9ybSB2ZWMzIGNsaXBCb3VuZHNbMl07XG51bmlmb3JtIGZsb2F0IHBpY2tJZDtcblxudmFyeWluZyBmbG9hdCB2YWx1ZSwga2lsbDtcbnZhcnlpbmcgdmVjMyB3b3JsZENvb3JkaW5hdGU7XG52YXJ5aW5nIHZlYzIgcGxhbmVDb29yZGluYXRlO1xudmFyeWluZyB2ZWMzIHN1cmZhY2VOb3JtYWw7XG5cbnZlYzIgc3BsaXRGbG9hdChmbG9hdCB2KSB7XG4gIGZsb2F0IHZoID0gMjU1LjAgKiB2O1xuICBmbG9hdCB1cHBlciA9IGZsb29yKHZoKTtcbiAgZmxvYXQgbG93ZXIgPSBmcmFjdCh2aCk7XG4gIHJldHVybiB2ZWMyKHVwcGVyIC8gMjU1LjAsIGZsb29yKGxvd2VyICogMTYuMCkgLyAxNi4wKTtcbn1cblxudm9pZCBtYWluKCkge1xuICBpZiAoKGtpbGwgPiAwLjApIHx8XG4gICAgICAob3V0T2ZSYW5nZShjbGlwQm91bmRzWzBdLCBjbGlwQm91bmRzWzFdLCB3b3JsZENvb3JkaW5hdGUpKSkgZGlzY2FyZDtcblxuICB2ZWMyIHV4ID0gc3BsaXRGbG9hdChwbGFuZUNvb3JkaW5hdGUueCAvIHNoYXBlLngpO1xuICB2ZWMyIHV5ID0gc3BsaXRGbG9hdChwbGFuZUNvb3JkaW5hdGUueSAvIHNoYXBlLnkpO1xuICBnbF9GcmFnQ29sb3IgPSB2ZWM0KHBpY2tJZCwgdXgueCwgdXkueCwgdXgueSArICh1eS55LzE2LjApKTtcbn1cbiJdKTtyLmNyZWF0ZVNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQsYSxvLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZS5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0yLGV9LHIuY3JlYXRlUGlja1NoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQsYSxsLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJ2ZWMzIn0se25hbWU6Im5vcm1hbCIsdHlwZToidmVjMyJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZS5hdHRyaWJ1dGVzLm5vcm1hbC5sb2NhdGlvbj0yLGV9LHIuY3JlYXRlQ29udG91clNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQscyxvLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJmbG9hdCJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZX0sci5jcmVhdGVQaWNrQ29udG91clNoYWRlcj1mdW5jdGlvbih0KXt2YXIgZT1uKHQscyxsLG51bGwsW3tuYW1lOiJ1diIsdHlwZToidmVjNCJ9LHtuYW1lOiJmIix0eXBlOiJmbG9hdCJ9XSk7cmV0dXJuIGUuYXR0cmlidXRlcy51di5sb2NhdGlvbj0wLGUuYXR0cmlidXRlcy5mLmxvY2F0aW9uPTEsZX19LHsiZ2wtc2hhZGVyIjozMjMsZ2xzbGlmeTo0MjR9XSwzMzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZ2wscj15KGUpLG49YihlKSxzPXgoZSksbD1fKGUpLGM9aShlKSx1PWEoZSxbe2J1ZmZlcjpjLHNpemU6NCxzdHJpZGU6NDAsb2Zmc2V0OjB9LHtidWZmZXI6YyxzaXplOjMsc3RyaWRlOjQwLG9mZnNldDoxNn0se2J1ZmZlcjpjLHNpemU6MyxzdHJpZGU6NDAsb2Zmc2V0OjI4fV0pLGY9aShlKSxoPWEoZSxbe2J1ZmZlcjpmLHNpemU6NCxzdHJpZGU6MjAsb2Zmc2V0OjB9LHtidWZmZXI6ZixzaXplOjEsc3RyaWRlOjIwLG9mZnNldDoxNn1dKSxwPWkoZSksZD1hKGUsW3tidWZmZXI6cCxzaXplOjIsdHlwZTplLkZMT0FUfV0pLG09byhlLDEsMjU2LGUuUkdCQSxlLlVOU0lHTkVEX0JZVEUpO20ubWluRmlsdGVyPWUuTElORUFSLG0ubWFnRmlsdGVyPWUuTElORUFSO3ZhciBnPW5ldyBNKGUsWzAsMF0sW1swLDAsMF0sWzAsMCwwXV0scixuLGMsdSxtLHMsbCxmLGgscCxkLFswLDAsMF0pLHY9e2xldmVsczpbW10sW10sW11dfTtmb3IodmFyIHcgaW4gdCl2W3ddPXRbd107cmV0dXJuIHYuY29sb3JtYXA9di5jb2xvcm1hcHx8ImpldCIsZy51cGRhdGUodiksZ307dmFyIG49dCgiYml0LXR3aWRkbGUiKSxpPXQoImdsLWJ1ZmZlciIpLGE9dCgiZ2wtdmFvIiksbz10KCJnbC10ZXh0dXJlMmQiKSxzPXQoInR5cGVkYXJyYXktcG9vbCIpLGw9dCgiY29sb3JtYXAiKSxjPXQoIm5kYXJyYXktb3BzIiksdT10KCJuZGFycmF5LXBhY2siKSxmPXQoIm5kYXJyYXkiKSxoPXQoInN1cmZhY2UtbmV0cyIpLHA9dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGQ9dCgiZ2wtbWF0NC9pbnZlcnQiKSxtPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksZz10KCJuZGFycmF5LWdyYWRpZW50Iiksdj10KCIuL2xpYi9zaGFkZXJzIikseT12LmNyZWF0ZVNoYWRlcix4PXYuY3JlYXRlQ29udG91clNoYWRlcixiPXYuY3JlYXRlUGlja1NoYWRlcixfPXYuY3JlYXRlUGlja0NvbnRvdXJTaGFkZXIsdz1bMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0sVD1bWzAsMF0sWzAsMV0sWzEsMF0sWzEsMV0sWzEsMF0sWzAsMV1dLGs9W1swLDAsMCwwLDAsMCwwLDAsMF0sWzAsMCwwLDAsMCwwLDAsMCwwXSxbMCwwLDAsMCwwLDAsMCwwLDBdXTtmdW5jdGlvbiBBKHQsZSxyLG4saSl7dGhpcy5wb3NpdGlvbj10LHRoaXMuaW5kZXg9ZSx0aGlzLnV2PXIsdGhpcy5sZXZlbD1uLHRoaXMuZGF0YUNvb3JkaW5hdGU9aX0hZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDM7Kyt0KXt2YXIgZT1rW3RdLHI9KHQrMiklMztlWyh0KzEpJTMrMF09MSxlW3IrM109MSxlW3QrNl09MX19KCk7ZnVuY3Rpb24gTSh0LGUscixuLGksYSxvLGwsYyx1LGgscCxkLG0sZyl7dGhpcy5nbD10LHRoaXMuc2hhcGU9ZSx0aGlzLmJvdW5kcz1yLHRoaXMub2JqZWN0T2Zmc2V0PWcsdGhpcy5pbnRlbnNpdHlCb3VuZHM9W10sdGhpcy5fc2hhZGVyPW4sdGhpcy5fcGlja1NoYWRlcj1pLHRoaXMuX2Nvb3JkaW5hdGVCdWZmZXI9YSx0aGlzLl92YW89byx0aGlzLl9jb2xvck1hcD1sLHRoaXMuX2NvbnRvdXJTaGFkZXI9Yyx0aGlzLl9jb250b3VyUGlja1NoYWRlcj11LHRoaXMuX2NvbnRvdXJCdWZmZXI9aCx0aGlzLl9jb250b3VyVkFPPXAsdGhpcy5fY29udG91ck9mZnNldHM9W1tdLFtdLFtdXSx0aGlzLl9jb250b3VyQ291bnRzPVtbXSxbXSxbXV0sdGhpcy5fdmVydGV4Q291bnQ9MCx0aGlzLl9waWNrUmVzdWx0PW5ldyBBKFswLDAsMF0sWzAsMF0sWzAsMF0sWzAsMCwwXSxbMCwwLDBdKSx0aGlzLl9keW5hbWljQnVmZmVyPWQsdGhpcy5fZHluYW1pY1ZBTz1tLHRoaXMuX2R5bmFtaWNPZmZzZXRzPVswLDAsMF0sdGhpcy5fZHluYW1pY0NvdW50cz1bMCwwLDBdLHRoaXMuY29udG91cldpZHRoPVsxLDEsMV0sdGhpcy5jb250b3VyTGV2ZWxzPVtbMV0sWzFdLFsxXV0sdGhpcy5jb250b3VyVGludD1bMCwwLDBdLHRoaXMuY29udG91ckNvbG9yPVtbLjUsLjUsLjUsMV0sWy41LC41LC41LDFdLFsuNSwuNSwuNSwxXV0sdGhpcy5zaG93Q29udG91cj0hMCx0aGlzLnNob3dTdXJmYWNlPSEwLHRoaXMuZW5hYmxlSGlnaGxpZ2h0PVshMCwhMCwhMF0sdGhpcy5oaWdobGlnaHRDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuaGlnaGxpZ2h0VGludD1bMSwxLDFdLHRoaXMuaGlnaGxpZ2h0TGV2ZWw9Wy0xLC0xLC0xXSx0aGlzLmVuYWJsZUR5bmFtaWM9WyEwLCEwLCEwXSx0aGlzLmR5bmFtaWNMZXZlbD1bTmFOLE5hTixOYU5dLHRoaXMuZHluYW1pY0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5keW5hbWljVGludD1bMSwxLDFdLHRoaXMuZHluYW1pY1dpZHRoPVsxLDEsMV0sdGhpcy5heGVzQm91bmRzPVtbMS8wLDEvMCwxLzBdLFstMS8wLC0xLzAsLTEvMF1dLHRoaXMuc3VyZmFjZVByb2plY3Q9WyExLCExLCExXSx0aGlzLmNvbnRvdXJQcm9qZWN0PVtbITEsITEsITFdLFshMSwhMSwhMV0sWyExLCExLCExXV0sdGhpcy5jb2xvckJvdW5kcz1bITEsITFdLHRoaXMuX2ZpZWxkPVtmKHMubWFsbG9jRmxvYXQoMTAyNCksWzAsMF0pLGYocy5tYWxsb2NGbG9hdCgxMDI0KSxbMCwwXSksZihzLm1hbGxvY0Zsb2F0KDEwMjQpLFswLDBdKV0sdGhpcy5waWNrSWQ9MSx0aGlzLmNsaXBCb3VuZHM9W1stMS8wLC0xLzAsLTEvMF0sWzEvMCwxLzAsMS8wXV0sdGhpcy5zbmFwVG9EYXRhPSExLHRoaXMucGl4ZWxSYXRpbz0xLHRoaXMub3BhY2l0eT0xLHRoaXMubGlnaHRQb3NpdGlvbj1bMTAsMWU0LDBdLHRoaXMuYW1iaWVudExpZ2h0PS44LHRoaXMuZGlmZnVzZUxpZ2h0PS44LHRoaXMuc3BlY3VsYXJMaWdodD0yLHRoaXMucm91Z2huZXNzPS41LHRoaXMuZnJlc25lbD0xLjUsdGhpcy52ZXJ0ZXhDb2xvcj0wLHRoaXMuZGlydHk9ITB9dmFyIFM9TS5wcm90b3R5cGU7Uy5nZW5Db2xvcm1hcD1mdW5jdGlvbih0LGUpe3ZhciByPSExLG49dShbbCh7Y29sb3JtYXA6dCxuc2hhZGVzOjI1Nixmb3JtYXQ6InJnYmEifSkubWFwKChmdW5jdGlvbih0LG4pe3ZhciBpPWU/ZnVuY3Rpb24odCxlKXtpZighZSlyZXR1cm4gMTtpZighZS5sZW5ndGgpcmV0dXJuIDE7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDsrK3Ipe2lmKGUubGVuZ3RoPDIpcmV0dXJuIDE7aWYoZVtyXVswXT09PXQpcmV0dXJuIGVbcl1bMV07aWYoZVtyXVswXT50JiZyPjApe3ZhciBuPShlW3JdWzBdLXQpLyhlW3JdWzBdLWVbci0xXVswXSk7cmV0dXJuIGVbcl1bMV0qKDEtbikrbiplW3ItMV1bMV19fXJldHVybiAxfShuLzI1NSxlKTp0WzNdO3JldHVybiBpPDEmJihyPSEwKSxbdFswXSx0WzFdLHRbMl0sMjU1KmldfSkpXSk7cmV0dXJuIGMuZGl2c2VxKG4sMjU1KSx0aGlzLmhhc0FscGhhU2NhbGU9cixufSxTLmlzVHJhbnNwYXJlbnQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vcGFjaXR5PDF8fHRoaXMuaGFzQWxwaGFTY2FsZX0sUy5pc09wYXF1ZT1mdW5jdGlvbigpe3JldHVybiF0aGlzLmlzVHJhbnNwYXJlbnQoKX0sUy5waWNrU2xvdHM9MSxTLnNldFBpY2tCYXNlPWZ1bmN0aW9uKHQpe3RoaXMucGlja0lkPXR9O3ZhciBFPVswLDAsMF0sTD17c2hvd1N1cmZhY2U6ITEsc2hvd0NvbnRvdXI6ITEscHJvamVjdGlvbnM6W3cuc2xpY2UoKSx3LnNsaWNlKCksdy5zbGljZSgpXSxjbGlwQm91bmRzOltbWzAsMCwwXSxbMCwwLDBdXSxbWzAsMCwwXSxbMCwwLDBdXSxbWzAsMCwwXSxbMCwwLDBdXV19O2Z1bmN0aW9uIEModCxlKXt2YXIgcixuLGksYT1lLmF4ZXMmJmUuYXhlcy5sYXN0Q3ViZVByb3BzLmF4aXN8fEUsbz1lLnNob3dTdXJmYWNlLHM9ZS5zaG93Q29udG91cjtmb3Iocj0wO3I8MzsrK3IpZm9yKG89b3x8ZS5zdXJmYWNlUHJvamVjdFtyXSxuPTA7bjwzOysrbilzPXN8fGUuY29udG91clByb2plY3Rbcl1bbl07Zm9yKHI9MDtyPDM7KytyKXt2YXIgbD1MLnByb2plY3Rpb25zW3JdO2ZvcihuPTA7bjwxNjsrK24pbFtuXT0wO2ZvcihuPTA7bjw0OysrbilsWzUqbl09MTtsWzUqcl09MCxsWzEyK3JdPWUuYXhlc0JvdW5kc1srKGFbcl0+MCldW3JdLHAobCx0Lm1vZGVsLGwpO3ZhciBjPUwuY2xpcEJvdW5kc1tyXTtmb3IoaT0wO2k8MjsrK2kpZm9yKG49MDtuPDM7KytuKWNbaV1bbl09dC5jbGlwQm91bmRzW2ldW25dO2NbMF1bcl09LTFlOCxjWzFdW3JdPTFlOH1yZXR1cm4gTC5zaG93U3VyZmFjZT1vLEwuc2hvd0NvbnRvdXI9cyxMfXZhciBQPXttb2RlbDp3LHZpZXc6dyxwcm9qZWN0aW9uOncsaW52ZXJzZU1vZGVsOncuc2xpY2UoKSxsb3dlckJvdW5kOlswLDAsMF0sdXBwZXJCb3VuZDpbMCwwLDBdLGNvbG9yTWFwOjAsY2xpcEJvdW5kczpbWzAsMCwwXSxbMCwwLDBdXSxoZWlnaHQ6MCxjb250b3VyVGludDowLGNvbnRvdXJDb2xvcjpbMCwwLDAsMV0scGVybXV0YXRpb246WzEsMCwwLDAsMSwwLDAsMCwxXSx6T2Zmc2V0Oi0xZS00LG9iamVjdE9mZnNldDpbMCwwLDBdLGthbWJpZW50OjEsa2RpZmZ1c2U6MSxrc3BlY3VsYXI6MSxsaWdodFBvc2l0aW9uOlsxZTMsMWUzLDFlM10sZXllUG9zaXRpb246WzAsMCwwXSxyb3VnaG5lc3M6MSxmcmVzbmVsOjEsb3BhY2l0eToxLHZlcnRleENvbG9yOjB9LEk9dy5zbGljZSgpLE89WzEsMCwwLDAsMSwwLDAsMCwxXTtmdW5jdGlvbiB6KHQsZSl7dD10fHx7fTt2YXIgcj10aGlzLmdsO3IuZGlzYWJsZShyLkNVTExfRkFDRSksdGhpcy5fY29sb3JNYXAuYmluZCgwKTt2YXIgbj1QO24ubW9kZWw9dC5tb2RlbHx8dyxuLnZpZXc9dC52aWV3fHx3LG4ucHJvamVjdGlvbj10LnByb2plY3Rpb258fHcsbi5sb3dlckJvdW5kPVt0aGlzLmJvdW5kc1swXVswXSx0aGlzLmJvdW5kc1swXVsxXSx0aGlzLmNvbG9yQm91bmRzWzBdfHx0aGlzLmJvdW5kc1swXVsyXV0sbi51cHBlckJvdW5kPVt0aGlzLmJvdW5kc1sxXVswXSx0aGlzLmJvdW5kc1sxXVsxXSx0aGlzLmNvbG9yQm91bmRzWzFdfHx0aGlzLmJvdW5kc1sxXVsyXV0sbi5vYmplY3RPZmZzZXQ9dGhpcy5vYmplY3RPZmZzZXQsbi5jb250b3VyQ29sb3I9dGhpcy5jb250b3VyQ29sb3JbMF0sbi5pbnZlcnNlTW9kZWw9ZChuLmludmVyc2VNb2RlbCxuLm1vZGVsKTtmb3IodmFyIGk9MDtpPDI7KytpKWZvcih2YXIgYT1uLmNsaXBCb3VuZHNbaV0sbz0wO288MzsrK28pYVtvXT1NYXRoLm1pbihNYXRoLm1heCh0aGlzLmNsaXBCb3VuZHNbaV1bb10sLTFlOCksMWU4KTtuLmthbWJpZW50PXRoaXMuYW1iaWVudExpZ2h0LG4ua2RpZmZ1c2U9dGhpcy5kaWZmdXNlTGlnaHQsbi5rc3BlY3VsYXI9dGhpcy5zcGVjdWxhckxpZ2h0LG4ucm91Z2huZXNzPXRoaXMucm91Z2huZXNzLG4uZnJlc25lbD10aGlzLmZyZXNuZWwsbi5vcGFjaXR5PXRoaXMub3BhY2l0eSxuLmhlaWdodD0wLG4ucGVybXV0YXRpb249TyxuLnZlcnRleENvbG9yPXRoaXMudmVydGV4Q29sb3I7dmFyIHM9STtmb3IocChzLG4udmlldyxuLm1vZGVsKSxwKHMsbi5wcm9qZWN0aW9uLHMpLGQocyxzKSxpPTA7aTwzOysraSluLmV5ZVBvc2l0aW9uW2ldPXNbMTIraV0vc1sxNV07dmFyIGw9c1sxNV07Zm9yKGk9MDtpPDM7KytpKWwrPXRoaXMubGlnaHRQb3NpdGlvbltpXSpzWzQqaSszXTtmb3IoaT0wO2k8MzsrK2kpe3ZhciBjPXNbMTIraV07Zm9yKG89MDtvPDM7KytvKWMrPXNbNCpvK2ldKnRoaXMubGlnaHRQb3NpdGlvbltvXTtuLmxpZ2h0UG9zaXRpb25baV09Yy9sfXZhciB1PUMobix0aGlzKTtpZih1LnNob3dTdXJmYWNlKXtmb3IodGhpcy5fc2hhZGVyLmJpbmQoKSx0aGlzLl9zaGFkZXIudW5pZm9ybXM9bix0aGlzLl92YW8uYmluZCgpLHRoaXMuc2hvd1N1cmZhY2UmJnRoaXMuX3ZlcnRleENvdW50JiZ0aGlzLl92YW8uZHJhdyhyLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCksaT0wO2k8MzsrK2kpdGhpcy5zdXJmYWNlUHJvamVjdFtpXSYmdGhpcy52ZXJ0ZXhDb3VudCYmKHRoaXMuX3NoYWRlci51bmlmb3Jtcy5tb2RlbD11LnByb2plY3Rpb25zW2ldLHRoaXMuX3NoYWRlci51bmlmb3Jtcy5jbGlwQm91bmRzPXUuY2xpcEJvdW5kc1tpXSx0aGlzLl92YW8uZHJhdyhyLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCkpO3RoaXMuX3Zhby51bmJpbmQoKX1pZih1LnNob3dDb250b3VyKXt2YXIgZj10aGlzLl9jb250b3VyU2hhZGVyO24ua2FtYmllbnQ9MSxuLmtkaWZmdXNlPTAsbi5rc3BlY3VsYXI9MCxuLm9wYWNpdHk9MSxmLmJpbmQoKSxmLnVuaWZvcm1zPW47dmFyIGg9dGhpcy5fY29udG91clZBTztmb3IoaC5iaW5kKCksaT0wO2k8MzsrK2kpZm9yKGYudW5pZm9ybXMucGVybXV0YXRpb249a1tpXSxyLmxpbmVXaWR0aCh0aGlzLmNvbnRvdXJXaWR0aFtpXSp0aGlzLnBpeGVsUmF0aW8pLG89MDtvPHRoaXMuY29udG91ckxldmVsc1tpXS5sZW5ndGg7KytvKW89PT10aGlzLmhpZ2hsaWdodExldmVsW2ldPyhmLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmhpZ2hsaWdodENvbG9yW2ldLGYudW5pZm9ybXMuY29udG91clRpbnQ9dGhpcy5oaWdobGlnaHRUaW50W2ldKTowIT09byYmby0xIT09dGhpcy5oaWdobGlnaHRMZXZlbFtpXXx8KGYudW5pZm9ybXMuY29udG91ckNvbG9yPXRoaXMuY29udG91ckNvbG9yW2ldLGYudW5pZm9ybXMuY29udG91clRpbnQ9dGhpcy5jb250b3VyVGludFtpXSksdGhpcy5fY29udG91ckNvdW50c1tpXVtvXSYmKGYudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1tpXVtvXSxoLmRyYXcoci5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW2ldW29dLHRoaXMuX2NvbnRvdXJPZmZzZXRzW2ldW29dKSk7Zm9yKGk9MDtpPDM7KytpKWZvcihmLnVuaWZvcm1zLm1vZGVsPXUucHJvamVjdGlvbnNbaV0sZi51bmlmb3Jtcy5jbGlwQm91bmRzPXUuY2xpcEJvdW5kc1tpXSxvPTA7bzwzOysrbylpZih0aGlzLmNvbnRvdXJQcm9qZWN0W2ldW29dKXtmLnVuaWZvcm1zLnBlcm11dGF0aW9uPWtbb10sci5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbb10qdGhpcy5waXhlbFJhdGlvKTtmb3IodmFyIG09MDttPHRoaXMuY29udG91ckxldmVsc1tvXS5sZW5ndGg7KyttKW09PT10aGlzLmhpZ2hsaWdodExldmVsW29dPyhmLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmhpZ2hsaWdodENvbG9yW29dLGYudW5pZm9ybXMuY29udG91clRpbnQ9dGhpcy5oaWdobGlnaHRUaW50W29dKTowIT09bSYmbS0xIT09dGhpcy5oaWdobGlnaHRMZXZlbFtvXXx8KGYudW5pZm9ybXMuY29udG91ckNvbG9yPXRoaXMuY29udG91ckNvbG9yW29dLGYudW5pZm9ybXMuY29udG91clRpbnQ9dGhpcy5jb250b3VyVGludFtvXSksdGhpcy5fY29udG91ckNvdW50c1tvXVttXSYmKGYudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1tvXVttXSxoLmRyYXcoci5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW29dW21dLHRoaXMuX2NvbnRvdXJPZmZzZXRzW29dW21dKSl9Zm9yKGgudW5iaW5kKCksKGg9dGhpcy5fZHluYW1pY1ZBTykuYmluZCgpLGk9MDtpPDM7KytpKWlmKDAhPT10aGlzLl9keW5hbWljQ291bnRzW2ldKWZvcihmLnVuaWZvcm1zLm1vZGVsPW4ubW9kZWwsZi51bmlmb3Jtcy5jbGlwQm91bmRzPW4uY2xpcEJvdW5kcyxmLnVuaWZvcm1zLnBlcm11dGF0aW9uPWtbaV0sci5saW5lV2lkdGgodGhpcy5keW5hbWljV2lkdGhbaV0qdGhpcy5waXhlbFJhdGlvKSxmLnVuaWZvcm1zLmNvbnRvdXJDb2xvcj10aGlzLmR5bmFtaWNDb2xvcltpXSxmLnVuaWZvcm1zLmNvbnRvdXJUaW50PXRoaXMuZHluYW1pY1RpbnRbaV0sZi51bmlmb3Jtcy5oZWlnaHQ9dGhpcy5keW5hbWljTGV2ZWxbaV0saC5kcmF3KHIuTElORVMsdGhpcy5fZHluYW1pY0NvdW50c1tpXSx0aGlzLl9keW5hbWljT2Zmc2V0c1tpXSksbz0wO288MzsrK28pdGhpcy5jb250b3VyUHJvamVjdFtvXVtpXSYmKGYudW5pZm9ybXMubW9kZWw9dS5wcm9qZWN0aW9uc1tvXSxmLnVuaWZvcm1zLmNsaXBCb3VuZHM9dS5jbGlwQm91bmRzW29dLGguZHJhdyhyLkxJTkVTLHRoaXMuX2R5bmFtaWNDb3VudHNbaV0sdGhpcy5fZHluYW1pY09mZnNldHNbaV0pKTtoLnVuYmluZCgpfX1TLmRyYXc9ZnVuY3Rpb24odCl7cmV0dXJuIHouY2FsbCh0aGlzLHQsITEpfSxTLmRyYXdUcmFuc3BhcmVudD1mdW5jdGlvbih0KXtyZXR1cm4gei5jYWxsKHRoaXMsdCwhMCl9O3ZhciBEPXttb2RlbDp3LHZpZXc6dyxwcm9qZWN0aW9uOncsaW52ZXJzZU1vZGVsOncsY2xpcEJvdW5kczpbWzAsMCwwXSxbMCwwLDBdXSxoZWlnaHQ6MCxzaGFwZTpbMCwwXSxwaWNrSWQ6MCxsb3dlckJvdW5kOlswLDAsMF0sdXBwZXJCb3VuZDpbMCwwLDBdLHpPZmZzZXQ6MCxvYmplY3RPZmZzZXQ6WzAsMCwwXSxwZXJtdXRhdGlvbjpbMSwwLDAsMCwxLDAsMCwwLDFdLGxpZ2h0UG9zaXRpb246WzAsMCwwXSxleWVQb3NpdGlvbjpbMCwwLDBdfTtmdW5jdGlvbiBSKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/W2UodFswXSksZSh0WzFdKSxlKHRbMl0pXTpbZSh0KSxlKHQpLGUodCldfWZ1bmN0aW9uIEYodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/Mz09PXQubGVuZ3RoP1t0WzBdLHRbMV0sdFsyXSwxXTpbdFswXSx0WzFdLHRbMl0sdFszXV06WzAsMCwwLDFdfWZ1bmN0aW9uIEIodCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm5bRih0WzBdKSxGKHRbMV0pLEYodFsyXSldO3ZhciBlPUYodCk7cmV0dXJuW2Uuc2xpY2UoKSxlLnNsaWNlKCksZS5zbGljZSgpXX19Uy5kcmF3UGljaz1mdW5jdGlvbih0KXt0PXR8fHt9O3ZhciBlPXRoaXMuZ2w7ZS5kaXNhYmxlKGUuQ1VMTF9GQUNFKTt2YXIgcj1EO3IubW9kZWw9dC5tb2RlbHx8dyxyLnZpZXc9dC52aWV3fHx3LHIucHJvamVjdGlvbj10LnByb2plY3Rpb258fHcsci5zaGFwZT10aGlzLl9maWVsZFsyXS5zaGFwZSxyLnBpY2tJZD10aGlzLnBpY2tJZC8yNTUsci5sb3dlckJvdW5kPXRoaXMuYm91bmRzWzBdLHIudXBwZXJCb3VuZD10aGlzLmJvdW5kc1sxXSxyLm9iamVjdE9mZnNldD10aGlzLm9iamVjdE9mZnNldCxyLnBlcm11dGF0aW9uPU87Zm9yKHZhciBuPTA7bjwyOysrbilmb3IodmFyIGk9ci5jbGlwQm91bmRzW25dLGE9MDthPDM7KythKWlbYV09TWF0aC5taW4oTWF0aC5tYXgodGhpcy5jbGlwQm91bmRzW25dW2FdLC0xZTgpLDFlOCk7dmFyIG89QyhyLHRoaXMpO2lmKG8uc2hvd1N1cmZhY2Upe2Zvcih0aGlzLl9waWNrU2hhZGVyLmJpbmQoKSx0aGlzLl9waWNrU2hhZGVyLnVuaWZvcm1zPXIsdGhpcy5fdmFvLmJpbmQoKSx0aGlzLl92YW8uZHJhdyhlLlRSSUFOR0xFUyx0aGlzLl92ZXJ0ZXhDb3VudCksbj0wO248MzsrK24pdGhpcy5zdXJmYWNlUHJvamVjdFtuXSYmKHRoaXMuX3BpY2tTaGFkZXIudW5pZm9ybXMubW9kZWw9by5wcm9qZWN0aW9uc1tuXSx0aGlzLl9waWNrU2hhZGVyLnVuaWZvcm1zLmNsaXBCb3VuZHM9by5jbGlwQm91bmRzW25dLHRoaXMuX3Zhby5kcmF3KGUuVFJJQU5HTEVTLHRoaXMuX3ZlcnRleENvdW50KSk7dGhpcy5fdmFvLnVuYmluZCgpfWlmKG8uc2hvd0NvbnRvdXIpe3ZhciBzPXRoaXMuX2NvbnRvdXJQaWNrU2hhZGVyO3MuYmluZCgpLHMudW5pZm9ybXM9cjt2YXIgbD10aGlzLl9jb250b3VyVkFPO2ZvcihsLmJpbmQoKSxhPTA7YTwzOysrYSlmb3IoZS5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbYV0qdGhpcy5waXhlbFJhdGlvKSxzLnVuaWZvcm1zLnBlcm11dGF0aW9uPWtbYV0sbj0wO248dGhpcy5jb250b3VyTGV2ZWxzW2FdLmxlbmd0aDsrK24pdGhpcy5fY29udG91ckNvdW50c1thXVtuXSYmKHMudW5pZm9ybXMuaGVpZ2h0PXRoaXMuY29udG91ckxldmVsc1thXVtuXSxsLmRyYXcoZS5MSU5FUyx0aGlzLl9jb250b3VyQ291bnRzW2FdW25dLHRoaXMuX2NvbnRvdXJPZmZzZXRzW2FdW25dKSk7Zm9yKG49MDtuPDM7KytuKWZvcihzLnVuaWZvcm1zLm1vZGVsPW8ucHJvamVjdGlvbnNbbl0scy51bmlmb3Jtcy5jbGlwQm91bmRzPW8uY2xpcEJvdW5kc1tuXSxhPTA7YTwzOysrYSlpZih0aGlzLmNvbnRvdXJQcm9qZWN0W25dW2FdKXtzLnVuaWZvcm1zLnBlcm11dGF0aW9uPWtbYV0sZS5saW5lV2lkdGgodGhpcy5jb250b3VyV2lkdGhbYV0qdGhpcy5waXhlbFJhdGlvKTtmb3IodmFyIGM9MDtjPHRoaXMuY29udG91ckxldmVsc1thXS5sZW5ndGg7KytjKXRoaXMuX2NvbnRvdXJDb3VudHNbYV1bY10mJihzLnVuaWZvcm1zLmhlaWdodD10aGlzLmNvbnRvdXJMZXZlbHNbYV1bY10sbC5kcmF3KGUuTElORVMsdGhpcy5fY29udG91ckNvdW50c1thXVtjXSx0aGlzLl9jb250b3VyT2Zmc2V0c1thXVtjXSkpfWwudW5iaW5kKCl9fSxTLnBpY2s9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuIG51bGw7aWYodC5pZCE9PXRoaXMucGlja0lkKXJldHVybiBudWxsO3ZhciBlPXRoaXMuX2ZpZWxkWzJdLnNoYXBlLHI9dGhpcy5fcGlja1Jlc3VsdCxuPWVbMF0qKHQudmFsdWVbMF0rKHQudmFsdWVbMl0+PjQpLzE2KS8yNTUsaT1NYXRoLmZsb29yKG4pLGE9bi1pLG89ZVsxXSoodC52YWx1ZVsxXSsoMTUmdC52YWx1ZVsyXSkvMTYpLzI1NSxzPU1hdGguZmxvb3IobyksbD1vLXM7aSs9MSxzKz0xO3ZhciBjPXIucG9zaXRpb247Y1swXT1jWzFdPWNbMl09MDtmb3IodmFyIHU9MDt1PDI7Kyt1KWZvcih2YXIgZj11P2E6MS1hLGg9MDtoPDI7KytoKWZvcih2YXIgcD1pK3UsZD1zK2gsZz1mKihoP2w6MS1sKSx2PTA7djwzOysrdiljW3ZdKz10aGlzLl9maWVsZFt2XS5nZXQocCxkKSpnO2Zvcih2YXIgeT10aGlzLl9waWNrUmVzdWx0LmxldmVsLHg9MDt4PDM7Kyt4KWlmKHlbeF09bS5sZSh0aGlzLmNvbnRvdXJMZXZlbHNbeF0sY1t4XSkseVt4XTwwKXRoaXMuY29udG91ckxldmVsc1t4XS5sZW5ndGg+MCYmKHlbeF09MCk7ZWxzZSBpZih5W3hdPHRoaXMuY29udG91ckxldmVsc1t4XS5sZW5ndGgtMSl7dmFyIGI9dGhpcy5jb250b3VyTGV2ZWxzW3hdW3lbeF1dLF89dGhpcy5jb250b3VyTGV2ZWxzW3hdW3lbeF0rMV07TWF0aC5hYnMoYi1jW3hdKT5NYXRoLmFicyhfLWNbeF0pJiYoeVt4XSs9MSl9Zm9yKHIuaW5kZXhbMF09YTwuNT9pOmkrMSxyLmluZGV4WzFdPWw8LjU/czpzKzEsci51dlswXT1uL2VbMF0sci51dlsxXT1vL2VbMV0sdj0wO3Y8MzsrK3Ypci5kYXRhQ29vcmRpbmF0ZVt2XT10aGlzLl9maWVsZFt2XS5nZXQoci5pbmRleFswXSxyLmluZGV4WzFdKTtyZXR1cm4gcn0sUy5wYWRGaWVsZD1mdW5jdGlvbih0LGUpe3ZhciByPWUuc2hhcGUuc2xpY2UoKSxuPXQuc2hhcGUuc2xpY2UoKTtjLmFzc2lnbih0LmxvKDEsMSkuaGkoclswXSxyWzFdKSxlKSxjLmFzc2lnbih0LmxvKDEpLmhpKHJbMF0sMSksZS5oaShyWzBdLDEpKSxjLmFzc2lnbih0LmxvKDEsblsxXS0xKS5oaShyWzBdLDEpLGUubG8oMCxyWzFdLTEpLmhpKHJbMF0sMSkpLGMuYXNzaWduKHQubG8oMCwxKS5oaSgxLHJbMV0pLGUuaGkoMSkpLGMuYXNzaWduKHQubG8oblswXS0xLDEpLmhpKDEsclsxXSksZS5sbyhyWzBdLTEpKSx0LnNldCgwLDAsZS5nZXQoMCwwKSksdC5zZXQoMCxuWzFdLTEsZS5nZXQoMCxyWzFdLTEpKSx0LnNldChuWzBdLTEsMCxlLmdldChyWzBdLTEsMCkpLHQuc2V0KG5bMF0tMSxuWzFdLTEsZS5nZXQoclswXS0xLHJbMV0tMSkpfSxTLnVwZGF0ZT1mdW5jdGlvbih0KXt0PXR8fHt9LHRoaXMub2JqZWN0T2Zmc2V0PXQub2JqZWN0T2Zmc2V0fHx0aGlzLm9iamVjdE9mZnNldCx0aGlzLmRpcnR5PSEwLCJjb250b3VyV2lkdGgiaW4gdCYmKHRoaXMuY29udG91cldpZHRoPVIodC5jb250b3VyV2lkdGgsTnVtYmVyKSksInNob3dDb250b3VyImluIHQmJih0aGlzLnNob3dDb250b3VyPVIodC5zaG93Q29udG91cixCb29sZWFuKSksInNob3dTdXJmYWNlImluIHQmJih0aGlzLnNob3dTdXJmYWNlPSEhdC5zaG93U3VyZmFjZSksImNvbnRvdXJUaW50ImluIHQmJih0aGlzLmNvbnRvdXJUaW50PVIodC5jb250b3VyVGludCxCb29sZWFuKSksImNvbnRvdXJDb2xvciJpbiB0JiYodGhpcy5jb250b3VyQ29sb3I9Qih0LmNvbnRvdXJDb2xvcikpLCJjb250b3VyUHJvamVjdCJpbiB0JiYodGhpcy5jb250b3VyUHJvamVjdD1SKHQuY29udG91clByb2plY3QsKGZ1bmN0aW9uKHQpe3JldHVybiBSKHQsQm9vbGVhbil9KSkpLCJzdXJmYWNlUHJvamVjdCJpbiB0JiYodGhpcy5zdXJmYWNlUHJvamVjdD10LnN1cmZhY2VQcm9qZWN0KSwiZHluYW1pY0NvbG9yImluIHQmJih0aGlzLmR5bmFtaWNDb2xvcj1CKHQuZHluYW1pY0NvbG9yKSksImR5bmFtaWNUaW50ImluIHQmJih0aGlzLmR5bmFtaWNUaW50PVIodC5keW5hbWljVGludCxOdW1iZXIpKSwiZHluYW1pY1dpZHRoImluIHQmJih0aGlzLmR5bmFtaWNXaWR0aD1SKHQuZHluYW1pY1dpZHRoLE51bWJlcikpLCJvcGFjaXR5ImluIHQmJih0aGlzLm9wYWNpdHk9dC5vcGFjaXR5KSwib3BhY2l0eXNjYWxlImluIHQmJih0aGlzLm9wYWNpdHlzY2FsZT10Lm9wYWNpdHlzY2FsZSksImNvbG9yQm91bmRzImluIHQmJih0aGlzLmNvbG9yQm91bmRzPXQuY29sb3JCb3VuZHMpLCJ2ZXJ0ZXhDb2xvciJpbiB0JiYodGhpcy52ZXJ0ZXhDb2xvcj10LnZlcnRleENvbG9yPzE6MCksImNvbG9ybWFwImluIHQmJnRoaXMuX2NvbG9yTWFwLnNldFBpeGVscyh0aGlzLmdlbkNvbG9ybWFwKHQuY29sb3JtYXAsdGhpcy5vcGFjaXR5c2NhbGUpKTt2YXIgZT10LmZpZWxkfHx0LmNvb3JkcyYmdC5jb29yZHNbMl18fG51bGwscj0hMTtpZihlfHwoZT10aGlzLl9maWVsZFsyXS5zaGFwZVswXXx8dGhpcy5fZmllbGRbMl0uc2hhcGVbMl0/dGhpcy5fZmllbGRbMl0ubG8oMSwxKS5oaSh0aGlzLl9maWVsZFsyXS5zaGFwZVswXS0yLHRoaXMuX2ZpZWxkWzJdLnNoYXBlWzFdLTIpOnRoaXMuX2ZpZWxkWzJdLmhpKDAsMCkpLCJmaWVsZCJpbiB0fHwiY29vcmRzImluIHQpe3ZhciBpPShlLnNoYXBlWzBdKzIpKihlLnNoYXBlWzFdKzIpO2k+dGhpcy5fZmllbGRbMl0uZGF0YS5sZW5ndGgmJihzLmZyZWVGbG9hdCh0aGlzLl9maWVsZFsyXS5kYXRhKSx0aGlzLl9maWVsZFsyXS5kYXRhPXMubWFsbG9jRmxvYXQobi5uZXh0UG93MihpKSkpLHRoaXMuX2ZpZWxkWzJdPWYodGhpcy5fZmllbGRbMl0uZGF0YSxbZS5zaGFwZVswXSsyLGUuc2hhcGVbMV0rMl0pLHRoaXMucGFkRmllbGQodGhpcy5fZmllbGRbMl0sZSksdGhpcy5zaGFwZT1lLnNoYXBlLnNsaWNlKCk7Zm9yKHZhciBhPXRoaXMuc2hhcGUsbz0wO288MjsrK28pdGhpcy5fZmllbGRbMl0uc2l6ZT50aGlzLl9maWVsZFtvXS5kYXRhLmxlbmd0aCYmKHMuZnJlZUZsb2F0KHRoaXMuX2ZpZWxkW29dLmRhdGEpLHRoaXMuX2ZpZWxkW29dLmRhdGE9cy5tYWxsb2NGbG9hdCh0aGlzLl9maWVsZFsyXS5zaXplKSksdGhpcy5fZmllbGRbb109Zih0aGlzLl9maWVsZFtvXS5kYXRhLFthWzBdKzIsYVsxXSsyXSk7aWYodC5jb29yZHMpe3ZhciBsPXQuY29vcmRzO2lmKCFBcnJheS5pc0FycmF5KGwpfHwzIT09bC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC1zdXJmYWNlOiBpbnZhbGlkIGNvb3JkaW5hdGVzIGZvciB4L3kiKTtmb3Iobz0wO288MjsrK28pe3ZhciBjPWxbb107Zm9yKHY9MDt2PDI7Kyt2KWlmKGMuc2hhcGVbdl0hPT1hW3ZdKXRocm93IG5ldyBFcnJvcigiZ2wtc3VyZmFjZTogY29vcmRzIGhhdmUgaW5jb3JyZWN0IHNoYXBlIik7dGhpcy5wYWRGaWVsZCh0aGlzLl9maWVsZFtvXSxjKX19ZWxzZSBpZih0LnRpY2tzKXt2YXIgdT10LnRpY2tzO2lmKCFBcnJheS5pc0FycmF5KHUpfHwyIT09dS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC1zdXJmYWNlOiBpbnZhbGlkIHRpY2tzIik7Zm9yKG89MDtvPDI7KytvKXt2YXIgcD11W29dO2lmKChBcnJheS5pc0FycmF5KHApfHxwLmxlbmd0aCkmJihwPWYocCkpLHAuc2hhcGVbMF0hPT1hW29dKXRocm93IG5ldyBFcnJvcigiZ2wtc3VyZmFjZTogaW52YWxpZCB0aWNrIGxlbmd0aCIpO3ZhciBkPWYocC5kYXRhLGEpO2Quc3RyaWRlW29dPXAuc3RyaWRlWzBdLGQuc3RyaWRlWzFeb109MCx0aGlzLnBhZEZpZWxkKHRoaXMuX2ZpZWxkW29dLGQpfX1lbHNle2ZvcihvPTA7bzwyOysrbyl7dmFyIG09WzAsMF07bVtvXT0xLHRoaXMuX2ZpZWxkW29dPWYodGhpcy5fZmllbGRbb10uZGF0YSxbYVswXSsyLGFbMV0rMl0sbSwwKX10aGlzLl9maWVsZFswXS5zZXQoMCwwLDApO2Zvcih2YXIgdj0wO3Y8YVswXTsrK3YpdGhpcy5fZmllbGRbMF0uc2V0KHYrMSwwLHYpO2Zvcih0aGlzLl9maWVsZFswXS5zZXQoYVswXSsxLDAsYVswXS0xKSx0aGlzLl9maWVsZFsxXS5zZXQoMCwwLDApLHY9MDt2PGFbMV07Kyt2KXRoaXMuX2ZpZWxkWzFdLnNldCgwLHYrMSx2KTt0aGlzLl9maWVsZFsxXS5zZXQoMCxhWzFdKzEsYVsxXS0xKX12YXIgeT10aGlzLl9maWVsZCx4PWYocy5tYWxsb2NGbG9hdCgzKnlbMl0uc2l6ZSoyKSxbMyxhWzBdKzIsYVsxXSsyLDJdKTtmb3Iobz0wO288MzsrK28pZyh4LnBpY2sobykseVtvXSwibWlycm9yIik7dmFyIGI9ZihzLm1hbGxvY0Zsb2F0KDMqeVsyXS5zaXplKSxbYVswXSsyLGFbMV0rMiwzXSk7Zm9yKG89MDtvPGFbMF0rMjsrK28pZm9yKHY9MDt2PGFbMV0rMjsrK3Ype3ZhciBfPXguZ2V0KDAsbyx2LDApLHc9eC5nZXQoMCxvLHYsMSksaz14LmdldCgxLG8sdiwwKSxBPXguZ2V0KDEsbyx2LDEpLE09eC5nZXQoMixvLHYsMCksUz14LmdldCgyLG8sdiwxKSxFPWsqUy1BKk0sTD1NKnctUypfLEM9XypBLXcqayxQPU1hdGguc3FydChFKkUrTCpMK0MqQyk7UDwxZS04PyhQPU1hdGgubWF4KE1hdGguYWJzKEUpLE1hdGguYWJzKEwpLE1hdGguYWJzKEMpKSk8MWUtOD8oQz0xLEw9RT0wLFA9MSk6UD0xL1A6UD0xL01hdGguc3FydChQKSxiLnNldChvLHYsMCxFKlApLGIuc2V0KG8sdiwxLEwqUCksYi5zZXQobyx2LDIsQypQKX1zLmZyZWUoeC5kYXRhKTt2YXIgST1bMS8wLDEvMCwxLzBdLE89Wy0xLzAsLTEvMCwtMS8wXSx6PTEvMCxEPS0xLzAsRj0oYVswXS0xKSooYVsxXS0xKSo2LE49cy5tYWxsb2NGbG9hdChuLm5leHRQb3cyKDEwKkYpKSxqPTAsVT0wO2ZvcihvPTA7bzxhWzBdLTE7KytvKXQ6Zm9yKHY9MDt2PGFbMV0tMTsrK3Ype2Zvcih2YXIgVj0wO1Y8MjsrK1YpZm9yKHZhciBIPTA7SDwyOysrSClmb3IodmFyIHE9MDtxPDM7KytxKXt2YXIgRz10aGlzLl9maWVsZFtxXS5nZXQoMStvK1YsMSt2K0gpO2lmKGlzTmFOKEcpfHwhaXNGaW5pdGUoRykpY29udGludWUgdH1mb3IocT0wO3E8NjsrK3Epe3ZhciBZPW8rVFtxXVswXSxXPXYrVFtxXVsxXSxYPXRoaXMuX2ZpZWxkWzBdLmdldChZKzEsVysxKSxaPXRoaXMuX2ZpZWxkWzFdLmdldChZKzEsVysxKTtHPXRoaXMuX2ZpZWxkWzJdLmdldChZKzEsVysxKSxFPWIuZ2V0KFkrMSxXKzEsMCksTD1iLmdldChZKzEsVysxLDEpLEM9Yi5nZXQoWSsxLFcrMSwyKSx0LmludGVuc2l0eSYmKEo9dC5pbnRlbnNpdHkuZ2V0KFksVykpO3ZhciBKPXQuaW50ZW5zaXR5P3QuaW50ZW5zaXR5LmdldChZLFcpOkcrdGhpcy5vYmplY3RPZmZzZXRbMl07TltqKytdPVksTltqKytdPVcsTltqKytdPVgsTltqKytdPVosTltqKytdPUcsTltqKytdPTAsTltqKytdPUosTltqKytdPUUsTltqKytdPUwsTltqKytdPUMsSVswXT1NYXRoLm1pbihJWzBdLFgrdGhpcy5vYmplY3RPZmZzZXRbMF0pLElbMV09TWF0aC5taW4oSVsxXSxaK3RoaXMub2JqZWN0T2Zmc2V0WzFdKSxJWzJdPU1hdGgubWluKElbMl0sRyt0aGlzLm9iamVjdE9mZnNldFsyXSksej1NYXRoLm1pbih6LEopLE9bMF09TWF0aC5tYXgoT1swXSxYK3RoaXMub2JqZWN0T2Zmc2V0WzBdKSxPWzFdPU1hdGgubWF4KE9bMV0sWit0aGlzLm9iamVjdE9mZnNldFsxXSksT1syXT1NYXRoLm1heChPWzJdLEcrdGhpcy5vYmplY3RPZmZzZXRbMl0pLEQ9TWF0aC5tYXgoRCxKKSxVKz0xfX1mb3IodC5pbnRlbnNpdHlCb3VuZHMmJih6PSt0LmludGVuc2l0eUJvdW5kc1swXSxEPSt0LmludGVuc2l0eUJvdW5kc1sxXSksbz02O288ajtvKz0xMClOW29dPShOW29dLXopLyhELXopO3RoaXMuX3ZlcnRleENvdW50PVUsdGhpcy5fY29vcmRpbmF0ZUJ1ZmZlci51cGRhdGUoTi5zdWJhcnJheSgwLGopKSxzLmZyZWVGbG9hdChOKSxzLmZyZWUoYi5kYXRhKSx0aGlzLmJvdW5kcz1bSSxPXSx0aGlzLmludGVuc2l0eT10LmludGVuc2l0eXx8dGhpcy5fZmllbGRbMl0sdGhpcy5pbnRlbnNpdHlCb3VuZHNbMF09PT16JiZ0aGlzLmludGVuc2l0eUJvdW5kc1sxXT09PUR8fChyPSEwKSx0aGlzLmludGVuc2l0eUJvdW5kcz1beixEXX1pZigibGV2ZWxzImluIHQpe3ZhciBLPXQubGV2ZWxzO2ZvcihLPUFycmF5LmlzQXJyYXkoS1swXSk/Sy5zbGljZSgpOltbXSxbXSxLXSxvPTA7bzwzOysrbylLW29dPUtbb10uc2xpY2UoKSxLW29dLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKTtmb3Iobz0wO288MzsrK28pZm9yKHY9MDt2PEtbb10ubGVuZ3RoOysrdilLW29dW3ZdLT10aGlzLm9iamVjdE9mZnNldFtvXTt0OmZvcihvPTA7bzwzOysrbyl7aWYoS1tvXS5sZW5ndGghPT10aGlzLmNvbnRvdXJMZXZlbHNbb10ubGVuZ3RoKXtyPSEwO2JyZWFrfWZvcih2PTA7djxLW29dLmxlbmd0aDsrK3YpaWYoS1tvXVt2XSE9PXRoaXMuY29udG91ckxldmVsc1tvXVt2XSl7cj0hMDticmVhayB0fX10aGlzLmNvbnRvdXJMZXZlbHM9S31pZihyKXt5PXRoaXMuX2ZpZWxkLGE9dGhpcy5zaGFwZTtmb3IodmFyIFE9W10sJD0wOyQ8MzsrKyQpe3ZhciB0dD10aGlzLmNvbnRvdXJMZXZlbHNbJF0sZXQ9W10scnQ9W10sbnQ9WzAsMCwwXTtmb3Iobz0wO288dHQubGVuZ3RoOysrbyl7dmFyIGl0PWgodGhpcy5fZmllbGRbJF0sdHRbb10pO2V0LnB1c2goUS5sZW5ndGgvNXwwKSxVPTA7dDpmb3Iodj0wO3Y8aXQuY2VsbHMubGVuZ3RoOysrdil7dmFyIGF0PWl0LmNlbGxzW3ZdO2ZvcihxPTA7cTwyOysrcSl7dmFyIG90PWl0LnBvc2l0aW9uc1thdFtxXV0sc3Q9b3RbMF0sbHQ9MHxNYXRoLmZsb29yKHN0KSxjdD1zdC1sdCx1dD1vdFsxXSxmdD0wfE1hdGguZmxvb3IodXQpLGh0PXV0LWZ0LHB0PSExO2U6Zm9yKHZhciBkdD0wO2R0PDM7KytkdCl7bnRbZHRdPTA7dmFyIG10PSgkK2R0KzEpJTM7Zm9yKFY9MDtWPDI7KytWKXt2YXIgZ3Q9Vj9jdDoxLWN0O2ZvcihZPTB8TWF0aC5taW4oTWF0aC5tYXgobHQrViwwKSxhWzBdKSxIPTA7SDwyOysrSCl7dmFyIHZ0PUg/aHQ6MS1odDtpZihXPTB8TWF0aC5taW4oTWF0aC5tYXgoZnQrSCwwKSxhWzFdKSxHPWR0PDI/dGhpcy5fZmllbGRbbXRdLmdldChZLFcpOih0aGlzLmludGVuc2l0eS5nZXQoWSxXKS10aGlzLmludGVuc2l0eUJvdW5kc1swXSkvKHRoaXMuaW50ZW5zaXR5Qm91bmRzWzFdLXRoaXMuaW50ZW5zaXR5Qm91bmRzWzBdKSwhaXNGaW5pdGUoRyl8fGlzTmFOKEcpKXtwdD0hMDticmVhayBlfXZhciB5dD1ndCp2dDtudFtkdF0rPXl0Kkd9fX1pZihwdCl7aWYocT4wKXtmb3IodmFyIHh0PTA7eHQ8NTsrK3h0KVEucG9wKCk7VS09MX1jb250aW51ZSB0fVEucHVzaChudFswXSxudFsxXSxvdFswXSxvdFsxXSxudFsyXSksVSs9MX19cnQucHVzaChVKX10aGlzLl9jb250b3VyT2Zmc2V0c1skXT1ldCx0aGlzLl9jb250b3VyQ291bnRzWyRdPXJ0fXZhciBidD1zLm1hbGxvY0Zsb2F0KFEubGVuZ3RoKTtmb3Iobz0wO288US5sZW5ndGg7KytvKWJ0W29dPVFbb107dGhpcy5fY29udG91ckJ1ZmZlci51cGRhdGUoYnQpLHMuZnJlZUZsb2F0KGJ0KX19LFMuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuX3NoYWRlci5kaXNwb3NlKCksdGhpcy5fdmFvLmRpc3Bvc2UoKSx0aGlzLl9jb29yZGluYXRlQnVmZmVyLmRpc3Bvc2UoKSx0aGlzLl9jb2xvck1hcC5kaXNwb3NlKCksdGhpcy5fY29udG91ckJ1ZmZlci5kaXNwb3NlKCksdGhpcy5fY29udG91clZBTy5kaXNwb3NlKCksdGhpcy5fY29udG91clNoYWRlci5kaXNwb3NlKCksdGhpcy5fY29udG91clBpY2tTaGFkZXIuZGlzcG9zZSgpLHRoaXMuX2R5bmFtaWNCdWZmZXIuZGlzcG9zZSgpLHRoaXMuX2R5bmFtaWNWQU8uZGlzcG9zZSgpO2Zvcih2YXIgdD0wO3Q8MzsrK3Qpcy5mcmVlRmxvYXQodGhpcy5fZmllbGRbdF0uZGF0YSl9LFMuaGlnaGxpZ2h0PWZ1bmN0aW9uKHQpe3ZhciBlLHI7aWYoIXQpcmV0dXJuIHRoaXMuX2R5bmFtaWNDb3VudHM9WzAsMCwwXSx0aGlzLmR5YW5hbWljTGV2ZWw9W05hTixOYU4sTmFOXSx2b2lkKHRoaXMuaGlnaGxpZ2h0TGV2ZWw9Wy0xLC0xLC0xXSk7Zm9yKGU9MDtlPDM7KytlKXRoaXMuZW5hYmxlSGlnaGxpZ2h0W2VdP3RoaXMuaGlnaGxpZ2h0TGV2ZWxbZV09dC5sZXZlbFtlXTp0aGlzLmhpZ2hsaWdodExldmVsW2VdPS0xO2ZvcihyPXRoaXMuc25hcFRvRGF0YT90LmRhdGFDb29yZGluYXRlOnQucG9zaXRpb24sZT0wO2U8MzsrK2UpcltlXS09dGhpcy5vYmplY3RPZmZzZXRbZV07aWYodGhpcy5lbmFibGVEeW5hbWljWzBdJiZyWzBdIT09dGhpcy5keW5hbWljTGV2ZWxbMF18fHRoaXMuZW5hYmxlRHluYW1pY1sxXSYmclsxXSE9PXRoaXMuZHluYW1pY0xldmVsWzFdfHx0aGlzLmVuYWJsZUR5bmFtaWNbMl0mJnJbMl0hPT10aGlzLmR5bmFtaWNMZXZlbFsyXSl7Zm9yKHZhciBuPTAsaT10aGlzLnNoYXBlLGE9cy5tYWxsb2NGbG9hdCgxMippWzBdKmlbMV0pLG89MDtvPDM7KytvKWlmKHRoaXMuZW5hYmxlRHluYW1pY1tvXSl7dGhpcy5keW5hbWljTGV2ZWxbb109cltvXTt2YXIgbD0obysxKSUzLGM9KG8rMiklMyx1PXRoaXMuX2ZpZWxkW29dLGY9dGhpcy5fZmllbGRbbF0scD10aGlzLl9maWVsZFtjXSxkPWgodSxyW29dKSxtPWQuY2VsbHMsZz1kLnBvc2l0aW9ucztmb3IodGhpcy5fZHluYW1pY09mZnNldHNbb109bixlPTA7ZTxtLmxlbmd0aDsrK2UpZm9yKHZhciB2PW1bZV0seT0wO3k8MjsrK3kpe3ZhciB4PWdbdlt5XV0sYj0reFswXSxfPTB8Yix3PTB8TWF0aC5taW4oXysxLGlbMF0pLFQ9Yi1fLGs9MS1ULEE9K3hbMV0sTT0wfEEsUz0wfE1hdGgubWluKE0rMSxpWzFdKSxFPUEtTSxMPTEtRSxDPWsqTCxQPWsqRSxJPVQqTCxPPVQqRSx6PUMqZi5nZXQoXyxNKStQKmYuZ2V0KF8sUykrSSpmLmdldCh3LE0pK08qZi5nZXQodyxTKSxEPUMqcC5nZXQoXyxNKStQKnAuZ2V0KF8sUykrSSpwLmdldCh3LE0pK08qcC5nZXQodyxTKTtpZihpc05hTih6KXx8aXNOYU4oRCkpe3kmJihuLT0xKTticmVha31hWzIqbiswXT16LGFbMipuKzFdPUQsbis9MX10aGlzLl9keW5hbWljQ291bnRzW29dPW4tdGhpcy5fZHluYW1pY09mZnNldHNbb119ZWxzZSB0aGlzLmR5bmFtaWNMZXZlbFtvXT1OYU4sdGhpcy5fZHluYW1pY0NvdW50c1tvXT0wO3RoaXMuX2R5bmFtaWNCdWZmZXIudXBkYXRlKGEuc3ViYXJyYXkoMCwyKm4pKSxzLmZyZWVGbG9hdChhKX19fSx7Ii4vbGliL3NoYWRlcnMiOjMzNSwiYmluYXJ5LXNlYXJjaC1ib3VuZHMiOjEwMCwiYml0LXR3aWRkbGUiOjEwMSxjb2xvcm1hcDoxMzIsImdsLWJ1ZmZlciI6MjU3LCJnbC1tYXQ0L2ludmVydCI6Mjg3LCJnbC1tYXQ0L211bHRpcGx5IjoyODksImdsLXRleHR1cmUyZCI6MzM4LCJnbC12YW8iOjM0MyxuZGFycmF5OjQ2MiwibmRhcnJheS1ncmFkaWVudCI6NDU1LCJuZGFycmF5LW9wcyI6NDU3LCJuZGFycmF5LXBhY2siOjQ1OCwic3VyZmFjZS1uZXRzIjo1NjUsInR5cGVkYXJyYXktcG9vbCI6NTkwfV0sMzM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNzcy1mb250IiksaT10KCJwaWNrLWJ5LWFsaWFzIiksYT10KCJyZWdsIiksbz10KCJnbC11dGlsL2NvbnRleHQiKSxzPXQoImVzNi13ZWFrLW1hcCIpLGw9dCgiY29sb3Itbm9ybWFsaXplIiksYz10KCJmb250LWF0bGFzIiksdT10KCJ0eXBlZGFycmF5LXBvb2wiKSxmPXQoInBhcnNlLXJlY3QiKSxoPXQoImlzLXBsYWluLW9iaiIpLHA9dCgicGFyc2UtdW5pdCIpLGQ9dCgidG8tcHgiKSxtPXQoImRldGVjdC1rZXJuaW5nIiksZz10KCJvYmplY3QtYXNzaWduIiksdj10KCJmb250LW1lYXN1cmUiKSx5PXQoImZsYXR0ZW4tdmVydGV4LWRhdGEiKSx4PXQoImJpdC10d2lkZGxlIikubmV4dFBvdzIsYj1uZXcgcyxfPSExO2lmKGRvY3VtZW50LmJvZHkpe3ZhciB3PWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2IikpO3cuc3R5bGUuZm9udD0iaXRhbGljIHNtYWxsLWNhcHMgYm9sZCBjb25kZW5zZWQgMTZweC8yIGN1cnNpdmUiLGdldENvbXB1dGVkU3R5bGUodykuZm9udFN0cmV0Y2gmJihfPSEwKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKHcpfXZhciBUPWZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0KXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgdCYmdC5fZ2wmJnQucHJvcCYmdC50ZXh0dXJlJiZ0LmJ1ZmZlcn0odCk/dGhpcy5nbD1vKHQpOih0PXtyZWdsOnR9LHRoaXMuZ2w9dC5yZWdsLl9nbCksdGhpcy5zaGFkZXI9Yi5nZXQodGhpcy5nbCksdGhpcy5zaGFkZXI/dGhpcy5yZWdsPXRoaXMuc2hhZGVyLnJlZ2w6dGhpcy5yZWdsPXQucmVnbHx8YSh7Z2w6dGhpcy5nbH0pLHRoaXMuY2hhckJ1ZmZlcj10aGlzLnJlZ2wuYnVmZmVyKHt0eXBlOiJ1aW50OCIsdXNhZ2U6InN0cmVhbSJ9KSx0aGlzLnNpemVCdWZmZXI9dGhpcy5yZWdsLmJ1ZmZlcih7dHlwZToiZmxvYXQiLHVzYWdlOiJzdHJlYW0ifSksdGhpcy5zaGFkZXJ8fCh0aGlzLnNoYWRlcj10aGlzLmNyZWF0ZVNoYWRlcigpLGIuc2V0KHRoaXMuZ2wsdGhpcy5zaGFkZXIpKSx0aGlzLmJhdGNoPVtdLHRoaXMuZm9udFNpemU9W10sdGhpcy5mb250PVtdLHRoaXMuZm9udEF0bGFzPVtdLHRoaXMuZHJhdz10aGlzLnNoYWRlci5kcmF3LmJpbmQodGhpcyksdGhpcy5yZW5kZXI9ZnVuY3Rpb24oKXt0aGlzLnJlZ2wuX3JlZnJlc2goKSx0aGlzLmRyYXcodGhpcy5iYXRjaCl9LHRoaXMuY2FudmFzPXRoaXMuZ2wuY2FudmFzLHRoaXMudXBkYXRlKGgodCk/dDp7fSl9O1QucHJvdG90eXBlLmNyZWF0ZVNoYWRlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMucmVnbCxlPXQoe2JsZW5kOntlbmFibGU6ITAsY29sb3I6WzAsMCwwLDFdLGZ1bmM6e3NyY1JHQjoic3JjIGFscGhhIixkc3RSR0I6Im9uZSBtaW51cyBzcmMgYWxwaGEiLHNyY0FscGhhOiJvbmUgbWludXMgZHN0IGFscGhhIixkc3RBbHBoYToib25lIn19LHN0ZW5jaWw6e2VuYWJsZTohMX0sZGVwdGg6e2VuYWJsZTohMX0sY291bnQ6dC5wcm9wKCJjb3VudCIpLG9mZnNldDp0LnByb3AoIm9mZnNldCIpLGF0dHJpYnV0ZXM6e2NoYXJPZmZzZXQ6e29mZnNldDo0LHN0cmlkZTo4LGJ1ZmZlcjp0LnRoaXMoInNpemVCdWZmZXIiKX0sd2lkdGg6e29mZnNldDowLHN0cmlkZTo4LGJ1ZmZlcjp0LnRoaXMoInNpemVCdWZmZXIiKX0sY2hhcjp0LnRoaXMoImNoYXJCdWZmZXIiKSxwb3NpdGlvbjp0LnRoaXMoInBvc2l0aW9uIil9LHVuaWZvcm1zOnthdGxhc1NpemU6ZnVuY3Rpb24odCxlKXtyZXR1cm5bZS5hdGxhcy53aWR0aCxlLmF0bGFzLmhlaWdodF19LGF0bGFzRGltOmZ1bmN0aW9uKHQsZSl7cmV0dXJuW2UuYXRsYXMuY29scyxlLmF0bGFzLnJvd3NdfSxhdGxhczpmdW5jdGlvbih0LGUpe3JldHVybiBlLmF0bGFzLnRleHR1cmV9LGNoYXJTdGVwOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuYXRsYXMuc3RlcH0sZW06ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5hdGxhcy5lbX0sY29sb3I6dC5wcm9wKCJjb2xvciIpLG9wYWNpdHk6dC5wcm9wKCJvcGFjaXR5Iiksdmlld3BvcnQ6dC50aGlzKCJ2aWV3cG9ydEFycmF5Iiksc2NhbGU6dC50aGlzKCJzY2FsZSIpLGFsaWduOnQucHJvcCgiYWxpZ24iKSxiYXNlbGluZTp0LnByb3AoImJhc2VsaW5lIiksdHJhbnNsYXRlOnQudGhpcygidHJhbnNsYXRlIikscG9zaXRpb25PZmZzZXQ6dC5wcm9wKCJwb3NpdGlvbk9mZnNldCIpfSxwcmltaXRpdmU6InBvaW50cyIsdmlld3BvcnQ6dC50aGlzKCJ2aWV3cG9ydCIpLHZlcnQ6IlxuXHRcdFx0cHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuXHRcdFx0YXR0cmlidXRlIGZsb2F0IHdpZHRoLCBjaGFyT2Zmc2V0LCBjaGFyO1xuXHRcdFx0YXR0cmlidXRlIHZlYzIgcG9zaXRpb247XG5cdFx0XHR1bmlmb3JtIGZsb2F0IGZvbnRTaXplLCBjaGFyU3RlcCwgZW0sIGFsaWduLCBiYXNlbGluZTtcblx0XHRcdHVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcblx0XHRcdHVuaWZvcm0gdmVjNCBjb2xvcjtcblx0XHRcdHVuaWZvcm0gdmVjMiBhdGxhc1NpemUsIGF0bGFzRGltLCBzY2FsZSwgdHJhbnNsYXRlLCBwb3NpdGlvbk9mZnNldDtcblx0XHRcdHZhcnlpbmcgdmVjMiBjaGFyQ29vcmQsIGNoYXJJZDtcblx0XHRcdHZhcnlpbmcgZmxvYXQgY2hhcldpZHRoO1xuXHRcdFx0dmFyeWluZyB2ZWM0IGZvbnRDb2xvcjtcblx0XHRcdHZvaWQgbWFpbiAoKSB7XG5cdFx0XHRcdHZlYzIgb2Zmc2V0ID0gZmxvb3IoZW0gKiAodmVjMihhbGlnbiArIGNoYXJPZmZzZXQsIGJhc2VsaW5lKVxuXHRcdFx0XHRcdCsgdmVjMihwb3NpdGlvbk9mZnNldC54LCAtcG9zaXRpb25PZmZzZXQueSkpKVxuXHRcdFx0XHRcdC8gKHZpZXdwb3J0Lnp3ICogc2NhbGUueHkpO1xuXG5cdFx0XHRcdHZlYzIgcG9zaXRpb24gPSAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGU7XG5cdFx0XHRcdHBvc2l0aW9uICs9IG9mZnNldCAqIHNjYWxlO1xuXG5cdFx0XHRcdGNoYXJDb29yZCA9IHBvc2l0aW9uICogdmlld3BvcnQuencgKyB2aWV3cG9ydC54eTtcblxuXHRcdFx0XHRnbF9Qb3NpdGlvbiA9IHZlYzQocG9zaXRpb24gKiAyLiAtIDEuLCAwLCAxKTtcblxuXHRcdFx0XHRnbF9Qb2ludFNpemUgPSBjaGFyU3RlcDtcblxuXHRcdFx0XHRjaGFySWQueCA9IG1vZChjaGFyLCBhdGxhc0RpbS54KTtcblx0XHRcdFx0Y2hhcklkLnkgPSBmbG9vcihjaGFyIC8gYXRsYXNEaW0ueCk7XG5cblx0XHRcdFx0Y2hhcldpZHRoID0gd2lkdGggKiBlbTtcblxuXHRcdFx0XHRmb250Q29sb3IgPSBjb2xvciAvIDI1NS47XG5cdFx0XHR9IixmcmFnOiJcblx0XHRcdHByZWNpc2lvbiBoaWdocCBmbG9hdDtcblx0XHRcdHVuaWZvcm0gZmxvYXQgZm9udFNpemUsIGNoYXJTdGVwLCBvcGFjaXR5O1xuXHRcdFx0dW5pZm9ybSB2ZWMyIGF0bGFzU2l6ZTtcblx0XHRcdHVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcblx0XHRcdHVuaWZvcm0gc2FtcGxlcjJEIGF0bGFzO1xuXHRcdFx0dmFyeWluZyB2ZWM0IGZvbnRDb2xvcjtcblx0XHRcdHZhcnlpbmcgdmVjMiBjaGFyQ29vcmQsIGNoYXJJZDtcblx0XHRcdHZhcnlpbmcgZmxvYXQgY2hhcldpZHRoO1xuXG5cdFx0XHRmbG9hdCBsaWdodG5lc3ModmVjNCBjb2xvcikge1xuXHRcdFx0XHRyZXR1cm4gY29sb3IuciAqIDAuMjk5ICsgY29sb3IuZyAqIDAuNTg3ICsgY29sb3IuYiAqIDAuMTE0O1xuXHRcdFx0fVxuXG5cdFx0XHR2b2lkIG1haW4gKCkge1xuXHRcdFx0XHR2ZWMyIHV2ID0gZ2xfRnJhZ0Nvb3JkLnh5IC0gY2hhckNvb3JkICsgY2hhclN0ZXAgKiAuNTtcblx0XHRcdFx0ZmxvYXQgaGFsZkNoYXJTdGVwID0gZmxvb3IoY2hhclN0ZXAgKiAuNSArIC41KTtcblxuXHRcdFx0XHQvLyBpbnZlcnQgeSBhbmQgc2hpZnQgYnkgMXB4IChGRiBleHBlY2lhbGx5IG5lZWRzIHRoYXQpXG5cdFx0XHRcdHV2LnkgPSBjaGFyU3RlcCAtIHV2Lnk7XG5cblx0XHRcdFx0Ly8gaWdub3JlIHBvaW50cyBvdXRzaWRlIG9mIGNoYXJhY3RlciBib3VuZGluZyBib3hcblx0XHRcdFx0ZmxvYXQgaGFsZkNoYXJXaWR0aCA9IGNlaWwoY2hhcldpZHRoICogLjUpO1xuXHRcdFx0XHRpZiAoZmxvb3IodXYueCkgPiBoYWxmQ2hhclN0ZXAgKyBoYWxmQ2hhcldpZHRoIHx8XG5cdFx0XHRcdFx0Zmxvb3IodXYueCkgPCBoYWxmQ2hhclN0ZXAgLSBoYWxmQ2hhcldpZHRoKSByZXR1cm47XG5cblx0XHRcdFx0dXYgKz0gY2hhcklkICogY2hhclN0ZXA7XG5cdFx0XHRcdHV2ID0gdXYgLyBhdGxhc1NpemU7XG5cblx0XHRcdFx0dmVjNCBjb2xvciA9IGZvbnRDb2xvcjtcblx0XHRcdFx0dmVjNCBtYXNrID0gdGV4dHVyZTJEKGF0bGFzLCB1dik7XG5cblx0XHRcdFx0ZmxvYXQgbWFza1kgPSBsaWdodG5lc3MobWFzayk7XG5cdFx0XHRcdC8vIGZsb2F0IGNvbG9yWSA9IGxpZ2h0bmVzcyhjb2xvcik7XG5cdFx0XHRcdGNvbG9yLmEgKj0gbWFza1k7XG5cdFx0XHRcdGNvbG9yLmEgKj0gb3BhY2l0eTtcblxuXHRcdFx0XHQvLyBjb2xvci5hICs9IC4xO1xuXG5cdFx0XHRcdC8vIGFudGlhbGlhc2luZywgc2VlIHlpcSBjb2xvciBzcGFjZSB5LWNoYW5uZWwgZm9ybXVsYVxuXHRcdFx0XHQvLyBjb2xvci5yZ2IgKz0gKDEuIC0gY29sb3IucmdiKSAqICgxLiAtIG1hc2sucmdiKTtcblxuXHRcdFx0XHRnbF9GcmFnQ29sb3IgPSBjb2xvcjtcblx0XHRcdH0ifSk7cmV0dXJue3JlZ2w6dCxkcmF3OmUsYXRsYXM6e319fSxULnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZigic3RyaW5nIj09dHlwZW9mIHQpdD17dGV4dDp0fTtlbHNlIGlmKCF0KXJldHVybjtudWxsIT0odD1pKHQse3Bvc2l0aW9uOiJwb3NpdGlvbiBwb3NpdGlvbnMgY29vcmQgY29vcmRzIGNvb3JkaW5hdGVzIixmb250OiJmb250IGZvbnRGYWNlIGZvbnRmYWNlIHR5cGVmYWNlIGNzc0ZvbnQgY3NzLWZvbnQgZmFtaWx5IGZvbnRGYW1pbHkiLGZvbnRTaXplOiJmb250U2l6ZSBmb250c2l6ZSBzaXplIGZvbnQtc2l6ZSIsdGV4dDoidGV4dCB0ZXh0cyBjaGFycyBjaGFyYWN0ZXJzIHZhbHVlIHZhbHVlcyBzeW1ib2xzIixhbGlnbjoiYWxpZ24gYWxpZ25tZW50IHRleHRBbGlnbiB0ZXh0YmFzZWxpbmUiLGJhc2VsaW5lOiJiYXNlbGluZSB0ZXh0QmFzZWxpbmUgdGV4dGJhc2VsaW5lIixkaXJlY3Rpb246ImRpciBkaXJlY3Rpb24gdGV4dERpcmVjdGlvbiIsY29sb3I6ImNvbG9yIGNvbG91ciBmaWxsIGZpbGwtY29sb3IgZmlsbENvbG9yIHRleHRDb2xvciB0ZXh0Y29sb3IiLGtlcm5pbmc6Imtlcm5pbmcga2VybiIscmFuZ2U6InJhbmdlIGRhdGFCb3giLHZpZXdwb3J0OiJ2cCB2aWV3cG9ydCB2aWV3Qm94IHZpZXdib3ggdmlld1BvcnQiLG9wYWNpdHk6Im9wYWNpdHkgYWxwaGEgdHJhbnNwYXJlbmN5IHZpc2libGUgdmlzaWJpbGl0eSBvcGFxdWUiLG9mZnNldDoib2Zmc2V0IHBvc2l0aW9uT2Zmc2V0IHBhZGRpbmcgc2hpZnQgaW5kZW50IGluZGVudGF0aW9uIn0sITApKS5vcGFjaXR5JiYoQXJyYXkuaXNBcnJheSh0Lm9wYWNpdHkpP3RoaXMub3BhY2l0eT10Lm9wYWNpdHkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcGFyc2VGbG9hdCh0KX0pKTp0aGlzLm9wYWNpdHk9cGFyc2VGbG9hdCh0Lm9wYWNpdHkpKSxudWxsIT10LnZpZXdwb3J0JiYodGhpcy52aWV3cG9ydD1mKHQudmlld3BvcnQpLHRoaXMudmlld3BvcnRBcnJheT1bdGhpcy52aWV3cG9ydC54LHRoaXMudmlld3BvcnQueSx0aGlzLnZpZXdwb3J0LndpZHRoLHRoaXMudmlld3BvcnQuaGVpZ2h0XSksbnVsbD09dGhpcy52aWV3cG9ydCYmKHRoaXMudmlld3BvcnQ9e3g6MCx5OjAsd2lkdGg6dGhpcy5nbC5kcmF3aW5nQnVmZmVyV2lkdGgsaGVpZ2h0OnRoaXMuZ2wuZHJhd2luZ0J1ZmZlckhlaWdodH0sdGhpcy52aWV3cG9ydEFycmF5PVt0aGlzLnZpZXdwb3J0LngsdGhpcy52aWV3cG9ydC55LHRoaXMudmlld3BvcnQud2lkdGgsdGhpcy52aWV3cG9ydC5oZWlnaHRdKSxudWxsIT10Lmtlcm5pbmcmJih0aGlzLmtlcm5pbmc9dC5rZXJuaW5nKSxudWxsIT10Lm9mZnNldCYmKCJudW1iZXIiPT10eXBlb2YgdC5vZmZzZXQmJih0Lm9mZnNldD1bdC5vZmZzZXQsMF0pLHRoaXMucG9zaXRpb25PZmZzZXQ9eSh0Lm9mZnNldCkpLHQuZGlyZWN0aW9uJiYodGhpcy5kaXJlY3Rpb249dC5kaXJlY3Rpb24pLHQucmFuZ2UmJih0aGlzLnJhbmdlPXQucmFuZ2UsdGhpcy5zY2FsZT1bMS8odC5yYW5nZVsyXS10LnJhbmdlWzBdKSwxLyh0LnJhbmdlWzNdLXQucmFuZ2VbMV0pXSx0aGlzLnRyYW5zbGF0ZT1bLXQucmFuZ2VbMF0sLXQucmFuZ2VbMV1dKSx0LnNjYWxlJiYodGhpcy5zY2FsZT10LnNjYWxlKSx0LnRyYW5zbGF0ZSYmKHRoaXMudHJhbnNsYXRlPXQudHJhbnNsYXRlKSx0aGlzLnNjYWxlfHwodGhpcy5zY2FsZT1bMS90aGlzLnZpZXdwb3J0LndpZHRoLDEvdGhpcy52aWV3cG9ydC5oZWlnaHRdKSx0aGlzLnRyYW5zbGF0ZXx8KHRoaXMudHJhbnNsYXRlPVswLDBdKSx0aGlzLmZvbnQubGVuZ3RofHx0LmZvbnR8fCh0LmZvbnQ9VC5iYXNlRm9udFNpemUrInB4IHNhbnMtc2VyaWYiKTt2YXIgcixhPSExLG89ITE7aWYodC5mb250JiYoQXJyYXkuaXNBcnJheSh0LmZvbnQpP3QuZm9udDpbdC5mb250XSkuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXtpZigic3RyaW5nIj09dHlwZW9mIHQpdHJ5e3Q9bi5wYXJzZSh0KX1jYXRjaChlKXt0PW4ucGFyc2UoVC5iYXNlRm9udFNpemUrInB4ICIrdCl9ZWxzZSB0PW4ucGFyc2Uobi5zdHJpbmdpZnkodCkpO3ZhciBpPW4uc3RyaW5naWZ5KHtzaXplOlQuYmFzZUZvbnRTaXplLGZhbWlseTp0LmZhbWlseSxzdHJldGNoOl8/dC5zdHJldGNoOnZvaWQgMCx2YXJpYW50OnQudmFyaWFudCx3ZWlnaHQ6dC53ZWlnaHQsc3R5bGU6dC5zdHlsZX0pLHM9cCh0LnNpemUpLGw9TWF0aC5yb3VuZChzWzBdKmQoc1sxXSkpO2lmKGwhPT1lLmZvbnRTaXplW3JdJiYobz0hMCxlLmZvbnRTaXplW3JdPWwpLCEoZS5mb250W3JdJiZpPT1lLmZvbnRbcl0uYmFzZVN0cmluZ3x8KGE9ITAsZS5mb250W3JdPVQuZm9udHNbaV0sZS5mb250W3JdKSkpe3ZhciBjPXQuZmFtaWx5LmpvaW4oIiwgIiksdT1bdC5zdHlsZV07dC5zdHlsZSE9dC52YXJpYW50JiZ1LnB1c2godC52YXJpYW50KSx0LnZhcmlhbnQhPXQud2VpZ2h0JiZ1LnB1c2godC53ZWlnaHQpLF8mJnQud2VpZ2h0IT10LnN0cmV0Y2gmJnUucHVzaCh0LnN0cmV0Y2gpLGUuZm9udFtyXT17YmFzZVN0cmluZzppLGZhbWlseTpjLHdlaWdodDp0LndlaWdodCxzdHJldGNoOnQuc3RyZXRjaCxzdHlsZTp0LnN0eWxlLHZhcmlhbnQ6dC52YXJpYW50LHdpZHRoOnt9LGtlcm5pbmc6e30sbWV0cmljczp2KGMse29yaWdpbjoidG9wIixmb250U2l6ZTpULmJhc2VGb250U2l6ZSxmb250U3R5bGU6dS5qb2luKCIgIil9KX0sVC5mb250c1tpXT1lLmZvbnRbcl19fSkpLChhfHxvKSYmdGhpcy5mb250LmZvckVhY2goKGZ1bmN0aW9uKHIsaSl7dmFyIGE9bi5zdHJpbmdpZnkoe3NpemU6ZS5mb250U2l6ZVtpXSxmYW1pbHk6ci5mYW1pbHksc3RyZXRjaDpfP3Iuc3RyZXRjaDp2b2lkIDAsdmFyaWFudDpyLnZhcmlhbnQsd2VpZ2h0OnIud2VpZ2h0LHN0eWxlOnIuc3R5bGV9KTtpZihlLmZvbnRBdGxhc1tpXT1lLnNoYWRlci5hdGxhc1thXSwhZS5mb250QXRsYXNbaV0pe3ZhciBvPXIubWV0cmljcztlLnNoYWRlci5hdGxhc1thXT1lLmZvbnRBdGxhc1tpXT17Zm9udFN0cmluZzphLHN0ZXA6MipNYXRoLmNlaWwoZS5mb250U2l6ZVtpXSpvLmJvdHRvbSouNSksZW06ZS5mb250U2l6ZVtpXSxjb2xzOjAscm93czowLGhlaWdodDowLHdpZHRoOjAsY2hhcnM6W10saWRzOnt9LHRleHR1cmU6ZS5yZWdsLnRleHR1cmUoKX19bnVsbD09dC50ZXh0JiYodC50ZXh0PWUudGV4dCl9KSksInN0cmluZyI9PXR5cGVvZiB0LnRleHQmJnQucG9zaXRpb24mJnQucG9zaXRpb24ubGVuZ3RoPjIpe2Zvcih2YXIgcz1BcnJheSguNSp0LnBvc2l0aW9uLmxlbmd0aCksaD0wO2g8cy5sZW5ndGg7aCsrKXNbaF09dC50ZXh0O3QudGV4dD1zfWlmKG51bGwhPXQudGV4dHx8YSl7aWYodGhpcy50ZXh0T2Zmc2V0cz1bMF0sQXJyYXkuaXNBcnJheSh0LnRleHQpKXt0aGlzLmNvdW50PXQudGV4dFswXS5sZW5ndGgsdGhpcy5jb3VudHM9W3RoaXMuY291bnRdO2Zvcih2YXIgYj0xO2I8dC50ZXh0Lmxlbmd0aDtiKyspdGhpcy50ZXh0T2Zmc2V0c1tiXT10aGlzLnRleHRPZmZzZXRzW2ItMV0rdC50ZXh0W2ItMV0ubGVuZ3RoLHRoaXMuY291bnQrPXQudGV4dFtiXS5sZW5ndGgsdGhpcy5jb3VudHMucHVzaCh0LnRleHRbYl0ubGVuZ3RoKTt0aGlzLnRleHQ9dC50ZXh0LmpvaW4oIiIpfWVsc2UgdGhpcy50ZXh0PXQudGV4dCx0aGlzLmNvdW50PXRoaXMudGV4dC5sZW5ndGgsdGhpcy5jb3VudHM9W3RoaXMuY291bnRdO3I9W10sdGhpcy5mb250LmZvckVhY2goKGZ1bmN0aW9uKHQsbil7VC5hdGxhc0NvbnRleHQuZm9udD10LmJhc2VTdHJpbmc7Zm9yKHZhciBpPWUuZm9udEF0bGFzW25dLGE9MDthPGUudGV4dC5sZW5ndGg7YSsrKXt2YXIgbz1lLnRleHQuY2hhckF0KGEpO2lmKG51bGw9PWkuaWRzW29dJiYoaS5pZHNbb109aS5jaGFycy5sZW5ndGgsaS5jaGFycy5wdXNoKG8pLHIucHVzaChvKSksbnVsbD09dC53aWR0aFtvXSYmKHQud2lkdGhbb109VC5hdGxhc0NvbnRleHQubWVhc3VyZVRleHQobykud2lkdGgvVC5iYXNlRm9udFNpemUsZS5rZXJuaW5nKSl7dmFyIHM9W107Zm9yKHZhciBsIGluIHQud2lkdGgpcy5wdXNoKGwrbyxvK2wpO2codC5rZXJuaW5nLG0odC5mYW1pbHkse3BhaXJzOnN9KSl9fX0pKX1pZih0LnBvc2l0aW9uKWlmKHQucG9zaXRpb24ubGVuZ3RoPjIpe2Zvcih2YXIgdz0hdC5wb3NpdGlvblswXS5sZW5ndGgsaz11Lm1hbGxvY0Zsb2F0KDIqdGhpcy5jb3VudCksQT0wLE09MDtBPHRoaXMuY291bnRzLmxlbmd0aDtBKyspe3ZhciBTPXRoaXMuY291bnRzW0FdO2lmKHcpZm9yKHZhciBFPTA7RTxTO0UrKylrW00rK109dC5wb3NpdGlvblsyKkFdLGtbTSsrXT10LnBvc2l0aW9uWzIqQSsxXTtlbHNlIGZvcih2YXIgTD0wO0w8UztMKyspa1tNKytdPXQucG9zaXRpb25bQV1bMF0sa1tNKytdPXQucG9zaXRpb25bQV1bMV19dGhpcy5wb3NpdGlvbi5jYWxsP3RoaXMucG9zaXRpb24oe3R5cGU6ImZsb2F0IixkYXRhOmt9KTp0aGlzLnBvc2l0aW9uPXRoaXMucmVnbC5idWZmZXIoe3R5cGU6ImZsb2F0IixkYXRhOmt9KSx1LmZyZWVGbG9hdChrKX1lbHNlIHRoaXMucG9zaXRpb24uZGVzdHJveSYmdGhpcy5wb3NpdGlvbi5kZXN0cm95KCksdGhpcy5wb3NpdGlvbj17Y29uc3RhbnQ6dC5wb3NpdGlvbn07aWYodC50ZXh0fHxhKXt2YXIgQz11Lm1hbGxvY1VpbnQ4KHRoaXMuY291bnQpLFA9dS5tYWxsb2NGbG9hdCgyKnRoaXMuY291bnQpO3RoaXMudGV4dFdpZHRoPVtdO2Zvcih2YXIgST0wLE89MDtJPHRoaXMuY291bnRzLmxlbmd0aDtJKyspe2Zvcih2YXIgej10aGlzLmNvdW50c1tJXSxEPXRoaXMuZm9udFtJXXx8dGhpcy5mb250WzBdLFI9dGhpcy5mb250QXRsYXNbSV18fHRoaXMuZm9udEF0bGFzWzBdLEY9MDtGPHo7RisrKXt2YXIgQj10aGlzLnRleHQuY2hhckF0KE8pLE49dGhpcy50ZXh0LmNoYXJBdChPLTEpO2lmKENbT109Ui5pZHNbQl0sUFsyKk9dPUQud2lkdGhbQl0sRil7dmFyIGo9UFsyKk8tMl0sVT1QWzIqT10sVj1QWzIqTy0xXSsuNSpqKy41KlU7aWYodGhpcy5rZXJuaW5nKXt2YXIgSD1ELmtlcm5pbmdbTitCXTtIJiYoVis9LjAwMSpIKX1QWzIqTysxXT1WfWVsc2UgUFsyKk8rMV09LjUqUFsyKk9dO08rK310aGlzLnRleHRXaWR0aC5wdXNoKFAubGVuZ3RoPy41KlBbMipPLTJdK1BbMipPLTFdOjApfXQuYWxpZ258fCh0LmFsaWduPXRoaXMuYWxpZ24pLHRoaXMuY2hhckJ1ZmZlcih7ZGF0YTpDLHR5cGU6InVpbnQ4Iix1c2FnZToic3RyZWFtIn0pLHRoaXMuc2l6ZUJ1ZmZlcih7ZGF0YTpQLHR5cGU6ImZsb2F0Iix1c2FnZToic3RyZWFtIn0pLHUuZnJlZVVpbnQ4KEMpLHUuZnJlZUZsb2F0KFApLHIubGVuZ3RoJiZ0aGlzLmZvbnQuZm9yRWFjaCgoZnVuY3Rpb24odCxyKXt2YXIgbj1lLmZvbnRBdGxhc1tyXSxpPW4uc3RlcCxhPU1hdGguZmxvb3IoVC5tYXhBdGxhc1NpemUvaSksbz1NYXRoLm1pbihhLG4uY2hhcnMubGVuZ3RoKSxzPU1hdGguY2VpbChuLmNoYXJzLmxlbmd0aC9vKSxsPXgobyppKSx1PXgocyppKTtuLndpZHRoPWwsbi5oZWlnaHQ9dSxuLnJvd3M9cyxuLmNvbHM9byxuLmVtJiZuLnRleHR1cmUoe2RhdGE6Yyh7Y2FudmFzOlQuYXRsYXNDYW52YXMsZm9udDpuLmZvbnRTdHJpbmcsY2hhcnM6bi5jaGFycyxzaGFwZTpbbCx1XSxzdGVwOltpLGldfSl9KX0pKX1pZih0LmFsaWduJiYodGhpcy5hbGlnbj10LmFsaWduLHRoaXMuYWxpZ25PZmZzZXQ9dGhpcy50ZXh0V2lkdGgubWFwKChmdW5jdGlvbih0LHIpe3ZhciBuPUFycmF5LmlzQXJyYXkoZS5hbGlnbik/ZS5hbGlnbi5sZW5ndGg+MT9lLmFsaWduW3JdOmUuYWxpZ25bMF06ZS5hbGlnbjtpZigibnVtYmVyIj09dHlwZW9mIG4pcmV0dXJuIG47c3dpdGNoKG4pe2Nhc2UicmlnaHQiOmNhc2UiZW5kIjpyZXR1cm4tdDtjYXNlImNlbnRlciI6Y2FzZSJjZW50cmUiOmNhc2UibWlkZGxlIjpyZXR1cm4uNSotdH1yZXR1cm4gMH0pKSksbnVsbD09dGhpcy5iYXNlbGluZSYmbnVsbD09dC5iYXNlbGluZSYmKHQuYmFzZWxpbmU9MCksbnVsbCE9dC5iYXNlbGluZSYmKHRoaXMuYmFzZWxpbmU9dC5iYXNlbGluZSxBcnJheS5pc0FycmF5KHRoaXMuYmFzZWxpbmUpfHwodGhpcy5iYXNlbGluZT1bdGhpcy5iYXNlbGluZV0pLHRoaXMuYmFzZWxpbmVPZmZzZXQ9dGhpcy5iYXNlbGluZS5tYXAoKGZ1bmN0aW9uKHQscil7dmFyIG49KGUuZm9udFtyXXx8ZS5mb250WzBdKS5tZXRyaWNzLGk9MDtyZXR1cm4gaSs9LjUqbi5ib3R0b20saSs9Im51bWJlciI9PXR5cGVvZiB0P3Qtbi5iYXNlbGluZTotblt0XSxpKj0tMX0pKSksbnVsbCE9dC5jb2xvcilpZih0LmNvbG9yfHwodC5jb2xvcj0idHJhbnNwYXJlbnQiKSwic3RyaW5nIiE9dHlwZW9mIHQuY29sb3ImJmlzTmFOKHQuY29sb3IpKXt2YXIgcTtpZigibnVtYmVyIj09dHlwZW9mIHQuY29sb3JbMF0mJnQuY29sb3IubGVuZ3RoPnRoaXMuY291bnRzLmxlbmd0aCl7dmFyIEc9dC5jb2xvci5sZW5ndGg7cT11Lm1hbGxvY1VpbnQ4KEcpO2Zvcih2YXIgWT0odC5jb2xvci5zdWJhcnJheXx8dC5jb2xvci5zbGljZSkuYmluZCh0LmNvbG9yKSxXPTA7VzxHO1crPTQpcS5zZXQobChZKFcsVys0KSwidWludDgiKSxXKX1lbHNle3ZhciBYPXQuY29sb3IubGVuZ3RoO3E9dS5tYWxsb2NVaW50OCg0KlgpO2Zvcih2YXIgWj0wO1o8WDtaKyspcS5zZXQobCh0LmNvbG9yW1pdfHwwLCJ1aW50OCIpLDQqWil9dGhpcy5jb2xvcj1xfWVsc2UgdGhpcy5jb2xvcj1sKHQuY29sb3IsInVpbnQ4Iik7aWYodC5wb3NpdGlvbnx8dC50ZXh0fHx0LmNvbG9yfHx0LmJhc2VsaW5lfHx0LmFsaWdufHx0LmZvbnR8fHQub2Zmc2V0fHx0Lm9wYWNpdHkpaWYodGhpcy5jb2xvci5sZW5ndGg+NHx8dGhpcy5iYXNlbGluZU9mZnNldC5sZW5ndGg+MXx8dGhpcy5hbGlnbiYmdGhpcy5hbGlnbi5sZW5ndGg+MXx8dGhpcy5mb250QXRsYXMubGVuZ3RoPjF8fHRoaXMucG9zaXRpb25PZmZzZXQubGVuZ3RoPjIpe3ZhciBKPU1hdGgubWF4KC41KnRoaXMucG9zaXRpb24ubGVuZ3RofHwwLC4yNSp0aGlzLmNvbG9yLmxlbmd0aHx8MCx0aGlzLmJhc2VsaW5lT2Zmc2V0Lmxlbmd0aHx8MCx0aGlzLmFsaWduT2Zmc2V0Lmxlbmd0aHx8MCx0aGlzLmZvbnQubGVuZ3RofHwwLHRoaXMub3BhY2l0eS5sZW5ndGh8fDAsLjUqdGhpcy5wb3NpdGlvbk9mZnNldC5sZW5ndGh8fDApO3RoaXMuYmF0Y2g9QXJyYXkoSik7Zm9yKHZhciBLPTA7Szx0aGlzLmJhdGNoLmxlbmd0aDtLKyspdGhpcy5iYXRjaFtLXT17Y291bnQ6dGhpcy5jb3VudHMubGVuZ3RoPjE/dGhpcy5jb3VudHNbS106dGhpcy5jb3VudHNbMF0sb2Zmc2V0OnRoaXMudGV4dE9mZnNldHMubGVuZ3RoPjE/dGhpcy50ZXh0T2Zmc2V0c1tLXTp0aGlzLnRleHRPZmZzZXRzWzBdLGNvbG9yOnRoaXMuY29sb3I/dGhpcy5jb2xvci5sZW5ndGg8PTQ/dGhpcy5jb2xvcjp0aGlzLmNvbG9yLnN1YmFycmF5KDQqSyw0KksrNCk6WzAsMCwwLDI1NV0sb3BhY2l0eTpBcnJheS5pc0FycmF5KHRoaXMub3BhY2l0eSk/dGhpcy5vcGFjaXR5W0tdOnRoaXMub3BhY2l0eSxiYXNlbGluZTpudWxsIT10aGlzLmJhc2VsaW5lT2Zmc2V0W0tdP3RoaXMuYmFzZWxpbmVPZmZzZXRbS106dGhpcy5iYXNlbGluZU9mZnNldFswXSxhbGlnbjp0aGlzLmFsaWduP251bGwhPXRoaXMuYWxpZ25PZmZzZXRbS10/dGhpcy5hbGlnbk9mZnNldFtLXTp0aGlzLmFsaWduT2Zmc2V0WzBdOjAsYXRsYXM6dGhpcy5mb250QXRsYXNbS118fHRoaXMuZm9udEF0bGFzWzBdLHBvc2l0aW9uT2Zmc2V0OnRoaXMucG9zaXRpb25PZmZzZXQubGVuZ3RoPjI/dGhpcy5wb3NpdGlvbk9mZnNldC5zdWJhcnJheSgyKkssMipLKzIpOnRoaXMucG9zaXRpb25PZmZzZXR9fWVsc2UgdGhpcy5jb3VudD90aGlzLmJhdGNoPVt7Y291bnQ6dGhpcy5jb3VudCxvZmZzZXQ6MCxjb2xvcjp0aGlzLmNvbG9yfHxbMCwwLDAsMjU1XSxvcGFjaXR5OkFycmF5LmlzQXJyYXkodGhpcy5vcGFjaXR5KT90aGlzLm9wYWNpdHlbMF06dGhpcy5vcGFjaXR5LGJhc2VsaW5lOnRoaXMuYmFzZWxpbmVPZmZzZXRbMF0sYWxpZ246dGhpcy5hbGlnbk9mZnNldD90aGlzLmFsaWduT2Zmc2V0WzBdOjAsYXRsYXM6dGhpcy5mb250QXRsYXNbMF0scG9zaXRpb25PZmZzZXQ6dGhpcy5wb3NpdGlvbk9mZnNldH1dOnRoaXMuYmF0Y2g9W119LFQucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt9LFQucHJvdG90eXBlLmtlcm5pbmc9ITAsVC5wcm90b3R5cGUucG9zaXRpb249e2NvbnN0YW50Om5ldyBGbG9hdDMyQXJyYXkoMil9LFQucHJvdG90eXBlLnRyYW5zbGF0ZT1udWxsLFQucHJvdG90eXBlLnNjYWxlPW51bGwsVC5wcm90b3R5cGUuZm9udD1udWxsLFQucHJvdG90eXBlLnRleHQ9IiIsVC5wcm90b3R5cGUucG9zaXRpb25PZmZzZXQ9WzAsMF0sVC5wcm90b3R5cGUub3BhY2l0eT0xLFQucHJvdG90eXBlLmNvbG9yPW5ldyBVaW50OEFycmF5KFswLDAsMCwyNTVdKSxULnByb3RvdHlwZS5hbGlnbk9mZnNldD1bMCwwXSxULm1heEF0bGFzU2l6ZT0xMDI0LFQuYXRsYXNDYW52YXM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksVC5hdGxhc0NvbnRleHQ9VC5hdGxhc0NhbnZhcy5nZXRDb250ZXh0KCIyZCIse2FscGhhOiExfSksVC5iYXNlRm9udFNpemU9NjQsVC5mb250cz17fSxlLmV4cG9ydHM9VH0seyJiaXQtdHdpZGRsZSI6MTAxLCJjb2xvci1ub3JtYWxpemUiOjEyNiwiY3NzLWZvbnQiOjE0NiwiZGV0ZWN0LWtlcm5pbmciOjE3MywiZXM2LXdlYWstbWFwIjoyMzMsImZsYXR0ZW4tdmVydGV4LWRhdGEiOjI0NCwiZm9udC1hdGxhcyI6MjQ1LCJmb250LW1lYXN1cmUiOjI0NiwiZ2wtdXRpbC9jb250ZXh0IjozMzksImlzLXBsYWluLW9iaiI6NDM3LCJvYmplY3QtYXNzaWduIjo0NjYsInBhcnNlLXJlY3QiOjQ3MSwicGFyc2UtdW5pdCI6NDczLCJwaWNrLWJ5LWFsaWFzIjo0NzUscmVnbDo1MTYsInRvLXB4Ijo1NzQsInR5cGVkYXJyYXktcG9vbCI6NTkwfV0sMzM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIm5kYXJyYXkiKSxpPXQoIm5kYXJyYXktb3BzIiksYT10KCJ0eXBlZGFycmF5LXBvb2wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoYXJndW1lbnRzLmxlbmd0aDw9MSl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogTWlzc2luZyBhcmd1bWVudHMgZm9yIHRleHR1cmUyZCBjb25zdHJ1Y3RvciIpO298fGModCk7aWYoIm51bWJlciI9PXR5cGVvZiBhcmd1bWVudHNbMV0pcmV0dXJuIHYodCxhcmd1bWVudHNbMV0sYXJndW1lbnRzWzJdLGFyZ3VtZW50c1szXXx8dC5SR0JBLGFyZ3VtZW50c1s0XXx8dC5VTlNJR05FRF9CWVRFKTtpZihBcnJheS5pc0FycmF5KGFyZ3VtZW50c1sxXSkpcmV0dXJuIHYodCwwfGFyZ3VtZW50c1sxXVswXSwwfGFyZ3VtZW50c1sxXVsxXSxhcmd1bWVudHNbMl18fHQuUkdCQSxhcmd1bWVudHNbM118fHQuVU5TSUdORURfQllURSk7aWYoIm9iamVjdCI9PXR5cGVvZiBhcmd1bWVudHNbMV0pe3ZhciBlPWFyZ3VtZW50c1sxXSxyPXUoZSk/ZTplLnJhdztpZihyKXJldHVybiB5KHQsciwwfGUud2lkdGgsMHxlLmhlaWdodCxhcmd1bWVudHNbMl18fHQuUkdCQSxhcmd1bWVudHNbM118fHQuVU5TSUdORURfQllURSk7aWYoZS5zaGFwZSYmZS5kYXRhJiZlLnN0cmlkZSlyZXR1cm4geCh0LGUpfXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIGFyZ3VtZW50cyBmb3IgdGV4dHVyZTJkIGNvbnN0cnVjdG9yIil9O3ZhciBvPW51bGwscz1udWxsLGw9bnVsbDtmdW5jdGlvbiBjKHQpe289W3QuTElORUFSLHQuTkVBUkVTVF9NSVBNQVBfTElORUFSLHQuTElORUFSX01JUE1BUF9ORUFSRVNULHQuTElORUFSX01JUE1BUF9ORUFSRVNUXSxzPVt0Lk5FQVJFU1QsdC5MSU5FQVIsdC5ORUFSRVNUX01JUE1BUF9ORUFSRVNULHQuTkVBUkVTVF9NSVBNQVBfTElORUFSLHQuTElORUFSX01JUE1BUF9ORUFSRVNULHQuTElORUFSX01JUE1BUF9MSU5FQVJdLGw9W3QuUkVQRUFULHQuQ0xBTVBfVE9fRURHRSx0Lk1JUlJPUkVEX1JFUEVBVF19ZnVuY3Rpb24gdSh0KXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50JiZ0IGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTEltYWdlRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxJbWFnZUVsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSFRNTFZpZGVvRWxlbWVudCYmdCBpbnN0YW5jZW9mIEhUTUxWaWRlb0VsZW1lbnR8fCJ1bmRlZmluZWQiIT10eXBlb2YgSW1hZ2VEYXRhJiZ0IGluc3RhbmNlb2YgSW1hZ2VEYXRhfXZhciBmPWZ1bmN0aW9uKHQsZSl7aS5tdWxzKHQsZSwyNTUpfTtmdW5jdGlvbiBoKHQsZSxyKXt2YXIgbj10LmdsLGk9bi5nZXRQYXJhbWV0ZXIobi5NQVhfVEVYVFVSRV9TSVpFKTtpZihlPDB8fGU+aXx8cjwwfHxyPmkpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgdGV4dHVyZSBzaXplIik7cmV0dXJuIHQuX3NoYXBlPVtlLHJdLHQuYmluZCgpLG4udGV4SW1hZ2UyRChuLlRFWFRVUkVfMkQsMCx0LmZvcm1hdCxlLHIsMCx0LmZvcm1hdCx0LnR5cGUsbnVsbCksdC5fbWlwTGV2ZWxzPVswXSx0fWZ1bmN0aW9uIHAodCxlLHIsbixpLGEpe3RoaXMuZ2w9dCx0aGlzLmhhbmRsZT1lLHRoaXMuZm9ybWF0PWksdGhpcy50eXBlPWEsdGhpcy5fc2hhcGU9W3Isbl0sdGhpcy5fbWlwTGV2ZWxzPVswXSx0aGlzLl9tYWdGaWx0ZXI9dC5ORUFSRVNULHRoaXMuX21pbkZpbHRlcj10Lk5FQVJFU1QsdGhpcy5fd3JhcFM9dC5DTEFNUF9UT19FREdFLHRoaXMuX3dyYXBUPXQuQ0xBTVBfVE9fRURHRSx0aGlzLl9hbmlzb1NhbXBsZXM9MTt2YXIgbz10aGlzLHM9W3RoaXMuX3dyYXBTLHRoaXMuX3dyYXBUXTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhzLFt7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uX3dyYXBTfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8ud3JhcFM9dH19LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5fd3JhcFR9LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gby53cmFwVD10fX1dKSx0aGlzLl93cmFwVmVjdG9yPXM7dmFyIGw9W3RoaXMuX3NoYXBlWzBdLHRoaXMuX3NoYXBlWzFdXTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhsLFt7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIG8uX3NoYXBlWzBdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIG8ud2lkdGg9dH19LHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gby5fc2hhcGVbMV19LHNldDpmdW5jdGlvbih0KXtyZXR1cm4gby5oZWlnaHQ9dH19XSksdGhpcy5fc2hhcGVWZWN0b3I9bH12YXIgZD1wLnByb3RvdHlwZTtmdW5jdGlvbiBtKHQsZSl7cmV0dXJuIDM9PT10Lmxlbmd0aD8xPT09ZVsyXSYmZVsxXT09PXRbMF0qdFsyXSYmZVswXT09PXRbMl06MT09PWVbMF0mJmVbMV09PT10WzBdfWZ1bmN0aW9uIGcodCl7dmFyIGU9dC5jcmVhdGVUZXh0dXJlKCk7cmV0dXJuIHQuYmluZFRleHR1cmUodC5URVhUVVJFXzJELGUpLHQudGV4UGFyYW1ldGVyaSh0LlRFWFRVUkVfMkQsdC5URVhUVVJFX01JTl9GSUxURVIsdC5ORUFSRVNUKSx0LnRleFBhcmFtZXRlcmkodC5URVhUVVJFXzJELHQuVEVYVFVSRV9NQUdfRklMVEVSLHQuTkVBUkVTVCksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfV1JBUF9TLHQuQ0xBTVBfVE9fRURHRSksdC50ZXhQYXJhbWV0ZXJpKHQuVEVYVFVSRV8yRCx0LlRFWFRVUkVfV1JBUF9ULHQuQ0xBTVBfVE9fRURHRSksZX1mdW5jdGlvbiB2KHQsZSxyLG4saSl7dmFyIGE9dC5nZXRQYXJhbWV0ZXIodC5NQVhfVEVYVFVSRV9TSVpFKTtpZihlPDB8fGU+YXx8cjwwfHxyPmEpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgdGV4dHVyZSBzaGFwZSIpO2lmKGk9PT10LkZMT0FUJiYhdC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2Zsb2F0IikpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEZsb2F0aW5nIHBvaW50IHRleHR1cmVzIG5vdCBzdXBwb3J0ZWQgb24gdGhpcyBwbGF0Zm9ybSIpO3ZhciBvPWcodCk7cmV0dXJuIHQudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsMCxuLGUsciwwLG4saSxudWxsKSxuZXcgcCh0LG8sZSxyLG4saSl9ZnVuY3Rpb24geSh0LGUscixuLGksYSl7dmFyIG89Zyh0KTtyZXR1cm4gdC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLGksaSxhLGUpLG5ldyBwKHQsbyxyLG4saSxhKX1mdW5jdGlvbiB4KHQsZSl7dmFyIHI9ZS5kdHlwZSxvPWUuc2hhcGUuc2xpY2UoKSxzPXQuZ2V0UGFyYW1ldGVyKHQuTUFYX1RFWFRVUkVfU0laRSk7aWYob1swXTwwfHxvWzBdPnN8fG9bMV08MHx8b1sxXT5zKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHRleHR1cmUgc2l6ZSIpO3ZhciBsPW0obyxlLnN0cmlkZS5zbGljZSgpKSxjPTA7ImZsb2F0MzIiPT09cj9jPXQuRkxPQVQ6ImZsb2F0NjQiPT09cj8oYz10LkZMT0FULGw9ITEscj0iZmxvYXQzMiIpOiJ1aW50OCI9PT1yP2M9dC5VTlNJR05FRF9CWVRFOihjPXQuVU5TSUdORURfQllURSxsPSExLHI9InVpbnQ4Iik7dmFyIHUsaCxkPTA7aWYoMj09PW8ubGVuZ3RoKWQ9dC5MVU1JTkFOQ0Usbz1bb1swXSxvWzFdLDFdLGU9bihlLmRhdGEsbyxbZS5zdHJpZGVbMF0sZS5zdHJpZGVbMV0sMV0sZS5vZmZzZXQpO2Vsc2V7aWYoMyE9PW8ubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHNoYXBlIGZvciB0ZXh0dXJlIik7aWYoMT09PW9bMl0pZD10LkFMUEhBO2Vsc2UgaWYoMj09PW9bMl0pZD10LkxVTUlOQU5DRV9BTFBIQTtlbHNlIGlmKDM9PT1vWzJdKWQ9dC5SR0I7ZWxzZXtpZig0IT09b1syXSl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBzaGFwZSBmb3IgcGl4ZWwgY29vcmRzIik7ZD10LlJHQkF9fWMhPT10LkZMT0FUfHx0LmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfZmxvYXQiKXx8KGM9dC5VTlNJR05FRF9CWVRFLGw9ITEpO3ZhciB2PWUuc2l6ZTtpZihsKXU9MD09PWUub2Zmc2V0JiZlLmRhdGEubGVuZ3RoPT09dj9lLmRhdGE6ZS5kYXRhLnN1YmFycmF5KGUub2Zmc2V0LGUub2Zmc2V0K3YpO2Vsc2V7dmFyIHk9W29bMl0sb1syXSpvWzBdLDFdO2g9YS5tYWxsb2ModixyKTt2YXIgeD1uKGgsbyx5LDApOyJmbG9hdDMyIiE9PXImJiJmbG9hdDY0IiE9PXJ8fGMhPT10LlVOU0lHTkVEX0JZVEU/aS5hc3NpZ24oeCxlKTpmKHgsZSksdT1oLnN1YmFycmF5KDAsdil9dmFyIGI9Zyh0KTtyZXR1cm4gdC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCwwLGQsb1swXSxvWzFdLDAsZCxjLHUpLGx8fGEuZnJlZShoKSxuZXcgcCh0LGIsb1swXSxvWzFdLGQsYyl9T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZCx7bWluRmlsdGVyOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWluRmlsdGVyfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5iaW5kKCk7dmFyIGU9dGhpcy5nbDtpZih0aGlzLnR5cGU9PT1lLkZMT0FUJiZvLmluZGV4T2YodCk+PTAmJihlLmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfZmxvYXRfbGluZWFyIil8fCh0PWUuTkVBUkVTVCkpLHMuaW5kZXhPZih0KTwwKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBVbmtub3duIGZpbHRlciBtb2RlICIrdCk7cmV0dXJuIGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX01JTl9GSUxURVIsdCksdGhpcy5fbWluRmlsdGVyPXR9fSxtYWdGaWx0ZXI6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYWdGaWx0ZXJ9LHNldDpmdW5jdGlvbih0KXt0aGlzLmJpbmQoKTt2YXIgZT10aGlzLmdsO2lmKHRoaXMudHlwZT09PWUuRkxPQVQmJm8uaW5kZXhPZih0KT49MCYmKGUuZ2V0RXh0ZW5zaW9uKCJPRVNfdGV4dHVyZV9mbG9hdF9saW5lYXIiKXx8KHQ9ZS5ORUFSRVNUKSkscy5pbmRleE9mKHQpPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVua25vd24gZmlsdGVyIG1vZGUgIit0KTtyZXR1cm4gZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUFHX0ZJTFRFUix0KSx0aGlzLl9tYWdGaWx0ZXI9dH19LG1pcFNhbXBsZXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hbmlzb1NhbXBsZXN9LHNldDpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl9hbmlzb1NhbXBsZXM7aWYodGhpcy5fYW5pc29TYW1wbGVzPTB8TWF0aC5tYXgodCwxKSxlIT09dGhpcy5fYW5pc29TYW1wbGVzKXt2YXIgcj10aGlzLmdsLmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIik7ciYmdGhpcy5nbC50ZXhQYXJhbWV0ZXJmKHRoaXMuZ2wuVEVYVFVSRV8yRCxyLlRFWFRVUkVfTUFYX0FOSVNPVFJPUFlfRVhULHRoaXMuX2FuaXNvU2FtcGxlcyl9cmV0dXJuIHRoaXMuX2FuaXNvU2FtcGxlc319LHdyYXBTOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JhcFN9LHNldDpmdW5jdGlvbih0KXtpZih0aGlzLmJpbmQoKSxsLmluZGV4T2YodCk8MCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogVW5rbm93biB3cmFwIG1vZGUgIit0KTtyZXR1cm4gdGhpcy5nbC50ZXhQYXJhbWV0ZXJpKHRoaXMuZ2wuVEVYVFVSRV8yRCx0aGlzLmdsLlRFWFRVUkVfV1JBUF9TLHQpLHRoaXMuX3dyYXBTPXR9fSx3cmFwVDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyYXBUfSxzZXQ6ZnVuY3Rpb24odCl7aWYodGhpcy5iaW5kKCksbC5pbmRleE9mKHQpPDApdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVua25vd24gd3JhcCBtb2RlICIrdCk7cmV0dXJuIHRoaXMuZ2wudGV4UGFyYW1ldGVyaSh0aGlzLmdsLlRFWFRVUkVfMkQsdGhpcy5nbC5URVhUVVJFX1dSQVBfVCx0KSx0aGlzLl93cmFwVD10fX0sd3JhcDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyYXBWZWN0b3J9LHNldDpmdW5jdGlvbih0KXtpZihBcnJheS5pc0FycmF5KHQpfHwodD1bdCx0XSksMiE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBNdXN0IHNwZWNpZnkgd3JhcCBtb2RlIGZvciByb3dzIGFuZCBjb2x1bW5zIik7Zm9yKHZhciBlPTA7ZTwyOysrZSlpZihsLmluZGV4T2YodFtlXSk8MCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogVW5rbm93biB3cmFwIG1vZGUgIit0KTt0aGlzLl93cmFwUz10WzBdLHRoaXMuX3dyYXBUPXRbMV07dmFyIHI9dGhpcy5nbDtyZXR1cm4gdGhpcy5iaW5kKCksci50ZXhQYXJhbWV0ZXJpKHIuVEVYVFVSRV8yRCxyLlRFWFRVUkVfV1JBUF9TLHRoaXMuX3dyYXBTKSxyLnRleFBhcmFtZXRlcmkoci5URVhUVVJFXzJELHIuVEVYVFVSRV9XUkFQX1QsdGhpcy5fd3JhcFQpLHR9fSxzaGFwZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NoYXBlVmVjdG9yfSxzZXQ6ZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSl7aWYoMiE9PXQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBJbnZhbGlkIHRleHR1cmUgc2hhcGUiKX1lbHNlIHQ9WzB8dCwwfHRdO3JldHVybiBoKHRoaXMsMHx0WzBdLDB8dFsxXSksWzB8dFswXSwwfHRbMV1dfX0sd2lkdGg6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9zaGFwZVswXX0sc2V0OmZ1bmN0aW9uKHQpe3JldHVybiBoKHRoaXMsdHw9MCx0aGlzLl9zaGFwZVsxXSksdH19LGhlaWdodDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NoYXBlWzFdfSxzZXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR8PTAsaCh0aGlzLHRoaXMuX3NoYXBlWzBdLHQpLHR9fX0pLGQuYmluZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmdsO3JldHVybiB2b2lkIDAhPT10JiZlLmFjdGl2ZVRleHR1cmUoZS5URVhUVVJFMCsoMHx0KSksZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdGhpcy5oYW5kbGUpLHZvaWQgMCE9PXQ/MHx0OmUuZ2V0UGFyYW1ldGVyKGUuQUNUSVZFX1RFWFRVUkUpLWUuVEVYVFVSRTB9LGQuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuZ2wuZGVsZXRlVGV4dHVyZSh0aGlzLmhhbmRsZSl9LGQuZ2VuZXJhdGVNaXBtYXA9ZnVuY3Rpb24oKXt0aGlzLmJpbmQoKSx0aGlzLmdsLmdlbmVyYXRlTWlwbWFwKHRoaXMuZ2wuVEVYVFVSRV8yRCk7Zm9yKHZhciB0PU1hdGgubWluKHRoaXMuX3NoYXBlWzBdLHRoaXMuX3NoYXBlWzFdKSxlPTA7dD4wOysrZSx0Pj4+PTEpdGhpcy5fbWlwTGV2ZWxzLmluZGV4T2YoZSk8MCYmdGhpcy5fbWlwTGV2ZWxzLnB1c2goZSl9LGQuc2V0UGl4ZWxzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzPXRoaXMuZ2w7dGhpcy5iaW5kKCksQXJyYXkuaXNBcnJheShlKT8obz1yLHI9MHxlWzFdLGU9MHxlWzBdKTooZT1lfHwwLHI9cnx8MCksbz1vfHwwO3ZhciBsPXUodCk/dDp0LnJhdztpZihsKXt0aGlzLl9taXBMZXZlbHMuaW5kZXhPZihvKTwwPyhzLnRleEltYWdlMkQocy5URVhUVVJFXzJELDAsdGhpcy5mb3JtYXQsdGhpcy5mb3JtYXQsdGhpcy50eXBlLGwpLHRoaXMuX21pcExldmVscy5wdXNoKG8pKTpzLnRleFN1YkltYWdlMkQocy5URVhUVVJFXzJELG8sZSxyLHRoaXMuZm9ybWF0LHRoaXMudHlwZSxsKX1lbHNle2lmKCEodC5zaGFwZSYmdC5zdHJpZGUmJnQuZGF0YSkpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IFVuc3VwcG9ydGVkIGRhdGEgdHlwZSIpO2lmKHQuc2hhcGUubGVuZ3RoPDJ8fGUrdC5zaGFwZVsxXT50aGlzLl9zaGFwZVsxXT4+Pm98fHIrdC5zaGFwZVswXT50aGlzLl9zaGFwZVswXT4+Pm98fGU8MHx8cjwwKXRocm93IG5ldyBFcnJvcigiZ2wtdGV4dHVyZTJkOiBUZXh0dXJlIGRpbWVuc2lvbnMgYXJlIG91dCBvZiBib3VuZHMiKTshZnVuY3Rpb24odCxlLHIsbyxzLGwsYyx1KXt2YXIgaD11LmR0eXBlLHA9dS5zaGFwZS5zbGljZSgpO2lmKHAubGVuZ3RoPDJ8fHAubGVuZ3RoPjMpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgbmRhcnJheSwgbXVzdCBiZSAyZCBvciAzZCIpO3ZhciBkPTAsZz0wLHY9bShwLHUuc3RyaWRlLnNsaWNlKCkpOyJmbG9hdDMyIj09PWg/ZD10LkZMT0FUOiJmbG9hdDY0Ij09PWg/KGQ9dC5GTE9BVCx2PSExLGg9ImZsb2F0MzIiKToidWludDgiPT09aD9kPXQuVU5TSUdORURfQllURTooZD10LlVOU0lHTkVEX0JZVEUsdj0hMSxoPSJ1aW50OCIpO2lmKDI9PT1wLmxlbmd0aClnPXQuTFVNSU5BTkNFLHA9W3BbMF0scFsxXSwxXSx1PW4odS5kYXRhLHAsW3Uuc3RyaWRlWzBdLHUuc3RyaWRlWzFdLDFdLHUub2Zmc2V0KTtlbHNle2lmKDMhPT1wLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoImdsLXRleHR1cmUyZDogSW52YWxpZCBzaGFwZSBmb3IgdGV4dHVyZSIpO2lmKDE9PT1wWzJdKWc9dC5BTFBIQTtlbHNlIGlmKDI9PT1wWzJdKWc9dC5MVU1JTkFOQ0VfQUxQSEE7ZWxzZSBpZigzPT09cFsyXSlnPXQuUkdCO2Vsc2V7aWYoNCE9PXBbMl0pdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEludmFsaWQgc2hhcGUgZm9yIHBpeGVsIGNvb3JkcyIpO2c9dC5SR0JBfXBbMl19ZyE9PXQuTFVNSU5BTkNFJiZnIT09dC5BTFBIQXx8cyE9PXQuTFVNSU5BTkNFJiZzIT09dC5BTFBIQXx8KGc9cyk7aWYoZyE9PXMpdGhyb3cgbmV3IEVycm9yKCJnbC10ZXh0dXJlMmQ6IEluY29tcGF0aWJsZSB0ZXh0dXJlIGZvcm1hdCBmb3Igc2V0UGl4ZWxzIik7dmFyIHk9dS5zaXplLHg9Yy5pbmRleE9mKG8pPDA7eCYmYy5wdXNoKG8pO2lmKGQ9PT1sJiZ2KTA9PT11Lm9mZnNldCYmdS5kYXRhLmxlbmd0aD09PXk/eD90LnRleEltYWdlMkQodC5URVhUVVJFXzJELG8scyxwWzBdLHBbMV0sMCxzLGwsdS5kYXRhKTp0LnRleFN1YkltYWdlMkQodC5URVhUVVJFXzJELG8sZSxyLHBbMF0scFsxXSxzLGwsdS5kYXRhKTp4P3QudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsbyxzLHBbMF0scFsxXSwwLHMsbCx1LmRhdGEuc3ViYXJyYXkodS5vZmZzZXQsdS5vZmZzZXQreSkpOnQudGV4U3ViSW1hZ2UyRCh0LlRFWFRVUkVfMkQsbyxlLHIscFswXSxwWzFdLHMsbCx1LmRhdGEuc3ViYXJyYXkodS5vZmZzZXQsdS5vZmZzZXQreSkpO2Vsc2V7dmFyIGI7Yj1sPT09dC5GTE9BVD9hLm1hbGxvY0Zsb2F0MzIoeSk6YS5tYWxsb2NVaW50OCh5KTt2YXIgXz1uKGIscCxbcFsyXSxwWzJdKnBbMF0sMV0pO2Q9PT10LkZMT0FUJiZsPT09dC5VTlNJR05FRF9CWVRFP2YoXyx1KTppLmFzc2lnbihfLHUpLHg/dC50ZXhJbWFnZTJEKHQuVEVYVFVSRV8yRCxvLHMscFswXSxwWzFdLDAscyxsLGIuc3ViYXJyYXkoMCx5KSk6dC50ZXhTdWJJbWFnZTJEKHQuVEVYVFVSRV8yRCxvLGUscixwWzBdLHBbMV0scyxsLGIuc3ViYXJyYXkoMCx5KSksbD09PXQuRkxPQVQ/YS5mcmVlRmxvYXQzMihiKTphLmZyZWVVaW50OChiKX19KHMsZSxyLG8sdGhpcy5mb3JtYXQsdGhpcy50eXBlLHRoaXMuX21pcExldmVscyx0KX19fSx7bmRhcnJheTo0NjIsIm5kYXJyYXktb3BzIjo0NTcsInR5cGVkYXJyYXktcG9vbCI6NTkwfV0sMzM5OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHIpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJwaWNrLWJ5LWFsaWFzIik7ZnVuY3Rpb24gaSh0KXtpZih0LmNvbnRhaW5lcilpZih0LmNvbnRhaW5lcj09ZG9jdW1lbnQuYm9keSlkb2N1bWVudC5ib2R5LnN0eWxlLndpZHRofHwodC5jYW52YXMud2lkdGg9dC53aWR0aHx8dC5waXhlbFJhdGlvKnIuaW5uZXJXaWR0aCksZG9jdW1lbnQuYm9keS5zdHlsZS5oZWlnaHR8fCh0LmNhbnZhcy5oZWlnaHQ9dC5oZWlnaHR8fHQucGl4ZWxSYXRpbypyLmlubmVySGVpZ2h0KTtlbHNle3ZhciBlPXQuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3QuY2FudmFzLndpZHRoPXQud2lkdGh8fGUucmlnaHQtZS5sZWZ0LHQuY2FudmFzLmhlaWdodD10LmhlaWdodHx8ZS5ib3R0b20tZS50b3B9fWZ1bmN0aW9uIGEodCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0Q29udGV4dCYmIndpZHRoImluIHQmJiJoZWlnaHQiaW4gdH1mdW5jdGlvbiBvKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7cmV0dXJuIHQuc3R5bGUucG9zaXRpb249ImFic29sdXRlIix0LnN0eWxlLnRvcD0wLHQuc3R5bGUubGVmdD0wLHR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKHQ/InN0cmluZyI9PXR5cGVvZiB0JiYodD17Y29udGFpbmVyOnR9KTp0PXt9LGEodCk/dD17Y29udGFpbmVyOnR9OnQ9InN0cmluZyI9PXR5cGVvZihlPXQpLm5vZGVOYW1lJiYiZnVuY3Rpb24iPT10eXBlb2YgZS5hcHBlbmRDaGlsZCYmImZ1bmN0aW9uIj09dHlwZW9mIGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0P3tjb250YWluZXI6dH06ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQuZHJhd0FycmF5c3x8ImZ1bmN0aW9uIj09dHlwZW9mIHQuZHJhd0VsZW1lbnRzfSh0KT97Z2w6dH06bih0LHtjb250YWluZXI6ImNvbnRhaW5lciB0YXJnZXQgZWxlbWVudCBlbCBjYW52YXMgaG9sZGVyIHBhcmVudCBwYXJlbnROb2RlIHdyYXBwZXIgdXNlIHJlZiByb290IG5vZGUiLGdsOiJnbCBjb250ZXh0IHdlYmdsIGdsQ29udGV4dCIsYXR0cnM6ImF0dHJpYnV0ZXMgYXR0cnMgY29udGV4dEF0dHJpYnV0ZXMiLHBpeGVsUmF0aW86InBpeGVsUmF0aW8gcHhSYXRpbyBweCByYXRpbyBweHJhdGlvIHBpeGVscmF0aW8iLHdpZHRoOiJ3IHdpZHRoIixoZWlnaHQ6ImggaGVpZ2h0In0sITApLHQucGl4ZWxSYXRpb3x8KHQucGl4ZWxSYXRpbz1yLnBpeGVsUmF0aW98fDEpLHQuZ2wpcmV0dXJuIHQuZ2w7aWYodC5jYW52YXMmJih0LmNvbnRhaW5lcj10LmNhbnZhcy5wYXJlbnROb2RlKSx0LmNvbnRhaW5lcil7aWYoInN0cmluZyI9PXR5cGVvZiB0LmNvbnRhaW5lcil7dmFyIHM9ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0LmNvbnRhaW5lcik7aWYoIXMpdGhyb3cgRXJyb3IoIkVsZW1lbnQgIit0LmNvbnRhaW5lcisiIGlzIG5vdCBmb3VuZCIpO3QuY29udGFpbmVyPXN9YSh0LmNvbnRhaW5lcik/KHQuY2FudmFzPXQuY29udGFpbmVyLHQuY29udGFpbmVyPXQuY2FudmFzLnBhcmVudE5vZGUpOnQuY2FudmFzfHwodC5jYW52YXM9bygpLHQuY29udGFpbmVyLmFwcGVuZENoaWxkKHQuY2FudmFzKSxpKHQpKX1lbHNlIGlmKCF0LmNhbnZhcyl7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBkb2N1bWVudCl0aHJvdyBFcnJvcigiTm90IERPTSBlbnZpcm9ubWVudC4gVXNlIGhlYWRsZXNzLWdsLiIpO3QuY29udGFpbmVyPWRvY3VtZW50LmJvZHl8fGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCx0LmNhbnZhcz1vKCksdC5jb250YWluZXIuYXBwZW5kQ2hpbGQodC5jYW52YXMpLGkodCl9cmV0dXJuIHQuZ2x8fFsid2ViZ2wiLCJleHBlcmltZW50YWwtd2ViZ2wiLCJ3ZWJnbC1leHBlcmltZW50YWwiXS5zb21lKChmdW5jdGlvbihlKXt0cnl7dC5nbD10LmNhbnZhcy5nZXRDb250ZXh0KGUsdC5hdHRycyl9Y2F0Y2godCl7fXJldHVybiB0LmdsfSkpLHQuZ2x9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJwaWNrLWJ5LWFsaWFzIjo0NzV9XSwzNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtlP2UuYmluZCgpOnQuYmluZEJ1ZmZlcih0LkVMRU1FTlRfQVJSQVlfQlVGRkVSLG51bGwpO3ZhciBuPTB8dC5nZXRQYXJhbWV0ZXIodC5NQVhfVkVSVEVYX0FUVFJJQlMpO2lmKHIpe2lmKHIubGVuZ3RoPm4pdGhyb3cgbmV3IEVycm9yKCJnbC12YW86IFRvbyBtYW55IHZlcnRleCBhdHRyaWJ1dGVzIik7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDsrK2kpe3ZhciBhPXJbaV07aWYoYS5idWZmZXIpe3ZhciBvPWEuYnVmZmVyLHM9YS5zaXplfHw0LGw9YS50eXBlfHx0LkZMT0FULGM9ISFhLm5vcm1hbGl6ZWQsdT1hLnN0cmlkZXx8MCxmPWEub2Zmc2V0fHwwO28uYmluZCgpLHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaSksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGkscyxsLGMsdSxmKX1lbHNle2lmKCJudW1iZXIiPT10eXBlb2YgYSl0LnZlcnRleEF0dHJpYjFmKGksYSk7ZWxzZSBpZigxPT09YS5sZW5ndGgpdC52ZXJ0ZXhBdHRyaWIxZihpLGFbMF0pO2Vsc2UgaWYoMj09PWEubGVuZ3RoKXQudmVydGV4QXR0cmliMmYoaSxhWzBdLGFbMV0pO2Vsc2UgaWYoMz09PWEubGVuZ3RoKXQudmVydGV4QXR0cmliM2YoaSxhWzBdLGFbMV0sYVsyXSk7ZWxzZXtpZig0IT09YS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJnbC12YW86IEludmFsaWQgdmVydGV4IGF0dHJpYnV0ZSIpO3QudmVydGV4QXR0cmliNGYoaSxhWzBdLGFbMV0sYVsyXSxhWzNdKX10LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpKX19Zm9yKDtpPG47KytpKXQuZGlzYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpfWVsc2V7dC5iaW5kQnVmZmVyKHQuQVJSQVlfQlVGRkVSLG51bGwpO2ZvcihpPTA7aTxuOysraSl0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpKX19fSx7fV0sMzQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZG8tYmluZC5qcyIpO2Z1bmN0aW9uIGkodCl7dGhpcy5nbD10LHRoaXMuX2VsZW1lbnRzPW51bGwsdGhpcy5fYXR0cmlidXRlcz1udWxsLHRoaXMuX2VsZW1lbnRzVHlwZT10LlVOU0lHTkVEX1NIT1JUfWkucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXtuKHRoaXMuZ2wsdGhpcy5fZWxlbWVudHMsdGhpcy5fYXR0cmlidXRlcyl9LGkucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5fZWxlbWVudHM9ZSx0aGlzLl9hdHRyaWJ1dGVzPXQsdGhpcy5fZWxlbWVudHNUeXBlPXJ8fHRoaXMuZ2wuVU5TSUdORURfU0hPUlR9LGkucHJvdG90eXBlLmRpc3Bvc2U9ZnVuY3Rpb24oKXt9LGkucHJvdG90eXBlLnVuYmluZD1mdW5jdGlvbigpe30saS5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0LGUscil7cj1yfHwwO3ZhciBuPXRoaXMuZ2w7dGhpcy5fZWxlbWVudHM/bi5kcmF3RWxlbWVudHModCxlLHRoaXMuX2VsZW1lbnRzVHlwZSxyKTpuLmRyYXdBcnJheXModCxyLGUpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpKHQpfX0seyIuL2RvLWJpbmQuanMiOjM0MH1dLDM0MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2RvLWJpbmQuanMiKTtmdW5jdGlvbiBpKHQsZSxyLG4saSxhKXt0aGlzLmxvY2F0aW9uPXQsdGhpcy5kaW1lbnNpb249ZSx0aGlzLmE9cix0aGlzLmI9bix0aGlzLmM9aSx0aGlzLmQ9YX1mdW5jdGlvbiBhKHQsZSxyKXt0aGlzLmdsPXQsdGhpcy5fZXh0PWUsdGhpcy5oYW5kbGU9cix0aGlzLl9hdHRyaWJzPVtdLHRoaXMuX3VzZUVsZW1lbnRzPSExLHRoaXMuX2VsZW1lbnRzVHlwZT10LlVOU0lHTkVEX1NIT1JUfWkucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24odCl7c3dpdGNoKHRoaXMuZGltZW5zaW9uKXtjYXNlIDE6dC52ZXJ0ZXhBdHRyaWIxZih0aGlzLmxvY2F0aW9uLHRoaXMuYSk7YnJlYWs7Y2FzZSAyOnQudmVydGV4QXR0cmliMmYodGhpcy5sb2NhdGlvbix0aGlzLmEsdGhpcy5iKTticmVhaztjYXNlIDM6dC52ZXJ0ZXhBdHRyaWIzZih0aGlzLmxvY2F0aW9uLHRoaXMuYSx0aGlzLmIsdGhpcy5jKTticmVhaztjYXNlIDQ6dC52ZXJ0ZXhBdHRyaWI0Zih0aGlzLmxvY2F0aW9uLHRoaXMuYSx0aGlzLmIsdGhpcy5jLHRoaXMuZCl9fSxhLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5fZXh0LmJpbmRWZXJ0ZXhBcnJheU9FUyh0aGlzLmhhbmRsZSk7Zm9yKHZhciB0PTA7dDx0aGlzLl9hdHRyaWJzLmxlbmd0aDsrK3QpdGhpcy5fYXR0cmlic1t0XS5iaW5kKHRoaXMuZ2wpfSxhLnByb3RvdHlwZS51bmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLl9leHQuYmluZFZlcnRleEFycmF5T0VTKG51bGwpfSxhLnByb3RvdHlwZS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5fZXh0LmRlbGV0ZVZlcnRleEFycmF5T0VTKHRoaXMuaGFuZGxlKX0sYS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLmJpbmQoKSxuKHRoaXMuZ2wsZSx0KSx0aGlzLnVuYmluZCgpLHRoaXMuX2F0dHJpYnMubGVuZ3RoPTAsdClmb3IodmFyIGE9MDthPHQubGVuZ3RoOysrYSl7dmFyIG89dFthXTsibnVtYmVyIj09dHlwZW9mIG8/dGhpcy5fYXR0cmlicy5wdXNoKG5ldyBpKGEsMSxvKSk6QXJyYXkuaXNBcnJheShvKSYmdGhpcy5fYXR0cmlicy5wdXNoKG5ldyBpKGEsby5sZW5ndGgsb1swXSxvWzFdLG9bMl0sb1szXSkpfXRoaXMuX3VzZUVsZW1lbnRzPSEhZSx0aGlzLl9lbGVtZW50c1R5cGU9cnx8dGhpcy5nbC5VTlNJR05FRF9TSE9SVH0sYS5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0LGUscil7cj1yfHwwO3ZhciBuPXRoaXMuZ2w7dGhpcy5fdXNlRWxlbWVudHM/bi5kcmF3RWxlbWVudHModCxlLHRoaXMuX2VsZW1lbnRzVHlwZSxyKTpuLmRyYXdBcnJheXModCxyLGUpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IGEodCxlLGUuY3JlYXRlVmVydGV4QXJyYXlPRVMoKSl9fSx7Ii4vZG8tYmluZC5qcyI6MzQwfV0sMzQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL3Zhby1uYXRpdmUuanMiKSxpPXQoIi4vbGliL3Zhby1lbXVsYXRlZC5qcyIpO2Z1bmN0aW9uIGEodCl7dGhpcy5iaW5kVmVydGV4QXJyYXlPRVM9dC5iaW5kVmVydGV4QXJyYXkuYmluZCh0KSx0aGlzLmNyZWF0ZVZlcnRleEFycmF5T0VTPXQuY3JlYXRlVmVydGV4QXJyYXkuYmluZCh0KSx0aGlzLmRlbGV0ZVZlcnRleEFycmF5T0VTPXQuZGVsZXRlVmVydGV4QXJyYXkuYmluZCh0KX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7dmFyIHMsbD10LmNyZWF0ZVZlcnRleEFycmF5P25ldyBhKHQpOnQuZ2V0RXh0ZW5zaW9uKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpO3JldHVybihzPWw/bih0LGwpOmkodCkpLnVwZGF0ZShlLHIsbyksc319LHsiLi9saWIvdmFvLWVtdWxhdGVkLmpzIjozNDEsIi4vbGliL3Zhby1uYXRpdmUuanMiOjM0Mn1dLDM0NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXStyWzBdLHRbMV09ZVsxXStyWzFdLHRbMl09ZVsyXStyWzJdLHR9fSx7fV0sMzQ1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bih0WzBdLHRbMV0sdFsyXSksbz1uKGVbMF0sZVsxXSxlWzJdKTtpKHIsciksaShvLG8pO3ZhciBzPWEocixvKTtyZXR1cm4gcz4xPzA6TWF0aC5hY29zKHMpfTt2YXIgbj10KCIuL2Zyb21WYWx1ZXMiKSxpPXQoIi4vbm9ybWFsaXplIiksYT10KCIuL2RvdCIpfSx7Ii4vZG90IjozNTUsIi4vZnJvbVZhbHVlcyI6MzYxLCIuL25vcm1hbGl6ZSI6MzcyfV0sMzQ2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5jZWlsKGVbMF0pLHRbMV09TWF0aC5jZWlsKGVbMV0pLHRbMl09TWF0aC5jZWlsKGVbMl0pLHR9fSx7fV0sMzQ3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBGbG9hdDMyQXJyYXkoMyk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGV9fSx7fV0sMzQ4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09ZVswXSx0WzFdPWVbMV0sdFsyXT1lWzJdLHR9fSx7fV0sMzQ5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEZsb2F0MzJBcnJheSgzKTtyZXR1cm4gdFswXT0wLHRbMV09MCx0WzJdPTAsdH19LHt9XSwzNTA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPXJbMF0scz1yWzFdLGw9clsyXTtyZXR1cm4gdFswXT1pKmwtYSpzLHRbMV09YSpvLW4qbCx0WzJdPW4qcy1pKm8sdH19LHt9XSwzNTE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi9kaXN0YW5jZSIpfSx7Ii4vZGlzdGFuY2UiOjM1Mn1dLDM1MjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0tdFswXSxuPWVbMV0tdFsxXSxpPWVbMl0tdFsyXTtyZXR1cm4gTWF0aC5zcXJ0KHIqcituKm4raSppKX19LHt9XSwzNTM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi9kaXZpZGUiKX0seyIuL2RpdmlkZSI6MzU0fV0sMzU0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdL3JbMF0sdFsxXT1lWzFdL3JbMV0sdFsyXT1lWzJdL3JbMl0sdH19LHt9XSwzNTU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl19fSx7fV0sMzU2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPTFlLTZ9LHt9XSwzNTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10WzBdLGk9dFsxXSxhPXRbMl0sbz1lWzBdLHM9ZVsxXSxsPWVbMl07cmV0dXJuIE1hdGguYWJzKHItbyk8PW4qTWF0aC5tYXgoMSxNYXRoLmFicyhyKSxNYXRoLmFicyhvKSkmJk1hdGguYWJzKGktcyk8PW4qTWF0aC5tYXgoMSxNYXRoLmFicyhpKSxNYXRoLmFicyhzKSkmJk1hdGguYWJzKGEtbCk8PW4qTWF0aC5tYXgoMSxNYXRoLmFicyhhKSxNYXRoLmFicyhsKSl9O3ZhciBuPXQoIi4vZXBzaWxvbiIpfSx7Ii4vZXBzaWxvbiI6MzU2fV0sMzU4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXSYmdFsyXT09PWVbMl19fSx7fV0sMzU5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5mbG9vcihlWzBdKSx0WzFdPU1hdGguZmxvb3IoZVsxXSksdFsyXT1NYXRoLmZsb29yKGVbMl0pLHR9fSx7fV0sMzYwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGksYSxvKXt2YXIgcyxsO2V8fChlPTMpO3J8fChyPTApO2w9aT9NYXRoLm1pbihpKmUrcix0Lmxlbmd0aCk6dC5sZW5ndGg7Zm9yKHM9cjtzPGw7cys9ZSluWzBdPXRbc10sblsxXT10W3MrMV0sblsyXT10W3MrMl0sYShuLG4sbyksdFtzXT1uWzBdLHRbcysxXT1uWzFdLHRbcysyXT1uWzJdO3JldHVybiB0fTt2YXIgbj10KCIuL2NyZWF0ZSIpKCl9LHsiLi9jcmVhdGUiOjM0OX1dLDM2MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49bmV3IEZsb2F0MzJBcnJheSgzKTtyZXR1cm4gblswXT10LG5bMV09ZSxuWzJdPXIsbn19LHt9XSwzNjI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9e0VQU0lMT046dCgiLi9lcHNpbG9uIiksY3JlYXRlOnQoIi4vY3JlYXRlIiksY2xvbmU6dCgiLi9jbG9uZSIpLGFuZ2xlOnQoIi4vYW5nbGUiKSxmcm9tVmFsdWVzOnQoIi4vZnJvbVZhbHVlcyIpLGNvcHk6dCgiLi9jb3B5Iiksc2V0OnQoIi4vc2V0IiksZXF1YWxzOnQoIi4vZXF1YWxzIiksZXhhY3RFcXVhbHM6dCgiLi9leGFjdEVxdWFscyIpLGFkZDp0KCIuL2FkZCIpLHN1YnRyYWN0OnQoIi4vc3VidHJhY3QiKSxzdWI6dCgiLi9zdWIiKSxtdWx0aXBseTp0KCIuL211bHRpcGx5IiksbXVsOnQoIi4vbXVsIiksZGl2aWRlOnQoIi4vZGl2aWRlIiksZGl2OnQoIi4vZGl2IiksbWluOnQoIi4vbWluIiksbWF4OnQoIi4vbWF4IiksZmxvb3I6dCgiLi9mbG9vciIpLGNlaWw6dCgiLi9jZWlsIikscm91bmQ6dCgiLi9yb3VuZCIpLHNjYWxlOnQoIi4vc2NhbGUiKSxzY2FsZUFuZEFkZDp0KCIuL3NjYWxlQW5kQWRkIiksZGlzdGFuY2U6dCgiLi9kaXN0YW5jZSIpLGRpc3Q6dCgiLi9kaXN0Iiksc3F1YXJlZERpc3RhbmNlOnQoIi4vc3F1YXJlZERpc3RhbmNlIiksc3FyRGlzdDp0KCIuL3NxckRpc3QiKSxsZW5ndGg6dCgiLi9sZW5ndGgiKSxsZW46dCgiLi9sZW4iKSxzcXVhcmVkTGVuZ3RoOnQoIi4vc3F1YXJlZExlbmd0aCIpLHNxckxlbjp0KCIuL3NxckxlbiIpLG5lZ2F0ZTp0KCIuL25lZ2F0ZSIpLGludmVyc2U6dCgiLi9pbnZlcnNlIiksbm9ybWFsaXplOnQoIi4vbm9ybWFsaXplIiksZG90OnQoIi4vZG90IiksY3Jvc3M6dCgiLi9jcm9zcyIpLGxlcnA6dCgiLi9sZXJwIikscmFuZG9tOnQoIi4vcmFuZG9tIiksdHJhbnNmb3JtTWF0NDp0KCIuL3RyYW5zZm9ybU1hdDQiKSx0cmFuc2Zvcm1NYXQzOnQoIi4vdHJhbnNmb3JtTWF0MyIpLHRyYW5zZm9ybVF1YXQ6dCgiLi90cmFuc2Zvcm1RdWF0Iikscm90YXRlWDp0KCIuL3JvdGF0ZVgiKSxyb3RhdGVZOnQoIi4vcm90YXRlWSIpLHJvdGF0ZVo6dCgiLi9yb3RhdGVaIiksZm9yRWFjaDp0KCIuL2ZvckVhY2giKX19LHsiLi9hZGQiOjM0NCwiLi9hbmdsZSI6MzQ1LCIuL2NlaWwiOjM0NiwiLi9jbG9uZSI6MzQ3LCIuL2NvcHkiOjM0OCwiLi9jcmVhdGUiOjM0OSwiLi9jcm9zcyI6MzUwLCIuL2Rpc3QiOjM1MSwiLi9kaXN0YW5jZSI6MzUyLCIuL2RpdiI6MzUzLCIuL2RpdmlkZSI6MzU0LCIuL2RvdCI6MzU1LCIuL2Vwc2lsb24iOjM1NiwiLi9lcXVhbHMiOjM1NywiLi9leGFjdEVxdWFscyI6MzU4LCIuL2Zsb29yIjozNTksIi4vZm9yRWFjaCI6MzYwLCIuL2Zyb21WYWx1ZXMiOjM2MSwiLi9pbnZlcnNlIjozNjMsIi4vbGVuIjozNjQsIi4vbGVuZ3RoIjozNjUsIi4vbGVycCI6MzY2LCIuL21heCI6MzY3LCIuL21pbiI6MzY4LCIuL211bCI6MzY5LCIuL211bHRpcGx5IjozNzAsIi4vbmVnYXRlIjozNzEsIi4vbm9ybWFsaXplIjozNzIsIi4vcmFuZG9tIjozNzMsIi4vcm90YXRlWCI6Mzc0LCIuL3JvdGF0ZVkiOjM3NSwiLi9yb3RhdGVaIjozNzYsIi4vcm91bmQiOjM3NywiLi9zY2FsZSI6Mzc4LCIuL3NjYWxlQW5kQWRkIjozNzksIi4vc2V0IjozODAsIi4vc3FyRGlzdCI6MzgxLCIuL3NxckxlbiI6MzgyLCIuL3NxdWFyZWREaXN0YW5jZSI6MzgzLCIuL3NxdWFyZWRMZW5ndGgiOjM4NCwiLi9zdWIiOjM4NSwiLi9zdWJ0cmFjdCI6Mzg2LCIuL3RyYW5zZm9ybU1hdDMiOjM4NywiLi90cmFuc2Zvcm1NYXQ0IjozODgsIi4vdHJhbnNmb3JtUXVhdCI6Mzg5fV0sMzYzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09MS9lWzBdLHRbMV09MS9lWzFdLHRbMl09MS9lWzJdLHR9fSx7fV0sMzY0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4vbGVuZ3RoIil9LHsiLi9sZW5ndGgiOjM2NX1dLDM2NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl07cmV0dXJuIE1hdGguc3FydChlKmUrcipyK24qbil9fSx7fV0sMzY2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWVbMF0sYT1lWzFdLG89ZVsyXTtyZXR1cm4gdFswXT1pK24qKHJbMF0taSksdFsxXT1hK24qKHJbMV0tYSksdFsyXT1vK24qKHJbMl0tbyksdH19LHt9XSwzNjc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPU1hdGgubWF4KGVbMF0sclswXSksdFsxXT1NYXRoLm1heChlWzFdLHJbMV0pLHRbMl09TWF0aC5tYXgoZVsyXSxyWzJdKSx0fX0se31dLDM2ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09TWF0aC5taW4oZVswXSxyWzBdKSx0WzFdPU1hdGgubWluKGVbMV0sclsxXSksdFsyXT1NYXRoLm1pbihlWzJdLHJbMl0pLHR9fSx7fV0sMzY5OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoIi4vbXVsdGlwbHkiKX0seyIuL211bHRpcGx5IjozNzB9XSwzNzA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0qclswXSx0WzFdPWVbMV0qclsxXSx0WzJdPWVbMl0qclsyXSx0fX0se31dLDM3MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdPS1lWzBdLHRbMV09LWVbMV0sdFsyXT0tZVsyXSx0fX0se31dLDM3MjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxhPXIqcituKm4raSppO2E+MCYmKGE9MS9NYXRoLnNxcnQoYSksdFswXT1lWzBdKmEsdFsxXT1lWzFdKmEsdFsyXT1lWzJdKmEpO3JldHVybiB0fX0se31dLDM3MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2U9ZXx8MTt2YXIgcj0yKk1hdGgucmFuZG9tKCkqTWF0aC5QSSxuPTIqTWF0aC5yYW5kb20oKS0xLGk9TWF0aC5zcXJ0KDEtbipuKSplO3JldHVybiB0WzBdPU1hdGguY29zKHIpKmksdFsxXT1NYXRoLnNpbihyKSppLHRbMl09biplLHR9fSx7fV0sMzc0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXJbMV0sYT1yWzJdLG89ZVsxXS1pLHM9ZVsyXS1hLGw9TWF0aC5zaW4obiksYz1NYXRoLmNvcyhuKTtyZXR1cm4gdFswXT1lWzBdLHRbMV09aStvKmMtcypsLHRbMl09YStvKmwrcypjLHR9fSx7fV0sMzc1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXJbMF0sYT1yWzJdLG89ZVswXS1pLHM9ZVsyXS1hLGw9TWF0aC5zaW4obiksYz1NYXRoLmNvcyhuKTtyZXR1cm4gdFswXT1pK3MqbCtvKmMsdFsxXT1lWzFdLHRbMl09YStzKmMtbypsLHR9fSx7fV0sMzc2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXJbMF0sYT1yWzFdLG89ZVswXS1pLHM9ZVsxXS1hLGw9TWF0aC5zaW4obiksYz1NYXRoLmNvcyhuKTtyZXR1cm4gdFswXT1pK28qYy1zKmwsdFsxXT1hK28qbCtzKmMsdFsyXT1lWzJdLHR9fSx7fV0sMzc3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF09TWF0aC5yb3VuZChlWzBdKSx0WzFdPU1hdGgucm91bmQoZVsxXSksdFsyXT1NYXRoLnJvdW5kKGVbMl0pLHR9fSx7fV0sMzc4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdKnIsdFsxXT1lWzFdKnIsdFsyXT1lWzJdKnIsdH19LHt9XSwzNzk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRbMF09ZVswXStyWzBdKm4sdFsxXT1lWzFdK3JbMV0qbix0WzJdPWVbMl0rclsyXSpuLHR9fSx7fV0sMzgwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0WzBdPWUsdFsxXT1yLHRbMl09bix0fX0se31dLDM4MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL3NxdWFyZWREaXN0YW5jZSIpfSx7Ii4vc3F1YXJlZERpc3RhbmNlIjozODN9XSwzODI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiLi9zcXVhcmVkTGVuZ3RoIil9LHsiLi9zcXVhcmVkTGVuZ3RoIjozODR9XSwzODM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLXRbMF0sbj1lWzFdLXRbMV0saT1lWzJdLXRbMl07cmV0dXJuIHIqcituKm4raSppfX0se31dLDM4NDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9dFsxXSxuPXRbMl07cmV0dXJuIGUqZStyKnIrbipufX0se31dLDM4NTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz10KCIuL3N1YnRyYWN0Iil9LHsiLi9zdWJ0cmFjdCI6Mzg2fV0sMzg2OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdLXJbMF0sdFsxXT1lWzFdLXJbMV0sdFsyXT1lWzJdLXJbMl0sdH19LHt9XSwzODc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXTtyZXR1cm4gdFswXT1uKnJbMF0raSpyWzNdK2Eqcls2XSx0WzFdPW4qclsxXStpKnJbNF0rYSpyWzddLHRbMl09bipyWzJdK2kqcls1XSthKnJbOF0sdH19LHt9XSwzODg6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPXJbM10qbityWzddKmkrclsxMV0qYStyWzE1XTtyZXR1cm4gbz1vfHwxLHRbMF09KHJbMF0qbityWzRdKmkrcls4XSphK3JbMTJdKS9vLHRbMV09KHJbMV0qbityWzVdKmkrcls5XSphK3JbMTNdKS9vLHRbMl09KHJbMl0qbityWzZdKmkrclsxMF0qYStyWzE0XSkvbyx0fX0se31dLDM4OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdLG89clswXSxzPXJbMV0sbD1yWzJdLGM9clszXSx1PWMqbitzKmEtbCppLGY9YyppK2wqbi1vKmEsaD1jKmErbyppLXMqbixwPS1vKm4tcyppLWwqYTtyZXR1cm4gdFswXT11KmMrcCotbytmKi1sLWgqLXMsdFsxXT1mKmMrcCotcytoKi1vLXUqLWwsdFsyXT1oKmMrcCotbCt1Ki1zLWYqLW8sdH19LHt9XSwzOTA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0rclswXSx0WzFdPWVbMV0rclsxXSx0WzJdPWVbMl0rclsyXSx0WzNdPWVbM10rclszXSx0fX0se31dLDM5MTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT1uZXcgRmxvYXQzMkFycmF5KDQpO3JldHVybiBlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZX19LHt9XSwzOTI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT1lWzBdLHRbMV09ZVsxXSx0WzJdPWVbMl0sdFszXT1lWzNdLHR9fSx7fV0sMzkzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEZsb2F0MzJBcnJheSg0KTtyZXR1cm4gdFswXT0wLHRbMV09MCx0WzJdPTAsdFszXT0wLHR9fSx7fV0sMzk0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS10WzBdLG49ZVsxXS10WzFdLGk9ZVsyXS10WzJdLGE9ZVszXS10WzNdO3JldHVybiBNYXRoLnNxcnQocipyK24qbitpKmkrYSphKX19LHt9XSwzOTU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0vclswXSx0WzFdPWVbMV0vclsxXSx0WzJdPWVbMl0vclsyXSx0WzNdPWVbM10vclszXSx0fX0se31dLDM5NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0WzBdKmVbMF0rdFsxXSplWzFdK3RbMl0qZVsyXSt0WzNdKmVbM119fSx7fV0sMzk3OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW5ldyBGbG9hdDMyQXJyYXkoNCk7cmV0dXJuIGlbMF09dCxpWzFdPWUsaVsyXT1yLGlbM109bixpfX0se31dLDM5ODpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz17Y3JlYXRlOnQoIi4vY3JlYXRlIiksY2xvbmU6dCgiLi9jbG9uZSIpLGZyb21WYWx1ZXM6dCgiLi9mcm9tVmFsdWVzIiksY29weTp0KCIuL2NvcHkiKSxzZXQ6dCgiLi9zZXQiKSxhZGQ6dCgiLi9hZGQiKSxzdWJ0cmFjdDp0KCIuL3N1YnRyYWN0IiksbXVsdGlwbHk6dCgiLi9tdWx0aXBseSIpLGRpdmlkZTp0KCIuL2RpdmlkZSIpLG1pbjp0KCIuL21pbiIpLG1heDp0KCIuL21heCIpLHNjYWxlOnQoIi4vc2NhbGUiKSxzY2FsZUFuZEFkZDp0KCIuL3NjYWxlQW5kQWRkIiksZGlzdGFuY2U6dCgiLi9kaXN0YW5jZSIpLHNxdWFyZWREaXN0YW5jZTp0KCIuL3NxdWFyZWREaXN0YW5jZSIpLGxlbmd0aDp0KCIuL2xlbmd0aCIpLHNxdWFyZWRMZW5ndGg6dCgiLi9zcXVhcmVkTGVuZ3RoIiksbmVnYXRlOnQoIi4vbmVnYXRlIiksaW52ZXJzZTp0KCIuL2ludmVyc2UiKSxub3JtYWxpemU6dCgiLi9ub3JtYWxpemUiKSxkb3Q6dCgiLi9kb3QiKSxsZXJwOnQoIi4vbGVycCIpLHJhbmRvbTp0KCIuL3JhbmRvbSIpLHRyYW5zZm9ybU1hdDQ6dCgiLi90cmFuc2Zvcm1NYXQ0IiksdHJhbnNmb3JtUXVhdDp0KCIuL3RyYW5zZm9ybVF1YXQiKX19LHsiLi9hZGQiOjM5MCwiLi9jbG9uZSI6MzkxLCIuL2NvcHkiOjM5MiwiLi9jcmVhdGUiOjM5MywiLi9kaXN0YW5jZSI6Mzk0LCIuL2RpdmlkZSI6Mzk1LCIuL2RvdCI6Mzk2LCIuL2Zyb21WYWx1ZXMiOjM5NywiLi9pbnZlcnNlIjozOTksIi4vbGVuZ3RoIjo0MDAsIi4vbGVycCI6NDAxLCIuL21heCI6NDAyLCIuL21pbiI6NDAzLCIuL211bHRpcGx5Ijo0MDQsIi4vbmVnYXRlIjo0MDUsIi4vbm9ybWFsaXplIjo0MDYsIi4vcmFuZG9tIjo0MDcsIi4vc2NhbGUiOjQwOCwiLi9zY2FsZUFuZEFkZCI6NDA5LCIuL3NldCI6NDEwLCIuL3NxdWFyZWREaXN0YW5jZSI6NDExLCIuL3NxdWFyZWRMZW5ndGgiOjQxMiwiLi9zdWJ0cmFjdCI6NDEzLCIuL3RyYW5zZm9ybU1hdDQiOjQxNCwiLi90cmFuc2Zvcm1RdWF0Ijo0MTV9XSwzOTk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT0xL2VbMF0sdFsxXT0xL2VbMV0sdFsyXT0xL2VbMl0sdFszXT0xL2VbM10sdH19LHt9XSw0MDA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPXRbMV0sbj10WzJdLGk9dFszXTtyZXR1cm4gTWF0aC5zcXJ0KGUqZStyKnIrbipuK2kqaSl9fSx7fV0sNDAxOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWVbMF0sYT1lWzFdLG89ZVsyXSxzPWVbM107cmV0dXJuIHRbMF09aStuKihyWzBdLWkpLHRbMV09YStuKihyWzFdLWEpLHRbMl09bytuKihyWzJdLW8pLHRbM109cytuKihyWzNdLXMpLHR9fSx7fV0sNDAyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1NYXRoLm1heChlWzBdLHJbMF0pLHRbMV09TWF0aC5tYXgoZVsxXSxyWzFdKSx0WzJdPU1hdGgubWF4KGVbMl0sclsyXSksdFszXT1NYXRoLm1heChlWzNdLHJbM10pLHR9fSx7fV0sNDAzOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1NYXRoLm1pbihlWzBdLHJbMF0pLHRbMV09TWF0aC5taW4oZVsxXSxyWzFdKSx0WzJdPU1hdGgubWluKGVbMl0sclsyXSksdFszXT1NYXRoLm1pbihlWzNdLHJbM10pLHR9fSx7fV0sNDA0OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdKnJbMF0sdFsxXT1lWzFdKnJbMV0sdFsyXT1lWzJdKnJbMl0sdFszXT1lWzNdKnJbM10sdH19LHt9XSw0MDU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXT0tZVswXSx0WzFdPS1lWzFdLHRbMl09LWVbMl0sdFszXT0tZVszXSx0fX0se31dLDQwNjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxhPWVbM10sbz1yKnIrbipuK2kqaSthKmE7bz4wJiYobz0xL01hdGguc3FydChvKSx0WzBdPXIqbyx0WzFdPW4qbyx0WzJdPWkqbyx0WzNdPWEqbyk7cmV0dXJuIHR9fSx7fV0sNDA3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9ub3JtYWxpemUiKSxpPXQoIi4vc2NhbGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT1lfHwxLHRbMF09TWF0aC5yYW5kb20oKSx0WzFdPU1hdGgucmFuZG9tKCksdFsyXT1NYXRoLnJhbmRvbSgpLHRbM109TWF0aC5yYW5kb20oKSxuKHQsdCksaSh0LHQsZSksdH19LHsiLi9ub3JtYWxpemUiOjQwNiwiLi9zY2FsZSI6NDA4fV0sNDA4OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdKnIsdFsxXT1lWzFdKnIsdFsyXT1lWzJdKnIsdFszXT1lWzNdKnIsdH19LHt9XSw0MDk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRbMF09ZVswXStyWzBdKm4sdFsxXT1lWzFdK3JbMV0qbix0WzJdPWVbMl0rclsyXSpuLHRbM109ZVszXStyWzNdKm4sdH19LHt9XSw0MTA6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gdFswXT1lLHRbMV09cix0WzJdPW4sdFszXT1pLHR9fSx7fV0sNDExOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS10WzBdLG49ZVsxXS10WzFdLGk9ZVsyXS10WzJdLGE9ZVszXS10WzNdO3JldHVybiByKnIrbipuK2kqaSthKmF9fSx7fV0sNDEyOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXSxpPXRbM107cmV0dXJuIGUqZStyKnIrbipuK2kqaX19LHt9XSw0MTM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0WzBdPWVbMF0tclswXSx0WzFdPWVbMV0tclsxXSx0WzJdPWVbMl0tclsyXSx0WzNdPWVbM10tclszXSx0fX0se31dLDQxNDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdLG89ZVszXTtyZXR1cm4gdFswXT1yWzBdKm4rcls0XSppK3JbOF0qYStyWzEyXSpvLHRbMV09clsxXSpuK3JbNV0qaStyWzldKmErclsxM10qbyx0WzJdPXJbMl0qbityWzZdKmkrclsxMF0qYStyWzE0XSpvLHRbM109clszXSpuK3JbN10qaStyWzExXSphK3JbMTVdKm8sdH19LHt9XSw0MTU6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPXJbMF0scz1yWzFdLGw9clsyXSxjPXJbM10sdT1jKm4rcyphLWwqaSxmPWMqaStsKm4tbyphLGg9YyphK28qaS1zKm4scD0tbypuLXMqaS1sKmE7cmV0dXJuIHRbMF09dSpjK3AqLW8rZiotbC1oKi1zLHRbMV09ZipjK3AqLXMraCotby11Ki1sLHRbMl09aCpjK3AqLWwrdSotcy1mKi1vLHRbM109ZVszXSx0fX0se31dLDQxNjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsc2wtdG9rZW5pemVyIiksaT10KCJhdG9iLWxpdGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPUFycmF5LmlzQXJyYXkodCk/dDpuKHQpLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIGE9ZVtyXTtpZigicHJlcHJvY2Vzc29yIj09PWEudHlwZSl7dmFyIG89YS5kYXRhLm1hdGNoKC9cI2RlZmluZVxzK1NIQURFUl9OQU1FKF9CNjQpP1xzKyguKykkLyk7aWYobyYmb1syXSl7dmFyIHM9b1sxXSxsPW9bMl07cmV0dXJuKHM/aShsKTpsKS50cmltKCl9fX19fSx7ImF0b2ItbGl0ZSI6ODAsImdsc2wtdG9rZW5pemVyIjo0MjN9XSw0MTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixjLHU9MCxmPTAsaD05OTkscD1bXSxkPVtdLG09MSxnPTAsdj0wLHk9ITEseD0hMSxiPSIiLF89YSx3PW47IjMwMCBlcyI9PT0odD10fHx7fSkudmVyc2lvbiYmKF89cyx3PW8pO3ZhciBUPXt9LGs9e307Zm9yKHU9MDt1PF8ubGVuZ3RoO3UrKylUW19bdV1dPSEwO2Zvcih1PTA7dTx3Lmxlbmd0aDt1Kyspa1t3W3VdXT0hMDtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGQ9W10sbnVsbCE9PXQ/ZnVuY3Rpb24odCl7dT0wLHQudG9TdHJpbmcmJih0PXQudG9TdHJpbmcoKSk7dmFyIHI7Yis9dC5yZXBsYWNlKC9cclxuL2csIlxuIiksYz1iLmxlbmd0aDtmb3IoO2U9Ylt1XSx1PGM7KXtzd2l0Y2gocj11LGgpe2Nhc2UgMDp1PUwoKTticmVhaztjYXNlIDE6Y2FzZSAyOnU9RSgpO2JyZWFrO2Nhc2UgMzp1PUMoKTticmVhaztjYXNlIDQ6dT1PKCk7YnJlYWs7Y2FzZSAxMTp1PUkoKTticmVhaztjYXNlIDU6dT16KCk7YnJlYWs7Y2FzZSA5OTk5OnU9RCgpO2JyZWFrO2Nhc2UgOTp1PVMoKTticmVhaztjYXNlIDk5OTp1PU0oKX1pZihyIT09dSlzd2l0Y2goYltyXSl7Y2FzZSJcbiI6Zz0wLCsrbTticmVhaztkZWZhdWx0OisrZ319cmV0dXJuIGYrPXUsYj1iLnNsaWNlKHUpLGR9KHQpOmZ1bmN0aW9uKHQpe3AubGVuZ3RoJiZBKHAuam9pbigiIikpO3JldHVybiBoPTEwLEEoIihlb2YpIiksZH0oKX07ZnVuY3Rpb24gQSh0KXt0Lmxlbmd0aCYmZC5wdXNoKHt0eXBlOmxbaF0sZGF0YTp0LHBvc2l0aW9uOnYsbGluZTptLGNvbHVtbjpnfSl9ZnVuY3Rpb24gTSgpe3JldHVybiBwPXAubGVuZ3RoP1tdOnAsIi8iPT09ciYmIioiPT09ZT8odj1mK3UtMSxoPTAscj1lLHUrMSk6Ii8iPT09ciYmIi8iPT09ZT8odj1mK3UtMSxoPTEscj1lLHUrMSk6IiMiPT09ZT8oaD0yLHY9Zit1LHUpOi9ccy8udGVzdChlKT8oaD05LHY9Zit1LHUpOih5PS9cZC8udGVzdChlKSx4PS9bXlx3X10vLnRlc3QoZSksdj1mK3UsaD15PzQ6eD8zOjk5OTksdSl9ZnVuY3Rpb24gUygpe3JldHVybi9bXlxzXS9nLnRlc3QoZSk/KEEocC5qb2luKCIiKSksaD05OTksdSk6KHAucHVzaChlKSxyPWUsdSsxKX1mdW5jdGlvbiBFKCl7cmV0dXJuIlxyIiE9PWUmJiJcbiIhPT1lfHwiXFwiPT09cj8ocC5wdXNoKGUpLHI9ZSx1KzEpOihBKHAuam9pbigiIikpLGg9OTk5LHUpfWZ1bmN0aW9uIEwoKXtyZXR1cm4iLyI9PT1lJiYiKiI9PT1yPyhwLnB1c2goZSksQShwLmpvaW4oIiIpKSxoPTk5OSx1KzEpOihwLnB1c2goZSkscj1lLHUrMSl9ZnVuY3Rpb24gQygpe2lmKCIuIj09PXImJi9cZC8udGVzdChlKSlyZXR1cm4gaD01LHU7aWYoIi8iPT09ciYmIioiPT09ZSlyZXR1cm4gaD0wLHU7aWYoIi8iPT09ciYmIi8iPT09ZSlyZXR1cm4gaD0xLHU7aWYoIi4iPT09ZSYmcC5sZW5ndGgpe2Zvcig7UChwKTspO3JldHVybiBoPTUsdX1pZigiOyI9PT1lfHwiKSI9PT1lfHwiKCI9PT1lKXtpZihwLmxlbmd0aClmb3IoO1AocCk7KTtyZXR1cm4gQShlKSxoPTk5OSx1KzF9dmFyIHQ9Mj09PXAubGVuZ3RoJiYiPSIhPT1lO2lmKC9bXHdfXGRcc10vLnRlc3QoZSl8fHQpe2Zvcig7UChwKTspO3JldHVybiBoPTk5OSx1fXJldHVybiBwLnB1c2goZSkscj1lLHUrMX1mdW5jdGlvbiBQKHQpe2Zvcih2YXIgZSxyLG49MDs7KXtpZihlPWkuaW5kZXhPZih0LnNsaWNlKDAsdC5sZW5ndGgrbikuam9pbigiIikpLHI9aVtlXSwtMT09PWUpe2lmKG4tLSt0Lmxlbmd0aD4wKWNvbnRpbnVlO3I9dC5zbGljZSgwLDEpLmpvaW4oIiIpfXJldHVybiBBKHIpLHYrPXIubGVuZ3RoLChwPXAuc2xpY2Uoci5sZW5ndGgpKS5sZW5ndGh9fWZ1bmN0aW9uIEkoKXtyZXR1cm4vW15hLWZBLUYwLTldLy50ZXN0KGUpPyhBKHAuam9pbigiIikpLGg9OTk5LHUpOihwLnB1c2goZSkscj1lLHUrMSl9ZnVuY3Rpb24gTygpe3JldHVybiIuIj09PWV8fC9bZUVdLy50ZXN0KGUpPyhwLnB1c2goZSksaD01LHI9ZSx1KzEpOiJ4Ij09PWUmJjE9PT1wLmxlbmd0aCYmIjAiPT09cFswXT8oaD0xMSxwLnB1c2goZSkscj1lLHUrMSk6L1teXGRdLy50ZXN0KGUpPyhBKHAuam9pbigiIikpLGg9OTk5LHUpOihwLnB1c2goZSkscj1lLHUrMSl9ZnVuY3Rpb24geigpe3JldHVybiJmIj09PWUmJihwLnB1c2goZSkscj1lLHUrPTEpLC9bZUVdLy50ZXN0KGUpPyhwLnB1c2goZSkscj1lLHUrMSk6KCItIiE9PWUmJiIrIiE9PWV8fCEvW2VFXS8udGVzdChyKSkmJi9bXlxkXS8udGVzdChlKT8oQShwLmpvaW4oIiIpKSxoPTk5OSx1KToocC5wdXNoKGUpLHI9ZSx1KzEpfWZ1bmN0aW9uIEQoKXtpZigvW15cZFx3X10vLnRlc3QoZSkpe3ZhciB0PXAuam9pbigiIik7cmV0dXJuIGg9a1t0XT84OlRbdF0/Nzo2LEEocC5qb2luKCIiKSksaD05OTksdX1yZXR1cm4gcC5wdXNoKGUpLHI9ZSx1KzF9fTt2YXIgbj10KCIuL2xpYi9saXRlcmFscyIpLGk9dCgiLi9saWIvb3BlcmF0b3JzIiksYT10KCIuL2xpYi9idWlsdGlucyIpLG89dCgiLi9saWIvbGl0ZXJhbHMtMzAwZXMiKSxzPXQoIi4vbGliL2J1aWx0aW5zLTMwMGVzIiksbD1bImJsb2NrLWNvbW1lbnQiLCJsaW5lLWNvbW1lbnQiLCJwcmVwcm9jZXNzb3IiLCJvcGVyYXRvciIsImludGVnZXIiLCJmbG9hdCIsImlkZW50IiwiYnVpbHRpbiIsImtleXdvcmQiLCJ3aGl0ZXNwYWNlIiwiZW9mIiwiaW50ZWdlciJdfSx7Ii4vbGliL2J1aWx0aW5zIjo0MTksIi4vbGliL2J1aWx0aW5zLTMwMGVzIjo0MTgsIi4vbGliL2xpdGVyYWxzIjo0MjEsIi4vbGliL2xpdGVyYWxzLTMwMGVzIjo0MjAsIi4vbGliL29wZXJhdG9ycyI6NDIyfV0sNDE4OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9idWlsdGlucyIpO249bi5zbGljZSgpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIS9eKGdsXF98dGV4dHVyZSkvLnRlc3QodCl9KSksZS5leHBvcnRzPW4uY29uY2F0KFsiZ2xfVmVydGV4SUQiLCJnbF9JbnN0YW5jZUlEIiwiZ2xfUG9zaXRpb24iLCJnbF9Qb2ludFNpemUiLCJnbF9GcmFnQ29vcmQiLCJnbF9Gcm9udEZhY2luZyIsImdsX0ZyYWdEZXB0aCIsImdsX1BvaW50Q29vcmQiLCJnbF9NYXhWZXJ0ZXhBdHRyaWJzIiwiZ2xfTWF4VmVydGV4VW5pZm9ybVZlY3RvcnMiLCJnbF9NYXhWZXJ0ZXhPdXRwdXRWZWN0b3JzIiwiZ2xfTWF4RnJhZ21lbnRJbnB1dFZlY3RvcnMiLCJnbF9NYXhWZXJ0ZXhUZXh0dXJlSW1hZ2VVbml0cyIsImdsX01heENvbWJpbmVkVGV4dHVyZUltYWdlVW5pdHMiLCJnbF9NYXhUZXh0dXJlSW1hZ2VVbml0cyIsImdsX01heEZyYWdtZW50VW5pZm9ybVZlY3RvcnMiLCJnbF9NYXhEcmF3QnVmZmVycyIsImdsX01pblByb2dyYW1UZXhlbE9mZnNldCIsImdsX01heFByb2dyYW1UZXhlbE9mZnNldCIsImdsX0RlcHRoUmFuZ2VQYXJhbWV0ZXJzIiwiZ2xfRGVwdGhSYW5nZSIsInRydW5jIiwicm91bmQiLCJyb3VuZEV2ZW4iLCJpc25hbiIsImlzaW5mIiwiZmxvYXRCaXRzVG9JbnQiLCJmbG9hdEJpdHNUb1VpbnQiLCJpbnRCaXRzVG9GbG9hdCIsInVpbnRCaXRzVG9GbG9hdCIsInBhY2tTbm9ybTJ4MTYiLCJ1bnBhY2tTbm9ybTJ4MTYiLCJwYWNrVW5vcm0yeDE2IiwidW5wYWNrVW5vcm0yeDE2IiwicGFja0hhbGYyeDE2IiwidW5wYWNrSGFsZjJ4MTYiLCJvdXRlclByb2R1Y3QiLCJ0cmFuc3Bvc2UiLCJkZXRlcm1pbmFudCIsImludmVyc2UiLCJ0ZXh0dXJlIiwidGV4dHVyZVNpemUiLCJ0ZXh0dXJlUHJvaiIsInRleHR1cmVMb2QiLCJ0ZXh0dXJlT2Zmc2V0IiwidGV4ZWxGZXRjaCIsInRleGVsRmV0Y2hPZmZzZXQiLCJ0ZXh0dXJlUHJvak9mZnNldCIsInRleHR1cmVMb2RPZmZzZXQiLCJ0ZXh0dXJlUHJvakxvZCIsInRleHR1cmVQcm9qTG9kT2Zmc2V0IiwidGV4dHVyZUdyYWQiLCJ0ZXh0dXJlR3JhZE9mZnNldCIsInRleHR1cmVQcm9qR3JhZCIsInRleHR1cmVQcm9qR3JhZE9mZnNldCJdKX0seyIuL2J1aWx0aW5zIjo0MTl9XSw0MTk6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9WyJhYnMiLCJhY29zIiwiYWxsIiwiYW55IiwiYXNpbiIsImF0YW4iLCJjZWlsIiwiY2xhbXAiLCJjb3MiLCJjcm9zcyIsImRGZHgiLCJkRmR5IiwiZGVncmVlcyIsImRpc3RhbmNlIiwiZG90IiwiZXF1YWwiLCJleHAiLCJleHAyIiwiZmFjZWZvcndhcmQiLCJmbG9vciIsImZyYWN0IiwiZ2xfQmFja0NvbG9yIiwiZ2xfQmFja0xpZ2h0TW9kZWxQcm9kdWN0IiwiZ2xfQmFja0xpZ2h0UHJvZHVjdCIsImdsX0JhY2tNYXRlcmlhbCIsImdsX0JhY2tTZWNvbmRhcnlDb2xvciIsImdsX0NsaXBQbGFuZSIsImdsX0NsaXBWZXJ0ZXgiLCJnbF9Db2xvciIsImdsX0RlcHRoUmFuZ2UiLCJnbF9EZXB0aFJhbmdlUGFyYW1ldGVycyIsImdsX0V5ZVBsYW5lUSIsImdsX0V5ZVBsYW5lUiIsImdsX0V5ZVBsYW5lUyIsImdsX0V5ZVBsYW5lVCIsImdsX0ZvZyIsImdsX0ZvZ0Nvb3JkIiwiZ2xfRm9nRnJhZ0Nvb3JkIiwiZ2xfRm9nUGFyYW1ldGVycyIsImdsX0ZyYWdDb2xvciIsImdsX0ZyYWdDb29yZCIsImdsX0ZyYWdEYXRhIiwiZ2xfRnJhZ0RlcHRoIiwiZ2xfRnJhZ0RlcHRoRVhUIiwiZ2xfRnJvbnRDb2xvciIsImdsX0Zyb250RmFjaW5nIiwiZ2xfRnJvbnRMaWdodE1vZGVsUHJvZHVjdCIsImdsX0Zyb250TGlnaHRQcm9kdWN0IiwiZ2xfRnJvbnRNYXRlcmlhbCIsImdsX0Zyb250U2Vjb25kYXJ5Q29sb3IiLCJnbF9MaWdodE1vZGVsIiwiZ2xfTGlnaHRNb2RlbFBhcmFtZXRlcnMiLCJnbF9MaWdodE1vZGVsUHJvZHVjdHMiLCJnbF9MaWdodFByb2R1Y3RzIiwiZ2xfTGlnaHRTb3VyY2UiLCJnbF9MaWdodFNvdXJjZVBhcmFtZXRlcnMiLCJnbF9NYXRlcmlhbFBhcmFtZXRlcnMiLCJnbF9NYXhDbGlwUGxhbmVzIiwiZ2xfTWF4Q29tYmluZWRUZXh0dXJlSW1hZ2VVbml0cyIsImdsX01heERyYXdCdWZmZXJzIiwiZ2xfTWF4RnJhZ21lbnRVbmlmb3JtQ29tcG9uZW50cyIsImdsX01heExpZ2h0cyIsImdsX01heFRleHR1cmVDb29yZHMiLCJnbF9NYXhUZXh0dXJlSW1hZ2VVbml0cyIsImdsX01heFRleHR1cmVVbml0cyIsImdsX01heFZhcnlpbmdGbG9hdHMiLCJnbF9NYXhWZXJ0ZXhBdHRyaWJzIiwiZ2xfTWF4VmVydGV4VGV4dHVyZUltYWdlVW5pdHMiLCJnbF9NYXhWZXJ0ZXhVbmlmb3JtQ29tcG9uZW50cyIsImdsX01vZGVsVmlld01hdHJpeCIsImdsX01vZGVsVmlld01hdHJpeEludmVyc2UiLCJnbF9Nb2RlbFZpZXdNYXRyaXhJbnZlcnNlVHJhbnNwb3NlIiwiZ2xfTW9kZWxWaWV3TWF0cml4VHJhbnNwb3NlIiwiZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeCIsImdsX01vZGVsVmlld1Byb2plY3Rpb25NYXRyaXhJbnZlcnNlIiwiZ2xfTW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeEludmVyc2VUcmFuc3Bvc2UiLCJnbF9Nb2RlbFZpZXdQcm9qZWN0aW9uTWF0cml4VHJhbnNwb3NlIiwiZ2xfTXVsdGlUZXhDb29yZDAiLCJnbF9NdWx0aVRleENvb3JkMSIsImdsX011bHRpVGV4Q29vcmQyIiwiZ2xfTXVsdGlUZXhDb29yZDMiLCJnbF9NdWx0aVRleENvb3JkNCIsImdsX011bHRpVGV4Q29vcmQ1IiwiZ2xfTXVsdGlUZXhDb29yZDYiLCJnbF9NdWx0aVRleENvb3JkNyIsImdsX05vcm1hbCIsImdsX05vcm1hbE1hdHJpeCIsImdsX05vcm1hbFNjYWxlIiwiZ2xfT2JqZWN0UGxhbmVRIiwiZ2xfT2JqZWN0UGxhbmVSIiwiZ2xfT2JqZWN0UGxhbmVTIiwiZ2xfT2JqZWN0UGxhbmVUIiwiZ2xfUG9pbnQiLCJnbF9Qb2ludENvb3JkIiwiZ2xfUG9pbnRQYXJhbWV0ZXJzIiwiZ2xfUG9pbnRTaXplIiwiZ2xfUG9zaXRpb24iLCJnbF9Qcm9qZWN0aW9uTWF0cml4IiwiZ2xfUHJvamVjdGlvbk1hdHJpeEludmVyc2UiLCJnbF9Qcm9qZWN0aW9uTWF0cml4SW52ZXJzZVRyYW5zcG9zZSIsImdsX1Byb2plY3Rpb25NYXRyaXhUcmFuc3Bvc2UiLCJnbF9TZWNvbmRhcnlDb2xvciIsImdsX1RleENvb3JkIiwiZ2xfVGV4dHVyZUVudkNvbG9yIiwiZ2xfVGV4dHVyZU1hdHJpeCIsImdsX1RleHR1cmVNYXRyaXhJbnZlcnNlIiwiZ2xfVGV4dHVyZU1hdHJpeEludmVyc2VUcmFuc3Bvc2UiLCJnbF9UZXh0dXJlTWF0cml4VHJhbnNwb3NlIiwiZ2xfVmVydGV4IiwiZ3JlYXRlclRoYW4iLCJncmVhdGVyVGhhbkVxdWFsIiwiaW52ZXJzZXNxcnQiLCJsZW5ndGgiLCJsZXNzVGhhbiIsImxlc3NUaGFuRXF1YWwiLCJsb2ciLCJsb2cyIiwibWF0cml4Q29tcE11bHQiLCJtYXgiLCJtaW4iLCJtaXgiLCJtb2QiLCJub3JtYWxpemUiLCJub3QiLCJub3RFcXVhbCIsInBvdyIsInJhZGlhbnMiLCJyZWZsZWN0IiwicmVmcmFjdCIsInNpZ24iLCJzaW4iLCJzbW9vdGhzdGVwIiwic3FydCIsInN0ZXAiLCJ0YW4iLCJ0ZXh0dXJlMkQiLCJ0ZXh0dXJlMkRMb2QiLCJ0ZXh0dXJlMkRQcm9qIiwidGV4dHVyZTJEUHJvakxvZCIsInRleHR1cmVDdWJlIiwidGV4dHVyZUN1YmVMb2QiLCJ0ZXh0dXJlMkRMb2RFWFQiLCJ0ZXh0dXJlMkRQcm9qTG9kRVhUIiwidGV4dHVyZUN1YmVMb2RFWFQiLCJ0ZXh0dXJlMkRHcmFkRVhUIiwidGV4dHVyZTJEUHJvakdyYWRFWFQiLCJ0ZXh0dXJlQ3ViZUdyYWRFWFQiXX0se31dLDQyMDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vbGl0ZXJhbHMiKTtlLmV4cG9ydHM9bi5zbGljZSgpLmNvbmNhdChbImxheW91dCIsImNlbnRyb2lkIiwic21vb3RoIiwiY2FzZSIsIm1hdDJ4MiIsIm1hdDJ4MyIsIm1hdDJ4NCIsIm1hdDN4MiIsIm1hdDN4MyIsIm1hdDN4NCIsIm1hdDR4MiIsIm1hdDR4MyIsIm1hdDR4NCIsInV2ZWMyIiwidXZlYzMiLCJ1dmVjNCIsInNhbXBsZXJDdWJlU2hhZG93Iiwic2FtcGxlcjJEQXJyYXkiLCJzYW1wbGVyMkRBcnJheVNoYWRvdyIsImlzYW1wbGVyMkQiLCJpc2FtcGxlcjNEIiwiaXNhbXBsZXJDdWJlIiwiaXNhbXBsZXIyREFycmF5IiwidXNhbXBsZXIyRCIsInVzYW1wbGVyM0QiLCJ1c2FtcGxlckN1YmUiLCJ1c2FtcGxlcjJEQXJyYXkiLCJjb2hlcmVudCIsInJlc3RyaWN0IiwicmVhZG9ubHkiLCJ3cml0ZW9ubHkiLCJyZXNvdXJjZSIsImF0b21pY191aW50Iiwibm9wZXJzcGVjdGl2ZSIsInBhdGNoIiwic2FtcGxlIiwic3Vicm91dGluZSIsImNvbW1vbiIsInBhcnRpdGlvbiIsImFjdGl2ZSIsImZpbHRlciIsImltYWdlMUQiLCJpbWFnZTJEIiwiaW1hZ2UzRCIsImltYWdlQ3ViZSIsImlpbWFnZTFEIiwiaWltYWdlMkQiLCJpaW1hZ2UzRCIsImlpbWFnZUN1YmUiLCJ1aW1hZ2UxRCIsInVpbWFnZTJEIiwidWltYWdlM0QiLCJ1aW1hZ2VDdWJlIiwiaW1hZ2UxREFycmF5IiwiaW1hZ2UyREFycmF5IiwiaWltYWdlMURBcnJheSIsImlpbWFnZTJEQXJyYXkiLCJ1aW1hZ2UxREFycmF5IiwidWltYWdlMkRBcnJheSIsImltYWdlMURTaGFkb3ciLCJpbWFnZTJEU2hhZG93IiwiaW1hZ2UxREFycmF5U2hhZG93IiwiaW1hZ2UyREFycmF5U2hhZG93IiwiaW1hZ2VCdWZmZXIiLCJpaW1hZ2VCdWZmZXIiLCJ1aW1hZ2VCdWZmZXIiLCJzYW1wbGVyMURBcnJheSIsInNhbXBsZXIxREFycmF5U2hhZG93IiwiaXNhbXBsZXIxRCIsImlzYW1wbGVyMURBcnJheSIsInVzYW1wbGVyMUQiLCJ1c2FtcGxlcjFEQXJyYXkiLCJpc2FtcGxlcjJEUmVjdCIsInVzYW1wbGVyMkRSZWN0Iiwic2FtcGxlckJ1ZmZlciIsImlzYW1wbGVyQnVmZmVyIiwidXNhbXBsZXJCdWZmZXIiLCJzYW1wbGVyMkRNUyIsImlzYW1wbGVyMkRNUyIsInVzYW1wbGVyMkRNUyIsInNhbXBsZXIyRE1TQXJyYXkiLCJpc2FtcGxlcjJETVNBcnJheSIsInVzYW1wbGVyMkRNU0FycmF5Il0pfSx7Ii4vbGl0ZXJhbHMiOjQyMX1dLDQyMTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bInByZWNpc2lvbiIsImhpZ2hwIiwibWVkaXVtcCIsImxvd3AiLCJhdHRyaWJ1dGUiLCJjb25zdCIsInVuaWZvcm0iLCJ2YXJ5aW5nIiwiYnJlYWsiLCJjb250aW51ZSIsImRvIiwiZm9yIiwid2hpbGUiLCJpZiIsImVsc2UiLCJpbiIsIm91dCIsImlub3V0IiwiZmxvYXQiLCJpbnQiLCJ1aW50Iiwidm9pZCIsImJvb2wiLCJ0cnVlIiwiZmFsc2UiLCJkaXNjYXJkIiwicmV0dXJuIiwibWF0MiIsIm1hdDMiLCJtYXQ0IiwidmVjMiIsInZlYzMiLCJ2ZWM0IiwiaXZlYzIiLCJpdmVjMyIsIml2ZWM0IiwiYnZlYzIiLCJidmVjMyIsImJ2ZWM0Iiwic2FtcGxlcjFEIiwic2FtcGxlcjJEIiwic2FtcGxlcjNEIiwic2FtcGxlckN1YmUiLCJzYW1wbGVyMURTaGFkb3ciLCJzYW1wbGVyMkRTaGFkb3ciLCJzdHJ1Y3QiLCJhc20iLCJjbGFzcyIsInVuaW9uIiwiZW51bSIsInR5cGVkZWYiLCJ0ZW1wbGF0ZSIsInRoaXMiLCJwYWNrZWQiLCJnb3RvIiwic3dpdGNoIiwiZGVmYXVsdCIsImlubGluZSIsIm5vaW5saW5lIiwidm9sYXRpbGUiLCJwdWJsaWMiLCJzdGF0aWMiLCJleHRlcm4iLCJleHRlcm5hbCIsImludGVyZmFjZSIsImxvbmciLCJzaG9ydCIsImRvdWJsZSIsImhhbGYiLCJmaXhlZCIsInVuc2lnbmVkIiwiaW5wdXQiLCJvdXRwdXQiLCJodmVjMiIsImh2ZWMzIiwiaHZlYzQiLCJkdmVjMiIsImR2ZWMzIiwiZHZlYzQiLCJmdmVjMiIsImZ2ZWMzIiwiZnZlYzQiLCJzYW1wbGVyMkRSZWN0Iiwic2FtcGxlcjNEUmVjdCIsInNhbXBsZXIyRFJlY3RTaGFkb3ciLCJzaXplb2YiLCJjYXN0IiwibmFtZXNwYWNlIiwidXNpbmciXX0se31dLDQyMjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1bIjw8PSIsIj4+PSIsIisrIiwiLS0iLCI8PCIsIj4+IiwiPD0iLCI+PSIsIj09IiwiIT0iLCImJiIsInx8IiwiKz0iLCItPSIsIio9IiwiLz0iLCIlPSIsIiY9IiwiXl4iLCJePSIsInw9IiwiKCIsIikiLCJbIiwiXSIsIi4iLCIhIiwifiIsIioiLCIvIiwiJSIsIisiLCItIiwiPCIsIj4iLCImIiwiXiIsInwiLCI/IiwiOiIsIj0iLCIsIiwiOyIsInsiLCJ9Il19LHt9XSw0MjM6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuL2luZGV4Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bihlKSxpPVtdO3JldHVybiBpPShpPWkuY29uY2F0KHIodCkpKS5jb25jYXQocihudWxsKSl9fSx7Ii4vaW5kZXgiOjQxN31dLDQyNDpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXsic3RyaW5nIj09dHlwZW9mIHQmJih0PVt0XSk7Zm9yKHZhciBlPVtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpLHI9W10sbj0wO248dC5sZW5ndGgtMTtuKyspci5wdXNoKHRbbl0sZVtuXXx8IiIpO3JldHVybiByLnB1c2godFtuXSksci5qb2luKCIiKX19LHt9XSw0MjU6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBuLGk9dCgiaXMtYnJvd3NlciIpO249ImZ1bmN0aW9uIj09dHlwZW9mIHIubWF0Y2hNZWRpYT8hci5tYXRjaE1lZGlhKCIoaG92ZXI6IG5vbmUpIikubWF0Y2hlczppLGUuZXhwb3J0cz1ufSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJpcy1icm93c2VyIjo0MzJ9XSw0MjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiaXMtYnJvd3NlciIpO2UuZXhwb3J0cz1uJiZmdW5jdGlvbigpe3ZhciB0PSExO3RyeXt2YXIgZT1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXt0PSEwfX0pO3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLGUpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0ZXN0IixudWxsLGUpfWNhdGNoKGUpe3Q9ITF9cmV0dXJuIHR9KCl9LHsiaXMtYnJvd3NlciI6NDMyfV0sNDI3OltmdW5jdGlvbih0LGUscil7Ci8qISBpZWVlNzU0LiBCU0QtMy1DbGF1c2UgTGljZW5zZS4gRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnL29wZW5zb3VyY2U+ICovCnIucmVhZD1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhLG8scz04Kmktbi0xLGw9KDE8PHMpLTEsYz1sPj4xLHU9LTcsZj1yP2ktMTowLGg9cj8tMToxLHA9dFtlK2ZdO2ZvcihmKz1oLGE9cCYoMTw8LXUpLTEscD4+PS11LHUrPXM7dT4wO2E9MjU2KmErdFtlK2ZdLGYrPWgsdS09OCk7Zm9yKG89YSYoMTw8LXUpLTEsYT4+PS11LHUrPW47dT4wO289MjU2Km8rdFtlK2ZdLGYrPWgsdS09OCk7aWYoMD09PWEpYT0xLWM7ZWxzZXtpZihhPT09bClyZXR1cm4gbz9OYU46MS8wKihwPy0xOjEpO28rPU1hdGgucG93KDIsbiksYS09Y31yZXR1cm4ocD8tMToxKSpvKk1hdGgucG93KDIsYS1uKX0sci53cml0ZT1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG8scyxsLGM9OCphLWktMSx1PSgxPDxjKS0xLGY9dT4+MSxoPTIzPT09aT9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAscD1uPzA6YS0xLGQ9bj8xOi0xLG09ZTwwfHwwPT09ZSYmMS9lPDA/MTowO2ZvcihlPU1hdGguYWJzKGUpLGlzTmFOKGUpfHxlPT09MS8wPyhzPWlzTmFOKGUpPzE6MCxvPXUpOihvPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpLGUqKGw9TWF0aC5wb3coMiwtbykpPDEmJihvLS0sbCo9MiksKGUrPW8rZj49MT9oL2w6aCpNYXRoLnBvdygyLDEtZikpKmw+PTImJihvKyssbC89MiksbytmPj11PyhzPTAsbz11KTpvK2Y+PTE/KHM9KGUqbC0xKSpNYXRoLnBvdygyLGkpLG8rPWYpOihzPWUqTWF0aC5wb3coMixmLTEpKk1hdGgucG93KDIsaSksbz0wKSk7aT49ODt0W3IrcF09MjU1JnMscCs9ZCxzLz0yNTYsaS09OCk7Zm9yKG89bzw8aXxzLGMrPWk7Yz4wO3RbcitwXT0yNTUmbyxwKz1kLG8vPTI1NixjLT04KTt0W3IrcC1kXXw9MTI4Km19fSx7fV0sNDI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQubGVuZ3RoO2lmKDA9PT1yKXRocm93IG5ldyBFcnJvcigiTXVzdCBoYXZlIGF0IGxlYXN0IGQrMSBwb2ludHMiKTt2YXIgaT10WzBdLmxlbmd0aDtpZihyPD1pKXRocm93IG5ldyBFcnJvcigiTXVzdCBpbnB1dCBhdCBsZWFzdCBkKzEgcG9pbnRzIik7dmFyIG89dC5zbGljZSgwLGkrMSkscz1uLmFwcGx5KHZvaWQgMCxvKTtpZigwPT09cyl0aHJvdyBuZXcgRXJyb3IoIklucHV0IG5vdCBpbiBnZW5lcmFsIHBvc2l0aW9uIik7Zm9yKHZhciBsPW5ldyBBcnJheShpKzEpLHU9MDt1PD1pOysrdSlsW3VdPXU7czwwJiYobFswXT0xLGxbMV09MCk7dmFyIGY9bmV3IGEobCxuZXcgQXJyYXkoaSsxKSwhMSksaD1mLmFkamFjZW50LHA9bmV3IEFycmF5KGkrMik7Zm9yKHU9MDt1PD1pOysrdSl7Zm9yKHZhciBkPWwuc2xpY2UoKSxtPTA7bTw9aTsrK20pbT09PXUmJihkW21dPS0xKTt2YXIgZz1kWzBdO2RbMF09ZFsxXSxkWzFdPWc7dmFyIHY9bmV3IGEoZCxuZXcgQXJyYXkoaSsxKSwhMCk7aFt1XT12LHBbdV09dn1wW2krMV09Zjtmb3IodT0wO3U8PWk7Kyt1KXtkPWhbdV0udmVydGljZXM7dmFyIHk9aFt1XS5hZGphY2VudDtmb3IobT0wO208PWk7KyttKXt2YXIgeD1kW21dO2lmKHg8MCl5W21dPWY7ZWxzZSBmb3IodmFyIGI9MDtiPD1pOysrYiloW2JdLnZlcnRpY2VzLmluZGV4T2YoeCk8MCYmKHlbbV09aFtiXSl9fXZhciBfPW5ldyBjKGksbyxwKSx3PSEhZTtmb3IodT1pKzE7dTxyOysrdSlfLmluc2VydCh0W3VdLHcpO3JldHVybiBfLmJvdW5kYXJ5KCl9O3ZhciBuPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpLGk9dCgic2ltcGxpY2lhbC1jb21wbGV4IikuY29tcGFyZUNlbGxzO2Z1bmN0aW9uIGEodCxlLHIpe3RoaXMudmVydGljZXM9dCx0aGlzLmFkamFjZW50PWUsdGhpcy5ib3VuZGFyeT1yLHRoaXMubGFzdFZpc2l0ZWQ9LTF9ZnVuY3Rpb24gbyh0LGUscil7dGhpcy52ZXJ0aWNlcz10LHRoaXMuY2VsbD1lLHRoaXMuaW5kZXg9cn1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIGkodC52ZXJ0aWNlcyxlLnZlcnRpY2VzKX1hLnByb3RvdHlwZS5mbGlwPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy52ZXJ0aWNlc1swXTt0aGlzLnZlcnRpY2VzWzBdPXRoaXMudmVydGljZXNbMV0sdGhpcy52ZXJ0aWNlc1sxXT10O3ZhciBlPXRoaXMuYWRqYWNlbnRbMF07dGhpcy5hZGphY2VudFswXT10aGlzLmFkamFjZW50WzFdLHRoaXMuYWRqYWNlbnRbMV09ZX07dmFyIGw9W107ZnVuY3Rpb24gYyh0LGUscil7dGhpcy5kaW1lbnNpb249dCx0aGlzLnZlcnRpY2VzPWUsdGhpcy5zaW1wbGljZXM9cix0aGlzLmludGVyaW9yPXIuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hdC5ib3VuZGFyeX0pKSx0aGlzLnR1cGxlPW5ldyBBcnJheSh0KzEpO2Zvcih2YXIgaT0wO2k8PXQ7KytpKXRoaXMudHVwbGVbaV09dGhpcy52ZXJ0aWNlc1tpXTt2YXIgYSxvPWxbdF07b3x8KG89bFt0XT0oKGE9blt0KzFdKXx8KGE9biksZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9dGhpcy50dXBsZTtyZXR1cm4gdC5hcHBseSh0aGlzLGUpfX0oYSkpKSx0aGlzLm9yaWVudD1vfXZhciB1PWMucHJvdG90eXBlO3UuaGFuZGxlQm91bmRhcnlEZWdlbmVyYWN5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5kaW1lbnNpb24sbj10aGlzLnZlcnRpY2VzLmxlbmd0aC0xLGk9dGhpcy50dXBsZSxhPXRoaXMudmVydGljZXMsbz1bdF07Zm9yKHQubGFzdFZpc2l0ZWQ9LW47by5sZW5ndGg+MDspZm9yKHZhciBzPSh0PW8ucG9wKCkpLmFkamFjZW50LGw9MDtsPD1yOysrbCl7dmFyIGM9c1tsXTtpZihjLmJvdW5kYXJ5JiYhKGMubGFzdFZpc2l0ZWQ8PS1uKSl7Zm9yKHZhciB1PWMudmVydGljZXMsZj0wO2Y8PXI7KytmKXt2YXIgaD11W2ZdO2lbZl09aDwwP2U6YVtoXX12YXIgcD10aGlzLm9yaWVudCgpO2lmKHA+MClyZXR1cm4gYztjLmxhc3RWaXNpdGVkPS1uLDA9PT1wJiZvLnB1c2goYyl9fXJldHVybiBudWxsfSx1LndhbGs9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnZlcnRpY2VzLmxlbmd0aC0xLG49dGhpcy5kaW1lbnNpb24saT10aGlzLnZlcnRpY2VzLGE9dGhpcy50dXBsZSxvPWU/dGhpcy5pbnRlcmlvci5sZW5ndGgqTWF0aC5yYW5kb20oKXwwOnRoaXMuaW50ZXJpb3IubGVuZ3RoLTEscz10aGlzLmludGVyaW9yW29dO3Q6Zm9yKDshcy5ib3VuZGFyeTspe2Zvcih2YXIgbD1zLnZlcnRpY2VzLGM9cy5hZGphY2VudCx1PTA7dTw9bjsrK3UpYVt1XT1pW2xbdV1dO3MubGFzdFZpc2l0ZWQ9cjtmb3IodT0wO3U8PW47Kyt1KXt2YXIgZj1jW3VdO2lmKCEoZi5sYXN0VmlzaXRlZD49cikpe3ZhciBoPWFbdV07YVt1XT10O3ZhciBwPXRoaXMub3JpZW50KCk7aWYoYVt1XT1oLHA8MCl7cz1mO2NvbnRpbnVlIHR9Zi5ib3VuZGFyeT9mLmxhc3RWaXNpdGVkPS1yOmYubGFzdFZpc2l0ZWQ9cn19cmV0dXJufXJldHVybiBzfSx1LmFkZFBlYWtzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy52ZXJ0aWNlcy5sZW5ndGgtMSxuPXRoaXMuZGltZW5zaW9uLGk9dGhpcy52ZXJ0aWNlcyxsPXRoaXMudHVwbGUsYz10aGlzLmludGVyaW9yLHU9dGhpcy5zaW1wbGljZXMsZj1bZV07ZS5sYXN0VmlzaXRlZD1yLGUudmVydGljZXNbZS52ZXJ0aWNlcy5pbmRleE9mKC0xKV09cixlLmJvdW5kYXJ5PSExLGMucHVzaChlKTtmb3IodmFyIGg9W107Zi5sZW5ndGg+MDspe3ZhciBwPShlPWYucG9wKCkpLnZlcnRpY2VzLGQ9ZS5hZGphY2VudCxtPXAuaW5kZXhPZihyKTtpZighKG08MCkpZm9yKHZhciBnPTA7Zzw9bjsrK2cpaWYoZyE9PW0pe3ZhciB2PWRbZ107aWYodi5ib3VuZGFyeSYmISh2Lmxhc3RWaXNpdGVkPj1yKSl7dmFyIHk9di52ZXJ0aWNlcztpZih2Lmxhc3RWaXNpdGVkIT09LXIpe2Zvcih2YXIgeD0wLGI9MDtiPD1uOysrYil5W2JdPDA/KHg9YixsW2JdPXQpOmxbYl09aVt5W2JdXTtpZih0aGlzLm9yaWVudCgpPjApe3lbeF09cix2LmJvdW5kYXJ5PSExLGMucHVzaCh2KSxmLnB1c2godiksdi5sYXN0VmlzaXRlZD1yO2NvbnRpbnVlfXYubGFzdFZpc2l0ZWQ9LXJ9dmFyIF89di5hZGphY2VudCx3PXAuc2xpY2UoKSxUPWQuc2xpY2UoKSxrPW5ldyBhKHcsVCwhMCk7dS5wdXNoKGspO3ZhciBBPV8uaW5kZXhPZihlKTtpZighKEE8MCkpe19bQV09ayxUW21dPXYsd1tnXT0tMSxUW2ddPWUsZFtnXT1rLGsuZmxpcCgpO2ZvcihiPTA7Yjw9bjsrK2Ipe3ZhciBNPXdbYl07aWYoIShNPDB8fE09PT1yKSl7Zm9yKHZhciBTPW5ldyBBcnJheShuLTEpLEU9MCxMPTA7TDw9bjsrK0wpe3ZhciBDPXdbTF07QzwwfHxMPT09Ynx8KFNbRSsrXT1DKX1oLnB1c2gobmV3IG8oUyxrLGIpKX19fX19fWguc29ydChzKTtmb3IoZz0wO2crMTxoLmxlbmd0aDtnKz0yKXt2YXIgUD1oW2ddLEk9aFtnKzFdLE89UC5pbmRleCx6PUkuaW5kZXg7TzwwfHx6PDB8fChQLmNlbGwuYWRqYWNlbnRbUC5pbmRleF09SS5jZWxsLEkuY2VsbC5hZGphY2VudFtJLmluZGV4XT1QLmNlbGwpfX0sdS5pbnNlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnZlcnRpY2VzO3IucHVzaCh0KTt2YXIgbj10aGlzLndhbGsodCxlKTtpZihuKXtmb3IodmFyIGk9dGhpcy5kaW1lbnNpb24sYT10aGlzLnR1cGxlLG89MDtvPD1pOysrbyl7dmFyIHM9bi52ZXJ0aWNlc1tvXTthW29dPXM8MD90OnJbc119dmFyIGw9dGhpcy5vcmllbnQoYSk7bDwwfHwoMCE9PWx8fChuPXRoaXMuaGFuZGxlQm91bmRhcnlEZWdlbmVyYWN5KG4sdCkpKSYmdGhpcy5hZGRQZWFrcyh0LG4pfX0sdS5ib3VuZGFyeT1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmRpbWVuc2lvbixlPVtdLHI9dGhpcy5zaW1wbGljZXMsbj1yLmxlbmd0aCxpPTA7aTxuOysraSl7dmFyIGE9cltpXTtpZihhLmJvdW5kYXJ5KXtmb3IodmFyIG89bmV3IEFycmF5KHQpLHM9YS52ZXJ0aWNlcyxsPTAsYz0wLHU9MDt1PD10OysrdSlzW3VdPj0wP29bbCsrXT1zW3VdOmM9MSZ1O2lmKGM9PT0oMSZ0KSl7dmFyIGY9b1swXTtvWzBdPW9bMV0sb1sxXT1mfWUucHVzaChvKX19cmV0dXJuIGV9fSx7InJvYnVzdC1vcmllbnRhdGlvbiI6NTI0LCJzaW1wbGljaWFsLWNvbXBsZXgiOjUzNH1dLDQyOTpbZnVuY3Rpb24odCxlLHIpeyJmdW5jdGlvbiI9PXR5cGVvZiBPYmplY3QuY3JlYXRlP2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2UmJih0LnN1cGVyXz1lLHQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZS5wcm90b3R5cGUse2NvbnN0cnVjdG9yOnt2YWx1ZTp0LGVudW1lcmFibGU6ITEsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pKX06ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoZSl7dC5zdXBlcl89ZTt2YXIgcj1mdW5jdGlvbigpe307ci5wcm90b3R5cGU9ZS5wcm90b3R5cGUsdC5wcm90b3R5cGU9bmV3IHIsdC5wcm90b3R5cGUuY29uc3RydWN0b3I9dH19fSx7fV0sNDMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZnVuY3Rpb24gaSh0LGUscixuLGkpe3RoaXMubWlkPXQsdGhpcy5sZWZ0PWUsdGhpcy5yaWdodD1yLHRoaXMubGVmdFBvaW50cz1uLHRoaXMucmlnaHRQb2ludHM9aSx0aGlzLmNvdW50PShlP2UuY291bnQ6MCkrKHI/ci5jb3VudDowKStuLmxlbmd0aH1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoIXR8fDA9PT10Lmxlbmd0aClyZXR1cm4gbmV3IHYobnVsbCk7cmV0dXJuIG5ldyB2KGcodCkpfTt2YXIgYT1pLnByb3RvdHlwZTtmdW5jdGlvbiBvKHQsZSl7dC5taWQ9ZS5taWQsdC5sZWZ0PWUubGVmdCx0LnJpZ2h0PWUucmlnaHQsdC5sZWZ0UG9pbnRzPWUubGVmdFBvaW50cyx0LnJpZ2h0UG9pbnRzPWUucmlnaHRQb2ludHMsdC5jb3VudD1lLmNvdW50fWZ1bmN0aW9uIHModCxlKXt2YXIgcj1nKGUpO3QubWlkPXIubWlkLHQubGVmdD1yLmxlZnQsdC5yaWdodD1yLnJpZ2h0LHQubGVmdFBvaW50cz1yLmxlZnRQb2ludHMsdC5yaWdodFBvaW50cz1yLnJpZ2h0UG9pbnRzLHQuY291bnQ9ci5jb3VudH1mdW5jdGlvbiBsKHQsZSl7dmFyIHI9dC5pbnRlcnZhbHMoW10pO3IucHVzaChlKSxzKHQscil9ZnVuY3Rpb24gYyh0LGUpe3ZhciByPXQuaW50ZXJ2YWxzKFtdKSxuPXIuaW5kZXhPZihlKTtyZXR1cm4gbjwwPzA6KHIuc3BsaWNlKG4sMSkscyh0LHIpLDEpfWZ1bmN0aW9uIHUodCxlLHIpe2Zvcih2YXIgbj0wO248dC5sZW5ndGgmJnRbbl1bMF08PWU7KytuKXt2YXIgaT1yKHRbbl0pO2lmKGkpcmV0dXJuIGl9fWZ1bmN0aW9uIGYodCxlLHIpe2Zvcih2YXIgbj10Lmxlbmd0aC0xO24+PTAmJnRbbl1bMV0+PWU7LS1uKXt2YXIgaT1yKHRbbl0pO2lmKGkpcmV0dXJuIGl9fWZ1bmN0aW9uIGgodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG49ZSh0W3JdKTtpZihuKXJldHVybiBufX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHQtZX1mdW5jdGlvbiBkKHQsZSl7dmFyIHI9dFswXS1lWzBdO3JldHVybiByfHx0WzFdLWVbMV19ZnVuY3Rpb24gbSh0LGUpe3ZhciByPXRbMV0tZVsxXTtyZXR1cm4gcnx8dFswXS1lWzBdfWZ1bmN0aW9uIGcodCl7aWYoMD09PXQubGVuZ3RoKXJldHVybiBudWxsO2Zvcih2YXIgZT1bXSxyPTA7cjx0Lmxlbmd0aDsrK3IpZS5wdXNoKHRbcl1bMF0sdFtyXVsxXSk7ZS5zb3J0KHApO3ZhciBuPWVbZS5sZW5ndGg+PjFdLGE9W10sbz1bXSxzPVtdO2ZvcihyPTA7cjx0Lmxlbmd0aDsrK3Ipe3ZhciBsPXRbcl07bFsxXTxuP2EucHVzaChsKTpuPGxbMF0/by5wdXNoKGwpOnMucHVzaChsKX12YXIgYz1zLHU9cy5zbGljZSgpO3JldHVybiBjLnNvcnQoZCksdS5zb3J0KG0pLG5ldyBpKG4sZyhhKSxnKG8pLGMsdSl9ZnVuY3Rpb24gdih0KXt0aGlzLnJvb3Q9dH1hLmludGVydmFscz1mdW5jdGlvbih0KXtyZXR1cm4gdC5wdXNoLmFwcGx5KHQsdGhpcy5sZWZ0UG9pbnRzKSx0aGlzLmxlZnQmJnRoaXMubGVmdC5pbnRlcnZhbHModCksdGhpcy5yaWdodCYmdGhpcy5yaWdodC5pbnRlcnZhbHModCksdH0sYS5pbnNlcnQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb3VudC10aGlzLmxlZnRQb2ludHMubGVuZ3RoO2lmKHRoaXMuY291bnQrPTEsdFsxXTx0aGlzLm1pZCl0aGlzLmxlZnQ/NCoodGhpcy5sZWZ0LmNvdW50KzEpPjMqKGUrMSk/bCh0aGlzLHQpOnRoaXMubGVmdC5pbnNlcnQodCk6dGhpcy5sZWZ0PWcoW3RdKTtlbHNlIGlmKHRbMF0+dGhpcy5taWQpdGhpcy5yaWdodD80Kih0aGlzLnJpZ2h0LmNvdW50KzEpPjMqKGUrMSk/bCh0aGlzLHQpOnRoaXMucmlnaHQuaW5zZXJ0KHQpOnRoaXMucmlnaHQ9ZyhbdF0pO2Vsc2V7dmFyIHI9bi5nZSh0aGlzLmxlZnRQb2ludHMsdCxkKSxpPW4uZ2UodGhpcy5yaWdodFBvaW50cyx0LG0pO3RoaXMubGVmdFBvaW50cy5zcGxpY2UociwwLHQpLHRoaXMucmlnaHRQb2ludHMuc3BsaWNlKGksMCx0KX19LGEucmVtb3ZlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY291bnQtdGhpcy5sZWZ0UG9pbnRzO2lmKHRbMV08dGhpcy5taWQpcmV0dXJuIHRoaXMubGVmdD80Kih0aGlzLnJpZ2h0P3RoaXMucmlnaHQuY291bnQ6MCk+MyooZS0xKT9jKHRoaXMsdCk6Mj09PShzPXRoaXMubGVmdC5yZW1vdmUodCkpPyh0aGlzLmxlZnQ9bnVsbCx0aGlzLmNvdW50LT0xLDEpOigxPT09cyYmKHRoaXMuY291bnQtPTEpLHMpOjA7aWYodFswXT50aGlzLm1pZClyZXR1cm4gdGhpcy5yaWdodD80Kih0aGlzLmxlZnQ/dGhpcy5sZWZ0LmNvdW50OjApPjMqKGUtMSk/Yyh0aGlzLHQpOjI9PT0ocz10aGlzLnJpZ2h0LnJlbW92ZSh0KSk/KHRoaXMucmlnaHQ9bnVsbCx0aGlzLmNvdW50LT0xLDEpOigxPT09cyYmKHRoaXMuY291bnQtPTEpLHMpOjA7aWYoMT09PXRoaXMuY291bnQpcmV0dXJuIHRoaXMubGVmdFBvaW50c1swXT09PXQ/MjowO2lmKDE9PT10aGlzLmxlZnRQb2ludHMubGVuZ3RoJiZ0aGlzLmxlZnRQb2ludHNbMF09PT10KXtpZih0aGlzLmxlZnQmJnRoaXMucmlnaHQpe2Zvcih2YXIgcj10aGlzLGk9dGhpcy5sZWZ0O2kucmlnaHQ7KXI9aSxpPWkucmlnaHQ7aWYocj09PXRoaXMpaS5yaWdodD10aGlzLnJpZ2h0O2Vsc2V7dmFyIGE9dGhpcy5sZWZ0LHM9dGhpcy5yaWdodDtyLmNvdW50LT1pLmNvdW50LHIucmlnaHQ9aS5sZWZ0LGkubGVmdD1hLGkucmlnaHQ9c31vKHRoaXMsaSksdGhpcy5jb3VudD0odGhpcy5sZWZ0P3RoaXMubGVmdC5jb3VudDowKSsodGhpcy5yaWdodD90aGlzLnJpZ2h0LmNvdW50OjApK3RoaXMubGVmdFBvaW50cy5sZW5ndGh9ZWxzZSB0aGlzLmxlZnQ/byh0aGlzLHRoaXMubGVmdCk6byh0aGlzLHRoaXMucmlnaHQpO3JldHVybiAxfWZvcihhPW4uZ2UodGhpcy5sZWZ0UG9pbnRzLHQsZCk7YTx0aGlzLmxlZnRQb2ludHMubGVuZ3RoJiZ0aGlzLmxlZnRQb2ludHNbYV1bMF09PT10WzBdOysrYSlpZih0aGlzLmxlZnRQb2ludHNbYV09PT10KXt0aGlzLmNvdW50LT0xLHRoaXMubGVmdFBvaW50cy5zcGxpY2UoYSwxKTtmb3Iocz1uLmdlKHRoaXMucmlnaHRQb2ludHMsdCxtKTtzPHRoaXMucmlnaHRQb2ludHMubGVuZ3RoJiZ0aGlzLnJpZ2h0UG9pbnRzW3NdWzFdPT09dFsxXTsrK3MpaWYodGhpcy5yaWdodFBvaW50c1tzXT09PXQpcmV0dXJuIHRoaXMucmlnaHRQb2ludHMuc3BsaWNlKHMsMSksMX1yZXR1cm4gMH0sYS5xdWVyeVBvaW50PWZ1bmN0aW9uKHQsZSl7aWYodDx0aGlzLm1pZCl7aWYodGhpcy5sZWZ0KWlmKHI9dGhpcy5sZWZ0LnF1ZXJ5UG9pbnQodCxlKSlyZXR1cm4gcjtyZXR1cm4gdSh0aGlzLmxlZnRQb2ludHMsdCxlKX1pZih0PnRoaXMubWlkKXt2YXIgcjtpZih0aGlzLnJpZ2h0KWlmKHI9dGhpcy5yaWdodC5xdWVyeVBvaW50KHQsZSkpcmV0dXJuIHI7cmV0dXJuIGYodGhpcy5yaWdodFBvaW50cyx0LGUpfXJldHVybiBoKHRoaXMubGVmdFBvaW50cyxlKX0sYS5xdWVyeUludGVydmFsPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtpZih0PHRoaXMubWlkJiZ0aGlzLmxlZnQmJihuPXRoaXMubGVmdC5xdWVyeUludGVydmFsKHQsZSxyKSkpcmV0dXJuIG47aWYoZT50aGlzLm1pZCYmdGhpcy5yaWdodCYmKG49dGhpcy5yaWdodC5xdWVyeUludGVydmFsKHQsZSxyKSkpcmV0dXJuIG47cmV0dXJuIGU8dGhpcy5taWQ/dSh0aGlzLmxlZnRQb2ludHMsZSxyKTp0PnRoaXMubWlkP2YodGhpcy5yaWdodFBvaW50cyx0LHIpOmgodGhpcy5sZWZ0UG9pbnRzLHIpfTt2YXIgeT12LnByb3RvdHlwZTt5Lmluc2VydD1mdW5jdGlvbih0KXt0aGlzLnJvb3Q/dGhpcy5yb290Lmluc2VydCh0KTp0aGlzLnJvb3Q9bmV3IGkodFswXSxudWxsLG51bGwsW3RdLFt0XSl9LHkucmVtb3ZlPWZ1bmN0aW9uKHQpe2lmKHRoaXMucm9vdCl7dmFyIGU9dGhpcy5yb290LnJlbW92ZSh0KTtyZXR1cm4gMj09PWUmJih0aGlzLnJvb3Q9bnVsbCksMCE9PWV9cmV0dXJuITF9LHkucXVlcnlQb2ludD1mdW5jdGlvbih0LGUpe2lmKHRoaXMucm9vdClyZXR1cm4gdGhpcy5yb290LnF1ZXJ5UG9pbnQodCxlKX0seS5xdWVyeUludGVydmFsPWZ1bmN0aW9uKHQsZSxyKXtpZih0PD1lJiZ0aGlzLnJvb3QpcmV0dXJuIHRoaXMucm9vdC5xdWVyeUludGVydmFsKHQsZSxyKX0sT2JqZWN0LmRlZmluZVByb3BlcnR5KHksImNvdW50Iix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdD90aGlzLnJvb3QuY291bnQ6MH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoeSwiaW50ZXJ2YWxzIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdD90aGlzLnJvb3QuaW50ZXJ2YWxzKFtdKTpbXX19KX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTAwfV0sNDMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7KytyKWVbcl09cjtyZXR1cm4gZX19LHt9XSw0MzI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ITB9LHt9XSw0MzM6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQpe3JldHVybiEhdC5jb25zdHJ1Y3RvciYmImZ1bmN0aW9uIj09dHlwZW9mIHQuY29uc3RydWN0b3IuaXNCdWZmZXImJnQuY29uc3RydWN0b3IuaXNCdWZmZXIodCl9Ci8qIQogKiBEZXRlcm1pbmUgaWYgYW4gb2JqZWN0IGlzIGEgQnVmZmVyCiAqCiAqIEBhdXRob3IgICBGZXJvc3MgQWJvdWtoYWRpamVoIDxodHRwczovL2Zlcm9zcy5vcmc+CiAqIEBsaWNlbnNlICBNSVQKICovCmUuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dCYmKG4odCl8fGZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0LnJlYWRGbG9hdExFJiYiZnVuY3Rpb24iPT10eXBlb2YgdC5zbGljZSYmbih0LnNsaWNlKDAsMCkpfSh0KXx8ISF0Ll9pc0J1ZmZlcil9fSx7fV0sNDM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz0idW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmKC9NU0lFLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpfHwvVHJpZGVudFwvLy50ZXN0KG5hdmlnYXRvci5hcHBWZXJzaW9uKSl9LHt9XSw0MzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWEsZS5leHBvcnRzLmlzTW9iaWxlPWEsZS5leHBvcnRzLmRlZmF1bHQ9YTt2YXIgbj0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXNbNDZdMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vL2ksaT0vKGFuZHJvaWR8YmJcZCt8bWVlZ28pLittb2JpbGV8YXZhbnRnb3xiYWRhXC98YmxhY2tiZXJyeXxibGF6ZXJ8Y29tcGFsfGVsYWluZXxmZW5uZWN8aGlwdG9wfGllbW9iaWxlfGlwKGhvbmV8b2QpfGlyaXN8a2luZGxlfGxnZSB8bWFlbW98bWlkcHxtbXB8bW9iaWxlLitmaXJlZm94fG5ldGZyb250fG9wZXJhIG0ob2J8aW4paXxwYWxtKCBvcyk/fHBob25lfHAoaXhpfHJlKVwvfHBsdWNrZXJ8cG9ja2V0fHBzcHxzZXJpZXNbNDZdMHxzeW1iaWFufHRyZW98dXBcLihicm93c2VyfGxpbmspfHZvZGFmb25lfHdhcHx3aW5kb3dzIChjZXxwaG9uZSl8eGRhfHhpaW5vfGFuZHJvaWR8aXBhZHxwbGF5Ym9va3xzaWxrL2k7ZnVuY3Rpb24gYSh0KXt0fHwodD17fSk7dmFyIGU9dC51YTtpZihlfHwidW5kZWZpbmVkIj09dHlwZW9mIG5hdmlnYXRvcnx8KGU9bmF2aWdhdG9yLnVzZXJBZ2VudCksZSYmZS5oZWFkZXJzJiYic3RyaW5nIj09dHlwZW9mIGUuaGVhZGVyc1sidXNlci1hZ2VudCJdJiYoZT1lLmhlYWRlcnNbInVzZXItYWdlbnQiXSksInN0cmluZyIhPXR5cGVvZiBlKXJldHVybiExO3ZhciByPXQudGFibGV0P2kudGVzdChlKTpuLnRlc3QoZSk7cmV0dXJuIXImJnQudGFibGV0JiZ0LmZlYXR1cmVEZXRlY3QmJm5hdmlnYXRvciYmbmF2aWdhdG9yLm1heFRvdWNoUG9pbnRzPjEmJi0xIT09ZS5pbmRleE9mKCJNYWNpbnRvc2giKSYmLTEhPT1lLmluZGV4T2YoIlNhZmFyaSIpJiYocj0hMCkscn19LHt9XSw0MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiB0O3JldHVybiBudWxsIT09dCYmKCJvYmplY3QiPT09ZXx8ImZ1bmN0aW9uIj09PWUpfX0se31dLDQzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZTtyZXR1cm4iW29iamVjdCBPYmplY3RdIj09PW4uY2FsbCh0KSYmKG51bGw9PT0oZT1PYmplY3QuZ2V0UHJvdG90eXBlT2YodCkpfHxlPT09T2JqZWN0LmdldFByb3RvdHlwZU9mKHt9KSl9fSx7fV0sNDM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj10Lmxlbmd0aCxuPTA7bjxyO24rKylpZigoKGU9dC5jaGFyQ29kZUF0KG4pKTw5fHxlPjEzKSYmMzIhPT1lJiYxMzMhPT1lJiYxNjAhPT1lJiY1NzYwIT09ZSYmNjE1OCE9PWUmJihlPDgxOTJ8fGU+ODIwNSkmJjgyMzIhPT1lJiY4MjMzIT09ZSYmODIzOSE9PWUmJjgyODchPT1lJiY4Mjg4IT09ZSYmMTIyODghPT1lJiY2NTI3OSE9PWUpcmV0dXJuITE7cmV0dXJuITB9fSx7fV0sNDM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJih0PXQudHJpbSgpLCEhKC9eW216bGh2Y3NxdGFdXHMqWy0rLjAtOV1bXm1saHZ6Y3NxdGFdKy9pLnRlc3QodCkmJi9bXGR6XSQvaS50ZXN0KHQpJiZ0Lmxlbmd0aD40KSl9fSx7fV0sNDQwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCooMS1yKStlKnJ9fSx7fV0sNDQxOltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2UuZXhwb3J0cz1uKCk6KHQ9dHx8c2VsZikubWFwYm94Z2w9bigpfSh0aGlzLChmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdCxlLHI7ZnVuY3Rpb24gbihuLGkpe2lmKHQpaWYoZSl7dmFyIGE9InZhciBzaGFyZWRDaHVuayA9IHt9OyAoIit0KyIpKHNoYXJlZENodW5rKTsgKCIrZSsiKShzaGFyZWRDaHVuayk7IixvPXt9O3QobyksKHI9aShvKSkud29ya2VyVXJsPXdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKG5ldyBCbG9iKFthXSx7dHlwZToidGV4dC9qYXZhc2NyaXB0In0pKX1lbHNlIGU9aTtlbHNlIHQ9aX1yZXR1cm4gbigwLChmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQsZSl7cmV0dXJuIHQoZT17ZXhwb3J0czp7fX0sZS5leHBvcnRzKSxlLmV4cG9ydHN9dmFyIHI9bjtmdW5jdGlvbiBuKHQsZSxyLG4pe3RoaXMuY3g9Myp0LHRoaXMuYng9Myooci10KS10aGlzLmN4LHRoaXMuYXg9MS10aGlzLmN4LXRoaXMuYngsdGhpcy5jeT0zKmUsdGhpcy5ieT0zKihuLWUpLXRoaXMuY3ksdGhpcy5heT0xLXRoaXMuY3ktdGhpcy5ieSx0aGlzLnAxeD10LHRoaXMucDF5PW4sdGhpcy5wMng9cix0aGlzLnAyeT1ufW4ucHJvdG90eXBlLnNhbXBsZUN1cnZlWD1mdW5jdGlvbih0KXtyZXR1cm4oKHRoaXMuYXgqdCt0aGlzLmJ4KSp0K3RoaXMuY3gpKnR9LG4ucHJvdG90eXBlLnNhbXBsZUN1cnZlWT1mdW5jdGlvbih0KXtyZXR1cm4oKHRoaXMuYXkqdCt0aGlzLmJ5KSp0K3RoaXMuY3kpKnR9LG4ucHJvdG90eXBlLnNhbXBsZUN1cnZlRGVyaXZhdGl2ZVg9ZnVuY3Rpb24odCl7cmV0dXJuKDMqdGhpcy5heCp0KzIqdGhpcy5ieCkqdCt0aGlzLmN4fSxuLnByb3RvdHlwZS5zb2x2ZUN1cnZlWD1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhLG87Zm9yKHZvaWQgMD09PWUmJihlPTFlLTYpLGk9dCxvPTA7bzw4O28rKyl7aWYoYT10aGlzLnNhbXBsZUN1cnZlWChpKS10LE1hdGguYWJzKGEpPGUpcmV0dXJuIGk7dmFyIHM9dGhpcy5zYW1wbGVDdXJ2ZURlcml2YXRpdmVYKGkpO2lmKE1hdGguYWJzKHMpPDFlLTYpYnJlYWs7aS09YS9zfWlmKChpPXQpPChyPTApKXJldHVybiByO2lmKGk+KG49MSkpcmV0dXJuIG47Zm9yKDtyPG47KXtpZihhPXRoaXMuc2FtcGxlQ3VydmVYKGkpLE1hdGguYWJzKGEtdCk8ZSlyZXR1cm4gaTt0PmE/cj1pOm49aSxpPS41KihuLXIpK3J9cmV0dXJuIGl9LG4ucHJvdG90eXBlLnNvbHZlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc2FtcGxlQ3VydmVZKHRoaXMuc29sdmVDdXJ2ZVgodCxlKSl9O3ZhciBpPWE7ZnVuY3Rpb24gYSh0LGUpe3RoaXMueD10LHRoaXMueT1lfWZ1bmN0aW9uIG8odCxlLG4saSl7dmFyIGE9bmV3IHIodCxlLG4saSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBhLnNvbHZlKHQpfX1hLnByb3RvdHlwZT17Y2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGEodGhpcy54LHRoaXMueSl9LGFkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9hZGQodCl9LHN1YjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9zdWIodCl9LG11bHRCeVBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX211bHRCeVBvaW50KHQpfSxkaXZCeVBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX2RpdkJ5UG9pbnQodCl9LG11bHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fbXVsdCh0KX0sZGl2OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX2Rpdih0KX0scm90YXRlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNsb25lKCkuX3JvdGF0ZSh0KX0scm90YXRlQXJvdW5kOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fcm90YXRlQXJvdW5kKHQsZSl9LG1hdE11bHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY2xvbmUoKS5fbWF0TXVsdCh0KX0sdW5pdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuX3VuaXQoKX0scGVycDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmNsb25lKCkuX3BlcnAoKX0scm91bmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jbG9uZSgpLl9yb3VuZCgpfSxtYWc6ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5zcXJ0KHRoaXMueCp0aGlzLngrdGhpcy55KnRoaXMueSl9LGVxdWFsczpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54PT09dC54JiZ0aGlzLnk9PT10Lnl9LGRpc3Q6ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCh0aGlzLmRpc3RTcXIodCkpfSxkaXN0U3FyOmZ1bmN0aW9uKHQpe3ZhciBlPXQueC10aGlzLngscj10LnktdGhpcy55O3JldHVybiBlKmUrcipyfSxhbmdsZTpmdW5jdGlvbigpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueSx0aGlzLngpfSxhbmdsZVRvOmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueS10LnksdGhpcy54LXQueCl9LGFuZ2xlV2l0aDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5hbmdsZVdpdGhTZXAodC54LHQueSl9LGFuZ2xlV2l0aFNlcDpmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLmF0YW4yKHRoaXMueCplLXRoaXMueSp0LHRoaXMueCp0K3RoaXMueSplKX0sX21hdE11bHQ6ZnVuY3Rpb24odCl7dmFyIGU9dFswXSp0aGlzLngrdFsxXSp0aGlzLnkscj10WzJdKnRoaXMueCt0WzNdKnRoaXMueTtyZXR1cm4gdGhpcy54PWUsdGhpcy55PXIsdGhpc30sX2FkZDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54Kz10LngsdGhpcy55Kz10LnksdGhpc30sX3N1YjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54LT10LngsdGhpcy55LT10LnksdGhpc30sX211bHQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueCo9dCx0aGlzLnkqPXQsdGhpc30sX2RpdjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy54Lz10LHRoaXMueS89dCx0aGlzfSxfbXVsdEJ5UG9pbnQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMueCo9dC54LHRoaXMueSo9dC55LHRoaXN9LF9kaXZCeVBvaW50OmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLngvPXQueCx0aGlzLnkvPXQueSx0aGlzfSxfdW5pdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9kaXYodGhpcy5tYWcoKSksdGhpc30sX3BlcnA6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnk7cmV0dXJuIHRoaXMueT10aGlzLngsdGhpcy54PS10LHRoaXN9LF9yb3RhdGU6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5jb3ModCkscj1NYXRoLnNpbih0KSxuPWUqdGhpcy54LXIqdGhpcy55LGk9cip0aGlzLngrZSp0aGlzLnk7cmV0dXJuIHRoaXMueD1uLHRoaXMueT1pLHRoaXN9LF9yb3RhdGVBcm91bmQ6ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLmNvcyh0KSxuPU1hdGguc2luKHQpLGk9ZS54K3IqKHRoaXMueC1lLngpLW4qKHRoaXMueS1lLnkpLGE9ZS55K24qKHRoaXMueC1lLngpK3IqKHRoaXMueS1lLnkpO3JldHVybiB0aGlzLng9aSx0aGlzLnk9YSx0aGlzfSxfcm91bmQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy54PU1hdGgucm91bmQodGhpcy54KSx0aGlzLnk9TWF0aC5yb3VuZCh0aGlzLnkpLHRoaXN9fSxhLmNvbnZlcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBhP3Q6QXJyYXkuaXNBcnJheSh0KT9uZXcgYSh0WzBdLHRbMV0pOnR9O3ZhciBzPW8oLjI1LC4xLC4yNSwxKTtmdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4gTWF0aC5taW4ocixNYXRoLm1heChlLHQpKX1mdW5jdGlvbiBjKHQsZSxyKXt2YXIgbj1yLWUsaT0oKHQtZSklbituKSVuK2U7cmV0dXJuIGk9PT1lP3I6aX1mdW5jdGlvbiB1KHQpe2Zvcih2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTtyLS0gPjA7KWVbcl09YXJndW1lbnRzW3IrMV07Zm9yKHZhciBuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtmb3IodmFyIG8gaW4gYSl0W29dPWFbb119cmV0dXJuIHR9dmFyIGY9MTtmdW5jdGlvbiBoKCl7cmV0dXJuIGYrK31mdW5jdGlvbiBwKCl7cmV0dXJuIGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGU/KGVeMTYqTWF0aC5yYW5kb20oKT4+ZS80KS50b1N0cmluZygxNik6KFsxZTddKy1bMWUzXSstNGUzKy04ZTMrLTFlMTEpLnJlcGxhY2UoL1swMThdL2csdCl9KCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4hIXQmJi9eWzAtOWEtZl17OH0tWzAtOWEtZl17NH0tWzRdWzAtOWEtZl17M30tWzg5YWJdWzAtOWEtZl17M30tWzAtOWEtZl17MTJ9JC9pLnRlc3QodCl9ZnVuY3Rpb24gbSh0LGUpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZVt0XSYmKGVbdF09ZVt0XS5iaW5kKGUpKX0pKX1mdW5jdGlvbiBnKHQsZSl7cmV0dXJuLTEhPT10LmluZGV4T2YoZSx0Lmxlbmd0aC1lLmxlbmd0aCl9ZnVuY3Rpb24gdih0LGUscil7dmFyIG49e307Zm9yKHZhciBpIGluIHQpbltpXT1lLmNhbGwocnx8dGhpcyx0W2ldLGksdCk7cmV0dXJuIG59ZnVuY3Rpb24geSh0LGUscil7dmFyIG49e307Zm9yKHZhciBpIGluIHQpZS5jYWxsKHJ8fHRoaXMsdFtpXSxpLHQpJiYobltpXT10W2ldKTtyZXR1cm4gbn1mdW5jdGlvbiB4KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP3QubWFwKHgpOiJvYmplY3QiPT10eXBlb2YgdCYmdD92KHQseCk6dH12YXIgYj17fTtmdW5jdGlvbiBfKHQpe2JbdF18fCgidW5kZWZpbmVkIiE9dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUud2Fybih0KSxiW3RdPSEwKX1mdW5jdGlvbiB3KHQsZSxyKXtyZXR1cm4oci55LXQueSkqKGUueC10LngpPihlLnktdC55KSooci54LXQueCl9ZnVuY3Rpb24gVCh0KXtmb3IodmFyIGU9MCxyPTAsbj10Lmxlbmd0aCxpPW4tMSxhPXZvaWQgMCxvPXZvaWQgMDtyPG47aT1yKyspYT10W3JdLGUrPSgobz10W2ldKS54LWEueCkqKGEueStvLnkpO3JldHVybiBlfWZ1bmN0aW9uIGsoKXtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIFdvcmtlckdsb2JhbFNjb3BlJiYidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGYmJnNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZX1mdW5jdGlvbiBBKHQpe3ZhciBlPXt9O2lmKHQucmVwbGFjZSgvKD86XnwoPzpccypcLFxzKikpKFteXHgwMC1ceDIwXChcKTw+QFwsO1w6XFwiXC9cW1xdXD9cPVx7XH1ceDdGXSspKD86XD0oPzooW15ceDAwLVx4MjBcKFwpPD5AXCw7XDpcXCJcL1xbXF1cP1w9XHtcfVx4N0ZdKyl8KD86XCIoKD86W14iXFxdfFxcLikqKVwiKSkpPy9nLChmdW5jdGlvbih0LHIsbixpKXt2YXIgYT1ufHxpO3JldHVybiBlW3JdPSFhfHxhLnRvTG93ZXJDYXNlKCksIiJ9KSksZVsibWF4LWFnZSJdKXt2YXIgcj1wYXJzZUludChlWyJtYXgtYWdlIl0sMTApO2lzTmFOKHIpP2RlbGV0ZSBlWyJtYXgtYWdlIl06ZVsibWF4LWFnZSJdPXJ9cmV0dXJuIGV9dmFyIE09bnVsbDtmdW5jdGlvbiBTKHQpe2lmKG51bGw9PU0pe3ZhciBlPXQubmF2aWdhdG9yP3QubmF2aWdhdG9yLnVzZXJBZ2VudDpudWxsO009ISF0LnNhZmFyaXx8ISghZXx8ISgvXGIoaVBhZHxpUGhvbmV8aVBvZClcYi8udGVzdChlKXx8ZS5tYXRjaCgiU2FmYXJpIikmJiFlLm1hdGNoKCJDaHJvbWUiKSkpfXJldHVybiBNfWZ1bmN0aW9uIEUodCl7dHJ5e3ZhciBlPXNlbGZbdF07cmV0dXJuIGUuc2V0SXRlbSgiX21hcGJveF90ZXN0XyIsMSksZS5yZW1vdmVJdGVtKCJfbWFwYm94X3Rlc3RfIiksITB9Y2F0Y2godCl7cmV0dXJuITF9fXZhciBMLEMsUCxJLE89c2VsZi5wZXJmb3JtYW5jZSYmc2VsZi5wZXJmb3JtYW5jZS5ub3c/c2VsZi5wZXJmb3JtYW5jZS5ub3cuYmluZChzZWxmLnBlcmZvcm1hbmNlKTpEYXRlLm5vdy5iaW5kKERhdGUpLHo9c2VsZi5yZXF1ZXN0QW5pbWF0aW9uRnJhbWV8fHNlbGYubW96UmVxdWVzdEFuaW1hdGlvbkZyYW1lfHxzZWxmLndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZXx8c2VsZi5tc1JlcXVlc3RBbmltYXRpb25GcmFtZSxEPXNlbGYuY2FuY2VsQW5pbWF0aW9uRnJhbWV8fHNlbGYubW96Q2FuY2VsQW5pbWF0aW9uRnJhbWV8fHNlbGYud2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWV8fHNlbGYubXNDYW5jZWxBbmltYXRpb25GcmFtZSxSPXtub3c6TyxmcmFtZTpmdW5jdGlvbih0KXt2YXIgZT16KHQpO3JldHVybntjYW5jZWw6ZnVuY3Rpb24oKXtyZXR1cm4gRChlKX19fSxnZXRJbWFnZURhdGE6ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0wKTt2YXIgcj1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLG49ci5nZXRDb250ZXh0KCIyZCIpO2lmKCFuKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGNyZWF0ZSBjYW52YXMgMmQgY29udGV4dCIpO3JldHVybiByLndpZHRoPXQud2lkdGgsci5oZWlnaHQ9dC5oZWlnaHQsbi5kcmF3SW1hZ2UodCwwLDAsdC53aWR0aCx0LmhlaWdodCksbi5nZXRJbWFnZURhdGEoLWUsLWUsdC53aWR0aCsyKmUsdC5oZWlnaHQrMiplKX0scmVzb2x2ZVVSTDpmdW5jdGlvbih0KXtyZXR1cm4gTHx8KEw9c2VsZi5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLEwuaHJlZj10LEwuaHJlZn0saGFyZHdhcmVDb25jdXJyZW5jeTpzZWxmLm5hdmlnYXRvci5oYXJkd2FyZUNvbmN1cnJlbmN5fHw0LGdldCBkZXZpY2VQaXhlbFJhdGlvKCl7cmV0dXJuIHNlbGYuZGV2aWNlUGl4ZWxSYXRpb30sZ2V0IHByZWZlcnNSZWR1Y2VkTW90aW9uKCl7cmV0dXJuISFzZWxmLm1hdGNoTWVkaWEmJihudWxsPT1DJiYoQz1zZWxmLm1hdGNoTWVkaWEoIihwcmVmZXJzLXJlZHVjZWQtbW90aW9uOiByZWR1Y2UpIikpLEMubWF0Y2hlcyl9fSxGPXtBUElfVVJMOiJodHRwczovL2FwaS5tYXBib3guY29tIixnZXQgRVZFTlRTX1VSTCgpe3JldHVybiB0aGlzLkFQSV9VUkw/MD09PXRoaXMuQVBJX1VSTC5pbmRleE9mKCJodHRwczovL2FwaS5tYXBib3guY24iKT8iaHR0cHM6Ly9ldmVudHMubWFwYm94LmNuL2V2ZW50cy92MiI6MD09PXRoaXMuQVBJX1VSTC5pbmRleE9mKCJodHRwczovL2FwaS5tYXBib3guY29tIik/Imh0dHBzOi8vZXZlbnRzLm1hcGJveC5jb20vZXZlbnRzL3YyIjpudWxsOm51bGx9LEZFRURCQUNLX1VSTDoiaHR0cHM6Ly9hcHBzLm1hcGJveC5jb20vZmVlZGJhY2siLFJFUVVJUkVfQUNDRVNTX1RPS0VOOiEwLEFDQ0VTU19UT0tFTjpudWxsLE1BWF9QQVJBTExFTF9JTUFHRV9SRVFVRVNUUzoxNn0sQj17c3VwcG9ydGVkOiExLHRlc3RTdXBwb3J0OmZ1bmN0aW9uKHQpe2lmKE58fCFJKXJldHVybjtqP1UodCk6UD10fX0sTj0hMSxqPSExO2Z1bmN0aW9uIFUodCl7dmFyIGU9dC5jcmVhdGVUZXh0dXJlKCk7dC5iaW5kVGV4dHVyZSh0LlRFWFRVUkVfMkQsZSk7dHJ5e2lmKHQudGV4SW1hZ2UyRCh0LlRFWFRVUkVfMkQsMCx0LlJHQkEsdC5SR0JBLHQuVU5TSUdORURfQllURSxJKSx0LmlzQ29udGV4dExvc3QoKSlyZXR1cm47Qi5zdXBwb3J0ZWQ9ITB9Y2F0Y2godCl7fXQuZGVsZXRlVGV4dHVyZShlKSxOPSEwfXNlbGYuZG9jdW1lbnQmJigoST1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpKS5vbmxvYWQ9ZnVuY3Rpb24oKXtQJiZVKFApLFA9bnVsbCxqPSEwfSxJLm9uZXJyb3I9ZnVuY3Rpb24oKXtOPSEwLFA9bnVsbH0sSS5zcmM9ImRhdGE6aW1hZ2Uvd2VicDtiYXNlNjQsVWtsR1JoNEFBQUJYUlVKUVZsQTRUQkVBQUFBdkFRQUFBQWZRLy83M3YvK0JpT2gvQUFBPSIpO3ZhciBWPSIwMSI7dmFyIEg9ZnVuY3Rpb24odCxlKXt0aGlzLl90cmFuc2Zvcm1SZXF1ZXN0Rm49dCx0aGlzLl9jdXN0b21BY2Nlc3NUb2tlbj1lLHRoaXMuX2NyZWF0ZVNrdVRva2VuKCl9O2Z1bmN0aW9uIHEodCl7cmV0dXJuIDA9PT10LmluZGV4T2YoIm1hcGJveDoiKX1ILnByb3RvdHlwZS5fY3JlYXRlU2t1VG9rZW49ZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe2Zvcih2YXIgdD0iIixlPTA7ZTwxMDtlKyspdCs9IjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaIltNYXRoLmZsb29yKDYyKk1hdGgucmFuZG9tKCkpXTtyZXR1cm57dG9rZW46WyIxIixWLHRdLmpvaW4oIiIpLHRva2VuRXhwaXJlc0F0OkRhdGUubm93KCkrNDMyZTV9fSgpO3RoaXMuX3NrdVRva2VuPXQudG9rZW4sdGhpcy5fc2t1VG9rZW5FeHBpcmVzQXQ9dC50b2tlbkV4cGlyZXNBdH0sSC5wcm90b3R5cGUuX2lzU2t1VG9rZW5FeHBpcmVkPWZ1bmN0aW9uKCl7cmV0dXJuIERhdGUubm93KCk+dGhpcy5fc2t1VG9rZW5FeHBpcmVzQXR9LEgucHJvdG90eXBlLnRyYW5zZm9ybVJlcXVlc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdHJhbnNmb3JtUmVxdWVzdEZuJiZ0aGlzLl90cmFuc2Zvcm1SZXF1ZXN0Rm4odCxlKXx8e3VybDp0fX0sSC5wcm90b3R5cGUubm9ybWFsaXplU3R5bGVVUkw9ZnVuY3Rpb24odCxlKXtpZighcSh0KSlyZXR1cm4gdDt2YXIgcj1YKHQpO3JldHVybiByLnBhdGg9Ii9zdHlsZXMvdjEiK3IucGF0aCx0aGlzLl9tYWtlQVBJVVJMKHIsdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fGUpfSxILnByb3RvdHlwZS5ub3JtYWxpemVHbHlwaHNVUkw9ZnVuY3Rpb24odCxlKXtpZighcSh0KSlyZXR1cm4gdDt2YXIgcj1YKHQpO3JldHVybiByLnBhdGg9Ii9mb250cy92MSIrci5wYXRoLHRoaXMuX21ha2VBUElVUkwocix0aGlzLl9jdXN0b21BY2Nlc3NUb2tlbnx8ZSl9LEgucHJvdG90eXBlLm5vcm1hbGl6ZVNvdXJjZVVSTD1mdW5jdGlvbih0LGUpe2lmKCFxKHQpKXJldHVybiB0O3ZhciByPVgodCk7cmV0dXJuIHIucGF0aD0iL3Y0LyIrci5hdXRob3JpdHkrIi5qc29uIixyLnBhcmFtcy5wdXNoKCJzZWN1cmUiKSx0aGlzLl9tYWtlQVBJVVJMKHIsdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fGUpfSxILnByb3RvdHlwZS5ub3JtYWxpemVTcHJpdGVVUkw9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9WCh0KTtyZXR1cm4gcSh0KT8oaS5wYXRoPSIvc3R5bGVzL3YxIitpLnBhdGgrIi9zcHJpdGUiK2Urcix0aGlzLl9tYWtlQVBJVVJMKGksdGhpcy5fY3VzdG9tQWNjZXNzVG9rZW58fG4pKTooaS5wYXRoKz0iIitlK3IsWihpKSl9LEgucHJvdG90eXBlLm5vcm1hbGl6ZVRpbGVVUkw9ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9pc1NrdVRva2VuRXhwaXJlZCgpJiZ0aGlzLl9jcmVhdGVTa3VUb2tlbigpLHQmJiFxKHQpKXJldHVybiB0O3ZhciByPVgodCksbj1SLmRldmljZVBpeGVsUmF0aW8+PTJ8fDUxMj09PWU/IkAyeCI6IiIsaT1CLnN1cHBvcnRlZD8iLndlYnAiOiIkMSI7ci5wYXRoPXIucGF0aC5yZXBsYWNlKC8oXC4ocG5nfGpwZylcZCopKD89JCkvLCIiK24raSksci5wYXRoPXIucGF0aC5yZXBsYWNlKC9eLitcL3Y0XC8vLCIvIiksci5wYXRoPSIvdjQiK3IucGF0aDt2YXIgYT10aGlzLl9jdXN0b21BY2Nlc3NUb2tlbnx8ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10O2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXS5tYXRjaCgvXmFjY2Vzc190b2tlbj0oLiopJC8pO2lmKG4pcmV0dXJuIG5bMV19cmV0dXJuIG51bGx9KHIucGFyYW1zKXx8Ri5BQ0NFU1NfVE9LRU47cmV0dXJuIEYuUkVRVUlSRV9BQ0NFU1NfVE9LRU4mJmEmJnRoaXMuX3NrdVRva2VuJiZyLnBhcmFtcy5wdXNoKCJza3U9Iit0aGlzLl9za3VUb2tlbiksdGhpcy5fbWFrZUFQSVVSTChyLGEpfSxILnByb3RvdHlwZS5jYW5vbmljYWxpemVUaWxlVVJMPWZ1bmN0aW9uKHQsZSl7dmFyIHI9WCh0KTtpZighci5wYXRoLm1hdGNoKC8oXlwvdjRcLykvKXx8IXIucGF0aC5tYXRjaCgvXC5bXHddKyQvKSlyZXR1cm4gdDt2YXIgbj0ibWFwYm94Oi8vdGlsZXMvIjtuKz1yLnBhdGgucmVwbGFjZSgiL3Y0LyIsIiIpO3ZhciBpPXIucGFyYW1zO3JldHVybiBlJiYoaT1pLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIXQubWF0Y2goL15hY2Nlc3NfdG9rZW49Lyl9KSkpLGkubGVuZ3RoJiYobis9Ij8iK2kuam9pbigiJiIpKSxufSxILnByb3RvdHlwZS5jYW5vbmljYWxpemVUaWxlc2V0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPSEhZSYmcShlKSxuPVtdLGk9MCxhPXQudGlsZXN8fFtdO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTtZKG8pP24ucHVzaCh0aGlzLmNhbm9uaWNhbGl6ZVRpbGVVUkwobyxyKSk6bi5wdXNoKG8pfXJldHVybiBufSxILnByb3RvdHlwZS5fbWFrZUFQSVVSTD1mdW5jdGlvbih0LGUpe3ZhciByPSJTZWUgaHR0cHM6Ly93d3cubWFwYm94LmNvbS9hcGktZG9jdW1lbnRhdGlvbi8jYWNjZXNzLXRva2Vucy1hbmQtdG9rZW4tc2NvcGVzIixuPVgoRi5BUElfVVJMKTtpZih0LnByb3RvY29sPW4ucHJvdG9jb2wsdC5hdXRob3JpdHk9bi5hdXRob3JpdHksIi8iIT09bi5wYXRoJiYodC5wYXRoPSIiK24ucGF0aCt0LnBhdGgpLCFGLlJFUVVJUkVfQUNDRVNTX1RPS0VOKXJldHVybiBaKHQpO2lmKCEoZT1lfHxGLkFDQ0VTU19UT0tFTikpdGhyb3cgbmV3IEVycm9yKCJBbiBBUEkgYWNjZXNzIHRva2VuIGlzIHJlcXVpcmVkIHRvIHVzZSBNYXBib3ggR0wuICIrcik7aWYoInMiPT09ZVswXSl0aHJvdyBuZXcgRXJyb3IoIlVzZSBhIHB1YmxpYyBhY2Nlc3MgdG9rZW4gKHBrLiopIHdpdGggTWFwYm94IEdMLCBub3QgYSBzZWNyZXQgYWNjZXNzIHRva2VuIChzay4qKS4gIityKTtyZXR1cm4gdC5wYXJhbXM9dC5wYXJhbXMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4tMT09PXQuaW5kZXhPZigiYWNjZXNzX3Rva2VuIil9KSksdC5wYXJhbXMucHVzaCgiYWNjZXNzX3Rva2VuPSIrZSksWih0KX07dmFyIEc9L14oKGh0dHBzPzopP1wvXC8pPyhbXlwvXStcLik/bWFwYm94XC5jKG58b20pKFwvfFw/fCQpL2k7ZnVuY3Rpb24gWSh0KXtyZXR1cm4gRy50ZXN0KHQpfXZhciBXPS9eKFx3Kyk6XC9cLyhbXi8/XSopKFwvW14/XSspP1w/PyguKyk/LztmdW5jdGlvbiBYKHQpe3ZhciBlPXQubWF0Y2goVyk7aWYoIWUpdGhyb3cgbmV3IEVycm9yKCJVbmFibGUgdG8gcGFyc2UgVVJMIG9iamVjdCIpO3JldHVybntwcm90b2NvbDplWzFdLGF1dGhvcml0eTplWzJdLHBhdGg6ZVszXXx8Ii8iLHBhcmFtczplWzRdP2VbNF0uc3BsaXQoIiYiKTpbXX19ZnVuY3Rpb24gWih0KXt2YXIgZT10LnBhcmFtcy5sZW5ndGg/Ij8iK3QucGFyYW1zLmpvaW4oIiYiKToiIjtyZXR1cm4gdC5wcm90b2NvbCsiOi8vIit0LmF1dGhvcml0eSt0LnBhdGgrZX1mdW5jdGlvbiBKKHQpe2lmKCF0KXJldHVybiBudWxsO3ZhciBlLHI9dC5zcGxpdCgiLiIpO2lmKCFyfHwzIT09ci5sZW5ndGgpcmV0dXJuIG51bGw7dHJ5e3JldHVybiBKU09OLnBhcnNlKChlPXJbMV0sZGVjb2RlVVJJQ29tcG9uZW50KHNlbGYuYXRvYihlKS5zcGxpdCgiIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4iJSIrKCIwMCIrdC5jaGFyQ29kZUF0KDApLnRvU3RyaW5nKDE2KSkuc2xpY2UoLTIpfSkpLmpvaW4oIiIpKSkpfWNhdGNoKHQpe3JldHVybiBudWxsfX12YXIgSz1mdW5jdGlvbih0KXt0aGlzLnR5cGU9dCx0aGlzLmFub25JZD1udWxsLHRoaXMuZXZlbnREYXRhPXt9LHRoaXMucXVldWU9W10sdGhpcy5wZW5kaW5nUmVxdWVzdD1udWxsfTtLLnByb3RvdHlwZS5nZXRTdG9yYWdlS2V5PWZ1bmN0aW9uKHQpe3ZhciBlLHI9SihGLkFDQ0VTU19UT0tFTiksbj0iIjtyZXR1cm4gciYmci51PyhlPXIudSxuPXNlbGYuYnRvYShlbmNvZGVVUklDb21wb25lbnQoZSkucmVwbGFjZSgvJShbMC05QS1GXXsyfSkvZywoZnVuY3Rpb24odCxlKXtyZXR1cm4gU3RyaW5nLmZyb21DaGFyQ29kZShOdW1iZXIoIjB4IitlKSl9KSkpKTpuPUYuQUNDRVNTX1RPS0VOfHwiIix0PyJtYXBib3guZXZlbnREYXRhLiIrdCsiOiIrbjoibWFwYm94LmV2ZW50RGF0YToiK259LEsucHJvdG90eXBlLmZldGNoRXZlbnREYXRhPWZ1bmN0aW9uKCl7dmFyIHQ9RSgibG9jYWxTdG9yYWdlIiksZT10aGlzLmdldFN0b3JhZ2VLZXkoKSxyPXRoaXMuZ2V0U3RvcmFnZUtleSgidXVpZCIpO2lmKHQpdHJ5e3ZhciBuPXNlbGYubG9jYWxTdG9yYWdlLmdldEl0ZW0oZSk7biYmKHRoaXMuZXZlbnREYXRhPUpTT04ucGFyc2UobikpO3ZhciBpPXNlbGYubG9jYWxTdG9yYWdlLmdldEl0ZW0ocik7aSYmKHRoaXMuYW5vbklkPWkpfWNhdGNoKHQpe18oIlVuYWJsZSB0byByZWFkIGZyb20gTG9jYWxTdG9yYWdlIil9fSxLLnByb3RvdHlwZS5zYXZlRXZlbnREYXRhPWZ1bmN0aW9uKCl7dmFyIHQ9RSgibG9jYWxTdG9yYWdlIiksZT10aGlzLmdldFN0b3JhZ2VLZXkoKSxyPXRoaXMuZ2V0U3RvcmFnZUtleSgidXVpZCIpO2lmKHQpdHJ5e3NlbGYubG9jYWxTdG9yYWdlLnNldEl0ZW0ocix0aGlzLmFub25JZCksT2JqZWN0LmtleXModGhpcy5ldmVudERhdGEpLmxlbmd0aD49MSYmc2VsZi5sb2NhbFN0b3JhZ2Uuc2V0SXRlbShlLEpTT04uc3RyaW5naWZ5KHRoaXMuZXZlbnREYXRhKSl9Y2F0Y2godCl7XygiVW5hYmxlIHRvIHdyaXRlIHRvIExvY2FsU3RvcmFnZSIpfX0sSy5wcm90b3R5cGUucHJvY2Vzc1JlcXVlc3RzPWZ1bmN0aW9uKHQpe30sSy5wcm90b3R5cGUucG9zdEV2ZW50PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRoaXM7aWYoRi5FVkVOVFNfVVJMKXt2YXIgYT1YKEYuRVZFTlRTX1VSTCk7YS5wYXJhbXMucHVzaCgiYWNjZXNzX3Rva2VuPSIrKG58fEYuQUNDRVNTX1RPS0VOfHwiIikpO3ZhciBvPXtldmVudDp0aGlzLnR5cGUsY3JlYXRlZDpuZXcgRGF0ZSh0KS50b0lTT1N0cmluZygpLHNka0lkZW50aWZpZXI6Im1hcGJveC1nbC1qcyIsc2RrVmVyc2lvbjoiMS4xMC4xIixza3VJZDpWLHVzZXJJZDp0aGlzLmFub25JZH0scz1lP3UobyxlKTpvLGw9e3VybDpaKGEpLGhlYWRlcnM6eyJDb250ZW50LVR5cGUiOiJ0ZXh0L3BsYWluIn0sYm9keTpKU09OLnN0cmluZ2lmeShbc10pfTt0aGlzLnBlbmRpbmdSZXF1ZXN0PWJ0KGwsKGZ1bmN0aW9uKHQpe2kucGVuZGluZ1JlcXVlc3Q9bnVsbCxyKHQpLGkuc2F2ZUV2ZW50RGF0YSgpLGkucHJvY2Vzc1JlcXVlc3RzKG4pfSkpfX0sSy5wcm90b3R5cGUucXVldWVSZXF1ZXN0PWZ1bmN0aW9uKHQsZSl7dGhpcy5xdWV1ZS5wdXNoKHQpLHRoaXMucHJvY2Vzc1JlcXVlc3RzKGUpfTt2YXIgUSwkLHR0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmNhbGwodGhpcywibWFwLmxvYWQiKSx0aGlzLnN1Y2Nlc3M9e30sdGhpcy5za3VUb2tlbj0iIn1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucG9zdE1hcExvYWRFdmVudD1mdW5jdGlvbih0LGUscixuKXt0aGlzLnNrdVRva2VuPXIsKEYuRVZFTlRTX1VSTCYmbnx8Ri5BQ0NFU1NfVE9LRU4mJkFycmF5LmlzQXJyYXkodCkmJnQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHEodCl8fFkodCl9KSkpJiZ0aGlzLnF1ZXVlUmVxdWVzdCh7aWQ6ZSx0aW1lc3RhbXA6RGF0ZS5ub3coKX0sbil9LGUucHJvdG90eXBlLnByb2Nlc3NSZXF1ZXN0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLnBlbmRpbmdSZXF1ZXN0JiYwIT09dGhpcy5xdWV1ZS5sZW5ndGgpe3ZhciByPXRoaXMucXVldWUuc2hpZnQoKSxuPXIuaWQsaT1yLnRpbWVzdGFtcDtuJiZ0aGlzLnN1Y2Nlc3Nbbl18fCh0aGlzLmFub25JZHx8dGhpcy5mZXRjaEV2ZW50RGF0YSgpLGQodGhpcy5hbm9uSWQpfHwodGhpcy5hbm9uSWQ9cCgpKSx0aGlzLnBvc3RFdmVudChpLHtza3VUb2tlbjp0aGlzLnNrdVRva2VufSwoZnVuY3Rpb24odCl7dHx8biYmKGUuc3VjY2Vzc1tuXT0hMCl9KSx0KSl9fSxlfShLKSxldD1uZXcoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcywiYXBwVXNlclR1cm5zdGlsZSIpLHRoaXMuX2N1c3RvbUFjY2Vzc1Rva2VuPWV9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnBvc3RUdXJuc3RpbGVFdmVudD1mdW5jdGlvbih0LGUpe0YuRVZFTlRTX1VSTCYmRi5BQ0NFU1NfVE9LRU4mJkFycmF5LmlzQXJyYXkodCkmJnQuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHEodCl8fFkodCl9KSkmJnRoaXMucXVldWVSZXF1ZXN0KERhdGUubm93KCksZSl9LGUucHJvdG90eXBlLnByb2Nlc3NSZXF1ZXN0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKCF0aGlzLnBlbmRpbmdSZXF1ZXN0JiYwIT09dGhpcy5xdWV1ZS5sZW5ndGgpe3RoaXMuYW5vbklkJiZ0aGlzLmV2ZW50RGF0YS5sYXN0U3VjY2VzcyYmdGhpcy5ldmVudERhdGEudG9rZW5VfHx0aGlzLmZldGNoRXZlbnREYXRhKCk7dmFyIHI9SihGLkFDQ0VTU19UT0tFTiksbj1yP3IudTpGLkFDQ0VTU19UT0tFTixpPW4hPT10aGlzLmV2ZW50RGF0YS50b2tlblU7ZCh0aGlzLmFub25JZCl8fCh0aGlzLmFub25JZD1wKCksaT0hMCk7dmFyIGE9dGhpcy5xdWV1ZS5zaGlmdCgpO2lmKHRoaXMuZXZlbnREYXRhLmxhc3RTdWNjZXNzKXt2YXIgbz1uZXcgRGF0ZSh0aGlzLmV2ZW50RGF0YS5sYXN0U3VjY2Vzcykscz1uZXcgRGF0ZShhKSxsPShhLXRoaXMuZXZlbnREYXRhLmxhc3RTdWNjZXNzKS84NjRlNTtpPWl8fGw+PTF8fGw8LTF8fG8uZ2V0RGF0ZSgpIT09cy5nZXREYXRlKCl9ZWxzZSBpPSEwO2lmKCFpKXJldHVybiB0aGlzLnByb2Nlc3NSZXF1ZXN0cygpO3RoaXMucG9zdEV2ZW50KGEseyJlbmFibGVkLnRlbGVtZXRyeSI6ITF9LChmdW5jdGlvbih0KXt0fHwoZS5ldmVudERhdGEubGFzdFN1Y2Nlc3M9YSxlLmV2ZW50RGF0YS50b2tlblU9bil9KSx0KX19LGV9KEspKSxydD1ldC5wb3N0VHVybnN0aWxlRXZlbnQuYmluZChldCksbnQ9bmV3IHR0LGl0PW50LnBvc3RNYXBMb2FkRXZlbnQuYmluZChudCksYXQ9NTAwLG90PTUwO2Z1bmN0aW9uIHN0KCl7c2VsZi5jYWNoZXMmJiFRJiYoUT1zZWxmLmNhY2hlcy5vcGVuKCJtYXBib3gtdGlsZXMiKSl9ZnVuY3Rpb24gbHQodCxlLHIpe2lmKHN0KCksUSl7dmFyIG49e3N0YXR1czplLnN0YXR1cyxzdGF0dXNUZXh0OmUuc3RhdHVzVGV4dCxoZWFkZXJzOm5ldyBzZWxmLkhlYWRlcnN9O2UuaGVhZGVycy5mb3JFYWNoKChmdW5jdGlvbih0LGUpe3JldHVybiBuLmhlYWRlcnMuc2V0KGUsdCl9KSk7dmFyIGk9QShlLmhlYWRlcnMuZ2V0KCJDYWNoZS1Db250cm9sIil8fCIiKTtpZighaVsibm8tc3RvcmUiXSlpWyJtYXgtYWdlIl0mJm4uaGVhZGVycy5zZXQoIkV4cGlyZXMiLG5ldyBEYXRlKHIrMWUzKmlbIm1heC1hZ2UiXSkudG9VVENTdHJpbmcoKSksbmV3IERhdGUobi5oZWFkZXJzLmdldCgiRXhwaXJlcyIpKS5nZXRUaW1lKCktcjw0MmU0fHxmdW5jdGlvbih0LGUpe2lmKHZvaWQgMD09PSQpdHJ5e25ldyBSZXNwb25zZShuZXcgUmVhZGFibGVTdHJlYW0pLCQ9ITB9Y2F0Y2godCl7JD0hMX0kP2UodC5ib2R5KTp0LmJsb2IoKS50aGVuKGUpfShlLChmdW5jdGlvbihlKXt2YXIgcj1uZXcgc2VsZi5SZXNwb25zZShlLG4pO3N0KCksUSYmUS50aGVuKChmdW5jdGlvbihlKXtyZXR1cm4gZS5wdXQoY3QodC51cmwpLHIpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gXyh0Lm1lc3NhZ2UpfSkpfSkpfX1mdW5jdGlvbiBjdCh0KXt2YXIgZT10LmluZGV4T2YoIj8iKTtyZXR1cm4gZTwwP3Q6dC5zbGljZSgwLGUpfWZ1bmN0aW9uIHV0KHQsZSl7aWYoc3QoKSwhUSlyZXR1cm4gZShudWxsKTt2YXIgcj1jdCh0LnVybCk7US50aGVuKChmdW5jdGlvbih0KXt0Lm1hdGNoKHIpLnRoZW4oKGZ1bmN0aW9uKG4pe3ZhciBpPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiExO3ZhciBlPW5ldyBEYXRlKHQuaGVhZGVycy5nZXQoIkV4cGlyZXMiKXx8MCkscj1BKHQuaGVhZGVycy5nZXQoIkNhY2hlLUNvbnRyb2wiKXx8IiIpO3JldHVybiBlPkRhdGUubm93KCkmJiFyWyJuby1jYWNoZSJdfShuKTt0LmRlbGV0ZShyKSxpJiZ0LnB1dChyLG4uY2xvbmUoKSksZShudWxsLG4saSl9KSkuY2F0Y2goZSl9KSkuY2F0Y2goZSl9dmFyIGZ0LGh0PTEvMDtmdW5jdGlvbiBwdCgpe3JldHVybiBudWxsPT1mdCYmKGZ0PXNlbGYuT2Zmc2NyZWVuQ2FudmFzJiZuZXcgc2VsZi5PZmZzY3JlZW5DYW52YXMoMSwxKS5nZXRDb250ZXh0KCIyZCIpJiYiZnVuY3Rpb24iPT10eXBlb2Ygc2VsZi5jcmVhdGVJbWFnZUJpdG1hcCksZnR9dmFyIGR0PXtVbmtub3duOiJVbmtub3duIixTdHlsZToiU3R5bGUiLFNvdXJjZToiU291cmNlIixUaWxlOiJUaWxlIixHbHlwaHM6IkdseXBocyIsU3ByaXRlSW1hZ2U6IlNwcml0ZUltYWdlIixTcHJpdGVKU09OOiJTcHJpdGVKU09OIixJbWFnZToiSW1hZ2UifTsiZnVuY3Rpb24iPT10eXBlb2YgT2JqZWN0LmZyZWV6ZSYmT2JqZWN0LmZyZWV6ZShkdCk7dmFyIG10PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyLG4pezQwMT09PXImJlkobikmJihlKz0iOiB5b3UgbWF5IGhhdmUgcHJvdmlkZWQgYW4gaW52YWxpZCBNYXBib3ggYWNjZXNzIHRva2VuLiBTZWUgaHR0cHM6Ly93d3cubWFwYm94LmNvbS9hcGktZG9jdW1lbnRhdGlvbi8jYWNjZXNzLXRva2Vucy1hbmQtdG9rZW4tc2NvcGVzIiksdC5jYWxsKHRoaXMsZSksdGhpcy5zdGF0dXM9cix0aGlzLnVybD1uLHRoaXMubmFtZT10aGlzLmNvbnN0cnVjdG9yLm5hbWUsdGhpcy5tZXNzYWdlPWV9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubmFtZSsiOiAiK3RoaXMubWVzc2FnZSsiICgiK3RoaXMuc3RhdHVzKyIpOiAiK3RoaXMudXJsfSxlfShFcnJvciksZ3Q9aygpP2Z1bmN0aW9uKCl7cmV0dXJuIHNlbGYud29ya2VyJiZzZWxmLndvcmtlci5yZWZlcnJlcn06ZnVuY3Rpb24oKXtyZXR1cm4oImJsb2I6Ij09PXNlbGYubG9jYXRpb24ucHJvdG9jb2w/c2VsZi5wYXJlbnQ6c2VsZikubG9jYXRpb24uaHJlZn07ZnVuY3Rpb24gdnQodCxlKXt2YXIgcixuPW5ldyBzZWxmLkFib3J0Q29udHJvbGxlcixpPW5ldyBzZWxmLlJlcXVlc3QodC51cmwse21ldGhvZDp0Lm1ldGhvZHx8IkdFVCIsYm9keTp0LmJvZHksY3JlZGVudGlhbHM6dC5jcmVkZW50aWFscyxoZWFkZXJzOnQuaGVhZGVycyxyZWZlcnJlcjpndCgpLHNpZ25hbDpuLnNpZ25hbH0pLGE9ITEsbz0hMSxzPShyPWkudXJsKS5pbmRleE9mKCJza3U9Iik+MCYmWShyKTsianNvbiI9PT10LnR5cGUmJmkuaGVhZGVycy5zZXQoIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24iKTt2YXIgbD1mdW5jdGlvbihyLG4sYSl7aWYoIW8pe2lmKHImJiJTZWN1cml0eUVycm9yIiE9PXIubWVzc2FnZSYmXyhyKSxuJiZhKXJldHVybiBjKG4pO3ZhciBsPURhdGUubm93KCk7c2VsZi5mZXRjaChpKS50aGVuKChmdW5jdGlvbihyKXtpZihyLm9rKXt2YXIgbj1zP3IuY2xvbmUoKTpudWxsO3JldHVybiBjKHIsbixsKX1yZXR1cm4gZShuZXcgbXQoci5zdGF0dXNUZXh0LHIuc3RhdHVzLHQudXJsKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpezIwIT09dC5jb2RlJiZlKG5ldyBFcnJvcih0Lm1lc3NhZ2UpKX0pKX19LGM9ZnVuY3Rpb24ocixuLHMpeygiYXJyYXlCdWZmZXIiPT09dC50eXBlP3IuYXJyYXlCdWZmZXIoKToianNvbiI9PT10LnR5cGU/ci5qc29uKCk6ci50ZXh0KCkpLnRoZW4oKGZ1bmN0aW9uKHQpe298fChuJiZzJiZsdChpLG4scyksYT0hMCxlKG51bGwsdCxyLmhlYWRlcnMuZ2V0KCJDYWNoZS1Db250cm9sIiksci5oZWFkZXJzLmdldCgiRXhwaXJlcyIpKSl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe298fGUobmV3IEVycm9yKHQubWVzc2FnZSkpfSkpfTtyZXR1cm4gcz91dChpLGwpOmwobnVsbCxudWxsKSx7Y2FuY2VsOmZ1bmN0aW9uKCl7bz0hMCxhfHxuLmFib3J0KCl9fX12YXIgeXQ9ZnVuY3Rpb24odCxlKXtpZihyPXQudXJsLCEoL15maWxlOi8udGVzdChyKXx8L15maWxlOi8udGVzdChndCgpKSYmIS9eXHcrOi8udGVzdChyKSkpe2lmKHNlbGYuZmV0Y2gmJnNlbGYuUmVxdWVzdCYmc2VsZi5BYm9ydENvbnRyb2xsZXImJnNlbGYuUmVxdWVzdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkoInNpZ25hbCIpKXJldHVybiB2dCh0LGUpO2lmKGsoKSYmc2VsZi53b3JrZXImJnNlbGYud29ya2VyLmFjdG9yKXtyZXR1cm4gc2VsZi53b3JrZXIuYWN0b3Iuc2VuZCgiZ2V0UmVzb3VyY2UiLHQsZSx2b2lkIDAsITApfX12YXIgcjtyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgc2VsZi5YTUxIdHRwUmVxdWVzdDtmb3IodmFyIG4gaW4gci5vcGVuKHQubWV0aG9kfHwiR0VUIix0LnVybCwhMCksImFycmF5QnVmZmVyIj09PXQudHlwZSYmKHIucmVzcG9uc2VUeXBlPSJhcnJheWJ1ZmZlciIpLHQuaGVhZGVycylyLnNldFJlcXVlc3RIZWFkZXIobix0LmhlYWRlcnNbbl0pO3JldHVybiJqc29uIj09PXQudHlwZSYmKHIucmVzcG9uc2VUeXBlPSJ0ZXh0IixyLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdCIsImFwcGxpY2F0aW9uL2pzb24iKSksci53aXRoQ3JlZGVudGlhbHM9ImluY2x1ZGUiPT09dC5jcmVkZW50aWFscyxyLm9uZXJyb3I9ZnVuY3Rpb24oKXtlKG5ldyBFcnJvcihyLnN0YXR1c1RleHQpKX0sci5vbmxvYWQ9ZnVuY3Rpb24oKXtpZigoci5zdGF0dXM+PTIwMCYmci5zdGF0dXM8MzAwfHwwPT09ci5zdGF0dXMpJiZudWxsIT09ci5yZXNwb25zZSl7dmFyIG49ci5yZXNwb25zZTtpZigianNvbiI9PT10LnR5cGUpdHJ5e249SlNPTi5wYXJzZShyLnJlc3BvbnNlKX1jYXRjaCh0KXtyZXR1cm4gZSh0KX1lKG51bGwsbixyLmdldFJlc3BvbnNlSGVhZGVyKCJDYWNoZS1Db250cm9sIiksci5nZXRSZXNwb25zZUhlYWRlcigiRXhwaXJlcyIpKX1lbHNlIGUobmV3IG10KHIuc3RhdHVzVGV4dCxyLnN0YXR1cyx0LnVybCkpfSxyLnNlbmQodC5ib2R5KSx7Y2FuY2VsOmZ1bmN0aW9uKCl7cmV0dXJuIHIuYWJvcnQoKX19fSh0LGUpfSx4dD1mdW5jdGlvbih0LGUpe3JldHVybiB5dCh1KHQse3R5cGU6ImFycmF5QnVmZmVyIn0pLGUpfSxidD1mdW5jdGlvbih0LGUpe3JldHVybiB5dCh1KHQse21ldGhvZDoiUE9TVCJ9KSxlKX07dmFyIF90LHd0O190PVtdLHd0PTA7dmFyIFR0PWZ1bmN0aW9uKHQsZSl7aWYoQi5zdXBwb3J0ZWQmJih0LmhlYWRlcnN8fCh0LmhlYWRlcnM9e30pLHQuaGVhZGVycy5hY2NlcHQ9ImltYWdlL3dlYnAsKi8qIiksd3Q+PUYuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTKXt2YXIgcj17cmVxdWVzdFBhcmFtZXRlcnM6dCxjYWxsYmFjazplLGNhbmNlbGxlZDohMSxjYW5jZWw6ZnVuY3Rpb24oKXt0aGlzLmNhbmNlbGxlZD0hMH19O3JldHVybiBfdC5wdXNoKHIpLHJ9d3QrKzt2YXIgbj0hMSxpPWZ1bmN0aW9uKCl7aWYoIW4pZm9yKG49ITAsd3QtLTtfdC5sZW5ndGgmJnd0PEYuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTOyl7dmFyIHQ9X3Quc2hpZnQoKSxlPXQucmVxdWVzdFBhcmFtZXRlcnMscj10LmNhbGxiYWNrO3QuY2FuY2VsbGVkfHwodC5jYW5jZWw9VHQoZSxyKS5jYW5jZWwpfX0sYT14dCh0LChmdW5jdGlvbih0LHIsbixhKXtpKCksdD9lKHQpOnImJihwdCgpP2Z1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHNlbGYuQmxvYihbbmV3IFVpbnQ4QXJyYXkodCldLHt0eXBlOiJpbWFnZS9wbmcifSk7c2VsZi5jcmVhdGVJbWFnZUJpdG1hcChyKS50aGVuKChmdW5jdGlvbih0KXtlKG51bGwsdCl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe2UobmV3IEVycm9yKCJDb3VsZCBub3QgbG9hZCBpbWFnZSBiZWNhdXNlIG9mICIrdC5tZXNzYWdlKyIuIFBsZWFzZSBtYWtlIHN1cmUgdG8gdXNlIGEgc3VwcG9ydGVkIGltYWdlIHR5cGUgc3VjaCBhcyBQTkcgb3IgSlBFRy4gTm90ZSB0aGF0IFNWR3MgYXJlIG5vdCBzdXBwb3J0ZWQuIikpfSkpfShyLGUpOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW5ldyBzZWxmLkltYWdlLGE9c2VsZi5VUkw7aS5vbmxvYWQ9ZnVuY3Rpb24oKXtlKG51bGwsaSksYS5yZXZva2VPYmplY3RVUkwoaS5zcmMpfSxpLm9uZXJyb3I9ZnVuY3Rpb24oKXtyZXR1cm4gZShuZXcgRXJyb3IoIkNvdWxkIG5vdCBsb2FkIGltYWdlLiBQbGVhc2UgbWFrZSBzdXJlIHRvIHVzZSBhIHN1cHBvcnRlZCBpbWFnZSB0eXBlIHN1Y2ggYXMgUE5HIG9yIEpQRUcuIE5vdGUgdGhhdCBTVkdzIGFyZSBub3Qgc3VwcG9ydGVkLiIpKX07dmFyIG89bmV3IHNlbGYuQmxvYihbbmV3IFVpbnQ4QXJyYXkodCldLHt0eXBlOiJpbWFnZS9wbmcifSk7aS5jYWNoZUNvbnRyb2w9cixpLmV4cGlyZXM9bixpLnNyYz10LmJ5dGVMZW5ndGg/YS5jcmVhdGVPYmplY3RVUkwobyk6ImRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQUVBQUFBQkNBWUFBQUFmRmNTSkFBQUFDMGxFUVZRWVYyTmdBQUlBQUFVQUFhclZ5RkVBQUFBQVNVVk9SSzVDWUlJPSJ9KHIsZSxuLGEpKX0pKTtyZXR1cm57Y2FuY2VsOmZ1bmN0aW9uKCl7YS5jYW5jZWwoKSxpKCl9fX07ZnVuY3Rpb24ga3QodCxlLHIpe3JbdF0mJi0xIT09clt0XS5pbmRleE9mKGUpfHwoclt0XT1yW3RdfHxbXSxyW3RdLnB1c2goZSkpfWZ1bmN0aW9uIEF0KHQsZSxyKXtpZihyJiZyW3RdKXt2YXIgbj1yW3RdLmluZGV4T2YoZSk7LTEhPT1uJiZyW3RdLnNwbGljZShuLDEpfX12YXIgTXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT17fSksdSh0aGlzLGUpLHRoaXMudHlwZT10fSxTdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dm9pZCAwPT09ciYmKHI9e30pLHQuY2FsbCh0aGlzLCJlcnJvciIsdSh7ZXJyb3I6ZX0scikpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlfShNdCksRXQ9ZnVuY3Rpb24oKXt9O0V0LnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9saXN0ZW5lcnM9dGhpcy5fbGlzdGVuZXJzfHx7fSxrdCh0LGUsdGhpcy5fbGlzdGVuZXJzKSx0aGlzfSxFdC5wcm90b3R5cGUub2ZmPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEF0KHQsZSx0aGlzLl9saXN0ZW5lcnMpLEF0KHQsZSx0aGlzLl9vbmVUaW1lTGlzdGVuZXJzKSx0aGlzfSxFdC5wcm90b3R5cGUub25jZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9vbmVUaW1lTGlzdGVuZXJzPXRoaXMuX29uZVRpbWVMaXN0ZW5lcnN8fHt9LGt0KHQsZSx0aGlzLl9vbmVUaW1lTGlzdGVuZXJzKSx0aGlzfSxFdC5wcm90b3R5cGUuZmlyZT1mdW5jdGlvbih0LGUpeyJzdHJpbmciPT10eXBlb2YgdCYmKHQ9bmV3IE10KHQsZXx8e30pKTt2YXIgcj10LnR5cGU7aWYodGhpcy5saXN0ZW5zKHIpKXt0LnRhcmdldD10aGlzO2Zvcih2YXIgbj0wLGk9dGhpcy5fbGlzdGVuZXJzJiZ0aGlzLl9saXN0ZW5lcnNbcl0/dGhpcy5fbGlzdGVuZXJzW3JdLnNsaWNlKCk6W107bjxpLmxlbmd0aDtuKz0xKXtpW25dLmNhbGwodGhpcyx0KX1mb3IodmFyIGE9MCxvPXRoaXMuX29uZVRpbWVMaXN0ZW5lcnMmJnRoaXMuX29uZVRpbWVMaXN0ZW5lcnNbcl0/dGhpcy5fb25lVGltZUxpc3RlbmVyc1tyXS5zbGljZSgpOltdO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXTtBdChyLHMsdGhpcy5fb25lVGltZUxpc3RlbmVycykscy5jYWxsKHRoaXMsdCl9dmFyIGw9dGhpcy5fZXZlbnRlZFBhcmVudDtsJiYodSh0LCJmdW5jdGlvbiI9PXR5cGVvZiB0aGlzLl9ldmVudGVkUGFyZW50RGF0YT90aGlzLl9ldmVudGVkUGFyZW50RGF0YSgpOnRoaXMuX2V2ZW50ZWRQYXJlbnREYXRhKSxsLmZpcmUodCkpfWVsc2UgdCBpbnN0YW5jZW9mIFN0JiZjb25zb2xlLmVycm9yKHQuZXJyb3IpO3JldHVybiB0aGlzfSxFdC5wcm90b3R5cGUubGlzdGVucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzJiZ0aGlzLl9saXN0ZW5lcnNbdF0mJnRoaXMuX2xpc3RlbmVyc1t0XS5sZW5ndGg+MHx8dGhpcy5fb25lVGltZUxpc3RlbmVycyYmdGhpcy5fb25lVGltZUxpc3RlbmVyc1t0XSYmdGhpcy5fb25lVGltZUxpc3RlbmVyc1t0XS5sZW5ndGg+MHx8dGhpcy5fZXZlbnRlZFBhcmVudCYmdGhpcy5fZXZlbnRlZFBhcmVudC5saXN0ZW5zKHQpfSxFdC5wcm90b3R5cGUuc2V0RXZlbnRlZFBhcmVudD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9ldmVudGVkUGFyZW50PXQsdGhpcy5fZXZlbnRlZFBhcmVudERhdGE9ZSx0aGlzfTt2YXIgTHQ9eyR2ZXJzaW9uOjgsJHJvb3Q6e3ZlcnNpb246e3JlcXVpcmVkOiEwLHR5cGU6ImVudW0iLHZhbHVlczpbOF19LG5hbWU6e3R5cGU6InN0cmluZyJ9LG1ldGFkYXRhOnt0eXBlOiIqIn0sY2VudGVyOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciJ9LHpvb206e3R5cGU6Im51bWJlciJ9LGJlYXJpbmc6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLHBlcmlvZDozNjAsdW5pdHM6ImRlZ3JlZXMifSxwaXRjaDp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsdW5pdHM6ImRlZ3JlZXMifSxsaWdodDp7dHlwZToibGlnaHQifSxzb3VyY2VzOntyZXF1aXJlZDohMCx0eXBlOiJzb3VyY2VzIn0sc3ByaXRlOnt0eXBlOiJzdHJpbmcifSxnbHlwaHM6e3R5cGU6InN0cmluZyJ9LHRyYW5zaXRpb246e3R5cGU6InRyYW5zaXRpb24ifSxsYXllcnM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5Iix2YWx1ZToibGF5ZXIifX0sc291cmNlczp7IioiOnt0eXBlOiJzb3VyY2UifX0sc291cmNlOlsic291cmNlX3ZlY3RvciIsInNvdXJjZV9yYXN0ZXIiLCJzb3VyY2VfcmFzdGVyX2RlbSIsInNvdXJjZV9nZW9qc29uIiwic291cmNlX3ZpZGVvIiwic291cmNlX2ltYWdlIl0sc291cmNlX3ZlY3Rvcjp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOnt2ZWN0b3I6e319fSx1cmw6e3R5cGU6InN0cmluZyJ9LHRpbGVzOnt0eXBlOiJhcnJheSIsdmFsdWU6InN0cmluZyJ9LGJvdW5kczp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDo0LGRlZmF1bHQ6Wy0xODAsLTg1LjA1MTEyOSwxODAsODUuMDUxMTI5XX0sc2NoZW1lOnt0eXBlOiJlbnVtIix2YWx1ZXM6e3h5ejp7fSx0bXM6e319LGRlZmF1bHQ6Inh5eiJ9LG1pbnpvb206e3R5cGU6Im51bWJlciIsZGVmYXVsdDowfSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MjJ9LGF0dHJpYnV0aW9uOnt0eXBlOiJzdHJpbmcifSxwcm9tb3RlSWQ6e3R5cGU6InByb21vdGVJZCJ9LCIqIjp7dHlwZToiKiJ9fSxzb3VyY2VfcmFzdGVyOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6e3Jhc3Rlcjp7fX19LHVybDp7dHlwZToic3RyaW5nIn0sdGlsZXM6e3R5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIn0sYm91bmRzOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjQsZGVmYXVsdDpbLTE4MCwtODUuMDUxMTI5LDE4MCw4NS4wNTExMjldfSxtaW56b29tOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MH0sbWF4em9vbTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjIyfSx0aWxlU2l6ZTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjUxMix1bml0czoicGl4ZWxzIn0sc2NoZW1lOnt0eXBlOiJlbnVtIix2YWx1ZXM6e3h5ejp7fSx0bXM6e319LGRlZmF1bHQ6Inh5eiJ9LGF0dHJpYnV0aW9uOnt0eXBlOiJzdHJpbmcifSwiKiI6e3R5cGU6IioifX0sc291cmNlX3Jhc3Rlcl9kZW06e3R5cGU6e3JlcXVpcmVkOiEwLHR5cGU6ImVudW0iLHZhbHVlczp7InJhc3Rlci1kZW0iOnt9fX0sdXJsOnt0eXBlOiJzdHJpbmcifSx0aWxlczp7dHlwZToiYXJyYXkiLHZhbHVlOiJzdHJpbmcifSxib3VuZHM6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6NCxkZWZhdWx0OlstMTgwLC04NS4wNTExMjksMTgwLDg1LjA1MTEyOV19LG1pbnpvb206e3R5cGU6Im51bWJlciIsZGVmYXVsdDowfSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MjJ9LHRpbGVTaXplOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6NTEyLHVuaXRzOiJwaXhlbHMifSxhdHRyaWJ1dGlvbjp7dHlwZToic3RyaW5nIn0sZW5jb2Rpbmc6e3R5cGU6ImVudW0iLHZhbHVlczp7dGVycmFyaXVtOnt9LG1hcGJveDp7fX0sZGVmYXVsdDoibWFwYm94In0sIioiOnt0eXBlOiIqIn19LHNvdXJjZV9nZW9qc29uOnt0eXBlOntyZXF1aXJlZDohMCx0eXBlOiJlbnVtIix2YWx1ZXM6e2dlb2pzb246e319fSxkYXRhOnt0eXBlOiIqIn0sbWF4em9vbTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjE4fSxhdHRyaWJ1dGlvbjp7dHlwZToic3RyaW5nIn0sYnVmZmVyOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MTI4LG1heGltdW06NTEyLG1pbmltdW06MH0sdG9sZXJhbmNlOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6LjM3NX0sY2x1c3Rlcjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMX0sY2x1c3RlclJhZGl1czp7dHlwZToibnVtYmVyIixkZWZhdWx0OjUwLG1pbmltdW06MH0sY2x1c3Rlck1heFpvb206e3R5cGU6Im51bWJlciJ9LGNsdXN0ZXJQcm9wZXJ0aWVzOnt0eXBlOiIqIn0sbGluZU1ldHJpY3M6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LGdlbmVyYXRlSWQ6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITF9LHByb21vdGVJZDp7dHlwZToicHJvbW90ZUlkIn19LHNvdXJjZV92aWRlbzp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOnt2aWRlbzp7fX19LHVybHM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIn0sY29vcmRpbmF0ZXM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5IixsZW5ndGg6NCx2YWx1ZTp7dHlwZToiYXJyYXkiLGxlbmd0aDoyLHZhbHVlOiJudW1iZXIifX19LHNvdXJjZV9pbWFnZTp7dHlwZTp7cmVxdWlyZWQ6ITAsdHlwZToiZW51bSIsdmFsdWVzOntpbWFnZTp7fX19LHVybDp7cmVxdWlyZWQ6ITAsdHlwZToic3RyaW5nIn0sY29vcmRpbmF0ZXM6e3JlcXVpcmVkOiEwLHR5cGU6ImFycmF5IixsZW5ndGg6NCx2YWx1ZTp7dHlwZToiYXJyYXkiLGxlbmd0aDoyLHZhbHVlOiJudW1iZXIifX19LGxheWVyOntpZDp7dHlwZToic3RyaW5nIixyZXF1aXJlZDohMH0sdHlwZTp7dHlwZToiZW51bSIsdmFsdWVzOntmaWxsOnt9LGxpbmU6e30sc3ltYm9sOnt9LGNpcmNsZTp7fSxoZWF0bWFwOnt9LCJmaWxsLWV4dHJ1c2lvbiI6e30scmFzdGVyOnt9LGhpbGxzaGFkZTp7fSxiYWNrZ3JvdW5kOnt9fSxyZXF1aXJlZDohMH0sbWV0YWRhdGE6e3R5cGU6IioifSxzb3VyY2U6e3R5cGU6InN0cmluZyJ9LCJzb3VyY2UtbGF5ZXIiOnt0eXBlOiJzdHJpbmcifSxtaW56b29tOnt0eXBlOiJudW1iZXIiLG1pbmltdW06MCxtYXhpbXVtOjI0fSxtYXh6b29tOnt0eXBlOiJudW1iZXIiLG1pbmltdW06MCxtYXhpbXVtOjI0fSxmaWx0ZXI6e3R5cGU6ImZpbHRlciJ9LGxheW91dDp7dHlwZToibGF5b3V0In0scGFpbnQ6e3R5cGU6InBhaW50In19LGxheW91dDpbImxheW91dF9maWxsIiwibGF5b3V0X2xpbmUiLCJsYXlvdXRfY2lyY2xlIiwibGF5b3V0X2hlYXRtYXAiLCJsYXlvdXRfZmlsbC1leHRydXNpb24iLCJsYXlvdXRfc3ltYm9sIiwibGF5b3V0X3Jhc3RlciIsImxheW91dF9oaWxsc2hhZGUiLCJsYXlvdXRfYmFja2dyb3VuZCJdLGxheW91dF9iYWNrZ3JvdW5kOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxsYXlvdXRfZmlsbDp7ImZpbGwtc29ydC1rZXkiOnt0eXBlOiJudW1iZXIiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LHZpc2liaWxpdHk6e3R5cGU6ImVudW0iLHZhbHVlczp7dmlzaWJsZTp7fSxub25lOnt9fSxkZWZhdWx0OiJ2aXNpYmxlIiwicHJvcGVydHktdHlwZSI6ImNvbnN0YW50In19LGxheW91dF9jaXJjbGU6eyJjaXJjbGUtc29ydC1rZXkiOnt0eXBlOiJudW1iZXIiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LHZpc2liaWxpdHk6e3R5cGU6ImVudW0iLHZhbHVlczp7dmlzaWJsZTp7fSxub25lOnt9fSxkZWZhdWx0OiJ2aXNpYmxlIiwicHJvcGVydHktdHlwZSI6ImNvbnN0YW50In19LGxheW91dF9oZWF0bWFwOnt2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSwibGF5b3V0X2ZpbGwtZXh0cnVzaW9uIjp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sbGF5b3V0X2xpbmU6eyJsaW5lLWNhcCI6e3R5cGU6ImVudW0iLHZhbHVlczp7YnV0dDp7fSxyb3VuZDp7fSxzcXVhcmU6e319LGRlZmF1bHQ6ImJ1dHQiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwibGluZS1qb2luIjp7dHlwZToiZW51bSIsdmFsdWVzOntiZXZlbDp7fSxyb3VuZDp7fSxtaXRlcjp7fX0sZGVmYXVsdDoibWl0ZXIiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLW1pdGVyLWxpbWl0Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjIscmVxdWlyZXM6W3sibGluZS1qb2luIjoibWl0ZXIifV0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJsaW5lLXJvdW5kLWxpbWl0Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEuMDUscmVxdWlyZXM6W3sibGluZS1qb2luIjoicm91bmQifV0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJsaW5lLXNvcnQta2V5Ijp7dHlwZToibnVtYmVyIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSx2aXNpYmlsaXR5Ont0eXBlOiJlbnVtIix2YWx1ZXM6e3Zpc2libGU6e30sbm9uZTp7fX0sZGVmYXVsdDoidmlzaWJsZSIsInByb3BlcnR5LXR5cGUiOiJjb25zdGFudCJ9fSxsYXlvdXRfc3ltYm9sOnsic3ltYm9sLXBsYWNlbWVudCI6e3R5cGU6ImVudW0iLHZhbHVlczp7cG9pbnQ6e30sbGluZTp7fSwibGluZS1jZW50ZXIiOnt9fSxkZWZhdWx0OiJwb2ludCIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJzeW1ib2wtc3BhY2luZyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyNTAsbWluaW11bToxLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlt7InN5bWJvbC1wbGFjZW1lbnQiOiJsaW5lIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwic3ltYm9sLWF2b2lkLWVkZ2VzIjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInN5bWJvbC1zb3J0LWtleSI6e3R5cGU6Im51bWJlciIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInN5bWJvbC16LW9yZGVyIjp7dHlwZToiZW51bSIsdmFsdWVzOnthdXRvOnt9LCJ2aWV3cG9ydC15Ijp7fSxzb3VyY2U6e319LGRlZmF1bHQ6ImF1dG8iLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaWNvbi1hbGxvdy1vdmVybGFwIjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24taWdub3JlLXBsYWNlbWVudCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITEscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJpY29uLW9wdGlvbmFsIjp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbImljb24taW1hZ2UiLCJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9LGF1dG86e319LGRlZmF1bHQ6ImF1dG8iLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiaWNvbi1zaXplIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLHVuaXRzOiJmYWN0b3Igb2YgdGhlIG9yaWdpbmFsIGljb24gc2l6ZSIscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tdGV4dC1maXQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e25vbmU6e30sd2lkdGg6e30saGVpZ2h0Ont9LGJvdGg6e319LGRlZmF1bHQ6Im5vbmUiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSIsInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tdGV4dC1maXQtcGFkZGluZyI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIixsZW5ndGg6NCxkZWZhdWx0OlswLDAsMCwwXSx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiLCJ0ZXh0LWZpZWxkIix7Imljb24tdGV4dC1maXQiOlsiYm90aCIsIndpZHRoIiwiaGVpZ2h0Il19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24taW1hZ2UiOnt0eXBlOiJyZXNvbHZlZEltYWdlIix0b2tlbnM6ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tcm90YXRlIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tcGFkZGluZyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyLG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24ta2VlcC11cHJpZ2h0Ijp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbImljb24taW1hZ2UiLHsiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiOiJtYXAifSx7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tb2Zmc2V0Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0scmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOntjZW50ZXI6e30sbGVmdDp7fSxyaWdodDp7fSx0b3A6e30sYm90dG9tOnt9LCJ0b3AtbGVmdCI6e30sInRvcC1yaWdodCI6e30sImJvdHRvbS1sZWZ0Ijp7fSwiYm90dG9tLXJpZ2h0Ijp7fX0sZGVmYXVsdDoiY2VudGVyIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaWNvbi1waXRjaC1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fSxhdXRvOnt9fSxkZWZhdWx0OiJhdXRvIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtcGl0Y2gtYWxpZ25tZW50Ijp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e30sYXV0bzp7fX0sZGVmYXVsdDoiYXV0byIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9LGF1dG86e319LGRlZmF1bHQ6ImF1dG8iLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwidGV4dC1maWVsZCI6e3R5cGU6ImZvcm1hdHRlZCIsZGVmYXVsdDoiIix0b2tlbnM6ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtZm9udCI6e3R5cGU6ImFycmF5Iix2YWx1ZToic3RyaW5nIixkZWZhdWx0OlsiT3BlbiBTYW5zIFJlZ3VsYXIiLCJBcmlhbCBVbmljb2RlIE1TIFJlZ3VsYXIiXSxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1zaXplIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjE2LG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1tYXgtd2lkdGgiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MTAsbWluaW11bTowLHVuaXRzOiJlbXMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWxpbmUtaGVpZ2h0Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEuMix1bml0czoiZW1zIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtbGV0dGVyLXNwYWNpbmciOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCx1bml0czoiZW1zIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1qdXN0aWZ5Ijp7dHlwZToiZW51bSIsdmFsdWVzOnthdXRvOnt9LGxlZnQ6e30sY2VudGVyOnt9LHJpZ2h0Ont9fSxkZWZhdWx0OiJjZW50ZXIiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LXJhZGlhbC1vZmZzZXQiOnt0eXBlOiJudW1iZXIiLHVuaXRzOiJlbXMiLGRlZmF1bHQ6MCxyZXF1aXJlczpbInRleHQtZmllbGQiXSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19fSwidGV4dC12YXJpYWJsZS1hbmNob3IiOnt0eXBlOiJhcnJheSIsdmFsdWU6ImVudW0iLHZhbHVlczp7Y2VudGVyOnt9LGxlZnQ6e30scmlnaHQ6e30sdG9wOnt9LGJvdHRvbTp7fSwidG9wLWxlZnQiOnt9LCJ0b3AtcmlnaHQiOnt9LCJib3R0b20tbGVmdCI6e30sImJvdHRvbS1yaWdodCI6e319LHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyJzeW1ib2wtcGxhY2VtZW50IjpbInBvaW50Il19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOntjZW50ZXI6e30sbGVmdDp7fSxyaWdodDp7fSx0b3A6e30sYm90dG9tOnt9LCJ0b3AtbGVmdCI6e30sInRvcC1yaWdodCI6e30sImJvdHRvbS1sZWZ0Ijp7fSwiYm90dG9tLXJpZ2h0Ijp7fX0sZGVmYXVsdDoiY2VudGVyIixyZXF1aXJlczpbInRleHQtZmllbGQiLHsiISI6InRleHQtdmFyaWFibGUtYW5jaG9yIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LW1heC1hbmdsZSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDo0NSx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIix7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtd3JpdGluZy1tb2RlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJlbnVtIix2YWx1ZXM6e2hvcml6b250YWw6e30sdmVydGljYWw6e319LHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyJzeW1ib2wtcGxhY2VtZW50IjpbInBvaW50Il19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtcm90YXRlIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx1bml0czoiZGVncmVlcyIscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtcGFkZGluZyI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoyLG1pbmltdW06MCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQta2VlcC11cHJpZ2h0Ijp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMCxyZXF1aXJlczpbInRleHQtZmllbGQiLHsidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiOiJtYXAifSx7InN5bWJvbC1wbGFjZW1lbnQiOlsibGluZSIsImxpbmUtY2VudGVyIl19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtdHJhbnNmb3JtIjp7dHlwZToiZW51bSIsdmFsdWVzOntub25lOnt9LHVwcGVyY2FzZTp7fSxsb3dlcmNhc2U6e319LGRlZmF1bHQ6Im5vbmUiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LW9mZnNldCI6e3R5cGU6ImFycmF5Iix2YWx1ZToibnVtYmVyIix1bml0czoiZW1zIixsZW5ndGg6MixkZWZhdWx0OlswLDBdLHJlcXVpcmVzOlsidGV4dC1maWVsZCIseyIhIjoidGV4dC1yYWRpYWwtb2Zmc2V0In1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWFsbG93LW92ZXJsYXAiOnt0eXBlOiJib29sZWFuIixkZWZhdWx0OiExLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwidGV4dC1pZ25vcmUtcGxhY2VtZW50Ijp7dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtb3B0aW9uYWwiOnt0eXBlOiJib29sZWFuIixkZWZhdWx0OiExLHJlcXVpcmVzOlsidGV4dC1maWVsZCIsImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sdmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sbGF5b3V0X3Jhc3Rlcjp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sbGF5b3V0X2hpbGxzaGFkZTp7dmlzaWJpbGl0eTp7dHlwZToiZW51bSIsdmFsdWVzOnt2aXNpYmxlOnt9LG5vbmU6e319LGRlZmF1bHQ6InZpc2libGUiLCJwcm9wZXJ0eS10eXBlIjoiY29uc3RhbnQifX0sZmlsdGVyOnt0eXBlOiJhcnJheSIsdmFsdWU6IioifSxmaWx0ZXJfb3BlcmF0b3I6e3R5cGU6ImVudW0iLHZhbHVlczp7Ij09Ijp7fSwiIT0iOnt9LCI+Ijp7fSwiPj0iOnt9LCI8Ijp7fSwiPD0iOnt9LGluOnt9LCIhaW4iOnt9LGFsbDp7fSxhbnk6e30sbm9uZTp7fSxoYXM6e30sIiFoYXMiOnt9LHdpdGhpbjp7fX19LGdlb21ldHJ5X3R5cGU6e3R5cGU6ImVudW0iLHZhbHVlczp7UG9pbnQ6e30sTGluZVN0cmluZzp7fSxQb2x5Z29uOnt9fX0sZnVuY3Rpb246e2V4cHJlc3Npb246e3R5cGU6ImV4cHJlc3Npb24ifSxzdG9wczp7dHlwZToiYXJyYXkiLHZhbHVlOiJmdW5jdGlvbl9zdG9wIn0sYmFzZTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowfSxwcm9wZXJ0eTp7dHlwZToic3RyaW5nIixkZWZhdWx0OiIkem9vbSJ9LHR5cGU6e3R5cGU6ImVudW0iLHZhbHVlczp7aWRlbnRpdHk6e30sZXhwb25lbnRpYWw6e30saW50ZXJ2YWw6e30sY2F0ZWdvcmljYWw6e319LGRlZmF1bHQ6ImV4cG9uZW50aWFsIn0sY29sb3JTcGFjZTp7dHlwZToiZW51bSIsdmFsdWVzOntyZ2I6e30sbGFiOnt9LGhjbDp7fX0sZGVmYXVsdDoicmdiIn0sZGVmYXVsdDp7dHlwZToiKiIscmVxdWlyZWQ6ITF9fSxmdW5jdGlvbl9zdG9wOnt0eXBlOiJhcnJheSIsbWluaW11bTowLG1heGltdW06MjQsdmFsdWU6WyJudW1iZXIiLCJjb2xvciJdLGxlbmd0aDoyfSxleHByZXNzaW9uOnt0eXBlOiJhcnJheSIsdmFsdWU6IioiLG1pbmltdW06MX0sZXhwcmVzc2lvbl9uYW1lOnt0eXBlOiJlbnVtIix2YWx1ZXM6e2xldDp7Z3JvdXA6IlZhcmlhYmxlIGJpbmRpbmcifSx2YXI6e2dyb3VwOiJWYXJpYWJsZSBiaW5kaW5nIn0sbGl0ZXJhbDp7Z3JvdXA6IlR5cGVzIn0sYXJyYXk6e2dyb3VwOiJUeXBlcyJ9LGF0Ontncm91cDoiTG9va3VwIn0saW46e2dyb3VwOiJMb29rdXAifSwiaW5kZXgtb2YiOntncm91cDoiTG9va3VwIn0sc2xpY2U6e2dyb3VwOiJMb29rdXAifSxjYXNlOntncm91cDoiRGVjaXNpb24ifSxtYXRjaDp7Z3JvdXA6IkRlY2lzaW9uIn0sY29hbGVzY2U6e2dyb3VwOiJEZWNpc2lvbiJ9LHN0ZXA6e2dyb3VwOiJSYW1wcywgc2NhbGVzLCBjdXJ2ZXMifSxpbnRlcnBvbGF0ZTp7Z3JvdXA6IlJhbXBzLCBzY2FsZXMsIGN1cnZlcyJ9LCJpbnRlcnBvbGF0ZS1oY2wiOntncm91cDoiUmFtcHMsIHNjYWxlcywgY3VydmVzIn0sImludGVycG9sYXRlLWxhYiI6e2dyb3VwOiJSYW1wcywgc2NhbGVzLCBjdXJ2ZXMifSxsbjI6e2dyb3VwOiJNYXRoIn0scGk6e2dyb3VwOiJNYXRoIn0sZTp7Z3JvdXA6Ik1hdGgifSx0eXBlb2Y6e2dyb3VwOiJUeXBlcyJ9LHN0cmluZzp7Z3JvdXA6IlR5cGVzIn0sbnVtYmVyOntncm91cDoiVHlwZXMifSxib29sZWFuOntncm91cDoiVHlwZXMifSxvYmplY3Q6e2dyb3VwOiJUeXBlcyJ9LGNvbGxhdG9yOntncm91cDoiVHlwZXMifSxmb3JtYXQ6e2dyb3VwOiJUeXBlcyJ9LGltYWdlOntncm91cDoiVHlwZXMifSwibnVtYmVyLWZvcm1hdCI6e2dyb3VwOiJUeXBlcyJ9LCJ0by1zdHJpbmciOntncm91cDoiVHlwZXMifSwidG8tbnVtYmVyIjp7Z3JvdXA6IlR5cGVzIn0sInRvLWJvb2xlYW4iOntncm91cDoiVHlwZXMifSwidG8tcmdiYSI6e2dyb3VwOiJDb2xvciJ9LCJ0by1jb2xvciI6e2dyb3VwOiJUeXBlcyJ9LHJnYjp7Z3JvdXA6IkNvbG9yIn0scmdiYTp7Z3JvdXA6IkNvbG9yIn0sZ2V0Ontncm91cDoiTG9va3VwIn0saGFzOntncm91cDoiTG9va3VwIn0sbGVuZ3RoOntncm91cDoiTG9va3VwIn0scHJvcGVydGllczp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LCJmZWF0dXJlLXN0YXRlIjp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LCJnZW9tZXRyeS10eXBlIjp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LGlkOntncm91cDoiRmVhdHVyZSBkYXRhIn0sem9vbTp7Z3JvdXA6Ilpvb20ifSwiaGVhdG1hcC1kZW5zaXR5Ijp7Z3JvdXA6IkhlYXRtYXAifSwibGluZS1wcm9ncmVzcyI6e2dyb3VwOiJGZWF0dXJlIGRhdGEifSxhY2N1bXVsYXRlZDp7Z3JvdXA6IkZlYXR1cmUgZGF0YSJ9LCIrIjp7Z3JvdXA6Ik1hdGgifSwiKiI6e2dyb3VwOiJNYXRoIn0sIi0iOntncm91cDoiTWF0aCJ9LCIvIjp7Z3JvdXA6Ik1hdGgifSwiJSI6e2dyb3VwOiJNYXRoIn0sIl4iOntncm91cDoiTWF0aCJ9LHNxcnQ6e2dyb3VwOiJNYXRoIn0sbG9nMTA6e2dyb3VwOiJNYXRoIn0sbG46e2dyb3VwOiJNYXRoIn0sbG9nMjp7Z3JvdXA6Ik1hdGgifSxzaW46e2dyb3VwOiJNYXRoIn0sY29zOntncm91cDoiTWF0aCJ9LHRhbjp7Z3JvdXA6Ik1hdGgifSxhc2luOntncm91cDoiTWF0aCJ9LGFjb3M6e2dyb3VwOiJNYXRoIn0sYXRhbjp7Z3JvdXA6Ik1hdGgifSxtaW46e2dyb3VwOiJNYXRoIn0sbWF4Ontncm91cDoiTWF0aCJ9LHJvdW5kOntncm91cDoiTWF0aCJ9LGFiczp7Z3JvdXA6Ik1hdGgifSxjZWlsOntncm91cDoiTWF0aCJ9LGZsb29yOntncm91cDoiTWF0aCJ9LGRpc3RhbmNlOntncm91cDoiTWF0aCJ9LCI9PSI6e2dyb3VwOiJEZWNpc2lvbiJ9LCIhPSI6e2dyb3VwOiJEZWNpc2lvbiJ9LCI+Ijp7Z3JvdXA6IkRlY2lzaW9uIn0sIjwiOntncm91cDoiRGVjaXNpb24ifSwiPj0iOntncm91cDoiRGVjaXNpb24ifSwiPD0iOntncm91cDoiRGVjaXNpb24ifSxhbGw6e2dyb3VwOiJEZWNpc2lvbiJ9LGFueTp7Z3JvdXA6IkRlY2lzaW9uIn0sIiEiOntncm91cDoiRGVjaXNpb24ifSx3aXRoaW46e2dyb3VwOiJEZWNpc2lvbiJ9LCJpcy1zdXBwb3J0ZWQtc2NyaXB0Ijp7Z3JvdXA6IlN0cmluZyJ9LHVwY2FzZTp7Z3JvdXA6IlN0cmluZyJ9LGRvd25jYXNlOntncm91cDoiU3RyaW5nIn0sY29uY2F0Ontncm91cDoiU3RyaW5nIn0sInJlc29sdmVkLWxvY2FsZSI6e2dyb3VwOiJTdHJpbmcifX19LGxpZ2h0OnthbmNob3I6e3R5cGU6ImVudW0iLGRlZmF1bHQ6InZpZXdwb3J0Iix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50Iix0cmFuc2l0aW9uOiExLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfX0scG9zaXRpb246e3R5cGU6ImFycmF5IixkZWZhdWx0OlsxLjE1LDIxMCwzMF0sbGVuZ3RoOjMsdmFsdWU6Im51bWJlciIsInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50Iix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfX0sY29sb3I6e3R5cGU6ImNvbG9yIiwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQiLGRlZmF1bHQ6IiNmZmZmZmYiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSx0cmFuc2l0aW9uOiEwfSxpbnRlbnNpdHk6e3R5cGU6Im51bWJlciIsInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50IixkZWZhdWx0Oi41LG1pbmltdW06MCxtYXhpbXVtOjEsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LHRyYW5zaXRpb246ITB9fSxwYWludDpbInBhaW50X2ZpbGwiLCJwYWludF9saW5lIiwicGFpbnRfY2lyY2xlIiwicGFpbnRfaGVhdG1hcCIsInBhaW50X2ZpbGwtZXh0cnVzaW9uIiwicGFpbnRfc3ltYm9sIiwicGFpbnRfcmFzdGVyIiwicGFpbnRfaGlsbHNoYWRlIiwicGFpbnRfYmFja2dyb3VuZCJdLHBhaW50X2ZpbGw6eyJmaWxsLWFudGlhbGlhcyI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJmaWxsLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJmaWxsLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImZpbGwtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImZpbGwtb3V0bGluZS1jb2xvciI6e3R5cGU6ImNvbG9yIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlt7IiEiOiJmaWxsLXBhdHRlcm4ifSx7ImZpbGwtYW50aWFsaWFzIjohMH1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiZmlsbC10cmFuc2xhdGUiOnt0eXBlOiJhcnJheSIsdmFsdWU6Im51bWJlciIsbGVuZ3RoOjIsZGVmYXVsdDpbMCwwXSx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiZmlsbC10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e319LGRlZmF1bHQ6Im1hcCIscmVxdWlyZXM6WyJmaWxsLXRyYW5zbGF0ZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiZmlsbC1wYXR0ZXJuIjp7dHlwZToicmVzb2x2ZWRJbWFnZSIsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIl19LCJwcm9wZXJ0eS10eXBlIjoiY3Jvc3MtZmFkZWQtZGF0YS1kcml2ZW4ifX0sInBhaW50X2ZpbGwtZXh0cnVzaW9uIjp7ImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJmaWxsLWV4dHJ1c2lvbi1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjMDAwMDAwIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlt7IiEiOiJmaWxsLWV4dHJ1c2lvbi1wYXR0ZXJuIn1dLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZS1hbmNob3IiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sZGVmYXVsdDoibWFwIixyZXF1aXJlczpbImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiZmlsbC1leHRydXNpb24tcGF0dGVybiI6e3R5cGU6InJlc29sdmVkSW1hZ2UiLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSJdfSwicHJvcGVydHktdHlwZSI6ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIn0sImZpbGwtZXh0cnVzaW9uLWhlaWdodCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx1bml0czoibWV0ZXJzIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiZmlsbC1leHRydXNpb24tYmFzZSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx1bml0czoibWV0ZXJzIix0cmFuc2l0aW9uOiEwLHJlcXVpcmVzOlsiZmlsbC1leHRydXNpb24taGVpZ2h0Il0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJmaWxsLWV4dHJ1c2lvbi12ZXJ0aWNhbC1ncmFkaWVudCI6e3R5cGU6ImJvb2xlYW4iLGRlZmF1bHQ6ITAsdHJhbnNpdGlvbjohMSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHBhaW50X2xpbmU6eyJsaW5lLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImxpbmUtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImxpbmUtdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJtYXAiLHJlcXVpcmVzOlsibGluZS10cmFuc2xhdGUiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImxpbmUtd2lkdGgiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtZ2FwLXdpZHRoIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLW9mZnNldCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLHRyYW5zaXRpb246ITAsdW5pdHM6InBpeGVscyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJsaW5lLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImxpbmUtZGFzaGFycmF5Ijp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJsaW5lIHdpZHRocyIscmVxdWlyZXM6W3siISI6ImxpbmUtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJjcm9zcy1mYWRlZCJ9LCJsaW5lLXBhdHRlcm4iOnt0eXBlOiJyZXNvbHZlZEltYWdlIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX0sInByb3BlcnR5LXR5cGUiOiJjcm9zcy1mYWRlZC1kYXRhLWRyaXZlbiJ9LCJsaW5lLWdyYWRpZW50Ijp7dHlwZToiY29sb3IiLHRyYW5zaXRpb246ITEscmVxdWlyZXM6W3siISI6ImxpbmUtZGFzaGFycmF5In0seyIhIjoibGluZS1wYXR0ZXJuIn0se3NvdXJjZToiZ2VvanNvbiIsaGFzOntsaW5lTWV0cmljczohMH19XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbImxpbmUtcHJvZ3Jlc3MiXX0sInByb3BlcnR5LXR5cGUiOiJjb2xvci1yYW1wIn19LHBhaW50X2NpcmNsZTp7ImNpcmNsZS1yYWRpdXMiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6NSxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImNpcmNsZS1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjMDAwMDAwIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJjaXJjbGUtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIjp7dHlwZToiZW51bSIsdmFsdWVzOnttYXA6e30sdmlld3BvcnQ6e319LGRlZmF1bHQ6Im1hcCIscmVxdWlyZXM6WyJjaXJjbGUtdHJhbnNsYXRlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJjaXJjbGUtcGl0Y2gtc2NhbGUiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sZGVmYXVsdDoibWFwIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITEscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImNpcmNsZS1waXRjaC1hbGlnbm1lbnQiOnt0eXBlOiJlbnVtIix2YWx1ZXM6e21hcDp7fSx2aWV3cG9ydDp7fX0sZGVmYXVsdDoidmlld3BvcnQiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifSwiY2lyY2xlLXN0cm9rZS13aWR0aCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLXN0cm9rZS1jb2xvciI6e3R5cGU6ImNvbG9yIixkZWZhdWx0OiIjMDAwMDAwIix0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiY2lyY2xlLXN0cm9rZS1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifX0scGFpbnRfaGVhdG1hcDp7ImhlYXRtYXAtcmFkaXVzIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjMwLG1pbmltdW06MSx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaGVhdG1hcC13ZWlnaHQiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImhlYXRtYXAtaW50ZW5zaXR5Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJoZWF0bWFwLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6WyJpbnRlcnBvbGF0ZSIsWyJsaW5lYXIiXSxbImhlYXRtYXAtZGVuc2l0eSJdLDAsInJnYmEoMCwgMCwgMjU1LCAwKSIsLjEsInJveWFsYmx1ZSIsLjMsImN5YW4iLC41LCJsaW1lIiwuNywieWVsbG93IiwxLCJyZWQiXSx0cmFuc2l0aW9uOiExLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiaGVhdG1hcC1kZW5zaXR5Il19LCJwcm9wZXJ0eS10eXBlIjoiY29sb3ItcmFtcCJ9LCJoZWF0bWFwLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9fSxwYWludF9zeW1ib2w6eyJpY29uLW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJpY29uLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6WyJpY29uLWltYWdlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJpY29uLWhhbG8tY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoicmdiYSgwLCAwLCAwLCAwKSIsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24taGFsby13aWR0aCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwiaWNvbi1oYWxvLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sImljb24tdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbImljb24taW1hZ2UiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImljb24tdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJtYXAiLHJlcXVpcmVzOlsiaWNvbi1pbWFnZSIsImljb24tdHJhbnNsYXRlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJ0ZXh0LW9wYWNpdHkiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MSxtaW5pbXVtOjAsbWF4aW11bToxLHRyYW5zaXRpb246ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAsb3ZlcnJpZGFibGU6ITAscmVxdWlyZXM6WyJ0ZXh0LWZpZWxkIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIiwiZmVhdHVyZSIsImZlYXR1cmUtc3RhdGUiXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWRyaXZlbiJ9LCJ0ZXh0LWhhbG8tY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoicmdiYSgwLCAwLCAwLCAwKSIsdHJhbnNpdGlvbjohMCxyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtaGFsby13aWR0aCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJwaXhlbHMiLHJlcXVpcmVzOlsidGV4dC1maWVsZCJdLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiLCJmZWF0dXJlLXN0YXRlIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4ifSwidGV4dC1oYWxvLWJsdXIiOnt0eXBlOiJudW1iZXIiLGRlZmF1bHQ6MCxtaW5pbXVtOjAsdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iLCJmZWF0dXJlIiwiZmVhdHVyZS1zdGF0ZSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtZHJpdmVuIn0sInRleHQtdHJhbnNsYXRlIjp7dHlwZToiYXJyYXkiLHZhbHVlOiJudW1iZXIiLGxlbmd0aDoyLGRlZmF1bHQ6WzAsMF0sdHJhbnNpdGlvbjohMCx1bml0czoicGl4ZWxzIixyZXF1aXJlczpbInRleHQtZmllbGQiXSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInRleHQtdHJhbnNsYXRlLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJtYXAiLHJlcXVpcmVzOlsidGV4dC1maWVsZCIsInRleHQtdHJhbnNsYXRlIl0sZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9fSxwYWludF9yYXN0ZXI6eyJyYXN0ZXItb3BhY2l0eSI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1odWUtcm90YXRlIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAscGVyaW9kOjM2MCx0cmFuc2l0aW9uOiEwLHVuaXRzOiJkZWdyZWVzIixleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1icmlnaHRuZXNzLW1pbiI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1icmlnaHRuZXNzLW1heCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDoxLG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1zYXR1cmF0aW9uIjp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTotMSxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sInJhc3Rlci1jb250cmFzdCI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDowLG1pbmltdW06LTEsbWF4aW11bToxLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJyYXN0ZXItcmVzYW1wbGluZyI6e3R5cGU6ImVudW0iLHZhbHVlczp7bGluZWFyOnt9LG5lYXJlc3Q6e319LGRlZmF1bHQ6ImxpbmVhciIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJyYXN0ZXItZmFkZS1kdXJhdGlvbiI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDozMDAsbWluaW11bTowLHRyYW5zaXRpb246ITEsdW5pdHM6Im1pbGxpc2Vjb25kcyIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9fSxwYWludF9oaWxsc2hhZGU6eyJoaWxsc2hhZGUtaWxsdW1pbmF0aW9uLWRpcmVjdGlvbiI6e3R5cGU6Im51bWJlciIsZGVmYXVsdDozMzUsbWluaW11bTowLG1heGltdW06MzU5LHRyYW5zaXRpb246ITEsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiEwLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJoaWxsc2hhZGUtaWxsdW1pbmF0aW9uLWFuY2hvciI6e3R5cGU6ImVudW0iLHZhbHVlczp7bWFwOnt9LHZpZXdwb3J0Ont9fSxkZWZhdWx0OiJ2aWV3cG9ydCIsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1jb25zdGFudCJ9LCJoaWxsc2hhZGUtZXhhZ2dlcmF0aW9uIjp7dHlwZToibnVtYmVyIixkZWZhdWx0Oi41LG1pbmltdW06MCxtYXhpbXVtOjEsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhpbGxzaGFkZS1oaWdobGlnaHQtY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiI0ZGRkZGRiIsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImhpbGxzaGFkZS1hY2NlbnQtY29sb3IiOnt0eXBlOiJjb2xvciIsZGVmYXVsdDoiIzAwMDAwMCIsdHJhbnNpdGlvbjohMCxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In19LHBhaW50X2JhY2tncm91bmQ6eyJiYWNrZ3JvdW5kLWNvbG9yIjp7dHlwZToiY29sb3IiLGRlZmF1bHQ6IiMwMDAwMDAiLHRyYW5zaXRpb246ITAscmVxdWlyZXM6W3siISI6ImJhY2tncm91bmQtcGF0dGVybiJ9XSxleHByZXNzaW9uOntpbnRlcnBvbGF0ZWQ6ITAscGFyYW1ldGVyczpbInpvb20iXX0sInByb3BlcnR5LXR5cGUiOiJkYXRhLWNvbnN0YW50In0sImJhY2tncm91bmQtcGF0dGVybiI6e3R5cGU6InJlc29sdmVkSW1hZ2UiLHRyYW5zaXRpb246ITAsZXhwcmVzc2lvbjp7aW50ZXJwb2xhdGVkOiExLHBhcmFtZXRlcnM6WyJ6b29tIl19LCJwcm9wZXJ0eS10eXBlIjoiY3Jvc3MtZmFkZWQifSwiYmFja2dyb3VuZC1vcGFjaXR5Ijp7dHlwZToibnVtYmVyIixkZWZhdWx0OjEsbWluaW11bTowLG1heGltdW06MSx0cmFuc2l0aW9uOiEwLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMCxwYXJhbWV0ZXJzOlsiem9vbSJdfSwicHJvcGVydHktdHlwZSI6ImRhdGEtY29uc3RhbnQifX0sdHJhbnNpdGlvbjp7ZHVyYXRpb246e3R5cGU6Im51bWJlciIsZGVmYXVsdDozMDAsbWluaW11bTowLHVuaXRzOiJtaWxsaXNlY29uZHMifSxkZWxheTp7dHlwZToibnVtYmVyIixkZWZhdWx0OjAsbWluaW11bTowLHVuaXRzOiJtaWxsaXNlY29uZHMifX0sInByb3BlcnR5LXR5cGUiOnsiZGF0YS1kcml2ZW4iOnt0eXBlOiJwcm9wZXJ0eS10eXBlIn0sImNyb3NzLWZhZGVkIjp7dHlwZToicHJvcGVydHktdHlwZSJ9LCJjcm9zcy1mYWRlZC1kYXRhLWRyaXZlbiI6e3R5cGU6InByb3BlcnR5LXR5cGUifSwiY29sb3ItcmFtcCI6e3R5cGU6InByb3BlcnR5LXR5cGUifSwiZGF0YS1jb25zdGFudCI6e3R5cGU6InByb3BlcnR5LXR5cGUifSxjb25zdGFudDp7dHlwZToicHJvcGVydHktdHlwZSJ9fSxwcm9tb3RlSWQ6eyIqIjp7dHlwZToic3RyaW5nIn19fSxDdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLm1lc3NhZ2U9KHQ/dCsiOiAiOiIiKStyLG4mJih0aGlzLmlkZW50aWZpZXI9biksbnVsbCE9ZSYmZS5fX2xpbmVfXyYmKHRoaXMubGluZT1lLl9fbGluZV9fKX07ZnVuY3Rpb24gUHQodCl7dmFyIGU9dC5rZXkscj10LnZhbHVlO3JldHVybiByP1tuZXcgQ3QoZSxyLCJjb25zdGFudHMgaGF2ZSBiZWVuIGRlcHJlY2F0ZWQgYXMgb2YgdjgiKV06W119ZnVuY3Rpb24gSXQodCl7Zm9yKHZhciBlPVtdLHI9YXJndW1lbnRzLmxlbmd0aC0xO3ItLSA+MDspZVtyXT1hcmd1bWVudHNbcisxXTtmb3IodmFyIG49MCxpPWU7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dO2Zvcih2YXIgbyBpbiBhKXRbb109YVtvXX1yZXR1cm4gdH1mdW5jdGlvbiBPdCh0KXtyZXR1cm4gdCBpbnN0YW5jZW9mIE51bWJlcnx8dCBpbnN0YW5jZW9mIFN0cmluZ3x8dCBpbnN0YW5jZW9mIEJvb2xlYW4/dC52YWx1ZU9mKCk6dH1mdW5jdGlvbiB6dCh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiB0Lm1hcCh6dCk7aWYodCBpbnN0YW5jZW9mIE9iamVjdCYmISh0IGluc3RhbmNlb2YgTnVtYmVyfHx0IGluc3RhbmNlb2YgU3RyaW5nfHx0IGluc3RhbmNlb2YgQm9vbGVhbikpe3ZhciBlPXt9O2Zvcih2YXIgciBpbiB0KWVbcl09enQodFtyXSk7cmV0dXJuIGV9cmV0dXJuIE90KHQpfXZhciBEdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dC5jYWxsKHRoaXMsciksdGhpcy5tZXNzYWdlPXIsdGhpcy5rZXk9ZX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX0oRXJyb3IpLFJ0PWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09ZSYmKGU9W10pLHRoaXMucGFyZW50PXQsdGhpcy5iaW5kaW5ncz17fTtmb3IodmFyIHI9MCxuPWU7cjxuLmxlbmd0aDtyKz0xKXt2YXIgaT1uW3JdLGE9aVswXSxvPWlbMV07dGhpcy5iaW5kaW5nc1thXT1vfX07UnQucHJvdG90eXBlLmNvbmNhdD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IFJ0KHRoaXMsdCl9LFJ0LnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7aWYodGhpcy5iaW5kaW5nc1t0XSlyZXR1cm4gdGhpcy5iaW5kaW5nc1t0XTtpZih0aGlzLnBhcmVudClyZXR1cm4gdGhpcy5wYXJlbnQuZ2V0KHQpO3Rocm93IG5ldyBFcnJvcih0KyIgbm90IGZvdW5kIGluIHNjb3BlLiIpfSxSdC5wcm90b3R5cGUuaGFzPWZ1bmN0aW9uKHQpe3JldHVybiEhdGhpcy5iaW5kaW5nc1t0XXx8ISF0aGlzLnBhcmVudCYmdGhpcy5wYXJlbnQuaGFzKHQpfTt2YXIgRnQ9e2tpbmQ6Im51bGwifSxCdD17a2luZDoibnVtYmVyIn0sTnQ9e2tpbmQ6InN0cmluZyJ9LGp0PXtraW5kOiJib29sZWFuIn0sVXQ9e2tpbmQ6ImNvbG9yIn0sVnQ9e2tpbmQ6Im9iamVjdCJ9LEh0PXtraW5kOiJ2YWx1ZSJ9LHF0PXtraW5kOiJjb2xsYXRvciJ9LEd0PXtraW5kOiJmb3JtYXR0ZWQifSxZdD17a2luZDoicmVzb2x2ZWRJbWFnZSJ9O2Z1bmN0aW9uIFd0KHQsZSl7cmV0dXJue2tpbmQ6ImFycmF5IixpdGVtVHlwZTp0LE46ZX19ZnVuY3Rpb24gWHQodCl7aWYoImFycmF5Ij09PXQua2luZCl7dmFyIGU9WHQodC5pdGVtVHlwZSk7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0Lk4/ImFycmF5PCIrZSsiLCAiK3QuTisiPiI6InZhbHVlIj09PXQuaXRlbVR5cGUua2luZD8iYXJyYXkiOiJhcnJheTwiK2UrIj4ifXJldHVybiB0LmtpbmR9dmFyIFp0PVtGdCxCdCxOdCxqdCxVdCxHdCxWdCxXdChIdCksWXRdO2Z1bmN0aW9uIEp0KHQsZSl7aWYoImVycm9yIj09PWUua2luZClyZXR1cm4gbnVsbDtpZigiYXJyYXkiPT09dC5raW5kKXtpZigiYXJyYXkiPT09ZS5raW5kJiYoMD09PWUuTiYmInZhbHVlIj09PWUuaXRlbVR5cGUua2luZHx8IUp0KHQuaXRlbVR5cGUsZS5pdGVtVHlwZSkpJiYoIm51bWJlciIhPXR5cGVvZiB0Lk58fHQuTj09PWUuTikpcmV0dXJuIG51bGx9ZWxzZXtpZih0LmtpbmQ9PT1lLmtpbmQpcmV0dXJuIG51bGw7aWYoInZhbHVlIj09PXQua2luZClmb3IodmFyIHI9MCxuPVp0O3I8bi5sZW5ndGg7cis9MSl7aWYoIUp0KG5bcl0sZSkpcmV0dXJuIG51bGx9fXJldHVybiJFeHBlY3RlZCAiK1h0KHQpKyIgYnV0IGZvdW5kICIrWHQoZSkrIiBpbnN0ZWFkLiJ9ZnVuY3Rpb24gS3QodCxlKXtyZXR1cm4gZS5zb21lKChmdW5jdGlvbihlKXtyZXR1cm4gZS5raW5kPT09dC5raW5kfSkpfWZ1bmN0aW9uIFF0KHQsZSl7cmV0dXJuIGUuc29tZSgoZnVuY3Rpb24oZSl7cmV0dXJuIm51bGwiPT09ZT9udWxsPT09dDoiYXJyYXkiPT09ZT9BcnJheS5pc0FycmF5KHQpOiJvYmplY3QiPT09ZT90JiYhQXJyYXkuaXNBcnJheSh0KSYmIm9iamVjdCI9PXR5cGVvZiB0OmU9PT10eXBlb2YgdH0pKX12YXIgJHQ9ZSgoZnVuY3Rpb24odCxlKXt2YXIgcj17dHJhbnNwYXJlbnQ6WzAsMCwwLDBdLGFsaWNlYmx1ZTpbMjQwLDI0OCwyNTUsMV0sYW50aXF1ZXdoaXRlOlsyNTAsMjM1LDIxNSwxXSxhcXVhOlswLDI1NSwyNTUsMV0sYXF1YW1hcmluZTpbMTI3LDI1NSwyMTIsMV0sYXp1cmU6WzI0MCwyNTUsMjU1LDFdLGJlaWdlOlsyNDUsMjQ1LDIyMCwxXSxiaXNxdWU6WzI1NSwyMjgsMTk2LDFdLGJsYWNrOlswLDAsMCwxXSxibGFuY2hlZGFsbW9uZDpbMjU1LDIzNSwyMDUsMV0sYmx1ZTpbMCwwLDI1NSwxXSxibHVldmlvbGV0OlsxMzgsNDMsMjI2LDFdLGJyb3duOlsxNjUsNDIsNDIsMV0sYnVybHl3b29kOlsyMjIsMTg0LDEzNSwxXSxjYWRldGJsdWU6Wzk1LDE1OCwxNjAsMV0sY2hhcnRyZXVzZTpbMTI3LDI1NSwwLDFdLGNob2NvbGF0ZTpbMjEwLDEwNSwzMCwxXSxjb3JhbDpbMjU1LDEyNyw4MCwxXSxjb3JuZmxvd2VyYmx1ZTpbMTAwLDE0OSwyMzcsMV0sY29ybnNpbGs6WzI1NSwyNDgsMjIwLDFdLGNyaW1zb246WzIyMCwyMCw2MCwxXSxjeWFuOlswLDI1NSwyNTUsMV0sZGFya2JsdWU6WzAsMCwxMzksMV0sZGFya2N5YW46WzAsMTM5LDEzOSwxXSxkYXJrZ29sZGVucm9kOlsxODQsMTM0LDExLDFdLGRhcmtncmF5OlsxNjksMTY5LDE2OSwxXSxkYXJrZ3JlZW46WzAsMTAwLDAsMV0sZGFya2dyZXk6WzE2OSwxNjksMTY5LDFdLGRhcmtraGFraTpbMTg5LDE4MywxMDcsMV0sZGFya21hZ2VudGE6WzEzOSwwLDEzOSwxXSxkYXJrb2xpdmVncmVlbjpbODUsMTA3LDQ3LDFdLGRhcmtvcmFuZ2U6WzI1NSwxNDAsMCwxXSxkYXJrb3JjaGlkOlsxNTMsNTAsMjA0LDFdLGRhcmtyZWQ6WzEzOSwwLDAsMV0sZGFya3NhbG1vbjpbMjMzLDE1MCwxMjIsMV0sZGFya3NlYWdyZWVuOlsxNDMsMTg4LDE0MywxXSxkYXJrc2xhdGVibHVlOls3Miw2MSwxMzksMV0sZGFya3NsYXRlZ3JheTpbNDcsNzksNzksMV0sZGFya3NsYXRlZ3JleTpbNDcsNzksNzksMV0sZGFya3R1cnF1b2lzZTpbMCwyMDYsMjA5LDFdLGRhcmt2aW9sZXQ6WzE0OCwwLDIxMSwxXSxkZWVwcGluazpbMjU1LDIwLDE0NywxXSxkZWVwc2t5Ymx1ZTpbMCwxOTEsMjU1LDFdLGRpbWdyYXk6WzEwNSwxMDUsMTA1LDFdLGRpbWdyZXk6WzEwNSwxMDUsMTA1LDFdLGRvZGdlcmJsdWU6WzMwLDE0NCwyNTUsMV0sZmlyZWJyaWNrOlsxNzgsMzQsMzQsMV0sZmxvcmFsd2hpdGU6WzI1NSwyNTAsMjQwLDFdLGZvcmVzdGdyZWVuOlszNCwxMzksMzQsMV0sZnVjaHNpYTpbMjU1LDAsMjU1LDFdLGdhaW5zYm9ybzpbMjIwLDIyMCwyMjAsMV0sZ2hvc3R3aGl0ZTpbMjQ4LDI0OCwyNTUsMV0sZ29sZDpbMjU1LDIxNSwwLDFdLGdvbGRlbnJvZDpbMjE4LDE2NSwzMiwxXSxncmF5OlsxMjgsMTI4LDEyOCwxXSxncmVlbjpbMCwxMjgsMCwxXSxncmVlbnllbGxvdzpbMTczLDI1NSw0NywxXSxncmV5OlsxMjgsMTI4LDEyOCwxXSxob25leWRldzpbMjQwLDI1NSwyNDAsMV0saG90cGluazpbMjU1LDEwNSwxODAsMV0saW5kaWFucmVkOlsyMDUsOTIsOTIsMV0saW5kaWdvOls3NSwwLDEzMCwxXSxpdm9yeTpbMjU1LDI1NSwyNDAsMV0sa2hha2k6WzI0MCwyMzAsMTQwLDFdLGxhdmVuZGVyOlsyMzAsMjMwLDI1MCwxXSxsYXZlbmRlcmJsdXNoOlsyNTUsMjQwLDI0NSwxXSxsYXduZ3JlZW46WzEyNCwyNTIsMCwxXSxsZW1vbmNoaWZmb246WzI1NSwyNTAsMjA1LDFdLGxpZ2h0Ymx1ZTpbMTczLDIxNiwyMzAsMV0sbGlnaHRjb3JhbDpbMjQwLDEyOCwxMjgsMV0sbGlnaHRjeWFuOlsyMjQsMjU1LDI1NSwxXSxsaWdodGdvbGRlbnJvZHllbGxvdzpbMjUwLDI1MCwyMTAsMV0sbGlnaHRncmF5OlsyMTEsMjExLDIxMSwxXSxsaWdodGdyZWVuOlsxNDQsMjM4LDE0NCwxXSxsaWdodGdyZXk6WzIxMSwyMTEsMjExLDFdLGxpZ2h0cGluazpbMjU1LDE4MiwxOTMsMV0sbGlnaHRzYWxtb246WzI1NSwxNjAsMTIyLDFdLGxpZ2h0c2VhZ3JlZW46WzMyLDE3OCwxNzAsMV0sbGlnaHRza3libHVlOlsxMzUsMjA2LDI1MCwxXSxsaWdodHNsYXRlZ3JheTpbMTE5LDEzNiwxNTMsMV0sbGlnaHRzbGF0ZWdyZXk6WzExOSwxMzYsMTUzLDFdLGxpZ2h0c3RlZWxibHVlOlsxNzYsMTk2LDIyMiwxXSxsaWdodHllbGxvdzpbMjU1LDI1NSwyMjQsMV0sbGltZTpbMCwyNTUsMCwxXSxsaW1lZ3JlZW46WzUwLDIwNSw1MCwxXSxsaW5lbjpbMjUwLDI0MCwyMzAsMV0sbWFnZW50YTpbMjU1LDAsMjU1LDFdLG1hcm9vbjpbMTI4LDAsMCwxXSxtZWRpdW1hcXVhbWFyaW5lOlsxMDIsMjA1LDE3MCwxXSxtZWRpdW1ibHVlOlswLDAsMjA1LDFdLG1lZGl1bW9yY2hpZDpbMTg2LDg1LDIxMSwxXSxtZWRpdW1wdXJwbGU6WzE0NywxMTIsMjE5LDFdLG1lZGl1bXNlYWdyZWVuOls2MCwxNzksMTEzLDFdLG1lZGl1bXNsYXRlYmx1ZTpbMTIzLDEwNCwyMzgsMV0sbWVkaXVtc3ByaW5nZ3JlZW46WzAsMjUwLDE1NCwxXSxtZWRpdW10dXJxdW9pc2U6WzcyLDIwOSwyMDQsMV0sbWVkaXVtdmlvbGV0cmVkOlsxOTksMjEsMTMzLDFdLG1pZG5pZ2h0Ymx1ZTpbMjUsMjUsMTEyLDFdLG1pbnRjcmVhbTpbMjQ1LDI1NSwyNTAsMV0sbWlzdHlyb3NlOlsyNTUsMjI4LDIyNSwxXSxtb2NjYXNpbjpbMjU1LDIyOCwxODEsMV0sbmF2YWpvd2hpdGU6WzI1NSwyMjIsMTczLDFdLG5hdnk6WzAsMCwxMjgsMV0sb2xkbGFjZTpbMjUzLDI0NSwyMzAsMV0sb2xpdmU6WzEyOCwxMjgsMCwxXSxvbGl2ZWRyYWI6WzEwNywxNDIsMzUsMV0sb3JhbmdlOlsyNTUsMTY1LDAsMV0sb3JhbmdlcmVkOlsyNTUsNjksMCwxXSxvcmNoaWQ6WzIxOCwxMTIsMjE0LDFdLHBhbGVnb2xkZW5yb2Q6WzIzOCwyMzIsMTcwLDFdLHBhbGVncmVlbjpbMTUyLDI1MSwxNTIsMV0scGFsZXR1cnF1b2lzZTpbMTc1LDIzOCwyMzgsMV0scGFsZXZpb2xldHJlZDpbMjE5LDExMiwxNDcsMV0scGFwYXlhd2hpcDpbMjU1LDIzOSwyMTMsMV0scGVhY2hwdWZmOlsyNTUsMjE4LDE4NSwxXSxwZXJ1OlsyMDUsMTMzLDYzLDFdLHBpbms6WzI1NSwxOTIsMjAzLDFdLHBsdW06WzIyMSwxNjAsMjIxLDFdLHBvd2RlcmJsdWU6WzE3NiwyMjQsMjMwLDFdLHB1cnBsZTpbMTI4LDAsMTI4LDFdLHJlYmVjY2FwdXJwbGU6WzEwMiw1MSwxNTMsMV0scmVkOlsyNTUsMCwwLDFdLHJvc3licm93bjpbMTg4LDE0MywxNDMsMV0scm95YWxibHVlOls2NSwxMDUsMjI1LDFdLHNhZGRsZWJyb3duOlsxMzksNjksMTksMV0sc2FsbW9uOlsyNTAsMTI4LDExNCwxXSxzYW5keWJyb3duOlsyNDQsMTY0LDk2LDFdLHNlYWdyZWVuOls0NiwxMzksODcsMV0sc2Vhc2hlbGw6WzI1NSwyNDUsMjM4LDFdLHNpZW5uYTpbMTYwLDgyLDQ1LDFdLHNpbHZlcjpbMTkyLDE5MiwxOTIsMV0sc2t5Ymx1ZTpbMTM1LDIwNiwyMzUsMV0sc2xhdGVibHVlOlsxMDYsOTAsMjA1LDFdLHNsYXRlZ3JheTpbMTEyLDEyOCwxNDQsMV0sc2xhdGVncmV5OlsxMTIsMTI4LDE0NCwxXSxzbm93OlsyNTUsMjUwLDI1MCwxXSxzcHJpbmdncmVlbjpbMCwyNTUsMTI3LDFdLHN0ZWVsYmx1ZTpbNzAsMTMwLDE4MCwxXSx0YW46WzIxMCwxODAsMTQwLDFdLHRlYWw6WzAsMTI4LDEyOCwxXSx0aGlzdGxlOlsyMTYsMTkxLDIxNiwxXSx0b21hdG86WzI1NSw5OSw3MSwxXSx0dXJxdW9pc2U6WzY0LDIyNCwyMDgsMV0sdmlvbGV0OlsyMzgsMTMwLDIzOCwxXSx3aGVhdDpbMjQ1LDIyMiwxNzksMV0sd2hpdGU6WzI1NSwyNTUsMjU1LDFdLHdoaXRlc21va2U6WzI0NSwyNDUsMjQ1LDFdLHllbGxvdzpbMjU1LDI1NSwwLDFdLHllbGxvd2dyZWVuOlsxNTQsMjA1LDUwLDFdfTtmdW5jdGlvbiBuKHQpe3JldHVybih0PU1hdGgucm91bmQodCkpPDA/MDp0PjI1NT8yNTU6dH1mdW5jdGlvbiBpKHQpe3JldHVybiB0PDA/MDp0PjE/MTp0fWZ1bmN0aW9uIGEodCl7cmV0dXJuIiUiPT09dFt0Lmxlbmd0aC0xXT9uKHBhcnNlRmxvYXQodCkvMTAwKjI1NSk6bihwYXJzZUludCh0KSl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4iJSI9PT10W3QubGVuZ3RoLTFdP2kocGFyc2VGbG9hdCh0KS8xMDApOmkocGFyc2VGbG9hdCh0KSl9ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJuIHI8MD9yKz0xOnI+MSYmKHItPTEpLDYqcjwxP3QrKGUtdCkqcio2OjIqcjwxP2U6MypyPDI/dCsoZS10KSooMi8zLXIpKjY6dH10cnl7ZS5wYXJzZUNTU0NvbG9yPWZ1bmN0aW9uKHQpe3ZhciBlLGk9dC5yZXBsYWNlKC8gL2csIiIpLnRvTG93ZXJDYXNlKCk7aWYoaSBpbiByKXJldHVybiByW2ldLnNsaWNlKCk7aWYoIiMiPT09aVswXSlyZXR1cm4gND09PWkubGVuZ3RoPyhlPXBhcnNlSW50KGkuc3Vic3RyKDEpLDE2KSk+PTAmJmU8PTQwOTU/WygzODQwJmUpPj40fCgzODQwJmUpPj44LDI0MCZlfCgyNDAmZSk+PjQsMTUmZXwoMTUmZSk8PDQsMV06bnVsbDo3PT09aS5sZW5ndGgmJihlPXBhcnNlSW50KGkuc3Vic3RyKDEpLDE2KSk+PTAmJmU8PTE2Nzc3MjE1P1soMTY3MTE2ODAmZSk+PjE2LCg2NTI4MCZlKT4+OCwyNTUmZSwxXTpudWxsO3ZhciBsPWkuaW5kZXhPZigiKCIpLGM9aS5pbmRleE9mKCIpIik7aWYoLTEhPT1sJiZjKzE9PT1pLmxlbmd0aCl7dmFyIHU9aS5zdWJzdHIoMCxsKSxmPWkuc3Vic3RyKGwrMSxjLShsKzEpKS5zcGxpdCgiLCIpLGg9MTtzd2l0Y2godSl7Y2FzZSJyZ2JhIjppZig0IT09Zi5sZW5ndGgpcmV0dXJuIG51bGw7aD1vKGYucG9wKCkpO2Nhc2UicmdiIjpyZXR1cm4gMyE9PWYubGVuZ3RoP251bGw6W2EoZlswXSksYShmWzFdKSxhKGZbMl0pLGhdO2Nhc2UiaHNsYSI6aWYoNCE9PWYubGVuZ3RoKXJldHVybiBudWxsO2g9byhmLnBvcCgpKTtjYXNlImhzbCI6aWYoMyE9PWYubGVuZ3RoKXJldHVybiBudWxsO3ZhciBwPShwYXJzZUZsb2F0KGZbMF0pJTM2MCszNjApJTM2MC8zNjAsZD1vKGZbMV0pLG09byhmWzJdKSxnPW08PS41P20qKGQrMSk6bStkLW0qZCx2PTIqbS1nO3JldHVybltuKDI1NSpzKHYsZyxwKzEvMykpLG4oMjU1KnModixnLHApKSxuKDI1NSpzKHYsZyxwLTEvMykpLGhdO2RlZmF1bHQ6cmV0dXJuIG51bGx9fXJldHVybiBudWxsfX1jYXRjaCh0KXt9fSkpLnBhcnNlQ1NTQ29sb3IsdGU9ZnVuY3Rpb24odCxlLHIsbil7dm9pZCAwPT09biYmKG49MSksdGhpcy5yPXQsdGhpcy5nPWUsdGhpcy5iPXIsdGhpcy5hPW59O3RlLnBhcnNlPWZ1bmN0aW9uKHQpe2lmKHQpe2lmKHQgaW5zdGFuY2VvZiB0ZSlyZXR1cm4gdDtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciBlPSR0KHQpO2lmKGUpcmV0dXJuIG5ldyB0ZShlWzBdLzI1NSplWzNdLGVbMV0vMjU1KmVbM10sZVsyXS8yNTUqZVszXSxlWzNdKX19fSx0ZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRvQXJyYXkoKSxlPXRbMF0scj10WzFdLG49dFsyXSxpPXRbM107cmV0dXJuInJnYmEoIitNYXRoLnJvdW5kKGUpKyIsIitNYXRoLnJvdW5kKHIpKyIsIitNYXRoLnJvdW5kKG4pKyIsIitpKyIpIn0sdGUucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnIsZT10aGlzLmcscj10aGlzLmIsbj10aGlzLmE7cmV0dXJuIDA9PT1uP1swLDAsMCwwXTpbMjU1KnQvbiwyNTUqZS9uLDI1NSpyL24sbl19LHRlLmJsYWNrPW5ldyB0ZSgwLDAsMCwxKSx0ZS53aGl0ZT1uZXcgdGUoMSwxLDEsMSksdGUudHJhbnNwYXJlbnQ9bmV3IHRlKDAsMCwwLDApLHRlLnJlZD1uZXcgdGUoMSwwLDAsMSk7dmFyIGVlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnNlbnNpdGl2aXR5PXQ/ZT8idmFyaWFudCI6ImNhc2UiOmU/ImFjY2VudCI6ImJhc2UiLHRoaXMubG9jYWxlPXIsdGhpcy5jb2xsYXRvcj1uZXcgSW50bC5Db2xsYXRvcih0aGlzLmxvY2FsZT90aGlzLmxvY2FsZTpbXSx7c2Vuc2l0aXZpdHk6dGhpcy5zZW5zaXRpdml0eSx1c2FnZToic2VhcmNoIn0pfTtlZS5wcm90b3R5cGUuY29tcGFyZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmNvbGxhdG9yLmNvbXBhcmUodCxlKX0sZWUucHJvdG90eXBlLnJlc29sdmVkTG9jYWxlPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBJbnRsLkNvbGxhdG9yKHRoaXMubG9jYWxlP3RoaXMubG9jYWxlOltdKS5yZXNvbHZlZE9wdGlvbnMoKS5sb2NhbGV9O3ZhciByZT1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMudGV4dD10LHRoaXMuaW1hZ2U9ZSx0aGlzLnNjYWxlPXIsdGhpcy5mb250U3RhY2s9bix0aGlzLnRleHRDb2xvcj1pfSxuZT1mdW5jdGlvbih0KXt0aGlzLnNlY3Rpb25zPXR9O25lLmZyb21TdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBuZShbbmV3IHJlKHQsbnVsbCxudWxsLG51bGwsbnVsbCldKX0sbmUucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2VjdGlvbnMubGVuZ3RofHwhdGhpcy5zZWN0aW9ucy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXQudGV4dC5sZW5ndGh8fHQuaW1hZ2UmJjAhPT10LmltYWdlLm5hbWUubGVuZ3RofSkpfSxuZS5mYWN0b3J5PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgbmU/dDpuZS5mcm9tU3RyaW5nKHQpfSxuZS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMuc2VjdGlvbnMubGVuZ3RoPyIiOnRoaXMuc2VjdGlvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC50ZXh0fSkpLmpvaW4oIiIpfSxuZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVsiZm9ybWF0Il0sZT0wLHI9dGhpcy5zZWN0aW9ucztlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07aWYobi5pbWFnZSl0LnB1c2goWyJpbWFnZSIsbi5pbWFnZS5uYW1lXSk7ZWxzZXt0LnB1c2gobi50ZXh0KTt2YXIgaT17fTtuLmZvbnRTdGFjayYmKGlbInRleHQtZm9udCJdPVsibGl0ZXJhbCIsbi5mb250U3RhY2suc3BsaXQoIiwiKV0pLG4uc2NhbGUmJihpWyJmb250LXNjYWxlIl09bi5zY2FsZSksbi50ZXh0Q29sb3ImJihpWyJ0ZXh0LWNvbG9yIl09WyJyZ2JhIl0uY29uY2F0KG4udGV4dENvbG9yLnRvQXJyYXkoKSkpLHQucHVzaChpKX19cmV0dXJuIHR9O3ZhciBpZT1mdW5jdGlvbih0KXt0aGlzLm5hbWU9dC5uYW1lLHRoaXMuYXZhaWxhYmxlPXQuYXZhaWxhYmxlfTtmdW5jdGlvbiBhZSh0LGUscixuKXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTAmJnQ8PTI1NSYmIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wJiZlPD0yNTUmJiJudW1iZXIiPT10eXBlb2YgciYmcj49MCYmcjw9MjU1P3ZvaWQgMD09PW58fCJudW1iZXIiPT10eXBlb2YgbiYmbj49MCYmbjw9MT9udWxsOiJJbnZhbGlkIHJnYmEgdmFsdWUgWyIrW3QsZSxyLG5dLmpvaW4oIiwgIikrIl06ICdhJyBtdXN0IGJlIGJldHdlZW4gMCBhbmQgMS4iOiJJbnZhbGlkIHJnYmEgdmFsdWUgWyIrKCJudW1iZXIiPT10eXBlb2Ygbj9bdCxlLHIsbl06W3QsZSxyXSkuam9pbigiLCAiKSsiXTogJ3InLCAnZycsIGFuZCAnYicgbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDI1NS4ifWZ1bmN0aW9uIG9lKHQpe2lmKG51bGw9PT10KXJldHVybiEwO2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4hMDtpZigiYm9vbGVhbiI9PXR5cGVvZiB0KXJldHVybiEwO2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4hMDtpZih0IGluc3RhbmNlb2YgdGUpcmV0dXJuITA7aWYodCBpbnN0YW5jZW9mIGVlKXJldHVybiEwO2lmKHQgaW5zdGFuY2VvZiBuZSlyZXR1cm4hMDtpZih0IGluc3RhbmNlb2YgaWUpcmV0dXJuITA7aWYoQXJyYXkuaXNBcnJheSh0KSl7Zm9yKHZhciBlPTAscj10O2U8ci5sZW5ndGg7ZSs9MSl7aWYoIW9lKHJbZV0pKXJldHVybiExfXJldHVybiEwfWlmKCJvYmplY3QiPT10eXBlb2YgdCl7Zm9yKHZhciBuIGluIHQpaWYoIW9lKHRbbl0pKXJldHVybiExO3JldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHNlKHQpe2lmKG51bGw9PT10KXJldHVybiBGdDtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIE50O2lmKCJib29sZWFuIj09dHlwZW9mIHQpcmV0dXJuIGp0O2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gQnQ7aWYodCBpbnN0YW5jZW9mIHRlKXJldHVybiBVdDtpZih0IGluc3RhbmNlb2YgZWUpcmV0dXJuIHF0O2lmKHQgaW5zdGFuY2VvZiBuZSlyZXR1cm4gR3Q7aWYodCBpbnN0YW5jZW9mIGllKXJldHVybiBZdDtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIGUscj10Lmxlbmd0aCxuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9c2UoaVtuXSk7aWYoZSl7aWYoZT09PWEpY29udGludWU7ZT1IdDticmVha31lPWF9cmV0dXJuIFd0KGV8fEh0LHIpfXJldHVybiBWdH1mdW5jdGlvbiBsZSh0KXt2YXIgZT10eXBlb2YgdDtyZXR1cm4gbnVsbD09PXQ/IiI6InN0cmluZyI9PT1lfHwibnVtYmVyIj09PWV8fCJib29sZWFuIj09PWU/U3RyaW5nKHQpOnQgaW5zdGFuY2VvZiB0ZXx8dCBpbnN0YW5jZW9mIG5lfHx0IGluc3RhbmNlb2YgaWU/dC50b1N0cmluZygpOkpTT04uc3RyaW5naWZ5KHQpfWllLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm5hbWV9LGllLmZyb21TdHJpbmc9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/bmV3IGllKHtuYW1lOnQsYXZhaWxhYmxlOiExfSk6bnVsbH0saWUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVyblsiaW1hZ2UiLHRoaXMubmFtZV19O3ZhciBjZT1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT10LHRoaXMudmFsdWU9ZX07Y2UucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIidsaXRlcmFsJyBleHByZXNzaW9uIHJlcXVpcmVzIGV4YWN0bHkgb25lIGFyZ3VtZW50LCBidXQgZm91bmQgIisodC5sZW5ndGgtMSkrIiBpbnN0ZWFkLiIpO2lmKCFvZSh0WzFdKSlyZXR1cm4gZS5lcnJvcigiaW52YWxpZCB2YWx1ZSIpO3ZhciByPXRbMV0sbj1zZShyKSxpPWUuZXhwZWN0ZWRUeXBlO3JldHVybiJhcnJheSIhPT1uLmtpbmR8fDAhPT1uLk58fCFpfHwiYXJyYXkiIT09aS5raW5kfHwibnVtYmVyIj09dHlwZW9mIGkuTiYmMCE9PWkuTnx8KG49aSksbmV3IGNlKG4scil9LGNlLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZhbHVlfSxjZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKCl7fSxjZS5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiEwfSxjZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuImFycmF5Ij09PXRoaXMudHlwZS5raW5kfHwib2JqZWN0Ij09PXRoaXMudHlwZS5raW5kP1sibGl0ZXJhbCIsdGhpcy52YWx1ZV06dGhpcy52YWx1ZSBpbnN0YW5jZW9mIHRlP1sicmdiYSJdLmNvbmNhdCh0aGlzLnZhbHVlLnRvQXJyYXkoKSk6dGhpcy52YWx1ZSBpbnN0YW5jZW9mIG5lP3RoaXMudmFsdWUuc2VyaWFsaXplKCk6dGhpcy52YWx1ZX07dmFyIHVlPWZ1bmN0aW9uKHQpe3RoaXMubmFtZT0iRXhwcmVzc2lvbkV2YWx1YXRpb25FcnJvciIsdGhpcy5tZXNzYWdlPXR9O3VlLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlfTt2YXIgZmU9e3N0cmluZzpOdCxudW1iZXI6QnQsYm9vbGVhbjpqdCxvYmplY3Q6VnR9LGhlPWZ1bmN0aW9uKHQsZSl7dGhpcy50eXBlPXQsdGhpcy5hcmdzPWV9O2hlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MilyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGFyZ3VtZW50LiIpO3ZhciByLG49MSxpPXRbMF07aWYoImFycmF5Ij09PWkpe3ZhciBhLG87aWYodC5sZW5ndGg+Mil7dmFyIHM9dFsxXTtpZigic3RyaW5nIiE9dHlwZW9mIHN8fCEocyBpbiBmZSl8fCJvYmplY3QiPT09cylyZXR1cm4gZS5lcnJvcignVGhlIGl0ZW0gdHlwZSBhcmd1bWVudCBvZiAiYXJyYXkiIG11c3QgYmUgb25lIG9mIHN0cmluZywgbnVtYmVyLCBib29sZWFuJywxKTthPWZlW3NdLG4rK31lbHNlIGE9SHQ7aWYodC5sZW5ndGg+Myl7aWYobnVsbCE9PXRbMl0mJigibnVtYmVyIiE9dHlwZW9mIHRbMl18fHRbMl08MHx8dFsyXSE9PU1hdGguZmxvb3IodFsyXSkpKXJldHVybiBlLmVycm9yKCdUaGUgbGVuZ3RoIGFyZ3VtZW50IHRvICJhcnJheSIgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXIgbGl0ZXJhbCcsMik7bz10WzJdLG4rK31yPVd0KGEsbyl9ZWxzZSByPWZlW2ldO2Zvcih2YXIgbD1bXTtuPHQubGVuZ3RoO24rKyl7dmFyIGM9ZS5wYXJzZSh0W25dLG4sSHQpO2lmKCFjKXJldHVybiBudWxsO2wucHVzaChjKX1yZXR1cm4gbmV3IGhlKHIsbCl9LGhlLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHRoaXMuYXJncy5sZW5ndGg7ZSsrKXt2YXIgcj10aGlzLmFyZ3NbZV0uZXZhbHVhdGUodCk7aWYoIUp0KHRoaXMudHlwZSxzZShyKSkpcmV0dXJuIHI7aWYoZT09PXRoaXMuYXJncy5sZW5ndGgtMSl0aHJvdyBuZXcgdWUoIkV4cGVjdGVkIHZhbHVlIHRvIGJlIG9mIHR5cGUgIitYdCh0aGlzLnR5cGUpKyIsIGJ1dCBmb3VuZCAiK1h0KHNlKHIpKSsiIGluc3RlYWQuIil9cmV0dXJuIG51bGx9LGhlLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dGhpcy5hcmdzLmZvckVhY2godCl9LGhlLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXJncy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3V0cHV0RGVmaW5lZCgpfSkpfSxoZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50eXBlLGU9W3Qua2luZF07aWYoImFycmF5Ij09PXQua2luZCl7dmFyIHI9dC5pdGVtVHlwZTtpZigic3RyaW5nIj09PXIua2luZHx8Im51bWJlciI9PT1yLmtpbmR8fCJib29sZWFuIj09PXIua2luZCl7ZS5wdXNoKHIua2luZCk7dmFyIG49dC5OOygibnVtYmVyIj09dHlwZW9mIG58fHRoaXMuYXJncy5sZW5ndGg+MSkmJmUucHVzaChuKX19cmV0dXJuIGUuY29uY2F0KHRoaXMuYXJncy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlcmlhbGl6ZSgpfSkpKX07dmFyIHBlPWZ1bmN0aW9uKHQpe3RoaXMudHlwZT1HdCx0aGlzLnNlY3Rpb25zPXR9O3BlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MilyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGFyZ3VtZW50LiIpO3ZhciByPXRbMV07aWYoIUFycmF5LmlzQXJyYXkocikmJiJvYmplY3QiPT10eXBlb2YgcilyZXR1cm4gZS5lcnJvcigiRmlyc3QgYXJndW1lbnQgbXVzdCBiZSBhbiBpbWFnZSBvciB0ZXh0IHNlY3Rpb24uIik7Zm9yKHZhciBuPVtdLGk9ITEsYT0xO2E8PXQubGVuZ3RoLTE7KythKXt2YXIgbz10W2FdO2lmKGkmJiJvYmplY3QiPT10eXBlb2YgbyYmIUFycmF5LmlzQXJyYXkobykpe2k9ITE7dmFyIHM9bnVsbDtpZihvWyJmb250LXNjYWxlIl0mJiEocz1lLnBhcnNlKG9bImZvbnQtc2NhbGUiXSwxLEJ0KSkpcmV0dXJuIG51bGw7dmFyIGw9bnVsbDtpZihvWyJ0ZXh0LWZvbnQiXSYmIShsPWUucGFyc2Uob1sidGV4dC1mb250Il0sMSxXdChOdCkpKSlyZXR1cm4gbnVsbDt2YXIgYz1udWxsO2lmKG9bInRleHQtY29sb3IiXSYmIShjPWUucGFyc2Uob1sidGV4dC1jb2xvciJdLDEsVXQpKSlyZXR1cm4gbnVsbDt2YXIgdT1uW24ubGVuZ3RoLTFdO3Uuc2NhbGU9cyx1LmZvbnQ9bCx1LnRleHRDb2xvcj1jfWVsc2V7dmFyIGY9ZS5wYXJzZSh0W2FdLDEsSHQpO2lmKCFmKXJldHVybiBudWxsO3ZhciBoPWYudHlwZS5raW5kO2lmKCJzdHJpbmciIT09aCYmInZhbHVlIiE9PWgmJiJudWxsIiE9PWgmJiJyZXNvbHZlZEltYWdlIiE9PWgpcmV0dXJuIGUuZXJyb3IoIkZvcm1hdHRlZCB0ZXh0IHR5cGUgbXVzdCBiZSAnc3RyaW5nJywgJ3ZhbHVlJywgJ2ltYWdlJyBvciAnbnVsbCcuIik7aT0hMCxuLnB1c2goe2NvbnRlbnQ6ZixzY2FsZTpudWxsLGZvbnQ6bnVsbCx0ZXh0Q29sb3I6bnVsbH0pfX1yZXR1cm4gbmV3IHBlKG4pfSxwZS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBuZSh0aGlzLnNlY3Rpb25zLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHI9ZS5jb250ZW50LmV2YWx1YXRlKHQpO3JldHVybiBzZShyKT09PVl0P25ldyByZSgiIixyLG51bGwsbnVsbCxudWxsKTpuZXcgcmUobGUociksbnVsbCxlLnNjYWxlP2Uuc2NhbGUuZXZhbHVhdGUodCk6bnVsbCxlLmZvbnQ/ZS5mb250LmV2YWx1YXRlKHQpLmpvaW4oIiwiKTpudWxsLGUudGV4dENvbG9yP2UudGV4dENvbG9yLmV2YWx1YXRlKHQpOm51bGwpfSkpKX0scGUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuc2VjdGlvbnM7ZTxyLmxlbmd0aDtlKz0xKXt2YXIgbj1yW2VdO3Qobi5jb250ZW50KSxuLnNjYWxlJiZ0KG4uc2NhbGUpLG4uZm9udCYmdChuLmZvbnQpLG4udGV4dENvbG9yJiZ0KG4udGV4dENvbG9yKX19LHBlLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHBlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9WyJmb3JtYXQiXSxlPTAscj10aGlzLnNlY3Rpb25zO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTt0LnB1c2gobi5jb250ZW50LnNlcmlhbGl6ZSgpKTt2YXIgaT17fTtuLnNjYWxlJiYoaVsiZm9udC1zY2FsZSJdPW4uc2NhbGUuc2VyaWFsaXplKCkpLG4uZm9udCYmKGlbInRleHQtZm9udCJdPW4uZm9udC5zZXJpYWxpemUoKSksbi50ZXh0Q29sb3ImJihpWyJ0ZXh0LWNvbG9yIl09bi50ZXh0Q29sb3Iuc2VyaWFsaXplKCkpLHQucHVzaChpKX1yZXR1cm4gdH07dmFyIGRlPWZ1bmN0aW9uKHQpe3RoaXMudHlwZT1ZdCx0aGlzLmlucHV0PXR9O2RlLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMiE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCB0d28gYXJndW1lbnRzLiIpO3ZhciByPWUucGFyc2UodFsxXSwxLE50KTtyZXR1cm4gcj9uZXcgZGUocik6ZS5lcnJvcigiTm8gaW1hZ2UgbmFtZSBwcm92aWRlZC4iKX0sZGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXQuZXZhbHVhdGUodCkscj1pZS5mcm9tU3RyaW5nKGUpO3JldHVybiByJiZ0LmF2YWlsYWJsZUltYWdlcyYmKHIuYXZhaWxhYmxlPXQuYXZhaWxhYmxlSW1hZ2VzLmluZGV4T2YoZSk+LTEpLHJ9LGRlLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmlucHV0KX0sZGUucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZGUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVyblsiaW1hZ2UiLHRoaXMuaW5wdXQuc2VyaWFsaXplKCldfTt2YXIgbWU9eyJ0by1ib29sZWFuIjpqdCwidG8tY29sb3IiOlV0LCJ0by1udW1iZXIiOkJ0LCJ0by1zdHJpbmciOk50fSxnZT1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT10LHRoaXMuYXJncz1lfTtnZS5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDIpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IG9uZSBhcmd1bWVudC4iKTt2YXIgcj10WzBdO2lmKCgidG8tYm9vbGVhbiI9PT1yfHwidG8tc3RyaW5nIj09PXIpJiYyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIG9uZSBhcmd1bWVudC4iKTtmb3IodmFyIG49bWVbcl0saT1bXSxhPTE7YTx0Lmxlbmd0aDthKyspe3ZhciBvPWUucGFyc2UodFthXSxhLEh0KTtpZighbylyZXR1cm4gbnVsbDtpLnB1c2gobyl9cmV0dXJuIG5ldyBnZShuLGkpfSxnZS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7aWYoImJvb2xlYW4iPT09dGhpcy50eXBlLmtpbmQpcmV0dXJuIEJvb2xlYW4odGhpcy5hcmdzWzBdLmV2YWx1YXRlKHQpKTtpZigiY29sb3IiPT09dGhpcy50eXBlLmtpbmQpe2Zvcih2YXIgZSxyLG49MCxpPXRoaXMuYXJncztuPGkubGVuZ3RoO24rPTEpe2lmKHI9bnVsbCwoZT1pW25dLmV2YWx1YXRlKHQpKWluc3RhbmNlb2YgdGUpcmV0dXJuIGU7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgYT10LnBhcnNlQ29sb3IoZSk7aWYoYSlyZXR1cm4gYX1lbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkmJiEocj1lLmxlbmd0aDwzfHxlLmxlbmd0aD40PyJJbnZhbGlkIHJiZ2EgdmFsdWUgIitKU09OLnN0cmluZ2lmeShlKSsiOiBleHBlY3RlZCBhbiBhcnJheSBjb250YWluaW5nIGVpdGhlciB0aHJlZSBvciBmb3VyIG51bWVyaWMgdmFsdWVzLiI6YWUoZVswXSxlWzFdLGVbMl0sZVszXSkpKXJldHVybiBuZXcgdGUoZVswXS8yNTUsZVsxXS8yNTUsZVsyXS8yNTUsZVszXSl9dGhyb3cgbmV3IHVlKHJ8fCJDb3VsZCBub3QgcGFyc2UgY29sb3IgZnJvbSB2YWx1ZSAnIisoInN0cmluZyI9PXR5cGVvZiBlP2U6U3RyaW5nKEpTT04uc3RyaW5naWZ5KGUpKSkrIiciKX1pZigibnVtYmVyIj09PXRoaXMudHlwZS5raW5kKXtmb3IodmFyIG89bnVsbCxzPTAsbD10aGlzLmFyZ3M7czxsLmxlbmd0aDtzKz0xKXtpZihudWxsPT09KG89bFtzXS5ldmFsdWF0ZSh0KSkpcmV0dXJuIDA7dmFyIGM9TnVtYmVyKG8pO2lmKCFpc05hTihjKSlyZXR1cm4gY310aHJvdyBuZXcgdWUoIkNvdWxkIG5vdCBjb252ZXJ0ICIrSlNPTi5zdHJpbmdpZnkobykrIiB0byBudW1iZXIuIil9cmV0dXJuImZvcm1hdHRlZCI9PT10aGlzLnR5cGUua2luZD9uZS5mcm9tU3RyaW5nKGxlKHRoaXMuYXJnc1swXS5ldmFsdWF0ZSh0KSkpOiJyZXNvbHZlZEltYWdlIj09PXRoaXMudHlwZS5raW5kP2llLmZyb21TdHJpbmcobGUodGhpcy5hcmdzWzBdLmV2YWx1YXRlKHQpKSk6bGUodGhpcy5hcmdzWzBdLmV2YWx1YXRlKHQpKX0sZ2UucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0aGlzLmFyZ3MuZm9yRWFjaCh0KX0sZ2UucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5hcmdzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5vdXRwdXREZWZpbmVkKCl9KSl9LGdlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtpZigiZm9ybWF0dGVkIj09PXRoaXMudHlwZS5raW5kKXJldHVybiBuZXcgcGUoW3tjb250ZW50OnRoaXMuYXJnc1swXSxzY2FsZTpudWxsLGZvbnQ6bnVsbCx0ZXh0Q29sb3I6bnVsbH1dKS5zZXJpYWxpemUoKTtpZigicmVzb2x2ZWRJbWFnZSI9PT10aGlzLnR5cGUua2luZClyZXR1cm4gbmV3IGRlKHRoaXMuYXJnc1swXSkuc2VyaWFsaXplKCk7dmFyIHQ9WyJ0by0iK3RoaXMudHlwZS5raW5kXTtyZXR1cm4gdGhpcy5lYWNoQ2hpbGQoKGZ1bmN0aW9uKGUpe3QucHVzaChlLnNlcmlhbGl6ZSgpKX0pKSx0fTt2YXIgdmU9WyJVbmtub3duIiwiUG9pbnQiLCJMaW5lU3RyaW5nIiwiUG9seWdvbiJdLHllPWZ1bmN0aW9uKCl7dGhpcy5nbG9iYWxzPW51bGwsdGhpcy5mZWF0dXJlPW51bGwsdGhpcy5mZWF0dXJlU3RhdGU9bnVsbCx0aGlzLmZvcm1hdHRlZFNlY3Rpb249bnVsbCx0aGlzLl9wYXJzZUNvbG9yQ2FjaGU9e30sdGhpcy5hdmFpbGFibGVJbWFnZXM9bnVsbCx0aGlzLmNhbm9uaWNhbD1udWxsfTt5ZS5wcm90b3R5cGUuaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mZWF0dXJlJiYiaWQiaW4gdGhpcy5mZWF0dXJlP3RoaXMuZmVhdHVyZS5pZDpudWxsfSx5ZS5wcm90b3R5cGUuZ2VvbWV0cnlUeXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmVhdHVyZT8ibnVtYmVyIj09dHlwZW9mIHRoaXMuZmVhdHVyZS50eXBlP3ZlW3RoaXMuZmVhdHVyZS50eXBlXTp0aGlzLmZlYXR1cmUudHlwZTpudWxsfSx5ZS5wcm90b3R5cGUuZ2VvbWV0cnk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5mZWF0dXJlJiYiZ2VvbWV0cnkiaW4gdGhpcy5mZWF0dXJlP3RoaXMuZmVhdHVyZS5nZW9tZXRyeTpudWxsfSx5ZS5wcm90b3R5cGUuY2Fub25pY2FsSUQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jYW5vbmljYWx9LHllLnByb3RvdHlwZS5wcm9wZXJ0aWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmVhdHVyZSYmdGhpcy5mZWF0dXJlLnByb3BlcnRpZXN8fHt9fSx5ZS5wcm90b3R5cGUucGFyc2VDb2xvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl9wYXJzZUNvbG9yQ2FjaGVbdF07cmV0dXJuIGV8fChlPXRoaXMuX3BhcnNlQ29sb3JDYWNoZVt0XT10ZS5wYXJzZSh0KSksZX07dmFyIHhlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMubmFtZT10LHRoaXMudHlwZT1lLHRoaXMuX2V2YWx1YXRlPXIsdGhpcy5hcmdzPW59O3hlLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fZXZhbHVhdGUodCx0aGlzLmFyZ3MpfSx4ZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuYXJncy5mb3JFYWNoKHQpfSx4ZS5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiExfSx4ZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMubmFtZV0uY29uY2F0KHRoaXMuYXJncy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNlcmlhbGl6ZSgpfSkpKX0seGUucGFyc2U9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXRbMF0saT14ZS5kZWZpbml0aW9uc1tuXTtpZighaSlyZXR1cm4gZS5lcnJvcignVW5rbm93biBleHByZXNzaW9uICInK24rJyIuIElmIHlvdSB3YW50ZWQgYSBsaXRlcmFsIGFycmF5LCB1c2UgWyJsaXRlcmFsIiwgWy4uLl1dLicsMCk7Zm9yKHZhciBhPUFycmF5LmlzQXJyYXkoaSk/aVswXTppLnR5cGUsbz1BcnJheS5pc0FycmF5KGkpP1tbaVsxXSxpWzJdXV06aS5vdmVybG9hZHMscz1vLmZpbHRlcigoZnVuY3Rpb24oZSl7dmFyIHI9ZVswXTtyZXR1cm4hQXJyYXkuaXNBcnJheShyKXx8ci5sZW5ndGg9PT10Lmxlbmd0aC0xfSkpLGw9bnVsbCxjPTAsdT1zO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGY9dVtjXSxoPWZbMF0scD1mWzFdO2w9bmV3IFVlKGUucmVnaXN0cnksZS5wYXRoLG51bGwsZS5zY29wZSk7Zm9yKHZhciBkPVtdLG09ITEsZz0xO2c8dC5sZW5ndGg7ZysrKXt2YXIgdj10W2ddLHk9QXJyYXkuaXNBcnJheShoKT9oW2ctMV06aC50eXBlLHg9bC5wYXJzZSh2LDErZC5sZW5ndGgseSk7aWYoIXgpe209ITA7YnJlYWt9ZC5wdXNoKHgpfWlmKCFtKWlmKEFycmF5LmlzQXJyYXkoaCkmJmgubGVuZ3RoIT09ZC5sZW5ndGgpbC5lcnJvcigiRXhwZWN0ZWQgIitoLmxlbmd0aCsiIGFyZ3VtZW50cywgYnV0IGZvdW5kICIrZC5sZW5ndGgrIiBpbnN0ZWFkLiIpO2Vsc2V7Zm9yKHZhciBiPTA7YjxkLmxlbmd0aDtiKyspe3ZhciBfPUFycmF5LmlzQXJyYXkoaCk/aFtiXTpoLnR5cGUsdz1kW2JdO2wuY29uY2F0KGIrMSkuY2hlY2tTdWJ0eXBlKF8sdy50eXBlKX1pZigwPT09bC5lcnJvcnMubGVuZ3RoKXJldHVybiBuZXcgeGUobixhLHAsZCl9fWlmKDE9PT1zLmxlbmd0aCkocj1lLmVycm9ycykucHVzaC5hcHBseShyLGwuZXJyb3JzKTtlbHNle2Zvcih2YXIgVD0ocy5sZW5ndGg/czpvKS5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlLHI9dFswXTtyZXR1cm4gZT1yLEFycmF5LmlzQXJyYXkoZSk/IigiK2UubWFwKFh0KS5qb2luKCIsICIpKyIpIjoiKCIrWHQoZS50eXBlKSsiLi4uKSJ9KSkuam9pbigiIHwgIiksaz1bXSxBPTE7QTx0Lmxlbmd0aDtBKyspe3ZhciBNPWUucGFyc2UodFtBXSwxK2subGVuZ3RoKTtpZighTSlyZXR1cm4gbnVsbDtrLnB1c2goWHQoTS50eXBlKSl9ZS5lcnJvcigiRXhwZWN0ZWQgYXJndW1lbnRzIG9mIHR5cGUgIitUKyIsIGJ1dCBmb3VuZCAoIitrLmpvaW4oIiwgIikrIikgaW5zdGVhZC4iKX1yZXR1cm4gbnVsbH0seGUucmVnaXN0ZXI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4geGUuZGVmaW5pdGlvbnM9ZSxlKXRbcl09eGV9O3ZhciBiZT1mdW5jdGlvbih0LGUscil7dGhpcy50eXBlPXF0LHRoaXMubG9jYWxlPXIsdGhpcy5jYXNlU2Vuc2l0aXZlPXQsdGhpcy5kaWFjcml0aWNTZW5zaXRpdmU9ZX07YmUucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIG9uZSBhcmd1bWVudC4iKTt2YXIgcj10WzFdO2lmKCJvYmplY3QiIT10eXBlb2Ygcnx8QXJyYXkuaXNBcnJheShyKSlyZXR1cm4gZS5lcnJvcigiQ29sbGF0b3Igb3B0aW9ucyBhcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdC4iKTt2YXIgbj1lLnBhcnNlKHZvaWQgMCE9PXJbImNhc2Utc2Vuc2l0aXZlIl0mJnJbImNhc2Utc2Vuc2l0aXZlIl0sMSxqdCk7aWYoIW4pcmV0dXJuIG51bGw7dmFyIGk9ZS5wYXJzZSh2b2lkIDAhPT1yWyJkaWFjcml0aWMtc2Vuc2l0aXZlIl0mJnJbImRpYWNyaXRpYy1zZW5zaXRpdmUiXSwxLGp0KTtpZighaSlyZXR1cm4gbnVsbDt2YXIgYT1udWxsO3JldHVybiByLmxvY2FsZSYmIShhPWUucGFyc2Uoci5sb2NhbGUsMSxOdCkpP251bGw6bmV3IGJlKG4saSxhKX0sYmUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZWUodGhpcy5jYXNlU2Vuc2l0aXZlLmV2YWx1YXRlKHQpLHRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlLmV2YWx1YXRlKHQpLHRoaXMubG9jYWxlP3RoaXMubG9jYWxlLmV2YWx1YXRlKHQpOm51bGwpfSxiZS5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5jYXNlU2Vuc2l0aXZlKSx0KHRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlKSx0aGlzLmxvY2FsZSYmdCh0aGlzLmxvY2FsZSl9LGJlLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGJlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD17fTtyZXR1cm4gdFsiY2FzZS1zZW5zaXRpdmUiXT10aGlzLmNhc2VTZW5zaXRpdmUuc2VyaWFsaXplKCksdFsiZGlhY3JpdGljLXNlbnNpdGl2ZSJdPXRoaXMuZGlhY3JpdGljU2Vuc2l0aXZlLnNlcmlhbGl6ZSgpLHRoaXMubG9jYWxlJiYodC5sb2NhbGU9dGhpcy5sb2NhbGUuc2VyaWFsaXplKCkpLFsiY29sbGF0b3IiLHRdfTtmdW5jdGlvbiBfZSh0LGUpe3RbMF09TWF0aC5taW4odFswXSxlWzBdKSx0WzFdPU1hdGgubWluKHRbMV0sZVsxXSksdFsyXT1NYXRoLm1heCh0WzJdLGVbMF0pLHRbM109TWF0aC5tYXgodFszXSxlWzFdKX1mdW5jdGlvbiB3ZSh0LGUpe3JldHVybiEodFswXTw9ZVswXSkmJighKHRbMl0+PWVbMl0pJiYoISh0WzFdPD1lWzFdKSYmISh0WzNdPj1lWzNdKSkpfWZ1bmN0aW9uIFRlKHQsZSl7dmFyIHIsbj0oMTgwK3RbMF0pLzM2MCxpPShyPXRbMV0sKDE4MC0xODAvTWF0aC5QSSpNYXRoLmxvZyhNYXRoLnRhbihNYXRoLlBJLzQrcipNYXRoLlBJLzM2MCkpKS8zNjApLGE9TWF0aC5wb3coMixlLnopO3JldHVybltNYXRoLnJvdW5kKG4qYSo4MTkyKSxNYXRoLnJvdW5kKGkqYSo4MTkyKV19ZnVuY3Rpb24ga2UodCxlLHIpe3JldHVybiBlWzFdPnRbMV0hPXJbMV0+dFsxXSYmdFswXTwoclswXS1lWzBdKSoodFsxXS1lWzFdKS8oclsxXS1lWzFdKStlWzBdfWZ1bmN0aW9uIEFlKHQsZSl7Zm9yKHZhciByLG4saSxhLG8scyxsLGM9ITEsdT0wLGY9ZS5sZW5ndGg7dTxmO3UrKylmb3IodmFyIGg9ZVt1XSxwPTAsZD1oLmxlbmd0aDtwPGQtMTtwKyspe2lmKHI9dCxuPWhbcF0saT1oW3ArMV0sYT12b2lkIDAsbz12b2lkIDAscz12b2lkIDAsbD12b2lkIDAsYT1yWzBdLW5bMF0sbz1yWzFdLW5bMV0scz1yWzBdLWlbMF0sbD1yWzFdLWlbMV0sYSpsLXMqbz09MCYmYSpzPD0wJiZvKmw8PTApcmV0dXJuITE7a2UodCxoW3BdLGhbcCsxXSkmJihjPSFjKX1yZXR1cm4gY31mdW5jdGlvbiBNZSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKEFlKHQsZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gU2UodCxlLHIsbil7dmFyIGk9dFswXS1yWzBdLGE9dFsxXS1yWzFdLG89ZVswXS1yWzBdLHM9ZVsxXS1yWzFdLGw9blswXS1yWzBdLGM9blsxXS1yWzFdLHU9aSpjLWwqYSxmPW8qYy1sKnM7cmV0dXJuIHU+MCYmZjwwfHx1PDAmJmY+MH1mdW5jdGlvbiBFZSh0LGUscil7Zm9yKHZhciBuPTAsaT1yO248aS5sZW5ndGg7bis9MSlmb3IodmFyIGE9aVtuXSxvPTA7bzxhLmxlbmd0aC0xOysrbylpZihzPXQsbD1lLGM9YVtvXSx1PWFbbysxXSxmPXZvaWQgMCxoPXZvaWQgMCxwPXZvaWQgMCxkPXZvaWQgMCxwPVtsWzBdLXNbMF0sbFsxXS1zWzFdXSxkPVt1WzBdLWNbMF0sdVsxXS1jWzFdXSwwIT0oZj1kKVswXSooaD1wKVsxXS1mWzFdKmhbMF0mJlNlKHMsbCxjLHUpJiZTZShjLHUscyxsKSlyZXR1cm4hMDt2YXIgcyxsLGMsdSxmLGgscCxkO3JldHVybiExfWZ1bmN0aW9uIExlKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpaWYoIUFlKHRbcl0sZSkpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0Lmxlbmd0aC0xOysrbilpZihFZSh0W25dLHRbbisxXSxlKSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBDZSh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKExlKHQsZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gUGUodCxlLHIpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspe2Zvcih2YXIgYT1bXSxvPTA7bzx0W2ldLmxlbmd0aDtvKyspe3ZhciBzPVRlKHRbaV1bb10scik7X2UoZSxzKSxhLnB1c2gocyl9bi5wdXNoKGEpfXJldHVybiBufWZ1bmN0aW9uIEllKHQsZSxyKXtmb3IodmFyIG49W10saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT1QZSh0W2ldLGUscik7bi5wdXNoKGEpfXJldHVybiBufWZ1bmN0aW9uIE9lKHQsZSxyLG4pe2lmKHRbMF08clswXXx8dFswXT5yWzJdKXt2YXIgaT0uNSpuLGE9dFswXS1yWzBdPmk/LW46clswXS10WzBdPmk/bjowOzA9PT1hJiYoYT10WzBdLXJbMl0+aT8tbjpyWzJdLXRbMF0+aT9uOjApLHRbMF0rPWF9X2UoZSx0KX1mdW5jdGlvbiB6ZSh0LGUscixuKXtmb3IodmFyIGk9ODE5MipNYXRoLnBvdygyLG4ueiksYT1bODE5MipuLngsODE5MipuLnldLG89W10scz0wLGw9dDtzPGwubGVuZ3RoO3MrPTEpZm9yKHZhciBjPTAsdT1sW3NdO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGY9dVtjXSxoPVtmLngrYVswXSxmLnkrYVsxXV07T2UoaCxlLHIsaSksby5wdXNoKGgpfXJldHVybiBvfWZ1bmN0aW9uIERlKHQsZSxyLG4pe2Zvcih2YXIgaSxhPTgxOTIqTWF0aC5wb3coMixuLnopLG89WzgxOTIqbi54LDgxOTIqbi55XSxzPVtdLGw9MCxjPXQ7bDxjLmxlbmd0aDtsKz0xKXtmb3IodmFyIHU9W10sZj0wLGg9Y1tsXTtmPGgubGVuZ3RoO2YrPTEpe3ZhciBwPWhbZl0sZD1bcC54K29bMF0scC55K29bMV1dO19lKGUsZCksdS5wdXNoKGQpfXMucHVzaCh1KX1pZihlWzJdLWVbMF08PWEvMil7KGk9ZSlbMF09aVsxXT0xLzAsaVsyXT1pWzNdPS0xLzA7Zm9yKHZhciBtPTAsZz1zO208Zy5sZW5ndGg7bSs9MSlmb3IodmFyIHY9MCx5PWdbbV07djx5Lmxlbmd0aDt2Kz0xKXtPZSh5W3ZdLGUscixhKX19cmV0dXJuIHN9dmFyIFJlPWZ1bmN0aW9uKHQsZSl7dGhpcy50eXBlPWp0LHRoaXMuZ2VvanNvbj10LHRoaXMuZ2VvbWV0cmllcz1lfTtmdW5jdGlvbiBGZSh0KXtpZih0IGluc3RhbmNlb2YgeGUpe2lmKCJnZXQiPT09dC5uYW1lJiYxPT09dC5hcmdzLmxlbmd0aClyZXR1cm4hMTtpZigiZmVhdHVyZS1zdGF0ZSI9PT10Lm5hbWUpcmV0dXJuITE7aWYoImhhcyI9PT10Lm5hbWUmJjE9PT10LmFyZ3MubGVuZ3RoKXJldHVybiExO2lmKCJwcm9wZXJ0aWVzIj09PXQubmFtZXx8Imdlb21ldHJ5LXR5cGUiPT09dC5uYW1lfHwiaWQiPT09dC5uYW1lKXJldHVybiExO2lmKC9eZmlsdGVyLS8udGVzdCh0Lm5hbWUpKXJldHVybiExfWlmKHQgaW5zdGFuY2VvZiBSZSlyZXR1cm4hMTt2YXIgZT0hMDtyZXR1cm4gdC5lYWNoQ2hpbGQoKGZ1bmN0aW9uKHQpe2UmJiFGZSh0KSYmKGU9ITEpfSkpLGV9ZnVuY3Rpb24gQmUodCl7aWYodCBpbnN0YW5jZW9mIHhlJiYiZmVhdHVyZS1zdGF0ZSI9PT10Lm5hbWUpcmV0dXJuITE7dmFyIGU9ITA7cmV0dXJuIHQuZWFjaENoaWxkKChmdW5jdGlvbih0KXtlJiYhQmUodCkmJihlPSExKX0pKSxlfWZ1bmN0aW9uIE5lKHQsZSl7aWYodCBpbnN0YW5jZW9mIHhlJiZlLmluZGV4T2YodC5uYW1lKT49MClyZXR1cm4hMTt2YXIgcj0hMDtyZXR1cm4gdC5lYWNoQ2hpbGQoKGZ1bmN0aW9uKHQpe3ImJiFOZSh0LGUpJiYocj0hMSl9KSkscn1SZS5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKDIhPT10Lmxlbmd0aClyZXR1cm4gZS5lcnJvcigiJ3dpdGhpbicgZXhwcmVzc2lvbiByZXF1aXJlcyBleGFjdGx5IG9uZSBhcmd1bWVudCwgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTtpZihvZSh0WzFdKSl7dmFyIHI9dFsxXTtpZigiRmVhdHVyZUNvbGxlY3Rpb24iPT09ci50eXBlKWZvcih2YXIgbj0wO248ci5mZWF0dXJlcy5sZW5ndGg7KytuKXt2YXIgaT1yLmZlYXR1cmVzW25dLmdlb21ldHJ5LnR5cGU7aWYoIlBvbHlnb24iPT09aXx8Ik11bHRpUG9seWdvbiI9PT1pKXJldHVybiBuZXcgUmUocixyLmZlYXR1cmVzW25dLmdlb21ldHJ5KX1lbHNlIGlmKCJGZWF0dXJlIj09PXIudHlwZSl7dmFyIGE9ci5nZW9tZXRyeS50eXBlO2lmKCJQb2x5Z29uIj09PWF8fCJNdWx0aVBvbHlnb24iPT09YSlyZXR1cm4gbmV3IFJlKHIsci5nZW9tZXRyeSl9ZWxzZSBpZigiUG9seWdvbiI9PT1yLnR5cGV8fCJNdWx0aVBvbHlnb24iPT09ci50eXBlKXJldHVybiBuZXcgUmUocixyKX1yZXR1cm4gZS5lcnJvcigiJ3dpdGhpbicgZXhwcmVzc2lvbiByZXF1aXJlcyB2YWxpZCBnZW9qc29uIG9iamVjdCB0aGF0IGNvbnRhaW5zIHBvbHlnb24gZ2VvbWV0cnkgdHlwZS4iKX0sUmUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe2lmKG51bGwhPXQuZ2VvbWV0cnkoKSYmbnVsbCE9dC5jYW5vbmljYWxJRCgpKXtpZigiUG9pbnQiPT09dC5nZW9tZXRyeVR5cGUoKSlyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1bMS8wLDEvMCwtMS8wLC0xLzBdLG49WzEvMCwxLzAsLTEvMCwtMS8wXSxpPXQuY2Fub25pY2FsSUQoKTtpZigiUG9seWdvbiI9PT1lLnR5cGUpe3ZhciBhPVBlKGUuY29vcmRpbmF0ZXMsbixpKSxvPXplKHQuZ2VvbWV0cnkoKSxyLG4saSk7aWYoIXdlKHIsbikpcmV0dXJuITE7Zm9yKHZhciBzPTAsbD1vO3M8bC5sZW5ndGg7cys9MSl7aWYoIUFlKGxbc10sYSkpcmV0dXJuITF9fWlmKCJNdWx0aVBvbHlnb24iPT09ZS50eXBlKXt2YXIgYz1JZShlLmNvb3JkaW5hdGVzLG4saSksdT16ZSh0Lmdlb21ldHJ5KCkscixuLGkpO2lmKCF3ZShyLG4pKXJldHVybiExO2Zvcih2YXIgZj0wLGg9dTtmPGgubGVuZ3RoO2YrPTEpe2lmKCFNZShoW2ZdLGMpKXJldHVybiExfX1yZXR1cm4hMH0odCx0aGlzLmdlb21ldHJpZXMpO2lmKCJMaW5lU3RyaW5nIj09PXQuZ2VvbWV0cnlUeXBlKCkpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9WzEvMCwxLzAsLTEvMCwtMS8wXSxuPVsxLzAsMS8wLC0xLzAsLTEvMF0saT10LmNhbm9uaWNhbElEKCk7aWYoIlBvbHlnb24iPT09ZS50eXBlKXt2YXIgYT1QZShlLmNvb3JkaW5hdGVzLG4saSksbz1EZSh0Lmdlb21ldHJ5KCkscixuLGkpO2lmKCF3ZShyLG4pKXJldHVybiExO2Zvcih2YXIgcz0wLGw9bztzPGwubGVuZ3RoO3MrPTEpe2lmKCFMZShsW3NdLGEpKXJldHVybiExfX1pZigiTXVsdGlQb2x5Z29uIj09PWUudHlwZSl7dmFyIGM9SWUoZS5jb29yZGluYXRlcyxuLGkpLHU9RGUodC5nZW9tZXRyeSgpLHIsbixpKTtpZighd2UocixuKSlyZXR1cm4hMTtmb3IodmFyIGY9MCxoPXU7ZjxoLmxlbmd0aDtmKz0xKXtpZighQ2UoaFtmXSxjKSlyZXR1cm4hMX19cmV0dXJuITB9KHQsdGhpcy5nZW9tZXRyaWVzKX1yZXR1cm4hMX0sUmUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbigpe30sUmUucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sUmUucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVyblsid2l0aGluIix0aGlzLmdlb2pzb25dfTt2YXIgamU9ZnVuY3Rpb24odCxlKXt0aGlzLnR5cGU9ZS50eXBlLHRoaXMubmFtZT10LHRoaXMuYm91bmRFeHByZXNzaW9uPWV9O2plLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMiE9PXQubGVuZ3RofHwic3RyaW5nIiE9dHlwZW9mIHRbMV0pcmV0dXJuIGUuZXJyb3IoIid2YXInIGV4cHJlc3Npb24gcmVxdWlyZXMgZXhhY3RseSBvbmUgc3RyaW5nIGxpdGVyYWwgYXJndW1lbnQuIik7dmFyIHI9dFsxXTtyZXR1cm4gZS5zY29wZS5oYXMocik/bmV3IGplKHIsZS5zY29wZS5nZXQocikpOmUuZXJyb3IoJ1Vua25vd24gdmFyaWFibGUgIicrcisnIi4gTWFrZSBzdXJlICInK3IrJyIgaGFzIGJlZW4gYm91bmQgaW4gYW4gZW5jbG9zaW5nICJsZXQiIGV4cHJlc3Npb24gYmVmb3JlIHVzaW5nIGl0LicsMSl9LGplLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5ib3VuZEV4cHJlc3Npb24uZXZhbHVhdGUodCl9LGplLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24oKXt9LGplLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGplLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm5bInZhciIsdGhpcy5uYW1lXX07dmFyIFVlPWZ1bmN0aW9uKHQsZSxyLG4saSl7dm9pZCAwPT09ZSYmKGU9W10pLHZvaWQgMD09PW4mJihuPW5ldyBSdCksdm9pZCAwPT09aSYmKGk9W10pLHRoaXMucmVnaXN0cnk9dCx0aGlzLnBhdGg9ZSx0aGlzLmtleT1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIlsiK3QrIl0ifSkpLmpvaW4oIiIpLHRoaXMuc2NvcGU9bix0aGlzLmVycm9ycz1pLHRoaXMuZXhwZWN0ZWRUeXBlPXJ9O2Z1bmN0aW9uIFZlKHQsZSl7Zm9yKHZhciByLG4saT10Lmxlbmd0aC0xLGE9MCxvPWkscz0wO2E8PW87KWlmKHI9dFtzPU1hdGguZmxvb3IoKGErbykvMildLG49dFtzKzFdLHI8PWUpe2lmKHM9PT1pfHxlPG4pcmV0dXJuIHM7YT1zKzF9ZWxzZXtpZighKHI+ZSkpdGhyb3cgbmV3IHVlKCJJbnB1dCBpcyBub3QgYSBudW1iZXIuIik7bz1zLTF9cmV0dXJuIDB9VWUucHJvdG90eXBlLnBhcnNlPWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHZvaWQgMD09PWkmJihpPXt9KSxlP3RoaXMuY29uY2F0KGUscixuKS5fcGFyc2UodCxpKTp0aGlzLl9wYXJzZSh0LGkpfSxVZS5wcm90b3R5cGUuX3BhcnNlPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0LGUscil7cmV0dXJuImFzc2VydCI9PT1yP25ldyBoZShlLFt0XSk6ImNvZXJjZSI9PT1yP25ldyBnZShlLFt0XSk6dH1pZihudWxsIT09dCYmInN0cmluZyIhPXR5cGVvZiB0JiYiYm9vbGVhbiIhPXR5cGVvZiB0JiYibnVtYmVyIiE9dHlwZW9mIHR8fCh0PVsibGl0ZXJhbCIsdF0pLEFycmF5LmlzQXJyYXkodCkpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4gdGhpcy5lcnJvcignRXhwZWN0ZWQgYW4gYXJyYXkgd2l0aCBhdCBsZWFzdCBvbmUgZWxlbWVudC4gSWYgeW91IHdhbnRlZCBhIGxpdGVyYWwgYXJyYXksIHVzZSBbImxpdGVyYWwiLCBbXV0uJyk7dmFyIG49dFswXTtpZigic3RyaW5nIiE9dHlwZW9mIG4pcmV0dXJuIHRoaXMuZXJyb3IoIkV4cHJlc3Npb24gbmFtZSBtdXN0IGJlIGEgc3RyaW5nLCBidXQgZm91bmQgIit0eXBlb2YgbisnIGluc3RlYWQuIElmIHlvdSB3YW50ZWQgYSBsaXRlcmFsIGFycmF5LCB1c2UgWyJsaXRlcmFsIiwgWy4uLl1dLicsMCksbnVsbDt2YXIgaT10aGlzLnJlZ2lzdHJ5W25dO2lmKGkpe3ZhciBhPWkucGFyc2UodCx0aGlzKTtpZighYSlyZXR1cm4gbnVsbDtpZih0aGlzLmV4cGVjdGVkVHlwZSl7dmFyIG89dGhpcy5leHBlY3RlZFR5cGUscz1hLnR5cGU7aWYoInN0cmluZyIhPT1vLmtpbmQmJiJudW1iZXIiIT09by5raW5kJiYiYm9vbGVhbiIhPT1vLmtpbmQmJiJvYmplY3QiIT09by5raW5kJiYiYXJyYXkiIT09by5raW5kfHwidmFsdWUiIT09cy5raW5kKWlmKCJjb2xvciIhPT1vLmtpbmQmJiJmb3JtYXR0ZWQiIT09by5raW5kJiYicmVzb2x2ZWRJbWFnZSIhPT1vLmtpbmR8fCJ2YWx1ZSIhPT1zLmtpbmQmJiJzdHJpbmciIT09cy5raW5kKXtpZih0aGlzLmNoZWNrU3VidHlwZShvLHMpKXJldHVybiBudWxsfWVsc2UgYT1yKGEsbyxlLnR5cGVBbm5vdGF0aW9ufHwiY29lcmNlIik7ZWxzZSBhPXIoYSxvLGUudHlwZUFubm90YXRpb258fCJhc3NlcnQiKX1pZighKGEgaW5zdGFuY2VvZiBjZSkmJiJyZXNvbHZlZEltYWdlIiE9PWEudHlwZS5raW5kJiZmdW5jdGlvbiB0KGUpe2lmKGUgaW5zdGFuY2VvZiBqZSlyZXR1cm4gdChlLmJvdW5kRXhwcmVzc2lvbik7aWYoZSBpbnN0YW5jZW9mIHhlJiYiZXJyb3IiPT09ZS5uYW1lKXJldHVybiExO2lmKGUgaW5zdGFuY2VvZiBiZSlyZXR1cm4hMTtpZihlIGluc3RhbmNlb2YgUmUpcmV0dXJuITE7dmFyIHI9ZSBpbnN0YW5jZW9mIGdlfHxlIGluc3RhbmNlb2YgaGUsbj0hMDtpZihlLmVhY2hDaGlsZCgoZnVuY3Rpb24oZSl7bj1yP24mJnQoZSk6biYmZSBpbnN0YW5jZW9mIGNlfSkpLCFuKXJldHVybiExO3JldHVybiBGZShlKSYmTmUoZSxbInpvb20iLCJoZWF0bWFwLWRlbnNpdHkiLCJsaW5lLXByb2dyZXNzIiwiYWNjdW11bGF0ZWQiLCJpcy1zdXBwb3J0ZWQtc2NyaXB0Il0pfShhKSl7dmFyIGw9bmV3IHllO3RyeXthPW5ldyBjZShhLnR5cGUsYS5ldmFsdWF0ZShsKSl9Y2F0Y2godCl7cmV0dXJuIHRoaXMuZXJyb3IodC5tZXNzYWdlKSxudWxsfX1yZXR1cm4gYX1yZXR1cm4gdGhpcy5lcnJvcignVW5rbm93biBleHByZXNzaW9uICInK24rJyIuIElmIHlvdSB3YW50ZWQgYSBsaXRlcmFsIGFycmF5LCB1c2UgWyJsaXRlcmFsIiwgWy4uLl1dLicsMCl9cmV0dXJuIHZvaWQgMD09PXQ/dGhpcy5lcnJvcigiJ3VuZGVmaW5lZCcgdmFsdWUgaW52YWxpZC4gVXNlIG51bGwgaW5zdGVhZC4iKToib2JqZWN0Ij09dHlwZW9mIHQ/dGhpcy5lcnJvcignQmFyZSBvYmplY3RzIGludmFsaWQuIFVzZSBbImxpdGVyYWwiLCB7Li4ufV0gaW5zdGVhZC4nKTp0aGlzLmVycm9yKCJFeHBlY3RlZCBhbiBhcnJheSwgYnV0IGZvdW5kICIrdHlwZW9mIHQrIiBpbnN0ZWFkLiIpfSxVZS5wcm90b3R5cGUuY29uY2F0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0ibnVtYmVyIj09dHlwZW9mIHQ/dGhpcy5wYXRoLmNvbmNhdCh0KTp0aGlzLnBhdGgsaT1yP3RoaXMuc2NvcGUuY29uY2F0KHIpOnRoaXMuc2NvcGU7cmV0dXJuIG5ldyBVZSh0aGlzLnJlZ2lzdHJ5LG4sZXx8bnVsbCxpLHRoaXMuZXJyb3JzKX0sVWUucHJvdG90eXBlLmVycm9yPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGgtMTtyLS0gPjA7KWVbcl09YXJndW1lbnRzW3IrMV07dmFyIG49IiIrdGhpcy5rZXkrZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJbIit0KyJdIn0pKS5qb2luKCIiKTt0aGlzLmVycm9ycy5wdXNoKG5ldyBEdChuLHQpKX0sVWUucHJvdG90eXBlLmNoZWNrU3VidHlwZT1mdW5jdGlvbih0LGUpe3ZhciByPUp0KHQsZSk7cmV0dXJuIHImJnRoaXMuZXJyb3Iocikscn07dmFyIEhlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnR5cGU9dCx0aGlzLmlucHV0PWUsdGhpcy5sYWJlbHM9W10sdGhpcy5vdXRwdXRzPVtdO2Zvcih2YXIgbj0wLGk9cjtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl0sbz1hWzBdLHM9YVsxXTt0aGlzLmxhYmVscy5wdXNoKG8pLHRoaXMub3V0cHV0cy5wdXNoKHMpfX07ZnVuY3Rpb24gcWUodCxlLHIpe3JldHVybiB0KigxLXIpK2Uqcn1IZS5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoLTE8NClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3QgNCBhcmd1bWVudHMsIGJ1dCBmb3VuZCBvbmx5ICIrKHQubGVuZ3RoLTEpKyIuIik7aWYoKHQubGVuZ3RoLTEpJTIhPTApcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGFuIGV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cy4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxCdCk7aWYoIXIpcmV0dXJuIG51bGw7dmFyIG49W10saT1udWxsO2UuZXhwZWN0ZWRUeXBlJiYidmFsdWUiIT09ZS5leHBlY3RlZFR5cGUua2luZCYmKGk9ZS5leHBlY3RlZFR5cGUpO2Zvcih2YXIgYT0xO2E8dC5sZW5ndGg7YSs9Mil7dmFyIG89MT09PWE/LTEvMDp0W2FdLHM9dFthKzFdLGw9YSxjPWErMTtpZigibnVtYmVyIiE9dHlwZW9mIG8pcmV0dXJuIGUuZXJyb3IoJ0lucHV0L291dHB1dCBwYWlycyBmb3IgInN0ZXAiIGV4cHJlc3Npb25zIG11c3QgYmUgZGVmaW5lZCB1c2luZyBsaXRlcmFsIG51bWVyaWMgdmFsdWVzIChub3QgY29tcHV0ZWQgZXhwcmVzc2lvbnMpIGZvciB0aGUgaW5wdXQgdmFsdWVzLicsbCk7aWYobi5sZW5ndGgmJm5bbi5sZW5ndGgtMV1bMF0+PW8pcmV0dXJuIGUuZXJyb3IoJ0lucHV0L291dHB1dCBwYWlycyBmb3IgInN0ZXAiIGV4cHJlc3Npb25zIG11c3QgYmUgYXJyYW5nZWQgd2l0aCBpbnB1dCB2YWx1ZXMgaW4gc3RyaWN0bHkgYXNjZW5kaW5nIG9yZGVyLicsbCk7dmFyIHU9ZS5wYXJzZShzLGMsaSk7aWYoIXUpcmV0dXJuIG51bGw7aT1pfHx1LnR5cGUsbi5wdXNoKFtvLHVdKX1yZXR1cm4gbmV3IEhlKGkscixuKX0sSGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGFiZWxzLHI9dGhpcy5vdXRwdXRzO2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gclswXS5ldmFsdWF0ZSh0KTt2YXIgbj10aGlzLmlucHV0LmV2YWx1YXRlKHQpO2lmKG48PWVbMF0pcmV0dXJuIHJbMF0uZXZhbHVhdGUodCk7dmFyIGk9ZS5sZW5ndGg7cmV0dXJuIG4+PWVbaS0xXT9yW2ktMV0uZXZhbHVhdGUodCk6cltWZShlLG4pXS5ldmFsdWF0ZSh0KX0sSGUucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMuaW5wdXQpO2Zvcih2YXIgZT0wLHI9dGhpcy5vdXRwdXRzO2U8ci5sZW5ndGg7ZSs9MSl7dChyW2VdKX19LEhlLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMub3V0cHV0cy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3V0cHV0RGVmaW5lZCgpfSkpfSxIZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVsic3RlcCIsdGhpcy5pbnB1dC5zZXJpYWxpemUoKV0sZT0wO2U8dGhpcy5sYWJlbHMubGVuZ3RoO2UrKyllPjAmJnQucHVzaCh0aGlzLmxhYmVsc1tlXSksdC5wdXNoKHRoaXMub3V0cHV0c1tlXS5zZXJpYWxpemUoKSk7cmV0dXJuIHR9O3ZhciBHZT1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxudW1iZXI6cWUsY29sb3I6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuZXcgdGUocWUodC5yLGUucixyKSxxZSh0LmcsZS5nLHIpLHFlKHQuYixlLmIscikscWUodC5hLGUuYSxyKSl9LGFycmF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIHFlKHQsZVtuXSxyKX0pKX19KSxZZT02LzI5LFdlPTMqWWUqWWUsWGU9TWF0aC5QSS8xODAsWmU9MTgwL01hdGguUEk7ZnVuY3Rpb24gSmUodCl7cmV0dXJuIHQ+LjAwODg1NjQ1MTY3OTAzNTYzMT9NYXRoLnBvdyh0LDEvMyk6dC9XZSs0LzI5fWZ1bmN0aW9uIEtlKHQpe3JldHVybiB0PlllP3QqdCp0OldlKih0LTQvMjkpfWZ1bmN0aW9uIFFlKHQpe3JldHVybiAyNTUqKHQ8PS4wMDMxMzA4PzEyLjkyKnQ6MS4wNTUqTWF0aC5wb3codCwxLzIuNCktLjA1NSl9ZnVuY3Rpb24gJGUodCl7cmV0dXJuKHQvPTI1NSk8PS4wNDA0NT90LzEyLjkyOk1hdGgucG93KCh0Ky4wNTUpLzEuMDU1LDIuNCl9ZnVuY3Rpb24gdHIodCl7dmFyIGU9JGUodC5yKSxyPSRlKHQuZyksbj0kZSh0LmIpLGk9SmUoKC40MTI0NTY0KmUrLjM1NzU3NjEqcisuMTgwNDM3NSpuKS8uOTUwNDcpLGE9SmUoKC4yMTI2NzI5KmUrLjcxNTE1MjIqcisuMDcyMTc1Km4pLzEpO3JldHVybntsOjExNiphLTE2LGE6NTAwKihpLWEpLGI6MjAwKihhLUplKCguMDE5MzMzOSplKy4xMTkxOTIqcisuOTUwMzA0MSpuKS8xLjA4ODgzKSksYWxwaGE6dC5hfX1mdW5jdGlvbiBlcih0KXt2YXIgZT0odC5sKzE2KS8xMTYscj1pc05hTih0LmEpP2U6ZSt0LmEvNTAwLG49aXNOYU4odC5iKT9lOmUtdC5iLzIwMDtyZXR1cm4gZT0xKktlKGUpLHI9Ljk1MDQ3KktlKHIpLG49MS4wODg4MypLZShuKSxuZXcgdGUoUWUoMy4yNDA0NTQyKnItMS41MzcxMzg1KmUtLjQ5ODUzMTQqbiksUWUoLS45NjkyNjYqcisxLjg3NjAxMDgqZSsuMDQxNTU2Km4pLFFlKC4wNTU2NDM0KnItLjIwNDAyNTkqZSsxLjA1NzIyNTIqbiksdC5hbHBoYSl9ZnVuY3Rpb24gcnIodCxlLHIpe3ZhciBuPWUtdDtyZXR1cm4gdCtyKihuPjE4MHx8bjwtMTgwP24tMzYwKk1hdGgucm91bmQobi8zNjApOm4pfXZhciBucj17Zm9yd2FyZDp0cixyZXZlcnNlOmVyLGludGVycG9sYXRlOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm57bDpxZSh0LmwsZS5sLHIpLGE6cWUodC5hLGUuYSxyKSxiOnFlKHQuYixlLmIsciksYWxwaGE6cWUodC5hbHBoYSxlLmFscGhhLHIpfX19LGlyPXtmb3J3YXJkOmZ1bmN0aW9uKHQpe3ZhciBlPXRyKHQpLHI9ZS5sLG49ZS5hLGk9ZS5iLGE9TWF0aC5hdGFuMihpLG4pKlplO3JldHVybntoOmE8MD9hKzM2MDphLGM6TWF0aC5zcXJ0KG4qbitpKmkpLGw6cixhbHBoYTp0LmF9fSxyZXZlcnNlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuaCpYZSxyPXQuYztyZXR1cm4gZXIoe2w6dC5sLGE6TWF0aC5jb3MoZSkqcixiOk1hdGguc2luKGUpKnIsYWxwaGE6dC5hbHBoYX0pfSxpbnRlcnBvbGF0ZTpmdW5jdGlvbih0LGUscil7cmV0dXJue2g6cnIodC5oLGUuaCxyKSxjOnFlKHQuYyxlLmMsciksbDpxZSh0LmwsZS5sLHIpLGFscGhhOnFlKHQuYWxwaGEsZS5hbHBoYSxyKX19fSxhcj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxsYWI6bnIsaGNsOmlyfSksb3I9ZnVuY3Rpb24odCxlLHIsbixpKXt0aGlzLnR5cGU9dCx0aGlzLm9wZXJhdG9yPWUsdGhpcy5pbnRlcnBvbGF0aW9uPXIsdGhpcy5pbnB1dD1uLHRoaXMubGFiZWxzPVtdLHRoaXMub3V0cHV0cz1bXTtmb3IodmFyIGE9MCxvPWk7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdLGw9c1swXSxjPXNbMV07dGhpcy5sYWJlbHMucHVzaChsKSx0aGlzLm91dHB1dHMucHVzaChjKX19O2Z1bmN0aW9uIHNyKHQsZSxyLG4pe3ZhciBpPW4tcixhPXQtcjtyZXR1cm4gMD09PWk/MDoxPT09ZT9hL2k6KE1hdGgucG93KGUsYSktMSkvKE1hdGgucG93KGUsaSktMSl9b3IuaW50ZXJwb2xhdGlvbkZhY3Rvcj1mdW5jdGlvbih0LGUsbixpKXt2YXIgYT0wO2lmKCJleHBvbmVudGlhbCI9PT10Lm5hbWUpYT1zcihlLHQuYmFzZSxuLGkpO2Vsc2UgaWYoImxpbmVhciI9PT10Lm5hbWUpYT1zcihlLDEsbixpKTtlbHNlIGlmKCJjdWJpYy1iZXppZXIiPT09dC5uYW1lKXt2YXIgbz10LmNvbnRyb2xQb2ludHM7YT1uZXcgcihvWzBdLG9bMV0sb1syXSxvWzNdKS5zb2x2ZShzcihlLDEsbixpKSl9cmV0dXJuIGF9LG9yLnBhcnNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSxuPXRbMV0saT10WzJdLGE9dC5zbGljZSgzKTtpZighQXJyYXkuaXNBcnJheShuKXx8MD09PW4ubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBhbiBpbnRlcnBvbGF0aW9uIHR5cGUgZXhwcmVzc2lvbi4iLDEpO2lmKCJsaW5lYXIiPT09blswXSluPXtuYW1lOiJsaW5lYXIifTtlbHNlIGlmKCJleHBvbmVudGlhbCI9PT1uWzBdKXt2YXIgbz1uWzFdO2lmKCJudW1iZXIiIT10eXBlb2YgbylyZXR1cm4gZS5lcnJvcigiRXhwb25lbnRpYWwgaW50ZXJwb2xhdGlvbiByZXF1aXJlcyBhIG51bWVyaWMgYmFzZS4iLDEsMSk7bj17bmFtZToiZXhwb25lbnRpYWwiLGJhc2U6b319ZWxzZXtpZigiY3ViaWMtYmV6aWVyIiE9PW5bMF0pcmV0dXJuIGUuZXJyb3IoIlVua25vd24gaW50ZXJwb2xhdGlvbiB0eXBlICIrU3RyaW5nKG5bMF0pLDEsMCk7dmFyIHM9bi5zbGljZSgxKTtpZig0IT09cy5sZW5ndGh8fHMuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIm51bWJlciIhPXR5cGVvZiB0fHx0PDB8fHQ+MX0pKSlyZXR1cm4gZS5lcnJvcigiQ3ViaWMgYmV6aWVyIGludGVycG9sYXRpb24gcmVxdWlyZXMgZm91ciBudW1lcmljIGFyZ3VtZW50cyB3aXRoIHZhbHVlcyBiZXR3ZWVuIDAgYW5kIDEuIiwxKTtuPXtuYW1lOiJjdWJpYy1iZXppZXIiLGNvbnRyb2xQb2ludHM6c319aWYodC5sZW5ndGgtMTw0KXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBhdCBsZWFzdCA0IGFyZ3VtZW50cywgYnV0IGZvdW5kIG9ubHkgIisodC5sZW5ndGgtMSkrIi4iKTtpZigodC5sZW5ndGgtMSklMiE9MClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgYW4gZXZlbiBudW1iZXIgb2YgYXJndW1lbnRzLiIpO2lmKCEoaT1lLnBhcnNlKGksMixCdCkpKXJldHVybiBudWxsO3ZhciBsPVtdLGM9bnVsbDsiaW50ZXJwb2xhdGUtaGNsIj09PXJ8fCJpbnRlcnBvbGF0ZS1sYWIiPT09cj9jPVV0OmUuZXhwZWN0ZWRUeXBlJiYidmFsdWUiIT09ZS5leHBlY3RlZFR5cGUua2luZCYmKGM9ZS5leHBlY3RlZFR5cGUpO2Zvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSs9Mil7dmFyIGY9YVt1XSxoPWFbdSsxXSxwPXUrMyxkPXUrNDtpZigibnVtYmVyIiE9dHlwZW9mIGYpcmV0dXJuIGUuZXJyb3IoJ0lucHV0L291dHB1dCBwYWlycyBmb3IgImludGVycG9sYXRlIiBleHByZXNzaW9ucyBtdXN0IGJlIGRlZmluZWQgdXNpbmcgbGl0ZXJhbCBudW1lcmljIHZhbHVlcyAobm90IGNvbXB1dGVkIGV4cHJlc3Npb25zKSBmb3IgdGhlIGlucHV0IHZhbHVlcy4nLHApO2lmKGwubGVuZ3RoJiZsW2wubGVuZ3RoLTFdWzBdPj1mKXJldHVybiBlLmVycm9yKCdJbnB1dC9vdXRwdXQgcGFpcnMgZm9yICJpbnRlcnBvbGF0ZSIgZXhwcmVzc2lvbnMgbXVzdCBiZSBhcnJhbmdlZCB3aXRoIGlucHV0IHZhbHVlcyBpbiBzdHJpY3RseSBhc2NlbmRpbmcgb3JkZXIuJyxwKTt2YXIgbT1lLnBhcnNlKGgsZCxjKTtpZighbSlyZXR1cm4gbnVsbDtjPWN8fG0udHlwZSxsLnB1c2goW2YsbV0pfXJldHVybiJudW1iZXIiPT09Yy5raW5kfHwiY29sb3IiPT09Yy5raW5kfHwiYXJyYXkiPT09Yy5raW5kJiYibnVtYmVyIj09PWMuaXRlbVR5cGUua2luZCYmIm51bWJlciI9PXR5cGVvZiBjLk4/bmV3IG9yKGMscixuLGksbCk6ZS5lcnJvcigiVHlwZSAiK1h0KGMpKyIgaXMgbm90IGludGVycG9sYXRhYmxlLiIpfSxvci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYWJlbHMscj10aGlzLm91dHB1dHM7aWYoMT09PWUubGVuZ3RoKXJldHVybiByWzBdLmV2YWx1YXRlKHQpO3ZhciBuPXRoaXMuaW5wdXQuZXZhbHVhdGUodCk7aWYobjw9ZVswXSlyZXR1cm4gclswXS5ldmFsdWF0ZSh0KTt2YXIgaT1lLmxlbmd0aDtpZihuPj1lW2ktMV0pcmV0dXJuIHJbaS0xXS5ldmFsdWF0ZSh0KTt2YXIgYT1WZShlLG4pLG89ZVthXSxzPWVbYSsxXSxsPW9yLmludGVycG9sYXRpb25GYWN0b3IodGhpcy5pbnRlcnBvbGF0aW9uLG4sbyxzKSxjPXJbYV0uZXZhbHVhdGUodCksdT1yW2ErMV0uZXZhbHVhdGUodCk7cmV0dXJuImludGVycG9sYXRlIj09PXRoaXMub3BlcmF0b3I/R2VbdGhpcy50eXBlLmtpbmQudG9Mb3dlckNhc2UoKV0oYyx1LGwpOiJpbnRlcnBvbGF0ZS1oY2wiPT09dGhpcy5vcGVyYXRvcj9pci5yZXZlcnNlKGlyLmludGVycG9sYXRlKGlyLmZvcndhcmQoYyksaXIuZm9yd2FyZCh1KSxsKSk6bnIucmV2ZXJzZShuci5pbnRlcnBvbGF0ZShuci5mb3J3YXJkKGMpLG5yLmZvcndhcmQodSksbCkpfSxvci5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5pbnB1dCk7Zm9yKHZhciBlPTAscj10aGlzLm91dHB1dHM7ZTxyLmxlbmd0aDtlKz0xKXt0KHJbZV0pfX0sb3IucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vdXRwdXRzLmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC5vdXRwdXREZWZpbmVkKCl9KSl9LG9yLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdDt0PSJsaW5lYXIiPT09dGhpcy5pbnRlcnBvbGF0aW9uLm5hbWU/WyJsaW5lYXIiXToiZXhwb25lbnRpYWwiPT09dGhpcy5pbnRlcnBvbGF0aW9uLm5hbWU/MT09PXRoaXMuaW50ZXJwb2xhdGlvbi5iYXNlP1sibGluZWFyIl06WyJleHBvbmVudGlhbCIsdGhpcy5pbnRlcnBvbGF0aW9uLmJhc2VdOlsiY3ViaWMtYmV6aWVyIl0uY29uY2F0KHRoaXMuaW50ZXJwb2xhdGlvbi5jb250cm9sUG9pbnRzKTtmb3IodmFyIGU9W3RoaXMub3BlcmF0b3IsdCx0aGlzLmlucHV0LnNlcmlhbGl6ZSgpXSxyPTA7cjx0aGlzLmxhYmVscy5sZW5ndGg7cisrKWUucHVzaCh0aGlzLmxhYmVsc1tyXSx0aGlzLm91dHB1dHNbcl0uc2VyaWFsaXplKCkpO3JldHVybiBlfTt2YXIgbHI9ZnVuY3Rpb24odCxlKXt0aGlzLnR5cGU9dCx0aGlzLmFyZ3M9ZX07bHIucGFyc2U9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDwyKXJldHVybiBlLmVycm9yKCJFeHBlY3RlY3RlZCBhdCBsZWFzdCBvbmUgYXJndW1lbnQuIik7dmFyIHI9bnVsbCxuPWUuZXhwZWN0ZWRUeXBlO24mJiJ2YWx1ZSIhPT1uLmtpbmQmJihyPW4pO2Zvcih2YXIgaT1bXSxhPTAsbz10LnNsaWNlKDEpO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXSxsPWUucGFyc2UocywxK2kubGVuZ3RoLHIsdm9pZCAwLHt0eXBlQW5ub3RhdGlvbjoib21pdCJ9KTtpZighbClyZXR1cm4gbnVsbDtyPXJ8fGwudHlwZSxpLnB1c2gobCl9dmFyIGM9biYmaS5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gSnQobix0LnR5cGUpfSkpO3JldHVybiBuZXcgbHIoYz9IdDpyLGkpfSxsci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9bnVsbCxuPTAsaT0wLGE9dGhpcy5hcmdzO2k8YS5sZW5ndGg7aSs9MSl7aWYobisrLChyPWFbaV0uZXZhbHVhdGUodCkpJiZyIGluc3RhbmNlb2YgaWUmJiFyLmF2YWlsYWJsZSYmKGV8fChlPXIubmFtZSkscj1udWxsLG49PT10aGlzLmFyZ3MubGVuZ3RoJiYocj1lKSksbnVsbCE9PXIpYnJlYWt9cmV0dXJuIHJ9LGxyLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dGhpcy5hcmdzLmZvckVhY2godCl9LGxyLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYXJncy5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQub3V0cHV0RGVmaW5lZCgpfSkpfSxsci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7dmFyIHQ9WyJjb2FsZXNjZSJdO3JldHVybiB0aGlzLmVhY2hDaGlsZCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUuc2VyaWFsaXplKCkpfSkpLHR9O3ZhciBjcj1mdW5jdGlvbih0LGUpe3RoaXMudHlwZT1lLnR5cGUsdGhpcy5iaW5kaW5ncz1bXS5jb25jYXQodCksdGhpcy5yZXN1bHQ9ZX07Y3IucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnJlc3VsdC5ldmFsdWF0ZSh0KX0sY3IucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuYmluZGluZ3M7ZTxyLmxlbmd0aDtlKz0xKXt0KHJbZV1bMV0pfXQodGhpcy5yZXN1bHQpfSxjci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDQpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IDMgYXJndW1lbnRzLCBidXQgZm91bmQgIisodC5sZW5ndGgtMSkrIiBpbnN0ZWFkLiIpO2Zvcih2YXIgcj1bXSxuPTE7bjx0Lmxlbmd0aC0xO24rPTIpe3ZhciBpPXRbbl07aWYoInN0cmluZyIhPXR5cGVvZiBpKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBzdHJpbmcsIGJ1dCBmb3VuZCAiK3R5cGVvZiBpKyIgaW5zdGVhZC4iLG4pO2lmKC9bXmEtekEtWjAtOV9dLy50ZXN0KGkpKXJldHVybiBlLmVycm9yKCJWYXJpYWJsZSBuYW1lcyBtdXN0IGNvbnRhaW4gb25seSBhbHBoYW51bWVyaWMgY2hhcmFjdGVycyBvciAnXycuIixuKTt2YXIgYT1lLnBhcnNlKHRbbisxXSxuKzEpO2lmKCFhKXJldHVybiBudWxsO3IucHVzaChbaSxhXSl9dmFyIG89ZS5wYXJzZSh0W3QubGVuZ3RoLTFdLHQubGVuZ3RoLTEsZS5leHBlY3RlZFR5cGUscik7cmV0dXJuIG8/bmV3IGNyKHIsbyk6bnVsbH0sY3IucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yZXN1bHQub3V0cHV0RGVmaW5lZCgpfSxjci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PVsibGV0Il0sZT0wLHI9dGhpcy5iaW5kaW5ncztlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV0saT1uWzBdLGE9blsxXTt0LnB1c2goaSxhLnNlcmlhbGl6ZSgpKX1yZXR1cm4gdC5wdXNoKHRoaXMucmVzdWx0LnNlcmlhbGl6ZSgpKSx0fTt2YXIgdXI9ZnVuY3Rpb24odCxlLHIpe3RoaXMudHlwZT10LHRoaXMuaW5kZXg9ZSx0aGlzLmlucHV0PXJ9O3VyLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMyE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCAyIGFyZ3VtZW50cywgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxCdCksbj1lLnBhcnNlKHRbMl0sMixXdChlLmV4cGVjdGVkVHlwZXx8SHQpKTtpZighcnx8IW4pcmV0dXJuIG51bGw7dmFyIGk9bi50eXBlO3JldHVybiBuZXcgdXIoaS5pdGVtVHlwZSxyLG4pfSx1ci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbmRleC5ldmFsdWF0ZSh0KSxyPXRoaXMuaW5wdXQuZXZhbHVhdGUodCk7aWYoZTwwKXRocm93IG5ldyB1ZSgiQXJyYXkgaW5kZXggb3V0IG9mIGJvdW5kczogIitlKyIgPCAwLiIpO2lmKGU+PXIubGVuZ3RoKXRocm93IG5ldyB1ZSgiQXJyYXkgaW5kZXggb3V0IG9mIGJvdW5kczogIitlKyIgPiAiKyhyLmxlbmd0aC0xKSsiLiIpO2lmKGUhPT1NYXRoLmZsb29yKGUpKXRocm93IG5ldyB1ZSgiQXJyYXkgaW5kZXggbXVzdCBiZSBhbiBpbnRlZ2VyLCBidXQgZm91bmQgIitlKyIgaW5zdGVhZC4iKTtyZXR1cm4gcltlXX0sdXIucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMuaW5kZXgpLHQodGhpcy5pbnB1dCl9LHVyLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHVyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm5bImF0Iix0aGlzLmluZGV4LnNlcmlhbGl6ZSgpLHRoaXMuaW5wdXQuc2VyaWFsaXplKCldfTt2YXIgZnI9ZnVuY3Rpb24odCxlKXt0aGlzLnR5cGU9anQsdGhpcy5uZWVkbGU9dCx0aGlzLmhheXN0YWNrPWV9O2ZyLnBhcnNlPWZ1bmN0aW9uKHQsZSl7aWYoMyE9PXQubGVuZ3RoKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCAyIGFyZ3VtZW50cywgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxIdCksbj1lLnBhcnNlKHRbMl0sMixIdCk7cmV0dXJuIHImJm4/S3Qoci50eXBlLFtqdCxOdCxCdCxGdCxIdF0pP25ldyBmcihyLG4pOmUuZXJyb3IoIkV4cGVjdGVkIGZpcnN0IGFyZ3VtZW50IHRvIGJlIG9mIHR5cGUgYm9vbGVhbiwgc3RyaW5nLCBudW1iZXIgb3IgbnVsbCwgYnV0IGZvdW5kICIrWHQoci50eXBlKSsiIGluc3RlYWQiKTpudWxsfSxmci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5uZWVkbGUuZXZhbHVhdGUodCkscj10aGlzLmhheXN0YWNrLmV2YWx1YXRlKHQpO2lmKCFyKXJldHVybiExO2lmKCFRdChlLFsiYm9vbGVhbiIsInN0cmluZyIsIm51bWJlciIsIm51bGwiXSkpdGhyb3cgbmV3IHVlKCJFeHBlY3RlZCBmaXJzdCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGJvb2xlYW4sIHN0cmluZywgbnVtYmVyIG9yIG51bGwsIGJ1dCBmb3VuZCAiK1h0KHNlKGUpKSsiIGluc3RlYWQuIik7aWYoIVF0KHIsWyJzdHJpbmciLCJhcnJheSJdKSl0aHJvdyBuZXcgdWUoIkV4cGVjdGVkIHNlY29uZCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGFycmF5IG9yIHN0cmluZywgYnV0IGZvdW5kICIrWHQoc2UocikpKyIgaW5zdGVhZC4iKTtyZXR1cm4gci5pbmRleE9mKGUpPj0wfSxmci5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5uZWVkbGUpLHQodGhpcy5oYXlzdGFjayl9LGZyLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGZyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm5bImluIix0aGlzLm5lZWRsZS5zZXJpYWxpemUoKSx0aGlzLmhheXN0YWNrLnNlcmlhbGl6ZSgpXX07dmFyIGhyPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnR5cGU9QnQsdGhpcy5uZWVkbGU9dCx0aGlzLmhheXN0YWNrPWUsdGhpcy5mcm9tSW5kZXg9cn07aHIucGFyc2U9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDw9Mnx8dC5sZW5ndGg+PTUpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIDMgb3IgNCBhcmd1bWVudHMsIGJ1dCBmb3VuZCAiKyh0Lmxlbmd0aC0xKSsiIGluc3RlYWQuIik7dmFyIHI9ZS5wYXJzZSh0WzFdLDEsSHQpLG49ZS5wYXJzZSh0WzJdLDIsSHQpO2lmKCFyfHwhbilyZXR1cm4gbnVsbDtpZighS3Qoci50eXBlLFtqdCxOdCxCdCxGdCxIdF0pKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBmaXJzdCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGJvb2xlYW4sIHN0cmluZywgbnVtYmVyIG9yIG51bGwsIGJ1dCBmb3VuZCAiK1h0KHIudHlwZSkrIiBpbnN0ZWFkIik7aWYoND09PXQubGVuZ3RoKXt2YXIgaT1lLnBhcnNlKHRbM10sMyxCdCk7cmV0dXJuIGk/bmV3IGhyKHIsbixpKTpudWxsfXJldHVybiBuZXcgaHIocixuKX0saHIucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubmVlZGxlLmV2YWx1YXRlKHQpLHI9dGhpcy5oYXlzdGFjay5ldmFsdWF0ZSh0KTtpZighUXQoZSxbImJvb2xlYW4iLCJzdHJpbmciLCJudW1iZXIiLCJudWxsIl0pKXRocm93IG5ldyB1ZSgiRXhwZWN0ZWQgZmlyc3QgYXJndW1lbnQgdG8gYmUgb2YgdHlwZSBib29sZWFuLCBzdHJpbmcsIG51bWJlciBvciBudWxsLCBidXQgZm91bmQgIitYdChzZShlKSkrIiBpbnN0ZWFkLiIpO2lmKCFRdChyLFsic3RyaW5nIiwiYXJyYXkiXSkpdGhyb3cgbmV3IHVlKCJFeHBlY3RlZCBzZWNvbmQgYXJndW1lbnQgdG8gYmUgb2YgdHlwZSBhcnJheSBvciBzdHJpbmcsIGJ1dCBmb3VuZCAiK1h0KHNlKHIpKSsiIGluc3RlYWQuIik7aWYodGhpcy5mcm9tSW5kZXgpe3ZhciBuPXRoaXMuZnJvbUluZGV4LmV2YWx1YXRlKHQpO3JldHVybiByLmluZGV4T2YoZSxuKX1yZXR1cm4gci5pbmRleE9mKGUpfSxoci5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5uZWVkbGUpLHQodGhpcy5oYXlzdGFjayksdGhpcy5mcm9tSW5kZXgmJnQodGhpcy5mcm9tSW5kZXgpfSxoci5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiExfSxoci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7aWYobnVsbCE9dGhpcy5mcm9tSW5kZXgmJnZvaWQgMCE9PXRoaXMuZnJvbUluZGV4KXt2YXIgdD10aGlzLmZyb21JbmRleC5zZXJpYWxpemUoKTtyZXR1cm5bImluZGV4LW9mIix0aGlzLm5lZWRsZS5zZXJpYWxpemUoKSx0aGlzLmhheXN0YWNrLnNlcmlhbGl6ZSgpLHRdfXJldHVyblsiaW5kZXgtb2YiLHRoaXMubmVlZGxlLnNlcmlhbGl6ZSgpLHRoaXMuaGF5c3RhY2suc2VyaWFsaXplKCldfTt2YXIgcHI9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3RoaXMuaW5wdXRUeXBlPXQsdGhpcy50eXBlPWUsdGhpcy5pbnB1dD1yLHRoaXMuY2FzZXM9bix0aGlzLm91dHB1dHM9aSx0aGlzLm90aGVyd2lzZT1hfTtwci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDUpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IDQgYXJndW1lbnRzLCBidXQgZm91bmQgb25seSAiKyh0Lmxlbmd0aC0xKSsiLiIpO2lmKHQubGVuZ3RoJTIhPTEpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGFuIGV2ZW4gbnVtYmVyIG9mIGFyZ3VtZW50cy4iKTt2YXIgcixuO2UuZXhwZWN0ZWRUeXBlJiYidmFsdWUiIT09ZS5leHBlY3RlZFR5cGUua2luZCYmKG49ZS5leHBlY3RlZFR5cGUpO2Zvcih2YXIgaT17fSxhPVtdLG89MjtvPHQubGVuZ3RoLTE7bys9Mil7dmFyIHM9dFtvXSxsPXRbbysxXTtBcnJheS5pc0FycmF5KHMpfHwocz1bc10pO3ZhciBjPWUuY29uY2F0KG8pO2lmKDA9PT1zLmxlbmd0aClyZXR1cm4gYy5lcnJvcigiRXhwZWN0ZWQgYXQgbGVhc3Qgb25lIGJyYW5jaCBsYWJlbC4iKTtmb3IodmFyIHU9MCxmPXM7dTxmLmxlbmd0aDt1Kz0xKXt2YXIgaD1mW3VdO2lmKCJudW1iZXIiIT10eXBlb2YgaCYmInN0cmluZyIhPXR5cGVvZiBoKXJldHVybiBjLmVycm9yKCJCcmFuY2ggbGFiZWxzIG11c3QgYmUgbnVtYmVycyBvciBzdHJpbmdzLiIpO2lmKCJudW1iZXIiPT10eXBlb2YgaCYmTWF0aC5hYnMoaCk+TnVtYmVyLk1BWF9TQUZFX0lOVEVHRVIpcmV0dXJuIGMuZXJyb3IoIkJyYW5jaCBsYWJlbHMgbXVzdCBiZSBpbnRlZ2VycyBubyBsYXJnZXIgdGhhbiAiK051bWJlci5NQVhfU0FGRV9JTlRFR0VSKyIuIik7aWYoIm51bWJlciI9PXR5cGVvZiBoJiZNYXRoLmZsb29yKGgpIT09aClyZXR1cm4gYy5lcnJvcigiTnVtZXJpYyBicmFuY2ggbGFiZWxzIG11c3QgYmUgaW50ZWdlciB2YWx1ZXMuIik7aWYocil7aWYoYy5jaGVja1N1YnR5cGUocixzZShoKSkpcmV0dXJuIG51bGx9ZWxzZSByPXNlKGgpO2lmKHZvaWQgMCE9PWlbU3RyaW5nKGgpXSlyZXR1cm4gYy5lcnJvcigiQnJhbmNoIGxhYmVscyBtdXN0IGJlIHVuaXF1ZS4iKTtpW1N0cmluZyhoKV09YS5sZW5ndGh9dmFyIHA9ZS5wYXJzZShsLG8sbik7aWYoIXApcmV0dXJuIG51bGw7bj1ufHxwLnR5cGUsYS5wdXNoKHApfXZhciBkPWUucGFyc2UodFsxXSwxLEh0KTtpZighZClyZXR1cm4gbnVsbDt2YXIgbT1lLnBhcnNlKHRbdC5sZW5ndGgtMV0sdC5sZW5ndGgtMSxuKTtyZXR1cm4gbT8idmFsdWUiIT09ZC50eXBlLmtpbmQmJmUuY29uY2F0KDEpLmNoZWNrU3VidHlwZShyLGQudHlwZSk/bnVsbDpuZXcgcHIocixuLGQsaSxhLG0pOm51bGx9LHByLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlucHV0LmV2YWx1YXRlKHQpO3JldHVybihzZShlKT09PXRoaXMuaW5wdXRUeXBlJiZ0aGlzLm91dHB1dHNbdGhpcy5jYXNlc1tlXV18fHRoaXMub3RoZXJ3aXNlKS5ldmFsdWF0ZSh0KX0scHIucHJvdG90eXBlLmVhY2hDaGlsZD1mdW5jdGlvbih0KXt0KHRoaXMuaW5wdXQpLHRoaXMub3V0cHV0cy5mb3JFYWNoKHQpLHQodGhpcy5vdGhlcndpc2UpfSxwci5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLm91dHB1dHMuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm91dHB1dERlZmluZWQoKX0pKSYmdGhpcy5vdGhlcndpc2Uub3V0cHV0RGVmaW5lZCgpfSxwci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1bIm1hdGNoIix0aGlzLmlucHV0LnNlcmlhbGl6ZSgpXSxyPVtdLG49e30saT0wLGE9T2JqZWN0LmtleXModGhpcy5jYXNlcykuc29ydCgpO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTt2b2lkIDA9PT0oZj1uW3RoaXMuY2FzZXNbb11dKT8oblt0aGlzLmNhc2VzW29dXT1yLmxlbmd0aCxyLnB1c2goW3RoaXMuY2FzZXNbb10sW29dXSkpOnJbZl1bMV0ucHVzaChvKX1mb3IodmFyIHM9ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PT10LmlucHV0VHlwZS5raW5kP051bWJlcihlKTplfSxsPTAsYz1yO2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXSxmPXVbMF0saD11WzFdOzE9PT1oLmxlbmd0aD9lLnB1c2gocyhoWzBdKSk6ZS5wdXNoKGgubWFwKHMpKSxlLnB1c2godGhpcy5vdXRwdXRzW291dHB1dEluZGV4JDFdLnNlcmlhbGl6ZSgpKX1yZXR1cm4gZS5wdXNoKHRoaXMub3RoZXJ3aXNlLnNlcmlhbGl6ZSgpKSxlfTt2YXIgZHI9ZnVuY3Rpb24odCxlLHIpe3RoaXMudHlwZT10LHRoaXMuYnJhbmNoZXM9ZSx0aGlzLm90aGVyd2lzZT1yfTtkci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPDQpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGF0IGxlYXN0IDMgYXJndW1lbnRzLCBidXQgZm91bmQgb25seSAiKyh0Lmxlbmd0aC0xKSsiLiIpO2lmKHQubGVuZ3RoJTIhPTApcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIGFuIG9kZCBudW1iZXIgb2YgYXJndW1lbnRzLiIpO3ZhciByO2UuZXhwZWN0ZWRUeXBlJiYidmFsdWUiIT09ZS5leHBlY3RlZFR5cGUua2luZCYmKHI9ZS5leHBlY3RlZFR5cGUpO2Zvcih2YXIgbj1bXSxpPTE7aTx0Lmxlbmd0aC0xO2krPTIpe3ZhciBhPWUucGFyc2UodFtpXSxpLGp0KTtpZighYSlyZXR1cm4gbnVsbDt2YXIgbz1lLnBhcnNlKHRbaSsxXSxpKzEscik7aWYoIW8pcmV0dXJuIG51bGw7bi5wdXNoKFthLG9dKSxyPXJ8fG8udHlwZX12YXIgcz1lLnBhcnNlKHRbdC5sZW5ndGgtMV0sdC5sZW5ndGgtMSxyKTtyZXR1cm4gcz9uZXcgZHIocixuLHMpOm51bGx9LGRyLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MCxyPXRoaXMuYnJhbmNoZXM7ZTxyLmxlbmd0aDtlKz0xKXt2YXIgbj1yW2VdLGk9blswXSxhPW5bMV07aWYoaS5ldmFsdWF0ZSh0KSlyZXR1cm4gYS5ldmFsdWF0ZSh0KX1yZXR1cm4gdGhpcy5vdGhlcndpc2UuZXZhbHVhdGUodCl9LGRyLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10aGlzLmJyYW5jaGVzO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxpPW5bMF0sYT1uWzFdO3QoaSksdChhKX10KHRoaXMub3RoZXJ3aXNlKX0sZHIucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5icmFuY2hlcy5ldmVyeSgoZnVuY3Rpb24odCl7dFswXTtyZXR1cm4gdFsxXS5vdXRwdXREZWZpbmVkKCl9KSkmJnRoaXMub3RoZXJ3aXNlLm91dHB1dERlZmluZWQoKX0sZHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3ZhciB0PVsiY2FzZSJdO3JldHVybiB0aGlzLmVhY2hDaGlsZCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUuc2VyaWFsaXplKCkpfSkpLHR9O3ZhciBtcj1mdW5jdGlvbih0LGUscixuKXt0aGlzLnR5cGU9dCx0aGlzLmlucHV0PWUsdGhpcy5iZWdpbkluZGV4PXIsdGhpcy5lbmRJbmRleD1ufTtmdW5jdGlvbiBncih0LGUpe3JldHVybiI9PSI9PT10fHwiIT0iPT09dD8iYm9vbGVhbiI9PT1lLmtpbmR8fCJzdHJpbmciPT09ZS5raW5kfHwibnVtYmVyIj09PWUua2luZHx8Im51bGwiPT09ZS5raW5kfHwidmFsdWUiPT09ZS5raW5kOiJzdHJpbmciPT09ZS5raW5kfHwibnVtYmVyIj09PWUua2luZHx8InZhbHVlIj09PWUua2luZH1mdW5jdGlvbiB2cih0LGUscixuKXtyZXR1cm4gMD09PW4uY29tcGFyZShlLHIpfWZ1bmN0aW9uIHlyKHQsZSxyKXt2YXIgbj0iPT0iIT09dCYmIiE9IiE9PXQ7cmV0dXJuIGZ1bmN0aW9uKCl7ZnVuY3Rpb24gaSh0LGUscil7dGhpcy50eXBlPWp0LHRoaXMubGhzPXQsdGhpcy5yaHM9ZSx0aGlzLmNvbGxhdG9yPXIsdGhpcy5oYXNVbnR5cGVkQXJndW1lbnQ9InZhbHVlIj09PXQudHlwZS5raW5kfHwidmFsdWUiPT09ZS50eXBlLmtpbmR9cmV0dXJuIGkucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigzIT09dC5sZW5ndGgmJjQhPT10Lmxlbmd0aClyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgdHdvIG9yIHRocmVlIGFyZ3VtZW50cy4iKTt2YXIgcj10WzBdLGE9ZS5wYXJzZSh0WzFdLDEsSHQpO2lmKCFhKXJldHVybiBudWxsO2lmKCFncihyLGEudHlwZSkpcmV0dXJuIGUuY29uY2F0KDEpLmVycm9yKCciJytyKyJcIiBjb21wYXJpc29ucyBhcmUgbm90IHN1cHBvcnRlZCBmb3IgdHlwZSAnIitYdChhLnR5cGUpKyInLiIpO3ZhciBvPWUucGFyc2UodFsyXSwyLEh0KTtpZighbylyZXR1cm4gbnVsbDtpZighZ3IocixvLnR5cGUpKXJldHVybiBlLmNvbmNhdCgyKS5lcnJvcignIicrcisiXCIgY29tcGFyaXNvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgZm9yIHR5cGUgJyIrWHQoby50eXBlKSsiJy4iKTtpZihhLnR5cGUua2luZCE9PW8udHlwZS5raW5kJiYidmFsdWUiIT09YS50eXBlLmtpbmQmJiJ2YWx1ZSIhPT1vLnR5cGUua2luZClyZXR1cm4gZS5lcnJvcigiQ2Fubm90IGNvbXBhcmUgdHlwZXMgJyIrWHQoYS50eXBlKSsiJyBhbmQgJyIrWHQoby50eXBlKSsiJy4iKTtuJiYoInZhbHVlIj09PWEudHlwZS5raW5kJiYidmFsdWUiIT09by50eXBlLmtpbmQ/YT1uZXcgaGUoby50eXBlLFthXSk6InZhbHVlIiE9PWEudHlwZS5raW5kJiYidmFsdWUiPT09by50eXBlLmtpbmQmJihvPW5ldyBoZShhLnR5cGUsW29dKSkpO3ZhciBzPW51bGw7aWYoND09PXQubGVuZ3RoKXtpZigic3RyaW5nIiE9PWEudHlwZS5raW5kJiYic3RyaW5nIiE9PW8udHlwZS5raW5kJiYidmFsdWUiIT09YS50eXBlLmtpbmQmJiJ2YWx1ZSIhPT1vLnR5cGUua2luZClyZXR1cm4gZS5lcnJvcigiQ2Fubm90IHVzZSBjb2xsYXRvciB0byBjb21wYXJlIG5vbi1zdHJpbmcgdHlwZXMuIik7aWYoIShzPWUucGFyc2UodFszXSwzLHF0KSkpcmV0dXJuIG51bGx9cmV0dXJuIG5ldyBpKGEsbyxzKX0saS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24oaSl7dmFyIGE9dGhpcy5saHMuZXZhbHVhdGUoaSksbz10aGlzLnJocy5ldmFsdWF0ZShpKTtpZihuJiZ0aGlzLmhhc1VudHlwZWRBcmd1bWVudCl7dmFyIHM9c2UoYSksbD1zZShvKTtpZihzLmtpbmQhPT1sLmtpbmR8fCJzdHJpbmciIT09cy5raW5kJiYibnVtYmVyIiE9PXMua2luZCl0aHJvdyBuZXcgdWUoJ0V4cGVjdGVkIGFyZ3VtZW50cyBmb3IgIicrdCsnIiB0byBiZSAoc3RyaW5nLCBzdHJpbmcpIG9yIChudW1iZXIsIG51bWJlciksIGJ1dCBmb3VuZCAoJytzLmtpbmQrIiwgIitsLmtpbmQrIikgaW5zdGVhZC4iKX1pZih0aGlzLmNvbGxhdG9yJiYhbiYmdGhpcy5oYXNVbnR5cGVkQXJndW1lbnQpe3ZhciBjPXNlKGEpLHU9c2Uobyk7aWYoInN0cmluZyIhPT1jLmtpbmR8fCJzdHJpbmciIT09dS5raW5kKXJldHVybiBlKGksYSxvKX1yZXR1cm4gdGhpcy5jb2xsYXRvcj9yKGksYSxvLHRoaXMuY29sbGF0b3IuZXZhbHVhdGUoaSkpOmUoaSxhLG8pfSxpLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmxocyksdCh0aGlzLnJocyksdGhpcy5jb2xsYXRvciYmdCh0aGlzLmNvbGxhdG9yKX0saS5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiEwfSxpLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgZT1bdF07cmV0dXJuIHRoaXMuZWFjaENoaWxkKChmdW5jdGlvbih0KXtlLnB1c2godC5zZXJpYWxpemUoKSl9KSksZX0saX0oKX1tci5wYXJzZT1mdW5jdGlvbih0LGUpe2lmKHQubGVuZ3RoPD0yfHx0Lmxlbmd0aD49NSlyZXR1cm4gZS5lcnJvcigiRXhwZWN0ZWQgMyBvciA0IGFyZ3VtZW50cywgYnV0IGZvdW5kICIrKHQubGVuZ3RoLTEpKyIgaW5zdGVhZC4iKTt2YXIgcj1lLnBhcnNlKHRbMV0sMSxIdCksbj1lLnBhcnNlKHRbMl0sMixCdCk7aWYoIXJ8fCFuKXJldHVybiBudWxsO2lmKCFLdChyLnR5cGUsW1d0KEh0KSxOdCxIdF0pKXJldHVybiBlLmVycm9yKCJFeHBlY3RlZCBmaXJzdCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGFycmF5IG9yIHN0cmluZywgYnV0IGZvdW5kICIrWHQoci50eXBlKSsiIGluc3RlYWQiKTtpZig0PT09dC5sZW5ndGgpe3ZhciBpPWUucGFyc2UodFszXSwzLEJ0KTtyZXR1cm4gaT9uZXcgbXIoci50eXBlLHIsbixpKTpudWxsfXJldHVybiBuZXcgbXIoci50eXBlLHIsbil9LG1yLnByb3RvdHlwZS5ldmFsdWF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmlucHV0LmV2YWx1YXRlKHQpLHI9dGhpcy5iZWdpbkluZGV4LmV2YWx1YXRlKHQpO2lmKCFRdChlLFsic3RyaW5nIiwiYXJyYXkiXSkpdGhyb3cgbmV3IHVlKCJFeHBlY3RlZCBmaXJzdCBhcmd1bWVudCB0byBiZSBvZiB0eXBlIGFycmF5IG9yIHN0cmluZywgYnV0IGZvdW5kICIrWHQoc2UoZSkpKyIgaW5zdGVhZC4iKTtpZih0aGlzLmVuZEluZGV4KXt2YXIgbj10aGlzLmVuZEluZGV4LmV2YWx1YXRlKHQpO3JldHVybiBlLnNsaWNlKHIsbil9cmV0dXJuIGUuc2xpY2Uocil9LG1yLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLmlucHV0KSx0KHRoaXMuYmVnaW5JbmRleCksdGhpcy5lbmRJbmRleCYmdCh0aGlzLmVuZEluZGV4KX0sbXIucHJvdG90eXBlLm91dHB1dERlZmluZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sbXIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe2lmKG51bGwhPXRoaXMuZW5kSW5kZXgmJnZvaWQgMCE9PXRoaXMuZW5kSW5kZXgpe3ZhciB0PXRoaXMuZW5kSW5kZXguc2VyaWFsaXplKCk7cmV0dXJuWyJzbGljZSIsdGhpcy5pbnB1dC5zZXJpYWxpemUoKSx0aGlzLmJlZ2luSW5kZXguc2VyaWFsaXplKCksdF19cmV0dXJuWyJzbGljZSIsdGhpcy5pbnB1dC5zZXJpYWxpemUoKSx0aGlzLmJlZ2luSW5kZXguc2VyaWFsaXplKCldfTt2YXIgeHI9eXIoIj09IiwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPT09cn0pLHZyKSxicj15cigiIT0iLChmdW5jdGlvbih0LGUscil7cmV0dXJuIGUhPT1yfSksKGZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiF2cigwLGUscixuKX0pKSxfcj15cigiPCIsKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZTxyfSksKGZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuLmNvbXBhcmUoZSxyKTwwfSkpLHdyPXlyKCI+IiwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPnJ9KSwoZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG4uY29tcGFyZShlLHIpPjB9KSksVHI9eXIoIjw9IiwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlPD1yfSksKGZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuLmNvbXBhcmUoZSxyKTw9MH0pKSxrcj15cigiPj0iLChmdW5jdGlvbih0LGUscil7cmV0dXJuIGU+PXJ9KSwoZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG4uY29tcGFyZShlLHIpPj0wfSkpLEFyPWZ1bmN0aW9uKHQsZSxyLG4saSl7dGhpcy50eXBlPU50LHRoaXMubnVtYmVyPXQsdGhpcy5sb2NhbGU9ZSx0aGlzLmN1cnJlbmN5PXIsdGhpcy5taW5GcmFjdGlvbkRpZ2l0cz1uLHRoaXMubWF4RnJhY3Rpb25EaWdpdHM9aX07QXIucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigzIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIHR3byBhcmd1bWVudHMuIik7dmFyIHI9ZS5wYXJzZSh0WzFdLDEsQnQpO2lmKCFyKXJldHVybiBudWxsO3ZhciBuPXRbMl07aWYoIm9iamVjdCIhPXR5cGVvZiBufHxBcnJheS5pc0FycmF5KG4pKXJldHVybiBlLmVycm9yKCJOdW1iZXJGb3JtYXQgb3B0aW9ucyBhcmd1bWVudCBtdXN0IGJlIGFuIG9iamVjdC4iKTt2YXIgaT1udWxsO2lmKG4ubG9jYWxlJiYhKGk9ZS5wYXJzZShuLmxvY2FsZSwxLE50KSkpcmV0dXJuIG51bGw7dmFyIGE9bnVsbDtpZihuLmN1cnJlbmN5JiYhKGE9ZS5wYXJzZShuLmN1cnJlbmN5LDEsTnQpKSlyZXR1cm4gbnVsbDt2YXIgbz1udWxsO2lmKG5bIm1pbi1mcmFjdGlvbi1kaWdpdHMiXSYmIShvPWUucGFyc2UoblsibWluLWZyYWN0aW9uLWRpZ2l0cyJdLDEsQnQpKSlyZXR1cm4gbnVsbDt2YXIgcz1udWxsO3JldHVybiBuWyJtYXgtZnJhY3Rpb24tZGlnaXRzIl0mJiEocz1lLnBhcnNlKG5bIm1heC1mcmFjdGlvbi1kaWdpdHMiXSwxLEJ0KSk/bnVsbDpuZXcgQXIocixpLGEsbyxzKX0sQXIucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgSW50bC5OdW1iZXJGb3JtYXQodGhpcy5sb2NhbGU/dGhpcy5sb2NhbGUuZXZhbHVhdGUodCk6W10se3N0eWxlOnRoaXMuY3VycmVuY3k/ImN1cnJlbmN5IjoiZGVjaW1hbCIsY3VycmVuY3k6dGhpcy5jdXJyZW5jeT90aGlzLmN1cnJlbmN5LmV2YWx1YXRlKHQpOnZvaWQgMCxtaW5pbXVtRnJhY3Rpb25EaWdpdHM6dGhpcy5taW5GcmFjdGlvbkRpZ2l0cz90aGlzLm1pbkZyYWN0aW9uRGlnaXRzLmV2YWx1YXRlKHQpOnZvaWQgMCxtYXhpbXVtRnJhY3Rpb25EaWdpdHM6dGhpcy5tYXhGcmFjdGlvbkRpZ2l0cz90aGlzLm1heEZyYWN0aW9uRGlnaXRzLmV2YWx1YXRlKHQpOnZvaWQgMH0pLmZvcm1hdCh0aGlzLm51bWJlci5ldmFsdWF0ZSh0KSl9LEFyLnByb3RvdHlwZS5lYWNoQ2hpbGQ9ZnVuY3Rpb24odCl7dCh0aGlzLm51bWJlciksdGhpcy5sb2NhbGUmJnQodGhpcy5sb2NhbGUpLHRoaXMuY3VycmVuY3kmJnQodGhpcy5jdXJyZW5jeSksdGhpcy5taW5GcmFjdGlvbkRpZ2l0cyYmdCh0aGlzLm1pbkZyYWN0aW9uRGlnaXRzKSx0aGlzLm1heEZyYWN0aW9uRGlnaXRzJiZ0KHRoaXMubWF4RnJhY3Rpb25EaWdpdHMpfSxBci5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiExfSxBci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIHRoaXMubG9jYWxlJiYodC5sb2NhbGU9dGhpcy5sb2NhbGUuc2VyaWFsaXplKCkpLHRoaXMuY3VycmVuY3kmJih0LmN1cnJlbmN5PXRoaXMuY3VycmVuY3kuc2VyaWFsaXplKCkpLHRoaXMubWluRnJhY3Rpb25EaWdpdHMmJih0WyJtaW4tZnJhY3Rpb24tZGlnaXRzIl09dGhpcy5taW5GcmFjdGlvbkRpZ2l0cy5zZXJpYWxpemUoKSksdGhpcy5tYXhGcmFjdGlvbkRpZ2l0cyYmKHRbIm1heC1mcmFjdGlvbi1kaWdpdHMiXT10aGlzLm1heEZyYWN0aW9uRGlnaXRzLnNlcmlhbGl6ZSgpKSxbIm51bWJlci1mb3JtYXQiLHRoaXMubnVtYmVyLnNlcmlhbGl6ZSgpLHRdfTt2YXIgTXI9ZnVuY3Rpb24odCl7dGhpcy50eXBlPUJ0LHRoaXMuaW5wdXQ9dH07TXIucGFyc2U9ZnVuY3Rpb24odCxlKXtpZigyIT09dC5sZW5ndGgpcmV0dXJuIGUuZXJyb3IoIkV4cGVjdGVkIDEgYXJndW1lbnQsIGJ1dCBmb3VuZCAiKyh0Lmxlbmd0aC0xKSsiIGluc3RlYWQuIik7dmFyIHI9ZS5wYXJzZSh0WzFdLDEpO3JldHVybiByPyJhcnJheSIhPT1yLnR5cGUua2luZCYmInN0cmluZyIhPT1yLnR5cGUua2luZCYmInZhbHVlIiE9PXIudHlwZS5raW5kP2UuZXJyb3IoIkV4cGVjdGVkIGFyZ3VtZW50IG9mIHR5cGUgc3RyaW5nIG9yIGFycmF5LCBidXQgZm91bmQgIitYdChyLnR5cGUpKyIgaW5zdGVhZC4iKTpuZXcgTXIocik6bnVsbH0sTXIucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXQuZXZhbHVhdGUodCk7aWYoInN0cmluZyI9PXR5cGVvZiBlKXJldHVybiBlLmxlbmd0aDtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybiBlLmxlbmd0aDt0aHJvdyBuZXcgdWUoIkV4cGVjdGVkIHZhbHVlIHRvIGJlIG9mIHR5cGUgc3RyaW5nIG9yIGFycmF5LCBidXQgZm91bmQgIitYdChzZShlKSkrIiBpbnN0ZWFkLiIpfSxNci5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3QodGhpcy5pbnB1dCl9LE1yLnByb3RvdHlwZS5vdXRwdXREZWZpbmVkPWZ1bmN0aW9uKCl7cmV0dXJuITF9LE1yLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD1bImxlbmd0aCJdO3JldHVybiB0aGlzLmVhY2hDaGlsZCgoZnVuY3Rpb24oZSl7dC5wdXNoKGUuc2VyaWFsaXplKCkpfSkpLHR9O3ZhciBTcj17Ij09Ijp4ciwiIT0iOmJyLCI+Ijp3ciwiPCI6X3IsIj49IjprciwiPD0iOlRyLGFycmF5OmhlLGF0OnVyLGJvb2xlYW46aGUsY2FzZTpkcixjb2FsZXNjZTpscixjb2xsYXRvcjpiZSxmb3JtYXQ6cGUsaW1hZ2U6ZGUsaW46ZnIsImluZGV4LW9mIjpocixpbnRlcnBvbGF0ZTpvciwiaW50ZXJwb2xhdGUtaGNsIjpvciwiaW50ZXJwb2xhdGUtbGFiIjpvcixsZW5ndGg6TXIsbGV0OmNyLGxpdGVyYWw6Y2UsbWF0Y2g6cHIsbnVtYmVyOmhlLCJudW1iZXItZm9ybWF0IjpBcixvYmplY3Q6aGUsc2xpY2U6bXIsc3RlcDpIZSxzdHJpbmc6aGUsInRvLWJvb2xlYW4iOmdlLCJ0by1jb2xvciI6Z2UsInRvLW51bWJlciI6Z2UsInRvLXN0cmluZyI6Z2UsdmFyOmplLHdpdGhpbjpSZX07ZnVuY3Rpb24gRXIodCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sYT1lWzNdO3I9ci5ldmFsdWF0ZSh0KSxuPW4uZXZhbHVhdGUodCksaT1pLmV2YWx1YXRlKHQpO3ZhciBvPWE/YS5ldmFsdWF0ZSh0KToxLHM9YWUocixuLGksbyk7aWYocyl0aHJvdyBuZXcgdWUocyk7cmV0dXJuIG5ldyB0ZShyLzI1NSpvLG4vMjU1Km8saS8yNTUqbyxvKX1mdW5jdGlvbiBMcih0LGUpe3JldHVybiB0IGluIGV9ZnVuY3Rpb24gQ3IodCxlKXt2YXIgcj1lW3RdO3JldHVybiB2b2lkIDA9PT1yP251bGw6cn1mdW5jdGlvbiBQcih0KXtyZXR1cm57dHlwZTp0fX1mdW5jdGlvbiBJcih0KXtyZXR1cm57cmVzdWx0OiJzdWNjZXNzIix2YWx1ZTp0fX1mdW5jdGlvbiBPcih0KXtyZXR1cm57cmVzdWx0OiJlcnJvciIsdmFsdWU6dH19ZnVuY3Rpb24genIodCl7cmV0dXJuImRhdGEtZHJpdmVuIj09PXRbInByb3BlcnR5LXR5cGUiXXx8ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIj09PXRbInByb3BlcnR5LXR5cGUiXX1mdW5jdGlvbiBEcih0KXtyZXR1cm4hIXQuZXhwcmVzc2lvbiYmdC5leHByZXNzaW9uLnBhcmFtZXRlcnMuaW5kZXhPZigiem9vbSIpPi0xfWZ1bmN0aW9uIFJyKHQpe3JldHVybiEhdC5leHByZXNzaW9uJiZ0LmV4cHJlc3Npb24uaW50ZXJwb2xhdGVkfWZ1bmN0aW9uIEZyKHQpe3JldHVybiB0IGluc3RhbmNlb2YgTnVtYmVyPyJudW1iZXIiOnQgaW5zdGFuY2VvZiBTdHJpbmc/InN0cmluZyI6dCBpbnN0YW5jZW9mIEJvb2xlYW4/ImJvb2xlYW4iOkFycmF5LmlzQXJyYXkodCk/ImFycmF5IjpudWxsPT09dD8ibnVsbCI6dHlwZW9mIHR9ZnVuY3Rpb24gQnIodCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmIUFycmF5LmlzQXJyYXkodCl9ZnVuY3Rpb24gTnIodCl7cmV0dXJuIHR9ZnVuY3Rpb24ganIodCxlLHIpe3JldHVybiB2b2lkIDAhPT10P3Q6dm9pZCAwIT09ZT9lOnZvaWQgMCE9PXI/cjp2b2lkIDB9ZnVuY3Rpb24gVXIodCxlLHIsbixpKXtyZXR1cm4ganIodHlwZW9mIHI9PT1pP25bcl06dm9pZCAwLHQuZGVmYXVsdCxlLmRlZmF1bHQpfWZ1bmN0aW9uIFZyKHQsZSxyKXtpZigibnVtYmVyIiE9PUZyKHIpKXJldHVybiBqcih0LmRlZmF1bHQsZS5kZWZhdWx0KTt2YXIgbj10LnN0b3BzLmxlbmd0aDtpZigxPT09bilyZXR1cm4gdC5zdG9wc1swXVsxXTtpZihyPD10LnN0b3BzWzBdWzBdKXJldHVybiB0LnN0b3BzWzBdWzFdO2lmKHI+PXQuc3RvcHNbbi0xXVswXSlyZXR1cm4gdC5zdG9wc1tuLTFdWzFdO3ZhciBpPVZlKHQuc3RvcHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdFswXX0pKSxyKTtyZXR1cm4gdC5zdG9wc1tpXVsxXX1mdW5jdGlvbiBIcih0LGUscil7dmFyIG49dm9pZCAwIT09dC5iYXNlP3QuYmFzZToxO2lmKCJudW1iZXIiIT09RnIocikpcmV0dXJuIGpyKHQuZGVmYXVsdCxlLmRlZmF1bHQpO3ZhciBpPXQuc3RvcHMubGVuZ3RoO2lmKDE9PT1pKXJldHVybiB0LnN0b3BzWzBdWzFdO2lmKHI8PXQuc3RvcHNbMF1bMF0pcmV0dXJuIHQuc3RvcHNbMF1bMV07aWYocj49dC5zdG9wc1tpLTFdWzBdKXJldHVybiB0LnN0b3BzW2ktMV1bMV07dmFyIGE9VmUodC5zdG9wcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkpLHIpLG89ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9bi1yLGE9dC1yO3JldHVybiAwPT09aT8wOjE9PT1lP2EvaTooTWF0aC5wb3coZSxhKS0xKS8oTWF0aC5wb3coZSxpKS0xKX0ocixuLHQuc3RvcHNbYV1bMF0sdC5zdG9wc1thKzFdWzBdKSxzPXQuc3RvcHNbYV1bMV0sbD10LnN0b3BzW2ErMV1bMV0sYz1HZVtlLnR5cGVdfHxOcjtpZih0LmNvbG9yU3BhY2UmJiJyZ2IiIT09dC5jb2xvclNwYWNlKXt2YXIgdT1hclt0LmNvbG9yU3BhY2VdO2M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdS5yZXZlcnNlKHUuaW50ZXJwb2xhdGUodS5mb3J3YXJkKHQpLHUuZm9yd2FyZChlKSxvKSl9fXJldHVybiJmdW5jdGlvbiI9PXR5cGVvZiBzLmV2YWx1YXRlP3tldmFsdWF0ZTpmdW5jdGlvbigpe2Zvcih2YXIgdD1bXSxlPWFyZ3VtZW50cy5sZW5ndGg7ZS0tOyl0W2VdPWFyZ3VtZW50c1tlXTt2YXIgcj1zLmV2YWx1YXRlLmFwcGx5KHZvaWQgMCx0KSxuPWwuZXZhbHVhdGUuYXBwbHkodm9pZCAwLHQpO2lmKHZvaWQgMCE9PXImJnZvaWQgMCE9PW4pcmV0dXJuIGMocixuLG8pfX06YyhzLGwsbyl9ZnVuY3Rpb24gcXIodCxlLHIpe3JldHVybiJjb2xvciI9PT1lLnR5cGU/cj10ZS5wYXJzZShyKToiZm9ybWF0dGVkIj09PWUudHlwZT9yPW5lLmZyb21TdHJpbmcoci50b1N0cmluZygpKToicmVzb2x2ZWRJbWFnZSI9PT1lLnR5cGU/cj1pZS5mcm9tU3RyaW5nKHIudG9TdHJpbmcoKSk6RnIocik9PT1lLnR5cGV8fCJlbnVtIj09PWUudHlwZSYmZS52YWx1ZXNbcl18fChyPXZvaWQgMCksanIocix0LmRlZmF1bHQsZS5kZWZhdWx0KX14ZS5yZWdpc3RlcihTcix7ZXJyb3I6W3traW5kOiJlcnJvciJ9LFtOdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3Rocm93IG5ldyB1ZShyLmV2YWx1YXRlKHQpKX1dLHR5cGVvZjpbTnQsW0h0XSxmdW5jdGlvbih0LGUpe3JldHVybiBYdChzZShlWzBdLmV2YWx1YXRlKHQpKSl9XSwidG8tcmdiYSI6W1d0KEJ0LDQpLFtVdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS5ldmFsdWF0ZSh0KS50b0FycmF5KCl9XSxyZ2I6W1V0LFtCdCxCdCxCdF0sRXJdLHJnYmE6W1V0LFtCdCxCdCxCdCxCdF0sRXJdLGhhczp7dHlwZTpqdCxvdmVybG9hZHM6W1tbTnRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIExyKGVbMF0uZXZhbHVhdGUodCksdC5wcm9wZXJ0aWVzKCkpfV0sW1tOdCxWdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gTHIoci5ldmFsdWF0ZSh0KSxuLmV2YWx1YXRlKHQpKX1dXX0sZ2V0Ont0eXBlOkh0LG92ZXJsb2FkczpbW1tOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gQ3IoZVswXS5ldmFsdWF0ZSh0KSx0LnByb3BlcnRpZXMoKSl9XSxbW050LFZ0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybiBDcihyLmV2YWx1YXRlKHQpLG4uZXZhbHVhdGUodCkpfV1dfSwiZmVhdHVyZS1zdGF0ZSI6W0h0LFtOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gQ3IoZVswXS5ldmFsdWF0ZSh0KSx0LmZlYXR1cmVTdGF0ZXx8e30pfV0scHJvcGVydGllczpbVnQsW10sZnVuY3Rpb24odCl7cmV0dXJuIHQucHJvcGVydGllcygpfV0sImdlb21ldHJ5LXR5cGUiOltOdCxbXSxmdW5jdGlvbih0KXtyZXR1cm4gdC5nZW9tZXRyeVR5cGUoKX1dLGlkOltIdCxbXSxmdW5jdGlvbih0KXtyZXR1cm4gdC5pZCgpfV0sem9vbTpbQnQsW10sZnVuY3Rpb24odCl7cmV0dXJuIHQuZ2xvYmFscy56b29tfV0sImhlYXRtYXAtZGVuc2l0eSI6W0J0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0Lmdsb2JhbHMuaGVhdG1hcERlbnNpdHl8fDB9XSwibGluZS1wcm9ncmVzcyI6W0J0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiB0Lmdsb2JhbHMubGluZVByb2dyZXNzfHwwfV0sYWNjdW11bGF0ZWQ6W0h0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDA9PT10Lmdsb2JhbHMuYWNjdW11bGF0ZWQ/bnVsbDp0Lmdsb2JhbHMuYWNjdW11bGF0ZWR9XSwiKyI6W0J0LFByKEJ0KSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPWU7bjxpLmxlbmd0aDtuKz0xKXtyKz1pW25dLmV2YWx1YXRlKHQpfXJldHVybiByfV0sIioiOltCdCxQcihCdCksZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MSxuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7cio9aVtuXS5ldmFsdWF0ZSh0KX1yZXR1cm4gcn1dLCItIjp7dHlwZTpCdCxvdmVybG9hZHM6W1tbQnQsQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHIuZXZhbHVhdGUodCktbi5ldmFsdWF0ZSh0KX1dLFtbQnRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuLWVbMF0uZXZhbHVhdGUodCl9XV19LCIvIjpbQnQsW0J0LEJ0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybiByLmV2YWx1YXRlKHQpL24uZXZhbHVhdGUodCl9XSwiJSI6W0J0LFtCdCxCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXTtyZXR1cm4gci5ldmFsdWF0ZSh0KSVuLmV2YWx1YXRlKHQpfV0sbG4yOltCdCxbXSxmdW5jdGlvbigpe3JldHVybiBNYXRoLkxOMn1dLHBpOltCdCxbXSxmdW5jdGlvbigpe3JldHVybiBNYXRoLlBJfV0sZTpbQnQsW10sZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5FfV0sIl4iOltCdCxbQnQsQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIE1hdGgucG93KHIuZXZhbHVhdGUodCksbi5ldmFsdWF0ZSh0KSl9XSxzcXJ0OltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5zcXJ0KHIuZXZhbHVhdGUodCkpfV0sbG9nMTA6W0J0LFtCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmxvZyhyLmV2YWx1YXRlKHQpKS9NYXRoLkxOMTB9XSxsbjpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgubG9nKHIuZXZhbHVhdGUodCkpfV0sbG9nMjpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgubG9nKHIuZXZhbHVhdGUodCkpL01hdGguTE4yfV0sc2luOltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5zaW4oci5ldmFsdWF0ZSh0KSl9XSxjb3M6W0J0LFtCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmNvcyhyLmV2YWx1YXRlKHQpKX1dLHRhbjpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGgudGFuKHIuZXZhbHVhdGUodCkpfV0sYXNpbjpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIE1hdGguYXNpbihyLmV2YWx1YXRlKHQpKX1dLGFjb3M6W0J0LFtCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmFjb3Moci5ldmFsdWF0ZSh0KSl9XSxhdGFuOltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5hdGFuKHIuZXZhbHVhdGUodCkpfV0sbWluOltCdCxQcihCdCksZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5taW4uYXBwbHkoTWF0aCxlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXZhbHVhdGUodCl9KSkpfV0sbWF4OltCdCxQcihCdCksZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCxlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZXZhbHVhdGUodCl9KSkpfV0sYWJzOltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5hYnMoci5ldmFsdWF0ZSh0KSl9XSxyb3VuZDpbQnQsW0J0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0uZXZhbHVhdGUodCk7cmV0dXJuIHI8MD8tTWF0aC5yb3VuZCgtcik6TWF0aC5yb3VuZChyKX1dLGZsb29yOltCdCxbQnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gTWF0aC5mbG9vcihyLmV2YWx1YXRlKHQpKX1dLGNlaWw6W0J0LFtCdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBNYXRoLmNlaWwoci5ldmFsdWF0ZSh0KSl9XSwiZmlsdGVyLT09IjpbanQsW050LEh0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj1lWzFdO3JldHVybiB0LnByb3BlcnRpZXMoKVtyLnZhbHVlXT09PW4udmFsdWV9XSwiZmlsdGVyLWlkLT09IjpbanQsW0h0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF07cmV0dXJuIHQuaWQoKT09PXIudmFsdWV9XSwiZmlsdGVyLXR5cGUtPT0iOltqdCxbTnRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXTtyZXR1cm4gdC5nZW9tZXRyeVR5cGUoKT09PXIudmFsdWV9XSwiZmlsdGVyLTwiOltqdCxbTnQsSHRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV0saT10LnByb3BlcnRpZXMoKVtyLnZhbHVlXSxhPW4udmFsdWU7cmV0dXJuIHR5cGVvZiBpPT10eXBlb2YgYSYmaTxhfV0sImZpbHRlci1pZC08IjpbanQsW0h0XSxmdW5jdGlvbih0LGUpe3ZhciByPWVbMF0sbj10LmlkKCksaT1yLnZhbHVlO3JldHVybiB0eXBlb2Ygbj09dHlwZW9mIGkmJm48aX1dLCJmaWx0ZXItPiI6W2p0LFtOdCxIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPXQucHJvcGVydGllcygpW3IudmFsdWVdLGE9bi52YWx1ZTtyZXR1cm4gdHlwZW9mIGk9PXR5cGVvZiBhJiZpPmF9XSwiZmlsdGVyLWlkLT4iOltqdCxbSHRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPXQuaWQoKSxpPXIudmFsdWU7cmV0dXJuIHR5cGVvZiBuPT10eXBlb2YgaSYmbj5pfV0sImZpbHRlci08PSI6W2p0LFtOdCxIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPXQucHJvcGVydGllcygpW3IudmFsdWVdLGE9bi52YWx1ZTtyZXR1cm4gdHlwZW9mIGk9PXR5cGVvZiBhJiZpPD1hfV0sImZpbHRlci1pZC08PSI6W2p0LFtIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49dC5pZCgpLGk9ci52YWx1ZTtyZXR1cm4gdHlwZW9mIG49PXR5cGVvZiBpJiZuPD1pfV0sImZpbHRlci0+PSI6W2p0LFtOdCxIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPXQucHJvcGVydGllcygpW3IudmFsdWVdLGE9bi52YWx1ZTtyZXR1cm4gdHlwZW9mIGk9PXR5cGVvZiBhJiZpPj1hfV0sImZpbHRlci1pZC0+PSI6W2p0LFtIdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49dC5pZCgpLGk9ci52YWx1ZTtyZXR1cm4gdHlwZW9mIG49PXR5cGVvZiBpJiZuPj1pfV0sImZpbHRlci1oYXMiOltqdCxbSHRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMF0udmFsdWUgaW4gdC5wcm9wZXJ0aWVzKCl9XSwiZmlsdGVyLWhhcy1pZCI6W2p0LFtdLGZ1bmN0aW9uKHQpe3JldHVybiBudWxsIT09dC5pZCgpJiZ2b2lkIDAhPT10LmlkKCl9XSwiZmlsdGVyLXR5cGUtaW4iOltqdCxbV3QoTnQpXSxmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLnZhbHVlLmluZGV4T2YodC5nZW9tZXRyeVR5cGUoKSk+PTB9XSwiZmlsdGVyLWlkLWluIjpbanQsW1d0KEh0KV0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS52YWx1ZS5pbmRleE9mKHQuaWQoKSk+PTB9XSwiZmlsdGVyLWluLXNtYWxsIjpbanQsW050LFd0KEh0KV0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3JldHVybiBlWzFdLnZhbHVlLmluZGV4T2YodC5wcm9wZXJ0aWVzKClbci52YWx1ZV0pPj0wfV0sImZpbHRlci1pbi1sYXJnZSI6W2p0LFtOdCxXdChIdCldLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4pe2Zvcig7cjw9bjspe3ZhciBpPXIrbj4+MTtpZihlW2ldPT09dClyZXR1cm4hMDtlW2ldPnQ/bj1pLTE6cj1pKzF9cmV0dXJuITF9KHQucHJvcGVydGllcygpW3IudmFsdWVdLG4udmFsdWUsMCxuLnZhbHVlLmxlbmd0aC0xKX1dLGFsbDp7dHlwZTpqdCxvdmVybG9hZHM6W1tbanQsanRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHIuZXZhbHVhdGUodCkmJm4uZXZhbHVhdGUodCl9XSxbUHIoanQpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj1lO3I8bi5sZW5ndGg7cis9MSl7aWYoIW5bcl0uZXZhbHVhdGUodCkpcmV0dXJuITF9cmV0dXJuITB9XV19LGFueTp7dHlwZTpqdCxvdmVybG9hZHM6W1tbanQsanRdLGZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXSxuPWVbMV07cmV0dXJuIHIuZXZhbHVhdGUodCl8fG4uZXZhbHVhdGUodCl9XSxbUHIoanQpLGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTAsbj1lO3I8bi5sZW5ndGg7cis9MSl7aWYobltyXS5ldmFsdWF0ZSh0KSlyZXR1cm4hMH1yZXR1cm4hMX1dXX0sIiEiOltqdCxbanRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIWVbMF0uZXZhbHVhdGUodCl9XSwiaXMtc3VwcG9ydGVkLXNjcmlwdCI6W2p0LFtOdF0sZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49dC5nbG9iYWxzJiZ0Lmdsb2JhbHMuaXNTdXBwb3J0ZWRTY3JpcHQ7cmV0dXJuIW58fG4oci5ldmFsdWF0ZSh0KSl9XSx1cGNhc2U6W050LFtOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS5ldmFsdWF0ZSh0KS50b1VwcGVyQ2FzZSgpfV0sZG93bmNhc2U6W050LFtOdF0sZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS5ldmFsdWF0ZSh0KS50b0xvd2VyQ2FzZSgpfV0sY29uY2F0OltOdCxQcihIdCksZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBsZShlLmV2YWx1YXRlKHQpKX0pKS5qb2luKCIiKX1dLCJyZXNvbHZlZC1sb2NhbGUiOltOdCxbcXRdLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGVbMF0uZXZhbHVhdGUodCkucmVzb2x2ZWRMb2NhbGUoKX1dfSk7dmFyIEdyPWZ1bmN0aW9uKHQsZSl7dGhpcy5leHByZXNzaW9uPXQsdGhpcy5fd2FybmluZ0hpc3Rvcnk9e30sdGhpcy5fZXZhbHVhdG9yPW5ldyB5ZSx0aGlzLl9kZWZhdWx0VmFsdWU9ZT9mdW5jdGlvbih0KXtyZXR1cm4iY29sb3IiPT09dC50eXBlJiZCcih0LmRlZmF1bHQpP25ldyB0ZSgwLDAsMCwwKToiY29sb3IiPT09dC50eXBlP3RlLnBhcnNlKHQuZGVmYXVsdCl8fG51bGw6dm9pZCAwPT09dC5kZWZhdWx0P251bGw6dC5kZWZhdWx0fShlKTpudWxsLHRoaXMuX2VudW1WYWx1ZXM9ZSYmImVudW0iPT09ZS50eXBlP2UudmFsdWVzOm51bGx9O2Z1bmN0aW9uIFlyKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiZ0Lmxlbmd0aD4wJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJnRbMF1pbiBTcn1mdW5jdGlvbiBXcih0LGUpe3ZhciByPW5ldyBVZShTcixbXSxlP2Z1bmN0aW9uKHQpe3ZhciBlPXtjb2xvcjpVdCxzdHJpbmc6TnQsbnVtYmVyOkJ0LGVudW06TnQsYm9vbGVhbjpqdCxmb3JtYXR0ZWQ6R3QscmVzb2x2ZWRJbWFnZTpZdH07aWYoImFycmF5Ij09PXQudHlwZSlyZXR1cm4gV3QoZVt0LnZhbHVlXXx8SHQsdC5sZW5ndGgpO3JldHVybiBlW3QudHlwZV19KGUpOnZvaWQgMCksbj1yLnBhcnNlKHQsdm9pZCAwLHZvaWQgMCx2b2lkIDAsZSYmInN0cmluZyI9PT1lLnR5cGU/e3R5cGVBbm5vdGF0aW9uOiJjb2VyY2UifTp2b2lkIDApO3JldHVybiBuP0lyKG5ldyBHcihuLGUpKTpPcihyLmVycm9ycyl9R3IucHJvdG90eXBlLmV2YWx1YXRlV2l0aG91dEVycm9ySGFuZGxpbmc9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiB0aGlzLl9ldmFsdWF0b3IuZ2xvYmFscz10LHRoaXMuX2V2YWx1YXRvci5mZWF0dXJlPWUsdGhpcy5fZXZhbHVhdG9yLmZlYXR1cmVTdGF0ZT1yLHRoaXMuX2V2YWx1YXRvci5jYW5vbmljYWw9bix0aGlzLl9ldmFsdWF0b3IuYXZhaWxhYmxlSW1hZ2VzPWl8fG51bGwsdGhpcy5fZXZhbHVhdG9yLmZvcm1hdHRlZFNlY3Rpb249YSx0aGlzLmV4cHJlc3Npb24uZXZhbHVhdGUodGhpcy5fZXZhbHVhdG9yKX0sR3IucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLl9ldmFsdWF0b3IuZ2xvYmFscz10LHRoaXMuX2V2YWx1YXRvci5mZWF0dXJlPWV8fG51bGwsdGhpcy5fZXZhbHVhdG9yLmZlYXR1cmVTdGF0ZT1yfHxudWxsLHRoaXMuX2V2YWx1YXRvci5jYW5vbmljYWw9bix0aGlzLl9ldmFsdWF0b3IuYXZhaWxhYmxlSW1hZ2VzPWl8fG51bGwsdGhpcy5fZXZhbHVhdG9yLmZvcm1hdHRlZFNlY3Rpb249YXx8bnVsbDt0cnl7dmFyIG89dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKHRoaXMuX2V2YWx1YXRvcik7aWYobnVsbD09b3x8Im51bWJlciI9PXR5cGVvZiBvJiZvIT1vKXJldHVybiB0aGlzLl9kZWZhdWx0VmFsdWU7aWYodGhpcy5fZW51bVZhbHVlcyYmIShvIGluIHRoaXMuX2VudW1WYWx1ZXMpKXRocm93IG5ldyB1ZSgiRXhwZWN0ZWQgdmFsdWUgdG8gYmUgb25lIG9mICIrT2JqZWN0LmtleXModGhpcy5fZW51bVZhbHVlcykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9KSkuam9pbigiLCAiKSsiLCBidXQgZm91bmQgIitKU09OLnN0cmluZ2lmeShvKSsiIGluc3RlYWQuIik7cmV0dXJuIG99Y2F0Y2godCl7cmV0dXJuIHRoaXMuX3dhcm5pbmdIaXN0b3J5W3QubWVzc2FnZV18fCh0aGlzLl93YXJuaW5nSGlzdG9yeVt0Lm1lc3NhZ2VdPSEwLCJ1bmRlZmluZWQiIT10eXBlb2YgY29uc29sZSYmY29uc29sZS53YXJuKHQubWVzc2FnZSkpLHRoaXMuX2RlZmF1bHRWYWx1ZX19O3ZhciBYcj1mdW5jdGlvbih0LGUpe3RoaXMua2luZD10LHRoaXMuX3N0eWxlRXhwcmVzc2lvbj1lLHRoaXMuaXNTdGF0ZURlcGVuZGVudD0iY29uc3RhbnQiIT09dCYmIUJlKGUuZXhwcmVzc2lvbil9O1hyLnByb3RvdHlwZS5ldmFsdWF0ZVdpdGhvdXRFcnJvckhhbmRsaW5nPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtyZXR1cm4gdGhpcy5fc3R5bGVFeHByZXNzaW9uLmV2YWx1YXRlV2l0aG91dEVycm9ySGFuZGxpbmcodCxlLHIsbixpLGEpfSxYci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiB0aGlzLl9zdHlsZUV4cHJlc3Npb24uZXZhbHVhdGUodCxlLHIsbixpLGEpfTt2YXIgWnI9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5raW5kPXQsdGhpcy56b29tU3RvcHM9cix0aGlzLl9zdHlsZUV4cHJlc3Npb249ZSx0aGlzLmlzU3RhdGVEZXBlbmRlbnQ9ImNhbWVyYSIhPT10JiYhQmUoZS5leHByZXNzaW9uKSx0aGlzLmludGVycG9sYXRpb25UeXBlPW59O2Z1bmN0aW9uIEpyKHQsZSl7aWYoImVycm9yIj09PSh0PVdyKHQsZSkpLnJlc3VsdClyZXR1cm4gdDt2YXIgcj10LnZhbHVlLmV4cHJlc3Npb24sbj1GZShyKTtpZighbiYmIXpyKGUpKXJldHVybiBPcihbbmV3IER0KCIiLCJkYXRhIGV4cHJlc3Npb25zIG5vdCBzdXBwb3J0ZWQiKV0pO3ZhciBpPU5lKHIsWyJ6b29tIl0pO2lmKCFpJiYhRHIoZSkpcmV0dXJuIE9yKFtuZXcgRHQoIiIsInpvb20gZXhwcmVzc2lvbnMgbm90IHN1cHBvcnRlZCIpXSk7dmFyIGE9ZnVuY3Rpb24gdChlKXt2YXIgcj1udWxsO2lmKGUgaW5zdGFuY2VvZiBjcilyPXQoZS5yZXN1bHQpO2Vsc2UgaWYoZSBpbnN0YW5jZW9mIGxyKWZvcih2YXIgbj0wLGk9ZS5hcmdzO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtpZihyPXQoYSkpYnJlYWt9ZWxzZShlIGluc3RhbmNlb2YgSGV8fGUgaW5zdGFuY2VvZiBvcikmJmUuaW5wdXQgaW5zdGFuY2VvZiB4ZSYmInpvb20iPT09ZS5pbnB1dC5uYW1lJiYocj1lKTtpZihyIGluc3RhbmNlb2YgRHQpcmV0dXJuIHI7cmV0dXJuIGUuZWFjaENoaWxkKChmdW5jdGlvbihlKXt2YXIgbj10KGUpO24gaW5zdGFuY2VvZiBEdD9yPW46IXImJm4/cj1uZXcgRHQoIiIsJyJ6b29tIiBleHByZXNzaW9uIG1heSBvbmx5IGJlIHVzZWQgYXMgaW5wdXQgdG8gYSB0b3AtbGV2ZWwgInN0ZXAiIG9yICJpbnRlcnBvbGF0ZSIgZXhwcmVzc2lvbi4nKTpyJiZuJiZyIT09biYmKHI9bmV3IER0KCIiLCdPbmx5IG9uZSB6b29tLWJhc2VkICJzdGVwIiBvciAiaW50ZXJwb2xhdGUiIHN1YmV4cHJlc3Npb24gbWF5IGJlIHVzZWQgaW4gYW4gZXhwcmVzc2lvbi4nKSl9KSkscn0ocik7aWYoIWEmJiFpKXJldHVybiBPcihbbmV3IER0KCIiLCciem9vbSIgZXhwcmVzc2lvbiBtYXkgb25seSBiZSB1c2VkIGFzIGlucHV0IHRvIGEgdG9wLWxldmVsICJzdGVwIiBvciAiaW50ZXJwb2xhdGUiIGV4cHJlc3Npb24uJyldKTtpZihhIGluc3RhbmNlb2YgRHQpcmV0dXJuIE9yKFthXSk7aWYoYSBpbnN0YW5jZW9mIG9yJiYhUnIoZSkpcmV0dXJuIE9yKFtuZXcgRHQoIiIsJyJpbnRlcnBvbGF0ZSIgZXhwcmVzc2lvbnMgY2Fubm90IGJlIHVzZWQgd2l0aCB0aGlzIHByb3BlcnR5JyldKTtpZighYSlyZXR1cm4gSXIobmV3IFhyKG4/ImNvbnN0YW50Ijoic291cmNlIix0LnZhbHVlKSk7dmFyIG89YSBpbnN0YW5jZW9mIG9yP2EuaW50ZXJwb2xhdGlvbjp2b2lkIDA7cmV0dXJuIElyKG5ldyBacihuPyJjYW1lcmEiOiJjb21wb3NpdGUiLHQudmFsdWUsYS5sYWJlbHMsbykpfVpyLnByb3RvdHlwZS5ldmFsdWF0ZVdpdGhvdXRFcnJvckhhbmRsaW5nPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtyZXR1cm4gdGhpcy5fc3R5bGVFeHByZXNzaW9uLmV2YWx1YXRlV2l0aG91dEVycm9ySGFuZGxpbmcodCxlLHIsbixpLGEpfSxaci5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiB0aGlzLl9zdHlsZUV4cHJlc3Npb24uZXZhbHVhdGUodCxlLHIsbixpLGEpfSxaci5wcm90b3R5cGUuaW50ZXJwb2xhdGlvbkZhY3Rvcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuaW50ZXJwb2xhdGlvblR5cGU/b3IuaW50ZXJwb2xhdGlvbkZhY3Rvcih0aGlzLmludGVycG9sYXRpb25UeXBlLHQsZSxyKTowfTt2YXIgS3I9ZnVuY3Rpb24odCxlKXt0aGlzLl9wYXJhbWV0ZXJzPXQsdGhpcy5fc3BlY2lmaWNhdGlvbj1lLEl0KHRoaXMsZnVuY3Rpb24gdChlLHIpe3ZhciBuLGksYSxvPSJjb2xvciI9PT1yLnR5cGUscz1lLnN0b3BzJiYib2JqZWN0Ij09dHlwZW9mIGUuc3RvcHNbMF1bMF0sbD1zfHx2b2lkIDAhPT1lLnByb3BlcnR5LGM9c3x8IWwsdT1lLnR5cGV8fChScihyKT8iZXhwb25lbnRpYWwiOiJpbnRlcnZhbCIpO2lmKG8mJigoZT1JdCh7fSxlKSkuc3RvcHMmJihlLnN0b3BzPWUuc3RvcHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bdFswXSx0ZS5wYXJzZSh0WzFdKV19KSkpLGUuZGVmYXVsdD9lLmRlZmF1bHQ9dGUucGFyc2UoZS5kZWZhdWx0KTplLmRlZmF1bHQ9dGUucGFyc2Uoci5kZWZhdWx0KSksZS5jb2xvclNwYWNlJiYicmdiIiE9PWUuY29sb3JTcGFjZSYmIWFyW2UuY29sb3JTcGFjZV0pdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGNvbG9yIHNwYWNlOiAiK2UuY29sb3JTcGFjZSk7aWYoImV4cG9uZW50aWFsIj09PXUpbj1IcjtlbHNlIGlmKCJpbnRlcnZhbCI9PT11KW49VnI7ZWxzZSBpZigiY2F0ZWdvcmljYWwiPT09dSl7bj1VcixpPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKHZhciBmPTAsaD1lLnN0b3BzO2Y8aC5sZW5ndGg7Zis9MSl7dmFyIHA9aFtmXTtpW3BbMF1dPXBbMV19YT10eXBlb2YgZS5zdG9wc1swXVswXX1lbHNle2lmKCJpZGVudGl0eSIhPT11KXRocm93IG5ldyBFcnJvcignVW5rbm93biBmdW5jdGlvbiB0eXBlICInK3UrJyInKTtuPXFyfWlmKHMpe2Zvcih2YXIgZD17fSxtPVtdLGc9MDtnPGUuc3RvcHMubGVuZ3RoO2crKyl7dmFyIHY9ZS5zdG9wc1tnXSx5PXZbMF0uem9vbTt2b2lkIDA9PT1kW3ldJiYoZFt5XT17em9vbTp5LHR5cGU6ZS50eXBlLHByb3BlcnR5OmUucHJvcGVydHksZGVmYXVsdDplLmRlZmF1bHQsc3RvcHM6W119LG0ucHVzaCh5KSksZFt5XS5zdG9wcy5wdXNoKFt2WzBdLnZhbHVlLHZbMV1dKX1mb3IodmFyIHg9W10sYj0wLF89bTtiPF8ubGVuZ3RoO2IrPTEpe3ZhciB3PV9bYl07eC5wdXNoKFtkW3ddLnpvb20sdChkW3ddLHIpXSl9dmFyIFQ9e25hbWU6ImxpbmVhciJ9O3JldHVybntraW5kOiJjb21wb3NpdGUiLGludGVycG9sYXRpb25UeXBlOlQsaW50ZXJwb2xhdGlvbkZhY3Rvcjpvci5pbnRlcnBvbGF0aW9uRmFjdG9yLmJpbmQodm9pZCAwLFQpLHpvb21TdG9wczp4Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSksZXZhbHVhdGU6ZnVuY3Rpb24odCxuKXt2YXIgaT10Lnpvb207cmV0dXJuIEhyKHtzdG9wczp4LGJhc2U6ZS5iYXNlfSxyLGkpLmV2YWx1YXRlKGksbil9fX1pZihjKXt2YXIgaz0iZXhwb25lbnRpYWwiPT09dT97bmFtZToiZXhwb25lbnRpYWwiLGJhc2U6dm9pZCAwIT09ZS5iYXNlP2UuYmFzZToxfTpudWxsO3JldHVybntraW5kOiJjYW1lcmEiLGludGVycG9sYXRpb25UeXBlOmssaW50ZXJwb2xhdGlvbkZhY3Rvcjpvci5pbnRlcnBvbGF0aW9uRmFjdG9yLmJpbmQodm9pZCAwLGspLHpvb21TdG9wczplLnN0b3BzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSksZXZhbHVhdGU6ZnVuY3Rpb24odCl7dmFyIG89dC56b29tO3JldHVybiBuKGUscixvLGksYSl9fX1yZXR1cm57a2luZDoic291cmNlIixldmFsdWF0ZTpmdW5jdGlvbih0LG8pe3ZhciBzPW8mJm8ucHJvcGVydGllcz9vLnByb3BlcnRpZXNbZS5wcm9wZXJ0eV06dm9pZCAwO3JldHVybiB2b2lkIDA9PT1zP2pyKGUuZGVmYXVsdCxyLmRlZmF1bHQpOm4oZSxyLHMsaSxhKX19fSh0aGlzLl9wYXJhbWV0ZXJzLHRoaXMuX3NwZWNpZmljYXRpb24pKX07ZnVuY3Rpb24gUXIodCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49dC52YWx1ZVNwZWN8fHt9LGk9dC5vYmplY3RFbGVtZW50VmFsaWRhdG9yc3x8e30sYT10LnN0eWxlLG89dC5zdHlsZVNwZWMscz1bXSxsPUZyKHIpO2lmKCJvYmplY3QiIT09bClyZXR1cm5bbmV3IEN0KGUsciwib2JqZWN0IGV4cGVjdGVkLCAiK2wrIiBmb3VuZCIpXTtmb3IodmFyIGMgaW4gcil7dmFyIHU9Yy5zcGxpdCgiLiIpWzBdLGY9blt1XXx8blsiKiJdLGg9dm9pZCAwO2lmKGlbdV0paD1pW3VdO2Vsc2UgaWYoblt1XSloPWtuO2Vsc2UgaWYoaVsiKiJdKWg9aVsiKiJdO2Vsc2V7aWYoIW5bIioiXSl7cy5wdXNoKG5ldyBDdChlLHJbY10sJ3Vua25vd24gcHJvcGVydHkgIicrYysnIicpKTtjb250aW51ZX1oPWtufXM9cy5jb25jYXQoaCh7a2V5OihlP2UrIi4iOmUpK2MsdmFsdWU6cltjXSx2YWx1ZVNwZWM6ZixzdHlsZTphLHN0eWxlU3BlYzpvLG9iamVjdDpyLG9iamVjdEtleTpjfSxyKSl9Zm9yKHZhciBwIGluIG4paVtwXXx8bltwXS5yZXF1aXJlZCYmdm9pZCAwPT09bltwXS5kZWZhdWx0JiZ2b2lkIDA9PT1yW3BdJiZzLnB1c2gobmV3IEN0KGUsciwnbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiJytwKyciJykpO3JldHVybiBzfWZ1bmN0aW9uICRyKHQpe3ZhciBlPXQudmFsdWUscj10LnZhbHVlU3BlYyxuPXQuc3R5bGUsaT10LnN0eWxlU3BlYyxhPXQua2V5LG89dC5hcnJheUVsZW1lbnRWYWxpZGF0b3J8fGtuO2lmKCJhcnJheSIhPT1GcihlKSlyZXR1cm5bbmV3IEN0KGEsZSwiYXJyYXkgZXhwZWN0ZWQsICIrRnIoZSkrIiBmb3VuZCIpXTtpZihyLmxlbmd0aCYmZS5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm5bbmV3IEN0KGEsZSwiYXJyYXkgbGVuZ3RoICIrci5sZW5ndGgrIiBleHBlY3RlZCwgbGVuZ3RoICIrZS5sZW5ndGgrIiBmb3VuZCIpXTtpZihyWyJtaW4tbGVuZ3RoIl0mJmUubGVuZ3RoPHJbIm1pbi1sZW5ndGgiXSlyZXR1cm5bbmV3IEN0KGEsZSwiYXJyYXkgbGVuZ3RoIGF0IGxlYXN0ICIrclsibWluLWxlbmd0aCJdKyIgZXhwZWN0ZWQsIGxlbmd0aCAiK2UubGVuZ3RoKyIgZm91bmQiKV07dmFyIHM9e3R5cGU6ci52YWx1ZSx2YWx1ZXM6ci52YWx1ZXN9O2kuJHZlcnNpb248NyYmKHMuZnVuY3Rpb249ci5mdW5jdGlvbiksIm9iamVjdCI9PT1GcihyLnZhbHVlKSYmKHM9ci52YWx1ZSk7Zm9yKHZhciBsPVtdLGM9MDtjPGUubGVuZ3RoO2MrKylsPWwuY29uY2F0KG8oe2FycmF5OmUsYXJyYXlJbmRleDpjLHZhbHVlOmVbY10sdmFsdWVTcGVjOnMsc3R5bGU6bixzdHlsZVNwZWM6aSxrZXk6YSsiWyIrYysiXSJ9KSk7cmV0dXJuIGx9ZnVuY3Rpb24gdG4odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49dC52YWx1ZVNwZWMsaT1GcihyKTtyZXR1cm4ibnVtYmVyIj09PWkmJnIhPXImJihpPSJOYU4iKSwibnVtYmVyIiE9PWk/W25ldyBDdChlLHIsIm51bWJlciBleHBlY3RlZCwgIitpKyIgZm91bmQiKV06Im1pbmltdW0iaW4gbiYmcjxuLm1pbmltdW0/W25ldyBDdChlLHIscisiIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSB2YWx1ZSAiK24ubWluaW11bSldOiJtYXhpbXVtImluIG4mJnI+bi5tYXhpbXVtP1tuZXcgQ3QoZSxyLHIrIiBpcyBncmVhdGVyIHRoYW4gdGhlIG1heGltdW0gdmFsdWUgIituLm1heGltdW0pXTpbXX1mdW5jdGlvbiBlbih0KXt2YXIgZSxyLG4saT10LnZhbHVlU3BlYyxhPU90KHQudmFsdWUudHlwZSksbz17fSxzPSJjYXRlZ29yaWNhbCIhPT1hJiZ2b2lkIDA9PT10LnZhbHVlLnByb3BlcnR5LGw9IXMsYz0iYXJyYXkiPT09RnIodC52YWx1ZS5zdG9wcykmJiJhcnJheSI9PT1Gcih0LnZhbHVlLnN0b3BzWzBdKSYmIm9iamVjdCI9PT1Gcih0LnZhbHVlLnN0b3BzWzBdWzBdKSx1PVFyKHtrZXk6dC5rZXksdmFsdWU6dC52YWx1ZSx2YWx1ZVNwZWM6dC5zdHlsZVNwZWMuZnVuY3Rpb24sc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6e3N0b3BzOmZ1bmN0aW9uKHQpe2lmKCJpZGVudGl0eSI9PT1hKXJldHVybltuZXcgQ3QodC5rZXksdC52YWx1ZSwnaWRlbnRpdHkgZnVuY3Rpb24gbWF5IG5vdCBoYXZlIGEgInN0b3BzIiBwcm9wZXJ0eScpXTt2YXIgZT1bXSxyPXQudmFsdWU7ZT1lLmNvbmNhdCgkcih7a2V5OnQua2V5LHZhbHVlOnIsdmFsdWVTcGVjOnQudmFsdWVTcGVjLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLGFycmF5RWxlbWVudFZhbGlkYXRvcjpmfSkpLCJhcnJheSI9PT1GcihyKSYmMD09PXIubGVuZ3RoJiZlLnB1c2gobmV3IEN0KHQua2V5LHIsImFycmF5IG11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgc3RvcCIpKTtyZXR1cm4gZX0sZGVmYXVsdDpmdW5jdGlvbih0KXtyZXR1cm4ga24oe2tleTp0LmtleSx2YWx1ZTp0LnZhbHVlLHZhbHVlU3BlYzppLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjfSl9fX0pO3JldHVybiJpZGVudGl0eSI9PT1hJiZzJiZ1LnB1c2gobmV3IEN0KHQua2V5LHQudmFsdWUsJ21pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgInByb3BlcnR5IicpKSwiaWRlbnRpdHkiPT09YXx8dC52YWx1ZS5zdG9wc3x8dS5wdXNoKG5ldyBDdCh0LmtleSx0LnZhbHVlLCdtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICJzdG9wcyInKSksImV4cG9uZW50aWFsIj09PWEmJnQudmFsdWVTcGVjLmV4cHJlc3Npb24mJiFScih0LnZhbHVlU3BlYykmJnUucHVzaChuZXcgQ3QodC5rZXksdC52YWx1ZSwiZXhwb25lbnRpYWwgZnVuY3Rpb25zIG5vdCBzdXBwb3J0ZWQiKSksdC5zdHlsZVNwZWMuJHZlcnNpb24+PTgmJihsJiYhenIodC52YWx1ZVNwZWMpP3UucHVzaChuZXcgQ3QodC5rZXksdC52YWx1ZSwicHJvcGVydHkgZnVuY3Rpb25zIG5vdCBzdXBwb3J0ZWQiKSk6cyYmIURyKHQudmFsdWVTcGVjKSYmdS5wdXNoKG5ldyBDdCh0LmtleSx0LnZhbHVlLCJ6b29tIGZ1bmN0aW9ucyBub3Qgc3VwcG9ydGVkIikpKSwiY2F0ZWdvcmljYWwiIT09YSYmIWN8fHZvaWQgMCE9PXQudmFsdWUucHJvcGVydHl8fHUucHVzaChuZXcgQ3QodC5rZXksdC52YWx1ZSwnInByb3BlcnR5IiBwcm9wZXJ0eSBpcyByZXF1aXJlZCcpKSx1O2Z1bmN0aW9uIGYodCl7dmFyIGU9W10sYT10LnZhbHVlLHM9dC5rZXk7aWYoImFycmF5IiE9PUZyKGEpKXJldHVybltuZXcgQ3QocyxhLCJhcnJheSBleHBlY3RlZCwgIitGcihhKSsiIGZvdW5kIildO2lmKDIhPT1hLmxlbmd0aClyZXR1cm5bbmV3IEN0KHMsYSwiYXJyYXkgbGVuZ3RoIDIgZXhwZWN0ZWQsIGxlbmd0aCAiK2EubGVuZ3RoKyIgZm91bmQiKV07aWYoYyl7aWYoIm9iamVjdCIhPT1GcihhWzBdKSlyZXR1cm5bbmV3IEN0KHMsYSwib2JqZWN0IGV4cGVjdGVkLCAiK0ZyKGFbMF0pKyIgZm91bmQiKV07aWYodm9pZCAwPT09YVswXS56b29tKXJldHVybltuZXcgQ3QocyxhLCJvYmplY3Qgc3RvcCBrZXkgbXVzdCBoYXZlIHpvb20iKV07aWYodm9pZCAwPT09YVswXS52YWx1ZSlyZXR1cm5bbmV3IEN0KHMsYSwib2JqZWN0IHN0b3Aga2V5IG11c3QgaGF2ZSB2YWx1ZSIpXTtpZihuJiZuPk90KGFbMF0uem9vbSkpcmV0dXJuW25ldyBDdChzLGFbMF0uem9vbSwic3RvcCB6b29tIHZhbHVlcyBtdXN0IGFwcGVhciBpbiBhc2NlbmRpbmcgb3JkZXIiKV07T3QoYVswXS56b29tKSE9PW4mJihuPU90KGFbMF0uem9vbSkscj12b2lkIDAsbz17fSksZT1lLmNvbmNhdChRcih7a2V5OnMrIlswXSIsdmFsdWU6YVswXSx2YWx1ZVNwZWM6e3pvb206e319LHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOnt6b29tOnRuLHZhbHVlOmh9fSkpfWVsc2UgZT1lLmNvbmNhdChoKHtrZXk6cysiWzBdIix2YWx1ZTphWzBdLHZhbHVlU3BlYzp7fSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzp0LnN0eWxlU3BlY30sYSkpO3JldHVybiBZcih6dChhWzFdKSk/ZS5jb25jYXQoW25ldyBDdChzKyJbMV0iLGFbMV0sImV4cHJlc3Npb25zIGFyZSBub3QgYWxsb3dlZCBpbiBmdW5jdGlvbiBzdG9wcy4iKV0pOmUuY29uY2F0KGtuKHtrZXk6cysiWzFdIix2YWx1ZTphWzFdLHZhbHVlU3BlYzppLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjfSkpfWZ1bmN0aW9uIGgodCxuKXt2YXIgcz1Gcih0LnZhbHVlKSxsPU90KHQudmFsdWUpLGM9bnVsbCE9PXQudmFsdWU/dC52YWx1ZTpuO2lmKGUpe2lmKHMhPT1lKXJldHVybltuZXcgQ3QodC5rZXksYyxzKyIgc3RvcCBkb21haW4gdHlwZSBtdXN0IG1hdGNoIHByZXZpb3VzIHN0b3AgZG9tYWluIHR5cGUgIitlKV19ZWxzZSBlPXM7aWYoIm51bWJlciIhPT1zJiYic3RyaW5nIiE9PXMmJiJib29sZWFuIiE9PXMpcmV0dXJuW25ldyBDdCh0LmtleSxjLCJzdG9wIGRvbWFpbiB2YWx1ZSBtdXN0IGJlIGEgbnVtYmVyLCBzdHJpbmcsIG9yIGJvb2xlYW4iKV07aWYoIm51bWJlciIhPT1zJiYiY2F0ZWdvcmljYWwiIT09YSl7dmFyIHU9Im51bWJlciBleHBlY3RlZCwgIitzKyIgZm91bmQiO3JldHVybiB6cihpKSYmdm9pZCAwPT09YSYmKHUrPSdcbklmIHlvdSBpbnRlbmRlZCB0byB1c2UgYSBjYXRlZ29yaWNhbCBmdW5jdGlvbiwgc3BlY2lmeSBgInR5cGUiOiAiY2F0ZWdvcmljYWwiYC4nKSxbbmV3IEN0KHQua2V5LGMsdSldfXJldHVybiJjYXRlZ29yaWNhbCIhPT1hfHwibnVtYmVyIiE9PXN8fGlzRmluaXRlKGwpJiZNYXRoLmZsb29yKGwpPT09bD8iY2F0ZWdvcmljYWwiIT09YSYmIm51bWJlciI9PT1zJiZ2b2lkIDAhPT1yJiZsPHI/W25ldyBDdCh0LmtleSxjLCJzdG9wIGRvbWFpbiB2YWx1ZXMgbXVzdCBhcHBlYXIgaW4gYXNjZW5kaW5nIG9yZGVyIildOihyPWwsImNhdGVnb3JpY2FsIj09PWEmJmwgaW4gbz9bbmV3IEN0KHQua2V5LGMsInN0b3AgZG9tYWluIHZhbHVlcyBtdXN0IGJlIHVuaXF1ZSIpXToob1tsXT0hMCxbXSkpOltuZXcgQ3QodC5rZXksYywiaW50ZWdlciBleHBlY3RlZCwgZm91bmQgIitsKV19fWZ1bmN0aW9uIHJuKHQpe3ZhciBlPSgicHJvcGVydHkiPT09dC5leHByZXNzaW9uQ29udGV4dD9KcjpXcikoenQodC52YWx1ZSksdC52YWx1ZVNwZWMpO2lmKCJlcnJvciI9PT1lLnJlc3VsdClyZXR1cm4gZS52YWx1ZS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgQ3QoIiIrdC5rZXkrZS5rZXksdC52YWx1ZSxlLm1lc3NhZ2UpfSkpO3ZhciByPWUudmFsdWUuZXhwcmVzc2lvbnx8ZS52YWx1ZS5fc3R5bGVFeHByZXNzaW9uLmV4cHJlc3Npb247aWYoInByb3BlcnR5Ij09PXQuZXhwcmVzc2lvbkNvbnRleHQmJiJ0ZXh0LWZvbnQiPT09dC5wcm9wZXJ0eUtleSYmIXIub3V0cHV0RGVmaW5lZCgpKXJldHVybltuZXcgQ3QodC5rZXksdC52YWx1ZSwnSW52YWxpZCBkYXRhIGV4cHJlc3Npb24gZm9yICInK3QucHJvcGVydHlLZXkrJyIuIE91dHB1dCB2YWx1ZXMgbXVzdCBiZSBjb250YWluZWQgYXMgbGl0ZXJhbHMgd2l0aGluIHRoZSBleHByZXNzaW9uLicpXTtpZigicHJvcGVydHkiPT09dC5leHByZXNzaW9uQ29udGV4dCYmImxheW91dCI9PT10LnByb3BlcnR5VHlwZSYmIUJlKHIpKXJldHVybltuZXcgQ3QodC5rZXksdC52YWx1ZSwnImZlYXR1cmUtc3RhdGUiIGRhdGEgZXhwcmVzc2lvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBsYXlvdXQgcHJvcGVydGllcy4nKV07aWYoImZpbHRlciI9PT10LmV4cHJlc3Npb25Db250ZXh0JiYhQmUocikpcmV0dXJuW25ldyBDdCh0LmtleSx0LnZhbHVlLCciZmVhdHVyZS1zdGF0ZSIgZGF0YSBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIGZpbHRlcnMuJyldO2lmKHQuZXhwcmVzc2lvbkNvbnRleHQmJjA9PT10LmV4cHJlc3Npb25Db250ZXh0LmluZGV4T2YoImNsdXN0ZXIiKSl7aWYoIU5lKHIsWyJ6b29tIiwiZmVhdHVyZS1zdGF0ZSJdKSlyZXR1cm5bbmV3IEN0KHQua2V5LHQudmFsdWUsJyJ6b29tIiBhbmQgImZlYXR1cmUtc3RhdGUiIGV4cHJlc3Npb25zIGFyZSBub3Qgc3VwcG9ydGVkIHdpdGggY2x1c3RlciBwcm9wZXJ0aWVzLicpXTtpZigiY2x1c3Rlci1pbml0aWFsIj09PXQuZXhwcmVzc2lvbkNvbnRleHQmJiFGZShyKSlyZXR1cm5bbmV3IEN0KHQua2V5LHQudmFsdWUsIkZlYXR1cmUgZGF0YSBleHByZXNzaW9ucyBhcmUgbm90IHN1cHBvcnRlZCB3aXRoIGluaXRpYWwgZXhwcmVzc2lvbiBwYXJ0IG9mIGNsdXN0ZXIgcHJvcGVydGllcy4iKV19cmV0dXJuW119ZnVuY3Rpb24gbm4odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49dC52YWx1ZVNwZWMsaT1bXTtyZXR1cm4gQXJyYXkuaXNBcnJheShuLnZhbHVlcyk/LTE9PT1uLnZhbHVlcy5pbmRleE9mKE90KHIpKSYmaS5wdXNoKG5ldyBDdChlLHIsImV4cGVjdGVkIG9uZSBvZiBbIituLnZhbHVlcy5qb2luKCIsICIpKyJdLCAiK0pTT04uc3RyaW5naWZ5KHIpKyIgZm91bmQiKSk6LTE9PT1PYmplY3Qua2V5cyhuLnZhbHVlcykuaW5kZXhPZihPdChyKSkmJmkucHVzaChuZXcgQ3QoZSxyLCJleHBlY3RlZCBvbmUgb2YgWyIrT2JqZWN0LmtleXMobi52YWx1ZXMpLmpvaW4oIiwgIikrIl0sICIrSlNPTi5zdHJpbmdpZnkocikrIiBmb3VuZCIpKSxpfWZ1bmN0aW9uIGFuKHQpe2lmKCEwPT09dHx8ITE9PT10KXJldHVybiEwO2lmKCFBcnJheS5pc0FycmF5KHQpfHwwPT09dC5sZW5ndGgpcmV0dXJuITE7c3dpdGNoKHRbMF0pe2Nhc2UiaGFzIjpyZXR1cm4gdC5sZW5ndGg+PTImJiIkaWQiIT09dFsxXSYmIiR0eXBlIiE9PXRbMV07Y2FzZSJpbiI6cmV0dXJuIHQubGVuZ3RoPj0zJiYoInN0cmluZyIhPXR5cGVvZiB0WzFdfHxBcnJheS5pc0FycmF5KHRbMl0pKTtjYXNlIiFpbiI6Y2FzZSIhaGFzIjpjYXNlIm5vbmUiOnJldHVybiExO2Nhc2UiPT0iOmNhc2UiIT0iOmNhc2UiPiI6Y2FzZSI+PSI6Y2FzZSI8IjpjYXNlIjw9IjpyZXR1cm4gMyE9PXQubGVuZ3RofHxBcnJheS5pc0FycmF5KHRbMV0pfHxBcnJheS5pc0FycmF5KHRbMl0pO2Nhc2UiYW55IjpjYXNlImFsbCI6Zm9yKHZhciBlPTAscj10LnNsaWNlKDEpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTtpZighYW4obikmJiJib29sZWFuIiE9dHlwZW9mIG4pcmV0dXJuITF9cmV0dXJuITA7ZGVmYXVsdDpyZXR1cm4hMH19S3IuZGVzZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBLcih0Ll9wYXJhbWV0ZXJzLHQuX3NwZWNpZmljYXRpb24pfSxLci5zZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJue19wYXJhbWV0ZXJzOnQuX3BhcmFtZXRlcnMsX3NwZWNpZmljYXRpb246dC5fc3BlY2lmaWNhdGlvbn19O3ZhciBvbj17dHlwZToiYm9vbGVhbiIsZGVmYXVsdDohMSx0cmFuc2l0aW9uOiExLCJwcm9wZXJ0eS10eXBlIjoiZGF0YS1kcml2ZW4iLGV4cHJlc3Npb246e2ludGVycG9sYXRlZDohMSxwYXJhbWV0ZXJzOlsiem9vbSIsImZlYXR1cmUiXX19O2Z1bmN0aW9uIHNuKHQpe2lmKG51bGw9PXQpcmV0dXJue2ZpbHRlcjpmdW5jdGlvbigpe3JldHVybiEwfSxuZWVkR2VvbWV0cnk6ITF9O2FuKHQpfHwodD1jbih0KSk7dmFyIGU9V3IodCxvbik7aWYoImVycm9yIj09PWUucmVzdWx0KXRocm93IG5ldyBFcnJvcihlLnZhbHVlLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5KyI6ICIrdC5tZXNzYWdlfSkpLmpvaW4oIiwgIikpO3JldHVybntmaWx0ZXI6ZnVuY3Rpb24odCxyLG4pe3JldHVybiBlLnZhbHVlLmV2YWx1YXRlKHQscix7fSxuKX0sbmVlZEdlb21ldHJ5OmZ1bmN0aW9uIHQoZSl7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuITE7aWYoIndpdGhpbiI9PT1lWzBdKXJldHVybiEwO2Zvcih2YXIgcj0xO3I8ZS5sZW5ndGg7cisrKWlmKHQoZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9KHQpfX1mdW5jdGlvbiBsbih0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6MH1mdW5jdGlvbiBjbih0KXtpZighdClyZXR1cm4hMDt2YXIgZSxyPXRbMF07cmV0dXJuIHQubGVuZ3RoPD0xPyJhbnkiIT09cjoiPT0iPT09cj91bih0WzFdLHRbMl0sIj09Iik6IiE9Ij09PXI/cG4odW4odFsxXSx0WzJdLCI9PSIpKToiPCI9PT1yfHwiPiI9PT1yfHwiPD0iPT09cnx8Ij49Ij09PXI/dW4odFsxXSx0WzJdLHIpOiJhbnkiPT09cj8oZT10LnNsaWNlKDEpLFsiYW55Il0uY29uY2F0KGUubWFwKGNuKSkpOiJhbGwiPT09cj9bImFsbCJdLmNvbmNhdCh0LnNsaWNlKDEpLm1hcChjbikpOiJub25lIj09PXI/WyJhbGwiXS5jb25jYXQodC5zbGljZSgxKS5tYXAoY24pLm1hcChwbikpOiJpbiI9PT1yP2ZuKHRbMV0sdC5zbGljZSgyKSk6IiFpbiI9PT1yP3BuKGZuKHRbMV0sdC5zbGljZSgyKSkpOiJoYXMiPT09cj9obih0WzFdKToiIWhhcyI9PT1yP3BuKGhuKHRbMV0pKToid2l0aGluIiE9PXJ8fHR9ZnVuY3Rpb24gdW4odCxlLHIpe3N3aXRjaCh0KXtjYXNlIiR0eXBlIjpyZXR1cm5bImZpbHRlci10eXBlLSIrcixlXTtjYXNlIiRpZCI6cmV0dXJuWyJmaWx0ZXItaWQtIityLGVdO2RlZmF1bHQ6cmV0dXJuWyJmaWx0ZXItIityLHQsZV19fWZ1bmN0aW9uIGZuKHQsZSl7aWYoMD09PWUubGVuZ3RoKXJldHVybiExO3N3aXRjaCh0KXtjYXNlIiR0eXBlIjpyZXR1cm5bImZpbHRlci10eXBlLWluIixbImxpdGVyYWwiLGVdXTtjYXNlIiRpZCI6cmV0dXJuWyJmaWx0ZXItaWQtaW4iLFsibGl0ZXJhbCIsZV1dO2RlZmF1bHQ6cmV0dXJuIGUubGVuZ3RoPjIwMCYmIWUuc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHR5cGVvZiB0IT10eXBlb2YgZVswXX0pKT9bImZpbHRlci1pbi1sYXJnZSIsdCxbImxpdGVyYWwiLGUuc29ydChsbildXTpbImZpbHRlci1pbi1zbWFsbCIsdCxbImxpdGVyYWwiLGVdXX19ZnVuY3Rpb24gaG4odCl7c3dpdGNoKHQpe2Nhc2UiJHR5cGUiOnJldHVybiEwO2Nhc2UiJGlkIjpyZXR1cm5bImZpbHRlci1oYXMtaWQiXTtkZWZhdWx0OnJldHVyblsiZmlsdGVyLWhhcyIsdF19fWZ1bmN0aW9uIHBuKHQpe3JldHVyblsiISIsdF19ZnVuY3Rpb24gZG4odCl7cmV0dXJuIGFuKHp0KHQudmFsdWUpKT9ybihJdCh7fSx0LHtleHByZXNzaW9uQ29udGV4dDoiZmlsdGVyIix2YWx1ZVNwZWM6e3ZhbHVlOiJib29sZWFuIn19KSk6ZnVuY3Rpb24gdChlKXt2YXIgcj1lLnZhbHVlLG49ZS5rZXk7aWYoImFycmF5IiE9PUZyKHIpKXJldHVybltuZXcgQ3QobixyLCJhcnJheSBleHBlY3RlZCwgIitGcihyKSsiIGZvdW5kIildO3ZhciBpLGE9ZS5zdHlsZVNwZWMsbz1bXTtpZihyLmxlbmd0aDwxKXJldHVybltuZXcgQ3QobixyLCJmaWx0ZXIgYXJyYXkgbXVzdCBoYXZlIGF0IGxlYXN0IDEgZWxlbWVudCIpXTtzd2l0Y2gobz1vLmNvbmNhdChubih7a2V5Om4rIlswXSIsdmFsdWU6clswXSx2YWx1ZVNwZWM6YS5maWx0ZXJfb3BlcmF0b3Isc3R5bGU6ZS5zdHlsZSxzdHlsZVNwZWM6ZS5zdHlsZVNwZWN9KSksT3QoclswXSkpe2Nhc2UiPCI6Y2FzZSI8PSI6Y2FzZSI+IjpjYXNlIj49IjpyLmxlbmd0aD49MiYmIiR0eXBlIj09PU90KHJbMV0pJiZvLnB1c2gobmV3IEN0KG4sciwnIiR0eXBlIiBjYW5ub3QgYmUgdXNlIHdpdGggb3BlcmF0b3IgIicrclswXSsnIicpKTtjYXNlIj09IjpjYXNlIiE9IjozIT09ci5sZW5ndGgmJm8ucHVzaChuZXcgQ3QobixyLCdmaWx0ZXIgYXJyYXkgZm9yIG9wZXJhdG9yICInK3JbMF0rJyIgbXVzdCBoYXZlIDMgZWxlbWVudHMnKSk7Y2FzZSJpbiI6Y2FzZSIhaW4iOnIubGVuZ3RoPj0yJiYic3RyaW5nIiE9PShpPUZyKHJbMV0pKSYmby5wdXNoKG5ldyBDdChuKyJbMV0iLHJbMV0sInN0cmluZyBleHBlY3RlZCwgIitpKyIgZm91bmQiKSk7Zm9yKHZhciBzPTI7czxyLmxlbmd0aDtzKyspaT1GcihyW3NdKSwiJHR5cGUiPT09T3QoclsxXSk/bz1vLmNvbmNhdChubih7a2V5Om4rIlsiK3MrIl0iLHZhbHVlOnJbc10sdmFsdWVTcGVjOmEuZ2VvbWV0cnlfdHlwZSxzdHlsZTplLnN0eWxlLHN0eWxlU3BlYzplLnN0eWxlU3BlY30pKToic3RyaW5nIiE9PWkmJiJudW1iZXIiIT09aSYmImJvb2xlYW4iIT09aSYmby5wdXNoKG5ldyBDdChuKyJbIitzKyJdIixyW3NdLCJzdHJpbmcsIG51bWJlciwgb3IgYm9vbGVhbiBleHBlY3RlZCwgIitpKyIgZm91bmQiKSk7YnJlYWs7Y2FzZSJhbnkiOmNhc2UiYWxsIjpjYXNlIm5vbmUiOmZvcih2YXIgbD0xO2w8ci5sZW5ndGg7bCsrKW89by5jb25jYXQodCh7a2V5Om4rIlsiK2wrIl0iLHZhbHVlOnJbbF0sc3R5bGU6ZS5zdHlsZSxzdHlsZVNwZWM6ZS5zdHlsZVNwZWN9KSk7YnJlYWs7Y2FzZSJoYXMiOmNhc2UiIWhhcyI6aT1GcihyWzFdKSwyIT09ci5sZW5ndGg/by5wdXNoKG5ldyBDdChuLHIsJ2ZpbHRlciBhcnJheSBmb3IgIicrclswXSsnIiBvcGVyYXRvciBtdXN0IGhhdmUgMiBlbGVtZW50cycpKToic3RyaW5nIiE9PWkmJm8ucHVzaChuZXcgQ3QobisiWzFdIixyWzFdLCJzdHJpbmcgZXhwZWN0ZWQsICIraSsiIGZvdW5kIikpO2JyZWFrO2Nhc2Uid2l0aGluIjppPUZyKHJbMV0pLDIhPT1yLmxlbmd0aD9vLnB1c2gobmV3IEN0KG4sciwnZmlsdGVyIGFycmF5IGZvciAiJytyWzBdKyciIG9wZXJhdG9yIG11c3QgaGF2ZSAyIGVsZW1lbnRzJykpOiJvYmplY3QiIT09aSYmby5wdXNoKG5ldyBDdChuKyJbMV0iLHJbMV0sIm9iamVjdCBleHBlY3RlZCwgIitpKyIgZm91bmQiKSl9cmV0dXJuIG99KHQpfWZ1bmN0aW9uIG1uKHQsZSl7dmFyIHI9dC5rZXksbj10LnN0eWxlLGk9dC5zdHlsZVNwZWMsYT10LnZhbHVlLG89dC5vYmplY3RLZXkscz1pW2UrIl8iK3QubGF5ZXJUeXBlXTtpZighcylyZXR1cm5bXTt2YXIgbD1vLm1hdGNoKC9eKC4qKS10cmFuc2l0aW9uJC8pO2lmKCJwYWludCI9PT1lJiZsJiZzW2xbMV1dJiZzW2xbMV1dLnRyYW5zaXRpb24pcmV0dXJuIGtuKHtrZXk6cix2YWx1ZTphLHZhbHVlU3BlYzppLnRyYW5zaXRpb24sc3R5bGU6bixzdHlsZVNwZWM6aX0pO3ZhciBjLHU9dC52YWx1ZVNwZWN8fHNbb107aWYoIXUpcmV0dXJuW25ldyBDdChyLGEsJ3Vua25vd24gcHJvcGVydHkgIicrbysnIicpXTtpZigic3RyaW5nIj09PUZyKGEpJiZ6cih1KSYmIXUudG9rZW5zJiYoYz0vXnsoW159XSspfSQvLmV4ZWMoYSkpKXJldHVybltuZXcgQ3QocixhLCciJytvKyciIGRvZXMgbm90IHN1cHBvcnQgaW50ZXJwb2xhdGlvbiBzeW50YXhcblVzZSBhbiBpZGVudGl0eSBwcm9wZXJ0eSBmdW5jdGlvbiBpbnN0ZWFkOiBgeyAidHlwZSI6ICJpZGVudGl0eSIsICJwcm9wZXJ0eSI6ICcrSlNPTi5zdHJpbmdpZnkoY1sxXSkrIiB9YC4iKV07dmFyIGY9W107cmV0dXJuInN5bWJvbCI9PT10LmxheWVyVHlwZSYmKCJ0ZXh0LWZpZWxkIj09PW8mJm4mJiFuLmdseXBocyYmZi5wdXNoKG5ldyBDdChyLGEsJ3VzZSBvZiAidGV4dC1maWVsZCIgcmVxdWlyZXMgYSBzdHlsZSAiZ2x5cGhzIiBwcm9wZXJ0eScpKSwidGV4dC1mb250Ij09PW8mJkJyKHp0KGEpKSYmImlkZW50aXR5Ij09PU90KGEudHlwZSkmJmYucHVzaChuZXcgQ3QocixhLCcidGV4dC1mb250IiBkb2VzIG5vdCBzdXBwb3J0IGlkZW50aXR5IGZ1bmN0aW9ucycpKSksZi5jb25jYXQoa24oe2tleTp0LmtleSx2YWx1ZTphLHZhbHVlU3BlYzp1LHN0eWxlOm4sc3R5bGVTcGVjOmksZXhwcmVzc2lvbkNvbnRleHQ6InByb3BlcnR5Iixwcm9wZXJ0eVR5cGU6ZSxwcm9wZXJ0eUtleTpvfSkpfWZ1bmN0aW9uIGduKHQpe3JldHVybiBtbih0LCJwYWludCIpfWZ1bmN0aW9uIHZuKHQpe3JldHVybiBtbih0LCJsYXlvdXQiKX1mdW5jdGlvbiB5bih0KXt2YXIgZT1bXSxyPXQudmFsdWUsbj10LmtleSxpPXQuc3R5bGUsYT10LnN0eWxlU3BlYztyLnR5cGV8fHIucmVmfHxlLnB1c2gobmV3IEN0KG4sciwnZWl0aGVyICJ0eXBlIiBvciAicmVmIiBpcyByZXF1aXJlZCcpKTt2YXIgbyxzPU90KHIudHlwZSksbD1PdChyLnJlZik7aWYoci5pZClmb3IodmFyIGM9T3Qoci5pZCksdT0wO3U8dC5hcnJheUluZGV4O3UrKyl7dmFyIGY9aS5sYXllcnNbdV07T3QoZi5pZCk9PT1jJiZlLnB1c2gobmV3IEN0KG4sci5pZCwnZHVwbGljYXRlIGxheWVyIGlkICInK3IuaWQrJyIsIHByZXZpb3VzbHkgdXNlZCBhdCBsaW5lICcrZi5pZC5fX2xpbmVfXykpfWlmKCJyZWYiaW4gcilbInR5cGUiLCJzb3VyY2UiLCJzb3VyY2UtbGF5ZXIiLCJmaWx0ZXIiLCJsYXlvdXQiXS5mb3JFYWNoKChmdW5jdGlvbih0KXt0IGluIHImJmUucHVzaChuZXcgQ3QobixyW3RdLCciJyt0KyciIGlzIHByb2hpYml0ZWQgZm9yIHJlZiBsYXllcnMnKSl9KSksaS5sYXllcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7T3QodC5pZCk9PT1sJiYobz10KX0pKSxvP28ucmVmP2UucHVzaChuZXcgQ3QobixyLnJlZiwicmVmIGNhbm5vdCByZWZlcmVuY2UgYW5vdGhlciByZWYgbGF5ZXIiKSk6cz1PdChvLnR5cGUpOmUucHVzaChuZXcgQ3QobixyLnJlZiwncmVmIGxheWVyICInK2wrJyIgbm90IGZvdW5kJykpO2Vsc2UgaWYoImJhY2tncm91bmQiIT09cylpZihyLnNvdXJjZSl7dmFyIGg9aS5zb3VyY2VzJiZpLnNvdXJjZXNbci5zb3VyY2VdLHA9aCYmT3QoaC50eXBlKTtoPyJ2ZWN0b3IiPT09cCYmInJhc3RlciI9PT1zP2UucHVzaChuZXcgQ3QobixyLnNvdXJjZSwnbGF5ZXIgIicrci5pZCsnIiByZXF1aXJlcyBhIHJhc3RlciBzb3VyY2UnKSk6InJhc3RlciI9PT1wJiYicmFzdGVyIiE9PXM/ZS5wdXNoKG5ldyBDdChuLHIuc291cmNlLCdsYXllciAiJytyLmlkKyciIHJlcXVpcmVzIGEgdmVjdG9yIHNvdXJjZScpKToidmVjdG9yIiE9PXB8fHJbInNvdXJjZS1sYXllciJdPyJyYXN0ZXItZGVtIj09PXAmJiJoaWxsc2hhZGUiIT09cz9lLnB1c2gobmV3IEN0KG4sci5zb3VyY2UsInJhc3Rlci1kZW0gc291cmNlIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBsYXllciB0eXBlICdoaWxsc2hhZGUnLiIpKToibGluZSIhPT1zfHwhci5wYWludHx8IXIucGFpbnRbImxpbmUtZ3JhZGllbnQiXXx8Imdlb2pzb24iPT09cCYmaC5saW5lTWV0cmljc3x8ZS5wdXNoKG5ldyBDdChuLHIsJ2xheWVyICInK3IuaWQrJyIgc3BlY2lmaWVzIGEgbGluZS1ncmFkaWVudCwgd2hpY2ggcmVxdWlyZXMgYSBHZW9KU09OIHNvdXJjZSB3aXRoIGBsaW5lTWV0cmljc2AgZW5hYmxlZC4nKSk6ZS5wdXNoKG5ldyBDdChuLHIsJ2xheWVyICInK3IuaWQrJyIgbXVzdCBzcGVjaWZ5IGEgInNvdXJjZS1sYXllciInKSk6ZS5wdXNoKG5ldyBDdChuLHIuc291cmNlLCdzb3VyY2UgIicrci5zb3VyY2UrJyIgbm90IGZvdW5kJykpfWVsc2UgZS5wdXNoKG5ldyBDdChuLHIsJ21pc3NpbmcgcmVxdWlyZWQgcHJvcGVydHkgInNvdXJjZSInKSk7cmV0dXJuIGU9ZS5jb25jYXQoUXIoe2tleTpuLHZhbHVlOnIsdmFsdWVTcGVjOmEubGF5ZXIsc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6eyIqIjpmdW5jdGlvbigpe3JldHVybltdfSx0eXBlOmZ1bmN0aW9uKCl7cmV0dXJuIGtuKHtrZXk6bisiLnR5cGUiLHZhbHVlOnIudHlwZSx2YWx1ZVNwZWM6YS5sYXllci50eXBlLHN0eWxlOnQuc3R5bGUsc3R5bGVTcGVjOnQuc3R5bGVTcGVjLG9iamVjdDpyLG9iamVjdEtleToidHlwZSJ9KX0sZmlsdGVyOmRuLGxheW91dDpmdW5jdGlvbih0KXtyZXR1cm4gUXIoe2xheWVyOnIsa2V5OnQua2V5LHZhbHVlOnQudmFsdWUsc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6eyIqIjpmdW5jdGlvbih0KXtyZXR1cm4gdm4oSXQoe2xheWVyVHlwZTpzfSx0KSl9fX0pfSxwYWludDpmdW5jdGlvbih0KXtyZXR1cm4gUXIoe2xheWVyOnIsa2V5OnQua2V5LHZhbHVlOnQudmFsdWUsc3R5bGU6dC5zdHlsZSxzdHlsZVNwZWM6dC5zdHlsZVNwZWMsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6eyIqIjpmdW5jdGlvbih0KXtyZXR1cm4gZ24oSXQoe2xheWVyVHlwZTpzfSx0KSl9fX0pfX19KSl9ZnVuY3Rpb24geG4odCl7dmFyIGU9dC52YWx1ZSxyPXQua2V5LG49RnIoZSk7cmV0dXJuInN0cmluZyIhPT1uP1tuZXcgQ3QocixlLCJzdHJpbmcgZXhwZWN0ZWQsICIrbisiIGZvdW5kIildOltdfXZhciBibj17cHJvbW90ZUlkOmZ1bmN0aW9uKHQpe3ZhciBlPXQua2V5LHI9dC52YWx1ZTtpZigic3RyaW5nIj09PUZyKHIpKXJldHVybiB4bih7a2V5OmUsdmFsdWU6cn0pO3ZhciBuPVtdO2Zvcih2YXIgaSBpbiByKW4ucHVzaC5hcHBseShuLHhuKHtrZXk6ZSsiLiIraSx2YWx1ZTpyW2ldfSkpO3JldHVybiBufX07ZnVuY3Rpb24gX24odCl7dmFyIGU9dC52YWx1ZSxyPXQua2V5LG49dC5zdHlsZVNwZWMsaT10LnN0eWxlO2lmKCFlLnR5cGUpcmV0dXJuW25ldyBDdChyLGUsJyJ0eXBlIiBpcyByZXF1aXJlZCcpXTt2YXIgYSxvPU90KGUudHlwZSk7c3dpdGNoKG8pe2Nhc2UidmVjdG9yIjpjYXNlInJhc3RlciI6Y2FzZSJyYXN0ZXItZGVtIjpyZXR1cm4gYT1Rcih7a2V5OnIsdmFsdWU6ZSx2YWx1ZVNwZWM6blsic291cmNlXyIrby5yZXBsYWNlKCItIiwiXyIpXSxzdHlsZTp0LnN0eWxlLHN0eWxlU3BlYzpuLG9iamVjdEVsZW1lbnRWYWxpZGF0b3JzOmJufSk7Y2FzZSJnZW9qc29uIjppZihhPVFyKHtrZXk6cix2YWx1ZTplLHZhbHVlU3BlYzpuLnNvdXJjZV9nZW9qc29uLHN0eWxlOmksc3R5bGVTcGVjOm4sb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6Ym59KSxlLmNsdXN0ZXIpZm9yKHZhciBzIGluIGUuY2x1c3RlclByb3BlcnRpZXMpe3ZhciBsPWUuY2x1c3RlclByb3BlcnRpZXNbc10sYz1sWzBdLHU9bFsxXSxmPSJzdHJpbmciPT10eXBlb2YgYz9bYyxbImFjY3VtdWxhdGVkIl0sWyJnZXQiLHNdXTpjO2EucHVzaC5hcHBseShhLHJuKHtrZXk6cisiLiIrcysiLm1hcCIsdmFsdWU6dSxleHByZXNzaW9uQ29udGV4dDoiY2x1c3Rlci1tYXAifSkpLGEucHVzaC5hcHBseShhLHJuKHtrZXk6cisiLiIrcysiLnJlZHVjZSIsdmFsdWU6ZixleHByZXNzaW9uQ29udGV4dDoiY2x1c3Rlci1yZWR1Y2UifSkpfXJldHVybiBhO2Nhc2UidmlkZW8iOnJldHVybiBRcih7a2V5OnIsdmFsdWU6ZSx2YWx1ZVNwZWM6bi5zb3VyY2VfdmlkZW8sc3R5bGU6aSxzdHlsZVNwZWM6bn0pO2Nhc2UiaW1hZ2UiOnJldHVybiBRcih7a2V5OnIsdmFsdWU6ZSx2YWx1ZVNwZWM6bi5zb3VyY2VfaW1hZ2Usc3R5bGU6aSxzdHlsZVNwZWM6bn0pO2Nhc2UiY2FudmFzIjpyZXR1cm5bbmV3IEN0KHIsbnVsbCwiUGxlYXNlIHVzZSBydW50aW1lIEFQSXMgdG8gYWRkIGNhbnZhcyBzb3VyY2VzLCByYXRoZXIgdGhhbiBpbmNsdWRpbmcgdGhlbSBpbiBzdHlsZXNoZWV0cy4iLCJzb3VyY2UuY2FudmFzIildO2RlZmF1bHQ6cmV0dXJuIG5uKHtrZXk6cisiLnR5cGUiLHZhbHVlOmUudHlwZSx2YWx1ZVNwZWM6e3ZhbHVlczpbInZlY3RvciIsInJhc3RlciIsInJhc3Rlci1kZW0iLCJnZW9qc29uIiwidmlkZW8iLCJpbWFnZSJdfSxzdHlsZTppLHN0eWxlU3BlYzpufSl9fWZ1bmN0aW9uIHduKHQpe3ZhciBlPXQudmFsdWUscj10LnN0eWxlU3BlYyxuPXIubGlnaHQsaT10LnN0eWxlLGE9W10sbz1GcihlKTtpZih2b2lkIDA9PT1lKXJldHVybiBhO2lmKCJvYmplY3QiIT09bylyZXR1cm4gYT1hLmNvbmNhdChbbmV3IEN0KCJsaWdodCIsZSwib2JqZWN0IGV4cGVjdGVkLCAiK28rIiBmb3VuZCIpXSk7Zm9yKHZhciBzIGluIGUpe3ZhciBsPXMubWF0Y2goL14oLiopLXRyYW5zaXRpb24kLyk7YT1sJiZuW2xbMV1dJiZuW2xbMV1dLnRyYW5zaXRpb24/YS5jb25jYXQoa24oe2tleTpzLHZhbHVlOmVbc10sdmFsdWVTcGVjOnIudHJhbnNpdGlvbixzdHlsZTppLHN0eWxlU3BlYzpyfSkpOm5bc10/YS5jb25jYXQoa24oe2tleTpzLHZhbHVlOmVbc10sdmFsdWVTcGVjOm5bc10sc3R5bGU6aSxzdHlsZVNwZWM6cn0pKTphLmNvbmNhdChbbmV3IEN0KHMsZVtzXSwndW5rbm93biBwcm9wZXJ0eSAiJytzKyciJyldKX1yZXR1cm4gYX12YXIgVG49eyIqIjpmdW5jdGlvbigpe3JldHVybltdfSxhcnJheTokcixib29sZWFuOmZ1bmN0aW9uKHQpe3ZhciBlPXQudmFsdWUscj10LmtleSxuPUZyKGUpO3JldHVybiJib29sZWFuIiE9PW4/W25ldyBDdChyLGUsImJvb2xlYW4gZXhwZWN0ZWQsICIrbisiIGZvdW5kIildOltdfSxudW1iZXI6dG4sY29sb3I6ZnVuY3Rpb24odCl7dmFyIGU9dC5rZXkscj10LnZhbHVlLG49RnIocik7cmV0dXJuInN0cmluZyIhPT1uP1tuZXcgQ3QoZSxyLCJjb2xvciBleHBlY3RlZCwgIituKyIgZm91bmQiKV06bnVsbD09PSR0KHIpP1tuZXcgQ3QoZSxyLCdjb2xvciBleHBlY3RlZCwgIicrcisnIiBmb3VuZCcpXTpbXX0sY29uc3RhbnRzOlB0LGVudW06bm4sZmlsdGVyOmRuLGZ1bmN0aW9uOmVuLGxheWVyOnluLG9iamVjdDpRcixzb3VyY2U6X24sbGlnaHQ6d24sc3RyaW5nOnhuLGZvcm1hdHRlZDpmdW5jdGlvbih0KXtyZXR1cm4gMD09PXhuKHQpLmxlbmd0aD9bXTpybih0KX0scmVzb2x2ZWRJbWFnZTpmdW5jdGlvbih0KXtyZXR1cm4gMD09PXhuKHQpLmxlbmd0aD9bXTpybih0KX19O2Z1bmN0aW9uIGtuKHQpe3ZhciBlPXQudmFsdWUscj10LnZhbHVlU3BlYyxuPXQuc3R5bGVTcGVjO3JldHVybiByLmV4cHJlc3Npb24mJkJyKE90KGUpKT9lbih0KTpyLmV4cHJlc3Npb24mJllyKHp0KGUpKT9ybih0KTpyLnR5cGUmJlRuW3IudHlwZV0/VG5bci50eXBlXSh0KTpRcihJdCh7fSx0LHt2YWx1ZVNwZWM6ci50eXBlP25bci50eXBlXTpyfSkpfWZ1bmN0aW9uIEFuKHQpe3ZhciBlPXQudmFsdWUscj10LmtleSxuPXhuKHQpO3JldHVybiBuLmxlbmd0aHx8KC0xPT09ZS5pbmRleE9mKCJ7Zm9udHN0YWNrfSIpJiZuLnB1c2gobmV3IEN0KHIsZSwnImdseXBocyIgdXJsIG11c3QgaW5jbHVkZSBhICJ7Zm9udHN0YWNrfSIgdG9rZW4nKSksLTE9PT1lLmluZGV4T2YoIntyYW5nZX0iKSYmbi5wdXNoKG5ldyBDdChyLGUsJyJnbHlwaHMiIHVybCBtdXN0IGluY2x1ZGUgYSAie3JhbmdlfSIgdG9rZW4nKSkpLG59ZnVuY3Rpb24gTW4odCxlKXt2b2lkIDA9PT1lJiYoZT1MdCk7dmFyIHI9W107cmV0dXJuIHI9ci5jb25jYXQoa24oe2tleToiIix2YWx1ZTp0LHZhbHVlU3BlYzplLiRyb290LHN0eWxlU3BlYzplLHN0eWxlOnQsb2JqZWN0RWxlbWVudFZhbGlkYXRvcnM6e2dseXBoczpBbiwiKiI6ZnVuY3Rpb24oKXtyZXR1cm5bXX19fSkpLHQuY29uc3RhbnRzJiYocj1yLmNvbmNhdChQdCh7a2V5OiJjb25zdGFudHMiLHZhbHVlOnQuY29uc3RhbnRzLHN0eWxlOnQsc3R5bGVTcGVjOmV9KSkpLFNuKHIpfWZ1bmN0aW9uIFNuKHQpe3JldHVybltdLmNvbmNhdCh0KS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmxpbmUtZS5saW5lfSkpfWZ1bmN0aW9uIEVuKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyllW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4gU24odC5hcHBseSh0aGlzLGUpKX19TW4uc291cmNlPUVuKF9uKSxNbi5saWdodD1Fbih3biksTW4ubGF5ZXI9RW4oeW4pLE1uLmZpbHRlcj1FbihkbiksTW4ucGFpbnRQcm9wZXJ0eT1FbihnbiksTW4ubGF5b3V0UHJvcGVydHk9RW4odm4pO3ZhciBMbj1NbixDbj1Mbi5saWdodCxQbj1Mbi5wYWludFByb3BlcnR5LEluPUxuLmxheW91dFByb3BlcnR5O2Z1bmN0aW9uIE9uKHQsZSl7dmFyIHI9ITE7aWYoZSYmZS5sZW5ndGgpZm9yKHZhciBuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTt0LmZpcmUobmV3IFN0KG5ldyBFcnJvcihhLm1lc3NhZ2UpKSkscj0hMH1yZXR1cm4gcn12YXIgem49RG47ZnVuY3Rpb24gRG4odCxlLHIpe3ZhciBuPXRoaXMuY2VsbHM9W107aWYodCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXt0aGlzLmFycmF5QnVmZmVyPXQ7dmFyIGk9bmV3IEludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcik7dD1pWzBdLGU9aVsxXSxyPWlbMl0sdGhpcy5kPWUrMipyO2Zvcih2YXIgYT0wO2E8dGhpcy5kKnRoaXMuZDthKyspe3ZhciBvPWlbMythXSxzPWlbMythKzFdO24ucHVzaChvPT09cz9udWxsOmkuc3ViYXJyYXkobyxzKSl9dmFyIGw9aVszK24ubGVuZ3RoXSxjPWlbMytuLmxlbmd0aCsxXTt0aGlzLmtleXM9aS5zdWJhcnJheShsLGMpLHRoaXMuYmJveGVzPWkuc3ViYXJyYXkoYyksdGhpcy5pbnNlcnQ9dGhpcy5faW5zZXJ0UmVhZG9ubHl9ZWxzZXt0aGlzLmQ9ZSsyKnI7Zm9yKHZhciB1PTA7dTx0aGlzLmQqdGhpcy5kO3UrKyluLnB1c2goW10pO3RoaXMua2V5cz1bXSx0aGlzLmJib3hlcz1bXX10aGlzLm49ZSx0aGlzLmV4dGVudD10LHRoaXMucGFkZGluZz1yLHRoaXMuc2NhbGU9ZS90LHRoaXMudWlkPTA7dmFyIGY9ci9lKnQ7dGhpcy5taW49LWYsdGhpcy5tYXg9dCtmfURuLnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlLHIsbixpKXt0aGlzLl9mb3JFYWNoQ2VsbChlLHIsbixpLHRoaXMuX2luc2VydENlbGwsdGhpcy51aWQrKyksdGhpcy5rZXlzLnB1c2godCksdGhpcy5iYm94ZXMucHVzaChlKSx0aGlzLmJib3hlcy5wdXNoKHIpLHRoaXMuYmJveGVzLnB1c2gobiksdGhpcy5iYm94ZXMucHVzaChpKX0sRG4ucHJvdG90eXBlLl9pbnNlcnRSZWFkb25seT1mdW5jdGlvbigpe3Rocm93IkNhbm5vdCBpbnNlcnQgaW50byBhIEdyaWRJbmRleCBjcmVhdGVkIGZyb20gYW4gQXJyYXlCdWZmZXIuIn0sRG4ucHJvdG90eXBlLl9pbnNlcnRDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLmNlbGxzW2ldLnB1c2goYSl9LERuLnByb3RvdHlwZS5xdWVyeT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXRoaXMubWluLG89dGhpcy5tYXg7aWYodDw9YSYmZTw9YSYmbzw9ciYmbzw9biYmIWkpcmV0dXJuIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHRoaXMua2V5cyk7dmFyIHM9W107cmV0dXJuIHRoaXMuX2ZvckVhY2hDZWxsKHQsZSxyLG4sdGhpcy5fcXVlcnlDZWxsLHMse30saSksc30sRG4ucHJvdG90eXBlLl9xdWVyeUNlbGw9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzKXt2YXIgbD10aGlzLmNlbGxzW2ldO2lmKG51bGwhPT1sKWZvcih2YXIgYz10aGlzLmtleXMsdT10aGlzLmJib3hlcyxmPTA7ZjxsLmxlbmd0aDtmKyspe3ZhciBoPWxbZl07aWYodm9pZCAwPT09b1toXSl7dmFyIHA9NCpoOyhzP3ModVtwKzBdLHVbcCsxXSx1W3ArMl0sdVtwKzNdKTp0PD11W3ArMl0mJmU8PXVbcCszXSYmcj49dVtwKzBdJiZuPj11W3ArMV0pPyhvW2hdPSEwLGEucHVzaChjW2hdKSk6b1toXT0hMX19fSxEbi5wcm90b3R5cGUuX2ZvckVhY2hDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZCh0KSxjPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChlKSx1PXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChyKSxmPXRoaXMuX2NvbnZlcnRUb0NlbGxDb29yZChuKSxoPWw7aDw9dTtoKyspZm9yKHZhciBwPWM7cDw9ZjtwKyspe3ZhciBkPXRoaXMuZCpwK2g7aWYoKCFzfHxzKHRoaXMuX2NvbnZlcnRGcm9tQ2VsbENvb3JkKGgpLHRoaXMuX2NvbnZlcnRGcm9tQ2VsbENvb3JkKHApLHRoaXMuX2NvbnZlcnRGcm9tQ2VsbENvb3JkKGgrMSksdGhpcy5fY29udmVydEZyb21DZWxsQ29vcmQocCsxKSkpJiZpLmNhbGwodGhpcyx0LGUscixuLGQsYSxvLHMpKXJldHVybn19LERuLnByb3RvdHlwZS5fY29udmVydEZyb21DZWxsQ29vcmQ9ZnVuY3Rpb24odCl7cmV0dXJuKHQtdGhpcy5wYWRkaW5nKS90aGlzLnNjYWxlfSxEbi5wcm90b3R5cGUuX2NvbnZlcnRUb0NlbGxDb29yZD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbih0aGlzLmQtMSxNYXRoLmZsb29yKHQqdGhpcy5zY2FsZSkrdGhpcy5wYWRkaW5nKSl9LERuLnByb3RvdHlwZS50b0FycmF5QnVmZmVyPWZ1bmN0aW9uKCl7aWYodGhpcy5hcnJheUJ1ZmZlcilyZXR1cm4gdGhpcy5hcnJheUJ1ZmZlcjtmb3IodmFyIHQ9dGhpcy5jZWxscyxlPTMrdGhpcy5jZWxscy5sZW5ndGgrMSsxLHI9MCxuPTA7bjx0aGlzLmNlbGxzLmxlbmd0aDtuKyspcis9dGhpcy5jZWxsc1tuXS5sZW5ndGg7dmFyIGk9bmV3IEludDMyQXJyYXkoZStyK3RoaXMua2V5cy5sZW5ndGgrdGhpcy5iYm94ZXMubGVuZ3RoKTtpWzBdPXRoaXMuZXh0ZW50LGlbMV09dGhpcy5uLGlbMl09dGhpcy5wYWRkaW5nO2Zvcih2YXIgYT1lLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXTtpWzMrb109YSxpLnNldChzLGEpLGErPXMubGVuZ3RofXJldHVybiBpWzMrdC5sZW5ndGhdPWEsaS5zZXQodGhpcy5rZXlzLGEpLGErPXRoaXMua2V5cy5sZW5ndGgsaVszK3QubGVuZ3RoKzFdPWEsaS5zZXQodGhpcy5iYm94ZXMsYSksYSs9dGhpcy5iYm94ZXMubGVuZ3RoLGkuYnVmZmVyfTt2YXIgUm49c2VsZi5JbWFnZURhdGEsRm49c2VsZi5JbWFnZUJpdG1hcCxCbj17fTtmdW5jdGlvbiBObih0LGUscil7dm9pZCAwPT09ciYmKHI9e30pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCJfY2xhc3NSZWdpc3RyeUtleSIse3ZhbHVlOnQsd3JpdGVhYmxlOiExfSksQm5bdF09e2tsYXNzOmUsb21pdDpyLm9taXR8fFtdLHNoYWxsb3c6ci5zaGFsbG93fHxbXX19Zm9yKHZhciBqbiBpbiBObigiT2JqZWN0IixPYmplY3QpLHpuLnNlcmlhbGl6ZT1mdW5jdGlvbih0LGUpe3ZhciByPXQudG9BcnJheUJ1ZmZlcigpO3JldHVybiBlJiZlLnB1c2gocikse2J1ZmZlcjpyfX0sem4uZGVzZXJpYWxpemU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB6bih0LmJ1ZmZlcil9LE5uKCJHcmlkIix6biksTm4oIkNvbG9yIix0ZSksTm4oIkVycm9yIixFcnJvciksTm4oIlJlc29sdmVkSW1hZ2UiLGllKSxObigiU3R5bGVQcm9wZXJ0eUZ1bmN0aW9uIixLciksTm4oIlN0eWxlRXhwcmVzc2lvbiIsR3Ise29taXQ6WyJfZXZhbHVhdG9yIl19KSxObigiWm9vbURlcGVuZGVudEV4cHJlc3Npb24iLFpyKSxObigiWm9vbUNvbnN0YW50RXhwcmVzc2lvbiIsWHIpLE5uKCJDb21wb3VuZEV4cHJlc3Npb24iLHhlLHtvbWl0OlsiX2V2YWx1YXRlIl19KSxTcilTcltqbl0uX2NsYXNzUmVnaXN0cnlLZXl8fE5uKCJFeHByZXNzaW9uXyIram4sU3Jbam5dKTtmdW5jdGlvbiBVbih0KXtyZXR1cm4gdCYmInVuZGVmaW5lZCIhPXR5cGVvZiBBcnJheUJ1ZmZlciYmKHQgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcnx8dC5jb25zdHJ1Y3RvciYmIkFycmF5QnVmZmVyIj09PXQuY29uc3RydWN0b3IubmFtZSl9ZnVuY3Rpb24gVm4odCl7cmV0dXJuIEZuJiZ0IGluc3RhbmNlb2YgRm59ZnVuY3Rpb24gSG4odCxlKXtpZihudWxsPT10fHwiYm9vbGVhbiI9PXR5cGVvZiB0fHwibnVtYmVyIj09dHlwZW9mIHR8fCJzdHJpbmciPT10eXBlb2YgdHx8dCBpbnN0YW5jZW9mIEJvb2xlYW58fHQgaW5zdGFuY2VvZiBOdW1iZXJ8fHQgaW5zdGFuY2VvZiBTdHJpbmd8fHQgaW5zdGFuY2VvZiBEYXRlfHx0IGluc3RhbmNlb2YgUmVnRXhwKXJldHVybiB0O2lmKFVuKHQpfHxWbih0KSlyZXR1cm4gZSYmZS5wdXNoKHQpLHQ7aWYoQXJyYXlCdWZmZXIuaXNWaWV3KHQpKXt2YXIgcj10O3JldHVybiBlJiZlLnB1c2goci5idWZmZXIpLHJ9aWYodCBpbnN0YW5jZW9mIFJuKXJldHVybiBlJiZlLnB1c2godC5kYXRhLmJ1ZmZlciksdDtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIG49W10saT0wLGE9dDtpPGEubGVuZ3RoO2krPTEpe3ZhciBvPWFbaV07bi5wdXNoKEhuKG8sZSkpfXJldHVybiBufWlmKCJvYmplY3QiPT10eXBlb2YgdCl7dmFyIHM9dC5jb25zdHJ1Y3RvcixsPXMuX2NsYXNzUmVnaXN0cnlLZXk7aWYoIWwpdGhyb3cgbmV3IEVycm9yKCJjYW4ndCBzZXJpYWxpemUgb2JqZWN0IG9mIHVucmVnaXN0ZXJlZCBjbGFzcyIpO3ZhciBjPXMuc2VyaWFsaXplP3Muc2VyaWFsaXplKHQsZSk6e307aWYoIXMuc2VyaWFsaXplKXtmb3IodmFyIHUgaW4gdClpZih0Lmhhc093blByb3BlcnR5KHUpJiYhKEJuW2xdLm9taXQuaW5kZXhPZih1KT49MCkpe3ZhciBmPXRbdV07Y1t1XT1CbltsXS5zaGFsbG93LmluZGV4T2YodSk+PTA/ZjpIbihmLGUpfXQgaW5zdGFuY2VvZiBFcnJvciYmKGMubWVzc2FnZT10Lm1lc3NhZ2UpfWlmKGMuJG5hbWUpdGhyb3cgbmV3IEVycm9yKCIkbmFtZSBwcm9wZXJ0eSBpcyByZXNlcnZlZCBmb3Igd29ya2VyIHNlcmlhbGl6YXRpb24gbG9naWMuIik7cmV0dXJuIk9iamVjdCIhPT1sJiYoYy4kbmFtZT1sKSxjfXRocm93IG5ldyBFcnJvcigiY2FuJ3Qgc2VyaWFsaXplIG9iamVjdCBvZiB0eXBlICIrdHlwZW9mIHQpfWZ1bmN0aW9uIHFuKHQpe2lmKG51bGw9PXR8fCJib29sZWFuIj09dHlwZW9mIHR8fCJudW1iZXIiPT10eXBlb2YgdHx8InN0cmluZyI9PXR5cGVvZiB0fHx0IGluc3RhbmNlb2YgQm9vbGVhbnx8dCBpbnN0YW5jZW9mIE51bWJlcnx8dCBpbnN0YW5jZW9mIFN0cmluZ3x8dCBpbnN0YW5jZW9mIERhdGV8fHQgaW5zdGFuY2VvZiBSZWdFeHB8fFVuKHQpfHxWbih0KXx8QXJyYXlCdWZmZXIuaXNWaWV3KHQpfHx0IGluc3RhbmNlb2YgUm4pcmV0dXJuIHQ7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAocW4pO2lmKCJvYmplY3QiPT10eXBlb2YgdCl7dmFyIGU9dC4kbmFtZXx8Ik9iamVjdCIscj1CbltlXS5rbGFzcztpZighcil0aHJvdyBuZXcgRXJyb3IoImNhbid0IGRlc2VyaWFsaXplIHVucmVnaXN0ZXJlZCBjbGFzcyAiK2UpO2lmKHIuZGVzZXJpYWxpemUpcmV0dXJuIHIuZGVzZXJpYWxpemUodCk7Zm9yKHZhciBuPU9iamVjdC5jcmVhdGUoci5wcm90b3R5cGUpLGk9MCxhPU9iamVjdC5rZXlzKHQpO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTtpZigiJG5hbWUiIT09byl7dmFyIHM9dFtvXTtuW29dPUJuW2VdLnNoYWxsb3cuaW5kZXhPZihvKT49MD9zOnFuKHMpfX1yZXR1cm4gbn10aHJvdyBuZXcgRXJyb3IoImNhbid0IGRlc2VyaWFsaXplIG9iamVjdCBvZiB0eXBlICIrdHlwZW9mIHQpfXZhciBHbj1mdW5jdGlvbigpe3RoaXMuZmlyc3Q9ITB9O0duLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLmZsb29yKHQpO3JldHVybiB0aGlzLmZpcnN0Pyh0aGlzLmZpcnN0PSExLHRoaXMubGFzdEludGVnZXJab29tPXIsdGhpcy5sYXN0SW50ZWdlclpvb21UaW1lPTAsdGhpcy5sYXN0Wm9vbT10LHRoaXMubGFzdEZsb29yWm9vbT1yLCEwKToodGhpcy5sYXN0Rmxvb3Jab29tPnI/KHRoaXMubGFzdEludGVnZXJab29tPXIrMSx0aGlzLmxhc3RJbnRlZ2VyWm9vbVRpbWU9ZSk6dGhpcy5sYXN0Rmxvb3Jab29tPHImJih0aGlzLmxhc3RJbnRlZ2VyWm9vbT1yLHRoaXMubGFzdEludGVnZXJab29tVGltZT1lKSx0IT09dGhpcy5sYXN0Wm9vbSYmKHRoaXMubGFzdFpvb209dCx0aGlzLmxhc3RGbG9vclpvb209ciwhMCkpfTt2YXIgWW49eyJMYXRpbi0xIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjgmJnQ8PTI1NX0sQXJhYmljOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xNTM2JiZ0PD0xNzkxfSwiQXJhYmljIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xODcyJiZ0PD0xOTE5fSwiQXJhYmljIEV4dGVuZGVkLUEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0yMjA4JiZ0PD0yMzAzfSwiSGFuZ3VsIEphbW8iOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MzUyJiZ0PD00NjA3fSwiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTUxMjAmJnQ8PTU3NTl9LEtobWVyOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02MDE2JiZ0PD02MTQzfSwiVW5pZmllZCBDYW5hZGlhbiBBYm9yaWdpbmFsIFN5bGxhYmljcyBFeHRlbmRlZCI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTYzMjAmJnQ8PTYzOTl9LCJHZW5lcmFsIFB1bmN0dWF0aW9uIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49ODE5MiYmdDw9ODMwM30sIkxldHRlcmxpa2UgU3ltYm9scyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTg0NDgmJnQ8PTg1Mjd9LCJOdW1iZXIgRm9ybXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj04NTI4JiZ0PD04NTkxfSwiTWlzY2VsbGFuZW91cyBUZWNobmljYWwiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj04OTYwJiZ0PD05MjE1fSwiQ29udHJvbCBQaWN0dXJlcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTkyMTYmJnQ8PTkyNzl9LCJPcHRpY2FsIENoYXJhY3RlciBSZWNvZ25pdGlvbiI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTkyODAmJnQ8PTkzMTF9LCJFbmNsb3NlZCBBbHBoYW51bWVyaWNzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49OTMxMiYmdDw9OTQ3MX0sIkdlb21ldHJpYyBTaGFwZXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj05NjMyJiZ0PD05NzI3fSwiTWlzY2VsbGFuZW91cyBTeW1ib2xzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49OTcyOCYmdDw9OTk4M30sIk1pc2NlbGxhbmVvdXMgU3ltYm9scyBhbmQgQXJyb3dzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTEwMDgmJnQ8PTExMjYzfSwiQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMTkwNCYmdDw9MTIwMzF9LCJLYW5neGkgUmFkaWNhbHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjAzMiYmdDw9MTIyNTV9LCJJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBDaGFyYWN0ZXJzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIyNzImJnQ8PTEyMjg3fSwiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIyODgmJnQ8PTEyMzUxfSxIaXJhZ2FuYTpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTIzNTImJnQ8PTEyNDQ3fSxLYXRha2FuYTpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI0NDgmJnQ8PTEyNTQzfSxCb3BvbW9mbzpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI1NDQmJnQ8PTEyNTkxfSwiSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNTkyJiZ0PD0xMjY4N30sS2FuYnVuOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjY4OCYmdDw9MTI3MDN9LCJCb3BvbW9mbyBFeHRlbmRlZCI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNzA0JiZ0PD0xMjczNX0sIkNKSyBTdHJva2VzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49MTI3MzYmJnQ8PTEyNzgzfSwiS2F0YWthbmEgUGhvbmV0aWMgRXh0ZW5zaW9ucyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEyNzg0JiZ0PD0xMjc5OX0sIkVuY2xvc2VkIENKSyBMZXR0ZXJzIGFuZCBNb250aHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMjgwMCYmdDw9MTMwNTV9LCJDSksgQ29tcGF0aWJpbGl0eSI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEzMDU2JiZ0PD0xMzMxMX0sIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMgRXh0ZW5zaW9uIEEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xMzMxMiYmdDw9MTk5MDN9LCJZaWppbmcgSGV4YWdyYW0gU3ltYm9scyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTE5OTA0JiZ0PD0xOTk2N30sIkNKSyBVbmlmaWVkIElkZW9ncmFwaHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0xOTk2OCYmdDw9NDA5NTl9LCJZaSBTeWxsYWJsZXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MDk2MCYmdDw9NDIxMjd9LCJZaSBSYWRpY2FscyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTQyMTI4JiZ0PD00MjE5MX0sIkhhbmd1bCBKYW1vIEV4dGVuZGVkLUEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj00MzM2MCYmdDw9NDMzOTF9LCJIYW5ndWwgU3lsbGFibGVzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NDQwMzImJnQ8PTU1MjE1fSwiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQiI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTU1MjE2JiZ0PD01NTI5NX0sIlByaXZhdGUgVXNlIEFyZWEiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj01NzM0NCYmdDw9NjM3NDN9LCJDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NjM3NDQmJnQ8PTY0MjU1fSwiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1BIjpmdW5jdGlvbih0KXtyZXR1cm4gdD49NjQzMzYmJnQ8PTY1MDIzfSwiVmVydGljYWwgRm9ybXMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTA0MCYmdDw9NjUwNTV9LCJDSksgQ29tcGF0aWJpbGl0eSBGb3JtcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTY1MDcyJiZ0PD02NTEwM30sIlNtYWxsIEZvcm0gVmFyaWFudHMiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTEwNCYmdDw9NjUxMzV9LCJBcmFiaWMgUHJlc2VudGF0aW9uIEZvcm1zLUIiOmZ1bmN0aW9uKHQpe3JldHVybiB0Pj02NTEzNiYmdDw9NjUyNzl9LCJIYWxmd2lkdGggYW5kIEZ1bGx3aWR0aCBGb3JtcyI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTY1MjgwJiZ0PD02NTUxOX19O2Z1bmN0aW9uIFduKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe2lmKFpuKHJbZV0uY2hhckNvZGVBdCgwKSkpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gWG4odCl7cmV0dXJuIVluLkFyYWJpYyh0KSYmKCFZblsiQXJhYmljIFN1cHBsZW1lbnQiXSh0KSYmKCFZblsiQXJhYmljIEV4dGVuZGVkLUEiXSh0KSYmKCFZblsiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1BIl0odCkmJiFZblsiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1CIl0odCkpKSl9ZnVuY3Rpb24gWm4odCl7cmV0dXJuIDc0Nj09PXR8fDc0Nz09PXR8fCEodDw0MzUyKSYmKCEhWW5bIkJvcG9tb2ZvIEV4dGVuZGVkIl0odCl8fCghIVluLkJvcG9tb2ZvKHQpfHwoISghWW5bIkNKSyBDb21wYXRpYmlsaXR5IEZvcm1zIl0odCl8fHQ+PTY1MDk3JiZ0PD02NTEwMyl8fCghIVluWyJDSksgQ29tcGF0aWJpbGl0eSBJZGVvZ3JhcGhzIl0odCl8fCghIVluWyJDSksgQ29tcGF0aWJpbGl0eSJdKHQpfHwoISFZblsiQ0pLIFJhZGljYWxzIFN1cHBsZW1lbnQiXSh0KXx8KCEhWW5bIkNKSyBTdHJva2VzIl0odCl8fCghKCFZblsiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIl0odCl8fHQ+PTEyMjk2JiZ0PD0xMjMwNXx8dD49MTIzMDgmJnQ8PTEyMzE5fHwxMjMzNj09PXQpfHwoISFZblsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQSJdKHQpfHwoISFZblsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyJdKHQpfHwoISFZblsiRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRocyJdKHQpfHwoISFZblsiSGFuZ3VsIENvbXBhdGliaWxpdHkgSmFtbyJdKHQpfHwoISFZblsiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQSJdKHQpfHwoISFZblsiSGFuZ3VsIEphbW8gRXh0ZW5kZWQtQiJdKHQpfHwoISFZblsiSGFuZ3VsIEphbW8iXSh0KXx8KCEhWW5bIkhhbmd1bCBTeWxsYWJsZXMiXSh0KXx8KCEhWW4uSGlyYWdhbmEodCl8fCghIVluWyJJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBDaGFyYWN0ZXJzIl0odCl8fCghIVluLkthbmJ1bih0KXx8KCEhWW5bIkthbmd4aSBSYWRpY2FscyJdKHQpfHwoISFZblsiS2F0YWthbmEgUGhvbmV0aWMgRXh0ZW5zaW9ucyJdKHQpfHwoISghWW4uS2F0YWthbmEodCl8fDEyNTQwPT09dCl8fCghKCFZblsiSGFsZndpZHRoIGFuZCBGdWxsd2lkdGggRm9ybXMiXSh0KXx8NjUyODg9PT10fHw2NTI4OT09PXR8fDY1MjkzPT09dHx8dD49NjUzMDYmJnQ8PTY1MzEwfHw2NTMzOT09PXR8fDY1MzQxPT09dHx8NjUzNDM9PT10fHx0Pj02NTM3MSYmdDw9NjU1MDN8fDY1NTA3PT09dHx8dD49NjU1MTImJnQ8PTY1NTE5KXx8KCEoIVluWyJTbWFsbCBGb3JtIFZhcmlhbnRzIl0odCl8fHQ+PTY1MTEyJiZ0PD02NTExOHx8dD49NjUxMjMmJnQ8PTY1MTI2KXx8KCEhWW5bIlVuaWZpZWQgQ2FuYWRpYW4gQWJvcmlnaW5hbCBTeWxsYWJpY3MiXSh0KXx8KCEhWW5bIlVuaWZpZWQgQ2FuYWRpYW4gQWJvcmlnaW5hbCBTeWxsYWJpY3MgRXh0ZW5kZWQiXSh0KXx8KCEhWW5bIlZlcnRpY2FsIEZvcm1zIl0odCl8fCghIVluWyJZaWppbmcgSGV4YWdyYW0gU3ltYm9scyJdKHQpfHwoISFZblsiWWkgU3lsbGFibGVzIl0odCl8fCEhWW5bIllpIFJhZGljYWxzIl0odCkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKX1mdW5jdGlvbiBKbih0KXtyZXR1cm4hKFpuKHQpfHxmdW5jdGlvbih0KXtyZXR1cm4hKCFZblsiTGF0aW4tMSBTdXBwbGVtZW50Il0odCl8fDE2NyE9PXQmJjE2OSE9PXQmJjE3NCE9PXQmJjE3NyE9PXQmJjE4OCE9PXQmJjE4OSE9PXQmJjE5MCE9PXQmJjIxNSE9PXQmJjI0NyE9PXQpfHwoISghWW5bIkdlbmVyYWwgUHVuY3R1YXRpb24iXSh0KXx8ODIxNCE9PXQmJjgyMjQhPT10JiY4MjI1IT09dCYmODI0MCE9PXQmJjgyNDEhPT10JiY4MjUxIT09dCYmODI1MiE9PXQmJjgyNTghPT10JiY4MjYzIT09dCYmODI2NCE9PXQmJjgyNjUhPT10JiY4MjczIT09dCl8fCghIVluWyJMZXR0ZXJsaWtlIFN5bWJvbHMiXSh0KXx8KCEhWW5bIk51bWJlciBGb3JtcyJdKHQpfHwoISghWW5bIk1pc2NlbGxhbmVvdXMgVGVjaG5pY2FsIl0odCl8fCEodD49ODk2MCYmdDw9ODk2N3x8dD49ODk3MiYmdDw9ODk5MXx8dD49ODk5NiYmdDw9OWUzfHw5MDAzPT09dHx8dD49OTA4NSYmdDw9OTExNHx8dD49OTE1MCYmdDw9OTE2NXx8OTE2Nz09PXR8fHQ+PTkxNjkmJnQ8PTkxNzl8fHQ+PTkxODYmJnQ8PTkyMTUpKXx8KCEoIVluWyJDb250cm9sIFBpY3R1cmVzIl0odCl8fDkyNTE9PT10KXx8KCEhWW5bIk9wdGljYWwgQ2hhcmFjdGVyIFJlY29nbml0aW9uIl0odCl8fCghIVluWyJFbmNsb3NlZCBBbHBoYW51bWVyaWNzIl0odCl8fCghIVluWyJHZW9tZXRyaWMgU2hhcGVzIl0odCl8fCghKCFZblsiTWlzY2VsbGFuZW91cyBTeW1ib2xzIl0odCl8fHQ+PTk3NTQmJnQ8PTk3NTkpfHwoISghWW5bIk1pc2NlbGxhbmVvdXMgU3ltYm9scyBhbmQgQXJyb3dzIl0odCl8fCEodD49MTEwMjYmJnQ8PTExMDU1fHx0Pj0xMTA4OCYmdDw9MTEwOTd8fHQ+PTExMTkyJiZ0PD0xMTI0MykpfHwoISFZblsiQ0pLIFN5bWJvbHMgYW5kIFB1bmN0dWF0aW9uIl0odCl8fCghIVluLkthdGFrYW5hKHQpfHwoISFZblsiUHJpdmF0ZSBVc2UgQXJlYSJdKHQpfHwoISFZblsiQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMiXSh0KXx8KCEhWW5bIlNtYWxsIEZvcm0gVmFyaWFudHMiXSh0KXx8KCEhWW5bIkhhbGZ3aWR0aCBhbmQgRnVsbHdpZHRoIEZvcm1zIl0odCl8fCg4NzM0PT09dHx8ODc1Nj09PXR8fDg3NTc9PT10fHx0Pj05OTg0JiZ0PD0xMDA4N3x8dD49MTAxMDImJnQ8PTEwMTMxfHw2NTUzMj09PXR8fDY1NTMzPT09dCkpKSkpKSkpKSkpKSkpKSkpfSh0KSl9ZnVuY3Rpb24gS24odCl7cmV0dXJuIHQ+PTE0MjQmJnQ8PTIzMDN8fFluWyJBcmFiaWMgUHJlc2VudGF0aW9uIEZvcm1zLUEiXSh0KXx8WW5bIkFyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQiJdKHQpfWZ1bmN0aW9uIFFuKHQsZSl7cmV0dXJuISghZSYmS24odCkpJiYhKHQ+PTIzMDQmJnQ8PTM1ODN8fHQ+PTM4NDAmJnQ8PTQyNTV8fFluLktobWVyKHQpKX1mdW5jdGlvbiAkbih0KXtmb3IodmFyIGU9MCxyPXQ7ZTxyLmxlbmd0aDtlKz0xKXtpZihLbihyW2VdLmNoYXJDb2RlQXQoMCkpKXJldHVybiEwfXJldHVybiExfXZhciB0aT0iZGVmZXJyZWQiLGVpPSJsb2FkaW5nIixyaT0ibG9hZGVkIixuaT0iZXJyb3IiLGlpPW51bGwsYWk9InVuYXZhaWxhYmxlIixvaT1udWxsLHNpPWZ1bmN0aW9uKHQpe3QmJiJzdHJpbmciPT10eXBlb2YgdCYmdC5pbmRleE9mKCJOZXR3b3JrRXJyb3IiKT4tMSYmKGFpPW5pKSxpaSYmaWkodCl9O2Z1bmN0aW9uIGxpKCl7Y2kuZmlyZShuZXcgTXQoInBsdWdpblN0YXRlQ2hhbmdlIix7cGx1Z2luU3RhdHVzOmFpLHBsdWdpblVSTDpvaX0pKX12YXIgY2k9bmV3IEV0LHVpPWZ1bmN0aW9uKCl7cmV0dXJuIGFpfSxmaT1mdW5jdGlvbigpe2lmKGFpIT09dGl8fCFvaSl0aHJvdyBuZXcgRXJyb3IoInJ0bC10ZXh0LXBsdWdpbiBjYW5ub3QgYmUgZG93bmxvYWRlZCB1bmxlc3MgYSBwbHVnaW5VUkwgaXMgc3BlY2lmaWVkIik7YWk9ZWksbGkoKSxvaSYmeHQoe3VybDpvaX0sKGZ1bmN0aW9uKHQpe3Q/c2kodCk6KGFpPXJpLGxpKCkpfSkpfSxoaT17YXBwbHlBcmFiaWNTaGFwaW5nOm51bGwscHJvY2Vzc0JpZGlyZWN0aW9uYWxUZXh0Om51bGwscHJvY2Vzc1N0eWxlZEJpZGlyZWN0aW9uYWxUZXh0Om51bGwsaXNMb2FkZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gYWk9PT1yaXx8bnVsbCE9aGkuYXBwbHlBcmFiaWNTaGFwaW5nfSxpc0xvYWRpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gYWk9PT1laX0sc2V0U3RhdGU6ZnVuY3Rpb24odCl7YWk9dC5wbHVnaW5TdGF0dXMsb2k9dC5wbHVnaW5VUkx9LGlzUGFyc2VkOmZ1bmN0aW9uKCl7cmV0dXJuIG51bGwhPWhpLmFwcGx5QXJhYmljU2hhcGluZyYmbnVsbCE9aGkucHJvY2Vzc0JpZGlyZWN0aW9uYWxUZXh0JiZudWxsIT1oaS5wcm9jZXNzU3R5bGVkQmlkaXJlY3Rpb25hbFRleHR9LGdldFBsdWdpblVSTDpmdW5jdGlvbigpe3JldHVybiBvaX19LHBpPWZ1bmN0aW9uKHQsZSl7dGhpcy56b29tPXQsZT8odGhpcy5ub3c9ZS5ub3csdGhpcy5mYWRlRHVyYXRpb249ZS5mYWRlRHVyYXRpb24sdGhpcy56b29tSGlzdG9yeT1lLnpvb21IaXN0b3J5LHRoaXMudHJhbnNpdGlvbj1lLnRyYW5zaXRpb24pOih0aGlzLm5vdz0wLHRoaXMuZmFkZUR1cmF0aW9uPTAsdGhpcy56b29tSGlzdG9yeT1uZXcgR24sdGhpcy50cmFuc2l0aW9uPXt9KX07cGkucHJvdG90eXBlLmlzU3VwcG9ydGVkU2NyaXB0PWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49dDtyPG4ubGVuZ3RoO3IrPTEpe2lmKCFRbihuW3JdLmNoYXJDb2RlQXQoMCksZSkpcmV0dXJuITF9cmV0dXJuITB9KHQsaGkuaXNMb2FkZWQoKSl9LHBpLnByb3RvdHlwZS5jcm9zc0ZhZGluZ0ZhY3Rvcj1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5mYWRlRHVyYXRpb24/MTpNYXRoLm1pbigodGhpcy5ub3ctdGhpcy56b29tSGlzdG9yeS5sYXN0SW50ZWdlclpvb21UaW1lKS90aGlzLmZhZGVEdXJhdGlvbiwxKX0scGkucHJvdG90eXBlLmdldENyb3NzZmFkZVBhcmFtZXRlcnM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnpvb20sZT10LU1hdGguZmxvb3IodCkscj10aGlzLmNyb3NzRmFkaW5nRmFjdG9yKCk7cmV0dXJuIHQ+dGhpcy56b29tSGlzdG9yeS5sYXN0SW50ZWdlclpvb20/e2Zyb21TY2FsZToyLHRvU2NhbGU6MSx0OmUrKDEtZSkqcn06e2Zyb21TY2FsZTouNSx0b1NjYWxlOjEsdDoxLSgxLXIpKmV9fTt2YXIgZGk9ZnVuY3Rpb24odCxlKXt0aGlzLnByb3BlcnR5PXQsdGhpcy52YWx1ZT1lLHRoaXMuZXhwcmVzc2lvbj1mdW5jdGlvbih0LGUpe2lmKEJyKHQpKXJldHVybiBuZXcgS3IodCxlKTtpZihZcih0KSl7dmFyIHI9SnIodCxlKTtpZigiZXJyb3IiPT09ci5yZXN1bHQpdGhyb3cgbmV3IEVycm9yKHIudmFsdWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXkrIjogIit0Lm1lc3NhZ2V9KSkuam9pbigiLCAiKSk7cmV0dXJuIHIudmFsdWV9dmFyIG49dDtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJiJjb2xvciI9PT1lLnR5cGUmJihuPXRlLnBhcnNlKHQpKSx7a2luZDoiY29uc3RhbnQiLGV2YWx1YXRlOmZ1bmN0aW9uKCl7cmV0dXJuIG59fX0odm9pZCAwPT09ZT90LnNwZWNpZmljYXRpb24uZGVmYXVsdDplLHQuc3BlY2lmaWNhdGlvbil9O2RpLnByb3RvdHlwZS5pc0RhdGFEcml2ZW49ZnVuY3Rpb24oKXtyZXR1cm4ic291cmNlIj09PXRoaXMuZXhwcmVzc2lvbi5raW5kfHwiY29tcG9zaXRlIj09PXRoaXMuZXhwcmVzc2lvbi5raW5kfSxkaS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMucHJvcGVydHkucG9zc2libHlFdmFsdWF0ZSh0aGlzLHQsZSxyKX07dmFyIG1pPWZ1bmN0aW9uKHQpe3RoaXMucHJvcGVydHk9dCx0aGlzLnZhbHVlPW5ldyBkaSh0LHZvaWQgMCl9O21pLnByb3RvdHlwZS50cmFuc2l0aW9uZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IHZpKHRoaXMucHJvcGVydHksdGhpcy52YWx1ZSxlLHUoe30sdC50cmFuc2l0aW9uLHRoaXMudHJhbnNpdGlvbiksdC5ub3cpfSxtaS5wcm90b3R5cGUudW50cmFuc2l0aW9uZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHZpKHRoaXMucHJvcGVydHksdGhpcy52YWx1ZSxudWxsLHt9LDApfTt2YXIgZ2k9ZnVuY3Rpb24odCl7dGhpcy5fcHJvcGVydGllcz10LHRoaXMuX3ZhbHVlcz1PYmplY3QuY3JlYXRlKHQuZGVmYXVsdFRyYW5zaXRpb25hYmxlUHJvcGVydHlWYWx1ZXMpfTtnaS5wcm90b3R5cGUuZ2V0VmFsdWU9ZnVuY3Rpb24odCl7cmV0dXJuIHgodGhpcy5fdmFsdWVzW3RdLnZhbHVlLnZhbHVlKX0sZ2kucHJvdG90eXBlLnNldFZhbHVlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmFsdWVzLmhhc093blByb3BlcnR5KHQpfHwodGhpcy5fdmFsdWVzW3RdPW5ldyBtaSh0aGlzLl92YWx1ZXNbdF0ucHJvcGVydHkpKSx0aGlzLl92YWx1ZXNbdF0udmFsdWU9bmV3IGRpKHRoaXMuX3ZhbHVlc1t0XS5wcm9wZXJ0eSxudWxsPT09ZT92b2lkIDA6eChlKSl9LGdpLnByb3RvdHlwZS5nZXRUcmFuc2l0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB4KHRoaXMuX3ZhbHVlc1t0XS50cmFuc2l0aW9uKX0sZ2kucHJvdG90eXBlLnNldFRyYW5zaXRpb249ZnVuY3Rpb24odCxlKXt0aGlzLl92YWx1ZXMuaGFzT3duUHJvcGVydHkodCl8fCh0aGlzLl92YWx1ZXNbdF09bmV3IG1pKHRoaXMuX3ZhbHVlc1t0XS5wcm9wZXJ0eSkpLHRoaXMuX3ZhbHVlc1t0XS50cmFuc2l0aW9uPXgoZSl8fHZvaWQgMH0sZ2kucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe2Zvcih2YXIgdD17fSxlPTAscj1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxpPXRoaXMuZ2V0VmFsdWUobik7dm9pZCAwIT09aSYmKHRbbl09aSk7dmFyIGE9dGhpcy5nZXRUcmFuc2l0aW9uKG4pO3ZvaWQgMCE9PWEmJih0W24rIi10cmFuc2l0aW9uIl09YSl9cmV0dXJuIHR9LGdpLnByb3RvdHlwZS50cmFuc2l0aW9uZWQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IHlpKHRoaXMuX3Byb3BlcnRpZXMpLG49MCxpPU9iamVjdC5rZXlzKHRoaXMuX3ZhbHVlcyk7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dO3IuX3ZhbHVlc1thXT10aGlzLl92YWx1ZXNbYV0udHJhbnNpdGlvbmVkKHQsZS5fdmFsdWVzW2FdKX1yZXR1cm4gcn0sZ2kucHJvdG90eXBlLnVudHJhbnNpdGlvbmVkPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PW5ldyB5aSh0aGlzLl9wcm9wZXJ0aWVzKSxlPTAscj1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXTt0Ll92YWx1ZXNbbl09dGhpcy5fdmFsdWVzW25dLnVudHJhbnNpdGlvbmVkKCl9cmV0dXJuIHR9O3ZhciB2aT1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMucHJvcGVydHk9dCx0aGlzLnZhbHVlPWUsdGhpcy5iZWdpbj1pK24uZGVsYXl8fDAsdGhpcy5lbmQ9dGhpcy5iZWdpbituLmR1cmF0aW9ufHwwLHQuc3BlY2lmaWNhdGlvbi50cmFuc2l0aW9uJiYobi5kZWxheXx8bi5kdXJhdGlvbikmJih0aGlzLnByaW9yPXIpfTt2aS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscil7dmFyIG49dC5ub3d8fDAsaT10aGlzLnZhbHVlLnBvc3NpYmx5RXZhbHVhdGUodCxlLHIpLGE9dGhpcy5wcmlvcjtpZihhKXtpZihuPnRoaXMuZW5kKXJldHVybiB0aGlzLnByaW9yPW51bGwsaTtpZih0aGlzLnZhbHVlLmlzRGF0YURyaXZlbigpKXJldHVybiB0aGlzLnByaW9yPW51bGwsaTtpZihuPHRoaXMuYmVnaW4pcmV0dXJuIGEucG9zc2libHlFdmFsdWF0ZSh0LGUscik7dmFyIG89KG4tdGhpcy5iZWdpbikvKHRoaXMuZW5kLXRoaXMuYmVnaW4pO3JldHVybiB0aGlzLnByb3BlcnR5LmludGVycG9sYXRlKGEucG9zc2libHlFdmFsdWF0ZSh0LGUsciksaSxmdW5jdGlvbih0KXtpZih0PD0wKXJldHVybiAwO2lmKHQ+PTEpcmV0dXJuIDE7dmFyIGU9dCp0LHI9ZSp0O3JldHVybiA0Kih0PC41P3I6MyoodC1lKStyLS43NSl9KG8pKX1yZXR1cm4gaX07dmFyIHlpPWZ1bmN0aW9uKHQpe3RoaXMuX3Byb3BlcnRpZXM9dCx0aGlzLl92YWx1ZXM9T2JqZWN0LmNyZWF0ZSh0LmRlZmF1bHRUcmFuc2l0aW9uaW5nUHJvcGVydHlWYWx1ZXMpfTt5aS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPW5ldyBfaSh0aGlzLl9wcm9wZXJ0aWVzKSxpPTAsYT1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTtuLl92YWx1ZXNbb109dGhpcy5fdmFsdWVzW29dLnBvc3NpYmx5RXZhbHVhdGUodCxlLHIpfXJldHVybiBufSx5aS5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9T2JqZWN0LmtleXModGhpcy5fdmFsdWVzKTt0PGUubGVuZ3RoO3QrPTEpe3ZhciByPWVbdF07aWYodGhpcy5fdmFsdWVzW3JdLnByaW9yKXJldHVybiEwfXJldHVybiExfTt2YXIgeGk9ZnVuY3Rpb24odCl7dGhpcy5fcHJvcGVydGllcz10LHRoaXMuX3ZhbHVlcz1PYmplY3QuY3JlYXRlKHQuZGVmYXVsdFByb3BlcnR5VmFsdWVzKX07eGkucHJvdG90eXBlLmdldFZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB4KHRoaXMuX3ZhbHVlc1t0XS52YWx1ZSl9LHhpLnByb3RvdHlwZS5zZXRWYWx1ZT1mdW5jdGlvbih0LGUpe3RoaXMuX3ZhbHVlc1t0XT1uZXcgZGkodGhpcy5fdmFsdWVzW3RdLnByb3BlcnR5LG51bGw9PT1lP3ZvaWQgMDp4KGUpKX0seGkucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe2Zvcih2YXIgdD17fSxlPTAscj1PYmplY3Qua2V5cyh0aGlzLl92YWx1ZXMpO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxpPXRoaXMuZ2V0VmFsdWUobik7dm9pZCAwIT09aSYmKHRbbl09aSl9cmV0dXJuIHR9LHhpLnByb3RvdHlwZS5wb3NzaWJseUV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49bmV3IF9pKHRoaXMuX3Byb3BlcnRpZXMpLGk9MCxhPU9iamVjdC5rZXlzKHRoaXMuX3ZhbHVlcyk7aTxhLmxlbmd0aDtpKz0xKXt2YXIgbz1hW2ldO24uX3ZhbHVlc1tvXT10aGlzLl92YWx1ZXNbb10ucG9zc2libHlFdmFsdWF0ZSh0LGUscil9cmV0dXJuIG59O3ZhciBiaT1mdW5jdGlvbih0LGUscil7dGhpcy5wcm9wZXJ0eT10LHRoaXMudmFsdWU9ZSx0aGlzLnBhcmFtZXRlcnM9cn07YmkucHJvdG90eXBlLmlzQ29uc3RhbnQ9ZnVuY3Rpb24oKXtyZXR1cm4iY29uc3RhbnQiPT09dGhpcy52YWx1ZS5raW5kfSxiaS5wcm90b3R5cGUuY29uc3RhbnRPcj1mdW5jdGlvbih0KXtyZXR1cm4iY29uc3RhbnQiPT09dGhpcy52YWx1ZS5raW5kP3RoaXMudmFsdWUudmFsdWU6dH0sYmkucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLnByb3BlcnR5LmV2YWx1YXRlKHRoaXMudmFsdWUsdGhpcy5wYXJhbWV0ZXJzLHQsZSxyLG4pfTt2YXIgX2k9ZnVuY3Rpb24odCl7dGhpcy5fcHJvcGVydGllcz10LHRoaXMuX3ZhbHVlcz1PYmplY3QuY3JlYXRlKHQuZGVmYXVsdFBvc3NpYmx5RXZhbHVhdGVkVmFsdWVzKX07X2kucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsdWVzW3RdfTt2YXIgd2k9ZnVuY3Rpb24odCl7dGhpcy5zcGVjaWZpY2F0aW9uPXR9O3dpLnByb3RvdHlwZS5wb3NzaWJseUV2YWx1YXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlKX0sd2kucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1HZVt0aGlzLnNwZWNpZmljYXRpb24udHlwZV07cmV0dXJuIG4/bih0LGUscik6dH07dmFyIFRpPWZ1bmN0aW9uKHQsZSl7dGhpcy5zcGVjaWZpY2F0aW9uPXQsdGhpcy5vdmVycmlkZXM9ZX07VGkucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuImNvbnN0YW50Ij09PXQuZXhwcmVzc2lvbi5raW5kfHwiY2FtZXJhIj09PXQuZXhwcmVzc2lvbi5raW5kP25ldyBiaSh0aGlzLHtraW5kOiJjb25zdGFudCIsdmFsdWU6dC5leHByZXNzaW9uLmV2YWx1YXRlKGUsbnVsbCx7fSxyLG4pfSxlKTpuZXcgYmkodGhpcyx0LmV4cHJlc3Npb24sZSl9LFRpLnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0LGUscil7aWYoImNvbnN0YW50IiE9PXQudmFsdWUua2luZHx8ImNvbnN0YW50IiE9PWUudmFsdWUua2luZClyZXR1cm4gdDtpZih2b2lkIDA9PT10LnZhbHVlLnZhbHVlfHx2b2lkIDA9PT1lLnZhbHVlLnZhbHVlKXJldHVybiBuZXcgYmkodGhpcyx7a2luZDoiY29uc3RhbnQiLHZhbHVlOnZvaWQgMH0sdC5wYXJhbWV0ZXJzKTt2YXIgbj1HZVt0aGlzLnNwZWNpZmljYXRpb24udHlwZV07cmV0dXJuIG4/bmV3IGJpKHRoaXMse2tpbmQ6ImNvbnN0YW50Iix2YWx1ZTpuKHQudmFsdWUudmFsdWUsZS52YWx1ZS52YWx1ZSxyKX0sdC5wYXJhbWV0ZXJzKTp0fSxUaS5wcm90b3R5cGUuZXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiJjb25zdGFudCI9PT10LmtpbmQ/dC52YWx1ZTp0LmV2YWx1YXRlKGUscixuLGksYSl9O3ZhciBraT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGU9ZnVuY3Rpb24odCxlLHIsbil7aWYodm9pZCAwPT09dC52YWx1ZSlyZXR1cm4gbmV3IGJpKHRoaXMse2tpbmQ6ImNvbnN0YW50Iix2YWx1ZTp2b2lkIDB9LGUpO2lmKCJjb25zdGFudCI9PT10LmV4cHJlc3Npb24ua2luZCl7dmFyIGk9dC5leHByZXNzaW9uLmV2YWx1YXRlKGUsbnVsbCx7fSxyLG4pLGE9InJlc29sdmVkSW1hZ2UiPT09dC5wcm9wZXJ0eS5zcGVjaWZpY2F0aW9uLnR5cGUmJiJzdHJpbmciIT10eXBlb2YgaT9pLm5hbWU6aSxvPXRoaXMuX2NhbGN1bGF0ZShhLGEsYSxlKTtyZXR1cm4gbmV3IGJpKHRoaXMse2tpbmQ6ImNvbnN0YW50Iix2YWx1ZTpvfSxlKX1pZigiY2FtZXJhIj09PXQuZXhwcmVzc2lvbi5raW5kKXt2YXIgcz10aGlzLl9jYWxjdWxhdGUodC5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOmUuem9vbS0xfSksdC5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOmUuem9vbX0pLHQuZXhwcmVzc2lvbi5ldmFsdWF0ZSh7em9vbTplLnpvb20rMX0pLGUpO3JldHVybiBuZXcgYmkodGhpcyx7a2luZDoiY29uc3RhbnQiLHZhbHVlOnN9LGUpfXJldHVybiBuZXcgYmkodGhpcyx0LmV4cHJlc3Npb24sZSl9LGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtpZigic291cmNlIj09PXQua2luZCl7dmFyIG89dC5ldmFsdWF0ZShlLHIsbixpLGEpO3JldHVybiB0aGlzLl9jYWxjdWxhdGUobyxvLG8sZSl9cmV0dXJuImNvbXBvc2l0ZSI9PT10LmtpbmQ/dGhpcy5fY2FsY3VsYXRlKHQuZXZhbHVhdGUoe3pvb206TWF0aC5mbG9vcihlLnpvb20pLTF9LHIsbiksdC5ldmFsdWF0ZSh7em9vbTpNYXRoLmZsb29yKGUuem9vbSl9LHIsbiksdC5ldmFsdWF0ZSh7em9vbTpNYXRoLmZsb29yKGUuem9vbSkrMX0scixuKSxlKTp0LnZhbHVlfSxlLnByb3RvdHlwZS5fY2FsY3VsYXRlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiBuLnpvb20+bi56b29tSGlzdG9yeS5sYXN0SW50ZWdlclpvb20/e2Zyb206dCx0bzplfTp7ZnJvbTpyLHRvOmV9fSxlLnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sZX0oVGkpLEFpPWZ1bmN0aW9uKHQpe3RoaXMuc3BlY2lmaWNhdGlvbj10fTtBaS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscixuKXtpZih2b2lkIDAhPT10LnZhbHVlKXtpZigiY29uc3RhbnQiPT09dC5leHByZXNzaW9uLmtpbmQpe3ZhciBpPXQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlLG51bGwse30scixuKTtyZXR1cm4gdGhpcy5fY2FsY3VsYXRlKGksaSxpLGUpfXJldHVybiB0aGlzLl9jYWxjdWxhdGUodC5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBwaShNYXRoLmZsb29yKGUuem9vbS0xKSxlKSksdC5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBwaShNYXRoLmZsb29yKGUuem9vbSksZSkpLHQuZXhwcmVzc2lvbi5ldmFsdWF0ZShuZXcgcGkoTWF0aC5mbG9vcihlLnpvb20rMSksZSkpLGUpfX0sQWkucHJvdG90eXBlLl9jYWxjdWxhdGU9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIG4uem9vbT5uLnpvb21IaXN0b3J5Lmxhc3RJbnRlZ2VyWm9vbT97ZnJvbTp0LHRvOmV9Ontmcm9tOnIsdG86ZX19LEFpLnByb3RvdHlwZS5pbnRlcnBvbGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdH07dmFyIE1pPWZ1bmN0aW9uKHQpe3RoaXMuc3BlY2lmaWNhdGlvbj10fTtNaS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4hIXQuZXhwcmVzc2lvbi5ldmFsdWF0ZShlLG51bGwse30scixuKX0sTWkucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKCl7cmV0dXJuITF9O3ZhciBTaT1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5wcm9wZXJ0aWVzPXQsdGhpcy5kZWZhdWx0UHJvcGVydHlWYWx1ZXM9e30sdGhpcy5kZWZhdWx0VHJhbnNpdGlvbmFibGVQcm9wZXJ0eVZhbHVlcz17fSx0aGlzLmRlZmF1bHRUcmFuc2l0aW9uaW5nUHJvcGVydHlWYWx1ZXM9e30sdGhpcy5kZWZhdWx0UG9zc2libHlFdmFsdWF0ZWRWYWx1ZXM9e30sdGhpcy5vdmVycmlkYWJsZVByb3BlcnRpZXM9W10sdCl7dmFyIHI9dFtlXTtyLnNwZWNpZmljYXRpb24ub3ZlcnJpZGFibGUmJnRoaXMub3ZlcnJpZGFibGVQcm9wZXJ0aWVzLnB1c2goZSk7dmFyIG49dGhpcy5kZWZhdWx0UHJvcGVydHlWYWx1ZXNbZV09bmV3IGRpKHIsdm9pZCAwKSxpPXRoaXMuZGVmYXVsdFRyYW5zaXRpb25hYmxlUHJvcGVydHlWYWx1ZXNbZV09bmV3IG1pKHIpO3RoaXMuZGVmYXVsdFRyYW5zaXRpb25pbmdQcm9wZXJ0eVZhbHVlc1tlXT1pLnVudHJhbnNpdGlvbmVkKCksdGhpcy5kZWZhdWx0UG9zc2libHlFdmFsdWF0ZWRWYWx1ZXNbZV09bi5wb3NzaWJseUV2YWx1YXRlKHt9KX19O05uKCJEYXRhRHJpdmVuUHJvcGVydHkiLFRpKSxObigiRGF0YUNvbnN0YW50UHJvcGVydHkiLHdpKSxObigiQ3Jvc3NGYWRlZERhdGFEcml2ZW5Qcm9wZXJ0eSIsa2kpLE5uKCJDcm9zc0ZhZGVkUHJvcGVydHkiLEFpKSxObigiQ29sb3JSYW1wUHJvcGVydHkiLE1pKTt2YXIgRWk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe2lmKHQuY2FsbCh0aGlzKSx0aGlzLmlkPWUuaWQsdGhpcy50eXBlPWUudHlwZSx0aGlzLl9mZWF0dXJlRmlsdGVyPXtmaWx0ZXI6ZnVuY3Rpb24oKXtyZXR1cm4hMH0sbmVlZEdlb21ldHJ5OiExfSwiY3VzdG9tIiE9PWUudHlwZSYmKGU9ZSx0aGlzLm1ldGFkYXRhPWUubWV0YWRhdGEsdGhpcy5taW56b29tPWUubWluem9vbSx0aGlzLm1heHpvb209ZS5tYXh6b29tLCJiYWNrZ3JvdW5kIiE9PWUudHlwZSYmKHRoaXMuc291cmNlPWUuc291cmNlLHRoaXMuc291cmNlTGF5ZXI9ZVsic291cmNlLWxheWVyIl0sdGhpcy5maWx0ZXI9ZS5maWx0ZXIpLHIubGF5b3V0JiYodGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQ9bmV3IHhpKHIubGF5b3V0KSksci5wYWludCkpe2Zvcih2YXIgbiBpbiB0aGlzLl90cmFuc2l0aW9uYWJsZVBhaW50PW5ldyBnaShyLnBhaW50KSxlLnBhaW50KXRoaXMuc2V0UGFpbnRQcm9wZXJ0eShuLGUucGFpbnRbbl0se3ZhbGlkYXRlOiExfSk7Zm9yKHZhciBpIGluIGUubGF5b3V0KXRoaXMuc2V0TGF5b3V0UHJvcGVydHkoaSxlLmxheW91dFtpXSx7dmFsaWRhdGU6ITF9KTt0aGlzLl90cmFuc2l0aW9uaW5nUGFpbnQ9dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC51bnRyYW5zaXRpb25lZCgpLHRoaXMucGFpbnQ9bmV3IF9pKHIucGFpbnQpfX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0Q3Jvc3NmYWRlUGFyYW1ldGVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jcm9zc2ZhZGVQYXJhbWV0ZXJzfSxlLnByb3RvdHlwZS5nZXRMYXlvdXRQcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4idmlzaWJpbGl0eSI9PT10P3RoaXMudmlzaWJpbGl0eTp0aGlzLl91bmV2YWx1YXRlZExheW91dC5nZXRWYWx1ZSh0KX0sZS5wcm90b3R5cGUuc2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24odCxlLHIpe2lmKHZvaWQgMD09PXImJihyPXt9KSxudWxsIT1lKXt2YXIgbj0ibGF5ZXJzLiIrdGhpcy5pZCsiLmxheW91dC4iK3Q7aWYodGhpcy5fdmFsaWRhdGUoSW4sbix0LGUscikpcmV0dXJufSJ2aXNpYmlsaXR5IiE9PXQ/dGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQuc2V0VmFsdWUodCxlKTp0aGlzLnZpc2liaWxpdHk9ZX0sZS5wcm90b3R5cGUuZ2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0KXtyZXR1cm4gZyh0LCItdHJhbnNpdGlvbiIpP3RoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuZ2V0VHJhbnNpdGlvbih0LnNsaWNlKDAsLSItdHJhbnNpdGlvbiIubGVuZ3RoKSk6dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5nZXRWYWx1ZSh0KX0sZS5wcm90b3R5cGUuc2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwPT09ciYmKHI9e30pLG51bGwhPWUpe3ZhciBuPSJsYXllcnMuIit0aGlzLmlkKyIucGFpbnQuIit0O2lmKHRoaXMuX3ZhbGlkYXRlKFBuLG4sdCxlLHIpKXJldHVybiExfWlmKGcodCwiLXRyYW5zaXRpb24iKSlyZXR1cm4gdGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5zZXRUcmFuc2l0aW9uKHQuc2xpY2UoMCwtIi10cmFuc2l0aW9uIi5sZW5ndGgpLGV8fHZvaWQgMCksITE7dmFyIGk9dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5fdmFsdWVzW3RdLGE9ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIj09PWkucHJvcGVydHkuc3BlY2lmaWNhdGlvblsicHJvcGVydHktdHlwZSJdLG89aS52YWx1ZS5pc0RhdGFEcml2ZW4oKSxzPWkudmFsdWU7dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5zZXRWYWx1ZSh0LGUpLHRoaXMuX2hhbmRsZVNwZWNpYWxQYWludFByb3BlcnR5VXBkYXRlKHQpO3ZhciBsPXRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuX3ZhbHVlc1t0XS52YWx1ZTtyZXR1cm4gbC5pc0RhdGFEcml2ZW4oKXx8b3x8YXx8dGhpcy5faGFuZGxlT3ZlcnJpZGFibGVQYWludFByb3BlcnR5VXBkYXRlKHQscyxsKX0sZS5wcm90b3R5cGUuX2hhbmRsZVNwZWNpYWxQYWludFByb3BlcnR5VXBkYXRlPWZ1bmN0aW9uKHQpe30sZS5wcm90b3R5cGUuX2hhbmRsZU92ZXJyaWRhYmxlUGFpbnRQcm9wZXJ0eVVwZGF0ZT1mdW5jdGlvbih0LGUscil7cmV0dXJuITF9LGUucHJvdG90eXBlLmlzSGlkZGVuPWZ1bmN0aW9uKHQpe3JldHVybiEhKHRoaXMubWluem9vbSYmdDx0aGlzLm1pbnpvb20pfHwoISEodGhpcy5tYXh6b29tJiZ0Pj10aGlzLm1heHpvb20pfHwibm9uZSI9PT10aGlzLnZpc2liaWxpdHkpfSxlLnByb3RvdHlwZS51cGRhdGVUcmFuc2l0aW9ucz1mdW5jdGlvbih0KXt0aGlzLl90cmFuc2l0aW9uaW5nUGFpbnQ9dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC50cmFuc2l0aW9uZWQodCx0aGlzLl90cmFuc2l0aW9uaW5nUGFpbnQpfSxlLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25pbmdQYWludC5oYXNUcmFuc2l0aW9uKCl9LGUucHJvdG90eXBlLnJlY2FsY3VsYXRlPWZ1bmN0aW9uKHQsZSl7dC5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzJiYodGhpcy5fY3Jvc3NmYWRlUGFyYW1ldGVycz10LmdldENyb3NzZmFkZVBhcmFtZXRlcnMoKSksdGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQmJih0aGlzLmxheW91dD10aGlzLl91bmV2YWx1YXRlZExheW91dC5wb3NzaWJseUV2YWx1YXRlKHQsdm9pZCAwLGUpKSx0aGlzLnBhaW50PXRoaXMuX3RyYW5zaXRpb25pbmdQYWludC5wb3NzaWJseUV2YWx1YXRlKHQsdm9pZCAwLGUpfSxlLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXt2YXIgdD17aWQ6dGhpcy5pZCx0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5zb3VyY2UsInNvdXJjZS1sYXllciI6dGhpcy5zb3VyY2VMYXllcixtZXRhZGF0YTp0aGlzLm1ldGFkYXRhLG1pbnpvb206dGhpcy5taW56b29tLG1heHpvb206dGhpcy5tYXh6b29tLGZpbHRlcjp0aGlzLmZpbHRlcixsYXlvdXQ6dGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQmJnRoaXMuX3VuZXZhbHVhdGVkTGF5b3V0LnNlcmlhbGl6ZSgpLHBhaW50OnRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQmJnRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuc2VyaWFsaXplKCl9O3JldHVybiB0aGlzLnZpc2liaWxpdHkmJih0LmxheW91dD10LmxheW91dHx8e30sdC5sYXlvdXQudmlzaWJpbGl0eT10aGlzLnZpc2liaWxpdHkpLHkodCwoZnVuY3Rpb24odCxlKXtyZXR1cm4hKHZvaWQgMD09PXR8fCJsYXlvdXQiPT09ZSYmIU9iamVjdC5rZXlzKHQpLmxlbmd0aHx8InBhaW50Ij09PWUmJiFPYmplY3Qua2V5cyh0KS5sZW5ndGgpfSkpfSxlLnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gdm9pZCAwPT09aSYmKGk9e30pLCghaXx8ITEhPT1pLnZhbGlkYXRlKSYmT24odGhpcyx0LmNhbGwoTG4se2tleTplLGxheWVyVHlwZTp0aGlzLnR5cGUsb2JqZWN0S2V5OnIsdmFsdWU6bixzdHlsZVNwZWM6THQsc3R5bGU6e2dseXBoczohMCxzcHJpdGU6ITB9fSkpfSxlLnByb3RvdHlwZS5pczNEPWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLmlzVGlsZUNsaXBwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuaGFzT2Zmc2NyZWVuUGFzcz1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oKXt9LGUucHJvdG90eXBlLmlzU3RhdGVEZXBlbmRlbnQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5wYWludC5fdmFsdWVzKXt2YXIgZT10aGlzLnBhaW50LmdldCh0KTtpZihlIGluc3RhbmNlb2YgYmkmJnpyKGUucHJvcGVydHkuc3BlY2lmaWNhdGlvbikmJigoInNvdXJjZSI9PT1lLnZhbHVlLmtpbmR8fCJjb21wb3NpdGUiPT09ZS52YWx1ZS5raW5kKSYmZS52YWx1ZS5pc1N0YXRlRGVwZW5kZW50KSlyZXR1cm4hMH1yZXR1cm4hMX0sZX0oRXQpLExpPXtJbnQ4OkludDhBcnJheSxVaW50ODpVaW50OEFycmF5LEludDE2OkludDE2QXJyYXksVWludDE2OlVpbnQxNkFycmF5LEludDMyOkludDMyQXJyYXksVWludDMyOlVpbnQzMkFycmF5LEZsb2F0MzI6RmxvYXQzMkFycmF5fSxDaT1mdW5jdGlvbih0LGUpe3RoaXMuX3N0cnVjdEFycmF5PXQsdGhpcy5fcG9zMT1lKnRoaXMuc2l6ZSx0aGlzLl9wb3MyPXRoaXMuX3BvczEvMix0aGlzLl9wb3M0PXRoaXMuX3BvczEvNCx0aGlzLl9wb3M4PXRoaXMuX3BvczEvOH0sUGk9ZnVuY3Rpb24oKXt0aGlzLmlzVHJhbnNmZXJyZWQ9ITEsdGhpcy5jYXBhY2l0eT0tMSx0aGlzLnJlc2l6ZSgwKX07ZnVuY3Rpb24gSWkodCxlKXt2b2lkIDA9PT1lJiYoZT0xKTt2YXIgcj0wLG49MDtyZXR1cm57bWVtYmVyczp0Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGksYT0oaT10LnR5cGUsTGlbaV0uQllURVNfUEVSX0VMRU1FTlQpLG89cj1PaShyLE1hdGgubWF4KGUsYSkpLHM9dC5jb21wb25lbnRzfHwxO3JldHVybiBuPU1hdGgubWF4KG4sYSkscis9YSpzLHtuYW1lOnQubmFtZSx0eXBlOnQudHlwZSxjb21wb25lbnRzOnMsb2Zmc2V0Om99fSkpLHNpemU6T2kocixNYXRoLm1heChuLGUpKSxhbGlnbm1lbnQ6ZX19ZnVuY3Rpb24gT2kodCxlKXtyZXR1cm4gTWF0aC5jZWlsKHQvZSkqZX1QaS5zZXJpYWxpemU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5fdHJpbSgpLGUmJih0LmlzVHJhbnNmZXJyZWQ9ITAsZS5wdXNoKHQuYXJyYXlCdWZmZXIpKSx7bGVuZ3RoOnQubGVuZ3RoLGFycmF5QnVmZmVyOnQuYXJyYXlCdWZmZXJ9fSxQaS5kZXNlcmlhbGl6ZT1mdW5jdGlvbih0KXt2YXIgZT1PYmplY3QuY3JlYXRlKHRoaXMucHJvdG90eXBlKTtyZXR1cm4gZS5hcnJheUJ1ZmZlcj10LmFycmF5QnVmZmVyLGUubGVuZ3RoPXQubGVuZ3RoLGUuY2FwYWNpdHk9dC5hcnJheUJ1ZmZlci5ieXRlTGVuZ3RoL2UuYnl0ZXNQZXJFbGVtZW50LGUuX3JlZnJlc2hWaWV3cygpLGV9LFBpLnByb3RvdHlwZS5fdHJpbT1mdW5jdGlvbigpe3RoaXMubGVuZ3RoIT09dGhpcy5jYXBhY2l0eSYmKHRoaXMuY2FwYWNpdHk9dGhpcy5sZW5ndGgsdGhpcy5hcnJheUJ1ZmZlcj10aGlzLmFycmF5QnVmZmVyLnNsaWNlKDAsdGhpcy5sZW5ndGgqdGhpcy5ieXRlc1BlckVsZW1lbnQpLHRoaXMuX3JlZnJlc2hWaWV3cygpKX0sUGkucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5sZW5ndGg9MH0sUGkucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0KXt0aGlzLnJlc2VydmUodCksdGhpcy5sZW5ndGg9dH0sUGkucHJvdG90eXBlLnJlc2VydmU9ZnVuY3Rpb24odCl7aWYodD50aGlzLmNhcGFjaXR5KXt0aGlzLmNhcGFjaXR5PU1hdGgubWF4KHQsTWF0aC5mbG9vcig1KnRoaXMuY2FwYWNpdHkpLDEyOCksdGhpcy5hcnJheUJ1ZmZlcj1uZXcgQXJyYXlCdWZmZXIodGhpcy5jYXBhY2l0eSp0aGlzLmJ5dGVzUGVyRWxlbWVudCk7dmFyIGU9dGhpcy51aW50ODt0aGlzLl9yZWZyZXNoVmlld3MoKSxlJiZ0aGlzLnVpbnQ4LnNldChlKX19LFBpLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IEVycm9yKCJfcmVmcmVzaFZpZXdzKCkgbXVzdCBiZSBpbXBsZW1lbnRlZCBieSBlYWNoIGNvbmNyZXRlIFN0cnVjdEFycmF5IGxheW91dCIpfTt2YXIgemk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShyKzEpLHRoaXMuZW1wbGFjZShyLHQsZSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTIqdDtyZXR1cm4gdGhpcy5pbnQxNltuKzBdPWUsdGhpcy5pbnQxNltuKzFdPXIsdH0sZX0oUGkpO3ppLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NCxObigiU3RydWN0QXJyYXlMYXlvdXQyaTQiLHppKTt2YXIgRGk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUoaSsxKSx0aGlzLmVtcGxhY2UoaSx0LGUscixuKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPTQqdDtyZXR1cm4gdGhpcy5pbnQxNlthKzBdPWUsdGhpcy5pbnQxNlthKzFdPXIsdGhpcy5pbnQxNlthKzJdPW4sdGhpcy5pbnQxNlthKzNdPWksdH0sZX0oUGkpO0RpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxObigiU3RydWN0QXJyYXlMYXlvdXQ0aTgiLERpKTt2YXIgUmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG8rMSksdGhpcy5lbXBsYWNlKG8sdCxlLHIsbixpLGEpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzPTYqdDtyZXR1cm4gdGhpcy5pbnQxNltzKzBdPWUsdGhpcy5pbnQxNltzKzFdPXIsdGhpcy5pbnQxNltzKzJdPW4sdGhpcy5pbnQxNltzKzNdPWksdGhpcy5pbnQxNltzKzRdPWEsdGhpcy5pbnQxNltzKzVdPW8sdH0sZX0oUGkpO1JpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MTIsTm4oIlN0cnVjdEFycmF5TGF5b3V0Mmk0aTEyIixSaSk7dmFyIEZpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5pbnQxNj1uZXcgSW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShvKzEpLHRoaXMuZW1wbGFjZShvLHQsZSxyLG4saSxhKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz00KnQsbD04KnQ7cmV0dXJuIHRoaXMuaW50MTZbcyswXT1lLHRoaXMuaW50MTZbcysxXT1yLHRoaXMudWludDhbbCs0XT1uLHRoaXMudWludDhbbCs1XT1pLHRoaXMudWludDhbbCs2XT1hLHRoaXMudWludDhbbCs3XT1vLHR9LGV9KFBpKTtGaS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTgsTm4oIlN0cnVjdEFycmF5TGF5b3V0Mmk0dWI4IixGaSk7dmFyIEJpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjKXt2YXIgdT10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUodSsxKSx0aGlzLmVtcGxhY2UodSx0LGUscixuLGksYSxvLHMsbCxjKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUpe3ZhciBmPTkqdCxoPTE4KnQ7cmV0dXJuIHRoaXMudWludDE2W2YrMF09ZSx0aGlzLnVpbnQxNltmKzFdPXIsdGhpcy51aW50MTZbZisyXT1uLHRoaXMudWludDE2W2YrM109aSx0aGlzLnVpbnQxNltmKzRdPWEsdGhpcy51aW50MTZbZis1XT1vLHRoaXMudWludDE2W2YrNl09cyx0aGlzLnVpbnQxNltmKzddPWwsdGhpcy51aW50OFtoKzE2XT1jLHRoaXMudWludDhbaCsxN109dSx0fSxlfShQaSk7QmkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xOCxObigiU3RydWN0QXJyYXlMYXlvdXQ4dWkydWIxOCIsQmkpO3ZhciBOaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuaW50MTY9bmV3IEludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZil7dmFyIGg9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGgrMSksdGhpcy5lbXBsYWNlKGgsdCxlLHIsbixpLGEsbyxzLGwsYyx1LGYpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgpe3ZhciBwPTEyKnQ7cmV0dXJuIHRoaXMuaW50MTZbcCswXT1lLHRoaXMuaW50MTZbcCsxXT1yLHRoaXMuaW50MTZbcCsyXT1uLHRoaXMuaW50MTZbcCszXT1pLHRoaXMudWludDE2W3ArNF09YSx0aGlzLnVpbnQxNltwKzVdPW8sdGhpcy51aW50MTZbcCs2XT1zLHRoaXMudWludDE2W3ArN109bCx0aGlzLmludDE2W3ArOF09Yyx0aGlzLmludDE2W3ArOV09dSx0aGlzLmludDE2W3ArMTBdPWYsdGhpcy5pbnQxNltwKzExXT1oLHR9LGV9KFBpKTtOaS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTI0LE5uKCJTdHJ1Y3RBcnJheUxheW91dDRpNHVpNGkyNCIsTmkpO3ZhciBqaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuZmxvYXQzMj1uZXcgRmxvYXQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTMqdDtyZXR1cm4gdGhpcy5mbG9hdDMyW2krMF09ZSx0aGlzLmZsb2F0MzJbaSsxXT1yLHRoaXMuZmxvYXQzMltpKzJdPW4sdH0sZX0oUGkpO2ppLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MTIsTm4oIlN0cnVjdEFycmF5TGF5b3V0M2YxMiIsamkpO3ZhciBVaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMudWludDMyPW5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGUrMSksdGhpcy5lbXBsYWNlKGUsdCl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj0xKnQ7cmV0dXJuIHRoaXMudWludDMyW3IrMF09ZSx0fSxlfShQaSk7VWkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD00LE5uKCJTdHJ1Y3RBcnJheUxheW91dDF1bDQiLFVpKTt2YXIgVmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMudWludDMyPW5ldyBVaW50MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQxNj1uZXcgVWludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsKXt2YXIgYz10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUoYysxKSx0aGlzLmVtcGxhY2UoYyx0LGUscixuLGksYSxvLHMsbCl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyl7dmFyIHU9MTAqdCxmPTUqdDtyZXR1cm4gdGhpcy5pbnQxNlt1KzBdPWUsdGhpcy5pbnQxNlt1KzFdPXIsdGhpcy5pbnQxNlt1KzJdPW4sdGhpcy5pbnQxNlt1KzNdPWksdGhpcy5pbnQxNlt1KzRdPWEsdGhpcy5pbnQxNlt1KzVdPW8sdGhpcy51aW50MzJbZiszXT1zLHRoaXMudWludDE2W3UrOF09bCx0aGlzLnVpbnQxNlt1KzldPWMsdH0sZX0oUGkpO1ZpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MjAsTm4oIlN0cnVjdEFycmF5TGF5b3V0NmkxdWwydWkyMCIsVmkpO3ZhciBIaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuaW50MTY9bmV3IEludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbz10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUobysxKSx0aGlzLmVtcGxhY2Uobyx0LGUscixuLGksYSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7dmFyIHM9Nip0O3JldHVybiB0aGlzLmludDE2W3MrMF09ZSx0aGlzLmludDE2W3MrMV09cix0aGlzLmludDE2W3MrMl09bix0aGlzLmludDE2W3MrM109aSx0aGlzLmludDE2W3MrNF09YSx0aGlzLmludDE2W3MrNV09byx0fSxlfShQaSk7SGkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xMixObigiU3RydWN0QXJyYXlMYXlvdXQyaTJpMmkxMiIsSGkpO3ZhciBxaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuZmxvYXQzMj1uZXcgRmxvYXQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuaW50MTY9bmV3IEludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGErMSksdGhpcy5lbXBsYWNlKGEsdCxlLHIsbixpKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89NCp0LHM9OCp0O3JldHVybiB0aGlzLmZsb2F0MzJbbyswXT1lLHRoaXMuZmxvYXQzMltvKzFdPXIsdGhpcy5mbG9hdDMyW28rMl09bix0aGlzLmludDE2W3MrNl09aSx0aGlzLmludDE2W3MrN109YSx0fSxlfShQaSk7cWkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xNixObigiU3RydWN0QXJyYXlMYXlvdXQyZjFmMmkxNiIscWkpO3ZhciBHaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLl9yZWZyZXNoVmlld3M9ZnVuY3Rpb24oKXt0aGlzLnVpbnQ4PW5ldyBVaW50OEFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuZmxvYXQzMj1uZXcgRmxvYXQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmxlbmd0aDtyZXR1cm4gdGhpcy5yZXNpemUoaSsxKSx0aGlzLmVtcGxhY2UoaSx0LGUscixuKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPTEyKnQsbz0zKnQ7cmV0dXJuIHRoaXMudWludDhbYSswXT1lLHRoaXMudWludDhbYSsxXT1yLHRoaXMuZmxvYXQzMltvKzFdPW4sdGhpcy5mbG9hdDMyW28rMl09aSx0fSxlfShQaSk7R2kucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD0xMixObigiU3RydWN0QXJyYXlMYXlvdXQydWIyZjEyIixHaSk7dmFyIFlpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTMqdDtyZXR1cm4gdGhpcy51aW50MTZbaSswXT1lLHRoaXMudWludDE2W2krMV09cix0aGlzLnVpbnQxNltpKzJdPW4sdH0sZX0oUGkpO1lpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NixObigiU3RydWN0QXJyYXlMYXlvdXQzdWk2IixZaSk7dmFyIFdpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5pbnQxNj1uZXcgSW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQxNj1uZXcgVWludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MzI9bmV3IFVpbnQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMuZmxvYXQzMj1uZXcgRmxvYXQzMkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZixoLHAsZCxtLGcpe3ZhciB2PXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZSh2KzEpLHRoaXMuZW1wbGFjZSh2LHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1LGYsaCxwLGQsbSxnLHYpe3ZhciB5PTI0KnQseD0xMip0LGI9NDgqdDtyZXR1cm4gdGhpcy5pbnQxNlt5KzBdPWUsdGhpcy5pbnQxNlt5KzFdPXIsdGhpcy51aW50MTZbeSsyXT1uLHRoaXMudWludDE2W3krM109aSx0aGlzLnVpbnQzMlt4KzJdPWEsdGhpcy51aW50MzJbeCszXT1vLHRoaXMudWludDMyW3grNF09cyx0aGlzLnVpbnQxNlt5KzEwXT1sLHRoaXMudWludDE2W3krMTFdPWMsdGhpcy51aW50MTZbeSsxMl09dSx0aGlzLmZsb2F0MzJbeCs3XT1mLHRoaXMuZmxvYXQzMlt4KzhdPWgsdGhpcy51aW50OFtiKzM2XT1wLHRoaXMudWludDhbYiszN109ZCx0aGlzLnVpbnQ4W2IrMzhdPW0sdGhpcy51aW50MzJbeCsxMF09Zyx0aGlzLmludDE2W3krMjJdPXYsdH0sZX0oUGkpO1dpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NDgsTm4oIlN0cnVjdEFycmF5TGF5b3V0MmkydWkzdWwzdWkyZjN1YjF1bDFpNDgiLFdpKTt2YXIgWGk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpLHRoaXMudWludDE2PW5ldyBVaW50MTZBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQzMj1uZXcgVWludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5mbG9hdDMyPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFMpe3ZhciBFPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShFKzEpLHRoaXMuZW1wbGFjZShFLHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFMpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFMsRSl7dmFyIEw9MzQqdCxDPTE3KnQ7cmV0dXJuIHRoaXMuaW50MTZbTCswXT1lLHRoaXMuaW50MTZbTCsxXT1yLHRoaXMuaW50MTZbTCsyXT1uLHRoaXMuaW50MTZbTCszXT1pLHRoaXMuaW50MTZbTCs0XT1hLHRoaXMuaW50MTZbTCs1XT1vLHRoaXMuaW50MTZbTCs2XT1zLHRoaXMuaW50MTZbTCs3XT1sLHRoaXMudWludDE2W0wrOF09Yyx0aGlzLnVpbnQxNltMKzldPXUsdGhpcy51aW50MTZbTCsxMF09Zix0aGlzLnVpbnQxNltMKzExXT1oLHRoaXMudWludDE2W0wrMTJdPXAsdGhpcy51aW50MTZbTCsxM109ZCx0aGlzLnVpbnQxNltMKzE0XT1tLHRoaXMudWludDE2W0wrMTVdPWcsdGhpcy51aW50MTZbTCsxNl09dix0aGlzLnVpbnQxNltMKzE3XT15LHRoaXMudWludDE2W0wrMThdPXgsdGhpcy51aW50MTZbTCsxOV09Yix0aGlzLnVpbnQxNltMKzIwXT1fLHRoaXMudWludDE2W0wrMjFdPXcsdGhpcy51aW50MTZbTCsyMl09VCx0aGlzLnVpbnQzMltDKzEyXT1rLHRoaXMuZmxvYXQzMltDKzEzXT1BLHRoaXMuZmxvYXQzMltDKzE0XT1NLHRoaXMuZmxvYXQzMltDKzE1XT1TLHRoaXMuZmxvYXQzMltDKzE2XT1FLHR9LGV9KFBpKTtYaS5wcm90b3R5cGUuYnl0ZXNQZXJFbGVtZW50PTY4LE5uKCJTdHJ1Y3RBcnJheUxheW91dDhpMTV1aTF1bDRmNjgiLFhpKTt2YXIgWmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmZsb2F0MzI9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGUrMSksdGhpcy5lbXBsYWNlKGUsdCl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlKXt2YXIgcj0xKnQ7cmV0dXJuIHRoaXMuZmxvYXQzMltyKzBdPWUsdH0sZX0oUGkpO1ppLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NCxObigiU3RydWN0QXJyYXlMYXlvdXQxZjQiLFppKTt2YXIgSmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmludDE2PW5ldyBJbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTMqdDtyZXR1cm4gdGhpcy5pbnQxNltpKzBdPWUsdGhpcy5pbnQxNltpKzFdPXIsdGhpcy5pbnQxNltpKzJdPW4sdH0sZX0oUGkpO0ppLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9NixObigiU3RydWN0QXJyYXlMYXlvdXQzaTYiLEppKTt2YXIgS2k9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQzMj1uZXcgVWludDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKG4rMSksdGhpcy5lbXBsYWNlKG4sdCxlLHIpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPTIqdCxhPTQqdDtyZXR1cm4gdGhpcy51aW50MzJbaSswXT1lLHRoaXMudWludDE2W2ErMl09cix0aGlzLnVpbnQxNlthKzNdPW4sdH0sZX0oUGkpO0tpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxObigiU3RydWN0QXJyYXlMYXlvdXQxdWwydWk4IixLaSk7dmFyIFFpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy51aW50MTY9bmV3IFVpbnQxNkFycmF5KHRoaXMuYXJyYXlCdWZmZXIpfSxlLnByb3RvdHlwZS5lbXBsYWNlQmFjaz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShyKzEpLHRoaXMuZW1wbGFjZShyLHQsZSl9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTIqdDtyZXR1cm4gdGhpcy51aW50MTZbbiswXT1lLHRoaXMudWludDE2W24rMV09cix0fSxlfShQaSk7UWkucHJvdG90eXBlLmJ5dGVzUGVyRWxlbWVudD00LE5uKCJTdHJ1Y3RBcnJheUxheW91dDJ1aTQiLFFpKTt2YXIgJGk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLnVpbnQxNj1uZXcgVWludDE2QXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGVuZ3RoO3JldHVybiB0aGlzLnJlc2l6ZShlKzEpLHRoaXMuZW1wbGFjZShlLHQpfSxlLnByb3RvdHlwZS5lbXBsYWNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MSp0O3JldHVybiB0aGlzLnVpbnQxNltyKzBdPWUsdH0sZX0oUGkpOyRpLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MixObigiU3RydWN0QXJyYXlMYXlvdXQxdWkyIiwkaSk7dmFyIHRhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX3JlZnJlc2hWaWV3cz1mdW5jdGlvbigpe3RoaXMudWludDg9bmV3IFVpbnQ4QXJyYXkodGhpcy5hcnJheUJ1ZmZlciksdGhpcy5mbG9hdDMyPW5ldyBGbG9hdDMyQXJyYXkodGhpcy5hcnJheUJ1ZmZlcil9LGUucHJvdG90eXBlLmVtcGxhY2VCYWNrPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKHIrMSksdGhpcy5lbXBsYWNlKHIsdCxlKX0sZS5wcm90b3R5cGUuZW1wbGFjZT1mdW5jdGlvbih0LGUscil7dmFyIG49Mip0O3JldHVybiB0aGlzLmZsb2F0MzJbbiswXT1lLHRoaXMuZmxvYXQzMltuKzFdPXIsdH0sZX0oUGkpO3RhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9OCxObigiU3RydWN0QXJyYXlMYXlvdXQyZjgiLHRhKTt2YXIgZWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fcmVmcmVzaFZpZXdzPWZ1bmN0aW9uKCl7dGhpcy51aW50OD1uZXcgVWludDhBcnJheSh0aGlzLmFycmF5QnVmZmVyKSx0aGlzLmZsb2F0MzI9bmV3IEZsb2F0MzJBcnJheSh0aGlzLmFycmF5QnVmZmVyKX0sZS5wcm90b3R5cGUuZW1wbGFjZUJhY2s9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcy5sZW5ndGg7cmV0dXJuIHRoaXMucmVzaXplKGkrMSksdGhpcy5lbXBsYWNlKGksdCxlLHIsbil9LGUucHJvdG90eXBlLmVtcGxhY2U9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT00KnQ7cmV0dXJuIHRoaXMuZmxvYXQzMlthKzBdPWUsdGhpcy5mbG9hdDMyW2ErMV09cix0aGlzLmZsb2F0MzJbYSsyXT1uLHRoaXMuZmxvYXQzMlthKzNdPWksdH0sZX0oUGkpO2VhLnByb3RvdHlwZS5ieXRlc1BlckVsZW1lbnQ9MTYsTm4oIlN0cnVjdEFycmF5TGF5b3V0NGYxNiIsZWEpO3ZhciByYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9dCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWU7dmFyIHI9e2FuY2hvclBvaW50WDp7Y29uZmlndXJhYmxlOiEwfSxhbmNob3JQb2ludFk6e2NvbmZpZ3VyYWJsZTohMH0seDE6e2NvbmZpZ3VyYWJsZTohMH0seTE6e2NvbmZpZ3VyYWJsZTohMH0seDI6e2NvbmZpZ3VyYWJsZTohMH0seTI6e2NvbmZpZ3VyYWJsZTohMH0sZmVhdHVyZUluZGV4Ontjb25maWd1cmFibGU6ITB9LHNvdXJjZUxheWVySW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sYnVja2V0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sYW5jaG9yUG9pbnQ6e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiByLmFuY2hvclBvaW50WC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMiswXX0sci5hbmNob3JQb2ludFkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV19LHIueDEuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMl19LHIueTEuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrM119LHIueDIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNF19LHIueTIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNV19LHIuZmVhdHVyZUluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCszXX0sci5zb3VyY2VMYXllckluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMis4XX0sci5idWNrZXRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrOV19LHIuYW5jaG9yUG9pbnQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpKHRoaXMuYW5jaG9yUG9pbnRYLHRoaXMuYW5jaG9yUG9pbnRZKX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZS5wcm90b3R5cGUsciksZX0oQ2kpO3JhLnByb3RvdHlwZS5zaXplPTIwO3ZhciBuYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHJhKHRoaXMsdCl9LGV9KFZpKTtObigiQ29sbGlzaW9uQm94QXJyYXkiLG5hKTt2YXIgaWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lO3ZhciByPXthbmNob3JYOntjb25maWd1cmFibGU6ITB9LGFuY2hvclk6e2NvbmZpZ3VyYWJsZTohMH0sZ2x5cGhTdGFydEluZGV4Ontjb25maWd1cmFibGU6ITB9LG51bUdseXBoczp7Y29uZmlndXJhYmxlOiEwfSx2ZXJ0ZXhTdGFydEluZGV4Ontjb25maWd1cmFibGU6ITB9LGxpbmVTdGFydEluZGV4Ontjb25maWd1cmFibGU6ITB9LGxpbmVMZW5ndGg6e2NvbmZpZ3VyYWJsZTohMH0sc2VnbWVudDp7Y29uZmlndXJhYmxlOiEwfSxsb3dlclNpemU6e2NvbmZpZ3VyYWJsZTohMH0sdXBwZXJTaXplOntjb25maWd1cmFibGU6ITB9LGxpbmVPZmZzZXRYOntjb25maWd1cmFibGU6ITB9LGxpbmVPZmZzZXRZOntjb25maWd1cmFibGU6ITB9LHdyaXRpbmdNb2RlOntjb25maWd1cmFibGU6ITB9LHBsYWNlZE9yaWVudGF0aW9uOntjb25maWd1cmFibGU6ITB9LGhpZGRlbjp7Y29uZmlndXJhYmxlOiEwfSxjcm9zc1RpbGVJRDp7Y29uZmlndXJhYmxlOiEwfSxhc3NvY2lhdGVkSWNvbkluZGV4Ontjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gci5hbmNob3JYLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzBdfSxyLmFuY2hvclkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV19LHIuZ2x5cGhTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisyXX0sci5udW1HbHlwaHMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzNdfSxyLnZlcnRleFN0YXJ0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzJdfSxyLmxpbmVTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCszXX0sci5saW5lTGVuZ3RoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MzJbdGhpcy5fcG9zNCs0XX0sci5zZWdtZW50LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMF19LHIubG93ZXJTaXplLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMV19LHIudXBwZXJTaXplLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxMl19LHIubGluZU9mZnNldFguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmZsb2F0MzJbdGhpcy5fcG9zNCs3XX0sci5saW5lT2Zmc2V0WS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuZmxvYXQzMlt0aGlzLl9wb3M0KzhdfSxyLndyaXRpbmdNb2RlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50OFt0aGlzLl9wb3MxKzM2XX0sci5wbGFjZWRPcmllbnRhdGlvbi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDhbdGhpcy5fcG9zMSszN119LHIucGxhY2VkT3JpZW50YXRpb24uc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQ4W3RoaXMuX3BvczErMzddPXR9LHIuaGlkZGVuLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50OFt0aGlzLl9wb3MxKzM4XX0sci5oaWRkZW4uc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cnVjdEFycmF5LnVpbnQ4W3RoaXMuX3BvczErMzhdPXR9LHIuY3Jvc3NUaWxlSUQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzEwXX0sci5jcm9zc1RpbGVJRC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDMyW3RoaXMuX3BvczQrMTBdPXR9LHIuYXNzb2NpYXRlZEljb25JbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkuaW50MTZbdGhpcy5fcG9zMisyMl19LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpLGV9KENpKTtpYS5wcm90b3R5cGUuc2l6ZT00ODt2YXIgYWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBpYSh0aGlzLHQpfSxlfShXaSk7Tm4oIlBsYWNlZFN5bWJvbEFycmF5IixhYSk7dmFyIG9hPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZTt2YXIgcj17YW5jaG9yWDp7Y29uZmlndXJhYmxlOiEwfSxhbmNob3JZOntjb25maWd1cmFibGU6ITB9LHJpZ2h0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4Ontjb25maWd1cmFibGU6ITB9LGNlbnRlckp1c3RpZmllZFRleHRTeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxsZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4Ontjb25maWd1cmFibGU6ITB9LHZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4Ontjb25maWd1cmFibGU6ITB9LHBsYWNlZEljb25TeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSx2ZXJ0aWNhbFBsYWNlZEljb25TeW1ib2xJbmRleDp7Y29uZmlndXJhYmxlOiEwfSxrZXk6e2NvbmZpZ3VyYWJsZTohMH0sdGV4dEJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sdGV4dEJveEVuZEluZGV4Ontjb25maWd1cmFibGU6ITB9LHZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sdmVydGljYWxUZXh0Qm94RW5kSW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0saWNvbkJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0saWNvbkJveEVuZEluZGV4Ontjb25maWd1cmFibGU6ITB9LHZlcnRpY2FsSWNvbkJveFN0YXJ0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sdmVydGljYWxJY29uQm94RW5kSW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sZmVhdHVyZUluZGV4Ontjb25maWd1cmFibGU6ITB9LG51bUhvcml6b250YWxHbHlwaFZlcnRpY2VzOntjb25maWd1cmFibGU6ITB9LG51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlczp7Y29uZmlndXJhYmxlOiEwfSxudW1JY29uVmVydGljZXM6e2NvbmZpZ3VyYWJsZTohMH0sbnVtVmVydGljYWxJY29uVmVydGljZXM6e2NvbmZpZ3VyYWJsZTohMH0sdXNlUnVudGltZUNvbGxpc2lvbkNpcmNsZXM6e2NvbmZpZ3VyYWJsZTohMH0sY3Jvc3NUaWxlSUQ6e2NvbmZpZ3VyYWJsZTohMH0sdGV4dEJveFNjYWxlOntjb25maWd1cmFibGU6ITB9LHRleHRPZmZzZXQwOntjb25maWd1cmFibGU6ITB9LHRleHRPZmZzZXQxOntjb25maWd1cmFibGU6ITB9LGNvbGxpc2lvbkNpcmNsZURpYW1ldGVyOntjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gci5hbmNob3JYLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzBdfSxyLmFuY2hvclkuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMV19LHIucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrMl19LHIuY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzNdfSxyLmxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNF19LHIudmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LmludDE2W3RoaXMuX3BvczIrNV19LHIucGxhY2VkSWNvblN5bWJvbEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzZdfSxyLnZlcnRpY2FsUGxhY2VkSWNvblN5bWJvbEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5pbnQxNlt0aGlzLl9wb3MyKzddfSxyLmtleS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrOF19LHIudGV4dEJveFN0YXJ0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzldfSxyLnRleHRCb3hFbmRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTBdfSxyLnZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzExXX0sci52ZXJ0aWNhbFRleHRCb3hFbmRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTJdfSxyLmljb25Cb3hTdGFydEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxM119LHIuaWNvbkJveEVuZEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxNF19LHIudmVydGljYWxJY29uQm94U3RhcnRJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMTVdfSxyLnZlcnRpY2FsSWNvbkJveEVuZEluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxNl19LHIuZmVhdHVyZUluZGV4LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisxN119LHIubnVtSG9yaXpvbnRhbEdseXBoVmVydGljZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzE4XX0sci5udW1WZXJ0aWNhbEdseXBoVmVydGljZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzE5XX0sci5udW1JY29uVmVydGljZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzIwXX0sci5udW1WZXJ0aWNhbEljb25WZXJ0aWNlcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMjFdfSxyLnVzZVJ1bnRpbWVDb2xsaXNpb25DaXJjbGVzLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS51aW50MTZbdGhpcy5fcG9zMisyMl19LHIuY3Jvc3NUaWxlSUQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQzMlt0aGlzLl9wb3M0KzEyXX0sci5jcm9zc1RpbGVJRC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RydWN0QXJyYXkudWludDMyW3RoaXMuX3BvczQrMTJdPXR9LHIudGV4dEJveFNjYWxlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTNdfSxyLnRleHRPZmZzZXQwLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTRdfSxyLnRleHRPZmZzZXQxLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTVdfSxyLmNvbGxpc2lvbkNpcmNsZURpYW1ldGVyLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdHJ1Y3RBcnJheS5mbG9hdDMyW3RoaXMuX3BvczQrMTZdfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSxyKSxlfShDaSk7b2EucHJvdG90eXBlLnNpemU9Njg7dmFyIHNhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgb2EodGhpcyx0KX0sZX0oWGkpO05uKCJTeW1ib2xJbnN0YW5jZUFycmF5IixzYSk7dmFyIGxhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0b2Zmc2V0WD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mbG9hdDMyWzEqdCswXX0sZX0oWmkpO05uKCJHbHlwaE9mZnNldEFycmF5IixsYSk7dmFyIGNhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0eD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnQxNlszKnQrMF19LGUucHJvdG90eXBlLmdldHk9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaW50MTZbMyp0KzFdfSxlLnByb3RvdHlwZS5nZXR0aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbnQxNlszKnQrMl19LGV9KEppKTtObigiU3ltYm9sTGluZVZlcnRleEFycmF5IixjYSk7dmFyIHVhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX10JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZTt2YXIgcj17ZmVhdHVyZUluZGV4Ontjb25maWd1cmFibGU6ITB9LHNvdXJjZUxheWVySW5kZXg6e2NvbmZpZ3VyYWJsZTohMH0sYnVja2V0SW5kZXg6e2NvbmZpZ3VyYWJsZTohMH19O3JldHVybiByLmZlYXR1cmVJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDMyW3RoaXMuX3BvczQrMF19LHIuc291cmNlTGF5ZXJJbmRleC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RydWN0QXJyYXkudWludDE2W3RoaXMuX3BvczIrMl19LHIuYnVja2V0SW5kZXguZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0cnVjdEFycmF5LnVpbnQxNlt0aGlzLl9wb3MyKzNdfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhlLnByb3RvdHlwZSxyKSxlfShDaSk7dWEucHJvdG90eXBlLnNpemU9ODt2YXIgZmE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyB1YSh0aGlzLHQpfSxlfShLaSk7Tm4oIkZlYXR1cmVJbmRleEFycmF5IixmYSk7dmFyIGhhPUlpKFt7bmFtZToiYV9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSw0KS5tZW1iZXJzLHBhPWZ1bmN0aW9uKHQpe3ZvaWQgMD09PXQmJih0PVtdKSx0aGlzLnNlZ21lbnRzPXR9O2Z1bmN0aW9uIGRhKHQsZSl7cmV0dXJuIDI1NioodD1sKE1hdGguZmxvb3IodCksMCwyNTUpKSsoZT1sKE1hdGguZmxvb3IoZSksMCwyNTUpKX1wYS5wcm90b3R5cGUucHJlcGFyZVNlZ21lbnQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcy5zZWdtZW50c1t0aGlzLnNlZ21lbnRzLmxlbmd0aC0xXTtyZXR1cm4gdD5wYS5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSCYmXygiTWF4IHZlcnRpY2VzIHBlciBzZWdtZW50IGlzICIrcGEuTUFYX1ZFUlRFWF9BUlJBWV9MRU5HVEgrIjogYnVja2V0IHJlcXVlc3RlZCAiK3QpLCghaXx8aS52ZXJ0ZXhMZW5ndGgrdD5wYS5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSHx8aS5zb3J0S2V5IT09bikmJihpPXt2ZXJ0ZXhPZmZzZXQ6ZS5sZW5ndGgscHJpbWl0aXZlT2Zmc2V0OnIubGVuZ3RoLHZlcnRleExlbmd0aDowLHByaW1pdGl2ZUxlbmd0aDowfSx2b2lkIDAhPT1uJiYoaS5zb3J0S2V5PW4pLHRoaXMuc2VnbWVudHMucHVzaChpKSksaX0scGEucHJvdG90eXBlLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNlZ21lbnRzfSxwYS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe2Zvcih2YXIgdD0wLGU9dGhpcy5zZWdtZW50czt0PGUubGVuZ3RoO3QrPTEpe3ZhciByPWVbdF07Zm9yKHZhciBuIGluIHIudmFvcylyLnZhb3Nbbl0uZGVzdHJveSgpfX0scGEuc2ltcGxlU2VnbWVudD1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gbmV3IHBhKFt7dmVydGV4T2Zmc2V0OnQscHJpbWl0aXZlT2Zmc2V0OmUsdmVydGV4TGVuZ3RoOnIscHJpbWl0aXZlTGVuZ3RoOm4sdmFvczp7fSxzb3J0S2V5OjB9XSl9LHBhLk1BWF9WRVJURVhfQVJSQVlfTEVOR1RIPU1hdGgucG93KDIsMTYpLTEsTm4oIlNlZ21lbnRWZWN0b3IiLHBhKTt2YXIgbWE9SWkoW3tuYW1lOiJhX3BhdHRlcm5fZnJvbSIsY29tcG9uZW50czo0LHR5cGU6IlVpbnQxNiJ9LHtuYW1lOiJhX3BhdHRlcm5fdG8iLGNvbXBvbmVudHM6NCx0eXBlOiJVaW50MTYifSx7bmFtZToiYV9waXhlbF9yYXRpb19mcm9tIixjb21wb25lbnRzOjEsdHlwZToiVWludDgifSx7bmFtZToiYV9waXhlbF9yYXRpb190byIsY29tcG9uZW50czoxLHR5cGU6IlVpbnQ4In1dKSxnYT1lKChmdW5jdGlvbih0KXt0LmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLHMsbCxjO2ZvcihyPTMmdC5sZW5ndGgsbj10Lmxlbmd0aC1yLGk9ZSxvPTM0MzI5MTgzNTMscz00NjE4NDU5MDcsYz0wO2M8bjspbD0yNTUmdC5jaGFyQ29kZUF0KGMpfCgyNTUmdC5jaGFyQ29kZUF0KCsrYykpPDw4fCgyNTUmdC5jaGFyQ29kZUF0KCsrYykpPDwxNnwoMjU1JnQuY2hhckNvZGVBdCgrK2MpKTw8MjQsKytjLGk9Mjc0OTIrKDY1NTM1JihhPTUqKDY1NTM1JihpPShpXj1sPSg2NTUzNSYobD0obD0oNjU1MzUmbCkqbysoKChsPj4+MTYpKm8mNjU1MzUpPDwxNikmNDI5NDk2NzI5NSk8PDE1fGw+Pj4xNykpKnMrKCgobD4+PjE2KSpzJjY1NTM1KTw8MTYpJjQyOTQ5NjcyOTUpPDwxM3xpPj4+MTkpKSsoKDUqKGk+Pj4xNikmNjU1MzUpPDwxNikmNDI5NDk2NzI5NSkpKygoNTg5NjQrKGE+Pj4xNikmNjU1MzUpPDwxNik7c3dpdGNoKGw9MCxyKXtjYXNlIDM6bF49KDI1NSZ0LmNoYXJDb2RlQXQoYysyKSk8PDE2O2Nhc2UgMjpsXj0oMjU1JnQuY2hhckNvZGVBdChjKzEpKTw8ODtjYXNlIDE6aV49bD0oNjU1MzUmKGw9KGw9KDY1NTM1JihsXj0yNTUmdC5jaGFyQ29kZUF0KGMpKSkqbysoKChsPj4+MTYpKm8mNjU1MzUpPDwxNikmNDI5NDk2NzI5NSk8PDE1fGw+Pj4xNykpKnMrKCgobD4+PjE2KSpzJjY1NTM1KTw8MTYpJjQyOTQ5NjcyOTV9cmV0dXJuIGlePXQubGVuZ3RoLGk9MjI0NjgyMjUwNyooNjU1MzUmKGlePWk+Pj4xNikpKygoMjI0NjgyMjUwNyooaT4+PjE2KSY2NTUzNSk8PDE2KSY0Mjk0OTY3Mjk1LGk9MzI2NjQ4OTkwOSooNjU1MzUmKGlePWk+Pj4xMykpKygoMzI2NjQ4OTkwOSooaT4+PjE2KSY2NTUzNSk8PDE2KSY0Mjk0OTY3Mjk1LChpXj1pPj4+MTYpPj4+MH19KSksdmE9ZSgoZnVuY3Rpb24odCl7dC5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC5sZW5ndGgsaT1lXm4sYT0wO24+PTQ7KXI9MTU0MDQ4MzQ3NyooNjU1MzUmKHI9MjU1JnQuY2hhckNvZGVBdChhKXwoMjU1JnQuY2hhckNvZGVBdCgrK2EpKTw8OHwoMjU1JnQuY2hhckNvZGVBdCgrK2EpKTw8MTZ8KDI1NSZ0LmNoYXJDb2RlQXQoKythKSk8PDI0KSkrKCgxNTQwNDgzNDc3KihyPj4+MTYpJjY1NTM1KTw8MTYpLGk9MTU0MDQ4MzQ3NyooNjU1MzUmaSkrKCgxNTQwNDgzNDc3KihpPj4+MTYpJjY1NTM1KTw8MTYpXihyPTE1NDA0ODM0NzcqKDY1NTM1JihyXj1yPj4+MjQpKSsoKDE1NDA0ODM0NzcqKHI+Pj4xNikmNjU1MzUpPDwxNikpLG4tPTQsKythO3N3aXRjaChuKXtjYXNlIDM6aV49KDI1NSZ0LmNoYXJDb2RlQXQoYSsyKSk8PDE2O2Nhc2UgMjppXj0oMjU1JnQuY2hhckNvZGVBdChhKzEpKTw8ODtjYXNlIDE6aT0xNTQwNDgzNDc3Kig2NTUzNSYoaV49MjU1JnQuY2hhckNvZGVBdChhKSkpKygoMTU0MDQ4MzQ3NyooaT4+PjE2KSY2NTUzNSk8PDE2KX1yZXR1cm4gaT0xNTQwNDgzNDc3Kig2NTUzNSYoaV49aT4+PjEzKSkrKCgxNTQwNDgzNDc3KihpPj4+MTYpJjY1NTM1KTw8MTYpLChpXj1pPj4+MTUpPj4+MH19KSkseWE9Z2EseGE9Z2EsYmE9dmE7eWEubXVybXVyMz14YSx5YS5tdXJtdXIyPWJhO3ZhciBfYT1mdW5jdGlvbigpe3RoaXMuaWRzPVtdLHRoaXMucG9zaXRpb25zPVtdLHRoaXMuaW5kZXhlZD0hMX07X2EucHJvdG90eXBlLmFkZD1mdW5jdGlvbih0LGUscixuKXt0aGlzLmlkcy5wdXNoKFRhKHQpKSx0aGlzLnBvc2l0aW9ucy5wdXNoKGUscixuKX0sX2EucHJvdG90eXBlLmdldFBvc2l0aW9ucz1mdW5jdGlvbih0KXtmb3IodmFyIGU9VGEodCkscj0wLG49dGhpcy5pZHMubGVuZ3RoLTE7cjxuOyl7dmFyIGk9cituPj4xO3RoaXMuaWRzW2ldPj1lP249aTpyPWkrMX1mb3IodmFyIGE9W107dGhpcy5pZHNbcl09PT1lOyl7dmFyIG89dGhpcy5wb3NpdGlvbnNbMypyXSxzPXRoaXMucG9zaXRpb25zWzMqcisxXSxsPXRoaXMucG9zaXRpb25zWzMqcisyXTthLnB1c2goe2luZGV4Om8sc3RhcnQ6cyxlbmQ6bH0pLHIrK31yZXR1cm4gYX0sX2Euc2VyaWFsaXplPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IEZsb2F0NjRBcnJheSh0Lmlkcyksbj1uZXcgVWludDMyQXJyYXkodC5wb3NpdGlvbnMpO3JldHVybiBmdW5jdGlvbiB0KGUscixuLGkpe2Zvcig7bjxpOyl7Zm9yKHZhciBhPWVbbitpPj4xXSxvPW4tMSxzPWkrMTs7KXtkb3tvKyt9d2hpbGUoZVtvXTxhKTtkb3tzLS19d2hpbGUoZVtzXT5hKTtpZihvPj1zKWJyZWFrO2thKGUsbyxzKSxrYShyLDMqbywzKnMpLGthKHIsMypvKzEsMypzKzEpLGthKHIsMypvKzIsMypzKzIpfXMtbjxpLXM/KHQoZSxyLG4scyksbj1zKzEpOih0KGUscixzKzEsaSksaT1zKX19KHIsbiwwLHIubGVuZ3RoLTEpLGUmJmUucHVzaChyLmJ1ZmZlcixuLmJ1ZmZlcikse2lkczpyLHBvc2l0aW9uczpufX0sX2EuZGVzZXJpYWxpemU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IF9hO3JldHVybiBlLmlkcz10LmlkcyxlLnBvc2l0aW9ucz10LnBvc2l0aW9ucyxlLmluZGV4ZWQ9ITAsZX07dmFyIHdhPU1hdGgucG93KDIsNTMpLTE7ZnVuY3Rpb24gVGEodCl7dmFyIGU9K3Q7cmV0dXJuIWlzTmFOKGUpJiZlPD13YT9lOnlhKFN0cmluZyh0KSl9ZnVuY3Rpb24ga2EodCxlLHIpe3ZhciBuPXRbZV07dFtlXT10W3JdLHRbcl09bn1ObigiRmVhdHVyZVBvc2l0aW9uTWFwIixfYSk7dmFyIEFhPWZ1bmN0aW9uKHQsZSl7dGhpcy5nbD10LmdsLHRoaXMubG9jYXRpb249ZX0sTWE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PTB9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt0aGlzLmN1cnJlbnQhPT10JiYodGhpcy5jdXJyZW50PXQsdGhpcy5nbC51bmlmb3JtMWkodGhpcy5sb2NhdGlvbix0KSl9LGV9KEFhKSxTYT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscil7dC5jYWxsKHRoaXMsZSxyKSx0aGlzLmN1cnJlbnQ9MH1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuY3VycmVudCE9PXQmJih0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm0xZih0aGlzLmxvY2F0aW9uLHQpKX0sZX0oQWEpLEVhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuY3VycmVudD1bMCwwXX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RbMF09PT10aGlzLmN1cnJlbnRbMF0mJnRbMV09PT10aGlzLmN1cnJlbnRbMV18fCh0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm0yZih0aGlzLmxvY2F0aW9uLHRbMF0sdFsxXSkpfSxlfShBYSksTGE9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PVswLDAsMF19cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt0WzBdPT09dGhpcy5jdXJyZW50WzBdJiZ0WzFdPT09dGhpcy5jdXJyZW50WzFdJiZ0WzJdPT09dGhpcy5jdXJyZW50WzJdfHwodGhpcy5jdXJyZW50PXQsdGhpcy5nbC51bmlmb3JtM2YodGhpcy5sb2NhdGlvbix0WzBdLHRbMV0sdFsyXSkpfSxlfShBYSksQ2E9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUsciksdGhpcy5jdXJyZW50PVswLDAsMCwwXX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RbMF09PT10aGlzLmN1cnJlbnRbMF0mJnRbMV09PT10aGlzLmN1cnJlbnRbMV0mJnRbMl09PT10aGlzLmN1cnJlbnRbMl0mJnRbM109PT10aGlzLmN1cnJlbnRbM118fCh0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm00Zih0aGlzLmxvY2F0aW9uLHRbMF0sdFsxXSx0WzJdLHRbM10pKX0sZX0oQWEpLFBhPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuY3VycmVudD10ZS50cmFuc3BhcmVudH1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3Qucj09PXRoaXMuY3VycmVudC5yJiZ0Lmc9PT10aGlzLmN1cnJlbnQuZyYmdC5iPT09dGhpcy5jdXJyZW50LmImJnQuYT09PXRoaXMuY3VycmVudC5hfHwodGhpcy5jdXJyZW50PXQsdGhpcy5nbC51bmlmb3JtNGYodGhpcy5sb2NhdGlvbix0LnIsdC5nLHQuYix0LmEpKX0sZX0oQWEpLElhPW5ldyBGbG9hdDMyQXJyYXkoMTYpLE9hPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSxyKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuY3VycmVudD1JYX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHRbMTJdIT09dGhpcy5jdXJyZW50WzEyXXx8dFswXSE9PXRoaXMuY3VycmVudFswXSlyZXR1cm4gdGhpcy5jdXJyZW50PXQsdm9pZCB0aGlzLmdsLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5sb2NhdGlvbiwhMSx0KTtmb3IodmFyIGU9MTtlPDE2O2UrKylpZih0W2VdIT09dGhpcy5jdXJyZW50W2VdKXt0aGlzLmN1cnJlbnQ9dCx0aGlzLmdsLnVuaWZvcm1NYXRyaXg0ZnYodGhpcy5sb2NhdGlvbiwhMSx0KTticmVha319LGV9KEFhKTtmdW5jdGlvbiB6YSh0KXtyZXR1cm5bZGEoMjU1KnQuciwyNTUqdC5nKSxkYSgyNTUqdC5iLDI1NSp0LmEpXX12YXIgRGE9ZnVuY3Rpb24odCxlLHIpe3RoaXMudmFsdWU9dCx0aGlzLnVuaWZvcm1OYW1lcz1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuInVfIit0fSkpLHRoaXMudHlwZT1yfTtEYS5wcm90b3R5cGUuc2V0VW5pZm9ybT1mdW5jdGlvbih0LGUscil7dC5zZXQoci5jb25zdGFudE9yKHRoaXMudmFsdWUpKX0sRGEucHJvdG90eXBlLmdldEJpbmRpbmc9ZnVuY3Rpb24odCxlLHIpe3JldHVybiJjb2xvciI9PT10aGlzLnR5cGU/bmV3IFBhKHQsZSk6bmV3IFNhKHQsZSl9O3ZhciBSYT1mdW5jdGlvbih0LGUpe3RoaXMudW5pZm9ybU5hbWVzPWUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4idV8iK3R9KSksdGhpcy5wYXR0ZXJuRnJvbT1udWxsLHRoaXMucGF0dGVyblRvPW51bGwsdGhpcy5waXhlbFJhdGlvRnJvbT0xLHRoaXMucGl4ZWxSYXRpb1RvPTF9O1JhLnByb3RvdHlwZS5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnM9ZnVuY3Rpb24odCxlKXt0aGlzLnBpeGVsUmF0aW9Gcm9tPWUucGl4ZWxSYXRpbyx0aGlzLnBpeGVsUmF0aW9Ubz10LnBpeGVsUmF0aW8sdGhpcy5wYXR0ZXJuRnJvbT1lLnRsYnIsdGhpcy5wYXR0ZXJuVG89dC50bGJyfSxSYS5wcm90b3R5cGUuc2V0VW5pZm9ybT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT0idV9wYXR0ZXJuX3RvIj09PW4/dGhpcy5wYXR0ZXJuVG86InVfcGF0dGVybl9mcm9tIj09PW4/dGhpcy5wYXR0ZXJuRnJvbToidV9waXhlbF9yYXRpb190byI9PT1uP3RoaXMucGl4ZWxSYXRpb1RvOiJ1X3BpeGVsX3JhdGlvX2Zyb20iPT09bj90aGlzLnBpeGVsUmF0aW9Gcm9tOm51bGw7aSYmdC5zZXQoaSl9LFJhLnByb3RvdHlwZS5nZXRCaW5kaW5nPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4idV9wYXR0ZXJuIj09PXIuc3Vic3RyKDAsOSk/bmV3IENhKHQsZSk6bmV3IFNhKHQsZSl9O3ZhciBGYT1mdW5jdGlvbih0LGUscixuKXt0aGlzLmV4cHJlc3Npb249dCx0aGlzLnR5cGU9cix0aGlzLm1heFZhbHVlPTAsdGhpcy5wYWludFZlcnRleEF0dHJpYnV0ZXM9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntuYW1lOiJhXyIrdCx0eXBlOiJGbG9hdDMyIixjb21wb25lbnRzOiJjb2xvciI9PT1yPzI6MSxvZmZzZXQ6MH19KSksdGhpcy5wYWludFZlcnRleEFycmF5PW5ldyBufTtGYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5wYWludFZlcnRleEFycmF5Lmxlbmd0aCxvPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZShuZXcgcGkoMCksZSx7fSxuLFtdLGkpO3RoaXMucGFpbnRWZXJ0ZXhBcnJheS5yZXNpemUodCksdGhpcy5fc2V0UGFpbnRWYWx1ZShhLHQsbyl9LEZhLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZSh7em9vbTowfSxyLG4pO3RoaXMuX3NldFBhaW50VmFsdWUodCxlLGkpfSxGYS5wcm90b3R5cGUuX3NldFBhaW50VmFsdWU9ZnVuY3Rpb24odCxlLHIpe2lmKCJjb2xvciI9PT10aGlzLnR5cGUpZm9yKHZhciBuPXphKHIpLGk9dDtpPGU7aSsrKXRoaXMucGFpbnRWZXJ0ZXhBcnJheS5lbXBsYWNlKGksblswXSxuWzFdKTtlbHNle2Zvcih2YXIgYT10O2E8ZTthKyspdGhpcy5wYWludFZlcnRleEFycmF5LmVtcGxhY2UoYSxyKTt0aGlzLm1heFZhbHVlPU1hdGgubWF4KHRoaXMubWF4VmFsdWUsTWF0aC5hYnMocikpfX0sRmEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnBhaW50VmVydGV4QXJyYXkmJnRoaXMucGFpbnRWZXJ0ZXhBcnJheS5hcnJheUJ1ZmZlciYmKHRoaXMucGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXIuYnVmZmVyP3RoaXMucGFpbnRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YSh0aGlzLnBhaW50VmVydGV4QXJyYXkpOnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5wYWludFZlcnRleEFycmF5LHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LEZhLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5wYWludFZlcnRleEJ1ZmZlciYmdGhpcy5wYWludFZlcnRleEJ1ZmZlci5kZXN0cm95KCl9O3ZhciBCYT1mdW5jdGlvbih0LGUscixuLGksYSl7dGhpcy5leHByZXNzaW9uPXQsdGhpcy51bmlmb3JtTmFtZXM9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiJ1XyIrdCsiX3QifSkpLHRoaXMudHlwZT1yLHRoaXMudXNlSW50ZWdlclpvb209bix0aGlzLnpvb209aSx0aGlzLm1heFZhbHVlPTAsdGhpcy5wYWludFZlcnRleEF0dHJpYnV0ZXM9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntuYW1lOiJhXyIrdCx0eXBlOiJGbG9hdDMyIixjb21wb25lbnRzOiJjb2xvciI9PT1yPzQ6MixvZmZzZXQ6MH19KSksdGhpcy5wYWludFZlcnRleEFycmF5PW5ldyBhfTtCYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKG5ldyBwaSh0aGlzLnpvb20pLGUse30sbixbXSxpKSxvPXRoaXMuZXhwcmVzc2lvbi5ldmFsdWF0ZShuZXcgcGkodGhpcy56b29tKzEpLGUse30sbixbXSxpKSxzPXRoaXMucGFpbnRWZXJ0ZXhBcnJheS5sZW5ndGg7dGhpcy5wYWludFZlcnRleEFycmF5LnJlc2l6ZSh0KSx0aGlzLl9zZXRQYWludFZhbHVlKHMsdCxhLG8pfSxCYS5wcm90b3R5cGUudXBkYXRlUGFpbnRBcnJheT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmV4cHJlc3Npb24uZXZhbHVhdGUoe3pvb206dGhpcy56b29tfSxyLG4pLGE9dGhpcy5leHByZXNzaW9uLmV2YWx1YXRlKHt6b29tOnRoaXMuem9vbSsxfSxyLG4pO3RoaXMuX3NldFBhaW50VmFsdWUodCxlLGksYSl9LEJhLnByb3RvdHlwZS5fc2V0UGFpbnRWYWx1ZT1mdW5jdGlvbih0LGUscixuKXtpZigiY29sb3IiPT09dGhpcy50eXBlKWZvcih2YXIgaT16YShyKSxhPXphKG4pLG89dDtvPGU7bysrKXRoaXMucGFpbnRWZXJ0ZXhBcnJheS5lbXBsYWNlKG8saVswXSxpWzFdLGFbMF0sYVsxXSk7ZWxzZXtmb3IodmFyIHM9dDtzPGU7cysrKXRoaXMucGFpbnRWZXJ0ZXhBcnJheS5lbXBsYWNlKHMscixuKTt0aGlzLm1heFZhbHVlPU1hdGgubWF4KHRoaXMubWF4VmFsdWUsTWF0aC5hYnMociksTWF0aC5hYnMobikpfX0sQmEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnBhaW50VmVydGV4QXJyYXkmJnRoaXMucGFpbnRWZXJ0ZXhBcnJheS5hcnJheUJ1ZmZlciYmKHRoaXMucGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXIuYnVmZmVyP3RoaXMucGFpbnRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YSh0aGlzLnBhaW50VmVydGV4QXJyYXkpOnRoaXMucGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5wYWludFZlcnRleEFycmF5LHRoaXMucGFpbnRWZXJ0ZXhBdHRyaWJ1dGVzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LEJhLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5wYWludFZlcnRleEJ1ZmZlciYmdGhpcy5wYWludFZlcnRleEJ1ZmZlci5kZXN0cm95KCl9LEJhLnByb3RvdHlwZS5zZXRVbmlmb3JtPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy51c2VJbnRlZ2VyWm9vbT9NYXRoLmZsb29yKGUuem9vbSk6ZS56b29tLG49bCh0aGlzLmV4cHJlc3Npb24uaW50ZXJwb2xhdGlvbkZhY3RvcihyLHRoaXMuem9vbSx0aGlzLnpvb20rMSksMCwxKTt0LnNldChuKX0sQmEucHJvdG90eXBlLmdldEJpbmRpbmc9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuZXcgU2EodCxlKX07dmFyIE5hPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLmV4cHJlc3Npb249dCx0aGlzLnR5cGU9ZSx0aGlzLnVzZUludGVnZXJab29tPXIsdGhpcy56b29tPW4sdGhpcy5sYXllcklkPWEsdGhpcy56b29tSW5QYWludFZlcnRleEFycmF5PW5ldyBpLHRoaXMuem9vbU91dFBhaW50VmVydGV4QXJyYXk9bmV3IGl9O05hLnByb3RvdHlwZS5wb3B1bGF0ZVBhaW50QXJyYXk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuem9vbUluUGFpbnRWZXJ0ZXhBcnJheS5sZW5ndGg7dGhpcy56b29tSW5QYWludFZlcnRleEFycmF5LnJlc2l6ZSh0KSx0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5LnJlc2l6ZSh0KSx0aGlzLl9zZXRQYWludFZhbHVlcyhuLHQsZS5wYXR0ZXJucyYmZS5wYXR0ZXJuc1t0aGlzLmxheWVySWRdLHIpfSxOYS5wcm90b3R5cGUudXBkYXRlUGFpbnRBcnJheT1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMuX3NldFBhaW50VmFsdWVzKHQsZSxyLnBhdHRlcm5zJiZyLnBhdHRlcm5zW3RoaXMubGF5ZXJJZF0saSl9LE5hLnByb3RvdHlwZS5fc2V0UGFpbnRWYWx1ZXM9ZnVuY3Rpb24odCxlLHIsbil7aWYobiYmcil7dmFyIGk9ci5taW4sYT1yLm1pZCxvPXIubWF4LHM9bltpXSxsPW5bYV0sYz1uW29dO2lmKHMmJmwmJmMpZm9yKHZhciB1PXQ7dTxlO3UrKyl0aGlzLnpvb21JblBhaW50VmVydGV4QXJyYXkuZW1wbGFjZSh1LGwudGxbMF0sbC50bFsxXSxsLmJyWzBdLGwuYnJbMV0scy50bFswXSxzLnRsWzFdLHMuYnJbMF0scy5iclsxXSxsLnBpeGVsUmF0aW8scy5waXhlbFJhdGlvKSx0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5LmVtcGxhY2UodSxsLnRsWzBdLGwudGxbMV0sbC5iclswXSxsLmJyWzFdLGMudGxbMF0sYy50bFsxXSxjLmJyWzBdLGMuYnJbMV0sbC5waXhlbFJhdGlvLGMucGl4ZWxSYXRpbyl9fSxOYS5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMuem9vbUluUGFpbnRWZXJ0ZXhBcnJheSYmdGhpcy56b29tSW5QYWludFZlcnRleEFycmF5LmFycmF5QnVmZmVyJiZ0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5JiZ0aGlzLnpvb21PdXRQYWludFZlcnRleEFycmF5LmFycmF5QnVmZmVyJiYodGhpcy56b29tSW5QYWludFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLnpvb21JblBhaW50VmVydGV4QXJyYXksbWEubWVtYmVycyx0aGlzLmV4cHJlc3Npb24uaXNTdGF0ZURlcGVuZGVudCksdGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhBcnJheSxtYS5tZW1iZXJzLHRoaXMuZXhwcmVzc2lvbi5pc1N0YXRlRGVwZW5kZW50KSl9LE5hLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy56b29tT3V0UGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMuem9vbU91dFBhaW50VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLnpvb21JblBhaW50VmVydGV4QnVmZmVyJiZ0aGlzLnpvb21JblBhaW50VmVydGV4QnVmZmVyLmRlc3Ryb3koKX07dmFyIGphPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuYmluZGVycz17fSx0aGlzLmxheW91dEF0dHJpYnV0ZXM9bix0aGlzLl9idWZmZXJzPVtdO3ZhciBpPVtdO2Zvcih2YXIgYSBpbiB0LnBhaW50Ll92YWx1ZXMpaWYocihhKSl7dmFyIG89dC5wYWludC5nZXQoYSk7aWYobyBpbnN0YW5jZW9mIGJpJiZ6cihvLnByb3BlcnR5LnNwZWNpZmljYXRpb24pKXt2YXIgcz1WYShhLHQudHlwZSksbD1vLnZhbHVlLGM9by5wcm9wZXJ0eS5zcGVjaWZpY2F0aW9uLnR5cGUsdT1vLnByb3BlcnR5LnVzZUludGVnZXJab29tLGY9by5wcm9wZXJ0eS5zcGVjaWZpY2F0aW9uWyJwcm9wZXJ0eS10eXBlIl0saD0iY3Jvc3MtZmFkZWQiPT09Znx8ImNyb3NzLWZhZGVkLWRhdGEtZHJpdmVuIj09PWY7aWYoImNvbnN0YW50Ij09PWwua2luZCl0aGlzLmJpbmRlcnNbYV09aD9uZXcgUmEobC52YWx1ZSxzKTpuZXcgRGEobC52YWx1ZSxzLGMpLGkucHVzaCgiL3VfIithKTtlbHNlIGlmKCJzb3VyY2UiPT09bC5raW5kfHxoKXt2YXIgcD1IYShhLGMsInNvdXJjZSIpO3RoaXMuYmluZGVyc1thXT1oP25ldyBOYShsLGMsdSxlLHAsdC5pZCk6bmV3IEZhKGwscyxjLHApLGkucHVzaCgiL2FfIithKX1lbHNle3ZhciBkPUhhKGEsYywiY29tcG9zaXRlIik7dGhpcy5iaW5kZXJzW2FdPW5ldyBCYShsLHMsYyx1LGUsZCksaS5wdXNoKCIvel8iK2EpfX19dGhpcy5jYWNoZUtleT1pLnNvcnQoKS5qb2luKCIiKX07amEucHJvdG90eXBlLmdldE1heFZhbHVlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuYmluZGVyc1t0XTtyZXR1cm4gZSBpbnN0YW5jZW9mIEZhfHxlIGluc3RhbmNlb2YgQmE/ZS5tYXhWYWx1ZTowfSxqYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuLGkpe2Zvcih2YXIgYSBpbiB0aGlzLmJpbmRlcnMpe3ZhciBvPXRoaXMuYmluZGVyc1thXTsobyBpbnN0YW5jZW9mIEZhfHxvIGluc3RhbmNlb2YgQmF8fG8gaW5zdGFuY2VvZiBOYSkmJm8ucG9wdWxhdGVQYWludEFycmF5KHQsZSxyLG4saSl9fSxqYS5wcm90b3R5cGUuc2V0Q29uc3RhbnRQYXR0ZXJuUG9zaXRpb25zPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByIGluIHRoaXMuYmluZGVycyl7dmFyIG49dGhpcy5iaW5kZXJzW3JdO24gaW5zdGFuY2VvZiBSYSYmbi5zZXRDb25zdGFudFBhdHRlcm5Qb3NpdGlvbnModCxlKX19LGphLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPSExO2Zvcih2YXIgbyBpbiB0KWZvcih2YXIgcz0wLGw9ZS5nZXRQb3NpdGlvbnMobyk7czxsLmxlbmd0aDtzKz0xKXt2YXIgYz1sW3NdLHU9ci5mZWF0dXJlKGMuaW5kZXgpO2Zvcih2YXIgZiBpbiB0aGlzLmJpbmRlcnMpe3ZhciBoPXRoaXMuYmluZGVyc1tmXTtpZigoaCBpbnN0YW5jZW9mIEZhfHxoIGluc3RhbmNlb2YgQmF8fGggaW5zdGFuY2VvZiBOYSkmJiEwPT09aC5leHByZXNzaW9uLmlzU3RhdGVEZXBlbmRlbnQpe3ZhciBwPW4ucGFpbnQuZ2V0KGYpO2guZXhwcmVzc2lvbj1wLnZhbHVlLGgudXBkYXRlUGFpbnRBcnJheShjLnN0YXJ0LGMuZW5kLHUsdFtvXSxpKSxhPSEwfX19cmV0dXJuIGF9LGphLnByb3RvdHlwZS5kZWZpbmVzPWZ1bmN0aW9uKCl7dmFyIHQ9W107Zm9yKHZhciBlIGluIHRoaXMuYmluZGVycyl7dmFyIHI9dGhpcy5iaW5kZXJzW2VdOyhyIGluc3RhbmNlb2YgRGF8fHIgaW5zdGFuY2VvZiBSYSkmJnQucHVzaC5hcHBseSh0LHIudW5pZm9ybU5hbWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIiNkZWZpbmUgSEFTX1VOSUZPUk1fIit0fSkpKX1yZXR1cm4gdH0samEucHJvdG90eXBlLmdldFBhaW50VmVydGV4QnVmZmVycz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9idWZmZXJzfSxqYS5wcm90b3R5cGUuZ2V0VW5pZm9ybXM9ZnVuY3Rpb24odCxlKXt2YXIgcj1bXTtmb3IodmFyIG4gaW4gdGhpcy5iaW5kZXJzKXt2YXIgaT10aGlzLmJpbmRlcnNbbl07aWYoaSBpbnN0YW5jZW9mIERhfHxpIGluc3RhbmNlb2YgUmF8fGkgaW5zdGFuY2VvZiBCYSlmb3IodmFyIGE9MCxvPWkudW5pZm9ybU5hbWVzO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXTtpZihlW3NdKXt2YXIgbD1pLmdldEJpbmRpbmcodCxlW3NdLHMpO3IucHVzaCh7bmFtZTpzLHByb3BlcnR5Om4sYmluZGluZzpsfSl9fX1yZXR1cm4gcn0samEucHJvdG90eXBlLnNldFVuaWZvcm1zPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT0wLGE9ZTtpPGEubGVuZ3RoO2krPTEpe3ZhciBvPWFbaV0scz1vLm5hbWUsbD1vLnByb3BlcnR5LGM9by5iaW5kaW5nO3RoaXMuYmluZGVyc1tsXS5zZXRVbmlmb3JtKGMsbixyLmdldChsKSxzKX19LGphLnByb3RvdHlwZS51cGRhdGVQYWludEJ1ZmZlcnM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuX2J1ZmZlcnM9W10sdGhpcy5iaW5kZXJzKXt2YXIgcj10aGlzLmJpbmRlcnNbZV07aWYodCYmciBpbnN0YW5jZW9mIE5hKXt2YXIgbj0yPT09dC5mcm9tU2NhbGU/ci56b29tSW5QYWludFZlcnRleEJ1ZmZlcjpyLnpvb21PdXRQYWludFZlcnRleEJ1ZmZlcjtuJiZ0aGlzLl9idWZmZXJzLnB1c2gobil9ZWxzZShyIGluc3RhbmNlb2YgRmF8fHIgaW5zdGFuY2VvZiBCYSkmJnIucGFpbnRWZXJ0ZXhCdWZmZXImJnRoaXMuX2J1ZmZlcnMucHVzaChyLnBhaW50VmVydGV4QnVmZmVyKX19LGphLnByb3RvdHlwZS51cGxvYWQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHRoaXMuYmluZGVycyl7dmFyIHI9dGhpcy5iaW5kZXJzW2VdOyhyIGluc3RhbmNlb2YgRmF8fHIgaW5zdGFuY2VvZiBCYXx8ciBpbnN0YW5jZW9mIE5hKSYmci51cGxvYWQodCl9dGhpcy51cGRhdGVQYWludEJ1ZmZlcnMoKX0samEucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5iaW5kZXJzKXt2YXIgZT10aGlzLmJpbmRlcnNbdF07KGUgaW5zdGFuY2VvZiBGYXx8ZSBpbnN0YW5jZW9mIEJhfHxlIGluc3RhbmNlb2YgTmEpJiZlLmRlc3Ryb3koKX19O3ZhciBVYT1mdW5jdGlvbih0LGUscixuKXt2b2lkIDA9PT1uJiYobj1mdW5jdGlvbigpe3JldHVybiEwfSksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnM9e307Zm9yKHZhciBpPTAsYT1lO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXTt0aGlzLnByb2dyYW1Db25maWd1cmF0aW9uc1tvLmlkXT1uZXcgamEobyxyLG4sdCl9dGhpcy5uZWVkc1VwbG9hZD0hMSx0aGlzLl9mZWF0dXJlTWFwPW5ldyBfYSx0aGlzLl9idWZmZXJPZmZzZXQ9MH07ZnVuY3Rpb24gVmEodCxlKXtyZXR1cm57InRleHQtb3BhY2l0eSI6WyJvcGFjaXR5Il0sImljb24tb3BhY2l0eSI6WyJvcGFjaXR5Il0sInRleHQtY29sb3IiOlsiZmlsbF9jb2xvciJdLCJpY29uLWNvbG9yIjpbImZpbGxfY29sb3IiXSwidGV4dC1oYWxvLWNvbG9yIjpbImhhbG9fY29sb3IiXSwiaWNvbi1oYWxvLWNvbG9yIjpbImhhbG9fY29sb3IiXSwidGV4dC1oYWxvLWJsdXIiOlsiaGFsb19ibHVyIl0sImljb24taGFsby1ibHVyIjpbImhhbG9fYmx1ciJdLCJ0ZXh0LWhhbG8td2lkdGgiOlsiaGFsb193aWR0aCJdLCJpY29uLWhhbG8td2lkdGgiOlsiaGFsb193aWR0aCJdLCJsaW5lLWdhcC13aWR0aCI6WyJnYXB3aWR0aCJdLCJsaW5lLXBhdHRlcm4iOlsicGF0dGVybl90byIsInBhdHRlcm5fZnJvbSIsInBpeGVsX3JhdGlvX3RvIiwicGl4ZWxfcmF0aW9fZnJvbSJdLCJmaWxsLXBhdHRlcm4iOlsicGF0dGVybl90byIsInBhdHRlcm5fZnJvbSIsInBpeGVsX3JhdGlvX3RvIiwicGl4ZWxfcmF0aW9fZnJvbSJdLCJmaWxsLWV4dHJ1c2lvbi1wYXR0ZXJuIjpbInBhdHRlcm5fdG8iLCJwYXR0ZXJuX2Zyb20iLCJwaXhlbF9yYXRpb190byIsInBpeGVsX3JhdGlvX2Zyb20iXX1bdF18fFt0LnJlcGxhY2UoZSsiLSIsIiIpLnJlcGxhY2UoLy0vZywiXyIpXX1mdW5jdGlvbiBIYSh0LGUscil7dmFyIG49e2NvbG9yOntzb3VyY2U6dGEsY29tcG9zaXRlOmVhfSxudW1iZXI6e3NvdXJjZTpaaSxjb21wb3NpdGU6dGF9fSxpPWZ1bmN0aW9uKHQpe3JldHVybnsibGluZS1wYXR0ZXJuIjp7c291cmNlOkJpLGNvbXBvc2l0ZTpCaX0sImZpbGwtcGF0dGVybiI6e3NvdXJjZTpCaSxjb21wb3NpdGU6Qml9LCJmaWxsLWV4dHJ1c2lvbi1wYXR0ZXJuIjp7c291cmNlOkJpLGNvbXBvc2l0ZTpCaX19W3RdfSh0KTtyZXR1cm4gaSYmaVtyXXx8bltlXVtyXX1VYS5wcm90b3R5cGUucG9wdWxhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuLGksYSl7Zm9yKHZhciBvIGluIHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zKXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zW29dLnBvcHVsYXRlUGFpbnRBcnJheXModCxlLG4saSxhKTt2b2lkIDAhPT1lLmlkJiZ0aGlzLl9mZWF0dXJlTWFwLmFkZChlLmlkLHIsdGhpcy5fYnVmZmVyT2Zmc2V0LHQpLHRoaXMuX2J1ZmZlck9mZnNldD10LHRoaXMubmVlZHNVcGxvYWQ9ITB9LFVhLnByb3RvdHlwZS51cGRhdGVQYWludEFycmF5cz1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9MCxhPXI7aTxhLmxlbmd0aDtpKz0xKXt2YXIgbz1hW2ldO3RoaXMubmVlZHNVcGxvYWQ9dGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnNbby5pZF0udXBkYXRlUGFpbnRBcnJheXModCx0aGlzLl9mZWF0dXJlTWFwLGUsbyxuKXx8dGhpcy5uZWVkc1VwbG9hZH19LFVhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zW3RdfSxVYS5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe2lmKHRoaXMubmVlZHNVcGxvYWQpe2Zvcih2YXIgZSBpbiB0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucyl0aGlzLnByb2dyYW1Db25maWd1cmF0aW9uc1tlXS51cGxvYWQodCk7dGhpcy5uZWVkc1VwbG9hZD0hMX19LFVhLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zKXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zW3RdLmRlc3Ryb3koKX0sTm4oIkNvbnN0YW50QmluZGVyIixEYSksTm4oIkNyb3NzRmFkZWRDb25zdGFudEJpbmRlciIsUmEpLE5uKCJTb3VyY2VFeHByZXNzaW9uQmluZGVyIixGYSksTm4oIkNyb3NzRmFkZWRDb21wb3NpdGVCaW5kZXIiLE5hKSxObigiQ29tcG9zaXRlRXhwcmVzc2lvbkJpbmRlciIsQmEpLE5uKCJQcm9ncmFtQ29uZmlndXJhdGlvbiIsamEse29taXQ6WyJfYnVmZmVycyJdfSksTm4oIlByb2dyYW1Db25maWd1cmF0aW9uU2V0IixVYSk7dmFyIHFhLEdhPShxYT0xNSx7bWluOi0xKk1hdGgucG93KDIscWEtMSksbWF4Ok1hdGgucG93KDIscWEtMSktMX0pO2Z1bmN0aW9uIFlhKHQpe2Zvcih2YXIgZT04MTkyL3QuZXh0ZW50LHI9dC5sb2FkR2VvbWV0cnkoKSxuPTA7bjxyLmxlbmd0aDtuKyspZm9yKHZhciBpPXJbbl0sYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdO28ueD1NYXRoLnJvdW5kKG8ueCplKSxvLnk9TWF0aC5yb3VuZChvLnkqZSksKG8ueDxHYS5taW58fG8ueD5HYS5tYXh8fG8ueTxHYS5taW58fG8ueT5HYS5tYXgpJiYoXygiR2VvbWV0cnkgZXhjZWVkcyBhbGxvd2VkIGV4dGVudCwgcmVkdWNlIHlvdXIgdmVjdG9yIHRpbGUgYnVmZmVyIHNpemUiKSxvLng9bChvLngsR2EubWluLEdhLm1heCksby55PWwoby55LEdhLm1pbixHYS5tYXgpKX1yZXR1cm4gcn1mdW5jdGlvbiBXYSh0LGUscixuLGkpe3QuZW1wbGFjZUJhY2soMiplKyhuKzEpLzIsMipyKyhpKzEpLzIpfXZhciBYYT1mdW5jdGlvbih0KXt0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSksdGhpcy5pbmRleD10LmluZGV4LHRoaXMuaGFzUGF0dGVybj0hMSx0aGlzLmxheW91dFZlcnRleEFycmF5PW5ldyB6aSx0aGlzLmluZGV4QXJyYXk9bmV3IFlpLHRoaXMuc2VnbWVudHM9bmV3IHBhLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zPW5ldyBVYShoYSx0LmxheWVycyx0Lnpvb20pLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcklkcz10aGlzLmxheWVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpfTtmdW5jdGlvbiBaYSh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGlvKGUsdFtyXSkpcmV0dXJuITA7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoaW8odCxlW25dKSlyZXR1cm4hMDtyZXR1cm4hISRhKHQsZSl9ZnVuY3Rpb24gSmEodCxlLHIpe3JldHVybiEhaW8odCxlKXx8ISFlbyhlLHQscil9ZnVuY3Rpb24gS2EodCxlKXtpZigxPT09dC5sZW5ndGgpcmV0dXJuIG5vKGUsdFswXSk7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspZm9yKHZhciBuPWVbcl0saT0wO2k8bi5sZW5ndGg7aSsrKWlmKGlvKHQsbltpXSkpcmV0dXJuITA7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspaWYobm8oZSx0W2FdKSlyZXR1cm4hMDtmb3IodmFyIG89MDtvPGUubGVuZ3RoO28rKylpZigkYSh0LGVbb10pKXJldHVybiEwO3JldHVybiExfWZ1bmN0aW9uIFFhKHQsZSxyKXtpZih0Lmxlbmd0aD4xKXtpZigkYSh0LGUpKXJldHVybiEwO2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWlmKGVvKGVbbl0sdCxyKSlyZXR1cm4hMH1mb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKylpZihlbyh0W2ldLGUscikpcmV0dXJuITA7cmV0dXJuITF9ZnVuY3Rpb24gJGEodCxlKXtpZigwPT09dC5sZW5ndGh8fDA9PT1lLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoLTE7cisrKWZvcih2YXIgbj10W3JdLGk9dFtyKzFdLGE9MDthPGUubGVuZ3RoLTE7YSsrKXtpZih0byhuLGksZVthXSxlW2ErMV0pKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHRvKHQsZSxyLG4pe3JldHVybiB3KHQscixuKSE9PXcoZSxyLG4pJiZ3KHQsZSxyKSE9PXcodCxlLG4pfWZ1bmN0aW9uIGVvKHQsZSxyKXt2YXIgbj1yKnI7aWYoMT09PWUubGVuZ3RoKXJldHVybiB0LmRpc3RTcXIoZVswXSk8bjtmb3IodmFyIGk9MTtpPGUubGVuZ3RoO2krKyl7aWYocm8odCxlW2ktMV0sZVtpXSk8bilyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBybyh0LGUscil7dmFyIG49ZS5kaXN0U3FyKHIpO2lmKDA9PT1uKXJldHVybiB0LmRpc3RTcXIoZSk7dmFyIGk9KCh0LngtZS54KSooci54LWUueCkrKHQueS1lLnkpKihyLnktZS55KSkvbjtyZXR1cm4gaTwwP3QuZGlzdFNxcihlKTppPjE/dC5kaXN0U3FyKHIpOnQuZGlzdFNxcihyLnN1YihlKS5fbXVsdChpKS5fYWRkKGUpKX1mdW5jdGlvbiBubyh0LGUpe2Zvcih2YXIgcixuLGksYT0hMSxvPTA7bzx0Lmxlbmd0aDtvKyspZm9yKHZhciBzPTAsbD0ocj10W29dKS5sZW5ndGgtMTtzPHIubGVuZ3RoO2w9cysrKW49cltzXSxpPXJbbF0sbi55PmUueSE9aS55PmUueSYmZS54PChpLngtbi54KSooZS55LW4ueSkvKGkueS1uLnkpK24ueCYmKGE9IWEpO3JldHVybiBhfWZ1bmN0aW9uIGlvKHQsZSl7Zm9yKHZhciByPSExLG49MCxpPXQubGVuZ3RoLTE7bjx0Lmxlbmd0aDtpPW4rKyl7dmFyIGE9dFtuXSxvPXRbaV07YS55PmUueSE9by55PmUueSYmZS54PChvLngtYS54KSooZS55LWEueSkvKG8ueS1hLnkpK2EueCYmKHI9IXIpfXJldHVybiByfWZ1bmN0aW9uIGFvKHQsZSxyKXt2YXIgbj1yWzBdLGk9clsyXTtpZih0Lng8bi54JiZlLng8bi54fHx0Lng+aS54JiZlLng+aS54fHx0Lnk8bi55JiZlLnk8bi55fHx0Lnk+aS55JiZlLnk+aS55KXJldHVybiExO3ZhciBhPXcodCxlLHJbMF0pO3JldHVybiBhIT09dyh0LGUsclsxXSl8fGEhPT13KHQsZSxyWzJdKXx8YSE9PXcodCxlLHJbM10pfWZ1bmN0aW9uIG9vKHQsZSxyKXt2YXIgbj1lLnBhaW50LmdldCh0KS52YWx1ZTtyZXR1cm4iY29uc3RhbnQiPT09bi5raW5kP24udmFsdWU6ci5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KGUuaWQpLmdldE1heFZhbHVlKHQpfWZ1bmN0aW9uIHNvKHQpe3JldHVybiBNYXRoLnNxcnQodFswXSp0WzBdK3RbMV0qdFsxXSl9ZnVuY3Rpb24gbG8odCxlLHIsbixhKXtpZighZVswXSYmIWVbMV0pcmV0dXJuIHQ7dmFyIG89aS5jb252ZXJ0KGUpLl9tdWx0KGEpOyJ2aWV3cG9ydCI9PT1yJiZvLl9yb3RhdGUoLW4pO2Zvcih2YXIgcz1bXSxsPTA7bDx0Lmxlbmd0aDtsKyspe3ZhciBjPXRbbF07cy5wdXNoKGMuc3ViKG8pKX1yZXR1cm4gc31YYS5wcm90b3R5cGUucG9wdWxhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubGF5ZXJzWzBdLGk9W10sYT1udWxsOyJjaXJjbGUiPT09bi50eXBlJiYoYT1uLmxheW91dC5nZXQoImNpcmNsZS1zb3J0LWtleSIpKTtmb3IodmFyIG89MCxzPXQ7bzxzLmxlbmd0aDtvKz0xKXt2YXIgbD1zW29dLGM9bC5mZWF0dXJlLHU9bC5pZCxmPWwuaW5kZXgsaD1sLnNvdXJjZUxheWVySW5kZXgscD10aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5uZWVkR2VvbWV0cnksZD17dHlwZTpjLnR5cGUsaWQ6dSxwcm9wZXJ0aWVzOmMucHJvcGVydGllcyxnZW9tZXRyeTpwP1lhKGMpOltdfTtpZih0aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5maWx0ZXIobmV3IHBpKHRoaXMuem9vbSksZCxyKSl7cHx8KGQuZ2VvbWV0cnk9WWEoYykpO3ZhciBtPWE/YS5ldmFsdWF0ZShkLHt9LHIpOnZvaWQgMCxnPXtpZDp1LHByb3BlcnRpZXM6Yy5wcm9wZXJ0aWVzLHR5cGU6Yy50eXBlLHNvdXJjZUxheWVySW5kZXg6aCxpbmRleDpmLGdlb21ldHJ5OmQuZ2VvbWV0cnkscGF0dGVybnM6e30sc29ydEtleTptfTtpLnB1c2goZyl9fWEmJmkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pKTtmb3IodmFyIHY9MCx5PWk7djx5Lmxlbmd0aDt2Kz0xKXt2YXIgeD15W3ZdLGI9eCxfPWIuZ2VvbWV0cnksdz1iLmluZGV4LFQ9Yi5zb3VyY2VMYXllckluZGV4LGs9dFt3XS5mZWF0dXJlO3RoaXMuYWRkRmVhdHVyZSh4LF8sdyxyKSxlLmZlYXR1cmVJbmRleC5pbnNlcnQoayxfLHcsVCx0aGlzLmluZGV4KX19LFhhLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc3RhdGVEZXBlbmRlbnRMYXllcnMubGVuZ3RoJiZ0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy51cGRhdGVQYWludEFycmF5cyh0LGUsdGhpcy5zdGF0ZURlcGVuZGVudExheWVycyxyKX0sWGEucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RofSxYYS5wcm90b3R5cGUudXBsb2FkUGVuZGluZz1mdW5jdGlvbigpe3JldHVybiF0aGlzLnVwbG9hZGVkfHx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5uZWVkc1VwbG9hZH0sWGEucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnVwbG9hZGVkfHwodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxoYSksdGhpcy5pbmRleEJ1ZmZlcj10LmNyZWF0ZUluZGV4QnVmZmVyKHRoaXMuaW5kZXhBcnJheSkpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwbG9hZCh0KSx0aGlzLnVwbG9hZGVkPSEwfSxYYS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyJiYodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuaW5kZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmRlc3Ryb3koKSx0aGlzLnNlZ21lbnRzLmRlc3Ryb3koKSl9LFhhLnByb3RvdHlwZS5hZGRGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT0wLGE9ZTtpPGEubGVuZ3RoO2krPTEpZm9yKHZhciBvPTAscz1hW2ldO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXSxjPWwueCx1PWwueTtpZighKGM8MHx8Yz49ODE5Mnx8dTwwfHx1Pj04MTkyKSl7dmFyIGY9dGhpcy5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCg0LHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5pbmRleEFycmF5LHQuc29ydEtleSksaD1mLnZlcnRleExlbmd0aDtXYSh0aGlzLmxheW91dFZlcnRleEFycmF5LGMsdSwtMSwtMSksV2EodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxjLHUsMSwtMSksV2EodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxjLHUsMSwxKSxXYSh0aGlzLmxheW91dFZlcnRleEFycmF5LGMsdSwtMSwxKSx0aGlzLmluZGV4QXJyYXkuZW1wbGFjZUJhY2soaCxoKzEsaCsyKSx0aGlzLmluZGV4QXJyYXkuZW1wbGFjZUJhY2soaCxoKzMsaCsyKSxmLnZlcnRleExlbmd0aCs9NCxmLnByaW1pdGl2ZUxlbmd0aCs9Mn19dGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMucG9wdWxhdGVQYWludEFycmF5cyh0aGlzLmxheW91dFZlcnRleEFycmF5Lmxlbmd0aCx0LHIse30sbil9LE5uKCJDaXJjbGVCdWNrZXQiLFhhLHtvbWl0OlsibGF5ZXJzIl19KTt2YXIgY289bmV3IFNpKHsiY2lyY2xlLXNvcnQta2V5IjpuZXcgVGkoTHQubGF5b3V0X2NpcmNsZVsiY2lyY2xlLXNvcnQta2V5Il0pfSksdW89e3BhaW50Om5ldyBTaSh7ImNpcmNsZS1yYWRpdXMiOm5ldyBUaShMdC5wYWludF9jaXJjbGVbImNpcmNsZS1yYWRpdXMiXSksImNpcmNsZS1jb2xvciI6bmV3IFRpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLWNvbG9yIl0pLCJjaXJjbGUtYmx1ciI6bmV3IFRpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLWJsdXIiXSksImNpcmNsZS1vcGFjaXR5IjpuZXcgVGkoTHQucGFpbnRfY2lyY2xlWyJjaXJjbGUtb3BhY2l0eSJdKSwiY2lyY2xlLXRyYW5zbGF0ZSI6bmV3IHdpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXRyYW5zbGF0ZSJdKSwiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiOm5ldyB3aShMdC5wYWludF9jaXJjbGVbImNpcmNsZS10cmFuc2xhdGUtYW5jaG9yIl0pLCJjaXJjbGUtcGl0Y2gtc2NhbGUiOm5ldyB3aShMdC5wYWludF9jaXJjbGVbImNpcmNsZS1waXRjaC1zY2FsZSJdKSwiY2lyY2xlLXBpdGNoLWFsaWdubWVudCI6bmV3IHdpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXBpdGNoLWFsaWdubWVudCJdKSwiY2lyY2xlLXN0cm9rZS13aWR0aCI6bmV3IFRpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXN0cm9rZS13aWR0aCJdKSwiY2lyY2xlLXN0cm9rZS1jb2xvciI6bmV3IFRpKEx0LnBhaW50X2NpcmNsZVsiY2lyY2xlLXN0cm9rZS1jb2xvciJdKSwiY2lyY2xlLXN0cm9rZS1vcGFjaXR5IjpuZXcgVGkoTHQucGFpbnRfY2lyY2xlWyJjaXJjbGUtc3Ryb2tlLW9wYWNpdHkiXSl9KSxsYXlvdXQ6Y299LGZvPSJ1bmRlZmluZWQiIT10eXBlb2YgRmxvYXQzMkFycmF5P0Zsb2F0MzJBcnJheTpBcnJheTtmdW5jdGlvbiBobyh0KXtyZXR1cm4gdFswXT0xLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPTEsdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTBdPTEsdFsxMV09MCx0WzEyXT0wLHRbMTNdPTAsdFsxNF09MCx0WzE1XT0xLHR9ZnVuY3Rpb24gcG8odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1lWzRdLGw9ZVs1XSxjPWVbNl0sdT1lWzddLGY9ZVs4XSxoPWVbOV0scD1lWzEwXSxkPWVbMTFdLG09ZVsxMl0sZz1lWzEzXSx2PWVbMTRdLHk9ZVsxNV0seD1yWzBdLGI9clsxXSxfPXJbMl0sdz1yWzNdO3JldHVybiB0WzBdPXgqbitiKnMrXypmK3cqbSx0WzFdPXgqaStiKmwrXypoK3cqZyx0WzJdPXgqYStiKmMrXypwK3cqdix0WzNdPXgqbytiKnUrXypkK3cqeSx4PXJbNF0sYj1yWzVdLF89cls2XSx3PXJbN10sdFs0XT14Km4rYipzK18qZit3Km0sdFs1XT14KmkrYipsK18qaCt3KmcsdFs2XT14KmErYipjK18qcCt3KnYsdFs3XT14Km8rYip1K18qZCt3KnkseD1yWzhdLGI9cls5XSxfPXJbMTBdLHc9clsxMV0sdFs4XT14Km4rYipzK18qZit3Km0sdFs5XT14KmkrYipsK18qaCt3KmcsdFsxMF09eCphK2IqYytfKnArdyp2LHRbMTFdPXgqbytiKnUrXypkK3cqeSx4PXJbMTJdLGI9clsxM10sXz1yWzE0XSx3PXJbMTVdLHRbMTJdPXgqbitiKnMrXypmK3cqbSx0WzEzXT14KmkrYipsK18qaCt3KmcsdFsxNF09eCphK2IqYytfKnArdyp2LHRbMTVdPXgqbytiKnUrXypkK3cqeSx0fU1hdGguaHlwb3R8fChNYXRoLmh5cG90PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cyxlPTAscj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZSs9dFtyXSp0W3JdO3JldHVybiBNYXRoLnNxcnQoZSl9KTt2YXIgbW89cG87dmFyIGdvLHZvLHlvPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFswXT1lWzBdLXJbMF0sdFsxXT1lWzFdLXJbMV0sdFsyXT1lWzJdLXJbMl0sdH07Z289bmV3IGZvKDMpLGZvIT1GbG9hdDMyQXJyYXkmJihnb1swXT0wLGdvWzFdPTAsZ29bMl09MCksdm89Z287ZnVuY3Rpb24geG8odCxlLHIpe3ZhciBuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM107cmV0dXJuIHRbMF09clswXSpuK3JbNF0qaStyWzhdKmErclsxMl0qbyx0WzFdPXJbMV0qbityWzVdKmkrcls5XSphK3JbMTNdKm8sdFsyXT1yWzJdKm4rcls2XSppK3JbMTBdKmErclsxNF0qbyx0WzNdPXJbM10qbityWzddKmkrclsxMV0qYStyWzE1XSpvLHR9IWZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgZm8oNCk7cmV0dXJuIGZvIT1GbG9hdDMyQXJyYXkmJih0WzBdPTAsdFsxXT0wLHRbMl09MCx0WzNdPTApLHR9KCl9KCk7dmFyIGJvPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdO3JldHVybiBlKmUrcipyfSxfbz0oZnVuY3Rpb24oKXt2YXIgdD1mdW5jdGlvbigpe3ZhciB0PW5ldyBmbygyKTtyZXR1cm4gZm8hPUZsb2F0MzJBcnJheSYmKHRbMF09MCx0WzFdPTApLHR9KCl9KCksZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLHVvKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuY3JlYXRlQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgWGEodCl9LGUucHJvdG90eXBlLnF1ZXJ5UmFkaXVzPWZ1bmN0aW9uKHQpe3ZhciBlPXQ7cmV0dXJuIG9vKCJjaXJjbGUtcmFkaXVzIix0aGlzLGUpK29vKCJjaXJjbGUtc3Ryb2tlLXdpZHRoIix0aGlzLGUpK3NvKHRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtdHJhbnNsYXRlIikpfSxlLnByb3RvdHlwZS5xdWVyeUludGVyc2VjdHNGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPWxvKHQsdGhpcy5wYWludC5nZXQoImNpcmNsZS10cmFuc2xhdGUiKSx0aGlzLnBhaW50LmdldCgiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiKSxhLmFuZ2xlLG8pLGM9dGhpcy5wYWludC5nZXQoImNpcmNsZS1yYWRpdXMiKS5ldmFsdWF0ZShlLHIpK3RoaXMucGFpbnQuZ2V0KCJjaXJjbGUtc3Ryb2tlLXdpZHRoIikuZXZhbHVhdGUoZSxyKSx1PSJtYXAiPT09dGhpcy5wYWludC5nZXQoImNpcmNsZS1waXRjaC1hbGlnbm1lbnQiKSxmPXU/bDpmdW5jdGlvbih0LGUpe3JldHVybiB0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHdvKHQsZSl9KSl9KGwscyksaD11P2MqbzpjLHA9MCxkPW47cDxkLmxlbmd0aDtwKz0xKWZvcih2YXIgbT0wLGc9ZFtwXTttPGcubGVuZ3RoO20rPTEpe3ZhciB2PWdbbV0seT11P3Y6d28odixzKSx4PWgsYj14byhbXSxbdi54LHYueSwwLDFdLHMpO2lmKCJ2aWV3cG9ydCI9PT10aGlzLnBhaW50LmdldCgiY2lyY2xlLXBpdGNoLXNjYWxlIikmJiJtYXAiPT09dGhpcy5wYWludC5nZXQoImNpcmNsZS1waXRjaC1hbGlnbm1lbnQiKT94Kj1iWzNdL2EuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZToibWFwIj09PXRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtcGl0Y2gtc2NhbGUiKSYmInZpZXdwb3J0Ij09PXRoaXMucGFpbnQuZ2V0KCJjaXJjbGUtcGl0Y2gtYWxpZ25tZW50IikmJih4Kj1hLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UvYlszXSksSmEoZix5LHgpKXJldHVybiEwfXJldHVybiExfSxlfShFaSkpO2Z1bmN0aW9uIHdvKHQsZSl7dmFyIHI9eG8oW10sW3QueCx0LnksMCwxXSxlKTtyZXR1cm4gbmV3IGkoclswXS9yWzNdLHJbMV0vclszXSl9dmFyIFRvPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX0oWGEpO2Z1bmN0aW9uIGtvKHQsZSxyLG4pe3ZhciBpPWUud2lkdGgsYT1lLmhlaWdodDtpZihuKXtpZihuIGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpbj1uZXcgVWludDhBcnJheShuLmJ1ZmZlcik7ZWxzZSBpZihuLmxlbmd0aCE9PWkqYSpyKXRocm93IG5ldyBSYW5nZUVycm9yKCJtaXNtYXRjaGVkIGltYWdlIHNpemUiKX1lbHNlIG49bmV3IFVpbnQ4QXJyYXkoaSphKnIpO3JldHVybiB0LndpZHRoPWksdC5oZWlnaHQ9YSx0LmRhdGE9bix0fWZ1bmN0aW9uIEFvKHQsZSxyKXt2YXIgbj1lLndpZHRoLGk9ZS5oZWlnaHQ7aWYobiE9PXQud2lkdGh8fGkhPT10LmhlaWdodCl7dmFyIGE9a28oe30se3dpZHRoOm4saGVpZ2h0Oml9LHIpO01vKHQsYSx7eDowLHk6MH0se3g6MCx5OjB9LHt3aWR0aDpNYXRoLm1pbih0LndpZHRoLG4pLGhlaWdodDpNYXRoLm1pbih0LmhlaWdodCxpKX0sciksdC53aWR0aD1uLHQuaGVpZ2h0PWksdC5kYXRhPWEuZGF0YX19ZnVuY3Rpb24gTW8odCxlLHIsbixpLGEpe2lmKDA9PT1pLndpZHRofHwwPT09aS5oZWlnaHQpcmV0dXJuIGU7aWYoaS53aWR0aD50LndpZHRofHxpLmhlaWdodD50LmhlaWdodHx8ci54PnQud2lkdGgtaS53aWR0aHx8ci55PnQuaGVpZ2h0LWkuaGVpZ2h0KXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2Ugc291cmNlIGNvb3JkaW5hdGVzIGZvciBpbWFnZSBjb3B5Iik7aWYoaS53aWR0aD5lLndpZHRofHxpLmhlaWdodD5lLmhlaWdodHx8bi54PmUud2lkdGgtaS53aWR0aHx8bi55PmUuaGVpZ2h0LWkuaGVpZ2h0KXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2UgZGVzdGluYXRpb24gY29vcmRpbmF0ZXMgZm9yIGltYWdlIGNvcHkiKTtmb3IodmFyIG89dC5kYXRhLHM9ZS5kYXRhLGw9MDtsPGkuaGVpZ2h0O2wrKylmb3IodmFyIGM9KChyLnkrbCkqdC53aWR0aCtyLngpKmEsdT0oKG4ueStsKSplLndpZHRoK24ueCkqYSxmPTA7ZjxpLndpZHRoKmE7ZisrKXNbdStmXT1vW2MrZl07cmV0dXJuIGV9Tm4oIkhlYXRtYXBCdWNrZXQiLFRvLHtvbWl0OlsibGF5ZXJzIl19KTt2YXIgU289ZnVuY3Rpb24odCxlKXtrbyh0aGlzLHQsMSxlKX07U28ucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbih0KXtBbyh0aGlzLHQsMSl9LFNvLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgU28oe3dpZHRoOnRoaXMud2lkdGgsaGVpZ2h0OnRoaXMuaGVpZ2h0fSxuZXcgVWludDhBcnJheSh0aGlzLmRhdGEpKX0sU28uY29weT1mdW5jdGlvbih0LGUscixuLGkpe01vKHQsZSxyLG4saSwxKX07dmFyIEVvPWZ1bmN0aW9uKHQsZSl7a28odGhpcyx0LDQsZSl9O0VvLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24odCl7QW8odGhpcyx0LDQpfSxFby5wcm90b3R5cGUucmVwbGFjZT1mdW5jdGlvbih0LGUpe2U/dGhpcy5kYXRhLnNldCh0KTp0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXk/dGhpcy5kYXRhPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyKTp0aGlzLmRhdGE9dH0sRW8ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBFbyh7d2lkdGg6dGhpcy53aWR0aCxoZWlnaHQ6dGhpcy5oZWlnaHR9LG5ldyBVaW50OEFycmF5KHRoaXMuZGF0YSkpfSxFby5jb3B5PWZ1bmN0aW9uKHQsZSxyLG4saSl7TW8odCxlLHIsbixpLDQpfSxObigiQWxwaGFJbWFnZSIsU28pLE5uKCJSR0JBSW1hZ2UiLEVvKTt2YXIgTG89e3BhaW50Om5ldyBTaSh7ImhlYXRtYXAtcmFkaXVzIjpuZXcgVGkoTHQucGFpbnRfaGVhdG1hcFsiaGVhdG1hcC1yYWRpdXMiXSksImhlYXRtYXAtd2VpZ2h0IjpuZXcgVGkoTHQucGFpbnRfaGVhdG1hcFsiaGVhdG1hcC13ZWlnaHQiXSksImhlYXRtYXAtaW50ZW5zaXR5IjpuZXcgd2koTHQucGFpbnRfaGVhdG1hcFsiaGVhdG1hcC1pbnRlbnNpdHkiXSksImhlYXRtYXAtY29sb3IiOm5ldyBNaShMdC5wYWludF9oZWF0bWFwWyJoZWF0bWFwLWNvbG9yIl0pLCJoZWF0bWFwLW9wYWNpdHkiOm5ldyB3aShMdC5wYWludF9oZWF0bWFwWyJoZWF0bWFwLW9wYWNpdHkiXSl9KX07ZnVuY3Rpb24gQ28odCxlKXtmb3IodmFyIHI9bmV3IFVpbnQ4QXJyYXkoMTAyNCksbj17fSxpPTAsYT0wO2k8MjU2O2krKyxhKz00KXtuW2VdPWkvMjU1O3ZhciBvPXQuZXZhbHVhdGUobik7clthKzBdPU1hdGguZmxvb3IoMjU1Km8uci9vLmEpLHJbYSsxXT1NYXRoLmZsb29yKDI1NSpvLmcvby5hKSxyW2ErMl09TWF0aC5mbG9vcigyNTUqby5iL28uYSksclthKzNdPU1hdGguZmxvb3IoMjU1Km8uYSl9cmV0dXJuIG5ldyBFbyh7d2lkdGg6MjU2LGhlaWdodDoxfSxyKX12YXIgUG89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLExvKSx0aGlzLl91cGRhdGVDb2xvclJhbXAoKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuY3JlYXRlQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgVG8odCl9LGUucHJvdG90eXBlLl9oYW5kbGVTcGVjaWFsUGFpbnRQcm9wZXJ0eVVwZGF0ZT1mdW5jdGlvbih0KXsiaGVhdG1hcC1jb2xvciI9PT10JiZ0aGlzLl91cGRhdGVDb2xvclJhbXAoKX0sZS5wcm90b3R5cGUuX3VwZGF0ZUNvbG9yUmFtcD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3RyYW5zaXRpb25hYmxlUGFpbnQuX3ZhbHVlc1siaGVhdG1hcC1jb2xvciJdLnZhbHVlLmV4cHJlc3Npb247dGhpcy5jb2xvclJhbXA9Q28odCwiaGVhdG1hcERlbnNpdHkiKSx0aGlzLmNvbG9yUmFtcFRleHR1cmU9bnVsbH0sZS5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKCl7dGhpcy5oZWF0bWFwRmJvJiYodGhpcy5oZWF0bWFwRmJvLmRlc3Ryb3koKSx0aGlzLmhlYXRtYXBGYm89bnVsbCl9LGUucHJvdG90eXBlLnF1ZXJ5UmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LGUucHJvdG90eXBlLnF1ZXJ5SW50ZXJzZWN0c0ZlYXR1cmU9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuaGFzT2Zmc2NyZWVuUGFzcz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5wYWludC5nZXQoImhlYXRtYXAtb3BhY2l0eSIpJiYibm9uZSIhPT10aGlzLnZpc2liaWxpdHl9LGV9KEVpKSxJbz17cGFpbnQ6bmV3IFNpKHsiaGlsbHNoYWRlLWlsbHVtaW5hdGlvbi1kaXJlY3Rpb24iOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1pbGx1bWluYXRpb24tZGlyZWN0aW9uIl0pLCJoaWxsc2hhZGUtaWxsdW1pbmF0aW9uLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X2hpbGxzaGFkZVsiaGlsbHNoYWRlLWlsbHVtaW5hdGlvbi1hbmNob3IiXSksImhpbGxzaGFkZS1leGFnZ2VyYXRpb24iOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1leGFnZ2VyYXRpb24iXSksImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiXSksImhpbGxzaGFkZS1oaWdobGlnaHQtY29sb3IiOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1oaWdobGlnaHQtY29sb3IiXSksImhpbGxzaGFkZS1hY2NlbnQtY29sb3IiOm5ldyB3aShMdC5wYWludF9oaWxsc2hhZGVbImhpbGxzaGFkZS1hY2NlbnQtY29sb3IiXSl9KX0sT289ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLElvKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuaGFzT2Zmc2NyZWVuUGFzcz1mdW5jdGlvbigpe3JldHVybiAwIT09dGhpcy5wYWludC5nZXQoImhpbGxzaGFkZS1leGFnZ2VyYXRpb24iKSYmIm5vbmUiIT09dGhpcy52aXNpYmlsaXR5fSxlfShFaSksem89SWkoW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkludDE2In1dLDQpLm1lbWJlcnMsRG89Rm8sUm89Rm87ZnVuY3Rpb24gRm8odCxlLHIpe3I9cnx8Mjt2YXIgbixpLGEsbyxzLGwsYyx1PWUmJmUubGVuZ3RoLGY9dT9lWzBdKnI6dC5sZW5ndGgsaD1Cbyh0LDAsZixyLCEwKSxwPVtdO2lmKCFofHxoLm5leHQ9PT1oLnByZXYpcmV0dXJuIHA7aWYodSYmKGg9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLHMsbCxjPVtdO2ZvcihpPTAsYT1lLmxlbmd0aDtpPGE7aSsrKW89ZVtpXSpuLHM9aTxhLTE/ZVtpKzFdKm46dC5sZW5ndGgsKGw9Qm8odCxvLHMsbiwhMSkpPT09bC5uZXh0JiYobC5zdGVpbmVyPSEwKSxjLnB1c2goWm8obCkpO2ZvcihjLnNvcnQoR28pLGk9MDtpPGMubGVuZ3RoO2krKylZbyhjW2ldLHIpLHI9Tm8ocixyLm5leHQpO3JldHVybiByfSh0LGUsaCxyKSksdC5sZW5ndGg+ODAqcil7bj1hPXRbMF0saT1vPXRbMV07Zm9yKHZhciBkPXI7ZDxmO2QrPXIpKHM9dFtkXSk8biYmKG49cyksKGw9dFtkKzFdKTxpJiYoaT1sKSxzPmEmJihhPXMpLGw+byYmKG89bCk7Yz0wIT09KGM9TWF0aC5tYXgoYS1uLG8taSkpPzEvYzowfXJldHVybiBqbyhoLHAscixuLGksYykscH1mdW5jdGlvbiBCbyh0LGUscixuLGkpe3ZhciBhLG87aWYoaT09PWxzKHQsZSxyLG4pPjApZm9yKGE9ZTthPHI7YSs9bilvPWFzKGEsdFthXSx0W2ErMV0sbyk7ZWxzZSBmb3IoYT1yLW47YT49ZTthLT1uKW89YXMoYSx0W2FdLHRbYSsxXSxvKTtyZXR1cm4gbyYmJG8obyxvLm5leHQpJiYob3Mobyksbz1vLm5leHQpLG99ZnVuY3Rpb24gTm8odCxlKXtpZighdClyZXR1cm4gdDtlfHwoZT10KTt2YXIgcixuPXQ7ZG97aWYocj0hMSxuLnN0ZWluZXJ8fCEkbyhuLG4ubmV4dCkmJjAhPT1RbyhuLnByZXYsbixuLm5leHQpKW49bi5uZXh0O2Vsc2V7aWYob3MobiksKG49ZT1uLnByZXYpPT09bi5uZXh0KWJyZWFrO3I9ITB9fXdoaWxlKHJ8fG4hPT1lKTtyZXR1cm4gZX1mdW5jdGlvbiBqbyh0LGUscixuLGksYSxvKXtpZih0KXshbyYmYSYmZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dDtkb3tudWxsPT09aS56JiYoaS56PVhvKGkueCxpLnksZSxyLG4pKSxpLnByZXZaPWkucHJldixpLm5leHRaPWkubmV4dCxpPWkubmV4dH13aGlsZShpIT09dCk7aS5wcmV2Wi5uZXh0Wj1udWxsLGkucHJldlo9bnVsbCxmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scyxsLGM9MTtkb3tmb3Iocj10LHQ9bnVsbCxhPW51bGwsbz0wO3I7KXtmb3IobysrLG49cixzPTAsZT0wO2U8YyYmKHMrKyxuPW4ubmV4dFopO2UrKyk7Zm9yKGw9YztzPjB8fGw+MCYmbjspMCE9PXMmJigwPT09bHx8IW58fHIuejw9bi56KT8oaT1yLHI9ci5uZXh0WixzLS0pOihpPW4sbj1uLm5leHRaLGwtLSksYT9hLm5leHRaPWk6dD1pLGkucHJldlo9YSxhPWk7cj1ufWEubmV4dFo9bnVsbCxjKj0yfXdoaWxlKG8+MSl9KGkpfSh0LG4saSxhKTtmb3IodmFyIHMsbCxjPXQ7dC5wcmV2IT09dC5uZXh0OylpZihzPXQucHJldixsPXQubmV4dCxhP1ZvKHQsbixpLGEpOlVvKHQpKWUucHVzaChzLmkvciksZS5wdXNoKHQuaS9yKSxlLnB1c2gobC5pL3IpLG9zKHQpLHQ9bC5uZXh0LGM9bC5uZXh0O2Vsc2UgaWYoKHQ9bCk9PT1jKXtvPzE9PT1vP2pvKHQ9SG8oTm8odCksZSxyKSxlLHIsbixpLGEsMik6Mj09PW8mJnFvKHQsZSxyLG4saSxhKTpqbyhObyh0KSxlLHIsbixpLGEsMSk7YnJlYWt9fX1mdW5jdGlvbiBVbyh0KXt2YXIgZT10LnByZXYscj10LG49dC5uZXh0O2lmKFFvKGUscixuKT49MClyZXR1cm4hMTtmb3IodmFyIGk9dC5uZXh0Lm5leHQ7aSE9PXQucHJldjspe2lmKEpvKGUueCxlLnksci54LHIueSxuLngsbi55LGkueCxpLnkpJiZRbyhpLnByZXYsaSxpLm5leHQpPj0wKXJldHVybiExO2k9aS5uZXh0fXJldHVybiEwfWZ1bmN0aW9uIFZvKHQsZSxyLG4pe3ZhciBpPXQucHJldixhPXQsbz10Lm5leHQ7aWYoUW8oaSxhLG8pPj0wKXJldHVybiExO2Zvcih2YXIgcz1pLng8YS54P2kueDxvLng/aS54Om8ueDphLng8by54P2EueDpvLngsbD1pLnk8YS55P2kueTxvLnk/aS55Om8ueTphLnk8by55P2EueTpvLnksYz1pLng+YS54P2kueD5vLng/aS54Om8ueDphLng+by54P2EueDpvLngsdT1pLnk+YS55P2kueT5vLnk/aS55Om8ueTphLnk+by55P2EueTpvLnksZj1YbyhzLGwsZSxyLG4pLGg9WG8oYyx1LGUscixuKSxwPXQucHJldlosZD10Lm5leHRaO3AmJnAuej49ZiYmZCYmZC56PD1oOyl7aWYocCE9PXQucHJldiYmcCE9PXQubmV4dCYmSm8oaS54LGkueSxhLngsYS55LG8ueCxvLnkscC54LHAueSkmJlFvKHAucHJldixwLHAubmV4dCk+PTApcmV0dXJuITE7aWYocD1wLnByZXZaLGQhPT10LnByZXYmJmQhPT10Lm5leHQmJkpvKGkueCxpLnksYS54LGEueSxvLngsby55LGQueCxkLnkpJiZRbyhkLnByZXYsZCxkLm5leHQpPj0wKXJldHVybiExO2Q9ZC5uZXh0Wn1mb3IoO3AmJnAuej49Zjspe2lmKHAhPT10LnByZXYmJnAhPT10Lm5leHQmJkpvKGkueCxpLnksYS54LGEueSxvLngsby55LHAueCxwLnkpJiZRbyhwLnByZXYscCxwLm5leHQpPj0wKXJldHVybiExO3A9cC5wcmV2Wn1mb3IoO2QmJmQuejw9aDspe2lmKGQhPT10LnByZXYmJmQhPT10Lm5leHQmJkpvKGkueCxpLnksYS54LGEueSxvLngsby55LGQueCxkLnkpJiZRbyhkLnByZXYsZCxkLm5leHQpPj0wKXJldHVybiExO2Q9ZC5uZXh0Wn1yZXR1cm4hMH1mdW5jdGlvbiBIbyh0LGUscil7dmFyIG49dDtkb3t2YXIgaT1uLnByZXYsYT1uLm5leHQubmV4dDshJG8oaSxhKSYmdHMoaSxuLG4ubmV4dCxhKSYmbnMoaSxhKSYmbnMoYSxpKSYmKGUucHVzaChpLmkvciksZS5wdXNoKG4uaS9yKSxlLnB1c2goYS5pL3IpLG9zKG4pLG9zKG4ubmV4dCksbj10PWEpLG49bi5uZXh0fXdoaWxlKG4hPT10KTtyZXR1cm4gTm8obil9ZnVuY3Rpb24gcW8odCxlLHIsbixpLGEpe3ZhciBvPXQ7ZG97Zm9yKHZhciBzPW8ubmV4dC5uZXh0O3MhPT1vLnByZXY7KXtpZihvLmkhPT1zLmkmJktvKG8scykpe3ZhciBsPWlzKG8scyk7cmV0dXJuIG89Tm8obyxvLm5leHQpLGw9Tm8obCxsLm5leHQpLGpvKG8sZSxyLG4saSxhKSx2b2lkIGpvKGwsZSxyLG4saSxhKX1zPXMubmV4dH1vPW8ubmV4dH13aGlsZShvIT09dCl9ZnVuY3Rpb24gR28odCxlKXtyZXR1cm4gdC54LWUueH1mdW5jdGlvbiBZbyh0LGUpe2lmKGU9ZnVuY3Rpb24odCxlKXt2YXIgcixuPWUsaT10LngsYT10Lnksbz0tMS8wO2Rve2lmKGE8PW4ueSYmYT49bi5uZXh0LnkmJm4ubmV4dC55IT09bi55KXt2YXIgcz1uLngrKGEtbi55KSoobi5uZXh0Lngtbi54KS8obi5uZXh0Lnktbi55KTtpZihzPD1pJiZzPm8pe2lmKG89cyxzPT09aSl7aWYoYT09PW4ueSlyZXR1cm4gbjtpZihhPT09bi5uZXh0LnkpcmV0dXJuIG4ubmV4dH1yPW4ueDxuLm5leHQueD9uOm4ubmV4dH19bj1uLm5leHR9d2hpbGUobiE9PWUpO2lmKCFyKXJldHVybiBudWxsO2lmKGk9PT1vKXJldHVybiByO3ZhciBsLGM9cix1PXIueCxmPXIueSxoPTEvMDtuPXI7ZG97aT49bi54JiZuLng+PXUmJmkhPT1uLngmJkpvKGE8Zj9pOm8sYSx1LGYsYTxmP286aSxhLG4ueCxuLnkpJiYobD1NYXRoLmFicyhhLW4ueSkvKGktbi54KSxucyhuLHQpJiYobDxofHxsPT09aCYmKG4ueD5yLnh8fG4ueD09PXIueCYmV28ocixuKSkpJiYocj1uLGg9bCkpLG49bi5uZXh0fXdoaWxlKG4hPT1jKTtyZXR1cm4gcn0odCxlKSl7dmFyIHI9aXMoZSx0KTtObyhlLGUubmV4dCksTm8ocixyLm5leHQpfX1mdW5jdGlvbiBXbyh0LGUpe3JldHVybiBRbyh0LnByZXYsdCxlLnByZXYpPDAmJlFvKGUubmV4dCx0LHQubmV4dCk8MH1mdW5jdGlvbiBYbyh0LGUscixuLGkpe3JldHVybih0PTE0MzE2NTU3NjUmKCh0PTg1ODk5MzQ1OSYoKHQ9MjUyNjQ1MTM1JigodD0xNjcxMTkzNSYoKHQ9MzI3NjcqKHQtcikqaSl8dDw8OCkpfHQ8PDQpKXx0PDwyKSl8dDw8MSkpfChlPTE0MzE2NTU3NjUmKChlPTg1ODk5MzQ1OSYoKGU9MjUyNjQ1MTM1JigoZT0xNjcxMTkzNSYoKGU9MzI3NjcqKGUtbikqaSl8ZTw8OCkpfGU8PDQpKXxlPDwyKSl8ZTw8MSkpPDwxfWZ1bmN0aW9uIFpvKHQpe3ZhciBlPXQscj10O2RveyhlLng8ci54fHxlLng9PT1yLngmJmUueTxyLnkpJiYocj1lKSxlPWUubmV4dH13aGlsZShlIT09dCk7cmV0dXJuIHJ9ZnVuY3Rpb24gSm8odCxlLHIsbixpLGEsbyxzKXtyZXR1cm4oaS1vKSooZS1zKS0odC1vKSooYS1zKT49MCYmKHQtbykqKG4tcyktKHItbykqKGUtcyk+PTAmJihyLW8pKihhLXMpLShpLW8pKihuLXMpPj0wfWZ1bmN0aW9uIEtvKHQsZSl7cmV0dXJuIHQubmV4dC5pIT09ZS5pJiZ0LnByZXYuaSE9PWUuaSYmIWZ1bmN0aW9uKHQsZSl7dmFyIHI9dDtkb3tpZihyLmkhPT10LmkmJnIubmV4dC5pIT09dC5pJiZyLmkhPT1lLmkmJnIubmV4dC5pIT09ZS5pJiZ0cyhyLHIubmV4dCx0LGUpKXJldHVybiEwO3I9ci5uZXh0fXdoaWxlKHIhPT10KTtyZXR1cm4hMX0odCxlKSYmKG5zKHQsZSkmJm5zKGUsdCkmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9dCxuPSExLGk9KHQueCtlLngpLzIsYT0odC55K2UueSkvMjtkb3tyLnk+YSE9ci5uZXh0Lnk+YSYmci5uZXh0LnkhPT1yLnkmJmk8KHIubmV4dC54LXIueCkqKGEtci55KS8oci5uZXh0Lnktci55KStyLngmJihuPSFuKSxyPXIubmV4dH13aGlsZShyIT09dCk7cmV0dXJuIG59KHQsZSkmJihRbyh0LnByZXYsdCxlLnByZXYpfHxRbyh0LGUucHJldixlKSl8fCRvKHQsZSkmJlFvKHQucHJldix0LHQubmV4dCk+MCYmUW8oZS5wcmV2LGUsZS5uZXh0KT4wKX1mdW5jdGlvbiBRbyh0LGUscil7cmV0dXJuKGUueS10LnkpKihyLngtZS54KS0oZS54LXQueCkqKHIueS1lLnkpfWZ1bmN0aW9uICRvKHQsZSl7cmV0dXJuIHQueD09PWUueCYmdC55PT09ZS55fWZ1bmN0aW9uIHRzKHQsZSxyLG4pe3ZhciBpPXJzKFFvKHQsZSxyKSksYT1ycyhRbyh0LGUsbikpLG89cnMoUW8ocixuLHQpKSxzPXJzKFFvKHIsbixlKSk7cmV0dXJuIGkhPT1hJiZvIT09c3x8KCEoMCE9PWl8fCFlcyh0LHIsZSkpfHwoISgwIT09YXx8IWVzKHQsbixlKSl8fCghKDAhPT1vfHwhZXMocix0LG4pKXx8ISgwIT09c3x8IWVzKHIsZSxuKSkpKSl9ZnVuY3Rpb24gZXModCxlLHIpe3JldHVybiBlLng8PU1hdGgubWF4KHQueCxyLngpJiZlLng+PU1hdGgubWluKHQueCxyLngpJiZlLnk8PU1hdGgubWF4KHQueSxyLnkpJiZlLnk+PU1hdGgubWluKHQueSxyLnkpfWZ1bmN0aW9uIHJzKHQpe3JldHVybiB0PjA/MTp0PDA/LTE6MH1mdW5jdGlvbiBucyh0LGUpe3JldHVybiBRbyh0LnByZXYsdCx0Lm5leHQpPDA/UW8odCxlLHQubmV4dCk+PTAmJlFvKHQsdC5wcmV2LGUpPj0wOlFvKHQsZSx0LnByZXYpPDB8fFFvKHQsdC5uZXh0LGUpPDB9ZnVuY3Rpb24gaXModCxlKXt2YXIgcj1uZXcgc3ModC5pLHQueCx0LnkpLG49bmV3IHNzKGUuaSxlLngsZS55KSxpPXQubmV4dCxhPWUucHJldjtyZXR1cm4gdC5uZXh0PWUsZS5wcmV2PXQsci5uZXh0PWksaS5wcmV2PXIsbi5uZXh0PXIsci5wcmV2PW4sYS5uZXh0PW4sbi5wcmV2PWEsbn1mdW5jdGlvbiBhcyh0LGUscixuKXt2YXIgaT1uZXcgc3ModCxlLHIpO3JldHVybiBuPyhpLm5leHQ9bi5uZXh0LGkucHJldj1uLG4ubmV4dC5wcmV2PWksbi5uZXh0PWkpOihpLnByZXY9aSxpLm5leHQ9aSksaX1mdW5jdGlvbiBvcyh0KXt0Lm5leHQucHJldj10LnByZXYsdC5wcmV2Lm5leHQ9dC5uZXh0LHQucHJldlomJih0LnByZXZaLm5leHRaPXQubmV4dFopLHQubmV4dFomJih0Lm5leHRaLnByZXZaPXQucHJldlopfWZ1bmN0aW9uIHNzKHQsZSxyKXt0aGlzLmk9dCx0aGlzLng9ZSx0aGlzLnk9cix0aGlzLnByZXY9bnVsbCx0aGlzLm5leHQ9bnVsbCx0aGlzLno9bnVsbCx0aGlzLnByZXZaPW51bGwsdGhpcy5uZXh0Wj1udWxsLHRoaXMuc3RlaW5lcj0hMX1mdW5jdGlvbiBscyh0LGUscixuKXtmb3IodmFyIGk9MCxhPWUsbz1yLW47YTxyO2ErPW4paSs9KHRbb10tdFthXSkqKHRbYSsxXSt0W28rMV0pLG89YTtyZXR1cm4gaX1mdW5jdGlvbiBjcyh0LGUscixuLGkpeyFmdW5jdGlvbiB0KGUscixuLGksYSl7Zm9yKDtpPm47KXtpZihpLW4+NjAwKXt2YXIgbz1pLW4rMSxzPXItbisxLGw9TWF0aC5sb2cobyksYz0uNSpNYXRoLmV4cCgyKmwvMyksdT0uNSpNYXRoLnNxcnQobCpjKihvLWMpL28pKihzLW8vMjwwPy0xOjEpLGY9TWF0aC5tYXgobixNYXRoLmZsb29yKHItcypjL28rdSkpLGg9TWF0aC5taW4oaSxNYXRoLmZsb29yKHIrKG8tcykqYy9vK3UpKTt0KGUscixmLGgsYSl9dmFyIHA9ZVtyXSxkPW4sbT1pO2Zvcih1cyhlLG4sciksYShlW2ldLHApPjAmJnVzKGUsbixpKTtkPG07KXtmb3IodXMoZSxkLG0pLGQrKyxtLS07YShlW2RdLHApPDA7KWQrKztmb3IoO2EoZVttXSxwKT4wOyltLS19MD09PWEoZVtuXSxwKT91cyhlLG4sbSk6KG0rKyx1cyhlLG0saSkpLG08PXImJihuPW0rMSkscjw9bSYmKGk9bS0xKX19KHQsZSxyfHwwLG58fHQubGVuZ3RoLTEsaXx8ZnMpfWZ1bmN0aW9uIHVzKHQsZSxyKXt2YXIgbj10W2VdO3RbZV09dFtyXSx0W3JdPW59ZnVuY3Rpb24gZnModCxlKXtyZXR1cm4gdDxlPy0xOnQ+ZT8xOjB9ZnVuY3Rpb24gaHModCxlKXt2YXIgcj10Lmxlbmd0aDtpZihyPD0xKXJldHVyblt0XTtmb3IodmFyIG4saSxhPVtdLG89MDtvPHI7bysrKXt2YXIgcz1UKHRbb10pOzAhPT1zJiYodFtvXS5hcmVhPU1hdGguYWJzKHMpLHZvaWQgMD09PWkmJihpPXM8MCksaT09PXM8MD8obiYmYS5wdXNoKG4pLG49W3Rbb11dKTpuLnB1c2godFtvXSkpfWlmKG4mJmEucHVzaChuKSxlPjEpZm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspYVtsXS5sZW5ndGg8PWV8fChjcyhhW2xdLGUsMSxhW2xdLmxlbmd0aC0xLHBzKSxhW2xdPWFbbF0uc2xpY2UoMCxlKSk7cmV0dXJuIGF9ZnVuY3Rpb24gcHModCxlKXtyZXR1cm4gZS5hcmVhLXQuYXJlYX1mdW5jdGlvbiBkcyh0LGUscil7Zm9yKHZhciBuPXIucGF0dGVybkRlcGVuZGVuY2llcyxpPSExLGE9MCxvPWU7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdLnBhaW50LmdldCh0KyItcGF0dGVybiIpO3MuaXNDb25zdGFudCgpfHwoaT0hMCk7dmFyIGw9cy5jb25zdGFudE9yKG51bGwpO2wmJihpPSEwLG5bbC50b109ITAsbltsLmZyb21dPSEwKX1yZXR1cm4gaX1mdW5jdGlvbiBtcyh0LGUscixuLGkpe2Zvcih2YXIgYT1pLnBhdHRlcm5EZXBlbmRlbmNpZXMsbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb10sYz1sLnBhaW50LmdldCh0KyItcGF0dGVybiIpLnZhbHVlO2lmKCJjb25zdGFudCIhPT1jLmtpbmQpe3ZhciB1PWMuZXZhbHVhdGUoe3pvb206bi0xfSxyLHt9LGkuYXZhaWxhYmxlSW1hZ2VzKSxmPWMuZXZhbHVhdGUoe3pvb206bn0scix7fSxpLmF2YWlsYWJsZUltYWdlcyksaD1jLmV2YWx1YXRlKHt6b29tOm4rMX0scix7fSxpLmF2YWlsYWJsZUltYWdlcyk7dT11JiZ1Lm5hbWU/dS5uYW1lOnUsZj1mJiZmLm5hbWU/Zi5uYW1lOmYsaD1oJiZoLm5hbWU/aC5uYW1lOmgsYVt1XT0hMCxhW2ZdPSEwLGFbaF09ITAsci5wYXR0ZXJuc1tsLmlkXT17bWluOnUsbWlkOmYsbWF4Omh9fX1yZXR1cm4gcn1Gby5kZXZpYXRpb249ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ZSYmZS5sZW5ndGgsYT1pP2VbMF0qcjp0Lmxlbmd0aCxvPU1hdGguYWJzKGxzKHQsMCxhLHIpKTtpZihpKWZvcih2YXIgcz0wLGw9ZS5sZW5ndGg7czxsO3MrKyl7dmFyIGM9ZVtzXSpyLHU9czxsLTE/ZVtzKzFdKnI6dC5sZW5ndGg7by09TWF0aC5hYnMobHModCxjLHUscikpfXZhciBmPTA7Zm9yKHM9MDtzPG4ubGVuZ3RoO3MrPTMpe3ZhciBoPW5bc10qcixwPW5bcysxXSpyLGQ9bltzKzJdKnI7Zis9TWF0aC5hYnMoKHRbaF0tdFtkXSkqKHRbcCsxXS10W2grMV0pLSh0W2hdLXRbcF0pKih0W2QrMV0tdFtoKzFdKSl9cmV0dXJuIDA9PT1vJiYwPT09Zj8wOk1hdGguYWJzKChmLW8pL28pfSxGby5mbGF0dGVuPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10WzBdWzBdLmxlbmd0aCxyPXt2ZXJ0aWNlczpbXSxob2xlczpbXSxkaW1lbnNpb25zOmV9LG49MCxpPTA7aTx0Lmxlbmd0aDtpKyspe2Zvcih2YXIgYT0wO2E8dFtpXS5sZW5ndGg7YSsrKWZvcih2YXIgbz0wO288ZTtvKyspci52ZXJ0aWNlcy5wdXNoKHRbaV1bYV1bb10pO2k+MCYmKG4rPXRbaS0xXS5sZW5ndGgsci5ob2xlcy5wdXNoKG4pKX1yZXR1cm4gcn0sRG8uZGVmYXVsdD1Sbzt2YXIgZ3M9ZnVuY3Rpb24odCl7dGhpcy56b29tPXQuem9vbSx0aGlzLm92ZXJzY2FsaW5nPXQub3ZlcnNjYWxpbmcsdGhpcy5sYXllcnM9dC5sYXllcnMsdGhpcy5sYXllcklkcz10aGlzLmxheWVycy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpLHRoaXMuaW5kZXg9dC5pbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5wYXR0ZXJuRmVhdHVyZXM9W10sdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheT1uZXcgemksdGhpcy5pbmRleEFycmF5PW5ldyBZaSx0aGlzLmluZGV4QXJyYXkyPW5ldyBRaSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucz1uZXcgVWEoem8sdC5sYXllcnMsdC56b29tKSx0aGlzLnNlZ21lbnRzPW5ldyBwYSx0aGlzLnNlZ21lbnRzMj1uZXcgcGEsdGhpcy5zdGF0ZURlcGVuZGVudExheWVySWRzPXRoaXMubGF5ZXJzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuaXNTdGF0ZURlcGVuZGVudCgpfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSl9O2dzLnByb3RvdHlwZS5wb3B1bGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5oYXNQYXR0ZXJuPWRzKCJmaWxsIix0aGlzLmxheWVycyxlKTtmb3IodmFyIG49dGhpcy5sYXllcnNbMF0ubGF5b3V0LmdldCgiZmlsbC1zb3J0LWtleSIpLGk9W10sYT0wLG89dDthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV0sbD1zLmZlYXR1cmUsYz1zLmlkLHU9cy5pbmRleCxmPXMuc291cmNlTGF5ZXJJbmRleCxoPXRoaXMubGF5ZXJzWzBdLl9mZWF0dXJlRmlsdGVyLm5lZWRHZW9tZXRyeSxwPXt0eXBlOmwudHlwZSxpZDpjLHByb3BlcnRpZXM6bC5wcm9wZXJ0aWVzLGdlb21ldHJ5Omg/WWEobCk6W119O2lmKHRoaXMubGF5ZXJzWzBdLl9mZWF0dXJlRmlsdGVyLmZpbHRlcihuZXcgcGkodGhpcy56b29tKSxwLHIpKXtofHwocC5nZW9tZXRyeT1ZYShsKSk7dmFyIGQ9bj9uLmV2YWx1YXRlKHAse30scixlLmF2YWlsYWJsZUltYWdlcyk6dm9pZCAwLG09e2lkOmMscHJvcGVydGllczpsLnByb3BlcnRpZXMsdHlwZTpsLnR5cGUsc291cmNlTGF5ZXJJbmRleDpmLGluZGV4OnUsZ2VvbWV0cnk6cC5nZW9tZXRyeSxwYXR0ZXJuczp7fSxzb3J0S2V5OmR9O2kucHVzaChtKX19biYmaS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LnNvcnRLZXktZS5zb3J0S2V5fSkpO2Zvcih2YXIgZz0wLHY9aTtnPHYubGVuZ3RoO2crPTEpe3ZhciB5PXZbZ10seD15LGI9eC5nZW9tZXRyeSxfPXguaW5kZXgsdz14LnNvdXJjZUxheWVySW5kZXg7aWYodGhpcy5oYXNQYXR0ZXJuKXt2YXIgVD1tcygiZmlsbCIsdGhpcy5sYXllcnMseSx0aGlzLnpvb20sZSk7dGhpcy5wYXR0ZXJuRmVhdHVyZXMucHVzaChUKX1lbHNlIHRoaXMuYWRkRmVhdHVyZSh5LGIsXyxyLHt9KTt2YXIgaz10W19dLmZlYXR1cmU7ZS5mZWF0dXJlSW5kZXguaW5zZXJ0KGssYixfLHcsdGhpcy5pbmRleCl9fSxncy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLmxlbmd0aCYmdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBkYXRlUGFpbnRBcnJheXModCxlLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcnMscil9LGdzLnByb3RvdHlwZS5hZGRGZWF0dXJlcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTAsaT10aGlzLnBhdHRlcm5GZWF0dXJlcztuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl07dGhpcy5hZGRGZWF0dXJlKGEsYS5nZW9tZXRyeSxhLmluZGV4LGUscil9fSxncy5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGh9LGdzLnByb3RvdHlwZS51cGxvYWRQZW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudXBsb2FkZWR8fHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfSxncy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMudXBsb2FkZWR8fCh0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LHpvKSx0aGlzLmluZGV4QnVmZmVyPXQuY3JlYXRlSW5kZXhCdWZmZXIodGhpcy5pbmRleEFycmF5KSx0aGlzLmluZGV4QnVmZmVyMj10LmNyZWF0ZUluZGV4QnVmZmVyKHRoaXMuaW5kZXhBcnJheTIpKSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy51cGxvYWQodCksdGhpcy51cGxvYWRlZD0hMH0sZ3MucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmxheW91dFZlcnRleEJ1ZmZlciYmKHRoaXMubGF5b3V0VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLmluZGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLmluZGV4QnVmZmVyMi5kZXN0cm95KCksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMyLmRlc3Ryb3koKSl9LGdzLnByb3RvdHlwZS5hZGRGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBhPTAsbz1ocyhlLDUwMCk7YTxvLmxlbmd0aDthKz0xKXtmb3IodmFyIHM9b1thXSxsPTAsYz0wLHU9cztjPHUubGVuZ3RoO2MrPTEpe2wrPXVbY10ubGVuZ3RofWZvcih2YXIgZj10aGlzLnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KGwsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmluZGV4QXJyYXkpLGg9Zi52ZXJ0ZXhMZW5ndGgscD1bXSxkPVtdLG09MCxnPXM7bTxnLmxlbmd0aDttKz0xKXt2YXIgdj1nW21dO2lmKDAhPT12Lmxlbmd0aCl7diE9PXNbMF0mJmQucHVzaChwLmxlbmd0aC8yKTt2YXIgeT10aGlzLnNlZ21lbnRzMi5wcmVwYXJlU2VnbWVudCh2Lmxlbmd0aCx0aGlzLmxheW91dFZlcnRleEFycmF5LHRoaXMuaW5kZXhBcnJheTIpLHg9eS52ZXJ0ZXhMZW5ndGg7dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5lbXBsYWNlQmFjayh2WzBdLngsdlswXS55KSx0aGlzLmluZGV4QXJyYXkyLmVtcGxhY2VCYWNrKHgrdi5sZW5ndGgtMSx4KSxwLnB1c2godlswXS54KSxwLnB1c2godlswXS55KTtmb3IodmFyIGI9MTtiPHYubGVuZ3RoO2IrKyl0aGlzLmxheW91dFZlcnRleEFycmF5LmVtcGxhY2VCYWNrKHZbYl0ueCx2W2JdLnkpLHRoaXMuaW5kZXhBcnJheTIuZW1wbGFjZUJhY2soeCtiLTEseCtiKSxwLnB1c2godltiXS54KSxwLnB1c2godltiXS55KTt5LnZlcnRleExlbmd0aCs9di5sZW5ndGgseS5wcmltaXRpdmVMZW5ndGgrPXYubGVuZ3RofX1mb3IodmFyIF89RG8ocCxkKSx3PTA7dzxfLmxlbmd0aDt3Kz0zKXRoaXMuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhoK19bd10saCtfW3crMV0saCtfW3crMl0pO2YudmVydGV4TGVuZ3RoKz1sLGYucHJpbWl0aXZlTGVuZ3RoKz1fLmxlbmd0aC8zfXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnBvcHVsYXRlUGFpbnRBcnJheXModGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgsdCxyLGksbil9LE5uKCJGaWxsQnVja2V0Iixncyx7b21pdDpbImxheWVycyIsInBhdHRlcm5GZWF0dXJlcyJdfSk7dmFyIHZzPW5ldyBTaSh7ImZpbGwtc29ydC1rZXkiOm5ldyBUaShMdC5sYXlvdXRfZmlsbFsiZmlsbC1zb3J0LWtleSJdKX0pLHlzPXtwYWludDpuZXcgU2koeyJmaWxsLWFudGlhbGlhcyI6bmV3IHdpKEx0LnBhaW50X2ZpbGxbImZpbGwtYW50aWFsaWFzIl0pLCJmaWxsLW9wYWNpdHkiOm5ldyBUaShMdC5wYWludF9maWxsWyJmaWxsLW9wYWNpdHkiXSksImZpbGwtY29sb3IiOm5ldyBUaShMdC5wYWludF9maWxsWyJmaWxsLWNvbG9yIl0pLCJmaWxsLW91dGxpbmUtY29sb3IiOm5ldyBUaShMdC5wYWludF9maWxsWyJmaWxsLW91dGxpbmUtY29sb3IiXSksImZpbGwtdHJhbnNsYXRlIjpuZXcgd2koTHQucGFpbnRfZmlsbFsiZmlsbC10cmFuc2xhdGUiXSksImZpbGwtdHJhbnNsYXRlLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X2ZpbGxbImZpbGwtdHJhbnNsYXRlLWFuY2hvciJdKSwiZmlsbC1wYXR0ZXJuIjpuZXcga2koTHQucGFpbnRfZmlsbFsiZmlsbC1wYXR0ZXJuIl0pfSksbGF5b3V0OnZzfSx4cz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUseXMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5yZWNhbGN1bGF0ZT1mdW5jdGlvbihlLHIpe3QucHJvdG90eXBlLnJlY2FsY3VsYXRlLmNhbGwodGhpcyxlLHIpO3ZhciBuPXRoaXMucGFpbnQuX3ZhbHVlc1siZmlsbC1vdXRsaW5lLWNvbG9yIl07ImNvbnN0YW50Ij09PW4udmFsdWUua2luZCYmdm9pZCAwPT09bi52YWx1ZS52YWx1ZSYmKHRoaXMucGFpbnQuX3ZhbHVlc1siZmlsbC1vdXRsaW5lLWNvbG9yIl09dGhpcy5wYWludC5fdmFsdWVzWyJmaWxsLWNvbG9yIl0pfSxlLnByb3RvdHlwZS5jcmVhdGVCdWNrZXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBncyh0KX0sZS5wcm90b3R5cGUucXVlcnlSYWRpdXM9ZnVuY3Rpb24oKXtyZXR1cm4gc28odGhpcy5wYWludC5nZXQoImZpbGwtdHJhbnNsYXRlIikpfSxlLnByb3RvdHlwZS5xdWVyeUludGVyc2VjdHNGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3JldHVybiBLYShsbyh0LHRoaXMucGFpbnQuZ2V0KCJmaWxsLXRyYW5zbGF0ZSIpLHRoaXMucGFpbnQuZ2V0KCJmaWxsLXRyYW5zbGF0ZS1hbmNob3IiKSxhLmFuZ2xlLG8pLG4pfSxlLnByb3RvdHlwZS5pc1RpbGVDbGlwcGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGV9KEVpKSxicz1JaShbe25hbWU6ImFfcG9zIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV9ub3JtYWxfZWQiLGNvbXBvbmVudHM6NCx0eXBlOiJJbnQxNiJ9XSw0KS5tZW1iZXJzLF9zPXdzO2Z1bmN0aW9uIHdzKHQsZSxyLG4saSl7dGhpcy5wcm9wZXJ0aWVzPXt9LHRoaXMuZXh0ZW50PXIsdGhpcy50eXBlPTAsdGhpcy5fcGJmPXQsdGhpcy5fZ2VvbWV0cnk9LTEsdGhpcy5fa2V5cz1uLHRoaXMuX3ZhbHVlcz1pLHQucmVhZEZpZWxkcyhUcyx0aGlzLGUpfWZ1bmN0aW9uIFRzKHQsZSxyKXsxPT10P2UuaWQ9ci5yZWFkVmFyaW50KCk6Mj09dD9mdW5jdGlvbih0LGUpe3ZhciByPXQucmVhZFZhcmludCgpK3QucG9zO2Zvcig7dC5wb3M8cjspe3ZhciBuPWUuX2tleXNbdC5yZWFkVmFyaW50KCldLGk9ZS5fdmFsdWVzW3QucmVhZFZhcmludCgpXTtlLnByb3BlcnRpZXNbbl09aX19KHIsZSk6Mz09dD9lLnR5cGU9ci5yZWFkVmFyaW50KCk6ND09dCYmKGUuX2dlb21ldHJ5PXIucG9zKX1mdW5jdGlvbiBrcyh0KXtmb3IodmFyIGUscixuPTAsaT0wLGE9dC5sZW5ndGgsbz1hLTE7aTxhO289aSsrKWU9dFtpXSxuKz0oKHI9dFtvXSkueC1lLngpKihlLnkrci55KTtyZXR1cm4gbn13cy50eXBlcz1bIlVua25vd24iLCJQb2ludCIsIkxpbmVTdHJpbmciLCJQb2x5Z29uIl0sd3MucHJvdG90eXBlLmxvYWRHZW9tZXRyeT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX3BiZjt0LnBvcz10aGlzLl9nZW9tZXRyeTtmb3IodmFyIGUscj10LnJlYWRWYXJpbnQoKSt0LnBvcyxuPTEsYT0wLG89MCxzPTAsbD1bXTt0LnBvczxyOyl7aWYoYTw9MCl7dmFyIGM9dC5yZWFkVmFyaW50KCk7bj03JmMsYT1jPj4zfWlmKGEtLSwxPT09bnx8Mj09PW4pbys9dC5yZWFkU1ZhcmludCgpLHMrPXQucmVhZFNWYXJpbnQoKSwxPT09biYmKGUmJmwucHVzaChlKSxlPVtdKSxlLnB1c2gobmV3IGkobyxzKSk7ZWxzZXtpZig3IT09bil0aHJvdyBuZXcgRXJyb3IoInVua25vd24gY29tbWFuZCAiK24pO2UmJmUucHVzaChlWzBdLmNsb25lKCkpfX1yZXR1cm4gZSYmbC5wdXNoKGUpLGx9LHdzLnByb3RvdHlwZS5iYm94PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fcGJmO3QucG9zPXRoaXMuX2dlb21ldHJ5O2Zvcih2YXIgZT10LnJlYWRWYXJpbnQoKSt0LnBvcyxyPTEsbj0wLGk9MCxhPTAsbz0xLzAscz0tMS8wLGw9MS8wLGM9LTEvMDt0LnBvczxlOyl7aWYobjw9MCl7dmFyIHU9dC5yZWFkVmFyaW50KCk7cj03JnUsbj11Pj4zfWlmKG4tLSwxPT09cnx8Mj09PXIpKGkrPXQucmVhZFNWYXJpbnQoKSk8byYmKG89aSksaT5zJiYocz1pKSwoYSs9dC5yZWFkU1ZhcmludCgpKTxsJiYobD1hKSxhPmMmJihjPWEpO2Vsc2UgaWYoNyE9PXIpdGhyb3cgbmV3IEVycm9yKCJ1bmtub3duIGNvbW1hbmQgIityKX1yZXR1cm5bbyxsLHMsY119LHdzLnByb3RvdHlwZS50b0dlb0pTT049ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT10aGlzLmV4dGVudCpNYXRoLnBvdygyLHIpLG89dGhpcy5leHRlbnQqdCxzPXRoaXMuZXh0ZW50KmUsbD10aGlzLmxvYWRHZW9tZXRyeSgpLGM9d3MudHlwZXNbdGhpcy50eXBlXTtmdW5jdGlvbiB1KHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdLG49MTgwLTM2MCooci55K3MpL2E7dFtlXT1bMzYwKihyLngrbykvYS0xODAsMzYwL01hdGguUEkqTWF0aC5hdGFuKE1hdGguZXhwKG4qTWF0aC5QSS8xODApKS05MF19fXN3aXRjaCh0aGlzLnR5cGUpe2Nhc2UgMTp2YXIgZj1bXTtmb3Iobj0wO248bC5sZW5ndGg7bisrKWZbbl09bFtuXVswXTt1KGw9Zik7YnJlYWs7Y2FzZSAyOmZvcihuPTA7bjxsLmxlbmd0aDtuKyspdShsW25dKTticmVhaztjYXNlIDM6Zm9yKGw9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoZTw9MSlyZXR1cm5bdF07Zm9yKHZhciByLG4saT1bXSxhPTA7YTxlO2ErKyl7dmFyIG89a3ModFthXSk7MCE9PW8mJih2b2lkIDA9PT1uJiYobj1vPDApLG49PT1vPDA/KHImJmkucHVzaChyKSxyPVt0W2FdXSk6ci5wdXNoKHRbYV0pKX1yJiZpLnB1c2gocik7cmV0dXJuIGl9KGwpLG49MDtuPGwubGVuZ3RoO24rKylmb3IoaT0wO2k8bFtuXS5sZW5ndGg7aSsrKXUobFtuXVtpXSl9MT09PWwubGVuZ3RoP2w9bFswXTpjPSJNdWx0aSIrYzt2YXIgaD17dHlwZToiRmVhdHVyZSIsZ2VvbWV0cnk6e3R5cGU6Yyxjb29yZGluYXRlczpsfSxwcm9wZXJ0aWVzOnRoaXMucHJvcGVydGllc307cmV0dXJuImlkImluIHRoaXMmJihoLmlkPXRoaXMuaWQpLGh9O3ZhciBBcz1NcztmdW5jdGlvbiBNcyh0LGUpe3RoaXMudmVyc2lvbj0xLHRoaXMubmFtZT1udWxsLHRoaXMuZXh0ZW50PTQwOTYsdGhpcy5sZW5ndGg9MCx0aGlzLl9wYmY9dCx0aGlzLl9rZXlzPVtdLHRoaXMuX3ZhbHVlcz1bXSx0aGlzLl9mZWF0dXJlcz1bXSx0LnJlYWRGaWVsZHMoU3MsdGhpcyxlKSx0aGlzLmxlbmd0aD10aGlzLl9mZWF0dXJlcy5sZW5ndGh9ZnVuY3Rpb24gU3ModCxlLHIpezE1PT09dD9lLnZlcnNpb249ci5yZWFkVmFyaW50KCk6MT09PXQ/ZS5uYW1lPXIucmVhZFN0cmluZygpOjU9PT10P2UuZXh0ZW50PXIucmVhZFZhcmludCgpOjI9PT10P2UuX2ZlYXR1cmVzLnB1c2goci5wb3MpOjM9PT10P2UuX2tleXMucHVzaChyLnJlYWRTdHJpbmcoKSk6ND09PXQmJmUuX3ZhbHVlcy5wdXNoKGZ1bmN0aW9uKHQpe3ZhciBlPW51bGwscj10LnJlYWRWYXJpbnQoKSt0LnBvcztmb3IoO3QucG9zPHI7KXt2YXIgbj10LnJlYWRWYXJpbnQoKT4+MztlPTE9PT1uP3QucmVhZFN0cmluZygpOjI9PT1uP3QucmVhZEZsb2F0KCk6Mz09PW4/dC5yZWFkRG91YmxlKCk6ND09PW4/dC5yZWFkVmFyaW50NjQoKTo1PT09bj90LnJlYWRWYXJpbnQoKTo2PT09bj90LnJlYWRTVmFyaW50KCk6Nz09PW4/dC5yZWFkQm9vbGVhbigpOm51bGx9cmV0dXJuIGV9KHIpKX1mdW5jdGlvbiBFcyh0LGUscil7aWYoMz09PXQpe3ZhciBuPW5ldyBBcyhyLHIucmVhZFZhcmludCgpK3IucG9zKTtuLmxlbmd0aCYmKGVbbi5uYW1lXT1uKX19TXMucHJvdG90eXBlLmZlYXR1cmU9ZnVuY3Rpb24odCl7aWYodDwwfHx0Pj10aGlzLl9mZWF0dXJlcy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJmZWF0dXJlIGluZGV4IG91dCBvZiBib3VuZHMiKTt0aGlzLl9wYmYucG9zPXRoaXMuX2ZlYXR1cmVzW3RdO3ZhciBlPXRoaXMuX3BiZi5yZWFkVmFyaW50KCkrdGhpcy5fcGJmLnBvcztyZXR1cm4gbmV3IF9zKHRoaXMuX3BiZixlLHRoaXMuZXh0ZW50LHRoaXMuX2tleXMsdGhpcy5fdmFsdWVzKX07dmFyIExzPXtWZWN0b3JUaWxlOmZ1bmN0aW9uKHQsZSl7dGhpcy5sYXllcnM9dC5yZWFkRmllbGRzKEVzLHt9LGUpfSxWZWN0b3JUaWxlRmVhdHVyZTpfcyxWZWN0b3JUaWxlTGF5ZXI6QXN9LENzPUxzLlZlY3RvclRpbGVGZWF0dXJlLnR5cGVzLFBzPU1hdGgucG93KDIsMTMpO2Z1bmN0aW9uIElzKHQsZSxyLG4saSxhLG8scyl7dC5lbXBsYWNlQmFjayhlLHIsMipNYXRoLmZsb29yKG4qUHMpK28saSpQcyoyLGEqUHMqMixNYXRoLnJvdW5kKHMpKX12YXIgT3M9ZnVuY3Rpb24odCl7dGhpcy56b29tPXQuem9vbSx0aGlzLm92ZXJzY2FsaW5nPXQub3ZlcnNjYWxpbmcsdGhpcy5sYXllcnM9dC5sYXllcnMsdGhpcy5sYXllcklkcz10aGlzLmxheWVycy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpLHRoaXMuaW5kZXg9dC5pbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheT1uZXcgUmksdGhpcy5pbmRleEFycmF5PW5ldyBZaSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucz1uZXcgVWEoYnMsdC5sYXllcnMsdC56b29tKSx0aGlzLnNlZ21lbnRzPW5ldyBwYSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJJZHM9dGhpcy5sYXllcnMuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pc1N0YXRlRGVwZW5kZW50KCl9KSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKX07ZnVuY3Rpb24genModCxlKXtyZXR1cm4gdC54PT09ZS54JiYodC54PDB8fHQueD44MTkyKXx8dC55PT09ZS55JiYodC55PDB8fHQueT44MTkyKX1mdW5jdGlvbiBEcyh0KXtyZXR1cm4gdC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQueDwwfSkpfHx0LmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gdC54PjgxOTJ9KSl8fHQuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnk8MH0pKXx8dC5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQueT44MTkyfSkpfU9zLnByb3RvdHlwZS5wb3B1bGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5mZWF0dXJlcz1bXSx0aGlzLmhhc1BhdHRlcm49ZHMoImZpbGwtZXh0cnVzaW9uIix0aGlzLmxheWVycyxlKTtmb3IodmFyIG49MCxpPXQ7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dLG89YS5mZWF0dXJlLHM9YS5pZCxsPWEuaW5kZXgsYz1hLnNvdXJjZUxheWVySW5kZXgsdT10aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5uZWVkR2VvbWV0cnksZj17dHlwZTpvLnR5cGUsaWQ6cyxwcm9wZXJ0aWVzOm8ucHJvcGVydGllcyxnZW9tZXRyeTp1P1lhKG8pOltdfTtpZih0aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5maWx0ZXIobmV3IHBpKHRoaXMuem9vbSksZixyKSl7dmFyIGg9e2lkOnMsc291cmNlTGF5ZXJJbmRleDpjLGluZGV4OmwsZ2VvbWV0cnk6dT9mLmdlb21ldHJ5OllhKG8pLHByb3BlcnRpZXM6by5wcm9wZXJ0aWVzLHR5cGU6by50eXBlLHBhdHRlcm5zOnt9fTt2b2lkIDAhPT1vLmlkJiYoaC5pZD1vLmlkKSx0aGlzLmhhc1BhdHRlcm4/dGhpcy5mZWF0dXJlcy5wdXNoKG1zKCJmaWxsLWV4dHJ1c2lvbiIsdGhpcy5sYXllcnMsaCx0aGlzLnpvb20sZSkpOnRoaXMuYWRkRmVhdHVyZShoLGguZ2VvbWV0cnksbCxyLHt9KSxlLmZlYXR1cmVJbmRleC5pbnNlcnQobyxoLmdlb21ldHJ5LGwsYyx0aGlzLmluZGV4LCEwKX19fSxPcy5wcm90b3R5cGUuYWRkRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wLGk9dGhpcy5mZWF0dXJlcztuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl0sbz1hLmdlb21ldHJ5O3RoaXMuYWRkRmVhdHVyZShhLG8sYS5pbmRleCxlLHIpfX0sT3MucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zdGF0ZURlcGVuZGVudExheWVycy5sZW5ndGgmJnRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwZGF0ZVBhaW50QXJyYXlzKHQsZSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLHIpfSxPcy5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGh9LE9zLnByb3RvdHlwZS51cGxvYWRQZW5kaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIXRoaXMudXBsb2FkZWR8fHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfSxPcy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMudXBsb2FkZWR8fCh0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LGJzKSx0aGlzLmluZGV4QnVmZmVyPXQuY3JlYXRlSW5kZXhCdWZmZXIodGhpcy5pbmRleEFycmF5KSksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBsb2FkKHQpLHRoaXMudXBsb2FkZWQ9ITB9LE9zLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5pbmRleEJ1ZmZlci5kZXN0cm95KCksdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMuZGVzdHJveSgpKX0sT3MucHJvdG90eXBlLmFkZEZlYXR1cmU9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIGE9MCxvPWhzKGUsNTAwKTthPG8ubGVuZ3RoO2ErPTEpe2Zvcih2YXIgcz1vW2FdLGw9MCxjPTAsdT1zO2M8dS5sZW5ndGg7Yys9MSl7bCs9dVtjXS5sZW5ndGh9Zm9yKHZhciBmPXRoaXMuc2VnbWVudHMucHJlcGFyZVNlZ21lbnQoNCx0aGlzLmxheW91dFZlcnRleEFycmF5LHRoaXMuaW5kZXhBcnJheSksaD0wLHA9cztoPHAubGVuZ3RoO2grPTEpe3ZhciBkPXBbaF07aWYoMCE9PWQubGVuZ3RoJiYhRHMoZCkpZm9yKHZhciBtPTAsZz0wO2c8ZC5sZW5ndGg7ZysrKXt2YXIgdj1kW2ddO2lmKGc+PTEpe3ZhciB5PWRbZy0xXTtpZighenModix5KSl7Zi52ZXJ0ZXhMZW5ndGgrND5wYS5NQVhfVkVSVEVYX0FSUkFZX0xFTkdUSCYmKGY9dGhpcy5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCg0LHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5pbmRleEFycmF5KSk7dmFyIHg9di5zdWIoeSkuX3BlcnAoKS5fdW5pdCgpLGI9eS5kaXN0KHYpO20rYj4zMjc2OCYmKG09MCksSXModGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx2Lngsdi55LHgueCx4LnksMCwwLG0pLElzKHRoaXMubGF5b3V0VmVydGV4QXJyYXksdi54LHYueSx4LngseC55LDAsMSxtKSxtKz1iLElzKHRoaXMubGF5b3V0VmVydGV4QXJyYXkseS54LHkueSx4LngseC55LDAsMCxtKSxJcyh0aGlzLmxheW91dFZlcnRleEFycmF5LHkueCx5LnkseC54LHgueSwwLDEsbSk7dmFyIF89Zi52ZXJ0ZXhMZW5ndGg7dGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKF8sXysyLF8rMSksdGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKF8rMSxfKzIsXyszKSxmLnZlcnRleExlbmd0aCs9NCxmLnByaW1pdGl2ZUxlbmd0aCs9Mn19fX1pZihmLnZlcnRleExlbmd0aCtsPnBhLk1BWF9WRVJURVhfQVJSQVlfTEVOR1RIJiYoZj10aGlzLnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KGwsdGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSx0aGlzLmluZGV4QXJyYXkpKSwiUG9seWdvbiI9PT1Dc1t0LnR5cGVdKXtmb3IodmFyIHc9W10sVD1bXSxrPWYudmVydGV4TGVuZ3RoLEE9MCxNPXM7QTxNLmxlbmd0aDtBKz0xKXt2YXIgUz1NW0FdO2lmKDAhPT1TLmxlbmd0aCl7UyE9PXNbMF0mJlQucHVzaCh3Lmxlbmd0aC8yKTtmb3IodmFyIEU9MDtFPFMubGVuZ3RoO0UrKyl7dmFyIEw9U1tFXTtJcyh0aGlzLmxheW91dFZlcnRleEFycmF5LEwueCxMLnksMCwwLDEsMSwwKSx3LnB1c2goTC54KSx3LnB1c2goTC55KX19fWZvcih2YXIgQz1Ebyh3LFQpLFA9MDtQPEMubGVuZ3RoO1ArPTMpdGhpcy5pbmRleEFycmF5LmVtcGxhY2VCYWNrKGsrQ1tQXSxrK0NbUCsyXSxrK0NbUCsxXSk7Zi5wcmltaXRpdmVMZW5ndGgrPUMubGVuZ3RoLzMsZi52ZXJ0ZXhMZW5ndGgrPWx9fXRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnBvcHVsYXRlUGFpbnRBcnJheXModGhpcy5sYXlvdXRWZXJ0ZXhBcnJheS5sZW5ndGgsdCxyLGksbil9LE5uKCJGaWxsRXh0cnVzaW9uQnVja2V0IixPcyx7b21pdDpbImxheWVycyIsImZlYXR1cmVzIl19KTt2YXIgUnM9e3BhaW50Om5ldyBTaSh7ImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiOm5ldyB3aShMdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24tb3BhY2l0eSJdKSwiZmlsbC1leHRydXNpb24tY29sb3IiOm5ldyBUaShMdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24tY29sb3IiXSksImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZSI6bmV3IHdpKEx0WyJwYWludF9maWxsLWV4dHJ1c2lvbiJdWyJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUiXSksImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZS1hbmNob3IiOm5ldyB3aShMdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlLWFuY2hvciJdKSwiZmlsbC1leHRydXNpb24tcGF0dGVybiI6bmV3IGtpKEx0WyJwYWludF9maWxsLWV4dHJ1c2lvbiJdWyJmaWxsLWV4dHJ1c2lvbi1wYXR0ZXJuIl0pLCJmaWxsLWV4dHJ1c2lvbi1oZWlnaHQiOm5ldyBUaShMdFsicGFpbnRfZmlsbC1leHRydXNpb24iXVsiZmlsbC1leHRydXNpb24taGVpZ2h0Il0pLCJmaWxsLWV4dHJ1c2lvbi1iYXNlIjpuZXcgVGkoTHRbInBhaW50X2ZpbGwtZXh0cnVzaW9uIl1bImZpbGwtZXh0cnVzaW9uLWJhc2UiXSksImZpbGwtZXh0cnVzaW9uLXZlcnRpY2FsLWdyYWRpZW50IjpuZXcgd2koTHRbInBhaW50X2ZpbGwtZXh0cnVzaW9uIl1bImZpbGwtZXh0cnVzaW9uLXZlcnRpY2FsLWdyYWRpZW50Il0pfSl9LEZzPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSxScyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmNyZWF0ZUJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IE9zKHQpfSxlLnByb3RvdHlwZS5xdWVyeVJhZGl1cz1mdW5jdGlvbigpe3JldHVybiBzbyh0aGlzLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlIikpfSxlLnByb3RvdHlwZS5pczNEPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGUucHJvdG90eXBlLnF1ZXJ5SW50ZXJzZWN0c0ZlYXR1cmU9ZnVuY3Rpb24odCxlLHIsbixhLG8scyxsKXt2YXIgYz1sbyh0LHRoaXMucGFpbnQuZ2V0KCJmaWxsLWV4dHJ1c2lvbi10cmFuc2xhdGUiKSx0aGlzLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlLWFuY2hvciIpLG8uYW5nbGUscyksdT10aGlzLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24taGVpZ2h0IikuZXZhbHVhdGUoZSxyKSxmPXRoaXMucGFpbnQuZ2V0KCJmaWxsLWV4dHJ1c2lvbi1iYXNlIikuZXZhbHVhdGUoZSxyKSxoPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgYT1bXSxvPTAscz10O288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXSxjPVtsLngsbC55LG4sMV07eG8oYyxjLGUpLGEucHVzaChuZXcgaShjWzBdL2NbM10sY1sxXS9jWzNdKSl9cmV0dXJuIGF9KGMsbCwwLDApLHA9ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBhPVtdLG89W10scz1uWzhdKmUsbD1uWzldKmUsYz1uWzEwXSplLHU9blsxMV0qZSxmPW5bOF0qcixoPW5bOV0qcixwPW5bMTBdKnIsZD1uWzExXSpyLG09MCxnPXQ7bTxnLmxlbmd0aDttKz0xKXtmb3IodmFyIHY9Z1ttXSx5PVtdLHg9W10sYj0wLF89djtiPF8ubGVuZ3RoO2IrPTEpe3ZhciB3PV9bYl0sVD13Lngsaz13LnksQT1uWzBdKlQrbls0XSprK25bMTJdLE09blsxXSpUK25bNV0qaytuWzEzXSxTPW5bMl0qVCtuWzZdKmsrblsxNF0sRT1uWzNdKlQrbls3XSprK25bMTVdLEw9UytjLEM9RSt1LFA9QStmLEk9TStoLE89UytwLHo9RStkLEQ9bmV3IGkoKEErcykvQywoTStsKS9DKTtELno9TC9DLHkucHVzaChEKTt2YXIgUj1uZXcgaShQL3osSS96KTtSLno9Ty96LHgucHVzaChSKX1hLnB1c2goeSksby5wdXNoKHgpfXJldHVyblthLG9dfShuLGYsdSxsKTtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe3ZhciBuPTEvMDtLYShyLGUpJiYobj1OcyhyLGVbMF0pKTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKylmb3IodmFyIGE9ZVtpXSxvPXRbaV0scz0wO3M8YS5sZW5ndGgtMTtzKyspe3ZhciBsPWFbc10sYz1hW3MrMV0sdT1vW3NdLGY9b1tzKzFdLGg9W2wsYyxmLHUsbF07WmEocixoKSYmKG49TWF0aC5taW4obixOcyhyLGgpKSl9cmV0dXJuIG4hPT0xLzAmJm59KHBbMF0scFsxXSxoKX0sZX0oRWkpO2Z1bmN0aW9uIEJzKHQsZSl7cmV0dXJuIHQueCplLngrdC55KmUueX1mdW5jdGlvbiBOcyh0LGUpe2lmKDE9PT10Lmxlbmd0aCl7Zm9yKHZhciByLG49MCxpPWVbbisrXTshcnx8aS5lcXVhbHMocik7KWlmKCEocj1lW24rK10pKXJldHVybiAxLzA7Zm9yKDtuPGUubGVuZ3RoO24rKyl7dmFyIGE9ZVtuXSxvPXRbMF0scz1yLnN1YihpKSxsPWEuc3ViKGkpLGM9by5zdWIoaSksdT1CcyhzLHMpLGY9QnMocyxsKSxoPUJzKGwsbCkscD1CcyhjLHMpLGQ9QnMoYyxsKSxtPXUqaC1mKmYsZz0oaCpwLWYqZCkvbSx2PSh1KmQtZipwKS9tLHk9MS1nLXYseD1pLnoqeStyLnoqZythLnoqdjtpZihpc0Zpbml0ZSh4KSlyZXR1cm4geH1yZXR1cm4gMS8wfWZvcih2YXIgYj0xLzAsXz0wLHc9ZTtfPHcubGVuZ3RoO18rPTEpe3ZhciBUPXdbX107Yj1NYXRoLm1pbihiLFQueil9cmV0dXJuIGJ9dmFyIGpzPUlpKFt7bmFtZToiYV9wb3Nfbm9ybWFsIixjb21wb25lbnRzOjIsdHlwZToiSW50MTYifSx7bmFtZToiYV9kYXRhIixjb21wb25lbnRzOjQsdHlwZToiVWludDgifV0sNCkubWVtYmVycyxVcz1Mcy5WZWN0b3JUaWxlRmVhdHVyZS50eXBlcyxWcz1NYXRoLmNvcyhNYXRoLlBJLzE4MCozNy41KSxIcz1NYXRoLnBvdygyLDE0KS8uNSxxcz1mdW5jdGlvbih0KXt0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSksdGhpcy5pbmRleD10LmluZGV4LHRoaXMuaGFzUGF0dGVybj0hMSx0aGlzLnBhdHRlcm5GZWF0dXJlcz1bXSx0aGlzLmxheW91dFZlcnRleEFycmF5PW5ldyBGaSx0aGlzLmluZGV4QXJyYXk9bmV3IFlpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zPW5ldyBVYShqcyx0LmxheWVycyx0Lnpvb20pLHRoaXMuc2VnbWVudHM9bmV3IHBhLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcklkcz10aGlzLmxheWVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpfTtxcy5wcm90b3R5cGUucG9wdWxhdGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuaGFzUGF0dGVybj1kcygibGluZSIsdGhpcy5sYXllcnMsZSk7Zm9yKHZhciBuPXRoaXMubGF5ZXJzWzBdLmxheW91dC5nZXQoImxpbmUtc29ydC1rZXkiKSxpPVtdLGE9MCxvPXQ7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdLGw9cy5mZWF0dXJlLGM9cy5pZCx1PXMuaW5kZXgsZj1zLnNvdXJjZUxheWVySW5kZXgsaD10aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5uZWVkR2VvbWV0cnkscD17dHlwZTpsLnR5cGUsaWQ6Yyxwcm9wZXJ0aWVzOmwucHJvcGVydGllcyxnZW9tZXRyeTpoP1lhKGwpOltdfTtpZih0aGlzLmxheWVyc1swXS5fZmVhdHVyZUZpbHRlci5maWx0ZXIobmV3IHBpKHRoaXMuem9vbSkscCxyKSl7aHx8KHAuZ2VvbWV0cnk9WWEobCkpO3ZhciBkPW4/bi5ldmFsdWF0ZShwLHt9LHIpOnZvaWQgMCxtPXtpZDpjLHByb3BlcnRpZXM6bC5wcm9wZXJ0aWVzLHR5cGU6bC50eXBlLHNvdXJjZUxheWVySW5kZXg6ZixpbmRleDp1LGdlb21ldHJ5OnAuZ2VvbWV0cnkscGF0dGVybnM6e30sc29ydEtleTpkfTtpLnB1c2gobSl9fW4mJmkuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pKTtmb3IodmFyIGc9MCx2PWk7Zzx2Lmxlbmd0aDtnKz0xKXt2YXIgeT12W2ddLHg9eSxiPXguZ2VvbWV0cnksXz14LmluZGV4LHc9eC5zb3VyY2VMYXllckluZGV4O2lmKHRoaXMuaGFzUGF0dGVybil7dmFyIFQ9bXMoImxpbmUiLHRoaXMubGF5ZXJzLHksdGhpcy56b29tLGUpO3RoaXMucGF0dGVybkZlYXR1cmVzLnB1c2goVCl9ZWxzZSB0aGlzLmFkZEZlYXR1cmUoeSxiLF8scix7fSk7dmFyIGs9dFtfXS5mZWF0dXJlO2UuZmVhdHVyZUluZGV4Lmluc2VydChrLGIsXyx3LHRoaXMuaW5kZXgpfX0scXMucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zdGF0ZURlcGVuZGVudExheWVycy5sZW5ndGgmJnRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwZGF0ZVBhaW50QXJyYXlzKHQsZSx0aGlzLnN0YXRlRGVwZW5kZW50TGF5ZXJzLHIpfSxxcy5wcm90b3R5cGUuYWRkRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wLGk9dGhpcy5wYXR0ZXJuRmVhdHVyZXM7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dO3RoaXMuYWRkRmVhdHVyZShhLGEuZ2VvbWV0cnksYS5pbmRleCxlLHIpfX0scXMucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RofSxxcy5wcm90b3R5cGUudXBsb2FkUGVuZGluZz1mdW5jdGlvbigpe3JldHVybiF0aGlzLnVwbG9hZGVkfHx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5uZWVkc1VwbG9hZH0scXMucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0KXt0aGlzLnVwbG9hZGVkfHwodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXI9dC5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5sYXlvdXRWZXJ0ZXhBcnJheSxqcyksdGhpcy5pbmRleEJ1ZmZlcj10LmNyZWF0ZUluZGV4QnVmZmVyKHRoaXMuaW5kZXhBcnJheSkpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnVwbG9hZCh0KSx0aGlzLnVwbG9hZGVkPSEwfSxxcy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyJiYodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuaW5kZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmRlc3Ryb3koKSx0aGlzLnNlZ21lbnRzLmRlc3Ryb3koKSl9LHFzLnByb3RvdHlwZS5hZGRGZWF0dXJlPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBhPXRoaXMubGF5ZXJzWzBdLmxheW91dCxvPWEuZ2V0KCJsaW5lLWpvaW4iKS5ldmFsdWF0ZSh0LHt9KSxzPWEuZ2V0KCJsaW5lLWNhcCIpLGw9YS5nZXQoImxpbmUtbWl0ZXItbGltaXQiKSxjPWEuZ2V0KCJsaW5lLXJvdW5kLWxpbWl0IiksdT0wLGY9ZTt1PGYubGVuZ3RoO3UrPTEpe3ZhciBoPWZbdV07dGhpcy5hZGRMaW5lKGgsdCxvLHMsbCxjKX10aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5wb3B1bGF0ZVBhaW50QXJyYXlzKHRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoLHQscixpLG4pfSxxcy5wcm90b3R5cGUuYWRkTGluZT1mdW5jdGlvbih0LGUscixuLGksYSl7aWYodGhpcy5kaXN0YW5jZT0wLHRoaXMuc2NhbGVkRGlzdGFuY2U9MCx0aGlzLnRvdGFsRGlzdGFuY2U9MCxlLnByb3BlcnRpZXMmJmUucHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eSgibWFwYm94X2NsaXBfc3RhcnQiKSYmZS5wcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KCJtYXBib3hfY2xpcF9lbmQiKSl7dGhpcy5jbGlwU3RhcnQ9K2UucHJvcGVydGllcy5tYXBib3hfY2xpcF9zdGFydCx0aGlzLmNsaXBFbmQ9K2UucHJvcGVydGllcy5tYXBib3hfY2xpcF9lbmQ7Zm9yKHZhciBvPTA7bzx0Lmxlbmd0aC0xO28rKyl0aGlzLnRvdGFsRGlzdGFuY2UrPXRbb10uZGlzdCh0W28rMV0pO3RoaXMudXBkYXRlU2NhbGVkRGlzdGFuY2UoKX1mb3IodmFyIHM9IlBvbHlnb24iPT09VXNbZS50eXBlXSxsPXQubGVuZ3RoO2w+PTImJnRbbC0xXS5lcXVhbHModFtsLTJdKTspbC0tO2Zvcih2YXIgYz0wO2M8bC0xJiZ0W2NdLmVxdWFscyh0W2MrMV0pOyljKys7aWYoIShsPChzPzM6MikpKXsiYmV2ZWwiPT09ciYmKGk9MS4wNSk7dmFyIHUsZj10aGlzLm92ZXJzY2FsaW5nPD0xNj8xMjI4ODAvKDUxMip0aGlzLm92ZXJzY2FsaW5nKTowLGg9dGhpcy5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCgxMCpsLHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5pbmRleEFycmF5KSxwPXZvaWQgMCxkPXZvaWQgMCxtPXZvaWQgMCxnPXZvaWQgMDt0aGlzLmUxPXRoaXMuZTI9LTEscyYmKHU9dFtsLTJdLGc9dFtjXS5zdWIodSkuX3VuaXQoKS5fcGVycCgpKTtmb3IodmFyIHY9Yzt2PGw7disrKWlmKCEoZD12PT09bC0xP3M/dFtjKzFdOnZvaWQgMDp0W3YrMV0pfHwhdFt2XS5lcXVhbHMoZCkpe2cmJihtPWcpLHUmJihwPXUpLHU9dFt2XSxnPWQ/ZC5zdWIodSkuX3VuaXQoKS5fcGVycCgpOm07dmFyIHk9KG09bXx8ZykuYWRkKGcpOzA9PT15LngmJjA9PT15Lnl8fHkuX3VuaXQoKTt2YXIgeD1tLngqZy54K20ueSpnLnksYj15LngqZy54K3kueSpnLnksXz0wIT09Yj8xL2I6MS8wLHc9MipNYXRoLnNxcnQoMi0yKmIpLFQ9YjxWcyYmcCYmZCxrPW0ueCpnLnktbS55KmcueD4wO2lmKFQmJnY+Yyl7dmFyIEE9dS5kaXN0KHApO2lmKEE+MipmKXt2YXIgTT11LnN1Yih1LnN1YihwKS5fbXVsdChmL0EpLl9yb3VuZCgpKTt0aGlzLnVwZGF0ZURpc3RhbmNlKHAsTSksdGhpcy5hZGRDdXJyZW50VmVydGV4KE0sbSwwLDAsaCkscD1NfX12YXIgUz1wJiZkLEU9Uz9yOnM/ImJ1dHQiOm47aWYoUyYmInJvdW5kIj09PUUmJihfPGE/RT0ibWl0ZXIiOl88PTImJihFPSJmYWtlcm91bmQiKSksIm1pdGVyIj09PUUmJl8+aSYmKEU9ImJldmVsIiksImJldmVsIj09PUUmJihfPjImJihFPSJmbGlwYmV2ZWwiKSxfPGkmJihFPSJtaXRlciIpKSxwJiZ0aGlzLnVwZGF0ZURpc3RhbmNlKHAsdSksIm1pdGVyIj09PUUpeS5fbXVsdChfKSx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgodSx5LDAsMCxoKTtlbHNlIGlmKCJmbGlwYmV2ZWwiPT09RSl7aWYoXz4xMDApeT1nLm11bHQoLTEpO2Vsc2V7dmFyIEw9XyptLmFkZChnKS5tYWcoKS9tLnN1YihnKS5tYWcoKTt5Ll9wZXJwKCkuX211bHQoTCooaz8tMToxKSl9dGhpcy5hZGRDdXJyZW50VmVydGV4KHUseSwwLDAsaCksdGhpcy5hZGRDdXJyZW50VmVydGV4KHUseS5tdWx0KC0xKSwwLDAsaCl9ZWxzZSBpZigiYmV2ZWwiPT09RXx8ImZha2Vyb3VuZCI9PT1FKXt2YXIgQz0tTWF0aC5zcXJ0KF8qXy0xKSxQPWs/QzowLEk9az8wOkM7aWYocCYmdGhpcy5hZGRDdXJyZW50VmVydGV4KHUsbSxQLEksaCksImZha2Vyb3VuZCI9PT1FKWZvcih2YXIgTz1NYXRoLnJvdW5kKDE4MCp3L01hdGguUEkvMjApLHo9MTt6PE87eisrKXt2YXIgRD16L087aWYoLjUhPT1EKXt2YXIgUj1ELS41O0QrPUQqUiooRC0xKSooKDEuMDkwNCt4Kih4KigzLjU1NjQ1LTEuNDM1MTkqeCktMy4yNDUyKSkqUipSKyguODQ4MDEzK3gqKC4yMTU2MzgqeC0xLjA2MDIxKSkpfXZhciBGPWcuc3ViKG0pLl9tdWx0KEQpLl9hZGQobSkuX3VuaXQoKS5fbXVsdChrPy0xOjEpO3RoaXMuYWRkSGFsZlZlcnRleCh1LEYueCxGLnksITEsaywwLGgpfWQmJnRoaXMuYWRkQ3VycmVudFZlcnRleCh1LGcsLVAsLUksaCl9ZWxzZSBpZigiYnV0dCI9PT1FKXRoaXMuYWRkQ3VycmVudFZlcnRleCh1LHksMCwwLGgpO2Vsc2UgaWYoInNxdWFyZSI9PT1FKXt2YXIgQj1wPzE6LTE7dGhpcy5hZGRDdXJyZW50VmVydGV4KHUseSxCLEIsaCl9ZWxzZSJyb3VuZCI9PT1FJiYocCYmKHRoaXMuYWRkQ3VycmVudFZlcnRleCh1LG0sMCwwLGgpLHRoaXMuYWRkQ3VycmVudFZlcnRleCh1LG0sMSwxLGgsITApKSxkJiYodGhpcy5hZGRDdXJyZW50VmVydGV4KHUsZywtMSwtMSxoLCEwKSx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgodSxnLDAsMCxoKSkpO2lmKFQmJnY8bC0xKXt2YXIgTj11LmRpc3QoZCk7aWYoTj4yKmYpe3ZhciBqPXUuYWRkKGQuc3ViKHUpLl9tdWx0KGYvTikuX3JvdW5kKCkpO3RoaXMudXBkYXRlRGlzdGFuY2UodSxqKSx0aGlzLmFkZEN1cnJlbnRWZXJ0ZXgoaixnLDAsMCxoKSx1PWp9fX19fSxxcy5wcm90b3R5cGUuYWRkQ3VycmVudFZlcnRleD1mdW5jdGlvbih0LGUscixuLGksYSl7dm9pZCAwPT09YSYmKGE9ITEpO3ZhciBvPWUueCtlLnkqcixzPWUueS1lLngqcixsPS1lLngrZS55Km4sYz0tZS55LWUueCpuO3RoaXMuYWRkSGFsZlZlcnRleCh0LG8scyxhLCExLHIsaSksdGhpcy5hZGRIYWxmVmVydGV4KHQsbCxjLGEsITAsLW4saSksdGhpcy5kaXN0YW5jZT5Icy8yJiYwPT09dGhpcy50b3RhbERpc3RhbmNlJiYodGhpcy5kaXN0YW5jZT0wLHRoaXMuYWRkQ3VycmVudFZlcnRleCh0LGUscixuLGksYSkpfSxxcy5wcm90b3R5cGUuYWRkSGFsZlZlcnRleD1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz10LngsbD10LnksYz0uNSp0aGlzLnNjYWxlZERpc3RhbmNlO3RoaXMubGF5b3V0VmVydGV4QXJyYXkuZW1wbGFjZUJhY2soKHM8PDEpKyhuPzE6MCksKGw8PDEpKyhpPzE6MCksTWF0aC5yb3VuZCg2MyplKSsxMjgsTWF0aC5yb3VuZCg2MypyKSsxMjgsMSsoMD09PWE/MDphPDA/LTE6MSl8KDYzJmMpPDwyLGM+PjYpO3ZhciB1PW8udmVydGV4TGVuZ3RoKys7dGhpcy5lMT49MCYmdGhpcy5lMj49MCYmKHRoaXMuaW5kZXhBcnJheS5lbXBsYWNlQmFjayh0aGlzLmUxLHRoaXMuZTIsdSksby5wcmltaXRpdmVMZW5ndGgrKyksaT90aGlzLmUyPXU6dGhpcy5lMT11fSxxcy5wcm90b3R5cGUudXBkYXRlU2NhbGVkRGlzdGFuY2U9ZnVuY3Rpb24oKXt0aGlzLnNjYWxlZERpc3RhbmNlPXRoaXMudG90YWxEaXN0YW5jZT4wPyh0aGlzLmNsaXBTdGFydCsodGhpcy5jbGlwRW5kLXRoaXMuY2xpcFN0YXJ0KSp0aGlzLmRpc3RhbmNlL3RoaXMudG90YWxEaXN0YW5jZSkqKEhzLTEpOnRoaXMuZGlzdGFuY2V9LHFzLnByb3RvdHlwZS51cGRhdGVEaXN0YW5jZT1mdW5jdGlvbih0LGUpe3RoaXMuZGlzdGFuY2UrPXQuZGlzdChlKSx0aGlzLnVwZGF0ZVNjYWxlZERpc3RhbmNlKCl9LE5uKCJMaW5lQnVja2V0Iixxcyx7b21pdDpbImxheWVycyIsInBhdHRlcm5GZWF0dXJlcyJdfSk7dmFyIEdzPW5ldyBTaSh7ImxpbmUtY2FwIjpuZXcgd2koTHQubGF5b3V0X2xpbmVbImxpbmUtY2FwIl0pLCJsaW5lLWpvaW4iOm5ldyBUaShMdC5sYXlvdXRfbGluZVsibGluZS1qb2luIl0pLCJsaW5lLW1pdGVyLWxpbWl0IjpuZXcgd2koTHQubGF5b3V0X2xpbmVbImxpbmUtbWl0ZXItbGltaXQiXSksImxpbmUtcm91bmQtbGltaXQiOm5ldyB3aShMdC5sYXlvdXRfbGluZVsibGluZS1yb3VuZC1saW1pdCJdKSwibGluZS1zb3J0LWtleSI6bmV3IFRpKEx0LmxheW91dF9saW5lWyJsaW5lLXNvcnQta2V5Il0pfSksWXM9e3BhaW50Om5ldyBTaSh7ImxpbmUtb3BhY2l0eSI6bmV3IFRpKEx0LnBhaW50X2xpbmVbImxpbmUtb3BhY2l0eSJdKSwibGluZS1jb2xvciI6bmV3IFRpKEx0LnBhaW50X2xpbmVbImxpbmUtY29sb3IiXSksImxpbmUtdHJhbnNsYXRlIjpuZXcgd2koTHQucGFpbnRfbGluZVsibGluZS10cmFuc2xhdGUiXSksImxpbmUtdHJhbnNsYXRlLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X2xpbmVbImxpbmUtdHJhbnNsYXRlLWFuY2hvciJdKSwibGluZS13aWR0aCI6bmV3IFRpKEx0LnBhaW50X2xpbmVbImxpbmUtd2lkdGgiXSksImxpbmUtZ2FwLXdpZHRoIjpuZXcgVGkoTHQucGFpbnRfbGluZVsibGluZS1nYXAtd2lkdGgiXSksImxpbmUtb2Zmc2V0IjpuZXcgVGkoTHQucGFpbnRfbGluZVsibGluZS1vZmZzZXQiXSksImxpbmUtYmx1ciI6bmV3IFRpKEx0LnBhaW50X2xpbmVbImxpbmUtYmx1ciJdKSwibGluZS1kYXNoYXJyYXkiOm5ldyBBaShMdC5wYWludF9saW5lWyJsaW5lLWRhc2hhcnJheSJdKSwibGluZS1wYXR0ZXJuIjpuZXcga2koTHQucGFpbnRfbGluZVsibGluZS1wYXR0ZXJuIl0pLCJsaW5lLWdyYWRpZW50IjpuZXcgTWkoTHQucGFpbnRfbGluZVsibGluZS1ncmFkaWVudCJdKX0pLGxheW91dDpHc30sV3M9bmV3KGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbihlLHIpe3JldHVybiByPW5ldyBwaShNYXRoLmZsb29yKHIuem9vbSkse25vdzpyLm5vdyxmYWRlRHVyYXRpb246ci5mYWRlRHVyYXRpb24sem9vbUhpc3Rvcnk6ci56b29tSGlzdG9yeSx0cmFuc2l0aW9uOnIudHJhbnNpdGlvbn0pLHQucHJvdG90eXBlLnBvc3NpYmx5RXZhbHVhdGUuY2FsbCh0aGlzLGUscil9LGUucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKGUscixuLGkpe3JldHVybiByPXUoe30scix7em9vbTpNYXRoLmZsb29yKHIuem9vbSl9KSx0LnByb3RvdHlwZS5ldmFsdWF0ZS5jYWxsKHRoaXMsZSxyLG4saSl9LGV9KFRpKSkoWXMucGFpbnQucHJvcGVydGllc1sibGluZS13aWR0aCJdLnNwZWNpZmljYXRpb24pO1dzLnVzZUludGVnZXJab29tPSEwO3ZhciBYcz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUsWXMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5faGFuZGxlU3BlY2lhbFBhaW50UHJvcGVydHlVcGRhdGU9ZnVuY3Rpb24odCl7ImxpbmUtZ3JhZGllbnQiPT09dCYmdGhpcy5fdXBkYXRlR3JhZGllbnQoKX0sZS5wcm90b3R5cGUuX3VwZGF0ZUdyYWRpZW50PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fdHJhbnNpdGlvbmFibGVQYWludC5fdmFsdWVzWyJsaW5lLWdyYWRpZW50Il0udmFsdWUuZXhwcmVzc2lvbjt0aGlzLmdyYWRpZW50PUNvKHQsImxpbmVQcm9ncmVzcyIpLHRoaXMuZ3JhZGllbnRUZXh0dXJlPW51bGx9LGUucHJvdG90eXBlLnJlY2FsY3VsYXRlPWZ1bmN0aW9uKGUscil7dC5wcm90b3R5cGUucmVjYWxjdWxhdGUuY2FsbCh0aGlzLGUsciksdGhpcy5wYWludC5fdmFsdWVzWyJsaW5lLWZsb29yd2lkdGgiXT1Xcy5wb3NzaWJseUV2YWx1YXRlKHRoaXMuX3RyYW5zaXRpb25pbmdQYWludC5fdmFsdWVzWyJsaW5lLXdpZHRoIl0udmFsdWUsZSl9LGUucHJvdG90eXBlLmNyZWF0ZUJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IHFzKHQpfSxlLnByb3RvdHlwZS5xdWVyeVJhZGl1cz1mdW5jdGlvbih0KXt2YXIgZT10LHI9WnMob28oImxpbmUtd2lkdGgiLHRoaXMsZSksb28oImxpbmUtZ2FwLXdpZHRoIix0aGlzLGUpKSxuPW9vKCJsaW5lLW9mZnNldCIsdGhpcyxlKTtyZXR1cm4gci8yK01hdGguYWJzKG4pK3NvKHRoaXMucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZSIpKX0sZS5wcm90b3R5cGUucXVlcnlJbnRlcnNlY3RzRmVhdHVyZT1mdW5jdGlvbih0LGUscixuLGEsbyxzKXt2YXIgbD1sbyh0LHRoaXMucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZSIpLHRoaXMucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZS1hbmNob3IiKSxvLmFuZ2xlLHMpLGM9cy8yKlpzKHRoaXMucGFpbnQuZ2V0KCJsaW5lLXdpZHRoIikuZXZhbHVhdGUoZSxyKSx0aGlzLnBhaW50LmdldCgibGluZS1nYXAtd2lkdGgiKS5ldmFsdWF0ZShlLHIpKSx1PXRoaXMucGFpbnQuZ2V0KCJsaW5lLW9mZnNldCIpLmV2YWx1YXRlKGUscik7cmV0dXJuIHUmJihuPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49bmV3IGkoMCwwKSxhPTA7YTx0Lmxlbmd0aDthKyspe2Zvcih2YXIgbz10W2FdLHM9W10sbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgYz1vW2wtMV0sdT1vW2xdLGY9b1tsKzFdLGg9MD09PWw/bjp1LnN1YihjKS5fdW5pdCgpLl9wZXJwKCkscD1sPT09by5sZW5ndGgtMT9uOmYuc3ViKHUpLl91bml0KCkuX3BlcnAoKSxkPWguX2FkZChwKS5fdW5pdCgpLG09ZC54KnAueCtkLnkqcC55O2QuX211bHQoMS9tKSxzLnB1c2goZC5fbXVsdChlKS5fYWRkKHUpKX1yLnB1c2gocyl9cmV0dXJuIHJ9KG4sdSpzKSksZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2lmKHQubGVuZ3RoPj0zKWZvcih2YXIgYT0wO2E8aS5sZW5ndGg7YSsrKWlmKGlvKHQsaVthXSkpcmV0dXJuITA7aWYoUWEodCxpLHIpKXJldHVybiEwfXJldHVybiExfShsLG4sYyl9LGUucHJvdG90eXBlLmlzVGlsZUNsaXBwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZX0oRWkpO2Z1bmN0aW9uIFpzKHQsZSl7cmV0dXJuIGU+MD9lKzIqdDp0fXZhciBKcz1JaShbe25hbWU6ImFfcG9zX29mZnNldCIsY29tcG9uZW50czo0LHR5cGU6IkludDE2In0se25hbWU6ImFfZGF0YSIsY29tcG9uZW50czo0LHR5cGU6IlVpbnQxNiJ9LHtuYW1lOiJhX3BpeGVsb2Zmc2V0Iixjb21wb25lbnRzOjQsdHlwZToiSW50MTYifV0sNCksS3M9SWkoW3tuYW1lOiJhX3Byb2plY3RlZF9wb3MiLGNvbXBvbmVudHM6Myx0eXBlOiJGbG9hdDMyIn1dLDQpLFFzPShJaShbe25hbWU6ImFfZmFkZV9vcGFjaXR5Iixjb21wb25lbnRzOjEsdHlwZToiVWludDMyIn1dLDQpLElpKFt7bmFtZToiYV9wbGFjZWQiLGNvbXBvbmVudHM6Mix0eXBlOiJVaW50OCJ9LHtuYW1lOiJhX3NoaWZ0Iixjb21wb25lbnRzOjIsdHlwZToiRmxvYXQzMiJ9XSkpLCRzPShJaShbe3R5cGU6IkludDE2IixuYW1lOiJhbmNob3JQb2ludFgifSx7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclBvaW50WSJ9LHt0eXBlOiJJbnQxNiIsbmFtZToieDEifSx7dHlwZToiSW50MTYiLG5hbWU6InkxIn0se3R5cGU6IkludDE2IixuYW1lOiJ4MiJ9LHt0eXBlOiJJbnQxNiIsbmFtZToieTIifSx7dHlwZToiVWludDMyIixuYW1lOiJmZWF0dXJlSW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJzb3VyY2VMYXllckluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToiYnVja2V0SW5kZXgifV0pLElpKFt7bmFtZToiYV9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9LHtuYW1lOiJhX2FuY2hvcl9wb3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9LHtuYW1lOiJhX2V4dHJ1ZGUiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSw0KSksdGw9SWkoW3tuYW1lOiJhX3BvcyIsY29tcG9uZW50czoyLHR5cGU6IkZsb2F0MzIifSx7bmFtZToiYV9yYWRpdXMiLGNvbXBvbmVudHM6MSx0eXBlOiJGbG9hdDMyIn0se25hbWU6ImFfZmxhZ3MiLGNvbXBvbmVudHM6Mix0eXBlOiJJbnQxNiJ9XSw0KTtJaShbe25hbWU6InRyaWFuZ2xlIixjb21wb25lbnRzOjMsdHlwZToiVWludDE2In1dKSxJaShbe3R5cGU6IkludDE2IixuYW1lOiJhbmNob3JYIn0se3R5cGU6IkludDE2IixuYW1lOiJhbmNob3JZIn0se3R5cGU6IlVpbnQxNiIsbmFtZToiZ2x5cGhTdGFydEluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtR2x5cGhzIn0se3R5cGU6IlVpbnQzMiIsbmFtZToidmVydGV4U3RhcnRJbmRleCJ9LHt0eXBlOiJVaW50MzIiLG5hbWU6ImxpbmVTdGFydEluZGV4In0se3R5cGU6IlVpbnQzMiIsbmFtZToibGluZUxlbmd0aCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InNlZ21lbnQifSx7dHlwZToiVWludDE2IixuYW1lOiJsb3dlclNpemUifSx7dHlwZToiVWludDE2IixuYW1lOiJ1cHBlclNpemUifSx7dHlwZToiRmxvYXQzMiIsbmFtZToibGluZU9mZnNldFgifSx7dHlwZToiRmxvYXQzMiIsbmFtZToibGluZU9mZnNldFkifSx7dHlwZToiVWludDgiLG5hbWU6IndyaXRpbmdNb2RlIn0se3R5cGU6IlVpbnQ4IixuYW1lOiJwbGFjZWRPcmllbnRhdGlvbiJ9LHt0eXBlOiJVaW50OCIsbmFtZToiaGlkZGVuIn0se3R5cGU6IlVpbnQzMiIsbmFtZToiY3Jvc3NUaWxlSUQifSx7dHlwZToiSW50MTYiLG5hbWU6ImFzc29jaWF0ZWRJY29uSW5kZXgifV0pLElpKFt7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclgifSx7dHlwZToiSW50MTYiLG5hbWU6ImFuY2hvclkifSx7dHlwZToiSW50MTYiLG5hbWU6InJpZ2h0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4In0se3R5cGU6IkludDE2IixuYW1lOiJjZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgifSx7dHlwZToiSW50MTYiLG5hbWU6ImxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgifSx7dHlwZToiSW50MTYiLG5hbWU6InZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4In0se3R5cGU6IkludDE2IixuYW1lOiJwbGFjZWRJY29uU3ltYm9sSW5kZXgifSx7dHlwZToiSW50MTYiLG5hbWU6InZlcnRpY2FsUGxhY2VkSWNvblN5bWJvbEluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToia2V5In0se3R5cGU6IlVpbnQxNiIsbmFtZToidGV4dEJveFN0YXJ0SW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJ0ZXh0Qm94RW5kSW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJ2ZXJ0aWNhbFRleHRCb3hTdGFydEluZGV4In0se3R5cGU6IlVpbnQxNiIsbmFtZToidmVydGljYWxUZXh0Qm94RW5kSW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJpY29uQm94U3RhcnRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Imljb25Cb3hFbmRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6InZlcnRpY2FsSWNvbkJveFN0YXJ0SW5kZXgifSx7dHlwZToiVWludDE2IixuYW1lOiJ2ZXJ0aWNhbEljb25Cb3hFbmRJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6ImZlYXR1cmVJbmRleCJ9LHt0eXBlOiJVaW50MTYiLG5hbWU6Im51bUhvcml6b250YWxHbHlwaFZlcnRpY2VzIn0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtVmVydGljYWxHbHlwaFZlcnRpY2VzIn0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtSWNvblZlcnRpY2VzIn0se3R5cGU6IlVpbnQxNiIsbmFtZToibnVtVmVydGljYWxJY29uVmVydGljZXMifSx7dHlwZToiVWludDE2IixuYW1lOiJ1c2VSdW50aW1lQ29sbGlzaW9uQ2lyY2xlcyJ9LHt0eXBlOiJVaW50MzIiLG5hbWU6ImNyb3NzVGlsZUlEIn0se3R5cGU6IkZsb2F0MzIiLG5hbWU6InRleHRCb3hTY2FsZSJ9LHt0eXBlOiJGbG9hdDMyIixjb21wb25lbnRzOjIsbmFtZToidGV4dE9mZnNldCJ9LHt0eXBlOiJGbG9hdDMyIixuYW1lOiJjb2xsaXNpb25DaXJjbGVEaWFtZXRlciJ9XSksSWkoW3t0eXBlOiJGbG9hdDMyIixuYW1lOiJvZmZzZXRYIn1dKSxJaShbe3R5cGU6IkludDE2IixuYW1lOiJ4In0se3R5cGU6IkludDE2IixuYW1lOiJ5In0se3R5cGU6IkludDE2IixuYW1lOiJ0aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvciJ9XSk7ZnVuY3Rpb24gZWwodCxlLHIpe3JldHVybiB0LnNlY3Rpb25zLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudGV4dD1mdW5jdGlvbih0LGUscil7dmFyIG49ZS5sYXlvdXQuZ2V0KCJ0ZXh0LXRyYW5zZm9ybSIpLmV2YWx1YXRlKHIse30pO3JldHVybiJ1cHBlcmNhc2UiPT09bj90PXQudG9Mb2NhbGVVcHBlckNhc2UoKToibG93ZXJjYXNlIj09PW4mJih0PXQudG9Mb2NhbGVMb3dlckNhc2UoKSksaGkuYXBwbHlBcmFiaWNTaGFwaW5nJiYodD1oaS5hcHBseUFyYWJpY1NoYXBpbmcodCkpLHR9KHQudGV4dCxlLHIpfSkpLHR9dmFyIHJsPXsiISI6Ilx1ZmUxNSIsIiMiOiJcdWZmMDMiLCQ6Ilx1ZmYwNCIsIiUiOiJcdWZmMDUiLCImIjoiXHVmZjA2IiwiKCI6Ilx1ZmUzNSIsIikiOiJcdWZlMzYiLCIqIjoiXHVmZjBhIiwiKyI6Ilx1ZmYwYiIsIiwiOiJcdWZlMTAiLCItIjoiXHVmZTMyIiwiLiI6Ilx1MzBmYiIsIi8iOiJcdWZmMGYiLCI6IjoiXHVmZTEzIiwiOyI6Ilx1ZmUxNCIsIjwiOiJcdWZlM2YiLCI9IjoiXHVmZjFkIiwiPiI6Ilx1ZmU0MCIsIj8iOiJcdWZlMTYiLCJAIjoiXHVmZjIwIiwiWyI6Ilx1ZmU0NyIsIlxcIjoiXHVmZjNjIiwiXSI6Ilx1ZmU0OCIsIl4iOiJcdWZmM2UiLF86Ilx1ZmUzMyIsImAiOiJcdWZmNDAiLCJ7IjoiXHVmZTM3IiwifCI6Ilx1MjAxNSIsIn0iOiJcdWZlMzgiLCJ+IjoiXHVmZjVlIiwiXHhhMiI6Ilx1ZmZlMCIsIlx4YTMiOiJcdWZmZTEiLCJceGE1IjoiXHVmZmU1IiwiXHhhNiI6Ilx1ZmZlNCIsIlx4YWMiOiJcdWZmZTIiLCJceGFmIjoiXHVmZmUzIiwiXHUyMDEzIjoiXHVmZTMyIiwiXHUyMDE0IjoiXHVmZTMxIiwiXHUyMDE4IjoiXHVmZTQzIiwiXHUyMDE5IjoiXHVmZTQ0IiwiXHUyMDFjIjoiXHVmZTQxIiwiXHUyMDFkIjoiXHVmZTQyIiwiXHUyMDI2IjoiXHVmZTE5IiwiXHUyMDI3IjoiXHUzMGZiIiwiXHUyMGE5IjoiXHVmZmU2IiwiXHUzMDAxIjoiXHVmZTExIiwiXHUzMDAyIjoiXHVmZTEyIiwiXHUzMDA4IjoiXHVmZTNmIiwiXHUzMDA5IjoiXHVmZTQwIiwiXHUzMDBhIjoiXHVmZTNkIiwiXHUzMDBiIjoiXHVmZTNlIiwiXHUzMDBjIjoiXHVmZTQxIiwiXHUzMDBkIjoiXHVmZTQyIiwiXHUzMDBlIjoiXHVmZTQzIiwiXHUzMDBmIjoiXHVmZTQ0IiwiXHUzMDEwIjoiXHVmZTNiIiwiXHUzMDExIjoiXHVmZTNjIiwiXHUzMDE0IjoiXHVmZTM5IiwiXHUzMDE1IjoiXHVmZTNhIiwiXHUzMDE2IjoiXHVmZTE3IiwiXHUzMDE3IjoiXHVmZTE4IiwiXHVmZjAxIjoiXHVmZTE1IiwiXHVmZjA4IjoiXHVmZTM1IiwiXHVmZjA5IjoiXHVmZTM2IiwiXHVmZjBjIjoiXHVmZTEwIiwiXHVmZjBkIjoiXHVmZTMyIiwiXHVmZjBlIjoiXHUzMGZiIiwiXHVmZjFhIjoiXHVmZTEzIiwiXHVmZjFiIjoiXHVmZTE0IiwiXHVmZjFjIjoiXHVmZTNmIiwiXHVmZjFlIjoiXHVmZTQwIiwiXHVmZjFmIjoiXHVmZTE2IiwiXHVmZjNiIjoiXHVmZTQ3IiwiXHVmZjNkIjoiXHVmZTQ4IiwiXHVmZjNmIjoiXHVmZTMzIiwiXHVmZjViIjoiXHVmZTM3IiwiXHVmZjVjIjoiXHUyMDE1IiwiXHVmZjVkIjoiXHVmZTM4IiwiXHVmZjVmIjoiXHVmZTM1IiwiXHVmZjYwIjoiXHVmZTM2IiwiXHVmZjYxIjoiXHVmZTEyIiwiXHVmZjYyIjoiXHVmZTQxIiwiXHVmZjYzIjoiXHVmZTQyIn07dmFyIG5sPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsbyxzPTgqaS1uLTEsbD0oMTw8cyktMSxjPWw+PjEsdT0tNyxmPXI/aS0xOjAsaD1yPy0xOjEscD10W2UrZl07Zm9yKGYrPWgsYT1wJigxPDwtdSktMSxwPj49LXUsdSs9czt1PjA7YT0yNTYqYSt0W2UrZl0sZis9aCx1LT04KTtmb3Iobz1hJigxPDwtdSktMSxhPj49LXUsdSs9bjt1PjA7bz0yNTYqbyt0W2UrZl0sZis9aCx1LT04KTtpZigwPT09YSlhPTEtYztlbHNle2lmKGE9PT1sKXJldHVybiBvP05hTjoxLzAqKHA/LTE6MSk7bys9TWF0aC5wb3coMixuKSxhLT1jfXJldHVybihwPy0xOjEpKm8qTWF0aC5wb3coMixhLW4pfSxpbD1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG8scyxsLGM9OCphLWktMSx1PSgxPDxjKS0xLGY9dT4+MSxoPTIzPT09aT9NYXRoLnBvdygyLC0yNCktTWF0aC5wb3coMiwtNzcpOjAscD1uPzA6YS0xLGQ9bj8xOi0xLG09ZTwwfHwwPT09ZSYmMS9lPDA/MTowO2ZvcihlPU1hdGguYWJzKGUpLGlzTmFOKGUpfHxlPT09MS8wPyhzPWlzTmFOKGUpPzE6MCxvPXUpOihvPU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjIpLGUqKGw9TWF0aC5wb3coMiwtbykpPDEmJihvLS0sbCo9MiksKGUrPW8rZj49MT9oL2w6aCpNYXRoLnBvdygyLDEtZikpKmw+PTImJihvKyssbC89MiksbytmPj11PyhzPTAsbz11KTpvK2Y+PTE/KHM9KGUqbC0xKSpNYXRoLnBvdygyLGkpLG8rPWYpOihzPWUqTWF0aC5wb3coMixmLTEpKk1hdGgucG93KDIsaSksbz0wKSk7aT49ODt0W3IrcF09MjU1JnMscCs9ZCxzLz0yNTYsaS09OCk7Zm9yKG89bzw8aXxzLGMrPWk7Yz4wO3RbcitwXT0yNTUmbyxwKz1kLG8vPTI1NixjLT04KTt0W3IrcC1kXXw9MTI4Km19LGFsPW9sO2Z1bmN0aW9uIG9sKHQpe3RoaXMuYnVmPUFycmF5QnVmZmVyLmlzVmlldyYmQXJyYXlCdWZmZXIuaXNWaWV3KHQpP3Q6bmV3IFVpbnQ4QXJyYXkodHx8MCksdGhpcy5wb3M9MCx0aGlzLnR5cGU9MCx0aGlzLmxlbmd0aD10aGlzLmJ1Zi5sZW5ndGh9b2wuVmFyaW50PTAsb2wuRml4ZWQ2ND0xLG9sLkJ5dGVzPTIsb2wuRml4ZWQzMj01O3ZhciBzbD0idW5kZWZpbmVkIj09dHlwZW9mIFRleHREZWNvZGVyP251bGw6bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik7ZnVuY3Rpb24gbGwodCl7cmV0dXJuIHQudHlwZT09PW9sLkJ5dGVzP3QucmVhZFZhcmludCgpK3QucG9zOnQucG9zKzF9ZnVuY3Rpb24gY2wodCxlLHIpe3JldHVybiByPzQyOTQ5NjcyOTYqZSsodD4+PjApOjQyOTQ5NjcyOTYqKGU+Pj4wKSsodD4+PjApfWZ1bmN0aW9uIHVsKHQsZSxyKXt2YXIgbj1lPD0xNjM4Mz8xOmU8PTIwOTcxNTE/MjplPD0yNjg0MzU0NTU/MzpNYXRoLmZsb29yKE1hdGgubG9nKGUpLyg3Kk1hdGguTE4yKSk7ci5yZWFsbG9jKG4pO2Zvcih2YXIgaT1yLnBvcy0xO2k+PXQ7aS0tKXIuYnVmW2krbl09ci5idWZbaV19ZnVuY3Rpb24gZmwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlVmFyaW50KHRbcl0pfWZ1bmN0aW9uIGhsKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZVNWYXJpbnQodFtyXSl9ZnVuY3Rpb24gcGwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRmxvYXQodFtyXSl9ZnVuY3Rpb24gZGwodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRG91YmxlKHRbcl0pfWZ1bmN0aW9uIG1sKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZUJvb2xlYW4odFtyXSl9ZnVuY3Rpb24gZ2wodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyllLndyaXRlRml4ZWQzMih0W3JdKX1mdW5jdGlvbiB2bCh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVTRml4ZWQzMih0W3JdKX1mdW5jdGlvbiB5bCh0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWUud3JpdGVGaXhlZDY0KHRbcl0pfWZ1bmN0aW9uIHhsKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZS53cml0ZVNGaXhlZDY0KHRbcl0pfWZ1bmN0aW9uIGJsKHQsZSl7cmV0dXJuKHRbZV18dFtlKzFdPDw4fHRbZSsyXTw8MTYpKzE2Nzc3MjE2KnRbZSszXX1mdW5jdGlvbiBfbCh0LGUscil7dFtyXT1lLHRbcisxXT1lPj4+OCx0W3IrMl09ZT4+PjE2LHRbciszXT1lPj4+MjR9ZnVuY3Rpb24gd2wodCxlKXtyZXR1cm4odFtlXXx0W2UrMV08PDh8dFtlKzJdPDwxNikrKHRbZSszXTw8MjQpfW9sLnByb3RvdHlwZT17ZGVzdHJveTpmdW5jdGlvbigpe3RoaXMuYnVmPW51bGx9LHJlYWRGaWVsZHM6ZnVuY3Rpb24odCxlLHIpe2ZvcihyPXJ8fHRoaXMubGVuZ3RoO3RoaXMucG9zPHI7KXt2YXIgbj10aGlzLnJlYWRWYXJpbnQoKSxpPW4+PjMsYT10aGlzLnBvczt0aGlzLnR5cGU9NyZuLHQoaSxlLHRoaXMpLHRoaXMucG9zPT09YSYmdGhpcy5za2lwKG4pfXJldHVybiBlfSxyZWFkTWVzc2FnZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnJlYWRGaWVsZHModCxlLHRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zKX0scmVhZEZpeGVkMzI6ZnVuY3Rpb24oKXt2YXIgdD1ibCh0aGlzLmJ1Zix0aGlzLnBvcyk7cmV0dXJuIHRoaXMucG9zKz00LHR9LHJlYWRTRml4ZWQzMjpmdW5jdGlvbigpe3ZhciB0PXdsKHRoaXMuYnVmLHRoaXMucG9zKTtyZXR1cm4gdGhpcy5wb3MrPTQsdH0scmVhZEZpeGVkNjQ6ZnVuY3Rpb24oKXt2YXIgdD1ibCh0aGlzLmJ1Zix0aGlzLnBvcykrNDI5NDk2NzI5NipibCh0aGlzLmJ1Zix0aGlzLnBvcys0KTtyZXR1cm4gdGhpcy5wb3MrPTgsdH0scmVhZFNGaXhlZDY0OmZ1bmN0aW9uKCl7dmFyIHQ9YmwodGhpcy5idWYsdGhpcy5wb3MpKzQyOTQ5NjcyOTYqd2wodGhpcy5idWYsdGhpcy5wb3MrNCk7cmV0dXJuIHRoaXMucG9zKz04LHR9LHJlYWRGbG9hdDpmdW5jdGlvbigpe3ZhciB0PW5sKHRoaXMuYnVmLHRoaXMucG9zLCEwLDIzLDQpO3JldHVybiB0aGlzLnBvcys9NCx0fSxyZWFkRG91YmxlOmZ1bmN0aW9uKCl7dmFyIHQ9bmwodGhpcy5idWYsdGhpcy5wb3MsITAsNTIsOCk7cmV0dXJuIHRoaXMucG9zKz04LHR9LHJlYWRWYXJpbnQ6ZnVuY3Rpb24odCl7dmFyIGUscixuPXRoaXMuYnVmO3JldHVybiBlPTEyNyYocj1uW3RoaXMucG9zKytdKSxyPDEyOD9lOihlfD0oMTI3JihyPW5bdGhpcy5wb3MrK10pKTw8NyxyPDEyOD9lOihlfD0oMTI3JihyPW5bdGhpcy5wb3MrK10pKTw8MTQscjwxMjg/ZTooZXw9KDEyNyYocj1uW3RoaXMucG9zKytdKSk8PDIxLHI8MTI4P2U6ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT1yLmJ1ZjtpZihpPWFbci5wb3MrK10sbj0oMTEyJmkpPj40LGk8MTI4KXJldHVybiBjbCh0LG4sZSk7aWYoaT1hW3IucG9zKytdLG58PSgxMjcmaSk8PDMsaTwxMjgpcmV0dXJuIGNsKHQsbixlKTtpZihpPWFbci5wb3MrK10sbnw9KDEyNyZpKTw8MTAsaTwxMjgpcmV0dXJuIGNsKHQsbixlKTtpZihpPWFbci5wb3MrK10sbnw9KDEyNyZpKTw8MTcsaTwxMjgpcmV0dXJuIGNsKHQsbixlKTtpZihpPWFbci5wb3MrK10sbnw9KDEyNyZpKTw8MjQsaTwxMjgpcmV0dXJuIGNsKHQsbixlKTtpZihpPWFbci5wb3MrK10sbnw9KDEmaSk8PDMxLGk8MTI4KXJldHVybiBjbCh0LG4sZSk7dGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCB2YXJpbnQgbm90IG1vcmUgdGhhbiAxMCBieXRlcyIpfShlfD0oMTUmKHI9blt0aGlzLnBvc10pKTw8MjgsdCx0aGlzKSkpKX0scmVhZFZhcmludDY0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVhZFZhcmludCghMCl9LHJlYWRTVmFyaW50OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZWFkVmFyaW50KCk7cmV0dXJuIHQlMj09MT8odCsxKS8tMjp0LzJ9LHJlYWRCb29sZWFuOmZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4odGhpcy5yZWFkVmFyaW50KCkpfSxyZWFkU3RyaW5nOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZWFkVmFyaW50KCkrdGhpcy5wb3MsZT10aGlzLnBvcztyZXR1cm4gdGhpcy5wb3M9dCx0LWU+PTEyJiZzbD9mdW5jdGlvbih0LGUscil7cmV0dXJuIHNsLmRlY29kZSh0LnN1YmFycmF5KGUscikpfSh0aGlzLmJ1ZixlLHQpOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0iIixpPWU7Zm9yKDtpPHI7KXt2YXIgYSxvLHMsbD10W2ldLGM9bnVsbCx1PWw+MjM5PzQ6bD4yMjM/MzpsPjE5MT8yOjE7aWYoaSt1PnIpYnJlYWs7MT09PXU/bDwxMjgmJihjPWwpOjI9PT11PzEyOD09KDE5MiYoYT10W2krMV0pKSYmKGM9KDMxJmwpPDw2fDYzJmEpPD0xMjcmJihjPW51bGwpOjM9PT11PyhhPXRbaSsxXSxvPXRbaSsyXSwxMjg9PSgxOTImYSkmJjEyOD09KDE5MiZvKSYmKChjPSgxNSZsKTw8MTJ8KDYzJmEpPDw2fDYzJm8pPD0yMDQ3fHxjPj01NTI5NiYmYzw9NTczNDMpJiYoYz1udWxsKSk6ND09PXUmJihhPXRbaSsxXSxvPXRbaSsyXSxzPXRbaSszXSwxMjg9PSgxOTImYSkmJjEyOD09KDE5MiZvKSYmMTI4PT0oMTkyJnMpJiYoKGM9KDE1JmwpPDwxOHwoNjMmYSk8PDEyfCg2MyZvKTw8Nnw2MyZzKTw9NjU1MzV8fGM+PTExMTQxMTIpJiYoYz1udWxsKSksbnVsbD09PWM/KGM9NjU1MzMsdT0xKTpjPjY1NTM1JiYoYy09NjU1MzYsbis9U3RyaW5nLmZyb21DaGFyQ29kZShjPj4+MTAmMTAyM3w1NTI5NiksYz01NjMyMHwxMDIzJmMpLG4rPVN0cmluZy5mcm9tQ2hhckNvZGUoYyksaSs9dX1yZXR1cm4gbn0odGhpcy5idWYsZSx0KX0scmVhZEJ5dGVzOmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yZWFkVmFyaW50KCkrdGhpcy5wb3MsZT10aGlzLmJ1Zi5zdWJhcnJheSh0aGlzLnBvcyx0KTtyZXR1cm4gdGhpcy5wb3M9dCxlfSxyZWFkUGFja2VkVmFyaW50OmZ1bmN0aW9uKHQsZSl7aWYodGhpcy50eXBlIT09b2wuQnl0ZXMpcmV0dXJuIHQucHVzaCh0aGlzLnJlYWRWYXJpbnQoZSkpO3ZhciByPWxsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPHI7KXQucHVzaCh0aGlzLnJlYWRWYXJpbnQoZSkpO3JldHVybiB0fSxyZWFkUGFja2VkU1ZhcmludDpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1vbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZFNWYXJpbnQoKSk7dmFyIGU9bGwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZFNWYXJpbnQoKSk7cmV0dXJuIHR9LHJlYWRQYWNrZWRCb29sZWFuOmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkQm9vbGVhbigpKTt2YXIgZT1sbCh0aGlzKTtmb3IodD10fHxbXTt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkQm9vbGVhbigpKTtyZXR1cm4gdH0scmVhZFBhY2tlZEZsb2F0OmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkRmxvYXQoKSk7dmFyIGU9bGwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZEZsb2F0KCkpO3JldHVybiB0fSxyZWFkUGFja2VkRG91YmxlOmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkRG91YmxlKCkpO3ZhciBlPWxsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWREb3VibGUoKSk7cmV0dXJuIHR9LHJlYWRQYWNrZWRGaXhlZDMyOmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkRml4ZWQzMigpKTt2YXIgZT1sbCh0aGlzKTtmb3IodD10fHxbXTt0aGlzLnBvczxlOyl0LnB1c2godGhpcy5yZWFkRml4ZWQzMigpKTtyZXR1cm4gdH0scmVhZFBhY2tlZFNGaXhlZDMyOmZ1bmN0aW9uKHQpe2lmKHRoaXMudHlwZSE9PW9sLkJ5dGVzKXJldHVybiB0LnB1c2godGhpcy5yZWFkU0ZpeGVkMzIoKSk7dmFyIGU9bGwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZFNGaXhlZDMyKCkpO3JldHVybiB0fSxyZWFkUGFja2VkRml4ZWQ2NDpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1vbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZEZpeGVkNjQoKSk7dmFyIGU9bGwodGhpcyk7Zm9yKHQ9dHx8W107dGhpcy5wb3M8ZTspdC5wdXNoKHRoaXMucmVhZEZpeGVkNjQoKSk7cmV0dXJuIHR9LHJlYWRQYWNrZWRTRml4ZWQ2NDpmdW5jdGlvbih0KXtpZih0aGlzLnR5cGUhPT1vbC5CeXRlcylyZXR1cm4gdC5wdXNoKHRoaXMucmVhZFNGaXhlZDY0KCkpO3ZhciBlPWxsKHRoaXMpO2Zvcih0PXR8fFtdO3RoaXMucG9zPGU7KXQucHVzaCh0aGlzLnJlYWRTRml4ZWQ2NCgpKTtyZXR1cm4gdH0sc2tpcDpmdW5jdGlvbih0KXt2YXIgZT03JnQ7aWYoZT09PW9sLlZhcmludClmb3IoO3RoaXMuYnVmW3RoaXMucG9zKytdPjEyNzspO2Vsc2UgaWYoZT09PW9sLkJ5dGVzKXRoaXMucG9zPXRoaXMucmVhZFZhcmludCgpK3RoaXMucG9zO2Vsc2UgaWYoZT09PW9sLkZpeGVkMzIpdGhpcy5wb3MrPTQ7ZWxzZXtpZihlIT09b2wuRml4ZWQ2NCl0aHJvdyBuZXcgRXJyb3IoIlVuaW1wbGVtZW50ZWQgdHlwZTogIitlKTt0aGlzLnBvcys9OH19LHdyaXRlVGFnOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVZhcmludCh0PDwzfGUpfSxyZWFsbG9jOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmxlbmd0aHx8MTY7ZTx0aGlzLnBvcyt0OyllKj0yO2lmKGUhPT10aGlzLmxlbmd0aCl7dmFyIHI9bmV3IFVpbnQ4QXJyYXkoZSk7ci5zZXQodGhpcy5idWYpLHRoaXMuYnVmPXIsdGhpcy5sZW5ndGg9ZX19LGZpbmlzaDpmdW5jdGlvbigpe3JldHVybiB0aGlzLmxlbmd0aD10aGlzLnBvcyx0aGlzLnBvcz0wLHRoaXMuYnVmLnN1YmFycmF5KDAsdGhpcy5sZW5ndGgpfSx3cml0ZUZpeGVkMzI6ZnVuY3Rpb24odCl7dGhpcy5yZWFsbG9jKDQpLF9sKHRoaXMuYnVmLHQsdGhpcy5wb3MpLHRoaXMucG9zKz00fSx3cml0ZVNGaXhlZDMyOmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg0KSxfbCh0aGlzLmJ1Zix0LHRoaXMucG9zKSx0aGlzLnBvcys9NH0sd3JpdGVGaXhlZDY0OmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg4KSxfbCh0aGlzLmJ1ZiwtMSZ0LHRoaXMucG9zKSxfbCh0aGlzLmJ1ZixNYXRoLmZsb29yKHQqKDEvNDI5NDk2NzI5NikpLHRoaXMucG9zKzQpLHRoaXMucG9zKz04fSx3cml0ZVNGaXhlZDY0OmZ1bmN0aW9uKHQpe3RoaXMucmVhbGxvYyg4KSxfbCh0aGlzLmJ1ZiwtMSZ0LHRoaXMucG9zKSxfbCh0aGlzLmJ1ZixNYXRoLmZsb29yKHQqKDEvNDI5NDk2NzI5NikpLHRoaXMucG9zKzQpLHRoaXMucG9zKz04fSx3cml0ZVZhcmludDpmdW5jdGlvbih0KXsodD0rdHx8MCk+MjY4NDM1NDU1fHx0PDA/ZnVuY3Rpb24odCxlKXt2YXIgcixuO3Q+PTA/KHI9dCU0Mjk0OTY3Mjk2fDAsbj10LzQyOTQ5NjcyOTZ8MCk6KG49figtdC80Mjk0OTY3Mjk2KSw0Mjk0OTY3Mjk1XihyPX4oLXQlNDI5NDk2NzI5NikpP3I9cisxfDA6KHI9MCxuPW4rMXwwKSk7aWYodD49MHgxMDAwMDAwMDAwMDAwMDAwMHx8dDwtMHgxMDAwMDAwMDAwMDAwMDAwMCl0aHJvdyBuZXcgRXJyb3IoIkdpdmVuIHZhcmludCBkb2Vzbid0IGZpdCBpbnRvIDEwIGJ5dGVzIik7ZS5yZWFsbG9jKDEwKSxmdW5jdGlvbih0LGUscil7ci5idWZbci5wb3MrK109MTI3JnR8MTI4LHQ+Pj49NyxyLmJ1ZltyLnBvcysrXT0xMjcmdHwxMjgsdD4+Pj03LHIuYnVmW3IucG9zKytdPTEyNyZ0fDEyOCx0Pj4+PTcsci5idWZbci5wb3MrK109MTI3JnR8MTI4LHQ+Pj49NyxyLmJ1ZltyLnBvc109MTI3JnR9KHIsMCxlKSxmdW5jdGlvbih0LGUpe3ZhciByPSg3JnQpPDw0O2lmKGUuYnVmW2UucG9zKytdfD1yfCgodD4+Pj0zKT8xMjg6MCksIXQpcmV0dXJuO2lmKGUuYnVmW2UucG9zKytdPTEyNyZ0fCgodD4+Pj03KT8xMjg6MCksIXQpcmV0dXJuO2lmKGUuYnVmW2UucG9zKytdPTEyNyZ0fCgodD4+Pj03KT8xMjg6MCksIXQpcmV0dXJuO2lmKGUuYnVmW2UucG9zKytdPTEyNyZ0fCgodD4+Pj03KT8xMjg6MCksIXQpcmV0dXJuO2lmKGUuYnVmW2UucG9zKytdPTEyNyZ0fCgodD4+Pj03KT8xMjg6MCksIXQpcmV0dXJuO2UuYnVmW2UucG9zKytdPTEyNyZ0fShuLGUpfSh0LHRoaXMpOih0aGlzLnJlYWxsb2MoNCksdGhpcy5idWZbdGhpcy5wb3MrK109MTI3JnR8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT0xMjcmKHQ+Pj49Nyl8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT0xMjcmKHQ+Pj49Nyl8KHQ+MTI3PzEyODowKSx0PD0xMjd8fCh0aGlzLmJ1Zlt0aGlzLnBvcysrXT10Pj4+NyYxMjcpKSkpfSx3cml0ZVNWYXJpbnQ6ZnVuY3Rpb24odCl7dGhpcy53cml0ZVZhcmludCh0PDA/MiotdC0xOjIqdCl9LHdyaXRlQm9vbGVhbjpmdW5jdGlvbih0KXt0aGlzLndyaXRlVmFyaW50KEJvb2xlYW4odCkpfSx3cml0ZVN0cmluZzpmdW5jdGlvbih0KXt0PVN0cmluZyh0KSx0aGlzLnJlYWxsb2MoNCp0Lmxlbmd0aCksdGhpcy5wb3MrKzt2YXIgZT10aGlzLnBvczt0aGlzLnBvcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLGksYT0wO2E8ZS5sZW5ndGg7YSsrKXtpZigobj1lLmNoYXJDb2RlQXQoYSkpPjU1Mjk1JiZuPDU3MzQ0KXtpZighaSl7bj41NjMxOXx8YSsxPT09ZS5sZW5ndGg/KHRbcisrXT0yMzksdFtyKytdPTE5MSx0W3IrK109MTg5KTppPW47Y29udGludWV9aWYobjw1NjMyMCl7dFtyKytdPTIzOSx0W3IrK109MTkxLHRbcisrXT0xODksaT1uO2NvbnRpbnVlfW49aS01NTI5Njw8MTB8bi01NjMyMHw2NTUzNixpPW51bGx9ZWxzZSBpJiYodFtyKytdPTIzOSx0W3IrK109MTkxLHRbcisrXT0xODksaT1udWxsKTtuPDEyOD90W3IrK109bjoobjwyMDQ4P3RbcisrXT1uPj42fDE5Mjoobjw2NTUzNj90W3IrK109bj4+MTJ8MjI0Oih0W3IrK109bj4+MTh8MjQwLHRbcisrXT1uPj4xMiY2M3wxMjgpLHRbcisrXT1uPj42JjYzfDEyOCksdFtyKytdPTYzJm58MTI4KX1yZXR1cm4gcn0odGhpcy5idWYsdCx0aGlzLnBvcyk7dmFyIHI9dGhpcy5wb3MtZTtyPj0xMjgmJnVsKGUscix0aGlzKSx0aGlzLnBvcz1lLTEsdGhpcy53cml0ZVZhcmludChyKSx0aGlzLnBvcys9cn0sd3JpdGVGbG9hdDpmdW5jdGlvbih0KXt0aGlzLnJlYWxsb2MoNCksaWwodGhpcy5idWYsdCx0aGlzLnBvcywhMCwyMyw0KSx0aGlzLnBvcys9NH0sd3JpdGVEb3VibGU6ZnVuY3Rpb24odCl7dGhpcy5yZWFsbG9jKDgpLGlsKHRoaXMuYnVmLHQsdGhpcy5wb3MsITAsNTIsOCksdGhpcy5wb3MrPTh9LHdyaXRlQnl0ZXM6ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7dGhpcy53cml0ZVZhcmludChlKSx0aGlzLnJlYWxsb2MoZSk7Zm9yKHZhciByPTA7cjxlO3IrKyl0aGlzLmJ1Zlt0aGlzLnBvcysrXT10W3JdfSx3cml0ZVJhd01lc3NhZ2U6ZnVuY3Rpb24odCxlKXt0aGlzLnBvcysrO3ZhciByPXRoaXMucG9zO3QoZSx0aGlzKTt2YXIgbj10aGlzLnBvcy1yO24+PTEyOCYmdWwocixuLHRoaXMpLHRoaXMucG9zPXItMSx0aGlzLndyaXRlVmFyaW50KG4pLHRoaXMucG9zKz1ufSx3cml0ZU1lc3NhZ2U6ZnVuY3Rpb24odCxlLHIpe3RoaXMud3JpdGVUYWcodCxvbC5CeXRlcyksdGhpcy53cml0ZVJhd01lc3NhZ2UoZSxyKX0sd3JpdGVQYWNrZWRWYXJpbnQ6ZnVuY3Rpb24odCxlKXtlLmxlbmd0aCYmdGhpcy53cml0ZU1lc3NhZ2UodCxmbCxlKX0sd3JpdGVQYWNrZWRTVmFyaW50OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsaGwsZSl9LHdyaXRlUGFja2VkQm9vbGVhbjpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LG1sLGUpfSx3cml0ZVBhY2tlZEZsb2F0OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQscGwsZSl9LHdyaXRlUGFja2VkRG91YmxlOmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsZGwsZSl9LHdyaXRlUGFja2VkRml4ZWQzMjpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LGdsLGUpfSx3cml0ZVBhY2tlZFNGaXhlZDMyOmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQsdmwsZSl9LHdyaXRlUGFja2VkRml4ZWQ2NDpmdW5jdGlvbih0LGUpe2UubGVuZ3RoJiZ0aGlzLndyaXRlTWVzc2FnZSh0LHlsLGUpfSx3cml0ZVBhY2tlZFNGaXhlZDY0OmZ1bmN0aW9uKHQsZSl7ZS5sZW5ndGgmJnRoaXMud3JpdGVNZXNzYWdlKHQseGwsZSl9LHdyaXRlQnl0ZXNGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxvbC5CeXRlcyksdGhpcy53cml0ZUJ5dGVzKGUpfSx3cml0ZUZpeGVkMzJGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxvbC5GaXhlZDMyKSx0aGlzLndyaXRlRml4ZWQzMihlKX0sd3JpdGVTRml4ZWQzMkZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG9sLkZpeGVkMzIpLHRoaXMud3JpdGVTRml4ZWQzMihlKX0sd3JpdGVGaXhlZDY0RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsb2wuRml4ZWQ2NCksdGhpcy53cml0ZUZpeGVkNjQoZSl9LHdyaXRlU0ZpeGVkNjRGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxvbC5GaXhlZDY0KSx0aGlzLndyaXRlU0ZpeGVkNjQoZSl9LHdyaXRlVmFyaW50RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsb2wuVmFyaW50KSx0aGlzLndyaXRlVmFyaW50KGUpfSx3cml0ZVNWYXJpbnRGaWVsZDpmdW5jdGlvbih0LGUpe3RoaXMud3JpdGVUYWcodCxvbC5WYXJpbnQpLHRoaXMud3JpdGVTVmFyaW50KGUpfSx3cml0ZVN0cmluZ0ZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG9sLkJ5dGVzKSx0aGlzLndyaXRlU3RyaW5nKGUpfSx3cml0ZUZsb2F0RmllbGQ6ZnVuY3Rpb24odCxlKXt0aGlzLndyaXRlVGFnKHQsb2wuRml4ZWQzMiksdGhpcy53cml0ZUZsb2F0KGUpfSx3cml0ZURvdWJsZUZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVRhZyh0LG9sLkZpeGVkNjQpLHRoaXMud3JpdGVEb3VibGUoZSl9LHdyaXRlQm9vbGVhbkZpZWxkOmZ1bmN0aW9uKHQsZSl7dGhpcy53cml0ZVZhcmludEZpZWxkKHQsQm9vbGVhbihlKSl9fTtmdW5jdGlvbiBUbCh0LGUscil7MT09PXQmJnIucmVhZE1lc3NhZ2Uoa2wsZSl9ZnVuY3Rpb24ga2wodCxlLHIpe2lmKDM9PT10KXt2YXIgbj1yLnJlYWRNZXNzYWdlKEFsLHt9KSxpPW4uaWQsYT1uLmJpdG1hcCxvPW4ud2lkdGgscz1uLmhlaWdodCxsPW4ubGVmdCxjPW4udG9wLHU9bi5hZHZhbmNlO2UucHVzaCh7aWQ6aSxiaXRtYXA6bmV3IFNvKHt3aWR0aDpvKzYsaGVpZ2h0OnMrNn0sYSksbWV0cmljczp7d2lkdGg6byxoZWlnaHQ6cyxsZWZ0OmwsdG9wOmMsYWR2YW5jZTp1fX0pfX1mdW5jdGlvbiBBbCh0LGUscil7MT09PXQ/ZS5pZD1yLnJlYWRWYXJpbnQoKToyPT09dD9lLmJpdG1hcD1yLnJlYWRCeXRlcygpOjM9PT10P2Uud2lkdGg9ci5yZWFkVmFyaW50KCk6ND09PXQ/ZS5oZWlnaHQ9ci5yZWFkVmFyaW50KCk6NT09PXQ/ZS5sZWZ0PXIucmVhZFNWYXJpbnQoKTo2PT09dD9lLnRvcD1yLnJlYWRTVmFyaW50KCk6Nz09PXQmJihlLmFkdmFuY2U9ci5yZWFkVmFyaW50KCkpfWZ1bmN0aW9uIE1sKHQpe2Zvcih2YXIgZT0wLHI9MCxuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtlKz1hLncqYS5oLHI9TWF0aC5tYXgocixhLncpfXQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5oLXQuaH0pKTtmb3IodmFyIG89W3t4OjAseTowLHc6TWF0aC5tYXgoTWF0aC5jZWlsKE1hdGguc3FydChlLy45NSkpLHIpLGg6MS8wfV0scz0wLGw9MCxjPTAsdT10O2M8dS5sZW5ndGg7Yys9MSlmb3IodmFyIGY9dVtjXSxoPW8ubGVuZ3RoLTE7aD49MDtoLS0pe3ZhciBwPW9baF07aWYoIShmLnc+cC53fHxmLmg+cC5oKSl7aWYoZi54PXAueCxmLnk9cC55LGw9TWF0aC5tYXgobCxmLnkrZi5oKSxzPU1hdGgubWF4KHMsZi54K2YudyksZi53PT09cC53JiZmLmg9PT1wLmgpe3ZhciBkPW8ucG9wKCk7aDxvLmxlbmd0aCYmKG9baF09ZCl9ZWxzZSBmLmg9PT1wLmg/KHAueCs9Zi53LHAudy09Zi53KTpmLnc9PT1wLnc/KHAueSs9Zi5oLHAuaC09Zi5oKTooby5wdXNoKHt4OnAueCtmLncseTpwLnksdzpwLnctZi53LGg6Zi5ofSkscC55Kz1mLmgscC5oLT1mLmgpO2JyZWFrfX1yZXR1cm57dzpzLGg6bCxmaWxsOmUvKHMqbCl8fDB9fXZhciBTbD1mdW5jdGlvbih0LGUpe3ZhciByPWUucGl4ZWxSYXRpbyxuPWUudmVyc2lvbixpPWUuc3RyZXRjaFgsYT1lLnN0cmV0Y2hZLG89ZS5jb250ZW50O3RoaXMucGFkZGVkUmVjdD10LHRoaXMucGl4ZWxSYXRpbz1yLHRoaXMuc3RyZXRjaFg9aSx0aGlzLnN0cmV0Y2hZPWEsdGhpcy5jb250ZW50PW8sdGhpcy52ZXJzaW9uPW59LEVsPXt0bDp7Y29uZmlndXJhYmxlOiEwfSxicjp7Y29uZmlndXJhYmxlOiEwfSx0bGJyOntjb25maWd1cmFibGU6ITB9LGRpc3BsYXlTaXplOntjb25maWd1cmFibGU6ITB9fTtFbC50bC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5wYWRkZWRSZWN0LngrMSx0aGlzLnBhZGRlZFJlY3QueSsxXX0sRWwuYnIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuW3RoaXMucGFkZGVkUmVjdC54K3RoaXMucGFkZGVkUmVjdC53LTEsdGhpcy5wYWRkZWRSZWN0LnkrdGhpcy5wYWRkZWRSZWN0LmgtMV19LEVsLnRsYnIuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGwuY29uY2F0KHRoaXMuYnIpfSxFbC5kaXNwbGF5U2l6ZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm5bKHRoaXMucGFkZGVkUmVjdC53LTIpL3RoaXMucGl4ZWxSYXRpbywodGhpcy5wYWRkZWRSZWN0LmgtMikvdGhpcy5waXhlbFJhdGlvXX0sT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoU2wucHJvdG90eXBlLEVsKTt2YXIgTGw9ZnVuY3Rpb24odCxlKXt2YXIgcj17fSxuPXt9O3RoaXMuaGF2ZVJlbmRlckNhbGxiYWNrcz1bXTt2YXIgaT1bXTt0aGlzLmFkZEltYWdlcyh0LHIsaSksdGhpcy5hZGRJbWFnZXMoZSxuLGkpO3ZhciBhPU1sKGkpLG89YS53LHM9YS5oLGw9bmV3IEVvKHt3aWR0aDpvfHwxLGhlaWdodDpzfHwxfSk7Zm9yKHZhciBjIGluIHQpe3ZhciB1PXRbY10sZj1yW2NdLnBhZGRlZFJlY3Q7RW8uY29weSh1LmRhdGEsbCx7eDowLHk6MH0se3g6Zi54KzEseTpmLnkrMX0sdS5kYXRhKX1mb3IodmFyIGggaW4gZSl7dmFyIHA9ZVtoXSxkPW5baF0ucGFkZGVkUmVjdCxtPWQueCsxLGc9ZC55KzEsdj1wLmRhdGEud2lkdGgseT1wLmRhdGEuaGVpZ2h0O0VvLmNvcHkocC5kYXRhLGwse3g6MCx5OjB9LHt4Om0seTpnfSxwLmRhdGEpLEVvLmNvcHkocC5kYXRhLGwse3g6MCx5OnktMX0se3g6bSx5OmctMX0se3dpZHRoOnYsaGVpZ2h0OjF9KSxFby5jb3B5KHAuZGF0YSxsLHt4OjAseTowfSx7eDptLHk6Zyt5fSx7d2lkdGg6dixoZWlnaHQ6MX0pLEVvLmNvcHkocC5kYXRhLGwse3g6di0xLHk6MH0se3g6bS0xLHk6Z30se3dpZHRoOjEsaGVpZ2h0Onl9KSxFby5jb3B5KHAuZGF0YSxsLHt4OjAseTowfSx7eDptK3YseTpnfSx7d2lkdGg6MSxoZWlnaHQ6eX0pfXRoaXMuaW1hZ2U9bCx0aGlzLmljb25Qb3NpdGlvbnM9cix0aGlzLnBhdHRlcm5Qb3NpdGlvbnM9bn07TGwucHJvdG90eXBlLmFkZEltYWdlcz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuIGluIHQpe3ZhciBpPXRbbl0sYT17eDowLHk6MCx3OmkuZGF0YS53aWR0aCsyLGg6aS5kYXRhLmhlaWdodCsyfTtyLnB1c2goYSksZVtuXT1uZXcgU2woYSxpKSxpLmhhc1JlbmRlckNhbGxiYWNrJiZ0aGlzLmhhdmVSZW5kZXJDYWxsYmFja3MucHVzaChuKX19LExsLnByb3RvdHlwZS5wYXRjaFVwZGF0ZWRJbWFnZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gdC5kaXNwYXRjaFJlbmRlckNhbGxiYWNrcyh0aGlzLmhhdmVSZW5kZXJDYWxsYmFja3MpLHQudXBkYXRlZEltYWdlcyl0aGlzLnBhdGNoVXBkYXRlZEltYWdlKHRoaXMuaWNvblBvc2l0aW9uc1tyXSx0LmdldEltYWdlKHIpLGUpLHRoaXMucGF0Y2hVcGRhdGVkSW1hZ2UodGhpcy5wYXR0ZXJuUG9zaXRpb25zW3JdLHQuZ2V0SW1hZ2UociksZSl9LExsLnByb3RvdHlwZS5wYXRjaFVwZGF0ZWRJbWFnZT1mdW5jdGlvbih0LGUscil7aWYodCYmZSYmdC52ZXJzaW9uIT09ZS52ZXJzaW9uKXt0LnZlcnNpb249ZS52ZXJzaW9uO3ZhciBuPXQudGwsaT1uWzBdLGE9blsxXTtyLnVwZGF0ZShlLmRhdGEsdm9pZCAwLHt4OmkseTphfSl9fSxObigiSW1hZ2VQb3NpdGlvbiIsU2wpLE5uKCJJbWFnZUF0bGFzIixMbCk7dmFyIENsPXtob3Jpem9udGFsOjEsdmVydGljYWw6Mixob3Jpem9udGFsT25seTozfTt2YXIgUGw9ZnVuY3Rpb24oKXt0aGlzLnNjYWxlPTEsdGhpcy5mb250U3RhY2s9IiIsdGhpcy5pbWFnZU5hbWU9bnVsbH07UGwuZm9yVGV4dD1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBQbDtyZXR1cm4gci5zY2FsZT10fHwxLHIuZm9udFN0YWNrPWUscn0sUGwuZm9ySW1hZ2U9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IFBsO3JldHVybiBlLmltYWdlTmFtZT10LGV9O3ZhciBJbD1mdW5jdGlvbigpe3RoaXMudGV4dD0iIix0aGlzLnNlY3Rpb25JbmRleD1bXSx0aGlzLnNlY3Rpb25zPVtdLHRoaXMuaW1hZ2VTZWN0aW9uSUQ9bnVsbH07ZnVuY3Rpb24gT2wodCxlLHIsbixpLGEsbyxzLGwsYyx1LGYsaCxwLGQsbSl7dmFyIGcsdj1JbC5mcm9tRmVhdHVyZSh0LGkpO2Y9PT1DbC52ZXJ0aWNhbCYmdi52ZXJ0aWNhbGl6ZVB1bmN0dWF0aW9uKCk7dmFyIHk9aGkucHJvY2Vzc0JpZGlyZWN0aW9uYWxUZXh0LHg9aGkucHJvY2Vzc1N0eWxlZEJpZGlyZWN0aW9uYWxUZXh0O2lmKHkmJjE9PT12LnNlY3Rpb25zLmxlbmd0aCl7Zz1bXTtmb3IodmFyIGI9MCxfPXkodi50b1N0cmluZygpLGpsKHYsYyxhLGUsbixwLGQpKTtiPF8ubGVuZ3RoO2IrPTEpe3ZhciB3PV9bYl0sVD1uZXcgSWw7VC50ZXh0PXcsVC5zZWN0aW9ucz12LnNlY3Rpb25zO2Zvcih2YXIgaz0wO2s8dy5sZW5ndGg7aysrKVQuc2VjdGlvbkluZGV4LnB1c2goMCk7Zy5wdXNoKFQpfX1lbHNlIGlmKHgpe2c9W107Zm9yKHZhciBBPTAsTT14KHYudGV4dCx2LnNlY3Rpb25JbmRleCxqbCh2LGMsYSxlLG4scCxkKSk7QTxNLmxlbmd0aDtBKz0xKXt2YXIgUz1NW0FdLEU9bmV3IElsO0UudGV4dD1TWzBdLEUuc2VjdGlvbkluZGV4PVNbMV0sRS5zZWN0aW9ucz12LnNlY3Rpb25zLGcucHVzaChFKX19ZWxzZSBnPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49dC50ZXh0LGk9MCxhPTAsbz1lO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXTtyLnB1c2godC5zdWJzdHJpbmcoaSxzKSksaT1zfXJldHVybiBpPG4ubGVuZ3RoJiZyLnB1c2godC5zdWJzdHJpbmcoaSxuLmxlbmd0aCkpLHJ9KHYsamwodixjLGEsZSxuLHAsZCkpO3ZhciBMPVtdLEM9e3Bvc2l0aW9uZWRMaW5lczpMLHRleHQ6di50b1N0cmluZygpLHRvcDp1WzFdLGJvdHRvbTp1WzFdLGxlZnQ6dVswXSxyaWdodDp1WzBdLHdyaXRpbmdNb2RlOmYsaWNvbnNJblRleHQ6ITEsdmVydGljYWxpemFibGU6ITF9O3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZil7Zm9yKHZhciBoPTAscD0tMTcsZD0wLG09MCxnPSJyaWdodCI9PT1zPzE6ImxlZnQiPT09cz8wOi41LHY9MCx5PTAseD1pO3k8eC5sZW5ndGg7eSs9MSl7dmFyIGI9eFt5XTtiLnRyaW0oKTt2YXIgXz1iLmdldE1heFNjYWxlKCksdz0yNCooXy0xKSxUPXtwb3NpdGlvbmVkR2x5cGhzOltdLGxpbmVPZmZzZXQ6MH07dC5wb3NpdGlvbmVkTGluZXNbdl09VDt2YXIgaz1ULnBvc2l0aW9uZWRHbHlwaHMsQT0wO2lmKGIubGVuZ3RoKCkpe2Zvcih2YXIgTT0wO008Yi5sZW5ndGgoKTtNKyspe3ZhciBTPWIuZ2V0U2VjdGlvbihNKSxFPWIuZ2V0U2VjdGlvbkluZGV4KE0pLEw9Yi5nZXRDaGFyQ29kZShNKSxDPTAsUD1udWxsLEk9bnVsbCxPPW51bGwsej0yNCxEPSEobD09PUNsLmhvcml6b250YWx8fCF1JiYhWm4oTCl8fHUmJih6bFtMXXx8KFk9TCxZbi5BcmFiaWMoWSl8fFluWyJBcmFiaWMgU3VwcGxlbWVudCJdKFkpfHxZblsiQXJhYmljIEV4dGVuZGVkLUEiXShZKXx8WW5bIkFyYWJpYyBQcmVzZW50YXRpb24gRm9ybXMtQSJdKFkpfHxZblsiQXJhYmljIFByZXNlbnRhdGlvbiBGb3Jtcy1CIl0oWSkpKSk7aWYoUy5pbWFnZU5hbWUpe3ZhciBSPW5bUy5pbWFnZU5hbWVdO2lmKCFSKWNvbnRpbnVlO089Uy5pbWFnZU5hbWUsdC5pY29uc0luVGV4dD10Lmljb25zSW5UZXh0fHwhMCxJPVIucGFkZGVkUmVjdDt2YXIgRj1SLmRpc3BsYXlTaXplO1Muc2NhbGU9MjQqUy5zY2FsZS9mLFA9e3dpZHRoOkZbMF0saGVpZ2h0OkZbMV0sbGVmdDoxLHRvcDotMyxhZHZhbmNlOkQ/RlsxXTpGWzBdfTt2YXIgQj0yNC1GWzFdKlMuc2NhbGU7Qz13K0Isej1QLmFkdmFuY2U7dmFyIE49RD9GWzBdKlMuc2NhbGUtMjQqXzpGWzFdKlMuc2NhbGUtMjQqXztOPjAmJk4+QSYmKEE9Til9ZWxzZXt2YXIgaj1yW1MuZm9udFN0YWNrXSxVPWomJmpbTF07aWYoVSYmVS5yZWN0KUk9VS5yZWN0LFA9VS5tZXRyaWNzO2Vsc2V7dmFyIFY9ZVtTLmZvbnRTdGFja10sSD1WJiZWW0xdO2lmKCFIKWNvbnRpbnVlO1A9SC5tZXRyaWNzfUM9MjQqKF8tUy5zY2FsZSl9RD8odC52ZXJ0aWNhbGl6YWJsZT0hMCxrLnB1c2goe2dseXBoOkwsaW1hZ2VOYW1lOk8seDpoLHk6cCtDLHZlcnRpY2FsOkQsc2NhbGU6Uy5zY2FsZSxmb250U3RhY2s6Uy5mb250U3RhY2ssc2VjdGlvbkluZGV4OkUsbWV0cmljczpQLHJlY3Q6SX0pLGgrPXoqUy5zY2FsZStjKTooay5wdXNoKHtnbHlwaDpMLGltYWdlTmFtZTpPLHg6aCx5OnArQyx2ZXJ0aWNhbDpELHNjYWxlOlMuc2NhbGUsZm9udFN0YWNrOlMuZm9udFN0YWNrLHNlY3Rpb25JbmRleDpFLG1ldHJpY3M6UCxyZWN0Okl9KSxoKz1QLmFkdmFuY2UqUy5zY2FsZStjKX1pZigwIT09ay5sZW5ndGgpe3ZhciBxPWgtYztkPU1hdGgubWF4KHEsZCksVmwoaywwLGsubGVuZ3RoLTEsZyxBKX1oPTA7dmFyIEc9YSpfK0E7VC5saW5lT2Zmc2V0PU1hdGgubWF4KEEsdykscCs9RyxtPU1hdGgubWF4KEcsbSksKyt2fWVsc2UgcCs9YSwrK3Z9dmFyIFk7dmFyIFc9cC0gLTE3LFg9VWwobyksWj1YLmhvcml6b250YWxBbGlnbixKPVgudmVydGljYWxBbGlnbjsoZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwpe3ZhciBjPShlLXIpKmksdT0wO3U9YSE9PW8/LXMqbi0gLTE3OigtbipsKy41KSpvO2Zvcih2YXIgZj0wLGg9dDtmPGgubGVuZ3RoO2YrPTEpZm9yKHZhciBwPWhbZl0sZD0wLG09cC5wb3NpdGlvbmVkR2x5cGhzO2Q8bS5sZW5ndGg7ZCs9MSl7dmFyIGc9bVtkXTtnLngrPWMsZy55Kz11fX0pKHQucG9zaXRpb25lZExpbmVzLGcsWixKLGQsbSxhLFcsaS5sZW5ndGgpLHQudG9wKz0tSipXLHQuYm90dG9tPXQudG9wK1csdC5sZWZ0Kz0tWipkLHQucmlnaHQ9dC5sZWZ0K2R9KEMsZSxyLG4sZyxvLHMsbCxmLGMsaCxtKSwhZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10O2U8ci5sZW5ndGg7ZSs9MSl7aWYoMCE9PXJbZV0ucG9zaXRpb25lZEdseXBocy5sZW5ndGgpcmV0dXJuITF9cmV0dXJuITB9KEwpJiZDfUlsLmZyb21GZWF0dXJlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBJbCxuPTA7bjx0LnNlY3Rpb25zLmxlbmd0aDtuKyspe3ZhciBpPXQuc2VjdGlvbnNbbl07aS5pbWFnZT9yLmFkZEltYWdlU2VjdGlvbihpKTpyLmFkZFRleHRTZWN0aW9uKGksZSl9cmV0dXJuIHJ9LElsLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0Lmxlbmd0aH0sSWwucHJvdG90eXBlLmdldFNlY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc2VjdGlvbnNbdGhpcy5zZWN0aW9uSW5kZXhbdF1dfSxJbC5wcm90b3R5cGUuZ2V0U2VjdGlvbkluZGV4PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNlY3Rpb25JbmRleFt0XX0sSWwucHJvdG90eXBlLmdldENoYXJDb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnRleHQuY2hhckNvZGVBdCh0KX0sSWwucHJvdG90eXBlLnZlcnRpY2FsaXplUHVuY3R1YXRpb249ZnVuY3Rpb24oKXt0aGlzLnRleHQ9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPSIiLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dC5jaGFyQ29kZUF0KHIrMSl8fG51bGwsaT10LmNoYXJDb2RlQXQoci0xKXx8bnVsbDsoIW58fCFKbihuKXx8cmxbdFtyKzFdXSkmJighaXx8IUpuKGkpfHxybFt0W3ItMV1dKSYmcmxbdFtyXV0/ZSs9cmxbdFtyXV06ZSs9dFtyXX1yZXR1cm4gZX0odGhpcy50ZXh0KX0sSWwucHJvdG90eXBlLnRyaW09ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPTA7ZTx0aGlzLnRleHQubGVuZ3RoJiZ6bFt0aGlzLnRleHQuY2hhckNvZGVBdChlKV07ZSsrKXQrKztmb3IodmFyIHI9dGhpcy50ZXh0Lmxlbmd0aCxuPXRoaXMudGV4dC5sZW5ndGgtMTtuPj0wJiZuPj10JiZ6bFt0aGlzLnRleHQuY2hhckNvZGVBdChuKV07bi0tKXItLTt0aGlzLnRleHQ9dGhpcy50ZXh0LnN1YnN0cmluZyh0LHIpLHRoaXMuc2VjdGlvbkluZGV4PXRoaXMuc2VjdGlvbkluZGV4LnNsaWNlKHQscil9LElsLnByb3RvdHlwZS5zdWJzdHJpbmc9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgSWw7cmV0dXJuIHIudGV4dD10aGlzLnRleHQuc3Vic3RyaW5nKHQsZSksci5zZWN0aW9uSW5kZXg9dGhpcy5zZWN0aW9uSW5kZXguc2xpY2UodCxlKSxyLnNlY3Rpb25zPXRoaXMuc2VjdGlvbnMscn0sSWwucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dH0sSWwucHJvdG90eXBlLmdldE1heFNjYWxlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyZXR1cm4gdGhpcy5zZWN0aW9uSW5kZXgucmVkdWNlKChmdW5jdGlvbihlLHIpe3JldHVybiBNYXRoLm1heChlLHQuc2VjdGlvbnNbcl0uc2NhbGUpfSksMCl9LElsLnByb3RvdHlwZS5hZGRUZXh0U2VjdGlvbj1mdW5jdGlvbih0LGUpe3RoaXMudGV4dCs9dC50ZXh0LHRoaXMuc2VjdGlvbnMucHVzaChQbC5mb3JUZXh0KHQuc2NhbGUsdC5mb250U3RhY2t8fGUpKTtmb3IodmFyIHI9dGhpcy5zZWN0aW9ucy5sZW5ndGgtMSxuPTA7bjx0LnRleHQubGVuZ3RoOysrbil0aGlzLnNlY3Rpb25JbmRleC5wdXNoKHIpfSxJbC5wcm90b3R5cGUuYWRkSW1hZ2VTZWN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXQuaW1hZ2U/dC5pbWFnZS5uYW1lOiIiO2lmKDAhPT1lLmxlbmd0aCl7dmFyIHI9dGhpcy5nZXROZXh0SW1hZ2VTZWN0aW9uQ2hhckNvZGUoKTtyPyh0aGlzLnRleHQrPVN0cmluZy5mcm9tQ2hhckNvZGUociksdGhpcy5zZWN0aW9ucy5wdXNoKFBsLmZvckltYWdlKGUpKSx0aGlzLnNlY3Rpb25JbmRleC5wdXNoKHRoaXMuc2VjdGlvbnMubGVuZ3RoLTEpKTpfKCJSZWFjaGVkIG1heGltdW0gbnVtYmVyIG9mIGltYWdlcyA2NDAxIil9ZWxzZSBfKCJDYW4ndCBhZGQgRm9ybWF0dGVkU2VjdGlvbiB3aXRoIGFuIGVtcHR5IGltYWdlLiIpfSxJbC5wcm90b3R5cGUuZ2V0TmV4dEltYWdlU2VjdGlvbkNoYXJDb2RlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuaW1hZ2VTZWN0aW9uSUQ/dGhpcy5pbWFnZVNlY3Rpb25JRD49NjM3NDM/bnVsbDorK3RoaXMuaW1hZ2VTZWN0aW9uSUQ6KHRoaXMuaW1hZ2VTZWN0aW9uSUQ9NTczNDQsdGhpcy5pbWFnZVNlY3Rpb25JRCl9O3ZhciB6bD17OTohMCwxMDohMCwxMTohMCwxMjohMCwxMzohMCwzMjohMH0sRGw9e307ZnVuY3Rpb24gUmwodCxlLHIsbixpLGEpe2lmKGUuaW1hZ2VOYW1lKXt2YXIgbz1uW2UuaW1hZ2VOYW1lXTtyZXR1cm4gbz9vLmRpc3BsYXlTaXplWzBdKmUuc2NhbGUqMjQvYStpOjB9dmFyIHM9cltlLmZvbnRTdGFja10sbD1zJiZzW3RdO3JldHVybiBsP2wubWV0cmljcy5hZHZhbmNlKmUuc2NhbGUraTowfWZ1bmN0aW9uIEZsKHQsZSxyLG4pe3ZhciBpPU1hdGgucG93KHQtZSwyKTtyZXR1cm4gbj90PGU/aS8yOjIqaTppK01hdGguYWJzKHIpKnJ9ZnVuY3Rpb24gQmwodCxlLHIpe3ZhciBuPTA7cmV0dXJuIDEwPT09dCYmKG4tPTFlNCksciYmKG4rPTE1MCksNDAhPT10JiY2NTI4OCE9PXR8fChuKz01MCksNDEhPT1lJiY2NTI4OSE9PWV8fChuKz01MCksbn1mdW5jdGlvbiBObCh0LGUscixuLGksYSl7Zm9yKHZhciBvPW51bGwscz1GbChlLHIsaSxhKSxsPTAsYz1uO2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXSxmPUZsKGUtdS54LHIsaSxhKSt1LmJhZG5lc3M7Zjw9cyYmKG89dSxzPWYpfXJldHVybntpbmRleDp0LHg6ZSxwcmlvckJyZWFrOm8sYmFkbmVzczpzfX1mdW5jdGlvbiBqbCh0LGUscixuLGksYSxvKXtpZigicG9pbnQiIT09YSlyZXR1cm5bXTtpZighdClyZXR1cm5bXTtmb3IodmFyIHMsbD1bXSxjPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtmb3IodmFyIG89MCxzPTA7czx0Lmxlbmd0aCgpO3MrKyl7dmFyIGw9dC5nZXRTZWN0aW9uKHMpO28rPVJsKHQuZ2V0Q2hhckNvZGUocyksbCxuLGksZSxhKX1yZXR1cm4gby9NYXRoLm1heCgxLE1hdGguY2VpbChvL3IpKX0odCxlLHIsbixpLG8pLHU9dC50ZXh0LmluZGV4T2YoIlx1MjAwYiIpPj0wLGY9MCxoPTA7aDx0Lmxlbmd0aCgpO2grKyl7dmFyIHA9dC5nZXRTZWN0aW9uKGgpLGQ9dC5nZXRDaGFyQ29kZShoKTtpZih6bFtkXXx8KGYrPVJsKGQscCxuLGksZSxvKSksaDx0Lmxlbmd0aCgpLTEpe3ZhciBtPSEhKCEoKHM9ZCk8MTE5MDQpJiYoWW5bIkJvcG9tb2ZvIEV4dGVuZGVkIl0ocyl8fFluLkJvcG9tb2ZvKHMpfHxZblsiQ0pLIENvbXBhdGliaWxpdHkgRm9ybXMiXShzKXx8WW5bIkNKSyBDb21wYXRpYmlsaXR5IElkZW9ncmFwaHMiXShzKXx8WW5bIkNKSyBDb21wYXRpYmlsaXR5Il0ocyl8fFluWyJDSksgUmFkaWNhbHMgU3VwcGxlbWVudCJdKHMpfHxZblsiQ0pLIFN0cm9rZXMiXShzKXx8WW5bIkNKSyBTeW1ib2xzIGFuZCBQdW5jdHVhdGlvbiJdKHMpfHxZblsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyBFeHRlbnNpb24gQSJdKHMpfHxZblsiQ0pLIFVuaWZpZWQgSWRlb2dyYXBocyJdKHMpfHxZblsiRW5jbG9zZWQgQ0pLIExldHRlcnMgYW5kIE1vbnRocyJdKHMpfHxZblsiSGFsZndpZHRoIGFuZCBGdWxsd2lkdGggRm9ybXMiXShzKXx8WW4uSGlyYWdhbmEocyl8fFluWyJJZGVvZ3JhcGhpYyBEZXNjcmlwdGlvbiBDaGFyYWN0ZXJzIl0ocyl8fFluWyJLYW5neGkgUmFkaWNhbHMiXShzKXx8WW5bIkthdGFrYW5hIFBob25ldGljIEV4dGVuc2lvbnMiXShzKXx8WW4uS2F0YWthbmEocyl8fFluWyJWZXJ0aWNhbCBGb3JtcyJdKHMpfHxZblsiWWkgUmFkaWNhbHMiXShzKXx8WW5bIllpIFN5bGxhYmxlcyJdKHMpKSk7KERsW2RdfHxtfHxwLmltYWdlTmFtZSkmJmwucHVzaChObChoKzEsZixjLGwsQmwoZCx0LmdldENoYXJDb2RlKGgrMSksbSYmdSksITEpKX19cmV0dXJuIGZ1bmN0aW9uIHQoZSl7cmV0dXJuIGU/dChlLnByaW9yQnJlYWspLmNvbmNhdChlLmluZGV4KTpbXX0oTmwodC5sZW5ndGgoKSxmLGMsbCwwLCEwKSl9ZnVuY3Rpb24gVWwodCl7dmFyIGU9LjUscj0uNTtzd2l0Y2godCl7Y2FzZSJyaWdodCI6Y2FzZSJ0b3AtcmlnaHQiOmNhc2UiYm90dG9tLXJpZ2h0IjplPTE7YnJlYWs7Y2FzZSJsZWZ0IjpjYXNlInRvcC1sZWZ0IjpjYXNlImJvdHRvbS1sZWZ0IjplPTB9c3dpdGNoKHQpe2Nhc2UiYm90dG9tIjpjYXNlImJvdHRvbS1yaWdodCI6Y2FzZSJib3R0b20tbGVmdCI6cj0xO2JyZWFrO2Nhc2UidG9wIjpjYXNlInRvcC1yaWdodCI6Y2FzZSJ0b3AtbGVmdCI6cj0wfXJldHVybntob3Jpem9udGFsQWxpZ246ZSx2ZXJ0aWNhbEFsaWduOnJ9fWZ1bmN0aW9uIFZsKHQsZSxyLG4saSl7aWYobnx8aSlmb3IodmFyIGE9dFtyXSxvPWEubWV0cmljcy5hZHZhbmNlKmEuc2NhbGUscz0odFtyXS54K28pKm4sbD1lO2w8PXI7bCsrKXRbbF0ueC09cyx0W2xdLnkrPWl9ZnVuY3Rpb24gSGwodCxlLHIsbixpLGEpe3ZhciBvLHM9dC5pbWFnZTtpZihzLmNvbnRlbnQpe3ZhciBsPXMuY29udGVudCxjPXMucGl4ZWxSYXRpb3x8MTtvPVtsWzBdL2MsbFsxXS9jLHMuZGlzcGxheVNpemVbMF0tbFsyXS9jLHMuZGlzcGxheVNpemVbMV0tbFszXS9jXX12YXIgdSxmLGgscCxkPWUubGVmdCphLG09ZS5yaWdodCphOyJ3aWR0aCI9PT1yfHwiYm90aCI9PT1yPyhwPWlbMF0rZC1uWzNdLGY9aVswXSttK25bMV0pOmY9KHA9aVswXSsoZCttLXMuZGlzcGxheVNpemVbMF0pLzIpK3MuZGlzcGxheVNpemVbMF07dmFyIGc9ZS50b3AqYSx2PWUuYm90dG9tKmE7cmV0dXJuImhlaWdodCI9PT1yfHwiYm90aCI9PT1yPyh1PWlbMV0rZy1uWzBdLGg9aVsxXSt2K25bMl0pOmg9KHU9aVsxXSsoZyt2LXMuZGlzcGxheVNpemVbMV0pLzIpK3MuZGlzcGxheVNpemVbMV0se2ltYWdlOnMsdG9wOnUscmlnaHQ6Zixib3R0b206aCxsZWZ0OnAsY29sbGlzaW9uUGFkZGluZzpvfX1EbFsxMF09ITAsRGxbMzJdPSEwLERsWzM4XT0hMCxEbFs0MF09ITAsRGxbNDFdPSEwLERsWzQzXT0hMCxEbFs0NV09ITAsRGxbNDddPSEwLERsWzE3M109ITAsRGxbMTgzXT0hMCxEbFs4MjAzXT0hMCxEbFs4MjA4XT0hMCxEbFs4MjExXT0hMCxEbFs4MjMxXT0hMDt2YXIgcWw9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIsbixpKXt0LmNhbGwodGhpcyxlLHIpLHRoaXMuYW5nbGU9bix2b2lkIDAhPT1pJiYodGhpcy5zZWdtZW50PWkpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbigpe3JldHVybiBuZXcgZSh0aGlzLngsdGhpcy55LHRoaXMuYW5nbGUsdGhpcy5zZWdtZW50KX0sZX0oaSk7Tm4oIkFuY2hvciIscWwpO2Z1bmN0aW9uIEdsKHQsZSl7dmFyIHI9ZS5leHByZXNzaW9uO2lmKCJjb25zdGFudCI9PT1yLmtpbmQpcmV0dXJue2tpbmQ6ImNvbnN0YW50IixsYXlvdXRTaXplOnIuZXZhbHVhdGUobmV3IHBpKHQrMSkpfTtpZigic291cmNlIj09PXIua2luZClyZXR1cm57a2luZDoic291cmNlIn07Zm9yKHZhciBuPXIuem9vbVN0b3BzLGk9ci5pbnRlcnBvbGF0aW9uVHlwZSxhPTA7YTxuLmxlbmd0aCYmblthXTw9dDspYSsrO2Zvcih2YXIgbz1hPU1hdGgubWF4KDAsYS0xKTtvPG4ubGVuZ3RoJiZuW29dPHQrMTspbysrO289TWF0aC5taW4obi5sZW5ndGgtMSxvKTt2YXIgcz1uW2FdLGw9bltvXTtyZXR1cm4iY29tcG9zaXRlIj09PXIua2luZD97a2luZDoiY29tcG9zaXRlIixtaW5ab29tOnMsbWF4Wm9vbTpsLGludGVycG9sYXRpb25UeXBlOml9OntraW5kOiJjYW1lcmEiLG1pblpvb206cyxtYXhab29tOmwsbWluU2l6ZTpyLmV2YWx1YXRlKG5ldyBwaShzKSksbWF4U2l6ZTpyLmV2YWx1YXRlKG5ldyBwaShsKSksaW50ZXJwb2xhdGlvblR5cGU6aX19ZnVuY3Rpb24gWWwodCxlLHIpe3ZhciBuPWUudVNpemUsaT1lLnVTaXplVCxhPXIubG93ZXJTaXplLG89ci51cHBlclNpemU7cmV0dXJuInNvdXJjZSI9PT10LmtpbmQ/YS8xMjg6ImNvbXBvc2l0ZSI9PT10LmtpbmQ/cWUoYS8xMjgsby8xMjgsaSk6bn1mdW5jdGlvbiBXbCh0LGUpe3ZhciByPTAsbj0wO2lmKCJjb25zdGFudCI9PT10LmtpbmQpbj10LmxheW91dFNpemU7ZWxzZSBpZigic291cmNlIiE9PXQua2luZCl7dmFyIGk9dC5pbnRlcnBvbGF0aW9uVHlwZSxhPXQubWluWm9vbSxvPXQubWF4Wm9vbSxzPWk/bChvci5pbnRlcnBvbGF0aW9uRmFjdG9yKGksZSxhLG8pLDAsMSk6MDsiY2FtZXJhIj09PXQua2luZD9uPXFlKHQubWluU2l6ZSx0Lm1heFNpemUscyk6cj1zfXJldHVybnt1U2l6ZVQ6cix1U2l6ZTpufX12YXIgWGw9T2JqZWN0LmZyZWV6ZSh7X19wcm90b19fOm51bGwsZ2V0U2l6ZURhdGE6R2wsZXZhbHVhdGVTaXplRm9yRmVhdHVyZTpZbCxldmFsdWF0ZVNpemVGb3Jab29tOldsLFNJWkVfUEFDS19GQUNUT1I6MTI4fSk7ZnVuY3Rpb24gWmwodCxlLHIsbixpKXtpZih2b2lkIDA9PT1lLnNlZ21lbnQpcmV0dXJuITA7Zm9yKHZhciBhPWUsbz1lLnNlZ21lbnQrMSxzPTA7cz4tci8yOyl7aWYoLS1vPDApcmV0dXJuITE7cy09dFtvXS5kaXN0KGEpLGE9dFtvXX1zKz10W29dLmRpc3QodFtvKzFdKSxvKys7Zm9yKHZhciBsPVtdLGM9MDtzPHIvMjspe3ZhciB1PXRbby0xXSxmPXRbb10saD10W28rMV07aWYoIWgpcmV0dXJuITE7dmFyIHA9dS5hbmdsZVRvKGYpLWYuYW5nbGVUbyhoKTtmb3IocD1NYXRoLmFicygocCszKk1hdGguUEkpJSgyKk1hdGguUEkpLU1hdGguUEkpLGwucHVzaCh7ZGlzdGFuY2U6cyxhbmdsZURlbHRhOnB9KSxjKz1wO3MtbFswXS5kaXN0YW5jZT5uOyljLT1sLnNoaWZ0KCkuYW5nbGVEZWx0YTtpZihjPmkpcmV0dXJuITE7bysrLHMrPWYuZGlzdChoKX1yZXR1cm4hMH1mdW5jdGlvbiBKbCh0KXtmb3IodmFyIGU9MCxyPTA7cjx0Lmxlbmd0aC0xO3IrKyllKz10W3JdLmRpc3QodFtyKzFdKTtyZXR1cm4gZX1mdW5jdGlvbiBLbCh0LGUscil7cmV0dXJuIHQ/LjYqZSpyOjB9ZnVuY3Rpb24gUWwodCxlKXtyZXR1cm4gTWF0aC5tYXgodD90LnJpZ2h0LXQubGVmdDowLGU/ZS5yaWdodC1lLmxlZnQ6MCl9ZnVuY3Rpb24gJGwodCxlLHIsbixpLGEpe2Zvcih2YXIgbz1LbChyLGksYSkscz1RbChyLG4pKmEsbD0wLGM9SmwodCkvMix1PTA7dTx0Lmxlbmd0aC0xO3UrKyl7dmFyIGY9dFt1XSxoPXRbdSsxXSxwPWYuZGlzdChoKTtpZihsK3A+Yyl7dmFyIGQ9KGMtbCkvcCxtPXFlKGYueCxoLngsZCksZz1xZShmLnksaC55LGQpLHY9bmV3IHFsKG0sZyxoLmFuZ2xlVG8oZiksdSk7cmV0dXJuIHYuX3JvdW5kKCksIW98fFpsKHQsdixzLG8sZSk/djp2b2lkIDB9bCs9cH19ZnVuY3Rpb24gdGModCxlLHIsbixpLGEsbyxzLGwpe3ZhciBjPUtsKG4sYSxvKSx1PVFsKG4saSksZj11Km8saD0wPT09dFswXS54fHx0WzBdLng9PT1sfHwwPT09dFswXS55fHx0WzBdLnk9PT1sO3JldHVybiBlLWY8ZS80JiYoZT1mK2UvNCksZnVuY3Rpb24gdChlLHIsbixpLGEsbyxzLGwsYyl7Zm9yKHZhciB1PW8vMixmPUpsKGUpLGg9MCxwPXItbixkPVtdLG09MDttPGUubGVuZ3RoLTE7bSsrKXtmb3IodmFyIGc9ZVttXSx2PWVbbSsxXSx5PWcuZGlzdCh2KSx4PXYuYW5nbGVUbyhnKTtwK248aCt5Oyl7dmFyIGI9KChwKz1uKS1oKS95LF89cWUoZy54LHYueCxiKSx3PXFlKGcueSx2LnksYik7aWYoXz49MCYmXzxjJiZ3Pj0wJiZ3PGMmJnAtdT49MCYmcCt1PD1mKXt2YXIgVD1uZXcgcWwoXyx3LHgsbSk7VC5fcm91bmQoKSxpJiYhWmwoZSxULG8saSxhKXx8ZC5wdXNoKFQpfX1oKz15fWx8fGQubGVuZ3RofHxzfHwoZD10KGUsaC8yLG4saSxhLG8scywhMCxjKSk7cmV0dXJuIGR9KHQsaD9lLzIqcyVlOih1LzIrMiphKSpvKnMlZSxlLGMscixmLGgsITEsbCl9ZnVuY3Rpb24gZWModCxlLHIsbixhKXtmb3IodmFyIG89W10scz0wO3M8dC5sZW5ndGg7cysrKWZvcih2YXIgbD10W3NdLGM9dm9pZCAwLHU9MDt1PGwubGVuZ3RoLTE7dSsrKXt2YXIgZj1sW3VdLGg9bFt1KzFdO2YueDxlJiZoLng8ZXx8KGYueDxlP2Y9bmV3IGkoZSxmLnkrKGgueS1mLnkpKigoZS1mLngpLyhoLngtZi54KSkpLl9yb3VuZCgpOmgueDxlJiYoaD1uZXcgaShlLGYueSsoaC55LWYueSkqKChlLWYueCkvKGgueC1mLngpKSkuX3JvdW5kKCkpLGYueTxyJiZoLnk8cnx8KGYueTxyP2Y9bmV3IGkoZi54KyhoLngtZi54KSooKHItZi55KS8oaC55LWYueSkpLHIpLl9yb3VuZCgpOmgueTxyJiYoaD1uZXcgaShmLngrKGgueC1mLngpKigoci1mLnkpLyhoLnktZi55KSkscikuX3JvdW5kKCkpLGYueD49biYmaC54Pj1ufHwoZi54Pj1uP2Y9bmV3IGkobixmLnkrKGgueS1mLnkpKigobi1mLngpLyhoLngtZi54KSkpLl9yb3VuZCgpOmgueD49biYmKGg9bmV3IGkobixmLnkrKGgueS1mLnkpKigobi1mLngpLyhoLngtZi54KSkpLl9yb3VuZCgpKSxmLnk+PWEmJmgueT49YXx8KGYueT49YT9mPW5ldyBpKGYueCsoaC54LWYueCkqKChhLWYueSkvKGgueS1mLnkpKSxhKS5fcm91bmQoKTpoLnk+PWEmJihoPW5ldyBpKGYueCsoaC54LWYueCkqKChhLWYueSkvKGgueS1mLnkpKSxhKS5fcm91bmQoKSksYyYmZi5lcXVhbHMoY1tjLmxlbmd0aC0xXSl8fChjPVtmXSxvLnB1c2goYykpLGMucHVzaChoKSkpKSl9cmV0dXJuIG99ZnVuY3Rpb24gcmModCxlLHIsbil7dmFyIGE9W10sbz10LmltYWdlLHM9by5waXhlbFJhdGlvLGw9by5wYWRkZWRSZWN0LnctMixjPW8ucGFkZGVkUmVjdC5oLTIsdT10LnJpZ2h0LXQubGVmdCxmPXQuYm90dG9tLXQudG9wLGg9by5zdHJldGNoWHx8W1swLGxdXSxwPW8uc3RyZXRjaFl8fFtbMCxjXV0sZD1mdW5jdGlvbih0LGUpe3JldHVybiB0K2VbMV0tZVswXX0sbT1oLnJlZHVjZShkLDApLGc9cC5yZWR1Y2UoZCwwKSx2PWwtbSx5PWMtZyx4PTAsYj1tLF89MCx3PWcsVD0wLGs9dixBPTAsTT15O2lmKG8uY29udGVudCYmbil7dmFyIFM9by5jb250ZW50O3g9bmMoaCwwLFNbMF0pLF89bmMocCwwLFNbMV0pLGI9bmMoaCxTWzBdLFNbMl0pLHc9bmMocCxTWzFdLFNbM10pLFQ9U1swXS14LEE9U1sxXS1fLGs9U1syXS1TWzBdLWIsTT1TWzNdLVNbMV0td312YXIgRT1mdW5jdGlvbihuLGEsbCxjKXt2YXIgaD1hYyhuLnN0cmV0Y2gteCxiLHUsdC5sZWZ0KSxwPW9jKG4uZml4ZWQtVCxrLG4uc3RyZXRjaCxtKSxkPWFjKGEuc3RyZXRjaC1fLHcsZix0LnRvcCksdj1vYyhhLmZpeGVkLUEsTSxhLnN0cmV0Y2gsZykseT1hYyhsLnN0cmV0Y2gteCxiLHUsdC5sZWZ0KSxTPW9jKGwuZml4ZWQtVCxrLGwuc3RyZXRjaCxtKSxFPWFjKGMuc3RyZXRjaC1fLHcsZix0LnRvcCksTD1vYyhjLmZpeGVkLUEsTSxjLnN0cmV0Y2gsZyksQz1uZXcgaShoLGQpLFA9bmV3IGkoeSxkKSxJPW5ldyBpKHksRSksTz1uZXcgaShoLEUpLHo9bmV3IGkocC9zLHYvcyksRD1uZXcgaShTL3MsTC9zKSxSPWUqTWF0aC5QSS8xODA7aWYoUil7dmFyIEY9TWF0aC5zaW4oUiksQj1NYXRoLmNvcyhSKSxOPVtCLC1GLEYsQl07Qy5fbWF0TXVsdChOKSxQLl9tYXRNdWx0KE4pLE8uX21hdE11bHQoTiksSS5fbWF0TXVsdChOKX12YXIgaj1uLnN0cmV0Y2grbi5maXhlZCxVPWwuc3RyZXRjaCtsLmZpeGVkLFY9YS5zdHJldGNoK2EuZml4ZWQsSD1jLnN0cmV0Y2grYy5maXhlZDtyZXR1cm57dGw6Qyx0cjpQLGJsOk8sYnI6SSx0ZXg6e3g6by5wYWRkZWRSZWN0LngrMStqLHk6by5wYWRkZWRSZWN0LnkrMStWLHc6VS1qLGg6SC1WfSx3cml0aW5nTW9kZTp2b2lkIDAsZ2x5cGhPZmZzZXQ6WzAsMF0sc2VjdGlvbkluZGV4OjAscGl4ZWxPZmZzZXRUTDp6LHBpeGVsT2Zmc2V0QlI6RCxtaW5Gb250U2NhbGVYOmsvcy91LG1pbkZvbnRTY2FsZVk6TS9zL2YsaXNTREY6cn19O2lmKG4mJihvLnN0cmV0Y2hYfHxvLnN0cmV0Y2hZKSlmb3IodmFyIEw9aWMoaCx2LG0pLEM9aWMocCx5LGcpLFA9MDtQPEwubGVuZ3RoLTE7UCsrKWZvcih2YXIgST1MW1BdLE89TFtQKzFdLHo9MDt6PEMubGVuZ3RoLTE7eisrKXt2YXIgRD1DW3pdLFI9Q1t6KzFdO2EucHVzaChFKEksRCxPLFIpKX1lbHNlIGEucHVzaChFKHtmaXhlZDowLHN0cmV0Y2g6LTF9LHtmaXhlZDowLHN0cmV0Y2g6LTF9LHtmaXhlZDowLHN0cmV0Y2g6bCsxfSx7Zml4ZWQ6MCxzdHJldGNoOmMrMX0pKTtyZXR1cm4gYX1mdW5jdGlvbiBuYyh0LGUscil7Zm9yKHZhciBuPTAsaT0wLGE9dDtpPGEubGVuZ3RoO2krPTEpe3ZhciBvPWFbaV07bis9TWF0aC5tYXgoZSxNYXRoLm1pbihyLG9bMV0pKS1NYXRoLm1heChlLE1hdGgubWluKHIsb1swXSkpfXJldHVybiBufWZ1bmN0aW9uIGljKHQsZSxyKXtmb3IodmFyIG49W3tmaXhlZDotMSxzdHJldGNoOjB9XSxpPTAsYT10O2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXSxzPW9bMF0sbD1vWzFdLGM9bltuLmxlbmd0aC0xXTtuLnB1c2goe2ZpeGVkOnMtYy5zdHJldGNoLHN0cmV0Y2g6Yy5zdHJldGNofSksbi5wdXNoKHtmaXhlZDpzLWMuc3RyZXRjaCxzdHJldGNoOmMuc3RyZXRjaCsobC1zKX0pfXJldHVybiBuLnB1c2goe2ZpeGVkOmUrMSxzdHJldGNoOnJ9KSxufWZ1bmN0aW9uIGFjKHQsZSxyLG4pe3JldHVybiB0L2UqcitufWZ1bmN0aW9uIG9jKHQsZSxyLG4pe3JldHVybiB0LWUqci9ufXZhciBzYz1mdW5jdGlvbih0LGUscixuLGEsbyxzLGwsYyx1KXtpZih0aGlzLmJveFN0YXJ0SW5kZXg9dC5sZW5ndGgsYyl7dmFyIGY9by50b3AsaD1vLmJvdHRvbSxwPW8uY29sbGlzaW9uUGFkZGluZztwJiYoZi09cFsxXSxoKz1wWzNdKTt2YXIgZD1oLWY7ZD4wJiYoZD1NYXRoLm1heCgxMCxkKSx0aGlzLmNpcmNsZURpYW1ldGVyPWQpfWVsc2V7dmFyIG09by50b3Aqcy1sLGc9by5ib3R0b20qcytsLHY9by5sZWZ0KnMtbCx5PW8ucmlnaHQqcytsLHg9by5jb2xsaXNpb25QYWRkaW5nO2lmKHgmJih2LT14WzBdKnMsbS09eFsxXSpzLHkrPXhbMl0qcyxnKz14WzNdKnMpLHUpe3ZhciBiPW5ldyBpKHYsbSksXz1uZXcgaSh5LG0pLHc9bmV3IGkodixnKSxUPW5ldyBpKHksZyksaz11Kk1hdGguUEkvMTgwO2IuX3JvdGF0ZShrKSxfLl9yb3RhdGUoayksdy5fcm90YXRlKGspLFQuX3JvdGF0ZShrKSx2PU1hdGgubWluKGIueCxfLngsdy54LFQueCkseT1NYXRoLm1heChiLngsXy54LHcueCxULngpLG09TWF0aC5taW4oYi55LF8ueSx3LnksVC55KSxnPU1hdGgubWF4KGIueSxfLnksdy55LFQueSl9dC5lbXBsYWNlQmFjayhlLngsZS55LHYsbSx5LGcscixuLGEpfXRoaXMuYm94RW5kSW5kZXg9dC5sZW5ndGh9LGxjPWZ1bmN0aW9uKHQsZSl7aWYodm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PWUmJihlPWNjKSx0aGlzLmRhdGE9dCx0aGlzLmxlbmd0aD10aGlzLmRhdGEubGVuZ3RoLHRoaXMuY29tcGFyZT1lLHRoaXMubGVuZ3RoPjApZm9yKHZhciByPSh0aGlzLmxlbmd0aD4+MSktMTtyPj0wO3ItLSl0aGlzLl9kb3duKHIpfTtmdW5jdGlvbiBjYyh0LGUpe3JldHVybiB0PGU/LTE6dD5lPzE6MH1mdW5jdGlvbiB1Yyh0LGUscil7dm9pZCAwPT09ZSYmKGU9MSksdm9pZCAwPT09ciYmKHI9ITEpO2Zvcih2YXIgbj0xLzAsYT0xLzAsbz0tMS8wLHM9LTEvMCxsPXRbMF0sYz0wO2M8bC5sZW5ndGg7YysrKXt2YXIgdT1sW2NdOyghY3x8dS54PG4pJiYobj11LngpLCghY3x8dS55PGEpJiYoYT11LnkpLCghY3x8dS54Pm8pJiYobz11LngpLCghY3x8dS55PnMpJiYocz11LnkpfXZhciBmPW8tbixoPXMtYSxwPU1hdGgubWluKGYsaCksZD1wLzIsbT1uZXcgbGMoW10sZmMpO2lmKDA9PT1wKXJldHVybiBuZXcgaShuLGEpO2Zvcih2YXIgZz1uO2c8bztnKz1wKWZvcih2YXIgdj1hO3Y8czt2Kz1wKW0ucHVzaChuZXcgaGMoZytkLHYrZCxkLHQpKTtmb3IodmFyIHk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj0wLG49MCxpPXRbMF0sYT0wLG89aS5sZW5ndGgscz1vLTE7YTxvO3M9YSsrKXt2YXIgbD1pW2FdLGM9aVtzXSx1PWwueCpjLnktYy54KmwueTtyKz0obC54K2MueCkqdSxuKz0obC55K2MueSkqdSxlKz0zKnV9cmV0dXJuIG5ldyBoYyhyL2Usbi9lLDAsdCl9KHQpLHg9bS5sZW5ndGg7bS5sZW5ndGg7KXt2YXIgYj1tLnBvcCgpOyhiLmQ+eS5kfHwheS5kKSYmKHk9YixyJiZjb25zb2xlLmxvZygiZm91bmQgYmVzdCAlZCBhZnRlciAlZCBwcm9iZXMiLE1hdGgucm91bmQoMWU0KmIuZCkvMWU0LHgpKSxiLm1heC15LmQ8PWV8fChkPWIuaC8yLG0ucHVzaChuZXcgaGMoYi5wLngtZCxiLnAueS1kLGQsdCkpLG0ucHVzaChuZXcgaGMoYi5wLngrZCxiLnAueS1kLGQsdCkpLG0ucHVzaChuZXcgaGMoYi5wLngtZCxiLnAueStkLGQsdCkpLG0ucHVzaChuZXcgaGMoYi5wLngrZCxiLnAueStkLGQsdCkpLHgrPTQpfXJldHVybiByJiYoY29uc29sZS5sb2coIm51bSBwcm9iZXM6ICIreCksY29uc29sZS5sb2coImJlc3QgZGlzdGFuY2U6ICIreS5kKSkseS5wfWZ1bmN0aW9uIGZjKHQsZSl7cmV0dXJuIGUubWF4LXQubWF4fWZ1bmN0aW9uIGhjKHQsZSxyLG4pe3RoaXMucD1uZXcgaSh0LGUpLHRoaXMuaD1yLHRoaXMuZD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0hMSxuPTEvMCxpPTA7aTxlLmxlbmd0aDtpKyspZm9yKHZhciBhPWVbaV0sbz0wLHM9YS5sZW5ndGgsbD1zLTE7bzxzO2w9bysrKXt2YXIgYz1hW29dLHU9YVtsXTtjLnk+dC55IT11Lnk+dC55JiZ0Lng8KHUueC1jLngpKih0LnktYy55KS8odS55LWMueSkrYy54JiYocj0hciksbj1NYXRoLm1pbihuLHJvKHQsYyx1KSl9cmV0dXJuKHI/MTotMSkqTWF0aC5zcXJ0KG4pfSh0aGlzLnAsbiksdGhpcy5tYXg9dGhpcy5kK3RoaXMuaCpNYXRoLlNRUlQyfWxjLnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQpe3RoaXMuZGF0YS5wdXNoKHQpLHRoaXMubGVuZ3RoKyssdGhpcy5fdXAodGhpcy5sZW5ndGgtMSl9LGxjLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXtpZigwIT09dGhpcy5sZW5ndGgpe3ZhciB0PXRoaXMuZGF0YVswXSxlPXRoaXMuZGF0YS5wb3AoKTtyZXR1cm4gdGhpcy5sZW5ndGgtLSx0aGlzLmxlbmd0aD4wJiYodGhpcy5kYXRhWzBdPWUsdGhpcy5fZG93bigwKSksdH19LGxjLnByb3RvdHlwZS5wZWVrPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGF0YVswXX0sbGMucHJvdG90eXBlLl91cD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcy5kYXRhLHI9dGhpcy5jb21wYXJlLG49ZVt0XTt0PjA7KXt2YXIgaT10LTE+PjEsYT1lW2ldO2lmKHIobixhKT49MClicmVhaztlW3RdPWEsdD1pfWVbdF09bn0sbGMucHJvdG90eXBlLl9kb3duPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmRhdGEscj10aGlzLmNvbXBhcmUsbj10aGlzLmxlbmd0aD4+MSxpPWVbdF07dDxuOyl7dmFyIGE9MSsodDw8MSksbz1lW2FdLHM9YSsxO2lmKHM8dGhpcy5sZW5ndGgmJnIoZVtzXSxvKTwwJiYoYT1zLG89ZVtzXSkscihvLGkpPj0wKWJyZWFrO2VbdF09byx0PWF9ZVt0XT1pfTt2YXIgcGM9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZO2Z1bmN0aW9uIGRjKHQsZSl7cmV0dXJuIGVbMV0hPT1wYz9mdW5jdGlvbih0LGUscil7dmFyIG49MCxpPTA7c3dpdGNoKGU9TWF0aC5hYnMoZSkscj1NYXRoLmFicyhyKSx0KXtjYXNlInRvcC1yaWdodCI6Y2FzZSJ0b3AtbGVmdCI6Y2FzZSJ0b3AiOmk9ci03O2JyZWFrO2Nhc2UiYm90dG9tLXJpZ2h0IjpjYXNlImJvdHRvbS1sZWZ0IjpjYXNlImJvdHRvbSI6aT03LXJ9c3dpdGNoKHQpe2Nhc2UidG9wLXJpZ2h0IjpjYXNlImJvdHRvbS1yaWdodCI6Y2FzZSJyaWdodCI6bj0tZTticmVhaztjYXNlInRvcC1sZWZ0IjpjYXNlImJvdHRvbS1sZWZ0IjpjYXNlImxlZnQiOm49ZX1yZXR1cm5bbixpXX0odCxlWzBdLGVbMV0pOmZ1bmN0aW9uKHQsZSl7dmFyIHI9MCxuPTA7ZTwwJiYoZT0wKTt2YXIgaT1lL01hdGguc3FydCgyKTtzd2l0Y2godCl7Y2FzZSJ0b3AtcmlnaHQiOmNhc2UidG9wLWxlZnQiOm49aS03O2JyZWFrO2Nhc2UiYm90dG9tLXJpZ2h0IjpjYXNlImJvdHRvbS1sZWZ0IjpuPTctaTticmVhaztjYXNlImJvdHRvbSI6bj03LWU7YnJlYWs7Y2FzZSJ0b3AiOm49ZS03fXN3aXRjaCh0KXtjYXNlInRvcC1yaWdodCI6Y2FzZSJib3R0b20tcmlnaHQiOnI9LWk7YnJlYWs7Y2FzZSJ0b3AtbGVmdCI6Y2FzZSJib3R0b20tbGVmdCI6cj1pO2JyZWFrO2Nhc2UibGVmdCI6cj1lO2JyZWFrO2Nhc2UicmlnaHQiOnI9LWV9cmV0dXJuW3Isbl19KHQsZVswXSl9ZnVuY3Rpb24gbWModCl7c3dpdGNoKHQpe2Nhc2UicmlnaHQiOmNhc2UidG9wLXJpZ2h0IjpjYXNlImJvdHRvbS1yaWdodCI6cmV0dXJuInJpZ2h0IjtjYXNlImxlZnQiOmNhc2UidG9wLWxlZnQiOmNhc2UiYm90dG9tLWxlZnQiOnJldHVybiJsZWZ0In1yZXR1cm4iY2VudGVyIn1mdW5jdGlvbiBnYyh0LGUscixuLGEsbyxzLGwsYyx1LGYsaCxwLGQsbSl7dmFyIGc9ZnVuY3Rpb24odCxlLHIsbixhLG8scyxsKXtmb3IodmFyIGM9bi5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0ZSIpLmV2YWx1YXRlKG8se30pKk1hdGguUEkvMTgwLHU9W10sZj0wLGg9ZS5wb3NpdGlvbmVkTGluZXM7ZjxoLmxlbmd0aDtmKz0xKWZvcih2YXIgcD1oW2ZdLGQ9MCxtPXAucG9zaXRpb25lZEdseXBocztkPG0ubGVuZ3RoO2QrPTEpe3ZhciBnPW1bZF07aWYoZy5yZWN0KXt2YXIgdj1nLnJlY3R8fHt9LHk9NCx4PSEwLGI9MSxfPTAsdz0oYXx8bCkmJmcudmVydGljYWwsVD1nLm1ldHJpY3MuYWR2YW5jZSpnLnNjYWxlLzI7aWYobCYmZS52ZXJ0aWNhbGl6YWJsZSl7dmFyIGs9MjQqKGcuc2NhbGUtMSksQT0oMjQtZy5tZXRyaWNzLndpZHRoKmcuc2NhbGUpLzI7Xz1wLmxpbmVPZmZzZXQvMi0oZy5pbWFnZU5hbWU/LUE6ayl9aWYoZy5pbWFnZU5hbWUpe3ZhciBNPXNbZy5pbWFnZU5hbWVdO3g9TS5zZGYseT0xLyhiPU0ucGl4ZWxSYXRpbyl9dmFyIFM9YT9bZy54K1QsZy55XTpbMCwwXSxFPWE/WzAsMF06W2cueCtUK3JbMF0sZy55K3JbMV0tX10sTD1bMCwwXTt3JiYoTD1FLEU9WzAsMF0pO3ZhciBDPShnLm1ldHJpY3MubGVmdC15KSpnLnNjYWxlLVQrRVswXSxQPSgtZy5tZXRyaWNzLnRvcC15KSpnLnNjYWxlK0VbMV0sST1DK3YudypnLnNjYWxlL2IsTz1QK3YuaCpnLnNjYWxlL2Isej1uZXcgaShDLFApLEQ9bmV3IGkoSSxQKSxSPW5ldyBpKEMsTyksRj1uZXcgaShJLE8pO2lmKHcpe3ZhciBCPW5ldyBpKC1ULFQtIC0xNyksTj0tTWF0aC5QSS8yLGo9MTItVCxVPWcuaW1hZ2VOYW1lP2o6MCxWPW5ldyBpKDIyLWosLVUpLEg9bmV3KEZ1bmN0aW9uLnByb3RvdHlwZS5iaW5kLmFwcGx5KGksW251bGxdLmNvbmNhdChMKSkpO3ouX3JvdGF0ZUFyb3VuZChOLEIpLl9hZGQoVikuX2FkZChIKSxELl9yb3RhdGVBcm91bmQoTixCKS5fYWRkKFYpLl9hZGQoSCksUi5fcm90YXRlQXJvdW5kKE4sQikuX2FkZChWKS5fYWRkKEgpLEYuX3JvdGF0ZUFyb3VuZChOLEIpLl9hZGQoVikuX2FkZChIKX1pZihjKXt2YXIgcT1NYXRoLnNpbihjKSxHPU1hdGguY29zKGMpLFk9W0csLXEscSxHXTt6Ll9tYXRNdWx0KFkpLEQuX21hdE11bHQoWSksUi5fbWF0TXVsdChZKSxGLl9tYXRNdWx0KFkpfXZhciBXPW5ldyBpKDAsMCksWD1uZXcgaSgwLDApO3UucHVzaCh7dGw6eix0cjpELGJsOlIsYnI6Rix0ZXg6dix3cml0aW5nTW9kZTplLndyaXRpbmdNb2RlLGdseXBoT2Zmc2V0OlMsc2VjdGlvbkluZGV4Omcuc2VjdGlvbkluZGV4LGlzU0RGOngscGl4ZWxPZmZzZXRUTDpXLHBpeGVsT2Zmc2V0QlI6WCxtaW5Gb250U2NhbGVYOjAsbWluRm9udFNjYWxlWTowfSl9fXJldHVybiB1fSgwLHIsbCxhLG8scyxuLHQuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCksdj10LnRleHRTaXplRGF0YSx5PW51bGw7InNvdXJjZSI9PT12LmtpbmQ/KHk9WzEyOCphLmxheW91dC5nZXQoInRleHQtc2l6ZSIpLmV2YWx1YXRlKHMse30pXSlbMF0+MzI2NDAmJl8odC5sYXllcklkc1swXSsnOiBWYWx1ZSBmb3IgInRleHQtc2l6ZSIgaXMgPj0gMjU1LiBSZWR1Y2UgeW91ciAidGV4dC1zaXplIi4nKToiY29tcG9zaXRlIj09PXYua2luZCYmKCh5PVsxMjgqZC5jb21wb3NpdGVUZXh0U2l6ZXNbMF0uZXZhbHVhdGUocyx7fSxtKSwxMjgqZC5jb21wb3NpdGVUZXh0U2l6ZXNbMV0uZXZhbHVhdGUocyx7fSxtKV0pWzBdPjMyNjQwfHx5WzFdPjMyNjQwKSYmXyh0LmxheWVySWRzWzBdKyc6IFZhbHVlIGZvciAidGV4dC1zaXplIiBpcyA+PSAyNTUuIFJlZHVjZSB5b3VyICJ0ZXh0LXNpemUiLicpLHQuYWRkU3ltYm9scyh0LnRleHQsZyx5LGwsbyxzLHUsZSxjLmxpbmVTdGFydEluZGV4LGMubGluZUxlbmd0aCxwLG0pO2Zvcih2YXIgeD0wLGI9Zjt4PGIubGVuZ3RoO3grPTEpe2hbYlt4XV09dC50ZXh0LnBsYWNlZFN5bWJvbEFycmF5Lmxlbmd0aC0xfXJldHVybiA0KmcubGVuZ3RofWZ1bmN0aW9uIHZjKHQpe2Zvcih2YXIgZSBpbiB0KXJldHVybiB0W2VdO3JldHVybiBudWxsfWZ1bmN0aW9uIHljKHQsZSxyLG4pe3ZhciBpPXQuY29tcGFyZVRleHQ7aWYoZSBpbiBpKXtmb3IodmFyIGE9aVtlXSxvPWEubGVuZ3RoLTE7bz49MDtvLS0paWYobi5kaXN0KGFbb10pPHIpcmV0dXJuITB9ZWxzZSBpW2VdPVtdO3JldHVybiBpW2VdLnB1c2gobiksITF9dmFyIHhjPUxzLlZlY3RvclRpbGVGZWF0dXJlLnR5cGVzLGJjPVt7bmFtZToiYV9mYWRlX29wYWNpdHkiLGNvbXBvbmVudHM6MSx0eXBlOiJVaW50OCIsb2Zmc2V0OjB9XTtmdW5jdGlvbiBfYyh0LGUscixuLGksYSxvLHMsbCxjLHUsZixoKXt2YXIgcD1zP01hdGgubWluKDMyNjQwLE1hdGgucm91bmQoc1swXSkpOjAsZD1zP01hdGgubWluKDMyNjQwLE1hdGgucm91bmQoc1sxXSkpOjA7dC5lbXBsYWNlQmFjayhlLHIsTWF0aC5yb3VuZCgzMipuKSxNYXRoLnJvdW5kKDMyKmkpLGEsbywocDw8MSkrKGw/MTowKSxkLDE2KmMsMTYqdSwyNTYqZiwyNTYqaCl9ZnVuY3Rpb24gd2ModCxlLHIpe3QuZW1wbGFjZUJhY2soZS54LGUueSxyKSx0LmVtcGxhY2VCYWNrKGUueCxlLnksciksdC5lbXBsYWNlQmFjayhlLngsZS55LHIpLHQuZW1wbGFjZUJhY2soZS54LGUueSxyKX1mdW5jdGlvbiBUYyh0KXtmb3IodmFyIGU9MCxyPXQuc2VjdGlvbnM7ZTxyLmxlbmd0aDtlKz0xKXtpZigkbihyW2VdLnRleHQpKXJldHVybiEwfXJldHVybiExfXZhciBrYz1mdW5jdGlvbih0KXt0aGlzLmxheW91dFZlcnRleEFycmF5PW5ldyBOaSx0aGlzLmluZGV4QXJyYXk9bmV3IFlpLHRoaXMucHJvZ3JhbUNvbmZpZ3VyYXRpb25zPXQsdGhpcy5zZWdtZW50cz1uZXcgcGEsdGhpcy5keW5hbWljTGF5b3V0VmVydGV4QXJyYXk9bmV3IGppLHRoaXMub3BhY2l0eVZlcnRleEFycmF5PW5ldyBVaSx0aGlzLnBsYWNlZFN5bWJvbEFycmF5PW5ldyBhYX07a2MucHJvdG90eXBlLmlzRW1wdHk9ZnVuY3Rpb24oKXtyZXR1cm4gMD09PXRoaXMubGF5b3V0VmVydGV4QXJyYXkubGVuZ3RoJiYwPT09dGhpcy5pbmRleEFycmF5Lmxlbmd0aCYmMD09PXRoaXMuZHluYW1pY0xheW91dFZlcnRleEFycmF5Lmxlbmd0aCYmMD09PXRoaXMub3BhY2l0eVZlcnRleEFycmF5Lmxlbmd0aH0sa2MucHJvdG90eXBlLnVwbG9hZD1mdW5jdGlvbih0LGUscixuKXt0aGlzLmlzRW1wdHkoKXx8KHImJih0aGlzLmxheW91dFZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmxheW91dFZlcnRleEFycmF5LEpzLm1lbWJlcnMpLHRoaXMuaW5kZXhCdWZmZXI9dC5jcmVhdGVJbmRleEJ1ZmZlcih0aGlzLmluZGV4QXJyYXksZSksdGhpcy5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyPXQuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuZHluYW1pY0xheW91dFZlcnRleEFycmF5LEtzLm1lbWJlcnMsITApLHRoaXMub3BhY2l0eVZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLm9wYWNpdHlWZXJ0ZXhBcnJheSxiYywhMCksdGhpcy5vcGFjaXR5VmVydGV4QnVmZmVyLml0ZW1TaXplPTEpLChyfHxuKSYmdGhpcy5wcm9ncmFtQ29uZmlndXJhdGlvbnMudXBsb2FkKHQpKX0sa2MucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmxheW91dFZlcnRleEJ1ZmZlciYmKHRoaXMubGF5b3V0VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLmluZGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLnByb2dyYW1Db25maWd1cmF0aW9ucy5kZXN0cm95KCksdGhpcy5zZWdtZW50cy5kZXN0cm95KCksdGhpcy5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyLmRlc3Ryb3koKSx0aGlzLm9wYWNpdHlWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpKX0sTm4oIlN5bWJvbEJ1ZmZlcnMiLGtjKTt2YXIgQWM9ZnVuY3Rpb24odCxlLHIpe3RoaXMubGF5b3V0VmVydGV4QXJyYXk9bmV3IHQsdGhpcy5sYXlvdXRBdHRyaWJ1dGVzPWUsdGhpcy5pbmRleEFycmF5PW5ldyByLHRoaXMuc2VnbWVudHM9bmV3IHBhLHRoaXMuY29sbGlzaW9uVmVydGV4QXJyYXk9bmV3IEdpfTtBYy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyPXQuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMubGF5b3V0VmVydGV4QXJyYXksdGhpcy5sYXlvdXRBdHRyaWJ1dGVzKSx0aGlzLmluZGV4QnVmZmVyPXQuY3JlYXRlSW5kZXhCdWZmZXIodGhpcy5pbmRleEFycmF5KSx0aGlzLmNvbGxpc2lvblZlcnRleEJ1ZmZlcj10LmNyZWF0ZVZlcnRleEJ1ZmZlcih0aGlzLmNvbGxpc2lvblZlcnRleEFycmF5LFFzLm1lbWJlcnMsITApfSxBYy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMubGF5b3V0VmVydGV4QnVmZmVyJiYodGhpcy5sYXlvdXRWZXJ0ZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuaW5kZXhCdWZmZXIuZGVzdHJveSgpLHRoaXMuc2VnbWVudHMuZGVzdHJveSgpLHRoaXMuY29sbGlzaW9uVmVydGV4QnVmZmVyLmRlc3Ryb3koKSl9LE5uKCJDb2xsaXNpb25CdWZmZXJzIixBYyk7dmFyIE1jPWZ1bmN0aW9uKHQpe3RoaXMuY29sbGlzaW9uQm94QXJyYXk9dC5jb2xsaXNpb25Cb3hBcnJheSx0aGlzLnpvb209dC56b29tLHRoaXMub3ZlcnNjYWxpbmc9dC5vdmVyc2NhbGluZyx0aGlzLmxheWVycz10LmxheWVycyx0aGlzLmxheWVySWRzPXRoaXMubGF5ZXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSksdGhpcy5pbmRleD10LmluZGV4LHRoaXMucGl4ZWxSYXRpbz10LnBpeGVsUmF0aW8sdGhpcy5zb3VyY2VMYXllckluZGV4PXQuc291cmNlTGF5ZXJJbmRleCx0aGlzLmhhc1BhdHRlcm49ITEsdGhpcy5oYXNSVExUZXh0PSExLHRoaXMuc29ydEtleVJhbmdlcz1bXSx0aGlzLmNvbGxpc2lvbkNpcmNsZUFycmF5PVtdLHRoaXMucGxhY2VtZW50SW52UHJvak1hdHJpeD1obyhbXSksdGhpcy5wbGFjZW1lbnRWaWV3cG9ydE1hdHJpeD1obyhbXSk7dmFyIGU9dGhpcy5sYXllcnNbMF0uX3VuZXZhbHVhdGVkTGF5b3V0Ll92YWx1ZXM7dGhpcy50ZXh0U2l6ZURhdGE9R2wodGhpcy56b29tLGVbInRleHQtc2l6ZSJdKSx0aGlzLmljb25TaXplRGF0YT1HbCh0aGlzLnpvb20sZVsiaWNvbi1zaXplIl0pO3ZhciByPXRoaXMubGF5ZXJzWzBdLmxheW91dCxuPXIuZ2V0KCJzeW1ib2wtc29ydC1rZXkiKSxpPXIuZ2V0KCJzeW1ib2wtei1vcmRlciIpO3RoaXMuc29ydEZlYXR1cmVzQnlLZXk9InZpZXdwb3J0LXkiIT09aSYmdm9pZCAwIT09bi5jb25zdGFudE9yKDEpO3ZhciBhPSJ2aWV3cG9ydC15Ij09PWl8fCJhdXRvIj09PWkmJiF0aGlzLnNvcnRGZWF0dXJlc0J5S2V5O3RoaXMuc29ydEZlYXR1cmVzQnlZPWEmJihyLmdldCgidGV4dC1hbGxvdy1vdmVybGFwIil8fHIuZ2V0KCJpY29uLWFsbG93LW92ZXJsYXAiKXx8ci5nZXQoInRleHQtaWdub3JlLXBsYWNlbWVudCIpfHxyLmdldCgiaWNvbi1pZ25vcmUtcGxhY2VtZW50IikpLCJwb2ludCI9PT1yLmdldCgic3ltYm9sLXBsYWNlbWVudCIpJiYodGhpcy53cml0aW5nTW9kZXM9ci5nZXQoInRleHQtd3JpdGluZy1tb2RlIikubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gQ2xbdF19KSkpLHRoaXMuc3RhdGVEZXBlbmRlbnRMYXllcklkcz10aGlzLmxheWVycy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlzU3RhdGVEZXBlbmRlbnQoKX0pKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpLHRoaXMuc291cmNlSUQ9dC5zb3VyY2VJRH07TWMucHJvdG90eXBlLmNyZWF0ZUFycmF5cz1mdW5jdGlvbigpe3RoaXMudGV4dD1uZXcga2MobmV3IFVhKEpzLm1lbWJlcnMsdGhpcy5sYXllcnMsdGhpcy56b29tLChmdW5jdGlvbih0KXtyZXR1cm4vXnRleHQvLnRlc3QodCl9KSkpLHRoaXMuaWNvbj1uZXcga2MobmV3IFVhKEpzLm1lbWJlcnMsdGhpcy5sYXllcnMsdGhpcy56b29tLChmdW5jdGlvbih0KXtyZXR1cm4vXmljb24vLnRlc3QodCl9KSkpLHRoaXMuZ2x5cGhPZmZzZXRBcnJheT1uZXcgbGEsdGhpcy5saW5lVmVydGV4QXJyYXk9bmV3IGNhLHRoaXMuc3ltYm9sSW5zdGFuY2VzPW5ldyBzYX0sTWMucHJvdG90eXBlLmNhbGN1bGF0ZUdseXBoRGVwZW5kZW5jaWVzPWZ1bmN0aW9uKHQsZSxyLG4saSl7Zm9yKHZhciBhPTA7YTx0Lmxlbmd0aDthKyspaWYoZVt0LmNoYXJDb2RlQXQoYSldPSEwLChyfHxuKSYmaSl7dmFyIG89cmxbdC5jaGFyQXQoYSldO28mJihlW28uY2hhckNvZGVBdCgwKV09ITApfX0sTWMucHJvdG90eXBlLnBvcHVsYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmxheWVyc1swXSxpPW4ubGF5b3V0LGE9aS5nZXQoInRleHQtZm9udCIpLG89aS5nZXQoInRleHQtZmllbGQiKSxzPWkuZ2V0KCJpY29uLWltYWdlIiksbD0oImNvbnN0YW50IiE9PW8udmFsdWUua2luZHx8by52YWx1ZS52YWx1ZSBpbnN0YW5jZW9mIG5lJiYhby52YWx1ZS52YWx1ZS5pc0VtcHR5KCl8fG8udmFsdWUudmFsdWUudG9TdHJpbmcoKS5sZW5ndGg+MCkmJigiY29uc3RhbnQiIT09YS52YWx1ZS5raW5kfHxhLnZhbHVlLnZhbHVlLmxlbmd0aD4wKSxjPSJjb25zdGFudCIhPT1zLnZhbHVlLmtpbmR8fCEhcy52YWx1ZS52YWx1ZXx8T2JqZWN0LmtleXMocy5wYXJhbWV0ZXJzKS5sZW5ndGg+MCx1PWkuZ2V0KCJzeW1ib2wtc29ydC1rZXkiKTtpZih0aGlzLmZlYXR1cmVzPVtdLGx8fGMpe2Zvcih2YXIgZj1lLmljb25EZXBlbmRlbmNpZXMsaD1lLmdseXBoRGVwZW5kZW5jaWVzLHA9ZS5hdmFpbGFibGVJbWFnZXMsZD1uZXcgcGkodGhpcy56b29tKSxtPTAsZz10O208Zy5sZW5ndGg7bSs9MSl7dmFyIHY9Z1ttXSx5PXYuZmVhdHVyZSx4PXYuaWQsYj12LmluZGV4LF89di5zb3VyY2VMYXllckluZGV4LHc9bi5fZmVhdHVyZUZpbHRlci5uZWVkR2VvbWV0cnksVD17dHlwZTp5LnR5cGUsaWQ6eCxwcm9wZXJ0aWVzOnkucHJvcGVydGllcyxnZW9tZXRyeTp3P1lhKHkpOltdfTtpZihuLl9mZWF0dXJlRmlsdGVyLmZpbHRlcihkLFQscikpe3d8fChULmdlb21ldHJ5PVlhKHkpKTt2YXIgaz12b2lkIDA7aWYobCl7dmFyIEE9bi5nZXRWYWx1ZUFuZFJlc29sdmVUb2tlbnMoInRleHQtZmllbGQiLFQscixwKSxNPW5lLmZhY3RvcnkoQSk7VGMoTSkmJih0aGlzLmhhc1JUTFRleHQ9ITApLCghdGhpcy5oYXNSVExUZXh0fHwidW5hdmFpbGFibGUiPT09dWkoKXx8dGhpcy5oYXNSVExUZXh0JiZoaS5pc1BhcnNlZCgpKSYmKGs9ZWwoTSxuLFQpKX12YXIgUz12b2lkIDA7aWYoYyl7dmFyIEU9bi5nZXRWYWx1ZUFuZFJlc29sdmVUb2tlbnMoImljb24taW1hZ2UiLFQscixwKTtTPUUgaW5zdGFuY2VvZiBpZT9FOmllLmZyb21TdHJpbmcoRSl9aWYoa3x8Uyl7dmFyIEw9dGhpcy5zb3J0RmVhdHVyZXNCeUtleT91LmV2YWx1YXRlKFQse30scik6dm9pZCAwLEM9e2lkOngsdGV4dDprLGljb246UyxpbmRleDpiLHNvdXJjZUxheWVySW5kZXg6XyxnZW9tZXRyeTpZYSh5KSxwcm9wZXJ0aWVzOnkucHJvcGVydGllcyx0eXBlOnhjW3kudHlwZV0sc29ydEtleTpMfTtpZih0aGlzLmZlYXR1cmVzLnB1c2goQyksUyYmKGZbUy5uYW1lXT0hMCksayl7dmFyIFA9YS5ldmFsdWF0ZShULHt9LHIpLmpvaW4oIiwiKSxJPSJtYXAiPT09aS5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IikmJiJwb2ludCIhPT1pLmdldCgic3ltYm9sLXBsYWNlbWVudCIpO3RoaXMuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudD10aGlzLndyaXRpbmdNb2RlcyYmdGhpcy53cml0aW5nTW9kZXMuaW5kZXhPZihDbC52ZXJ0aWNhbCk+PTA7Zm9yKHZhciBPPTAsej1rLnNlY3Rpb25zO088ei5sZW5ndGg7Tys9MSl7dmFyIEQ9eltPXTtpZihELmltYWdlKWZbRC5pbWFnZS5uYW1lXT0hMDtlbHNle3ZhciBSPVduKGsudG9TdHJpbmcoKSksRj1ELmZvbnRTdGFja3x8UCxCPWhbRl09aFtGXXx8e307dGhpcy5jYWxjdWxhdGVHbHlwaERlcGVuZGVuY2llcyhELnRleHQsQixJLHRoaXMuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCxSKX19fX19fSJsaW5lIj09PWkuZ2V0KCJzeW1ib2wtcGxhY2VtZW50IikmJih0aGlzLmZlYXR1cmVzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LHI9e30sbj1bXSxpPTA7ZnVuY3Rpb24gYShlKXtuLnB1c2godFtlXSksaSsrfWZ1bmN0aW9uIG8odCxlLGkpe3ZhciBhPXJbdF07cmV0dXJuIGRlbGV0ZSByW3RdLHJbZV09YSxuW2FdLmdlb21ldHJ5WzBdLnBvcCgpLG5bYV0uZ2VvbWV0cnlbMF09blthXS5nZW9tZXRyeVswXS5jb25jYXQoaVswXSksYX1mdW5jdGlvbiBzKHQscixpKXt2YXIgYT1lW3JdO3JldHVybiBkZWxldGUgZVtyXSxlW3RdPWEsblthXS5nZW9tZXRyeVswXS5zaGlmdCgpLG5bYV0uZ2VvbWV0cnlbMF09aVswXS5jb25jYXQoblthXS5nZW9tZXRyeVswXSksYX1mdW5jdGlvbiBsKHQsZSxyKXt2YXIgbj1yP2VbMF1bZVswXS5sZW5ndGgtMV06ZVswXVswXTtyZXR1cm4gdCsiOiIrbi54KyI6IituLnl9Zm9yKHZhciBjPTA7Yzx0Lmxlbmd0aDtjKyspe3ZhciB1PXRbY10sZj11Lmdlb21ldHJ5LGg9dS50ZXh0P3UudGV4dC50b1N0cmluZygpOm51bGw7aWYoaCl7dmFyIHA9bChoLGYpLGQ9bChoLGYsITApO2lmKHAgaW4gciYmZCBpbiBlJiZyW3BdIT09ZVtkXSl7dmFyIG09cyhwLGQsZiksZz1vKHAsZCxuW21dLmdlb21ldHJ5KTtkZWxldGUgZVtwXSxkZWxldGUgcltkXSxyW2woaCxuW2ddLmdlb21ldHJ5LCEwKV09ZyxuW21dLmdlb21ldHJ5PW51bGx9ZWxzZSBwIGluIHI/byhwLGQsZik6ZCBpbiBlP3MocCxkLGYpOihhKGMpLGVbcF09aS0xLHJbZF09aS0xKX1lbHNlIGEoYyl9cmV0dXJuIG4uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5nZW9tZXRyeX0pKX0odGhpcy5mZWF0dXJlcykpLHRoaXMuc29ydEZlYXR1cmVzQnlLZXkmJnRoaXMuZmVhdHVyZXMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5zb3J0S2V5LWUuc29ydEtleX0pKX19LE1jLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc3RhdGVEZXBlbmRlbnRMYXllcnMubGVuZ3RoJiYodGhpcy50ZXh0LnByb2dyYW1Db25maWd1cmF0aW9ucy51cGRhdGVQYWludEFycmF5cyh0LGUsdGhpcy5sYXllcnMsciksdGhpcy5pY29uLnByb2dyYW1Db25maWd1cmF0aW9ucy51cGRhdGVQYWludEFycmF5cyh0LGUsdGhpcy5sYXllcnMscikpfSxNYy5wcm90b3R5cGUuaXNFbXB0eT1mdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5zeW1ib2xJbnN0YW5jZXMubGVuZ3RoJiYhdGhpcy5oYXNSVExUZXh0fSxNYy5wcm90b3R5cGUudXBsb2FkUGVuZGluZz1mdW5jdGlvbigpe3JldHVybiF0aGlzLnVwbG9hZGVkfHx0aGlzLnRleHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfHx0aGlzLmljb24ucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLm5lZWRzVXBsb2FkfSxNYy5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpeyF0aGlzLnVwbG9hZGVkJiZ0aGlzLmhhc0RlYnVnRGF0YSgpJiYodGhpcy50ZXh0Q29sbGlzaW9uQm94LnVwbG9hZCh0KSx0aGlzLmljb25Db2xsaXNpb25Cb3gudXBsb2FkKHQpKSx0aGlzLnRleHQudXBsb2FkKHQsdGhpcy5zb3J0RmVhdHVyZXNCeVksIXRoaXMudXBsb2FkZWQsdGhpcy50ZXh0LnByb2dyYW1Db25maWd1cmF0aW9ucy5uZWVkc1VwbG9hZCksdGhpcy5pY29uLnVwbG9hZCh0LHRoaXMuc29ydEZlYXR1cmVzQnlZLCF0aGlzLnVwbG9hZGVkLHRoaXMuaWNvbi5wcm9ncmFtQ29uZmlndXJhdGlvbnMubmVlZHNVcGxvYWQpLHRoaXMudXBsb2FkZWQ9ITB9LE1jLnByb3RvdHlwZS5kZXN0cm95RGVidWdEYXRhPWZ1bmN0aW9uKCl7dGhpcy50ZXh0Q29sbGlzaW9uQm94LmRlc3Ryb3koKSx0aGlzLmljb25Db2xsaXNpb25Cb3guZGVzdHJveSgpfSxNYy5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMudGV4dC5kZXN0cm95KCksdGhpcy5pY29uLmRlc3Ryb3koKSx0aGlzLmhhc0RlYnVnRGF0YSgpJiZ0aGlzLmRlc3Ryb3lEZWJ1Z0RhdGEoKX0sTWMucHJvdG90eXBlLmFkZFRvTGluZVZlcnRleEFycmF5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5saW5lVmVydGV4QXJyYXkubGVuZ3RoO2lmKHZvaWQgMCE9PXQuc2VnbWVudCl7Zm9yKHZhciBuPXQuZGlzdChlW3Quc2VnbWVudCsxXSksaT10LmRpc3QoZVt0LnNlZ21lbnRdKSxhPXt9LG89dC5zZWdtZW50KzE7bzxlLmxlbmd0aDtvKyspYVtvXT17eDplW29dLngseTplW29dLnksdGlsZVVuaXREaXN0YW5jZUZyb21BbmNob3I6bn0sbzxlLmxlbmd0aC0xJiYobis9ZVtvKzFdLmRpc3QoZVtvXSkpO2Zvcih2YXIgcz10LnNlZ21lbnR8fDA7cz49MDtzLS0pYVtzXT17eDplW3NdLngseTplW3NdLnksdGlsZVVuaXREaXN0YW5jZUZyb21BbmNob3I6aX0scz4wJiYoaSs9ZVtzLTFdLmRpc3QoZVtzXSkpO2Zvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgYz1hW2xdO3RoaXMubGluZVZlcnRleEFycmF5LmVtcGxhY2VCYWNrKGMueCxjLnksYy50aWxlVW5pdERpc3RhbmNlRnJvbUFuY2hvcil9fXJldHVybntsaW5lU3RhcnRJbmRleDpyLGxpbmVMZW5ndGg6dGhpcy5saW5lVmVydGV4QXJyYXkubGVuZ3RoLXJ9fSxNYy5wcm90b3R5cGUuYWRkU3ltYm9scz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZil7Zm9yKHZhciBoPXQuaW5kZXhBcnJheSxwPXQubGF5b3V0VmVydGV4QXJyYXksZD10LnNlZ21lbnRzLnByZXBhcmVTZWdtZW50KDQqZS5sZW5ndGgscCxoLGEuc29ydEtleSksbT10aGlzLmdseXBoT2Zmc2V0QXJyYXkubGVuZ3RoLGc9ZC52ZXJ0ZXhMZW5ndGgsdj10aGlzLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJm89PT1DbC52ZXJ0aWNhbD9NYXRoLlBJLzI6MCx5PWEudGV4dCYmYS50ZXh0LnNlY3Rpb25zLHg9MDt4PGUubGVuZ3RoO3grKyl7dmFyIGI9ZVt4XSxfPWIudGwsdz1iLnRyLFQ9Yi5ibCxrPWIuYnIsQT1iLnRleCxNPWIucGl4ZWxPZmZzZXRUTCxTPWIucGl4ZWxPZmZzZXRCUixFPWIubWluRm9udFNjYWxlWCxMPWIubWluRm9udFNjYWxlWSxDPWIuZ2x5cGhPZmZzZXQsUD1iLmlzU0RGLEk9Yi5zZWN0aW9uSW5kZXgsTz1kLnZlcnRleExlbmd0aCx6PUNbMV07X2MocCxzLngscy55LF8ueCx6K18ueSxBLngsQS55LHIsUCxNLngsTS55LEUsTCksX2MocCxzLngscy55LHcueCx6K3cueSxBLngrQS53LEEueSxyLFAsUy54LE0ueSxFLEwpLF9jKHAscy54LHMueSxULngseitULnksQS54LEEueStBLmgscixQLE0ueCxTLnksRSxMKSxfYyhwLHMueCxzLnksay54LHoray55LEEueCtBLncsQS55K0EuaCxyLFAsUy54LFMueSxFLEwpLHdjKHQuZHluYW1pY0xheW91dFZlcnRleEFycmF5LHMsdiksaC5lbXBsYWNlQmFjayhPLE8rMSxPKzIpLGguZW1wbGFjZUJhY2soTysxLE8rMixPKzMpLGQudmVydGV4TGVuZ3RoKz00LGQucHJpbWl0aXZlTGVuZ3RoKz0yLHRoaXMuZ2x5cGhPZmZzZXRBcnJheS5lbXBsYWNlQmFjayhDWzBdKSx4IT09ZS5sZW5ndGgtMSYmST09PWVbeCsxXS5zZWN0aW9uSW5kZXh8fHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLnBvcHVsYXRlUGFpbnRBcnJheXMocC5sZW5ndGgsYSxhLmluZGV4LHt9LGYseSYmeVtJXSl9dC5wbGFjZWRTeW1ib2xBcnJheS5lbXBsYWNlQmFjayhzLngscy55LG0sdGhpcy5nbHlwaE9mZnNldEFycmF5Lmxlbmd0aC1tLGcsbCxjLHMuc2VnbWVudCxyP3JbMF06MCxyP3JbMV06MCxuWzBdLG5bMV0sbywwLCExLDAsdSl9LE1jLnByb3RvdHlwZS5fYWRkQ29sbGlzaW9uRGVidWdWZXJ0ZXg9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3JldHVybiBlLmVtcGxhY2VCYWNrKDAsMCksdC5lbXBsYWNlQmFjayhyLngsci55LG4saSxNYXRoLnJvdW5kKGEueCksTWF0aC5yb3VuZChhLnkpKX0sTWMucHJvdG90eXBlLmFkZENvbGxpc2lvbkRlYnVnVmVydGljZXM9ZnVuY3Rpb24odCxlLHIsbixhLG8scyl7dmFyIGw9YS5zZWdtZW50cy5wcmVwYXJlU2VnbWVudCg0LGEubGF5b3V0VmVydGV4QXJyYXksYS5pbmRleEFycmF5KSxjPWwudmVydGV4TGVuZ3RoLHU9YS5sYXlvdXRWZXJ0ZXhBcnJheSxmPWEuY29sbGlzaW9uVmVydGV4QXJyYXksaD1zLmFuY2hvclgscD1zLmFuY2hvclk7dGhpcy5fYWRkQ29sbGlzaW9uRGVidWdWZXJ0ZXgodSxmLG8saCxwLG5ldyBpKHQsZSkpLHRoaXMuX2FkZENvbGxpc2lvbkRlYnVnVmVydGV4KHUsZixvLGgscCxuZXcgaShyLGUpKSx0aGlzLl9hZGRDb2xsaXNpb25EZWJ1Z1ZlcnRleCh1LGYsbyxoLHAsbmV3IGkocixuKSksdGhpcy5fYWRkQ29sbGlzaW9uRGVidWdWZXJ0ZXgodSxmLG8saCxwLG5ldyBpKHQsbikpLGwudmVydGV4TGVuZ3RoKz00O3ZhciBkPWEuaW5kZXhBcnJheTtkLmVtcGxhY2VCYWNrKGMsYysxKSxkLmVtcGxhY2VCYWNrKGMrMSxjKzIpLGQuZW1wbGFjZUJhY2soYysyLGMrMyksZC5lbXBsYWNlQmFjayhjKzMsYyksbC5wcmltaXRpdmVMZW5ndGgrPTR9LE1jLnByb3RvdHlwZS5hZGREZWJ1Z0NvbGxpc2lvbkJveGVzPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT10O2k8ZTtpKyspe3ZhciBhPXRoaXMuY29sbGlzaW9uQm94QXJyYXkuZ2V0KGkpLG89YS54MSxzPWEueTEsbD1hLngyLGM9YS55Mjt0aGlzLmFkZENvbGxpc2lvbkRlYnVnVmVydGljZXMobyxzLGwsYyxuP3RoaXMudGV4dENvbGxpc2lvbkJveDp0aGlzLmljb25Db2xsaXNpb25Cb3gsYS5hbmNob3JQb2ludCxyKX19LE1jLnByb3RvdHlwZS5nZW5lcmF0ZUNvbGxpc2lvbkRlYnVnQnVmZmVycz1mdW5jdGlvbigpe3RoaXMuaGFzRGVidWdEYXRhKCkmJnRoaXMuZGVzdHJveURlYnVnRGF0YSgpLHRoaXMudGV4dENvbGxpc2lvbkJveD1uZXcgQWMoSGksJHMubWVtYmVycyxRaSksdGhpcy5pY29uQ29sbGlzaW9uQm94PW5ldyBBYyhIaSwkcy5tZW1iZXJzLFFpKTtmb3IodmFyIHQ9MDt0PHRoaXMuc3ltYm9sSW5zdGFuY2VzLmxlbmd0aDt0Kyspe3ZhciBlPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldCh0KTt0aGlzLmFkZERlYnVnQ29sbGlzaW9uQm94ZXMoZS50ZXh0Qm94U3RhcnRJbmRleCxlLnRleHRCb3hFbmRJbmRleCxlLCEwKSx0aGlzLmFkZERlYnVnQ29sbGlzaW9uQm94ZXMoZS52ZXJ0aWNhbFRleHRCb3hTdGFydEluZGV4LGUudmVydGljYWxUZXh0Qm94RW5kSW5kZXgsZSwhMCksdGhpcy5hZGREZWJ1Z0NvbGxpc2lvbkJveGVzKGUuaWNvbkJveFN0YXJ0SW5kZXgsZS5pY29uQm94RW5kSW5kZXgsZSwhMSksdGhpcy5hZGREZWJ1Z0NvbGxpc2lvbkJveGVzKGUudmVydGljYWxJY29uQm94U3RhcnRJbmRleCxlLnZlcnRpY2FsSWNvbkJveEVuZEluZGV4LGUsITEpfX0sTWMucHJvdG90eXBlLl9kZXNlcmlhbGl6ZUNvbGxpc2lvbkJveGVzRm9yU3ltYm9sPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsKXtmb3IodmFyIGM9e30sdT1lO3U8cjt1Kyspe3ZhciBmPXQuZ2V0KHUpO2MudGV4dEJveD17eDE6Zi54MSx5MTpmLnkxLHgyOmYueDIseTI6Zi55MixhbmNob3JQb2ludFg6Zi5hbmNob3JQb2ludFgsYW5jaG9yUG9pbnRZOmYuYW5jaG9yUG9pbnRZfSxjLnRleHRGZWF0dXJlSW5kZXg9Zi5mZWF0dXJlSW5kZXg7YnJlYWt9Zm9yKHZhciBoPW47aDxpO2grKyl7dmFyIHA9dC5nZXQoaCk7Yy52ZXJ0aWNhbFRleHRCb3g9e3gxOnAueDEseTE6cC55MSx4MjpwLngyLHkyOnAueTIsYW5jaG9yUG9pbnRYOnAuYW5jaG9yUG9pbnRYLGFuY2hvclBvaW50WTpwLmFuY2hvclBvaW50WX0sYy52ZXJ0aWNhbFRleHRGZWF0dXJlSW5kZXg9cC5mZWF0dXJlSW5kZXg7YnJlYWt9Zm9yKHZhciBkPWE7ZDxvO2QrKyl7dmFyIG09dC5nZXQoZCk7Yy5pY29uQm94PXt4MTptLngxLHkxOm0ueTEseDI6bS54Mix5MjptLnkyLGFuY2hvclBvaW50WDptLmFuY2hvclBvaW50WCxhbmNob3JQb2ludFk6bS5hbmNob3JQb2ludFl9LGMuaWNvbkZlYXR1cmVJbmRleD1tLmZlYXR1cmVJbmRleDticmVha31mb3IodmFyIGc9cztnPGw7ZysrKXt2YXIgdj10LmdldChnKTtjLnZlcnRpY2FsSWNvbkJveD17eDE6di54MSx5MTp2LnkxLHgyOnYueDIseTI6di55MixhbmNob3JQb2ludFg6di5hbmNob3JQb2ludFgsYW5jaG9yUG9pbnRZOnYuYW5jaG9yUG9pbnRZfSxjLnZlcnRpY2FsSWNvbkZlYXR1cmVJbmRleD12LmZlYXR1cmVJbmRleDticmVha31yZXR1cm4gY30sTWMucHJvdG90eXBlLmRlc2VyaWFsaXplQ29sbGlzaW9uQm94ZXM9ZnVuY3Rpb24odCl7dGhpcy5jb2xsaXNpb25BcnJheXM9W107Zm9yKHZhciBlPTA7ZTx0aGlzLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7ZSsrKXt2YXIgcj10aGlzLnN5bWJvbEluc3RhbmNlcy5nZXQoZSk7dGhpcy5jb2xsaXNpb25BcnJheXMucHVzaCh0aGlzLl9kZXNlcmlhbGl6ZUNvbGxpc2lvbkJveGVzRm9yU3ltYm9sKHQsci50ZXh0Qm94U3RhcnRJbmRleCxyLnRleHRCb3hFbmRJbmRleCxyLnZlcnRpY2FsVGV4dEJveFN0YXJ0SW5kZXgsci52ZXJ0aWNhbFRleHRCb3hFbmRJbmRleCxyLmljb25Cb3hTdGFydEluZGV4LHIuaWNvbkJveEVuZEluZGV4LHIudmVydGljYWxJY29uQm94U3RhcnRJbmRleCxyLnZlcnRpY2FsSWNvbkJveEVuZEluZGV4KSl9fSxNYy5wcm90b3R5cGUuaGFzVGV4dERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0LnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxNYy5wcm90b3R5cGUuaGFzSWNvbkRhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pY29uLnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxNYy5wcm90b3R5cGUuaGFzRGVidWdEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGV4dENvbGxpc2lvbkJveCYmdGhpcy5pY29uQ29sbGlzaW9uQm94fSxNYy5wcm90b3R5cGUuaGFzVGV4dENvbGxpc2lvbkJveERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNEZWJ1Z0RhdGEoKSYmdGhpcy50ZXh0Q29sbGlzaW9uQm94LnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxNYy5wcm90b3R5cGUuaGFzSWNvbkNvbGxpc2lvbkJveERhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oYXNEZWJ1Z0RhdGEoKSYmdGhpcy5pY29uQ29sbGlzaW9uQm94LnNlZ21lbnRzLmdldCgpLmxlbmd0aD4wfSxNYy5wcm90b3R5cGUuYWRkSW5kaWNlc0ZvclBsYWNlZFN5bWJvbD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LnBsYWNlZFN5bWJvbEFycmF5LmdldChlKSxuPXIudmVydGV4U3RhcnRJbmRleCs0KnIubnVtR2x5cGhzLGk9ci52ZXJ0ZXhTdGFydEluZGV4O2k8bjtpKz00KXQuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhpLGkrMSxpKzIpLHQuaW5kZXhBcnJheS5lbXBsYWNlQmFjayhpKzEsaSsyLGkrMyl9LE1jLnByb3RvdHlwZS5nZXRTb3J0ZWRTeW1ib2xJbmRleGVzPWZ1bmN0aW9uKHQpe2lmKHRoaXMuc29ydGVkQW5nbGU9PT10JiZ2b2lkIDAhPT10aGlzLnN5bWJvbEluc3RhbmNlSW5kZXhlcylyZXR1cm4gdGhpcy5zeW1ib2xJbnN0YW5jZUluZGV4ZXM7Zm9yKHZhciBlPU1hdGguc2luKHQpLHI9TWF0aC5jb3ModCksbj1bXSxpPVtdLGE9W10sbz0wO288dGhpcy5zeW1ib2xJbnN0YW5jZXMubGVuZ3RoOysrbyl7YS5wdXNoKG8pO3ZhciBzPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldChvKTtuLnB1c2goMHxNYXRoLnJvdW5kKGUqcy5hbmNob3JYK3Iqcy5hbmNob3JZKSksaS5wdXNoKHMuZmVhdHVyZUluZGV4KX1yZXR1cm4gYS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBuW3RdLW5bZV18fGlbZV0taVt0XX0pKSxhfSxNYy5wcm90b3R5cGUuYWRkVG9Tb3J0S2V5UmFuZ2VzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5zb3J0S2V5UmFuZ2VzW3RoaXMuc29ydEtleVJhbmdlcy5sZW5ndGgtMV07ciYmci5zb3J0S2V5PT09ZT9yLnN5bWJvbEluc3RhbmNlRW5kPXQrMTp0aGlzLnNvcnRLZXlSYW5nZXMucHVzaCh7c29ydEtleTplLHN5bWJvbEluc3RhbmNlU3RhcnQ6dCxzeW1ib2xJbnN0YW5jZUVuZDp0KzF9KX0sTWMucHJvdG90eXBlLnNvcnRGZWF0dXJlcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzO2lmKHRoaXMuc29ydEZlYXR1cmVzQnlZJiZ0aGlzLnNvcnRlZEFuZ2xlIT09dCYmISh0aGlzLnRleHQuc2VnbWVudHMuZ2V0KCkubGVuZ3RoPjF8fHRoaXMuaWNvbi5zZWdtZW50cy5nZXQoKS5sZW5ndGg+MSkpe3RoaXMuc3ltYm9sSW5zdGFuY2VJbmRleGVzPXRoaXMuZ2V0U29ydGVkU3ltYm9sSW5kZXhlcyh0KSx0aGlzLnNvcnRlZEFuZ2xlPXQsdGhpcy50ZXh0LmluZGV4QXJyYXkuY2xlYXIoKSx0aGlzLmljb24uaW5kZXhBcnJheS5jbGVhcigpLHRoaXMuZmVhdHVyZVNvcnRPcmRlcj1bXTtmb3IodmFyIHI9MCxuPXRoaXMuc3ltYm9sSW5zdGFuY2VJbmRleGVzO3I8bi5sZW5ndGg7cis9MSl7dmFyIGk9bltyXSxhPXRoaXMuc3ltYm9sSW5zdGFuY2VzLmdldChpKTt0aGlzLmZlYXR1cmVTb3J0T3JkZXIucHVzaChhLmZlYXR1cmVJbmRleCksW2EucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsYS5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsYS5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4XS5mb3JFYWNoKChmdW5jdGlvbih0LHIsbil7dD49MCYmbi5pbmRleE9mKHQpPT09ciYmZS5hZGRJbmRpY2VzRm9yUGxhY2VkU3ltYm9sKGUudGV4dCx0KX0pKSxhLnZlcnRpY2FsUGxhY2VkVGV4dFN5bWJvbEluZGV4Pj0wJiZ0aGlzLmFkZEluZGljZXNGb3JQbGFjZWRTeW1ib2wodGhpcy50ZXh0LGEudmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXgpLGEucGxhY2VkSWNvblN5bWJvbEluZGV4Pj0wJiZ0aGlzLmFkZEluZGljZXNGb3JQbGFjZWRTeW1ib2wodGhpcy5pY29uLGEucGxhY2VkSWNvblN5bWJvbEluZGV4KSxhLnZlcnRpY2FsUGxhY2VkSWNvblN5bWJvbEluZGV4Pj0wJiZ0aGlzLmFkZEluZGljZXNGb3JQbGFjZWRTeW1ib2wodGhpcy5pY29uLGEudmVydGljYWxQbGFjZWRJY29uU3ltYm9sSW5kZXgpfXRoaXMudGV4dC5pbmRleEJ1ZmZlciYmdGhpcy50ZXh0LmluZGV4QnVmZmVyLnVwZGF0ZURhdGEodGhpcy50ZXh0LmluZGV4QXJyYXkpLHRoaXMuaWNvbi5pbmRleEJ1ZmZlciYmdGhpcy5pY29uLmluZGV4QnVmZmVyLnVwZGF0ZURhdGEodGhpcy5pY29uLmluZGV4QXJyYXkpfX0sTm4oIlN5bWJvbEJ1Y2tldCIsTWMse29taXQ6WyJsYXllcnMiLCJjb2xsaXNpb25Cb3hBcnJheSIsImZlYXR1cmVzIiwiY29tcGFyZVRleHQiXX0pLE1jLk1BWF9HTFlQSFM9NjU1MzUsTWMuYWRkRHluYW1pY0F0dHJpYnV0ZXM9d2M7dmFyIFNjPW5ldyBTaSh7InN5bWJvbC1wbGFjZW1lbnQiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtcGxhY2VtZW50Il0pLCJzeW1ib2wtc3BhY2luZyI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInN5bWJvbC1zcGFjaW5nIl0pLCJzeW1ib2wtYXZvaWQtZWRnZXMiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtYXZvaWQtZWRnZXMiXSksInN5bWJvbC1zb3J0LWtleSI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInN5bWJvbC1zb3J0LWtleSJdKSwic3ltYm9sLXotb3JkZXIiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJzeW1ib2wtei1vcmRlciJdKSwiaWNvbi1hbGxvdy1vdmVybGFwIjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1hbGxvdy1vdmVybGFwIl0pLCJpY29uLWlnbm9yZS1wbGFjZW1lbnQiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLWlnbm9yZS1wbGFjZW1lbnQiXSksImljb24tb3B0aW9uYWwiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLW9wdGlvbmFsIl0pLCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbImljb24tcm90YXRpb24tYWxpZ25tZW50Il0pLCJpY29uLXNpemUiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLXNpemUiXSksImljb24tdGV4dC1maXQiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLXRleHQtZml0Il0pLCJpY29uLXRleHQtZml0LXBhZGRpbmciOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLXRleHQtZml0LXBhZGRpbmciXSksImljb24taW1hZ2UiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLWltYWdlIl0pLCJpY29uLXJvdGF0ZSI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbImljb24tcm90YXRlIl0pLCJpY29uLXBhZGRpbmciOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJpY29uLXBhZGRpbmciXSksImljb24ta2VlcC11cHJpZ2h0IjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1rZWVwLXVwcmlnaHQiXSksImljb24tb2Zmc2V0IjpuZXcgVGkoTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1vZmZzZXQiXSksImljb24tYW5jaG9yIjpuZXcgVGkoTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1hbmNob3IiXSksImljb24tcGl0Y2gtYWxpZ25tZW50IjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsiaWNvbi1waXRjaC1hbGlnbm1lbnQiXSksInRleHQtcGl0Y2gtYWxpZ25tZW50IjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsidGV4dC1waXRjaC1hbGlnbm1lbnQiXSksInRleHQtcm90YXRpb24tYWxpZ25tZW50IjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiXSksInRleHQtZmllbGQiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWZpZWxkIl0pLCJ0ZXh0LWZvbnQiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWZvbnQiXSksInRleHQtc2l6ZSI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInRleHQtc2l6ZSJdKSwidGV4dC1tYXgtd2lkdGgiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LW1heC13aWR0aCJdKSwidGV4dC1saW5lLWhlaWdodCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInRleHQtbGluZS1oZWlnaHQiXSksInRleHQtbGV0dGVyLXNwYWNpbmciOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWxldHRlci1zcGFjaW5nIl0pLCJ0ZXh0LWp1c3RpZnkiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWp1c3RpZnkiXSksInRleHQtcmFkaWFsLW9mZnNldCI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInRleHQtcmFkaWFsLW9mZnNldCJdKSwidGV4dC12YXJpYWJsZS1hbmNob3IiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXZhcmlhYmxlLWFuY2hvciJdKSwidGV4dC1hbmNob3IiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWFuY2hvciJdKSwidGV4dC1tYXgtYW5nbGUiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LW1heC1hbmdsZSJdKSwidGV4dC13cml0aW5nLW1vZGUiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXdyaXRpbmctbW9kZSJdKSwidGV4dC1yb3RhdGUiOm5ldyBUaShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LXJvdGF0ZSJdKSwidGV4dC1wYWRkaW5nIjpuZXcgd2koTHQubGF5b3V0X3N5bWJvbFsidGV4dC1wYWRkaW5nIl0pLCJ0ZXh0LWtlZXAtdXByaWdodCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInRleHQta2VlcC11cHJpZ2h0Il0pLCJ0ZXh0LXRyYW5zZm9ybSI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInRleHQtdHJhbnNmb3JtIl0pLCJ0ZXh0LW9mZnNldCI6bmV3IFRpKEx0LmxheW91dF9zeW1ib2xbInRleHQtb2Zmc2V0Il0pLCJ0ZXh0LWFsbG93LW92ZXJsYXAiOm5ldyB3aShMdC5sYXlvdXRfc3ltYm9sWyJ0ZXh0LWFsbG93LW92ZXJsYXAiXSksInRleHQtaWdub3JlLXBsYWNlbWVudCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInRleHQtaWdub3JlLXBsYWNlbWVudCJdKSwidGV4dC1vcHRpb25hbCI6bmV3IHdpKEx0LmxheW91dF9zeW1ib2xbInRleHQtb3B0aW9uYWwiXSl9KSxFYz17cGFpbnQ6bmV3IFNpKHsiaWNvbi1vcGFjaXR5IjpuZXcgVGkoTHQucGFpbnRfc3ltYm9sWyJpY29uLW9wYWNpdHkiXSksImljb24tY29sb3IiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbImljb24tY29sb3IiXSksImljb24taGFsby1jb2xvciI6bmV3IFRpKEx0LnBhaW50X3N5bWJvbFsiaWNvbi1oYWxvLWNvbG9yIl0pLCJpY29uLWhhbG8td2lkdGgiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbImljb24taGFsby13aWR0aCJdKSwiaWNvbi1oYWxvLWJsdXIiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbImljb24taGFsby1ibHVyIl0pLCJpY29uLXRyYW5zbGF0ZSI6bmV3IHdpKEx0LnBhaW50X3N5bWJvbFsiaWNvbi10cmFuc2xhdGUiXSksImljb24tdHJhbnNsYXRlLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X3N5bWJvbFsiaWNvbi10cmFuc2xhdGUtYW5jaG9yIl0pLCJ0ZXh0LW9wYWNpdHkiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbInRleHQtb3BhY2l0eSJdKSwidGV4dC1jb2xvciI6bmV3IFRpKEx0LnBhaW50X3N5bWJvbFsidGV4dC1jb2xvciJdLHtydW50aW1lVHlwZTpVdCxnZXRPdmVycmlkZTpmdW5jdGlvbih0KXtyZXR1cm4gdC50ZXh0Q29sb3J9LGhhc092ZXJyaWRlOmZ1bmN0aW9uKHQpe3JldHVybiEhdC50ZXh0Q29sb3J9fSksInRleHQtaGFsby1jb2xvciI6bmV3IFRpKEx0LnBhaW50X3N5bWJvbFsidGV4dC1oYWxvLWNvbG9yIl0pLCJ0ZXh0LWhhbG8td2lkdGgiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbInRleHQtaGFsby13aWR0aCJdKSwidGV4dC1oYWxvLWJsdXIiOm5ldyBUaShMdC5wYWludF9zeW1ib2xbInRleHQtaGFsby1ibHVyIl0pLCJ0ZXh0LXRyYW5zbGF0ZSI6bmV3IHdpKEx0LnBhaW50X3N5bWJvbFsidGV4dC10cmFuc2xhdGUiXSksInRleHQtdHJhbnNsYXRlLWFuY2hvciI6bmV3IHdpKEx0LnBhaW50X3N5bWJvbFsidGV4dC10cmFuc2xhdGUtYW5jaG9yIl0pfSksbGF5b3V0OlNjfSxMYz1mdW5jdGlvbih0KXt0aGlzLnR5cGU9dC5wcm9wZXJ0eS5vdmVycmlkZXM/dC5wcm9wZXJ0eS5vdmVycmlkZXMucnVudGltZVR5cGU6RnQsdGhpcy5kZWZhdWx0VmFsdWU9dH07TGMucHJvdG90eXBlLmV2YWx1YXRlPWZ1bmN0aW9uKHQpe2lmKHQuZm9ybWF0dGVkU2VjdGlvbil7dmFyIGU9dGhpcy5kZWZhdWx0VmFsdWUucHJvcGVydHkub3ZlcnJpZGVzO2lmKGUmJmUuaGFzT3ZlcnJpZGUodC5mb3JtYXR0ZWRTZWN0aW9uKSlyZXR1cm4gZS5nZXRPdmVycmlkZSh0LmZvcm1hdHRlZFNlY3Rpb24pfXJldHVybiB0LmZlYXR1cmUmJnQuZmVhdHVyZVN0YXRlP3RoaXMuZGVmYXVsdFZhbHVlLmV2YWx1YXRlKHQuZmVhdHVyZSx0LmZlYXR1cmVTdGF0ZSk6dGhpcy5kZWZhdWx0VmFsdWUucHJvcGVydHkuc3BlY2lmaWNhdGlvbi5kZWZhdWx0fSxMYy5wcm90b3R5cGUuZWFjaENoaWxkPWZ1bmN0aW9uKHQpe3RoaXMuZGVmYXVsdFZhbHVlLmlzQ29uc3RhbnQoKXx8dCh0aGlzLmRlZmF1bHRWYWx1ZS52YWx1ZS5fc3R5bGVFeHByZXNzaW9uLmV4cHJlc3Npb24pfSxMYy5wcm90b3R5cGUub3V0cHV0RGVmaW5lZD1mdW5jdGlvbigpe3JldHVybiExfSxMYy5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LE5uKCJGb3JtYXRTZWN0aW9uT3ZlcnJpZGUiLExjLHtvbWl0OlsiZGVmYXVsdFZhbHVlIl19KTt2YXIgQ2M9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLEVjKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucmVjYWxjdWxhdGU9ZnVuY3Rpb24oZSxyKXtpZih0LnByb3RvdHlwZS5yZWNhbGN1bGF0ZS5jYWxsKHRoaXMsZSxyKSwiYXV0byI9PT10aGlzLmxheW91dC5nZXQoImljb24tcm90YXRpb24tYWxpZ25tZW50IikmJigicG9pbnQiIT09dGhpcy5sYXlvdXQuZ2V0KCJzeW1ib2wtcGxhY2VtZW50Iik/dGhpcy5sYXlvdXQuX3ZhbHVlc1siaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiXT0ibWFwIjp0aGlzLmxheW91dC5fdmFsdWVzWyJpY29uLXJvdGF0aW9uLWFsaWdubWVudCJdPSJ2aWV3cG9ydCIpLCJhdXRvIj09PXRoaXMubGF5b3V0LmdldCgidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiKSYmKCJwb2ludCIhPT10aGlzLmxheW91dC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKT90aGlzLmxheW91dC5fdmFsdWVzWyJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCJdPSJtYXAiOnRoaXMubGF5b3V0Ll92YWx1ZXNbInRleHQtcm90YXRpb24tYWxpZ25tZW50Il09InZpZXdwb3J0IiksImF1dG8iPT09dGhpcy5sYXlvdXQuZ2V0KCJ0ZXh0LXBpdGNoLWFsaWdubWVudCIpJiYodGhpcy5sYXlvdXQuX3ZhbHVlc1sidGV4dC1waXRjaC1hbGlnbm1lbnQiXT10aGlzLmxheW91dC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IikpLCJhdXRvIj09PXRoaXMubGF5b3V0LmdldCgiaWNvbi1waXRjaC1hbGlnbm1lbnQiKSYmKHRoaXMubGF5b3V0Ll92YWx1ZXNbImljb24tcGl0Y2gtYWxpZ25tZW50Il09dGhpcy5sYXlvdXQuZ2V0KCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCIpKSwicG9pbnQiPT09dGhpcy5sYXlvdXQuZ2V0KCJzeW1ib2wtcGxhY2VtZW50Iikpe3ZhciBuPXRoaXMubGF5b3V0LmdldCgidGV4dC13cml0aW5nLW1vZGUiKTtpZihuKXtmb3IodmFyIGk9W10sYT0wLG89bjthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV07aS5pbmRleE9mKHMpPDAmJmkucHVzaChzKX10aGlzLmxheW91dC5fdmFsdWVzWyJ0ZXh0LXdyaXRpbmctbW9kZSJdPWl9ZWxzZSB0aGlzLmxheW91dC5fdmFsdWVzWyJ0ZXh0LXdyaXRpbmctbW9kZSJdPVsiaG9yaXpvbnRhbCJdfXRoaXMuX3NldFBhaW50T3ZlcnJpZGVzKCl9LGUucHJvdG90eXBlLmdldFZhbHVlQW5kUmVzb2x2ZVRva2Vucz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10aGlzLmxheW91dC5nZXQodCkuZXZhbHVhdGUoZSx7fSxyLG4pLGE9dGhpcy5fdW5ldmFsdWF0ZWRMYXlvdXQuX3ZhbHVlc1t0XTtyZXR1cm4gYS5pc0RhdGFEcml2ZW4oKXx8WXIoYS52YWx1ZSl8fCFpP2k6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5yZXBsYWNlKC97KFtee31dKyl9L2csKGZ1bmN0aW9uKGUscil7cmV0dXJuIHIgaW4gdD9TdHJpbmcodFtyXSk6IiJ9KSl9KGUucHJvcGVydGllcyxpKX0sZS5wcm90b3R5cGUuY3JlYXRlQnVja2V0PWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTWModCl9LGUucHJvdG90eXBlLnF1ZXJ5UmFkaXVzPWZ1bmN0aW9uKCl7cmV0dXJuIDB9LGUucHJvdG90eXBlLnF1ZXJ5SW50ZXJzZWN0c0ZlYXR1cmU9ZnVuY3Rpb24oKXtyZXR1cm4hMX0sZS5wcm90b3R5cGUuX3NldFBhaW50T3ZlcnJpZGVzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTAscj1FYy5wYWludC5vdmVycmlkYWJsZVByb3BlcnRpZXM7dDxyLmxlbmd0aDt0Kz0xKXt2YXIgbj1yW3RdO2lmKGUuaGFzUGFpbnRPdmVycmlkZSh0aGlzLmxheW91dCxuKSl7dmFyIGk9dGhpcy5wYWludC5nZXQobiksYT1uZXcgTGMoaSksbz1uZXcgR3IoYSxpLnByb3BlcnR5LnNwZWNpZmljYXRpb24pLHM9bnVsbDtzPSJjb25zdGFudCI9PT1pLnZhbHVlLmtpbmR8fCJzb3VyY2UiPT09aS52YWx1ZS5raW5kP25ldyBYcigic291cmNlIixvKTpuZXcgWnIoImNvbXBvc2l0ZSIsbyxpLnZhbHVlLnpvb21TdG9wcyxpLnZhbHVlLl9pbnRlcnBvbGF0aW9uVHlwZSksdGhpcy5wYWludC5fdmFsdWVzW25dPW5ldyBiaShpLnByb3BlcnR5LHMsaS5wYXJhbWV0ZXJzKX19fSxlLnByb3RvdHlwZS5faGFuZGxlT3ZlcnJpZGFibGVQYWludFByb3BlcnR5VXBkYXRlPWZ1bmN0aW9uKHQscixuKXtyZXR1cm4hKCF0aGlzLmxheW91dHx8ci5pc0RhdGFEcml2ZW4oKXx8bi5pc0RhdGFEcml2ZW4oKSkmJmUuaGFzUGFpbnRPdmVycmlkZSh0aGlzLmxheW91dCx0KX0sZS5oYXNQYWludE92ZXJyaWRlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nZXQoInRleHQtZmllbGQiKSxuPUVjLnBhaW50LnByb3BlcnRpZXNbZV0saT0hMSxhPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe3ZhciBhPXJbZV07aWYobi5vdmVycmlkZXMmJm4ub3ZlcnJpZGVzLmhhc092ZXJyaWRlKGEpKXJldHVybiB2b2lkKGk9ITApfX07aWYoImNvbnN0YW50Ij09PXIudmFsdWUua2luZCYmci52YWx1ZS52YWx1ZSBpbnN0YW5jZW9mIG5lKWEoci52YWx1ZS52YWx1ZS5zZWN0aW9ucyk7ZWxzZSBpZigic291cmNlIj09PXIudmFsdWUua2luZCl7dmFyIG89ZnVuY3Rpb24odCl7aWYoIWkpaWYodCBpbnN0YW5jZW9mIGNlJiZzZSh0LnZhbHVlKT09PUd0KXt2YXIgZT10LnZhbHVlO2EoZS5zZWN0aW9ucyl9ZWxzZSB0IGluc3RhbmNlb2YgcGU/YSh0LnNlY3Rpb25zKTp0LmVhY2hDaGlsZChvKX0scz1yLnZhbHVlO3MuX3N0eWxlRXhwcmVzc2lvbiYmbyhzLl9zdHlsZUV4cHJlc3Npb24uZXhwcmVzc2lvbil9cmV0dXJuIGl9LGV9KEVpKSxQYz17cGFpbnQ6bmV3IFNpKHsiYmFja2dyb3VuZC1jb2xvciI6bmV3IHdpKEx0LnBhaW50X2JhY2tncm91bmRbImJhY2tncm91bmQtY29sb3IiXSksImJhY2tncm91bmQtcGF0dGVybiI6bmV3IEFpKEx0LnBhaW50X2JhY2tncm91bmRbImJhY2tncm91bmQtcGF0dGVybiJdKSwiYmFja2dyb3VuZC1vcGFjaXR5IjpuZXcgd2koTHQucGFpbnRfYmFja2dyb3VuZFsiYmFja2dyb3VuZC1vcGFjaXR5Il0pfSl9LEljPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoZSl7dC5jYWxsKHRoaXMsZSxQYyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGV9KEVpKSxPYz17cGFpbnQ6bmV3IFNpKHsicmFzdGVyLW9wYWNpdHkiOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1vcGFjaXR5Il0pLCJyYXN0ZXItaHVlLXJvdGF0ZSI6bmV3IHdpKEx0LnBhaW50X3Jhc3RlclsicmFzdGVyLWh1ZS1yb3RhdGUiXSksInJhc3Rlci1icmlnaHRuZXNzLW1pbiI6bmV3IHdpKEx0LnBhaW50X3Jhc3RlclsicmFzdGVyLWJyaWdodG5lc3MtbWluIl0pLCJyYXN0ZXItYnJpZ2h0bmVzcy1tYXgiOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1icmlnaHRuZXNzLW1heCJdKSwicmFzdGVyLXNhdHVyYXRpb24iOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1zYXR1cmF0aW9uIl0pLCJyYXN0ZXItY29udHJhc3QiOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1jb250cmFzdCJdKSwicmFzdGVyLXJlc2FtcGxpbmciOm5ldyB3aShMdC5wYWludF9yYXN0ZXJbInJhc3Rlci1yZXNhbXBsaW5nIl0pLCJyYXN0ZXItZmFkZS1kdXJhdGlvbiI6bmV3IHdpKEx0LnBhaW50X3Jhc3RlclsicmFzdGVyLWZhZGUtZHVyYXRpb24iXSl9KX0semM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlKXt0LmNhbGwodGhpcyxlLE9jKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZX0oRWkpO3ZhciBEYz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUse30pLHRoaXMuaW1wbGVtZW50YXRpb249ZX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuaXMzRD1mdW5jdGlvbigpe3JldHVybiIzZCI9PT10aGlzLmltcGxlbWVudGF0aW9uLnJlbmRlcmluZ01vZGV9LGUucHJvdG90eXBlLmhhc09mZnNjcmVlblBhc3M9ZnVuY3Rpb24oKXtyZXR1cm4gdm9pZCAwIT09dGhpcy5pbXBsZW1lbnRhdGlvbi5wcmVyZW5kZXJ9LGUucHJvdG90eXBlLnJlY2FsY3VsYXRlPWZ1bmN0aW9uKCl7fSxlLnByb3RvdHlwZS51cGRhdGVUcmFuc2l0aW9ucz1mdW5jdGlvbigpe30sZS5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe30sZS5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7fSxlLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLmltcGxlbWVudGF0aW9uLm9uQWRkJiZ0aGlzLmltcGxlbWVudGF0aW9uLm9uQWRkKHQsdC5wYWludGVyLmNvbnRleHQuZ2wpfSxlLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbih0KXt0aGlzLmltcGxlbWVudGF0aW9uLm9uUmVtb3ZlJiZ0aGlzLmltcGxlbWVudGF0aW9uLm9uUmVtb3ZlKHQsdC5wYWludGVyLmNvbnRleHQuZ2wpfSxlfShFaSksUmM9e2NpcmNsZTpfbyxoZWF0bWFwOlBvLGhpbGxzaGFkZTpPbyxmaWxsOnhzLCJmaWxsLWV4dHJ1c2lvbiI6RnMsbGluZTpYcyxzeW1ib2w6Q2MsYmFja2dyb3VuZDpJYyxyYXN0ZXI6emN9O3ZhciBGYz1zZWxmLkhUTUxJbWFnZUVsZW1lbnQsQmM9c2VsZi5IVE1MQ2FudmFzRWxlbWVudCxOYz1zZWxmLkhUTUxWaWRlb0VsZW1lbnQsamM9c2VsZi5JbWFnZURhdGEsVWM9c2VsZi5JbWFnZUJpdG1hcCxWYz1mdW5jdGlvbih0LGUscixuKXt0aGlzLmNvbnRleHQ9dCx0aGlzLmZvcm1hdD1yLHRoaXMudGV4dHVyZT10LmdsLmNyZWF0ZVRleHR1cmUoKSx0aGlzLnVwZGF0ZShlLG4pfTtWYy5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LndpZHRoLGk9dC5oZWlnaHQsYT0hKHRoaXMuc2l6ZSYmdGhpcy5zaXplWzBdPT09biYmdGhpcy5zaXplWzFdPT09aXx8ciksbz10aGlzLmNvbnRleHQscz1vLmdsO2lmKHRoaXMudXNlTWlwbWFwPUJvb2xlYW4oZSYmZS51c2VNaXBtYXApLHMuYmluZFRleHR1cmUocy5URVhUVVJFXzJELHRoaXMudGV4dHVyZSksby5waXhlbFN0b3JlVW5wYWNrRmxpcFkuc2V0KCExKSxvLnBpeGVsU3RvcmVVbnBhY2suc2V0KDEpLG8ucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGEuc2V0KHRoaXMuZm9ybWF0PT09cy5SR0JBJiYoIWV8fCExIT09ZS5wcmVtdWx0aXBseSkpLGEpdGhpcy5zaXplPVtuLGldLHQgaW5zdGFuY2VvZiBGY3x8dCBpbnN0YW5jZW9mIEJjfHx0IGluc3RhbmNlb2YgTmN8fHQgaW5zdGFuY2VvZiBqY3x8VWMmJnQgaW5zdGFuY2VvZiBVYz9zLnRleEltYWdlMkQocy5URVhUVVJFXzJELDAsdGhpcy5mb3JtYXQsdGhpcy5mb3JtYXQscy5VTlNJR05FRF9CWVRFLHQpOnMudGV4SW1hZ2UyRChzLlRFWFRVUkVfMkQsMCx0aGlzLmZvcm1hdCxuLGksMCx0aGlzLmZvcm1hdCxzLlVOU0lHTkVEX0JZVEUsdC5kYXRhKTtlbHNle3ZhciBsPXJ8fHt4OjAseTowfSxjPWwueCx1PWwueTt0IGluc3RhbmNlb2YgRmN8fHQgaW5zdGFuY2VvZiBCY3x8dCBpbnN0YW5jZW9mIE5jfHx0IGluc3RhbmNlb2YgamN8fFVjJiZ0IGluc3RhbmNlb2YgVWM/cy50ZXhTdWJJbWFnZTJEKHMuVEVYVFVSRV8yRCwwLGMsdSxzLlJHQkEscy5VTlNJR05FRF9CWVRFLHQpOnMudGV4U3ViSW1hZ2UyRChzLlRFWFRVUkVfMkQsMCxjLHUsbixpLHMuUkdCQSxzLlVOU0lHTkVEX0JZVEUsdC5kYXRhKX10aGlzLnVzZU1pcG1hcCYmdGhpcy5pc1NpemVQb3dlck9mVHdvKCkmJnMuZ2VuZXJhdGVNaXBtYXAocy5URVhUVVJFXzJEKX0sVmMucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuY29udGV4dC5nbDtuLmJpbmRUZXh0dXJlKG4uVEVYVFVSRV8yRCx0aGlzLnRleHR1cmUpLHIhPT1uLkxJTkVBUl9NSVBNQVBfTkVBUkVTVHx8dGhpcy5pc1NpemVQb3dlck9mVHdvKCl8fChyPW4uTElORUFSKSx0IT09dGhpcy5maWx0ZXImJihuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9NQUdfRklMVEVSLHQpLG4udGV4UGFyYW1ldGVyaShuLlRFWFRVUkVfMkQsbi5URVhUVVJFX01JTl9GSUxURVIscnx8dCksdGhpcy5maWx0ZXI9dCksZSE9PXRoaXMud3JhcCYmKG4udGV4UGFyYW1ldGVyaShuLlRFWFRVUkVfMkQsbi5URVhUVVJFX1dSQVBfUyxlKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9XUkFQX1QsZSksdGhpcy53cmFwPWUpfSxWYy5wcm90b3R5cGUuaXNTaXplUG93ZXJPZlR3bz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnNpemVbMF09PT10aGlzLnNpemVbMV0mJk1hdGgubG9nKHRoaXMuc2l6ZVswXSkvTWF0aC5MTjIlMT09MH0sVmMucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLmNvbnRleHQuZ2wuZGVsZXRlVGV4dHVyZSh0aGlzLnRleHR1cmUpLHRoaXMudGV4dHVyZT1udWxsfTt2YXIgSGM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpczt0aGlzLl9jYWxsYmFjaz10LHRoaXMuX3RyaWdnZXJlZD0hMSwidW5kZWZpbmVkIiE9dHlwZW9mIE1lc3NhZ2VDaGFubmVsJiYodGhpcy5fY2hhbm5lbD1uZXcgTWVzc2FnZUNoYW5uZWwsdGhpcy5fY2hhbm5lbC5wb3J0Mi5vbm1lc3NhZ2U9ZnVuY3Rpb24oKXtlLl90cmlnZ2VyZWQ9ITEsZS5fY2FsbGJhY2soKX0pfTtIYy5wcm90b3R5cGUudHJpZ2dlcj1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dGhpcy5fdHJpZ2dlcmVkfHwodGhpcy5fdHJpZ2dlcmVkPSEwLHRoaXMuX2NoYW5uZWw/dGhpcy5fY2hhbm5lbC5wb3J0MS5wb3N0TWVzc2FnZSghMCk6c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Ll90cmlnZ2VyZWQ9ITEsdC5fY2FsbGJhY2soKX0pLDApKX0sSGMucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe2RlbGV0ZSB0aGlzLl9jaGFubmVsLHRoaXMuX2NhbGxiYWNrPWZ1bmN0aW9uKCl7fX07dmFyIHFjPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnRhcmdldD10LHRoaXMucGFyZW50PWUsdGhpcy5tYXBJZD1yLHRoaXMuY2FsbGJhY2tzPXt9LHRoaXMudGFza3M9e30sdGhpcy50YXNrUXVldWU9W10sdGhpcy5jYW5jZWxDYWxsYmFja3M9e30sbShbInJlY2VpdmUiLCJwcm9jZXNzIl0sdGhpcyksdGhpcy5pbnZva2VyPW5ldyBIYyh0aGlzLnByb2Nlc3MpLHRoaXMudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLHRoaXMucmVjZWl2ZSwhMSksdGhpcy5nbG9iYWxTY29wZT1rKCk/dDpzZWxmfTtmdW5jdGlvbiBHYyh0LGUscil7dmFyIG49MipNYXRoLlBJKjYzNzgxMzcvMjU2L01hdGgucG93KDIscik7cmV0dXJuW3Qqbi0yKk1hdGguUEkqNjM3ODEzNy8yLGUqbi0yKk1hdGguUEkqNjM3ODEzNy8yXX1xYy5wcm90b3R5cGUuc2VuZD1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXRoaXM7dm9pZCAwPT09aSYmKGk9ITEpO3ZhciBvPU1hdGgucm91bmQoMWUxOCpNYXRoLnJhbmRvbSgpKS50b1N0cmluZygzNikuc3Vic3RyaW5nKDAsMTApO3ImJih0aGlzLmNhbGxiYWNrc1tvXT1yKTt2YXIgcz1TKHRoaXMuZ2xvYmFsU2NvcGUpP3ZvaWQgMDpbXTtyZXR1cm4gdGhpcy50YXJnZXQucG9zdE1lc3NhZ2Uoe2lkOm8sdHlwZTp0LGhhc0NhbGxiYWNrOiEhcix0YXJnZXRNYXBJZDpuLG11c3RRdWV1ZTppLHNvdXJjZU1hcElkOnRoaXMubWFwSWQsZGF0YTpIbihlLHMpfSxzKSx7Y2FuY2VsOmZ1bmN0aW9uKCl7ciYmZGVsZXRlIGEuY2FsbGJhY2tzW29dLGEudGFyZ2V0LnBvc3RNZXNzYWdlKHtpZDpvLHR5cGU6IjxjYW5jZWw+Iix0YXJnZXRNYXBJZDpuLHNvdXJjZU1hcElkOmEubWFwSWR9KX19fSxxYy5wcm90b3R5cGUucmVjZWl2ZT1mdW5jdGlvbih0KXt2YXIgZT10LmRhdGEscj1lLmlkO2lmKHImJighZS50YXJnZXRNYXBJZHx8dGhpcy5tYXBJZD09PWUudGFyZ2V0TWFwSWQpKWlmKCI8Y2FuY2VsPiI9PT1lLnR5cGUpe2RlbGV0ZSB0aGlzLnRhc2tzW3JdO3ZhciBuPXRoaXMuY2FuY2VsQ2FsbGJhY2tzW3JdO2RlbGV0ZSB0aGlzLmNhbmNlbENhbGxiYWNrc1tyXSxuJiZuKCl9ZWxzZSBrKCl8fGUubXVzdFF1ZXVlPyh0aGlzLnRhc2tzW3JdPWUsdGhpcy50YXNrUXVldWUucHVzaChyKSx0aGlzLmludm9rZXIudHJpZ2dlcigpKTp0aGlzLnByb2Nlc3NUYXNrKHIsZSl9LHFjLnByb3RvdHlwZS5wcm9jZXNzPWZ1bmN0aW9uKCl7aWYodGhpcy50YXNrUXVldWUubGVuZ3RoKXt2YXIgdD10aGlzLnRhc2tRdWV1ZS5zaGlmdCgpLGU9dGhpcy50YXNrc1t0XTtkZWxldGUgdGhpcy50YXNrc1t0XSx0aGlzLnRhc2tRdWV1ZS5sZW5ndGgmJnRoaXMuaW52b2tlci50cmlnZ2VyKCksZSYmdGhpcy5wcm9jZXNzVGFzayh0LGUpfX0scWMucHJvdG90eXBlLnByb2Nlc3NUYXNrPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcztpZigiPHJlc3BvbnNlPiI9PT1lLnR5cGUpe3ZhciBuPXRoaXMuY2FsbGJhY2tzW3RdO2RlbGV0ZSB0aGlzLmNhbGxiYWNrc1t0XSxuJiYoZS5lcnJvcj9uKHFuKGUuZXJyb3IpKTpuKG51bGwscW4oZS5kYXRhKSkpfWVsc2V7dmFyIGk9ITEsYT1TKHRoaXMuZ2xvYmFsU2NvcGUpP3ZvaWQgMDpbXSxvPWUuaGFzQ2FsbGJhY2s/ZnVuY3Rpb24oZSxuKXtpPSEwLGRlbGV0ZSByLmNhbmNlbENhbGxiYWNrc1t0XSxyLnRhcmdldC5wb3N0TWVzc2FnZSh7aWQ6dCx0eXBlOiI8cmVzcG9uc2U+Iixzb3VyY2VNYXBJZDpyLm1hcElkLGVycm9yOmU/SG4oZSk6bnVsbCxkYXRhOkhuKG4sYSl9LGEpfTpmdW5jdGlvbih0KXtpPSEwfSxzPW51bGwsbD1xbihlLmRhdGEpO2lmKHRoaXMucGFyZW50W2UudHlwZV0pcz10aGlzLnBhcmVudFtlLnR5cGVdKGUuc291cmNlTWFwSWQsbCxvKTtlbHNlIGlmKHRoaXMucGFyZW50LmdldFdvcmtlclNvdXJjZSl7dmFyIGM9ZS50eXBlLnNwbGl0KCIuIik7cz10aGlzLnBhcmVudC5nZXRXb3JrZXJTb3VyY2UoZS5zb3VyY2VNYXBJZCxjWzBdLGwuc291cmNlKVtjWzFdXShsLG8pfWVsc2UgbyhuZXcgRXJyb3IoIkNvdWxkIG5vdCBmaW5kIGZ1bmN0aW9uICIrZS50eXBlKSk7IWkmJnMmJnMuY2FuY2VsJiYodGhpcy5jYW5jZWxDYWxsYmFja3NbdF09cy5jYW5jZWwpfX0scWMucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3RoaXMuaW52b2tlci5yZW1vdmUoKSx0aGlzLnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIix0aGlzLnJlY2VpdmUsITEpfTt2YXIgWWM9ZnVuY3Rpb24odCxlKXt0JiYoZT90aGlzLnNldFNvdXRoV2VzdCh0KS5zZXROb3J0aEVhc3QoZSk6ND09PXQubGVuZ3RoP3RoaXMuc2V0U291dGhXZXN0KFt0WzBdLHRbMV1dKS5zZXROb3J0aEVhc3QoW3RbMl0sdFszXV0pOnRoaXMuc2V0U291dGhXZXN0KHRbMF0pLnNldE5vcnRoRWFzdCh0WzFdKSl9O1ljLnByb3RvdHlwZS5zZXROb3J0aEVhc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX25lPXQgaW5zdGFuY2VvZiBXYz9uZXcgV2ModC5sbmcsdC5sYXQpOldjLmNvbnZlcnQodCksdGhpc30sWWMucHJvdG90eXBlLnNldFNvdXRoV2VzdD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fc3c9dCBpbnN0YW5jZW9mIFdjP25ldyBXYyh0LmxuZyx0LmxhdCk6V2MuY29udmVydCh0KSx0aGlzfSxZYy5wcm90b3R5cGUuZXh0ZW5kPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbj10aGlzLl9zdyxpPXRoaXMuX25lO2lmKHQgaW5zdGFuY2VvZiBXYyllPXQscj10O2Vsc2V7aWYoISh0IGluc3RhbmNlb2YgWWMpKXtpZihBcnJheS5pc0FycmF5KHQpKXtpZig0PT09dC5sZW5ndGh8fHQuZXZlcnkoQXJyYXkuaXNBcnJheSkpe3ZhciBhPXQ7cmV0dXJuIHRoaXMuZXh0ZW5kKFljLmNvbnZlcnQoYSkpfXZhciBvPXQ7cmV0dXJuIHRoaXMuZXh0ZW5kKFdjLmNvbnZlcnQobykpfXJldHVybiB0aGlzfWlmKGU9dC5fc3cscj10Ll9uZSwhZXx8IXIpcmV0dXJuIHRoaXN9cmV0dXJuIG58fGk/KG4ubG5nPU1hdGgubWluKGUubG5nLG4ubG5nKSxuLmxhdD1NYXRoLm1pbihlLmxhdCxuLmxhdCksaS5sbmc9TWF0aC5tYXgoci5sbmcsaS5sbmcpLGkubGF0PU1hdGgubWF4KHIubGF0LGkubGF0KSk6KHRoaXMuX3N3PW5ldyBXYyhlLmxuZyxlLmxhdCksdGhpcy5fbmU9bmV3IFdjKHIubG5nLHIubGF0KSksdGhpc30sWWMucHJvdG90eXBlLmdldENlbnRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgV2MoKHRoaXMuX3N3LmxuZyt0aGlzLl9uZS5sbmcpLzIsKHRoaXMuX3N3LmxhdCt0aGlzLl9uZS5sYXQpLzIpfSxZYy5wcm90b3R5cGUuZ2V0U291dGhXZXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N3fSxZYy5wcm90b3R5cGUuZ2V0Tm9ydGhFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lfSxZYy5wcm90b3R5cGUuZ2V0Tm9ydGhXZXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXYyh0aGlzLmdldFdlc3QoKSx0aGlzLmdldE5vcnRoKCkpfSxZYy5wcm90b3R5cGUuZ2V0U291dGhFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBXYyh0aGlzLmdldEVhc3QoKSx0aGlzLmdldFNvdXRoKCkpfSxZYy5wcm90b3R5cGUuZ2V0V2VzdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdy5sbmd9LFljLnByb3RvdHlwZS5nZXRTb3V0aD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9zdy5sYXR9LFljLnByb3RvdHlwZS5nZXRFYXN0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lLmxuZ30sWWMucHJvdG90eXBlLmdldE5vcnRoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX25lLmxhdH0sWWMucHJvdG90eXBlLnRvQXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm5bdGhpcy5fc3cudG9BcnJheSgpLHRoaXMuX25lLnRvQXJyYXkoKV19LFljLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJMbmdMYXRCb3VuZHMoIit0aGlzLl9zdy50b1N0cmluZygpKyIsICIrdGhpcy5fbmUudG9TdHJpbmcoKSsiKSJ9LFljLnByb3RvdHlwZS5pc0VtcHR5PWZ1bmN0aW9uKCl7cmV0dXJuISh0aGlzLl9zdyYmdGhpcy5fbmUpfSxZYy5wcm90b3R5cGUuY29udGFpbnM9ZnVuY3Rpb24odCl7dmFyIGU9V2MuY29udmVydCh0KSxyPWUubG5nLG49ZS5sYXQsaT10aGlzLl9zdy5sYXQ8PW4mJm48PXRoaXMuX25lLmxhdCxhPXRoaXMuX3N3LmxuZzw9ciYmcjw9dGhpcy5fbmUubG5nO3JldHVybiB0aGlzLl9zdy5sbmc+dGhpcy5fbmUubG5nJiYoYT10aGlzLl9zdy5sbmc+PXImJnI+PXRoaXMuX25lLmxuZyksaSYmYX0sWWMuY29udmVydD1mdW5jdGlvbih0KXtyZXR1cm4hdHx8dCBpbnN0YW5jZW9mIFljP3Q6bmV3IFljKHQpfTt2YXIgV2M9ZnVuY3Rpb24odCxlKXtpZihpc05hTih0KXx8aXNOYU4oZSkpdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIExuZ0xhdCBvYmplY3Q6ICgiK3QrIiwgIitlKyIpIik7aWYodGhpcy5sbmc9K3QsdGhpcy5sYXQ9K2UsdGhpcy5sYXQ+OTB8fHRoaXMubGF0PC05MCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgTG5nTGF0IGxhdGl0dWRlIHZhbHVlOiBtdXN0IGJlIGJldHdlZW4gLTkwIGFuZCA5MCIpfTtXYy5wcm90b3R5cGUud3JhcD1mdW5jdGlvbigpe3JldHVybiBuZXcgV2MoYyh0aGlzLmxuZywtMTgwLDE4MCksdGhpcy5sYXQpfSxXYy5wcm90b3R5cGUudG9BcnJheT1mdW5jdGlvbigpe3JldHVyblt0aGlzLmxuZyx0aGlzLmxhdF19LFdjLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiJMbmdMYXQoIit0aGlzLmxuZysiLCAiK3RoaXMubGF0KyIpIn0sV2MucHJvdG90eXBlLmRpc3RhbmNlVG89ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5QSS8xODAscj10aGlzLmxhdCplLG49dC5sYXQqZSxpPU1hdGguc2luKHIpKk1hdGguc2luKG4pK01hdGguY29zKHIpKk1hdGguY29zKG4pKk1hdGguY29zKCh0LmxuZy10aGlzLmxuZykqZSk7cmV0dXJuIDYzNzEwMDguOCpNYXRoLmFjb3MoTWF0aC5taW4oaSwxKSl9LFdjLnByb3RvdHlwZS50b0JvdW5kcz1mdW5jdGlvbih0KXt2b2lkIDA9PT10JiYodD0wKTt2YXIgZT0zNjAqdC80MDA3NTAxNyxyPWUvTWF0aC5jb3MoTWF0aC5QSS8xODAqdGhpcy5sYXQpO3JldHVybiBuZXcgWWMobmV3IFdjKHRoaXMubG5nLXIsdGhpcy5sYXQtZSksbmV3IFdjKHRoaXMubG5nK3IsdGhpcy5sYXQrZSkpfSxXYy5jb252ZXJ0PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBXYylyZXR1cm4gdDtpZihBcnJheS5pc0FycmF5KHQpJiYoMj09PXQubGVuZ3RofHwzPT09dC5sZW5ndGgpKXJldHVybiBuZXcgV2MoTnVtYmVyKHRbMF0pLE51bWJlcih0WzFdKSk7aWYoIUFycmF5LmlzQXJyYXkodCkmJiJvYmplY3QiPT10eXBlb2YgdCYmbnVsbCE9PXQpcmV0dXJuIG5ldyBXYyhOdW1iZXIoImxuZyJpbiB0P3QubG5nOnQubG9uKSxOdW1iZXIodC5sYXQpKTt0aHJvdyBuZXcgRXJyb3IoImBMbmdMYXRMaWtlYCBhcmd1bWVudCBtdXN0IGJlIHNwZWNpZmllZCBhcyBhIExuZ0xhdCBpbnN0YW5jZSwgYW4gb2JqZWN0IHtsbmc6IDxsbmc+LCBsYXQ6IDxsYXQ+fSwgYW4gb2JqZWN0IHtsb246IDxsbmc+LCBsYXQ6IDxsYXQ+fSwgb3IgYW4gYXJyYXkgb2YgWzxsbmc+LCA8bGF0Pl0iKX07dmFyIFhjPTIqTWF0aC5QSSo2MzcxMDA4Ljg7ZnVuY3Rpb24gWmModCl7cmV0dXJuIFhjKk1hdGguY29zKHQqTWF0aC5QSS8xODApfWZ1bmN0aW9uIEpjKHQpe3JldHVybigxODArdCkvMzYwfWZ1bmN0aW9uIEtjKHQpe3JldHVybigxODAtMTgwL01hdGguUEkqTWF0aC5sb2coTWF0aC50YW4oTWF0aC5QSS80K3QqTWF0aC5QSS8zNjApKSkvMzYwfWZ1bmN0aW9uIFFjKHQsZSl7cmV0dXJuIHQvWmMoZSl9ZnVuY3Rpb24gJGModCl7dmFyIGU9MTgwLTM2MCp0O3JldHVybiAzNjAvTWF0aC5QSSpNYXRoLmF0YW4oTWF0aC5leHAoZSpNYXRoLlBJLzE4MCkpLTkwfXZhciB0dT1mdW5jdGlvbih0LGUscil7dm9pZCAwPT09ciYmKHI9MCksdGhpcy54PSt0LHRoaXMueT0rZSx0aGlzLno9K3J9O3R1LmZyb21MbmdMYXQ9ZnVuY3Rpb24odCxlKXt2b2lkIDA9PT1lJiYoZT0wKTt2YXIgcj1XYy5jb252ZXJ0KHQpO3JldHVybiBuZXcgdHUoSmMoci5sbmcpLEtjKHIubGF0KSxRYyhlLHIubGF0KSl9LHR1LnByb3RvdHlwZS50b0xuZ0xhdD1mdW5jdGlvbigpe3JldHVybiBuZXcgV2MoMzYwKnRoaXMueC0xODAsJGModGhpcy55KSl9LHR1LnByb3RvdHlwZS50b0FsdGl0dWRlPWZ1bmN0aW9uKCl7cmV0dXJuIHQ9dGhpcy56LGU9dGhpcy55LHQqWmMoJGMoZSkpO3ZhciB0LGV9LHR1LnByb3RvdHlwZS5tZXRlckluTWVyY2F0b3JDb29yZGluYXRlVW5pdHM9ZnVuY3Rpb24oKXtyZXR1cm4gMS9YYyoodD0kYyh0aGlzLnkpLDEvTWF0aC5jb3ModCpNYXRoLlBJLzE4MCkpO3ZhciB0fTt2YXIgZXU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuej10LHRoaXMueD1lLHRoaXMueT1yLHRoaXMua2V5PWl1KDAsdCx0LGUscil9O2V1LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuej09PXQueiYmdGhpcy54PT09dC54JiZ0aGlzLnk9PT10Lnl9LGV1LnByb3RvdHlwZS51cmw9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLHM9KHI9dGhpcy54LG49dGhpcy55LGk9dGhpcy56LGE9R2MoMjU2KnIsMjU2KihuPU1hdGgucG93KDIsaSktbi0xKSxpKSxvPUdjKDI1NioocisxKSwyNTYqKG4rMSksaSksYVswXSsiLCIrYVsxXSsiLCIrb1swXSsiLCIrb1sxXSksbD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuLGk9IiIsYT10O2E+MDthLS0paSs9KGUmKG49MTw8YS0xKT8xOjApKyhyJm4/MjowKTtyZXR1cm4gaX0odGhpcy56LHRoaXMueCx0aGlzLnkpO3JldHVybiB0Wyh0aGlzLngrdGhpcy55KSV0Lmxlbmd0aF0ucmVwbGFjZSgie3ByZWZpeH0iLCh0aGlzLnglMTYpLnRvU3RyaW5nKDE2KSsodGhpcy55JTE2KS50b1N0cmluZygxNikpLnJlcGxhY2UoInt6fSIsU3RyaW5nKHRoaXMueikpLnJlcGxhY2UoInt4fSIsU3RyaW5nKHRoaXMueCkpLnJlcGxhY2UoInt5fSIsU3RyaW5nKCJ0bXMiPT09ZT9NYXRoLnBvdygyLHRoaXMueiktdGhpcy55LTE6dGhpcy55KSkucmVwbGFjZSgie3F1YWRrZXl9IixsKS5yZXBsYWNlKCJ7YmJveC1lcHNnLTM4NTd9IixzKX0sZXUucHJvdG90eXBlLmdldFRpbGVQb2ludD1mdW5jdGlvbih0KXt2YXIgZT1NYXRoLnBvdygyLHRoaXMueik7cmV0dXJuIG5ldyBpKDgxOTIqKHQueCplLXRoaXMueCksODE5MioodC55KmUtdGhpcy55KSl9LGV1LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnorIi8iK3RoaXMueCsiLyIrdGhpcy55fTt2YXIgcnU9ZnVuY3Rpb24odCxlKXt0aGlzLndyYXA9dCx0aGlzLmNhbm9uaWNhbD1lLHRoaXMua2V5PWl1KHQsZS56LGUueixlLngsZS55KX0sbnU9ZnVuY3Rpb24odCxlLHIsbixpKXt0aGlzLm92ZXJzY2FsZWRaPXQsdGhpcy53cmFwPWUsdGhpcy5jYW5vbmljYWw9bmV3IGV1KHIsK24sK2kpLHRoaXMua2V5PWl1KGUsdCxyLG4saSl9O2Z1bmN0aW9uIGl1KHQsZSxyLG4saSl7KHQqPTIpPDAmJih0PS0xKnQtMSk7dmFyIGE9MTw8cjtyZXR1cm4oYSphKnQrYSppK24pLnRvU3RyaW5nKDM2KStyLnRvU3RyaW5nKDM2KStlLnRvU3RyaW5nKDM2KX1udS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm92ZXJzY2FsZWRaPT09dC5vdmVyc2NhbGVkWiYmdGhpcy53cmFwPT09dC53cmFwJiZ0aGlzLmNhbm9uaWNhbC5lcXVhbHModC5jYW5vbmljYWwpfSxudS5wcm90b3R5cGUuc2NhbGVkVG89ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jYW5vbmljYWwuei10O3JldHVybiB0PnRoaXMuY2Fub25pY2FsLno/bmV3IG51KHQsdGhpcy53cmFwLHRoaXMuY2Fub25pY2FsLnosdGhpcy5jYW5vbmljYWwueCx0aGlzLmNhbm9uaWNhbC55KTpuZXcgbnUodCx0aGlzLndyYXAsdCx0aGlzLmNhbm9uaWNhbC54Pj5lLHRoaXMuY2Fub25pY2FsLnk+PmUpfSxudS5wcm90b3R5cGUuY2FsY3VsYXRlU2NhbGVkS2V5PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5jYW5vbmljYWwuei10O3JldHVybiB0PnRoaXMuY2Fub25pY2FsLno/aXUodGhpcy53cmFwKitlLHQsdGhpcy5jYW5vbmljYWwueix0aGlzLmNhbm9uaWNhbC54LHRoaXMuY2Fub25pY2FsLnkpOml1KHRoaXMud3JhcCorZSx0LHQsdGhpcy5jYW5vbmljYWwueD4+cix0aGlzLmNhbm9uaWNhbC55Pj5yKX0sbnUucHJvdG90eXBlLmlzQ2hpbGRPZj1mdW5jdGlvbih0KXtpZih0LndyYXAhPT10aGlzLndyYXApcmV0dXJuITE7dmFyIGU9dGhpcy5jYW5vbmljYWwuei10LmNhbm9uaWNhbC56O3JldHVybiAwPT09dC5vdmVyc2NhbGVkWnx8dC5vdmVyc2NhbGVkWjx0aGlzLm92ZXJzY2FsZWRaJiZ0LmNhbm9uaWNhbC54PT09dGhpcy5jYW5vbmljYWwueD4+ZSYmdC5jYW5vbmljYWwueT09PXRoaXMuY2Fub25pY2FsLnk+PmV9LG51LnByb3RvdHlwZS5jaGlsZHJlbj1mdW5jdGlvbih0KXtpZih0aGlzLm92ZXJzY2FsZWRaPj10KXJldHVybltuZXcgbnUodGhpcy5vdmVyc2NhbGVkWisxLHRoaXMud3JhcCx0aGlzLmNhbm9uaWNhbC56LHRoaXMuY2Fub25pY2FsLngsdGhpcy5jYW5vbmljYWwueSldO3ZhciBlPXRoaXMuY2Fub25pY2FsLnorMSxyPTIqdGhpcy5jYW5vbmljYWwueCxuPTIqdGhpcy5jYW5vbmljYWwueTtyZXR1cm5bbmV3IG51KGUsdGhpcy53cmFwLGUscixuKSxuZXcgbnUoZSx0aGlzLndyYXAsZSxyKzEsbiksbmV3IG51KGUsdGhpcy53cmFwLGUscixuKzEpLG5ldyBudShlLHRoaXMud3JhcCxlLHIrMSxuKzEpXX0sbnUucHJvdG90eXBlLmlzTGVzc1RoYW49ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMud3JhcDx0LndyYXB8fCEodGhpcy53cmFwPnQud3JhcCkmJih0aGlzLm92ZXJzY2FsZWRaPHQub3ZlcnNjYWxlZFp8fCEodGhpcy5vdmVyc2NhbGVkWj50Lm92ZXJzY2FsZWRaKSYmKHRoaXMuY2Fub25pY2FsLng8dC5jYW5vbmljYWwueHx8ISh0aGlzLmNhbm9uaWNhbC54PnQuY2Fub25pY2FsLngpJiZ0aGlzLmNhbm9uaWNhbC55PHQuY2Fub25pY2FsLnkpKX0sbnUucHJvdG90eXBlLndyYXBwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IG51KHRoaXMub3ZlcnNjYWxlZFosMCx0aGlzLmNhbm9uaWNhbC56LHRoaXMuY2Fub25pY2FsLngsdGhpcy5jYW5vbmljYWwueSl9LG51LnByb3RvdHlwZS51bndyYXBUbz1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IG51KHRoaXMub3ZlcnNjYWxlZFosdCx0aGlzLmNhbm9uaWNhbC56LHRoaXMuY2Fub25pY2FsLngsdGhpcy5jYW5vbmljYWwueSl9LG51LnByb3RvdHlwZS5vdmVyc2NhbGVGYWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gTWF0aC5wb3coMix0aGlzLm92ZXJzY2FsZWRaLXRoaXMuY2Fub25pY2FsLnopfSxudS5wcm90b3R5cGUudG9VbndyYXBwZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHJ1KHRoaXMud3JhcCx0aGlzLmNhbm9uaWNhbCl9LG51LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLm92ZXJzY2FsZWRaKyIvIit0aGlzLmNhbm9uaWNhbC54KyIvIit0aGlzLmNhbm9uaWNhbC55fSxudS5wcm90b3R5cGUuZ2V0VGlsZVBvaW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmNhbm9uaWNhbC5nZXRUaWxlUG9pbnQobmV3IHR1KHQueC10aGlzLndyYXAsdC55KSl9LE5uKCJDYW5vbmljYWxUaWxlSUQiLGV1KSxObigiT3ZlcnNjYWxlZFRpbGVJRCIsbnUse29taXQ6WyJwb3NNYXRyaXgiXX0pO3ZhciBhdT1mdW5jdGlvbih0LGUscil7aWYodGhpcy51aWQ9dCxlLmhlaWdodCE9PWUud2lkdGgpdGhyb3cgbmV3IFJhbmdlRXJyb3IoIkRFTSB0aWxlcyBtdXN0IGJlIHNxdWFyZSIpO2lmKHImJiJtYXBib3giIT09ciYmInRlcnJhcml1bSIhPT1yKXJldHVybiBfKCciJytyKyciIGlzIG5vdCBhIHZhbGlkIGVuY29kaW5nIHR5cGUuIFZhbGlkIHR5cGVzIGluY2x1ZGUgIm1hcGJveCIgYW5kICJ0ZXJyYXJpdW0iLicpO3RoaXMuc3RyaWRlPWUuaGVpZ2h0O3ZhciBuPXRoaXMuZGltPWUuaGVpZ2h0LTI7dGhpcy5kYXRhPW5ldyBVaW50MzJBcnJheShlLmRhdGEuYnVmZmVyKSx0aGlzLmVuY29kaW5nPXJ8fCJtYXBib3giO2Zvcih2YXIgaT0wO2k8bjtpKyspdGhpcy5kYXRhW3RoaXMuX2lkeCgtMSxpKV09dGhpcy5kYXRhW3RoaXMuX2lkeCgwLGkpXSx0aGlzLmRhdGFbdGhpcy5faWR4KG4saSldPXRoaXMuZGF0YVt0aGlzLl9pZHgobi0xLGkpXSx0aGlzLmRhdGFbdGhpcy5faWR4KGksLTEpXT10aGlzLmRhdGFbdGhpcy5faWR4KGksMCldLHRoaXMuZGF0YVt0aGlzLl9pZHgoaSxuKV09dGhpcy5kYXRhW3RoaXMuX2lkeChpLG4tMSldO3RoaXMuZGF0YVt0aGlzLl9pZHgoLTEsLTEpXT10aGlzLmRhdGFbdGhpcy5faWR4KDAsMCldLHRoaXMuZGF0YVt0aGlzLl9pZHgobiwtMSldPXRoaXMuZGF0YVt0aGlzLl9pZHgobi0xLDApXSx0aGlzLmRhdGFbdGhpcy5faWR4KC0xLG4pXT10aGlzLmRhdGFbdGhpcy5faWR4KDAsbi0xKV0sdGhpcy5kYXRhW3RoaXMuX2lkeChuLG4pXT10aGlzLmRhdGFbdGhpcy5faWR4KG4tMSxuLTEpXX07YXUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBVaW50OEFycmF5KHRoaXMuZGF0YS5idWZmZXIpLG49NCp0aGlzLl9pZHgodCxlKTtyZXR1cm4oInRlcnJhcml1bSI9PT10aGlzLmVuY29kaW5nP3RoaXMuX3VucGFja1RlcnJhcml1bTp0aGlzLl91bnBhY2tNYXBib3gpKHJbbl0scltuKzFdLHJbbisyXSl9LGF1LnByb3RvdHlwZS5nZXRVbnBhY2tWZWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4idGVycmFyaXVtIj09PXRoaXMuZW5jb2Rpbmc/WzI1NiwxLDEvMjU2LDMyNzY4XTpbNjU1My42LDI1LjYsLjEsMWU0XX0sYXUucHJvdG90eXBlLl9pZHg9ZnVuY3Rpb24odCxlKXtpZih0PC0xfHx0Pj10aGlzLmRpbSsxfHxlPC0xfHxlPj10aGlzLmRpbSsxKXRocm93IG5ldyBSYW5nZUVycm9yKCJvdXQgb2YgcmFuZ2Ugc291cmNlIGNvb3JkaW5hdGVzIGZvciBERU0gZGF0YSIpO3JldHVybihlKzEpKnRoaXMuc3RyaWRlKyh0KzEpfSxhdS5wcm90b3R5cGUuX3VucGFja01hcGJveD1mdW5jdGlvbih0LGUscil7cmV0dXJuKDI1Nip0KjI1NisyNTYqZStyKS8xMC0xZTR9LGF1LnByb3RvdHlwZS5fdW5wYWNrVGVycmFyaXVtPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gMjU2KnQrZStyLzI1Ni0zMjc2OH0sYXUucHJvdG90eXBlLmdldFBpeGVscz1mdW5jdGlvbigpe3JldHVybiBuZXcgRW8oe3dpZHRoOnRoaXMuc3RyaWRlLGhlaWdodDp0aGlzLnN0cmlkZX0sbmV3IFVpbnQ4QXJyYXkodGhpcy5kYXRhLmJ1ZmZlcikpfSxhdS5wcm90b3R5cGUuYmFja2ZpbGxCb3JkZXI9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuZGltIT09dC5kaW0pdGhyb3cgbmV3IEVycm9yKCJkZW0gZGltZW5zaW9uIG1pc21hdGNoIik7dmFyIG49ZSp0aGlzLmRpbSxpPWUqdGhpcy5kaW0rdGhpcy5kaW0sYT1yKnRoaXMuZGltLG89cip0aGlzLmRpbSt0aGlzLmRpbTtzd2l0Y2goZSl7Y2FzZS0xOm49aS0xO2JyZWFrO2Nhc2UgMTppPW4rMX1zd2l0Y2gocil7Y2FzZS0xOmE9by0xO2JyZWFrO2Nhc2UgMTpvPWErMX1mb3IodmFyIHM9LWUqdGhpcy5kaW0sbD0tcip0aGlzLmRpbSxjPWE7YzxvO2MrKylmb3IodmFyIHU9bjt1PGk7dSsrKXRoaXMuZGF0YVt0aGlzLl9pZHgodSxjKV09dC5kYXRhW3RoaXMuX2lkeCh1K3MsYytsKV19LE5uKCJERU1EYXRhIixhdSk7dmFyIG91PWZ1bmN0aW9uKHQpe3RoaXMuX3N0cmluZ1RvTnVtYmVyPXt9LHRoaXMuX251bWJlclRvU3RyaW5nPVtdO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgcj10W2VdO3RoaXMuX3N0cmluZ1RvTnVtYmVyW3JdPWUsdGhpcy5fbnVtYmVyVG9TdHJpbmdbZV09cn19O291LnByb3RvdHlwZS5lbmNvZGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3N0cmluZ1RvTnVtYmVyW3RdfSxvdS5wcm90b3R5cGUuZGVjb2RlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9udW1iZXJUb1N0cmluZ1t0XX07dmFyIHN1PWZ1bmN0aW9uKHQsZSxyLG4saSl7dGhpcy50eXBlPSJGZWF0dXJlIix0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZT10LHQuX3o9ZSx0Ll94PXIsdC5feT1uLHRoaXMucHJvcGVydGllcz10LnByb3BlcnRpZXMsdGhpcy5pZD1pfSxsdT17Z2VvbWV0cnk6e2NvbmZpZ3VyYWJsZTohMH19O2x1Lmdlb21ldHJ5LmdldD1mdW5jdGlvbigpe3JldHVybiB2b2lkIDA9PT10aGlzLl9nZW9tZXRyeSYmKHRoaXMuX2dlb21ldHJ5PXRoaXMuX3ZlY3RvclRpbGVGZWF0dXJlLnRvR2VvSlNPTih0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feCx0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feSx0aGlzLl92ZWN0b3JUaWxlRmVhdHVyZS5feikuZ2VvbWV0cnkpLHRoaXMuX2dlb21ldHJ5fSxsdS5nZW9tZXRyeS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZ2VvbWV0cnk9dH0sc3UucHJvdG90eXBlLnRvSlNPTj1mdW5jdGlvbigpe3ZhciB0PXtnZW9tZXRyeTp0aGlzLmdlb21ldHJ5fTtmb3IodmFyIGUgaW4gdGhpcykiX2dlb21ldHJ5IiE9PWUmJiJfdmVjdG9yVGlsZUZlYXR1cmUiIT09ZSYmKHRbZV09dGhpc1tlXSk7cmV0dXJuIHR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHN1LnByb3RvdHlwZSxsdSk7dmFyIGN1PWZ1bmN0aW9uKCl7dGhpcy5zdGF0ZT17fSx0aGlzLnN0YXRlQ2hhbmdlcz17fSx0aGlzLmRlbGV0ZWRTdGF0ZXM9e319O2N1LnByb3RvdHlwZS51cGRhdGVTdGF0ZT1mdW5jdGlvbih0LGUscil7dmFyIG49U3RyaW5nKGUpO2lmKHRoaXMuc3RhdGVDaGFuZ2VzW3RdPXRoaXMuc3RhdGVDaGFuZ2VzW3RdfHx7fSx0aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXT10aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXXx8e30sdSh0aGlzLnN0YXRlQ2hhbmdlc1t0XVtuXSxyKSxudWxsPT09dGhpcy5kZWxldGVkU3RhdGVzW3RdKWZvcih2YXIgaSBpbiB0aGlzLmRlbGV0ZWRTdGF0ZXNbdF09e30sdGhpcy5zdGF0ZVt0XSlpIT09biYmKHRoaXMuZGVsZXRlZFN0YXRlc1t0XVtpXT1udWxsKTtlbHNlIGlmKHRoaXMuZGVsZXRlZFN0YXRlc1t0XSYmbnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXSlmb3IodmFyIGEgaW4gdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPXt9LHRoaXMuc3RhdGVbdF1bbl0pclthXXx8KHRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVthXT1udWxsKTtlbHNlIGZvcih2YXIgbyBpbiByKXt0aGlzLmRlbGV0ZWRTdGF0ZXNbdF0mJnRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXSYmbnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVtvXSYmZGVsZXRlIHRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVtvXX19LGN1LnByb3RvdHlwZS5yZW1vdmVGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlLHIpe2lmKCEobnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1t0XSkpe3ZhciBuPVN0cmluZyhlKTtpZih0aGlzLmRlbGV0ZWRTdGF0ZXNbdF09dGhpcy5kZWxldGVkU3RhdGVzW3RdfHx7fSxyJiZ2b2lkIDAhPT1lKW51bGwhPT10aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bbl0mJih0aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bbl09dGhpcy5kZWxldGVkU3RhdGVzW3RdW25dfHx7fSx0aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bbl1bcl09bnVsbCk7ZWxzZSBpZih2b2lkIDAhPT1lKXtpZih0aGlzLnN0YXRlQ2hhbmdlc1t0XSYmdGhpcy5zdGF0ZUNoYW5nZXNbdF1bbl0pZm9yKHIgaW4gdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPXt9LHRoaXMuc3RhdGVDaGFuZ2VzW3RdW25dKXRoaXMuZGVsZXRlZFN0YXRlc1t0XVtuXVtyXT1udWxsO2Vsc2UgdGhpcy5kZWxldGVkU3RhdGVzW3RdW25dPW51bGx9ZWxzZSB0aGlzLmRlbGV0ZWRTdGF0ZXNbdF09bnVsbH19LGN1LnByb3RvdHlwZS5nZXRTdGF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPVN0cmluZyhlKSxuPXRoaXMuc3RhdGVbdF18fHt9LGk9dGhpcy5zdGF0ZUNoYW5nZXNbdF18fHt9LGE9dSh7fSxuW3JdLGlbcl0pO2lmKG51bGw9PT10aGlzLmRlbGV0ZWRTdGF0ZXNbdF0pcmV0dXJue307aWYodGhpcy5kZWxldGVkU3RhdGVzW3RdKXt2YXIgbz10aGlzLmRlbGV0ZWRTdGF0ZXNbdF1bZV07aWYobnVsbD09PW8pcmV0dXJue307Zm9yKHZhciBzIGluIG8pZGVsZXRlIGFbc119cmV0dXJuIGF9LGN1LnByb3RvdHlwZS5pbml0aWFsaXplVGlsZVN0YXRlPWZ1bmN0aW9uKHQsZSl7dC5zZXRGZWF0dXJlU3RhdGUodGhpcy5zdGF0ZSxlKX0sY3UucHJvdG90eXBlLmNvYWxlc2NlQ2hhbmdlcz1mdW5jdGlvbih0LGUpe3ZhciByPXt9O2Zvcih2YXIgbiBpbiB0aGlzLnN0YXRlQ2hhbmdlcyl7dGhpcy5zdGF0ZVtuXT10aGlzLnN0YXRlW25dfHx7fTt2YXIgaT17fTtmb3IodmFyIGEgaW4gdGhpcy5zdGF0ZUNoYW5nZXNbbl0pdGhpcy5zdGF0ZVtuXVthXXx8KHRoaXMuc3RhdGVbbl1bYV09e30pLHUodGhpcy5zdGF0ZVtuXVthXSx0aGlzLnN0YXRlQ2hhbmdlc1tuXVthXSksaVthXT10aGlzLnN0YXRlW25dW2FdO3Jbbl09aX1mb3IodmFyIG8gaW4gdGhpcy5kZWxldGVkU3RhdGVzKXt0aGlzLnN0YXRlW29dPXRoaXMuc3RhdGVbb118fHt9O3ZhciBzPXt9O2lmKG51bGw9PT10aGlzLmRlbGV0ZWRTdGF0ZXNbb10pZm9yKHZhciBsIGluIHRoaXMuc3RhdGVbb10pc1tsXT17fSx0aGlzLnN0YXRlW29dW2xdPXt9O2Vsc2UgZm9yKHZhciBjIGluIHRoaXMuZGVsZXRlZFN0YXRlc1tvXSl7aWYobnVsbD09PXRoaXMuZGVsZXRlZFN0YXRlc1tvXVtjXSl0aGlzLnN0YXRlW29dW2NdPXt9O2Vsc2UgZm9yKHZhciBmPTAsaD1PYmplY3Qua2V5cyh0aGlzLmRlbGV0ZWRTdGF0ZXNbb11bY10pO2Y8aC5sZW5ndGg7Zis9MSl7dmFyIHA9aFtmXTtkZWxldGUgdGhpcy5zdGF0ZVtvXVtjXVtwXX1zW2NdPXRoaXMuc3RhdGVbb11bY119cltvXT1yW29dfHx7fSx1KHJbb10scyl9aWYodGhpcy5zdGF0ZUNoYW5nZXM9e30sdGhpcy5kZWxldGVkU3RhdGVzPXt9LDAhPT1PYmplY3Qua2V5cyhyKS5sZW5ndGgpZm9yKHZhciBkIGluIHQpe3RbZF0uc2V0RmVhdHVyZVN0YXRlKHIsZSl9fTt2YXIgdXU9ZnVuY3Rpb24odCxlKXt0aGlzLnRpbGVJRD10LHRoaXMueD10LmNhbm9uaWNhbC54LHRoaXMueT10LmNhbm9uaWNhbC55LHRoaXMuej10LmNhbm9uaWNhbC56LHRoaXMuZ3JpZD1uZXcgem4oODE5MiwxNiwwKSx0aGlzLmdyaWQzRD1uZXcgem4oODE5MiwxNiwwKSx0aGlzLmZlYXR1cmVJbmRleEFycmF5PW5ldyBmYSx0aGlzLnByb21vdGVJZD1lfTtmdW5jdGlvbiBmdSh0LGUscixuLGkpe3JldHVybiB2KHQsKGZ1bmN0aW9uKHQsYSl7dmFyIG89ZSBpbnN0YW5jZW9mIF9pP2UuZ2V0KGEpOm51bGw7cmV0dXJuIG8mJm8uZXZhbHVhdGU/by5ldmFsdWF0ZShyLG4saSk6b30pKX1mdW5jdGlvbiBodSh0KXtmb3IodmFyIGU9MS8wLHI9MS8wLG49LTEvMCxpPS0xLzAsYT0wLG89dDthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV07ZT1NYXRoLm1pbihlLHMueCkscj1NYXRoLm1pbihyLHMueSksbj1NYXRoLm1heChuLHMueCksaT1NYXRoLm1heChpLHMueSl9cmV0dXJue21pblg6ZSxtaW5ZOnIsbWF4WDpuLG1heFk6aX19ZnVuY3Rpb24gcHUodCxlKXtyZXR1cm4gZS10fXV1LnByb3RvdHlwZS5pbnNlcnQ9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBvPXRoaXMuZmVhdHVyZUluZGV4QXJyYXkubGVuZ3RoO3RoaXMuZmVhdHVyZUluZGV4QXJyYXkuZW1wbGFjZUJhY2socixuLGkpO2Zvcih2YXIgcz1hP3RoaXMuZ3JpZDNEOnRoaXMuZ3JpZCxsPTA7bDxlLmxlbmd0aDtsKyspe2Zvcih2YXIgYz1lW2xdLHU9WzEvMCwxLzAsLTEvMCwtMS8wXSxmPTA7ZjxjLmxlbmd0aDtmKyspe3ZhciBoPWNbZl07dVswXT1NYXRoLm1pbih1WzBdLGgueCksdVsxXT1NYXRoLm1pbih1WzFdLGgueSksdVsyXT1NYXRoLm1heCh1WzJdLGgueCksdVszXT1NYXRoLm1heCh1WzNdLGgueSl9dVswXTw4MTkyJiZ1WzFdPDgxOTImJnVbMl0+PTAmJnVbM10+PTAmJnMuaW5zZXJ0KG8sdVswXSx1WzFdLHVbMl0sdVszXSl9fSx1dS5wcm90b3R5cGUubG9hZFZUTGF5ZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudnRMYXllcnN8fCh0aGlzLnZ0TGF5ZXJzPW5ldyBMcy5WZWN0b3JUaWxlKG5ldyBhbCh0aGlzLnJhd1RpbGVEYXRhKSkubGF5ZXJzLHRoaXMuc291cmNlTGF5ZXJDb2Rlcj1uZXcgb3UodGhpcy52dExheWVycz9PYmplY3Qua2V5cyh0aGlzLnZ0TGF5ZXJzKS5zb3J0KCk6WyJfZ2VvanNvblRpbGVMYXllciJdKSksdGhpcy52dExheWVyc30sdXUucHJvdG90eXBlLnF1ZXJ5PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhPXRoaXM7dGhpcy5sb2FkVlRMYXllcnMoKTtmb3IodmFyIG89dC5wYXJhbXN8fHt9LHM9ODE5Mi90LnRpbGVTaXplL3Quc2NhbGUsbD1zbihvLmZpbHRlciksYz10LnF1ZXJ5R2VvbWV0cnksdT10LnF1ZXJ5UGFkZGluZypzLGY9aHUoYyksaD10aGlzLmdyaWQucXVlcnkoZi5taW5YLXUsZi5taW5ZLXUsZi5tYXhYK3UsZi5tYXhZK3UpLHA9aHUodC5jYW1lcmFRdWVyeUdlb21ldHJ5KSxkPXRoaXMuZ3JpZDNELnF1ZXJ5KHAubWluWC11LHAubWluWS11LHAubWF4WCt1LHAubWF4WSt1LChmdW5jdGlvbihlLHIsbixhKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsbixhKXtmb3IodmFyIG89MCxzPXQ7bzxzLmxlbmd0aDtvKz0xKXt2YXIgbD1zW29dO2lmKGU8PWwueCYmcjw9bC55JiZuPj1sLngmJmE+PWwueSlyZXR1cm4hMH12YXIgYz1bbmV3IGkoZSxyKSxuZXcgaShlLGEpLG5ldyBpKG4sYSksbmV3IGkobixyKV07aWYodC5sZW5ndGg+Milmb3IodmFyIHU9MCxmPWM7dTxmLmxlbmd0aDt1Kz0xKXtpZihpbyh0LGZbdV0pKXJldHVybiEwfWZvcih2YXIgaD0wO2g8dC5sZW5ndGgtMTtoKyspe2lmKGFvKHRbaF0sdFtoKzFdLGMpKXJldHVybiEwfXJldHVybiExfSh0LmNhbWVyYVF1ZXJ5R2VvbWV0cnksZS11LHItdSxuK3UsYSt1KX0pKSxtPTAsZz1kO208Zy5sZW5ndGg7bSs9MSl7dmFyIHY9Z1ttXTtoLnB1c2godil9aC5zb3J0KHB1KTtmb3IodmFyIHkseD17fSxiPWZ1bmN0aW9uKGkpe3ZhciB1PWhbaV07aWYodSE9PXkpe3k9dTt2YXIgZj1hLmZlYXR1cmVJbmRleEFycmF5LmdldCh1KSxwPW51bGw7YS5sb2FkTWF0Y2hpbmdGZWF0dXJlKHgsZi5idWNrZXRJbmRleCxmLnNvdXJjZUxheWVySW5kZXgsZi5mZWF0dXJlSW5kZXgsbCxvLmxheWVycyxvLmF2YWlsYWJsZUltYWdlcyxlLHIsbiwoZnVuY3Rpb24oZSxyLG4pe3JldHVybiBwfHwocD1ZYShlKSksci5xdWVyeUludGVyc2VjdHNGZWF0dXJlKGMsZSxuLHAsYS56LHQudHJhbnNmb3JtLHMsdC5waXhlbFBvc01hdHJpeCl9KSl9fSxfPTA7XzxoLmxlbmd0aDtfKyspYihfKTtyZXR1cm4geH0sdXUucHJvdG90eXBlLmxvYWRNYXRjaGluZ0ZlYXR1cmU9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1KXt2YXIgZj10aGlzLmJ1Y2tldExheWVySURzW2VdO2lmKCFhfHxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKWlmKGUuaW5kZXhPZih0W3JdKT49MClyZXR1cm4hMDtyZXR1cm4hMX0oYSxmKSl7dmFyIGg9dGhpcy5zb3VyY2VMYXllckNvZGVyLmRlY29kZShyKSxwPXRoaXMudnRMYXllcnNbaF0uZmVhdHVyZShuKTtpZihpLmZpbHRlcihuZXcgcGkodGhpcy50aWxlSUQub3ZlcnNjYWxlZFopLHApKWZvcih2YXIgZD10aGlzLmdldElkKHAsaCksbT0wO208Zi5sZW5ndGg7bSsrKXt2YXIgZz1mW21dO2lmKCEoYSYmYS5pbmRleE9mKGcpPDApKXt2YXIgdj1zW2ddO2lmKHYpe3ZhciB5PXt9O3ZvaWQgMCE9PWQmJmMmJih5PWMuZ2V0U3RhdGUodi5zb3VyY2VMYXllcnx8Il9nZW9qc29uVGlsZUxheWVyIixkKSk7dmFyIHg9bFtnXTt4LnBhaW50PWZ1KHgucGFpbnQsdi5wYWludCxwLHksbykseC5sYXlvdXQ9ZnUoeC5sYXlvdXQsdi5sYXlvdXQscCx5LG8pO3ZhciBiPSF1fHx1KHAsdix5KTtpZihiKXt2YXIgXz1uZXcgc3UocCx0aGlzLnosdGhpcy54LHRoaXMueSxkKTtfLmxheWVyPXg7dmFyIHc9dFtnXTt2b2lkIDA9PT13JiYodz10W2ddPVtdKSx3LnB1c2goe2ZlYXR1cmVJbmRleDpuLGZlYXR1cmU6XyxpbnRlcnNlY3Rpb25aOmJ9KX19fX19fSx1dS5wcm90b3R5cGUubG9va3VwU3ltYm9sRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzKXt2YXIgbD17fTt0aGlzLmxvYWRWVExheWVycygpO2Zvcih2YXIgYz1zbihpKSx1PTAsZj10O3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XTt0aGlzLmxvYWRNYXRjaGluZ0ZlYXR1cmUobCxyLG4saCxjLGEsbyxzLGUpfXJldHVybiBsfSx1dS5wcm90b3R5cGUuaGFzTGF5ZXI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj10aGlzLmJ1Y2tldExheWVySURzO2U8ci5sZW5ndGg7ZSs9MSlmb3IodmFyIG49MCxpPXJbZV07bjxpLmxlbmd0aDtuKz0xKXtpZih0PT09aVtuXSlyZXR1cm4hMH1yZXR1cm4hMX0sdXUucHJvdG90eXBlLmdldElkPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5pZDtpZih0aGlzLnByb21vdGVJZCl7dmFyIG49InN0cmluZyI9PXR5cGVvZiB0aGlzLnByb21vdGVJZD90aGlzLnByb21vdGVJZDp0aGlzLnByb21vdGVJZFtlXTsiYm9vbGVhbiI9PXR5cGVvZihyPXQucHJvcGVydGllc1tuXSkmJihyPU51bWJlcihyKSl9cmV0dXJuIHJ9LE5uKCJGZWF0dXJlSW5kZXgiLHV1LHtvbWl0OlsicmF3VGlsZURhdGEiLCJzb3VyY2VMYXllckNvZGVyIl19KTt2YXIgZHU9ZnVuY3Rpb24odCxlKXt0aGlzLnRpbGVJRD10LHRoaXMudWlkPWgoKSx0aGlzLnVzZXM9MCx0aGlzLnRpbGVTaXplPWUsdGhpcy5idWNrZXRzPXt9LHRoaXMuZXhwaXJhdGlvblRpbWU9bnVsbCx0aGlzLnF1ZXJ5UGFkZGluZz0wLHRoaXMuaGFzU3ltYm9sQnVja2V0cz0hMSx0aGlzLmhhc1JUTFRleHQ9ITEsdGhpcy5kZXBlbmRlbmNpZXM9e30sdGhpcy5leHBpcmVkUmVxdWVzdENvdW50PTAsdGhpcy5zdGF0ZT0ibG9hZGluZyJ9O2R1LnByb3RvdHlwZS5yZWdpc3RlckZhZGVEdXJhdGlvbj1mdW5jdGlvbih0KXt2YXIgZT10K3RoaXMudGltZUFkZGVkO2U8Ui5ub3coKXx8dGhpcy5mYWRlRW5kVGltZSYmZTx0aGlzLmZhZGVFbmRUaW1lfHwodGhpcy5mYWRlRW5kVGltZT1lKX0sZHUucHJvdG90eXBlLndhc1JlcXVlc3RlZD1mdW5jdGlvbigpe3JldHVybiJlcnJvcmVkIj09PXRoaXMuc3RhdGV8fCJsb2FkZWQiPT09dGhpcy5zdGF0ZXx8InJlbG9hZGluZyI9PT10aGlzLnN0YXRlfSxkdS5wcm90b3R5cGUubG9hZFZlY3RvckRhdGE9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuaGFzRGF0YSgpJiZ0aGlzLnVubG9hZFZlY3RvckRhdGEoKSx0aGlzLnN0YXRlPSJsb2FkZWQiLHQpe2Zvcih2YXIgbiBpbiB0LmZlYXR1cmVJbmRleCYmKHRoaXMubGF0ZXN0RmVhdHVyZUluZGV4PXQuZmVhdHVyZUluZGV4LHQucmF3VGlsZURhdGE/KHRoaXMubGF0ZXN0UmF3VGlsZURhdGE9dC5yYXdUaWxlRGF0YSx0aGlzLmxhdGVzdEZlYXR1cmVJbmRleC5yYXdUaWxlRGF0YT10LnJhd1RpbGVEYXRhKTp0aGlzLmxhdGVzdFJhd1RpbGVEYXRhJiYodGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgucmF3VGlsZURhdGE9dGhpcy5sYXRlc3RSYXdUaWxlRGF0YSkpLHRoaXMuY29sbGlzaW9uQm94QXJyYXk9dC5jb2xsaXNpb25Cb3hBcnJheSx0aGlzLmJ1Y2tldHM9ZnVuY3Rpb24odCxlKXt2YXIgcj17fTtpZighZSlyZXR1cm4gcjtmb3IodmFyIG49ZnVuY3Rpb24oKXt2YXIgdD1hW2ldLG49dC5sYXllcklkcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLmdldExheWVyKHQpfSkpLmZpbHRlcihCb29sZWFuKTtpZigwIT09bi5sZW5ndGgpe3QubGF5ZXJzPW4sdC5zdGF0ZURlcGVuZGVudExheWVySWRzJiYodC5zdGF0ZURlcGVuZGVudExheWVycz10LnN0YXRlRGVwZW5kZW50TGF5ZXJJZHMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gbi5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmlkPT09dH0pKVswXX0pKSk7Zm9yKHZhciBvPTAscz1uO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTtyW2wuaWRdPXR9fX0saT0wLGE9dDtpPGEubGVuZ3RoO2krPTEpbigpO3JldHVybiByfSh0LmJ1Y2tldHMsZS5zdHlsZSksdGhpcy5oYXNTeW1ib2xCdWNrZXRzPSExLHRoaXMuYnVja2V0cyl7dmFyIGk9dGhpcy5idWNrZXRzW25dO2lmKGkgaW5zdGFuY2VvZiBNYyl7aWYodGhpcy5oYXNTeW1ib2xCdWNrZXRzPSEwLCFyKWJyZWFrO2kuanVzdFJlbG9hZGVkPSEwfX1pZih0aGlzLmhhc1JUTFRleHQ9ITEsdGhpcy5oYXNTeW1ib2xCdWNrZXRzKWZvcih2YXIgYSBpbiB0aGlzLmJ1Y2tldHMpe3ZhciBvPXRoaXMuYnVja2V0c1thXTtpZihvIGluc3RhbmNlb2YgTWMmJm8uaGFzUlRMVGV4dCl7dGhpcy5oYXNSVExUZXh0PSEwLGhpLmlzTG9hZGluZygpfHxoaS5pc0xvYWRlZCgpfHwiZGVmZXJyZWQiIT09dWkoKXx8ZmkoKTticmVha319Zm9yKHZhciBzIGluIHRoaXMucXVlcnlQYWRkaW5nPTAsdGhpcy5idWNrZXRzKXt2YXIgbD10aGlzLmJ1Y2tldHNbc107dGhpcy5xdWVyeVBhZGRpbmc9TWF0aC5tYXgodGhpcy5xdWVyeVBhZGRpbmcsZS5zdHlsZS5nZXRMYXllcihzKS5xdWVyeVJhZGl1cyhsKSl9dC5pbWFnZUF0bGFzJiYodGhpcy5pbWFnZUF0bGFzPXQuaW1hZ2VBdGxhcyksdC5nbHlwaEF0bGFzSW1hZ2UmJih0aGlzLmdseXBoQXRsYXNJbWFnZT10LmdseXBoQXRsYXNJbWFnZSl9ZWxzZSB0aGlzLmNvbGxpc2lvbkJveEFycmF5PW5ldyBuYX0sZHUucHJvdG90eXBlLnVubG9hZFZlY3RvckRhdGE9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5idWNrZXRzKXRoaXMuYnVja2V0c1t0XS5kZXN0cm95KCk7dGhpcy5idWNrZXRzPXt9LHRoaXMuaW1hZ2VBdGxhc1RleHR1cmUmJnRoaXMuaW1hZ2VBdGxhc1RleHR1cmUuZGVzdHJveSgpLHRoaXMuaW1hZ2VBdGxhcyYmKHRoaXMuaW1hZ2VBdGxhcz1udWxsKSx0aGlzLmdseXBoQXRsYXNUZXh0dXJlJiZ0aGlzLmdseXBoQXRsYXNUZXh0dXJlLmRlc3Ryb3koKSx0aGlzLmxhdGVzdEZlYXR1cmVJbmRleD1udWxsLHRoaXMuc3RhdGU9InVubG9hZGVkIn0sZHUucHJvdG90eXBlLmdldEJ1Y2tldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5idWNrZXRzW3QuaWRdfSxkdS5wcm90b3R5cGUudXBsb2FkPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSBpbiB0aGlzLmJ1Y2tldHMpe3ZhciByPXRoaXMuYnVja2V0c1tlXTtyLnVwbG9hZFBlbmRpbmcoKSYmci51cGxvYWQodCl9dmFyIG49dC5nbDt0aGlzLmltYWdlQXRsYXMmJiF0aGlzLmltYWdlQXRsYXMudXBsb2FkZWQmJih0aGlzLmltYWdlQXRsYXNUZXh0dXJlPW5ldyBWYyh0LHRoaXMuaW1hZ2VBdGxhcy5pbWFnZSxuLlJHQkEpLHRoaXMuaW1hZ2VBdGxhcy51cGxvYWRlZD0hMCksdGhpcy5nbHlwaEF0bGFzSW1hZ2UmJih0aGlzLmdseXBoQXRsYXNUZXh0dXJlPW5ldyBWYyh0LHRoaXMuZ2x5cGhBdGxhc0ltYWdlLG4uQUxQSEEpLHRoaXMuZ2x5cGhBdGxhc0ltYWdlPW51bGwpfSxkdS5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbih0KXt0aGlzLmltYWdlQXRsYXMmJnRoaXMuaW1hZ2VBdGxhcy5wYXRjaFVwZGF0ZWRJbWFnZXModCx0aGlzLmltYWdlQXRsYXNUZXh0dXJlKX0sZHUucHJvdG90eXBlLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjKXtyZXR1cm4gdGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgmJnRoaXMubGF0ZXN0RmVhdHVyZUluZGV4LnJhd1RpbGVEYXRhP3RoaXMubGF0ZXN0RmVhdHVyZUluZGV4LnF1ZXJ5KHtxdWVyeUdlb21ldHJ5Om4sY2FtZXJhUXVlcnlHZW9tZXRyeTppLHNjYWxlOmEsdGlsZVNpemU6dGhpcy50aWxlU2l6ZSxwaXhlbFBvc01hdHJpeDpjLHRyYW5zZm9ybTpzLHBhcmFtczpvLHF1ZXJ5UGFkZGluZzp0aGlzLnF1ZXJ5UGFkZGluZypsfSx0LGUscik6e319LGR1LnByb3RvdHlwZS5xdWVyeVNvdXJjZUZlYXR1cmVzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5sYXRlc3RGZWF0dXJlSW5kZXg7aWYociYmci5yYXdUaWxlRGF0YSl7dmFyIG49ci5sb2FkVlRMYXllcnMoKSxpPWU/ZS5zb3VyY2VMYXllcjoiIixhPW4uX2dlb2pzb25UaWxlTGF5ZXJ8fG5baV07aWYoYSlmb3IodmFyIG89c24oZSYmZS5maWx0ZXIpLHM9dGhpcy50aWxlSUQuY2Fub25pY2FsLGw9cy56LGM9cy54LHU9cy55LGY9e3o6bCx4OmMseTp1fSxoPTA7aDxhLmxlbmd0aDtoKyspe3ZhciBwPWEuZmVhdHVyZShoKTtpZihvLmZpbHRlcihuZXcgcGkodGhpcy50aWxlSUQub3ZlcnNjYWxlZFopLHApKXt2YXIgZD1yLmdldElkKHAsaSksbT1uZXcgc3UocCxsLGMsdSxkKTttLnRpbGU9Zix0LnB1c2gobSl9fX19LGR1LnByb3RvdHlwZS5oYXNEYXRhPWZ1bmN0aW9uKCl7cmV0dXJuImxvYWRlZCI9PT10aGlzLnN0YXRlfHwicmVsb2FkaW5nIj09PXRoaXMuc3RhdGV8fCJleHBpcmVkIj09PXRoaXMuc3RhdGV9LGR1LnByb3RvdHlwZS5wYXR0ZXJuc0xvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmltYWdlQXRsYXMmJiEhT2JqZWN0LmtleXModGhpcy5pbWFnZUF0bGFzLnBhdHRlcm5Qb3NpdGlvbnMpLmxlbmd0aH0sZHUucHJvdG90eXBlLnNldEV4cGlyeURhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5leHBpcmF0aW9uVGltZTtpZih0LmNhY2hlQ29udHJvbCl7dmFyIHI9QSh0LmNhY2hlQ29udHJvbCk7clsibWF4LWFnZSJdJiYodGhpcy5leHBpcmF0aW9uVGltZT1EYXRlLm5vdygpKzFlMypyWyJtYXgtYWdlIl0pfWVsc2UgdC5leHBpcmVzJiYodGhpcy5leHBpcmF0aW9uVGltZT1uZXcgRGF0ZSh0LmV4cGlyZXMpLmdldFRpbWUoKSk7aWYodGhpcy5leHBpcmF0aW9uVGltZSl7dmFyIG49RGF0ZS5ub3coKSxpPSExO2lmKHRoaXMuZXhwaXJhdGlvblRpbWU+bilpPSExO2Vsc2UgaWYoZSlpZih0aGlzLmV4cGlyYXRpb25UaW1lPGUpaT0hMDtlbHNle3ZhciBhPXRoaXMuZXhwaXJhdGlvblRpbWUtZTthP3RoaXMuZXhwaXJhdGlvblRpbWU9bitNYXRoLm1heChhLDNlNCk6aT0hMH1lbHNlIGk9ITA7aT8odGhpcy5leHBpcmVkUmVxdWVzdENvdW50KyssdGhpcy5zdGF0ZT0iZXhwaXJlZCIpOnRoaXMuZXhwaXJlZFJlcXVlc3RDb3VudD0wfX0sZHUucHJvdG90eXBlLmdldEV4cGlyeVRpbWVvdXQ9ZnVuY3Rpb24oKXtpZih0aGlzLmV4cGlyYXRpb25UaW1lKXJldHVybiB0aGlzLmV4cGlyZWRSZXF1ZXN0Q291bnQ/MWUzKigxPDxNYXRoLm1pbih0aGlzLmV4cGlyZWRSZXF1ZXN0Q291bnQtMSwzMSkpOk1hdGgubWluKHRoaXMuZXhwaXJhdGlvblRpbWUtKG5ldyBEYXRlKS5nZXRUaW1lKCksTWF0aC5wb3coMiwzMSktMSl9LGR1LnByb3RvdHlwZS5zZXRGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmxhdGVzdEZlYXR1cmVJbmRleCYmdGhpcy5sYXRlc3RGZWF0dXJlSW5kZXgucmF3VGlsZURhdGEmJjAhPT1PYmplY3Qua2V5cyh0KS5sZW5ndGgpe3ZhciByPXRoaXMubGF0ZXN0RmVhdHVyZUluZGV4LmxvYWRWVExheWVycygpO2Zvcih2YXIgbiBpbiB0aGlzLmJ1Y2tldHMpaWYoZS5zdHlsZS5oYXNMYXllcihuKSl7dmFyIGk9dGhpcy5idWNrZXRzW25dLGE9aS5sYXllcnNbMF0uc291cmNlTGF5ZXJ8fCJfZ2VvanNvblRpbGVMYXllciIsbz1yW2FdLHM9dFthXTtpZihvJiZzJiYwIT09T2JqZWN0LmtleXMocykubGVuZ3RoKXtpLnVwZGF0ZShzLG8sdGhpcy5pbWFnZUF0bGFzJiZ0aGlzLmltYWdlQXRsYXMucGF0dGVyblBvc2l0aW9uc3x8e30pO3ZhciBsPWUmJmUuc3R5bGUmJmUuc3R5bGUuZ2V0TGF5ZXIobik7bCYmKHRoaXMucXVlcnlQYWRkaW5nPU1hdGgubWF4KHRoaXMucXVlcnlQYWRkaW5nLGwucXVlcnlSYWRpdXMoaSkpKX19fX0sZHUucHJvdG90eXBlLmhvbGRpbmdGb3JGYWRlPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuc3ltYm9sRmFkZUhvbGRVbnRpbH0sZHUucHJvdG90eXBlLnN5bWJvbEZhZGVGaW5pc2hlZD1mdW5jdGlvbigpe3JldHVybiF0aGlzLnN5bWJvbEZhZGVIb2xkVW50aWx8fHRoaXMuc3ltYm9sRmFkZUhvbGRVbnRpbDxSLm5vdygpfSxkdS5wcm90b3R5cGUuY2xlYXJGYWRlSG9sZD1mdW5jdGlvbigpe3RoaXMuc3ltYm9sRmFkZUhvbGRVbnRpbD12b2lkIDB9LGR1LnByb3RvdHlwZS5zZXRIb2xkRHVyYXRpb249ZnVuY3Rpb24odCl7dGhpcy5zeW1ib2xGYWRlSG9sZFVudGlsPVIubm93KCkrdH0sZHUucHJvdG90eXBlLnNldERlcGVuZGVuY2llcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj17fSxuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7cltpW25dXT0hMH10aGlzLmRlcGVuZGVuY2llc1t0XT1yfSxkdS5wcm90b3R5cGUuaGFzRGVwZW5kZW5jeT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49dDtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBpPW5bcl0sYT10aGlzLmRlcGVuZGVuY2llc1tpXTtpZihhKWZvcih2YXIgbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe2lmKGFbc1tvXV0pcmV0dXJuITB9fXJldHVybiExfTt2YXIgbXU9c2VsZi5wZXJmb3JtYW5jZSxndT1mdW5jdGlvbih0KXt0aGlzLl9tYXJrcz17c3RhcnQ6W3QudXJsLCJzdGFydCJdLmpvaW4oIiMiKSxlbmQ6W3QudXJsLCJlbmQiXS5qb2luKCIjIiksbWVhc3VyZTp0LnVybC50b1N0cmluZygpfSxtdS5tYXJrKHRoaXMuX21hcmtzLnN0YXJ0KX07Z3UucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbigpe211Lm1hcmsodGhpcy5fbWFya3MuZW5kKTt2YXIgdD1tdS5nZXRFbnRyaWVzQnlOYW1lKHRoaXMuX21hcmtzLm1lYXN1cmUpO3JldHVybiAwPT09dC5sZW5ndGgmJihtdS5tZWFzdXJlKHRoaXMuX21hcmtzLm1lYXN1cmUsdGhpcy5fbWFya3Muc3RhcnQsdGhpcy5fbWFya3MuZW5kKSx0PW11LmdldEVudHJpZXNCeU5hbWUodGhpcy5fbWFya3MubWVhc3VyZSksbXUuY2xlYXJNYXJrcyh0aGlzLl9tYXJrcy5zdGFydCksbXUuY2xlYXJNYXJrcyh0aGlzLl9tYXJrcy5lbmQpLG11LmNsZWFyTWVhc3VyZXModGhpcy5fbWFya3MubWVhc3VyZSkpLHR9LHQuQWN0b3I9cWMsdC5BbHBoYUltYWdlPVNvLHQuQ2Fub25pY2FsVGlsZUlEPWV1LHQuQ29sbGlzaW9uQm94QXJyYXk9bmEsdC5Db2xvcj10ZSx0LkRFTURhdGE9YXUsdC5EYXRhQ29uc3RhbnRQcm9wZXJ0eT13aSx0LkRpY3Rpb25hcnlDb2Rlcj1vdSx0LkVYVEVOVD04MTkyLHQuRXJyb3JFdmVudD1TdCx0LkV2YWx1YXRpb25QYXJhbWV0ZXJzPXBpLHQuRXZlbnQ9TXQsdC5FdmVudGVkPUV0LHQuRmVhdHVyZUluZGV4PXV1LHQuRmlsbEJ1Y2tldD1ncyx0LkZpbGxFeHRydXNpb25CdWNrZXQ9T3MsdC5JbWFnZUF0bGFzPUxsLHQuSW1hZ2VQb3NpdGlvbj1TbCx0LkxpbmVCdWNrZXQ9cXMsdC5MbmdMYXQ9V2MsdC5MbmdMYXRCb3VuZHM9WWMsdC5NZXJjYXRvckNvb3JkaW5hdGU9dHUsdC5PTkVfRU09MjQsdC5PdmVyc2NhbGVkVGlsZUlEPW51LHQuUG9pbnQ9aSx0LlBvaW50JDE9aSx0LlByb3BlcnRpZXM9U2ksdC5Qcm90b2J1Zj1hbCx0LlJHQkFJbWFnZT1Fbyx0LlJlcXVlc3RNYW5hZ2VyPUgsdC5SZXF1ZXN0UGVyZm9ybWFuY2U9Z3UsdC5SZXNvdXJjZVR5cGU9ZHQsdC5TZWdtZW50VmVjdG9yPXBhLHQuU291cmNlRmVhdHVyZVN0YXRlPWN1LHQuU3RydWN0QXJyYXlMYXlvdXQxdWkyPSRpLHQuU3RydWN0QXJyYXlMYXlvdXQyZjFmMmkxNj1xaSx0LlN0cnVjdEFycmF5TGF5b3V0Mmk0PXppLHQuU3RydWN0QXJyYXlMYXlvdXQzdWk2PVlpLHQuU3RydWN0QXJyYXlMYXlvdXQ0aTg9RGksdC5TeW1ib2xCdWNrZXQ9TWMsdC5UZXh0dXJlPVZjLHQuVGlsZT1kdSx0LlRyYW5zaXRpb25hYmxlPWdpLHQuVW5pZm9ybTFmPVNhLHQuVW5pZm9ybTFpPU1hLHQuVW5pZm9ybTJmPUVhLHQuVW5pZm9ybTNmPUxhLHQuVW5pZm9ybTRmPUNhLHQuVW5pZm9ybUNvbG9yPVBhLHQuVW5pZm9ybU1hdHJpeDRmPU9hLHQuVW53cmFwcGVkVGlsZUlEPXJ1LHQuVmFsaWRhdGlvbkVycm9yPUN0LHQuV3JpdGluZ01vZGU9Q2wsdC5ab29tSGlzdG9yeT1Hbix0LmFkZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXStyWzBdLHRbMV09ZVsxXStyWzFdLHRbMl09ZVsyXStyWzJdLHR9LHQuYWRkRHluYW1pY0F0dHJpYnV0ZXM9d2MsdC5hc3luY0FsbD1mdW5jdGlvbih0LGUscil7aWYoIXQubGVuZ3RoKXJldHVybiByKG51bGwsW10pO3ZhciBuPXQubGVuZ3RoLGk9bmV3IEFycmF5KHQubGVuZ3RoKSxhPW51bGw7dC5mb3JFYWNoKChmdW5jdGlvbih0LG8pe2UodCwoZnVuY3Rpb24odCxlKXt0JiYoYT10KSxpW29dPWUsMD09LS1uJiZyKGEsaSl9KSl9KSl9LHQuYmV6aWVyPW8sdC5iaW5kQWxsPW0sdC5icm93c2VyPVIsdC5jYWNoZUVudHJ5UG9zc2libHlBZGRlZD1mdW5jdGlvbih0KXsrK2h0Pm90JiYodC5nZXRBY3RvcigpLnNlbmQoImVuZm9yY2VDYWNoZVNpemVMaW1pdCIsYXQpLGh0PTApfSx0LmNsYW1wPWwsdC5jbGVhclRpbGVDYWNoZT1mdW5jdGlvbih0KXt2YXIgZT1zZWxmLmNhY2hlcy5kZWxldGUoIm1hcGJveC10aWxlcyIpO3QmJmUuY2F0Y2godCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdCgpfSkpfSx0LmNsaXBMaW5lPWVjLHQuY2xvbmU9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IGZvKDE2KTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XSxlWzVdPXRbNV0sZVs2XT10WzZdLGVbN109dFs3XSxlWzhdPXRbOF0sZVs5XT10WzldLGVbMTBdPXRbMTBdLGVbMTFdPXRbMTFdLGVbMTJdPXRbMTJdLGVbMTNdPXRbMTNdLGVbMTRdPXRbMTRdLGVbMTVdPXRbMTVdLGV9LHQuY2xvbmUkMT14LHQuY2xvbmUkMj1mdW5jdGlvbih0KXt2YXIgZT1uZXcgZm8oMyk7cmV0dXJuIGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGV9LHQuY29sbGlzaW9uQ2lyY2xlTGF5b3V0PXRsLHQuY29uZmlnPUYsdC5jcmVhdGU9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgZm8oMTYpO3JldHVybiBmbyE9RmxvYXQzMkFycmF5JiYodFsxXT0wLHRbMl09MCx0WzNdPTAsdFs0XT0wLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzExXT0wLHRbMTJdPTAsdFsxM109MCx0WzE0XT0wKSx0WzBdPTEsdFs1XT0xLHRbMTBdPTEsdFsxNV09MSx0fSx0LmNyZWF0ZSQxPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IGZvKDkpO3JldHVybiBmbyE9RmxvYXQzMkFycmF5JiYodFsxXT0wLHRbMl09MCx0WzNdPTAsdFs1XT0wLHRbNl09MCx0WzddPTApLHRbMF09MSx0WzRdPTEsdFs4XT0xLHR9LHQuY3JlYXRlJDI9ZnVuY3Rpb24oKXt2YXIgdD1uZXcgZm8oNCk7cmV0dXJuIGZvIT1GbG9hdDMyQXJyYXkmJih0WzFdPTAsdFsyXT0wKSx0WzBdPTEsdFszXT0xLHR9LHQuY3JlYXRlQ29tbW9uanNNb2R1bGU9ZSx0LmNyZWF0ZUV4cHJlc3Npb249V3IsdC5jcmVhdGVMYXlvdXQ9SWksdC5jcmVhdGVTdHlsZUxheWVyPWZ1bmN0aW9uKHQpe3JldHVybiJjdXN0b20iPT09dC50eXBlP25ldyBEYyh0KTpuZXcgUmNbdC50eXBlXSh0KX0sdC5jcm9zcz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdLG89clswXSxzPXJbMV0sbD1yWzJdO3JldHVybiB0WzBdPWkqbC1hKnMsdFsxXT1hKm8tbipsLHRbMl09bipzLWkqbyx0fSx0LmRlZXBFcXVhbD1mdW5jdGlvbiB0KGUscil7aWYoQXJyYXkuaXNBcnJheShlKSl7aWYoIUFycmF5LmlzQXJyYXkocil8fGUubGVuZ3RoIT09ci5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspaWYoIXQoZVtuXSxyW25dKSlyZXR1cm4hMTtyZXR1cm4hMH1pZigib2JqZWN0Ij09dHlwZW9mIGUmJm51bGwhPT1lJiZudWxsIT09cil7aWYoIm9iamVjdCIhPXR5cGVvZiByKXJldHVybiExO2lmKE9iamVjdC5rZXlzKGUpLmxlbmd0aCE9PU9iamVjdC5rZXlzKHIpLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGkgaW4gZSlpZighdChlW2ldLHJbaV0pKXJldHVybiExO3JldHVybiEwfXJldHVybiBlPT09cn0sdC5kb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl19LHQuZG90JDE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFswXSplWzBdK3RbMV0qZVsxXSt0WzJdKmVbMl0rdFszXSplWzNdfSx0LmVhc2U9cyx0LmVtaXRWYWxpZGF0aW9uRXJyb3JzPU9uLHQuZW5kc1dpdGg9Zyx0LmVuZm9yY2VDYWNoZVNpemVMaW1pdD1mdW5jdGlvbih0KXtzdCgpLFEmJlEudGhlbigoZnVuY3Rpb24oZSl7ZS5rZXlzKCkudGhlbigoZnVuY3Rpb24ocil7Zm9yKHZhciBuPTA7bjxyLmxlbmd0aC10O24rKyllLmRlbGV0ZShyW25dKX0pKX0pKX0sdC5ldmFsdWF0ZVNpemVGb3JGZWF0dXJlPVlsLHQuZXZhbHVhdGVTaXplRm9yWm9vbT1XbCx0LmV2YWx1YXRlVmFyaWFibGVPZmZzZXQ9ZGMsdC5ldmVudGVkPWNpLHQuZXh0ZW5kPXUsdC5mZWF0dXJlRmlsdGVyPXNuLHQuZmlsdGVyT2JqZWN0PXksdC5mcm9tUm90YXRpb249ZnVuY3Rpb24odCxlKXt2YXIgcj1NYXRoLnNpbihlKSxuPU1hdGguY29zKGUpO3JldHVybiB0WzBdPW4sdFsxXT1yLHRbMl09MCx0WzNdPS1yLHRbNF09bix0WzVdPTAsdFs2XT0wLHRbN109MCx0WzhdPTEsdH0sdC5nZXRBbmNob3JBbGlnbm1lbnQ9VWwsdC5nZXRBbmNob3JKdXN0aWZpY2F0aW9uPW1jLHQuZ2V0QXJyYXlCdWZmZXI9eHQsdC5nZXRJbWFnZT1UdCx0LmdldEpTT049ZnVuY3Rpb24odCxlKXtyZXR1cm4geXQodSh0LHt0eXBlOiJqc29uIn0pLGUpfSx0LmdldFJUTFRleHRQbHVnaW5TdGF0dXM9dWksdC5nZXRSZWZlcnJlcj1ndCx0LmdldFZpZGVvPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXNlbGYuZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgidmlkZW8iKTtpLm11dGVkPSEwLGkub25sb2Fkc3RhcnQ9ZnVuY3Rpb24oKXtlKG51bGwsaSl9O2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgbz1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNvdXJjZSIpO3I9dFthXSxuPXZvaWQgMCwobj1zZWxmLmRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSkuaHJlZj1yLChuLnByb3RvY29sIT09c2VsZi5kb2N1bWVudC5sb2NhdGlvbi5wcm90b2NvbHx8bi5ob3N0IT09c2VsZi5kb2N1bWVudC5sb2NhdGlvbi5ob3N0KSYmKGkuY3Jvc3NPcmlnaW49IkFub255bW91cyIpLG8uc3JjPXRbYV0saS5hcHBlbmRDaGlsZChvKX1yZXR1cm57Y2FuY2VsOmZ1bmN0aW9uKCl7fX19LHQuaWRlbnRpdHk9aG8sdC5pbnZlcnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sYT1lWzNdLG89ZVs0XSxzPWVbNV0sbD1lWzZdLGM9ZVs3XSx1PWVbOF0sZj1lWzldLGg9ZVsxMF0scD1lWzExXSxkPWVbMTJdLG09ZVsxM10sZz1lWzE0XSx2PWVbMTVdLHk9cipzLW4qbyx4PXIqbC1pKm8sYj1yKmMtYSpvLF89bipsLWkqcyx3PW4qYy1hKnMsVD1pKmMtYSpsLGs9dSptLWYqZCxBPXUqZy1oKmQsTT11KnYtcCpkLFM9ZipnLWgqbSxFPWYqdi1wKm0sTD1oKnYtcCpnLEM9eSpMLXgqRStiKlMrXypNLXcqQStUKms7cmV0dXJuIEM/KEM9MS9DLHRbMF09KHMqTC1sKkUrYypTKSpDLHRbMV09KGkqRS1uKkwtYSpTKSpDLHRbMl09KG0qVC1nKncrdipfKSpDLHRbM109KGgqdy1mKlQtcCpfKSpDLHRbNF09KGwqTS1vKkwtYypBKSpDLHRbNV09KHIqTC1pKk0rYSpBKSpDLHRbNl09KGcqYi1kKlQtdip4KSpDLHRbN109KHUqVC1oKmIrcCp4KSpDLHRbOF09KG8qRS1zKk0rYyprKSpDLHRbOV09KG4qTS1yKkUtYSprKSpDLHRbMTBdPShkKnctbSpiK3YqeSkqQyx0WzExXT0oZipiLXUqdy1wKnkpKkMsdFsxMl09KHMqQS1vKlMtbCprKSpDLHRbMTNdPShyKlMtbipBK2kqaykqQyx0WzE0XT0obSp4LWQqXy1nKnkpKkMsdFsxNV09KHUqXy1mKngraCp5KSpDLHQpOm51bGx9LHQuaXNDaGFyPVluLHQuaXNNYXBib3hVUkw9cSx0LmtleXNEaWZmZXJlbmNlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107Zm9yKHZhciBuIGluIHQpbiBpbiBlfHxyLnB1c2gobik7cmV0dXJuIHJ9LHQubWFrZVJlcXVlc3Q9eXQsdC5tYXBPYmplY3Q9dix0Lm1lcmNhdG9yWGZyb21Mbmc9SmMsdC5tZXJjYXRvcllmcm9tTGF0PUtjLHQubWVyY2F0b3JaZnJvbUFsdGl0dWRlPVFjLHQubXVsPW1vLHQubXVsdGlwbHk9cG8sdC5tdnQ9THMsdC5ub3JtYWxpemU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdLG49ZVsxXSxpPWVbMl0sYT1yKnIrbipuK2kqaTtyZXR1cm4gYT4wJiYoYT0xL01hdGguc3FydChhKSksdFswXT1lWzBdKmEsdFsxXT1lWzFdKmEsdFsyXT1lWzJdKmEsdH0sdC5udW1iZXI9cWUsdC5vZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQ9cHQsdC5vcnRobz1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz0xLyhlLXIpLGw9MS8obi1pKSxjPTEvKGEtbyk7cmV0dXJuIHRbMF09LTIqcyx0WzFdPTAsdFsyXT0wLHRbM109MCx0WzRdPTAsdFs1XT0tMipsLHRbNl09MCx0WzddPTAsdFs4XT0wLHRbOV09MCx0WzEwXT0yKmMsdFsxMV09MCx0WzEyXT0oZStyKSpzLHRbMTNdPShpK24pKmwsdFsxNF09KG8rYSkqYyx0WzE1XT0xLHR9LHQucGFyc2VHbHlwaFBCRj1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGFsKHQpLnJlYWRGaWVsZHMoVGwsW10pfSx0LnBiZj1hbCx0LnBlcmZvcm1TeW1ib2xMYXlvdXQ9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7dC5jcmVhdGVBcnJheXMoKTt2YXIgcz01MTIqdC5vdmVyc2NhbGluZzt0LnRpbGVQaXhlbFJhdGlvPTgxOTIvcyx0LmNvbXBhcmVUZXh0PXt9LHQuaWNvbnNOZWVkTGluZWFyPSExO3ZhciBsPXQubGF5ZXJzWzBdLmxheW91dCxjPXQubGF5ZXJzWzBdLl91bmV2YWx1YXRlZExheW91dC5fdmFsdWVzLHU9e307aWYoImNvbXBvc2l0ZSI9PT10LnRleHRTaXplRGF0YS5raW5kKXt2YXIgZj10LnRleHRTaXplRGF0YSxoPWYubWluWm9vbSxwPWYubWF4Wm9vbTt1LmNvbXBvc2l0ZVRleHRTaXplcz1bY1sidGV4dC1zaXplIl0ucG9zc2libHlFdmFsdWF0ZShuZXcgcGkoaCksbyksY1sidGV4dC1zaXplIl0ucG9zc2libHlFdmFsdWF0ZShuZXcgcGkocCksbyldfWlmKCJjb21wb3NpdGUiPT09dC5pY29uU2l6ZURhdGEua2luZCl7dmFyIGQ9dC5pY29uU2l6ZURhdGEsbT1kLm1pblpvb20sZz1kLm1heFpvb207dS5jb21wb3NpdGVJY29uU2l6ZXM9W2NbImljb24tc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKG0pLG8pLGNbImljb24tc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKGcpLG8pXX11LmxheW91dFRleHRTaXplPWNbInRleHQtc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKHQuem9vbSsxKSxvKSx1LmxheW91dEljb25TaXplPWNbImljb24tc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKHQuem9vbSsxKSxvKSx1LnRleHRNYXhTaXplPWNbInRleHQtc2l6ZSJdLnBvc3NpYmx5RXZhbHVhdGUobmV3IHBpKDE4KSk7Zm9yKHZhciB2PTI0KmwuZ2V0KCJ0ZXh0LWxpbmUtaGVpZ2h0IikseT0ibWFwIj09PWwuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpJiYicG9pbnQiIT09bC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKSx4PWwuZ2V0KCJ0ZXh0LWtlZXAtdXByaWdodCIpLGI9bC5nZXQoInRleHQtc2l6ZSIpLHc9ZnVuY3Rpb24oKXt2YXIgYT1rW1RdLHM9bC5nZXQoInRleHQtZm9udCIpLmV2YWx1YXRlKGEse30sbykuam9pbigiLCIpLGM9Yi5ldmFsdWF0ZShhLHt9LG8pLGY9dS5sYXlvdXRUZXh0U2l6ZS5ldmFsdWF0ZShhLHt9LG8pLGg9dS5sYXlvdXRJY29uU2l6ZS5ldmFsdWF0ZShhLHt9LG8pLHA9e2hvcml6b250YWw6e30sdmVydGljYWw6dm9pZCAwfSxkPWEudGV4dCxtPVswLDBdO2lmKGQpe3ZhciBnPWQudG9TdHJpbmcoKSx3PTI0KmwuZ2V0KCJ0ZXh0LWxldHRlci1zcGFjaW5nIikuZXZhbHVhdGUoYSx7fSxvKSxBPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe2lmKCFYbihyW2VdLmNoYXJDb2RlQXQoMCkpKXJldHVybiExfXJldHVybiEwfShnKT93OjAsTT1sLmdldCgidGV4dC1hbmNob3IiKS5ldmFsdWF0ZShhLHt9LG8pLFM9bC5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIik7aWYoIVMpe3ZhciBFPWwuZ2V0KCJ0ZXh0LXJhZGlhbC1vZmZzZXQiKS5ldmFsdWF0ZShhLHt9LG8pO209RT9kYyhNLFsyNCpFLHBjXSk6bC5nZXQoInRleHQtb2Zmc2V0IikuZXZhbHVhdGUoYSx7fSxvKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiAyNCp0fSkpfXZhciBMPXk/ImNlbnRlciI6bC5nZXQoInRleHQtanVzdGlmeSIpLmV2YWx1YXRlKGEse30sbyksQz1sLmdldCgic3ltYm9sLXBsYWNlbWVudCIpLFA9InBvaW50Ij09PUM/MjQqbC5nZXQoInRleHQtbWF4LXdpZHRoIikuZXZhbHVhdGUoYSx7fSxvKTowLEk9ZnVuY3Rpb24oKXt0LmFsbG93VmVydGljYWxQbGFjZW1lbnQmJlduKGcpJiYocC52ZXJ0aWNhbD1PbChkLGUscixpLHMsUCx2LE0sImxlZnQiLEEsbSxDbC52ZXJ0aWNhbCwhMCxDLGYsYykpfTtpZigheSYmUyl7Zm9yKHZhciBPPSJhdXRvIj09PUw/Uy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBtYyh0KX0pKTpbTF0sej0hMSxEPTA7RDxPLmxlbmd0aDtEKyspe3ZhciBSPU9bRF07aWYoIXAuaG9yaXpvbnRhbFtSXSlpZih6KXAuaG9yaXpvbnRhbFtSXT1wLmhvcml6b250YWxbMF07ZWxzZXt2YXIgRj1PbChkLGUscixpLHMsUCx2LCJjZW50ZXIiLFIsQSxtLENsLmhvcml6b250YWwsITEsQyxmLGMpO0YmJihwLmhvcml6b250YWxbUl09Rix6PTE9PT1GLnBvc2l0aW9uZWRMaW5lcy5sZW5ndGgpfX1JKCl9ZWxzZXsiYXV0byI9PT1MJiYoTD1tYyhNKSk7dmFyIEI9T2woZCxlLHIsaSxzLFAsdixNLEwsQSxtLENsLmhvcml6b250YWwsITEsQyxmLGMpO0ImJihwLmhvcml6b250YWxbTF09QiksSSgpLFduKGcpJiZ5JiZ4JiYocC52ZXJ0aWNhbD1PbChkLGUscixpLHMsUCx2LE0sTCxBLG0sQ2wudmVydGljYWwsITEsQyxmLGMpKX19dmFyIE49dm9pZCAwLGo9ITE7aWYoYS5pY29uJiZhLmljb24ubmFtZSl7dmFyIFU9blthLmljb24ubmFtZV07VSYmKE49ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVVsKHIpLGk9bi5ob3Jpem9udGFsQWxpZ24sYT1uLnZlcnRpY2FsQWxpZ24sbz1lWzBdLHM9ZVsxXSxsPW8tdC5kaXNwbGF5U2l6ZVswXSppLGM9bCt0LmRpc3BsYXlTaXplWzBdLHU9cy10LmRpc3BsYXlTaXplWzFdKmE7cmV0dXJue2ltYWdlOnQsdG9wOnUsYm90dG9tOnUrdC5kaXNwbGF5U2l6ZVsxXSxsZWZ0OmwscmlnaHQ6Y319KGlbYS5pY29uLm5hbWVdLGwuZ2V0KCJpY29uLW9mZnNldCIpLmV2YWx1YXRlKGEse30sbyksbC5nZXQoImljb24tYW5jaG9yIikuZXZhbHVhdGUoYSx7fSxvKSksaj1VLnNkZix2b2lkIDA9PT10LnNkZkljb25zP3Quc2RmSWNvbnM9VS5zZGY6dC5zZGZJY29ucyE9PVUuc2RmJiZfKCJTdHlsZSBzaGVldCB3YXJuaW5nOiBDYW5ub3QgbWl4IFNERiBhbmQgbm9uLVNERiBpY29ucyBpbiBvbmUgYnVmZmVyIiksKFUucGl4ZWxSYXRpbyE9PXQucGl4ZWxSYXRpb3x8MCE9PWwuZ2V0KCJpY29uLXJvdGF0ZSIpLmNvbnN0YW50T3IoMSkpJiYodC5pY29uc05lZWRMaW5lYXI9ITApKX12YXIgVj12YyhwLmhvcml6b250YWwpfHxwLnZlcnRpY2FsO3QuaWNvbnNJblRleHQ9ISFWJiZWLmljb25zSW5UZXh0LChWfHxOKSYmZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1KXt2YXIgZj1hLnRleHRNYXhTaXplLmV2YWx1YXRlKGUse30pO3ZvaWQgMD09PWYmJihmPW8pO3ZhciBoLHA9dC5sYXllcnNbMF0ubGF5b3V0LGQ9cC5nZXQoImljb24tb2Zmc2V0IikuZXZhbHVhdGUoZSx7fSx1KSxtPXZjKHIuaG9yaXpvbnRhbCksZz1vLzI0LHY9dC50aWxlUGl4ZWxSYXRpbypnLHk9dC50aWxlUGl4ZWxSYXRpbypmLzI0LHg9dC50aWxlUGl4ZWxSYXRpbypzLGI9dC50aWxlUGl4ZWxSYXRpbypwLmdldCgic3ltYm9sLXNwYWNpbmciKSx3PXAuZ2V0KCJ0ZXh0LXBhZGRpbmciKSp0LnRpbGVQaXhlbFJhdGlvLFQ9cC5nZXQoImljb24tcGFkZGluZyIpKnQudGlsZVBpeGVsUmF0aW8saz1wLmdldCgidGV4dC1tYXgtYW5nbGUiKS8xODAqTWF0aC5QSSxBPSJtYXAiPT09cC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IikmJiJwb2ludCIhPT1wLmdldCgic3ltYm9sLXBsYWNlbWVudCIpLE09Im1hcCI9PT1wLmdldCgiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiKSYmInBvaW50IiE9PXAuZ2V0KCJzeW1ib2wtcGxhY2VtZW50IiksUz1wLmdldCgic3ltYm9sLXBsYWNlbWVudCIpLEU9Yi8yLEw9cC5nZXQoImljb24tdGV4dC1maXQiKTtuJiYibm9uZSIhPT1MJiYodC5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZyLnZlcnRpY2FsJiYoaD1IbChuLHIudmVydGljYWwsTCxwLmdldCgiaWNvbi10ZXh0LWZpdC1wYWRkaW5nIiksZCxnKSksbSYmKG49SGwobixtLEwscC5nZXQoImljb24tdGV4dC1maXQtcGFkZGluZyIpLGQsZykpKTt2YXIgQz1mdW5jdGlvbihzLGYpe2YueDwwfHxmLng+PTgxOTJ8fGYueTwwfHxmLnk+PTgxOTJ8fGZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseCxiLHcsVCxrLEEpe3ZhciBNLFMsRSxMLEMsUD10LmFkZFRvTGluZVZlcnRleEFycmF5KGUsciksST0wLE89MCx6PTAsRD0wLFI9LTEsRj0tMSxCPXt9LE49eWEoIiIpLGo9MCxVPTA7dm9pZCAwPT09cy5fdW5ldmFsdWF0ZWRMYXlvdXQuZ2V0VmFsdWUoInRleHQtcmFkaWFsLW9mZnNldCIpPyhNPXMubGF5b3V0LmdldCgidGV4dC1vZmZzZXQiKS5ldmFsdWF0ZShiLHt9LGspLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIDI0KnR9KSksaj1NWzBdLFU9TVsxXSk6KGo9MjQqcy5sYXlvdXQuZ2V0KCJ0ZXh0LXJhZGlhbC1vZmZzZXQiKS5ldmFsdWF0ZShiLHt9LGspLFU9cGMpO2lmKHQuYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCYmbi52ZXJ0aWNhbCl7dmFyIFY9cy5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0ZSIpLmV2YWx1YXRlKGIse30saykrOTAsSD1uLnZlcnRpY2FsO0w9bmV3IHNjKGwsZSxjLHUsZixILGgscCxkLFYpLG8mJihDPW5ldyBzYyhsLGUsYyx1LGYsbyxnLHYsZCxWKSl9aWYoaSl7dmFyIHE9cy5sYXlvdXQuZ2V0KCJpY29uLXJvdGF0ZSIpLmV2YWx1YXRlKGIse30pLEc9Im5vbmUiIT09cy5sYXlvdXQuZ2V0KCJpY29uLXRleHQtZml0IiksWT1yYyhpLHEsVCxHKSxXPW8/cmMobyxxLFQsRyk6dm9pZCAwO0U9bmV3IHNjKGwsZSxjLHUsZixpLGcsdiwhMSxxKSxJPTQqWS5sZW5ndGg7dmFyIFg9dC5pY29uU2l6ZURhdGEsWj1udWxsOyJzb3VyY2UiPT09WC5raW5kPyhaPVsxMjgqcy5sYXlvdXQuZ2V0KCJpY29uLXNpemUiKS5ldmFsdWF0ZShiLHt9KV0pWzBdPjMyNjQwJiZfKHQubGF5ZXJJZHNbMF0rJzogVmFsdWUgZm9yICJpY29uLXNpemUiIGlzID49IDI1NS4gUmVkdWNlIHlvdXIgImljb24tc2l6ZSIuJyk6ImNvbXBvc2l0ZSI9PT1YLmtpbmQmJigoWj1bMTI4KncuY29tcG9zaXRlSWNvblNpemVzWzBdLmV2YWx1YXRlKGIse30sayksMTI4KncuY29tcG9zaXRlSWNvblNpemVzWzFdLmV2YWx1YXRlKGIse30sayldKVswXT4zMjY0MHx8WlsxXT4zMjY0MCkmJl8odC5sYXllcklkc1swXSsnOiBWYWx1ZSBmb3IgImljb24tc2l6ZSIgaXMgPj0gMjU1LiBSZWR1Y2UgeW91ciAiaWNvbi1zaXplIi4nKSx0LmFkZFN5bWJvbHModC5pY29uLFksWix4LHksYiwhMSxlLFAubGluZVN0YXJ0SW5kZXgsUC5saW5lTGVuZ3RoLC0xLGspLFI9dC5pY29uLnBsYWNlZFN5bWJvbEFycmF5Lmxlbmd0aC0xLFcmJihPPTQqVy5sZW5ndGgsdC5hZGRTeW1ib2xzKHQuaWNvbixXLFoseCx5LGIsQ2wudmVydGljYWwsZSxQLmxpbmVTdGFydEluZGV4LFAubGluZUxlbmd0aCwtMSxrKSxGPXQuaWNvbi5wbGFjZWRTeW1ib2xBcnJheS5sZW5ndGgtMSl9Zm9yKHZhciBKIGluIG4uaG9yaXpvbnRhbCl7dmFyIEs9bi5ob3Jpem9udGFsW0pdO2lmKCFTKXtOPXlhKEsudGV4dCk7dmFyIFE9cy5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0ZSIpLmV2YWx1YXRlKGIse30sayk7Uz1uZXcgc2MobCxlLGMsdSxmLEssaCxwLGQsUSl9dmFyICQ9MT09PUsucG9zaXRpb25lZExpbmVzLmxlbmd0aDtpZih6Kz1nYyh0LGUsSyxhLHMsZCxiLG0sUCxuLnZlcnRpY2FsP0NsLmhvcml6b250YWw6Q2wuaG9yaXpvbnRhbE9ubHksJD9PYmplY3Qua2V5cyhuLmhvcml6b250YWwpOltKXSxCLFIsdyxrKSwkKWJyZWFrfW4udmVydGljYWwmJihEKz1nYyh0LGUsbi52ZXJ0aWNhbCxhLHMsZCxiLG0sUCxDbC52ZXJ0aWNhbCxbInZlcnRpY2FsIl0sQixGLHcsaykpO3ZhciB0dD1TP1MuYm94U3RhcnRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxldD1TP1MuYm94RW5kSW5kZXg6dC5jb2xsaXNpb25Cb3hBcnJheS5sZW5ndGgscnQ9TD9MLmJveFN0YXJ0SW5kZXg6dC5jb2xsaXNpb25Cb3hBcnJheS5sZW5ndGgsbnQ9TD9MLmJveEVuZEluZGV4OnQuY29sbGlzaW9uQm94QXJyYXkubGVuZ3RoLGl0PUU/RS5ib3hTdGFydEluZGV4OnQuY29sbGlzaW9uQm94QXJyYXkubGVuZ3RoLGF0PUU/RS5ib3hFbmRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxvdD1DP0MuYm94U3RhcnRJbmRleDp0LmNvbGxpc2lvbkJveEFycmF5Lmxlbmd0aCxzdD1DP0MuYm94RW5kSW5kZXg6dC5jb2xsaXNpb25Cb3hBcnJheS5sZW5ndGgsbHQ9LTEsY3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmdC5jaXJjbGVEaWFtZXRlcj9NYXRoLm1heCh0LmNpcmNsZURpYW1ldGVyLGUpOmV9O2x0PWN0KFMsbHQpLGx0PWN0KEwsbHQpLGx0PWN0KEUsbHQpO3ZhciB1dD0obHQ9Y3QoQyxsdCkpPi0xPzE6MDt1dCYmKGx0Kj1BLzI0KTt0LmdseXBoT2Zmc2V0QXJyYXkubGVuZ3RoPj1NYy5NQVhfR0xZUEhTJiZfKCJUb28gbWFueSBnbHlwaHMgYmVpbmcgcmVuZGVyZWQgaW4gYSB0aWxlLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL21hcGJveC9tYXBib3gtZ2wtanMvaXNzdWVzLzI5MDciKTt2b2lkIDAhPT1iLnNvcnRLZXkmJnQuYWRkVG9Tb3J0S2V5UmFuZ2VzKHQuc3ltYm9sSW5zdGFuY2VzLmxlbmd0aCxiLnNvcnRLZXkpO3Quc3ltYm9sSW5zdGFuY2VzLmVtcGxhY2VCYWNrKGUueCxlLnksQi5yaWdodD49MD9CLnJpZ2h0Oi0xLEIuY2VudGVyPj0wP0IuY2VudGVyOi0xLEIubGVmdD49MD9CLmxlZnQ6LTEsQi52ZXJ0aWNhbHx8LTEsUixGLE4sdHQsZXQscnQsbnQsaXQsYXQsb3Qsc3QsYyx6LEQsSSxPLHV0LDAsaCxqLFUsbHQpfSh0LGYscyxyLG4saSxoLHQubGF5ZXJzWzBdLHQuY29sbGlzaW9uQm94QXJyYXksZS5pbmRleCxlLnNvdXJjZUxheWVySW5kZXgsdC5pbmRleCx2LHcsQSxsLHgsVCxNLGQsZSxhLGMsdSxvKX07aWYoImxpbmUiPT09Uylmb3IodmFyIFA9MCxJPWVjKGUuZ2VvbWV0cnksMCwwLDgxOTIsODE5Mik7UDxJLmxlbmd0aDtQKz0xKWZvcih2YXIgTz1JW1BdLHo9dGMoTyxiLGssci52ZXJ0aWNhbHx8bSxuLDI0LHksdC5vdmVyc2NhbGluZyw4MTkyKSxEPTAsUj16O0Q8Ui5sZW5ndGg7RCs9MSl7dmFyIEY9UltEXSxCPW07QiYmeWModCxCLnRleHQsRSxGKXx8QyhPLEYpfWVsc2UgaWYoImxpbmUtY2VudGVyIj09PVMpZm9yKHZhciBOPTAsaj1lLmdlb21ldHJ5O048ai5sZW5ndGg7Tis9MSl7dmFyIFU9altOXTtpZihVLmxlbmd0aD4xKXt2YXIgVj0kbChVLGssci52ZXJ0aWNhbHx8bSxuLDI0LHkpO1YmJkMoVSxWKX19ZWxzZSBpZigiUG9seWdvbiI9PT1lLnR5cGUpZm9yKHZhciBIPTAscT1ocyhlLmdlb21ldHJ5LDApO0g8cS5sZW5ndGg7SCs9MSl7dmFyIEc9cVtIXSxZPXVjKEcsMTYpO0MoR1swXSxuZXcgcWwoWS54LFkueSwwKSl9ZWxzZSBpZigiTGluZVN0cmluZyI9PT1lLnR5cGUpZm9yKHZhciBXPTAsWD1lLmdlb21ldHJ5O1c8WC5sZW5ndGg7Vys9MSl7dmFyIFo9WFtXXTtDKFosbmV3IHFsKFpbMF0ueCxaWzBdLnksMCkpfWVsc2UgaWYoIlBvaW50Ij09PWUudHlwZSlmb3IodmFyIEo9MCxLPWUuZ2VvbWV0cnk7SjxLLmxlbmd0aDtKKz0xKWZvcih2YXIgUT1LW0pdLCQ9MCx0dD1ROyQ8dHQubGVuZ3RoOyQrPTEpe3ZhciBldD10dFskXTtDKFtldF0sbmV3IHFsKGV0LngsZXQueSwwKSl9fSh0LGEscCxOLG4sdSxmLGgsbSxqLG8pfSxUPTAsaz10LmZlYXR1cmVzO1Q8ay5sZW5ndGg7VCs9MSl3KCk7YSYmdC5nZW5lcmF0ZUNvbGxpc2lvbkRlYnVnQnVmZmVycygpfSx0LnBlcnNwZWN0aXZlPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGEsbz0xL01hdGgudGFuKGUvMik7cmV0dXJuIHRbMF09by9yLHRbMV09MCx0WzJdPTAsdFszXT0wLHRbNF09MCx0WzVdPW8sdFs2XT0wLHRbN109MCx0WzhdPTAsdFs5XT0wLHRbMTFdPS0xLHRbMTJdPTAsdFsxM109MCx0WzE1XT0wLG51bGwhPWkmJmkhPT0xLzA/KGE9MS8obi1pKSx0WzEwXT0oaStuKSphLHRbMTRdPTIqaSpuKmEpOih0WzEwXT0tMSx0WzE0XT0tMipuKSx0fSx0LnBpY2s9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9e30sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kgaW4gdCYmKHJbaV09dFtpXSl9cmV0dXJuIHJ9LHQucGx1Z2luPWhpLHQucG9seWdvbkludGVyc2VjdHNQb2x5Z29uPVphLHQucG9zdE1hcExvYWRFdmVudD1pdCx0LnBvc3RUdXJuc3RpbGVFdmVudD1ydCx0LnBvdHBhY2s9TWwsdC5yZWZQcm9wZXJ0aWVzPVsidHlwZSIsInNvdXJjZSIsInNvdXJjZS1sYXllciIsIm1pbnpvb20iLCJtYXh6b29tIiwiZmlsdGVyIiwibGF5b3V0Il0sdC5yZWdpc3Rlcj1Obix0LnJlZ2lzdGVyRm9yUGx1Z2luU3RhdGVDaGFuZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIHQoe3BsdWdpblN0YXR1czphaSxwbHVnaW5VUkw6b2l9KSxjaS5vbigicGx1Z2luU3RhdGVDaGFuZ2UiLHQpLHR9LHQucm90YXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXSxhPWVbMl0sbz1lWzNdLHM9TWF0aC5zaW4ociksbD1NYXRoLmNvcyhyKTtyZXR1cm4gdFswXT1uKmwrYSpzLHRbMV09aSpsK28qcyx0WzJdPW4qLXMrYSpsLHRbM109aSotcytvKmwsdH0sdC5yb3RhdGVYPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1NYXRoLnNpbihyKSxpPU1hdGguY29zKHIpLGE9ZVs0XSxvPWVbNV0scz1lWzZdLGw9ZVs3XSxjPWVbOF0sdT1lWzldLGY9ZVsxMF0saD1lWzExXTtyZXR1cm4gZSE9PXQmJih0WzBdPWVbMF0sdFsxXT1lWzFdLHRbMl09ZVsyXSx0WzNdPWVbM10sdFsxMl09ZVsxMl0sdFsxM109ZVsxM10sdFsxNF09ZVsxNF0sdFsxNV09ZVsxNV0pLHRbNF09YSppK2Mqbix0WzVdPW8qaSt1Km4sdFs2XT1zKmkrZipuLHRbN109bCppK2gqbix0WzhdPWMqaS1hKm4sdFs5XT11KmktbypuLHRbMTBdPWYqaS1zKm4sdFsxMV09aCppLWwqbix0fSx0LnJvdGF0ZVo9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguc2luKHIpLGk9TWF0aC5jb3MociksYT1lWzBdLG89ZVsxXSxzPWVbMl0sbD1lWzNdLGM9ZVs0XSx1PWVbNV0sZj1lWzZdLGg9ZVs3XTtyZXR1cm4gZSE9PXQmJih0WzhdPWVbOF0sdFs5XT1lWzldLHRbMTBdPWVbMTBdLHRbMTFdPWVbMTFdLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdKSx0WzBdPWEqaStjKm4sdFsxXT1vKmkrdSpuLHRbMl09cyppK2Yqbix0WzNdPWwqaStoKm4sdFs0XT1jKmktYSpuLHRbNV09dSppLW8qbix0WzZdPWYqaS1zKm4sdFs3XT1oKmktbCpuLHR9LHQuc2NhbGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXJbMF0saT1yWzFdLGE9clsyXTtyZXR1cm4gdFswXT1lWzBdKm4sdFsxXT1lWzFdKm4sdFsyXT1lWzJdKm4sdFszXT1lWzNdKm4sdFs0XT1lWzRdKmksdFs1XT1lWzVdKmksdFs2XT1lWzZdKmksdFs3XT1lWzddKmksdFs4XT1lWzhdKmEsdFs5XT1lWzldKmEsdFsxMF09ZVsxMF0qYSx0WzExXT1lWzExXSphLHRbMTJdPWVbMTJdLHRbMTNdPWVbMTNdLHRbMTRdPWVbMTRdLHRbMTVdPWVbMTVdLHR9LHQuc2NhbGUkMT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXSpyLHRbMV09ZVsxXSpyLHRbMl09ZVsyXSpyLHRbM109ZVszXSpyLHR9LHQuc2NhbGUkMj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRbMF09ZVswXSpyLHRbMV09ZVsxXSpyLHRbMl09ZVsyXSpyLHR9LHQuc2V0Q2FjaGVMaW1pdHM9ZnVuY3Rpb24odCxlKXthdD10LG90PWV9LHQuc2V0UlRMVGV4dFBsdWdpbj1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwPT09ciYmKHI9ITEpLGFpPT09dGl8fGFpPT09ZWl8fGFpPT09cmkpdGhyb3cgbmV3IEVycm9yKCJzZXRSVExUZXh0UGx1Z2luIGNhbm5vdCBiZSBjYWxsZWQgbXVsdGlwbGUgdGltZXMuIik7b2k9Ui5yZXNvbHZlVVJMKHQpLGFpPXRpLGlpPWUsbGkoKSxyfHxmaSgpfSx0LnNwaGVyaWNhbFRvQ2FydGVzaWFuPWZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0scj10WzFdLG49dFsyXTtyZXR1cm4gcis9OTAscio9TWF0aC5QSS8xODAsbio9TWF0aC5QSS8xODAse3g6ZSpNYXRoLmNvcyhyKSpNYXRoLnNpbihuKSx5OmUqTWF0aC5zaW4ocikqTWF0aC5zaW4obiksejplKk1hdGguY29zKG4pfX0sdC5zcXJMZW49Ym8sdC5zdHlsZVNwZWM9THQsdC5zdWI9eW8sdC5zeW1ib2xTaXplPVhsLHQudHJhbnNmb3JtTWF0Mz1mdW5jdGlvbih0LGUscil7dmFyIG49ZVswXSxpPWVbMV0sYT1lWzJdO3JldHVybiB0WzBdPW4qclswXStpKnJbM10rYSpyWzZdLHRbMV09bipyWzFdK2kqcls0XSthKnJbN10sdFsyXT1uKnJbMl0raSpyWzVdK2Eqcls4XSx0fSx0LnRyYW5zZm9ybU1hdDQ9eG8sdC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYSxvLHMsbCxjLHUsZixoLHAsZCxtPXJbMF0sZz1yWzFdLHY9clsyXTtyZXR1cm4gZT09PXQ/KHRbMTJdPWVbMF0qbStlWzRdKmcrZVs4XSp2K2VbMTJdLHRbMTNdPWVbMV0qbStlWzVdKmcrZVs5XSp2K2VbMTNdLHRbMTRdPWVbMl0qbStlWzZdKmcrZVsxMF0qditlWzE0XSx0WzE1XT1lWzNdKm0rZVs3XSpnK2VbMTFdKnYrZVsxNV0pOihuPWVbMF0saT1lWzFdLGE9ZVsyXSxvPWVbM10scz1lWzRdLGw9ZVs1XSxjPWVbNl0sdT1lWzddLGY9ZVs4XSxoPWVbOV0scD1lWzEwXSxkPWVbMTFdLHRbMF09bix0WzFdPWksdFsyXT1hLHRbM109byx0WzRdPXMsdFs1XT1sLHRbNl09Yyx0WzddPXUsdFs4XT1mLHRbOV09aCx0WzEwXT1wLHRbMTFdPWQsdFsxMl09biptK3MqZytmKnYrZVsxMl0sdFsxM109aSptK2wqZytoKnYrZVsxM10sdFsxNF09YSptK2MqZytwKnYrZVsxNF0sdFsxNV09byptK3UqZytkKnYrZVsxNV0pLHR9LHQudHJpZ2dlclBsdWdpbkNvbXBsZXRpb25FdmVudD1zaSx0LnVuaXF1ZUlkPWgsdC52YWxpZGF0ZUN1c3RvbVN0eWxlTGF5ZXI9ZnVuY3Rpb24odCl7dmFyIGU9W10scj10LmlkO3JldHVybiB2b2lkIDA9PT1yJiZlLnB1c2goe21lc3NhZ2U6ImxheWVycy4iK3IrJzogbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiaWQiJ30pLHZvaWQgMD09PXQucmVuZGVyJiZlLnB1c2goe21lc3NhZ2U6ImxheWVycy4iK3IrJzogbWlzc2luZyByZXF1aXJlZCBtZXRob2QgInJlbmRlciInfSksdC5yZW5kZXJpbmdNb2RlJiYiMmQiIT09dC5yZW5kZXJpbmdNb2RlJiYiM2QiIT09dC5yZW5kZXJpbmdNb2RlJiZlLnB1c2goe21lc3NhZ2U6ImxheWVycy4iK3IrJzogcHJvcGVydHkgInJlbmRlcmluZ01vZGUiIG11c3QgYmUgZWl0aGVyICIyZCIgb3IgIjNkIid9KSxlfSx0LnZhbGlkYXRlTGlnaHQ9Q24sdC52YWxpZGF0ZVN0eWxlPUxuLHQudmFsdWVzPWZ1bmN0aW9uKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaCh0W3JdKTtyZXR1cm4gZX0sdC52ZWN0b3JUaWxlPUxzLHQudmVyc2lvbj0iMS4xMC4xIix0Lndhcm5PbmNlPV8sdC53ZWJwU3VwcG9ydGVkPUIsdC53aW5kb3c9c2VsZix0LndyYXA9Y30pKSxuKDAsKGZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUodCl7dmFyIHI9dHlwZW9mIHQ7aWYoIm51bWJlciI9PT1yfHwiYm9vbGVhbiI9PT1yfHwic3RyaW5nIj09PXJ8fG51bGw9PXQpcmV0dXJuIEpTT04uc3RyaW5naWZ5KHQpO2lmKEFycmF5LmlzQXJyYXkodCkpe2Zvcih2YXIgbj0iWyIsaT0wLGE9dDtpPGEubGVuZ3RoO2krPTEpe24rPWUoYVtpXSkrIiwifXJldHVybiBuKyJdIn1mb3IodmFyIG89T2JqZWN0LmtleXModCkuc29ydCgpLHM9InsiLGw9MDtsPG8ubGVuZ3RoO2wrKylzKz1KU09OLnN0cmluZ2lmeShvW2xdKSsiOiIrZSh0W29bbF1dKSsiLCI7cmV0dXJuIHMrIn0ifWZ1bmN0aW9uIHIocil7Zm9yKHZhciBuPSIiLGk9MCxhPXQucmVmUHJvcGVydGllcztpPGEubGVuZ3RoO2krPTEpe24rPSIvIitlKHJbYVtpXV0pfXJldHVybiBufXZhciBuPWZ1bmN0aW9uKHQpe3RoaXMua2V5Q2FjaGU9e30sdCYmdGhpcy5yZXBsYWNlKHQpfTtuLnByb3RvdHlwZS5yZXBsYWNlPWZ1bmN0aW9uKHQpe3RoaXMuX2xheWVyQ29uZmlncz17fSx0aGlzLl9sYXllcnM9e30sdGhpcy51cGRhdGUodCxbXSl9LG4ucHJvdG90eXBlLnVwZGF0ZT1mdW5jdGlvbihlLG4pe2Zvcih2YXIgaT10aGlzLGE9MCxvPWU7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdO3RoaXMuX2xheWVyQ29uZmlnc1tzLmlkXT1zO3ZhciBsPXRoaXMuX2xheWVyc1tzLmlkXT10LmNyZWF0ZVN0eWxlTGF5ZXIocyk7bC5fZmVhdHVyZUZpbHRlcj10LmZlYXR1cmVGaWx0ZXIobC5maWx0ZXIpLHRoaXMua2V5Q2FjaGVbcy5pZF0mJmRlbGV0ZSB0aGlzLmtleUNhY2hlW3MuaWRdfWZvcih2YXIgYz0wLHU9bjtjPHUubGVuZ3RoO2MrPTEpe3ZhciBmPXVbY107ZGVsZXRlIHRoaXMua2V5Q2FjaGVbZl0sZGVsZXRlIHRoaXMuX2xheWVyQ29uZmlnc1tmXSxkZWxldGUgdGhpcy5fbGF5ZXJzW2ZdfXRoaXMuZmFtaWxpZXNCeVNvdXJjZT17fTtmb3IodmFyIGg9MCxwPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXt9LGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9ZSYmZVt0W2ldLmlkXXx8cih0W2ldKTtlJiYoZVt0W2ldLmlkXT1hKTt2YXIgbz1uW2FdO298fChvPW5bYV09W10pLG8ucHVzaCh0W2ldKX12YXIgcz1bXTtmb3IodmFyIGwgaW4gbilzLnB1c2gobltsXSk7cmV0dXJuIHN9KHQudmFsdWVzKHRoaXMuX2xheWVyQ29uZmlncyksdGhpcy5rZXlDYWNoZSk7aDxwLmxlbmd0aDtoKz0xKXt2YXIgZD1wW2hdLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGkuX2xheWVyc1t0LmlkXX0pKSxtPWRbMF07aWYoIm5vbmUiIT09bS52aXNpYmlsaXR5KXt2YXIgZz1tLnNvdXJjZXx8IiIsdj10aGlzLmZhbWlsaWVzQnlTb3VyY2VbZ107dnx8KHY9dGhpcy5mYW1pbGllc0J5U291cmNlW2ddPXt9KTt2YXIgeT1tLnNvdXJjZUxheWVyfHwiX2dlb2pzb25UaWxlTGF5ZXIiLHg9dlt5XTt4fHwoeD12W3ldPVtdKSx4LnB1c2goZCl9fX07dmFyIGk9ZnVuY3Rpb24oZSl7dmFyIHI9e30sbj1bXTtmb3IodmFyIGkgaW4gZSl7dmFyIGE9ZVtpXSxvPXJbaV09e307Zm9yKHZhciBzIGluIGEpe3ZhciBsPWFbK3NdO2lmKGwmJjAhPT1sLmJpdG1hcC53aWR0aCYmMCE9PWwuYml0bWFwLmhlaWdodCl7dmFyIGM9e3g6MCx5OjAsdzpsLmJpdG1hcC53aWR0aCsyLGg6bC5iaXRtYXAuaGVpZ2h0KzJ9O24ucHVzaChjKSxvW3NdPXtyZWN0OmMsbWV0cmljczpsLm1ldHJpY3N9fX19dmFyIHU9dC5wb3RwYWNrKG4pLGY9dS53LGg9dS5oLHA9bmV3IHQuQWxwaGFJbWFnZSh7d2lkdGg6Znx8MSxoZWlnaHQ6aHx8MX0pO2Zvcih2YXIgZCBpbiBlKXt2YXIgbT1lW2RdO2Zvcih2YXIgZyBpbiBtKXt2YXIgdj1tWytnXTtpZih2JiYwIT09di5iaXRtYXAud2lkdGgmJjAhPT12LmJpdG1hcC5oZWlnaHQpe3ZhciB5PXJbZF1bZ10ucmVjdDt0LkFscGhhSW1hZ2UuY29weSh2LmJpdG1hcCxwLHt4OjAseTowfSx7eDp5LngrMSx5OnkueSsxfSx2LmJpdG1hcCl9fX10aGlzLmltYWdlPXAsdGhpcy5wb3NpdGlvbnM9cn07dC5yZWdpc3RlcigiR2x5cGhBdGxhcyIsaSk7dmFyIGE9ZnVuY3Rpb24oZSl7dGhpcy50aWxlSUQ9bmV3IHQuT3ZlcnNjYWxlZFRpbGVJRChlLnRpbGVJRC5vdmVyc2NhbGVkWixlLnRpbGVJRC53cmFwLGUudGlsZUlELmNhbm9uaWNhbC56LGUudGlsZUlELmNhbm9uaWNhbC54LGUudGlsZUlELmNhbm9uaWNhbC55KSx0aGlzLnVpZD1lLnVpZCx0aGlzLnpvb209ZS56b29tLHRoaXMucGl4ZWxSYXRpbz1lLnBpeGVsUmF0aW8sdGhpcy50aWxlU2l6ZT1lLnRpbGVTaXplLHRoaXMuc291cmNlPWUuc291cmNlLHRoaXMub3ZlcnNjYWxpbmc9dGhpcy50aWxlSUQub3ZlcnNjYWxlRmFjdG9yKCksdGhpcy5zaG93Q29sbGlzaW9uQm94ZXM9ZS5zaG93Q29sbGlzaW9uQm94ZXMsdGhpcy5jb2xsZWN0UmVzb3VyY2VUaW1pbmc9ISFlLmNvbGxlY3RSZXNvdXJjZVRpbWluZyx0aGlzLnJldHVybkRlcGVuZGVuY2llcz0hIWUucmV0dXJuRGVwZW5kZW5jaWVzLHRoaXMucHJvbW90ZUlkPWUucHJvbW90ZUlkfTtmdW5jdGlvbiBvKGUscixuKXtmb3IodmFyIGk9bmV3IHQuRXZhbHVhdGlvblBhcmFtZXRlcnMociksYT0wLG89ZTthPG8ubGVuZ3RoO2ErPTEpe29bYV0ucmVjYWxjdWxhdGUoaSxuKX19ZnVuY3Rpb24gcyhlLHIpe3ZhciBuPXQuZ2V0QXJyYXlCdWZmZXIoZS5yZXF1ZXN0LChmdW5jdGlvbihlLG4saSxhKXtlP3IoZSk6biYmcihudWxsLHt2ZWN0b3JUaWxlOm5ldyB0LnZlY3RvclRpbGUuVmVjdG9yVGlsZShuZXcgdC5wYmYobikpLHJhd0RhdGE6bixjYWNoZUNvbnRyb2w6aSxleHBpcmVzOmF9KX0pKTtyZXR1cm4gZnVuY3Rpb24oKXtuLmNhbmNlbCgpLHIoKX19YS5wcm90b3R5cGUucGFyc2U9ZnVuY3Rpb24oZSxyLG4sYSxzKXt2YXIgbD10aGlzO3RoaXMuc3RhdHVzPSJwYXJzaW5nIix0aGlzLmRhdGE9ZSx0aGlzLmNvbGxpc2lvbkJveEFycmF5PW5ldyB0LkNvbGxpc2lvbkJveEFycmF5O3ZhciBjPW5ldyB0LkRpY3Rpb25hcnlDb2RlcihPYmplY3Qua2V5cyhlLmxheWVycykuc29ydCgpKSx1PW5ldyB0LkZlYXR1cmVJbmRleCh0aGlzLnRpbGVJRCx0aGlzLnByb21vdGVJZCk7dS5idWNrZXRMYXllcklEcz1bXTt2YXIgZixoLHAsZCxtPXt9LGc9e2ZlYXR1cmVJbmRleDp1LGljb25EZXBlbmRlbmNpZXM6e30scGF0dGVybkRlcGVuZGVuY2llczp7fSxnbHlwaERlcGVuZGVuY2llczp7fSxhdmFpbGFibGVJbWFnZXM6bn0sdj1yLmZhbWlsaWVzQnlTb3VyY2VbdGhpcy5zb3VyY2VdO2Zvcih2YXIgeSBpbiB2KXt2YXIgeD1lLmxheWVyc1t5XTtpZih4KXsxPT09eC52ZXJzaW9uJiZ0Lndhcm5PbmNlKCdWZWN0b3IgdGlsZSBzb3VyY2UgIicrdGhpcy5zb3VyY2UrJyIgbGF5ZXIgIicreSsnIiBkb2VzIG5vdCB1c2UgdmVjdG9yIHRpbGUgc3BlYyB2MiBhbmQgdGhlcmVmb3JlIG1heSBoYXZlIHNvbWUgcmVuZGVyaW5nIGVycm9ycy4nKTtmb3IodmFyIGI9Yy5lbmNvZGUoeSksXz1bXSx3PTA7dzx4Lmxlbmd0aDt3Kyspe3ZhciBUPXguZmVhdHVyZSh3KSxrPXUuZ2V0SWQoVCx5KTtfLnB1c2goe2ZlYXR1cmU6VCxpZDprLGluZGV4Oncsc291cmNlTGF5ZXJJbmRleDpifSl9Zm9yKHZhciBBPTAsTT12W3ldO0E8TS5sZW5ndGg7QSs9MSl7dmFyIFM9TVtBXSxFPVNbMF07aWYoIShFLm1pbnpvb20mJnRoaXMuem9vbTxNYXRoLmZsb29yKEUubWluem9vbSkpKWlmKCEoRS5tYXh6b29tJiZ0aGlzLnpvb20+PUUubWF4em9vbSkpaWYoIm5vbmUiIT09RS52aXNpYmlsaXR5KW8oUyx0aGlzLnpvb20sbiksKG1bRS5pZF09RS5jcmVhdGVCdWNrZXQoe2luZGV4OnUuYnVja2V0TGF5ZXJJRHMubGVuZ3RoLGxheWVyczpTLHpvb206dGhpcy56b29tLHBpeGVsUmF0aW86dGhpcy5waXhlbFJhdGlvLG92ZXJzY2FsaW5nOnRoaXMub3ZlcnNjYWxpbmcsY29sbGlzaW9uQm94QXJyYXk6dGhpcy5jb2xsaXNpb25Cb3hBcnJheSxzb3VyY2VMYXllckluZGV4OmIsc291cmNlSUQ6dGhpcy5zb3VyY2V9KSkucG9wdWxhdGUoXyxnLHRoaXMudGlsZUlELmNhbm9uaWNhbCksdS5idWNrZXRMYXllcklEcy5wdXNoKFMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKSl9fX12YXIgTD10Lm1hcE9iamVjdChnLmdseXBoRGVwZW5kZW5jaWVzLChmdW5jdGlvbih0KXtyZXR1cm4gT2JqZWN0LmtleXModCkubWFwKE51bWJlcil9KSk7T2JqZWN0LmtleXMoTCkubGVuZ3RoP2Euc2VuZCgiZ2V0R2x5cGhzIix7dWlkOnRoaXMudWlkLHN0YWNrczpMfSwoZnVuY3Rpb24odCxlKXtmfHwoZj10LGg9ZSxJLmNhbGwobCkpfSkpOmg9e307dmFyIEM9T2JqZWN0LmtleXMoZy5pY29uRGVwZW5kZW5jaWVzKTtDLmxlbmd0aD9hLnNlbmQoImdldEltYWdlcyIse2ljb25zOkMsc291cmNlOnRoaXMuc291cmNlLHRpbGVJRDp0aGlzLnRpbGVJRCx0eXBlOiJpY29ucyJ9LChmdW5jdGlvbih0LGUpe2Z8fChmPXQscD1lLEkuY2FsbChsKSl9KSk6cD17fTt2YXIgUD1PYmplY3Qua2V5cyhnLnBhdHRlcm5EZXBlbmRlbmNpZXMpO2Z1bmN0aW9uIEkoKXtpZihmKXJldHVybiBzKGYpO2lmKGgmJnAmJmQpe3ZhciBlPW5ldyBpKGgpLHI9bmV3IHQuSW1hZ2VBdGxhcyhwLGQpO2Zvcih2YXIgYSBpbiBtKXt2YXIgbD1tW2FdO2wgaW5zdGFuY2VvZiB0LlN5bWJvbEJ1Y2tldD8obyhsLmxheWVycyx0aGlzLnpvb20sbiksdC5wZXJmb3JtU3ltYm9sTGF5b3V0KGwsaCxlLnBvc2l0aW9ucyxwLHIuaWNvblBvc2l0aW9ucyx0aGlzLnNob3dDb2xsaXNpb25Cb3hlcyx0aGlzLnRpbGVJRC5jYW5vbmljYWwpKTpsLmhhc1BhdHRlcm4mJihsIGluc3RhbmNlb2YgdC5MaW5lQnVja2V0fHxsIGluc3RhbmNlb2YgdC5GaWxsQnVja2V0fHxsIGluc3RhbmNlb2YgdC5GaWxsRXh0cnVzaW9uQnVja2V0KSYmKG8obC5sYXllcnMsdGhpcy56b29tLG4pLGwuYWRkRmVhdHVyZXMoZyx0aGlzLnRpbGVJRC5jYW5vbmljYWwsci5wYXR0ZXJuUG9zaXRpb25zKSl9dGhpcy5zdGF0dXM9ImRvbmUiLHMobnVsbCx7YnVja2V0czp0LnZhbHVlcyhtKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmlzRW1wdHkoKX0pKSxmZWF0dXJlSW5kZXg6dSxjb2xsaXNpb25Cb3hBcnJheTp0aGlzLmNvbGxpc2lvbkJveEFycmF5LGdseXBoQXRsYXNJbWFnZTplLmltYWdlLGltYWdlQXRsYXM6cixnbHlwaE1hcDp0aGlzLnJldHVybkRlcGVuZGVuY2llcz9oOm51bGwsaWNvbk1hcDp0aGlzLnJldHVybkRlcGVuZGVuY2llcz9wOm51bGwsZ2x5cGhQb3NpdGlvbnM6dGhpcy5yZXR1cm5EZXBlbmRlbmNpZXM/ZS5wb3NpdGlvbnM6bnVsbH0pfX1QLmxlbmd0aD9hLnNlbmQoImdldEltYWdlcyIse2ljb25zOlAsc291cmNlOnRoaXMuc291cmNlLHRpbGVJRDp0aGlzLnRpbGVJRCx0eXBlOiJwYXR0ZXJucyJ9LChmdW5jdGlvbih0LGUpe2Z8fChmPXQsZD1lLEkuY2FsbChsKSl9KSk6ZD17fSxJLmNhbGwodGhpcyl9O3ZhciBsPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuYWN0b3I9dCx0aGlzLmxheWVySW5kZXg9ZSx0aGlzLmF2YWlsYWJsZUltYWdlcz1yLHRoaXMubG9hZFZlY3RvckRhdGE9bnx8cyx0aGlzLmxvYWRpbmc9e30sdGhpcy5sb2FkZWQ9e319O2wucHJvdG90eXBlLmxvYWRUaWxlPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpcyxpPWUudWlkO3RoaXMubG9hZGluZ3x8KHRoaXMubG9hZGluZz17fSk7dmFyIG89ISEoZSYmZS5yZXF1ZXN0JiZlLnJlcXVlc3QuY29sbGVjdFJlc291cmNlVGltaW5nKSYmbmV3IHQuUmVxdWVzdFBlcmZvcm1hbmNlKGUucmVxdWVzdCkscz10aGlzLmxvYWRpbmdbaV09bmV3IGEoZSk7cy5hYm9ydD10aGlzLmxvYWRWZWN0b3JEYXRhKGUsKGZ1bmN0aW9uKGUsYSl7aWYoZGVsZXRlIG4ubG9hZGluZ1tpXSxlfHwhYSlyZXR1cm4gcy5zdGF0dXM9ImRvbmUiLG4ubG9hZGVkW2ldPXMscihlKTt2YXIgbD1hLnJhd0RhdGEsYz17fTthLmV4cGlyZXMmJihjLmV4cGlyZXM9YS5leHBpcmVzKSxhLmNhY2hlQ29udHJvbCYmKGMuY2FjaGVDb250cm9sPWEuY2FjaGVDb250cm9sKTt2YXIgdT17fTtpZihvKXt2YXIgZj1vLmZpbmlzaCgpO2YmJih1LnJlc291cmNlVGltaW5nPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZikpKX1zLnZlY3RvclRpbGU9YS52ZWN0b3JUaWxlLHMucGFyc2UoYS52ZWN0b3JUaWxlLG4ubGF5ZXJJbmRleCxuLmF2YWlsYWJsZUltYWdlcyxuLmFjdG9yLChmdW5jdGlvbihlLG4pe2lmKGV8fCFuKXJldHVybiByKGUpO3IobnVsbCx0LmV4dGVuZCh7cmF3VGlsZURhdGE6bC5zbGljZSgwKX0sbixjLHUpKX0pKSxuLmxvYWRlZD1uLmxvYWRlZHx8e30sbi5sb2FkZWRbaV09c30pKX0sbC5wcm90b3R5cGUucmVsb2FkVGlsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj10aGlzLmxvYWRlZCxpPXQudWlkLGE9dGhpcztpZihuJiZuW2ldKXt2YXIgbz1uW2ldO28uc2hvd0NvbGxpc2lvbkJveGVzPXQuc2hvd0NvbGxpc2lvbkJveGVzO3ZhciBzPWZ1bmN0aW9uKHQsbil7dmFyIGk9by5yZWxvYWRDYWxsYmFjaztpJiYoZGVsZXRlIG8ucmVsb2FkQ2FsbGJhY2ssby5wYXJzZShvLnZlY3RvclRpbGUsYS5sYXllckluZGV4LHIuYXZhaWxhYmxlSW1hZ2VzLGEuYWN0b3IsaSkpLGUodCxuKX07InBhcnNpbmciPT09by5zdGF0dXM/by5yZWxvYWRDYWxsYmFjaz1zOiJkb25lIj09PW8uc3RhdHVzJiYoby52ZWN0b3JUaWxlP28ucGFyc2Uoby52ZWN0b3JUaWxlLHRoaXMubGF5ZXJJbmRleCx0aGlzLmF2YWlsYWJsZUltYWdlcyx0aGlzLmFjdG9yLHMpOnMoKSl9fSxsLnByb3RvdHlwZS5hYm9ydFRpbGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxvYWRpbmcsbj10LnVpZDtyJiZyW25dJiZyW25dLmFib3J0JiYocltuXS5hYm9ydCgpLGRlbGV0ZSByW25dKSxlKCl9LGwucHJvdG90eXBlLnJlbW92ZVRpbGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxvYWRlZCxuPXQudWlkO3ImJnJbbl0mJmRlbGV0ZSByW25dLGUoKX07dmFyIGM9dC53aW5kb3cuSW1hZ2VCaXRtYXAsdT1mdW5jdGlvbigpe3RoaXMubG9hZGVkPXt9fTt1LnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPWUudWlkLGk9ZS5lbmNvZGluZyxhPWUucmF3SW1hZ2VEYXRhLG89YyYmYSBpbnN0YW5jZW9mIGM/dGhpcy5nZXRJbWFnZURhdGEoYSk6YSxzPW5ldyB0LkRFTURhdGEobixvLGkpO3RoaXMubG9hZGVkPXRoaXMubG9hZGVkfHx7fSx0aGlzLmxvYWRlZFtuXT1zLHIobnVsbCxzKX0sdS5wcm90b3R5cGUuZ2V0SW1hZ2VEYXRhPWZ1bmN0aW9uKGUpe3RoaXMub2Zmc2NyZWVuQ2FudmFzJiZ0aGlzLm9mZnNjcmVlbkNhbnZhc0NvbnRleHR8fCh0aGlzLm9mZnNjcmVlbkNhbnZhcz1uZXcgT2Zmc2NyZWVuQ2FudmFzKGUud2lkdGgsZS5oZWlnaHQpLHRoaXMub2Zmc2NyZWVuQ2FudmFzQ29udGV4dD10aGlzLm9mZnNjcmVlbkNhbnZhcy5nZXRDb250ZXh0KCIyZCIpKSx0aGlzLm9mZnNjcmVlbkNhbnZhcy53aWR0aD1lLndpZHRoLHRoaXMub2Zmc2NyZWVuQ2FudmFzLmhlaWdodD1lLmhlaWdodCx0aGlzLm9mZnNjcmVlbkNhbnZhc0NvbnRleHQuZHJhd0ltYWdlKGUsMCwwLGUud2lkdGgsZS5oZWlnaHQpO3ZhciByPXRoaXMub2Zmc2NyZWVuQ2FudmFzQ29udGV4dC5nZXRJbWFnZURhdGEoLTEsLTEsZS53aWR0aCsyLGUuaGVpZ2h0KzIpO3JldHVybiB0aGlzLm9mZnNjcmVlbkNhbnZhc0NvbnRleHQuY2xlYXJSZWN0KDAsMCx0aGlzLm9mZnNjcmVlbkNhbnZhcy53aWR0aCx0aGlzLm9mZnNjcmVlbkNhbnZhcy5oZWlnaHQpLG5ldyB0LlJHQkFJbWFnZSh7d2lkdGg6ci53aWR0aCxoZWlnaHQ6ci5oZWlnaHR9LHIuZGF0YSl9LHUucHJvdG90eXBlLnJlbW92ZVRpbGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sb2FkZWQscj10LnVpZDtlJiZlW3JdJiZkZWxldGUgZVtyXX07dmFyIGY9ZnVuY3Rpb24gdChlLHIpe3ZhciBuLGk9ZSYmZS50eXBlO2lmKCJGZWF0dXJlQ29sbGVjdGlvbiI9PT1pKWZvcihuPTA7bjxlLmZlYXR1cmVzLmxlbmd0aDtuKyspdChlLmZlYXR1cmVzW25dLHIpO2Vsc2UgaWYoIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1pKWZvcihuPTA7bjxlLmdlb21ldHJpZXMubGVuZ3RoO24rKyl0KGUuZ2VvbWV0cmllc1tuXSxyKTtlbHNlIGlmKCJGZWF0dXJlIj09PWkpdChlLmdlb21ldHJ5LHIpO2Vsc2UgaWYoIlBvbHlnb24iPT09aSloKGUuY29vcmRpbmF0ZXMscik7ZWxzZSBpZigiTXVsdGlQb2x5Z29uIj09PWkpZm9yKG49MDtuPGUuY29vcmRpbmF0ZXMubGVuZ3RoO24rKyloKGUuY29vcmRpbmF0ZXNbbl0scik7cmV0dXJuIGV9O2Z1bmN0aW9uIGgodCxlKXtpZigwIT09dC5sZW5ndGgpe3AodFswXSxlKTtmb3IodmFyIHI9MTtyPHQubGVuZ3RoO3IrKylwKHRbcl0sIWUpfX1mdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByPTAsbj0wLGk9dC5sZW5ndGgsYT1pLTE7bjxpO2E9bisrKXIrPSh0W25dWzBdLXRbYV1bMF0pKih0W2FdWzFdK3Rbbl1bMV0pO3I+PTAhPSEhZSYmdC5yZXZlcnNlKCl9dmFyIGQ9dC52ZWN0b3JUaWxlLlZlY3RvclRpbGVGZWF0dXJlLnByb3RvdHlwZS50b0dlb0pTT04sbT1mdW5jdGlvbihlKXt0aGlzLl9mZWF0dXJlPWUsdGhpcy5leHRlbnQ9dC5FWFRFTlQsdGhpcy50eXBlPWUudHlwZSx0aGlzLnByb3BlcnRpZXM9ZS50YWdzLCJpZCJpbiBlJiYhaXNOYU4oZS5pZCkmJih0aGlzLmlkPXBhcnNlSW50KGUuaWQsMTApKX07bS5wcm90b3R5cGUubG9hZEdlb21ldHJ5PWZ1bmN0aW9uKCl7aWYoMT09PXRoaXMuX2ZlYXR1cmUudHlwZSl7Zm9yKHZhciBlPVtdLHI9MCxuPXRoaXMuX2ZlYXR1cmUuZ2VvbWV0cnk7cjxuLmxlbmd0aDtyKz0xKXt2YXIgaT1uW3JdO2UucHVzaChbbmV3IHQuUG9pbnQkMShpWzBdLGlbMV0pXSl9cmV0dXJuIGV9Zm9yKHZhciBhPVtdLG89MCxzPXRoaXMuX2ZlYXR1cmUuZ2VvbWV0cnk7bzxzLmxlbmd0aDtvKz0xKXtmb3IodmFyIGw9W10sYz0wLHU9c1tvXTtjPHUubGVuZ3RoO2MrPTEpe3ZhciBmPXVbY107bC5wdXNoKG5ldyB0LlBvaW50JDEoZlswXSxmWzFdKSl9YS5wdXNoKGwpfXJldHVybiBhfSxtLnByb3RvdHlwZS50b0dlb0pTT049ZnVuY3Rpb24odCxlLHIpe3JldHVybiBkLmNhbGwodGhpcyx0LGUscil9O3ZhciBnPWZ1bmN0aW9uKGUpe3RoaXMubGF5ZXJzPXtfZ2VvanNvblRpbGVMYXllcjp0aGlzfSx0aGlzLm5hbWU9Il9nZW9qc29uVGlsZUxheWVyIix0aGlzLmV4dGVudD10LkVYVEVOVCx0aGlzLmxlbmd0aD1lLmxlbmd0aCx0aGlzLl9mZWF0dXJlcz1lfTtnLnByb3RvdHlwZS5mZWF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbSh0aGlzLl9mZWF0dXJlc1t0XSl9O3ZhciB2PXQudmVjdG9yVGlsZS5WZWN0b3JUaWxlRmVhdHVyZSx5PXg7ZnVuY3Rpb24geCh0LGUpe3RoaXMub3B0aW9ucz1lfHx7fSx0aGlzLmZlYXR1cmVzPXQsdGhpcy5sZW5ndGg9dC5sZW5ndGh9ZnVuY3Rpb24gYih0LGUpe3RoaXMuaWQ9Im51bWJlciI9PXR5cGVvZiB0LmlkP3QuaWQ6dm9pZCAwLHRoaXMudHlwZT10LnR5cGUsdGhpcy5yYXdHZW9tZXRyeT0xPT09dC50eXBlP1t0Lmdlb21ldHJ5XTp0Lmdlb21ldHJ5LHRoaXMucHJvcGVydGllcz10LnRhZ3MsdGhpcy5leHRlbnQ9ZXx8NDA5Nn14LnByb3RvdHlwZS5mZWF0dXJlPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgYih0aGlzLmZlYXR1cmVzW3RdLHRoaXMub3B0aW9ucy5leHRlbnQpfSxiLnByb3RvdHlwZS5sb2FkR2VvbWV0cnk9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLnJhd0dlb21ldHJ5O3RoaXMuZ2VvbWV0cnk9W107Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe2Zvcih2YXIgbj1lW3JdLGk9W10sYT0wO2E8bi5sZW5ndGg7YSsrKWkucHVzaChuZXcgdC5Qb2ludCQxKG5bYV1bMF0sblthXVsxXSkpO3RoaXMuZ2VvbWV0cnkucHVzaChpKX1yZXR1cm4gdGhpcy5nZW9tZXRyeX0sYi5wcm90b3R5cGUuYmJveD1mdW5jdGlvbigpe3RoaXMuZ2VvbWV0cnl8fHRoaXMubG9hZEdlb21ldHJ5KCk7Zm9yKHZhciB0PXRoaXMuZ2VvbWV0cnksZT0xLzAscj0tMS8wLG49MS8wLGk9LTEvMCxhPTA7YTx0Lmxlbmd0aDthKyspZm9yKHZhciBvPXRbYV0scz0wO3M8by5sZW5ndGg7cysrKXt2YXIgbD1vW3NdO2U9TWF0aC5taW4oZSxsLngpLHI9TWF0aC5tYXgocixsLngpLG49TWF0aC5taW4obixsLnkpLGk9TWF0aC5tYXgoaSxsLnkpfXJldHVybltlLG4scixpXX0sYi5wcm90b3R5cGUudG9HZW9KU09OPXYucHJvdG90eXBlLnRvR2VvSlNPTjt2YXIgXz1BLHc9QSxUPWZ1bmN0aW9uKHQsZSl7ZT1lfHx7fTt2YXIgcj17fTtmb3IodmFyIG4gaW4gdClyW25dPW5ldyB5KHRbbl0uZmVhdHVyZXMsZSkscltuXS5uYW1lPW4scltuXS52ZXJzaW9uPWUudmVyc2lvbixyW25dLmV4dGVudD1lLmV4dGVudDtyZXR1cm4gQSh7bGF5ZXJzOnJ9KX0saz15O2Z1bmN0aW9uIEEoZSl7dmFyIHI9bmV3IHQucGJmO3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgciBpbiB0LmxheWVycyllLndyaXRlTWVzc2FnZSgzLE0sdC5sYXllcnNbcl0pfShlLHIpLHIuZmluaXNoKCl9ZnVuY3Rpb24gTSh0LGUpe3ZhciByO2Uud3JpdGVWYXJpbnRGaWVsZCgxNSx0LnZlcnNpb258fDEpLGUud3JpdGVTdHJpbmdGaWVsZCgxLHQubmFtZXx8IiIpLGUud3JpdGVWYXJpbnRGaWVsZCg1LHQuZXh0ZW50fHw0MDk2KTt2YXIgbj17a2V5czpbXSx2YWx1ZXM6W10sa2V5Y2FjaGU6e30sdmFsdWVjYWNoZTp7fX07Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyluLmZlYXR1cmU9dC5mZWF0dXJlKHIpLGUud3JpdGVNZXNzYWdlKDIsUyxuKTt2YXIgaT1uLmtleXM7Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyllLndyaXRlU3RyaW5nRmllbGQoMyxpW3JdKTt2YXIgYT1uLnZhbHVlcztmb3Iocj0wO3I8YS5sZW5ndGg7cisrKWUud3JpdGVNZXNzYWdlKDQsSSxhW3JdKX1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9dC5mZWF0dXJlO3ZvaWQgMCE9PXIuaWQmJmUud3JpdGVWYXJpbnRGaWVsZCgxLHIuaWQpLGUud3JpdGVNZXNzYWdlKDIsRSx0KSxlLndyaXRlVmFyaW50RmllbGQoMyxyLnR5cGUpLGUud3JpdGVNZXNzYWdlKDQsUCxyKX1mdW5jdGlvbiBFKHQsZSl7dmFyIHI9dC5mZWF0dXJlLG49dC5rZXlzLGk9dC52YWx1ZXMsYT10LmtleWNhY2hlLG89dC52YWx1ZWNhY2hlO2Zvcih2YXIgcyBpbiByLnByb3BlcnRpZXMpe3ZhciBsPWFbc107dm9pZCAwPT09bCYmKG4ucHVzaChzKSxsPW4ubGVuZ3RoLTEsYVtzXT1sKSxlLndyaXRlVmFyaW50KGwpO3ZhciBjPXIucHJvcGVydGllc1tzXSx1PXR5cGVvZiBjOyJzdHJpbmciIT09dSYmImJvb2xlYW4iIT09dSYmIm51bWJlciIhPT11JiYoYz1KU09OLnN0cmluZ2lmeShjKSk7dmFyIGY9dSsiOiIrYyxoPW9bZl07dm9pZCAwPT09aCYmKGkucHVzaChjKSxoPWkubGVuZ3RoLTEsb1tmXT1oKSxlLndyaXRlVmFyaW50KGgpfX1mdW5jdGlvbiBMKHQsZSl7cmV0dXJuKGU8PDMpKyg3JnQpfWZ1bmN0aW9uIEModCl7cmV0dXJuIHQ8PDFedD4+MzF9ZnVuY3Rpb24gUCh0LGUpe2Zvcih2YXIgcj10LmxvYWRHZW9tZXRyeSgpLG49dC50eXBlLGk9MCxhPTAsbz1yLmxlbmd0aCxzPTA7czxvO3MrKyl7dmFyIGw9cltzXSxjPTE7MT09PW4mJihjPWwubGVuZ3RoKSxlLndyaXRlVmFyaW50KEwoMSxjKSk7Zm9yKHZhciB1PTM9PT1uP2wubGVuZ3RoLTE6bC5sZW5ndGgsZj0wO2Y8dTtmKyspezE9PT1mJiYxIT09biYmZS53cml0ZVZhcmludChMKDIsdS0xKSk7dmFyIGg9bFtmXS54LWkscD1sW2ZdLnktYTtlLndyaXRlVmFyaW50KEMoaCkpLGUud3JpdGVWYXJpbnQoQyhwKSksaSs9aCxhKz1wfTM9PT1uJiZlLndyaXRlVmFyaW50KEwoNywxKSl9fWZ1bmN0aW9uIEkodCxlKXt2YXIgcj10eXBlb2YgdDsic3RyaW5nIj09PXI/ZS53cml0ZVN0cmluZ0ZpZWxkKDEsdCk6ImJvb2xlYW4iPT09cj9lLndyaXRlQm9vbGVhbkZpZWxkKDcsdCk6Im51bWJlciI9PT1yJiYodCUxIT0wP2Uud3JpdGVEb3VibGVGaWVsZCgzLHQpOnQ8MD9lLndyaXRlU1ZhcmludEZpZWxkKDYsdCk6ZS53cml0ZVZhcmludEZpZWxkKDUsdCkpfWZ1bmN0aW9uIE8odCxlLHIsbixpLGEpe2lmKCEoaS1uPD1yKSl7dmFyIG89bitpPj4xOyFmdW5jdGlvbiB0KGUscixuLGksYSxvKXtmb3IoO2E+aTspe2lmKGEtaT42MDApe3ZhciBzPWEtaSsxLGw9bi1pKzEsYz1NYXRoLmxvZyhzKSx1PS41Kk1hdGguZXhwKDIqYy8zKSxmPS41Kk1hdGguc3FydChjKnUqKHMtdSkvcykqKGwtcy8yPDA/LTE6MSksaD1NYXRoLm1heChpLE1hdGguZmxvb3Iobi1sKnUvcytmKSkscD1NYXRoLm1pbihhLE1hdGguZmxvb3Iobisocy1sKSp1L3MrZikpO3QoZSxyLG4saCxwLG8pfXZhciBkPXJbMipuK29dLG09aSxnPWE7Zm9yKHooZSxyLGksbiksclsyKmErb10+ZCYmeihlLHIsaSxhKTttPGc7KXtmb3IoeihlLHIsbSxnKSxtKyssZy0tO3JbMiptK29dPGQ7KW0rKztmb3IoO3JbMipnK29dPmQ7KWctLX1yWzIqaStvXT09PWQ/eihlLHIsaSxnKTooZysrLHooZSxyLGcsYSkpLGc8PW4mJihpPWcrMSksbjw9ZyYmKGE9Zy0xKX19KHQsZSxvLG4saSxhJTIpLE8odCxlLHIsbixvLTEsYSsxKSxPKHQsZSxyLG8rMSxpLGErMSl9fWZ1bmN0aW9uIHoodCxlLHIsbil7RCh0LHIsbiksRChlLDIqciwyKm4pLEQoZSwyKnIrMSwyKm4rMSl9ZnVuY3Rpb24gRCh0LGUscil7dmFyIG49dFtlXTt0W2VdPXRbcl0sdFtyXT1ufWZ1bmN0aW9uIFIodCxlLHIsbil7dmFyIGk9dC1yLGE9ZS1uO3JldHVybiBpKmkrYSphfV8uZnJvbVZlY3RvclRpbGVKcz13LF8uZnJvbUdlb2pzb25WdD1ULF8uR2VvSlNPTldyYXBwZXI9azt2YXIgRj1mdW5jdGlvbih0KXtyZXR1cm4gdFswXX0sQj1mdW5jdGlvbih0KXtyZXR1cm4gdFsxXX0sTj1mdW5jdGlvbih0LGUscixuLGkpe3ZvaWQgMD09PWUmJihlPUYpLHZvaWQgMD09PXImJihyPUIpLHZvaWQgMD09PW4mJihuPTY0KSx2b2lkIDA9PT1pJiYoaT1GbG9hdDY0QXJyYXkpLHRoaXMubm9kZVNpemU9bix0aGlzLnBvaW50cz10O2Zvcih2YXIgYT10Lmxlbmd0aDw2NTUzNj9VaW50MTZBcnJheTpVaW50MzJBcnJheSxvPXRoaXMuaWRzPW5ldyBhKHQubGVuZ3RoKSxzPXRoaXMuY29vcmRzPW5ldyBpKDIqdC5sZW5ndGgpLGw9MDtsPHQubGVuZ3RoO2wrKylvW2xdPWwsc1syKmxdPWUodFtsXSksc1syKmwrMV09cih0W2xdKTtPKG8scyxuLDAsby5sZW5ndGgtMSwwKX07Ti5wcm90b3R5cGUucmFuZ2U9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgcyxsLGM9WzAsdC5sZW5ndGgtMSwwXSx1PVtdO2MubGVuZ3RoOyl7dmFyIGY9Yy5wb3AoKSxoPWMucG9wKCkscD1jLnBvcCgpO2lmKGgtcDw9bylmb3IodmFyIGQ9cDtkPD1oO2QrKylzPWVbMipkXSxsPWVbMipkKzFdLHM+PXImJnM8PWkmJmw+PW4mJmw8PWEmJnUucHVzaCh0W2RdKTtlbHNle3ZhciBtPU1hdGguZmxvb3IoKHAraCkvMik7cz1lWzIqbV0sbD1lWzIqbSsxXSxzPj1yJiZzPD1pJiZsPj1uJiZsPD1hJiZ1LnB1c2godFttXSk7dmFyIGc9KGYrMSklMjsoMD09PWY/cjw9czpuPD1sKSYmKGMucHVzaChwKSxjLnB1c2gobS0xKSxjLnB1c2goZykpLCgwPT09Zj9pPj1zOmE+PWwpJiYoYy5wdXNoKG0rMSksYy5wdXNoKGgpLGMucHVzaChnKSl9fXJldHVybiB1fSh0aGlzLmlkcyx0aGlzLmNvb3Jkcyx0LGUscixuLHRoaXMubm9kZVNpemUpfSxOLnByb3RvdHlwZS53aXRoaW49ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSl7Zm9yKHZhciBvPVswLHQubGVuZ3RoLTEsMF0scz1bXSxsPWkqaTtvLmxlbmd0aDspe3ZhciBjPW8ucG9wKCksdT1vLnBvcCgpLGY9by5wb3AoKTtpZih1LWY8PWEpZm9yKHZhciBoPWY7aDw9dTtoKyspUihlWzIqaF0sZVsyKmgrMV0scixuKTw9bCYmcy5wdXNoKHRbaF0pO2Vsc2V7dmFyIHA9TWF0aC5mbG9vcigoZit1KS8yKSxkPWVbMipwXSxtPWVbMipwKzFdO1IoZCxtLHIsbik8PWwmJnMucHVzaCh0W3BdKTt2YXIgZz0oYysxKSUyOygwPT09Yz9yLWk8PWQ6bi1pPD1tKSYmKG8ucHVzaChmKSxvLnB1c2gocC0xKSxvLnB1c2goZykpLCgwPT09Yz9yK2k+PWQ6bitpPj1tKSYmKG8ucHVzaChwKzEpLG8ucHVzaCh1KSxvLnB1c2goZykpfX1yZXR1cm4gc30odGhpcy5pZHMsdGhpcy5jb29yZHMsdCxlLHIsdGhpcy5ub2RlU2l6ZSl9O3ZhciBqPXttaW5ab29tOjAsbWF4Wm9vbToxNixyYWRpdXM6NDAsZXh0ZW50OjUxMixub2RlU2l6ZTo2NCxsb2c6ITEsZ2VuZXJhdGVJZDohMSxyZWR1Y2U6bnVsbCxtYXA6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxVPWZ1bmN0aW9uKHQpe3RoaXMub3B0aW9ucz1YKE9iamVjdC5jcmVhdGUoaiksdCksdGhpcy50cmVlcz1uZXcgQXJyYXkodGhpcy5vcHRpb25zLm1heFpvb20rMSl9O2Z1bmN0aW9uIFYodCxlLHIsbixpKXtyZXR1cm57eDp0LHk6ZSx6b29tOjEvMCxpZDpyLHBhcmVudElkOi0xLG51bVBvaW50czpuLHByb3BlcnRpZXM6aX19ZnVuY3Rpb24gSCh0LGUpe3ZhciByPXQuZ2VvbWV0cnkuY29vcmRpbmF0ZXMsbj1yWzBdLGk9clsxXTtyZXR1cm57eDpZKG4pLHk6VyhpKSx6b29tOjEvMCxpbmRleDplLHBhcmVudElkOi0xfX1mdW5jdGlvbiBxKHQpe3JldHVybnt0eXBlOiJGZWF0dXJlIixpZDp0LmlkLHByb3BlcnRpZXM6Ryh0KSxnZW9tZXRyeTp7dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOlsobj10LngsMzYwKihuLS41KSksKGU9dC55LHI9KDE4MC0zNjAqZSkqTWF0aC5QSS8xODAsMzYwKk1hdGguYXRhbihNYXRoLmV4cChyKSkvTWF0aC5QSS05MCldfX07dmFyIGUscixufWZ1bmN0aW9uIEcodCl7dmFyIGU9dC5udW1Qb2ludHMscj1lPj0xZTQ/TWF0aC5yb3VuZChlLzFlMykrImsiOmU+PTFlMz9NYXRoLnJvdW5kKGUvMTAwKS8xMCsiayI6ZTtyZXR1cm4gWChYKHt9LHQucHJvcGVydGllcykse2NsdXN0ZXI6ITAsY2x1c3Rlcl9pZDp0LmlkLHBvaW50X2NvdW50OmUscG9pbnRfY291bnRfYWJicmV2aWF0ZWQ6cn0pfWZ1bmN0aW9uIFkodCl7cmV0dXJuIHQvMzYwKy41fWZ1bmN0aW9uIFcodCl7dmFyIGU9TWF0aC5zaW4odCpNYXRoLlBJLzE4MCkscj0uNS0uMjUqTWF0aC5sb2coKDErZSkvKDEtZSkpL01hdGguUEk7cmV0dXJuIHI8MD8wOnI+MT8xOnJ9ZnVuY3Rpb24gWCh0LGUpe2Zvcih2YXIgciBpbiBlKXRbcl09ZVtyXTtyZXR1cm4gdH1mdW5jdGlvbiBaKHQpe3JldHVybiB0Lnh9ZnVuY3Rpb24gSih0KXtyZXR1cm4gdC55fWZ1bmN0aW9uIEsodCxlLHIsbixpLGEpe3ZhciBvPWktcixzPWEtbjtpZigwIT09b3x8MCE9PXMpe3ZhciBsPSgodC1yKSpvKyhlLW4pKnMpLyhvKm8rcypzKTtsPjE/KHI9aSxuPWEpOmw+MCYmKHIrPW8qbCxuKz1zKmwpfXJldHVybihvPXQtcikqbysocz1lLW4pKnN9ZnVuY3Rpb24gUSh0LGUscixuKXt2YXIgaT17aWQ6dm9pZCAwPT09dD9udWxsOnQsdHlwZTplLGdlb21ldHJ5OnIsdGFnczpuLG1pblg6MS8wLG1pblk6MS8wLG1heFg6LTEvMCxtYXhZOi0xLzB9O3JldHVybiBmdW5jdGlvbih0KXt2YXIgZT10Lmdlb21ldHJ5LHI9dC50eXBlO2lmKCJQb2ludCI9PT1yfHwiTXVsdGlQb2ludCI9PT1yfHwiTGluZVN0cmluZyI9PT1yKSQodCxlKTtlbHNlIGlmKCJQb2x5Z29uIj09PXJ8fCJNdWx0aUxpbmVTdHJpbmciPT09cilmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKykkKHQsZVtuXSk7ZWxzZSBpZigiTXVsdGlQb2x5Z29uIj09PXIpZm9yKG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIGk9MDtpPGVbbl0ubGVuZ3RoO2krKykkKHQsZVtuXVtpXSl9KGkpLGl9ZnVuY3Rpb24gJCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cis9Myl0Lm1pblg9TWF0aC5taW4odC5taW5YLGVbcl0pLHQubWluWT1NYXRoLm1pbih0Lm1pblksZVtyKzFdKSx0Lm1heFg9TWF0aC5tYXgodC5tYXhYLGVbcl0pLHQubWF4WT1NYXRoLm1heCh0Lm1heFksZVtyKzFdKX1mdW5jdGlvbiB0dCh0LGUscixuKXtpZihlLmdlb21ldHJ5KXt2YXIgaT1lLmdlb21ldHJ5LmNvb3JkaW5hdGVzLGE9ZS5nZW9tZXRyeS50eXBlLG89TWF0aC5wb3coci50b2xlcmFuY2UvKCgxPDxyLm1heFpvb20pKnIuZXh0ZW50KSwyKSxzPVtdLGw9ZS5pZDtpZihyLnByb21vdGVJZD9sPWUucHJvcGVydGllc1tyLnByb21vdGVJZF06ci5nZW5lcmF0ZUlkJiYobD1ufHwwKSwiUG9pbnQiPT09YSlldChpLHMpO2Vsc2UgaWYoIk11bHRpUG9pbnQiPT09YSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKylldChpW2NdLHMpO2Vsc2UgaWYoIkxpbmVTdHJpbmciPT09YSlydChpLHMsbywhMSk7ZWxzZSBpZigiTXVsdGlMaW5lU3RyaW5nIj09PWEpe2lmKHIubGluZU1ldHJpY3Mpe2ZvcihjPTA7YzxpLmxlbmd0aDtjKyspcz1bXSxydChpW2NdLHMsbywhMSksdC5wdXNoKFEobCwiTGluZVN0cmluZyIscyxlLnByb3BlcnRpZXMpKTtyZXR1cm59bnQoaSxzLG8sITEpfWVsc2UgaWYoIlBvbHlnb24iPT09YSludChpLHMsbywhMCk7ZWxzZXtpZigiTXVsdGlQb2x5Z29uIiE9PWEpe2lmKCJHZW9tZXRyeUNvbGxlY3Rpb24iPT09YSl7Zm9yKGM9MDtjPGUuZ2VvbWV0cnkuZ2VvbWV0cmllcy5sZW5ndGg7YysrKXR0KHQse2lkOmwsZ2VvbWV0cnk6ZS5nZW9tZXRyeS5nZW9tZXRyaWVzW2NdLHByb3BlcnRpZXM6ZS5wcm9wZXJ0aWVzfSxyLG4pO3JldHVybn10aHJvdyBuZXcgRXJyb3IoIklucHV0IGRhdGEgaXMgbm90IGEgdmFsaWQgR2VvSlNPTiBvYmplY3QuIil9Zm9yKGM9MDtjPGkubGVuZ3RoO2MrKyl7dmFyIHU9W107bnQoaVtjXSx1LG8sITApLHMucHVzaCh1KX19dC5wdXNoKFEobCxhLHMsZS5wcm9wZXJ0aWVzKSl9fWZ1bmN0aW9uIGV0KHQsZSl7ZS5wdXNoKGl0KHRbMF0pKSxlLnB1c2goYXQodFsxXSkpLGUucHVzaCgwKX1mdW5jdGlvbiBydCh0LGUscixuKXtmb3IodmFyIGksYSxvPTAscz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbD1pdCh0W3NdWzBdKSxjPWF0KHRbc11bMV0pO2UucHVzaChsKSxlLnB1c2goYyksZS5wdXNoKDApLHM+MCYmKG8rPW4/KGkqYy1sKmEpLzI6TWF0aC5zcXJ0KE1hdGgucG93KGwtaSwyKStNYXRoLnBvdyhjLWEsMikpKSxpPWwsYT1jfXZhciB1PWUubGVuZ3RoLTM7ZVsyXT0xLGZ1bmN0aW9uIHQoZSxyLG4saSl7Zm9yKHZhciBhLG89aSxzPW4tcj4+MSxsPW4tcixjPWVbcl0sdT1lW3IrMV0sZj1lW25dLGg9ZVtuKzFdLHA9ciszO3A8bjtwKz0zKXt2YXIgZD1LKGVbcF0sZVtwKzFdLGMsdSxmLGgpO2lmKGQ+bylhPXAsbz1kO2Vsc2UgaWYoZD09PW8pe3ZhciBtPU1hdGguYWJzKHAtcyk7bTxsJiYoYT1wLGw9bSl9fW8+aSYmKGEtcj4zJiZ0KGUscixhLGkpLGVbYSsyXT1vLG4tYT4zJiZ0KGUsYSxuLGkpKX0oZSwwLHUsciksZVt1KzJdPTEsZS5zaXplPU1hdGguYWJzKG8pLGUuc3RhcnQ9MCxlLmVuZD1lLnNpemV9ZnVuY3Rpb24gbnQodCxlLHIsbil7Zm9yKHZhciBpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBhPVtdO3J0KHRbaV0sYSxyLG4pLGUucHVzaChhKX19ZnVuY3Rpb24gaXQodCl7cmV0dXJuIHQvMzYwKy41fWZ1bmN0aW9uIGF0KHQpe3ZhciBlPU1hdGguc2luKHQqTWF0aC5QSS8xODApLHI9LjUtLjI1Kk1hdGgubG9nKCgxK2UpLygxLWUpKS9NYXRoLlBJO3JldHVybiByPDA/MDpyPjE/MTpyfWZ1bmN0aW9uIG90KHQsZSxyLG4saSxhLG8scyl7aWYobi89ZSxhPj0oci89ZSkmJm88bilyZXR1cm4gdDtpZihvPHJ8fGE+PW4pcmV0dXJuIG51bGw7Zm9yKHZhciBsPVtdLGM9MDtjPHQubGVuZ3RoO2MrKyl7dmFyIHU9dFtjXSxmPXUuZ2VvbWV0cnksaD11LnR5cGUscD0wPT09aT91Lm1pblg6dS5taW5ZLGQ9MD09PWk/dS5tYXhYOnUubWF4WTtpZihwPj1yJiZkPG4pbC5wdXNoKHUpO2Vsc2UgaWYoIShkPHJ8fHA+PW4pKXt2YXIgbT1bXTtpZigiUG9pbnQiPT09aHx8Ik11bHRpUG9pbnQiPT09aClzdChmLG0scixuLGkpO2Vsc2UgaWYoIkxpbmVTdHJpbmciPT09aClsdChmLG0scixuLGksITEscy5saW5lTWV0cmljcyk7ZWxzZSBpZigiTXVsdGlMaW5lU3RyaW5nIj09PWgpdXQoZixtLHIsbixpLCExKTtlbHNlIGlmKCJQb2x5Z29uIj09PWgpdXQoZixtLHIsbixpLCEwKTtlbHNlIGlmKCJNdWx0aVBvbHlnb24iPT09aClmb3IodmFyIGc9MDtnPGYubGVuZ3RoO2crKyl7dmFyIHY9W107dXQoZltnXSx2LHIsbixpLCEwKSx2Lmxlbmd0aCYmbS5wdXNoKHYpfWlmKG0ubGVuZ3RoKXtpZihzLmxpbmVNZXRyaWNzJiYiTGluZVN0cmluZyI9PT1oKXtmb3IoZz0wO2c8bS5sZW5ndGg7ZysrKWwucHVzaChRKHUuaWQsaCxtW2ddLHUudGFncykpO2NvbnRpbnVlfSJMaW5lU3RyaW5nIiE9PWgmJiJNdWx0aUxpbmVTdHJpbmciIT09aHx8KDE9PT1tLmxlbmd0aD8oaD0iTGluZVN0cmluZyIsbT1tWzBdKTpoPSJNdWx0aUxpbmVTdHJpbmciKSwiUG9pbnQiIT09aCYmIk11bHRpUG9pbnQiIT09aHx8KGg9Mz09PW0ubGVuZ3RoPyJQb2ludCI6Ik11bHRpUG9pbnQiKSxsLnB1c2goUSh1LmlkLGgsbSx1LnRhZ3MpKX19fXJldHVybiBsLmxlbmd0aD9sOm51bGx9ZnVuY3Rpb24gc3QodCxlLHIsbixpKXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErPTMpe3ZhciBvPXRbYStpXTtvPj1yJiZvPD1uJiYoZS5wdXNoKHRbYV0pLGUucHVzaCh0W2ErMV0pLGUucHVzaCh0W2ErMl0pKX19ZnVuY3Rpb24gbHQodCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzLGwsYz1jdCh0KSx1PTA9PT1pP2h0OnB0LGY9dC5zdGFydCxoPTA7aDx0Lmxlbmd0aC0zO2grPTMpe3ZhciBwPXRbaF0sZD10W2grMV0sbT10W2grMl0sZz10W2grM10sdj10W2grNF0seT0wPT09aT9wOmQseD0wPT09aT9nOnYsYj0hMTtvJiYocz1NYXRoLnNxcnQoTWF0aC5wb3cocC1nLDIpK01hdGgucG93KGQtdiwyKSkpLHk8cj94PnImJihsPXUoYyxwLGQsZyx2LHIpLG8mJihjLnN0YXJ0PWYrcypsKSk6eT5uP3g8biYmKGw9dShjLHAsZCxnLHYsbiksbyYmKGMuc3RhcnQ9ZitzKmwpKTpmdChjLHAsZCxtKSx4PHImJnk+PXImJihsPXUoYyxwLGQsZyx2LHIpLGI9ITApLHg+biYmeTw9biYmKGw9dShjLHAsZCxnLHYsbiksYj0hMCksIWEmJmImJihvJiYoYy5lbmQ9ZitzKmwpLGUucHVzaChjKSxjPWN0KHQpKSxvJiYoZis9cyl9dmFyIF89dC5sZW5ndGgtMztwPXRbX10sZD10W18rMV0sbT10W18rMl0sKHk9MD09PWk/cDpkKT49ciYmeTw9biYmZnQoYyxwLGQsbSksXz1jLmxlbmd0aC0zLGEmJl8+PTMmJihjW19dIT09Y1swXXx8Y1tfKzFdIT09Y1sxXSkmJmZ0KGMsY1swXSxjWzFdLGNbMl0pLGMubGVuZ3RoJiZlLnB1c2goYyl9ZnVuY3Rpb24gY3QodCl7dmFyIGU9W107cmV0dXJuIGUuc2l6ZT10LnNpemUsZS5zdGFydD10LnN0YXJ0LGUuZW5kPXQuZW5kLGV9ZnVuY3Rpb24gdXQodCxlLHIsbixpLGEpe2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKWx0KHRbb10sZSxyLG4saSxhLCExKX1mdW5jdGlvbiBmdCh0LGUscixuKXt0LnB1c2goZSksdC5wdXNoKHIpLHQucHVzaChuKX1mdW5jdGlvbiBodCh0LGUscixuLGksYSl7dmFyIG89KGEtZSkvKG4tZSk7cmV0dXJuIHQucHVzaChhKSx0LnB1c2gocisoaS1yKSpvKSx0LnB1c2goMSksb31mdW5jdGlvbiBwdCh0LGUscixuLGksYSl7dmFyIG89KGEtcikvKGktcik7cmV0dXJuIHQucHVzaChlKyhuLWUpKm8pLHQucHVzaChhKSx0LnB1c2goMSksb31mdW5jdGlvbiBkdCh0LGUpe2Zvcih2YXIgcj1bXSxuPTA7bjx0Lmxlbmd0aDtuKyspe3ZhciBpLGE9dFtuXSxvPWEudHlwZTtpZigiUG9pbnQiPT09b3x8Ik11bHRpUG9pbnQiPT09b3x8IkxpbmVTdHJpbmciPT09bylpPW10KGEuZ2VvbWV0cnksZSk7ZWxzZSBpZigiTXVsdGlMaW5lU3RyaW5nIj09PW98fCJQb2x5Z29uIj09PW8pe2k9W107Zm9yKHZhciBzPTA7czxhLmdlb21ldHJ5Lmxlbmd0aDtzKyspaS5wdXNoKG10KGEuZ2VvbWV0cnlbc10sZSkpfWVsc2UgaWYoIk11bHRpUG9seWdvbiI9PT1vKWZvcihpPVtdLHM9MDtzPGEuZ2VvbWV0cnkubGVuZ3RoO3MrKyl7Zm9yKHZhciBsPVtdLGM9MDtjPGEuZ2VvbWV0cnlbc10ubGVuZ3RoO2MrKylsLnB1c2gobXQoYS5nZW9tZXRyeVtzXVtjXSxlKSk7aS5wdXNoKGwpfXIucHVzaChRKGEuaWQsbyxpLGEudGFncykpfXJldHVybiByfWZ1bmN0aW9uIG10KHQsZSl7dmFyIHI9W107ci5zaXplPXQuc2l6ZSx2b2lkIDAhPT10LnN0YXJ0JiYoci5zdGFydD10LnN0YXJ0LHIuZW5kPXQuZW5kKTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rPTMpci5wdXNoKHRbbl0rZSx0W24rMV0sdFtuKzJdKTtyZXR1cm4gcn1mdW5jdGlvbiBndCh0LGUpe2lmKHQudHJhbnNmb3JtZWQpcmV0dXJuIHQ7dmFyIHIsbixpLGE9MTw8dC56LG89dC54LHM9dC55O2ZvcihyPTA7cjx0LmZlYXR1cmVzLmxlbmd0aDtyKyspe3ZhciBsPXQuZmVhdHVyZXNbcl0sYz1sLmdlb21ldHJ5LHU9bC50eXBlO2lmKGwuZ2VvbWV0cnk9W10sMT09PXUpZm9yKG49MDtuPGMubGVuZ3RoO24rPTIpbC5nZW9tZXRyeS5wdXNoKHZ0KGNbbl0sY1tuKzFdLGUsYSxvLHMpKTtlbHNlIGZvcihuPTA7bjxjLmxlbmd0aDtuKyspe3ZhciBmPVtdO2ZvcihpPTA7aTxjW25dLmxlbmd0aDtpKz0yKWYucHVzaCh2dChjW25dW2ldLGNbbl1baSsxXSxlLGEsbyxzKSk7bC5nZW9tZXRyeS5wdXNoKGYpfX1yZXR1cm4gdC50cmFuc2Zvcm1lZD0hMCx0fWZ1bmN0aW9uIHZ0KHQsZSxyLG4saSxhKXtyZXR1cm5bTWF0aC5yb3VuZChyKih0Km4taSkpLE1hdGgucm91bmQociooZSpuLWEpKV19ZnVuY3Rpb24geXQodCxlLHIsbixpKXtmb3IodmFyIGE9ZT09PWkubWF4Wm9vbT8wOmkudG9sZXJhbmNlLygoMTw8ZSkqaS5leHRlbnQpLG89e2ZlYXR1cmVzOltdLG51bVBvaW50czowLG51bVNpbXBsaWZpZWQ6MCxudW1GZWF0dXJlczowLHNvdXJjZTpudWxsLHg6cix5Om4sejplLHRyYW5zZm9ybWVkOiExLG1pblg6MixtaW5ZOjEsbWF4WDotMSxtYXhZOjB9LHM9MDtzPHQubGVuZ3RoO3MrKyl7by5udW1GZWF0dXJlcysrLHh0KG8sdFtzXSxhLGkpO3ZhciBsPXRbc10ubWluWCxjPXRbc10ubWluWSx1PXRbc10ubWF4WCxmPXRbc10ubWF4WTtsPG8ubWluWCYmKG8ubWluWD1sKSxjPG8ubWluWSYmKG8ubWluWT1jKSx1Pm8ubWF4WCYmKG8ubWF4WD11KSxmPm8ubWF4WSYmKG8ubWF4WT1mKX1yZXR1cm4gb31mdW5jdGlvbiB4dCh0LGUscixuKXt2YXIgaT1lLmdlb21ldHJ5LGE9ZS50eXBlLG89W107aWYoIlBvaW50Ij09PWF8fCJNdWx0aVBvaW50Ij09PWEpZm9yKHZhciBzPTA7czxpLmxlbmd0aDtzKz0zKW8ucHVzaChpW3NdKSxvLnB1c2goaVtzKzFdKSx0Lm51bVBvaW50cysrLHQubnVtU2ltcGxpZmllZCsrO2Vsc2UgaWYoIkxpbmVTdHJpbmciPT09YSlidChvLGksdCxyLCExLCExKTtlbHNlIGlmKCJNdWx0aUxpbmVTdHJpbmciPT09YXx8IlBvbHlnb24iPT09YSlmb3Iocz0wO3M8aS5sZW5ndGg7cysrKWJ0KG8saVtzXSx0LHIsIlBvbHlnb24iPT09YSwwPT09cyk7ZWxzZSBpZigiTXVsdGlQb2x5Z29uIj09PWEpZm9yKHZhciBsPTA7bDxpLmxlbmd0aDtsKyspe3ZhciBjPWlbbF07Zm9yKHM9MDtzPGMubGVuZ3RoO3MrKylidChvLGNbc10sdCxyLCEwLDA9PT1zKX1pZihvLmxlbmd0aCl7dmFyIHU9ZS50YWdzfHxudWxsO2lmKCJMaW5lU3RyaW5nIj09PWEmJm4ubGluZU1ldHJpY3Mpe2Zvcih2YXIgZiBpbiB1PXt9LGUudGFncyl1W2ZdPWUudGFnc1tmXTt1Lm1hcGJveF9jbGlwX3N0YXJ0PWkuc3RhcnQvaS5zaXplLHUubWFwYm94X2NsaXBfZW5kPWkuZW5kL2kuc2l6ZX12YXIgaD17Z2VvbWV0cnk6byx0eXBlOiJQb2x5Z29uIj09PWF8fCJNdWx0aVBvbHlnb24iPT09YT8zOiJMaW5lU3RyaW5nIj09PWF8fCJNdWx0aUxpbmVTdHJpbmciPT09YT8yOjEsdGFnczp1fTtudWxsIT09ZS5pZCYmKGguaWQ9ZS5pZCksdC5mZWF0dXJlcy5wdXNoKGgpfX1mdW5jdGlvbiBidCh0LGUscixuLGksYSl7dmFyIG89bipuO2lmKG4+MCYmZS5zaXplPChpP286bikpci5udW1Qb2ludHMrPWUubGVuZ3RoLzM7ZWxzZXtmb3IodmFyIHM9W10sbD0wO2w8ZS5sZW5ndGg7bCs9MykoMD09PW58fGVbbCsyXT5vKSYmKHIubnVtU2ltcGxpZmllZCsrLHMucHVzaChlW2xdKSxzLnB1c2goZVtsKzFdKSksci5udW1Qb2ludHMrKztpJiZmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLG49MCxpPXQubGVuZ3RoLGE9aS0yO248aTthPW4sbis9MilyKz0odFtuXS10W2FdKSoodFtuKzFdK3RbYSsxXSk7aWYocj4wPT09ZSlmb3Iobj0wLGk9dC5sZW5ndGg7bjxpLzI7bis9Mil7dmFyIG89dFtuXSxzPXRbbisxXTt0W25dPXRbaS0yLW5dLHRbbisxXT10W2ktMS1uXSx0W2ktMi1uXT1vLHRbaS0xLW5dPXN9fShzLGEpLHQucHVzaChzKX19ZnVuY3Rpb24gX3QodCxlKXt2YXIgcj0oZT10aGlzLm9wdGlvbnM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gZSl0W3JdPWVbcl07cmV0dXJuIHR9KE9iamVjdC5jcmVhdGUodGhpcy5vcHRpb25zKSxlKSkuZGVidWc7aWYociYmY29uc29sZS50aW1lKCJwcmVwcm9jZXNzIGRhdGEiKSxlLm1heFpvb208MHx8ZS5tYXhab29tPjI0KXRocm93IG5ldyBFcnJvcigibWF4Wm9vbSBzaG91bGQgYmUgaW4gdGhlIDAtMjQgcmFuZ2UiKTtpZihlLnByb21vdGVJZCYmZS5nZW5lcmF0ZUlkKXRocm93IG5ldyBFcnJvcigicHJvbW90ZUlkIGFuZCBnZW5lcmF0ZUlkIGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyLiIpO3ZhciBuPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107aWYoIkZlYXR1cmVDb2xsZWN0aW9uIj09PXQudHlwZSlmb3IodmFyIG49MDtuPHQuZmVhdHVyZXMubGVuZ3RoO24rKyl0dChyLHQuZmVhdHVyZXNbbl0sZSxuKTtlbHNlIkZlYXR1cmUiPT09dC50eXBlP3R0KHIsdCxlKTp0dChyLHtnZW9tZXRyeTp0fSxlKTtyZXR1cm4gcn0odCxlKTt0aGlzLnRpbGVzPXt9LHRoaXMudGlsZUNvb3Jkcz1bXSxyJiYoY29uc29sZS50aW1lRW5kKCJwcmVwcm9jZXNzIGRhdGEiKSxjb25zb2xlLmxvZygiaW5kZXg6IG1heFpvb206ICVkLCBtYXhQb2ludHM6ICVkIixlLmluZGV4TWF4Wm9vbSxlLmluZGV4TWF4UG9pbnRzKSxjb25zb2xlLnRpbWUoImdlbmVyYXRlIHRpbGVzIiksdGhpcy5zdGF0cz17fSx0aGlzLnRvdGFsPTApLChuPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5idWZmZXIvZS5leHRlbnQsbj10LGk9b3QodCwxLC0xLXIsciwwLC0xLDIsZSksYT1vdCh0LDEsMS1yLDIrciwwLC0xLDIsZSk7cmV0dXJuKGl8fGEpJiYobj1vdCh0LDEsLXIsMStyLDAsLTEsMixlKXx8W10saSYmKG49ZHQoaSwxKS5jb25jYXQobikpLGEmJihuPW4uY29uY2F0KGR0KGEsLTEpKSkpLG59KG4sZSkpLmxlbmd0aCYmdGhpcy5zcGxpdFRpbGUobiwwLDAsMCksciYmKG4ubGVuZ3RoJiZjb25zb2xlLmxvZygiZmVhdHVyZXM6ICVkLCBwb2ludHM6ICVkIix0aGlzLnRpbGVzWzBdLm51bUZlYXR1cmVzLHRoaXMudGlsZXNbMF0ubnVtUG9pbnRzKSxjb25zb2xlLnRpbWVFbmQoImdlbmVyYXRlIHRpbGVzIiksY29uc29sZS5sb2coInRpbGVzIGdlbmVyYXRlZDoiLHRoaXMudG90YWwsSlNPTi5zdHJpbmdpZnkodGhpcy5zdGF0cykpKX1mdW5jdGlvbiB3dCh0LGUscil7cmV0dXJuIDMyKigoMTw8dCkqcitlKSt0fWZ1bmN0aW9uIFR0KHQsZSl7dmFyIHI9dC50aWxlSUQuY2Fub25pY2FsO2lmKCF0aGlzLl9nZW9KU09OSW5kZXgpcmV0dXJuIGUobnVsbCxudWxsKTt2YXIgbj10aGlzLl9nZW9KU09OSW5kZXguZ2V0VGlsZShyLnosci54LHIueSk7aWYoIW4pcmV0dXJuIGUobnVsbCxudWxsKTt2YXIgaT1uZXcgZyhuLmZlYXR1cmVzKSxhPV8oaSk7MD09PWEuYnl0ZU9mZnNldCYmYS5ieXRlTGVuZ3RoPT09YS5idWZmZXIuYnl0ZUxlbmd0aHx8KGE9bmV3IFVpbnQ4QXJyYXkoYSkpLGUobnVsbCx7dmVjdG9yVGlsZTppLHJhd0RhdGE6YS5idWZmZXJ9KX1VLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub3B0aW9ucyxyPWUubG9nLG49ZS5taW5ab29tLGk9ZS5tYXhab29tLGE9ZS5ub2RlU2l6ZTtyJiZjb25zb2xlLnRpbWUoInRvdGFsIHRpbWUiKTt2YXIgbz0icHJlcGFyZSAiK3QubGVuZ3RoKyIgcG9pbnRzIjtyJiZjb25zb2xlLnRpbWUobyksdGhpcy5wb2ludHM9dDtmb3IodmFyIHM9W10sbD0wO2w8dC5sZW5ndGg7bCsrKXRbbF0uZ2VvbWV0cnkmJnMucHVzaChIKHRbbF0sbCkpO3RoaXMudHJlZXNbaSsxXT1uZXcgTihzLFosSixhLEZsb2F0MzJBcnJheSksciYmY29uc29sZS50aW1lRW5kKG8pO2Zvcih2YXIgYz1pO2M+PW47Yy0tKXt2YXIgdT0rRGF0ZS5ub3coKTtzPXRoaXMuX2NsdXN0ZXIocyxjKSx0aGlzLnRyZWVzW2NdPW5ldyBOKHMsWixKLGEsRmxvYXQzMkFycmF5KSxyJiZjb25zb2xlLmxvZygieiVkOiAlZCBjbHVzdGVycyBpbiAlZG1zIixjLHMubGVuZ3RoLCtEYXRlLm5vdygpLXUpfXJldHVybiByJiZjb25zb2xlLnRpbWVFbmQoInRvdGFsIHRpbWUiKSx0aGlzfSxVLnByb3RvdHlwZS5nZXRDbHVzdGVycz1mdW5jdGlvbih0LGUpe3ZhciByPSgodFswXSsxODApJTM2MCszNjApJTM2MC0xODAsbj1NYXRoLm1heCgtOTAsTWF0aC5taW4oOTAsdFsxXSkpLGk9MTgwPT09dFsyXT8xODA6KCh0WzJdKzE4MCklMzYwKzM2MCklMzYwLTE4MCxhPU1hdGgubWF4KC05MCxNYXRoLm1pbig5MCx0WzNdKSk7aWYodFsyXS10WzBdPj0zNjApcj0tMTgwLGk9MTgwO2Vsc2UgaWYocj5pKXt2YXIgbz10aGlzLmdldENsdXN0ZXJzKFtyLG4sMTgwLGFdLGUpLHM9dGhpcy5nZXRDbHVzdGVycyhbLTE4MCxuLGksYV0sZSk7cmV0dXJuIG8uY29uY2F0KHMpfWZvcih2YXIgbD10aGlzLnRyZWVzW3RoaXMuX2xpbWl0Wm9vbShlKV0sYz1bXSx1PTAsZj1sLnJhbmdlKFkociksVyhhKSxZKGkpLFcobikpO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XSxwPWwucG9pbnRzW2hdO2MucHVzaChwLm51bVBvaW50cz9xKHApOnRoaXMucG9pbnRzW3AuaW5kZXhdKX1yZXR1cm4gY30sVS5wcm90b3R5cGUuZ2V0Q2hpbGRyZW49ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fZ2V0T3JpZ2luSWQodCkscj10aGlzLl9nZXRPcmlnaW5ab29tKHQpLG49Ik5vIGNsdXN0ZXIgd2l0aCB0aGUgc3BlY2lmaWVkIGlkLiIsaT10aGlzLnRyZWVzW3JdO2lmKCFpKXRocm93IG5ldyBFcnJvcihuKTt2YXIgYT1pLnBvaW50c1tlXTtpZighYSl0aHJvdyBuZXcgRXJyb3Iobik7Zm9yKHZhciBvPXRoaXMub3B0aW9ucy5yYWRpdXMvKHRoaXMub3B0aW9ucy5leHRlbnQqTWF0aC5wb3coMixyLTEpKSxzPVtdLGw9MCxjPWkud2l0aGluKGEueCxhLnksbyk7bDxjLmxlbmd0aDtsKz0xKXt2YXIgdT1jW2xdLGY9aS5wb2ludHNbdV07Zi5wYXJlbnRJZD09PXQmJnMucHVzaChmLm51bVBvaW50cz9xKGYpOnRoaXMucG9pbnRzW2YuaW5kZXhdKX1pZigwPT09cy5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKG4pO3JldHVybiBzfSxVLnByb3RvdHlwZS5nZXRMZWF2ZXM9ZnVuY3Rpb24odCxlLHIpe2U9ZXx8MTAscj1yfHwwO3ZhciBuPVtdO3JldHVybiB0aGlzLl9hcHBlbmRMZWF2ZXMobix0LGUsciwwKSxufSxVLnByb3RvdHlwZS5nZXRUaWxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnRyZWVzW3RoaXMuX2xpbWl0Wm9vbSh0KV0saT1NYXRoLnBvdygyLHQpLGE9dGhpcy5vcHRpb25zLG89YS5leHRlbnQscz1hLnJhZGl1cy9vLGw9KHItcykvaSxjPShyKzErcykvaSx1PXtmZWF0dXJlczpbXX07cmV0dXJuIHRoaXMuX2FkZFRpbGVGZWF0dXJlcyhuLnJhbmdlKChlLXMpL2ksbCwoZSsxK3MpL2ksYyksbi5wb2ludHMsZSxyLGksdSksMD09PWUmJnRoaXMuX2FkZFRpbGVGZWF0dXJlcyhuLnJhbmdlKDEtcy9pLGwsMSxjKSxuLnBvaW50cyxpLHIsaSx1KSxlPT09aS0xJiZ0aGlzLl9hZGRUaWxlRmVhdHVyZXMobi5yYW5nZSgwLGwscy9pLGMpLG4ucG9pbnRzLC0xLHIsaSx1KSx1LmZlYXR1cmVzLmxlbmd0aD91Om51bGx9LFUucHJvdG90eXBlLmdldENsdXN0ZXJFeHBhbnNpb25ab29tPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLl9nZXRPcmlnaW5ab29tKHQpLTE7ZTw9dGhpcy5vcHRpb25zLm1heFpvb207KXt2YXIgcj10aGlzLmdldENoaWxkcmVuKHQpO2lmKGUrKywxIT09ci5sZW5ndGgpYnJlYWs7dD1yWzBdLnByb3BlcnRpZXMuY2x1c3Rlcl9pZH1yZXR1cm4gZX0sVS5wcm90b3R5cGUuX2FwcGVuZExlYXZlcz1mdW5jdGlvbih0LGUscixuLGkpe2Zvcih2YXIgYT0wLG89dGhpcy5nZXRDaGlsZHJlbihlKTthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV0sbD1zLnByb3BlcnRpZXM7aWYobCYmbC5jbHVzdGVyP2krbC5wb2ludF9jb3VudDw9bj9pKz1sLnBvaW50X2NvdW50Omk9dGhpcy5fYXBwZW5kTGVhdmVzKHQsbC5jbHVzdGVyX2lkLHIsbixpKTppPG4/aSsrOnQucHVzaChzKSx0Lmxlbmd0aD09PXIpYnJlYWt9cmV0dXJuIGl9LFUucHJvdG90eXBlLl9hZGRUaWxlRmVhdHVyZXM9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2Zvcih2YXIgbz0wLHM9dDtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPWVbc1tvXV0sYz1sLm51bVBvaW50cyx1PXt0eXBlOjEsZ2VvbWV0cnk6W1tNYXRoLnJvdW5kKHRoaXMub3B0aW9ucy5leHRlbnQqKGwueCppLXIpKSxNYXRoLnJvdW5kKHRoaXMub3B0aW9ucy5leHRlbnQqKGwueSppLW4pKV1dLHRhZ3M6Yz9HKGwpOnRoaXMucG9pbnRzW2wuaW5kZXhdLnByb3BlcnRpZXN9LGY9dm9pZCAwO2M/Zj1sLmlkOnRoaXMub3B0aW9ucy5nZW5lcmF0ZUlkP2Y9bC5pbmRleDp0aGlzLnBvaW50c1tsLmluZGV4XS5pZCYmKGY9dGhpcy5wb2ludHNbbC5pbmRleF0uaWQpLHZvaWQgMCE9PWYmJih1LmlkPWYpLGEuZmVhdHVyZXMucHVzaCh1KX19LFUucHJvdG90eXBlLl9saW1pdFpvb209ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KHRoaXMub3B0aW9ucy5taW5ab29tLE1hdGgubWluKHQsdGhpcy5vcHRpb25zLm1heFpvb20rMSkpfSxVLnByb3RvdHlwZS5fY2x1c3Rlcj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPXRoaXMub3B0aW9ucyxpPW4ucmFkaXVzLGE9bi5leHRlbnQsbz1uLnJlZHVjZSxzPWkvKGEqTWF0aC5wb3coMixlKSksbD0wO2w8dC5sZW5ndGg7bCsrKXt2YXIgYz10W2xdO2lmKCEoYy56b29tPD1lKSl7Yy56b29tPWU7Zm9yKHZhciB1PXRoaXMudHJlZXNbZSsxXSxmPXUud2l0aGluKGMueCxjLnkscyksaD1jLm51bVBvaW50c3x8MSxwPWMueCpoLGQ9Yy55KmgsbT1vJiZoPjE/dGhpcy5fbWFwKGMsITApOm51bGwsZz0obDw8NSkrKGUrMSkrdGhpcy5wb2ludHMubGVuZ3RoLHY9MCx5PWY7djx5Lmxlbmd0aDt2Kz0xKXt2YXIgeD15W3ZdLGI9dS5wb2ludHNbeF07aWYoIShiLnpvb208PWUpKXtiLnpvb209ZTt2YXIgXz1iLm51bVBvaW50c3x8MTtwKz1iLngqXyxkKz1iLnkqXyxoKz1fLGIucGFyZW50SWQ9ZyxvJiYobXx8KG09dGhpcy5fbWFwKGMsITApKSxvKG0sdGhpcy5fbWFwKGIpKSl9fTE9PT1oP3IucHVzaChjKTooYy5wYXJlbnRJZD1nLHIucHVzaChWKHAvaCxkL2gsZyxoLG0pKSl9fXJldHVybiByfSxVLnByb3RvdHlwZS5fZ2V0T3JpZ2luSWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQtdGhpcy5wb2ludHMubGVuZ3RoPj41fSxVLnByb3RvdHlwZS5fZ2V0T3JpZ2luWm9vbT1mdW5jdGlvbih0KXtyZXR1cm4odC10aGlzLnBvaW50cy5sZW5ndGgpJTMyfSxVLnByb3RvdHlwZS5fbWFwPWZ1bmN0aW9uKHQsZSl7aWYodC5udW1Qb2ludHMpcmV0dXJuIGU/WCh7fSx0LnByb3BlcnRpZXMpOnQucHJvcGVydGllczt2YXIgcj10aGlzLnBvaW50c1t0LmluZGV4XS5wcm9wZXJ0aWVzLG49dGhpcy5vcHRpb25zLm1hcChyKTtyZXR1cm4gZSYmbj09PXI/WCh7fSxuKTpufSxfdC5wcm90b3R5cGUub3B0aW9ucz17bWF4Wm9vbToxNCxpbmRleE1heFpvb206NSxpbmRleE1heFBvaW50czoxZTUsdG9sZXJhbmNlOjMsZXh0ZW50OjQwOTYsYnVmZmVyOjY0LGxpbmVNZXRyaWNzOiExLHByb21vdGVJZDpudWxsLGdlbmVyYXRlSWQ6ITEsZGVidWc6MH0sX3QucHJvdG90eXBlLnNwbGl0VGlsZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9W3QsZSxyLG5dLGw9dGhpcy5vcHRpb25zLGM9bC5kZWJ1ZztzLmxlbmd0aDspe249cy5wb3AoKSxyPXMucG9wKCksZT1zLnBvcCgpLHQ9cy5wb3AoKTt2YXIgdT0xPDxlLGY9d3QoZSxyLG4pLGg9dGhpcy50aWxlc1tmXTtpZighaCYmKGM+MSYmY29uc29sZS50aW1lKCJjcmVhdGlvbiIpLGg9dGhpcy50aWxlc1tmXT15dCh0LGUscixuLGwpLHRoaXMudGlsZUNvb3Jkcy5wdXNoKHt6OmUseDpyLHk6bn0pLGMpKXtjPjEmJihjb25zb2xlLmxvZygidGlsZSB6JWQtJWQtJWQgKGZlYXR1cmVzOiAlZCwgcG9pbnRzOiAlZCwgc2ltcGxpZmllZDogJWQpIixlLHIsbixoLm51bUZlYXR1cmVzLGgubnVtUG9pbnRzLGgubnVtU2ltcGxpZmllZCksY29uc29sZS50aW1lRW5kKCJjcmVhdGlvbiIpKTt2YXIgcD0ieiIrZTt0aGlzLnN0YXRzW3BdPSh0aGlzLnN0YXRzW3BdfHwwKSsxLHRoaXMudG90YWwrK31pZihoLnNvdXJjZT10LGkpe2lmKGU9PT1sLm1heFpvb218fGU9PT1pKWNvbnRpbnVlO3ZhciBkPTE8PGktZTtpZihyIT09TWF0aC5mbG9vcihhL2QpfHxuIT09TWF0aC5mbG9vcihvL2QpKWNvbnRpbnVlfWVsc2UgaWYoZT09PWwuaW5kZXhNYXhab29tfHxoLm51bVBvaW50czw9bC5pbmRleE1heFBvaW50cyljb250aW51ZTtpZihoLnNvdXJjZT1udWxsLDAhPT10Lmxlbmd0aCl7Yz4xJiZjb25zb2xlLnRpbWUoImNsaXBwaW5nIik7dmFyIG0sZyx2LHkseCxiLF89LjUqbC5idWZmZXIvbC5leHRlbnQsdz0uNS1fLFQ9LjUrXyxrPTErXzttPWc9dj15PW51bGwseD1vdCh0LHUsci1fLHIrVCwwLGgubWluWCxoLm1heFgsbCksYj1vdCh0LHUscit3LHIraywwLGgubWluWCxoLm1heFgsbCksdD1udWxsLHgmJihtPW90KHgsdSxuLV8sbitULDEsaC5taW5ZLGgubWF4WSxsKSxnPW90KHgsdSxuK3csbitrLDEsaC5taW5ZLGgubWF4WSxsKSx4PW51bGwpLGImJih2PW90KGIsdSxuLV8sbitULDEsaC5taW5ZLGgubWF4WSxsKSx5PW90KGIsdSxuK3csbitrLDEsaC5taW5ZLGgubWF4WSxsKSxiPW51bGwpLGM+MSYmY29uc29sZS50aW1lRW5kKCJjbGlwcGluZyIpLHMucHVzaChtfHxbXSxlKzEsMipyLDIqbikscy5wdXNoKGd8fFtdLGUrMSwyKnIsMipuKzEpLHMucHVzaCh2fHxbXSxlKzEsMipyKzEsMipuKSxzLnB1c2goeXx8W10sZSsxLDIqcisxLDIqbisxKX19fSxfdC5wcm90b3R5cGUuZ2V0VGlsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5vcHRpb25zLGk9bi5leHRlbnQsYT1uLmRlYnVnO2lmKHQ8MHx8dD4yNClyZXR1cm4gbnVsbDt2YXIgbz0xPDx0LHM9d3QodCxlPShlJW8rbyklbyxyKTtpZih0aGlzLnRpbGVzW3NdKXJldHVybiBndCh0aGlzLnRpbGVzW3NdLGkpO2E+MSYmY29uc29sZS5sb2coImRyaWxsaW5nIGRvd24gdG8geiVkLSVkLSVkIix0LGUscik7Zm9yKHZhciBsLGM9dCx1PWUsZj1yOyFsJiZjPjA7KWMtLSx1PU1hdGguZmxvb3IodS8yKSxmPU1hdGguZmxvb3IoZi8yKSxsPXRoaXMudGlsZXNbd3QoYyx1LGYpXTtyZXR1cm4gbCYmbC5zb3VyY2U/KGE+MSYmY29uc29sZS5sb2coImZvdW5kIHBhcmVudCB0aWxlIHolZC0lZC0lZCIsYyx1LGYpLGE+MSYmY29uc29sZS50aW1lKCJkcmlsbGluZyBkb3duIiksdGhpcy5zcGxpdFRpbGUobC5zb3VyY2UsYyx1LGYsdCxlLHIpLGE+MSYmY29uc29sZS50aW1lRW5kKCJkcmlsbGluZyBkb3duIiksdGhpcy50aWxlc1tzXT9ndCh0aGlzLnRpbGVzW3NdLGkpOm51bGwpOm51bGx9O3ZhciBrdD1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHQscixuLGkpe2UuY2FsbCh0aGlzLHQscixuLFR0KSxpJiYodGhpcy5sb2FkR2VvSlNPTj1pKX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUubG9hZERhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLl9wZW5kaW5nQ2FsbGJhY2smJnRoaXMuX3BlbmRpbmdDYWxsYmFjayhudWxsLHthYmFuZG9uZWQ6ITB9KSx0aGlzLl9wZW5kaW5nQ2FsbGJhY2s9ZSx0aGlzLl9wZW5kaW5nTG9hZERhdGFQYXJhbXM9dCx0aGlzLl9zdGF0ZSYmIklkbGUiIT09dGhpcy5fc3RhdGU/dGhpcy5fc3RhdGU9Ik5lZWRzTG9hZERhdGEiOih0aGlzLl9zdGF0ZT0iQ29hbGVzY2luZyIsdGhpcy5fbG9hZERhdGEoKSl9LHIucHJvdG90eXBlLl9sb2FkRGF0YT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYodGhpcy5fcGVuZGluZ0NhbGxiYWNrJiZ0aGlzLl9wZW5kaW5nTG9hZERhdGFQYXJhbXMpe3ZhciByPXRoaXMuX3BlbmRpbmdDYWxsYmFjayxuPXRoaXMuX3BlbmRpbmdMb2FkRGF0YVBhcmFtcztkZWxldGUgdGhpcy5fcGVuZGluZ0NhbGxiYWNrLGRlbGV0ZSB0aGlzLl9wZW5kaW5nTG9hZERhdGFQYXJhbXM7dmFyIGk9ISEobiYmbi5yZXF1ZXN0JiZuLnJlcXVlc3QuY29sbGVjdFJlc291cmNlVGltaW5nKSYmbmV3IHQuUmVxdWVzdFBlcmZvcm1hbmNlKG4ucmVxdWVzdCk7dGhpcy5sb2FkR2VvSlNPTihuLChmdW5jdGlvbihhLG8pe2lmKGF8fCFvKXJldHVybiByKGEpO2lmKCJvYmplY3QiIT10eXBlb2YgbylyZXR1cm4gcihuZXcgRXJyb3IoIklucHV0IGRhdGEgZ2l2ZW4gdG8gJyIrbi5zb3VyY2UrIicgaXMgbm90IGEgdmFsaWQgR2VvSlNPTiBvYmplY3QuIikpO2YobywhMCk7dHJ5e2UuX2dlb0pTT05JbmRleD1uLmNsdXN0ZXI/bmV3IFUoZnVuY3Rpb24oZSl7dmFyIHI9ZS5zdXBlcmNsdXN0ZXJPcHRpb25zLG49ZS5jbHVzdGVyUHJvcGVydGllcztpZighbnx8IXIpcmV0dXJuIHI7Zm9yKHZhciBpPXt9LGE9e30sbz17YWNjdW11bGF0ZWQ6bnVsbCx6b29tOjB9LHM9e3Byb3BlcnRpZXM6bnVsbH0sbD1PYmplY3Qua2V5cyhuKSxjPTAsdT1sO2M8dS5sZW5ndGg7Yys9MSl7dmFyIGY9dVtjXSxoPW5bZl0scD1oWzBdLGQ9aFsxXSxtPXQuY3JlYXRlRXhwcmVzc2lvbihkKSxnPXQuY3JlYXRlRXhwcmVzc2lvbigic3RyaW5nIj09dHlwZW9mIHA/W3AsWyJhY2N1bXVsYXRlZCJdLFsiZ2V0IixmXV06cCk7aVtmXT1tLnZhbHVlLGFbZl09Zy52YWx1ZX1yZXR1cm4gci5tYXA9ZnVuY3Rpb24odCl7cy5wcm9wZXJ0aWVzPXQ7Zm9yKHZhciBlPXt9LHI9MCxuPWw7cjxuLmxlbmd0aDtyKz0xKXt2YXIgYT1uW3JdO2VbYV09aVthXS5ldmFsdWF0ZShvLHMpfXJldHVybiBlfSxyLnJlZHVjZT1mdW5jdGlvbih0LGUpe3MucHJvcGVydGllcz1lO2Zvcih2YXIgcj0wLG49bDtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBpPW5bcl07by5hY2N1bXVsYXRlZD10W2ldLHRbaV09YVtpXS5ldmFsdWF0ZShvLHMpfX0scn0obikpLmxvYWQoby5mZWF0dXJlcyk6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IF90KHQsZSl9KG8sbi5nZW9qc29uVnRPcHRpb25zKX1jYXRjaChhKXtyZXR1cm4gcihhKX1lLmxvYWRlZD17fTt2YXIgcz17fTtpZihpKXt2YXIgbD1pLmZpbmlzaCgpO2wmJihzLnJlc291cmNlVGltaW5nPXt9LHMucmVzb3VyY2VUaW1pbmdbbi5zb3VyY2VdPUpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkobCkpKX1yKG51bGwscyl9KSl9fSxyLnByb3RvdHlwZS5jb2FsZXNjZT1mdW5jdGlvbigpeyJDb2FsZXNjaW5nIj09PXRoaXMuX3N0YXRlP3RoaXMuX3N0YXRlPSJJZGxlIjoiTmVlZHNMb2FkRGF0YSI9PT10aGlzLl9zdGF0ZSYmKHRoaXMuX3N0YXRlPSJDb2FsZXNjaW5nIix0aGlzLl9sb2FkRGF0YSgpKX0sci5wcm90b3R5cGUucmVsb2FkVGlsZT1mdW5jdGlvbih0LHIpe3ZhciBuPXRoaXMubG9hZGVkLGk9dC51aWQ7cmV0dXJuIG4mJm5baV0/ZS5wcm90b3R5cGUucmVsb2FkVGlsZS5jYWxsKHRoaXMsdCxyKTp0aGlzLmxvYWRUaWxlKHQscil9LHIucHJvdG90eXBlLmxvYWRHZW9KU09OPWZ1bmN0aW9uKGUscil7aWYoZS5yZXF1ZXN0KXQuZ2V0SlNPTihlLnJlcXVlc3Qscik7ZWxzZXtpZigic3RyaW5nIiE9dHlwZW9mIGUuZGF0YSlyZXR1cm4gcihuZXcgRXJyb3IoIklucHV0IGRhdGEgZ2l2ZW4gdG8gJyIrZS5zb3VyY2UrIicgaXMgbm90IGEgdmFsaWQgR2VvSlNPTiBvYmplY3QuIikpO3RyeXtyZXR1cm4gcihudWxsLEpTT04ucGFyc2UoZS5kYXRhKSl9Y2F0Y2godCl7cmV0dXJuIHIobmV3IEVycm9yKCJJbnB1dCBkYXRhIGdpdmVuIHRvICciK2Uuc291cmNlKyInIGlzIG5vdCBhIHZhbGlkIEdlb0pTT04gb2JqZWN0LiIpKX19fSxyLnByb3RvdHlwZS5yZW1vdmVTb3VyY2U9ZnVuY3Rpb24odCxlKXt0aGlzLl9wZW5kaW5nQ2FsbGJhY2smJnRoaXMuX3BlbmRpbmdDYWxsYmFjayhudWxsLHthYmFuZG9uZWQ6ITB9KSxlKCl9LHIucHJvdG90eXBlLmdldENsdXN0ZXJFeHBhbnNpb25ab29tPWZ1bmN0aW9uKHQsZSl7dHJ5e2UobnVsbCx0aGlzLl9nZW9KU09OSW5kZXguZ2V0Q2x1c3RlckV4cGFuc2lvblpvb20odC5jbHVzdGVySWQpKX1jYXRjaCh0KXtlKHQpfX0sci5wcm90b3R5cGUuZ2V0Q2x1c3RlckNoaWxkcmVuPWZ1bmN0aW9uKHQsZSl7dHJ5e2UobnVsbCx0aGlzLl9nZW9KU09OSW5kZXguZ2V0Q2hpbGRyZW4odC5jbHVzdGVySWQpKX1jYXRjaCh0KXtlKHQpfX0sci5wcm90b3R5cGUuZ2V0Q2x1c3RlckxlYXZlcz1mdW5jdGlvbih0LGUpe3RyeXtlKG51bGwsdGhpcy5fZ2VvSlNPTkluZGV4LmdldExlYXZlcyh0LmNsdXN0ZXJJZCx0LmxpbWl0LHQub2Zmc2V0KSl9Y2F0Y2godCl7ZSh0KX19LHJ9KGwpO3ZhciBBdD1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3RoaXMuc2VsZj1lLHRoaXMuYWN0b3I9bmV3IHQuQWN0b3IoZSx0aGlzKSx0aGlzLmxheWVySW5kZXhlcz17fSx0aGlzLmF2YWlsYWJsZUltYWdlcz17fSx0aGlzLndvcmtlclNvdXJjZVR5cGVzPXt2ZWN0b3I6bCxnZW9qc29uOmt0fSx0aGlzLndvcmtlclNvdXJjZXM9e30sdGhpcy5kZW1Xb3JrZXJTb3VyY2VzPXt9LHRoaXMuc2VsZi5yZWdpc3RlcldvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUpe2lmKHIud29ya2VyU291cmNlVHlwZXNbdF0pdGhyb3cgbmV3IEVycm9yKCdXb3JrZXIgc291cmNlIHdpdGggbmFtZSAiJyt0KyciIGFscmVhZHkgcmVnaXN0ZXJlZC4nKTtyLndvcmtlclNvdXJjZVR5cGVzW3RdPWV9LHRoaXMuc2VsZi5yZWdpc3RlclJUTFRleHRQbHVnaW49ZnVuY3Rpb24oZSl7aWYodC5wbHVnaW4uaXNQYXJzZWQoKSl0aHJvdyBuZXcgRXJyb3IoIlJUTCB0ZXh0IHBsdWdpbiBhbHJlYWR5IHJlZ2lzdGVyZWQuIik7dC5wbHVnaW4uYXBwbHlBcmFiaWNTaGFwaW5nPWUuYXBwbHlBcmFiaWNTaGFwaW5nLHQucGx1Z2luLnByb2Nlc3NCaWRpcmVjdGlvbmFsVGV4dD1lLnByb2Nlc3NCaWRpcmVjdGlvbmFsVGV4dCx0LnBsdWdpbi5wcm9jZXNzU3R5bGVkQmlkaXJlY3Rpb25hbFRleHQ9ZS5wcm9jZXNzU3R5bGVkQmlkaXJlY3Rpb25hbFRleHR9fTtyZXR1cm4gQXQucHJvdG90eXBlLnNldFJlZmVycmVyPWZ1bmN0aW9uKHQsZSl7dGhpcy5yZWZlcnJlcj1lfSxBdC5wcm90b3R5cGUuc2V0SW1hZ2VzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4gaW4gdGhpcy5hdmFpbGFibGVJbWFnZXNbdF09ZSx0aGlzLndvcmtlclNvdXJjZXNbdF0pe3ZhciBpPXRoaXMud29ya2VyU291cmNlc1t0XVtuXTtmb3IodmFyIGEgaW4gaSlpW2FdLmF2YWlsYWJsZUltYWdlcz1lfXIoKX0sQXQucHJvdG90eXBlLnNldExheWVycz1mdW5jdGlvbih0LGUscil7dGhpcy5nZXRMYXllckluZGV4KHQpLnJlcGxhY2UoZSkscigpfSxBdC5wcm90b3R5cGUudXBkYXRlTGF5ZXJzPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldExheWVySW5kZXgodCkudXBkYXRlKGUubGF5ZXJzLGUucmVtb3ZlZElkcykscigpfSxBdC5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2V0V29ya2VyU291cmNlKHQsZS50eXBlLGUuc291cmNlKS5sb2FkVGlsZShlLHIpfSxBdC5wcm90b3R5cGUubG9hZERFTVRpbGU9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2V0REVNV29ya2VyU291cmNlKHQsZS5zb3VyY2UpLmxvYWRUaWxlKGUscil9LEF0LnByb3RvdHlwZS5yZWxvYWRUaWxlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldFdvcmtlclNvdXJjZSh0LGUudHlwZSxlLnNvdXJjZSkucmVsb2FkVGlsZShlLHIpfSxBdC5wcm90b3R5cGUuYWJvcnRUaWxlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldFdvcmtlclNvdXJjZSh0LGUudHlwZSxlLnNvdXJjZSkuYWJvcnRUaWxlKGUscil9LEF0LnByb3RvdHlwZS5yZW1vdmVUaWxlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmdldFdvcmtlclNvdXJjZSh0LGUudHlwZSxlLnNvdXJjZSkucmVtb3ZlVGlsZShlLHIpfSxBdC5wcm90b3R5cGUucmVtb3ZlREVNVGlsZT1mdW5jdGlvbih0LGUpe3RoaXMuZ2V0REVNV29ya2VyU291cmNlKHQsZS5zb3VyY2UpLnJlbW92ZVRpbGUoZSl9LEF0LnByb3RvdHlwZS5yZW1vdmVTb3VyY2U9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMud29ya2VyU291cmNlc1t0XSYmdGhpcy53b3JrZXJTb3VyY2VzW3RdW2UudHlwZV0mJnRoaXMud29ya2VyU291cmNlc1t0XVtlLnR5cGVdW2Uuc291cmNlXSl7dmFyIG49dGhpcy53b3JrZXJTb3VyY2VzW3RdW2UudHlwZV1bZS5zb3VyY2VdO2RlbGV0ZSB0aGlzLndvcmtlclNvdXJjZXNbdF1bZS50eXBlXVtlLnNvdXJjZV0sdm9pZCAwIT09bi5yZW1vdmVTb3VyY2U/bi5yZW1vdmVTb3VyY2UoZSxyKTpyKCl9fSxBdC5wcm90b3R5cGUubG9hZFdvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUscil7dHJ5e3RoaXMuc2VsZi5pbXBvcnRTY3JpcHRzKGUudXJsKSxyKCl9Y2F0Y2godCl7cih0LnRvU3RyaW5nKCkpfX0sQXQucHJvdG90eXBlLnN5bmNSVExQbHVnaW5TdGF0ZT1mdW5jdGlvbihlLHIsbil7dHJ5e3QucGx1Z2luLnNldFN0YXRlKHIpO3ZhciBpPXQucGx1Z2luLmdldFBsdWdpblVSTCgpO2lmKHQucGx1Z2luLmlzTG9hZGVkKCkmJiF0LnBsdWdpbi5pc1BhcnNlZCgpJiZudWxsIT1pKXt0aGlzLnNlbGYuaW1wb3J0U2NyaXB0cyhpKTt2YXIgYT10LnBsdWdpbi5pc1BhcnNlZCgpO24oYT92b2lkIDA6bmV3IEVycm9yKCJSVEwgVGV4dCBQbHVnaW4gZmFpbGVkIHRvIGltcG9ydCBzY3JpcHRzIGZyb20gIitpKSxhKX19Y2F0Y2godCl7bih0LnRvU3RyaW5nKCkpfX0sQXQucHJvdG90eXBlLmdldEF2YWlsYWJsZUltYWdlcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmF2YWlsYWJsZUltYWdlc1t0XTtyZXR1cm4gZXx8KGU9W10pLGV9LEF0LnByb3RvdHlwZS5nZXRMYXllckluZGV4PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGF5ZXJJbmRleGVzW3RdO3JldHVybiBlfHwoZT10aGlzLmxheWVySW5kZXhlc1t0XT1uZXcgbiksZX0sQXQucHJvdG90eXBlLmdldFdvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcztpZih0aGlzLndvcmtlclNvdXJjZXNbdF18fCh0aGlzLndvcmtlclNvdXJjZXNbdF09e30pLHRoaXMud29ya2VyU291cmNlc1t0XVtlXXx8KHRoaXMud29ya2VyU291cmNlc1t0XVtlXT17fSksIXRoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXSl7dmFyIGk9e3NlbmQ6ZnVuY3Rpb24oZSxyLGkpe24uYWN0b3Iuc2VuZChlLHIsaSx0KX19O3RoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXT1uZXcgdGhpcy53b3JrZXJTb3VyY2VUeXBlc1tlXShpLHRoaXMuZ2V0TGF5ZXJJbmRleCh0KSx0aGlzLmdldEF2YWlsYWJsZUltYWdlcyh0KSl9cmV0dXJuIHRoaXMud29ya2VyU291cmNlc1t0XVtlXVtyXX0sQXQucHJvdG90eXBlLmdldERFTVdvcmtlclNvdXJjZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmRlbVdvcmtlclNvdXJjZXNbdF18fCh0aGlzLmRlbVdvcmtlclNvdXJjZXNbdF09e30pLHRoaXMuZGVtV29ya2VyU291cmNlc1t0XVtlXXx8KHRoaXMuZGVtV29ya2VyU291cmNlc1t0XVtlXT1uZXcgdSksdGhpcy5kZW1Xb3JrZXJTb3VyY2VzW3RdW2VdfSxBdC5wcm90b3R5cGUuZW5mb3JjZUNhY2hlU2l6ZUxpbWl0PWZ1bmN0aW9uKGUscil7dC5lbmZvcmNlQ2FjaGVTaXplTGltaXQocil9LCJ1bmRlZmluZWQiIT10eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUmJnZvaWQgMCE9PXQud2luZG93JiZ0LndpbmRvdyBpbnN0YW5jZW9mIFdvcmtlckdsb2JhbFNjb3BlJiYodC53aW5kb3cud29ya2VyPW5ldyBBdCh0LndpbmRvdykpLEF0fSkpLG4oMCwoZnVuY3Rpb24odCl7dmFyIGU9dC5jcmVhdGVDb21tb25qc01vZHVsZSgoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtyZXR1cm4hcih0KX1mdW5jdGlvbiByKHQpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2Ygd2luZG93fHwidW5kZWZpbmVkIj09dHlwZW9mIGRvY3VtZW50PyJub3QgYSBicm93c2VyIjpBcnJheS5wcm90b3R5cGUmJkFycmF5LnByb3RvdHlwZS5ldmVyeSYmQXJyYXkucHJvdG90eXBlLmZpbHRlciYmQXJyYXkucHJvdG90eXBlLmZvckVhY2gmJkFycmF5LnByb3RvdHlwZS5pbmRleE9mJiZBcnJheS5wcm90b3R5cGUubGFzdEluZGV4T2YmJkFycmF5LnByb3RvdHlwZS5tYXAmJkFycmF5LnByb3RvdHlwZS5zb21lJiZBcnJheS5wcm90b3R5cGUucmVkdWNlJiZBcnJheS5wcm90b3R5cGUucmVkdWNlUmlnaHQmJkFycmF5LmlzQXJyYXk/RnVuY3Rpb24ucHJvdG90eXBlJiZGdW5jdGlvbi5wcm90b3R5cGUuYmluZD9PYmplY3Qua2V5cyYmT2JqZWN0LmNyZWF0ZSYmT2JqZWN0LmdldFByb3RvdHlwZU9mJiZPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyYmT2JqZWN0LmlzU2VhbGVkJiZPYmplY3QuaXNGcm96ZW4mJk9iamVjdC5pc0V4dGVuc2libGUmJk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3ImJk9iamVjdC5kZWZpbmVQcm9wZXJ0eSYmT2JqZWN0LmRlZmluZVByb3BlcnRpZXMmJk9iamVjdC5zZWFsJiZPYmplY3QuZnJlZXplJiZPYmplY3QucHJldmVudEV4dGVuc2lvbnM/IkpTT04iaW4gd2luZG93JiYicGFyc2UiaW4gSlNPTiYmInN0cmluZ2lmeSJpbiBKU09OP2Z1bmN0aW9uKCl7aWYoISgiV29ya2VyImluIHdpbmRvdyYmIkJsb2IiaW4gd2luZG93JiYiVVJMImluIHdpbmRvdykpcmV0dXJuITE7dmFyIHQsZSxyPW5ldyBCbG9iKFsiIl0se3R5cGU6InRleHQvamF2YXNjcmlwdCJ9KSxuPVVSTC5jcmVhdGVPYmplY3RVUkwocik7dHJ5e2U9bmV3IFdvcmtlcihuKSx0PSEwfWNhdGNoKGUpe3Q9ITF9ZSYmZS50ZXJtaW5hdGUoKTtyZXR1cm4gVVJMLnJldm9rZU9iamVjdFVSTChuKSx0fSgpPyJVaW50OENsYW1wZWRBcnJheSJpbiB3aW5kb3c/QXJyYXlCdWZmZXIuaXNWaWV3P2Z1bmN0aW9uKCl7dmFyIHQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7dC53aWR0aD10LmhlaWdodD0xO3ZhciBlPXQuZ2V0Q29udGV4dCgiMmQiKTtpZighZSlyZXR1cm4hMTt2YXIgcj1lLmdldEltYWdlRGF0YSgwLDAsMSwxKTtyZXR1cm4gciYmci53aWR0aD09PXQud2lkdGh9KCk/ZnVuY3Rpb24odCl7dm9pZCAwPT09blt0XSYmKG5bdF09ZnVuY3Rpb24odCl7dmFyIHI9ZnVuY3Rpb24odCl7dmFyIHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksbj1PYmplY3QuY3JlYXRlKGUud2ViR0xDb250ZXh0QXR0cmlidXRlcyk7cmV0dXJuIG4uZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdD10LHIucHJvYmFibHlTdXBwb3J0c0NvbnRleHQ/ci5wcm9iYWJseVN1cHBvcnRzQ29udGV4dCgid2ViZ2wiLG4pfHxyLnByb2JhYmx5U3VwcG9ydHNDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLG4pOnIuc3VwcG9ydHNDb250ZXh0P3Iuc3VwcG9ydHNDb250ZXh0KCJ3ZWJnbCIsbil8fHIuc3VwcG9ydHNDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLG4pOnIuZ2V0Q29udGV4dCgid2ViZ2wiLG4pfHxyLmdldENvbnRleHQoImV4cGVyaW1lbnRhbC13ZWJnbCIsbil9KHQpO2lmKCFyKXJldHVybiExO3ZhciBuPXIuY3JlYXRlU2hhZGVyKHIuVkVSVEVYX1NIQURFUik7aWYoIW58fHIuaXNDb250ZXh0TG9zdCgpKXJldHVybiExO3JldHVybiByLnNoYWRlclNvdXJjZShuLCJ2b2lkIG1haW4oKSB7fSIpLHIuY29tcGlsZVNoYWRlcihuKSwhMD09PXIuZ2V0U2hhZGVyUGFyYW1ldGVyKG4sci5DT01QSUxFX1NUQVRVUyl9KHQpKTtyZXR1cm4gblt0XX0odCYmdC5mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0KT92b2lkIDA6Imluc3VmZmljaWVudCBXZWJHTCBzdXBwb3J0IjoiaW5zdWZmaWNpZW50IENhbnZhcy9nZXRJbWFnZURhdGEgc3VwcG9ydCI6Imluc3VmZmljaWVudCBBcnJheUJ1ZmZlciBzdXBwb3J0IjoiaW5zdWZmaWNpZW50IFVpbnQ4Q2xhbXBlZEFycmF5IHN1cHBvcnQiOiJpbnN1ZmZpY2llbnQgd29ya2VyIHN1cHBvcnQiOiJpbnN1ZmZpY2llbnQgSlNPTiBzdXBwb3J0IjoiaW5zdWZmaWNpZW50IE9iamVjdCBzdXBwb3J0IjoiaW5zdWZmaWNpZW50IEZ1bmN0aW9uIHN1cHBvcnQiOiJpbnN1ZmZpY2VudCBBcnJheSBzdXBwb3J0In10LmV4cG9ydHM/dC5leHBvcnRzPWU6d2luZG93JiYod2luZG93Lm1hcGJveGdsPXdpbmRvdy5tYXBib3hnbHx8e30sd2luZG93Lm1hcGJveGdsLnN1cHBvcnRlZD1lLHdpbmRvdy5tYXBib3hnbC5ub3RTdXBwb3J0ZWRSZWFzb249cik7dmFyIG49e307ZS53ZWJHTENvbnRleHRBdHRyaWJ1dGVzPXthbnRpYWxpYXM6ITEsYWxwaGE6ITAsc3RlbmNpbDohMCxkZXB0aDohMH19KSkscj17Y3JlYXRlOmZ1bmN0aW9uKGUscixuKXt2YXIgaT10LndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KGUpO3JldHVybiB2b2lkIDAhPT1yJiYoaS5jbGFzc05hbWU9ciksbiYmbi5hcHBlbmRDaGlsZChpKSxpfSxjcmVhdGVOUzpmdW5jdGlvbihlLHIpe3JldHVybiB0LndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMoZSxyKX19LG49dC53aW5kb3cuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlO2Z1bmN0aW9uIGkodCl7aWYoIW4pcmV0dXJuIHRbMF07Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXWluIG4pcmV0dXJuIHRbZV07cmV0dXJuIHRbMF19dmFyIGEsbz1pKFsidXNlclNlbGVjdCIsIk1velVzZXJTZWxlY3QiLCJXZWJraXRVc2VyU2VsZWN0IiwibXNVc2VyU2VsZWN0Il0pO3IuZGlzYWJsZURyYWc9ZnVuY3Rpb24oKXtuJiZvJiYoYT1uW29dLG5bb109Im5vbmUiKX0sci5lbmFibGVEcmFnPWZ1bmN0aW9uKCl7biYmbyYmKG5bb109YSl9O3ZhciBzPWkoWyJ0cmFuc2Zvcm0iLCJXZWJraXRUcmFuc2Zvcm0iXSk7ci5zZXRUcmFuc2Zvcm09ZnVuY3Rpb24odCxlKXt0LnN0eWxlW3NdPWV9O3ZhciBsPSExO3RyeXt2YXIgYz1PYmplY3QuZGVmaW5lUHJvcGVydHkoe30sInBhc3NpdmUiLHtnZXQ6ZnVuY3Rpb24oKXtsPSEwfX0pO3Qud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInRlc3QiLGMsYyksdC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigidGVzdCIsYyxjKX1jYXRjaCh0KXtsPSExfXIuYWRkRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGUscixuKXt2b2lkIDA9PT1uJiYobj17fSksInBhc3NpdmUiaW4gbiYmbD90LmFkZEV2ZW50TGlzdGVuZXIoZSxyLG4pOnQuYWRkRXZlbnRMaXN0ZW5lcihlLHIsbi5jYXB0dXJlKX0sci5yZW1vdmVFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSxyLG4pe3ZvaWQgMD09PW4mJihuPXt9KSwicGFzc2l2ZSJpbiBuJiZsP3QucmVtb3ZlRXZlbnRMaXN0ZW5lcihlLHIsbik6dC5yZW1vdmVFdmVudExpc3RlbmVyKGUscixuLmNhcHR1cmUpfTt2YXIgdT1mdW5jdGlvbihlKXtlLnByZXZlbnREZWZhdWx0KCksZS5zdG9wUHJvcGFnYXRpb24oKSx0LndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdSwhMCl9O2Z1bmN0aW9uIGYodCl7dmFyIGU9dC51c2VySW1hZ2U7aWYoZSYmZS5yZW5kZXImJmUucmVuZGVyKCkpcmV0dXJuIHQuZGF0YS5yZXBsYWNlKG5ldyBVaW50OEFycmF5KGUuZGF0YS5idWZmZXIpKSwhMDtyZXR1cm4hMX1yLnN1cHByZXNzQ2xpY2s9ZnVuY3Rpb24oKXt0LndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdSwhMCksdC53aW5kb3cuc2V0VGltZW91dCgoZnVuY3Rpb24oKXt0LndpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJjbGljayIsdSwhMCl9KSwwKX0sci5tb3VzZVBvcz1mdW5jdGlvbihlLHIpe3ZhciBuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIG5ldyB0LlBvaW50KHIuY2xpZW50WC1uLmxlZnQtZS5jbGllbnRMZWZ0LHIuY2xpZW50WS1uLnRvcC1lLmNsaWVudFRvcCl9LHIudG91Y2hQb3M9ZnVuY3Rpb24oZSxyKXtmb3IodmFyIG49ZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxpPVtdLGE9MDthPHIubGVuZ3RoO2ErKylpLnB1c2gobmV3IHQuUG9pbnQoclthXS5jbGllbnRYLW4ubGVmdC1lLmNsaWVudExlZnQsclthXS5jbGllbnRZLW4udG9wLWUuY2xpZW50VG9wKSk7cmV0dXJuIGl9LHIubW91c2VCdXR0b249ZnVuY3Rpb24oZSl7cmV0dXJuIHZvaWQgMCE9PXQud2luZG93Lkluc3RhbGxUcmlnZ2VyJiYyPT09ZS5idXR0b24mJmUuY3RybEtleSYmdC53aW5kb3cubmF2aWdhdG9yLnBsYXRmb3JtLnRvVXBwZXJDYXNlKCkuaW5kZXhPZigiTUFDIik+PTA/MDplLmJ1dHRvbn0sci5yZW1vdmU9ZnVuY3Rpb24odCl7dC5wYXJlbnROb2RlJiZ0LnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodCl9O3ZhciBoPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIoKXtlLmNhbGwodGhpcyksdGhpcy5pbWFnZXM9e30sdGhpcy51cGRhdGVkSW1hZ2VzPXt9LHRoaXMuY2FsbGJhY2tEaXNwYXRjaGVkVGhpc0ZyYW1lPXt9LHRoaXMubG9hZGVkPSExLHRoaXMucmVxdWVzdG9ycz1bXSx0aGlzLnBhdHRlcm5zPXt9LHRoaXMuYXRsYXNJbWFnZT1uZXcgdC5SR0JBSW1hZ2Uoe3dpZHRoOjEsaGVpZ2h0OjF9KSx0aGlzLmRpcnR5PSEwfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5pc0xvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmxvYWRlZH0sci5wcm90b3R5cGUuc2V0TG9hZGVkPWZ1bmN0aW9uKHQpe2lmKHRoaXMubG9hZGVkIT09dCYmKHRoaXMubG9hZGVkPXQsdCkpe2Zvcih2YXIgZT0wLHI9dGhpcy5yZXF1ZXN0b3JzO2U8ci5sZW5ndGg7ZSs9MSl7dmFyIG49cltlXSxpPW4uaWRzLGE9bi5jYWxsYmFjazt0aGlzLl9ub3RpZnkoaSxhKX10aGlzLnJlcXVlc3RvcnM9W119fSxyLnByb3RvdHlwZS5nZXRJbWFnZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbWFnZXNbdF19LHIucHJvdG90eXBlLmFkZEltYWdlPWZ1bmN0aW9uKHQsZSl7dGhpcy5fdmFsaWRhdGUodCxlKSYmKHRoaXMuaW1hZ2VzW3RdPWUpfSxyLnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj0hMDtyZXR1cm4gdGhpcy5fdmFsaWRhdGVTdHJldGNoKHIuc3RyZXRjaFgsci5kYXRhJiZyLmRhdGEud2lkdGgpfHwodGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdJbWFnZSAiJytlKyciIGhhcyBpbnZhbGlkICJzdHJldGNoWCIgdmFsdWUnKSkpLG49ITEpLHRoaXMuX3ZhbGlkYXRlU3RyZXRjaChyLnN0cmV0Y2hZLHIuZGF0YSYmci5kYXRhLmhlaWdodCl8fCh0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoJ0ltYWdlICInK2UrJyIgaGFzIGludmFsaWQgInN0cmV0Y2hZIiB2YWx1ZScpKSksbj0hMSksdGhpcy5fdmFsaWRhdGVDb250ZW50KHIuY29udGVudCxyKXx8KHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcignSW1hZ2UgIicrZSsnIiBoYXMgaW52YWxpZCAiY29udGVudCIgdmFsdWUnKSkpLG49ITEpLG59LHIucHJvdG90eXBlLl92YWxpZGF0ZVN0cmV0Y2g9ZnVuY3Rpb24odCxlKXtpZighdClyZXR1cm4hMDtmb3IodmFyIHI9MCxuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtpZihhWzBdPHJ8fGFbMV08YVswXXx8ZTxhWzFdKXJldHVybiExO3I9YVsxXX1yZXR1cm4hMH0sci5wcm90b3R5cGUuX3ZhbGlkYXRlQ29udGVudD1mdW5jdGlvbih0LGUpe3JldHVybiF0fHw0PT09dC5sZW5ndGgmJighKHRbMF08MHx8ZS5kYXRhLndpZHRoPHRbMF0pJiYoISh0WzFdPDB8fGUuZGF0YS5oZWlnaHQ8dFsxXSkmJighKHRbMl08MHx8ZS5kYXRhLndpZHRoPHRbMl0pJiYoISh0WzNdPDB8fGUuZGF0YS5oZWlnaHQ8dFszXSkmJighKHRbMl08dFswXSkmJiEodFszXTx0WzFdKSkpKSkpfSxyLnByb3RvdHlwZS51cGRhdGVJbWFnZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuaW1hZ2VzW3RdO2UudmVyc2lvbj1yLnZlcnNpb24rMSx0aGlzLmltYWdlc1t0XT1lLHRoaXMudXBkYXRlZEltYWdlc1t0XT0hMH0sci5wcm90b3R5cGUucmVtb3ZlSW1hZ2U9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5pbWFnZXNbdF07ZGVsZXRlIHRoaXMuaW1hZ2VzW3RdLGRlbGV0ZSB0aGlzLnBhdHRlcm5zW3RdLGUudXNlckltYWdlJiZlLnVzZXJJbWFnZS5vblJlbW92ZSYmZS51c2VySW1hZ2Uub25SZW1vdmUoKX0sci5wcm90b3R5cGUubGlzdEltYWdlcz1mdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmltYWdlcyl9LHIucHJvdG90eXBlLmdldEltYWdlcz1mdW5jdGlvbih0LGUpe3ZhciByPSEwO2lmKCF0aGlzLmlzTG9hZGVkKCkpZm9yKHZhciBuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTt0aGlzLmltYWdlc1thXXx8KHI9ITEpfXRoaXMuaXNMb2FkZWQoKXx8cj90aGlzLl9ub3RpZnkodCxlKTp0aGlzLnJlcXVlc3RvcnMucHVzaCh7aWRzOnQsY2FsbGJhY2s6ZX0pfSxyLnByb3RvdHlwZS5fbm90aWZ5PWZ1bmN0aW9uKGUscil7Zm9yKHZhciBuPXt9LGk9MCxhPWU7aTxhLmxlbmd0aDtpKz0xKXt2YXIgbz1hW2ldO3RoaXMuaW1hZ2VzW29dfHx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInN0eWxlaW1hZ2VtaXNzaW5nIix7aWQ6b30pKTt2YXIgcz10aGlzLmltYWdlc1tvXTtzP25bb109e2RhdGE6cy5kYXRhLmNsb25lKCkscGl4ZWxSYXRpbzpzLnBpeGVsUmF0aW8sc2RmOnMuc2RmLHZlcnNpb246cy52ZXJzaW9uLHN0cmV0Y2hYOnMuc3RyZXRjaFgsc3RyZXRjaFk6cy5zdHJldGNoWSxjb250ZW50OnMuY29udGVudCxoYXNSZW5kZXJDYWxsYmFjazpCb29sZWFuKHMudXNlckltYWdlJiZzLnVzZXJJbWFnZS5yZW5kZXIpfTp0Lndhcm5PbmNlKCdJbWFnZSAiJytvKyciIGNvdWxkIG5vdCBiZSBsb2FkZWQuIFBsZWFzZSBtYWtlIHN1cmUgeW91IGhhdmUgYWRkZWQgdGhlIGltYWdlIHdpdGggbWFwLmFkZEltYWdlKCkgb3IgYSAic3ByaXRlIiBwcm9wZXJ0eSBpbiB5b3VyIHN0eWxlLiBZb3UgY2FuIHByb3ZpZGUgbWlzc2luZyBpbWFnZXMgYnkgbGlzdGVuaW5nIGZvciB0aGUgInN0eWxlaW1hZ2VtaXNzaW5nIiBtYXAgZXZlbnQuJyl9cihudWxsLG4pfSxyLnByb3RvdHlwZS5nZXRQaXhlbFNpemU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmF0bGFzSW1hZ2U7cmV0dXJue3dpZHRoOnQud2lkdGgsaGVpZ2h0OnQuaGVpZ2h0fX0sci5wcm90b3R5cGUuZ2V0UGF0dGVybj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnBhdHRlcm5zW2VdLG49dGhpcy5nZXRJbWFnZShlKTtpZighbilyZXR1cm4gbnVsbDtpZihyJiZyLnBvc2l0aW9uLnZlcnNpb249PT1uLnZlcnNpb24pcmV0dXJuIHIucG9zaXRpb247aWYocilyLnBvc2l0aW9uLnZlcnNpb249bi52ZXJzaW9uO2Vsc2V7dmFyIGk9e3c6bi5kYXRhLndpZHRoKzIsaDpuLmRhdGEuaGVpZ2h0KzIseDowLHk6MH0sYT1uZXcgdC5JbWFnZVBvc2l0aW9uKGksbik7dGhpcy5wYXR0ZXJuc1tlXT17YmluOmkscG9zaXRpb246YX19cmV0dXJuIHRoaXMuX3VwZGF0ZVBhdHRlcm5BdGxhcygpLHRoaXMucGF0dGVybnNbZV0ucG9zaXRpb259LHIucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5nbDt0aGlzLmF0bGFzVGV4dHVyZT90aGlzLmRpcnR5JiYodGhpcy5hdGxhc1RleHR1cmUudXBkYXRlKHRoaXMuYXRsYXNJbWFnZSksdGhpcy5kaXJ0eT0hMSk6dGhpcy5hdGxhc1RleHR1cmU9bmV3IHQuVGV4dHVyZShlLHRoaXMuYXRsYXNJbWFnZSxyLlJHQkEpLHRoaXMuYXRsYXNUZXh0dXJlLmJpbmQoci5MSU5FQVIsci5DTEFNUF9UT19FREdFKX0sci5wcm90b3R5cGUuX3VwZGF0ZVBhdHRlcm5BdGxhcz1mdW5jdGlvbigpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0aGlzLnBhdHRlcm5zKWUucHVzaCh0aGlzLnBhdHRlcm5zW3JdLmJpbik7dmFyIG49dC5wb3RwYWNrKGUpLGk9bi53LGE9bi5oLG89dGhpcy5hdGxhc0ltYWdlO2Zvcih2YXIgcyBpbiBvLnJlc2l6ZSh7d2lkdGg6aXx8MSxoZWlnaHQ6YXx8MX0pLHRoaXMucGF0dGVybnMpe3ZhciBsPXRoaXMucGF0dGVybnNbc10uYmluLGM9bC54KzEsdT1sLnkrMSxmPXRoaXMuaW1hZ2VzW3NdLmRhdGEsaD1mLndpZHRoLHA9Zi5oZWlnaHQ7dC5SR0JBSW1hZ2UuY29weShmLG8se3g6MCx5OjB9LHt4OmMseTp1fSx7d2lkdGg6aCxoZWlnaHQ6cH0pLHQuUkdCQUltYWdlLmNvcHkoZixvLHt4OjAseTpwLTF9LHt4OmMseTp1LTF9LHt3aWR0aDpoLGhlaWdodDoxfSksdC5SR0JBSW1hZ2UuY29weShmLG8se3g6MCx5OjB9LHt4OmMseTp1K3B9LHt3aWR0aDpoLGhlaWdodDoxfSksdC5SR0JBSW1hZ2UuY29weShmLG8se3g6aC0xLHk6MH0se3g6Yy0xLHk6dX0se3dpZHRoOjEsaGVpZ2h0OnB9KSx0LlJHQkFJbWFnZS5jb3B5KGYsbyx7eDowLHk6MH0se3g6YytoLHk6dX0se3dpZHRoOjEsaGVpZ2h0OnB9KX10aGlzLmRpcnR5PSEwfSxyLnByb3RvdHlwZS5iZWdpbkZyYW1lPWZ1bmN0aW9uKCl7dGhpcy5jYWxsYmFja0Rpc3BhdGNoZWRUaGlzRnJhbWU9e319LHIucHJvdG90eXBlLmRpc3BhdGNoUmVuZGVyQ2FsbGJhY2tzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9dDtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07aWYoIXRoaXMuY2FsbGJhY2tEaXNwYXRjaGVkVGhpc0ZyYW1lW25dKXt0aGlzLmNhbGxiYWNrRGlzcGF0Y2hlZFRoaXNGcmFtZVtuXT0hMDt2YXIgaT10aGlzLmltYWdlc1tuXTtmKGkpJiZ0aGlzLnVwZGF0ZUltYWdlKG4saSl9fX0scn0odC5FdmVudGVkKTt2YXIgcD1nLGQ9ZyxtPTFlMjA7ZnVuY3Rpb24gZyh0LGUscixuLGksYSl7dGhpcy5mb250U2l6ZT10fHwyNCx0aGlzLmJ1ZmZlcj12b2lkIDA9PT1lPzM6ZSx0aGlzLmN1dG9mZj1ufHwuMjUsdGhpcy5mb250RmFtaWx5PWl8fCJzYW5zLXNlcmlmIix0aGlzLmZvbnRXZWlnaHQ9YXx8Im5vcm1hbCIsdGhpcy5yYWRpdXM9cnx8ODt2YXIgbz10aGlzLnNpemU9dGhpcy5mb250U2l6ZSsyKnRoaXMuYnVmZmVyO3RoaXMuY2FudmFzPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLHRoaXMuY2FudmFzLndpZHRoPXRoaXMuY2FudmFzLmhlaWdodD1vLHRoaXMuY3R4PXRoaXMuY2FudmFzLmdldENvbnRleHQoIjJkIiksdGhpcy5jdHguZm9udD10aGlzLmZvbnRXZWlnaHQrIiAiK3RoaXMuZm9udFNpemUrInB4ICIrdGhpcy5mb250RmFtaWx5LHRoaXMuY3R4LnRleHRCYXNlbGluZT0ibWlkZGxlIix0aGlzLmN0eC5maWxsU3R5bGU9ImJsYWNrIix0aGlzLmdyaWRPdXRlcj1uZXcgRmxvYXQ2NEFycmF5KG8qbyksdGhpcy5ncmlkSW5uZXI9bmV3IEZsb2F0NjRBcnJheShvKm8pLHRoaXMuZj1uZXcgRmxvYXQ2NEFycmF5KG8pLHRoaXMuZD1uZXcgRmxvYXQ2NEFycmF5KG8pLHRoaXMuej1uZXcgRmxvYXQ2NEFycmF5KG8rMSksdGhpcy52PW5ldyBJbnQxNkFycmF5KG8pLHRoaXMubWlkZGxlPU1hdGgucm91bmQoby8yKihuYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoIkdlY2tvLyIpPj0wPzEuMjoxKSl9ZnVuY3Rpb24gdih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9MDtzPGU7cysrKXtmb3IodmFyIGw9MDtsPHI7bCsrKW5bbF09dFtsKmUrc107Zm9yKHkobixpLGEsbyxyKSxsPTA7bDxyO2wrKyl0W2wqZStzXT1pW2xdfWZvcihsPTA7bDxyO2wrKyl7Zm9yKHM9MDtzPGU7cysrKW5bc109dFtsKmUrc107Zm9yKHkobixpLGEsbyxlKSxzPTA7czxlO3MrKyl0W2wqZStzXT1NYXRoLnNxcnQoaVtzXSl9fWZ1bmN0aW9uIHkodCxlLHIsbixpKXtyWzBdPTAsblswXT0tbSxuWzFdPSttO2Zvcih2YXIgYT0xLG89MDthPGk7YSsrKXtmb3IodmFyIHM9KHRbYV0rYSphLSh0W3Jbb11dK3Jbb10qcltvXSkpLygyKmEtMipyW29dKTtzPD1uW29dOylvLS0scz0odFthXSthKmEtKHRbcltvXV0rcltvXSpyW29dKSkvKDIqYS0yKnJbb10pO3JbKytvXT1hLG5bb109cyxuW28rMV09K219Zm9yKGE9MCxvPTA7YTxpO2ErKyl7Zm9yKDtuW28rMV08YTspbysrO2VbYV09KGEtcltvXSkqKGEtcltvXSkrdFtyW29dXX19Zy5wcm90b3R5cGUuZHJhdz1mdW5jdGlvbih0KXt0aGlzLmN0eC5jbGVhclJlY3QoMCwwLHRoaXMuc2l6ZSx0aGlzLnNpemUpLHRoaXMuY3R4LmZpbGxUZXh0KHQsdGhpcy5idWZmZXIsdGhpcy5taWRkbGUpO2Zvcih2YXIgZT10aGlzLmN0eC5nZXRJbWFnZURhdGEoMCwwLHRoaXMuc2l6ZSx0aGlzLnNpemUpLHI9bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHRoaXMuc2l6ZSp0aGlzLnNpemUpLG49MDtuPHRoaXMuc2l6ZSp0aGlzLnNpemU7bisrKXt2YXIgaT1lLmRhdGFbNCpuKzNdLzI1NTt0aGlzLmdyaWRPdXRlcltuXT0xPT09aT8wOjA9PT1pP206TWF0aC5wb3coTWF0aC5tYXgoMCwuNS1pKSwyKSx0aGlzLmdyaWRJbm5lcltuXT0xPT09aT9tOjA9PT1pPzA6TWF0aC5wb3coTWF0aC5tYXgoMCxpLS41KSwyKX1mb3Iodih0aGlzLmdyaWRPdXRlcix0aGlzLnNpemUsdGhpcy5zaXplLHRoaXMuZix0aGlzLmQsdGhpcy52LHRoaXMueiksdih0aGlzLmdyaWRJbm5lcix0aGlzLnNpemUsdGhpcy5zaXplLHRoaXMuZix0aGlzLmQsdGhpcy52LHRoaXMueiksbj0wO248dGhpcy5zaXplKnRoaXMuc2l6ZTtuKyspe3ZhciBhPXRoaXMuZ3JpZE91dGVyW25dLXRoaXMuZ3JpZElubmVyW25dO3Jbbl09TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsTWF0aC5yb3VuZCgyNTUtMjU1KihhL3RoaXMucmFkaXVzK3RoaXMuY3V0b2ZmKSkpKX1yZXR1cm4gcn0scC5kZWZhdWx0PWQ7dmFyIHg9ZnVuY3Rpb24odCxlKXt0aGlzLnJlcXVlc3RNYW5hZ2VyPXQsdGhpcy5sb2NhbElkZW9ncmFwaEZvbnRGYW1pbHk9ZSx0aGlzLmVudHJpZXM9e319O3gucHJvdG90eXBlLnNldFVSTD1mdW5jdGlvbih0KXt0aGlzLnVybD10fSx4LnByb3RvdHlwZS5nZXRHbHlwaHM9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLGk9W107Zm9yKHZhciBhIGluIGUpZm9yKHZhciBvPTAscz1lW2FdO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTtpLnB1c2goe3N0YWNrOmEsaWQ6bH0pfXQuYXN5bmNBbGwoaSwoZnVuY3Rpb24odCxlKXt2YXIgcj10LnN0YWNrLGk9dC5pZCxhPW4uZW50cmllc1tyXTthfHwoYT1uLmVudHJpZXNbcl09e2dseXBoczp7fSxyZXF1ZXN0czp7fSxyYW5nZXM6e319KTt2YXIgbz1hLmdseXBoc1tpXTtpZih2b2lkIDA9PT1vKXtpZihvPW4uX3RpbnlTREYoYSxyLGkpKXJldHVybiBhLmdseXBoc1tpXT1vLHZvaWQgZShudWxsLHtzdGFjazpyLGlkOmksZ2x5cGg6b30pO3ZhciBzPU1hdGguZmxvb3IoaS8yNTYpO2lmKDI1NipzPjY1NTM1KWUobmV3IEVycm9yKCJnbHlwaHMgPiA2NTUzNSBub3Qgc3VwcG9ydGVkIikpO2Vsc2UgaWYoYS5yYW5nZXNbc10pZShudWxsLHtzdGFjazpyLGlkOmksZ2x5cGg6b30pO2Vsc2V7dmFyIGw9YS5yZXF1ZXN0c1tzXTtsfHwobD1hLnJlcXVlc3RzW3NdPVtdLHgubG9hZEdseXBoUmFuZ2UocixzLG4udXJsLG4ucmVxdWVzdE1hbmFnZXIsKGZ1bmN0aW9uKHQsZSl7aWYoZSl7Zm9yKHZhciByIGluIGUpbi5fZG9lc0NoYXJTdXBwb3J0TG9jYWxHbHlwaCgrcil8fChhLmdseXBoc1srcl09ZVsrcl0pO2EucmFuZ2VzW3NdPSEwfWZvcih2YXIgaT0wLG89bDtpPG8ubGVuZ3RoO2krPTEpeygwLG9baV0pKHQsZSl9ZGVsZXRlIGEucmVxdWVzdHNbc119KSkpLGwucHVzaCgoZnVuY3Rpb24odCxuKXt0P2UodCk6biYmZShudWxsLHtzdGFjazpyLGlkOmksZ2x5cGg6bltpXXx8bnVsbH0pfSkpfX1lbHNlIGUobnVsbCx7c3RhY2s6cixpZDppLGdseXBoOm99KX0pLChmdW5jdGlvbih0LGUpe2lmKHQpcih0KTtlbHNlIGlmKGUpe2Zvcih2YXIgbj17fSxpPTAsYT1lO2k8YS5sZW5ndGg7aSs9MSl7dmFyIG89YVtpXSxzPW8uc3RhY2ssbD1vLmlkLGM9by5nbHlwaDsobltzXXx8KG5bc109e30pKVtsXT1jJiZ7aWQ6Yy5pZCxiaXRtYXA6Yy5iaXRtYXAuY2xvbmUoKSxtZXRyaWNzOmMubWV0cmljc319cihudWxsLG4pfX0pKX0seC5wcm90b3R5cGUuX2RvZXNDaGFyU3VwcG9ydExvY2FsR2x5cGg9ZnVuY3Rpb24oZSl7cmV0dXJuISF0aGlzLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseSYmKHQuaXNDaGFyWyJDSksgVW5pZmllZCBJZGVvZ3JhcGhzIl0oZSl8fHQuaXNDaGFyWyJIYW5ndWwgU3lsbGFibGVzIl0oZSl8fHQuaXNDaGFyLkhpcmFnYW5hKGUpfHx0LmlzQ2hhci5LYXRha2FuYShlKSl9LHgucHJvdG90eXBlLl90aW55U0RGPWZ1bmN0aW9uKGUscixuKXt2YXIgaT10aGlzLmxvY2FsSWRlb2dyYXBoRm9udEZhbWlseTtpZihpJiZ0aGlzLl9kb2VzQ2hhclN1cHBvcnRMb2NhbEdseXBoKG4pKXt2YXIgYT1lLnRpbnlTREY7aWYoIWEpe3ZhciBvPSI0MDAiOy9ib2xkL2kudGVzdChyKT9vPSI5MDAiOi9tZWRpdW0vaS50ZXN0KHIpP289IjUwMCI6L2xpZ2h0L2kudGVzdChyKSYmKG89IjIwMCIpLGE9ZS50aW55U0RGPW5ldyB4LlRpbnlTREYoMjQsMyw4LC4yNSxpLG8pfXJldHVybntpZDpuLGJpdG1hcDpuZXcgdC5BbHBoYUltYWdlKHt3aWR0aDozMCxoZWlnaHQ6MzB9LGEuZHJhdyhTdHJpbmcuZnJvbUNoYXJDb2RlKG4pKSksbWV0cmljczp7d2lkdGg6MjQsaGVpZ2h0OjI0LGxlZnQ6MCx0b3A6LTgsYWR2YW5jZToyNH19fX0seC5sb2FkR2x5cGhSYW5nZT1mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvPTI1NipyLHM9bysyNTUsbD1pLnRyYW5zZm9ybVJlcXVlc3QoaS5ub3JtYWxpemVHbHlwaHNVUkwobikucmVwbGFjZSgie2ZvbnRzdGFja30iLGUpLnJlcGxhY2UoIntyYW5nZX0iLG8rIi0iK3MpLHQuUmVzb3VyY2VUeXBlLkdseXBocyk7dC5nZXRBcnJheUJ1ZmZlcihsLChmdW5jdGlvbihlLHIpe2lmKGUpYShlKTtlbHNlIGlmKHIpe2Zvcih2YXIgbj17fSxpPTAsbz10LnBhcnNlR2x5cGhQQkYocik7aTxvLmxlbmd0aDtpKz0xKXt2YXIgcz1vW2ldO25bcy5pZF09c31hKG51bGwsbil9fSkpfSx4LlRpbnlTREY9cDt2YXIgYj1mdW5jdGlvbigpe3RoaXMuc3BlY2lmaWNhdGlvbj10LnN0eWxlU3BlYy5saWdodC5wb3NpdGlvbn07Yi5wcm90b3R5cGUucG9zc2libHlFdmFsdWF0ZT1mdW5jdGlvbihlLHIpe3JldHVybiB0LnNwaGVyaWNhbFRvQ2FydGVzaWFuKGUuZXhwcmVzc2lvbi5ldmFsdWF0ZShyKSl9LGIucHJvdG90eXBlLmludGVycG9sYXRlPWZ1bmN0aW9uKGUscixuKXtyZXR1cm57eDp0Lm51bWJlcihlLngsci54LG4pLHk6dC5udW1iZXIoZS55LHIueSxuKSx6OnQubnVtYmVyKGUueixyLnosbil9fTt2YXIgXz1uZXcgdC5Qcm9wZXJ0aWVzKHthbmNob3I6bmV3IHQuRGF0YUNvbnN0YW50UHJvcGVydHkodC5zdHlsZVNwZWMubGlnaHQuYW5jaG9yKSxwb3NpdGlvbjpuZXcgYixjb2xvcjpuZXcgdC5EYXRhQ29uc3RhbnRQcm9wZXJ0eSh0LnN0eWxlU3BlYy5saWdodC5jb2xvciksaW50ZW5zaXR5Om5ldyB0LkRhdGFDb25zdGFudFByb3BlcnR5KHQuc3R5bGVTcGVjLmxpZ2h0LmludGVuc2l0eSl9KSx3PWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIocil7ZS5jYWxsKHRoaXMpLHRoaXMuX3RyYW5zaXRpb25hYmxlPW5ldyB0LlRyYW5zaXRpb25hYmxlKF8pLHRoaXMuc2V0TGlnaHQociksdGhpcy5fdHJhbnNpdGlvbmluZz10aGlzLl90cmFuc2l0aW9uYWJsZS51bnRyYW5zaXRpb25lZCgpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5nZXRMaWdodD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90cmFuc2l0aW9uYWJsZS5zZXJpYWxpemUoKX0sci5wcm90b3R5cGUuc2V0TGlnaHQ9ZnVuY3Rpb24oZSxyKXtpZih2b2lkIDA9PT1yJiYocj17fSksIXRoaXMuX3ZhbGlkYXRlKHQudmFsaWRhdGVMaWdodCxlLHIpKWZvcih2YXIgbiBpbiBlKXt2YXIgaT1lW25dO3QuZW5kc1dpdGgobiwiLXRyYW5zaXRpb24iKT90aGlzLl90cmFuc2l0aW9uYWJsZS5zZXRUcmFuc2l0aW9uKG4uc2xpY2UoMCwtIi10cmFuc2l0aW9uIi5sZW5ndGgpLGkpOnRoaXMuX3RyYW5zaXRpb25hYmxlLnNldFZhbHVlKG4saSl9fSxyLnByb3RvdHlwZS51cGRhdGVUcmFuc2l0aW9ucz1mdW5jdGlvbih0KXt0aGlzLl90cmFuc2l0aW9uaW5nPXRoaXMuX3RyYW5zaXRpb25hYmxlLnRyYW5zaXRpb25lZCh0LHRoaXMuX3RyYW5zaXRpb25pbmcpfSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RyYW5zaXRpb25pbmcuaGFzVHJhbnNpdGlvbigpfSxyLnByb3RvdHlwZS5yZWNhbGN1bGF0ZT1mdW5jdGlvbih0KXt0aGlzLnByb3BlcnRpZXM9dGhpcy5fdHJhbnNpdGlvbmluZy5wb3NzaWJseUV2YWx1YXRlKHQpfSxyLnByb3RvdHlwZS5fdmFsaWRhdGU9ZnVuY3Rpb24oZSxyLG4pe3JldHVybighbnx8ITEhPT1uLnZhbGlkYXRlKSYmdC5lbWl0VmFsaWRhdGlvbkVycm9ycyh0aGlzLGUuY2FsbCh0LnZhbGlkYXRlU3R5bGUsdC5leHRlbmQoe3ZhbHVlOnIsc3R5bGU6e2dseXBoczohMCxzcHJpdGU6ITB9LHN0eWxlU3BlYzp0LnN0eWxlU3BlY30pKSl9LHJ9KHQuRXZlbnRlZCksVD1mdW5jdGlvbih0LGUpe3RoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMubmV4dFJvdz0wLHRoaXMuZGF0YT1uZXcgVWludDhBcnJheSh0aGlzLndpZHRoKnRoaXMuaGVpZ2h0KSx0aGlzLmRhc2hFbnRyeT17fX07VC5wcm90b3R5cGUuZ2V0RGFzaD1mdW5jdGlvbih0LGUpe3ZhciByPXQuam9pbigiLCIpK1N0cmluZyhlKTtyZXR1cm4gdGhpcy5kYXNoRW50cnlbcl18fCh0aGlzLmRhc2hFbnRyeVtyXT10aGlzLmFkZERhc2godCxlKSksdGhpcy5kYXNoRW50cnlbcl19LFQucHJvdG90eXBlLmdldERhc2hSYW5nZXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPVtdLGk9dC5sZW5ndGglMj09MT8tdFt0Lmxlbmd0aC0xXSpyOjAsYT10WzBdKnIsbz0hMDtuLnB1c2goe2xlZnQ6aSxyaWdodDphLGlzRGFzaDpvLHplcm9MZW5ndGg6MD09PXRbMF19KTtmb3IodmFyIHM9dFswXSxsPTE7bDx0Lmxlbmd0aDtsKyspe289IW87dmFyIGM9dFtsXTtpPXMqcixhPShzKz1jKSpyLG4ucHVzaCh7bGVmdDppLHJpZ2h0OmEsaXNEYXNoOm8semVyb0xlbmd0aDowPT09Y30pfXJldHVybiBufSxULnByb3RvdHlwZS5hZGRSb3VuZERhc2g9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1lLzIsaT0tcjtpPD1yO2krKylmb3IodmFyIGE9dGhpcy5uZXh0Um93K3IraSxvPXRoaXMud2lkdGgqYSxzPTAsbD10W3NdLGM9MDtjPHRoaXMud2lkdGg7YysrKXtjL2wucmlnaHQ+MSYmKGw9dFsrK3NdKTt2YXIgdT1NYXRoLmFicyhjLWwubGVmdCksZj1NYXRoLmFicyhjLWwucmlnaHQpLGg9TWF0aC5taW4odSxmKSxwPXZvaWQgMCxkPWkvcioobisxKTtpZihsLmlzRGFzaCl7dmFyIG09bi1NYXRoLmFicyhkKTtwPU1hdGguc3FydChoKmgrbSptKX1lbHNlIHA9bi1NYXRoLnNxcnQoaCpoK2QqZCk7dGhpcy5kYXRhW28rY109TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUscCsxMjgpKX19LFQucHJvdG90eXBlLmFkZFJlZ3VsYXJEYXNoPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aC0xO2U+PTA7LS1lKXt2YXIgcj10W2VdLG49dFtlKzFdO3IuemVyb0xlbmd0aD90LnNwbGljZShlLDEpOm4mJm4uaXNEYXNoPT09ci5pc0Rhc2gmJihuLmxlZnQ9ci5sZWZ0LHQuc3BsaWNlKGUsMSkpfXZhciBpPXRbMF0sYT10W3QubGVuZ3RoLTFdO2kuaXNEYXNoPT09YS5pc0Rhc2gmJihpLmxlZnQ9YS5sZWZ0LXRoaXMud2lkdGgsYS5yaWdodD1pLnJpZ2h0K3RoaXMud2lkdGgpO2Zvcih2YXIgbz10aGlzLndpZHRoKnRoaXMubmV4dFJvdyxzPTAsbD10W3NdLGM9MDtjPHRoaXMud2lkdGg7YysrKXtjL2wucmlnaHQ+MSYmKGw9dFsrK3NdKTt2YXIgdT1NYXRoLmFicyhjLWwubGVmdCksZj1NYXRoLmFicyhjLWwucmlnaHQpLGg9TWF0aC5taW4odSxmKSxwPWwuaXNEYXNoP2g6LWg7dGhpcy5kYXRhW28rY109TWF0aC5tYXgoMCxNYXRoLm1pbigyNTUscCsxMjgpKX19LFQucHJvdG90eXBlLmFkZERhc2g9ZnVuY3Rpb24oZSxyKXt2YXIgbj1yPzc6MCxpPTIqbisxO2lmKHRoaXMubmV4dFJvdytpPnRoaXMuaGVpZ2h0KXJldHVybiB0Lndhcm5PbmNlKCJMaW5lQXRsYXMgb3V0IG9mIHNwYWNlIiksbnVsbDtmb3IodmFyIGE9MCxvPTA7bzxlLmxlbmd0aDtvKyspYSs9ZVtvXTtpZigwIT09YSl7dmFyIHM9dGhpcy53aWR0aC9hLGw9dGhpcy5nZXREYXNoUmFuZ2VzKGUsdGhpcy53aWR0aCxzKTtyP3RoaXMuYWRkUm91bmREYXNoKGwscyxuKTp0aGlzLmFkZFJlZ3VsYXJEYXNoKGwpfXZhciBjPXt5Oih0aGlzLm5leHRSb3crbisuNSkvdGhpcy5oZWlnaHQsaGVpZ2h0OjIqbi90aGlzLmhlaWdodCx3aWR0aDphfTtyZXR1cm4gdGhpcy5uZXh0Um93Kz1pLHRoaXMuZGlydHk9ITAsY30sVC5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0KXt2YXIgZT10LmdsO3RoaXMudGV4dHVyZT8oZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSx0aGlzLmRpcnR5JiYodGhpcy5kaXJ0eT0hMSxlLnRleFN1YkltYWdlMkQoZS5URVhUVVJFXzJELDAsMCwwLHRoaXMud2lkdGgsdGhpcy5oZWlnaHQsZS5BTFBIQSxlLlVOU0lHTkVEX0JZVEUsdGhpcy5kYXRhKSkpOih0aGlzLnRleHR1cmU9ZS5jcmVhdGVUZXh0dXJlKCksZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdGhpcy50ZXh0dXJlKSxlLnRleFBhcmFtZXRlcmkoZS5URVhUVVJFXzJELGUuVEVYVFVSRV9XUkFQX1MsZS5SRVBFQVQpLGUudGV4UGFyYW1ldGVyaShlLlRFWFRVUkVfMkQsZS5URVhUVVJFX1dSQVBfVCxlLlJFUEVBVCksZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUlOX0ZJTFRFUixlLkxJTkVBUiksZS50ZXhQYXJhbWV0ZXJpKGUuVEVYVFVSRV8yRCxlLlRFWFRVUkVfTUFHX0ZJTFRFUixlLkxJTkVBUiksZS50ZXhJbWFnZTJEKGUuVEVYVFVSRV8yRCwwLGUuQUxQSEEsdGhpcy53aWR0aCx0aGlzLmhlaWdodCwwLGUuQUxQSEEsZS5VTlNJR05FRF9CWVRFLHRoaXMuZGF0YSkpfTt2YXIgaz1mdW5jdGlvbiBlKHIsbil7dGhpcy53b3JrZXJQb29sPXIsdGhpcy5hY3RvcnM9W10sdGhpcy5jdXJyZW50QWN0b3I9MCx0aGlzLmlkPXQudW5pcXVlSWQoKTtmb3IodmFyIGk9dGhpcy53b3JrZXJQb29sLmFjcXVpcmUodGhpcy5pZCksYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdLHM9bmV3IGUuQWN0b3IobyxuLHRoaXMuaWQpO3MubmFtZT0iV29ya2VyICIrYSx0aGlzLmFjdG9ycy5wdXNoKHMpfX07ZnVuY3Rpb24gQShlLHIsbil7dmFyIGk9ZnVuY3Rpb24oaSxhKXtpZihpKXJldHVybiBuKGkpO2lmKGEpe3ZhciBvPXQucGljayh0LmV4dGVuZChhLGUpLFsidGlsZXMiLCJtaW56b29tIiwibWF4em9vbSIsImF0dHJpYnV0aW9uIiwibWFwYm94X2xvZ28iLCJib3VuZHMiLCJzY2hlbWUiLCJ0aWxlU2l6ZSIsImVuY29kaW5nIl0pO2EudmVjdG9yX2xheWVycyYmKG8udmVjdG9yTGF5ZXJzPWEudmVjdG9yX2xheWVycyxvLnZlY3RvckxheWVySWRzPW8udmVjdG9yTGF5ZXJzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSkpLG8udGlsZXM9ci5jYW5vbmljYWxpemVUaWxlc2V0KG8sZS51cmwpLG4obnVsbCxvKX19O3JldHVybiBlLnVybD90LmdldEpTT04oci50cmFuc2Zvcm1SZXF1ZXN0KHIubm9ybWFsaXplU291cmNlVVJMKGUudXJsKSx0LlJlc291cmNlVHlwZS5Tb3VyY2UpLGkpOnQuYnJvd3Nlci5mcmFtZSgoZnVuY3Rpb24oKXtyZXR1cm4gaShudWxsLGUpfSkpfWsucHJvdG90eXBlLmJyb2FkY2FzdD1mdW5jdGlvbihlLHIsbil7bj1ufHxmdW5jdGlvbigpe30sdC5hc3luY0FsbCh0aGlzLmFjdG9ycywoZnVuY3Rpb24odCxuKXt0LnNlbmQoZSxyLG4pfSksbil9LGsucHJvdG90eXBlLmdldEFjdG9yPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudEFjdG9yPSh0aGlzLmN1cnJlbnRBY3RvcisxKSV0aGlzLmFjdG9ycy5sZW5ndGgsdGhpcy5hY3RvcnNbdGhpcy5jdXJyZW50QWN0b3JdfSxrLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLmFjdG9ycy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnJlbW92ZSgpfSkpLHRoaXMuYWN0b3JzPVtdLHRoaXMud29ya2VyUG9vbC5yZWxlYXNlKHRoaXMuaWQpfSxrLkFjdG9yPXQuQWN0b3I7dmFyIE09ZnVuY3Rpb24oZSxyLG4pe3RoaXMuYm91bmRzPXQuTG5nTGF0Qm91bmRzLmNvbnZlcnQodGhpcy52YWxpZGF0ZUJvdW5kcyhlKSksdGhpcy5taW56b29tPXJ8fDAsdGhpcy5tYXh6b29tPW58fDI0fTtNLnByb3RvdHlwZS52YWxpZGF0ZUJvdW5kcz1mdW5jdGlvbih0KXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KSYmND09PXQubGVuZ3RoP1tNYXRoLm1heCgtMTgwLHRbMF0pLE1hdGgubWF4KC05MCx0WzFdKSxNYXRoLm1pbigxODAsdFsyXSksTWF0aC5taW4oOTAsdFszXSldOlstMTgwLC05MCwxODAsOTBdfSxNLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbihlKXt2YXIgcj1NYXRoLnBvdygyLGUueiksbj1NYXRoLmZsb29yKHQubWVyY2F0b3JYZnJvbUxuZyh0aGlzLmJvdW5kcy5nZXRXZXN0KCkpKnIpLGk9TWF0aC5mbG9vcih0Lm1lcmNhdG9yWWZyb21MYXQodGhpcy5ib3VuZHMuZ2V0Tm9ydGgoKSkqciksYT1NYXRoLmNlaWwodC5tZXJjYXRvclhmcm9tTG5nKHRoaXMuYm91bmRzLmdldEVhc3QoKSkqciksbz1NYXRoLmNlaWwodC5tZXJjYXRvcllmcm9tTGF0KHRoaXMuYm91bmRzLmdldFNvdXRoKCkpKnIpO3JldHVybiBlLng+PW4mJmUueDxhJiZlLnk+PWkmJmUueTxvfTt2YXIgUz1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixpLGEpe2lmKGUuY2FsbCh0aGlzKSx0aGlzLmlkPXIsdGhpcy5kaXNwYXRjaGVyPWksdGhpcy50eXBlPSJ2ZWN0b3IiLHRoaXMubWluem9vbT0wLHRoaXMubWF4em9vbT0yMix0aGlzLnNjaGVtZT0ieHl6Iix0aGlzLnRpbGVTaXplPTUxMix0aGlzLnJlcGFyc2VPdmVyc2NhbGVkPSEwLHRoaXMuaXNUaWxlQ2xpcHBlZD0hMCx0aGlzLl9sb2FkZWQ9ITEsdC5leHRlbmQodGhpcyx0LnBpY2sobixbInVybCIsInNjaGVtZSIsInRpbGVTaXplIiwicHJvbW90ZUlkIl0pKSx0aGlzLl9vcHRpb25zPXQuZXh0ZW5kKHt0eXBlOiJ2ZWN0b3IifSxuKSx0aGlzLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmc9bi5jb2xsZWN0UmVzb3VyY2VUaW1pbmcsNTEyIT09dGhpcy50aWxlU2l6ZSl0aHJvdyBuZXcgRXJyb3IoInZlY3RvciB0aWxlIHNvdXJjZXMgbXVzdCBoYXZlIGEgdGlsZVNpemUgb2YgNTEyIik7dGhpcy5zZXRFdmVudGVkUGFyZW50KGEpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLl9sb2FkZWQ9ITEsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMuX3RpbGVKU09OUmVxdWVzdD1BKHRoaXMuX29wdGlvbnMsdGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLChmdW5jdGlvbihyLG4pe2UuX3RpbGVKU09OUmVxdWVzdD1udWxsLGUuX2xvYWRlZD0hMCxyP2UuZmlyZShuZXcgdC5FcnJvckV2ZW50KHIpKTpuJiYodC5leHRlbmQoZSxuKSxuLmJvdW5kcyYmKGUudGlsZUJvdW5kcz1uZXcgTShuLmJvdW5kcyxlLm1pbnpvb20sZS5tYXh6b29tKSksdC5wb3N0VHVybnN0aWxlRXZlbnQobi50aWxlcyxlLm1hcC5fcmVxdWVzdE1hbmFnZXIuX2N1c3RvbUFjY2Vzc1Rva2VuKSx0LnBvc3RNYXBMb2FkRXZlbnQobi50aWxlcyxlLm1hcC5fZ2V0TWFwSWQoKSxlLm1hcC5fcmVxdWVzdE1hbmFnZXIuX3NrdVRva2VuLGUubWFwLl9yZXF1ZXN0TWFuYWdlci5fY3VzdG9tQWNjZXNzVG9rZW4pLGUuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJtZXRhZGF0YSJ9KSksZS5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InNvdXJjZSIsc291cmNlRGF0YVR5cGU6ImNvbnRlbnQifSkpKX0pKX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvYWRlZH0sci5wcm90b3R5cGUuaGFzVGlsZT1mdW5jdGlvbih0KXtyZXR1cm4hdGhpcy50aWxlQm91bmRzfHx0aGlzLnRpbGVCb3VuZHMuY29udGFpbnModC5jYW5vbmljYWwpfSxyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcD10LHRoaXMubG9hZCgpfSxyLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3RpbGVKU09OUmVxdWVzdCYmKHRoaXMuX3RpbGVKU09OUmVxdWVzdC5jYW5jZWwoKSx0aGlzLl90aWxlSlNPTlJlcXVlc3Q9bnVsbCl9LHIucHJvdG90eXBlLnNlcmlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiB0LmV4dGVuZCh7fSx0aGlzLl9vcHRpb25zKX0sci5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIubm9ybWFsaXplVGlsZVVSTChlLnRpbGVJRC5jYW5vbmljYWwudXJsKHRoaXMudGlsZXMsdGhpcy5zY2hlbWUpKSxpPXtyZXF1ZXN0OnRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci50cmFuc2Zvcm1SZXF1ZXN0KG4sdC5SZXNvdXJjZVR5cGUuVGlsZSksdWlkOmUudWlkLHRpbGVJRDplLnRpbGVJRCx6b29tOmUudGlsZUlELm92ZXJzY2FsZWRaLHRpbGVTaXplOnRoaXMudGlsZVNpemUqZS50aWxlSUQub3ZlcnNjYWxlRmFjdG9yKCksdHlwZTp0aGlzLnR5cGUsc291cmNlOnRoaXMuaWQscGl4ZWxSYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyxzaG93Q29sbGlzaW9uQm94ZXM6dGhpcy5tYXAuc2hvd0NvbGxpc2lvbkJveGVzLHByb21vdGVJZDp0aGlzLnByb21vdGVJZH07ZnVuY3Rpb24gYShuLGkpe3JldHVybiBkZWxldGUgZS5yZXF1ZXN0LGUuYWJvcnRlZD9yKG51bGwpOm4mJjQwNCE9PW4uc3RhdHVzP3Iobik6KGkmJmkucmVzb3VyY2VUaW1pbmcmJihlLnJlc291cmNlVGltaW5nPWkucmVzb3VyY2VUaW1pbmcpLHRoaXMubWFwLl9yZWZyZXNoRXhwaXJlZFRpbGVzJiZpJiZlLnNldEV4cGlyeURhdGEoaSksZS5sb2FkVmVjdG9yRGF0YShpLHRoaXMubWFwLnBhaW50ZXIpLHQuY2FjaGVFbnRyeVBvc3NpYmx5QWRkZWQodGhpcy5kaXNwYXRjaGVyKSxyKG51bGwpLHZvaWQoZS5yZWxvYWRDYWxsYmFjayYmKHRoaXMubG9hZFRpbGUoZSxlLnJlbG9hZENhbGxiYWNrKSxlLnJlbG9hZENhbGxiYWNrPW51bGwpKSl9aS5yZXF1ZXN0LmNvbGxlY3RSZXNvdXJjZVRpbWluZz10aGlzLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmcsZS5hY3RvciYmImV4cGlyZWQiIT09ZS5zdGF0ZT8ibG9hZGluZyI9PT1lLnN0YXRlP2UucmVsb2FkQ2FsbGJhY2s9cjplLnJlcXVlc3Q9ZS5hY3Rvci5zZW5kKCJyZWxvYWRUaWxlIixpLGEuYmluZCh0aGlzKSk6KGUuYWN0b3I9dGhpcy5kaXNwYXRjaGVyLmdldEFjdG9yKCksZS5yZXF1ZXN0PWUuYWN0b3Iuc2VuZCgibG9hZFRpbGUiLGksYS5iaW5kKHRoaXMpKSl9LHIucHJvdG90eXBlLmFib3J0VGlsZT1mdW5jdGlvbih0KXt0LnJlcXVlc3QmJih0LnJlcXVlc3QuY2FuY2VsKCksZGVsZXRlIHQucmVxdWVzdCksdC5hY3RvciYmdC5hY3Rvci5zZW5kKCJhYm9ydFRpbGUiLHt1aWQ6dC51aWQsdHlwZTp0aGlzLnR5cGUsc291cmNlOnRoaXMuaWR9LHZvaWQgMCl9LHIucHJvdG90eXBlLnVubG9hZFRpbGU9ZnVuY3Rpb24odCl7dC51bmxvYWRWZWN0b3JEYXRhKCksdC5hY3RvciYmdC5hY3Rvci5zZW5kKCJyZW1vdmVUaWxlIix7dWlkOnQudWlkLHR5cGU6dGhpcy50eXBlLHNvdXJjZTp0aGlzLmlkfSx2b2lkIDApfSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuITF9LHJ9KHQuRXZlbnRlZCksRT1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixpLGEpe2UuY2FsbCh0aGlzKSx0aGlzLmlkPXIsdGhpcy5kaXNwYXRjaGVyPWksdGhpcy5zZXRFdmVudGVkUGFyZW50KGEpLHRoaXMudHlwZT0icmFzdGVyIix0aGlzLm1pbnpvb209MCx0aGlzLm1heHpvb209MjIsdGhpcy5yb3VuZFpvb209ITAsdGhpcy5zY2hlbWU9Inh5eiIsdGhpcy50aWxlU2l6ZT01MTIsdGhpcy5fbG9hZGVkPSExLHRoaXMuX29wdGlvbnM9dC5leHRlbmQoe3R5cGU6InJhc3RlciJ9LG4pLHQuZXh0ZW5kKHRoaXMsdC5waWNrKG4sWyJ1cmwiLCJzY2hlbWUiLCJ0aWxlU2l6ZSJdKSl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2xvYWRlZD0hMSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGFsb2FkaW5nIix7ZGF0YVR5cGU6InNvdXJjZSJ9KSksdGhpcy5fdGlsZUpTT05SZXF1ZXN0PUEodGhpcy5fb3B0aW9ucyx0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIsKGZ1bmN0aW9uKHIsbil7ZS5fdGlsZUpTT05SZXF1ZXN0PW51bGwsZS5fbG9hZGVkPSEwLHI/ZS5maXJlKG5ldyB0LkVycm9yRXZlbnQocikpOm4mJih0LmV4dGVuZChlLG4pLG4uYm91bmRzJiYoZS50aWxlQm91bmRzPW5ldyBNKG4uYm91bmRzLGUubWluem9vbSxlLm1heHpvb20pKSx0LnBvc3RUdXJuc3RpbGVFdmVudChuLnRpbGVzKSx0LnBvc3RNYXBMb2FkRXZlbnQobi50aWxlcyxlLm1hcC5fZ2V0TWFwSWQoKSxlLm1hcC5fcmVxdWVzdE1hbmFnZXIuX3NrdVRva2VuKSxlLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToibWV0YWRhdGEifSkpLGUuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJjb250ZW50In0pKSl9KSl9LHIucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2FkZWR9LHIucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKHQpe3RoaXMubWFwPXQsdGhpcy5sb2FkKCl9LHIucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7dGhpcy5fdGlsZUpTT05SZXF1ZXN0JiYodGhpcy5fdGlsZUpTT05SZXF1ZXN0LmNhbmNlbCgpLHRoaXMuX3RpbGVKU09OUmVxdWVzdD1udWxsKX0sci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHQuZXh0ZW5kKHt9LHRoaXMuX29wdGlvbnMpfSxyLnByb3RvdHlwZS5oYXNUaWxlPWZ1bmN0aW9uKHQpe3JldHVybiF0aGlzLnRpbGVCb3VuZHN8fHRoaXMudGlsZUJvdW5kcy5jb250YWlucyh0LmNhbm9uaWNhbCl9LHIucHJvdG90eXBlLmxvYWRUaWxlPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpcyxpPXRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVUaWxlVVJMKGUudGlsZUlELmNhbm9uaWNhbC51cmwodGhpcy50aWxlcyx0aGlzLnNjaGVtZSksdGhpcy50aWxlU2l6ZSk7ZS5yZXF1ZXN0PXQuZ2V0SW1hZ2UodGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3QoaSx0LlJlc291cmNlVHlwZS5UaWxlKSwoZnVuY3Rpb24oaSxhKXtpZihkZWxldGUgZS5yZXF1ZXN0LGUuYWJvcnRlZCllLnN0YXRlPSJ1bmxvYWRlZCIscihudWxsKTtlbHNlIGlmKGkpZS5zdGF0ZT0iZXJyb3JlZCIscihpKTtlbHNlIGlmKGEpe24ubWFwLl9yZWZyZXNoRXhwaXJlZFRpbGVzJiZlLnNldEV4cGlyeURhdGEoYSksZGVsZXRlIGEuY2FjaGVDb250cm9sLGRlbGV0ZSBhLmV4cGlyZXM7dmFyIG89bi5tYXAucGFpbnRlci5jb250ZXh0LHM9by5nbDtlLnRleHR1cmU9bi5tYXAucGFpbnRlci5nZXRUaWxlVGV4dHVyZShhLndpZHRoKSxlLnRleHR1cmU/ZS50ZXh0dXJlLnVwZGF0ZShhLHt1c2VNaXBtYXA6ITB9KTooZS50ZXh0dXJlPW5ldyB0LlRleHR1cmUobyxhLHMuUkdCQSx7dXNlTWlwbWFwOiEwfSksZS50ZXh0dXJlLmJpbmQocy5MSU5FQVIscy5DTEFNUF9UT19FREdFLHMuTElORUFSX01JUE1BUF9ORUFSRVNUKSxvLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYyYmcy50ZXhQYXJhbWV0ZXJmKHMuVEVYVFVSRV8yRCxvLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5URVhUVVJFX01BWF9BTklTT1RST1BZX0VYVCxvLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY01heCkpLGUuc3RhdGU9ImxvYWRlZCIsdC5jYWNoZUVudHJ5UG9zc2libHlBZGRlZChuLmRpc3BhdGNoZXIpLHIobnVsbCl9fSkpfSxyLnByb3RvdHlwZS5hYm9ydFRpbGU9ZnVuY3Rpb24odCxlKXt0LnJlcXVlc3QmJih0LnJlcXVlc3QuY2FuY2VsKCksZGVsZXRlIHQucmVxdWVzdCksZSgpfSxyLnByb3RvdHlwZS51bmxvYWRUaWxlPWZ1bmN0aW9uKHQsZSl7dC50ZXh0dXJlJiZ0aGlzLm1hcC5wYWludGVyLnNhdmVUaWxlVGV4dHVyZSh0LnRleHR1cmUpLGUoKX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiExfSxyfSh0LkV2ZW50ZWQpLEw9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcihyLG4saSxhKXtlLmNhbGwodGhpcyxyLG4saSxhKSx0aGlzLnR5cGU9InJhc3Rlci1kZW0iLHRoaXMubWF4em9vbT0yMix0aGlzLl9vcHRpb25zPXQuZXh0ZW5kKHt0eXBlOiJyYXN0ZXItZGVtIn0sbiksdGhpcy5lbmNvZGluZz1uLmVuY29kaW5nfHwibWFwYm94In1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6InJhc3Rlci1kZW0iLHVybDp0aGlzLnVybCx0aWxlU2l6ZTp0aGlzLnRpbGVTaXplLHRpbGVzOnRoaXMudGlsZXMsYm91bmRzOnRoaXMuYm91bmRzLGVuY29kaW5nOnRoaXMuZW5jb2Rpbmd9fSxyLnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVUaWxlVVJMKGUudGlsZUlELmNhbm9uaWNhbC51cmwodGhpcy50aWxlcyx0aGlzLnNjaGVtZSksdGhpcy50aWxlU2l6ZSk7ZnVuY3Rpb24gaSh0LG4pe3QmJihlLnN0YXRlPSJlcnJvcmVkIixyKHQpKSxuJiYoZS5kZW09bixlLm5lZWRzSGlsbHNoYWRlUHJlcGFyZT0hMCxlLnN0YXRlPSJsb2FkZWQiLHIobnVsbCkpfWUucmVxdWVzdD10LmdldEltYWdlKHRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlci50cmFuc2Zvcm1SZXF1ZXN0KG4sdC5SZXNvdXJjZVR5cGUuVGlsZSksZnVuY3Rpb24obixhKXtpZihkZWxldGUgZS5yZXF1ZXN0LGUuYWJvcnRlZCllLnN0YXRlPSJ1bmxvYWRlZCIscihudWxsKTtlbHNlIGlmKG4pZS5zdGF0ZT0iZXJyb3JlZCIscihuKTtlbHNlIGlmKGEpe3RoaXMubWFwLl9yZWZyZXNoRXhwaXJlZFRpbGVzJiZlLnNldEV4cGlyeURhdGEoYSksZGVsZXRlIGEuY2FjaGVDb250cm9sLGRlbGV0ZSBhLmV4cGlyZXM7dmFyIG89dC53aW5kb3cuSW1hZ2VCaXRtYXAmJmEgaW5zdGFuY2VvZiB0LndpbmRvdy5JbWFnZUJpdG1hcCYmdC5vZmZzY3JlZW5DYW52YXNTdXBwb3J0ZWQoKT9hOnQuYnJvd3Nlci5nZXRJbWFnZURhdGEoYSwxKSxzPXt1aWQ6ZS51aWQsY29vcmQ6ZS50aWxlSUQsc291cmNlOnRoaXMuaWQscmF3SW1hZ2VEYXRhOm8sZW5jb2Rpbmc6dGhpcy5lbmNvZGluZ307ZS5hY3RvciYmImV4cGlyZWQiIT09ZS5zdGF0ZXx8KGUuYWN0b3I9dGhpcy5kaXNwYXRjaGVyLmdldEFjdG9yKCksZS5hY3Rvci5zZW5kKCJsb2FkREVNVGlsZSIscyxpLmJpbmQodGhpcykpKX19LmJpbmQodGhpcykpLGUubmVpZ2hib3JpbmdUaWxlcz10aGlzLl9nZXROZWlnaGJvcmluZ1RpbGVzKGUudGlsZUlEKX0sci5wcm90b3R5cGUuX2dldE5laWdoYm9yaW5nVGlsZXM9ZnVuY3Rpb24oZSl7dmFyIHI9ZS5jYW5vbmljYWwsbj1NYXRoLnBvdygyLHIueiksaT0oci54LTErbiklbixhPTA9PT1yLng/ZS53cmFwLTE6ZS53cmFwLG89KHIueCsxK24pJW4scz1yLngrMT09PW4/ZS53cmFwKzE6ZS53cmFwLGw9e307cmV0dXJuIGxbbmV3IHQuT3ZlcnNjYWxlZFRpbGVJRChlLm92ZXJzY2FsZWRaLGEsci56LGksci55KS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixzLHIueixvLHIueSkua2V5XT17YmFja2ZpbGxlZDohMX0sci55PjAmJihsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixhLHIueixpLHIueS0xKS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixlLndyYXAsci56LHIueCxyLnktMSkua2V5XT17YmFja2ZpbGxlZDohMX0sbFtuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUub3ZlcnNjYWxlZFoscyxyLnosbyxyLnktMSkua2V5XT17YmFja2ZpbGxlZDohMX0pLHIueSsxPG4mJihsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixhLHIueixpLHIueSsxKS5rZXldPXtiYWNrZmlsbGVkOiExfSxsW25ldyB0Lk92ZXJzY2FsZWRUaWxlSUQoZS5vdmVyc2NhbGVkWixlLndyYXAsci56LHIueCxyLnkrMSkua2V5XT17YmFja2ZpbGxlZDohMX0sbFtuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUub3ZlcnNjYWxlZFoscyxyLnosbyxyLnkrMSkua2V5XT17YmFja2ZpbGxlZDohMX0pLGx9LHIucHJvdG90eXBlLnVubG9hZFRpbGU9ZnVuY3Rpb24odCl7dC5kZW1UZXh0dXJlJiZ0aGlzLm1hcC5wYWludGVyLnNhdmVUaWxlVGV4dHVyZSh0LmRlbVRleHR1cmUpLHQuZmJvJiYodC5mYm8uZGVzdHJveSgpLGRlbGV0ZSB0LmZibyksdC5kZW0mJmRlbGV0ZSB0LmRlbSxkZWxldGUgdC5uZWlnaGJvcmluZ1RpbGVzLHQuc3RhdGU9InVubG9hZGVkIix0LmFjdG9yJiZ0LmFjdG9yLnNlbmQoInJlbW92ZURFTVRpbGUiLHt1aWQ6dC51aWQsc291cmNlOnRoaXMuaWR9KX0scn0oRSksQz1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixpLGEpe2UuY2FsbCh0aGlzKSx0aGlzLmlkPXIsdGhpcy50eXBlPSJnZW9qc29uIix0aGlzLm1pbnpvb209MCx0aGlzLm1heHpvb209MTgsdGhpcy50aWxlU2l6ZT01MTIsdGhpcy5pc1RpbGVDbGlwcGVkPSEwLHRoaXMucmVwYXJzZU92ZXJzY2FsZWQ9ITAsdGhpcy5fcmVtb3ZlZD0hMSx0aGlzLl9sb2FkZWQ9ITEsdGhpcy5hY3Rvcj1pLmdldEFjdG9yKCksdGhpcy5zZXRFdmVudGVkUGFyZW50KGEpLHRoaXMuX2RhdGE9bi5kYXRhLHRoaXMuX29wdGlvbnM9dC5leHRlbmQoe30sbiksdGhpcy5fY29sbGVjdFJlc291cmNlVGltaW5nPW4uY29sbGVjdFJlc291cmNlVGltaW5nLHRoaXMuX3Jlc291cmNlVGltaW5nPVtdLHZvaWQgMCE9PW4ubWF4em9vbSYmKHRoaXMubWF4em9vbT1uLm1heHpvb20pLG4udHlwZSYmKHRoaXMudHlwZT1uLnR5cGUpLG4uYXR0cmlidXRpb24mJih0aGlzLmF0dHJpYnV0aW9uPW4uYXR0cmlidXRpb24pLHRoaXMucHJvbW90ZUlkPW4ucHJvbW90ZUlkO3ZhciBvPXQuRVhURU5UL3RoaXMudGlsZVNpemU7dGhpcy53b3JrZXJPcHRpb25zPXQuZXh0ZW5kKHtzb3VyY2U6dGhpcy5pZCxjbHVzdGVyOm4uY2x1c3Rlcnx8ITEsZ2VvanNvblZ0T3B0aW9uczp7YnVmZmVyOih2b2lkIDAhPT1uLmJ1ZmZlcj9uLmJ1ZmZlcjoxMjgpKm8sdG9sZXJhbmNlOih2b2lkIDAhPT1uLnRvbGVyYW5jZT9uLnRvbGVyYW5jZTouMzc1KSpvLGV4dGVudDp0LkVYVEVOVCxtYXhab29tOnRoaXMubWF4em9vbSxsaW5lTWV0cmljczpuLmxpbmVNZXRyaWNzfHwhMSxnZW5lcmF0ZUlkOm4uZ2VuZXJhdGVJZHx8ITF9LHN1cGVyY2x1c3Rlck9wdGlvbnM6e21heFpvb206dm9pZCAwIT09bi5jbHVzdGVyTWF4Wm9vbT9NYXRoLm1pbihuLmNsdXN0ZXJNYXhab29tLHRoaXMubWF4em9vbS0xKTp0aGlzLm1heHpvb20tMSxleHRlbnQ6dC5FWFRFTlQscmFkaXVzOihuLmNsdXN0ZXJSYWRpdXN8fDUwKSpvLGxvZzohMSxnZW5lcmF0ZUlkOm4uZ2VuZXJhdGVJZHx8ITF9LGNsdXN0ZXJQcm9wZXJ0aWVzOm4uY2x1c3RlclByb3BlcnRpZXN9LG4ud29ya2VyT3B0aW9ucyl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YWxvYWRpbmciLHtkYXRhVHlwZToic291cmNlIn0pKSx0aGlzLl91cGRhdGVXb3JrZXJEYXRhKChmdW5jdGlvbihyKXtpZihyKWUuZmlyZShuZXcgdC5FcnJvckV2ZW50KHIpKTtlbHNle3ZhciBuPXtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToibWV0YWRhdGEifTtlLl9jb2xsZWN0UmVzb3VyY2VUaW1pbmcmJmUuX3Jlc291cmNlVGltaW5nJiZlLl9yZXNvdXJjZVRpbWluZy5sZW5ndGg+MCYmKG4ucmVzb3VyY2VUaW1pbmc9ZS5fcmVzb3VyY2VUaW1pbmcsZS5fcmVzb3VyY2VUaW1pbmc9W10pLGUuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIsbikpfX0pKX0sci5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5tYXA9dCx0aGlzLmxvYWQoKX0sci5wcm90b3R5cGUuc2V0RGF0YT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3JldHVybiB0aGlzLl9kYXRhPWUsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMuX3VwZGF0ZVdvcmtlckRhdGEoKGZ1bmN0aW9uKGUpe2lmKGUpci5maXJlKG5ldyB0LkVycm9yRXZlbnQoZSkpO2Vsc2V7dmFyIG49e2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJjb250ZW50In07ci5fY29sbGVjdFJlc291cmNlVGltaW5nJiZyLl9yZXNvdXJjZVRpbWluZyYmci5fcmVzb3VyY2VUaW1pbmcubGVuZ3RoPjAmJihuLnJlc291cmNlVGltaW5nPXIuX3Jlc291cmNlVGltaW5nLHIuX3Jlc291cmNlVGltaW5nPVtdKSxyLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLG4pKX19KSksdGhpc30sci5wcm90b3R5cGUuZ2V0Q2x1c3RlckV4cGFuc2lvblpvb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5hY3Rvci5zZW5kKCJnZW9qc29uLmdldENsdXN0ZXJFeHBhbnNpb25ab29tIix7Y2x1c3RlcklkOnQsc291cmNlOnRoaXMuaWR9LGUpLHRoaXN9LHIucHJvdG90eXBlLmdldENsdXN0ZXJDaGlsZHJlbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmFjdG9yLnNlbmQoImdlb2pzb24uZ2V0Q2x1c3RlckNoaWxkcmVuIix7Y2x1c3RlcklkOnQsc291cmNlOnRoaXMuaWR9LGUpLHRoaXN9LHIucHJvdG90eXBlLmdldENsdXN0ZXJMZWF2ZXM9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHRoaXMuYWN0b3Iuc2VuZCgiZ2VvanNvbi5nZXRDbHVzdGVyTGVhdmVzIix7c291cmNlOnRoaXMuaWQsY2x1c3RlcklkOnQsbGltaXQ6ZSxvZmZzZXQ6cn0sbiksdGhpc30sci5wcm90b3R5cGUuX3VwZGF0ZVdvcmtlckRhdGE9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpczt0aGlzLl9sb2FkZWQ9ITE7dmFyIG49dC5leHRlbmQoe30sdGhpcy53b3JrZXJPcHRpb25zKSxpPXRoaXMuX2RhdGE7InN0cmluZyI9PXR5cGVvZiBpPyhuLnJlcXVlc3Q9dGhpcy5tYXAuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3QodC5icm93c2VyLnJlc29sdmVVUkwoaSksdC5SZXNvdXJjZVR5cGUuU291cmNlKSxuLnJlcXVlc3QuY29sbGVjdFJlc291cmNlVGltaW5nPXRoaXMuX2NvbGxlY3RSZXNvdXJjZVRpbWluZyk6bi5kYXRhPUpTT04uc3RyaW5naWZ5KGkpLHRoaXMuYWN0b3Iuc2VuZCh0aGlzLnR5cGUrIi5sb2FkRGF0YSIsbiwoZnVuY3Rpb24odCxpKXtyLl9yZW1vdmVkfHxpJiZpLmFiYW5kb25lZHx8KHIuX2xvYWRlZD0hMCxpJiZpLnJlc291cmNlVGltaW5nJiZpLnJlc291cmNlVGltaW5nW3IuaWRdJiYoci5fcmVzb3VyY2VUaW1pbmc9aS5yZXNvdXJjZVRpbWluZ1tyLmlkXS5zbGljZSgwKSksci5hY3Rvci5zZW5kKHIudHlwZSsiLmNvYWxlc2NlIix7c291cmNlOm4uc291cmNlfSxudWxsKSxlKHQpKX0pKX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xvYWRlZH0sci5wcm90b3R5cGUubG9hZFRpbGU9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLGk9ZS5hY3Rvcj8icmVsb2FkVGlsZSI6ImxvYWRUaWxlIjtlLmFjdG9yPXRoaXMuYWN0b3I7dmFyIGE9e3R5cGU6dGhpcy50eXBlLHVpZDplLnVpZCx0aWxlSUQ6ZS50aWxlSUQsem9vbTplLnRpbGVJRC5vdmVyc2NhbGVkWixtYXhab29tOnRoaXMubWF4em9vbSx0aWxlU2l6ZTp0aGlzLnRpbGVTaXplLHNvdXJjZTp0aGlzLmlkLHBpeGVsUmF0aW86dC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sc2hvd0NvbGxpc2lvbkJveGVzOnRoaXMubWFwLnNob3dDb2xsaXNpb25Cb3hlcyxwcm9tb3RlSWQ6dGhpcy5wcm9tb3RlSWR9O2UucmVxdWVzdD10aGlzLmFjdG9yLnNlbmQoaSxhLChmdW5jdGlvbih0LGEpe3JldHVybiBkZWxldGUgZS5yZXF1ZXN0LGUudW5sb2FkVmVjdG9yRGF0YSgpLGUuYWJvcnRlZD9yKG51bGwpOnQ/cih0KTooZS5sb2FkVmVjdG9yRGF0YShhLG4ubWFwLnBhaW50ZXIsInJlbG9hZFRpbGUiPT09aSkscihudWxsKSl9KSl9LHIucHJvdG90eXBlLmFib3J0VGlsZT1mdW5jdGlvbih0KXt0LnJlcXVlc3QmJih0LnJlcXVlc3QuY2FuY2VsKCksZGVsZXRlIHQucmVxdWVzdCksdC5hYm9ydGVkPSEwfSxyLnByb3RvdHlwZS51bmxvYWRUaWxlPWZ1bmN0aW9uKHQpe3QudW5sb2FkVmVjdG9yRGF0YSgpLHRoaXMuYWN0b3Iuc2VuZCgicmVtb3ZlVGlsZSIse3VpZDp0LnVpZCx0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5pZH0pfSxyLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3RoaXMuX3JlbW92ZWQ9ITAsdGhpcy5hY3Rvci5zZW5kKCJyZW1vdmVTb3VyY2UiLHt0eXBlOnRoaXMudHlwZSxzb3VyY2U6dGhpcy5pZH0pfSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5leHRlbmQoe30sdGhpcy5fb3B0aW9ucyx7dHlwZTp0aGlzLnR5cGUsZGF0YTp0aGlzLl9kYXRhfSl9LHIucHJvdG90eXBlLmhhc1RyYW5zaXRpb249ZnVuY3Rpb24oKXtyZXR1cm4hMX0scn0odC5FdmVudGVkKSxQPXQuY3JlYXRlTGF5b3V0KFt7bmFtZToiYV9wb3MiLHR5cGU6IkludDE2Iixjb21wb25lbnRzOjJ9LHtuYW1lOiJhX3RleHR1cmVfcG9zIix0eXBlOiJJbnQxNiIsY29tcG9uZW50czoyfV0pLEk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcih0LHIsbixpKXtlLmNhbGwodGhpcyksdGhpcy5pZD10LHRoaXMuZGlzcGF0Y2hlcj1uLHRoaXMuY29vcmRpbmF0ZXM9ci5jb29yZGluYXRlcyx0aGlzLnR5cGU9ImltYWdlIix0aGlzLm1pbnpvb209MCx0aGlzLm1heHpvb209MjIsdGhpcy50aWxlU2l6ZT01MTIsdGhpcy50aWxlcz17fSx0aGlzLl9sb2FkZWQ9ITEsdGhpcy5zZXRFdmVudGVkUGFyZW50KGkpLHRoaXMub3B0aW9ucz1yfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5sb2FkPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpczt0aGlzLl9sb2FkZWQ9ITEsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzb3VyY2UifSkpLHRoaXMudXJsPXRoaXMub3B0aW9ucy51cmwsdC5nZXRJbWFnZSh0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdCh0aGlzLnVybCx0LlJlc291cmNlVHlwZS5JbWFnZSksKGZ1bmN0aW9uKGksYSl7bi5fbG9hZGVkPSEwLGk/bi5maXJlKG5ldyB0LkVycm9yRXZlbnQoaSkpOmEmJihuLmltYWdlPWEsZSYmKG4uY29vcmRpbmF0ZXM9ZSksciYmcigpLG4uX2ZpbmlzaExvYWRpbmcoKSl9KSl9LHIucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sb2FkZWR9LHIucHJvdG90eXBlLnVwZGF0ZUltYWdlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7cmV0dXJuIHRoaXMuaW1hZ2UmJnQudXJsPyh0aGlzLm9wdGlvbnMudXJsPXQudXJsLHRoaXMubG9hZCh0LmNvb3JkaW5hdGVzLChmdW5jdGlvbigpe2UudGV4dHVyZT1udWxsfSkpLHRoaXMpOnRoaXN9LHIucHJvdG90eXBlLl9maW5pc2hMb2FkaW5nPWZ1bmN0aW9uKCl7dGhpcy5tYXAmJih0aGlzLnNldENvb3JkaW5hdGVzKHRoaXMuY29vcmRpbmF0ZXMpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHNvdXJjZURhdGFUeXBlOiJtZXRhZGF0YSJ9KSkpfSxyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcD10LHRoaXMubG9hZCgpfSxyLnByb3RvdHlwZS5zZXRDb29yZGluYXRlcz1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3RoaXMuY29vcmRpbmF0ZXM9ZTt2YXIgbj1lLm1hcCh0Lk1lcmNhdG9yQ29vcmRpbmF0ZS5mcm9tTG5nTGF0KTt0aGlzLnRpbGVJRD1mdW5jdGlvbihlKXtmb3IodmFyIHI9MS8wLG49MS8wLGk9LTEvMCxhPS0xLzAsbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb107cj1NYXRoLm1pbihyLGwueCksbj1NYXRoLm1pbihuLGwueSksaT1NYXRoLm1heChpLGwueCksYT1NYXRoLm1heChhLGwueSl9dmFyIGM9aS1yLHU9YS1uLGY9TWF0aC5tYXgoYyx1KSxoPU1hdGgubWF4KDAsTWF0aC5mbG9vcigtTWF0aC5sb2coZikvTWF0aC5MTjIpKSxwPU1hdGgucG93KDIsaCk7cmV0dXJuIG5ldyB0LkNhbm9uaWNhbFRpbGVJRChoLE1hdGguZmxvb3IoKHIraSkvMipwKSxNYXRoLmZsb29yKChuK2EpLzIqcCkpfShuKSx0aGlzLm1pbnpvb209dGhpcy5tYXh6b29tPXRoaXMudGlsZUlELno7dmFyIGk9bi5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiByLnRpbGVJRC5nZXRUaWxlUG9pbnQodCkuX3JvdW5kKCl9KSk7cmV0dXJuIHRoaXMuX2JvdW5kc0FycmF5PW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0NGk4LHRoaXMuX2JvdW5kc0FycmF5LmVtcGxhY2VCYWNrKGlbMF0ueCxpWzBdLnksMCwwKSx0aGlzLl9ib3VuZHNBcnJheS5lbXBsYWNlQmFjayhpWzFdLngsaVsxXS55LHQuRVhURU5ULDApLHRoaXMuX2JvdW5kc0FycmF5LmVtcGxhY2VCYWNrKGlbM10ueCxpWzNdLnksMCx0LkVYVEVOVCksdGhpcy5fYm91bmRzQXJyYXkuZW1wbGFjZUJhY2soaVsyXS54LGlbMl0ueSx0LkVYVEVOVCx0LkVYVEVOVCksdGhpcy5ib3VuZHNCdWZmZXImJih0aGlzLmJvdW5kc0J1ZmZlci5kZXN0cm95KCksZGVsZXRlIHRoaXMuYm91bmRzQnVmZmVyKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic291cmNlIixzb3VyY2VEYXRhVHlwZToiY29udGVudCJ9KSksdGhpc30sci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2lmKDAhPT1PYmplY3Qua2V5cyh0aGlzLnRpbGVzKS5sZW5ndGgmJnRoaXMuaW1hZ2Upe3ZhciBlPXRoaXMubWFwLnBhaW50ZXIuY29udGV4dCxyPWUuZ2w7Zm9yKHZhciBuIGluIHRoaXMuYm91bmRzQnVmZmVyfHwodGhpcy5ib3VuZHNCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIodGhpcy5fYm91bmRzQXJyYXksUC5tZW1iZXJzKSksdGhpcy5ib3VuZHNTZWdtZW50c3x8KHRoaXMuYm91bmRzU2VnbWVudHM9dC5TZWdtZW50VmVjdG9yLnNpbXBsZVNlZ21lbnQoMCwwLDQsMikpLHRoaXMudGV4dHVyZXx8KHRoaXMudGV4dHVyZT1uZXcgdC5UZXh0dXJlKGUsdGhpcy5pbWFnZSxyLlJHQkEpLHRoaXMudGV4dHVyZS5iaW5kKHIuTElORUFSLHIuQ0xBTVBfVE9fRURHRSkpLHRoaXMudGlsZXMpe3ZhciBpPXRoaXMudGlsZXNbbl07ImxvYWRlZCIhPT1pLnN0YXRlJiYoaS5zdGF0ZT0ibG9hZGVkIixpLnRleHR1cmU9dGhpcy50ZXh0dXJlKX19fSxyLnByb3RvdHlwZS5sb2FkVGlsZT1mdW5jdGlvbih0LGUpe3RoaXMudGlsZUlEJiZ0aGlzLnRpbGVJRC5lcXVhbHModC50aWxlSUQuY2Fub25pY2FsKT8odGhpcy50aWxlc1tTdHJpbmcodC50aWxlSUQud3JhcCldPXQsdC5idWNrZXRzPXt9LGUobnVsbCkpOih0LnN0YXRlPSJlcnJvcmVkIixlKG51bGwpKX0sci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6ImltYWdlIix1cmw6dGhpcy5vcHRpb25zLnVybCxjb29yZGluYXRlczp0aGlzLmNvb3JkaW5hdGVzfX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiExfSxyfSh0LkV2ZW50ZWQpO3ZhciBPPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIodCxyLG4saSl7ZS5jYWxsKHRoaXMsdCxyLG4saSksdGhpcy5yb3VuZFpvb209ITAsdGhpcy50eXBlPSJ2aWRlbyIsdGhpcy5vcHRpb25zPXJ9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt2YXIgZT10aGlzO3RoaXMuX2xvYWRlZD0hMTt2YXIgcj10aGlzLm9wdGlvbnM7dGhpcy51cmxzPVtdO2Zvcih2YXIgbj0wLGk9ci51cmxzO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTt0aGlzLnVybHMucHVzaCh0aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdChhLHQuUmVzb3VyY2VUeXBlLlNvdXJjZSkudXJsKX10LmdldFZpZGVvKHRoaXMudXJscywoZnVuY3Rpb24ocixuKXtlLl9sb2FkZWQ9ITAscj9lLmZpcmUobmV3IHQuRXJyb3JFdmVudChyKSk6biYmKGUudmlkZW89bixlLnZpZGVvLmxvb3A9ITAsZS52aWRlby5hZGRFdmVudExpc3RlbmVyKCJwbGF5aW5nIiwoZnVuY3Rpb24oKXtlLm1hcC50cmlnZ2VyUmVwYWludCgpfSkpLGUubWFwJiZlLnZpZGVvLnBsYXkoKSxlLl9maW5pc2hMb2FkaW5nKCkpfSkpfSxyLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3RoaXMudmlkZW8mJnRoaXMudmlkZW8ucGF1c2UoKX0sci5wcm90b3R5cGUucGxheT1mdW5jdGlvbigpe3RoaXMudmlkZW8mJnRoaXMudmlkZW8ucGxheSgpfSxyLnByb3RvdHlwZS5zZWVrPWZ1bmN0aW9uKGUpe2lmKHRoaXMudmlkZW8pe3ZhciByPXRoaXMudmlkZW8uc2Vla2FibGU7ZTxyLnN0YXJ0KDApfHxlPnIuZW5kKDApP3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3RoaXMuaWQsbnVsbCwiUGxheWJhY2sgZm9yIHRoaXMgdmlkZW8gY2FuIGJlIHNldCBvbmx5IGJldHdlZW4gdGhlICIrci5zdGFydCgwKSsiIGFuZCAiK3IuZW5kKDApKyItc2Vjb25kIG1hcmsuIikpKTp0aGlzLnZpZGVvLmN1cnJlbnRUaW1lPWV9fSxyLnByb3RvdHlwZS5nZXRWaWRlbz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnZpZGVvfSxyLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt0aGlzLm1hcHx8KHRoaXMubWFwPXQsdGhpcy5sb2FkKCksdGhpcy52aWRlbyYmKHRoaXMudmlkZW8ucGxheSgpLHRoaXMuc2V0Q29vcmRpbmF0ZXModGhpcy5jb29yZGluYXRlcykpKX0sci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbigpe2lmKCEoMD09PU9iamVjdC5rZXlzKHRoaXMudGlsZXMpLmxlbmd0aHx8dGhpcy52aWRlby5yZWFkeVN0YXRlPDIpKXt2YXIgZT10aGlzLm1hcC5wYWludGVyLmNvbnRleHQscj1lLmdsO2Zvcih2YXIgbiBpbiB0aGlzLmJvdW5kc0J1ZmZlcnx8KHRoaXMuYm91bmRzQnVmZmVyPWUuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuX2JvdW5kc0FycmF5LFAubWVtYmVycykpLHRoaXMuYm91bmRzU2VnbWVudHN8fCh0aGlzLmJvdW5kc1NlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpKSx0aGlzLnRleHR1cmU/dGhpcy52aWRlby5wYXVzZWR8fCh0aGlzLnRleHR1cmUuYmluZChyLkxJTkVBUixyLkNMQU1QX1RPX0VER0UpLHIudGV4U3ViSW1hZ2UyRChyLlRFWFRVUkVfMkQsMCwwLDAsci5SR0JBLHIuVU5TSUdORURfQllURSx0aGlzLnZpZGVvKSk6KHRoaXMudGV4dHVyZT1uZXcgdC5UZXh0dXJlKGUsdGhpcy52aWRlbyxyLlJHQkEpLHRoaXMudGV4dHVyZS5iaW5kKHIuTElORUFSLHIuQ0xBTVBfVE9fRURHRSkpLHRoaXMudGlsZXMpe3ZhciBpPXRoaXMudGlsZXNbbl07ImxvYWRlZCIhPT1pLnN0YXRlJiYoaS5zdGF0ZT0ibG9hZGVkIixpLnRleHR1cmU9dGhpcy50ZXh0dXJlKX19fSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToidmlkZW8iLHVybHM6dGhpcy51cmxzLGNvb3JkaW5hdGVzOnRoaXMuY29vcmRpbmF0ZXN9fSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudmlkZW8mJiF0aGlzLnZpZGVvLnBhdXNlZH0scn0oSSksej1mdW5jdGlvbihlKXtmdW5jdGlvbiByKHIsbixpLGEpe2UuY2FsbCh0aGlzLHIsbixpLGEpLG4uY29vcmRpbmF0ZXM/QXJyYXkuaXNBcnJheShuLmNvb3JkaW5hdGVzKSYmND09PW4uY29vcmRpbmF0ZXMubGVuZ3RoJiYhbi5jb29yZGluYXRlcy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4hQXJyYXkuaXNBcnJheSh0KXx8MiE9PXQubGVuZ3RofHx0LnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiJudW1iZXIiIT10eXBlb2YgdH0pKX0pKXx8dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IHQuVmFsaWRhdGlvbkVycm9yKCJzb3VyY2VzLiIrcixudWxsLCciY29vcmRpbmF0ZXMiIHByb3BlcnR5IG11c3QgYmUgYW4gYXJyYXkgb2YgNCBsb25naXR1ZGUvbGF0aXR1ZGUgYXJyYXkgcGFpcnMnKSkpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3IsbnVsbCwnbWlzc2luZyByZXF1aXJlZCBwcm9wZXJ0eSAiY29vcmRpbmF0ZXMiJykpKSxuLmFuaW1hdGUmJiJib29sZWFuIiE9dHlwZW9mIG4uYW5pbWF0ZSYmdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IHQuVmFsaWRhdGlvbkVycm9yKCJzb3VyY2VzLiIrcixudWxsLCdvcHRpb25hbCAiYW5pbWF0ZSIgcHJvcGVydHkgbXVzdCBiZSBhIGJvb2xlYW4gdmFsdWUnKSkpLG4uY2FudmFzPyJzdHJpbmciPT10eXBlb2Ygbi5jYW52YXN8fG4uY2FudmFzIGluc3RhbmNlb2YgdC53aW5kb3cuSFRNTENhbnZhc0VsZW1lbnR8fHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyB0LlZhbGlkYXRpb25FcnJvcigic291cmNlcy4iK3IsbnVsbCwnImNhbnZhcyIgbXVzdCBiZSBlaXRoZXIgYSBzdHJpbmcgcmVwcmVzZW50aW5nIHRoZSBJRCBvZiB0aGUgY2FudmFzIGVsZW1lbnQgZnJvbSB3aGljaCB0byByZWFkLCBvciBhbiBIVE1MQ2FudmFzRWxlbWVudCBpbnN0YW5jZScpKSk6dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IHQuVmFsaWRhdGlvbkVycm9yKCJzb3VyY2VzLiIrcixudWxsLCdtaXNzaW5nIHJlcXVpcmVkIHByb3BlcnR5ICJjYW52YXMiJykpKSx0aGlzLm9wdGlvbnM9bix0aGlzLmFuaW1hdGU9dm9pZCAwPT09bi5hbmltYXRlfHxuLmFuaW1hdGV9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWQ9ZnVuY3Rpb24oKXt0aGlzLl9sb2FkZWQ9ITAsdGhpcy5jYW52YXN8fCh0aGlzLmNhbnZhcz10aGlzLm9wdGlvbnMuY2FudmFzIGluc3RhbmNlb2YgdC53aW5kb3cuSFRNTENhbnZhc0VsZW1lbnQ/dGhpcy5vcHRpb25zLmNhbnZhczp0LndpbmRvdy5kb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0aGlzLm9wdGlvbnMuY2FudmFzKSksdGhpcy53aWR0aD10aGlzLmNhbnZhcy53aWR0aCx0aGlzLmhlaWdodD10aGlzLmNhbnZhcy5oZWlnaHQsdGhpcy5faGFzSW52YWxpZERpbWVuc2lvbnMoKT90aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkNhbnZhcyBkaW1lbnNpb25zIGNhbm5vdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gemVyby4iKSkpOih0aGlzLnBsYXk9ZnVuY3Rpb24oKXt0aGlzLl9wbGF5aW5nPSEwLHRoaXMubWFwLnRyaWdnZXJSZXBhaW50KCl9LHRoaXMucGF1c2U9ZnVuY3Rpb24oKXt0aGlzLl9wbGF5aW5nJiYodGhpcy5wcmVwYXJlKCksdGhpcy5fcGxheWluZz0hMSl9LHRoaXMuX2ZpbmlzaExvYWRpbmcoKSl9LHIucHJvdG90eXBlLmdldENhbnZhcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNhbnZhc30sci5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5tYXA9dCx0aGlzLmxvYWQoKSx0aGlzLmNhbnZhcyYmdGhpcy5hbmltYXRlJiZ0aGlzLnBsYXkoKX0sci5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLnBhdXNlKCl9LHIucHJvdG90eXBlLnByZXBhcmU9ZnVuY3Rpb24oKXt2YXIgZT0hMTtpZih0aGlzLmNhbnZhcy53aWR0aCE9PXRoaXMud2lkdGgmJih0aGlzLndpZHRoPXRoaXMuY2FudmFzLndpZHRoLGU9ITApLHRoaXMuY2FudmFzLmhlaWdodCE9PXRoaXMuaGVpZ2h0JiYodGhpcy5oZWlnaHQ9dGhpcy5jYW52YXMuaGVpZ2h0LGU9ITApLCF0aGlzLl9oYXNJbnZhbGlkRGltZW5zaW9ucygpJiYwIT09T2JqZWN0LmtleXModGhpcy50aWxlcykubGVuZ3RoKXt2YXIgcj10aGlzLm1hcC5wYWludGVyLmNvbnRleHQsbj1yLmdsO2Zvcih2YXIgaSBpbiB0aGlzLmJvdW5kc0J1ZmZlcnx8KHRoaXMuYm91bmRzQnVmZmVyPXIuY3JlYXRlVmVydGV4QnVmZmVyKHRoaXMuX2JvdW5kc0FycmF5LFAubWVtYmVycykpLHRoaXMuYm91bmRzU2VnbWVudHN8fCh0aGlzLmJvdW5kc1NlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpKSx0aGlzLnRleHR1cmU/KGV8fHRoaXMuX3BsYXlpbmcpJiZ0aGlzLnRleHR1cmUudXBkYXRlKHRoaXMuY2FudmFzLHtwcmVtdWx0aXBseTohMH0pOnRoaXMudGV4dHVyZT1uZXcgdC5UZXh0dXJlKHIsdGhpcy5jYW52YXMsbi5SR0JBLHtwcmVtdWx0aXBseTohMH0pLHRoaXMudGlsZXMpe3ZhciBhPXRoaXMudGlsZXNbaV07ImxvYWRlZCIhPT1hLnN0YXRlJiYoYS5zdGF0ZT0ibG9hZGVkIixhLnRleHR1cmU9dGhpcy50ZXh0dXJlKX19fSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm57dHlwZToiY2FudmFzIixjb29yZGluYXRlczp0aGlzLmNvb3JkaW5hdGVzfX0sci5wcm90b3R5cGUuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wbGF5aW5nfSxyLnByb3RvdHlwZS5faGFzSW52YWxpZERpbWVuc2lvbnM9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPVt0aGlzLmNhbnZhcy53aWR0aCx0aGlzLmNhbnZhcy5oZWlnaHRdO3Q8ZS5sZW5ndGg7dCs9MSl7dmFyIHI9ZVt0XTtpZihpc05hTihyKXx8cjw9MClyZXR1cm4hMH1yZXR1cm4hMX0scn0oSSksRD17dmVjdG9yOlMscmFzdGVyOkUsInJhc3Rlci1kZW0iOkwsZ2VvanNvbjpDLHZpZGVvOk8saW1hZ2U6SSxjYW52YXM6en07ZnVuY3Rpb24gUihlLHIpe3ZhciBuPXQuaWRlbnRpdHkoW10pO3JldHVybiB0LnRyYW5zbGF0ZShuLG4sWzEsMSwwXSksdC5zY2FsZShuLG4sWy41KmUud2lkdGgsLjUqZS5oZWlnaHQsMV0pLHQubXVsdGlwbHkobixuLGUuY2FsY3VsYXRlUG9zTWF0cml4KHIudG9VbndyYXBwZWQoKSkpfWZ1bmN0aW9uIEYodCxlLHIsbixpLGEpe3ZhciBvPWZ1bmN0aW9uKHQsZSxyKXtpZih0KWZvcih2YXIgbj0wLGk9dDtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWVbaVtuXV07aWYoYSYmYS5zb3VyY2U9PT1yJiYiZmlsbC1leHRydXNpb24iPT09YS50eXBlKXJldHVybiEwfWVsc2UgZm9yKHZhciBvIGluIGUpe3ZhciBzPWVbb107aWYocy5zb3VyY2U9PT1yJiYiZmlsbC1leHRydXNpb24iPT09cy50eXBlKXJldHVybiEwfXJldHVybiExfShpJiZpLmxheWVycyxlLHQuaWQpLHM9YS5tYXhQaXRjaFNjYWxlRmFjdG9yKCksbD10LnRpbGVzSW4obixzLG8pO2wuc29ydChCKTtmb3IodmFyIGM9W10sdT0wLGY9bDt1PGYubGVuZ3RoO3UrPTEpe3ZhciBoPWZbdV07Yy5wdXNoKHt3cmFwcGVkVGlsZUlEOmgudGlsZUlELndyYXBwZWQoKS5rZXkscXVlcnlSZXN1bHRzOmgudGlsZS5xdWVyeVJlbmRlcmVkRmVhdHVyZXMoZSxyLHQuX3N0YXRlLGgucXVlcnlHZW9tZXRyeSxoLmNhbWVyYVF1ZXJ5R2VvbWV0cnksaC5zY2FsZSxpLGEscyxSKHQudHJhbnNmb3JtLGgudGlsZUlEKSl9KX12YXIgcD1mdW5jdGlvbih0KXtmb3IodmFyIGU9e30scj17fSxuPTAsaT10O248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXSxvPWEucXVlcnlSZXN1bHRzLHM9YS53cmFwcGVkVGlsZUlELGw9cltzXT1yW3NdfHx7fTtmb3IodmFyIGMgaW4gbylmb3IodmFyIHU9b1tjXSxmPWxbY109bFtjXXx8e30saD1lW2NdPWVbY118fFtdLHA9MCxkPXU7cDxkLmxlbmd0aDtwKz0xKXt2YXIgbT1kW3BdO2ZbbS5mZWF0dXJlSW5kZXhdfHwoZlttLmZlYXR1cmVJbmRleF09ITAsaC5wdXNoKG0pKX19cmV0dXJuIGV9KGMpO2Zvcih2YXIgZCBpbiBwKXBbZF0uZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9ZS5mZWF0dXJlLG49dC5nZXRGZWF0dXJlU3RhdGUoci5sYXllclsic291cmNlLWxheWVyIl0sci5pZCk7ci5zb3VyY2U9ci5sYXllci5zb3VyY2Usci5sYXllclsic291cmNlLWxheWVyIl0mJihyLnNvdXJjZUxheWVyPXIubGF5ZXJbInNvdXJjZS1sYXllciJdKSxyLnN0YXRlPW59KSk7cmV0dXJuIHB9ZnVuY3Rpb24gQih0LGUpe3ZhciByPXQudGlsZUlELG49ZS50aWxlSUQ7cmV0dXJuIHIub3ZlcnNjYWxlZFotbi5vdmVyc2NhbGVkWnx8ci5jYW5vbmljYWwueS1uLmNhbm9uaWNhbC55fHxyLndyYXAtbi53cmFwfHxyLmNhbm9uaWNhbC54LW4uY2Fub25pY2FsLnh9dmFyIE49ZnVuY3Rpb24odCxlKXt0aGlzLm1heD10LHRoaXMub25SZW1vdmU9ZSx0aGlzLnJlc2V0KCl9O04ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuZGF0YSlmb3IodmFyIGU9MCxyPXRoaXMuZGF0YVt0XTtlPHIubGVuZ3RoO2UrPTEpe3ZhciBuPXJbZV07bi50aW1lb3V0JiZjbGVhclRpbWVvdXQobi50aW1lb3V0KSx0aGlzLm9uUmVtb3ZlKG4udmFsdWUpfXJldHVybiB0aGlzLmRhdGE9e30sdGhpcy5vcmRlcj1bXSx0aGlzfSxOLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsaT10LndyYXBwZWQoKS5rZXk7dm9pZCAwPT09dGhpcy5kYXRhW2ldJiYodGhpcy5kYXRhW2ldPVtdKTt2YXIgYT17dmFsdWU6ZSx0aW1lb3V0OnZvaWQgMH07aWYodm9pZCAwIT09ciYmKGEudGltZW91dD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe24ucmVtb3ZlKHQsYSl9KSxyKSksdGhpcy5kYXRhW2ldLnB1c2goYSksdGhpcy5vcmRlci5wdXNoKGkpLHRoaXMub3JkZXIubGVuZ3RoPnRoaXMubWF4KXt2YXIgbz10aGlzLl9nZXRBbmRSZW1vdmVCeUtleSh0aGlzLm9yZGVyWzBdKTtvJiZ0aGlzLm9uUmVtb3ZlKG8pfXJldHVybiB0aGlzfSxOLnByb3RvdHlwZS5oYXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQud3JhcHBlZCgpLmtleSBpbiB0aGlzLmRhdGF9LE4ucHJvdG90eXBlLmdldEFuZFJlbW92ZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXModCk/dGhpcy5fZ2V0QW5kUmVtb3ZlQnlLZXkodC53cmFwcGVkKCkua2V5KTpudWxsfSxOLnByb3RvdHlwZS5fZ2V0QW5kUmVtb3ZlQnlLZXk9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5kYXRhW3RdLnNoaWZ0KCk7cmV0dXJuIGUudGltZW91dCYmY2xlYXJUaW1lb3V0KGUudGltZW91dCksMD09PXRoaXMuZGF0YVt0XS5sZW5ndGgmJmRlbGV0ZSB0aGlzLmRhdGFbdF0sdGhpcy5vcmRlci5zcGxpY2UodGhpcy5vcmRlci5pbmRleE9mKHQpLDEpLGUudmFsdWV9LE4ucHJvdG90eXBlLmdldEJ5S2V5PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGF0YVt0XTtyZXR1cm4gZT9lWzBdLnZhbHVlOm51bGx9LE4ucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5oYXModCk/dGhpcy5kYXRhW3Qud3JhcHBlZCgpLmtleV1bMF0udmFsdWU6bnVsbH0sTi5wcm90b3R5cGUucmVtb3ZlPWZ1bmN0aW9uKHQsZSl7aWYoIXRoaXMuaGFzKHQpKXJldHVybiB0aGlzO3ZhciByPXQud3JhcHBlZCgpLmtleSxuPXZvaWQgMD09PWU/MDp0aGlzLmRhdGFbcl0uaW5kZXhPZihlKSxpPXRoaXMuZGF0YVtyXVtuXTtyZXR1cm4gdGhpcy5kYXRhW3JdLnNwbGljZShuLDEpLGkudGltZW91dCYmY2xlYXJUaW1lb3V0KGkudGltZW91dCksMD09PXRoaXMuZGF0YVtyXS5sZW5ndGgmJmRlbGV0ZSB0aGlzLmRhdGFbcl0sdGhpcy5vblJlbW92ZShpLnZhbHVlKSx0aGlzLm9yZGVyLnNwbGljZSh0aGlzLm9yZGVyLmluZGV4T2YociksMSksdGhpc30sTi5wcm90b3R5cGUuc2V0TWF4U2l6ZT1mdW5jdGlvbih0KXtmb3IodGhpcy5tYXg9dDt0aGlzLm9yZGVyLmxlbmd0aD50aGlzLm1heDspe3ZhciBlPXRoaXMuX2dldEFuZFJlbW92ZUJ5S2V5KHRoaXMub3JkZXJbMF0pO2UmJnRoaXMub25SZW1vdmUoZSl9cmV0dXJuIHRoaXN9LE4ucHJvdG90eXBlLmZpbHRlcj1mdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdGhpcy5kYXRhKWZvcih2YXIgbj0wLGk9dGhpcy5kYXRhW3JdO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTt0KGEudmFsdWUpfHxlLnB1c2goYSl9Zm9yKHZhciBvPTAscz1lO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTt0aGlzLnJlbW92ZShsLnZhbHVlLnRpbGVJRCxsKX19O3ZhciBqPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmNvbnRleHQ9dDt2YXIgbj10LmdsO3RoaXMuYnVmZmVyPW4uY3JlYXRlQnVmZmVyKCksdGhpcy5keW5hbWljRHJhdz1Cb29sZWFuKHIpLHRoaXMuY29udGV4dC51bmJpbmRWQU8oKSx0LmJpbmRFbGVtZW50QnVmZmVyLnNldCh0aGlzLmJ1ZmZlciksbi5idWZmZXJEYXRhKG4uRUxFTUVOVF9BUlJBWV9CVUZGRVIsZS5hcnJheUJ1ZmZlcix0aGlzLmR5bmFtaWNEcmF3P24uRFlOQU1JQ19EUkFXOm4uU1RBVElDX0RSQVcpLHRoaXMuZHluYW1pY0RyYXd8fGRlbGV0ZSBlLmFycmF5QnVmZmVyfTtqLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0LmJpbmRFbGVtZW50QnVmZmVyLnNldCh0aGlzLmJ1ZmZlcil9LGoucHJvdG90eXBlLnVwZGF0ZURhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250ZXh0LmdsO3RoaXMuY29udGV4dC51bmJpbmRWQU8oKSx0aGlzLmJpbmQoKSxlLmJ1ZmZlclN1YkRhdGEoZS5FTEVNRU5UX0FSUkFZX0JVRkZFUiwwLHQuYXJyYXlCdWZmZXIpfSxqLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0LmdsO3RoaXMuYnVmZmVyJiYodC5kZWxldGVCdWZmZXIodGhpcy5idWZmZXIpLGRlbGV0ZSB0aGlzLmJ1ZmZlcil9O3ZhciBVPXtJbnQ4OiJCWVRFIixVaW50ODoiVU5TSUdORURfQllURSIsSW50MTY6IlNIT1JUIixVaW50MTY6IlVOU0lHTkVEX1NIT1JUIixJbnQzMjoiSU5UIixVaW50MzI6IlVOU0lHTkVEX0lOVCIsRmxvYXQzMjoiRkxPQVQifSxWPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMubGVuZ3RoPWUubGVuZ3RoLHRoaXMuYXR0cmlidXRlcz1yLHRoaXMuaXRlbVNpemU9ZS5ieXRlc1BlckVsZW1lbnQsdGhpcy5keW5hbWljRHJhdz1uLHRoaXMuY29udGV4dD10O3ZhciBpPXQuZ2w7dGhpcy5idWZmZXI9aS5jcmVhdGVCdWZmZXIoKSx0LmJpbmRWZXJ0ZXhCdWZmZXIuc2V0KHRoaXMuYnVmZmVyKSxpLmJ1ZmZlckRhdGEoaS5BUlJBWV9CVUZGRVIsZS5hcnJheUJ1ZmZlcix0aGlzLmR5bmFtaWNEcmF3P2kuRFlOQU1JQ19EUkFXOmkuU1RBVElDX0RSQVcpLHRoaXMuZHluYW1pY0RyYXd8fGRlbGV0ZSBlLmFycmF5QnVmZmVyfTtWLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0LmJpbmRWZXJ0ZXhCdWZmZXIuc2V0KHRoaXMuYnVmZmVyKX0sVi5wcm90b3R5cGUudXBkYXRlRGF0YT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmNvbnRleHQuZ2w7dGhpcy5iaW5kKCksZS5idWZmZXJTdWJEYXRhKGUuQVJSQVlfQlVGRkVSLDAsdC5hcnJheUJ1ZmZlcil9LFYucHJvdG90eXBlLmVuYWJsZUF0dHJpYnV0ZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPHRoaXMuYXR0cmlidXRlcy5sZW5ndGg7cisrKXt2YXIgbj10aGlzLmF0dHJpYnV0ZXNbcl0saT1lLmF0dHJpYnV0ZXNbbi5uYW1lXTt2b2lkIDAhPT1pJiZ0LmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KGkpfX0sVi5wcm90b3R5cGUuc2V0VmVydGV4QXR0cmliUG9pbnRlcnM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248dGhpcy5hdHRyaWJ1dGVzLmxlbmd0aDtuKyspe3ZhciBpPXRoaXMuYXR0cmlidXRlc1tuXSxhPWUuYXR0cmlidXRlc1tpLm5hbWVdO3ZvaWQgMCE9PWEmJnQudmVydGV4QXR0cmliUG9pbnRlcihhLGkuY29tcG9uZW50cyx0W1VbaS50eXBlXV0sITEsdGhpcy5pdGVtU2l6ZSxpLm9mZnNldCt0aGlzLml0ZW1TaXplKihyfHwwKSl9fSxWLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0LmdsO3RoaXMuYnVmZmVyJiYodC5kZWxldGVCdWZmZXIodGhpcy5idWZmZXIpLGRlbGV0ZSB0aGlzLmJ1ZmZlcil9O3ZhciBIPWZ1bmN0aW9uKHQpe3RoaXMuZ2w9dC5nbCx0aGlzLmRlZmF1bHQ9dGhpcy5nZXREZWZhdWx0KCksdGhpcy5jdXJyZW50PXRoaXMuZGVmYXVsdCx0aGlzLmRpcnR5PSExfTtILnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5jdXJyZW50fSxILnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7fSxILnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZGVmYXVsdH0sSC5wcm90b3R5cGUuc2V0RGVmYXVsdD1mdW5jdGlvbigpe3RoaXMuc2V0KHRoaXMuZGVmYXVsdCl9O3ZhciBxPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIoKXtlLmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB0LkNvbG9yLnRyYW5zcGFyZW50fSxyLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0LnIhPT1lLnJ8fHQuZyE9PWUuZ3x8dC5iIT09ZS5ifHx0LmEhPT1lLmF8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5jbGVhckNvbG9yKHQucix0LmcsdC5iLHQuYSksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LHJ9KEgpLEc9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIDF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmNsZWFyRGVwdGgodCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLFk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIDB9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmNsZWFyU3RlbmNpbCh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksVz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm5bITAsITAsITAsITBdfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0WzBdIT09ZVswXXx8dFsxXSE9PWVbMV18fHRbMl0hPT1lWzJdfHx0WzNdIT09ZVszXXx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmNvbG9yTWFzayh0WzBdLHRbMV0sdFsyXSx0WzNdKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksWD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuZGVwdGhNYXNrKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShIKSxaPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiAyNTV9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLnN0ZW5jaWxNYXNrKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShIKSxKPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybntmdW5jOnRoaXMuZ2wuQUxXQVlTLHJlZjowLG1hc2s6MjU1fX0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuY3VycmVudDsodC5mdW5jIT09ZS5mdW5jfHx0LnJlZiE9PWUucmVmfHx0Lm1hc2shPT1lLm1hc2t8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5zdGVuY2lsRnVuYyh0LmZ1bmMsdC5yZWYsdC5tYXNrKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksSz1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3JldHVyblt0LktFRVAsdC5LRUVQLHQuS0VFUF19LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXXx8dFsyXSE9PWVbMl18fHRoaXMuZGlydHkpJiYodGhpcy5nbC5zdGVuY2lsT3AodFswXSx0WzFdLHRbMl0pLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShIKSxRPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDt0P2UuZW5hYmxlKGUuU1RFTkNJTF9URVNUKTplLmRpc2FibGUoZS5TVEVOQ0lMX1RFU1QpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSwkPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVyblswLDFdfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0WzBdIT09ZVswXXx8dFsxXSE9PWVbMV18fHRoaXMuZGlydHkpJiYodGhpcy5nbC5kZXB0aFJhbmdlKHRbMF0sdFsxXSksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLHR0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDt0P2UuZW5hYmxlKGUuREVQVEhfVEVTVCk6ZS5kaXNhYmxlKGUuREVQVEhfVEVTVCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KEgpLGV0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdsLkxFU1N9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmRlcHRoRnVuYyh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCkscnQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO3Q/ZS5lbmFibGUoZS5CTEVORCk6ZS5kaXNhYmxlKGUuQkxFTkQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSxudD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmdsO3JldHVyblt0Lk9ORSx0LlpFUk9dfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jdXJyZW50Oyh0WzBdIT09ZVswXXx8dFsxXSE9PWVbMV18fHRoaXMuZGlydHkpJiYodGhpcy5nbC5ibGVuZEZ1bmModFswXSx0WzFdKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksaXQ9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcigpe2UuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiBlJiYoci5fX3Byb3RvX189ZSksci5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHQuQ29sb3IudHJhbnNwYXJlbnR9LHIucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHQuciE9PWUucnx8dC5nIT09ZS5nfHx0LmIhPT1lLmJ8fHQuYSE9PWUuYXx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmJsZW5kQ29sb3IodC5yLHQuZyx0LmIsdC5hKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0scn0oSCksYXQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2wuRlVOQ19BRER9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXsodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLmdsLmJsZW5kRXF1YXRpb24odCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLG90PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDt0P2UuZW5hYmxlKGUuQ1VMTF9GQUNFKTplLmRpc2FibGUoZS5DVUxMX0ZBQ0UpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSxzdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nbC5CQUNLfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7KHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5jdWxsRmFjZSh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksbHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2wuQ0NXfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7KHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpJiYodGhpcy5nbC5mcm9udEZhY2UodCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLGN0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7KHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpJiYodGhpcy5nbC51c2VQcm9ncmFtKHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITEpfSxlfShIKSx1dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5nbC5URVhUVVJFMH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpeyh0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wuYWN0aXZlVGV4dHVyZSh0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExKX0sZX0oSCksZnQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5nbDtyZXR1cm5bMCwwLHQuZHJhd2luZ0J1ZmZlcldpZHRoLHQuZHJhd2luZ0J1ZmZlckhlaWdodF19LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLmN1cnJlbnQ7KHRbMF0hPT1lWzBdfHx0WzFdIT09ZVsxXXx8dFsyXSE9PWVbMl18fHRbM10hPT1lWzNdfHx0aGlzLmRpcnR5KSYmKHRoaXMuZ2wudmlld3BvcnQodFswXSx0WzFdLHRbMl0sdFszXSksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLGh0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLmJpbmRGcmFtZWJ1ZmZlcihlLkZSQU1FQlVGRkVSLHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSxwdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3ZhciBlPXRoaXMuZ2w7ZS5iaW5kUmVuZGVyYnVmZmVyKGUuUkVOREVSQlVGRkVSLHQpLHRoaXMuY3VycmVudD10LHRoaXMuZGlydHk9ITF9fSxlfShIKSxkdD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3ZhciBlPXRoaXMuZ2w7ZS5iaW5kVGV4dHVyZShlLlRFWFRVUkVfMkQsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KEgpLG10PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLmJpbmRCdWZmZXIoZS5BUlJBWV9CVUZGRVIsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KEgpLGd0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiBudWxsfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5nbDtlLmJpbmRCdWZmZXIoZS5FTEVNRU5UX0FSUkFZX0JVRkZFUix0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfSxlfShIKSx2dD1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUpe3QuY2FsbCh0aGlzLGUpLHRoaXMudmFvPWUuZXh0VmVydGV4QXJyYXlPYmplY3R9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe3RoaXMudmFvJiYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSkmJih0aGlzLnZhby5iaW5kVmVydGV4QXJyYXlPRVModCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMSl9LGV9KEgpLHl0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiA0fSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLnBpeGVsU3RvcmVpKGUuVU5QQUNLX0FMSUdOTUVOVCx0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0oSCkseHQ9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5nZXREZWZhdWx0PWZ1bmN0aW9uKCl7cmV0dXJuITF9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt2YXIgZT10aGlzLmdsO2UucGl4ZWxTdG9yZWkoZS5VTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KEgpLGJ0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuZ2V0RGVmYXVsdD1mdW5jdGlvbigpe3JldHVybiExfSxlLnByb3RvdHlwZS5zZXQ9ZnVuY3Rpb24odCl7aWYodCE9PXRoaXMuY3VycmVudHx8dGhpcy5kaXJ0eSl7dmFyIGU9dGhpcy5nbDtlLnBpeGVsU3RvcmVpKGUuVU5QQUNLX0ZMSVBfWV9XRUJHTCx0KSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0oSCksX3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLHIpe3QuY2FsbCh0aGlzLGUpLHRoaXMuY29udGV4dD1lLHRoaXMucGFyZW50PXJ9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLmdldERlZmF1bHQ9ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0sZX0oSCksd3Q9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5zZXREaXJ0eT1mdW5jdGlvbigpe3RoaXMuZGlydHk9ITB9LGUucHJvdG90eXBlLnNldD1mdW5jdGlvbih0KXtpZih0IT09dGhpcy5jdXJyZW50fHx0aGlzLmRpcnR5KXt0aGlzLmNvbnRleHQuYmluZEZyYW1lYnVmZmVyLnNldCh0aGlzLnBhcmVudCk7dmFyIGU9dGhpcy5nbDtlLmZyYW1lYnVmZmVyVGV4dHVyZTJEKGUuRlJBTUVCVUZGRVIsZS5DT0xPUl9BVFRBQ0hNRU5UMCxlLlRFWFRVUkVfMkQsdCwwKSx0aGlzLmN1cnJlbnQ9dCx0aGlzLmRpcnR5PSExfX0sZX0oX3QpLFR0PWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuc2V0PWZ1bmN0aW9uKHQpe2lmKHQhPT10aGlzLmN1cnJlbnR8fHRoaXMuZGlydHkpe3RoaXMuY29udGV4dC5iaW5kRnJhbWVidWZmZXIuc2V0KHRoaXMucGFyZW50KTt2YXIgZT10aGlzLmdsO2UuZnJhbWVidWZmZXJSZW5kZXJidWZmZXIoZS5GUkFNRUJVRkZFUixlLkRFUFRIX0FUVEFDSE1FTlQsZS5SRU5ERVJCVUZGRVIsdCksdGhpcy5jdXJyZW50PXQsdGhpcy5kaXJ0eT0hMX19LGV9KF90KSxrdD1mdW5jdGlvbih0LGUscixuKXt0aGlzLmNvbnRleHQ9dCx0aGlzLndpZHRoPWUsdGhpcy5oZWlnaHQ9cjt2YXIgaT10LmdsLGE9dGhpcy5mcmFtZWJ1ZmZlcj1pLmNyZWF0ZUZyYW1lYnVmZmVyKCk7dGhpcy5jb2xvckF0dGFjaG1lbnQ9bmV3IHd0KHQsYSksbiYmKHRoaXMuZGVwdGhBdHRhY2htZW50PW5ldyBUdCh0LGEpKX07a3QucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNvbnRleHQuZ2wsZT10aGlzLmNvbG9yQXR0YWNobWVudC5nZXQoKTtpZihlJiZ0LmRlbGV0ZVRleHR1cmUoZSksdGhpcy5kZXB0aEF0dGFjaG1lbnQpe3ZhciByPXRoaXMuZGVwdGhBdHRhY2htZW50LmdldCgpO3ImJnQuZGVsZXRlUmVuZGVyYnVmZmVyKHIpfXQuZGVsZXRlRnJhbWVidWZmZXIodGhpcy5mcmFtZWJ1ZmZlcil9O3ZhciBBdD1mdW5jdGlvbih0LGUscil7dGhpcy5mdW5jPXQsdGhpcy5tYXNrPWUsdGhpcy5yYW5nZT1yfTtBdC5SZWFkT25seT0hMSxBdC5SZWFkV3JpdGU9ITAsQXQuZGlzYWJsZWQ9bmV3IEF0KDUxOSxBdC5SZWFkT25seSxbMCwxXSk7dmFyIE10PWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLnRlc3Q9dCx0aGlzLnJlZj1lLHRoaXMubWFzaz1yLHRoaXMuZmFpbD1uLHRoaXMuZGVwdGhGYWlsPWksdGhpcy5wYXNzPWF9O010LmRpc2FibGVkPW5ldyBNdCh7ZnVuYzo1MTksbWFzazowfSwwLDAsNzY4MCw3NjgwLDc2ODApO3ZhciBTdD1mdW5jdGlvbih0LGUscil7dGhpcy5ibGVuZEZ1bmN0aW9uPXQsdGhpcy5ibGVuZENvbG9yPWUsdGhpcy5tYXNrPXJ9O1N0LmRpc2FibGVkPW5ldyBTdChTdC5SZXBsYWNlPVsxLDBdLHQuQ29sb3IudHJhbnNwYXJlbnQsWyExLCExLCExLCExXSksU3QudW5ibGVuZGVkPW5ldyBTdChTdC5SZXBsYWNlLHQuQ29sb3IudHJhbnNwYXJlbnQsWyEwLCEwLCEwLCEwXSksU3QuYWxwaGFCbGVuZGVkPW5ldyBTdChbMSw3NzFdLHQuQ29sb3IudHJhbnNwYXJlbnQsWyEwLCEwLCEwLCEwXSk7dmFyIEV0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLmVuYWJsZT10LHRoaXMubW9kZT1lLHRoaXMuZnJvbnRGYWNlPXJ9O0V0LmRpc2FibGVkPW5ldyBFdCghMSwxMDI5LDIzMDUpLEV0LmJhY2tDQ1c9bmV3IEV0KCEwLDEwMjksMjMwNSk7dmFyIEx0PWZ1bmN0aW9uKHQpe3RoaXMuZ2w9dCx0aGlzLmV4dFZlcnRleEFycmF5T2JqZWN0PXRoaXMuZ2wuZ2V0RXh0ZW5zaW9uKCJPRVNfdmVydGV4X2FycmF5X29iamVjdCIpLHRoaXMuY2xlYXJDb2xvcj1uZXcgcSh0aGlzKSx0aGlzLmNsZWFyRGVwdGg9bmV3IEcodGhpcyksdGhpcy5jbGVhclN0ZW5jaWw9bmV3IFkodGhpcyksdGhpcy5jb2xvck1hc2s9bmV3IFcodGhpcyksdGhpcy5kZXB0aE1hc2s9bmV3IFgodGhpcyksdGhpcy5zdGVuY2lsTWFzaz1uZXcgWih0aGlzKSx0aGlzLnN0ZW5jaWxGdW5jPW5ldyBKKHRoaXMpLHRoaXMuc3RlbmNpbE9wPW5ldyBLKHRoaXMpLHRoaXMuc3RlbmNpbFRlc3Q9bmV3IFEodGhpcyksdGhpcy5kZXB0aFJhbmdlPW5ldyAkKHRoaXMpLHRoaXMuZGVwdGhUZXN0PW5ldyB0dCh0aGlzKSx0aGlzLmRlcHRoRnVuYz1uZXcgZXQodGhpcyksdGhpcy5ibGVuZD1uZXcgcnQodGhpcyksdGhpcy5ibGVuZEZ1bmM9bmV3IG50KHRoaXMpLHRoaXMuYmxlbmRDb2xvcj1uZXcgaXQodGhpcyksdGhpcy5ibGVuZEVxdWF0aW9uPW5ldyBhdCh0aGlzKSx0aGlzLmN1bGxGYWNlPW5ldyBvdCh0aGlzKSx0aGlzLmN1bGxGYWNlU2lkZT1uZXcgc3QodGhpcyksdGhpcy5mcm9udEZhY2U9bmV3IGx0KHRoaXMpLHRoaXMucHJvZ3JhbT1uZXcgY3QodGhpcyksdGhpcy5hY3RpdmVUZXh0dXJlPW5ldyB1dCh0aGlzKSx0aGlzLnZpZXdwb3J0PW5ldyBmdCh0aGlzKSx0aGlzLmJpbmRGcmFtZWJ1ZmZlcj1uZXcgaHQodGhpcyksdGhpcy5iaW5kUmVuZGVyYnVmZmVyPW5ldyBwdCh0aGlzKSx0aGlzLmJpbmRUZXh0dXJlPW5ldyBkdCh0aGlzKSx0aGlzLmJpbmRWZXJ0ZXhCdWZmZXI9bmV3IG10KHRoaXMpLHRoaXMuYmluZEVsZW1lbnRCdWZmZXI9bmV3IGd0KHRoaXMpLHRoaXMuYmluZFZlcnRleEFycmF5T0VTPXRoaXMuZXh0VmVydGV4QXJyYXlPYmplY3QmJm5ldyB2dCh0aGlzKSx0aGlzLnBpeGVsU3RvcmVVbnBhY2s9bmV3IHl0KHRoaXMpLHRoaXMucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGE9bmV3IHh0KHRoaXMpLHRoaXMucGl4ZWxTdG9yZVVucGFja0ZsaXBZPW5ldyBidCh0aGlzKSx0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYz10LmdldEV4dGVuc2lvbigiRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJNT1pfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIil8fHQuZ2V0RXh0ZW5zaW9uKCJXRUJLSVRfRVhUX3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljIiksdGhpcy5leHRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMmJih0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpY01heD10LmdldFBhcmFtZXRlcih0aGlzLmV4dFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5NQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQpKSx0aGlzLmV4dFRleHR1cmVIYWxmRmxvYXQ9dC5nZXRFeHRlbnNpb24oIk9FU190ZXh0dXJlX2hhbGZfZmxvYXQiKSx0aGlzLmV4dFRleHR1cmVIYWxmRmxvYXQmJih0LmdldEV4dGVuc2lvbigiT0VTX3RleHR1cmVfaGFsZl9mbG9hdF9saW5lYXIiKSx0aGlzLmV4dFJlbmRlclRvVGV4dHVyZUhhbGZGbG9hdD10LmdldEV4dGVuc2lvbigiRVhUX2NvbG9yX2J1ZmZlcl9oYWxmX2Zsb2F0IikpLHRoaXMuZXh0VGltZXJRdWVyeT10LmdldEV4dGVuc2lvbigiRVhUX2Rpc2pvaW50X3RpbWVyX3F1ZXJ5Iil9O0x0LnByb3RvdHlwZS5zZXREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy51bmJpbmRWQU8oKSx0aGlzLmNsZWFyQ29sb3Iuc2V0RGVmYXVsdCgpLHRoaXMuY2xlYXJEZXB0aC5zZXREZWZhdWx0KCksdGhpcy5jbGVhclN0ZW5jaWwuc2V0RGVmYXVsdCgpLHRoaXMuY29sb3JNYXNrLnNldERlZmF1bHQoKSx0aGlzLmRlcHRoTWFzay5zZXREZWZhdWx0KCksdGhpcy5zdGVuY2lsTWFzay5zZXREZWZhdWx0KCksdGhpcy5zdGVuY2lsRnVuYy5zZXREZWZhdWx0KCksdGhpcy5zdGVuY2lsT3Auc2V0RGVmYXVsdCgpLHRoaXMuc3RlbmNpbFRlc3Quc2V0RGVmYXVsdCgpLHRoaXMuZGVwdGhSYW5nZS5zZXREZWZhdWx0KCksdGhpcy5kZXB0aFRlc3Quc2V0RGVmYXVsdCgpLHRoaXMuZGVwdGhGdW5jLnNldERlZmF1bHQoKSx0aGlzLmJsZW5kLnNldERlZmF1bHQoKSx0aGlzLmJsZW5kRnVuYy5zZXREZWZhdWx0KCksdGhpcy5ibGVuZENvbG9yLnNldERlZmF1bHQoKSx0aGlzLmJsZW5kRXF1YXRpb24uc2V0RGVmYXVsdCgpLHRoaXMuY3VsbEZhY2Uuc2V0RGVmYXVsdCgpLHRoaXMuY3VsbEZhY2VTaWRlLnNldERlZmF1bHQoKSx0aGlzLmZyb250RmFjZS5zZXREZWZhdWx0KCksdGhpcy5wcm9ncmFtLnNldERlZmF1bHQoKSx0aGlzLmFjdGl2ZVRleHR1cmUuc2V0RGVmYXVsdCgpLHRoaXMuYmluZEZyYW1lYnVmZmVyLnNldERlZmF1bHQoKSx0aGlzLnBpeGVsU3RvcmVVbnBhY2suc2V0RGVmYXVsdCgpLHRoaXMucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGEuc2V0RGVmYXVsdCgpLHRoaXMucGl4ZWxTdG9yZVVucGFja0ZsaXBZLnNldERlZmF1bHQoKX0sTHQucHJvdG90eXBlLnNldERpcnR5PWZ1bmN0aW9uKCl7dGhpcy5jbGVhckNvbG9yLmRpcnR5PSEwLHRoaXMuY2xlYXJEZXB0aC5kaXJ0eT0hMCx0aGlzLmNsZWFyU3RlbmNpbC5kaXJ0eT0hMCx0aGlzLmNvbG9yTWFzay5kaXJ0eT0hMCx0aGlzLmRlcHRoTWFzay5kaXJ0eT0hMCx0aGlzLnN0ZW5jaWxNYXNrLmRpcnR5PSEwLHRoaXMuc3RlbmNpbEZ1bmMuZGlydHk9ITAsdGhpcy5zdGVuY2lsT3AuZGlydHk9ITAsdGhpcy5zdGVuY2lsVGVzdC5kaXJ0eT0hMCx0aGlzLmRlcHRoUmFuZ2UuZGlydHk9ITAsdGhpcy5kZXB0aFRlc3QuZGlydHk9ITAsdGhpcy5kZXB0aEZ1bmMuZGlydHk9ITAsdGhpcy5ibGVuZC5kaXJ0eT0hMCx0aGlzLmJsZW5kRnVuYy5kaXJ0eT0hMCx0aGlzLmJsZW5kQ29sb3IuZGlydHk9ITAsdGhpcy5ibGVuZEVxdWF0aW9uLmRpcnR5PSEwLHRoaXMuY3VsbEZhY2UuZGlydHk9ITAsdGhpcy5jdWxsRmFjZVNpZGUuZGlydHk9ITAsdGhpcy5mcm9udEZhY2UuZGlydHk9ITAsdGhpcy5wcm9ncmFtLmRpcnR5PSEwLHRoaXMuYWN0aXZlVGV4dHVyZS5kaXJ0eT0hMCx0aGlzLnZpZXdwb3J0LmRpcnR5PSEwLHRoaXMuYmluZEZyYW1lYnVmZmVyLmRpcnR5PSEwLHRoaXMuYmluZFJlbmRlcmJ1ZmZlci5kaXJ0eT0hMCx0aGlzLmJpbmRUZXh0dXJlLmRpcnR5PSEwLHRoaXMuYmluZFZlcnRleEJ1ZmZlci5kaXJ0eT0hMCx0aGlzLmJpbmRFbGVtZW50QnVmZmVyLmRpcnR5PSEwLHRoaXMuZXh0VmVydGV4QXJyYXlPYmplY3QmJih0aGlzLmJpbmRWZXJ0ZXhBcnJheU9FUy5kaXJ0eT0hMCksdGhpcy5waXhlbFN0b3JlVW5wYWNrLmRpcnR5PSEwLHRoaXMucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGEuZGlydHk9ITAsdGhpcy5waXhlbFN0b3JlVW5wYWNrRmxpcFkuZGlydHk9ITB9LEx0LnByb3RvdHlwZS5jcmVhdGVJbmRleEJ1ZmZlcj1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgaih0aGlzLHQsZSl9LEx0LnByb3RvdHlwZS5jcmVhdGVWZXJ0ZXhCdWZmZXI9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBuZXcgVih0aGlzLHQsZSxyKX0sTHQucHJvdG90eXBlLmNyZWF0ZVJlbmRlcmJ1ZmZlcj1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5nbCxpPW4uY3JlYXRlUmVuZGVyYnVmZmVyKCk7cmV0dXJuIHRoaXMuYmluZFJlbmRlcmJ1ZmZlci5zZXQoaSksbi5yZW5kZXJidWZmZXJTdG9yYWdlKG4uUkVOREVSQlVGRkVSLHQsZSxyKSx0aGlzLmJpbmRSZW5kZXJidWZmZXIuc2V0KG51bGwpLGl9LEx0LnByb3RvdHlwZS5jcmVhdGVGcmFtZWJ1ZmZlcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIG5ldyBrdCh0aGlzLHQsZSxyKX0sTHQucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29sb3Iscj10LmRlcHRoLG49dGhpcy5nbCxpPTA7ZSYmKGl8PW4uQ09MT1JfQlVGRkVSX0JJVCx0aGlzLmNsZWFyQ29sb3Iuc2V0KGUpLHRoaXMuY29sb3JNYXNrLnNldChbITAsITAsITAsITBdKSksdm9pZCAwIT09ciYmKGl8PW4uREVQVEhfQlVGRkVSX0JJVCx0aGlzLmRlcHRoUmFuZ2Uuc2V0KFswLDFdKSx0aGlzLmNsZWFyRGVwdGguc2V0KHIpLHRoaXMuZGVwdGhNYXNrLnNldCghMCkpLG4uY2xlYXIoaSl9LEx0LnByb3RvdHlwZS5zZXRDdWxsRmFjZT1mdW5jdGlvbih0KXshMT09PXQuZW5hYmxlP3RoaXMuY3VsbEZhY2Uuc2V0KCExKToodGhpcy5jdWxsRmFjZS5zZXQoITApLHRoaXMuY3VsbEZhY2VTaWRlLnNldCh0Lm1vZGUpLHRoaXMuZnJvbnRGYWNlLnNldCh0LmZyb250RmFjZSkpfSxMdC5wcm90b3R5cGUuc2V0RGVwdGhNb2RlPWZ1bmN0aW9uKHQpe3QuZnVuYyE9PXRoaXMuZ2wuQUxXQVlTfHx0Lm1hc2s/KHRoaXMuZGVwdGhUZXN0LnNldCghMCksdGhpcy5kZXB0aEZ1bmMuc2V0KHQuZnVuYyksdGhpcy5kZXB0aE1hc2suc2V0KHQubWFzayksdGhpcy5kZXB0aFJhbmdlLnNldCh0LnJhbmdlKSk6dGhpcy5kZXB0aFRlc3Quc2V0KCExKX0sTHQucHJvdG90eXBlLnNldFN0ZW5jaWxNb2RlPWZ1bmN0aW9uKHQpe3QudGVzdC5mdW5jIT09dGhpcy5nbC5BTFdBWVN8fHQubWFzaz8odGhpcy5zdGVuY2lsVGVzdC5zZXQoITApLHRoaXMuc3RlbmNpbE1hc2suc2V0KHQubWFzayksdGhpcy5zdGVuY2lsT3Auc2V0KFt0LmZhaWwsdC5kZXB0aEZhaWwsdC5wYXNzXSksdGhpcy5zdGVuY2lsRnVuYy5zZXQoe2Z1bmM6dC50ZXN0LmZ1bmMscmVmOnQucmVmLG1hc2s6dC50ZXN0Lm1hc2t9KSk6dGhpcy5zdGVuY2lsVGVzdC5zZXQoITEpfSxMdC5wcm90b3R5cGUuc2V0Q29sb3JNb2RlPWZ1bmN0aW9uKGUpe3QuZGVlcEVxdWFsKGUuYmxlbmRGdW5jdGlvbixTdC5SZXBsYWNlKT90aGlzLmJsZW5kLnNldCghMSk6KHRoaXMuYmxlbmQuc2V0KCEwKSx0aGlzLmJsZW5kRnVuYy5zZXQoZS5ibGVuZEZ1bmN0aW9uKSx0aGlzLmJsZW5kQ29sb3Iuc2V0KGUuYmxlbmRDb2xvcikpLHRoaXMuY29sb3JNYXNrLnNldChlLm1hc2spfSxMdC5wcm90b3R5cGUudW5iaW5kVkFPPWZ1bmN0aW9uKCl7dGhpcy5leHRWZXJ0ZXhBcnJheU9iamVjdCYmdGhpcy5iaW5kVmVydGV4QXJyYXlPRVMuc2V0KG51bGwpfTt2YXIgQ3Q9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gcihyLG4saSl7dmFyIGE9dGhpcztlLmNhbGwodGhpcyksdGhpcy5pZD1yLHRoaXMuZGlzcGF0Y2hlcj1pLHRoaXMub24oImRhdGEiLChmdW5jdGlvbih0KXsic291cmNlIj09PXQuZGF0YVR5cGUmJiJtZXRhZGF0YSI9PT10LnNvdXJjZURhdGFUeXBlJiYoYS5fc291cmNlTG9hZGVkPSEwKSxhLl9zb3VyY2VMb2FkZWQmJiFhLl9wYXVzZWQmJiJzb3VyY2UiPT09dC5kYXRhVHlwZSYmImNvbnRlbnQiPT09dC5zb3VyY2VEYXRhVHlwZSYmKGEucmVsb2FkKCksYS50cmFuc2Zvcm0mJmEudXBkYXRlKGEudHJhbnNmb3JtKSl9KSksdGhpcy5vbigiZXJyb3IiLChmdW5jdGlvbigpe2EuX3NvdXJjZUVycm9yZWQ9ITB9KSksdGhpcy5fc291cmNlPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPW5ldyBEW3IudHlwZV0oZSxyLG4saSk7aWYoYS5pZCE9PWUpdGhyb3cgbmV3IEVycm9yKCJFeHBlY3RlZCBTb3VyY2UgaWQgdG8gYmUgIitlKyIgaW5zdGVhZCBvZiAiK2EuaWQpO3JldHVybiB0LmJpbmRBbGwoWyJsb2FkIiwiYWJvcnQiLCJ1bmxvYWQiLCJzZXJpYWxpemUiLCJwcmVwYXJlIl0sYSksYX0ocixuLGksdGhpcyksdGhpcy5fdGlsZXM9e30sdGhpcy5fY2FjaGU9bmV3IE4oMCx0aGlzLl91bmxvYWRUaWxlLmJpbmQodGhpcykpLHRoaXMuX3RpbWVycz17fSx0aGlzLl9jYWNoZVRpbWVycz17fSx0aGlzLl9tYXhUaWxlQ2FjaGVTaXplPW51bGwsdGhpcy5fbG9hZGVkUGFyZW50VGlsZXM9e30sdGhpcy5fY292ZXJlZFRpbGVzPXt9LHRoaXMuX3N0YXRlPW5ldyB0LlNvdXJjZUZlYXR1cmVTdGF0ZX1yZXR1cm4gZSYmKHIuX19wcm90b19fPWUpLHIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLHIucHJvdG90eXBlLmNvbnN0cnVjdG9yPXIsci5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5tYXA9dCx0aGlzLl9tYXhUaWxlQ2FjaGVTaXplPXQ/dC5fbWF4VGlsZUNhY2hlU2l6ZTpudWxsLHRoaXMuX3NvdXJjZSYmdGhpcy5fc291cmNlLm9uQWRkJiZ0aGlzLl9zb3VyY2Uub25BZGQodCl9LHIucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKHQpe3RoaXMuX3NvdXJjZSYmdGhpcy5fc291cmNlLm9uUmVtb3ZlJiZ0aGlzLl9zb3VyY2Uub25SZW1vdmUodCl9LHIucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe2lmKHRoaXMuX3NvdXJjZUVycm9yZWQpcmV0dXJuITA7aWYoIXRoaXMuX3NvdXJjZUxvYWRlZClyZXR1cm4hMTtpZighdGhpcy5fc291cmNlLmxvYWRlZCgpKXJldHVybiExO2Zvcih2YXIgdCBpbiB0aGlzLl90aWxlcyl7dmFyIGU9dGhpcy5fdGlsZXNbdF07aWYoImxvYWRlZCIhPT1lLnN0YXRlJiYiZXJyb3JlZCIhPT1lLnN0YXRlKXJldHVybiExfXJldHVybiEwfSxyLnByb3RvdHlwZS5nZXRTb3VyY2U9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc291cmNlfSxyLnByb3RvdHlwZS5wYXVzZT1mdW5jdGlvbigpe3RoaXMuX3BhdXNlZD0hMH0sci5wcm90b3R5cGUucmVzdW1lPWZ1bmN0aW9uKCl7aWYodGhpcy5fcGF1c2VkKXt2YXIgdD10aGlzLl9zaG91bGRSZWxvYWRPblJlc3VtZTt0aGlzLl9wYXVzZWQ9ITEsdGhpcy5fc2hvdWxkUmVsb2FkT25SZXN1bWU9ITEsdCYmdGhpcy5yZWxvYWQoKSx0aGlzLnRyYW5zZm9ybSYmdGhpcy51cGRhdGUodGhpcy50cmFuc2Zvcm0pfX0sci5wcm90b3R5cGUuX2xvYWRUaWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3NvdXJjZS5sb2FkVGlsZSh0LGUpfSxyLnByb3RvdHlwZS5fdW5sb2FkVGlsZT1mdW5jdGlvbih0KXtpZih0aGlzLl9zb3VyY2UudW5sb2FkVGlsZSlyZXR1cm4gdGhpcy5fc291cmNlLnVubG9hZFRpbGUodCwoZnVuY3Rpb24oKXt9KSl9LHIucHJvdG90eXBlLl9hYm9ydFRpbGU9ZnVuY3Rpb24odCl7aWYodGhpcy5fc291cmNlLmFib3J0VGlsZSlyZXR1cm4gdGhpcy5fc291cmNlLmFib3J0VGlsZSh0LChmdW5jdGlvbigpe30pKX0sci5wcm90b3R5cGUuc2VyaWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3NvdXJjZS5zZXJpYWxpemUoKX0sci5wcm90b3R5cGUucHJlcGFyZT1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5fc291cmNlLnByZXBhcmUmJnRoaXMuX3NvdXJjZS5wcmVwYXJlKCksdGhpcy5fc3RhdGUuY29hbGVzY2VDaGFuZ2VzKHRoaXMuX3RpbGVzLHRoaXMubWFwP3RoaXMubWFwLnBhaW50ZXI6bnVsbCksdGhpcy5fdGlsZXMpe3ZhciByPXRoaXMuX3RpbGVzW2VdO3IudXBsb2FkKHQpLHIucHJlcGFyZSh0aGlzLm1hcC5zdHlsZS5pbWFnZU1hbmFnZXIpfX0sci5wcm90b3R5cGUuZ2V0SWRzPWZ1bmN0aW9uKCl7cmV0dXJuIHQudmFsdWVzKHRoaXMuX3RpbGVzKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRpbGVJRH0pKS5zb3J0KFB0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleX0pKX0sci5wcm90b3R5cGUuZ2V0UmVuZGVyYWJsZUlkcz1mdW5jdGlvbihlKXt2YXIgcj10aGlzLG49W107Zm9yKHZhciBpIGluIHRoaXMuX3RpbGVzKXRoaXMuX2lzSWRSZW5kZXJhYmxlKGksZSkmJm4ucHVzaCh0aGlzLl90aWxlc1tpXSk7cmV0dXJuIGU/bi5zb3J0KChmdW5jdGlvbihlLG4pe3ZhciBpPWUudGlsZUlELGE9bi50aWxlSUQsbz1uZXcgdC5Qb2ludChpLmNhbm9uaWNhbC54LGkuY2Fub25pY2FsLnkpLl9yb3RhdGUoci50cmFuc2Zvcm0uYW5nbGUpLHM9bmV3IHQuUG9pbnQoYS5jYW5vbmljYWwueCxhLmNhbm9uaWNhbC55KS5fcm90YXRlKHIudHJhbnNmb3JtLmFuZ2xlKTtyZXR1cm4gaS5vdmVyc2NhbGVkWi1hLm92ZXJzY2FsZWRafHxzLnktby55fHxzLngtby54fSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlsZUlELmtleX0pKTpuLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlsZUlEfSkpLnNvcnQoUHQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5fSkpfSxyLnByb3RvdHlwZS5oYXNSZW5kZXJhYmxlUGFyZW50PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZmluZExvYWRlZFBhcmVudCh0LDApO3JldHVybiEhZSYmdGhpcy5faXNJZFJlbmRlcmFibGUoZS50aWxlSUQua2V5KX0sci5wcm90b3R5cGUuX2lzSWRSZW5kZXJhYmxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX3RpbGVzW3RdJiZ0aGlzLl90aWxlc1t0XS5oYXNEYXRhKCkmJiF0aGlzLl9jb3ZlcmVkVGlsZXNbdF0mJihlfHwhdGhpcy5fdGlsZXNbdF0uaG9sZGluZ0ZvckZhZGUoKSl9LHIucHJvdG90eXBlLnJlbG9hZD1mdW5jdGlvbigpe2lmKHRoaXMuX3BhdXNlZCl0aGlzLl9zaG91bGRSZWxvYWRPblJlc3VtZT0hMDtlbHNlIGZvcih2YXIgdCBpbiB0aGlzLl9jYWNoZS5yZXNldCgpLHRoaXMuX3RpbGVzKSJlcnJvcmVkIiE9PXRoaXMuX3RpbGVzW3RdLnN0YXRlJiZ0aGlzLl9yZWxvYWRUaWxlKHQsInJlbG9hZGluZyIpfSxyLnByb3RvdHlwZS5fcmVsb2FkVGlsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3RpbGVzW3RdO3ImJigibG9hZGluZyIhPT1yLnN0YXRlJiYoci5zdGF0ZT1lKSx0aGlzLl9sb2FkVGlsZShyLHRoaXMuX3RpbGVMb2FkZWQuYmluZCh0aGlzLHIsdCxlKSkpfSxyLnByb3RvdHlwZS5fdGlsZUxvYWRlZD1mdW5jdGlvbihlLHIsbixpKXtpZihpKXJldHVybiBlLnN0YXRlPSJlcnJvcmVkIix2b2lkKDQwNCE9PWkuc3RhdHVzP3RoaXMuX3NvdXJjZS5maXJlKG5ldyB0LkVycm9yRXZlbnQoaSx7dGlsZTplfSkpOnRoaXMudXBkYXRlKHRoaXMudHJhbnNmb3JtKSk7ZS50aW1lQWRkZWQ9dC5icm93c2VyLm5vdygpLCJleHBpcmVkIj09PW4mJihlLnJlZnJlc2hlZFVwb25FeHBpcmF0aW9uPSEwKSx0aGlzLl9zZXRUaWxlUmVsb2FkVGltZXIocixlKSwicmFzdGVyLWRlbSI9PT10aGlzLmdldFNvdXJjZSgpLnR5cGUmJmUuZGVtJiZ0aGlzLl9iYWNrZmlsbERFTShlKSx0aGlzLl9zdGF0ZS5pbml0aWFsaXplVGlsZVN0YXRlKGUsdGhpcy5tYXA/dGhpcy5tYXAucGFpbnRlcjpudWxsKSx0aGlzLl9zb3VyY2UuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzb3VyY2UiLHRpbGU6ZSxjb29yZDplLnRpbGVJRH0pKX0sci5wcm90b3R5cGUuX2JhY2tmaWxsREVNPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmdldFJlbmRlcmFibGVJZHMoKSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07aWYodC5uZWlnaGJvcmluZ1RpbGVzJiZ0Lm5laWdoYm9yaW5nVGlsZXNbbl0pe3ZhciBpPXRoaXMuZ2V0VGlsZUJ5SUQobik7YSh0LGkpLGEoaSx0KX19ZnVuY3Rpb24gYSh0LGUpe3QubmVlZHNIaWxsc2hhZGVQcmVwYXJlPSEwO3ZhciByPWUudGlsZUlELmNhbm9uaWNhbC54LXQudGlsZUlELmNhbm9uaWNhbC54LG49ZS50aWxlSUQuY2Fub25pY2FsLnktdC50aWxlSUQuY2Fub25pY2FsLnksaT1NYXRoLnBvdygyLHQudGlsZUlELmNhbm9uaWNhbC56KSxhPWUudGlsZUlELmtleTswPT09ciYmMD09PW58fE1hdGguYWJzKG4pPjF8fChNYXRoLmFicyhyKT4xJiYoMT09PU1hdGguYWJzKHIraSk/cis9aToxPT09TWF0aC5hYnMoci1pKSYmKHItPWkpKSxlLmRlbSYmdC5kZW0mJih0LmRlbS5iYWNrZmlsbEJvcmRlcihlLmRlbSxyLG4pLHQubmVpZ2hib3JpbmdUaWxlcyYmdC5uZWlnaGJvcmluZ1RpbGVzW2FdJiYodC5uZWlnaGJvcmluZ1RpbGVzW2FdLmJhY2tmaWxsZWQ9ITApKSl9fSxyLnByb3RvdHlwZS5nZXRUaWxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmdldFRpbGVCeUlEKHQua2V5KX0sci5wcm90b3R5cGUuZ2V0VGlsZUJ5SUQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3RpbGVzW3RdfSxyLnByb3RvdHlwZS5fcmV0YWluTG9hZGVkQ2hpbGRyZW49ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpIGluIHRoaXMuX3RpbGVzKXt2YXIgYT10aGlzLl90aWxlc1tpXTtpZighKG5baV18fCFhLmhhc0RhdGEoKXx8YS50aWxlSUQub3ZlcnNjYWxlZFo8PWV8fGEudGlsZUlELm92ZXJzY2FsZWRaPnIpKXtmb3IodmFyIG89YS50aWxlSUQ7YSYmYS50aWxlSUQub3ZlcnNjYWxlZFo+ZSsxOyl7dmFyIHM9YS50aWxlSUQuc2NhbGVkVG8oYS50aWxlSUQub3ZlcnNjYWxlZFotMSk7KGE9dGhpcy5fdGlsZXNbcy5rZXldKSYmYS5oYXNEYXRhKCkmJihvPXMpfWZvcih2YXIgbD1vO2wub3ZlcnNjYWxlZFo+ZTspaWYodFsobD1sLnNjYWxlZFRvKGwub3ZlcnNjYWxlZFotMSkpLmtleV0pe25bby5rZXldPW87YnJlYWt9fX19LHIucHJvdG90eXBlLmZpbmRMb2FkZWRQYXJlbnQ9ZnVuY3Rpb24odCxlKXtpZih0LmtleSBpbiB0aGlzLl9sb2FkZWRQYXJlbnRUaWxlcyl7dmFyIHI9dGhpcy5fbG9hZGVkUGFyZW50VGlsZXNbdC5rZXldO3JldHVybiByJiZyLnRpbGVJRC5vdmVyc2NhbGVkWj49ZT9yOm51bGx9Zm9yKHZhciBuPXQub3ZlcnNjYWxlZFotMTtuPj1lO24tLSl7dmFyIGk9dC5zY2FsZWRUbyhuKSxhPXRoaXMuX2dldExvYWRlZFRpbGUoaSk7aWYoYSlyZXR1cm4gYX19LHIucHJvdG90eXBlLl9nZXRMb2FkZWRUaWxlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RpbGVzW3Qua2V5XTtyZXR1cm4gZSYmZS5oYXNEYXRhKCk/ZTp0aGlzLl9jYWNoZS5nZXRCeUtleSh0LndyYXBwZWQoKS5rZXkpfSxyLnByb3RvdHlwZS51cGRhdGVDYWNoZVNpemU9ZnVuY3Rpb24odCl7dmFyIGU9KE1hdGguY2VpbCh0LndpZHRoL3RoaXMuX3NvdXJjZS50aWxlU2l6ZSkrMSkqKE1hdGguY2VpbCh0LmhlaWdodC90aGlzLl9zb3VyY2UudGlsZVNpemUpKzEpLHI9TWF0aC5mbG9vcig1KmUpLG49Im51bWJlciI9PXR5cGVvZiB0aGlzLl9tYXhUaWxlQ2FjaGVTaXplP01hdGgubWluKHRoaXMuX21heFRpbGVDYWNoZVNpemUscik6cjt0aGlzLl9jYWNoZS5zZXRNYXhTaXplKG4pfSxyLnByb3RvdHlwZS5oYW5kbGVXcmFwSnVtcD1mdW5jdGlvbih0KXt2YXIgZT0odC0odm9pZCAwPT09dGhpcy5fcHJldkxuZz90OnRoaXMuX3ByZXZMbmcpKS8zNjAscj1NYXRoLnJvdW5kKGUpO2lmKHRoaXMuX3ByZXZMbmc9dCxyKXt2YXIgbj17fTtmb3IodmFyIGkgaW4gdGhpcy5fdGlsZXMpe3ZhciBhPXRoaXMuX3RpbGVzW2ldO2EudGlsZUlEPWEudGlsZUlELnVud3JhcFRvKGEudGlsZUlELndyYXArciksblthLnRpbGVJRC5rZXldPWF9Zm9yKHZhciBvIGluIHRoaXMuX3RpbGVzPW4sdGhpcy5fdGltZXJzKWNsZWFyVGltZW91dCh0aGlzLl90aW1lcnNbb10pLGRlbGV0ZSB0aGlzLl90aW1lcnNbb107Zm9yKHZhciBzIGluIHRoaXMuX3RpbGVzKXt2YXIgbD10aGlzLl90aWxlc1tzXTt0aGlzLl9zZXRUaWxlUmVsb2FkVGltZXIocyxsKX19fSxyLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZih0aGlzLnRyYW5zZm9ybT1lLHRoaXMuX3NvdXJjZUxvYWRlZCYmIXRoaXMuX3BhdXNlZCl7dmFyIGk7dGhpcy51cGRhdGVDYWNoZVNpemUoZSksdGhpcy5oYW5kbGVXcmFwSnVtcCh0aGlzLnRyYW5zZm9ybS5jZW50ZXIubG5nKSx0aGlzLl9jb3ZlcmVkVGlsZXM9e30sdGhpcy51c2VkP3RoaXMuX3NvdXJjZS50aWxlSUQ/aT1lLmdldFZpc2libGVVbndyYXBwZWRDb29yZGluYXRlcyh0aGlzLl9zb3VyY2UudGlsZUlEKS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBuZXcgdC5PdmVyc2NhbGVkVGlsZUlEKGUuY2Fub25pY2FsLnosZS53cmFwLGUuY2Fub25pY2FsLnosZS5jYW5vbmljYWwueCxlLmNhbm9uaWNhbC55KX0pKTooaT1lLmNvdmVyaW5nVGlsZXMoe3RpbGVTaXplOnRoaXMuX3NvdXJjZS50aWxlU2l6ZSxtaW56b29tOnRoaXMuX3NvdXJjZS5taW56b29tLG1heHpvb206dGhpcy5fc291cmNlLm1heHpvb20scm91bmRab29tOnRoaXMuX3NvdXJjZS5yb3VuZFpvb20scmVwYXJzZU92ZXJzY2FsZWQ6dGhpcy5fc291cmNlLnJlcGFyc2VPdmVyc2NhbGVkfSksdGhpcy5fc291cmNlLmhhc1RpbGUmJihpPWkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gbi5fc291cmNlLmhhc1RpbGUodCl9KSkpKTppPVtdO3ZhciBhPWUuY292ZXJpbmdab29tTGV2ZWwodGhpcy5fc291cmNlKSxvPU1hdGgubWF4KGEtci5tYXhPdmVyem9vbWluZyx0aGlzLl9zb3VyY2UubWluem9vbSkscz1NYXRoLm1heChhK3IubWF4VW5kZXJ6b29taW5nLHRoaXMuX3NvdXJjZS5taW56b29tKSxsPXRoaXMuX3VwZGF0ZVJldGFpbmVkVGlsZXMoaSxhKTtpZihJdCh0aGlzLl9zb3VyY2UudHlwZSkpe2Zvcih2YXIgYz17fSx1PXt9LGY9MCxoPU9iamVjdC5rZXlzKGwpO2Y8aC5sZW5ndGg7Zis9MSl7dmFyIHA9aFtmXSxkPWxbcF0sbT10aGlzLl90aWxlc1twXTtpZihtJiYhKG0uZmFkZUVuZFRpbWUmJm0uZmFkZUVuZFRpbWU8PXQuYnJvd3Nlci5ub3coKSkpe3ZhciBnPXRoaXMuZmluZExvYWRlZFBhcmVudChkLG8pO2cmJih0aGlzLl9hZGRUaWxlKGcudGlsZUlEKSxjW2cudGlsZUlELmtleV09Zy50aWxlSUQpLHVbcF09ZH19Zm9yKHZhciB2IGluIHRoaXMuX3JldGFpbkxvYWRlZENoaWxkcmVuKHUsYSxzLGwpLGMpbFt2XXx8KHRoaXMuX2NvdmVyZWRUaWxlc1t2XT0hMCxsW3ZdPWNbdl0pfWZvcih2YXIgeSBpbiBsKXRoaXMuX3RpbGVzW3ldLmNsZWFyRmFkZUhvbGQoKTtmb3IodmFyIHg9MCxiPXQua2V5c0RpZmZlcmVuY2UodGhpcy5fdGlsZXMsbCk7eDxiLmxlbmd0aDt4Kz0xKXt2YXIgXz1iW3hdLHc9dGhpcy5fdGlsZXNbX107dy5oYXNTeW1ib2xCdWNrZXRzJiYhdy5ob2xkaW5nRm9yRmFkZSgpP3cuc2V0SG9sZER1cmF0aW9uKHRoaXMubWFwLl9mYWRlRHVyYXRpb24pOncuaGFzU3ltYm9sQnVja2V0cyYmIXcuc3ltYm9sRmFkZUZpbmlzaGVkKCl8fHRoaXMuX3JlbW92ZVRpbGUoXyl9dGhpcy5fdXBkYXRlTG9hZGVkUGFyZW50VGlsZUNhY2hlKCl9fSxyLnByb3RvdHlwZS5yZWxlYXNlU3ltYm9sRmFkZVRpbGVzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0IGluIHRoaXMuX3RpbGVzKXRoaXMuX3RpbGVzW3RdLmhvbGRpbmdGb3JGYWRlKCkmJnRoaXMuX3JlbW92ZVRpbGUodCl9LHIucHJvdG90eXBlLl91cGRhdGVSZXRhaW5lZFRpbGVzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPXt9LGk9e30sYT1NYXRoLm1heChlLXIubWF4T3Zlcnpvb21pbmcsdGhpcy5fc291cmNlLm1pbnpvb20pLG89TWF0aC5tYXgoZStyLm1heFVuZGVyem9vbWluZyx0aGlzLl9zb3VyY2UubWluem9vbSkscz17fSxsPTAsYz10O2w8Yy5sZW5ndGg7bCs9MSl7dmFyIHU9Y1tsXSxmPXRoaXMuX2FkZFRpbGUodSk7blt1LmtleV09dSxmLmhhc0RhdGEoKXx8ZTx0aGlzLl9zb3VyY2UubWF4em9vbSYmKHNbdS5rZXldPXUpfXRoaXMuX3JldGFpbkxvYWRlZENoaWxkcmVuKHMsZSxvLG4pO2Zvcih2YXIgaD0wLHA9dDtoPHAubGVuZ3RoO2grPTEpe3ZhciBkPXBbaF0sbT10aGlzLl90aWxlc1tkLmtleV07aWYoIW0uaGFzRGF0YSgpKXtpZihlKzE+dGhpcy5fc291cmNlLm1heHpvb20pe3ZhciBnPWQuY2hpbGRyZW4odGhpcy5fc291cmNlLm1heHpvb20pWzBdLHY9dGhpcy5nZXRUaWxlKGcpO2lmKHYmJnYuaGFzRGF0YSgpKXtuW2cua2V5XT1nO2NvbnRpbnVlfX1lbHNle3ZhciB5PWQuY2hpbGRyZW4odGhpcy5fc291cmNlLm1heHpvb20pO2lmKG5beVswXS5rZXldJiZuW3lbMV0ua2V5XSYmblt5WzJdLmtleV0mJm5beVszXS5rZXldKWNvbnRpbnVlfWZvcih2YXIgeD1tLndhc1JlcXVlc3RlZCgpLGI9ZC5vdmVyc2NhbGVkWi0xO2I+PWE7LS1iKXt2YXIgXz1kLnNjYWxlZFRvKGIpO2lmKGlbXy5rZXldKWJyZWFrO2lmKGlbXy5rZXldPSEwLCEobT10aGlzLmdldFRpbGUoXykpJiZ4JiYobT10aGlzLl9hZGRUaWxlKF8pKSxtJiYobltfLmtleV09Xyx4PW0ud2FzUmVxdWVzdGVkKCksbS5oYXNEYXRhKCkpKWJyZWFrfX19cmV0dXJuIG59LHIucHJvdG90eXBlLl91cGRhdGVMb2FkZWRQYXJlbnRUaWxlQ2FjaGU9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fbG9hZGVkUGFyZW50VGlsZXM9e30sdGhpcy5fdGlsZXMpe2Zvcih2YXIgZT1bXSxyPXZvaWQgMCxuPXRoaXMuX3RpbGVzW3RdLnRpbGVJRDtuLm92ZXJzY2FsZWRaPjA7KXtpZihuLmtleSBpbiB0aGlzLl9sb2FkZWRQYXJlbnRUaWxlcyl7cj10aGlzLl9sb2FkZWRQYXJlbnRUaWxlc1tuLmtleV07YnJlYWt9ZS5wdXNoKG4ua2V5KTt2YXIgaT1uLnNjYWxlZFRvKG4ub3ZlcnNjYWxlZFotMSk7aWYocj10aGlzLl9nZXRMb2FkZWRUaWxlKGkpKWJyZWFrO249aX1mb3IodmFyIGE9MCxvPWU7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdO3RoaXMuX2xvYWRlZFBhcmVudFRpbGVzW3NdPXJ9fX0sci5wcm90b3R5cGUuX2FkZFRpbGU9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5fdGlsZXNbZS5rZXldO2lmKHIpcmV0dXJuIHI7KHI9dGhpcy5fY2FjaGUuZ2V0QW5kUmVtb3ZlKGUpKSYmKHRoaXMuX3NldFRpbGVSZWxvYWRUaW1lcihlLmtleSxyKSxyLnRpbGVJRD1lLHRoaXMuX3N0YXRlLmluaXRpYWxpemVUaWxlU3RhdGUocix0aGlzLm1hcD90aGlzLm1hcC5wYWludGVyOm51bGwpLHRoaXMuX2NhY2hlVGltZXJzW2Uua2V5XSYmKGNsZWFyVGltZW91dCh0aGlzLl9jYWNoZVRpbWVyc1tlLmtleV0pLGRlbGV0ZSB0aGlzLl9jYWNoZVRpbWVyc1tlLmtleV0sdGhpcy5fc2V0VGlsZVJlbG9hZFRpbWVyKGUua2V5LHIpKSk7dmFyIG49Qm9vbGVhbihyKTtyZXR1cm4gbnx8KHI9bmV3IHQuVGlsZShlLHRoaXMuX3NvdXJjZS50aWxlU2l6ZSplLm92ZXJzY2FsZUZhY3RvcigpKSx0aGlzLl9sb2FkVGlsZShyLHRoaXMuX3RpbGVMb2FkZWQuYmluZCh0aGlzLHIsZS5rZXksci5zdGF0ZSkpKSxyPyhyLnVzZXMrKyx0aGlzLl90aWxlc1tlLmtleV09cixufHx0aGlzLl9zb3VyY2UuZmlyZShuZXcgdC5FdmVudCgiZGF0YWxvYWRpbmciLHt0aWxlOnIsY29vcmQ6ci50aWxlSUQsZGF0YVR5cGU6InNvdXJjZSJ9KSkscik6bnVsbH0sci5wcm90b3R5cGUuX3NldFRpbGVSZWxvYWRUaW1lcj1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXM7dCBpbiB0aGlzLl90aW1lcnMmJihjbGVhclRpbWVvdXQodGhpcy5fdGltZXJzW3RdKSxkZWxldGUgdGhpcy5fdGltZXJzW3RdKTt2YXIgbj1lLmdldEV4cGlyeVRpbWVvdXQoKTtuJiYodGhpcy5fdGltZXJzW3RdPXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ci5fcmVsb2FkVGlsZSh0LCJleHBpcmVkIiksZGVsZXRlIHIuX3RpbWVyc1t0XX0pLG4pKX0sci5wcm90b3R5cGUuX3JlbW92ZVRpbGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZXNbdF07ZSYmKGUudXNlcy0tLGRlbGV0ZSB0aGlzLl90aWxlc1t0XSx0aGlzLl90aW1lcnNbdF0mJihjbGVhclRpbWVvdXQodGhpcy5fdGltZXJzW3RdKSxkZWxldGUgdGhpcy5fdGltZXJzW3RdKSxlLnVzZXM+MHx8KGUuaGFzRGF0YSgpJiYicmVsb2FkaW5nIiE9PWUuc3RhdGU/dGhpcy5fY2FjaGUuYWRkKGUudGlsZUlELGUsZS5nZXRFeHBpcnlUaW1lb3V0KCkpOihlLmFib3J0ZWQ9ITAsdGhpcy5fYWJvcnRUaWxlKGUpLHRoaXMuX3VubG9hZFRpbGUoZSkpKSl9LHIucHJvdG90eXBlLmNsZWFyVGlsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5fc2hvdWxkUmVsb2FkT25SZXN1bWU9ITEsdGhpcy5fcGF1c2VkPSExLHRoaXMuX3RpbGVzKXRoaXMuX3JlbW92ZVRpbGUodCk7dGhpcy5fY2FjaGUucmVzZXQoKX0sci5wcm90b3R5cGUudGlsZXNJbj1mdW5jdGlvbihlLHIsbil7dmFyIGk9dGhpcyxhPVtdLG89dGhpcy50cmFuc2Zvcm07aWYoIW8pcmV0dXJuIGE7Zm9yKHZhciBzPW4/by5nZXRDYW1lcmFRdWVyeUdlb21ldHJ5KGUpOmUsbD1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIG8ucG9pbnRDb29yZGluYXRlKHQpfSkpLGM9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBvLnBvaW50Q29vcmRpbmF0ZSh0KX0pKSx1PXRoaXMuZ2V0SWRzKCksZj0xLzAsaD0xLzAscD0tMS8wLGQ9LTEvMCxtPTAsZz1jO208Zy5sZW5ndGg7bSs9MSl7dmFyIHY9Z1ttXTtmPU1hdGgubWluKGYsdi54KSxoPU1hdGgubWluKGgsdi55KSxwPU1hdGgubWF4KHAsdi54KSxkPU1hdGgubWF4KGQsdi55KX1mb3IodmFyIHk9ZnVuY3Rpb24oZSl7dmFyIG49aS5fdGlsZXNbdVtlXV07aWYoIW4uaG9sZGluZ0ZvckZhZGUoKSl7dmFyIHM9bi50aWxlSUQsbT1NYXRoLnBvdygyLG8uem9vbS1uLnRpbGVJRC5vdmVyc2NhbGVkWiksZz1yKm4ucXVlcnlQYWRkaW5nKnQuRVhURU5UL24udGlsZVNpemUvbSx2PVtzLmdldFRpbGVQb2ludChuZXcgdC5NZXJjYXRvckNvb3JkaW5hdGUoZixoKSkscy5nZXRUaWxlUG9pbnQobmV3IHQuTWVyY2F0b3JDb29yZGluYXRlKHAsZCkpXTtpZih2WzBdLngtZzx0LkVYVEVOVCYmdlswXS55LWc8dC5FWFRFTlQmJnZbMV0ueCtnPj0wJiZ2WzFdLnkrZz49MCl7dmFyIHk9bC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBzLmdldFRpbGVQb2ludCh0KX0pKSx4PWMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcy5nZXRUaWxlUG9pbnQodCl9KSk7YS5wdXNoKHt0aWxlOm4sdGlsZUlEOnMscXVlcnlHZW9tZXRyeTp5LGNhbWVyYVF1ZXJ5R2VvbWV0cnk6eCxzY2FsZTptfSl9fX0seD0wO3g8dS5sZW5ndGg7eCsrKXkoeCk7cmV0dXJuIGF9LHIucHJvdG90eXBlLmdldFZpc2libGVDb29yZGluYXRlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxyPXRoaXMuZ2V0UmVuZGVyYWJsZUlkcyh0KS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlLl90aWxlc1t0XS50aWxlSUR9KSksbj0wLGk9cjtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl07YS5wb3NNYXRyaXg9dGhpcy50cmFuc2Zvcm0uY2FsY3VsYXRlUG9zTWF0cml4KGEudG9VbndyYXBwZWQoKSl9cmV0dXJuIHJ9LHIucHJvdG90eXBlLmhhc1RyYW5zaXRpb249ZnVuY3Rpb24oKXtpZih0aGlzLl9zb3VyY2UuaGFzVHJhbnNpdGlvbigpKXJldHVybiEwO2lmKEl0KHRoaXMuX3NvdXJjZS50eXBlKSlmb3IodmFyIGUgaW4gdGhpcy5fdGlsZXMpe3ZhciByPXRoaXMuX3RpbGVzW2VdO2lmKHZvaWQgMCE9PXIuZmFkZUVuZFRpbWUmJnIuZmFkZUVuZFRpbWU+PXQuYnJvd3Nlci5ub3coKSlyZXR1cm4hMH1yZXR1cm4hMX0sci5wcm90b3R5cGUuc2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKHQsZSxyKXt0PXR8fCJfZ2VvanNvblRpbGVMYXllciIsdGhpcy5fc3RhdGUudXBkYXRlU3RhdGUodCxlLHIpfSxyLnByb3RvdHlwZS5yZW1vdmVGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlLHIpe3Q9dHx8Il9nZW9qc29uVGlsZUxheWVyIix0aGlzLl9zdGF0ZS5yZW1vdmVGZWF0dXJlU3RhdGUodCxlLHIpfSxyLnByb3RvdHlwZS5nZXRGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD10fHwiX2dlb2pzb25UaWxlTGF5ZXIiLHRoaXMuX3N0YXRlLmdldFN0YXRlKHQsZSl9LHIucHJvdG90eXBlLnNldERlcGVuZGVuY2llcz1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5fdGlsZXNbdF07biYmbi5zZXREZXBlbmRlbmNpZXMoZSxyKX0sci5wcm90b3R5cGUucmVsb2FkVGlsZXNGb3JEZXBlbmRlbmNpZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIgaW4gdGhpcy5fdGlsZXMpe3RoaXMuX3RpbGVzW3JdLmhhc0RlcGVuZGVuY3kodCxlKSYmdGhpcy5fcmVsb2FkVGlsZShyLCJyZWxvYWRpbmciKX10aGlzLl9jYWNoZS5maWx0ZXIoKGZ1bmN0aW9uKHIpe3JldHVybiFyLmhhc0RlcGVuZGVuY3kodCxlKX0pKX0scn0odC5FdmVudGVkKTtmdW5jdGlvbiBQdCh0LGUpe3ZhciByPU1hdGguYWJzKDIqdC53cmFwKS0rKHQud3JhcDwwKSxuPU1hdGguYWJzKDIqZS53cmFwKS0rKGUud3JhcDwwKTtyZXR1cm4gdC5vdmVyc2NhbGVkWi1lLm92ZXJzY2FsZWRafHxuLXJ8fGUuY2Fub25pY2FsLnktdC5jYW5vbmljYWwueXx8ZS5jYW5vbmljYWwueC10LmNhbm9uaWNhbC54fWZ1bmN0aW9uIEl0KHQpe3JldHVybiJyYXN0ZXIiPT09dHx8ImltYWdlIj09PXR8fCJ2aWRlbyI9PT10fWZ1bmN0aW9uIE90KCl7cmV0dXJuIG5ldyB0LndpbmRvdy5Xb3JrZXIoWmkud29ya2VyVXJsKX1DdC5tYXhPdmVyem9vbWluZz0xMCxDdC5tYXhVbmRlcnpvb21pbmc9Mzt2YXIgenQ9Im1hcGJveGdsX3ByZWxvYWRlZF93b3JrZXJfcG9vbCIsRHQ9ZnVuY3Rpb24oKXt0aGlzLmFjdGl2ZT17fX07RHQucHJvdG90eXBlLmFjcXVpcmU9ZnVuY3Rpb24odCl7aWYoIXRoaXMud29ya2Vycylmb3IodGhpcy53b3JrZXJzPVtdO3RoaXMud29ya2Vycy5sZW5ndGg8RHQud29ya2VyQ291bnQ7KXRoaXMud29ya2Vycy5wdXNoKG5ldyBPdCk7cmV0dXJuIHRoaXMuYWN0aXZlW3RdPSEwLHRoaXMud29ya2Vycy5zbGljZSgpfSxEdC5wcm90b3R5cGUucmVsZWFzZT1mdW5jdGlvbih0KXtkZWxldGUgdGhpcy5hY3RpdmVbdF0sMD09PXRoaXMubnVtQWN0aXZlKCkmJih0aGlzLndvcmtlcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC50ZXJtaW5hdGUoKX0pKSx0aGlzLndvcmtlcnM9bnVsbCl9LER0LnByb3RvdHlwZS5pc1ByZWxvYWRlZD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5hY3RpdmVbenRdfSxEdC5wcm90b3R5cGUubnVtQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuYWN0aXZlKS5sZW5ndGh9O3ZhciBSdCxGdD1NYXRoLmZsb29yKHQuYnJvd3Nlci5oYXJkd2FyZUNvbmN1cnJlbmN5LzIpO2Z1bmN0aW9uIEJ0KCl7cmV0dXJuIFJ0fHwoUnQ9bmV3IER0KSxSdH1mdW5jdGlvbiBOdChlLHIpe3ZhciBuPXt9O2Zvcih2YXIgaSBpbiBlKSJyZWYiIT09aSYmKG5baV09ZVtpXSk7cmV0dXJuIHQucmVmUHJvcGVydGllcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0IGluIHImJihuW3RdPXJbdF0pfSkpLG59ZnVuY3Rpb24ganQodCl7dD10LnNsaWNlKCk7Zm9yKHZhciBlPU9iamVjdC5jcmVhdGUobnVsbCkscj0wO3I8dC5sZW5ndGg7cisrKWVbdFtyXS5pZF09dFtyXTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKykicmVmImluIHRbbl0mJih0W25dPU50KHRbbl0sZVt0W25dLnJlZl0pKTtyZXR1cm4gdH1EdC53b3JrZXJDb3VudD1NYXRoLm1heChNYXRoLm1pbihGdCw2KSwxKTt2YXIgVXQ9e3NldFN0eWxlOiJzZXRTdHlsZSIsYWRkTGF5ZXI6ImFkZExheWVyIixyZW1vdmVMYXllcjoicmVtb3ZlTGF5ZXIiLHNldFBhaW50UHJvcGVydHk6InNldFBhaW50UHJvcGVydHkiLHNldExheW91dFByb3BlcnR5OiJzZXRMYXlvdXRQcm9wZXJ0eSIsc2V0RmlsdGVyOiJzZXRGaWx0ZXIiLGFkZFNvdXJjZToiYWRkU291cmNlIixyZW1vdmVTb3VyY2U6InJlbW92ZVNvdXJjZSIsc2V0R2VvSlNPTlNvdXJjZURhdGE6InNldEdlb0pTT05Tb3VyY2VEYXRhIixzZXRMYXllclpvb21SYW5nZToic2V0TGF5ZXJab29tUmFuZ2UiLHNldExheWVyUHJvcGVydHk6InNldExheWVyUHJvcGVydHkiLHNldENlbnRlcjoic2V0Q2VudGVyIixzZXRab29tOiJzZXRab29tIixzZXRCZWFyaW5nOiJzZXRCZWFyaW5nIixzZXRQaXRjaDoic2V0UGl0Y2giLHNldFNwcml0ZToic2V0U3ByaXRlIixzZXRHbHlwaHM6InNldEdseXBocyIsc2V0VHJhbnNpdGlvbjoic2V0VHJhbnNpdGlvbiIsc2V0TGlnaHQ6InNldExpZ2h0In07ZnVuY3Rpb24gVnQodCxlLHIpe3IucHVzaCh7Y29tbWFuZDpVdC5hZGRTb3VyY2UsYXJnczpbdCxlW3RdXX0pfWZ1bmN0aW9uIEh0KHQsZSxyKXtlLnB1c2goe2NvbW1hbmQ6VXQucmVtb3ZlU291cmNlLGFyZ3M6W3RdfSksclt0XT0hMH1mdW5jdGlvbiBxdCh0LGUscixuKXtIdCh0LHIsbiksVnQodCxlLHIpfWZ1bmN0aW9uIEd0KGUscixuKXt2YXIgaTtmb3IoaSBpbiBlW25dKWlmKGVbbl0uaGFzT3duUHJvcGVydHkoaSkmJiJkYXRhIiE9PWkmJiF0LmRlZXBFcXVhbChlW25dW2ldLHJbbl1baV0pKXJldHVybiExO2ZvcihpIGluIHJbbl0paWYocltuXS5oYXNPd25Qcm9wZXJ0eShpKSYmImRhdGEiIT09aSYmIXQuZGVlcEVxdWFsKGVbbl1baV0scltuXVtpXSkpcmV0dXJuITE7cmV0dXJuITB9ZnVuY3Rpb24gWXQoZSxyLG4saSxhLG8pe3ZhciBzO2ZvcihzIGluIHI9cnx8e30sZT1lfHx7fSllLmhhc093blByb3BlcnR5KHMpJiYodC5kZWVwRXF1YWwoZVtzXSxyW3NdKXx8bi5wdXNoKHtjb21tYW5kOm8sYXJnczpbaSxzLHJbc10sYV19KSk7Zm9yKHMgaW4gcilyLmhhc093blByb3BlcnR5KHMpJiYhZS5oYXNPd25Qcm9wZXJ0eShzKSYmKHQuZGVlcEVxdWFsKGVbc10scltzXSl8fG4ucHVzaCh7Y29tbWFuZDpvLGFyZ3M6W2kscyxyW3NdLGFdfSkpfWZ1bmN0aW9uIFd0KHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIFh0KHQsZSl7cmV0dXJuIHRbZS5pZF09ZSx0fWZ1bmN0aW9uIFp0KGUscil7aWYoIWUpcmV0dXJuW3tjb21tYW5kOlV0LnNldFN0eWxlLGFyZ3M6W3JdfV07dmFyIG49W107dHJ5e2lmKCF0LmRlZXBFcXVhbChlLnZlcnNpb24sci52ZXJzaW9uKSlyZXR1cm5be2NvbW1hbmQ6VXQuc2V0U3R5bGUsYXJnczpbcl19XTt0LmRlZXBFcXVhbChlLmNlbnRlcixyLmNlbnRlcil8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRDZW50ZXIsYXJnczpbci5jZW50ZXJdfSksdC5kZWVwRXF1YWwoZS56b29tLHIuem9vbSl8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRab29tLGFyZ3M6W3Iuem9vbV19KSx0LmRlZXBFcXVhbChlLmJlYXJpbmcsci5iZWFyaW5nKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldEJlYXJpbmcsYXJnczpbci5iZWFyaW5nXX0pLHQuZGVlcEVxdWFsKGUucGl0Y2gsci5waXRjaCl8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRQaXRjaCxhcmdzOltyLnBpdGNoXX0pLHQuZGVlcEVxdWFsKGUuc3ByaXRlLHIuc3ByaXRlKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldFNwcml0ZSxhcmdzOltyLnNwcml0ZV19KSx0LmRlZXBFcXVhbChlLmdseXBocyxyLmdseXBocyl8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRHbHlwaHMsYXJnczpbci5nbHlwaHNdfSksdC5kZWVwRXF1YWwoZS50cmFuc2l0aW9uLHIudHJhbnNpdGlvbil8fG4ucHVzaCh7Y29tbWFuZDpVdC5zZXRUcmFuc2l0aW9uLGFyZ3M6W3IudHJhbnNpdGlvbl19KSx0LmRlZXBFcXVhbChlLmxpZ2h0LHIubGlnaHQpfHxuLnB1c2goe2NvbW1hbmQ6VXQuc2V0TGlnaHQsYXJnczpbci5saWdodF19KTt2YXIgaT17fSxhPVtdOyFmdW5jdGlvbihlLHIsbixpKXt2YXIgYTtmb3IoYSBpbiByPXJ8fHt9LGU9ZXx8e30pZS5oYXNPd25Qcm9wZXJ0eShhKSYmKHIuaGFzT3duUHJvcGVydHkoYSl8fEh0KGEsbixpKSk7Zm9yKGEgaW4gcilyLmhhc093blByb3BlcnR5KGEpJiYoZS5oYXNPd25Qcm9wZXJ0eShhKT90LmRlZXBFcXVhbChlW2FdLHJbYV0pfHwoImdlb2pzb24iPT09ZVthXS50eXBlJiYiZ2VvanNvbiI9PT1yW2FdLnR5cGUmJkd0KGUscixhKT9uLnB1c2goe2NvbW1hbmQ6VXQuc2V0R2VvSlNPTlNvdXJjZURhdGEsYXJnczpbYSxyW2FdLmRhdGFdfSk6cXQoYSxyLG4saSkpOlZ0KGEscixuKSl9KGUuc291cmNlcyxyLnNvdXJjZXMsYSxpKTt2YXIgbz1bXTtlLmxheWVycyYmZS5sYXllcnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7aVt0LnNvdXJjZV0/bi5wdXNoKHtjb21tYW5kOlV0LnJlbW92ZUxheWVyLGFyZ3M6W3QuaWRdfSk6by5wdXNoKHQpfSkpLG49bi5jb25jYXQoYSksZnVuY3Rpb24oZSxyLG4pe3I9cnx8W107dmFyIGksYSxvLHMsbCxjLHUsZj0oZT1lfHxbXSkubWFwKFd0KSxoPXIubWFwKFd0KSxwPWUucmVkdWNlKFh0LHt9KSxkPXIucmVkdWNlKFh0LHt9KSxtPWYuc2xpY2UoKSxnPU9iamVjdC5jcmVhdGUobnVsbCk7Zm9yKGk9MCxhPTA7aTxmLmxlbmd0aDtpKyspbz1mW2ldLGQuaGFzT3duUHJvcGVydHkobyk/YSsrOihuLnB1c2goe2NvbW1hbmQ6VXQucmVtb3ZlTGF5ZXIsYXJnczpbb119KSxtLnNwbGljZShtLmluZGV4T2YobyxhKSwxKSk7Zm9yKGk9MCxhPTA7aTxoLmxlbmd0aDtpKyspbz1oW2gubGVuZ3RoLTEtaV0sbVttLmxlbmd0aC0xLWldIT09byYmKHAuaGFzT3duUHJvcGVydHkobyk/KG4ucHVzaCh7Y29tbWFuZDpVdC5yZW1vdmVMYXllcixhcmdzOltvXX0pLG0uc3BsaWNlKG0ubGFzdEluZGV4T2YobyxtLmxlbmd0aC1hKSwxKSk6YSsrLGM9bVttLmxlbmd0aC1pXSxuLnB1c2goe2NvbW1hbmQ6VXQuYWRkTGF5ZXIsYXJnczpbZFtvXSxjXX0pLG0uc3BsaWNlKG0ubGVuZ3RoLWksMCxvKSxnW29dPSEwKTtmb3IoaT0wO2k8aC5sZW5ndGg7aSsrKWlmKHM9cFtvPWhbaV1dLGw9ZFtvXSwhZ1tvXSYmIXQuZGVlcEVxdWFsKHMsbCkpaWYodC5kZWVwRXF1YWwocy5zb3VyY2UsbC5zb3VyY2UpJiZ0LmRlZXBFcXVhbChzWyJzb3VyY2UtbGF5ZXIiXSxsWyJzb3VyY2UtbGF5ZXIiXSkmJnQuZGVlcEVxdWFsKHMudHlwZSxsLnR5cGUpKXtmb3IodSBpbiBZdChzLmxheW91dCxsLmxheW91dCxuLG8sbnVsbCxVdC5zZXRMYXlvdXRQcm9wZXJ0eSksWXQocy5wYWludCxsLnBhaW50LG4sbyxudWxsLFV0LnNldFBhaW50UHJvcGVydHkpLHQuZGVlcEVxdWFsKHMuZmlsdGVyLGwuZmlsdGVyKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldEZpbHRlcixhcmdzOltvLGwuZmlsdGVyXX0pLHQuZGVlcEVxdWFsKHMubWluem9vbSxsLm1pbnpvb20pJiZ0LmRlZXBFcXVhbChzLm1heHpvb20sbC5tYXh6b29tKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldExheWVyWm9vbVJhbmdlLGFyZ3M6W28sbC5taW56b29tLGwubWF4em9vbV19KSxzKXMuaGFzT3duUHJvcGVydHkodSkmJiJsYXlvdXQiIT09dSYmInBhaW50IiE9PXUmJiJmaWx0ZXIiIT09dSYmIm1ldGFkYXRhIiE9PXUmJiJtaW56b29tIiE9PXUmJiJtYXh6b29tIiE9PXUmJigwPT09dS5pbmRleE9mKCJwYWludC4iKT9ZdChzW3VdLGxbdV0sbixvLHUuc2xpY2UoNiksVXQuc2V0UGFpbnRQcm9wZXJ0eSk6dC5kZWVwRXF1YWwoc1t1XSxsW3VdKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldExheWVyUHJvcGVydHksYXJnczpbbyx1LGxbdV1dfSkpO2Zvcih1IGluIGwpbC5oYXNPd25Qcm9wZXJ0eSh1KSYmIXMuaGFzT3duUHJvcGVydHkodSkmJiJsYXlvdXQiIT09dSYmInBhaW50IiE9PXUmJiJmaWx0ZXIiIT09dSYmIm1ldGFkYXRhIiE9PXUmJiJtaW56b29tIiE9PXUmJiJtYXh6b29tIiE9PXUmJigwPT09dS5pbmRleE9mKCJwYWludC4iKT9ZdChzW3VdLGxbdV0sbixvLHUuc2xpY2UoNiksVXQuc2V0UGFpbnRQcm9wZXJ0eSk6dC5kZWVwRXF1YWwoc1t1XSxsW3VdKXx8bi5wdXNoKHtjb21tYW5kOlV0LnNldExheWVyUHJvcGVydHksYXJnczpbbyx1LGxbdV1dfSkpfWVsc2Ugbi5wdXNoKHtjb21tYW5kOlV0LnJlbW92ZUxheWVyLGFyZ3M6W29dfSksYz1tW20ubGFzdEluZGV4T2YobykrMV0sbi5wdXNoKHtjb21tYW5kOlV0LmFkZExheWVyLGFyZ3M6W2wsY119KX0obyxyLmxheWVycyxuKX1jYXRjaCh0KXtjb25zb2xlLndhcm4oIlVuYWJsZSB0byBjb21wdXRlIHN0eWxlIGRpZmY6Iix0KSxuPVt7Y29tbWFuZDpVdC5zZXRTdHlsZSxhcmdzOltyXX1dfXJldHVybiBufXZhciBKdD1mdW5jdGlvbih0LGUpe3RoaXMucmVzZXQodCxlKX07SnQucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKHQsZSl7dGhpcy5wb2ludHM9dHx8W10sdGhpcy5fZGlzdGFuY2VzPVswXTtmb3IodmFyIHI9MTtyPHRoaXMucG9pbnRzLmxlbmd0aDtyKyspdGhpcy5fZGlzdGFuY2VzW3JdPXRoaXMuX2Rpc3RhbmNlc1tyLTFdK3RoaXMucG9pbnRzW3JdLmRpc3QodGhpcy5wb2ludHNbci0xXSk7dGhpcy5sZW5ndGg9dGhpcy5fZGlzdGFuY2VzW3RoaXMuX2Rpc3RhbmNlcy5sZW5ndGgtMV0sdGhpcy5wYWRkaW5nPU1hdGgubWluKGV8fDAsLjUqdGhpcy5sZW5ndGgpLHRoaXMucGFkZGVkTGVuZ3RoPXRoaXMubGVuZ3RoLTIqdGhpcy5wYWRkaW5nfSxKdC5wcm90b3R5cGUubGVycD1mdW5jdGlvbihlKXtpZigxPT09dGhpcy5wb2ludHMubGVuZ3RoKXJldHVybiB0aGlzLnBvaW50c1swXTtlPXQuY2xhbXAoZSwwLDEpO2Zvcih2YXIgcj0xLG49dGhpcy5fZGlzdGFuY2VzW3JdLGk9ZSp0aGlzLnBhZGRlZExlbmd0aCt0aGlzLnBhZGRpbmc7bjxpJiZyPHRoaXMuX2Rpc3RhbmNlcy5sZW5ndGg7KW49dGhpcy5fZGlzdGFuY2VzWysrcl07dmFyIGE9ci0xLG89dGhpcy5fZGlzdGFuY2VzW2FdLHM9bi1vLGw9cz4wPyhpLW8pL3M6MDtyZXR1cm4gdGhpcy5wb2ludHNbYV0ubXVsdCgxLWwpLmFkZCh0aGlzLnBvaW50c1tyXS5tdWx0KGwpKX07dmFyIEt0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLmJveENlbGxzPVtdLGk9dGhpcy5jaXJjbGVDZWxscz1bXTt0aGlzLnhDZWxsQ291bnQ9TWF0aC5jZWlsKHQvciksdGhpcy55Q2VsbENvdW50PU1hdGguY2VpbChlL3IpO2Zvcih2YXIgYT0wO2E8dGhpcy54Q2VsbENvdW50KnRoaXMueUNlbGxDb3VudDthKyspbi5wdXNoKFtdKSxpLnB1c2goW10pO3RoaXMuY2lyY2xlS2V5cz1bXSx0aGlzLmJveEtleXM9W10sdGhpcy5iYm94ZXM9W10sdGhpcy5jaXJjbGVzPVtdLHRoaXMud2lkdGg9dCx0aGlzLmhlaWdodD1lLHRoaXMueFNjYWxlPXRoaXMueENlbGxDb3VudC90LHRoaXMueVNjYWxlPXRoaXMueUNlbGxDb3VudC9lLHRoaXMuYm94VWlkPTAsdGhpcy5jaXJjbGVVaWQ9MH07ZnVuY3Rpb24gUXQoZSxyLG4saSxhKXt2YXIgbz10LmNyZWF0ZSgpO3JldHVybiByPyh0LnNjYWxlKG8sbyxbMS9hLDEvYSwxXSksbnx8dC5yb3RhdGVaKG8sbyxpLmFuZ2xlKSk6dC5tdWx0aXBseShvLGkubGFiZWxQbGFuZU1hdHJpeCxlKSxvfWZ1bmN0aW9uICR0KGUscixuLGksYSl7aWYocil7dmFyIG89dC5jbG9uZShlKTtyZXR1cm4gdC5zY2FsZShvLG8sW2EsYSwxXSksbnx8dC5yb3RhdGVaKG8sbywtaS5hbmdsZSksb31yZXR1cm4gaS5nbENvb3JkTWF0cml4fWZ1bmN0aW9uIHRlKGUscil7dmFyIG49W2UueCxlLnksMCwxXTtmZShuLG4scik7dmFyIGk9blszXTtyZXR1cm57cG9pbnQ6bmV3IHQuUG9pbnQoblswXS9pLG5bMV0vaSksc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhOml9fWZ1bmN0aW9uIGVlKHQsZSl7cmV0dXJuLjUrdC9lKi41fWZ1bmN0aW9uIHJlKHQsZSl7dmFyIHI9dFswXS90WzNdLG49dFsxXS90WzNdO3JldHVybiByPj0tZVswXSYmcjw9ZVswXSYmbj49LWVbMV0mJm48PWVbMV19ZnVuY3Rpb24gbmUoZSxyLG4saSxhLG8scyxsKXt2YXIgYz1pP2UudGV4dFNpemVEYXRhOmUuaWNvblNpemVEYXRhLHU9dC5ldmFsdWF0ZVNpemVGb3Jab29tKGMsbi50cmFuc2Zvcm0uem9vbSksZj1bMjU2L24ud2lkdGgqMisxLDI1Ni9uLmhlaWdodCoyKzFdLGg9aT9lLnRleHQuZHluYW1pY0xheW91dFZlcnRleEFycmF5OmUuaWNvbi5keW5hbWljTGF5b3V0VmVydGV4QXJyYXk7aC5jbGVhcigpO2Zvcih2YXIgcD1lLmxpbmVWZXJ0ZXhBcnJheSxkPWk/ZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5OmUuaWNvbi5wbGFjZWRTeW1ib2xBcnJheSxtPW4udHJhbnNmb3JtLndpZHRoL24udHJhbnNmb3JtLmhlaWdodCxnPSExLHY9MDt2PGQubGVuZ3RoO3YrKyl7dmFyIHk9ZC5nZXQodik7aWYoeS5oaWRkZW58fHkud3JpdGluZ01vZGU9PT10LldyaXRpbmdNb2RlLnZlcnRpY2FsJiYhZyl1ZSh5Lm51bUdseXBocyxoKTtlbHNle2c9ITE7dmFyIHg9W3kuYW5jaG9yWCx5LmFuY2hvclksMCwxXTtpZih0LnRyYW5zZm9ybU1hdDQoeCx4LHIpLHJlKHgsZikpe3ZhciBiPXhbM10sXz1lZShuLnRyYW5zZm9ybS5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLGIpLHc9dC5ldmFsdWF0ZVNpemVGb3JGZWF0dXJlKGMsdSx5KSxUPXM/dy9fOncqXyxrPW5ldyB0LlBvaW50KHkuYW5jaG9yWCx5LmFuY2hvclkpLEE9dGUoayxhKS5wb2ludCxNPXt9LFM9b2UoeSxULCExLGwscixhLG8sZS5nbHlwaE9mZnNldEFycmF5LHAsaCxBLGssTSxtKTtnPVMudXNlVmVydGljYWwsKFMubm90RW5vdWdoUm9vbXx8Z3x8Uy5uZWVkc0ZsaXBwaW5nJiZvZSh5LFQsITAsbCxyLGEsbyxlLmdseXBoT2Zmc2V0QXJyYXkscCxoLEEsayxNLG0pLm5vdEVub3VnaFJvb20pJiZ1ZSh5Lm51bUdseXBocyxoKX1lbHNlIHVlKHkubnVtR2x5cGhzLGgpfX1pP2UudGV4dC5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyLnVwZGF0ZURhdGEoaCk6ZS5pY29uLmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShoKX1mdW5jdGlvbiBpZSh0LGUscixuLGksYSxvLHMsbCxjLHUpe3ZhciBmPXMuZ2x5cGhTdGFydEluZGV4K3MubnVtR2x5cGhzLGg9cy5saW5lU3RhcnRJbmRleCxwPXMubGluZVN0YXJ0SW5kZXgrcy5saW5lTGVuZ3RoLGQ9ZS5nZXRvZmZzZXRYKHMuZ2x5cGhTdGFydEluZGV4KSxtPWUuZ2V0b2Zmc2V0WChmLTEpLGc9bGUodCpkLHIsbixpLGEsbyxzLnNlZ21lbnQsaCxwLGwsYyx1KTtpZighZylyZXR1cm4gbnVsbDt2YXIgdj1sZSh0Km0scixuLGksYSxvLHMuc2VnbWVudCxoLHAsbCxjLHUpO3JldHVybiB2P3tmaXJzdDpnLGxhc3Q6dn06bnVsbH1mdW5jdGlvbiBhZShlLHIsbixpKXtpZihlPT09dC5Xcml0aW5nTW9kZS5ob3Jpem9udGFsJiZNYXRoLmFicyhuLnktci55KT5NYXRoLmFicyhuLngtci54KSppKXJldHVybnt1c2VWZXJ0aWNhbDohMH07cmV0dXJuKGU9PT10LldyaXRpbmdNb2RlLnZlcnRpY2FsP3IueTxuLnk6ci54Pm4ueCk/e25lZWRzRmxpcHBpbmc6ITB9Om51bGx9ZnVuY3Rpb24gb2UoZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkKXt2YXIgbSxnPXIvMjQsdj1lLmxpbmVPZmZzZXRYKmcseT1lLmxpbmVPZmZzZXRZKmc7aWYoZS5udW1HbHlwaHM+MSl7dmFyIHg9ZS5nbHlwaFN0YXJ0SW5kZXgrZS5udW1HbHlwaHMsYj1lLmxpbmVTdGFydEluZGV4LF89ZS5saW5lU3RhcnRJbmRleCtlLmxpbmVMZW5ndGgsdz1pZShnLGwsdix5LG4sZixoLGUsYyxvLHApO2lmKCF3KXJldHVybntub3RFbm91Z2hSb29tOiEwfTt2YXIgVD10ZSh3LmZpcnN0LnBvaW50LHMpLnBvaW50LGs9dGUody5sYXN0LnBvaW50LHMpLnBvaW50O2lmKGkmJiFuKXt2YXIgQT1hZShlLndyaXRpbmdNb2RlLFQsayxkKTtpZihBKXJldHVybiBBfW09W3cuZmlyc3RdO2Zvcih2YXIgTT1lLmdseXBoU3RhcnRJbmRleCsxO008eC0xO00rKyltLnB1c2gobGUoZypsLmdldG9mZnNldFgoTSksdix5LG4sZixoLGUuc2VnbWVudCxiLF8sYyxvLHApKTttLnB1c2gody5sYXN0KX1lbHNle2lmKGkmJiFuKXt2YXIgUz10ZShoLGEpLnBvaW50LEU9ZS5saW5lU3RhcnRJbmRleCtlLnNlZ21lbnQrMSxMPW5ldyB0LlBvaW50KGMuZ2V0eChFKSxjLmdldHkoRSkpLEM9dGUoTCxhKSxQPUMuc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhPjA/Qy5wb2ludDpzZShoLEwsUywxLGEpLEk9YWUoZS53cml0aW5nTW9kZSxTLFAsZCk7aWYoSSlyZXR1cm4gSX12YXIgTz1sZShnKmwuZ2V0b2Zmc2V0WChlLmdseXBoU3RhcnRJbmRleCksdix5LG4sZixoLGUuc2VnbWVudCxlLmxpbmVTdGFydEluZGV4LGUubGluZVN0YXJ0SW5kZXgrZS5saW5lTGVuZ3RoLGMsbyxwKTtpZighTylyZXR1cm57bm90RW5vdWdoUm9vbTohMH07bT1bT119Zm9yKHZhciB6PTAsRD1tO3o8RC5sZW5ndGg7eis9MSl7dmFyIFI9RFt6XTt0LmFkZER5bmFtaWNBdHRyaWJ1dGVzKHUsUi5wb2ludCxSLmFuZ2xlKX1yZXR1cm57fX1mdW5jdGlvbiBzZSh0LGUscixuLGkpe3ZhciBhPXRlKHQuYWRkKHQuc3ViKGUpLl91bml0KCkpLGkpLnBvaW50LG89ci5zdWIoYSk7cmV0dXJuIHIuYWRkKG8uX211bHQobi9vLm1hZygpKSl9ZnVuY3Rpb24gbGUoZSxyLG4saSxhLG8scyxsLGMsdSxmLGgpe3ZhciBwPWk/ZS1yOmUrcixkPXA+MD8xOi0xLG09MDtpJiYoZCo9LTEsbT1NYXRoLlBJKSxkPDAmJihtKz1NYXRoLlBJKTtmb3IodmFyIGc9ZD4wP2wrczpsK3MrMSx2PWEseT1hLHg9MCxiPTAsXz1NYXRoLmFicyhwKSx3PVtdO3grYjw9Xzspe2lmKChnKz1kKTxsfHxnPj1jKXJldHVybiBudWxsO2lmKHk9dix3LnB1c2godiksdm9pZCAwPT09KHY9aFtnXSkpe3ZhciBUPW5ldyB0LlBvaW50KHUuZ2V0eChnKSx1LmdldHkoZykpLGs9dGUoVCxmKTtpZihrLnNpZ25lZERpc3RhbmNlRnJvbUNhbWVyYT4wKXY9aFtnXT1rLnBvaW50O2Vsc2V7dmFyIEE9Zy1kO3Y9c2UoMD09PXg/bzpuZXcgdC5Qb2ludCh1LmdldHgoQSksdS5nZXR5KEEpKSxULHksXy14KzEsZil9fXgrPWIsYj15LmRpc3Qodil9dmFyIE09KF8teCkvYixTPXYuc3ViKHkpLEU9Uy5tdWx0KE0pLl9hZGQoeSk7RS5fYWRkKFMuX3VuaXQoKS5fcGVycCgpLl9tdWx0KG4qZCkpO3ZhciBMPW0rTWF0aC5hdGFuMih2LnkteS55LHYueC15LngpO3JldHVybiB3LnB1c2goRSkse3BvaW50OkUsYW5nbGU6TCxwYXRoOnd9fUt0LnByb3RvdHlwZS5rZXlzTGVuZ3RoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuYm94S2V5cy5sZW5ndGgrdGhpcy5jaXJjbGVLZXlzLmxlbmd0aH0sS3QucHJvdG90eXBlLmluc2VydD1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMuX2ZvckVhY2hDZWxsKGUscixuLGksdGhpcy5faW5zZXJ0Qm94Q2VsbCx0aGlzLmJveFVpZCsrKSx0aGlzLmJveEtleXMucHVzaCh0KSx0aGlzLmJib3hlcy5wdXNoKGUpLHRoaXMuYmJveGVzLnB1c2gociksdGhpcy5iYm94ZXMucHVzaChuKSx0aGlzLmJib3hlcy5wdXNoKGkpfSxLdC5wcm90b3R5cGUuaW5zZXJ0Q2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuX2ZvckVhY2hDZWxsKGUtbixyLW4sZStuLHIrbix0aGlzLl9pbnNlcnRDaXJjbGVDZWxsLHRoaXMuY2lyY2xlVWlkKyspLHRoaXMuY2lyY2xlS2V5cy5wdXNoKHQpLHRoaXMuY2lyY2xlcy5wdXNoKGUpLHRoaXMuY2lyY2xlcy5wdXNoKHIpLHRoaXMuY2lyY2xlcy5wdXNoKG4pfSxLdC5wcm90b3R5cGUuX2luc2VydEJveENlbGw9ZnVuY3Rpb24odCxlLHIsbixpLGEpe3RoaXMuYm94Q2VsbHNbaV0ucHVzaChhKX0sS3QucHJvdG90eXBlLl9pbnNlcnRDaXJjbGVDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt0aGlzLmNpcmNsZUNlbGxzW2ldLnB1c2goYSl9LEt0LnByb3RvdHlwZS5fcXVlcnk9ZnVuY3Rpb24odCxlLHIsbixpLGEpe2lmKHI8MHx8dD50aGlzLndpZHRofHxuPDB8fGU+dGhpcy5oZWlnaHQpcmV0dXJuIWkmJltdO3ZhciBvPVtdO2lmKHQ8PTAmJmU8PTAmJnRoaXMud2lkdGg8PXImJnRoaXMuaGVpZ2h0PD1uKXtpZihpKXJldHVybiEwO2Zvcih2YXIgcz0wO3M8dGhpcy5ib3hLZXlzLmxlbmd0aDtzKyspby5wdXNoKHtrZXk6dGhpcy5ib3hLZXlzW3NdLHgxOnRoaXMuYmJveGVzWzQqc10seTE6dGhpcy5iYm94ZXNbNCpzKzFdLHgyOnRoaXMuYmJveGVzWzQqcysyXSx5Mjp0aGlzLmJib3hlc1s0KnMrM119KTtmb3IodmFyIGw9MDtsPHRoaXMuY2lyY2xlS2V5cy5sZW5ndGg7bCsrKXt2YXIgYz10aGlzLmNpcmNsZXNbMypsXSx1PXRoaXMuY2lyY2xlc1szKmwrMV0sZj10aGlzLmNpcmNsZXNbMypsKzJdO28ucHVzaCh7a2V5OnRoaXMuY2lyY2xlS2V5c1tsXSx4MTpjLWYseTE6dS1mLHgyOmMrZix5Mjp1K2Z9KX1yZXR1cm4gYT9vLmZpbHRlcihhKTpvfXZhciBoPXtoaXRUZXN0Omksc2VlblVpZHM6e2JveDp7fSxjaXJjbGU6e319fTtyZXR1cm4gdGhpcy5fZm9yRWFjaENlbGwodCxlLHIsbix0aGlzLl9xdWVyeUNlbGwsbyxoLGEpLGk/by5sZW5ndGg+MDpvfSxLdC5wcm90b3R5cGUuX3F1ZXJ5Q2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dC1yLG89dCtyLHM9ZS1yLGw9ZStyO2lmKG88MHx8YT50aGlzLndpZHRofHxsPDB8fHM+dGhpcy5oZWlnaHQpcmV0dXJuIW4mJltdO3ZhciBjPVtdLHU9e2hpdFRlc3Q6bixjaXJjbGU6e3g6dCx5OmUscmFkaXVzOnJ9LHNlZW5VaWRzOntib3g6e30sY2lyY2xlOnt9fX07cmV0dXJuIHRoaXMuX2ZvckVhY2hDZWxsKGEscyxvLGwsdGhpcy5fcXVlcnlDZWxsQ2lyY2xlLGMsdSxpKSxuP2MubGVuZ3RoPjA6Y30sS3QucHJvdG90eXBlLnF1ZXJ5PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHRoaXMuX3F1ZXJ5KHQsZSxyLG4sITEsaSl9LEt0LnByb3RvdHlwZS5oaXRUZXN0PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHRoaXMuX3F1ZXJ5KHQsZSxyLG4sITAsaSl9LEt0LnByb3RvdHlwZS5oaXRUZXN0Q2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLl9xdWVyeUNpcmNsZSh0LGUsciwhMCxuKX0sS3QucHJvdG90eXBlLl9xdWVyeUNlbGw9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzKXt2YXIgbD1vLnNlZW5VaWRzLGM9dGhpcy5ib3hDZWxsc1tpXTtpZihudWxsIT09Yylmb3IodmFyIHU9dGhpcy5iYm94ZXMsZj0wLGg9YztmPGgubGVuZ3RoO2YrPTEpe3ZhciBwPWhbZl07aWYoIWwuYm94W3BdKXtsLmJveFtwXT0hMDt2YXIgZD00KnA7aWYodDw9dVtkKzJdJiZlPD11W2QrM10mJnI+PXVbZCswXSYmbj49dVtkKzFdJiYoIXN8fHModGhpcy5ib3hLZXlzW3BdKSkpe2lmKG8uaGl0VGVzdClyZXR1cm4gYS5wdXNoKCEwKSwhMDthLnB1c2goe2tleTp0aGlzLmJveEtleXNbcF0seDE6dVtkXSx5MTp1W2QrMV0seDI6dVtkKzJdLHkyOnVbZCszXX0pfX19dmFyIG09dGhpcy5jaXJjbGVDZWxsc1tpXTtpZihudWxsIT09bSlmb3IodmFyIGc9dGhpcy5jaXJjbGVzLHY9MCx5PW07djx5Lmxlbmd0aDt2Kz0xKXt2YXIgeD15W3ZdO2lmKCFsLmNpcmNsZVt4XSl7bC5jaXJjbGVbeF09ITA7dmFyIGI9Myp4O2lmKHRoaXMuX2NpcmNsZUFuZFJlY3RDb2xsaWRlKGdbYl0sZ1tiKzFdLGdbYisyXSx0LGUscixuKSYmKCFzfHxzKHRoaXMuY2lyY2xlS2V5c1t4XSkpKXtpZihvLmhpdFRlc3QpcmV0dXJuIGEucHVzaCghMCksITA7dmFyIF89Z1tiXSx3PWdbYisxXSxUPWdbYisyXTthLnB1c2goe2tleTp0aGlzLmNpcmNsZUtleXNbeF0seDE6Xy1ULHkxOnctVCx4MjpfK1QseTI6dytUfSl9fX19LEt0LnByb3RvdHlwZS5fcXVlcnlDZWxsQ2lyY2xlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7dmFyIGw9by5jaXJjbGUsYz1vLnNlZW5VaWRzLHU9dGhpcy5ib3hDZWxsc1tpXTtpZihudWxsIT09dSlmb3IodmFyIGY9dGhpcy5iYm94ZXMsaD0wLHA9dTtoPHAubGVuZ3RoO2grPTEpe3ZhciBkPXBbaF07aWYoIWMuYm94W2RdKXtjLmJveFtkXT0hMDt2YXIgbT00KmQ7aWYodGhpcy5fY2lyY2xlQW5kUmVjdENvbGxpZGUobC54LGwueSxsLnJhZGl1cyxmW20rMF0sZlttKzFdLGZbbSsyXSxmW20rM10pJiYoIXN8fHModGhpcy5ib3hLZXlzW2RdKSkpcmV0dXJuIGEucHVzaCghMCksITB9fXZhciBnPXRoaXMuY2lyY2xlQ2VsbHNbaV07aWYobnVsbCE9PWcpZm9yKHZhciB2PXRoaXMuY2lyY2xlcyx5PTAseD1nO3k8eC5sZW5ndGg7eSs9MSl7dmFyIGI9eFt5XTtpZighYy5jaXJjbGVbYl0pe2MuY2lyY2xlW2JdPSEwO3ZhciBfPTMqYjtpZih0aGlzLl9jaXJjbGVzQ29sbGlkZSh2W19dLHZbXysxXSx2W18rMl0sbC54LGwueSxsLnJhZGl1cykmJighc3x8cyh0aGlzLmNpcmNsZUtleXNbYl0pKSlyZXR1cm4gYS5wdXNoKCEwKSwhMH19fSxLdC5wcm90b3R5cGUuX2ZvckVhY2hDZWxsPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPXRoaXMuX2NvbnZlcnRUb1hDZWxsQ29vcmQodCksYz10aGlzLl9jb252ZXJ0VG9ZQ2VsbENvb3JkKGUpLHU9dGhpcy5fY29udmVydFRvWENlbGxDb29yZChyKSxmPXRoaXMuX2NvbnZlcnRUb1lDZWxsQ29vcmQobiksaD1sO2g8PXU7aCsrKWZvcih2YXIgcD1jO3A8PWY7cCsrKXt2YXIgZD10aGlzLnhDZWxsQ291bnQqcCtoO2lmKGkuY2FsbCh0aGlzLHQsZSxyLG4sZCxhLG8scykpcmV0dXJufX0sS3QucHJvdG90eXBlLl9jb252ZXJ0VG9YQ2VsbENvb3JkPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKHRoaXMueENlbGxDb3VudC0xLE1hdGguZmxvb3IodCp0aGlzLnhTY2FsZSkpKX0sS3QucHJvdG90eXBlLl9jb252ZXJ0VG9ZQ2VsbENvb3JkPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKHRoaXMueUNlbGxDb3VudC0xLE1hdGguZmxvb3IodCp0aGlzLnlTY2FsZSkpKX0sS3QucHJvdG90eXBlLl9jaXJjbGVzQ29sbGlkZT1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89bi10LHM9aS1lLGw9cithO3JldHVybiBsKmw+bypvK3Mqc30sS3QucHJvdG90eXBlLl9jaXJjbGVBbmRSZWN0Q29sbGlkZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz0oYS1uKS8yLGw9TWF0aC5hYnModC0obitzKSk7aWYobD5zK3IpcmV0dXJuITE7dmFyIGM9KG8taSkvMix1PU1hdGguYWJzKGUtKGkrYykpO2lmKHU+YytyKXJldHVybiExO2lmKGw8PXN8fHU8PWMpcmV0dXJuITA7dmFyIGY9bC1zLGg9dS1jO3JldHVybiBmKmYraCpoPD1yKnJ9O3ZhciBjZT1uZXcgRmxvYXQzMkFycmF5KFstMS8wLC0xLzAsMCwtMS8wLC0xLzAsMCwtMS8wLC0xLzAsMCwtMS8wLC0xLzAsMF0pO2Z1bmN0aW9uIHVlKHQsZSl7Zm9yKHZhciByPTA7cjx0O3IrKyl7dmFyIG49ZS5sZW5ndGg7ZS5yZXNpemUobis0KSxlLmZsb2F0MzIuc2V0KGNlLDMqbil9fWZ1bmN0aW9uIGZlKHQsZSxyKXt2YXIgbj1lWzBdLGk9ZVsxXTtyZXR1cm4gdFswXT1yWzBdKm4rcls0XSppK3JbMTJdLHRbMV09clsxXSpuK3JbNV0qaStyWzEzXSx0WzNdPXJbM10qbityWzddKmkrclsxNV0sdH12YXIgaGU9ZnVuY3Rpb24odCxlLHIpe3ZvaWQgMD09PWUmJihlPW5ldyBLdCh0LndpZHRoKzIwMCx0LmhlaWdodCsyMDAsMjUpKSx2b2lkIDA9PT1yJiYocj1uZXcgS3QodC53aWR0aCsyMDAsdC5oZWlnaHQrMjAwLDI1KSksdGhpcy50cmFuc2Zvcm09dCx0aGlzLmdyaWQ9ZSx0aGlzLmlnbm9yZWRHcmlkPXIsdGhpcy5waXRjaGZhY3Rvcj1NYXRoLmNvcyh0Ll9waXRjaCkqdC5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLHRoaXMuc2NyZWVuUmlnaHRCb3VuZGFyeT10LndpZHRoKzEwMCx0aGlzLnNjcmVlbkJvdHRvbUJvdW5kYXJ5PXQuaGVpZ2h0KzEwMCx0aGlzLmdyaWRSaWdodEJvdW5kYXJ5PXQud2lkdGgrMjAwLHRoaXMuZ3JpZEJvdHRvbUJvdW5kYXJ5PXQuaGVpZ2h0KzIwMH07ZnVuY3Rpb24gcGUoZSxyLG4pe3JldHVybiByKih0LkVYVEVOVC8oZS50aWxlU2l6ZSpNYXRoLnBvdygyLG4tZS50aWxlSUQub3ZlcnNjYWxlZFopKSl9aGUucHJvdG90eXBlLnBsYWNlQ29sbGlzaW9uQm94PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dGhpcy5wcm9qZWN0QW5kR2V0UGVyc3BlY3RpdmVSYXRpbyhuLHQuYW5jaG9yUG9pbnRYLHQuYW5jaG9yUG9pbnRZKSxvPXIqYS5wZXJzcGVjdGl2ZVJhdGlvLHM9dC54MSpvK2EucG9pbnQueCxsPXQueTEqbythLnBvaW50LnksYz10LngyKm8rYS5wb2ludC54LHU9dC55MipvK2EucG9pbnQueTtyZXR1cm4hdGhpcy5pc0luc2lkZUdyaWQocyxsLGMsdSl8fCFlJiZ0aGlzLmdyaWQuaGl0VGVzdChzLGwsYyx1LGkpP3tib3g6W10sb2Zmc2NyZWVuOiExfTp7Ym94OltzLGwsYyx1XSxvZmZzY3JlZW46dGhpcy5pc09mZnNjcmVlbihzLGwsYyx1KX19LGhlLnByb3RvdHlwZS5wbGFjZUNvbGxpc2lvbkNpcmNsZXM9ZnVuY3Rpb24oZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCl7dmFyIGQ9W10sbT1uZXcgdC5Qb2ludChyLmFuY2hvclgsci5hbmNob3JZKSxnPXRlKG0sbyksdj1lZSh0aGlzLnRyYW5zZm9ybS5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLGcuc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhKSx5PSh1P2EvdjphKnYpL3QuT05FX0VNLHg9dGUobSxzKS5wb2ludCxiPWllKHksaSxyLmxpbmVPZmZzZXRYKnksci5saW5lT2Zmc2V0WSp5LCExLHgsbSxyLG4scyx7fSksXz0hMSx3PSExLFQ9ITA7aWYoYil7Zm9yKHZhciBrPS41KmgqditwLEE9bmV3IHQuUG9pbnQoLTEwMCwtMTAwKSxNPW5ldyB0LlBvaW50KHRoaXMuc2NyZWVuUmlnaHRCb3VuZGFyeSx0aGlzLnNjcmVlbkJvdHRvbUJvdW5kYXJ5KSxTPW5ldyBKdCxFPWIuZmlyc3QsTD1iLmxhc3QsQz1bXSxQPUUucGF0aC5sZW5ndGgtMTtQPj0xO1AtLSlDLnB1c2goRS5wYXRoW1BdKTtmb3IodmFyIEk9MTtJPEwucGF0aC5sZW5ndGg7SSsrKUMucHVzaChMLnBhdGhbSV0pO3ZhciBPPTIuNSprO2lmKGwpe3ZhciB6PUMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdGUodCxsKX0pKTtDPXouc29tZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhPD0wfSkpP1tdOnoubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5wb2ludH0pKX12YXIgRD1bXTtpZihDLmxlbmd0aD4wKXtmb3IodmFyIFI9Q1swXS5jbG9uZSgpLEY9Q1swXS5jbG9uZSgpLEI9MTtCPEMubGVuZ3RoO0IrKylSLng9TWF0aC5taW4oUi54LENbQl0ueCksUi55PU1hdGgubWluKFIueSxDW0JdLnkpLEYueD1NYXRoLm1heChGLngsQ1tCXS54KSxGLnk9TWF0aC5tYXgoRi55LENbQl0ueSk7RD1SLng+PUEueCYmRi54PD1NLngmJlIueT49QS55JiZGLnk8PU0ueT9bQ106Ri54PEEueHx8Ui54Pk0ueHx8Ri55PEEueXx8Ui55Pk0ueT9bXTp0LmNsaXBMaW5lKFtDXSxBLngsQS55LE0ueCxNLnkpfWZvcih2YXIgTj0wLGo9RDtOPGoubGVuZ3RoO04rPTEpe3ZhciBVPWpbTl07Uy5yZXNldChVLC4yNSprKTt2YXIgVj0wO1Y9Uy5sZW5ndGg8PS41Kms/MTpNYXRoLmNlaWwoUy5wYWRkZWRMZW5ndGgvTykrMTtmb3IodmFyIEg9MDtIPFY7SCsrKXt2YXIgcT1IL01hdGgubWF4KFYtMSwxKSxHPVMubGVycChxKSxZPUcueCsxMDAsVz1HLnkrMTAwO2QucHVzaChZLFcsaywwKTt2YXIgWD1ZLWssWj1XLWssSj1ZK2ssSz1XK2s7aWYoVD1UJiZ0aGlzLmlzT2Zmc2NyZWVuKFgsWixKLEspLHc9d3x8dGhpcy5pc0luc2lkZUdyaWQoWCxaLEosSyksIWUmJnRoaXMuZ3JpZC5oaXRUZXN0Q2lyY2xlKFksVyxrLGYpJiYoXz0hMCwhYykpcmV0dXJue2NpcmNsZXM6W10sb2Zmc2NyZWVuOiExLGNvbGxpc2lvbkRldGVjdGVkOl99fX19cmV0dXJue2NpcmNsZXM6IWMmJl98fCF3P1tdOmQsb2Zmc2NyZWVuOlQsY29sbGlzaW9uRGV0ZWN0ZWQ6X319LGhlLnByb3RvdHlwZS5xdWVyeVJlbmRlcmVkU3ltYm9scz1mdW5jdGlvbihlKXtpZigwPT09ZS5sZW5ndGh8fDA9PT10aGlzLmdyaWQua2V5c0xlbmd0aCgpJiYwPT09dGhpcy5pZ25vcmVkR3JpZC5rZXlzTGVuZ3RoKCkpcmV0dXJue307Zm9yKHZhciByPVtdLG49MS8wLGk9MS8wLGE9LTEvMCxvPS0xLzAscz0wLGw9ZTtzPGwubGVuZ3RoO3MrPTEpe3ZhciBjPWxbc10sdT1uZXcgdC5Qb2ludChjLngrMTAwLGMueSsxMDApO249TWF0aC5taW4obix1LngpLGk9TWF0aC5taW4oaSx1LnkpLGE9TWF0aC5tYXgoYSx1LngpLG89TWF0aC5tYXgobyx1LnkpLHIucHVzaCh1KX1mb3IodmFyIGY9e30saD17fSxwPTAsZD10aGlzLmdyaWQucXVlcnkobixpLGEsbykuY29uY2F0KHRoaXMuaWdub3JlZEdyaWQucXVlcnkobixpLGEsbykpO3A8ZC5sZW5ndGg7cCs9MSl7dmFyIG09ZFtwXSxnPW0ua2V5O2lmKHZvaWQgMD09PWZbZy5idWNrZXRJbnN0YW5jZUlkXSYmKGZbZy5idWNrZXRJbnN0YW5jZUlkXT17fSksIWZbZy5idWNrZXRJbnN0YW5jZUlkXVtnLmZlYXR1cmVJbmRleF0pe3ZhciB2PVtuZXcgdC5Qb2ludChtLngxLG0ueTEpLG5ldyB0LlBvaW50KG0ueDIsbS55MSksbmV3IHQuUG9pbnQobS54MixtLnkyKSxuZXcgdC5Qb2ludChtLngxLG0ueTIpXTt0LnBvbHlnb25JbnRlcnNlY3RzUG9seWdvbihyLHYpJiYoZltnLmJ1Y2tldEluc3RhbmNlSWRdW2cuZmVhdHVyZUluZGV4XT0hMCx2b2lkIDA9PT1oW2cuYnVja2V0SW5zdGFuY2VJZF0mJihoW2cuYnVja2V0SW5zdGFuY2VJZF09W10pLGhbZy5idWNrZXRJbnN0YW5jZUlkXS5wdXNoKGcuZmVhdHVyZUluZGV4KSl9fXJldHVybiBofSxoZS5wcm90b3R5cGUuaW5zZXJ0Q29sbGlzaW9uQm94PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9e2J1Y2tldEluc3RhbmNlSWQ6cixmZWF0dXJlSW5kZXg6bixjb2xsaXNpb25Hcm91cElEOml9OyhlP3RoaXMuaWdub3JlZEdyaWQ6dGhpcy5ncmlkKS5pbnNlcnQoYSx0WzBdLHRbMV0sdFsyXSx0WzNdKX0saGUucHJvdG90eXBlLmluc2VydENvbGxpc2lvbkNpcmNsZXM9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIGE9ZT90aGlzLmlnbm9yZWRHcmlkOnRoaXMuZ3JpZCxvPXtidWNrZXRJbnN0YW5jZUlkOnIsZmVhdHVyZUluZGV4Om4sY29sbGlzaW9uR3JvdXBJRDppfSxzPTA7czx0Lmxlbmd0aDtzKz00KWEuaW5zZXJ0Q2lyY2xlKG8sdFtzXSx0W3MrMV0sdFtzKzJdKX0saGUucHJvdG90eXBlLnByb2plY3RBbmRHZXRQZXJzcGVjdGl2ZVJhdGlvPWZ1bmN0aW9uKGUscixuKXt2YXIgaT1bcixuLDAsMV07cmV0dXJuIGZlKGksaSxlKSx7cG9pbnQ6bmV3IHQuUG9pbnQoKGlbMF0vaVszXSsxKS8yKnRoaXMudHJhbnNmb3JtLndpZHRoKzEwMCwoLWlbMV0vaVszXSsxKS8yKnRoaXMudHJhbnNmb3JtLmhlaWdodCsxMDApLHBlcnNwZWN0aXZlUmF0aW86LjUrdGhpcy50cmFuc2Zvcm0uY2FtZXJhVG9DZW50ZXJEaXN0YW5jZS9pWzNdKi41fX0saGUucHJvdG90eXBlLmlzT2Zmc2NyZWVuPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiByPDEwMHx8dD49dGhpcy5zY3JlZW5SaWdodEJvdW5kYXJ5fHxuPDEwMHx8ZT50aGlzLnNjcmVlbkJvdHRvbUJvdW5kYXJ5fSxoZS5wcm90b3R5cGUuaXNJbnNpZGVHcmlkPWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiByPj0wJiZ0PHRoaXMuZ3JpZFJpZ2h0Qm91bmRhcnkmJm4+PTAmJmU8dGhpcy5ncmlkQm90dG9tQm91bmRhcnl9LGhlLnByb3RvdHlwZS5nZXRWaWV3cG9ydE1hdHJpeD1mdW5jdGlvbigpe3ZhciBlPXQuaWRlbnRpdHkoW10pO3JldHVybiB0LnRyYW5zbGF0ZShlLGUsWy0xMDAsLTEwMCwwXSksZX07dmFyIGRlPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMub3BhY2l0eT10P01hdGgubWF4KDAsTWF0aC5taW4oMSx0Lm9wYWNpdHkrKHQucGxhY2VkP2U6LWUpKSk6biYmcj8xOjAsdGhpcy5wbGFjZWQ9cn07ZGUucHJvdG90eXBlLmlzSGlkZGVuPWZ1bmN0aW9uKCl7cmV0dXJuIDA9PT10aGlzLm9wYWNpdHkmJiF0aGlzLnBsYWNlZH07dmFyIG1lPWZ1bmN0aW9uKHQsZSxyLG4saSl7dGhpcy50ZXh0PW5ldyBkZSh0P3QudGV4dDpudWxsLGUscixpKSx0aGlzLmljb249bmV3IGRlKHQ/dC5pY29uOm51bGwsZSxuLGkpfTttZS5wcm90b3R5cGUuaXNIaWRkZW49ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50ZXh0LmlzSGlkZGVuKCkmJnRoaXMuaWNvbi5pc0hpZGRlbigpfTt2YXIgZ2U9ZnVuY3Rpb24odCxlLHIpe3RoaXMudGV4dD10LHRoaXMuaWNvbj1lLHRoaXMuc2tpcEZhZGU9cn0sdmU9ZnVuY3Rpb24oKXt0aGlzLmludlByb2pNYXRyaXg9dC5jcmVhdGUoKSx0aGlzLnZpZXdwb3J0TWF0cml4PXQuY3JlYXRlKCksdGhpcy5jaXJjbGVzPVtdfSx5ZT1mdW5jdGlvbih0LGUscixuLGkpe3RoaXMuYnVja2V0SW5zdGFuY2VJZD10LHRoaXMuZmVhdHVyZUluZGV4PWUsdGhpcy5zb3VyY2VMYXllckluZGV4PXIsdGhpcy5idWNrZXRJbmRleD1uLHRoaXMudGlsZUlEPWl9LHhlPWZ1bmN0aW9uKHQpe3RoaXMuY3Jvc3NTb3VyY2VDb2xsaXNpb25zPXQsdGhpcy5tYXhHcm91cElEPTAsdGhpcy5jb2xsaXNpb25Hcm91cHM9e319O2Z1bmN0aW9uIGJlKGUscixuLGksYSl7dmFyIG89dC5nZXRBbmNob3JBbGlnbm1lbnQoZSkscz0tKG8uaG9yaXpvbnRhbEFsaWduLS41KSpyLGw9LShvLnZlcnRpY2FsQWxpZ24tLjUpKm4sYz10LmV2YWx1YXRlVmFyaWFibGVPZmZzZXQoZSxpKTtyZXR1cm4gbmV3IHQuUG9pbnQocytjWzBdKmEsbCtjWzFdKmEpfWZ1bmN0aW9uIF9lKGUscixuLGksYSxvKXt2YXIgcz1lLngxLGw9ZS54MixjPWUueTEsdT1lLnkyLGY9ZS5hbmNob3JQb2ludFgsaD1lLmFuY2hvclBvaW50WSxwPW5ldyB0LlBvaW50KHIsbik7cmV0dXJuIGkmJnAuX3JvdGF0ZShhP286LW8pLHt4MTpzK3AueCx5MTpjK3AueSx4MjpsK3AueCx5Mjp1K3AueSxhbmNob3JQb2ludFg6ZixhbmNob3JQb2ludFk6aH19eGUucHJvdG90eXBlLmdldD1mdW5jdGlvbih0KXtpZih0aGlzLmNyb3NzU291cmNlQ29sbGlzaW9ucylyZXR1cm57SUQ6MCxwcmVkaWNhdGU6bnVsbH07aWYoIXRoaXMuY29sbGlzaW9uR3JvdXBzW3RdKXt2YXIgZT0rK3RoaXMubWF4R3JvdXBJRDt0aGlzLmNvbGxpc2lvbkdyb3Vwc1t0XT17SUQ6ZSxwcmVkaWNhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sbGlzaW9uR3JvdXBJRD09PWV9fX1yZXR1cm4gdGhpcy5jb2xsaXNpb25Hcm91cHNbdF19O3ZhciB3ZT1mdW5jdGlvbih0LGUscixuKXt0aGlzLnRyYW5zZm9ybT10LmNsb25lKCksdGhpcy5jb2xsaXNpb25JbmRleD1uZXcgaGUodGhpcy50cmFuc2Zvcm0pLHRoaXMucGxhY2VtZW50cz17fSx0aGlzLm9wYWNpdGllcz17fSx0aGlzLnZhcmlhYmxlT2Zmc2V0cz17fSx0aGlzLnN0YWxlPSExLHRoaXMuY29tbWl0VGltZT0wLHRoaXMuZmFkZUR1cmF0aW9uPWUsdGhpcy5yZXRhaW5lZFF1ZXJ5RGF0YT17fSx0aGlzLmNvbGxpc2lvbkdyb3Vwcz1uZXcgeGUociksdGhpcy5jb2xsaXNpb25DaXJjbGVBcnJheXM9e30sdGhpcy5wcmV2UGxhY2VtZW50PW4sbiYmKG4ucHJldlBsYWNlbWVudD12b2lkIDApLHRoaXMucGxhY2VkT3JpZW50YXRpb25zPXt9fTtmdW5jdGlvbiBUZSh0LGUscixuLGkpe3QuZW1wbGFjZUJhY2soZT8xOjAscj8xOjAsbnx8MCxpfHwwKSx0LmVtcGxhY2VCYWNrKGU/MTowLHI/MTowLG58fDAsaXx8MCksdC5lbXBsYWNlQmFjayhlPzE6MCxyPzE6MCxufHwwLGl8fDApLHQuZW1wbGFjZUJhY2soZT8xOjAscj8xOjAsbnx8MCxpfHwwKX13ZS5wcm90b3R5cGUuZ2V0QnVja2V0UGFydHM9ZnVuY3Rpb24oZSxyLG4saSl7dmFyIGE9bi5nZXRCdWNrZXQociksbz1uLmxhdGVzdEZlYXR1cmVJbmRleDtpZihhJiZvJiZyLmlkPT09YS5sYXllcklkc1swXSl7dmFyIHM9bi5jb2xsaXNpb25Cb3hBcnJheSxsPWEubGF5ZXJzWzBdLmxheW91dCxjPU1hdGgucG93KDIsdGhpcy50cmFuc2Zvcm0uem9vbS1uLnRpbGVJRC5vdmVyc2NhbGVkWiksdT1uLnRpbGVTaXplL3QuRVhURU5ULGY9dGhpcy50cmFuc2Zvcm0uY2FsY3VsYXRlUG9zTWF0cml4KG4udGlsZUlELnRvVW53cmFwcGVkKCkpLGg9Im1hcCI9PT1sLmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSxwPSJtYXAiPT09bC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50IiksZD1wZShuLDEsdGhpcy50cmFuc2Zvcm0uem9vbSksbT1RdChmLGgscCx0aGlzLnRyYW5zZm9ybSxkKSxnPW51bGw7aWYoaCl7dmFyIHY9JHQoZixoLHAsdGhpcy50cmFuc2Zvcm0sZCk7Zz10Lm11bHRpcGx5KFtdLHRoaXMudHJhbnNmb3JtLmxhYmVsUGxhbmVNYXRyaXgsdil9dGhpcy5yZXRhaW5lZFF1ZXJ5RGF0YVthLmJ1Y2tldEluc3RhbmNlSWRdPW5ldyB5ZShhLmJ1Y2tldEluc3RhbmNlSWQsbyxhLnNvdXJjZUxheWVySW5kZXgsYS5pbmRleCxuLnRpbGVJRCk7dmFyIHk9e2J1Y2tldDphLGxheW91dDpsLHBvc01hdHJpeDpmLHRleHRMYWJlbFBsYW5lTWF0cml4Om0sbGFiZWxUb1NjcmVlbk1hdHJpeDpnLHNjYWxlOmMsdGV4dFBpeGVsUmF0aW86dSxob2xkaW5nRm9yRmFkZTpuLmhvbGRpbmdGb3JGYWRlKCksY29sbGlzaW9uQm94QXJyYXk6cyxwYXJ0aWFsbHlFdmFsdWF0ZWRUZXh0U2l6ZTp0LmV2YWx1YXRlU2l6ZUZvclpvb20oYS50ZXh0U2l6ZURhdGEsdGhpcy50cmFuc2Zvcm0uem9vbSksY29sbGlzaW9uR3JvdXA6dGhpcy5jb2xsaXNpb25Hcm91cHMuZ2V0KGEuc291cmNlSUQpfTtpZihpKWZvcih2YXIgeD0wLGI9YS5zb3J0S2V5UmFuZ2VzO3g8Yi5sZW5ndGg7eCs9MSl7dmFyIF89Ylt4XSx3PV8uc29ydEtleSxUPV8uc3ltYm9sSW5zdGFuY2VTdGFydCxrPV8uc3ltYm9sSW5zdGFuY2VFbmQ7ZS5wdXNoKHtzb3J0S2V5Oncsc3ltYm9sSW5zdGFuY2VTdGFydDpULHN5bWJvbEluc3RhbmNlRW5kOmsscGFyYW1ldGVyczp5fSl9ZWxzZSBlLnB1c2goe3N5bWJvbEluc3RhbmNlU3RhcnQ6MCxzeW1ib2xJbnN0YW5jZUVuZDphLnN5bWJvbEluc3RhbmNlcy5sZW5ndGgscGFyYW1ldGVyczp5fSl9fSx3ZS5wcm90b3R5cGUuYXR0ZW1wdEFuY2hvclBsYWNlbWVudD1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjLHUsZixoLHAsZCl7dmFyIG0sZz1bZi50ZXh0T2Zmc2V0MCxmLnRleHRPZmZzZXQxXSx2PWJlKHQscixuLGcsaSkseT10aGlzLmNvbGxpc2lvbkluZGV4LnBsYWNlQ29sbGlzaW9uQm94KF9lKGUsdi54LHYueSxhLG8sdGhpcy50cmFuc2Zvcm0uYW5nbGUpLHUscyxsLGMucHJlZGljYXRlKTtpZihkJiYwPT09dGhpcy5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkJveChfZShkLHYueCx2LnksYSxvLHRoaXMudHJhbnNmb3JtLmFuZ2xlKSx1LHMsbCxjLnByZWRpY2F0ZSkuYm94Lmxlbmd0aClyZXR1cm47aWYoeS5ib3gubGVuZ3RoPjApcmV0dXJuIHRoaXMucHJldlBsYWNlbWVudCYmdGhpcy5wcmV2UGxhY2VtZW50LnZhcmlhYmxlT2Zmc2V0c1tmLmNyb3NzVGlsZUlEXSYmdGhpcy5wcmV2UGxhY2VtZW50LnBsYWNlbWVudHNbZi5jcm9zc1RpbGVJRF0mJnRoaXMucHJldlBsYWNlbWVudC5wbGFjZW1lbnRzW2YuY3Jvc3NUaWxlSURdLnRleHQmJihtPXRoaXMucHJldlBsYWNlbWVudC52YXJpYWJsZU9mZnNldHNbZi5jcm9zc1RpbGVJRF0uYW5jaG9yKSx0aGlzLnZhcmlhYmxlT2Zmc2V0c1tmLmNyb3NzVGlsZUlEXT17dGV4dE9mZnNldDpnLHdpZHRoOnIsaGVpZ2h0Om4sYW5jaG9yOnQsdGV4dEJveFNjYWxlOmkscHJldkFuY2hvcjptfSx0aGlzLm1hcmtVc2VkSnVzdGlmaWNhdGlvbihoLHQsZixwKSxoLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJih0aGlzLm1hcmtVc2VkT3JpZW50YXRpb24oaCxwLGYpLHRoaXMucGxhY2VkT3JpZW50YXRpb25zW2YuY3Jvc3NUaWxlSURdPXApLHtzaGlmdDp2LHBsYWNlZEdseXBoQm94ZXM6eX19LHdlLnByb3RvdHlwZS5wbGFjZUxheWVyQnVja2V0UGFydD1mdW5jdGlvbihlLHIsbil7dmFyIGk9dGhpcyxhPWUucGFyYW1ldGVycyxvPWEuYnVja2V0LHM9YS5sYXlvdXQsbD1hLnBvc01hdHJpeCxjPWEudGV4dExhYmVsUGxhbmVNYXRyaXgsdT1hLmxhYmVsVG9TY3JlZW5NYXRyaXgsZj1hLnRleHRQaXhlbFJhdGlvLGg9YS5ob2xkaW5nRm9yRmFkZSxwPWEuY29sbGlzaW9uQm94QXJyYXksZD1hLnBhcnRpYWxseUV2YWx1YXRlZFRleHRTaXplLG09YS5jb2xsaXNpb25Hcm91cCxnPXMuZ2V0KCJ0ZXh0LW9wdGlvbmFsIiksdj1zLmdldCgiaWNvbi1vcHRpb25hbCIpLHk9cy5nZXQoInRleHQtYWxsb3ctb3ZlcmxhcCIpLHg9cy5nZXQoImljb24tYWxsb3ctb3ZlcmxhcCIpLGI9Im1hcCI9PT1zLmdldCgidGV4dC1yb3RhdGlvbi1hbGlnbm1lbnQiKSxfPSJtYXAiPT09cy5nZXQoInRleHQtcGl0Y2gtYWxpZ25tZW50Iiksdz0ibm9uZSIhPT1zLmdldCgiaWNvbi10ZXh0LWZpdCIpLFQ9InZpZXdwb3J0LXkiPT09cy5nZXQoInN5bWJvbC16LW9yZGVyIiksaz15JiYoeHx8IW8uaGFzSWNvbkRhdGEoKXx8diksQT14JiYoeXx8IW8uaGFzVGV4dERhdGEoKXx8Zyk7IW8uY29sbGlzaW9uQXJyYXlzJiZwJiZvLmRlc2VyaWFsaXplQ29sbGlzaW9uQm94ZXMocCk7dmFyIE09ZnVuY3Rpb24oZSxhKXtpZighcltlLmNyb3NzVGlsZUlEXSlpZihoKWkucGxhY2VtZW50c1tlLmNyb3NzVGlsZUlEXT1uZXcgZ2UoITEsITEsITEpO2Vsc2V7dmFyIHAsVD0hMSxNPSExLFM9ITAsRT1udWxsLEw9e2JveDpudWxsLG9mZnNjcmVlbjpudWxsfSxDPXtib3g6bnVsbCxvZmZzY3JlZW46bnVsbH0sUD1udWxsLEk9bnVsbCxPPTAsej0wLEQ9MDthLnRleHRGZWF0dXJlSW5kZXg/Tz1hLnRleHRGZWF0dXJlSW5kZXg6ZS51c2VSdW50aW1lQ29sbGlzaW9uQ2lyY2xlcyYmKE89ZS5mZWF0dXJlSW5kZXgpLGEudmVydGljYWxUZXh0RmVhdHVyZUluZGV4JiYoej1hLnZlcnRpY2FsVGV4dEZlYXR1cmVJbmRleCk7dmFyIFI9YS50ZXh0Qm94O2lmKFIpe3ZhciBGPWZ1bmN0aW9uKHIpe3ZhciBuPXQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbDtpZihvLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJiFyJiZpLnByZXZQbGFjZW1lbnQpe3ZhciBhPWkucHJldlBsYWNlbWVudC5wbGFjZWRPcmllbnRhdGlvbnNbZS5jcm9zc1RpbGVJRF07YSYmKGkucGxhY2VkT3JpZW50YXRpb25zW2UuY3Jvc3NUaWxlSURdPWEsbj1hLGkubWFya1VzZWRPcmllbnRhdGlvbihvLG4sZSkpfXJldHVybiBufSxCPWZ1bmN0aW9uKHIsbil7aWYoby5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZlLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcz4wJiZhLnZlcnRpY2FsVGV4dEJveClmb3IodmFyIGk9MCxzPW8ud3JpdGluZ01vZGVzO2k8cy5sZW5ndGg7aSs9MSl7aWYoc1tpXT09PXQuV3JpdGluZ01vZGUudmVydGljYWw/KEw9bigpLEM9TCk6TD1yKCksTCYmTC5ib3gmJkwuYm94Lmxlbmd0aClicmVha31lbHNlIEw9cigpfTtpZihzLmdldCgidGV4dC12YXJpYWJsZS1hbmNob3IiKSl7dmFyIE49cy5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIik7aWYoaS5wcmV2UGxhY2VtZW50JiZpLnByZXZQbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzW2UuY3Jvc3NUaWxlSURdKXt2YXIgaj1pLnByZXZQbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzW2UuY3Jvc3NUaWxlSURdO04uaW5kZXhPZihqLmFuY2hvcik+MCYmKE49Ti5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0IT09ai5hbmNob3J9KSkpLnVuc2hpZnQoai5hbmNob3IpfXZhciBVPWZ1bmN0aW9uKHQscixuKXtmb3IodmFyIGE9dC54Mi10LngxLHM9dC55Mi10LnkxLGM9ZS50ZXh0Qm94U2NhbGUsdT13JiYheD9yOm51bGwsaD17Ym94OltdLG9mZnNjcmVlbjohMX0scD15PzIqTi5sZW5ndGg6Ti5sZW5ndGgsZD0wO2Q8cDsrK2Qpe3ZhciBnPU5bZCVOLmxlbmd0aF0sdj1kPj1OLmxlbmd0aCxrPWkuYXR0ZW1wdEFuY2hvclBsYWNlbWVudChnLHQsYSxzLGMsYixfLGYsbCxtLHYsZSxvLG4sdSk7aWYoayYmKGg9ay5wbGFjZWRHbHlwaEJveGVzKSYmaC5ib3gmJmguYm94Lmxlbmd0aCl7VD0hMCxFPWsuc2hpZnQ7YnJlYWt9fXJldHVybiBofTtCKChmdW5jdGlvbigpe3JldHVybiBVKFIsYS5pY29uQm94LHQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbCl9KSwoZnVuY3Rpb24oKXt2YXIgcj1hLnZlcnRpY2FsVGV4dEJveCxuPUwmJkwuYm94JiZMLmJveC5sZW5ndGg7cmV0dXJuIG8uYWxsb3dWZXJ0aWNhbFBsYWNlbWVudCYmIW4mJmUubnVtVmVydGljYWxHbHlwaFZlcnRpY2VzPjAmJnI/VShyLGEudmVydGljYWxJY29uQm94LHQuV3JpdGluZ01vZGUudmVydGljYWwpOntib3g6bnVsbCxvZmZzY3JlZW46bnVsbH19KSksTCYmKFQ9TC5ib3gsUz1MLm9mZnNjcmVlbik7dmFyIFY9RihMJiZMLmJveCk7aWYoIVQmJmkucHJldlBsYWNlbWVudCl7dmFyIEg9aS5wcmV2UGxhY2VtZW50LnZhcmlhYmxlT2Zmc2V0c1tlLmNyb3NzVGlsZUlEXTtIJiYoaS52YXJpYWJsZU9mZnNldHNbZS5jcm9zc1RpbGVJRF09SCxpLm1hcmtVc2VkSnVzdGlmaWNhdGlvbihvLEguYW5jaG9yLGUsVikpfX1lbHNle3ZhciBxPWZ1bmN0aW9uKHQscil7dmFyIG49aS5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkJveCh0LHksZixsLG0ucHJlZGljYXRlKTtyZXR1cm4gbiYmbi5ib3gmJm4uYm94Lmxlbmd0aCYmKGkubWFya1VzZWRPcmllbnRhdGlvbihvLHIsZSksaS5wbGFjZWRPcmllbnRhdGlvbnNbZS5jcm9zc1RpbGVJRF09ciksbn07QigoZnVuY3Rpb24oKXtyZXR1cm4gcShSLHQuV3JpdGluZ01vZGUuaG9yaXpvbnRhbCl9KSwoZnVuY3Rpb24oKXt2YXIgcj1hLnZlcnRpY2FsVGV4dEJveDtyZXR1cm4gby5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZlLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcz4wJiZyP3Eocix0LldyaXRpbmdNb2RlLnZlcnRpY2FsKTp7Ym94Om51bGwsb2Zmc2NyZWVuOm51bGx9fSkpLEYoTCYmTC5ib3gmJkwuYm94Lmxlbmd0aCl9fWlmKFQ9KHA9TCkmJnAuYm94JiZwLmJveC5sZW5ndGg+MCxTPXAmJnAub2Zmc2NyZWVuLGUudXNlUnVudGltZUNvbGxpc2lvbkNpcmNsZXMpe3ZhciBHPW8udGV4dC5wbGFjZWRTeW1ib2xBcnJheS5nZXQoZS5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgpLFk9dC5ldmFsdWF0ZVNpemVGb3JGZWF0dXJlKG8udGV4dFNpemVEYXRhLGQsRyksVz1zLmdldCgidGV4dC1wYWRkaW5nIiksWD1lLmNvbGxpc2lvbkNpcmNsZURpYW1ldGVyO1A9aS5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkNpcmNsZXMoeSxHLG8ubGluZVZlcnRleEFycmF5LG8uZ2x5cGhPZmZzZXRBcnJheSxZLGwsYyx1LG4sXyxtLnByZWRpY2F0ZSxYLFcpLFQ9eXx8UC5jaXJjbGVzLmxlbmd0aD4wJiYhUC5jb2xsaXNpb25EZXRlY3RlZCxTPVMmJlAub2Zmc2NyZWVufWlmKGEuaWNvbkZlYXR1cmVJbmRleCYmKEQ9YS5pY29uRmVhdHVyZUluZGV4KSxhLmljb25Cb3gpe3ZhciBaPWZ1bmN0aW9uKHQpe3ZhciBlPXcmJkU/X2UodCxFLngsRS55LGIsXyxpLnRyYW5zZm9ybS5hbmdsZSk6dDtyZXR1cm4gaS5jb2xsaXNpb25JbmRleC5wbGFjZUNvbGxpc2lvbkJveChlLHgsZixsLG0ucHJlZGljYXRlKX07TT1DJiZDLmJveCYmQy5ib3gubGVuZ3RoJiZhLnZlcnRpY2FsSWNvbkJveD8oST1aKGEudmVydGljYWxJY29uQm94KSkuYm94Lmxlbmd0aD4wOihJPVooYS5pY29uQm94KSkuYm94Lmxlbmd0aD4wLFM9UyYmSS5vZmZzY3JlZW59dmFyIEo9Z3x8MD09PWUubnVtSG9yaXpvbnRhbEdseXBoVmVydGljZXMmJjA9PT1lLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcyxLPXZ8fDA9PT1lLm51bUljb25WZXJ0aWNlcztpZihKfHxLP0s/Snx8KE09TSYmVCk6VD1NJiZUOk09VD1NJiZULFQmJnAmJnAuYm94JiYoQyYmQy5ib3gmJno/aS5jb2xsaXNpb25JbmRleC5pbnNlcnRDb2xsaXNpb25Cb3gocC5ib3gscy5nZXQoInRleHQtaWdub3JlLXBsYWNlbWVudCIpLG8uYnVja2V0SW5zdGFuY2VJZCx6LG0uSUQpOmkuY29sbGlzaW9uSW5kZXguaW5zZXJ0Q29sbGlzaW9uQm94KHAuYm94LHMuZ2V0KCJ0ZXh0LWlnbm9yZS1wbGFjZW1lbnQiKSxvLmJ1Y2tldEluc3RhbmNlSWQsTyxtLklEKSksTSYmSSYmaS5jb2xsaXNpb25JbmRleC5pbnNlcnRDb2xsaXNpb25Cb3goSS5ib3gscy5nZXQoImljb24taWdub3JlLXBsYWNlbWVudCIpLG8uYnVja2V0SW5zdGFuY2VJZCxELG0uSUQpLFAmJihUJiZpLmNvbGxpc2lvbkluZGV4Lmluc2VydENvbGxpc2lvbkNpcmNsZXMoUC5jaXJjbGVzLHMuZ2V0KCJ0ZXh0LWlnbm9yZS1wbGFjZW1lbnQiKSxvLmJ1Y2tldEluc3RhbmNlSWQsTyxtLklEKSxuKSl7dmFyIFE9by5idWNrZXRJbnN0YW5jZUlkLCQ9aS5jb2xsaXNpb25DaXJjbGVBcnJheXNbUV07dm9pZCAwPT09JCYmKCQ9aS5jb2xsaXNpb25DaXJjbGVBcnJheXNbUV09bmV3IHZlKTtmb3IodmFyIHR0PTA7dHQ8UC5jaXJjbGVzLmxlbmd0aDt0dCs9NCkkLmNpcmNsZXMucHVzaChQLmNpcmNsZXNbdHQrMF0pLCQuY2lyY2xlcy5wdXNoKFAuY2lyY2xlc1t0dCsxXSksJC5jaXJjbGVzLnB1c2goUC5jaXJjbGVzW3R0KzJdKSwkLmNpcmNsZXMucHVzaChQLmNvbGxpc2lvbkRldGVjdGVkPzE6MCl9aS5wbGFjZW1lbnRzW2UuY3Jvc3NUaWxlSURdPW5ldyBnZShUfHxrLE18fEEsU3x8by5qdXN0UmVsb2FkZWQpLHJbZS5jcm9zc1RpbGVJRF09ITB9fTtpZihUKWZvcih2YXIgUz1vLmdldFNvcnRlZFN5bWJvbEluZGV4ZXModGhpcy50cmFuc2Zvcm0uYW5nbGUpLEU9Uy5sZW5ndGgtMTtFPj0wOy0tRSl7dmFyIEw9U1tFXTtNKG8uc3ltYm9sSW5zdGFuY2VzLmdldChMKSxvLmNvbGxpc2lvbkFycmF5c1tMXSl9ZWxzZSBmb3IodmFyIEM9ZS5zeW1ib2xJbnN0YW5jZVN0YXJ0O0M8ZS5zeW1ib2xJbnN0YW5jZUVuZDtDKyspTShvLnN5bWJvbEluc3RhbmNlcy5nZXQoQyksby5jb2xsaXNpb25BcnJheXNbQ10pO2lmKG4mJm8uYnVja2V0SW5zdGFuY2VJZCBpbiB0aGlzLmNvbGxpc2lvbkNpcmNsZUFycmF5cyl7dmFyIFA9dGhpcy5jb2xsaXNpb25DaXJjbGVBcnJheXNbby5idWNrZXRJbnN0YW5jZUlkXTt0LmludmVydChQLmludlByb2pNYXRyaXgsbCksUC52aWV3cG9ydE1hdHJpeD10aGlzLmNvbGxpc2lvbkluZGV4LmdldFZpZXdwb3J0TWF0cml4KCl9by5qdXN0UmVsb2FkZWQ9ITF9LHdlLnByb3RvdHlwZS5tYXJrVXNlZEp1c3RpZmljYXRpb249ZnVuY3Rpb24oZSxyLG4saSl7dmFyIGEsbz17bGVmdDpuLmxlZnRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsY2VudGVyOm4uY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LHJpZ2h0Om4ucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXh9O2E9aT09PXQuV3JpdGluZ01vZGUudmVydGljYWw/bi52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleDpvW3QuZ2V0QW5jaG9ySnVzdGlmaWNhdGlvbihyKV07Zm9yKHZhciBzPTAsbD1bbi5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LG4uY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LG4ucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsbi52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleF07czxsLmxlbmd0aDtzKz0xKXt2YXIgYz1sW3NdO2M+PTAmJihlLnRleHQucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KGMpLmNyb3NzVGlsZUlEPWE+PTAmJmMhPT1hPzA6bi5jcm9zc1RpbGVJRCl9fSx3ZS5wcm90b3R5cGUubWFya1VzZWRPcmllbnRhdGlvbj1mdW5jdGlvbihlLHIsbil7Zm9yKHZhciBpPXI9PT10LldyaXRpbmdNb2RlLmhvcml6b250YWx8fHI9PT10LldyaXRpbmdNb2RlLmhvcml6b250YWxPbmx5P3I6MCxhPXI9PT10LldyaXRpbmdNb2RlLnZlcnRpY2FsP3I6MCxvPTAscz1bbi5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LG4uY2VudGVySnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4LG4ucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXhdO288cy5sZW5ndGg7bys9MSl7dmFyIGw9c1tvXTtlLnRleHQucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KGwpLnBsYWNlZE9yaWVudGF0aW9uPWl9bi52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleCYmKGUudGV4dC5wbGFjZWRTeW1ib2xBcnJheS5nZXQobi52ZXJ0aWNhbFBsYWNlZFRleHRTeW1ib2xJbmRleCkucGxhY2VkT3JpZW50YXRpb249YSl9LHdlLnByb3RvdHlwZS5jb21taXQ9ZnVuY3Rpb24odCl7dGhpcy5jb21taXRUaW1lPXQsdGhpcy56b29tQXRMYXN0UmVjZW5jeUNoZWNrPXRoaXMudHJhbnNmb3JtLnpvb207dmFyIGU9dGhpcy5wcmV2UGxhY2VtZW50LHI9ITE7dGhpcy5wcmV2Wm9vbUFkanVzdG1lbnQ9ZT9lLnpvb21BZGp1c3RtZW50KHRoaXMudHJhbnNmb3JtLnpvb20pOjA7dmFyIG49ZT9lLnN5bWJvbEZhZGVDaGFuZ2UodCk6MSxpPWU/ZS5vcGFjaXRpZXM6e30sYT1lP2UudmFyaWFibGVPZmZzZXRzOnt9LG89ZT9lLnBsYWNlZE9yaWVudGF0aW9uczp7fTtmb3IodmFyIHMgaW4gdGhpcy5wbGFjZW1lbnRzKXt2YXIgbD10aGlzLnBsYWNlbWVudHNbc10sYz1pW3NdO2M/KHRoaXMub3BhY2l0aWVzW3NdPW5ldyBtZShjLG4sbC50ZXh0LGwuaWNvbikscj1yfHxsLnRleHQhPT1jLnRleHQucGxhY2VkfHxsLmljb24hPT1jLmljb24ucGxhY2VkKToodGhpcy5vcGFjaXRpZXNbc109bmV3IG1lKG51bGwsbixsLnRleHQsbC5pY29uLGwuc2tpcEZhZGUpLHI9cnx8bC50ZXh0fHxsLmljb24pfWZvcih2YXIgdSBpbiBpKXt2YXIgZj1pW3VdO2lmKCF0aGlzLm9wYWNpdGllc1t1XSl7dmFyIGg9bmV3IG1lKGYsbiwhMSwhMSk7aC5pc0hpZGRlbigpfHwodGhpcy5vcGFjaXRpZXNbdV09aCxyPXJ8fGYudGV4dC5wbGFjZWR8fGYuaWNvbi5wbGFjZWQpfX1mb3IodmFyIHAgaW4gYSl0aGlzLnZhcmlhYmxlT2Zmc2V0c1twXXx8IXRoaXMub3BhY2l0aWVzW3BdfHx0aGlzLm9wYWNpdGllc1twXS5pc0hpZGRlbigpfHwodGhpcy52YXJpYWJsZU9mZnNldHNbcF09YVtwXSk7Zm9yKHZhciBkIGluIG8pdGhpcy5wbGFjZWRPcmllbnRhdGlvbnNbZF18fCF0aGlzLm9wYWNpdGllc1tkXXx8dGhpcy5vcGFjaXRpZXNbZF0uaXNIaWRkZW4oKXx8KHRoaXMucGxhY2VkT3JpZW50YXRpb25zW2RdPW9bZF0pO3I/dGhpcy5sYXN0UGxhY2VtZW50Q2hhbmdlVGltZT10OiJudW1iZXIiIT10eXBlb2YgdGhpcy5sYXN0UGxhY2VtZW50Q2hhbmdlVGltZSYmKHRoaXMubGFzdFBsYWNlbWVudENoYW5nZVRpbWU9ZT9lLmxhc3RQbGFjZW1lbnRDaGFuZ2VUaW1lOnQpfSx3ZS5wcm90b3R5cGUudXBkYXRlTGF5ZXJPcGFjaXRpZXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9e30sbj0wLGk9ZTtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl0sbz1hLmdldEJ1Y2tldCh0KTtvJiZhLmxhdGVzdEZlYXR1cmVJbmRleCYmdC5pZD09PW8ubGF5ZXJJZHNbMF0mJnRoaXMudXBkYXRlQnVja2V0T3BhY2l0aWVzKG8scixhLmNvbGxpc2lvbkJveEFycmF5KX19LHdlLnByb3RvdHlwZS51cGRhdGVCdWNrZXRPcGFjaXRpZXM9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPXRoaXM7ZS5oYXNUZXh0RGF0YSgpJiZlLnRleHQub3BhY2l0eVZlcnRleEFycmF5LmNsZWFyKCksZS5oYXNJY29uRGF0YSgpJiZlLmljb24ub3BhY2l0eVZlcnRleEFycmF5LmNsZWFyKCksZS5oYXNJY29uQ29sbGlzaW9uQm94RGF0YSgpJiZlLmljb25Db2xsaXNpb25Cb3guY29sbGlzaW9uVmVydGV4QXJyYXkuY2xlYXIoKSxlLmhhc1RleHRDb2xsaXNpb25Cb3hEYXRhKCkmJmUudGV4dENvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheS5jbGVhcigpO3ZhciBhPWUubGF5ZXJzWzBdLmxheW91dCxvPW5ldyBtZShudWxsLDAsITEsITEsITApLHM9YS5nZXQoInRleHQtYWxsb3ctb3ZlcmxhcCIpLGw9YS5nZXQoImljb24tYWxsb3ctb3ZlcmxhcCIpLGM9YS5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIiksdT0ibWFwIj09PWEuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpLGY9Im1hcCI9PT1hLmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSxoPSJub25lIiE9PWEuZ2V0KCJpY29uLXRleHQtZml0IikscD1uZXcgbWUobnVsbCwwLHMmJihsfHwhZS5oYXNJY29uRGF0YSgpfHxhLmdldCgiaWNvbi1vcHRpb25hbCIpKSxsJiYoc3x8IWUuaGFzVGV4dERhdGEoKXx8YS5nZXQoInRleHQtb3B0aW9uYWwiKSksITApOyFlLmNvbGxpc2lvbkFycmF5cyYmbiYmKGUuaGFzSWNvbkNvbGxpc2lvbkJveERhdGEoKXx8ZS5oYXNUZXh0Q29sbGlzaW9uQm94RGF0YSgpKSYmZS5kZXNlcmlhbGl6ZUNvbGxpc2lvbkJveGVzKG4pO2Zvcih2YXIgZD1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTA7bjxlLzQ7bisrKXQub3BhY2l0eVZlcnRleEFycmF5LmVtcGxhY2VCYWNrKHIpfSxtPWZ1bmN0aW9uKG4pe3ZhciBhPWUuc3ltYm9sSW5zdGFuY2VzLmdldChuKSxzPWEubnVtSG9yaXpvbnRhbEdseXBoVmVydGljZXMsbD1hLm51bVZlcnRpY2FsR2x5cGhWZXJ0aWNlcyxtPWEuY3Jvc3NUaWxlSUQsZz1yW21dLHY9aS5vcGFjaXRpZXNbbV07Zz92PW86dnx8KHY9cCxpLm9wYWNpdGllc1ttXT12KSxyW21dPSEwO3ZhciB5PXM+MHx8bD4wLHg9YS5udW1JY29uVmVydGljZXM+MCxiPWkucGxhY2VkT3JpZW50YXRpb25zW2EuY3Jvc3NUaWxlSURdLF89Yj09PXQuV3JpdGluZ01vZGUudmVydGljYWwsdz1iPT09dC5Xcml0aW5nTW9kZS5ob3Jpem9udGFsfHxiPT09dC5Xcml0aW5nTW9kZS5ob3Jpem9udGFsT25seTtpZih5KXt2YXIgVD1QZSh2LnRleHQpLGs9Xz9JZTpUO2QoZS50ZXh0LHMsayk7dmFyIEE9dz9JZTpUO2QoZS50ZXh0LGwsQSk7dmFyIE09di50ZXh0LmlzSGlkZGVuKCk7W2EucmlnaHRKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsYS5jZW50ZXJKdXN0aWZpZWRUZXh0U3ltYm9sSW5kZXgsYS5sZWZ0SnVzdGlmaWVkVGV4dFN5bWJvbEluZGV4XS5mb3JFYWNoKChmdW5jdGlvbih0KXt0Pj0wJiYoZS50ZXh0LnBsYWNlZFN5bWJvbEFycmF5LmdldCh0KS5oaWRkZW49TXx8Xz8xOjApfSkpLGEudmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXg+PTAmJihlLnRleHQucGxhY2VkU3ltYm9sQXJyYXkuZ2V0KGEudmVydGljYWxQbGFjZWRUZXh0U3ltYm9sSW5kZXgpLmhpZGRlbj1NfHx3PzE6MCk7dmFyIFM9aS52YXJpYWJsZU9mZnNldHNbYS5jcm9zc1RpbGVJRF07UyYmaS5tYXJrVXNlZEp1c3RpZmljYXRpb24oZSxTLmFuY2hvcixhLGIpO3ZhciBFPWkucGxhY2VkT3JpZW50YXRpb25zW2EuY3Jvc3NUaWxlSURdO0UmJihpLm1hcmtVc2VkSnVzdGlmaWNhdGlvbihlLCJsZWZ0IixhLEUpLGkubWFya1VzZWRPcmllbnRhdGlvbihlLEUsYSkpfWlmKHgpe3ZhciBMPVBlKHYuaWNvbiksQz0hKGgmJmEudmVydGljYWxQbGFjZWRJY29uU3ltYm9sSW5kZXgmJl8pO2lmKGEucGxhY2VkSWNvblN5bWJvbEluZGV4Pj0wKXt2YXIgUD1DP0w6SWU7ZChlLmljb24sYS5udW1JY29uVmVydGljZXMsUCksZS5pY29uLnBsYWNlZFN5bWJvbEFycmF5LmdldChhLnBsYWNlZEljb25TeW1ib2xJbmRleCkuaGlkZGVuPXYuaWNvbi5pc0hpZGRlbigpfWlmKGEudmVydGljYWxQbGFjZWRJY29uU3ltYm9sSW5kZXg+PTApe3ZhciBJPUM/SWU6TDtkKGUuaWNvbixhLm51bVZlcnRpY2FsSWNvblZlcnRpY2VzLEkpLGUuaWNvbi5wbGFjZWRTeW1ib2xBcnJheS5nZXQoYS52ZXJ0aWNhbFBsYWNlZEljb25TeW1ib2xJbmRleCkuaGlkZGVuPXYuaWNvbi5pc0hpZGRlbigpfX1pZihlLmhhc0ljb25Db2xsaXNpb25Cb3hEYXRhKCl8fGUuaGFzVGV4dENvbGxpc2lvbkJveERhdGEoKSl7dmFyIE89ZS5jb2xsaXNpb25BcnJheXNbbl07aWYoTyl7dmFyIHo9bmV3IHQuUG9pbnQoMCwwKTtpZihPLnRleHRCb3h8fE8udmVydGljYWxUZXh0Qm94KXt2YXIgRD0hMDtpZihjKXt2YXIgUj1pLnZhcmlhYmxlT2Zmc2V0c1ttXTtSPyh6PWJlKFIuYW5jaG9yLFIud2lkdGgsUi5oZWlnaHQsUi50ZXh0T2Zmc2V0LFIudGV4dEJveFNjYWxlKSx1JiZ6Ll9yb3RhdGUoZj9pLnRyYW5zZm9ybS5hbmdsZTotaS50cmFuc2Zvcm0uYW5nbGUpKTpEPSExfU8udGV4dEJveCYmVGUoZS50ZXh0Q29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEFycmF5LHYudGV4dC5wbGFjZWQsIUR8fF8sei54LHoueSksTy52ZXJ0aWNhbFRleHRCb3gmJlRlKGUudGV4dENvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheSx2LnRleHQucGxhY2VkLCFEfHx3LHoueCx6LnkpfXZhciBGPUJvb2xlYW4oIXcmJk8udmVydGljYWxJY29uQm94KTtPLmljb25Cb3gmJlRlKGUuaWNvbkNvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheSx2Lmljb24ucGxhY2VkLEYsaD96Lng6MCxoP3oueTowKSxPLnZlcnRpY2FsSWNvbkJveCYmVGUoZS5pY29uQ29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEFycmF5LHYuaWNvbi5wbGFjZWQsIUYsaD96Lng6MCxoP3oueTowKX19fSxnPTA7ZzxlLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7ZysrKW0oZyk7aWYoZS5zb3J0RmVhdHVyZXModGhpcy50cmFuc2Zvcm0uYW5nbGUpLHRoaXMucmV0YWluZWRRdWVyeURhdGFbZS5idWNrZXRJbnN0YW5jZUlkXSYmKHRoaXMucmV0YWluZWRRdWVyeURhdGFbZS5idWNrZXRJbnN0YW5jZUlkXS5mZWF0dXJlU29ydE9yZGVyPWUuZmVhdHVyZVNvcnRPcmRlciksZS5oYXNUZXh0RGF0YSgpJiZlLnRleHQub3BhY2l0eVZlcnRleEJ1ZmZlciYmZS50ZXh0Lm9wYWNpdHlWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShlLnRleHQub3BhY2l0eVZlcnRleEFycmF5KSxlLmhhc0ljb25EYXRhKCkmJmUuaWNvbi5vcGFjaXR5VmVydGV4QnVmZmVyJiZlLmljb24ub3BhY2l0eVZlcnRleEJ1ZmZlci51cGRhdGVEYXRhKGUuaWNvbi5vcGFjaXR5VmVydGV4QXJyYXkpLGUuaGFzSWNvbkNvbGxpc2lvbkJveERhdGEoKSYmZS5pY29uQ29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEJ1ZmZlciYmZS5pY29uQ29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEJ1ZmZlci51cGRhdGVEYXRhKGUuaWNvbkNvbGxpc2lvbkJveC5jb2xsaXNpb25WZXJ0ZXhBcnJheSksZS5oYXNUZXh0Q29sbGlzaW9uQm94RGF0YSgpJiZlLnRleHRDb2xsaXNpb25Cb3guY29sbGlzaW9uVmVydGV4QnVmZmVyJiZlLnRleHRDb2xsaXNpb25Cb3guY29sbGlzaW9uVmVydGV4QnVmZmVyLnVwZGF0ZURhdGEoZS50ZXh0Q29sbGlzaW9uQm94LmNvbGxpc2lvblZlcnRleEFycmF5KSxlLmJ1Y2tldEluc3RhbmNlSWQgaW4gdGhpcy5jb2xsaXNpb25DaXJjbGVBcnJheXMpe3ZhciB2PXRoaXMuY29sbGlzaW9uQ2lyY2xlQXJyYXlzW2UuYnVja2V0SW5zdGFuY2VJZF07ZS5wbGFjZW1lbnRJbnZQcm9qTWF0cml4PXYuaW52UHJvak1hdHJpeCxlLnBsYWNlbWVudFZpZXdwb3J0TWF0cml4PXYudmlld3BvcnRNYXRyaXgsZS5jb2xsaXNpb25DaXJjbGVBcnJheT12LmNpcmNsZXMsZGVsZXRlIHRoaXMuY29sbGlzaW9uQ2lyY2xlQXJyYXlzW2UuYnVja2V0SW5zdGFuY2VJZF19fSx3ZS5wcm90b3R5cGUuc3ltYm9sRmFkZUNoYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gMD09PXRoaXMuZmFkZUR1cmF0aW9uPzE6KHQtdGhpcy5jb21taXRUaW1lKS90aGlzLmZhZGVEdXJhdGlvbit0aGlzLnByZXZab29tQWRqdXN0bWVudH0sd2UucHJvdG90eXBlLnpvb21BZGp1c3RtZW50PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLCh0aGlzLnRyYW5zZm9ybS56b29tLXQpLzEuNSl9LHdlLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9ucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdGFsZXx8dC10aGlzLmxhc3RQbGFjZW1lbnRDaGFuZ2VUaW1lPHRoaXMuZmFkZUR1cmF0aW9ufSx3ZS5wcm90b3R5cGUuc3RpbGxSZWNlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnpvb21BdExhc3RSZWNlbmN5Q2hlY2s9PT1lPzEtdGhpcy56b29tQWRqdXN0bWVudChlKToxO3JldHVybiB0aGlzLnpvb21BdExhc3RSZWNlbmN5Q2hlY2s9ZSx0aGlzLmNvbW1pdFRpbWUrdGhpcy5mYWRlRHVyYXRpb24qcj50fSx3ZS5wcm90b3R5cGUuc2V0U3RhbGU9ZnVuY3Rpb24oKXt0aGlzLnN0YWxlPSEwfTt2YXIga2U9TWF0aC5wb3coMiwyNSksQWU9TWF0aC5wb3coMiwyNCksTWU9TWF0aC5wb3coMiwxNyksU2U9TWF0aC5wb3coMiwxNiksRWU9TWF0aC5wb3coMiw5KSxMZT1NYXRoLnBvdygyLDgpLENlPU1hdGgucG93KDIsMSk7ZnVuY3Rpb24gUGUodCl7aWYoMD09PXQub3BhY2l0eSYmIXQucGxhY2VkKXJldHVybiAwO2lmKDE9PT10Lm9wYWNpdHkmJnQucGxhY2VkKXJldHVybiA0Mjk0OTY3Mjk1O3ZhciBlPXQucGxhY2VkPzE6MCxyPU1hdGguZmxvb3IoMTI3KnQub3BhY2l0eSk7cmV0dXJuIHIqa2UrZSpBZStyKk1lK2UqU2UrcipFZStlKkxlK3IqQ2UrZX12YXIgSWU9MCxPZT1mdW5jdGlvbih0KXt0aGlzLl9zb3J0QWNyb3NzVGlsZXM9InZpZXdwb3J0LXkiIT09dC5sYXlvdXQuZ2V0KCJzeW1ib2wtei1vcmRlciIpJiZ2b2lkIDAhPT10LmxheW91dC5nZXQoInN5bWJvbC1zb3J0LWtleSIpLmNvbnN0YW50T3IoMSksdGhpcy5fY3VycmVudFRpbGVJbmRleD0wLHRoaXMuX2N1cnJlbnRQYXJ0SW5kZXg9MCx0aGlzLl9zZWVuQ3Jvc3NUaWxlSURzPXt9LHRoaXMuX2J1Y2tldFBhcnRzPVtdfTtPZS5wcm90b3R5cGUuY29udGludWVQbGFjZW1lbnQ9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIGE9dGhpcy5fYnVja2V0UGFydHM7dGhpcy5fY3VycmVudFRpbGVJbmRleDx0Lmxlbmd0aDspe3ZhciBvPXRbdGhpcy5fY3VycmVudFRpbGVJbmRleF07aWYoZS5nZXRCdWNrZXRQYXJ0cyhhLG4sbyx0aGlzLl9zb3J0QWNyb3NzVGlsZXMpLHRoaXMuX2N1cnJlbnRUaWxlSW5kZXgrKyxpKCkpcmV0dXJuITB9Zm9yKHRoaXMuX3NvcnRBY3Jvc3NUaWxlcyYmKHRoaXMuX3NvcnRBY3Jvc3NUaWxlcz0hMSxhLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuc29ydEtleS1lLnNvcnRLZXl9KSkpO3RoaXMuX2N1cnJlbnRQYXJ0SW5kZXg8YS5sZW5ndGg7KXt2YXIgcz1hW3RoaXMuX2N1cnJlbnRQYXJ0SW5kZXhdO2lmKGUucGxhY2VMYXllckJ1Y2tldFBhcnQocyx0aGlzLl9zZWVuQ3Jvc3NUaWxlSURzLHIpLHRoaXMuX2N1cnJlbnRQYXJ0SW5kZXgrKyxpKCkpcmV0dXJuITB9cmV0dXJuITF9O3ZhciB6ZT1mdW5jdGlvbih0LGUscixuLGksYSxvKXt0aGlzLnBsYWNlbWVudD1uZXcgd2UodCxpLGEsbyksdGhpcy5fY3VycmVudFBsYWNlbWVudEluZGV4PWUubGVuZ3RoLTEsdGhpcy5fZm9yY2VGdWxsUGxhY2VtZW50PXIsdGhpcy5fc2hvd0NvbGxpc2lvbkJveGVzPW4sdGhpcy5fZG9uZT0hMX07emUucHJvdG90eXBlLmlzRG9uZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kb25lfSx6ZS5wcm90b3R5cGUuY29udGludWVQbGFjZW1lbnQ9ZnVuY3Rpb24oZSxyLG4pe2Zvcih2YXIgaT10aGlzLGE9dC5icm93c2VyLm5vdygpLG89ZnVuY3Rpb24oKXt2YXIgZT10LmJyb3dzZXIubm93KCktYTtyZXR1cm4haS5fZm9yY2VGdWxsUGxhY2VtZW50JiZlPjJ9O3RoaXMuX2N1cnJlbnRQbGFjZW1lbnRJbmRleD49MDspe3ZhciBzPXJbZVt0aGlzLl9jdXJyZW50UGxhY2VtZW50SW5kZXhdXSxsPXRoaXMucGxhY2VtZW50LmNvbGxpc2lvbkluZGV4LnRyYW5zZm9ybS56b29tO2lmKCJzeW1ib2wiPT09cy50eXBlJiYoIXMubWluem9vbXx8cy5taW56b29tPD1sKSYmKCFzLm1heHpvb218fHMubWF4em9vbT5sKSl7aWYodGhpcy5faW5Qcm9ncmVzc0xheWVyfHwodGhpcy5faW5Qcm9ncmVzc0xheWVyPW5ldyBPZShzKSksdGhpcy5faW5Qcm9ncmVzc0xheWVyLmNvbnRpbnVlUGxhY2VtZW50KG5bcy5zb3VyY2VdLHRoaXMucGxhY2VtZW50LHRoaXMuX3Nob3dDb2xsaXNpb25Cb3hlcyxzLG8pKXJldHVybjtkZWxldGUgdGhpcy5faW5Qcm9ncmVzc0xheWVyfXRoaXMuX2N1cnJlbnRQbGFjZW1lbnRJbmRleC0tfXRoaXMuX2RvbmU9ITB9LHplLnByb3RvdHlwZS5jb21taXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMucGxhY2VtZW50LmNvbW1pdCh0KSx0aGlzLnBsYWNlbWVudH07dmFyIERlPTUxMi90LkVYVEVOVC8yLFJlPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnRpbGVJRD10LHRoaXMuaW5kZXhlZFN5bWJvbEluc3RhbmNlcz17fSx0aGlzLmJ1Y2tldEluc3RhbmNlSWQ9cjtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGk9ZS5nZXQobiksYT1pLmtleTt0aGlzLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXNbYV18fCh0aGlzLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXNbYV09W10pLHRoaXMuaW5kZXhlZFN5bWJvbEluc3RhbmNlc1thXS5wdXNoKHtjcm9zc1RpbGVJRDppLmNyb3NzVGlsZUlELGNvb3JkOnRoaXMuZ2V0U2NhbGVkQ29vcmRpbmF0ZXMoaSx0KX0pfX07UmUucHJvdG90eXBlLmdldFNjYWxlZENvb3JkaW5hdGVzPWZ1bmN0aW9uKGUscil7dmFyIG49ci5jYW5vbmljYWwuei10aGlzLnRpbGVJRC5jYW5vbmljYWwueixpPURlL01hdGgucG93KDIsbik7cmV0dXJue3g6TWF0aC5mbG9vcigoci5jYW5vbmljYWwueCp0LkVYVEVOVCtlLmFuY2hvclgpKmkpLHk6TWF0aC5mbG9vcigoci5jYW5vbmljYWwueSp0LkVYVEVOVCtlLmFuY2hvclkpKmkpfX0sUmUucHJvdG90eXBlLmZpbmRNYXRjaGVzPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49dGhpcy50aWxlSUQuY2Fub25pY2FsLno8ZS5jYW5vbmljYWwuej8xOk1hdGgucG93KDIsdGhpcy50aWxlSUQuY2Fub25pY2FsLnotZS5jYW5vbmljYWwueiksaT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10LmdldChpKTtpZighYS5jcm9zc1RpbGVJRCl7dmFyIG89dGhpcy5pbmRleGVkU3ltYm9sSW5zdGFuY2VzW2Eua2V5XTtpZihvKWZvcih2YXIgcz10aGlzLmdldFNjYWxlZENvb3JkaW5hdGVzKGEsZSksbD0wLGM9bztsPGMubGVuZ3RoO2wrPTEpe3ZhciB1PWNbbF07aWYoTWF0aC5hYnModS5jb29yZC54LXMueCk8PW4mJk1hdGguYWJzKHUuY29vcmQueS1zLnkpPD1uJiYhclt1LmNyb3NzVGlsZUlEXSl7clt1LmNyb3NzVGlsZUlEXT0hMCxhLmNyb3NzVGlsZUlEPXUuY3Jvc3NUaWxlSUQ7YnJlYWt9fX19fTt2YXIgRmU9ZnVuY3Rpb24oKXt0aGlzLm1heENyb3NzVGlsZUlEPTB9O0ZlLnByb3RvdHlwZS5nZW5lcmF0ZT1mdW5jdGlvbigpe3JldHVybisrdGhpcy5tYXhDcm9zc1RpbGVJRH07dmFyIEJlPWZ1bmN0aW9uKCl7dGhpcy5pbmRleGVzPXt9LHRoaXMudXNlZENyb3NzVGlsZUlEcz17fSx0aGlzLmxuZz0wfTtCZS5wcm90b3R5cGUuaGFuZGxlV3JhcEp1bXA9ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5yb3VuZCgodC10aGlzLmxuZykvMzYwKTtpZigwIT09ZSlmb3IodmFyIHIgaW4gdGhpcy5pbmRleGVzKXt2YXIgbj10aGlzLmluZGV4ZXNbcl0saT17fTtmb3IodmFyIGEgaW4gbil7dmFyIG89blthXTtvLnRpbGVJRD1vLnRpbGVJRC51bndyYXBUbyhvLnRpbGVJRC53cmFwK2UpLGlbby50aWxlSUQua2V5XT1vfXRoaXMuaW5kZXhlc1tyXT1pfXRoaXMubG5nPXR9LEJlLnByb3RvdHlwZS5hZGRCdWNrZXQ9ZnVuY3Rpb24odCxlLHIpe2lmKHRoaXMuaW5kZXhlc1t0Lm92ZXJzY2FsZWRaXSYmdGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdW3Qua2V5XSl7aWYodGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdW3Qua2V5XS5idWNrZXRJbnN0YW5jZUlkPT09ZS5idWNrZXRJbnN0YW5jZUlkKXJldHVybiExO3RoaXMucmVtb3ZlQnVja2V0Q3Jvc3NUaWxlSURzKHQub3ZlcnNjYWxlZFosdGhpcy5pbmRleGVzW3Qub3ZlcnNjYWxlZFpdW3Qua2V5XSl9Zm9yKHZhciBuPTA7bjxlLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7bisrKXtlLnN5bWJvbEluc3RhbmNlcy5nZXQobikuY3Jvc3NUaWxlSUQ9MH10aGlzLnVzZWRDcm9zc1RpbGVJRHNbdC5vdmVyc2NhbGVkWl18fCh0aGlzLnVzZWRDcm9zc1RpbGVJRHNbdC5vdmVyc2NhbGVkWl09e30pO3ZhciBpPXRoaXMudXNlZENyb3NzVGlsZUlEc1t0Lm92ZXJzY2FsZWRaXTtmb3IodmFyIGEgaW4gdGhpcy5pbmRleGVzKXt2YXIgbz10aGlzLmluZGV4ZXNbYV07aWYoTnVtYmVyKGEpPnQub3ZlcnNjYWxlZFopZm9yKHZhciBzIGluIG8pe3ZhciBsPW9bc107bC50aWxlSUQuaXNDaGlsZE9mKHQpJiZsLmZpbmRNYXRjaGVzKGUuc3ltYm9sSW5zdGFuY2VzLHQsaSl9ZWxzZXt2YXIgYz1vW3Quc2NhbGVkVG8oTnVtYmVyKGEpKS5rZXldO2MmJmMuZmluZE1hdGNoZXMoZS5zeW1ib2xJbnN0YW5jZXMsdCxpKX19Zm9yKHZhciB1PTA7dTxlLnN5bWJvbEluc3RhbmNlcy5sZW5ndGg7dSsrKXt2YXIgZj1lLnN5bWJvbEluc3RhbmNlcy5nZXQodSk7Zi5jcm9zc1RpbGVJRHx8KGYuY3Jvc3NUaWxlSUQ9ci5nZW5lcmF0ZSgpLGlbZi5jcm9zc1RpbGVJRF09ITApfXJldHVybiB2b2lkIDA9PT10aGlzLmluZGV4ZXNbdC5vdmVyc2NhbGVkWl0mJih0aGlzLmluZGV4ZXNbdC5vdmVyc2NhbGVkWl09e30pLHRoaXMuaW5kZXhlc1t0Lm92ZXJzY2FsZWRaXVt0LmtleV09bmV3IFJlKHQsZS5zeW1ib2xJbnN0YW5jZXMsZS5idWNrZXRJbnN0YW5jZUlkKSwhMH0sQmUucHJvdG90eXBlLnJlbW92ZUJ1Y2tldENyb3NzVGlsZUlEcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgciBpbiBlLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXMpZm9yKHZhciBuPTAsaT1lLmluZGV4ZWRTeW1ib2xJbnN0YW5jZXNbcl07bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dO2RlbGV0ZSB0aGlzLnVzZWRDcm9zc1RpbGVJRHNbdF1bYS5jcm9zc1RpbGVJRF19fSxCZS5wcm90b3R5cGUucmVtb3ZlU3RhbGVCdWNrZXRzPWZ1bmN0aW9uKHQpe3ZhciBlPSExO2Zvcih2YXIgciBpbiB0aGlzLmluZGV4ZXMpe3ZhciBuPXRoaXMuaW5kZXhlc1tyXTtmb3IodmFyIGkgaW4gbil0W25baV0uYnVja2V0SW5zdGFuY2VJZF18fCh0aGlzLnJlbW92ZUJ1Y2tldENyb3NzVGlsZUlEcyhyLG5baV0pLGRlbGV0ZSBuW2ldLGU9ITApfXJldHVybiBlfTt2YXIgTmU9ZnVuY3Rpb24oKXt0aGlzLmxheWVySW5kZXhlcz17fSx0aGlzLmNyb3NzVGlsZUlEcz1uZXcgRmUsdGhpcy5tYXhCdWNrZXRJbnN0YW5jZUlkPTAsdGhpcy5idWNrZXRzSW5DdXJyZW50UGxhY2VtZW50PXt9fTtOZS5wcm90b3R5cGUuYWRkTGF5ZXI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubGF5ZXJJbmRleGVzW3QuaWRdO3ZvaWQgMD09PW4mJihuPXRoaXMubGF5ZXJJbmRleGVzW3QuaWRdPW5ldyBCZSk7dmFyIGk9ITEsYT17fTtuLmhhbmRsZVdyYXBKdW1wKHIpO2Zvcih2YXIgbz0wLHM9ZTtvPHMubGVuZ3RoO28rPTEpe3ZhciBsPXNbb10sYz1sLmdldEJ1Y2tldCh0KTtjJiZ0LmlkPT09Yy5sYXllcklkc1swXSYmKGMuYnVja2V0SW5zdGFuY2VJZHx8KGMuYnVja2V0SW5zdGFuY2VJZD0rK3RoaXMubWF4QnVja2V0SW5zdGFuY2VJZCksbi5hZGRCdWNrZXQobC50aWxlSUQsYyx0aGlzLmNyb3NzVGlsZUlEcykmJihpPSEwKSxhW2MuYnVja2V0SW5zdGFuY2VJZF09ITApfXJldHVybiBuLnJlbW92ZVN0YWxlQnVja2V0cyhhKSYmKGk9ITApLGl9LE5lLnByb3RvdHlwZS5wcnVuZVVudXNlZExheWVycz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPSEwfSkpLHRoaXMubGF5ZXJJbmRleGVzKWVbcl18fGRlbGV0ZSB0aGlzLmxheWVySW5kZXhlc1tyXX07dmFyIGplPWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZW1pdFZhbGlkYXRpb25FcnJvcnMoZSxyJiZyLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuInNvdXJjZS5jYW52YXMiIT09dC5pZGVudGlmaWVyfSkpKX0sVWU9dC5waWNrKFV0LFsiYWRkTGF5ZXIiLCJyZW1vdmVMYXllciIsInNldFBhaW50UHJvcGVydHkiLCJzZXRMYXlvdXRQcm9wZXJ0eSIsInNldEZpbHRlciIsImFkZFNvdXJjZSIsInJlbW92ZVNvdXJjZSIsInNldExheWVyWm9vbVJhbmdlIiwic2V0TGlnaHQiLCJzZXRUcmFuc2l0aW9uIiwic2V0R2VvSlNPTlNvdXJjZURhdGEiXSksVmU9dC5waWNrKFV0LFsic2V0Q2VudGVyIiwic2V0Wm9vbSIsInNldEJlYXJpbmciLCJzZXRQaXRjaCJdKSxIZT1mdW5jdGlvbigpe3ZhciBlPXt9LHI9dC5zdHlsZVNwZWMuJHZlcnNpb247Zm9yKHZhciBuIGluIHQuc3R5bGVTcGVjLiRyb290KXt2YXIgaT10LnN0eWxlU3BlYy4kcm9vdFtuXTtpZihpLnJlcXVpcmVkKXt2YXIgYT1udWxsO251bGwhPShhPSJ2ZXJzaW9uIj09PW4/cjoiYXJyYXkiPT09aS50eXBlP1tdOnt9KSYmKGVbbl09YSl9fXJldHVybiBlfSgpLHFlPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIobixpKXt2YXIgYT10aGlzO3ZvaWQgMD09PWkmJihpPXt9KSxlLmNhbGwodGhpcyksdGhpcy5tYXA9bix0aGlzLmRpc3BhdGNoZXI9bmV3IGsoQnQoKSx0aGlzKSx0aGlzLmltYWdlTWFuYWdlcj1uZXcgaCx0aGlzLmltYWdlTWFuYWdlci5zZXRFdmVudGVkUGFyZW50KHRoaXMpLHRoaXMuZ2x5cGhNYW5hZ2VyPW5ldyB4KG4uX3JlcXVlc3RNYW5hZ2VyLGkubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5KSx0aGlzLmxpbmVBdGxhcz1uZXcgVCgyNTYsNTEyKSx0aGlzLmNyb3NzVGlsZVN5bWJvbEluZGV4PW5ldyBOZSx0aGlzLl9sYXllcnM9e30sdGhpcy5fc2VyaWFsaXplZExheWVycz17fSx0aGlzLl9vcmRlcj1bXSx0aGlzLnNvdXJjZUNhY2hlcz17fSx0aGlzLnpvb21IaXN0b3J5PW5ldyB0Llpvb21IaXN0b3J5LHRoaXMuX2xvYWRlZD0hMSx0aGlzLl9hdmFpbGFibGVJbWFnZXM9W10sdGhpcy5fcmVzZXRVcGRhdGVzKCksdGhpcy5kaXNwYXRjaGVyLmJyb2FkY2FzdCgic2V0UmVmZXJyZXIiLHQuZ2V0UmVmZXJyZXIoKSk7dmFyIG89dGhpczt0aGlzLl9ydGxUZXh0UGx1Z2luQ2FsbGJhY2s9ci5yZWdpc3RlckZvclBsdWdpblN0YXRlQ2hhbmdlKChmdW5jdGlvbihlKXt2YXIgcj17cGx1Z2luU3RhdHVzOmUucGx1Z2luU3RhdHVzLHBsdWdpblVSTDplLnBsdWdpblVSTH07by5kaXNwYXRjaGVyLmJyb2FkY2FzdCgic3luY1JUTFBsdWdpblN0YXRlIixyLChmdW5jdGlvbihlLHIpe2lmKCh0LnRyaWdnZXJQbHVnaW5Db21wbGV0aW9uRXZlbnQoZSkscikmJnIuZXZlcnkoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpKWZvcih2YXIgbiBpbiBvLnNvdXJjZUNhY2hlcylvLnNvdXJjZUNhY2hlc1tuXS5yZWxvYWQoKX0pKX0pKSx0aGlzLm9uKCJkYXRhIiwoZnVuY3Rpb24odCl7aWYoInNvdXJjZSI9PT10LmRhdGFUeXBlJiYibWV0YWRhdGEiPT09dC5zb3VyY2VEYXRhVHlwZSl7dmFyIGU9YS5zb3VyY2VDYWNoZXNbdC5zb3VyY2VJZF07aWYoZSl7dmFyIHI9ZS5nZXRTb3VyY2UoKTtpZihyJiZyLnZlY3RvckxheWVySWRzKWZvcih2YXIgbiBpbiBhLl9sYXllcnMpe3ZhciBpPWEuX2xheWVyc1tuXTtpLnNvdXJjZT09PXIuaWQmJmEuX3ZhbGlkYXRlTGF5ZXIoaSl9fX19KSl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmxvYWRVUkw9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzO3ZvaWQgMD09PXImJihyPXt9KSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGFsb2FkaW5nIix7ZGF0YVR5cGU6InN0eWxlIn0pKTt2YXIgaT0iYm9vbGVhbiI9PXR5cGVvZiByLnZhbGlkYXRlP3IudmFsaWRhdGU6IXQuaXNNYXBib3hVUkwoZSk7ZT10aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIubm9ybWFsaXplU3R5bGVVUkwoZSxyLmFjY2Vzc1Rva2VuKTt2YXIgYT10aGlzLm1hcC5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdChlLHQuUmVzb3VyY2VUeXBlLlN0eWxlKTt0aGlzLl9yZXF1ZXN0PXQuZ2V0SlNPTihhLChmdW5jdGlvbihlLHIpe24uX3JlcXVlc3Q9bnVsbCxlP24uZmlyZShuZXcgdC5FcnJvckV2ZW50KGUpKTpyJiZuLl9sb2FkKHIsaSl9KSl9LHIucHJvdG90eXBlLmxvYWRKU09OPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpczt2b2lkIDA9PT1yJiYocj17fSksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhbG9hZGluZyIse2RhdGFUeXBlOiJzdHlsZSJ9KSksdGhpcy5fcmVxdWVzdD10LmJyb3dzZXIuZnJhbWUoKGZ1bmN0aW9uKCl7bi5fcmVxdWVzdD1udWxsLG4uX2xvYWQoZSwhMSE9PXIudmFsaWRhdGUpfSkpfSxyLnByb3RvdHlwZS5sb2FkRW1wdHk9ZnVuY3Rpb24oKXt0aGlzLmZpcmUobmV3IHQuRXZlbnQoImRhdGFsb2FkaW5nIix7ZGF0YVR5cGU6InN0eWxlIn0pKSx0aGlzLl9sb2FkKEhlLCExKX0sci5wcm90b3R5cGUuX2xvYWQ9ZnVuY3Rpb24oZSxyKXtpZighcnx8IWplKHRoaXMsdC52YWxpZGF0ZVN0eWxlKGUpKSl7Zm9yKHZhciBuIGluIHRoaXMuX2xvYWRlZD0hMCx0aGlzLnN0eWxlc2hlZXQ9ZSxlLnNvdXJjZXMpdGhpcy5hZGRTb3VyY2UobixlLnNvdXJjZXNbbl0se3ZhbGlkYXRlOiExfSk7ZS5zcHJpdGU/dGhpcy5fbG9hZFNwcml0ZShlLnNwcml0ZSk6dGhpcy5pbWFnZU1hbmFnZXIuc2V0TG9hZGVkKCEwKSx0aGlzLmdseXBoTWFuYWdlci5zZXRVUkwoZS5nbHlwaHMpO3ZhciBpPWp0KHRoaXMuc3R5bGVzaGVldC5sYXllcnMpO3RoaXMuX29yZGVyPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5pZH0pKSx0aGlzLl9sYXllcnM9e30sdGhpcy5fc2VyaWFsaXplZExheWVycz17fTtmb3IodmFyIGE9MCxvPWk7YTxvLmxlbmd0aDthKz0xKXt2YXIgcz1vW2FdOyhzPXQuY3JlYXRlU3R5bGVMYXllcihzKSkuc2V0RXZlbnRlZFBhcmVudCh0aGlzLHtsYXllcjp7aWQ6cy5pZH19KSx0aGlzLl9sYXllcnNbcy5pZF09cyx0aGlzLl9zZXJpYWxpemVkTGF5ZXJzW3MuaWRdPXMuc2VyaWFsaXplKCl9dGhpcy5kaXNwYXRjaGVyLmJyb2FkY2FzdCgic2V0TGF5ZXJzIix0aGlzLl9zZXJpYWxpemVMYXllcnModGhpcy5fb3JkZXIpKSx0aGlzLmxpZ2h0PW5ldyB3KHRoaXMuc3R5bGVzaGVldC5saWdodCksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InN0eWxlIn0pKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInN0eWxlLmxvYWQiKSl9fSxyLnByb3RvdHlwZS5fbG9hZFNwcml0ZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO3RoaXMuX3Nwcml0ZVJlcXVlc3Q9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpLGEsbyxzPXQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvPjE/IkAyeCI6IiIsbD10LmdldEpTT04oci50cmFuc2Zvcm1SZXF1ZXN0KHIubm9ybWFsaXplU3ByaXRlVVJMKGUscywiLmpzb24iKSx0LlJlc291cmNlVHlwZS5TcHJpdGVKU09OKSwoZnVuY3Rpb24odCxlKXtsPW51bGwsb3x8KG89dCxpPWUsdSgpKX0pKSxjPXQuZ2V0SW1hZ2Uoci50cmFuc2Zvcm1SZXF1ZXN0KHIubm9ybWFsaXplU3ByaXRlVVJMKGUscywiLnBuZyIpLHQuUmVzb3VyY2VUeXBlLlNwcml0ZUltYWdlKSwoZnVuY3Rpb24odCxlKXtjPW51bGwsb3x8KG89dCxhPWUsdSgpKX0pKTtmdW5jdGlvbiB1KCl7aWYobyluKG8pO2Vsc2UgaWYoaSYmYSl7dmFyIGU9dC5icm93c2VyLmdldEltYWdlRGF0YShhKSxyPXt9O2Zvcih2YXIgcyBpbiBpKXt2YXIgbD1pW3NdLGM9bC53aWR0aCx1PWwuaGVpZ2h0LGY9bC54LGg9bC55LHA9bC5zZGYsZD1sLnBpeGVsUmF0aW8sbT1sLnN0cmV0Y2hYLGc9bC5zdHJldGNoWSx2PWwuY29udGVudCx5PW5ldyB0LlJHQkFJbWFnZSh7d2lkdGg6YyxoZWlnaHQ6dX0pO3QuUkdCQUltYWdlLmNvcHkoZSx5LHt4OmYseTpofSx7eDowLHk6MH0se3dpZHRoOmMsaGVpZ2h0OnV9KSxyW3NdPXtkYXRhOnkscGl4ZWxSYXRpbzpkLHNkZjpwLHN0cmV0Y2hYOm0sc3RyZXRjaFk6Zyxjb250ZW50OnZ9fW4obnVsbCxyKX19cmV0dXJue2NhbmNlbDpmdW5jdGlvbigpe2wmJihsLmNhbmNlbCgpLGw9bnVsbCksYyYmKGMuY2FuY2VsKCksYz1udWxsKX19fShlLHRoaXMubWFwLl9yZXF1ZXN0TWFuYWdlciwoZnVuY3Rpb24oZSxuKXtpZihyLl9zcHJpdGVSZXF1ZXN0PW51bGwsZSlyLmZpcmUobmV3IHQuRXJyb3JFdmVudChlKSk7ZWxzZSBpZihuKWZvcih2YXIgaSBpbiBuKXIuaW1hZ2VNYW5hZ2VyLmFkZEltYWdlKGksbltpXSk7ci5pbWFnZU1hbmFnZXIuc2V0TG9hZGVkKCEwKSxyLl9hdmFpbGFibGVJbWFnZXM9ci5pbWFnZU1hbmFnZXIubGlzdEltYWdlcygpLHIuZGlzcGF0Y2hlci5icm9hZGNhc3QoInNldEltYWdlcyIsci5fYXZhaWxhYmxlSW1hZ2VzKSxyLmZpcmUobmV3IHQuRXZlbnQoImRhdGEiLHtkYXRhVHlwZToic3R5bGUifSkpfSkpfSxyLnByb3RvdHlwZS5fdmFsaWRhdGVMYXllcj1mdW5jdGlvbihlKXt2YXIgcj10aGlzLnNvdXJjZUNhY2hlc1tlLnNvdXJjZV07aWYocil7dmFyIG49ZS5zb3VyY2VMYXllcjtpZihuKXt2YXIgaT1yLmdldFNvdXJjZSgpOygiZ2VvanNvbiI9PT1pLnR5cGV8fGkudmVjdG9yTGF5ZXJJZHMmJi0xPT09aS52ZWN0b3JMYXllcklkcy5pbmRleE9mKG4pKSYmdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdTb3VyY2UgbGF5ZXIgIicrbisnIiBkb2VzIG5vdCBleGlzdCBvbiBzb3VyY2UgIicraS5pZCsnIiBhcyBzcGVjaWZpZWQgYnkgc3R5bGUgbGF5ZXIgIicrZS5pZCsnIicpKSl9fX0sci5wcm90b3R5cGUubG9hZGVkPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX2xvYWRlZClyZXR1cm4hMTtpZihPYmplY3Qua2V5cyh0aGlzLl91cGRhdGVkU291cmNlcykubGVuZ3RoKXJldHVybiExO2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZUNhY2hlcylpZighdGhpcy5zb3VyY2VDYWNoZXNbdF0ubG9hZGVkKCkpcmV0dXJuITE7cmV0dXJuISF0aGlzLmltYWdlTWFuYWdlci5pc0xvYWRlZCgpfSxyLnByb3RvdHlwZS5fc2VyaWFsaXplTGF5ZXJzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXSxyPTAsbj10O3I8bi5sZW5ndGg7cis9MSl7dmFyIGk9bltyXSxhPXRoaXMuX2xheWVyc1tpXTsiY3VzdG9tIiE9PWEudHlwZSYmZS5wdXNoKGEuc2VyaWFsaXplKCkpfXJldHVybiBlfSxyLnByb3RvdHlwZS5oYXNUcmFuc2l0aW9ucz1mdW5jdGlvbigpe2lmKHRoaXMubGlnaHQmJnRoaXMubGlnaHQuaGFzVHJhbnNpdGlvbigpKXJldHVybiEwO2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZUNhY2hlcylpZih0aGlzLnNvdXJjZUNhY2hlc1t0XS5oYXNUcmFuc2l0aW9uKCkpcmV0dXJuITA7Zm9yKHZhciBlIGluIHRoaXMuX2xheWVycylpZih0aGlzLl9sYXllcnNbZV0uaGFzVHJhbnNpdGlvbigpKXJldHVybiEwO3JldHVybiExfSxyLnByb3RvdHlwZS5fY2hlY2tMb2FkZWQ9ZnVuY3Rpb24oKXtpZighdGhpcy5fbG9hZGVkKXRocm93IG5ldyBFcnJvcigiU3R5bGUgaXMgbm90IGRvbmUgbG9hZGluZyIpfSxyLnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbG9hZGVkKXt2YXIgcj10aGlzLl9jaGFuZ2VkO2lmKHRoaXMuX2NoYW5nZWQpe3ZhciBuPU9iamVjdC5rZXlzKHRoaXMuX3VwZGF0ZWRMYXllcnMpLGk9T2JqZWN0LmtleXModGhpcy5fcmVtb3ZlZExheWVycyk7Zm9yKHZhciBhIGluKG4ubGVuZ3RofHxpLmxlbmd0aCkmJnRoaXMuX3VwZGF0ZVdvcmtlckxheWVycyhuLGkpLHRoaXMuX3VwZGF0ZWRTb3VyY2VzKXt2YXIgbz10aGlzLl91cGRhdGVkU291cmNlc1thXTsicmVsb2FkIj09PW8/dGhpcy5fcmVsb2FkU291cmNlKGEpOiJjbGVhciI9PT1vJiZ0aGlzLl9jbGVhclNvdXJjZShhKX1mb3IodmFyIHMgaW4gdGhpcy5fdXBkYXRlVGlsZXNGb3JDaGFuZ2VkSW1hZ2VzKCksdGhpcy5fdXBkYXRlZFBhaW50UHJvcHMpdGhpcy5fbGF5ZXJzW3NdLnVwZGF0ZVRyYW5zaXRpb25zKGUpO3RoaXMubGlnaHQudXBkYXRlVHJhbnNpdGlvbnMoZSksdGhpcy5fcmVzZXRVcGRhdGVzKCl9Zm9yKHZhciBsIGluIHRoaXMuc291cmNlQ2FjaGVzKXRoaXMuc291cmNlQ2FjaGVzW2xdLnVzZWQ9ITE7Zm9yKHZhciBjPTAsdT10aGlzLl9vcmRlcjtjPHUubGVuZ3RoO2MrPTEpe3ZhciBmPXVbY10saD10aGlzLl9sYXllcnNbZl07aC5yZWNhbGN1bGF0ZShlLHRoaXMuX2F2YWlsYWJsZUltYWdlcyksIWguaXNIaWRkZW4oZS56b29tKSYmaC5zb3VyY2UmJih0aGlzLnNvdXJjZUNhY2hlc1toLnNvdXJjZV0udXNlZD0hMCl9dGhpcy5saWdodC5yZWNhbGN1bGF0ZShlKSx0aGlzLno9ZS56b29tLHImJnRoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzdHlsZSJ9KSl9fSxyLnByb3RvdHlwZS5fdXBkYXRlVGlsZXNGb3JDaGFuZ2VkSW1hZ2VzPWZ1bmN0aW9uKCl7dmFyIHQ9T2JqZWN0LmtleXModGhpcy5fY2hhbmdlZEltYWdlcyk7aWYodC5sZW5ndGgpe2Zvcih2YXIgZSBpbiB0aGlzLnNvdXJjZUNhY2hlcyl0aGlzLnNvdXJjZUNhY2hlc1tlXS5yZWxvYWRUaWxlc0ZvckRlcGVuZGVuY2llcyhbImljb25zIiwicGF0dGVybnMiXSx0KTt0aGlzLl9jaGFuZ2VkSW1hZ2VzPXt9fX0sci5wcm90b3R5cGUuX3VwZGF0ZVdvcmtlckxheWVycz1mdW5jdGlvbih0LGUpe3RoaXMuZGlzcGF0Y2hlci5icm9hZGNhc3QoInVwZGF0ZUxheWVycyIse2xheWVyczp0aGlzLl9zZXJpYWxpemVMYXllcnModCkscmVtb3ZlZElkczplfSl9LHIucHJvdG90eXBlLl9yZXNldFVwZGF0ZXM9ZnVuY3Rpb24oKXt0aGlzLl9jaGFuZ2VkPSExLHRoaXMuX3VwZGF0ZWRMYXllcnM9e30sdGhpcy5fcmVtb3ZlZExheWVycz17fSx0aGlzLl91cGRhdGVkU291cmNlcz17fSx0aGlzLl91cGRhdGVkUGFpbnRQcm9wcz17fSx0aGlzLl9jaGFuZ2VkSW1hZ2VzPXt9fSxyLnByb3RvdHlwZS5zZXRTdGF0ZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzO2lmKHRoaXMuX2NoZWNrTG9hZGVkKCksamUodGhpcyx0LnZhbGlkYXRlU3R5bGUoZSkpKXJldHVybiExOyhlPXQuY2xvbmUkMShlKSkubGF5ZXJzPWp0KGUubGF5ZXJzKTt2YXIgbj1adCh0aGlzLnNlcmlhbGl6ZSgpLGUpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISh0LmNvbW1hbmQgaW4gVmUpfSkpO2lmKDA9PT1uLmxlbmd0aClyZXR1cm4hMTt2YXIgaT1uLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuISh0LmNvbW1hbmQgaW4gVWUpfSkpO2lmKGkubGVuZ3RoPjApdGhyb3cgbmV3IEVycm9yKCJVbmltcGxlbWVudGVkOiAiK2kubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb21tYW5kfSkpLmpvaW4oIiwgIikrIi4iKTtyZXR1cm4gbi5mb3JFYWNoKChmdW5jdGlvbih0KXsic2V0VHJhbnNpdGlvbiIhPT10LmNvbW1hbmQmJnJbdC5jb21tYW5kXS5hcHBseShyLHQuYXJncyl9KSksdGhpcy5zdHlsZXNoZWV0PWUsITB9LHIucHJvdG90eXBlLmFkZEltYWdlPWZ1bmN0aW9uKGUscil7aWYodGhpcy5nZXRJbWFnZShlKSlyZXR1cm4gdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJBbiBpbWFnZSB3aXRoIHRoaXMgbmFtZSBhbHJlYWR5IGV4aXN0cy4iKSkpO3RoaXMuaW1hZ2VNYW5hZ2VyLmFkZEltYWdlKGUsciksdGhpcy5fYXZhaWxhYmxlSW1hZ2VzPXRoaXMuaW1hZ2VNYW5hZ2VyLmxpc3RJbWFnZXMoKSx0aGlzLl9jaGFuZ2VkSW1hZ2VzW2VdPSEwLHRoaXMuX2NoYW5nZWQ9ITAsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkYXRhIix7ZGF0YVR5cGU6InN0eWxlIn0pKX0sci5wcm90b3R5cGUudXBkYXRlSW1hZ2U9ZnVuY3Rpb24odCxlKXt0aGlzLmltYWdlTWFuYWdlci51cGRhdGVJbWFnZSh0LGUpfSxyLnByb3RvdHlwZS5nZXRJbWFnZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5pbWFnZU1hbmFnZXIuZ2V0SW1hZ2UodCl9LHIucHJvdG90eXBlLnJlbW92ZUltYWdlPWZ1bmN0aW9uKGUpe2lmKCF0aGlzLmdldEltYWdlKGUpKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIk5vIGltYWdlIHdpdGggdGhpcyBuYW1lIGV4aXN0cy4iKSkpO3RoaXMuaW1hZ2VNYW5hZ2VyLnJlbW92ZUltYWdlKGUpLHRoaXMuX2F2YWlsYWJsZUltYWdlcz10aGlzLmltYWdlTWFuYWdlci5saXN0SW1hZ2VzKCksdGhpcy5fY2hhbmdlZEltYWdlc1tlXT0hMCx0aGlzLl9jaGFuZ2VkPSEwLHRoaXMuZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse2RhdGFUeXBlOiJzdHlsZSJ9KSl9LHIucHJvdG90eXBlLmxpc3RJbWFnZXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2hlY2tMb2FkZWQoKSx0aGlzLmltYWdlTWFuYWdlci5saXN0SW1hZ2VzKCl9LHIucHJvdG90eXBlLmFkZFNvdXJjZT1mdW5jdGlvbihlLHIsbil7dmFyIGk9dGhpcztpZih2b2lkIDA9PT1uJiYobj17fSksdGhpcy5fY2hlY2tMb2FkZWQoKSx2b2lkIDAhPT10aGlzLnNvdXJjZUNhY2hlc1tlXSl0aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGlzIGFscmVhZHkgYSBzb3VyY2Ugd2l0aCB0aGlzIElEIik7aWYoIXIudHlwZSl0aHJvdyBuZXcgRXJyb3IoIlRoZSB0eXBlIHByb3BlcnR5IG11c3QgYmUgZGVmaW5lZCwgYnV0IHRoZSBvbmx5IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllcyB3ZXJlIGdpdmVuOiAiK09iamVjdC5rZXlzKHIpLmpvaW4oIiwgIikrIi4iKTtpZighKFsidmVjdG9yIiwicmFzdGVyIiwiZ2VvanNvbiIsInZpZGVvIiwiaW1hZ2UiXS5pbmRleE9mKHIudHlwZSk+PTApfHwhdGhpcy5fdmFsaWRhdGUodC52YWxpZGF0ZVN0eWxlLnNvdXJjZSwic291cmNlcy4iK2UscixudWxsLG4pKXt0aGlzLm1hcCYmdGhpcy5tYXAuX2NvbGxlY3RSZXNvdXJjZVRpbWluZyYmKHIuY29sbGVjdFJlc291cmNlVGltaW5nPSEwKTt2YXIgYT10aGlzLnNvdXJjZUNhY2hlc1tlXT1uZXcgQ3QoZSxyLHRoaXMuZGlzcGF0Y2hlcik7YS5zdHlsZT10aGlzLGEuc2V0RXZlbnRlZFBhcmVudCh0aGlzLChmdW5jdGlvbigpe3JldHVybntpc1NvdXJjZUxvYWRlZDppLmxvYWRlZCgpLHNvdXJjZTphLnNlcmlhbGl6ZSgpLHNvdXJjZUlkOmV9fSkpLGEub25BZGQodGhpcy5tYXApLHRoaXMuX2NoYW5nZWQ9ITB9fSxyLnByb3RvdHlwZS5yZW1vdmVTb3VyY2U9ZnVuY3Rpb24oZSl7aWYodGhpcy5fY2hlY2tMb2FkZWQoKSx2b2lkIDA9PT10aGlzLnNvdXJjZUNhY2hlc1tlXSl0aHJvdyBuZXcgRXJyb3IoIlRoZXJlIGlzIG5vIHNvdXJjZSB3aXRoIHRoaXMgSUQiKTtmb3IodmFyIHIgaW4gdGhpcy5fbGF5ZXJzKWlmKHRoaXMuX2xheWVyc1tyXS5zb3VyY2U9PT1lKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoJ1NvdXJjZSAiJytlKyciIGNhbm5vdCBiZSByZW1vdmVkIHdoaWxlIGxheWVyICInK3IrJyIgaXMgdXNpbmcgaXQuJykpKTt2YXIgbj10aGlzLnNvdXJjZUNhY2hlc1tlXTtkZWxldGUgdGhpcy5zb3VyY2VDYWNoZXNbZV0sZGVsZXRlIHRoaXMuX3VwZGF0ZWRTb3VyY2VzW2VdLG4uZmlyZShuZXcgdC5FdmVudCgiZGF0YSIse3NvdXJjZURhdGFUeXBlOiJtZXRhZGF0YSIsZGF0YVR5cGU6InNvdXJjZSIsc291cmNlSWQ6ZX0pKSxuLnNldEV2ZW50ZWRQYXJlbnQobnVsbCksbi5jbGVhclRpbGVzKCksbi5vblJlbW92ZSYmbi5vblJlbW92ZSh0aGlzLm1hcCksdGhpcy5fY2hhbmdlZD0hMH0sci5wcm90b3R5cGUuc2V0R2VvSlNPTlNvdXJjZURhdGE9ZnVuY3Rpb24odCxlKXt0aGlzLl9jaGVja0xvYWRlZCgpLHRoaXMuc291cmNlQ2FjaGVzW3RdLmdldFNvdXJjZSgpLnNldERhdGEoZSksdGhpcy5fY2hhbmdlZD0hMH0sci5wcm90b3R5cGUuZ2V0U291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnNvdXJjZUNhY2hlc1t0XSYmdGhpcy5zb3VyY2VDYWNoZXNbdF0uZ2V0U291cmNlKCl9LHIucHJvdG90eXBlLmFkZExheWVyPWZ1bmN0aW9uKGUscixuKXt2b2lkIDA9PT1uJiYobj17fSksdGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgaT1lLmlkO2lmKHRoaXMuZ2V0TGF5ZXIoaSkpdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdMYXllciB3aXRoIGlkICInK2krJyIgYWxyZWFkeSBleGlzdHMgb24gdGhpcyBtYXAnKSkpO2Vsc2V7dmFyIGE7aWYoImN1c3RvbSI9PT1lLnR5cGUpe2lmKGplKHRoaXMsdC52YWxpZGF0ZUN1c3RvbVN0eWxlTGF5ZXIoZSkpKXJldHVybjthPXQuY3JlYXRlU3R5bGVMYXllcihlKX1lbHNle2lmKCJvYmplY3QiPT10eXBlb2YgZS5zb3VyY2UmJih0aGlzLmFkZFNvdXJjZShpLGUuc291cmNlKSxlPXQuY2xvbmUkMShlKSxlPXQuZXh0ZW5kKGUse3NvdXJjZTppfSkpLHRoaXMuX3ZhbGlkYXRlKHQudmFsaWRhdGVTdHlsZS5sYXllciwibGF5ZXJzLiIraSxlLHthcnJheUluZGV4Oi0xfSxuKSlyZXR1cm47YT10LmNyZWF0ZVN0eWxlTGF5ZXIoZSksdGhpcy5fdmFsaWRhdGVMYXllcihhKSxhLnNldEV2ZW50ZWRQYXJlbnQodGhpcyx7bGF5ZXI6e2lkOml9fSksdGhpcy5fc2VyaWFsaXplZExheWVyc1thLmlkXT1hLnNlcmlhbGl6ZSgpfXZhciBvPXI/dGhpcy5fb3JkZXIuaW5kZXhPZihyKTp0aGlzLl9vcmRlci5sZW5ndGg7aWYociYmLTE9PT1vKXRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcignTGF5ZXIgd2l0aCBpZCAiJytyKyciIGRvZXMgbm90IGV4aXN0IG9uIHRoaXMgbWFwLicpKSk7ZWxzZXtpZih0aGlzLl9vcmRlci5zcGxpY2UobywwLGkpLHRoaXMuX2xheWVyT3JkZXJDaGFuZ2VkPSEwLHRoaXMuX2xheWVyc1tpXT1hLHRoaXMuX3JlbW92ZWRMYXllcnNbaV0mJmEuc291cmNlJiYiY3VzdG9tIiE9PWEudHlwZSl7dmFyIHM9dGhpcy5fcmVtb3ZlZExheWVyc1tpXTtkZWxldGUgdGhpcy5fcmVtb3ZlZExheWVyc1tpXSxzLnR5cGUhPT1hLnR5cGU/dGhpcy5fdXBkYXRlZFNvdXJjZXNbYS5zb3VyY2VdPSJjbGVhciI6KHRoaXMuX3VwZGF0ZWRTb3VyY2VzW2Euc291cmNlXT0icmVsb2FkIix0aGlzLnNvdXJjZUNhY2hlc1thLnNvdXJjZV0ucGF1c2UoKSl9dGhpcy5fdXBkYXRlTGF5ZXIoYSksYS5vbkFkZCYmYS5vbkFkZCh0aGlzLm1hcCl9fX0sci5wcm90b3R5cGUubW92ZUxheWVyPWZ1bmN0aW9uKGUscil7aWYodGhpcy5fY2hlY2tMb2FkZWQoKSx0aGlzLl9jaGFuZ2VkPSEwLHRoaXMuX2xheWVyc1tlXSl7aWYoZSE9PXIpe3ZhciBuPXRoaXMuX29yZGVyLmluZGV4T2YoZSk7dGhpcy5fb3JkZXIuc3BsaWNlKG4sMSk7dmFyIGk9cj90aGlzLl9vcmRlci5pbmRleE9mKHIpOnRoaXMuX29yZGVyLmxlbmd0aDtyJiYtMT09PWk/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCdMYXllciB3aXRoIGlkICInK3IrJyIgZG9lcyBub3QgZXhpc3Qgb24gdGhpcyBtYXAuJykpKToodGhpcy5fb3JkZXIuc3BsaWNlKGksMCxlKSx0aGlzLl9sYXllck9yZGVyQ2hhbmdlZD0hMCl9fWVsc2UgdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrZSsiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUgYW5kIGNhbm5vdCBiZSBtb3ZlZC4iKSkpfSxyLnByb3RvdHlwZS5yZW1vdmVMYXllcj1mdW5jdGlvbihlKXt0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciByPXRoaXMuX2xheWVyc1tlXTtpZihyKXtyLnNldEV2ZW50ZWRQYXJlbnQobnVsbCk7dmFyIG49dGhpcy5fb3JkZXIuaW5kZXhPZihlKTt0aGlzLl9vcmRlci5zcGxpY2UobiwxKSx0aGlzLl9sYXllck9yZGVyQ2hhbmdlZD0hMCx0aGlzLl9jaGFuZ2VkPSEwLHRoaXMuX3JlbW92ZWRMYXllcnNbZV09cixkZWxldGUgdGhpcy5fbGF5ZXJzW2VdLGRlbGV0ZSB0aGlzLl9zZXJpYWxpemVkTGF5ZXJzW2VdLGRlbGV0ZSB0aGlzLl91cGRhdGVkTGF5ZXJzW2VdLGRlbGV0ZSB0aGlzLl91cGRhdGVkUGFpbnRQcm9wc1tlXSxyLm9uUmVtb3ZlJiZyLm9uUmVtb3ZlKHRoaXMubWFwKX1lbHNlIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGxheWVyICciK2UrIicgZG9lcyBub3QgZXhpc3QgaW4gdGhlIG1hcCdzIHN0eWxlIGFuZCBjYW5ub3QgYmUgcmVtb3ZlZC4iKSkpfSxyLnByb3RvdHlwZS5nZXRMYXllcj1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbGF5ZXJzW3RdfSxyLnByb3RvdHlwZS5oYXNMYXllcj1mdW5jdGlvbih0KXtyZXR1cm4gdCBpbiB0aGlzLl9sYXllcnN9LHIucHJvdG90eXBlLnNldExheWVyWm9vbVJhbmdlPWZ1bmN0aW9uKGUscixuKXt0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciBpPXRoaXMuZ2V0TGF5ZXIoZSk7aT9pLm1pbnpvb209PT1yJiZpLm1heHpvb209PT1ufHwobnVsbCE9ciYmKGkubWluem9vbT1yKSxudWxsIT1uJiYoaS5tYXh6b29tPW4pLHRoaXMuX3VwZGF0ZUxheWVyKGkpKTp0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitlKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZSBhbmQgY2Fubm90IGhhdmUgem9vbSBleHRlbnQuIikpKX0sci5wcm90b3R5cGUuc2V0RmlsdGVyPWZ1bmN0aW9uKGUscixuKXt2b2lkIDA9PT1uJiYobj17fSksdGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgaT10aGlzLmdldExheWVyKGUpO2lmKGkpe2lmKCF0LmRlZXBFcXVhbChpLmZpbHRlcixyKSlyZXR1cm4gbnVsbD09cj8oaS5maWx0ZXI9dm9pZCAwLHZvaWQgdGhpcy5fdXBkYXRlTGF5ZXIoaSkpOnZvaWQodGhpcy5fdmFsaWRhdGUodC52YWxpZGF0ZVN0eWxlLmZpbHRlciwibGF5ZXJzLiIraS5pZCsiLmZpbHRlciIscixudWxsLG4pfHwoaS5maWx0ZXI9dC5jbG9uZSQxKHIpLHRoaXMuX3VwZGF0ZUxheWVyKGkpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBsYXllciAnIitlKyInIGRvZXMgbm90IGV4aXN0IGluIHRoZSBtYXAncyBzdHlsZSBhbmQgY2Fubm90IGJlIGZpbHRlcmVkLiIpKSl9LHIucHJvdG90eXBlLmdldEZpbHRlcj1mdW5jdGlvbihlKXtyZXR1cm4gdC5jbG9uZSQxKHRoaXMuZ2V0TGF5ZXIoZSkuZmlsdGVyKX0sci5wcm90b3R5cGUuc2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24oZSxyLG4saSl7dm9pZCAwPT09aSYmKGk9e30pLHRoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIGE9dGhpcy5nZXRMYXllcihlKTthP3QuZGVlcEVxdWFsKGEuZ2V0TGF5b3V0UHJvcGVydHkociksbil8fChhLnNldExheW91dFByb3BlcnR5KHIsbixpKSx0aGlzLl91cGRhdGVMYXllcihhKSk6dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrZSsiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUgYW5kIGNhbm5vdCBiZSBzdHlsZWQuIikpKX0sci5wcm90b3R5cGUuZ2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLmdldExheWVyKGUpO2lmKG4pcmV0dXJuIG4uZ2V0TGF5b3V0UHJvcGVydHkocik7dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrZSsiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUuc2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbihlLHIsbixpKXt2b2lkIDA9PT1pJiYoaT17fSksdGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgYT10aGlzLmdldExheWVyKGUpO2E/dC5kZWVwRXF1YWwoYS5nZXRQYWludFByb3BlcnR5KHIpLG4pfHwoYS5zZXRQYWludFByb3BlcnR5KHIsbixpKSYmdGhpcy5fdXBkYXRlTGF5ZXIoYSksdGhpcy5fY2hhbmdlZD0hMCx0aGlzLl91cGRhdGVkUGFpbnRQcm9wc1tlXT0hMCk6dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrZSsiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUgYW5kIGNhbm5vdCBiZSBzdHlsZWQuIikpKX0sci5wcm90b3R5cGUuZ2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmdldExheWVyKHQpLmdldFBhaW50UHJvcGVydHkoZSl9LHIucHJvdG90eXBlLnNldEZlYXR1cmVTdGF0ZT1mdW5jdGlvbihlLHIpe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIG49ZS5zb3VyY2UsaT1lLnNvdXJjZUxheWVyLGE9dGhpcy5zb3VyY2VDYWNoZXNbbl07aWYodm9pZCAwIT09YSl7dmFyIG89YS5nZXRTb3VyY2UoKS50eXBlOyJnZW9qc29uIj09PW8mJmk/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJHZW9KU09OIHNvdXJjZXMgY2Fubm90IGhhdmUgYSBzb3VyY2VMYXllciBwYXJhbWV0ZXIuIikpKToidmVjdG9yIiE9PW98fGk/KHZvaWQgMD09PWUuaWQmJnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGZlYXR1cmUgaWQgcGFyYW1ldGVyIG11c3QgYmUgcHJvdmlkZWQuIikpKSxhLnNldEZlYXR1cmVTdGF0ZShpLGUuaWQscikpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZUxheWVyIHBhcmFtZXRlciBtdXN0IGJlIHByb3ZpZGVkIGZvciB2ZWN0b3Igc291cmNlIHR5cGVzLiIpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBzb3VyY2UgJyIrbisiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUucmVtb3ZlRmVhdHVyZVN0YXRlPWZ1bmN0aW9uKGUscil7dGhpcy5fY2hlY2tMb2FkZWQoKTt2YXIgbj1lLnNvdXJjZSxpPXRoaXMuc291cmNlQ2FjaGVzW25dO2lmKHZvaWQgMCE9PWkpe3ZhciBhPWkuZ2V0U291cmNlKCkudHlwZSxvPSJ2ZWN0b3IiPT09YT9lLnNvdXJjZUxheWVyOnZvaWQgMDsidmVjdG9yIiE9PWF8fG8/ciYmInN0cmluZyIhPXR5cGVvZiBlLmlkJiYibnVtYmVyIiE9dHlwZW9mIGUuaWQ/dGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJBIGZlYXR1cmUgaWQgaXMgcmVxdXJlZCB0byByZW1vdmUgaXRzIHNwZWNpZmljIHN0YXRlIHByb3BlcnR5LiIpKSk6aS5yZW1vdmVGZWF0dXJlU3RhdGUobyxlLmlkLHIpOnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZUxheWVyIHBhcmFtZXRlciBtdXN0IGJlIHByb3ZpZGVkIGZvciB2ZWN0b3Igc291cmNlIHR5cGVzLiIpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBzb3VyY2UgJyIrbisiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUuZ2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKGUpe3RoaXMuX2NoZWNrTG9hZGVkKCk7dmFyIHI9ZS5zb3VyY2Usbj1lLnNvdXJjZUxheWVyLGk9dGhpcy5zb3VyY2VDYWNoZXNbcl07aWYodm9pZCAwIT09aSl7aWYoInZlY3RvciIhPT1pLmdldFNvdXJjZSgpLnR5cGV8fG4pcmV0dXJuIHZvaWQgMD09PWUuaWQmJnRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIGZlYXR1cmUgaWQgcGFyYW1ldGVyIG11c3QgYmUgcHJvdmlkZWQuIikpKSxpLmdldEZlYXR1cmVTdGF0ZShuLGUuaWQpO3RoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHNvdXJjZUxheWVyIHBhcmFtZXRlciBtdXN0IGJlIHByb3ZpZGVkIGZvciB2ZWN0b3Igc291cmNlIHR5cGVzLiIpKSl9ZWxzZSB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZSBzb3VyY2UgJyIrcisiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUuIikpKX0sci5wcm90b3R5cGUuZ2V0VHJhbnNpdGlvbj1mdW5jdGlvbigpe3JldHVybiB0LmV4dGVuZCh7ZHVyYXRpb246MzAwLGRlbGF5OjB9LHRoaXMuc3R5bGVzaGVldCYmdGhpcy5zdHlsZXNoZWV0LnRyYW5zaXRpb24pfSxyLnByb3RvdHlwZS5zZXJpYWxpemU9ZnVuY3Rpb24oKXtyZXR1cm4gdC5maWx0ZXJPYmplY3Qoe3ZlcnNpb246dGhpcy5zdHlsZXNoZWV0LnZlcnNpb24sbmFtZTp0aGlzLnN0eWxlc2hlZXQubmFtZSxtZXRhZGF0YTp0aGlzLnN0eWxlc2hlZXQubWV0YWRhdGEsbGlnaHQ6dGhpcy5zdHlsZXNoZWV0LmxpZ2h0LGNlbnRlcjp0aGlzLnN0eWxlc2hlZXQuY2VudGVyLHpvb206dGhpcy5zdHlsZXNoZWV0Lnpvb20sYmVhcmluZzp0aGlzLnN0eWxlc2hlZXQuYmVhcmluZyxwaXRjaDp0aGlzLnN0eWxlc2hlZXQucGl0Y2gsc3ByaXRlOnRoaXMuc3R5bGVzaGVldC5zcHJpdGUsZ2x5cGhzOnRoaXMuc3R5bGVzaGVldC5nbHlwaHMsdHJhbnNpdGlvbjp0aGlzLnN0eWxlc2hlZXQudHJhbnNpdGlvbixzb3VyY2VzOnQubWFwT2JqZWN0KHRoaXMuc291cmNlQ2FjaGVzLChmdW5jdGlvbih0KXtyZXR1cm4gdC5zZXJpYWxpemUoKX0pKSxsYXllcnM6dGhpcy5fc2VyaWFsaXplTGF5ZXJzKHRoaXMuX29yZGVyKX0sKGZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT10fSkpfSxyLnByb3RvdHlwZS5fdXBkYXRlTGF5ZXI9ZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlZExheWVyc1t0LmlkXT0hMCx0LnNvdXJjZSYmIXRoaXMuX3VwZGF0ZWRTb3VyY2VzW3Quc291cmNlXSYmInJhc3RlciIhPT10aGlzLnNvdXJjZUNhY2hlc1t0LnNvdXJjZV0uZ2V0U291cmNlKCkudHlwZSYmKHRoaXMuX3VwZGF0ZWRTb3VyY2VzW3Quc291cmNlXT0icmVsb2FkIix0aGlzLnNvdXJjZUNhY2hlc1t0LnNvdXJjZV0ucGF1c2UoKSksdGhpcy5fY2hhbmdlZD0hMH0sci5wcm90b3R5cGUuX2ZsYXR0ZW5BbmRTb3J0UmVuZGVyZWRGZWF0dXJlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dGhpcyxyPWZ1bmN0aW9uKHQpe3JldHVybiJmaWxsLWV4dHJ1c2lvbiI9PT1lLl9sYXllcnNbdF0udHlwZX0sbj17fSxpPVtdLGE9dGhpcy5fb3JkZXIubGVuZ3RoLTE7YT49MDthLS0pe3ZhciBvPXRoaXMuX29yZGVyW2FdO2lmKHIobykpe25bb109YTtmb3IodmFyIHM9MCxsPXQ7czxsLmxlbmd0aDtzKz0xKXt2YXIgYz1sW3NdW29dO2lmKGMpZm9yKHZhciB1PTAsZj1jO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XTtpLnB1c2goaCl9fX19aS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLmludGVyc2VjdGlvblotdC5pbnRlcnNlY3Rpb25afSkpO2Zvcih2YXIgcD1bXSxkPXRoaXMuX29yZGVyLmxlbmd0aC0xO2Q+PTA7ZC0tKXt2YXIgbT10aGlzLl9vcmRlcltkXTtpZihyKG0pKWZvcih2YXIgZz1pLmxlbmd0aC0xO2c+PTA7Zy0tKXt2YXIgdj1pW2ddLmZlYXR1cmU7aWYoblt2LmxheWVyLmlkXTxkKWJyZWFrO3AucHVzaCh2KSxpLnBvcCgpfWVsc2UgZm9yKHZhciB5PTAseD10O3k8eC5sZW5ndGg7eSs9MSl7dmFyIGI9eFt5XVttXTtpZihiKWZvcih2YXIgXz0wLHc9YjtfPHcubGVuZ3RoO18rPTEpe3ZhciBUPXdbX107cC5wdXNoKFQuZmVhdHVyZSl9fX1yZXR1cm4gcH0sci5wcm90b3R5cGUucXVlcnlSZW5kZXJlZEZlYXR1cmVzPWZ1bmN0aW9uKGUscixuKXtyJiZyLmZpbHRlciYmdGhpcy5fdmFsaWRhdGUodC52YWxpZGF0ZVN0eWxlLmZpbHRlciwicXVlcnlSZW5kZXJlZEZlYXR1cmVzLmZpbHRlciIsci5maWx0ZXIsbnVsbCxyKTt2YXIgaT17fTtpZihyJiZyLmxheWVycyl7aWYoIUFycmF5LmlzQXJyYXkoci5sYXllcnMpKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoInBhcmFtZXRlcnMubGF5ZXJzIG11c3QgYmUgYW4gQXJyYXkuIikpKSxbXTtmb3IodmFyIGE9MCxvPXIubGF5ZXJzO2E8by5sZW5ndGg7YSs9MSl7dmFyIHM9b1thXSxsPXRoaXMuX2xheWVyc1tzXTtpZighbClyZXR1cm4gdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJUaGUgbGF5ZXIgJyIrcysiJyBkb2VzIG5vdCBleGlzdCBpbiB0aGUgbWFwJ3Mgc3R5bGUgYW5kIGNhbm5vdCBiZSBxdWVyaWVkIGZvciBmZWF0dXJlcy4iKSkpLFtdO2lbbC5zb3VyY2VdPSEwfX12YXIgYz1bXTtmb3IodmFyIHUgaW4gci5hdmFpbGFibGVJbWFnZXM9dGhpcy5fYXZhaWxhYmxlSW1hZ2VzLHRoaXMuc291cmNlQ2FjaGVzKXIubGF5ZXJzJiYhaVt1XXx8Yy5wdXNoKEYodGhpcy5zb3VyY2VDYWNoZXNbdV0sdGhpcy5fbGF5ZXJzLHRoaXMuX3NlcmlhbGl6ZWRMYXllcnMsZSxyLG4pKTtyZXR1cm4gdGhpcy5wbGFjZW1lbnQmJmMucHVzaChmdW5jdGlvbih0LGUscixuLGksYSxvKXtmb3IodmFyIHM9e30sbD1hLnF1ZXJ5UmVuZGVyZWRTeW1ib2xzKG4pLGM9W10sdT0wLGY9T2JqZWN0LmtleXMobCkubWFwKE51bWJlcik7dTxmLmxlbmd0aDt1Kz0xKXt2YXIgaD1mW3VdO2MucHVzaChvW2hdKX1jLnNvcnQoQik7Zm9yKHZhciBwPWZ1bmN0aW9uKCl7dmFyIHI9bVtkXSxuPXIuZmVhdHVyZUluZGV4Lmxvb2t1cFN5bWJvbEZlYXR1cmVzKGxbci5idWNrZXRJbnN0YW5jZUlkXSxlLHIuYnVja2V0SW5kZXgsci5zb3VyY2VMYXllckluZGV4LGkuZmlsdGVyLGkubGF5ZXJzLGkuYXZhaWxhYmxlSW1hZ2VzLHQpO2Zvcih2YXIgYSBpbiBuKXt2YXIgbz1zW2FdPXNbYV18fFtdLGM9blthXTtjLnNvcnQoKGZ1bmN0aW9uKHQsZSl7dmFyIG49ci5mZWF0dXJlU29ydE9yZGVyO2lmKG4pe3ZhciBpPW4uaW5kZXhPZih0LmZlYXR1cmVJbmRleCk7cmV0dXJuIG4uaW5kZXhPZihlLmZlYXR1cmVJbmRleCktaX1yZXR1cm4gZS5mZWF0dXJlSW5kZXgtdC5mZWF0dXJlSW5kZXh9KSk7Zm9yKHZhciB1PTAsZj1jO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XTtvLnB1c2goaCl9fX0sZD0wLG09YztkPG0ubGVuZ3RoO2QrPTEpcCgpO3ZhciBnPWZ1bmN0aW9uKGUpe3NbZV0uZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIGk9bi5mZWF0dXJlLGE9dFtlXSxvPXJbYS5zb3VyY2VdLmdldEZlYXR1cmVTdGF0ZShpLmxheWVyWyJzb3VyY2UtbGF5ZXIiXSxpLmlkKTtpLnNvdXJjZT1pLmxheWVyLnNvdXJjZSxpLmxheWVyWyJzb3VyY2UtbGF5ZXIiXSYmKGkuc291cmNlTGF5ZXI9aS5sYXllclsic291cmNlLWxheWVyIl0pLGkuc3RhdGU9b30pKX07Zm9yKHZhciB2IGluIHMpZyh2KTtyZXR1cm4gc30odGhpcy5fbGF5ZXJzLHRoaXMuX3NlcmlhbGl6ZWRMYXllcnMsdGhpcy5zb3VyY2VDYWNoZXMsZSxyLHRoaXMucGxhY2VtZW50LmNvbGxpc2lvbkluZGV4LHRoaXMucGxhY2VtZW50LnJldGFpbmVkUXVlcnlEYXRhKSksdGhpcy5fZmxhdHRlbkFuZFNvcnRSZW5kZXJlZEZlYXR1cmVzKGMpfSxyLnByb3RvdHlwZS5xdWVyeVNvdXJjZUZlYXR1cmVzPWZ1bmN0aW9uKGUscil7ciYmci5maWx0ZXImJnRoaXMuX3ZhbGlkYXRlKHQudmFsaWRhdGVTdHlsZS5maWx0ZXIsInF1ZXJ5U291cmNlRmVhdHVyZXMuZmlsdGVyIixyLmZpbHRlcixudWxsLHIpO3ZhciBuPXRoaXMuc291cmNlQ2FjaGVzW2VdO3JldHVybiBuP2Z1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuZ2V0UmVuZGVyYWJsZUlkcygpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZ2V0VGlsZUJ5SUQoZSl9KSksbj1bXSxpPXt9LGE9MDthPHIubGVuZ3RoO2ErKyl7dmFyIG89clthXSxzPW8udGlsZUlELmNhbm9uaWNhbC5rZXk7aVtzXXx8KGlbc109ITAsby5xdWVyeVNvdXJjZUZlYXR1cmVzKG4sZSkpfXJldHVybiBufShuLHIpOltdfSxyLnByb3RvdHlwZS5hZGRTb3VyY2VUeXBlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gci5nZXRTb3VyY2VUeXBlKHQpP24obmV3IEVycm9yKCdBIHNvdXJjZSB0eXBlIGNhbGxlZCAiJyt0KyciIGFscmVhZHkgZXhpc3RzLicpKTooci5zZXRTb3VyY2VUeXBlKHQsZSksZS53b3JrZXJTb3VyY2VVUkw/dm9pZCB0aGlzLmRpc3BhdGNoZXIuYnJvYWRjYXN0KCJsb2FkV29ya2VyU291cmNlIix7bmFtZTp0LHVybDplLndvcmtlclNvdXJjZVVSTH0sbik6bihudWxsLG51bGwpKX0sci5wcm90b3R5cGUuZ2V0TGlnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5saWdodC5nZXRMaWdodCgpfSxyLnByb3RvdHlwZS5zZXRMaWdodD1mdW5jdGlvbihlLHIpe3ZvaWQgMD09PXImJihyPXt9KSx0aGlzLl9jaGVja0xvYWRlZCgpO3ZhciBuPXRoaXMubGlnaHQuZ2V0TGlnaHQoKSxpPSExO2Zvcih2YXIgYSBpbiBlKWlmKCF0LmRlZXBFcXVhbChlW2FdLG5bYV0pKXtpPSEwO2JyZWFrfWlmKGkpe3ZhciBvPXtub3c6dC5icm93c2VyLm5vdygpLHRyYW5zaXRpb246dC5leHRlbmQoe2R1cmF0aW9uOjMwMCxkZWxheTowfSx0aGlzLnN0eWxlc2hlZXQudHJhbnNpdGlvbil9O3RoaXMubGlnaHQuc2V0TGlnaHQoZSxyKSx0aGlzLmxpZ2h0LnVwZGF0ZVRyYW5zaXRpb25zKG8pfX0sci5wcm90b3R5cGUuX3ZhbGlkYXRlPWZ1bmN0aW9uKGUscixuLGksYSl7cmV0dXJuIHZvaWQgMD09PWEmJihhPXt9KSwoIWF8fCExIT09YS52YWxpZGF0ZSkmJmplKHRoaXMsZS5jYWxsKHQudmFsaWRhdGVTdHlsZSx0LmV4dGVuZCh7a2V5OnIsc3R5bGU6dGhpcy5zZXJpYWxpemUoKSx2YWx1ZTpuLHN0eWxlU3BlYzp0LnN0eWxlU3BlY30saSkpKX0sci5wcm90b3R5cGUuX3JlbW92ZT1mdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0aGlzLl9yZXF1ZXN0JiYodGhpcy5fcmVxdWVzdC5jYW5jZWwoKSx0aGlzLl9yZXF1ZXN0PW51bGwpLHRoaXMuX3Nwcml0ZVJlcXVlc3QmJih0aGlzLl9zcHJpdGVSZXF1ZXN0LmNhbmNlbCgpLHRoaXMuX3Nwcml0ZVJlcXVlc3Q9bnVsbCksdC5ldmVudGVkLm9mZigicGx1Z2luU3RhdGVDaGFuZ2UiLHRoaXMuX3J0bFRleHRQbHVnaW5DYWxsYmFjayksdGhpcy5fbGF5ZXJzKXt0aGlzLl9sYXllcnNbZV0uc2V0RXZlbnRlZFBhcmVudChudWxsKX1mb3IodmFyIHIgaW4gdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5zb3VyY2VDYWNoZXNbcl0uY2xlYXJUaWxlcygpLHRoaXMuc291cmNlQ2FjaGVzW3JdLnNldEV2ZW50ZWRQYXJlbnQobnVsbCk7dGhpcy5pbWFnZU1hbmFnZXIuc2V0RXZlbnRlZFBhcmVudChudWxsKSx0aGlzLnNldEV2ZW50ZWRQYXJlbnQobnVsbCksdGhpcy5kaXNwYXRjaGVyLnJlbW92ZSgpfSxyLnByb3RvdHlwZS5fY2xlYXJTb3VyY2U9ZnVuY3Rpb24odCl7dGhpcy5zb3VyY2VDYWNoZXNbdF0uY2xlYXJUaWxlcygpfSxyLnByb3RvdHlwZS5fcmVsb2FkU291cmNlPWZ1bmN0aW9uKHQpe3RoaXMuc291cmNlQ2FjaGVzW3RdLnJlc3VtZSgpLHRoaXMuc291cmNlQ2FjaGVzW3RdLnJlbG9hZCgpfSxyLnByb3RvdHlwZS5fdXBkYXRlU291cmNlcz1mdW5jdGlvbih0KXtmb3IodmFyIGUgaW4gdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5zb3VyY2VDYWNoZXNbZV0udXBkYXRlKHQpfSxyLnByb3RvdHlwZS5fZ2VuZXJhdGVDb2xsaXNpb25Cb3hlcz1mdW5jdGlvbigpe2Zvcih2YXIgdCBpbiB0aGlzLnNvdXJjZUNhY2hlcyl0aGlzLl9yZWxvYWRTb3VyY2UodCl9LHIucHJvdG90eXBlLl91cGRhdGVQbGFjZW1lbnQ9ZnVuY3Rpb24oZSxyLG4saSxhKXt2b2lkIDA9PT1hJiYoYT0hMSk7Zm9yKHZhciBvPSExLHM9ITEsbD17fSxjPTAsdT10aGlzLl9vcmRlcjtjPHUubGVuZ3RoO2MrPTEpe3ZhciBmPXVbY10saD10aGlzLl9sYXllcnNbZl07aWYoInN5bWJvbCI9PT1oLnR5cGUpe2lmKCFsW2guc291cmNlXSl7dmFyIHA9dGhpcy5zb3VyY2VDYWNoZXNbaC5zb3VyY2VdO2xbaC5zb3VyY2VdPXAuZ2V0UmVuZGVyYWJsZUlkcyghMCkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gcC5nZXRUaWxlQnlJRCh0KX0pKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLnRpbGVJRC5vdmVyc2NhbGVkWi10LnRpbGVJRC5vdmVyc2NhbGVkWnx8KHQudGlsZUlELmlzTGVzc1RoYW4oZS50aWxlSUQpPy0xOjEpfSkpfXZhciBkPXRoaXMuY3Jvc3NUaWxlU3ltYm9sSW5kZXguYWRkTGF5ZXIoaCxsW2guc291cmNlXSxlLmNlbnRlci5sbmcpO289b3x8ZH19aWYodGhpcy5jcm9zc1RpbGVTeW1ib2xJbmRleC5wcnVuZVVudXNlZExheWVycyh0aGlzLl9vcmRlciksKChhPWF8fHRoaXMuX2xheWVyT3JkZXJDaGFuZ2VkfHwwPT09bil8fCF0aGlzLnBhdXNlYWJsZVBsYWNlbWVudHx8dGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuaXNEb25lKCkmJiF0aGlzLnBsYWNlbWVudC5zdGlsbFJlY2VudCh0LmJyb3dzZXIubm93KCksZS56b29tKSkmJih0aGlzLnBhdXNlYWJsZVBsYWNlbWVudD1uZXcgemUoZSx0aGlzLl9vcmRlcixhLHIsbixpLHRoaXMucGxhY2VtZW50KSx0aGlzLl9sYXllck9yZGVyQ2hhbmdlZD0hMSksdGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuaXNEb25lKCk/dGhpcy5wbGFjZW1lbnQuc2V0U3RhbGUoKToodGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuY29udGludWVQbGFjZW1lbnQodGhpcy5fb3JkZXIsdGhpcy5fbGF5ZXJzLGwpLHRoaXMucGF1c2VhYmxlUGxhY2VtZW50LmlzRG9uZSgpJiYodGhpcy5wbGFjZW1lbnQ9dGhpcy5wYXVzZWFibGVQbGFjZW1lbnQuY29tbWl0KHQuYnJvd3Nlci5ub3coKSkscz0hMCksbyYmdGhpcy5wYXVzZWFibGVQbGFjZW1lbnQucGxhY2VtZW50LnNldFN0YWxlKCkpLHN8fG8pZm9yKHZhciBtPTAsZz10aGlzLl9vcmRlcjttPGcubGVuZ3RoO20rPTEpe3ZhciB2PWdbbV0seT10aGlzLl9sYXllcnNbdl07InN5bWJvbCI9PT15LnR5cGUmJnRoaXMucGxhY2VtZW50LnVwZGF0ZUxheWVyT3BhY2l0aWVzKHksbFt5LnNvdXJjZV0pfXJldHVybiF0aGlzLnBhdXNlYWJsZVBsYWNlbWVudC5pc0RvbmUoKXx8dGhpcy5wbGFjZW1lbnQuaGFzVHJhbnNpdGlvbnModC5icm93c2VyLm5vdygpKX0sci5wcm90b3R5cGUuX3JlbGVhc2VTeW1ib2xGYWRlVGlsZXM9ZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gdGhpcy5zb3VyY2VDYWNoZXMpdGhpcy5zb3VyY2VDYWNoZXNbdF0ucmVsZWFzZVN5bWJvbEZhZGVUaWxlcygpfSxyLnByb3RvdHlwZS5nZXRJbWFnZXM9ZnVuY3Rpb24odCxlLHIpe3RoaXMuaW1hZ2VNYW5hZ2VyLmdldEltYWdlcyhlLmljb25zLHIpLHRoaXMuX3VwZGF0ZVRpbGVzRm9yQ2hhbmdlZEltYWdlcygpO3ZhciBuPXRoaXMuc291cmNlQ2FjaGVzW2Uuc291cmNlXTtuJiZuLnNldERlcGVuZGVuY2llcyhlLnRpbGVJRC5rZXksZS50eXBlLGUuaWNvbnMpfSxyLnByb3RvdHlwZS5nZXRHbHlwaHM9ZnVuY3Rpb24odCxlLHIpe3RoaXMuZ2x5cGhNYW5hZ2VyLmdldEdseXBocyhlLnN0YWNrcyxyKX0sci5wcm90b3R5cGUuZ2V0UmVzb3VyY2U9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0Lm1ha2VSZXF1ZXN0KHIsbil9LHJ9KHQuRXZlbnRlZCk7cWUuZ2V0U291cmNlVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gRFt0XX0scWUuc2V0U291cmNlVHlwZT1mdW5jdGlvbih0LGUpe0RbdF09ZX0scWUucmVnaXN0ZXJGb3JQbHVnaW5TdGF0ZUNoYW5nZT10LnJlZ2lzdGVyRm9yUGx1Z2luU3RhdGVDaGFuZ2U7dmFyIEdlPXQuY3JlYXRlTGF5b3V0KFt7bmFtZToiYV9wb3MiLHR5cGU6IkludDE2Iixjb21wb25lbnRzOjJ9XSksWWU9eXIoIiNpZmRlZiBHTF9FU1xucHJlY2lzaW9uIG1lZGl1bXAgZmxvYXQ7XG4jZWxzZVxuI2lmICFkZWZpbmVkKGxvd3ApXG4jZGVmaW5lIGxvd3BcbiNlbmRpZlxuI2lmICFkZWZpbmVkKG1lZGl1bXApXG4jZGVmaW5lIG1lZGl1bXBcbiNlbmRpZlxuI2lmICFkZWZpbmVkKGhpZ2hwKVxuI2RlZmluZSBoaWdocFxuI2VuZGlmXG4jZW5kaWYiLCIjaWZkZWYgR0xfRVNcbnByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNlbHNlXG4jaWYgIWRlZmluZWQobG93cClcbiNkZWZpbmUgbG93cFxuI2VuZGlmXG4jaWYgIWRlZmluZWQobWVkaXVtcClcbiNkZWZpbmUgbWVkaXVtcFxuI2VuZGlmXG4jaWYgIWRlZmluZWQoaGlnaHApXG4jZGVmaW5lIGhpZ2hwXG4jZW5kaWZcbiNlbmRpZlxudmVjMiB1bnBhY2tfZmxvYXQoY29uc3QgZmxvYXQgcGFja2VkVmFsdWUpIHtpbnQgcGFja2VkSW50VmFsdWU9aW50KHBhY2tlZFZhbHVlKTtpbnQgdjA9cGFja2VkSW50VmFsdWUvMjU2O3JldHVybiB2ZWMyKHYwLHBhY2tlZEludFZhbHVlLXYwKjI1Nik7fXZlYzIgdW5wYWNrX29wYWNpdHkoY29uc3QgZmxvYXQgcGFja2VkT3BhY2l0eSkge2ludCBpbnRPcGFjaXR5PWludChwYWNrZWRPcGFjaXR5KS8yO3JldHVybiB2ZWMyKGZsb2F0KGludE9wYWNpdHkpLzEyNy4wLG1vZChwYWNrZWRPcGFjaXR5LDIuMCkpO312ZWM0IGRlY29kZV9jb2xvcihjb25zdCB2ZWMyIGVuY29kZWRDb2xvcikge3JldHVybiB2ZWM0KHVucGFja19mbG9hdChlbmNvZGVkQ29sb3JbMF0pLzI1NS4wLHVucGFja19mbG9hdChlbmNvZGVkQ29sb3JbMV0pLzI1NS4wXG4pO31mbG9hdCB1bnBhY2tfbWl4X3ZlYzIoY29uc3QgdmVjMiBwYWNrZWRWYWx1ZSxjb25zdCBmbG9hdCB0KSB7cmV0dXJuIG1peChwYWNrZWRWYWx1ZVswXSxwYWNrZWRWYWx1ZVsxXSx0KTt9dmVjNCB1bnBhY2tfbWl4X2NvbG9yKGNvbnN0IHZlYzQgcGFja2VkQ29sb3JzLGNvbnN0IGZsb2F0IHQpIHt2ZWM0IG1pbkNvbG9yPWRlY29kZV9jb2xvcih2ZWMyKHBhY2tlZENvbG9yc1swXSxwYWNrZWRDb2xvcnNbMV0pKTt2ZWM0IG1heENvbG9yPWRlY29kZV9jb2xvcih2ZWMyKHBhY2tlZENvbG9yc1syXSxwYWNrZWRDb2xvcnNbM10pKTtyZXR1cm4gbWl4KG1pbkNvbG9yLG1heENvbG9yLHQpO312ZWMyIGdldF9wYXR0ZXJuX3Bvcyhjb25zdCB2ZWMyIHBpeGVsX2Nvb3JkX3VwcGVyLGNvbnN0IHZlYzIgcGl4ZWxfY29vcmRfbG93ZXIsY29uc3QgdmVjMiBwYXR0ZXJuX3NpemUsY29uc3QgZmxvYXQgdGlsZV91bml0c190b19waXhlbHMsY29uc3QgdmVjMiBwb3MpIHt2ZWMyIG9mZnNldD1tb2QobW9kKG1vZChwaXhlbF9jb29yZF91cHBlcixwYXR0ZXJuX3NpemUpKjI1Ni4wLHBhdHRlcm5fc2l6ZSkqMjU2LjArcGl4ZWxfY29vcmRfbG93ZXIscGF0dGVybl9zaXplKTtyZXR1cm4gKHRpbGVfdW5pdHNfdG9fcGl4ZWxzKnBvcytvZmZzZXQpL3BhdHRlcm5fc2l6ZTt9IiksV2U9eXIoInVuaWZvcm0gdmVjNCB1X2NvbG9yO3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3ZvaWQgbWFpbigpIHtnbF9GcmFnQ29sb3I9dV9jb2xvcip1X29wYWNpdHk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiYXR0cmlidXRlIHZlYzIgYV9wb3M7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7fSIpLFhlPXlyKCJ1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX3RsX2E7dW5pZm9ybSB2ZWMyIHVfcGF0dGVybl9icl9hO3VuaWZvcm0gdmVjMiB1X3BhdHRlcm5fdGxfYjt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuX2JyX2I7dW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIGZsb2F0IHVfbWl4O3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfcG9zX2E7dmFyeWluZyB2ZWMyIHZfcG9zX2I7dm9pZCBtYWluKCkge3ZlYzIgaW1hZ2Vjb29yZD1tb2Qodl9wb3NfYSwxLjApO3ZlYzIgcG9zPW1peCh1X3BhdHRlcm5fdGxfYS91X3RleHNpemUsdV9wYXR0ZXJuX2JyX2EvdV90ZXhzaXplLGltYWdlY29vcmQpO3ZlYzQgY29sb3IxPXRleHR1cmUyRCh1X2ltYWdlLHBvcyk7dmVjMiBpbWFnZWNvb3JkX2I9bW9kKHZfcG9zX2IsMS4wKTt2ZWMyIHBvczI9bWl4KHVfcGF0dGVybl90bF9iL3VfdGV4c2l6ZSx1X3BhdHRlcm5fYnJfYi91X3RleHNpemUsaW1hZ2Vjb29yZF9iKTt2ZWM0IGNvbG9yMj10ZXh0dXJlMkQodV9pbWFnZSxwb3MyKTtnbF9GcmFnQ29sb3I9bWl4KGNvbG9yMSxjb2xvcjIsdV9taXgpKnVfb3BhY2l0eTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfcGF0dGVybl9zaXplX2E7dW5pZm9ybSB2ZWMyIHVfcGF0dGVybl9zaXplX2I7dW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfdXBwZXI7dW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfbG93ZXI7dW5pZm9ybSBmbG9hdCB1X3NjYWxlX2E7dW5pZm9ybSBmbG9hdCB1X3NjYWxlX2I7dW5pZm9ybSBmbG9hdCB1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dl9wb3NfYT1nZXRfcGF0dGVybl9wb3ModV9waXhlbF9jb29yZF91cHBlcix1X3BpeGVsX2Nvb3JkX2xvd2VyLHVfc2NhbGVfYSp1X3BhdHRlcm5fc2l6ZV9hLHVfdGlsZV91bml0c190b19waXhlbHMsYV9wb3MpO3ZfcG9zX2I9Z2V0X3BhdHRlcm5fcG9zKHVfcGl4ZWxfY29vcmRfdXBwZXIsdV9waXhlbF9jb29yZF9sb3dlcix1X3NjYWxlX2IqdV9wYXR0ZXJuX3NpemVfYix1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzLGFfcG9zKTt9IiksWmU9eXIoInZhcnlpbmcgdmVjMyB2X2RhdGE7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCByYWRpdXNcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IHN0cm9rZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHN0cm9rZV93aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IHN0cm9rZV9vcGFjaXR5XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgc3Ryb2tlX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHN0cm9rZV93aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBzdHJva2Vfb3BhY2l0eVxudmVjMiBleHRydWRlPXZfZGF0YS54eTtmbG9hdCBleHRydWRlX2xlbmd0aD1sZW5ndGgoZXh0cnVkZSk7bG93cCBmbG9hdCBhbnRpYWxpYXNibHVyPXZfZGF0YS56O2Zsb2F0IGFudGlhbGlhc2VkX2JsdXI9LW1heChibHVyLGFudGlhbGlhc2JsdXIpO2Zsb2F0IG9wYWNpdHlfdD1zbW9vdGhzdGVwKDAuMCxhbnRpYWxpYXNlZF9ibHVyLGV4dHJ1ZGVfbGVuZ3RoLTEuMCk7ZmxvYXQgY29sb3JfdD1zdHJva2Vfd2lkdGggPCAwLjAxID8gMC4wIDogc21vb3Roc3RlcChhbnRpYWxpYXNlZF9ibHVyLDAuMCxleHRydWRlX2xlbmd0aC1yYWRpdXMvKHJhZGl1cytzdHJva2Vfd2lkdGgpKTtnbF9GcmFnQ29sb3I9b3BhY2l0eV90Km1peChjb2xvcipvcGFjaXR5LHN0cm9rZV9jb2xvcipzdHJva2Vfb3BhY2l0eSxjb2xvcl90KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSBib29sIHVfc2NhbGVfd2l0aF9tYXA7dW5pZm9ybSBib29sIHVfcGl0Y2hfd2l0aF9tYXA7dW5pZm9ybSB2ZWMyIHVfZXh0cnVkZV9zY2FsZTt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dW5pZm9ybSBoaWdocCBmbG9hdCB1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2U7YXR0cmlidXRlIHZlYzIgYV9wb3M7dmFyeWluZyB2ZWMzIHZfZGF0YTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgc3Ryb2tlX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgc3Ryb2tlX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgc3Ryb2tlX29wYWNpdHlcbnZvaWQgbWFpbih2b2lkKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgc3Ryb2tlX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHN0cm9rZV93aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBzdHJva2Vfb3BhY2l0eVxudmVjMiBleHRydWRlPXZlYzIobW9kKGFfcG9zLDIuMCkqMi4wLTEuMCk7dmVjMiBjaXJjbGVfY2VudGVyPWZsb29yKGFfcG9zKjAuNSk7aWYgKHVfcGl0Y2hfd2l0aF9tYXApIHt2ZWMyIGNvcm5lcl9wb3NpdGlvbj1jaXJjbGVfY2VudGVyO2lmICh1X3NjYWxlX3dpdGhfbWFwKSB7Y29ybmVyX3Bvc2l0aW9uKz1leHRydWRlKihyYWRpdXMrc3Ryb2tlX3dpZHRoKSp1X2V4dHJ1ZGVfc2NhbGU7fSBlbHNlIHt2ZWM0IHByb2plY3RlZF9jZW50ZXI9dV9tYXRyaXgqdmVjNChjaXJjbGVfY2VudGVyLDAsMSk7Y29ybmVyX3Bvc2l0aW9uKz1leHRydWRlKihyYWRpdXMrc3Ryb2tlX3dpZHRoKSp1X2V4dHJ1ZGVfc2NhbGUqKHByb2plY3RlZF9jZW50ZXIudy91X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2UpO31nbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGNvcm5lcl9wb3NpdGlvbiwwLDEpO30gZWxzZSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChjaXJjbGVfY2VudGVyLDAsMSk7aWYgKHVfc2NhbGVfd2l0aF9tYXApIHtnbF9Qb3NpdGlvbi54eSs9ZXh0cnVkZSoocmFkaXVzK3N0cm9rZV93aWR0aCkqdV9leHRydWRlX3NjYWxlKnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTt9IGVsc2Uge2dsX1Bvc2l0aW9uLnh5Kz1leHRydWRlKihyYWRpdXMrc3Ryb2tlX3dpZHRoKSp1X2V4dHJ1ZGVfc2NhbGUqZ2xfUG9zaXRpb24udzt9fWxvd3AgZmxvYXQgYW50aWFsaWFzYmx1cj0xLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8vKHJhZGl1cytzdHJva2Vfd2lkdGgpO3ZfZGF0YT12ZWMzKGV4dHJ1ZGUueCxleHRydWRlLnksYW50aWFsaWFzYmx1cik7fSIpLEplPXlyKCJ2b2lkIG1haW4oKSB7Z2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTt9IiwiYXR0cmlidXRlIHZlYzIgYV9wb3M7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7fSIpLEtlPXlyKCJ1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfaW50ZW5zaXR5O3ZhcnlpbmcgdmVjMiB2X2V4dHJ1ZGU7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIGZsb2F0IHdlaWdodFxuI2RlZmluZSBHQVVTU19DT0VGIDAuMzk4OTQyMjgwNDAxNDMyN1xudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgZmxvYXQgd2VpZ2h0XG5mbG9hdCBkPS0wLjUqMy4wKjMuMCpkb3Qodl9leHRydWRlLHZfZXh0cnVkZSk7ZmxvYXQgdmFsPXdlaWdodCp1X2ludGVuc2l0eSpHQVVTU19DT0VGKmV4cChkKTtnbF9GcmFnQ29sb3I9dmVjNCh2YWwsMS4wLDEuMCwxLjApO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIGZsb2F0IHVfZXh0cnVkZV9zY2FsZTt1bmlmb3JtIGZsb2F0IHVfb3BhY2l0eTt1bmlmb3JtIGZsb2F0IHVfaW50ZW5zaXR5O2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X2V4dHJ1ZGU7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIGZsb2F0IHdlaWdodFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHJhZGl1c1xuY29uc3QgaGlnaHAgZmxvYXQgWkVSTz0xLjAvMjU1LjAvMTYuMDtcbiNkZWZpbmUgR0FVU1NfQ09FRiAwLjM5ODk0MjI4MDQwMTQzMjdcbnZvaWQgbWFpbih2b2lkKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCBmbG9hdCB3ZWlnaHRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgcmFkaXVzXG52ZWMyIHVuc2NhbGVkX2V4dHJ1ZGU9dmVjMihtb2QoYV9wb3MsMi4wKSoyLjAtMS4wKTtmbG9hdCBTPXNxcnQoLTIuMCpsb2coWkVSTy93ZWlnaHQvdV9pbnRlbnNpdHkvR0FVU1NfQ09FRikpLzMuMDt2X2V4dHJ1ZGU9Uyp1bnNjYWxlZF9leHRydWRlO3ZlYzIgZXh0cnVkZT12X2V4dHJ1ZGUqcmFkaXVzKnVfZXh0cnVkZV9zY2FsZTt2ZWM0IHBvcz12ZWM0KGZsb29yKGFfcG9zKjAuNSkrZXh0cnVkZSwwLDEpO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnBvczt9IiksUWU9eXIoInVuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dW5pZm9ybSBzYW1wbGVyMkQgdV9jb2xvcl9yYW1wO3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3ZhcnlpbmcgdmVjMiB2X3Bvczt2b2lkIG1haW4oKSB7ZmxvYXQgdD10ZXh0dXJlMkQodV9pbWFnZSx2X3Bvcykucjt2ZWM0IGNvbG9yPXRleHR1cmUyRCh1X2NvbG9yX3JhbXAsdmVjMih0LDAuNSkpO2dsX0ZyYWdDb2xvcj1jb2xvcip1X29wYWNpdHk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgwLjApO1xuI2VuZGlmXG59IiwidW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gdmVjMiB1X3dvcmxkO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X3Bvczt2b2lkIG1haW4oKSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3Bvcyp1X3dvcmxkLDAsMSk7dl9wb3MueD1hX3Bvcy54O3ZfcG9zLnk9MS4wLWFfcG9zLnk7fSIpLCRlPXlyKCJ2YXJ5aW5nIGZsb2F0IHZfcGxhY2VkO3ZhcnlpbmcgZmxvYXQgdl9ub3RVc2VkO3ZvaWQgbWFpbigpIHtmbG9hdCBhbHBoYT0wLjU7Z2xfRnJhZ0NvbG9yPXZlYzQoMS4wLDAuMCwwLjAsMS4wKSphbHBoYTtpZiAodl9wbGFjZWQgPiAwLjUpIHtnbF9GcmFnQ29sb3I9dmVjNCgwLjAsMC4wLDEuMCwwLjUpKmFscGhhO31pZiAodl9ub3RVc2VkID4gMC41KSB7Z2xfRnJhZ0NvbG9yKj0uMTt9fSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWMyIGFfYW5jaG9yX3BvczthdHRyaWJ1dGUgdmVjMiBhX2V4dHJ1ZGU7YXR0cmlidXRlIHZlYzIgYV9wbGFjZWQ7YXR0cmlidXRlIHZlYzIgYV9zaGlmdDt1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfZXh0cnVkZV9zY2FsZTt1bmlmb3JtIGZsb2F0IHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTt2YXJ5aW5nIGZsb2F0IHZfcGxhY2VkO3ZhcnlpbmcgZmxvYXQgdl9ub3RVc2VkO3ZvaWQgbWFpbigpIHt2ZWM0IHByb2plY3RlZFBvaW50PXVfbWF0cml4KnZlYzQoYV9hbmNob3JfcG9zLDAsMSk7aGlnaHAgZmxvYXQgY2FtZXJhX3RvX2FuY2hvcl9kaXN0YW5jZT1wcm9qZWN0ZWRQb2ludC53O2hpZ2hwIGZsb2F0IGNvbGxpc2lvbl9wZXJzcGVjdGl2ZV9yYXRpbz1jbGFtcCgwLjUrMC41Kih1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2UvY2FtZXJhX3RvX2FuY2hvcl9kaXN0YW5jZSksMC4wLDQuMCk7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3BvcywwLjAsMS4wKTtnbF9Qb3NpdGlvbi54eSs9KGFfZXh0cnVkZSthX3NoaWZ0KSp1X2V4dHJ1ZGVfc2NhbGUqZ2xfUG9zaXRpb24udypjb2xsaXNpb25fcGVyc3BlY3RpdmVfcmF0aW87dl9wbGFjZWQ9YV9wbGFjZWQueDt2X25vdFVzZWQ9YV9wbGFjZWQueTt9IiksdHI9eXIoInZhcnlpbmcgZmxvYXQgdl9yYWRpdXM7dmFyeWluZyB2ZWMyIHZfZXh0cnVkZTt2YXJ5aW5nIGZsb2F0IHZfcGVyc3BlY3RpdmVfcmF0aW87dmFyeWluZyBmbG9hdCB2X2NvbGxpc2lvbjt2b2lkIG1haW4oKSB7ZmxvYXQgYWxwaGE9MC41Km1pbih2X3BlcnNwZWN0aXZlX3JhdGlvLDEuMCk7ZmxvYXQgc3Ryb2tlX3JhZGl1cz0wLjkqbWF4KHZfcGVyc3BlY3RpdmVfcmF0aW8sMS4wKTtmbG9hdCBkaXN0YW5jZV90b19jZW50ZXI9bGVuZ3RoKHZfZXh0cnVkZSk7ZmxvYXQgZGlzdGFuY2VfdG9fZWRnZT1hYnMoZGlzdGFuY2VfdG9fY2VudGVyLXZfcmFkaXVzKTtmbG9hdCBvcGFjaXR5X3Q9c21vb3Roc3RlcCgtc3Ryb2tlX3JhZGl1cywwLjAsLWRpc3RhbmNlX3RvX2VkZ2UpO3ZlYzQgY29sb3I9bWl4KHZlYzQoMC4wLDAuMCwxLjAsMC41KSx2ZWM0KDEuMCwwLjAsMC4wLDEuMCksdl9jb2xsaXNpb24pO2dsX0ZyYWdDb2xvcj1jb2xvciphbHBoYSpvcGFjaXR5X3Q7fSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSBmbG9hdCBhX3JhZGl1czthdHRyaWJ1dGUgdmVjMiBhX2ZsYWdzO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIG1hdDQgdV9pbnZfbWF0cml4O3VuaWZvcm0gdmVjMiB1X3ZpZXdwb3J0X3NpemU7dW5pZm9ybSBmbG9hdCB1X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2U7dmFyeWluZyBmbG9hdCB2X3JhZGl1czt2YXJ5aW5nIHZlYzIgdl9leHRydWRlO3ZhcnlpbmcgZmxvYXQgdl9wZXJzcGVjdGl2ZV9yYXRpbzt2YXJ5aW5nIGZsb2F0IHZfY29sbGlzaW9uO3ZlYzMgdG9UaWxlUG9zaXRpb24odmVjMiBzY3JlZW5Qb3MpIHt2ZWM0IHJheVN0YXJ0PXVfaW52X21hdHJpeCp2ZWM0KHNjcmVlblBvcywtMS4wLDEuMCk7dmVjNCByYXlFbmQgID11X2ludl9tYXRyaXgqdmVjNChzY3JlZW5Qb3MsIDEuMCwxLjApO3JheVN0YXJ0Lnh5ei89cmF5U3RhcnQudztyYXlFbmQueHl6ICAvPXJheUVuZC53O2hpZ2hwIGZsb2F0IHQ9KDAuMC1yYXlTdGFydC56KS8ocmF5RW5kLnotcmF5U3RhcnQueik7cmV0dXJuIG1peChyYXlTdGFydC54eXoscmF5RW5kLnh5eix0KTt9dm9pZCBtYWluKCkge3ZlYzIgcXVhZENlbnRlclBvcz1hX3BvcztmbG9hdCByYWRpdXM9YV9yYWRpdXM7ZmxvYXQgY29sbGlzaW9uPWFfZmxhZ3MueDtmbG9hdCB2ZXJ0ZXhJZHg9YV9mbGFncy55O3ZlYzIgcXVhZFZlcnRleE9mZnNldD12ZWMyKG1peCgtMS4wLDEuMCxmbG9hdCh2ZXJ0ZXhJZHggPj0yLjApKSxtaXgoLTEuMCwxLjAsZmxvYXQodmVydGV4SWR4ID49MS4wICYmIHZlcnRleElkeCA8PTIuMCkpKTt2ZWMyIHF1YWRWZXJ0ZXhFeHRlbnQ9cXVhZFZlcnRleE9mZnNldCpyYWRpdXM7dmVjMyB0aWxlUG9zPXRvVGlsZVBvc2l0aW9uKHF1YWRDZW50ZXJQb3MpO3ZlYzQgY2xpcFBvcz11X21hdHJpeCp2ZWM0KHRpbGVQb3MsMS4wKTtoaWdocCBmbG9hdCBjYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlPWNsaXBQb3MudztoaWdocCBmbG9hdCBjb2xsaXNpb25fcGVyc3BlY3RpdmVfcmF0aW89Y2xhbXAoMC41KzAuNSoodV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlL2NhbWVyYV90b19hbmNob3JfZGlzdGFuY2UpLDAuMCw0LjApO2Zsb2F0IHBhZGRpbmdfZmFjdG9yPTEuMjt2X3JhZGl1cz1yYWRpdXM7dl9leHRydWRlPXF1YWRWZXJ0ZXhFeHRlbnQqcGFkZGluZ19mYWN0b3I7dl9wZXJzcGVjdGl2ZV9yYXRpbz1jb2xsaXNpb25fcGVyc3BlY3RpdmVfcmF0aW87dl9jb2xsaXNpb249Y29sbGlzaW9uO2dsX1Bvc2l0aW9uPXZlYzQoY2xpcFBvcy54eXovY2xpcFBvcy53LDEuMCkrdmVjNChxdWFkVmVydGV4RXh0ZW50KnBhZGRpbmdfZmFjdG9yL3Vfdmlld3BvcnRfc2l6ZSoyLjAsMC4wLDAuMCk7fSIpLGVyPXlyKCJ1bmlmb3JtIGhpZ2hwIHZlYzQgdV9jb2xvcjt1bmlmb3JtIHNhbXBsZXIyRCB1X292ZXJsYXk7dmFyeWluZyB2ZWMyIHZfdXY7dm9pZCBtYWluKCkge3ZlYzQgb3ZlcmxheV9jb2xvcj10ZXh0dXJlMkQodV9vdmVybGF5LHZfdXYpO2dsX0ZyYWdDb2xvcj1taXgodV9jb2xvcixvdmVybGF5X2NvbG9yLG92ZXJsYXlfY29sb3IuYSk7fSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO3ZhcnlpbmcgdmVjMiB2X3V2O3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIGZsb2F0IHVfb3ZlcmxheV9zY2FsZTt2b2lkIG1haW4oKSB7dl91dj1hX3Bvcy84MTkyLjA7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3Bvcyp1X292ZXJsYXlfc2NhbGUsMCwxKTt9IikscnI9eXIoIiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuZ2xfRnJhZ0NvbG9yPWNvbG9yKm9wYWNpdHk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiYXR0cmlidXRlIHZlYzIgYV9wb3M7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5nbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7fSIpLG5yPXlyKCJ2YXJ5aW5nIHZlYzIgdl9wb3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5mbG9hdCBkaXN0PWxlbmd0aCh2X3Bvcy1nbF9GcmFnQ29vcmQueHkpO2Zsb2F0IGFscGhhPTEuMC1zbW9vdGhzdGVwKDAuMCwxLjAsZGlzdCk7Z2xfRnJhZ0NvbG9yPW91dGxpbmVfY29sb3IqKGFscGhhKm9wYWNpdHkpO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsImF0dHJpYnV0ZSB2ZWMyIGFfcG9zO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV93b3JsZDt2YXJ5aW5nIHZlYzIgdl9wb3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgb3V0bGluZV9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5nbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dl9wb3M9KGdsX1Bvc2l0aW9uLnh5L2dsX1Bvc2l0aW9uLncrMS4wKS8yLjAqdV93b3JsZDt9IiksaXI9eXIoInVuaWZvcm0gdmVjMiB1X3RleHNpemU7dW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt1bmlmb3JtIGZsb2F0IHVfZmFkZTt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjt2YXJ5aW5nIHZlYzIgdl9wb3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX3RvXG52ZWMyIHBhdHRlcm5fdGxfYT1wYXR0ZXJuX2Zyb20ueHk7dmVjMiBwYXR0ZXJuX2JyX2E9cGF0dGVybl9mcm9tLnp3O3ZlYzIgcGF0dGVybl90bF9iPXBhdHRlcm5fdG8ueHk7dmVjMiBwYXR0ZXJuX2JyX2I9cGF0dGVybl90by56dzt2ZWMyIGltYWdlY29vcmQ9bW9kKHZfcG9zX2EsMS4wKTt2ZWMyIHBvcz1taXgocGF0dGVybl90bF9hL3VfdGV4c2l6ZSxwYXR0ZXJuX2JyX2EvdV90ZXhzaXplLGltYWdlY29vcmQpO3ZlYzQgY29sb3IxPXRleHR1cmUyRCh1X2ltYWdlLHBvcyk7dmVjMiBpbWFnZWNvb3JkX2I9bW9kKHZfcG9zX2IsMS4wKTt2ZWMyIHBvczI9bWl4KHBhdHRlcm5fdGxfYi91X3RleHNpemUscGF0dGVybl9icl9iL3VfdGV4c2l6ZSxpbWFnZWNvb3JkX2IpO3ZlYzQgY29sb3IyPXRleHR1cmUyRCh1X2ltYWdlLHBvczIpO2Zsb2F0IGRpc3Q9bGVuZ3RoKHZfcG9zLWdsX0ZyYWdDb29yZC54eSk7ZmxvYXQgYWxwaGE9MS4wLXNtb290aHN0ZXAoMC4wLDEuMCxkaXN0KTtnbF9GcmFnQ29sb3I9bWl4KGNvbG9yMSxjb2xvcjIsdV9mYWRlKSphbHBoYSpvcGFjaXR5O1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV93b3JsZDt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF91cHBlcjt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF9sb3dlcjt1bmlmb3JtIHZlYzMgdV9zY2FsZTthdHRyaWJ1dGUgdmVjMiBhX3Bvczt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjt2YXJ5aW5nIHZlYzIgdl9wb3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX3RvXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O2Zsb2F0IHRpbGVSYXRpbz11X3NjYWxlLng7ZmxvYXQgZnJvbVNjYWxlPXVfc2NhbGUueTtmbG9hdCB0b1NjYWxlPXVfc2NhbGUuejtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dmVjMiBkaXNwbGF5X3NpemVfYT0ocGF0dGVybl9icl9hLXBhdHRlcm5fdGxfYSkvcGl4ZWxfcmF0aW9fZnJvbTt2ZWMyIGRpc3BsYXlfc2l6ZV9iPShwYXR0ZXJuX2JyX2ItcGF0dGVybl90bF9iKS9waXhlbF9yYXRpb190bzt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsZnJvbVNjYWxlKmRpc3BsYXlfc2l6ZV9hLHRpbGVSYXRpbyxhX3Bvcyk7dl9wb3NfYj1nZXRfcGF0dGVybl9wb3ModV9waXhlbF9jb29yZF91cHBlcix1X3BpeGVsX2Nvb3JkX2xvd2VyLHRvU2NhbGUqZGlzcGxheV9zaXplX2IsdGlsZVJhdGlvLGFfcG9zKTt2X3Bvcz0oZ2xfUG9zaXRpb24ueHkvZ2xfUG9zaXRpb24udysxLjApLzIuMCp1X3dvcmxkO30iKSxhcj15cigidW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIGZsb2F0IHVfZmFkZTt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl90b1xudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIHZlYzQgcGF0dGVybl90b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7dmVjMiBpbWFnZWNvb3JkPW1vZCh2X3Bvc19hLDEuMCk7dmVjMiBwb3M9bWl4KHBhdHRlcm5fdGxfYS91X3RleHNpemUscGF0dGVybl9icl9hL3VfdGV4c2l6ZSxpbWFnZWNvb3JkKTt2ZWM0IGNvbG9yMT10ZXh0dXJlMkQodV9pbWFnZSxwb3MpO3ZlYzIgaW1hZ2Vjb29yZF9iPW1vZCh2X3Bvc19iLDEuMCk7dmVjMiBwb3MyPW1peChwYXR0ZXJuX3RsX2IvdV90ZXhzaXplLHBhdHRlcm5fYnJfYi91X3RleHNpemUsaW1hZ2Vjb29yZF9iKTt2ZWM0IGNvbG9yMj10ZXh0dXJlMkQodV9pbWFnZSxwb3MyKTtnbF9GcmFnQ29sb3I9bWl4KGNvbG9yMSxjb2xvcjIsdV9mYWRlKSpvcGFjaXR5O1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF91cHBlcjt1bmlmb3JtIHZlYzIgdV9waXhlbF9jb29yZF9sb3dlcjt1bmlmb3JtIHZlYzMgdV9zY2FsZTthdHRyaWJ1dGUgdmVjMiBhX3Bvczt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb19mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7ZmxvYXQgdGlsZVpvb21SYXRpbz11X3NjYWxlLng7ZmxvYXQgZnJvbVNjYWxlPXVfc2NhbGUueTtmbG9hdCB0b1NjYWxlPXVfc2NhbGUuejt2ZWMyIGRpc3BsYXlfc2l6ZV9hPShwYXR0ZXJuX2JyX2EtcGF0dGVybl90bF9hKS9waXhlbF9yYXRpb19mcm9tO3ZlYzIgZGlzcGxheV9zaXplX2I9KHBhdHRlcm5fYnJfYi1wYXR0ZXJuX3RsX2IpL3BpeGVsX3JhdGlvX3RvO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsZnJvbVNjYWxlKmRpc3BsYXlfc2l6ZV9hLHRpbGVab29tUmF0aW8sYV9wb3MpO3ZfcG9zX2I9Z2V0X3BhdHRlcm5fcG9zKHVfcGl4ZWxfY29vcmRfdXBwZXIsdV9waXhlbF9jb29yZF9sb3dlcix0b1NjYWxlKmRpc3BsYXlfc2l6ZV9iLHRpbGVab29tUmF0aW8sYV9wb3MpO30iKSxvcj15cigidmFyeWluZyB2ZWM0IHZfY29sb3I7dm9pZCBtYWluKCkge2dsX0ZyYWdDb2xvcj12X2NvbG9yO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzMgdV9saWdodGNvbG9yO3VuaWZvcm0gbG93cCB2ZWMzIHVfbGlnaHRwb3M7dW5pZm9ybSBsb3dwIGZsb2F0IHVfbGlnaHRpbnRlbnNpdHk7dW5pZm9ybSBmbG9hdCB1X3ZlcnRpY2FsX2dyYWRpZW50O3VuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7YXR0cmlidXRlIHZlYzIgYV9wb3M7YXR0cmlidXRlIHZlYzQgYV9ub3JtYWxfZWQ7dmFyeWluZyB2ZWM0IHZfY29sb3I7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIGZsb2F0IGJhc2VcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgZmxvYXQgaGVpZ2h0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgY29sb3JcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIGZsb2F0IGJhc2VcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIGZsb2F0IGhlaWdodFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxudmVjMyBub3JtYWw9YV9ub3JtYWxfZWQueHl6O2Jhc2U9bWF4KDAuMCxiYXNlKTtoZWlnaHQ9bWF4KDAuMCxoZWlnaHQpO2Zsb2F0IHQ9bW9kKG5vcm1hbC54LDIuMCk7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3Bvcyx0ID4gMC4wID8gaGVpZ2h0IDogYmFzZSwxKTtmbG9hdCBjb2xvcnZhbHVlPWNvbG9yLnIqMC4yMTI2K2NvbG9yLmcqMC43MTUyK2NvbG9yLmIqMC4wNzIyO3ZfY29sb3I9dmVjNCgwLjAsMC4wLDAuMCwxLjApO3ZlYzQgYW1iaWVudGxpZ2h0PXZlYzQoMC4wMywwLjAzLDAuMDMsMS4wKTtjb2xvcis9YW1iaWVudGxpZ2h0O2Zsb2F0IGRpcmVjdGlvbmFsPWNsYW1wKGRvdChub3JtYWwvMTYzODQuMCx1X2xpZ2h0cG9zKSwwLjAsMS4wKTtkaXJlY3Rpb25hbD1taXgoKDEuMC11X2xpZ2h0aW50ZW5zaXR5KSxtYXgoKDEuMC1jb2xvcnZhbHVlK3VfbGlnaHRpbnRlbnNpdHkpLDEuMCksZGlyZWN0aW9uYWwpO2lmIChub3JtYWwueSAhPTAuMCkge2RpcmVjdGlvbmFsKj0oKDEuMC11X3ZlcnRpY2FsX2dyYWRpZW50KSsodV92ZXJ0aWNhbF9ncmFkaWVudCpjbGFtcCgodCtiYXNlKSpwb3coaGVpZ2h0LzE1MC4wLDAuNSksbWl4KDAuNywwLjk4LDEuMC11X2xpZ2h0aW50ZW5zaXR5KSwxLjApKSk7fXZfY29sb3Iucis9Y2xhbXAoY29sb3IucipkaXJlY3Rpb25hbCp1X2xpZ2h0Y29sb3IucixtaXgoMC4wLDAuMywxLjAtdV9saWdodGNvbG9yLnIpLDEuMCk7dl9jb2xvci5nKz1jbGFtcChjb2xvci5nKmRpcmVjdGlvbmFsKnVfbGlnaHRjb2xvci5nLG1peCgwLjAsMC4zLDEuMC11X2xpZ2h0Y29sb3IuZyksMS4wKTt2X2NvbG9yLmIrPWNsYW1wKGNvbG9yLmIqZGlyZWN0aW9uYWwqdV9saWdodGNvbG9yLmIsbWl4KDAuMCwwLjMsMS4wLXVfbGlnaHRjb2xvci5iKSwxLjApO3ZfY29sb3IqPXVfb3BhY2l0eTt9Iiksc3I9eXIoInVuaWZvcm0gdmVjMiB1X3RleHNpemU7dW5pZm9ybSBmbG9hdCB1X2ZhZGU7dW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt2YXJ5aW5nIHZlYzIgdl9wb3NfYTt2YXJ5aW5nIHZlYzIgdl9wb3NfYjt2YXJ5aW5nIHZlYzQgdl9saWdodGluZztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBiYXNlXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgaGVpZ2h0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb19mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmFzZVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoZWlnaHRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgdmVjNCBwYXR0ZXJuX3RvXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O3ZlYzIgaW1hZ2Vjb29yZD1tb2Qodl9wb3NfYSwxLjApO3ZlYzIgcG9zPW1peChwYXR0ZXJuX3RsX2EvdV90ZXhzaXplLHBhdHRlcm5fYnJfYS91X3RleHNpemUsaW1hZ2Vjb29yZCk7dmVjNCBjb2xvcjE9dGV4dHVyZTJEKHVfaW1hZ2UscG9zKTt2ZWMyIGltYWdlY29vcmRfYj1tb2Qodl9wb3NfYiwxLjApO3ZlYzIgcG9zMj1taXgocGF0dGVybl90bF9iL3VfdGV4c2l6ZSxwYXR0ZXJuX2JyX2IvdV90ZXhzaXplLGltYWdlY29vcmRfYik7dmVjNCBjb2xvcjI9dGV4dHVyZTJEKHVfaW1hZ2UscG9zMik7dmVjNCBtaXhlZENvbG9yPW1peChjb2xvcjEsY29sb3IyLHVfZmFkZSk7Z2xfRnJhZ0NvbG9yPW1peGVkQ29sb3Iqdl9saWdodGluZztcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfdXBwZXI7dW5pZm9ybSB2ZWMyIHVfcGl4ZWxfY29vcmRfbG93ZXI7dW5pZm9ybSBmbG9hdCB1X2hlaWdodF9mYWN0b3I7dW5pZm9ybSB2ZWMzIHVfc2NhbGU7dW5pZm9ybSBmbG9hdCB1X3ZlcnRpY2FsX2dyYWRpZW50O3VuaWZvcm0gbG93cCBmbG9hdCB1X29wYWNpdHk7dW5pZm9ybSB2ZWMzIHVfbGlnaHRjb2xvcjt1bmlmb3JtIGxvd3AgdmVjMyB1X2xpZ2h0cG9zO3VuaWZvcm0gbG93cCBmbG9hdCB1X2xpZ2h0aW50ZW5zaXR5O2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWM0IGFfbm9ybWFsX2VkO3ZhcnlpbmcgdmVjMiB2X3Bvc19hO3ZhcnlpbmcgdmVjMiB2X3Bvc19iO3ZhcnlpbmcgdmVjNCB2X2xpZ2h0aW5nO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJhc2VcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoZWlnaHRcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl90b1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBiYXNlXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGhlaWdodFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xudmVjMiBwYXR0ZXJuX3RsX2E9cGF0dGVybl9mcm9tLnh5O3ZlYzIgcGF0dGVybl9icl9hPXBhdHRlcm5fZnJvbS56dzt2ZWMyIHBhdHRlcm5fdGxfYj1wYXR0ZXJuX3RvLnh5O3ZlYzIgcGF0dGVybl9icl9iPXBhdHRlcm5fdG8uenc7ZmxvYXQgdGlsZVJhdGlvPXVfc2NhbGUueDtmbG9hdCBmcm9tU2NhbGU9dV9zY2FsZS55O2Zsb2F0IHRvU2NhbGU9dV9zY2FsZS56O3ZlYzMgbm9ybWFsPWFfbm9ybWFsX2VkLnh5ejtmbG9hdCBlZGdlZGlzdGFuY2U9YV9ub3JtYWxfZWQudzt2ZWMyIGRpc3BsYXlfc2l6ZV9hPShwYXR0ZXJuX2JyX2EtcGF0dGVybl90bF9hKS9waXhlbF9yYXRpb19mcm9tO3ZlYzIgZGlzcGxheV9zaXplX2I9KHBhdHRlcm5fYnJfYi1wYXR0ZXJuX3RsX2IpL3BpeGVsX3JhdGlvX3RvO2Jhc2U9bWF4KDAuMCxiYXNlKTtoZWlnaHQ9bWF4KDAuMCxoZWlnaHQpO2Zsb2F0IHQ9bW9kKG5vcm1hbC54LDIuMCk7ZmxvYXQgej10ID4gMC4wID8gaGVpZ2h0IDogYmFzZTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLHosMSk7dmVjMiBwb3M9bm9ybWFsLng9PTEuMCAmJiBub3JtYWwueT09MC4wICYmIG5vcm1hbC56PT0xNjM4NC4wXG4/IGFfcG9zXG46IHZlYzIoZWRnZWRpc3RhbmNlLHoqdV9oZWlnaHRfZmFjdG9yKTt2X3Bvc19hPWdldF9wYXR0ZXJuX3Bvcyh1X3BpeGVsX2Nvb3JkX3VwcGVyLHVfcGl4ZWxfY29vcmRfbG93ZXIsZnJvbVNjYWxlKmRpc3BsYXlfc2l6ZV9hLHRpbGVSYXRpbyxwb3MpO3ZfcG9zX2I9Z2V0X3BhdHRlcm5fcG9zKHVfcGl4ZWxfY29vcmRfdXBwZXIsdV9waXhlbF9jb29yZF9sb3dlcix0b1NjYWxlKmRpc3BsYXlfc2l6ZV9iLHRpbGVSYXRpbyxwb3MpO3ZfbGlnaHRpbmc9dmVjNCgwLjAsMC4wLDAuMCwxLjApO2Zsb2F0IGRpcmVjdGlvbmFsPWNsYW1wKGRvdChub3JtYWwvMTYzODMuMCx1X2xpZ2h0cG9zKSwwLjAsMS4wKTtkaXJlY3Rpb25hbD1taXgoKDEuMC11X2xpZ2h0aW50ZW5zaXR5KSxtYXgoKDAuNSt1X2xpZ2h0aW50ZW5zaXR5KSwxLjApLGRpcmVjdGlvbmFsKTtpZiAobm9ybWFsLnkgIT0wLjApIHtkaXJlY3Rpb25hbCo9KCgxLjAtdV92ZXJ0aWNhbF9ncmFkaWVudCkrKHVfdmVydGljYWxfZ3JhZGllbnQqY2xhbXAoKHQrYmFzZSkqcG93KGhlaWdodC8xNTAuMCwwLjUpLG1peCgwLjcsMC45OCwxLjAtdV9saWdodGludGVuc2l0eSksMS4wKSkpO312X2xpZ2h0aW5nLnJnYis9Y2xhbXAoZGlyZWN0aW9uYWwqdV9saWdodGNvbG9yLG1peCh2ZWMzKDAuMCksdmVjMygwLjMpLDEuMC11X2xpZ2h0Y29sb3IpLHZlYzMoMS4wKSk7dl9saWdodGluZyo9dV9vcGFjaXR5O30iKSxscj15cigiI2lmZGVmIEdMX0VTXG5wcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZW5kaWZcbnVuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfcG9zO3VuaWZvcm0gdmVjMiB1X2RpbWVuc2lvbjt1bmlmb3JtIGZsb2F0IHVfem9vbTt1bmlmb3JtIGZsb2F0IHVfbWF4em9vbTt1bmlmb3JtIHZlYzQgdV91bnBhY2s7ZmxvYXQgZ2V0RWxldmF0aW9uKHZlYzIgY29vcmQsZmxvYXQgYmlhcykge3ZlYzQgZGF0YT10ZXh0dXJlMkQodV9pbWFnZSxjb29yZCkqMjU1LjA7ZGF0YS5hPS0xLjA7cmV0dXJuIGRvdChkYXRhLHVfdW5wYWNrKS80LjA7fXZvaWQgbWFpbigpIHt2ZWMyIGVwc2lsb249MS4wL3VfZGltZW5zaW9uO2Zsb2F0IGE9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoLWVwc2lsb24ueCwtZXBzaWxvbi55KSwwLjApO2Zsb2F0IGI9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoMCwtZXBzaWxvbi55KSwwLjApO2Zsb2F0IGM9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoZXBzaWxvbi54LC1lcHNpbG9uLnkpLDAuMCk7ZmxvYXQgZD1nZXRFbGV2YXRpb24odl9wb3MrdmVjMigtZXBzaWxvbi54LDApLDAuMCk7ZmxvYXQgZT1nZXRFbGV2YXRpb24odl9wb3MsMC4wKTtmbG9hdCBmPWdldEVsZXZhdGlvbih2X3Bvcyt2ZWMyKGVwc2lsb24ueCwwKSwwLjApO2Zsb2F0IGc9Z2V0RWxldmF0aW9uKHZfcG9zK3ZlYzIoLWVwc2lsb24ueCxlcHNpbG9uLnkpLDAuMCk7ZmxvYXQgaD1nZXRFbGV2YXRpb24odl9wb3MrdmVjMigwLGVwc2lsb24ueSksMC4wKTtmbG9hdCBpPWdldEVsZXZhdGlvbih2X3Bvcyt2ZWMyKGVwc2lsb24ueCxlcHNpbG9uLnkpLDAuMCk7ZmxvYXQgZXhhZ2dlcmF0aW9uPXVfem9vbSA8IDIuMCA/IDAuNCA6IHVfem9vbSA8IDQuNSA/IDAuMzUgOiAwLjM7dmVjMiBkZXJpdj12ZWMyKChjK2YrZitpKS0oYStkK2QrZyksKGcraCtoK2kpLShhK2IrYitjKSkvIHBvdygyLjAsKHVfem9vbS11X21heHpvb20pKmV4YWdnZXJhdGlvbisxOS4yNTYyLXVfem9vbSk7Z2xfRnJhZ0NvbG9yPWNsYW1wKHZlYzQoZGVyaXYueC8yLjArMC41LGRlcml2LnkvMi4wKzAuNSwxLjAsMS4wKSwwLjAsMS4wKTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJ1bmlmb3JtIG1hdDQgdV9tYXRyaXg7dW5pZm9ybSB2ZWMyIHVfZGltZW5zaW9uO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWMyIGFfdGV4dHVyZV9wb3M7dmFyeWluZyB2ZWMyIHZfcG9zO3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7aGlnaHAgdmVjMiBlcHNpbG9uPTEuMC91X2RpbWVuc2lvbjtmbG9hdCBzY2FsZT0odV9kaW1lbnNpb24ueC0yLjApL3VfZGltZW5zaW9uLng7dl9wb3M9KGFfdGV4dHVyZV9wb3MvODE5Mi4wKSpzY2FsZStlcHNpbG9uO30iKSxjcj15cigidW5pZm9ybSBzYW1wbGVyMkQgdV9pbWFnZTt2YXJ5aW5nIHZlYzIgdl9wb3M7dW5pZm9ybSB2ZWMyIHVfbGF0cmFuZ2U7dW5pZm9ybSB2ZWMyIHVfbGlnaHQ7dW5pZm9ybSB2ZWM0IHVfc2hhZG93O3VuaWZvcm0gdmVjNCB1X2hpZ2hsaWdodDt1bmlmb3JtIHZlYzQgdV9hY2NlbnQ7XG4jZGVmaW5lIFBJIDMuMTQxNTkyNjUzNTg5NzkzXG52b2lkIG1haW4oKSB7dmVjNCBwaXhlbD10ZXh0dXJlMkQodV9pbWFnZSx2X3Bvcyk7dmVjMiBkZXJpdj0oKHBpeGVsLnJnKjIuMCktMS4wKTtmbG9hdCBzY2FsZUZhY3Rvcj1jb3MocmFkaWFucygodV9sYXRyYW5nZVswXS11X2xhdHJhbmdlWzFdKSooMS4wLXZfcG9zLnkpK3VfbGF0cmFuZ2VbMV0pKTtmbG9hdCBzbG9wZT1hdGFuKDEuMjUqbGVuZ3RoKGRlcml2KS9zY2FsZUZhY3Rvcik7ZmxvYXQgYXNwZWN0PWRlcml2LnggIT0wLjAgPyBhdGFuKGRlcml2LnksLWRlcml2LngpIDogUEkvMi4wKihkZXJpdi55ID4gMC4wID8gMS4wIDotMS4wKTtmbG9hdCBpbnRlbnNpdHk9dV9saWdodC54O2Zsb2F0IGF6aW11dGg9dV9saWdodC55K1BJO2Zsb2F0IGJhc2U9MS44NzUtaW50ZW5zaXR5KjEuNzU7ZmxvYXQgbWF4VmFsdWU9MC41KlBJO2Zsb2F0IHNjYWxlZFNsb3BlPWludGVuc2l0eSAhPTAuNSA/ICgocG93KGJhc2Usc2xvcGUpLTEuMCkvKHBvdyhiYXNlLG1heFZhbHVlKS0xLjApKSptYXhWYWx1ZSA6IHNsb3BlO2Zsb2F0IGFjY2VudD1jb3Moc2NhbGVkU2xvcGUpO3ZlYzQgYWNjZW50X2NvbG9yPSgxLjAtYWNjZW50KSp1X2FjY2VudCpjbGFtcChpbnRlbnNpdHkqMi4wLDAuMCwxLjApO2Zsb2F0IHNoYWRlPWFicyhtb2QoKGFzcGVjdCthemltdXRoKS9QSSswLjUsMi4wKS0xLjApO3ZlYzQgc2hhZGVfY29sb3I9bWl4KHVfc2hhZG93LHVfaGlnaGxpZ2h0LHNoYWRlKSpzaW4oc2NhbGVkU2xvcGUpKmNsYW1wKGludGVuc2l0eSoyLjAsMC4wLDEuMCk7Z2xfRnJhZ0NvbG9yPWFjY2VudF9jb2xvciooMS4wLXNoYWRlX2NvbG9yLmEpK3NoYWRlX2NvbG9yO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDthdHRyaWJ1dGUgdmVjMiBhX3BvczthdHRyaWJ1dGUgdmVjMiBhX3RleHR1cmVfcG9zO3ZhcnlpbmcgdmVjMiB2X3Bvczt2b2lkIG1haW4oKSB7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO3ZfcG9zPWFfdGV4dHVyZV9wb3MvODE5Mi4wO30iKSx1cj15cigidW5pZm9ybSBsb3dwIGZsb2F0IHVfZGV2aWNlX3BpeGVsX3JhdGlvO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIHZlYzIgdl9ub3JtYWw7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5mbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7Z2xfRnJhZ0NvbG9yPWNvbG9yKihhbHBoYSpvcGFjaXR5KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gdmVjMiB1X3VuaXRzX3RvX3BpeGVsczt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7dmFyeWluZyBoaWdocCBmbG9hdCB2X2xpbmVzb2ZhcjtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCB3aWR0aFxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBjb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG5mbG9hdCBBTlRJQUxJQVNJTkc9MS4wL3VfZGV2aWNlX3BpeGVsX3JhdGlvLzIuMDt2ZWMyIGFfZXh0cnVkZT1hX2RhdGEueHktMTI4LjA7ZmxvYXQgYV9kaXJlY3Rpb249bW9kKGFfZGF0YS56LDQuMCktMS4wO3ZfbGluZXNvZmFyPShmbG9vcihhX2RhdGEuei80LjApK2FfZGF0YS53KjY0LjApKjIuMDt2ZWMyIHBvcz1mbG9vcihhX3Bvc19ub3JtYWwqMC41KTttZWRpdW1wIHZlYzIgbm9ybWFsPWFfcG9zX25vcm1hbC0yLjAqcG9zO25vcm1hbC55PW5vcm1hbC55KjIuMC0xLjA7dl9ub3JtYWw9bm9ybWFsO2dhcHdpZHRoPWdhcHdpZHRoLzIuMDtmbG9hdCBoYWxmd2lkdGg9d2lkdGgvMi4wO29mZnNldD0tMS4wKm9mZnNldDtmbG9hdCBpbnNldD1nYXB3aWR0aCsoZ2Fwd2lkdGggPiAwLjAgPyBBTlRJQUxJQVNJTkcgOiAwLjApO2Zsb2F0IG91dHNldD1nYXB3aWR0aCtoYWxmd2lkdGgqKGdhcHdpZHRoID4gMC4wID8gMi4wIDogMS4wKSsoaGFsZndpZHRoPT0wLjAgPyAwLjAgOiBBTlRJQUxJQVNJTkcpO21lZGl1bXAgdmVjMiBkaXN0PW91dHNldCphX2V4dHJ1ZGUqc2NhbGU7bWVkaXVtcCBmbG9hdCB1PTAuNSphX2RpcmVjdGlvbjttZWRpdW1wIGZsb2F0IHQ9MS4wLWFicyh1KTttZWRpdW1wIHZlYzIgb2Zmc2V0Mj1vZmZzZXQqYV9leHRydWRlKnNjYWxlKm5vcm1hbC55Km1hdDIodCwtdSx1LHQpO3ZlYzQgcHJvamVjdGVkX2V4dHJ1ZGU9dV9tYXRyaXgqdmVjNChkaXN0L3VfcmF0aW8sMC4wLDAuMCk7Z2xfUG9zaXRpb249dV9tYXRyaXgqdmVjNChwb3Mrb2Zmc2V0Mi91X3JhdGlvLDAuMCwxLjApK3Byb2plY3RlZF9leHRydWRlO2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoX3dpdGhvdXRfcGVyc3BlY3RpdmU9bGVuZ3RoKGRpc3QpO2Zsb2F0IGV4dHJ1ZGVfbGVuZ3RoX3dpdGhfcGVyc3BlY3RpdmU9bGVuZ3RoKHByb2plY3RlZF9leHRydWRlLnh5L2dsX1Bvc2l0aW9uLncqdV91bml0c190b19waXhlbHMpO3ZfZ2FtbWFfc2NhbGU9ZXh0cnVkZV9sZW5ndGhfd2l0aG91dF9wZXJzcGVjdGl2ZS9leHRydWRlX2xlbmd0aF93aXRoX3BlcnNwZWN0aXZlO3Zfd2lkdGgyPXZlYzIob3V0c2V0LGluc2V0KTt9IiksZnI9eXIoInVuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIHZlYzIgdl9ub3JtYWw7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO3ZhcnlpbmcgaGlnaHAgZmxvYXQgdl9saW5lcHJvZ3Jlc3M7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG5mbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7dmVjNCBjb2xvcj10ZXh0dXJlMkQodV9pbWFnZSx2ZWMyKHZfbGluZXByb2dyZXNzLDAuNSkpO2dsX0ZyYWdDb2xvcj1jb2xvciooYWxwaGEqb3BhY2l0eSk7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiXG4jZGVmaW5lIE1BWF9MSU5FX0RJU1RBTkNFIDMyNzY3LjBcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHZlYzIgdV91bml0c190b19waXhlbHM7dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7dmFyeWluZyBoaWdocCBmbG9hdCB2X2xpbmVwcm9ncmVzcztcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IGdhcHdpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgd2lkdGhcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IGdhcHdpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9mZnNldFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCBmbG9hdCB3aWR0aFxuZmxvYXQgQU5USUFMSUFTSU5HPTEuMC91X2RldmljZV9waXhlbF9yYXRpby8yLjA7dmVjMiBhX2V4dHJ1ZGU9YV9kYXRhLnh5LTEyOC4wO2Zsb2F0IGFfZGlyZWN0aW9uPW1vZChhX2RhdGEueiw0LjApLTEuMDt2X2xpbmVwcm9ncmVzcz0oZmxvb3IoYV9kYXRhLnovNC4wKSthX2RhdGEudyo2NC4wKSoyLjAvTUFYX0xJTkVfRElTVEFOQ0U7dmVjMiBwb3M9Zmxvb3IoYV9wb3Nfbm9ybWFsKjAuNSk7bWVkaXVtcCB2ZWMyIG5vcm1hbD1hX3Bvc19ub3JtYWwtMi4wKnBvcztub3JtYWwueT1ub3JtYWwueSoyLjAtMS4wO3Zfbm9ybWFsPW5vcm1hbDtnYXB3aWR0aD1nYXB3aWR0aC8yLjA7ZmxvYXQgaGFsZndpZHRoPXdpZHRoLzIuMDtvZmZzZXQ9LTEuMCpvZmZzZXQ7ZmxvYXQgaW5zZXQ9Z2Fwd2lkdGgrKGdhcHdpZHRoID4gMC4wID8gQU5USUFMSUFTSU5HIDogMC4wKTtmbG9hdCBvdXRzZXQ9Z2Fwd2lkdGgraGFsZndpZHRoKihnYXB3aWR0aCA+IDAuMCA/IDIuMCA6IDEuMCkrKGhhbGZ3aWR0aD09MC4wID8gMC4wIDogQU5USUFMSUFTSU5HKTttZWRpdW1wIHZlYzIgZGlzdD1vdXRzZXQqYV9leHRydWRlKnNjYWxlO21lZGl1bXAgZmxvYXQgdT0wLjUqYV9kaXJlY3Rpb247bWVkaXVtcCBmbG9hdCB0PTEuMC1hYnModSk7bWVkaXVtcCB2ZWMyIG9mZnNldDI9b2Zmc2V0KmFfZXh0cnVkZSpzY2FsZSpub3JtYWwueSptYXQyKHQsLXUsdSx0KTt2ZWM0IHByb2plY3RlZF9leHRydWRlPXVfbWF0cml4KnZlYzQoZGlzdC91X3JhdGlvLDAuMCwwLjApO2dsX1Bvc2l0aW9uPXVfbWF0cml4KnZlYzQocG9zK29mZnNldDIvdV9yYXRpbywwLjAsMS4wKStwcm9qZWN0ZWRfZXh0cnVkZTtmbG9hdCBleHRydWRlX2xlbmd0aF93aXRob3V0X3BlcnNwZWN0aXZlPWxlbmd0aChkaXN0KTtmbG9hdCBleHRydWRlX2xlbmd0aF93aXRoX3BlcnNwZWN0aXZlPWxlbmd0aChwcm9qZWN0ZWRfZXh0cnVkZS54eS9nbF9Qb3NpdGlvbi53KnVfdW5pdHNfdG9fcGl4ZWxzKTt2X2dhbW1hX3NjYWxlPWV4dHJ1ZGVfbGVuZ3RoX3dpdGhvdXRfcGVyc3BlY3RpdmUvZXh0cnVkZV9sZW5ndGhfd2l0aF9wZXJzcGVjdGl2ZTt2X3dpZHRoMj12ZWMyKG91dHNldCxpbnNldCk7fSIpLGhyPXlyKCJ1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt1bmlmb3JtIGZsb2F0IHVfZmFkZTt1bmlmb3JtIG1lZGl1bXAgdmVjMyB1X3NjYWxlO3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2U7dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfbGluZXNvZmFyO3ZhcnlpbmcgZmxvYXQgdl9nYW1tYV9zY2FsZTt2YXJ5aW5nIGZsb2F0IHZfd2lkdGg7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX2Zyb21cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb19mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fdG9cbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZlYzIgcGF0dGVybl90bF9hPXBhdHRlcm5fZnJvbS54eTt2ZWMyIHBhdHRlcm5fYnJfYT1wYXR0ZXJuX2Zyb20uenc7dmVjMiBwYXR0ZXJuX3RsX2I9cGF0dGVybl90by54eTt2ZWMyIHBhdHRlcm5fYnJfYj1wYXR0ZXJuX3RvLnp3O2Zsb2F0IHRpbGVab29tUmF0aW89dV9zY2FsZS54O2Zsb2F0IGZyb21TY2FsZT11X3NjYWxlLnk7ZmxvYXQgdG9TY2FsZT11X3NjYWxlLno7dmVjMiBkaXNwbGF5X3NpemVfYT0ocGF0dGVybl9icl9hLXBhdHRlcm5fdGxfYSkvcGl4ZWxfcmF0aW9fZnJvbTt2ZWMyIGRpc3BsYXlfc2l6ZV9iPShwYXR0ZXJuX2JyX2ItcGF0dGVybl90bF9iKS9waXhlbF9yYXRpb190bzt2ZWMyIHBhdHRlcm5fc2l6ZV9hPXZlYzIoZGlzcGxheV9zaXplX2EueCpmcm9tU2NhbGUvdGlsZVpvb21SYXRpbyxkaXNwbGF5X3NpemVfYS55KTt2ZWMyIHBhdHRlcm5fc2l6ZV9iPXZlYzIoZGlzcGxheV9zaXplX2IueCp0b1NjYWxlL3RpbGVab29tUmF0aW8sZGlzcGxheV9zaXplX2IueSk7ZmxvYXQgYXNwZWN0X2E9ZGlzcGxheV9zaXplX2EueS92X3dpZHRoO2Zsb2F0IGFzcGVjdF9iPWRpc3BsYXlfc2l6ZV9iLnkvdl93aWR0aDtmbG9hdCBkaXN0PWxlbmd0aCh2X25vcm1hbCkqdl93aWR0aDIucztmbG9hdCBibHVyMj0oYmx1cisxLjAvdV9kZXZpY2VfcGl4ZWxfcmF0aW8pKnZfZ2FtbWFfc2NhbGU7ZmxvYXQgYWxwaGE9Y2xhbXAobWluKGRpc3QtKHZfd2lkdGgyLnQtYmx1cjIpLHZfd2lkdGgyLnMtZGlzdCkvYmx1cjIsMC4wLDEuMCk7ZmxvYXQgeF9hPW1vZCh2X2xpbmVzb2Zhci9wYXR0ZXJuX3NpemVfYS54KmFzcGVjdF9hLDEuMCk7ZmxvYXQgeF9iPW1vZCh2X2xpbmVzb2Zhci9wYXR0ZXJuX3NpemVfYi54KmFzcGVjdF9iLDEuMCk7ZmxvYXQgeT0wLjUqdl9ub3JtYWwueSswLjU7dmVjMiB0ZXhlbF9zaXplPTEuMC91X3RleHNpemU7dmVjMiBwb3NfYT1taXgocGF0dGVybl90bF9hKnRleGVsX3NpemUtdGV4ZWxfc2l6ZSxwYXR0ZXJuX2JyX2EqdGV4ZWxfc2l6ZSt0ZXhlbF9zaXplLHZlYzIoeF9hLHkpKTt2ZWMyIHBvc19iPW1peChwYXR0ZXJuX3RsX2IqdGV4ZWxfc2l6ZS10ZXhlbF9zaXplLHBhdHRlcm5fYnJfYip0ZXhlbF9zaXplK3RleGVsX3NpemUsdmVjMih4X2IseSkpO3ZlYzQgY29sb3I9bWl4KHRleHR1cmUyRCh1X2ltYWdlLHBvc19hKSx0ZXh0dXJlMkQodV9pbWFnZSxwb3NfYiksdV9mYWRlKTtnbF9GcmFnQ29sb3I9Y29sb3IqYWxwaGEqb3BhY2l0eTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbiNkZWZpbmUgTElORV9ESVNUQU5DRV9TQ0FMRSAyLjBcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gdmVjMiB1X3VuaXRzX3RvX3BpeGVsczt1bmlmb3JtIG1lZGl1bXAgZmxvYXQgdV9yYXRpbzt1bmlmb3JtIGxvd3AgZmxvYXQgdV9kZXZpY2VfcGl4ZWxfcmF0aW87dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIGZsb2F0IHZfbGluZXNvZmFyO3ZhcnlpbmcgZmxvYXQgdl9nYW1tYV9zY2FsZTt2YXJ5aW5nIGZsb2F0IHZfd2lkdGg7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCBnYXB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgZmxvb3J3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIHZlYzQgcGF0dGVybl9mcm9tXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgdmVjNCBwYXR0ZXJuX3RvXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IHBpeGVsX3JhdGlvX3RvXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgZ2Fwd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgZmxvb3J3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCB2ZWM0IHBhdHRlcm5fdG9cbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgcGl4ZWxfcmF0aW9fZnJvbVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBwaXhlbF9yYXRpb190b1xuZmxvYXQgQU5USUFMSUFTSU5HPTEuMC91X2RldmljZV9waXhlbF9yYXRpby8yLjA7dmVjMiBhX2V4dHJ1ZGU9YV9kYXRhLnh5LTEyOC4wO2Zsb2F0IGFfZGlyZWN0aW9uPW1vZChhX2RhdGEueiw0LjApLTEuMDtmbG9hdCBhX2xpbmVzb2Zhcj0oZmxvb3IoYV9kYXRhLnovNC4wKSthX2RhdGEudyo2NC4wKSpMSU5FX0RJU1RBTkNFX1NDQUxFO3ZlYzIgcG9zPWZsb29yKGFfcG9zX25vcm1hbCowLjUpO21lZGl1bXAgdmVjMiBub3JtYWw9YV9wb3Nfbm9ybWFsLTIuMCpwb3M7bm9ybWFsLnk9bm9ybWFsLnkqMi4wLTEuMDt2X25vcm1hbD1ub3JtYWw7Z2Fwd2lkdGg9Z2Fwd2lkdGgvMi4wO2Zsb2F0IGhhbGZ3aWR0aD13aWR0aC8yLjA7b2Zmc2V0PS0xLjAqb2Zmc2V0O2Zsb2F0IGluc2V0PWdhcHdpZHRoKyhnYXB3aWR0aCA+IDAuMCA/IEFOVElBTElBU0lORyA6IDAuMCk7ZmxvYXQgb3V0c2V0PWdhcHdpZHRoK2hhbGZ3aWR0aCooZ2Fwd2lkdGggPiAwLjAgPyAyLjAgOiAxLjApKyhoYWxmd2lkdGg9PTAuMCA/IDAuMCA6IEFOVElBTElBU0lORyk7bWVkaXVtcCB2ZWMyIGRpc3Q9b3V0c2V0KmFfZXh0cnVkZSpzY2FsZTttZWRpdW1wIGZsb2F0IHU9MC41KmFfZGlyZWN0aW9uO21lZGl1bXAgZmxvYXQgdD0xLjAtYWJzKHUpO21lZGl1bXAgdmVjMiBvZmZzZXQyPW9mZnNldCphX2V4dHJ1ZGUqc2NhbGUqbm9ybWFsLnkqbWF0Mih0LC11LHUsdCk7dmVjNCBwcm9qZWN0ZWRfZXh0cnVkZT11X21hdHJpeCp2ZWM0KGRpc3QvdV9yYXRpbywwLjAsMC4wKTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KHBvcytvZmZzZXQyL3VfcmF0aW8sMC4wLDEuMCkrcHJvamVjdGVkX2V4dHJ1ZGU7ZmxvYXQgZXh0cnVkZV9sZW5ndGhfd2l0aG91dF9wZXJzcGVjdGl2ZT1sZW5ndGgoZGlzdCk7ZmxvYXQgZXh0cnVkZV9sZW5ndGhfd2l0aF9wZXJzcGVjdGl2ZT1sZW5ndGgocHJvamVjdGVkX2V4dHJ1ZGUueHkvZ2xfUG9zaXRpb24udyp1X3VuaXRzX3RvX3BpeGVscyk7dl9nYW1tYV9zY2FsZT1leHRydWRlX2xlbmd0aF93aXRob3V0X3BlcnNwZWN0aXZlL2V4dHJ1ZGVfbGVuZ3RoX3dpdGhfcGVyc3BlY3RpdmU7dl9saW5lc29mYXI9YV9saW5lc29mYXI7dl93aWR0aDI9dmVjMihvdXRzZXQsaW5zZXQpO3Zfd2lkdGg9Zmxvb3J3aWR0aDt9IikscHI9eXIoInVuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHNhbXBsZXIyRCB1X2ltYWdlO3VuaWZvcm0gZmxvYXQgdV9zZGZnYW1tYTt1bmlmb3JtIGZsb2F0IHVfbWl4O3ZhcnlpbmcgdmVjMiB2X25vcm1hbDt2YXJ5aW5nIHZlYzIgdl93aWR0aDI7dmFyeWluZyB2ZWMyIHZfdGV4X2E7dmFyeWluZyB2ZWMyIHZfdGV4X2I7dmFyeWluZyBmbG9hdCB2X2dhbW1hX3NjYWxlO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbWVkaXVtcCBmbG9hdCB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGZsb29yd2lkdGhcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgYmx1clxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBtZWRpdW1wIGZsb2F0IHdpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGZsb29yd2lkdGhcbmZsb2F0IGRpc3Q9bGVuZ3RoKHZfbm9ybWFsKSp2X3dpZHRoMi5zO2Zsb2F0IGJsdXIyPShibHVyKzEuMC91X2RldmljZV9waXhlbF9yYXRpbykqdl9nYW1tYV9zY2FsZTtmbG9hdCBhbHBoYT1jbGFtcChtaW4oZGlzdC0odl93aWR0aDIudC1ibHVyMiksdl93aWR0aDIucy1kaXN0KS9ibHVyMiwwLjAsMS4wKTtmbG9hdCBzZGZkaXN0X2E9dGV4dHVyZTJEKHVfaW1hZ2Usdl90ZXhfYSkuYTtmbG9hdCBzZGZkaXN0X2I9dGV4dHVyZTJEKHVfaW1hZ2Usdl90ZXhfYikuYTtmbG9hdCBzZGZkaXN0PW1peChzZGZkaXN0X2Esc2RmZGlzdF9iLHVfbWl4KTthbHBoYSo9c21vb3Roc3RlcCgwLjUtdV9zZGZnYW1tYS9mbG9vcndpZHRoLDAuNSt1X3NkZmdhbW1hL2Zsb29yd2lkdGgsc2RmZGlzdCk7Z2xfRnJhZ0NvbG9yPWNvbG9yKihhbHBoYSpvcGFjaXR5KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJcbiNkZWZpbmUgc2NhbGUgMC4wMTU4NzMwMTZcbiNkZWZpbmUgTElORV9ESVNUQU5DRV9TQ0FMRSAyLjBcbmF0dHJpYnV0ZSB2ZWMyIGFfcG9zX25vcm1hbDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWVkaXVtcCBmbG9hdCB1X3JhdGlvO3VuaWZvcm0gbG93cCBmbG9hdCB1X2RldmljZV9waXhlbF9yYXRpbzt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuc2NhbGVfYTt1bmlmb3JtIGZsb2F0IHVfdGV4X3lfYTt1bmlmb3JtIHZlYzIgdV9wYXR0ZXJuc2NhbGVfYjt1bmlmb3JtIGZsb2F0IHVfdGV4X3lfYjt1bmlmb3JtIHZlYzIgdV91bml0c190b19waXhlbHM7dmFyeWluZyB2ZWMyIHZfbm9ybWFsO3ZhcnlpbmcgdmVjMiB2X3dpZHRoMjt2YXJ5aW5nIHZlYzIgdl90ZXhfYTt2YXJ5aW5nIHZlYzIgdl90ZXhfYjt2YXJ5aW5nIGZsb2F0IHZfZ2FtbWFfc2NhbGU7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBibHVyXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBtZWRpdW1wIGZsb2F0IGdhcHdpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb2Zmc2V0XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIG1lZGl1bXAgZmxvYXQgd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBmbG9vcndpZHRoXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGNvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGJsdXJcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbWVkaXVtcCBmbG9hdCBnYXB3aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvZmZzZXRcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIG1lZGl1bXAgZmxvYXQgd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgZmxvb3J3aWR0aFxuZmxvYXQgQU5USUFMSUFTSU5HPTEuMC91X2RldmljZV9waXhlbF9yYXRpby8yLjA7dmVjMiBhX2V4dHJ1ZGU9YV9kYXRhLnh5LTEyOC4wO2Zsb2F0IGFfZGlyZWN0aW9uPW1vZChhX2RhdGEueiw0LjApLTEuMDtmbG9hdCBhX2xpbmVzb2Zhcj0oZmxvb3IoYV9kYXRhLnovNC4wKSthX2RhdGEudyo2NC4wKSpMSU5FX0RJU1RBTkNFX1NDQUxFO3ZlYzIgcG9zPWZsb29yKGFfcG9zX25vcm1hbCowLjUpO21lZGl1bXAgdmVjMiBub3JtYWw9YV9wb3Nfbm9ybWFsLTIuMCpwb3M7bm9ybWFsLnk9bm9ybWFsLnkqMi4wLTEuMDt2X25vcm1hbD1ub3JtYWw7Z2Fwd2lkdGg9Z2Fwd2lkdGgvMi4wO2Zsb2F0IGhhbGZ3aWR0aD13aWR0aC8yLjA7b2Zmc2V0PS0xLjAqb2Zmc2V0O2Zsb2F0IGluc2V0PWdhcHdpZHRoKyhnYXB3aWR0aCA+IDAuMCA/IEFOVElBTElBU0lORyA6IDAuMCk7ZmxvYXQgb3V0c2V0PWdhcHdpZHRoK2hhbGZ3aWR0aCooZ2Fwd2lkdGggPiAwLjAgPyAyLjAgOiAxLjApKyhoYWxmd2lkdGg9PTAuMCA/IDAuMCA6IEFOVElBTElBU0lORyk7bWVkaXVtcCB2ZWMyIGRpc3Q9b3V0c2V0KmFfZXh0cnVkZSpzY2FsZTttZWRpdW1wIGZsb2F0IHU9MC41KmFfZGlyZWN0aW9uO21lZGl1bXAgZmxvYXQgdD0xLjAtYWJzKHUpO21lZGl1bXAgdmVjMiBvZmZzZXQyPW9mZnNldCphX2V4dHJ1ZGUqc2NhbGUqbm9ybWFsLnkqbWF0Mih0LC11LHUsdCk7dmVjNCBwcm9qZWN0ZWRfZXh0cnVkZT11X21hdHJpeCp2ZWM0KGRpc3QvdV9yYXRpbywwLjAsMC4wKTtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KHBvcytvZmZzZXQyL3VfcmF0aW8sMC4wLDEuMCkrcHJvamVjdGVkX2V4dHJ1ZGU7ZmxvYXQgZXh0cnVkZV9sZW5ndGhfd2l0aG91dF9wZXJzcGVjdGl2ZT1sZW5ndGgoZGlzdCk7ZmxvYXQgZXh0cnVkZV9sZW5ndGhfd2l0aF9wZXJzcGVjdGl2ZT1sZW5ndGgocHJvamVjdGVkX2V4dHJ1ZGUueHkvZ2xfUG9zaXRpb24udyp1X3VuaXRzX3RvX3BpeGVscyk7dl9nYW1tYV9zY2FsZT1leHRydWRlX2xlbmd0aF93aXRob3V0X3BlcnNwZWN0aXZlL2V4dHJ1ZGVfbGVuZ3RoX3dpdGhfcGVyc3BlY3RpdmU7dl90ZXhfYT12ZWMyKGFfbGluZXNvZmFyKnVfcGF0dGVybnNjYWxlX2EueC9mbG9vcndpZHRoLG5vcm1hbC55KnVfcGF0dGVybnNjYWxlX2EueSt1X3RleF95X2EpO3ZfdGV4X2I9dmVjMihhX2xpbmVzb2Zhcip1X3BhdHRlcm5zY2FsZV9iLngvZmxvb3J3aWR0aCxub3JtYWwueSp1X3BhdHRlcm5zY2FsZV9iLnkrdV90ZXhfeV9iKTt2X3dpZHRoMj12ZWMyKG91dHNldCxpbnNldCk7fSIpLGRyPXlyKCJ1bmlmb3JtIGZsb2F0IHVfZmFkZV90O3VuaWZvcm0gZmxvYXQgdV9vcGFjaXR5O3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2UwO3VuaWZvcm0gc2FtcGxlcjJEIHVfaW1hZ2UxO3ZhcnlpbmcgdmVjMiB2X3BvczA7dmFyeWluZyB2ZWMyIHZfcG9zMTt1bmlmb3JtIGZsb2F0IHVfYnJpZ2h0bmVzc19sb3c7dW5pZm9ybSBmbG9hdCB1X2JyaWdodG5lc3NfaGlnaDt1bmlmb3JtIGZsb2F0IHVfc2F0dXJhdGlvbl9mYWN0b3I7dW5pZm9ybSBmbG9hdCB1X2NvbnRyYXN0X2ZhY3Rvcjt1bmlmb3JtIHZlYzMgdV9zcGluX3dlaWdodHM7dm9pZCBtYWluKCkge3ZlYzQgY29sb3IwPXRleHR1cmUyRCh1X2ltYWdlMCx2X3BvczApO3ZlYzQgY29sb3IxPXRleHR1cmUyRCh1X2ltYWdlMSx2X3BvczEpO2lmIChjb2xvcjAuYSA+IDAuMCkge2NvbG9yMC5yZ2I9Y29sb3IwLnJnYi9jb2xvcjAuYTt9aWYgKGNvbG9yMS5hID4gMC4wKSB7Y29sb3IxLnJnYj1jb2xvcjEucmdiL2NvbG9yMS5hO312ZWM0IGNvbG9yPW1peChjb2xvcjAsY29sb3IxLHVfZmFkZV90KTtjb2xvci5hKj11X29wYWNpdHk7dmVjMyByZ2I9Y29sb3IucmdiO3JnYj12ZWMzKGRvdChyZ2IsdV9zcGluX3dlaWdodHMueHl6KSxkb3QocmdiLHVfc3Bpbl93ZWlnaHRzLnp4eSksZG90KHJnYix1X3NwaW5fd2VpZ2h0cy55engpKTtmbG9hdCBhdmVyYWdlPShjb2xvci5yK2NvbG9yLmcrY29sb3IuYikvMy4wO3JnYis9KGF2ZXJhZ2UtcmdiKSp1X3NhdHVyYXRpb25fZmFjdG9yO3JnYj0ocmdiLTAuNSkqdV9jb250cmFzdF9mYWN0b3IrMC41O3ZlYzMgdV9oaWdoX3ZlYz12ZWMzKHVfYnJpZ2h0bmVzc19sb3csdV9icmlnaHRuZXNzX2xvdyx1X2JyaWdodG5lc3NfbG93KTt2ZWMzIHVfbG93X3ZlYz12ZWMzKHVfYnJpZ2h0bmVzc19oaWdoLHVfYnJpZ2h0bmVzc19oaWdoLHVfYnJpZ2h0bmVzc19oaWdoKTtnbF9GcmFnQ29sb3I9dmVjNChtaXgodV9oaWdoX3ZlYyx1X2xvd192ZWMscmdiKSpjb2xvci5hLGNvbG9yLmEpO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsInVuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIHZlYzIgdV90bF9wYXJlbnQ7dW5pZm9ybSBmbG9hdCB1X3NjYWxlX3BhcmVudDt1bmlmb3JtIGZsb2F0IHVfYnVmZmVyX3NjYWxlO2F0dHJpYnV0ZSB2ZWMyIGFfcG9zO2F0dHJpYnV0ZSB2ZWMyIGFfdGV4dHVyZV9wb3M7dmFyeWluZyB2ZWMyIHZfcG9zMDt2YXJ5aW5nIHZlYzIgdl9wb3MxO3ZvaWQgbWFpbigpIHtnbF9Qb3NpdGlvbj11X21hdHJpeCp2ZWM0KGFfcG9zLDAsMSk7dl9wb3MwPSgoKGFfdGV4dHVyZV9wb3MvODE5Mi4wKS0wLjUpL3VfYnVmZmVyX3NjYWxlICkrMC41O3ZfcG9zMT0odl9wb3MwKnVfc2NhbGVfcGFyZW50KSt1X3RsX3BhcmVudDt9IiksbXI9eXIoInVuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTt2YXJ5aW5nIHZlYzIgdl90ZXg7dmFyeWluZyBmbG9hdCB2X2ZhZGVfb3BhY2l0eTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbmxvd3AgZmxvYXQgYWxwaGE9b3BhY2l0eSp2X2ZhZGVfb3BhY2l0eTtnbF9GcmFnQ29sb3I9dGV4dHVyZTJEKHVfdGV4dHVyZSx2X3RleCkqYWxwaGE7XG4jaWZkZWYgT1ZFUkRSQVdfSU5TUEVDVE9SXG5nbF9GcmFnQ29sb3I9dmVjNCgxLjApO1xuI2VuZGlmXG59IiwiY29uc3QgZmxvYXQgUEk9My4xNDE1OTI2NTM1ODk3OTM7YXR0cmlidXRlIHZlYzQgYV9wb3Nfb2Zmc2V0O2F0dHJpYnV0ZSB2ZWM0IGFfZGF0YTthdHRyaWJ1dGUgdmVjNCBhX3BpeGVsb2Zmc2V0O2F0dHJpYnV0ZSB2ZWMzIGFfcHJvamVjdGVkX3BvczthdHRyaWJ1dGUgZmxvYXQgYV9mYWRlX29wYWNpdHk7dW5pZm9ybSBib29sIHVfaXNfc2l6ZV96b29tX2NvbnN0YW50O3VuaWZvcm0gYm9vbCB1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfc2l6ZV90O3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9zaXplO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9waXRjaDt1bmlmb3JtIGJvb2wgdV9yb3RhdGVfc3ltYm9sO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9hc3BlY3RfcmF0aW87dW5pZm9ybSBmbG9hdCB1X2ZhZGVfY2hhbmdlO3VuaWZvcm0gbWF0NCB1X21hdHJpeDt1bmlmb3JtIG1hdDQgdV9sYWJlbF9wbGFuZV9tYXRyaXg7dW5pZm9ybSBtYXQ0IHVfY29vcmRfbWF0cml4O3VuaWZvcm0gYm9vbCB1X2lzX3RleHQ7dW5pZm9ybSBib29sIHVfcGl0Y2hfd2l0aF9tYXA7dW5pZm9ybSB2ZWMyIHVfdGV4c2l6ZTt2YXJ5aW5nIHZlYzIgdl90ZXg7dmFyeWluZyBmbG9hdCB2X2ZhZGVfb3BhY2l0eTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbnZlYzIgYV9wb3M9YV9wb3Nfb2Zmc2V0Lnh5O3ZlYzIgYV9vZmZzZXQ9YV9wb3Nfb2Zmc2V0Lnp3O3ZlYzIgYV90ZXg9YV9kYXRhLnh5O3ZlYzIgYV9zaXplPWFfZGF0YS56dztmbG9hdCBhX3NpemVfbWluPWZsb29yKGFfc2l6ZVswXSowLjUpO3ZlYzIgYV9weG9mZnNldD1hX3BpeGVsb2Zmc2V0Lnh5O3ZlYzIgYV9taW5Gb250U2NhbGU9YV9waXhlbG9mZnNldC56dy8yNTYuMDtoaWdocCBmbG9hdCBzZWdtZW50X2FuZ2xlPS1hX3Byb2plY3RlZF9wb3NbMl07ZmxvYXQgc2l6ZTtpZiAoIXVfaXNfc2l6ZV96b29tX2NvbnN0YW50ICYmICF1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudCkge3NpemU9bWl4KGFfc2l6ZV9taW4sYV9zaXplWzFdLHVfc2l6ZV90KS8xMjguMDt9IGVsc2UgaWYgKHVfaXNfc2l6ZV96b29tX2NvbnN0YW50ICYmICF1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudCkge3NpemU9YV9zaXplX21pbi8xMjguMDt9IGVsc2Uge3NpemU9dV9zaXplO312ZWM0IHByb2plY3RlZFBvaW50PXVfbWF0cml4KnZlYzQoYV9wb3MsMCwxKTtoaWdocCBmbG9hdCBjYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlPXByb2plY3RlZFBvaW50Lnc7aGlnaHAgZmxvYXQgZGlzdGFuY2VfcmF0aW89dV9waXRjaF93aXRoX21hcCA/XG5jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlL3VfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSA6XG51X2NhbWVyYV90b19jZW50ZXJfZGlzdGFuY2UvY2FtZXJhX3RvX2FuY2hvcl9kaXN0YW5jZTtoaWdocCBmbG9hdCBwZXJzcGVjdGl2ZV9yYXRpbz1jbGFtcCgwLjUrMC41KmRpc3RhbmNlX3JhdGlvLDAuMCw0LjApO3NpemUqPXBlcnNwZWN0aXZlX3JhdGlvO2Zsb2F0IGZvbnRTY2FsZT11X2lzX3RleHQgPyBzaXplLzI0LjAgOiBzaXplO2hpZ2hwIGZsb2F0IHN5bWJvbF9yb3RhdGlvbj0wLjA7aWYgKHVfcm90YXRlX3N5bWJvbCkge3ZlYzQgb2Zmc2V0UHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX3Bvcyt2ZWMyKDEsMCksMCwxKTt2ZWMyIGE9cHJvamVjdGVkUG9pbnQueHkvcHJvamVjdGVkUG9pbnQudzt2ZWMyIGI9b2Zmc2V0UHJvamVjdGVkUG9pbnQueHkvb2Zmc2V0UHJvamVjdGVkUG9pbnQudztzeW1ib2xfcm90YXRpb249YXRhbigoYi55LWEueSkvdV9hc3BlY3RfcmF0aW8sYi54LWEueCk7fWhpZ2hwIGZsb2F0IGFuZ2xlX3Npbj1zaW4oc2VnbWVudF9hbmdsZStzeW1ib2xfcm90YXRpb24pO2hpZ2hwIGZsb2F0IGFuZ2xlX2Nvcz1jb3Moc2VnbWVudF9hbmdsZStzeW1ib2xfcm90YXRpb24pO21hdDIgcm90YXRpb25fbWF0cml4PW1hdDIoYW5nbGVfY29zLC0xLjAqYW5nbGVfc2luLGFuZ2xlX3NpbixhbmdsZV9jb3MpO3ZlYzQgcHJvamVjdGVkX3Bvcz11X2xhYmVsX3BsYW5lX21hdHJpeCp2ZWM0KGFfcHJvamVjdGVkX3Bvcy54eSwwLjAsMS4wKTtnbF9Qb3NpdGlvbj11X2Nvb3JkX21hdHJpeCp2ZWM0KHByb2plY3RlZF9wb3MueHkvcHJvamVjdGVkX3Bvcy53K3JvdGF0aW9uX21hdHJpeCooYV9vZmZzZXQvMzIuMCptYXgoYV9taW5Gb250U2NhbGUsZm9udFNjYWxlKSthX3B4b2Zmc2V0LzE2LjApLDAuMCwxLjApO3ZfdGV4PWFfdGV4L3VfdGV4c2l6ZTt2ZWMyIGZhZGVfb3BhY2l0eT11bnBhY2tfb3BhY2l0eShhX2ZhZGVfb3BhY2l0eSk7ZmxvYXQgZmFkZV9jaGFuZ2U9ZmFkZV9vcGFjaXR5WzFdID4gMC41ID8gdV9mYWRlX2NoYW5nZSA6LXVfZmFkZV9jaGFuZ2U7dl9mYWRlX29wYWNpdHk9bWF4KDAuMCxtaW4oMS4wLGZhZGVfb3BhY2l0eVswXStmYWRlX2NoYW5nZSkpO30iKSxncj15cigiI2RlZmluZSBTREZfUFggOC4wXG51bmlmb3JtIGJvb2wgdV9pc19oYWxvO3VuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfZ2FtbWFfc2NhbGU7dW5pZm9ybSBsb3dwIGZsb2F0IHVfZGV2aWNlX3BpeGVsX3JhdGlvO3VuaWZvcm0gYm9vbCB1X2lzX3RleHQ7dmFyeWluZyB2ZWMyIHZfZGF0YTA7dmFyeWluZyB2ZWMzIHZfZGF0YTE7XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgZmlsbF9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGhhbG9fY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgaGFsb193aWR0aFxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhhbG9fYmx1clxudm9pZCBtYWluKCkge1xuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBmaWxsX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGhhbG9fY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoYWxvX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGhhbG9fYmx1clxuZmxvYXQgRURHRV9HQU1NQT0wLjEwNS91X2RldmljZV9waXhlbF9yYXRpbzt2ZWMyIHRleD12X2RhdGEwLnh5O2Zsb2F0IGdhbW1hX3NjYWxlPXZfZGF0YTEueDtmbG9hdCBzaXplPXZfZGF0YTEueTtmbG9hdCBmYWRlX29wYWNpdHk9dl9kYXRhMVsyXTtmbG9hdCBmb250U2NhbGU9dV9pc190ZXh0ID8gc2l6ZS8yNC4wIDogc2l6ZTtsb3dwIHZlYzQgY29sb3I9ZmlsbF9jb2xvcjtoaWdocCBmbG9hdCBnYW1tYT1FREdFX0dBTU1BLyhmb250U2NhbGUqdV9nYW1tYV9zY2FsZSk7bG93cCBmbG9hdCBidWZmPSgyNTYuMC02NC4wKS8yNTYuMDtpZiAodV9pc19oYWxvKSB7Y29sb3I9aGFsb19jb2xvcjtnYW1tYT0oaGFsb19ibHVyKjEuMTkvU0RGX1BYK0VER0VfR0FNTUEpLyhmb250U2NhbGUqdV9nYW1tYV9zY2FsZSk7YnVmZj0oNi4wLWhhbG9fd2lkdGgvZm9udFNjYWxlKS9TREZfUFg7fWxvd3AgZmxvYXQgZGlzdD10ZXh0dXJlMkQodV90ZXh0dXJlLHRleCkuYTtoaWdocCBmbG9hdCBnYW1tYV9zY2FsZWQ9Z2FtbWEqZ2FtbWFfc2NhbGU7aGlnaHAgZmxvYXQgYWxwaGE9c21vb3Roc3RlcChidWZmLWdhbW1hX3NjYWxlZCxidWZmK2dhbW1hX3NjYWxlZCxkaXN0KTtnbF9GcmFnQ29sb3I9Y29sb3IqKGFscGhhKm9wYWNpdHkqZmFkZV9vcGFjaXR5KTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbn0iLCJjb25zdCBmbG9hdCBQST0zLjE0MTU5MjY1MzU4OTc5MzthdHRyaWJ1dGUgdmVjNCBhX3Bvc19vZmZzZXQ7YXR0cmlidXRlIHZlYzQgYV9kYXRhO2F0dHJpYnV0ZSB2ZWM0IGFfcGl4ZWxvZmZzZXQ7YXR0cmlidXRlIHZlYzMgYV9wcm9qZWN0ZWRfcG9zO2F0dHJpYnV0ZSBmbG9hdCBhX2ZhZGVfb3BhY2l0eTt1bmlmb3JtIGJvb2wgdV9pc19zaXplX3pvb21fY29uc3RhbnQ7dW5pZm9ybSBib29sIHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50O3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9zaXplX3Q7dW5pZm9ybSBoaWdocCBmbG9hdCB1X3NpemU7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWF0NCB1X2xhYmVsX3BsYW5lX21hdHJpeDt1bmlmb3JtIG1hdDQgdV9jb29yZF9tYXRyaXg7dW5pZm9ybSBib29sIHVfaXNfdGV4dDt1bmlmb3JtIGJvb2wgdV9waXRjaF93aXRoX21hcDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfcGl0Y2g7dW5pZm9ybSBib29sIHVfcm90YXRlX3N5bWJvbDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfYXNwZWN0X3JhdGlvO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3VuaWZvcm0gZmxvYXQgdV9mYWRlX2NoYW5nZTt1bmlmb3JtIHZlYzIgdV90ZXhzaXplO3ZhcnlpbmcgdmVjMiB2X2RhdGEwO3ZhcnlpbmcgdmVjMyB2X2RhdGExO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGZpbGxfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhhbG9fd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgZmlsbF9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGFsb193aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbnZlYzIgYV9wb3M9YV9wb3Nfb2Zmc2V0Lnh5O3ZlYzIgYV9vZmZzZXQ9YV9wb3Nfb2Zmc2V0Lnp3O3ZlYzIgYV90ZXg9YV9kYXRhLnh5O3ZlYzIgYV9zaXplPWFfZGF0YS56dztmbG9hdCBhX3NpemVfbWluPWZsb29yKGFfc2l6ZVswXSowLjUpO3ZlYzIgYV9weG9mZnNldD1hX3BpeGVsb2Zmc2V0Lnh5O2hpZ2hwIGZsb2F0IHNlZ21lbnRfYW5nbGU9LWFfcHJvamVjdGVkX3Bvc1syXTtmbG9hdCBzaXplO2lmICghdV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1taXgoYV9zaXplX21pbixhX3NpemVbMV0sdV9zaXplX3QpLzEyOC4wO30gZWxzZSBpZiAodV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1hX3NpemVfbWluLzEyOC4wO30gZWxzZSB7c2l6ZT11X3NpemU7fXZlYzQgcHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO2hpZ2hwIGZsb2F0IGNhbWVyYV90b19hbmNob3JfZGlzdGFuY2U9cHJvamVjdGVkUG9pbnQudztoaWdocCBmbG9hdCBkaXN0YW5jZV9yYXRpbz11X3BpdGNoX3dpdGhfbWFwID9cbmNhbWVyYV90b19hbmNob3JfZGlzdGFuY2UvdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlIDpcbnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZS9jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlO2hpZ2hwIGZsb2F0IHBlcnNwZWN0aXZlX3JhdGlvPWNsYW1wKDAuNSswLjUqZGlzdGFuY2VfcmF0aW8sMC4wLDQuMCk7c2l6ZSo9cGVyc3BlY3RpdmVfcmF0aW87ZmxvYXQgZm9udFNjYWxlPXVfaXNfdGV4dCA/IHNpemUvMjQuMCA6IHNpemU7aGlnaHAgZmxvYXQgc3ltYm9sX3JvdGF0aW9uPTAuMDtpZiAodV9yb3RhdGVfc3ltYm9sKSB7dmVjNCBvZmZzZXRQcm9qZWN0ZWRQb2ludD11X21hdHJpeCp2ZWM0KGFfcG9zK3ZlYzIoMSwwKSwwLDEpO3ZlYzIgYT1wcm9qZWN0ZWRQb2ludC54eS9wcm9qZWN0ZWRQb2ludC53O3ZlYzIgYj1vZmZzZXRQcm9qZWN0ZWRQb2ludC54eS9vZmZzZXRQcm9qZWN0ZWRQb2ludC53O3N5bWJvbF9yb3RhdGlvbj1hdGFuKChiLnktYS55KS91X2FzcGVjdF9yYXRpbyxiLngtYS54KTt9aGlnaHAgZmxvYXQgYW5nbGVfc2luPXNpbihzZWdtZW50X2FuZ2xlK3N5bWJvbF9yb3RhdGlvbik7aGlnaHAgZmxvYXQgYW5nbGVfY29zPWNvcyhzZWdtZW50X2FuZ2xlK3N5bWJvbF9yb3RhdGlvbik7bWF0MiByb3RhdGlvbl9tYXRyaXg9bWF0MihhbmdsZV9jb3MsLTEuMCphbmdsZV9zaW4sYW5nbGVfc2luLGFuZ2xlX2Nvcyk7dmVjNCBwcm9qZWN0ZWRfcG9zPXVfbGFiZWxfcGxhbmVfbWF0cml4KnZlYzQoYV9wcm9qZWN0ZWRfcG9zLnh5LDAuMCwxLjApO2dsX1Bvc2l0aW9uPXVfY29vcmRfbWF0cml4KnZlYzQocHJvamVjdGVkX3Bvcy54eS9wcm9qZWN0ZWRfcG9zLncrcm90YXRpb25fbWF0cml4KihhX29mZnNldC8zMi4wKmZvbnRTY2FsZSthX3B4b2Zmc2V0KSwwLjAsMS4wKTtmbG9hdCBnYW1tYV9zY2FsZT1nbF9Qb3NpdGlvbi53O3ZlYzIgZmFkZV9vcGFjaXR5PXVucGFja19vcGFjaXR5KGFfZmFkZV9vcGFjaXR5KTtmbG9hdCBmYWRlX2NoYW5nZT1mYWRlX29wYWNpdHlbMV0gPiAwLjUgPyB1X2ZhZGVfY2hhbmdlIDotdV9mYWRlX2NoYW5nZTtmbG9hdCBpbnRlcnBvbGF0ZWRfZmFkZV9vcGFjaXR5PW1heCgwLjAsbWluKDEuMCxmYWRlX29wYWNpdHlbMF0rZmFkZV9jaGFuZ2UpKTt2X2RhdGEwPWFfdGV4L3VfdGV4c2l6ZTt2X2RhdGExPXZlYzMoZ2FtbWFfc2NhbGUsc2l6ZSxpbnRlcnBvbGF0ZWRfZmFkZV9vcGFjaXR5KTt9IiksdnI9eXIoIiNkZWZpbmUgU0RGX1BYIDguMFxuI2RlZmluZSBTREYgMS4wXG4jZGVmaW5lIElDT04gMC4wXG51bmlmb3JtIGJvb2wgdV9pc19oYWxvO3VuaWZvcm0gc2FtcGxlcjJEIHVfdGV4dHVyZTt1bmlmb3JtIHNhbXBsZXIyRCB1X3RleHR1cmVfaWNvbjt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfZ2FtbWFfc2NhbGU7dW5pZm9ybSBsb3dwIGZsb2F0IHVfZGV2aWNlX3BpeGVsX3JhdGlvO3ZhcnlpbmcgdmVjNCB2X2RhdGEwO3ZhcnlpbmcgdmVjNCB2X2RhdGExO1xuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBoaWdocCB2ZWM0IGZpbGxfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgb3BhY2l0eVxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IGhhbG9fd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbnZvaWQgbWFpbigpIHtcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgZmlsbF9jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgaGlnaHAgdmVjNCBoYWxvX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGFsb193aWR0aFxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBoYWxvX2JsdXJcbmZsb2F0IGZhZGVfb3BhY2l0eT12X2RhdGExWzJdO2lmICh2X2RhdGExLnc9PUlDT04pIHt2ZWMyIHRleF9pY29uPXZfZGF0YTAuenc7bG93cCBmbG9hdCBhbHBoYT1vcGFjaXR5KmZhZGVfb3BhY2l0eTtnbF9GcmFnQ29sb3I9dGV4dHVyZTJEKHVfdGV4dHVyZV9pY29uLHRleF9pY29uKSphbHBoYTtcbiNpZmRlZiBPVkVSRFJBV19JTlNQRUNUT1JcbmdsX0ZyYWdDb2xvcj12ZWM0KDEuMCk7XG4jZW5kaWZcbnJldHVybjt9dmVjMiB0ZXg9dl9kYXRhMC54eTtmbG9hdCBFREdFX0dBTU1BPTAuMTA1L3VfZGV2aWNlX3BpeGVsX3JhdGlvO2Zsb2F0IGdhbW1hX3NjYWxlPXZfZGF0YTEueDtmbG9hdCBzaXplPXZfZGF0YTEueTtmbG9hdCBmb250U2NhbGU9c2l6ZS8yNC4wO2xvd3AgdmVjNCBjb2xvcj1maWxsX2NvbG9yO2hpZ2hwIGZsb2F0IGdhbW1hPUVER0VfR0FNTUEvKGZvbnRTY2FsZSp1X2dhbW1hX3NjYWxlKTtsb3dwIGZsb2F0IGJ1ZmY9KDI1Ni4wLTY0LjApLzI1Ni4wO2lmICh1X2lzX2hhbG8pIHtjb2xvcj1oYWxvX2NvbG9yO2dhbW1hPShoYWxvX2JsdXIqMS4xOS9TREZfUFgrRURHRV9HQU1NQSkvKGZvbnRTY2FsZSp1X2dhbW1hX3NjYWxlKTtidWZmPSg2LjAtaGFsb193aWR0aC9mb250U2NhbGUpL1NERl9QWDt9bG93cCBmbG9hdCBkaXN0PXRleHR1cmUyRCh1X3RleHR1cmUsdGV4KS5hO2hpZ2hwIGZsb2F0IGdhbW1hX3NjYWxlZD1nYW1tYSpnYW1tYV9zY2FsZTtoaWdocCBmbG9hdCBhbHBoYT1zbW9vdGhzdGVwKGJ1ZmYtZ2FtbWFfc2NhbGVkLGJ1ZmYrZ2FtbWFfc2NhbGVkLGRpc3QpO2dsX0ZyYWdDb2xvcj1jb2xvciooYWxwaGEqb3BhY2l0eSpmYWRlX29wYWNpdHkpO1xuI2lmZGVmIE9WRVJEUkFXX0lOU1BFQ1RPUlxuZ2xfRnJhZ0NvbG9yPXZlYzQoMS4wKTtcbiNlbmRpZlxufSIsImNvbnN0IGZsb2F0IFBJPTMuMTQxNTkyNjUzNTg5NzkzO2F0dHJpYnV0ZSB2ZWM0IGFfcG9zX29mZnNldDthdHRyaWJ1dGUgdmVjNCBhX2RhdGE7YXR0cmlidXRlIHZlYzMgYV9wcm9qZWN0ZWRfcG9zO2F0dHJpYnV0ZSBmbG9hdCBhX2ZhZGVfb3BhY2l0eTt1bmlmb3JtIGJvb2wgdV9pc19zaXplX3pvb21fY29uc3RhbnQ7dW5pZm9ybSBib29sIHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50O3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9zaXplX3Q7dW5pZm9ybSBoaWdocCBmbG9hdCB1X3NpemU7dW5pZm9ybSBtYXQ0IHVfbWF0cml4O3VuaWZvcm0gbWF0NCB1X2xhYmVsX3BsYW5lX21hdHJpeDt1bmlmb3JtIG1hdDQgdV9jb29yZF9tYXRyaXg7dW5pZm9ybSBib29sIHVfaXNfdGV4dDt1bmlmb3JtIGJvb2wgdV9waXRjaF93aXRoX21hcDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfcGl0Y2g7dW5pZm9ybSBib29sIHVfcm90YXRlX3N5bWJvbDt1bmlmb3JtIGhpZ2hwIGZsb2F0IHVfYXNwZWN0X3JhdGlvO3VuaWZvcm0gaGlnaHAgZmxvYXQgdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlO3VuaWZvcm0gZmxvYXQgdV9mYWRlX2NoYW5nZTt1bmlmb3JtIHZlYzIgdV90ZXhzaXplO3VuaWZvcm0gdmVjMiB1X3RleHNpemVfaWNvbjt2YXJ5aW5nIHZlYzQgdl9kYXRhMDt2YXJ5aW5nIHZlYzQgdl9kYXRhMTtcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgaGlnaHAgdmVjNCBmaWxsX2NvbG9yXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGhpZ2hwIHZlYzQgaGFsb19jb2xvclxuI3ByYWdtYSBtYXBib3g6IGRlZmluZSBsb3dwIGZsb2F0IG9wYWNpdHlcbiNwcmFnbWEgbWFwYm94OiBkZWZpbmUgbG93cCBmbG9hdCBoYWxvX3dpZHRoXG4jcHJhZ21hIG1hcGJveDogZGVmaW5lIGxvd3AgZmxvYXQgaGFsb19ibHVyXG52b2lkIG1haW4oKSB7XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBoaWdocCB2ZWM0IGZpbGxfY29sb3JcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGhpZ2hwIHZlYzQgaGFsb19jb2xvclxuI3ByYWdtYSBtYXBib3g6IGluaXRpYWxpemUgbG93cCBmbG9hdCBvcGFjaXR5XG4jcHJhZ21hIG1hcGJveDogaW5pdGlhbGl6ZSBsb3dwIGZsb2F0IGhhbG9fd2lkdGhcbiNwcmFnbWEgbWFwYm94OiBpbml0aWFsaXplIGxvd3AgZmxvYXQgaGFsb19ibHVyXG52ZWMyIGFfcG9zPWFfcG9zX29mZnNldC54eTt2ZWMyIGFfb2Zmc2V0PWFfcG9zX29mZnNldC56dzt2ZWMyIGFfdGV4PWFfZGF0YS54eTt2ZWMyIGFfc2l6ZT1hX2RhdGEuenc7ZmxvYXQgYV9zaXplX21pbj1mbG9vcihhX3NpemVbMF0qMC41KTtmbG9hdCBpc19zZGY9YV9zaXplWzBdLTIuMCphX3NpemVfbWluO2hpZ2hwIGZsb2F0IHNlZ21lbnRfYW5nbGU9LWFfcHJvamVjdGVkX3Bvc1syXTtmbG9hdCBzaXplO2lmICghdV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1taXgoYV9zaXplX21pbixhX3NpemVbMV0sdV9zaXplX3QpLzEyOC4wO30gZWxzZSBpZiAodV9pc19zaXplX3pvb21fY29uc3RhbnQgJiYgIXVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSB7c2l6ZT1hX3NpemVfbWluLzEyOC4wO30gZWxzZSB7c2l6ZT11X3NpemU7fXZlYzQgcHJvamVjdGVkUG9pbnQ9dV9tYXRyaXgqdmVjNChhX3BvcywwLDEpO2hpZ2hwIGZsb2F0IGNhbWVyYV90b19hbmNob3JfZGlzdGFuY2U9cHJvamVjdGVkUG9pbnQudztoaWdocCBmbG9hdCBkaXN0YW5jZV9yYXRpbz11X3BpdGNoX3dpdGhfbWFwID9cbmNhbWVyYV90b19hbmNob3JfZGlzdGFuY2UvdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlIDpcbnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZS9jYW1lcmFfdG9fYW5jaG9yX2Rpc3RhbmNlO2hpZ2hwIGZsb2F0IHBlcnNwZWN0aXZlX3JhdGlvPWNsYW1wKDAuNSswLjUqZGlzdGFuY2VfcmF0aW8sMC4wLDQuMCk7c2l6ZSo9cGVyc3BlY3RpdmVfcmF0aW87ZmxvYXQgZm9udFNjYWxlPXNpemUvMjQuMDtoaWdocCBmbG9hdCBzeW1ib2xfcm90YXRpb249MC4wO2lmICh1X3JvdGF0ZV9zeW1ib2wpIHt2ZWM0IG9mZnNldFByb2plY3RlZFBvaW50PXVfbWF0cml4KnZlYzQoYV9wb3MrdmVjMigxLDApLDAsMSk7dmVjMiBhPXByb2plY3RlZFBvaW50Lnh5L3Byb2plY3RlZFBvaW50Lnc7dmVjMiBiPW9mZnNldFByb2plY3RlZFBvaW50Lnh5L29mZnNldFByb2plY3RlZFBvaW50Lnc7c3ltYm9sX3JvdGF0aW9uPWF0YW4oKGIueS1hLnkpL3VfYXNwZWN0X3JhdGlvLGIueC1hLngpO31oaWdocCBmbG9hdCBhbmdsZV9zaW49c2luKHNlZ21lbnRfYW5nbGUrc3ltYm9sX3JvdGF0aW9uKTtoaWdocCBmbG9hdCBhbmdsZV9jb3M9Y29zKHNlZ21lbnRfYW5nbGUrc3ltYm9sX3JvdGF0aW9uKTttYXQyIHJvdGF0aW9uX21hdHJpeD1tYXQyKGFuZ2xlX2NvcywtMS4wKmFuZ2xlX3NpbixhbmdsZV9zaW4sYW5nbGVfY29zKTt2ZWM0IHByb2plY3RlZF9wb3M9dV9sYWJlbF9wbGFuZV9tYXRyaXgqdmVjNChhX3Byb2plY3RlZF9wb3MueHksMC4wLDEuMCk7Z2xfUG9zaXRpb249dV9jb29yZF9tYXRyaXgqdmVjNChwcm9qZWN0ZWRfcG9zLnh5L3Byb2plY3RlZF9wb3Mudytyb3RhdGlvbl9tYXRyaXgqKGFfb2Zmc2V0LzMyLjAqZm9udFNjYWxlKSwwLjAsMS4wKTtmbG9hdCBnYW1tYV9zY2FsZT1nbF9Qb3NpdGlvbi53O3ZlYzIgZmFkZV9vcGFjaXR5PXVucGFja19vcGFjaXR5KGFfZmFkZV9vcGFjaXR5KTtmbG9hdCBmYWRlX2NoYW5nZT1mYWRlX29wYWNpdHlbMV0gPiAwLjUgPyB1X2ZhZGVfY2hhbmdlIDotdV9mYWRlX2NoYW5nZTtmbG9hdCBpbnRlcnBvbGF0ZWRfZmFkZV9vcGFjaXR5PW1heCgwLjAsbWluKDEuMCxmYWRlX29wYWNpdHlbMF0rZmFkZV9jaGFuZ2UpKTt2X2RhdGEwLnh5PWFfdGV4L3VfdGV4c2l6ZTt2X2RhdGEwLnp3PWFfdGV4L3VfdGV4c2l6ZV9pY29uO3ZfZGF0YTE9dmVjNChnYW1tYV9zY2FsZSxzaXplLGludGVycG9sYXRlZF9mYWRlX29wYWNpdHksaXNfc2RmKTt9Iik7ZnVuY3Rpb24geXIodCxlKXt2YXIgcj0vI3ByYWdtYSBtYXBib3g6IChbXHddKykgKFtcd10rKSAoW1x3XSspIChbXHddKykvZyxuPXt9O3JldHVybntmcmFnbWVudFNvdXJjZTp0PXQucmVwbGFjZShyLChmdW5jdGlvbih0LGUscixpLGEpe3JldHVybiBuW2FdPSEwLCJkZWZpbmUiPT09ZT8iXG4jaWZuZGVmIEhBU19VTklGT1JNX3VfIithKyJcbnZhcnlpbmcgIityKyIgIitpKyIgIithKyI7XG4jZWxzZVxudW5pZm9ybSAiK3IrIiAiK2krIiB1XyIrYSsiO1xuI2VuZGlmXG4iOiJcbiNpZmRlZiBIQVNfVU5JRk9STV91XyIrYSsiXG4gICAgIityKyIgIitpKyIgIithKyIgPSB1XyIrYSsiO1xuI2VuZGlmXG4ifSkpLHZlcnRleFNvdXJjZTplPWUucmVwbGFjZShyLChmdW5jdGlvbih0LGUscixpLGEpe3ZhciBvPSJmbG9hdCI9PT1pPyJ2ZWMyIjoidmVjNCIscz1hLm1hdGNoKC9jb2xvci8pPyJjb2xvciI6bztyZXR1cm4gblthXT8iZGVmaW5lIj09PWU/IlxuI2lmbmRlZiBIQVNfVU5JRk9STV91XyIrYSsiXG51bmlmb3JtIGxvd3AgZmxvYXQgdV8iK2ErIl90O1xuYXR0cmlidXRlICIrcisiICIrbysiIGFfIithKyI7XG52YXJ5aW5nICIrcisiICIraSsiICIrYSsiO1xuI2Vsc2VcbnVuaWZvcm0gIityKyIgIitpKyIgdV8iK2ErIjtcbiNlbmRpZlxuIjoidmVjNCI9PT1zPyJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxuICAgICIrYSsiID0gYV8iK2ErIjtcbiNlbHNlXG4gICAgIityKyIgIitpKyIgIithKyIgPSB1XyIrYSsiO1xuI2VuZGlmXG4iOiJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxuICAgICIrYSsiID0gdW5wYWNrX21peF8iK3MrIihhXyIrYSsiLCB1XyIrYSsiX3QpO1xuI2Vsc2VcbiAgICAiK3IrIiAiK2krIiAiK2ErIiA9IHVfIithKyI7XG4jZW5kaWZcbiI6ImRlZmluZSI9PT1lPyJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxudW5pZm9ybSBsb3dwIGZsb2F0IHVfIithKyJfdDtcbmF0dHJpYnV0ZSAiK3IrIiAiK28rIiBhXyIrYSsiO1xuI2Vsc2VcbnVuaWZvcm0gIityKyIgIitpKyIgdV8iK2ErIjtcbiNlbmRpZlxuIjoidmVjNCI9PT1zPyJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxuICAgICIrcisiICIraSsiICIrYSsiID0gYV8iK2ErIjtcbiNlbHNlXG4gICAgIityKyIgIitpKyIgIithKyIgPSB1XyIrYSsiO1xuI2VuZGlmXG4iOiJcbiNpZm5kZWYgSEFTX1VOSUZPUk1fdV8iK2ErIlxuICAgICIrcisiICIraSsiICIrYSsiID0gdW5wYWNrX21peF8iK3MrIihhXyIrYSsiLCB1XyIrYSsiX3QpO1xuI2Vsc2VcbiAgICAiK3IrIiAiK2krIiAiK2ErIiA9IHVfIithKyI7XG4jZW5kaWZcbiJ9KSl9fXZhciB4cj1PYmplY3QuZnJlZXplKHtfX3Byb3RvX186bnVsbCxwcmVsdWRlOlllLGJhY2tncm91bmQ6V2UsYmFja2dyb3VuZFBhdHRlcm46WGUsY2lyY2xlOlplLGNsaXBwaW5nTWFzazpKZSxoZWF0bWFwOktlLGhlYXRtYXBUZXh0dXJlOlFlLGNvbGxpc2lvbkJveDokZSxjb2xsaXNpb25DaXJjbGU6dHIsZGVidWc6ZXIsZmlsbDpycixmaWxsT3V0bGluZTpucixmaWxsT3V0bGluZVBhdHRlcm46aXIsZmlsbFBhdHRlcm46YXIsZmlsbEV4dHJ1c2lvbjpvcixmaWxsRXh0cnVzaW9uUGF0dGVybjpzcixoaWxsc2hhZGVQcmVwYXJlOmxyLGhpbGxzaGFkZTpjcixsaW5lOnVyLGxpbmVHcmFkaWVudDpmcixsaW5lUGF0dGVybjpocixsaW5lU0RGOnByLHJhc3RlcjpkcixzeW1ib2xJY29uOm1yLHN5bWJvbFNERjpncixzeW1ib2xUZXh0QW5kSWNvbjp2cn0pLGJyPWZ1bmN0aW9uKCl7dGhpcy5ib3VuZFByb2dyYW09bnVsbCx0aGlzLmJvdW5kTGF5b3V0VmVydGV4QnVmZmVyPW51bGwsdGhpcy5ib3VuZFBhaW50VmVydGV4QnVmZmVycz1bXSx0aGlzLmJvdW5kSW5kZXhCdWZmZXI9bnVsbCx0aGlzLmJvdW5kVmVydGV4T2Zmc2V0PW51bGwsdGhpcy5ib3VuZER5bmFtaWNWZXJ0ZXhCdWZmZXI9bnVsbCx0aGlzLnZhbz1udWxsfTtici5wcm90b3R5cGUuYmluZD1mdW5jdGlvbih0LGUscixuLGksYSxvLHMpe3RoaXMuY29udGV4dD10O2Zvcih2YXIgbD10aGlzLmJvdW5kUGFpbnRWZXJ0ZXhCdWZmZXJzLmxlbmd0aCE9PW4ubGVuZ3RoLGM9MDshbCYmYzxuLmxlbmd0aDtjKyspdGhpcy5ib3VuZFBhaW50VmVydGV4QnVmZmVyc1tjXSE9PW5bY10mJihsPSEwKTt2YXIgdT0hdGhpcy52YW98fHRoaXMuYm91bmRQcm9ncmFtIT09ZXx8dGhpcy5ib3VuZExheW91dFZlcnRleEJ1ZmZlciE9PXJ8fGx8fHRoaXMuYm91bmRJbmRleEJ1ZmZlciE9PWl8fHRoaXMuYm91bmRWZXJ0ZXhPZmZzZXQhPT1hfHx0aGlzLmJvdW5kRHluYW1pY1ZlcnRleEJ1ZmZlciE9PW98fHRoaXMuYm91bmREeW5hbWljVmVydGV4QnVmZmVyMiE9PXM7IXQuZXh0VmVydGV4QXJyYXlPYmplY3R8fHU/dGhpcy5mcmVzaEJpbmQoZSxyLG4saSxhLG8scyk6KHQuYmluZFZlcnRleEFycmF5T0VTLnNldCh0aGlzLnZhbyksbyYmby5iaW5kKCksaSYmaS5keW5hbWljRHJhdyYmaS5iaW5kKCkscyYmcy5iaW5kKCkpfSxici5wcm90b3R5cGUuZnJlc2hCaW5kPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzLGw9dC5udW1BdHRyaWJ1dGVzLGM9dGhpcy5jb250ZXh0LHU9Yy5nbDtpZihjLmV4dFZlcnRleEFycmF5T2JqZWN0KXRoaXMudmFvJiZ0aGlzLmRlc3Ryb3koKSx0aGlzLnZhbz1jLmV4dFZlcnRleEFycmF5T2JqZWN0LmNyZWF0ZVZlcnRleEFycmF5T0VTKCksYy5iaW5kVmVydGV4QXJyYXlPRVMuc2V0KHRoaXMudmFvKSxzPTAsdGhpcy5ib3VuZFByb2dyYW09dCx0aGlzLmJvdW5kTGF5b3V0VmVydGV4QnVmZmVyPWUsdGhpcy5ib3VuZFBhaW50VmVydGV4QnVmZmVycz1yLHRoaXMuYm91bmRJbmRleEJ1ZmZlcj1uLHRoaXMuYm91bmRWZXJ0ZXhPZmZzZXQ9aSx0aGlzLmJvdW5kRHluYW1pY1ZlcnRleEJ1ZmZlcj1hLHRoaXMuYm91bmREeW5hbWljVmVydGV4QnVmZmVyMj1vO2Vsc2V7cz1jLmN1cnJlbnROdW1BdHRyaWJ1dGVzfHwwO2Zvcih2YXIgZj1sO2Y8cztmKyspdS5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoZil9ZS5lbmFibGVBdHRyaWJ1dGVzKHUsdCk7Zm9yKHZhciBoPTAscD1yO2g8cC5sZW5ndGg7aCs9MSl7cFtoXS5lbmFibGVBdHRyaWJ1dGVzKHUsdCl9YSYmYS5lbmFibGVBdHRyaWJ1dGVzKHUsdCksbyYmby5lbmFibGVBdHRyaWJ1dGVzKHUsdCksZS5iaW5kKCksZS5zZXRWZXJ0ZXhBdHRyaWJQb2ludGVycyh1LHQsaSk7Zm9yKHZhciBkPTAsbT1yO2Q8bS5sZW5ndGg7ZCs9MSl7dmFyIGc9bVtkXTtnLmJpbmQoKSxnLnNldFZlcnRleEF0dHJpYlBvaW50ZXJzKHUsdCxpKX1hJiYoYS5iaW5kKCksYS5zZXRWZXJ0ZXhBdHRyaWJQb2ludGVycyh1LHQsaSkpLG4mJm4uYmluZCgpLG8mJihvLmJpbmQoKSxvLnNldFZlcnRleEF0dHJpYlBvaW50ZXJzKHUsdCxpKSksYy5jdXJyZW50TnVtQXR0cmlidXRlcz1sfSxici5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMudmFvJiYodGhpcy5jb250ZXh0LmV4dFZlcnRleEFycmF5T2JqZWN0LmRlbGV0ZVZlcnRleEFycmF5T0VTKHRoaXMudmFvKSx0aGlzLnZhbz1udWxsKX07dmFyIF9yPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dC5nbDt0aGlzLnByb2dyYW09YS5jcmVhdGVQcm9ncmFtKCk7dmFyIG89cj9yLmRlZmluZXMoKTpbXTtpJiZvLnB1c2goIiNkZWZpbmUgT1ZFUkRSQVdfSU5TUEVDVE9SOyIpO3ZhciBzPW8uY29uY2F0KFllLmZyYWdtZW50U291cmNlLGUuZnJhZ21lbnRTb3VyY2UpLmpvaW4oIlxuIiksbD1vLmNvbmNhdChZZS52ZXJ0ZXhTb3VyY2UsZS52ZXJ0ZXhTb3VyY2UpLmpvaW4oIlxuIiksYz1hLmNyZWF0ZVNoYWRlcihhLkZSQUdNRU5UX1NIQURFUik7aWYoYS5pc0NvbnRleHRMb3N0KCkpdGhpcy5mYWlsZWRUb0NyZWF0ZT0hMDtlbHNle2Euc2hhZGVyU291cmNlKGMscyksYS5jb21waWxlU2hhZGVyKGMpLGEuYXR0YWNoU2hhZGVyKHRoaXMucHJvZ3JhbSxjKTt2YXIgdT1hLmNyZWF0ZVNoYWRlcihhLlZFUlRFWF9TSEFERVIpO2lmKGEuaXNDb250ZXh0TG9zdCgpKXRoaXMuZmFpbGVkVG9DcmVhdGU9ITA7ZWxzZXthLnNoYWRlclNvdXJjZSh1LGwpLGEuY29tcGlsZVNoYWRlcih1KSxhLmF0dGFjaFNoYWRlcih0aGlzLnByb2dyYW0sdSk7Zm9yKHZhciBmPXI/ci5sYXlvdXRBdHRyaWJ1dGVzOltdLGg9MDtoPGYubGVuZ3RoO2grKylhLmJpbmRBdHRyaWJMb2NhdGlvbih0aGlzLnByb2dyYW0saCxmW2hdLm5hbWUpO2EubGlua1Byb2dyYW0odGhpcy5wcm9ncmFtKSxhLmRlbGV0ZVNoYWRlcih1KSxhLmRlbGV0ZVNoYWRlcihjKSx0aGlzLm51bUF0dHJpYnV0ZXM9YS5nZXRQcm9ncmFtUGFyYW1ldGVyKHRoaXMucHJvZ3JhbSxhLkFDVElWRV9BVFRSSUJVVEVTKSx0aGlzLmF0dHJpYnV0ZXM9e307Zm9yKHZhciBwPXt9LGQ9MDtkPHRoaXMubnVtQXR0cmlidXRlcztkKyspe3ZhciBtPWEuZ2V0QWN0aXZlQXR0cmliKHRoaXMucHJvZ3JhbSxkKTttJiYodGhpcy5hdHRyaWJ1dGVzW20ubmFtZV09YS5nZXRBdHRyaWJMb2NhdGlvbih0aGlzLnByb2dyYW0sbS5uYW1lKSl9Zm9yKHZhciBnPWEuZ2V0UHJvZ3JhbVBhcmFtZXRlcih0aGlzLnByb2dyYW0sYS5BQ1RJVkVfVU5JRk9STVMpLHY9MDt2PGc7disrKXt2YXIgeT1hLmdldEFjdGl2ZVVuaWZvcm0odGhpcy5wcm9ncmFtLHYpO3kmJihwW3kubmFtZV09YS5nZXRVbmlmb3JtTG9jYXRpb24odGhpcy5wcm9ncmFtLHkubmFtZSkpfXRoaXMuZml4ZWRVbmlmb3Jtcz1uKHQscCksdGhpcy5iaW5kZXJVbmlmb3Jtcz1yP3IuZ2V0VW5pZm9ybXModCxwKTpbXX19fTtmdW5jdGlvbiB3cih0LGUscil7dmFyIG49MS9wZShyLDEsZS50cmFuc2Zvcm0udGlsZVpvb20pLGk9TWF0aC5wb3coMixyLnRpbGVJRC5vdmVyc2NhbGVkWiksYT1yLnRpbGVTaXplKk1hdGgucG93KDIsZS50cmFuc2Zvcm0udGlsZVpvb20pL2ksbz1hKihyLnRpbGVJRC5jYW5vbmljYWwueCtyLnRpbGVJRC53cmFwKmkpLHM9YSpyLnRpbGVJRC5jYW5vbmljYWwueTtyZXR1cm57dV9pbWFnZTowLHVfdGV4c2l6ZTpyLmltYWdlQXRsYXNUZXh0dXJlLnNpemUsdV9zY2FsZTpbbix0LmZyb21TY2FsZSx0LnRvU2NhbGVdLHVfZmFkZTp0LnQsdV9waXhlbF9jb29yZF91cHBlcjpbbz4+MTYscz4+MTZdLHVfcGl4ZWxfY29vcmRfbG93ZXI6WzY1NTM1Jm8sNjU1MzUmc119fV9yLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMsdSxmLGgscCxkLG0pe3ZhciBnLHY9dC5nbDtpZighdGhpcy5mYWlsZWRUb0NyZWF0ZSl7Zm9yKHZhciB5IGluIHQucHJvZ3JhbS5zZXQodGhpcy5wcm9ncmFtKSx0LnNldERlcHRoTW9kZShyKSx0LnNldFN0ZW5jaWxNb2RlKG4pLHQuc2V0Q29sb3JNb2RlKGkpLHQuc2V0Q3VsbEZhY2UoYSksdGhpcy5maXhlZFVuaWZvcm1zKXRoaXMuZml4ZWRVbmlmb3Jtc1t5XS5zZXQob1t5XSk7cCYmcC5zZXRVbmlmb3Jtcyh0LHRoaXMuYmluZGVyVW5pZm9ybXMsZix7em9vbTpofSk7Zm9yKHZhciB4PShnPXt9LGdbdi5MSU5FU109MixnW3YuVFJJQU5HTEVTXT0zLGdbdi5MSU5FX1NUUklQXT0xLGcpW2VdLGI9MCxfPXUuZ2V0KCk7YjxfLmxlbmd0aDtiKz0xKXt2YXIgdz1fW2JdLFQ9dy52YW9zfHwody52YW9zPXt9KTsoVFtzXXx8KFRbc109bmV3IGJyKSkuYmluZCh0LHRoaXMsbCxwP3AuZ2V0UGFpbnRWZXJ0ZXhCdWZmZXJzKCk6W10sYyx3LnZlcnRleE9mZnNldCxkLG0pLHYuZHJhd0VsZW1lbnRzKGUsdy5wcmltaXRpdmVMZW5ndGgqeCx2LlVOU0lHTkVEX1NIT1JULHcucHJpbWl0aXZlT2Zmc2V0KngqMil9fX07dmFyIFRyPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPXIuc3R5bGUubGlnaHQsbz1hLnByb3BlcnRpZXMuZ2V0KCJwb3NpdGlvbiIpLHM9W28ueCxvLnksby56XSxsPXQuY3JlYXRlJDEoKTsidmlld3BvcnQiPT09YS5wcm9wZXJ0aWVzLmdldCgiYW5jaG9yIikmJnQuZnJvbVJvdGF0aW9uKGwsLXIudHJhbnNmb3JtLmFuZ2xlKSx0LnRyYW5zZm9ybU1hdDMocyxzLGwpO3ZhciBjPWEucHJvcGVydGllcy5nZXQoImNvbG9yIik7cmV0dXJue3VfbWF0cml4OmUsdV9saWdodHBvczpzLHVfbGlnaHRpbnRlbnNpdHk6YS5wcm9wZXJ0aWVzLmdldCgiaW50ZW5zaXR5IiksdV9saWdodGNvbG9yOltjLnIsYy5nLGMuYl0sdV92ZXJ0aWNhbF9ncmFkaWVudDorbix1X29wYWNpdHk6aX19LGtyPWZ1bmN0aW9uKGUscixuLGksYSxvLHMpe3JldHVybiB0LmV4dGVuZChUcihlLHIsbixpKSx3cihvLHIscykse3VfaGVpZ2h0X2ZhY3RvcjotTWF0aC5wb3coMixhLm92ZXJzY2FsZWRaKS9zLnRpbGVTaXplLzh9KX0sQXI9ZnVuY3Rpb24odCl7cmV0dXJue3VfbWF0cml4OnR9fSxNcj1mdW5jdGlvbihlLHIsbixpKXtyZXR1cm4gdC5leHRlbmQoQXIoZSksd3IobixyLGkpKX0sU3I9ZnVuY3Rpb24odCxlKXtyZXR1cm57dV9tYXRyaXg6dCx1X3dvcmxkOmV9fSxFcj1mdW5jdGlvbihlLHIsbixpLGEpe3JldHVybiB0LmV4dGVuZChNcihlLHIsbixpKSx7dV93b3JsZDphfSl9LExyPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBhLG8scz1lLnRyYW5zZm9ybTtpZigibWFwIj09PWkucGFpbnQuZ2V0KCJjaXJjbGUtcGl0Y2gtYWxpZ25tZW50Iikpe3ZhciBsPXBlKG4sMSxzLnpvb20pO2E9ITAsbz1bbCxsXX1lbHNlIGE9ITEsbz1zLnBpeGVsc1RvR0xVbml0cztyZXR1cm57dV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOnMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZSx1X3NjYWxlX3dpdGhfbWFwOisoIm1hcCI9PT1pLnBhaW50LmdldCgiY2lyY2xlLXBpdGNoLXNjYWxlIikpLHVfbWF0cml4OmUudHJhbnNsYXRlUG9zTWF0cml4KHIucG9zTWF0cml4LG4saS5wYWludC5nZXQoImNpcmNsZS10cmFuc2xhdGUiKSxpLnBhaW50LmdldCgiY2lyY2xlLXRyYW5zbGF0ZS1hbmNob3IiKSksdV9waXRjaF93aXRoX21hcDorYSx1X2RldmljZV9waXhlbF9yYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx1X2V4dHJ1ZGVfc2NhbGU6b319LENyPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1wZShyLDEsZS56b29tKSxpPU1hdGgucG93KDIsZS56b29tLXIudGlsZUlELm92ZXJzY2FsZWRaKSxhPXIudGlsZUlELm92ZXJzY2FsZUZhY3RvcigpO3JldHVybnt1X21hdHJpeDp0LHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTplLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UsdV9waXhlbHNfdG9fdGlsZV91bml0czpuLHVfZXh0cnVkZV9zY2FsZTpbZS5waXhlbHNUb0dMVW5pdHNbMF0vKG4qaSksZS5waXhlbHNUb0dMVW5pdHNbMV0vKG4qaSldLHVfb3ZlcnNjYWxlX2ZhY3RvcjphfX0sUHI9ZnVuY3Rpb24odCxlLHIpe3JldHVybnt1X21hdHJpeDp0LHVfaW52X21hdHJpeDplLHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpyLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2UsdV92aWV3cG9ydF9zaXplOltyLndpZHRoLHIuaGVpZ2h0XX19LElyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdm9pZCAwPT09ciYmKHI9MSkse3VfbWF0cml4OnQsdV9jb2xvcjplLHVfb3ZlcmxheTowLHVfb3ZlcmxheV9zY2FsZTpyfX0sT3I9ZnVuY3Rpb24odCl7cmV0dXJue3VfbWF0cml4OnR9fSx6cj1mdW5jdGlvbih0LGUscixuKXtyZXR1cm57dV9tYXRyaXg6dCx1X2V4dHJ1ZGVfc2NhbGU6cGUoZSwxLHIpLHVfaW50ZW5zaXR5Om59fTtmdW5jdGlvbiBEcihlLHIpe3ZhciBuPU1hdGgucG93KDIsci5jYW5vbmljYWwueiksaT1yLmNhbm9uaWNhbC55O3JldHVybltuZXcgdC5NZXJjYXRvckNvb3JkaW5hdGUoMCxpL24pLnRvTG5nTGF0KCkubGF0LG5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZSgwLChpKzEpL24pLnRvTG5nTGF0KCkubGF0XX12YXIgUnI9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPWUudHJhbnNmb3JtO3JldHVybnt1X21hdHJpeDpVcihlLHIsbiksdV9yYXRpbzoxL3BlKHIsMSxpLnpvb20pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOnQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvLHVfdW5pdHNfdG9fcGl4ZWxzOlsxL2kucGl4ZWxzVG9HTFVuaXRzWzBdLDEvaS5waXhlbHNUb0dMVW5pdHNbMV1dfX0sRnI9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0LmV4dGVuZChScihlLHIsbikse3VfaW1hZ2U6MH0pfSxCcj1mdW5jdGlvbihlLHIsbixpKXt2YXIgYT1lLnRyYW5zZm9ybSxvPWpyKHIsYSk7cmV0dXJue3VfbWF0cml4OlVyKGUscixuKSx1X3RleHNpemU6ci5pbWFnZUF0bGFzVGV4dHVyZS5zaXplLHVfcmF0aW86MS9wZShyLDEsYS56b29tKSx1X2RldmljZV9waXhlbF9yYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx1X2ltYWdlOjAsdV9zY2FsZTpbbyxpLmZyb21TY2FsZSxpLnRvU2NhbGVdLHVfZmFkZTppLnQsdV91bml0c190b19waXhlbHM6WzEvYS5waXhlbHNUb0dMVW5pdHNbMF0sMS9hLnBpeGVsc1RvR0xVbml0c1sxXV19fSxOcj1mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvPWUudHJhbnNmb3JtLHM9ZS5saW5lQXRsYXMsbD1qcihyLG8pLGM9InJvdW5kIj09PW4ubGF5b3V0LmdldCgibGluZS1jYXAiKSx1PXMuZ2V0RGFzaChpLmZyb20sYyksZj1zLmdldERhc2goaS50byxjKSxoPXUud2lkdGgqYS5mcm9tU2NhbGUscD1mLndpZHRoKmEudG9TY2FsZTtyZXR1cm4gdC5leHRlbmQoUnIoZSxyLG4pLHt1X3BhdHRlcm5zY2FsZV9hOltsL2gsLXUuaGVpZ2h0LzJdLHVfcGF0dGVybnNjYWxlX2I6W2wvcCwtZi5oZWlnaHQvMl0sdV9zZGZnYW1tYTpzLndpZHRoLygyNTYqTWF0aC5taW4oaCxwKSp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbykvMix1X2ltYWdlOjAsdV90ZXhfeV9hOnUueSx1X3RleF95X2I6Zi55LHVfbWl4OmEudH0pfTtmdW5jdGlvbiBqcih0LGUpe3JldHVybiAxL3BlKHQsMSxlLnRpbGVab29tKX1mdW5jdGlvbiBVcih0LGUscil7cmV0dXJuIHQudHJhbnNsYXRlUG9zTWF0cml4KGUudGlsZUlELnBvc01hdHJpeCxlLHIucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZSIpLHIucGFpbnQuZ2V0KCJsaW5lLXRyYW5zbGF0ZS1hbmNob3IiKSl9dmFyIFZyPWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJue3VfbWF0cml4OnQsdV90bF9wYXJlbnQ6ZSx1X3NjYWxlX3BhcmVudDpyLHVfYnVmZmVyX3NjYWxlOjEsdV9mYWRlX3Q6bi5taXgsdV9vcGFjaXR5Om4ub3BhY2l0eSppLnBhaW50LmdldCgicmFzdGVyLW9wYWNpdHkiKSx1X2ltYWdlMDowLHVfaW1hZ2UxOjEsdV9icmlnaHRuZXNzX2xvdzppLnBhaW50LmdldCgicmFzdGVyLWJyaWdodG5lc3MtbWluIiksdV9icmlnaHRuZXNzX2hpZ2g6aS5wYWludC5nZXQoInJhc3Rlci1icmlnaHRuZXNzLW1heCIpLHVfc2F0dXJhdGlvbl9mYWN0b3I6KG89aS5wYWludC5nZXQoInJhc3Rlci1zYXR1cmF0aW9uIiksbz4wPzEtMS8oMS4wMDEtbyk6LW8pLHVfY29udHJhc3RfZmFjdG9yOihhPWkucGFpbnQuZ2V0KCJyYXN0ZXItY29udHJhc3QiKSxhPjA/MS8oMS1hKToxK2EpLHVfc3Bpbl93ZWlnaHRzOkhyKGkucGFpbnQuZ2V0KCJyYXN0ZXItaHVlLXJvdGF0ZSIpKX07dmFyIGEsb307ZnVuY3Rpb24gSHIodCl7dCo9TWF0aC5QSS8xODA7dmFyIGU9TWF0aC5zaW4odCkscj1NYXRoLmNvcyh0KTtyZXR1cm5bKDIqcisxKS8zLCgtTWF0aC5zcXJ0KDMpKmUtcisxKS8zLChNYXRoLnNxcnQoMykqZS1yKzEpLzNdfXZhciBxcixHcj1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjKXt2YXIgdT1pLnRyYW5zZm9ybTtyZXR1cm57dV9pc19zaXplX3pvb21fY29uc3RhbnQ6KygiY29uc3RhbnQiPT09dHx8InNvdXJjZSI9PT10KSx1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDorKCJjb25zdGFudCI9PT10fHwiY2FtZXJhIj09PXQpLHVfc2l6ZV90OmU/ZS51U2l6ZVQ6MCx1X3NpemU6ZT9lLnVTaXplOjAsdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOnUuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZSx1X3BpdGNoOnUucGl0Y2gvMzYwKjIqTWF0aC5QSSx1X3JvdGF0ZV9zeW1ib2w6K3IsdV9hc3BlY3RfcmF0aW86dS53aWR0aC91LmhlaWdodCx1X2ZhZGVfY2hhbmdlOmkub3B0aW9ucy5mYWRlRHVyYXRpb24/aS5zeW1ib2xGYWRlQ2hhbmdlOjEsdV9tYXRyaXg6YSx1X2xhYmVsX3BsYW5lX21hdHJpeDpvLHVfY29vcmRfbWF0cml4OnMsdV9pc190ZXh0OitsLHVfcGl0Y2hfd2l0aF9tYXA6K24sdV90ZXhzaXplOmMsdV90ZXh0dXJlOjB9fSxZcj1mdW5jdGlvbihlLHIsbixpLGEsbyxzLGwsYyx1LGYpe3ZhciBoPWEudHJhbnNmb3JtO3JldHVybiB0LmV4dGVuZChHcihlLHIsbixpLGEsbyxzLGwsYyx1KSx7dV9nYW1tYV9zY2FsZTppP01hdGguY29zKGguX3BpdGNoKSpoLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2U6MSx1X2RldmljZV9waXhlbF9yYXRpbzp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx1X2lzX2hhbG86K2Z9KX0sV3I9ZnVuY3Rpb24oZSxyLG4saSxhLG8scyxsLGMsdSl7cmV0dXJuIHQuZXh0ZW5kKFlyKGUscixuLGksYSxvLHMsbCwhMCxjLCEwKSx7dV90ZXhzaXplX2ljb246dSx1X3RleHR1cmVfaWNvbjoxfSl9LFhyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm57dV9tYXRyaXg6dCx1X29wYWNpdHk6ZSx1X2NvbG9yOnJ9fSxacj1mdW5jdGlvbihlLHIsbixpLGEsbyl7cmV0dXJuIHQuZXh0ZW5kKGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXIuaW1hZ2VNYW5hZ2VyLmdldFBhdHRlcm4odC5mcm9tLnRvU3RyaW5nKCkpLGE9ci5pbWFnZU1hbmFnZXIuZ2V0UGF0dGVybih0LnRvLnRvU3RyaW5nKCkpLG89ci5pbWFnZU1hbmFnZXIuZ2V0UGl4ZWxTaXplKCkscz1vLndpZHRoLGw9by5oZWlnaHQsYz1NYXRoLnBvdygyLG4udGlsZUlELm92ZXJzY2FsZWRaKSx1PW4udGlsZVNpemUqTWF0aC5wb3coMixyLnRyYW5zZm9ybS50aWxlWm9vbSkvYyxmPXUqKG4udGlsZUlELmNhbm9uaWNhbC54K24udGlsZUlELndyYXAqYyksaD11Km4udGlsZUlELmNhbm9uaWNhbC55O3JldHVybnt1X2ltYWdlOjAsdV9wYXR0ZXJuX3RsX2E6aS50bCx1X3BhdHRlcm5fYnJfYTppLmJyLHVfcGF0dGVybl90bF9iOmEudGwsdV9wYXR0ZXJuX2JyX2I6YS5icix1X3RleHNpemU6W3MsbF0sdV9taXg6ZS50LHVfcGF0dGVybl9zaXplX2E6aS5kaXNwbGF5U2l6ZSx1X3BhdHRlcm5fc2l6ZV9iOmEuZGlzcGxheVNpemUsdV9zY2FsZV9hOmUuZnJvbVNjYWxlLHVfc2NhbGVfYjplLnRvU2NhbGUsdV90aWxlX3VuaXRzX3RvX3BpeGVsczoxL3BlKG4sMSxyLnRyYW5zZm9ybS50aWxlWm9vbSksdV9waXhlbF9jb29yZF91cHBlcjpbZj4+MTYsaD4+MTZdLHVfcGl4ZWxfY29vcmRfbG93ZXI6WzY1NTM1JmYsNjU1MzUmaF19fShpLG8sbixhKSx7dV9tYXRyaXg6ZSx1X29wYWNpdHk6cn0pfSxKcj17ZmlsbEV4dHJ1c2lvbjpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2xpZ2h0cG9zOm5ldyB0LlVuaWZvcm0zZihlLHIudV9saWdodHBvcyksdV9saWdodGludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfbGlnaHRpbnRlbnNpdHkpLHVfbGlnaHRjb2xvcjpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfbGlnaHRjb2xvciksdV92ZXJ0aWNhbF9ncmFkaWVudDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdmVydGljYWxfZ3JhZGllbnQpLHVfb3BhY2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfb3BhY2l0eSl9fSxmaWxsRXh0cnVzaW9uUGF0dGVybjpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2xpZ2h0cG9zOm5ldyB0LlVuaWZvcm0zZihlLHIudV9saWdodHBvcyksdV9saWdodGludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfbGlnaHRpbnRlbnNpdHkpLHVfbGlnaHRjb2xvcjpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfbGlnaHRjb2xvciksdV92ZXJ0aWNhbF9ncmFkaWVudDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdmVydGljYWxfZ3JhZGllbnQpLHVfaGVpZ2h0X2ZhY3RvcjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfaGVpZ2h0X2ZhY3RvciksdV9pbWFnZTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UpLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV9waXhlbF9jb29yZF91cHBlcjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGl4ZWxfY29vcmRfdXBwZXIpLHVfcGl4ZWxfY29vcmRfbG93ZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX2xvd2VyKSx1X3NjYWxlOm5ldyB0LlVuaWZvcm0zZihlLHIudV9zY2FsZSksdV9mYWRlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9mYWRlKSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpfX0sZmlsbDpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGZpbGxQYXR0ZXJuOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleHNpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RleHNpemUpLHVfcGl4ZWxfY29vcmRfdXBwZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX3VwcGVyKSx1X3BpeGVsX2Nvb3JkX2xvd2VyOm5ldyB0LlVuaWZvcm0yZihlLHIudV9waXhlbF9jb29yZF9sb3dlciksdV9zY2FsZTpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfc2NhbGUpLHVfZmFkZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZSl9fSxmaWxsT3V0bGluZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X3dvcmxkOm5ldyB0LlVuaWZvcm0yZihlLHIudV93b3JsZCl9fSxmaWxsT3V0bGluZVBhdHRlcm46ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV93b3JsZDpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfd29ybGQpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleHNpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RleHNpemUpLHVfcGl4ZWxfY29vcmRfdXBwZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX3VwcGVyKSx1X3BpeGVsX2Nvb3JkX2xvd2VyOm5ldyB0LlVuaWZvcm0yZihlLHIudV9waXhlbF9jb29yZF9sb3dlciksdV9zY2FsZTpuZXcgdC5Vbmlmb3JtM2YoZSxyLnVfc2NhbGUpLHVfZmFkZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZSl9fSxjaXJjbGU6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3NjYWxlX3dpdGhfbWFwOm5ldyB0LlVuaWZvcm0xaShlLHIudV9zY2FsZV93aXRoX21hcCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfZXh0cnVkZV9zY2FsZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfZXh0cnVkZV9zY2FsZSksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCl9fSxjb2xsaXNpb25Cb3g6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3BpeGVsc190b190aWxlX3VuaXRzOm5ldyB0LlVuaWZvcm0xZihlLHIudV9waXhlbHNfdG9fdGlsZV91bml0cyksdV9leHRydWRlX3NjYWxlOm5ldyB0LlVuaWZvcm0yZihlLHIudV9leHRydWRlX3NjYWxlKSx1X292ZXJzY2FsZV9mYWN0b3I6bmV3IHQuVW5pZm9ybTFmKGUsci51X292ZXJzY2FsZV9mYWN0b3IpfX0sY29sbGlzaW9uQ2lyY2xlOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfaW52X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfaW52X21hdHJpeCksdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3ZpZXdwb3J0X3NpemU6bmV3IHQuVW5pZm9ybTJmKGUsci51X3ZpZXdwb3J0X3NpemUpfX0sZGVidWc6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9jb2xvcjpuZXcgdC5Vbmlmb3JtQ29sb3IoZSxyLnVfY29sb3IpLHVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfb3ZlcmxheTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfb3ZlcmxheSksdV9vdmVybGF5X3NjYWxlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9vdmVybGF5X3NjYWxlKX19LGNsaXBwaW5nTWFzazpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGhlYXRtYXA6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9leHRydWRlX3NjYWxlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9leHRydWRlX3NjYWxlKSx1X2ludGVuc2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfaW50ZW5zaXR5KSx1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KX19LGhlYXRtYXBUZXh0dXJlOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfd29ybGQ6bmV3IHQuVW5pZm9ybTJmKGUsci51X3dvcmxkKSx1X2ltYWdlOm5ldyB0LlVuaWZvcm0xaShlLHIudV9pbWFnZSksdV9jb2xvcl9yYW1wOm5ldyB0LlVuaWZvcm0xaShlLHIudV9jb2xvcl9yYW1wKSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpfX0saGlsbHNoYWRlOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X2xhdHJhbmdlOm5ldyB0LlVuaWZvcm0yZihlLHIudV9sYXRyYW5nZSksdV9saWdodDpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfbGlnaHQpLHVfc2hhZG93Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9zaGFkb3cpLHVfaGlnaGxpZ2h0Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9oaWdobGlnaHQpLHVfYWNjZW50Om5ldyB0LlVuaWZvcm1Db2xvcihlLHIudV9hY2NlbnQpfX0saGlsbHNoYWRlUHJlcGFyZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X2ltYWdlOm5ldyB0LlVuaWZvcm0xaShlLHIudV9pbWFnZSksdV9kaW1lbnNpb246bmV3IHQuVW5pZm9ybTJmKGUsci51X2RpbWVuc2lvbiksdV96b29tOm5ldyB0LlVuaWZvcm0xZihlLHIudV96b29tKSx1X21heHpvb206bmV3IHQuVW5pZm9ybTFmKGUsci51X21heHpvb20pLHVfdW5wYWNrOm5ldyB0LlVuaWZvcm00ZihlLHIudV91bnBhY2spfX0sbGluZTpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9yYXRpbyksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV91bml0c190b19waXhlbHM6bmV3IHQuVW5pZm9ybTJmKGUsci51X3VuaXRzX3RvX3BpeGVscyl9fSxsaW5lR3JhZGllbnQ6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfdW5pdHNfdG9fcGl4ZWxzOm5ldyB0LlVuaWZvcm0yZihlLHIudV91bml0c190b19waXhlbHMpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKX19LGxpbmVQYXR0ZXJuOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3VuaXRzX3RvX3BpeGVsczpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdW5pdHNfdG9fcGl4ZWxzKSx1X3NjYWxlOm5ldyB0LlVuaWZvcm0zZihlLHIudV9zY2FsZSksdV9mYWRlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9mYWRlKX19LGxpbmVTREY6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcmF0aW8pLHVfZGV2aWNlX3BpeGVsX3JhdGlvOm5ldyB0LlVuaWZvcm0xZihlLHIudV9kZXZpY2VfcGl4ZWxfcmF0aW8pLHVfdW5pdHNfdG9fcGl4ZWxzOm5ldyB0LlVuaWZvcm0yZihlLHIudV91bml0c190b19waXhlbHMpLHVfcGF0dGVybnNjYWxlX2E6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BhdHRlcm5zY2FsZV9hKSx1X3BhdHRlcm5zY2FsZV9iOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuc2NhbGVfYiksdV9zZGZnYW1tYTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2RmZ2FtbWEpLHVfaW1hZ2U6bmV3IHQuVW5pZm9ybTFpKGUsci51X2ltYWdlKSx1X3RleF95X2E6bmV3IHQuVW5pZm9ybTFmKGUsci51X3RleF95X2EpLHVfdGV4X3lfYjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfdGV4X3lfYiksdV9taXg6bmV3IHQuVW5pZm9ybTFmKGUsci51X21peCl9fSxyYXN0ZXI6ZnVuY3Rpb24oZSxyKXtyZXR1cm57dV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV90bF9wYXJlbnQ6bmV3IHQuVW5pZm9ybTJmKGUsci51X3RsX3BhcmVudCksdV9zY2FsZV9wYXJlbnQ6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NjYWxlX3BhcmVudCksdV9idWZmZXJfc2NhbGU6bmV3IHQuVW5pZm9ybTFmKGUsci51X2J1ZmZlcl9zY2FsZSksdV9mYWRlX3Q6bmV3IHQuVW5pZm9ybTFmKGUsci51X2ZhZGVfdCksdV9vcGFjaXR5Om5ldyB0LlVuaWZvcm0xZihlLHIudV9vcGFjaXR5KSx1X2ltYWdlMDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UwKSx1X2ltYWdlMTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UxKSx1X2JyaWdodG5lc3NfbG93Om5ldyB0LlVuaWZvcm0xZihlLHIudV9icmlnaHRuZXNzX2xvdyksdV9icmlnaHRuZXNzX2hpZ2g6bmV3IHQuVW5pZm9ybTFmKGUsci51X2JyaWdodG5lc3NfaGlnaCksdV9zYXR1cmF0aW9uX2ZhY3RvcjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2F0dXJhdGlvbl9mYWN0b3IpLHVfY29udHJhc3RfZmFjdG9yOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jb250cmFzdF9mYWN0b3IpLHVfc3Bpbl93ZWlnaHRzOm5ldyB0LlVuaWZvcm0zZihlLHIudV9zcGluX3dlaWdodHMpfX0sc3ltYm9sSWNvbjpmdW5jdGlvbihlLHIpe3JldHVybnt1X2lzX3NpemVfem9vbV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV96b29tX2NvbnN0YW50KSx1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSx1X3NpemVfdDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2l6ZV90KSx1X3NpemU6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NpemUpLHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSksdV9waXRjaDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcGl0Y2gpLHVfcm90YXRlX3N5bWJvbDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcm90YXRlX3N5bWJvbCksdV9hc3BlY3RfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2FzcGVjdF9yYXRpbyksdV9mYWRlX2NoYW5nZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZV9jaGFuZ2UpLHVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfbGFiZWxfcGxhbmVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9sYWJlbF9wbGFuZV9tYXRyaXgpLHVfY29vcmRfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9jb29yZF9tYXRyaXgpLHVfaXNfdGV4dDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfdGV4dCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV90ZXh0dXJlOm5ldyB0LlVuaWZvcm0xaShlLHIudV90ZXh0dXJlKX19LHN5bWJvbFNERjpmdW5jdGlvbihlLHIpe3JldHVybnt1X2lzX3NpemVfem9vbV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV96b29tX2NvbnN0YW50KSx1X2lzX3NpemVfZmVhdHVyZV9jb25zdGFudDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50KSx1X3NpemVfdDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2l6ZV90KSx1X3NpemU6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NpemUpLHVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfY2FtZXJhX3RvX2NlbnRlcl9kaXN0YW5jZSksdV9waXRjaDpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfcGl0Y2gpLHVfcm90YXRlX3N5bWJvbDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcm90YXRlX3N5bWJvbCksdV9hc3BlY3RfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2FzcGVjdF9yYXRpbyksdV9mYWRlX2NoYW5nZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZmFkZV9jaGFuZ2UpLHVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfbGFiZWxfcGxhbmVfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9sYWJlbF9wbGFuZV9tYXRyaXgpLHVfY29vcmRfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9jb29yZF9tYXRyaXgpLHVfaXNfdGV4dDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaXNfdGV4dCksdV9waXRjaF93aXRoX21hcDpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfcGl0Y2hfd2l0aF9tYXApLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV90ZXh0dXJlOm5ldyB0LlVuaWZvcm0xaShlLHIudV90ZXh0dXJlKSx1X2dhbW1hX3NjYWxlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9nYW1tYV9zY2FsZSksdV9kZXZpY2VfcGl4ZWxfcmF0aW86bmV3IHQuVW5pZm9ybTFmKGUsci51X2RldmljZV9waXhlbF9yYXRpbyksdV9pc19oYWxvOm5ldyB0LlVuaWZvcm0xaShlLHIudV9pc19oYWxvKX19LHN5bWJvbFRleHRBbmRJY29uOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfaXNfc2l6ZV96b29tX2NvbnN0YW50Om5ldyB0LlVuaWZvcm0xaShlLHIudV9pc19zaXplX3pvb21fY29uc3RhbnQpLHVfaXNfc2l6ZV9mZWF0dXJlX2NvbnN0YW50Om5ldyB0LlVuaWZvcm0xaShlLHIudV9pc19zaXplX2ZlYXR1cmVfY29uc3RhbnQpLHVfc2l6ZV90Om5ldyB0LlVuaWZvcm0xZihlLHIudV9zaXplX3QpLHVfc2l6ZTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2l6ZSksdV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9jYW1lcmFfdG9fY2VudGVyX2Rpc3RhbmNlKSx1X3BpdGNoOm5ldyB0LlVuaWZvcm0xZihlLHIudV9waXRjaCksdV9yb3RhdGVfc3ltYm9sOm5ldyB0LlVuaWZvcm0xaShlLHIudV9yb3RhdGVfc3ltYm9sKSx1X2FzcGVjdF9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfYXNwZWN0X3JhdGlvKSx1X2ZhZGVfY2hhbmdlOm5ldyB0LlVuaWZvcm0xZihlLHIudV9mYWRlX2NoYW5nZSksdV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X21hdHJpeCksdV9sYWJlbF9wbGFuZV9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X2xhYmVsX3BsYW5lX21hdHJpeCksdV9jb29yZF9tYXRyaXg6bmV3IHQuVW5pZm9ybU1hdHJpeDRmKGUsci51X2Nvb3JkX21hdHJpeCksdV9pc190ZXh0Om5ldyB0LlVuaWZvcm0xaShlLHIudV9pc190ZXh0KSx1X3BpdGNoX3dpdGhfbWFwOm5ldyB0LlVuaWZvcm0xaShlLHIudV9waXRjaF93aXRoX21hcCksdV90ZXhzaXplOm5ldyB0LlVuaWZvcm0yZihlLHIudV90ZXhzaXplKSx1X3RleHNpemVfaWNvbjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZV9pY29uKSx1X3RleHR1cmU6bmV3IHQuVW5pZm9ybTFpKGUsci51X3RleHR1cmUpLHVfdGV4dHVyZV9pY29uOm5ldyB0LlVuaWZvcm0xaShlLHIudV90ZXh0dXJlX2ljb24pLHVfZ2FtbWFfc2NhbGU6bmV3IHQuVW5pZm9ybTFmKGUsci51X2dhbW1hX3NjYWxlKSx1X2RldmljZV9waXhlbF9yYXRpbzpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfZGV2aWNlX3BpeGVsX3JhdGlvKSx1X2lzX2hhbG86bmV3IHQuVW5pZm9ybTFpKGUsci51X2lzX2hhbG8pfX0sYmFja2dyb3VuZDpmdW5jdGlvbihlLHIpe3JldHVybnt1X21hdHJpeDpuZXcgdC5Vbmlmb3JtTWF0cml4NGYoZSxyLnVfbWF0cml4KSx1X29wYWNpdHk6bmV3IHQuVW5pZm9ybTFmKGUsci51X29wYWNpdHkpLHVfY29sb3I6bmV3IHQuVW5pZm9ybUNvbG9yKGUsci51X2NvbG9yKX19LGJhY2tncm91bmRQYXR0ZXJuOmZ1bmN0aW9uKGUscil7cmV0dXJue3VfbWF0cml4Om5ldyB0LlVuaWZvcm1NYXRyaXg0ZihlLHIudV9tYXRyaXgpLHVfb3BhY2l0eTpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfb3BhY2l0eSksdV9pbWFnZTpuZXcgdC5Vbmlmb3JtMWkoZSxyLnVfaW1hZ2UpLHVfcGF0dGVybl90bF9hOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX3RsX2EpLHVfcGF0dGVybl9icl9hOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX2JyX2EpLHVfcGF0dGVybl90bF9iOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX3RsX2IpLHVfcGF0dGVybl9icl9iOm5ldyB0LlVuaWZvcm0yZihlLHIudV9wYXR0ZXJuX2JyX2IpLHVfdGV4c2l6ZTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfdGV4c2l6ZSksdV9taXg6bmV3IHQuVW5pZm9ybTFmKGUsci51X21peCksdV9wYXR0ZXJuX3NpemVfYTpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGF0dGVybl9zaXplX2EpLHVfcGF0dGVybl9zaXplX2I6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BhdHRlcm5fc2l6ZV9iKSx1X3NjYWxlX2E6bmV3IHQuVW5pZm9ybTFmKGUsci51X3NjYWxlX2EpLHVfc2NhbGVfYjpuZXcgdC5Vbmlmb3JtMWYoZSxyLnVfc2NhbGVfYiksdV9waXhlbF9jb29yZF91cHBlcjpuZXcgdC5Vbmlmb3JtMmYoZSxyLnVfcGl4ZWxfY29vcmRfdXBwZXIpLHVfcGl4ZWxfY29vcmRfbG93ZXI6bmV3IHQuVW5pZm9ybTJmKGUsci51X3BpeGVsX2Nvb3JkX2xvd2VyKSx1X3RpbGVfdW5pdHNfdG9fcGl4ZWxzOm5ldyB0LlVuaWZvcm0xZihlLHIudV90aWxlX3VuaXRzX3RvX3BpeGVscyl9fX07ZnVuY3Rpb24gS3IoZSxyLG4saSxhLG8scyl7Zm9yKHZhciBsPWUuY29udGV4dCxjPWwuZ2wsdT1lLnVzZVByb2dyYW0oImNvbGxpc2lvbkJveCIpLGY9W10saD0wLHA9MCxkPTA7ZDxpLmxlbmd0aDtkKyspe3ZhciBtPWlbZF0sZz1yLmdldFRpbGUobSksdj1nLmdldEJ1Y2tldChuKTtpZih2KXt2YXIgeT1tLnBvc01hdHJpeDswPT09YVswXSYmMD09PWFbMV18fCh5PWUudHJhbnNsYXRlUG9zTWF0cml4KG0ucG9zTWF0cml4LGcsYSxvKSk7dmFyIHg9cz92LnRleHRDb2xsaXNpb25Cb3g6di5pY29uQ29sbGlzaW9uQm94LGI9di5jb2xsaXNpb25DaXJjbGVBcnJheTtpZihiLmxlbmd0aD4wKXt2YXIgXz10LmNyZWF0ZSgpLHc9eTt0Lm11bChfLHYucGxhY2VtZW50SW52UHJvak1hdHJpeCxlLnRyYW5zZm9ybS5nbENvb3JkTWF0cml4KSx0Lm11bChfLF8sdi5wbGFjZW1lbnRWaWV3cG9ydE1hdHJpeCksZi5wdXNoKHtjaXJjbGVBcnJheTpiLGNpcmNsZU9mZnNldDpwLHRyYW5zZm9ybTp3LGludlRyYW5zZm9ybTpffSkscD1oKz1iLmxlbmd0aC80fXgmJnUuZHJhdyhsLGMuTElORVMsQXQuZGlzYWJsZWQsTXQuZGlzYWJsZWQsZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksRXQuZGlzYWJsZWQsQ3IoeSxlLnRyYW5zZm9ybSxnKSxuLmlkLHgubGF5b3V0VmVydGV4QnVmZmVyLHguaW5kZXhCdWZmZXIseC5zZWdtZW50cyxudWxsLGUudHJhbnNmb3JtLnpvb20sbnVsbCxudWxsLHguY29sbGlzaW9uVmVydGV4QnVmZmVyKX19aWYocyYmZi5sZW5ndGgpe3ZhciBUPWUudXNlUHJvZ3JhbSgiY29sbGlzaW9uQ2lyY2xlIiksaz1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDJmMWYyaTE2O2sucmVzaXplKDQqaCksay5fdHJpbSgpO2Zvcih2YXIgQT0wLE09MCxTPWY7TTxTLmxlbmd0aDtNKz0xKWZvcih2YXIgRT1TW01dLEw9MDtMPEUuY2lyY2xlQXJyYXkubGVuZ3RoLzQ7TCsrKXt2YXIgQz00KkwsUD1FLmNpcmNsZUFycmF5W0MrMF0sST1FLmNpcmNsZUFycmF5W0MrMV0sTz1FLmNpcmNsZUFycmF5W0MrMl0sej1FLmNpcmNsZUFycmF5W0MrM107ay5lbXBsYWNlKEErKyxQLEksTyx6LDApLGsuZW1wbGFjZShBKyssUCxJLE8seiwxKSxrLmVtcGxhY2UoQSsrLFAsSSxPLHosMiksay5lbXBsYWNlKEErKyxQLEksTyx6LDMpfSghcXJ8fHFyLmxlbmd0aDwyKmgpJiYocXI9ZnVuY3Rpb24oZSl7dmFyIHI9MiplLG49bmV3IHQuU3RydWN0QXJyYXlMYXlvdXQzdWk2O24ucmVzaXplKHIpLG4uX3RyaW0oKTtmb3IodmFyIGk9MDtpPHI7aSsrKXt2YXIgYT02Kmk7bi51aW50MTZbYSswXT00KmkrMCxuLnVpbnQxNlthKzFdPTQqaSsxLG4udWludDE2W2ErMl09NCppKzIsbi51aW50MTZbYSszXT00KmkrMixuLnVpbnQxNlthKzRdPTQqaSszLG4udWludDE2W2ErNV09NCppKzB9cmV0dXJuIG59KGgpKTtmb3IodmFyIEQ9bC5jcmVhdGVJbmRleEJ1ZmZlcihxciwhMCksUj1sLmNyZWF0ZVZlcnRleEJ1ZmZlcihrLHQuY29sbGlzaW9uQ2lyY2xlTGF5b3V0Lm1lbWJlcnMsITApLEY9MCxCPWY7RjxCLmxlbmd0aDtGKz0xKXt2YXIgTj1CW0ZdLGo9UHIoTi50cmFuc2Zvcm0sTi5pbnZUcmFuc2Zvcm0sZS50cmFuc2Zvcm0pO1QuZHJhdyhsLGMuVFJJQU5HTEVTLEF0LmRpc2FibGVkLE10LmRpc2FibGVkLGUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLEV0LmRpc2FibGVkLGosbi5pZCxSLEQsdC5TZWdtZW50VmVjdG9yLnNpbXBsZVNlZ21lbnQoMCwyKk4uY2lyY2xlT2Zmc2V0LE4uY2lyY2xlQXJyYXkubGVuZ3RoLE4uY2lyY2xlQXJyYXkubGVuZ3RoLzIpLG51bGwsZS50cmFuc2Zvcm0uem9vbSxudWxsLG51bGwsbnVsbCl9Ui5kZXN0cm95KCksRC5kZXN0cm95KCl9fXZhciBRcj10LmlkZW50aXR5KG5ldyBGbG9hdDMyQXJyYXkoMTYpKTtmdW5jdGlvbiAkcihlLHIsbixpLGEsbyl7dmFyIHM9dC5nZXRBbmNob3JBbGlnbm1lbnQoZSksbD0tKHMuaG9yaXpvbnRhbEFsaWduLS41KSpyLGM9LShzLnZlcnRpY2FsQWxpZ24tLjUpKm4sdT10LmV2YWx1YXRlVmFyaWFibGVPZmZzZXQoZSxpKTtyZXR1cm4gbmV3IHQuUG9pbnQoKGwvYSt1WzBdKSpvLChjL2ErdVsxXSkqbyl9ZnVuY3Rpb24gdG4oZSxyLG4saSxhLG8scyxsLGMsdSxmKXt2YXIgaD1lLnRleHQucGxhY2VkU3ltYm9sQXJyYXkscD1lLnRleHQuZHluYW1pY0xheW91dFZlcnRleEFycmF5LGQ9ZS5pY29uLmR5bmFtaWNMYXlvdXRWZXJ0ZXhBcnJheSxtPXt9O3AuY2xlYXIoKTtmb3IodmFyIGc9MDtnPGgubGVuZ3RoO2crKyl7dmFyIHY9aC5nZXQoZykseT1lLmFsbG93VmVydGljYWxQbGFjZW1lbnQmJiF2LnBsYWNlZE9yaWVudGF0aW9uLHg9di5oaWRkZW58fCF2LmNyb3NzVGlsZUlEfHx5P251bGw6aVt2LmNyb3NzVGlsZUlEXTtpZih4KXt2YXIgYj1uZXcgdC5Qb2ludCh2LmFuY2hvclgsdi5hbmNob3JZKSxfPXRlKGIsbj9sOnMpLHc9ZWUoby5jYW1lcmFUb0NlbnRlckRpc3RhbmNlLF8uc2lnbmVkRGlzdGFuY2VGcm9tQ2FtZXJhKSxUPWEuZXZhbHVhdGVTaXplRm9yRmVhdHVyZShlLnRleHRTaXplRGF0YSx1LHYpKncvdC5PTkVfRU07biYmKFQqPWUudGlsZVBpeGVsUmF0aW8vYyk7Zm9yKHZhciBrPXgud2lkdGgsQT14LmhlaWdodCxNPSRyKHguYW5jaG9yLGssQSx4LnRleHRPZmZzZXQseC50ZXh0Qm94U2NhbGUsVCksUz1uP3RlKGIuYWRkKE0pLHMpLnBvaW50Ol8ucG9pbnQuYWRkKHI/TS5yb3RhdGUoLW8uYW5nbGUpOk0pLEU9ZS5hbGxvd1ZlcnRpY2FsUGxhY2VtZW50JiZ2LnBsYWNlZE9yaWVudGF0aW9uPT09dC5Xcml0aW5nTW9kZS52ZXJ0aWNhbD9NYXRoLlBJLzI6MCxMPTA7TDx2Lm51bUdseXBocztMKyspdC5hZGREeW5hbWljQXR0cmlidXRlcyhwLFMsRSk7ZiYmdi5hc3NvY2lhdGVkSWNvbkluZGV4Pj0wJiYobVt2LmFzc29jaWF0ZWRJY29uSW5kZXhdPXtzaGlmdGVkQW5jaG9yOlMsYW5nbGU6RX0pfWVsc2UgdWUodi5udW1HbHlwaHMscCl9aWYoZil7ZC5jbGVhcigpO2Zvcih2YXIgQz1lLmljb24ucGxhY2VkU3ltYm9sQXJyYXksUD0wO1A8Qy5sZW5ndGg7UCsrKXt2YXIgST1DLmdldChQKTtpZihJLmhpZGRlbil1ZShJLm51bUdseXBocyxkKTtlbHNle3ZhciBPPW1bUF07aWYoTylmb3IodmFyIHo9MDt6PEkubnVtR2x5cGhzO3orKyl0LmFkZER5bmFtaWNBdHRyaWJ1dGVzKGQsTy5zaGlmdGVkQW5jaG9yLE8uYW5nbGUpO2Vsc2UgdWUoSS5udW1HbHlwaHMsZCl9fWUuaWNvbi5keW5hbWljTGF5b3V0VmVydGV4QnVmZmVyLnVwZGF0ZURhdGEoZCl9ZS50ZXh0LmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIudXBkYXRlRGF0YShwKX1mdW5jdGlvbiBlbih0LGUscil7cmV0dXJuIHIuaWNvbnNJblRleHQmJmU/InN5bWJvbFRleHRBbmRJY29uIjp0PyJzeW1ib2xTREYiOiJzeW1ib2xJY29uIn1mdW5jdGlvbiBybihlLHIsbixpLGEsbyxzLGwsYyx1LGYsaCl7Zm9yKHZhciBwPWUuY29udGV4dCxkPXAuZ2wsbT1lLnRyYW5zZm9ybSxnPSJtYXAiPT09bCx2PSJtYXAiPT09Yyx5PWcmJiJwb2ludCIhPT1uLmxheW91dC5nZXQoInN5bWJvbC1wbGFjZW1lbnQiKSx4PWcmJiF2JiYheSxiPXZvaWQgMCE9PW4ubGF5b3V0LmdldCgic3ltYm9sLXNvcnQta2V5IikuY29uc3RhbnRPcigxKSxfPWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMCxBdC5SZWFkT25seSksdz1uLmxheW91dC5nZXQoInRleHQtdmFyaWFibGUtYW5jaG9yIiksVD1bXSxrPTAsQT1pO2s8QS5sZW5ndGg7ays9MSl7dmFyIE09QVtrXSxTPXIuZ2V0VGlsZShNKSxFPVMuZ2V0QnVja2V0KG4pO2lmKEUpe3ZhciBMPWE/RS50ZXh0OkUuaWNvbjtpZihMJiZMLnNlZ21lbnRzLmdldCgpLmxlbmd0aCl7dmFyIEM9TC5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLFA9YXx8RS5zZGZJY29ucyxJPWE/RS50ZXh0U2l6ZURhdGE6RS5pY29uU2l6ZURhdGEsTz12fHwwIT09bS5waXRjaCx6PWUudXNlUHJvZ3JhbShlbihQLGEsRSksQyksRD10LmV2YWx1YXRlU2l6ZUZvclpvb20oSSxtLnpvb20pLFI9dm9pZCAwLEY9WzAsMF0sQj12b2lkIDAsTj12b2lkIDAsaj1udWxsLFU9dm9pZCAwO2lmKGEpe2lmKEI9Uy5nbHlwaEF0bGFzVGV4dHVyZSxOPWQuTElORUFSLFI9Uy5nbHlwaEF0bGFzVGV4dHVyZS5zaXplLEUuaWNvbnNJblRleHQpe0Y9Uy5pbWFnZUF0bGFzVGV4dHVyZS5zaXplLGo9Uy5pbWFnZUF0bGFzVGV4dHVyZTt2YXIgVj0iY29tcG9zaXRlIj09PUkua2luZHx8ImNhbWVyYSI9PT1JLmtpbmQ7VT1PfHxlLm9wdGlvbnMucm90YXRpbmd8fGUub3B0aW9ucy56b29taW5nfHxWP2QuTElORUFSOmQuTkVBUkVTVH19ZWxzZXt2YXIgSD0xIT09bi5sYXlvdXQuZ2V0KCJpY29uLXNpemUiKS5jb25zdGFudE9yKDApfHxFLmljb25zTmVlZExpbmVhcjtCPVMuaW1hZ2VBdGxhc1RleHR1cmUsTj1QfHxlLm9wdGlvbnMucm90YXRpbmd8fGUub3B0aW9ucy56b29taW5nfHxIfHxPP2QuTElORUFSOmQuTkVBUkVTVCxSPVMuaW1hZ2VBdGxhc1RleHR1cmUuc2l6ZX12YXIgcT1wZShTLDEsZS50cmFuc2Zvcm0uem9vbSksRz1RdChNLnBvc01hdHJpeCx2LGcsZS50cmFuc2Zvcm0scSksWT0kdChNLnBvc01hdHJpeCx2LGcsZS50cmFuc2Zvcm0scSksVz13JiZFLmhhc1RleHREYXRhKCksWD0ibm9uZSIhPT1uLmxheW91dC5nZXQoImljb24tdGV4dC1maXQiKSYmVyYmRS5oYXNJY29uRGF0YSgpO3kmJm5lKEUsTS5wb3NNYXRyaXgsZSxhLEcsWSx2LHUpO3ZhciBaPWUudHJhbnNsYXRlUG9zTWF0cml4KE0ucG9zTWF0cml4LFMsbyxzKSxKPXl8fGEmJnd8fFg/UXI6RyxLPWUudHJhbnNsYXRlUG9zTWF0cml4KFksUyxvLHMsITApLFE9UCYmMCE9PW4ucGFpbnQuZ2V0KGE/InRleHQtaGFsby13aWR0aCI6Imljb24taGFsby13aWR0aCIpLmNvbnN0YW50T3IoMSksJD17cHJvZ3JhbTp6LGJ1ZmZlcnM6TCx1bmlmb3JtVmFsdWVzOlA/RS5pY29uc0luVGV4dD9XcihJLmtpbmQsRCx4LHYsZSxaLEosSyxSLEYpOllyKEkua2luZCxELHgsdixlLFosSixLLGEsUiwhMCk6R3IoSS5raW5kLEQseCx2LGUsWixKLEssYSxSKSxhdGxhc1RleHR1cmU6QixhdGxhc1RleHR1cmVJY29uOmosYXRsYXNJbnRlcnBvbGF0aW9uOk4sYXRsYXNJbnRlcnBvbGF0aW9uSWNvbjpVLGlzU0RGOlAsaGFzSGFsbzpRfTtpZihiKWZvcih2YXIgdHQ9MCxldD1MLnNlZ21lbnRzLmdldCgpO3R0PGV0Lmxlbmd0aDt0dCs9MSl7dmFyIHJ0PWV0W3R0XTtULnB1c2goe3NlZ21lbnRzOm5ldyB0LlNlZ21lbnRWZWN0b3IoW3J0XSksc29ydEtleTpydC5zb3J0S2V5LHN0YXRlOiR9KX1lbHNlIFQucHVzaCh7c2VnbWVudHM6TC5zZWdtZW50cyxzb3J0S2V5OjAsc3RhdGU6JH0pfX19YiYmVC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LnNvcnRLZXktZS5zb3J0S2V5fSkpO2Zvcih2YXIgbnQ9MCxpdD1UO250PGl0Lmxlbmd0aDtudCs9MSl7dmFyIGF0PWl0W250XSxvdD1hdC5zdGF0ZTtpZihwLmFjdGl2ZVRleHR1cmUuc2V0KGQuVEVYVFVSRTApLG90LmF0bGFzVGV4dHVyZS5iaW5kKG90LmF0bGFzSW50ZXJwb2xhdGlvbixkLkNMQU1QX1RPX0VER0UpLG90LmF0bGFzVGV4dHVyZUljb24mJihwLmFjdGl2ZVRleHR1cmUuc2V0KGQuVEVYVFVSRTEpLG90LmF0bGFzVGV4dHVyZUljb24mJm90LmF0bGFzVGV4dHVyZUljb24uYmluZChvdC5hdGxhc0ludGVycG9sYXRpb25JY29uLGQuQ0xBTVBfVE9fRURHRSkpLG90LmlzU0RGKXt2YXIgc3Q9b3QudW5pZm9ybVZhbHVlcztvdC5oYXNIYWxvJiYoc3QudV9pc19oYWxvPTEsbm4ob3QuYnVmZmVycyxhdC5zZWdtZW50cyxuLGUsb3QucHJvZ3JhbSxfLGYsaCxzdCkpLHN0LnVfaXNfaGFsbz0wfW5uKG90LmJ1ZmZlcnMsYXQuc2VnbWVudHMsbixlLG90LnByb2dyYW0sXyxmLGgsb3QudW5pZm9ybVZhbHVlcyl9fWZ1bmN0aW9uIG5uKHQsZSxyLG4saSxhLG8scyxsKXt2YXIgYz1uLmNvbnRleHQsdT1jLmdsO2kuZHJhdyhjLHUuVFJJQU5HTEVTLGEsbyxzLEV0LmRpc2FibGVkLGwsci5pZCx0LmxheW91dFZlcnRleEJ1ZmZlcix0LmluZGV4QnVmZmVyLGUsci5wYWludCxuLnRyYW5zZm9ybS56b29tLHQucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChyLmlkKSx0LmR5bmFtaWNMYXlvdXRWZXJ0ZXhCdWZmZXIsdC5vcGFjaXR5VmVydGV4QnVmZmVyKX1mdW5jdGlvbiBhbih0LGUscixuLGksYSxvKXt2YXIgcyxsLGMsdSxmLGg9dC5jb250ZXh0LmdsLHA9ci5wYWludC5nZXQoImZpbGwtcGF0dGVybiIpLGQ9cCYmcC5jb25zdGFudE9yKDEpLG09ci5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzKCk7bz8obD1kJiYhci5nZXRQYWludFByb3BlcnR5KCJmaWxsLW91dGxpbmUtY29sb3IiKT8iZmlsbE91dGxpbmVQYXR0ZXJuIjoiZmlsbE91dGxpbmUiLHM9aC5MSU5FUyk6KGw9ZD8iZmlsbFBhdHRlcm4iOiJmaWxsIixzPWguVFJJQU5HTEVTKTtmb3IodmFyIGc9MCx2PW47Zzx2Lmxlbmd0aDtnKz0xKXt2YXIgeT12W2ddLHg9ZS5nZXRUaWxlKHkpO2lmKCFkfHx4LnBhdHRlcm5zTG9hZGVkKCkpe3ZhciBiPXguZ2V0QnVja2V0KHIpO2lmKGIpe3ZhciBfPWIucHJvZ3JhbUNvbmZpZ3VyYXRpb25zLmdldChyLmlkKSx3PXQudXNlUHJvZ3JhbShsLF8pO2QmJih0LmNvbnRleHQuYWN0aXZlVGV4dHVyZS5zZXQoaC5URVhUVVJFMCkseC5pbWFnZUF0bGFzVGV4dHVyZS5iaW5kKGguTElORUFSLGguQ0xBTVBfVE9fRURHRSksXy51cGRhdGVQYWludEJ1ZmZlcnMobSkpO3ZhciBUPXAuY29uc3RhbnRPcihudWxsKTtpZihUJiZ4LmltYWdlQXRsYXMpe3ZhciBrPXguaW1hZ2VBdGxhcyxBPWsucGF0dGVyblBvc2l0aW9uc1tULnRvLnRvU3RyaW5nKCldLE09ay5wYXR0ZXJuUG9zaXRpb25zW1QuZnJvbS50b1N0cmluZygpXTtBJiZNJiZfLnNldENvbnN0YW50UGF0dGVyblBvc2l0aW9ucyhBLE0pfXZhciBTPXQudHJhbnNsYXRlUG9zTWF0cml4KHkucG9zTWF0cml4LHgsci5wYWludC5nZXQoImZpbGwtdHJhbnNsYXRlIiksci5wYWludC5nZXQoImZpbGwtdHJhbnNsYXRlLWFuY2hvciIpKTtpZihvKXt1PWIuaW5kZXhCdWZmZXIyLGY9Yi5zZWdtZW50czI7dmFyIEU9W2guZHJhd2luZ0J1ZmZlcldpZHRoLGguZHJhd2luZ0J1ZmZlckhlaWdodF07Yz0iZmlsbE91dGxpbmVQYXR0ZXJuIj09PWwmJmQ/RXIoUyx0LG0seCxFKTpTcihTLEUpfWVsc2UgdT1iLmluZGV4QnVmZmVyLGY9Yi5zZWdtZW50cyxjPWQ/TXIoUyx0LG0seCk6QXIoUyk7dy5kcmF3KHQuY29udGV4dCxzLGksdC5zdGVuY2lsTW9kZUZvckNsaXBwaW5nKHkpLGEsRXQuZGlzYWJsZWQsYyxyLmlkLGIubGF5b3V0VmVydGV4QnVmZmVyLHUsZixyLnBhaW50LHQudHJhbnNmb3JtLnpvb20sXyl9fX19ZnVuY3Rpb24gb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPXQuY29udGV4dCxsPXMuZ2wsYz1yLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tcGF0dGVybiIpLHU9Yy5jb25zdGFudE9yKDEpLGY9ci5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzKCksaD1yLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tb3BhY2l0eSIpLHA9MCxkPW47cDxkLmxlbmd0aDtwKz0xKXt2YXIgbT1kW3BdLGc9ZS5nZXRUaWxlKG0pLHY9Zy5nZXRCdWNrZXQocik7aWYodil7dmFyIHk9di5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KHIuaWQpLHg9dC51c2VQcm9ncmFtKHU/ImZpbGxFeHRydXNpb25QYXR0ZXJuIjoiZmlsbEV4dHJ1c2lvbiIseSk7dSYmKHQuY29udGV4dC5hY3RpdmVUZXh0dXJlLnNldChsLlRFWFRVUkUwKSxnLmltYWdlQXRsYXNUZXh0dXJlLmJpbmQobC5MSU5FQVIsbC5DTEFNUF9UT19FREdFKSx5LnVwZGF0ZVBhaW50QnVmZmVycyhmKSk7dmFyIGI9Yy5jb25zdGFudE9yKG51bGwpO2lmKGImJmcuaW1hZ2VBdGxhcyl7dmFyIF89Zy5pbWFnZUF0bGFzLHc9Xy5wYXR0ZXJuUG9zaXRpb25zW2IudG8udG9TdHJpbmcoKV0sVD1fLnBhdHRlcm5Qb3NpdGlvbnNbYi5mcm9tLnRvU3RyaW5nKCldO3cmJlQmJnkuc2V0Q29uc3RhbnRQYXR0ZXJuUG9zaXRpb25zKHcsVCl9dmFyIGs9dC50cmFuc2xhdGVQb3NNYXRyaXgobS5wb3NNYXRyaXgsZyxyLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdHJhbnNsYXRlIiksci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLXRyYW5zbGF0ZS1hbmNob3IiKSksQT1yLnBhaW50LmdldCgiZmlsbC1leHRydXNpb24tdmVydGljYWwtZ3JhZGllbnQiKSxNPXU/a3Ioayx0LEEsaCxtLGYsZyk6VHIoayx0LEEsaCk7eC5kcmF3KHMscy5nbC5UUklBTkdMRVMsaSxhLG8sRXQuYmFja0NDVyxNLHIuaWQsdi5sYXlvdXRWZXJ0ZXhCdWZmZXIsdi5pbmRleEJ1ZmZlcix2LnNlZ21lbnRzLHIucGFpbnQsdC50cmFuc2Zvcm0uem9vbSx5KX19fWZ1bmN0aW9uIHNuKHQsZSxyLG4saSxhKXt2YXIgbz10LmNvbnRleHQscz1vLmdsLGw9ZS5mYm87aWYobCl7dmFyIGM9dC51c2VQcm9ncmFtKCJoaWxsc2hhZGUiKTtvLmFjdGl2ZVRleHR1cmUuc2V0KHMuVEVYVFVSRTApLHMuYmluZFRleHR1cmUocy5URVhUVVJFXzJELGwuY29sb3JBdHRhY2htZW50LmdldCgpKTt2YXIgdT1mdW5jdGlvbih0LGUscil7dmFyIG49ci5wYWludC5nZXQoImhpbGxzaGFkZS1zaGFkb3ctY29sb3IiKSxpPXIucGFpbnQuZ2V0KCJoaWxsc2hhZGUtaGlnaGxpZ2h0LWNvbG9yIiksYT1yLnBhaW50LmdldCgiaGlsbHNoYWRlLWFjY2VudC1jb2xvciIpLG89ci5wYWludC5nZXQoImhpbGxzaGFkZS1pbGx1bWluYXRpb24tZGlyZWN0aW9uIikqKE1hdGguUEkvMTgwKTsidmlld3BvcnQiPT09ci5wYWludC5nZXQoImhpbGxzaGFkZS1pbGx1bWluYXRpb24tYW5jaG9yIikmJihvLT10LnRyYW5zZm9ybS5hbmdsZSk7dmFyIHM9IXQub3B0aW9ucy5tb3Zpbmc7cmV0dXJue3VfbWF0cml4OnQudHJhbnNmb3JtLmNhbGN1bGF0ZVBvc01hdHJpeChlLnRpbGVJRC50b1Vud3JhcHBlZCgpLHMpLHVfaW1hZ2U6MCx1X2xhdHJhbmdlOkRyKHQsZS50aWxlSUQpLHVfbGlnaHQ6W3IucGFpbnQuZ2V0KCJoaWxsc2hhZGUtZXhhZ2dlcmF0aW9uIiksb10sdV9zaGFkb3c6bix1X2hpZ2hsaWdodDppLHVfYWNjZW50OmF9fSh0LGUscik7Yy5kcmF3KG8scy5UUklBTkdMRVMsbixpLGEsRXQuZGlzYWJsZWQsdSxyLmlkLHQucmFzdGVyQm91bmRzQnVmZmVyLHQucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXIsdC5yYXN0ZXJCb3VuZHNTZWdtZW50cyl9fWZ1bmN0aW9uIGxuKGUscixuLGksYSxvLHMpe3ZhciBsPWUuY29udGV4dCxjPWwuZ2wsdT1yLmRlbTtpZih1JiZ1LmRhdGEpe3ZhciBmPXUuZGltLGg9dS5zdHJpZGUscD11LmdldFBpeGVscygpO2lmKGwuYWN0aXZlVGV4dHVyZS5zZXQoYy5URVhUVVJFMSksbC5waXhlbFN0b3JlVW5wYWNrUHJlbXVsdGlwbHlBbHBoYS5zZXQoITEpLHIuZGVtVGV4dHVyZT1yLmRlbVRleHR1cmV8fGUuZ2V0VGlsZVRleHR1cmUoaCksci5kZW1UZXh0dXJlKXt2YXIgZD1yLmRlbVRleHR1cmU7ZC51cGRhdGUocCx7cHJlbXVsdGlwbHk6ITF9KSxkLmJpbmQoYy5ORUFSRVNULGMuQ0xBTVBfVE9fRURHRSl9ZWxzZSByLmRlbVRleHR1cmU9bmV3IHQuVGV4dHVyZShsLHAsYy5SR0JBLHtwcmVtdWx0aXBseTohMX0pLHIuZGVtVGV4dHVyZS5iaW5kKGMuTkVBUkVTVCxjLkNMQU1QX1RPX0VER0UpO2wuYWN0aXZlVGV4dHVyZS5zZXQoYy5URVhUVVJFMCk7dmFyIG09ci5mYm87aWYoIW0pe3ZhciBnPW5ldyB0LlRleHR1cmUobCx7d2lkdGg6ZixoZWlnaHQ6ZixkYXRhOm51bGx9LGMuUkdCQSk7Zy5iaW5kKGMuTElORUFSLGMuQ0xBTVBfVE9fRURHRSksKG09ci5mYm89bC5jcmVhdGVGcmFtZWJ1ZmZlcihmLGYsITApKS5jb2xvckF0dGFjaG1lbnQuc2V0KGcudGV4dHVyZSl9bC5iaW5kRnJhbWVidWZmZXIuc2V0KG0uZnJhbWVidWZmZXIpLGwudmlld3BvcnQuc2V0KFswLDAsZixmXSksZS51c2VQcm9ncmFtKCJoaWxsc2hhZGVQcmVwYXJlIikuZHJhdyhsLGMuVFJJQU5HTEVTLGEsbyxzLEV0LmRpc2FibGVkLGZ1bmN0aW9uKGUscixuKXt2YXIgaT1yLnN0cmlkZSxhPXQuY3JlYXRlKCk7cmV0dXJuIHQub3J0aG8oYSwwLHQuRVhURU5ULC10LkVYVEVOVCwwLDAsMSksdC50cmFuc2xhdGUoYSxhLFswLC10LkVYVEVOVCwwXSkse3VfbWF0cml4OmEsdV9pbWFnZToxLHVfZGltZW5zaW9uOltpLGldLHVfem9vbTplLm92ZXJzY2FsZWRaLHVfbWF4em9vbTpuLHVfdW5wYWNrOnIuZ2V0VW5wYWNrVmVjdG9yKCl9fShyLnRpbGVJRCx1LGkpLG4uaWQsZS5yYXN0ZXJCb3VuZHNCdWZmZXIsZS5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcixlLnJhc3RlckJvdW5kc1NlZ21lbnRzKSxyLm5lZWRzSGlsbHNoYWRlUHJlcGFyZT0hMX19ZnVuY3Rpb24gY24oZSxyLG4saSxhKXt2YXIgbz1pLnBhaW50LmdldCgicmFzdGVyLWZhZGUtZHVyYXRpb24iKTtpZihvPjApe3ZhciBzPXQuYnJvd3Nlci5ub3coKSxsPShzLWUudGltZUFkZGVkKS9vLGM9cj8ocy1yLnRpbWVBZGRlZCkvbzotMSx1PW4uZ2V0U291cmNlKCksZj1hLmNvdmVyaW5nWm9vbUxldmVsKHt0aWxlU2l6ZTp1LnRpbGVTaXplLHJvdW5kWm9vbTp1LnJvdW5kWm9vbX0pLGg9IXJ8fE1hdGguYWJzKHIudGlsZUlELm92ZXJzY2FsZWRaLWYpPk1hdGguYWJzKGUudGlsZUlELm92ZXJzY2FsZWRaLWYpLHA9aCYmZS5yZWZyZXNoZWRVcG9uRXhwaXJhdGlvbj8xOnQuY2xhbXAoaD9sOjEtYywwLDEpO3JldHVybiBlLnJlZnJlc2hlZFVwb25FeHBpcmF0aW9uJiZsPj0xJiYoZS5yZWZyZXNoZWRVcG9uRXhwaXJhdGlvbj0hMSkscj97b3BhY2l0eToxLG1peDoxLXB9OntvcGFjaXR5OnAsbWl4OjB9fXJldHVybntvcGFjaXR5OjEsbWl4OjB9fXZhciB1bj1uZXcgdC5Db2xvcigxLDAsMCwxKSxmbj1uZXcgdC5Db2xvcigwLDEsMCwxKSxobj1uZXcgdC5Db2xvcigwLDAsMSwxKSxwbj1uZXcgdC5Db2xvcigxLDAsMSwxKSxkbj1uZXcgdC5Db2xvcigwLDEsMSwxKTtmdW5jdGlvbiBtbih0KXt2YXIgZT10LnRyYW5zZm9ybS5wYWRkaW5nO2duKHQsdC50cmFuc2Zvcm0uaGVpZ2h0LShlLnRvcHx8MCksMyx1biksZ24odCxlLmJvdHRvbXx8MCwzLGZuKSx2bih0LGUubGVmdHx8MCwzLGhuKSx2bih0LHQudHJhbnNmb3JtLndpZHRoLShlLnJpZ2h0fHwwKSwzLHBuKTt2YXIgcj10LnRyYW5zZm9ybS5jZW50ZXJQb2ludDshZnVuY3Rpb24odCxlLHIsbil7eW4odCxlLTEsci0xMCwyLDIwLG4pLHluKHQsZS0xMCxyLTEsMjAsMixuKX0odCxyLngsdC50cmFuc2Zvcm0uaGVpZ2h0LXIueSxkbil9ZnVuY3Rpb24gZ24odCxlLHIsbil7eW4odCwwLGUrci8yLHQudHJhbnNmb3JtLndpZHRoLHIsbil9ZnVuY3Rpb24gdm4odCxlLHIsbil7eW4odCxlLXIvMiwwLHIsdC50cmFuc2Zvcm0uaGVpZ2h0LG4pfWZ1bmN0aW9uIHluKGUscixuLGksYSxvKXt2YXIgcz1lLmNvbnRleHQsbD1zLmdsO2wuZW5hYmxlKGwuU0NJU1NPUl9URVNUKSxsLnNjaXNzb3Iocip0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyxuKnQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvLGkqdC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sYSp0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbykscy5jbGVhcih7Y29sb3I6b30pLGwuZGlzYWJsZShsLlNDSVNTT1JfVEVTVCl9ZnVuY3Rpb24geG4oZSxyLG4pe3ZhciBpPWUuY29udGV4dCxhPWkuZ2wsbz1uLnBvc01hdHJpeCxzPWUudXNlUHJvZ3JhbSgiZGVidWciKSxsPUF0LmRpc2FibGVkLGM9TXQuZGlzYWJsZWQsdT1lLmNvbG9yTW9kZUZvclJlbmRlclBhc3MoKTtpLmFjdGl2ZVRleHR1cmUuc2V0KGEuVEVYVFVSRTApLGUuZW1wdHlUZXh0dXJlLmJpbmQoYS5MSU5FQVIsYS5DTEFNUF9UT19FREdFKSxzLmRyYXcoaSxhLkxJTkVfU1RSSVAsbCxjLHUsRXQuZGlzYWJsZWQsSXIobyx0LkNvbG9yLnJlZCksIiRkZWJ1ZyIsZS5kZWJ1Z0J1ZmZlcixlLnRpbGVCb3JkZXJJbmRleEJ1ZmZlcixlLmRlYnVnU2VnbWVudHMpO3ZhciBmPXIuZ2V0VGlsZUJ5SUQobi5rZXkpLmxhdGVzdFJhd1RpbGVEYXRhLGg9ZiYmZi5ieXRlTGVuZ3RofHwwLHA9TWF0aC5mbG9vcihoLzEwMjQpLGQ9ci5nZXRUaWxlKG4pLnRpbGVTaXplLG09NTEyL01hdGgubWluKGQsNTEyKSoobi5vdmVyc2NhbGVkWi9lLnRyYW5zZm9ybS56b29tKSouNSxnPW4uY2Fub25pY2FsLnRvU3RyaW5nKCk7bi5vdmVyc2NhbGVkWiE9PW4uY2Fub25pY2FsLnomJihnKz0iID0+ICIrbi5vdmVyc2NhbGVkWiksZnVuY3Rpb24odCxlKXt0LmluaXREZWJ1Z092ZXJsYXlDYW52YXMoKTt2YXIgcj10LmRlYnVnT3ZlcmxheUNhbnZhcyxuPXQuY29udGV4dC5nbCxpPXQuZGVidWdPdmVybGF5Q2FudmFzLmdldENvbnRleHQoIjJkIik7aS5jbGVhclJlY3QoMCwwLHIud2lkdGgsci5oZWlnaHQpLGkuc2hhZG93Q29sb3I9IndoaXRlIixpLnNoYWRvd0JsdXI9MixpLmxpbmVXaWR0aD0xLjUsaS5zdHJva2VTdHlsZT0id2hpdGUiLGkudGV4dEJhc2VsaW5lPSJ0b3AiLGkuZm9udD0iYm9sZCAzNnB4IE9wZW4gU2Fucywgc2Fucy1zZXJpZiIsaS5maWxsVGV4dChlLDUsNSksaS5zdHJva2VUZXh0KGUsNSw1KSx0LmRlYnVnT3ZlcmxheVRleHR1cmUudXBkYXRlKHIpLHQuZGVidWdPdmVybGF5VGV4dHVyZS5iaW5kKG4uTElORUFSLG4uQ0xBTVBfVE9fRURHRSl9KGUsZysiICIrcCsia2IiKSxzLmRyYXcoaSxhLlRSSUFOR0xFUyxsLGMsU3QuYWxwaGFCbGVuZGVkLEV0LmRpc2FibGVkLElyKG8sdC5Db2xvci50cmFuc3BhcmVudCxtKSwiJGRlYnVnIixlLmRlYnVnQnVmZmVyLGUucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXIsZS5kZWJ1Z1NlZ21lbnRzKX12YXIgYm49e3N5bWJvbDpmdW5jdGlvbihlLHIsbixpLGEpe2lmKCJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3Mpe3ZhciBvPU10LmRpc2FibGVkLHM9ZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCk7bi5sYXlvdXQuZ2V0KCJ0ZXh0LXZhcmlhYmxlLWFuY2hvciIpJiZmdW5jdGlvbihlLHIsbixpLGEsbyxzKXtmb3IodmFyIGw9ci50cmFuc2Zvcm0sYz0ibWFwIj09PWEsdT0ibWFwIj09PW8sZj0wLGg9ZTtmPGgubGVuZ3RoO2YrPTEpe3ZhciBwPWhbZl0sZD1pLmdldFRpbGUocCksbT1kLmdldEJ1Y2tldChuKTtpZihtJiZtLnRleHQmJm0udGV4dC5zZWdtZW50cy5nZXQoKS5sZW5ndGgpe3ZhciBnPW0udGV4dFNpemVEYXRhLHY9dC5ldmFsdWF0ZVNpemVGb3Jab29tKGcsbC56b29tKSx5PXBlKGQsMSxyLnRyYW5zZm9ybS56b29tKSx4PVF0KHAucG9zTWF0cml4LHUsYyxyLnRyYW5zZm9ybSx5KSxiPSJub25lIiE9PW4ubGF5b3V0LmdldCgiaWNvbi10ZXh0LWZpdCIpJiZtLmhhc0ljb25EYXRhKCk7aWYodil7dmFyIF89TWF0aC5wb3coMixsLnpvb20tZC50aWxlSUQub3ZlcnNjYWxlZFopO3RuKG0sYyx1LHMsdC5zeW1ib2xTaXplLGwseCxwLnBvc01hdHJpeCxfLHYsYil9fX19KGksZSxuLHIsbi5sYXlvdXQuZ2V0KCJ0ZXh0LXJvdGF0aW9uLWFsaWdubWVudCIpLG4ubGF5b3V0LmdldCgidGV4dC1waXRjaC1hbGlnbm1lbnQiKSxhKSwwIT09bi5wYWludC5nZXQoImljb24tb3BhY2l0eSIpLmNvbnN0YW50T3IoMSkmJnJuKGUscixuLGksITEsbi5wYWludC5nZXQoImljb24tdHJhbnNsYXRlIiksbi5wYWludC5nZXQoImljb24tdHJhbnNsYXRlLWFuY2hvciIpLG4ubGF5b3V0LmdldCgiaWNvbi1yb3RhdGlvbi1hbGlnbm1lbnQiKSxuLmxheW91dC5nZXQoImljb24tcGl0Y2gtYWxpZ25tZW50Iiksbi5sYXlvdXQuZ2V0KCJpY29uLWtlZXAtdXByaWdodCIpLG8scyksMCE9PW4ucGFpbnQuZ2V0KCJ0ZXh0LW9wYWNpdHkiKS5jb25zdGFudE9yKDEpJiZybihlLHIsbixpLCEwLG4ucGFpbnQuZ2V0KCJ0ZXh0LXRyYW5zbGF0ZSIpLG4ucGFpbnQuZ2V0KCJ0ZXh0LXRyYW5zbGF0ZS1hbmNob3IiKSxuLmxheW91dC5nZXQoInRleHQtcm90YXRpb24tYWxpZ25tZW50Iiksbi5sYXlvdXQuZ2V0KCJ0ZXh0LXBpdGNoLWFsaWdubWVudCIpLG4ubGF5b3V0LmdldCgidGV4dC1rZWVwLXVwcmlnaHQiKSxvLHMpLHIubWFwLnNob3dDb2xsaXNpb25Cb3hlcyYmKEtyKGUscixuLGksbi5wYWludC5nZXQoInRleHQtdHJhbnNsYXRlIiksbi5wYWludC5nZXQoInRleHQtdHJhbnNsYXRlLWFuY2hvciIpLCEwKSxLcihlLHIsbixpLG4ucGFpbnQuZ2V0KCJpY29uLXRyYW5zbGF0ZSIpLG4ucGFpbnQuZ2V0KCJpY29uLXRyYW5zbGF0ZS1hbmNob3IiKSwhMSkpfX0sY2lyY2xlOmZ1bmN0aW9uKGUscixuLGkpe2lmKCJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3Mpe3ZhciBhPW4ucGFpbnQuZ2V0KCJjaXJjbGUtb3BhY2l0eSIpLG89bi5wYWludC5nZXQoImNpcmNsZS1zdHJva2Utd2lkdGgiKSxzPW4ucGFpbnQuZ2V0KCJjaXJjbGUtc3Ryb2tlLW9wYWNpdHkiKSxsPXZvaWQgMCE9PW4ubGF5b3V0LmdldCgiY2lyY2xlLXNvcnQta2V5IikuY29uc3RhbnRPcigxKTtpZigwIT09YS5jb25zdGFudE9yKDEpfHwwIT09by5jb25zdGFudE9yKDEpJiYwIT09cy5jb25zdGFudE9yKDEpKXtmb3IodmFyIGM9ZS5jb250ZXh0LHU9Yy5nbCxmPWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMCxBdC5SZWFkT25seSksaD1NdC5kaXNhYmxlZCxwPWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGQ9W10sbT0wO208aS5sZW5ndGg7bSsrKXt2YXIgZz1pW21dLHY9ci5nZXRUaWxlKGcpLHk9di5nZXRCdWNrZXQobik7aWYoeSl7dmFyIHg9eS5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLGI9e3Byb2dyYW1Db25maWd1cmF0aW9uOngscHJvZ3JhbTplLnVzZVByb2dyYW0oImNpcmNsZSIseCksbGF5b3V0VmVydGV4QnVmZmVyOnkubGF5b3V0VmVydGV4QnVmZmVyLGluZGV4QnVmZmVyOnkuaW5kZXhCdWZmZXIsdW5pZm9ybVZhbHVlczpMcihlLGcsdixuKX07aWYobClmb3IodmFyIF89MCx3PXkuc2VnbWVudHMuZ2V0KCk7Xzx3Lmxlbmd0aDtfKz0xKXt2YXIgVD13W19dO2QucHVzaCh7c2VnbWVudHM6bmV3IHQuU2VnbWVudFZlY3RvcihbVF0pLHNvcnRLZXk6VC5zb3J0S2V5LHN0YXRlOmJ9KX1lbHNlIGQucHVzaCh7c2VnbWVudHM6eS5zZWdtZW50cyxzb3J0S2V5OjAsc3RhdGU6Yn0pfX1sJiZkLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuc29ydEtleS1lLnNvcnRLZXl9KSk7Zm9yKHZhciBrPTAsQT1kO2s8QS5sZW5ndGg7ays9MSl7dmFyIE09QVtrXSxTPU0uc3RhdGUsRT1TLnByb2dyYW1Db25maWd1cmF0aW9uLEw9Uy5wcm9ncmFtLEM9Uy5sYXlvdXRWZXJ0ZXhCdWZmZXIsUD1TLmluZGV4QnVmZmVyLEk9Uy51bmlmb3JtVmFsdWVzLE89TS5zZWdtZW50cztMLmRyYXcoYyx1LlRSSUFOR0xFUyxmLGgscCxFdC5kaXNhYmxlZCxJLG4uaWQsQyxQLE8sbi5wYWludCxlLnRyYW5zZm9ybS56b29tLEUpfX19fSxoZWF0bWFwOmZ1bmN0aW9uKGUscixuLGkpe2lmKDAhPT1uLnBhaW50LmdldCgiaGVhdG1hcC1vcGFjaXR5IikpaWYoIm9mZnNjcmVlbiI9PT1lLnJlbmRlclBhc3Mpe3ZhciBhPWUuY29udGV4dCxvPWEuZ2wscz1NdC5kaXNhYmxlZCxsPW5ldyBTdChbby5PTkUsby5PTkVdLHQuQ29sb3IudHJhbnNwYXJlbnQsWyEwLCEwLCEwLCEwXSk7IWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmdsO3QuYWN0aXZlVGV4dHVyZS5zZXQobi5URVhUVVJFMSksdC52aWV3cG9ydC5zZXQoWzAsMCxlLndpZHRoLzQsZS5oZWlnaHQvNF0pO3ZhciBpPXIuaGVhdG1hcEZibztpZihpKW4uYmluZFRleHR1cmUobi5URVhUVVJFXzJELGkuY29sb3JBdHRhY2htZW50LmdldCgpKSx0LmJpbmRGcmFtZWJ1ZmZlci5zZXQoaS5mcmFtZWJ1ZmZlcik7ZWxzZXt2YXIgYT1uLmNyZWF0ZVRleHR1cmUoKTtuLmJpbmRUZXh0dXJlKG4uVEVYVFVSRV8yRCxhKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9XUkFQX1Msbi5DTEFNUF9UT19FREdFKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9XUkFQX1Qsbi5DTEFNUF9UT19FREdFKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9NSU5fRklMVEVSLG4uTElORUFSKSxuLnRleFBhcmFtZXRlcmkobi5URVhUVVJFXzJELG4uVEVYVFVSRV9NQUdfRklMVEVSLG4uTElORUFSKSxpPXIuaGVhdG1hcEZibz10LmNyZWF0ZUZyYW1lYnVmZmVyKGUud2lkdGgvNCxlLmhlaWdodC80LCExKSxmdW5jdGlvbih0LGUscixuKXt2YXIgaT10LmdsLGE9dC5leHRSZW5kZXJUb1RleHR1cmVIYWxmRmxvYXQ/dC5leHRUZXh0dXJlSGFsZkZsb2F0LkhBTEZfRkxPQVRfT0VTOmkuVU5TSUdORURfQllURTtpLnRleEltYWdlMkQoaS5URVhUVVJFXzJELDAsaS5SR0JBLGUud2lkdGgvNCxlLmhlaWdodC80LDAsaS5SR0JBLGEsbnVsbCksbi5jb2xvckF0dGFjaG1lbnQuc2V0KHIpfSh0LGUsYSxpKX19KGEsZSxuKSxhLmNsZWFyKHtjb2xvcjp0LkNvbG9yLnRyYW5zcGFyZW50fSk7Zm9yKHZhciBjPTA7YzxpLmxlbmd0aDtjKyspe3ZhciB1PWlbY107aWYoIXIuaGFzUmVuZGVyYWJsZVBhcmVudCh1KSl7dmFyIGY9ci5nZXRUaWxlKHUpLGg9Zi5nZXRCdWNrZXQobik7aWYoaCl7dmFyIHA9aC5wcm9ncmFtQ29uZmlndXJhdGlvbnMuZ2V0KG4uaWQpLGQ9ZS51c2VQcm9ncmFtKCJoZWF0bWFwIixwKSxtPWUudHJhbnNmb3JtLnpvb207ZC5kcmF3KGEsby5UUklBTkdMRVMsQXQuZGlzYWJsZWQscyxsLEV0LmRpc2FibGVkLHpyKHUucG9zTWF0cml4LGYsbSxuLnBhaW50LmdldCgiaGVhdG1hcC1pbnRlbnNpdHkiKSksbi5pZCxoLmxheW91dFZlcnRleEJ1ZmZlcixoLmluZGV4QnVmZmVyLGguc2VnbWVudHMsbi5wYWludCxlLnRyYW5zZm9ybS56b29tLHApfX19YS52aWV3cG9ydC5zZXQoWzAsMCxlLndpZHRoLGUuaGVpZ2h0XSl9ZWxzZSJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3MmJihlLmNvbnRleHQuc2V0Q29sb3JNb2RlKGUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKSxmdW5jdGlvbihlLHIpe3ZhciBuPWUuY29udGV4dCxpPW4uZ2wsYT1yLmhlYXRtYXBGYm87aWYoIWEpcmV0dXJuO24uYWN0aXZlVGV4dHVyZS5zZXQoaS5URVhUVVJFMCksaS5iaW5kVGV4dHVyZShpLlRFWFRVUkVfMkQsYS5jb2xvckF0dGFjaG1lbnQuZ2V0KCkpLG4uYWN0aXZlVGV4dHVyZS5zZXQoaS5URVhUVVJFMSk7dmFyIG89ci5jb2xvclJhbXBUZXh0dXJlO298fChvPXIuY29sb3JSYW1wVGV4dHVyZT1uZXcgdC5UZXh0dXJlKG4sci5jb2xvclJhbXAsaS5SR0JBKSk7by5iaW5kKGkuTElORUFSLGkuQ0xBTVBfVE9fRURHRSksZS51c2VQcm9ncmFtKCJoZWF0bWFwVGV4dHVyZSIpLmRyYXcobixpLlRSSUFOR0xFUyxBdC5kaXNhYmxlZCxNdC5kaXNhYmxlZCxlLmNvbG9yTW9kZUZvclJlbmRlclBhc3MoKSxFdC5kaXNhYmxlZCxmdW5jdGlvbihlLHIsbixpKXt2YXIgYT10LmNyZWF0ZSgpO3Qub3J0aG8oYSwwLGUud2lkdGgsZS5oZWlnaHQsMCwwLDEpO3ZhciBvPWUuY29udGV4dC5nbDtyZXR1cm57dV9tYXRyaXg6YSx1X3dvcmxkOltvLmRyYXdpbmdCdWZmZXJXaWR0aCxvLmRyYXdpbmdCdWZmZXJIZWlnaHRdLHVfaW1hZ2U6bix1X2NvbG9yX3JhbXA6aSx1X29wYWNpdHk6ci5wYWludC5nZXQoImhlYXRtYXAtb3BhY2l0eSIpfX0oZSxyLDAsMSksci5pZCxlLnZpZXdwb3J0QnVmZmVyLGUucXVhZFRyaWFuZ2xlSW5kZXhCdWZmZXIsZS52aWV3cG9ydFNlZ21lbnRzLHIucGFpbnQsZS50cmFuc2Zvcm0uem9vbSl9KGUsbikpfSxsaW5lOmZ1bmN0aW9uKGUscixuLGkpe2lmKCJ0cmFuc2x1Y2VudCI9PT1lLnJlbmRlclBhc3Mpe3ZhciBhPW4ucGFpbnQuZ2V0KCJsaW5lLW9wYWNpdHkiKSxvPW4ucGFpbnQuZ2V0KCJsaW5lLXdpZHRoIik7aWYoMCE9PWEuY29uc3RhbnRPcigxKSYmMCE9PW8uY29uc3RhbnRPcigxKSl7dmFyIHM9ZS5kZXB0aE1vZGVGb3JTdWJsYXllcigwLEF0LlJlYWRPbmx5KSxsPWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGM9bi5wYWludC5nZXQoImxpbmUtZGFzaGFycmF5IiksdT1uLnBhaW50LmdldCgibGluZS1wYXR0ZXJuIiksZj11LmNvbnN0YW50T3IoMSksaD1uLnBhaW50LmdldCgibGluZS1ncmFkaWVudCIpLHA9bi5nZXRDcm9zc2ZhZGVQYXJhbWV0ZXJzKCksZD1mPyJsaW5lUGF0dGVybiI6Yz8ibGluZVNERiI6aD8ibGluZUdyYWRpZW50IjoibGluZSIsbT1lLmNvbnRleHQsZz1tLmdsLHY9ITA7aWYoaCl7bS5hY3RpdmVUZXh0dXJlLnNldChnLlRFWFRVUkUwKTt2YXIgeT1uLmdyYWRpZW50VGV4dHVyZTtpZighbi5ncmFkaWVudClyZXR1cm47eXx8KHk9bi5ncmFkaWVudFRleHR1cmU9bmV3IHQuVGV4dHVyZShtLG4uZ3JhZGllbnQsZy5SR0JBKSkseS5iaW5kKGcuTElORUFSLGcuQ0xBTVBfVE9fRURHRSl9Zm9yKHZhciB4PTAsYj1pO3g8Yi5sZW5ndGg7eCs9MSl7dmFyIF89Ylt4XSx3PXIuZ2V0VGlsZShfKTtpZighZnx8dy5wYXR0ZXJuc0xvYWRlZCgpKXt2YXIgVD13LmdldEJ1Y2tldChuKTtpZihUKXt2YXIgaz1ULnByb2dyYW1Db25maWd1cmF0aW9ucy5nZXQobi5pZCksQT1lLmNvbnRleHQucHJvZ3JhbS5nZXQoKSxNPWUudXNlUHJvZ3JhbShkLGspLFM9dnx8TS5wcm9ncmFtIT09QSxFPXUuY29uc3RhbnRPcihudWxsKTtpZihFJiZ3LmltYWdlQXRsYXMpe3ZhciBMPXcuaW1hZ2VBdGxhcyxDPUwucGF0dGVyblBvc2l0aW9uc1tFLnRvLnRvU3RyaW5nKCldLFA9TC5wYXR0ZXJuUG9zaXRpb25zW0UuZnJvbS50b1N0cmluZygpXTtDJiZQJiZrLnNldENvbnN0YW50UGF0dGVyblBvc2l0aW9ucyhDLFApfXZhciBJPWY/QnIoZSx3LG4scCk6Yz9OcihlLHcsbixjLHApOmg/RnIoZSx3LG4pOlJyKGUsdyxuKTtmPyhtLmFjdGl2ZVRleHR1cmUuc2V0KGcuVEVYVFVSRTApLHcuaW1hZ2VBdGxhc1RleHR1cmUuYmluZChnLkxJTkVBUixnLkNMQU1QX1RPX0VER0UpLGsudXBkYXRlUGFpbnRCdWZmZXJzKHApKTpjJiYoU3x8ZS5saW5lQXRsYXMuZGlydHkpJiYobS5hY3RpdmVUZXh0dXJlLnNldChnLlRFWFRVUkUwKSxlLmxpbmVBdGxhcy5iaW5kKG0pKSxNLmRyYXcobSxnLlRSSUFOR0xFUyxzLGUuc3RlbmNpbE1vZGVGb3JDbGlwcGluZyhfKSxsLEV0LmRpc2FibGVkLEksbi5pZCxULmxheW91dFZlcnRleEJ1ZmZlcixULmluZGV4QnVmZmVyLFQuc2VnbWVudHMsbi5wYWludCxlLnRyYW5zZm9ybS56b29tLGspLHY9ITF9fX19fX0sZmlsbDpmdW5jdGlvbihlLHIsbixpKXt2YXIgYT1uLnBhaW50LmdldCgiZmlsbC1jb2xvciIpLG89bi5wYWludC5nZXQoImZpbGwtb3BhY2l0eSIpO2lmKDAhPT1vLmNvbnN0YW50T3IoMSkpe3ZhciBzPWUuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpLGw9bi5wYWludC5nZXQoImZpbGwtcGF0dGVybiIpLGM9ZS5vcGFxdWVQYXNzRW5hYmxlZEZvckxheWVyKCkmJiFsLmNvbnN0YW50T3IoMSkmJjE9PT1hLmNvbnN0YW50T3IodC5Db2xvci50cmFuc3BhcmVudCkuYSYmMT09PW8uY29uc3RhbnRPcigwKT8ib3BhcXVlIjoidHJhbnNsdWNlbnQiO2lmKGUucmVuZGVyUGFzcz09PWMpe3ZhciB1PWUuZGVwdGhNb2RlRm9yU3VibGF5ZXIoMSwib3BhcXVlIj09PWUucmVuZGVyUGFzcz9BdC5SZWFkV3JpdGU6QXQuUmVhZE9ubHkpO2FuKGUscixuLGksdSxzLCExKX1pZigidHJhbnNsdWNlbnQiPT09ZS5yZW5kZXJQYXNzJiZuLnBhaW50LmdldCgiZmlsbC1hbnRpYWxpYXMiKSl7dmFyIGY9ZS5kZXB0aE1vZGVGb3JTdWJsYXllcihuLmdldFBhaW50UHJvcGVydHkoImZpbGwtb3V0bGluZS1jb2xvciIpPzI6MCxBdC5SZWFkT25seSk7YW4oZSxyLG4saSxmLHMsITApfX19LCJmaWxsLWV4dHJ1c2lvbiI6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLW9wYWNpdHkiKTtpZigwIT09aSYmInRyYW5zbHVjZW50Ij09PXQucmVuZGVyUGFzcyl7dmFyIGE9bmV3IEF0KHQuY29udGV4dC5nbC5MRVFVQUwsQXQuUmVhZFdyaXRlLHQuZGVwdGhSYW5nZUZvcjNEKTtpZigxIT09aXx8ci5wYWludC5nZXQoImZpbGwtZXh0cnVzaW9uLXBhdHRlcm4iKS5jb25zdGFudE9yKDEpKW9uKHQsZSxyLG4sYSxNdC5kaXNhYmxlZCxTdC5kaXNhYmxlZCksb24odCxlLHIsbixhLHQuc3RlbmNpbE1vZGVGb3IzRCgpLHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKTtlbHNle3ZhciBvPXQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpO29uKHQsZSxyLG4sYSxNdC5kaXNhYmxlZCxvKX19fSxoaWxsc2hhZGU6ZnVuY3Rpb24odCxlLHIsbil7aWYoIm9mZnNjcmVlbiI9PT10LnJlbmRlclBhc3N8fCJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3Mpe2Zvcih2YXIgaT10LmNvbnRleHQsYT1lLmdldFNvdXJjZSgpLm1heHpvb20sbz10LmRlcHRoTW9kZUZvclN1YmxheWVyKDAsQXQuUmVhZE9ubHkpLHM9dC5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksbD0idHJhbnNsdWNlbnQiPT09dC5yZW5kZXJQYXNzP3Quc3RlbmNpbENvbmZpZ0Zvck92ZXJsYXAobik6W3t9LG5dLGM9bFswXSx1PTAsZj1sWzFdO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XSxwPWUuZ2V0VGlsZShoKTtwLm5lZWRzSGlsbHNoYWRlUHJlcGFyZSYmIm9mZnNjcmVlbiI9PT10LnJlbmRlclBhc3M/bG4odCxwLHIsYSxvLE10LmRpc2FibGVkLHMpOiJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3MmJnNuKHQscCxyLG8sY1toLm92ZXJzY2FsZWRaXSxzKX1pLnZpZXdwb3J0LnNldChbMCwwLHQud2lkdGgsdC5oZWlnaHRdKX19LHJhc3RlcjpmdW5jdGlvbih0LGUscixuKXtpZigidHJhbnNsdWNlbnQiPT09dC5yZW5kZXJQYXNzJiYwIT09ci5wYWludC5nZXQoInJhc3Rlci1vcGFjaXR5IikmJm4ubGVuZ3RoKWZvcih2YXIgaT10LmNvbnRleHQsYT1pLmdsLG89ZS5nZXRTb3VyY2UoKSxzPXQudXNlUHJvZ3JhbSgicmFzdGVyIiksbD10LmNvbG9yTW9kZUZvclJlbmRlclBhc3MoKSxjPW8gaW5zdGFuY2VvZiBJP1t7fSxuXTp0LnN0ZW5jaWxDb25maWdGb3JPdmVybGFwKG4pLHU9Y1swXSxmPWNbMV0saD1mW2YubGVuZ3RoLTFdLm92ZXJzY2FsZWRaLHA9IXQub3B0aW9ucy5tb3ZpbmcsZD0wLG09ZjtkPG0ubGVuZ3RoO2QrPTEpe3ZhciBnPW1bZF0sdj10LmRlcHRoTW9kZUZvclN1YmxheWVyKGcub3ZlcnNjYWxlZFotaCwxPT09ci5wYWludC5nZXQoInJhc3Rlci1vcGFjaXR5Iik/QXQuUmVhZFdyaXRlOkF0LlJlYWRPbmx5LGEuTEVTUykseT1lLmdldFRpbGUoZykseD10LnRyYW5zZm9ybS5jYWxjdWxhdGVQb3NNYXRyaXgoZy50b1Vud3JhcHBlZCgpLHApO3kucmVnaXN0ZXJGYWRlRHVyYXRpb24oci5wYWludC5nZXQoInJhc3Rlci1mYWRlLWR1cmF0aW9uIikpO3ZhciBiPWUuZmluZExvYWRlZFBhcmVudChnLDApLF89Y24oeSxiLGUscix0LnRyYW5zZm9ybSksdz12b2lkIDAsVD12b2lkIDAsaz0ibmVhcmVzdCI9PT1yLnBhaW50LmdldCgicmFzdGVyLXJlc2FtcGxpbmciKT9hLk5FQVJFU1Q6YS5MSU5FQVI7aS5hY3RpdmVUZXh0dXJlLnNldChhLlRFWFRVUkUwKSx5LnRleHR1cmUuYmluZChrLGEuQ0xBTVBfVE9fRURHRSxhLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCksaS5hY3RpdmVUZXh0dXJlLnNldChhLlRFWFRVUkUxKSxiPyhiLnRleHR1cmUuYmluZChrLGEuQ0xBTVBfVE9fRURHRSxhLkxJTkVBUl9NSVBNQVBfTkVBUkVTVCksdz1NYXRoLnBvdygyLGIudGlsZUlELm92ZXJzY2FsZWRaLXkudGlsZUlELm92ZXJzY2FsZWRaKSxUPVt5LnRpbGVJRC5jYW5vbmljYWwueCp3JTEseS50aWxlSUQuY2Fub25pY2FsLnkqdyUxXSk6eS50ZXh0dXJlLmJpbmQoayxhLkNMQU1QX1RPX0VER0UsYS5MSU5FQVJfTUlQTUFQX05FQVJFU1QpO3ZhciBBPVZyKHgsVHx8WzAsMF0sd3x8MSxfLHIpO28gaW5zdGFuY2VvZiBJP3MuZHJhdyhpLGEuVFJJQU5HTEVTLHYsTXQuZGlzYWJsZWQsbCxFdC5kaXNhYmxlZCxBLHIuaWQsby5ib3VuZHNCdWZmZXIsdC5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcixvLmJvdW5kc1NlZ21lbnRzKTpzLmRyYXcoaSxhLlRSSUFOR0xFUyx2LHVbZy5vdmVyc2NhbGVkWl0sbCxFdC5kaXNhYmxlZCxBLHIuaWQsdC5yYXN0ZXJCb3VuZHNCdWZmZXIsdC5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcix0LnJhc3RlckJvdW5kc1NlZ21lbnRzKX19LGJhY2tncm91bmQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIucGFpbnQuZ2V0KCJiYWNrZ3JvdW5kLWNvbG9yIiksaT1yLnBhaW50LmdldCgiYmFja2dyb3VuZC1vcGFjaXR5Iik7aWYoMCE9PWkpe3ZhciBhPXQuY29udGV4dCxvPWEuZ2wscz10LnRyYW5zZm9ybSxsPXMudGlsZVNpemUsYz1yLnBhaW50LmdldCgiYmFja2dyb3VuZC1wYXR0ZXJuIik7aWYoIXQuaXNQYXR0ZXJuTWlzc2luZyhjKSl7dmFyIHU9IWMmJjE9PT1uLmEmJjE9PT1pJiZ0Lm9wYXF1ZVBhc3NFbmFibGVkRm9yTGF5ZXIoKT8ib3BhcXVlIjoidHJhbnNsdWNlbnQiO2lmKHQucmVuZGVyUGFzcz09PXUpe3ZhciBmPU10LmRpc2FibGVkLGg9dC5kZXB0aE1vZGVGb3JTdWJsYXllcigwLCJvcGFxdWUiPT09dT9BdC5SZWFkV3JpdGU6QXQuUmVhZE9ubHkpLHA9dC5jb2xvck1vZGVGb3JSZW5kZXJQYXNzKCksZD10LnVzZVByb2dyYW0oYz8iYmFja2dyb3VuZFBhdHRlcm4iOiJiYWNrZ3JvdW5kIiksbT1zLmNvdmVyaW5nVGlsZXMoe3RpbGVTaXplOmx9KTtjJiYoYS5hY3RpdmVUZXh0dXJlLnNldChvLlRFWFRVUkUwKSx0LmltYWdlTWFuYWdlci5iaW5kKHQuY29udGV4dCkpO2Zvcih2YXIgZz1yLmdldENyb3NzZmFkZVBhcmFtZXRlcnMoKSx2PTAseT1tO3Y8eS5sZW5ndGg7dis9MSl7dmFyIHg9eVt2XSxiPXQudHJhbnNmb3JtLmNhbGN1bGF0ZVBvc01hdHJpeCh4LnRvVW53cmFwcGVkKCkpLF89Yz9acihiLGksdCxjLHt0aWxlSUQ6eCx0aWxlU2l6ZTpsfSxnKTpYcihiLGksbik7ZC5kcmF3KGEsby5UUklBTkdMRVMsaCxmLHAsRXQuZGlzYWJsZWQsXyxyLmlkLHQudGlsZUV4dGVudEJ1ZmZlcix0LnF1YWRUcmlhbmdsZUluZGV4QnVmZmVyLHQudGlsZUV4dGVudFNlZ21lbnRzKX19fX19LGRlYnVnOmZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPHIubGVuZ3RoO24rKyl4bih0LGUscltuXSl9LGN1c3RvbTpmdW5jdGlvbih0LGUscil7dmFyIG49dC5jb250ZXh0LGk9ci5pbXBsZW1lbnRhdGlvbjtpZigib2Zmc2NyZWVuIj09PXQucmVuZGVyUGFzcyl7dmFyIGE9aS5wcmVyZW5kZXI7YSYmKHQuc2V0Q3VzdG9tTGF5ZXJEZWZhdWx0cygpLG4uc2V0Q29sb3JNb2RlKHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKSxhLmNhbGwoaSxuLmdsLHQudHJhbnNmb3JtLmN1c3RvbUxheWVyTWF0cml4KCkpLG4uc2V0RGlydHkoKSx0LnNldEJhc2VTdGF0ZSgpKX1lbHNlIGlmKCJ0cmFuc2x1Y2VudCI9PT10LnJlbmRlclBhc3Mpe3Quc2V0Q3VzdG9tTGF5ZXJEZWZhdWx0cygpLG4uc2V0Q29sb3JNb2RlKHQuY29sb3JNb2RlRm9yUmVuZGVyUGFzcygpKSxuLnNldFN0ZW5jaWxNb2RlKE10LmRpc2FibGVkKTt2YXIgbz0iM2QiPT09aS5yZW5kZXJpbmdNb2RlP25ldyBBdCh0LmNvbnRleHQuZ2wuTEVRVUFMLEF0LlJlYWRXcml0ZSx0LmRlcHRoUmFuZ2VGb3IzRCk6dC5kZXB0aE1vZGVGb3JTdWJsYXllcigwLEF0LlJlYWRPbmx5KTtuLnNldERlcHRoTW9kZShvKSxpLnJlbmRlcihuLmdsLHQudHJhbnNmb3JtLmN1c3RvbUxheWVyTWF0cml4KCkpLG4uc2V0RGlydHkoKSx0LnNldEJhc2VTdGF0ZSgpLG4uYmluZEZyYW1lYnVmZmVyLnNldChudWxsKX19fSxfbj1mdW5jdGlvbih0LGUpe3RoaXMuY29udGV4dD1uZXcgTHQodCksdGhpcy50cmFuc2Zvcm09ZSx0aGlzLl90aWxlVGV4dHVyZXM9e30sdGhpcy5zZXR1cCgpLHRoaXMubnVtU3VibGF5ZXJzPUN0Lm1heFVuZGVyem9vbWluZytDdC5tYXhPdmVyem9vbWluZysxLHRoaXMuZGVwdGhFcHNpbG9uPTEvTWF0aC5wb3coMiwxNiksdGhpcy5jcm9zc1RpbGVTeW1ib2xJbmRleD1uZXcgTmUsdGhpcy5ncHVUaW1lcnM9e319O19uLnByb3RvdHlwZS5yZXNpemU9ZnVuY3Rpb24oZSxyKXtpZih0aGlzLndpZHRoPWUqdC5icm93c2VyLmRldmljZVBpeGVsUmF0aW8sdGhpcy5oZWlnaHQ9cip0LmJyb3dzZXIuZGV2aWNlUGl4ZWxSYXRpbyx0aGlzLmNvbnRleHQudmlld3BvcnQuc2V0KFswLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodF0pLHRoaXMuc3R5bGUpZm9yKHZhciBuPTAsaT10aGlzLnN0eWxlLl9vcmRlcjtuPGkubGVuZ3RoO24rPTEpe3ZhciBhPWlbbl07dGhpcy5zdHlsZS5fbGF5ZXJzW2FdLnJlc2l6ZSgpfX0sX24ucHJvdG90eXBlLnNldHVwPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250ZXh0LHI9bmV3IHQuU3RydWN0QXJyYXlMYXlvdXQyaTQ7ci5lbXBsYWNlQmFjaygwLDApLHIuZW1wbGFjZUJhY2sodC5FWFRFTlQsMCksci5lbXBsYWNlQmFjaygwLHQuRVhURU5UKSxyLmVtcGxhY2VCYWNrKHQuRVhURU5ULHQuRVhURU5UKSx0aGlzLnRpbGVFeHRlbnRCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIocixHZS5tZW1iZXJzKSx0aGlzLnRpbGVFeHRlbnRTZWdtZW50cz10LlNlZ21lbnRWZWN0b3Iuc2ltcGxlU2VnbWVudCgwLDAsNCwyKTt2YXIgbj1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDJpNDtuLmVtcGxhY2VCYWNrKDAsMCksbi5lbXBsYWNlQmFjayh0LkVYVEVOVCwwKSxuLmVtcGxhY2VCYWNrKDAsdC5FWFRFTlQpLG4uZW1wbGFjZUJhY2sodC5FWFRFTlQsdC5FWFRFTlQpLHRoaXMuZGVidWdCdWZmZXI9ZS5jcmVhdGVWZXJ0ZXhCdWZmZXIobixHZS5tZW1iZXJzKSx0aGlzLmRlYnVnU2VnbWVudHM9dC5TZWdtZW50VmVjdG9yLnNpbXBsZVNlZ21lbnQoMCwwLDQsNSk7dmFyIGk9bmV3IHQuU3RydWN0QXJyYXlMYXlvdXQ0aTg7aS5lbXBsYWNlQmFjaygwLDAsMCwwKSxpLmVtcGxhY2VCYWNrKHQuRVhURU5ULDAsdC5FWFRFTlQsMCksaS5lbXBsYWNlQmFjaygwLHQuRVhURU5ULDAsdC5FWFRFTlQpLGkuZW1wbGFjZUJhY2sodC5FWFRFTlQsdC5FWFRFTlQsdC5FWFRFTlQsdC5FWFRFTlQpLHRoaXMucmFzdGVyQm91bmRzQnVmZmVyPWUuY3JlYXRlVmVydGV4QnVmZmVyKGksUC5tZW1iZXJzKSx0aGlzLnJhc3RlckJvdW5kc1NlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpO3ZhciBhPW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0Mmk0O2EuZW1wbGFjZUJhY2soMCwwKSxhLmVtcGxhY2VCYWNrKDEsMCksYS5lbXBsYWNlQmFjaygwLDEpLGEuZW1wbGFjZUJhY2soMSwxKSx0aGlzLnZpZXdwb3J0QnVmZmVyPWUuY3JlYXRlVmVydGV4QnVmZmVyKGEsR2UubWVtYmVycyksdGhpcy52aWV3cG9ydFNlZ21lbnRzPXQuU2VnbWVudFZlY3Rvci5zaW1wbGVTZWdtZW50KDAsMCw0LDIpO3ZhciBvPW5ldyB0LlN0cnVjdEFycmF5TGF5b3V0MXVpMjtvLmVtcGxhY2VCYWNrKDApLG8uZW1wbGFjZUJhY2soMSksby5lbXBsYWNlQmFjaygzKSxvLmVtcGxhY2VCYWNrKDIpLG8uZW1wbGFjZUJhY2soMCksdGhpcy50aWxlQm9yZGVySW5kZXhCdWZmZXI9ZS5jcmVhdGVJbmRleEJ1ZmZlcihvKTt2YXIgcz1uZXcgdC5TdHJ1Y3RBcnJheUxheW91dDN1aTY7cy5lbXBsYWNlQmFjaygwLDEsMikscy5lbXBsYWNlQmFjaygyLDEsMyksdGhpcy5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcj1lLmNyZWF0ZUluZGV4QnVmZmVyKHMpLHRoaXMuZW1wdHlUZXh0dXJlPW5ldyB0LlRleHR1cmUoZSx7d2lkdGg6MSxoZWlnaHQ6MSxkYXRhOm5ldyBVaW50OEFycmF5KFswLDAsMCwwXSl9LGUuZ2wuUkdCQSk7dmFyIGw9dGhpcy5jb250ZXh0LmdsO3RoaXMuc3RlbmNpbENsZWFyTW9kZT1uZXcgTXQoe2Z1bmM6bC5BTFdBWVMsbWFzazowfSwwLDI1NSxsLlpFUk8sbC5aRVJPLGwuWkVSTyl9LF9uLnByb3RvdHlwZS5jbGVhclN0ZW5jaWw9ZnVuY3Rpb24oKXt2YXIgZT10aGlzLmNvbnRleHQscj1lLmdsO3RoaXMubmV4dFN0ZW5jaWxJRD0xLHRoaXMuY3VycmVudFN0ZW5jaWxTb3VyY2U9dm9pZCAwO3ZhciBuPXQuY3JlYXRlKCk7dC5vcnRobyhuLDAsdGhpcy53aWR0aCx0aGlzLmhlaWdodCwwLDAsMSksdC5zY2FsZShuLG4sW3IuZHJhd2luZ0J1ZmZlcldpZHRoLHIuZHJhd2luZ0J1ZmZlckhlaWdodCwwXSksdGhpcy51c2VQcm9ncmFtKCJjbGlwcGluZ01hc2siKS5kcmF3KGUsci5UUklBTkdMRVMsQXQuZGlzYWJsZWQsdGhpcy5zdGVuY2lsQ2xlYXJNb2RlLFN0LmRpc2FibGVkLEV0LmRpc2FibGVkLE9yKG4pLCIkY2xpcHBpbmciLHRoaXMudmlld3BvcnRCdWZmZXIsdGhpcy5xdWFkVHJpYW5nbGVJbmRleEJ1ZmZlcix0aGlzLnZpZXdwb3J0U2VnbWVudHMpfSxfbi5wcm90b3R5cGUuX3JlbmRlclRpbGVDbGlwcGluZ01hc2tzPWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5jdXJyZW50U3RlbmNpbFNvdXJjZSE9PXQuc291cmNlJiZ0LmlzVGlsZUNsaXBwZWQoKSYmZSYmZS5sZW5ndGgpe3RoaXMuY3VycmVudFN0ZW5jaWxTb3VyY2U9dC5zb3VyY2U7dmFyIHI9dGhpcy5jb250ZXh0LG49ci5nbDt0aGlzLm5leHRTdGVuY2lsSUQrZS5sZW5ndGg+MjU2JiZ0aGlzLmNsZWFyU3RlbmNpbCgpLHIuc2V0Q29sb3JNb2RlKFN0LmRpc2FibGVkKSxyLnNldERlcHRoTW9kZShBdC5kaXNhYmxlZCk7dmFyIGk9dGhpcy51c2VQcm9ncmFtKCJjbGlwcGluZ01hc2siKTt0aGlzLl90aWxlQ2xpcHBpbmdNYXNrSURzPXt9O2Zvcih2YXIgYT0wLG89ZTthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV0sbD10aGlzLl90aWxlQ2xpcHBpbmdNYXNrSURzW3Mua2V5XT10aGlzLm5leHRTdGVuY2lsSUQrKztpLmRyYXcocixuLlRSSUFOR0xFUyxBdC5kaXNhYmxlZCxuZXcgTXQoe2Z1bmM6bi5BTFdBWVMsbWFzazowfSxsLDI1NSxuLktFRVAsbi5LRUVQLG4uUkVQTEFDRSksU3QuZGlzYWJsZWQsRXQuZGlzYWJsZWQsT3Iocy5wb3NNYXRyaXgpLCIkY2xpcHBpbmciLHRoaXMudGlsZUV4dGVudEJ1ZmZlcix0aGlzLnF1YWRUcmlhbmdsZUluZGV4QnVmZmVyLHRoaXMudGlsZUV4dGVudFNlZ21lbnRzKX19fSxfbi5wcm90b3R5cGUuc3RlbmNpbE1vZGVGb3IzRD1mdW5jdGlvbigpe3RoaXMuY3VycmVudFN0ZW5jaWxTb3VyY2U9dm9pZCAwLHRoaXMubmV4dFN0ZW5jaWxJRCsxPjI1NiYmdGhpcy5jbGVhclN0ZW5jaWwoKTt2YXIgdD10aGlzLm5leHRTdGVuY2lsSUQrKyxlPXRoaXMuY29udGV4dC5nbDtyZXR1cm4gbmV3IE10KHtmdW5jOmUuTk9URVFVQUwsbWFzazoyNTV9LHQsMjU1LGUuS0VFUCxlLktFRVAsZS5SRVBMQUNFKX0sX24ucHJvdG90eXBlLnN0ZW5jaWxNb2RlRm9yQ2xpcHBpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5jb250ZXh0LmdsO3JldHVybiBuZXcgTXQoe2Z1bmM6ZS5FUVVBTCxtYXNrOjI1NX0sdGhpcy5fdGlsZUNsaXBwaW5nTWFza0lEc1t0LmtleV0sMCxlLktFRVAsZS5LRUVQLGUuUkVQTEFDRSl9LF9uLnByb3RvdHlwZS5zdGVuY2lsQ29uZmlnRm9yT3ZlcmxhcD1mdW5jdGlvbih0KXt2YXIgZSxyPXRoaXMuY29udGV4dC5nbCxuPXQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5vdmVyc2NhbGVkWi10Lm92ZXJzY2FsZWRafSkpLGk9bltuLmxlbmd0aC0xXS5vdmVyc2NhbGVkWixhPW5bMF0ub3ZlcnNjYWxlZFotaSsxO2lmKGE+MSl7dGhpcy5jdXJyZW50U3RlbmNpbFNvdXJjZT12b2lkIDAsdGhpcy5uZXh0U3RlbmNpbElEK2E+MjU2JiZ0aGlzLmNsZWFyU3RlbmNpbCgpO2Zvcih2YXIgbz17fSxzPTA7czxhO3MrKylvW3MraV09bmV3IE10KHtmdW5jOnIuR0VRVUFMLG1hc2s6MjU1fSxzK3RoaXMubmV4dFN0ZW5jaWxJRCwyNTUsci5LRUVQLHIuS0VFUCxyLlJFUExBQ0UpO3JldHVybiB0aGlzLm5leHRTdGVuY2lsSUQrPWEsW28sbl19cmV0dXJuWyhlPXt9LGVbaV09TXQuZGlzYWJsZWQsZSksbl19LF9uLnByb3RvdHlwZS5jb2xvck1vZGVGb3JSZW5kZXJQYXNzPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5jb250ZXh0LmdsO2lmKHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcil7cmV0dXJuIG5ldyBTdChbZS5DT05TVEFOVF9DT0xPUixlLk9ORV0sbmV3IHQuQ29sb3IoMS84LDEvOCwxLzgsMCksWyEwLCEwLCEwLCEwXSl9cmV0dXJuIm9wYXF1ZSI9PT10aGlzLnJlbmRlclBhc3M/U3QudW5ibGVuZGVkOlN0LmFscGhhQmxlbmRlZH0sX24ucHJvdG90eXBlLmRlcHRoTW9kZUZvclN1YmxheWVyPWZ1bmN0aW9uKHQsZSxyKXtpZighdGhpcy5vcGFxdWVQYXNzRW5hYmxlZEZvckxheWVyKCkpcmV0dXJuIEF0LmRpc2FibGVkO3ZhciBuPTEtKCgxK3RoaXMuY3VycmVudExheWVyKSp0aGlzLm51bVN1YmxheWVycyt0KSp0aGlzLmRlcHRoRXBzaWxvbjtyZXR1cm4gbmV3IEF0KHJ8fHRoaXMuY29udGV4dC5nbC5MRVFVQUwsZSxbbixuXSl9LF9uLnByb3RvdHlwZS5vcGFxdWVQYXNzRW5hYmxlZEZvckxheWVyPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuY3VycmVudExheWVyPHRoaXMub3BhcXVlUGFzc0N1dG9mZn0sX24ucHJvdG90eXBlLnJlbmRlcj1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXM7dGhpcy5zdHlsZT1lLHRoaXMub3B0aW9ucz1yLHRoaXMubGluZUF0bGFzPWUubGluZUF0bGFzLHRoaXMuaW1hZ2VNYW5hZ2VyPWUuaW1hZ2VNYW5hZ2VyLHRoaXMuZ2x5cGhNYW5hZ2VyPWUuZ2x5cGhNYW5hZ2VyLHRoaXMuc3ltYm9sRmFkZUNoYW5nZT1lLnBsYWNlbWVudC5zeW1ib2xGYWRlQ2hhbmdlKHQuYnJvd3Nlci5ub3coKSksdGhpcy5pbWFnZU1hbmFnZXIuYmVnaW5GcmFtZSgpO3ZhciBpPXRoaXMuc3R5bGUuX29yZGVyLGE9dGhpcy5zdHlsZS5zb3VyY2VDYWNoZXM7Zm9yKHZhciBvIGluIGEpe3ZhciBzPWFbb107cy51c2VkJiZzLnByZXBhcmUodGhpcy5jb250ZXh0KX12YXIgbCxjLHU9e30sZj17fSxoPXt9O2Zvcih2YXIgcCBpbiBhKXt2YXIgZD1hW3BdO3VbcF09ZC5nZXRWaXNpYmxlQ29vcmRpbmF0ZXMoKSxmW3BdPXVbcF0uc2xpY2UoKS5yZXZlcnNlKCksaFtwXT1kLmdldFZpc2libGVDb29yZGluYXRlcyghMCkucmV2ZXJzZSgpfXRoaXMub3BhcXVlUGFzc0N1dG9mZj0xLzA7Zm9yKHZhciBtPTA7bTxpLmxlbmd0aDttKyspe3ZhciBnPWlbbV07aWYodGhpcy5zdHlsZS5fbGF5ZXJzW2ddLmlzM0QoKSl7dGhpcy5vcGFxdWVQYXNzQ3V0b2ZmPW07YnJlYWt9fXRoaXMucmVuZGVyUGFzcz0ib2Zmc2NyZWVuIjtmb3IodmFyIHY9MCx5PWk7djx5Lmxlbmd0aDt2Kz0xKXt2YXIgeD15W3ZdLGI9dGhpcy5zdHlsZS5fbGF5ZXJzW3hdO2lmKGIuaGFzT2Zmc2NyZWVuUGFzcygpJiYhYi5pc0hpZGRlbih0aGlzLnRyYW5zZm9ybS56b29tKSl7dmFyIF89ZltiLnNvdXJjZV07KCJjdXN0b20iPT09Yi50eXBlfHxfLmxlbmd0aCkmJnRoaXMucmVuZGVyTGF5ZXIodGhpcyxhW2Iuc291cmNlXSxiLF8pfX1mb3IodGhpcy5jb250ZXh0LmJpbmRGcmFtZWJ1ZmZlci5zZXQobnVsbCksdGhpcy5jb250ZXh0LmNsZWFyKHtjb2xvcjpyLnNob3dPdmVyZHJhd0luc3BlY3Rvcj90LkNvbG9yLmJsYWNrOnQuQ29sb3IudHJhbnNwYXJlbnQsZGVwdGg6MX0pLHRoaXMuY2xlYXJTdGVuY2lsKCksdGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yPXIuc2hvd092ZXJkcmF3SW5zcGVjdG9yLHRoaXMuZGVwdGhSYW5nZUZvcjNEPVswLDEtKGUuX29yZGVyLmxlbmd0aCsyKSp0aGlzLm51bVN1YmxheWVycyp0aGlzLmRlcHRoRXBzaWxvbl0sdGhpcy5yZW5kZXJQYXNzPSJvcGFxdWUiLHRoaXMuY3VycmVudExheWVyPWkubGVuZ3RoLTE7dGhpcy5jdXJyZW50TGF5ZXI+PTA7dGhpcy5jdXJyZW50TGF5ZXItLSl7dmFyIHc9dGhpcy5zdHlsZS5fbGF5ZXJzW2lbdGhpcy5jdXJyZW50TGF5ZXJdXSxUPWFbdy5zb3VyY2VdLGs9dVt3LnNvdXJjZV07dGhpcy5fcmVuZGVyVGlsZUNsaXBwaW5nTWFza3ModyxrKSx0aGlzLnJlbmRlckxheWVyKHRoaXMsVCx3LGspfWZvcih0aGlzLnJlbmRlclBhc3M9InRyYW5zbHVjZW50Iix0aGlzLmN1cnJlbnRMYXllcj0wO3RoaXMuY3VycmVudExheWVyPGkubGVuZ3RoO3RoaXMuY3VycmVudExheWVyKyspe3ZhciBBPXRoaXMuc3R5bGUuX2xheWVyc1tpW3RoaXMuY3VycmVudExheWVyXV0sTT1hW0Euc291cmNlXSxTPSgic3ltYm9sIj09PUEudHlwZT9oOmYpW0Euc291cmNlXTt0aGlzLl9yZW5kZXJUaWxlQ2xpcHBpbmdNYXNrcyhBLHVbQS5zb3VyY2VdKSx0aGlzLnJlbmRlckxheWVyKHRoaXMsTSxBLFMpfXRoaXMub3B0aW9ucy5zaG93VGlsZUJvdW5kYXJpZXMmJih0LnZhbHVlcyh0aGlzLnN0eWxlLl9sYXllcnMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc291cmNlJiYhdC5pc0hpZGRlbihuLnRyYW5zZm9ybS56b29tKSYmKHQuc291cmNlIT09KGMmJmMuaWQpJiYoYz1uLnN0eWxlLnNvdXJjZUNhY2hlc1t0LnNvdXJjZV0pLCghbHx8bC5nZXRTb3VyY2UoKS5tYXh6b29tPGMuZ2V0U291cmNlKCkubWF4em9vbSkmJihsPWMpKX0pKSxsJiZibi5kZWJ1Zyh0aGlzLGwsbC5nZXRWaXNpYmxlQ29vcmRpbmF0ZXMoKSkpO3RoaXMub3B0aW9ucy5zaG93UGFkZGluZyYmbW4odGhpcyksdGhpcy5jb250ZXh0LnNldERlZmF1bHQoKX0sX24ucHJvdG90eXBlLnJlbmRlckxheWVyPWZ1bmN0aW9uKHQsZSxyLG4pe3IuaXNIaWRkZW4odGhpcy50cmFuc2Zvcm0uem9vbSl8fCgiYmFja2dyb3VuZCI9PT1yLnR5cGV8fCJjdXN0b20iPT09ci50eXBlfHxuLmxlbmd0aCkmJih0aGlzLmlkPXIuaWQsdGhpcy5ncHVUaW1pbmdTdGFydChyKSxibltyLnR5cGVdKHQsZSxyLG4sdGhpcy5zdHlsZS5wbGFjZW1lbnQudmFyaWFibGVPZmZzZXRzKSx0aGlzLmdwdVRpbWluZ0VuZCgpKX0sX24ucHJvdG90eXBlLmdwdVRpbWluZ1N0YXJ0PWZ1bmN0aW9uKHQpe2lmKHRoaXMub3B0aW9ucy5ncHVUaW1pbmcpe3ZhciBlPXRoaXMuY29udGV4dC5leHRUaW1lclF1ZXJ5LHI9dGhpcy5ncHVUaW1lcnNbdC5pZF07cnx8KHI9dGhpcy5ncHVUaW1lcnNbdC5pZF09e2NhbGxzOjAsY3B1VGltZTowLHF1ZXJ5OmUuY3JlYXRlUXVlcnlFWFQoKX0pLHIuY2FsbHMrKyxlLmJlZ2luUXVlcnlFWFQoZS5USU1FX0VMQVBTRURfRVhULHIucXVlcnkpfX0sX24ucHJvdG90eXBlLmdwdVRpbWluZ0VuZD1mdW5jdGlvbigpe2lmKHRoaXMub3B0aW9ucy5ncHVUaW1pbmcpe3ZhciB0PXRoaXMuY29udGV4dC5leHRUaW1lclF1ZXJ5O3QuZW5kUXVlcnlFWFQodC5USU1FX0VMQVBTRURfRVhUKX19LF9uLnByb3RvdHlwZS5jb2xsZWN0R3B1VGltZXJzPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ncHVUaW1lcnM7cmV0dXJuIHRoaXMuZ3B1VGltZXJzPXt9LHR9LF9uLnByb3RvdHlwZS5xdWVyeUdwdVRpbWVycz1mdW5jdGlvbih0KXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdCl7dmFyIG49dFtyXSxpPXRoaXMuY29udGV4dC5leHRUaW1lclF1ZXJ5LGE9aS5nZXRRdWVyeU9iamVjdEVYVChuLnF1ZXJ5LGkuUVVFUllfUkVTVUxUX0VYVCkvMWU2O2kuZGVsZXRlUXVlcnlFWFQobi5xdWVyeSksZVtyXT1hfXJldHVybiBlfSxfbi5wcm90b3R5cGUudHJhbnNsYXRlUG9zTWF0cml4PWZ1bmN0aW9uKGUscixuLGksYSl7aWYoIW5bMF0mJiFuWzFdKXJldHVybiBlO3ZhciBvPWE/Im1hcCI9PT1pP3RoaXMudHJhbnNmb3JtLmFuZ2xlOjA6InZpZXdwb3J0Ij09PWk/LXRoaXMudHJhbnNmb3JtLmFuZ2xlOjA7aWYobyl7dmFyIHM9TWF0aC5zaW4obyksbD1NYXRoLmNvcyhvKTtuPVtuWzBdKmwtblsxXSpzLG5bMF0qcytuWzFdKmxdfXZhciBjPVthP25bMF06cGUocixuWzBdLHRoaXMudHJhbnNmb3JtLnpvb20pLGE/blsxXTpwZShyLG5bMV0sdGhpcy50cmFuc2Zvcm0uem9vbSksMF0sdT1uZXcgRmxvYXQzMkFycmF5KDE2KTtyZXR1cm4gdC50cmFuc2xhdGUodSxlLGMpLHV9LF9uLnByb3RvdHlwZS5zYXZlVGlsZVRleHR1cmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZVRleHR1cmVzW3Quc2l6ZVswXV07ZT9lLnB1c2godCk6dGhpcy5fdGlsZVRleHR1cmVzW3Quc2l6ZVswXV09W3RdfSxfbi5wcm90b3R5cGUuZ2V0VGlsZVRleHR1cmU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdGlsZVRleHR1cmVzW3RdO3JldHVybiBlJiZlLmxlbmd0aD4wP2UucG9wKCk6bnVsbH0sX24ucHJvdG90eXBlLmlzUGF0dGVybk1pc3Npbmc9ZnVuY3Rpb24odCl7aWYoIXQpcmV0dXJuITE7aWYoIXQuZnJvbXx8IXQudG8pcmV0dXJuITA7dmFyIGU9dGhpcy5pbWFnZU1hbmFnZXIuZ2V0UGF0dGVybih0LmZyb20udG9TdHJpbmcoKSkscj10aGlzLmltYWdlTWFuYWdlci5nZXRQYXR0ZXJuKHQudG8udG9TdHJpbmcoKSk7cmV0dXJuIWV8fCFyfSxfbi5wcm90b3R5cGUudXNlUHJvZ3JhbT1mdW5jdGlvbih0LGUpe3RoaXMuY2FjaGU9dGhpcy5jYWNoZXx8e307dmFyIHI9IiIrdCsoZT9lLmNhY2hlS2V5OiIiKSsodGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yPyIvb3ZlcmRyYXciOiIiKTtyZXR1cm4gdGhpcy5jYWNoZVtyXXx8KHRoaXMuY2FjaGVbcl09bmV3IF9yKHRoaXMuY29udGV4dCx4clt0XSxlLEpyW3RdLHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3RvcikpLHRoaXMuY2FjaGVbcl19LF9uLnByb3RvdHlwZS5zZXRDdXN0b21MYXllckRlZmF1bHRzPWZ1bmN0aW9uKCl7dGhpcy5jb250ZXh0LnVuYmluZFZBTygpLHRoaXMuY29udGV4dC5jdWxsRmFjZS5zZXREZWZhdWx0KCksdGhpcy5jb250ZXh0LmFjdGl2ZVRleHR1cmUuc2V0RGVmYXVsdCgpLHRoaXMuY29udGV4dC5waXhlbFN0b3JlVW5wYWNrLnNldERlZmF1bHQoKSx0aGlzLmNvbnRleHQucGl4ZWxTdG9yZVVucGFja1ByZW11bHRpcGx5QWxwaGEuc2V0RGVmYXVsdCgpLHRoaXMuY29udGV4dC5waXhlbFN0b3JlVW5wYWNrRmxpcFkuc2V0RGVmYXVsdCgpfSxfbi5wcm90b3R5cGUuc2V0QmFzZVN0YXRlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5jb250ZXh0LmdsO3RoaXMuY29udGV4dC5jdWxsRmFjZS5zZXQoITEpLHRoaXMuY29udGV4dC52aWV3cG9ydC5zZXQoWzAsMCx0aGlzLndpZHRoLHRoaXMuaGVpZ2h0XSksdGhpcy5jb250ZXh0LmJsZW5kRXF1YXRpb24uc2V0KHQuRlVOQ19BREQpfSxfbi5wcm90b3R5cGUuaW5pdERlYnVnT3ZlcmxheUNhbnZhcz1mdW5jdGlvbigpe2lmKG51bGw9PXRoaXMuZGVidWdPdmVybGF5Q2FudmFzKXt0aGlzLmRlYnVnT3ZlcmxheUNhbnZhcz10LndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKSx0aGlzLmRlYnVnT3ZlcmxheUNhbnZhcy53aWR0aD01MTIsdGhpcy5kZWJ1Z092ZXJsYXlDYW52YXMuaGVpZ2h0PTUxMjt2YXIgZT10aGlzLmNvbnRleHQuZ2w7dGhpcy5kZWJ1Z092ZXJsYXlUZXh0dXJlPW5ldyB0LlRleHR1cmUodGhpcy5jb250ZXh0LHRoaXMuZGVidWdPdmVybGF5Q2FudmFzLGUuUkdCQSl9fSxfbi5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZW1wdHlUZXh0dXJlLmRlc3Ryb3koKSx0aGlzLmRlYnVnT3ZlcmxheVRleHR1cmUmJnRoaXMuZGVidWdPdmVybGF5VGV4dHVyZS5kZXN0cm95KCl9O3ZhciB3bj1mdW5jdGlvbih0LGUpe3RoaXMucG9pbnRzPXQsdGhpcy5wbGFuZXM9ZX07d24uZnJvbUludlByb2plY3Rpb25NYXRyaXg9ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPU1hdGgucG93KDIsbiksYT1bWy0xLDEsLTEsMV0sWzEsMSwtMSwxXSxbMSwtMSwtMSwxXSxbLTEsLTEsLTEsMV0sWy0xLDEsMSwxXSxbMSwxLDEsMV0sWzEsLTEsMSwxXSxbLTEsLTEsMSwxXV0ubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gdC50cmFuc2Zvcm1NYXQ0KFtdLHIsZSl9KSkubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5zY2FsZSQxKFtdLGUsMS9lWzNdL3IqaSl9KSksbz1bWzAsMSwyXSxbNiw1LDRdLFswLDMsN10sWzIsMSw1XSxbMywyLDZdLFswLDQsNV1dLm1hcCgoZnVuY3Rpb24oZSl7dmFyIHI9dC5zdWIoW10sYVtlWzBdXSxhW2VbMV1dKSxuPXQuc3ViKFtdLGFbZVsyXV0sYVtlWzFdXSksaT10Lm5vcm1hbGl6ZShbXSx0LmNyb3NzKFtdLHIsbikpLG89LXQuZG90KGksYVtlWzFdXSk7cmV0dXJuIGkuY29uY2F0KG8pfSkpO3JldHVybiBuZXcgd24oYSxvKX07dmFyIFRuPWZ1bmN0aW9uKGUscil7dGhpcy5taW49ZSx0aGlzLm1heD1yLHRoaXMuY2VudGVyPXQuc2NhbGUkMihbXSx0LmFkZChbXSx0aGlzLm1pbix0aGlzLm1heCksLjUpfTtUbi5wcm90b3R5cGUucXVhZHJhbnQ9ZnVuY3Rpb24oZSl7Zm9yKHZhciByPVtlJTI9PTAsZTwyXSxuPXQuY2xvbmUkMih0aGlzLm1pbiksaT10LmNsb25lJDIodGhpcy5tYXgpLGE9MDthPHIubGVuZ3RoO2ErKyluW2FdPXJbYV0/dGhpcy5taW5bYV06dGhpcy5jZW50ZXJbYV0saVthXT1yW2FdP3RoaXMuY2VudGVyW2FdOnRoaXMubWF4W2FdO3JldHVybiBpWzJdPXRoaXMubWF4WzJdLG5ldyBUbihuLGkpfSxUbi5wcm90b3R5cGUuZGlzdGFuY2VYPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heChNYXRoLm1pbih0aGlzLm1heFswXSx0WzBdKSx0aGlzLm1pblswXSktdFswXX0sVG4ucHJvdG90eXBlLmRpc3RhbmNlWT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5taW4odGhpcy5tYXhbMV0sdFsxXSksdGhpcy5taW5bMV0pLXRbMV19LFRuLnByb3RvdHlwZS5pbnRlcnNlY3RzPWZ1bmN0aW9uKGUpe2Zvcih2YXIgcj1bW3RoaXMubWluWzBdLHRoaXMubWluWzFdLDAsMV0sW3RoaXMubWF4WzBdLHRoaXMubWluWzFdLDAsMV0sW3RoaXMubWF4WzBdLHRoaXMubWF4WzFdLDAsMV0sW3RoaXMubWluWzBdLHRoaXMubWF4WzFdLDAsMV1dLG49ITAsaT0wO2k8ZS5wbGFuZXMubGVuZ3RoO2krKyl7Zm9yKHZhciBhPWUucGxhbmVzW2ldLG89MCxzPTA7czxyLmxlbmd0aDtzKyspbys9dC5kb3QkMShhLHJbc10pPj0wO2lmKDA9PT1vKXJldHVybiAwO28hPT1yLmxlbmd0aCYmKG49ITEpfWlmKG4pcmV0dXJuIDI7Zm9yKHZhciBsPTA7bDwzO2wrKyl7Zm9yKHZhciBjPU51bWJlci5NQVhfVkFMVUUsdT0tTnVtYmVyLk1BWF9WQUxVRSxmPTA7ZjxlLnBvaW50cy5sZW5ndGg7ZisrKXt2YXIgaD1lLnBvaW50c1tmXVtsXS10aGlzLm1pbltsXTtjPU1hdGgubWluKGMsaCksdT1NYXRoLm1heCh1LGgpfWlmKHU8MHx8Yz50aGlzLm1heFtsXS10aGlzLm1pbltsXSlyZXR1cm4gMH1yZXR1cm4gMX07dmFyIGtuPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHZvaWQgMD09PXQmJih0PTApLHZvaWQgMD09PWUmJihlPTApLHZvaWQgMD09PXImJihyPTApLHZvaWQgMD09PW4mJihuPTApLGlzTmFOKHQpfHx0PDB8fGlzTmFOKGUpfHxlPDB8fGlzTmFOKHIpfHxyPDB8fGlzTmFOKG4pfHxuPDApdGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIHZhbHVlIGZvciBlZGdlLWluc2V0cywgdG9wLCBib3R0b20sIGxlZnQgYW5kIHJpZ2h0IG11c3QgYWxsIGJlIG51bWJlcnMiKTt0aGlzLnRvcD10LHRoaXMuYm90dG9tPWUsdGhpcy5sZWZ0PXIsdGhpcy5yaWdodD1ufTtrbi5wcm90b3R5cGUuaW50ZXJwb2xhdGU9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiBudWxsIT1yLnRvcCYmbnVsbCE9ZS50b3AmJih0aGlzLnRvcD10Lm51bWJlcihlLnRvcCxyLnRvcCxuKSksbnVsbCE9ci5ib3R0b20mJm51bGwhPWUuYm90dG9tJiYodGhpcy5ib3R0b209dC5udW1iZXIoZS5ib3R0b20sci5ib3R0b20sbikpLG51bGwhPXIubGVmdCYmbnVsbCE9ZS5sZWZ0JiYodGhpcy5sZWZ0PXQubnVtYmVyKGUubGVmdCxyLmxlZnQsbikpLG51bGwhPXIucmlnaHQmJm51bGwhPWUucmlnaHQmJih0aGlzLnJpZ2h0PXQubnVtYmVyKGUucmlnaHQsci5yaWdodCxuKSksdGhpc30sa24ucHJvdG90eXBlLmdldENlbnRlcj1mdW5jdGlvbihlLHIpe3ZhciBuPXQuY2xhbXAoKHRoaXMubGVmdCtlLXRoaXMucmlnaHQpLzIsMCxlKSxpPXQuY2xhbXAoKHRoaXMudG9wK3ItdGhpcy5ib3R0b20pLzIsMCxyKTtyZXR1cm4gbmV3IHQuUG9pbnQobixpKX0sa24ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50b3A9PT10LnRvcCYmdGhpcy5ib3R0b209PT10LmJvdHRvbSYmdGhpcy5sZWZ0PT09dC5sZWZ0JiZ0aGlzLnJpZ2h0PT09dC5yaWdodH0sa24ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBrbih0aGlzLnRvcCx0aGlzLmJvdHRvbSx0aGlzLmxlZnQsdGhpcy5yaWdodCl9LGtuLnByb3RvdHlwZS50b0pTT049ZnVuY3Rpb24oKXtyZXR1cm57dG9wOnRoaXMudG9wLGJvdHRvbTp0aGlzLmJvdHRvbSxsZWZ0OnRoaXMubGVmdCxyaWdodDp0aGlzLnJpZ2h0fX07dmFyIEFuPWZ1bmN0aW9uKGUscixuLGksYSl7dGhpcy50aWxlU2l6ZT01MTIsdGhpcy5tYXhWYWxpZExhdGl0dWRlPTg1LjA1MTEyOSx0aGlzLl9yZW5kZXJXb3JsZENvcGllcz12b2lkIDA9PT1hfHxhLHRoaXMuX21pblpvb209ZXx8MCx0aGlzLl9tYXhab29tPXJ8fDIyLHRoaXMuX21pblBpdGNoPW51bGw9PW4/MDpuLHRoaXMuX21heFBpdGNoPW51bGw9PWk/NjA6aSx0aGlzLnNldE1heEJvdW5kcygpLHRoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMuX2NlbnRlcj1uZXcgdC5MbmdMYXQoMCwwKSx0aGlzLnpvb209MCx0aGlzLmFuZ2xlPTAsdGhpcy5fZm92PS42NDM1MDExMDg3OTMyODQ0LHRoaXMuX3BpdGNoPTAsdGhpcy5fdW5tb2RpZmllZD0hMCx0aGlzLl9lZGdlSW5zZXRzPW5ldyBrbix0aGlzLl9wb3NNYXRyaXhDYWNoZT17fSx0aGlzLl9hbGlnbmVkUG9zTWF0cml4Q2FjaGU9e319LE1uPXttaW5ab29tOntjb25maWd1cmFibGU6ITB9LG1heFpvb206e2NvbmZpZ3VyYWJsZTohMH0sbWluUGl0Y2g6e2NvbmZpZ3VyYWJsZTohMH0sbWF4UGl0Y2g6e2NvbmZpZ3VyYWJsZTohMH0scmVuZGVyV29ybGRDb3BpZXM6e2NvbmZpZ3VyYWJsZTohMH0sd29ybGRTaXplOntjb25maWd1cmFibGU6ITB9LGNlbnRlck9mZnNldDp7Y29uZmlndXJhYmxlOiEwfSxzaXplOntjb25maWd1cmFibGU6ITB9LGJlYXJpbmc6e2NvbmZpZ3VyYWJsZTohMH0scGl0Y2g6e2NvbmZpZ3VyYWJsZTohMH0sZm92Ontjb25maWd1cmFibGU6ITB9LHpvb206e2NvbmZpZ3VyYWJsZTohMH0sY2VudGVyOntjb25maWd1cmFibGU6ITB9LHBhZGRpbmc6e2NvbmZpZ3VyYWJsZTohMH0sY2VudGVyUG9pbnQ6e2NvbmZpZ3VyYWJsZTohMH0sdW5tb2RpZmllZDp7Y29uZmlndXJhYmxlOiEwfSxwb2ludDp7Y29uZmlndXJhYmxlOiEwfX07QW4ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKCl7dmFyIHQ9bmV3IEFuKHRoaXMuX21pblpvb20sdGhpcy5fbWF4Wm9vbSx0aGlzLl9taW5QaXRjaCx0aGlzLm1heFBpdGNoLHRoaXMuX3JlbmRlcldvcmxkQ29waWVzKTtyZXR1cm4gdC50aWxlU2l6ZT10aGlzLnRpbGVTaXplLHQubGF0UmFuZ2U9dGhpcy5sYXRSYW5nZSx0LndpZHRoPXRoaXMud2lkdGgsdC5oZWlnaHQ9dGhpcy5oZWlnaHQsdC5fY2VudGVyPXRoaXMuX2NlbnRlcix0Lnpvb209dGhpcy56b29tLHQuYW5nbGU9dGhpcy5hbmdsZSx0Ll9mb3Y9dGhpcy5fZm92LHQuX3BpdGNoPXRoaXMuX3BpdGNoLHQuX3VubW9kaWZpZWQ9dGhpcy5fdW5tb2RpZmllZCx0Ll9lZGdlSW5zZXRzPXRoaXMuX2VkZ2VJbnNldHMuY2xvbmUoKSx0Ll9jYWxjTWF0cmljZXMoKSx0fSxNbi5taW5ab29tLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5ab29tfSxNbi5taW5ab29tLnNldD1mdW5jdGlvbih0KXt0aGlzLl9taW5ab29tIT09dCYmKHRoaXMuX21pblpvb209dCx0aGlzLnpvb209TWF0aC5tYXgodGhpcy56b29tLHQpKX0sTW4ubWF4Wm9vbS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWF4Wm9vbX0sTW4ubWF4Wm9vbS5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fbWF4Wm9vbSE9PXQmJih0aGlzLl9tYXhab29tPXQsdGhpcy56b29tPU1hdGgubWluKHRoaXMuem9vbSx0KSl9LE1uLm1pblBpdGNoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5QaXRjaH0sTW4ubWluUGl0Y2guc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX21pblBpdGNoIT09dCYmKHRoaXMuX21pblBpdGNoPXQsdGhpcy5waXRjaD1NYXRoLm1heCh0aGlzLnBpdGNoLHQpKX0sTW4ubWF4UGl0Y2guZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heFBpdGNofSxNbi5tYXhQaXRjaC5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fbWF4UGl0Y2ghPT10JiYodGhpcy5fbWF4UGl0Y2g9dCx0aGlzLnBpdGNoPU1hdGgubWluKHRoaXMucGl0Y2gsdCkpfSxNbi5yZW5kZXJXb3JsZENvcGllcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVuZGVyV29ybGRDb3BpZXN9LE1uLnJlbmRlcldvcmxkQ29waWVzLnNldD1mdW5jdGlvbih0KXt2b2lkIDA9PT10P3Q9ITA6bnVsbD09PXQmJih0PSExKSx0aGlzLl9yZW5kZXJXb3JsZENvcGllcz10fSxNbi53b3JsZFNpemUuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGlsZVNpemUqdGhpcy5zY2FsZX0sTW4uY2VudGVyT2Zmc2V0LmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmNlbnRlclBvaW50Ll9zdWIodGhpcy5zaXplLl9kaXYoMikpfSxNbi5zaXplLmdldD1mdW5jdGlvbigpe3JldHVybiBuZXcgdC5Qb2ludCh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KX0sTW4uYmVhcmluZy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4tdGhpcy5hbmdsZS9NYXRoLlBJKjE4MH0sTW4uYmVhcmluZy5zZXQ9ZnVuY3Rpb24oZSl7dmFyIHI9LXQud3JhcChlLC0xODAsMTgwKSpNYXRoLlBJLzE4MDt0aGlzLmFuZ2xlIT09ciYmKHRoaXMuX3VubW9kaWZpZWQ9ITEsdGhpcy5hbmdsZT1yLHRoaXMuX2NhbGNNYXRyaWNlcygpLHRoaXMucm90YXRpb25NYXRyaXg9dC5jcmVhdGUkMigpLHQucm90YXRlKHRoaXMucm90YXRpb25NYXRyaXgsdGhpcy5yb3RhdGlvbk1hdHJpeCx0aGlzLmFuZ2xlKSl9LE1uLnBpdGNoLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9waXRjaC9NYXRoLlBJKjE4MH0sTW4ucGl0Y2guc2V0PWZ1bmN0aW9uKGUpe3ZhciByPXQuY2xhbXAoZSx0aGlzLm1pblBpdGNoLHRoaXMubWF4UGl0Y2gpLzE4MCpNYXRoLlBJO3RoaXMuX3BpdGNoIT09ciYmKHRoaXMuX3VubW9kaWZpZWQ9ITEsdGhpcy5fcGl0Y2g9cix0aGlzLl9jYWxjTWF0cmljZXMoKSl9LE1uLmZvdi5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZm92L01hdGguUEkqMTgwfSxNbi5mb3Yuc2V0PWZ1bmN0aW9uKHQpe3Q9TWF0aC5tYXgoLjAxLE1hdGgubWluKDYwLHQpKSx0aGlzLl9mb3YhPT10JiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLl9mb3Y9dC8xODAqTWF0aC5QSSx0aGlzLl9jYWxjTWF0cmljZXMoKSl9LE1uLnpvb20uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3pvb219LE1uLnpvb20uc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWluKE1hdGgubWF4KHQsdGhpcy5taW5ab29tKSx0aGlzLm1heFpvb20pO3RoaXMuX3pvb20hPT1lJiYodGhpcy5fdW5tb2RpZmllZD0hMSx0aGlzLl96b29tPWUsdGhpcy5zY2FsZT10aGlzLnpvb21TY2FsZShlKSx0aGlzLnRpbGVab29tPU1hdGguZmxvb3IoZSksdGhpcy56b29tRnJhY3Rpb249ZS10aGlzLnRpbGVab29tLHRoaXMuX2NvbnN0cmFpbigpLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0sTW4uY2VudGVyLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jZW50ZXJ9LE1uLmNlbnRlci5zZXQ9ZnVuY3Rpb24odCl7dC5sYXQ9PT10aGlzLl9jZW50ZXIubGF0JiZ0LmxuZz09PXRoaXMuX2NlbnRlci5sbmd8fCh0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuX2NlbnRlcj10LHRoaXMuX2NvbnN0cmFpbigpLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0sTW4ucGFkZGluZy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWRnZUluc2V0cy50b0pTT04oKX0sTW4ucGFkZGluZy5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fZWRnZUluc2V0cy5lcXVhbHModCl8fCh0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuX2VkZ2VJbnNldHMuaW50ZXJwb2xhdGUodGhpcy5fZWRnZUluc2V0cyx0LDEpLHRoaXMuX2NhbGNNYXRyaWNlcygpKX0sTW4uY2VudGVyUG9pbnQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VkZ2VJbnNldHMuZ2V0Q2VudGVyKHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpfSxBbi5wcm90b3R5cGUuaXNQYWRkaW5nRXF1YWw9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2VkZ2VJbnNldHMuZXF1YWxzKHQpfSxBbi5wcm90b3R5cGUuaW50ZXJwb2xhdGVQYWRkaW5nPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl91bm1vZGlmaWVkPSExLHRoaXMuX2VkZ2VJbnNldHMuaW50ZXJwb2xhdGUodCxlLHIpLHRoaXMuX2NvbnN0cmFpbigpLHRoaXMuX2NhbGNNYXRyaWNlcygpfSxBbi5wcm90b3R5cGUuY292ZXJpbmdab29tTGV2ZWw9ZnVuY3Rpb24odCl7dmFyIGU9KHQucm91bmRab29tP01hdGgucm91bmQ6TWF0aC5mbG9vcikodGhpcy56b29tK3RoaXMuc2NhbGVab29tKHRoaXMudGlsZVNpemUvdC50aWxlU2l6ZSkpO3JldHVybiBNYXRoLm1heCgwLGUpfSxBbi5wcm90b3R5cGUuZ2V0VmlzaWJsZVVud3JhcHBlZENvb3JkaW5hdGVzPWZ1bmN0aW9uKGUpe3ZhciByPVtuZXcgdC5VbndyYXBwZWRUaWxlSUQoMCxlKV07aWYodGhpcy5fcmVuZGVyV29ybGRDb3BpZXMpZm9yKHZhciBuPXRoaXMucG9pbnRDb29yZGluYXRlKG5ldyB0LlBvaW50KDAsMCkpLGk9dGhpcy5wb2ludENvb3JkaW5hdGUobmV3IHQuUG9pbnQodGhpcy53aWR0aCwwKSksYT10aGlzLnBvaW50Q29vcmRpbmF0ZShuZXcgdC5Qb2ludCh0aGlzLndpZHRoLHRoaXMuaGVpZ2h0KSksbz10aGlzLnBvaW50Q29vcmRpbmF0ZShuZXcgdC5Qb2ludCgwLHRoaXMuaGVpZ2h0KSkscz1NYXRoLmZsb29yKE1hdGgubWluKG4ueCxpLngsYS54LG8ueCkpLGw9TWF0aC5mbG9vcihNYXRoLm1heChuLngsaS54LGEueCxvLngpKSxjPXMtMTtjPD1sKzE7YysrKTAhPT1jJiZyLnB1c2gobmV3IHQuVW53cmFwcGVkVGlsZUlEKGMsZSkpO3JldHVybiByfSxBbi5wcm90b3R5cGUuY292ZXJpbmdUaWxlcz1mdW5jdGlvbihlKXt2YXIgcj10aGlzLmNvdmVyaW5nWm9vbUxldmVsKGUpLG49cjtpZih2b2lkIDAhPT1lLm1pbnpvb20mJnI8ZS5taW56b29tKXJldHVybltdO3ZvaWQgMCE9PWUubWF4em9vbSYmcj5lLm1heHpvb20mJihyPWUubWF4em9vbSk7dmFyIGk9dC5NZXJjYXRvckNvb3JkaW5hdGUuZnJvbUxuZ0xhdCh0aGlzLmNlbnRlciksYT1NYXRoLnBvdygyLHIpLG89W2EqaS54LGEqaS55LDBdLHM9d24uZnJvbUludlByb2plY3Rpb25NYXRyaXgodGhpcy5pbnZQcm9qTWF0cml4LHRoaXMud29ybGRTaXplLHIpLGw9ZS5taW56b29tfHwwO3RoaXMucGl0Y2g8PTYwJiZ0aGlzLl9lZGdlSW5zZXRzLnRvcDwuMSYmKGw9cik7dmFyIGM9ZnVuY3Rpb24odCl7cmV0dXJue2FhYmI6bmV3IFRuKFt0KmEsMCwwXSxbKHQrMSkqYSxhLDBdKSx6b29tOjAseDowLHk6MCx3cmFwOnQsZnVsbHlWaXNpYmxlOiExfX0sdT1bXSxmPVtdLGg9cixwPWUucmVwYXJzZU92ZXJzY2FsZWQ/bjpyO2lmKHRoaXMuX3JlbmRlcldvcmxkQ29waWVzKWZvcih2YXIgZD0xO2Q8PTM7ZCsrKXUucHVzaChjKC1kKSksdS5wdXNoKGMoZCkpO2Zvcih1LnB1c2goYygwKSk7dS5sZW5ndGg+MDspe3ZhciBtPXUucG9wKCksZz1tLngsdj1tLnkseT1tLmZ1bGx5VmlzaWJsZTtpZigheSl7dmFyIHg9bS5hYWJiLmludGVyc2VjdHMocyk7aWYoMD09PXgpY29udGludWU7eT0yPT09eH12YXIgYj1tLmFhYmIuZGlzdGFuY2VYKG8pLF89bS5hYWJiLmRpc3RhbmNlWShvKSx3PU1hdGgubWF4KE1hdGguYWJzKGIpLE1hdGguYWJzKF8pKSxUPTMrKDE8PGgtbS56b29tKS0yO2lmKG0uem9vbT09PWh8fHc+VCYmbS56b29tPj1sKWYucHVzaCh7dGlsZUlEOm5ldyB0Lk92ZXJzY2FsZWRUaWxlSUQobS56b29tPT09aD9wOm0uem9vbSxtLndyYXAsbS56b29tLGcsdiksZGlzdGFuY2VTcTp0LnNxckxlbihbb1swXS0uNS1nLG9bMV0tLjUtdl0pfSk7ZWxzZSBmb3IodmFyIGs9MDtrPDQ7aysrKXt2YXIgQT0oZzw8MSkrayUyLE09KHY8PDEpKyhrPj4xKTt1LnB1c2goe2FhYmI6bS5hYWJiLnF1YWRyYW50KGspLHpvb206bS56b29tKzEseDpBLHk6TSx3cmFwOm0ud3JhcCxmdWxseVZpc2libGU6eX0pfX1yZXR1cm4gZi5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmRpc3RhbmNlU3EtZS5kaXN0YW5jZVNxfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlsZUlEfSkpfSxBbi5wcm90b3R5cGUucmVzaXplPWZ1bmN0aW9uKHQsZSl7dGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PWUsdGhpcy5waXhlbHNUb0dMVW5pdHM9WzIvdCwtMi9lXSx0aGlzLl9jb25zdHJhaW4oKSx0aGlzLl9jYWxjTWF0cmljZXMoKX0sTW4udW5tb2RpZmllZC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdW5tb2RpZmllZH0sQW4ucHJvdG90eXBlLnpvb21TY2FsZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5wb3coMix0KX0sQW4ucHJvdG90eXBlLnNjYWxlWm9vbT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5sb2codCkvTWF0aC5MTjJ9LEFuLnByb3RvdHlwZS5wcm9qZWN0PWZ1bmN0aW9uKGUpe3ZhciByPXQuY2xhbXAoZS5sYXQsLXRoaXMubWF4VmFsaWRMYXRpdHVkZSx0aGlzLm1heFZhbGlkTGF0aXR1ZGUpO3JldHVybiBuZXcgdC5Qb2ludCh0Lm1lcmNhdG9yWGZyb21MbmcoZS5sbmcpKnRoaXMud29ybGRTaXplLHQubWVyY2F0b3JZZnJvbUxhdChyKSp0aGlzLndvcmxkU2l6ZSl9LEFuLnByb3RvdHlwZS51bnByb2plY3Q9ZnVuY3Rpb24oZSl7cmV0dXJuIG5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZShlLngvdGhpcy53b3JsZFNpemUsZS55L3RoaXMud29ybGRTaXplKS50b0xuZ0xhdCgpfSxNbi5wb2ludC5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wcm9qZWN0KHRoaXMuY2VudGVyKX0sQW4ucHJvdG90eXBlLnNldExvY2F0aW9uQXRQb2ludD1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMucG9pbnRDb29yZGluYXRlKHIpLGk9dGhpcy5wb2ludENvb3JkaW5hdGUodGhpcy5jZW50ZXJQb2ludCksYT10aGlzLmxvY2F0aW9uQ29vcmRpbmF0ZShlKSxvPW5ldyB0Lk1lcmNhdG9yQ29vcmRpbmF0ZShhLngtKG4ueC1pLngpLGEueS0obi55LWkueSkpO3RoaXMuY2VudGVyPXRoaXMuY29vcmRpbmF0ZUxvY2F0aW9uKG8pLHRoaXMuX3JlbmRlcldvcmxkQ29waWVzJiYodGhpcy5jZW50ZXI9dGhpcy5jZW50ZXIud3JhcCgpKX0sQW4ucHJvdG90eXBlLmxvY2F0aW9uUG9pbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29vcmRpbmF0ZVBvaW50KHRoaXMubG9jYXRpb25Db29yZGluYXRlKHQpKX0sQW4ucHJvdG90eXBlLnBvaW50TG9jYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuY29vcmRpbmF0ZUxvY2F0aW9uKHRoaXMucG9pbnRDb29yZGluYXRlKHQpKX0sQW4ucHJvdG90eXBlLmxvY2F0aW9uQ29vcmRpbmF0ZT1mdW5jdGlvbihlKXtyZXR1cm4gdC5NZXJjYXRvckNvb3JkaW5hdGUuZnJvbUxuZ0xhdChlKX0sQW4ucHJvdG90eXBlLmNvb3JkaW5hdGVMb2NhdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4gdC50b0xuZ0xhdCgpfSxBbi5wcm90b3R5cGUucG9pbnRDb29yZGluYXRlPWZ1bmN0aW9uKGUpe3ZhciByPVtlLngsZS55LDAsMV0sbj1bZS54LGUueSwxLDFdO3QudHJhbnNmb3JtTWF0NChyLHIsdGhpcy5waXhlbE1hdHJpeEludmVyc2UpLHQudHJhbnNmb3JtTWF0NChuLG4sdGhpcy5waXhlbE1hdHJpeEludmVyc2UpO3ZhciBpPXJbM10sYT1uWzNdLG89clswXS9pLHM9blswXS9hLGw9clsxXS9pLGM9blsxXS9hLHU9clsyXS9pLGY9blsyXS9hLGg9dT09PWY/MDooMC11KS8oZi11KTtyZXR1cm4gbmV3IHQuTWVyY2F0b3JDb29yZGluYXRlKHQubnVtYmVyKG8scyxoKS90aGlzLndvcmxkU2l6ZSx0Lm51bWJlcihsLGMsaCkvdGhpcy53b3JsZFNpemUpfSxBbi5wcm90b3R5cGUuY29vcmRpbmF0ZVBvaW50PWZ1bmN0aW9uKGUpe3ZhciByPVtlLngqdGhpcy53b3JsZFNpemUsZS55KnRoaXMud29ybGRTaXplLDAsMV07cmV0dXJuIHQudHJhbnNmb3JtTWF0NChyLHIsdGhpcy5waXhlbE1hdHJpeCksbmV3IHQuUG9pbnQoclswXS9yWzNdLHJbMV0vclszXSl9LEFuLnByb3RvdHlwZS5nZXRCb3VuZHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IHQuTG5nTGF0Qm91bmRzKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KDAsMCkpKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsMCkpKS5leHRlbmQodGhpcy5wb2ludExvY2F0aW9uKG5ldyB0LlBvaW50KHRoaXMud2lkdGgsdGhpcy5oZWlnaHQpKSkuZXh0ZW5kKHRoaXMucG9pbnRMb2NhdGlvbihuZXcgdC5Qb2ludCgwLHRoaXMuaGVpZ2h0KSkpfSxBbi5wcm90b3R5cGUuZ2V0TWF4Qm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubGF0UmFuZ2UmJjI9PT10aGlzLmxhdFJhbmdlLmxlbmd0aCYmdGhpcy5sbmdSYW5nZSYmMj09PXRoaXMubG5nUmFuZ2UubGVuZ3RoP25ldyB0LkxuZ0xhdEJvdW5kcyhbdGhpcy5sbmdSYW5nZVswXSx0aGlzLmxhdFJhbmdlWzBdXSxbdGhpcy5sbmdSYW5nZVsxXSx0aGlzLmxhdFJhbmdlWzFdXSk6bnVsbH0sQW4ucHJvdG90eXBlLnNldE1heEJvdW5kcz1mdW5jdGlvbih0KXt0Pyh0aGlzLmxuZ1JhbmdlPVt0LmdldFdlc3QoKSx0LmdldEVhc3QoKV0sdGhpcy5sYXRSYW5nZT1bdC5nZXRTb3V0aCgpLHQuZ2V0Tm9ydGgoKV0sdGhpcy5fY29uc3RyYWluKCkpOih0aGlzLmxuZ1JhbmdlPW51bGwsdGhpcy5sYXRSYW5nZT1bLXRoaXMubWF4VmFsaWRMYXRpdHVkZSx0aGlzLm1heFZhbGlkTGF0aXR1ZGVdKX0sQW4ucHJvdG90eXBlLmNhbGN1bGF0ZVBvc01hdHJpeD1mdW5jdGlvbihlLHIpe3ZvaWQgMD09PXImJihyPSExKTt2YXIgbj1lLmtleSxpPXI/dGhpcy5fYWxpZ25lZFBvc01hdHJpeENhY2hlOnRoaXMuX3Bvc01hdHJpeENhY2hlO2lmKGlbbl0pcmV0dXJuIGlbbl07dmFyIGE9ZS5jYW5vbmljYWwsbz10aGlzLndvcmxkU2l6ZS90aGlzLnpvb21TY2FsZShhLnopLHM9YS54K01hdGgucG93KDIsYS56KSplLndyYXAsbD10LmlkZW50aXR5KG5ldyBGbG9hdDY0QXJyYXkoMTYpKTtyZXR1cm4gdC50cmFuc2xhdGUobCxsLFtzKm8sYS55Km8sMF0pLHQuc2NhbGUobCxsLFtvL3QuRVhURU5ULG8vdC5FWFRFTlQsMV0pLHQubXVsdGlwbHkobCxyP3RoaXMuYWxpZ25lZFByb2pNYXRyaXg6dGhpcy5wcm9qTWF0cml4LGwpLGlbbl09bmV3IEZsb2F0MzJBcnJheShsKSxpW25dfSxBbi5wcm90b3R5cGUuY3VzdG9tTGF5ZXJNYXRyaXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXJjYXRvck1hdHJpeC5zbGljZSgpfSxBbi5wcm90b3R5cGUuX2NvbnN0cmFpbj1mdW5jdGlvbigpe2lmKHRoaXMuY2VudGVyJiZ0aGlzLndpZHRoJiZ0aGlzLmhlaWdodCYmIXRoaXMuX2NvbnN0cmFpbmluZyl7dGhpcy5fY29uc3RyYWluaW5nPSEwO3ZhciBlLHIsbixpLGE9LTkwLG89OTAscz0tMTgwLGw9MTgwLGM9dGhpcy5zaXplLHU9dGhpcy5fdW5tb2RpZmllZDtpZih0aGlzLmxhdFJhbmdlKXt2YXIgZj10aGlzLmxhdFJhbmdlO2E9dC5tZXJjYXRvcllmcm9tTGF0KGZbMV0pKnRoaXMud29ybGRTaXplLGU9KG89dC5tZXJjYXRvcllmcm9tTGF0KGZbMF0pKnRoaXMud29ybGRTaXplKS1hPGMueT9jLnkvKG8tYSk6MH1pZih0aGlzLmxuZ1JhbmdlKXt2YXIgaD10aGlzLmxuZ1JhbmdlO3M9dC5tZXJjYXRvclhmcm9tTG5nKGhbMF0pKnRoaXMud29ybGRTaXplLHI9KGw9dC5tZXJjYXRvclhmcm9tTG5nKGhbMV0pKnRoaXMud29ybGRTaXplKS1zPGMueD9jLngvKGwtcyk6MH12YXIgcD10aGlzLnBvaW50LGQ9TWF0aC5tYXgocnx8MCxlfHwwKTtpZihkKXJldHVybiB0aGlzLmNlbnRlcj10aGlzLnVucHJvamVjdChuZXcgdC5Qb2ludChyPyhsK3MpLzI6cC54LGU/KG8rYSkvMjpwLnkpKSx0aGlzLnpvb20rPXRoaXMuc2NhbGVab29tKGQpLHRoaXMuX3VubW9kaWZpZWQ9dSx2b2lkKHRoaXMuX2NvbnN0cmFpbmluZz0hMSk7aWYodGhpcy5sYXRSYW5nZSl7dmFyIG09cC55LGc9Yy55LzI7bS1nPGEmJihpPWErZyksbStnPm8mJihpPW8tZyl9aWYodGhpcy5sbmdSYW5nZSl7dmFyIHY9cC54LHk9Yy54LzI7di15PHMmJihuPXMreSksdit5PmwmJihuPWwteSl9dm9pZCAwPT09biYmdm9pZCAwPT09aXx8KHRoaXMuY2VudGVyPXRoaXMudW5wcm9qZWN0KG5ldyB0LlBvaW50KHZvaWQgMCE9PW4/bjpwLngsdm9pZCAwIT09aT9pOnAueSkpKSx0aGlzLl91bm1vZGlmaWVkPXUsdGhpcy5fY29uc3RyYWluaW5nPSExfX0sQW4ucHJvdG90eXBlLl9jYWxjTWF0cmljZXM9ZnVuY3Rpb24oKXtpZih0aGlzLmhlaWdodCl7dmFyIGU9dGhpcy5fZm92LzIscj10aGlzLmNlbnRlck9mZnNldDt0aGlzLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2U9LjUvTWF0aC50YW4oZSkqdGhpcy5oZWlnaHQ7dmFyIG49TWF0aC5QSS8yK3RoaXMuX3BpdGNoLGk9dGhpcy5fZm92KiguNStyLnkvdGhpcy5oZWlnaHQpLGE9TWF0aC5zaW4oaSkqdGhpcy5jYW1lcmFUb0NlbnRlckRpc3RhbmNlL01hdGguc2luKHQuY2xhbXAoTWF0aC5QSS1uLWksLjAxLE1hdGguUEktLjAxKSksbz10aGlzLnBvaW50LHM9by54LGw9by55LGM9MS4wMSooTWF0aC5jb3MoTWF0aC5QSS8yLXRoaXMuX3BpdGNoKSphK3RoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZSksdT10aGlzLmhlaWdodC81MCxmPW5ldyBGbG9hdDY0QXJyYXkoMTYpO3QucGVyc3BlY3RpdmUoZix0aGlzLl9mb3YsdGhpcy53aWR0aC90aGlzLmhlaWdodCx1LGMpLGZbOF09Miotci54L3RoaXMud2lkdGgsZls5XT0yKnIueS90aGlzLmhlaWdodCx0LnNjYWxlKGYsZixbMSwtMSwxXSksdC50cmFuc2xhdGUoZixmLFswLDAsLXRoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZV0pLHQucm90YXRlWChmLGYsdGhpcy5fcGl0Y2gpLHQucm90YXRlWihmLGYsdGhpcy5hbmdsZSksdC50cmFuc2xhdGUoZixmLFstcywtbCwwXSksdGhpcy5tZXJjYXRvck1hdHJpeD10LnNjYWxlKFtdLGYsW3RoaXMud29ybGRTaXplLHRoaXMud29ybGRTaXplLHRoaXMud29ybGRTaXplXSksdC5zY2FsZShmLGYsWzEsMSx0Lm1lcmNhdG9yWmZyb21BbHRpdHVkZSgxLHRoaXMuY2VudGVyLmxhdCkqdGhpcy53b3JsZFNpemUsMV0pLHRoaXMucHJvak1hdHJpeD1mLHRoaXMuaW52UHJvak1hdHJpeD10LmludmVydChbXSx0aGlzLnByb2pNYXRyaXgpO3ZhciBoPXRoaXMud2lkdGglMi8yLHA9dGhpcy5oZWlnaHQlMi8yLGQ9TWF0aC5jb3ModGhpcy5hbmdsZSksbT1NYXRoLnNpbih0aGlzLmFuZ2xlKSxnPXMtTWF0aC5yb3VuZChzKStkKmgrbSpwLHY9bC1NYXRoLnJvdW5kKGwpK2QqcCttKmgseT1uZXcgRmxvYXQ2NEFycmF5KGYpO2lmKHQudHJhbnNsYXRlKHkseSxbZz4uNT9nLTE6Zyx2Pi41P3YtMTp2LDBdKSx0aGlzLmFsaWduZWRQcm9qTWF0cml4PXksZj10LmNyZWF0ZSgpLHQuc2NhbGUoZixmLFt0aGlzLndpZHRoLzIsLXRoaXMuaGVpZ2h0LzIsMV0pLHQudHJhbnNsYXRlKGYsZixbMSwtMSwwXSksdGhpcy5sYWJlbFBsYW5lTWF0cml4PWYsZj10LmNyZWF0ZSgpLHQuc2NhbGUoZixmLFsxLC0xLDFdKSx0LnRyYW5zbGF0ZShmLGYsWy0xLC0xLDBdKSx0LnNjYWxlKGYsZixbMi90aGlzLndpZHRoLDIvdGhpcy5oZWlnaHQsMV0pLHRoaXMuZ2xDb29yZE1hdHJpeD1mLHRoaXMucGl4ZWxNYXRyaXg9dC5tdWx0aXBseShuZXcgRmxvYXQ2NEFycmF5KDE2KSx0aGlzLmxhYmVsUGxhbmVNYXRyaXgsdGhpcy5wcm9qTWF0cml4KSwhKGY9dC5pbnZlcnQobmV3IEZsb2F0NjRBcnJheSgxNiksdGhpcy5waXhlbE1hdHJpeCkpKXRocm93IG5ldyBFcnJvcigiZmFpbGVkIHRvIGludmVydCBtYXRyaXgiKTt0aGlzLnBpeGVsTWF0cml4SW52ZXJzZT1mLHRoaXMuX3Bvc01hdHJpeENhY2hlPXt9LHRoaXMuX2FsaWduZWRQb3NNYXRyaXhDYWNoZT17fX19LEFuLnByb3RvdHlwZS5tYXhQaXRjaFNjYWxlRmFjdG9yPWZ1bmN0aW9uKCl7aWYoIXRoaXMucGl4ZWxNYXRyaXhJbnZlcnNlKXJldHVybiAxO3ZhciBlPXRoaXMucG9pbnRDb29yZGluYXRlKG5ldyB0LlBvaW50KDAsMCkpLHI9W2UueCp0aGlzLndvcmxkU2l6ZSxlLnkqdGhpcy53b3JsZFNpemUsMCwxXTtyZXR1cm4gdC50cmFuc2Zvcm1NYXQ0KHIscix0aGlzLnBpeGVsTWF0cml4KVszXS90aGlzLmNhbWVyYVRvQ2VudGVyRGlzdGFuY2V9LEFuLnByb3RvdHlwZS5nZXRDYW1lcmFQb2ludD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuX3BpdGNoLHI9TWF0aC50YW4oZSkqKHRoaXMuY2FtZXJhVG9DZW50ZXJEaXN0YW5jZXx8MSk7cmV0dXJuIHRoaXMuY2VudGVyUG9pbnQuYWRkKG5ldyB0LlBvaW50KDAscikpfSxBbi5wcm90b3R5cGUuZ2V0Q2FtZXJhUXVlcnlHZW9tZXRyeT1mdW5jdGlvbihlKXt2YXIgcj10aGlzLmdldENhbWVyYVBvaW50KCk7aWYoMT09PWUubGVuZ3RoKXJldHVybltlWzBdLHJdO2Zvcih2YXIgbj1yLngsaT1yLnksYT1yLngsbz1yLnkscz0wLGw9ZTtzPGwubGVuZ3RoO3MrPTEpe3ZhciBjPWxbc107bj1NYXRoLm1pbihuLGMueCksaT1NYXRoLm1pbihpLGMueSksYT1NYXRoLm1heChhLGMueCksbz1NYXRoLm1heChvLGMueSl9cmV0dXJuW25ldyB0LlBvaW50KG4saSksbmV3IHQuUG9pbnQoYSxpKSxuZXcgdC5Qb2ludChhLG8pLG5ldyB0LlBvaW50KG4sbyksbmV3IHQuUG9pbnQobixpKV19LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKEFuLnByb3RvdHlwZSxNbik7dmFyIFNuPWZ1bmN0aW9uKGUpe3ZhciByLG4saSxhLG87dGhpcy5faGFzaE5hbWU9ZSYmZW5jb2RlVVJJQ29tcG9uZW50KGUpLHQuYmluZEFsbChbIl9nZXRDdXJyZW50SGFzaCIsIl9vbkhhc2hDaGFuZ2UiLCJfdXBkYXRlSGFzaCJdLHRoaXMpLHRoaXMuX3VwZGF0ZUhhc2g9KHI9dGhpcy5fdXBkYXRlSGFzaFVudGhyb3R0bGVkLmJpbmQodGhpcyksbj0zMDAsaT0hMSxhPW51bGwsbz1mdW5jdGlvbigpe2E9bnVsbCxpJiYocigpLGE9c2V0VGltZW91dChvLG4pLGk9ITEpfSxmdW5jdGlvbigpe3JldHVybiBpPSEwLGF8fG8oKSxhfSl9O1NuLnByb3RvdHlwZS5hZGRUbz1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbWFwPWUsdC53aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsdGhpcy5fb25IYXNoQ2hhbmdlLCExKSx0aGlzLl9tYXAub24oIm1vdmVlbmQiLHRoaXMuX3VwZGF0ZUhhc2gpLHRoaXN9LFNuLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigiaGFzaGNoYW5nZSIsdGhpcy5fb25IYXNoQ2hhbmdlLCExKSx0aGlzLl9tYXAub2ZmKCJtb3ZlZW5kIix0aGlzLl91cGRhdGVIYXNoKSxjbGVhclRpbWVvdXQodGhpcy5fdXBkYXRlSGFzaCgpKSxkZWxldGUgdGhpcy5fbWFwLHRoaXN9LFNuLnByb3RvdHlwZS5nZXRIYXNoU3RyaW5nPWZ1bmN0aW9uKGUpe3ZhciByPXRoaXMuX21hcC5nZXRDZW50ZXIoKSxuPU1hdGgucm91bmQoMTAwKnRoaXMuX21hcC5nZXRab29tKCkpLzEwMCxpPU1hdGguY2VpbCgobipNYXRoLkxOMitNYXRoLmxvZyg1MTIvMzYwLy41KSkvTWF0aC5MTjEwKSxhPU1hdGgucG93KDEwLGkpLG89TWF0aC5yb3VuZChyLmxuZyphKS9hLHM9TWF0aC5yb3VuZChyLmxhdCphKS9hLGw9dGhpcy5fbWFwLmdldEJlYXJpbmcoKSxjPXRoaXMuX21hcC5nZXRQaXRjaCgpLHU9IiI7aWYodSs9ZT8iLyIrbysiLyIrcysiLyIrbjpuKyIvIitzKyIvIitvLChsfHxjKSYmKHUrPSIvIitNYXRoLnJvdW5kKDEwKmwpLzEwKSxjJiYodSs9Ii8iK01hdGgucm91bmQoYykpLHRoaXMuX2hhc2hOYW1lKXt2YXIgZj10aGlzLl9oYXNoTmFtZSxoPSExLHA9dC53aW5kb3cubG9jYXRpb24uaGFzaC5zbGljZSgxKS5zcGxpdCgiJiIpLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9dC5zcGxpdCgiPSIpWzBdO3JldHVybiBlPT09Zj8oaD0hMCxlKyI9Iit1KTp0fSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSk7cmV0dXJuIGh8fHAucHVzaChmKyI9Iit1KSwiIyIrcC5qb2luKCImIil9cmV0dXJuIiMiK3V9LFNuLnByb3RvdHlwZS5fZ2V0Q3VycmVudEhhc2g9ZnVuY3Rpb24oKXt2YXIgZSxyPXRoaXMsbj10LndpbmRvdy5sb2NhdGlvbi5oYXNoLnJlcGxhY2UoIiMiLCIiKTtyZXR1cm4gdGhpcy5faGFzaE5hbWU/KG4uc3BsaXQoIiYiKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNwbGl0KCI9Iil9KSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dFswXT09PXIuX2hhc2hOYW1lJiYoZT10KX0pKSwoZSYmZVsxXXx8IiIpLnNwbGl0KCIvIikpOm4uc3BsaXQoIi8iKX0sU24ucHJvdG90eXBlLl9vbkhhc2hDaGFuZ2U9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRDdXJyZW50SGFzaCgpO2lmKHQubGVuZ3RoPj0zJiYhdC5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gaXNOYU4odCl9KSkpe3ZhciBlPXRoaXMuX21hcC5kcmFnUm90YXRlLmlzRW5hYmxlZCgpJiZ0aGlzLl9tYXAudG91Y2hab29tUm90YXRlLmlzRW5hYmxlZCgpPysodFszXXx8MCk6dGhpcy5fbWFwLmdldEJlYXJpbmcoKTtyZXR1cm4gdGhpcy5fbWFwLmp1bXBUbyh7Y2VudGVyOlsrdFsyXSwrdFsxXV0sem9vbTordFswXSxiZWFyaW5nOmUscGl0Y2g6Kyh0WzRdfHwwKX0pLCEwfXJldHVybiExfSxTbi5wcm90b3R5cGUuX3VwZGF0ZUhhc2hVbnRocm90dGxlZD1mdW5jdGlvbigpe3ZhciBlPXRoaXMuZ2V0SGFzaFN0cmluZygpO3RyeXt0LndpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSh0LndpbmRvdy5oaXN0b3J5LnN0YXRlLCIiLGUpfWNhdGNoKHQpe319O3ZhciBFbj17bGluZWFyaXR5Oi4zLGVhc2luZzp0LmJlemllcigwLDAsLjMsMSl9LExuPXQuZXh0ZW5kKHtkZWNlbGVyYXRpb246MjUwMCxtYXhTcGVlZDoxNDAwfSxFbiksQ249dC5leHRlbmQoe2RlY2VsZXJhdGlvbjoyMCxtYXhTcGVlZDoxNDAwfSxFbiksUG49dC5leHRlbmQoe2RlY2VsZXJhdGlvbjoxZTMsbWF4U3BlZWQ6MzYwfSxFbiksSW49dC5leHRlbmQoe2RlY2VsZXJhdGlvbjoxZTMsbWF4U3BlZWQ6OTB9LEVuKSxPbj1mdW5jdGlvbih0KXt0aGlzLl9tYXA9dCx0aGlzLmNsZWFyKCl9O2Z1bmN0aW9uIHpuKHQsZSl7KCF0LmR1cmF0aW9ufHx0LmR1cmF0aW9uPGUuZHVyYXRpb24pJiYodC5kdXJhdGlvbj1lLmR1cmF0aW9uLHQuZWFzaW5nPWUuZWFzaW5nKX1mdW5jdGlvbiBEbihlLHIsbil7dmFyIGk9bi5tYXhTcGVlZCxhPW4ubGluZWFyaXR5LG89bi5kZWNlbGVyYXRpb24scz10LmNsYW1wKGUqYS8oci8xZTMpLC1pLGkpLGw9TWF0aC5hYnMocykvKG8qYSk7cmV0dXJue2Vhc2luZzpuLmVhc2luZyxkdXJhdGlvbjoxZTMqbCxhbW91bnQ6cyoobC8yKX19T24ucHJvdG90eXBlLmNsZWFyPWZ1bmN0aW9uKCl7dGhpcy5faW5lcnRpYUJ1ZmZlcj1bXX0sT24ucHJvdG90eXBlLnJlY29yZD1mdW5jdGlvbihlKXt0aGlzLl9kcmFpbkluZXJ0aWFCdWZmZXIoKSx0aGlzLl9pbmVydGlhQnVmZmVyLnB1c2goe3RpbWU6dC5icm93c2VyLm5vdygpLHNldHRpbmdzOmV9KX0sT24ucHJvdG90eXBlLl9kcmFpbkluZXJ0aWFCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIGU9dGhpcy5faW5lcnRpYUJ1ZmZlcixyPXQuYnJvd3Nlci5ub3coKTtlLmxlbmd0aD4wJiZyLWVbMF0udGltZT4xNjA7KWUuc2hpZnQoKX0sT24ucHJvdG90eXBlLl9vbk1vdmVFbmQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fZHJhaW5JbmVydGlhQnVmZmVyKCksISh0aGlzLl9pbmVydGlhQnVmZmVyLmxlbmd0aDwyKSl7Zm9yKHZhciByPXt6b29tOjAsYmVhcmluZzowLHBpdGNoOjAscGFuOm5ldyB0LlBvaW50KDAsMCkscGluY2hBcm91bmQ6dm9pZCAwLGFyb3VuZDp2b2lkIDB9LG49MCxpPXRoaXMuX2luZXJ0aWFCdWZmZXI7bjxpLmxlbmd0aDtuKz0xKXt2YXIgYT1pW25dLnNldHRpbmdzO3Iuem9vbSs9YS56b29tRGVsdGF8fDAsci5iZWFyaW5nKz1hLmJlYXJpbmdEZWx0YXx8MCxyLnBpdGNoKz1hLnBpdGNoRGVsdGF8fDAsYS5wYW5EZWx0YSYmci5wYW4uX2FkZChhLnBhbkRlbHRhKSxhLmFyb3VuZCYmKHIuYXJvdW5kPWEuYXJvdW5kKSxhLnBpbmNoQXJvdW5kJiYoci5waW5jaEFyb3VuZD1hLnBpbmNoQXJvdW5kKX12YXIgbz10aGlzLl9pbmVydGlhQnVmZmVyW3RoaXMuX2luZXJ0aWFCdWZmZXIubGVuZ3RoLTFdLnRpbWUtdGhpcy5faW5lcnRpYUJ1ZmZlclswXS50aW1lLHM9e307aWYoci5wYW4ubWFnKCkpe3ZhciBsPURuKHIucGFuLm1hZygpLG8sdC5leHRlbmQoe30sTG4sZXx8e30pKTtzLm9mZnNldD1yLnBhbi5tdWx0KGwuYW1vdW50L3IucGFuLm1hZygpKSxzLmNlbnRlcj10aGlzLl9tYXAudHJhbnNmb3JtLmNlbnRlcix6bihzLGwpfWlmKHIuem9vbSl7dmFyIGM9RG4oci56b29tLG8sQ24pO3Muem9vbT10aGlzLl9tYXAudHJhbnNmb3JtLnpvb20rYy5hbW91bnQsem4ocyxjKX1pZihyLmJlYXJpbmcpe3ZhciB1PURuKHIuYmVhcmluZyxvLFBuKTtzLmJlYXJpbmc9dGhpcy5fbWFwLnRyYW5zZm9ybS5iZWFyaW5nK3QuY2xhbXAodS5hbW91bnQsLTE3OSwxNzkpLHpuKHMsdSl9aWYoci5waXRjaCl7dmFyIGY9RG4oci5waXRjaCxvLEluKTtzLnBpdGNoPXRoaXMuX21hcC50cmFuc2Zvcm0ucGl0Y2grZi5hbW91bnQsem4ocyxmKX1pZihzLnpvb218fHMuYmVhcmluZyl7dmFyIGg9dm9pZCAwPT09ci5waW5jaEFyb3VuZD9yLmFyb3VuZDpyLnBpbmNoQXJvdW5kO3MuYXJvdW5kPWg/dGhpcy5fbWFwLnVucHJvamVjdChoKTp0aGlzLl9tYXAuZ2V0Q2VudGVyKCl9cmV0dXJuIHRoaXMuY2xlYXIoKSx0LmV4dGVuZChzLHtub01vdmVTdGFydDohMH0pfX07dmFyIFJuPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4obixpLGEsbyl7dm9pZCAwPT09byYmKG89e30pO3ZhciBzPXIubW91c2VQb3MoaS5nZXRDYW52YXNDb250YWluZXIoKSxhKSxsPWkudW5wcm9qZWN0KHMpO2UuY2FsbCh0aGlzLG4sdC5leHRlbmQoe3BvaW50OnMsbG5nTGF0Omwsb3JpZ2luYWxFdmVudDphfSxvKSksdGhpcy5fZGVmYXVsdFByZXZlbnRlZD0hMSx0aGlzLnRhcmdldD1pfWUmJihuLl9fcHJvdG9fXz1lKSxuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uO3ZhciBpPXtkZWZhdWx0UHJldmVudGVkOntjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gbi5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLl9kZWZhdWx0UHJldmVudGVkPSEwfSxpLmRlZmF1bHRQcmV2ZW50ZWQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRQcmV2ZW50ZWR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKG4ucHJvdG90eXBlLGkpLG59KHQuRXZlbnQpLEZuPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4obixpLGEpe3ZhciBvPSJ0b3VjaGVuZCI9PT1uP2EuY2hhbmdlZFRvdWNoZXM6YS50b3VjaGVzLHM9ci50b3VjaFBvcyhpLmdldENhbnZhc0NvbnRhaW5lcigpLG8pLGw9cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBpLnVucHJvamVjdCh0KX0pKSxjPXMucmVkdWNlKChmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdC5hZGQoZS5kaXYobi5sZW5ndGgpKX0pLG5ldyB0LlBvaW50KDAsMCkpLHU9aS51bnByb2plY3QoYyk7ZS5jYWxsKHRoaXMsbix7cG9pbnRzOnMscG9pbnQ6YyxsbmdMYXRzOmwsbG5nTGF0OnUsb3JpZ2luYWxFdmVudDphfSksdGhpcy5fZGVmYXVsdFByZXZlbnRlZD0hMX1lJiYobi5fX3Byb3RvX189ZSksbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bjt2YXIgaT17ZGVmYXVsdFByZXZlbnRlZDp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIG4ucHJvdG90eXBlLnByZXZlbnREZWZhdWx0PWZ1bmN0aW9uKCl7dGhpcy5fZGVmYXVsdFByZXZlbnRlZD0hMH0saS5kZWZhdWx0UHJldmVudGVkLmdldD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kZWZhdWx0UHJldmVudGVkfSxPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLnByb3RvdHlwZSxpKSxufSh0LkV2ZW50KSxCbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKGUscixuKXt0LmNhbGwodGhpcyxlLHtvcmlnaW5hbEV2ZW50Om59KSx0aGlzLl9kZWZhdWx0UHJldmVudGVkPSExfXQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lO3ZhciByPXtkZWZhdWx0UHJldmVudGVkOntjb25maWd1cmFibGU6ITB9fTtyZXR1cm4gZS5wcm90b3R5cGUucHJldmVudERlZmF1bHQ9ZnVuY3Rpb24oKXt0aGlzLl9kZWZhdWx0UHJldmVudGVkPSEwfSxyLmRlZmF1bHRQcmV2ZW50ZWQuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2RlZmF1bHRQcmV2ZW50ZWR9LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLHIpLGV9KHQuRXZlbnQpLE5uPWZ1bmN0aW9uKHQsZSl7dGhpcy5fbWFwPXQsdGhpcy5fY2xpY2tUb2xlcmFuY2U9ZS5jbGlja1RvbGVyYW5jZX07Tm4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuX21vdXNlZG93blBvc30sTm4ucHJvdG90eXBlLndoZWVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9maXJlUHJldmVudGFibGUobmV3IEJuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUubW91c2Vkb3duPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX21vdXNlZG93blBvcz1lLHRoaXMuX2ZpcmVQcmV2ZW50YWJsZShuZXcgUm4odC50eXBlLHRoaXMuX21hcCx0KSl9LE5uLnByb3RvdHlwZS5tb3VzZXVwPWZ1bmN0aW9uKHQpe3RoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKX0sTm4ucHJvdG90eXBlLmNsaWNrPWZ1bmN0aW9uKHQsZSl7dGhpcy5fbW91c2Vkb3duUG9zJiZ0aGlzLl9tb3VzZWRvd25Qb3MuZGlzdChlKT49dGhpcy5fY2xpY2tUb2xlcmFuY2V8fHRoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKX0sTm4ucHJvdG90eXBlLmRibGNsaWNrPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9maXJlUHJldmVudGFibGUobmV3IFJuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUubW91c2VvdmVyPWZ1bmN0aW9uKHQpe3RoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKX0sTm4ucHJvdG90eXBlLm1vdXNlb3V0PWZ1bmN0aW9uKHQpe3RoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKX0sTm4ucHJvdG90eXBlLnRvdWNoc3RhcnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2ZpcmVQcmV2ZW50YWJsZShuZXcgRm4odC50eXBlLHRoaXMuX21hcCx0KSl9LE5uLnByb3RvdHlwZS50b3VjaG1vdmU9ZnVuY3Rpb24odCl7dGhpcy5fbWFwLmZpcmUobmV3IEZuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUudG91Y2hlbmQ9ZnVuY3Rpb24odCl7dGhpcy5fbWFwLmZpcmUobmV3IEZuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUudG91Y2hjYW5jZWw9ZnVuY3Rpb24odCl7dGhpcy5fbWFwLmZpcmUobmV3IEZuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxObi5wcm90b3R5cGUuX2ZpcmVQcmV2ZW50YWJsZT1mdW5jdGlvbih0KXtpZih0aGlzLl9tYXAuZmlyZSh0KSx0LmRlZmF1bHRQcmV2ZW50ZWQpcmV0dXJue319LE5uLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hMH0sTm4ucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuITF9LE5uLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt9LE5uLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7fTt2YXIgam49ZnVuY3Rpb24odCl7dGhpcy5fbWFwPXR9O2puLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2RlbGF5Q29udGV4dE1lbnU9ITEsZGVsZXRlIHRoaXMuX2NvbnRleHRNZW51RXZlbnR9LGpuLnByb3RvdHlwZS5tb3VzZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5fbWFwLmZpcmUobmV3IFJuKHQudHlwZSx0aGlzLl9tYXAsdCkpfSxqbi5wcm90b3R5cGUubW91c2Vkb3duPWZ1bmN0aW9uKCl7dGhpcy5fZGVsYXlDb250ZXh0TWVudT0hMH0sam4ucHJvdG90eXBlLm1vdXNldXA9ZnVuY3Rpb24oKXt0aGlzLl9kZWxheUNvbnRleHRNZW51PSExLHRoaXMuX2NvbnRleHRNZW51RXZlbnQmJih0aGlzLl9tYXAuZmlyZShuZXcgUm4oImNvbnRleHRtZW51Iix0aGlzLl9tYXAsdGhpcy5fY29udGV4dE1lbnVFdmVudCkpLGRlbGV0ZSB0aGlzLl9jb250ZXh0TWVudUV2ZW50KX0sam4ucHJvdG90eXBlLmNvbnRleHRtZW51PWZ1bmN0aW9uKHQpe3RoaXMuX2RlbGF5Q29udGV4dE1lbnU/dGhpcy5fY29udGV4dE1lbnVFdmVudD10OnRoaXMuX21hcC5maXJlKG5ldyBSbih0LnR5cGUsdGhpcy5fbWFwLHQpKSx0aGlzLl9tYXAubGlzdGVucygiY29udGV4dG1lbnUiKSYmdC5wcmV2ZW50RGVmYXVsdCgpfSxqbi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuITB9LGpuLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiExfSxqbi5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7fSxqbi5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe307dmFyIFVuPWZ1bmN0aW9uKHQsZSl7dGhpcy5fbWFwPXQsdGhpcy5fZWw9dC5nZXRDYW52YXNDb250YWluZXIoKSx0aGlzLl9jb250YWluZXI9dC5nZXRDb250YWluZXIoKSx0aGlzLl9jbGlja1RvbGVyYW5jZT1lLmNsaWNrVG9sZXJhbmNlfHwxfTtmdW5jdGlvbiBWbih0LGUpe2Zvcih2YXIgcj17fSxuPTA7bjx0Lmxlbmd0aDtuKyspclt0W25dLmlkZW50aWZpZXJdPWVbbl07cmV0dXJuIHJ9VW4ucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fZW5hYmxlZH0sVW4ucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9hY3RpdmV9LFVuLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpfHwodGhpcy5fZW5hYmxlZD0hMCl9LFVuLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5pc0VuYWJsZWQoKSYmKHRoaXMuX2VuYWJsZWQ9ITEpfSxVbi5wcm90b3R5cGUubW91c2Vkb3duPWZ1bmN0aW9uKHQsZSl7dGhpcy5pc0VuYWJsZWQoKSYmdC5zaGlmdEtleSYmMD09PXQuYnV0dG9uJiYoci5kaXNhYmxlRHJhZygpLHRoaXMuX3N0YXJ0UG9zPXRoaXMuX2xhc3RQb3M9ZSx0aGlzLl9hY3RpdmU9ITApfSxVbi5wcm90b3R5cGUubW91c2Vtb3ZlV2luZG93PWZ1bmN0aW9uKHQsZSl7aWYodGhpcy5fYWN0aXZlKXt2YXIgbj1lO2lmKCEodGhpcy5fbGFzdFBvcy5lcXVhbHMobil8fCF0aGlzLl9ib3gmJm4uZGlzdCh0aGlzLl9zdGFydFBvcyk8dGhpcy5fY2xpY2tUb2xlcmFuY2UpKXt2YXIgaT10aGlzLl9zdGFydFBvczt0aGlzLl9sYXN0UG9zPW4sdGhpcy5fYm94fHwodGhpcy5fYm94PXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1ib3h6b29tIix0aGlzLl9jb250YWluZXIpLHRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jcm9zc2hhaXIiKSx0aGlzLl9maXJlRXZlbnQoImJveHpvb21zdGFydCIsdCkpO3ZhciBhPU1hdGgubWluKGkueCxuLngpLG89TWF0aC5tYXgoaS54LG4ueCkscz1NYXRoLm1pbihpLnksbi55KSxsPU1hdGgubWF4KGkueSxuLnkpO3Iuc2V0VHJhbnNmb3JtKHRoaXMuX2JveCwidHJhbnNsYXRlKCIrYSsicHgsIitzKyJweCkiKSx0aGlzLl9ib3guc3R5bGUud2lkdGg9by1hKyJweCIsdGhpcy5fYm94LnN0eWxlLmhlaWdodD1sLXMrInB4In19fSxVbi5wcm90b3R5cGUubW91c2V1cFdpbmRvdz1mdW5jdGlvbihlLG4pe3ZhciBpPXRoaXM7aWYodGhpcy5fYWN0aXZlJiYwPT09ZS5idXR0b24pe3ZhciBhPXRoaXMuX3N0YXJ0UG9zLG89bjtpZih0aGlzLnJlc2V0KCksci5zdXBwcmVzc0NsaWNrKCksYS54IT09by54fHxhLnkhPT1vLnkpcmV0dXJuIHRoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KCJib3h6b29tZW5kIix7b3JpZ2luYWxFdmVudDplfSkpLHtjYW1lcmFBbmltYXRpb246ZnVuY3Rpb24odCl7cmV0dXJuIHQuZml0U2NyZWVuQ29vcmRpbmF0ZXMoYSxvLGkuX21hcC5nZXRCZWFyaW5nKCkse2xpbmVhcjohMH0pfX07dGhpcy5fZmlyZUV2ZW50KCJib3h6b29tY2FuY2VsIixlKX19LFVuLnByb3RvdHlwZS5rZXlkb3duPWZ1bmN0aW9uKHQpe3RoaXMuX2FjdGl2ZSYmMjc9PT10LmtleUNvZGUmJih0aGlzLnJlc2V0KCksdGhpcy5fZmlyZUV2ZW50KCJib3h6b29tY2FuY2VsIix0KSl9LFVuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMSx0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3Jvc3NoYWlyIiksdGhpcy5fYm94JiYoci5yZW1vdmUodGhpcy5fYm94KSx0aGlzLl9ib3g9bnVsbCksci5lbmFibGVEcmFnKCksZGVsZXRlIHRoaXMuX3N0YXJ0UG9zLGRlbGV0ZSB0aGlzLl9sYXN0UG9zfSxVbi5wcm90b3R5cGUuX2ZpcmVFdmVudD1mdW5jdGlvbihlLHIpe3JldHVybiB0aGlzLl9tYXAuZmlyZShuZXcgdC5FdmVudChlLHtvcmlnaW5hbEV2ZW50OnJ9KSl9O3ZhciBIbj1mdW5jdGlvbih0KXt0aGlzLnJlc2V0KCksdGhpcy5udW1Ub3VjaGVzPXQubnVtVG91Y2hlc307SG4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7ZGVsZXRlIHRoaXMuY2VudHJvaWQsZGVsZXRlIHRoaXMuc3RhcnRUaW1lLGRlbGV0ZSB0aGlzLnRvdWNoZXMsdGhpcy5hYm9ydGVkPSExfSxIbi5wcm90b3R5cGUudG91Y2hzdGFydD1mdW5jdGlvbihlLHIsbil7KHRoaXMuY2VudHJvaWR8fG4ubGVuZ3RoPnRoaXMubnVtVG91Y2hlcykmJih0aGlzLmFib3J0ZWQ9ITApLHRoaXMuYWJvcnRlZHx8KHZvaWQgMD09PXRoaXMuc3RhcnRUaW1lJiYodGhpcy5zdGFydFRpbWU9ZS50aW1lU3RhbXApLG4ubGVuZ3RoPT09dGhpcy5udW1Ub3VjaGVzJiYodGhpcy5jZW50cm9pZD1mdW5jdGlvbihlKXtmb3IodmFyIHI9bmV3IHQuUG9pbnQoMCwwKSxuPTAsaT1lO248aS5sZW5ndGg7bis9MSl7dmFyIGE9aVtuXTtyLl9hZGQoYSl9cmV0dXJuIHIuZGl2KGUubGVuZ3RoKX0ociksdGhpcy50b3VjaGVzPVZuKG4scikpKX0sSG4ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7aWYoIXRoaXMuYWJvcnRlZCYmdGhpcy5jZW50cm9pZCl7dmFyIG49Vm4ocixlKTtmb3IodmFyIGkgaW4gdGhpcy50b3VjaGVzKXt2YXIgYT10aGlzLnRvdWNoZXNbaV0sbz1uW2ldOyghb3x8by5kaXN0KGEpPjMwKSYmKHRoaXMuYWJvcnRlZD0hMCl9fX0sSG4ucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQsZSxyKXtpZigoIXRoaXMuY2VudHJvaWR8fHQudGltZVN0YW1wLXRoaXMuc3RhcnRUaW1lPjUwMCkmJih0aGlzLmFib3J0ZWQ9ITApLDA9PT1yLmxlbmd0aCl7dmFyIG49IXRoaXMuYWJvcnRlZCYmdGhpcy5jZW50cm9pZDtpZih0aGlzLnJlc2V0KCksbilyZXR1cm4gbn19O3ZhciBxbj1mdW5jdGlvbih0KXt0aGlzLnNpbmdsZVRhcD1uZXcgSG4odCksdGhpcy5udW1UYXBzPXQubnVtVGFwcyx0aGlzLnJlc2V0KCl9O3FuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMubGFzdFRpbWU9MS8wLGRlbGV0ZSB0aGlzLmxhc3RUYXAsdGhpcy5jb3VudD0wLHRoaXMuc2luZ2xlVGFwLnJlc2V0KCl9LHFuLnByb3RvdHlwZS50b3VjaHN0YXJ0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLnNpbmdsZVRhcC50b3VjaHN0YXJ0KHQsZSxyKX0scW4ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7dGhpcy5zaW5nbGVUYXAudG91Y2htb3ZlKHQsZSxyKX0scW4ucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLnNpbmdsZVRhcC50b3VjaGVuZCh0LGUscik7aWYobil7dmFyIGk9dC50aW1lU3RhbXAtdGhpcy5sYXN0VGltZTw1MDAsYT0hdGhpcy5sYXN0VGFwfHx0aGlzLmxhc3RUYXAuZGlzdChuKTwzMDtpZihpJiZhfHx0aGlzLnJlc2V0KCksdGhpcy5jb3VudCsrLHRoaXMubGFzdFRpbWU9dC50aW1lU3RhbXAsdGhpcy5sYXN0VGFwPW4sdGhpcy5jb3VudD09PXRoaXMubnVtVGFwcylyZXR1cm4gdGhpcy5yZXNldCgpLG59fTt2YXIgR249ZnVuY3Rpb24oKXt0aGlzLl96b29tSW49bmV3IHFuKHtudW1Ub3VjaGVzOjEsbnVtVGFwczoyfSksdGhpcy5fem9vbU91dD1uZXcgcW4oe251bVRvdWNoZXM6MixudW1UYXBzOjF9KSx0aGlzLnJlc2V0KCl9O0duLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMSx0aGlzLl96b29tSW4ucmVzZXQoKSx0aGlzLl96b29tT3V0LnJlc2V0KCl9LEduLnByb3RvdHlwZS50b3VjaHN0YXJ0PWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl96b29tSW4udG91Y2hzdGFydCh0LGUsciksdGhpcy5fem9vbU91dC50b3VjaHN0YXJ0KHQsZSxyKX0sR24ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7dGhpcy5fem9vbUluLnRvdWNobW92ZSh0LGUsciksdGhpcy5fem9vbU91dC50b3VjaG1vdmUodCxlLHIpfSxHbi5wcm90b3R5cGUudG91Y2hlbmQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsaT10aGlzLl96b29tSW4udG91Y2hlbmQodCxlLHIpLGE9dGhpcy5fem9vbU91dC50b3VjaGVuZCh0LGUscik7cmV0dXJuIGk/KHRoaXMuX2FjdGl2ZT0hMCx0LnByZXZlbnREZWZhdWx0KCksc2V0VGltZW91dCgoZnVuY3Rpb24oKXtyZXR1cm4gbi5yZXNldCgpfSksMCkse2NhbWVyYUFuaW1hdGlvbjpmdW5jdGlvbihlKXtyZXR1cm4gZS5lYXNlVG8oe2R1cmF0aW9uOjMwMCx6b29tOmUuZ2V0Wm9vbSgpKzEsYXJvdW5kOmUudW5wcm9qZWN0KGkpfSx7b3JpZ2luYWxFdmVudDp0fSl9fSk6YT8odGhpcy5fYWN0aXZlPSEwLHQucHJldmVudERlZmF1bHQoKSxzZXRUaW1lb3V0KChmdW5jdGlvbigpe3JldHVybiBuLnJlc2V0KCl9KSwwKSx7Y2FtZXJhQW5pbWF0aW9uOmZ1bmN0aW9uKGUpe3JldHVybiBlLmVhc2VUbyh7ZHVyYXRpb246MzAwLHpvb206ZS5nZXRab29tKCktMSxhcm91bmQ6ZS51bnByb2plY3QoYSl9LHtvcmlnaW5hbEV2ZW50OnR9KX19KTp2b2lkIDB9LEduLnByb3RvdHlwZS50b3VjaGNhbmNlbD1mdW5jdGlvbigpe3RoaXMucmVzZXQoKX0sR24ucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITB9LEduLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMSx0aGlzLnJlc2V0KCl9LEduLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0sR24ucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZX07dmFyIFluPWZ1bmN0aW9uKHQpe3RoaXMucmVzZXQoKSx0aGlzLl9jbGlja1RvbGVyYW5jZT10LmNsaWNrVG9sZXJhbmNlfHwxfTtZbi5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLl9hY3RpdmU9ITEsdGhpcy5fbW92ZWQ9ITEsZGVsZXRlIHRoaXMuX2xhc3RQb2ludCxkZWxldGUgdGhpcy5fZXZlbnRCdXR0b259LFluLnByb3RvdHlwZS5fY29ycmVjdEJ1dHRvbj1mdW5jdGlvbih0LGUpe3JldHVybiExfSxZbi5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odCxlKXtyZXR1cm57fX0sWW4ucHJvdG90eXBlLm1vdXNlZG93bj1mdW5jdGlvbih0LGUpe2lmKCF0aGlzLl9sYXN0UG9pbnQpe3ZhciBuPXIubW91c2VCdXR0b24odCk7dGhpcy5fY29ycmVjdEJ1dHRvbih0LG4pJiYodGhpcy5fbGFzdFBvaW50PWUsdGhpcy5fZXZlbnRCdXR0b249bil9fSxZbi5wcm90b3R5cGUubW91c2Vtb3ZlV2luZG93PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fbGFzdFBvaW50O2lmKHImJih0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fbW92ZWR8fCEoZS5kaXN0KHIpPHRoaXMuX2NsaWNrVG9sZXJhbmNlKSkpcmV0dXJuIHRoaXMuX21vdmVkPSEwLHRoaXMuX2xhc3RQb2ludD1lLHRoaXMuX21vdmUocixlKX0sWW4ucHJvdG90eXBlLm1vdXNldXBXaW5kb3c9ZnVuY3Rpb24odCl7ci5tb3VzZUJ1dHRvbih0KT09PXRoaXMuX2V2ZW50QnV0dG9uJiYodGhpcy5fbW92ZWQmJnIuc3VwcHJlc3NDbGljaygpLHRoaXMucmVzZXQoKSl9LFluLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLl9lbmFibGVkPSEwfSxZbi5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITEsdGhpcy5yZXNldCgpfSxZbi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9LFluLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmV9O3ZhciBXbj1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLm1vdXNlZG93bj1mdW5jdGlvbihlLHIpe3QucHJvdG90eXBlLm1vdXNlZG93bi5jYWxsKHRoaXMsZSxyKSx0aGlzLl9sYXN0UG9pbnQmJih0aGlzLl9hY3RpdmU9ITApfSxlLnByb3RvdHlwZS5fY29ycmVjdEJ1dHRvbj1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZSYmIXQuY3RybEtleX0sZS5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odCxlKXtyZXR1cm57YXJvdW5kOmUscGFuRGVsdGE6ZS5zdWIodCl9fSxlfShZbiksWG49ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5fY29ycmVjdEJ1dHRvbj1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZSYmdC5jdHJsS2V5fHwyPT09ZX0sZS5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odCxlKXt2YXIgcj0uOCooZS54LXQueCk7aWYocilyZXR1cm4gdGhpcy5fYWN0aXZlPSEwLHtiZWFyaW5nRGVsdGE6cn19LGUucHJvdG90eXBlLmNvbnRleHRtZW51PWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX0sZX0oWW4pLFpuPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUuX2NvcnJlY3RCdXR0b249ZnVuY3Rpb24odCxlKXtyZXR1cm4gMD09PWUmJnQuY3RybEtleXx8Mj09PWV9LGUucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9LS41KihlLnktdC55KTtpZihyKXJldHVybiB0aGlzLl9hY3RpdmU9ITAse3BpdGNoRGVsdGE6cn19LGUucHJvdG90eXBlLmNvbnRleHRtZW51PWZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKX0sZX0oWW4pLEpuPWZ1bmN0aW9uKHQpe3RoaXMuX21pblRvdWNoZXM9MSx0aGlzLl9jbGlja1RvbGVyYW5jZT10LmNsaWNrVG9sZXJhbmNlfHwxLHRoaXMucmVzZXQoKX07Sm4ucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5fYWN0aXZlPSExLHRoaXMuX3RvdWNoZXM9e30sdGhpcy5fc3VtPW5ldyB0LlBvaW50KDAsMCl9LEpuLnByb3RvdHlwZS50b3VjaHN0YXJ0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5fY2FsY3VsYXRlVHJhbnNmb3JtKHQsZSxyKX0sSm4ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7aWYodGhpcy5fYWN0aXZlKXJldHVybiB0LnByZXZlbnREZWZhdWx0KCksdGhpcy5fY2FsY3VsYXRlVHJhbnNmb3JtKHQsZSxyKX0sSm4ucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9jYWxjdWxhdGVUcmFuc2Zvcm0odCxlLHIpLHRoaXMuX2FjdGl2ZSYmci5sZW5ndGg8dGhpcy5fbWluVG91Y2hlcyYmdGhpcy5yZXNldCgpfSxKbi5wcm90b3R5cGUudG91Y2hjYW5jZWw9ZnVuY3Rpb24oKXt0aGlzLnJlc2V0KCl9LEpuLnByb3RvdHlwZS5fY2FsY3VsYXRlVHJhbnNmb3JtPWZ1bmN0aW9uKGUscixuKXtuLmxlbmd0aD4wJiYodGhpcy5fYWN0aXZlPSEwKTt2YXIgaT1WbihuLHIpLGE9bmV3IHQuUG9pbnQoMCwwKSxvPW5ldyB0LlBvaW50KDAsMCkscz0wO2Zvcih2YXIgbCBpbiBpKXt2YXIgYz1pW2xdLHU9dGhpcy5fdG91Y2hlc1tsXTt1JiYoYS5fYWRkKGMpLG8uX2FkZChjLnN1Yih1KSkscysrLGlbbF09Yyl9aWYodGhpcy5fdG91Y2hlcz1pLCEoczx0aGlzLl9taW5Ub3VjaGVzKSYmby5tYWcoKSl7dmFyIGY9by5kaXYocyk7aWYodGhpcy5fc3VtLl9hZGQoZiksISh0aGlzLl9zdW0ubWFnKCk8dGhpcy5fY2xpY2tUb2xlcmFuY2UpKXJldHVybnthcm91bmQ6YS5kaXYocykscGFuRGVsdGE6Zn19fSxKbi5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMH0sSm4ucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLl9lbmFibGVkPSExLHRoaXMucmVzZXQoKX0sSm4ucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmFibGVkfSxKbi5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYWN0aXZlfTt2YXIgS249ZnVuY3Rpb24oKXt0aGlzLnJlc2V0KCl9O2Z1bmN0aW9uIFFuKHQsZSxyKXtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylpZih0W25dLmlkZW50aWZpZXI9PT1yKXJldHVybiBlW25dfUtuLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMSxkZWxldGUgdGhpcy5fZmlyc3RUd29Ub3VjaGVzfSxLbi5wcm90b3R5cGUuX3N0YXJ0PWZ1bmN0aW9uKHQpe30sS24ucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm57fX0sS24ucHJvdG90eXBlLnRvdWNoc3RhcnQ9ZnVuY3Rpb24odCxlLHIpe3RoaXMuX2ZpcnN0VHdvVG91Y2hlc3x8ci5sZW5ndGg8Mnx8KHRoaXMuX2ZpcnN0VHdvVG91Y2hlcz1bclswXS5pZGVudGlmaWVyLHJbMV0uaWRlbnRpZmllcl0sdGhpcy5fc3RhcnQoW2VbMF0sZVsxXV0pKX0sS24ucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0LGUscil7aWYodGhpcy5fZmlyc3RUd29Ub3VjaGVzKXt0LnByZXZlbnREZWZhdWx0KCk7dmFyIG49dGhpcy5fZmlyc3RUd29Ub3VjaGVzLGk9blswXSxhPW5bMV0sbz1RbihyLGUsaSkscz1RbihyLGUsYSk7aWYobyYmcyl7dmFyIGw9dGhpcy5fYXJvdW5kQ2VudGVyP251bGw6by5hZGQocykuZGl2KDIpO3JldHVybiB0aGlzLl9tb3ZlKFtvLHNdLGwsdCl9fX0sS24ucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQsZSxuKXtpZih0aGlzLl9maXJzdFR3b1RvdWNoZXMpe3ZhciBpPXRoaXMuX2ZpcnN0VHdvVG91Y2hlcyxhPWlbMF0sbz1pWzFdLHM9UW4obixlLGEpLGw9UW4obixlLG8pO3MmJmx8fCh0aGlzLl9hY3RpdmUmJnIuc3VwcHJlc3NDbGljaygpLHRoaXMucmVzZXQoKSl9fSxLbi5wcm90b3R5cGUudG91Y2hjYW5jZWw9ZnVuY3Rpb24oKXt0aGlzLnJlc2V0KCl9LEtuLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24odCl7dGhpcy5fZW5hYmxlZD0hMCx0aGlzLl9hcm91bmRDZW50ZXI9ISF0JiYiY2VudGVyIj09PXQuYXJvdW5kfSxLbi5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITEsdGhpcy5yZXNldCgpfSxLbi5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9LEtuLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmV9O2Z1bmN0aW9uICRuKHQsZSl7cmV0dXJuIE1hdGgubG9nKHQvZSkvTWF0aC5MTjJ9dmFyIHRpPWZ1bmN0aW9uKHQpe2Z1bmN0aW9uIGUoKXt0LmFwcGx5KHRoaXMsYXJndW1lbnRzKX1yZXR1cm4gdCYmKGUuX19wcm90b19fPXQpLGUucHJvdG90eXBlPU9iamVjdC5jcmVhdGUodCYmdC5wcm90b3R5cGUpLGUucHJvdG90eXBlLmNvbnN0cnVjdG9yPWUsZS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0LnByb3RvdHlwZS5yZXNldC5jYWxsKHRoaXMpLGRlbGV0ZSB0aGlzLl9kaXN0YW5jZSxkZWxldGUgdGhpcy5fc3RhcnREaXN0YW5jZX0sZS5wcm90b3R5cGUuX3N0YXJ0PWZ1bmN0aW9uKHQpe3RoaXMuX3N0YXJ0RGlzdGFuY2U9dGhpcy5fZGlzdGFuY2U9dFswXS5kaXN0KHRbMV0pfSxlLnByb3RvdHlwZS5fbW92ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2Rpc3RhbmNlO2lmKHRoaXMuX2Rpc3RhbmNlPXRbMF0uZGlzdCh0WzFdKSx0aGlzLl9hY3RpdmV8fCEoTWF0aC5hYnMoJG4odGhpcy5fZGlzdGFuY2UsdGhpcy5fc3RhcnREaXN0YW5jZSkpPC4xKSlyZXR1cm4gdGhpcy5fYWN0aXZlPSEwLHt6b29tRGVsdGE6JG4odGhpcy5fZGlzdGFuY2UscikscGluY2hBcm91bmQ6ZX19LGV9KEtuKTtmdW5jdGlvbiBlaSh0LGUpe3JldHVybiAxODAqdC5hbmdsZVdpdGgoZSkvTWF0aC5QSX12YXIgcmk9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3QuYXBwbHkodGhpcyxhcmd1bWVudHMpfXJldHVybiB0JiYoZS5fX3Byb3RvX189dCksZS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZSh0JiZ0LnByb3RvdHlwZSksZS5wcm90b3R5cGUuY29uc3RydWN0b3I9ZSxlLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3QucHJvdG90eXBlLnJlc2V0LmNhbGwodGhpcyksZGVsZXRlIHRoaXMuX21pbkRpYW1ldGVyLGRlbGV0ZSB0aGlzLl9zdGFydFZlY3RvcixkZWxldGUgdGhpcy5fdmVjdG9yfSxlLnByb3RvdHlwZS5fc3RhcnQ9ZnVuY3Rpb24odCl7dGhpcy5fc3RhcnRWZWN0b3I9dGhpcy5fdmVjdG9yPXRbMF0uc3ViKHRbMV0pLHRoaXMuX21pbkRpYW1ldGVyPXRbMF0uZGlzdCh0WzFdKX0sZS5wcm90b3R5cGUuX21vdmU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92ZWN0b3I7aWYodGhpcy5fdmVjdG9yPXRbMF0uc3ViKHRbMV0pLHRoaXMuX2FjdGl2ZXx8IXRoaXMuX2lzQmVsb3dUaHJlc2hvbGQodGhpcy5fdmVjdG9yKSlyZXR1cm4gdGhpcy5fYWN0aXZlPSEwLHtiZWFyaW5nRGVsdGE6ZWkodGhpcy5fdmVjdG9yLHIpLHBpbmNoQXJvdW5kOmV9fSxlLnByb3RvdHlwZS5faXNCZWxvd1RocmVzaG9sZD1mdW5jdGlvbih0KXt0aGlzLl9taW5EaWFtZXRlcj1NYXRoLm1pbih0aGlzLl9taW5EaWFtZXRlcix0Lm1hZygpKTt2YXIgZT0yNS8oTWF0aC5QSSp0aGlzLl9taW5EaWFtZXRlcikqMzYwLHI9ZWkodCx0aGlzLl9zdGFydFZlY3Rvcik7cmV0dXJuIE1hdGguYWJzKHIpPGV9LGV9KEtuKTtmdW5jdGlvbiBuaSh0KXtyZXR1cm4gTWF0aC5hYnModC55KT5NYXRoLmFicyh0LngpfXZhciBpaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGUucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dC5wcm90b3R5cGUucmVzZXQuY2FsbCh0aGlzKSx0aGlzLl92YWxpZD12b2lkIDAsZGVsZXRlIHRoaXMuX2ZpcnN0TW92ZSxkZWxldGUgdGhpcy5fbGFzdFBvaW50c30sZS5wcm90b3R5cGUuX3N0YXJ0PWZ1bmN0aW9uKHQpe3RoaXMuX2xhc3RQb2ludHM9dCxuaSh0WzBdLnN1Yih0WzFdKSkmJih0aGlzLl92YWxpZD0hMSl9LGUucHJvdG90eXBlLl9tb3ZlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10WzBdLnN1Yih0aGlzLl9sYXN0UG9pbnRzWzBdKSxpPXRbMV0uc3ViKHRoaXMuX2xhc3RQb2ludHNbMV0pO2lmKHRoaXMuX3ZhbGlkPXRoaXMuZ2VzdHVyZUJlZ2luc1ZlcnRpY2FsbHkobixpLHIudGltZVN0YW1wKSx0aGlzLl92YWxpZCl7dGhpcy5fbGFzdFBvaW50cz10LHRoaXMuX2FjdGl2ZT0hMDtyZXR1cm57cGl0Y2hEZWx0YTotLjUqKChuLnkraS55KS8yKX19fSxlLnByb3RvdHlwZS5nZXN0dXJlQmVnaW5zVmVydGljYWxseT1mdW5jdGlvbih0LGUscil7aWYodm9pZCAwIT09dGhpcy5fdmFsaWQpcmV0dXJuIHRoaXMuX3ZhbGlkO3ZhciBuPXQubWFnKCk+PTIsaT1lLm1hZygpPj0yO2lmKG58fGkpe2lmKCFufHwhaSlyZXR1cm4gdm9pZCAwPT09dGhpcy5fZmlyc3RNb3ZlJiYodGhpcy5fZmlyc3RNb3ZlPXIpLHItdGhpcy5fZmlyc3RNb3ZlPDEwMCYmdm9pZCAwO3ZhciBhPXQueT4wPT1lLnk+MDtyZXR1cm4gbmkodCkmJm5pKGUpJiZhfX0sZX0oS24pLGFpPXtwYW5TdGVwOjEwMCxiZWFyaW5nU3RlcDoxNSxwaXRjaFN0ZXA6MTB9LG9pPWZ1bmN0aW9uKCl7dmFyIHQ9YWk7dGhpcy5fcGFuU3RlcD10LnBhblN0ZXAsdGhpcy5fYmVhcmluZ1N0ZXA9dC5iZWFyaW5nU3RlcCx0aGlzLl9waXRjaFN0ZXA9dC5waXRjaFN0ZXB9O2Z1bmN0aW9uIHNpKHQpe3JldHVybiB0KigyLXQpfW9pLnByb3RvdHlwZS5yZXNldD1mdW5jdGlvbigpe3RoaXMuX2FjdGl2ZT0hMX0sb2kucHJvdG90eXBlLmtleWRvd249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZighKHQuYWx0S2V5fHx0LmN0cmxLZXl8fHQubWV0YUtleSkpe3ZhciByPTAsbj0wLGk9MCxhPTAsbz0wO3N3aXRjaCh0LmtleUNvZGUpe2Nhc2UgNjE6Y2FzZSAxMDc6Y2FzZSAxNzE6Y2FzZSAxODc6cj0xO2JyZWFrO2Nhc2UgMTg5OmNhc2UgMTA5OmNhc2UgMTczOnI9LTE7YnJlYWs7Y2FzZSAzNzp0LnNoaWZ0S2V5P249LTE6KHQucHJldmVudERlZmF1bHQoKSxhPS0xKTticmVhaztjYXNlIDM5OnQuc2hpZnRLZXk/bj0xOih0LnByZXZlbnREZWZhdWx0KCksYT0xKTticmVhaztjYXNlIDM4OnQuc2hpZnRLZXk/aT0xOih0LnByZXZlbnREZWZhdWx0KCksbz0tMSk7YnJlYWs7Y2FzZSA0MDp0LnNoaWZ0S2V5P2k9LTE6KHQucHJldmVudERlZmF1bHQoKSxvPTEpO2JyZWFrO2RlZmF1bHQ6cmV0dXJufXJldHVybntjYW1lcmFBbmltYXRpb246ZnVuY3Rpb24ocyl7dmFyIGw9cy5nZXRab29tKCk7cy5lYXNlVG8oe2R1cmF0aW9uOjMwMCxlYXNlSWQ6ImtleWJvYXJkSGFuZGxlciIsZWFzaW5nOnNpLHpvb206cj9NYXRoLnJvdW5kKGwpK3IqKHQuc2hpZnRLZXk/MjoxKTpsLGJlYXJpbmc6cy5nZXRCZWFyaW5nKCkrbiplLl9iZWFyaW5nU3RlcCxwaXRjaDpzLmdldFBpdGNoKCkraSplLl9waXRjaFN0ZXAsb2Zmc2V0OlstYSplLl9wYW5TdGVwLC1vKmUuX3BhblN0ZXBdLGNlbnRlcjpzLmdldENlbnRlcigpfSx7b3JpZ2luYWxFdmVudDp0fSl9fX19LG9pLnByb3RvdHlwZS5lbmFibGU9ZnVuY3Rpb24oKXt0aGlzLl9lbmFibGVkPSEwfSxvaS5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITEsdGhpcy5yZXNldCgpfSxvaS5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VuYWJsZWR9LG9pLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9hY3RpdmV9O3ZhciBsaT1mdW5jdGlvbihlLHIpe3RoaXMuX21hcD1lLHRoaXMuX2VsPWUuZ2V0Q2FudmFzQ29udGFpbmVyKCksdGhpcy5faGFuZGxlcj1yLHRoaXMuX2RlbHRhPTAsdGhpcy5fZGVmYXVsdFpvb21SYXRlPS4wMSx0aGlzLl93aGVlbFpvb21SYXRlPTEvNDUwLHQuYmluZEFsbChbIl9vbldoZWVsIiwiX29uVGltZW91dCIsIl9vblNjcm9sbEZyYW1lIiwiX29uU2Nyb2xsRmluaXNoZWQiXSx0aGlzKX07bGkucHJvdG90eXBlLnNldFpvb21SYXRlPWZ1bmN0aW9uKHQpe3RoaXMuX2RlZmF1bHRab29tUmF0ZT10fSxsaS5wcm90b3R5cGUuc2V0V2hlZWxab29tUmF0ZT1mdW5jdGlvbih0KXt0aGlzLl93aGVlbFpvb21SYXRlPXR9LGxpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2VuYWJsZWR9LGxpLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fYWN0aXZlfHx2b2lkIDAhPT10aGlzLl9maW5pc2hUaW1lb3V0fSxsaS5wcm90b3R5cGUuaXNab29taW5nPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl96b29taW5nfSxsaS5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKHQpe3RoaXMuaXNFbmFibGVkKCl8fCh0aGlzLl9lbmFibGVkPSEwLHRoaXMuX2Fyb3VuZENlbnRlcj10JiYiY2VudGVyIj09PXQuYXJvdW5kKX0sbGkucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLmlzRW5hYmxlZCgpJiYodGhpcy5fZW5hYmxlZD0hMSl9LGxpLnByb3RvdHlwZS53aGVlbD1mdW5jdGlvbihlKXtpZih0aGlzLmlzRW5hYmxlZCgpKXt2YXIgcj1lLmRlbHRhTW9kZT09PXQud2luZG93LldoZWVsRXZlbnQuRE9NX0RFTFRBX0xJTkU/NDAqZS5kZWx0YVk6ZS5kZWx0YVksbj10LmJyb3dzZXIubm93KCksaT1uLSh0aGlzLl9sYXN0V2hlZWxFdmVudFRpbWV8fDApO3RoaXMuX2xhc3RXaGVlbEV2ZW50VGltZT1uLDAhPT1yJiZyJTQuMDAwMjQ0MTQwNjI1PT0wP3RoaXMuX3R5cGU9IndoZWVsIjowIT09ciYmTWF0aC5hYnMocik8ND90aGlzLl90eXBlPSJ0cmFja3BhZCI6aT40MDA/KHRoaXMuX3R5cGU9bnVsbCx0aGlzLl9sYXN0VmFsdWU9cix0aGlzLl90aW1lb3V0PXNldFRpbWVvdXQodGhpcy5fb25UaW1lb3V0LDQwLGUpKTp0aGlzLl90eXBlfHwodGhpcy5fdHlwZT1NYXRoLmFicyhpKnIpPDIwMD8idHJhY2twYWQiOiJ3aGVlbCIsdGhpcy5fdGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLl90aW1lb3V0KSx0aGlzLl90aW1lb3V0PW51bGwscis9dGhpcy5fbGFzdFZhbHVlKSksZS5zaGlmdEtleSYmciYmKHIvPTQpLHRoaXMuX3R5cGUmJih0aGlzLl9sYXN0V2hlZWxFdmVudD1lLHRoaXMuX2RlbHRhLT1yLHRoaXMuX2FjdGl2ZXx8dGhpcy5fc3RhcnQoZSkpLGUucHJldmVudERlZmF1bHQoKX19LGxpLnByb3RvdHlwZS5fb25UaW1lb3V0PWZ1bmN0aW9uKHQpe3RoaXMuX3R5cGU9IndoZWVsIix0aGlzLl9kZWx0YS09dGhpcy5fbGFzdFZhbHVlLHRoaXMuX2FjdGl2ZXx8dGhpcy5fc3RhcnQodCl9LGxpLnByb3RvdHlwZS5fc3RhcnQ9ZnVuY3Rpb24oZSl7aWYodGhpcy5fZGVsdGEpe3RoaXMuX2ZyYW1lSWQmJih0aGlzLl9mcmFtZUlkPW51bGwpLHRoaXMuX2FjdGl2ZT0hMCx0aGlzLmlzWm9vbWluZygpfHwodGhpcy5fem9vbWluZz0hMCksdGhpcy5fZmluaXNoVGltZW91dCYmKGNsZWFyVGltZW91dCh0aGlzLl9maW5pc2hUaW1lb3V0KSxkZWxldGUgdGhpcy5fZmluaXNoVGltZW91dCk7dmFyIG49ci5tb3VzZVBvcyh0aGlzLl9lbCxlKTt0aGlzLl9hcm91bmQ9dC5MbmdMYXQuY29udmVydCh0aGlzLl9hcm91bmRDZW50ZXI/dGhpcy5fbWFwLmdldENlbnRlcigpOnRoaXMuX21hcC51bnByb2plY3QobikpLHRoaXMuX2Fyb3VuZFBvaW50PXRoaXMuX21hcC50cmFuc2Zvcm0ubG9jYXRpb25Qb2ludCh0aGlzLl9hcm91bmQpLHRoaXMuX2ZyYW1lSWR8fCh0aGlzLl9mcmFtZUlkPSEwLHRoaXMuX2hhbmRsZXIuX3RyaWdnZXJSZW5kZXJGcmFtZSgpKX19LGxpLnByb3RvdHlwZS5yZW5kZXJGcmFtZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9vblNjcm9sbEZyYW1lKCl9LGxpLnByb3RvdHlwZS5fb25TY3JvbGxGcmFtZT1mdW5jdGlvbigpe3ZhciBlPXRoaXM7aWYodGhpcy5fZnJhbWVJZCYmKHRoaXMuX2ZyYW1lSWQ9bnVsbCx0aGlzLmlzQWN0aXZlKCkpKXt2YXIgcj10aGlzLl9tYXAudHJhbnNmb3JtO2lmKDAhPT10aGlzLl9kZWx0YSl7dmFyIG49IndoZWVsIj09PXRoaXMuX3R5cGUmJk1hdGguYWJzKHRoaXMuX2RlbHRhKT40LjAwMDI0NDE0MDYyNT90aGlzLl93aGVlbFpvb21SYXRlOnRoaXMuX2RlZmF1bHRab29tUmF0ZSxpPTIvKDErTWF0aC5leHAoLU1hdGguYWJzKHRoaXMuX2RlbHRhKm4pKSk7dGhpcy5fZGVsdGE8MCYmMCE9PWkmJihpPTEvaSk7dmFyIGE9Im51bWJlciI9PXR5cGVvZiB0aGlzLl90YXJnZXRab29tP3Iuem9vbVNjYWxlKHRoaXMuX3RhcmdldFpvb20pOnIuc2NhbGU7dGhpcy5fdGFyZ2V0Wm9vbT1NYXRoLm1pbihyLm1heFpvb20sTWF0aC5tYXgoci5taW5ab29tLHIuc2NhbGVab29tKGEqaSkpKSwid2hlZWwiPT09dGhpcy5fdHlwZSYmKHRoaXMuX3N0YXJ0Wm9vbT1yLnpvb20sdGhpcy5fZWFzaW5nPXRoaXMuX3Ntb290aE91dEVhc2luZygyMDApKSx0aGlzLl9kZWx0YT0wfXZhciBvLHM9Im51bWJlciI9PXR5cGVvZiB0aGlzLl90YXJnZXRab29tP3RoaXMuX3RhcmdldFpvb206ci56b29tLGw9dGhpcy5fc3RhcnRab29tLGM9dGhpcy5fZWFzaW5nLHU9ITE7aWYoIndoZWVsIj09PXRoaXMuX3R5cGUmJmwmJmMpe3ZhciBmPU1hdGgubWluKCh0LmJyb3dzZXIubm93KCktdGhpcy5fbGFzdFdoZWVsRXZlbnRUaW1lKS8yMDAsMSksaD1jKGYpO289dC5udW1iZXIobCxzLGgpLGY8MT90aGlzLl9mcmFtZUlkfHwodGhpcy5fZnJhbWVJZD0hMCk6dT0hMH1lbHNlIG89cyx1PSEwO3JldHVybiB0aGlzLl9hY3RpdmU9ITAsdSYmKHRoaXMuX2FjdGl2ZT0hMSx0aGlzLl9maW5pc2hUaW1lb3V0PXNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7ZS5fem9vbWluZz0hMSxlLl9oYW5kbGVyLl90cmlnZ2VyUmVuZGVyRnJhbWUoKSxkZWxldGUgZS5fdGFyZ2V0Wm9vbSxkZWxldGUgZS5fZmluaXNoVGltZW91dH0pLDIwMCkpLHtub0luZXJ0aWE6ITAsbmVlZHNSZW5kZXJGcmFtZTohdSx6b29tRGVsdGE6by1yLnpvb20sYXJvdW5kOnRoaXMuX2Fyb3VuZFBvaW50LG9yaWdpbmFsRXZlbnQ6dGhpcy5fbGFzdFdoZWVsRXZlbnR9fX0sbGkucHJvdG90eXBlLl9zbW9vdGhPdXRFYXNpbmc9ZnVuY3Rpb24oZSl7dmFyIHI9dC5lYXNlO2lmKHRoaXMuX3ByZXZFYXNlKXt2YXIgbj10aGlzLl9wcmV2RWFzZSxpPSh0LmJyb3dzZXIubm93KCktbi5zdGFydCkvbi5kdXJhdGlvbixhPW4uZWFzaW5nKGkrLjAxKS1uLmVhc2luZyhpKSxvPS4yNy9NYXRoLnNxcnQoYSphKzFlLTQpKi4wMSxzPU1hdGguc3FydCguMDcyOS1vKm8pO3I9dC5iZXppZXIobyxzLC4yNSwxKX1yZXR1cm4gdGhpcy5fcHJldkVhc2U9e3N0YXJ0OnQuYnJvd3Nlci5ub3coKSxkdXJhdGlvbjplLGVhc2luZzpyfSxyfSxsaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLl9hY3RpdmU9ITF9O3ZhciBjaT1mdW5jdGlvbih0LGUpe3RoaXMuX2NsaWNrWm9vbT10LHRoaXMuX3RhcFpvb209ZX07Y2kucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2NsaWNrWm9vbS5lbmFibGUoKSx0aGlzLl90YXBab29tLmVuYWJsZSgpfSxjaS5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX2NsaWNrWm9vbS5kaXNhYmxlKCksdGhpcy5fdGFwWm9vbS5kaXNhYmxlKCl9LGNpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2xpY2tab29tLmlzRW5hYmxlZCgpJiZ0aGlzLl90YXBab29tLmlzRW5hYmxlZCgpfSxjaS5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2xpY2tab29tLmlzQWN0aXZlKCl8fHRoaXMuX3RhcFpvb20uaXNBY3RpdmUoKX07dmFyIHVpPWZ1bmN0aW9uKCl7dGhpcy5yZXNldCgpfTt1aS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLl9hY3RpdmU9ITF9LHVpLnByb3RvdHlwZS5kYmxjbGljaz1mdW5jdGlvbih0LGUpe3JldHVybiB0LnByZXZlbnREZWZhdWx0KCkse2NhbWVyYUFuaW1hdGlvbjpmdW5jdGlvbihyKXtyLmVhc2VUbyh7ZHVyYXRpb246MzAwLHpvb206ci5nZXRab29tKCkrKHQuc2hpZnRLZXk/LTE6MSksYXJvdW5kOnIudW5wcm9qZWN0KGUpfSx7b3JpZ2luYWxFdmVudDp0fSl9fX0sdWkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITB9LHVpLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMSx0aGlzLnJlc2V0KCl9LHVpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0sdWkucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZX07dmFyIGZpPWZ1bmN0aW9uKCl7dGhpcy5fdGFwPW5ldyBxbih7bnVtVG91Y2hlczoxLG51bVRhcHM6MX0pLHRoaXMucmVzZXQoKX07ZmkucHJvdG90eXBlLnJlc2V0PWZ1bmN0aW9uKCl7dGhpcy5fYWN0aXZlPSExLGRlbGV0ZSB0aGlzLl9zd2lwZVBvaW50LGRlbGV0ZSB0aGlzLl9zd2lwZVRvdWNoLGRlbGV0ZSB0aGlzLl90YXBUaW1lLHRoaXMuX3RhcC5yZXNldCgpfSxmaS5wcm90b3R5cGUudG91Y2hzdGFydD1mdW5jdGlvbih0LGUscil7dGhpcy5fc3dpcGVQb2ludHx8KHRoaXMuX3RhcFRpbWUmJnQudGltZVN0YW1wLXRoaXMuX3RhcFRpbWU+NTAwJiZ0aGlzLnJlc2V0KCksdGhpcy5fdGFwVGltZT9yLmxlbmd0aD4wJiYodGhpcy5fc3dpcGVQb2ludD1lWzBdLHRoaXMuX3N3aXBlVG91Y2g9clswXS5pZGVudGlmaWVyKTp0aGlzLl90YXAudG91Y2hzdGFydCh0LGUscikpfSxmaS5wcm90b3R5cGUudG91Y2htb3ZlPWZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLl90YXBUaW1lKXtpZih0aGlzLl9zd2lwZVBvaW50KXtpZihyWzBdLmlkZW50aWZpZXIhPT10aGlzLl9zd2lwZVRvdWNoKXJldHVybjt2YXIgbj1lWzBdLGk9bi55LXRoaXMuX3N3aXBlUG9pbnQueTtyZXR1cm4gdGhpcy5fc3dpcGVQb2ludD1uLHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9hY3RpdmU9ITAse3pvb21EZWx0YTppLzEyOH19fWVsc2UgdGhpcy5fdGFwLnRvdWNobW92ZSh0LGUscil9LGZpLnByb3RvdHlwZS50b3VjaGVuZD1mdW5jdGlvbih0LGUscil7dGhpcy5fdGFwVGltZT90aGlzLl9zd2lwZVBvaW50JiYwPT09ci5sZW5ndGgmJnRoaXMucmVzZXQoKTp0aGlzLl90YXAudG91Y2hlbmQodCxlLHIpJiYodGhpcy5fdGFwVGltZT10LnRpbWVTdGFtcCl9LGZpLnByb3RvdHlwZS50b3VjaGNhbmNlbD1mdW5jdGlvbigpe3RoaXMucmVzZXQoKX0sZmkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX2VuYWJsZWQ9ITB9LGZpLnByb3RvdHlwZS5kaXNhYmxlPWZ1bmN0aW9uKCl7dGhpcy5fZW5hYmxlZD0hMSx0aGlzLnJlc2V0KCl9LGZpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5hYmxlZH0sZmkucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FjdGl2ZX07dmFyIGhpPWZ1bmN0aW9uKHQsZSxyKXt0aGlzLl9lbD10LHRoaXMuX21vdXNlUGFuPWUsdGhpcy5fdG91Y2hQYW49cn07aGkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbih0KXt0aGlzLl9pbmVydGlhT3B0aW9ucz10fHx7fSx0aGlzLl9tb3VzZVBhbi5lbmFibGUoKSx0aGlzLl90b3VjaFBhbi5lbmFibGUoKSx0aGlzLl9lbC5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC10b3VjaC1kcmFnLXBhbiIpfSxoaS5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX21vdXNlUGFuLmRpc2FibGUoKSx0aGlzLl90b3VjaFBhbi5kaXNhYmxlKCksdGhpcy5fZWwuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtdG91Y2gtZHJhZy1wYW4iKX0saGkucHJvdG90eXBlLmlzRW5hYmxlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb3VzZVBhbi5pc0VuYWJsZWQoKSYmdGhpcy5fdG91Y2hQYW4uaXNFbmFibGVkKCl9LGhpLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tb3VzZVBhbi5pc0FjdGl2ZSgpfHx0aGlzLl90b3VjaFBhbi5pc0FjdGl2ZSgpfTt2YXIgcGk9ZnVuY3Rpb24odCxlLHIpe3RoaXMuX3BpdGNoV2l0aFJvdGF0ZT10LnBpdGNoV2l0aFJvdGF0ZSx0aGlzLl9tb3VzZVJvdGF0ZT1lLHRoaXMuX21vdXNlUGl0Y2g9cn07cGkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbigpe3RoaXMuX21vdXNlUm90YXRlLmVuYWJsZSgpLHRoaXMuX3BpdGNoV2l0aFJvdGF0ZSYmdGhpcy5fbW91c2VQaXRjaC5lbmFibGUoKX0scGkucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXt0aGlzLl9tb3VzZVJvdGF0ZS5kaXNhYmxlKCksdGhpcy5fbW91c2VQaXRjaC5kaXNhYmxlKCl9LHBpLnByb3RvdHlwZS5pc0VuYWJsZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbW91c2VSb3RhdGUuaXNFbmFibGVkKCkmJighdGhpcy5fcGl0Y2hXaXRoUm90YXRlfHx0aGlzLl9tb3VzZVBpdGNoLmlzRW5hYmxlZCgpKX0scGkucHJvdG90eXBlLmlzQWN0aXZlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vdXNlUm90YXRlLmlzQWN0aXZlKCl8fHRoaXMuX21vdXNlUGl0Y2guaXNBY3RpdmUoKX07dmFyIGRpPWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMuX2VsPXQsdGhpcy5fdG91Y2hab29tPWUsdGhpcy5fdG91Y2hSb3RhdGU9cix0aGlzLl90YXBEcmFnWm9vbT1uLHRoaXMuX3JvdGF0aW9uRGlzYWJsZWQ9ITEsdGhpcy5fZW5hYmxlZD0hMH07ZGkucHJvdG90eXBlLmVuYWJsZT1mdW5jdGlvbih0KXt0aGlzLl90b3VjaFpvb20uZW5hYmxlKHQpLHRoaXMuX3JvdGF0aW9uRGlzYWJsZWR8fHRoaXMuX3RvdWNoUm90YXRlLmVuYWJsZSh0KSx0aGlzLl90YXBEcmFnWm9vbS5lbmFibGUoKSx0aGlzLl9lbC5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC10b3VjaC16b29tLXJvdGF0ZSIpfSxkaS5wcm90b3R5cGUuZGlzYWJsZT1mdW5jdGlvbigpe3RoaXMuX3RvdWNoWm9vbS5kaXNhYmxlKCksdGhpcy5fdG91Y2hSb3RhdGUuZGlzYWJsZSgpLHRoaXMuX3RhcERyYWdab29tLmRpc2FibGUoKSx0aGlzLl9lbC5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC10b3VjaC16b29tLXJvdGF0ZSIpfSxkaS5wcm90b3R5cGUuaXNFbmFibGVkPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RvdWNoWm9vbS5pc0VuYWJsZWQoKSYmKHRoaXMuX3JvdGF0aW9uRGlzYWJsZWR8fHRoaXMuX3RvdWNoUm90YXRlLmlzRW5hYmxlZCgpKSYmdGhpcy5fdGFwRHJhZ1pvb20uaXNFbmFibGVkKCl9LGRpLnByb3RvdHlwZS5pc0FjdGl2ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl90b3VjaFpvb20uaXNBY3RpdmUoKXx8dGhpcy5fdG91Y2hSb3RhdGUuaXNBY3RpdmUoKXx8dGhpcy5fdGFwRHJhZ1pvb20uaXNBY3RpdmUoKX0sZGkucHJvdG90eXBlLmRpc2FibGVSb3RhdGlvbj1mdW5jdGlvbigpe3RoaXMuX3JvdGF0aW9uRGlzYWJsZWQ9ITAsdGhpcy5fdG91Y2hSb3RhdGUuZGlzYWJsZSgpfSxkaS5wcm90b3R5cGUuZW5hYmxlUm90YXRpb249ZnVuY3Rpb24oKXt0aGlzLl9yb3RhdGlvbkRpc2FibGVkPSExLHRoaXMuX3RvdWNoWm9vbS5pc0VuYWJsZWQoKSYmdGhpcy5fdG91Y2hSb3RhdGUuZW5hYmxlKCl9O3ZhciBtaT1mdW5jdGlvbih0KXtyZXR1cm4gdC56b29tfHx0LmRyYWd8fHQucGl0Y2h8fHQucm90YXRlfSxnaT1mdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7dC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9cmV0dXJuIHQmJihlLl9fcHJvdG9fXz10KSxlLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKHQmJnQucHJvdG90eXBlKSxlLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1lLGV9KHQuRXZlbnQpO2Z1bmN0aW9uIHZpKHQpe3JldHVybiB0LnBhbkRlbHRhJiZ0LnBhbkRlbHRhLm1hZygpfHx0Lnpvb21EZWx0YXx8dC5iZWFyaW5nRGVsdGF8fHQucGl0Y2hEZWx0YX12YXIgeWk9ZnVuY3Rpb24oZSxuKXt0aGlzLl9tYXA9ZSx0aGlzLl9lbD10aGlzLl9tYXAuZ2V0Q2FudmFzQ29udGFpbmVyKCksdGhpcy5faGFuZGxlcnM9W10sdGhpcy5faGFuZGxlcnNCeUlkPXt9LHRoaXMuX2NoYW5nZXM9W10sdGhpcy5faW5lcnRpYT1uZXcgT24oZSksdGhpcy5fYmVhcmluZ1NuYXA9bi5iZWFyaW5nU25hcCx0aGlzLl9wcmV2aW91c0FjdGl2ZUhhbmRsZXJzPXt9LHRoaXMuX2V2ZW50c0luUHJvZ3Jlc3M9e30sdGhpcy5fYWRkRGVmYXVsdEhhbmRsZXJzKG4pLHQuYmluZEFsbChbImhhbmRsZUV2ZW50IiwiaGFuZGxlV2luZG93RXZlbnQiXSx0aGlzKTt2YXIgaT10aGlzLl9lbDt0aGlzLl9saXN0ZW5lcnM9W1tpLCJ0b3VjaHN0YXJ0Iix7cGFzc2l2ZTohMX1dLFtpLCJ0b3VjaG1vdmUiLHtwYXNzaXZlOiExfV0sW2ksInRvdWNoZW5kIix2b2lkIDBdLFtpLCJ0b3VjaGNhbmNlbCIsdm9pZCAwXSxbaSwibW91c2Vkb3duIix2b2lkIDBdLFtpLCJtb3VzZW1vdmUiLHZvaWQgMF0sW2ksIm1vdXNldXAiLHZvaWQgMF0sW3Qud2luZG93LmRvY3VtZW50LCJtb3VzZW1vdmUiLHtjYXB0dXJlOiEwfV0sW3Qud2luZG93LmRvY3VtZW50LCJtb3VzZXVwIix2b2lkIDBdLFtpLCJtb3VzZW92ZXIiLHZvaWQgMF0sW2ksIm1vdXNlb3V0Iix2b2lkIDBdLFtpLCJkYmxjbGljayIsdm9pZCAwXSxbaSwiY2xpY2siLHZvaWQgMF0sW2ksImtleWRvd24iLHtjYXB0dXJlOiExfV0sW2ksImtleXVwIix2b2lkIDBdLFtpLCJ3aGVlbCIse3Bhc3NpdmU6ITF9XSxbaSwiY29udGV4dG1lbnUiLHZvaWQgMF0sW3Qud2luZG93LCJibHVyIix2b2lkIDBdXTtmb3IodmFyIGE9MCxvPXRoaXMuX2xpc3RlbmVyczthPG8ubGVuZ3RoO2ErPTEpe3ZhciBzPW9bYV0sbD1zWzBdLGM9c1sxXSx1PXNbMl07ci5hZGRFdmVudExpc3RlbmVyKGwsYyxsPT09dC53aW5kb3cuZG9jdW1lbnQ/dGhpcy5oYW5kbGVXaW5kb3dFdmVudDp0aGlzLmhhbmRsZUV2ZW50LHUpfX07eWkucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtmb3IodmFyIGU9MCxuPXRoaXMuX2xpc3RlbmVycztlPG4ubGVuZ3RoO2UrPTEpe3ZhciBpPW5bZV0sYT1pWzBdLG89aVsxXSxzPWlbMl07ci5yZW1vdmVFdmVudExpc3RlbmVyKGEsbyxhPT09dC53aW5kb3cuZG9jdW1lbnQ/dGhpcy5oYW5kbGVXaW5kb3dFdmVudDp0aGlzLmhhbmRsZUV2ZW50LHMpfX0seWkucHJvdG90eXBlLl9hZGREZWZhdWx0SGFuZGxlcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbWFwLHI9ZS5nZXRDYW52YXNDb250YWluZXIoKTt0aGlzLl9hZGQoIm1hcEV2ZW50IixuZXcgTm4oZSx0KSk7dmFyIG49ZS5ib3hab29tPW5ldyBVbihlLHQpO3RoaXMuX2FkZCgiYm94Wm9vbSIsbik7dmFyIGk9bmV3IEduLGE9bmV3IHVpO2UuZG91YmxlQ2xpY2tab29tPW5ldyBjaShhLGkpLHRoaXMuX2FkZCgidGFwWm9vbSIsaSksdGhpcy5fYWRkKCJjbGlja1pvb20iLGEpO3ZhciBvPW5ldyBmaTt0aGlzLl9hZGQoInRhcERyYWdab29tIixvKTt2YXIgcz1lLnRvdWNoUGl0Y2g9bmV3IGlpO3RoaXMuX2FkZCgidG91Y2hQaXRjaCIscyk7dmFyIGw9bmV3IFhuKHQpLGM9bmV3IFpuKHQpO2UuZHJhZ1JvdGF0ZT1uZXcgcGkodCxsLGMpLHRoaXMuX2FkZCgibW91c2VSb3RhdGUiLGwsWyJtb3VzZVBpdGNoIl0pLHRoaXMuX2FkZCgibW91c2VQaXRjaCIsYyxbIm1vdXNlUm90YXRlIl0pO3ZhciB1PW5ldyBXbih0KSxmPW5ldyBKbih0KTtlLmRyYWdQYW49bmV3IGhpKHIsdSxmKSx0aGlzLl9hZGQoIm1vdXNlUGFuIix1KSx0aGlzLl9hZGQoInRvdWNoUGFuIixmLFsidG91Y2hab29tIiwidG91Y2hSb3RhdGUiXSk7dmFyIGg9bmV3IHJpLHA9bmV3IHRpO2UudG91Y2hab29tUm90YXRlPW5ldyBkaShyLHAsaCxvKSx0aGlzLl9hZGQoInRvdWNoUm90YXRlIixoLFsidG91Y2hQYW4iLCJ0b3VjaFpvb20iXSksdGhpcy5fYWRkKCJ0b3VjaFpvb20iLHAsWyJ0b3VjaFBhbiIsInRvdWNoUm90YXRlIl0pO3ZhciBkPWUuc2Nyb2xsWm9vbT1uZXcgbGkoZSx0aGlzKTt0aGlzLl9hZGQoInNjcm9sbFpvb20iLGQsWyJtb3VzZVBhbiJdKTt2YXIgbT1lLmtleWJvYXJkPW5ldyBvaTt0aGlzLl9hZGQoImtleWJvYXJkIixtKSx0aGlzLl9hZGQoImJsb2NrYWJsZU1hcEV2ZW50IixuZXcgam4oZSkpO2Zvcih2YXIgZz0wLHY9WyJib3hab29tIiwiZG91YmxlQ2xpY2tab29tIiwidGFwRHJhZ1pvb20iLCJ0b3VjaFBpdGNoIiwiZHJhZ1JvdGF0ZSIsImRyYWdQYW4iLCJ0b3VjaFpvb21Sb3RhdGUiLCJzY3JvbGxab29tIiwia2V5Ym9hcmQiXTtnPHYubGVuZ3RoO2crPTEpe3ZhciB5PXZbZ107dC5pbnRlcmFjdGl2ZSYmdFt5XSYmZVt5XS5lbmFibGUodFt5XSl9fSx5aS5wcm90b3R5cGUuX2FkZD1mdW5jdGlvbih0LGUscil7dGhpcy5faGFuZGxlcnMucHVzaCh7aGFuZGxlck5hbWU6dCxoYW5kbGVyOmUsYWxsb3dlZDpyfSksdGhpcy5faGFuZGxlcnNCeUlkW3RdPWV9LHlpLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7aWYoIXRoaXMuX3VwZGF0aW5nQ2FtZXJhKXtmb3IodmFyIHQ9MCxlPXRoaXMuX2hhbmRsZXJzO3Q8ZS5sZW5ndGg7dCs9MSl7ZVt0XS5oYW5kbGVyLnJlc2V0KCl9dGhpcy5faW5lcnRpYS5jbGVhcigpLHRoaXMuX2ZpcmVFdmVudHMoe30se30pLHRoaXMuX2NoYW5nZXM9W119fSx5aS5wcm90b3R5cGUuaXNBY3RpdmU9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxlPXRoaXMuX2hhbmRsZXJzO3Q8ZS5sZW5ndGg7dCs9MSl7aWYoZVt0XS5oYW5kbGVyLmlzQWN0aXZlKCkpcmV0dXJuITB9cmV0dXJuITF9LHlpLnByb3RvdHlwZS5pc1pvb21pbmc9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2V2ZW50c0luUHJvZ3Jlc3Muem9vbXx8dGhpcy5fbWFwLnNjcm9sbFpvb20uaXNab29taW5nKCl9LHlpLnByb3RvdHlwZS5pc1JvdGF0aW5nPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9ldmVudHNJblByb2dyZXNzLnJvdGF0ZX0seWkucHJvdG90eXBlLmlzTW92aW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEJvb2xlYW4obWkodGhpcy5fZXZlbnRzSW5Qcm9ncmVzcykpfHx0aGlzLmlzWm9vbWluZygpfSx5aS5wcm90b3R5cGUuX2Jsb2NrZWRCeUFjdGl2ZT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuIGluIHQpaWYobiE9PXImJighZXx8ZS5pbmRleE9mKG4pPDApKXJldHVybiEwO3JldHVybiExfSx5aS5wcm90b3R5cGUuaGFuZGxlV2luZG93RXZlbnQ9ZnVuY3Rpb24odCl7dGhpcy5oYW5kbGVFdmVudCh0LHQudHlwZSsiV2luZG93Iil9LHlpLnByb3RvdHlwZS5fZ2V0TWFwVG91Y2hlcz1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wLG49dDtyPG4ubGVuZ3RoO3IrPTEpe3ZhciBpPW5bcl0sYT1pLnRhcmdldDt0aGlzLl9lbC5jb250YWlucyhhKSYmZS5wdXNoKGkpfXJldHVybiBlfSx5aS5wcm90b3R5cGUuaGFuZGxlRXZlbnQ9ZnVuY3Rpb24odCxlKXtpZigiYmx1ciIhPT10LnR5cGUpe3RoaXMuX3VwZGF0aW5nQ2FtZXJhPSEwO2Zvcih2YXIgbj0icmVuZGVyRnJhbWUiPT09dC50eXBlP3ZvaWQgMDp0LGk9e25lZWRzUmVuZGVyRnJhbWU6ITF9LGE9e30sbz17fSxzPXQudG91Y2hlcz90aGlzLl9nZXRNYXBUb3VjaGVzKHQudG91Y2hlcyk6dm9pZCAwLGw9cz9yLnRvdWNoUG9zKHRoaXMuX2VsLHMpOnIubW91c2VQb3ModGhpcy5fZWwsdCksYz0wLHU9dGhpcy5faGFuZGxlcnM7Yzx1Lmxlbmd0aDtjKz0xKXt2YXIgZj11W2NdLGg9Zi5oYW5kbGVyTmFtZSxwPWYuaGFuZGxlcixkPWYuYWxsb3dlZDtpZihwLmlzRW5hYmxlZCgpKXt2YXIgbT12b2lkIDA7dGhpcy5fYmxvY2tlZEJ5QWN0aXZlKG8sZCxoKT9wLnJlc2V0KCk6cFtlfHx0LnR5cGVdJiYobT1wW2V8fHQudHlwZV0odCxsLHMpLHRoaXMubWVyZ2VIYW5kbGVyUmVzdWx0KGksYSxtLGgsbiksbSYmbS5uZWVkc1JlbmRlckZyYW1lJiZ0aGlzLl90cmlnZ2VyUmVuZGVyRnJhbWUoKSksKG18fHAuaXNBY3RpdmUoKSkmJihvW2hdPXApfX12YXIgZz17fTtmb3IodmFyIHYgaW4gdGhpcy5fcHJldmlvdXNBY3RpdmVIYW5kbGVycylvW3ZdfHwoZ1t2XT1uKTt0aGlzLl9wcmV2aW91c0FjdGl2ZUhhbmRsZXJzPW8sKE9iamVjdC5rZXlzKGcpLmxlbmd0aHx8dmkoaSkpJiYodGhpcy5fY2hhbmdlcy5wdXNoKFtpLGEsZ10pLHRoaXMuX3RyaWdnZXJSZW5kZXJGcmFtZSgpKSwoT2JqZWN0LmtleXMobykubGVuZ3RofHx2aShpKSkmJnRoaXMuX21hcC5fc3RvcCghMCksdGhpcy5fdXBkYXRpbmdDYW1lcmE9ITE7dmFyIHk9aS5jYW1lcmFBbmltYXRpb247eSYmKHRoaXMuX2luZXJ0aWEuY2xlYXIoKSx0aGlzLl9maXJlRXZlbnRzKHt9LHt9KSx0aGlzLl9jaGFuZ2VzPVtdLHkodGhpcy5fbWFwKSl9ZWxzZSB0aGlzLnN0b3AoKX0seWkucHJvdG90eXBlLm1lcmdlSGFuZGxlclJlc3VsdD1mdW5jdGlvbihlLHIsbixpLGEpe2lmKG4pe3QuZXh0ZW5kKGUsbik7dmFyIG89e2hhbmRsZXJOYW1lOmksb3JpZ2luYWxFdmVudDpuLm9yaWdpbmFsRXZlbnR8fGF9O3ZvaWQgMCE9PW4uem9vbURlbHRhJiYoci56b29tPW8pLHZvaWQgMCE9PW4ucGFuRGVsdGEmJihyLmRyYWc9byksdm9pZCAwIT09bi5waXRjaERlbHRhJiYoci5waXRjaD1vKSx2b2lkIDAhPT1uLmJlYXJpbmdEZWx0YSYmKHIucm90YXRlPW8pfX0seWkucHJvdG90eXBlLl9hcHBseUNoYW5nZXM9ZnVuY3Rpb24oKXtmb3IodmFyIGU9e30scj17fSxuPXt9LGk9MCxhPXRoaXMuX2NoYW5nZXM7aTxhLmxlbmd0aDtpKz0xKXt2YXIgbz1hW2ldLHM9b1swXSxsPW9bMV0sYz1vWzJdO3MucGFuRGVsdGEmJihlLnBhbkRlbHRhPShlLnBhbkRlbHRhfHxuZXcgdC5Qb2ludCgwLDApKS5fYWRkKHMucGFuRGVsdGEpKSxzLnpvb21EZWx0YSYmKGUuem9vbURlbHRhPShlLnpvb21EZWx0YXx8MCkrcy56b29tRGVsdGEpLHMuYmVhcmluZ0RlbHRhJiYoZS5iZWFyaW5nRGVsdGE9KGUuYmVhcmluZ0RlbHRhfHwwKStzLmJlYXJpbmdEZWx0YSkscy5waXRjaERlbHRhJiYoZS5waXRjaERlbHRhPShlLnBpdGNoRGVsdGF8fDApK3MucGl0Y2hEZWx0YSksdm9pZCAwIT09cy5hcm91bmQmJihlLmFyb3VuZD1zLmFyb3VuZCksdm9pZCAwIT09cy5waW5jaEFyb3VuZCYmKGUucGluY2hBcm91bmQ9cy5waW5jaEFyb3VuZCkscy5ub0luZXJ0aWEmJihlLm5vSW5lcnRpYT1zLm5vSW5lcnRpYSksdC5leHRlbmQocixsKSx0LmV4dGVuZChuLGMpfXRoaXMuX3VwZGF0ZU1hcFRyYW5zZm9ybShlLHIsbiksdGhpcy5fY2hhbmdlcz1bXX0seWkucHJvdG90eXBlLl91cGRhdGVNYXBUcmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuX21hcCxpPW4udHJhbnNmb3JtO2lmKCF2aSh0KSlyZXR1cm4gdGhpcy5fZmlyZUV2ZW50cyhlLHIpO3ZhciBhPXQucGFuRGVsdGEsbz10Lnpvb21EZWx0YSxzPXQuYmVhcmluZ0RlbHRhLGw9dC5waXRjaERlbHRhLGM9dC5hcm91bmQsdT10LnBpbmNoQXJvdW5kO3ZvaWQgMCE9PXUmJihjPXUpLG4uX3N0b3AoITApLGM9Y3x8bi50cmFuc2Zvcm0uY2VudGVyUG9pbnQ7dmFyIGY9aS5wb2ludExvY2F0aW9uKGE/Yy5zdWIoYSk6Yyk7cyYmKGkuYmVhcmluZys9cyksbCYmKGkucGl0Y2grPWwpLG8mJihpLnpvb20rPW8pLGkuc2V0TG9jYXRpb25BdFBvaW50KGYsYyksdGhpcy5fbWFwLl91cGRhdGUoKSx0Lm5vSW5lcnRpYXx8dGhpcy5faW5lcnRpYS5yZWNvcmQodCksdGhpcy5fZmlyZUV2ZW50cyhlLHIpfSx5aS5wcm90b3R5cGUuX2ZpcmVFdmVudHM9ZnVuY3Rpb24oZSxyKXt2YXIgbj10aGlzLGk9bWkodGhpcy5fZXZlbnRzSW5Qcm9ncmVzcyksYT1taShlKSxvPXt9O2Zvcih2YXIgcyBpbiBlKXt2YXIgbD1lW3NdLm9yaWdpbmFsRXZlbnQ7dGhpcy5fZXZlbnRzSW5Qcm9ncmVzc1tzXXx8KG9bcysic3RhcnQiXT1sKSx0aGlzLl9ldmVudHNJblByb2dyZXNzW3NdPWVbc119Zm9yKHZhciBjIGluIWkmJmEmJnRoaXMuX2ZpcmVFdmVudCgibW92ZXN0YXJ0IixhLm9yaWdpbmFsRXZlbnQpLG8pdGhpcy5fZmlyZUV2ZW50KGMsb1tjXSk7Zm9yKHZhciB1IGluIGUucm90YXRlJiYodGhpcy5fYmVhcmluZ0NoYW5nZWQ9ITApLGEmJnRoaXMuX2ZpcmVFdmVudCgibW92ZSIsYS5vcmlnaW5hbEV2ZW50KSxlKXt2YXIgZj1lW3VdLm9yaWdpbmFsRXZlbnQ7dGhpcy5fZmlyZUV2ZW50KHUsZil9dmFyIGgscD17fTtmb3IodmFyIGQgaW4gdGhpcy5fZXZlbnRzSW5Qcm9ncmVzcyl7dmFyIG09dGhpcy5fZXZlbnRzSW5Qcm9ncmVzc1tkXSxnPW0uaGFuZGxlck5hbWUsdj1tLm9yaWdpbmFsRXZlbnQ7dGhpcy5faGFuZGxlcnNCeUlkW2ddLmlzQWN0aXZlKCl8fChkZWxldGUgdGhpcy5fZXZlbnRzSW5Qcm9ncmVzc1tkXSxoPXJbZ118fHYscFtkKyJlbmQiXT1oKX1mb3IodmFyIHkgaW4gcCl0aGlzLl9maXJlRXZlbnQoeSxwW3ldKTt2YXIgeD1taSh0aGlzLl9ldmVudHNJblByb2dyZXNzKTtpZigoaXx8YSkmJiF4KXt0aGlzLl91cGRhdGluZ0NhbWVyYT0hMDt2YXIgYj10aGlzLl9pbmVydGlhLl9vbk1vdmVFbmQodGhpcy5fbWFwLmRyYWdQYW4uX2luZXJ0aWFPcHRpb25zKSxfPWZ1bmN0aW9uKHQpe3JldHVybiAwIT09dCYmLW4uX2JlYXJpbmdTbmFwPHQmJnQ8bi5fYmVhcmluZ1NuYXB9O2I/KF8oYi5iZWFyaW5nfHx0aGlzLl9tYXAuZ2V0QmVhcmluZygpKSYmKGIuYmVhcmluZz0wKSx0aGlzLl9tYXAuZWFzZVRvKGIse29yaWdpbmFsRXZlbnQ6aH0pKToodGhpcy5fbWFwLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVlbmQiLHtvcmlnaW5hbEV2ZW50Omh9KSksXyh0aGlzLl9tYXAuZ2V0QmVhcmluZygpKSYmdGhpcy5fbWFwLnJlc2V0Tm9ydGgoKSksdGhpcy5fYmVhcmluZ0NoYW5nZWQ9ITEsdGhpcy5fdXBkYXRpbmdDYW1lcmE9ITF9fSx5aS5wcm90b3R5cGUuX2ZpcmVFdmVudD1mdW5jdGlvbihlLHIpe3RoaXMuX21hcC5maXJlKG5ldyB0LkV2ZW50KGUscj97b3JpZ2luYWxFdmVudDpyfTp7fSkpfSx5aS5wcm90b3R5cGUuX3RyaWdnZXJSZW5kZXJGcmFtZT1mdW5jdGlvbigpe3ZhciB0PXRoaXM7dm9pZCAwPT09dGhpcy5fZnJhbWVJZCYmKHRoaXMuX2ZyYW1lSWQ9dGhpcy5fbWFwLl9yZXF1ZXN0UmVuZGVyRnJhbWUoKGZ1bmN0aW9uKGUpe2RlbGV0ZSB0Ll9mcmFtZUlkLHQuaGFuZGxlRXZlbnQobmV3IGdpKCJyZW5kZXJGcmFtZSIse3RpbWVTdGFtcDplfSkpLHQuX2FwcGx5Q2hhbmdlcygpfSkpKX07dmFyIHhpPWZ1bmN0aW9uKGUpe2Z1bmN0aW9uIHIocixuKXtlLmNhbGwodGhpcyksdGhpcy5fbW92aW5nPSExLHRoaXMuX3pvb21pbmc9ITEsdGhpcy50cmFuc2Zvcm09cix0aGlzLl9iZWFyaW5nU25hcD1uLmJlYXJpbmdTbmFwLHQuYmluZEFsbChbIl9yZW5kZXJGcmFtZUNhbGxiYWNrIl0sdGhpcyl9cmV0dXJuIGUmJihyLl9fcHJvdG9fXz1lKSxyLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxyLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1yLHIucHJvdG90eXBlLmdldENlbnRlcj1mdW5jdGlvbigpe3JldHVybiBuZXcgdC5MbmdMYXQodGhpcy50cmFuc2Zvcm0uY2VudGVyLmxuZyx0aGlzLnRyYW5zZm9ybS5jZW50ZXIubGF0KX0sci5wcm90b3R5cGUuc2V0Q2VudGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuanVtcFRvKHtjZW50ZXI6dH0sZSl9LHIucHJvdG90eXBlLnBhbkJ5PWZ1bmN0aW9uKGUscixuKXtyZXR1cm4gZT10LlBvaW50LmNvbnZlcnQoZSkubXVsdCgtMSksdGhpcy5wYW5Ubyh0aGlzLnRyYW5zZm9ybS5jZW50ZXIsdC5leHRlbmQoe29mZnNldDplfSxyKSxuKX0sci5wcm90b3R5cGUucGFuVG89ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0aGlzLmVhc2VUbyh0LmV4dGVuZCh7Y2VudGVyOmV9LHIpLG4pfSxyLnByb3RvdHlwZS5nZXRab29tPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnpvb219LHIucHJvdG90eXBlLnNldFpvb209ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5qdW1wVG8oe3pvb206dH0sZSksdGhpc30sci5wcm90b3R5cGUuem9vbVRvPWZ1bmN0aW9uKGUscixuKXtyZXR1cm4gdGhpcy5lYXNlVG8odC5leHRlbmQoe3pvb206ZX0sciksbil9LHIucHJvdG90eXBlLnpvb21Jbj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnpvb21Ubyh0aGlzLmdldFpvb20oKSsxLHQsZSksdGhpc30sci5wcm90b3R5cGUuem9vbU91dD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnpvb21Ubyh0aGlzLmdldFpvb20oKS0xLHQsZSksdGhpc30sci5wcm90b3R5cGUuZ2V0QmVhcmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYW5zZm9ybS5iZWFyaW5nfSxyLnByb3RvdHlwZS5zZXRCZWFyaW5nPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuanVtcFRvKHtiZWFyaW5nOnR9LGUpLHRoaXN9LHIucHJvdG90eXBlLmdldFBhZGRpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ucGFkZGluZ30sci5wcm90b3R5cGUuc2V0UGFkZGluZz1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7cGFkZGluZzp0fSxlKSx0aGlzfSxyLnByb3RvdHlwZS5yb3RhdGVUbz1mdW5jdGlvbihlLHIsbil7cmV0dXJuIHRoaXMuZWFzZVRvKHQuZXh0ZW5kKHtiZWFyaW5nOmV9LHIpLG4pfSxyLnByb3RvdHlwZS5yZXNldE5vcnRoPWZ1bmN0aW9uKGUscil7cmV0dXJuIHRoaXMucm90YXRlVG8oMCx0LmV4dGVuZCh7ZHVyYXRpb246MWUzfSxlKSxyKSx0aGlzfSxyLnByb3RvdHlwZS5yZXNldE5vcnRoUGl0Y2g9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdGhpcy5lYXNlVG8odC5leHRlbmQoe2JlYXJpbmc6MCxwaXRjaDowLGR1cmF0aW9uOjFlM30sZSksciksdGhpc30sci5wcm90b3R5cGUuc25hcFRvTm9ydGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gTWF0aC5hYnModGhpcy5nZXRCZWFyaW5nKCkpPHRoaXMuX2JlYXJpbmdTbmFwP3RoaXMucmVzZXROb3J0aCh0LGUpOnRoaXN9LHIucHJvdG90eXBlLmdldFBpdGNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnBpdGNofSxyLnByb3RvdHlwZS5zZXRQaXRjaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmp1bXBUbyh7cGl0Y2g6dH0sZSksdGhpc30sci5wcm90b3R5cGUuY2FtZXJhRm9yQm91bmRzPWZ1bmN0aW9uKGUscil7cmV0dXJuIGU9dC5MbmdMYXRCb3VuZHMuY29udmVydChlKSx0aGlzLl9jYW1lcmFGb3JCb3hBbmRCZWFyaW5nKGUuZ2V0Tm9ydGhXZXN0KCksZS5nZXRTb3V0aEVhc3QoKSwwLHIpfSxyLnByb3RvdHlwZS5fY2FtZXJhRm9yQm94QW5kQmVhcmluZz1mdW5jdGlvbihlLHIsbixpKXt2YXIgYT17dG9wOjAsYm90dG9tOjAscmlnaHQ6MCxsZWZ0OjB9O2lmKCJudW1iZXIiPT10eXBlb2YoaT10LmV4dGVuZCh7cGFkZGluZzphLG9mZnNldDpbMCwwXSxtYXhab29tOnRoaXMudHJhbnNmb3JtLm1heFpvb219LGkpKS5wYWRkaW5nKXt2YXIgbz1pLnBhZGRpbmc7aS5wYWRkaW5nPXt0b3A6byxib3R0b206byxyaWdodDpvLGxlZnQ6b319aS5wYWRkaW5nPXQuZXh0ZW5kKGEsaS5wYWRkaW5nKTt2YXIgcz10aGlzLnRyYW5zZm9ybSxsPXMucGFkZGluZyxjPXMucHJvamVjdCh0LkxuZ0xhdC5jb252ZXJ0KGUpKSx1PXMucHJvamVjdCh0LkxuZ0xhdC5jb252ZXJ0KHIpKSxmPWMucm90YXRlKC1uKk1hdGguUEkvMTgwKSxoPXUucm90YXRlKC1uKk1hdGguUEkvMTgwKSxwPW5ldyB0LlBvaW50KE1hdGgubWF4KGYueCxoLngpLE1hdGgubWF4KGYueSxoLnkpKSxkPW5ldyB0LlBvaW50KE1hdGgubWluKGYueCxoLngpLE1hdGgubWluKGYueSxoLnkpKSxtPXAuc3ViKGQpLGc9KHMud2lkdGgtKGwubGVmdCtsLnJpZ2h0K2kucGFkZGluZy5sZWZ0K2kucGFkZGluZy5yaWdodCkpL20ueCx2PShzLmhlaWdodC0obC50b3ArbC5ib3R0b20raS5wYWRkaW5nLnRvcCtpLnBhZGRpbmcuYm90dG9tKSkvbS55O2lmKCEodjwwfHxnPDApKXt2YXIgeT1NYXRoLm1pbihzLnNjYWxlWm9vbShzLnNjYWxlKk1hdGgubWluKGcsdikpLGkubWF4Wm9vbSkseD10LlBvaW50LmNvbnZlcnQoaS5vZmZzZXQpLGI9KGkucGFkZGluZy5sZWZ0LWkucGFkZGluZy5yaWdodCkvMixfPShpLnBhZGRpbmcudG9wLWkucGFkZGluZy5ib3R0b20pLzIsdz1uZXcgdC5Qb2ludCh4LngrYix4LnkrXykubXVsdChzLnNjYWxlL3Muem9vbVNjYWxlKHkpKTtyZXR1cm57Y2VudGVyOnMudW5wcm9qZWN0KGMuYWRkKHUpLmRpdigyKS5zdWIodykpLHpvb206eSxiZWFyaW5nOm59fXQud2Fybk9uY2UoIk1hcCBjYW5ub3QgZml0IHdpdGhpbiBjYW52YXMgd2l0aCB0aGUgZ2l2ZW4gYm91bmRzLCBwYWRkaW5nLCBhbmQvb3Igb2Zmc2V0LiIpfSxyLnByb3RvdHlwZS5maXRCb3VuZHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl9maXRJbnRlcm5hbCh0aGlzLmNhbWVyYUZvckJvdW5kcyh0LGUpLGUscil9LHIucHJvdG90eXBlLmZpdFNjcmVlbkNvb3JkaW5hdGVzPWZ1bmN0aW9uKGUscixuLGksYSl7cmV0dXJuIHRoaXMuX2ZpdEludGVybmFsKHRoaXMuX2NhbWVyYUZvckJveEFuZEJlYXJpbmcodGhpcy50cmFuc2Zvcm0ucG9pbnRMb2NhdGlvbih0LlBvaW50LmNvbnZlcnQoZSkpLHRoaXMudHJhbnNmb3JtLnBvaW50TG9jYXRpb24odC5Qb2ludC5jb252ZXJ0KHIpKSxuLGkpLGksYSl9LHIucHJvdG90eXBlLl9maXRJbnRlcm5hbD1mdW5jdGlvbihlLHIsbil7cmV0dXJuIGU/KGRlbGV0ZShyPXQuZXh0ZW5kKGUscikpLnBhZGRpbmcsci5saW5lYXI/dGhpcy5lYXNlVG8ocixuKTp0aGlzLmZseVRvKHIsbikpOnRoaXN9LHIucHJvdG90eXBlLmp1bXBUbz1mdW5jdGlvbihlLHIpe3RoaXMuc3RvcCgpO3ZhciBuPXRoaXMudHJhbnNmb3JtLGk9ITEsYT0hMSxvPSExO3JldHVybiJ6b29tImluIGUmJm4uem9vbSE9PStlLnpvb20mJihpPSEwLG4uem9vbT0rZS56b29tKSx2b2lkIDAhPT1lLmNlbnRlciYmKG4uY2VudGVyPXQuTG5nTGF0LmNvbnZlcnQoZS5jZW50ZXIpKSwiYmVhcmluZyJpbiBlJiZuLmJlYXJpbmchPT0rZS5iZWFyaW5nJiYoYT0hMCxuLmJlYXJpbmc9K2UuYmVhcmluZyksInBpdGNoImluIGUmJm4ucGl0Y2ghPT0rZS5waXRjaCYmKG89ITAsbi5waXRjaD0rZS5waXRjaCksbnVsbD09ZS5wYWRkaW5nfHxuLmlzUGFkZGluZ0VxdWFsKGUucGFkZGluZyl8fChuLnBhZGRpbmc9ZS5wYWRkaW5nKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVzdGFydCIscikpLmZpcmUobmV3IHQuRXZlbnQoIm1vdmUiLHIpKSxpJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb21zdGFydCIscikpLmZpcmUobmV3IHQuRXZlbnQoInpvb20iLHIpKS5maXJlKG5ldyB0LkV2ZW50KCJ6b29tZW5kIixyKSksYSYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyb3RhdGVzdGFydCIscikpLmZpcmUobmV3IHQuRXZlbnQoInJvdGF0ZSIscikpLmZpcmUobmV3IHQuRXZlbnQoInJvdGF0ZWVuZCIscikpLG8mJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicGl0Y2hzdGFydCIscikpLmZpcmUobmV3IHQuRXZlbnQoInBpdGNoIixyKSkuZmlyZShuZXcgdC5FdmVudCgicGl0Y2hlbmQiLHIpKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVlbmQiLHIpKX0sci5wcm90b3R5cGUuZWFzZVRvPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpczt0aGlzLl9zdG9wKCExLGUuZWFzZUlkKSwoITE9PT0oZT10LmV4dGVuZCh7b2Zmc2V0OlswLDBdLGR1cmF0aW9uOjUwMCxlYXNpbmc6dC5lYXNlfSxlKSkuYW5pbWF0ZXx8IWUuZXNzZW50aWFsJiZ0LmJyb3dzZXIucHJlZmVyc1JlZHVjZWRNb3Rpb24pJiYoZS5kdXJhdGlvbj0wKTt2YXIgaT10aGlzLnRyYW5zZm9ybSxhPXRoaXMuZ2V0Wm9vbSgpLG89dGhpcy5nZXRCZWFyaW5nKCkscz10aGlzLmdldFBpdGNoKCksbD10aGlzLmdldFBhZGRpbmcoKSxjPSJ6b29tImluIGU/K2Uuem9vbTphLHU9ImJlYXJpbmciaW4gZT90aGlzLl9ub3JtYWxpemVCZWFyaW5nKGUuYmVhcmluZyxvKTpvLGY9InBpdGNoImluIGU/K2UucGl0Y2g6cyxoPSJwYWRkaW5nImluIGU/ZS5wYWRkaW5nOmkucGFkZGluZyxwPXQuUG9pbnQuY29udmVydChlLm9mZnNldCksZD1pLmNlbnRlclBvaW50LmFkZChwKSxtPWkucG9pbnRMb2NhdGlvbihkKSxnPXQuTG5nTGF0LmNvbnZlcnQoZS5jZW50ZXJ8fG0pO3RoaXMuX25vcm1hbGl6ZUNlbnRlcihnKTt2YXIgdix5LHg9aS5wcm9qZWN0KG0pLGI9aS5wcm9qZWN0KGcpLnN1Yih4KSxfPWkuem9vbVNjYWxlKGMtYSk7ZS5hcm91bmQmJih2PXQuTG5nTGF0LmNvbnZlcnQoZS5hcm91bmQpLHk9aS5sb2NhdGlvblBvaW50KHYpKTt2YXIgdz17bW92aW5nOnRoaXMuX21vdmluZyx6b29taW5nOnRoaXMuX3pvb21pbmcscm90YXRpbmc6dGhpcy5fcm90YXRpbmcscGl0Y2hpbmc6dGhpcy5fcGl0Y2hpbmd9O3JldHVybiB0aGlzLl96b29taW5nPXRoaXMuX3pvb21pbmd8fGMhPT1hLHRoaXMuX3JvdGF0aW5nPXRoaXMuX3JvdGF0aW5nfHxvIT09dSx0aGlzLl9waXRjaGluZz10aGlzLl9waXRjaGluZ3x8ZiE9PXMsdGhpcy5fcGFkZGluZz0haS5pc1BhZGRpbmdFcXVhbChoKSx0aGlzLl9lYXNlSWQ9ZS5lYXNlSWQsdGhpcy5fcHJlcGFyZUVhc2UocixlLm5vTW92ZVN0YXJ0LHcpLGNsZWFyVGltZW91dCh0aGlzLl9lYXNlRW5kVGltZW91dElEKSx0aGlzLl9lYXNlKChmdW5jdGlvbihlKXtpZihuLl96b29taW5nJiYoaS56b29tPXQubnVtYmVyKGEsYyxlKSksbi5fcm90YXRpbmcmJihpLmJlYXJpbmc9dC5udW1iZXIobyx1LGUpKSxuLl9waXRjaGluZyYmKGkucGl0Y2g9dC5udW1iZXIocyxmLGUpKSxuLl9wYWRkaW5nJiYoaS5pbnRlcnBvbGF0ZVBhZGRpbmcobCxoLGUpLGQ9aS5jZW50ZXJQb2ludC5hZGQocCkpLHYpaS5zZXRMb2NhdGlvbkF0UG9pbnQodix5KTtlbHNle3ZhciBtPWkuem9vbVNjYWxlKGkuem9vbS1hKSxnPWM+YT9NYXRoLm1pbigyLF8pOk1hdGgubWF4KC41LF8pLHc9TWF0aC5wb3coZywxLWUpLFQ9aS51bnByb2plY3QoeC5hZGQoYi5tdWx0KGUqdykpLm11bHQobSkpO2kuc2V0TG9jYXRpb25BdFBvaW50KGkucmVuZGVyV29ybGRDb3BpZXM/VC53cmFwKCk6VCxkKX1uLl9maXJlTW92ZUV2ZW50cyhyKX0pLChmdW5jdGlvbih0KXtuLl9hZnRlckVhc2Uocix0KX0pLGUpLHRoaXN9LHIucHJvdG90eXBlLl9wcmVwYXJlRWFzZT1mdW5jdGlvbihlLHIsbil7dm9pZCAwPT09biYmKG49e30pLHRoaXMuX21vdmluZz0hMCxyfHxuLm1vdmluZ3x8dGhpcy5maXJlKG5ldyB0LkV2ZW50KCJtb3Zlc3RhcnQiLGUpKSx0aGlzLl96b29taW5nJiYhbi56b29taW5nJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb21zdGFydCIsZSkpLHRoaXMuX3JvdGF0aW5nJiYhbi5yb3RhdGluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyb3RhdGVzdGFydCIsZSkpLHRoaXMuX3BpdGNoaW5nJiYhbi5waXRjaGluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJwaXRjaHN0YXJ0IixlKSl9LHIucHJvdG90eXBlLl9maXJlTW92ZUV2ZW50cz1mdW5jdGlvbihlKXt0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmUiLGUpKSx0aGlzLl96b29taW5nJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb20iLGUpKSx0aGlzLl9yb3RhdGluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyb3RhdGUiLGUpKSx0aGlzLl9waXRjaGluZyYmdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJwaXRjaCIsZSkpfSxyLnByb3RvdHlwZS5fYWZ0ZXJFYXNlPWZ1bmN0aW9uKGUscil7aWYoIXRoaXMuX2Vhc2VJZHx8IXJ8fHRoaXMuX2Vhc2VJZCE9PXIpe2RlbGV0ZSB0aGlzLl9lYXNlSWQ7dmFyIG49dGhpcy5fem9vbWluZyxpPXRoaXMuX3JvdGF0aW5nLGE9dGhpcy5fcGl0Y2hpbmc7dGhpcy5fbW92aW5nPSExLHRoaXMuX3pvb21pbmc9ITEsdGhpcy5fcm90YXRpbmc9ITEsdGhpcy5fcGl0Y2hpbmc9ITEsdGhpcy5fcGFkZGluZz0hMSxuJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInpvb21lbmQiLGUpKSxpJiZ0aGlzLmZpcmUobmV3IHQuRXZlbnQoInJvdGF0ZWVuZCIsZSkpLGEmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgicGl0Y2hlbmQiLGUpKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm1vdmVlbmQiLGUpKX19LHIucHJvdG90eXBlLmZseVRvPWZ1bmN0aW9uKGUscil7dmFyIG49dGhpcztpZighZS5lc3NlbnRpYWwmJnQuYnJvd3Nlci5wcmVmZXJzUmVkdWNlZE1vdGlvbil7dmFyIGk9dC5waWNrKGUsWyJjZW50ZXIiLCJ6b29tIiwiYmVhcmluZyIsInBpdGNoIiwiYXJvdW5kIl0pO3JldHVybiB0aGlzLmp1bXBUbyhpLHIpfXRoaXMuc3RvcCgpLGU9dC5leHRlbmQoe29mZnNldDpbMCwwXSxzcGVlZDoxLjIsY3VydmU6MS40MixlYXNpbmc6dC5lYXNlfSxlKTt2YXIgYT10aGlzLnRyYW5zZm9ybSxvPXRoaXMuZ2V0Wm9vbSgpLHM9dGhpcy5nZXRCZWFyaW5nKCksbD10aGlzLmdldFBpdGNoKCksYz10aGlzLmdldFBhZGRpbmcoKSx1PSJ6b29tImluIGU/dC5jbGFtcCgrZS56b29tLGEubWluWm9vbSxhLm1heFpvb20pOm8sZj0iYmVhcmluZyJpbiBlP3RoaXMuX25vcm1hbGl6ZUJlYXJpbmcoZS5iZWFyaW5nLHMpOnMsaD0icGl0Y2giaW4gZT8rZS5waXRjaDpsLHA9InBhZGRpbmciaW4gZT9lLnBhZGRpbmc6YS5wYWRkaW5nLGQ9YS56b29tU2NhbGUodS1vKSxtPXQuUG9pbnQuY29udmVydChlLm9mZnNldCksZz1hLmNlbnRlclBvaW50LmFkZChtKSx2PWEucG9pbnRMb2NhdGlvbihnKSx5PXQuTG5nTGF0LmNvbnZlcnQoZS5jZW50ZXJ8fHYpO3RoaXMuX25vcm1hbGl6ZUNlbnRlcih5KTt2YXIgeD1hLnByb2plY3QodiksYj1hLnByb2plY3QoeSkuc3ViKHgpLF89ZS5jdXJ2ZSx3PU1hdGgubWF4KGEud2lkdGgsYS5oZWlnaHQpLFQ9dy9kLGs9Yi5tYWcoKTtpZigibWluWm9vbSJpbiBlKXt2YXIgQT10LmNsYW1wKE1hdGgubWluKGUubWluWm9vbSxvLHUpLGEubWluWm9vbSxhLm1heFpvb20pLE09dy9hLnpvb21TY2FsZShBLW8pO189TWF0aC5zcXJ0KE0vayoyKX12YXIgUz1fKl87ZnVuY3Rpb24gRSh0KXt2YXIgZT0oVCpULXcqdysodD8tMToxKSpTKlMqayprKS8oMioodD9UOncpKlMqayk7cmV0dXJuIE1hdGgubG9nKE1hdGguc3FydChlKmUrMSktZSl9ZnVuY3Rpb24gTCh0KXtyZXR1cm4oTWF0aC5leHAodCktTWF0aC5leHAoLXQpKS8yfWZ1bmN0aW9uIEModCl7cmV0dXJuKE1hdGguZXhwKHQpK01hdGguZXhwKC10KSkvMn12YXIgUD1FKDApLEk9ZnVuY3Rpb24odCl7cmV0dXJuIEMoUCkvQyhQK18qdCl9LE89ZnVuY3Rpb24odCl7cmV0dXJuIHcqKChDKFApKihMKGU9UCtfKnQpL0MoZSkpLUwoUCkpL1MpL2s7dmFyIGV9LHo9KEUoMSktUCkvXztpZihNYXRoLmFicyhrKTwxZS02fHwhaXNGaW5pdGUoeikpe2lmKE1hdGguYWJzKHctVCk8MWUtNilyZXR1cm4gdGhpcy5lYXNlVG8oZSxyKTt2YXIgRD1UPHc/LTE6MTt6PU1hdGguYWJzKE1hdGgubG9nKFQvdykpL18sTz1mdW5jdGlvbigpe3JldHVybiAwfSxJPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmV4cChEKl8qdCl9fWlmKCJkdXJhdGlvbiJpbiBlKWUuZHVyYXRpb249K2UuZHVyYXRpb247ZWxzZXt2YXIgUj0ic2NyZWVuU3BlZWQiaW4gZT8rZS5zY3JlZW5TcGVlZC9fOitlLnNwZWVkO2UuZHVyYXRpb249MWUzKnovUn1yZXR1cm4gZS5tYXhEdXJhdGlvbiYmZS5kdXJhdGlvbj5lLm1heER1cmF0aW9uJiYoZS5kdXJhdGlvbj0wKSx0aGlzLl96b29taW5nPSEwLHRoaXMuX3JvdGF0aW5nPXMhPT1mLHRoaXMuX3BpdGNoaW5nPWghPT1sLHRoaXMuX3BhZGRpbmc9IWEuaXNQYWRkaW5nRXF1YWwocCksdGhpcy5fcHJlcGFyZUVhc2UociwhMSksdGhpcy5fZWFzZSgoZnVuY3Rpb24oZSl7dmFyIGk9ZSp6LGQ9MS9JKGkpO2Euem9vbT0xPT09ZT91Om8rYS5zY2FsZVpvb20oZCksbi5fcm90YXRpbmcmJihhLmJlYXJpbmc9dC5udW1iZXIocyxmLGUpKSxuLl9waXRjaGluZyYmKGEucGl0Y2g9dC5udW1iZXIobCxoLGUpKSxuLl9wYWRkaW5nJiYoYS5pbnRlcnBvbGF0ZVBhZGRpbmcoYyxwLGUpLGc9YS5jZW50ZXJQb2ludC5hZGQobSkpO3ZhciB2PTE9PT1lP3k6YS51bnByb2plY3QoeC5hZGQoYi5tdWx0KE8oaSkpKS5tdWx0KGQpKTthLnNldExvY2F0aW9uQXRQb2ludChhLnJlbmRlcldvcmxkQ29waWVzP3Yud3JhcCgpOnYsZyksbi5fZmlyZU1vdmVFdmVudHMocil9KSwoZnVuY3Rpb24oKXtyZXR1cm4gbi5fYWZ0ZXJFYXNlKHIpfSksZSksdGhpc30sci5wcm90b3R5cGUuaXNFYXNpbmc9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX2Vhc2VGcmFtZUlkfSxyLnByb3RvdHlwZS5zdG9wPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0b3AoKX0sci5wcm90b3R5cGUuX3N0b3A9ZnVuY3Rpb24odCxlKXtpZih0aGlzLl9lYXNlRnJhbWVJZCYmKHRoaXMuX2NhbmNlbFJlbmRlckZyYW1lKHRoaXMuX2Vhc2VGcmFtZUlkKSxkZWxldGUgdGhpcy5fZWFzZUZyYW1lSWQsZGVsZXRlIHRoaXMuX29uRWFzZUZyYW1lKSx0aGlzLl9vbkVhc2VFbmQpe3ZhciByPXRoaXMuX29uRWFzZUVuZDtkZWxldGUgdGhpcy5fb25FYXNlRW5kLHIuY2FsbCh0aGlzLGUpfWlmKCF0KXt2YXIgbj10aGlzLmhhbmRsZXJzO24mJm4uc3RvcCgpfXJldHVybiB0aGlzfSxyLnByb3RvdHlwZS5fZWFzZT1mdW5jdGlvbihlLHIsbil7ITE9PT1uLmFuaW1hdGV8fDA9PT1uLmR1cmF0aW9uPyhlKDEpLHIoKSk6KHRoaXMuX2Vhc2VTdGFydD10LmJyb3dzZXIubm93KCksdGhpcy5fZWFzZU9wdGlvbnM9bix0aGlzLl9vbkVhc2VGcmFtZT1lLHRoaXMuX29uRWFzZUVuZD1yLHRoaXMuX2Vhc2VGcmFtZUlkPXRoaXMuX3JlcXVlc3RSZW5kZXJGcmFtZSh0aGlzLl9yZW5kZXJGcmFtZUNhbGxiYWNrKSl9LHIucHJvdG90eXBlLl9yZW5kZXJGcmFtZUNhbGxiYWNrPWZ1bmN0aW9uKCl7dmFyIGU9TWF0aC5taW4oKHQuYnJvd3Nlci5ub3coKS10aGlzLl9lYXNlU3RhcnQpL3RoaXMuX2Vhc2VPcHRpb25zLmR1cmF0aW9uLDEpO3RoaXMuX29uRWFzZUZyYW1lKHRoaXMuX2Vhc2VPcHRpb25zLmVhc2luZyhlKSksZTwxP3RoaXMuX2Vhc2VGcmFtZUlkPXRoaXMuX3JlcXVlc3RSZW5kZXJGcmFtZSh0aGlzLl9yZW5kZXJGcmFtZUNhbGxiYWNrKTp0aGlzLnN0b3AoKX0sci5wcm90b3R5cGUuX25vcm1hbGl6ZUJlYXJpbmc9ZnVuY3Rpb24oZSxyKXtlPXQud3JhcChlLC0xODAsMTgwKTt2YXIgbj1NYXRoLmFicyhlLXIpO3JldHVybiBNYXRoLmFicyhlLTM2MC1yKTxuJiYoZS09MzYwKSxNYXRoLmFicyhlKzM2MC1yKTxuJiYoZSs9MzYwKSxlfSxyLnByb3RvdHlwZS5fbm9ybWFsaXplQ2VudGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMudHJhbnNmb3JtO2lmKGUucmVuZGVyV29ybGRDb3BpZXMmJiFlLmxuZ1JhbmdlKXt2YXIgcj10LmxuZy1lLmNlbnRlci5sbmc7dC5sbmcrPXI+MTgwPy0zNjA6cjwtMTgwPzM2MDowfX0scn0odC5FdmVudGVkKSxiaT1mdW5jdGlvbihlKXt2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5vcHRpb25zPWUsdC5iaW5kQWxsKFsiX3VwZGF0ZUVkaXRMaW5rIiwiX3VwZGF0ZURhdGEiLCJfdXBkYXRlQ29tcGFjdCJdLHRoaXMpfTtiaS5wcm90b3R5cGUuZ2V0RGVmYXVsdFBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuImJvdHRvbS1yaWdodCJ9LGJpLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm9wdGlvbnMmJnRoaXMub3B0aW9ucy5jb21wYWN0O3JldHVybiB0aGlzLl9tYXA9dCx0aGlzLl9jb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwgbWFwYm94Z2wtY3RybC1hdHRyaWIiKSx0aGlzLl9pbm5lckNvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybC1hdHRyaWItaW5uZXIiLHRoaXMuX2NvbnRhaW5lciksZSYmdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWNvbXBhY3QiKSx0aGlzLl91cGRhdGVBdHRyaWJ1dGlvbnMoKSx0aGlzLl91cGRhdGVFZGl0TGluaygpLHRoaXMuX21hcC5vbigic3R5bGVkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub24oInNvdXJjZWRhdGEiLHRoaXMuX3VwZGF0ZURhdGEpLHRoaXMuX21hcC5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlRWRpdExpbmspLHZvaWQgMD09PWUmJih0aGlzLl9tYXAub24oInJlc2l6ZSIsdGhpcy5fdXBkYXRlQ29tcGFjdCksdGhpcy5fdXBkYXRlQ29tcGFjdCgpKSx0aGlzLl9jb250YWluZXJ9LGJpLnByb3RvdHlwZS5vblJlbW92ZT1mdW5jdGlvbigpe3IucmVtb3ZlKHRoaXMuX2NvbnRhaW5lciksdGhpcy5fbWFwLm9mZigic3R5bGVkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub2ZmKCJzb3VyY2VkYXRhIix0aGlzLl91cGRhdGVEYXRhKSx0aGlzLl9tYXAub2ZmKCJtb3ZlZW5kIix0aGlzLl91cGRhdGVFZGl0TGluayksdGhpcy5fbWFwLm9mZigicmVzaXplIix0aGlzLl91cGRhdGVDb21wYWN0KSx0aGlzLl9tYXA9dm9pZCAwLHRoaXMuX2F0dHJpYkhUTUw9dm9pZCAwfSxiaS5wcm90b3R5cGUuX3VwZGF0ZUVkaXRMaW5rPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZWRpdExpbms7ZXx8KGU9dGhpcy5fZWRpdExpbms9dGhpcy5fY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5tYXBib3gtaW1wcm92ZS1tYXAiKSk7dmFyIHI9W3trZXk6Im93bmVyIix2YWx1ZTp0aGlzLnN0eWxlT3duZXJ9LHtrZXk6ImlkIix2YWx1ZTp0aGlzLnN0eWxlSWR9LHtrZXk6ImFjY2Vzc190b2tlbiIsdmFsdWU6dGhpcy5fbWFwLl9yZXF1ZXN0TWFuYWdlci5fY3VzdG9tQWNjZXNzVG9rZW58fHQuY29uZmlnLkFDQ0VTU19UT0tFTn1dO2lmKGUpe3ZhciBuPXIucmVkdWNlKChmdW5jdGlvbih0LGUsbil7cmV0dXJuIGUudmFsdWUmJih0Kz1lLmtleSsiPSIrZS52YWx1ZSsobjxyLmxlbmd0aC0xPyImIjoiIikpLHR9KSwiPyIpO2UuaHJlZj10LmNvbmZpZy5GRUVEQkFDS19VUkwrIi8iK24rKHRoaXMuX21hcC5faGFzaD90aGlzLl9tYXAuX2hhc2guZ2V0SGFzaFN0cmluZyghMCk6IiIpLGUucmVsPSJub29wZW5lciBub2ZvbGxvdyJ9fSxiaS5wcm90b3R5cGUuX3VwZGF0ZURhdGE9ZnVuY3Rpb24odCl7IXR8fCJtZXRhZGF0YSIhPT10LnNvdXJjZURhdGFUeXBlJiYic3R5bGUiIT09dC5kYXRhVHlwZXx8KHRoaXMuX3VwZGF0ZUF0dHJpYnV0aW9ucygpLHRoaXMuX3VwZGF0ZUVkaXRMaW5rKCkpfSxiaS5wcm90b3R5cGUuX3VwZGF0ZUF0dHJpYnV0aW9ucz1mdW5jdGlvbigpe2lmKHRoaXMuX21hcC5zdHlsZSl7dmFyIHQ9W107aWYodGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uJiYoQXJyYXkuaXNBcnJheSh0aGlzLm9wdGlvbnMuY3VzdG9tQXR0cmlidXRpb24pP3Q9dC5jb25jYXQodGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0PyIiOnR9KSkpOiJzdHJpbmciPT10eXBlb2YgdGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uJiZ0LnB1c2godGhpcy5vcHRpb25zLmN1c3RvbUF0dHJpYnV0aW9uKSksdGhpcy5fbWFwLnN0eWxlLnN0eWxlc2hlZXQpe3ZhciBlPXRoaXMuX21hcC5zdHlsZS5zdHlsZXNoZWV0O3RoaXMuc3R5bGVPd25lcj1lLm93bmVyLHRoaXMuc3R5bGVJZD1lLmlkfXZhciByPXRoaXMuX21hcC5zdHlsZS5zb3VyY2VDYWNoZXM7Zm9yKHZhciBuIGluIHIpe3ZhciBpPXJbbl07aWYoaS51c2VkKXt2YXIgYT1pLmdldFNvdXJjZSgpO2EuYXR0cmlidXRpb24mJnQuaW5kZXhPZihhLmF0dHJpYnV0aW9uKTwwJiZ0LnB1c2goYS5hdHRyaWJ1dGlvbil9fXQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sZW5ndGgtZS5sZW5ndGh9KSk7dmFyIG89KHQ9dC5maWx0ZXIoKGZ1bmN0aW9uKGUscil7Zm9yKHZhciBuPXIrMTtuPHQubGVuZ3RoO24rKylpZih0W25dLmluZGV4T2YoZSk+PTApcmV0dXJuITE7cmV0dXJuITB9KSkpLmpvaW4oIiB8ICIpO28hPT10aGlzLl9hdHRyaWJIVE1MJiYodGhpcy5fYXR0cmliSFRNTD1vLHQubGVuZ3RoPyh0aGlzLl9pbm5lckNvbnRhaW5lci5pbm5lckhUTUw9byx0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtYXR0cmliLWVtcHR5IikpOnRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1hdHRyaWItZW1wdHkiKSx0aGlzLl9lZGl0TGluaz1udWxsKX19LGJpLnByb3RvdHlwZS5fdXBkYXRlQ29tcGFjdD1mdW5jdGlvbigpe3RoaXMuX21hcC5nZXRDYW52YXNDb250YWluZXIoKS5vZmZzZXRXaWR0aDw9NjQwP3RoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jb21wYWN0Iik6dGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWNvbXBhY3QiKX07dmFyIF9pPWZ1bmN0aW9uKCl7dC5iaW5kQWxsKFsiX3VwZGF0ZUxvZ28iXSx0aGlzKSx0LmJpbmRBbGwoWyJfdXBkYXRlQ29tcGFjdCJdLHRoaXMpfTtfaS5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7dGhpcy5fbWFwPXQsdGhpcy5fY29udGFpbmVyPXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jdHJsIik7dmFyIGU9ci5jcmVhdGUoImEiLCJtYXBib3hnbC1jdHJsLWxvZ28iKTtyZXR1cm4gZS50YXJnZXQ9Il9ibGFuayIsZS5yZWw9Im5vb3BlbmVyIG5vZm9sbG93IixlLmhyZWY9Imh0dHBzOi8vd3d3Lm1hcGJveC5jb20vIixlLnNldEF0dHJpYnV0ZSgiYXJpYS1sYWJlbCIsdGhpcy5fbWFwLl9nZXRVSVN0cmluZygiTG9nb0NvbnRyb2wuVGl0bGUiKSksZS5zZXRBdHRyaWJ1dGUoInJlbCIsIm5vb3BlbmVyIG5vZm9sbG93IiksdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKGUpLHRoaXMuX2NvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJub25lIix0aGlzLl9tYXAub24oInNvdXJjZWRhdGEiLHRoaXMuX3VwZGF0ZUxvZ28pLHRoaXMuX3VwZGF0ZUxvZ28oKSx0aGlzLl9tYXAub24oInJlc2l6ZSIsdGhpcy5fdXBkYXRlQ29tcGFjdCksdGhpcy5fdXBkYXRlQ29tcGFjdCgpLHRoaXMuX2NvbnRhaW5lcn0sX2kucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7ci5yZW1vdmUodGhpcy5fY29udGFpbmVyKSx0aGlzLl9tYXAub2ZmKCJzb3VyY2VkYXRhIix0aGlzLl91cGRhdGVMb2dvKSx0aGlzLl9tYXAub2ZmKCJyZXNpemUiLHRoaXMuX3VwZGF0ZUNvbXBhY3QpfSxfaS5wcm90b3R5cGUuZ2V0RGVmYXVsdFBvc2l0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuImJvdHRvbS1sZWZ0In0sX2kucHJvdG90eXBlLl91cGRhdGVMb2dvPWZ1bmN0aW9uKHQpe3QmJiJtZXRhZGF0YSIhPT10LnNvdXJjZURhdGFUeXBlfHwodGhpcy5fY29udGFpbmVyLnN0eWxlLmRpc3BsYXk9dGhpcy5fbG9nb1JlcXVpcmVkKCk/ImJsb2NrIjoibm9uZSIpfSxfaS5wcm90b3R5cGUuX2xvZ29SZXF1aXJlZD1mdW5jdGlvbigpe2lmKHRoaXMuX21hcC5zdHlsZSl7dmFyIHQ9dGhpcy5fbWFwLnN0eWxlLnNvdXJjZUNhY2hlcztmb3IodmFyIGUgaW4gdCl7aWYodFtlXS5nZXRTb3VyY2UoKS5tYXBib3hfbG9nbylyZXR1cm4hMH1yZXR1cm4hMX19LF9pLnByb3RvdHlwZS5fdXBkYXRlQ29tcGFjdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRhaW5lci5jaGlsZHJlbjtpZih0Lmxlbmd0aCl7dmFyIGU9dFswXTt0aGlzLl9tYXAuZ2V0Q2FudmFzQ29udGFpbmVyKCkub2Zmc2V0V2lkdGg8MjUwP2UuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY29tcGFjdCIpOmUuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY29tcGFjdCIpfX07dmFyIHdpPWZ1bmN0aW9uKCl7dGhpcy5fcXVldWU9W10sdGhpcy5faWQ9MCx0aGlzLl9jbGVhcmVkPSExLHRoaXMuX2N1cnJlbnRseVJ1bm5pbmc9ITF9O3dpLnByb3RvdHlwZS5hZGQ9ZnVuY3Rpb24odCl7dmFyIGU9Kyt0aGlzLl9pZDtyZXR1cm4gdGhpcy5fcXVldWUucHVzaCh7Y2FsbGJhY2s6dCxpZDplLGNhbmNlbGxlZDohMX0pLGV9LHdpLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuX2N1cnJlbnRseVJ1bm5pbmcscj0wLG49ZT90aGlzLl9xdWV1ZS5jb25jYXQoZSk6dGhpcy5fcXVldWU7cjxuLmxlbmd0aDtyKz0xKXt2YXIgaT1uW3JdO2lmKGkuaWQ9PT10KXJldHVybiB2b2lkKGkuY2FuY2VsbGVkPSEwKX19LHdpLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24odCl7dm9pZCAwPT09dCYmKHQ9MCk7dmFyIGU9dGhpcy5fY3VycmVudGx5UnVubmluZz10aGlzLl9xdWV1ZTt0aGlzLl9xdWV1ZT1bXTtmb3IodmFyIHI9MCxuPWU7cjxuLmxlbmd0aDtyKz0xKXt2YXIgaT1uW3JdO2lmKCFpLmNhbmNlbGxlZCYmKGkuY2FsbGJhY2sodCksdGhpcy5fY2xlYXJlZCkpYnJlYWt9dGhpcy5fY2xlYXJlZD0hMSx0aGlzLl9jdXJyZW50bHlSdW5uaW5nPSExfSx3aS5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9jdXJyZW50bHlSdW5uaW5nJiYodGhpcy5fY2xlYXJlZD0hMCksdGhpcy5fcXVldWU9W119O3ZhciBUaT17IkZ1bGxzY3JlZW5Db250cm9sLkVudGVyIjoiRW50ZXIgZnVsbHNjcmVlbiIsIkZ1bGxzY3JlZW5Db250cm9sLkV4aXQiOiJFeGl0IGZ1bGxzY3JlZW4iLCJHZW9sb2NhdGVDb250cm9sLkZpbmRNeUxvY2F0aW9uIjoiRmluZCBteSBsb2NhdGlvbiIsIkdlb2xvY2F0ZUNvbnRyb2wuTG9jYXRpb25Ob3RBdmFpbGFibGUiOiJMb2NhdGlvbiBub3QgYXZhaWxhYmxlIiwiTG9nb0NvbnRyb2wuVGl0bGUiOiJNYXBib3ggbG9nbyIsIk5hdmlnYXRpb25Db250cm9sLlJlc2V0QmVhcmluZyI6IlJlc2V0IGJlYXJpbmcgdG8gbm9ydGgiLCJOYXZpZ2F0aW9uQ29udHJvbC5ab29tSW4iOiJab29tIGluIiwiTmF2aWdhdGlvbkNvbnRyb2wuWm9vbU91dCI6Ilpvb20gb3V0IiwiU2NhbGVDb250cm9sLkZlZXQiOiJmdCIsIlNjYWxlQ29udHJvbC5NZXRlcnMiOiJtIiwiU2NhbGVDb250cm9sLktpbG9tZXRlcnMiOiJrbSIsIlNjYWxlQ29udHJvbC5NaWxlcyI6Im1pIiwiU2NhbGVDb250cm9sLk5hdXRpY2FsTWlsZXMiOiJubSJ9LGtpPXQud2luZG93LkhUTUxJbWFnZUVsZW1lbnQsQWk9dC53aW5kb3cuSFRNTEVsZW1lbnQsTWk9dC53aW5kb3cuSW1hZ2VCaXRtYXAsU2k9e2NlbnRlcjpbMCwwXSx6b29tOjAsYmVhcmluZzowLHBpdGNoOjAsbWluWm9vbTotMixtYXhab29tOjIyLG1pblBpdGNoOjAsbWF4UGl0Y2g6NjAsaW50ZXJhY3RpdmU6ITAsc2Nyb2xsWm9vbTohMCxib3hab29tOiEwLGRyYWdSb3RhdGU6ITAsZHJhZ1BhbjohMCxrZXlib2FyZDohMCxkb3VibGVDbGlja1pvb206ITAsdG91Y2hab29tUm90YXRlOiEwLHRvdWNoUGl0Y2g6ITAsYmVhcmluZ1NuYXA6NyxjbGlja1RvbGVyYW5jZTozLHBpdGNoV2l0aFJvdGF0ZTohMCxoYXNoOiExLGF0dHJpYnV0aW9uQ29udHJvbDohMCxmYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0OiExLHByZXNlcnZlRHJhd2luZ0J1ZmZlcjohMSx0cmFja1Jlc2l6ZTohMCxyZW5kZXJXb3JsZENvcGllczohMCxyZWZyZXNoRXhwaXJlZFRpbGVzOiEwLG1heFRpbGVDYWNoZVNpemU6bnVsbCxsb2NhbElkZW9ncmFwaEZvbnRGYW1pbHk6InNhbnMtc2VyaWYiLHRyYW5zZm9ybVJlcXVlc3Q6bnVsbCxhY2Nlc3NUb2tlbjpudWxsLGZhZGVEdXJhdGlvbjozMDAsY3Jvc3NTb3VyY2VDb2xsaXNpb25zOiEwfSxFaT1mdW5jdGlvbihuKXtmdW5jdGlvbiBpKGUpe3ZhciByPXRoaXM7aWYobnVsbCE9KGU9dC5leHRlbmQoe30sU2ksZSkpLm1pblpvb20mJm51bGwhPWUubWF4Wm9vbSYmZS5taW5ab29tPmUubWF4Wm9vbSl0aHJvdyBuZXcgRXJyb3IoIm1heFpvb20gbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gbWluWm9vbSIpO2lmKG51bGwhPWUubWluUGl0Y2gmJm51bGwhPWUubWF4UGl0Y2gmJmUubWluUGl0Y2g+ZS5tYXhQaXRjaCl0aHJvdyBuZXcgRXJyb3IoIm1heFBpdGNoIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG1pblBpdGNoIik7aWYobnVsbCE9ZS5taW5QaXRjaCYmZS5taW5QaXRjaDwwKXRocm93IG5ldyBFcnJvcigibWluUGl0Y2ggbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCIpO2lmKG51bGwhPWUubWF4UGl0Y2gmJmUubWF4UGl0Y2g+NjApdGhyb3cgbmV3IEVycm9yKCJtYXhQaXRjaCBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byA2MCIpO3ZhciBpPW5ldyBBbihlLm1pblpvb20sZS5tYXhab29tLGUubWluUGl0Y2gsZS5tYXhQaXRjaCxlLnJlbmRlcldvcmxkQ29waWVzKTtpZihuLmNhbGwodGhpcyxpLGUpLHRoaXMuX2ludGVyYWN0aXZlPWUuaW50ZXJhY3RpdmUsdGhpcy5fbWF4VGlsZUNhY2hlU2l6ZT1lLm1heFRpbGVDYWNoZVNpemUsdGhpcy5fZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdD1lLmZhaWxJZk1ham9yUGVyZm9ybWFuY2VDYXZlYXQsdGhpcy5fcHJlc2VydmVEcmF3aW5nQnVmZmVyPWUucHJlc2VydmVEcmF3aW5nQnVmZmVyLHRoaXMuX2FudGlhbGlhcz1lLmFudGlhbGlhcyx0aGlzLl90cmFja1Jlc2l6ZT1lLnRyYWNrUmVzaXplLHRoaXMuX2JlYXJpbmdTbmFwPWUuYmVhcmluZ1NuYXAsdGhpcy5fcmVmcmVzaEV4cGlyZWRUaWxlcz1lLnJlZnJlc2hFeHBpcmVkVGlsZXMsdGhpcy5fZmFkZUR1cmF0aW9uPWUuZmFkZUR1cmF0aW9uLHRoaXMuX2Nyb3NzU291cmNlQ29sbGlzaW9ucz1lLmNyb3NzU291cmNlQ29sbGlzaW9ucyx0aGlzLl9jcm9zc0ZhZGluZ0ZhY3Rvcj0xLHRoaXMuX2NvbGxlY3RSZXNvdXJjZVRpbWluZz1lLmNvbGxlY3RSZXNvdXJjZVRpbWluZyx0aGlzLl9yZW5kZXJUYXNrUXVldWU9bmV3IHdpLHRoaXMuX2NvbnRyb2xzPVtdLHRoaXMuX21hcElkPXQudW5pcXVlSWQoKSx0aGlzLl9sb2NhbGU9dC5leHRlbmQoe30sVGksZS5sb2NhbGUpLHRoaXMuX3JlcXVlc3RNYW5hZ2VyPW5ldyB0LlJlcXVlc3RNYW5hZ2VyKGUudHJhbnNmb3JtUmVxdWVzdCxlLmFjY2Vzc1Rva2VuKSwic3RyaW5nIj09dHlwZW9mIGUuY29udGFpbmVyKXtpZih0aGlzLl9jb250YWluZXI9dC53aW5kb3cuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZS5jb250YWluZXIpLCF0aGlzLl9jb250YWluZXIpdGhyb3cgbmV3IEVycm9yKCJDb250YWluZXIgJyIrZS5jb250YWluZXIrIicgbm90IGZvdW5kLiIpfWVsc2V7aWYoIShlLmNvbnRhaW5lciBpbnN0YW5jZW9mIEFpKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgdHlwZTogJ2NvbnRhaW5lcicgbXVzdCBiZSBhIFN0cmluZyBvciBIVE1MRWxlbWVudC4iKTt0aGlzLl9jb250YWluZXI9ZS5jb250YWluZXJ9aWYoZS5tYXhCb3VuZHMmJnRoaXMuc2V0TWF4Qm91bmRzKGUubWF4Qm91bmRzKSx0LmJpbmRBbGwoWyJfb25XaW5kb3dPbmxpbmUiLCJfb25XaW5kb3dSZXNpemUiLCJfY29udGV4dExvc3QiLCJfY29udGV4dFJlc3RvcmVkIl0sdGhpcyksdGhpcy5fc2V0dXBDb250YWluZXIoKSx0aGlzLl9zZXR1cFBhaW50ZXIoKSx2b2lkIDA9PT10aGlzLnBhaW50ZXIpdGhyb3cgbmV3IEVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBXZWJHTC4iKTt0aGlzLm9uKCJtb3ZlIiwoZnVuY3Rpb24oKXtyZXR1cm4gci5fdXBkYXRlKCExKX0pKSx0aGlzLm9uKCJtb3ZlZW5kIiwoZnVuY3Rpb24oKXtyZXR1cm4gci5fdXBkYXRlKCExKX0pKSx0aGlzLm9uKCJ6b29tIiwoZnVuY3Rpb24oKXtyZXR1cm4gci5fdXBkYXRlKCEwKX0pKSx2b2lkIDAhPT10LndpbmRvdyYmKHQud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm9ubGluZSIsdGhpcy5fb25XaW5kb3dPbmxpbmUsITEpLHQud2luZG93LmFkZEV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdGhpcy5fb25XaW5kb3dSZXNpemUsITEpKSx0aGlzLmhhbmRsZXJzPW5ldyB5aSh0aGlzLGUpO3ZhciBhPSJzdHJpbmciPT10eXBlb2YgZS5oYXNoJiZlLmhhc2h8fHZvaWQgMDt0aGlzLl9oYXNoPWUuaGFzaCYmbmV3IFNuKGEpLmFkZFRvKHRoaXMpLHRoaXMuX2hhc2gmJnRoaXMuX2hhc2guX29uSGFzaENoYW5nZSgpfHwodGhpcy5qdW1wVG8oe2NlbnRlcjplLmNlbnRlcix6b29tOmUuem9vbSxiZWFyaW5nOmUuYmVhcmluZyxwaXRjaDplLnBpdGNofSksZS5ib3VuZHMmJih0aGlzLnJlc2l6ZSgpLHRoaXMuZml0Qm91bmRzKGUuYm91bmRzLHQuZXh0ZW5kKHt9LGUuZml0Qm91bmRzT3B0aW9ucyx7ZHVyYXRpb246MH0pKSkpLHRoaXMucmVzaXplKCksdGhpcy5fbG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5PWUubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5LGUuc3R5bGUmJnRoaXMuc2V0U3R5bGUoZS5zdHlsZSx7bG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5OmUubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5fSksZS5hdHRyaWJ1dGlvbkNvbnRyb2wmJnRoaXMuYWRkQ29udHJvbChuZXcgYmkoe2N1c3RvbUF0dHJpYnV0aW9uOmUuY3VzdG9tQXR0cmlidXRpb259KSksdGhpcy5hZGRDb250cm9sKG5ldyBfaSxlLmxvZ29Qb3NpdGlvbiksdGhpcy5vbigic3R5bGUubG9hZCIsKGZ1bmN0aW9uKCl7ci50cmFuc2Zvcm0udW5tb2RpZmllZCYmci5qdW1wVG8oci5zdHlsZS5zdHlsZXNoZWV0KX0pKSx0aGlzLm9uKCJkYXRhIiwoZnVuY3Rpb24oZSl7ci5fdXBkYXRlKCJzdHlsZSI9PT1lLmRhdGFUeXBlKSxyLmZpcmUobmV3IHQuRXZlbnQoZS5kYXRhVHlwZSsiZGF0YSIsZSkpfSkpLHRoaXMub24oImRhdGFsb2FkaW5nIiwoZnVuY3Rpb24oZSl7ci5maXJlKG5ldyB0LkV2ZW50KGUuZGF0YVR5cGUrImRhdGFsb2FkaW5nIixlKSl9KSl9biYmKGkuX19wcm90b19fPW4pLGkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobiYmbi5wcm90b3R5cGUpLGkucHJvdG90eXBlLmNvbnN0cnVjdG9yPWk7dmFyIGE9e3Nob3dUaWxlQm91bmRhcmllczp7Y29uZmlndXJhYmxlOiEwfSxzaG93UGFkZGluZzp7Y29uZmlndXJhYmxlOiEwfSxzaG93Q29sbGlzaW9uQm94ZXM6e2NvbmZpZ3VyYWJsZTohMH0sc2hvd092ZXJkcmF3SW5zcGVjdG9yOntjb25maWd1cmFibGU6ITB9LHJlcGFpbnQ6e2NvbmZpZ3VyYWJsZTohMH0sdmVydGljZXM6e2NvbmZpZ3VyYWJsZTohMH0sdmVyc2lvbjp7Y29uZmlndXJhYmxlOiEwfX07cmV0dXJuIGkucHJvdG90eXBlLl9nZXRNYXBJZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXBJZH0saS5wcm90b3R5cGUuYWRkQ29udHJvbD1mdW5jdGlvbihlLHIpe2lmKHZvaWQgMD09PXImJmUuZ2V0RGVmYXVsdFBvc2l0aW9uJiYocj1lLmdldERlZmF1bHRQb3NpdGlvbigpKSx2b2lkIDA9PT1yJiYocj0idG9wLXJpZ2h0IiksIWV8fCFlLm9uQWRkKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkludmFsaWQgYXJndW1lbnQgdG8gbWFwLmFkZENvbnRyb2woKS4gQXJndW1lbnQgbXVzdCBiZSBhIGNvbnRyb2wgd2l0aCBvbkFkZCBhbmQgb25SZW1vdmUgbWV0aG9kcy4iKSkpO3ZhciBuPWUub25BZGQodGhpcyk7dGhpcy5fY29udHJvbHMucHVzaChlKTt2YXIgaT10aGlzLl9jb250cm9sUG9zaXRpb25zW3JdO3JldHVybi0xIT09ci5pbmRleE9mKCJib3R0b20iKT9pLmluc2VydEJlZm9yZShuLGkuZmlyc3RDaGlsZCk6aS5hcHBlbmRDaGlsZChuKSx0aGlzfSxpLnByb3RvdHlwZS5yZW1vdmVDb250cm9sPWZ1bmN0aW9uKGUpe2lmKCFlfHwhZS5vblJlbW92ZSlyZXR1cm4gdGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJJbnZhbGlkIGFyZ3VtZW50IHRvIG1hcC5yZW1vdmVDb250cm9sKCkuIEFyZ3VtZW50IG11c3QgYmUgYSBjb250cm9sIHdpdGggb25BZGQgYW5kIG9uUmVtb3ZlIG1ldGhvZHMuIikpKTt2YXIgcj10aGlzLl9jb250cm9scy5pbmRleE9mKGUpO3JldHVybiByPi0xJiZ0aGlzLl9jb250cm9scy5zcGxpY2UociwxKSxlLm9uUmVtb3ZlKHRoaXMpLHRoaXN9LGkucHJvdG90eXBlLnJlc2l6ZT1mdW5jdGlvbihlKXt2YXIgcj10aGlzLl9jb250YWluZXJEaW1lbnNpb25zKCksbj1yWzBdLGk9clsxXTt0aGlzLl9yZXNpemVDYW52YXMobixpKSx0aGlzLnRyYW5zZm9ybS5yZXNpemUobixpKSx0aGlzLnBhaW50ZXIucmVzaXplKG4saSk7dmFyIGE9IXRoaXMuX21vdmluZztyZXR1cm4gYSYmKHRoaXMuc3RvcCgpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgibW92ZXN0YXJ0IixlKSkuZmlyZShuZXcgdC5FdmVudCgibW92ZSIsZSkpKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInJlc2l6ZSIsZSkpLGEmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgibW92ZWVuZCIsZSkpLHRoaXN9LGkucHJvdG90eXBlLmdldEJvdW5kcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYW5zZm9ybS5nZXRCb3VuZHMoKX0saS5wcm90b3R5cGUuZ2V0TWF4Qm91bmRzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLmdldE1heEJvdW5kcygpfSxpLnByb3RvdHlwZS5zZXRNYXhCb3VuZHM9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnNldE1heEJvdW5kcyh0LkxuZ0xhdEJvdW5kcy5jb252ZXJ0KGUpKSx0aGlzLl91cGRhdGUoKX0saS5wcm90b3R5cGUuc2V0TWluWm9vbT1mdW5jdGlvbih0KXtpZigodD1udWxsPT10Py0yOnQpPj0tMiYmdDw9dGhpcy50cmFuc2Zvcm0ubWF4Wm9vbSlyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWluWm9vbT10LHRoaXMuX3VwZGF0ZSgpLHRoaXMuZ2V0Wm9vbSgpPHQmJnRoaXMuc2V0Wm9vbSh0KSx0aGlzO3Rocm93IG5ldyBFcnJvcigibWluWm9vbSBtdXN0IGJlIGJldHdlZW4gLTIgYW5kIHRoZSBjdXJyZW50IG1heFpvb20sIGluY2x1c2l2ZSIpfSxpLnByb3RvdHlwZS5nZXRNaW5ab29tPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLm1pblpvb219LGkucHJvdG90eXBlLnNldE1heFpvb209ZnVuY3Rpb24odCl7aWYoKHQ9bnVsbD09dD8yMjp0KT49dGhpcy50cmFuc2Zvcm0ubWluWm9vbSlyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4Wm9vbT10LHRoaXMuX3VwZGF0ZSgpLHRoaXMuZ2V0Wm9vbSgpPnQmJnRoaXMuc2V0Wm9vbSh0KSx0aGlzO3Rocm93IG5ldyBFcnJvcigibWF4Wm9vbSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB0aGUgY3VycmVudCBtaW5ab29tIil9LGkucHJvdG90eXBlLmdldE1heFpvb209ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4Wm9vbX0saS5wcm90b3R5cGUuc2V0TWluUGl0Y2g9ZnVuY3Rpb24odCl7aWYoKHQ9bnVsbD09dD8wOnQpPDApdGhyb3cgbmV3IEVycm9yKCJtaW5QaXRjaCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAwIik7aWYodD49MCYmdDw9dGhpcy50cmFuc2Zvcm0ubWF4UGl0Y2gpcmV0dXJuIHRoaXMudHJhbnNmb3JtLm1pblBpdGNoPXQsdGhpcy5fdXBkYXRlKCksdGhpcy5nZXRQaXRjaCgpPHQmJnRoaXMuc2V0UGl0Y2godCksdGhpczt0aHJvdyBuZXcgRXJyb3IoIm1pblBpdGNoIG11c3QgYmUgYmV0d2VlbiAwIGFuZCB0aGUgY3VycmVudCBtYXhQaXRjaCwgaW5jbHVzaXZlIil9LGkucHJvdG90eXBlLmdldE1pblBpdGNoPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLm1pblBpdGNofSxpLnByb3RvdHlwZS5zZXRNYXhQaXRjaD1mdW5jdGlvbih0KXtpZigodD1udWxsPT10PzYwOnQpPjYwKXRocm93IG5ldyBFcnJvcigibWF4UGl0Y2ggbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNjAiKTtpZih0Pj10aGlzLnRyYW5zZm9ybS5taW5QaXRjaClyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4UGl0Y2g9dCx0aGlzLl91cGRhdGUoKSx0aGlzLmdldFBpdGNoKCk+dCYmdGhpcy5zZXRQaXRjaCh0KSx0aGlzO3Rocm93IG5ldyBFcnJvcigibWF4UGl0Y2ggbXVzdCBiZSBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgbWluUGl0Y2giKX0saS5wcm90b3R5cGUuZ2V0TWF4UGl0Y2g9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubWF4UGl0Y2h9LGkucHJvdG90eXBlLmdldFJlbmRlcldvcmxkQ29waWVzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudHJhbnNmb3JtLnJlbmRlcldvcmxkQ29waWVzfSxpLnByb3RvdHlwZS5zZXRSZW5kZXJXb3JsZENvcGllcz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ucmVuZGVyV29ybGRDb3BpZXM9dCx0aGlzLl91cGRhdGUoKX0saS5wcm90b3R5cGUucHJvamVjdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy50cmFuc2Zvcm0ubG9jYXRpb25Qb2ludCh0LkxuZ0xhdC5jb252ZXJ0KGUpKX0saS5wcm90b3R5cGUudW5wcm9qZWN0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLnRyYW5zZm9ybS5wb2ludExvY2F0aW9uKHQuUG9pbnQuY29udmVydChlKSl9LGkucHJvdG90eXBlLmlzTW92aW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21vdmluZ3x8dGhpcy5oYW5kbGVycy5pc01vdmluZygpfSxpLnByb3RvdHlwZS5pc1pvb21pbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fem9vbWluZ3x8dGhpcy5oYW5kbGVycy5pc1pvb21pbmcoKX0saS5wcm90b3R5cGUuaXNSb3RhdGluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9yb3RhdGluZ3x8dGhpcy5oYW5kbGVycy5pc1JvdGF0aW5nKCl9LGkucHJvdG90eXBlLl9jcmVhdGVEZWxlZ2F0ZWRMaXN0ZW5lcj1mdW5jdGlvbih0LGUscil7dmFyIG4saT10aGlzO2lmKCJtb3VzZWVudGVyIj09PXR8fCJtb3VzZW92ZXIiPT09dCl7dmFyIGE9ITE7cmV0dXJue2xheWVyOmUsbGlzdGVuZXI6cixkZWxlZ2F0ZXM6e21vdXNlbW92ZTpmdW5jdGlvbihuKXt2YXIgbz1pLmdldExheWVyKGUpP2kucXVlcnlSZW5kZXJlZEZlYXR1cmVzKG4ucG9pbnQse2xheWVyczpbZV19KTpbXTtvLmxlbmd0aD9hfHwoYT0hMCxyLmNhbGwoaSxuZXcgUm4odCxpLG4ub3JpZ2luYWxFdmVudCx7ZmVhdHVyZXM6b30pKSk6YT0hMX0sbW91c2VvdXQ6ZnVuY3Rpb24oKXthPSExfX19fWlmKCJtb3VzZWxlYXZlIj09PXR8fCJtb3VzZW91dCI9PT10KXt2YXIgbz0hMTtyZXR1cm57bGF5ZXI6ZSxsaXN0ZW5lcjpyLGRlbGVnYXRlczp7bW91c2Vtb3ZlOmZ1bmN0aW9uKG4peyhpLmdldExheWVyKGUpP2kucXVlcnlSZW5kZXJlZEZlYXR1cmVzKG4ucG9pbnQse2xheWVyczpbZV19KTpbXSkubGVuZ3RoP289ITA6byYmKG89ITEsci5jYWxsKGksbmV3IFJuKHQsaSxuLm9yaWdpbmFsRXZlbnQpKSl9LG1vdXNlb3V0OmZ1bmN0aW9uKGUpe28mJihvPSExLHIuY2FsbChpLG5ldyBSbih0LGksZS5vcmlnaW5hbEV2ZW50KSkpfX19fXJldHVybntsYXllcjplLGxpc3RlbmVyOnIsZGVsZWdhdGVzOihuPXt9LG5bdF09ZnVuY3Rpb24odCl7dmFyIG49aS5nZXRMYXllcihlKT9pLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcyh0LnBvaW50LHtsYXllcnM6W2VdfSk6W107bi5sZW5ndGgmJih0LmZlYXR1cmVzPW4sci5jYWxsKGksdCksZGVsZXRlIHQuZmVhdHVyZXMpfSxuKX19LGkucHJvdG90eXBlLm9uPWZ1bmN0aW9uKHQsZSxyKXtpZih2b2lkIDA9PT1yKXJldHVybiBuLnByb3RvdHlwZS5vbi5jYWxsKHRoaXMsdCxlKTt2YXIgaT10aGlzLl9jcmVhdGVEZWxlZ2F0ZWRMaXN0ZW5lcih0LGUscik7Zm9yKHZhciBhIGluIHRoaXMuX2RlbGVnYXRlZExpc3RlbmVycz10aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnN8fHt9LHRoaXMuX2RlbGVnYXRlZExpc3RlbmVyc1t0XT10aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnNbdF18fFtdLHRoaXMuX2RlbGVnYXRlZExpc3RlbmVyc1t0XS5wdXNoKGkpLGkuZGVsZWdhdGVzKXRoaXMub24oYSxpLmRlbGVnYXRlc1thXSk7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLm9uY2U9ZnVuY3Rpb24odCxlLHIpe2lmKHZvaWQgMD09PXIpcmV0dXJuIG4ucHJvdG90eXBlLm9uY2UuY2FsbCh0aGlzLHQsZSk7dmFyIGk9dGhpcy5fY3JlYXRlRGVsZWdhdGVkTGlzdGVuZXIodCxlLHIpO2Zvcih2YXIgYSBpbiBpLmRlbGVnYXRlcyl0aGlzLm9uY2UoYSxpLmRlbGVnYXRlc1thXSk7cmV0dXJuIHRoaXN9LGkucHJvdG90eXBlLm9mZj1mdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcztpZih2b2lkIDA9PT1yKXJldHVybiBuLnByb3RvdHlwZS5vZmYuY2FsbCh0aGlzLHQsZSk7cmV0dXJuIHRoaXMuX2RlbGVnYXRlZExpc3RlbmVycyYmdGhpcy5fZGVsZWdhdGVkTGlzdGVuZXJzW3RdJiZmdW5jdGlvbihuKXtmb3IodmFyIGE9blt0XSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107aWYocy5sYXllcj09PWUmJnMubGlzdGVuZXI9PT1yKXtmb3IodmFyIGwgaW4gcy5kZWxlZ2F0ZXMpaS5vZmYobCxzLmRlbGVnYXRlc1tsXSk7cmV0dXJuIGEuc3BsaWNlKG8sMSksaX19fSh0aGlzLl9kZWxlZ2F0ZWRMaXN0ZW5lcnMpLHRoaXN9LGkucHJvdG90eXBlLnF1ZXJ5UmVuZGVyZWRGZWF0dXJlcz1mdW5jdGlvbihlLHIpe2lmKCF0aGlzLnN0eWxlKXJldHVybltdO3ZhciBuO2lmKHZvaWQgMCE9PXJ8fHZvaWQgMD09PWV8fGUgaW5zdGFuY2VvZiB0LlBvaW50fHxBcnJheS5pc0FycmF5KGUpfHwocj1lLGU9dm9pZCAwKSxyPXJ8fHt9LChlPWV8fFtbMCwwXSxbdGhpcy50cmFuc2Zvcm0ud2lkdGgsdGhpcy50cmFuc2Zvcm0uaGVpZ2h0XV0paW5zdGFuY2VvZiB0LlBvaW50fHwibnVtYmVyIj09dHlwZW9mIGVbMF0pbj1bdC5Qb2ludC5jb252ZXJ0KGUpXTtlbHNle3ZhciBpPXQuUG9pbnQuY29udmVydChlWzBdKSxhPXQuUG9pbnQuY29udmVydChlWzFdKTtuPVtpLG5ldyB0LlBvaW50KGEueCxpLnkpLGEsbmV3IHQuUG9pbnQoaS54LGEueSksaV19cmV0dXJuIHRoaXMuc3R5bGUucXVlcnlSZW5kZXJlZEZlYXR1cmVzKG4scix0aGlzLnRyYW5zZm9ybSl9LGkucHJvdG90eXBlLnF1ZXJ5U291cmNlRmVhdHVyZXM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zdHlsZS5xdWVyeVNvdXJjZUZlYXR1cmVzKHQsZSl9LGkucHJvdG90eXBlLnNldFN0eWxlPWZ1bmN0aW9uKGUscil7cmV0dXJuITEhPT0ocj10LmV4dGVuZCh7fSx7bG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5OnRoaXMuX2xvY2FsSWRlb2dyYXBoRm9udEZhbWlseX0scikpLmRpZmYmJnIubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5PT09dGhpcy5fbG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5JiZ0aGlzLnN0eWxlJiZlPyh0aGlzLl9kaWZmU3R5bGUoZSxyKSx0aGlzKToodGhpcy5fbG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5PXIubG9jYWxJZGVvZ3JhcGhGb250RmFtaWx5LHRoaXMuX3VwZGF0ZVN0eWxlKGUscikpfSxpLnByb3RvdHlwZS5fZ2V0VUlTdHJpbmc9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fbG9jYWxlW3RdO2lmKG51bGw9PWUpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIFVJIHN0cmluZyAnIit0KyInIik7cmV0dXJuIGV9LGkucHJvdG90eXBlLl91cGRhdGVTdHlsZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlJiYodGhpcy5zdHlsZS5zZXRFdmVudGVkUGFyZW50KG51bGwpLHRoaXMuc3R5bGUuX3JlbW92ZSgpKSx0Pyh0aGlzLnN0eWxlPW5ldyBxZSh0aGlzLGV8fHt9KSx0aGlzLnN0eWxlLnNldEV2ZW50ZWRQYXJlbnQodGhpcyx7c3R5bGU6dGhpcy5zdHlsZX0pLCJzdHJpbmciPT10eXBlb2YgdD90aGlzLnN0eWxlLmxvYWRVUkwodCk6dGhpcy5zdHlsZS5sb2FkSlNPTih0KSx0aGlzKTooZGVsZXRlIHRoaXMuc3R5bGUsdGhpcyl9LGkucHJvdG90eXBlLl9sYXp5SW5pdEVtcHR5U3R5bGU9ZnVuY3Rpb24oKXt0aGlzLnN0eWxlfHwodGhpcy5zdHlsZT1uZXcgcWUodGhpcyx7fSksdGhpcy5zdHlsZS5zZXRFdmVudGVkUGFyZW50KHRoaXMse3N0eWxlOnRoaXMuc3R5bGV9KSx0aGlzLnN0eWxlLmxvYWRFbXB0eSgpKX0saS5wcm90b3R5cGUuX2RpZmZTdHlsZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXM7aWYoInN0cmluZyI9PXR5cGVvZiBlKXt2YXIgaT10aGlzLl9yZXF1ZXN0TWFuYWdlci5ub3JtYWxpemVTdHlsZVVSTChlKSxhPXRoaXMuX3JlcXVlc3RNYW5hZ2VyLnRyYW5zZm9ybVJlcXVlc3QoaSx0LlJlc291cmNlVHlwZS5TdHlsZSk7dC5nZXRKU09OKGEsKGZ1bmN0aW9uKGUsaSl7ZT9uLmZpcmUobmV3IHQuRXJyb3JFdmVudChlKSk6aSYmbi5fdXBkYXRlRGlmZihpLHIpfSkpfWVsc2Uib2JqZWN0Ij09dHlwZW9mIGUmJnRoaXMuX3VwZGF0ZURpZmYoZSxyKX0saS5wcm90b3R5cGUuX3VwZGF0ZURpZmY9ZnVuY3Rpb24oZSxyKXt0cnl7dGhpcy5zdHlsZS5zZXRTdGF0ZShlKSYmdGhpcy5fdXBkYXRlKCEwKX1jYXRjaChuKXt0Lndhcm5PbmNlKCJVbmFibGUgdG8gcGVyZm9ybSBzdHlsZSBkaWZmOiAiKyhuLm1lc3NhZ2V8fG4uZXJyb3J8fG4pKyIuICBSZWJ1aWxkaW5nIHRoZSBzdHlsZSBmcm9tIHNjcmF0Y2guIiksdGhpcy5fdXBkYXRlU3R5bGUoZSxyKX19LGkucHJvdG90eXBlLmdldFN0eWxlPWZ1bmN0aW9uKCl7aWYodGhpcy5zdHlsZSlyZXR1cm4gdGhpcy5zdHlsZS5zZXJpYWxpemUoKX0saS5wcm90b3R5cGUuaXNTdHlsZUxvYWRlZD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0eWxlP3RoaXMuc3R5bGUubG9hZGVkKCk6dC53YXJuT25jZSgiVGhlcmUgaXMgbm8gc3R5bGUgYWRkZWQgdG8gdGhlIG1hcC4iKX0saS5wcm90b3R5cGUuYWRkU291cmNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2xhenlJbml0RW1wdHlTdHlsZSgpLHRoaXMuc3R5bGUuYWRkU291cmNlKHQsZSksdGhpcy5fdXBkYXRlKCEwKX0saS5wcm90b3R5cGUuaXNTb3VyY2VMb2FkZWQ9ZnVuY3Rpb24oZSl7dmFyIHI9dGhpcy5zdHlsZSYmdGhpcy5zdHlsZS5zb3VyY2VDYWNoZXNbZV07aWYodm9pZCAwIT09cilyZXR1cm4gci5sb2FkZWQoKTt0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIlRoZXJlIGlzIG5vIHNvdXJjZSB3aXRoIElEICciK2UrIiciKSkpfSxpLnByb3RvdHlwZS5hcmVUaWxlc0xvYWRlZD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3R5bGUmJnRoaXMuc3R5bGUuc291cmNlQ2FjaGVzO2Zvcih2YXIgZSBpbiB0KXt2YXIgcj10W2VdLl90aWxlcztmb3IodmFyIG4gaW4gcil7dmFyIGk9cltuXTtpZigibG9hZGVkIiE9PWkuc3RhdGUmJiJlcnJvcmVkIiE9PWkuc3RhdGUpcmV0dXJuITF9fXJldHVybiEwfSxpLnByb3RvdHlwZS5hZGRTb3VyY2VUeXBlPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5fbGF6eUluaXRFbXB0eVN0eWxlKCksdGhpcy5zdHlsZS5hZGRTb3VyY2VUeXBlKHQsZSxyKX0saS5wcm90b3R5cGUucmVtb3ZlU291cmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLnJlbW92ZVNvdXJjZSh0KSx0aGlzLl91cGRhdGUoITApfSxpLnByb3RvdHlwZS5nZXRTb3VyY2U9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0U291cmNlKHQpfSxpLnByb3RvdHlwZS5hZGRJbWFnZT1mdW5jdGlvbihlLHIsbil7dm9pZCAwPT09biYmKG49e30pO3ZhciBpPW4ucGl4ZWxSYXRpbzt2b2lkIDA9PT1pJiYoaT0xKTt2YXIgYT1uLnNkZjt2b2lkIDA9PT1hJiYoYT0hMSk7dmFyIG89bi5zdHJldGNoWCxzPW4uc3RyZXRjaFksbD1uLmNvbnRlbnQ7dGhpcy5fbGF6eUluaXRFbXB0eVN0eWxlKCk7aWYociBpbnN0YW5jZW9mIGtpfHxNaSYmciBpbnN0YW5jZW9mIE1pKXt2YXIgYz10LmJyb3dzZXIuZ2V0SW1hZ2VEYXRhKHIpLHU9Yy53aWR0aCxmPWMuaGVpZ2h0LGg9Yy5kYXRhO3RoaXMuc3R5bGUuYWRkSW1hZ2UoZSx7ZGF0YTpuZXcgdC5SR0JBSW1hZ2Uoe3dpZHRoOnUsaGVpZ2h0OmZ9LGgpLHBpeGVsUmF0aW86aSxzdHJldGNoWDpvLHN0cmV0Y2hZOnMsY29udGVudDpsLHNkZjphLHZlcnNpb246MH0pfWVsc2V7aWYodm9pZCAwPT09ci53aWR0aHx8dm9pZCAwPT09ci5oZWlnaHQpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiSW52YWxpZCBhcmd1bWVudHMgdG8gbWFwLmFkZEltYWdlKCkuIFRoZSBzZWNvbmQgYXJndW1lbnQgbXVzdCBiZSBhbiBgSFRNTEltYWdlRWxlbWVudGAsIGBJbWFnZURhdGFgLCBgSW1hZ2VCaXRtYXBgLCBvciBvYmplY3Qgd2l0aCBgd2lkdGhgLCBgaGVpZ2h0YCwgYW5kIGBkYXRhYCBwcm9wZXJ0aWVzIHdpdGggdGhlIHNhbWUgZm9ybWF0IGFzIGBJbWFnZURhdGFgIikpKTt2YXIgcD1yLndpZHRoLGQ9ci5oZWlnaHQsbT1yLmRhdGEsZz1yO3RoaXMuc3R5bGUuYWRkSW1hZ2UoZSx7ZGF0YTpuZXcgdC5SR0JBSW1hZ2Uoe3dpZHRoOnAsaGVpZ2h0OmR9LG5ldyBVaW50OEFycmF5KG0pKSxwaXhlbFJhdGlvOmksc3RyZXRjaFg6byxzdHJldGNoWTpzLGNvbnRlbnQ6bCxzZGY6YSx2ZXJzaW9uOjAsdXNlckltYWdlOmd9KSxnLm9uQWRkJiZnLm9uQWRkKHRoaXMsZSl9fSxpLnByb3RvdHlwZS51cGRhdGVJbWFnZT1mdW5jdGlvbihlLHIpe3ZhciBuPXRoaXMuc3R5bGUuZ2V0SW1hZ2UoZSk7aWYoIW4pcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIG1hcCBoYXMgbm8gaW1hZ2Ugd2l0aCB0aGF0IGlkLiBJZiB5b3UgYXJlIGFkZGluZyBhIG5ldyBpbWFnZSB1c2UgYG1hcC5hZGRJbWFnZSguLi4pYCBpbnN0ZWFkLiIpKSk7dmFyIGk9ciBpbnN0YW5jZW9mIGtpfHxNaSYmciBpbnN0YW5jZW9mIE1pP3QuYnJvd3Nlci5nZXRJbWFnZURhdGEocik6cixhPWkud2lkdGgsbz1pLmhlaWdodCxzPWkuZGF0YTtpZih2b2lkIDA9PT1hfHx2b2lkIDA9PT1vKXJldHVybiB0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkludmFsaWQgYXJndW1lbnRzIHRvIG1hcC51cGRhdGVJbWFnZSgpLiBUaGUgc2Vjb25kIGFyZ3VtZW50IG11c3QgYmUgYW4gYEhUTUxJbWFnZUVsZW1lbnRgLCBgSW1hZ2VEYXRhYCwgYEltYWdlQml0bWFwYCwgb3Igb2JqZWN0IHdpdGggYHdpZHRoYCwgYGhlaWdodGAsIGFuZCBgZGF0YWAgcHJvcGVydGllcyB3aXRoIHRoZSBzYW1lIGZvcm1hdCBhcyBgSW1hZ2VEYXRhYCIpKSk7aWYoYSE9PW4uZGF0YS53aWR0aHx8byE9PW4uZGF0YS5oZWlnaHQpcmV0dXJuIHRoaXMuZmlyZShuZXcgdC5FcnJvckV2ZW50KG5ldyBFcnJvcigiVGhlIHdpZHRoIGFuZCBoZWlnaHQgb2YgdGhlIHVwZGF0ZWQgaW1hZ2UgbXVzdCBiZSB0aGF0IHNhbWUgYXMgdGhlIHByZXZpb3VzIHZlcnNpb24gb2YgdGhlIGltYWdlIikpKTt2YXIgbD0hKHIgaW5zdGFuY2VvZiBraXx8TWkmJnIgaW5zdGFuY2VvZiBNaSk7bi5kYXRhLnJlcGxhY2UocyxsKSx0aGlzLnN0eWxlLnVwZGF0ZUltYWdlKGUsbil9LGkucHJvdG90eXBlLmhhc0ltYWdlPWZ1bmN0aW9uKGUpe3JldHVybiBlPyEhdGhpcy5zdHlsZS5nZXRJbWFnZShlKToodGhpcy5maXJlKG5ldyB0LkVycm9yRXZlbnQobmV3IEVycm9yKCJNaXNzaW5nIHJlcXVpcmVkIGltYWdlIGlkIikpKSwhMSl9LGkucHJvdG90eXBlLnJlbW92ZUltYWdlPWZ1bmN0aW9uKHQpe3RoaXMuc3R5bGUucmVtb3ZlSW1hZ2UodCl9LGkucHJvdG90eXBlLmxvYWRJbWFnZT1mdW5jdGlvbihlLHIpe3QuZ2V0SW1hZ2UodGhpcy5fcmVxdWVzdE1hbmFnZXIudHJhbnNmb3JtUmVxdWVzdChlLHQuUmVzb3VyY2VUeXBlLkltYWdlKSxyKX0saS5wcm90b3R5cGUubGlzdEltYWdlcz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN0eWxlLmxpc3RJbWFnZXMoKX0saS5wcm90b3R5cGUuYWRkTGF5ZXI9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fbGF6eUluaXRFbXB0eVN0eWxlKCksdGhpcy5zdHlsZS5hZGRMYXllcih0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLm1vdmVMYXllcj1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLm1vdmVMYXllcih0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLnJlbW92ZUxheWVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLnJlbW92ZUxheWVyKHQpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLmdldExheWVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLmdldExheWVyKHQpfSxpLnByb3RvdHlwZS5zZXRMYXllclpvb21SYW5nZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuc3R5bGUuc2V0TGF5ZXJab29tUmFuZ2UodCxlLHIpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLnNldEZpbHRlcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIHZvaWQgMD09PXImJihyPXt9KSx0aGlzLnN0eWxlLnNldEZpbHRlcih0LGUsciksdGhpcy5fdXBkYXRlKCEwKX0saS5wcm90b3R5cGUuZ2V0RmlsdGVyPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLnN0eWxlLmdldEZpbHRlcih0KX0saS5wcm90b3R5cGUuc2V0UGFpbnRQcm9wZXJ0eT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLHRoaXMuc3R5bGUuc2V0UGFpbnRQcm9wZXJ0eSh0LGUscixuKSx0aGlzLl91cGRhdGUoITApfSxpLnByb3RvdHlwZS5nZXRQYWludFByb3BlcnR5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0UGFpbnRQcm9wZXJ0eSh0LGUpfSxpLnByb3RvdHlwZS5zZXRMYXlvdXRQcm9wZXJ0eT1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gdm9pZCAwPT09biYmKG49e30pLHRoaXMuc3R5bGUuc2V0TGF5b3V0UHJvcGVydHkodCxlLHIsbiksdGhpcy5fdXBkYXRlKCEwKX0saS5wcm90b3R5cGUuZ2V0TGF5b3V0UHJvcGVydHk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zdHlsZS5nZXRMYXlvdXRQcm9wZXJ0eSh0LGUpfSxpLnByb3RvdHlwZS5zZXRMaWdodD1mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT1lJiYoZT17fSksdGhpcy5fbGF6eUluaXRFbXB0eVN0eWxlKCksdGhpcy5zdHlsZS5zZXRMaWdodCh0LGUpLHRoaXMuX3VwZGF0ZSghMCl9LGkucHJvdG90eXBlLmdldExpZ2h0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0TGlnaHQoKX0saS5wcm90b3R5cGUuc2V0RmVhdHVyZVN0YXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuc3R5bGUuc2V0RmVhdHVyZVN0YXRlKHQsZSksdGhpcy5fdXBkYXRlKCl9LGkucHJvdG90eXBlLnJlbW92ZUZlYXR1cmVTdGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLnN0eWxlLnJlbW92ZUZlYXR1cmVTdGF0ZSh0LGUpLHRoaXMuX3VwZGF0ZSgpfSxpLnByb3RvdHlwZS5nZXRGZWF0dXJlU3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGUuZ2V0RmVhdHVyZVN0YXRlKHQpfSxpLnByb3RvdHlwZS5nZXRDb250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyfSxpLnByb3RvdHlwZS5nZXRDYW52YXNDb250YWluZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FudmFzQ29udGFpbmVyfSxpLnByb3RvdHlwZS5nZXRDYW52YXM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FudmFzfSxpLnByb3RvdHlwZS5fY29udGFpbmVyRGltZW5zaW9ucz1mdW5jdGlvbigpe3ZhciB0PTAsZT0wO3JldHVybiB0aGlzLl9jb250YWluZXImJih0PXRoaXMuX2NvbnRhaW5lci5jbGllbnRXaWR0aHx8NDAwLGU9dGhpcy5fY29udGFpbmVyLmNsaWVudEhlaWdodHx8MzAwKSxbdCxlXX0saS5wcm90b3R5cGUuX2RldGVjdE1pc3NpbmdDU1M9ZnVuY3Rpb24oKXsicmdiKDI1MCwgMTI4LCAxMTQpIiE9PXQud2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fbWlzc2luZ0NTU0NhbmFyeSkuZ2V0UHJvcGVydHlWYWx1ZSgiYmFja2dyb3VuZC1jb2xvciIpJiZ0Lndhcm5PbmNlKCJUaGlzIHBhZ2UgYXBwZWFycyB0byBiZSBtaXNzaW5nIENTUyBkZWNsYXJhdGlvbnMgZm9yIE1hcGJveCBHTCBKUywgd2hpY2ggbWF5IGNhdXNlIHRoZSBtYXAgdG8gZGlzcGxheSBpbmNvcnJlY3RseS4gUGxlYXNlIGVuc3VyZSB5b3VyIHBhZ2UgaW5jbHVkZXMgbWFwYm94LWdsLmNzcywgYXMgZGVzY3JpYmVkIGluIGh0dHBzOi8vd3d3Lm1hcGJveC5jb20vbWFwYm94LWdsLWpzL2FwaS8uIil9LGkucHJvdG90eXBlLl9zZXR1cENvbnRhaW5lcj1mdW5jdGlvbigpe3ZhciB0PXRoaXMuX2NvbnRhaW5lcjt0LmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLW1hcCIpLCh0aGlzLl9taXNzaW5nQ1NTQ2FuYXJ5PXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jYW5hcnkiLHQpKS5zdHlsZS52aXNpYmlsaXR5PSJoaWRkZW4iLHRoaXMuX2RldGVjdE1pc3NpbmdDU1MoKTt2YXIgZT10aGlzLl9jYW52YXNDb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWNhbnZhcy1jb250YWluZXIiLHQpO3RoaXMuX2ludGVyYWN0aXZlJiZlLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWludGVyYWN0aXZlIiksdGhpcy5fY2FudmFzPXIuY3JlYXRlKCJjYW52YXMiLCJtYXBib3hnbC1jYW52YXMiLGUpLHRoaXMuX2NhbnZhcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0Iix0aGlzLl9jb250ZXh0TG9zdCwhMSksdGhpcy5fY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIix0aGlzLl9jb250ZXh0UmVzdG9yZWQsITEpLHRoaXMuX2NhbnZhcy5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHRoaXMuX2NhbnZhcy5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJNYXAiKTt2YXIgbj10aGlzLl9jb250YWluZXJEaW1lbnNpb25zKCk7dGhpcy5fcmVzaXplQ2FudmFzKG5bMF0sblsxXSk7dmFyIGk9dGhpcy5fY29udHJvbENvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY29udHJvbC1jb250YWluZXIiLHQpLGE9dGhpcy5fY29udHJvbFBvc2l0aW9ucz17fTtbInRvcC1sZWZ0IiwidG9wLXJpZ2h0IiwiYm90dG9tLWxlZnQiLCJib3R0b20tcmlnaHQiXS5mb3JFYWNoKChmdW5jdGlvbih0KXthW3RdPXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1jdHJsLSIrdCxpKX0pKX0saS5wcm90b3R5cGUuX3Jlc2l6ZUNhbnZhcz1mdW5jdGlvbihlLHIpe3ZhciBuPXQuYnJvd3Nlci5kZXZpY2VQaXhlbFJhdGlvfHwxO3RoaXMuX2NhbnZhcy53aWR0aD1uKmUsdGhpcy5fY2FudmFzLmhlaWdodD1uKnIsdGhpcy5fY2FudmFzLnN0eWxlLndpZHRoPWUrInB4Iix0aGlzLl9jYW52YXMuc3R5bGUuaGVpZ2h0PXIrInB4In0saS5wcm90b3R5cGUuX3NldHVwUGFpbnRlcj1mdW5jdGlvbigpe3ZhciByPXQuZXh0ZW5kKHt9LGUud2ViR0xDb250ZXh0QXR0cmlidXRlcyx7ZmFpbElmTWFqb3JQZXJmb3JtYW5jZUNhdmVhdDp0aGlzLl9mYWlsSWZNYWpvclBlcmZvcm1hbmNlQ2F2ZWF0LHByZXNlcnZlRHJhd2luZ0J1ZmZlcjp0aGlzLl9wcmVzZXJ2ZURyYXdpbmdCdWZmZXIsYW50aWFsaWFzOnRoaXMuX2FudGlhbGlhc3x8ITF9KSxuPXRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCJ3ZWJnbCIscil8fHRoaXMuX2NhbnZhcy5nZXRDb250ZXh0KCJleHBlcmltZW50YWwtd2ViZ2wiLHIpO24/KHRoaXMucGFpbnRlcj1uZXcgX24obix0aGlzLnRyYW5zZm9ybSksdC53ZWJwU3VwcG9ydGVkLnRlc3RTdXBwb3J0KG4pKTp0aGlzLmZpcmUobmV3IHQuRXJyb3JFdmVudChuZXcgRXJyb3IoIkZhaWxlZCB0byBpbml0aWFsaXplIFdlYkdMIikpKX0saS5wcm90b3R5cGUuX2NvbnRleHRMb3N0PWZ1bmN0aW9uKGUpe2UucHJldmVudERlZmF1bHQoKSx0aGlzLl9mcmFtZSYmKHRoaXMuX2ZyYW1lLmNhbmNlbCgpLHRoaXMuX2ZyYW1lPW51bGwpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgid2ViZ2xjb250ZXh0bG9zdCIse29yaWdpbmFsRXZlbnQ6ZX0pKX0saS5wcm90b3R5cGUuX2NvbnRleHRSZXN0b3JlZD1mdW5jdGlvbihlKXt0aGlzLl9zZXR1cFBhaW50ZXIoKSx0aGlzLnJlc2l6ZSgpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgid2ViZ2xjb250ZXh0cmVzdG9yZWQiLHtvcmlnaW5hbEV2ZW50OmV9KSl9LGkucHJvdG90eXBlLmxvYWRlZD1mdW5jdGlvbigpe3JldHVybiF0aGlzLl9zdHlsZURpcnR5JiYhdGhpcy5fc291cmNlc0RpcnR5JiYhIXRoaXMuc3R5bGUmJnRoaXMuc3R5bGUubG9hZGVkKCl9LGkucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuc3R5bGU/KHRoaXMuX3N0eWxlRGlydHk9dGhpcy5fc3R5bGVEaXJ0eXx8dCx0aGlzLl9zb3VyY2VzRGlydHk9ITAsdGhpcy50cmlnZ2VyUmVwYWludCgpLHRoaXMpOnRoaXN9LGkucHJvdG90eXBlLl9yZXF1ZXN0UmVuZGVyRnJhbWU9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3VwZGF0ZSgpLHRoaXMuX3JlbmRlclRhc2tRdWV1ZS5hZGQodCl9LGkucHJvdG90eXBlLl9jYW5jZWxSZW5kZXJGcmFtZT1mdW5jdGlvbih0KXt0aGlzLl9yZW5kZXJUYXNrUXVldWUucmVtb3ZlKHQpfSxpLnByb3RvdHlwZS5fcmVuZGVyPWZ1bmN0aW9uKGUpe3ZhciByLG49dGhpcyxpPTAsYT10aGlzLnBhaW50ZXIuY29udGV4dC5leHRUaW1lclF1ZXJ5O2lmKHRoaXMubGlzdGVucygiZ3B1LXRpbWluZy1mcmFtZSIpJiYocj1hLmNyZWF0ZVF1ZXJ5RVhUKCksYS5iZWdpblF1ZXJ5RVhUKGEuVElNRV9FTEFQU0VEX0VYVCxyKSxpPXQuYnJvd3Nlci5ub3coKSksdGhpcy5wYWludGVyLmNvbnRleHQuc2V0RGlydHkoKSx0aGlzLnBhaW50ZXIuc2V0QmFzZVN0YXRlKCksdGhpcy5fcmVuZGVyVGFza1F1ZXVlLnJ1bihlKSwhdGhpcy5fcmVtb3ZlZCl7dmFyIG89ITE7aWYodGhpcy5zdHlsZSYmdGhpcy5fc3R5bGVEaXJ0eSl7dGhpcy5fc3R5bGVEaXJ0eT0hMTt2YXIgcz10aGlzLnRyYW5zZm9ybS56b29tLGw9dC5icm93c2VyLm5vdygpO3RoaXMuc3R5bGUuem9vbUhpc3RvcnkudXBkYXRlKHMsbCk7dmFyIGM9bmV3IHQuRXZhbHVhdGlvblBhcmFtZXRlcnMocyx7bm93OmwsZmFkZUR1cmF0aW9uOnRoaXMuX2ZhZGVEdXJhdGlvbix6b29tSGlzdG9yeTp0aGlzLnN0eWxlLnpvb21IaXN0b3J5LHRyYW5zaXRpb246dGhpcy5zdHlsZS5nZXRUcmFuc2l0aW9uKCl9KSx1PWMuY3Jvc3NGYWRpbmdGYWN0b3IoKTsxPT09dSYmdT09PXRoaXMuX2Nyb3NzRmFkaW5nRmFjdG9yfHwobz0hMCx0aGlzLl9jcm9zc0ZhZGluZ0ZhY3Rvcj11KSx0aGlzLnN0eWxlLnVwZGF0ZShjKX1pZih0aGlzLnN0eWxlJiZ0aGlzLl9zb3VyY2VzRGlydHkmJih0aGlzLl9zb3VyY2VzRGlydHk9ITEsdGhpcy5zdHlsZS5fdXBkYXRlU291cmNlcyh0aGlzLnRyYW5zZm9ybSkpLHRoaXMuX3BsYWNlbWVudERpcnR5PXRoaXMuc3R5bGUmJnRoaXMuc3R5bGUuX3VwZGF0ZVBsYWNlbWVudCh0aGlzLnBhaW50ZXIudHJhbnNmb3JtLHRoaXMuc2hvd0NvbGxpc2lvbkJveGVzLHRoaXMuX2ZhZGVEdXJhdGlvbix0aGlzLl9jcm9zc1NvdXJjZUNvbGxpc2lvbnMpLHRoaXMucGFpbnRlci5yZW5kZXIodGhpcy5zdHlsZSx7c2hvd1RpbGVCb3VuZGFyaWVzOnRoaXMuc2hvd1RpbGVCb3VuZGFyaWVzLHNob3dPdmVyZHJhd0luc3BlY3Rvcjp0aGlzLl9zaG93T3ZlcmRyYXdJbnNwZWN0b3Iscm90YXRpbmc6dGhpcy5pc1JvdGF0aW5nKCksem9vbWluZzp0aGlzLmlzWm9vbWluZygpLG1vdmluZzp0aGlzLmlzTW92aW5nKCksZmFkZUR1cmF0aW9uOnRoaXMuX2ZhZGVEdXJhdGlvbixzaG93UGFkZGluZzp0aGlzLnNob3dQYWRkaW5nLGdwdVRpbWluZzohIXRoaXMubGlzdGVucygiZ3B1LXRpbWluZy1sYXllciIpfSksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyZW5kZXIiKSksdGhpcy5sb2FkZWQoKSYmIXRoaXMuX2xvYWRlZCYmKHRoaXMuX2xvYWRlZD0hMCx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImxvYWQiKSkpLHRoaXMuc3R5bGUmJih0aGlzLnN0eWxlLmhhc1RyYW5zaXRpb25zKCl8fG8pJiYodGhpcy5fc3R5bGVEaXJ0eT0hMCksdGhpcy5zdHlsZSYmIXRoaXMuX3BsYWNlbWVudERpcnR5JiZ0aGlzLnN0eWxlLl9yZWxlYXNlU3ltYm9sRmFkZVRpbGVzKCksdGhpcy5saXN0ZW5zKCJncHUtdGltaW5nLWZyYW1lIikpe3ZhciBmPXQuYnJvd3Nlci5ub3coKS1pO2EuZW5kUXVlcnlFWFQoYS5USU1FX0VMQVBTRURfRVhULHIpLHNldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmFyIGU9YS5nZXRRdWVyeU9iamVjdEVYVChyLGEuUVVFUllfUkVTVUxUX0VYVCkvMWU2O2EuZGVsZXRlUXVlcnlFWFQociksbi5maXJlKG5ldyB0LkV2ZW50KCJncHUtdGltaW5nLWZyYW1lIix7Y3B1VGltZTpmLGdwdVRpbWU6ZX0pKX0pLDUwKX1pZih0aGlzLmxpc3RlbnMoImdwdS10aW1pbmctbGF5ZXIiKSl7dmFyIGg9dGhpcy5wYWludGVyLmNvbGxlY3RHcHVUaW1lcnMoKTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciBlPW4ucGFpbnRlci5xdWVyeUdwdVRpbWVycyhoKTtuLmZpcmUobmV3IHQuRXZlbnQoImdwdS10aW1pbmctbGF5ZXIiLHtsYXllclRpbWVzOmV9KSl9KSw1MCl9cmV0dXJuIHRoaXMuX3NvdXJjZXNEaXJ0eXx8dGhpcy5fc3R5bGVEaXJ0eXx8dGhpcy5fcGxhY2VtZW50RGlydHl8fHRoaXMuX3JlcGFpbnQ/dGhpcy50cmlnZ2VyUmVwYWludCgpOiF0aGlzLmlzTW92aW5nKCkmJnRoaXMubG9hZGVkKCkmJih0aGlzLl9mdWxseUxvYWRlZHx8KHRoaXMuX2Z1bGx5TG9hZGVkPSEwKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImlkbGUiKSkpLHRoaXN9fSxpLnByb3RvdHlwZS5yZW1vdmU9ZnVuY3Rpb24oKXt0aGlzLl9oYXNoJiZ0aGlzLl9oYXNoLnJlbW92ZSgpO2Zvcih2YXIgZT0wLHI9dGhpcy5fY29udHJvbHM7ZTxyLmxlbmd0aDtlKz0xKXtyW2VdLm9uUmVtb3ZlKHRoaXMpfXRoaXMuX2NvbnRyb2xzPVtdLHRoaXMuX2ZyYW1lJiYodGhpcy5fZnJhbWUuY2FuY2VsKCksdGhpcy5fZnJhbWU9bnVsbCksdGhpcy5fcmVuZGVyVGFza1F1ZXVlLmNsZWFyKCksdGhpcy5wYWludGVyLmRlc3Ryb3koKSx0aGlzLmhhbmRsZXJzLmRlc3Ryb3koKSxkZWxldGUgdGhpcy5oYW5kbGVycyx0aGlzLnNldFN0eWxlKG51bGwpLHZvaWQgMCE9PXQud2luZG93JiYodC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIix0aGlzLl9vbldpbmRvd1Jlc2l6ZSwhMSksdC53aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigib25saW5lIix0aGlzLl9vbldpbmRvd09ubGluZSwhMSkpO3ZhciBuPXRoaXMucGFpbnRlci5jb250ZXh0LmdsLmdldEV4dGVuc2lvbigiV0VCR0xfbG9zZV9jb250ZXh0Iik7biYmbi5sb3NlQ29udGV4dCgpLExpKHRoaXMuX2NhbnZhc0NvbnRhaW5lciksTGkodGhpcy5fY29udHJvbENvbnRhaW5lciksTGkodGhpcy5fbWlzc2luZ0NTU0NhbmFyeSksdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLW1hcCIpLHRoaXMuX3JlbW92ZWQ9ITAsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJyZW1vdmUiKSl9LGkucHJvdG90eXBlLnRyaWdnZXJSZXBhaW50PWZ1bmN0aW9uKCl7dmFyIGU9dGhpczt0aGlzLnN0eWxlJiYhdGhpcy5fZnJhbWUmJih0aGlzLl9mcmFtZT10LmJyb3dzZXIuZnJhbWUoKGZ1bmN0aW9uKHQpe2UuX2ZyYW1lPW51bGwsZS5fcmVuZGVyKHQpfSkpKX0saS5wcm90b3R5cGUuX29uV2luZG93T25saW5lPWZ1bmN0aW9uKCl7dGhpcy5fdXBkYXRlKCl9LGkucHJvdG90eXBlLl9vbldpbmRvd1Jlc2l6ZT1mdW5jdGlvbih0KXt0aGlzLl90cmFja1Jlc2l6ZSYmdGhpcy5yZXNpemUoe29yaWdpbmFsRXZlbnQ6dH0pLl91cGRhdGUoKX0sYS5zaG93VGlsZUJvdW5kYXJpZXMuZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9zaG93VGlsZUJvdW5kYXJpZXN9LGEuc2hvd1RpbGVCb3VuZGFyaWVzLnNldD1mdW5jdGlvbih0KXt0aGlzLl9zaG93VGlsZUJvdW5kYXJpZXMhPT10JiYodGhpcy5fc2hvd1RpbGVCb3VuZGFyaWVzPXQsdGhpcy5fdXBkYXRlKCkpfSxhLnNob3dQYWRkaW5nLmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fc2hvd1BhZGRpbmd9LGEuc2hvd1BhZGRpbmcuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3Nob3dQYWRkaW5nIT09dCYmKHRoaXMuX3Nob3dQYWRkaW5nPXQsdGhpcy5fdXBkYXRlKCkpfSxhLnNob3dDb2xsaXNpb25Cb3hlcy5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4hIXRoaXMuX3Nob3dDb2xsaXNpb25Cb3hlc30sYS5zaG93Q29sbGlzaW9uQm94ZXMuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3Nob3dDb2xsaXNpb25Cb3hlcyE9PXQmJih0aGlzLl9zaG93Q29sbGlzaW9uQm94ZXM9dCx0P3RoaXMuc3R5bGUuX2dlbmVyYXRlQ29sbGlzaW9uQm94ZXMoKTp0aGlzLl91cGRhdGUoKSl9LGEuc2hvd092ZXJkcmF3SW5zcGVjdG9yLmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yfSxhLnNob3dPdmVyZHJhd0luc3BlY3Rvci5zZXQ9ZnVuY3Rpb24odCl7dGhpcy5fc2hvd092ZXJkcmF3SW5zcGVjdG9yIT09dCYmKHRoaXMuX3Nob3dPdmVyZHJhd0luc3BlY3Rvcj10LHRoaXMuX3VwZGF0ZSgpKX0sYS5yZXBhaW50LmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fcmVwYWludH0sYS5yZXBhaW50LnNldD1mdW5jdGlvbih0KXt0aGlzLl9yZXBhaW50IT09dCYmKHRoaXMuX3JlcGFpbnQ9dCx0aGlzLnRyaWdnZXJSZXBhaW50KCkpfSxhLnZlcnRpY2VzLmdldD1mdW5jdGlvbigpe3JldHVybiEhdGhpcy5fdmVydGljZXN9LGEudmVydGljZXMuc2V0PWZ1bmN0aW9uKHQpe3RoaXMuX3ZlcnRpY2VzPXQsdGhpcy5fdXBkYXRlKCl9LGkucHJvdG90eXBlLl9zZXRDYWNoZUxpbWl0cz1mdW5jdGlvbihlLHIpe3Quc2V0Q2FjaGVMaW1pdHMoZSxyKX0sYS52ZXJzaW9uLmdldD1mdW5jdGlvbigpe3JldHVybiB0LnZlcnNpb259LE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGkucHJvdG90eXBlLGEpLGl9KHhpKTtmdW5jdGlvbiBMaSh0KXt0LnBhcmVudE5vZGUmJnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0KX12YXIgQ2k9e3Nob3dDb21wYXNzOiEwLHNob3dab29tOiEwLHZpc3VhbGl6ZVBpdGNoOiExfSxQaT1mdW5jdGlvbihlKXt2YXIgbj10aGlzO3RoaXMub3B0aW9ucz10LmV4dGVuZCh7fSxDaSxlKSx0aGlzLl9jb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwgbWFwYm94Z2wtY3RybC1ncm91cCIpLHRoaXMuX2NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnByZXZlbnREZWZhdWx0KCl9KSksdGhpcy5vcHRpb25zLnNob3dab29tJiYodC5iaW5kQWxsKFsiX3NldEJ1dHRvblRpdGxlIiwiX3VwZGF0ZVpvb21CdXR0b25zIl0sdGhpcyksdGhpcy5fem9vbUluQnV0dG9uPXRoaXMuX2NyZWF0ZUJ1dHRvbigibWFwYm94Z2wtY3RybC16b29tLWluIiwoZnVuY3Rpb24odCl7cmV0dXJuIG4uX21hcC56b29tSW4oe30se29yaWdpbmFsRXZlbnQ6dH0pfSkpLHIuY3JlYXRlKCJzcGFuIiwibWFwYm94Z2wtY3RybC1pY29uIix0aGlzLl96b29tSW5CdXR0b24pLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCEwKSx0aGlzLl96b29tT3V0QnV0dG9uPXRoaXMuX2NyZWF0ZUJ1dHRvbigibWFwYm94Z2wtY3RybC16b29tLW91dCIsKGZ1bmN0aW9uKHQpe3JldHVybiBuLl9tYXAuem9vbU91dCh7fSx7b3JpZ2luYWxFdmVudDp0fSl9KSksci5jcmVhdGUoInNwYW4iLCJtYXBib3hnbC1jdHJsLWljb24iLHRoaXMuX3pvb21PdXRCdXR0b24pLnNldEF0dHJpYnV0ZSgiYXJpYS1oaWRkZW4iLCEwKSksdGhpcy5vcHRpb25zLnNob3dDb21wYXNzJiYodC5iaW5kQWxsKFsiX3JvdGF0ZUNvbXBhc3NBcnJvdyJdLHRoaXMpLHRoaXMuX2NvbXBhc3M9dGhpcy5fY3JlYXRlQnV0dG9uKCJtYXBib3hnbC1jdHJsLWNvbXBhc3MiLChmdW5jdGlvbih0KXtuLm9wdGlvbnMudmlzdWFsaXplUGl0Y2g/bi5fbWFwLnJlc2V0Tm9ydGhQaXRjaCh7fSx7b3JpZ2luYWxFdmVudDp0fSk6bi5fbWFwLnJlc2V0Tm9ydGgoe30se29yaWdpbmFsRXZlbnQ6dH0pfSkpLHRoaXMuX2NvbXBhc3NJY29uPXIuY3JlYXRlKCJzcGFuIiwibWFwYm94Z2wtY3RybC1pY29uIix0aGlzLl9jb21wYXNzKSx0aGlzLl9jb21wYXNzSWNvbi5zZXRBdHRyaWJ1dGUoImFyaWEtaGlkZGVuIiwhMCkpfTtQaS5wcm90b3R5cGUuX3VwZGF0ZVpvb21CdXR0b25zPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fbWFwLmdldFpvb20oKTt0aGlzLl96b29tSW5CdXR0b24uZGlzYWJsZWQ9dD09PXRoaXMuX21hcC5nZXRNYXhab29tKCksdGhpcy5fem9vbU91dEJ1dHRvbi5kaXNhYmxlZD10PT09dGhpcy5fbWFwLmdldE1pblpvb20oKX0sUGkucHJvdG90eXBlLl9yb3RhdGVDb21wYXNzQXJyb3c9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLm9wdGlvbnMudmlzdWFsaXplUGl0Y2g/InNjYWxlKCIrMS9NYXRoLnBvdyhNYXRoLmNvcyh0aGlzLl9tYXAudHJhbnNmb3JtLnBpdGNoKihNYXRoLlBJLzE4MCkpLC41KSsiKSByb3RhdGVYKCIrdGhpcy5fbWFwLnRyYW5zZm9ybS5waXRjaCsiZGVnKSByb3RhdGVaKCIrdGhpcy5fbWFwLnRyYW5zZm9ybS5hbmdsZSooMTgwL01hdGguUEkpKyJkZWcpIjoicm90YXRlKCIrdGhpcy5fbWFwLnRyYW5zZm9ybS5hbmdsZSooMTgwL01hdGguUEkpKyJkZWcpIjt0aGlzLl9jb21wYXNzSWNvbi5zdHlsZS50cmFuc2Zvcm09dH0sUGkucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9tYXA9dCx0aGlzLm9wdGlvbnMuc2hvd1pvb20mJih0aGlzLl9zZXRCdXR0b25UaXRsZSh0aGlzLl96b29tSW5CdXR0b24sIlpvb21JbiIpLHRoaXMuX3NldEJ1dHRvblRpdGxlKHRoaXMuX3pvb21PdXRCdXR0b24sIlpvb21PdXQiKSx0aGlzLl9tYXAub24oInpvb20iLHRoaXMuX3VwZGF0ZVpvb21CdXR0b25zKSx0aGlzLl91cGRhdGVab29tQnV0dG9ucygpKSx0aGlzLm9wdGlvbnMuc2hvd0NvbXBhc3MmJih0aGlzLl9zZXRCdXR0b25UaXRsZSh0aGlzLl9jb21wYXNzLCJSZXNldEJlYXJpbmciKSx0aGlzLm9wdGlvbnMudmlzdWFsaXplUGl0Y2gmJnRoaXMuX21hcC5vbigicGl0Y2giLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdyksdGhpcy5fbWFwLm9uKCJyb3RhdGUiLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdyksdGhpcy5fcm90YXRlQ29tcGFzc0Fycm93KCksdGhpcy5faGFuZGxlcj1uZXcgSWkodGhpcy5fbWFwLHRoaXMuX2NvbXBhc3MsdGhpcy5vcHRpb25zLnZpc3VhbGl6ZVBpdGNoKSksdGhpcy5fY29udGFpbmVyfSxQaS5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXtyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLHRoaXMub3B0aW9ucy5zaG93Wm9vbSYmdGhpcy5fbWFwLm9mZigiem9vbSIsdGhpcy5fdXBkYXRlWm9vbUJ1dHRvbnMpLHRoaXMub3B0aW9ucy5zaG93Q29tcGFzcyYmKHRoaXMub3B0aW9ucy52aXN1YWxpemVQaXRjaCYmdGhpcy5fbWFwLm9mZigicGl0Y2giLHRoaXMuX3JvdGF0ZUNvbXBhc3NBcnJvdyksdGhpcy5fbWFwLm9mZigicm90YXRlIix0aGlzLl9yb3RhdGVDb21wYXNzQXJyb3cpLHRoaXMuX2hhbmRsZXIub2ZmKCksZGVsZXRlIHRoaXMuX2hhbmRsZXIpLGRlbGV0ZSB0aGlzLl9tYXB9LFBpLnByb3RvdHlwZS5fY3JlYXRlQnV0dG9uPWZ1bmN0aW9uKHQsZSl7dmFyIG49ci5jcmVhdGUoImJ1dHRvbiIsdCx0aGlzLl9jb250YWluZXIpO3JldHVybiBuLnR5cGU9ImJ1dHRvbiIsbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsZSksbn0sUGkucHJvdG90eXBlLl9zZXRCdXR0b25UaXRsZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX21hcC5fZ2V0VUlTdHJpbmcoIk5hdmlnYXRpb25Db250cm9sLiIrZSk7dC50aXRsZT1yLHQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixyKX07dmFyIElpPWZ1bmN0aW9uKGUsbixpKXt2b2lkIDA9PT1pJiYoaT0hMSksdGhpcy5fY2xpY2tUb2xlcmFuY2U9MTAsdGhpcy5lbGVtZW50PW4sdGhpcy5tb3VzZVJvdGF0ZT1uZXcgWG4oe2NsaWNrVG9sZXJhbmNlOmUuZHJhZ1JvdGF0ZS5fbW91c2VSb3RhdGUuX2NsaWNrVG9sZXJhbmNlfSksdGhpcy5tYXA9ZSxpJiYodGhpcy5tb3VzZVBpdGNoPW5ldyBabih7Y2xpY2tUb2xlcmFuY2U6ZS5kcmFnUm90YXRlLl9tb3VzZVBpdGNoLl9jbGlja1RvbGVyYW5jZX0pKSx0LmJpbmRBbGwoWyJtb3VzZWRvd24iLCJtb3VzZW1vdmUiLCJtb3VzZXVwIiwidG91Y2hzdGFydCIsInRvdWNobW92ZSIsInRvdWNoZW5kIiwicmVzZXQiXSx0aGlzKSxyLmFkZEV2ZW50TGlzdGVuZXIobiwibW91c2Vkb3duIix0aGlzLm1vdXNlZG93biksci5hZGRFdmVudExpc3RlbmVyKG4sInRvdWNoc3RhcnQiLHRoaXMudG91Y2hzdGFydCx7cGFzc2l2ZTohMX0pLHIuYWRkRXZlbnRMaXN0ZW5lcihuLCJ0b3VjaG1vdmUiLHRoaXMudG91Y2htb3ZlKSxyLmFkZEV2ZW50TGlzdGVuZXIobiwidG91Y2hlbmQiLHRoaXMudG91Y2hlbmQpLHIuYWRkRXZlbnRMaXN0ZW5lcihuLCJ0b3VjaGNhbmNlbCIsdGhpcy5yZXNldCl9O2Z1bmN0aW9uIE9pKGUscixuKXtpZihlPW5ldyB0LkxuZ0xhdChlLmxuZyxlLmxhdCkscil7dmFyIGk9bmV3IHQuTG5nTGF0KGUubG5nLTM2MCxlLmxhdCksYT1uZXcgdC5MbmdMYXQoZS5sbmcrMzYwLGUubGF0KSxvPW4ubG9jYXRpb25Qb2ludChlKS5kaXN0U3FyKHIpO24ubG9jYXRpb25Qb2ludChpKS5kaXN0U3FyKHIpPG8/ZT1pOm4ubG9jYXRpb25Qb2ludChhKS5kaXN0U3FyKHIpPG8mJihlPWEpfWZvcig7TWF0aC5hYnMoZS5sbmctbi5jZW50ZXIubG5nKT4xODA7KXt2YXIgcz1uLmxvY2F0aW9uUG9pbnQoZSk7aWYocy54Pj0wJiZzLnk+PTAmJnMueDw9bi53aWR0aCYmcy55PD1uLmhlaWdodClicmVhaztlLmxuZz5uLmNlbnRlci5sbmc/ZS5sbmctPTM2MDplLmxuZys9MzYwfXJldHVybiBlfUlpLnByb3RvdHlwZS5kb3duPWZ1bmN0aW9uKHQsZSl7dGhpcy5tb3VzZVJvdGF0ZS5tb3VzZWRvd24odCxlKSx0aGlzLm1vdXNlUGl0Y2gmJnRoaXMubW91c2VQaXRjaC5tb3VzZWRvd24odCxlKSxyLmRpc2FibGVEcmFnKCl9LElpLnByb3RvdHlwZS5tb3ZlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5tYXAsbj10aGlzLm1vdXNlUm90YXRlLm1vdXNlbW92ZVdpbmRvdyh0LGUpO2lmKG4mJm4uYmVhcmluZ0RlbHRhJiZyLnNldEJlYXJpbmcoci5nZXRCZWFyaW5nKCkrbi5iZWFyaW5nRGVsdGEpLHRoaXMubW91c2VQaXRjaCl7dmFyIGk9dGhpcy5tb3VzZVBpdGNoLm1vdXNlbW92ZVdpbmRvdyh0LGUpO2kmJmkucGl0Y2hEZWx0YSYmci5zZXRQaXRjaChyLmdldFBpdGNoKCkraS5waXRjaERlbHRhKX19LElpLnByb3RvdHlwZS5vZmY9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmVsZW1lbnQ7ci5yZW1vdmVFdmVudExpc3RlbmVyKHQsIm1vdXNlZG93biIsdGhpcy5tb3VzZWRvd24pLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LCJ0b3VjaHN0YXJ0Iix0aGlzLnRvdWNoc3RhcnQse3Bhc3NpdmU6ITF9KSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIodCwidG91Y2htb3ZlIix0aGlzLnRvdWNobW92ZSksci5yZW1vdmVFdmVudExpc3RlbmVyKHQsInRvdWNoZW5kIix0aGlzLnRvdWNoZW5kKSxyLnJlbW92ZUV2ZW50TGlzdGVuZXIodCwidG91Y2hjYW5jZWwiLHRoaXMucmVzZXQpLHRoaXMub2ZmVGVtcCgpfSxJaS5wcm90b3R5cGUub2ZmVGVtcD1mdW5jdGlvbigpe3IuZW5hYmxlRHJhZygpLHIucmVtb3ZlRXZlbnRMaXN0ZW5lcih0LndpbmRvdywibW91c2Vtb3ZlIix0aGlzLm1vdXNlbW92ZSksci5yZW1vdmVFdmVudExpc3RlbmVyKHQud2luZG93LCJtb3VzZXVwIix0aGlzLm1vdXNldXApfSxJaS5wcm90b3R5cGUubW91c2Vkb3duPWZ1bmN0aW9uKGUpe3RoaXMuZG93bih0LmV4dGVuZCh7fSxlLHtjdHJsS2V5OiEwLHByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIGUucHJldmVudERlZmF1bHQoKX19KSxyLm1vdXNlUG9zKHRoaXMuZWxlbWVudCxlKSksci5hZGRFdmVudExpc3RlbmVyKHQud2luZG93LCJtb3VzZW1vdmUiLHRoaXMubW91c2Vtb3ZlKSxyLmFkZEV2ZW50TGlzdGVuZXIodC53aW5kb3csIm1vdXNldXAiLHRoaXMubW91c2V1cCl9LElpLnByb3RvdHlwZS5tb3VzZW1vdmU9ZnVuY3Rpb24odCl7dGhpcy5tb3ZlKHQsci5tb3VzZVBvcyh0aGlzLmVsZW1lbnQsdCkpfSxJaS5wcm90b3R5cGUubW91c2V1cD1mdW5jdGlvbih0KXt0aGlzLm1vdXNlUm90YXRlLm1vdXNldXBXaW5kb3codCksdGhpcy5tb3VzZVBpdGNoJiZ0aGlzLm1vdXNlUGl0Y2gubW91c2V1cFdpbmRvdyh0KSx0aGlzLm9mZlRlbXAoKX0sSWkucHJvdG90eXBlLnRvdWNoc3RhcnQ9ZnVuY3Rpb24odCl7MSE9PXQudGFyZ2V0VG91Y2hlcy5sZW5ndGg/dGhpcy5yZXNldCgpOih0aGlzLl9zdGFydFBvcz10aGlzLl9sYXN0UG9zPXIudG91Y2hQb3ModGhpcy5lbGVtZW50LHQudGFyZ2V0VG91Y2hlcylbMF0sdGhpcy5kb3duKHt0eXBlOiJtb3VzZWRvd24iLGJ1dHRvbjowLGN0cmxLZXk6ITAscHJldmVudERlZmF1bHQ6ZnVuY3Rpb24oKXtyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpfX0sdGhpcy5fc3RhcnRQb3MpKX0sSWkucHJvdG90eXBlLnRvdWNobW92ZT1mdW5jdGlvbih0KXsxIT09dC50YXJnZXRUb3VjaGVzLmxlbmd0aD90aGlzLnJlc2V0KCk6KHRoaXMuX2xhc3RQb3M9ci50b3VjaFBvcyh0aGlzLmVsZW1lbnQsdC50YXJnZXRUb3VjaGVzKVswXSx0aGlzLm1vdmUoe3ByZXZlbnREZWZhdWx0OmZ1bmN0aW9uKCl7cmV0dXJuIHQucHJldmVudERlZmF1bHQoKX19LHRoaXMuX2xhc3RQb3MpKX0sSWkucHJvdG90eXBlLnRvdWNoZW5kPWZ1bmN0aW9uKHQpezA9PT10LnRhcmdldFRvdWNoZXMubGVuZ3RoJiZ0aGlzLl9zdGFydFBvcyYmdGhpcy5fbGFzdFBvcyYmdGhpcy5fc3RhcnRQb3MuZGlzdCh0aGlzLl9sYXN0UG9zKTx0aGlzLl9jbGlja1RvbGVyYW5jZSYmdGhpcy5lbGVtZW50LmNsaWNrKCksdGhpcy5yZXNldCgpfSxJaS5wcm90b3R5cGUucmVzZXQ9ZnVuY3Rpb24oKXt0aGlzLm1vdXNlUm90YXRlLnJlc2V0KCksdGhpcy5tb3VzZVBpdGNoJiZ0aGlzLm1vdXNlUGl0Y2gucmVzZXQoKSxkZWxldGUgdGhpcy5fc3RhcnRQb3MsZGVsZXRlIHRoaXMuX2xhc3RQb3MsdGhpcy5vZmZUZW1wKCl9O3ZhciB6aT17Y2VudGVyOiJ0cmFuc2xhdGUoLTUwJSwtNTAlKSIsdG9wOiJ0cmFuc2xhdGUoLTUwJSwwKSIsInRvcC1sZWZ0IjoidHJhbnNsYXRlKDAsMCkiLCJ0b3AtcmlnaHQiOiJ0cmFuc2xhdGUoLTEwMCUsMCkiLGJvdHRvbToidHJhbnNsYXRlKC01MCUsLTEwMCUpIiwiYm90dG9tLWxlZnQiOiJ0cmFuc2xhdGUoMCwtMTAwJSkiLCJib3R0b20tcmlnaHQiOiJ0cmFuc2xhdGUoLTEwMCUsLTEwMCUpIixsZWZ0OiJ0cmFuc2xhdGUoMCwtNTAlKSIscmlnaHQ6InRyYW5zbGF0ZSgtMTAwJSwtNTAlKSJ9O2Z1bmN0aW9uIERpKHQsZSxyKXt2YXIgbj10LmNsYXNzTGlzdDtmb3IodmFyIGkgaW4gemkpbi5yZW1vdmUoIm1hcGJveGdsLSIrcisiLWFuY2hvci0iK2kpO24uYWRkKCJtYXBib3hnbC0iK3IrIi1hbmNob3ItIitlKX12YXIgUmksRmk9ZnVuY3Rpb24oZSl7ZnVuY3Rpb24gbihuLGkpe3ZhciBhPXRoaXM7aWYoZS5jYWxsKHRoaXMpLChuIGluc3RhbmNlb2YgdC53aW5kb3cuSFRNTEVsZW1lbnR8fGkpJiYobj10LmV4dGVuZCh7ZWxlbWVudDpufSxpKSksdC5iaW5kQWxsKFsiX3VwZGF0ZSIsIl9vbk1vdmUiLCJfb25VcCIsIl9hZGREcmFnSGFuZGxlciIsIl9vbk1hcENsaWNrIiwiX29uS2V5UHJlc3MiXSx0aGlzKSx0aGlzLl9hbmNob3I9biYmbi5hbmNob3J8fCJjZW50ZXIiLHRoaXMuX2NvbG9yPW4mJm4uY29sb3J8fCIjM0ZCMUNFIix0aGlzLl9kcmFnZ2FibGU9biYmbi5kcmFnZ2FibGV8fCExLHRoaXMuX3N0YXRlPSJpbmFjdGl2ZSIsdGhpcy5fcm90YXRpb249biYmbi5yb3RhdGlvbnx8MCx0aGlzLl9yb3RhdGlvbkFsaWdubWVudD1uJiZuLnJvdGF0aW9uQWxpZ25tZW50fHwiYXV0byIsdGhpcy5fcGl0Y2hBbGlnbm1lbnQ9biYmbi5waXRjaEFsaWdubWVudCYmImF1dG8iIT09bi5waXRjaEFsaWdubWVudD9uLnBpdGNoQWxpZ25tZW50OnRoaXMuX3JvdGF0aW9uQWxpZ25tZW50LG4mJm4uZWxlbWVudCl0aGlzLl9lbGVtZW50PW4uZWxlbWVudCx0aGlzLl9vZmZzZXQ9dC5Qb2ludC5jb252ZXJ0KG4mJm4ub2Zmc2V0fHxbMCwwXSk7ZWxzZXt0aGlzLl9kZWZhdWx0TWFya2VyPSEwLHRoaXMuX2VsZW1lbnQ9ci5jcmVhdGUoImRpdiIpLHRoaXMuX2VsZW1lbnQuc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIiwiTWFwIG1hcmtlciIpO3ZhciBvPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwic3ZnIik7by5zZXRBdHRyaWJ1dGVOUyhudWxsLCJkaXNwbGF5IiwiYmxvY2siKSxvLnNldEF0dHJpYnV0ZU5TKG51bGwsImhlaWdodCIsIjQxcHgiKSxvLnNldEF0dHJpYnV0ZU5TKG51bGwsIndpZHRoIiwiMjdweCIpLG8uc2V0QXR0cmlidXRlTlMobnVsbCwidmlld0JveCIsIjAgMCAyNyA0MSIpO3ZhciBzPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZyIpO3Muc2V0QXR0cmlidXRlTlMobnVsbCwic3Ryb2tlIiwibm9uZSIpLHMuc2V0QXR0cmlidXRlTlMobnVsbCwic3Ryb2tlLXdpZHRoIiwiMSIpLHMuc2V0QXR0cmlidXRlTlMobnVsbCwiZmlsbCIsIm5vbmUiKSxzLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwtcnVsZSIsImV2ZW5vZGQiKTt2YXIgbD1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTtsLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwtcnVsZSIsIm5vbnplcm8iKTt2YXIgYz1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTtjLnNldEF0dHJpYnV0ZU5TKG51bGwsInRyYW5zZm9ybSIsInRyYW5zbGF0ZSgzLjAsIDI5LjApIiksYy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWxsIiwiIzAwMDAwMCIpO2Zvcih2YXIgdT0wLGY9W3tyeDoiMTAuNSIscnk6IjUuMjUwMDIyNzMifSx7cng6IjEwLjUiLHJ5OiI1LjI1MDAyMjczIn0se3J4OiI5LjUiLHJ5OiI0Ljc3Mjc1MDA3In0se3J4OiI4LjUiLHJ5OiI0LjI5NTQ5OTM2In0se3J4OiI3LjUiLHJ5OiIzLjgxODIyMzA4In0se3J4OiI2LjUiLHJ5OiIzLjM0MDk0Njc5In0se3J4OiI1LjUiLHJ5OiIyLjg2MzY3MDUxIn0se3J4OiI0LjUiLHJ5OiIyLjM4NjM2ODY0In1dO3U8Zi5sZW5ndGg7dSs9MSl7dmFyIGg9Zlt1XSxwPXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwiZWxsaXBzZSIpO3Auc2V0QXR0cmlidXRlTlMobnVsbCwib3BhY2l0eSIsIjAuMDQiKSxwLnNldEF0dHJpYnV0ZU5TKG51bGwsImN4IiwiMTAuNSIpLHAuc2V0QXR0cmlidXRlTlMobnVsbCwiY3kiLCI1LjgwMDI5MDA4IikscC5zZXRBdHRyaWJ1dGVOUyhudWxsLCJyeCIsaC5yeCkscC5zZXRBdHRyaWJ1dGVOUyhudWxsLCJyeSIsaC5yeSksYy5hcHBlbmRDaGlsZChwKX12YXIgZD1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTtkLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLHRoaXMuX2NvbG9yKTt2YXIgbT1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsInBhdGgiKTttLnNldEF0dHJpYnV0ZU5TKG51bGwsImQiLCJNMjcsMTMuNSBDMjcsMTkuMDc0NjQ0IDIwLjI1MDAwMSwyNy4wMDAwMDIgMTQuNzUsMzQuNTAwMDAyIEMxNC4wMTY2NjUsMzUuNTAwMDA0IDEyLjk4MzMzNSwzNS41MDAwMDQgMTIuMjUsMzQuNTAwMDAyIEM2Ljc0OTk5OTMsMjcuMDAwMDAyIDAsMTkuMjIyNTYyIDAsMTMuNSBDMCw2LjA0NDE1NTkgNi4wNDQxNTU5LDAgMTMuNSwwIEMyMC45NTU4NDQsMCAyNyw2LjA0NDE1NTkgMjcsMTMuNSBaIiksZC5hcHBlbmRDaGlsZChtKTt2YXIgZz1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTtnLnNldEF0dHJpYnV0ZU5TKG51bGwsIm9wYWNpdHkiLCIwLjI1IiksZy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJmaWxsIiwiIzAwMDAwMCIpO3ZhciB2PXIuY3JlYXRlTlMoImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiwicGF0aCIpO3Yuc2V0QXR0cmlidXRlTlMobnVsbCwiZCIsIk0xMy41LDAgQzYuMDQ0MTU1OSwwIDAsNi4wNDQxNTU5IDAsMTMuNSBDMCwxOS4yMjI1NjIgNi43NDk5OTkzLDI3IDEyLjI1LDM0LjUgQzEzLDM1LjUyMjcyNyAxNC4wMTY2NjQsMzUuNTAwMDA0IDE0Ljc1LDM0LjUgQzIwLjI1MDAwMSwyNyAyNywxOS4wNzQ2NDQgMjcsMTMuNSBDMjcsNi4wNDQxNTU5IDIwLjk1NTg0NCwwIDEzLjUsMCBaIE0xMy41LDEgQzIwLjQxNTQwNCwxIDI2LDYuNTg0NTk2IDI2LDEzLjUgQzI2LDE1Ljg5ODY1NyAyNC40OTU1ODQsMTkuMTgxNDMxIDIyLjIyMDcwMywyMi43MzgyODEgQzE5Ljk0NTgyMywyNi4yOTUxMzIgMTYuNzA1MTE5LDMwLjE0MjE2NyAxMy45NDMzNTksMzMuOTA4MjAzIEMxMy43NDM0NDUsMzQuMTgwODE0IDEzLjYxMjcxNSwzNC4zMjI3MzggMTMuNSwzNC40NDE0MDYgQzEzLjM4NzI4NSwzNC4zMjI3MzggMTMuMjU2NTU1LDM0LjE4MDgxNCAxMy4wNTY2NDEsMzMuOTA4MjAzIEMxMC4yODQ0ODEsMzAuMTI3OTg1IDcuNDE0ODY4NCwyNi4zMTQxNTkgNS4wMTU2MjUsMjIuNzczNDM4IEMyLjYxNjM4MTYsMTkuMjMyNzE1IDEsMTUuOTUzNTM4IDEsMTMuNSBDMSw2LjU4NDU5NiA2LjU4NDU5NiwxIDEzLjUsMSBaIiksZy5hcHBlbmRDaGlsZCh2KTt2YXIgeT1yLmNyZWF0ZU5TKCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIsImciKTt5LnNldEF0dHJpYnV0ZU5TKG51bGwsInRyYW5zZm9ybSIsInRyYW5zbGF0ZSg2LjAsIDcuMCkiKSx5LnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjRkZGRkZGIik7dmFyIHg9ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJnIik7eC5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ0cmFuc2Zvcm0iLCJ0cmFuc2xhdGUoOC4wLCA4LjApIik7dmFyIGI9ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJjaXJjbGUiKTtiLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjMDAwMDAwIiksYi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJvcGFjaXR5IiwiMC4yNSIpLGIuc2V0QXR0cmlidXRlTlMobnVsbCwiY3giLCI1LjUiKSxiLnNldEF0dHJpYnV0ZU5TKG51bGwsImN5IiwiNS41IiksYi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJyIiwiNS40OTk5OTYyIik7dmFyIF89ci5jcmVhdGVOUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJjaXJjbGUiKTtfLnNldEF0dHJpYnV0ZU5TKG51bGwsImZpbGwiLCIjRkZGRkZGIiksXy5zZXRBdHRyaWJ1dGVOUyhudWxsLCJjeCIsIjUuNSIpLF8uc2V0QXR0cmlidXRlTlMobnVsbCwiY3kiLCI1LjUiKSxfLnNldEF0dHJpYnV0ZU5TKG51bGwsInIiLCI1LjQ5OTk5NjIiKSx4LmFwcGVuZENoaWxkKGIpLHguYXBwZW5kQ2hpbGQoXyksbC5hcHBlbmRDaGlsZChjKSxsLmFwcGVuZENoaWxkKGQpLGwuYXBwZW5kQ2hpbGQoZyksbC5hcHBlbmRDaGlsZCh5KSxsLmFwcGVuZENoaWxkKHgpLG8uYXBwZW5kQ2hpbGQobCksdGhpcy5fZWxlbWVudC5hcHBlbmRDaGlsZChvKSx0aGlzLl9vZmZzZXQ9dC5Qb2ludC5jb252ZXJ0KG4mJm4ub2Zmc2V0fHxbMCwtMTRdKX10aGlzLl9lbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLW1hcmtlciIpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ3N0YXJ0IiwoZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpfSkpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwoZnVuY3Rpb24odCl7dC5wcmV2ZW50RGVmYXVsdCgpfSkpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiZm9jdXMiLChmdW5jdGlvbigpe3ZhciB0PWEuX21hcC5nZXRDb250YWluZXIoKTt0LnNjcm9sbFRvcD0wLHQuc2Nyb2xsTGVmdD0wfSkpLERpKHRoaXMuX2VsZW1lbnQsdGhpcy5fYW5jaG9yLCJtYXJrZXIiKSx0aGlzLl9wb3B1cD1udWxsfXJldHVybiBlJiYobi5fX3Byb3RvX189ZSksbi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShlJiZlLnByb3RvdHlwZSksbi5wcm90b3R5cGUuY29uc3RydWN0b3I9bixuLnByb3RvdHlwZS5hZGRUbz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5yZW1vdmUoKSx0aGlzLl9tYXA9dCx0LmdldENhbnZhc0NvbnRhaW5lcigpLmFwcGVuZENoaWxkKHRoaXMuX2VsZW1lbnQpLHQub24oIm1vdmUiLHRoaXMuX3VwZGF0ZSksdC5vbigibW92ZWVuZCIsdGhpcy5fdXBkYXRlKSx0aGlzLnNldERyYWdnYWJsZSh0aGlzLl9kcmFnZ2FibGUpLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX21hcC5vbigiY2xpY2siLHRoaXMuX29uTWFwQ2xpY2spLHRoaXN9LG4ucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXAmJih0aGlzLl9tYXAub2ZmKCJjbGljayIsdGhpcy5fb25NYXBDbGljayksdGhpcy5fbWFwLm9mZigibW92ZSIsdGhpcy5fdXBkYXRlKSx0aGlzLl9tYXAub2ZmKCJtb3ZlZW5kIix0aGlzLl91cGRhdGUpLHRoaXMuX21hcC5vZmYoIm1vdXNlZG93biIsdGhpcy5fYWRkRHJhZ0hhbmRsZXIpLHRoaXMuX21hcC5vZmYoInRvdWNoc3RhcnQiLHRoaXMuX2FkZERyYWdIYW5kbGVyKSx0aGlzLl9tYXAub2ZmKCJtb3VzZXVwIix0aGlzLl9vblVwKSx0aGlzLl9tYXAub2ZmKCJ0b3VjaGVuZCIsdGhpcy5fb25VcCksdGhpcy5fbWFwLm9mZigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdmUpLHRoaXMuX21hcC5vZmYoInRvdWNobW92ZSIsdGhpcy5fb25Nb3ZlKSxkZWxldGUgdGhpcy5fbWFwKSxyLnJlbW92ZSh0aGlzLl9lbGVtZW50KSx0aGlzLl9wb3B1cCYmdGhpcy5fcG9wdXAucmVtb3ZlKCksdGhpc30sbi5wcm90b3R5cGUuZ2V0TG5nTGF0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xuZ0xhdH0sbi5wcm90b3R5cGUuc2V0TG5nTGF0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9sbmdMYXQ9dC5MbmdMYXQuY29udmVydChlKSx0aGlzLl9wb3M9bnVsbCx0aGlzLl9wb3B1cCYmdGhpcy5fcG9wdXAuc2V0TG5nTGF0KHRoaXMuX2xuZ0xhdCksdGhpcy5fdXBkYXRlKCksdGhpc30sbi5wcm90b3R5cGUuZ2V0RWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGVtZW50fSxuLnByb3RvdHlwZS5zZXRQb3B1cD1mdW5jdGlvbih0KXtpZih0aGlzLl9wb3B1cCYmKHRoaXMuX3BvcHVwLnJlbW92ZSgpLHRoaXMuX3BvcHVwPW51bGwsdGhpcy5fZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsdGhpcy5fb25LZXlQcmVzcyksdGhpcy5fb3JpZ2luYWxUYWJJbmRleHx8dGhpcy5fZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoInRhYmluZGV4IikpLHQpe2lmKCEoIm9mZnNldCJpbiB0Lm9wdGlvbnMpKXt2YXIgZT1NYXRoLnNxcnQoTWF0aC5wb3coMTMuNSwyKS8yKTt0Lm9wdGlvbnMub2Zmc2V0PXRoaXMuX2RlZmF1bHRNYXJrZXI/e3RvcDpbMCwwXSwidG9wLWxlZnQiOlswLDBdLCJ0b3AtcmlnaHQiOlswLDBdLGJvdHRvbTpbMCwtMzguMV0sImJvdHRvbS1sZWZ0IjpbZSwtMSooMjQuNitlKV0sImJvdHRvbS1yaWdodCI6Wy1lLC0xKigyNC42K2UpXSxsZWZ0OlsxMy41LC0yNC42XSxyaWdodDpbLTEzLjUsLTI0LjZdfTp0aGlzLl9vZmZzZXR9dGhpcy5fcG9wdXA9dCx0aGlzLl9sbmdMYXQmJnRoaXMuX3BvcHVwLnNldExuZ0xhdCh0aGlzLl9sbmdMYXQpLHRoaXMuX29yaWdpbmFsVGFiSW5kZXg9dGhpcy5fZWxlbWVudC5nZXRBdHRyaWJ1dGUoInRhYmluZGV4IiksdGhpcy5fb3JpZ2luYWxUYWJJbmRleHx8dGhpcy5fZWxlbWVudC5zZXRBdHRyaWJ1dGUoInRhYmluZGV4IiwiMCIpLHRoaXMuX2VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLHRoaXMuX29uS2V5UHJlc3MpfXJldHVybiB0aGlzfSxuLnByb3RvdHlwZS5fb25LZXlQcmVzcz1mdW5jdGlvbih0KXt2YXIgZT10LmNvZGUscj10LmNoYXJDb2RlfHx0LmtleUNvZGU7IlNwYWNlIiE9PWUmJiJFbnRlciIhPT1lJiYzMiE9PXImJjEzIT09cnx8dGhpcy50b2dnbGVQb3B1cCgpfSxuLnByb3RvdHlwZS5fb25NYXBDbGljaz1mdW5jdGlvbih0KXt2YXIgZT10Lm9yaWdpbmFsRXZlbnQudGFyZ2V0LHI9dGhpcy5fZWxlbWVudDt0aGlzLl9wb3B1cCYmKGU9PT1yfHxyLmNvbnRhaW5zKGUpKSYmdGhpcy50b2dnbGVQb3B1cCgpfSxuLnByb3RvdHlwZS5nZXRQb3B1cD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9wb3B1cH0sbi5wcm90b3R5cGUudG9nZ2xlUG9wdXA9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9wb3B1cDtyZXR1cm4gdD8odC5pc09wZW4oKT90LnJlbW92ZSgpOnQuYWRkVG8odGhpcy5fbWFwKSx0aGlzKTp0aGlzfSxuLnByb3RvdHlwZS5fdXBkYXRlPWZ1bmN0aW9uKHQpe2lmKHRoaXMuX21hcCl7dGhpcy5fbWFwLnRyYW5zZm9ybS5yZW5kZXJXb3JsZENvcGllcyYmKHRoaXMuX2xuZ0xhdD1PaSh0aGlzLl9sbmdMYXQsdGhpcy5fcG9zLHRoaXMuX21hcC50cmFuc2Zvcm0pKSx0aGlzLl9wb3M9dGhpcy5fbWFwLnByb2plY3QodGhpcy5fbG5nTGF0KS5fYWRkKHRoaXMuX29mZnNldCk7dmFyIGU9IiI7InZpZXdwb3J0Ij09PXRoaXMuX3JvdGF0aW9uQWxpZ25tZW50fHwiYXV0byI9PT10aGlzLl9yb3RhdGlvbkFsaWdubWVudD9lPSJyb3RhdGVaKCIrdGhpcy5fcm90YXRpb24rImRlZykiOiJtYXAiPT09dGhpcy5fcm90YXRpb25BbGlnbm1lbnQmJihlPSJyb3RhdGVaKCIrKHRoaXMuX3JvdGF0aW9uLXRoaXMuX21hcC5nZXRCZWFyaW5nKCkpKyJkZWcpIik7dmFyIG49IiI7InZpZXdwb3J0Ij09PXRoaXMuX3BpdGNoQWxpZ25tZW50fHwiYXV0byI9PT10aGlzLl9waXRjaEFsaWdubWVudD9uPSJyb3RhdGVYKDBkZWcpIjoibWFwIj09PXRoaXMuX3BpdGNoQWxpZ25tZW50JiYobj0icm90YXRlWCgiK3RoaXMuX21hcC5nZXRQaXRjaCgpKyJkZWcpIiksdCYmIm1vdmVlbmQiIT09dC50eXBlfHwodGhpcy5fcG9zPXRoaXMuX3Bvcy5yb3VuZCgpKSxyLnNldFRyYW5zZm9ybSh0aGlzLl9lbGVtZW50LHppW3RoaXMuX2FuY2hvcl0rIiB0cmFuc2xhdGUoIit0aGlzLl9wb3MueCsicHgsICIrdGhpcy5fcG9zLnkrInB4KSAiK24rIiAiK2UpfX0sbi5wcm90b3R5cGUuZ2V0T2Zmc2V0PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29mZnNldH0sbi5wcm90b3R5cGUuc2V0T2Zmc2V0PWZ1bmN0aW9uKGUpe3JldHVybiB0aGlzLl9vZmZzZXQ9dC5Qb2ludC5jb252ZXJ0KGUpLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LG4ucHJvdG90eXBlLl9vbk1vdmU9ZnVuY3Rpb24oZSl7dGhpcy5fcG9zPWUucG9pbnQuc3ViKHRoaXMuX3Bvc2l0aW9uRGVsdGEpLHRoaXMuX2xuZ0xhdD10aGlzLl9tYXAudW5wcm9qZWN0KHRoaXMuX3BvcyksdGhpcy5zZXRMbmdMYXQodGhpcy5fbG5nTGF0KSx0aGlzLl9lbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHM9Im5vbmUiLCJwZW5kaW5nIj09PXRoaXMuX3N0YXRlJiYodGhpcy5fc3RhdGU9ImFjdGl2ZSIsdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJkcmFnc3RhcnQiKSkpLHRoaXMuZmlyZShuZXcgdC5FdmVudCgiZHJhZyIpKX0sbi5wcm90b3R5cGUuX29uVXA9ZnVuY3Rpb24oKXt0aGlzLl9lbGVtZW50LnN0eWxlLnBvaW50ZXJFdmVudHM9ImF1dG8iLHRoaXMuX3Bvc2l0aW9uRGVsdGE9bnVsbCx0aGlzLl9tYXAub2ZmKCJtb3VzZW1vdmUiLHRoaXMuX29uTW92ZSksdGhpcy5fbWFwLm9mZigidG91Y2htb3ZlIix0aGlzLl9vbk1vdmUpLCJhY3RpdmUiPT09dGhpcy5fc3RhdGUmJnRoaXMuZmlyZShuZXcgdC5FdmVudCgiZHJhZ2VuZCIpKSx0aGlzLl9zdGF0ZT0iaW5hY3RpdmUifSxuLnByb3RvdHlwZS5fYWRkRHJhZ0hhbmRsZXI9ZnVuY3Rpb24odCl7dGhpcy5fZWxlbWVudC5jb250YWlucyh0Lm9yaWdpbmFsRXZlbnQudGFyZ2V0KSYmKHQucHJldmVudERlZmF1bHQoKSx0aGlzLl9wb3NpdGlvbkRlbHRhPXQucG9pbnQuc3ViKHRoaXMuX3BvcykuYWRkKHRoaXMuX29mZnNldCksdGhpcy5fc3RhdGU9InBlbmRpbmciLHRoaXMuX21hcC5vbigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdmUpLHRoaXMuX21hcC5vbigidG91Y2htb3ZlIix0aGlzLl9vbk1vdmUpLHRoaXMuX21hcC5vbmNlKCJtb3VzZXVwIix0aGlzLl9vblVwKSx0aGlzLl9tYXAub25jZSgidG91Y2hlbmQiLHRoaXMuX29uVXApKX0sbi5wcm90b3R5cGUuc2V0RHJhZ2dhYmxlPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9kcmFnZ2FibGU9ISF0LHRoaXMuX21hcCYmKHQ/KHRoaXMuX21hcC5vbigibW91c2Vkb3duIix0aGlzLl9hZGREcmFnSGFuZGxlciksdGhpcy5fbWFwLm9uKCJ0b3VjaHN0YXJ0Iix0aGlzLl9hZGREcmFnSGFuZGxlcikpOih0aGlzLl9tYXAub2ZmKCJtb3VzZWRvd24iLHRoaXMuX2FkZERyYWdIYW5kbGVyKSx0aGlzLl9tYXAub2ZmKCJ0b3VjaHN0YXJ0Iix0aGlzLl9hZGREcmFnSGFuZGxlcikpKSx0aGlzfSxuLnByb3RvdHlwZS5pc0RyYWdnYWJsZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9kcmFnZ2FibGV9LG4ucHJvdG90eXBlLnNldFJvdGF0aW9uPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9yb3RhdGlvbj10fHwwLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LG4ucHJvdG90eXBlLmdldFJvdGF0aW9uPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JvdGF0aW9ufSxuLnByb3RvdHlwZS5zZXRSb3RhdGlvbkFsaWdubWVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcm90YXRpb25BbGlnbm1lbnQ9dHx8ImF1dG8iLHRoaXMuX3VwZGF0ZSgpLHRoaXN9LG4ucHJvdG90eXBlLmdldFJvdGF0aW9uQWxpZ25tZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JvdGF0aW9uQWxpZ25tZW50fSxuLnByb3RvdHlwZS5zZXRQaXRjaEFsaWdubWVudD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fcGl0Y2hBbGlnbm1lbnQ9dCYmImF1dG8iIT09dD90OnRoaXMuX3JvdGF0aW9uQWxpZ25tZW50LHRoaXMuX3VwZGF0ZSgpLHRoaXN9LG4ucHJvdG90eXBlLmdldFBpdGNoQWxpZ25tZW50PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BpdGNoQWxpZ25tZW50fSxufSh0LkV2ZW50ZWQpLEJpPXtwb3NpdGlvbk9wdGlvbnM6e2VuYWJsZUhpZ2hBY2N1cmFjeTohMSxtYXhpbXVtQWdlOjAsdGltZW91dDo2ZTN9LGZpdEJvdW5kc09wdGlvbnM6e21heFpvb206MTV9LHRyYWNrVXNlckxvY2F0aW9uOiExLHNob3dBY2N1cmFjeUNpcmNsZTohMCxzaG93VXNlckxvY2F0aW9uOiEwfTt2YXIgTmk9MCxqaT0hMSxVaT1mdW5jdGlvbihlKXtmdW5jdGlvbiBuKHIpe2UuY2FsbCh0aGlzKSx0aGlzLm9wdGlvbnM9dC5leHRlbmQoe30sQmksciksdC5iaW5kQWxsKFsiX29uU3VjY2VzcyIsIl9vbkVycm9yIiwiX29uWm9vbSIsIl9maW5pc2giLCJfc2V0dXBVSSIsIl91cGRhdGVDYW1lcmEiLCJfdXBkYXRlTWFya2VyIl0sdGhpcyl9cmV0dXJuIGUmJihuLl9fcHJvdG9fXz1lKSxuLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGUmJmUucHJvdG90eXBlKSxuLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1uLG4ucHJvdG90eXBlLm9uQWRkPWZ1bmN0aW9uKGUpe3ZhciBuO3JldHVybiB0aGlzLl9tYXA9ZSx0aGlzLl9jb250YWluZXI9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLWN0cmwgbWFwYm94Z2wtY3RybC1ncm91cCIpLG49dGhpcy5fc2V0dXBVSSx2b2lkIDAhPT1SaT9uKFJpKTp2b2lkIDAhPT10LndpbmRvdy5uYXZpZ2F0b3IucGVybWlzc2lvbnM/dC53aW5kb3cubmF2aWdhdG9yLnBlcm1pc3Npb25zLnF1ZXJ5KHtuYW1lOiJnZW9sb2NhdGlvbiJ9KS50aGVuKChmdW5jdGlvbih0KXtSaT0iZGVuaWVkIiE9PXQuc3RhdGUsbihSaSl9KSk6KFJpPSEhdC53aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLG4oUmkpKSx0aGlzLl9jb250YWluZXJ9LG4ucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7dm9pZCAwIT09dGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEJiYodC53aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLmNsZWFyV2F0Y2godGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEKSx0aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQ9dm9pZCAwKSx0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmdGhpcy5fdXNlckxvY2F0aW9uRG90TWFya2VyJiZ0aGlzLl91c2VyTG9jYXRpb25Eb3RNYXJrZXIucmVtb3ZlKCksdGhpcy5vcHRpb25zLnNob3dBY2N1cmFjeUNpcmNsZSYmdGhpcy5fYWNjdXJhY3lDaXJjbGVNYXJrZXImJnRoaXMuX2FjY3VyYWN5Q2lyY2xlTWFya2VyLnJlbW92ZSgpLHIucmVtb3ZlKHRoaXMuX2NvbnRhaW5lciksdGhpcy5fbWFwLm9mZigiem9vbSIsdGhpcy5fb25ab29tKSx0aGlzLl9tYXA9dm9pZCAwLE5pPTAsamk9ITF9LG4ucHJvdG90eXBlLl9pc091dE9mTWFwTWF4Qm91bmRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX21hcC5nZXRNYXhCb3VuZHMoKSxyPXQuY29vcmRzO3JldHVybiBlJiYoci5sb25naXR1ZGU8ZS5nZXRXZXN0KCl8fHIubG9uZ2l0dWRlPmUuZ2V0RWFzdCgpfHxyLmxhdGl0dWRlPGUuZ2V0U291dGgoKXx8ci5sYXRpdHVkZT5lLmdldE5vcnRoKCkpfSxuLnByb3RvdHlwZS5fc2V0RXJyb3JTdGF0ZT1mdW5jdGlvbigpe3N3aXRjaCh0aGlzLl93YXRjaFN0YXRlKXtjYXNlIldBSVRJTkdfQUNUSVZFIjp0aGlzLl93YXRjaFN0YXRlPSJBQ1RJVkVfRVJST1IiLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIik7YnJlYWs7Y2FzZSJBQ1RJVkVfTE9DSyI6dGhpcy5fd2F0Y2hTdGF0ZT0iQUNUSVZFX0VSUk9SIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZS1lcnJvciIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIik7YnJlYWs7Y2FzZSJCQUNLR1JPVU5EIjp0aGlzLl93YXRjaFN0YXRlPSJCQUNLR1JPVU5EX0VSUk9SIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYmFja2dyb3VuZCIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKX19LG4ucHJvdG90eXBlLl9vblN1Y2Nlc3M9ZnVuY3Rpb24oZSl7aWYodGhpcy5fbWFwKXtpZih0aGlzLl9pc091dE9mTWFwTWF4Qm91bmRzKGUpKXJldHVybiB0aGlzLl9zZXRFcnJvclN0YXRlKCksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJvdXRvZm1heGJvdW5kcyIsZSkpLHRoaXMuX3VwZGF0ZU1hcmtlcigpLHZvaWQgdGhpcy5fZmluaXNoKCk7aWYodGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uKXN3aXRjaCh0aGlzLl9sYXN0S25vd25Qb3NpdGlvbj1lLHRoaXMuX3dhdGNoU3RhdGUpe2Nhc2UiV0FJVElOR19BQ1RJVkUiOmNhc2UiQUNUSVZFX0xPQ0siOmNhc2UiQUNUSVZFX0VSUk9SIjp0aGlzLl93YXRjaFN0YXRlPSJBQ1RJVkVfTE9DSyIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZSIpO2JyZWFrO2Nhc2UiQkFDS0dST1VORCI6Y2FzZSJCQUNLR1JPVU5EX0VSUk9SIjp0aGlzLl93YXRjaFN0YXRlPSJCQUNLR1JPVU5EIix0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kLWVycm9yIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKX10aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmIk9GRiIhPT10aGlzLl93YXRjaFN0YXRlJiZ0aGlzLl91cGRhdGVNYXJrZXIoZSksdGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uJiYiQUNUSVZFX0xPQ0siIT09dGhpcy5fd2F0Y2hTdGF0ZXx8dGhpcy5fdXBkYXRlQ2FtZXJhKGUpLHRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiZ0aGlzLl9kb3RFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLXVzZXItbG9jYXRpb24tZG90LXN0YWxlIiksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJnZW9sb2NhdGUiLGUpKSx0aGlzLl9maW5pc2goKX19LG4ucHJvdG90eXBlLl91cGRhdGVDYW1lcmE9ZnVuY3Rpb24oZSl7dmFyIHI9bmV3IHQuTG5nTGF0KGUuY29vcmRzLmxvbmdpdHVkZSxlLmNvb3Jkcy5sYXRpdHVkZSksbj1lLmNvb3Jkcy5hY2N1cmFjeSxpPXRoaXMuX21hcC5nZXRCZWFyaW5nKCksYT10LmV4dGVuZCh7YmVhcmluZzppfSx0aGlzLm9wdGlvbnMuZml0Qm91bmRzT3B0aW9ucyk7dGhpcy5fbWFwLmZpdEJvdW5kcyhyLnRvQm91bmRzKG4pLGEse2dlb2xvY2F0ZVNvdXJjZTohMH0pfSxuLnByb3RvdHlwZS5fdXBkYXRlTWFya2VyPWZ1bmN0aW9uKGUpe2lmKGUpe3ZhciByPW5ldyB0LkxuZ0xhdChlLmNvb3Jkcy5sb25naXR1ZGUsZS5jb29yZHMubGF0aXR1ZGUpO3RoaXMuX2FjY3VyYWN5Q2lyY2xlTWFya2VyLnNldExuZ0xhdChyKS5hZGRUbyh0aGlzLl9tYXApLHRoaXMuX3VzZXJMb2NhdGlvbkRvdE1hcmtlci5zZXRMbmdMYXQocikuYWRkVG8odGhpcy5fbWFwKSx0aGlzLl9hY2N1cmFjeT1lLmNvb3Jkcy5hY2N1cmFjeSx0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmdGhpcy5vcHRpb25zLnNob3dBY2N1cmFjeUNpcmNsZSYmdGhpcy5fdXBkYXRlQ2lyY2xlUmFkaXVzKCl9ZWxzZSB0aGlzLl91c2VyTG9jYXRpb25Eb3RNYXJrZXIucmVtb3ZlKCksdGhpcy5fYWNjdXJhY3lDaXJjbGVNYXJrZXIucmVtb3ZlKCl9LG4ucHJvdG90eXBlLl91cGRhdGVDaXJjbGVSYWRpdXM9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9tYXAuX2NvbnRhaW5lci5jbGllbnRIZWlnaHQvMixlPXRoaXMuX21hcC51bnByb2plY3QoWzAsdF0pLHI9dGhpcy5fbWFwLnVucHJvamVjdChbMSx0XSksbj1lLmRpc3RhbmNlVG8ociksaT1NYXRoLmNlaWwoMip0aGlzLl9hY2N1cmFjeS9uKTt0aGlzLl9jaXJjbGVFbGVtZW50LnN0eWxlLndpZHRoPWkrInB4Iix0aGlzLl9jaXJjbGVFbGVtZW50LnN0eWxlLmhlaWdodD1pKyJweCJ9LG4ucHJvdG90eXBlLl9vblpvb209ZnVuY3Rpb24oKXt0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmdGhpcy5vcHRpb25zLnNob3dBY2N1cmFjeUNpcmNsZSYmdGhpcy5fdXBkYXRlQ2lyY2xlUmFkaXVzKCl9LG4ucHJvdG90eXBlLl9vbkVycm9yPWZ1bmN0aW9uKGUpe2lmKHRoaXMuX21hcCl7aWYodGhpcy5vcHRpb25zLnRyYWNrVXNlckxvY2F0aW9uKWlmKDE9PT1lLmNvZGUpe3RoaXMuX3dhdGNoU3RhdGU9Ik9GRiIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZS1lcnJvciIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQtZXJyb3IiKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uZGlzYWJsZWQ9ITA7dmFyIHI9dGhpcy5fbWFwLl9nZXRVSVN0cmluZygiR2VvbG9jYXRlQ29udHJvbC5Mb2NhdGlvbk5vdEF2YWlsYWJsZSIpO3RoaXMuX2dlb2xvY2F0ZUJ1dHRvbi50aXRsZT1yLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLHIpLHZvaWQgMCE9PXRoaXMuX2dlb2xvY2F0aW9uV2F0Y2hJRCYmdGhpcy5fY2xlYXJXYXRjaCgpfWVsc2V7aWYoMz09PWUuY29kZSYmamkpcmV0dXJuO3RoaXMuX3NldEVycm9yU3RhdGUoKX0iT0ZGIiE9PXRoaXMuX3dhdGNoU3RhdGUmJnRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiZ0aGlzLl9kb3RFbGVtZW50LmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLXVzZXItbG9jYXRpb24tZG90LXN0YWxlIiksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJlcnJvciIsZSkpLHRoaXMuX2ZpbmlzaCgpfX0sbi5wcm90b3R5cGUuX2ZpbmlzaD1mdW5jdGlvbigpe3RoaXMuX3RpbWVvdXRJZCYmY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVvdXRJZCksdGhpcy5fdGltZW91dElkPXZvaWQgMH0sbi5wcm90b3R5cGUuX3NldHVwVUk9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcztpZih0aGlzLl9jb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5wcmV2ZW50RGVmYXVsdCgpfSkpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbj1yLmNyZWF0ZSgiYnV0dG9uIiwibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUiLHRoaXMuX2NvbnRhaW5lciksci5jcmVhdGUoInNwYW4iLCJtYXBib3hnbC1jdHJsLWljb24iLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbikuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsITApLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi50eXBlPSJidXR0b24iLCExPT09ZSl7dC53YXJuT25jZSgiR2VvbG9jYXRpb24gc3VwcG9ydCBpcyBub3QgYXZhaWxhYmxlIHNvIHRoZSBHZW9sb2NhdGVDb250cm9sIHdpbGwgYmUgZGlzYWJsZWQuIik7dmFyIGk9dGhpcy5fbWFwLl9nZXRVSVN0cmluZygiR2VvbG9jYXRlQ29udHJvbC5Mb2NhdGlvbk5vdEF2YWlsYWJsZSIpO3RoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5kaXNhYmxlZD0hMCx0aGlzLl9nZW9sb2NhdGVCdXR0b24udGl0bGU9aSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixpKX1lbHNle3ZhciBhPXRoaXMuX21hcC5fZ2V0VUlTdHJpbmcoIkdlb2xvY2F0ZUNvbnRyb2wuRmluZE15TG9jYXRpb24iKTt0aGlzLl9nZW9sb2NhdGVCdXR0b24udGl0bGU9YSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIixhKX10aGlzLm9wdGlvbnMudHJhY2tVc2VyTG9jYXRpb24mJih0aGlzLl9nZW9sb2NhdGVCdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLXByZXNzZWQiLCJmYWxzZSIpLHRoaXMuX3dhdGNoU3RhdGU9Ik9GRiIpLHRoaXMub3B0aW9ucy5zaG93VXNlckxvY2F0aW9uJiYodGhpcy5fZG90RWxlbWVudD1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtdXNlci1sb2NhdGlvbi1kb3QiKSx0aGlzLl91c2VyTG9jYXRpb25Eb3RNYXJrZXI9bmV3IEZpKHRoaXMuX2RvdEVsZW1lbnQpLHRoaXMuX2NpcmNsZUVsZW1lbnQ9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLXVzZXItbG9jYXRpb24tYWNjdXJhY3ktY2lyY2xlIiksdGhpcy5fYWNjdXJhY3lDaXJjbGVNYXJrZXI9bmV3IEZpKHtlbGVtZW50OnRoaXMuX2NpcmNsZUVsZW1lbnQscGl0Y2hBbGlnbm1lbnQ6Im1hcCJ9KSx0aGlzLm9wdGlvbnMudHJhY2tVc2VyTG9jYXRpb24mJih0aGlzLl93YXRjaFN0YXRlPSJPRkYiKSx0aGlzLl9tYXAub24oInpvb20iLHRoaXMuX29uWm9vbSkpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy50cmlnZ2VyLmJpbmQodGhpcykpLHRoaXMuX3NldHVwPSEwLHRoaXMub3B0aW9ucy50cmFja1VzZXJMb2NhdGlvbiYmdGhpcy5fbWFwLm9uKCJtb3Zlc3RhcnQiLChmdW5jdGlvbihlKXt2YXIgcj1lLm9yaWdpbmFsRXZlbnQmJiJyZXNpemUiPT09ZS5vcmlnaW5hbEV2ZW50LnR5cGU7ZS5nZW9sb2NhdGVTb3VyY2V8fCJBQ1RJVkVfTE9DSyIhPT1uLl93YXRjaFN0YXRlfHxyfHwobi5fd2F0Y2hTdGF0ZT0iQkFDS0dST1VORCIsbi5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKSxuLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksbi5maXJlKG5ldyB0LkV2ZW50KCJ0cmFja3VzZXJsb2NhdGlvbmVuZCIpKSl9KSl9LG4ucHJvdG90eXBlLnRyaWdnZXI9ZnVuY3Rpb24oKXtpZighdGhpcy5fc2V0dXApcmV0dXJuIHQud2Fybk9uY2UoIkdlb2xvY2F0ZSBjb250cm9sIHRyaWdnZXJlZCBiZWZvcmUgYWRkZWQgdG8gYSBtYXAiKSwhMTtpZih0aGlzLm9wdGlvbnMudHJhY2tVc2VyTG9jYXRpb24pe3N3aXRjaCh0aGlzLl93YXRjaFN0YXRlKXtjYXNlIk9GRiI6dGhpcy5fd2F0Y2hTdGF0ZT0iV0FJVElOR19BQ1RJVkUiLHRoaXMuZmlyZShuZXcgdC5FdmVudCgidHJhY2t1c2VybG9jYXRpb25zdGFydCIpKTticmVhaztjYXNlIldBSVRJTkdfQUNUSVZFIjpjYXNlIkFDVElWRV9MT0NLIjpjYXNlIkFDVElWRV9FUlJPUiI6Y2FzZSJCQUNLR1JPVU5EX0VSUk9SIjpOaS0tLGppPSExLHRoaXMuX3dhdGNoU3RhdGU9Ik9GRiIsdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLXdhaXRpbmciKSx0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZS1lcnJvciIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5yZW1vdmUoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQtZXJyb3IiKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoInRyYWNrdXNlcmxvY2F0aW9uZW5kIikpO2JyZWFrO2Nhc2UiQkFDS0dST1VORCI6dGhpcy5fd2F0Y2hTdGF0ZT0iQUNUSVZFX0xPQ0siLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1iYWNrZ3JvdW5kIiksdGhpcy5fbGFzdEtub3duUG9zaXRpb24mJnRoaXMuX3VwZGF0ZUNhbWVyYSh0aGlzLl9sYXN0S25vd25Qb3NpdGlvbiksdGhpcy5maXJlKG5ldyB0LkV2ZW50KCJ0cmFja3VzZXJsb2NhdGlvbnN0YXJ0IikpfXN3aXRjaCh0aGlzLl93YXRjaFN0YXRlKXtjYXNlIldBSVRJTkdfQUNUSVZFIjp0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtd2FpdGluZyIpLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS1hY3RpdmUiKTticmVhaztjYXNlIkFDVElWRV9MT0NLIjp0aGlzLl9nZW9sb2NhdGVCdXR0b24uY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtY3RybC1nZW9sb2NhdGUtYWN0aXZlIik7YnJlYWs7Y2FzZSJBQ1RJVkVfRVJST1IiOnRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWFjdGl2ZS1lcnJvciIpO2JyZWFrO2Nhc2UiQkFDS0dST1VORCI6dGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQiKTticmVhaztjYXNlIkJBQ0tHUk9VTkRfRVJST1IiOnRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLWN0cmwtZ2VvbG9jYXRlLWJhY2tncm91bmQtZXJyb3IiKX1pZigiT0ZGIj09PXRoaXMuX3dhdGNoU3RhdGUmJnZvaWQgMCE9PXRoaXMuX2dlb2xvY2F0aW9uV2F0Y2hJRCl0aGlzLl9jbGVhcldhdGNoKCk7ZWxzZSBpZih2b2lkIDA9PT10aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQpe3ZhciBlO3RoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwidHJ1ZSIpLCsrTmk+MT8oZT17bWF4aW11bUFnZTo2ZTUsdGltZW91dDowfSxqaT0hMCk6KGU9dGhpcy5vcHRpb25zLnBvc2l0aW9uT3B0aW9ucyxqaT0hMSksdGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEPXQud2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi53YXRjaFBvc2l0aW9uKHRoaXMuX29uU3VjY2Vzcyx0aGlzLl9vbkVycm9yLGUpfX1lbHNlIHQud2luZG93Lm5hdmlnYXRvci5nZW9sb2NhdGlvbi5nZXRDdXJyZW50UG9zaXRpb24odGhpcy5fb25TdWNjZXNzLHRoaXMuX29uRXJyb3IsdGhpcy5vcHRpb25zLnBvc2l0aW9uT3B0aW9ucyksdGhpcy5fdGltZW91dElkPXNldFRpbWVvdXQodGhpcy5fZmluaXNoLDFlNCk7cmV0dXJuITB9LG4ucHJvdG90eXBlLl9jbGVhcldhdGNoPWZ1bmN0aW9uKCl7dC53aW5kb3cubmF2aWdhdG9yLmdlb2xvY2F0aW9uLmNsZWFyV2F0Y2godGhpcy5fZ2VvbG9jYXRpb25XYXRjaElEKSx0aGlzLl9nZW9sb2NhdGlvbldhdGNoSUQ9dm9pZCAwLHRoaXMuX2dlb2xvY2F0ZUJ1dHRvbi5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1jdHJsLWdlb2xvY2F0ZS13YWl0aW5nIiksdGhpcy5fZ2VvbG9jYXRlQnV0dG9uLnNldEF0dHJpYnV0ZSgiYXJpYS1wcmVzc2VkIiwiZmFsc2UiKSx0aGlzLm9wdGlvbnMuc2hvd1VzZXJMb2NhdGlvbiYmdGhpcy5fdXBkYXRlTWFya2VyKG51bGwpfSxufSh0LkV2ZW50ZWQpLFZpPXttYXhXaWR0aDoxMDAsdW5pdDoibWV0cmljIn0sSGk9ZnVuY3Rpb24oZSl7dGhpcy5vcHRpb25zPXQuZXh0ZW5kKHt9LFZpLGUpLHQuYmluZEFsbChbIl9vbk1vdmUiLCJzZXRVbml0Il0sdGhpcyl9O2Z1bmN0aW9uIHFpKHQsZSxyKXt2YXIgbj1yJiZyLm1heFdpZHRofHwxMDAsaT10Ll9jb250YWluZXIuY2xpZW50SGVpZ2h0LzIsYT10LnVucHJvamVjdChbMCxpXSksbz10LnVucHJvamVjdChbbixpXSkscz1hLmRpc3RhbmNlVG8obyk7aWYociYmImltcGVyaWFsIj09PXIudW5pdCl7dmFyIGw9My4yODA4KnM7aWYobD41MjgwKUdpKGUsbixsLzUyODAsdC5fZ2V0VUlTdHJpbmcoIlNjYWxlQ29udHJvbC5NaWxlcyIpKTtlbHNlIEdpKGUsbixsLHQuX2dldFVJU3RyaW5nKCJTY2FsZUNvbnRyb2wuRmVldCIpKX1lbHNlIGlmKHImJiJuYXV0aWNhbCI9PT1yLnVuaXQpe0dpKGUsbixzLzE4NTIsdC5fZ2V0VUlTdHJpbmcoIlNjYWxlQ29udHJvbC5OYXV0aWNhbE1pbGVzIikpfWVsc2Ugcz49MWUzP0dpKGUsbixzLzFlMyx0Ll9nZXRVSVN0cmluZygiU2NhbGVDb250cm9sLktpbG9tZXRlcnMiKSk6R2koZSxuLHMsdC5fZ2V0VUlTdHJpbmcoIlNjYWxlQ29udHJvbC5NZXRlcnMiKSl9ZnVuY3Rpb24gR2kodCxlLHIsbil7dmFyIGksYSxvLHM9KGk9cixhPU1hdGgucG93KDEwLCgiIitNYXRoLmZsb29yKGkpKS5sZW5ndGgtMSksbz0obz1pL2EpPj0xMD8xMDpvPj01PzU6bz49Mz8zOm8+PTI/MjpvPj0xPzE6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5wb3coMTAsTWF0aC5jZWlsKC1NYXRoLmxvZyh0KS9NYXRoLkxOMTApKTtyZXR1cm4gTWF0aC5yb3VuZCh0KmUpL2V9KG8pLGEqbyksbD1zL3I7dC5zdHlsZS53aWR0aD1lKmwrInB4Iix0LmlubmVySFRNTD1zKyImbmJzcDsiK259SGkucHJvdG90eXBlLmdldERlZmF1bHRQb3NpdGlvbj1mdW5jdGlvbigpe3JldHVybiJib3R0b20tbGVmdCJ9LEhpLnByb3RvdHlwZS5fb25Nb3ZlPWZ1bmN0aW9uKCl7cWkodGhpcy5fbWFwLHRoaXMuX2NvbnRhaW5lcix0aGlzLm9wdGlvbnMpfSxIaS5wcm90b3R5cGUub25BZGQ9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX21hcD10LHRoaXMuX2NvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybCBtYXBib3hnbC1jdHJsLXNjYWxlIix0LmdldENvbnRhaW5lcigpKSx0aGlzLl9tYXAub24oIm1vdmUiLHRoaXMuX29uTW92ZSksdGhpcy5fb25Nb3ZlKCksdGhpcy5fY29udGFpbmVyfSxIaS5wcm90b3R5cGUub25SZW1vdmU9ZnVuY3Rpb24oKXtyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX29uTW92ZSksdGhpcy5fbWFwPXZvaWQgMH0sSGkucHJvdG90eXBlLnNldFVuaXQ9ZnVuY3Rpb24odCl7dGhpcy5vcHRpb25zLnVuaXQ9dCxxaSh0aGlzLl9tYXAsdGhpcy5fY29udGFpbmVyLHRoaXMub3B0aW9ucyl9O3ZhciBZaT1mdW5jdGlvbihlKXt0aGlzLl9mdWxsc2NyZWVuPSExLGUmJmUuY29udGFpbmVyJiYoZS5jb250YWluZXIgaW5zdGFuY2VvZiB0LndpbmRvdy5IVE1MRWxlbWVudD90aGlzLl9jb250YWluZXI9ZS5jb250YWluZXI6dC53YXJuT25jZSgiRnVsbCBzY3JlZW4gY29udHJvbCAnY29udGFpbmVyJyBtdXN0IGJlIGEgRE9NIGVsZW1lbnQuIikpLHQuYmluZEFsbChbIl9vbkNsaWNrRnVsbHNjcmVlbiIsIl9jaGFuZ2VJY29uIl0sdGhpcyksIm9uZnVsbHNjcmVlbmNoYW5nZSJpbiB0LndpbmRvdy5kb2N1bWVudD90aGlzLl9mdWxsc2NyZWVuY2hhbmdlPSJmdWxsc2NyZWVuY2hhbmdlIjoib25tb3pmdWxsc2NyZWVuY2hhbmdlImluIHQud2luZG93LmRvY3VtZW50P3RoaXMuX2Z1bGxzY3JlZW5jaGFuZ2U9Im1vemZ1bGxzY3JlZW5jaGFuZ2UiOiJvbndlYmtpdGZ1bGxzY3JlZW5jaGFuZ2UiaW4gdC53aW5kb3cuZG9jdW1lbnQ/dGhpcy5fZnVsbHNjcmVlbmNoYW5nZT0id2Via2l0ZnVsbHNjcmVlbmNoYW5nZSI6Im9ubXNmdWxsc2NyZWVuY2hhbmdlImluIHQud2luZG93LmRvY3VtZW50JiYodGhpcy5fZnVsbHNjcmVlbmNoYW5nZT0iTVNGdWxsc2NyZWVuQ2hhbmdlIil9O1lpLnByb3RvdHlwZS5vbkFkZD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbWFwPWUsdGhpcy5fY29udGFpbmVyfHwodGhpcy5fY29udGFpbmVyPXRoaXMuX21hcC5nZXRDb250YWluZXIoKSksdGhpcy5fY29udHJvbENvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtY3RybCBtYXBib3hnbC1jdHJsLWdyb3VwIiksdGhpcy5fY2hlY2tGdWxsc2NyZWVuU3VwcG9ydCgpP3RoaXMuX3NldHVwVUkoKToodGhpcy5fY29udHJvbENvbnRhaW5lci5zdHlsZS5kaXNwbGF5PSJub25lIix0Lndhcm5PbmNlKCJUaGlzIGRldmljZSBkb2VzIG5vdCBzdXBwb3J0IGZ1bGxzY3JlZW4gbW9kZS4iKSksdGhpcy5fY29udHJvbENvbnRhaW5lcn0sWWkucHJvdG90eXBlLm9uUmVtb3ZlPWZ1bmN0aW9uKCl7ci5yZW1vdmUodGhpcy5fY29udHJvbENvbnRhaW5lciksdGhpcy5fbWFwPW51bGwsdC53aW5kb3cuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcih0aGlzLl9mdWxsc2NyZWVuY2hhbmdlLHRoaXMuX2NoYW5nZUljb24pfSxZaS5wcm90b3R5cGUuX2NoZWNrRnVsbHNjcmVlblN1cHBvcnQ9ZnVuY3Rpb24oKXtyZXR1cm4hISh0LndpbmRvdy5kb2N1bWVudC5mdWxsc2NyZWVuRW5hYmxlZHx8dC53aW5kb3cuZG9jdW1lbnQubW96RnVsbFNjcmVlbkVuYWJsZWR8fHQud2luZG93LmRvY3VtZW50Lm1zRnVsbHNjcmVlbkVuYWJsZWR8fHQud2luZG93LmRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkKX0sWWkucHJvdG90eXBlLl9zZXR1cFVJPWZ1bmN0aW9uKCl7dmFyIGU9dGhpcy5fZnVsbHNjcmVlbkJ1dHRvbj1yLmNyZWF0ZSgiYnV0dG9uIiwibWFwYm94Z2wtY3RybC1mdWxsc2NyZWVuIix0aGlzLl9jb250cm9sQ29udGFpbmVyKTtyLmNyZWF0ZSgic3BhbiIsIm1hcGJveGdsLWN0cmwtaWNvbiIsZSkuc2V0QXR0cmlidXRlKCJhcmlhLWhpZGRlbiIsITApLGUudHlwZT0iYnV0dG9uIix0aGlzLl91cGRhdGVUaXRsZSgpLHRoaXMuX2Z1bGxzY3JlZW5CdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLHRoaXMuX29uQ2xpY2tGdWxsc2NyZWVuKSx0LndpbmRvdy5kb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKHRoaXMuX2Z1bGxzY3JlZW5jaGFuZ2UsdGhpcy5fY2hhbmdlSWNvbil9LFlpLnByb3RvdHlwZS5fdXBkYXRlVGl0bGU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9nZXRUaXRsZSgpO3RoaXMuX2Z1bGxzY3JlZW5CdXR0b24uc2V0QXR0cmlidXRlKCJhcmlhLWxhYmVsIix0KSx0aGlzLl9mdWxsc2NyZWVuQnV0dG9uLnRpdGxlPXR9LFlpLnByb3RvdHlwZS5fZ2V0VGl0bGU9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbWFwLl9nZXRVSVN0cmluZyh0aGlzLl9pc0Z1bGxzY3JlZW4oKT8iRnVsbHNjcmVlbkNvbnRyb2wuRXhpdCI6IkZ1bGxzY3JlZW5Db250cm9sLkVudGVyIil9LFlpLnByb3RvdHlwZS5faXNGdWxsc2NyZWVuPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2Z1bGxzY3JlZW59LFlpLnByb3RvdHlwZS5fY2hhbmdlSWNvbj1mdW5jdGlvbigpeyh0LndpbmRvdy5kb2N1bWVudC5mdWxsc2NyZWVuRWxlbWVudHx8dC53aW5kb3cuZG9jdW1lbnQubW96RnVsbFNjcmVlbkVsZW1lbnR8fHQud2luZG93LmRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50fHx0LndpbmRvdy5kb2N1bWVudC5tc0Z1bGxzY3JlZW5FbGVtZW50KT09PXRoaXMuX2NvbnRhaW5lciE9PXRoaXMuX2Z1bGxzY3JlZW4mJih0aGlzLl9mdWxsc2NyZWVuPSF0aGlzLl9mdWxsc2NyZWVuLHRoaXMuX2Z1bGxzY3JlZW5CdXR0b24uY2xhc3NMaXN0LnRvZ2dsZSgibWFwYm94Z2wtY3RybC1zaHJpbmsiKSx0aGlzLl9mdWxsc2NyZWVuQnV0dG9uLmNsYXNzTGlzdC50b2dnbGUoIm1hcGJveGdsLWN0cmwtZnVsbHNjcmVlbiIpLHRoaXMuX3VwZGF0ZVRpdGxlKCkpfSxZaS5wcm90b3R5cGUuX29uQ2xpY2tGdWxsc2NyZWVuPWZ1bmN0aW9uKCl7dGhpcy5faXNGdWxsc2NyZWVuKCk/dC53aW5kb3cuZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4/dC53aW5kb3cuZG9jdW1lbnQuZXhpdEZ1bGxzY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC5tb3pDYW5jZWxGdWxsU2NyZWVuP3Qud2luZG93LmRvY3VtZW50Lm1vekNhbmNlbEZ1bGxTY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC5tc0V4aXRGdWxsc2NyZWVuP3Qud2luZG93LmRvY3VtZW50Lm1zRXhpdEZ1bGxzY3JlZW4oKTp0LndpbmRvdy5kb2N1bWVudC53ZWJraXRDYW5jZWxGdWxsU2NyZWVuJiZ0LndpbmRvdy5kb2N1bWVudC53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk6dGhpcy5fY29udGFpbmVyLnJlcXVlc3RGdWxsc2NyZWVuP3RoaXMuX2NvbnRhaW5lci5yZXF1ZXN0RnVsbHNjcmVlbigpOnRoaXMuX2NvbnRhaW5lci5tb3pSZXF1ZXN0RnVsbFNjcmVlbj90aGlzLl9jb250YWluZXIubW96UmVxdWVzdEZ1bGxTY3JlZW4oKTp0aGlzLl9jb250YWluZXIubXNSZXF1ZXN0RnVsbHNjcmVlbj90aGlzLl9jb250YWluZXIubXNSZXF1ZXN0RnVsbHNjcmVlbigpOnRoaXMuX2NvbnRhaW5lci53ZWJraXRSZXF1ZXN0RnVsbHNjcmVlbiYmdGhpcy5fY29udGFpbmVyLndlYmtpdFJlcXVlc3RGdWxsc2NyZWVuKCl9O3ZhciBXaT17Y2xvc2VCdXR0b246ITAsY2xvc2VPbkNsaWNrOiEwLGNsYXNzTmFtZToiIixtYXhXaWR0aDoiMjQwcHgifSxYaT1mdW5jdGlvbihlKXtmdW5jdGlvbiBuKHIpe2UuY2FsbCh0aGlzKSx0aGlzLm9wdGlvbnM9dC5leHRlbmQoT2JqZWN0LmNyZWF0ZShXaSksciksdC5iaW5kQWxsKFsiX3VwZGF0ZSIsIl9vbkNsb3NlIiwicmVtb3ZlIiwiX29uTW91c2VNb3ZlIiwiX29uTW91c2VVcCIsIl9vbkRyYWciXSx0aGlzKX1yZXR1cm4gZSYmKG4uX19wcm90b19fPWUpLG4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZSYmZS5wcm90b3R5cGUpLG4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPW4sbi5wcm90b3R5cGUuYWRkVG89ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuX21hcCYmdGhpcy5yZW1vdmUoKSx0aGlzLl9tYXA9ZSx0aGlzLm9wdGlvbnMuY2xvc2VPbkNsaWNrJiZ0aGlzLl9tYXAub24oImNsaWNrIix0aGlzLl9vbkNsb3NlKSx0aGlzLm9wdGlvbnMuY2xvc2VPbk1vdmUmJnRoaXMuX21hcC5vbigibW92ZSIsdGhpcy5fb25DbG9zZSksdGhpcy5fbWFwLm9uKCJyZW1vdmUiLHRoaXMucmVtb3ZlKSx0aGlzLl91cGRhdGUoKSx0aGlzLl90cmFja1BvaW50ZXI/KHRoaXMuX21hcC5vbigibW91c2Vtb3ZlIix0aGlzLl9vbk1vdXNlTW92ZSksdGhpcy5fbWFwLm9uKCJtb3VzZXVwIix0aGlzLl9vbk1vdXNlVXApLHRoaXMuX2NvbnRhaW5lciYmdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLXBvcHVwLXRyYWNrLXBvaW50ZXIiKSx0aGlzLl9tYXAuX2NhbnZhc0NvbnRhaW5lci5jbGFzc0xpc3QuYWRkKCJtYXBib3hnbC10cmFjay1wb2ludGVyIikpOnRoaXMuX21hcC5vbigibW92ZSIsdGhpcy5fdXBkYXRlKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoIm9wZW4iKSksdGhpc30sbi5wcm90b3R5cGUuaXNPcGVuPWZ1bmN0aW9uKCl7cmV0dXJuISF0aGlzLl9tYXB9LG4ucHJvdG90eXBlLnJlbW92ZT1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250ZW50JiZyLnJlbW92ZSh0aGlzLl9jb250ZW50KSx0aGlzLl9jb250YWluZXImJihyLnJlbW92ZSh0aGlzLl9jb250YWluZXIpLGRlbGV0ZSB0aGlzLl9jb250YWluZXIpLHRoaXMuX21hcCYmKHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX3VwZGF0ZSksdGhpcy5fbWFwLm9mZigibW92ZSIsdGhpcy5fb25DbG9zZSksdGhpcy5fbWFwLm9mZigiY2xpY2siLHRoaXMuX29uQ2xvc2UpLHRoaXMuX21hcC5vZmYoInJlbW92ZSIsdGhpcy5yZW1vdmUpLHRoaXMuX21hcC5vZmYoIm1vdXNlbW92ZSIsdGhpcy5fb25Nb3VzZU1vdmUpLHRoaXMuX21hcC5vZmYoIm1vdXNldXAiLHRoaXMuX29uTW91c2VVcCksdGhpcy5fbWFwLm9mZigiZHJhZyIsdGhpcy5fb25EcmFnKSxkZWxldGUgdGhpcy5fbWFwKSx0aGlzLmZpcmUobmV3IHQuRXZlbnQoImNsb3NlIikpLHRoaXN9LG4ucHJvdG90eXBlLmdldExuZ0xhdD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9sbmdMYXR9LG4ucHJvdG90eXBlLnNldExuZ0xhdD1mdW5jdGlvbihlKXtyZXR1cm4gdGhpcy5fbG5nTGF0PXQuTG5nTGF0LmNvbnZlcnQoZSksdGhpcy5fcG9zPW51bGwsdGhpcy5fdHJhY2tQb2ludGVyPSExLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX21hcCYmKHRoaXMuX21hcC5vbigibW92ZSIsdGhpcy5fdXBkYXRlKSx0aGlzLl9tYXAub2ZmKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VNb3ZlKSx0aGlzLl9jb250YWluZXImJnRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QucmVtb3ZlKCJtYXBib3hnbC1wb3B1cC10cmFjay1wb2ludGVyIiksdGhpcy5fbWFwLl9jYW52YXNDb250YWluZXIuY2xhc3NMaXN0LnJlbW92ZSgibWFwYm94Z2wtdHJhY2stcG9pbnRlciIpKSx0aGlzfSxuLnByb3RvdHlwZS50cmFja1BvaW50ZXI9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fdHJhY2tQb2ludGVyPSEwLHRoaXMuX3Bvcz1udWxsLHRoaXMuX3VwZGF0ZSgpLHRoaXMuX21hcCYmKHRoaXMuX21hcC5vZmYoIm1vdmUiLHRoaXMuX3VwZGF0ZSksdGhpcy5fbWFwLm9uKCJtb3VzZW1vdmUiLHRoaXMuX29uTW91c2VNb3ZlKSx0aGlzLl9tYXAub24oImRyYWciLHRoaXMuX29uRHJhZyksdGhpcy5fY29udGFpbmVyJiZ0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtcG9wdXAtdHJhY2stcG9pbnRlciIpLHRoaXMuX21hcC5fY2FudmFzQ29udGFpbmVyLmNsYXNzTGlzdC5hZGQoIm1hcGJveGdsLXRyYWNrLXBvaW50ZXIiKSksdGhpc30sbi5wcm90b3R5cGUuZ2V0RWxlbWVudD1mdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb250YWluZXJ9LG4ucHJvdG90eXBlLnNldFRleHQ9ZnVuY3Rpb24oZSl7cmV0dXJuIHRoaXMuc2V0RE9NQ29udGVudCh0LndpbmRvdy5kb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShlKSl9LG4ucHJvdG90eXBlLnNldEhUTUw9ZnVuY3Rpb24oZSl7dmFyIHIsbj10LndpbmRvdy5kb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksaT10LndpbmRvdy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJib2R5Iik7Zm9yKGkuaW5uZXJIVE1MPWU7cj1pLmZpcnN0Q2hpbGQ7KW4uYXBwZW5kQ2hpbGQocik7cmV0dXJuIHRoaXMuc2V0RE9NQ29udGVudChuKX0sbi5wcm90b3R5cGUuZ2V0TWF4V2lkdGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY29udGFpbmVyJiZ0aGlzLl9jb250YWluZXIuc3R5bGUubWF4V2lkdGh9LG4ucHJvdG90eXBlLnNldE1heFdpZHRoPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9wdGlvbnMubWF4V2lkdGg9dCx0aGlzLl91cGRhdGUoKSx0aGlzfSxuLnByb3RvdHlwZS5zZXRET01Db250ZW50PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9jcmVhdGVDb250ZW50KCksdGhpcy5fY29udGVudC5hcHBlbmRDaGlsZCh0KSx0aGlzLl91cGRhdGUoKSx0aGlzfSxuLnByb3RvdHlwZS5hZGRDbGFzc05hbWU9ZnVuY3Rpb24odCl7dGhpcy5fY29udGFpbmVyJiZ0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCh0KX0sbi5wcm90b3R5cGUucmVtb3ZlQ2xhc3NOYW1lPWZ1bmN0aW9uKHQpe3RoaXMuX2NvbnRhaW5lciYmdGhpcy5fY29udGFpbmVyLmNsYXNzTGlzdC5yZW1vdmUodCl9LG4ucHJvdG90eXBlLnRvZ2dsZUNsYXNzTmFtZT1mdW5jdGlvbih0KXtpZih0aGlzLl9jb250YWluZXIpcmV0dXJuIHRoaXMuX2NvbnRhaW5lci5jbGFzc0xpc3QudG9nZ2xlKHQpfSxuLnByb3RvdHlwZS5fY3JlYXRlQ29udGVudD1mdW5jdGlvbigpe3RoaXMuX2NvbnRlbnQmJnIucmVtb3ZlKHRoaXMuX2NvbnRlbnQpLHRoaXMuX2NvbnRlbnQ9ci5jcmVhdGUoImRpdiIsIm1hcGJveGdsLXBvcHVwLWNvbnRlbnQiLHRoaXMuX2NvbnRhaW5lciksdGhpcy5vcHRpb25zLmNsb3NlQnV0dG9uJiYodGhpcy5fY2xvc2VCdXR0b249ci5jcmVhdGUoImJ1dHRvbiIsIm1hcGJveGdsLXBvcHVwLWNsb3NlLWJ1dHRvbiIsdGhpcy5fY29udGVudCksdGhpcy5fY2xvc2VCdXR0b24udHlwZT0iYnV0dG9uIix0aGlzLl9jbG9zZUJ1dHRvbi5zZXRBdHRyaWJ1dGUoImFyaWEtbGFiZWwiLCJDbG9zZSBwb3B1cCIpLHRoaXMuX2Nsb3NlQnV0dG9uLmlubmVySFRNTD0iJiMyMTU7Iix0aGlzLl9jbG9zZUJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsdGhpcy5fb25DbG9zZSkpfSxuLnByb3RvdHlwZS5fb25Nb3VzZVVwPWZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZSh0LnBvaW50KX0sbi5wcm90b3R5cGUuX29uTW91c2VNb3ZlPWZ1bmN0aW9uKHQpe3RoaXMuX3VwZGF0ZSh0LnBvaW50KX0sbi5wcm90b3R5cGUuX29uRHJhZz1mdW5jdGlvbih0KXt0aGlzLl91cGRhdGUodC5wb2ludCl9LG4ucHJvdG90eXBlLl91cGRhdGU9ZnVuY3Rpb24oZSl7dmFyIG49dGhpcyxpPXRoaXMuX2xuZ0xhdHx8dGhpcy5fdHJhY2tQb2ludGVyO2lmKHRoaXMuX21hcCYmaSYmdGhpcy5fY29udGVudCYmKHRoaXMuX2NvbnRhaW5lcnx8KHRoaXMuX2NvbnRhaW5lcj1yLmNyZWF0ZSgiZGl2IiwibWFwYm94Z2wtcG9wdXAiLHRoaXMuX21hcC5nZXRDb250YWluZXIoKSksdGhpcy5fdGlwPXIuY3JlYXRlKCJkaXYiLCJtYXBib3hnbC1wb3B1cC10aXAiLHRoaXMuX2NvbnRhaW5lciksdGhpcy5fY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuX2NvbnRlbnQpLHRoaXMub3B0aW9ucy5jbGFzc05hbWUmJnRoaXMub3B0aW9ucy5jbGFzc05hbWUuc3BsaXQoIiAiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtyZXR1cm4gbi5fY29udGFpbmVyLmNsYXNzTGlzdC5hZGQodCl9KSksdGhpcy5fdHJhY2tQb2ludGVyJiZ0aGlzLl9jb250YWluZXIuY2xhc3NMaXN0LmFkZCgibWFwYm94Z2wtcG9wdXAtdHJhY2stcG9pbnRlciIpKSx0aGlzLm9wdGlvbnMubWF4V2lkdGgmJnRoaXMuX2NvbnRhaW5lci5zdHlsZS5tYXhXaWR0aCE9PXRoaXMub3B0aW9ucy5tYXhXaWR0aCYmKHRoaXMuX2NvbnRhaW5lci5zdHlsZS5tYXhXaWR0aD10aGlzLm9wdGlvbnMubWF4V2lkdGgpLHRoaXMuX21hcC50cmFuc2Zvcm0ucmVuZGVyV29ybGRDb3BpZXMmJiF0aGlzLl90cmFja1BvaW50ZXImJih0aGlzLl9sbmdMYXQ9T2kodGhpcy5fbG5nTGF0LHRoaXMuX3Bvcyx0aGlzLl9tYXAudHJhbnNmb3JtKSksIXRoaXMuX3RyYWNrUG9pbnRlcnx8ZSkpe3ZhciBhPXRoaXMuX3Bvcz10aGlzLl90cmFja1BvaW50ZXImJmU/ZTp0aGlzLl9tYXAucHJvamVjdCh0aGlzLl9sbmdMYXQpLG89dGhpcy5vcHRpb25zLmFuY2hvcixzPWZ1bmN0aW9uIGUocil7aWYocil7aWYoIm51bWJlciI9PXR5cGVvZiByKXt2YXIgbj1NYXRoLnJvdW5kKE1hdGguc3FydCguNSpNYXRoLnBvdyhyLDIpKSk7cmV0dXJue2NlbnRlcjpuZXcgdC5Qb2ludCgwLDApLHRvcDpuZXcgdC5Qb2ludCgwLHIpLCJ0b3AtbGVmdCI6bmV3IHQuUG9pbnQobixuKSwidG9wLXJpZ2h0IjpuZXcgdC5Qb2ludCgtbixuKSxib3R0b206bmV3IHQuUG9pbnQoMCwtciksImJvdHRvbS1sZWZ0IjpuZXcgdC5Qb2ludChuLC1uKSwiYm90dG9tLXJpZ2h0IjpuZXcgdC5Qb2ludCgtbiwtbiksbGVmdDpuZXcgdC5Qb2ludChyLDApLHJpZ2h0Om5ldyB0LlBvaW50KC1yLDApfX1pZihyIGluc3RhbmNlb2YgdC5Qb2ludHx8QXJyYXkuaXNBcnJheShyKSl7dmFyIGk9dC5Qb2ludC5jb252ZXJ0KHIpO3JldHVybntjZW50ZXI6aSx0b3A6aSwidG9wLWxlZnQiOmksInRvcC1yaWdodCI6aSxib3R0b206aSwiYm90dG9tLWxlZnQiOmksImJvdHRvbS1yaWdodCI6aSxsZWZ0OmkscmlnaHQ6aX19cmV0dXJue2NlbnRlcjp0LlBvaW50LmNvbnZlcnQoci5jZW50ZXJ8fFswLDBdKSx0b3A6dC5Qb2ludC5jb252ZXJ0KHIudG9wfHxbMCwwXSksInRvcC1sZWZ0Ijp0LlBvaW50LmNvbnZlcnQoclsidG9wLWxlZnQiXXx8WzAsMF0pLCJ0b3AtcmlnaHQiOnQuUG9pbnQuY29udmVydChyWyJ0b3AtcmlnaHQiXXx8WzAsMF0pLGJvdHRvbTp0LlBvaW50LmNvbnZlcnQoci5ib3R0b218fFswLDBdKSwiYm90dG9tLWxlZnQiOnQuUG9pbnQuY29udmVydChyWyJib3R0b20tbGVmdCJdfHxbMCwwXSksImJvdHRvbS1yaWdodCI6dC5Qb2ludC5jb252ZXJ0KHJbImJvdHRvbS1yaWdodCJdfHxbMCwwXSksbGVmdDp0LlBvaW50LmNvbnZlcnQoci5sZWZ0fHxbMCwwXSkscmlnaHQ6dC5Qb2ludC5jb252ZXJ0KHIucmlnaHR8fFswLDBdKX19cmV0dXJuIGUobmV3IHQuUG9pbnQoMCwwKSl9KHRoaXMub3B0aW9ucy5vZmZzZXQpO2lmKCFvKXt2YXIgbCxjPXRoaXMuX2NvbnRhaW5lci5vZmZzZXRXaWR0aCx1PXRoaXMuX2NvbnRhaW5lci5vZmZzZXRIZWlnaHQ7bD1hLnkrcy5ib3R0b20ueTx1P1sidG9wIl06YS55PnRoaXMuX21hcC50cmFuc2Zvcm0uaGVpZ2h0LXU/WyJib3R0b20iXTpbXSxhLng8Yy8yP2wucHVzaCgibGVmdCIpOmEueD50aGlzLl9tYXAudHJhbnNmb3JtLndpZHRoLWMvMiYmbC5wdXNoKCJyaWdodCIpLG89MD09PWwubGVuZ3RoPyJib3R0b20iOmwuam9pbigiLSIpfXZhciBmPWEuYWRkKHNbb10pLnJvdW5kKCk7ci5zZXRUcmFuc2Zvcm0odGhpcy5fY29udGFpbmVyLHppW29dKyIgdHJhbnNsYXRlKCIrZi54KyJweCwiK2YueSsicHgpIiksRGkodGhpcy5fY29udGFpbmVyLG8sInBvcHVwIil9fSxuLnByb3RvdHlwZS5fb25DbG9zZT1mdW5jdGlvbigpe3RoaXMucmVtb3ZlKCl9LG59KHQuRXZlbnRlZCk7dmFyIFppPXt2ZXJzaW9uOnQudmVyc2lvbixzdXBwb3J0ZWQ6ZSxzZXRSVExUZXh0UGx1Z2luOnQuc2V0UlRMVGV4dFBsdWdpbixnZXRSVExUZXh0UGx1Z2luU3RhdHVzOnQuZ2V0UlRMVGV4dFBsdWdpblN0YXR1cyxNYXA6RWksTmF2aWdhdGlvbkNvbnRyb2w6UGksR2VvbG9jYXRlQ29udHJvbDpVaSxBdHRyaWJ1dGlvbkNvbnRyb2w6YmksU2NhbGVDb250cm9sOkhpLEZ1bGxzY3JlZW5Db250cm9sOllpLFBvcHVwOlhpLE1hcmtlcjpGaSxTdHlsZTpxZSxMbmdMYXQ6dC5MbmdMYXQsTG5nTGF0Qm91bmRzOnQuTG5nTGF0Qm91bmRzLFBvaW50OnQuUG9pbnQsTWVyY2F0b3JDb29yZGluYXRlOnQuTWVyY2F0b3JDb29yZGluYXRlLEV2ZW50ZWQ6dC5FdmVudGVkLGNvbmZpZzp0LmNvbmZpZyxwcmV3YXJtOmZ1bmN0aW9uKCl7QnQoKS5hY3F1aXJlKHp0KX0sY2xlYXJQcmV3YXJtZWRSZXNvdXJjZXM6ZnVuY3Rpb24oKXt2YXIgdD1SdDt0JiYodC5pc1ByZWxvYWRlZCgpJiYxPT09dC5udW1BY3RpdmUoKT8odC5yZWxlYXNlKHp0KSxSdD1udWxsKTpjb25zb2xlLndhcm4oIkNvdWxkIG5vdCBjbGVhciBXZWJXb3JrZXJzIHNpbmNlIHRoZXJlIGFyZSBhY3RpdmUgTWFwIGluc3RhbmNlcyB0aGF0IHN0aWxsIHJlZmVyZW5jZSBpdC4gVGhlIHByZS13YXJtZWQgV2ViV29ya2VyIHBvb2wgY2FuIG9ubHkgYmUgY2xlYXJlZCB3aGVuIGFsbCBtYXAgaW5zdGFuY2VzIGhhdmUgYmVlbiByZW1vdmVkIHdpdGggbWFwLnJlbW92ZSgpIikpfSxnZXQgYWNjZXNzVG9rZW4oKXtyZXR1cm4gdC5jb25maWcuQUNDRVNTX1RPS0VOfSxzZXQgYWNjZXNzVG9rZW4oZSl7dC5jb25maWcuQUNDRVNTX1RPS0VOPWV9LGdldCBiYXNlQXBpVXJsKCl7cmV0dXJuIHQuY29uZmlnLkFQSV9VUkx9LHNldCBiYXNlQXBpVXJsKGUpe3QuY29uZmlnLkFQSV9VUkw9ZX0sZ2V0IHdvcmtlckNvdW50KCl7cmV0dXJuIER0LndvcmtlckNvdW50fSxzZXQgd29ya2VyQ291bnQodCl7RHQud29ya2VyQ291bnQ9dH0sZ2V0IG1heFBhcmFsbGVsSW1hZ2VSZXF1ZXN0cygpe3JldHVybiB0LmNvbmZpZy5NQVhfUEFSQUxMRUxfSU1BR0VfUkVRVUVTVFN9LHNldCBtYXhQYXJhbGxlbEltYWdlUmVxdWVzdHMoZSl7dC5jb25maWcuTUFYX1BBUkFMTEVMX0lNQUdFX1JFUVVFU1RTPWV9LGNsZWFyU3RvcmFnZTpmdW5jdGlvbihlKXt0LmNsZWFyVGlsZUNhY2hlKGUpfSx3b3JrZXJVcmw6IiJ9O3JldHVybiBaaX0pKSxyfSkpfSx7fV0sNDQyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9ub3JtYWxpemUiKSxpPXQoImdsLW1hdDQvY3JlYXRlIiksYT10KCJnbC1tYXQ0L2Nsb25lIiksbz10KCJnbC1tYXQ0L2RldGVybWluYW50Iikscz10KCJnbC1tYXQ0L2ludmVydCIpLGw9dCgiZ2wtbWF0NC90cmFuc3Bvc2UiKSxjPXtsZW5ndGg6dCgiZ2wtdmVjMy9sZW5ndGgiKSxub3JtYWxpemU6dCgiZ2wtdmVjMy9ub3JtYWxpemUiKSxkb3Q6dCgiZ2wtdmVjMy9kb3QiKSxjcm9zczp0KCJnbC12ZWMzL2Nyb3NzIil9LHU9aSgpLGY9aSgpLGg9WzAsMCwwLDBdLHA9W1swLDAsMF0sWzAsMCwwXSxbMCwwLDBdXSxkPVswLDAsMF07ZnVuY3Rpb24gbSh0LGUscixuLGkpe3RbMF09ZVswXSpuK3JbMF0qaSx0WzFdPWVbMV0qbityWzFdKmksdFsyXT1lWzJdKm4rclsyXSppfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpLGcsdil7aWYoZXx8KGU9WzAsMCwwXSkscnx8KHI9WzAsMCwwXSksaXx8KGk9WzAsMCwwXSksZ3x8KGc9WzAsMCwwLDFdKSx2fHwodj1bMCwwLDAsMV0pLCFuKHUsdCkpcmV0dXJuITE7aWYoYShmLHUpLGZbM109MCxmWzddPTAsZlsxMV09MCxmWzE1XT0xLE1hdGguYWJzKG8oZik8MWUtOCkpcmV0dXJuITE7dmFyIHkseCxiLF8sdyxULGssQT11WzNdLE09dVs3XSxTPXVbMTFdLEU9dVsxMl0sTD11WzEzXSxDPXVbMTRdLFA9dVsxNV07aWYoMCE9PUF8fDAhPT1NfHwwIT09Uyl7aWYoaFswXT1BLGhbMV09TSxoWzJdPVMsaFszXT1QLCFzKGYsZikpcmV0dXJuITE7bChmLGYpLHk9ZyxiPWYsXz0oeD1oKVswXSx3PXhbMV0sVD14WzJdLGs9eFszXSx5WzBdPWJbMF0qXytiWzRdKncrYls4XSpUK2JbMTJdKmsseVsxXT1iWzFdKl8rYls1XSp3K2JbOV0qVCtiWzEzXSprLHlbMl09YlsyXSpfK2JbNl0qdytiWzEwXSpUK2JbMTRdKmsseVszXT1iWzNdKl8rYls3XSp3K2JbMTFdKlQrYlsxNV0qa31lbHNlIGdbMF09Z1sxXT1nWzJdPTAsZ1szXT0xO2lmKGVbMF09RSxlWzFdPUwsZVsyXT1DLGZ1bmN0aW9uKHQsZSl7dFswXVswXT1lWzBdLHRbMF1bMV09ZVsxXSx0WzBdWzJdPWVbMl0sdFsxXVswXT1lWzRdLHRbMV1bMV09ZVs1XSx0WzFdWzJdPWVbNl0sdFsyXVswXT1lWzhdLHRbMl1bMV09ZVs5XSx0WzJdWzJdPWVbMTBdfShwLHUpLHJbMF09Yy5sZW5ndGgocFswXSksYy5ub3JtYWxpemUocFswXSxwWzBdKSxpWzBdPWMuZG90KHBbMF0scFsxXSksbShwWzFdLHBbMV0scFswXSwxLC1pWzBdKSxyWzFdPWMubGVuZ3RoKHBbMV0pLGMubm9ybWFsaXplKHBbMV0scFsxXSksaVswXS89clsxXSxpWzFdPWMuZG90KHBbMF0scFsyXSksbShwWzJdLHBbMl0scFswXSwxLC1pWzFdKSxpWzJdPWMuZG90KHBbMV0scFsyXSksbShwWzJdLHBbMl0scFsxXSwxLC1pWzJdKSxyWzJdPWMubGVuZ3RoKHBbMl0pLGMubm9ybWFsaXplKHBbMl0scFsyXSksaVsxXS89clsyXSxpWzJdLz1yWzJdLGMuY3Jvc3MoZCxwWzFdLHBbMl0pLGMuZG90KHBbMF0sZCk8MClmb3IodmFyIEk9MDtJPDM7SSsrKXJbSV0qPS0xLHBbSV1bMF0qPS0xLHBbSV1bMV0qPS0xLHBbSV1bMl0qPS0xO3JldHVybiB2WzBdPS41Kk1hdGguc3FydChNYXRoLm1heCgxK3BbMF1bMF0tcFsxXVsxXS1wWzJdWzJdLDApKSx2WzFdPS41Kk1hdGguc3FydChNYXRoLm1heCgxLXBbMF1bMF0rcFsxXVsxXS1wWzJdWzJdLDApKSx2WzJdPS41Kk1hdGguc3FydChNYXRoLm1heCgxLXBbMF1bMF0tcFsxXVsxXStwWzJdWzJdLDApKSx2WzNdPS41Kk1hdGguc3FydChNYXRoLm1heCgxK3BbMF1bMF0rcFsxXVsxXStwWzJdWzJdLDApKSxwWzJdWzFdPnBbMV1bMl0mJih2WzBdPS12WzBdKSxwWzBdWzJdPnBbMl1bMF0mJih2WzFdPS12WzFdKSxwWzFdWzBdPnBbMF1bMV0mJih2WzJdPS12WzJdKSwhMH19LHsiLi9ub3JtYWxpemUiOjQ0MywiZ2wtbWF0NC9jbG9uZSI6MjcyLCJnbC1tYXQ0L2NyZWF0ZSI6Mjc0LCJnbC1tYXQ0L2RldGVybWluYW50IjoyNzUsImdsLW1hdDQvaW52ZXJ0IjoyODcsImdsLW1hdDQvdHJhbnNwb3NlIjozMDAsImdsLXZlYzMvY3Jvc3MiOjM1MCwiZ2wtdmVjMy9kb3QiOjM1NSwiZ2wtdmVjMy9sZW5ndGgiOjM2NSwiZ2wtdmVjMy9ub3JtYWxpemUiOjM3Mn1dLDQ0MzpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMTVdO2lmKDA9PT1yKXJldHVybiExO2Zvcih2YXIgbj0xL3IsaT0wO2k8MTY7aSsrKXRbaV09ZVtpXSpuO3JldHVybiEwfX0se31dLDQ0NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoImdsLXZlYzMvbGVycCIpLGk9dCgibWF0NC1yZWNvbXBvc2UiKSxhPXQoIm1hdDQtZGVjb21wb3NlIiksbz10KCJnbC1tYXQ0L2RldGVybWluYW50Iikscz10KCJxdWF0LXNsZXJwIiksbD1mKCksYz1mKCksdT1mKCk7ZnVuY3Rpb24gZigpe3JldHVybnt0cmFuc2xhdGU6aCgpLHNjYWxlOmgoMSksc2tldzpoKCkscGVyc3BlY3RpdmU6WzAsMCwwLDFdLHF1YXRlcm5pb246WzAsMCwwLDFdfX1mdW5jdGlvbiBoKHQpe3JldHVyblt0fHwwLHR8fDAsdHx8MF19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGYpe2lmKDA9PT1vKGUpfHwwPT09byhyKSlyZXR1cm4hMTt2YXIgaD1hKGUsbC50cmFuc2xhdGUsbC5zY2FsZSxsLnNrZXcsbC5wZXJzcGVjdGl2ZSxsLnF1YXRlcm5pb24pLHA9YShyLGMudHJhbnNsYXRlLGMuc2NhbGUsYy5za2V3LGMucGVyc3BlY3RpdmUsYy5xdWF0ZXJuaW9uKTtyZXR1cm4hKCFofHwhcCkmJihuKHUudHJhbnNsYXRlLGwudHJhbnNsYXRlLGMudHJhbnNsYXRlLGYpLG4odS5za2V3LGwuc2tldyxjLnNrZXcsZiksbih1LnNjYWxlLGwuc2NhbGUsYy5zY2FsZSxmKSxuKHUucGVyc3BlY3RpdmUsbC5wZXJzcGVjdGl2ZSxjLnBlcnNwZWN0aXZlLGYpLHModS5xdWF0ZXJuaW9uLGwucXVhdGVybmlvbixjLnF1YXRlcm5pb24sZiksaSh0LHUudHJhbnNsYXRlLHUuc2NhbGUsdS5za2V3LHUucGVyc3BlY3RpdmUsdS5xdWF0ZXJuaW9uKSwhMCl9fSx7ImdsLW1hdDQvZGV0ZXJtaW5hbnQiOjI3NSwiZ2wtdmVjMy9sZXJwIjozNjYsIm1hdDQtZGVjb21wb3NlIjo0NDIsIm1hdDQtcmVjb21wb3NlIjo0NDUsInF1YXQtc2xlcnAiOjUwNX1dLDQ0NTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXtpZGVudGl0eTp0KCJnbC1tYXQ0L2lkZW50aXR5IiksdHJhbnNsYXRlOnQoImdsLW1hdDQvdHJhbnNsYXRlIiksbXVsdGlwbHk6dCgiZ2wtbWF0NC9tdWx0aXBseSIpLGNyZWF0ZTp0KCJnbC1tYXQ0L2NyZWF0ZSIpLHNjYWxlOnQoImdsLW1hdDQvc2NhbGUiKSxmcm9tUm90YXRpb25UcmFuc2xhdGlvbjp0KCJnbC1tYXQ0L2Zyb21Sb3RhdGlvblRyYW5zbGF0aW9uIil9LGk9KG4uY3JlYXRlKCksbi5jcmVhdGUoKSk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbyxzKXtyZXR1cm4gbi5pZGVudGl0eSh0KSxuLmZyb21Sb3RhdGlvblRyYW5zbGF0aW9uKHQscyxlKSx0WzNdPW9bMF0sdFs3XT1vWzFdLHRbMTFdPW9bMl0sdFsxNV09b1szXSxuLmlkZW50aXR5KGkpLDAhPT1hWzJdJiYoaVs5XT1hWzJdLG4ubXVsdGlwbHkodCx0LGkpKSwwIT09YVsxXSYmKGlbOV09MCxpWzhdPWFbMV0sbi5tdWx0aXBseSh0LHQsaSkpLDAhPT1hWzBdJiYoaVs4XT0wLGlbNF09YVswXSxuLm11bHRpcGx5KHQsdCxpKSksbi5zY2FsZSh0LHQsciksdH19LHsiZ2wtbWF0NC9jcmVhdGUiOjI3NCwiZ2wtbWF0NC9mcm9tUm90YXRpb25UcmFuc2xhdGlvbiI6Mjc4LCJnbC1tYXQ0L2lkZW50aXR5IjoyODUsImdsLW1hdDQvbXVsdGlwbHkiOjI4OSwiZ2wtbWF0NC9zY2FsZSI6Mjk3LCJnbC1tYXQ0L3RyYW5zbGF0ZSI6Mjk5fV0sNDQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1NYXRoLmxvZzJ8fGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLmxvZyh0KSpNYXRoLkxPRzJFfX0se31dLDQ0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiaW5hcnktc2VhcmNoLWJvdW5kcyIpLGk9dCgibWF0NC1pbnRlcnBvbGF0ZSIpLGE9dCgiZ2wtbWF0NC9pbnZlcnQiKSxvPXQoImdsLW1hdDQvcm90YXRlWCIpLHM9dCgiZ2wtbWF0NC9yb3RhdGVZIiksbD10KCJnbC1tYXQ0L3JvdGF0ZVoiKSxjPXQoImdsLW1hdDQvbG9va0F0IiksdT10KCJnbC1tYXQ0L3RyYW5zbGF0ZSIpLGY9KHQoImdsLW1hdDQvc2NhbGUiKSx0KCJnbC12ZWMzL25vcm1hbGl6ZSIpKSxoPVswLDAsMF07ZnVuY3Rpb24gcCh0KXt0aGlzLl9jb21wb25lbnRzPXQuc2xpY2UoKSx0aGlzLl90aW1lPVswXSx0aGlzLnByZXZNYXRyaXg9dC5zbGljZSgpLHRoaXMubmV4dE1hdHJpeD10LnNsaWNlKCksdGhpcy5jb21wdXRlZE1hdHJpeD10LnNsaWNlKCksdGhpcy5jb21wdXRlZEludmVyc2U9dC5zbGljZSgpLHRoaXMuY29tcHV0ZWRFeWU9WzAsMCwwXSx0aGlzLmNvbXB1dGVkVXA9WzAsMCwwXSx0aGlzLmNvbXB1dGVkQ2VudGVyPVswLDAsMF0sdGhpcy5jb21wdXRlZFJhZGl1cz1bMF0sdGhpcy5fbGltaXRzPVstMS8wLDEvMF19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgcCgodD10fHx7fSkubWF0cml4fHxbMSwwLDAsMCwwLDEsMCwwLDAsMCwxLDAsMCwwLDAsMV0pfTt2YXIgZD1wLnByb3RvdHlwZTtkLnJlY2FsY01hdHJpeD1mdW5jdGlvbih0KXt2YXIgZT10aGlzLl90aW1lLHI9bi5sZShlLHQpLG89dGhpcy5jb21wdXRlZE1hdHJpeDtpZighKHI8MCkpe3ZhciBzPXRoaXMuX2NvbXBvbmVudHM7aWYocj09PWUubGVuZ3RoLTEpZm9yKHZhciBsPTE2KnIsYz0wO2M8MTY7KytjKW9bY109c1tsKytdO2Vsc2V7dmFyIHU9ZVtyKzFdLWVbcl0saD0obD0xNipyLHRoaXMucHJldk1hdHJpeCkscD0hMDtmb3IoYz0wO2M8MTY7KytjKWhbY109c1tsKytdO3ZhciBkPXRoaXMubmV4dE1hdHJpeDtmb3IoYz0wO2M8MTY7KytjKWRbY109c1tsKytdLHA9cCYmaFtjXT09PWRbY107aWYodTwxZS02fHxwKWZvcihjPTA7YzwxNjsrK2Mpb1tjXT1oW2NdO2Vsc2UgaShvLGgsZCwodC1lW3JdKS91KX12YXIgbT10aGlzLmNvbXB1dGVkVXA7bVswXT1vWzFdLG1bMV09b1s1XSxtWzJdPW9bOV0sZihtLG0pO3ZhciBnPXRoaXMuY29tcHV0ZWRJbnZlcnNlO2EoZyxvKTt2YXIgdj10aGlzLmNvbXB1dGVkRXllLHk9Z1sxNV07dlswXT1nWzEyXS95LHZbMV09Z1sxM10veSx2WzJdPWdbMTRdL3k7dmFyIHg9dGhpcy5jb21wdXRlZENlbnRlcixiPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO2ZvcihjPTA7YzwzOysrYyl4W2NdPXZbY10tb1syKzQqY10qYn19LGQuaWRsZT1mdW5jdGlvbih0KXtpZighKHQ8dGhpcy5sYXN0VCgpKSl7Zm9yKHZhciBlPXRoaXMuX2NvbXBvbmVudHMscj1lLmxlbmd0aC0xNixuPTA7bjwxNjsrK24pZS5wdXNoKGVbcisrXSk7dGhpcy5fdGltZS5wdXNoKHQpfX0sZC5mbHVzaD1mdW5jdGlvbih0KXt2YXIgZT1uLmd0KHRoaXMuX3RpbWUsdCktMjtlPDB8fCh0aGlzLl90aW1lLnNwbGljZSgwLGUpLHRoaXMuX2NvbXBvbmVudHMuc3BsaWNlKDAsMTYqZSkpfSxkLmxhc3RUPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3RpbWVbdGhpcy5fdGltZS5sZW5ndGgtMV19LGQubG9va0F0PWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMucmVjYWxjTWF0cml4KHQpLGU9ZXx8dGhpcy5jb21wdXRlZEV5ZSxyPXJ8fGgsbj1ufHx0aGlzLmNvbXB1dGVkVXAsdGhpcy5zZXRNYXRyaXgodCxjKHRoaXMuY29tcHV0ZWRNYXRyaXgsZSxyLG4pKTtmb3IodmFyIGk9MCxhPTA7YTwzOysrYSlpKz1NYXRoLnBvdyhyW2FdLWVbYV0sMik7aT1NYXRoLmxvZyhNYXRoLnNxcnQoaSkpLHRoaXMuY29tcHV0ZWRSYWRpdXNbMF09aX0sZC5yb3RhdGU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIGk9dGhpcy5jb21wdXRlZEludmVyc2U7ZSYmcyhpLGksZSksciYmbyhpLGksciksbiYmbChpLGksbiksdGhpcy5zZXRNYXRyaXgodCxhKHRoaXMuY29tcHV0ZWRNYXRyaXgsaSkpfTt2YXIgbT1bMCwwLDBdO2QucGFuPWZ1bmN0aW9uKHQsZSxyLG4pe21bMF09LShlfHwwKSxtWzFdPS0ocnx8MCksbVsyXT0tKG58fDApLHRoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBpPXRoaXMuY29tcHV0ZWRJbnZlcnNlO3UoaSxpLG0pLHRoaXMuc2V0TWF0cml4KHQsYShpLGkpKX0sZC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIsbil7bVswXT1lfHwwLG1bMV09cnx8MCxtWzJdPW58fDAsdGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIGk9dGhpcy5jb21wdXRlZE1hdHJpeDt1KGksaSxtKSx0aGlzLnNldE1hdHJpeCh0LGkpfSxkLnNldE1hdHJpeD1mdW5jdGlvbih0LGUpe2lmKCEodDx0aGlzLmxhc3RUKCkpKXt0aGlzLl90aW1lLnB1c2godCk7Zm9yKHZhciByPTA7cjwxNjsrK3IpdGhpcy5fY29tcG9uZW50cy5wdXNoKGVbcl0pfX0sZC5zZXREaXN0YW5jZT1mdW5jdGlvbih0LGUpe3RoaXMuY29tcHV0ZWRSYWRpdXNbMF09ZX0sZC5zZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX2xpbWl0cztyWzBdPXQsclsxXT1lfSxkLmdldERpc3RhbmNlTGltaXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2xpbWl0cztyZXR1cm4gdD8odFswXT1lWzBdLHRbMV09ZVsxXSx0KTplfX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTAwLCJnbC1tYXQ0L2ludmVydCI6Mjg3LCJnbC1tYXQ0L2xvb2tBdCI6Mjg4LCJnbC1tYXQ0L3JvdGF0ZVgiOjI5NCwiZ2wtbWF0NC9yb3RhdGVZIjoyOTUsImdsLW1hdDQvcm90YXRlWiI6Mjk2LCJnbC1tYXQ0L3NjYWxlIjoyOTcsImdsLW1hdDQvdHJhbnNsYXRlIjoyOTksImdsLXZlYzMvbm9ybWFsaXplIjozNzIsIm1hdDQtaW50ZXJwb2xhdGUiOjQ0NH1dLDQ0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5sZW5ndGg7aWYoZTwzKXtmb3IodmFyIHI9bmV3IEFycmF5KGUpLGk9MDtpPGU7KytpKXJbaV09aTtyZXR1cm4gMj09PWUmJnRbMF1bMF09PT10WzFdWzBdJiZ0WzBdWzFdPT09dFsxXVsxXT9bMF06cn12YXIgYT1uZXcgQXJyYXkoZSk7Zm9yKGk9MDtpPGU7KytpKWFbaV09aTthLnNvcnQoKGZ1bmN0aW9uKGUscil7dmFyIG49dFtlXVswXS10W3JdWzBdO3JldHVybiBufHx0W2VdWzFdLXRbcl1bMV19KSk7dmFyIG89W2FbMF0sYVsxXV0scz1bYVswXSxhWzFdXTtmb3IoaT0yO2k8ZTsrK2kpe2Zvcih2YXIgbD1hW2ldLGM9dFtsXSx1PW8ubGVuZ3RoO3U+MSYmbih0W29bdS0yXV0sdFtvW3UtMV1dLGMpPD0wOyl1LT0xLG8ucG9wKCk7Zm9yKG8ucHVzaChsKSx1PXMubGVuZ3RoO3U+MSYmbih0W3NbdS0yXV0sdFtzW3UtMV1dLGMpPj0wOyl1LT0xLHMucG9wKCk7cy5wdXNoKGwpfXI9bmV3IEFycmF5KHMubGVuZ3RoK28ubGVuZ3RoLTIpO2Zvcih2YXIgZj0wLGg9KGk9MCxvLmxlbmd0aCk7aTxoOysraSlyW2YrK109b1tpXTtmb3IodmFyIHA9cy5sZW5ndGgtMjtwPjA7LS1wKXJbZisrXT1zW3BdO3JldHVybiByfTt2YXIgbj10KCJyb2J1c3Qtb3JpZW50YXRpb24iKVszXX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjUyNH1dLDQ0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT10LHQ9d2luZG93KTt2YXIgcj0wLGk9MCxhPTAsbz17c2hpZnQ6ITEsYWx0OiExLGNvbnRyb2w6ITEsbWV0YTohMX0scz0hMTtmdW5jdGlvbiBsKHQpe3ZhciBlPSExO3JldHVybiJhbHRLZXkiaW4gdCYmKGU9ZXx8dC5hbHRLZXkhPT1vLmFsdCxvLmFsdD0hIXQuYWx0S2V5KSwic2hpZnRLZXkiaW4gdCYmKGU9ZXx8dC5zaGlmdEtleSE9PW8uc2hpZnQsby5zaGlmdD0hIXQuc2hpZnRLZXkpLCJjdHJsS2V5ImluIHQmJihlPWV8fHQuY3RybEtleSE9PW8uY29udHJvbCxvLmNvbnRyb2w9ISF0LmN0cmxLZXkpLCJtZXRhS2V5ImluIHQmJihlPWV8fHQubWV0YUtleSE9PW8ubWV0YSxvLm1ldGE9ISF0Lm1ldGFLZXkpLGV9ZnVuY3Rpb24gYyh0LHMpe3ZhciBjPW4ueChzKSx1PW4ueShzKTsiYnV0dG9ucyJpbiBzJiYodD0wfHMuYnV0dG9ucyksKHQhPT1yfHxjIT09aXx8dSE9PWF8fGwocykpJiYocj0wfHQsaT1jfHwwLGE9dXx8MCxlJiZlKHIsaSxhLG8pKX1mdW5jdGlvbiB1KHQpe2MoMCx0KX1mdW5jdGlvbiBmKCl7KHJ8fGl8fGF8fG8uc2hpZnR8fG8uYWx0fHxvLm1ldGF8fG8uY29udHJvbCkmJihpPWE9MCxyPTAsby5zaGlmdD1vLmFsdD1vLmNvbnRyb2w9by5tZXRhPSExLGUmJmUoMCwwLDAsbykpfWZ1bmN0aW9uIGgodCl7bCh0KSYmZSYmZShyLGksYSxvKX1mdW5jdGlvbiBwKHQpezA9PT1uLmJ1dHRvbnModCk/YygwLHQpOmMocix0KX1mdW5jdGlvbiBkKHQpe2MocnxuLmJ1dHRvbnModCksdCl9ZnVuY3Rpb24gbSh0KXtjKHImfm4uYnV0dG9ucyh0KSx0KX1mdW5jdGlvbiBnKCl7c3x8KHM9ITAsdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHApLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIixkKSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLG0pLHQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VsZWF2ZSIsdSksdC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWVudGVyIix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0Iix1KSx0LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsdSksdC5hZGRFdmVudExpc3RlbmVyKCJibHVyIixmKSx0LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixoKSx0LmFkZEV2ZW50TGlzdGVuZXIoImtleWRvd24iLGgpLHQuYWRkRXZlbnRMaXN0ZW5lcigia2V5cHJlc3MiLGgpLHQhPT13aW5kb3cmJih3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsZiksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXVwIixoKSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigia2V5ZG93biIsaCksd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoImtleXByZXNzIixoKSkpfWcoKTt2YXIgdj17ZWxlbWVudDp0fTtyZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnRpZXModix7ZW5hYmxlZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHN9LHNldDpmdW5jdGlvbihlKXtlP2coKTpmdW5jdGlvbigpe2lmKCFzKXJldHVybjtzPSExLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIixwKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsZCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixtKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1vdXNlbGVhdmUiLHUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2VlbnRlciIsdSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsdSksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW92ZXIiLHUpLHQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiYmx1ciIsZiksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsaCksdC5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlkb3duIixoKSx0LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleXByZXNzIixoKSx0IT09d2luZG93JiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImJsdXIiLGYpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXl1cCIsaCksd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoImtleWRvd24iLGgpLHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJrZXlwcmVzcyIsaCkpfSgpfSxlbnVtZXJhYmxlOiEwfSxidXR0b25zOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gcn0sZW51bWVyYWJsZTohMH0seDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGl9LGVudW1lcmFibGU6ITB9LHk6e2dldDpmdW5jdGlvbigpe3JldHVybiBhfSxlbnVtZXJhYmxlOiEwfSxtb2RzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gb30sZW51bWVyYWJsZTohMH19KSx2fTt2YXIgbj10KCJtb3VzZS1ldmVudCIpfSx7Im1vdXNlLWV2ZW50Ijo0NTF9XSw0NTA6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj17bGVmdDowLHRvcDowfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2U9ZXx8dC5jdXJyZW50VGFyZ2V0fHx0LnNyY0VsZW1lbnQsQXJyYXkuaXNBcnJheShyKXx8KHI9WzAsMF0pO3ZhciBpPXQuY2xpZW50WHx8MCxhPXQuY2xpZW50WXx8MCxvPShzPWUscz09PXdpbmRvd3x8cz09PWRvY3VtZW50fHxzPT09ZG9jdW1lbnQuYm9keT9uOnMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpO3ZhciBzO3JldHVybiByWzBdPWktby5sZWZ0LHJbMV09YS1vLnRvcCxyfX0se31dLDQ1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3JldHVybiB0LnRhcmdldHx8dC5zcmNFbGVtZW50fHx3aW5kb3d9ci5idXR0b25zPWZ1bmN0aW9uKHQpe2lmKCJvYmplY3QiPT10eXBlb2YgdCl7aWYoImJ1dHRvbnMiaW4gdClyZXR1cm4gdC5idXR0b25zO2lmKCJ3aGljaCJpbiB0KXtpZigyPT09KGU9dC53aGljaCkpcmV0dXJuIDQ7aWYoMz09PWUpcmV0dXJuIDI7aWYoZT4wKXJldHVybiAxPDxlLTF9ZWxzZSBpZigiYnV0dG9uImluIHQpe3ZhciBlO2lmKDE9PT0oZT10LmJ1dHRvbikpcmV0dXJuIDQ7aWYoMj09PWUpcmV0dXJuIDI7aWYoZT49MClyZXR1cm4gMTw8ZX19cmV0dXJuIDB9LHIuZWxlbWVudD1uLHIueD1mdW5jdGlvbih0KXtpZigib2JqZWN0Ij09dHlwZW9mIHQpe2lmKCJvZmZzZXRYImluIHQpcmV0dXJuIHQub2Zmc2V0WDt2YXIgZT1uKHQpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3JldHVybiB0LmNsaWVudFgtZS5sZWZ0fXJldHVybiAwfSxyLnk9ZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0KXtpZigib2Zmc2V0WSJpbiB0KXJldHVybiB0Lm9mZnNldFk7dmFyIGU9bih0KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyZXR1cm4gdC5jbGllbnRZLWUudG9wfXJldHVybiAwfX0se31dLDQ1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0by1weCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ImZ1bmN0aW9uIj09dHlwZW9mIHQmJihyPSEhZSxlPXQsdD13aW5kb3cpO3ZhciBpPW4oImV4Iix0KSxhPWZ1bmN0aW9uKHQpe3ImJnQucHJldmVudERlZmF1bHQoKTt2YXIgbj10LmRlbHRhWHx8MCxhPXQuZGVsdGFZfHwwLG89dC5kZWx0YVp8fDAscz0xO3N3aXRjaCh0LmRlbHRhTW9kZSl7Y2FzZSAxOnM9aTticmVhaztjYXNlIDI6cz13aW5kb3cuaW5uZXJIZWlnaHR9aWYoYSo9cyxvKj1zLChuKj1zKXx8YXx8bylyZXR1cm4gZShuLGEsbyx0KX07cmV0dXJuIHQuYWRkRXZlbnRMaXN0ZW5lcigid2hlZWwiLGEpLGF9fSx7InRvLXB4Ijo1NzR9XSw0NTM6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24odCxyKXsoZnVuY3Rpb24oKXsKLyohIE5hdGl2ZSBQcm9taXNlIE9ubHkKICAgIHYwLjguMSAoYykgS3lsZSBTaW1wc29uCiAgICBNSVQgTGljZW5zZTogaHR0cDovL2dldGlmeS5taXQtbGljZW5zZS5vcmcKKi8KIWZ1bmN0aW9uKHQscixuKXtyW3RdPXJbdF18fG4oKSx2b2lkIDAhPT1lJiZlLmV4cG9ydHMmJihlLmV4cG9ydHM9clt0XSl9KCJQcm9taXNlIix2b2lkIDAhPT10P3Q6dGhpcywoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIHQsZSxuLGk9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyxhPXZvaWQgMCE9PXI/ZnVuY3Rpb24odCl7cmV0dXJuIHIodCl9OnNldFRpbWVvdXQ7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwieCIse30pLHQ9ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LGUse3ZhbHVlOnIsd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiExIT09bn0pfX1jYXRjaChlKXt0PWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdFtlXT1yLHR9fWZ1bmN0aW9uIG8odCxyKXtuLmFkZCh0LHIpLGV8fChlPWEobi5kcmFpbikpfWZ1bmN0aW9uIHModCl7dmFyIGUscj10eXBlb2YgdDtyZXR1cm4gbnVsbD09dHx8Im9iamVjdCIhPXImJiJmdW5jdGlvbiIhPXJ8fChlPXQudGhlbiksImZ1bmN0aW9uIj09dHlwZW9mIGUmJmV9ZnVuY3Rpb24gbCgpe2Zvcih2YXIgdD0wO3Q8dGhpcy5jaGFpbi5sZW5ndGg7dCsrKWModGhpcywxPT09dGhpcy5zdGF0ZT90aGlzLmNoYWluW3RdLnN1Y2Nlc3M6dGhpcy5jaGFpblt0XS5mYWlsdXJlLHRoaXMuY2hhaW5bdF0pO3RoaXMuY2hhaW4ubGVuZ3RoPTB9ZnVuY3Rpb24gYyh0LGUscil7dmFyIG4saTt0cnl7ITE9PT1lP3IucmVqZWN0KHQubXNnKToobj0hMD09PWU/dC5tc2c6ZS5jYWxsKHZvaWQgMCx0Lm1zZykpPT09ci5wcm9taXNlP3IucmVqZWN0KFR5cGVFcnJvcigiUHJvbWlzZS1jaGFpbiBjeWNsZSIpKTooaT1zKG4pKT9pLmNhbGwobixyLnJlc29sdmUsci5yZWplY3QpOnIucmVzb2x2ZShuKX1jYXRjaCh0KXtyLnJlamVjdCh0KX19ZnVuY3Rpb24gdSh0KXt2YXIgZSxyPXRoaXM7aWYoIXIudHJpZ2dlcmVkKXtyLnRyaWdnZXJlZD0hMCxyLmRlZiYmKHI9ci5kZWYpO3RyeXsoZT1zKHQpKT9vKChmdW5jdGlvbigpe3ZhciBuPW5ldyBwKHIpO3RyeXtlLmNhbGwodCwoZnVuY3Rpb24oKXt1LmFwcGx5KG4sYXJndW1lbnRzKX0pLChmdW5jdGlvbigpe2YuYXBwbHkobixhcmd1bWVudHMpfSkpfWNhdGNoKHQpe2YuY2FsbChuLHQpfX0pKTooci5tc2c9dCxyLnN0YXRlPTEsci5jaGFpbi5sZW5ndGg+MCYmbyhsLHIpKX1jYXRjaCh0KXtmLmNhbGwobmV3IHAociksdCl9fX1mdW5jdGlvbiBmKHQpe3ZhciBlPXRoaXM7ZS50cmlnZ2VyZWR8fChlLnRyaWdnZXJlZD0hMCxlLmRlZiYmKGU9ZS5kZWYpLGUubXNnPXQsZS5zdGF0ZT0yLGUuY2hhaW4ubGVuZ3RoPjAmJm8obCxlKSl9ZnVuY3Rpb24gaCh0LGUscixuKXtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKykhZnVuY3Rpb24oaSl7dC5yZXNvbHZlKGVbaV0pLnRoZW4oKGZ1bmN0aW9uKHQpe3IoaSx0KX0pLG4pfShpKX1mdW5jdGlvbiBwKHQpe3RoaXMuZGVmPXQsdGhpcy50cmlnZ2VyZWQ9ITF9ZnVuY3Rpb24gZCh0KXt0aGlzLnByb21pc2U9dCx0aGlzLnN0YXRlPTAsdGhpcy50cmlnZ2VyZWQ9ITEsdGhpcy5jaGFpbj1bXSx0aGlzLm1zZz12b2lkIDB9ZnVuY3Rpb24gbSh0KXtpZigiZnVuY3Rpb24iIT10eXBlb2YgdCl0aHJvdyBUeXBlRXJyb3IoIk5vdCBhIGZ1bmN0aW9uIik7aWYoMCE9PXRoaXMuX19OUE9fXyl0aHJvdyBUeXBlRXJyb3IoIk5vdCBhIHByb21pc2UiKTt0aGlzLl9fTlBPX189MTt2YXIgZT1uZXcgZCh0aGlzKTt0aGlzLnRoZW49ZnVuY3Rpb24odCxyKXt2YXIgbj17c3VjY2VzczoiZnVuY3Rpb24iIT10eXBlb2YgdHx8dCxmYWlsdXJlOiJmdW5jdGlvbiI9PXR5cGVvZiByJiZyfTtyZXR1cm4gbi5wcm9taXNlPW5ldyB0aGlzLmNvbnN0cnVjdG9yKChmdW5jdGlvbih0LGUpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiB0fHwiZnVuY3Rpb24iIT10eXBlb2YgZSl0aHJvdyBUeXBlRXJyb3IoIk5vdCBhIGZ1bmN0aW9uIik7bi5yZXNvbHZlPXQsbi5yZWplY3Q9ZX0pKSxlLmNoYWluLnB1c2gobiksMCE9PWUuc3RhdGUmJm8obCxlKSxuLnByb21pc2V9LHRoaXMuY2F0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAsdCl9O3RyeXt0LmNhbGwodm9pZCAwLChmdW5jdGlvbih0KXt1LmNhbGwoZSx0KX0pLChmdW5jdGlvbih0KXtmLmNhbGwoZSx0KX0pKX1jYXRjaCh0KXtmLmNhbGwoZSx0KX19bj1mdW5jdGlvbigpe3ZhciB0LHIsbjtmdW5jdGlvbiBpKHQsZSl7dGhpcy5mbj10LHRoaXMuc2VsZj1lLHRoaXMubmV4dD12b2lkIDB9cmV0dXJue2FkZDpmdW5jdGlvbihlLGEpe249bmV3IGkoZSxhKSxyP3IubmV4dD1uOnQ9bixyPW4sbj12b2lkIDB9LGRyYWluOmZ1bmN0aW9uKCl7dmFyIG49dDtmb3IodD1yPWU9dm9pZCAwO247KW4uZm4uY2FsbChuLnNlbGYpLG49bi5uZXh0fX19KCk7dmFyIGc9dCh7fSwiY29uc3RydWN0b3IiLG0sITEpO3JldHVybiBtLnByb3RvdHlwZT1nLHQoZywiX19OUE9fXyIsMCwhMSksdChtLCJyZXNvbHZlIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQmJiJvYmplY3QiPT10eXBlb2YgdCYmMT09PXQuX19OUE9fXz90Om5ldyB0aGlzKChmdW5jdGlvbihlLHIpe2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlfHwiZnVuY3Rpb24iIT10eXBlb2Ygcil0aHJvdyBUeXBlRXJyb3IoIk5vdCBhIGZ1bmN0aW9uIik7ZSh0KX0pKX0pKSx0KG0sInJlamVjdCIsKGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgdGhpcygoZnVuY3Rpb24oZSxyKXtpZigiZnVuY3Rpb24iIT10eXBlb2YgZXx8ImZ1bmN0aW9uIiE9dHlwZW9mIHIpdGhyb3cgVHlwZUVycm9yKCJOb3QgYSBmdW5jdGlvbiIpO3IodCl9KSl9KSksdChtLCJhbGwiLChmdW5jdGlvbih0KXt2YXIgZT10aGlzO3JldHVybiJbb2JqZWN0IEFycmF5XSIhPWkuY2FsbCh0KT9lLnJlamVjdChUeXBlRXJyb3IoIk5vdCBhbiBhcnJheSIpKTowPT09dC5sZW5ndGg/ZS5yZXNvbHZlKFtdKTpuZXcgZSgoZnVuY3Rpb24ocixuKXtpZigiZnVuY3Rpb24iIT10eXBlb2Ygcnx8ImZ1bmN0aW9uIiE9dHlwZW9mIG4pdGhyb3cgVHlwZUVycm9yKCJOb3QgYSBmdW5jdGlvbiIpO3ZhciBpPXQubGVuZ3RoLGE9QXJyYXkoaSksbz0wO2goZSx0LChmdW5jdGlvbih0LGUpe2FbdF09ZSwrK289PT1pJiZyKGEpfSksbil9KSl9KSksdChtLCJyYWNlIiwoZnVuY3Rpb24odCl7dmFyIGU9dGhpcztyZXR1cm4iW29iamVjdCBBcnJheV0iIT1pLmNhbGwodCk/ZS5yZWplY3QoVHlwZUVycm9yKCJOb3QgYW4gYXJyYXkiKSk6bmV3IGUoKGZ1bmN0aW9uKHIsbil7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHJ8fCJmdW5jdGlvbiIhPXR5cGVvZiBuKXRocm93IFR5cGVFcnJvcigiTm90IGEgZnVuY3Rpb24iKTtoKGUsdCwoZnVuY3Rpb24odCxlKXtyKGUpfSksbil9KSl9KSksbX0pKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSx0KCJ0aW1lcnMiKS5zZXRJbW1lZGlhdGUpfSx7dGltZXJzOjU3MX1dLDQ1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0eXBlZGFycmF5LXBvb2wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXt0aHJvdyBuZXcgRXJyb3IoIm5kYXJyYXktZXh0cmFjdC1jb250b3VyOiAiK3QpfSJvYmplY3QiIT10eXBlb2YgdCYmZSgiTXVzdCBzcGVjaWZ5IGFyZ3VtZW50cyIpO3ZhciByPXQub3JkZXI7QXJyYXkuaXNBcnJheShyKXx8ZSgiTXVzdCBzcGVjaWZ5IG9yZGVyIik7dmFyIGE9dC5hcnJheUFyZ3VtZW50c3x8MTthPDEmJmUoIk11c3QgaGF2ZSBhdCBsZWFzdCBvbmUgYXJyYXkgYXJndW1lbnQiKTt2YXIgbz10LnNjYWxhckFyZ3VtZW50c3x8MDtvPDAmJmUoIlNjYWxhciBhcmcgY291bnQgbXVzdCBiZSA+IDAiKTsiZnVuY3Rpb24iIT10eXBlb2YgdC52ZXJ0ZXgmJmUoIk11c3Qgc3BlY2lmeSB2ZXJ0ZXggY3JlYXRpb24gZnVuY3Rpb24iKTsiZnVuY3Rpb24iIT10eXBlb2YgdC5jZWxsJiZlKCJNdXN0IHNwZWNpZnkgY2VsbCBjcmVhdGlvbiBmdW5jdGlvbiIpOyJmdW5jdGlvbiIhPXR5cGVvZiB0LnBoYXNlJiZlKCJNdXN0IHNwZWNpZnkgcGhhc2UgZnVuY3Rpb24iKTtmb3IodmFyIHM9dC5nZXR0ZXJzfHxbXSxsPW5ldyBBcnJheShhKSxjPTA7YzxhOysrYylzLmluZGV4T2YoYyk+PTA/bFtjXT0hMDpsW2NdPSExO3JldHVybiBmdW5jdGlvbih0LGUscixhLG8scyl7dmFyIGw9W3Msb10uam9pbigiLCIpO3JldHVybigwLGlbbF0pKHQsZSxyLG4ubWFsbG9jVWludDMyLG4uZnJlZVVpbnQzMil9KHQudmVydGV4LHQuY2VsbCx0LnBoYXNlLDAscixsKX07dmFyIGk9eyJmYWxzZSwwLDEiOmZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIGZ1bmN0aW9uKGEsbyxzLGwpe3ZhciBjLHU9MHxhLnNoYXBlWzBdLGY9MHxhLnNoYXBlWzFdLGg9YS5kYXRhLHA9MHxhLm9mZnNldCxkPTB8YS5zdHJpZGVbMF0sbT0wfGEuc3RyaWRlWzFdLGc9cCx2PTB8LWQseT0wLHg9MHwtbSxiPTAsXz0tZC1tfDAsdz0wLFQ9MHxkLGs9bS1kKnV8MCxBPTAsTT0wLFM9MCxFPTIqdXwwLEw9bihFKSxDPW4oRSksUD0wLEk9MCxPPS0xLHo9LTEsRD0wLFI9MHwtdSxGPTB8dSxCPTAsTj0tdS0xfDAsaj11LTF8MCxVPTAsVj0wLEg9MDtmb3IoQT0wO0E8dTsrK0EpTFtQKytdPXIoaFtnXSxvLHMsbCksZys9VDtpZihnKz1rLGY+MCl7aWYoTT0xLExbUCsrXT1yKGhbZ10sbyxzLGwpLGcrPVQsdT4wKWZvcihBPTEsYz1oW2ddLEk9TFtQXT1yKGMsbyxzLGwpLEQ9TFtQK09dLEI9TFtQK1JdLFU9TFtQK05dLEk9PT1EJiZJPT09QiYmST09PVV8fCh5PWhbZyt2XSxiPWhbZyt4XSx3PWhbZytfXSx0KEEsTSxjLHksYix3LEksRCxCLFUsbyxzLGwpLFY9Q1tQXT1TKyspLFArPTEsZys9VCxBPTI7QTx1OysrQSljPWhbZ10sST1MW1BdPXIoYyxvLHMsbCksRD1MW1ArT10sQj1MW1ArUl0sVT1MW1ArTl0sST09PUQmJkk9PT1CJiZJPT09VXx8KHk9aFtnK3ZdLGI9aFtnK3hdLHc9aFtnK19dLHQoQSxNLGMseSxiLHcsSSxELEIsVSxvLHMsbCksVj1DW1BdPVMrKyxVIT09RCYmZShDW1ArT10sVix3LHksVSxELG8scyxsKSksUCs9MSxnKz1UO2ZvcihnKz1rLFA9MCxIPU8sTz16LHo9SCxIPVIsUj1GLEY9SCxIPU4sTj1qLGo9SCxNPTI7TTxmOysrTSl7aWYoTFtQKytdPXIoaFtnXSxvLHMsbCksZys9VCx1PjApZm9yKEE9MSxjPWhbZ10sST1MW1BdPXIoYyxvLHMsbCksRD1MW1ArT10sQj1MW1ArUl0sVT1MW1ArTl0sST09PUQmJkk9PT1CJiZJPT09VXx8KHk9aFtnK3ZdLGI9aFtnK3hdLHc9aFtnK19dLHQoQSxNLGMseSxiLHcsSSxELEIsVSxvLHMsbCksVj1DW1BdPVMrKyxVIT09QiYmZShDW1ArUl0sVixiLHcsQixVLG8scyxsKSksUCs9MSxnKz1ULEE9MjtBPHU7KytBKWM9aFtnXSxJPUxbUF09cihjLG8scyxsKSxEPUxbUCtPXSxCPUxbUCtSXSxVPUxbUCtOXSxJPT09RCYmST09PUImJkk9PT1VfHwoeT1oW2crdl0sYj1oW2creF0sdz1oW2crX10sdChBLE0sYyx5LGIsdyxJLEQsQixVLG8scyxsKSxWPUNbUF09UysrLFUhPT1CJiZlKENbUCtSXSxWLGIsdyxCLFUsbyxzLGwpLFUhPT1EJiZlKENbUCtPXSxWLHcseSxVLEQsbyxzLGwpKSxQKz0xLGcrPVQ7MSZNJiYoUD0wKSxIPU8sTz16LHo9SCxIPVIsUj1GLEY9SCxIPU4sTj1qLGo9SCxnKz1rfX1pKEMpLGkoTCl9fSwiZmFsc2UsMSwwIjpmdW5jdGlvbih0LGUscixuLGkpe3JldHVybiBmdW5jdGlvbihhLG8scyxsKXt2YXIgYyx1PTB8YS5zaGFwZVswXSxmPTB8YS5zaGFwZVsxXSxoPWEuZGF0YSxwPTB8YS5vZmZzZXQsZD0wfGEuc3RyaWRlWzBdLG09MHxhLnN0cmlkZVsxXSxnPXAsdj0wfC1kLHk9MCx4PTB8LW0sYj0wLF89LWQtbXwwLHc9MCxUPTB8bSxrPWQtbSpmfDAsQT0wLE09MCxTPTAsRT0yKmZ8MCxMPW4oRSksQz1uKEUpLFA9MCxJPTAsTz0tMSx6PS0xLEQ9MCxSPTB8LWYsRj0wfGYsQj0wLE49LWYtMXwwLGo9Zi0xfDAsVT0wLFY9MCxIPTA7Zm9yKE09MDtNPGY7KytNKUxbUCsrXT1yKGhbZ10sbyxzLGwpLGcrPVQ7aWYoZys9ayx1PjApe2lmKEE9MSxMW1ArK109cihoW2ddLG8scyxsKSxnKz1ULGY+MClmb3IoTT0xLGM9aFtnXSxJPUxbUF09cihjLG8scyxsKSxCPUxbUCtSXSxEPUxbUCtPXSxVPUxbUCtOXSxJPT09QiYmST09PUQmJkk9PT1VfHwoeT1oW2crdl0sYj1oW2creF0sdz1oW2crX10sdChBLE0sYyx5LGIsdyxJLEIsRCxVLG8scyxsKSxWPUNbUF09UysrKSxQKz0xLGcrPVQsTT0yO008ZjsrK00pYz1oW2ddLEk9TFtQXT1yKGMsbyxzLGwpLEI9TFtQK1JdLEQ9TFtQK09dLFU9TFtQK05dLEk9PT1CJiZJPT09RCYmST09PVV8fCh5PWhbZyt2XSxiPWhbZyt4XSx3PWhbZytfXSx0KEEsTSxjLHksYix3LEksQixELFUsbyxzLGwpLFY9Q1tQXT1TKyssVSE9PUQmJmUoQ1tQK09dLFYsYix3LEQsVSxvLHMsbCkpLFArPTEsZys9VDtmb3IoZys9ayxQPTAsSD1SLFI9RixGPUgsSD1PLE89eix6PUgsSD1OLE49aixqPUgsQT0yO0E8dTsrK0Epe2lmKExbUCsrXT1yKGhbZ10sbyxzLGwpLGcrPVQsZj4wKWZvcihNPTEsYz1oW2ddLEk9TFtQXT1yKGMsbyxzLGwpLEI9TFtQK1JdLEQ9TFtQK09dLFU9TFtQK05dLEk9PT1CJiZJPT09RCYmST09PVV8fCh5PWhbZyt2XSxiPWhbZyt4XSx3PWhbZytfXSx0KEEsTSxjLHksYix3LEksQixELFUsbyxzLGwpLFY9Q1tQXT1TKyssVSE9PUImJmUoQ1tQK1JdLFYsdyx5LFUsQixvLHMsbCkpLFArPTEsZys9VCxNPTI7TTxmOysrTSljPWhbZ10sST1MW1BdPXIoYyxvLHMsbCksQj1MW1ArUl0sRD1MW1ArT10sVT1MW1ArTl0sST09PUImJkk9PT1EJiZJPT09VXx8KHk9aFtnK3ZdLGI9aFtnK3hdLHc9aFtnK19dLHQoQSxNLGMseSxiLHcsSSxCLEQsVSxvLHMsbCksVj1DW1BdPVMrKyxVIT09RCYmZShDW1ArT10sVixiLHcsRCxVLG8scyxsKSxVIT09QiYmZShDW1ArUl0sVix3LHksVSxCLG8scyxsKSksUCs9MSxnKz1UOzEmQSYmKFA9MCksSD1SLFI9RixGPUgsSD1PLE89eix6PUgsSD1OLE49aixqPUgsZys9a319aShDKSxpKEwpfX19fSx7InR5cGVkYXJyYXktcG9vbCI6NTkwfV0sNDU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImR1cCIpLGk9e3plcm86ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dFswXTtufD0wO3ZhciBhPTAsbz1yWzBdO2ZvcihhPTA7YTxpOysrYSllW25dPTAsbis9b30sZmRUZW1wbGF0ZTE6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7dmFyIHM9dFswXSxsPXJbMF0sYz0tMSpsLHU9bDtufD0wLG98PTA7dmFyIGY9MCxoPWwscD1hWzBdO2ZvcihmPTA7ZjxzOysrZilpW29dPS41KihlW24rY10tZVtuK3VdKSxuKz1oLG8rPXB9LGZkVGVtcGxhdGUyOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8scyxsLGMpe3ZhciB1PXRbMF0sZj10WzFdLGg9clswXSxwPXJbMV0sZD1hWzBdLG09YVsxXSxnPWxbMF0sdj1sWzFdLHk9LTEqaCx4PWgsYj0tMSpwLF89cDtufD0wLG98PTAsY3w9MDt2YXIgdz0wLFQ9MCxrPXAsQT1oLWYqcCxNPW0sUz1kLWYqbSxFPXYsTD1nLWYqdjtmb3IoVD0wO1Q8dTsrK1Qpe2Zvcih3PTA7dzxmOysrdylpW29dPS41KihlW24reV0tZVtuK3hdKSxzW2NdPS41KihlW24rYl0tZVtuK19dKSxuKz1rLG8rPU0sYys9RTtuKz1BLG8rPVMsYys9TH19fSxhPXtjZGlmZjpmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocixuLGkpe3ZhciBhPXIuZHR5cGUsbz1yLm9yZGVyLHM9bi5kdHlwZSxsPW4ub3JkZXIsYz1pLmR0eXBlLHU9aS5vcmRlcixmPVthLG8uam9pbigpLHMsbC5qb2luKCksYyx1LmpvaW4oKV0uam9pbigpLGg9ZVtmXTtyZXR1cm4gaHx8KGVbZl09aD10KFthLG8scyxsLGMsdV0pKSxoKHIuc2hhcGUuc2xpY2UoMCksci5kYXRhLHIuc3RyaWRlLDB8ci5vZmZzZXQsbi5kYXRhLG4uc3RyaWRlLDB8bi5vZmZzZXQsaS5kYXRhLGkuc3RyaWRlLDB8aS5vZmZzZXQpfX0semVybzpmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocil7dmFyIG49ci5kdHlwZSxpPXIub3JkZXIsYT1bbixpLmpvaW4oKV0uam9pbigpLG89ZVthXTtyZXR1cm4gb3x8KGVbYV09bz10KFtuLGldKSksbyhyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0KX19LGZkVGVtcGxhdGUxOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4pe3ZhciBpPXIuZHR5cGUsYT1yLm9yZGVyLG89bi5kdHlwZSxzPW4ub3JkZXIsbD1baSxhLmpvaW4oKSxvLHMuam9pbigpXS5qb2luKCksYz1lW2xdO3JldHVybiBjfHwoZVtsXT1jPXQoW2ksYSxvLHNdKSksYyhyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0LG4uZGF0YSxuLnN0cmlkZSwwfG4ub2Zmc2V0KX19LGZkVGVtcGxhdGUyOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4saSl7dmFyIGE9ci5kdHlwZSxvPXIub3JkZXIscz1uLmR0eXBlLGw9bi5vcmRlcixjPWkuZHR5cGUsdT1pLm9yZGVyLGY9W2Esby5qb2luKCkscyxsLmpvaW4oKSxjLHUuam9pbigpXS5qb2luKCksaD1lW2ZdO3JldHVybiBofHwoZVtmXT1oPXQoW2EsbyxzLGwsYyx1XSkpLGgoci5zaGFwZS5zbGljZSgwKSxyLmRhdGEsci5zdHJpZGUsMHxyLm9mZnNldCxuLmRhdGEsbi5zdHJpZGUsMHxuLm9mZnNldCxpLmRhdGEsaS5zdHJpZGUsMHxpLm9mZnNldCl9fX07ZnVuY3Rpb24gbyh0KXtyZXR1cm4oMCxhW3QuZnVuY05hbWVdKShzLmJpbmQodm9pZCAwLHQpKX1mdW5jdGlvbiBzKHQpe3JldHVybiBpW3QuZnVuY05hbWVdfWZ1bmN0aW9uIGwodCl7cmV0dXJuIG8oe2Z1bmNOYW1lOnQuZnVuY05hbWV9KX12YXIgYz17fSx1PXt9LGY9bCh7ZnVuY05hbWU6ImNkaWZmIn0pLGg9bCh7ZnVuY05hbWU6Inplcm8ifSk7ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdCBpbiBjP2NbdF06Y1t0XT1sKHtmdW5jTmFtZToiZmRUZW1wbGF0ZSIrdH0pfWZ1bmN0aW9uIGQodCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKHQsaSl7dmFyIGE9aS5zaGFwZS5zbGljZSgpO3JldHVybiBhWzBdPjImJmFbMV0+MiYmbihpLnBpY2soLTEsLTEpLmxvKDEsMSkuaGkoYVswXS0yLGFbMV0tMiksdC5waWNrKC0xLC0xLDApLmxvKDEsMSkuaGkoYVswXS0yLGFbMV0tMiksdC5waWNrKC0xLC0xLDEpLmxvKDEsMSkuaGkoYVswXS0yLGFbMV0tMikpLGFbMV0+MiYmKHIoaS5waWNrKDAsLTEpLmxvKDEpLmhpKGFbMV0tMiksdC5waWNrKDAsLTEsMSkubG8oMSkuaGkoYVsxXS0yKSksZSh0LnBpY2soMCwtMSwwKS5sbygxKS5oaShhWzFdLTIpKSksYVsxXT4yJiYocihpLnBpY2soYVswXS0xLC0xKS5sbygxKS5oaShhWzFdLTIpLHQucGljayhhWzBdLTEsLTEsMSkubG8oMSkuaGkoYVsxXS0yKSksZSh0LnBpY2soYVswXS0xLC0xLDApLmxvKDEpLmhpKGFbMV0tMikpKSxhWzBdPjImJihyKGkucGljaygtMSwwKS5sbygxKS5oaShhWzBdLTIpLHQucGljaygtMSwwLDApLmxvKDEpLmhpKGFbMF0tMikpLGUodC5waWNrKC0xLDAsMSkubG8oMSkuaGkoYVswXS0yKSkpLGFbMF0+MiYmKHIoaS5waWNrKC0xLGFbMV0tMSkubG8oMSkuaGkoYVswXS0yKSx0LnBpY2soLTEsYVsxXS0xLDApLmxvKDEpLmhpKGFbMF0tMikpLGUodC5waWNrKC0xLGFbMV0tMSwxKS5sbygxKS5oaShhWzBdLTIpKSksdC5zZXQoMCwwLDAsMCksdC5zZXQoMCwwLDEsMCksdC5zZXQoYVswXS0xLDAsMCwwKSx0LnNldChhWzBdLTEsMCwxLDApLHQuc2V0KDAsYVsxXS0xLDAsMCksdC5zZXQoMCxhWzFdLTEsMSwwKSx0LnNldChhWzBdLTEsYVsxXS0xLDAsMCksdC5zZXQoYVswXS0xLGFbMV0tMSwxLDApLHR9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIEFycmF5LmlzQXJyYXkocil8fChyPW4oZS5kaW1lbnNpb24sInN0cmluZyI9PXR5cGVvZiByP3I6ImNsYW1wIikpLDA9PT1lLnNpemU/dDowPT09ZS5kaW1lbnNpb24/KHQuc2V0KDApLHQpOmZ1bmN0aW9uKHQpe3ZhciBlPXQuam9pbigpO2lmKGE9dVtlXSlyZXR1cm4gYTtmb3IodmFyIHI9dC5sZW5ndGgsbj1bZixoXSxpPTE7aTw9cjsrK2kpbi5wdXNoKHAoaSkpO3ZhciBhPWQuYXBwbHkodm9pZCAwLG4pO3JldHVybiB1W2VdPWEsYX0ocikodCxlKX19LHtkdXA6MTc3fV0sNDU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1NYXRoLmZsb29yKGUpLG49ZS1yLGk9MDw9ciYmcjx0LnNoYXBlWzBdLGE9MDw9cisxJiZyKzE8dC5zaGFwZVswXTtyZXR1cm4oMS1uKSooaT8rdC5nZXQocik6MCkrbiooYT8rdC5nZXQocisxKTowKX1mdW5jdGlvbiBpKHQsZSxyKXt2YXIgbj1NYXRoLmZsb29yKGUpLGk9ZS1uLGE9MDw9biYmbjx0LnNoYXBlWzBdLG89MDw9bisxJiZuKzE8dC5zaGFwZVswXSxzPU1hdGguZmxvb3IociksbD1yLXMsYz0wPD1zJiZzPHQuc2hhcGVbMV0sdT0wPD1zKzEmJnMrMTx0LnNoYXBlWzFdLGY9YSYmYz90LmdldChuLHMpOjAsaD1hJiZ1P3QuZ2V0KG4scysxKTowO3JldHVybigxLWwpKigoMS1pKSpmK2kqKG8mJmM/dC5nZXQobisxLHMpOjApKStsKigoMS1pKSpoK2kqKG8mJnU/dC5nZXQobisxLHMrMSk6MCkpfWZ1bmN0aW9uIGEodCxlLHIsbil7dmFyIGk9TWF0aC5mbG9vcihlKSxhPWUtaSxvPTA8PWkmJmk8dC5zaGFwZVswXSxzPTA8PWkrMSYmaSsxPHQuc2hhcGVbMF0sbD1NYXRoLmZsb29yKHIpLGM9ci1sLHU9MDw9bCYmbDx0LnNoYXBlWzFdLGY9MDw9bCsxJiZsKzE8dC5zaGFwZVsxXSxoPU1hdGguZmxvb3IobikscD1uLWgsZD0wPD1oJiZoPHQuc2hhcGVbMl0sbT0wPD1oKzEmJmgrMTx0LnNoYXBlWzJdLGc9byYmdSYmZD90LmdldChpLGwsaCk6MCx2PW8mJmYmJmQ/dC5nZXQoaSxsKzEsaCk6MCx5PXMmJnUmJmQ/dC5nZXQoaSsxLGwsaCk6MCx4PXMmJmYmJmQ/dC5nZXQoaSsxLGwrMSxoKTowLGI9byYmdSYmbT90LmdldChpLGwsaCsxKTowLF89byYmZiYmbT90LmdldChpLGwrMSxoKzEpOjA7cmV0dXJuKDEtcCkqKCgxLWMpKigoMS1hKSpnK2EqeSkrYyooKDEtYSkqdithKngpKStwKigoMS1jKSooKDEtYSkqYithKihzJiZ1JiZtP3QuZ2V0KGkrMSxsLGgrMSk6MCkpK2MqKCgxLWEpKl8rYSoocyYmZiYmbT90LmdldChpKzEsbCsxLGgrMSk6MCkpKX1mdW5jdGlvbiBvKHQpe3ZhciBlLHIsbj0wfHQuc2hhcGUubGVuZ3RoLGk9bmV3IEFycmF5KG4pLGE9bmV3IEFycmF5KG4pLG89bmV3IEFycmF5KG4pLHM9bmV3IEFycmF5KG4pO2ZvcihlPTA7ZTxuOysrZSlyPSthcmd1bWVudHNbZSsxXSxpW2VdPU1hdGguZmxvb3IociksYVtlXT1yLWlbZV0sb1tlXT0wPD1pW2VdJiZpW2VdPHQuc2hhcGVbZV0sc1tlXT0wPD1pW2VdKzEmJmlbZV0rMTx0LnNoYXBlW2VdO3ZhciBsLGMsdSxmPTA7dDpmb3IoZT0wO2U8MTw8bjsrK2Upe2ZvcihjPTEsdT10Lm9mZnNldCxsPTA7bDxuOysrbClpZihlJjE8PGwpe2lmKCFzW2xdKWNvbnRpbnVlIHQ7Yyo9YVtsXSx1Kz10LnN0cmlkZVtsXSooaVtsXSsxKX1lbHNle2lmKCFvW2xdKWNvbnRpbnVlIHQ7Yyo9MS1hW2xdLHUrPXQuc3RyaWRlW2xdKmlbbF19Zis9Yyp0LmRhdGFbdV19cmV0dXJuIGZ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe3N3aXRjaCh0LnNoYXBlLmxlbmd0aCl7Y2FzZSAwOnJldHVybiAwO2Nhc2UgMTpyZXR1cm4gbih0LGUpO2Nhc2UgMjpyZXR1cm4gaSh0LGUscik7Y2FzZSAzOnJldHVybiBhKHQsZSxyLHMpO2RlZmF1bHQ6cmV0dXJuIG8uYXBwbHkodm9pZCAwLGFyZ3VtZW50cyl9fSxlLmV4cG9ydHMuZDE9bixlLmV4cG9ydHMuZDI9aSxlLmV4cG9ydHMuZDM9YX0se31dLDQ1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj17ImZsb2F0NjQsMiwxLDAiOmZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9dFswXSxvPXRbMV0scz10WzJdLGw9clswXSxjPXJbMV0sdT1yWzJdO258PTA7dmFyIGY9MCxoPTAscD0wLGQ9dSxtPWMtcyp1LGc9bC1vKmM7Zm9yKHA9MDtwPGE7KytwKXtmb3IoaD0wO2g8bzsrK2gpe2ZvcihmPTA7ZjxzOysrZillW25dLz1pLG4rPWQ7bis9bX1uKz1nfX19LCJ1aW50OCwyLDAsMSxmbG9hdDY0LDIsMSwwIjpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSxvLHMpe2Zvcih2YXIgbD10WzBdLGM9dFsxXSx1PXRbMl0sZj1yWzBdLGg9clsxXSxwPXJbMl0sZD1hWzBdLG09YVsxXSxnPWFbMl0sdj1ufD0wLHk9b3w9MCx4PTB8dFswXTt4PjA7KXt4PDY0PyhsPXgseD0wKToobD02NCx4LT02NCk7Zm9yKHZhciBiPTB8dFsxXTtiPjA7KXtiPDY0PyhjPWIsYj0wKTooYz02NCxiLT02NCksbj12K3gqZitiKmgsbz15K3gqZCtiKm07dmFyIF89MCx3PTAsVD0wLGs9cCxBPWYtdSpwLE09aC1sKmYsUz1nLEU9ZC11KmcsTD1tLWwqZDtmb3IoVD0wO1Q8YzsrK1Qpe2Zvcih3PTA7dzxsOysrdyl7Zm9yKF89MDtfPHU7KytfKWVbbl09aVtvXSpzLG4rPWssbys9UztuKz1BLG8rPUV9bis9TSxvKz1MfX19fX0sImZsb2F0MzIsMSwwLGZsb2F0MzIsMSwwIjpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz10WzBdLGw9dFsxXSxjPXJbMF0sdT1yWzFdLGY9YVswXSxoPWFbMV07bnw9MCxvfD0wO3ZhciBwPTAsZD0wLG09dSxnPWMtbCp1LHY9aCx5PWYtbCpoO2ZvcihkPTA7ZDxzOysrZCl7Zm9yKHA9MDtwPGw7KytwKWVbbl09aVtvXSxuKz1tLG8rPXY7bis9ZyxvKz15fX19LCJmbG9hdDMyLDEsMCxmbG9hdDMyLDAsMSI6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPXRbMF0sbD10WzFdLGM9clswXSx1PXJbMV0sZj1hWzBdLGg9YVsxXSxwPW58PTAsZD1vfD0wLG09MHx0WzFdO20+MDspe208NjQ/KGw9bSxtPTApOihsPTY0LG0tPTY0KTtmb3IodmFyIGc9MHx0WzBdO2c+MDspe2c8NjQ/KHM9ZyxnPTApOihzPTY0LGctPTY0KSxuPXArbSp1K2cqYyxvPWQrbSpoK2cqZjt2YXIgdj0wLHk9MCx4PXUsYj1jLWwqdSxfPWgsdz1mLWwqaDtmb3IoeT0wO3k8czsrK3kpe2Zvcih2PTA7djxsOysrdillW25dPWlbb10sbis9eCxvKz1fO24rPWIsbys9d319fX19LCJ1aW50OCwyLDAsMSx1aW50OCwxLDIsMCI6ZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7Zm9yKHZhciBzPXRbMF0sbD10WzFdLGM9dFsyXSx1PXJbMF0sZj1yWzFdLGg9clsyXSxwPWFbMF0sZD1hWzFdLG09YVsyXSxnPW58PTAsdj1vfD0wLHk9MHx0WzJdO3k+MDspe3k8NjQ/KGM9eSx5PTApOihjPTY0LHktPTY0KTtmb3IodmFyIHg9MHx0WzBdO3g+MDspe3g8NjQ/KHM9eCx4PTApOihzPTY0LHgtPTY0KTtmb3IodmFyIGI9MHx0WzFdO2I+MDspe2I8NjQ/KGw9YixiPTApOihsPTY0LGItPTY0KSxuPWcreSpoK3gqdStiKmYsbz12K3kqbSt4KnArYipkO3ZhciBfPTAsdz0wLFQ9MCxrPWgsQT11LWMqaCxNPWYtcyp1LFM9bSxFPXAtYyptLEw9ZC1zKnA7Zm9yKFQ9MDtUPGw7KytUKXtmb3Iodz0wO3c8czsrK3cpe2ZvcihfPTA7XzxjOysrXyllW25dPWlbb10sbis9ayxvKz1TO24rPUEsbys9RX1uKz1NLG8rPUx9fX19fX0sInVpbnQ4LDIsMCwxLGFycmF5LDIsMCwxIjpmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGksYSxvKXt2YXIgcz10WzBdLGw9dFsxXSxjPXRbMl0sdT1yWzBdLGY9clsxXSxoPXJbMl0scD1hWzBdLGQ9YVsxXSxtPWFbMl07bnw9MCxvfD0wO3ZhciBnPTAsdj0wLHk9MCx4PWgsYj11LWMqaCxfPWYtcyp1LHc9bSxUPXAtYyptLGs9ZC1zKnA7Zm9yKHk9MDt5PGw7Kyt5KXtmb3Iodj0wO3Y8czsrK3Ype2ZvcihnPTA7ZzxjOysrZyllW25dPWlbb10sbis9eCxvKz13O24rPWIsbys9VH1uKz1fLG8rPWt9fX19O3ZhciBpPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5qb2luKCIsIik7cmV0dXJuKDAsbltyXSkoKX0sYT17bXVsOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4saSl7dmFyIGE9ci5kdHlwZSxvPXIub3JkZXIscz1uLmR0eXBlLGw9bi5vcmRlcixjPWkuZHR5cGUsdT1pLm9yZGVyLGY9W2Esby5qb2luKCkscyxsLmpvaW4oKSxjLHUuam9pbigpXS5qb2luKCksaD1lW2ZdO3JldHVybiBofHwoZVtmXT1oPXQoW2EsbyxzLGwsYyx1XSkpLGgoci5zaGFwZS5zbGljZSgwKSxyLmRhdGEsci5zdHJpZGUsMHxyLm9mZnNldCxuLmRhdGEsbi5zdHJpZGUsMHxuLm9mZnNldCxpLmRhdGEsaS5zdHJpZGUsMHxpLm9mZnNldCl9fSxtdWxzOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4saSl7dmFyIGE9ci5kdHlwZSxvPXIub3JkZXIscz1uLmR0eXBlLGw9bi5vcmRlcixjPVthLG8uam9pbigpLHMsbC5qb2luKCldLmpvaW4oKSx1PWVbY107cmV0dXJuIHV8fChlW2NdPXU9dChbYSxvLHMsbF0pKSx1KHIuc2hhcGUuc2xpY2UoMCksci5kYXRhLHIuc3RyaWRlLDB8ci5vZmZzZXQsbi5kYXRhLG4uc3RyaWRlLDB8bi5vZmZzZXQsaSl9fSxtdWxzZXE6ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGk9ci5kdHlwZSxhPXIub3JkZXIsbz1baSxhLmpvaW4oKV0uam9pbigpLHM9ZVtvXTtyZXR1cm4gc3x8KGVbb109cz10KFtpLGFdKSkscyhyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0LG4pfX0sZGl2OmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4saSl7dmFyIGE9ci5kdHlwZSxvPXIub3JkZXIscz1uLmR0eXBlLGw9bi5vcmRlcixjPWkuZHR5cGUsdT1pLm9yZGVyLGY9W2Esby5qb2luKCkscyxsLmpvaW4oKSxjLHUuam9pbigpXS5qb2luKCksaD1lW2ZdO3JldHVybiBofHwoZVtmXT1oPXQoW2EsbyxzLGwsYyx1XSkpLGgoci5zaGFwZS5zbGljZSgwKSxyLmRhdGEsci5zdHJpZGUsMHxyLm9mZnNldCxuLmRhdGEsbi5zdHJpZGUsMHxuLm9mZnNldCxpLmRhdGEsaS5zdHJpZGUsMHxpLm9mZnNldCl9fSxkaXZzOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4saSl7dmFyIGE9ci5kdHlwZSxvPXIub3JkZXIscz1uLmR0eXBlLGw9bi5vcmRlcixjPVthLG8uam9pbigpLHMsbC5qb2luKCldLmpvaW4oKSx1PWVbY107cmV0dXJuIHV8fChlW2NdPXU9dChbYSxvLHMsbF0pKSx1KHIuc2hhcGUuc2xpY2UoMCksci5kYXRhLHIuc3RyaWRlLDB8ci5vZmZzZXQsbi5kYXRhLG4uc3RyaWRlLDB8bi5vZmZzZXQsaSl9fSxkaXZzZXE6ZnVuY3Rpb24odCl7dmFyIGU9e307cmV0dXJuIGZ1bmN0aW9uKHIsbil7dmFyIGk9ci5kdHlwZSxhPXIub3JkZXIsbz1baSxhLmpvaW4oKV0uam9pbigpLHM9ZVtvXTtyZXR1cm4gc3x8KGVbb109cz10KFtpLGFdKSkscyhyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0LG4pfX0sYXNzaWduOmZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4pe3ZhciBpPXIuZHR5cGUsYT1yLm9yZGVyLG89bi5kdHlwZSxzPW4ub3JkZXIsbD1baSxhLmpvaW4oKSxvLHMuam9pbigpXS5qb2luKCksYz1lW2xdO3JldHVybiBjfHwoZVtsXT1jPXQoW2ksYSxvLHNdKSksYyhyLnNoYXBlLnNsaWNlKDApLHIuZGF0YSxyLnN0cmlkZSwwfHIub2Zmc2V0LG4uZGF0YSxuLnN0cmlkZSwwfG4ub2Zmc2V0KX19fTtmdW5jdGlvbiBvKHQpe3JldHVybiBlPXtmdW5jTmFtZTp0LmZ1bmNOYW1lfSwoMCxhW2UuZnVuY05hbWVdKShpLmJpbmQodm9pZCAwLGUpKTt2YXIgZX12YXIgcz17bXVsOiIqIixkaXY6Ii8ifTshZnVuY3Rpb24oKXtmb3IodmFyIHQgaW4gcylyW3RdPW8oe2Z1bmNOYW1lOnR9KSxyW3QrInMiXT1vKHtmdW5jTmFtZTp0KyJzIn0pLHJbdCsic2VxIl09byh7ZnVuY05hbWU6dCsic2VxIn0pfSgpLHIuYXNzaWduPW8oe2Z1bmNOYW1lOiJhc3NpZ24ifSl9LHt9XSw0NTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgibmRhcnJheSIpLGk9dCgiLi9kb0NvbnZlcnQuanMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sYT10LG89MTtBcnJheS5pc0FycmF5KGEpOylyLnB1c2goYS5sZW5ndGgpLG8qPWEubGVuZ3RoLGE9YVswXTtyZXR1cm4gMD09PXIubGVuZ3RoP24oKTooZXx8KGU9bihuZXcgRmxvYXQ2NEFycmF5KG8pLHIpKSxpKGUsdCksZSl9fSx7Ii4vZG9Db252ZXJ0LmpzIjo0NTksbmRhcnJheTo0NjJ9XSw0NTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT1mdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXRbMF0sbz10WzFdLHM9dFsyXSxsPXJbMF0sYz1yWzFdLHU9clsyXSxmPVswLDAsMF07bnw9MDt2YXIgaD0wLHA9MCxkPTAsbT11LGc9Yy1zKnUsdj1sLW8qYztmb3IoZD0wO2Q8YTsrK2Qpe2ZvcihwPTA7cDxvOysrcCl7Zm9yKGg9MDtoPHM7KytoKXt2YXIgeSx4PWk7Zm9yKHk9MDt5PGYubGVuZ3RoLTE7Kyt5KXg9eFtmW3ldXTtlW25dPXhbZltmLmxlbmd0aC0xXV0sbis9bSwrK2ZbMl19bis9ZyxmWzJdLT1zLCsrZlsxXX1uKz12LGZbMV0tPW8sKytmWzBdfX19O2UuZXhwb3J0cz0obj17ZnVuY05hbWU6e2Z1bmNOYW1lOiJjb252ZXJ0In0uZnVuY05hbWV9LGZ1bmN0aW9uKHQpe3ZhciBlPXt9O3JldHVybiBmdW5jdGlvbihyLG4pe3ZhciBpPXIuZHR5cGUsYT1yLm9yZGVyLG89W2ksYS5qb2luKCldLmpvaW4oKSxzPWVbb107cmV0dXJuIHN8fChlW29dPXM9dChbaSxhXSkpLHMoci5zaGFwZS5zbGljZSgwKSxyLmRhdGEsci5zdHJpZGUsMHxyLm9mZnNldCxuKX19KGkuYmluZCh2b2lkIDAsbikpKX0se31dLDQ2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0eXBlZGFycmF5LXBvb2wiKTtmdW5jdGlvbiBpKHQpe3N3aXRjaCh0KXtjYXNlInVpbnQzMiI6cmV0dXJuW24ubWFsbG9jVWludDMyLG4uZnJlZVVpbnQzMl07ZGVmYXVsdDpyZXR1cm4gbnVsbH19dmFyIGE9eyJ1aW50MzIsMSwwIjpmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyLG4saSxhLG8scyxsLGMsdSxmLGgpe3ZhciBwLGQsbSxnLHYseSx4LGIsXz1yKm8rYSx3PXQoYyk7Zm9yKHA9cisxO3A8PW47KytwKXtmb3IoZD1wLG09Xys9byx2PTAseT1fLGc9MDtnPGM7KytnKXdbdisrXT1pW3ldLHkrPXU7dDpmb3IoO2QtLSA+cjspe3Y9MCx5PW0tbztlOmZvcihnPTA7ZzxjOysrZyl7aWYoKHg9aVt5XSk8KGI9d1t2XSkpYnJlYWsgdDtpZih4PmIpYnJlYWsgZTt5Kz1mLHYrPWh9Zm9yKHY9bSx5PW0tbyxnPTA7ZzxjOysrZylpW3ZdPWlbeV0sdis9dSx5Kz11O20tPW99Zm9yKHY9bSx5PTAsZz0wO2c8YzsrK2cpaVt2XT13W3krK10sdis9dX1lKHcpfX19O3ZhciBvPXsidWludDMyLDEsMCI6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBmdW5jdGlvbiBuKGksYSxvLHMsbCxjLHUsZixoLHAsZCl7dmFyIG0sZyx2LHkseCxiLF8sdyxULGssQSxNLFMsRSxMLEMsUCxJLE8seixELFIsRixCLE4saj0oYS1pKzEpLzZ8MCxVPWkraixWPWEtaixIPWkrYT4+MSxxPUgtaixHPUgraixZPVUsVz1xLFg9SCxaPUcsSj1WLEs9aSsxLFE9YS0xLCQ9ITAsdHQ9MCxldD0wLHJ0PTAsbnQ9ZixpdD1lKG50KSxhdD1lKG50KTtBPWwqWSxNPWwqVyxOPXM7dDpmb3Ioaz0wO2s8ZjsrK2spe2lmKHc9TStOLChydD1vW189QStOXS1vW3ddKT4wKXtnPVksWT1XLFc9ZzticmVhayB0fWlmKHJ0PDApYnJlYWsgdDtOKz1wfUE9bCpaLE09bCpKLE49czt0OmZvcihrPTA7azxmOysrayl7aWYodz1NK04sKHJ0PW9bXz1BK05dLW9bd10pPjApe2c9WixaPUosSj1nO2JyZWFrIHR9aWYocnQ8MClicmVhayB0O04rPXB9QT1sKlksTT1sKlgsTj1zO3Q6Zm9yKGs9MDtrPGY7KytrKXtpZih3PU0rTiwocnQ9b1tfPUErTl0tb1t3XSk+MCl7Zz1ZLFk9WCxYPWc7YnJlYWsgdH1pZihydDwwKWJyZWFrIHQ7Tis9cH1BPWwqVyxNPWwqWCxOPXM7dDpmb3Ioaz0wO2s8ZjsrK2spe2lmKHc9TStOLChydD1vW189QStOXS1vW3ddKT4wKXtnPVcsVz1YLFg9ZzticmVhayB0fWlmKHJ0PDApYnJlYWsgdDtOKz1wfUE9bCpZLE09bCpaLE49czt0OmZvcihrPTA7azxmOysrayl7aWYodz1NK04sKHJ0PW9bXz1BK05dLW9bd10pPjApe2c9WSxZPVosWj1nO2JyZWFrIHR9aWYocnQ8MClicmVhayB0O04rPXB9QT1sKlgsTT1sKlosTj1zO3Q6Zm9yKGs9MDtrPGY7KytrKXtpZih3PU0rTiwocnQ9b1tfPUErTl0tb1t3XSk+MCl7Zz1YLFg9WixaPWc7YnJlYWsgdH1pZihydDwwKWJyZWFrIHQ7Tis9cH1BPWwqVyxNPWwqSixOPXM7dDpmb3Ioaz0wO2s8ZjsrK2spe2lmKHc9TStOLChydD1vW189QStOXS1vW3ddKT4wKXtnPVcsVz1KLEo9ZzticmVhayB0fWlmKHJ0PDApYnJlYWsgdDtOKz1wfUE9bCpXLE09bCpYLE49czt0OmZvcihrPTA7azxmOysrayl7aWYodz1NK04sKHJ0PW9bXz1BK05dLW9bd10pPjApe2c9VyxXPVgsWD1nO2JyZWFrIHR9aWYocnQ8MClicmVhayB0O04rPXB9QT1sKlosTT1sKkosTj1zO3Q6Zm9yKGs9MDtrPGY7KytrKXtpZih3PU0rTiwocnQ9b1tfPUErTl0tb1t3XSk+MCl7Zz1aLFo9SixKPWc7YnJlYWsgdH1pZihydDwwKWJyZWFrIHQ7Tis9cH1mb3IoQT1sKlksTT1sKlcsUz1sKlgsRT1sKlosTD1sKkosQz1sKlUsUD1sKkgsST1sKlYsQj0wLE49cyxrPTA7azxmOysraylfPUErTix3PU0rTixUPVMrTixPPUUrTix6PUwrTixEPUMrTixSPVArTixGPUkrTixpdFtCXT1vW3ddLGF0W0JdPW9bT10sJD0kJiZpdFtCXT09PWF0W0JdLHY9b1tfXSx5PW9bVF0seD1vW3pdLG9bRF09dixvW1JdPXksb1tGXT14LCsrQixOKz1oO2ZvcihBPWwqcSxNPWwqaSxOPXMsaz0wO2s8ZjsrK2spdz1NK04sb1tfPUErTl09b1t3XSxOKz1oO2ZvcihBPWwqRyxNPWwqYSxOPXMsaz0wO2s8ZjsrK2spdz1NK04sb1tfPUErTl09b1t3XSxOKz1oO2lmKCQpZm9yKGI9SztiPD1ROysrYil7Xz1zK2IqbCxCPTA7dDpmb3Ioaz0wO2s8ZiYmMD09PShydD1vW19dLWl0W0JdKTsrK2spQis9ZCxfKz1wO2lmKDAhPT1ydClpZihydDwwKXtpZihiIT09Sylmb3IoQT1sKmIsTT1sKkssTj1zLGs9MDtrPGY7KytrKXc9TStOLG09b1tfPUErTl0sb1tfXT1vW3ddLG9bd109bSxOKz1oOysrS31lbHNlIGZvcig7Oyl7Xz1zK1EqbCxCPTA7dDpmb3Ioaz0wO2s8ZiYmMD09PShydD1vW19dLWl0W0JdKTsrK2spQis9ZCxfKz1wO2lmKCEocnQ+MCkpe2lmKHJ0PDApe2ZvcihBPWwqYixNPWwqSyxTPWwqUSxOPXMsaz0wO2s8ZjsrK2spdz1NK04sVD1TK04sbT1vW189QStOXSxvW19dPW9bd10sb1t3XT1vW1RdLG9bVF09bSxOKz1oOysrSywtLVE7YnJlYWt9Zm9yKEE9bCpiLE09bCpRLE49cyxrPTA7azxmOysrayl3PU0rTixtPW9bXz1BK05dLG9bX109b1t3XSxvW3ddPW0sTis9aDstLVE7YnJlYWt9US0tfX1lbHNlIGZvcihiPUs7Yjw9UTsrK2Ipe189cytiKmwsQj0wO3Q6Zm9yKGs9MDtrPGYmJjA9PT0odHQ9b1tfXS1pdFtCXSk7KytrKUIrPWQsXys9cDtpZih0dDwwKXtpZihiIT09Sylmb3IoQT1sKmIsTT1sKkssTj1zLGs9MDtrPGY7KytrKXc9TStOLG09b1tfPUErTl0sb1tfXT1vW3ddLG9bd109bSxOKz1oOysrS31lbHNle189cytiKmwsQj0wO3Q6Zm9yKGs9MDtrPGYmJjA9PT0oZXQ9b1tfXS1hdFtCXSk7KytrKUIrPWQsXys9cDtpZihldD4wKWZvcig7Oyl7Xz1zK1EqbCxCPTA7dDpmb3Ioaz0wO2s8ZiYmMD09PShydD1vW19dLWF0W0JdKTsrK2spQis9ZCxfKz1wO2lmKCEocnQ+MCkpe189cytRKmwsQj0wO3Q6Zm9yKGs9MDtrPGYmJjA9PT0ocnQ9b1tfXS1pdFtCXSk7KytrKUIrPWQsXys9cDtpZihydDwwKXtmb3IoQT1sKmIsTT1sKkssUz1sKlEsTj1zLGs9MDtrPGY7KytrKXc9TStOLFQ9UytOLG09b1tfPUErTl0sb1tfXT1vW3ddLG9bd109b1tUXSxvW1RdPW0sTis9aDsrK0ssLS1RfWVsc2V7Zm9yKEE9bCpiLE09bCpRLE49cyxrPTA7azxmOysrayl3PU0rTixtPW9bXz1BK05dLG9bX109b1t3XSxvW3ddPW0sTis9aDstLVF9YnJlYWt9aWYoLS1RPGIpYnJlYWt9fX1mb3IoQT1sKmksTT1sKihLLTEpLEI9MCxOPXMsaz0wO2s8ZjsrK2spdz1NK04sb1tfPUErTl09b1t3XSxvW3ddPWl0W0JdLCsrQixOKz1oO2ZvcihBPWwqYSxNPWwqKFErMSksQj0wLE49cyxrPTA7azxmOysrayl3PU0rTixvW189QStOXT1vW3ddLG9bd109YXRbQl0sKytCLE4rPWg7aWYoSy0yLWk8PTMyP3QoaSxLLTIsbyxzLGwsYyx1LGYsaCxwLGQpOm4oaSxLLTIsbyxzLGwsYyx1LGYsaCxwLGQpLGEtKFErMik8PTMyP3QoUSsyLGEsbyxzLGwsYyx1LGYsaCxwLGQpOm4oUSsyLGEsbyxzLGwsYyx1LGYsaCxwLGQpLCQpcmV0dXJuIHIoaXQpLHZvaWQgcihhdCk7aWYoSzxVJiZRPlYpe3Q6Zm9yKDs7KXtmb3IoXz1zK0sqbCxCPTAsTj1zLGs9MDtrPGY7KytrKXtpZihvW19dIT09aXRbQl0pYnJlYWsgdDsrK0IsXys9aH0rK0t9dDpmb3IoOzspe2ZvcihfPXMrUSpsLEI9MCxOPXMsaz0wO2s8ZjsrK2spe2lmKG9bX10hPT1hdFtCXSlicmVhayB0OysrQixfKz1ofS0tUX1mb3IoYj1LO2I8PVE7KytiKXtfPXMrYipsLEI9MDt0OmZvcihrPTA7azxmJiYwPT09KHR0PW9bX10taXRbQl0pOysraylCKz1kLF8rPXA7aWYoMD09PXR0KXtpZihiIT09Sylmb3IoQT1sKmIsTT1sKkssTj1zLGs9MDtrPGY7KytrKXc9TStOLG09b1tfPUErTl0sb1tfXT1vW3ddLG9bd109bSxOKz1oOysrS31lbHNle189cytiKmwsQj0wO3Q6Zm9yKGs9MDtrPGYmJjA9PT0oZXQ9b1tfXS1hdFtCXSk7KytrKUIrPWQsXys9cDtpZigwPT09ZXQpZm9yKDs7KXtfPXMrUSpsLEI9MDt0OmZvcihrPTA7azxmJiYwPT09KHJ0PW9bX10tYXRbQl0pOysraylCKz1kLF8rPXA7aWYoMCE9PXJ0KXtfPXMrUSpsLEI9MDt0OmZvcihrPTA7azxmJiYwPT09KHJ0PW9bX10taXRbQl0pOysraylCKz1kLF8rPXA7aWYocnQ8MCl7Zm9yKEE9bCpiLE09bCpLLFM9bCpRLE49cyxrPTA7azxmOysrayl3PU0rTixUPVMrTixtPW9bXz1BK05dLG9bX109b1t3XSxvW3ddPW9bVF0sb1tUXT1tLE4rPWg7KytLLC0tUX1lbHNle2ZvcihBPWwqYixNPWwqUSxOPXMsaz0wO2s8ZjsrK2spdz1NK04sbT1vW189QStOXSxvW19dPW9bd10sb1t3XT1tLE4rPWg7LS1RfWJyZWFrfWlmKC0tUTxiKWJyZWFrfX19fXIoaXQpLHIoYXQpLFEtSzw9MzI/dChLLFEsbyxzLGwsYyx1LGYsaCxwLGQpOm4oSyxRLG8scyxsLGMsdSxmLGgscCxkKX19fTt2YXIgcz17InVpbnQzMiwxLDAiOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3ZhciBuPXIuZGF0YSxpPTB8ci5vZmZzZXQsYT1yLnNoYXBlLG89ci5zdHJpZGUscz0wfG9bMF0sbD0wfGFbMF0sYz0wfG9bMV0sdT0wfGFbMV0sZj1jLGg9YztsPD0zMj90KDAsbC0xLG4saSxzLGMsbCx1LGYsaCwxKTplKDAsbC0xLG4saSxzLGMsbCx1LGYsaCwxKX19fTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1bZSx0XS5qb2luKCIsIiksbj1zW3JdLGw9ZnVuY3Rpb24odCxlKXt2YXIgcj1pKGUpLG49W2UsdF0uam9pbigiLCIpLG89YVtuXTtyZXR1cm4gcj9vKHJbMF0sclsxXSk6bygpfSh0LGUpLGM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWkoZSksYT1bZSx0XS5qb2luKCIsIikscz1vW2FdO3JldHVybiB0Lmxlbmd0aD4xJiZuP3MocixuWzBdLG5bMV0pOnMocil9KHQsZSxsKTtyZXR1cm4gbihsLGMpfX0seyJ0eXBlZGFycmF5LXBvb2wiOjU5MH1dLDQ2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2xpYi9jb21waWxlX3NvcnQuanMiKSxpPXt9O2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Lm9yZGVyLHI9dC5kdHlwZSxhPVtlLHJdLmpvaW4oIjoiKSxvPWlbYV07cmV0dXJuIG98fChpW2FdPW89bihlLHIpKSxvKHQpLHR9fSx7Ii4vbGliL2NvbXBpbGVfc29ydC5qcyI6NDYwfV0sNDYyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiaXMtYnVmZmVyIiksaT0idW5kZWZpbmVkIiE9dHlwZW9mIEZsb2F0NjRBcnJheTtmdW5jdGlvbiBhKHQsZSl7cmV0dXJuIHRbMF0tZVswXX1mdW5jdGlvbiBvKCl7dmFyIHQsZT10aGlzLnN0cmlkZSxyPW5ldyBBcnJheShlLmxlbmd0aCk7Zm9yKHQ9MDt0PHIubGVuZ3RoOysrdClyW3RdPVtNYXRoLmFicyhlW3RdKSx0XTtyLnNvcnQoYSk7dmFyIG49bmV3IEFycmF5KHIubGVuZ3RoKTtmb3IodD0wO3Q8bi5sZW5ndGg7Kyt0KW5bdF09clt0XVsxXTtyZXR1cm4gbn12YXIgcz17VDpmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3RoaXMuZGF0YT10fXZhciByPWUucHJvdG90eXBlO3JldHVybiByLmR0eXBlPXQsci5pbmRleD1mdW5jdGlvbigpe3JldHVybi0xfSxyLnNpemU9MCxyLmRpbWVuc2lvbj0tMSxyLnNoYXBlPXIuc3RyaWRlPXIub3JkZXI9W10sci5sbz1yLmhpPXIudHJhbnNwb3NlPXIuc3RlcD1mdW5jdGlvbigpe3JldHVybiBuZXcgZSh0aGlzLmRhdGEpfSxyLmdldD1yLnNldD1mdW5jdGlvbigpe30sci5waWNrPWZ1bmN0aW9uKCl7cmV0dXJuIG51bGx9LGZ1bmN0aW9uKHQpe3JldHVybiBuZXcgZSh0KX19LDA6ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHQsZSl7dGhpcy5kYXRhPXQsdGhpcy5vZmZzZXQ9ZX12YXIgbj1yLnByb3RvdHlwZTtyZXR1cm4gbi5kdHlwZT10LG4uaW5kZXg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5vZmZzZXR9LG4uZGltZW5zaW9uPTAsbi5zaXplPTEsbi5zaGFwZT1uLnN0cmlkZT1uLm9yZGVyPVtdLG4ubG89bi5oaT1uLnRyYW5zcG9zZT1uLnN0ZXA9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IHIodGhpcy5kYXRhLHRoaXMub2Zmc2V0KX0sbi5waWNrPWZ1bmN0aW9uKCl7cmV0dXJuIGUodGhpcy5kYXRhKX0sbi52YWx1ZU9mPW4uZ2V0PWZ1bmN0aW9uKCl7cmV0dXJuImdlbmVyaWMiPT09dD90aGlzLmRhdGEuZ2V0KHRoaXMub2Zmc2V0KTp0aGlzLmRhdGFbdGhpcy5vZmZzZXRdfSxuLnNldD1mdW5jdGlvbihlKXtyZXR1cm4iZ2VuZXJpYyI9PT10P3RoaXMuZGF0YS5zZXQodGhpcy5vZmZzZXQsZSk6dGhpcy5kYXRhW3RoaXMub2Zmc2V0XT1lfSxmdW5jdGlvbih0LGUsbixpKXtyZXR1cm4gbmV3IHIodCxpKX19LDE6ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIsbil7dGhpcy5kYXRhPXQsdGhpcy5zaGFwZT1bZV0sdGhpcy5zdHJpZGU9W3JdLHRoaXMub2Zmc2V0PTB8bn12YXIgaT1uLnByb3RvdHlwZTtyZXR1cm4gaS5kdHlwZT10LGkuZGltZW5zaW9uPTEsT2JqZWN0LmRlZmluZVByb3BlcnR5KGksInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGFwZVswXX19KSxpLm9yZGVyPVswXSxpLnNldD1mdW5jdGlvbihlLHIpe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLnNldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplLHIpOnRoaXMuZGF0YVt0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplXT1yfSxpLmdldD1mdW5jdGlvbihlKXtyZXR1cm4iZ2VuZXJpYyI9PT10P3RoaXMuZGF0YS5nZXQodGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSk6dGhpcy5kYXRhW3RoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmVdfSxpLmluZGV4PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSp0fSxpLmhpPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgbih0aGlzLmRhdGEsIm51bWJlciIhPXR5cGVvZiB0fHx0PDA/dGhpcy5zaGFwZVswXTowfHQsdGhpcy5zdHJpZGVbMF0sdGhpcy5vZmZzZXQpfSxpLmxvPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMub2Zmc2V0LHI9MCxpPXRoaXMuc2hhcGVbMF0sYT10aGlzLnN0cmlkZVswXTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTAmJihlKz1hKihyPTB8dCksaS09ciksbmV3IG4odGhpcy5kYXRhLGksYSxlKX0saS5zdGVwPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2hhcGVbMF0scj10aGlzLnN0cmlkZVswXSxpPXRoaXMub2Zmc2V0LGE9MCxvPU1hdGguY2VpbDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJigoYT0wfHQpPDA/KGkrPXIqKGUtMSksZT1vKC1lL2EpKTplPW8oZS9hKSxyKj1hKSxuZXcgbih0aGlzLmRhdGEsZSxyLGkpfSxpLnRyYW5zcG9zZT1mdW5jdGlvbih0KXt0PXZvaWQgMD09PXQ/MDowfHQ7dmFyIGU9dGhpcy5zaGFwZSxyPXRoaXMuc3RyaWRlO3JldHVybiBuZXcgbih0aGlzLmRhdGEsZVt0XSxyW3RdLHRoaXMub2Zmc2V0KX0saS5waWNrPWZ1bmN0aW9uKHQpe3ZhciByPVtdLG49W10saT10aGlzLm9mZnNldDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTA/aT1pK3RoaXMuc3RyaWRlWzBdKnR8MDooci5wdXNoKHRoaXMuc2hhcGVbMF0pLG4ucHVzaCh0aGlzLnN0cmlkZVswXSkpLCgwLGVbci5sZW5ndGgrMV0pKHRoaXMuZGF0YSxyLG4saSl9LGZ1bmN0aW9uKHQsZSxyLGkpe3JldHVybiBuZXcgbih0LGVbMF0sclswXSxpKX19LDI6ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIsbixpLGEpe3RoaXMuZGF0YT10LHRoaXMuc2hhcGU9W2Uscl0sdGhpcy5zdHJpZGU9W24saV0sdGhpcy5vZmZzZXQ9MHxhfXZhciBpPW4ucHJvdG90eXBlO3JldHVybiBpLmR0eXBlPXQsaS5kaW1lbnNpb249MixPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlWzBdKnRoaXMuc2hhcGVbMV19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIm9yZGVyIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIE1hdGguYWJzKHRoaXMuc3RyaWRlWzBdKT5NYXRoLmFicyh0aGlzLnN0cmlkZVsxXSk/WzEsMF06WzAsMV19fSksaS5zZXQ9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLnNldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIsbik6dGhpcy5kYXRhW3RoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcl09bn0saS5nZXQ9ZnVuY3Rpb24oZSxyKXtyZXR1cm4iZ2VuZXJpYyI9PT10P3RoaXMuZGF0YS5nZXQodGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyKTp0aGlzLmRhdGFbdGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyXX0saS5pbmRleD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSp0K3RoaXMuc3RyaWRlWzFdKmV9LGkuaGk9ZnVuY3Rpb24odCxlKXtyZXR1cm4gbmV3IG4odGhpcy5kYXRhLCJudW1iZXIiIT10eXBlb2YgdHx8dDwwP3RoaXMuc2hhcGVbMF06MHx0LCJudW1iZXIiIT10eXBlb2YgZXx8ZTwwP3RoaXMuc2hhcGVbMV06MHxlLHRoaXMuc3RyaWRlWzBdLHRoaXMuc3RyaWRlWzFdLHRoaXMub2Zmc2V0KX0saS5sbz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMub2Zmc2V0LGk9MCxhPXRoaXMuc2hhcGVbMF0sbz10aGlzLnNoYXBlWzFdLHM9dGhpcy5zdHJpZGVbMF0sbD10aGlzLnN0cmlkZVsxXTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTAmJihyKz1zKihpPTB8dCksYS09aSksIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wJiYocis9bCooaT0wfGUpLG8tPWkpLG5ldyBuKHRoaXMuZGF0YSxhLG8scyxsLHIpfSxpLnN0ZXA9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLnNoYXBlWzBdLGk9dGhpcy5zaGFwZVsxXSxhPXRoaXMuc3RyaWRlWzBdLG89dGhpcy5zdHJpZGVbMV0scz10aGlzLm9mZnNldCxsPTAsYz1NYXRoLmNlaWw7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiYoKGw9MHx0KTwwPyhzKz1hKihyLTEpLHI9Yygtci9sKSk6cj1jKHIvbCksYSo9bCksIm51bWJlciI9PXR5cGVvZiBlJiYoKGw9MHxlKTwwPyhzKz1vKihpLTEpLGk9YygtaS9sKSk6aT1jKGkvbCksbyo9bCksbmV3IG4odGhpcy5kYXRhLHIsaSxhLG8scyl9LGkudHJhbnNwb3NlPWZ1bmN0aW9uKHQsZSl7dD12b2lkIDA9PT10PzA6MHx0LGU9dm9pZCAwPT09ZT8xOjB8ZTt2YXIgcj10aGlzLnNoYXBlLGk9dGhpcy5zdHJpZGU7cmV0dXJuIG5ldyBuKHRoaXMuZGF0YSxyW3RdLHJbZV0saVt0XSxpW2VdLHRoaXMub2Zmc2V0KX0saS5waWNrPWZ1bmN0aW9uKHQscil7dmFyIG49W10saT1bXSxhPXRoaXMub2Zmc2V0O3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD49MD9hPWErdGhpcy5zdHJpZGVbMF0qdHwwOihuLnB1c2godGhpcy5zaGFwZVswXSksaS5wdXNoKHRoaXMuc3RyaWRlWzBdKSksIm51bWJlciI9PXR5cGVvZiByJiZyPj0wP2E9YSt0aGlzLnN0cmlkZVsxXSpyfDA6KG4ucHVzaCh0aGlzLnNoYXBlWzFdKSxpLnB1c2godGhpcy5zdHJpZGVbMV0pKSwoMCxlW24ubGVuZ3RoKzFdKSh0aGlzLmRhdGEsbixpLGEpfSxmdW5jdGlvbih0LGUscixpKXtyZXR1cm4gbmV3IG4odCxlWzBdLGVbMV0sclswXSxyWzFdLGkpfX0sMzpmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LGUscixuLGksYSxvLHMpe3RoaXMuZGF0YT10LHRoaXMuc2hhcGU9W2UscixuXSx0aGlzLnN0cmlkZT1baSxhLG9dLHRoaXMub2Zmc2V0PTB8c312YXIgaT1uLnByb3RvdHlwZTtyZXR1cm4gaS5kdHlwZT10LGkuZGltZW5zaW9uPTMsT2JqZWN0LmRlZmluZVByb3BlcnR5KGksInNpemUiLHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5zaGFwZVswXSp0aGlzLnNoYXBlWzFdKnRoaXMuc2hhcGVbMl19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIm9yZGVyIix7Z2V0OmZ1bmN0aW9uKCl7dmFyIHQ9TWF0aC5hYnModGhpcy5zdHJpZGVbMF0pLGU9TWF0aC5hYnModGhpcy5zdHJpZGVbMV0pLHI9TWF0aC5hYnModGhpcy5zdHJpZGVbMl0pO3JldHVybiB0PmU/ZT5yP1syLDEsMF06dD5yP1sxLDIsMF06WzEsMCwyXTp0PnI/WzIsMCwxXTpyPmU/WzAsMSwyXTpbMCwyLDFdfX0pLGkuc2V0PWZ1bmN0aW9uKGUscixuLGkpe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLnNldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbixpKTp0aGlzLmRhdGFbdGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyK3RoaXMuc3RyaWRlWzJdKm5dPWl9LGkuZ2V0PWZ1bmN0aW9uKGUscixuKXtyZXR1cm4iZ2VuZXJpYyI9PT10P3RoaXMuZGF0YS5nZXQodGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyK3RoaXMuc3RyaWRlWzJdKm4pOnRoaXMuZGF0YVt0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbl19LGkuaW5kZXg9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSp0K3RoaXMuc3RyaWRlWzFdKmUrdGhpcy5zdHJpZGVbMl0qcn0saS5oaT1mdW5jdGlvbih0LGUscil7cmV0dXJuIG5ldyBuKHRoaXMuZGF0YSwibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MD90aGlzLnNoYXBlWzBdOjB8dCwibnVtYmVyIiE9dHlwZW9mIGV8fGU8MD90aGlzLnNoYXBlWzFdOjB8ZSwibnVtYmVyIiE9dHlwZW9mIHJ8fHI8MD90aGlzLnNoYXBlWzJdOjB8cix0aGlzLnN0cmlkZVswXSx0aGlzLnN0cmlkZVsxXSx0aGlzLnN0cmlkZVsyXSx0aGlzLm9mZnNldCl9LGkubG89ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMub2Zmc2V0LGE9MCxvPXRoaXMuc2hhcGVbMF0scz10aGlzLnNoYXBlWzFdLGw9dGhpcy5zaGFwZVsyXSxjPXRoaXMuc3RyaWRlWzBdLHU9dGhpcy5zdHJpZGVbMV0sZj10aGlzLnN0cmlkZVsyXTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTAmJihpKz1jKihhPTB8dCksby09YSksIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wJiYoaSs9dSooYT0wfGUpLHMtPWEpLCJudW1iZXIiPT10eXBlb2YgciYmcj49MCYmKGkrPWYqKGE9MHxyKSxsLT1hKSxuZXcgbih0aGlzLmRhdGEsbyxzLGwsYyx1LGYsaSl9LGkuc3RlcD1mdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5zaGFwZVswXSxhPXRoaXMuc2hhcGVbMV0sbz10aGlzLnNoYXBlWzJdLHM9dGhpcy5zdHJpZGVbMF0sbD10aGlzLnN0cmlkZVsxXSxjPXRoaXMuc3RyaWRlWzJdLHU9dGhpcy5vZmZzZXQsZj0wLGg9TWF0aC5jZWlsO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmKChmPTB8dCk8MD8odSs9cyooaS0xKSxpPWgoLWkvZikpOmk9aChpL2YpLHMqPWYpLCJudW1iZXIiPT10eXBlb2YgZSYmKChmPTB8ZSk8MD8odSs9bCooYS0xKSxhPWgoLWEvZikpOmE9aChhL2YpLGwqPWYpLCJudW1iZXIiPT10eXBlb2YgciYmKChmPTB8cik8MD8odSs9Yyooby0xKSxvPWgoLW8vZikpOm89aChvL2YpLGMqPWYpLG5ldyBuKHRoaXMuZGF0YSxpLGEsbyxzLGwsYyx1KX0saS50cmFuc3Bvc2U9ZnVuY3Rpb24odCxlLHIpe3Q9dm9pZCAwPT09dD8wOjB8dCxlPXZvaWQgMD09PWU/MTowfGUscj12b2lkIDA9PT1yPzI6MHxyO3ZhciBpPXRoaXMuc2hhcGUsYT10aGlzLnN0cmlkZTtyZXR1cm4gbmV3IG4odGhpcy5kYXRhLGlbdF0saVtlXSxpW3JdLGFbdF0sYVtlXSxhW3JdLHRoaXMub2Zmc2V0KX0saS5waWNrPWZ1bmN0aW9uKHQscixuKXt2YXIgaT1bXSxhPVtdLG89dGhpcy5vZmZzZXQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wP289byt0aGlzLnN0cmlkZVswXSp0fDA6KGkucHVzaCh0aGlzLnNoYXBlWzBdKSxhLnB1c2godGhpcy5zdHJpZGVbMF0pKSwibnVtYmVyIj09dHlwZW9mIHImJnI+PTA/bz1vK3RoaXMuc3RyaWRlWzFdKnJ8MDooaS5wdXNoKHRoaXMuc2hhcGVbMV0pLGEucHVzaCh0aGlzLnN0cmlkZVsxXSkpLCJudW1iZXIiPT10eXBlb2YgbiYmbj49MD9vPW8rdGhpcy5zdHJpZGVbMl0qbnwwOihpLnB1c2godGhpcy5zaGFwZVsyXSksYS5wdXNoKHRoaXMuc3RyaWRlWzJdKSksKDAsZVtpLmxlbmd0aCsxXSkodGhpcy5kYXRhLGksYSxvKX0sZnVuY3Rpb24odCxlLHIsaSl7cmV0dXJuIG5ldyBuKHQsZVswXSxlWzFdLGVbMl0sclswXSxyWzFdLHJbMl0saSl9fSw0OmZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyLG4saSxhLG8scyxsLGMpe3RoaXMuZGF0YT10LHRoaXMuc2hhcGU9W2UscixuLGldLHRoaXMuc3RyaWRlPVthLG8scyxsXSx0aGlzLm9mZnNldD0wfGN9dmFyIGk9bi5wcm90b3R5cGU7cmV0dXJuIGkuZHR5cGU9dCxpLmRpbWVuc2lvbj00LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShpLCJzaXplIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuc2hhcGVbMF0qdGhpcy5zaGFwZVsxXSp0aGlzLnNoYXBlWzJdKnRoaXMuc2hhcGVbM119fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIm9yZGVyIix7Z2V0OnJ9KSxpLnNldD1mdW5jdGlvbihlLHIsbixpLGEpe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLnNldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbit0aGlzLnN0cmlkZVszXSppLGEpOnRoaXMuZGF0YVt0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbit0aGlzLnN0cmlkZVszXSppXT1hfSxpLmdldD1mdW5jdGlvbihlLHIsbixpKXtyZXR1cm4iZ2VuZXJpYyI9PT10P3RoaXMuZGF0YS5nZXQodGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyK3RoaXMuc3RyaWRlWzJdKm4rdGhpcy5zdHJpZGVbM10qaSk6dGhpcy5kYXRhW3RoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcit0aGlzLnN0cmlkZVsyXSpuK3RoaXMuc3RyaWRlWzNdKmldfSxpLmluZGV4PWZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSp0K3RoaXMuc3RyaWRlWzFdKmUrdGhpcy5zdHJpZGVbMl0qcit0aGlzLnN0cmlkZVszXSpufSxpLmhpPWZ1bmN0aW9uKHQsZSxyLGkpe3JldHVybiBuZXcgbih0aGlzLmRhdGEsIm51bWJlciIhPXR5cGVvZiB0fHx0PDA/dGhpcy5zaGFwZVswXTowfHQsIm51bWJlciIhPXR5cGVvZiBlfHxlPDA/dGhpcy5zaGFwZVsxXTowfGUsIm51bWJlciIhPXR5cGVvZiByfHxyPDA/dGhpcy5zaGFwZVsyXTowfHIsIm51bWJlciIhPXR5cGVvZiBpfHxpPDA/dGhpcy5zaGFwZVszXTowfGksdGhpcy5zdHJpZGVbMF0sdGhpcy5zdHJpZGVbMV0sdGhpcy5zdHJpZGVbMl0sdGhpcy5zdHJpZGVbM10sdGhpcy5vZmZzZXQpfSxpLmxvPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPXRoaXMub2Zmc2V0LG89MCxzPXRoaXMuc2hhcGVbMF0sbD10aGlzLnNoYXBlWzFdLGM9dGhpcy5zaGFwZVsyXSx1PXRoaXMuc2hhcGVbM10sZj10aGlzLnN0cmlkZVswXSxoPXRoaXMuc3RyaWRlWzFdLHA9dGhpcy5zdHJpZGVbMl0sZD10aGlzLnN0cmlkZVszXTtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTAmJihhKz1mKihvPTB8dCkscy09byksIm51bWJlciI9PXR5cGVvZiBlJiZlPj0wJiYoYSs9aCoobz0wfGUpLGwtPW8pLCJudW1iZXIiPT10eXBlb2YgciYmcj49MCYmKGErPXAqKG89MHxyKSxjLT1vKSwibnVtYmVyIj09dHlwZW9mIGkmJmk+PTAmJihhKz1kKihvPTB8aSksdS09byksbmV3IG4odGhpcy5kYXRhLHMsbCxjLHUsZixoLHAsZCxhKX0saS5zdGVwPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPXRoaXMuc2hhcGVbMF0sbz10aGlzLnNoYXBlWzFdLHM9dGhpcy5zaGFwZVsyXSxsPXRoaXMuc2hhcGVbM10sYz10aGlzLnN0cmlkZVswXSx1PXRoaXMuc3RyaWRlWzFdLGY9dGhpcy5zdHJpZGVbMl0saD10aGlzLnN0cmlkZVszXSxwPXRoaXMub2Zmc2V0LGQ9MCxtPU1hdGguY2VpbDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJigoZD0wfHQpPDA/KHArPWMqKGEtMSksYT1tKC1hL2QpKTphPW0oYS9kKSxjKj1kKSwibnVtYmVyIj09dHlwZW9mIGUmJigoZD0wfGUpPDA/KHArPXUqKG8tMSksbz1tKC1vL2QpKTpvPW0oby9kKSx1Kj1kKSwibnVtYmVyIj09dHlwZW9mIHImJigoZD0wfHIpPDA/KHArPWYqKHMtMSkscz1tKC1zL2QpKTpzPW0ocy9kKSxmKj1kKSwibnVtYmVyIj09dHlwZW9mIGkmJigoZD0wfGkpPDA/KHArPWgqKGwtMSksbD1tKC1sL2QpKTpsPW0obC9kKSxoKj1kKSxuZXcgbih0aGlzLmRhdGEsYSxvLHMsbCxjLHUsZixoLHApfSxpLnRyYW5zcG9zZT1mdW5jdGlvbih0LGUscixpKXt0PXZvaWQgMD09PXQ/MDowfHQsZT12b2lkIDA9PT1lPzE6MHxlLHI9dm9pZCAwPT09cj8yOjB8cixpPXZvaWQgMD09PWk/MzowfGk7dmFyIGE9dGhpcy5zaGFwZSxvPXRoaXMuc3RyaWRlO3JldHVybiBuZXcgbih0aGlzLmRhdGEsYVt0XSxhW2VdLGFbcl0sYVtpXSxvW3RdLG9bZV0sb1tyXSxvW2ldLHRoaXMub2Zmc2V0KX0saS5waWNrPWZ1bmN0aW9uKHQscixuLGkpe3ZhciBhPVtdLG89W10scz10aGlzLm9mZnNldDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJnQ+PTA/cz1zK3RoaXMuc3RyaWRlWzBdKnR8MDooYS5wdXNoKHRoaXMuc2hhcGVbMF0pLG8ucHVzaCh0aGlzLnN0cmlkZVswXSkpLCJudW1iZXIiPT10eXBlb2YgciYmcj49MD9zPXMrdGhpcy5zdHJpZGVbMV0qcnwwOihhLnB1c2godGhpcy5zaGFwZVsxXSksby5wdXNoKHRoaXMuc3RyaWRlWzFdKSksIm51bWJlciI9PXR5cGVvZiBuJiZuPj0wP3M9cyt0aGlzLnN0cmlkZVsyXSpufDA6KGEucHVzaCh0aGlzLnNoYXBlWzJdKSxvLnB1c2godGhpcy5zdHJpZGVbMl0pKSwibnVtYmVyIj09dHlwZW9mIGkmJmk+PTA/cz1zK3RoaXMuc3RyaWRlWzNdKml8MDooYS5wdXNoKHRoaXMuc2hhcGVbM10pLG8ucHVzaCh0aGlzLnN0cmlkZVszXSkpLCgwLGVbYS5sZW5ndGgrMV0pKHRoaXMuZGF0YSxhLG8scyl9LGZ1bmN0aW9uKHQsZSxyLGkpe3JldHVybiBuZXcgbih0LGVbMF0sZVsxXSxlWzJdLGVbM10sclswXSxyWzFdLHJbMl0sclszXSxpKX19LDU6ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxlLHIsbixpLGEsbyxzLGwsYyx1LGYpe3RoaXMuZGF0YT10LHRoaXMuc2hhcGU9W2UscixuLGksYV0sdGhpcy5zdHJpZGU9W28scyxsLGMsdV0sdGhpcy5vZmZzZXQ9MHxmfXZhciBpPW4ucHJvdG90eXBlO3JldHVybiBpLmR0eXBlPXQsaS5kaW1lbnNpb249NSxPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwic2l6ZSIse2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnNoYXBlWzBdKnRoaXMuc2hhcGVbMV0qdGhpcy5zaGFwZVsyXSp0aGlzLnNoYXBlWzNdKnRoaXMuc2hhcGVbNF19fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGksIm9yZGVyIix7Z2V0OnJ9KSxpLnNldD1mdW5jdGlvbihlLHIsbixpLGEsbyl7cmV0dXJuImdlbmVyaWMiPT09dD90aGlzLmRhdGEuc2V0KHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKmUrdGhpcy5zdHJpZGVbMV0qcit0aGlzLnN0cmlkZVsyXSpuK3RoaXMuc3RyaWRlWzNdKmkrdGhpcy5zdHJpZGVbNF0qYSxvKTp0aGlzLmRhdGFbdGhpcy5vZmZzZXQrdGhpcy5zdHJpZGVbMF0qZSt0aGlzLnN0cmlkZVsxXSpyK3RoaXMuc3RyaWRlWzJdKm4rdGhpcy5zdHJpZGVbM10qaSt0aGlzLnN0cmlkZVs0XSphXT1vfSxpLmdldD1mdW5jdGlvbihlLHIsbixpLGEpe3JldHVybiJnZW5lcmljIj09PXQ/dGhpcy5kYXRhLmdldCh0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbit0aGlzLnN0cmlkZVszXSppK3RoaXMuc3RyaWRlWzRdKmEpOnRoaXMuZGF0YVt0aGlzLm9mZnNldCt0aGlzLnN0cmlkZVswXSplK3RoaXMuc3RyaWRlWzFdKnIrdGhpcy5zdHJpZGVbMl0qbit0aGlzLnN0cmlkZVszXSppK3RoaXMuc3RyaWRlWzRdKmFdfSxpLmluZGV4PWZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJuIHRoaXMub2Zmc2V0K3RoaXMuc3RyaWRlWzBdKnQrdGhpcy5zdHJpZGVbMV0qZSt0aGlzLnN0cmlkZVsyXSpyK3RoaXMuc3RyaWRlWzNdKm4rdGhpcy5zdHJpZGVbNF0qaX0saS5oaT1mdW5jdGlvbih0LGUscixpLGEpe3JldHVybiBuZXcgbih0aGlzLmRhdGEsIm51bWJlciIhPXR5cGVvZiB0fHx0PDA/dGhpcy5zaGFwZVswXTowfHQsIm51bWJlciIhPXR5cGVvZiBlfHxlPDA/dGhpcy5zaGFwZVsxXTowfGUsIm51bWJlciIhPXR5cGVvZiByfHxyPDA/dGhpcy5zaGFwZVsyXTowfHIsIm51bWJlciIhPXR5cGVvZiBpfHxpPDA/dGhpcy5zaGFwZVszXTowfGksIm51bWJlciIhPXR5cGVvZiBhfHxhPDA/dGhpcy5zaGFwZVs0XTowfGEsdGhpcy5zdHJpZGVbMF0sdGhpcy5zdHJpZGVbMV0sdGhpcy5zdHJpZGVbMl0sdGhpcy5zdHJpZGVbM10sdGhpcy5zdHJpZGVbNF0sdGhpcy5vZmZzZXQpfSxpLmxvPWZ1bmN0aW9uKHQsZSxyLGksYSl7dmFyIG89dGhpcy5vZmZzZXQscz0wLGw9dGhpcy5zaGFwZVswXSxjPXRoaXMuc2hhcGVbMV0sdT10aGlzLnNoYXBlWzJdLGY9dGhpcy5zaGFwZVszXSxoPXRoaXMuc2hhcGVbNF0scD10aGlzLnN0cmlkZVswXSxkPXRoaXMuc3RyaWRlWzFdLG09dGhpcy5zdHJpZGVbMl0sZz10aGlzLnN0cmlkZVszXSx2PXRoaXMuc3RyaWRlWzRdO3JldHVybiJudW1iZXIiPT10eXBlb2YgdCYmdD49MCYmKG8rPXAqKHM9MHx0KSxsLT1zKSwibnVtYmVyIj09dHlwZW9mIGUmJmU+PTAmJihvKz1kKihzPTB8ZSksYy09cyksIm51bWJlciI9PXR5cGVvZiByJiZyPj0wJiYobys9bSoocz0wfHIpLHUtPXMpLCJudW1iZXIiPT10eXBlb2YgaSYmaT49MCYmKG8rPWcqKHM9MHxpKSxmLT1zKSwibnVtYmVyIj09dHlwZW9mIGEmJmE+PTAmJihvKz12KihzPTB8YSksaC09cyksbmV3IG4odGhpcy5kYXRhLGwsYyx1LGYsaCxwLGQsbSxnLHYsbyl9LGkuc3RlcD1mdW5jdGlvbih0LGUscixpLGEpe3ZhciBvPXRoaXMuc2hhcGVbMF0scz10aGlzLnNoYXBlWzFdLGw9dGhpcy5zaGFwZVsyXSxjPXRoaXMuc2hhcGVbM10sdT10aGlzLnNoYXBlWzRdLGY9dGhpcy5zdHJpZGVbMF0saD10aGlzLnN0cmlkZVsxXSxwPXRoaXMuc3RyaWRlWzJdLGQ9dGhpcy5zdHJpZGVbM10sbT10aGlzLnN0cmlkZVs0XSxnPXRoaXMub2Zmc2V0LHY9MCx5PU1hdGguY2VpbDtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJigodj0wfHQpPDA/KGcrPWYqKG8tMSksbz15KC1vL3YpKTpvPXkoby92KSxmKj12KSwibnVtYmVyIj09dHlwZW9mIGUmJigodj0wfGUpPDA/KGcrPWgqKHMtMSkscz15KC1zL3YpKTpzPXkocy92KSxoKj12KSwibnVtYmVyIj09dHlwZW9mIHImJigodj0wfHIpPDA/KGcrPXAqKGwtMSksbD15KC1sL3YpKTpsPXkobC92KSxwKj12KSwibnVtYmVyIj09dHlwZW9mIGkmJigodj0wfGkpPDA/KGcrPWQqKGMtMSksYz15KC1jL3YpKTpjPXkoYy92KSxkKj12KSwibnVtYmVyIj09dHlwZW9mIGEmJigodj0wfGEpPDA/KGcrPW0qKHUtMSksdT15KC11L3YpKTp1PXkodS92KSxtKj12KSxuZXcgbih0aGlzLmRhdGEsbyxzLGwsYyx1LGYsaCxwLGQsbSxnKX0saS50cmFuc3Bvc2U9ZnVuY3Rpb24odCxlLHIsaSxhKXt0PXZvaWQgMD09PXQ/MDowfHQsZT12b2lkIDA9PT1lPzE6MHxlLHI9dm9pZCAwPT09cj8yOjB8cixpPXZvaWQgMD09PWk/MzowfGksYT12b2lkIDA9PT1hPzQ6MHxhO3ZhciBvPXRoaXMuc2hhcGUscz10aGlzLnN0cmlkZTtyZXR1cm4gbmV3IG4odGhpcy5kYXRhLG9bdF0sb1tlXSxvW3JdLG9baV0sb1thXSxzW3RdLHNbZV0sc1tyXSxzW2ldLHNbYV0sdGhpcy5vZmZzZXQpfSxpLnBpY2s9ZnVuY3Rpb24odCxyLG4saSxhKXt2YXIgbz1bXSxzPVtdLGw9dGhpcy5vZmZzZXQ7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZ0Pj0wP2w9bCt0aGlzLnN0cmlkZVswXSp0fDA6KG8ucHVzaCh0aGlzLnNoYXBlWzBdKSxzLnB1c2godGhpcy5zdHJpZGVbMF0pKSwibnVtYmVyIj09dHlwZW9mIHImJnI+PTA/bD1sK3RoaXMuc3RyaWRlWzFdKnJ8MDooby5wdXNoKHRoaXMuc2hhcGVbMV0pLHMucHVzaCh0aGlzLnN0cmlkZVsxXSkpLCJudW1iZXIiPT10eXBlb2YgbiYmbj49MD9sPWwrdGhpcy5zdHJpZGVbMl0qbnwwOihvLnB1c2godGhpcy5zaGFwZVsyXSkscy5wdXNoKHRoaXMuc3RyaWRlWzJdKSksIm51bWJlciI9PXR5cGVvZiBpJiZpPj0wP2w9bCt0aGlzLnN0cmlkZVszXSppfDA6KG8ucHVzaCh0aGlzLnNoYXBlWzNdKSxzLnB1c2godGhpcy5zdHJpZGVbM10pKSwibnVtYmVyIj09dHlwZW9mIGEmJmE+PTA/bD1sK3RoaXMuc3RyaWRlWzRdKmF8MDooby5wdXNoKHRoaXMuc2hhcGVbNF0pLHMucHVzaCh0aGlzLnN0cmlkZVs0XSkpLCgwLGVbby5sZW5ndGgrMV0pKHRoaXMuZGF0YSxvLHMsbCl9LGZ1bmN0aW9uKHQsZSxyLGkpe3JldHVybiBuZXcgbih0LGVbMF0sZVsxXSxlWzJdLGVbM10sZVs0XSxyWzBdLHJbMV0sclsyXSxyWzNdLHJbNF0saSl9fX07ZnVuY3Rpb24gbCh0LGUpe3ZhciByPS0xPT09ZT8iVCI6U3RyaW5nKGUpLG49c1tyXTtyZXR1cm4tMT09PWU/bih0KTowPT09ZT9uKHQsY1t0XVswXSk6bih0LGNbdF0sbyl9dmFyIGM9e2dlbmVyaWM6W10sYnVmZmVyOltdLGFycmF5OltdLGZsb2F0MzI6W10sZmxvYXQ2NDpbXSxpbnQ4OltdLGludDE2OltdLGludDMyOltdLHVpbnQ4X2NsYW1wZWQ6W10sdWludDg6W10sdWludDE2OltdLHVpbnQzMjpbXSxiaWdpbnQ2NDpbXSxiaWd1aW50NjQ6W119O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXtpZih2b2lkIDA9PT10KXJldHVybigwLGMuYXJyYXlbMF0pKFtdKTsibnVtYmVyIj09dHlwZW9mIHQmJih0PVt0XSksdm9pZCAwPT09ZSYmKGU9W3QubGVuZ3RoXSk7dmFyIG89ZS5sZW5ndGg7aWYodm9pZCAwPT09cil7cj1uZXcgQXJyYXkobyk7Zm9yKHZhciBzPW8tMSx1PTE7cz49MDstLXMpcltzXT11LHUqPWVbc119aWYodm9pZCAwPT09YSl7YT0wO2ZvcihzPTA7czxvOysrcylyW3NdPDAmJihhLT0oZVtzXS0xKSpyW3NdKX1mb3IodmFyIGY9ZnVuY3Rpb24odCl7aWYobih0KSlyZXR1cm4iYnVmZmVyIjtpZihpKXN3aXRjaChPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkpe2Nhc2UiW29iamVjdCBGbG9hdDY0QXJyYXldIjpyZXR1cm4iZmxvYXQ2NCI7Y2FzZSJbb2JqZWN0IEZsb2F0MzJBcnJheV0iOnJldHVybiJmbG9hdDMyIjtjYXNlIltvYmplY3QgSW50OEFycmF5XSI6cmV0dXJuImludDgiO2Nhc2UiW29iamVjdCBJbnQxNkFycmF5XSI6cmV0dXJuImludDE2IjtjYXNlIltvYmplY3QgSW50MzJBcnJheV0iOnJldHVybiJpbnQzMiI7Y2FzZSJbb2JqZWN0IFVpbnQ4Q2xhbXBlZEFycmF5XSI6cmV0dXJuInVpbnQ4X2NsYW1wZWQiO2Nhc2UiW29iamVjdCBVaW50OEFycmF5XSI6cmV0dXJuInVpbnQ4IjtjYXNlIltvYmplY3QgVWludDE2QXJyYXldIjpyZXR1cm4idWludDE2IjtjYXNlIltvYmplY3QgVWludDMyQXJyYXldIjpyZXR1cm4idWludDMyIjtjYXNlIltvYmplY3QgQmlnSW50NjRBcnJheV0iOnJldHVybiJiaWdpbnQ2NCI7Y2FzZSJbb2JqZWN0IEJpZ1VpbnQ2NEFycmF5XSI6cmV0dXJuImJpZ3VpbnQ2NCJ9cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/ImFycmF5IjoiZ2VuZXJpYyJ9KHQpLGg9Y1tmXTtoLmxlbmd0aDw9bysxOyloLnB1c2gobChmLGgubGVuZ3RoLTEpKTtyZXR1cm4oMCxoW28rMV0pKHQsZSxyLGEpfX0seyJpcy1idWZmZXIiOjQzM31dLDQ2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkb3VibGUtYml0cyIpLGk9TWF0aC5wb3coMiwtMTA3NCk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoaXNOYU4odCl8fGlzTmFOKGUpKXJldHVybiBOYU47aWYodD09PWUpcmV0dXJuIHQ7aWYoMD09PXQpcmV0dXJuIGU8MD8taTppO3ZhciByPW4uaGkodCksYT1uLmxvKHQpO2U+dD09dD4wP2E9PT0tMT4+PjA/KHIrPTEsYT0wKTphKz0xOjA9PT1hPyhhPS0xPj4+MCxyLT0xKTphLT0xO3JldHVybiBuLnBhY2soYSxyKX19LHsiZG91YmxlLWJpdHMiOjE3NH1dLDQ2NDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGguUEksaT1jKDEyMCk7ZnVuY3Rpb24gYSh0LGUscixuKXtyZXR1cm5bIkMiLHQsZSxyLG4scixuXX1mdW5jdGlvbiBvKHQsZSxyLG4saSxhKXtyZXR1cm5bIkMiLHQvMysyLzMqcixlLzMrMi8zKm4saS8zKzIvMypyLGEvMysyLzMqbixpLGFdfWZ1bmN0aW9uIHModCxlLHIsYSxvLGMsdSxmLGgscCl7aWYocClUPXBbMF0saz1wWzFdLF89cFsyXSx3PXBbM107ZWxzZXt2YXIgZD1sKHQsZSwtbyk7dD1kLngsZT1kLnk7dmFyIG09KHQtKGY9KGQ9bChmLGgsLW8pKS54KSkvMixnPShlLShoPWQueSkpLzIsdj1tKm0vKHIqcikrZypnLyhhKmEpO3Y+MSYmKHIqPXY9TWF0aC5zcXJ0KHYpLGEqPXYpO3ZhciB5PXIqcix4PWEqYSxiPShjPT11Py0xOjEpKk1hdGguc3FydChNYXRoLmFicygoeSp4LXkqZypnLXgqbSptKS8oeSpnKmcreCptKm0pKSk7Yj09MS8wJiYoYj0xKTt2YXIgXz1iKnIqZy9hKyh0K2YpLzIsdz1iKi1hKm0vcisoZStoKS8yLFQ9TWF0aC5hc2luKCgoZS13KS9hKS50b0ZpeGVkKDkpKSxrPU1hdGguYXNpbigoKGgtdykvYSkudG9GaXhlZCg5KSk7KFQ9dDxfP24tVDpUKTwwJiYoVD0yKm4rVCksKGs9ZjxfP24tazprKTwwJiYoaz0yKm4rayksdSYmVD5rJiYoVC09MipuKSwhdSYmaz5UJiYoay09MipuKX1pZihNYXRoLmFicyhrLVQpPmkpe3ZhciBBPWssTT1mLFM9aDtrPVQraSoodSYmaz5UPzE6LTEpO3ZhciBFPXMoZj1fK3IqTWF0aC5jb3MoayksaD13K2EqTWF0aC5zaW4oaykscixhLG8sMCx1LE0sUyxbayxBLF8sd10pfXZhciBMPU1hdGgudGFuKChrLVQpLzQpLEM9NC8zKnIqTCxQPTQvMyphKkwsST1bMip0LSh0K0MqTWF0aC5zaW4oVCkpLDIqZS0oZS1QKk1hdGguY29zKFQpKSxmK0MqTWF0aC5zaW4oayksaC1QKk1hdGguY29zKGspLGYsaF07aWYocClyZXR1cm4gSTtFJiYoST1JLmNvbmNhdChFKSk7Zm9yKHZhciBPPTA7TzxJLmxlbmd0aDspe3ZhciB6PWwoSVtPXSxJW08rMV0sbyk7SVtPKytdPXoueCxJW08rK109ei55fXJldHVybiBJfWZ1bmN0aW9uIGwodCxlLHIpe3JldHVybnt4OnQqTWF0aC5jb3MociktZSpNYXRoLnNpbihyKSx5OnQqTWF0aC5zaW4ocikrZSpNYXRoLmNvcyhyKX19ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdCoobi8xODApfWUuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj1bXSxuPTAsaT0wLGw9MCx1PTAsZj1udWxsLGg9bnVsbCxwPTAsZD0wLG09MCxnPXQubGVuZ3RoO208ZzttKyspe3ZhciB2PXRbbV0seT12WzBdO3N3aXRjaCh5KXtjYXNlIk0iOmw9dlsxXSx1PXZbMl07YnJlYWs7Y2FzZSJBIjoodj1zKHAsZCx2WzFdLHZbMl0sYyh2WzNdKSx2WzRdLHZbNV0sdls2XSx2WzddKSkudW5zaGlmdCgiQyIpLHYubGVuZ3RoPjcmJihyLnB1c2godi5zcGxpY2UoMCw3KSksdi51bnNoaWZ0KCJDIikpO2JyZWFrO2Nhc2UiUyI6dmFyIHg9cCxiPWQ7IkMiIT1lJiYiUyIhPWV8fCh4Kz14LW4sYis9Yi1pKSx2PVsiQyIseCxiLHZbMV0sdlsyXSx2WzNdLHZbNF1dO2JyZWFrO2Nhc2UiVCI6IlEiPT1lfHwiVCI9PWU/KGY9MipwLWYsaD0yKmQtaCk6KGY9cCxoPWQpLHY9byhwLGQsZixoLHZbMV0sdlsyXSk7YnJlYWs7Y2FzZSJRIjpmPXZbMV0saD12WzJdLHY9byhwLGQsdlsxXSx2WzJdLHZbM10sdls0XSk7YnJlYWs7Y2FzZSJMIjp2PWEocCxkLHZbMV0sdlsyXSk7YnJlYWs7Y2FzZSJIIjp2PWEocCxkLHZbMV0sZCk7YnJlYWs7Y2FzZSJWIjp2PWEocCxkLHAsdlsxXSk7YnJlYWs7Y2FzZSJaIjp2PWEocCxkLGwsdSl9ZT15LHA9dlt2Lmxlbmd0aC0yXSxkPXZbdi5sZW5ndGgtMV0sdi5sZW5ndGg+ND8obj12W3YubGVuZ3RoLTRdLGk9dlt2Lmxlbmd0aC0zXSk6KG49cCxpPWQpLHIucHVzaCh2KX1yZXR1cm4gcn19LHt9XSw0NjU6W2Z1bmN0aW9uKHQsZSxyKXtyLnZlcnRleE5vcm1hbHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1lLmxlbmd0aCxpPW5ldyBBcnJheShuKSxhPXZvaWQgMD09PXI/MWUtNjpyLG89MDtvPG47KytvKWlbb109WzAsMCwwXTtmb3Iobz0wO288dC5sZW5ndGg7KytvKWZvcih2YXIgcz10W29dLGw9MCxjPXNbcy5sZW5ndGgtMV0sdT1zWzBdLGY9MDtmPHMubGVuZ3RoOysrZil7bD1jLGM9dSx1PXNbKGYrMSklcy5sZW5ndGhdO2Zvcih2YXIgaD1lW2xdLHA9ZVtjXSxkPWVbdV0sbT1uZXcgQXJyYXkoMyksZz0wLHY9bmV3IEFycmF5KDMpLHk9MCx4PTA7eDwzOysreCltW3hdPWhbeF0tcFt4XSxnKz1tW3hdKm1beF0sdlt4XT1kW3hdLXBbeF0seSs9dlt4XSp2W3hdO2lmKGcqeT5hKXt2YXIgYj1pW2NdLF89MS9NYXRoLnNxcnQoZyp5KTtmb3IoeD0wO3g8MzsrK3gpe3ZhciB3PSh4KzEpJTMsVD0oeCsyKSUzO2JbeF0rPV8qKHZbd10qbVtUXS12W1RdKm1bd10pfX19Zm9yKG89MDtvPG47KytvKXtiPWlbb107dmFyIGs9MDtmb3IoeD0wO3g8MzsrK3gpays9Ylt4XSpiW3hdO2lmKGs+YSlmb3IoXz0xL01hdGguc3FydChrKSx4PTA7eDwzOysreCliW3hdKj1fO2Vsc2UgZm9yKHg9MDt4PDM7Kyt4KWJbeF09MH1yZXR1cm4gaX0sci5mYWNlTm9ybWFscz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXQubGVuZ3RoLGk9bmV3IEFycmF5KG4pLGE9dm9pZCAwPT09cj8xZS02OnIsbz0wO288bjsrK28pe2Zvcih2YXIgcz10W29dLGw9bmV3IEFycmF5KDMpLGM9MDtjPDM7KytjKWxbY109ZVtzW2NdXTt2YXIgdT1uZXcgQXJyYXkoMyksZj1uZXcgQXJyYXkoMyk7Zm9yKGM9MDtjPDM7KytjKXVbY109bFsxXVtjXS1sWzBdW2NdLGZbY109bFsyXVtjXS1sWzBdW2NdO3ZhciBoPW5ldyBBcnJheSgzKSxwPTA7Zm9yKGM9MDtjPDM7KytjKXt2YXIgZD0oYysxKSUzLG09KGMrMiklMztoW2NdPXVbZF0qZlttXS11W21dKmZbZF0scCs9aFtjXSpoW2NdfXA9cD5hPzEvTWF0aC5zcXJ0KHApOjA7Zm9yKGM9MDtjPDM7KytjKWhbY10qPXA7aVtvXT1ofXJldHVybiBpfX0se31dLDQ2NjpbZnVuY3Rpb24odCxlLHIpewovKgpvYmplY3QtYXNzaWduCihjKSBTaW5kcmUgU29yaHVzCkBsaWNlbnNlIE1JVAoqLwoidXNlIHN0cmljdCI7dmFyIG49T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyxpPU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHksYT1PYmplY3QucHJvdG90eXBlLnByb3BlcnR5SXNFbnVtZXJhYmxlO2Z1bmN0aW9uIG8odCl7aWYobnVsbD09dCl0aHJvdyBuZXcgVHlwZUVycm9yKCJPYmplY3QuYXNzaWduIGNhbm5vdCBiZSBjYWxsZWQgd2l0aCBudWxsIG9yIHVuZGVmaW5lZCIpO3JldHVybiBPYmplY3QodCl9ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dHJ5e2lmKCFPYmplY3QuYXNzaWduKXJldHVybiExO3ZhciB0PW5ldyBTdHJpbmcoImFiYyIpO2lmKHRbNV09ImRlIiwiNSI9PT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh0KVswXSlyZXR1cm4hMTtmb3IodmFyIGU9e30scj0wO3I8MTA7cisrKWVbIl8iK1N0cmluZy5mcm9tQ2hhckNvZGUocildPXI7aWYoIjAxMjM0NTY3ODkiIT09T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoZSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKS5qb2luKCIiKSlyZXR1cm4hMTt2YXIgbj17fTtyZXR1cm4iYWJjZGVmZ2hpamtsbW5vcHFyc3QiLnNwbGl0KCIiKS5mb3JFYWNoKChmdW5jdGlvbih0KXtuW3RdPXR9KSksImFiY2RlZmdoaWprbG1ub3BxcnN0Ij09PU9iamVjdC5rZXlzKE9iamVjdC5hc3NpZ24oe30sbikpLmpvaW4oIiIpfWNhdGNoKHQpe3JldHVybiExfX0oKT9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLHMsbD1vKHQpLGM9MTtjPGFyZ3VtZW50cy5sZW5ndGg7YysrKXtmb3IodmFyIHUgaW4gcj1PYmplY3QoYXJndW1lbnRzW2NdKSlpLmNhbGwocix1KSYmKGxbdV09clt1XSk7aWYobil7cz1uKHIpO2Zvcih2YXIgZj0wO2Y8cy5sZW5ndGg7ZisrKWEuY2FsbChyLHNbZl0pJiYobFtzW2ZdXT1yW3NbZl1dKX19cmV0dXJuIGx9fSx7fV0sNDY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGksYSxvLHMsbCxjKXt2YXIgdT1lK2ErYztpZihmPjApe3ZhciBmPU1hdGguc3FydCh1KzEpO3RbMF09LjUqKG8tbCkvZix0WzFdPS41KihzLW4pL2YsdFsyXT0uNSooci1hKS9mLHRbM109LjUqZn1lbHNle3ZhciBoPU1hdGgubWF4KGUsYSxjKTtmPU1hdGguc3FydCgyKmgtdSsxKTtlPj1oPyh0WzBdPS41KmYsdFsxXT0uNSooaStyKS9mLHRbMl09LjUqKHMrbikvZix0WzNdPS41KihvLWwpL2YpOmE+PWg/KHRbMF09LjUqKHIraSkvZix0WzFdPS41KmYsdFsyXT0uNSoobCtvKS9mLHRbM109LjUqKHMtbikvZik6KHRbMF09LjUqKG4rcykvZix0WzFdPS41KihvK2wpL2YsdFsyXT0uNSpmLHRbM109LjUqKHItaSkvZil9cmV0dXJuIHR9fSx7fV0sNDY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT0odD10fHx7fSkuY2VudGVyfHxbMCwwLDBdLHI9dC5yb3RhdGlvbnx8WzAsMCwwLDFdLG49dC5yYWRpdXN8fDE7ZT1bXS5zbGljZS5jYWxsKGUsMCwzKSx1KHI9W10uc2xpY2UuY2FsbChyLDAsNCkscik7dmFyIGk9bmV3IGYocixlLE1hdGgubG9nKG4pKTtpLnNldERpc3RhbmNlTGltaXRzKHQuem9vbU1pbix0Lnpvb21NYXgpLCgiZXllImluIHR8fCJ1cCJpbiB0KSYmaS5sb29rQXQoMCx0LmV5ZSx0LmNlbnRlcix0LnVwKTtyZXR1cm4gaX07dmFyIG49dCgiZmlsdGVyZWQtdmVjdG9yIiksaT10KCJnbC1tYXQ0L2xvb2tBdCIpLGE9dCgiZ2wtbWF0NC9mcm9tUXVhdCIpLG89dCgiZ2wtbWF0NC9pbnZlcnQiKSxzPXQoIi4vbGliL3F1YXRGcm9tRnJhbWUiKTtmdW5jdGlvbiBsKHQsZSxyKXtyZXR1cm4gTWF0aC5zcXJ0KE1hdGgucG93KHQsMikrTWF0aC5wb3coZSwyKStNYXRoLnBvdyhyLDIpKX1mdW5jdGlvbiBjKHQsZSxyLG4pe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codCwyKStNYXRoLnBvdyhlLDIpK01hdGgucG93KHIsMikrTWF0aC5wb3cobiwyKSl9ZnVuY3Rpb24gdSh0LGUpe3ZhciByPWVbMF0sbj1lWzFdLGk9ZVsyXSxhPWVbM10sbz1jKHIsbixpLGEpO28+MWUtNj8odFswXT1yL28sdFsxXT1uL28sdFsyXT1pL28sdFszXT1hL28pOih0WzBdPXRbMV09dFsyXT0wLHRbM109MSl9ZnVuY3Rpb24gZih0LGUscil7dGhpcy5yYWRpdXM9bihbcl0pLHRoaXMuY2VudGVyPW4oZSksdGhpcy5yb3RhdGlvbj1uKHQpLHRoaXMuY29tcHV0ZWRSYWRpdXM9dGhpcy5yYWRpdXMuY3VydmUoMCksdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLmNlbnRlci5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkUm90YXRpb249dGhpcy5yb3RhdGlvbi5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkVXA9Wy4xLDAsMF0sdGhpcy5jb21wdXRlZEV5ZT1bLjEsMCwwXSx0aGlzLmNvbXB1dGVkTWF0cml4PVsuMSwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMF0sdGhpcy5yZWNhbGNNYXRyaXgoMCl9dmFyIGg9Zi5wcm90b3R5cGU7aC5sYXN0VD1mdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCh0aGlzLnJhZGl1cy5sYXN0VCgpLHRoaXMuY2VudGVyLmxhc3RUKCksdGhpcy5yb3RhdGlvbi5sYXN0VCgpKX0saC5yZWNhbGNNYXRyaXg9ZnVuY3Rpb24odCl7dGhpcy5yYWRpdXMuY3VydmUodCksdGhpcy5jZW50ZXIuY3VydmUodCksdGhpcy5yb3RhdGlvbi5jdXJ2ZSh0KTt2YXIgZT10aGlzLmNvbXB1dGVkUm90YXRpb247dShlLGUpO3ZhciByPXRoaXMuY29tcHV0ZWRNYXRyaXg7YShyLGUpO3ZhciBuPXRoaXMuY29tcHV0ZWRDZW50ZXIsaT10aGlzLmNvbXB1dGVkRXllLG89dGhpcy5jb21wdXRlZFVwLHM9TWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSk7aVswXT1uWzBdK3MqclsyXSxpWzFdPW5bMV0rcypyWzZdLGlbMl09blsyXStzKnJbMTBdLG9bMF09clsxXSxvWzFdPXJbNV0sb1syXT1yWzldO2Zvcih2YXIgbD0wO2w8MzsrK2wpe2Zvcih2YXIgYz0wLGY9MDtmPDM7KytmKWMrPXJbbCs0KmZdKmlbZl07clsxMitsXT0tY319LGguZ2V0TWF0cml4PWZ1bmN0aW9uKHQsZSl7dGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIHI9dGhpcy5jb21wdXRlZE1hdHJpeDtpZihlKXtmb3IodmFyIG49MDtuPDE2OysrbillW25dPXJbbl07cmV0dXJuIGV9cmV0dXJuIHJ9LGguaWRsZT1mdW5jdGlvbih0KXt0aGlzLmNlbnRlci5pZGxlKHQpLHRoaXMucmFkaXVzLmlkbGUodCksdGhpcy5yb3RhdGlvbi5pZGxlKHQpfSxoLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuY2VudGVyLmZsdXNoKHQpLHRoaXMucmFkaXVzLmZsdXNoKHQpLHRoaXMucm90YXRpb24uZmx1c2godCl9LGgucGFuPWZ1bmN0aW9uKHQsZSxyLG4pe2U9ZXx8MCxyPXJ8fDAsbj1ufHwwLHRoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBpPXRoaXMuY29tcHV0ZWRNYXRyaXgsYT1pWzFdLG89aVs1XSxzPWlbOV0sYz1sKGEsbyxzKTthLz1jLG8vPWMscy89Yzt2YXIgdT1pWzBdLGY9aVs0XSxoPWlbOF0scD11KmErZipvK2gqcyxkPWwodS09YSpwLGYtPW8qcCxoLT1zKnApO3UvPWQsZi89ZCxoLz1kO3ZhciBtPWlbMl0sZz1pWzZdLHY9aVsxMF0seT1tKmErZypvK3Yqcyx4PW0qdStnKmYrdipoLGI9bChtLT15KmEreCp1LGctPXkqbyt4KmYsdi09eSpzK3gqaCk7bS89YixnLz1iLHYvPWI7dmFyIF89dSplK2Eqcix3PWYqZStvKnIsVD1oKmUrcypyO3RoaXMuY2VudGVyLm1vdmUodCxfLHcsVCk7dmFyIGs9TWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSk7az1NYXRoLm1heCgxZS00LGsrbiksdGhpcy5yYWRpdXMuc2V0KHQsTWF0aC5sb2coaykpfSxoLnJvdGF0ZT1mdW5jdGlvbih0LGUscixuKXt0aGlzLnJlY2FsY01hdHJpeCh0KSxlPWV8fDAscj1yfHwwO3ZhciBpPXRoaXMuY29tcHV0ZWRNYXRyaXgsYT1pWzBdLG89aVs0XSxzPWlbOF0sdT1pWzFdLGY9aVs1XSxoPWlbOV0scD1pWzJdLGQ9aVs2XSxtPWlbMTBdLGc9ZSphK3IqdSx2PWUqbytyKmYseT1lKnMrcipoLHg9LShkKnktbSp2KSxiPS0obSpnLXAqeSksXz0tKHAqdi1kKmcpLHc9TWF0aC5zcXJ0KE1hdGgubWF4KDAsMS1NYXRoLnBvdyh4LDIpLU1hdGgucG93KGIsMiktTWF0aC5wb3coXywyKSkpLFQ9Yyh4LGIsXyx3KTtUPjFlLTY/KHgvPVQsYi89VCxfLz1ULHcvPVQpOih4PWI9Xz0wLHc9MSk7dmFyIGs9dGhpcy5jb21wdXRlZFJvdGF0aW9uLEE9a1swXSxNPWtbMV0sUz1rWzJdLEU9a1szXSxMPUEqdytFKngrTSpfLVMqYixDPU0qdytFKmIrUyp4LUEqXyxQPVMqdytFKl8rQSpiLU0qeCxJPUUqdy1BKngtTSpiLVMqXztpZihuKXt4PXAsYj1kLF89bTt2YXIgTz1NYXRoLnNpbihuKS9sKHgsYixfKTt4Kj1PLGIqPU8sXyo9TyxJPUkqKHc9TWF0aC5jb3MoZSkpLShMPUwqdytJKngrQypfLVAqYikqeC0oQz1DKncrSSpiK1AqeC1MKl8pKmItKFA9UCp3K0kqXytMKmItQyp4KSpffXZhciB6PWMoTCxDLFAsSSk7ej4xZS02PyhMLz16LEMvPXosUC89eixJLz16KTooTD1DPVA9MCxJPTEpLHRoaXMucm90YXRpb24uc2V0KHQsTCxDLFAsSSl9LGgubG9va0F0PWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMucmVjYWxjTWF0cml4KHQpLHI9cnx8dGhpcy5jb21wdXRlZENlbnRlcixlPWV8fHRoaXMuY29tcHV0ZWRFeWUsbj1ufHx0aGlzLmNvbXB1dGVkVXA7dmFyIGE9dGhpcy5jb21wdXRlZE1hdHJpeDtpKGEsZSxyLG4pO3ZhciBvPXRoaXMuY29tcHV0ZWRSb3RhdGlvbjtzKG8sYVswXSxhWzFdLGFbMl0sYVs0XSxhWzVdLGFbNl0sYVs4XSxhWzldLGFbMTBdKSx1KG8sbyksdGhpcy5yb3RhdGlvbi5zZXQodCxvWzBdLG9bMV0sb1syXSxvWzNdKTtmb3IodmFyIGw9MCxjPTA7YzwzOysrYylsKz1NYXRoLnBvdyhyW2NdLWVbY10sMik7dGhpcy5yYWRpdXMuc2V0KHQsLjUqTWF0aC5sb2coTWF0aC5tYXgobCwxZS02KSkpLHRoaXMuY2VudGVyLnNldCh0LHJbMF0sclsxXSxyWzJdKX0saC50cmFuc2xhdGU9ZnVuY3Rpb24odCxlLHIsbil7dGhpcy5jZW50ZXIubW92ZSh0LGV8fDAscnx8MCxufHwwKX0saC5zZXRNYXRyaXg9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmNvbXB1dGVkUm90YXRpb247cyhyLGVbMF0sZVsxXSxlWzJdLGVbNF0sZVs1XSxlWzZdLGVbOF0sZVs5XSxlWzEwXSksdShyLHIpLHRoaXMucm90YXRpb24uc2V0KHQsclswXSxyWzFdLHJbMl0sclszXSk7dmFyIG49dGhpcy5jb21wdXRlZE1hdHJpeDtvKG4sZSk7dmFyIGk9blsxNV07aWYoTWF0aC5hYnMoaSk+MWUtNil7dmFyIGE9blsxMl0vaSxsPW5bMTNdL2ksYz1uWzE0XS9pO3RoaXMucmVjYWxjTWF0cml4KHQpO3ZhciBmPU1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pO3RoaXMuY2VudGVyLnNldCh0LGEtblsyXSpmLGwtbls2XSpmLGMtblsxMF0qZiksdGhpcy5yYWRpdXMuaWRsZSh0KX1lbHNlIHRoaXMuY2VudGVyLmlkbGUodCksdGhpcy5yYWRpdXMuaWRsZSh0KX0saC5zZXREaXN0YW5jZT1mdW5jdGlvbih0LGUpe2U+MCYmdGhpcy5yYWRpdXMuc2V0KHQsTWF0aC5sb2coZSkpfSxoLnNldERpc3RhbmNlTGltaXRzPWZ1bmN0aW9uKHQsZSl7dD10PjA/TWF0aC5sb2codCk6LTEvMCxlPWU+MD9NYXRoLmxvZyhlKToxLzAsZT1NYXRoLm1heChlLHQpLHRoaXMucmFkaXVzLmJvdW5kc1swXVswXT10LHRoaXMucmFkaXVzLmJvdW5kc1sxXVswXT1lfSxoLmdldERpc3RhbmNlTGltaXRzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMucmFkaXVzLmJvdW5kcztyZXR1cm4gdD8odFswXT1NYXRoLmV4cChlWzBdWzBdKSx0WzFdPU1hdGguZXhwKGVbMV1bMF0pLHQpOltNYXRoLmV4cChlWzBdWzBdKSxNYXRoLmV4cChlWzFdWzBdKV19LGgudG9KU09OPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucmVjYWxjTWF0cml4KHRoaXMubGFzdFQoKSkse2NlbnRlcjp0aGlzLmNvbXB1dGVkQ2VudGVyLnNsaWNlKCkscm90YXRpb246dGhpcy5jb21wdXRlZFJvdGF0aW9uLnNsaWNlKCksZGlzdGFuY2U6TWF0aC5sb2codGhpcy5jb21wdXRlZFJhZGl1c1swXSksem9vbU1pbjp0aGlzLnJhZGl1cy5ib3VuZHNbMF1bMF0sem9vbU1heDp0aGlzLnJhZGl1cy5ib3VuZHNbMV1bMF19fSxoLmZyb21KU09OPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubGFzdFQoKSxyPXQuY2VudGVyO3ImJnRoaXMuY2VudGVyLnNldChlLHJbMF0sclsxXSxyWzJdKTt2YXIgbj10LnJvdGF0aW9uO24mJnRoaXMucm90YXRpb24uc2V0KGUsblswXSxuWzFdLG5bMl0sblszXSk7dmFyIGk9dC5kaXN0YW5jZTtpJiZpPjAmJnRoaXMucmFkaXVzLnNldChlLE1hdGgubG9nKGkpKSx0aGlzLnNldERpc3RhbmNlTGltaXRzKHQuem9vbU1pbix0Lnpvb21NYXgpfX0seyIuL2xpYi9xdWF0RnJvbUZyYW1lIjo0NjcsImZpbHRlcmVkLXZlY3RvciI6MjQzLCJnbC1tYXQ0L2Zyb21RdWF0IjoyNzYsImdsLW1hdDQvaW52ZXJ0IjoyODcsImdsLW1hdDQvbG9va0F0IjoyODh9XSw0Njk6W2Z1bmN0aW9uKHQsZSxyKXsKLyohCiAqIHBhZC1sZWZ0IDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9wYWQtbGVmdD4KICoKICogQ29weXJpZ2h0IChjKSAyMDE0LTIwMTUsIEpvbiBTY2hsaW5rZXJ0LgogKiBMaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UuCiAqLwoidXNlIHN0cmljdCI7dmFyIG49dCgicmVwZWF0LXN0cmluZyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIG4ocj12b2lkIDAhPT1yP3IrIiI6IiAiLGUpK3R9fSx7InJlcGVhdC1zdHJpbmciOjUxN31dLDQ3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7aWYoInN0cmluZyIhPXR5cGVvZiB0KXJldHVyblt0XTt2YXIgcj1bdF07InN0cmluZyI9PXR5cGVvZiBlfHxBcnJheS5pc0FycmF5KGUpP2U9e2JyYWNrZXRzOmV9OmV8fChlPXt9KTt2YXIgbj1lLmJyYWNrZXRzP0FycmF5LmlzQXJyYXkoZS5icmFja2V0cyk/ZS5icmFja2V0czpbZS5icmFja2V0c106WyJ7fSIsIltdIiwiKCkiXSxpPWUuZXNjYXBlfHwiX19fIixhPSEhZS5mbGF0O24uZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bmV3IFJlZ0V4cChbIlxcIix0WzBdLCJbXlxcIix0WzBdLCJcXCIsdFsxXSwiXSpcXCIsdFsxXV0uam9pbigiIikpLG49W107ZnVuY3Rpb24gYShlLGEsbyl7dmFyIHM9ci5wdXNoKGUuc2xpY2UodFswXS5sZW5ndGgsLXRbMV0ubGVuZ3RoKSktMTtyZXR1cm4gbi5wdXNoKHMpLGkrcytpfXIuZm9yRWFjaCgoZnVuY3Rpb24odCxuKXtmb3IodmFyIGksbz0wO3QhPWk7KWlmKGk9dCx0PXQucmVwbGFjZShlLGEpLG8rKz4xZTQpdGhyb3cgRXJyb3IoIlJlZmVyZW5jZXMgaGF2ZSBjaXJjdWxhciBkZXBlbmRlbmN5LiBQbGVhc2UsIGNoZWNrIHRoZW0uIik7cltuXT10fSkpLG49bi5yZXZlcnNlKCkscj1yLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIG4uZm9yRWFjaCgoZnVuY3Rpb24ocil7ZT1lLnJlcGxhY2UobmV3IFJlZ0V4cCgiKFxcIitpK3IrIlxcIitpKyIpIiwiZyIpLHRbMF0rIiQxIit0WzFdKX0pKSxlfSkpfSkpO3ZhciBvPW5ldyBSZWdFeHAoIlxcIitpKyIoWzAtOV0rKVxcIitpKTtyZXR1cm4gYT9yOmZ1bmN0aW9uIHQoZSxyLG4pe2Zvcih2YXIgaSxhPVtdLHM9MDtpPW8uZXhlYyhlKTspe2lmKHMrKz4xZTQpdGhyb3cgRXJyb3IoIkNpcmN1bGFyIHJlZmVyZW5jZXMgaW4gcGFyZW50aGVzaXMiKTthLnB1c2goZS5zbGljZSgwLGkuaW5kZXgpKSxhLnB1c2godChyW2lbMV1dLHIpKSxlPWUuc2xpY2UoaS5pbmRleCtpWzBdLmxlbmd0aCl9cmV0dXJuIGEucHVzaChlKSxhfShyWzBdLHIpfWZ1bmN0aW9uIGkodCxlKXtpZihlJiZlLmZsYXQpe3ZhciByLG49ZSYmZS5lc2NhcGV8fCJfX18iLGk9dFswXTtpZighaSlyZXR1cm4iIjtmb3IodmFyIGE9bmV3IFJlZ0V4cCgiXFwiK24rIihbMC05XSspXFwiK24pLG89MDtpIT1yOyl7aWYobysrPjFlNCl0aHJvdyBFcnJvcigiQ2lyY3VsYXIgcmVmZXJlbmNlcyBpbiAiK3QpO3I9aSxpPWkucmVwbGFjZShhLHMpfXJldHVybiBpfXJldHVybiB0LnJlZHVjZSgoZnVuY3Rpb24gdChlLHIpe3JldHVybiBBcnJheS5pc0FycmF5KHIpJiYocj1yLnJlZHVjZSh0LCIiKSksZStyfSksIiIpO2Z1bmN0aW9uIHMoZSxyKXtpZihudWxsPT10W3JdKXRocm93IEVycm9yKCJSZWZlcmVuY2UgIityKyJpcyB1bmRlZmluZWQiKTtyZXR1cm4gdFtyXX19ZnVuY3Rpb24gYSh0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KHQpP2kodCxlKTpuKHQsZSl9YS5wYXJzZT1uLGEuc3RyaW5naWZ5PWksZS5leHBvcnRzPWF9LHt9XSw0NzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicGljay1ieS1hbGlhcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZTthcmd1bWVudHMubGVuZ3RoPjEmJih0PWFyZ3VtZW50cyk7InN0cmluZyI9PXR5cGVvZiB0P3Q9dC5zcGxpdCgvXHMvKS5tYXAocGFyc2VGbG9hdCk6Im51bWJlciI9PXR5cGVvZiB0JiYodD1bdF0pO3QubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIHRbMF0/ZT0xPT09dC5sZW5ndGg/e3dpZHRoOnRbMF0saGVpZ2h0OnRbMF0seDowLHk6MH06Mj09PXQubGVuZ3RoP3t3aWR0aDp0WzBdLGhlaWdodDp0WzFdLHg6MCx5OjB9Ont4OnRbMF0seTp0WzFdLHdpZHRoOnRbMl0tdFswXXx8MCxoZWlnaHQ6dFszXS10WzFdfHwwfTp0JiYodD1uKHQse2xlZnQ6InggbCBsZWZ0IExlZnQiLHRvcDoieSB0IHRvcCBUb3AiLHdpZHRoOiJ3IHdpZHRoIFcgV2lkdGgiLGhlaWdodDoiaCBoZWlnaHQgVyBXaWR0aCIsYm90dG9tOiJiIGJvdHRvbSBCb3R0b20iLHJpZ2h0OiJyIHJpZ2h0IFJpZ2h0In0pLGU9e3g6dC5sZWZ0fHwwLHk6dC50b3B8fDB9LG51bGw9PXQud2lkdGg/dC5yaWdodD9lLndpZHRoPXQucmlnaHQtZS54OmUud2lkdGg9MDplLndpZHRoPXQud2lkdGgsbnVsbD09dC5oZWlnaHQ/dC5ib3R0b20/ZS5oZWlnaHQ9dC5ib3R0b20tZS55OmUuaGVpZ2h0PTA6ZS5oZWlnaHQ9dC5oZWlnaHQpO3JldHVybiBlfX0seyJwaWNrLWJ5LWFsaWFzIjo0NzV9XSw0NzI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9W107cmV0dXJuIHQucmVwbGFjZShpLChmdW5jdGlvbih0LHIsaSl7dmFyIG89ci50b0xvd2VyQ2FzZSgpO2ZvcihpPWZ1bmN0aW9uKHQpe3ZhciBlPXQubWF0Y2goYSk7cmV0dXJuIGU/ZS5tYXAoTnVtYmVyKTpbXX0oaSksIm0iPT1vJiZpLmxlbmd0aD4yJiYoZS5wdXNoKFtyXS5jb25jYXQoaS5zcGxpY2UoMCwyKSkpLG89ImwiLHI9Im0iPT1yPyJsIjoiTCIpOzspe2lmKGkubGVuZ3RoPT1uW29dKXJldHVybiBpLnVuc2hpZnQociksZS5wdXNoKGkpO2lmKGkubGVuZ3RoPG5bb10pdGhyb3cgbmV3IEVycm9yKCJtYWxmb3JtZWQgcGF0aCBkYXRhIik7ZS5wdXNoKFtyXS5jb25jYXQoaS5zcGxpY2UoMCxuW29dKSkpfX0pKSxlfTt2YXIgbj17YTo3LGM6NixoOjEsbDoyLG06MixxOjQsczo0LHQ6Mix2OjEsejowfSxpPS8oW2FzdHZ6cW1obGNdKShbXmFzdHZ6cW1obGNdKikvZ2k7dmFyIGE9Ly0/WzAtOV0qXC4/WzAtOV0rKD86ZVstK10/XGQrKT8vZ2l9LHt9XSw0NzM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT1bMCwiIl0pLHQ9U3RyaW5nKHQpO3ZhciByPXBhcnNlRmxvYXQodCwxMCk7cmV0dXJuIGVbMF09cixlWzFdPXQubWF0Y2goL1tcZC5cLVwrXSpccyooLiopLylbMV18fCIiLGV9fSx7fV0sNDc0OltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpeyhmdW5jdGlvbigpeyhmdW5jdGlvbigpe3ZhciByLG4saSxhLG8sczsidW5kZWZpbmVkIiE9dHlwZW9mIHBlcmZvcm1hbmNlJiZudWxsIT09cGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9lLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gcGVyZm9ybWFuY2Uubm93KCl9Om51bGwhPXQmJnQuaHJ0aW1lPyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4ocigpLW8pLzFlNn0sbj10LmhydGltZSxhPShyPWZ1bmN0aW9uKCl7dmFyIHQ7cmV0dXJuIDFlOSoodD1uKCkpWzBdK3RbMV19KSgpLHM9MWU5KnQudXB0aW1lKCksbz1hLXMpOkRhdGUubm93PyhlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gRGF0ZS5ub3coKS1pfSxpPURhdGUubm93KCkpOihlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4obmV3IERhdGUpLmdldFRpbWUoKS1pfSxpPShuZXcgRGF0ZSkuZ2V0VGltZSgpKX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIikpfSx7X3Byb2Nlc3M6NTA0fV0sNDc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG4sYSxvPXt9O2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGU9aShlKSksQXJyYXkuaXNBcnJheShlKSl7dmFyIHM9e307Zm9yKGE9MDthPGUubGVuZ3RoO2ErKylzW2VbYV1dPSEwO2U9c31mb3IobiBpbiBlKWVbbl09aShlW25dKTt2YXIgbD17fTtmb3IobiBpbiBlKXt2YXIgYz1lW25dO2lmKEFycmF5LmlzQXJyYXkoYykpZm9yKGE9MDthPGMubGVuZ3RoO2ErKyl7dmFyIHU9Y1thXTtpZihyJiYobFt1XT0hMCksdSBpbiB0KXtpZihvW25dPXRbdV0scilmb3IodmFyIGY9YTtmPGMubGVuZ3RoO2YrKylsW2NbZl1dPSEwO2JyZWFrfX1lbHNlIG4gaW4gdCYmKGVbbl0mJihvW25dPXRbbl0pLHImJihsW25dPSEwKSl9aWYocilmb3IobiBpbiB0KWxbbl18fChvW25dPXRbbl0pO3JldHVybiBvfTt2YXIgbj17fTtmdW5jdGlvbiBpKHQpe3JldHVybiBuW3RdP25bdF06KCJzdHJpbmciPT10eXBlb2YgdCYmKHQ9blt0XT10LnNwbGl0KC9ccyosXHMqfFxzKy8pKSx0KX19LHt9XSw0NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTB8ZS5sZW5ndGgsaT10Lmxlbmd0aCxhPVtuZXcgQXJyYXkociksbmV3IEFycmF5KHIpXSxvPTA7bzxyOysrbylhWzBdW29dPVtdLGFbMV1bb109W107Zm9yKG89MDtvPGk7KytvKXt2YXIgcz10W29dO2FbMF1bc1swXV0ucHVzaChzKSxhWzFdW3NbMV1dLnB1c2gocyl9dmFyIGw9W107Zm9yKG89MDtvPHI7KytvKWFbMF1bb10ubGVuZ3RoK2FbMV1bb10ubGVuZ3RoPT09MCYmbC5wdXNoKFtvXSk7ZnVuY3Rpb24gYyh0LGUpe3ZhciByPWFbZV1bdFtlXV07ci5zcGxpY2Uoci5pbmRleE9mKHQpLDEpfWZ1bmN0aW9uIHUodCxyLGkpe2Zvcih2YXIgbyxzLGwsdT0wO3U8MjsrK3UpaWYoYVt1XVtyXS5sZW5ndGg+MCl7bz1hW3VdW3JdWzBdLGw9dTticmVha31zPW9bMV5sXTtmb3IodmFyIGY9MDtmPDI7KytmKWZvcih2YXIgaD1hW2ZdW3JdLHA9MDtwPGgubGVuZ3RoOysrcCl7dmFyIGQ9aFtwXSxtPWRbMV5mXTtuKGVbdF0sZVtyXSxlW3NdLGVbbV0pPjAmJihvPWQscz1tLGw9Zil9cmV0dXJuIGl8fG8mJmMobyxsKSxzfWZ1bmN0aW9uIGYodCxyKXt2YXIgaT1hW3JdW3RdWzBdLG89W3RdO2MoaSxyKTtmb3IodmFyIHM9aVsxXnJdOzspe2Zvcig7cyE9PXQ7KW8ucHVzaChzKSxzPXUob1tvLmxlbmd0aC0yXSxzLCExKTtpZihhWzBdW3RdLmxlbmd0aCthWzFdW3RdLmxlbmd0aD09PTApYnJlYWs7dmFyIGw9b1tvLmxlbmd0aC0xXSxmPXQsaD1vWzFdLHA9dShsLGYsITApO2lmKG4oZVtsXSxlW2ZdLGVbaF0sZVtwXSk8MClicmVhaztvLnB1c2godCkscz11KGwsZil9cmV0dXJuIG99ZnVuY3Rpb24gaCh0LGUpe3JldHVybiBlWzFdPT09ZVtlLmxlbmd0aC0xXX1mb3Iobz0wO288cjsrK28pZm9yKHZhciBwPTA7cDwyOysrcCl7Zm9yKHZhciBkPVtdO2FbcF1bb10ubGVuZ3RoPjA7KXthWzBdW29dLmxlbmd0aDt2YXIgbT1mKG8scCk7aCgwLG0pP2QucHVzaC5hcHBseShkLG0pOihkLmxlbmd0aD4wJiZsLnB1c2goZCksZD1tKX1kLmxlbmd0aD4wJiZsLnB1c2goZCl9cmV0dXJuIGx9O3ZhciBuPXQoImNvbXBhcmUtYW5nbGUiKX0seyJjb21wYXJlLWFuZ2xlIjoxMzN9XSw0Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW4odCxlLmxlbmd0aCksaT1uZXcgQXJyYXkoZS5sZW5ndGgpLGE9bmV3IEFycmF5KGUubGVuZ3RoKSxvPVtdLHM9MDtzPGUubGVuZ3RoOysrcyl7dmFyIGw9cltzXS5sZW5ndGg7YVtzXT1sLGlbc109ITAsbDw9MSYmby5wdXNoKHMpfWZvcig7by5sZW5ndGg+MDspe3ZhciBjPW8ucG9wKCk7aVtjXT0hMTt2YXIgdT1yW2NdO2ZvcihzPTA7czx1Lmxlbmd0aDsrK3Mpe3ZhciBmPXVbc107MD09LS1hW2ZdJiZvLnB1c2goZil9fXZhciBoPW5ldyBBcnJheShlLmxlbmd0aCkscD1bXTtmb3Iocz0wO3M8ZS5sZW5ndGg7KytzKWlmKGlbc10pe2M9cC5sZW5ndGg7aFtzXT1jLHAucHVzaChlW3NdKX1lbHNlIGhbc109LTE7dmFyIGQ9W107Zm9yKHM9MDtzPHQubGVuZ3RoOysrcyl7dmFyIG09dFtzXTtpW21bMF1dJiZpW21bMV1dJiZkLnB1c2goW2hbbVswXV0saFttWzFdXV0pfXJldHVybltkLHBdfTt2YXIgbj10KCJlZGdlcy10by1hZGphY2VuY3ktbGlzdCIpfSx7ImVkZ2VzLXRvLWFkamFjZW5jeS1saXN0IjoxNzl9XSw0Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9Yyh0LGUpO3Q9clswXTtmb3IodmFyIGY9KGU9clsxXSkubGVuZ3RoLGg9KHQubGVuZ3RoLG4odCxlLmxlbmd0aCkpLHA9MDtwPGY7KytwKWlmKGhbcF0ubGVuZ3RoJTI9PTEpdGhyb3cgbmV3IEVycm9yKCJwbGFuYXItZ3JhcGgtdG8tcG9seWxpbmU6IGdyYXBoIG11c3QgYmUgbWFuaWZvbGQiKTt2YXIgZD1pKHQsZSk7dmFyIG09KGQ9ZC5maWx0ZXIoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPVswXSxpPTA7aTxyOysraSl7dmFyIGE9ZVt0W2ldXSxsPWVbdFsoaSsxKSVyXV0sYz1vKC1hWzBdLGFbMV0pLHU9bygtYVswXSxsWzFdKSxmPW8obFswXSxhWzFdKSxoPW8obFswXSxsWzFdKTtuPXMobixzKHMoYyx1KSxzKGYsaCkpKX1yZXR1cm4gbltuLmxlbmd0aC0xXT4wfSkpKS5sZW5ndGgsZz1uZXcgQXJyYXkobSksdj1uZXcgQXJyYXkobSk7Zm9yKHA9MDtwPG07KytwKXtnW3BdPXA7dmFyIHk9bmV3IEFycmF5KG0pLHg9ZFtwXS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBlW3RdfSkpLGI9YShbeF0pLF89MDt0OmZvcih2YXIgdz0wO3c8bTsrK3cpaWYoeVt3XT0wLHAhPT13KXtmb3IodmFyIFQ9KEg9ZFt3XSkubGVuZ3RoLGs9MDtrPFQ7KytrKXt2YXIgQT1iKGVbSFtrXV0pO2lmKDAhPT1BKXtBPDAmJih5W3ddPTEsXys9MSk7Y29udGludWUgdH19eVt3XT0xLF8rPTF9dltwXT1bXyxwLHldfXYuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZVswXS10WzBdfSkpO2ZvcihwPTA7cDxtOysrcCl7dmFyIE09KHk9dltwXSlbMV0sUz15WzJdO2Zvcih3PTA7dzxtOysrdylTW3ddJiYoZ1t3XT1NKX12YXIgRT1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7KytyKWVbcl09W107cmV0dXJuIGV9KG0pO2ZvcihwPTA7cDxtOysrcClFW3BdLnB1c2goZ1twXSksRVtnW3BdXS5wdXNoKHApO3ZhciBMPXt9LEM9dShmLCExKTtmb3IocD0wO3A8bTsrK3ApZm9yKFQ9KEg9ZFtwXSkubGVuZ3RoLHc9MDt3PFQ7Kyt3KXt2YXIgUD1IW3ddLEk9SFsodysxKSVUXSxPPU1hdGgubWluKFAsSSkrIjoiK01hdGgubWF4KFAsSSk7aWYoTyBpbiBMKXt2YXIgej1MW09dO0Vbel0ucHVzaChwKSxFW3BdLnB1c2goeiksQ1tQXT1DW0ldPSEwfWVsc2UgTFtPXT1wfWZ1bmN0aW9uIEQodCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9MDtyPGU7KytyKWlmKCFDW3Rbcl1dKXJldHVybiExO3JldHVybiEwfXZhciBSPVtdLEY9dShtLC0xKTtmb3IocD0wO3A8bTsrK3ApZ1twXSE9PXB8fEQoZFtwXSk/RltwXT0tMTooUi5wdXNoKHApLEZbcF09MCk7cj1bXTtmb3IoO1IubGVuZ3RoPjA7KXt2YXIgQj1SLnBvcCgpLE49RVtCXTtsKE4sKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKTt2YXIgaixVPU4ubGVuZ3RoLFY9RltCXTtpZigwPT09Vil7dmFyIEg9ZFtCXTtqPVtIXX1mb3IocD0wO3A8VTsrK3Ape3ZhciBxPU5bcF07aWYoIShGW3FdPj0wKSlpZihGW3FdPTFeVixSLnB1c2gocSksMD09PVYpRChIPWRbcV0pfHwoSC5yZXZlcnNlKCksai5wdXNoKEgpKX0wPT09ViYmci5wdXNoKGopfXJldHVybiByfTt2YXIgbj10KCJlZGdlcy10by1hZGphY2VuY3ktbGlzdCIpLGk9dCgicGxhbmFyLWR1YWwiKSxhPXQoInBvaW50LWluLWJpZy1wb2x5Z29uIiksbz10KCJ0d28tcHJvZHVjdCIpLHM9dCgicm9idXN0LXN1bSIpLGw9dCgidW5pcSIpLGM9dCgiLi9saWIvdHJpbS1sZWF2ZXMiKTtmdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7bjx0OysrbilyW25dPWU7cmV0dXJuIHJ9fSx7Ii4vbGliL3RyaW0tbGVhdmVzIjo0NzcsImVkZ2VzLXRvLWFkamFjZW5jeS1saXN0IjoxNzksInBsYW5hci1kdWFsIjo0NzYsInBvaW50LWluLWJpZy1wb2x5Z29uIjo0NzksInJvYnVzdC1zdW0iOjUyOSwidHdvLXByb2R1Y3QiOjU3Nyx1bmlxOjU5Mn1dLDQ3OTpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj1bXSxhPVtdLHM9MDtzPGU7KytzKWZvcih2YXIgdT10W3NdLGY9dS5sZW5ndGgsaD1mLTEscD0wO3A8ZjtoPXArKyl7dmFyIGQ9dVtoXSxtPXVbcF07ZFswXT09PW1bMF0/YS5wdXNoKFtkLG1dKTpyLnB1c2goW2QsbV0pfWlmKDA9PT1yLmxlbmd0aClyZXR1cm4gMD09PWEubGVuZ3RoP2M6KGc9bChhKSxmdW5jdGlvbih0KXtyZXR1cm4gZyh0WzBdLHRbMV0pPzA6MX0pO3ZhciBnO3ZhciB2PWkocikseT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgaT1vLmxlKGUsclswXSk7aWYoaTwwKXJldHVybiAxO3ZhciBhPXRbaV07aWYoIWEpe2lmKCEoaT4wJiZlW2ldPT09clswXSkpcmV0dXJuIDE7YT10W2ktMV19Zm9yKHZhciBzPTE7YTspe3ZhciBsPWEua2V5LGM9bihyLGxbMF0sbFsxXSk7aWYobFswXVswXTxsWzFdWzBdKWlmKGM8MClhPWEubGVmdDtlbHNle2lmKCEoYz4wKSlyZXR1cm4gMDtzPS0xLGE9YS5yaWdodH1lbHNlIGlmKGM+MClhPWEubGVmdDtlbHNle2lmKCEoYzwwKSlyZXR1cm4gMDtzPTEsYT1hLnJpZ2h0fX1yZXR1cm4gc319KHYuc2xhYnMsdi5jb29yZGluYXRlcyk7cmV0dXJuIDA9PT1hLmxlbmd0aD95OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiB0KHJbMF0sclsxXSk/MDplKHIpfX0obChhKSx5KX07dmFyIG49dCgicm9idXN0LW9yaWVudGF0aW9uIilbM10saT10KCJzbGFiLWRlY29tcG9zaXRpb24iKSxhPXQoImludGVydmFsLXRyZWUtMWQiKSxvPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIik7ZnVuY3Rpb24gcygpe3JldHVybiEwfWZ1bmN0aW9uIGwodCl7Zm9yKHZhciBlPXt9LHI9MDtyPHQubGVuZ3RoOysrcil7dmFyIG49dFtyXSxpPW5bMF1bMF0sbz1uWzBdWzFdLGw9blsxXVsxXSxjPVtNYXRoLm1pbihvLGwpLE1hdGgubWF4KG8sbCldO2kgaW4gZT9lW2ldLnB1c2goYyk6ZVtpXT1bY119dmFyIHU9e30sZj1PYmplY3Qua2V5cyhlKTtmb3Iocj0wO3I8Zi5sZW5ndGg7KytyKXt2YXIgaD1lW2Zbcl1dO3VbZltyXV09YShoKX1yZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG49dFtlXTtyZXR1cm4hIW4mJiEhbi5xdWVyeVBvaW50KHIscyl9fSh1KX1mdW5jdGlvbiBjKHQpe3JldHVybiAxfX0seyJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTAwLCJpbnRlcnZhbC10cmVlLTFkIjo0MzAsInJvYnVzdC1vcmllbnRhdGlvbiI6NTI0LCJzbGFiLWRlY29tcG9zaXRpb24iOjU0MH1dLDQ4MDpbZnVuY3Rpb24odCxlLHIpewovKgogKiBAY29weXJpZ2h0IDIwMTYgU2VhbiBDb25uZWxseSAoQHZvaWRxayksIGh0dHA6Ly9zeW50aGV0aS5jYwogKiBAbGljZW5zZSBNSVQKICogQHByZXNlcnZlIFByb2plY3QgSG9tZTogaHR0cHM6Ly9naXRodWIuY29tL3ZvaWRxay9wb2x5Ym9vbGpzCiAqLwp2YXIgbixpPXQoIi4vbGliL2J1aWxkLWxvZyIpLGE9dCgiLi9saWIvZXBzaWxvbiIpLG89dCgiLi9saWIvaW50ZXJzZWN0ZXIiKSxzPXQoIi4vbGliL3NlZ21lbnQtY2hhaW5lciIpLGw9dCgiLi9saWIvc2VnbWVudC1zZWxlY3RvciIpLGM9dCgiLi9saWIvZ2VvanNvbiIpLHU9ITEsZj1hKCk7ZnVuY3Rpb24gaCh0LGUscil7dmFyIGk9bi5zZWdtZW50cyh0KSxhPW4uc2VnbWVudHMoZSksbz1yKG4uY29tYmluZShpLGEpKTtyZXR1cm4gbi5wb2x5Z29uKG8pfW49e2J1aWxkTG9nOmZ1bmN0aW9uKHQpe3JldHVybiEwPT09dD91PWkoKTohMT09PXQmJih1PSExKSwhMSE9PXUmJnUubGlzdH0sZXBzaWxvbjpmdW5jdGlvbih0KXtyZXR1cm4gZi5lcHNpbG9uKHQpfSxzZWdtZW50czpmdW5jdGlvbih0KXt2YXIgZT1vKCEwLGYsdSk7cmV0dXJuIHQucmVnaW9ucy5mb3JFYWNoKGUuYWRkUmVnaW9uKSx7c2VnbWVudHM6ZS5jYWxjdWxhdGUodC5pbnZlcnRlZCksaW52ZXJ0ZWQ6dC5pbnZlcnRlZH19LGNvbWJpbmU6ZnVuY3Rpb24odCxlKXtyZXR1cm57Y29tYmluZWQ6byghMSxmLHUpLmNhbGN1bGF0ZSh0LnNlZ21lbnRzLHQuaW52ZXJ0ZWQsZS5zZWdtZW50cyxlLmludmVydGVkKSxpbnZlcnRlZDE6dC5pbnZlcnRlZCxpbnZlcnRlZDI6ZS5pbnZlcnRlZH19LHNlbGVjdFVuaW9uOmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLnVuaW9uKHQuY29tYmluZWQsdSksaW52ZXJ0ZWQ6dC5pbnZlcnRlZDF8fHQuaW52ZXJ0ZWQyfX0sc2VsZWN0SW50ZXJzZWN0OmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLmludGVyc2VjdCh0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxJiZ0LmludmVydGVkMn19LHNlbGVjdERpZmZlcmVuY2U6ZnVuY3Rpb24odCl7cmV0dXJue3NlZ21lbnRzOmwuZGlmZmVyZW5jZSh0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxJiYhdC5pbnZlcnRlZDJ9fSxzZWxlY3REaWZmZXJlbmNlUmV2OmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLmRpZmZlcmVuY2VSZXYodC5jb21iaW5lZCx1KSxpbnZlcnRlZDohdC5pbnZlcnRlZDEmJnQuaW52ZXJ0ZWQyfX0sc2VsZWN0WG9yOmZ1bmN0aW9uKHQpe3JldHVybntzZWdtZW50czpsLnhvcih0LmNvbWJpbmVkLHUpLGludmVydGVkOnQuaW52ZXJ0ZWQxIT09dC5pbnZlcnRlZDJ9fSxwb2x5Z29uOmZ1bmN0aW9uKHQpe3JldHVybntyZWdpb25zOnModC5zZWdtZW50cyxmLHUpLGludmVydGVkOnQuaW52ZXJ0ZWR9fSxwb2x5Z29uRnJvbUdlb0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIGMudG9Qb2x5Z29uKG4sdCl9LHBvbHlnb25Ub0dlb0pTT046ZnVuY3Rpb24odCl7cmV0dXJuIGMuZnJvbVBvbHlnb24obixmLHQpfSx1bmlvbjpmdW5jdGlvbih0LGUpe3JldHVybiBoKHQsZSxuLnNlbGVjdFVuaW9uKX0saW50ZXJzZWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgodCxlLG4uc2VsZWN0SW50ZXJzZWN0KX0sZGlmZmVyZW5jZTpmdW5jdGlvbih0LGUpe3JldHVybiBoKHQsZSxuLnNlbGVjdERpZmZlcmVuY2UpfSxkaWZmZXJlbmNlUmV2OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgodCxlLG4uc2VsZWN0RGlmZmVyZW5jZVJldil9LHhvcjpmdW5jdGlvbih0LGUpe3JldHVybiBoKHQsZSxuLnNlbGVjdFhvcil9fSwib2JqZWN0Ij09dHlwZW9mIHdpbmRvdyYmKHdpbmRvdy5Qb2x5Qm9vbD1uKSxlLmV4cG9ydHM9bn0seyIuL2xpYi9idWlsZC1sb2ciOjQ4MSwiLi9saWIvZXBzaWxvbiI6NDgyLCIuL2xpYi9nZW9qc29uIjo0ODMsIi4vbGliL2ludGVyc2VjdGVyIjo0ODQsIi4vbGliL3NlZ21lbnQtY2hhaW5lciI6NDg2LCIuL2xpYi9zZWdtZW50LXNlbGVjdG9yIjo0ODd9XSw0ODE6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdCxlPTAscj0hMTtmdW5jdGlvbiBuKGUscil7cmV0dXJuIHQubGlzdC5wdXNoKHt0eXBlOmUsZGF0YTpyP0pTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocikpOnZvaWQgMH0pLHR9cmV0dXJuIHQ9e2xpc3Q6W10sc2VnbWVudElkOmZ1bmN0aW9uKCl7cmV0dXJuIGUrK30sY2hlY2tJbnRlcnNlY3Rpb246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hlY2siLHtzZWcxOnQsc2VnMjplfSl9LHNlZ21lbnRDaG9wOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImRpdl9zZWciLHtzZWc6dCxwdDplfSksbigiY2hvcCIse3NlZzp0LHB0OmV9KX0sc3RhdHVzUmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJwb3Bfc2VnIix7c2VnOnR9KX0sc2VnbWVudFVwZGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gbigic2VnX3VwZGF0ZSIse3NlZzp0fSl9LHNlZ21lbnROZXc6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigibmV3X3NlZyIse3NlZzp0LHByaW1hcnk6ZX0pfSxzZWdtZW50UmVtb3ZlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJyZW1fc2VnIix7c2VnOnR9KX0sdGVtcFN0YXR1czpmdW5jdGlvbih0LGUscil7cmV0dXJuIG4oInRlbXBfc3RhdHVzIix7c2VnOnQsYWJvdmU6ZSxiZWxvdzpyfSl9LHJld2luZDpmdW5jdGlvbih0KXtyZXR1cm4gbigicmV3aW5kIix7c2VnOnR9KX0sc3RhdHVzOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gbigic3RhdHVzIix7c2VnOnQsYWJvdmU6ZSxiZWxvdzpyfSl9LHZlcnQ6ZnVuY3Rpb24oZSl7cmV0dXJuIGU9PT1yP3Q6KHI9ZSxuKCJ2ZXJ0Iix7eDplfSkpfSxsb2c6ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyIhPXR5cGVvZiB0JiYodD1KU09OLnN0cmluZ2lmeSh0LCExLCIgICIpKSxuKCJsb2ciLHt0eHQ6dH0pfSxyZXNldDpmdW5jdGlvbigpe3JldHVybiBuKCJyZXNldCIpfSxzZWxlY3RlZDpmdW5jdGlvbih0KXtyZXR1cm4gbigic2VsZWN0ZWQiLHtzZWdzOnR9KX0sY2hhaW5TdGFydDpmdW5jdGlvbih0KXtyZXR1cm4gbigiY2hhaW5fc3RhcnQiLHtzZWc6dH0pfSxjaGFpblJlbW92ZUhlYWQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hhaW5fcmVtX2hlYWQiLHtpbmRleDp0LHB0OmV9KX0sY2hhaW5SZW1vdmVUYWlsOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX3JlbV90YWlsIix7aW5kZXg6dCxwdDplfSl9LGNoYWluTmV3OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX25ldyIse3B0MTp0LHB0MjplfSl9LGNoYWluTWF0Y2g6ZnVuY3Rpb24odCl7cmV0dXJuIG4oImNoYWluX21hdGNoIix7aW5kZXg6dH0pfSxjaGFpbkNsb3NlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJjaGFpbl9jbG9zZSIse2luZGV4OnR9KX0sY2hhaW5BZGRIZWFkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4oImNoYWluX2FkZF9oZWFkIix7aW5kZXg6dCxwdDplfSl9LGNoYWluQWRkVGFpbDpmdW5jdGlvbih0LGUpe3JldHVybiBuKCJjaGFpbl9hZGRfdGFpbCIse2luZGV4OnQscHQ6ZX0pfSxjaGFpbkNvbm5lY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbigiY2hhaW5fY29uIix7aW5kZXgxOnQsaW5kZXgyOmV9KX0sY2hhaW5SZXZlcnNlOmZ1bmN0aW9uKHQpe3JldHVybiBuKCJjaGFpbl9yZXYiLHtpbmRleDp0fSl9LGNoYWluSm9pbjpmdW5jdGlvbih0LGUpe3JldHVybiBuKCJjaGFpbl9qb2luIix7aW5kZXgxOnQsaW5kZXgyOmV9KX0sZG9uZTpmdW5jdGlvbigpe3JldHVybiBuKCJkb25lIil9fX19LHt9XSw0ODI6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Im51bWJlciIhPXR5cGVvZiB0JiYodD0xZS0xMCk7dmFyIGU9e2Vwc2lsb246ZnVuY3Rpb24oZSl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiBlJiYodD1lKSx0fSxwb2ludEFib3ZlT3JPbkxpbmU6ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPXJbMF0sYT1yWzFdLG89blswXSxzPW5bMV0sbD1lWzBdO3JldHVybihvLWkpKihlWzFdLWEpLShzLWEpKihsLWkpPj0tdH0scG9pbnRCZXR3ZWVuOmZ1bmN0aW9uKGUscixuKXt2YXIgaT1lWzFdLXJbMV0sYT1uWzBdLXJbMF0sbz1lWzBdLXJbMF0scz1uWzFdLXJbMV0sbD1vKmEraSpzO3JldHVybiEobDx0KSYmIShsLShhKmErcypzKT4tdCl9LHBvaW50c1NhbWVYOmZ1bmN0aW9uKGUscil7cmV0dXJuIE1hdGguYWJzKGVbMF0tclswXSk8dH0scG9pbnRzU2FtZVk6ZnVuY3Rpb24oZSxyKXtyZXR1cm4gTWF0aC5hYnMoZVsxXS1yWzFdKTx0fSxwb2ludHNTYW1lOmZ1bmN0aW9uKHQscil7cmV0dXJuIGUucG9pbnRzU2FtZVgodCxyKSYmZS5wb2ludHNTYW1lWSh0LHIpfSxwb2ludHNDb21wYXJlOmZ1bmN0aW9uKHQscil7cmV0dXJuIGUucG9pbnRzU2FtZVgodCxyKT9lLnBvaW50c1NhbWVZKHQscik/MDp0WzFdPHJbMV0/LTE6MTp0WzBdPHJbMF0/LTE6MX0scG9pbnRzQ29sbGluZWFyOmZ1bmN0aW9uKGUscixuKXt2YXIgaT1lWzBdLXJbMF0sYT1lWzFdLXJbMV0sbz1yWzBdLW5bMF0scz1yWzFdLW5bMV07cmV0dXJuIE1hdGguYWJzKGkqcy1vKmEpPHR9LGxpbmVzSW50ZXJzZWN0OmZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPXJbMF0tZVswXSxvPXJbMV0tZVsxXSxzPWlbMF0tblswXSxsPWlbMV0tblsxXSxjPWEqbC1vKnM7aWYoTWF0aC5hYnMoYyk8dClyZXR1cm4hMTt2YXIgdT1lWzBdLW5bMF0sZj1lWzFdLW5bMV0saD0ocypmLWwqdSkvYyxwPShhKmYtbyp1KS9jLGQ9e2Fsb25nQTowLGFsb25nQjowLHB0OltlWzBdK2gqYSxlWzFdK2gqb119O3JldHVybiBkLmFsb25nQT1oPD0tdD8tMjpoPHQ/LTE6aC0xPD0tdD8wOmgtMTx0PzE6MixkLmFsb25nQj1wPD0tdD8tMjpwPHQ/LTE6cC0xPD0tdD8wOnAtMTx0PzE6MixkfSxwb2ludEluc2lkZVJlZ2lvbjpmdW5jdGlvbihlLHIpe2Zvcih2YXIgbj1lWzBdLGk9ZVsxXSxhPXJbci5sZW5ndGgtMV1bMF0sbz1yW3IubGVuZ3RoLTFdWzFdLHM9ITEsbD0wO2w8ci5sZW5ndGg7bCsrKXt2YXIgYz1yW2xdWzBdLHU9cltsXVsxXTt1LWk+dCE9by1pPnQmJihhLWMpKihpLXUpLyhvLXUpK2Mtbj50JiYocz0hcyksYT1jLG89dX1yZXR1cm4gc319O3JldHVybiBlfX0se31dLDQ4MzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXt0b1BvbHlnb246ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKGUpe2lmKGUubGVuZ3RoPD0wKXJldHVybiB0LnNlZ21lbnRzKHtpbnZlcnRlZDohMSxyZWdpb25zOltdfSk7ZnVuY3Rpb24gcihlKXt2YXIgcj1lLnNsaWNlKDAsZS5sZW5ndGgtMSk7cmV0dXJuIHQuc2VnbWVudHMoe2ludmVydGVkOiExLHJlZ2lvbnM6W3JdfSl9Zm9yKHZhciBuPXIoZVswXSksaT0xO2k8ZS5sZW5ndGg7aSsrKW49dC5zZWxlY3REaWZmZXJlbmNlKHQuY29tYmluZShuLHIoZVtpXSkpKTtyZXR1cm4gbn1pZigiUG9seWdvbiI9PT1lLnR5cGUpcmV0dXJuIHQucG9seWdvbihyKGUuY29vcmRpbmF0ZXMpKTtpZigiTXVsdGlQb2x5Z29uIj09PWUudHlwZSl7Zm9yKHZhciBuPXQuc2VnbWVudHMoe2ludmVydGVkOiExLHJlZ2lvbnM6W119KSxpPTA7aTxlLmNvb3JkaW5hdGVzLmxlbmd0aDtpKyspbj10LnNlbGVjdFVuaW9uKHQuY29tYmluZShuLHIoZS5jb29yZGluYXRlc1tpXSkpKTtyZXR1cm4gdC5wb2x5Z29uKG4pfXRocm93IG5ldyBFcnJvcigiUG9seUJvb2w6IENhbm5vdCBjb252ZXJ0IEdlb0pTT04gb2JqZWN0IHRvIFBvbHlCb29sIHBvbHlnb24iKX0sZnJvbVBvbHlnb246ZnVuY3Rpb24odCxlLHIpe2Z1bmN0aW9uIG4odCxyKXtyZXR1cm4gZS5wb2ludEluc2lkZVJlZ2lvbihbLjUqKHRbMF1bMF0rdFsxXVswXSksLjUqKHRbMF1bMV0rdFsxXVsxXSldLHIpfWZ1bmN0aW9uIGkodCl7cmV0dXJue3JlZ2lvbjp0LGNoaWxkcmVuOltdfX1yPXQucG9seWdvbih0LnNlZ21lbnRzKHIpKTt2YXIgYT1pKG51bGwpO2Z1bmN0aW9uIG8odCxlKXtmb3IodmFyIHI9MDtyPHQuY2hpbGRyZW4ubGVuZ3RoO3IrKyl7aWYobihlLChzPXQuY2hpbGRyZW5bcl0pLnJlZ2lvbikpcmV0dXJuIHZvaWQgbyhzLGUpfXZhciBhPWkoZSk7Zm9yKHI9MDtyPHQuY2hpbGRyZW4ubGVuZ3RoO3IrKyl7dmFyIHM7bigocz10LmNoaWxkcmVuW3JdKS5yZWdpb24sZSkmJihhLmNoaWxkcmVuLnB1c2gocyksdC5jaGlsZHJlbi5zcGxpY2UociwxKSxyLS0pfXQuY2hpbGRyZW4ucHVzaChhKX1mb3IodmFyIHM9MDtzPHIucmVnaW9ucy5sZW5ndGg7cysrKXt2YXIgbD1yLnJlZ2lvbnNbc107bC5sZW5ndGg8M3x8byhhLGwpfWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIHI9MCxuPXRbdC5sZW5ndGgtMV1bMF0saT10W3QubGVuZ3RoLTFdWzFdLGE9W10sbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dWzBdLGw9dFtvXVsxXTthLnB1c2goW3MsbF0pLHIrPWwqbi1zKmksbj1zLGk9bH1yZXR1cm4gcjwwIT09ZSYmYS5yZXZlcnNlKCksYS5wdXNoKFthWzBdWzBdLGFbMF1bMV1dKSxhfXZhciB1PVtdO2Z1bmN0aW9uIGYodCl7dmFyIGU9W2ModC5yZWdpb24sITEpXTt1LnB1c2goZSk7Zm9yKHZhciByPTA7cjx0LmNoaWxkcmVuLmxlbmd0aDtyKyspZS5wdXNoKGgodC5jaGlsZHJlbltyXSkpfWZ1bmN0aW9uIGgodCl7Zm9yKHZhciBlPTA7ZTx0LmNoaWxkcmVuLmxlbmd0aDtlKyspZih0LmNoaWxkcmVuW2VdKTtyZXR1cm4gYyh0LnJlZ2lvbiwhMCl9Zm9yKHM9MDtzPGEuY2hpbGRyZW4ubGVuZ3RoO3MrKylmKGEuY2hpbGRyZW5bc10pO3JldHVybiB1Lmxlbmd0aDw9MD97dHlwZToiUG9seWdvbiIsY29vcmRpbmF0ZXM6W119OjE9PXUubGVuZ3RoP3t0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczp1WzBdfTp7dHlwZToiTXVsdGlQb2x5Z29uIixjb29yZGluYXRlczp1fX19O2UuZXhwb3J0cz1ufSx7fV0sNDg0OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9saW5rZWQtbGlzdCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gaSh0LGUsbil7cmV0dXJue2lkOnI/ci5zZWdtZW50SWQoKTotMSxzdGFydDp0LGVuZDplLG15RmlsbDp7YWJvdmU6bi5teUZpbGwuYWJvdmUsYmVsb3c6bi5teUZpbGwuYmVsb3d9LG90aGVyRmlsbDpudWxsfX12YXIgYT1uLmNyZWF0ZSgpO2Z1bmN0aW9uIG8odCxyKXthLmluc2VydEJlZm9yZSh0LChmdW5jdGlvbihuKXtyZXR1cm4gZnVuY3Rpb24odCxyLG4saSxhLG8pe3ZhciBzPWUucG9pbnRzQ29tcGFyZShyLGEpO3JldHVybiAwIT09cz9zOmUucG9pbnRzU2FtZShuLG8pPzA6dCE9PWk/dD8xOi0xOmUucG9pbnRBYm92ZU9yT25MaW5lKG4saT9hOm8saT9vOmEpPzE6LTF9KHQuaXNTdGFydCx0LnB0LHIsbi5pc1N0YXJ0LG4ucHQsbi5vdGhlci5wdCk8MH0pKX1mdW5jdGlvbiBzKHQsZSl7dmFyIHI9ZnVuY3Rpb24odCxlKXt2YXIgcj1uLm5vZGUoe2lzU3RhcnQ6ITAscHQ6dC5zdGFydCxzZWc6dCxwcmltYXJ5OmUsb3RoZXI6bnVsbCxzdGF0dXM6bnVsbH0pO3JldHVybiBvKHIsdC5lbmQpLHJ9KHQsZSk7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1uLm5vZGUoe2lzU3RhcnQ6ITEscHQ6ZS5lbmQsc2VnOmUscHJpbWFyeTpyLG90aGVyOnQsc3RhdHVzOm51bGx9KTt0Lm90aGVyPWksbyhpLHQucHQpfShyLHQsZSkscn1mdW5jdGlvbiBsKHQsZSl7dmFyIG49aShlLHQuc2VnLmVuZCx0LnNlZyk7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7ciYmci5zZWdtZW50Q2hvcCh0LnNlZyxlKSx0Lm90aGVyLnJlbW92ZSgpLHQuc2VnLmVuZD1lLHQub3RoZXIucHQ9ZSxvKHQub3RoZXIsdC5wdCl9KHQsZSkscyhuLHQucHJpbWFyeSl9ZnVuY3Rpb24gYyhpLG8pe3ZhciBzPW4uY3JlYXRlKCk7ZnVuY3Rpb24gYyh0KXtyZXR1cm4gcy5maW5kVHJhbnNpdGlvbigoZnVuY3Rpb24ocil7dmFyIG4saSxhLG8scyxsO3JldHVybihuPXQsaT1yLmV2LGE9bi5zZWcuc3RhcnQsbz1uLnNlZy5lbmQscz1pLnNlZy5zdGFydCxsPWkuc2VnLmVuZCxlLnBvaW50c0NvbGxpbmVhcihhLHMsbCk/ZS5wb2ludHNDb2xsaW5lYXIobyxzLGwpfHxlLnBvaW50QWJvdmVPck9uTGluZShvLHMsbCk/MTotMTplLnBvaW50QWJvdmVPck9uTGluZShhLHMsbCk/MTotMSk+MH0pKX1mdW5jdGlvbiB1KHQsbil7dmFyIGk9dC5zZWcsYT1uLnNlZyxvPWkuc3RhcnQscz1pLmVuZCxjPWEuc3RhcnQsdT1hLmVuZDtyJiZyLmNoZWNrSW50ZXJzZWN0aW9uKGksYSk7dmFyIGY9ZS5saW5lc0ludGVyc2VjdChvLHMsYyx1KTtpZighMT09PWYpe2lmKCFlLnBvaW50c0NvbGxpbmVhcihvLHMsYykpcmV0dXJuITE7aWYoZS5wb2ludHNTYW1lKG8sdSl8fGUucG9pbnRzU2FtZShzLGMpKXJldHVybiExO3ZhciBoPWUucG9pbnRzU2FtZShvLGMpLHA9ZS5wb2ludHNTYW1lKHMsdSk7aWYoaCYmcClyZXR1cm4gbjt2YXIgZD0haCYmZS5wb2ludEJldHdlZW4obyxjLHUpLG09IXAmJmUucG9pbnRCZXR3ZWVuKHMsYyx1KTtpZihoKXJldHVybiBtP2wobixzKTpsKHQsdSksbjtkJiYocHx8KG0/bChuLHMpOmwodCx1KSksbChuLG8pKX1lbHNlIDA9PT1mLmFsb25nQSYmKC0xPT09Zi5hbG9uZ0I/bCh0LGMpOjA9PT1mLmFsb25nQj9sKHQsZi5wdCk6MT09PWYuYWxvbmdCJiZsKHQsdSkpLDA9PT1mLmFsb25nQiYmKC0xPT09Zi5hbG9uZ0E/bChuLG8pOjA9PT1mLmFsb25nQT9sKG4sZi5wdCk6MT09PWYuYWxvbmdBJiZsKG4scykpO3JldHVybiExfWZvcih2YXIgZj1bXTshYS5pc0VtcHR5KCk7KXt2YXIgaD1hLmdldEhlYWQoKTtpZihyJiZyLnZlcnQoaC5wdFswXSksaC5pc1N0YXJ0KXtyJiZyLnNlZ21lbnROZXcoaC5zZWcsaC5wcmltYXJ5KTt2YXIgcD1jKGgpLGQ9cC5iZWZvcmU/cC5iZWZvcmUuZXY6bnVsbCxtPXAuYWZ0ZXI/cC5hZnRlci5ldjpudWxsO2Z1bmN0aW9uIGcoKXtpZihkKXt2YXIgdD11KGgsZCk7aWYodClyZXR1cm4gdH1yZXR1cm4hIW0mJnUoaCxtKX1yJiZyLnRlbXBTdGF0dXMoaC5zZWcsISFkJiZkLnNlZywhIW0mJm0uc2VnKTt2YXIgdix5PWcoKTtpZih5KXt2YXIgeDtpZih0KSh4PW51bGw9PT1oLnNlZy5teUZpbGwuYmVsb3d8fGguc2VnLm15RmlsbC5hYm92ZSE9PWguc2VnLm15RmlsbC5iZWxvdykmJih5LnNlZy5teUZpbGwuYWJvdmU9IXkuc2VnLm15RmlsbC5hYm92ZSk7ZWxzZSB5LnNlZy5vdGhlckZpbGw9aC5zZWcubXlGaWxsO3ImJnIuc2VnbWVudFVwZGF0ZSh5LnNlZyksaC5vdGhlci5yZW1vdmUoKSxoLnJlbW92ZSgpfWlmKGEuZ2V0SGVhZCgpIT09aCl7ciYmci5yZXdpbmQoaC5zZWcpO2NvbnRpbnVlfWlmKHQpeD1udWxsPT09aC5zZWcubXlGaWxsLmJlbG93fHxoLnNlZy5teUZpbGwuYWJvdmUhPT1oLnNlZy5teUZpbGwuYmVsb3csaC5zZWcubXlGaWxsLmJlbG93PW0/bS5zZWcubXlGaWxsLmFib3ZlOmksaC5zZWcubXlGaWxsLmFib3ZlPXg/IWguc2VnLm15RmlsbC5iZWxvdzpoLnNlZy5teUZpbGwuYmVsb3c7ZWxzZSBpZihudWxsPT09aC5zZWcub3RoZXJGaWxsKXY9bT9oLnByaW1hcnk9PT1tLnByaW1hcnk/bS5zZWcub3RoZXJGaWxsLmFib3ZlOm0uc2VnLm15RmlsbC5hYm92ZTpoLnByaW1hcnk/bzppLGguc2VnLm90aGVyRmlsbD17YWJvdmU6dixiZWxvdzp2fTtyJiZyLnN0YXR1cyhoLnNlZywhIWQmJmQuc2VnLCEhbSYmbS5zZWcpLGgub3RoZXIuc3RhdHVzPXAuaW5zZXJ0KG4ubm9kZSh7ZXY6aH0pKX1lbHNle3ZhciBiPWguc3RhdHVzO2lmKG51bGw9PT1iKXRocm93IG5ldyBFcnJvcigiUG9seUJvb2w6IFplcm8tbGVuZ3RoIHNlZ21lbnQgZGV0ZWN0ZWQ7IHlvdXIgZXBzaWxvbiBpcyBwcm9iYWJseSB0b28gc21hbGwgb3IgdG9vIGxhcmdlIik7aWYocy5leGlzdHMoYi5wcmV2KSYmcy5leGlzdHMoYi5uZXh0KSYmdShiLnByZXYuZXYsYi5uZXh0LmV2KSxyJiZyLnN0YXR1c1JlbW92ZShiLmV2LnNlZyksYi5yZW1vdmUoKSwhaC5wcmltYXJ5KXt2YXIgXz1oLnNlZy5teUZpbGw7aC5zZWcubXlGaWxsPWguc2VnLm90aGVyRmlsbCxoLnNlZy5vdGhlckZpbGw9X31mLnB1c2goaC5zZWcpfWEuZ2V0SGVhZCgpLnJlbW92ZSgpfXJldHVybiByJiZyLmRvbmUoKSxmfXJldHVybiB0P3thZGRSZWdpb246ZnVuY3Rpb24odCl7Zm9yKHZhciBuLGksYSxvPXRbdC5sZW5ndGgtMV0sbD0wO2w8dC5sZW5ndGg7bCsrKXtuPW8sbz10W2xdO3ZhciBjPWUucG9pbnRzQ29tcGFyZShuLG8pOzAhPT1jJiZzKChpPWM8MD9uOm8sYT1jPDA/bzpuLHtpZDpyP3Iuc2VnbWVudElkKCk6LTEsc3RhcnQ6aSxlbmQ6YSxteUZpbGw6e2Fib3ZlOm51bGwsYmVsb3c6bnVsbH0sb3RoZXJGaWxsOm51bGx9KSwhMCl9fSxjYWxjdWxhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwhMSl9fTp7Y2FsY3VsYXRlOmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybiB0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3MoaSh0LnN0YXJ0LHQuZW5kLHQpLCEwKX0pKSxyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3MoaSh0LnN0YXJ0LHQuZW5kLHQpLCExKX0pKSxjKGUsbil9fX19LHsiLi9saW5rZWQtbGlzdCI6NDg1fV0sNDg1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXtjcmVhdGU6ZnVuY3Rpb24oKXt2YXIgdD17cm9vdDp7cm9vdDohMCxuZXh0Om51bGx9LGV4aXN0czpmdW5jdGlvbihlKXtyZXR1cm4gbnVsbCE9PWUmJmUhPT10LnJvb3R9LGlzRW1wdHk6ZnVuY3Rpb24oKXtyZXR1cm4gbnVsbD09PXQucm9vdC5uZXh0fSxnZXRIZWFkOmZ1bmN0aW9uKCl7cmV0dXJuIHQucm9vdC5uZXh0fSxpbnNlcnRCZWZvcmU6ZnVuY3Rpb24oZSxyKXtmb3IodmFyIG49dC5yb290LGk9dC5yb290Lm5leHQ7bnVsbCE9PWk7KXtpZihyKGkpKXJldHVybiBlLnByZXY9aS5wcmV2LGUubmV4dD1pLGkucHJldi5uZXh0PWUsdm9pZChpLnByZXY9ZSk7bj1pLGk9aS5uZXh0fW4ubmV4dD1lLGUucHJldj1uLGUubmV4dD1udWxsfSxmaW5kVHJhbnNpdGlvbjpmdW5jdGlvbihlKXtmb3IodmFyIHI9dC5yb290LG49dC5yb290Lm5leHQ7bnVsbCE9PW4mJiFlKG4pOylyPW4sbj1uLm5leHQ7cmV0dXJue2JlZm9yZTpyPT09dC5yb290P251bGw6cixhZnRlcjpuLGluc2VydDpmdW5jdGlvbih0KXtyZXR1cm4gdC5wcmV2PXIsdC5uZXh0PW4sci5uZXh0PXQsbnVsbCE9PW4mJihuLnByZXY9dCksdH19fX07cmV0dXJuIHR9LG5vZGU6ZnVuY3Rpb24odCl7cmV0dXJuIHQucHJldj1udWxsLHQubmV4dD1udWxsLHQucmVtb3ZlPWZ1bmN0aW9uKCl7dC5wcmV2Lm5leHQ9dC5uZXh0LHQubmV4dCYmKHQubmV4dC5wcmV2PXQucHJldiksdC5wcmV2PW51bGwsdC5uZXh0PW51bGx9LHR9fX0se31dLDQ4NjpbZnVuY3Rpb24odCxlLHIpe2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49W10saT1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgYT10LnN0YXJ0LG89dC5lbmQ7aWYoZS5wb2ludHNTYW1lKGEsbykpY29uc29sZS53YXJuKCJQb2x5Qm9vbDogV2FybmluZzogWmVyby1sZW5ndGggc2VnbWVudCBkZXRlY3RlZDsgeW91ciBlcHNpbG9uIGlzIHByb2JhYmx5IHRvbyBzbWFsbCBvciB0b28gbGFyZ2UiKTtlbHNle3ImJnIuY2hhaW5TdGFydCh0KTtmb3IodmFyIHM9e2luZGV4OjAsbWF0Y2hlc19oZWFkOiExLG1hdGNoZXNfcHQxOiExfSxsPXtpbmRleDowLG1hdGNoZXNfaGVhZDohMSxtYXRjaGVzX3B0MTohMX0sYz1zLHU9MDt1PG4ubGVuZ3RoO3UrKyl7dmFyIGY9KGc9blt1XSlbMF0saD0oZ1sxXSxnW2cubGVuZ3RoLTFdKTtnW2cubGVuZ3RoLTJdO2lmKGUucG9pbnRzU2FtZShmLGEpKXtpZihrKHUsITAsITApKWJyZWFrfWVsc2UgaWYoZS5wb2ludHNTYW1lKGYsbykpe2lmKGsodSwhMCwhMSkpYnJlYWt9ZWxzZSBpZihlLnBvaW50c1NhbWUoaCxhKSl7aWYoayh1LCExLCEwKSlicmVha31lbHNlIGlmKGUucG9pbnRzU2FtZShoLG8pJiZrKHUsITEsITEpKWJyZWFrfWlmKGM9PT1zKXJldHVybiBuLnB1c2goW2Esb10pLHZvaWQociYmci5jaGFpbk5ldyhhLG8pKTtpZihjPT09bCl7ciYmci5jaGFpbk1hdGNoKHMuaW5kZXgpO3ZhciBwPXMuaW5kZXgsZD1zLm1hdGNoZXNfcHQxP286YSxtPXMubWF0Y2hlc19oZWFkLGc9bltwXSx2PW0/Z1swXTpnW2cubGVuZ3RoLTFdLHk9bT9nWzFdOmdbZy5sZW5ndGgtMl0seD1tP2dbZy5sZW5ndGgtMV06Z1swXSxiPW0/Z1tnLmxlbmd0aC0yXTpnWzFdO3JldHVybiBlLnBvaW50c0NvbGxpbmVhcih5LHYsZCkmJihtPyhyJiZyLmNoYWluUmVtb3ZlSGVhZChzLmluZGV4LGQpLGcuc2hpZnQoKSk6KHImJnIuY2hhaW5SZW1vdmVUYWlsKHMuaW5kZXgsZCksZy5wb3AoKSksdj15KSxlLnBvaW50c1NhbWUoeCxkKT8obi5zcGxpY2UocCwxKSxlLnBvaW50c0NvbGxpbmVhcihiLHgsdikmJihtPyhyJiZyLmNoYWluUmVtb3ZlVGFpbChzLmluZGV4LHYpLGcucG9wKCkpOihyJiZyLmNoYWluUmVtb3ZlSGVhZChzLmluZGV4LHYpLGcuc2hpZnQoKSkpLHImJnIuY2hhaW5DbG9zZShzLmluZGV4KSx2b2lkIGkucHVzaChnKSk6dm9pZChtPyhyJiZyLmNoYWluQWRkSGVhZChzLmluZGV4LGQpLGcudW5zaGlmdChkKSk6KHImJnIuY2hhaW5BZGRUYWlsKHMuaW5kZXgsZCksZy5wdXNoKGQpKSl9dmFyIF89cy5pbmRleCx3PWwuaW5kZXg7ciYmci5jaGFpbkNvbm5lY3QoXyx3KTt2YXIgVD1uW19dLmxlbmd0aDxuW3ddLmxlbmd0aDtzLm1hdGNoZXNfaGVhZD9sLm1hdGNoZXNfaGVhZD9UPyhBKF8pLE0oXyx3KSk6KEEodyksTSh3LF8pKTpNKHcsXyk6bC5tYXRjaGVzX2hlYWQ/TShfLHcpOlQ/KEEoXyksTSh3LF8pKTooQSh3KSxNKF8sdykpfWZ1bmN0aW9uIGsodCxlLHIpe3JldHVybiBjLmluZGV4PXQsYy5tYXRjaGVzX2hlYWQ9ZSxjLm1hdGNoZXNfcHQxPXIsYz09PXM/KGM9bCwhMSk6KGM9bnVsbCwhMCl9ZnVuY3Rpb24gQSh0KXtyJiZyLmNoYWluUmV2ZXJzZSh0KSxuW3RdLnJldmVyc2UoKX1mdW5jdGlvbiBNKHQsaSl7dmFyIGE9blt0XSxvPW5baV0scz1hW2EubGVuZ3RoLTFdLGw9YVthLmxlbmd0aC0yXSxjPW9bMF0sdT1vWzFdO2UucG9pbnRzQ29sbGluZWFyKGwscyxjKSYmKHImJnIuY2hhaW5SZW1vdmVUYWlsKHQscyksYS5wb3AoKSxzPWwpLGUucG9pbnRzQ29sbGluZWFyKHMsYyx1KSYmKHImJnIuY2hhaW5SZW1vdmVIZWFkKGksYyksby5zaGlmdCgpKSxyJiZyLmNoYWluSm9pbih0LGkpLG5bdF09YS5jb25jYXQobyksbi5zcGxpY2UoaSwxKX19KSksaX19LHt9XSw0ODc6W2Z1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQsZSxyKXt2YXIgbj1bXTtyZXR1cm4gdC5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgaT0odC5teUZpbGwuYWJvdmU/ODowKSsodC5teUZpbGwuYmVsb3c/NDowKSsodC5vdGhlckZpbGwmJnQub3RoZXJGaWxsLmFib3ZlPzI6MCkrKHQub3RoZXJGaWxsJiZ0Lm90aGVyRmlsbC5iZWxvdz8xOjApOzAhPT1lW2ldJiZuLnB1c2goe2lkOnI/ci5zZWdtZW50SWQoKTotMSxzdGFydDp0LnN0YXJ0LGVuZDp0LmVuZCxteUZpbGw6e2Fib3ZlOjE9PT1lW2ldLGJlbG93OjI9PT1lW2ldfSxvdGhlckZpbGw6bnVsbH0pfSkpLHImJnIuc2VsZWN0ZWQobiksbn12YXIgaT17dW5pb246ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LFswLDIsMSwwLDIsMiwwLDAsMSwwLDEsMCwwLDAsMCwwXSxlKX0saW50ZXJzZWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCxbMCwwLDAsMCwwLDIsMCwyLDAsMCwxLDEsMCwyLDEsMF0sZSl9LGRpZmZlcmVuY2U6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LFswLDAsMCwwLDIsMCwyLDAsMSwxLDAsMCwwLDEsMiwwXSxlKX0sZGlmZmVyZW5jZVJldjpmdW5jdGlvbih0LGUpe3JldHVybiBuKHQsWzAsMiwxLDAsMCwwLDEsMSwwLDIsMCwyLDAsMCwwLDBdLGUpfSx4b3I6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbih0LFswLDIsMSwwLDIsMCwwLDEsMSwwLDAsMiwwLDEsMiwwXSxlKX19O2UuZXhwb3J0cz1pfSx7fV0sNDg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPW5ldyBGbG9hdDY0QXJyYXkoNCksaT1uZXcgRmxvYXQ2NEFycmF5KDQpLGE9bmV3IEZsb2F0NjRBcnJheSg0KTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyxzKXtuLmxlbmd0aDxvLmxlbmd0aCYmKG49bmV3IEZsb2F0NjRBcnJheShvLmxlbmd0aCksaT1uZXcgRmxvYXQ2NEFycmF5KG8ubGVuZ3RoKSxhPW5ldyBGbG9hdDY0QXJyYXkoby5sZW5ndGgpKTtmb3IodmFyIGw9MDtsPG8ubGVuZ3RoOysrbCluW2xdPXRbbF0tb1tsXSxpW2xdPWVbbF0tdFtsXSxhW2xdPXJbbF0tdFtsXTt2YXIgYz0wLHU9MCxmPTAsaD0wLHA9MCxkPTA7Zm9yKGw9MDtsPG8ubGVuZ3RoOysrbCl7dmFyIG09aVtsXSxnPWFbbF0sdj1uW2xdO2MrPW0qbSx1Kz1tKmcsZis9ZypnLGgrPXYqbSxwKz12KmcsZCs9dip2fXZhciB5LHgsYixfLHcsVD1NYXRoLmFicyhjKmYtdSp1KSxrPXUqcC1mKmgsQT11KmgtYypwO2lmKGsrQTw9VClpZihrPDApQTwwJiZoPDA/KEE9MCwtaD49Yz8oaz0xLHk9YysyKmgrZCk6eT1oKihrPS1oL2MpK2QpOihrPTAscD49MD8oQT0wLHk9ZCk6LXA+PWY/KEE9MSx5PWYrMipwK2QpOnk9cCooQT0tcC9mKStkKTtlbHNlIGlmKEE8MClBPTAsaD49MD8oaz0wLHk9ZCk6LWg+PWM/KGs9MSx5PWMrMipoK2QpOnk9aCooaz0taC9jKStkO2Vsc2V7dmFyIE09MS9UO3k9KGsqPU0pKihjKmsrdSooQSo9TSkrMipoKStBKih1KmsrZipBKzIqcCkrZH1lbHNlIGs8MD8oYj1mK3ApPih4PXUraCk/KF89Yi14KT49KHc9Yy0yKnUrZik/KGs9MSxBPTAseT1jKzIqaCtkKTp5PShrPV8vdykqKGMqayt1KihBPTEtaykrMipoKStBKih1KmsrZipBKzIqcCkrZDooaz0wLGI8PTA/KEE9MSx5PWYrMipwK2QpOnA+PTA/KEE9MCx5PWQpOnk9cCooQT0tcC9mKStkKTpBPDA/KGI9YytoKT4oeD11K3ApPyhfPWIteCk+PSh3PWMtMip1K2YpPyhBPTEsaz0wLHk9ZisyKnArZCk6eT0oaz0xLShBPV8vdykpKihjKmsrdSpBKzIqaCkrQSoodSprK2YqQSsyKnApK2Q6KEE9MCxiPD0wPyhrPTEseT1jKzIqaCtkKTpoPj0wPyhrPTAseT1kKTp5PWgqKGs9LWgvYykrZCk6KF89ZitwLXUtaCk8PTA/KGs9MCxBPTEseT1mKzIqcCtkKTpfPj0odz1jLTIqdStmKT8oaz0xLEE9MCx5PWMrMipoK2QpOnk9KGs9Xy93KSooYyprK3UqKEE9MS1rKSsyKmgpK0EqKHUqaytmKkErMipwKStkO3ZhciBTPTEtay1BO2ZvcihsPTA7bDxvLmxlbmd0aDsrK2wpc1tsXT1TKnRbbF0rayplW2xdK0EqcltsXTtyZXR1cm4geTwwPzA6eX19LHt9XSw0ODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgic3RyZWFtIikuVHJhbnNmb3JtLGk9dCgic3RyZWFtLXBhcnNlciIpO2Z1bmN0aW9uIGEoKXtuLmNhbGwodGhpcyx7cmVhZGFibGVPYmplY3RNb2RlOiEwfSl9ZnVuY3Rpb24gbyh0LGUscil7RXJyb3IuY2FsbCh0aGlzKSxFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLHRoaXMuY29uc3RydWN0b3IpLHRoaXMubmFtZT10aGlzLmNvbnN0cnVjdG9yLm5hbWUsdGhpcy5tZXNzYWdlPXQsZSYmKHRoaXMuY29kZT1lKSxyJiYodGhpcy5zdGF0dXNDb2RlPXIpfWEucHJvdG90eXBlPU9iamVjdC5jcmVhdGUobi5wcm90b3R5cGUpLGEucHJvdG90eXBlLmNvbnN0cnVjdG9yPWEsaShhLnByb3RvdHlwZSksci5QYXJzZXJTdHJlYW09YSxyLnNsaWNlRXE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1lLGk9MDtpPHIubGVuZ3RoOylpZih0W24rK10hPT1yW2krK10pcmV0dXJuITE7cmV0dXJuITB9LHIuc3RyMmFycj1mdW5jdGlvbih0LGUpe3ZhciByPVtdLG49MDtpZihlJiYiaGV4Ij09PWUpZm9yKDtuPHQubGVuZ3RoOylyLnB1c2gocGFyc2VJbnQodC5zbGljZShuLG4rMiksMTYpKSxuKz0yO2Vsc2UgZm9yKDtuPHQubGVuZ3RoO24rKylyLnB1c2goMjU1JnQuY2hhckNvZGVBdChuKSk7cmV0dXJuIHJ9LHIucmVhZFVJbnQxNkxFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZV18dFtlKzFdPDw4fSxyLnJlYWRVSW50MTZCRT1mdW5jdGlvbih0LGUpe3JldHVybiB0W2UrMV18dFtlXTw8OH0sci5yZWFkVUludDMyTEU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlXXx0W2UrMV08PDh8dFtlKzJdPDwxNnwxNjc3NzIxNip0W2UrM119LHIucmVhZFVJbnQzMkJFPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbZSszXXx0W2UrMl08PDh8dFtlKzFdPDwxNnwxNjc3NzIxNip0W2VdfSxvLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKEVycm9yLnByb3RvdHlwZSksby5wcm90b3R5cGUuY29uc3RydWN0b3I9byxyLlByb2JlRXJyb3I9b30se3N0cmVhbTo1NDMsInN0cmVhbS1wYXJzZXIiOjU1OH1dLDQ5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9bmV3IEVycm9yKHQpO3JldHVybiByLmNvZGU9ZSxyfWZ1bmN0aW9uIGkodCl7dHJ5e3JldHVybiBkZWNvZGVVUklDb21wb25lbnQoZXNjYXBlKHQpKX1jYXRjaChlKXtyZXR1cm4gdH19ZnVuY3Rpb24gYSh0LGUscil7dGhpcy5pbnB1dD10LnN1YmFycmF5KGUsciksdGhpcy5zdGFydD1lO3ZhciBpPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx0aGlzLmlucHV0LnN1YmFycmF5KDAsNCkpO2lmKCJJSSpcMCIhPT1pJiYiTU1cMCoiIT09aSl0aHJvdyBuKCJpbnZhbGlkIFRJRkYgc2lnbmF0dXJlIiwiRUJBRERBVEEiKTt0aGlzLmJpZ19lbmRpYW49Ik0iPT09aVswXX1hLnByb3RvdHlwZS5lYWNoPWZ1bmN0aW9uKHQpe3RoaXMuYWJvcnRlZD0hMTt2YXIgZT10aGlzLnJlYWRfdWludDMyKDQpO2Zvcih0aGlzLmlmZHNfdG9fcmVhZD1be2lkOjAsb2Zmc2V0OmV9XTt0aGlzLmlmZHNfdG9fcmVhZC5sZW5ndGg+MCYmIXRoaXMuYWJvcnRlZDspe3ZhciByPXRoaXMuaWZkc190b19yZWFkLnNoaWZ0KCk7ci5vZmZzZXQmJnRoaXMuc2Nhbl9pZmQoci5pZCxyLm9mZnNldCx0KX19LGEucHJvdG90eXBlLnJlYWRfdWludDE2PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXQ7aWYodCsyPmUubGVuZ3RoKXRocm93IG4oInVuZXhwZWN0ZWQgRU9GIiwiRUJBRERBVEEiKTtyZXR1cm4gdGhpcy5iaWdfZW5kaWFuPzI1NiplW3RdK2VbdCsxXTplW3RdKzI1NiplW3QrMV19LGEucHJvdG90eXBlLnJlYWRfdWludDMyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaW5wdXQ7aWYodCs0PmUubGVuZ3RoKXRocm93IG4oInVuZXhwZWN0ZWQgRU9GIiwiRUJBRERBVEEiKTtyZXR1cm4gdGhpcy5iaWdfZW5kaWFuPzE2Nzc3MjE2KmVbdF0rNjU1MzYqZVt0KzFdKzI1NiplW3QrMl0rZVt0KzNdOmVbdF0rMjU2KmVbdCsxXSs2NTUzNiplW3QrMl0rMTY3NzcyMTYqZVt0KzNdfSxhLnByb3RvdHlwZS5pc19zdWJpZmRfbGluaz1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09dCYmMzQ2NjU9PT1lfHwwPT09dCYmMzQ4NTM9PT1lfHwzNDY2NT09PXQmJjQwOTY1PT09ZX0sYS5wcm90b3R5cGUuZXhpZl9mb3JtYXRfbGVuZ3RoPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIDE6Y2FzZSAyOmNhc2UgNjpjYXNlIDc6cmV0dXJuIDE7Y2FzZSAzOmNhc2UgODpyZXR1cm4gMjtjYXNlIDQ6Y2FzZSA5OmNhc2UgMTE6cmV0dXJuIDQ7Y2FzZSA1OmNhc2UgMTA6Y2FzZSAxMjpyZXR1cm4gODtkZWZhdWx0OnJldHVybiAwfX0sYS5wcm90b3R5cGUuZXhpZl9mb3JtYXRfcmVhZD1mdW5jdGlvbih0LGUpe3ZhciByO3N3aXRjaCh0KXtjYXNlIDE6Y2FzZSAyOnJldHVybiByPXRoaXMuaW5wdXRbZV07Y2FzZSA2OnJldHVybihyPXRoaXMuaW5wdXRbZV0pfDMzNTU0NDMwKigxMjgmcik7Y2FzZSAzOnJldHVybiByPXRoaXMucmVhZF91aW50MTYoZSk7Y2FzZSA4OnJldHVybihyPXRoaXMucmVhZF91aW50MTYoZSkpfDEzMTA3MCooMzI3Njgmcik7Y2FzZSA0OnJldHVybiByPXRoaXMucmVhZF91aW50MzIoZSk7Y2FzZSA5OnJldHVybiAwfChyPXRoaXMucmVhZF91aW50MzIoZSkpO2Nhc2UgNTpjYXNlIDEwOmNhc2UgMTE6Y2FzZSAxMjpjYXNlIDc6ZGVmYXVsdDpyZXR1cm4gbnVsbH19LGEucHJvdG90eXBlLnNjYW5faWZkPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT10aGlzLnJlYWRfdWludDE2KGUpO2UrPTI7Zm9yKHZhciBvPTA7bzxhO28rKyl7dmFyIHM9dGhpcy5yZWFkX3VpbnQxNihlKSxsPXRoaXMucmVhZF91aW50MTYoZSsyKSxjPXRoaXMucmVhZF91aW50MzIoZSs0KSx1PXRoaXMuZXhpZl9mb3JtYXRfbGVuZ3RoKGwpLGY9Yyp1LGg9Zjw9ND9lKzg6dGhpcy5yZWFkX3VpbnQzMihlKzgpLHA9ITE7aWYoaCtmPnRoaXMuaW5wdXQubGVuZ3RoKXRocm93IG4oInVuZXhwZWN0ZWQgRU9GIiwiRUJBRERBVEEiKTtmb3IodmFyIGQ9W10sbT1oLGc9MDtnPGM7ZysrLG0rPXUpe3ZhciB2PXRoaXMuZXhpZl9mb3JtYXRfcmVhZChsLG0pO2lmKG51bGw9PT12KXtkPW51bGw7YnJlYWt9ZC5wdXNoKHYpfWlmKEFycmF5LmlzQXJyYXkoZCkmJjI9PT1sJiYoZD1pKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxkKSkpJiYiXDAiPT09ZFtkLmxlbmd0aC0xXSYmKGQ9ZC5zbGljZSgwLC0xKSksdGhpcy5pc19zdWJpZmRfbGluayh0LHMpJiZBcnJheS5pc0FycmF5KGQpJiZOdW1iZXIuaXNJbnRlZ2VyKGRbMF0pJiZkWzBdPjAmJih0aGlzLmlmZHNfdG9fcmVhZC5wdXNoKHtpZDpzLG9mZnNldDpkWzBdfSkscD0hMCksITE9PT1yKHtpc19iaWdfZW5kaWFuOnRoaXMuYmlnX2VuZGlhbixpZmQ6dCx0YWc6cyxmb3JtYXQ6bCxjb3VudDpjLGVudHJ5X29mZnNldDplK3RoaXMuc3RhcnQsZGF0YV9sZW5ndGg6ZixkYXRhX29mZnNldDpoK3RoaXMuc3RhcnQsdmFsdWU6ZCxpc19zdWJpZmRfbGluazpwfSkpcmV0dXJuIHZvaWQodGhpcy5hYm9ydGVkPSEwKTtlKz0xMn0wPT09dCYmdGhpcy5pZmRzX3RvX3JlYWQucHVzaCh7aWQ6MSxvZmZzZXQ6dGhpcy5yZWFkX3VpbnQzMihlKX0pfSxlLmV4cG9ydHMuRXhpZlBhcnNlcj1hLGUuZXhwb3J0cy5nZXRfb3JpZW50YXRpb249ZnVuY3Rpb24odCl7dmFyIGU9MDt0cnl7cmV0dXJuIG5ldyBhKHQsMCx0Lmxlbmd0aCkuZWFjaCgoZnVuY3Rpb24odCl7aWYoMD09PXQuaWZkJiYyNzQ9PT10LnRhZyYmQXJyYXkuaXNBcnJheSh0LnZhbHVlKSlyZXR1cm4gZT10LnZhbHVlWzBdLCExfSkpLGV9Y2F0Y2godCl7cmV0dXJuLTF9fX0se31dLDQ5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbW1vbiIpLnJlYWRVSW50MTZCRSxpPXQoIi4vY29tbW9uIikucmVhZFVJbnQzMkJFO2Z1bmN0aW9uIGEodCxlKXtpZih0Lmxlbmd0aDw0K2UpcmV0dXJuIG51bGw7dmFyIHI9aSh0LGUpO3JldHVybiB0Lmxlbmd0aDxyK2V8fHI8OD9udWxsOntib3h0eXBlOlN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx0LnNsaWNlKGUrNCxlKzgpKSxkYXRhOnQuc2xpY2UoZSs4LGUrciksZW5kOmUrcn19ZnVuY3Rpb24gbyh0LGUpe2Zvcih2YXIgcj0wOzspe3ZhciBuPWEodCxyKTtpZighbilicmVhaztzd2l0Y2gobi5ib3h0eXBlKXtjYXNlImlzcGUiOmUuc2l6ZXMucHVzaCh7d2lkdGg6aShuLmRhdGEsNCksaGVpZ2h0Omkobi5kYXRhLDgpfSk7YnJlYWs7Y2FzZSJpcm90IjplLnRyYW5zZm9ybXMucHVzaCh7dHlwZToiaXJvdCIsdmFsdWU6MyZuLmRhdGFbMF19KTticmVhaztjYXNlImltaXIiOmUudHJhbnNmb3Jtcy5wdXNoKHt0eXBlOiJpbWlyIix2YWx1ZToxJm4uZGF0YVswXX0pfXI9bi5lbmR9fWZ1bmN0aW9uIHModCxlLHIpe2Zvcih2YXIgbj0wLGk9MDtpPHI7aSsrKW49MjU2Km4rKHRbZStpXXx8MCk7cmV0dXJuIG59ZnVuY3Rpb24gbCh0LGUpe2Zvcih2YXIgcj10WzRdPj40JjE1LGk9MTUmdFs0XSxhPXRbNV0+PjQmMTUsbz1uKHQsNiksbD04LGM9MDtjPG87YysrKXt2YXIgdT1uKHQsbCksZj1uKHQsbCs9MiksaD1zKHQsbCs9MixhKSxwPW4odCxsKz1hKTtpZihsKz0yLDA9PT1mJiYxPT09cCl7dmFyIGQ9cyh0LGwsciksbT1zKHQsbCtyLGkpO2UuaXRlbV9sb2NbdV09e2xlbmd0aDptLG9mZnNldDpkK2h9fWwrPXAqKHIraSl9fWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIHI9bih0LDQpLGk9NixvPTA7bzxyO28rKyl7dmFyIHM9YSh0LGkpO2lmKCFzKWJyZWFrO2lmKCJpbmZlIj09PXMuYm94dHlwZSl7Zm9yKHZhciBsPW4ocy5kYXRhLDQpLGM9IiIsdT04O3U8cy5kYXRhLmxlbmd0aCYmcy5kYXRhW3VdO3UrKyljKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHMuZGF0YVt1XSk7ZS5pdGVtX2luZltjXT1sfWk9cy5lbmR9fWZ1bmN0aW9uIHUodCxlKXtmb3IodmFyIHI9MDs7KXt2YXIgbj1hKHQscik7aWYoIW4pYnJlYWs7ImlwY28iPT09bi5ib3h0eXBlJiZvKG4uZGF0YSxlKSxyPW4uZW5kfX1lLmV4cG9ydHMudW5ib3g9YSxlLmV4cG9ydHMucmVhZFNpemVGcm9tTWV0YT1mdW5jdGlvbih0KXt2YXIgZT17c2l6ZXM6W10sdHJhbnNmb3JtczpbXSxpdGVtX2luZjp7fSxpdGVtX2xvYzp7fX07aWYoZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9NDs7KXt2YXIgbj1hKHQscik7aWYoIW4pYnJlYWs7ImlwcnAiPT09bi5ib3h0eXBlJiZ1KG4uZGF0YSxlKSwiaWxvYyI9PT1uLmJveHR5cGUmJmwobi5kYXRhLGUpLCJpaW5mIj09PW4uYm94dHlwZSYmYyhuLmRhdGEsZSkscj1uLmVuZH19KHQsZSksZS5zaXplcy5sZW5ndGgpe3ZhciByLG4saSxvPShyPWUuc2l6ZXMsbj1yLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC53aWR0aD5lLndpZHRofHx0LndpZHRoPT09ZS53aWR0aCYmdC5oZWlnaHQ+ZS5oZWlnaHQ/dDplfSkpLGk9ci5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaGVpZ2h0PmUuaGVpZ2h0fHx0LmhlaWdodD09PWUuaGVpZ2h0JiZ0LndpZHRoPmUud2lkdGg/dDplfSkpLG4ud2lkdGg+aS5oZWlnaHR8fG4ud2lkdGg9PT1pLmhlaWdodCYmbi5oZWlnaHQ+aS53aWR0aD9uOmkpLHM9MTtlLnRyYW5zZm9ybXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9ezE6NiwyOjUsMzo4LDQ6Nyw1OjQsNjozLDc6Miw4OjF9LHI9ezE6NCwyOjMsMzoyLDQ6MSw1OjYsNjo1LDc6OCw4Ojd9O2lmKCJpbWlyIj09PXQudHlwZSYmKHM9MD09PXQudmFsdWU/cltzXTplW3M9ZVtzPXJbc11dXSksImlyb3QiPT09dC50eXBlKWZvcih2YXIgbj0wO248dC52YWx1ZTtuKyspcz1lW3NdfSkpO3ZhciBmPW51bGw7cmV0dXJuIGUuaXRlbV9pbmYuRXhpZiYmKGY9ZS5pdGVtX2xvY1tlLml0ZW1faW5mLkV4aWZdKSx7d2lkdGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHQsb3JpZW50YXRpb246ZS50cmFuc2Zvcm1zLmxlbmd0aD9zOm51bGwsdmFyaWFudHM6ZS5zaXplcyxleGlmX2xvY2F0aW9uOmZ9fX0sZS5leHBvcnRzLmdldE1pbWVUeXBlPWZ1bmN0aW9uKHQpe3ZhciBlPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCx0LnNsaWNlKDAsNCkpLHI9e307cltlXT0hMDtmb3IodmFyIG49ODtuPHQubGVuZ3RoO24rPTQpcltTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdC5zbGljZShuLG4rNCkpXT0hMDtpZihyLm1pZjF8fHIubXNmMXx8ci5taWFmKXJldHVybiJhdmlmIj09PWV8fCJhdmlzIj09PWV8fCJhdmlvIj09PWU/e3R5cGU6ImF2aWYiLG1pbWU6ImltYWdlL2F2aWYifToiaGVpYyI9PT1lfHwiaGVpeCI9PT1lP3t0eXBlOiJoZWljIixtaW1lOiJpbWFnZS9oZWljIn06ImhldmMiPT09ZXx8ImhldngiPT09ZT97dHlwZToiaGVpYyIsbWltZToiaW1hZ2UvaGVpYy1zZXF1ZW5jZSJ9OnIuYXZpZnx8ci5hdmlzP3t0eXBlOiJhdmlmIixtaW1lOiJpbWFnZS9hdmlmIn06ci5oZWljfHxyLmhlaXh8fHIuaGV2Y3x8ci5oZXZ4fHxyLmhlaXM/ci5tc2YxP3t0eXBlOiJoZWlmIixtaW1lOiJpbWFnZS9oZWlmLXNlcXVlbmNlIn06e3R5cGU6ImhlaWYiLG1pbWU6ImltYWdlL2hlaWYifTp7dHlwZToiYXZpZiIsbWltZToiaW1hZ2UvYXZpZiJ9fX0seyIuL2NvbW1vbiI6NDg5fV0sNDkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbW1vbiIpLnN0cjJhcnIsaT10KCIuLi9jb21tb24iKS5zbGljZUVxLGE9dCgiLi4vY29tbW9uIikucmVhZFVJbnQzMkJFLG89dCgiLi4vbWlhZl91dGlscyIpLHM9dCgiLi4vZXhpZl91dGlscyIpLGw9bigiZnR5cCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZihpKHQsNCxsKSl7dmFyIGU9by51bmJveCh0LDApO2lmKGUpe3ZhciByPW8uZ2V0TWltZVR5cGUoZS5kYXRhKTtpZihyKXtmb3IodmFyIG4sYz1lLmVuZDs7KXt2YXIgdT1vLnVuYm94KHQsYyk7aWYoIXUpYnJlYWs7aWYoYz11LmVuZCwibWRhdCI9PT11LmJveHR5cGUpcmV0dXJuO2lmKCJtZXRhIj09PXUuYm94dHlwZSl7bj11LmRhdGE7YnJlYWt9fWlmKG4pe3ZhciBmPW8ucmVhZFNpemVGcm9tTWV0YShuKTtpZihmKXt2YXIgaD17d2lkdGg6Zi53aWR0aCxoZWlnaHQ6Zi5oZWlnaHQsdHlwZTpyLnR5cGUsbWltZTpyLm1pbWUsd1VuaXRzOiJweCIsaFVuaXRzOiJweCJ9O2lmKGYudmFyaWFudHMubGVuZ3RoPjEmJihoLnZhcmlhbnRzPWYudmFyaWFudHMpLGYub3JpZW50YXRpb24mJihoLm9yaWVudGF0aW9uPWYub3JpZW50YXRpb24pLGYuZXhpZl9sb2NhdGlvbiYmZi5leGlmX2xvY2F0aW9uLm9mZnNldCtmLmV4aWZfbG9jYXRpb24ubGVuZ3RoPD10Lmxlbmd0aCl7dmFyIHA9YSh0LGYuZXhpZl9sb2NhdGlvbi5vZmZzZXQpLGQ9dC5zbGljZShmLmV4aWZfbG9jYXRpb24ub2Zmc2V0K3ArNCxmLmV4aWZfbG9jYXRpb24ub2Zmc2V0K2YuZXhpZl9sb2NhdGlvbi5sZW5ndGgpLG09cy5nZXRfb3JpZW50YXRpb24oZCk7bT4wJiYoaC5vcmllbnRhdGlvbj1tKX1yZXR1cm4gaH19fX19fX0seyIuLi9jb21tb24iOjQ4OSwiLi4vZXhpZl91dGlscyI6NDkwLCIuLi9taWFmX3V0aWxzIjo0OTF9XSw0OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29tbW9uIikuc3RyMmFycixpPXQoIi4uL2NvbW1vbiIpLnNsaWNlRXEsYT10KCIuLi9jb21tb24iKS5yZWFkVUludDE2TEUsbz1uKCJCTSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighKHQubGVuZ3RoPDI2KSYmaSh0LDAsbykpcmV0dXJue3dpZHRoOmEodCwxOCksaGVpZ2h0OmEodCwyMiksdHlwZToiYm1wIixtaW1lOiJpbWFnZS9ibXAiLHdVbml0czoicHgiLGhVbml0czoicHgifX19LHsiLi4vY29tbW9uIjo0ODl9XSw0OTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29tbW9uIikuc3RyMmFycixpPXQoIi4uL2NvbW1vbiIpLnNsaWNlRXEsYT10KCIuLi9jb21tb24iKS5yZWFkVUludDE2TEUsbz1uKCJHSUY4N2EiKSxzPW4oIkdJRjg5YSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighKHQubGVuZ3RoPDEwKSYmKGkodCwwLG8pfHxpKHQsMCxzKSkpcmV0dXJue3dpZHRoOmEodCw2KSxoZWlnaHQ6YSh0LDgpLHR5cGU6ImdpZiIsbWltZToiaW1hZ2UvZ2lmIix3VW5pdHM6InB4IixoVW5pdHM6InB4In19fSx7Ii4uL2NvbW1vbiI6NDg5fV0sNDk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MTZMRTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0LDApLHI9bih0LDIpLGk9bih0LDQpO2lmKDA9PT1lJiYxPT09ciYmaSl7Zm9yKHZhciBhPVtdLG89e3dpZHRoOjAsaGVpZ2h0OjB9LHM9MDtzPGk7cysrKXt2YXIgbD10WzYrMTYqc118fDI1NixjPXRbNisxNipzKzFdfHwyNTYsdT17d2lkdGg6bCxoZWlnaHQ6Y307YS5wdXNoKHUpLChsPm8ud2lkdGh8fGM+by5oZWlnaHQpJiYobz11KX1yZXR1cm57d2lkdGg6by53aWR0aCxoZWlnaHQ6by5oZWlnaHQsdmFyaWFudHM6YSx0eXBlOiJpY28iLG1pbWU6ImltYWdlL3gtaWNvbiIsd1VuaXRzOiJweCIsaFVuaXRzOiJweCJ9fX19LHsiLi4vY29tbW9uIjo0ODl9XSw0OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29tbW9uIikucmVhZFVJbnQxNkJFLGk9dCgiLi4vY29tbW9uIikuc3RyMmFycixhPXQoIi4uL2NvbW1vbiIpLnNsaWNlRXEsbz10KCIuLi9leGlmX3V0aWxzIikscz1pKCJFeGlmXDBcMCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighKHQubGVuZ3RoPDIpJiYyNTU9PT10WzBdJiYyMTY9PT10WzFdKWZvcih2YXIgZT0yOzspe2lmKHQubGVuZ3RoLWU8MilyZXR1cm47aWYoMjU1IT09dFtlKytdKXJldHVybjtmb3IodmFyIHIsaSxsPXRbZSsrXTsyNTU9PT1sOylsPXRbZSsrXTtpZigyMDg8PWwmJmw8PTIxN3x8MT09PWwpcj0wO2Vsc2V7aWYoISgxOTI8PWwmJmw8PTI1NCkpcmV0dXJuO2lmKHQubGVuZ3RoLWU8MilyZXR1cm47cj1uKHQsZSktMixlKz0yfWlmKDIxNz09PWx8fDIxOD09PWwpcmV0dXJuO2lmKDIyNT09PWwmJnI+PTEwJiZhKHQsZSxzKSYmKGk9by5nZXRfb3JpZW50YXRpb24odC5zbGljZShlKzYsZStyKSkpLHI+PTUmJjE5Mjw9bCYmbDw9MjA3JiYxOTYhPT1sJiYyMDAhPT1sJiYyMDQhPT1sKXtpZih0Lmxlbmd0aC1lPHIpcmV0dXJuO3ZhciBjPXt3aWR0aDpuKHQsZSszKSxoZWlnaHQ6bih0LGUrMSksdHlwZToianBnIixtaW1lOiJpbWFnZS9qcGVnIix3VW5pdHM6InB4IixoVW5pdHM6InB4In07cmV0dXJuIGk+MCYmKGMub3JpZW50YXRpb249aSksY31lKz1yfX19LHsiLi4vY29tbW9uIjo0ODksIi4uL2V4aWZfdXRpbHMiOjQ5MH1dLDQ5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb21tb24iKS5zdHIyYXJyLGk9dCgiLi4vY29tbW9uIikuc2xpY2VFcSxhPXQoIi4uL2NvbW1vbiIpLnJlYWRVSW50MzJCRSxvPW4oIlx4ODlQTkdcclxuXHgxYVxuIikscz1uKCJJSERSIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCEodC5sZW5ndGg8MjQpJiZpKHQsMCxvKSYmaSh0LDEyLHMpKXJldHVybnt3aWR0aDphKHQsMTYpLGhlaWdodDphKHQsMjApLHR5cGU6InBuZyIsbWltZToiaW1hZ2UvcG5nIix3VW5pdHM6InB4IixoVW5pdHM6InB4In19fSx7Ii4uL2NvbW1vbiI6NDg5fV0sNDk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbW1vbiIpLnN0cjJhcnIsaT10KCIuLi9jb21tb24iKS5zbGljZUVxLGE9dCgiLi4vY29tbW9uIikucmVhZFVJbnQzMkJFLG89bigiOEJQU1wwXHgwMSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighKHQubGVuZ3RoPDIyKSYmaSh0LDAsbykpcmV0dXJue3dpZHRoOmEodCwxOCksaGVpZ2h0OmEodCwxNCksdHlwZToicHNkIixtaW1lOiJpbWFnZS92bmQuYWRvYmUucGhvdG9zaG9wIix3VW5pdHM6InB4IixoVW5pdHM6InB4In19fSx7Ii4uL2NvbW1vbiI6NDg5fV0sNDk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0JiZpc0Zpbml0ZSh0KSYmdD4wfXZhciBpPS88Wy1fLjphLXpBLVowLTldW14+XSo+LyxhPS9ePChbLV8uOmEtekEtWjAtOV0rOik/c3ZnXHMvLG89L1teLV1cYndpZHRoPSIoW14lXSs/KSJ8W14tXVxid2lkdGg9JyhbXiVdKz8pJy8scz0vXGJoZWlnaHQ9IihbXiVdKz8pInxcYmhlaWdodD0nKFteJV0rPyknLyxsPS9cYnZpZXdbYkJdb3g9IiguKz8pInxcYnZpZXdbYkJdb3g9JyguKz8pJy8sYz0vaW4kfG1tJHxjbSR8cHQkfHBjJHxweCR8ZW0kfGV4JC87ZnVuY3Rpb24gdSh0KXtyZXR1cm4gYy50ZXN0KHQpP3QubWF0Y2goYylbMF06InB4In1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoZnVuY3Rpb24odCl7dmFyIGUscj0wLG49dC5sZW5ndGg7Zm9yKDIzOT09PXRbMF0mJjE4Nz09PXRbMV0mJjE5MT09PXRbMl0mJihyPTMpO3I8biYmKDMyPT09KGU9dFtyXSl8fDk9PT1lfHwxMz09PWV8fDEwPT09ZSk7KXIrKztyZXR1cm4gciE9PW4mJjYwPT09dFtyXX0odCkpe2Zvcih2YXIgZT0iIixyPTA7cjx0Lmxlbmd0aDtyKyspZSs9U3RyaW5nLmZyb21DaGFyQ29kZSh0W3JdKTt2YXIgYz0oZS5tYXRjaChpKXx8WyIiXSlbMF07aWYoYS50ZXN0KGMpKXt2YXIgZj1mdW5jdGlvbih0KXt2YXIgZT10Lm1hdGNoKG8pLHI9dC5tYXRjaChzKSxuPXQubWF0Y2gobCk7cmV0dXJue3dpZHRoOmUmJihlWzFdfHxlWzJdKSxoZWlnaHQ6ciYmKHJbMV18fHJbMl0pLHZpZXdib3g6biYmKG5bMV18fG5bMl0pfX0oYyksaD1wYXJzZUZsb2F0KGYud2lkdGgpLHA9cGFyc2VGbG9hdChmLmhlaWdodCk7aWYoZi53aWR0aCYmZi5oZWlnaHQpe2lmKCFuKGgpfHwhbihwKSlyZXR1cm47cmV0dXJue3dpZHRoOmgsaGVpZ2h0OnAsdHlwZToic3ZnIixtaW1lOiJpbWFnZS9zdmcreG1sIix3VW5pdHM6dShmLndpZHRoKSxoVW5pdHM6dShmLmhlaWdodCl9fXZhciBkPShmLnZpZXdib3h8fCIiKS5zcGxpdCgiICIpLG09e3dpZHRoOmRbMl0saGVpZ2h0OmRbM119LGc9cGFyc2VGbG9hdChtLndpZHRoKSx2PXBhcnNlRmxvYXQobS5oZWlnaHQpO2lmKG4oZykmJm4odikmJnUobS53aWR0aCk9PT11KG0uaGVpZ2h0KSl7dmFyIHk9Zy92O2lmKGYud2lkdGgpe2lmKCFuKGgpKXJldHVybjtyZXR1cm57d2lkdGg6aCxoZWlnaHQ6aC95LHR5cGU6InN2ZyIsbWltZToiaW1hZ2Uvc3ZnK3htbCIsd1VuaXRzOnUoZi53aWR0aCksaFVuaXRzOnUoZi53aWR0aCl9fWlmKGYuaGVpZ2h0KXtpZighbihwKSlyZXR1cm47cmV0dXJue3dpZHRoOnAqeSxoZWlnaHQ6cCx0eXBlOiJzdmciLG1pbWU6ImltYWdlL3N2Zyt4bWwiLHdVbml0czp1KGYuaGVpZ2h0KSxoVW5pdHM6dShmLmhlaWdodCl9fXJldHVybnt3aWR0aDpnLGhlaWdodDp2LHR5cGU6InN2ZyIsbWltZToiaW1hZ2Uvc3ZnK3htbCIsd1VuaXRzOnUobS53aWR0aCksaFVuaXRzOnUobS5oZWlnaHQpfX19fX19LHt9XSw1MDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29tbW9uIikuc3RyMmFycixpPXQoIi4uL2NvbW1vbiIpLnNsaWNlRXEsYT10KCIuLi9jb21tb24iKS5yZWFkVUludDE2TEUsbz10KCIuLi9jb21tb24iKS5yZWFkVUludDE2QkUscz10KCIuLi9jb21tb24iKS5yZWFkVUludDMyTEUsbD10KCIuLi9jb21tb24iKS5yZWFkVUludDMyQkUsYz1uKCJJSSpcMCIpLHU9bigiTU1cMCoiKTtmdW5jdGlvbiBmKHQsZSxyKXtyZXR1cm4gcj9vKHQsZSk6YSh0LGUpfWZ1bmN0aW9uIGgodCxlLHIpe3JldHVybiByP2wodCxlKTpzKHQsZSl9ZnVuY3Rpb24gcCh0LGUscil7dmFyIG49Zih0LGUrMixyKTtyZXR1cm4gMSE9PWgodCxlKzQscil8fDMhPT1uJiY0IT09bj9udWxsOjM9PT1uP2YodCxlKzgscik6aCh0LGUrOCxyKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoISh0Lmxlbmd0aDw4KSYmKGkodCwwLGMpfHxpKHQsMCx1KSkpe3ZhciBlPTc3PT09dFswXSxyPWgodCw0LGUpLTg7aWYoIShyPDApKXt2YXIgbj1yKzg7aWYoISh0Lmxlbmd0aC1uPDIpKXt2YXIgYT0xMipmKHQsbiswLGUpO2lmKCEoYTw9MHx8KG4rPTIsdC5sZW5ndGgtbjxhKSkpe3ZhciBvLHMsbCxkO2ZvcihvPTA7bzxhO28rPTEyKTI1Nj09PShkPWYodCxuK28sZSkpP3M9cCh0LG4rbyxlKToyNTc9PT1kJiYobD1wKHQsbitvLGUpKTtyZXR1cm4gcyYmbD97d2lkdGg6cyxoZWlnaHQ6bCx0eXBlOiJ0aWZmIixtaW1lOiJpbWFnZS90aWZmIix3VW5pdHM6InB4IixoVW5pdHM6InB4In06dm9pZCAwfX19fX19LHsiLi4vY29tbW9uIjo0ODl9XSw1MDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vY29tbW9uIikuc3RyMmFycixpPXQoIi4uL2NvbW1vbiIpLnNsaWNlRXEsYT10KCIuLi9jb21tb24iKS5yZWFkVUludDE2TEUsbz10KCIuLi9jb21tb24iKS5yZWFkVUludDMyTEUscz10KCIuLi9leGlmX3V0aWxzIiksbD1uKCJSSUZGIiksYz1uKCJXRUJQIik7ZnVuY3Rpb24gdSh0LGUpe2lmKDE1Nz09PXRbZSszXSYmMT09PXRbZSs0XSYmNDI9PT10W2UrNV0pcmV0dXJue3dpZHRoOjE2MzgzJmEodCxlKzYpLGhlaWdodDoxNjM4MyZhKHQsZSs4KSx0eXBlOiJ3ZWJwIixtaW1lOiJpbWFnZS93ZWJwIix3VW5pdHM6InB4IixoVW5pdHM6InB4In19ZnVuY3Rpb24gZih0LGUpe2lmKDQ3PT09dFtlXSl7dmFyIHI9byh0LGUrMSk7cmV0dXJue3dpZHRoOjErKDE2MzgzJnIpLGhlaWdodDoxKyhyPj4xNCYxNjM4MyksdHlwZToid2VicCIsbWltZToiaW1hZ2Uvd2VicCIsd1VuaXRzOiJweCIsaFVuaXRzOiJweCJ9fX1mdW5jdGlvbiBoKHQsZSl7cmV0dXJue3dpZHRoOjErKHRbZSs2XTw8MTZ8dFtlKzVdPDw4fHRbZSs0XSksaGVpZ2h0OjErKHRbZSs5XTw8ZXx0W2UrOF08PDh8dFtlKzddKSx0eXBlOiJ3ZWJwIixtaW1lOiJpbWFnZS93ZWJwIix3VW5pdHM6InB4IixoVW5pdHM6InB4In19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2lmKCEodC5sZW5ndGg8MTYpJiYoaSh0LDAsbCl8fGkodCw4LGMpKSl7dmFyIGU9MTIscj1udWxsLG49MCxhPW8odCw0KSs4O2lmKCEoYT50Lmxlbmd0aCkpe2Zvcig7ZSs4PGE7KWlmKDAhPT10W2VdKXt2YXIgcD1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdC5zbGljZShlLGUrNCkpLGQ9byh0LGUrNCk7IlZQOCAiPT09cCYmZD49MTA/cj1yfHx1KHQsZSs4KToiVlA4TCI9PT1wJiZkPj05P3I9cnx8Zih0LGUrOCk6IlZQOFgiPT09cCYmZD49MTA/cj1yfHxoKHQsZSs4KToiRVhJRiI9PT1wJiYobj1zLmdldF9vcmllbnRhdGlvbih0LnNsaWNlKGUrOCxlKzgrZCkpLGU9MS8wKSxlKz04K2R9ZWxzZSBlKys7aWYocilyZXR1cm4gbj4wJiYoci5vcmllbnRhdGlvbj1uKSxyfX19fSx7Ii4uL2NvbW1vbiI6NDg5LCIuLi9leGlmX3V0aWxzIjo0OTB9XSw1MDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdmlmOnQoIi4vcGFyc2Vfc3luYy9hdmlmIiksYm1wOnQoIi4vcGFyc2Vfc3luYy9ibXAiKSxnaWY6dCgiLi9wYXJzZV9zeW5jL2dpZiIpLGljbzp0KCIuL3BhcnNlX3N5bmMvaWNvIiksanBlZzp0KCIuL3BhcnNlX3N5bmMvanBlZyIpLHBuZzp0KCIuL3BhcnNlX3N5bmMvcG5nIikscHNkOnQoIi4vcGFyc2Vfc3luYy9wc2QiKSxzdmc6dCgiLi9wYXJzZV9zeW5jL3N2ZyIpLHRpZmY6dCgiLi9wYXJzZV9zeW5jL3RpZmYiKSx3ZWJwOnQoIi4vcGFyc2Vfc3luYy93ZWJwIil9fSx7Ii4vcGFyc2Vfc3luYy9hdmlmIjo0OTIsIi4vcGFyc2Vfc3luYy9ibXAiOjQ5MywiLi9wYXJzZV9zeW5jL2dpZiI6NDk0LCIuL3BhcnNlX3N5bmMvaWNvIjo0OTUsIi4vcGFyc2Vfc3luYy9qcGVnIjo0OTYsIi4vcGFyc2Vfc3luYy9wbmciOjQ5NywiLi9wYXJzZV9zeW5jL3BzZCI6NDk4LCIuL3BhcnNlX3N5bmMvc3ZnIjo0OTksIi4vcGFyc2Vfc3luYy90aWZmIjo1MDAsIi4vcGFyc2Vfc3luYy93ZWJwIjo1MDF9XSw1MDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9saWIvcGFyc2Vyc19zeW5jIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGU9T2JqZWN0LmtleXMobikscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1uW2Vbcl1dKHQpO2lmKGkpcmV0dXJuIGl9cmV0dXJuIG51bGx9KHQpfSxlLmV4cG9ydHMucGFyc2Vycz1ufSx7Ii4vbGliL3BhcnNlcnNfc3luYyI6NTAyfV0sNTA0OltmdW5jdGlvbih0LGUscil7dmFyIG4saSxhPWUuZXhwb3J0cz17fTtmdW5jdGlvbiBvKCl7dGhyb3cgbmV3IEVycm9yKCJzZXRUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gcygpe3Rocm93IG5ldyBFcnJvcigiY2xlYXJUaW1lb3V0IGhhcyBub3QgYmVlbiBkZWZpbmVkIil9ZnVuY3Rpb24gbCh0KXtpZihuPT09c2V0VGltZW91dClyZXR1cm4gc2V0VGltZW91dCh0LDApO2lmKChuPT09b3x8IW4pJiZzZXRUaW1lb3V0KXJldHVybiBuPXNldFRpbWVvdXQsc2V0VGltZW91dCh0LDApO3RyeXtyZXR1cm4gbih0LDApfWNhdGNoKGUpe3RyeXtyZXR1cm4gbi5jYWxsKG51bGwsdCwwKX1jYXRjaChlKXtyZXR1cm4gbi5jYWxsKHRoaXMsdCwwKX19fSFmdW5jdGlvbigpe3RyeXtuPSJmdW5jdGlvbiI9PXR5cGVvZiBzZXRUaW1lb3V0P3NldFRpbWVvdXQ6b31jYXRjaCh0KXtuPW99dHJ5e2k9ImZ1bmN0aW9uIj09dHlwZW9mIGNsZWFyVGltZW91dD9jbGVhclRpbWVvdXQ6c31jYXRjaCh0KXtpPXN9fSgpO3ZhciBjLHU9W10sZj0hMSxoPS0xO2Z1bmN0aW9uIHAoKXtmJiZjJiYoZj0hMSxjLmxlbmd0aD91PWMuY29uY2F0KHUpOmg9LTEsdS5sZW5ndGgmJmQoKSl9ZnVuY3Rpb24gZCgpe2lmKCFmKXt2YXIgdD1sKHApO2Y9ITA7Zm9yKHZhciBlPXUubGVuZ3RoO2U7KXtmb3IoYz11LHU9W107KytoPGU7KWMmJmNbaF0ucnVuKCk7aD0tMSxlPXUubGVuZ3RofWM9bnVsbCxmPSExLGZ1bmN0aW9uKHQpe2lmKGk9PT1jbGVhclRpbWVvdXQpcmV0dXJuIGNsZWFyVGltZW91dCh0KTtpZigoaT09PXN8fCFpKSYmY2xlYXJUaW1lb3V0KXJldHVybiBpPWNsZWFyVGltZW91dCxjbGVhclRpbWVvdXQodCk7dHJ5e2kodCl9Y2F0Y2goZSl7dHJ5e3JldHVybiBpLmNhbGwobnVsbCx0KX1jYXRjaChlKXtyZXR1cm4gaS5jYWxsKHRoaXMsdCl9fX0odCl9fWZ1bmN0aW9uIG0odCxlKXt0aGlzLmZ1bj10LHRoaXMuYXJyYXk9ZX1mdW5jdGlvbiBnKCl7fWEubmV4dFRpY2s9ZnVuY3Rpb24odCl7dmFyIGU9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgtMSk7aWYoYXJndW1lbnRzLmxlbmd0aD4xKWZvcih2YXIgcj0xO3I8YXJndW1lbnRzLmxlbmd0aDtyKyspZVtyLTFdPWFyZ3VtZW50c1tyXTt1LnB1c2gobmV3IG0odCxlKSksMSE9PXUubGVuZ3RofHxmfHxsKGQpfSxtLnByb3RvdHlwZS5ydW49ZnVuY3Rpb24oKXt0aGlzLmZ1bi5hcHBseShudWxsLHRoaXMuYXJyYXkpfSxhLnRpdGxlPSJicm93c2VyIixhLmJyb3dzZXI9ITAsYS5lbnY9e30sYS5hcmd2PVtdLGEudmVyc2lvbj0iIixhLnZlcnNpb25zPXt9LGEub249ZyxhLmFkZExpc3RlbmVyPWcsYS5vbmNlPWcsYS5vZmY9ZyxhLnJlbW92ZUxpc3RlbmVyPWcsYS5yZW1vdmVBbGxMaXN0ZW5lcnM9ZyxhLmVtaXQ9ZyxhLnByZXBlbmRMaXN0ZW5lcj1nLGEucHJlcGVuZE9uY2VMaXN0ZW5lcj1nLGEubGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3JldHVybltdfSxhLmJpbmRpbmc9ZnVuY3Rpb24odCl7dGhyb3cgbmV3IEVycm9yKCJwcm9jZXNzLmJpbmRpbmcgaXMgbm90IHN1cHBvcnRlZCIpfSxhLmN3ZD1mdW5jdGlvbigpe3JldHVybiIvIn0sYS5jaGRpcj1mdW5jdGlvbih0KXt0aHJvdyBuZXcgRXJyb3IoInByb2Nlc3MuY2hkaXIgaXMgbm90IHN1cHBvcnRlZCIpfSxhLnVtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIDB9fSx7fV0sNTA1OltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPXQoImdsLXF1YXQvc2xlcnAiKX0seyJnbC1xdWF0L3NsZXJwIjozMTV9XSw1MDY6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7Zm9yKHZhciBuPXQoInBlcmZvcm1hbmNlLW5vdyIpLGk9InVuZGVmaW5lZCI9PXR5cGVvZiB3aW5kb3c/cjp3aW5kb3csYT1bIm1veiIsIndlYmtpdCJdLG89IkFuaW1hdGlvbkZyYW1lIixzPWlbInJlcXVlc3QiK29dLGw9aVsiY2FuY2VsIitvXXx8aVsiY2FuY2VsUmVxdWVzdCIrb10sYz0wOyFzJiZjPGEubGVuZ3RoO2MrKylzPWlbYVtjXSsiUmVxdWVzdCIrb10sbD1pW2FbY10rIkNhbmNlbCIrb118fGlbYVtjXSsiQ2FuY2VsUmVxdWVzdCIrb107aWYoIXN8fCFsKXt2YXIgdT0wLGY9MCxoPVtdO3M9ZnVuY3Rpb24odCl7aWYoMD09PWgubGVuZ3RoKXt2YXIgZT1uKCkscj1NYXRoLm1heCgwLDFlMy82MC0oZS11KSk7dT1yK2Usc2V0VGltZW91dCgoZnVuY3Rpb24oKXt2YXIgdD1oLnNsaWNlKDApO2gubGVuZ3RoPTA7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoIXRbZV0uY2FuY2VsbGVkKXRyeXt0W2VdLmNhbGxiYWNrKHUpfWNhdGNoKHQpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dGhyb3cgdH0pLDApfX0pLE1hdGgucm91bmQocikpfXJldHVybiBoLnB1c2goe2hhbmRsZTorK2YsY2FsbGJhY2s6dCxjYW5jZWxsZWQ6ITF9KSxmfSxsPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8aC5sZW5ndGg7ZSsrKWhbZV0uaGFuZGxlPT09dCYmKGhbZV0uY2FuY2VsbGVkPSEwKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBzLmNhbGwoaSx0KX0sZS5leHBvcnRzLmNhbmNlbD1mdW5jdGlvbigpe2wuYXBwbHkoaSxhcmd1bWVudHMpfSxlLmV4cG9ydHMucG9seWZpbGw9ZnVuY3Rpb24odCl7dHx8KHQ9aSksdC5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU9cyx0LmNhbmNlbEFuaW1hdGlvbkZyYW1lPWx9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJwZXJmb3JtYW5jZS1ub3ciOjQ3NH1dLDUwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJiaWctcmF0L2FkZCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxpPW5ldyBBcnJheShyKSxhPTA7YTxyOysrYSlpW2FdPW4odFthXSxlW2FdKTtyZXR1cm4gaX19LHsiYmlnLXJhdC9hZGQiOjgzfV0sNTA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPTA7cjx0Lmxlbmd0aDsrK3IpZVtyXT1uKHRbcl0pO3JldHVybiBlfTt2YXIgbj10KCJiaWctcmF0Iil9LHsiYmlnLXJhdCI6ODZ9XSw1MDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYmlnLXJhdCIpLGk9dCgiYmlnLXJhdC9tdWwiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bihlKSxhPXQubGVuZ3RoLG89bmV3IEFycmF5KGEpLHM9MDtzPGE7KytzKW9bc109aSh0W3NdLHIpO3JldHVybiBvfX0seyJiaWctcmF0Ijo4NiwiYmlnLXJhdC9tdWwiOjk1fV0sNTEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpZy1yYXQvc3ViIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLGk9bmV3IEFycmF5KHIpLGE9MDthPHI7KythKWlbYV09bih0W2FdLGVbYV0pO3JldHVybiBpfX0seyJiaWctcmF0L3N1YiI6OTh9XSw1MTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29tcGFyZS1jZWxsIiksaT10KCJjb21wYXJlLW9yaWVudGVkLWNlbGwiKSxhPXQoImNlbGwtb3JpZW50YXRpb24iKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dC5zb3J0KGkpO2Zvcih2YXIgZT10Lmxlbmd0aCxyPTAsbz0wO288ZTsrK28pe3ZhciBzPXRbb10sbD1hKHMpO2lmKDAhPT1sKXtpZihyPjApe3ZhciBjPXRbci0xXTtpZigwPT09bihzLGMpJiZhKGMpIT09bCl7ci09MTtjb250aW51ZX19dFtyKytdPXN9fXJldHVybiB0Lmxlbmd0aD1yLHR9fSx7ImNlbGwtb3JpZW50YXRpb24iOjExOCwiY29tcGFyZS1jZWxsIjoxMzUsImNvbXBhcmUtb3JpZW50ZWQtY2VsbCI6MTM2fV0sNTEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImFycmF5LWJvdW5kcyIpLGk9dCgiY29sb3Itbm9ybWFsaXplIiksYT10KCJ1cGRhdGUtZGlmZiIpLG89dCgicGljay1ieS1hbGlhcyIpLHM9dCgib2JqZWN0LWFzc2lnbiIpLGw9dCgiZmxhdHRlbi12ZXJ0ZXgtZGF0YSIpLGM9dCgidG8tZmxvYXQzMiIpLHU9Yy5mbG9hdDMyLGY9Yy5mcmFjdDMyO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpeyJmdW5jdGlvbiI9PXR5cGVvZiB0PyhlfHwoZT17fSksZS5yZWdsPXQpOmU9dDtlLmxlbmd0aCYmKGUucG9zaXRpb25zPWUpO2lmKCEodD1lLnJlZ2wpLmhhc0V4dGVuc2lvbigiQU5HTEVfaW5zdGFuY2VkX2FycmF5cyIpKXRocm93IEVycm9yKCJyZWdsLWVycm9yMmQ6IGBBTkdMRV9pbnN0YW5jZWRfYXJyYXlzYCBleHRlbnNpb24gc2hvdWxkIGJlIGVuYWJsZWQiKTt2YXIgcixjLHAsZCxtLGcsdj10Ll9nbCx5PXtjb2xvcjoiYmxhY2siLGNhcFNpemU6NSxsaW5lV2lkdGg6MSxvcGFjaXR5OjEsdmlld3BvcnQ6bnVsbCxyYW5nZTpudWxsLG9mZnNldDowLGNvdW50OjAsYm91bmRzOm51bGwscG9zaXRpb25zOltdLGVycm9yczpbXX0seD1bXTtyZXR1cm4gZD10LmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6InVpbnQ4IixkYXRhOm5ldyBVaW50OEFycmF5KDApfSksYz10LmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5KDApfSkscD10LmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5KDApfSksbT10LmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5KDApfSksZz10LmJ1ZmZlcih7dXNhZ2U6InN0YXRpYyIsdHlwZToiZmxvYXQiLGRhdGE6aH0pLFQoZSkscj10KHt2ZXJ0OiJcblx0XHRwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG5cblx0XHRhdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbiwgcG9zaXRpb25GcmFjdDtcblx0XHRhdHRyaWJ1dGUgdmVjNCBlcnJvcjtcblx0XHRhdHRyaWJ1dGUgdmVjNCBjb2xvcjtcblxuXHRcdGF0dHJpYnV0ZSB2ZWMyIGRpcmVjdGlvbiwgbGluZU9mZnNldCwgY2FwT2Zmc2V0O1xuXG5cdFx0dW5pZm9ybSB2ZWM0IHZpZXdwb3J0O1xuXHRcdHVuaWZvcm0gZmxvYXQgbGluZVdpZHRoLCBjYXBTaXplO1xuXHRcdHVuaWZvcm0gdmVjMiBzY2FsZSwgc2NhbGVGcmFjdCwgdHJhbnNsYXRlLCB0cmFuc2xhdGVGcmFjdDtcblxuXHRcdHZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cdFx0XHRmcmFnQ29sb3IgPSBjb2xvciAvIDI1NS47XG5cblx0XHRcdHZlYzIgcGl4ZWxPZmZzZXQgPSBsaW5lV2lkdGggKiBsaW5lT2Zmc2V0ICsgKGNhcFNpemUgKyBsaW5lV2lkdGgpICogY2FwT2Zmc2V0O1xuXG5cdFx0XHR2ZWMyIGR4eSA9IC1zdGVwKC41LCBkaXJlY3Rpb24ueHkpICogZXJyb3IueHogKyBzdGVwKGRpcmVjdGlvbi54eSwgdmVjMigtLjUpKSAqIGVycm9yLnl3O1xuXG5cdFx0XHR2ZWMyIHBvc2l0aW9uID0gcG9zaXRpb24gKyBkeHk7XG5cblx0XHRcdHZlYzIgcG9zID0gKHBvc2l0aW9uICsgdHJhbnNsYXRlKSAqIHNjYWxlXG5cdFx0XHRcdCsgKHBvc2l0aW9uRnJhY3QgKyB0cmFuc2xhdGVGcmFjdCkgKiBzY2FsZVxuXHRcdFx0XHQrIChwb3NpdGlvbiArIHRyYW5zbGF0ZSkgKiBzY2FsZUZyYWN0XG5cdFx0XHRcdCsgKHBvc2l0aW9uRnJhY3QgKyB0cmFuc2xhdGVGcmFjdCkgKiBzY2FsZUZyYWN0O1xuXG5cdFx0XHRwb3MgKz0gcGl4ZWxPZmZzZXQgLyB2aWV3cG9ydC56dztcblxuXHRcdFx0Z2xfUG9zaXRpb24gPSB2ZWM0KHBvcyAqIDIuIC0gMS4sIDAsIDEpO1xuXHRcdH1cblx0XHQiLGZyYWc6IlxuXHRcdHByZWNpc2lvbiBoaWdocCBmbG9hdDtcblxuXHRcdHZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cblx0XHR1bmlmb3JtIGZsb2F0IG9wYWNpdHk7XG5cblx0XHR2b2lkIG1haW4oKSB7XG5cdFx0XHRnbF9GcmFnQ29sb3IgPSBmcmFnQ29sb3I7XG5cdFx0XHRnbF9GcmFnQ29sb3IuYSAqPSBvcGFjaXR5O1xuXHRcdH1cblx0XHQiLHVuaWZvcm1zOntyYW5nZTp0LnByb3AoInJhbmdlIiksbGluZVdpZHRoOnQucHJvcCgibGluZVdpZHRoIiksY2FwU2l6ZTp0LnByb3AoImNhcFNpemUiKSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLHNjYWxlOnQucHJvcCgic2NhbGUiKSx0cmFuc2xhdGU6dC5wcm9wKCJ0cmFuc2xhdGUiKSxzY2FsZUZyYWN0OnQucHJvcCgic2NhbGVGcmFjdCIpLHRyYW5zbGF0ZUZyYWN0OnQucHJvcCgidHJhbnNsYXRlRnJhY3QiKSx2aWV3cG9ydDpmdW5jdGlvbih0LGUpe3JldHVybltlLnZpZXdwb3J0LngsZS52aWV3cG9ydC55LHQudmlld3BvcnRXaWR0aCx0LnZpZXdwb3J0SGVpZ2h0XX19LGF0dHJpYnV0ZXM6e2NvbG9yOntidWZmZXI6ZCxvZmZzZXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm4gNCplLm9mZnNldH0sZGl2aXNvcjoxfSxwb3NpdGlvbjp7YnVmZmVyOmMsb2Zmc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDgqZS5vZmZzZXR9LGRpdmlzb3I6MX0scG9zaXRpb25GcmFjdDp7YnVmZmVyOnAsb2Zmc2V0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIDgqZS5vZmZzZXR9LGRpdmlzb3I6MX0sZXJyb3I6e2J1ZmZlcjptLG9mZnNldDpmdW5jdGlvbih0LGUpe3JldHVybiAxNiplLm9mZnNldH0sZGl2aXNvcjoxfSxkaXJlY3Rpb246e2J1ZmZlcjpnLHN0cmlkZToyNCxvZmZzZXQ6MH0sbGluZU9mZnNldDp7YnVmZmVyOmcsc3RyaWRlOjI0LG9mZnNldDo4fSxjYXBPZmZzZXQ6e2J1ZmZlcjpnLHN0cmlkZToyNCxvZmZzZXQ6MTZ9fSxwcmltaXRpdmU6InRyaWFuZ2xlcyIsYmxlbmQ6e2VuYWJsZTohMCxjb2xvcjpbMCwwLDAsMF0sZXF1YXRpb246e3JnYjoiYWRkIixhbHBoYToiYWRkIn0sZnVuYzp7c3JjUkdCOiJzcmMgYWxwaGEiLGRzdFJHQjoib25lIG1pbnVzIHNyYyBhbHBoYSIsc3JjQWxwaGE6Im9uZSBtaW51cyBkc3QgYWxwaGEiLGRzdEFscGhhOiJvbmUifX0sZGVwdGg6e2VuYWJsZTohMX0sc2Npc3Nvcjp7ZW5hYmxlOiEwLGJveDp0LnByb3AoInZpZXdwb3J0Iil9LHZpZXdwb3J0OnQucHJvcCgidmlld3BvcnQiKSxzdGVuY2lsOiExLGluc3RhbmNlczp0LnByb3AoImNvdW50IiksY291bnQ6aC5sZW5ndGh9KSxzKGIse3VwZGF0ZTpULGRyYXc6XyxkZXN0cm95OmsscmVnbDp0LGdsOnYsY2FudmFzOnYuY2FudmFzLGdyb3Vwczp4fSksYjtmdW5jdGlvbiBiKHQpe3Q/VCh0KTpudWxsPT09dCYmaygpLF8oKX1mdW5jdGlvbiBfKGUpe2lmKCJudW1iZXIiPT10eXBlb2YgZSlyZXR1cm4gdyhlKTtlJiYhQXJyYXkuaXNBcnJheShlKSYmKGU9W2VdKSx0Ll9yZWZyZXNoKCkseC5mb3JFYWNoKChmdW5jdGlvbih0LHIpe3QmJihlJiYoZVtyXT90LmRyYXc9ITA6dC5kcmF3PSExKSx0LmRyYXc/dyhyKTp0LmRyYXc9ITApfSkpfWZ1bmN0aW9uIHcodCl7Im51bWJlciI9PXR5cGVvZiB0JiYodD14W3RdKSxudWxsIT10JiZ0JiZ0LmNvdW50JiZ0LmNvbG9yJiZ0Lm9wYWNpdHkmJnQucG9zaXRpb25zJiZ0LnBvc2l0aW9ucy5sZW5ndGg+MSYmKHQuc2NhbGVSYXRpbz1bdC5zY2FsZVswXSp0LnZpZXdwb3J0LndpZHRoLHQuc2NhbGVbMV0qdC52aWV3cG9ydC5oZWlnaHRdLHIodCksdC5hZnRlciYmdC5hZnRlcih0KSl9ZnVuY3Rpb24gVCh0KXtpZih0KXtudWxsIT10Lmxlbmd0aD8ibnVtYmVyIj09dHlwZW9mIHRbMF0mJih0PVt7cG9zaXRpb25zOnR9XSk6QXJyYXkuaXNBcnJheSh0KXx8KHQ9W3RdKTt2YXIgZT0wLHI9MDtpZihiLmdyb3Vwcz14PXQubWFwKChmdW5jdGlvbih0LGMpe3ZhciB1PXhbY107cmV0dXJuIHQ/KCJmdW5jdGlvbiI9PXR5cGVvZiB0P3Q9e2FmdGVyOnR9OiJudW1iZXIiPT10eXBlb2YgdFswXSYmKHQ9e3Bvc2l0aW9uczp0fSksdD1vKHQse2NvbG9yOiJjb2xvciBjb2xvcnMgZmlsbCIsY2FwU2l6ZToiY2FwU2l6ZSBjYXAgY2Fwc2l6ZSBjYXAtc2l6ZSIsbGluZVdpZHRoOiJsaW5lV2lkdGggbGluZS13aWR0aCB3aWR0aCBsaW5lIHRoaWNrbmVzcyIsb3BhY2l0eToib3BhY2l0eSBhbHBoYSIscmFuZ2U6InJhbmdlIGRhdGFCb3giLHZpZXdwb3J0OiJ2aWV3cG9ydCB2aWV3Qm94IixlcnJvcnM6ImVycm9ycyBlcnJvciIscG9zaXRpb25zOiJwb3NpdGlvbnMgcG9zaXRpb24gZGF0YSBwb2ludHMifSksdXx8KHhbY109dT17aWQ6YyxzY2FsZTpudWxsLHRyYW5zbGF0ZTpudWxsLHNjYWxlRnJhY3Q6bnVsbCx0cmFuc2xhdGVGcmFjdDpudWxsLGRyYXc6ITB9LHQ9cyh7fSx5LHQpKSxhKHUsdCxbe2xpbmVXaWR0aDpmdW5jdGlvbih0KXtyZXR1cm4uNSordH0sY2FwU2l6ZTpmdW5jdGlvbih0KXtyZXR1cm4uNSordH0sb3BhY2l0eTpwYXJzZUZsb2F0LGVycm9yczpmdW5jdGlvbih0KXtyZXR1cm4gdD1sKHQpLHIrPXQubGVuZ3RoLHR9LHBvc2l0aW9uczpmdW5jdGlvbih0LHIpe3JldHVybiB0PWwodCwiZmxvYXQ2NCIpLHIuY291bnQ9TWF0aC5mbG9vcih0Lmxlbmd0aC8yKSxyLmJvdW5kcz1uKHQsMiksci5vZmZzZXQ9ZSxlKz1yLmNvdW50LHR9fSx7Y29sb3I6ZnVuY3Rpb24odCxlKXt2YXIgcj1lLmNvdW50O2lmKHR8fCh0PSJ0cmFuc3BhcmVudCIpLCFBcnJheS5pc0FycmF5KHQpfHwibnVtYmVyIj09dHlwZW9mIHRbMF0pe3ZhciBuPXQ7dD1BcnJheShyKTtmb3IodmFyIGE9MDthPHI7YSsrKXRbYV09bn1pZih0Lmxlbmd0aDxyKXRocm93IEVycm9yKCJOb3QgZW5vdWdoIGNvbG9ycyIpO2Zvcih2YXIgbz1uZXcgVWludDhBcnJheSg0KnIpLHM9MDtzPHI7cysrKXt2YXIgbD1pKHRbc10sInVpbnQ4Iik7by5zZXQobCw0KnMpfXJldHVybiBvfSxyYW5nZTpmdW5jdGlvbih0LGUscil7dmFyIG49ZS5ib3VuZHM7cmV0dXJuIHR8fCh0PW4pLGUuc2NhbGU9WzEvKHRbMl0tdFswXSksMS8odFszXS10WzFdKV0sZS50cmFuc2xhdGU9Wy10WzBdLC10WzFdXSxlLnNjYWxlRnJhY3Q9ZihlLnNjYWxlKSxlLnRyYW5zbGF0ZUZyYWN0PWYoZS50cmFuc2xhdGUpLHR9LHZpZXdwb3J0OmZ1bmN0aW9uKHQpe3ZhciBlO3JldHVybiBBcnJheS5pc0FycmF5KHQpP2U9e3g6dFswXSx5OnRbMV0sd2lkdGg6dFsyXS10WzBdLGhlaWdodDp0WzNdLXRbMV19OnQ/KGU9e3g6dC54fHx0LmxlZnR8fDAseTp0Lnl8fHQudG9wfHwwfSx0LnJpZ2h0P2Uud2lkdGg9dC5yaWdodC1lLng6ZS53aWR0aD10Lnd8fHQud2lkdGh8fDAsdC5ib3R0b20/ZS5oZWlnaHQ9dC5ib3R0b20tZS55OmUuaGVpZ2h0PXQuaHx8dC5oZWlnaHR8fDApOmU9e3g6MCx5OjAsd2lkdGg6di5kcmF3aW5nQnVmZmVyV2lkdGgsaGVpZ2h0OnYuZHJhd2luZ0J1ZmZlckhlaWdodH0sZX19XSksdSk6dX0pKSxlfHxyKXt2YXIgaD14LnJlZHVjZSgoZnVuY3Rpb24odCxlLHIpe3JldHVybiB0KyhlP2UuY291bnQ6MCl9KSwwKSxnPW5ldyBGbG9hdDY0QXJyYXkoMipoKSxfPW5ldyBVaW50OEFycmF5KDQqaCksdz1uZXcgRmxvYXQzMkFycmF5KDQqaCk7eC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2lmKHQpe3ZhciByPXQucG9zaXRpb25zLG49dC5jb3VudCxpPXQub2Zmc2V0LGE9dC5jb2xvcixvPXQuZXJyb3JzO24mJihfLnNldChhLDQqaSksdy5zZXQobyw0KmkpLGcuc2V0KHIsMippKSl9fSkpO3ZhciBUPXUoZyk7YyhUKTt2YXIgaz1mKGcsVCk7cChrKSxkKF8pLG0odyl9fX1mdW5jdGlvbiBrKCl7Yy5kZXN0cm95KCkscC5kZXN0cm95KCksZC5kZXN0cm95KCksbS5kZXN0cm95KCksZy5kZXN0cm95KCl9fTt2YXIgaD1bWzEsMCwwLDEsMCwwXSxbMSwwLDAsLTEsMCwwXSxbLTEsMCwwLC0xLDAsMF0sWy0xLDAsMCwtMSwwLDBdLFstMSwwLDAsMSwwLDBdLFsxLDAsMCwxLDAsMF0sWzEsMCwtMSwwLDAsMV0sWzEsMCwtMSwwLDAsLTFdLFsxLDAsMSwwLDAsLTFdLFsxLDAsMSwwLDAsLTFdLFsxLDAsMSwwLDAsMV0sWzEsMCwtMSwwLDAsMV0sWy0xLDAsLTEsMCwwLDFdLFstMSwwLC0xLDAsMCwtMV0sWy0xLDAsMSwwLDAsLTFdLFstMSwwLDEsMCwwLC0xXSxbLTEsMCwxLDAsMCwxXSxbLTEsMCwtMSwwLDAsMV0sWzAsMSwxLDAsMCwwXSxbMCwxLC0xLDAsMCwwXSxbMCwtMSwtMSwwLDAsMF0sWzAsLTEsLTEsMCwwLDBdLFswLDEsMSwwLDAsMF0sWzAsLTEsMSwwLDAsMF0sWzAsMSwwLC0xLDEsMF0sWzAsMSwwLC0xLC0xLDBdLFswLDEsMCwxLC0xLDBdLFswLDEsMCwxLDEsMF0sWzAsMSwwLC0xLDEsMF0sWzAsMSwwLDEsLTEsMF0sWzAsLTEsMCwtMSwxLDBdLFswLC0xLDAsLTEsLTEsMF0sWzAsLTEsMCwxLC0xLDBdLFswLC0xLDAsMSwxLDBdLFswLC0xLDAsLTEsMSwwXSxbMCwtMSwwLDEsLTEsMF1dfSx7ImFycmF5LWJvdW5kcyI6NzIsImNvbG9yLW5vcm1hbGl6ZSI6MTI2LCJmbGF0dGVuLXZlcnRleC1kYXRhIjoyNDQsIm9iamVjdC1hc3NpZ24iOjQ2NiwicGljay1ieS1hbGlhcyI6NDc1LCJ0by1mbG9hdDMyIjo1NzMsInVwZGF0ZS1kaWZmIjo1OTR9XSw1MTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiY29sb3Itbm9ybWFsaXplIiksaT10KCJhcnJheS1ib3VuZHMiKSxhPXQoIm9iamVjdC1hc3NpZ24iKSxvPXQoImdsc2xpZnkiKSxzPXQoInBpY2stYnktYWxpYXMiKSxsPXQoImZsYXR0ZW4tdmVydGV4LWRhdGEiKSxjPXQoImVhcmN1dCIpLHU9dCgiYXJyYXktbm9ybWFsaXplIiksZj10KCJ0by1mbG9hdDMyIiksaD1mLmZsb2F0MzIscD1mLmZyYWN0MzIsZD10KCJlczYtd2Vhay1tYXAiKSxtPXQoInBhcnNlLXJlY3QiKSxnPXQoImFycmF5LWZpbmQtaW5kZXgiKTtmdW5jdGlvbiB2KHQsZSl7aWYoISh0aGlzIGluc3RhbmNlb2YgdikpcmV0dXJuIG5ldyB2KHQsZSk7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHQ/KGV8fChlPXt9KSxlLnJlZ2w9dCk6ZT10LGUubGVuZ3RoJiYoZS5wb3NpdGlvbnM9ZSksISh0PWUucmVnbCkuaGFzRXh0ZW5zaW9uKCJBTkdMRV9pbnN0YW5jZWRfYXJyYXlzIikpdGhyb3cgRXJyb3IoInJlZ2wtZXJyb3IyZDogYEFOR0xFX2luc3RhbmNlZF9hcnJheXNgIGV4dGVuc2lvbiBzaG91bGQgYmUgZW5hYmxlZCIpO3RoaXMuZ2w9dC5fZ2wsdGhpcy5yZWdsPXQsdGhpcy5wYXNzZXM9W10sdGhpcy5zaGFkZXJzPXYuc2hhZGVycy5oYXModCk/di5zaGFkZXJzLmdldCh0KTp2LnNoYWRlcnMuc2V0KHQsdi5jcmVhdGVTaGFkZXJzKHQpKS5nZXQodCksdGhpcy51cGRhdGUoZSl9ZS5leHBvcnRzPXYsdi5kYXNoTXVsdD0yLHYubWF4UGF0dGVybkxlbmd0aD0yNTYsdi5wcmVjaXNpb25UaHJlc2hvbGQ9M2U2LHYubWF4UG9pbnRzPTFlNCx2Lm1heExpbmVzPTIwNDgsdi5zaGFkZXJzPW5ldyBkLHYuY3JlYXRlU2hhZGVycz1mdW5jdGlvbih0KXt2YXIgZSxyPXQuYnVmZmVyKHt1c2FnZToic3RhdGljIix0eXBlOiJmbG9hdCIsZGF0YTpbMCwxLDAsMCwxLDEsMSwwXX0pLG49e3ByaW1pdGl2ZToidHJpYW5nbGUgc3RyaXAiLGluc3RhbmNlczp0LnByb3AoImNvdW50IiksY291bnQ6NCxvZmZzZXQ6MCx1bmlmb3Jtczp7bWl0ZXJNb2RlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuInJvdW5kIj09PWUuam9pbj8yOjF9LG1pdGVyTGltaXQ6dC5wcm9wKCJtaXRlckxpbWl0Iiksc2NhbGU6dC5wcm9wKCJzY2FsZSIpLHNjYWxlRnJhY3Q6dC5wcm9wKCJzY2FsZUZyYWN0IiksdHJhbnNsYXRlRnJhY3Q6dC5wcm9wKCJ0cmFuc2xhdGVGcmFjdCIpLHRyYW5zbGF0ZTp0LnByb3AoInRyYW5zbGF0ZSIpLHRoaWNrbmVzczp0LnByb3AoInRoaWNrbmVzcyIpLGRhc2hUZXh0dXJlOnQucHJvcCgiZGFzaFRleHR1cmUiKSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLHBpeGVsUmF0aW86dC5jb250ZXh0KCJwaXhlbFJhdGlvIiksaWQ6dC5wcm9wKCJpZCIpLGRhc2hMZW5ndGg6dC5wcm9wKCJkYXNoTGVuZ3RoIiksdmlld3BvcnQ6ZnVuY3Rpb24odCxlKXtyZXR1cm5bZS52aWV3cG9ydC54LGUudmlld3BvcnQueSx0LnZpZXdwb3J0V2lkdGgsdC52aWV3cG9ydEhlaWdodF19LGRlcHRoOnQucHJvcCgiZGVwdGgiKX0sYmxlbmQ6e2VuYWJsZTohMCxjb2xvcjpbMCwwLDAsMF0sZXF1YXRpb246e3JnYjoiYWRkIixhbHBoYToiYWRkIn0sZnVuYzp7c3JjUkdCOiJzcmMgYWxwaGEiLGRzdFJHQjoib25lIG1pbnVzIHNyYyBhbHBoYSIsc3JjQWxwaGE6Im9uZSBtaW51cyBkc3QgYWxwaGEiLGRzdEFscGhhOiJvbmUifX0sZGVwdGg6e2VuYWJsZTpmdW5jdGlvbih0LGUpe3JldHVybiFlLm92ZXJsYXl9fSxzdGVuY2lsOntlbmFibGU6ITF9LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6dC5wcm9wKCJ2aWV3cG9ydCIpfSx2aWV3cG9ydDp0LnByb3AoInZpZXdwb3J0Iil9LGk9dChhKHt2ZXJ0Om8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBhQ29vcmQsIGJDb29yZCwgYUNvb3JkRnJhY3QsIGJDb29yZEZyYWN0O1xuYXR0cmlidXRlIHZlYzQgY29sb3I7XG5hdHRyaWJ1dGUgZmxvYXQgbGluZUVuZCwgbGluZVRvcDtcblxudW5pZm9ybSB2ZWMyIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0O1xudW5pZm9ybSBmbG9hdCB0aGlja25lc3MsIHBpeGVsUmF0aW8sIGlkLCBkZXB0aDtcbnVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xuXG52ZWMyIHByb2plY3QodmVjMiBwb3NpdGlvbiwgdmVjMiBwb3NpdGlvbkZyYWN0LCB2ZWMyIHNjYWxlLCB2ZWMyIHNjYWxlRnJhY3QsIHZlYzIgdHJhbnNsYXRlLCB2ZWMyIHRyYW5zbGF0ZUZyYWN0KSB7XG5cdC8vIHRoZSBvcmRlciBpcyBpbXBvcnRhbnRcblx0cmV0dXJuIHBvc2l0aW9uICogc2NhbGUgKyB0cmFuc2xhdGVcbiAgICAgICArIHBvc2l0aW9uRnJhY3QgKiBzY2FsZSArIHRyYW5zbGF0ZUZyYWN0XG4gICAgICAgKyBwb3NpdGlvbiAqIHNjYWxlRnJhY3RcbiAgICAgICArIHBvc2l0aW9uRnJhY3QgKiBzY2FsZUZyYWN0O1xufVxuXG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IGxpbmVTdGFydCA9IDEuIC0gbGluZUVuZDtcblx0ZmxvYXQgbGluZU9mZnNldCA9IGxpbmVUb3AgKiAyLiAtIDEuO1xuXG5cdHZlYzIgZGlmZiA9IChiQ29vcmQgKyBiQ29vcmRGcmFjdCAtIGFDb29yZCAtIGFDb29yZEZyYWN0KTtcblx0dGFuZ2VudCA9IG5vcm1hbGl6ZShkaWZmICogc2NhbGUgKiB2aWV3cG9ydC56dyk7XG5cdHZlYzIgbm9ybWFsID0gdmVjMigtdGFuZ2VudC55LCB0YW5nZW50LngpO1xuXG5cdHZlYzIgcG9zaXRpb24gPSBwcm9qZWN0KGFDb29yZCwgYUNvb3JkRnJhY3QsIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0KSAqIGxpbmVTdGFydFxuXHRcdCsgcHJvamVjdChiQ29vcmQsIGJDb29yZEZyYWN0LCBzY2FsZSwgc2NhbGVGcmFjdCwgdHJhbnNsYXRlLCB0cmFuc2xhdGVGcmFjdCkgKiBsaW5lRW5kXG5cblx0XHQrIHRoaWNrbmVzcyAqIG5vcm1hbCAqIC41ICogbGluZU9mZnNldCAvIHZpZXdwb3J0Lnp3O1xuXG5cdGdsX1Bvc2l0aW9uID0gdmVjNChwb3NpdGlvbiAqIDIuMCAtIDEuMCwgZGVwdGgsIDEpO1xuXG5cdGZyYWdDb2xvciA9IGNvbG9yIC8gMjU1Ljtcbn1cbiJdKSxmcmFnOm8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG51bmlmb3JtIGZsb2F0IGRhc2hMZW5ndGgsIHBpeGVsUmF0aW8sIHRoaWNrbmVzcywgb3BhY2l0eSwgaWQ7XG51bmlmb3JtIHNhbXBsZXIyRCBkYXNoVGV4dHVyZTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xuXG52b2lkIG1haW4oKSB7XG5cdGZsb2F0IGFscGhhID0gMS47XG5cblx0ZmxvYXQgdCA9IGZyYWN0KGRvdCh0YW5nZW50LCBnbF9GcmFnQ29vcmQueHkpIC8gZGFzaExlbmd0aCkgKiAuNSArIC4yNTtcblx0ZmxvYXQgZGFzaCA9IHRleHR1cmUyRChkYXNoVGV4dHVyZSwgdmVjMih0LCAuNSkpLnI7XG5cblx0Z2xfRnJhZ0NvbG9yID0gZnJhZ0NvbG9yO1xuXHRnbF9GcmFnQ29sb3IuYSAqPSBhbHBoYSAqIG9wYWNpdHkgKiBkYXNoO1xufVxuIl0pLGF0dHJpYnV0ZXM6e2xpbmVFbmQ6e2J1ZmZlcjpyLGRpdmlzb3I6MCxzdHJpZGU6OCxvZmZzZXQ6MH0sbGluZVRvcDp7YnVmZmVyOnIsZGl2aXNvcjowLHN0cmlkZTo4LG9mZnNldDo0fSxhQ29vcmQ6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjgsZGl2aXNvcjoxfSxiQ29vcmQ6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjE2LGRpdmlzb3I6MX0sYUNvb3JkRnJhY3Q6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uRnJhY3RCdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6OCxkaXZpc29yOjF9LGJDb29yZEZyYWN0OntidWZmZXI6dC5wcm9wKCJwb3NpdGlvbkZyYWN0QnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjE2LGRpdmlzb3I6MX0sY29sb3I6e2J1ZmZlcjp0LnByb3AoImNvbG9yQnVmZmVyIiksc3RyaWRlOjQsb2Zmc2V0OjAsZGl2aXNvcjoxfX19LG4pKTt0cnl7ZT10KGEoe2N1bGw6e2VuYWJsZTohMCxmYWNlOiJiYWNrIn0sdmVydDpvKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIHZlYzIgYUNvb3JkLCBiQ29vcmQsIG5leHRDb29yZCwgcHJldkNvb3JkO1xuYXR0cmlidXRlIHZlYzQgYUNvbG9yLCBiQ29sb3I7XG5hdHRyaWJ1dGUgZmxvYXQgbGluZUVuZCwgbGluZVRvcDtcblxudW5pZm9ybSB2ZWMyIHNjYWxlLCB0cmFuc2xhdGU7XG51bmlmb3JtIGZsb2F0IHRoaWNrbmVzcywgcGl4ZWxSYXRpbywgaWQsIGRlcHRoO1xudW5pZm9ybSB2ZWM0IHZpZXdwb3J0O1xudW5pZm9ybSBmbG9hdCBtaXRlckxpbWl0LCBtaXRlck1vZGU7XG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG52YXJ5aW5nIHZlYzQgc3RhcnRDdXRvZmYsIGVuZEN1dG9mZjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xudmFyeWluZyB2ZWMyIHN0YXJ0Q29vcmQsIGVuZENvb3JkO1xudmFyeWluZyBmbG9hdCBlbmFibGVTdGFydE1pdGVyLCBlbmFibGVFbmRNaXRlcjtcblxuY29uc3QgZmxvYXQgUkVWRVJTRV9USFJFU0hPTEQgPSAtLjg3NTtcbmNvbnN0IGZsb2F0IE1JTl9ESUZGID0gMWUtNjtcblxuLy8gVE9ETzogcG9zc2libGUgb3B0aW1pemF0aW9uczogYXZvaWQgb3ZlcmNhbGN1bGF0aW5nIGFsbCBmb3IgdmVydGljZXMgYW5kIGNhbGMganVzdCBvbmUgaW5zdGVhZFxuLy8gVE9ETzogcHJlY2FsY3VsYXRlIGRvdCBwcm9kdWN0cywgbm9ybWFsaXplIHRoaW5ncyBiZWZvcmVoZWFkIGV0Yy5cbi8vIFRPRE86IHJlZmFjdG9yIHRvIHJlY3Rhbmd1bGFyIGFsZ29yaXRobVxuXG5mbG9hdCBkaXN0VG9MaW5lKHZlYzIgcCwgdmVjMiBhLCB2ZWMyIGIpIHtcblx0dmVjMiBkaWZmID0gYiAtIGE7XG5cdHZlYzIgcGVycCA9IG5vcm1hbGl6ZSh2ZWMyKC1kaWZmLnksIGRpZmYueCkpO1xuXHRyZXR1cm4gZG90KHAgLSBhLCBwZXJwKTtcbn1cblxuYm9vbCBpc05hTiggZmxvYXQgdmFsICl7XG4gIHJldHVybiAoIHZhbCA8IDAuMCB8fCAwLjAgPCB2YWwgfHwgdmFsID09IDAuMCApID8gZmFsc2UgOiB0cnVlO1xufVxuXG52b2lkIG1haW4oKSB7XG5cdHZlYzIgYUNvb3JkID0gYUNvb3JkLCBiQ29vcmQgPSBiQ29vcmQsIHByZXZDb29yZCA9IHByZXZDb29yZCwgbmV4dENvb3JkID0gbmV4dENvb3JkO1xuXG4gIHZlYzIgYWRqdXN0ZWRTY2FsZTtcbiAgYWRqdXN0ZWRTY2FsZS54ID0gKGFicyhzY2FsZS54KSA8IE1JTl9ESUZGKSA/IE1JTl9ESUZGIDogc2NhbGUueDtcbiAgYWRqdXN0ZWRTY2FsZS55ID0gKGFicyhzY2FsZS55KSA8IE1JTl9ESUZGKSA/IE1JTl9ESUZGIDogc2NhbGUueTtcblxuICB2ZWMyIHNjYWxlUmF0aW8gPSBhZGp1c3RlZFNjYWxlICogdmlld3BvcnQuenc7XG5cdHZlYzIgbm9ybWFsV2lkdGggPSB0aGlja25lc3MgLyBzY2FsZVJhdGlvO1xuXG5cdGZsb2F0IGxpbmVTdGFydCA9IDEuIC0gbGluZUVuZDtcblx0ZmxvYXQgbGluZUJvdCA9IDEuIC0gbGluZVRvcDtcblxuXHRmcmFnQ29sb3IgPSAobGluZVN0YXJ0ICogYUNvbG9yICsgbGluZUVuZCAqIGJDb2xvcikgLyAyNTUuO1xuXG5cdGlmIChpc05hTihhQ29vcmQueCkgfHwgaXNOYU4oYUNvb3JkLnkpIHx8IGlzTmFOKGJDb29yZC54KSB8fCBpc05hTihiQ29vcmQueSkpIHJldHVybjtcblxuXHRpZiAoYUNvb3JkID09IHByZXZDb29yZCkgcHJldkNvb3JkID0gYUNvb3JkICsgbm9ybWFsaXplKGJDb29yZCAtIGFDb29yZCk7XG5cdGlmIChiQ29vcmQgPT0gbmV4dENvb3JkKSBuZXh0Q29vcmQgPSBiQ29vcmQgLSBub3JtYWxpemUoYkNvb3JkIC0gYUNvb3JkKTtcblxuXHR2ZWMyIHByZXZEaWZmID0gYUNvb3JkIC0gcHJldkNvb3JkO1xuXHR2ZWMyIGN1cnJEaWZmID0gYkNvb3JkIC0gYUNvb3JkO1xuXHR2ZWMyIG5leHREaWZmID0gbmV4dENvb3JkIC0gYkNvb3JkO1xuXG5cdHZlYzIgcHJldlRhbmdlbnQgPSBub3JtYWxpemUocHJldkRpZmYgKiBzY2FsZVJhdGlvKTtcblx0dmVjMiBjdXJyVGFuZ2VudCA9IG5vcm1hbGl6ZShjdXJyRGlmZiAqIHNjYWxlUmF0aW8pO1xuXHR2ZWMyIG5leHRUYW5nZW50ID0gbm9ybWFsaXplKG5leHREaWZmICogc2NhbGVSYXRpbyk7XG5cblx0dmVjMiBwcmV2Tm9ybWFsID0gdmVjMigtcHJldlRhbmdlbnQueSwgcHJldlRhbmdlbnQueCk7XG5cdHZlYzIgY3Vyck5vcm1hbCA9IHZlYzIoLWN1cnJUYW5nZW50LnksIGN1cnJUYW5nZW50LngpO1xuXHR2ZWMyIG5leHROb3JtYWwgPSB2ZWMyKC1uZXh0VGFuZ2VudC55LCBuZXh0VGFuZ2VudC54KTtcblxuXHR2ZWMyIHN0YXJ0Sm9pbkRpcmVjdGlvbiA9IG5vcm1hbGl6ZShwcmV2VGFuZ2VudCAtIGN1cnJUYW5nZW50KTtcblx0dmVjMiBlbmRKb2luRGlyZWN0aW9uID0gbm9ybWFsaXplKGN1cnJUYW5nZW50IC0gbmV4dFRhbmdlbnQpO1xuXG5cdC8vIGNvbGxhcHNlZC91bmlkaXJlY3Rpb25hbCBzZWdtZW50IGNhc2VzXG5cdC8vIEZJWE1FOiB0aGVyZSBzaG91bGQgYmUgbW9yZSBlbGVnYW50IHNvbHV0aW9uXG5cdHZlYzIgcHJldlRhbkRpZmYgPSBhYnMocHJldlRhbmdlbnQgLSBjdXJyVGFuZ2VudCk7XG5cdHZlYzIgbmV4dFRhbkRpZmYgPSBhYnMobmV4dFRhbmdlbnQgLSBjdXJyVGFuZ2VudCk7XG5cdGlmIChtYXgocHJldlRhbkRpZmYueCwgcHJldlRhbkRpZmYueSkgPCBNSU5fRElGRikge1xuXHRcdHN0YXJ0Sm9pbkRpcmVjdGlvbiA9IGN1cnJOb3JtYWw7XG5cdH1cblx0aWYgKG1heChuZXh0VGFuRGlmZi54LCBuZXh0VGFuRGlmZi55KSA8IE1JTl9ESUZGKSB7XG5cdFx0ZW5kSm9pbkRpcmVjdGlvbiA9IGN1cnJOb3JtYWw7XG5cdH1cblx0aWYgKGFDb29yZCA9PSBiQ29vcmQpIHtcblx0XHRlbmRKb2luRGlyZWN0aW9uID0gc3RhcnRKb2luRGlyZWN0aW9uO1xuXHRcdGN1cnJOb3JtYWwgPSBwcmV2Tm9ybWFsO1xuXHRcdGN1cnJUYW5nZW50ID0gcHJldlRhbmdlbnQ7XG5cdH1cblxuXHR0YW5nZW50ID0gY3VyclRhbmdlbnQ7XG5cblx0Ly9jYWxjdWxhdGUgam9pbiBzaGlmdHMgcmVsYXRpdmUgdG8gbm9ybWFsc1xuXHRmbG9hdCBzdGFydEpvaW5TaGlmdCA9IGRvdChjdXJyTm9ybWFsLCBzdGFydEpvaW5EaXJlY3Rpb24pO1xuXHRmbG9hdCBlbmRKb2luU2hpZnQgPSBkb3QoY3Vyck5vcm1hbCwgZW5kSm9pbkRpcmVjdGlvbik7XG5cblx0ZmxvYXQgc3RhcnRNaXRlclJhdGlvID0gYWJzKDEuIC8gc3RhcnRKb2luU2hpZnQpO1xuXHRmbG9hdCBlbmRNaXRlclJhdGlvID0gYWJzKDEuIC8gZW5kSm9pblNoaWZ0KTtcblxuXHR2ZWMyIHN0YXJ0Sm9pbiA9IHN0YXJ0Sm9pbkRpcmVjdGlvbiAqIHN0YXJ0TWl0ZXJSYXRpbztcblx0dmVjMiBlbmRKb2luID0gZW5kSm9pbkRpcmVjdGlvbiAqIGVuZE1pdGVyUmF0aW87XG5cblx0dmVjMiBzdGFydFRvcEpvaW4sIHN0YXJ0Qm90Sm9pbiwgZW5kVG9wSm9pbiwgZW5kQm90Sm9pbjtcblx0c3RhcnRUb3BKb2luID0gc2lnbihzdGFydEpvaW5TaGlmdCkgKiBzdGFydEpvaW4gKiAuNTtcblx0c3RhcnRCb3RKb2luID0gLXN0YXJ0VG9wSm9pbjtcblxuXHRlbmRUb3BKb2luID0gc2lnbihlbmRKb2luU2hpZnQpICogZW5kSm9pbiAqIC41O1xuXHRlbmRCb3RKb2luID0gLWVuZFRvcEpvaW47XG5cblx0dmVjMiBhVG9wQ29vcmQgPSBhQ29vcmQgKyBub3JtYWxXaWR0aCAqIHN0YXJ0VG9wSm9pbjtcblx0dmVjMiBiVG9wQ29vcmQgPSBiQ29vcmQgKyBub3JtYWxXaWR0aCAqIGVuZFRvcEpvaW47XG5cdHZlYzIgYUJvdENvb3JkID0gYUNvb3JkICsgbm9ybWFsV2lkdGggKiBzdGFydEJvdEpvaW47XG5cdHZlYzIgYkJvdENvb3JkID0gYkNvb3JkICsgbm9ybWFsV2lkdGggKiBlbmRCb3RKb2luO1xuXG5cdC8vbWl0ZXIgYW50aS1jbGlwcGluZ1xuXHRmbG9hdCBiYUNsaXBwaW5nID0gZGlzdFRvTGluZShiQ29vcmQsIGFDb29yZCwgYUJvdENvb3JkKSAvIGRvdChub3JtYWxpemUobm9ybWFsV2lkdGggKiBlbmRCb3RKb2luKSwgbm9ybWFsaXplKG5vcm1hbFdpZHRoLnl4ICogdmVjMigtc3RhcnRCb3RKb2luLnksIHN0YXJ0Qm90Sm9pbi54KSkpO1xuXHRmbG9hdCBhYkNsaXBwaW5nID0gZGlzdFRvTGluZShhQ29vcmQsIGJDb29yZCwgYlRvcENvb3JkKSAvIGRvdChub3JtYWxpemUobm9ybWFsV2lkdGggKiBzdGFydEJvdEpvaW4pLCBub3JtYWxpemUobm9ybWFsV2lkdGgueXggKiB2ZWMyKC1lbmRCb3RKb2luLnksIGVuZEJvdEpvaW4ueCkpKTtcblxuXHQvL3ByZXZlbnQgY2xvc2UgdG8gcmV2ZXJzZSBkaXJlY3Rpb24gc3dpdGNoXG5cdGJvb2wgcHJldlJldmVyc2UgPSBkb3QoY3VyclRhbmdlbnQsIHByZXZUYW5nZW50KSA8PSBSRVZFUlNFX1RIUkVTSE9MRCAmJiBhYnMoZG90KGN1cnJUYW5nZW50LCBwcmV2Tm9ybWFsKSkgKiBtaW4obGVuZ3RoKHByZXZEaWZmKSwgbGVuZ3RoKGN1cnJEaWZmKSkgPCAgbGVuZ3RoKG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCk7XG5cdGJvb2wgbmV4dFJldmVyc2UgPSBkb3QoY3VyclRhbmdlbnQsIG5leHRUYW5nZW50KSA8PSBSRVZFUlNFX1RIUkVTSE9MRCAmJiBhYnMoZG90KGN1cnJUYW5nZW50LCBuZXh0Tm9ybWFsKSkgKiBtaW4obGVuZ3RoKG5leHREaWZmKSwgbGVuZ3RoKGN1cnJEaWZmKSkgPCAgbGVuZ3RoKG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCk7XG5cblx0aWYgKHByZXZSZXZlcnNlKSB7XG5cdFx0Ly9tYWtlIGpvaW4gcmVjdGFuZ3VsYXJcblx0XHR2ZWMyIG1pdGVyU2hpZnQgPSBub3JtYWxXaWR0aCAqIHN0YXJ0Sm9pbkRpcmVjdGlvbiAqIG1pdGVyTGltaXQgKiAuNTtcblx0XHRmbG9hdCBub3JtYWxBZGp1c3QgPSAxLiAtIG1pbihtaXRlckxpbWl0IC8gc3RhcnRNaXRlclJhdGlvLCAxLik7XG5cdFx0YUJvdENvb3JkID0gYUNvb3JkICsgbWl0ZXJTaGlmdCAtIG5vcm1hbEFkanVzdCAqIG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCAqIC41O1xuXHRcdGFUb3BDb29yZCA9IGFDb29yZCArIG1pdGVyU2hpZnQgKyBub3JtYWxBZGp1c3QgKiBub3JtYWxXaWR0aCAqIGN1cnJOb3JtYWwgKiAuNTtcblx0fVxuXHRlbHNlIGlmICghbmV4dFJldmVyc2UgJiYgYmFDbGlwcGluZyA+IDAuICYmIGJhQ2xpcHBpbmcgPCBsZW5ndGgobm9ybWFsV2lkdGggKiBlbmRCb3RKb2luKSkge1xuXHRcdC8vaGFuZGxlIG1pdGVyIGNsaXBwaW5nXG5cdFx0YlRvcENvb3JkIC09IG5vcm1hbFdpZHRoICogZW5kVG9wSm9pbjtcblx0XHRiVG9wQ29vcmQgKz0gbm9ybWFsaXplKGVuZFRvcEpvaW4gKiBub3JtYWxXaWR0aCkgKiBiYUNsaXBwaW5nO1xuXHR9XG5cblx0aWYgKG5leHRSZXZlcnNlKSB7XG5cdFx0Ly9tYWtlIGpvaW4gcmVjdGFuZ3VsYXJcblx0XHR2ZWMyIG1pdGVyU2hpZnQgPSBub3JtYWxXaWR0aCAqIGVuZEpvaW5EaXJlY3Rpb24gKiBtaXRlckxpbWl0ICogLjU7XG5cdFx0ZmxvYXQgbm9ybWFsQWRqdXN0ID0gMS4gLSBtaW4obWl0ZXJMaW1pdCAvIGVuZE1pdGVyUmF0aW8sIDEuKTtcblx0XHRiQm90Q29vcmQgPSBiQ29vcmQgKyBtaXRlclNoaWZ0IC0gbm9ybWFsQWRqdXN0ICogbm9ybWFsV2lkdGggKiBjdXJyTm9ybWFsICogLjU7XG5cdFx0YlRvcENvb3JkID0gYkNvb3JkICsgbWl0ZXJTaGlmdCArIG5vcm1hbEFkanVzdCAqIG5vcm1hbFdpZHRoICogY3Vyck5vcm1hbCAqIC41O1xuXHR9XG5cdGVsc2UgaWYgKCFwcmV2UmV2ZXJzZSAmJiBhYkNsaXBwaW5nID4gMC4gJiYgYWJDbGlwcGluZyA8IGxlbmd0aChub3JtYWxXaWR0aCAqIHN0YXJ0Qm90Sm9pbikpIHtcblx0XHQvL2hhbmRsZSBtaXRlciBjbGlwcGluZ1xuXHRcdGFCb3RDb29yZCAtPSBub3JtYWxXaWR0aCAqIHN0YXJ0Qm90Sm9pbjtcblx0XHRhQm90Q29vcmQgKz0gbm9ybWFsaXplKHN0YXJ0Qm90Sm9pbiAqIG5vcm1hbFdpZHRoKSAqIGFiQ2xpcHBpbmc7XG5cdH1cblxuXHR2ZWMyIGFUb3BQb3NpdGlvbiA9IChhVG9wQ29vcmQpICogYWRqdXN0ZWRTY2FsZSArIHRyYW5zbGF0ZTtcblx0dmVjMiBhQm90UG9zaXRpb24gPSAoYUJvdENvb3JkKSAqIGFkanVzdGVkU2NhbGUgKyB0cmFuc2xhdGU7XG5cblx0dmVjMiBiVG9wUG9zaXRpb24gPSAoYlRvcENvb3JkKSAqIGFkanVzdGVkU2NhbGUgKyB0cmFuc2xhdGU7XG5cdHZlYzIgYkJvdFBvc2l0aW9uID0gKGJCb3RDb29yZCkgKiBhZGp1c3RlZFNjYWxlICsgdHJhbnNsYXRlO1xuXG5cdC8vcG9zaXRpb24gaXMgbm9ybWFsaXplZCAwLi4xIGNvb3JkIG9uIHRoZSBzY3JlZW5cblx0dmVjMiBwb3NpdGlvbiA9IChhVG9wUG9zaXRpb24gKiBsaW5lVG9wICsgYUJvdFBvc2l0aW9uICogbGluZUJvdCkgKiBsaW5lU3RhcnQgKyAoYlRvcFBvc2l0aW9uICogbGluZVRvcCArIGJCb3RQb3NpdGlvbiAqIGxpbmVCb3QpICogbGluZUVuZDtcblxuXHRzdGFydENvb3JkID0gYUNvb3JkICogc2NhbGVSYXRpbyArIHRyYW5zbGF0ZSAqIHZpZXdwb3J0Lnp3ICsgdmlld3BvcnQueHk7XG5cdGVuZENvb3JkID0gYkNvb3JkICogc2NhbGVSYXRpbyArIHRyYW5zbGF0ZSAqIHZpZXdwb3J0Lnp3ICsgdmlld3BvcnQueHk7XG5cblx0Z2xfUG9zaXRpb24gPSB2ZWM0KHBvc2l0aW9uICAqIDIuMCAtIDEuMCwgZGVwdGgsIDEpO1xuXG5cdGVuYWJsZVN0YXJ0TWl0ZXIgPSBzdGVwKGRvdChjdXJyVGFuZ2VudCwgcHJldlRhbmdlbnQpLCAuNSk7XG5cdGVuYWJsZUVuZE1pdGVyID0gc3RlcChkb3QoY3VyclRhbmdlbnQsIG5leHRUYW5nZW50KSwgLjUpO1xuXG5cdC8vYmV2ZWwgbWl0ZXIgY3V0b2Zmc1xuXHRpZiAobWl0ZXJNb2RlID09IDEuKSB7XG5cdFx0aWYgKGVuYWJsZVN0YXJ0TWl0ZXIgPT0gMS4pIHtcblx0XHRcdHZlYzIgc3RhcnRNaXRlcldpZHRoID0gdmVjMihzdGFydEpvaW5EaXJlY3Rpb24pICogdGhpY2tuZXNzICogbWl0ZXJMaW1pdCAqIC41O1xuXHRcdFx0c3RhcnRDdXRvZmYgPSB2ZWM0KGFDb29yZCwgYUNvb3JkKTtcblx0XHRcdHN0YXJ0Q3V0b2ZmLnp3ICs9IHZlYzIoLXN0YXJ0Sm9pbkRpcmVjdGlvbi55LCBzdGFydEpvaW5EaXJlY3Rpb24ueCkgLyBzY2FsZVJhdGlvO1xuXHRcdFx0c3RhcnRDdXRvZmYgPSBzdGFydEN1dG9mZiAqIHNjYWxlUmF0aW8ueHl4eSArIHRyYW5zbGF0ZS54eXh5ICogdmlld3BvcnQuend6dztcblx0XHRcdHN0YXJ0Q3V0b2ZmICs9IHZpZXdwb3J0Lnh5eHk7XG5cdFx0XHRzdGFydEN1dG9mZiArPSBzdGFydE1pdGVyV2lkdGgueHl4eTtcblx0XHR9XG5cblx0XHRpZiAoZW5hYmxlRW5kTWl0ZXIgPT0gMS4pIHtcblx0XHRcdHZlYzIgZW5kTWl0ZXJXaWR0aCA9IHZlYzIoZW5kSm9pbkRpcmVjdGlvbikgKiB0aGlja25lc3MgKiBtaXRlckxpbWl0ICogLjU7XG5cdFx0XHRlbmRDdXRvZmYgPSB2ZWM0KGJDb29yZCwgYkNvb3JkKTtcblx0XHRcdGVuZEN1dG9mZi56dyArPSB2ZWMyKC1lbmRKb2luRGlyZWN0aW9uLnksIGVuZEpvaW5EaXJlY3Rpb24ueCkgIC8gc2NhbGVSYXRpbztcblx0XHRcdGVuZEN1dG9mZiA9IGVuZEN1dG9mZiAqIHNjYWxlUmF0aW8ueHl4eSArIHRyYW5zbGF0ZS54eXh5ICogdmlld3BvcnQuend6dztcblx0XHRcdGVuZEN1dG9mZiArPSB2aWV3cG9ydC54eXh5O1xuXHRcdFx0ZW5kQ3V0b2ZmICs9IGVuZE1pdGVyV2lkdGgueHl4eTtcblx0XHR9XG5cdH1cblxuXHQvL3JvdW5kIG1pdGVyIGN1dG9mZnNcblx0ZWxzZSBpZiAobWl0ZXJNb2RlID09IDIuKSB7XG5cdFx0aWYgKGVuYWJsZVN0YXJ0TWl0ZXIgPT0gMS4pIHtcblx0XHRcdHZlYzIgc3RhcnRNaXRlcldpZHRoID0gdmVjMihzdGFydEpvaW5EaXJlY3Rpb24pICogdGhpY2tuZXNzICogYWJzKGRvdChzdGFydEpvaW5EaXJlY3Rpb24sIGN1cnJOb3JtYWwpKSAqIC41O1xuXHRcdFx0c3RhcnRDdXRvZmYgPSB2ZWM0KGFDb29yZCwgYUNvb3JkKTtcblx0XHRcdHN0YXJ0Q3V0b2ZmLnp3ICs9IHZlYzIoLXN0YXJ0Sm9pbkRpcmVjdGlvbi55LCBzdGFydEpvaW5EaXJlY3Rpb24ueCkgLyBzY2FsZVJhdGlvO1xuXHRcdFx0c3RhcnRDdXRvZmYgPSBzdGFydEN1dG9mZiAqIHNjYWxlUmF0aW8ueHl4eSArIHRyYW5zbGF0ZS54eXh5ICogdmlld3BvcnQuend6dztcblx0XHRcdHN0YXJ0Q3V0b2ZmICs9IHZpZXdwb3J0Lnh5eHk7XG5cdFx0XHRzdGFydEN1dG9mZiArPSBzdGFydE1pdGVyV2lkdGgueHl4eTtcblx0XHR9XG5cblx0XHRpZiAoZW5hYmxlRW5kTWl0ZXIgPT0gMS4pIHtcblx0XHRcdHZlYzIgZW5kTWl0ZXJXaWR0aCA9IHZlYzIoZW5kSm9pbkRpcmVjdGlvbikgKiB0aGlja25lc3MgKiBhYnMoZG90KGVuZEpvaW5EaXJlY3Rpb24sIGN1cnJOb3JtYWwpKSAqIC41O1xuXHRcdFx0ZW5kQ3V0b2ZmID0gdmVjNChiQ29vcmQsIGJDb29yZCk7XG5cdFx0XHRlbmRDdXRvZmYuencgKz0gdmVjMigtZW5kSm9pbkRpcmVjdGlvbi55LCBlbmRKb2luRGlyZWN0aW9uLngpICAvIHNjYWxlUmF0aW87XG5cdFx0XHRlbmRDdXRvZmYgPSBlbmRDdXRvZmYgKiBzY2FsZVJhdGlvLnh5eHkgKyB0cmFuc2xhdGUueHl4eSAqIHZpZXdwb3J0Lnp3enc7XG5cdFx0XHRlbmRDdXRvZmYgKz0gdmlld3BvcnQueHl4eTtcblx0XHRcdGVuZEN1dG9mZiArPSBlbmRNaXRlcldpZHRoLnh5eHk7XG5cdFx0fVxuXHR9XG59XG4iXSksZnJhZzpvKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBmbG9hdCBkYXNoTGVuZ3RoLCBwaXhlbFJhdGlvLCB0aGlja25lc3MsIG9wYWNpdHksIGlkLCBtaXRlck1vZGU7XG51bmlmb3JtIHNhbXBsZXIyRCBkYXNoVGV4dHVyZTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcbnZhcnlpbmcgdmVjMiB0YW5nZW50O1xudmFyeWluZyB2ZWM0IHN0YXJ0Q3V0b2ZmLCBlbmRDdXRvZmY7XG52YXJ5aW5nIHZlYzIgc3RhcnRDb29yZCwgZW5kQ29vcmQ7XG52YXJ5aW5nIGZsb2F0IGVuYWJsZVN0YXJ0TWl0ZXIsIGVuYWJsZUVuZE1pdGVyO1xuXG5mbG9hdCBkaXN0VG9MaW5lKHZlYzIgcCwgdmVjMiBhLCB2ZWMyIGIpIHtcblx0dmVjMiBkaWZmID0gYiAtIGE7XG5cdHZlYzIgcGVycCA9IG5vcm1hbGl6ZSh2ZWMyKC1kaWZmLnksIGRpZmYueCkpO1xuXHRyZXR1cm4gZG90KHAgLSBhLCBwZXJwKTtcbn1cblxudm9pZCBtYWluKCkge1xuXHRmbG9hdCBhbHBoYSA9IDEuLCBkaXN0VG9TdGFydCwgZGlzdFRvRW5kO1xuXHRmbG9hdCBjdXRvZmYgPSB0aGlja25lc3MgKiAuNTtcblxuXHQvL2JldmVsIG1pdGVyXG5cdGlmIChtaXRlck1vZGUgPT0gMS4pIHtcblx0XHRpZiAoZW5hYmxlU3RhcnRNaXRlciA9PSAxLikge1xuXHRcdFx0ZGlzdFRvU3RhcnQgPSBkaXN0VG9MaW5lKGdsX0ZyYWdDb29yZC54eSwgc3RhcnRDdXRvZmYueHksIHN0YXJ0Q3V0b2ZmLnp3KTtcblx0XHRcdGlmIChkaXN0VG9TdGFydCA8IC0xLikge1xuXHRcdFx0XHRkaXNjYXJkO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cdFx0XHRhbHBoYSAqPSBtaW4obWF4KGRpc3RUb1N0YXJ0ICsgMS4sIDAuKSwgMS4pO1xuXHRcdH1cblxuXHRcdGlmIChlbmFibGVFbmRNaXRlciA9PSAxLikge1xuXHRcdFx0ZGlzdFRvRW5kID0gZGlzdFRvTGluZShnbF9GcmFnQ29vcmQueHksIGVuZEN1dG9mZi54eSwgZW5kQ3V0b2ZmLnp3KTtcblx0XHRcdGlmIChkaXN0VG9FbmQgPCAtMS4pIHtcblx0XHRcdFx0ZGlzY2FyZDtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXHRcdFx0YWxwaGEgKj0gbWluKG1heChkaXN0VG9FbmQgKyAxLiwgMC4pLCAxLik7XG5cdFx0fVxuXHR9XG5cblx0Ly8gcm91bmQgbWl0ZXJcblx0ZWxzZSBpZiAobWl0ZXJNb2RlID09IDIuKSB7XG5cdFx0aWYgKGVuYWJsZVN0YXJ0TWl0ZXIgPT0gMS4pIHtcblx0XHRcdGRpc3RUb1N0YXJ0ID0gZGlzdFRvTGluZShnbF9GcmFnQ29vcmQueHksIHN0YXJ0Q3V0b2ZmLnh5LCBzdGFydEN1dG9mZi56dyk7XG5cdFx0XHRpZiAoZGlzdFRvU3RhcnQgPCAwLikge1xuXHRcdFx0XHRmbG9hdCByYWRpdXMgPSBsZW5ndGgoZ2xfRnJhZ0Nvb3JkLnh5IC0gc3RhcnRDb29yZCk7XG5cblx0XHRcdFx0aWYocmFkaXVzID4gY3V0b2ZmICsgLjUpIHtcblx0XHRcdFx0XHRkaXNjYXJkO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGFscGhhIC09IHNtb290aHN0ZXAoY3V0b2ZmIC0gLjUsIGN1dG9mZiArIC41LCByYWRpdXMpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmIChlbmFibGVFbmRNaXRlciA9PSAxLikge1xuXHRcdFx0ZGlzdFRvRW5kID0gZGlzdFRvTGluZShnbF9GcmFnQ29vcmQueHksIGVuZEN1dG9mZi54eSwgZW5kQ3V0b2ZmLnp3KTtcblx0XHRcdGlmIChkaXN0VG9FbmQgPCAwLikge1xuXHRcdFx0XHRmbG9hdCByYWRpdXMgPSBsZW5ndGgoZ2xfRnJhZ0Nvb3JkLnh5IC0gZW5kQ29vcmQpO1xuXG5cdFx0XHRcdGlmKHJhZGl1cyA+IGN1dG9mZiArIC41KSB7XG5cdFx0XHRcdFx0ZGlzY2FyZDtcblx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRhbHBoYSAtPSBzbW9vdGhzdGVwKGN1dG9mZiAtIC41LCBjdXRvZmYgKyAuNSwgcmFkaXVzKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRmbG9hdCB0ID0gZnJhY3QoZG90KHRhbmdlbnQsIGdsX0ZyYWdDb29yZC54eSkgLyBkYXNoTGVuZ3RoKSAqIC41ICsgLjI1O1xuXHRmbG9hdCBkYXNoID0gdGV4dHVyZTJEKGRhc2hUZXh0dXJlLCB2ZWMyKHQsIC41KSkucjtcblxuXHRnbF9GcmFnQ29sb3IgPSBmcmFnQ29sb3I7XG5cdGdsX0ZyYWdDb2xvci5hICo9IGFscGhhICogb3BhY2l0eSAqIGRhc2g7XG59XG4iXSksYXR0cmlidXRlczp7bGluZUVuZDp7YnVmZmVyOnIsZGl2aXNvcjowLHN0cmlkZTo4LG9mZnNldDowfSxsaW5lVG9wOntidWZmZXI6cixkaXZpc29yOjAsc3RyaWRlOjgsb2Zmc2V0OjR9LGFDb2xvcjp7YnVmZmVyOnQucHJvcCgiY29sb3JCdWZmZXIiKSxzdHJpZGU6NCxvZmZzZXQ6MCxkaXZpc29yOjF9LGJDb2xvcjp7YnVmZmVyOnQucHJvcCgiY29sb3JCdWZmZXIiKSxzdHJpZGU6NCxvZmZzZXQ6NCxkaXZpc29yOjF9LHByZXZDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6MCxkaXZpc29yOjF9LGFDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6OCxkaXZpc29yOjF9LGJDb29yZDp7YnVmZmVyOnQucHJvcCgicG9zaXRpb25CdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6MTYsZGl2aXNvcjoxfSxuZXh0Q29vcmQ6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0OjI0LGRpdmlzb3I6MX19fSxuKSl9Y2F0Y2godCl7ZT1pfXJldHVybntmaWxsOnQoe3ByaW1pdGl2ZToidHJpYW5nbGUiLGVsZW1lbnRzOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUudHJpYW5nbGVzfSxvZmZzZXQ6MCx2ZXJ0Om8oWyJwcmVjaXNpb24gaGlnaHAgZmxvYXQ7XG4jZGVmaW5lIEdMU0xJRlkgMVxuXG5hdHRyaWJ1dGUgdmVjMiBwb3NpdGlvbiwgcG9zaXRpb25GcmFjdDtcblxudW5pZm9ybSB2ZWM0IGNvbG9yO1xudW5pZm9ybSB2ZWMyIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0O1xudW5pZm9ybSBmbG9hdCBwaXhlbFJhdGlvLCBpZDtcbnVuaWZvcm0gdmVjNCB2aWV3cG9ydDtcbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxuY29uc3QgZmxvYXQgTUFYX0xJTkVTID0gMjU2Ljtcblxudm9pZCBtYWluKCkge1xuXHRmbG9hdCBkZXB0aCA9IChNQVhfTElORVMgLSA0LiAtIGlkKSAvIChNQVhfTElORVMpO1xuXG5cdHZlYzIgcG9zaXRpb24gPSBwb3NpdGlvbiAqIHNjYWxlICsgdHJhbnNsYXRlXG4gICAgICAgKyBwb3NpdGlvbkZyYWN0ICogc2NhbGUgKyB0cmFuc2xhdGVGcmFjdFxuICAgICAgICsgcG9zaXRpb24gKiBzY2FsZUZyYWN0XG4gICAgICAgKyBwb3NpdGlvbkZyYWN0ICogc2NhbGVGcmFjdDtcblxuXHRnbF9Qb3NpdGlvbiA9IHZlYzQocG9zaXRpb24gKiAyLjAgLSAxLjAsIGRlcHRoLCAxKTtcblxuXHRmcmFnQ29sb3IgPSBjb2xvciAvIDI1NS47XG5cdGZyYWdDb2xvci5hICo9IG9wYWNpdHk7XG59XG4iXSksZnJhZzpvKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuXHRnbF9GcmFnQ29sb3IgPSBmcmFnQ29sb3I7XG59XG4iXSksdW5pZm9ybXM6e3NjYWxlOnQucHJvcCgic2NhbGUiKSxjb2xvcjp0LnByb3AoImZpbGwiKSxzY2FsZUZyYWN0OnQucHJvcCgic2NhbGVGcmFjdCIpLHRyYW5zbGF0ZUZyYWN0OnQucHJvcCgidHJhbnNsYXRlRnJhY3QiKSx0cmFuc2xhdGU6dC5wcm9wKCJ0cmFuc2xhdGUiKSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLHBpeGVsUmF0aW86dC5jb250ZXh0KCJwaXhlbFJhdGlvIiksaWQ6dC5wcm9wKCJpZCIpLHZpZXdwb3J0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuW2Uudmlld3BvcnQueCxlLnZpZXdwb3J0LnksdC52aWV3cG9ydFdpZHRoLHQudmlld3BvcnRIZWlnaHRdfX0sYXR0cmlidXRlczp7cG9zaXRpb246e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uQnVmZmVyIiksc3RyaWRlOjgsb2Zmc2V0Ojh9LHBvc2l0aW9uRnJhY3Q6e2J1ZmZlcjp0LnByb3AoInBvc2l0aW9uRnJhY3RCdWZmZXIiKSxzdHJpZGU6OCxvZmZzZXQ6OH19LGJsZW5kOm4uYmxlbmQsZGVwdGg6e2VuYWJsZTohMX0sc2Npc3NvcjpuLnNjaXNzb3Isc3RlbmNpbDpuLnN0ZW5jaWwsdmlld3BvcnQ6bi52aWV3cG9ydH0pLHJlY3Q6aSxtaXRlcjplfX0sdi5kZWZhdWx0cz17ZGFzaGVzOm51bGwsam9pbjoibWl0ZXIiLG1pdGVyTGltaXQ6MSx0aGlja25lc3M6MTAsY2FwOiJzcXVhcmUiLGNvbG9yOiJibGFjayIsb3BhY2l0eToxLG92ZXJsYXk6ITEsdmlld3BvcnQ6bnVsbCxyYW5nZTpudWxsLGNsb3NlOiExLGZpbGw6bnVsbH0sdi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZVtyXT1hcmd1bWVudHNbcl07ZS5sZW5ndGgmJih0PXRoaXMpLnVwZGF0ZS5hcHBseSh0LGUpLHRoaXMuZHJhdygpfSx2LnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyllW3JdPWFyZ3VtZW50c1tyXTtyZXR1cm4oZS5sZW5ndGg/ZTp0aGlzLnBhc3NlcykuZm9yRWFjaCgoZnVuY3Rpb24oZSxyKXt2YXIgbjtpZihlJiZBcnJheS5pc0FycmF5KGUpKXJldHVybihuPXQpLmRyYXcuYXBwbHkobixlKTsibnVtYmVyIj09dHlwZW9mIGUmJihlPXQucGFzc2VzW2VdKSxlJiZlLmNvdW50PjEmJmUub3BhY2l0eSYmKHQucmVnbC5fcmVmcmVzaCgpLGUuZmlsbCYmZS50cmlhbmdsZXMmJmUudHJpYW5nbGVzLmxlbmd0aD4yJiZ0LnNoYWRlcnMuZmlsbChlKSxlLnRoaWNrbmVzcyYmKGUuc2NhbGVbMF0qZS52aWV3cG9ydC53aWR0aD52LnByZWNpc2lvblRocmVzaG9sZHx8ZS5zY2FsZVsxXSplLnZpZXdwb3J0LmhlaWdodD52LnByZWNpc2lvblRocmVzaG9sZHx8InJlY3QiPT09ZS5qb2lufHwhZS5qb2luJiYoZS50aGlja25lc3M8PTJ8fGUuY291bnQ+PXYubWF4UG9pbnRzKT90LnNoYWRlcnMucmVjdChlKTp0LnNoYWRlcnMubWl0ZXIoZSkpKX0pKSx0aGlzfSx2LnByb3RvdHlwZS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcztpZih0KXtudWxsIT10Lmxlbmd0aD8ibnVtYmVyIj09dHlwZW9mIHRbMF0mJih0PVt7cG9zaXRpb25zOnR9XSk6QXJyYXkuaXNBcnJheSh0KXx8KHQ9W3RdKTt2YXIgcj10aGlzLnJlZ2wsbz10aGlzLmdsO2lmKHQuZm9yRWFjaCgoZnVuY3Rpb24odCxmKXt2YXIgZD1lLnBhc3Nlc1tmXTtpZih2b2lkIDAhPT10KWlmKG51bGwhPT10KXtpZigibnVtYmVyIj09dHlwZW9mIHRbMF0mJih0PXtwb3NpdGlvbnM6dH0pLHQ9cyh0LHtwb3NpdGlvbnM6InBvc2l0aW9ucyBwb2ludHMgZGF0YSBjb29yZHMiLHRoaWNrbmVzczoidGhpY2tuZXNzIGxpbmVXaWR0aCBsaW5lV2lkdGhzIGxpbmUtd2lkdGggbGluZXdpZHRoIHdpZHRoIHN0cm9rZS13aWR0aCBzdHJva2V3aWR0aCBzdHJva2VXaWR0aCIsam9pbjoibGluZUpvaW4gbGluZWpvaW4gam9pbiB0eXBlIG1vZGUiLG1pdGVyTGltaXQ6Im1pdGVybGltaXQgbWl0ZXJMaW1pdCIsZGFzaGVzOiJkYXNoIGRhc2hlcyBkYXNoYXJyYXkgZGFzaC1hcnJheSBkYXNoQXJyYXkiLGNvbG9yOiJjb2xvciBjb2xvdXIgc3Ryb2tlIGNvbG9ycyBjb2xvdXJzIHN0cm9rZS1jb2xvciBzdHJva2VDb2xvciIsZmlsbDoiZmlsbCBmaWxsLWNvbG9yIGZpbGxDb2xvciIsb3BhY2l0eToiYWxwaGEgb3BhY2l0eSIsb3ZlcmxheToib3ZlcmxheSBjcmVhc2Ugb3ZlcmxhcCBpbnRlcnNlY3QiLGNsb3NlOiJjbG9zZWQgY2xvc2UgY2xvc2VkLXBhdGggY2xvc2VQYXRoIixyYW5nZToicmFuZ2UgZGF0YUJveCIsdmlld3BvcnQ6InZpZXdwb3J0IHZpZXdCb3giLGhvbGU6ImhvbGVzIGhvbGUgaG9sbG93IixzcGxpdE51bGw6InNwbGl0TnVsbCJ9KSxkfHwoZS5wYXNzZXNbZl09ZD17aWQ6ZixzY2FsZTpudWxsLHNjYWxlRnJhY3Q6bnVsbCx0cmFuc2xhdGU6bnVsbCx0cmFuc2xhdGVGcmFjdDpudWxsLGNvdW50OjAsaG9sZTpbXSxkZXB0aDowLGRhc2hMZW5ndGg6MSxkYXNoVGV4dHVyZTpyLnRleHR1cmUoe2NoYW5uZWxzOjEsZGF0YTpuZXcgVWludDhBcnJheShbMjU1XSksd2lkdGg6MSxoZWlnaHQ6MSxtYWc6ImxpbmVhciIsbWluOiJsaW5lYXIifSksY29sb3JCdWZmZXI6ci5idWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCIsZGF0YTpuZXcgVWludDhBcnJheX0pLHBvc2l0aW9uQnVmZmVyOnIuYnVmZmVyKHt1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQiLGRhdGE6bmV3IFVpbnQ4QXJyYXl9KSxwb3NpdGlvbkZyYWN0QnVmZmVyOnIuYnVmZmVyKHt1c2FnZToiZHluYW1pYyIsdHlwZToiZmxvYXQiLGRhdGE6bmV3IFVpbnQ4QXJyYXl9KX0sdD1hKHt9LHYuZGVmYXVsdHMsdCkpLG51bGwhPXQudGhpY2tuZXNzJiYoZC50aGlja25lc3M9cGFyc2VGbG9hdCh0LnRoaWNrbmVzcykpLG51bGwhPXQub3BhY2l0eSYmKGQub3BhY2l0eT1wYXJzZUZsb2F0KHQub3BhY2l0eSkpLG51bGwhPXQubWl0ZXJMaW1pdCYmKGQubWl0ZXJMaW1pdD1wYXJzZUZsb2F0KHQubWl0ZXJMaW1pdCkpLG51bGwhPXQub3ZlcmxheSYmKGQub3ZlcmxheT0hIXQub3ZlcmxheSxmPHYubWF4TGluZXMmJihkLmRlcHRoPTIqKHYubWF4TGluZXMtMS1mJXYubWF4TGluZXMpL3YubWF4TGluZXMtMSkpLG51bGwhPXQuam9pbiYmKGQuam9pbj10LmpvaW4pLG51bGwhPXQuaG9sZSYmKGQuaG9sZT10LmhvbGUpLG51bGwhPXQuZmlsbCYmKGQuZmlsbD10LmZpbGw/bih0LmZpbGwsInVpbnQ4Iik6bnVsbCksbnVsbCE9dC52aWV3cG9ydCYmKGQudmlld3BvcnQ9bSh0LnZpZXdwb3J0KSksZC52aWV3cG9ydHx8KGQudmlld3BvcnQ9bShbby5kcmF3aW5nQnVmZmVyV2lkdGgsby5kcmF3aW5nQnVmZmVySGVpZ2h0XSkpLG51bGwhPXQuY2xvc2UmJihkLmNsb3NlPXQuY2xvc2UpLG51bGw9PT10LnBvc2l0aW9ucyYmKHQucG9zaXRpb25zPVtdKSx0LnBvc2l0aW9ucyl7dmFyIHkseDtpZih0LnBvc2l0aW9ucy54JiZ0LnBvc2l0aW9ucy55KXt2YXIgYj10LnBvc2l0aW9ucy54LF89dC5wb3NpdGlvbnMueTt4PWQuY291bnQ9TWF0aC5tYXgoYi5sZW5ndGgsXy5sZW5ndGgpLHk9bmV3IEZsb2F0NjRBcnJheSgyKngpO2Zvcih2YXIgdz0wO3c8eDt3KyspeVsyKnddPWJbd10seVsyKncrMV09X1t3XX1lbHNlIHk9bCh0LnBvc2l0aW9ucywiZmxvYXQ2NCIpLHg9ZC5jb3VudD1NYXRoLmZsb29yKHkubGVuZ3RoLzIpO3ZhciBUPWQuYm91bmRzPWkoeSwyKTtpZihkLmZpbGwpe2Zvcih2YXIgaz1bXSxBPXt9LE09MCxTPTAsRT0wLEw9ZC5jb3VudDtTPEw7UysrKXt2YXIgQz15WzIqU10sUD15WzIqUysxXTtpc05hTihDKXx8aXNOYU4oUCl8fG51bGw9PUN8fG51bGw9PVA/KEM9eVsyKk1dLFA9eVsyKk0rMV0sQVtTXT1NKTpNPVMsa1tFKytdPUMsa1tFKytdPVB9aWYodC5zcGxpdE51bGwpe2QuY291bnQtMSBpbiBBfHwoQVtkLmNvdW50XT1kLmNvdW50LTEpO3ZhciBJPU9iamVjdC5rZXlzKEEpLm1hcChOdW1iZXIpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKSxPPVtdLHo9MCxEPW51bGwhPWQuaG9sZT9kLmhvbGVbMF06bnVsbDtpZihudWxsIT1EKXt2YXIgUj1nKEksKGZ1bmN0aW9uKHQpe3JldHVybiB0Pj1EfSkpOyhJPUkuc2xpY2UoMCxSKSkucHVzaChEKX1mb3IodmFyIEY9ZnVuY3Rpb24odCl7dmFyIGU9ay5zbGljZSgyKnosMipJW3RdKS5jb25jYXQoRD9rLnNsaWNlKDIqRCk6W10pLHI9KGQuaG9sZXx8W10pLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUtRCsoSVt0XS16KX0pKSxuPWMoZSxyKTtuPW4ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gZSt6KyhlK3o8SVt0XT8wOkQtSVt0XSl9KSksTy5wdXNoLmFwcGx5KE8sbiksej1JW3RdKzF9LEI9MDtCPEkubGVuZ3RoO0IrKylGKEIpO2Zvcih2YXIgTj0wLGo9Ty5sZW5ndGg7TjxqO04rKyludWxsIT1BW09bTl1dJiYoT1tOXT1BW09bTl1dKTtkLnRyaWFuZ2xlcz1PfWVsc2V7Zm9yKHZhciBVPWMoayxkLmhvbGV8fFtdKSxWPTAsSD1VLmxlbmd0aDtWPEg7VisrKW51bGwhPUFbVVtWXV0mJihVW1ZdPUFbVVtWXV0pO2QudHJpYW5nbGVzPVV9fXZhciBxPW5ldyBGbG9hdDY0QXJyYXkoeSk7dShxLDIsVCk7dmFyIEc9bmV3IEZsb2F0NjRBcnJheSgyKngrNik7ZC5jbG9zZT95WzBdPT09eVsyKngtMl0mJnlbMV09PT15WzIqeC0xXT8oR1swXT1xWzIqeC00XSxHWzFdPXFbMip4LTNdKTooR1swXT1xWzIqeC0yXSxHWzFdPXFbMip4LTFdKTooR1swXT1xWzBdLEdbMV09cVsxXSksRy5zZXQocSwyKSxkLmNsb3NlP3lbMF09PT15WzIqeC0yXSYmeVsxXT09PXlbMip4LTFdPyhHWzIqeCsyXT1xWzJdLEdbMip4KzNdPXFbM10sZC5jb3VudC09MSk6KEdbMip4KzJdPXFbMF0sR1syKngrM109cVsxXSxHWzIqeCs0XT1xWzJdLEdbMip4KzVdPXFbM10pOihHWzIqeCsyXT1xWzIqeC0yXSxHWzIqeCszXT1xWzIqeC0xXSxHWzIqeCs0XT1xWzIqeC0yXSxHWzIqeCs1XT1xWzIqeC0xXSk7dmFyIFk9aChHKTtkLnBvc2l0aW9uQnVmZmVyKFkpO3ZhciBXPXAoRyxZKTtkLnBvc2l0aW9uRnJhY3RCdWZmZXIoVyl9aWYodC5yYW5nZT9kLnJhbmdlPXQucmFuZ2U6ZC5yYW5nZXx8KGQucmFuZ2U9ZC5ib3VuZHMpLCh0LnJhbmdlfHx0LnBvc2l0aW9ucykmJmQuY291bnQpe3ZhciBYPWQuYm91bmRzLFo9WFsyXS1YWzBdLEo9WFszXS1YWzFdLEs9ZC5yYW5nZVsyXS1kLnJhbmdlWzBdLFE9ZC5yYW5nZVszXS1kLnJhbmdlWzFdO2Quc2NhbGU9W1ovSyxKL1FdLGQudHJhbnNsYXRlPVstZC5yYW5nZVswXS9LK1hbMF0vS3x8MCwtZC5yYW5nZVsxXS9RK1hbMV0vUXx8MF0sZC5zY2FsZUZyYWN0PXAoZC5zY2FsZSksZC50cmFuc2xhdGVGcmFjdD1wKGQudHJhbnNsYXRlKX1pZih0LmRhc2hlcyl7dmFyICQsdHQ9MDtpZighdC5kYXNoZXN8fHQuZGFzaGVzLmxlbmd0aDwyKXR0PTEsJD1uZXcgVWludDhBcnJheShbMjU1LDI1NSwyNTUsMjU1LDI1NSwyNTUsMjU1LDI1NV0pO2Vsc2V7dHQ9MDtmb3IodmFyIGV0PTA7ZXQ8dC5kYXNoZXMubGVuZ3RoOysrZXQpdHQrPXQuZGFzaGVzW2V0XTskPW5ldyBVaW50OEFycmF5KHR0KnYuZGFzaE11bHQpO2Zvcih2YXIgcnQ9MCxudD0yNTUsaXQ9MDtpdDwyO2l0KyspZm9yKHZhciBhdD0wO2F0PHQuZGFzaGVzLmxlbmd0aDsrK2F0KXtmb3IodmFyIG90PTAsc3Q9dC5kYXNoZXNbYXRdKnYuZGFzaE11bHQqLjU7b3Q8c3Q7KytvdCkkW3J0KytdPW50O250Xj0yNTV9fWQuZGFzaExlbmd0aD10dCxkLmRhc2hUZXh0dXJlKHtjaGFubmVsczoxLGRhdGE6JCx3aWR0aDokLmxlbmd0aCxoZWlnaHQ6MSxtYWc6ImxpbmVhciIsbWluOiJsaW5lYXIifSwwLDApfWlmKHQuY29sb3Ipe3ZhciBsdD1kLmNvdW50LGN0PXQuY29sb3I7Y3R8fChjdD0idHJhbnNwYXJlbnQiKTt2YXIgdXQ9bmV3IFVpbnQ4QXJyYXkoNCpsdCs0KTtpZihBcnJheS5pc0FycmF5KGN0KSYmIm51bWJlciIhPXR5cGVvZiBjdFswXSl7Zm9yKHZhciBmdD0wO2Z0PGx0O2Z0Kyspe3ZhciBodD1uKGN0W2Z0XSwidWludDgiKTt1dC5zZXQoaHQsNCpmdCl9dXQuc2V0KG4oY3RbMF0sInVpbnQ4IiksNCpsdCl9ZWxzZSBmb3IodmFyIHB0PW4oY3QsInVpbnQ4IiksZHQ9MDtkdDxsdCsxO2R0KyspdXQuc2V0KHB0LDQqZHQpO2QuY29sb3JCdWZmZXIoe3VzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCIsZGF0YTp1dH0pfX1lbHNlIGUucGFzc2VzW2ZdPW51bGx9KSksdC5sZW5ndGg8dGhpcy5wYXNzZXMubGVuZ3RoKXtmb3IodmFyIGY9dC5sZW5ndGg7Zjx0aGlzLnBhc3Nlcy5sZW5ndGg7ZisrKXt2YXIgZD10aGlzLnBhc3Nlc1tmXTtkJiYoZC5jb2xvckJ1ZmZlci5kZXN0cm95KCksZC5wb3NpdGlvbkJ1ZmZlci5kZXN0cm95KCksZC5kYXNoVGV4dHVyZS5kZXN0cm95KCkpfXRoaXMucGFzc2VzLmxlbmd0aD10Lmxlbmd0aH1mb3IodmFyIHk9W10seD0wO3g8dGhpcy5wYXNzZXMubGVuZ3RoO3grKyludWxsIT09dGhpcy5wYXNzZXNbeF0mJnkucHVzaCh0aGlzLnBhc3Nlc1t4XSk7cmV0dXJuIHRoaXMucGFzc2VzPXksdGhpc319LHYucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wYXNzZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jb2xvckJ1ZmZlci5kZXN0cm95KCksdC5wb3NpdGlvbkJ1ZmZlci5kZXN0cm95KCksdC5kYXNoVGV4dHVyZS5kZXN0cm95KCl9KSksdGhpcy5wYXNzZXMubGVuZ3RoPTAsdGhpc319LHsiYXJyYXktYm91bmRzIjo3MiwiYXJyYXktZmluZC1pbmRleCI6NzMsImFycmF5LW5vcm1hbGl6ZSI6NzQsImNvbG9yLW5vcm1hbGl6ZSI6MTI2LGVhcmN1dDoxNzgsImVzNi13ZWFrLW1hcCI6MjMzLCJmbGF0dGVuLXZlcnRleC1kYXRhIjoyNDQsZ2xzbGlmeTo0MjQsIm9iamVjdC1hc3NpZ24iOjQ2NiwicGFyc2UtcmVjdCI6NDcxLCJwaWNrLWJ5LWFsaWFzIjo0NzUsInRvLWZsb2F0MzIiOjU3M31dLDUxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKEFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHR9KHQpfHxmdW5jdGlvbih0LGUpe3ZhciByPW51bGw9PXQ/bnVsbDoidW5kZWZpbmVkIiE9dHlwZW9mIFN5bWJvbCYmdFtTeW1ib2wuaXRlcmF0b3JdfHx0WyJAQGl0ZXJhdG9yIl07aWYobnVsbD09cilyZXR1cm47dmFyIG4saSxhPVtdLG89ITAscz0hMTt0cnl7Zm9yKHI9ci5jYWxsKHQpOyEobz0obj1yLm5leHQoKSkuZG9uZSkmJihhLnB1c2gobi52YWx1ZSksIWV8fGEubGVuZ3RoIT09ZSk7bz0hMCk7fWNhdGNoKHQpe3M9ITAsaT10fWZpbmFsbHl7dHJ5e298fG51bGw9PXIucmV0dXJufHxyLnJldHVybigpfWZpbmFsbHl7aWYocyl0aHJvdyBpfX1yZXR1cm4gYX0odCxlKXx8YSh0LGUpfHxmdW5jdGlvbigpe3Rocm93IG5ldyBUeXBlRXJyb3IoIkludmFsaWQgYXR0ZW1wdCB0byBkZXN0cnVjdHVyZSBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gaSh0KXtyZXR1cm4gZnVuY3Rpb24odCl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gbyh0KX0odCl8fGZ1bmN0aW9uKHQpe2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgU3ltYm9sJiZudWxsIT10W1N5bWJvbC5pdGVyYXRvcl18fG51bGwhPXRbIkBAaXRlcmF0b3IiXSlyZXR1cm4gQXJyYXkuZnJvbSh0KX0odCl8fGEodCl8fGZ1bmN0aW9uKCl7dGhyb3cgbmV3IFR5cGVFcnJvcigiSW52YWxpZCBhdHRlbXB0IHRvIHNwcmVhZCBub24taXRlcmFibGUgaW5zdGFuY2UuXG5JbiBvcmRlciB0byBiZSBpdGVyYWJsZSwgbm9uLWFycmF5IG9iamVjdHMgbXVzdCBoYXZlIGEgW1N5bWJvbC5pdGVyYXRvcl0oKSBtZXRob2QuIil9KCl9ZnVuY3Rpb24gYSh0LGUpe2lmKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdClyZXR1cm4gbyh0LGUpO3ZhciByPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KS5zbGljZSg4LC0xKTtyZXR1cm4iT2JqZWN0Ij09PXImJnQuY29uc3RydWN0b3ImJihyPXQuY29uc3RydWN0b3IubmFtZSksIk1hcCI9PT1yfHwiU2V0Ij09PXI/QXJyYXkuZnJvbSh0KToiQXJndW1lbnRzIj09PXJ8fC9eKD86VWl8SSludCg/Ojh8MTZ8MzIpKD86Q2xhbXBlZCk/QXJyYXkkLy50ZXN0KHIpP28odCxlKTp2b2lkIDB9fWZ1bmN0aW9uIG8odCxlKXsobnVsbD09ZXx8ZT50Lmxlbmd0aCkmJihlPXQubGVuZ3RoKTtmb3IodmFyIHI9MCxuPW5ldyBBcnJheShlKTtyPGU7cisrKW5bcl09dFtyXTtyZXR1cm4gbn12YXIgcz10KCJjb2xvci1ub3JtYWxpemUiKSxsPXQoImFycmF5LWJvdW5kcyIpLGM9dCgiY29sb3ItaWQiKSx1PXQoIkBwbG90bHkvcG9pbnQtY2x1c3RlciIpLGY9dCgib2JqZWN0LWFzc2lnbiIpLGg9dCgiZ2xzbGlmeSIpLHA9dCgicGljay1ieS1hbGlhcyIpLGQ9dCgidXBkYXRlLWRpZmYiKSxtPXQoImZsYXR0ZW4tdmVydGV4LWRhdGEiKSxnPXQoImlzLWlleHBsb3JlciIpLHY9dCgidG8tZmxvYXQzMiIpLHk9dCgicGFyc2UtcmVjdCIpLHg9YjtmdW5jdGlvbiBiKHQsZSl7dmFyIHI9dGhpcztpZighKHRoaXMgaW5zdGFuY2VvZiBiKSlyZXR1cm4gbmV3IGIodCxlKTsiZnVuY3Rpb24iPT10eXBlb2YgdD8oZXx8KGU9e30pLGUucmVnbD10KTooZT10LHQ9bnVsbCksZSYmZS5sZW5ndGgmJihlLnBvc2l0aW9ucz1lKTt2YXIgbixpPSh0PWUucmVnbCkuX2dsLGE9W107dGhpcy50b29NYW55Q29sb3JzPWcsbj10LnRleHR1cmUoe2RhdGE6bmV3IFVpbnQ4QXJyYXkoMTAyMCksd2lkdGg6MjU1LGhlaWdodDoxLHR5cGU6InVpbnQ4Iixmb3JtYXQ6InJnYmEiLHdyYXBTOiJjbGFtcCIsd3JhcFQ6ImNsYW1wIixtYWc6Im5lYXJlc3QiLG1pbjoibmVhcmVzdCJ9KSxmKHRoaXMse3JlZ2w6dCxnbDppLGdyb3VwczpbXSxtYXJrZXJDYWNoZTpbbnVsbF0sbWFya2VyVGV4dHVyZXM6W251bGxdLHBhbGV0dGU6YSxwYWxldHRlSWRzOnt9LHBhbGV0dGVUZXh0dXJlOm4sbWF4Q29sb3JzOjI1NSxtYXhTaXplOjEwMCxjYW52YXM6aS5jYW52YXN9KSx0aGlzLnVwZGF0ZShlKTt2YXIgbz17dW5pZm9ybXM6e2NvbnN0UG9pbnRTaXplOiEhZS5jb25zdFBvaW50U2l6ZSxvcGFjaXR5OnQucHJvcCgib3BhY2l0eSIpLHBhbGV0dGVTaXplOmZ1bmN0aW9uKHQsZSl7cmV0dXJuW3IudG9vTWFueUNvbG9ycz8wOjI1NSxuLmhlaWdodF19LHBpeGVsUmF0aW86dC5jb250ZXh0KCJwaXhlbFJhdGlvIiksc2NhbGU6dC5wcm9wKCJzY2FsZSIpLHNjYWxlRnJhY3Q6dC5wcm9wKCJzY2FsZUZyYWN0IiksdHJhbnNsYXRlOnQucHJvcCgidHJhbnNsYXRlIiksdHJhbnNsYXRlRnJhY3Q6dC5wcm9wKCJ0cmFuc2xhdGVGcmFjdCIpLG1hcmtlclRleHR1cmU6dC5wcm9wKCJtYXJrZXJUZXh0dXJlIikscGFsZXR0ZVRleHR1cmU6bn0sYXR0cmlidXRlczp7eDpmdW5jdGlvbih0LGUpe3JldHVybiBlLnhBdHRyfHx7YnVmZmVyOmUucG9zaXRpb25CdWZmZXIsc3RyaWRlOjgsb2Zmc2V0OjB9fSx5OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUueUF0dHJ8fHtidWZmZXI6ZS5wb3NpdGlvbkJ1ZmZlcixzdHJpZGU6OCxvZmZzZXQ6NH19LHhGcmFjdDpmdW5jdGlvbih0LGUpe3JldHVybiBlLnhBdHRyP3tjb25zdGFudDpbMCwwXX06e2J1ZmZlcjplLnBvc2l0aW9uRnJhY3RCdWZmZXIsc3RyaWRlOjgsb2Zmc2V0OjB9fSx5RnJhY3Q6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS55QXR0cj97Y29uc3RhbnQ6WzAsMF19OntidWZmZXI6ZS5wb3NpdGlvbkZyYWN0QnVmZmVyLHN0cmlkZTo4LG9mZnNldDo0fX0sc2l6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBlLnNpemUubGVuZ3RoP3tidWZmZXI6ZS5zaXplQnVmZmVyLHN0cmlkZToyLG9mZnNldDowfTp7Y29uc3RhbnQ6W01hdGgucm91bmQoMjU1KmUuc2l6ZS9yLm1heFNpemUpXX19LGJvcmRlclNpemU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5ib3JkZXJTaXplLmxlbmd0aD97YnVmZmVyOmUuc2l6ZUJ1ZmZlcixzdHJpZGU6MixvZmZzZXQ6MX06e2NvbnN0YW50OltNYXRoLnJvdW5kKDI1NSplLmJvcmRlclNpemUvci5tYXhTaXplKV19fSxjb2xvcklkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuY29sb3IubGVuZ3RoP3tidWZmZXI6ZS5jb2xvckJ1ZmZlcixzdHJpZGU6ci50b29NYW55Q29sb3JzPzg6NCxvZmZzZXQ6MH06e2NvbnN0YW50OnIudG9vTWFueUNvbG9ycz9hLnNsaWNlKDQqZS5jb2xvciw0KmUuY29sb3IrNCk6W2UuY29sb3JdfX0sYm9yZGVyQ29sb3JJZDpmdW5jdGlvbih0LGUpe3JldHVybiBlLmJvcmRlckNvbG9yLmxlbmd0aD97YnVmZmVyOmUuY29sb3JCdWZmZXIsc3RyaWRlOnIudG9vTWFueUNvbG9ycz84OjQsb2Zmc2V0OnIudG9vTWFueUNvbG9ycz80OjJ9Ontjb25zdGFudDpyLnRvb01hbnlDb2xvcnM/YS5zbGljZSg0KmUuYm9yZGVyQ29sb3IsNCplLmJvcmRlckNvbG9yKzQpOltlLmJvcmRlckNvbG9yXX19LGlzQWN0aXZlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuITA9PT1lLmFjdGl2YXRpb24/e2NvbnN0YW50OlsxXX06ZS5hY3RpdmF0aW9uP2UuYWN0aXZhdGlvbjp7Y29uc3RhbnQ6WzBdfX19LGJsZW5kOntlbmFibGU6ITAsY29sb3I6WzAsMCwwLDFdLGZ1bmM6e3NyY1JHQjoic3JjIGFscGhhIixkc3RSR0I6Im9uZSBtaW51cyBzcmMgYWxwaGEiLHNyY0FscGhhOiJvbmUgbWludXMgZHN0IGFscGhhIixkc3RBbHBoYToib25lIn19LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6dC5wcm9wKCJ2aWV3cG9ydCIpfSx2aWV3cG9ydDp0LnByb3AoInZpZXdwb3J0Iiksc3RlbmNpbDp7ZW5hYmxlOiExfSxkZXB0aDp7ZW5hYmxlOiExfSxlbGVtZW50czp0LnByb3AoImVsZW1lbnRzIiksY291bnQ6dC5wcm9wKCJjb3VudCIpLG9mZnNldDp0LnByb3AoIm9mZnNldCIpLHByaW1pdGl2ZToicG9pbnRzIn0scz1mKHt9LG8pO3MuZnJhZz1oKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudW5pZm9ybSBmbG9hdCBvcGFjaXR5O1xudW5pZm9ybSBzYW1wbGVyMkQgbWFya2VyVGV4dHVyZTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvciwgZnJhZ0JvcmRlckNvbG9yO1xudmFyeWluZyBmbG9hdCBmcmFnV2lkdGgsIGZyYWdCb3JkZXJDb2xvckxldmVsLCBmcmFnQ29sb3JMZXZlbDtcblxuZmxvYXQgc21vb3RoU3RlcChmbG9hdCB4LCBmbG9hdCB5KSB7XG4gIHJldHVybiAxLjAgLyAoMS4wICsgZXhwKDUwLjAqKHggLSB5KSkpO1xufVxuXG52b2lkIG1haW4oKSB7XG4gIGZsb2F0IGRpc3QgPSB0ZXh0dXJlMkQobWFya2VyVGV4dHVyZSwgZ2xfUG9pbnRDb29yZCkuciwgZGVsdGEgPSBmcmFnV2lkdGg7XG5cbiAgLy8gbWF4LWRpc3RhbmNlIGFscGhhXG4gIGlmIChkaXN0IDwgMC4wMDMpIGRpc2NhcmQ7XG5cbiAgLy8gbnVsbC1ib3JkZXIgY2FzZVxuICBpZiAoZnJhZ0JvcmRlckNvbG9yTGV2ZWwgPT0gZnJhZ0NvbG9yTGV2ZWwgfHwgZnJhZ0JvcmRlckNvbG9yLmEgPT0gMC4pIHtcbiAgICBmbG9hdCBjb2xvckFtdCA9IHNtb290aHN0ZXAoLjUgLSBkZWx0YSwgLjUgKyBkZWx0YSwgZGlzdCk7XG4gICAgZ2xfRnJhZ0NvbG9yID0gdmVjNChmcmFnQ29sb3IucmdiLCBjb2xvckFtdCAqIGZyYWdDb2xvci5hICogb3BhY2l0eSk7XG4gIH1cbiAgZWxzZSB7XG4gICAgZmxvYXQgYm9yZGVyQ29sb3JBbXQgPSBzbW9vdGhzdGVwKGZyYWdCb3JkZXJDb2xvckxldmVsIC0gZGVsdGEsIGZyYWdCb3JkZXJDb2xvckxldmVsICsgZGVsdGEsIGRpc3QpO1xuICAgIGZsb2F0IGNvbG9yQW10ID0gc21vb3Roc3RlcChmcmFnQ29sb3JMZXZlbCAtIGRlbHRhLCBmcmFnQ29sb3JMZXZlbCArIGRlbHRhLCBkaXN0KTtcblxuICAgIHZlYzQgY29sb3IgPSBmcmFnQm9yZGVyQ29sb3I7XG4gICAgY29sb3IuYSAqPSBib3JkZXJDb2xvckFtdDtcbiAgICBjb2xvciA9IG1peChjb2xvciwgZnJhZ0NvbG9yLCBjb2xvckFtdCk7XG4gICAgY29sb3IuYSAqPSBvcGFjaXR5O1xuXG4gICAgZ2xfRnJhZ0NvbG9yID0gY29sb3I7XG4gIH1cblxufVxuIl0pLHMudmVydD1oKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIGZsb2F0IHgsIHksIHhGcmFjdCwgeUZyYWN0O1xuYXR0cmlidXRlIGZsb2F0IHNpemUsIGJvcmRlclNpemU7XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcklkLCBib3JkZXJDb2xvcklkO1xuYXR0cmlidXRlIGZsb2F0IGlzQWN0aXZlO1xuXG51bmlmb3JtIGJvb2wgY29uc3RQb2ludFNpemU7XG51bmlmb3JtIGZsb2F0IHBpeGVsUmF0aW87XG51bmlmb3JtIHZlYzIgc2NhbGUsIHNjYWxlRnJhY3QsIHRyYW5zbGF0ZSwgdHJhbnNsYXRlRnJhY3QsIHBhbGV0dGVTaXplO1xudW5pZm9ybSBzYW1wbGVyMkQgcGFsZXR0ZVRleHR1cmU7XG5cbmNvbnN0IGZsb2F0IG1heFNpemUgPSAxMDAuO1xuY29uc3QgZmxvYXQgYm9yZGVyTGV2ZWwgPSAuNTtcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvciwgZnJhZ0JvcmRlckNvbG9yO1xudmFyeWluZyBmbG9hdCBmcmFnUG9pbnRTaXplLCBmcmFnQm9yZGVyUmFkaXVzLCBmcmFnV2lkdGgsIGZyYWdCb3JkZXJDb2xvckxldmVsLCBmcmFnQ29sb3JMZXZlbDtcblxuZmxvYXQgcG9pbnRTaXplU2NhbGUgPSAoY29uc3RQb2ludFNpemUpID8gMi4gOiBwaXhlbFJhdGlvO1xuXG5ib29sIGlzRGlyZWN0ID0gKHBhbGV0dGVTaXplLnggPCAxLik7XG5cbnZlYzQgZ2V0Q29sb3IodmVjNCBpZCkge1xuICByZXR1cm4gaXNEaXJlY3QgPyBpZCAvIDI1NS4gOiB0ZXh0dXJlMkQocGFsZXR0ZVRleHR1cmUsXG4gICAgdmVjMihcbiAgICAgIChpZC54ICsgLjUpIC8gcGFsZXR0ZVNpemUueCxcbiAgICAgIChpZC55ICsgLjUpIC8gcGFsZXR0ZVNpemUueVxuICAgIClcbiAgKTtcbn1cblxudm9pZCBtYWluKCkge1xuICAvLyBpZ25vcmUgaW5hY3RpdmUgcG9pbnRzXG4gIGlmIChpc0FjdGl2ZSA9PSAwLikgcmV0dXJuO1xuXG4gIHZlYzIgcG9zaXRpb24gPSB2ZWMyKHgsIHkpO1xuICB2ZWMyIHBvc2l0aW9uRnJhY3QgPSB2ZWMyKHhGcmFjdCwgeUZyYWN0KTtcblxuICB2ZWM0IGNvbG9yID0gZ2V0Q29sb3IoY29sb3JJZCk7XG4gIHZlYzQgYm9yZGVyQ29sb3IgPSBnZXRDb2xvcihib3JkZXJDb2xvcklkKTtcblxuICBmbG9hdCBzaXplID0gc2l6ZSAqIG1heFNpemUgLyAyNTUuO1xuICBmbG9hdCBib3JkZXJTaXplID0gYm9yZGVyU2l6ZSAqIG1heFNpemUgLyAyNTUuO1xuXG4gIGdsX1BvaW50U2l6ZSA9IDIuICogc2l6ZSAqIHBvaW50U2l6ZVNjYWxlO1xuICBmcmFnUG9pbnRTaXplID0gc2l6ZSAqIHBpeGVsUmF0aW87XG5cbiAgdmVjMiBwb3MgPSAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGVcbiAgICAgICsgKHBvc2l0aW9uRnJhY3QgKyB0cmFuc2xhdGVGcmFjdCkgKiBzY2FsZVxuICAgICAgKyAocG9zaXRpb24gKyB0cmFuc2xhdGUpICogc2NhbGVGcmFjdFxuICAgICAgKyAocG9zaXRpb25GcmFjdCArIHRyYW5zbGF0ZUZyYWN0KSAqIHNjYWxlRnJhY3Q7XG5cbiAgZ2xfUG9zaXRpb24gPSB2ZWM0KHBvcyAqIDIuIC0gMS4sIDAuLCAxLik7XG5cbiAgZnJhZ0NvbG9yID0gY29sb3I7XG4gIGZyYWdCb3JkZXJDb2xvciA9IGJvcmRlckNvbG9yO1xuICBmcmFnV2lkdGggPSAxLiAvIGdsX1BvaW50U2l6ZTtcblxuICBmcmFnQm9yZGVyQ29sb3JMZXZlbCA9IGNsYW1wKGJvcmRlckxldmVsIC0gYm9yZGVyTGV2ZWwgKiBib3JkZXJTaXplIC8gc2l6ZSwgMC4sIDEuKTtcbiAgZnJhZ0NvbG9yTGV2ZWwgPSBjbGFtcChib3JkZXJMZXZlbCArICgxLiAtIGJvcmRlckxldmVsKSAqIGJvcmRlclNpemUgLyBzaXplLCAwLiwgMS4pO1xufSJdKSx0aGlzLmRyYXdNYXJrZXI9dChzKTt2YXIgbD1mKHt9LG8pO2wuZnJhZz1oKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvciwgZnJhZ0JvcmRlckNvbG9yO1xudmFyeWluZyBmbG9hdCBmcmFnQm9yZGVyUmFkaXVzLCBmcmFnV2lkdGg7XG5cbnVuaWZvcm0gZmxvYXQgb3BhY2l0eTtcblxuZmxvYXQgc21vb3RoU3RlcChmbG9hdCBlZGdlMCwgZmxvYXQgZWRnZTEsIGZsb2F0IHgpIHtcblx0ZmxvYXQgdDtcblx0dCA9IGNsYW1wKCh4IC0gZWRnZTApIC8gKGVkZ2UxIC0gZWRnZTApLCAwLjAsIDEuMCk7XG5cdHJldHVybiB0ICogdCAqICgzLjAgLSAyLjAgKiB0KTtcbn1cblxudm9pZCBtYWluKCkge1xuXHRmbG9hdCByYWRpdXMsIGFscGhhID0gMS4wLCBkZWx0YSA9IGZyYWdXaWR0aDtcblxuXHRyYWRpdXMgPSBsZW5ndGgoMi4wICogZ2xfUG9pbnRDb29yZC54eSAtIDEuMCk7XG5cblx0aWYgKHJhZGl1cyA+IDEuMCArIGRlbHRhKSB7XG5cdFx0ZGlzY2FyZDtcblx0fVxuXG5cdGFscGhhIC09IHNtb290aHN0ZXAoMS4wIC0gZGVsdGEsIDEuMCArIGRlbHRhLCByYWRpdXMpO1xuXG5cdGZsb2F0IGJvcmRlclJhZGl1cyA9IGZyYWdCb3JkZXJSYWRpdXM7XG5cdGZsb2F0IHJhdGlvID0gc21vb3Roc3RlcChib3JkZXJSYWRpdXMgLSBkZWx0YSwgYm9yZGVyUmFkaXVzICsgZGVsdGEsIHJhZGl1cyk7XG5cdHZlYzQgY29sb3IgPSBtaXgoZnJhZ0NvbG9yLCBmcmFnQm9yZGVyQ29sb3IsIHJhdGlvKTtcblx0Y29sb3IuYSAqPSBhbHBoYSAqIG9wYWNpdHk7XG5cdGdsX0ZyYWdDb2xvciA9IGNvbG9yO1xufVxuIl0pLGwudmVydD1oKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxuYXR0cmlidXRlIGZsb2F0IHgsIHksIHhGcmFjdCwgeUZyYWN0O1xuYXR0cmlidXRlIGZsb2F0IHNpemUsIGJvcmRlclNpemU7XG5hdHRyaWJ1dGUgdmVjNCBjb2xvcklkLCBib3JkZXJDb2xvcklkO1xuYXR0cmlidXRlIGZsb2F0IGlzQWN0aXZlO1xuXG51bmlmb3JtIGJvb2wgY29uc3RQb2ludFNpemU7XG51bmlmb3JtIGZsb2F0IHBpeGVsUmF0aW87XG51bmlmb3JtIHZlYzIgcGFsZXR0ZVNpemUsIHNjYWxlLCBzY2FsZUZyYWN0LCB0cmFuc2xhdGUsIHRyYW5zbGF0ZUZyYWN0O1xudW5pZm9ybSBzYW1wbGVyMkQgcGFsZXR0ZVRleHR1cmU7XG5cbmNvbnN0IGZsb2F0IG1heFNpemUgPSAxMDAuO1xuXG52YXJ5aW5nIHZlYzQgZnJhZ0NvbG9yLCBmcmFnQm9yZGVyQ29sb3I7XG52YXJ5aW5nIGZsb2F0IGZyYWdCb3JkZXJSYWRpdXMsIGZyYWdXaWR0aDtcblxuZmxvYXQgcG9pbnRTaXplU2NhbGUgPSAoY29uc3RQb2ludFNpemUpID8gMi4gOiBwaXhlbFJhdGlvO1xuXG5ib29sIGlzRGlyZWN0ID0gKHBhbGV0dGVTaXplLnggPCAxLik7XG5cbnZlYzQgZ2V0Q29sb3IodmVjNCBpZCkge1xuICByZXR1cm4gaXNEaXJlY3QgPyBpZCAvIDI1NS4gOiB0ZXh0dXJlMkQocGFsZXR0ZVRleHR1cmUsXG4gICAgdmVjMihcbiAgICAgIChpZC54ICsgLjUpIC8gcGFsZXR0ZVNpemUueCxcbiAgICAgIChpZC55ICsgLjUpIC8gcGFsZXR0ZVNpemUueVxuICAgIClcbiAgKTtcbn1cblxudm9pZCBtYWluKCkge1xuICAvLyBpZ25vcmUgaW5hY3RpdmUgcG9pbnRzXG4gIGlmIChpc0FjdGl2ZSA9PSAwLikgcmV0dXJuO1xuXG4gIHZlYzIgcG9zaXRpb24gPSB2ZWMyKHgsIHkpO1xuICB2ZWMyIHBvc2l0aW9uRnJhY3QgPSB2ZWMyKHhGcmFjdCwgeUZyYWN0KTtcblxuICB2ZWM0IGNvbG9yID0gZ2V0Q29sb3IoY29sb3JJZCk7XG4gIHZlYzQgYm9yZGVyQ29sb3IgPSBnZXRDb2xvcihib3JkZXJDb2xvcklkKTtcblxuICBmbG9hdCBzaXplID0gc2l6ZSAqIG1heFNpemUgLyAyNTUuO1xuICBmbG9hdCBib3JkZXJTaXplID0gYm9yZGVyU2l6ZSAqIG1heFNpemUgLyAyNTUuO1xuXG4gIGdsX1BvaW50U2l6ZSA9IChzaXplICsgYm9yZGVyU2l6ZSkgKiBwb2ludFNpemVTY2FsZTtcblxuICB2ZWMyIHBvcyA9IChwb3NpdGlvbiArIHRyYW5zbGF0ZSkgKiBzY2FsZVxuICAgICAgKyAocG9zaXRpb25GcmFjdCArIHRyYW5zbGF0ZUZyYWN0KSAqIHNjYWxlXG4gICAgICArIChwb3NpdGlvbiArIHRyYW5zbGF0ZSkgKiBzY2FsZUZyYWN0XG4gICAgICArIChwb3NpdGlvbkZyYWN0ICsgdHJhbnNsYXRlRnJhY3QpICogc2NhbGVGcmFjdDtcblxuICBnbF9Qb3NpdGlvbiA9IHZlYzQocG9zICogMi4gLSAxLiwgMC4sIDEuKTtcblxuICBmcmFnQm9yZGVyUmFkaXVzID0gMS4gLSAyLiAqIGJvcmRlclNpemUgLyAoc2l6ZSArIGJvcmRlclNpemUpO1xuICBmcmFnQ29sb3IgPSBjb2xvcjtcbiAgZnJhZ0JvcmRlckNvbG9yID0gYm9yZGVyQ29sb3IuYSA9PSAwLiB8fCBib3JkZXJTaXplID09IDAuID8gdmVjNChjb2xvci5yZ2IsIDAuKSA6IGJvcmRlckNvbG9yO1xuICBmcmFnV2lkdGggPSAxLiAvIGdsX1BvaW50U2l6ZTtcbn1cbiJdKSxnJiYobC5mcmFnPWwuZnJhZy5yZXBsYWNlKCJzbW9vdGhzdGVwIiwic21vb3RoU3RlcCIpLHMuZnJhZz1zLmZyYWcucmVwbGFjZSgic21vb3Roc3RlcCIsInNtb290aFN0ZXAiKSksdGhpcy5kcmF3Q2lyY2xlPXQobCl9Yi5kZWZhdWx0cz17Y29sb3I6ImJsYWNrIixib3JkZXJDb2xvcjoidHJhbnNwYXJlbnQiLGJvcmRlclNpemU6MCxzaXplOjEyLG9wYWNpdHk6MSxtYXJrZXI6dm9pZCAwLHZpZXdwb3J0Om51bGwscmFuZ2U6bnVsbCxwaXhlbFNpemU6bnVsbCxjb3VudDowLG9mZnNldDowLGJvdW5kczpudWxsLHBvc2l0aW9uczpbXSxzbmFwOjFlNH0sYi5wcm90b3R5cGUucmVuZGVyPWZ1bmN0aW9uKCl7cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGgmJnRoaXMudXBkYXRlLmFwcGx5KHRoaXMsYXJndW1lbnRzKSx0aGlzLmRyYXcoKSx0aGlzfSxiLnByb3RvdHlwZS5kcmF3PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO3ZhciBpPXRoaXMuZ3JvdXBzO2lmKDE9PT1yLmxlbmd0aCYmQXJyYXkuaXNBcnJheShyWzBdKSYmKG51bGw9PT1yWzBdWzBdfHxBcnJheS5pc0FycmF5KHJbMF1bMF0pKSYmKHI9clswXSksdGhpcy5yZWdsLl9yZWZyZXNoKCksci5sZW5ndGgpZm9yKHZhciBhPTA7YTxyLmxlbmd0aDthKyspdGhpcy5kcmF3SXRlbShhLHJbYV0pO2Vsc2UgaS5mb3JFYWNoKChmdW5jdGlvbihlLHIpe3QuZHJhd0l0ZW0ocil9KSk7cmV0dXJuIHRoaXN9LGIucHJvdG90eXBlLmRyYXdJdGVtPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5ncm91cHMsbj1yW3RdO2lmKCJudW1iZXIiPT10eXBlb2YgZSYmKHQ9ZSxuPXJbZV0sZT1udWxsKSxuJiZuLmNvdW50JiZuLm9wYWNpdHkpe24uYWN0aXZhdGlvblswXSYmdGhpcy5kcmF3Q2lyY2xlKHRoaXMuZ2V0TWFya2VyRHJhd09wdGlvbnMoMCxuLGUpKTtmb3IodmFyIGE9W10sbz0xO288bi5hY3RpdmF0aW9uLmxlbmd0aDtvKyspbi5hY3RpdmF0aW9uW29dJiYoITA9PT1uLmFjdGl2YXRpb25bb118fG4uYWN0aXZhdGlvbltvXS5kYXRhLmxlbmd0aCkmJmEucHVzaC5hcHBseShhLGkodGhpcy5nZXRNYXJrZXJEcmF3T3B0aW9ucyhvLG4sZSkpKTthLmxlbmd0aCYmdGhpcy5kcmF3TWFya2VyKGEpfX0sYi5wcm90b3R5cGUuZ2V0TWFya2VyRHJhd09wdGlvbnM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWUucmFuZ2UsYT1lLnRyZWUsbz1lLnZpZXdwb3J0LHM9ZS5hY3RpdmF0aW9uLGw9ZS5zZWxlY3Rpb25CdWZmZXIsYz1lLmNvdW50O3RoaXMucmVnbDtpZighYSlyZXR1cm4gcj9bZih7fSxlLHttYXJrZXJUZXh0dXJlOnRoaXMubWFya2VyVGV4dHVyZXNbdF0sYWN0aXZhdGlvbjpzW3RdLGNvdW50OnIubGVuZ3RoLGVsZW1lbnRzOnIsb2Zmc2V0OjB9KV06W2Yoe30sZSx7bWFya2VyVGV4dHVyZTp0aGlzLm1hcmtlclRleHR1cmVzW3RdLGFjdGl2YXRpb246c1t0XSxvZmZzZXQ6MH0pXTt2YXIgdT1bXSxoPWEucmFuZ2UoaSx7bG9kOiEwLHB4OlsoaVsyXS1pWzBdKS9vLndpZHRoLChpWzNdLWlbMV0pL28uaGVpZ2h0XX0pO2lmKHIpe2Zvcih2YXIgcD1zW3RdLmRhdGEsZD1uZXcgVWludDhBcnJheShjKSxtPTA7bTxyLmxlbmd0aDttKyspe3ZhciBnPXJbbV07ZFtnXT1wP3BbZ106MX1sLnN1YmRhdGEoZCl9Zm9yKHZhciB2PWgubGVuZ3RoO3YtLTspe3ZhciB5PW4oaFt2XSwyKSx4PXlbMF0sYj15WzFdO3UucHVzaChmKHt9LGUse21hcmtlclRleHR1cmU6dGhpcy5tYXJrZXJUZXh0dXJlc1t0XSxhY3RpdmF0aW9uOnI/bDpzW3RdLG9mZnNldDp4LGNvdW50OmIteH0pKX1yZXR1cm4gdX0sYi5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMsZT1hcmd1bWVudHMubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXJbbl09YXJndW1lbnRzW25dO2lmKHIubGVuZ3RoKXsxPT09ci5sZW5ndGgmJkFycmF5LmlzQXJyYXkoclswXSkmJihyPXJbMF0pO3ZhciBpPXRoaXMuZ3JvdXBzLGE9dGhpcy5nbCxvPXRoaXMucmVnbCxzPXRoaXMubWF4U2l6ZSxjPXRoaXMubWF4Q29sb3JzLGg9dGhpcy5wYWxldHRlO3RoaXMuZ3JvdXBzPWk9ci5tYXAoKGZ1bmN0aW9uKGUscil7dmFyIG49aVtyXTtpZih2b2lkIDA9PT1lKXJldHVybiBuO251bGw9PT1lP2U9e3Bvc2l0aW9uczpudWxsfToiZnVuY3Rpb24iPT10eXBlb2YgZT9lPXtvbmRyYXc6ZX06Im51bWJlciI9PXR5cGVvZiBlWzBdJiYoZT17cG9zaXRpb25zOmV9KSxudWxsPT09KGU9cChlLHtwb3NpdGlvbnM6InBvc2l0aW9ucyBkYXRhIHBvaW50cyIsc25hcDoic25hcCBjbHVzdGVyIGxvZCB0cmVlIixzaXplOiJzaXplcyBzaXplIHJhZGl1cyIsYm9yZGVyU2l6ZToiYm9yZGVyU2l6ZXMgYm9yZGVyU2l6ZSBib3JkZXItc2l6ZSBib3JkZXJzaXplIGJvcmRlcldpZHRoIGJvcmRlcldpZHRocyBib3JkZXItd2lkdGggYm9yZGVyd2lkdGggc3Ryb2tlLXdpZHRoIHN0cm9rZVdpZHRoIHN0cm9rZXdpZHRoIG91dGxpbmUiLGNvbG9yOiJjb2xvcnMgY29sb3IgZmlsbCBmaWxsLWNvbG9yIGZpbGxDb2xvciIsYm9yZGVyQ29sb3I6ImJvcmRlckNvbG9ycyBib3JkZXJDb2xvciBzdHJva2Ugc3Ryb2tlLWNvbG9yIHN0cm9rZUNvbG9yIixtYXJrZXI6Im1hcmtlcnMgbWFya2VyIHNoYXBlIixyYW5nZToicmFuZ2UgZGF0YUJveCBkYXRhYm94Iix2aWV3cG9ydDoidmlld3BvcnQgdmlld1BvcnQgdmlld0JveCB2aWV3Ym94IixvcGFjaXR5OiJvcGFjaXR5IGFscGhhIHRyYW5zcGFyZW5jeSIsYm91bmRzOiJib3VuZCBib3VuZHMgYm91bmRhcmllcyBsaW1pdHMiLHRvb01hbnlDb2xvcnM6InRvb01hbnlDb2xvcnMgcGFsZXR0ZSBwYWxldHRlTW9kZSBvcHRpbWl6ZVBhbGV0dGUgZW5hYmxlUGFsZXR0ZSJ9KSkucG9zaXRpb25zJiYoZS5wb3NpdGlvbnM9W10pLG51bGwhPWUudG9vTWFueUNvbG9ycyYmKHQudG9vTWFueUNvbG9ycz1lLnRvb01hbnlDb2xvcnMpLG58fChpW3JdPW49e2lkOnIsc2NhbGU6bnVsbCx0cmFuc2xhdGU6bnVsbCxzY2FsZUZyYWN0Om51bGwsdHJhbnNsYXRlRnJhY3Q6bnVsbCxhY3RpdmF0aW9uOltdLHNlbGVjdGlvbkJ1ZmZlcjpvLmJ1ZmZlcih7ZGF0YTpuZXcgVWludDhBcnJheSgwKSx1c2FnZToic3RyZWFtIix0eXBlOiJ1aW50OCJ9KSxzaXplQnVmZmVyOm8uYnVmZmVyKHtkYXRhOm5ldyBVaW50OEFycmF5KDApLHVzYWdlOiJkeW5hbWljIix0eXBlOiJ1aW50OCJ9KSxjb2xvckJ1ZmZlcjpvLmJ1ZmZlcih7ZGF0YTpuZXcgVWludDhBcnJheSgwKSx1c2FnZToiZHluYW1pYyIsdHlwZToidWludDgifSkscG9zaXRpb25CdWZmZXI6by5idWZmZXIoe2RhdGE6bmV3IFVpbnQ4QXJyYXkoMCksdXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0In0pLHBvc2l0aW9uRnJhY3RCdWZmZXI6by5idWZmZXIoe2RhdGE6bmV3IFVpbnQ4QXJyYXkoMCksdXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0In0pfSxlPWYoe30sYi5kZWZhdWx0cyxlKSksZS5wb3NpdGlvbnMmJiEoIm1hcmtlciJpbiBlKSYmKGUubWFya2VyPW4ubWFya2VyLGRlbGV0ZSBuLm1hcmtlciksZS5tYXJrZXImJiEoInBvc2l0aW9ucyJpbiBlKSYmKGUucG9zaXRpb25zPW4ucG9zaXRpb25zLGRlbGV0ZSBuLnBvc2l0aW9ucyk7dmFyIGc9MCx4PTA7aWYoZChuLGUsW3tzbmFwOiEwLHNpemU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gbnVsbD09dCYmKHQ9Yi5kZWZhdWx0cy5zaXplKSxnKz10JiZ0Lmxlbmd0aD8xOjAsdH0sYm9yZGVyU2l6ZTpmdW5jdGlvbih0LGUpe3JldHVybiBudWxsPT10JiYodD1iLmRlZmF1bHRzLmJvcmRlclNpemUpLGcrPXQmJnQubGVuZ3RoPzE6MCx0fSxvcGFjaXR5OnBhcnNlRmxvYXQsY29sb3I6ZnVuY3Rpb24oZSxyKXtyZXR1cm4gbnVsbD09ZSYmKGU9Yi5kZWZhdWx0cy5jb2xvciksZT10LnVwZGF0ZUNvbG9yKGUpLHgrKyxlfSxib3JkZXJDb2xvcjpmdW5jdGlvbihlLHIpe3JldHVybiBudWxsPT1lJiYoZT1iLmRlZmF1bHRzLmJvcmRlckNvbG9yKSxlPXQudXBkYXRlQ29sb3IoZSkseCsrLGV9LGJvdW5kczpmdW5jdGlvbih0LGUscil7cmV0dXJuInJhbmdlImluIHJ8fChyLnJhbmdlPW51bGwpLHR9LHBvc2l0aW9uczpmdW5jdGlvbih0LGUscil7dmFyIG49ZS5zbmFwLGk9ZS5wb3NpdGlvbkJ1ZmZlcixhPWUucG9zaXRpb25GcmFjdEJ1ZmZlcixzPWUuc2VsZWN0aW9uQnVmZmVyO2lmKHQueHx8dC55KXJldHVybiB0LngubGVuZ3RoP2UueEF0dHI9e2J1ZmZlcjpvLmJ1ZmZlcih0LngpLG9mZnNldDowLHN0cmlkZTo0LGNvdW50OnQueC5sZW5ndGh9OmUueEF0dHI9e2J1ZmZlcjp0LnguYnVmZmVyLG9mZnNldDo0KnQueC5vZmZzZXR8fDAsc3RyaWRlOjQqKHQueC5zdHJpZGV8fDEpLGNvdW50OnQueC5jb3VudH0sdC55Lmxlbmd0aD9lLnlBdHRyPXtidWZmZXI6by5idWZmZXIodC55KSxvZmZzZXQ6MCxzdHJpZGU6NCxjb3VudDp0LnkubGVuZ3RofTplLnlBdHRyPXtidWZmZXI6dC55LmJ1ZmZlcixvZmZzZXQ6NCp0Lnkub2Zmc2V0fHwwLHN0cmlkZTo0Kih0Lnkuc3RyaWRlfHwxKSxjb3VudDp0LnkuY291bnR9LGUuY291bnQ9TWF0aC5tYXgoZS54QXR0ci5jb3VudCxlLnlBdHRyLmNvdW50KSx0O3Q9bSh0LCJmbG9hdDY0Iik7dmFyIGM9ZS5jb3VudD1NYXRoLmZsb29yKHQubGVuZ3RoLzIpLGY9ZS5ib3VuZHM9Yz9sKHQsMik6bnVsbDtpZihyLnJhbmdlfHxlLnJhbmdlfHwoZGVsZXRlIGUucmFuZ2Usci5yYW5nZT1mKSxyLm1hcmtlcnx8ZS5tYXJrZXJ8fChkZWxldGUgZS5tYXJrZXIsci5tYXJrZXI9bnVsbCksbiYmKCEwPT09bnx8Yz5uKT9lLnRyZWU9dSh0LHtib3VuZHM6Zn0pOm4mJm4ubGVuZ3RoJiYoZS50cmVlPW4pLGUudHJlZSl7dmFyIGg9e3ByaW1pdGl2ZToicG9pbnRzIix1c2FnZToic3RhdGljIixkYXRhOmUudHJlZSx0eXBlOiJ1aW50MzIifTtlLmVsZW1lbnRzP2UuZWxlbWVudHMoaCk6ZS5lbGVtZW50cz1vLmVsZW1lbnRzKGgpfXZhciBwPXYuZmxvYXQzMih0KTtyZXR1cm4gaSh7ZGF0YTpwLHVzYWdlOiJkeW5hbWljIn0pLGEoe2RhdGE6di5mcmFjdDMyKHQscCksdXNhZ2U6ImR5bmFtaWMifSkscyh7ZGF0YTpuZXcgVWludDhBcnJheShjKSx0eXBlOiJ1aW50OCIsdXNhZ2U6InN0cmVhbSJ9KSx0fX0se21hcmtlcjpmdW5jdGlvbihlLHIsbil7dmFyIGk9ci5hY3RpdmF0aW9uO2lmKGkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuZGVzdHJveSYmdC5kZXN0cm95KCl9KSksaS5sZW5ndGg9MCxlJiYibnVtYmVyIiE9dHlwZW9mIGVbMF0pe2Zvcih2YXIgYT1bXSxzPTAsbD1NYXRoLm1pbihlLmxlbmd0aCxyLmNvdW50KTtzPGw7cysrKXt2YXIgYz10LmFkZE1hcmtlcihlW3NdKTthW2NdfHwoYVtjXT1uZXcgVWludDhBcnJheShyLmNvdW50KSksYVtjXVtzXT0xfWZvcih2YXIgdT0wO3U8YS5sZW5ndGg7dSsrKWlmKGFbdV0pe3ZhciBmPXtkYXRhOmFbdV0sdHlwZToidWludDgiLHVzYWdlOiJzdGF0aWMifTtpW3VdP2lbdV0oZik6aVt1XT1vLmJ1ZmZlcihmKSxpW3VdLmRhdGE9YVt1XX19ZWxzZXtpW3QuYWRkTWFya2VyKGUpXT0hMH1yZXR1cm4gZX0scmFuZ2U6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUuYm91bmRzO2lmKG4pcmV0dXJuIHR8fCh0PW4pLGUuc2NhbGU9WzEvKHRbMl0tdFswXSksMS8odFszXS10WzFdKV0sZS50cmFuc2xhdGU9Wy10WzBdLC10WzFdXSxlLnNjYWxlRnJhY3Q9di5mcmFjdChlLnNjYWxlKSxlLnRyYW5zbGF0ZUZyYWN0PXYuZnJhY3QoZS50cmFuc2xhdGUpLHR9LHZpZXdwb3J0OmZ1bmN0aW9uKHQpe3JldHVybiB5KHR8fFthLmRyYXdpbmdCdWZmZXJXaWR0aCxhLmRyYXdpbmdCdWZmZXJIZWlnaHRdKX19XSksZyl7dmFyIF89bix3PV8uY291bnQsVD1fLnNpemUsaz1fLmJvcmRlclNpemUsQT1fLnNpemVCdWZmZXIsTT1uZXcgVWludDhBcnJheSgyKncpO2lmKFQubGVuZ3RofHxrLmxlbmd0aClmb3IodmFyIFM9MDtTPHc7UysrKU1bMipTXT1NYXRoLnJvdW5kKDI1NSoobnVsbD09VFtTXT9UOlRbU10pL3MpLE1bMipTKzFdPU1hdGgucm91bmQoMjU1KihudWxsPT1rW1NdP2s6a1tTXSkvcyk7QSh7ZGF0YTpNLHVzYWdlOiJkeW5hbWljIn0pfWlmKHgpe3ZhciBFLEw9bixDPUwuY291bnQsUD1MLmNvbG9yLEk9TC5ib3JkZXJDb2xvcixPPUwuY29sb3JCdWZmZXI7aWYodC50b29NYW55Q29sb3JzKXtpZihQLmxlbmd0aHx8SS5sZW5ndGgpe0U9bmV3IFVpbnQ4QXJyYXkoOCpDKTtmb3IodmFyIHo9MDt6PEM7eisrKXt2YXIgRD1QW3pdO0VbOCp6XT1oWzQqRF0sRVs4KnorMV09aFs0KkQrMV0sRVs4KnorMl09aFs0KkQrMl0sRVs4KnorM109aFs0KkQrM107dmFyIFI9SVt6XTtFWzgqeis0XT1oWzQqUl0sRVs4KnorNV09aFs0KlIrMV0sRVs4KnorNl09aFs0KlIrMl0sRVs4KnorN109aFs0KlIrM119fX1lbHNlIGlmKFAubGVuZ3RofHxJLmxlbmd0aCl7RT1uZXcgVWludDhBcnJheSg0KkMrMik7Zm9yKHZhciBGPTA7RjxDO0YrKyludWxsIT1QW0ZdJiYoRVs0KkZdPVBbRl0lYyxFWzQqRisxXT1NYXRoLmZsb29yKFBbRl0vYykpLG51bGwhPUlbRl0mJihFWzQqRisyXT1JW0ZdJWMsRVs0KkYrM109TWF0aC5mbG9vcihJW0ZdL2MpKX1PKHtkYXRhOkV8fG5ldyBVaW50OEFycmF5KDApLHR5cGU6InVpbnQ4Iix1c2FnZToiZHluYW1pYyJ9KX1yZXR1cm4gbn0pKX19LGIucHJvdG90eXBlLmFkZE1hcmtlcj1mdW5jdGlvbih0KXt2YXIgZSxyPXRoaXMubWFya2VyVGV4dHVyZXMsbj10aGlzLnJlZ2wsaT10aGlzLm1hcmtlckNhY2hlLGE9bnVsbD09dD8wOmkuaW5kZXhPZih0KTtpZihhPj0wKXJldHVybiBhO2lmKHQgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXkpZT10O2Vsc2V7ZT1uZXcgVWludDhBcnJheSh0Lmxlbmd0aCk7Zm9yKHZhciBvPTAscz10Lmxlbmd0aDtvPHM7bysrKWVbb109MjU1KnRbb119dmFyIGw9TWF0aC5mbG9vcihNYXRoLnNxcnQoZS5sZW5ndGgpKTtyZXR1cm4gYT1yLmxlbmd0aCxpLnB1c2godCksci5wdXNoKG4udGV4dHVyZSh7Y2hhbm5lbHM6MSxkYXRhOmUscmFkaXVzOmwsbWFnOiJsaW5lYXIiLG1pbjoibGluZWFyIn0pKSxhfSxiLnByb3RvdHlwZS51cGRhdGVDb2xvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnBhbGV0dGVJZHMscj10aGlzLnBhbGV0dGUsbj10aGlzLm1heENvbG9ycztBcnJheS5pc0FycmF5KHQpfHwodD1bdF0pO3ZhciBpPVtdO2lmKCJudW1iZXIiPT10eXBlb2YgdFswXSl7dmFyIGE9W107aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IodmFyIG89MDtvPHQubGVuZ3RoO28rPTQpYS5wdXNoKHQuc2xpY2UobyxvKzQpKTtlbHNlIGZvcih2YXIgbD0wO2w8dC5sZW5ndGg7bCs9NClhLnB1c2godC5zdWJhcnJheShsLGwrNCkpO3Q9YX1mb3IodmFyIHU9MDt1PHQubGVuZ3RoO3UrKyl7dmFyIGY9dFt1XTtmPXMoZiwidWludDgiKTt2YXIgaD1jKGYsITEpO2lmKG51bGw9PWVbaF0pe3ZhciBwPXIubGVuZ3RoO2VbaF09TWF0aC5mbG9vcihwLzQpLHJbcF09ZlswXSxyW3ArMV09ZlsxXSxyW3ArMl09ZlsyXSxyW3ArM109ZlszXX1pW3VdPWVbaF19cmV0dXJuIXRoaXMudG9vTWFueUNvbG9ycyYmci5sZW5ndGg+NCpuJiYodGhpcy50b29NYW55Q29sb3JzPSEwKSx0aGlzLnVwZGF0ZVBhbGV0dGUociksMT09PWkubGVuZ3RoP2lbMF06aX0sYi5wcm90b3R5cGUudXBkYXRlUGFsZXR0ZT1mdW5jdGlvbih0KXtpZighdGhpcy50b29NYW55Q29sb3JzKXt2YXIgZT10aGlzLm1heENvbG9ycyxyPXRoaXMucGFsZXR0ZVRleHR1cmUsbj1NYXRoLmNlaWwoLjI1KnQubGVuZ3RoL2UpO2lmKG4+MSlmb3IodmFyIGk9LjI1Kih0PXQuc2xpY2UoKSkubGVuZ3RoJWU7aTxuKmU7aSsrKXQucHVzaCgwLDAsMCwwKTtyLmhlaWdodDxuJiZyLnJlc2l6ZShlLG4pLHIuc3ViaW1hZ2Uoe3dpZHRoOk1hdGgubWluKC4yNSp0Lmxlbmd0aCxlKSxoZWlnaHQ6bixkYXRhOnR9LDAsMCl9fSxiLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ3JvdXBzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3Quc2l6ZUJ1ZmZlci5kZXN0cm95KCksdC5wb3NpdGlvbkJ1ZmZlci5kZXN0cm95KCksdC5wb3NpdGlvbkZyYWN0QnVmZmVyLmRlc3Ryb3koKSx0LmNvbG9yQnVmZmVyLmRlc3Ryb3koKSx0LmFjdGl2YXRpb24uZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuZGVzdHJveSYmdC5kZXN0cm95KCl9KSksdC5zZWxlY3Rpb25CdWZmZXIuZGVzdHJveSgpLHQuZWxlbWVudHMmJnQuZWxlbWVudHMuZGVzdHJveSgpfSkpLHRoaXMuZ3JvdXBzLmxlbmd0aD0wLHRoaXMucGFsZXR0ZVRleHR1cmUuZGVzdHJveSgpLHRoaXMubWFya2VyVGV4dHVyZXMuZm9yRWFjaCgoZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuZGVzdHJveSYmdC5kZXN0cm95KCl9KSksdGhpc307dmFyIF89dCgib2JqZWN0LWFzc2lnbiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyB4KHQsZSksbj1yLnJlbmRlci5iaW5kKHIpO3JldHVybiBfKG4se3JlbmRlcjpuLHVwZGF0ZTpyLnVwZGF0ZS5iaW5kKHIpLGRyYXc6ci5kcmF3LmJpbmQociksZGVzdHJveTpyLmRlc3Ryb3kuYmluZChyKSxyZWdsOnIucmVnbCxnbDpyLmdsLGNhbnZhczpyLmdsLmNhbnZhcyxncm91cHM6ci5ncm91cHMsbWFya2VyczpyLm1hcmtlckNhY2hlLHBhbGV0dGU6ci5wYWxldHRlfSksbn19LHsiQHBsb3RseS9wb2ludC1jbHVzdGVyIjo1OSwiYXJyYXktYm91bmRzIjo3MiwiY29sb3ItaWQiOjEyNCwiY29sb3Itbm9ybWFsaXplIjoxMjYsImZsYXR0ZW4tdmVydGV4LWRhdGEiOjI0NCxnbHNsaWZ5OjQyNCwiaXMtaWV4cGxvcmVyIjo0MzQsIm9iamVjdC1hc3NpZ24iOjQ2NiwicGFyc2UtcmVjdCI6NDcxLCJwaWNrLWJ5LWFsaWFzIjo0NzUsInRvLWZsb2F0MzIiOjU3MywidXBkYXRlLWRpZmYiOjU5NH1dLDUxNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyZWdsLXNjYXR0ZXIyZCIpLGk9dCgicGljay1ieS1hbGlhcyIpLGE9dCgiYXJyYXktYm91bmRzIiksbz10KCJyYWYiKSxzPXQoImFycmF5LXJhbmdlIiksbD10KCJwYXJzZS1yZWN0IiksYz10KCJmbGF0dGVuLXZlcnRleC1kYXRhIik7ZnVuY3Rpb24gdSh0LGUpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHUpKXJldHVybiBuZXcgdSh0LGUpO3RoaXMudHJhY2VzPVtdLHRoaXMucGFzc2VzPXt9LHRoaXMucmVnbD10LHRoaXMuc2NhdHRlcj1uKHQpLHRoaXMuY2FudmFzPXRoaXMuc2NhdHRlci5jYW52YXN9ZnVuY3Rpb24gZih0LGUscil7cmV0dXJuKG51bGwhPXQuaWQ/dC5pZDp0KTw8MTZ8KDI1NSZlKTw8OHwyNTUmcn1mdW5jdGlvbiBoKHQsZSxyKXt2YXIgbixpLGEsbyxzPXRbZV0sbD10W3JdO3JldHVybiBzLmxlbmd0aD4yPyhzWzBdLHNbMl0sbj1zWzFdLGk9c1szXSk6cy5sZW5ndGg/KG49c1swXSxpPXNbMV0pOihzLngsbj1zLnkscy54K3Mud2lkdGgsaT1zLnkrcy5oZWlnaHQpLGwubGVuZ3RoPjI/KGE9bFswXSxvPWxbMl0sbFsxXSxsWzNdKTpsLmxlbmd0aD8oYT1sWzBdLG89bFsxXSk6KGE9bC54LGwueSxvPWwueCtsLndpZHRoLGwueStsLmhlaWdodCksW2EsbixvLGldfWZ1bmN0aW9uIHAodCl7aWYoIm51bWJlciI9PXR5cGVvZiB0KXJldHVyblt0LHQsdCx0XTtpZigyPT09dC5sZW5ndGgpcmV0dXJuW3RbMF0sdFsxXSx0WzBdLHRbMV1dO3ZhciBlPWwodCk7cmV0dXJuW2UueCxlLnksZS54K2Uud2lkdGgsZS55K2UuaGVpZ2h0XX1lLmV4cG9ydHM9dSx1LnByb3RvdHlwZS5yZW5kZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT10aGlzLHI9W10sbj1hcmd1bWVudHMubGVuZ3RoO24tLTspcltuXT1hcmd1bWVudHNbbl07cmV0dXJuIHIubGVuZ3RoJiYodD10aGlzKS51cGRhdGUuYXBwbHkodCxyKSx0aGlzLnJlZ2wuYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXI/dGhpcy5kcmF3KCk6KHRoaXMuZGlydHk/bnVsbD09dGhpcy5wbGFubmVkJiYodGhpcy5wbGFubmVkPW8oKGZ1bmN0aW9uKCl7ZS5kcmF3KCksZS5kaXJ0eT0hMCxlLnBsYW5uZWQ9bnVsbH0pKSk6KHRoaXMuZHJhdygpLHRoaXMuZGlydHk9ITAsbygoZnVuY3Rpb24oKXtlLmRpcnR5PSExfSkpKSx0aGlzKX0sdS5wcm90b3R5cGUudXBkYXRlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0LGU9W10scj1hcmd1bWVudHMubGVuZ3RoO3ItLTspZVtyXT1hcmd1bWVudHNbcl07aWYoZS5sZW5ndGgpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKXRoaXMudXBkYXRlSXRlbShuLGVbbl0pO3RoaXMudHJhY2VzPXRoaXMudHJhY2VzLmZpbHRlcihCb29sZWFuKTtmb3IodmFyIGk9W10sYT0wLG89MDtvPHRoaXMudHJhY2VzLmxlbmd0aDtvKyspe2Zvcih2YXIgcz10aGlzLnRyYWNlc1tvXSxsPXRoaXMudHJhY2VzW29dLnBhc3NlcyxjPTA7YzxsLmxlbmd0aDtjKyspaS5wdXNoKHRoaXMucGFzc2VzW2xbY11dKTtzLnBhc3NPZmZzZXQ9YSxhKz1zLnBhc3Nlcy5sZW5ndGh9cmV0dXJuKHQ9dGhpcy5zY2F0dGVyKS51cGRhdGUuYXBwbHkodCxpKSx0aGlzfX0sdS5wcm90b3R5cGUudXBkYXRlSXRlbT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMucmVnbDtpZihudWxsPT09ZSlyZXR1cm4gdGhpcy50cmFjZXNbdF09bnVsbCx0aGlzO2lmKCFlKXJldHVybiB0aGlzO3ZhciBuLG89aShlLHtkYXRhOiJkYXRhIGl0ZW1zIGNvbHVtbnMgcm93cyB2YWx1ZXMgZGltZW5zaW9ucyBzYW1wbGVzIHgiLHNuYXA6InNuYXAgY2x1c3RlciIsc2l6ZToic2l6ZXMgc2l6ZSByYWRpdXMiLGNvbG9yOiJjb2xvcnMgY29sb3IgZmlsbCBmaWxsLWNvbG9yIGZpbGxDb2xvciIsb3BhY2l0eToib3BhY2l0eSBhbHBoYSB0cmFuc3BhcmVuY3kgb3BhcXVlIixib3JkZXJTaXplOiJib3JkZXJTaXplcyBib3JkZXJTaXplIGJvcmRlci1zaXplIGJvcmRlcnNpemUgYm9yZGVyV2lkdGggYm9yZGVyV2lkdGhzIGJvcmRlci13aWR0aCBib3JkZXJ3aWR0aCBzdHJva2Utd2lkdGggc3Ryb2tlV2lkdGggc3Ryb2tld2lkdGggb3V0bGluZSIsYm9yZGVyQ29sb3I6ImJvcmRlckNvbG9ycyBib3JkZXJDb2xvciBib3JkZXJjb2xvciBzdHJva2Ugc3Ryb2tlLWNvbG9yIHN0cm9rZUNvbG9yIixtYXJrZXI6Im1hcmtlcnMgbWFya2VyIHNoYXBlIixyYW5nZToicmFuZ2UgcmFuZ2VzIGRhdGFib3ggZGF0YUJveCIsdmlld3BvcnQ6InZpZXdwb3J0IHZpZXdCb3ggdmlld2JveCIsZG9tYWluOiJkb21haW4gZG9tYWlucyBhcmVhIGFyZWFzIixwYWRkaW5nOiJwYWQgcGFkZGluZyBwYWRkaW5ncyBwYWRzIG1hcmdpbiBtYXJnaW5zIix0cmFuc3Bvc2U6InRyYW5zcG9zZSB0cmFuc3Bvc2VkIixkaWFnb25hbDoiZGlhZ29uYWwgZGlhZyBzaG93RGlhZ29uYWwiLHVwcGVyOiJ1cHBlciB1cCB0b3AgdXBwZXJoYWxmIHVwcGVySGFsZiBzaG93dXBwZXJoYWxmIHNob3dVcHBlciBzaG93VXBwZXJIYWxmIixsb3dlcjoibG93ZXIgbG93IGJvdHRvbSBsb3dlcmhhbGYgbG93ZXJIYWxmIHNob3dsb3dlcmhhbGYgc2hvd0xvd2VySGFsZiBzaG93TG93ZXIifSkscz10aGlzLnRyYWNlc1t0XXx8KHRoaXMudHJhY2VzW3RdPXtpZDp0LGJ1ZmZlcjpyLmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5fSksY29sb3I6ImJsYWNrIixtYXJrZXI6bnVsbCxzaXplOjEyLGJvcmRlckNvbG9yOiJ0cmFuc3BhcmVudCIsYm9yZGVyU2l6ZToxLHZpZXdwb3J0OmwoW3IuX2dsLmRyYXdpbmdCdWZmZXJXaWR0aCxyLl9nbC5kcmF3aW5nQnVmZmVySGVpZ2h0XSkscGFkZGluZzpbMCwwLDAsMF0sb3BhY2l0eToxLGRpYWdvbmFsOiEwLHVwcGVyOiEwLGxvd2VyOiEwfSk7aWYobnVsbCE9by5jb2xvciYmKHMuY29sb3I9by5jb2xvciksbnVsbCE9by5zaXplJiYocy5zaXplPW8uc2l6ZSksbnVsbCE9by5tYXJrZXImJihzLm1hcmtlcj1vLm1hcmtlciksbnVsbCE9by5ib3JkZXJDb2xvciYmKHMuYm9yZGVyQ29sb3I9by5ib3JkZXJDb2xvciksbnVsbCE9by5ib3JkZXJTaXplJiYocy5ib3JkZXJTaXplPW8uYm9yZGVyU2l6ZSksbnVsbCE9by5vcGFjaXR5JiYocy5vcGFjaXR5PW8ub3BhY2l0eSksby52aWV3cG9ydCYmKHMudmlld3BvcnQ9bChvLnZpZXdwb3J0KSksbnVsbCE9by5kaWFnb25hbCYmKHMuZGlhZ29uYWw9by5kaWFnb25hbCksbnVsbCE9by51cHBlciYmKHMudXBwZXI9by51cHBlciksbnVsbCE9by5sb3dlciYmKHMubG93ZXI9by5sb3dlciksby5kYXRhKXtzLmJ1ZmZlcihjKG8uZGF0YSkpLHMuY29sdW1ucz1vLmRhdGEubGVuZ3RoLHMuY291bnQ9by5kYXRhWzBdLmxlbmd0aCxzLmJvdW5kcz1bXTtmb3IodmFyIHU9MDt1PHMuY29sdW1uczt1Kyspcy5ib3VuZHNbdV09YShvLmRhdGFbdV0sMSl9by5yYW5nZSYmKHMucmFuZ2U9by5yYW5nZSxuPXMucmFuZ2UmJiJudW1iZXIiIT10eXBlb2Ygcy5yYW5nZVswXSksby5kb21haW4mJihzLmRvbWFpbj1vLmRvbWFpbik7dmFyIGQ9ITE7bnVsbCE9by5wYWRkaW5nJiYoQXJyYXkuaXNBcnJheShvLnBhZGRpbmcpJiZvLnBhZGRpbmcubGVuZ3RoPT09cy5jb2x1bW5zJiYibnVtYmVyIj09dHlwZW9mIG8ucGFkZGluZ1tvLnBhZGRpbmcubGVuZ3RoLTFdPyhzLnBhZGRpbmc9by5wYWRkaW5nLm1hcChwKSxkPSEwKTpzLnBhZGRpbmc9cChvLnBhZGRpbmcpKTt2YXIgbT1zLmNvbHVtbnMsZz1zLmNvdW50LHY9cy52aWV3cG9ydC53aWR0aCx5PXMudmlld3BvcnQuaGVpZ2h0LHg9cy52aWV3cG9ydC54LGI9cy52aWV3cG9ydC55LF89di9tLHc9eS9tO3MucGFzc2VzPVtdO2Zvcih2YXIgVD0wO1Q8bTtUKyspZm9yKHZhciBrPTA7azxtO2srKylpZigocy5kaWFnb25hbHx8ayE9PVQpJiYocy51cHBlcnx8IShUPmspKSYmKHMubG93ZXJ8fCEoVDxrKSkpe3ZhciBBPWYocy5pZCxULGspLE09dGhpcy5wYXNzZXNbQV18fCh0aGlzLnBhc3Nlc1tBXT17fSk7aWYoby5kYXRhJiYoby50cmFuc3Bvc2U/TS5wb3NpdGlvbnM9e3g6e2J1ZmZlcjpzLmJ1ZmZlcixvZmZzZXQ6ayxjb3VudDpnLHN0cmlkZTptfSx5OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0OlQsY291bnQ6ZyxzdHJpZGU6bX19Ok0ucG9zaXRpb25zPXt4OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0OmsqZyxjb3VudDpnfSx5OntidWZmZXI6cy5idWZmZXIsb2Zmc2V0OlQqZyxjb3VudDpnfX0sTS5ib3VuZHM9aChzLmJvdW5kcyxULGspKSxvLmRvbWFpbnx8by52aWV3cG9ydHx8by5kYXRhKXt2YXIgUz1kP2gocy5wYWRkaW5nLFQsayk6cy5wYWRkaW5nO2lmKHMuZG9tYWluKXt2YXIgRT1oKHMuZG9tYWluLFQsayksTD1FWzBdLEM9RVsxXSxQPUVbMl0sST1FWzNdO00udmlld3BvcnQ9W3grTCp2K1NbMF0sYitDKnkrU1sxXSx4K1Aqdi1TWzJdLGIrSSp5LVNbM11dfWVsc2UgTS52aWV3cG9ydD1beCtrKl8rXypTWzBdLGIrVCp3K3cqU1sxXSx4KyhrKzEpKl8tXypTWzJdLGIrKFQrMSkqdy13KlNbM11dfW8uY29sb3ImJihNLmNvbG9yPXMuY29sb3IpLG8uc2l6ZSYmKE0uc2l6ZT1zLnNpemUpLG8ubWFya2VyJiYoTS5tYXJrZXI9cy5tYXJrZXIpLG8uYm9yZGVyU2l6ZSYmKE0uYm9yZGVyU2l6ZT1zLmJvcmRlclNpemUpLG8uYm9yZGVyQ29sb3ImJihNLmJvcmRlckNvbG9yPXMuYm9yZGVyQ29sb3IpLG8ub3BhY2l0eSYmKE0ub3BhY2l0eT1zLm9wYWNpdHkpLG8ucmFuZ2UmJihNLnJhbmdlPW4/aChzLnJhbmdlLFQsayk6cy5yYW5nZXx8TS5ib3VuZHMpLHMucGFzc2VzLnB1c2goQSl9cmV0dXJuIHRoaXN9LHUucHJvdG90eXBlLmRyYXc9ZnVuY3Rpb24oKXtmb3IodmFyIHQsZT1bXSxyPWFyZ3VtZW50cy5sZW5ndGg7ci0tOyllW3JdPWFyZ3VtZW50c1tyXTtpZihlLmxlbmd0aCl7Zm9yKHZhciBuPVtdLGk9MDtpPGUubGVuZ3RoO2krKylpZigibnVtYmVyIj09dHlwZW9mIGVbaV0pe3ZhciBhPXRoaXMudHJhY2VzW2VbaV1dLG89YS5wYXNzZXMsbD1hLnBhc3NPZmZzZXQ7bi5wdXNoLmFwcGx5KG4scyhsLGwrby5sZW5ndGgpKX1lbHNlIGlmKGVbaV0ubGVuZ3RoKXt2YXIgYz1lW2ldLHU9dGhpcy50cmFjZXNbaV0sZj11LnBhc3NlcyxoPXUucGFzc09mZnNldDtmPWYubWFwKChmdW5jdGlvbih0LGUpe25baCtlXT1jfSkpfSh0PXRoaXMuc2NhdHRlcikuZHJhdy5hcHBseSh0LG4pfWVsc2UgdGhpcy5zY2F0dGVyLmRyYXcoKTtyZXR1cm4gdGhpc30sdS5wcm90b3R5cGUuZGVzdHJveT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnRyYWNlcy5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmJ1ZmZlciYmdC5idWZmZXIuZGVzdHJveSYmdC5idWZmZXIuZGVzdHJveSgpfSkpLHRoaXMudHJhY2VzPW51bGwsdGhpcy5wYXNzZXM9bnVsbCx0aGlzLnNjYXR0ZXIuZGVzdHJveSgpLHRoaXN9fSx7ImFycmF5LWJvdW5kcyI6NzIsImFycmF5LXJhbmdlIjo3NSwiZmxhdHRlbi12ZXJ0ZXgtZGF0YSI6MjQ0LCJwYXJzZS1yZWN0Ijo0NzEsInBpY2stYnktYWxpYXMiOjQ3NSxyYWY6NTA2LCJyZWdsLXNjYXR0ZXIyZCI6NTE0fV0sNTE2OltmdW5jdGlvbih0LGUscil7IWZ1bmN0aW9uKHQsbil7Im9iamVjdCI9PXR5cGVvZiByJiZ2b2lkIDAhPT1lP2UuZXhwb3J0cz1uKCk6dC5jcmVhdGVSRUdMPW4oKX0odGhpcywoZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSl7dGhpcy5pZD1VKyssdGhpcy50eXBlPXQsdGhpcy5kYXRhPWV9ZnVuY3Rpb24gZSh0KXtyZXR1cm4iWyIrZnVuY3Rpb24gdChlKXtpZigwPT09ZS5sZW5ndGgpcmV0dXJuW107dmFyIHI9ZS5jaGFyQXQoMCksbj1lLmNoYXJBdChlLmxlbmd0aC0xKTtpZigxPGUubGVuZ3RoJiZyPT09biYmKCciJz09PXJ8fCInIj09PXIpKXJldHVyblsnIicrZS5zdWJzdHIoMSxlLmxlbmd0aC0yKS5yZXBsYWNlKC9cXC9nLCJcXFxcIikucmVwbGFjZSgvIi9nLCdcXCInKSsnIiddO2lmKHI9L1xbKGZhbHNlfHRydWV8bnVsbHxcZCt8J1teJ10qJ3wiW14iXSoiKVxdLy5leGVjKGUpKXJldHVybiB0KGUuc3Vic3RyKDAsci5pbmRleCkpLmNvbmNhdCh0KHJbMV0pKS5jb25jYXQodChlLnN1YnN0cihyLmluZGV4K3JbMF0ubGVuZ3RoKSkpO2lmKDE9PT0ocj1lLnNwbGl0KCIuIikpLmxlbmd0aClyZXR1cm5bJyInK2UucmVwbGFjZSgvXFwvZywiXFxcXCIpLnJlcGxhY2UoLyIvZywnXFwiJykrJyInXTtmb3IoZT1bXSxuPTA7bjxyLmxlbmd0aDsrK24pZT1lLmNvbmNhdCh0KHJbbl0pKTtyZXR1cm4gZX0odCkuam9pbigiXVsiKSsiXSJ9ZnVuY3Rpb24gcih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/dC5zcGxpdCgpOnR9ZnVuY3Rpb24gbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/ZG9jdW1lbnQucXVlcnlTZWxlY3Rvcih0KTp0fWZ1bmN0aW9uIGkodCl7dmFyIGUsaSxhLG8scz10fHx7fTt0PXt9O3ZhciBsPVtdLGM9W10sdT0idW5kZWZpbmVkIj09dHlwZW9mIHdpbmRvdz8xOndpbmRvdy5kZXZpY2VQaXhlbFJhdGlvLGY9ITEsaD1mdW5jdGlvbih0KXt9LHA9ZnVuY3Rpb24oKXt9O2lmKCJzdHJpbmciPT10eXBlb2Ygcz9lPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Iocyk6Im9iamVjdCI9PXR5cGVvZiBzJiYoInN0cmluZyI9PXR5cGVvZiBzLm5vZGVOYW1lJiYiZnVuY3Rpb24iPT10eXBlb2Ygcy5hcHBlbmRDaGlsZCYmImZ1bmN0aW9uIj09dHlwZW9mIHMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0P2U9czoiZnVuY3Rpb24iPT10eXBlb2Ygcy5kcmF3QXJyYXlzfHwiZnVuY3Rpb24iPT10eXBlb2Ygcy5kcmF3RWxlbWVudHM/YT0obz1zKS5jYW52YXM6KCJnbCJpbiBzP289cy5nbDoiY2FudmFzImluIHM/YT1uKHMuY2FudmFzKToiY29udGFpbmVyImluIHMmJihpPW4ocy5jb250YWluZXIpKSwiYXR0cmlidXRlcyJpbiBzJiYodD1zLmF0dHJpYnV0ZXMpLCJleHRlbnNpb25zImluIHMmJihsPXIocy5leHRlbnNpb25zKSksIm9wdGlvbmFsRXh0ZW5zaW9ucyJpbiBzJiYoYz1yKHMub3B0aW9uYWxFeHRlbnNpb25zKSksIm9uRG9uZSJpbiBzJiYoaD1zLm9uRG9uZSksInByb2ZpbGUiaW4gcyYmKGY9ISFzLnByb2ZpbGUpLCJwaXhlbFJhdGlvImluIHMmJih1PStzLnBpeGVsUmF0aW8pKSksZSYmKCJjYW52YXMiPT09ZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpP2E9ZTppPWUpLCFvKXtpZighYSl7aWYoIShlPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKCl7dmFyIGU9d2luZG93LmlubmVyV2lkdGgsbj13aW5kb3cuaW5uZXJIZWlnaHQ7dCE9PWRvY3VtZW50LmJvZHkmJihlPShuPWEuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkpLnJpZ2h0LW4ubGVmdCxuPW4uYm90dG9tLW4udG9wKSxhLndpZHRoPXIqZSxhLmhlaWdodD1yKm59dmFyIGksYT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtyZXR1cm4gaihhLnN0eWxlLHtib3JkZXI6MCxtYXJnaW46MCxwYWRkaW5nOjAsdG9wOjAsbGVmdDowLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUifSksdC5hcHBlbmRDaGlsZChhKSx0PT09ZG9jdW1lbnQuYm9keSYmKGEuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixqKHQuc3R5bGUse21hcmdpbjowLHBhZGRpbmc6MH0pKSx0IT09ZG9jdW1lbnQuYm9keSYmImZ1bmN0aW9uIj09dHlwZW9mIFJlc2l6ZU9ic2VydmVyPyhpPW5ldyBSZXNpemVPYnNlcnZlcigoZnVuY3Rpb24oKXtzZXRUaW1lb3V0KG4pfSkpKS5vYnNlcnZlKHQpOndpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJyZXNpemUiLG4sITEpLG4oKSx7Y2FudmFzOmEsb25EZXN0cm95OmZ1bmN0aW9uKCl7aT9pLmRpc2Nvbm5lY3QoKTp3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigicmVzaXplIixuKSx0LnJlbW92ZUNoaWxkKGEpfX19KGl8fGRvY3VtZW50LmJvZHksMCx1KSkpcmV0dXJuIG51bGw7YT1lLmNhbnZhcyxwPWUub25EZXN0cm95fXZvaWQgMD09PXQucHJlbXVsdGlwbGllZEFscGhhJiYodC5wcmVtdWx0aXBsaWVkQWxwaGE9ITApLG89ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIpe3RyeXtyZXR1cm4gdC5nZXRDb250ZXh0KHIsZSl9Y2F0Y2godCl7cmV0dXJuIG51bGx9fXJldHVybiByKCJ3ZWJnbCIpfHxyKCJleHBlcmltZW50YWwtd2ViZ2wiKXx8cigid2ViZ2wtZXhwZXJpbWVudGFsIil9KGEsdCl9cmV0dXJuIG8/e2dsOm8sY2FudmFzOmEsY29udGFpbmVyOmksZXh0ZW5zaW9uczpsLG9wdGlvbmFsRXh0ZW5zaW9uczpjLHBpeGVsUmF0aW86dSxwcm9maWxlOmYsb25Eb25lOmgsb25EZXN0cm95OnB9OihwKCksaCgid2ViZ2wgbm90IHN1cHBvcnRlZCwgdHJ5IHVwZ3JhZGluZyB5b3VyIGJyb3dzZXIgb3IgZ3JhcGhpY3MgZHJpdmVycyBodHRwOi8vZ2V0LndlYmdsLm9yZyIpLG51bGwpfWZ1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9QXJyYXkodCksbj0wO248dDsrK24pcltuXT1lKG4pO3JldHVybiByfWZ1bmN0aW9uIG8odCl7dmFyIGUscjtyZXR1cm4gZT0oNjU1MzU8dCk8PDQsZXw9cj0oMjU1PCh0Pj4+PWUpKTw8MywoZXw9cj0oMTU8KHQ+Pj49cikpPDwyKXwocj0oMzwodD4+Pj1yKSk8PDEpfHQ+Pj5yPj4xfWZ1bmN0aW9uIHMoKXtmdW5jdGlvbiB0KHQpe3Q6e2Zvcih2YXIgZT0xNjsyNjg0MzU0NTY+PWU7ZSo9MTYpaWYodDw9ZSl7dD1lO2JyZWFrIHR9dD0wfXJldHVybiAwPChlPXJbbyh0KT4+Ml0pLmxlbmd0aD9lLnBvcCgpOm5ldyBBcnJheUJ1ZmZlcih0KX1mdW5jdGlvbiBlKHQpe3Jbbyh0LmJ5dGVMZW5ndGgpPj4yXS5wdXNoKHQpfXZhciByPWEoOCwoZnVuY3Rpb24oKXtyZXR1cm5bXX0pKTtyZXR1cm57YWxsb2M6dCxmcmVlOmUsYWxsb2NUeXBlOmZ1bmN0aW9uKGUscil7dmFyIG49bnVsbDtzd2l0Y2goZSl7Y2FzZSA1MTIwOm49bmV3IEludDhBcnJheSh0KHIpLDAscik7YnJlYWs7Y2FzZSA1MTIxOm49bmV3IFVpbnQ4QXJyYXkodChyKSwwLHIpO2JyZWFrO2Nhc2UgNTEyMjpuPW5ldyBJbnQxNkFycmF5KHQoMipyKSwwLHIpO2JyZWFrO2Nhc2UgNTEyMzpuPW5ldyBVaW50MTZBcnJheSh0KDIqciksMCxyKTticmVhaztjYXNlIDUxMjQ6bj1uZXcgSW50MzJBcnJheSh0KDQqciksMCxyKTticmVhaztjYXNlIDUxMjU6bj1uZXcgVWludDMyQXJyYXkodCg0KnIpLDAscik7YnJlYWs7Y2FzZSA1MTI2Om49bmV3IEZsb2F0MzJBcnJheSh0KDQqciksMCxyKTticmVhaztkZWZhdWx0OnJldHVybiBudWxsfXJldHVybiBuLmxlbmd0aCE9PXI/bi5zdWJhcnJheSgwLHIpOm59LGZyZWVUeXBlOmZ1bmN0aW9uKHQpe2UodC5idWZmZXIpfX19ZnVuY3Rpb24gbCh0KXtyZXR1cm4hIXQmJiJvYmplY3QiPT10eXBlb2YgdCYmQXJyYXkuaXNBcnJheSh0LnNoYXBlKSYmQXJyYXkuaXNBcnJheSh0LnN0cmlkZSkmJiJudW1iZXIiPT10eXBlb2YgdC5vZmZzZXQmJnQuc2hhcGUubGVuZ3RoPT09dC5zdHJpZGUubGVuZ3RoJiYoQXJyYXkuaXNBcnJheSh0LmRhdGEpfHxXKHQuZGF0YSkpfWZ1bmN0aW9uIGModCxlLHIsbixpLGEpe2Zvcih2YXIgbz0wO288ZTsrK28pZm9yKHZhciBzPXRbb10sbD0wO2w8cjsrK2wpZm9yKHZhciBjPXNbbF0sdT0wO3U8bjsrK3UpaVthKytdPWNbdV19ZnVuY3Rpb24gdSh0KXtyZXR1cm4gMHxKW09iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbCh0KV19ZnVuY3Rpb24gZih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7KytyKXRbcl09ZVtyXX1mdW5jdGlvbiBoKHQsZSxyLG4saSxhLG8pe2Zvcih2YXIgcz0wLGw9MDtsPHI7KytsKWZvcih2YXIgYz0wO2M8bjsrK2MpdFtzKytdPWVbaSpsK2EqYytvXX1mdW5jdGlvbiBwKHQsZSxyLG4pe2Z1bmN0aW9uIGkoZSl7dGhpcy5pZD1jKyssdGhpcy5idWZmZXI9dC5jcmVhdGVCdWZmZXIoKSx0aGlzLnR5cGU9ZSx0aGlzLnVzYWdlPTM1MDQ0LHRoaXMuYnl0ZUxlbmd0aD0wLHRoaXMuZGltZW5zaW9uPTEsdGhpcy5kdHlwZT01MTIxLHRoaXMucGVyc2lzdGVudERhdGE9bnVsbCxyLnByb2ZpbGUmJih0aGlzLnN0YXRzPXtzaXplOjB9KX1mdW5jdGlvbiBhKGUscixuKXtlLmJ5dGVMZW5ndGg9ci5ieXRlTGVuZ3RoLHQuYnVmZmVyRGF0YShlLnR5cGUscixuKX1mdW5jdGlvbiBvKHQsZSxyLG4saSxvKXtpZih0LnVzYWdlPXIsQXJyYXkuaXNBcnJheShlKSl7aWYodC5kdHlwZT1ufHw1MTI2LDA8ZS5sZW5ndGgpaWYoQXJyYXkuaXNBcnJheShlWzBdKSl7aT10dChlKTtmb3IodmFyIHM9bj0xO3M8aS5sZW5ndGg7KytzKW4qPWlbc107dC5kaW1lbnNpb249bixhKHQsZT0kKGUsaSx0LmR0eXBlKSxyKSxvP3QucGVyc2lzdGVudERhdGE9ZTpHLmZyZWVUeXBlKGUpfWVsc2UibnVtYmVyIj09dHlwZW9mIGVbMF0/KHQuZGltZW5zaW9uPWksZihpPUcuYWxsb2NUeXBlKHQuZHR5cGUsZS5sZW5ndGgpLGUpLGEodCxpLHIpLG8/dC5wZXJzaXN0ZW50RGF0YT1pOkcuZnJlZVR5cGUoaSkpOlcoZVswXSkmJih0LmRpbWVuc2lvbj1lWzBdLmxlbmd0aCx0LmR0eXBlPW58fHUoZVswXSl8fDUxMjYsYSh0LGU9JChlLFtlLmxlbmd0aCxlWzBdLmxlbmd0aF0sdC5kdHlwZSksciksbz90LnBlcnNpc3RlbnREYXRhPWU6Ry5mcmVlVHlwZShlKSl9ZWxzZSBpZihXKGUpKXQuZHR5cGU9bnx8dShlKSx0LmRpbWVuc2lvbj1pLGEodCxlLHIpLG8mJih0LnBlcnNpc3RlbnREYXRhPW5ldyBVaW50OEFycmF5KG5ldyBVaW50OEFycmF5KGUuYnVmZmVyKSkpO2Vsc2UgaWYobChlKSl7aT1lLnNoYXBlO3ZhciBjPWUuc3RyaWRlLHA9KHM9ZS5vZmZzZXQsMCksZD0wLG09MCxnPTA7MT09PWkubGVuZ3RoPyhwPWlbMF0sZD0xLG09Y1swXSxnPTApOjI9PT1pLmxlbmd0aCYmKHA9aVswXSxkPWlbMV0sbT1jWzBdLGc9Y1sxXSksdC5kdHlwZT1ufHx1KGUuZGF0YSl8fDUxMjYsdC5kaW1lbnNpb249ZCxoKGk9Ry5hbGxvY1R5cGUodC5kdHlwZSxwKmQpLGUuZGF0YSxwLGQsbSxnLHMpLGEodCxpLHIpLG8/dC5wZXJzaXN0ZW50RGF0YT1pOkcuZnJlZVR5cGUoaSl9ZWxzZSBlIGluc3RhbmNlb2YgQXJyYXlCdWZmZXImJih0LmR0eXBlPTUxMjEsdC5kaW1lbnNpb249aSxhKHQsZSxyKSxvJiYodC5wZXJzaXN0ZW50RGF0YT1uZXcgVWludDhBcnJheShuZXcgVWludDhBcnJheShlKSkpKX1mdW5jdGlvbiBzKHIpe2UuYnVmZmVyQ291bnQtLSxuKHIpLHQuZGVsZXRlQnVmZmVyKHIuYnVmZmVyKSxyLmJ1ZmZlcj1udWxsLGRlbGV0ZSBwW3IuaWRdfXZhciBjPTAscD17fTtpLnByb3RvdHlwZS5iaW5kPWZ1bmN0aW9uKCl7dC5iaW5kQnVmZmVyKHRoaXMudHlwZSx0aGlzLmJ1ZmZlcil9LGkucHJvdG90eXBlLmRlc3Ryb3k9ZnVuY3Rpb24oKXtzKHRoaXMpfTt2YXIgZD1bXTtyZXR1cm4gci5wcm9maWxlJiYoZS5nZXRUb3RhbEJ1ZmZlclNpemU9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiBPYmplY3Qua2V5cyhwKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0Kz1wW2VdLnN0YXRzLnNpemV9KSksdH0pLHtjcmVhdGU6ZnVuY3Rpb24obixhLGMsZCl7ZnVuY3Rpb24gbShlKXt2YXIgbj0zNTA0NCxpPW51bGwsYT0wLHM9MCxjPTE7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSl8fFcoZSl8fGwoZSl8fGUgaW5zdGFuY2VvZiBBcnJheUJ1ZmZlcj9pPWU6Im51bWJlciI9PXR5cGVvZiBlP2E9MHxlOmUmJigiZGF0YSJpbiBlJiYoaT1lLmRhdGEpLCJ1c2FnZSJpbiBlJiYobj1RW2UudXNhZ2VdKSwidHlwZSJpbiBlJiYocz1LW2UudHlwZV0pLCJkaW1lbnNpb24iaW4gZSYmKGM9MHxlLmRpbWVuc2lvbiksImxlbmd0aCJpbiBlJiYoYT0wfGUubGVuZ3RoKSksZy5iaW5kKCksaT9vKGcsaSxuLHMsYyxkKTooYSYmdC5idWZmZXJEYXRhKGcudHlwZSxhLG4pLGcuZHR5cGU9c3x8NTEyMSxnLnVzYWdlPW4sZy5kaW1lbnNpb249YyxnLmJ5dGVMZW5ndGg9YSksci5wcm9maWxlJiYoZy5zdGF0cy5zaXplPWcuYnl0ZUxlbmd0aCpldFtnLmR0eXBlXSksbX1lLmJ1ZmZlckNvdW50Kys7dmFyIGc9bmV3IGkoYSk7cmV0dXJuIHBbZy5pZF09ZyxjfHxtKG4pLG0uX3JlZ2xUeXBlPSJidWZmZXIiLG0uX2J1ZmZlcj1nLG0uc3ViZGF0YT1mdW5jdGlvbihlLHIpe3ZhciBuLGk9MHwocnx8MCk7aWYoZy5iaW5kKCksVyhlKXx8ZSBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKXQuYnVmZmVyU3ViRGF0YShnLnR5cGUsaSxlKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoZSkpe2lmKDA8ZS5sZW5ndGgpaWYoIm51bWJlciI9PXR5cGVvZiBlWzBdKXt2YXIgYT1HLmFsbG9jVHlwZShnLmR0eXBlLGUubGVuZ3RoKTtmKGEsZSksdC5idWZmZXJTdWJEYXRhKGcudHlwZSxpLGEpLEcuZnJlZVR5cGUoYSl9ZWxzZShBcnJheS5pc0FycmF5KGVbMF0pfHxXKGVbMF0pKSYmKG49dHQoZSksYT0kKGUsbixnLmR0eXBlKSx0LmJ1ZmZlclN1YkRhdGEoZy50eXBlLGksYSksRy5mcmVlVHlwZShhKSl9ZWxzZSBpZihsKGUpKXtuPWUuc2hhcGU7dmFyIG89ZS5zdHJpZGUscz1hPTAsYz0wLHA9MDsxPT09bi5sZW5ndGg/KGE9blswXSxzPTEsYz1vWzBdLHA9MCk6Mj09PW4ubGVuZ3RoJiYoYT1uWzBdLHM9blsxXSxjPW9bMF0scD1vWzFdKSxuPUFycmF5LmlzQXJyYXkoZS5kYXRhKT9nLmR0eXBlOnUoZS5kYXRhKSxoKG49Ry5hbGxvY1R5cGUobixhKnMpLGUuZGF0YSxhLHMsYyxwLGUub2Zmc2V0KSx0LmJ1ZmZlclN1YkRhdGEoZy50eXBlLGksbiksRy5mcmVlVHlwZShuKX1yZXR1cm4gbX0sci5wcm9maWxlJiYobS5zdGF0cz1nLnN0YXRzKSxtLmRlc3Ryb3k9ZnVuY3Rpb24oKXtzKGcpfSxtfSxjcmVhdGVTdHJlYW06ZnVuY3Rpb24odCxlKXt2YXIgcj1kLnBvcCgpO3JldHVybiByfHwocj1uZXcgaSh0KSksci5iaW5kKCksbyhyLGUsMzUwNDAsMCwxLCExKSxyfSxkZXN0cm95U3RyZWFtOmZ1bmN0aW9uKHQpe2QucHVzaCh0KX0sY2xlYXI6ZnVuY3Rpb24oKXtYKHApLmZvckVhY2gocyksZC5mb3JFYWNoKHMpfSxnZXRCdWZmZXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQuX2J1ZmZlciBpbnN0YW5jZW9mIGk/dC5fYnVmZmVyOm51bGx9LHJlc3RvcmU6ZnVuY3Rpb24oKXtYKHApLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuYnVmZmVyPXQuY3JlYXRlQnVmZmVyKCksdC5iaW5kQnVmZmVyKGUudHlwZSxlLmJ1ZmZlciksdC5idWZmZXJEYXRhKGUudHlwZSxlLnBlcnNpc3RlbnREYXRhfHxlLmJ5dGVMZW5ndGgsZS51c2FnZSl9KSl9LF9pbml0QnVmZmVyOm99fWZ1bmN0aW9uIGQodCxlLHIsbil7ZnVuY3Rpb24gaSh0KXt0aGlzLmlkPWMrKyxzW3RoaXMuaWRdPXRoaXMsdGhpcy5idWZmZXI9dCx0aGlzLnByaW1UeXBlPTQsdGhpcy50eXBlPXRoaXMudmVydENvdW50PTB9ZnVuY3Rpb24gYShuLGksYSxvLHMsYyx1KXt2YXIgZjtpZihuLmJ1ZmZlci5iaW5kKCksaT8oKGY9dSl8fFcoaSkmJighbChpKXx8VyhpLmRhdGEpKXx8KGY9ZS5vZXNfZWxlbWVudF9pbmRleF91aW50PzUxMjU6NTEyMyksci5faW5pdEJ1ZmZlcihuLmJ1ZmZlcixpLGEsZiwzKSk6KHQuYnVmZmVyRGF0YSgzNDk2MyxjLGEpLG4uYnVmZmVyLmR0eXBlPWZ8fDUxMjEsbi5idWZmZXIudXNhZ2U9YSxuLmJ1ZmZlci5kaW1lbnNpb249MyxuLmJ1ZmZlci5ieXRlTGVuZ3RoPWMpLGY9dSwhdSl7c3dpdGNoKG4uYnVmZmVyLmR0eXBlKXtjYXNlIDUxMjE6Y2FzZSA1MTIwOmY9NTEyMTticmVhaztjYXNlIDUxMjM6Y2FzZSA1MTIyOmY9NTEyMzticmVhaztjYXNlIDUxMjU6Y2FzZSA1MTI0OmY9NTEyNX1uLmJ1ZmZlci5kdHlwZT1mfW4udHlwZT1mLDA+KGk9cykmJihpPW4uYnVmZmVyLmJ5dGVMZW5ndGgsNTEyMz09PWY/aT4+PTE6NTEyNT09PWYmJihpPj49MikpLG4udmVydENvdW50PWksaT1vLDA+byYmKGk9NCwxPT09KG89bi5idWZmZXIuZGltZW5zaW9uKSYmKGk9MCksMj09PW8mJihpPTEpLDM9PT1vJiYoaT00KSksbi5wcmltVHlwZT1pfWZ1bmN0aW9uIG8odCl7bi5lbGVtZW50c0NvdW50LS0sZGVsZXRlIHNbdC5pZF0sdC5idWZmZXIuZGVzdHJveSgpLHQuYnVmZmVyPW51bGx9dmFyIHM9e30sYz0wLHU9e3VpbnQ4OjUxMjEsdWludDE2OjUxMjN9O2Uub2VzX2VsZW1lbnRfaW5kZXhfdWludCYmKHUudWludDMyPTUxMjUpLGkucHJvdG90eXBlLmJpbmQ9ZnVuY3Rpb24oKXt0aGlzLmJ1ZmZlci5iaW5kKCl9O3ZhciBmPVtdO3JldHVybntjcmVhdGU6ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiBzKHQpe2lmKHQpaWYoIm51bWJlciI9PXR5cGVvZiB0KWModCksZi5wcmltVHlwZT00LGYudmVydENvdW50PTB8dCxmLnR5cGU9NTEyMTtlbHNle3ZhciBlPW51bGwscj0zNTA0NCxuPS0xLGk9LTEsbz0wLGg9MDtBcnJheS5pc0FycmF5KHQpfHxXKHQpfHxsKHQpP2U9dDooImRhdGEiaW4gdCYmKGU9dC5kYXRhKSwidXNhZ2UiaW4gdCYmKHI9UVt0LnVzYWdlXSksInByaW1pdGl2ZSJpbiB0JiYobj1ydFt0LnByaW1pdGl2ZV0pLCJjb3VudCJpbiB0JiYoaT0wfHQuY291bnQpLCJ0eXBlImluIHQmJihoPXVbdC50eXBlXSksImxlbmd0aCJpbiB0P289MHx0Lmxlbmd0aDoobz1pLDUxMjM9PT1ofHw1MTIyPT09aD9vKj0yOjUxMjUhPT1oJiY1MTI0IT09aHx8KG8qPTQpKSksYShmLGUscixuLGksbyxoKX1lbHNlIGMoKSxmLnByaW1UeXBlPTQsZi52ZXJ0Q291bnQ9MCxmLnR5cGU9NTEyMTtyZXR1cm4gc312YXIgYz1yLmNyZWF0ZShudWxsLDM0OTYzLCEwKSxmPW5ldyBpKGMuX2J1ZmZlcik7cmV0dXJuIG4uZWxlbWVudHNDb3VudCsrLHModCkscy5fcmVnbFR5cGU9ImVsZW1lbnRzIixzLl9lbGVtZW50cz1mLHMuc3ViZGF0YT1mdW5jdGlvbih0LGUpe3JldHVybiBjLnN1YmRhdGEodCxlKSxzfSxzLmRlc3Ryb3k9ZnVuY3Rpb24oKXtvKGYpfSxzfSxjcmVhdGVTdHJlYW06ZnVuY3Rpb24odCl7dmFyIGU9Zi5wb3AoKTtyZXR1cm4gZXx8KGU9bmV3IGkoci5jcmVhdGUobnVsbCwzNDk2MywhMCwhMSkuX2J1ZmZlcikpLGEoZSx0LDM1MDQwLC0xLC0xLDAsMCksZX0sZGVzdHJveVN0cmVhbTpmdW5jdGlvbih0KXtmLnB1c2godCl9LGdldEVsZW1lbnRzOmZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0Ll9lbGVtZW50cyBpbnN0YW5jZW9mIGk/dC5fZWxlbWVudHM6bnVsbH0sY2xlYXI6ZnVuY3Rpb24oKXtYKHMpLmZvckVhY2gobyl9fX1mdW5jdGlvbiBtKHQpe2Zvcih2YXIgZT1HLmFsbG9jVHlwZSg1MTIzLHQubGVuZ3RoKSxyPTA7cjx0Lmxlbmd0aDsrK3IpaWYoaXNOYU4odFtyXSkpZVtyXT02NTUzNTtlbHNlIGlmKDEvMD09PXRbcl0pZVtyXT0zMTc0NDtlbHNlIGlmKC0xLzA9PT10W3JdKWVbcl09NjQ1MTI7ZWxzZXtudFswXT10W3JdO3ZhciBuPShhPWl0WzBdKT4+PjMxPDwxNSxpPShhPDwxPj4+MjQpLTEyNyxhPWE+PjEzJjEwMjM7ZVtyXT0tMjQ+aT9uOi0xND5pP24rKGErMTAyND4+LTE0LWkpOjE1PGk/biszMTc0NDpuKyhpKzE1PDwxMCkrYX1yZXR1cm4gZX1mdW5jdGlvbiBnKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfHxXKHQpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIltvYmplY3QgIit0KyJdIn1mdW5jdGlvbiB5KHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpJiYoMD09PXQubGVuZ3RofHwibnVtYmVyIj09dHlwZW9mIHRbMF0pfWZ1bmN0aW9uIHgodCl7cmV0dXJuISghQXJyYXkuaXNBcnJheSh0KXx8MD09PXQubGVuZ3RofHwhZyh0WzBdKSl9ZnVuY3Rpb24gYih0KXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKHQpfWZ1bmN0aW9uIF8odCl7aWYoIXQpcmV0dXJuITE7dmFyIGU9Yih0KTtyZXR1cm4gMDw9ZHQuaW5kZXhPZihlKXx8KHkodCl8fHgodCl8fGwodCkpfWZ1bmN0aW9uIHcodCxlKXszNjE5Mz09PXQudHlwZT8odC5kYXRhPW0oZSksRy5mcmVlVHlwZShlKSk6dC5kYXRhPWV9ZnVuY3Rpb24gVCh0LGUscixuLGksYSl7aWYodD12b2lkIDAhPT1ndFt0XT9ndFt0XTpzdFt0XSptdFtlXSxhJiYodCo9NiksaSl7Zm9yKG49MDsxPD1yOyluKz10KnIqcixyLz0yO3JldHVybiBufXJldHVybiB0KnIqbn1mdW5jdGlvbiBrKHQsZSxyLG4saSxhLG8pe2Z1bmN0aW9uIHMoKXt0aGlzLmZvcm1hdD10aGlzLmludGVybmFsZm9ybWF0PTY0MDgsdGhpcy50eXBlPTUxMjEsdGhpcy5mbGlwWT10aGlzLnByZW11bHRpcGx5QWxwaGE9dGhpcy5jb21wcmVzc2VkPSExLHRoaXMudW5wYWNrQWxpZ25tZW50PTEsdGhpcy5jb2xvclNwYWNlPTM3NDQ0LHRoaXMuY2hhbm5lbHM9dGhpcy5oZWlnaHQ9dGhpcy53aWR0aD0wfWZ1bmN0aW9uIGModCxlKXt0LmludGVybmFsZm9ybWF0PWUuaW50ZXJuYWxmb3JtYXQsdC5mb3JtYXQ9ZS5mb3JtYXQsdC50eXBlPWUudHlwZSx0LmNvbXByZXNzZWQ9ZS5jb21wcmVzc2VkLHQucHJlbXVsdGlwbHlBbHBoYT1lLnByZW11bHRpcGx5QWxwaGEsdC5mbGlwWT1lLmZsaXBZLHQudW5wYWNrQWxpZ25tZW50PWUudW5wYWNrQWxpZ25tZW50LHQuY29sb3JTcGFjZT1lLmNvbG9yU3BhY2UsdC53aWR0aD1lLndpZHRoLHQuaGVpZ2h0PWUuaGVpZ2h0LHQuY2hhbm5lbHM9ZS5jaGFubmVsc31mdW5jdGlvbiB1KHQsZSl7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZlKXsicHJlbXVsdGlwbHlBbHBoYSJpbiBlJiYodC5wcmVtdWx0aXBseUFscGhhPWUucHJlbXVsdGlwbHlBbHBoYSksImZsaXBZImluIGUmJih0LmZsaXBZPWUuZmxpcFkpLCJhbGlnbm1lbnQiaW4gZSYmKHQudW5wYWNrQWxpZ25tZW50PWUuYWxpZ25tZW50KSwiY29sb3JTcGFjZSJpbiBlJiYodC5jb2xvclNwYWNlPUhbZS5jb2xvclNwYWNlXSksInR5cGUiaW4gZSYmKHQudHlwZT1xW2UudHlwZV0pO3ZhciByPXQud2lkdGgsbj10LmhlaWdodCxpPXQuY2hhbm5lbHMsYT0hMTsic2hhcGUiaW4gZT8ocj1lLnNoYXBlWzBdLG49ZS5zaGFwZVsxXSwzPT09ZS5zaGFwZS5sZW5ndGgmJihpPWUuc2hhcGVbMl0sYT0hMCkpOigicmFkaXVzImluIGUmJihyPW49ZS5yYWRpdXMpLCJ3aWR0aCJpbiBlJiYocj1lLndpZHRoKSwiaGVpZ2h0ImluIGUmJihuPWUuaGVpZ2h0KSwiY2hhbm5lbHMiaW4gZSYmKGk9ZS5jaGFubmVscyxhPSEwKSksdC53aWR0aD0wfHIsdC5oZWlnaHQ9MHxuLHQuY2hhbm5lbHM9MHxpLHI9ITEsImZvcm1hdCJpbiBlJiYocj1lLmZvcm1hdCxuPXQuaW50ZXJuYWxmb3JtYXQ9WVtyXSx0LmZvcm1hdD1kdFtuXSxyIGluIHEmJiEoInR5cGUiaW4gZSkmJih0LnR5cGU9cVtyXSksciBpbiBLJiYodC5jb21wcmVzc2VkPSEwKSxyPSEwKSwhYSYmcj90LmNoYW5uZWxzPXN0W3QuZm9ybWF0XTphJiYhciYmdC5jaGFubmVscyE9PW90W3QuZm9ybWF0XSYmKHQuZm9ybWF0PXQuaW50ZXJuYWxmb3JtYXQ9b3RbdC5jaGFubmVsc10pfX1mdW5jdGlvbiBmKGUpe3QucGl4ZWxTdG9yZWkoMzc0NDAsZS5mbGlwWSksdC5waXhlbFN0b3JlaSgzNzQ0MSxlLnByZW11bHRpcGx5QWxwaGEpLHQucGl4ZWxTdG9yZWkoMzc0NDMsZS5jb2xvclNwYWNlKSx0LnBpeGVsU3RvcmVpKDMzMTcsZS51bnBhY2tBbGlnbm1lbnQpfWZ1bmN0aW9uIGgoKXtzLmNhbGwodGhpcyksdGhpcy55T2Zmc2V0PXRoaXMueE9mZnNldD0wLHRoaXMuZGF0YT1udWxsLHRoaXMubmVlZHNGcmVlPSExLHRoaXMuZWxlbWVudD1udWxsLHRoaXMubmVlZHNDb3B5PSExfWZ1bmN0aW9uIHAodCxlKXt2YXIgcj1udWxsO2lmKF8oZSk/cj1lOmUmJih1KHQsZSksIngiaW4gZSYmKHQueE9mZnNldD0wfGUueCksInkiaW4gZSYmKHQueU9mZnNldD0wfGUueSksXyhlLmRhdGEpJiYocj1lLmRhdGEpKSxlLmNvcHkpe3ZhciBuPWkudmlld3BvcnRXaWR0aCxhPWkudmlld3BvcnRIZWlnaHQ7dC53aWR0aD10LndpZHRofHxuLXQueE9mZnNldCx0LmhlaWdodD10LmhlaWdodHx8YS10LnlPZmZzZXQsdC5uZWVkc0NvcHk9ITB9ZWxzZSBpZihyKXtpZihXKHIpKXQuY2hhbm5lbHM9dC5jaGFubmVsc3x8NCx0LmRhdGE9ciwidHlwZSJpbiBlfHw1MTIxIT09dC50eXBlfHwodC50eXBlPTB8SltPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwocildKTtlbHNlIGlmKHkocikpe3N3aXRjaCh0LmNoYW5uZWxzPXQuY2hhbm5lbHN8fDQsYT0obj1yKS5sZW5ndGgsdC50eXBlKXtjYXNlIDUxMjE6Y2FzZSA1MTIzOmNhc2UgNTEyNTpjYXNlIDUxMjY6KGE9Ry5hbGxvY1R5cGUodC50eXBlLGEpKS5zZXQobiksdC5kYXRhPWE7YnJlYWs7Y2FzZSAzNjE5Mzp0LmRhdGE9bShuKX10LmFsaWdubWVudD0xLHQubmVlZHNGcmVlPSEwfWVsc2UgaWYobChyKSl7bj1yLmRhdGEsQXJyYXkuaXNBcnJheShuKXx8NTEyMSE9PXQudHlwZXx8KHQudHlwZT0wfEpbT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG4pXSk7YT1yLnNoYXBlO3ZhciBvLHMsYyxmLGg9ci5zdHJpZGU7Mz09PWEubGVuZ3RoPyhjPWFbMl0sZj1oWzJdKTpmPWM9MSxvPWFbMF0scz1hWzFdLGE9aFswXSxoPWhbMV0sdC5hbGlnbm1lbnQ9MSx0LndpZHRoPW8sdC5oZWlnaHQ9cyx0LmNoYW5uZWxzPWMsdC5mb3JtYXQ9dC5pbnRlcm5hbGZvcm1hdD1vdFtjXSx0Lm5lZWRzRnJlZT0hMCxvPWYscj1yLm9mZnNldCxjPXQud2lkdGgsZj10LmhlaWdodCxzPXQuY2hhbm5lbHM7Zm9yKHZhciBwPUcuYWxsb2NUeXBlKDM2MTkzPT09dC50eXBlPzUxMjY6dC50eXBlLGMqZipzKSxkPTAsdj0wO3Y8ZjsrK3YpZm9yKHZhciBUPTA7VDxjOysrVClmb3IodmFyIGs9MDtrPHM7KytrKXBbZCsrXT1uW2EqVCtoKnYrbyprK3JdO3codCxwKX1lbHNlIGlmKGIocik9PT1sdHx8YihyKT09PWN0fHxiKHIpPT09dXQpYihyKT09PWx0fHxiKHIpPT09Y3Q/dC5lbGVtZW50PXI6dC5lbGVtZW50PXIuY2FudmFzLHQud2lkdGg9dC5lbGVtZW50LndpZHRoLHQuaGVpZ2h0PXQuZWxlbWVudC5oZWlnaHQsdC5jaGFubmVscz00O2Vsc2UgaWYoYihyKT09PWZ0KXQuZWxlbWVudD1yLHQud2lkdGg9ci53aWR0aCx0LmhlaWdodD1yLmhlaWdodCx0LmNoYW5uZWxzPTQ7ZWxzZSBpZihiKHIpPT09aHQpdC5lbGVtZW50PXIsdC53aWR0aD1yLm5hdHVyYWxXaWR0aCx0LmhlaWdodD1yLm5hdHVyYWxIZWlnaHQsdC5jaGFubmVscz00O2Vsc2UgaWYoYihyKT09PXB0KXQuZWxlbWVudD1yLHQud2lkdGg9ci52aWRlb1dpZHRoLHQuaGVpZ2h0PXIudmlkZW9IZWlnaHQsdC5jaGFubmVscz00O2Vsc2UgaWYoeChyKSl7Zm9yKG49dC53aWR0aHx8clswXS5sZW5ndGgsYT10LmhlaWdodHx8ci5sZW5ndGgsaD10LmNoYW5uZWxzLGg9ZyhyWzBdWzBdKT9ofHxyWzBdWzBdLmxlbmd0aDpofHwxLG89Wi5zaGFwZShyKSxjPTEsZj0wO2Y8by5sZW5ndGg7KytmKWMqPW9bZl07Yz1HLmFsbG9jVHlwZSgzNjE5Mz09PXQudHlwZT81MTI2OnQudHlwZSxjKSxaLmZsYXR0ZW4ocixvLCIiLGMpLHcodCxjKSx0LmFsaWdubWVudD0xLHQud2lkdGg9bix0LmhlaWdodD1hLHQuY2hhbm5lbHM9aCx0LmZvcm1hdD10LmludGVybmFsZm9ybWF0PW90W2hdLHQubmVlZHNGcmVlPSEwfX1lbHNlIHQud2lkdGg9dC53aWR0aHx8MSx0LmhlaWdodD10LmhlaWdodHx8MSx0LmNoYW5uZWxzPXQuY2hhbm5lbHN8fDR9ZnVuY3Rpb24gZChlLHIsaSxhLG8pe3ZhciBzPWUuZWxlbWVudCxsPWUuZGF0YSxjPWUuaW50ZXJuYWxmb3JtYXQsdT1lLmZvcm1hdCxoPWUudHlwZSxwPWUud2lkdGgsZD1lLmhlaWdodDtmKGUpLHM/dC50ZXhTdWJJbWFnZTJEKHIsbyxpLGEsdSxoLHMpOmUuY29tcHJlc3NlZD90LmNvbXByZXNzZWRUZXhTdWJJbWFnZTJEKHIsbyxpLGEsYyxwLGQsbCk6ZS5uZWVkc0NvcHk/KG4oKSx0LmNvcHlUZXhTdWJJbWFnZTJEKHIsbyxpLGEsZS54T2Zmc2V0LGUueU9mZnNldCxwLGQpKTp0LnRleFN1YkltYWdlMkQocixvLGksYSxwLGQsdSxoLGwpfWZ1bmN0aW9uIHYoKXtyZXR1cm4gbXQucG9wKCl8fG5ldyBofWZ1bmN0aW9uIGsodCl7dC5uZWVkc0ZyZWUmJkcuZnJlZVR5cGUodC5kYXRhKSxoLmNhbGwodCksbXQucHVzaCh0KX1mdW5jdGlvbiBBKCl7cy5jYWxsKHRoaXMpLHRoaXMuZ2VuTWlwbWFwcz0hMSx0aGlzLm1pcG1hcEhpbnQ9NDM1Mix0aGlzLm1pcG1hc2s9MCx0aGlzLmltYWdlcz1BcnJheSgxNil9ZnVuY3Rpb24gTSh0LGUscil7dmFyIG49dC5pbWFnZXNbMF09digpO3QubWlwbWFzaz0xLG4ud2lkdGg9dC53aWR0aD1lLG4uaGVpZ2h0PXQuaGVpZ2h0PXIsbi5jaGFubmVscz10LmNoYW5uZWxzPTR9ZnVuY3Rpb24gUyh0LGUpe3ZhciByPW51bGw7aWYoXyhlKSljKHI9dC5pbWFnZXNbMF09digpLHQpLHAocixlKSx0Lm1pcG1hc2s9MTtlbHNlIGlmKHUodCxlKSxBcnJheS5pc0FycmF5KGUubWlwbWFwKSlmb3IodmFyIG49ZS5taXBtYXAsaT0wO2k8bi5sZW5ndGg7KytpKWMocj10LmltYWdlc1tpXT12KCksdCksci53aWR0aD4+PWksci5oZWlnaHQ+Pj1pLHAocixuW2ldKSx0Lm1pcG1hc2t8PTE8PGk7ZWxzZSBjKHI9dC5pbWFnZXNbMF09digpLHQpLHAocixlKSx0Lm1pcG1hc2s9MTtjKHQsdC5pbWFnZXNbMF0pfWZ1bmN0aW9uIEUoZSxyKXtmb3IodmFyIGk9ZS5pbWFnZXMsYT0wO2E8aS5sZW5ndGgmJmlbYV07KythKXt2YXIgbz1pW2FdLHM9cixsPWEsYz1vLmVsZW1lbnQsdT1vLmRhdGEsaD1vLmludGVybmFsZm9ybWF0LHA9by5mb3JtYXQsZD1vLnR5cGUsbT1vLndpZHRoLGc9by5oZWlnaHQ7ZihvKSxjP3QudGV4SW1hZ2UyRChzLGwscCxwLGQsYyk6by5jb21wcmVzc2VkP3QuY29tcHJlc3NlZFRleEltYWdlMkQocyxsLGgsbSxnLDAsdSk6by5uZWVkc0NvcHk/KG4oKSx0LmNvcHlUZXhJbWFnZTJEKHMsbCxwLG8ueE9mZnNldCxvLnlPZmZzZXQsbSxnLDApKTp0LnRleEltYWdlMkQocyxsLHAsbSxnLDAscCxkLHV8fG51bGwpfX1mdW5jdGlvbiBMKCl7dmFyIHQ9Z3QucG9wKCl8fG5ldyBBO3MuY2FsbCh0KTtmb3IodmFyIGU9dC5taXBtYXNrPTA7MTY+ZTsrK2UpdC5pbWFnZXNbZV09bnVsbDtyZXR1cm4gdH1mdW5jdGlvbiBDKHQpe2Zvcih2YXIgZT10LmltYWdlcyxyPTA7cjxlLmxlbmd0aDsrK3IpZVtyXSYmayhlW3JdKSxlW3JdPW51bGw7Z3QucHVzaCh0KX1mdW5jdGlvbiBQKCl7dGhpcy5tYWdGaWx0ZXI9dGhpcy5taW5GaWx0ZXI9OTcyOCx0aGlzLndyYXBUPXRoaXMud3JhcFM9MzMwNzEsdGhpcy5hbmlzb3Ryb3BpYz0xLHRoaXMuZ2VuTWlwbWFwcz0hMSx0aGlzLm1pcG1hcEhpbnQ9NDM1Mn1mdW5jdGlvbiBJKHQsZSl7Im1pbiJpbiBlJiYodC5taW5GaWx0ZXI9VltlLm1pbl0sMDw9YXQuaW5kZXhPZih0Lm1pbkZpbHRlcikmJiEoImZhY2VzImluIGUpJiYodC5nZW5NaXBtYXBzPSEwKSksIm1hZyJpbiBlJiYodC5tYWdGaWx0ZXI9VVtlLm1hZ10pO3ZhciByPXQud3JhcFMsbj10LndyYXBUO2lmKCJ3cmFwImluIGUpe3ZhciBpPWUud3JhcDsic3RyaW5nIj09dHlwZW9mIGk/cj1uPU5baV06QXJyYXkuaXNBcnJheShpKSYmKHI9TltpWzBdXSxuPU5baVsxXV0pfWVsc2Uid3JhcFMiaW4gZSYmKHI9TltlLndyYXBTXSksIndyYXBUImluIGUmJihuPU5bZS53cmFwVF0pO2lmKHQud3JhcFM9cix0LndyYXBUPW4sImFuaXNvdHJvcGljImluIGUmJih0LmFuaXNvdHJvcGljPWUuYW5pc290cm9waWMpLCJtaXBtYXAiaW4gZSl7c3dpdGNoKHI9ITEsdHlwZW9mIGUubWlwbWFwKXtjYXNlInN0cmluZyI6dC5taXBtYXBIaW50PUJbZS5taXBtYXBdLHI9dC5nZW5NaXBtYXBzPSEwO2JyZWFrO2Nhc2UiYm9vbGVhbiI6cj10Lmdlbk1pcG1hcHM9ZS5taXBtYXA7YnJlYWs7Y2FzZSJvYmplY3QiOnQuZ2VuTWlwbWFwcz0hMSxyPSEwfSFyfHwibWluImluIGV8fCh0Lm1pbkZpbHRlcj05OTg0KX19ZnVuY3Rpb24gTyhyLG4pe3QudGV4UGFyYW1ldGVyaShuLDEwMjQxLHIubWluRmlsdGVyKSx0LnRleFBhcmFtZXRlcmkobiwxMDI0MCxyLm1hZ0ZpbHRlciksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDIsci53cmFwUyksdC50ZXhQYXJhbWV0ZXJpKG4sMTAyNDMsci53cmFwVCksZS5leHRfdGV4dHVyZV9maWx0ZXJfYW5pc290cm9waWMmJnQudGV4UGFyYW1ldGVyaShuLDM0MDQ2LHIuYW5pc290cm9waWMpLHIuZ2VuTWlwbWFwcyYmKHQuaGludCgzMzE3MCxyLm1pcG1hcEhpbnQpLHQuZ2VuZXJhdGVNaXBtYXAobikpfWZ1bmN0aW9uIHooZSl7cy5jYWxsKHRoaXMpLHRoaXMubWlwbWFzaz0wLHRoaXMuaW50ZXJuYWxmb3JtYXQ9NjQwOCx0aGlzLmlkPXZ0KyssdGhpcy5yZWZDb3VudD0xLHRoaXMudGFyZ2V0PWUsdGhpcy50ZXh0dXJlPXQuY3JlYXRlVGV4dHVyZSgpLHRoaXMudW5pdD0tMSx0aGlzLmJpbmRDb3VudD0wLHRoaXMudGV4SW5mbz1uZXcgUCxvLnByb2ZpbGUmJih0aGlzLnN0YXRzPXtzaXplOjB9KX1mdW5jdGlvbiBEKGUpe3QuYWN0aXZlVGV4dHVyZSgzMzk4NCksdC5iaW5kVGV4dHVyZShlLnRhcmdldCxlLnRleHR1cmUpfWZ1bmN0aW9uIFIoKXt2YXIgZT1idFswXTtlP3QuYmluZFRleHR1cmUoZS50YXJnZXQsZS50ZXh0dXJlKTp0LmJpbmRUZXh0dXJlKDM1NTMsbnVsbCl9ZnVuY3Rpb24gRihlKXt2YXIgcj1lLnRleHR1cmUsbj1lLnVuaXQsaT1lLnRhcmdldDswPD1uJiYodC5hY3RpdmVUZXh0dXJlKDMzOTg0K24pLHQuYmluZFRleHR1cmUoaSxudWxsKSxidFtuXT1udWxsKSx0LmRlbGV0ZVRleHR1cmUociksZS50ZXh0dXJlPW51bGwsZS5wYXJhbXM9bnVsbCxlLnBpeGVscz1udWxsLGUucmVmQ291bnQ9MCxkZWxldGUgeXRbZS5pZF0sYS50ZXh0dXJlQ291bnQtLX12YXIgQj17ImRvbid0IGNhcmUiOjQzNTIsImRvbnQgY2FyZSI6NDM1MixuaWNlOjQzNTQsZmFzdDo0MzUzfSxOPXtyZXBlYXQ6MTA0OTcsY2xhbXA6MzMwNzEsbWlycm9yOjMzNjQ4fSxVPXtuZWFyZXN0Ojk3MjgsbGluZWFyOjk3Mjl9LFY9aih7bWlwbWFwOjk5ODcsIm5lYXJlc3QgbWlwbWFwIG5lYXJlc3QiOjk5ODQsImxpbmVhciBtaXBtYXAgbmVhcmVzdCI6OTk4NSwibmVhcmVzdCBtaXBtYXAgbGluZWFyIjo5OTg2LCJsaW5lYXIgbWlwbWFwIGxpbmVhciI6OTk4N30sVSksSD17bm9uZTowLGJyb3dzZXI6Mzc0NDR9LHE9e3VpbnQ4OjUxMjEscmdiYTQ6MzI4MTkscmdiNTY1OjMzNjM1LCJyZ2I1IGExIjozMjgyMH0sWT17YWxwaGE6NjQwNixsdW1pbmFuY2U6NjQwOSwibHVtaW5hbmNlIGFscGhhIjo2NDEwLHJnYjo2NDA3LHJnYmE6NjQwOCxyZ2JhNDozMjg1NCwicmdiNSBhMSI6MzI4NTUscmdiNTY1OjM2MTk0fSxLPXt9O2UuZXh0X3NyZ2ImJihZLnNyZ2I9MzU5MDQsWS5zcmdiYT0zNTkwNiksZS5vZXNfdGV4dHVyZV9mbG9hdCYmKHEuZmxvYXQzMj1xLmZsb2F0PTUxMjYpLGUub2VzX3RleHR1cmVfaGFsZl9mbG9hdCYmKHEuZmxvYXQxNj1xWyJoYWxmIGZsb2F0Il09MzYxOTMpLGUud2ViZ2xfZGVwdGhfdGV4dHVyZSYmKGooWSx7ZGVwdGg6NjQwMiwiZGVwdGggc3RlbmNpbCI6MzQwNDF9KSxqKHEse3VpbnQxNjo1MTIzLHVpbnQzMjo1MTI1LCJkZXB0aCBzdGVuY2lsIjozNDA0Mn0pKSxlLndlYmdsX2NvbXByZXNzZWRfdGV4dHVyZV9zM3RjJiZqKEsseyJyZ2IgczN0YyBkeHQxIjozMzc3NiwicmdiYSBzM3RjIGR4dDEiOjMzNzc3LCJyZ2JhIHMzdGMgZHh0MyI6MzM3NzgsInJnYmEgczN0YyBkeHQ1IjozMzc3OX0pLGUud2ViZ2xfY29tcHJlc3NlZF90ZXh0dXJlX2F0YyYmaihLLHsicmdiIGF0YyI6MzU5ODYsInJnYmEgYXRjIGV4cGxpY2l0IGFscGhhIjozNTk4NywicmdiYSBhdGMgaW50ZXJwb2xhdGVkIGFscGhhIjozNDc5OH0pLGUud2ViZ2xfY29tcHJlc3NlZF90ZXh0dXJlX3B2cnRjJiZqKEsseyJyZ2IgcHZydGMgNGJwcHYxIjozNTg0MCwicmdiIHB2cnRjIDJicHB2MSI6MzU4NDEsInJnYmEgcHZydGMgNGJwcHYxIjozNTg0MiwicmdiYSBwdnJ0YyAyYnBwdjEiOjM1ODQzfSksZS53ZWJnbF9jb21wcmVzc2VkX3RleHR1cmVfZXRjMSYmKEtbInJnYiBldGMxIl09MzYxOTYpO3ZhciBRPUFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHQuZ2V0UGFyYW1ldGVyKDM0NDY3KSk7T2JqZWN0LmtleXMoSykuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9S1t0XTswPD1RLmluZGV4T2YoZSkmJihZW3RdPWUpfSkpO3ZhciAkPU9iamVjdC5rZXlzKFkpO3IudGV4dHVyZUZvcm1hdHM9JDt2YXIgdHQ9W107T2JqZWN0LmtleXMoWSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7dHRbWVt0XV09dH0pKTt2YXIgZXQ9W107T2JqZWN0LmtleXMocSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZXRbcVt0XV09dH0pKTt2YXIgcnQ9W107T2JqZWN0LmtleXMoVSkuZm9yRWFjaCgoZnVuY3Rpb24odCl7cnRbVVt0XV09dH0pKTt2YXIgbnQ9W107T2JqZWN0LmtleXMoVikuZm9yRWFjaCgoZnVuY3Rpb24odCl7bnRbVlt0XV09dH0pKTt2YXIgaXQ9W107T2JqZWN0LmtleXMoTikuZm9yRWFjaCgoZnVuY3Rpb24odCl7aXRbTlt0XV09dH0pKTt2YXIgZHQ9JC5yZWR1Y2UoKGZ1bmN0aW9uKHQscil7dmFyIG49WVtyXTtyZXR1cm4gNjQwOT09PW58fDY0MDY9PT1ufHw2NDA5PT09bnx8NjQxMD09PW58fDY0MDI9PT1ufHwzNDA0MT09PW58fGUuZXh0X3NyZ2ImJigzNTkwND09PW58fDM1OTA2PT09bik/dFtuXT1uOjMyODU1PT09bnx8MDw9ci5pbmRleE9mKCJyZ2JhIik/dFtuXT02NDA4OnRbbl09NjQwNyx0fSkse30pLG10PVtdLGd0PVtdLHZ0PTAseXQ9e30seHQ9ci5tYXhUZXh0dXJlVW5pdHMsYnQ9QXJyYXkoeHQpLm1hcCgoZnVuY3Rpb24oKXtyZXR1cm4gbnVsbH0pKTtyZXR1cm4gaih6LnByb3RvdHlwZSx7YmluZDpmdW5jdGlvbigpe3RoaXMuYmluZENvdW50Kz0xO3ZhciBlPXRoaXMudW5pdDtpZigwPmUpe2Zvcih2YXIgcj0wO3I8eHQ7KytyKXt2YXIgbj1idFtyXTtpZihuKXtpZigwPG4uYmluZENvdW50KWNvbnRpbnVlO24udW5pdD0tMX1idFtyXT10aGlzLGU9cjticmVha31vLnByb2ZpbGUmJmEubWF4VGV4dHVyZVVuaXRzPGUrMSYmKGEubWF4VGV4dHVyZVVuaXRzPWUrMSksdGhpcy51bml0PWUsdC5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLHQuYmluZFRleHR1cmUodGhpcy50YXJnZXQsdGhpcy50ZXh0dXJlKX1yZXR1cm4gZX0sdW5iaW5kOmZ1bmN0aW9uKCl7LS10aGlzLmJpbmRDb3VudH0sZGVjUmVmOmZ1bmN0aW9uKCl7MD49LS10aGlzLnJlZkNvdW50JiZGKHRoaXMpfX0pLG8ucHJvZmlsZSYmKGEuZ2V0VG90YWxUZXh0dXJlU2l6ZT1mdW5jdGlvbigpe3ZhciB0PTA7cmV0dXJuIE9iamVjdC5rZXlzKHl0KS5mb3JFYWNoKChmdW5jdGlvbihlKXt0Kz15dFtlXS5zdGF0cy5zaXplfSkpLHR9KSx7Y3JlYXRlMkQ6ZnVuY3Rpb24oZSxyKXtmdW5jdGlvbiBuKHQsZSl7dmFyIHI9aS50ZXhJbmZvO1AuY2FsbChyKTt2YXIgYT1MKCk7cmV0dXJuIm51bWJlciI9PXR5cGVvZiB0P00oYSwwfHQsIm51bWJlciI9PXR5cGVvZiBlPzB8ZTowfHQpOnQ/KEkocix0KSxTKGEsdCkpOk0oYSwxLDEpLHIuZ2VuTWlwbWFwcyYmKGEubWlwbWFzaz0oYS53aWR0aDw8MSktMSksaS5taXBtYXNrPWEubWlwbWFzayxjKGksYSksaS5pbnRlcm5hbGZvcm1hdD1hLmludGVybmFsZm9ybWF0LG4ud2lkdGg9YS53aWR0aCxuLmhlaWdodD1hLmhlaWdodCxEKGkpLEUoYSwzNTUzKSxPKHIsMzU1MyksUigpLEMoYSksby5wcm9maWxlJiYoaS5zdGF0cy5zaXplPVQoaS5pbnRlcm5hbGZvcm1hdCxpLnR5cGUsYS53aWR0aCxhLmhlaWdodCxyLmdlbk1pcG1hcHMsITEpKSxuLmZvcm1hdD10dFtpLmludGVybmFsZm9ybWF0XSxuLnR5cGU9ZXRbaS50eXBlXSxuLm1hZz1ydFtyLm1hZ0ZpbHRlcl0sbi5taW49bnRbci5taW5GaWx0ZXJdLG4ud3JhcFM9aXRbci53cmFwU10sbi53cmFwVD1pdFtyLndyYXBUXSxufXZhciBpPW5ldyB6KDM1NTMpO3JldHVybiB5dFtpLmlkXT1pLGEudGV4dHVyZUNvdW50KyssbihlLHIpLG4uc3ViaW1hZ2U9ZnVuY3Rpb24odCxlLHIsYSl7ZXw9MCxyfD0wLGF8PTA7dmFyIG89digpO3JldHVybiBjKG8saSksby53aWR0aD0wLG8uaGVpZ2h0PTAscChvLHQpLG8ud2lkdGg9by53aWR0aHx8KGkud2lkdGg+PmEpLWUsby5oZWlnaHQ9by5oZWlnaHR8fChpLmhlaWdodD4+YSktcixEKGkpLGQobywzNTUzLGUscixhKSxSKCksayhvKSxufSxuLnJlc2l6ZT1mdW5jdGlvbihlLHIpe3ZhciBhPTB8ZSxzPTB8cnx8YTtpZihhPT09aS53aWR0aCYmcz09PWkuaGVpZ2h0KXJldHVybiBuO24ud2lkdGg9aS53aWR0aD1hLG4uaGVpZ2h0PWkuaGVpZ2h0PXMsRChpKTtmb3IodmFyIGw9MDtpLm1pcG1hc2s+Pmw7KytsKXt2YXIgYz1hPj5sLHU9cz4+bDtpZighY3x8IXUpYnJlYWs7dC50ZXhJbWFnZTJEKDM1NTMsbCxpLmZvcm1hdCxjLHUsMCxpLmZvcm1hdCxpLnR5cGUsbnVsbCl9cmV0dXJuIFIoKSxvLnByb2ZpbGUmJihpLnN0YXRzLnNpemU9VChpLmludGVybmFsZm9ybWF0LGkudHlwZSxhLHMsITEsITEpKSxufSxuLl9yZWdsVHlwZT0idGV4dHVyZTJkIixuLl90ZXh0dXJlPWksby5wcm9maWxlJiYobi5zdGF0cz1pLnN0YXRzKSxuLmRlc3Ryb3k9ZnVuY3Rpb24oKXtpLmRlY1JlZigpfSxufSxjcmVhdGVDdWJlOmZ1bmN0aW9uKGUscixuLGkscyxsKXtmdW5jdGlvbiBmKHQsZSxyLG4saSxhKXt2YXIgcyxsPWgudGV4SW5mbztmb3IoUC5jYWxsKGwpLHM9MDs2PnM7KytzKW1bc109TCgpO2lmKCJudW1iZXIiIT10eXBlb2YgdCYmdCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0KWlmKGUpUyhtWzBdLHQpLFMobVsxXSxlKSxTKG1bMl0sciksUyhtWzNdLG4pLFMobVs0XSxpKSxTKG1bNV0sYSk7ZWxzZSBpZihJKGwsdCksdShoLHQpLCJmYWNlcyJpbiB0KWZvcih0PXQuZmFjZXMscz0wOzY+czsrK3MpYyhtW3NdLGgpLFMobVtzXSx0W3NdKTtlbHNlIGZvcihzPTA7Nj5zOysrcylTKG1bc10sdCl9ZWxzZSBmb3IodD0wfHR8fDEscz0wOzY+czsrK3MpTShtW3NdLHQsdCk7Zm9yKGMoaCxtWzBdKSxoLm1pcG1hc2s9bC5nZW5NaXBtYXBzPyhtWzBdLndpZHRoPDwxKS0xOm1bMF0ubWlwbWFzayxoLmludGVybmFsZm9ybWF0PW1bMF0uaW50ZXJuYWxmb3JtYXQsZi53aWR0aD1tWzBdLndpZHRoLGYuaGVpZ2h0PW1bMF0uaGVpZ2h0LEQoaCkscz0wOzY+czsrK3MpRShtW3NdLDM0MDY5K3MpO2ZvcihPKGwsMzQwNjcpLFIoKSxvLnByb2ZpbGUmJihoLnN0YXRzLnNpemU9VChoLmludGVybmFsZm9ybWF0LGgudHlwZSxmLndpZHRoLGYuaGVpZ2h0LGwuZ2VuTWlwbWFwcywhMCkpLGYuZm9ybWF0PXR0W2guaW50ZXJuYWxmb3JtYXRdLGYudHlwZT1ldFtoLnR5cGVdLGYubWFnPXJ0W2wubWFnRmlsdGVyXSxmLm1pbj1udFtsLm1pbkZpbHRlcl0sZi53cmFwUz1pdFtsLndyYXBTXSxmLndyYXBUPWl0W2wud3JhcFRdLHM9MDs2PnM7KytzKUMobVtzXSk7cmV0dXJuIGZ9dmFyIGg9bmV3IHooMzQwNjcpO3l0W2guaWRdPWgsYS5jdWJlQ291bnQrKzt2YXIgbT1BcnJheSg2KTtyZXR1cm4gZihlLHIsbixpLHMsbCksZi5zdWJpbWFnZT1mdW5jdGlvbih0LGUscixuLGkpe3J8PTAsbnw9MCxpfD0wO3ZhciBhPXYoKTtyZXR1cm4gYyhhLGgpLGEud2lkdGg9MCxhLmhlaWdodD0wLHAoYSxlKSxhLndpZHRoPWEud2lkdGh8fChoLndpZHRoPj5pKS1yLGEuaGVpZ2h0PWEuaGVpZ2h0fHwoaC5oZWlnaHQ+PmkpLW4sRChoKSxkKGEsMzQwNjkrdCxyLG4saSksUigpLGsoYSksZn0sZi5yZXNpemU9ZnVuY3Rpb24oZSl7aWYoKGV8PTApIT09aC53aWR0aCl7Zi53aWR0aD1oLndpZHRoPWUsZi5oZWlnaHQ9aC5oZWlnaHQ9ZSxEKGgpO2Zvcih2YXIgcj0wOzY+cjsrK3IpZm9yKHZhciBuPTA7aC5taXBtYXNrPj5uOysrbil0LnRleEltYWdlMkQoMzQwNjkrcixuLGguZm9ybWF0LGU+Pm4sZT4+biwwLGguZm9ybWF0LGgudHlwZSxudWxsKTtyZXR1cm4gUigpLG8ucHJvZmlsZSYmKGguc3RhdHMuc2l6ZT1UKGguaW50ZXJuYWxmb3JtYXQsaC50eXBlLGYud2lkdGgsZi5oZWlnaHQsITEsITApKSxmfX0sZi5fcmVnbFR5cGU9InRleHR1cmVDdWJlIixmLl90ZXh0dXJlPWgsby5wcm9maWxlJiYoZi5zdGF0cz1oLnN0YXRzKSxmLmRlc3Ryb3k9ZnVuY3Rpb24oKXtoLmRlY1JlZigpfSxmfSxjbGVhcjpmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8eHQ7KytlKXQuYWN0aXZlVGV4dHVyZSgzMzk4NCtlKSx0LmJpbmRUZXh0dXJlKDM1NTMsbnVsbCksYnRbZV09bnVsbDtYKHl0KS5mb3JFYWNoKEYpLGEuY3ViZUNvdW50PTAsYS50ZXh0dXJlQ291bnQ9MH0sZ2V0VGV4dHVyZTpmdW5jdGlvbih0KXtyZXR1cm4gbnVsbH0scmVzdG9yZTpmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8eHQ7KytlKXt2YXIgcj1idFtlXTtyJiYoci5iaW5kQ291bnQ9MCxyLnVuaXQ9LTEsYnRbZV09bnVsbCl9WCh5dCkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS50ZXh0dXJlPXQuY3JlYXRlVGV4dHVyZSgpLHQuYmluZFRleHR1cmUoZS50YXJnZXQsZS50ZXh0dXJlKTtmb3IodmFyIHI9MDszMj5yOysrcilpZigwIT0oZS5taXBtYXNrJjE8PHIpKWlmKDM1NTM9PT1lLnRhcmdldCl0LnRleEltYWdlMkQoMzU1MyxyLGUuaW50ZXJuYWxmb3JtYXQsZS53aWR0aD4+cixlLmhlaWdodD4+ciwwLGUuaW50ZXJuYWxmb3JtYXQsZS50eXBlLG51bGwpO2Vsc2UgZm9yKHZhciBuPTA7Nj5uOysrbil0LnRleEltYWdlMkQoMzQwNjkrbixyLGUuaW50ZXJuYWxmb3JtYXQsZS53aWR0aD4+cixlLmhlaWdodD4+ciwwLGUuaW50ZXJuYWxmb3JtYXQsZS50eXBlLG51bGwpO08oZS50ZXhJbmZvLGUudGFyZ2V0KX0pKX0scmVmcmVzaDpmdW5jdGlvbigpe2Zvcih2YXIgZT0wO2U8eHQ7KytlKXt2YXIgcj1idFtlXTtyJiYoci5iaW5kQ291bnQ9MCxyLnVuaXQ9LTEsYnRbZV09bnVsbCksdC5hY3RpdmVUZXh0dXJlKDMzOTg0K2UpLHQuYmluZFRleHR1cmUoMzU1MyxudWxsKSx0LmJpbmRUZXh0dXJlKDM0MDY3LG51bGwpfX19fWZ1bmN0aW9uIEEodCxlLHIsbixpLGEpe2Z1bmN0aW9uIG8odCxlLHIpe3RoaXMudGFyZ2V0PXQsdGhpcy50ZXh0dXJlPWUsdGhpcy5yZW5kZXJidWZmZXI9cjt2YXIgbj10PTA7ZT8odD1lLndpZHRoLG49ZS5oZWlnaHQpOnImJih0PXIud2lkdGgsbj1yLmhlaWdodCksdGhpcy53aWR0aD10LHRoaXMuaGVpZ2h0PW59ZnVuY3Rpb24gcyh0KXt0JiYodC50ZXh0dXJlJiZ0LnRleHR1cmUuX3RleHR1cmUuZGVjUmVmKCksdC5yZW5kZXJidWZmZXImJnQucmVuZGVyYnVmZmVyLl9yZW5kZXJidWZmZXIuZGVjUmVmKCkpfWZ1bmN0aW9uIGwodCxlLHIpe3QmJih0LnRleHR1cmU/dC50ZXh0dXJlLl90ZXh0dXJlLnJlZkNvdW50Kz0xOnQucmVuZGVyYnVmZmVyLl9yZW5kZXJidWZmZXIucmVmQ291bnQrPTEpfWZ1bmN0aW9uIGMoZSxyKXtyJiYoci50ZXh0dXJlP3QuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsZSxyLnRhcmdldCxyLnRleHR1cmUuX3RleHR1cmUudGV4dHVyZSwwKTp0LmZyYW1lYnVmZmVyUmVuZGVyYnVmZmVyKDM2MTYwLGUsMzYxNjEsci5yZW5kZXJidWZmZXIuX3JlbmRlcmJ1ZmZlci5yZW5kZXJidWZmZXIpKX1mdW5jdGlvbiB1KHQpe3ZhciBlPTM1NTMscj1udWxsLG49bnVsbCxpPXQ7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYoaT10LmRhdGEsInRhcmdldCJpbiB0JiYoZT0wfHQudGFyZ2V0KSksInRleHR1cmUyZCI9PT0odD1pLl9yZWdsVHlwZSl8fCJ0ZXh0dXJlQ3ViZSI9PT10P3I9aToicmVuZGVyYnVmZmVyIj09PXQmJihuPWksZT0zNjE2MSksbmV3IG8oZSxyLG4pfWZ1bmN0aW9uIGYodCxlLHIsYSxzKXtyZXR1cm4gcj8oKHQ9bi5jcmVhdGUyRCh7d2lkdGg6dCxoZWlnaHQ6ZSxmb3JtYXQ6YSx0eXBlOnN9KSkuX3RleHR1cmUucmVmQ291bnQ9MCxuZXcgbygzNTUzLHQsbnVsbCkpOigodD1pLmNyZWF0ZSh7d2lkdGg6dCxoZWlnaHQ6ZSxmb3JtYXQ6YX0pKS5fcmVuZGVyYnVmZmVyLnJlZkNvdW50PTAsbmV3IG8oMzYxNjEsbnVsbCx0KSl9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gdCYmKHQudGV4dHVyZXx8dC5yZW5kZXJidWZmZXIpfWZ1bmN0aW9uIHAodCxlLHIpe3QmJih0LnRleHR1cmU/dC50ZXh0dXJlLnJlc2l6ZShlLHIpOnQucmVuZGVyYnVmZmVyJiZ0LnJlbmRlcmJ1ZmZlci5yZXNpemUoZSxyKSx0LndpZHRoPWUsdC5oZWlnaHQ9cil9ZnVuY3Rpb24gZCgpe3RoaXMuaWQ9VCsrLGtbdGhpcy5pZF09dGhpcyx0aGlzLmZyYW1lYnVmZmVyPXQuY3JlYXRlRnJhbWVidWZmZXIoKSx0aGlzLmhlaWdodD10aGlzLndpZHRoPTAsdGhpcy5jb2xvckF0dGFjaG1lbnRzPVtdLHRoaXMuZGVwdGhTdGVuY2lsQXR0YWNobWVudD10aGlzLnN0ZW5jaWxBdHRhY2htZW50PXRoaXMuZGVwdGhBdHRhY2htZW50PW51bGx9ZnVuY3Rpb24gbSh0KXt0LmNvbG9yQXR0YWNobWVudHMuZm9yRWFjaChzKSxzKHQuZGVwdGhBdHRhY2htZW50KSxzKHQuc3RlbmNpbEF0dGFjaG1lbnQpLHModC5kZXB0aFN0ZW5jaWxBdHRhY2htZW50KX1mdW5jdGlvbiBnKGUpe3QuZGVsZXRlRnJhbWVidWZmZXIoZS5mcmFtZWJ1ZmZlciksZS5mcmFtZWJ1ZmZlcj1udWxsLGEuZnJhbWVidWZmZXJDb3VudC0tLGRlbGV0ZSBrW2UuaWRdfWZ1bmN0aW9uIHYoZSl7dmFyIG47dC5iaW5kRnJhbWVidWZmZXIoMzYxNjAsZS5mcmFtZWJ1ZmZlcik7dmFyIGk9ZS5jb2xvckF0dGFjaG1lbnRzO2ZvcihuPTA7bjxpLmxlbmd0aDsrK24pYygzNjA2NCtuLGlbbl0pO2ZvcihuPWkubGVuZ3RoO248ci5tYXhDb2xvckF0dGFjaG1lbnRzOysrbil0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0K24sMzU1MyxudWxsLDApO3QuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzMzMDYsMzU1MyxudWxsLDApLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYwOTYsMzU1MyxudWxsLDApLHQuZnJhbWVidWZmZXJUZXh0dXJlMkQoMzYxNjAsMzYxMjgsMzU1MyxudWxsLDApLGMoMzYwOTYsZS5kZXB0aEF0dGFjaG1lbnQpLGMoMzYxMjgsZS5zdGVuY2lsQXR0YWNobWVudCksYygzMzMwNixlLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQpLHQuY2hlY2tGcmFtZWJ1ZmZlclN0YXR1cygzNjE2MCksdC5pc0NvbnRleHRMb3N0KCksdC5iaW5kRnJhbWVidWZmZXIoMzYxNjAseC5uZXh0P3gubmV4dC5mcmFtZWJ1ZmZlcjpudWxsKSx4LmN1cj14Lm5leHQsdC5nZXRFcnJvcigpfWZ1bmN0aW9uIHkodCxlKXtmdW5jdGlvbiByKHQsZSl7dmFyIGksYT0wLG89MCxzPSEwLGM9ITA7aT1udWxsO3ZhciBwPSEwLGQ9InJnYmEiLGc9InVpbnQ4Iix5PTEseD1udWxsLHc9bnVsbCxUPW51bGwsaz0hMTsibnVtYmVyIj09dHlwZW9mIHQ/KGE9MHx0LG89MHxlfHxhKTp0Pygic2hhcGUiaW4gdD8oYT0obz10LnNoYXBlKVswXSxvPW9bMV0pOigicmFkaXVzImluIHQmJihhPW89dC5yYWRpdXMpLCJ3aWR0aCJpbiB0JiYoYT10LndpZHRoKSwiaGVpZ2h0ImluIHQmJihvPXQuaGVpZ2h0KSksKCJjb2xvciJpbiB0fHwiY29sb3JzImluIHQpJiYoaT10LmNvbG9yfHx0LmNvbG9ycyxBcnJheS5pc0FycmF5KGkpKSxpfHwoImNvbG9yQ291bnQiaW4gdCYmKHk9MHx0LmNvbG9yQ291bnQpLCJjb2xvclRleHR1cmUiaW4gdCYmKHA9ISF0LmNvbG9yVGV4dHVyZSxkPSJyZ2JhNCIpLCJjb2xvclR5cGUiaW4gdCYmKGc9dC5jb2xvclR5cGUsIXApJiYoImhhbGYgZmxvYXQiPT09Z3x8ImZsb2F0MTYiPT09Zz9kPSJyZ2JhMTZmIjoiZmxvYXQiIT09ZyYmImZsb2F0MzIiIT09Z3x8KGQ9InJnYmEzMmYiKSksImNvbG9yRm9ybWF0ImluIHQmJihkPXQuY29sb3JGb3JtYXQsMDw9Yi5pbmRleE9mKGQpP3A9ITA6MDw9Xy5pbmRleE9mKGQpJiYocD0hMSkpKSwoImRlcHRoVGV4dHVyZSJpbiB0fHwiZGVwdGhTdGVuY2lsVGV4dHVyZSJpbiB0KSYmKGs9ISghdC5kZXB0aFRleHR1cmUmJiF0LmRlcHRoU3RlbmNpbFRleHR1cmUpKSwiZGVwdGgiaW4gdCYmKCJib29sZWFuIj09dHlwZW9mIHQuZGVwdGg/cz10LmRlcHRoOih4PXQuZGVwdGgsYz0hMSkpLCJzdGVuY2lsImluIHQmJigiYm9vbGVhbiI9PXR5cGVvZiB0LnN0ZW5jaWw/Yz10LnN0ZW5jaWw6KHc9dC5zdGVuY2lsLHM9ITEpKSwiZGVwdGhTdGVuY2lsImluIHQmJigiYm9vbGVhbiI9PXR5cGVvZiB0LmRlcHRoU3RlbmNpbD9zPWM9dC5kZXB0aFN0ZW5jaWw6KFQ9dC5kZXB0aFN0ZW5jaWwsYz1zPSExKSkpOmE9bz0xO3ZhciBBPW51bGwsTT1udWxsLFM9bnVsbCxFPW51bGw7aWYoQXJyYXkuaXNBcnJheShpKSlBPWkubWFwKHUpO2Vsc2UgaWYoaSlBPVt1KGkpXTtlbHNlIGZvcihBPUFycmF5KHkpLGk9MDtpPHk7KytpKUFbaV09ZihhLG8scCxkLGcpO2ZvcihhPWF8fEFbMF0ud2lkdGgsbz1vfHxBWzBdLmhlaWdodCx4P009dSh4KTpzJiYhYyYmKE09ZihhLG8saywiZGVwdGgiLCJ1aW50MzIiKSksdz9TPXUodyk6YyYmIXMmJihTPWYoYSxvLCExLCJzdGVuY2lsIiwidWludDgiKSksVD9FPXUoVCk6IXgmJiF3JiZjJiZzJiYoRT1mKGEsbyxrLCJkZXB0aCBzdGVuY2lsIiwiZGVwdGggc3RlbmNpbCIpKSxzPW51bGwsaT0wO2k8QS5sZW5ndGg7KytpKWwoQVtpXSksQVtpXSYmQVtpXS50ZXh0dXJlJiYoYz14dFtBW2ldLnRleHR1cmUuX3RleHR1cmUuZm9ybWF0XSpidFtBW2ldLnRleHR1cmUuX3RleHR1cmUudHlwZV0sbnVsbD09PXMmJihzPWMpKTtyZXR1cm4gbChNKSxsKFMpLGwoRSksbShuKSxuLndpZHRoPWEsbi5oZWlnaHQ9byxuLmNvbG9yQXR0YWNobWVudHM9QSxuLmRlcHRoQXR0YWNobWVudD1NLG4uc3RlbmNpbEF0dGFjaG1lbnQ9UyxuLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQ9RSxyLmNvbG9yPUEubWFwKGgpLHIuZGVwdGg9aChNKSxyLnN0ZW5jaWw9aChTKSxyLmRlcHRoU3RlbmNpbD1oKEUpLHIud2lkdGg9bi53aWR0aCxyLmhlaWdodD1uLmhlaWdodCx2KG4pLHJ9dmFyIG49bmV3IGQ7cmV0dXJuIGEuZnJhbWVidWZmZXJDb3VudCsrLHIodCxlKSxqKHIse3Jlc2l6ZTpmdW5jdGlvbih0LGUpe3ZhciBpPU1hdGgubWF4KDB8dCwxKSxhPU1hdGgubWF4KDB8ZXx8aSwxKTtpZihpPT09bi53aWR0aCYmYT09PW4uaGVpZ2h0KXJldHVybiByO2Zvcih2YXIgbz1uLmNvbG9yQXR0YWNobWVudHMscz0wO3M8by5sZW5ndGg7KytzKXAob1tzXSxpLGEpO3JldHVybiBwKG4uZGVwdGhBdHRhY2htZW50LGksYSkscChuLnN0ZW5jaWxBdHRhY2htZW50LGksYSkscChuLmRlcHRoU3RlbmNpbEF0dGFjaG1lbnQsaSxhKSxuLndpZHRoPXIud2lkdGg9aSxuLmhlaWdodD1yLmhlaWdodD1hLHYobikscn0sX3JlZ2xUeXBlOiJmcmFtZWJ1ZmZlciIsX2ZyYW1lYnVmZmVyOm4sZGVzdHJveTpmdW5jdGlvbigpe2cobiksbShuKX0sdXNlOmZ1bmN0aW9uKHQpe3guc2V0RkJPKHtmcmFtZWJ1ZmZlcjpyfSx0KX19KX12YXIgeD17Y3VyOm51bGwsbmV4dDpudWxsLGRpcnR5OiExLHNldEZCTzpudWxsfSxiPVsicmdiYSJdLF89WyJyZ2JhNCIsInJnYjU2NSIsInJnYjUgYTEiXTtlLmV4dF9zcmdiJiZfLnB1c2goInNyZ2JhIiksZS5leHRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQmJl8ucHVzaCgicmdiYTE2ZiIsInJnYjE2ZiIpLGUud2ViZ2xfY29sb3JfYnVmZmVyX2Zsb2F0JiZfLnB1c2goInJnYmEzMmYiKTt2YXIgdz1bInVpbnQ4Il07ZS5vZXNfdGV4dHVyZV9oYWxmX2Zsb2F0JiZ3LnB1c2goImhhbGYgZmxvYXQiLCJmbG9hdDE2IiksZS5vZXNfdGV4dHVyZV9mbG9hdCYmdy5wdXNoKCJmbG9hdCIsImZsb2F0MzIiKTt2YXIgVD0wLGs9e307cmV0dXJuIGooeCx7Z2V0RnJhbWVidWZmZXI6ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQmJiJmcmFtZWJ1ZmZlciI9PT10Ll9yZWdsVHlwZSYmKHQ9dC5fZnJhbWVidWZmZXIpaW5zdGFuY2VvZiBkP3Q6bnVsbH0sY3JlYXRlOnksY3JlYXRlQ3ViZTpmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBpLGE9e2NvbG9yOm51bGx9LG89MCxzPW51bGw7aT0icmdiYSI7dmFyIGw9InVpbnQ4IixjPTE7aWYoIm51bWJlciI9PXR5cGVvZiB0P289MHx0OnQ/KCJzaGFwZSJpbiB0P289dC5zaGFwZVswXTooInJhZGl1cyJpbiB0JiYobz0wfHQucmFkaXVzKSwid2lkdGgiaW4gdD9vPTB8dC53aWR0aDoiaGVpZ2h0ImluIHQmJihvPTB8dC5oZWlnaHQpKSwoImNvbG9yImluIHR8fCJjb2xvcnMiaW4gdCkmJihzPXQuY29sb3J8fHQuY29sb3JzLEFycmF5LmlzQXJyYXkocykpLHN8fCgiY29sb3JDb3VudCJpbiB0JiYoYz0wfHQuY29sb3JDb3VudCksImNvbG9yVHlwZSJpbiB0JiYobD10LmNvbG9yVHlwZSksImNvbG9yRm9ybWF0ImluIHQmJihpPXQuY29sb3JGb3JtYXQpKSwiZGVwdGgiaW4gdCYmKGEuZGVwdGg9dC5kZXB0aCksInN0ZW5jaWwiaW4gdCYmKGEuc3RlbmNpbD10LnN0ZW5jaWwpLCJkZXB0aFN0ZW5jaWwiaW4gdCYmKGEuZGVwdGhTdGVuY2lsPXQuZGVwdGhTdGVuY2lsKSk6bz0xLHMpaWYoQXJyYXkuaXNBcnJheShzKSlmb3IodD1bXSxpPTA7aTxzLmxlbmd0aDsrK2kpdFtpXT1zW2ldO2Vsc2UgdD1bc107ZWxzZSBmb3IodD1BcnJheShjKSxzPXtyYWRpdXM6byxmb3JtYXQ6aSx0eXBlOmx9LGk9MDtpPGM7KytpKXRbaV09bi5jcmVhdGVDdWJlKHMpO2ZvcihhLmNvbG9yPUFycmF5KHQubGVuZ3RoKSxpPTA7aTx0Lmxlbmd0aDsrK2kpYz10W2ldLG89b3x8Yy53aWR0aCxhLmNvbG9yW2ldPXt0YXJnZXQ6MzQwNjksZGF0YTp0W2ldfTtmb3IoaT0wOzY+aTsrK2kpe2ZvcihjPTA7Yzx0Lmxlbmd0aDsrK2MpYS5jb2xvcltjXS50YXJnZXQ9MzQwNjkraTswPGkmJihhLmRlcHRoPXJbMF0uZGVwdGgsYS5zdGVuY2lsPXJbMF0uc3RlbmNpbCxhLmRlcHRoU3RlbmNpbD1yWzBdLmRlcHRoU3RlbmNpbCkscltpXT9yW2ldKGEpOnJbaV09eShhKX1yZXR1cm4gaihlLHt3aWR0aDpvLGhlaWdodDpvLGNvbG9yOnR9KX12YXIgcj1BcnJheSg2KTtyZXR1cm4gZSh0KSxqKGUse2ZhY2VzOnIscmVzaXplOmZ1bmN0aW9uKHQpe3ZhciBuPTB8dDtpZihuPT09ZS53aWR0aClyZXR1cm4gZTt2YXIgaT1lLmNvbG9yO2Zvcih0PTA7dDxpLmxlbmd0aDsrK3QpaVt0XS5yZXNpemUobik7Zm9yKHQ9MDs2PnQ7Kyt0KXJbdF0ucmVzaXplKG4pO3JldHVybiBlLndpZHRoPWUuaGVpZ2h0PW4sZX0sX3JlZ2xUeXBlOiJmcmFtZWJ1ZmZlckN1YmUiLGRlc3Ryb3k6ZnVuY3Rpb24oKXtyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuZGVzdHJveSgpfSkpfX0pfSxjbGVhcjpmdW5jdGlvbigpe1goaykuZm9yRWFjaChnKX0scmVzdG9yZTpmdW5jdGlvbigpe3guY3VyPW51bGwseC5uZXh0PW51bGwseC5kaXJ0eT0hMCxYKGspLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UuZnJhbWVidWZmZXI9dC5jcmVhdGVGcmFtZWJ1ZmZlcigpLHYoZSl9KSl9fSl9ZnVuY3Rpb24gTSgpe3RoaXMudz10aGlzLno9dGhpcy55PXRoaXMueD10aGlzLnN0YXRlPTAsdGhpcy5idWZmZXI9bnVsbCx0aGlzLnNpemU9MCx0aGlzLm5vcm1hbGl6ZWQ9ITEsdGhpcy50eXBlPTUxMjYsdGhpcy5kaXZpc29yPXRoaXMuc3RyaWRlPXRoaXMub2Zmc2V0PTB9ZnVuY3Rpb24gUyh0LGUscixuLGksYSxvKXtmdW5jdGlvbiBzKCl7dGhpcy5pZD0rK2YsdGhpcy5hdHRyaWJ1dGVzPVtdLHRoaXMuZWxlbWVudHM9bnVsbCx0aGlzLm93bnNFbGVtZW50cz0hMSx0aGlzLm9mZnNldD10aGlzLmNvdW50PTAsdGhpcy5pbnN0YW5jZXM9LTEsdGhpcy5wcmltaXRpdmU9NDt2YXIgdD1lLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0O3RoaXMudmFvPXQ/dC5jcmVhdGVWZXJ0ZXhBcnJheU9FUygpOm51bGwsaFt0aGlzLmlkXT10aGlzLHRoaXMuYnVmZmVycz1bXX12YXIgYz1yLm1heEF0dHJpYnV0ZXMsdT1BcnJheShjKTtmb3Iocj0wO3I8YzsrK3IpdVtyXT1uZXcgTTt2YXIgZj0wLGg9e30scD17UmVjb3JkOk0sc2NvcGU6e30sc3RhdGU6dSxjdXJyZW50VkFPOm51bGwsdGFyZ2V0VkFPOm51bGwscmVzdG9yZTplLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0P2Z1bmN0aW9uKCl7ZS5vZXNfdmVydGV4X2FycmF5X29iamVjdCYmWChoKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LnJlZnJlc2goKX0pKX06ZnVuY3Rpb24oKXt9LGNyZWF0ZVZBTzpmdW5jdGlvbih0KXtmdW5jdGlvbiBlKHQpe3ZhciBuO0FycmF5LmlzQXJyYXkodCk/KG49dCxyLmVsZW1lbnRzJiZyLm93bnNFbGVtZW50cyYmci5lbGVtZW50cy5kZXN0cm95KCksci5lbGVtZW50cz1udWxsLHIub3duc0VsZW1lbnRzPSExLHIub2Zmc2V0PTAsci5jb3VudD0wLHIuaW5zdGFuY2VzPS0xLHIucHJpbWl0aXZlPTQpOih0LmVsZW1lbnRzPyhuPXQuZWxlbWVudHMsci5vd25zRWxlbWVudHM/KCJmdW5jdGlvbiI9PXR5cGVvZiBuJiYiZWxlbWVudHMiPT09bi5fcmVnbFR5cGU/ci5lbGVtZW50cy5kZXN0cm95KCk6ci5lbGVtZW50cyhuKSxyLm93bnNFbGVtZW50cz0hMSk6YS5nZXRFbGVtZW50cyh0LmVsZW1lbnRzKT8oci5lbGVtZW50cz10LmVsZW1lbnRzLHIub3duc0VsZW1lbnRzPSExKTooci5lbGVtZW50cz1hLmNyZWF0ZSh0LmVsZW1lbnRzKSxyLm93bnNFbGVtZW50cz0hMCkpOihyLmVsZW1lbnRzPW51bGwsci5vd25zRWxlbWVudHM9ITEpLG49dC5hdHRyaWJ1dGVzLHIub2Zmc2V0PTAsci5jb3VudD0tMSxyLmluc3RhbmNlcz0tMSxyLnByaW1pdGl2ZT00LHIuZWxlbWVudHMmJihyLmNvdW50PXIuZWxlbWVudHMuX2VsZW1lbnRzLnZlcnRDb3VudCxyLnByaW1pdGl2ZT1yLmVsZW1lbnRzLl9lbGVtZW50cy5wcmltVHlwZSksIm9mZnNldCJpbiB0JiYoci5vZmZzZXQ9MHx0Lm9mZnNldCksImNvdW50ImluIHQmJihyLmNvdW50PTB8dC5jb3VudCksImluc3RhbmNlcyJpbiB0JiYoci5pbnN0YW5jZXM9MHx0Lmluc3RhbmNlcyksInByaW1pdGl2ZSJpbiB0JiYoci5wcmltaXRpdmU9cnRbdC5wcmltaXRpdmVdKSksdD17fTt2YXIgbz1yLmF0dHJpYnV0ZXM7by5sZW5ndGg9bi5sZW5ndGg7Zm9yKHZhciBzPTA7czxuLmxlbmd0aDsrK3Mpe3ZhciBjLHU9bltzXSxmPW9bc109bmV3IE0saD11LmRhdGF8fHU7aWYoQXJyYXkuaXNBcnJheShoKXx8VyhoKXx8bChoKSlyLmJ1ZmZlcnNbc10mJihjPXIuYnVmZmVyc1tzXSxXKGgpJiZjLl9idWZmZXIuYnl0ZUxlbmd0aD49aC5ieXRlTGVuZ3RoP2Muc3ViZGF0YShoKTooYy5kZXN0cm95KCksci5idWZmZXJzW3NdPW51bGwpKSxyLmJ1ZmZlcnNbc118fChjPXIuYnVmZmVyc1tzXT1pLmNyZWF0ZSh1LDM0OTYyLCExLCEwKSksZi5idWZmZXI9aS5nZXRCdWZmZXIoYyksZi5zaXplPTB8Zi5idWZmZXIuZGltZW5zaW9uLGYubm9ybWFsaXplZD0hMSxmLnR5cGU9Zi5idWZmZXIuZHR5cGUsZi5vZmZzZXQ9MCxmLnN0cmlkZT0wLGYuZGl2aXNvcj0wLGYuc3RhdGU9MSx0W3NdPTE7ZWxzZSBpLmdldEJ1ZmZlcih1KT8oZi5idWZmZXI9aS5nZXRCdWZmZXIodSksZi5zaXplPTB8Zi5idWZmZXIuZGltZW5zaW9uLGYubm9ybWFsaXplZD0hMSxmLnR5cGU9Zi5idWZmZXIuZHR5cGUsZi5vZmZzZXQ9MCxmLnN0cmlkZT0wLGYuZGl2aXNvcj0wLGYuc3RhdGU9MSk6aS5nZXRCdWZmZXIodS5idWZmZXIpPyhmLmJ1ZmZlcj1pLmdldEJ1ZmZlcih1LmJ1ZmZlciksZi5zaXplPTB8KCt1LnNpemV8fGYuYnVmZmVyLmRpbWVuc2lvbiksZi5ub3JtYWxpemVkPSEhdS5ub3JtYWxpemVkfHwhMSxmLnR5cGU9InR5cGUiaW4gdT9LW3UudHlwZV06Zi5idWZmZXIuZHR5cGUsZi5vZmZzZXQ9MHwodS5vZmZzZXR8fDApLGYuc3RyaWRlPTB8KHUuc3RyaWRlfHwwKSxmLmRpdmlzb3I9MHwodS5kaXZpc29yfHwwKSxmLnN0YXRlPTEpOiJ4ImluIHUmJihmLng9K3UueHx8MCxmLnk9K3UueXx8MCxmLno9K3Uuenx8MCxmLnc9K3Uud3x8MCxmLnN0YXRlPTIpfWZvcihjPTA7YzxyLmJ1ZmZlcnMubGVuZ3RoOysrYykhdFtjXSYmci5idWZmZXJzW2NdJiYoci5idWZmZXJzW2NdLmRlc3Ryb3koKSxyLmJ1ZmZlcnNbY109bnVsbCk7cmV0dXJuIHIucmVmcmVzaCgpLGV9dmFyIHI9bmV3IHM7cmV0dXJuIG4udmFvQ291bnQrPTEsZS5kZXN0cm95PWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDxyLmJ1ZmZlcnMubGVuZ3RoOysrdClyLmJ1ZmZlcnNbdF0mJnIuYnVmZmVyc1t0XS5kZXN0cm95KCk7ci5idWZmZXJzLmxlbmd0aD0wLHIub3duc0VsZW1lbnRzJiYoci5lbGVtZW50cy5kZXN0cm95KCksci5lbGVtZW50cz1udWxsLHIub3duc0VsZW1lbnRzPSExKSxyLmRlc3Ryb3koKX0sZS5fdmFvPXIsZS5fcmVnbFR5cGU9InZhbyIsZSh0KX0sZ2V0VkFPOmZ1bmN0aW9uKHQpe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiB0JiZ0Ll92YW8/dC5fdmFvOm51bGx9LGRlc3Ryb3lCdWZmZXI6ZnVuY3Rpb24oZSl7Zm9yKHZhciByPTA7cjx1Lmxlbmd0aDsrK3Ipe3ZhciBuPXVbcl07bi5idWZmZXI9PT1lJiYodC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkociksbi5idWZmZXI9bnVsbCl9fSxzZXRWQU86ZS5vZXNfdmVydGV4X2FycmF5X29iamVjdD9mdW5jdGlvbih0KXtpZih0IT09cC5jdXJyZW50VkFPKXt2YXIgcj1lLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0O3Q/ci5iaW5kVmVydGV4QXJyYXlPRVModC52YW8pOnIuYmluZFZlcnRleEFycmF5T0VTKG51bGwpLHAuY3VycmVudFZBTz10fX06ZnVuY3Rpb24ocil7aWYociE9PXAuY3VycmVudFZBTyl7aWYocilyLmJpbmRBdHRycygpO2Vsc2V7Zm9yKHZhciBuPWUuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyxpPTA7aTx1Lmxlbmd0aDsrK2kpe3ZhciBhPXVbaV07YS5idWZmZXI/KHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaSksYS5idWZmZXIuYmluZCgpLHQudmVydGV4QXR0cmliUG9pbnRlcihpLGEuc2l6ZSxhLnR5cGUsYS5ub3JtYWxpemVkLGEuc3RyaWRlLGEub2ZmZnNldCksbiYmYS5kaXZpc29yJiZuLnZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRShpLGEuZGl2aXNvcikpOih0LmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheShpKSx0LnZlcnRleEF0dHJpYjRmKGksYS54LGEueSxhLnosYS53KSl9by5lbGVtZW50cz90LmJpbmRCdWZmZXIoMzQ5NjMsby5lbGVtZW50cy5idWZmZXIuYnVmZmVyKTp0LmJpbmRCdWZmZXIoMzQ5NjMsbnVsbCl9cC5jdXJyZW50VkFPPXJ9fSxjbGVhcjplLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0P2Z1bmN0aW9uKCl7WChoKS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmRlc3Ryb3koKX0pKX06ZnVuY3Rpb24oKXt9fTtyZXR1cm4gcy5wcm90b3R5cGUuYmluZEF0dHJzPWZ1bmN0aW9uKCl7Zm9yKHZhciByPWUuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyxuPXRoaXMuYXR0cmlidXRlcyxpPTA7aTxuLmxlbmd0aDsrK2kpe3ZhciBvPW5baV07by5idWZmZXI/KHQuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoaSksdC5iaW5kQnVmZmVyKDM0OTYyLG8uYnVmZmVyLmJ1ZmZlciksdC52ZXJ0ZXhBdHRyaWJQb2ludGVyKGksby5zaXplLG8udHlwZSxvLm5vcm1hbGl6ZWQsby5zdHJpZGUsby5vZmZzZXQpLHImJm8uZGl2aXNvciYmci52ZXJ0ZXhBdHRyaWJEaXZpc29yQU5HTEUoaSxvLmRpdmlzb3IpKToodC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoaSksdC52ZXJ0ZXhBdHRyaWI0ZihpLG8ueCxvLnksby56LG8udykpfWZvcihyPW4ubGVuZ3RoO3I8YzsrK3IpdC5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkocik7KHI9YS5nZXRFbGVtZW50cyh0aGlzLmVsZW1lbnRzKSk/dC5iaW5kQnVmZmVyKDM0OTYzLHIuYnVmZmVyLmJ1ZmZlcik6dC5iaW5kQnVmZmVyKDM0OTYzLG51bGwpfSxzLnByb3RvdHlwZS5yZWZyZXNoPWZ1bmN0aW9uKCl7dmFyIHQ9ZS5vZXNfdmVydGV4X2FycmF5X29iamVjdDt0JiYodC5iaW5kVmVydGV4QXJyYXlPRVModGhpcy52YW8pLHRoaXMuYmluZEF0dHJzKCkscC5jdXJyZW50VkFPPW51bGwsdC5iaW5kVmVydGV4QXJyYXlPRVMobnVsbCkpfSxzLnByb3RvdHlwZS5kZXN0cm95PWZ1bmN0aW9uKCl7aWYodGhpcy52YW8pe3ZhciB0PWUub2VzX3ZlcnRleF9hcnJheV9vYmplY3Q7dGhpcz09PXAuY3VycmVudFZBTyYmKHAuY3VycmVudFZBTz1udWxsLHQuYmluZFZlcnRleEFycmF5T0VTKG51bGwpKSx0LmRlbGV0ZVZlcnRleEFycmF5T0VTKHRoaXMudmFvKSx0aGlzLnZhbz1udWxsfXRoaXMub3duc0VsZW1lbnRzJiYodGhpcy5lbGVtZW50cy5kZXN0cm95KCksdGhpcy5lbGVtZW50cz1udWxsLHRoaXMub3duc0VsZW1lbnRzPSExKSxoW3RoaXMuaWRdJiYoZGVsZXRlIGhbdGhpcy5pZF0sLS1uLnZhb0NvdW50KX0scH1mdW5jdGlvbiBFKHQsZSxyLG4pe2Z1bmN0aW9uIGkodCxlLHIsbil7dGhpcy5uYW1lPXQsdGhpcy5pZD1lLHRoaXMubG9jYXRpb249cix0aGlzLmluZm89bn1mdW5jdGlvbiBhKHQsZSl7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3IpaWYodFtyXS5pZD09PWUuaWQpcmV0dXJuIHZvaWQodFtyXS5sb2NhdGlvbj1lLmxvY2F0aW9uKTt0LnB1c2goZSl9ZnVuY3Rpb24gbyhyLG4saSl7aWYoIShvPShpPTM1NjMyPT09cj9jOnUpW25dKSl7dmFyIGE9ZS5zdHIobiksbz10LmNyZWF0ZVNoYWRlcihyKTt0LnNoYWRlclNvdXJjZShvLGEpLHQuY29tcGlsZVNoYWRlcihvKSxpW25dPW99cmV0dXJuIG99ZnVuY3Rpb24gcyh0LGUpe3RoaXMuaWQ9cCsrLHRoaXMuZnJhZ0lkPXQsdGhpcy52ZXJ0SWQ9ZSx0aGlzLnByb2dyYW09bnVsbCx0aGlzLnVuaWZvcm1zPVtdLHRoaXMuYXR0cmlidXRlcz1bXSx0aGlzLnJlZkNvdW50PTEsbi5wcm9maWxlJiYodGhpcy5zdGF0cz17dW5pZm9ybXNDb3VudDowLGF0dHJpYnV0ZXNDb3VudDowfSl9ZnVuY3Rpb24gbChyLHMsbCl7dmFyIGM7Yz1vKDM1NjMyLHIuZnJhZ0lkKTt2YXIgdT1vKDM1NjMzLHIudmVydElkKTtpZihzPXIucHJvZ3JhbT10LmNyZWF0ZVByb2dyYW0oKSx0LmF0dGFjaFNoYWRlcihzLGMpLHQuYXR0YWNoU2hhZGVyKHMsdSksbClmb3IoYz0wO2M8bC5sZW5ndGg7KytjKXU9bFtjXSx0LmJpbmRBdHRyaWJMb2NhdGlvbihzLHVbMF0sdVsxXSk7dC5saW5rUHJvZ3JhbShzKSx1PXQuZ2V0UHJvZ3JhbVBhcmFtZXRlcihzLDM1NzE4KSxuLnByb2ZpbGUmJihyLnN0YXRzLnVuaWZvcm1zQ291bnQ9dSk7dmFyIGY9ci51bmlmb3Jtcztmb3IoYz0wO2M8dTsrK2MpaWYobD10LmdldEFjdGl2ZVVuaWZvcm0ocyxjKSl7aWYoMTxsLnNpemUpZm9yKHZhciBoPTA7aDxsLnNpemU7KytoKXt2YXIgcD1sLm5hbWUucmVwbGFjZSgiWzBdIiwiWyIraCsiXSIpO2EoZixuZXcgaShwLGUuaWQocCksdC5nZXRVbmlmb3JtTG9jYXRpb24ocyxwKSxsKSl9aD1sLm5hbWUsMTxsLnNpemUmJihoPWgucmVwbGFjZSgiWzBdIiwiIikpLGEoZixuZXcgaShoLGUuaWQoaCksdC5nZXRVbmlmb3JtTG9jYXRpb24ocyxoKSxsKSl9Zm9yKHU9dC5nZXRQcm9ncmFtUGFyYW1ldGVyKHMsMzU3MjEpLG4ucHJvZmlsZSYmKHIuc3RhdHMuYXR0cmlidXRlc0NvdW50PXUpLHI9ci5hdHRyaWJ1dGVzLGM9MDtjPHU7KytjKShsPXQuZ2V0QWN0aXZlQXR0cmliKHMsYykpJiZhKHIsbmV3IGkobC5uYW1lLGUuaWQobC5uYW1lKSx0LmdldEF0dHJpYkxvY2F0aW9uKHMsbC5uYW1lKSxsKSl9dmFyIGM9e30sdT17fSxmPXt9LGg9W10scD0wO3JldHVybiBuLnByb2ZpbGUmJihyLmdldE1heFVuaWZvcm1zQ291bnQ9ZnVuY3Rpb24oKXt2YXIgdD0wO3JldHVybiBoLmZvckVhY2goKGZ1bmN0aW9uKGUpe2Uuc3RhdHMudW5pZm9ybXNDb3VudD50JiYodD1lLnN0YXRzLnVuaWZvcm1zQ291bnQpfSkpLHR9LHIuZ2V0TWF4QXR0cmlidXRlc0NvdW50PWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gaC5mb3JFYWNoKChmdW5jdGlvbihlKXtlLnN0YXRzLmF0dHJpYnV0ZXNDb3VudD50JiYodD1lLnN0YXRzLmF0dHJpYnV0ZXNDb3VudCl9KSksdH0pLHtjbGVhcjpmdW5jdGlvbigpe3ZhciBlPXQuZGVsZXRlU2hhZGVyLmJpbmQodCk7WChjKS5mb3JFYWNoKGUpLGM9e30sWCh1KS5mb3JFYWNoKGUpLHU9e30saC5mb3JFYWNoKChmdW5jdGlvbihlKXt0LmRlbGV0ZVByb2dyYW0oZS5wcm9ncmFtKX0pKSxoLmxlbmd0aD0wLGY9e30sci5zaGFkZXJDb3VudD0wfSxwcm9ncmFtOmZ1bmN0aW9uKGUsbixpLGEpe3ZhciBvPWZbbl07b3x8KG89ZltuXT17fSk7dmFyIHA9b1tlXTtpZihwJiYocC5yZWZDb3VudCsrLCFhKSlyZXR1cm4gcDt2YXIgZD1uZXcgcyhuLGUpO3JldHVybiByLnNoYWRlckNvdW50KyssbChkLGksYSkscHx8KG9bZV09ZCksaC5wdXNoKGQpLGooZCx7ZGVzdHJveTpmdW5jdGlvbigpe2lmKGQucmVmQ291bnQtLSwwPj1kLnJlZkNvdW50KXt0LmRlbGV0ZVByb2dyYW0oZC5wcm9ncmFtKTt2YXIgZT1oLmluZGV4T2YoZCk7aC5zcGxpY2UoZSwxKSxyLnNoYWRlckNvdW50LS19MD49b1tkLnZlcnRJZF0ucmVmQ291bnQmJih0LmRlbGV0ZVNoYWRlcih1W2QudmVydElkXSksZGVsZXRlIHVbZC52ZXJ0SWRdLGRlbGV0ZSBmW2QuZnJhZ0lkXVtkLnZlcnRJZF0pLE9iamVjdC5rZXlzKGZbZC5mcmFnSWRdKS5sZW5ndGh8fCh0LmRlbGV0ZVNoYWRlcihjW2QuZnJhZ0lkXSksZGVsZXRlIGNbZC5mcmFnSWRdLGRlbGV0ZSBmW2QuZnJhZ0lkXSl9fSl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtjPXt9LHU9e307Zm9yKHZhciB0PTA7dDxoLmxlbmd0aDsrK3QpbChoW3RdLG51bGwsaFt0XS5hdHRyaWJ1dGVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuW3QubG9jYXRpb24sdC5uYW1lXX0pKSl9LHNoYWRlcjpvLGZyYWc6LTEsdmVydDotMX19ZnVuY3Rpb24gTCh0LGUscixuLGksYSxvKXtmdW5jdGlvbiBzKGkpe3ZhciBhO2E9bnVsbD09PWUubmV4dD81MTIxOmUubmV4dC5jb2xvckF0dGFjaG1lbnRzWzBdLnRleHR1cmUuX3RleHR1cmUudHlwZTt2YXIgbz0wLHM9MCxsPW4uZnJhbWVidWZmZXJXaWR0aCxjPW4uZnJhbWVidWZmZXJIZWlnaHQsdT1udWxsO3JldHVybiBXKGkpP3U9aTppJiYobz0wfGkueCxzPTB8aS55LGw9MHwoaS53aWR0aHx8bi5mcmFtZWJ1ZmZlcldpZHRoLW8pLGM9MHwoaS5oZWlnaHR8fG4uZnJhbWVidWZmZXJIZWlnaHQtcyksdT1pLmRhdGF8fG51bGwpLHIoKSxpPWwqYyo0LHV8fCg1MTIxPT09YT91PW5ldyBVaW50OEFycmF5KGkpOjUxMjY9PT1hJiYodT11fHxuZXcgRmxvYXQzMkFycmF5KGkpKSksdC5waXhlbFN0b3JlaSgzMzMzLDQpLHQucmVhZFBpeGVscyhvLHMsbCxjLDY0MDgsYSx1KSx1fXJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gdCYmImZyYW1lYnVmZmVyImluIHQ/ZnVuY3Rpb24odCl7dmFyIHI7cmV0dXJuIGUuc2V0RkJPKHtmcmFtZWJ1ZmZlcjp0LmZyYW1lYnVmZmVyfSwoZnVuY3Rpb24oKXtyPXModCl9KSkscn0odCk6cyh0KX19ZnVuY3Rpb24gQyh0KXtyZXR1cm4gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwodCl9ZnVuY3Rpb24gUCh0KXtyZXR1cm4gQyh0KS5qb2luKCIiKX1mdW5jdGlvbiBJKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfHxXKHQpfHxsKHQpfWZ1bmN0aW9uIE8odCl7cmV0dXJuIHQuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4idmlld3BvcnQiPT09dD8tMToidmlld3BvcnQiPT09ZT8xOnQ8ZT8tMToxfSkpfWZ1bmN0aW9uIHoodCxlLHIsbil7dGhpcy50aGlzRGVwPXQsdGhpcy5jb250ZXh0RGVwPWUsdGhpcy5wcm9wRGVwPXIsdGhpcy5hcHBlbmQ9bn1mdW5jdGlvbiBEKHQpe3JldHVybiB0JiYhKHQudGhpc0RlcHx8dC5jb250ZXh0RGVwfHx0LnByb3BEZXApfWZ1bmN0aW9uIFIodCl7cmV0dXJuIG5ldyB6KCExLCExLCExLHQpfWZ1bmN0aW9uIEYodCxlKXt2YXIgcj10LnR5cGU7aWYoMD09PXIpcmV0dXJuIG5ldyB6KCEwLDE8PShyPXQuZGF0YS5sZW5ndGgpLDI8PXIsZSk7aWYoND09PXIpcmV0dXJuIG5ldyB6KChyPXQuZGF0YSkudGhpc0RlcCxyLmNvbnRleHREZXAsci5wcm9wRGVwLGUpO2lmKDU9PT1yKXJldHVybiBuZXcgeighMSwhMSwhMSxlKTtpZig2PT09cil7Zm9yKHZhciBuPXI9ITEsaT0hMSxhPTA7YTx0LmRhdGEubGVuZ3RoOysrYSl7dmFyIG89dC5kYXRhW2FdOzE9PT1vLnR5cGU/aT0hMDoyPT09by50eXBlP249ITA6Mz09PW8udHlwZT9yPSEwOjA9PT1vLnR5cGU/KHI9ITAsMTw9KG89by5kYXRhKSYmKG49ITApLDI8PW8mJihpPSEwKSk6ND09PW8udHlwZSYmKHI9cnx8by5kYXRhLnRoaXNEZXAsbj1ufHxvLmRhdGEuY29udGV4dERlcCxpPWl8fG8uZGF0YS5wcm9wRGVwKX1yZXR1cm4gbmV3IHoocixuLGksZSl9cmV0dXJuIG5ldyB6KDM9PT1yLDI9PT1yLDE9PT1yLGUpfWZ1bmN0aW9uIEIodCxlLHIsbixpLG8scyxsLGMsdSxmLGgscCxkLG0pe2Z1bmN0aW9uIHYodCl7cmV0dXJuIHQucmVwbGFjZSgiLiIsIl8iKX1mdW5jdGlvbiB5KHQsZSxyKXt2YXIgbj12KHQpO290LnB1c2godCksYXRbbl09aXRbbl09ISFyLHN0W25dPWV9ZnVuY3Rpb24geCh0LGUscil7dmFyIG49dih0KTtvdC5wdXNoKHQpLEFycmF5LmlzQXJyYXkocik/KGl0W25dPXIuc2xpY2UoKSxhdFtuXT1yLnNsaWNlKCkpOml0W25dPWF0W25dPXIsbHRbbl09ZX1mdW5jdGlvbiBiKCl7dmFyIHQ9ZnVuY3Rpb24oKXtmdW5jdGlvbiB0KCl7dmFyIHQ9W10sZT1bXTtyZXR1cm4gaigoZnVuY3Rpb24oKXt0LnB1c2guYXBwbHkodCxDKGFyZ3VtZW50cykpfSkse2RlZjpmdW5jdGlvbigpe3ZhciBuPSJ2IityKys7cmV0dXJuIGUucHVzaChuKSwwPGFyZ3VtZW50cy5sZW5ndGgmJih0LnB1c2gobiwiPSIpLHQucHVzaC5hcHBseSh0LEMoYXJndW1lbnRzKSksdC5wdXNoKCI7IikpLG59LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFAoWzA8ZS5sZW5ndGg/InZhciAiK2Uuam9pbigiLCIpKyI7IjoiIixQKHQpXSl9fSl9ZnVuY3Rpb24gZSgpe2Z1bmN0aW9uIGUodCxlKXtuKHQsZSwiPSIsci5kZWYodCxlKSwiOyIpfXZhciByPXQoKSxuPXQoKSxpPXIudG9TdHJpbmcsYT1uLnRvU3RyaW5nO3JldHVybiBqKChmdW5jdGlvbigpe3IuYXBwbHkocixDKGFyZ3VtZW50cykpfSkse2RlZjpyLmRlZixlbnRyeTpyLGV4aXQ6bixzYXZlOmUsc2V0OmZ1bmN0aW9uKHQsbixpKXtlKHQsbikscih0LG4sIj0iLGksIjsiKX0sdG9TdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gaSgpK2EoKX19KX12YXIgcj0wLG49W10saT1bXSxhPXQoKSxvPXt9O3JldHVybntnbG9iYWw6YSxsaW5rOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8aS5sZW5ndGg7KytlKWlmKGlbZV09PT10KXJldHVybiBuW2VdO3JldHVybiBlPSJnIityKyssbi5wdXNoKGUpLGkucHVzaCh0KSxlfSxibG9jazp0LHByb2M6ZnVuY3Rpb24odCxyKXtmdW5jdGlvbiBuKCl7dmFyIHQ9ImEiK2kubGVuZ3RoO3JldHVybiBpLnB1c2godCksdH12YXIgaT1bXTtyPXJ8fDA7Zm9yKHZhciBhPTA7YTxyOysrYSluKCk7dmFyIHM9KGE9ZSgpKS50b1N0cmluZztyZXR1cm4gb1t0XT1qKGEse2FyZzpuLHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuIFAoWyJmdW5jdGlvbigiLGkuam9pbigpLCIpeyIscygpLCJ9Il0pfX0pfSxzY29wZTplLGNvbmQ6ZnVuY3Rpb24oKXt2YXIgdD1QKGFyZ3VtZW50cykscj1lKCksbj1lKCksaT1yLnRvU3RyaW5nLGE9bi50b1N0cmluZztyZXR1cm4gaihyLHt0aGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHIuYXBwbHkocixDKGFyZ3VtZW50cykpLHRoaXN9LGVsc2U6ZnVuY3Rpb24oKXtyZXR1cm4gbi5hcHBseShuLEMoYXJndW1lbnRzKSksdGhpc30sdG9TdHJpbmc6ZnVuY3Rpb24oKXt2YXIgZT1hKCk7cmV0dXJuIGUmJihlPSJlbHNleyIrZSsifSIpLFAoWyJpZigiLHQsIil7IixpKCksIn0iLGVdKX19KX0sY29tcGlsZTpmdW5jdGlvbigpe3ZhciB0PVsnInVzZSBzdHJpY3QiOycsYSwicmV0dXJuIHsiXTtPYmplY3Qua2V5cyhvKS5mb3JFYWNoKChmdW5jdGlvbihlKXt0LnB1c2goJyInLGUsJyI6JyxvW2VdLnRvU3RyaW5nKCksIiwiKX0pKSx0LnB1c2goIn0iKTt2YXIgZT1QKHQpLnJlcGxhY2UoLzsvZywiO1xuIikucmVwbGFjZSgvfS9nLCJ9XG4iKS5yZXBsYWNlKC97L2csIntcbiIpO3JldHVybiBGdW5jdGlvbi5hcHBseShudWxsLG4uY29uY2F0KGUpKS5hcHBseShudWxsLGkpfX19KCkscj10Lmxpbmssbj10Lmdsb2JhbDt0LmlkPWZ0KyssdC5iYXRjaElkPSIwIjt2YXIgaT1yKGN0KSxhPXQuc2hhcmVkPXtwcm9wczoiYTAifTtPYmplY3Qua2V5cyhjdCkuZm9yRWFjaCgoZnVuY3Rpb24odCl7YVt0XT1uLmRlZihpLCIuIix0KX0pKTt2YXIgbz10Lm5leHQ9e30scz10LmN1cnJlbnQ9e307T2JqZWN0LmtleXMobHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkoaXRbdF0pJiYob1t0XT1uLmRlZihhLm5leHQsIi4iLHQpLHNbdF09bi5kZWYoYS5jdXJyZW50LCIuIix0KSl9KSk7dmFyIGw9dC5jb25zdGFudHM9e307T2JqZWN0LmtleXModXQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2xbdF09bi5kZWYoSlNPTi5zdHJpbmdpZnkodXRbdF0pKX0pKSx0Lmludm9rZT1mdW5jdGlvbihlLG4pe3N3aXRjaChuLnR5cGUpe2Nhc2UgMDp2YXIgaT1bInRoaXMiLGEuY29udGV4dCxhLnByb3BzLHQuYmF0Y2hJZF07cmV0dXJuIGUuZGVmKHIobi5kYXRhKSwiLmNhbGwoIixpLnNsaWNlKDAsTWF0aC5tYXgobi5kYXRhLmxlbmd0aCsxLDQpKSwiKSIpO2Nhc2UgMTpyZXR1cm4gZS5kZWYoYS5wcm9wcyxuLmRhdGEpO2Nhc2UgMjpyZXR1cm4gZS5kZWYoYS5jb250ZXh0LG4uZGF0YSk7Y2FzZSAzOnJldHVybiBlLmRlZigidGhpcyIsbi5kYXRhKTtjYXNlIDQ6cmV0dXJuIG4uZGF0YS5hcHBlbmQodCxlKSxuLmRhdGEucmVmO2Nhc2UgNTpyZXR1cm4gbi5kYXRhLnRvU3RyaW5nKCk7Y2FzZSA2OnJldHVybiBuLmRhdGEubWFwKChmdW5jdGlvbihyKXtyZXR1cm4gdC5pbnZva2UoZSxyKX0pKX19LHQuYXR0cmliQ2FjaGU9e307dmFyIGM9e307cmV0dXJuIHQuc2NvcGVBdHRyaWI9ZnVuY3Rpb24odCl7aWYoKHQ9ZS5pZCh0KSlpbiBjKXJldHVybiBjW3RdO3ZhciBuPXUuc2NvcGVbdF07cmV0dXJuIG58fChuPXUuc2NvcGVbdF09bmV3IFEpLGNbdF09cihuKX0sdH1mdW5jdGlvbiBfKHQsZSl7dmFyIHI9dC5zdGF0aWMsbj10LmR5bmFtaWM7aWYoImZyYW1lYnVmZmVyImluIHIpe3ZhciBpPXIuZnJhbWVidWZmZXI7cmV0dXJuIGk/KGk9bC5nZXRGcmFtZWJ1ZmZlcihpKSxSKChmdW5jdGlvbih0LGUpe3ZhciByPXQubGluayhpKSxuPXQuc2hhcmVkO3JldHVybiBlLnNldChuLmZyYW1lYnVmZmVyLCIubmV4dCIsciksbj1uLmNvbnRleHQsZS5zZXQobiwiLmZyYW1lYnVmZmVyV2lkdGgiLHIrIi53aWR0aCIpLGUuc2V0KG4sIi5mcmFtZWJ1ZmZlckhlaWdodCIscisiLmhlaWdodCIpLHJ9KSkpOlIoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zaGFyZWQ7cmV0dXJuIGUuc2V0KHIuZnJhbWVidWZmZXIsIi5uZXh0IiwibnVsbCIpLHI9ci5jb250ZXh0LGUuc2V0KHIsIi5mcmFtZWJ1ZmZlcldpZHRoIixyKyIuZHJhd2luZ0J1ZmZlcldpZHRoIiksZS5zZXQociwiLmZyYW1lYnVmZmVySGVpZ2h0IixyKyIuZHJhd2luZ0J1ZmZlckhlaWdodCIpLCJudWxsIn0pKX1pZigiZnJhbWVidWZmZXIiaW4gbil7dmFyIGE9bi5mcmFtZWJ1ZmZlcjtyZXR1cm4gRihhLChmdW5jdGlvbih0LGUpe3ZhciByPXQuaW52b2tlKGUsYSksbj10LnNoYXJlZCxpPW4uZnJhbWVidWZmZXI7cj1lLmRlZihpLCIuZ2V0RnJhbWVidWZmZXIoIixyLCIpIik7cmV0dXJuIGUuc2V0KGksIi5uZXh0IixyKSxuPW4uY29udGV4dCxlLnNldChuLCIuZnJhbWVidWZmZXJXaWR0aCIscisiPyIrcisiLndpZHRoOiIrbisiLmRyYXdpbmdCdWZmZXJXaWR0aCIpLGUuc2V0KG4sIi5mcmFtZWJ1ZmZlckhlaWdodCIscisiPyIrcisiLmhlaWdodDoiK24rIi5kcmF3aW5nQnVmZmVySGVpZ2h0Iikscn0pKX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB3KHQscixuKXtmdW5jdGlvbiBpKHQpe2lmKHQgaW4gYSl7dmFyIHI9ZS5pZChhW3RdKTtyZXR1cm4odD1SKChmdW5jdGlvbigpe3JldHVybiByfSkpKS5pZD1yLHR9aWYodCBpbiBvKXt2YXIgbj1vW3RdO3JldHVybiBGKG4sKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5pbnZva2UoZSxuKTtyZXR1cm4gZS5kZWYodC5zaGFyZWQuc3RyaW5ncywiLmlkKCIsciwiKSIpfSkpfXJldHVybiBudWxsfXZhciBhPXQuc3RhdGljLG89dC5keW5hbWljLHM9aSgiZnJhZyIpLGw9aSgidmVydCIpLGM9bnVsbDtyZXR1cm4gRChzKSYmRChsKT8oYz1mLnByb2dyYW0obC5pZCxzLmlkLG51bGwsbiksdD1SKChmdW5jdGlvbih0LGUpe3JldHVybiB0LmxpbmsoYyl9KSkpOnQ9bmV3IHoocyYmcy50aGlzRGVwfHxsJiZsLnRoaXNEZXAscyYmcy5jb250ZXh0RGVwfHxsJiZsLmNvbnRleHREZXAscyYmcy5wcm9wRGVwfHxsJiZsLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXQuc2hhcmVkLnNoYWRlcjtyZXR1cm4gcj1zP3MuYXBwZW5kKHQsZSk6ZS5kZWYoaSwiLiIsImZyYWciKSxuPWw/bC5hcHBlbmQodCxlKTplLmRlZihpLCIuIiwidmVydCIpLGUuZGVmKGkrIi5wcm9ncmFtKCIrbisiLCIrcisiKSIpfSkpLHtmcmFnOnMsdmVydDpsLHByb2dWYXI6dCxwcm9ncmFtOmN9fWZ1bmN0aW9uIFQodCxlKXtmdW5jdGlvbiByKHQsZSl7aWYodCBpbiBuKXt2YXIgcj0wfG5bdF07cmV0dXJuIGU/YS5vZmZzZXQ9cjphLmluc3RhbmNlcz1yLFIoKGZ1bmN0aW9uKHQsbil7cmV0dXJuIGUmJih0Lk9GRlNFVD1yKSxyfSkpfWlmKHQgaW4gaSl7dmFyIG89aVt0XTtyZXR1cm4gRihvLChmdW5jdGlvbih0LHIpe3ZhciBuPXQuaW52b2tlKHIsbyk7cmV0dXJuIGUmJih0Lk9GRlNFVD1uKSxufSkpfWlmKGUpe2lmKGMpcmV0dXJuIFIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuT0ZGU0VUPTB9KSk7aWYocylyZXR1cm4gbmV3IHoobC50aGlzRGVwLGwuY29udGV4dERlcCxsLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGVmKHQuc2hhcmVkLnZhbysiLmN1cnJlbnRWQU8/Iit0LnNoYXJlZC52YW8rIi5jdXJyZW50VkFPLm9mZnNldDowIil9KSl9ZWxzZSBpZihzKXJldHVybiBuZXcgeihsLnRoaXNEZXAsbC5jb250ZXh0RGVwLGwucHJvcERlcCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5kZWYodC5zaGFyZWQudmFvKyIuY3VycmVudFZBTz8iK3Quc2hhcmVkLnZhbysiLmN1cnJlbnRWQU8uaW5zdGFuY2VzOi0xIil9KSk7cmV0dXJuIG51bGx9dmFyIG49dC5zdGF0aWMsaT10LmR5bmFtaWMsYT17fSxzPSExLGw9ZnVuY3Rpb24oKXtpZigidmFvImluIG4pe3ZhciB0PW4udmFvO3JldHVybiBudWxsIT09dCYmbnVsbD09PXUuZ2V0VkFPKHQpJiYodD11LmNyZWF0ZVZBTyh0KSkscz0hMCxhLnZhbz10LFIoKGZ1bmN0aW9uKGUpe3ZhciByPXUuZ2V0VkFPKHQpO3JldHVybiByP2UubGluayhyKToibnVsbCJ9KSl9aWYoInZhbyJpbiBpKXtzPSEwO3ZhciBlPWkudmFvO3JldHVybiBGKGUsKGZ1bmN0aW9uKHQscil7dmFyIG49dC5pbnZva2UocixlKTtyZXR1cm4gci5kZWYodC5zaGFyZWQudmFvKyIuZ2V0VkFPKCIrbisiKSIpfSkpfXJldHVybiBudWxsfSgpLGM9ITEsZj1mdW5jdGlvbigpe2lmKCJlbGVtZW50cyJpbiBuKXt2YXIgdD1uLmVsZW1lbnRzO2lmKGEuZWxlbWVudHM9dCxJKHQpKXt2YXIgZT1hLmVsZW1lbnRzPW8uY3JlYXRlKHQsITApO3Q9by5nZXRFbGVtZW50cyhlKTtjPSEwfWVsc2UgdCYmKHQ9by5nZXRFbGVtZW50cyh0KSxjPSEwKTtyZXR1cm4oZT1SKChmdW5jdGlvbihlLHIpe2lmKHQpe3ZhciBuPWUubGluayh0KTtyZXR1cm4gZS5FTEVNRU5UUz1ufXJldHVybiBlLkVMRU1FTlRTPW51bGx9KSkpLnZhbHVlPXQsZX1pZigiZWxlbWVudHMiaW4gaSl7Yz0hMDt2YXIgcj1pLmVsZW1lbnRzO3JldHVybiBGKHIsKGZ1bmN0aW9uKHQsZSl7dmFyIG49KGk9dC5zaGFyZWQpLmlzQnVmZmVyQXJncyxpPWkuZWxlbWVudHMsYT10Lmludm9rZShlLHIpLG89ZS5kZWYoIm51bGwiKTtuPWUuZGVmKG4sIigiLGEsIikiKSxhPXQuY29uZChuKS50aGVuKG8sIj0iLGksIi5jcmVhdGVTdHJlYW0oIixhLCIpOyIpLmVsc2UobywiPSIsaSwiLmdldEVsZW1lbnRzKCIsYSwiKTsiKTtyZXR1cm4gZS5lbnRyeShhKSxlLmV4aXQodC5jb25kKG4pLnRoZW4oaSwiLmRlc3Ryb3lTdHJlYW0oIixvLCIpOyIpKSx0LkVMRU1FTlRTPW99KSl9cmV0dXJuIHM/bmV3IHoobC50aGlzRGVwLGwuY29udGV4dERlcCxsLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGVmKHQuc2hhcmVkLnZhbysiLmN1cnJlbnRWQU8/Iit0LnNoYXJlZC5lbGVtZW50cysiLmdldEVsZW1lbnRzKCIrdC5zaGFyZWQudmFvKyIuY3VycmVudFZBTy5lbGVtZW50cyk6bnVsbCIpfSkpOm51bGx9KCksaD1yKCJvZmZzZXQiLCEwKSxwPWZ1bmN0aW9uKCl7aWYoInByaW1pdGl2ZSJpbiBuKXt2YXIgdD1uLnByaW1pdGl2ZTtyZXR1cm4gYS5wcmltaXRpdmU9dCxSKChmdW5jdGlvbihlLHIpe3JldHVybiBydFt0XX0pKX1pZigicHJpbWl0aXZlImluIGkpe3ZhciBlPWkucHJpbWl0aXZlO3JldHVybiBGKGUsKGZ1bmN0aW9uKHQscil7dmFyIG49dC5jb25zdGFudHMucHJpbVR5cGVzLGk9dC5pbnZva2UocixlKTtyZXR1cm4gci5kZWYobiwiWyIsaSwiXSIpfSkpfXJldHVybiBjP0QoZik/Zi52YWx1ZT9SKChmdW5jdGlvbih0LGUpe3JldHVybiBlLmRlZih0LkVMRU1FTlRTLCIucHJpbVR5cGUiKX0pKTpSKChmdW5jdGlvbigpe3JldHVybiA0fSkpOm5ldyB6KGYudGhpc0RlcCxmLmNvbnRleHREZXAsZi5wcm9wRGVwLChmdW5jdGlvbih0LGUpe3ZhciByPXQuRUxFTUVOVFM7cmV0dXJuIGUuZGVmKHIsIj8iLHIsIi5wcmltVHlwZToiLDQpfSkpOnM/bmV3IHoobC50aGlzRGVwLGwuY29udGV4dERlcCxsLnByb3BEZXAsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuZGVmKHQuc2hhcmVkLnZhbysiLmN1cnJlbnRWQU8/Iit0LnNoYXJlZC52YW8rIi5jdXJyZW50VkFPLnByaW1pdGl2ZTo0Iil9KSk6bnVsbH0oKSxkPWZ1bmN0aW9uKCl7aWYoImNvdW50ImluIG4pe3ZhciB0PTB8bi5jb3VudDtyZXR1cm4gYS5jb3VudD10LFIoKGZ1bmN0aW9uKCl7cmV0dXJuIHR9KSl9aWYoImNvdW50ImluIGkpe3ZhciBlPWkuY291bnQ7cmV0dXJuIEYoZSwoZnVuY3Rpb24odCxyKXtyZXR1cm4gdC5pbnZva2UocixlKX0pKX1yZXR1cm4gYz9EKGYpP2Y/aD9uZXcgeihoLnRoaXNEZXAsaC5jb250ZXh0RGVwLGgucHJvcERlcCwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5kZWYodC5FTEVNRU5UUywiLnZlcnRDb3VudC0iLHQuT0ZGU0VUKX0pKTpSKChmdW5jdGlvbih0LGUpe3JldHVybiBlLmRlZih0LkVMRU1FTlRTLCIudmVydENvdW50Iil9KSk6UigoZnVuY3Rpb24oKXtyZXR1cm4tMX0pKTpuZXcgeihmLnRoaXNEZXB8fGgudGhpc0RlcCxmLmNvbnRleHREZXB8fGguY29udGV4dERlcCxmLnByb3BEZXB8fGgucHJvcERlcCwoZnVuY3Rpb24odCxlKXt2YXIgcj10LkVMRU1FTlRTO3JldHVybiB0Lk9GRlNFVD9lLmRlZihyLCI/IixyLCIudmVydENvdW50LSIsdC5PRkZTRVQsIjotMSIpOmUuZGVmKHIsIj8iLHIsIi52ZXJ0Q291bnQ6LTEiKX0pKTpzP25ldyB6KGwudGhpc0RlcCxsLmNvbnRleHREZXAsbC5wcm9wRGVwLChmdW5jdGlvbih0LGUpe3JldHVybiBlLmRlZih0LnNoYXJlZC52YW8sIi5jdXJyZW50VkFPPyIsdC5zaGFyZWQudmFvLCIuY3VycmVudFZBTy5jb3VudDotMSIpfSkpOm51bGx9KCksbT1yKCJpbnN0YW5jZXMiLCExKTtyZXR1cm57ZWxlbWVudHM6ZixwcmltaXRpdmU6cCxjb3VudDpkLGluc3RhbmNlczptLG9mZnNldDpoLHZhbzpsLHZhb0FjdGl2ZTpzLGVsZW1lbnRzQWN0aXZlOmMsc3RhdGljOmF9fWZ1bmN0aW9uIGsodCxyKXt2YXIgbj10LnN0YXRpYyxhPXQuZHluYW1pYyxvPXt9O3JldHVybiBPYmplY3Qua2V5cyhuKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgcj1uW3RdLGE9ZS5pZCh0KSxzPW5ldyBRO2lmKEkocikpcy5zdGF0ZT0xLHMuYnVmZmVyPWkuZ2V0QnVmZmVyKGkuY3JlYXRlKHIsMzQ5NjIsITEsITApKSxzLnR5cGU9MDtlbHNlIGlmKGM9aS5nZXRCdWZmZXIocikpcy5zdGF0ZT0xLHMuYnVmZmVyPWMscy50eXBlPTA7ZWxzZSBpZigiY29uc3RhbnQiaW4gcil7dmFyIGw9ci5jb25zdGFudDtzLmJ1ZmZlcj0ibnVsbCIscy5zdGF0ZT0yLCJudW1iZXIiPT10eXBlb2YgbD9zLng9bDpfdC5mb3JFYWNoKChmdW5jdGlvbih0LGUpe2U8bC5sZW5ndGgmJihzW3RdPWxbZV0pfSkpfWVsc2V7dmFyIGM9SShyLmJ1ZmZlcik/aS5nZXRCdWZmZXIoaS5jcmVhdGUoci5idWZmZXIsMzQ5NjIsITEsITApKTppLmdldEJ1ZmZlcihyLmJ1ZmZlciksdT0wfHIub2Zmc2V0LGY9MHxyLnN0cmlkZSxoPTB8ci5zaXplLHA9ISFyLm5vcm1hbGl6ZWQsZD0wOyJ0eXBlImluIHImJihkPUtbci50eXBlXSkscj0wfHIuZGl2aXNvcixzLmJ1ZmZlcj1jLHMuc3RhdGU9MSxzLnNpemU9aCxzLm5vcm1hbGl6ZWQ9cCxzLnR5cGU9ZHx8Yy5kdHlwZSxzLm9mZnNldD11LHMuc3RyaWRlPWYscy5kaXZpc29yPXJ9b1t0XT1SKChmdW5jdGlvbih0LGUpe3ZhciByPXQuYXR0cmliQ2FjaGU7aWYoYSBpbiByKXJldHVybiByW2FdO3ZhciBuPXtpc1N0cmVhbTohMX07cmV0dXJuIE9iamVjdC5rZXlzKHMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe25bdF09c1t0XX0pKSxzLmJ1ZmZlciYmKG4uYnVmZmVyPXQubGluayhzLmJ1ZmZlciksbi50eXBlPW4udHlwZXx8bi5idWZmZXIrIi5kdHlwZSIpLHJbYV09bn0pKX0pKSxPYmplY3Qua2V5cyhhKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1hW3RdO29bdF09RihlLChmdW5jdGlvbih0LHIpe2Z1bmN0aW9uIG4odCl7cihsW3RdLCI9IixpLCIuIix0LCJ8MDsiKX12YXIgaT10Lmludm9rZShyLGUpLGE9dC5zaGFyZWQsbz10LmNvbnN0YW50cyxzPWEuaXNCdWZmZXJBcmdzLGw9KGE9YS5idWZmZXIse2lzU3RyZWFtOnIuZGVmKCExKX0pLGM9bmV3IFE7Yy5zdGF0ZT0xLE9iamVjdC5rZXlzKGMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2xbdF09ci5kZWYoIiIrY1t0XSl9KSk7dmFyIHU9bC5idWZmZXIsZj1sLnR5cGU7cmV0dXJuIHIoImlmKCIscywiKCIsaSwiKSl7IixsLmlzU3RyZWFtLCI9dHJ1ZTsiLHUsIj0iLGEsIi5jcmVhdGVTdHJlYW0oIiwzNDk2MiwiLCIsaSwiKTsiLGYsIj0iLHUsIi5kdHlwZTsiLCJ9ZWxzZXsiLHUsIj0iLGEsIi5nZXRCdWZmZXIoIixpLCIpOyIsImlmKCIsdSwiKXsiLGYsIj0iLHUsIi5kdHlwZTsiLCd9ZWxzZSBpZigiY29uc3RhbnQiIGluICcsaSwiKXsiLGwuc3RhdGUsIj0iLDIsIjsiLCJpZih0eXBlb2YgIitpKycuY29uc3RhbnQgPT09ICJudW1iZXIiKXsnLGxbX3RbMF1dLCI9IixpLCIuY29uc3RhbnQ7IixfdC5zbGljZSgxKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBsW3RdfSkpLmpvaW4oIj0iKSwiPTA7IiwifWVsc2V7IixfdC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGxbdF0rIj0iK2krIi5jb25zdGFudC5sZW5ndGg+IitlKyI/IitpKyIuY29uc3RhbnRbIitlKyJdOjA7In0pKS5qb2luKCIiKSwifX1lbHNleyIsImlmKCIscywiKCIsaSwiLmJ1ZmZlcikpeyIsdSwiPSIsYSwiLmNyZWF0ZVN0cmVhbSgiLDM0OTYyLCIsIixpLCIuYnVmZmVyKTsiLCJ9ZWxzZXsiLHUsIj0iLGEsIi5nZXRCdWZmZXIoIixpLCIuYnVmZmVyKTsiLCJ9IixmLCc9InR5cGUiIGluICcsaSwiPyIsby5nbFR5cGVzLCJbIixpLCIudHlwZV06Iix1LCIuZHR5cGU7IixsLm5vcm1hbGl6ZWQsIj0hISIsaSwiLm5vcm1hbGl6ZWQ7Iiksbigic2l6ZSIpLG4oIm9mZnNldCIpLG4oInN0cmlkZSIpLG4oImRpdmlzb3IiKSxyKCJ9fSIpLHIuZXhpdCgiaWYoIixsLmlzU3RyZWFtLCIpeyIsYSwiLmRlc3Ryb3lTdHJlYW0oIix1LCIpOyIsIn0iKSxsfSkpfSkpLG99ZnVuY3Rpb24gQSh0LGUsbixpLG8pe2Z1bmN0aW9uIHModCl7dmFyIGU9Y1t0XTtlJiYoaFt0XT1lKX12YXIgbD1mdW5jdGlvbih0LGUpe2lmKCJzdHJpbmciPT10eXBlb2Yocj10LnN0YXRpYykuZnJhZyYmInN0cmluZyI9PXR5cGVvZiByLnZlcnQpe2lmKDA8T2JqZWN0LmtleXMoZS5keW5hbWljKS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIHI9ZS5zdGF0aWMsbj1PYmplY3Qua2V5cyhyKTtpZigwPG4ubGVuZ3RoJiYibnVtYmVyIj09dHlwZW9mIHJbblswXV0pe2Zvcih2YXIgaT1bXSxhPTA7YTxuLmxlbmd0aDsrK2EpaS5wdXNoKFswfHJbblthXV0sblthXV0pO3JldHVybiBpfX1yZXR1cm4gbnVsbH0odCxlKSxjPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBuKHQpe2lmKHQgaW4gaSl7dmFyIHI9aVt0XTt0PSEwO3ZhciBuLG8scz0wfHIueCxsPTB8ci55O3JldHVybiJ3aWR0aCJpbiByP249MHxyLndpZHRoOnQ9ITEsImhlaWdodCJpbiByP289MHxyLmhlaWdodDp0PSExLG5ldyB6KCF0JiZlJiZlLnRoaXNEZXAsIXQmJmUmJmUuY29udGV4dERlcCwhdCYmZSYmZS5wcm9wRGVwLChmdW5jdGlvbih0LGUpe3ZhciBpPXQuc2hhcmVkLmNvbnRleHQsYT1uOyJ3aWR0aCJpbiByfHwoYT1lLmRlZihpLCIuIiwiZnJhbWVidWZmZXJXaWR0aCIsIi0iLHMpKTt2YXIgYz1vO3JldHVybiJoZWlnaHQiaW4gcnx8KGM9ZS5kZWYoaSwiLiIsImZyYW1lYnVmZmVySGVpZ2h0IiwiLSIsbCkpLFtzLGwsYSxjXX0pKX1pZih0IGluIGEpe3ZhciBjPWFbdF07cmV0dXJuIHQ9RihjLChmdW5jdGlvbih0LGUpe3ZhciByPXQuaW52b2tlKGUsYyksbj10LnNoYXJlZC5jb250ZXh0LGk9ZS5kZWYociwiLnh8MCIpLGE9ZS5kZWYociwiLnl8MCIpO3JldHVybltpLGEsZS5kZWYoJyJ3aWR0aCIgaW4gJyxyLCI/IixyLCIud2lkdGh8MDoiLCIoIixuLCIuIiwiZnJhbWVidWZmZXJXaWR0aCIsIi0iLGksIikiKSxyPWUuZGVmKCciaGVpZ2h0IiBpbiAnLHIsIj8iLHIsIi5oZWlnaHR8MDoiLCIoIixuLCIuIiwiZnJhbWVidWZmZXJIZWlnaHQiLCItIixhLCIpIildfSkpLGUmJih0LnRoaXNEZXA9dC50aGlzRGVwfHxlLnRoaXNEZXAsdC5jb250ZXh0RGVwPXQuY29udGV4dERlcHx8ZS5jb250ZXh0RGVwLHQucHJvcERlcD10LnByb3BEZXB8fGUucHJvcERlcCksdH1yZXR1cm4gZT9uZXcgeihlLnRoaXNEZXAsZS5jb250ZXh0RGVwLGUucHJvcERlcCwoZnVuY3Rpb24odCxlKXt2YXIgcj10LnNoYXJlZC5jb250ZXh0O3JldHVyblswLDAsZS5kZWYociwiLiIsImZyYW1lYnVmZmVyV2lkdGgiKSxlLmRlZihyLCIuIiwiZnJhbWVidWZmZXJIZWlnaHQiKV19KSk6bnVsbH12YXIgaT10LnN0YXRpYyxhPXQuZHluYW1pYztpZih0PW4oInZpZXdwb3J0Iikpe3ZhciBvPXQ7dD1uZXcgeih0LnRoaXNEZXAsdC5jb250ZXh0RGVwLHQucHJvcERlcCwoZnVuY3Rpb24odCxlKXt2YXIgcj1vLmFwcGVuZCh0LGUpLG49dC5zaGFyZWQuY29udGV4dDtyZXR1cm4gZS5zZXQobiwiLnZpZXdwb3J0V2lkdGgiLHJbMl0pLGUuc2V0KG4sIi52aWV3cG9ydEhlaWdodCIsclszXSkscn0pKX1yZXR1cm57dmlld3BvcnQ6dCxzY2lzc29yX2JveDpuKCJzY2lzc29yLmJveCIpfX0odCxkPV8odCkpLGY9VCh0KSxoPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zdGF0aWMsbj10LmR5bmFtaWMsaT17fTtyZXR1cm4gb3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShlLGEpe2lmKHQgaW4gcil7dmFyIHM9ZShyW3RdKTtpW29dPVIoKGZ1bmN0aW9uKCl7cmV0dXJuIHN9KSl9ZWxzZSBpZih0IGluIG4pe3ZhciBsPW5bdF07aVtvXT1GKGwsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEodCxlLHQuaW52b2tlKGUsbCkpfSkpfX12YXIgbz12KHQpO3N3aXRjaCh0KXtjYXNlImN1bGwuZW5hYmxlIjpjYXNlImJsZW5kLmVuYWJsZSI6Y2FzZSJkaXRoZXIiOmNhc2Uic3RlbmNpbC5lbmFibGUiOmNhc2UiZGVwdGguZW5hYmxlIjpjYXNlInNjaXNzb3IuZW5hYmxlIjpjYXNlInBvbHlnb25PZmZzZXQuZW5hYmxlIjpjYXNlInNhbXBsZS5hbHBoYSI6Y2FzZSJzYW1wbGUuZW5hYmxlIjpjYXNlImRlcHRoLm1hc2siOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pLChmdW5jdGlvbih0LGUscil7cmV0dXJuIHJ9KSk7Y2FzZSJkZXB0aC5mdW5jIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuIGt0W3RdfSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZS5kZWYodC5jb25zdGFudHMuY29tcGFyZUZ1bmNzLCJbIixyLCJdIil9KSk7Y2FzZSJkZXB0aC5yYW5nZSI6cmV0dXJuIGUoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZS5kZWYoIisiLHIsIlswXSIpLGU9ZS5kZWYoIisiLHIsIlsxXSIpXX0pKTtjYXNlImJsZW5kLmZ1bmMiOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm5bVHRbInNyY1JHQiJpbiB0P3Quc3JjUkdCOnQuc3JjXSxUdFsiZHN0UkdCImluIHQ/dC5kc3RSR0I6dC5kc3RdLFR0WyJzcmNBbHBoYSJpbiB0P3Quc3JjQWxwaGE6dC5zcmNdLFR0WyJkc3RBbHBoYSJpbiB0P3QuZHN0QWxwaGE6dC5kc3RdXX0pLChmdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbih0LG4pe3JldHVybiBlLmRlZignIicsdCxuLCciIGluICcsciwiPyIsciwiLiIsdCxuLCI6IixyLCIuIix0KX10PXQuY29uc3RhbnRzLmJsZW5kRnVuY3M7dmFyIGk9bigic3JjIiwiUkdCIiksYT1uKCJkc3QiLCJSR0IiKSxvPShpPWUuZGVmKHQsIlsiLGksIl0iKSxlLmRlZih0LCJbIixuKCJzcmMiLCJBbHBoYSIpLCJdIikpO3JldHVybltpLGE9ZS5kZWYodCwiWyIsYSwiXSIpLG8sdD1lLmRlZih0LCJbIixuKCJkc3QiLCJBbHBoYSIpLCJdIildfSkpO2Nhc2UiYmxlbmQuZXF1YXRpb24iOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/WyRbdF0sJFt0XV06Im9iamVjdCI9PXR5cGVvZiB0P1skW3QucmdiXSwkW3QuYWxwaGFdXTp2b2lkIDB9KSwoZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuY29uc3RhbnRzLmJsZW5kRXF1YXRpb25zLGk9ZS5kZWYoKSxhPWUuZGVmKCk7cmV0dXJuKHQ9dC5jb25kKCJ0eXBlb2YgIixyLCc9PT0ic3RyaW5nIicpKS50aGVuKGksIj0iLGEsIj0iLG4sIlsiLHIsIl07IiksdC5lbHNlKGksIj0iLG4sIlsiLHIsIi5yZ2JdOyIsYSwiPSIsbiwiWyIsciwiLmFscGhhXTsiKSxlKHQpLFtpLGFdfSkpO2Nhc2UiYmxlbmQuY29sb3IiOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm4gYSg0LChmdW5jdGlvbihlKXtyZXR1cm4rdFtlXX0pKX0pLChmdW5jdGlvbih0LGUscil7cmV0dXJuIGEoNCwoZnVuY3Rpb24odCl7cmV0dXJuIGUuZGVmKCIrIixyLCJbIix0LCJdIil9KSl9KSk7Y2FzZSJzdGVuY2lsLm1hc2siOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm4gMHx0fSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZS5kZWYociwifDAiKX0pKTtjYXNlInN0ZW5jaWwuZnVuYyI6cmV0dXJuIGUoKGZ1bmN0aW9uKHQpe3JldHVybltrdFt0LmNtcHx8ImtlZXAiXSx0LnJlZnx8MCwibWFzayJpbiB0P3QubWFzazotMV19KSwoZnVuY3Rpb24odCxlLHIpe3JldHVyblt0PWUuZGVmKCciY21wIiBpbiAnLHIsIj8iLHQuY29uc3RhbnRzLmNvbXBhcmVGdW5jcywiWyIsciwiLmNtcF0iLCI6Iiw3NjgwKSxlLmRlZihyLCIucmVmfDAiKSxlPWUuZGVmKCcibWFzayIgaW4gJyxyLCI/IixyLCIubWFza3wwOi0xIildfSkpO2Nhc2Uic3RlbmNpbC5vcEZyb250IjpjYXNlInN0ZW5jaWwub3BCYWNrIjpyZXR1cm4gZSgoZnVuY3Rpb24oZSl7cmV0dXJuWyJzdGVuY2lsLm9wQmFjayI9PT10PzEwMjk6MTAyOCxBdFtlLmZhaWx8fCJrZWVwIl0sQXRbZS56ZmFpbHx8ImtlZXAiXSxBdFtlLnpwYXNzfHwia2VlcCJdXX0pLChmdW5jdGlvbihlLHIsbil7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gci5kZWYoJyInLHQsJyIgaW4gJyxuLCI/IixhLCJbIixuLCIuIix0LCJdOiIsNzY4MCl9dmFyIGE9ZS5jb25zdGFudHMuc3RlbmNpbE9wcztyZXR1cm5bInN0ZW5jaWwub3BCYWNrIj09PXQ/MTAyOToxMDI4LGkoImZhaWwiKSxpKCJ6ZmFpbCIpLGkoInpwYXNzIildfSkpO2Nhc2UicG9seWdvbk9mZnNldC5vZmZzZXQiOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm5bMHx0LmZhY3RvciwwfHQudW5pdHNdfSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZS5kZWYociwiLmZhY3RvcnwwIiksZT1lLmRlZihyLCIudW5pdHN8MCIpXX0pKTtjYXNlImN1bGwuZmFjZSI6cmV0dXJuIGUoKGZ1bmN0aW9uKHQpe3ZhciBlPTA7cmV0dXJuImZyb250Ij09PXQ/ZT0xMDI4OiJiYWNrIj09PXQmJihlPTEwMjkpLGV9KSwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlLmRlZihyLCc9PT0iZnJvbnQiPycsMTAyOCwiOiIsMTAyOSl9KSk7Y2FzZSJsaW5lV2lkdGgiOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pLChmdW5jdGlvbih0LGUscil7cmV0dXJuIHJ9KSk7Y2FzZSJmcm9udEZhY2UiOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm4gTXRbdF19KSwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBlLmRlZihyKyc9PT0iY3ciPzIzMDQ6MjMwNScpfSkpO2Nhc2UiY29sb3JNYXNrIjpyZXR1cm4gZSgoZnVuY3Rpb24odCl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4hIXR9KSl9KSwoZnVuY3Rpb24odCxlLHIpe3JldHVybiBhKDQsKGZ1bmN0aW9uKHQpe3JldHVybiIhISIrcisiWyIrdCsiXSJ9KSl9KSk7Y2FzZSJzYW1wbGUuY292ZXJhZ2UiOnJldHVybiBlKChmdW5jdGlvbih0KXtyZXR1cm5bInZhbHVlImluIHQ/dC52YWx1ZToxLCEhdC5pbnZlcnRdfSksKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZS5kZWYoJyJ2YWx1ZSIgaW4gJyxyLCI/KyIsciwiLnZhbHVlOjEiKSxlPWUuZGVmKCIhISIsciwiLmludmVydCIpXX0pKX19KSksaX0odCkscD13KHQsMCxsKTtzKCJ2aWV3cG9ydCIpLHModigic2Npc3Nvci5ib3giKSk7dmFyIGQsbT0wPE9iamVjdC5rZXlzKGgpLmxlbmd0aDtpZigoZD17ZnJhbWVidWZmZXI6ZCxkcmF3OmYsc2hhZGVyOnAsc3RhdGU6aCxkaXJ0eTptLHNjb3BlVkFPOm51bGwsZHJhd1ZBTzpudWxsLHVzZVZBTzohMSxhdHRyaWJ1dGVzOnt9fSkucHJvZmlsZT1mdW5jdGlvbih0KXt2YXIgZSxyPXQuc3RhdGljO2lmKHQ9dC5keW5hbWljLCJwcm9maWxlImluIHIpe3ZhciBuPSEhci5wcm9maWxlOyhlPVIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIG59KSkpLmVuYWJsZT1ufWVsc2UgaWYoInByb2ZpbGUiaW4gdCl7dmFyIGk9dC5wcm9maWxlO2U9RihpLChmdW5jdGlvbih0LGUpe3JldHVybiB0Lmludm9rZShlLGkpfSkpfXJldHVybiBlfSh0KSxkLnVuaWZvcm1zPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zdGF0aWMsbj10LmR5bmFtaWMsaT17fTtyZXR1cm4gT2JqZWN0LmtleXMocikuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGUsbj1yW3RdO2lmKCJudW1iZXIiPT10eXBlb2Ygbnx8ImJvb2xlYW4iPT10eXBlb2YgbillPVIoKGZ1bmN0aW9uKCl7cmV0dXJuIG59KSk7ZWxzZSBpZigiZnVuY3Rpb24iPT10eXBlb2Ygbil7dmFyIG89bi5fcmVnbFR5cGU7InRleHR1cmUyZCI9PT1vfHwidGV4dHVyZUN1YmUiPT09bz9lPVIoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxpbmsobil9KSk6ImZyYW1lYnVmZmVyIiE9PW8mJiJmcmFtZWJ1ZmZlckN1YmUiIT09b3x8KGU9UigoZnVuY3Rpb24odCl7cmV0dXJuIHQubGluayhuLmNvbG9yWzBdKX0pKSl9ZWxzZSBnKG4pJiYoZT1SKChmdW5jdGlvbih0KXtyZXR1cm4gdC5nbG9iYWwuZGVmKCJbIixhKG4ubGVuZ3RoLChmdW5jdGlvbih0KXtyZXR1cm4gblt0XX0pKSwiXSIpfSkpKTtlLnZhbHVlPW4saVt0XT1lfSkpLE9iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW5bdF07aVt0XT1GKGUsKGZ1bmN0aW9uKHQscil7cmV0dXJuIHQuaW52b2tlKHIsZSl9KSl9KSksaX0obiksZC5kcmF3VkFPPWQuc2NvcGVWQU89Zi52YW8sIWQuZHJhd1ZBTyYmcC5wcm9ncmFtJiYhbCYmci5hbmdsZV9pbnN0YW5jZWRfYXJyYXlzJiZmLnN0YXRpYy5lbGVtZW50cyl7dmFyIHk9ITA7aWYodD1wLnByb2dyYW0uYXR0cmlidXRlcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0PWUuc3RhdGljW3RdLHk9eSYmISF0LHR9KSkseSYmMDx0Lmxlbmd0aCl7dmFyIHg9dS5nZXRWQU8odS5jcmVhdGVWQU8oe2F0dHJpYnV0ZXM6dCxlbGVtZW50czpmLnN0YXRpYy5lbGVtZW50c30pKTtkLmRyYXdWQU89bmV3IHoobnVsbCxudWxsLG51bGwsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubGluayh4KX0pKSxkLnVzZVZBTz0hMH19cmV0dXJuIGw/ZC51c2VWQU89ITA6ZC5hdHRyaWJ1dGVzPWsoZSksZC5jb250ZXh0PWZ1bmN0aW9uKHQpe3ZhciBlPXQuc3RhdGljLHI9dC5keW5hbWljLG49e307cmV0dXJuIE9iamVjdC5rZXlzKGUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPWVbdF07blt0XT1SKChmdW5jdGlvbih0LGUpe3JldHVybiJudW1iZXIiPT10eXBlb2Ygcnx8ImJvb2xlYW4iPT10eXBlb2Ygcj8iIityOnQubGluayhyKX0pKX0pKSxPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1yW3RdO25bdF09RihlLChmdW5jdGlvbih0LHIpe3JldHVybiB0Lmludm9rZShyLGUpfSkpfSkpLG59KGkpLGR9ZnVuY3Rpb24gTSh0LGUscil7dmFyIG49dC5zaGFyZWQuY29udGV4dCxpPXQuc2NvcGUoKTtPYmplY3Qua2V5cyhyKS5mb3JFYWNoKChmdW5jdGlvbihhKXtlLnNhdmUobiwiLiIrYSk7dmFyIG89clthXS5hcHBlbmQodCxlKTtBcnJheS5pc0FycmF5KG8pP2kobiwiLiIsYSwiPVsiLG8uam9pbigpLCJdOyIpOmkobiwiLiIsYSwiPSIsbywiOyIpfSkpLGUoaSl9ZnVuY3Rpb24gUyh0LGUscixuKXt2YXIgaSxhPShzPXQuc2hhcmVkKS5nbCxvPXMuZnJhbWVidWZmZXI7ZXQmJihpPWUuZGVmKHMuZXh0ZW5zaW9ucywiLndlYmdsX2RyYXdfYnVmZmVycyIpKTt2YXIgcz0obD10LmNvbnN0YW50cykuZHJhd0J1ZmZlcixsPWwuYmFja0J1ZmZlcjt0PXI/ci5hcHBlbmQodCxlKTplLmRlZihvLCIubmV4dCIpLG58fGUoImlmKCIsdCwiIT09IixvLCIuY3VyKXsiKSxlKCJpZigiLHQsIil7IixhLCIuYmluZEZyYW1lYnVmZmVyKCIsMzYxNjAsIiwiLHQsIi5mcmFtZWJ1ZmZlcik7IiksZXQmJmUoaSwiLmRyYXdCdWZmZXJzV0VCR0woIixzLCJbIix0LCIuY29sb3JBdHRhY2htZW50cy5sZW5ndGhdKTsiKSxlKCJ9ZWxzZXsiLGEsIi5iaW5kRnJhbWVidWZmZXIoIiwzNjE2MCwiLG51bGwpOyIpLGV0JiZlKGksIi5kcmF3QnVmZmVyc1dFQkdMKCIsbCwiKTsiKSxlKCJ9IixvLCIuY3VyPSIsdCwiOyIpLG58fGUoIn0iKX1mdW5jdGlvbiBFKHQsZSxyKXt2YXIgbj10LnNoYXJlZCxpPW4uZ2wsbz10LmN1cnJlbnQscz10Lm5leHQsbD1uLmN1cnJlbnQsYz1uLm5leHQsdT10LmNvbmQobCwiLmRpcnR5Iik7b3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIG4sZjtpZighKChlPXYoZSkpaW4gci5zdGF0ZSkpaWYoZSBpbiBzKXtuPXNbZV0sZj1vW2VdO3ZhciBoPWEoaXRbZV0ubGVuZ3RoLChmdW5jdGlvbih0KXtyZXR1cm4gdS5kZWYobiwiWyIsdCwiXSIpfSkpO3UodC5jb25kKGgubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiB0KyIhPT0iK2YrIlsiK2UrIl0ifSkpLmpvaW4oInx8IikpLnRoZW4oaSwiLiIsbHRbZV0sIigiLGgsIik7IixoLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZisiWyIrZSsiXT0iK3R9KSkuam9pbigiOyIpLCI7IikpfWVsc2Ugbj11LmRlZihjLCIuIixlKSxoPXQuY29uZChuLCIhPT0iLGwsIi4iLGUpLHUoaCksZSBpbiBzdD9oKHQuY29uZChuKS50aGVuKGksIi5lbmFibGUoIixzdFtlXSwiKTsiKS5lbHNlKGksIi5kaXNhYmxlKCIsc3RbZV0sIik7IiksbCwiLiIsZSwiPSIsbiwiOyIpOmgoaSwiLiIsbHRbZV0sIigiLG4sIik7IixsLCIuIixlLCI9IixuLCI7Iil9KSksMD09PU9iamVjdC5rZXlzKHIuc3RhdGUpLmxlbmd0aCYmdShsLCIuZGlydHk9ZmFsc2U7IiksZSh1KX1mdW5jdGlvbiBMKHQsZSxyLG4pe3ZhciBpPXQuc2hhcmVkLGE9dC5jdXJyZW50LG89aS5jdXJyZW50LHM9aS5nbDtPKE9iamVjdC5rZXlzKHIpKS5mb3JFYWNoKChmdW5jdGlvbihpKXt2YXIgbD1yW2ldO2lmKCFufHxuKGwpKXt2YXIgYz1sLmFwcGVuZCh0LGUpO2lmKHN0W2ldKXt2YXIgdT1zdFtpXTtEKGwpP2UocyxjPyIuZW5hYmxlKCI6Ii5kaXNhYmxlKCIsdSwiKTsiKTplKHQuY29uZChjKS50aGVuKHMsIi5lbmFibGUoIix1LCIpOyIpLmVsc2UocywiLmRpc2FibGUoIix1LCIpOyIpKSxlKG8sIi4iLGksIj0iLGMsIjsiKX1lbHNlIGlmKGcoYykpe3ZhciBmPWFbaV07ZShzLCIuIixsdFtpXSwiKCIsYywiKTsiLGMubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBmKyJbIitlKyJdPSIrdH0pKS5qb2luKCI7IiksIjsiKX1lbHNlIGUocywiLiIsbHRbaV0sIigiLGMsIik7IixvLCIuIixpLCI9IixjLCI7Iil9fSkpfWZ1bmN0aW9uIEIodCxlKXt0dCYmKHQuaW5zdGFuY2luZz1lLmRlZih0LnNoYXJlZC5leHRlbnNpb25zLCIuYW5nbGVfaW5zdGFuY2VkX2FycmF5cyIpKX1mdW5jdGlvbiBOKHQsZSxyLG4saSl7ZnVuY3Rpb24gYSgpe3JldHVybiJ1bmRlZmluZWQiPT10eXBlb2YgcGVyZm9ybWFuY2U/IkRhdGUubm93KCkiOiJwZXJmb3JtYW5jZS5ub3coKSJ9ZnVuY3Rpb24gbyh0KXt0KGM9ZS5kZWYoKSwiPSIsYSgpLCI7IiksInN0cmluZyI9PXR5cGVvZiBpP3QoaCwiLmNvdW50Kz0iLGksIjsiKTp0KGgsIi5jb3VudCsrOyIpLGQmJihuP3QodT1lLmRlZigpLCI9IixtLCIuZ2V0TnVtUGVuZGluZ1F1ZXJpZXMoKTsiKTp0KG0sIi5iZWdpblF1ZXJ5KCIsaCwiKTsiKSl9ZnVuY3Rpb24gcyh0KXt0KGgsIi5jcHVUaW1lKz0iLGEoKSwiLSIsYywiOyIpLGQmJihuP3QobSwiLnB1c2hTY29wZVN0YXRzKCIsdSwiLCIsbSwiLmdldE51bVBlbmRpbmdRdWVyaWVzKCksIixoLCIpOyIpOnQobSwiLmVuZFF1ZXJ5KCk7IikpfWZ1bmN0aW9uIGwodCl7dmFyIHI9ZS5kZWYocCwiLnByb2ZpbGUiKTtlKHAsIi5wcm9maWxlPSIsdCwiOyIpLGUuZXhpdChwLCIucHJvZmlsZT0iLHIsIjsiKX12YXIgYyx1LGY9dC5zaGFyZWQsaD10LnN0YXRzLHA9Zi5jdXJyZW50LG09Zi50aW1lcjtpZihyPXIucHJvZmlsZSl7aWYoRChyKSlyZXR1cm4gdm9pZChyLmVuYWJsZT8obyhlKSxzKGUuZXhpdCksbCgidHJ1ZSIpKTpsKCJmYWxzZSIpKTtsKHI9ci5hcHBlbmQodCxlKSl9ZWxzZSByPWUuZGVmKHAsIi5wcm9maWxlIik7byhmPXQuYmxvY2soKSksZSgiaWYoIixyLCIpeyIsZiwifSIpLHModD10LmJsb2NrKCkpLGUuZXhpdCgiaWYoIixyLCIpeyIsdCwifSIpfWZ1bmN0aW9uIFUodCxlLHIsbixpKXtmdW5jdGlvbiBhKHIsbixpKXtmdW5jdGlvbiBhKCl7ZSgiaWYoISIsdSwiLmJ1ZmZlcil7IixsLCIuZW5hYmxlVmVydGV4QXR0cmliQXJyYXkoIixjLCIpO30iKTt2YXIgcixhPWkudHlwZTtyPWkuc2l6ZT9lLmRlZihpLnNpemUsInx8IixuKTpuLGUoImlmKCIsdSwiLnR5cGUhPT0iLGEsInx8Iix1LCIuc2l6ZSE9PSIsciwifHwiLHAubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdSsiLiIrdCsiIT09IitpW3RdfSkpLmpvaW4oInx8IiksIil7IixsLCIuYmluZEJ1ZmZlcigiLDM0OTYyLCIsIixmLCIuYnVmZmVyKTsiLGwsIi52ZXJ0ZXhBdHRyaWJQb2ludGVyKCIsW2MscixhLGkubm9ybWFsaXplZCxpLnN0cmlkZSxpLm9mZnNldF0sIik7Iix1LCIudHlwZT0iLGEsIjsiLHUsIi5zaXplPSIsciwiOyIscC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB1KyIuIit0KyI9IitpW3RdKyI7In0pKS5qb2luKCIiKSwifSIpLHR0JiYoYT1pLmRpdmlzb3IsZSgiaWYoIix1LCIuZGl2aXNvciE9PSIsYSwiKXsiLHQuaW5zdGFuY2luZywiLnZlcnRleEF0dHJpYkRpdmlzb3JBTkdMRSgiLFtjLGFdLCIpOyIsdSwiLmRpdmlzb3I9IixhLCI7fSIpKX1mdW5jdGlvbiBzKCl7ZSgiaWYoIix1LCIuYnVmZmVyKXsiLGwsIi5kaXNhYmxlVmVydGV4QXR0cmliQXJyYXkoIixjLCIpOyIsdSwiLmJ1ZmZlcj1udWxsOyIsIn1pZigiLF90Lm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdSsiLiIrdCsiIT09IitoW2VdfSkpLmpvaW4oInx8IiksIil7IixsLCIudmVydGV4QXR0cmliNGYoIixjLCIsIixoLCIpOyIsX3QubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiB1KyIuIit0KyI9IitoW2VdKyI7In0pKS5qb2luKCIiKSwifSIpfXZhciBsPW8uZ2wsYz1lLmRlZihyLCIubG9jYXRpb24iKSx1PWUuZGVmKG8uYXR0cmlidXRlcywiWyIsYywiXSIpO3I9aS5zdGF0ZTt2YXIgZj1pLmJ1ZmZlcixoPVtpLngsaS55LGkueixpLnddLHA9WyJidWZmZXIiLCJub3JtYWxpemVkIiwib2Zmc2V0Iiwic3RyaWRlIl07MT09PXI/YSgpOjI9PT1yP3MoKTooZSgiaWYoIixyLCI9PT0iLDEsIil7IiksYSgpLGUoIn1lbHNleyIpLHMoKSxlKCJ9IikpfXZhciBvPXQuc2hhcmVkO24uZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIG8scz1uLm5hbWUsbD1yLmF0dHJpYnV0ZXNbc107aWYobCl7aWYoIWkobCkpcmV0dXJuO289bC5hcHBlbmQodCxlKX1lbHNle2lmKCFpKFN0KSlyZXR1cm47dmFyIGM9dC5zY29wZUF0dHJpYihzKTtvPXt9LE9iamVjdC5rZXlzKG5ldyBRKS5mb3JFYWNoKChmdW5jdGlvbih0KXtvW3RdPWUuZGVmKGMsIi4iLHQpfSkpfWEodC5saW5rKG4pLGZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIDM1NjY0OmNhc2UgMzU2Njc6Y2FzZSAzNTY3MTpyZXR1cm4gMjtjYXNlIDM1NjY1OmNhc2UgMzU2Njg6Y2FzZSAzNTY3MjpyZXR1cm4gMztjYXNlIDM1NjY2OmNhc2UgMzU2Njk6Y2FzZSAzNTY3MzpyZXR1cm4gNDtkZWZhdWx0OnJldHVybiAxfX0obi5pbmZvLnR5cGUpLG8pfSkpfWZ1bmN0aW9uIEgodCxyLG4saSxvLHMpe2Zvcih2YXIgbCxjPXQuc2hhcmVkLHU9Yy5nbCxmPXt9LGg9MDtoPGkubGVuZ3RoOysraCl7dmFyIHA9KGI9aVtoXSkubmFtZSxkPWIuaW5mby50eXBlLG09Yi5pbmZvLnNpemUsdj1uLnVuaWZvcm1zW3BdO2lmKDE8bSl7aWYoIXYpY29udGludWU7dmFyIHk9cC5yZXBsYWNlKCJbMF0iLCIiKTtpZihmW3ldKWNvbnRpbnVlO2ZbeV09MX12YXIgeCxiPXQubGluayhiKSsiLmxvY2F0aW9uIjtpZih2KXtpZighbyh2KSljb250aW51ZTtpZihEKHYpKXtpZihwPXYudmFsdWUsMzU2Nzg9PT1kfHwzNTY4MD09PWQpcih1LCIudW5pZm9ybTFpKCIsYiwiLCIsKGQ9dC5saW5rKHAuX3RleHR1cmV8fHAuY29sb3JbMF0uX3RleHR1cmUpKSsiLmJpbmQoKSk7Iiksci5leGl0KGQsIi51bmJpbmQoKTsiKTtlbHNlIGlmKDM1Njc0PT09ZHx8MzU2NzU9PT1kfHwzNTY3Nj09PWQpbT10Lmdsb2JhbC5kZWYoIm5ldyBGbG9hdDMyQXJyYXkoWyIrQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocCkrIl0pIikscD0yLDM1Njc1PT09ZD9wPTM6MzU2NzY9PT1kJiYocD00KSxyKHUsIi51bmlmb3JtTWF0cml4IixwLCJmdigiLGIsIixmYWxzZSwiLG0sIik7Iik7ZWxzZXtzd2l0Y2goZCl7Y2FzZSA1MTI2Omw9IjFmIjticmVhaztjYXNlIDM1NjY0Omw9IjJmIjticmVhaztjYXNlIDM1NjY1Omw9IjNmIjticmVhaztjYXNlIDM1NjY2Omw9IjRmIjticmVhaztjYXNlIDM1NjcwOmNhc2UgNTEyNDpsPSIxaSI7YnJlYWs7Y2FzZSAzNTY3MTpjYXNlIDM1NjY3Omw9IjJpIjticmVhaztjYXNlIDM1NjcyOmNhc2UgMzU2Njg6bD0iM2kiO2JyZWFrO2Nhc2UgMzU2NzM6bD0iNGkiO2JyZWFrO2Nhc2UgMzU2Njk6bD0iNGkifTE8bT8obCs9InYiLHA9dC5nbG9iYWwuZGVmKCJbIitBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwKSsiXSIpKTpwPWcocCk/QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwocCk6cCxyKHUsIi51bmlmb3JtIixsLCIoIixiLCIsIixwLCIpOyIpfWNvbnRpbnVlfXg9di5hcHBlbmQodCxyKX1lbHNle2lmKCFvKFN0KSljb250aW51ZTt4PXIuZGVmKGMudW5pZm9ybXMsIlsiLGUuaWQocCksIl0iKX1zd2l0Y2goMzU2Nzg9PT1kP3IoImlmKCIseCwiJiYiLHgsJy5fcmVnbFR5cGU9PT0iZnJhbWVidWZmZXIiKXsnLHgsIj0iLHgsIi5jb2xvclswXTsiLCJ9Iik6MzU2ODA9PT1kJiZyKCJpZigiLHgsIiYmIix4LCcuX3JlZ2xUeXBlPT09ImZyYW1lYnVmZmVyQ3ViZSIpeycseCwiPSIseCwiLmNvbG9yWzBdOyIsIn0iKSxwPTEsZCl7Y2FzZSAzNTY3ODpjYXNlIDM1NjgwOmQ9ci5kZWYoeCwiLl90ZXh0dXJlIikscih1LCIudW5pZm9ybTFpKCIsYiwiLCIsZCwiLmJpbmQoKSk7Iiksci5leGl0KGQsIi51bmJpbmQoKTsiKTtjb250aW51ZTtjYXNlIDUxMjQ6Y2FzZSAzNTY3MDpsPSIxaSI7YnJlYWs7Y2FzZSAzNTY2NzpjYXNlIDM1NjcxOmw9IjJpIixwPTI7YnJlYWs7Y2FzZSAzNTY2ODpjYXNlIDM1NjcyOmw9IjNpIixwPTM7YnJlYWs7Y2FzZSAzNTY2OTpjYXNlIDM1NjczOmw9IjRpIixwPTQ7YnJlYWs7Y2FzZSA1MTI2Omw9IjFmIjticmVhaztjYXNlIDM1NjY0Omw9IjJmIixwPTI7YnJlYWs7Y2FzZSAzNTY2NTpsPSIzZiIscD0zO2JyZWFrO2Nhc2UgMzU2NjY6bD0iNGYiLHA9NDticmVhaztjYXNlIDM1Njc0Omw9Ik1hdHJpeDJmdiI7YnJlYWs7Y2FzZSAzNTY3NTpsPSJNYXRyaXgzZnYiO2JyZWFrO2Nhc2UgMzU2NzY6bD0iTWF0cml4NGZ2In1pZigtMT09PWwuaW5kZXhPZigiTWF0cml4IikmJjE8bSYmKGwrPSJ2IixwPTEpLCJNIj09PWwuY2hhckF0KDApKXtyKHUsIi51bmlmb3JtIixsLCIoIixiLCIsIik7Yj1NYXRoLnBvdyhkLTM1Njc0KzIsMik7dmFyIF89dC5nbG9iYWwuZGVmKCJuZXcgRmxvYXQzMkFycmF5KCIsYiwiKSIpO0FycmF5LmlzQXJyYXkoeCk/cigiZmFsc2UsKCIsYShiLChmdW5jdGlvbih0KXtyZXR1cm4gXysiWyIrdCsiXT0iK3hbdF19KSksIiwiLF8sIikiKTpyKCJmYWxzZSwoQXJyYXkuaXNBcnJheSgiLHgsIil8fCIseCwiIGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KT8iLHgsIjooIixhKGIsKGZ1bmN0aW9uKHQpe3JldHVybiBfKyJbIit0KyJdPSIreCsiWyIrdCsiXSJ9KSksIiwiLF8sIikiKSxyKCIpOyIpfWVsc2V7aWYoMTxwKXtkPVtdO3ZhciB3PVtdO2ZvcihtPTA7bTxwOysrbSlBcnJheS5pc0FycmF5KHgpP3cucHVzaCh4W21dKTp3LnB1c2goci5kZWYoeCsiWyIrbSsiXSIpKSxzJiZkLnB1c2goci5kZWYoKSk7cyYmcigiaWYoISIsdC5iYXRjaElkLCJ8fCIsZC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrIiE9PSIrd1tlXX0pKS5qb2luKCJ8fCIpLCIpeyIsZC5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrIj0iK3dbZV0rIjsifSkpLmpvaW4oIiIpKSxyKHUsIi51bmlmb3JtIixsLCIoIixiLCIsIix3LmpvaW4oIiwiKSwiKTsiKX1lbHNlIHMmJihkPXIuZGVmKCkscigiaWYoISIsdC5iYXRjaElkLCJ8fCIsZCwiIT09Iix4LCIpeyIsZCwiPSIseCwiOyIpKSxyKHUsIi51bmlmb3JtIixsLCIoIixiLCIsIix4LCIpOyIpO3MmJnIoIn0iKX19fWZ1bmN0aW9uIHEodCxlLHIsbil7ZnVuY3Rpb24gaShpKXt2YXIgYT1oW2ldO3JldHVybiBhP2EuY29udGV4dERlcCYmbi5jb250ZXh0RHluYW1pY3x8YS5wcm9wRGVwP2EuYXBwZW5kKHQscik6YS5hcHBlbmQodCxlKTplLmRlZihmLCIuIixpKX1mdW5jdGlvbiBhKCl7ZnVuY3Rpb24gdCgpe3IobCwiLmRyYXdFbGVtZW50c0luc3RhbmNlZEFOR0xFKCIsW2QsZyx2LG0rIjw8KCgiK3YrIi01MTIxKT4+MSkiLHNdLCIpOyIpfWZ1bmN0aW9uIGUoKXtyKGwsIi5kcmF3QXJyYXlzSW5zdGFuY2VkQU5HTEUoIixbZCxtLGcsc10sIik7Iil9cCYmIm51bGwiIT09cD95P3QoKToocigiaWYoIixwLCIpeyIpLHQoKSxyKCJ9ZWxzZXsiKSxlKCkscigifSIpKTplKCl9ZnVuY3Rpb24gbygpe2Z1bmN0aW9uIHQoKXtyKHUrIi5kcmF3RWxlbWVudHMoIitbZCxnLHYsbSsiPDwoKCIrdisiLTUxMjEpPj4xKSJdKyIpOyIpfWZ1bmN0aW9uIGUoKXtyKHUrIi5kcmF3QXJyYXlzKCIrW2QsbSxnXSsiKTsiKX1wJiYibnVsbCIhPT1wP3k/dCgpOihyKCJpZigiLHAsIil7IiksdCgpLHIoIn1lbHNleyIpLGUoKSxyKCJ9IikpOmUoKX12YXIgcyxsLGM9dC5zaGFyZWQsdT1jLmdsLGY9Yy5kcmF3LGg9bi5kcmF3LHA9ZnVuY3Rpb24oKXt2YXIgaT1oLmVsZW1lbnRzLGE9ZTtyZXR1cm4gaT8oKGkuY29udGV4dERlcCYmbi5jb250ZXh0RHluYW1pY3x8aS5wcm9wRGVwKSYmKGE9ciksaT1pLmFwcGVuZCh0LGEpLGguZWxlbWVudHNBY3RpdmUmJmEoImlmKCIraSsiKSIrdSsiLmJpbmRCdWZmZXIoMzQ5NjMsIitpKyIuYnVmZmVyLmJ1ZmZlcik7IikpOihpPWEuZGVmKCksYShpLCI9IixmLCIuIiwiZWxlbWVudHMiLCI7IiwiaWYoIixpLCIpeyIsdSwiLmJpbmRCdWZmZXIoIiwzNDk2MywiLCIsaSwiLmJ1ZmZlci5idWZmZXIpO30iLCJlbHNlIGlmKCIsYy52YW8sIi5jdXJyZW50VkFPKXsiLGksIj0iLHQuc2hhcmVkLmVsZW1lbnRzKyIuZ2V0RWxlbWVudHMoIitjLnZhbywiLmN1cnJlbnRWQU8uZWxlbWVudHMpOyIsbnQ/IiI6ImlmKCIraSsiKSIrdSsiLmJpbmRCdWZmZXIoMzQ5NjMsIitpKyIuYnVmZmVyLmJ1ZmZlcik7IiwifSIpKSxpfSgpLGQ9aSgicHJpbWl0aXZlIiksbT1pKCJvZmZzZXQiKSxnPWZ1bmN0aW9uKCl7dmFyIGk9aC5jb3VudCxhPWU7cmV0dXJuIGk/KChpLmNvbnRleHREZXAmJm4uY29udGV4dER5bmFtaWN8fGkucHJvcERlcCkmJihhPXIpLGk9aS5hcHBlbmQodCxhKSk6aT1hLmRlZihmLCIuIiwiY291bnQiKSxpfSgpO2lmKCJudW1iZXIiPT10eXBlb2YgZyl7aWYoMD09PWcpcmV0dXJufWVsc2UgcigiaWYoIixnLCIpeyIpLHIuZXhpdCgifSIpO3R0JiYocz1pKCJpbnN0YW5jZXMiKSxsPXQuaW5zdGFuY2luZyk7dmFyIHY9cCsiLnR5cGUiLHk9aC5lbGVtZW50cyYmRChoLmVsZW1lbnRzKSYmIWgudmFvQWN0aXZlO3R0JiYoIm51bWJlciIhPXR5cGVvZiBzfHwwPD1zKT8ic3RyaW5nIj09dHlwZW9mIHM/KHIoImlmKCIscywiPjApeyIpLGEoKSxyKCJ9ZWxzZSBpZigiLHMsIjwwKXsiKSxvKCkscigifSIpKTphKCk6bygpfWZ1bmN0aW9uIEcodCxlLHIsbixpKXtyZXR1cm4gaT0oZT1iKCkpLnByb2MoImJvZHkiLGkpLHR0JiYoZS5pbnN0YW5jaW5nPWkuZGVmKGUuc2hhcmVkLmV4dGVuc2lvbnMsIi5hbmdsZV9pbnN0YW5jZWRfYXJyYXlzIikpLHQoZSxpLHIsbiksZS5jb21waWxlKCkuYm9keX1mdW5jdGlvbiBZKHQsZSxyLG4pe0IodCxlKSxyLnVzZVZBTz9yLmRyYXdWQU8/ZSh0LnNoYXJlZC52YW8sIi5zZXRWQU8oIixyLmRyYXdWQU8uYXBwZW5kKHQsZSksIik7Iik6ZSh0LnNoYXJlZC52YW8sIi5zZXRWQU8oIix0LnNoYXJlZC52YW8sIi50YXJnZXRWQU8pOyIpOihlKHQuc2hhcmVkLnZhbywiLnNldFZBTyhudWxsKTsiKSxVKHQsZSxyLG4uYXR0cmlidXRlcywoZnVuY3Rpb24oKXtyZXR1cm4hMH0pKSksSCh0LGUscixuLnVuaWZvcm1zLChmdW5jdGlvbigpe3JldHVybiEwfSksITEpLHEodCxlLGUscil9ZnVuY3Rpb24gVyh0LGUscixuKXtmdW5jdGlvbiBpKCl7cmV0dXJuITB9dC5iYXRjaElkPSJhMSIsQih0LGUpLFUodCxlLHIsbi5hdHRyaWJ1dGVzLGkpLEgodCxlLHIsbi51bmlmb3JtcyxpLCExKSxxKHQsZSxlLHIpfWZ1bmN0aW9uIFgodCxlLHIsbil7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5jb250ZXh0RGVwJiZvfHx0LnByb3BEZXB9ZnVuY3Rpb24gYSh0KXtyZXR1cm4haSh0KX1CKHQsZSk7dmFyIG89ci5jb250ZXh0RGVwLHM9ZS5kZWYoKSxsPWUuZGVmKCk7dC5zaGFyZWQucHJvcHM9bCx0LmJhdGNoSWQ9czt2YXIgYz10LnNjb3BlKCksdT10LnNjb3BlKCk7ZShjLmVudHJ5LCJmb3IoIixzLCI9MDsiLHMsIjwiLCJhMSIsIjsrKyIscywiKXsiLGwsIj0iLCJhMCIsIlsiLHMsIl07Iix1LCJ9IixjLmV4aXQpLHIubmVlZHNDb250ZXh0JiZNKHQsdSxyLmNvbnRleHQpLHIubmVlZHNGcmFtZWJ1ZmZlciYmUyh0LHUsci5mcmFtZWJ1ZmZlciksTCh0LHUsci5zdGF0ZSxpKSxyLnByb2ZpbGUmJmkoci5wcm9maWxlKSYmTih0LHUsciwhMSwhMCksbj8oci51c2VWQU8/ci5kcmF3VkFPP2koci5kcmF3VkFPKT91KHQuc2hhcmVkLnZhbywiLnNldFZBTygiLHIuZHJhd1ZBTy5hcHBlbmQodCx1KSwiKTsiKTpjKHQuc2hhcmVkLnZhbywiLnNldFZBTygiLHIuZHJhd1ZBTy5hcHBlbmQodCxjKSwiKTsiKTpjKHQuc2hhcmVkLnZhbywiLnNldFZBTygiLHQuc2hhcmVkLnZhbywiLnRhcmdldFZBTyk7Iik6KGModC5zaGFyZWQudmFvLCIuc2V0VkFPKG51bGwpOyIpLFUodCxjLHIsbi5hdHRyaWJ1dGVzLGEpLFUodCx1LHIsbi5hdHRyaWJ1dGVzLGkpKSxIKHQsYyxyLG4udW5pZm9ybXMsYSwhMSksSCh0LHUscixuLnVuaWZvcm1zLGksITApLHEodCxjLHUscikpOihlPXQuZ2xvYmFsLmRlZigie30iKSxuPXIuc2hhZGVyLnByb2dWYXIuYXBwZW5kKHQsdSksbD11LmRlZihuLCIuaWQiKSxjPXUuZGVmKGUsIlsiLGwsIl0iKSx1KHQuc2hhcmVkLmdsLCIudXNlUHJvZ3JhbSgiLG4sIi5wcm9ncmFtKTsiLCJpZighIixjLCIpeyIsYywiPSIsZSwiWyIsbCwiXT0iLHQubGluaygoZnVuY3Rpb24oZSl7cmV0dXJuIEcoVyx0LHIsZSwyKX0pKSwiKCIsbiwiKTt9IixjLCIuY2FsbCh0aGlzLGEwWyIscywiXSwiLHMsIik7IikpfWZ1bmN0aW9uIFoodCxyKXtmdW5jdGlvbiBuKGUpe3ZhciBuPXIuc2hhZGVyW2VdO24mJmkuc2V0KGEuc2hhZGVyLCIuIitlLG4uYXBwZW5kKHQsaSkpfXZhciBpPXQucHJvYygic2NvcGUiLDMpO3QuYmF0Y2hJZD0iYTIiO3ZhciBhPXQuc2hhcmVkLG89YS5jdXJyZW50O00odCxpLHIuY29udGV4dCksci5mcmFtZWJ1ZmZlciYmci5mcmFtZWJ1ZmZlci5hcHBlbmQodCxpKSxPKE9iamVjdC5rZXlzKHIuc3RhdGUpKS5mb3JFYWNoKChmdW5jdGlvbihlKXt2YXIgbj1yLnN0YXRlW2VdLmFwcGVuZCh0LGkpO2cobik/bi5mb3JFYWNoKChmdW5jdGlvbihyLG4pe2kuc2V0KHQubmV4dFtlXSwiWyIrbisiXSIscil9KSk6aS5zZXQoYS5uZXh0LCIuIitlLG4pfSkpLE4odCxpLHIsITAsITApLFsiZWxlbWVudHMiLCJvZmZzZXQiLCJjb3VudCIsImluc3RhbmNlcyIsInByaW1pdGl2ZSJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPXIuZHJhd1tlXTtuJiZpLnNldChhLmRyYXcsIi4iK2UsIiIrbi5hcHBlbmQodCxpKSl9KSksT2JqZWN0LmtleXMoci51bmlmb3JtcykuZm9yRWFjaCgoZnVuY3Rpb24obil7dmFyIG89ci51bmlmb3Jtc1tuXS5hcHBlbmQodCxpKTtBcnJheS5pc0FycmF5KG8pJiYobz0iWyIrby5qb2luKCkrIl0iKSxpLnNldChhLnVuaWZvcm1zLCJbIitlLmlkKG4pKyJdIixvKX0pKSxPYmplY3Qua2V5cyhyLmF0dHJpYnV0ZXMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciBuPXIuYXR0cmlidXRlc1tlXS5hcHBlbmQodCxpKSxhPXQuc2NvcGVBdHRyaWIoZSk7T2JqZWN0LmtleXMobmV3IFEpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2kuc2V0KGEsIi4iK3Qsblt0XSl9KSl9KSksci5zY29wZVZBTyYmaS5zZXQoYS52YW8sIi50YXJnZXRWQU8iLHIuc2NvcGVWQU8uYXBwZW5kKHQsaSkpLG4oInZlcnQiKSxuKCJmcmFnIiksMDxPYmplY3Qua2V5cyhyLnN0YXRlKS5sZW5ndGgmJihpKG8sIi5kaXJ0eT10cnVlOyIpLGkuZXhpdChvLCIuZGlydHk9dHJ1ZTsiKSksaSgiYTEoIix0LnNoYXJlZC5jb250ZXh0LCIsYTAsIix0LmJhdGNoSWQsIik7Iil9ZnVuY3Rpb24gSih0LGUscil7dmFyIG49ZS5zdGF0aWNbcl07aWYobiYmZnVuY3Rpb24odCl7aWYoIm9iamVjdCI9PXR5cGVvZiB0JiYhZyh0KSl7Zm9yKHZhciBlPU9iamVjdC5rZXlzKHQpLHI9MDtyPGUubGVuZ3RoOysrcilpZihWLmlzRHluYW1pYyh0W2Vbcl1dKSlyZXR1cm4hMDtyZXR1cm4hMX19KG4pKXt2YXIgaT10Lmdsb2JhbCxhPU9iamVjdC5rZXlzKG4pLG89ITEscz0hMSxsPSExLGM9dC5nbG9iYWwuZGVmKCJ7fSIpO2EuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bltlXTtpZihWLmlzRHluYW1pYyhyKSkiZnVuY3Rpb24iPT10eXBlb2YgciYmKHI9bltlXT1WLnVuYm94KHIpKSxlPUYocixudWxsKSxvPW98fGUudGhpc0RlcCxsPWx8fGUucHJvcERlcCxzPXN8fGUuY29udGV4dERlcDtlbHNle3N3aXRjaChpKGMsIi4iLGUsIj0iKSx0eXBlb2Ygcil7Y2FzZSJudW1iZXIiOmkocik7YnJlYWs7Y2FzZSJzdHJpbmciOmkoJyInLHIsJyInKTticmVhaztjYXNlIm9iamVjdCI6QXJyYXkuaXNBcnJheShyKSYmaSgiWyIsci5qb2luKCksIl0iKTticmVhaztkZWZhdWx0OmkodC5saW5rKHIpKX1pKCI7Iil9fSkpLGUuZHluYW1pY1tyXT1uZXcgVi5EeW5hbWljVmFyaWFibGUoNCx7dGhpc0RlcDpvLGNvbnRleHREZXA6cyxwcm9wRGVwOmwscmVmOmMsYXBwZW5kOmZ1bmN0aW9uKHQsZSl7YS5mb3JFYWNoKChmdW5jdGlvbihyKXt2YXIgaT1uW3JdO1YuaXNEeW5hbWljKGkpJiYoaT10Lmludm9rZShlLGkpLGUoYywiLiIsciwiPSIsaSwiOyIpKX0pKX19KSxkZWxldGUgZS5zdGF0aWNbcl19fXZhciBRPXUuUmVjb3JkLCQ9e2FkZDozMjc3NCxzdWJ0cmFjdDozMjc3OCwicmV2ZXJzZSBzdWJ0cmFjdCI6MzI3Nzl9O3IuZXh0X2JsZW5kX21pbm1heCYmKCQubWluPTMyNzc1LCQubWF4PTMyNzc2KTt2YXIgdHQ9ci5hbmdsZV9pbnN0YW5jZWRfYXJyYXlzLGV0PXIud2ViZ2xfZHJhd19idWZmZXJzLG50PXIub2VzX3ZlcnRleF9hcnJheV9vYmplY3QsaXQ9e2RpcnR5OiEwLHByb2ZpbGU6bS5wcm9maWxlfSxhdD17fSxvdD1bXSxzdD17fSxsdD17fTt5KCJkaXRoZXIiLDMwMjQpLHkoImJsZW5kLmVuYWJsZSIsMzA0MikseCgiYmxlbmQuY29sb3IiLCJibGVuZENvbG9yIixbMCwwLDAsMF0pLHgoImJsZW5kLmVxdWF0aW9uIiwiYmxlbmRFcXVhdGlvblNlcGFyYXRlIixbMzI3NzQsMzI3NzRdKSx4KCJibGVuZC5mdW5jIiwiYmxlbmRGdW5jU2VwYXJhdGUiLFsxLDAsMSwwXSkseSgiZGVwdGguZW5hYmxlIiwyOTI5LCEwKSx4KCJkZXB0aC5mdW5jIiwiZGVwdGhGdW5jIiw1MTMpLHgoImRlcHRoLnJhbmdlIiwiZGVwdGhSYW5nZSIsWzAsMV0pLHgoImRlcHRoLm1hc2siLCJkZXB0aE1hc2siLCEwKSx4KCJjb2xvck1hc2siLCJjb2xvck1hc2siLFshMCwhMCwhMCwhMF0pLHkoImN1bGwuZW5hYmxlIiwyODg0KSx4KCJjdWxsLmZhY2UiLCJjdWxsRmFjZSIsMTAyOSkseCgiZnJvbnRGYWNlIiwiZnJvbnRGYWNlIiwyMzA1KSx4KCJsaW5lV2lkdGgiLCJsaW5lV2lkdGgiLDEpLHkoInBvbHlnb25PZmZzZXQuZW5hYmxlIiwzMjgyMykseCgicG9seWdvbk9mZnNldC5vZmZzZXQiLCJwb2x5Z29uT2Zmc2V0IixbMCwwXSkseSgic2FtcGxlLmFscGhhIiwzMjkyNikseSgic2FtcGxlLmVuYWJsZSIsMzI5MjgpLHgoInNhbXBsZS5jb3ZlcmFnZSIsInNhbXBsZUNvdmVyYWdlIixbMSwhMV0pLHkoInN0ZW5jaWwuZW5hYmxlIiwyOTYwKSx4KCJzdGVuY2lsLm1hc2siLCJzdGVuY2lsTWFzayIsLTEpLHgoInN0ZW5jaWwuZnVuYyIsInN0ZW5jaWxGdW5jIixbNTE5LDAsLTFdKSx4KCJzdGVuY2lsLm9wRnJvbnQiLCJzdGVuY2lsT3BTZXBhcmF0ZSIsWzEwMjgsNzY4MCw3NjgwLDc2ODBdKSx4KCJzdGVuY2lsLm9wQmFjayIsInN0ZW5jaWxPcFNlcGFyYXRlIixbMTAyOSw3NjgwLDc2ODAsNzY4MF0pLHkoInNjaXNzb3IuZW5hYmxlIiwzMDg5KSx4KCJzY2lzc29yLmJveCIsInNjaXNzb3IiLFswLDAsdC5kcmF3aW5nQnVmZmVyV2lkdGgsdC5kcmF3aW5nQnVmZmVySGVpZ2h0XSkseCgidmlld3BvcnQiLCJ2aWV3cG9ydCIsWzAsMCx0LmRyYXdpbmdCdWZmZXJXaWR0aCx0LmRyYXdpbmdCdWZmZXJIZWlnaHRdKTt2YXIgY3Q9e2dsOnQsY29udGV4dDpwLHN0cmluZ3M6ZSxuZXh0OmF0LGN1cnJlbnQ6aXQsZHJhdzpoLGVsZW1lbnRzOm8sYnVmZmVyOmksc2hhZGVyOmYsYXR0cmlidXRlczp1LnN0YXRlLHZhbzp1LHVuaWZvcm1zOmMsZnJhbWVidWZmZXI6bCxleHRlbnNpb25zOnIsdGltZXI6ZCxpc0J1ZmZlckFyZ3M6SX0sdXQ9e3ByaW1UeXBlczpydCxjb21wYXJlRnVuY3M6a3QsYmxlbmRGdW5jczpUdCxibGVuZEVxdWF0aW9uczokLHN0ZW5jaWxPcHM6QXQsZ2xUeXBlczpLLG9yaWVudGF0aW9uVHlwZTpNdH07ZXQmJih1dC5iYWNrQnVmZmVyPVsxMDI5XSx1dC5kcmF3QnVmZmVyPWEobi5tYXhEcmF3YnVmZmVycywoZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10P1swXTphKHQsKGZ1bmN0aW9uKHQpe3JldHVybiAzNjA2NCt0fSkpfSkpKTt2YXIgZnQ9MDtyZXR1cm57bmV4dDphdCxjdXJyZW50Oml0LHByb2NzOmZ1bmN0aW9uKCl7dmFyIHQ9YigpLGU9dC5wcm9jKCJwb2xsIiksaT10LnByb2MoInJlZnJlc2giKSxvPXQuYmxvY2soKTtlKG8pLGkobyk7dmFyIHMsbD10LnNoYXJlZCxjPWwuZ2wsdT1sLm5leHQsZj1sLmN1cnJlbnQ7byhmLCIuZGlydHk9ZmFsc2U7IiksUyh0LGUpLFModCxpLG51bGwsITApLHR0JiYocz10LmxpbmsodHQpKSxyLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0JiZpKHQubGluayhyLm9lc192ZXJ0ZXhfYXJyYXlfb2JqZWN0KSwiLmJpbmRWZXJ0ZXhBcnJheU9FUyhudWxsKTsiKTtmb3IodmFyIGg9MDtoPG4ubWF4QXR0cmlidXRlczsrK2gpe3ZhciBwPWkuZGVmKGwuYXR0cmlidXRlcywiWyIsaCwiXSIpLGQ9dC5jb25kKHAsIi5idWZmZXIiKTtkLnRoZW4oYywiLmVuYWJsZVZlcnRleEF0dHJpYkFycmF5KCIsaCwiKTsiLGMsIi5iaW5kQnVmZmVyKCIsMzQ5NjIsIiwiLHAsIi5idWZmZXIuYnVmZmVyKTsiLGMsIi52ZXJ0ZXhBdHRyaWJQb2ludGVyKCIsaCwiLCIscCwiLnNpemUsIixwLCIudHlwZSwiLHAsIi5ub3JtYWxpemVkLCIscCwiLnN0cmlkZSwiLHAsIi5vZmZzZXQpOyIpLmVsc2UoYywiLmRpc2FibGVWZXJ0ZXhBdHRyaWJBcnJheSgiLGgsIik7IixjLCIudmVydGV4QXR0cmliNGYoIixoLCIsIixwLCIueCwiLHAsIi55LCIscCwiLnosIixwLCIudyk7IixwLCIuYnVmZmVyPW51bGw7IiksaShkKSx0dCYmaShzLCIudmVydGV4QXR0cmliRGl2aXNvckFOR0xFKCIsaCwiLCIscCwiLmRpdmlzb3IpOyIpfXJldHVybiBpKHQuc2hhcmVkLnZhbywiLmN1cnJlbnRWQU89bnVsbDsiLHQuc2hhcmVkLnZhbywiLnNldFZBTygiLHQuc2hhcmVkLnZhbywiLnRhcmdldFZBTyk7IiksT2JqZWN0LmtleXMoc3QpLmZvckVhY2goKGZ1bmN0aW9uKHIpe3ZhciBuPXN0W3JdLGE9by5kZWYodSwiLiIscikscz10LmJsb2NrKCk7cygiaWYoIixhLCIpeyIsYywiLmVuYWJsZSgiLG4sIil9ZWxzZXsiLGMsIi5kaXNhYmxlKCIsbiwiKX0iLGYsIi4iLHIsIj0iLGEsIjsiKSxpKHMpLGUoImlmKCIsYSwiIT09IixmLCIuIixyLCIpeyIscywifSIpfSkpLE9iamVjdC5rZXlzKGx0KS5mb3JFYWNoKChmdW5jdGlvbihyKXt2YXIgbixzLGw9bHRbcl0saD1pdFtyXSxwPXQuYmxvY2soKTtwKGMsIi4iLGwsIigiKSxnKGgpPyhsPWgubGVuZ3RoLG49dC5nbG9iYWwuZGVmKHUsIi4iLHIpLHM9dC5nbG9iYWwuZGVmKGYsIi4iLHIpLHAoYShsLChmdW5jdGlvbih0KXtyZXR1cm4gbisiWyIrdCsiXSJ9KSksIik7IixhKGwsKGZ1bmN0aW9uKHQpe3JldHVybiBzKyJbIit0KyJdPSIrbisiWyIrdCsiXTsifSkpLmpvaW4oIiIpKSxlKCJpZigiLGEobCwoZnVuY3Rpb24odCl7cmV0dXJuIG4rIlsiK3QrIl0hPT0iK3MrIlsiK3QrIl0ifSkpLmpvaW4oInx8IiksIil7IixwLCJ9IikpOihuPW8uZGVmKHUsIi4iLHIpLHM9by5kZWYoZiwiLiIscikscChuLCIpOyIsZiwiLiIsciwiPSIsbiwiOyIpLGUoImlmKCIsbiwiIT09IixzLCIpeyIscCwifSIpKSxpKHApfSkpLHQuY29tcGlsZSgpfSgpLGNvbXBpbGU6ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT1iKCk7YS5zdGF0cz1hLmxpbmsoaSksT2JqZWN0LmtleXMoZS5zdGF0aWMpLmZvckVhY2goKGZ1bmN0aW9uKHQpe0ooYSxlLHQpfSkpLHd0LmZvckVhY2goKGZ1bmN0aW9uKGUpe0ooYSx0LGUpfSkpO3ZhciBvPUEodCxlLHIsbik7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5wcm9jKCJkcmF3IiwxKTtCKHQsciksTSh0LHIsZS5jb250ZXh0KSxTKHQscixlLmZyYW1lYnVmZmVyKSxFKHQscixlKSxMKHQscixlLnN0YXRlKSxOKHQscixlLCExLCEwKTt2YXIgbj1lLnNoYWRlci5wcm9nVmFyLmFwcGVuZCh0LHIpO2lmKHIodC5zaGFyZWQuZ2wsIi51c2VQcm9ncmFtKCIsbiwiLnByb2dyYW0pOyIpLGUuc2hhZGVyLnByb2dyYW0pWSh0LHIsZSxlLnNoYWRlci5wcm9ncmFtKTtlbHNle3IodC5zaGFyZWQudmFvLCIuc2V0VkFPKG51bGwpOyIpO3ZhciBpPXQuZ2xvYmFsLmRlZigie30iKSxhPXIuZGVmKG4sIi5pZCIpLG89ci5kZWYoaSwiWyIsYSwiXSIpO3IodC5jb25kKG8pLnRoZW4obywiLmNhbGwodGhpcyxhMCk7IikuZWxzZShvLCI9IixpLCJbIixhLCJdPSIsdC5saW5rKChmdW5jdGlvbihyKXtyZXR1cm4gRyhZLHQsZSxyLDEpfSkpLCIoIixuLCIpOyIsbywiLmNhbGwodGhpcyxhMCk7IikpfTA8T2JqZWN0LmtleXMoZS5zdGF0ZSkubGVuZ3RoJiZyKHQuc2hhcmVkLmN1cnJlbnQsIi5kaXJ0eT10cnVlOyIpLHQuc2hhcmVkLnZhbyYmcih0LnNoYXJlZC52YW8sIi5zZXRWQU8obnVsbCk7Iil9KGEsbyksWihhLG8pLGZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcih0KXtyZXR1cm4gdC5jb250ZXh0RGVwJiZpfHx0LnByb3BEZXB9dmFyIG49dC5wcm9jKCJiYXRjaCIsMik7dC5iYXRjaElkPSIwIixCKHQsbik7dmFyIGk9ITEsYT0hMDtPYmplY3Qua2V5cyhlLmNvbnRleHQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe2k9aXx8ZS5jb250ZXh0W3RdLnByb3BEZXB9KSksaXx8KE0odCxuLGUuY29udGV4dCksYT0hMSk7dmFyIG89ITE7aWYoKHM9ZS5mcmFtZWJ1ZmZlcik/KHMucHJvcERlcD9pPW89ITA6cy5jb250ZXh0RGVwJiZpJiYobz0hMCksb3x8Uyh0LG4scykpOlModCxuLG51bGwpLGUuc3RhdGUudmlld3BvcnQmJmUuc3RhdGUudmlld3BvcnQucHJvcERlcCYmKGk9ITApLEUodCxuLGUpLEwodCxuLGUuc3RhdGUsKGZ1bmN0aW9uKHQpe3JldHVybiFyKHQpfSkpLGUucHJvZmlsZSYmcihlLnByb2ZpbGUpfHxOKHQsbixlLCExLCJhMSIpLGUuY29udGV4dERlcD1pLGUubmVlZHNDb250ZXh0PWEsZS5uZWVkc0ZyYW1lYnVmZmVyPW8sKGE9ZS5zaGFkZXIucHJvZ1ZhcikuY29udGV4dERlcCYmaXx8YS5wcm9wRGVwKVgodCxuLGUsbnVsbCk7ZWxzZSBpZihhPWEuYXBwZW5kKHQsbiksbih0LnNoYXJlZC5nbCwiLnVzZVByb2dyYW0oIixhLCIucHJvZ3JhbSk7IiksZS5zaGFkZXIucHJvZ3JhbSlYKHQsbixlLGUuc2hhZGVyLnByb2dyYW0pO2Vsc2V7bih0LnNoYXJlZC52YW8sIi5zZXRWQU8obnVsbCk7Iik7dmFyIHM9dC5nbG9iYWwuZGVmKCJ7fSIpLGw9KG89bi5kZWYoYSwiLmlkIiksbi5kZWYocywiWyIsbywiXSIpKTtuKHQuY29uZChsKS50aGVuKGwsIi5jYWxsKHRoaXMsYTAsYTEpOyIpLmVsc2UobCwiPSIscywiWyIsbywiXT0iLHQubGluaygoZnVuY3Rpb24ocil7cmV0dXJuIEcoWCx0LGUsciwyKX0pKSwiKCIsYSwiKTsiLGwsIi5jYWxsKHRoaXMsYTAsYTEpOyIpKX0wPE9iamVjdC5rZXlzKGUuc3RhdGUpLmxlbmd0aCYmbih0LnNoYXJlZC5jdXJyZW50LCIuZGlydHk9dHJ1ZTsiKSx0LnNoYXJlZC52YW8mJm4odC5zaGFyZWQudmFvLCIuc2V0VkFPKG51bGwpOyIpfShhLG8pLGooYS5jb21waWxlKCkse2Rlc3Ryb3k6ZnVuY3Rpb24oKXtvLnNoYWRlci5wcm9ncmFtLmRlc3Ryb3koKX19KX19fWZ1bmN0aW9uIE4odCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoOysrcilpZih0W3JdPT09ZSlyZXR1cm4gcjtyZXR1cm4tMX12YXIgaj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1PYmplY3Qua2V5cyhlKSxuPTA7bjxyLmxlbmd0aDsrK24pdFtyW25dXT1lW3Jbbl1dO3JldHVybiB0fSxVPTAsVj17RHluYW1pY1ZhcmlhYmxlOnQsZGVmaW5lOmZ1bmN0aW9uKHIsbil7cmV0dXJuIG5ldyB0KHIsZShuKyIiKSl9LGlzRHluYW1pYzpmdW5jdGlvbihlKXtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2YgZSYmIWUuX3JlZ2xUeXBlfHxlIGluc3RhbmNlb2YgdH0sdW5ib3g6ZnVuY3Rpb24gZShyLG4pe3JldHVybiJmdW5jdGlvbiI9PXR5cGVvZiByP25ldyB0KDAscik6Im51bWJlciI9PXR5cGVvZiByfHwiYm9vbGVhbiI9PXR5cGVvZiByP25ldyB0KDUscik6QXJyYXkuaXNBcnJheShyKT9uZXcgdCg2LHIubWFwKChmdW5jdGlvbih0LHIpe3JldHVybiBlKHQsbisiWyIrcisiXSIpfSkpKTpyIGluc3RhbmNlb2YgdD9yOnZvaWQgMH0sYWNjZXNzb3I6ZX0sSD17bmV4dDoiZnVuY3Rpb24iPT10eXBlb2YgcmVxdWVzdEFuaW1hdGlvbkZyYW1lP2Z1bmN0aW9uKHQpe3JldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUodCl9OmZ1bmN0aW9uKHQpe3JldHVybiBzZXRUaW1lb3V0KHQsMTYpfSxjYW5jZWw6ImZ1bmN0aW9uIj09dHlwZW9mIGNhbmNlbEFuaW1hdGlvbkZyYW1lP2Z1bmN0aW9uKHQpe3JldHVybiBjYW5jZWxBbmltYXRpb25GcmFtZSh0KX06Y2xlYXJUaW1lb3V0fSxxPSJ1bmRlZmluZWQiIT10eXBlb2YgcGVyZm9ybWFuY2UmJnBlcmZvcm1hbmNlLm5vdz9mdW5jdGlvbigpe3JldHVybiBwZXJmb3JtYW5jZS5ub3coKX06ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9LEc9cygpO0cuemVybz1zKCk7dmFyIFk9ZnVuY3Rpb24odCxlKXt2YXIgcj0xO2UuZXh0X3RleHR1cmVfZmlsdGVyX2FuaXNvdHJvcGljJiYocj10LmdldFBhcmFtZXRlcigzNDA0NykpO3ZhciBuPTEsaT0xO2Uud2ViZ2xfZHJhd19idWZmZXJzJiYobj10LmdldFBhcmFtZXRlcigzNDg1MiksaT10LmdldFBhcmFtZXRlcigzNjA2MykpO3ZhciBhPSEhZS5vZXNfdGV4dHVyZV9mbG9hdDtpZihhKXthPXQuY3JlYXRlVGV4dHVyZSgpLHQuYmluZFRleHR1cmUoMzU1MyxhKSx0LnRleEltYWdlMkQoMzU1MywwLDY0MDgsMSwxLDAsNjQwOCw1MTI2LG51bGwpO3ZhciBvPXQuY3JlYXRlRnJhbWVidWZmZXIoKTtpZih0LmJpbmRGcmFtZWJ1ZmZlcigzNjE2MCxvKSx0LmZyYW1lYnVmZmVyVGV4dHVyZTJEKDM2MTYwLDM2MDY0LDM1NTMsYSwwKSx0LmJpbmRUZXh0dXJlKDM1NTMsbnVsbCksMzYwNTMhPT10LmNoZWNrRnJhbWVidWZmZXJTdGF0dXMoMzYxNjApKWE9ITE7ZWxzZXt0LnZpZXdwb3J0KDAsMCwxLDEpLHQuY2xlYXJDb2xvcigxLDAsMCwxKSx0LmNsZWFyKDE2Mzg0KTt2YXIgcz1HLmFsbG9jVHlwZSg1MTI2LDQpO3QucmVhZFBpeGVscygwLDAsMSwxLDY0MDgsNTEyNixzKSx0LmdldEVycm9yKCk/YT0hMToodC5kZWxldGVGcmFtZWJ1ZmZlcihvKSx0LmRlbGV0ZVRleHR1cmUoYSksYT0xPT09c1swXSksRy5mcmVlVHlwZShzKX19cmV0dXJuIHM9ITAsInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJigvTVNJRS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KXx8L1RyaWRlbnRcLy8udGVzdChuYXZpZ2F0b3IuYXBwVmVyc2lvbil8fC9FZGdlLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKXx8KHM9dC5jcmVhdGVUZXh0dXJlKCksbz1HLmFsbG9jVHlwZSg1MTIxLDM2KSx0LmFjdGl2ZVRleHR1cmUoMzM5ODQpLHQuYmluZFRleHR1cmUoMzQwNjcscyksdC50ZXhJbWFnZTJEKDM0MDY5LDAsNjQwOCwzLDMsMCw2NDA4LDUxMjEsbyksRy5mcmVlVHlwZShvKSx0LmJpbmRUZXh0dXJlKDM0MDY3LG51bGwpLHQuZGVsZXRlVGV4dHVyZShzKSxzPSF0LmdldEVycm9yKCkpLHtjb2xvckJpdHM6W3QuZ2V0UGFyYW1ldGVyKDM0MTApLHQuZ2V0UGFyYW1ldGVyKDM0MTEpLHQuZ2V0UGFyYW1ldGVyKDM0MTIpLHQuZ2V0UGFyYW1ldGVyKDM0MTMpXSxkZXB0aEJpdHM6dC5nZXRQYXJhbWV0ZXIoMzQxNCksc3RlbmNpbEJpdHM6dC5nZXRQYXJhbWV0ZXIoMzQxNSksc3VicGl4ZWxCaXRzOnQuZ2V0UGFyYW1ldGVyKDM0MDgpLGV4dGVuc2lvbnM6T2JqZWN0LmtleXMoZSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hIWVbdF19KSksbWF4QW5pc290cm9waWM6cixtYXhEcmF3YnVmZmVyczpuLG1heENvbG9yQXR0YWNobWVudHM6aSxwb2ludFNpemVEaW1zOnQuZ2V0UGFyYW1ldGVyKDMzOTAxKSxsaW5lV2lkdGhEaW1zOnQuZ2V0UGFyYW1ldGVyKDMzOTAyKSxtYXhWaWV3cG9ydERpbXM6dC5nZXRQYXJhbWV0ZXIoMzM4NiksbWF4Q29tYmluZWRUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzU2NjEpLG1heEN1YmVNYXBTaXplOnQuZ2V0UGFyYW1ldGVyKDM0MDc2KSxtYXhSZW5kZXJidWZmZXJTaXplOnQuZ2V0UGFyYW1ldGVyKDM0MDI0KSxtYXhUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzQ5MzApLG1heFRleHR1cmVTaXplOnQuZ2V0UGFyYW1ldGVyKDMzNzkpLG1heEF0dHJpYnV0ZXM6dC5nZXRQYXJhbWV0ZXIoMzQ5MjEpLG1heFZlcnRleFVuaWZvcm1zOnQuZ2V0UGFyYW1ldGVyKDM2MzQ3KSxtYXhWZXJ0ZXhUZXh0dXJlVW5pdHM6dC5nZXRQYXJhbWV0ZXIoMzU2NjApLG1heFZhcnlpbmdWZWN0b3JzOnQuZ2V0UGFyYW1ldGVyKDM2MzQ4KSxtYXhGcmFnbWVudFVuaWZvcm1zOnQuZ2V0UGFyYW1ldGVyKDM2MzQ5KSxnbHNsOnQuZ2V0UGFyYW1ldGVyKDM1NzI0KSxyZW5kZXJlcjp0LmdldFBhcmFtZXRlcig3OTM3KSx2ZW5kb3I6dC5nZXRQYXJhbWV0ZXIoNzkzNiksdmVyc2lvbjp0LmdldFBhcmFtZXRlcig3OTM4KSxyZWFkRmxvYXQ6YSxucG90VGV4dHVyZUN1YmU6c319LFc9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBVaW50OEFycmF5fHx0IGluc3RhbmNlb2YgVWludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBVaW50MzJBcnJheXx8dCBpbnN0YW5jZW9mIEludDhBcnJheXx8dCBpbnN0YW5jZW9mIEludDE2QXJyYXl8fHQgaW5zdGFuY2VvZiBJbnQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5fHx0IGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5fHx0IGluc3RhbmNlb2YgVWludDhDbGFtcGVkQXJyYXl9LFg9ZnVuY3Rpb24odCl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9LFo9e3NoYXBlOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bXTt0Lmxlbmd0aDt0PXRbMF0pZS5wdXNoKHQubGVuZ3RoKTtyZXR1cm4gZX0sZmxhdHRlbjpmdW5jdGlvbih0LGUscixuKXt2YXIgaT0xO2lmKGUubGVuZ3RoKWZvcih2YXIgYT0wO2E8ZS5sZW5ndGg7KythKWkqPWVbYV07ZWxzZSBpPTA7c3dpdGNoKHI9bnx8Ry5hbGxvY1R5cGUocixpKSxlLmxlbmd0aCl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpmb3Iobj1lWzBdLGU9MDtlPG47KytlKXJbZV09dFtlXTticmVhaztjYXNlIDI6Zm9yKG49ZVswXSxlPWVbMV0sYT1pPTA7YTxuOysrYSlmb3IodmFyIG89dFthXSxzPTA7czxlOysrcylyW2krK109b1tzXTticmVhaztjYXNlIDM6Yyh0LGVbMF0sZVsxXSxlWzJdLHIsMCk7YnJlYWs7ZGVmYXVsdDohZnVuY3Rpb24gdChlLHIsbixpLGEpe2Zvcih2YXIgbz0xLHM9bisxO3M8ci5sZW5ndGg7KytzKW8qPXJbc107dmFyIGw9cltuXTtpZig0PT1yLmxlbmd0aC1uKXt2YXIgdT1yW24rMV0sZj1yW24rMl07Zm9yKHI9cltuKzNdLHM9MDtzPGw7KytzKWMoZVtzXSx1LGYscixpLGEpLGErPW99ZWxzZSBmb3Iocz0wO3M8bDsrK3MpdChlW3NdLHIsbisxLGksYSksYSs9b30odCxlLDAsciwwKX1yZXR1cm4gcn19LEo9eyJbb2JqZWN0IEludDhBcnJheV0iOjUxMjAsIltvYmplY3QgSW50MTZBcnJheV0iOjUxMjIsIltvYmplY3QgSW50MzJBcnJheV0iOjUxMjQsIltvYmplY3QgVWludDhBcnJheV0iOjUxMjEsIltvYmplY3QgVWludDhDbGFtcGVkQXJyYXldIjo1MTIxLCJbb2JqZWN0IFVpbnQxNkFycmF5XSI6NTEyMywiW29iamVjdCBVaW50MzJBcnJheV0iOjUxMjUsIltvYmplY3QgRmxvYXQzMkFycmF5XSI6NTEyNiwiW29iamVjdCBGbG9hdDY0QXJyYXldIjo1MTIxLCJbb2JqZWN0IEFycmF5QnVmZmVyXSI6NTEyMX0sSz17aW50ODo1MTIwLGludDE2OjUxMjIsaW50MzI6NTEyNCx1aW50ODo1MTIxLHVpbnQxNjo1MTIzLHVpbnQzMjo1MTI1LGZsb2F0OjUxMjYsZmxvYXQzMjo1MTI2fSxRPXtkeW5hbWljOjM1MDQ4LHN0cmVhbTozNTA0MCxzdGF0aWM6MzUwNDR9LCQ9Wi5mbGF0dGVuLHR0PVouc2hhcGUsZXQ9W107ZXRbNTEyMF09MSxldFs1MTIyXT0yLGV0WzUxMjRdPTQsZXRbNTEyMV09MSxldFs1MTIzXT0yLGV0WzUxMjVdPTQsZXRbNTEyNl09NDt2YXIgcnQ9e3BvaW50czowLHBvaW50OjAsbGluZXM6MSxsaW5lOjEsdHJpYW5nbGVzOjQsdHJpYW5nbGU6NCwibGluZSBsb29wIjoyLCJsaW5lIHN0cmlwIjozLCJ0cmlhbmdsZSBzdHJpcCI6NSwidHJpYW5nbGUgZmFuIjo2fSxudD1uZXcgRmxvYXQzMkFycmF5KDEpLGl0PW5ldyBVaW50MzJBcnJheShudC5idWZmZXIpLGF0PVs5OTg0LDk5ODYsOTk4NSw5OTg3XSxvdD1bMCw2NDA5LDY0MTAsNjQwNyw2NDA4XSxzdD17fTtzdFs2NDA5XT1zdFs2NDA2XT1zdFs2NDAyXT0xLHN0WzM0MDQxXT1zdFs2NDEwXT0yLHN0WzY0MDddPXN0WzM1OTA0XT0zLHN0WzY0MDhdPXN0WzM1OTA2XT00O3ZhciBsdD12KCJIVE1MQ2FudmFzRWxlbWVudCIpLGN0PXYoIk9mZnNjcmVlbkNhbnZhcyIpLHV0PXYoIkNhbnZhc1JlbmRlcmluZ0NvbnRleHQyRCIpLGZ0PXYoIkltYWdlQml0bWFwIiksaHQ9digiSFRNTEltYWdlRWxlbWVudCIpLHB0PXYoIkhUTUxWaWRlb0VsZW1lbnQiKSxkdD1PYmplY3Qua2V5cyhKKS5jb25jYXQoW2x0LGN0LHV0LGZ0LGh0LHB0XSksbXQ9W107bXRbNTEyMV09MSxtdFs1MTI2XT00LG10WzM2MTkzXT0yLG10WzUxMjNdPTIsbXRbNTEyNV09NDt2YXIgZ3Q9W107Z3RbMzI4NTRdPTIsZ3RbMzI4NTVdPTIsZ3RbMzYxOTRdPTIsZ3RbMzQwNDFdPTQsZ3RbMzM3NzZdPS41LGd0WzMzNzc3XT0uNSxndFszMzc3OF09MSxndFszMzc3OV09MSxndFszNTk4Nl09LjUsZ3RbMzU5ODddPTEsZ3RbMzQ3OThdPTEsZ3RbMzU4NDBdPS41LGd0WzM1ODQxXT0uMjUsZ3RbMzU4NDJdPS41LGd0WzM1ODQzXT0uMjUsZ3RbMzYxOTZdPS41O3ZhciB2dD1bXTt2dFszMjg1NF09Mix2dFszMjg1NV09Mix2dFszNjE5NF09Mix2dFszMzE4OV09Mix2dFszNjE2OF09MSx2dFszNDA0MV09NCx2dFszNTkwN109NCx2dFszNDgzNl09MTYsdnRbMzQ4NDJdPTgsdnRbMzQ4NDNdPTY7dmFyIHl0PWZ1bmN0aW9uKHQsZSxyLG4saSl7ZnVuY3Rpb24gYSh0KXt0aGlzLmlkPWMrKyx0aGlzLnJlZkNvdW50PTEsdGhpcy5yZW5kZXJidWZmZXI9dCx0aGlzLmZvcm1hdD0zMjg1NCx0aGlzLmhlaWdodD10aGlzLndpZHRoPTAsaS5wcm9maWxlJiYodGhpcy5zdGF0cz17c2l6ZTowfSl9ZnVuY3Rpb24gbyhlKXt2YXIgcj1lLnJlbmRlcmJ1ZmZlcjt0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsbnVsbCksdC5kZWxldGVSZW5kZXJidWZmZXIociksZS5yZW5kZXJidWZmZXI9bnVsbCxlLnJlZkNvdW50PTAsZGVsZXRlIHVbZS5pZF0sbi5yZW5kZXJidWZmZXJDb3VudC0tfXZhciBzPXtyZ2JhNDozMjg1NCxyZ2I1NjU6MzYxOTQsInJnYjUgYTEiOjMyODU1LGRlcHRoOjMzMTg5LHN0ZW5jaWw6MzYxNjgsImRlcHRoIHN0ZW5jaWwiOjM0MDQxfTtlLmV4dF9zcmdiJiYocy5zcmdiYT0zNTkwNyksZS5leHRfY29sb3JfYnVmZmVyX2hhbGZfZmxvYXQmJihzLnJnYmExNmY9MzQ4NDIscy5yZ2IxNmY9MzQ4NDMpLGUud2ViZ2xfY29sb3JfYnVmZmVyX2Zsb2F0JiYocy5yZ2JhMzJmPTM0ODM2KTt2YXIgbD1bXTtPYmplY3Qua2V5cyhzKS5mb3JFYWNoKChmdW5jdGlvbih0KXtsW3NbdF1dPXR9KSk7dmFyIGM9MCx1PXt9O3JldHVybiBhLnByb3RvdHlwZS5kZWNSZWY9ZnVuY3Rpb24oKXswPj0tLXRoaXMucmVmQ291bnQmJm8odGhpcyl9LGkucHJvZmlsZSYmKG4uZ2V0VG90YWxSZW5kZXJidWZmZXJTaXplPWZ1bmN0aW9uKCl7dmFyIHQ9MDtyZXR1cm4gT2JqZWN0LmtleXModSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dCs9dVtlXS5zdGF0cy5zaXplfSkpLHR9KSx7Y3JlYXRlOmZ1bmN0aW9uKGUscil7ZnVuY3Rpb24gbyhlLHIpe3ZhciBuPTAsYT0wLHU9MzI4NTQ7aWYoIm9iamVjdCI9PXR5cGVvZiBlJiZlPygic2hhcGUiaW4gZT8obj0wfChhPWUuc2hhcGUpWzBdLGE9MHxhWzFdKTooInJhZGl1cyJpbiBlJiYobj1hPTB8ZS5yYWRpdXMpLCJ3aWR0aCJpbiBlJiYobj0wfGUud2lkdGgpLCJoZWlnaHQiaW4gZSYmKGE9MHxlLmhlaWdodCkpLCJmb3JtYXQiaW4gZSYmKHU9c1tlLmZvcm1hdF0pKToibnVtYmVyIj09dHlwZW9mIGU/KG49MHxlLGE9Im51bWJlciI9PXR5cGVvZiByPzB8cjpuKTplfHwobj1hPTEpLG4hPT1jLndpZHRofHxhIT09Yy5oZWlnaHR8fHUhPT1jLmZvcm1hdClyZXR1cm4gby53aWR0aD1jLndpZHRoPW4sby5oZWlnaHQ9Yy5oZWlnaHQ9YSxjLmZvcm1hdD11LHQuYmluZFJlbmRlcmJ1ZmZlcigzNjE2MSxjLnJlbmRlcmJ1ZmZlciksdC5yZW5kZXJidWZmZXJTdG9yYWdlKDM2MTYxLHUsbixhKSxpLnByb2ZpbGUmJihjLnN0YXRzLnNpemU9dnRbYy5mb3JtYXRdKmMud2lkdGgqYy5oZWlnaHQpLG8uZm9ybWF0PWxbYy5mb3JtYXRdLG99dmFyIGM9bmV3IGEodC5jcmVhdGVSZW5kZXJidWZmZXIoKSk7cmV0dXJuIHVbYy5pZF09YyxuLnJlbmRlcmJ1ZmZlckNvdW50KyssbyhlLHIpLG8ucmVzaXplPWZ1bmN0aW9uKGUscil7dmFyIG49MHxlLGE9MHxyfHxuO3JldHVybiBuPT09Yy53aWR0aCYmYT09PWMuaGVpZ2h0fHwoby53aWR0aD1jLndpZHRoPW4sby5oZWlnaHQ9Yy5oZWlnaHQ9YSx0LmJpbmRSZW5kZXJidWZmZXIoMzYxNjEsYy5yZW5kZXJidWZmZXIpLHQucmVuZGVyYnVmZmVyU3RvcmFnZSgzNjE2MSxjLmZvcm1hdCxuLGEpLGkucHJvZmlsZSYmKGMuc3RhdHMuc2l6ZT12dFtjLmZvcm1hdF0qYy53aWR0aCpjLmhlaWdodCkpLG99LG8uX3JlZ2xUeXBlPSJyZW5kZXJidWZmZXIiLG8uX3JlbmRlcmJ1ZmZlcj1jLGkucHJvZmlsZSYmKG8uc3RhdHM9Yy5zdGF0cyksby5kZXN0cm95PWZ1bmN0aW9uKCl7Yy5kZWNSZWYoKX0sb30sY2xlYXI6ZnVuY3Rpb24oKXtYKHUpLmZvckVhY2gobyl9LHJlc3RvcmU6ZnVuY3Rpb24oKXtYKHUpLmZvckVhY2goKGZ1bmN0aW9uKGUpe2UucmVuZGVyYnVmZmVyPXQuY3JlYXRlUmVuZGVyYnVmZmVyKCksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLGUucmVuZGVyYnVmZmVyKSx0LnJlbmRlcmJ1ZmZlclN0b3JhZ2UoMzYxNjEsZS5mb3JtYXQsZS53aWR0aCxlLmhlaWdodCl9KSksdC5iaW5kUmVuZGVyYnVmZmVyKDM2MTYxLG51bGwpfX19LHh0PVtdO3h0WzY0MDhdPTQseHRbNjQwN109Mzt2YXIgYnQ9W107YnRbNTEyMV09MSxidFs1MTI2XT00LGJ0WzM2MTkzXT0yO3ZhciBfdD1bIngiLCJ5IiwieiIsInciXSx3dD0iYmxlbmQuZnVuYyBibGVuZC5lcXVhdGlvbiBzdGVuY2lsLmZ1bmMgc3RlbmNpbC5vcEZyb250IHN0ZW5jaWwub3BCYWNrIHNhbXBsZS5jb3ZlcmFnZSB2aWV3cG9ydCBzY2lzc29yLmJveCBwb2x5Z29uT2Zmc2V0Lm9mZnNldCIuc3BsaXQoIiAiKSxUdD17MDowLDE6MSx6ZXJvOjAsb25lOjEsInNyYyBjb2xvciI6NzY4LCJvbmUgbWludXMgc3JjIGNvbG9yIjo3NjksInNyYyBhbHBoYSI6NzcwLCJvbmUgbWludXMgc3JjIGFscGhhIjo3NzEsImRzdCBjb2xvciI6Nzc0LCJvbmUgbWludXMgZHN0IGNvbG9yIjo3NzUsImRzdCBhbHBoYSI6NzcyLCJvbmUgbWludXMgZHN0IGFscGhhIjo3NzMsImNvbnN0YW50IGNvbG9yIjozMjc2OSwib25lIG1pbnVzIGNvbnN0YW50IGNvbG9yIjozMjc3MCwiY29uc3RhbnQgYWxwaGEiOjMyNzcxLCJvbmUgbWludXMgY29uc3RhbnQgYWxwaGEiOjMyNzcyLCJzcmMgYWxwaGEgc2F0dXJhdGUiOjc3Nn0sa3Q9e25ldmVyOjUxMixsZXNzOjUxMywiPCI6NTEzLGVxdWFsOjUxNCwiPSI6NTE0LCI9PSI6NTE0LCI9PT0iOjUxNCxsZXF1YWw6NTE1LCI8PSI6NTE1LGdyZWF0ZXI6NTE2LCI+Ijo1MTYsbm90ZXF1YWw6NTE3LCIhPSI6NTE3LCIhPT0iOjUxNyxnZXF1YWw6NTE4LCI+PSI6NTE4LGFsd2F5czo1MTl9LEF0PXswOjAsemVybzowLGtlZXA6NzY4MCxyZXBsYWNlOjc2ODEsaW5jcmVtZW50Ojc2ODIsZGVjcmVtZW50Ojc2ODMsImluY3JlbWVudCB3cmFwIjozNDA1NSwiZGVjcmVtZW50IHdyYXAiOjM0MDU2LGludmVydDo1Mzg2fSxNdD17Y3c6MjMwNCxjY3c6MjMwNX0sU3Q9bmV3IHooITEsITEsITEsKGZ1bmN0aW9uKCl7fSkpO3JldHVybiBmdW5jdGlvbih0KXtmdW5jdGlvbiBlKCl7aWYoMD09PUoubGVuZ3RoKXcmJncudXBkYXRlKCksdHQ9bnVsbDtlbHNle3R0PUgubmV4dChlKSxmKCk7Zm9yKHZhciB0PUoubGVuZ3RoLTE7MDw9dDstLXQpe3ZhciByPUpbdF07ciYmcihQLG51bGwsMCl9Zy5mbHVzaCgpLHcmJncudXBkYXRlKCl9fWZ1bmN0aW9uIHIoKXshdHQmJjA8Si5sZW5ndGgmJih0dD1ILm5leHQoZSkpfWZ1bmN0aW9uIG4oKXt0dCYmKEguY2FuY2VsKGUpLHR0PW51bGwpfWZ1bmN0aW9uIGEodCl7dC5wcmV2ZW50RGVmYXVsdCgpLG4oKSxLLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QoKX0pKX1mdW5jdGlvbiBvKHQpe2cuZ2V0RXJyb3IoKSx5LnJlc3RvcmUoKSxSLnJlc3RvcmUoKSxPLnJlc3RvcmUoKSxGLnJlc3RvcmUoKSxVLnJlc3RvcmUoKSxHLnJlc3RvcmUoKSxELnJlc3RvcmUoKSx3JiZ3LnJlc3RvcmUoKSxXLnByb2NzLnJlZnJlc2goKSxyKCksUS5mb3JFYWNoKChmdW5jdGlvbih0KXt0KCl9KSl9ZnVuY3Rpb24gcyh0KXtmdW5jdGlvbiBlKHQsZSl7dmFyIHI9e30sbj17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oaSl7dmFyIGE9dFtpXTtpZihWLmlzRHluYW1pYyhhKSluW2ldPVYudW5ib3goYSxpKTtlbHNle2lmKGUmJkFycmF5LmlzQXJyYXkoYSkpZm9yKHZhciBvPTA7bzxhLmxlbmd0aDsrK28paWYoVi5pc0R5bmFtaWMoYVtvXSkpcmV0dXJuIHZvaWQobltpXT1WLnVuYm94KGEsaSkpO3JbaV09YX19KSkse2R5bmFtaWM6bixzdGF0aWM6cn19dmFyIHI9ZSh0LmNvbnRleHR8fHt9LCEwKSxuPWUodC51bmlmb3Jtc3x8e30sITApLGk9ZSh0LmF0dHJpYnV0ZXN8fHt9LCExKTt0PWUoZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0KXtpZih0IGluIHIpe3ZhciBlPXJbdF07ZGVsZXRlIHJbdF0sT2JqZWN0LmtleXMoZSkuZm9yRWFjaCgoZnVuY3Rpb24obil7clt0KyIuIituXT1lW25dfSkpfX12YXIgcj1qKHt9LHQpO3JldHVybiBkZWxldGUgci51bmlmb3JtcyxkZWxldGUgci5hdHRyaWJ1dGVzLGRlbGV0ZSByLmNvbnRleHQsZGVsZXRlIHIudmFvLCJzdGVuY2lsImluIHImJnIuc3RlbmNpbC5vcCYmKHIuc3RlbmNpbC5vcEJhY2s9ci5zdGVuY2lsLm9wRnJvbnQ9ci5zdGVuY2lsLm9wLGRlbGV0ZSByLnN0ZW5jaWwub3ApLGUoImJsZW5kIiksZSgiZGVwdGgiKSxlKCJjdWxsIiksZSgic3RlbmNpbCIpLGUoInBvbHlnb25PZmZzZXQiKSxlKCJzY2lzc29yIiksZSgic2FtcGxlIiksInZhbyJpbiB0JiYoci52YW89dC52YW8pLHJ9KHQpLCExKTt2YXIgYT17Z3B1VGltZTowLGNwdVRpbWU6MCxjb3VudDowfSxvPVcuY29tcGlsZSh0LGksbixyLGEpLHM9by5kcmF3LGw9by5iYXRjaCxjPW8uc2NvcGUsdT1bXTtyZXR1cm4gaigoZnVuY3Rpb24odCxlKXt2YXIgcjtpZigiZnVuY3Rpb24iPT10eXBlb2YgdClyZXR1cm4gYy5jYWxsKHRoaXMsbnVsbCx0LDApO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBlKWlmKCJudW1iZXIiPT10eXBlb2YgdClmb3Iocj0wO3I8dDsrK3IpYy5jYWxsKHRoaXMsbnVsbCxlLHIpO2Vsc2V7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIGMuY2FsbCh0aGlzLHQsZSwwKTtmb3Iocj0wO3I8dC5sZW5ndGg7KytyKWMuY2FsbCh0aGlzLHRbcl0sZSxyKX1lbHNlIGlmKCJudW1iZXIiPT10eXBlb2YgdCl7aWYoMDx0KXJldHVybiBsLmNhbGwodGhpcyxmdW5jdGlvbih0KXtmb3IoO3UubGVuZ3RoPHQ7KXUucHVzaChudWxsKTtyZXR1cm4gdX0oMHx0KSwwfHQpfWVsc2V7aWYoIUFycmF5LmlzQXJyYXkodCkpcmV0dXJuIHMuY2FsbCh0aGlzLHQpO2lmKHQubGVuZ3RoKXJldHVybiBsLmNhbGwodGhpcyx0LHQubGVuZ3RoKX19KSx7c3RhdHM6YSxkZXN0cm95OmZ1bmN0aW9uKCl7by5kZXN0cm95KCl9fSl9ZnVuY3Rpb24gbCh0LGUpe3ZhciByPTA7Vy5wcm9jcy5wb2xsKCk7dmFyIG49ZS5jb2xvcjtuJiYoZy5jbGVhckNvbG9yKCtuWzBdfHwwLCtuWzFdfHwwLCtuWzJdfHwwLCtuWzNdfHwwKSxyfD0xNjM4NCksImRlcHRoImluIGUmJihnLmNsZWFyRGVwdGgoK2UuZGVwdGgpLHJ8PTI1NiksInN0ZW5jaWwiaW4gZSYmKGcuY2xlYXJTdGVuY2lsKDB8ZS5zdGVuY2lsKSxyfD0xMDI0KSxnLmNsZWFyKHIpfWZ1bmN0aW9uIGModCl7cmV0dXJuIEoucHVzaCh0KSxyKCkse2NhbmNlbDpmdW5jdGlvbigpe3ZhciBlPU4oSix0KTtKW2VdPWZ1bmN0aW9uIHQoKXt2YXIgZT1OKEosdCk7SltlXT1KW0oubGVuZ3RoLTFdLC0tSi5sZW5ndGgsMD49Si5sZW5ndGgmJm4oKX19fX1mdW5jdGlvbiB1KCl7dmFyIHQ9WC52aWV3cG9ydCxlPVguc2Npc3Nvcl9ib3g7dFswXT10WzFdPWVbMF09ZVsxXT0wLFAudmlld3BvcnRXaWR0aD1QLmZyYW1lYnVmZmVyV2lkdGg9UC5kcmF3aW5nQnVmZmVyV2lkdGg9dFsyXT1lWzJdPWcuZHJhd2luZ0J1ZmZlcldpZHRoLFAudmlld3BvcnRIZWlnaHQ9UC5mcmFtZWJ1ZmZlckhlaWdodD1QLmRyYXdpbmdCdWZmZXJIZWlnaHQ9dFszXT1lWzNdPWcuZHJhd2luZ0J1ZmZlckhlaWdodH1mdW5jdGlvbiBmKCl7UC50aWNrKz0xLFAudGltZT1tKCksdSgpLFcucHJvY3MucG9sbCgpfWZ1bmN0aW9uIGgoKXtGLnJlZnJlc2goKSx1KCksVy5wcm9jcy5yZWZyZXNoKCksdyYmdy51cGRhdGUoKX1mdW5jdGlvbiBtKCl7cmV0dXJuKHEoKS1UKS8xZTN9aWYoISh0PWkodCkpKXJldHVybiBudWxsO3ZhciBnPXQuZ2wsdj1nLmdldENvbnRleHRBdHRyaWJ1dGVzKCk7Zy5pc0NvbnRleHRMb3N0KCk7dmFyIHk9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKGUpe3ZhciByO2U9ZS50b0xvd2VyQ2FzZSgpO3RyeXtyPW5bZV09dC5nZXRFeHRlbnNpb24oZSl9Y2F0Y2godCl7fXJldHVybiEhcn1mb3IodmFyIG49e30saT0wO2k8ZS5leHRlbnNpb25zLmxlbmd0aDsrK2kpe3ZhciBhPWUuZXh0ZW5zaW9uc1tpXTtpZighcihhKSlyZXR1cm4gZS5vbkRlc3Ryb3koKSxlLm9uRG9uZSgnIicrYSsnIiBleHRlbnNpb24gaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgY3VycmVudCBXZWJHTCBjb250ZXh0LCB0cnkgdXBncmFkaW5nIHlvdXIgc3lzdGVtIG9yIGEgZGlmZmVyZW50IGJyb3dzZXInKSxudWxsfXJldHVybiBlLm9wdGlvbmFsRXh0ZW5zaW9ucy5mb3JFYWNoKHIpLHtleHRlbnNpb25zOm4scmVzdG9yZTpmdW5jdGlvbigpe09iamVjdC5rZXlzKG4pLmZvckVhY2goKGZ1bmN0aW9uKHQpe2lmKG5bdF0mJiFyKHQpKXRocm93IEVycm9yKCIocmVnbCk6IGVycm9yIHJlc3RvcmluZyBleHRlbnNpb24gIit0KX0pKX19fShnLHQpO2lmKCF5KXJldHVybiBudWxsO3ZhciB4PWZ1bmN0aW9uKCl7dmFyIHQ9eyIiOjB9LGU9WyIiXTtyZXR1cm57aWQ6ZnVuY3Rpb24ocil7dmFyIG49dFtyXTtyZXR1cm4gbnx8KG49dFtyXT1lLmxlbmd0aCxlLnB1c2gociksbil9LHN0cjpmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX19fSgpLGI9e3Zhb0NvdW50OjAsYnVmZmVyQ291bnQ6MCxlbGVtZW50c0NvdW50OjAsZnJhbWVidWZmZXJDb3VudDowLHNoYWRlckNvdW50OjAsdGV4dHVyZUNvdW50OjAsY3ViZUNvdW50OjAscmVuZGVyYnVmZmVyQ291bnQ6MCxtYXhUZXh0dXJlVW5pdHM6MH0sXz15LmV4dGVuc2lvbnMsdz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIoKXt0aGlzLmVuZFF1ZXJ5SW5kZXg9dGhpcy5zdGFydFF1ZXJ5SW5kZXg9LTEsdGhpcy5zdW09MCx0aGlzLnN0YXRzPW51bGx9ZnVuY3Rpb24gbih0LGUsbil7dmFyIGk9by5wb3AoKXx8bmV3IHI7aS5zdGFydFF1ZXJ5SW5kZXg9dCxpLmVuZFF1ZXJ5SW5kZXg9ZSxpLnN1bT0wLGkuc3RhdHM9bixzLnB1c2goaSl9aWYoIWUuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5KXJldHVybiBudWxsO3ZhciBpPVtdLGE9W10sbz1bXSxzPVtdLGw9W10sYz1bXTtyZXR1cm57YmVnaW5RdWVyeTpmdW5jdGlvbih0KXt2YXIgcj1pLnBvcCgpfHxlLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeS5jcmVhdGVRdWVyeUVYVCgpO2UuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5LmJlZ2luUXVlcnlFWFQoMzUwMDcsciksYS5wdXNoKHIpLG4oYS5sZW5ndGgtMSxhLmxlbmd0aCx0KX0sZW5kUXVlcnk6ZnVuY3Rpb24oKXtlLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeS5lbmRRdWVyeUVYVCgzNTAwNyl9LHB1c2hTY29wZVN0YXRzOm4sdXBkYXRlOmZ1bmN0aW9uKCl7dmFyIHQscjtpZigwIT09KHQ9YS5sZW5ndGgpKXtjLmxlbmd0aD1NYXRoLm1heChjLmxlbmd0aCx0KzEpLGwubGVuZ3RoPU1hdGgubWF4KGwubGVuZ3RoLHQrMSksbFswXT0wO3ZhciBuPWNbMF09MDtmb3Iocj10PTA7cjxhLmxlbmd0aDsrK3Ipe3ZhciB1PWFbcl07ZS5leHRfZGlzam9pbnRfdGltZXJfcXVlcnkuZ2V0UXVlcnlPYmplY3RFWFQodSwzNDkxOSk/KG4rPWUuZXh0X2Rpc2pvaW50X3RpbWVyX3F1ZXJ5LmdldFF1ZXJ5T2JqZWN0RVhUKHUsMzQ5MTgpLGkucHVzaCh1KSk6YVt0KytdPXUsbFtyKzFdPW4sY1tyKzFdPXR9Zm9yKGEubGVuZ3RoPXQscj10PTA7cjxzLmxlbmd0aDsrK3Ipe3ZhciBmPShuPXNbcl0pLnN0YXJ0UXVlcnlJbmRleDt1PW4uZW5kUXVlcnlJbmRleDtuLnN1bSs9bFt1XS1sW2ZdLGY9Y1tmXSwodT1jW3VdKT09PWY/KG4uc3RhdHMuZ3B1VGltZSs9bi5zdW0vMWU2LG8ucHVzaChuKSk6KG4uc3RhcnRRdWVyeUluZGV4PWYsbi5lbmRRdWVyeUluZGV4PXUsc1t0KytdPW4pfXMubGVuZ3RoPXR9fSxnZXROdW1QZW5kaW5nUXVlcmllczpmdW5jdGlvbigpe3JldHVybiBhLmxlbmd0aH0sY2xlYXI6ZnVuY3Rpb24oKXtpLnB1c2guYXBwbHkoaSxhKTtmb3IodmFyIHQ9MDt0PGkubGVuZ3RoO3QrKyllLmV4dF9kaXNqb2ludF90aW1lcl9xdWVyeS5kZWxldGVRdWVyeUVYVChpW3RdKTthLmxlbmd0aD0wLGkubGVuZ3RoPTB9LHJlc3RvcmU6ZnVuY3Rpb24oKXthLmxlbmd0aD0wLGkubGVuZ3RoPTB9fX0oMCxfKSxUPXEoKSxNPWcuZHJhd2luZ0J1ZmZlcldpZHRoLEM9Zy5kcmF3aW5nQnVmZmVySGVpZ2h0LFA9e3RpY2s6MCx0aW1lOjAsdmlld3BvcnRXaWR0aDpNLHZpZXdwb3J0SGVpZ2h0OkMsZnJhbWVidWZmZXJXaWR0aDpNLGZyYW1lYnVmZmVySGVpZ2h0OkMsZHJhd2luZ0J1ZmZlcldpZHRoOk0sZHJhd2luZ0J1ZmZlckhlaWdodDpDLHBpeGVsUmF0aW86dC5waXhlbFJhdGlvfSxJPShNPXtlbGVtZW50czpudWxsLHByaW1pdGl2ZTo0LGNvdW50Oi0xLG9mZnNldDowLGluc3RhbmNlczotMX0sWShnLF8pKSxPPXAoZyxiLHQsKGZ1bmN0aW9uKHQpe3JldHVybiBELmRlc3Ryb3lCdWZmZXIodCl9KSksej1kKGcsXyxPLGIpLEQ9UyhnLF8sSSxiLE8seixNKSxSPUUoZyx4LGIsdCksRj1rKGcsXyxJLChmdW5jdGlvbigpe1cucHJvY3MucG9sbCgpfSksUCxiLHQpLFU9eXQoZyxfLDAsYix0KSxHPUEoZyxfLEksRixVLGIpLFc9QihnLHgsXyxJLE8seiwwLEcse30sRCxSLE0sUCx3LHQpLFg9KHg9TChnLEcsVy5wcm9jcy5wb2xsLFApLFcubmV4dCksWj1nLmNhbnZhcyxKPVtdLEs9W10sUT1bXSwkPVt0Lm9uRGVzdHJveV0sdHQ9bnVsbDtaJiYoWi5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixhLCExKSxaLmFkZEV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixvLCExKSk7dmFyIGV0PUcuc2V0RkJPPXMoe2ZyYW1lYnVmZmVyOlYuZGVmaW5lLmNhbGwobnVsbCwxLCJmcmFtZWJ1ZmZlciIpfSk7cmV0dXJuIGgoKSx2PWoocyx7Y2xlYXI6ZnVuY3Rpb24odCl7aWYoImZyYW1lYnVmZmVyImluIHQpaWYodC5mcmFtZWJ1ZmZlciYmImZyYW1lYnVmZmVyQ3ViZSI9PT10LmZyYW1lYnVmZmVyX3JlZ2xUeXBlKWZvcih2YXIgZT0wOzY+ZTsrK2UpZXQoaih7ZnJhbWVidWZmZXI6dC5mcmFtZWJ1ZmZlci5mYWNlc1tlXX0sdCksbCk7ZWxzZSBldCh0LGwpO2Vsc2UgbCgwLHQpfSxwcm9wOlYuZGVmaW5lLmJpbmQobnVsbCwxKSxjb250ZXh0OlYuZGVmaW5lLmJpbmQobnVsbCwyKSx0aGlzOlYuZGVmaW5lLmJpbmQobnVsbCwzKSxkcmF3OnMoe30pLGJ1ZmZlcjpmdW5jdGlvbih0KXtyZXR1cm4gTy5jcmVhdGUodCwzNDk2MiwhMSwhMSl9LGVsZW1lbnRzOmZ1bmN0aW9uKHQpe3JldHVybiB6LmNyZWF0ZSh0LCExKX0sdGV4dHVyZTpGLmNyZWF0ZTJELGN1YmU6Ri5jcmVhdGVDdWJlLHJlbmRlcmJ1ZmZlcjpVLmNyZWF0ZSxmcmFtZWJ1ZmZlcjpHLmNyZWF0ZSxmcmFtZWJ1ZmZlckN1YmU6Ry5jcmVhdGVDdWJlLHZhbzpELmNyZWF0ZVZBTyxhdHRyaWJ1dGVzOnYsZnJhbWU6YyxvbjpmdW5jdGlvbih0LGUpe3ZhciByO3N3aXRjaCh0KXtjYXNlImZyYW1lIjpyZXR1cm4gYyhlKTtjYXNlImxvc3QiOnI9SzticmVhaztjYXNlInJlc3RvcmUiOnI9UTticmVhaztjYXNlImRlc3Ryb3kiOnI9JH1yZXR1cm4gci5wdXNoKGUpLHtjYW5jZWw6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PHIubGVuZ3RoOysrdClpZihyW3RdPT09ZSl7clt0XT1yW3IubGVuZ3RoLTFdLHIucG9wKCk7YnJlYWt9fX19LGxpbWl0czpJLGhhc0V4dGVuc2lvbjpmdW5jdGlvbih0KXtyZXR1cm4gMDw9SS5leHRlbnNpb25zLmluZGV4T2YodC50b0xvd2VyQ2FzZSgpKX0scmVhZDp4LGRlc3Ryb3k6ZnVuY3Rpb24oKXtKLmxlbmd0aD0wLG4oKSxaJiYoWi5yZW1vdmVFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IixhKSxaLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndlYmdsY29udGV4dHJlc3RvcmVkIixvKSksUi5jbGVhcigpLEcuY2xlYXIoKSxVLmNsZWFyKCksRC5jbGVhcigpLEYuY2xlYXIoKSx6LmNsZWFyKCksTy5jbGVhcigpLHcmJncuY2xlYXIoKSwkLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QoKX0pKX0sX2dsOmcsX3JlZnJlc2g6aCxwb2xsOmZ1bmN0aW9uKCl7ZigpLHcmJncudXBkYXRlKCl9LG5vdzptLHN0YXRzOmJ9KSx0Lm9uRG9uZShudWxsLHYpLHZ9fSkpfSx7fV0sNTE3OltmdW5jdGlvbih0LGUscil7Ci8qIQogKiByZXBlYXQtc3RyaW5nIDxodHRwczovL2dpdGh1Yi5jb20vam9uc2NobGlua2VydC9yZXBlYXQtc3RyaW5nPgogKgogKiBDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNSwgSm9uIFNjaGxpbmtlcnQuCiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBNSVQgTGljZW5zZS4KICovCiJ1c2Ugc3RyaWN0Ijt2YXIgbixpPSIiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKCJzdHJpbmciIT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJleHBlY3RlZCBhIHN0cmluZyIpO2lmKDE9PT1lKXJldHVybiB0O2lmKDI9PT1lKXJldHVybiB0K3Q7dmFyIHI9dC5sZW5ndGgqZTtpZihuIT09dHx8dm9pZCAwPT09biluPXQsaT0iIjtlbHNlIGlmKGkubGVuZ3RoPj1yKXJldHVybiBpLnN1YnN0cigwLHIpO2Zvcig7cj5pLmxlbmd0aCYmZT4xOykxJmUmJihpKz10KSxlPj49MSx0Kz10O3JldHVybiBpPShpKz10KS5zdWJzdHIoMCxyKX19LHt9XSw1MTg6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24odCl7KGZ1bmN0aW9uKCl7ZS5leHBvcnRzPXQucGVyZm9ybWFuY2UmJnQucGVyZm9ybWFuY2Uubm93P2Z1bmN0aW9uKCl7cmV0dXJuIHBlcmZvcm1hbmNlLm5vdygpfTpEYXRlLm5vd3x8ZnVuY3Rpb24oKXtyZXR1cm4rbmV3IERhdGV9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0se31dLDUxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9dFt0Lmxlbmd0aC0xXSxuPWUsaT1lLTI7aT49MDstLWkpe3ZhciBhPXIsbz10W2ldOyhsPW8tKChyPWErbyktYSkpJiYodFstLW5dPXIscj1sKX12YXIgcz0wO2ZvcihpPW47aTxlOysraSl7dmFyIGw7YT10W2ldOyhsPShvPXIpLSgocj1hK28pLWEpKSYmKHRbcysrXT1sKX1yZXR1cm4gdFtzKytdPXIsdC5sZW5ndGg9cyx0fX0se31dLDUyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGk9dCgicm9idXN0LXN1bSIpLGE9dCgicm9idXN0LXNjYWxlIiksbz10KCJyb2J1c3QtY29tcHJlc3MiKTtmdW5jdGlvbiBzKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gbih0KHIoZVswXVswXSxlWzFdWzFdKSxyKC1lWzBdWzFdLGVbMV1bMF0pKSl9fWZ1bmN0aW9uIGwodCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGkpe3JldHVybiBuKHQoZSh0KHIoaVsxXVsxXSxpWzJdWzJdKSxyKC1pWzFdWzJdLGlbMl1bMV0pKSxpWzBdWzBdKSx0KGUodChyKGlbMV1bMF0saVsyXVsyXSkscigtaVsxXVsyXSxpWzJdWzBdKSksLWlbMF1bMV0pLGUodChyKGlbMV1bMF0saVsyXVsxXSkscigtaVsxXVsxXSxpWzJdWzBdKSksaVswXVsyXSkpKSl9fWZ1bmN0aW9uIGModCl7cmV0dXJuKDI9PT10P3M6Mz09PXQ/bDp2b2lkIDApKGksYSxuLG8pfXZhciB1PVtmdW5jdGlvbigpe3JldHVyblswXX0sZnVuY3Rpb24odCl7cmV0dXJuW3RbMF1bMF1dfV07ZnVuY3Rpb24gZih0LGUscixuLGksYSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3N3aXRjaChvLmxlbmd0aCl7Y2FzZSAwOnJldHVybiB0KG8pO2Nhc2UgMTpyZXR1cm4gZShvKTtjYXNlIDI6cmV0dXJuIHIobyk7Y2FzZSAzOnJldHVybiBuKG8pfXZhciBzPWlbby5sZW5ndGhdO3JldHVybiBzfHwocz1pW28ubGVuZ3RoXT1hKG8ubGVuZ3RoKSkscyhvKX19IWZ1bmN0aW9uKCl7Zm9yKDt1Lmxlbmd0aDw0Oyl1LnB1c2goYyh1Lmxlbmd0aCkpO2UuZXhwb3J0cz1mLmFwcGx5KHZvaWQgMCx1LmNvbmNhdChbdSxjXSkpO2Zvcih2YXIgdD0wO3Q8dS5sZW5ndGg7Kyt0KWUuZXhwb3J0c1t0XT11W3RdfSgpfSx7InJvYnVzdC1jb21wcmVzcyI6NTE5LCJyb2J1c3Qtc2NhbGUiOjUyNiwicm9idXN0LXN1bSI6NTI5LCJ0d28tcHJvZHVjdCI6NTc3fV0sNTIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInR3by1wcm9kdWN0IiksaT10KCJyb2J1c3Qtc3VtIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW4odFswXSxlWzBdKSxhPTE7YTx0Lmxlbmd0aDsrK2Epcj1pKHIsbih0W2FdLGVbYV0pKTtyZXR1cm4gcn19LHsicm9idXN0LXN1bSI6NTI5LCJ0d28tcHJvZHVjdCI6NTc3fV0sNTIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInR3by1wcm9kdWN0IiksaT10KCJyb2J1c3Qtc3VtIiksYT10KCJyb2J1c3Qtc3VidHJhY3QiKSxvPXQoInJvYnVzdC1zY2FsZSIpO2Z1bmN0aW9uIHModCl7cmV0dXJuKDM9PT10P2w6ND09PXQ/Yzo1PT09dD91OmYpKGksYSxuLG8pfWZ1bmN0aW9uIGwodCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGksYSxvKXt2YXIgcz1yKGlbMF0saVswXSksbD1uKHMsYVswXSksYz1uKHMsb1swXSksdT1yKGFbMF0sYVswXSksZj1uKHUsaVswXSksaD1uKHUsb1swXSkscD1yKG9bMF0sb1swXSksZD1uKHAsaVswXSksbT1uKHAsYVswXSksZz10KGUobSxoKSxlKGYsbCkpLHY9ZShkLGMpLHk9ZShnLHYpO3JldHVybiB5W3kubGVuZ3RoLTFdfX1mdW5jdGlvbiBjKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihpLGEsbyxzKXt2YXIgbD10KHIoaVswXSxpWzBdKSxyKGlbMV0saVsxXSkpLGM9bihsLGFbMF0pLHU9bihsLG9bMF0pLGY9bihsLHNbMF0pLGg9dChyKGFbMF0sYVswXSkscihhWzFdLGFbMV0pKSxwPW4oaCxpWzBdKSxkPW4oaCxvWzBdKSxtPW4oaCxzWzBdKSxnPXQocihvWzBdLG9bMF0pLHIob1sxXSxvWzFdKSksdj1uKGcsaVswXSkseT1uKGcsYVswXSkseD1uKGcsc1swXSksYj10KHIoc1swXSxzWzBdKSxyKHNbMV0sc1sxXSkpLF89bihiLGlbMF0pLHc9bihiLGFbMF0pLFQ9bihiLG9bMF0pLGs9dCh0KG4oZShULHgpLGFbMV0pLHQobihlKHcsbSksLW9bMV0pLG4oZSh5LGQpLHNbMV0pKSksdChuKGUodyxtKSxpWzFdKSx0KG4oZShfLGYpLC1hWzFdKSxuKGUocCxjKSxzWzFdKSkpKSxBPXQodChuKGUoVCx4KSxpWzFdKSx0KG4oZShfLGYpLC1vWzFdKSxuKGUodix1KSxzWzFdKSkpLHQobihlKHksZCksaVsxXSksdChuKGUodix1KSwtYVsxXSksbihlKHAsYyksb1sxXSkpKSksTT1lKGssQSk7cmV0dXJuIE1bTS5sZW5ndGgtMV19fWZ1bmN0aW9uIHUodCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGksYSxvLHMsbCl7dmFyIGM9dChyKGlbMF0saVswXSksdChyKGlbMV0saVsxXSkscihpWzJdLGlbMl0pKSksdT1uKGMsYVswXSksZj1uKGMsb1swXSksaD1uKGMsc1swXSkscD1uKGMsbFswXSksZD10KHIoYVswXSxhWzBdKSx0KHIoYVsxXSxhWzFdKSxyKGFbMl0sYVsyXSkpKSxtPW4oZCxpWzBdKSxnPW4oZCxvWzBdKSx2PW4oZCxzWzBdKSx5PW4oZCxsWzBdKSx4PXQocihvWzBdLG9bMF0pLHQocihvWzFdLG9bMV0pLHIob1syXSxvWzJdKSkpLGI9bih4LGlbMF0pLF89bih4LGFbMF0pLHc9bih4LHNbMF0pLFQ9bih4LGxbMF0pLGs9dChyKHNbMF0sc1swXSksdChyKHNbMV0sc1sxXSkscihzWzJdLHNbMl0pKSksQT1uKGssaVswXSksTT1uKGssYVswXSksUz1uKGssb1swXSksRT1uKGssbFswXSksTD10KHIobFswXSxsWzBdKSx0KHIobFsxXSxsWzFdKSxyKGxbMl0sbFsyXSkpKSxDPW4oTCxpWzBdKSxQPW4oTCxhWzBdKSxJPW4oTCxvWzBdKSxPPW4oTCxzWzBdKSx6PXQodCh0KG4odChuKGUoTyxFKSxvWzFdKSx0KG4oZShJLFQpLC1zWzFdKSxuKGUoUyx3KSxsWzFdKSkpLGFbMl0pLHQobih0KG4oZShPLEUpLGFbMV0pLHQobihlKFAseSksLXNbMV0pLG4oZShNLHYpLGxbMV0pKSksLW9bMl0pLG4odChuKGUoSSxUKSxhWzFdKSx0KG4oZShQLHkpLC1vWzFdKSxuKGUoXyxnKSxsWzFdKSkpLHNbMl0pKSksdChuKHQobihlKFMsdyksYVsxXSksdChuKGUoTSx2KSwtb1sxXSksbihlKF8sZyksc1sxXSkpKSwtbFsyXSksdChuKHQobihlKE8sRSksYVsxXSksdChuKGUoUCx5KSwtc1sxXSksbihlKE0sdiksbFsxXSkpKSxpWzJdKSxuKHQobihlKE8sRSksaVsxXSksdChuKGUoQyxwKSwtc1sxXSksbihlKEEsaCksbFsxXSkpKSwtYVsyXSkpKSksdCh0KG4odChuKGUoUCx5KSxpWzFdKSx0KG4oZShDLHApLC1hWzFdKSxuKGUobSx1KSxsWzFdKSkpLHNbMl0pLHQobih0KG4oZShNLHYpLGlbMV0pLHQobihlKEEsaCksLWFbMV0pLG4oZShtLHUpLHNbMV0pKSksLWxbMl0pLG4odChuKGUoUyx3KSxhWzFdKSx0KG4oZShNLHYpLC1vWzFdKSxuKGUoXyxnKSxzWzFdKSkpLGlbMl0pKSksdChuKHQobihlKFMsdyksaVsxXSksdChuKGUoQSxoKSwtb1sxXSksbihlKGIsZiksc1sxXSkpKSwtYVsyXSksdChuKHQobihlKE0sdiksaVsxXSksdChuKGUoQSxoKSwtYVsxXSksbihlKG0sdSksc1sxXSkpKSxvWzJdKSxuKHQobihlKF8sZyksaVsxXSksdChuKGUoYixmKSwtYVsxXSksbihlKG0sdSksb1sxXSkpKSwtc1syXSkpKSkpLEQ9dCh0KHQobih0KG4oZShPLEUpLG9bMV0pLHQobihlKEksVCksLXNbMV0pLG4oZShTLHcpLGxbMV0pKSksaVsyXSksbih0KG4oZShPLEUpLGlbMV0pLHQobihlKEMscCksLXNbMV0pLG4oZShBLGgpLGxbMV0pKSksLW9bMl0pKSx0KG4odChuKGUoSSxUKSxpWzFdKSx0KG4oZShDLHApLC1vWzFdKSxuKGUoYixmKSxsWzFdKSkpLHNbMl0pLG4odChuKGUoUyx3KSxpWzFdKSx0KG4oZShBLGgpLC1vWzFdKSxuKGUoYixmKSxzWzFdKSkpLC1sWzJdKSkpLHQodChuKHQobihlKEksVCksYVsxXSksdChuKGUoUCx5KSwtb1sxXSksbihlKF8sZyksbFsxXSkpKSxpWzJdKSxuKHQobihlKEksVCksaVsxXSksdChuKGUoQyxwKSwtb1sxXSksbihlKGIsZiksbFsxXSkpKSwtYVsyXSkpLHQobih0KG4oZShQLHkpLGlbMV0pLHQobihlKEMscCksLWFbMV0pLG4oZShtLHUpLGxbMV0pKSksb1syXSksbih0KG4oZShfLGcpLGlbMV0pLHQobihlKGIsZiksLWFbMV0pLG4oZShtLHUpLG9bMV0pKSksLWxbMl0pKSkpLFI9ZSh6LEQpO3JldHVybiBSW1IubGVuZ3RoLTFdfX1mdW5jdGlvbiBmKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihpLGEsbyxzLGwsYyl7dmFyIHU9dCh0KHIoaVswXSxpWzBdKSxyKGlbMV0saVsxXSkpLHQocihpWzJdLGlbMl0pLHIoaVszXSxpWzNdKSkpLGY9bih1LGFbMF0pLGg9bih1LG9bMF0pLHA9bih1LHNbMF0pLGQ9bih1LGxbMF0pLG09bih1LGNbMF0pLGc9dCh0KHIoYVswXSxhWzBdKSxyKGFbMV0sYVsxXSkpLHQocihhWzJdLGFbMl0pLHIoYVszXSxhWzNdKSkpLHY9bihnLGlbMF0pLHk9bihnLG9bMF0pLHg9bihnLHNbMF0pLGI9bihnLGxbMF0pLF89bihnLGNbMF0pLHc9dCh0KHIob1swXSxvWzBdKSxyKG9bMV0sb1sxXSkpLHQocihvWzJdLG9bMl0pLHIob1szXSxvWzNdKSkpLFQ9bih3LGlbMF0pLGs9bih3LGFbMF0pLEE9bih3LHNbMF0pLE09bih3LGxbMF0pLFM9bih3LGNbMF0pLEU9dCh0KHIoc1swXSxzWzBdKSxyKHNbMV0sc1sxXSkpLHQocihzWzJdLHNbMl0pLHIoc1szXSxzWzNdKSkpLEw9bihFLGlbMF0pLEM9bihFLGFbMF0pLFA9bihFLG9bMF0pLEk9bihFLGxbMF0pLE89bihFLGNbMF0pLHo9dCh0KHIobFswXSxsWzBdKSxyKGxbMV0sbFsxXSkpLHQocihsWzJdLGxbMl0pLHIobFszXSxsWzNdKSkpLEQ9bih6LGlbMF0pLFI9bih6LGFbMF0pLEY9bih6LG9bMF0pLEI9bih6LHNbMF0pLE49bih6LGNbMF0pLGo9dCh0KHIoY1swXSxjWzBdKSxyKGNbMV0sY1sxXSkpLHQocihjWzJdLGNbMl0pLHIoY1szXSxjWzNdKSkpLFU9bihqLGlbMF0pLFY9bihqLGFbMF0pLEg9bihqLG9bMF0pLHE9bihqLHNbMF0pLEc9bihqLGxbMF0pLFk9dCh0KHQobih0KHQobih0KG4oZShHLE4pLHNbMV0pLHQobihlKHEsTyksLWxbMV0pLG4oZShCLEkpLGNbMV0pKSksb1syXSksbih0KG4oZShHLE4pLG9bMV0pLHQobihlKEgsUyksLWxbMV0pLG4oZShGLE0pLGNbMV0pKSksLXNbMl0pKSx0KG4odChuKGUocSxPKSxvWzFdKSx0KG4oZShILFMpLC1zWzFdKSxuKGUoUCxBKSxjWzFdKSkpLGxbMl0pLG4odChuKGUoQixJKSxvWzFdKSx0KG4oZShGLE0pLC1zWzFdKSxuKGUoUCxBKSxsWzFdKSkpLC1jWzJdKSkpLGFbM10pLHQobih0KHQobih0KG4oZShHLE4pLHNbMV0pLHQobihlKHEsTyksLWxbMV0pLG4oZShCLEkpLGNbMV0pKSksYVsyXSksbih0KG4oZShHLE4pLGFbMV0pLHQobihlKFYsXyksLWxbMV0pLG4oZShSLGIpLGNbMV0pKSksLXNbMl0pKSx0KG4odChuKGUocSxPKSxhWzFdKSx0KG4oZShWLF8pLC1zWzFdKSxuKGUoQyx4KSxjWzFdKSkpLGxbMl0pLG4odChuKGUoQixJKSxhWzFdKSx0KG4oZShSLGIpLC1zWzFdKSxuKGUoQyx4KSxsWzFdKSkpLC1jWzJdKSkpLC1vWzNdKSxuKHQodChuKHQobihlKEcsTiksb1sxXSksdChuKGUoSCxTKSwtbFsxXSksbihlKEYsTSksY1sxXSkpKSxhWzJdKSxuKHQobihlKEcsTiksYVsxXSksdChuKGUoVixfKSwtbFsxXSksbihlKFIsYiksY1sxXSkpKSwtb1syXSkpLHQobih0KG4oZShILFMpLGFbMV0pLHQobihlKFYsXyksLW9bMV0pLG4oZShrLHkpLGNbMV0pKSksbFsyXSksbih0KG4oZShGLE0pLGFbMV0pLHQobihlKFIsYiksLW9bMV0pLG4oZShrLHkpLGxbMV0pKSksLWNbMl0pKSksc1szXSkpKSx0KHQobih0KHQobih0KG4oZShxLE8pLG9bMV0pLHQobihlKEgsUyksLXNbMV0pLG4oZShQLEEpLGNbMV0pKSksYVsyXSksbih0KG4oZShxLE8pLGFbMV0pLHQobihlKFYsXyksLXNbMV0pLG4oZShDLHgpLGNbMV0pKSksLW9bMl0pKSx0KG4odChuKGUoSCxTKSxhWzFdKSx0KG4oZShWLF8pLC1vWzFdKSxuKGUoayx5KSxjWzFdKSkpLHNbMl0pLG4odChuKGUoUCxBKSxhWzFdKSx0KG4oZShDLHgpLC1vWzFdKSxuKGUoayx5KSxzWzFdKSkpLC1jWzJdKSkpLC1sWzNdKSxuKHQodChuKHQobihlKEIsSSksb1sxXSksdChuKGUoRixNKSwtc1sxXSksbihlKFAsQSksbFsxXSkpKSxhWzJdKSxuKHQobihlKEIsSSksYVsxXSksdChuKGUoUixiKSwtc1sxXSksbihlKEMseCksbFsxXSkpKSwtb1syXSkpLHQobih0KG4oZShGLE0pLGFbMV0pLHQobihlKFIsYiksLW9bMV0pLG4oZShrLHkpLGxbMV0pKSksc1syXSksbih0KG4oZShQLEEpLGFbMV0pLHQobihlKEMseCksLW9bMV0pLG4oZShrLHkpLHNbMV0pKSksLWxbMl0pKSksY1szXSkpLHQobih0KHQobih0KG4oZShHLE4pLHNbMV0pLHQobihlKHEsTyksLWxbMV0pLG4oZShCLEkpLGNbMV0pKSksYVsyXSksbih0KG4oZShHLE4pLGFbMV0pLHQobihlKFYsXyksLWxbMV0pLG4oZShSLGIpLGNbMV0pKSksLXNbMl0pKSx0KG4odChuKGUocSxPKSxhWzFdKSx0KG4oZShWLF8pLC1zWzFdKSxuKGUoQyx4KSxjWzFdKSkpLGxbMl0pLG4odChuKGUoQixJKSxhWzFdKSx0KG4oZShSLGIpLC1zWzFdKSxuKGUoQyx4KSxsWzFdKSkpLC1jWzJdKSkpLGlbM10pLG4odCh0KG4odChuKGUoRyxOKSxzWzFdKSx0KG4oZShxLE8pLC1sWzFdKSxuKGUoQixJKSxjWzFdKSkpLGlbMl0pLG4odChuKGUoRyxOKSxpWzFdKSx0KG4oZShVLG0pLC1sWzFdKSxuKGUoRCxkKSxjWzFdKSkpLC1zWzJdKSksdChuKHQobihlKHEsTyksaVsxXSksdChuKGUoVSxtKSwtc1sxXSksbihlKEwscCksY1sxXSkpKSxsWzJdKSxuKHQobihlKEIsSSksaVsxXSksdChuKGUoRCxkKSwtc1sxXSksbihlKEwscCksbFsxXSkpKSwtY1syXSkpKSwtYVszXSkpKSksdCh0KHQobih0KHQobih0KG4oZShHLE4pLGFbMV0pLHQobihlKFYsXyksLWxbMV0pLG4oZShSLGIpLGNbMV0pKSksaVsyXSksbih0KG4oZShHLE4pLGlbMV0pLHQobihlKFUsbSksLWxbMV0pLG4oZShELGQpLGNbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoVixfKSxpWzFdKSx0KG4oZShVLG0pLC1hWzFdKSxuKGUodixmKSxjWzFdKSkpLGxbMl0pLG4odChuKGUoUixiKSxpWzFdKSx0KG4oZShELGQpLC1hWzFdKSxuKGUodixmKSxsWzFdKSkpLC1jWzJdKSkpLHNbM10pLG4odCh0KG4odChuKGUocSxPKSxhWzFdKSx0KG4oZShWLF8pLC1zWzFdKSxuKGUoQyx4KSxjWzFdKSkpLGlbMl0pLG4odChuKGUocSxPKSxpWzFdKSx0KG4oZShVLG0pLC1zWzFdKSxuKGUoTCxwKSxjWzFdKSkpLC1hWzJdKSksdChuKHQobihlKFYsXyksaVsxXSksdChuKGUoVSxtKSwtYVsxXSksbihlKHYsZiksY1sxXSkpKSxzWzJdKSxuKHQobihlKEMseCksaVsxXSksdChuKGUoTCxwKSwtYVsxXSksbihlKHYsZiksc1sxXSkpKSwtY1syXSkpKSwtbFszXSkpLHQobih0KHQobih0KG4oZShCLEkpLGFbMV0pLHQobihlKFIsYiksLXNbMV0pLG4oZShDLHgpLGxbMV0pKSksaVsyXSksbih0KG4oZShCLEkpLGlbMV0pLHQobihlKEQsZCksLXNbMV0pLG4oZShMLHApLGxbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoUixiKSxpWzFdKSx0KG4oZShELGQpLC1hWzFdKSxuKGUodixmKSxsWzFdKSkpLHNbMl0pLG4odChuKGUoQyx4KSxpWzFdKSx0KG4oZShMLHApLC1hWzFdKSxuKGUodixmKSxzWzFdKSkpLC1sWzJdKSkpLGNbM10pLG4odCh0KG4odChuKGUocSxPKSxvWzFdKSx0KG4oZShILFMpLC1zWzFdKSxuKGUoUCxBKSxjWzFdKSkpLGFbMl0pLG4odChuKGUocSxPKSxhWzFdKSx0KG4oZShWLF8pLC1zWzFdKSxuKGUoQyx4KSxjWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEgsUyksYVsxXSksdChuKGUoVixfKSwtb1sxXSksbihlKGsseSksY1sxXSkpKSxzWzJdKSxuKHQobihlKFAsQSksYVsxXSksdChuKGUoQyx4KSwtb1sxXSksbihlKGsseSksc1sxXSkpKSwtY1syXSkpKSxpWzNdKSkpLHQodChuKHQodChuKHQobihlKHEsTyksb1sxXSksdChuKGUoSCxTKSwtc1sxXSksbihlKFAsQSksY1sxXSkpKSxpWzJdKSxuKHQobihlKHEsTyksaVsxXSksdChuKGUoVSxtKSwtc1sxXSksbihlKEwscCksY1sxXSkpKSwtb1syXSkpLHQobih0KG4oZShILFMpLGlbMV0pLHQobihlKFUsbSksLW9bMV0pLG4oZShULGgpLGNbMV0pKSksc1syXSksbih0KG4oZShQLEEpLGlbMV0pLHQobihlKEwscCksLW9bMV0pLG4oZShULGgpLHNbMV0pKSksLWNbMl0pKSksLWFbM10pLG4odCh0KG4odChuKGUocSxPKSxhWzFdKSx0KG4oZShWLF8pLC1zWzFdKSxuKGUoQyx4KSxjWzFdKSkpLGlbMl0pLG4odChuKGUocSxPKSxpWzFdKSx0KG4oZShVLG0pLC1zWzFdKSxuKGUoTCxwKSxjWzFdKSkpLC1hWzJdKSksdChuKHQobihlKFYsXyksaVsxXSksdChuKGUoVSxtKSwtYVsxXSksbihlKHYsZiksY1sxXSkpKSxzWzJdKSxuKHQobihlKEMseCksaVsxXSksdChuKGUoTCxwKSwtYVsxXSksbihlKHYsZiksc1sxXSkpKSwtY1syXSkpKSxvWzNdKSksdChuKHQodChuKHQobihlKEgsUyksYVsxXSksdChuKGUoVixfKSwtb1sxXSksbihlKGsseSksY1sxXSkpKSxpWzJdKSxuKHQobihlKEgsUyksaVsxXSksdChuKGUoVSxtKSwtb1sxXSksbihlKFQsaCksY1sxXSkpKSwtYVsyXSkpLHQobih0KG4oZShWLF8pLGlbMV0pLHQobihlKFUsbSksLWFbMV0pLG4oZSh2LGYpLGNbMV0pKSksb1syXSksbih0KG4oZShrLHkpLGlbMV0pLHQobihlKFQsaCksLWFbMV0pLG4oZSh2LGYpLG9bMV0pKSksLWNbMl0pKSksLXNbM10pLG4odCh0KG4odChuKGUoUCxBKSxhWzFdKSx0KG4oZShDLHgpLC1vWzFdKSxuKGUoayx5KSxzWzFdKSkpLGlbMl0pLG4odChuKGUoUCxBKSxpWzFdKSx0KG4oZShMLHApLC1vWzFdKSxuKGUoVCxoKSxzWzFdKSkpLC1hWzJdKSksdChuKHQobihlKEMseCksaVsxXSksdChuKGUoTCxwKSwtYVsxXSksbihlKHYsZiksc1sxXSkpKSxvWzJdKSxuKHQobihlKGsseSksaVsxXSksdChuKGUoVCxoKSwtYVsxXSksbihlKHYsZiksb1sxXSkpKSwtc1syXSkpKSxjWzNdKSkpKSksVz10KHQodChuKHQodChuKHQobihlKEcsTiksc1sxXSksdChuKGUocSxPKSwtbFsxXSksbihlKEIsSSksY1sxXSkpKSxvWzJdKSxuKHQobihlKEcsTiksb1sxXSksdChuKGUoSCxTKSwtbFsxXSksbihlKEYsTSksY1sxXSkpKSwtc1syXSkpLHQobih0KG4oZShxLE8pLG9bMV0pLHQobihlKEgsUyksLXNbMV0pLG4oZShQLEEpLGNbMV0pKSksbFsyXSksbih0KG4oZShCLEkpLG9bMV0pLHQobihlKEYsTSksLXNbMV0pLG4oZShQLEEpLGxbMV0pKSksLWNbMl0pKSksaVszXSksdChuKHQodChuKHQobihlKEcsTiksc1sxXSksdChuKGUocSxPKSwtbFsxXSksbihlKEIsSSksY1sxXSkpKSxpWzJdKSxuKHQobihlKEcsTiksaVsxXSksdChuKGUoVSxtKSwtbFsxXSksbihlKEQsZCksY1sxXSkpKSwtc1syXSkpLHQobih0KG4oZShxLE8pLGlbMV0pLHQobihlKFUsbSksLXNbMV0pLG4oZShMLHApLGNbMV0pKSksbFsyXSksbih0KG4oZShCLEkpLGlbMV0pLHQobihlKEQsZCksLXNbMV0pLG4oZShMLHApLGxbMV0pKSksLWNbMl0pKSksLW9bM10pLG4odCh0KG4odChuKGUoRyxOKSxvWzFdKSx0KG4oZShILFMpLC1sWzFdKSxuKGUoRixNKSxjWzFdKSkpLGlbMl0pLG4odChuKGUoRyxOKSxpWzFdKSx0KG4oZShVLG0pLC1sWzFdKSxuKGUoRCxkKSxjWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEgsUyksaVsxXSksdChuKGUoVSxtKSwtb1sxXSksbihlKFQsaCksY1sxXSkpKSxsWzJdKSxuKHQobihlKEYsTSksaVsxXSksdChuKGUoRCxkKSwtb1sxXSksbihlKFQsaCksbFsxXSkpKSwtY1syXSkpKSxzWzNdKSkpLHQodChuKHQodChuKHQobihlKHEsTyksb1sxXSksdChuKGUoSCxTKSwtc1sxXSksbihlKFAsQSksY1sxXSkpKSxpWzJdKSxuKHQobihlKHEsTyksaVsxXSksdChuKGUoVSxtKSwtc1sxXSksbihlKEwscCksY1sxXSkpKSwtb1syXSkpLHQobih0KG4oZShILFMpLGlbMV0pLHQobihlKFUsbSksLW9bMV0pLG4oZShULGgpLGNbMV0pKSksc1syXSksbih0KG4oZShQLEEpLGlbMV0pLHQobihlKEwscCksLW9bMV0pLG4oZShULGgpLHNbMV0pKSksLWNbMl0pKSksLWxbM10pLG4odCh0KG4odChuKGUoQixJKSxvWzFdKSx0KG4oZShGLE0pLC1zWzFdKSxuKGUoUCxBKSxsWzFdKSkpLGlbMl0pLG4odChuKGUoQixJKSxpWzFdKSx0KG4oZShELGQpLC1zWzFdKSxuKGUoTCxwKSxsWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEYsTSksaVsxXSksdChuKGUoRCxkKSwtb1sxXSksbihlKFQsaCksbFsxXSkpKSxzWzJdKSxuKHQobihlKFAsQSksaVsxXSksdChuKGUoTCxwKSwtb1sxXSksbihlKFQsaCksc1sxXSkpKSwtbFsyXSkpKSxjWzNdKSksdChuKHQodChuKHQobihlKEcsTiksb1sxXSksdChuKGUoSCxTKSwtbFsxXSksbihlKEYsTSksY1sxXSkpKSxhWzJdKSxuKHQobihlKEcsTiksYVsxXSksdChuKGUoVixfKSwtbFsxXSksbihlKFIsYiksY1sxXSkpKSwtb1syXSkpLHQobih0KG4oZShILFMpLGFbMV0pLHQobihlKFYsXyksLW9bMV0pLG4oZShrLHkpLGNbMV0pKSksbFsyXSksbih0KG4oZShGLE0pLGFbMV0pLHQobihlKFIsYiksLW9bMV0pLG4oZShrLHkpLGxbMV0pKSksLWNbMl0pKSksaVszXSksbih0KHQobih0KG4oZShHLE4pLG9bMV0pLHQobihlKEgsUyksLWxbMV0pLG4oZShGLE0pLGNbMV0pKSksaVsyXSksbih0KG4oZShHLE4pLGlbMV0pLHQobihlKFUsbSksLWxbMV0pLG4oZShELGQpLGNbMV0pKSksLW9bMl0pKSx0KG4odChuKGUoSCxTKSxpWzFdKSx0KG4oZShVLG0pLC1vWzFdKSxuKGUoVCxoKSxjWzFdKSkpLGxbMl0pLG4odChuKGUoRixNKSxpWzFdKSx0KG4oZShELGQpLC1vWzFdKSxuKGUoVCxoKSxsWzFdKSkpLC1jWzJdKSkpLC1hWzNdKSkpKSx0KHQodChuKHQodChuKHQobihlKEcsTiksYVsxXSksdChuKGUoVixfKSwtbFsxXSksbihlKFIsYiksY1sxXSkpKSxpWzJdKSxuKHQobihlKEcsTiksaVsxXSksdChuKGUoVSxtKSwtbFsxXSksbihlKEQsZCksY1sxXSkpKSwtYVsyXSkpLHQobih0KG4oZShWLF8pLGlbMV0pLHQobihlKFUsbSksLWFbMV0pLG4oZSh2LGYpLGNbMV0pKSksbFsyXSksbih0KG4oZShSLGIpLGlbMV0pLHQobihlKEQsZCksLWFbMV0pLG4oZSh2LGYpLGxbMV0pKSksLWNbMl0pKSksb1szXSksbih0KHQobih0KG4oZShILFMpLGFbMV0pLHQobihlKFYsXyksLW9bMV0pLG4oZShrLHkpLGNbMV0pKSksaVsyXSksbih0KG4oZShILFMpLGlbMV0pLHQobihlKFUsbSksLW9bMV0pLG4oZShULGgpLGNbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoVixfKSxpWzFdKSx0KG4oZShVLG0pLC1hWzFdKSxuKGUodixmKSxjWzFdKSkpLG9bMl0pLG4odChuKGUoayx5KSxpWzFdKSx0KG4oZShULGgpLC1hWzFdKSxuKGUodixmKSxvWzFdKSkpLC1jWzJdKSkpLC1sWzNdKSksdChuKHQodChuKHQobihlKEYsTSksYVsxXSksdChuKGUoUixiKSwtb1sxXSksbihlKGsseSksbFsxXSkpKSxpWzJdKSxuKHQobihlKEYsTSksaVsxXSksdChuKGUoRCxkKSwtb1sxXSksbihlKFQsaCksbFsxXSkpKSwtYVsyXSkpLHQobih0KG4oZShSLGIpLGlbMV0pLHQobihlKEQsZCksLWFbMV0pLG4oZSh2LGYpLGxbMV0pKSksb1syXSksbih0KG4oZShrLHkpLGlbMV0pLHQobihlKFQsaCksLWFbMV0pLG4oZSh2LGYpLG9bMV0pKSksLWxbMl0pKSksY1szXSksbih0KHQobih0KG4oZShCLEkpLG9bMV0pLHQobihlKEYsTSksLXNbMV0pLG4oZShQLEEpLGxbMV0pKSksYVsyXSksbih0KG4oZShCLEkpLGFbMV0pLHQobihlKFIsYiksLXNbMV0pLG4oZShDLHgpLGxbMV0pKSksLW9bMl0pKSx0KG4odChuKGUoRixNKSxhWzFdKSx0KG4oZShSLGIpLC1vWzFdKSxuKGUoayx5KSxsWzFdKSkpLHNbMl0pLG4odChuKGUoUCxBKSxhWzFdKSx0KG4oZShDLHgpLC1vWzFdKSxuKGUoayx5KSxzWzFdKSkpLC1sWzJdKSkpLGlbM10pKSksdCh0KG4odCh0KG4odChuKGUoQixJKSxvWzFdKSx0KG4oZShGLE0pLC1zWzFdKSxuKGUoUCxBKSxsWzFdKSkpLGlbMl0pLG4odChuKGUoQixJKSxpWzFdKSx0KG4oZShELGQpLC1zWzFdKSxuKGUoTCxwKSxsWzFdKSkpLC1vWzJdKSksdChuKHQobihlKEYsTSksaVsxXSksdChuKGUoRCxkKSwtb1sxXSksbihlKFQsaCksbFsxXSkpKSxzWzJdKSxuKHQobihlKFAsQSksaVsxXSksdChuKGUoTCxwKSwtb1sxXSksbihlKFQsaCksc1sxXSkpKSwtbFsyXSkpKSwtYVszXSksbih0KHQobih0KG4oZShCLEkpLGFbMV0pLHQobihlKFIsYiksLXNbMV0pLG4oZShDLHgpLGxbMV0pKSksaVsyXSksbih0KG4oZShCLEkpLGlbMV0pLHQobihlKEQsZCksLXNbMV0pLG4oZShMLHApLGxbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoUixiKSxpWzFdKSx0KG4oZShELGQpLC1hWzFdKSxuKGUodixmKSxsWzFdKSkpLHNbMl0pLG4odChuKGUoQyx4KSxpWzFdKSx0KG4oZShMLHApLC1hWzFdKSxuKGUodixmKSxzWzFdKSkpLC1sWzJdKSkpLG9bM10pKSx0KG4odCh0KG4odChuKGUoRixNKSxhWzFdKSx0KG4oZShSLGIpLC1vWzFdKSxuKGUoayx5KSxsWzFdKSkpLGlbMl0pLG4odChuKGUoRixNKSxpWzFdKSx0KG4oZShELGQpLC1vWzFdKSxuKGUoVCxoKSxsWzFdKSkpLC1hWzJdKSksdChuKHQobihlKFIsYiksaVsxXSksdChuKGUoRCxkKSwtYVsxXSksbihlKHYsZiksbFsxXSkpKSxvWzJdKSxuKHQobihlKGsseSksaVsxXSksdChuKGUoVCxoKSwtYVsxXSksbihlKHYsZiksb1sxXSkpKSwtbFsyXSkpKSwtc1szXSksbih0KHQobih0KG4oZShQLEEpLGFbMV0pLHQobihlKEMseCksLW9bMV0pLG4oZShrLHkpLHNbMV0pKSksaVsyXSksbih0KG4oZShQLEEpLGlbMV0pLHQobihlKEwscCksLW9bMV0pLG4oZShULGgpLHNbMV0pKSksLWFbMl0pKSx0KG4odChuKGUoQyx4KSxpWzFdKSx0KG4oZShMLHApLC1hWzFdKSxuKGUodixmKSxzWzFdKSkpLG9bMl0pLG4odChuKGUoayx5KSxpWzFdKSx0KG4oZShULGgpLC1hWzFdKSxuKGUodixmKSxvWzFdKSkpLC1zWzJdKSkpLGxbM10pKSkpKSxYPWUoWSxXKTtyZXR1cm4gWFtYLmxlbmd0aC0xXX19dmFyIGg9W2Z1bmN0aW9uKCl7cmV0dXJuIDB9LGZ1bmN0aW9uKCl7cmV0dXJuIDB9LGZ1bmN0aW9uKCl7cmV0dXJuIDB9XTtmdW5jdGlvbiBwKHQpe3ZhciBlPWhbdC5sZW5ndGhdO3JldHVybiBlfHwoZT1oW3QubGVuZ3RoXT1zKHQubGVuZ3RoKSksZS5hcHBseSh2b2lkIDAsdCl9ZnVuY3Rpb24gZCh0LGUscixuLGksYSxvLHMpe3JldHVybiBmdW5jdGlvbihlLHIsbCxjLHUsZil7c3dpdGNoKGFyZ3VtZW50cy5sZW5ndGgpe2Nhc2UgMDpjYXNlIDE6cmV0dXJuIDA7Y2FzZSAyOnJldHVybiBuKGUscik7Y2FzZSAzOnJldHVybiBpKGUscixsKTtjYXNlIDQ6cmV0dXJuIGEoZSxyLGwsYyk7Y2FzZSA1OnJldHVybiBvKGUscixsLGMsdSk7Y2FzZSA2OnJldHVybiBzKGUscixsLGMsdSxmKX1mb3IodmFyIGg9bmV3IEFycmF5KGFyZ3VtZW50cy5sZW5ndGgpLHA9MDtwPGFyZ3VtZW50cy5sZW5ndGg7KytwKWhbcF09YXJndW1lbnRzW3BdO3JldHVybiB0KGgpfX0hZnVuY3Rpb24oKXtmb3IoO2gubGVuZ3RoPD02OyloLnB1c2gocyhoLmxlbmd0aCkpO2UuZXhwb3J0cz1kLmFwcGx5KHZvaWQgMCxbcF0uY29uY2F0KGgpKTtmb3IodmFyIHQ9MDt0PD02OysrdCllLmV4cG9ydHNbdF09aFt0XX0oKX0seyJyb2J1c3Qtc2NhbGUiOjUyNiwicm9idXN0LXN1YnRyYWN0Ijo1MjgsInJvYnVzdC1zdW0iOjUyOSwidHdvLXByb2R1Y3QiOjU3N31dLDUyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJyb2J1c3QtZGV0ZXJtaW5hbnQiKTtmdW5jdGlvbiBpKHQpe3ZhciBlPTI9PT10P2E6bztyZXR1cm4gZSh0PDM/blt0XTpuKX1mdW5jdGlvbiBhKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3JldHVyblt0KFtbK3JbMF0sK2VbMF1bMV1dLFsrclsxXSwrZVsxXVsxXV1dKSx0KFtbK2VbMF1bMF0sK3JbMF1dLFsrZVsxXVswXSwrclsxXV1dKSx0KGUpXX19ZnVuY3Rpb24gbyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm5bdChbWytyWzBdLCtlWzBdWzFdLCtlWzBdWzJdXSxbK3JbMV0sK2VbMV1bMV0sK2VbMV1bMl1dLFsrclsyXSwrZVsyXVsxXSwrZVsyXVsyXV1dKSx0KFtbK2VbMF1bMF0sK3JbMF0sK2VbMF1bMl1dLFsrZVsxXVswXSwrclsxXSwrZVsxXVsyXV0sWytlWzJdWzBdLCtyWzJdLCtlWzJdWzJdXV0pLHQoW1srZVswXVswXSwrZVswXVsxXSwrclswXV0sWytlWzFdWzBdLCtlWzFdWzFdLCtyWzFdXSxbK2VbMl1bMF0sK2VbMl1bMV0sK3JbMl1dXSksdChlKV19fXZhciBzPVtmdW5jdGlvbigpe3JldHVybltbMF1dfSxmdW5jdGlvbih0LGUpe3JldHVybltbZVswXV0sW3RbMF1bMF1dXX1dO2Z1bmN0aW9uIGwodCxlLHIsbixpLGEpe3JldHVybiBmdW5jdGlvbihvLHMpe3N3aXRjaChvLmxlbmd0aCl7Y2FzZSAwOnJldHVybiB0KG8scyk7Y2FzZSAxOnJldHVybiBlKG8scyk7Y2FzZSAyOnJldHVybiByKG8scyk7Y2FzZSAzOnJldHVybiBuKG8scyl9dmFyIGw9aVtvLmxlbmd0aF07cmV0dXJuIGx8fChsPWlbby5sZW5ndGhdPWEoby5sZW5ndGgpKSxsKG8scyl9fSFmdW5jdGlvbigpe2Zvcig7cy5sZW5ndGg8PTM7KXMucHVzaChpKHMubGVuZ3RoKSk7ZS5leHBvcnRzPWwuYXBwbHkodm9pZCAwLHMuY29uY2F0KFtzLGldKSk7Zm9yKHZhciB0PTA7dDwzOysrdCllLmV4cG9ydHNbdF09c1t0XX0oKX0seyJyb2J1c3QtZGV0ZXJtaW5hbnQiOjUyMH1dLDUyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGk9dCgicm9idXN0LXN1bSIpLGE9dCgicm9idXN0LXNjYWxlIiksbz10KCJyb2J1c3Qtc3VidHJhY3QiKTtmdW5jdGlvbiBzKHQsZSxyLG4pe3JldHVybiBmdW5jdGlvbihyLGksYSl7dmFyIG89dCh0KGUoaVsxXSxhWzBdKSxlKC1hWzFdLGlbMF0pKSx0KGUoclsxXSxpWzBdKSxlKC1pWzFdLHJbMF0pKSkscz10KGUoclsxXSxhWzBdKSxlKC1hWzFdLHJbMF0pKSxsPW4obyxzKTtyZXR1cm4gbFtsLmxlbmd0aC0xXX19ZnVuY3Rpb24gbCh0LGUscixuKXtyZXR1cm4gZnVuY3Rpb24oaSxhLG8scyl7dmFyIGw9dCh0KHIodChlKG9bMV0sc1swXSksZSgtc1sxXSxvWzBdKSksYVsyXSksdChyKHQoZShhWzFdLHNbMF0pLGUoLXNbMV0sYVswXSkpLC1vWzJdKSxyKHQoZShhWzFdLG9bMF0pLGUoLW9bMV0sYVswXSkpLHNbMl0pKSksdChyKHQoZShhWzFdLHNbMF0pLGUoLXNbMV0sYVswXSkpLGlbMl0pLHQocih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSwtYVsyXSkscih0KGUoaVsxXSxhWzBdKSxlKC1hWzFdLGlbMF0pKSxzWzJdKSkpKSxjPXQodChyKHQoZShvWzFdLHNbMF0pLGUoLXNbMV0sb1swXSkpLGlbMl0pLHQocih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSwtb1syXSkscih0KGUoaVsxXSxvWzBdKSxlKC1vWzFdLGlbMF0pKSxzWzJdKSkpLHQocih0KGUoYVsxXSxvWzBdKSxlKC1vWzFdLGFbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sb1swXSksZSgtb1sxXSxpWzBdKSksLWFbMl0pLHIodChlKGlbMV0sYVswXSksZSgtYVsxXSxpWzBdKSksb1syXSkpKSksdT1uKGwsYyk7cmV0dXJuIHVbdS5sZW5ndGgtMV19fWZ1bmN0aW9uIGModCxlLHIsbil7cmV0dXJuIGZ1bmN0aW9uKGksYSxvLHMsbCl7dmFyIGM9dCh0KHQocih0KHIodChlKHNbMV0sbFswXSksZSgtbFsxXSxzWzBdKSksb1syXSksdChyKHQoZShvWzFdLGxbMF0pLGUoLWxbMV0sb1swXSkpLC1zWzJdKSxyKHQoZShvWzFdLHNbMF0pLGUoLXNbMV0sb1swXSkpLGxbMl0pKSksYVszXSksdChyKHQocih0KGUoc1sxXSxsWzBdKSxlKC1sWzFdLHNbMF0pKSxhWzJdKSx0KHIodChlKGFbMV0sbFswXSksZSgtbFsxXSxhWzBdKSksLXNbMl0pLHIodChlKGFbMV0sc1swXSksZSgtc1sxXSxhWzBdKSksbFsyXSkpKSwtb1szXSkscih0KHIodChlKG9bMV0sbFswXSksZSgtbFsxXSxvWzBdKSksYVsyXSksdChyKHQoZShhWzFdLGxbMF0pLGUoLWxbMV0sYVswXSkpLC1vWzJdKSxyKHQoZShhWzFdLG9bMF0pLGUoLW9bMV0sYVswXSkpLGxbMl0pKSksc1szXSkpKSx0KHIodChyKHQoZShvWzFdLHNbMF0pLGUoLXNbMV0sb1swXSkpLGFbMl0pLHQocih0KGUoYVsxXSxzWzBdKSxlKC1zWzFdLGFbMF0pKSwtb1syXSkscih0KGUoYVsxXSxvWzBdKSxlKC1vWzFdLGFbMF0pKSxzWzJdKSkpLC1sWzNdKSx0KHIodChyKHQoZShzWzFdLGxbMF0pLGUoLWxbMV0sc1swXSkpLGFbMl0pLHQocih0KGUoYVsxXSxsWzBdKSxlKC1sWzFdLGFbMF0pKSwtc1syXSkscih0KGUoYVsxXSxzWzBdKSxlKC1zWzFdLGFbMF0pKSxsWzJdKSkpLGlbM10pLHIodChyKHQoZShzWzFdLGxbMF0pLGUoLWxbMV0sc1swXSkpLGlbMl0pLHQocih0KGUoaVsxXSxsWzBdKSxlKC1sWzFdLGlbMF0pKSwtc1syXSkscih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSxsWzJdKSkpLC1hWzNdKSkpKSx0KHQocih0KHIodChlKGFbMV0sbFswXSksZSgtbFsxXSxhWzBdKSksaVsyXSksdChyKHQoZShpWzFdLGxbMF0pLGUoLWxbMV0saVswXSkpLC1hWzJdKSxyKHQoZShpWzFdLGFbMF0pLGUoLWFbMV0saVswXSkpLGxbMl0pKSksc1szXSksdChyKHQocih0KGUoYVsxXSxzWzBdKSxlKC1zWzFdLGFbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sc1swXSksZSgtc1sxXSxpWzBdKSksLWFbMl0pLHIodChlKGlbMV0sYVswXSksZSgtYVsxXSxpWzBdKSksc1syXSkpKSwtbFszXSkscih0KHIodChlKG9bMV0sc1swXSksZSgtc1sxXSxvWzBdKSksYVsyXSksdChyKHQoZShhWzFdLHNbMF0pLGUoLXNbMV0sYVswXSkpLC1vWzJdKSxyKHQoZShhWzFdLG9bMF0pLGUoLW9bMV0sYVswXSkpLHNbMl0pKSksaVszXSkpKSx0KHIodChyKHQoZShvWzFdLHNbMF0pLGUoLXNbMV0sb1swXSkpLGlbMl0pLHQocih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSwtb1syXSkscih0KGUoaVsxXSxvWzBdKSxlKC1vWzFdLGlbMF0pKSxzWzJdKSkpLC1hWzNdKSx0KHIodChyKHQoZShhWzFdLHNbMF0pLGUoLXNbMV0sYVswXSkpLGlbMl0pLHQocih0KGUoaVsxXSxzWzBdKSxlKC1zWzFdLGlbMF0pKSwtYVsyXSkscih0KGUoaVsxXSxhWzBdKSxlKC1hWzFdLGlbMF0pKSxzWzJdKSkpLG9bM10pLHIodChyKHQoZShhWzFdLG9bMF0pLGUoLW9bMV0sYVswXSkpLGlbMl0pLHQocih0KGUoaVsxXSxvWzBdKSxlKC1vWzFdLGlbMF0pKSwtYVsyXSkscih0KGUoaVsxXSxhWzBdKSxlKC1hWzFdLGlbMF0pKSxvWzJdKSkpLC1zWzNdKSkpKSksdT10KHQodChyKHQocih0KGUoc1sxXSxsWzBdKSxlKC1sWzFdLHNbMF0pKSxvWzJdKSx0KHIodChlKG9bMV0sbFswXSksZSgtbFsxXSxvWzBdKSksLXNbMl0pLHIodChlKG9bMV0sc1swXSksZSgtc1sxXSxvWzBdKSksbFsyXSkpKSxpWzNdKSxyKHQocih0KGUoc1sxXSxsWzBdKSxlKC1sWzFdLHNbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sbFswXSksZSgtbFsxXSxpWzBdKSksLXNbMl0pLHIodChlKGlbMV0sc1swXSksZSgtc1sxXSxpWzBdKSksbFsyXSkpKSwtb1szXSkpLHQocih0KHIodChlKG9bMV0sbFswXSksZSgtbFsxXSxvWzBdKSksaVsyXSksdChyKHQoZShpWzFdLGxbMF0pLGUoLWxbMV0saVswXSkpLC1vWzJdKSxyKHQoZShpWzFdLG9bMF0pLGUoLW9bMV0saVswXSkpLGxbMl0pKSksc1szXSkscih0KHIodChlKG9bMV0sc1swXSksZSgtc1sxXSxvWzBdKSksaVsyXSksdChyKHQoZShpWzFdLHNbMF0pLGUoLXNbMV0saVswXSkpLC1vWzJdKSxyKHQoZShpWzFdLG9bMF0pLGUoLW9bMV0saVswXSkpLHNbMl0pKSksLWxbM10pKSksdCh0KHIodChyKHQoZShvWzFdLGxbMF0pLGUoLWxbMV0sb1swXSkpLGFbMl0pLHQocih0KGUoYVsxXSxsWzBdKSxlKC1sWzFdLGFbMF0pKSwtb1syXSkscih0KGUoYVsxXSxvWzBdKSxlKC1vWzFdLGFbMF0pKSxsWzJdKSkpLGlbM10pLHIodChyKHQoZShvWzFdLGxbMF0pLGUoLWxbMV0sb1swXSkpLGlbMl0pLHQocih0KGUoaVsxXSxsWzBdKSxlKC1sWzFdLGlbMF0pKSwtb1syXSkscih0KGUoaVsxXSxvWzBdKSxlKC1vWzFdLGlbMF0pKSxsWzJdKSkpLC1hWzNdKSksdChyKHQocih0KGUoYVsxXSxsWzBdKSxlKC1sWzFdLGFbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sbFswXSksZSgtbFsxXSxpWzBdKSksLWFbMl0pLHIodChlKGlbMV0sYVswXSksZSgtYVsxXSxpWzBdKSksbFsyXSkpKSxvWzNdKSxyKHQocih0KGUoYVsxXSxvWzBdKSxlKC1vWzFdLGFbMF0pKSxpWzJdKSx0KHIodChlKGlbMV0sb1swXSksZSgtb1sxXSxpWzBdKSksLWFbMl0pLHIodChlKGlbMV0sYVswXSksZSgtYVsxXSxpWzBdKSksb1syXSkpKSwtbFszXSkpKSksZj1uKGMsdSk7cmV0dXJuIGZbZi5sZW5ndGgtMV19fWZ1bmN0aW9uIHUodCl7cmV0dXJuKDM9PT10P3M6ND09PXQ/bDpjKShpLG4sYSxvKX12YXIgZj11KDMpLGg9dSg0KSxwPVtmdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbigpe3JldHVybiAwfSxmdW5jdGlvbih0LGUpe3JldHVybiBlWzBdLXRbMF19LGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPSh0WzFdLXJbMV0pKihlWzBdLXJbMF0pLGE9KHRbMF0tclswXSkqKGVbMV0tclsxXSksbz1pLWE7aWYoaT4wKXtpZihhPD0wKXJldHVybiBvO249aSthfWVsc2V7aWYoIShpPDApKXJldHVybiBvO2lmKGE+PTApcmV0dXJuIG87bj0tKGkrYSl9dmFyIHM9MzMzMDY2OTA3Mzg3NTQ3MTZlLTMyKm47cmV0dXJuIG8+PXN8fG88PS1zP286Zih0LGUscil9LGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRbMF0tblswXSxhPWVbMF0tblswXSxvPXJbMF0tblswXSxzPXRbMV0tblsxXSxsPWVbMV0tblsxXSxjPXJbMV0tblsxXSx1PXRbMl0tblsyXSxmPWVbMl0tblsyXSxwPXJbMl0tblsyXSxkPWEqYyxtPW8qbCxnPW8qcyx2PWkqYyx5PWkqbCx4PWEqcyxiPXUqKGQtbSkrZiooZy12KStwKih5LXgpLF89Nzc3MTU2MTE3MjM3NjEwM2UtMzEqKChNYXRoLmFicyhkKStNYXRoLmFicyhtKSkqTWF0aC5hYnModSkrKE1hdGguYWJzKGcpK01hdGguYWJzKHYpKSpNYXRoLmFicyhmKSsoTWF0aC5hYnMoeSkrTWF0aC5hYnMoeCkpKk1hdGguYWJzKHApKTtyZXR1cm4gYj5ffHwtYj5fP2I6aCh0LGUscixuKX1dO2Z1bmN0aW9uIGQodCl7dmFyIGU9cFt0Lmxlbmd0aF07cmV0dXJuIGV8fChlPXBbdC5sZW5ndGhdPXUodC5sZW5ndGgpKSxlLmFwcGx5KHZvaWQgMCx0KX1mdW5jdGlvbiBtKHQsZSxyLG4saSxhLG8pe3JldHVybiBmdW5jdGlvbihlLHIscyxsLGMpe3N3aXRjaChhcmd1bWVudHMubGVuZ3RoKXtjYXNlIDA6Y2FzZSAxOnJldHVybiAwO2Nhc2UgMjpyZXR1cm4gbihlLHIpO2Nhc2UgMzpyZXR1cm4gaShlLHIscyk7Y2FzZSA0OnJldHVybiBhKGUscixzLGwpO2Nhc2UgNTpyZXR1cm4gbyhlLHIscyxsLGMpfWZvcih2YXIgdT1uZXcgQXJyYXkoYXJndW1lbnRzLmxlbmd0aCksZj0wO2Y8YXJndW1lbnRzLmxlbmd0aDsrK2YpdVtmXT1hcmd1bWVudHNbZl07cmV0dXJuIHQodSl9fSFmdW5jdGlvbigpe2Zvcig7cC5sZW5ndGg8PTU7KXAucHVzaCh1KHAubGVuZ3RoKSk7ZS5leHBvcnRzPW0uYXBwbHkodm9pZCAwLFtkXS5jb25jYXQocCkpO2Zvcih2YXIgdD0wO3Q8PTU7Kyt0KWUuZXhwb3J0c1t0XT1wW3RdfSgpfSx7InJvYnVzdC1zY2FsZSI6NTI2LCJyb2J1c3Qtc3VidHJhY3QiOjUyOCwicm9idXN0LXN1bSI6NTI5LCJ0d28tcHJvZHVjdCI6NTc3fV0sNTI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJvYnVzdC1zdW0iKSxpPXQoInJvYnVzdC1zY2FsZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKDE9PT10Lmxlbmd0aClyZXR1cm4gaShlLHRbMF0pO2lmKDE9PT1lLmxlbmd0aClyZXR1cm4gaSh0LGVbMF0pO2lmKDA9PT10Lmxlbmd0aHx8MD09PWUubGVuZ3RoKXJldHVyblswXTt2YXIgcj1bMF07aWYodC5sZW5ndGg8ZS5sZW5ndGgpZm9yKHZhciBhPTA7YTx0Lmxlbmd0aDsrK2Epcj1uKHIsaShlLHRbYV0pKTtlbHNlIGZvcihhPTA7YTxlLmxlbmd0aDsrK2Epcj1uKHIsaSh0LGVbYV0pKTtyZXR1cm4gcn19LHsicm9idXN0LXNjYWxlIjo1MjYsInJvYnVzdC1zdW0iOjUyOX1dLDUyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJ0d28tcHJvZHVjdCIpLGk9dCgidHdvLXN1bSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQubGVuZ3RoO2lmKDE9PT1yKXt2YXIgYT1uKHRbMF0sZSk7cmV0dXJuIGFbMF0/YTpbYVsxXV19dmFyIG89bmV3IEFycmF5KDIqcikscz1bLjEsLjFdLGw9Wy4xLC4xXSxjPTA7bih0WzBdLGUscyksc1swXSYmKG9bYysrXT1zWzBdKTtmb3IodmFyIHU9MTt1PHI7Kyt1KXtuKHRbdV0sZSxsKTt2YXIgZj1zWzFdO2koZixsWzBdLHMpLHNbMF0mJihvW2MrK109c1swXSk7dmFyIGg9bFsxXSxwPXNbMV0sZD1oK3AsbT1wLShkLWgpO3NbMV09ZCxtJiYob1tjKytdPW0pfXNbMV0mJihvW2MrK109c1sxXSk7MD09PWMmJihvW2MrK109MCk7cmV0dXJuIG8ubGVuZ3RoPWMsb319LHsidHdvLXByb2R1Y3QiOjU3NywidHdvLXN1bSI6NTc4fV0sNTI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgYT1uKHQscixpKSxvPW4oZSxyLGkpO2lmKGE+MCYmbz4wfHxhPDAmJm88MClyZXR1cm4hMTt2YXIgcz1uKHIsdCxlKSxsPW4oaSx0LGUpO2lmKHM+MCYmbD4wfHxzPDAmJmw8MClyZXR1cm4hMTtpZigwPT09YSYmMD09PW8mJjA9PT1zJiYwPT09bClyZXR1cm4gZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPTA7aTwyOysraSl7dmFyIGE9dFtpXSxvPWVbaV0scz1NYXRoLm1pbihhLG8pLGw9TWF0aC5tYXgoYSxvKSxjPXJbaV0sdT1uW2ldLGY9TWF0aC5taW4oYyx1KTtpZihNYXRoLm1heChjLHUpPHN8fGw8ZilyZXR1cm4hMX1yZXR1cm4hMH0odCxlLHIsaSk7cmV0dXJuITB9O3ZhciBuPXQoInJvYnVzdC1vcmllbnRhdGlvbiIpWzNdfSx7InJvYnVzdC1vcmllbnRhdGlvbiI6NTI0fV0sNTI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPTB8dC5sZW5ndGgsbj0wfGUubGVuZ3RoO2lmKDE9PT1yJiYxPT09bilyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj10K2Usbj1yLXQsaT10LShyLW4pKyhlLW4pO2lmKGkpcmV0dXJuW2kscl07cmV0dXJuW3JdfSh0WzBdLC1lWzBdKTt2YXIgaSxhLG89bmV3IEFycmF5KHIrbikscz0wLGw9MCxjPTAsdT1NYXRoLmFicyxmPXRbbF0saD11KGYpLHA9LWVbY10sZD11KHApO2g8ZD8oYT1mLChsKz0xKTxyJiYoZj10W2xdLGg9dShmKSkpOihhPXAsKGMrPTEpPG4mJihwPS1lW2NdLGQ9dShwKSkpO2w8ciYmaDxkfHxjPj1uPyhpPWYsKGwrPTEpPHImJihmPXRbbF0saD11KGYpKSk6KGk9cCwoYys9MSk8biYmKHA9LWVbY10sZD11KHApKSk7dmFyIG0sZyx2PWkrYSx5PXYtaSx4PWEteSxiPXgsXz12O2Zvcig7bDxyJiZjPG47KWg8ZD8oaT1mLChsKz0xKTxyJiYoZj10W2xdLGg9dShmKSkpOihpPXAsKGMrPTEpPG4mJihwPS1lW2NdLGQ9dShwKSkpLCh4PShhPWIpLSh5PSh2PWkrYSktaSkpJiYob1tzKytdPXgpLGI9Xy0oKG09Xyt2KS0oZz1tLV8pKSsodi1nKSxfPW07Zm9yKDtsPHI7KSh4PShhPWIpLSh5PSh2PShpPWYpK2EpLWkpKSYmKG9bcysrXT14KSxiPV8tKChtPV8rdiktKGc9bS1fKSkrKHYtZyksXz1tLChsKz0xKTxyJiYoZj10W2xdKTtmb3IoO2M8bjspKHg9KGE9YiktKHk9KHY9KGk9cCkrYSktaSkpJiYob1tzKytdPXgpLGI9Xy0oKG09Xyt2KS0oZz1tLV8pKSsodi1nKSxfPW0sKGMrPTEpPG4mJihwPS1lW2NdKTtiJiYob1tzKytdPWIpO18mJihvW3MrK109Xyk7c3x8KG9bcysrXT0wKTtyZXR1cm4gby5sZW5ndGg9cyxvfX0se31dLDUyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj0wfHQubGVuZ3RoLG49MHxlLmxlbmd0aDtpZigxPT09ciYmMT09PW4pcmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9dCtlLG49ci10LGk9dC0oci1uKSsoZS1uKTtpZihpKXJldHVybltpLHJdO3JldHVybltyXX0odFswXSxlWzBdKTt2YXIgaSxhLG89bmV3IEFycmF5KHIrbikscz0wLGw9MCxjPTAsdT1NYXRoLmFicyxmPXRbbF0saD11KGYpLHA9ZVtjXSxkPXUocCk7aDxkPyhhPWYsKGwrPTEpPHImJihmPXRbbF0saD11KGYpKSk6KGE9cCwoYys9MSk8biYmKHA9ZVtjXSxkPXUocCkpKTtsPHImJmg8ZHx8Yz49bj8oaT1mLChsKz0xKTxyJiYoZj10W2xdLGg9dShmKSkpOihpPXAsKGMrPTEpPG4mJihwPWVbY10sZD11KHApKSk7dmFyIG0sZyx2PWkrYSx5PXYtaSx4PWEteSxiPXgsXz12O2Zvcig7bDxyJiZjPG47KWg8ZD8oaT1mLChsKz0xKTxyJiYoZj10W2xdLGg9dShmKSkpOihpPXAsKGMrPTEpPG4mJihwPWVbY10sZD11KHApKSksKHg9KGE9YiktKHk9KHY9aSthKS1pKSkmJihvW3MrK109eCksYj1fLSgobT1fK3YpLShnPW0tXykpKyh2LWcpLF89bTtmb3IoO2w8cjspKHg9KGE9YiktKHk9KHY9KGk9ZikrYSktaSkpJiYob1tzKytdPXgpLGI9Xy0oKG09Xyt2KS0oZz1tLV8pKSsodi1nKSxfPW0sKGwrPTEpPHImJihmPXRbbF0pO2Zvcig7YzxuOykoeD0oYT1iKS0oeT0odj0oaT1wKSthKS1pKSkmJihvW3MrK109eCksYj1fLSgobT1fK3YpLShnPW0tXykpKyh2LWcpLF89bSwoYys9MSk8biYmKHA9ZVtjXSk7YiYmKG9bcysrXT1iKTtfJiYob1tzKytdPV8pO3N8fChvW3MrK109MCk7cmV0dXJuIG8ubGVuZ3RoPXMsb319LHt9XSw1MzA6W2Z1bmN0aW9uKHQsZSxyKXsKLyohIHNhZmUtYnVmZmVyLiBNSVQgTGljZW5zZS4gRmVyb3NzIEFib3VraGFkaWplaCA8aHR0cHM6Ly9mZXJvc3Mub3JnL29wZW5zb3VyY2U+ICovCnZhciBuPXQoImJ1ZmZlciIpLGk9bi5CdWZmZXI7ZnVuY3Rpb24gYSh0LGUpe2Zvcih2YXIgciBpbiB0KWVbcl09dFtyXX1mdW5jdGlvbiBvKHQsZSxyKXtyZXR1cm4gaSh0LGUscil9aS5mcm9tJiZpLmFsbG9jJiZpLmFsbG9jVW5zYWZlJiZpLmFsbG9jVW5zYWZlU2xvdz9lLmV4cG9ydHM9bjooYShuLHIpLHIuQnVmZmVyPW8pLG8ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoaS5wcm90b3R5cGUpLGEoaSxvKSxvLmZyb209ZnVuY3Rpb24odCxlLHIpe2lmKCJudW1iZXIiPT10eXBlb2YgdCl0aHJvdyBuZXcgVHlwZUVycm9yKCJBcmd1bWVudCBtdXN0IG5vdCBiZSBhIG51bWJlciIpO3JldHVybiBpKHQsZSxyKX0sby5hbGxvYz1mdW5jdGlvbih0LGUscil7aWYoIm51bWJlciIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTt2YXIgbj1pKHQpO3JldHVybiB2b2lkIDAhPT1lPyJzdHJpbmciPT10eXBlb2Ygcj9uLmZpbGwoZSxyKTpuLmZpbGwoZSk6bi5maWxsKDApLG59LG8uYWxsb2NVbnNhZmU9ZnVuY3Rpb24odCl7aWYoIm51bWJlciIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gaSh0KX0sby5hbGxvY1Vuc2FmZVNsb3c9ZnVuY3Rpb24odCl7aWYoIm51bWJlciIhPXR5cGVvZiB0KXRocm93IG5ldyBUeXBlRXJyb3IoIkFyZ3VtZW50IG11c3QgYmUgYSBudW1iZXIiKTtyZXR1cm4gbi5TbG93QnVmZmVyKHQpfX0se2J1ZmZlcjoxMTJ9XSw1MzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKG4odCkpfTt2YXIgbj10KCJib3VuZGFyeS1jZWxscyIpLGk9dCgicmVkdWNlLXNpbXBsaWNpYWwtY29tcGxleCIpfSx7ImJvdW5kYXJ5LWNlbGxzIjoxMDMsInJlZHVjZS1zaW1wbGljaWFsLWNvbXBsZXgiOjUxMX1dLDUzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7cj1yfHwwLHZvaWQgMD09PXMmJihzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPTAsbj0wO248ZTsrK24pcj0wfE1hdGgubWF4KHIsdFtuXS5sZW5ndGgpO3JldHVybiByLTF9KHQpKTtpZigwPT09dC5sZW5ndGh8fHM8MSlyZXR1cm57Y2VsbHM6W10sdmVydGV4SWRzOltdLHZlcnRleFdlaWdodHM6W119O3ZhciBsPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49aS5tYWxsb2NVaW50OChyKSxhPTA7YTxyOysrYSluW2FdPXRbYV08ZXwwO3JldHVybiBufShlLCtyKSxjPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG89ZSooZSsxKS8yKnJ8MCxzPWkubWFsbG9jVWludDMyKDIqbyksbD0wLGM9MDtjPHI7KytjKWZvcih2YXIgdT10W2NdLGY9KGU9dS5sZW5ndGgsMCk7ZjxlOysrZilmb3IodmFyIGg9MDtoPGY7KytoKXt2YXIgcD11W2hdLGQ9dVtmXTtzW2wrK109MHxNYXRoLm1pbihwLGQpLHNbbCsrXT0wfE1hdGgubWF4KHAsZCl9YShuKHMsW2wvMnwwLDJdKSk7dmFyIG09Mjtmb3IoYz0yO2M8bDtjKz0yKXNbYy0yXT09PXNbY10mJnNbYy0xXT09PXNbYysxXXx8KHNbbSsrXT1zW2NdLHNbbSsrXT1zW2MrMV0pO3JldHVybiBuKHMsW20vMnwwLDJdKX0odCxzKSx1PWZ1bmN0aW9uKHQsZSxyLGEpe2Zvcih2YXIgbz10LmRhdGEscz10LnNoYXBlWzBdLGw9aS5tYWxsb2NEb3VibGUocyksYz0wLHU9MDt1PHM7Kyt1KXt2YXIgZj1vWzIqdV0saD1vWzIqdSsxXTtpZihyW2ZdIT09cltoXSl7dmFyIHA9ZVtmXSxkPWVbaF07b1syKmNdPWYsb1syKmMrMV09aCxsW2MrK109KGQtYSkvKGQtcCl9fXJldHVybiB0LnNoYXBlWzBdPWMsbihsLFtjXSl9KGMsZSxsLCtyKSxmPWZ1bmN0aW9uKHQsZSl7dmFyIHI9aS5tYWxsb2NJbnQzMigyKmUpLG49dC5zaGFwZVswXSxhPXQuZGF0YTtyWzBdPTA7Zm9yKHZhciBvPTAscz0wO3M8bjsrK3Mpe3ZhciBsPWFbMipzXTtpZihsIT09byl7Zm9yKHJbMipvKzFdPXM7KytvPGw7KXJbMipvXT1zLHJbMipvKzFdPXM7clsyKm9dPXN9fXJbMipvKzFdPW47Zm9yKDsrK288ZTspclsyKm9dPXJbMipvKzFdPW47cmV0dXJuIHJ9KGMsMHxlLmxlbmd0aCksaD1vKHMpKHQsYy5kYXRhLGYsbCkscD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MHx0LnNoYXBlWzBdLHI9dC5kYXRhLG49bmV3IEFycmF5KGUpLGk9MDtpPGU7KytpKW5baV09W3JbMippXSxyWzIqaSsxXV07cmV0dXJuIG59KGMpLGQ9W10uc2xpY2UuY2FsbCh1LmRhdGEsMCx1LnNoYXBlWzBdKTtyZXR1cm4gaS5mcmVlKGwpLGkuZnJlZShjLmRhdGEpLGkuZnJlZSh1LmRhdGEpLGkuZnJlZShmKSx7Y2VsbHM6aCx2ZXJ0ZXhJZHM6cCx2ZXJ0ZXhXZWlnaHRzOmR9fTt2YXIgbj10KCJuZGFycmF5IiksaT10KCJ0eXBlZGFycmF5LXBvb2wiKSxhPXQoIm5kYXJyYXktc29ydCIpLG89dCgiLi9saWIvY29kZWdlbiIpfSx7Ii4vbGliL2NvZGVnZW4iOjUzMyxuZGFycmF5OjQ2MiwibmRhcnJheS1zb3J0Ijo0NjEsInR5cGVkYXJyYXktcG9vbCI6NTkwfV0sNTMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gblt0XSgpfTt2YXIgbj1bZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPXQubGVuZ3RoLGE9MDthPGk7KythKXRbYV0ubGVuZ3RoO3JldHVybltdfX0sZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxyLG4pe2Zvcih2YXIgaT0wfE1hdGgubWluKHIsbiksYT0wfE1hdGgubWF4KHIsbiksbz10WzIqaV0scz10WzIqaSsxXTtvPHM7KXt2YXIgbD1vK3M+PjEsYz1lWzIqbCsxXTtpZihjPT09YSlyZXR1cm4gbDthPGM/cz1sOm89bCsxfXJldHVybiBvfXJldHVybiBmdW5jdGlvbihlLHIsbixpKXtmb3IodmFyIGE9ZS5sZW5ndGgsbz1bXSxzPTA7czxhOysrcyl7dmFyIGw9ZVtzXTtpZigyPT09bC5sZW5ndGgpe3ZhciBjPShpW2xbMF1dPDwwKSsoaVtsWzFdXTw8MSk7aWYoMD09PWN8fDM9PT1jKWNvbnRpbnVlO3N3aXRjaChjKXtjYXNlIDA6YnJlYWs7Y2FzZSAxOm8ucHVzaChbdChuLHIsbFswXSxsWzFdKV0pO2JyZWFrO2Nhc2UgMjpvLnB1c2goW3QobixyLGxbMV0sbFswXSldKX19fXJldHVybiBvfX0sZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxyLG4pe2Zvcih2YXIgaT0wfE1hdGgubWluKHIsbiksYT0wfE1hdGgubWF4KHIsbiksbz10WzIqaV0scz10WzIqaSsxXTtvPHM7KXt2YXIgbD1vK3M+PjEsYz1lWzIqbCsxXTtpZihjPT09YSlyZXR1cm4gbDthPGM/cz1sOm89bCsxfXJldHVybiBvfXJldHVybiBmdW5jdGlvbihlLHIsbixpKXtmb3IodmFyIGE9ZS5sZW5ndGgsbz1bXSxzPTA7czxhOysrcyl7dmFyIGw9ZVtzXSxjPWwubGVuZ3RoO2lmKDM9PT1jKXtpZigwPT09KHU9KGlbbFswXV08PDApKyhpW2xbMV1dPDwxKSsoaVtsWzJdXTw8MikpfHw3PT09dSljb250aW51ZTtzd2l0Y2godSl7Y2FzZSAwOmJyZWFrO2Nhc2UgMTpvLnB1c2goW3QobixyLGxbMF0sbFsyXSksdChuLHIsbFswXSxsWzFdKV0pO2JyZWFrO2Nhc2UgMjpvLnB1c2goW3QobixyLGxbMV0sbFswXSksdChuLHIsbFsxXSxsWzJdKV0pO2JyZWFrO2Nhc2UgMzpvLnB1c2goW3QobixyLGxbMF0sbFsyXSksdChuLHIsbFsxXSxsWzJdKV0pO2JyZWFrO2Nhc2UgNDpvLnB1c2goW3QobixyLGxbMl0sbFsxXSksdChuLHIsbFsyXSxsWzBdKV0pO2JyZWFrO2Nhc2UgNTpvLnB1c2goW3QobixyLGxbMl0sbFsxXSksdChuLHIsbFswXSxsWzFdKV0pO2JyZWFrO2Nhc2UgNjpvLnB1c2goW3QobixyLGxbMV0sbFswXSksdChuLHIsbFsyXSxsWzBdKV0pfX1lbHNlIGlmKDI9PT1jKXt2YXIgdTtpZigwPT09KHU9KGlbbFswXV08PDApKyhpW2xbMV1dPDwxKSl8fDM9PT11KWNvbnRpbnVlO3N3aXRjaCh1KXtjYXNlIDA6YnJlYWs7Y2FzZSAxOm8ucHVzaChbdChuLHIsbFswXSxsWzFdKV0pO2JyZWFrO2Nhc2UgMjpvLnB1c2goW3QobixyLGxbMV0sbFswXSldKX19fXJldHVybiBvfX0sZnVuY3Rpb24oKXtmdW5jdGlvbiB0KHQsZSxyLG4pe2Zvcih2YXIgaT0wfE1hdGgubWluKHIsbiksYT0wfE1hdGgubWF4KHIsbiksbz10WzIqaV0scz10WzIqaSsxXTtvPHM7KXt2YXIgbD1vK3M+PjEsYz1lWzIqbCsxXTtpZihjPT09YSlyZXR1cm4gbDthPGM/cz1sOm89bCsxfXJldHVybiBvfXJldHVybiBmdW5jdGlvbihlLHIsbixpKXtmb3IodmFyIGE9ZS5sZW5ndGgsbz1bXSxzPTA7czxhOysrcyl7dmFyIGw9ZVtzXSxjPWwubGVuZ3RoO2lmKDQ9PT1jKXtpZigwPT09KHU9KGlbbFswXV08PDApKyhpW2xbMV1dPDwxKSsoaVtsWzJdXTw8MikrKGlbbFszXV08PDMpKXx8MTU9PT11KWNvbnRpbnVlO3N3aXRjaCh1KXtjYXNlIDA6YnJlYWs7Y2FzZSAxOm8ucHVzaChbdChuLHIsbFswXSxsWzFdKSx0KG4scixsWzBdLGxbMl0pLHQobixyLGxbMF0sbFszXSldKTticmVhaztjYXNlIDI6by5wdXNoKFt0KG4scixsWzFdLGxbMl0pLHQobixyLGxbMV0sbFswXSksdChuLHIsbFsxXSxsWzNdKV0pO2JyZWFrO2Nhc2UgMzpvLnB1c2goW3QobixyLGxbMV0sbFsyXSksdChuLHIsbFswXSxsWzJdKSx0KG4scixsWzBdLGxbM10pXSxbdChuLHIsbFsxXSxsWzNdKSx0KG4scixsWzFdLGxbMl0pLHQobixyLGxbMF0sbFszXSldKTticmVhaztjYXNlIDQ6by5wdXNoKFt0KG4scixsWzJdLGxbMF0pLHQobixyLGxbMl0sbFsxXSksdChuLHIsbFsyXSxsWzNdKV0pO2JyZWFrO2Nhc2UgNTpvLnB1c2goW3QobixyLGxbMF0sbFsxXSksdChuLHIsbFsyXSxsWzFdKSx0KG4scixsWzBdLGxbM10pXSxbdChuLHIsbFsyXSxsWzFdKSx0KG4scixsWzJdLGxbM10pLHQobixyLGxbMF0sbFszXSldKTticmVhaztjYXNlIDY6by5wdXNoKFt0KG4scixsWzJdLGxbMF0pLHQobixyLGxbMV0sbFswXSksdChuLHIsbFsxXSxsWzNdKV0sW3QobixyLGxbMl0sbFszXSksdChuLHIsbFsyXSxsWzBdKSx0KG4scixsWzFdLGxbM10pXSk7YnJlYWs7Y2FzZSA3Om8ucHVzaChbdChuLHIsbFswXSxsWzNdKSx0KG4scixsWzFdLGxbM10pLHQobixyLGxbMl0sbFszXSldKTticmVhaztjYXNlIDg6by5wdXNoKFt0KG4scixsWzNdLGxbMV0pLHQobixyLGxbM10sbFswXSksdChuLHIsbFszXSxsWzJdKV0pO2JyZWFrO2Nhc2UgOTpvLnB1c2goW3QobixyLGxbM10sbFsxXSksdChuLHIsbFswXSxsWzFdKSx0KG4scixsWzBdLGxbMl0pXSxbdChuLHIsbFszXSxsWzJdKSx0KG4scixsWzNdLGxbMV0pLHQobixyLGxbMF0sbFsyXSldKTticmVhaztjYXNlIDEwOm8ucHVzaChbdChuLHIsbFsxXSxsWzBdKSx0KG4scixsWzNdLGxbMF0pLHQobixyLGxbMV0sbFsyXSldLFt0KG4scixsWzNdLGxbMF0pLHQobixyLGxbM10sbFsyXSksdChuLHIsbFsxXSxsWzJdKV0pO2JyZWFrO2Nhc2UgMTE6by5wdXNoKFt0KG4scixsWzFdLGxbMl0pLHQobixyLGxbMF0sbFsyXSksdChuLHIsbFszXSxsWzJdKV0pO2JyZWFrO2Nhc2UgMTI6by5wdXNoKFt0KG4scixsWzNdLGxbMF0pLHQobixyLGxbMl0sbFswXSksdChuLHIsbFsyXSxsWzFdKV0sW3QobixyLGxbM10sbFsxXSksdChuLHIsbFszXSxsWzBdKSx0KG4scixsWzJdLGxbMV0pXSk7YnJlYWs7Y2FzZSAxMzpvLnB1c2goW3QobixyLGxbMF0sbFsxXSksdChuLHIsbFsyXSxsWzFdKSx0KG4scixsWzNdLGxbMV0pXSk7YnJlYWs7Y2FzZSAxNDpvLnB1c2goW3QobixyLGxbMl0sbFswXSksdChuLHIsbFsxXSxsWzBdKSx0KG4scixsWzNdLGxbMF0pXSl9fWVsc2UgaWYoMz09PWMpe2lmKDA9PT0odT0oaVtsWzBdXTw8MCkrKGlbbFsxXV08PDEpKyhpW2xbMl1dPDwyKSl8fDc9PT11KWNvbnRpbnVlO3N3aXRjaCh1KXtjYXNlIDA6YnJlYWs7Y2FzZSAxOm8ucHVzaChbdChuLHIsbFswXSxsWzJdKSx0KG4scixsWzBdLGxbMV0pXSk7YnJlYWs7Y2FzZSAyOm8ucHVzaChbdChuLHIsbFsxXSxsWzBdKSx0KG4scixsWzFdLGxbMl0pXSk7YnJlYWs7Y2FzZSAzOm8ucHVzaChbdChuLHIsbFswXSxsWzJdKSx0KG4scixsWzFdLGxbMl0pXSk7YnJlYWs7Y2FzZSA0Om8ucHVzaChbdChuLHIsbFsyXSxsWzFdKSx0KG4scixsWzJdLGxbMF0pXSk7YnJlYWs7Y2FzZSA1Om8ucHVzaChbdChuLHIsbFsyXSxsWzFdKSx0KG4scixsWzBdLGxbMV0pXSk7YnJlYWs7Y2FzZSA2Om8ucHVzaChbdChuLHIsbFsxXSxsWzBdKSx0KG4scixsWzJdLGxbMF0pXSl9fWVsc2UgaWYoMj09PWMpe3ZhciB1O2lmKDA9PT0odT0oaVtsWzBdXTw8MCkrKGlbbFsxXV08PDEpKXx8Mz09PXUpY29udGludWU7c3dpdGNoKHUpe2Nhc2UgMDpicmVhaztjYXNlIDE6by5wdXNoKFt0KG4scixsWzBdLGxbMV0pXSk7YnJlYWs7Y2FzZSAyOm8ucHVzaChbdChuLHIsbFsxXSxsWzBdKV0pfX19cmV0dXJuIG99fV19LHt9XSw1MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiYml0LXR3aWRkbGUiKSxpPXQoInVuaW9uLWZpbmQiKTtmdW5jdGlvbiBhKHQsZSl7dmFyIHI9dC5sZW5ndGgsbj10Lmxlbmd0aC1lLmxlbmd0aCxpPU1hdGgubWluO2lmKG4pcmV0dXJuIG47c3dpdGNoKHIpe2Nhc2UgMDpyZXR1cm4gMDtjYXNlIDE6cmV0dXJuIHRbMF0tZVswXTtjYXNlIDI6cmV0dXJuKHM9dFswXSt0WzFdLWVbMF0tZVsxXSl8fGkodFswXSx0WzFdKS1pKGVbMF0sZVsxXSk7Y2FzZSAzOnZhciBhPXRbMF0rdFsxXSxvPWVbMF0rZVsxXTtpZihzPWErdFsyXS0obytlWzJdKSlyZXR1cm4gczt2YXIgcyxsPWkodFswXSx0WzFdKSxjPWkoZVswXSxlWzFdKTtyZXR1cm4ocz1pKGwsdFsyXSktaShjLGVbMl0pKXx8aShsK3RbMl0sYSktaShjK2VbMl0sbyk7ZGVmYXVsdDp2YXIgdT10LnNsaWNlKDApO3Uuc29ydCgpO3ZhciBmPWUuc2xpY2UoMCk7Zi5zb3J0KCk7Zm9yKHZhciBoPTA7aDxyOysraClpZihuPXVbaF0tZltoXSlyZXR1cm4gbjtyZXR1cm4gMH19ZnVuY3Rpb24gbyh0LGUpe3JldHVybiBhKHRbMF0sZVswXSl9ZnVuY3Rpb24gcyh0LGUpe2lmKGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPW5ldyBBcnJheShyKSxpPTA7aTxyOysraSluW2ldPVt0W2ldLGVbaV1dO24uc29ydChvKTtmb3IoaT0wO2k8cjsrK2kpdFtpXT1uW2ldWzBdLGVbaV09bltpXVsxXTtyZXR1cm4gdH1yZXR1cm4gdC5zb3J0KGEpLHR9ZnVuY3Rpb24gbCh0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuW107Zm9yKHZhciBlPTEscj10Lmxlbmd0aCxuPTE7bjxyOysrbil7dmFyIGk9dFtuXTtpZihhKGksdFtuLTFdKSl7aWYobj09PWUpe2UrKztjb250aW51ZX10W2UrK109aX19cmV0dXJuIHQubGVuZ3RoPWUsdH1mdW5jdGlvbiBjKHQsZSl7Zm9yKHZhciByPTAsbj10Lmxlbmd0aC0xLGk9LTE7cjw9bjspe3ZhciBvPXIrbj4+MSxzPWEodFtvXSxlKTtzPD0wPygwPT09cyYmKGk9bykscj1vKzEpOnM+MCYmKG49by0xKX1yZXR1cm4gaX1mdW5jdGlvbiB1KHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0Lmxlbmd0aCksaT0wLG89ci5sZW5ndGg7aTxvOysraSlyW2ldPVtdO2Zvcih2YXIgcz1bXSxsPShpPTAsZS5sZW5ndGgpO2k8bDsrK2kpZm9yKHZhciB1PWVbaV0sZj11Lmxlbmd0aCxoPTEscD0xPDxmO2g8cDsrK2gpe3MubGVuZ3RoPW4ucG9wQ291bnQoaCk7Zm9yKHZhciBkPTAsbT0wO208ZjsrK20paCYxPDxtJiYoc1tkKytdPXVbbV0pO3ZhciBnPWModCxzKTtpZighKGc8MCkpZm9yKDtyW2crK10ucHVzaChpKSwhKGc+PXQubGVuZ3RofHwwIT09YSh0W2ddLHMpKTspO31yZXR1cm4gcn1mdW5jdGlvbiBmKHQsZSl7aWYoZTwwKXJldHVybltdO2Zvcih2YXIgcj1bXSxpPSgxPDxlKzEpLTEsYT0wO2E8dC5sZW5ndGg7KythKWZvcih2YXIgbz10W2FdLGw9aTtsPDE8PG8ubGVuZ3RoO2w9bi5uZXh0Q29tYmluYXRpb24obCkpe2Zvcih2YXIgYz1uZXcgQXJyYXkoZSsxKSx1PTAsZj0wO2Y8by5sZW5ndGg7KytmKWwmMTw8ZiYmKGNbdSsrXT1vW2ZdKTtyLnB1c2goYyl9cmV0dXJuIHMocil9ci5kaW1lbnNpb249ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAscj1NYXRoLm1heCxuPTAsaT10Lmxlbmd0aDtuPGk7KytuKWU9cihlLHRbbl0ubGVuZ3RoKTtyZXR1cm4gZS0xfSxyLmNvdW50VmVydGljZXM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPS0xLHI9TWF0aC5tYXgsbj0wLGk9dC5sZW5ndGg7bjxpOysrbilmb3IodmFyIGE9dFtuXSxvPTAscz1hLmxlbmd0aDtvPHM7KytvKWU9cihlLGFbb10pO3JldHVybiBlKzF9LHIuY2xvbmVDZWxscz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPTAsbj10Lmxlbmd0aDtyPG47KytyKWVbcl09dFtyXS5zbGljZSgwKTtyZXR1cm4gZX0sci5jb21wYXJlQ2VsbHM9YSxyLm5vcm1hbGl6ZT1zLHIudW5pcXVlPWwsci5maW5kQ2VsbD1jLHIuaW5jaWRlbmNlPXUsci5kdWFsPWZ1bmN0aW9uKHQsZSl7aWYoIWUpcmV0dXJuIHUobChmKHQsMCkpLHQpO2Zvcih2YXIgcj1uZXcgQXJyYXkoZSksbj0wO248ZTsrK24pcltuXT1bXTtuPTA7Zm9yKHZhciBpPXQubGVuZ3RoO248aTsrK24pZm9yKHZhciBhPXRbbl0sbz0wLHM9YS5sZW5ndGg7bzxzOysrbylyW2Fbb11dLnB1c2gobik7cmV0dXJuIHJ9LHIuZXhwbG9kZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9W10scj0wLG49dC5sZW5ndGg7cjxuOysrcilmb3IodmFyIGk9dFtyXSxhPTB8aS5sZW5ndGgsbz0xLGw9MTw8YTtvPGw7KytvKXtmb3IodmFyIGM9W10sdT0wO3U8YTsrK3Upbz4+PnUmMSYmYy5wdXNoKGlbdV0pO2UucHVzaChjKX1yZXR1cm4gcyhlKX0sci5za2VsZXRvbj1mLHIuYm91bmRhcnk9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPVtdLHI9MCxuPXQubGVuZ3RoO3I8bjsrK3IpZm9yKHZhciBpPXRbcl0sYT0wLG89aS5sZW5ndGg7YTxvOysrYSl7Zm9yKHZhciBsPW5ldyBBcnJheShpLmxlbmd0aC0xKSxjPTAsdT0wO2M8bzsrK2MpYyE9PWEmJihsW3UrK109aVtjXSk7ZS5wdXNoKGwpfXJldHVybiBzKGUpfSxyLmNvbm5lY3RlZENvbXBvbmVudHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZT9mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgaShlKSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBhPXRbbl0sbz0wO288YS5sZW5ndGg7KytvKWZvcih2YXIgcz1vKzE7czxhLmxlbmd0aDsrK3Mpci5saW5rKGFbb10sYVtzXSk7dmFyIGw9W10sYz1yLnJhbmtzO2ZvcihuPTA7bjxjLmxlbmd0aDsrK24pY1tuXT0tMTtmb3Iobj0wO248dC5sZW5ndGg7KytuKXt2YXIgdT1yLmZpbmQodFtuXVswXSk7Y1t1XTwwPyhjW3VdPWwubGVuZ3RoLGwucHVzaChbdFtuXS5zbGljZSgwKV0pKTpsW2NbdV1dLnB1c2godFtuXS5zbGljZSgwKSl9cmV0dXJuIGx9KHQsZSk6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPWwocyhmKHQsMCkpKSxyPW5ldyBpKGUubGVuZ3RoKSxuPTA7bjx0Lmxlbmd0aDsrK24pZm9yKHZhciBhPXRbbl0sbz0wO288YS5sZW5ndGg7KytvKWZvcih2YXIgdT1jKGUsW2Fbb11dKSxoPW8rMTtoPGEubGVuZ3RoOysraClyLmxpbmsodSxjKGUsW2FbaF1dKSk7dmFyIHA9W10sZD1yLnJhbmtzO2ZvcihuPTA7bjxkLmxlbmd0aDsrK24pZFtuXT0tMTtmb3Iobj0wO248dC5sZW5ndGg7KytuKXt2YXIgbT1yLmZpbmQoYyhlLFt0W25dWzBdXSkpO2RbbV08MD8oZFttXT1wLmxlbmd0aCxwLnB1c2goW3Rbbl0uc2xpY2UoMCldKSk6cFtkW21dXS5wdXNoKHRbbl0uc2xpY2UoMCkpfXJldHVybiBwfSh0KX19LHsiYml0LXR3aWRkbGUiOjEwMSwidW5pb24tZmluZCI6NTkxfV0sNTM1OltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzEwMV1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7ZHVwOjEwMX1dLDUzNjpbZnVuY3Rpb24odCxlLHIpe2FyZ3VtZW50c1s0XVs1MzRdWzBdLmFwcGx5KHIsYXJndW1lbnRzKX0seyJiaXQtdHdpZGRsZSI6NTM1LGR1cDo1MzQsInVuaW9uLWZpbmQiOjUzN31dLDUzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMucm9vdHM9bmV3IEFycmF5KHQpLHRoaXMucmFua3M9bmV3IEFycmF5KHQpO2Zvcih2YXIgZT0wO2U8dDsrK2UpdGhpcy5yb290c1tlXT1lLHRoaXMucmFua3NbZV09MH1lLmV4cG9ydHM9bixuLnByb3RvdHlwZS5sZW5ndGg9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5yb290cy5sZW5ndGh9LG4ucHJvdG90eXBlLm1ha2VTZXQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnJvb3RzLmxlbmd0aDtyZXR1cm4gdGhpcy5yb290cy5wdXNoKHQpLHRoaXMucmFua3MucHVzaCgwKSx0fSxuLnByb3RvdHlwZS5maW5kPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLnJvb3RzO2VbdF0hPT10Oyl7dmFyIHI9ZVt0XTtlW3RdPWVbcl0sdD1yfXJldHVybiB0fSxuLnByb3RvdHlwZS5saW5rPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5maW5kKHQpLG49dGhpcy5maW5kKGUpO2lmKHIhPT1uKXt2YXIgaT10aGlzLnJhbmtzLGE9dGhpcy5yb290cyxvPWlbcl0scz1pW25dO288cz9hW3JdPW46czxvP2Fbbl09cjooYVtuXT1yLCsraVtyXSl9fX0se31dLDUzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1lLmxlbmd0aCxvPXQubGVuZ3RoLHM9bmV3IEFycmF5KGEpLGw9bmV3IEFycmF5KGEpLGM9bmV3IEFycmF5KGEpLHU9bmV3IEFycmF5KGEpLGY9MDtmPGE7KytmKXNbZl09bFtmXT0tMSxjW2ZdPTEvMCx1W2ZdPSExO2ZvcihmPTA7ZjxvOysrZil7dmFyIGg9dFtmXTtpZigyIT09aC5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJJbnB1dCBtdXN0IGJlIGEgZ3JhcGgiKTt2YXIgcD1oWzFdLGQ9aFswXTstMSE9PWxbZF0/bFtkXT0tMjpsW2RdPXAsLTEhPT1zW3BdP3NbcF09LTI6c1twXT1kfWZ1bmN0aW9uIG0odCl7aWYodVt0XSlyZXR1cm4gMS8wO3ZhciByLGksYSxvLGMsZj1zW3RdLGg9bFt0XTtyZXR1cm4gZjwwfHxoPDA/MS8wOihyPWVbdF0saT1lW2ZdLGE9ZVtoXSxvPU1hdGguYWJzKG4ocixpLGEpKSxjPU1hdGguc3FydChNYXRoLnBvdyhpWzBdLWFbMF0sMikrTWF0aC5wb3coaVsxXS1hWzFdLDIpKSxvL2MpfWZ1bmN0aW9uIGcodCxlKXt2YXIgcj1rW3RdLG49a1tlXTtrW3RdPW4sa1tlXT1yLEFbcl09ZSxBW25dPXR9ZnVuY3Rpb24gdih0KXtyZXR1cm4gY1trW3RdXX1mdW5jdGlvbiB5KHQpe3JldHVybiAxJnQ/dC0xPj4xOih0Pj4xKS0xfWZ1bmN0aW9uIHgodCl7Zm9yKHZhciBlPXYodCk7Oyl7dmFyIHI9ZSxuPTIqdCsxLGk9MioodCsxKSxhPXQ7aWYobjxNKXt2YXIgbz12KG4pO288ciYmKGE9bixyPW8pfWlmKGk8TSl2KGkpPHImJihhPWkpO2lmKGE9PT10KXJldHVybiB0O2codCxhKSx0PWF9fWZ1bmN0aW9uIGIodCl7Zm9yKHZhciBlPXYodCk7dD4wOyl7dmFyIHI9eSh0KTtpZihyPj0wKWlmKGU8dihyKSl7Zyh0LHIpLHQ9cjtjb250aW51ZX1yZXR1cm4gdH19ZnVuY3Rpb24gXygpe2lmKE0+MCl7dmFyIHQ9a1swXTtyZXR1cm4gZygwLE0tMSksTS09MSx4KDApLHR9cmV0dXJuLTF9ZnVuY3Rpb24gdyh0LGUpe3ZhciByPWtbdF07cmV0dXJuIGNbcl09PT1lP3Q6KGNbcl09LTEvMCxiKHQpLF8oKSxjW3JdPWUsYigoTSs9MSktMSkpfWZ1bmN0aW9uIFQodCl7aWYoIXVbdF0pe3VbdF09ITA7dmFyIGU9c1t0XSxyPWxbdF07c1tyXT49MCYmKHNbcl09ZSksbFtlXT49MCYmKGxbZV09ciksQVtlXT49MCYmdyhBW2VdLG0oZSkpLEFbcl0+PTAmJncoQVtyXSxtKHIpKX19dmFyIGs9W10sQT1uZXcgQXJyYXkoYSk7Zm9yKGY9MDtmPGE7KytmKXsoY1tmXT1tKGYpKTwxLzA/KEFbZl09ay5sZW5ndGgsay5wdXNoKGYpKTpBW2ZdPS0xfXZhciBNPWsubGVuZ3RoO2ZvcihmPU0+PjE7Zj49MDstLWYpeChmKTtmb3IoOzspe3ZhciBTPV8oKTtpZihTPDB8fGNbU10+cilicmVhaztUKFMpfXZhciBFPVtdO2ZvcihmPTA7ZjxhOysrZil1W2ZdfHwoQVtmXT1FLmxlbmd0aCxFLnB1c2goZVtmXS5zbGljZSgpKSk7RS5sZW5ndGg7ZnVuY3Rpb24gTCh0LGUpe2lmKHRbZV08MClyZXR1cm4gZTt2YXIgcj1lLG49ZTtkb3t2YXIgaT10W25dO2lmKCF1W25dfHxpPDB8fGk9PT1uKWJyZWFrO2lmKGk9dFtuPWldLCF1W25dfHxpPDB8fGk9PT1uKWJyZWFrO249aSxyPXRbcl19d2hpbGUociE9PW4pO2Zvcih2YXIgYT1lO2EhPT1uO2E9dFthXSl0W2FdPW47cmV0dXJuIG59dmFyIEM9W107cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9TChzLHRbMF0pLHI9TChsLHRbMV0pO2lmKGU+PTAmJnI+PTAmJmUhPT1yKXt2YXIgbj1BW2VdLGk9QVtyXTtuIT09aSYmQy5wdXNoKFtuLGldKX19KSksaS51bmlxdWUoaS5ub3JtYWxpemUoQykpLHtwb3NpdGlvbnM6RSxlZGdlczpDfX07dmFyIG49dCgicm9idXN0LW9yaWVudGF0aW9uIiksaT10KCJzaW1wbGljaWFsLWNvbXBsZXgiKX0seyJyb2J1c3Qtb3JpZW50YXRpb24iOjUyNCwic2ltcGxpY2lhbC1jb21wbGV4Ijo1MzZ9XSw1Mzk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxvLHM7aWYoZVswXVswXTxlWzFdWzBdKXI9ZVswXSxhPWVbMV07ZWxzZXtpZighKGVbMF1bMF0+ZVsxXVswXSkpcmV0dXJuIGkoZSx0KTtyPWVbMV0sYT1lWzBdfWlmKHRbMF1bMF08dFsxXVswXSlvPXRbMF0scz10WzFdO2Vsc2V7aWYoISh0WzBdWzBdPnRbMV1bMF0pKXJldHVybi1pKHQsZSk7bz10WzFdLHM9dFswXX12YXIgbD1uKHIsYSxzKSxjPW4ocixhLG8pO2lmKGw8MCl7aWYoYzw9MClyZXR1cm4gbH1lbHNlIGlmKGw+MCl7aWYoYz49MClyZXR1cm4gbH1lbHNlIGlmKGMpcmV0dXJuIGM7aWYobD1uKHMsbyxhKSxjPW4ocyxvLHIpLGw8MCl7aWYoYzw9MClyZXR1cm4gbH1lbHNlIGlmKGw+MCl7aWYoYz49MClyZXR1cm4gbH1lbHNlIGlmKGMpcmV0dXJuIGM7cmV0dXJuIGFbMF0tc1swXX07dmFyIG49dCgicm9idXN0LW9yaWVudGF0aW9uIik7ZnVuY3Rpb24gaSh0LGUpe3ZhciByLGksYSxvO2lmKGVbMF1bMF08ZVsxXVswXSlyPWVbMF0saT1lWzFdO2Vsc2V7aWYoIShlWzBdWzBdPmVbMV1bMF0pKXt2YXIgcz1NYXRoLm1pbih0WzBdWzFdLHRbMV1bMV0pLGw9TWF0aC5tYXgodFswXVsxXSx0WzFdWzFdKSxjPU1hdGgubWluKGVbMF1bMV0sZVsxXVsxXSksdT1NYXRoLm1heChlWzBdWzFdLGVbMV1bMV0pO3JldHVybiBsPGM/bC1jOnM+dT9zLXU6bC11fXI9ZVsxXSxpPWVbMF19dFswXVsxXTx0WzFdWzFdPyhhPXRbMF0sbz10WzFdKTooYT10WzFdLG89dFswXSk7dmFyIGY9bihpLHIsYSk7cmV0dXJuIGZ8fCgoZj1uKGkscixvKSl8fG8taSl9fSx7InJvYnVzdC1vcmllbnRhdGlvbiI6NTI0fV0sNTQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5sZW5ndGgscj0yKmUsbj1uZXcgQXJyYXkociksYT0wO2E8ZTsrK2Epe3ZhciBsPXRbYV0sYz1sWzBdWzBdPGxbMV1bMF07blsyKmFdPW5ldyBmKGxbMF1bMF0sbCxjLGEpLG5bMiphKzFdPW5ldyBmKGxbMV1bMF0sbCwhYyxhKX1uLnNvcnQoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC54LWUueDtyZXR1cm4gcnx8KChyPXQuY3JlYXRlLWUuY3JlYXRlKXx8TWF0aC5taW4odC5zZWdtZW50WzBdWzFdLHQuc2VnbWVudFsxXVsxXSktTWF0aC5taW4oZS5zZWdtZW50WzBdWzFdLGUuc2VnbWVudFsxXVsxXSkpfSkpO3ZhciBoPWkobykscD1bXSxkPVtdLG09W107Zm9yKGE9MDthPHI7KXtmb3IodmFyIGc9blthXS54LHY9W107YTxyOyl7dmFyIHk9blthXTtpZih5LnghPT1nKWJyZWFrO2ErPTEseS5zZWdtZW50WzBdWzBdPT09eS54JiZ5LnNlZ21lbnRbMV1bMF09PT15Lng/eS5jcmVhdGUmJih5LnNlZ21lbnRbMF1bMV08eS5zZWdtZW50WzFdWzFdPyh2LnB1c2gobmV3IHUoeS5zZWdtZW50WzBdWzFdLHkuaW5kZXgsITAsITApKSx2LnB1c2gobmV3IHUoeS5zZWdtZW50WzFdWzFdLHkuaW5kZXgsITEsITEpKSk6KHYucHVzaChuZXcgdSh5LnNlZ21lbnRbMV1bMV0seS5pbmRleCwhMCwhMSkpLHYucHVzaChuZXcgdSh5LnNlZ21lbnRbMF1bMV0seS5pbmRleCwhMSwhMCkpKSk6aD15LmNyZWF0ZT9oLmluc2VydCh5LnNlZ21lbnQseS5pbmRleCk6aC5yZW1vdmUoeS5zZWdtZW50KX1wLnB1c2goaC5yb290KSxkLnB1c2goZyksbS5wdXNoKHYpfXJldHVybiBuZXcgcyhwLGQsbSl9O3ZhciBuPXQoImJpbmFyeS1zZWFyY2gtYm91bmRzIiksaT10KCJmdW5jdGlvbmFsLXJlZC1ibGFjay10cmVlIiksYT10KCJyb2J1c3Qtb3JpZW50YXRpb24iKSxvPXQoIi4vbGliL29yZGVyLXNlZ21lbnRzIik7ZnVuY3Rpb24gcyh0LGUscil7dGhpcy5zbGFicz10LHRoaXMuY29vcmRpbmF0ZXM9ZSx0aGlzLmhvcml6b250YWw9cn1mdW5jdGlvbiBsKHQsZSl7cmV0dXJuIHQueS1lfWZ1bmN0aW9uIGModCxlKXtmb3IodmFyIHI9bnVsbDt0Oyl7dmFyIG4saSxvPXQua2V5O29bMF1bMF08b1sxXVswXT8obj1vWzBdLGk9b1sxXSk6KG49b1sxXSxpPW9bMF0pO3ZhciBzPWEobixpLGUpO2lmKHM8MCl0PXQubGVmdDtlbHNlIGlmKHM+MClpZihlWzBdIT09b1sxXVswXSlyPXQsdD10LnJpZ2h0O2Vsc2V7aWYobD1jKHQucmlnaHQsZSkpcmV0dXJuIGw7dD10LmxlZnR9ZWxzZXtpZihlWzBdIT09b1sxXVswXSlyZXR1cm4gdDt2YXIgbDtpZihsPWModC5yaWdodCxlKSlyZXR1cm4gbDt0PXQubGVmdH19cmV0dXJuIHJ9ZnVuY3Rpb24gdSh0LGUscixuKXt0aGlzLnk9dCx0aGlzLmluZGV4PWUsdGhpcy5zdGFydD1yLHRoaXMuY2xvc2VkPW59ZnVuY3Rpb24gZih0LGUscixuKXt0aGlzLng9dCx0aGlzLnNlZ21lbnQ9ZSx0aGlzLmNyZWF0ZT1yLHRoaXMuaW5kZXg9bn1zLnByb3RvdHlwZS5jYXN0VXA9ZnVuY3Rpb24odCl7dmFyIGU9bi5sZSh0aGlzLmNvb3JkaW5hdGVzLHRbMF0pO2lmKGU8MClyZXR1cm4tMTt0aGlzLnNsYWJzW2VdO3ZhciByPWModGhpcy5zbGFic1tlXSx0KSxpPS0xO2lmKHImJihpPXIudmFsdWUpLHRoaXMuY29vcmRpbmF0ZXNbZV09PT10WzBdKXt2YXIgcz1udWxsO2lmKHImJihzPXIua2V5KSxlPjApe3ZhciB1PWModGhpcy5zbGFic1tlLTFdLHQpO3UmJihzP28odS5rZXkscyk+MCYmKHM9dS5rZXksaT11LnZhbHVlKTooaT11LnZhbHVlLHM9dS5rZXkpKX12YXIgZj10aGlzLmhvcml6b250YWxbZV07aWYoZi5sZW5ndGg+MCl7dmFyIGg9bi5nZShmLHRbMV0sbCk7aWYoaDxmLmxlbmd0aCl7dmFyIHA9ZltoXTtpZih0WzFdPT09cC55KXtpZihwLmNsb3NlZClyZXR1cm4gcC5pbmRleDtmb3IoO2g8Zi5sZW5ndGgtMSYmZltoKzFdLnk9PT10WzFdOylpZigocD1mW2grPTFdKS5jbG9zZWQpcmV0dXJuIHAuaW5kZXg7aWYocC55PT09dFsxXSYmIXAuc3RhcnQpe2lmKChoKz0xKT49Zi5sZW5ndGgpcmV0dXJuIGk7cD1mW2hdfX1pZihwLnN0YXJ0KWlmKHMpe3ZhciBkPWEoc1swXSxzWzFdLFt0WzBdLHAueV0pO3NbMF1bMF0+c1sxXVswXSYmKGQ9LWQpLGQ+MCYmKGk9cC5pbmRleCl9ZWxzZSBpPXAuaW5kZXg7ZWxzZSBwLnkhPT10WzFdJiYoaT1wLmluZGV4KX19fXJldHVybiBpfX0seyIuL2xpYi9vcmRlci1zZWdtZW50cyI6NTM5LCJiaW5hcnktc2VhcmNoLWJvdW5kcyI6MTAwLCJmdW5jdGlvbmFsLXJlZC1ibGFjay10cmVlIjoyNDcsInJvYnVzdC1vcmllbnRhdGlvbiI6NTI0fV0sNTQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJvYnVzdC1kb3QtcHJvZHVjdCIpLGk9dCgicm9idXN0LXN1bSIpO2Z1bmN0aW9uIGEodCxlKXt2YXIgcj1pKG4odCxlKSxbZVtlLmxlbmd0aC0xXV0pO3JldHVybiByW3IubGVuZ3RoLTFdfWZ1bmN0aW9uIG8odCxlLHIsbil7dmFyIGk9LWUvKG4tZSk7aTwwP2k9MDppPjEmJihpPTEpO2Zvcih2YXIgYT0xLWksbz10Lmxlbmd0aCxzPW5ldyBBcnJheShvKSxsPTA7bDxvOysrbClzW2xdPWkqdFtsXSthKnJbbF07cmV0dXJuIHN9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49W10saT1hKHRbdC5sZW5ndGgtMV0sZSkscz10W3QubGVuZ3RoLTFdLGw9dFswXSxjPTA7Yzx0Lmxlbmd0aDsrK2Mscz1sKXt2YXIgdT1hKGw9dFtjXSxlKTtpZihpPDAmJnU+MHx8aT4wJiZ1PDApe3ZhciBmPW8ocyx1LGwsaSk7ci5wdXNoKGYpLG4ucHVzaChmLnNsaWNlKCkpfXU8MD9uLnB1c2gobC5zbGljZSgpKTp1PjA/ci5wdXNoKGwuc2xpY2UoKSk6KHIucHVzaChsLnNsaWNlKCkpLG4ucHVzaChsLnNsaWNlKCkpKSxpPXV9cmV0dXJue3Bvc2l0aXZlOnIsbmVnYXRpdmU6bn19LGUuZXhwb3J0cy5wb3NpdGl2ZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1bXSxuPWEodFt0Lmxlbmd0aC0xXSxlKSxpPXRbdC5sZW5ndGgtMV0scz10WzBdLGw9MDtsPHQubGVuZ3RoOysrbCxpPXMpe3ZhciBjPWEocz10W2xdLGUpOyhuPDAmJmM+MHx8bj4wJiZjPDApJiZyLnB1c2gobyhpLGMscyxuKSksYz49MCYmci5wdXNoKHMuc2xpY2UoKSksbj1jfXJldHVybiByfSxlLmV4cG9ydHMubmVnYXRpdmU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9W10sbj1hKHRbdC5sZW5ndGgtMV0sZSksaT10W3QubGVuZ3RoLTFdLHM9dFswXSxsPTA7bDx0Lmxlbmd0aDsrK2wsaT1zKXt2YXIgYz1hKHM9dFtsXSxlKTsobjwwJiZjPjB8fG4+MCYmYzwwKSYmci5wdXNoKG8oaSxjLHMsbikpLGM8PTAmJnIucHVzaChzLnNsaWNlKCkpLG49Y31yZXR1cm4gcn19LHsicm9idXN0LWRvdC1wcm9kdWN0Ijo1MjEsInJvYnVzdC1zdW0iOjUyOX1dLDU0MjpbZnVuY3Rpb24odCxlLHIpeyFmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgdD17bm90X3N0cmluZzovW15zXS8sbm90X2Jvb2w6L1tedF0vLG5vdF90eXBlOi9bXlRdLyxub3RfcHJpbWl0aXZlOi9bXnZdLyxudW1iZXI6L1tkaWVmZ10vLG51bWVyaWNfYXJnOi9bYmNkaWVmZ3V4WF0vLGpzb246L1tqXS8sbm90X2pzb246L1teal0vLHRleHQ6L15bXlx4MjVdKy8sbW9kdWxvOi9eXHgyNXsyfS8scGxhY2Vob2xkZXI6L15ceDI1KD86KFsxLTldXGQqKVwkfFwoKFteKV0rKVwpKT8oXCspPygwfCdbXiRdKT8oLSk/KFxkKyk/KD86XC4oXGQrKSk/KFtiLWdpam9zdFR1dnhYXSkvLGtleTovXihbYS16X11bYS16X1xkXSopL2ksa2V5X2FjY2VzczovXlwuKFthLXpfXVthLXpfXGRdKikvaSxpbmRleF9hY2Nlc3M6L15cWyhcZCspXF0vLHNpZ246L15bKy1dL307ZnVuY3Rpb24gZSh0KXtyZXR1cm4gaShvKHQpLGFyZ3VtZW50cyl9ZnVuY3Rpb24gbih0LHIpe3JldHVybiBlLmFwcGx5KG51bGwsW3RdLmNvbmNhdChyfHxbXSkpfWZ1bmN0aW9uIGkocixuKXt2YXIgaSxhLG8scyxsLGMsdSxmLGgscD0xLGQ9ci5sZW5ndGgsbT0iIjtmb3IoYT0wO2E8ZDthKyspaWYoInN0cmluZyI9PXR5cGVvZiByW2FdKW0rPXJbYV07ZWxzZSBpZigib2JqZWN0Ij09dHlwZW9mIHJbYV0pe2lmKChzPXJbYV0pLmtleXMpZm9yKGk9bltwXSxvPTA7bzxzLmtleXMubGVuZ3RoO28rKyl7aWYobnVsbD09aSl0aHJvdyBuZXcgRXJyb3IoZSgnW3NwcmludGZdIENhbm5vdCBhY2Nlc3MgcHJvcGVydHkgIiVzIiBvZiB1bmRlZmluZWQgdmFsdWUgIiVzIicscy5rZXlzW29dLHMua2V5c1tvLTFdKSk7aT1pW3Mua2V5c1tvXV19ZWxzZSBpPXMucGFyYW1fbm8/bltzLnBhcmFtX25vXTpuW3ArK107aWYodC5ub3RfdHlwZS50ZXN0KHMudHlwZSkmJnQubm90X3ByaW1pdGl2ZS50ZXN0KHMudHlwZSkmJmkgaW5zdGFuY2VvZiBGdW5jdGlvbiYmKGk9aSgpKSx0Lm51bWVyaWNfYXJnLnRlc3Qocy50eXBlKSYmIm51bWJlciIhPXR5cGVvZiBpJiZpc05hTihpKSl0aHJvdyBuZXcgVHlwZUVycm9yKGUoIltzcHJpbnRmXSBleHBlY3RpbmcgbnVtYmVyIGJ1dCBmb3VuZCAlVCIsaSkpO3N3aXRjaCh0Lm51bWJlci50ZXN0KHMudHlwZSkmJihmPWk+PTApLHMudHlwZSl7Y2FzZSJiIjppPXBhcnNlSW50KGksMTApLnRvU3RyaW5nKDIpO2JyZWFrO2Nhc2UiYyI6aT1TdHJpbmcuZnJvbUNoYXJDb2RlKHBhcnNlSW50KGksMTApKTticmVhaztjYXNlImQiOmNhc2UiaSI6aT1wYXJzZUludChpLDEwKTticmVhaztjYXNlImoiOmk9SlNPTi5zdHJpbmdpZnkoaSxudWxsLHMud2lkdGg/cGFyc2VJbnQocy53aWR0aCk6MCk7YnJlYWs7Y2FzZSJlIjppPXMucHJlY2lzaW9uP3BhcnNlRmxvYXQoaSkudG9FeHBvbmVudGlhbChzLnByZWNpc2lvbik6cGFyc2VGbG9hdChpKS50b0V4cG9uZW50aWFsKCk7YnJlYWs7Y2FzZSJmIjppPXMucHJlY2lzaW9uP3BhcnNlRmxvYXQoaSkudG9GaXhlZChzLnByZWNpc2lvbik6cGFyc2VGbG9hdChpKTticmVhaztjYXNlImciOmk9cy5wcmVjaXNpb24/U3RyaW5nKE51bWJlcihpLnRvUHJlY2lzaW9uKHMucHJlY2lzaW9uKSkpOnBhcnNlRmxvYXQoaSk7YnJlYWs7Y2FzZSJvIjppPShwYXJzZUludChpLDEwKT4+PjApLnRvU3RyaW5nKDgpO2JyZWFrO2Nhc2UicyI6aT1TdHJpbmcoaSksaT1zLnByZWNpc2lvbj9pLnN1YnN0cmluZygwLHMucHJlY2lzaW9uKTppO2JyZWFrO2Nhc2UidCI6aT1TdHJpbmcoISFpKSxpPXMucHJlY2lzaW9uP2kuc3Vic3RyaW5nKDAscy5wcmVjaXNpb24pOmk7YnJlYWs7Y2FzZSJUIjppPU9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpKS5zbGljZSg4LC0xKS50b0xvd2VyQ2FzZSgpLGk9cy5wcmVjaXNpb24/aS5zdWJzdHJpbmcoMCxzLnByZWNpc2lvbik6aTticmVhaztjYXNlInUiOmk9cGFyc2VJbnQoaSwxMCk+Pj4wO2JyZWFrO2Nhc2UidiI6aT1pLnZhbHVlT2YoKSxpPXMucHJlY2lzaW9uP2kuc3Vic3RyaW5nKDAscy5wcmVjaXNpb24pOmk7YnJlYWs7Y2FzZSJ4IjppPShwYXJzZUludChpLDEwKT4+PjApLnRvU3RyaW5nKDE2KTticmVhaztjYXNlIlgiOmk9KHBhcnNlSW50KGksMTApPj4+MCkudG9TdHJpbmcoMTYpLnRvVXBwZXJDYXNlKCl9dC5qc29uLnRlc3Qocy50eXBlKT9tKz1pOighdC5udW1iZXIudGVzdChzLnR5cGUpfHxmJiYhcy5zaWduP2g9IiI6KGg9Zj8iKyI6Ii0iLGk9aS50b1N0cmluZygpLnJlcGxhY2UodC5zaWduLCIiKSksYz1zLnBhZF9jaGFyPyIwIj09PXMucGFkX2NoYXI/IjAiOnMucGFkX2NoYXIuY2hhckF0KDEpOiIgIix1PXMud2lkdGgtKGgraSkubGVuZ3RoLGw9cy53aWR0aCYmdT4wP2MucmVwZWF0KHUpOiIiLG0rPXMuYWxpZ24/aCtpK2w6IjAiPT09Yz9oK2wraTpsK2graSl9cmV0dXJuIG19dmFyIGE9T2JqZWN0LmNyZWF0ZShudWxsKTtmdW5jdGlvbiBvKGUpe2lmKGFbZV0pcmV0dXJuIGFbZV07Zm9yKHZhciByLG49ZSxpPVtdLG89MDtuOyl7aWYobnVsbCE9PShyPXQudGV4dC5leGVjKG4pKSlpLnB1c2goclswXSk7ZWxzZSBpZihudWxsIT09KHI9dC5tb2R1bG8uZXhlYyhuKSkpaS5wdXNoKCIlIik7ZWxzZXtpZihudWxsPT09KHI9dC5wbGFjZWhvbGRlci5leGVjKG4pKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSB1bmV4cGVjdGVkIHBsYWNlaG9sZGVyIik7aWYoclsyXSl7b3w9MTt2YXIgcz1bXSxsPXJbMl0sYz1bXTtpZihudWxsPT09KGM9dC5rZXkuZXhlYyhsKSkpdGhyb3cgbmV3IFN5bnRheEVycm9yKCJbc3ByaW50Zl0gZmFpbGVkIHRvIHBhcnNlIG5hbWVkIGFyZ3VtZW50IGtleSIpO2ZvcihzLnB1c2goY1sxXSk7IiIhPT0obD1sLnN1YnN0cmluZyhjWzBdLmxlbmd0aCkpOylpZihudWxsIT09KGM9dC5rZXlfYWNjZXNzLmV4ZWMobCkpKXMucHVzaChjWzFdKTtlbHNle2lmKG51bGw9PT0oYz10LmluZGV4X2FjY2Vzcy5leGVjKGwpKSl0aHJvdyBuZXcgU3ludGF4RXJyb3IoIltzcHJpbnRmXSBmYWlsZWQgdG8gcGFyc2UgbmFtZWQgYXJndW1lbnQga2V5Iik7cy5wdXNoKGNbMV0pfXJbMl09c31lbHNlIG98PTI7aWYoMz09PW8pdGhyb3cgbmV3IEVycm9yKCJbc3ByaW50Zl0gbWl4aW5nIHBvc2l0aW9uYWwgYW5kIG5hbWVkIHBsYWNlaG9sZGVycyBpcyBub3QgKHlldCkgc3VwcG9ydGVkIik7aS5wdXNoKHtwbGFjZWhvbGRlcjpyWzBdLHBhcmFtX25vOnJbMV0sa2V5czpyWzJdLHNpZ246clszXSxwYWRfY2hhcjpyWzRdLGFsaWduOnJbNV0sd2lkdGg6cls2XSxwcmVjaXNpb246cls3XSx0eXBlOnJbOF19KX1uPW4uc3Vic3RyaW5nKHJbMF0ubGVuZ3RoKX1yZXR1cm4gYVtlXT1pfXZvaWQgMCE9PXImJihyLnNwcmludGY9ZSxyLnZzcHJpbnRmPW4pLCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiYod2luZG93LnNwcmludGY9ZSx3aW5kb3cudnNwcmludGY9bil9KCl9LHt9XSw1NDM6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9aTt2YXIgbj10KCJldmVudHMiKS5FdmVudEVtaXR0ZXI7ZnVuY3Rpb24gaSgpe24uY2FsbCh0aGlzKX10KCJpbmhlcml0cyIpKGksbiksaS5SZWFkYWJsZT10KCJyZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fcmVhZGFibGUuanMiKSxpLldyaXRhYmxlPXQoInJlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV93cml0YWJsZS5qcyIpLGkuRHVwbGV4PXQoInJlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV9kdXBsZXguanMiKSxpLlRyYW5zZm9ybT10KCJyZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fdHJhbnNmb3JtLmpzIiksaS5QYXNzVGhyb3VnaD10KCJyZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fcGFzc3Rocm91Z2guanMiKSxpLmZpbmlzaGVkPXQoInJlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9lbmQtb2Ytc3RyZWFtLmpzIiksaS5waXBlbGluZT10KCJyZWFkYWJsZS1zdHJlYW0vbGliL2ludGVybmFsL3N0cmVhbXMvcGlwZWxpbmUuanMiKSxpLlN0cmVhbT1pLGkucHJvdG90eXBlLnBpcGU9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzO2Z1bmN0aW9uIGkoZSl7dC53cml0YWJsZSYmITE9PT10LndyaXRlKGUpJiZyLnBhdXNlJiZyLnBhdXNlKCl9ZnVuY3Rpb24gYSgpe3IucmVhZGFibGUmJnIucmVzdW1lJiZyLnJlc3VtZSgpfXIub24oImRhdGEiLGkpLHQub24oImRyYWluIixhKSx0Ll9pc1N0ZGlvfHxlJiYhMT09PWUuZW5kfHwoci5vbigiZW5kIixzKSxyLm9uKCJjbG9zZSIsbCkpO3ZhciBvPSExO2Z1bmN0aW9uIHMoKXtvfHwobz0hMCx0LmVuZCgpKX1mdW5jdGlvbiBsKCl7b3x8KG89ITAsImZ1bmN0aW9uIj09dHlwZW9mIHQuZGVzdHJveSYmdC5kZXN0cm95KCkpfWZ1bmN0aW9uIGModCl7aWYodSgpLDA9PT1uLmxpc3RlbmVyQ291bnQodGhpcywiZXJyb3IiKSl0aHJvdyB0fWZ1bmN0aW9uIHUoKXtyLnJlbW92ZUxpc3RlbmVyKCJkYXRhIixpKSx0LnJlbW92ZUxpc3RlbmVyKCJkcmFpbiIsYSksci5yZW1vdmVMaXN0ZW5lcigiZW5kIixzKSxyLnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsbCksci5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLGMpLHQucmVtb3ZlTGlzdGVuZXIoImVycm9yIixjKSxyLnJlbW92ZUxpc3RlbmVyKCJlbmQiLHUpLHIucmVtb3ZlTGlzdGVuZXIoImNsb3NlIix1KSx0LnJlbW92ZUxpc3RlbmVyKCJjbG9zZSIsdSl9cmV0dXJuIHIub24oImVycm9yIixjKSx0Lm9uKCJlcnJvciIsYyksci5vbigiZW5kIix1KSxyLm9uKCJjbG9zZSIsdSksdC5vbigiY2xvc2UiLHUpLHQuZW1pdCgicGlwZSIsciksdH19LHtldmVudHM6MjM3LGluaGVyaXRzOjQyOSwicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX2R1cGxleC5qcyI6NTQ1LCJyZWFkYWJsZS1zdHJlYW0vbGliL19zdHJlYW1fcGFzc3Rocm91Z2guanMiOjU0NiwicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3JlYWRhYmxlLmpzIjo1NDcsInJlYWRhYmxlLXN0cmVhbS9saWIvX3N0cmVhbV90cmFuc2Zvcm0uanMiOjU0OCwicmVhZGFibGUtc3RyZWFtL2xpYi9fc3RyZWFtX3dyaXRhYmxlLmpzIjo1NDksInJlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9lbmQtb2Ytc3RyZWFtLmpzIjo1NTMsInJlYWRhYmxlLXN0cmVhbS9saWIvaW50ZXJuYWwvc3RyZWFtcy9waXBlbGluZS5qcyI6NTU1fV0sNTQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXt9O2Z1bmN0aW9uIGkodCxlLHIpe3J8fChyPUVycm9yKTt2YXIgaT1mdW5jdGlvbih0KXt2YXIgcixuO2Z1bmN0aW9uIGkocixuLGkpe3JldHVybiB0LmNhbGwodGhpcyxmdW5jdGlvbih0LHIsbil7cmV0dXJuInN0cmluZyI9PXR5cGVvZiBlP2U6ZSh0LHIsbil9KHIsbixpKSl8fHRoaXN9cmV0dXJuIG49dCwocj1pKS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShuLnByb3RvdHlwZSksci5wcm90b3R5cGUuY29uc3RydWN0b3I9cixyLl9fcHJvdG9fXz1uLGl9KHIpO2kucHJvdG90eXBlLm5hbWU9ci5uYW1lLGkucHJvdG90eXBlLmNvZGU9dCxuW3RdPWl9ZnVuY3Rpb24gYSh0LGUpe2lmKEFycmF5LmlzQXJyYXkodCkpe3ZhciByPXQubGVuZ3RoO3JldHVybiB0PXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHQpfSkpLHI+Mj8ib25lIG9mICIuY29uY2F0KGUsIiAiKS5jb25jYXQodC5zbGljZSgwLHItMSkuam9pbigiLCAiKSwiLCBvciAiKSt0W3ItMV06Mj09PXI/Im9uZSBvZiAiLmNvbmNhdChlLCIgIikuY29uY2F0KHRbMF0sIiBvciAiKS5jb25jYXQodFsxXSk6Im9mICIuY29uY2F0KGUsIiAiKS5jb25jYXQodFswXSl9cmV0dXJuIm9mICIuY29uY2F0KGUsIiAiKS5jb25jYXQoU3RyaW5nKHQpKX1pKCJFUlJfSU5WQUxJRF9PUFRfVkFMVUUiLChmdW5jdGlvbih0LGUpe3JldHVybidUaGUgdmFsdWUgIicrZSsnIiBpcyBpbnZhbGlkIGZvciBvcHRpb24gIicrdCsnIid9KSxUeXBlRXJyb3IpLGkoIkVSUl9JTlZBTElEX0FSR19UWVBFIiwoZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksbyxzO2lmKCJzdHJpbmciPT10eXBlb2YgZSYmKGk9Im5vdCAiLGUuc3Vic3RyKCFvfHxvPDA/MDorbyxpLmxlbmd0aCk9PT1pKT8obj0ibXVzdCBub3QgYmUiLGU9ZS5yZXBsYWNlKC9ebm90IC8sIiIpKTpuPSJtdXN0IGJlIixmdW5jdGlvbih0LGUscil7cmV0dXJuKHZvaWQgMD09PXJ8fHI+dC5sZW5ndGgpJiYocj10Lmxlbmd0aCksdC5zdWJzdHJpbmcoci1lLmxlbmd0aCxyKT09PWV9KHQsIiBhcmd1bWVudCIpKXM9IlRoZSAiLmNvbmNhdCh0LCIgIikuY29uY2F0KG4sIiAiKS5jb25jYXQoYShlLCJ0eXBlIikpO2Vsc2V7dmFyIGw9ZnVuY3Rpb24odCxlLHIpe3JldHVybiJudW1iZXIiIT10eXBlb2YgciYmKHI9MCksIShyK2UubGVuZ3RoPnQubGVuZ3RoKSYmLTEhPT10LmluZGV4T2YoZSxyKX0odCwiLiIpPyJwcm9wZXJ0eSI6ImFyZ3VtZW50IjtzPSdUaGUgIicuY29uY2F0KHQsJyIgJykuY29uY2F0KGwsIiAiKS5jb25jYXQobiwiICIpLmNvbmNhdChhKGUsInR5cGUiKSl9cmV0dXJuIHMrPSIuIFJlY2VpdmVkIHR5cGUgIi5jb25jYXQodHlwZW9mIHIpfSksVHlwZUVycm9yKSxpKCJFUlJfU1RSRUFNX1BVU0hfQUZURVJfRU9GIiwic3RyZWFtLnB1c2goKSBhZnRlciBFT0YiKSxpKCJFUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCIsKGZ1bmN0aW9uKHQpe3JldHVybiJUaGUgIit0KyIgbWV0aG9kIGlzIG5vdCBpbXBsZW1lbnRlZCJ9KSksaSgiRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0UiLCJQcmVtYXR1cmUgY2xvc2UiKSxpKCJFUlJfU1RSRUFNX0RFU1RST1lFRCIsKGZ1bmN0aW9uKHQpe3JldHVybiJDYW5ub3QgY2FsbCAiK3QrIiBhZnRlciBhIHN0cmVhbSB3YXMgZGVzdHJveWVkIn0pKSxpKCJFUlJfTVVMVElQTEVfQ0FMTEJBQ0siLCJDYWxsYmFjayBjYWxsZWQgbXVsdGlwbGUgdGltZXMiKSxpKCJFUlJfU1RSRUFNX0NBTk5PVF9QSVBFIiwiQ2Fubm90IHBpcGUsIG5vdCByZWFkYWJsZSIpLGkoIkVSUl9TVFJFQU1fV1JJVEVfQUZURVJfRU5EIiwid3JpdGUgYWZ0ZXIgZW5kIiksaSgiRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyIsIk1heSBub3Qgd3JpdGUgbnVsbCB2YWx1ZXMgdG8gc3RyZWFtIixUeXBlRXJyb3IpLGkoIkVSUl9VTktOT1dOX0VOQ09ESU5HIiwoZnVuY3Rpb24odCl7cmV0dXJuIlVua25vd24gZW5jb2Rpbmc6ICIrdH0pLFR5cGVFcnJvciksaSgiRVJSX1NUUkVBTV9VTlNISUZUX0FGVEVSX0VORF9FVkVOVCIsInN0cmVhbS51bnNoaWZ0KCkgYWZ0ZXIgZW5kIGV2ZW50IiksZS5leHBvcnRzLmNvZGVzPW59LHt9XSw1NDU6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBuPU9iamVjdC5rZXlzfHxmdW5jdGlvbih0KXt2YXIgZT1bXTtmb3IodmFyIHIgaW4gdCllLnB1c2gocik7cmV0dXJuIGV9O2UuZXhwb3J0cz1jO3ZhciBpPXQoIi4vX3N0cmVhbV9yZWFkYWJsZSIpLGE9dCgiLi9fc3RyZWFtX3dyaXRhYmxlIik7dCgiaW5oZXJpdHMiKShjLGkpO2Zvcih2YXIgbz1uKGEucHJvdG90eXBlKSxzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBsPW9bc107Yy5wcm90b3R5cGVbbF18fChjLnByb3RvdHlwZVtsXT1hLnByb3RvdHlwZVtsXSl9ZnVuY3Rpb24gYyh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBjKSlyZXR1cm4gbmV3IGModCk7aS5jYWxsKHRoaXMsdCksYS5jYWxsKHRoaXMsdCksdGhpcy5hbGxvd0hhbGZPcGVuPSEwLHQmJighMT09PXQucmVhZGFibGUmJih0aGlzLnJlYWRhYmxlPSExKSwhMT09PXQud3JpdGFibGUmJih0aGlzLndyaXRhYmxlPSExKSwhMT09PXQuYWxsb3dIYWxmT3BlbiYmKHRoaXMuYWxsb3dIYWxmT3Blbj0hMSx0aGlzLm9uY2UoImVuZCIsdSkpKX1mdW5jdGlvbiB1KCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZHx8ci5uZXh0VGljayhmLHRoaXMpfWZ1bmN0aW9uIGYodCl7dC5lbmQoKX1PYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsIndyaXRhYmxlSGlnaFdhdGVyTWFyayIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3dyaXRhYmxlU3RhdGUuaGlnaFdhdGVyTWFya319KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsIndyaXRhYmxlQnVmZmVyIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZSYmdGhpcy5fd3JpdGFibGVTdGF0ZS5nZXRCdWZmZXIoKX19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoYy5wcm90b3R5cGUsIndyaXRhYmxlTGVuZ3RoIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5sZW5ndGh9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KGMucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ2b2lkIDAhPT10aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkKX0sc2V0OmZ1bmN0aW9uKHQpe3ZvaWQgMCE9PXRoaXMuX3JlYWRhYmxlU3RhdGUmJnZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD10LHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPXQpfX0pfSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpKX0seyIuL19zdHJlYW1fcmVhZGFibGUiOjU0NywiLi9fc3RyZWFtX3dyaXRhYmxlIjo1NDksX3Byb2Nlc3M6NTA0LGluaGVyaXRzOjQyOX1dLDU0NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9aTt2YXIgbj10KCIuL19zdHJlYW1fdHJhbnNmb3JtIik7ZnVuY3Rpb24gaSh0KXtpZighKHRoaXMgaW5zdGFuY2VvZiBpKSlyZXR1cm4gbmV3IGkodCk7bi5jYWxsKHRoaXMsdCl9dCgiaW5oZXJpdHMiKShpLG4pLGkucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe3IobnVsbCx0KX19LHsiLi9fc3RyZWFtX3RyYW5zZm9ybSI6NTQ4LGluaGVyaXRzOjQyOX1dLDU0NzpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyLG4peyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgaTtlLmV4cG9ydHM9QSxBLlJlYWRhYmxlU3RhdGU9azt0KCJldmVudHMiKS5FdmVudEVtaXR0ZXI7dmFyIGE9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5saXN0ZW5lcnMoZSkubGVuZ3RofSxvPXQoIi4vaW50ZXJuYWwvc3RyZWFtcy9zdHJlYW0iKSxzPXQoImJ1ZmZlciIpLkJ1ZmZlcixsPW4uVWludDhBcnJheXx8ZnVuY3Rpb24oKXt9O3ZhciBjLHU9dCgidXRpbCIpO2M9dSYmdS5kZWJ1Z2xvZz91LmRlYnVnbG9nKCJzdHJlYW0iKTpmdW5jdGlvbigpe307dmFyIGYsaCxwLGQ9dCgiLi9pbnRlcm5hbC9zdHJlYW1zL2J1ZmZlcl9saXN0IiksbT10KCIuL2ludGVybmFsL3N0cmVhbXMvZGVzdHJveSIpLGc9dCgiLi9pbnRlcm5hbC9zdHJlYW1zL3N0YXRlIikuZ2V0SGlnaFdhdGVyTWFyayx2PXQoIi4uL2Vycm9ycyIpLmNvZGVzLHk9di5FUlJfSU5WQUxJRF9BUkdfVFlQRSx4PXYuRVJSX1NUUkVBTV9QVVNIX0FGVEVSX0VPRixiPXYuRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsXz12LkVSUl9TVFJFQU1fVU5TSElGVF9BRlRFUl9FTkRfRVZFTlQ7dCgiaW5oZXJpdHMiKShBLG8pO3ZhciB3PW0uZXJyb3JPckRlc3Ryb3ksVD1bImVycm9yIiwiY2xvc2UiLCJkZXN0cm95IiwicGF1c2UiLCJyZXN1bWUiXTtmdW5jdGlvbiBrKGUscixuKXtpPWl8fHQoIi4vX3N0cmVhbV9kdXBsZXgiKSxlPWV8fHt9LCJib29sZWFuIiE9dHlwZW9mIG4mJihuPXIgaW5zdGFuY2VvZiBpKSx0aGlzLm9iamVjdE1vZGU9ISFlLm9iamVjdE1vZGUsbiYmKHRoaXMub2JqZWN0TW9kZT10aGlzLm9iamVjdE1vZGV8fCEhZS5yZWFkYWJsZU9iamVjdE1vZGUpLHRoaXMuaGlnaFdhdGVyTWFyaz1nKHRoaXMsZSwicmVhZGFibGVIaWdoV2F0ZXJNYXJrIixuKSx0aGlzLmJ1ZmZlcj1uZXcgZCx0aGlzLmxlbmd0aD0wLHRoaXMucGlwZXM9bnVsbCx0aGlzLnBpcGVzQ291bnQ9MCx0aGlzLmZsb3dpbmc9bnVsbCx0aGlzLmVuZGVkPSExLHRoaXMuZW5kRW1pdHRlZD0hMSx0aGlzLnJlYWRpbmc9ITEsdGhpcy5zeW5jPSEwLHRoaXMubmVlZFJlYWRhYmxlPSExLHRoaXMuZW1pdHRlZFJlYWRhYmxlPSExLHRoaXMucmVhZGFibGVMaXN0ZW5pbmc9ITEsdGhpcy5yZXN1bWVTY2hlZHVsZWQ9ITEsdGhpcy5wYXVzZWQ9ITAsdGhpcy5lbWl0Q2xvc2U9ITEhPT1lLmVtaXRDbG9zZSx0aGlzLmF1dG9EZXN0cm95PSEhZS5hdXRvRGVzdHJveSx0aGlzLmRlc3Ryb3llZD0hMSx0aGlzLmRlZmF1bHRFbmNvZGluZz1lLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMuYXdhaXREcmFpbj0wLHRoaXMucmVhZGluZ01vcmU9ITEsdGhpcy5kZWNvZGVyPW51bGwsdGhpcy5lbmNvZGluZz1udWxsLGUuZW5jb2RpbmcmJihmfHwoZj10KCJzdHJpbmdfZGVjb2Rlci8iKS5TdHJpbmdEZWNvZGVyKSx0aGlzLmRlY29kZXI9bmV3IGYoZS5lbmNvZGluZyksdGhpcy5lbmNvZGluZz1lLmVuY29kaW5nKX1mdW5jdGlvbiBBKGUpe2lmKGk9aXx8dCgiLi9fc3RyZWFtX2R1cGxleCIpLCEodGhpcyBpbnN0YW5jZW9mIEEpKXJldHVybiBuZXcgQShlKTt2YXIgcj10aGlzIGluc3RhbmNlb2YgaTt0aGlzLl9yZWFkYWJsZVN0YXRlPW5ldyBrKGUsdGhpcyxyKSx0aGlzLnJlYWRhYmxlPSEwLGUmJigiZnVuY3Rpb24iPT10eXBlb2YgZS5yZWFkJiYodGhpcy5fcmVhZD1lLnJlYWQpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLmRlc3Ryb3kmJih0aGlzLl9kZXN0cm95PWUuZGVzdHJveSkpLG8uY2FsbCh0aGlzKX1mdW5jdGlvbiBNKHQsZSxyLG4saSl7YygicmVhZGFibGVBZGRDaHVuayIsZSk7dmFyIGEsbz10Ll9yZWFkYWJsZVN0YXRlO2lmKG51bGw9PT1lKW8ucmVhZGluZz0hMSxmdW5jdGlvbih0LGUpe2lmKGMoIm9uRW9mQ2h1bmsiKSxlLmVuZGVkKXJldHVybjtpZihlLmRlY29kZXIpe3ZhciByPWUuZGVjb2Rlci5lbmQoKTtyJiZyLmxlbmd0aCYmKGUuYnVmZmVyLnB1c2gociksZS5sZW5ndGgrPWUub2JqZWN0TW9kZT8xOnIubGVuZ3RoKX1lLmVuZGVkPSEwLGUuc3luYz9MKHQpOihlLm5lZWRSZWFkYWJsZT0hMSxlLmVtaXR0ZWRSZWFkYWJsZXx8KGUuZW1pdHRlZFJlYWRhYmxlPSEwLEModCkpKX0odCxvKTtlbHNlIGlmKGl8fChhPWZ1bmN0aW9uKHQsZSl7dmFyIHI7bj1lLHMuaXNCdWZmZXIobil8fG4gaW5zdGFuY2VvZiBsfHwic3RyaW5nIj09dHlwZW9mIGV8fHZvaWQgMD09PWV8fHQub2JqZWN0TW9kZXx8KHI9bmV3IHkoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciIsIlVpbnQ4QXJyYXkiXSxlKSk7dmFyIG47cmV0dXJuIHJ9KG8sZSkpLGEpdyh0LGEpO2Vsc2UgaWYoby5vYmplY3RNb2RlfHxlJiZlLmxlbmd0aD4wKWlmKCJzdHJpbmciPT10eXBlb2YgZXx8by5vYmplY3RNb2RlfHxPYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk9PT1zLnByb3RvdHlwZXx8KGU9ZnVuY3Rpb24odCl7cmV0dXJuIHMuZnJvbSh0KX0oZSkpLG4pby5lbmRFbWl0dGVkP3codCxuZXcgXyk6Uyh0LG8sZSwhMCk7ZWxzZSBpZihvLmVuZGVkKXcodCxuZXcgeCk7ZWxzZXtpZihvLmRlc3Ryb3llZClyZXR1cm4hMTtvLnJlYWRpbmc9ITEsby5kZWNvZGVyJiYhcj8oZT1vLmRlY29kZXIud3JpdGUoZSksby5vYmplY3RNb2RlfHwwIT09ZS5sZW5ndGg/Uyh0LG8sZSwhMSk6UCh0LG8pKTpTKHQsbyxlLCExKX1lbHNlIG58fChvLnJlYWRpbmc9ITEsUCh0LG8pKTtyZXR1cm4hby5lbmRlZCYmKG8ubGVuZ3RoPG8uaGlnaFdhdGVyTWFya3x8MD09PW8ubGVuZ3RoKX1mdW5jdGlvbiBTKHQsZSxyLG4pe2UuZmxvd2luZyYmMD09PWUubGVuZ3RoJiYhZS5zeW5jPyhlLmF3YWl0RHJhaW49MCx0LmVtaXQoImRhdGEiLHIpKTooZS5sZW5ndGgrPWUub2JqZWN0TW9kZT8xOnIubGVuZ3RoLG4/ZS5idWZmZXIudW5zaGlmdChyKTplLmJ1ZmZlci5wdXNoKHIpLGUubmVlZFJlYWRhYmxlJiZMKHQpKSxQKHQsZSl9T2JqZWN0LmRlZmluZVByb3BlcnR5KEEucHJvdG90eXBlLCJkZXN0cm95ZWQiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT10aGlzLl9yZWFkYWJsZVN0YXRlJiZ0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZH0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMuX3JlYWRhYmxlU3RhdGUmJih0aGlzLl9yZWFkYWJsZVN0YXRlLmRlc3Ryb3llZD10KX19KSxBLnByb3RvdHlwZS5kZXN0cm95PW0uZGVzdHJveSxBLnByb3RvdHlwZS5fdW5kZXN0cm95PW0udW5kZXN0cm95LEEucHJvdG90eXBlLl9kZXN0cm95PWZ1bmN0aW9uKHQsZSl7ZSh0KX0sQS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3ZhciByLG49dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4gbi5vYmplY3RNb2RlP3I9ITA6InN0cmluZyI9PXR5cGVvZiB0JiYoKGU9ZXx8bi5kZWZhdWx0RW5jb2RpbmcpIT09bi5lbmNvZGluZyYmKHQ9cy5mcm9tKHQsZSksZT0iIikscj0hMCksTSh0aGlzLHQsZSwhMSxyKX0sQS5wcm90b3R5cGUudW5zaGlmdD1mdW5jdGlvbih0KXtyZXR1cm4gTSh0aGlzLHQsbnVsbCwhMCwhMSl9LEEucHJvdG90eXBlLmlzUGF1c2VkPWZ1bmN0aW9uKCl7cmV0dXJuITE9PT10aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmd9LEEucHJvdG90eXBlLnNldEVuY29kaW5nPWZ1bmN0aW9uKGUpe2Z8fChmPXQoInN0cmluZ19kZWNvZGVyLyIpLlN0cmluZ0RlY29kZXIpO3ZhciByPW5ldyBmKGUpO3RoaXMuX3JlYWRhYmxlU3RhdGUuZGVjb2Rlcj1yLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5jb2Rpbmc9dGhpcy5fcmVhZGFibGVTdGF0ZS5kZWNvZGVyLmVuY29kaW5nO2Zvcih2YXIgbj10aGlzLl9yZWFkYWJsZVN0YXRlLmJ1ZmZlci5oZWFkLGk9IiI7bnVsbCE9PW47KWkrPXIud3JpdGUobi5kYXRhKSxuPW4ubmV4dDtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5idWZmZXIuY2xlYXIoKSwiIiE9PWkmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyLnB1c2goaSksdGhpcy5fcmVhZGFibGVTdGF0ZS5sZW5ndGg9aS5sZW5ndGgsdGhpc307ZnVuY3Rpb24gRSh0LGUpe3JldHVybiB0PD0wfHwwPT09ZS5sZW5ndGgmJmUuZW5kZWQ/MDplLm9iamVjdE1vZGU/MTp0IT10P2UuZmxvd2luZyYmZS5sZW5ndGg/ZS5idWZmZXIuaGVhZC5kYXRhLmxlbmd0aDplLmxlbmd0aDoodD5lLmhpZ2hXYXRlck1hcmsmJihlLmhpZ2hXYXRlck1hcms9ZnVuY3Rpb24odCl7cmV0dXJuIHQ+PTEwNzM3NDE4MjQ/dD0xMDczNzQxODI0Oih0LS0sdHw9dD4+PjEsdHw9dD4+PjIsdHw9dD4+PjQsdHw9dD4+PjgsdHw9dD4+PjE2LHQrKyksdH0odCkpLHQ8PWUubGVuZ3RoP3Q6ZS5lbmRlZD9lLmxlbmd0aDooZS5uZWVkUmVhZGFibGU9ITAsMCkpfWZ1bmN0aW9uIEwodCl7dmFyIGU9dC5fcmVhZGFibGVTdGF0ZTtjKCJlbWl0UmVhZGFibGUiLGUubmVlZFJlYWRhYmxlLGUuZW1pdHRlZFJlYWRhYmxlKSxlLm5lZWRSZWFkYWJsZT0hMSxlLmVtaXR0ZWRSZWFkYWJsZXx8KGMoImVtaXRSZWFkYWJsZSIsZS5mbG93aW5nKSxlLmVtaXR0ZWRSZWFkYWJsZT0hMCxyLm5leHRUaWNrKEMsdCkpfWZ1bmN0aW9uIEModCl7dmFyIGU9dC5fcmVhZGFibGVTdGF0ZTtjKCJlbWl0UmVhZGFibGVfIixlLmRlc3Ryb3llZCxlLmxlbmd0aCxlLmVuZGVkKSxlLmRlc3Ryb3llZHx8IWUubGVuZ3RoJiYhZS5lbmRlZHx8KHQuZW1pdCgicmVhZGFibGUiKSxlLmVtaXR0ZWRSZWFkYWJsZT0hMSksZS5uZWVkUmVhZGFibGU9IWUuZmxvd2luZyYmIWUuZW5kZWQmJmUubGVuZ3RoPD1lLmhpZ2hXYXRlck1hcmssUih0KX1mdW5jdGlvbiBQKHQsZSl7ZS5yZWFkaW5nTW9yZXx8KGUucmVhZGluZ01vcmU9ITAsci5uZXh0VGljayhJLHQsZSkpfWZ1bmN0aW9uIEkodCxlKXtmb3IoOyFlLnJlYWRpbmcmJiFlLmVuZGVkJiYoZS5sZW5ndGg8ZS5oaWdoV2F0ZXJNYXJrfHxlLmZsb3dpbmcmJjA9PT1lLmxlbmd0aCk7KXt2YXIgcj1lLmxlbmd0aDtpZihjKCJtYXliZVJlYWRNb3JlIHJlYWQgMCIpLHQucmVhZCgwKSxyPT09ZS5sZW5ndGgpYnJlYWt9ZS5yZWFkaW5nTW9yZT0hMX1mdW5jdGlvbiBPKHQpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7ZS5yZWFkYWJsZUxpc3RlbmluZz10Lmxpc3RlbmVyQ291bnQoInJlYWRhYmxlIik+MCxlLnJlc3VtZVNjaGVkdWxlZCYmIWUucGF1c2VkP2UuZmxvd2luZz0hMDp0Lmxpc3RlbmVyQ291bnQoImRhdGEiKT4wJiZ0LnJlc3VtZSgpfWZ1bmN0aW9uIHoodCl7YygicmVhZGFibGUgbmV4dHRpY2sgcmVhZCAwIiksdC5yZWFkKDApfWZ1bmN0aW9uIEQodCxlKXtjKCJyZXN1bWUiLGUucmVhZGluZyksZS5yZWFkaW5nfHx0LnJlYWQoMCksZS5yZXN1bWVTY2hlZHVsZWQ9ITEsdC5lbWl0KCJyZXN1bWUiKSxSKHQpLGUuZmxvd2luZyYmIWUucmVhZGluZyYmdC5yZWFkKDApfWZ1bmN0aW9uIFIodCl7dmFyIGU9dC5fcmVhZGFibGVTdGF0ZTtmb3IoYygiZmxvdyIsZS5mbG93aW5nKTtlLmZsb3dpbmcmJm51bGwhPT10LnJlYWQoKTspO31mdW5jdGlvbiBGKHQsZSl7cmV0dXJuIDA9PT1lLmxlbmd0aD9udWxsOihlLm9iamVjdE1vZGU/cj1lLmJ1ZmZlci5zaGlmdCgpOiF0fHx0Pj1lLmxlbmd0aD8ocj1lLmRlY29kZXI/ZS5idWZmZXIuam9pbigiIik6MT09PWUuYnVmZmVyLmxlbmd0aD9lLmJ1ZmZlci5maXJzdCgpOmUuYnVmZmVyLmNvbmNhdChlLmxlbmd0aCksZS5idWZmZXIuY2xlYXIoKSk6cj1lLmJ1ZmZlci5jb25zdW1lKHQsZS5kZWNvZGVyKSxyKTt2YXIgcn1mdW5jdGlvbiBCKHQpe3ZhciBlPXQuX3JlYWRhYmxlU3RhdGU7YygiZW5kUmVhZGFibGUiLGUuZW5kRW1pdHRlZCksZS5lbmRFbWl0dGVkfHwoZS5lbmRlZD0hMCxyLm5leHRUaWNrKE4sZSx0KSl9ZnVuY3Rpb24gTih0LGUpe2lmKGMoImVuZFJlYWRhYmxlTlQiLHQuZW5kRW1pdHRlZCx0Lmxlbmd0aCksIXQuZW5kRW1pdHRlZCYmMD09PXQubGVuZ3RoJiYodC5lbmRFbWl0dGVkPSEwLGUucmVhZGFibGU9ITEsZS5lbWl0KCJlbmQiKSx0LmF1dG9EZXN0cm95KSl7dmFyIHI9ZS5fd3JpdGFibGVTdGF0ZTsoIXJ8fHIuYXV0b0Rlc3Ryb3kmJnIuZmluaXNoZWQpJiZlLmRlc3Ryb3koKX19ZnVuY3Rpb24gaih0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGg7cjxuO3IrKylpZih0W3JdPT09ZSlyZXR1cm4gcjtyZXR1cm4tMX1BLnByb3RvdHlwZS5yZWFkPWZ1bmN0aW9uKHQpe2MoInJlYWQiLHQpLHQ9cGFyc2VJbnQodCwxMCk7dmFyIGU9dGhpcy5fcmVhZGFibGVTdGF0ZSxyPXQ7aWYoMCE9PXQmJihlLmVtaXR0ZWRSZWFkYWJsZT0hMSksMD09PXQmJmUubmVlZFJlYWRhYmxlJiYoKDAhPT1lLmhpZ2hXYXRlck1hcms/ZS5sZW5ndGg+PWUuaGlnaFdhdGVyTWFyazplLmxlbmd0aD4wKXx8ZS5lbmRlZCkpcmV0dXJuIGMoInJlYWQ6IGVtaXRSZWFkYWJsZSIsZS5sZW5ndGgsZS5lbmRlZCksMD09PWUubGVuZ3RoJiZlLmVuZGVkP0IodGhpcyk6TCh0aGlzKSxudWxsO2lmKDA9PT0odD1FKHQsZSkpJiZlLmVuZGVkKXJldHVybiAwPT09ZS5sZW5ndGgmJkIodGhpcyksbnVsbDt2YXIgbixpPWUubmVlZFJlYWRhYmxlO3JldHVybiBjKCJuZWVkIHJlYWRhYmxlIixpKSwoMD09PWUubGVuZ3RofHxlLmxlbmd0aC10PGUuaGlnaFdhdGVyTWFyaykmJmMoImxlbmd0aCBsZXNzIHRoYW4gd2F0ZXJtYXJrIixpPSEwKSxlLmVuZGVkfHxlLnJlYWRpbmc/YygicmVhZGluZyBvciBlbmRlZCIsaT0hMSk6aSYmKGMoImRvIHJlYWQiKSxlLnJlYWRpbmc9ITAsZS5zeW5jPSEwLDA9PT1lLmxlbmd0aCYmKGUubmVlZFJlYWRhYmxlPSEwKSx0aGlzLl9yZWFkKGUuaGlnaFdhdGVyTWFyayksZS5zeW5jPSExLGUucmVhZGluZ3x8KHQ9RShyLGUpKSksbnVsbD09PShuPXQ+MD9GKHQsZSk6bnVsbCk/KGUubmVlZFJlYWRhYmxlPWUubGVuZ3RoPD1lLmhpZ2hXYXRlck1hcmssdD0wKTooZS5sZW5ndGgtPXQsZS5hd2FpdERyYWluPTApLDA9PT1lLmxlbmd0aCYmKGUuZW5kZWR8fChlLm5lZWRSZWFkYWJsZT0hMCksciE9PXQmJmUuZW5kZWQmJkIodGhpcykpLG51bGwhPT1uJiZ0aGlzLmVtaXQoImRhdGEiLG4pLG59LEEucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKHQpe3codGhpcyxuZXcgYigiX3JlYWQoKSIpKX0sQS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbih0LGUpe3ZhciBuPXRoaXMsaT10aGlzLl9yZWFkYWJsZVN0YXRlO3N3aXRjaChpLnBpcGVzQ291bnQpe2Nhc2UgMDppLnBpcGVzPXQ7YnJlYWs7Y2FzZSAxOmkucGlwZXM9W2kucGlwZXMsdF07YnJlYWs7ZGVmYXVsdDppLnBpcGVzLnB1c2godCl9aS5waXBlc0NvdW50Kz0xLGMoInBpcGUgY291bnQ9JWQgb3B0cz0laiIsaS5waXBlc0NvdW50LGUpO3ZhciBvPSghZXx8ITEhPT1lLmVuZCkmJnQhPT1yLnN0ZG91dCYmdCE9PXIuc3RkZXJyP2w6ZztmdW5jdGlvbiBzKGUscil7Yygib251bnBpcGUiKSxlPT09biYmciYmITE9PT1yLmhhc1VucGlwZWQmJihyLmhhc1VucGlwZWQ9ITAsYygiY2xlYW51cCIpLHQucmVtb3ZlTGlzdGVuZXIoImNsb3NlIixkKSx0LnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLG0pLHQucmVtb3ZlTGlzdGVuZXIoImRyYWluIix1KSx0LnJlbW92ZUxpc3RlbmVyKCJlcnJvciIscCksdC5yZW1vdmVMaXN0ZW5lcigidW5waXBlIixzKSxuLnJlbW92ZUxpc3RlbmVyKCJlbmQiLGwpLG4ucmVtb3ZlTGlzdGVuZXIoImVuZCIsZyksbi5yZW1vdmVMaXN0ZW5lcigiZGF0YSIsaCksZj0hMCwhaS5hd2FpdERyYWlufHx0Ll93cml0YWJsZVN0YXRlJiYhdC5fd3JpdGFibGVTdGF0ZS5uZWVkRHJhaW58fHUoKSl9ZnVuY3Rpb24gbCgpe2MoIm9uZW5kIiksdC5lbmQoKX1pLmVuZEVtaXR0ZWQ/ci5uZXh0VGljayhvKTpuLm9uY2UoImVuZCIsbyksdC5vbigidW5waXBlIixzKTt2YXIgdT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT10Ll9yZWFkYWJsZVN0YXRlO2MoInBpcGVPbkRyYWluIixlLmF3YWl0RHJhaW4pLGUuYXdhaXREcmFpbiYmZS5hd2FpdERyYWluLS0sMD09PWUuYXdhaXREcmFpbiYmYSh0LCJkYXRhIikmJihlLmZsb3dpbmc9ITAsUih0KSl9fShuKTt0Lm9uKCJkcmFpbiIsdSk7dmFyIGY9ITE7ZnVuY3Rpb24gaChlKXtjKCJvbmRhdGEiKTt2YXIgcj10LndyaXRlKGUpO2MoImRlc3Qud3JpdGUiLHIpLCExPT09ciYmKCgxPT09aS5waXBlc0NvdW50JiZpLnBpcGVzPT09dHx8aS5waXBlc0NvdW50PjEmJi0xIT09aihpLnBpcGVzLHQpKSYmIWYmJihjKCJmYWxzZSB3cml0ZSByZXNwb25zZSwgcGF1c2UiLGkuYXdhaXREcmFpbiksaS5hd2FpdERyYWluKyspLG4ucGF1c2UoKSl9ZnVuY3Rpb24gcChlKXtjKCJvbmVycm9yIixlKSxnKCksdC5yZW1vdmVMaXN0ZW5lcigiZXJyb3IiLHApLDA9PT1hKHQsImVycm9yIikmJncodCxlKX1mdW5jdGlvbiBkKCl7dC5yZW1vdmVMaXN0ZW5lcigiZmluaXNoIixtKSxnKCl9ZnVuY3Rpb24gbSgpe2MoIm9uZmluaXNoIiksdC5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGQpLGcoKX1mdW5jdGlvbiBnKCl7YygidW5waXBlIiksbi51bnBpcGUodCl9cmV0dXJuIG4ub24oImRhdGEiLGgpLGZ1bmN0aW9uKHQsZSxyKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgdC5wcmVwZW5kTGlzdGVuZXIpcmV0dXJuIHQucHJlcGVuZExpc3RlbmVyKGUscik7dC5fZXZlbnRzJiZ0Ll9ldmVudHNbZV0/QXJyYXkuaXNBcnJheSh0Ll9ldmVudHNbZV0pP3QuX2V2ZW50c1tlXS51bnNoaWZ0KHIpOnQuX2V2ZW50c1tlXT1bcix0Ll9ldmVudHNbZV1dOnQub24oZSxyKX0odCwiZXJyb3IiLHApLHQub25jZSgiY2xvc2UiLGQpLHQub25jZSgiZmluaXNoIixtKSx0LmVtaXQoInBpcGUiLG4pLGkuZmxvd2luZ3x8KGMoInBpcGUgcmVzdW1lIiksbi5yZXN1bWUoKSksdH0sQS5wcm90b3R5cGUudW5waXBlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3JlYWRhYmxlU3RhdGUscj17aGFzVW5waXBlZDohMX07aWYoMD09PWUucGlwZXNDb3VudClyZXR1cm4gdGhpcztpZigxPT09ZS5waXBlc0NvdW50KXJldHVybiB0JiZ0IT09ZS5waXBlc3x8KHR8fCh0PWUucGlwZXMpLGUucGlwZXM9bnVsbCxlLnBpcGVzQ291bnQ9MCxlLmZsb3dpbmc9ITEsdCYmdC5lbWl0KCJ1bnBpcGUiLHRoaXMscikpLHRoaXM7aWYoIXQpe3ZhciBuPWUucGlwZXMsaT1lLnBpcGVzQ291bnQ7ZS5waXBlcz1udWxsLGUucGlwZXNDb3VudD0wLGUuZmxvd2luZz0hMTtmb3IodmFyIGE9MDthPGk7YSsrKW5bYV0uZW1pdCgidW5waXBlIix0aGlzLHtoYXNVbnBpcGVkOiExfSk7cmV0dXJuIHRoaXN9dmFyIG89aihlLnBpcGVzLHQpO3JldHVybi0xPT09b3x8KGUucGlwZXMuc3BsaWNlKG8sMSksZS5waXBlc0NvdW50LT0xLDE9PT1lLnBpcGVzQ291bnQmJihlLnBpcGVzPWUucGlwZXNbMF0pLHQuZW1pdCgidW5waXBlIix0aGlzLHIpKSx0aGlzfSxBLnByb3RvdHlwZS5vbj1mdW5jdGlvbih0LGUpe3ZhciBuPW8ucHJvdG90eXBlLm9uLmNhbGwodGhpcyx0LGUpLGk9dGhpcy5fcmVhZGFibGVTdGF0ZTtyZXR1cm4iZGF0YSI9PT10PyhpLnJlYWRhYmxlTGlzdGVuaW5nPXRoaXMubGlzdGVuZXJDb3VudCgicmVhZGFibGUiKT4wLCExIT09aS5mbG93aW5nJiZ0aGlzLnJlc3VtZSgpKToicmVhZGFibGUiPT09dCYmKGkuZW5kRW1pdHRlZHx8aS5yZWFkYWJsZUxpc3RlbmluZ3x8KGkucmVhZGFibGVMaXN0ZW5pbmc9aS5uZWVkUmVhZGFibGU9ITAsaS5mbG93aW5nPSExLGkuZW1pdHRlZFJlYWRhYmxlPSExLGMoIm9uIHJlYWRhYmxlIixpLmxlbmd0aCxpLnJlYWRpbmcpLGkubGVuZ3RoP0wodGhpcyk6aS5yZWFkaW5nfHxyLm5leHRUaWNrKHosdGhpcykpKSxufSxBLnByb3RvdHlwZS5hZGRMaXN0ZW5lcj1BLnByb3RvdHlwZS5vbixBLnByb3RvdHlwZS5yZW1vdmVMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3ZhciBuPW8ucHJvdG90eXBlLnJlbW92ZUxpc3RlbmVyLmNhbGwodGhpcyx0LGUpO3JldHVybiJyZWFkYWJsZSI9PT10JiZyLm5leHRUaWNrKE8sdGhpcyksbn0sQS5wcm90b3R5cGUucmVtb3ZlQWxsTGlzdGVuZXJzPWZ1bmN0aW9uKHQpe3ZhciBlPW8ucHJvdG90eXBlLnJlbW92ZUFsbExpc3RlbmVycy5hcHBseSh0aGlzLGFyZ3VtZW50cyk7cmV0dXJuInJlYWRhYmxlIiE9PXQmJnZvaWQgMCE9PXR8fHIubmV4dFRpY2soTyx0aGlzKSxlfSxBLnByb3RvdHlwZS5yZXN1bWU9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLl9yZWFkYWJsZVN0YXRlO3JldHVybiB0LmZsb3dpbmd8fChjKCJyZXN1bWUiKSx0LmZsb3dpbmc9IXQucmVhZGFibGVMaXN0ZW5pbmcsZnVuY3Rpb24odCxlKXtlLnJlc3VtZVNjaGVkdWxlZHx8KGUucmVzdW1lU2NoZWR1bGVkPSEwLHIubmV4dFRpY2soRCx0LGUpKX0odGhpcyx0KSksdC5wYXVzZWQ9ITEsdGhpc30sQS5wcm90b3R5cGUucGF1c2U9ZnVuY3Rpb24oKXtyZXR1cm4gYygiY2FsbCBwYXVzZSBmbG93aW5nPSVqIix0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmcpLCExIT09dGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nJiYoYygicGF1c2UiKSx0aGlzLl9yZWFkYWJsZVN0YXRlLmZsb3dpbmc9ITEsdGhpcy5lbWl0KCJwYXVzZSIpKSx0aGlzLl9yZWFkYWJsZVN0YXRlLnBhdXNlZD0hMCx0aGlzfSxBLnByb3RvdHlwZS53cmFwPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj10aGlzLl9yZWFkYWJsZVN0YXRlLG49ITE7Zm9yKHZhciBpIGluIHQub24oImVuZCIsKGZ1bmN0aW9uKCl7aWYoYygid3JhcHBlZCBlbmQiKSxyLmRlY29kZXImJiFyLmVuZGVkKXt2YXIgdD1yLmRlY29kZXIuZW5kKCk7dCYmdC5sZW5ndGgmJmUucHVzaCh0KX1lLnB1c2gobnVsbCl9KSksdC5vbigiZGF0YSIsKGZ1bmN0aW9uKGkpeyhjKCJ3cmFwcGVkIGRhdGEiKSxyLmRlY29kZXImJihpPXIuZGVjb2Rlci53cml0ZShpKSksci5vYmplY3RNb2RlJiZudWxsPT1pKXx8KHIub2JqZWN0TW9kZXx8aSYmaS5sZW5ndGgpJiYoZS5wdXNoKGkpfHwobj0hMCx0LnBhdXNlKCkpKX0pKSx0KXZvaWQgMD09PXRoaXNbaV0mJiJmdW5jdGlvbiI9PXR5cGVvZiB0W2ldJiYodGhpc1tpXT1mdW5jdGlvbihlKXtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gdFtlXS5hcHBseSh0LGFyZ3VtZW50cyl9fShpKSk7Zm9yKHZhciBhPTA7YTxULmxlbmd0aDthKyspdC5vbihUW2FdLHRoaXMuZW1pdC5iaW5kKHRoaXMsVFthXSkpO3JldHVybiB0aGlzLl9yZWFkPWZ1bmN0aW9uKGUpe2MoIndyYXBwZWQgX3JlYWQiLGUpLG4mJihuPSExLHQucmVzdW1lKCkpfSx0aGlzfSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQS5wcm90b3R5cGVbU3ltYm9sLmFzeW5jSXRlcmF0b3JdPWZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMD09PWgmJihoPXQoIi4vaW50ZXJuYWwvc3RyZWFtcy9hc3luY19pdGVyYXRvciIpKSxoKHRoaXMpfSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEucHJvdG90eXBlLCJyZWFkYWJsZUhpZ2hXYXRlck1hcmsiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmhpZ2hXYXRlck1hcmt9fSksT2JqZWN0LmRlZmluZVByb3BlcnR5KEEucHJvdG90eXBlLCJyZWFkYWJsZUJ1ZmZlciIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlYWRhYmxlU3RhdGUmJnRoaXMuX3JlYWRhYmxlU3RhdGUuYnVmZmVyfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwicmVhZGFibGVGbG93aW5nIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmVhZGFibGVTdGF0ZS5mbG93aW5nfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZmxvd2luZz10KX19KSxBLl9mcm9tTGlzdD1GLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwicmVhZGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9yZWFkYWJsZVN0YXRlLmxlbmd0aH19KSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiYoQS5mcm9tPWZ1bmN0aW9uKGUscil7cmV0dXJuIHZvaWQgMD09PXAmJihwPXQoIi4vaW50ZXJuYWwvc3RyZWFtcy9mcm9tIikpLHAoQSxlLHIpfSl9KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIiksInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHsiLi4vZXJyb3JzIjo1NDQsIi4vX3N0cmVhbV9kdXBsZXgiOjU0NSwiLi9pbnRlcm5hbC9zdHJlYW1zL2FzeW5jX2l0ZXJhdG9yIjo1NTAsIi4vaW50ZXJuYWwvc3RyZWFtcy9idWZmZXJfbGlzdCI6NTUxLCIuL2ludGVybmFsL3N0cmVhbXMvZGVzdHJveSI6NTUyLCIuL2ludGVybmFsL3N0cmVhbXMvZnJvbSI6NTU0LCIuL2ludGVybmFsL3N0cmVhbXMvc3RhdGUiOjU1NiwiLi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbSI6NTU3LF9wcm9jZXNzOjUwNCxidWZmZXI6MTEyLGV2ZW50czoyMzcsaW5oZXJpdHM6NDI5LCJzdHJpbmdfZGVjb2Rlci8iOjU2Myx1dGlsOjExMX1dLDU0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9dTt2YXIgbj10KCIuLi9lcnJvcnMiKS5jb2RlcyxpPW4uRVJSX01FVEhPRF9OT1RfSU1QTEVNRU5URUQsYT1uLkVSUl9NVUxUSVBMRV9DQUxMQkFDSyxvPW4uRVJSX1RSQU5TRk9STV9BTFJFQURZX1RSQU5TRk9STUlORyxzPW4uRVJSX1RSQU5TRk9STV9XSVRIX0xFTkdUSF8wLGw9dCgiLi9fc3RyZWFtX2R1cGxleCIpO2Z1bmN0aW9uIGModCxlKXt2YXIgcj10aGlzLl90cmFuc2Zvcm1TdGF0ZTtyLnRyYW5zZm9ybWluZz0hMTt2YXIgbj1yLndyaXRlY2I7aWYobnVsbD09PW4pcmV0dXJuIHRoaXMuZW1pdCgiZXJyb3IiLG5ldyBhKTtyLndyaXRlY2h1bms9bnVsbCxyLndyaXRlY2I9bnVsbCxudWxsIT1lJiZ0aGlzLnB1c2goZSksbih0KTt2YXIgaT10aGlzLl9yZWFkYWJsZVN0YXRlO2kucmVhZGluZz0hMSwoaS5uZWVkUmVhZGFibGV8fGkubGVuZ3RoPGkuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoaS5oaWdoV2F0ZXJNYXJrKX1mdW5jdGlvbiB1KHQpe2lmKCEodGhpcyBpbnN0YW5jZW9mIHUpKXJldHVybiBuZXcgdSh0KTtsLmNhbGwodGhpcyx0KSx0aGlzLl90cmFuc2Zvcm1TdGF0ZT17YWZ0ZXJUcmFuc2Zvcm06Yy5iaW5kKHRoaXMpLG5lZWRUcmFuc2Zvcm06ITEsdHJhbnNmb3JtaW5nOiExLHdyaXRlY2I6bnVsbCx3cml0ZWNodW5rOm51bGwsd3JpdGVlbmNvZGluZzpudWxsfSx0aGlzLl9yZWFkYWJsZVN0YXRlLm5lZWRSZWFkYWJsZT0hMCx0aGlzLl9yZWFkYWJsZVN0YXRlLnN5bmM9ITEsdCYmKCJmdW5jdGlvbiI9PXR5cGVvZiB0LnRyYW5zZm9ybSYmKHRoaXMuX3RyYW5zZm9ybT10LnRyYW5zZm9ybSksImZ1bmN0aW9uIj09dHlwZW9mIHQuZmx1c2gmJih0aGlzLl9mbHVzaD10LmZsdXNoKSksdGhpcy5vbigicHJlZmluaXNoIixmKX1mdW5jdGlvbiBmKCl7dmFyIHQ9dGhpczsiZnVuY3Rpb24iIT10eXBlb2YgdGhpcy5fZmx1c2h8fHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkP2godGhpcyxudWxsLG51bGwpOnRoaXMuX2ZsdXNoKChmdW5jdGlvbihlLHIpe2godCxlLHIpfSkpfWZ1bmN0aW9uIGgodCxlLHIpe2lmKGUpcmV0dXJuIHQuZW1pdCgiZXJyb3IiLGUpO2lmKG51bGwhPXImJnQucHVzaChyKSx0Ll93cml0YWJsZVN0YXRlLmxlbmd0aCl0aHJvdyBuZXcgcztpZih0Ll90cmFuc2Zvcm1TdGF0ZS50cmFuc2Zvcm1pbmcpdGhyb3cgbmV3IG87cmV0dXJuIHQucHVzaChudWxsKX10KCJpbmhlcml0cyIpKHUsbCksdS5wcm90b3R5cGUucHVzaD1mdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl90cmFuc2Zvcm1TdGF0ZS5uZWVkVHJhbnNmb3JtPSExLGwucHJvdG90eXBlLnB1c2guY2FsbCh0aGlzLHQsZSl9LHUucHJvdG90eXBlLl90cmFuc2Zvcm09ZnVuY3Rpb24odCxlLHIpe3IobmV3IGkoIl90cmFuc2Zvcm0oKSIpKX0sdS5wcm90b3R5cGUuX3dyaXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl90cmFuc2Zvcm1TdGF0ZTtpZihuLndyaXRlY2I9cixuLndyaXRlY2h1bms9dCxuLndyaXRlZW5jb2Rpbmc9ZSwhbi50cmFuc2Zvcm1pbmcpe3ZhciBpPXRoaXMuX3JlYWRhYmxlU3RhdGU7KG4ubmVlZFRyYW5zZm9ybXx8aS5uZWVkUmVhZGFibGV8fGkubGVuZ3RoPGkuaGlnaFdhdGVyTWFyaykmJnRoaXMuX3JlYWQoaS5oaWdoV2F0ZXJNYXJrKX19LHUucHJvdG90eXBlLl9yZWFkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3RyYW5zZm9ybVN0YXRlO251bGw9PT1lLndyaXRlY2h1bmt8fGUudHJhbnNmb3JtaW5nP2UubmVlZFRyYW5zZm9ybT0hMDooZS50cmFuc2Zvcm1pbmc9ITAsdGhpcy5fdHJhbnNmb3JtKGUud3JpdGVjaHVuayxlLndyaXRlZW5jb2RpbmcsZS5hZnRlclRyYW5zZm9ybSkpfSx1LnByb3RvdHlwZS5fZGVzdHJveT1mdW5jdGlvbih0LGUpe2wucHJvdG90eXBlLl9kZXN0cm95LmNhbGwodGhpcyx0LChmdW5jdGlvbih0KXtlKHQpfSkpfX0seyIuLi9lcnJvcnMiOjU0NCwiLi9fc3RyZWFtX2R1cGxleCI6NTQ1LGluaGVyaXRzOjQyOX1dLDU0OTpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyLG4peyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBpKHQpe3ZhciBlPXRoaXM7dGhpcy5uZXh0PW51bGwsdGhpcy5lbnRyeT1udWxsLHRoaXMuZmluaXNoPWZ1bmN0aW9uKCl7IWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmVudHJ5O3QuZW50cnk9bnVsbDtmb3IoO247KXt2YXIgaT1uLmNhbGxiYWNrO2UucGVuZGluZ2NiLS0saShyKSxuPW4ubmV4dH1lLmNvcmtlZFJlcXVlc3RzRnJlZS5uZXh0PXR9KGUsdCl9fXZhciBhO2UuZXhwb3J0cz1BLEEuV3JpdGFibGVTdGF0ZT1rO3ZhciBvPXtkZXByZWNhdGU6dCgidXRpbC1kZXByZWNhdGUiKX0scz10KCIuL2ludGVybmFsL3N0cmVhbXMvc3RyZWFtIiksbD10KCJidWZmZXIiKS5CdWZmZXIsYz1uLlVpbnQ4QXJyYXl8fGZ1bmN0aW9uKCl7fTt2YXIgdSxmPXQoIi4vaW50ZXJuYWwvc3RyZWFtcy9kZXN0cm95IiksaD10KCIuL2ludGVybmFsL3N0cmVhbXMvc3RhdGUiKS5nZXRIaWdoV2F0ZXJNYXJrLHA9dCgiLi4vZXJyb3JzIikuY29kZXMsZD1wLkVSUl9JTlZBTElEX0FSR19UWVBFLG09cC5FUlJfTUVUSE9EX05PVF9JTVBMRU1FTlRFRCxnPXAuRVJSX01VTFRJUExFX0NBTExCQUNLLHY9cC5FUlJfU1RSRUFNX0NBTk5PVF9QSVBFLHk9cC5FUlJfU1RSRUFNX0RFU1RST1lFRCx4PXAuRVJSX1NUUkVBTV9OVUxMX1ZBTFVFUyxiPXAuRVJSX1NUUkVBTV9XUklURV9BRlRFUl9FTkQsXz1wLkVSUl9VTktOT1dOX0VOQ09ESU5HLHc9Zi5lcnJvck9yRGVzdHJveTtmdW5jdGlvbiBUKCl7fWZ1bmN0aW9uIGsoZSxuLG8pe2E9YXx8dCgiLi9fc3RyZWFtX2R1cGxleCIpLGU9ZXx8e30sImJvb2xlYW4iIT10eXBlb2YgbyYmKG89biBpbnN0YW5jZW9mIGEpLHRoaXMub2JqZWN0TW9kZT0hIWUub2JqZWN0TW9kZSxvJiYodGhpcy5vYmplY3RNb2RlPXRoaXMub2JqZWN0TW9kZXx8ISFlLndyaXRhYmxlT2JqZWN0TW9kZSksdGhpcy5oaWdoV2F0ZXJNYXJrPWgodGhpcyxlLCJ3cml0YWJsZUhpZ2hXYXRlck1hcmsiLG8pLHRoaXMuZmluYWxDYWxsZWQ9ITEsdGhpcy5uZWVkRHJhaW49ITEsdGhpcy5lbmRpbmc9ITEsdGhpcy5lbmRlZD0hMSx0aGlzLmZpbmlzaGVkPSExLHRoaXMuZGVzdHJveWVkPSExO3ZhciBzPSExPT09ZS5kZWNvZGVTdHJpbmdzO3RoaXMuZGVjb2RlU3RyaW5ncz0hcyx0aGlzLmRlZmF1bHRFbmNvZGluZz1lLmRlZmF1bHRFbmNvZGluZ3x8InV0ZjgiLHRoaXMubGVuZ3RoPTAsdGhpcy53cml0aW5nPSExLHRoaXMuY29ya2VkPTAsdGhpcy5zeW5jPSEwLHRoaXMuYnVmZmVyUHJvY2Vzc2luZz0hMSx0aGlzLm9ud3JpdGU9ZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5fd3JpdGFibGVTdGF0ZSxpPW4uc3luYyxhPW4ud3JpdGVjYjtpZigiZnVuY3Rpb24iIT10eXBlb2YgYSl0aHJvdyBuZXcgZztpZihmdW5jdGlvbih0KXt0LndyaXRpbmc9ITEsdC53cml0ZWNiPW51bGwsdC5sZW5ndGgtPXQud3JpdGVsZW4sdC53cml0ZWxlbj0wfShuKSxlKSFmdW5jdGlvbih0LGUsbixpLGEpey0tZS5wZW5kaW5nY2Isbj8oci5uZXh0VGljayhhLGkpLHIubmV4dFRpY2soUCx0LGUpLHQuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLHcodCxpKSk6KGEoaSksdC5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsdyh0LGkpLFAodCxlKSl9KHQsbixpLGUsYSk7ZWxzZXt2YXIgbz1MKG4pfHx0LmRlc3Ryb3llZDtvfHxuLmNvcmtlZHx8bi5idWZmZXJQcm9jZXNzaW5nfHwhbi5idWZmZXJlZFJlcXVlc3R8fEUodCxuKSxpP3IubmV4dFRpY2soUyx0LG4sbyxhKTpTKHQsbixvLGEpfX0obix0KX0sdGhpcy53cml0ZWNiPW51bGwsdGhpcy53cml0ZWxlbj0wLHRoaXMuYnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsdGhpcy5wZW5kaW5nY2I9MCx0aGlzLnByZWZpbmlzaGVkPSExLHRoaXMuZXJyb3JFbWl0dGVkPSExLHRoaXMuZW1pdENsb3NlPSExIT09ZS5lbWl0Q2xvc2UsdGhpcy5hdXRvRGVzdHJveT0hIWUuYXV0b0Rlc3Ryb3ksdGhpcy5idWZmZXJlZFJlcXVlc3RDb3VudD0wLHRoaXMuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBpKHRoaXMpfWZ1bmN0aW9uIEEoZSl7dmFyIHI9dGhpcyBpbnN0YW5jZW9mKGE9YXx8dCgiLi9fc3RyZWFtX2R1cGxleCIpKTtpZighciYmIXUuY2FsbChBLHRoaXMpKXJldHVybiBuZXcgQShlKTt0aGlzLl93cml0YWJsZVN0YXRlPW5ldyBrKGUsdGhpcyxyKSx0aGlzLndyaXRhYmxlPSEwLGUmJigiZnVuY3Rpb24iPT10eXBlb2YgZS53cml0ZSYmKHRoaXMuX3dyaXRlPWUud3JpdGUpLCJmdW5jdGlvbiI9PXR5cGVvZiBlLndyaXRldiYmKHRoaXMuX3dyaXRldj1lLndyaXRldiksImZ1bmN0aW9uIj09dHlwZW9mIGUuZGVzdHJveSYmKHRoaXMuX2Rlc3Ryb3k9ZS5kZXN0cm95KSwiZnVuY3Rpb24iPT10eXBlb2YgZS5maW5hbCYmKHRoaXMuX2ZpbmFsPWUuZmluYWwpKSxzLmNhbGwodGhpcyl9ZnVuY3Rpb24gTSh0LGUscixuLGksYSxvKXtlLndyaXRlbGVuPW4sZS53cml0ZWNiPW8sZS53cml0aW5nPSEwLGUuc3luYz0hMCxlLmRlc3Ryb3llZD9lLm9ud3JpdGUobmV3IHkoIndyaXRlIikpOnI/dC5fd3JpdGV2KGksZS5vbndyaXRlKTp0Ll93cml0ZShpLGEsZS5vbndyaXRlKSxlLnN5bmM9ITF9ZnVuY3Rpb24gUyh0LGUscixuKXtyfHxmdW5jdGlvbih0LGUpezA9PT1lLmxlbmd0aCYmZS5uZWVkRHJhaW4mJihlLm5lZWREcmFpbj0hMSx0LmVtaXQoImRyYWluIikpfSh0LGUpLGUucGVuZGluZ2NiLS0sbigpLFAodCxlKX1mdW5jdGlvbiBFKHQsZSl7ZS5idWZmZXJQcm9jZXNzaW5nPSEwO3ZhciByPWUuYnVmZmVyZWRSZXF1ZXN0O2lmKHQuX3dyaXRldiYmciYmci5uZXh0KXt2YXIgbj1lLmJ1ZmZlcmVkUmVxdWVzdENvdW50LGE9bmV3IEFycmF5KG4pLG89ZS5jb3JrZWRSZXF1ZXN0c0ZyZWU7by5lbnRyeT1yO2Zvcih2YXIgcz0wLGw9ITA7cjspYVtzXT1yLHIuaXNCdWZ8fChsPSExKSxyPXIubmV4dCxzKz0xO2EuYWxsQnVmZmVycz1sLE0odCxlLCEwLGUubGVuZ3RoLGEsIiIsby5maW5pc2gpLGUucGVuZGluZ2NiKyssZS5sYXN0QnVmZmVyZWRSZXF1ZXN0PW51bGwsby5uZXh0PyhlLmNvcmtlZFJlcXVlc3RzRnJlZT1vLm5leHQsby5uZXh0PW51bGwpOmUuY29ya2VkUmVxdWVzdHNGcmVlPW5ldyBpKGUpLGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQ9MH1lbHNle2Zvcig7cjspe3ZhciBjPXIuY2h1bmssdT1yLmVuY29kaW5nLGY9ci5jYWxsYmFjaztpZihNKHQsZSwhMSxlLm9iamVjdE1vZGU/MTpjLmxlbmd0aCxjLHUsZikscj1yLm5leHQsZS5idWZmZXJlZFJlcXVlc3RDb3VudC0tLGUud3JpdGluZylicmVha31udWxsPT09ciYmKGUubGFzdEJ1ZmZlcmVkUmVxdWVzdD1udWxsKX1lLmJ1ZmZlcmVkUmVxdWVzdD1yLGUuYnVmZmVyUHJvY2Vzc2luZz0hMX1mdW5jdGlvbiBMKHQpe3JldHVybiB0LmVuZGluZyYmMD09PXQubGVuZ3RoJiZudWxsPT09dC5idWZmZXJlZFJlcXVlc3QmJiF0LmZpbmlzaGVkJiYhdC53cml0aW5nfWZ1bmN0aW9uIEModCxlKXt0Ll9maW5hbCgoZnVuY3Rpb24ocil7ZS5wZW5kaW5nY2ItLSxyJiZ3KHQsciksZS5wcmVmaW5pc2hlZD0hMCx0LmVtaXQoInByZWZpbmlzaCIpLFAodCxlKX0pKX1mdW5jdGlvbiBQKHQsZSl7dmFyIG49TChlKTtpZihuJiYoZnVuY3Rpb24odCxlKXtlLnByZWZpbmlzaGVkfHxlLmZpbmFsQ2FsbGVkfHwoImZ1bmN0aW9uIiE9dHlwZW9mIHQuX2ZpbmFsfHxlLmRlc3Ryb3llZD8oZS5wcmVmaW5pc2hlZD0hMCx0LmVtaXQoInByZWZpbmlzaCIpKTooZS5wZW5kaW5nY2IrKyxlLmZpbmFsQ2FsbGVkPSEwLHIubmV4dFRpY2soQyx0LGUpKSl9KHQsZSksMD09PWUucGVuZGluZ2NiJiYoZS5maW5pc2hlZD0hMCx0LmVtaXQoImZpbmlzaCIpLGUuYXV0b0Rlc3Ryb3kpKSl7dmFyIGk9dC5fcmVhZGFibGVTdGF0ZTsoIWl8fGkuYXV0b0Rlc3Ryb3kmJmkuZW5kRW1pdHRlZCkmJnQuZGVzdHJveSgpfXJldHVybiBufXQoImluaGVyaXRzIikoQSxzKSxrLnByb3RvdHlwZS5nZXRCdWZmZXI9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9dGhpcy5idWZmZXJlZFJlcXVlc3QsZT1bXTt0OyllLnB1c2godCksdD10Lm5leHQ7cmV0dXJuIGV9LGZ1bmN0aW9uKCl7dHJ5e09iamVjdC5kZWZpbmVQcm9wZXJ0eShrLnByb3RvdHlwZSwiYnVmZmVyIix7Z2V0Om8uZGVwcmVjYXRlKChmdW5jdGlvbigpe3JldHVybiB0aGlzLmdldEJ1ZmZlcigpfSksIl93cml0YWJsZVN0YXRlLmJ1ZmZlciBpcyBkZXByZWNhdGVkLiBVc2UgX3dyaXRhYmxlU3RhdGUuZ2V0QnVmZmVyIGluc3RlYWQuIiwiREVQMDAwMyIpfSl9Y2F0Y2godCl7fX0oKSwiZnVuY3Rpb24iPT10eXBlb2YgU3ltYm9sJiZTeW1ib2wuaGFzSW5zdGFuY2UmJiJmdW5jdGlvbiI9PXR5cGVvZiBGdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXT8odT1GdW5jdGlvbi5wcm90b3R5cGVbU3ltYm9sLmhhc0luc3RhbmNlXSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQSxTeW1ib2wuaGFzSW5zdGFuY2Use3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiEhdS5jYWxsKHRoaXMsdCl8fHRoaXM9PT1BJiYodCYmdC5fd3JpdGFibGVTdGF0ZSBpbnN0YW5jZW9mIGspfX0pKTp1PWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgdGhpc30sQS5wcm90b3R5cGUucGlwZT1mdW5jdGlvbigpe3codGhpcyxuZXcgdil9LEEucHJvdG90eXBlLndyaXRlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaSxhPXRoaXMuX3dyaXRhYmxlU3RhdGUsbz0hMSxzPSFhLm9iamVjdE1vZGUmJihpPXQsbC5pc0J1ZmZlcihpKXx8aSBpbnN0YW5jZW9mIGMpO3JldHVybiBzJiYhbC5pc0J1ZmZlcih0KSYmKHQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwuZnJvbSh0KX0odCkpLCJmdW5jdGlvbiI9PXR5cGVvZiBlJiYobj1lLGU9bnVsbCkscz9lPSJidWZmZXIiOmV8fChlPWEuZGVmYXVsdEVuY29kaW5nKSwiZnVuY3Rpb24iIT10eXBlb2YgbiYmKG49VCksYS5lbmRpbmc/ZnVuY3Rpb24odCxlKXt2YXIgbj1uZXcgYjt3KHQsbiksci5uZXh0VGljayhlLG4pfSh0aGlzLG4pOihzfHxmdW5jdGlvbih0LGUsbixpKXt2YXIgYTtyZXR1cm4gbnVsbD09PW4/YT1uZXcgeDoic3RyaW5nIj09dHlwZW9mIG58fGUub2JqZWN0TW9kZXx8KGE9bmV3IGQoImNodW5rIixbInN0cmluZyIsIkJ1ZmZlciJdLG4pKSwhYXx8KHcodCxhKSxyLm5leHRUaWNrKGksYSksITEpfSh0aGlzLGEsdCxuKSkmJihhLnBlbmRpbmdjYisrLG89ZnVuY3Rpb24odCxlLHIsbixpLGEpe2lmKCFyKXt2YXIgbz1mdW5jdGlvbih0LGUscil7dC5vYmplY3RNb2RlfHwhMT09PXQuZGVjb2RlU3RyaW5nc3x8InN0cmluZyIhPXR5cGVvZiBlfHwoZT1sLmZyb20oZSxyKSk7cmV0dXJuIGV9KGUsbixpKTtuIT09byYmKHI9ITAsaT0iYnVmZmVyIixuPW8pfXZhciBzPWUub2JqZWN0TW9kZT8xOm4ubGVuZ3RoO2UubGVuZ3RoKz1zO3ZhciBjPWUubGVuZ3RoPGUuaGlnaFdhdGVyTWFyaztjfHwoZS5uZWVkRHJhaW49ITApO2lmKGUud3JpdGluZ3x8ZS5jb3JrZWQpe3ZhciB1PWUubGFzdEJ1ZmZlcmVkUmVxdWVzdDtlLmxhc3RCdWZmZXJlZFJlcXVlc3Q9e2NodW5rOm4sZW5jb2Rpbmc6aSxpc0J1ZjpyLGNhbGxiYWNrOmEsbmV4dDpudWxsfSx1P3UubmV4dD1lLmxhc3RCdWZmZXJlZFJlcXVlc3Q6ZS5idWZmZXJlZFJlcXVlc3Q9ZS5sYXN0QnVmZmVyZWRSZXF1ZXN0LGUuYnVmZmVyZWRSZXF1ZXN0Q291bnQrPTF9ZWxzZSBNKHQsZSwhMSxzLG4saSxhKTtyZXR1cm4gY30odGhpcyxhLHMsdCxlLG4pKSxvfSxBLnByb3RvdHlwZS5jb3JrPWZ1bmN0aW9uKCl7dGhpcy5fd3JpdGFibGVTdGF0ZS5jb3JrZWQrK30sQS5wcm90b3R5cGUudW5jb3JrPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5fd3JpdGFibGVTdGF0ZTt0LmNvcmtlZCYmKHQuY29ya2VkLS0sdC53cml0aW5nfHx0LmNvcmtlZHx8dC5idWZmZXJQcm9jZXNzaW5nfHwhdC5idWZmZXJlZFJlcXVlc3R8fEUodGhpcyx0KSl9LEEucHJvdG90eXBlLnNldERlZmF1bHRFbmNvZGluZz1mdW5jdGlvbih0KXtpZigic3RyaW5nIj09dHlwZW9mIHQmJih0PXQudG9Mb3dlckNhc2UoKSksIShbImhleCIsInV0ZjgiLCJ1dGYtOCIsImFzY2lpIiwiYmluYXJ5IiwiYmFzZTY0IiwidWNzMiIsInVjcy0yIiwidXRmMTZsZSIsInV0Zi0xNmxlIiwicmF3Il0uaW5kZXhPZigodCsiIikudG9Mb3dlckNhc2UoKSk+LTEpKXRocm93IG5ldyBfKHQpO3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmRlZmF1bHRFbmNvZGluZz10LHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwid3JpdGFibGVCdWZmZXIiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmdldEJ1ZmZlcigpfX0pLE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwid3JpdGFibGVIaWdoV2F0ZXJNYXJrIix7ZW51bWVyYWJsZTohMSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fd3JpdGFibGVTdGF0ZS5oaWdoV2F0ZXJNYXJrfX0pLEEucHJvdG90eXBlLl93cml0ZT1mdW5jdGlvbih0LGUscil7cihuZXcgbSgiX3dyaXRlKCkiKSl9LEEucHJvdG90eXBlLl93cml0ZXY9bnVsbCxBLnByb3RvdHlwZS5lbmQ9ZnVuY3Rpb24odCxlLG4pe3ZhciBpPXRoaXMuX3dyaXRhYmxlU3RhdGU7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHQ/KG49dCx0PW51bGwsZT1udWxsKToiZnVuY3Rpb24iPT10eXBlb2YgZSYmKG49ZSxlPW51bGwpLG51bGwhPXQmJnRoaXMud3JpdGUodCxlKSxpLmNvcmtlZCYmKGkuY29ya2VkPTEsdGhpcy51bmNvcmsoKSksaS5lbmRpbmd8fGZ1bmN0aW9uKHQsZSxuKXtlLmVuZGluZz0hMCxQKHQsZSksbiYmKGUuZmluaXNoZWQ/ci5uZXh0VGljayhuKTp0Lm9uY2UoImZpbmlzaCIsbikpO2UuZW5kZWQ9ITAsdC53cml0YWJsZT0hMX0odGhpcyxpLG4pLHRoaXN9LE9iamVjdC5kZWZpbmVQcm9wZXJ0eShBLnByb3RvdHlwZSwid3JpdGFibGVMZW5ndGgiLHtlbnVtZXJhYmxlOiExLGdldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl93cml0YWJsZVN0YXRlLmxlbmd0aH19KSxPYmplY3QuZGVmaW5lUHJvcGVydHkoQS5wcm90b3R5cGUsImRlc3Ryb3llZCIse2VudW1lcmFibGU6ITEsZ2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHZvaWQgMCE9PXRoaXMuX3dyaXRhYmxlU3RhdGUmJnRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkfSxzZXQ6ZnVuY3Rpb24odCl7dGhpcy5fd3JpdGFibGVTdGF0ZSYmKHRoaXMuX3dyaXRhYmxlU3RhdGUuZGVzdHJveWVkPXQpfX0pLEEucHJvdG90eXBlLmRlc3Ryb3k9Zi5kZXN0cm95LEEucHJvdG90eXBlLl91bmRlc3Ryb3k9Zi51bmRlc3Ryb3ksQS5wcm90b3R5cGUuX2Rlc3Ryb3k9ZnVuY3Rpb24odCxlKXtlKHQpfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSwidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyIuLi9lcnJvcnMiOjU0NCwiLi9fc3RyZWFtX2R1cGxleCI6NTQ1LCIuL2ludGVybmFsL3N0cmVhbXMvZGVzdHJveSI6NTUyLCIuL2ludGVybmFsL3N0cmVhbXMvc3RhdGUiOjU1NiwiLi9pbnRlcm5hbC9zdHJlYW1zL3N0cmVhbSI6NTU3LF9wcm9jZXNzOjUwNCxidWZmZXI6MTEyLGluaGVyaXRzOjQyOSwidXRpbC1kZXByZWNhdGUiOjU5NX1dLDU1MDpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7dmFyIG47ZnVuY3Rpb24gaSh0LGUscil7cmV0dXJuIGUgaW4gdD9PYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLHt2YWx1ZTpyLGVudW1lcmFibGU6ITAsY29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwfSk6dFtlXT1yLHR9dmFyIGE9dCgiLi9lbmQtb2Ytc3RyZWFtIiksbz1TeW1ib2woImxhc3RSZXNvbHZlIikscz1TeW1ib2woImxhc3RSZWplY3QiKSxsPVN5bWJvbCgiZXJyb3IiKSxjPVN5bWJvbCgiZW5kZWQiKSx1PVN5bWJvbCgibGFzdFByb21pc2UiKSxmPVN5bWJvbCgiaGFuZGxlUHJvbWlzZSIpLGg9U3ltYm9sKCJzdHJlYW0iKTtmdW5jdGlvbiBwKHQsZSl7cmV0dXJue3ZhbHVlOnQsZG9uZTplfX1mdW5jdGlvbiBkKHQpe3ZhciBlPXRbb107aWYobnVsbCE9PWUpe3ZhciByPXRbaF0ucmVhZCgpO251bGwhPT1yJiYodFt1XT1udWxsLHRbb109bnVsbCx0W3NdPW51bGwsZShwKHIsITEpKSl9fWZ1bmN0aW9uIG0odCl7ci5uZXh0VGljayhkLHQpfXZhciBnPU9iamVjdC5nZXRQcm90b3R5cGVPZigoZnVuY3Rpb24oKXt9KSksdj1PYmplY3Quc2V0UHJvdG90eXBlT2YoKGkobj17Z2V0IHN0cmVhbSgpe3JldHVybiB0aGlzW2hdfSxuZXh0OmZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPXRoaXNbbF07aWYobnVsbCE9PWUpcmV0dXJuIFByb21pc2UucmVqZWN0KGUpO2lmKHRoaXNbY10pcmV0dXJuIFByb21pc2UucmVzb2x2ZShwKHZvaWQgMCwhMCkpO2lmKHRoaXNbaF0uZGVzdHJveWVkKXJldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxuKXtyLm5leHRUaWNrKChmdW5jdGlvbigpe3RbbF0/bih0W2xdKTplKHAodm9pZCAwLCEwKSl9KSl9KSk7dmFyIG4saT10aGlzW3VdO2lmKGkpbj1uZXcgUHJvbWlzZShmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyLG4pe3QudGhlbigoZnVuY3Rpb24oKXtlW2NdP3IocCh2b2lkIDAsITApKTplW2ZdKHIsbil9KSxuKX19KGksdGhpcykpO2Vsc2V7dmFyIGE9dGhpc1toXS5yZWFkKCk7aWYobnVsbCE9PWEpcmV0dXJuIFByb21pc2UucmVzb2x2ZShwKGEsITEpKTtuPW5ldyBQcm9taXNlKHRoaXNbZl0pfXJldHVybiB0aGlzW3VdPW4sbn19LFN5bWJvbC5hc3luY0l0ZXJhdG9yLChmdW5jdGlvbigpe3JldHVybiB0aGlzfSkpLGkobiwicmV0dXJuIiwoZnVuY3Rpb24oKXt2YXIgdD10aGlzO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24oZSxyKXt0W2hdLmRlc3Ryb3kobnVsbCwoZnVuY3Rpb24odCl7dD9yKHQpOmUocCh2b2lkIDAsITApKX0pKX0pKX0pKSxuKSxnKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscj1PYmplY3QuY3JlYXRlKHYsKGkoZT17fSxoLHt2YWx1ZTp0LHdyaXRhYmxlOiEwfSksaShlLG8se3ZhbHVlOm51bGwsd3JpdGFibGU6ITB9KSxpKGUscyx7dmFsdWU6bnVsbCx3cml0YWJsZTohMH0pLGkoZSxsLHt2YWx1ZTpudWxsLHdyaXRhYmxlOiEwfSksaShlLGMse3ZhbHVlOnQuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCx3cml0YWJsZTohMH0pLGkoZSxmLHt2YWx1ZTpmdW5jdGlvbih0LGUpe3ZhciBuPXJbaF0ucmVhZCgpO24/KHJbdV09bnVsbCxyW29dPW51bGwscltzXT1udWxsLHQocChuLCExKSkpOihyW29dPXQscltzXT1lKX0sd3JpdGFibGU6ITB9KSxlKSk7cmV0dXJuIHJbdV09bnVsbCxhKHQsKGZ1bmN0aW9uKHQpe2lmKHQmJiJFUlJfU1RSRUFNX1BSRU1BVFVSRV9DTE9TRSIhPT10LmNvZGUpe3ZhciBlPXJbc107cmV0dXJuIG51bGwhPT1lJiYoclt1XT1udWxsLHJbb109bnVsbCxyW3NdPW51bGwsZSh0KSksdm9pZChyW2xdPXQpfXZhciBuPXJbb107bnVsbCE9PW4mJihyW3VdPW51bGwscltvXT1udWxsLHJbc109bnVsbCxuKHAodm9pZCAwLCEwKSkpLHJbY109ITB9KSksdC5vbigicmVhZGFibGUiLG0uYmluZChudWxsLHIpKSxyfX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSl9LHsiLi9lbmQtb2Ytc3RyZWFtIjo1NTMsX3Byb2Nlc3M6NTA0fV0sNTUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCxlKXt2YXIgcj1PYmplY3Qua2V5cyh0KTtpZihPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKXt2YXIgbj1PYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKHQpO2UmJihuPW4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcih0LGUpLmVudW1lcmFibGV9KSkpLHIucHVzaC5hcHBseShyLG4pfXJldHVybiByfWZ1bmN0aW9uIGkodCxlLHIpe3JldHVybiBlIGluIHQ/T2JqZWN0LmRlZmluZVByb3BlcnR5KHQsZSx7dmFsdWU6cixlbnVtZXJhYmxlOiEwLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pOnRbZV09cix0fWZ1bmN0aW9uIGEodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLmVudW1lcmFibGU9bi5lbnVtZXJhYmxlfHwhMSxuLmNvbmZpZ3VyYWJsZT0hMCwidmFsdWUiaW4gbiYmKG4ud3JpdGFibGU9ITApLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LG4ua2V5LG4pfX12YXIgbz10KCJidWZmZXIiKS5CdWZmZXIscz10KCJ1dGlsIikuaW5zcGVjdCxsPXMmJnMuY3VzdG9tfHwiaW5zcGVjdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gdCgpeyFmdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIGUpKXRocm93IG5ldyBUeXBlRXJyb3IoIkNhbm5vdCBjYWxsIGEgY2xhc3MgYXMgYSBmdW5jdGlvbiIpfSh0aGlzLHQpLHRoaXMuaGVhZD1udWxsLHRoaXMudGFpbD1udWxsLHRoaXMubGVuZ3RoPTB9dmFyIGUscixjO3JldHVybiBlPXQsKHI9W3trZXk6InB1c2giLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXtkYXRhOnQsbmV4dDpudWxsfTt0aGlzLmxlbmd0aD4wP3RoaXMudGFpbC5uZXh0PWU6dGhpcy5oZWFkPWUsdGhpcy50YWlsPWUsKyt0aGlzLmxlbmd0aH19LHtrZXk6InVuc2hpZnQiLHZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPXtkYXRhOnQsbmV4dDp0aGlzLmhlYWR9OzA9PT10aGlzLmxlbmd0aCYmKHRoaXMudGFpbD1lKSx0aGlzLmhlYWQ9ZSwrK3RoaXMubGVuZ3RofX0se2tleToic2hpZnQiLHZhbHVlOmZ1bmN0aW9uKCl7aWYoMCE9PXRoaXMubGVuZ3RoKXt2YXIgdD10aGlzLmhlYWQuZGF0YTtyZXR1cm4gMT09PXRoaXMubGVuZ3RoP3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbDp0aGlzLmhlYWQ9dGhpcy5oZWFkLm5leHQsLS10aGlzLmxlbmd0aCx0fX19LHtrZXk6ImNsZWFyIix2YWx1ZTpmdW5jdGlvbigpe3RoaXMuaGVhZD10aGlzLnRhaWw9bnVsbCx0aGlzLmxlbmd0aD0wfX0se2tleToiam9pbiIsdmFsdWU6ZnVuY3Rpb24odCl7aWYoMD09PXRoaXMubGVuZ3RoKXJldHVybiIiO2Zvcih2YXIgZT10aGlzLmhlYWQscj0iIitlLmRhdGE7ZT1lLm5leHQ7KXIrPXQrZS5kYXRhO3JldHVybiByfX0se2tleToiY29uY2F0Iix2YWx1ZTpmdW5jdGlvbih0KXtpZigwPT09dGhpcy5sZW5ndGgpcmV0dXJuIG8uYWxsb2MoMCk7Zm9yKHZhciBlLHIsbixpPW8uYWxsb2NVbnNhZmUodD4+PjApLGE9dGhpcy5oZWFkLHM9MDthOyllPWEuZGF0YSxyPWksbj1zLG8ucHJvdG90eXBlLmNvcHkuY2FsbChlLHIsbikscys9YS5kYXRhLmxlbmd0aCxhPWEubmV4dDtyZXR1cm4gaX19LHtrZXk6ImNvbnN1bWUiLHZhbHVlOmZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIHQ8dGhpcy5oZWFkLmRhdGEubGVuZ3RoPyhyPXRoaXMuaGVhZC5kYXRhLnNsaWNlKDAsdCksdGhpcy5oZWFkLmRhdGE9dGhpcy5oZWFkLmRhdGEuc2xpY2UodCkpOnI9dD09PXRoaXMuaGVhZC5kYXRhLmxlbmd0aD90aGlzLnNoaWZ0KCk6ZT90aGlzLl9nZXRTdHJpbmcodCk6dGhpcy5fZ2V0QnVmZmVyKHQpLHJ9fSx7a2V5OiJmaXJzdCIsdmFsdWU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5oZWFkLmRhdGF9fSx7a2V5OiJfZ2V0U3RyaW5nIix2YWx1ZTpmdW5jdGlvbih0KXt2YXIgZT10aGlzLmhlYWQscj0xLG49ZS5kYXRhO2Zvcih0LT1uLmxlbmd0aDtlPWUubmV4dDspe3ZhciBpPWUuZGF0YSxhPXQ+aS5sZW5ndGg/aS5sZW5ndGg6dDtpZihhPT09aS5sZW5ndGg/bis9aTpuKz1pLnNsaWNlKDAsdCksMD09KHQtPWEpKXthPT09aS5sZW5ndGg/KCsrcixlLm5leHQ/dGhpcy5oZWFkPWUubmV4dDp0aGlzLmhlYWQ9dGhpcy50YWlsPW51bGwpOih0aGlzLmhlYWQ9ZSxlLmRhdGE9aS5zbGljZShhKSk7YnJlYWt9KytyfXJldHVybiB0aGlzLmxlbmd0aC09cixufX0se2tleToiX2dldEJ1ZmZlciIsdmFsdWU6ZnVuY3Rpb24odCl7dmFyIGU9by5hbGxvY1Vuc2FmZSh0KSxyPXRoaXMuaGVhZCxuPTE7Zm9yKHIuZGF0YS5jb3B5KGUpLHQtPXIuZGF0YS5sZW5ndGg7cj1yLm5leHQ7KXt2YXIgaT1yLmRhdGEsYT10PmkubGVuZ3RoP2kubGVuZ3RoOnQ7aWYoaS5jb3B5KGUsZS5sZW5ndGgtdCwwLGEpLDA9PSh0LT1hKSl7YT09PWkubGVuZ3RoPygrK24sci5uZXh0P3RoaXMuaGVhZD1yLm5leHQ6dGhpcy5oZWFkPXRoaXMudGFpbD1udWxsKToodGhpcy5oZWFkPXIsci5kYXRhPWkuc2xpY2UoYSkpO2JyZWFrfSsrbn1yZXR1cm4gdGhpcy5sZW5ndGgtPW4sZX19LHtrZXk6bCx2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiBzKHRoaXMsZnVuY3Rpb24odCl7Zm9yKHZhciBlPTE7ZTxhcmd1bWVudHMubGVuZ3RoO2UrKyl7dmFyIHI9bnVsbCE9YXJndW1lbnRzW2VdP2FyZ3VtZW50c1tlXTp7fTtlJTI/bihPYmplY3QociksITApLmZvckVhY2goKGZ1bmN0aW9uKGUpe2kodCxlLHJbZV0pfSkpOk9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzP09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHQsT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnMocikpOm4oT2JqZWN0KHIpKS5mb3JFYWNoKChmdW5jdGlvbihlKXtPYmplY3QuZGVmaW5lUHJvcGVydHkodCxlLE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IocixlKSl9KSl9cmV0dXJuIHR9KHt9LGUse2RlcHRoOjAsY3VzdG9tSW5zcGVjdDohMX0pKX19XSkmJmEoZS5wcm90b3R5cGUsciksYyYmYShlLGMpLHR9KCl9LHtidWZmZXI6MTEyLHV0aWw6MTExfV0sNTUyOltmdW5jdGlvbih0LGUscil7KGZ1bmN0aW9uKHQpeyhmdW5jdGlvbigpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiByKHQsZSl7aSh0LGUpLG4odCl9ZnVuY3Rpb24gbih0KXt0Ll93cml0YWJsZVN0YXRlJiYhdC5fd3JpdGFibGVTdGF0ZS5lbWl0Q2xvc2V8fHQuX3JlYWRhYmxlU3RhdGUmJiF0Ll9yZWFkYWJsZVN0YXRlLmVtaXRDbG9zZXx8dC5lbWl0KCJjbG9zZSIpfWZ1bmN0aW9uIGkodCxlKXt0LmVtaXQoImVycm9yIixlKX1lLmV4cG9ydHM9e2Rlc3Ryb3k6ZnVuY3Rpb24oZSxhKXt2YXIgbz10aGlzLHM9dGhpcy5fcmVhZGFibGVTdGF0ZSYmdGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQsbD10aGlzLl93cml0YWJsZVN0YXRlJiZ0aGlzLl93cml0YWJsZVN0YXRlLmRlc3Ryb3llZDtyZXR1cm4gc3x8bD8oYT9hKGUpOmUmJih0aGlzLl93cml0YWJsZVN0YXRlP3RoaXMuX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkfHwodGhpcy5fd3JpdGFibGVTdGF0ZS5lcnJvckVtaXR0ZWQ9ITAsdC5uZXh0VGljayhpLHRoaXMsZSkpOnQubmV4dFRpY2soaSx0aGlzLGUpKSx0aGlzKToodGhpcy5fcmVhZGFibGVTdGF0ZSYmKHRoaXMuX3JlYWRhYmxlU3RhdGUuZGVzdHJveWVkPSEwKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITApLHRoaXMuX2Rlc3Ryb3koZXx8bnVsbCwoZnVuY3Rpb24oZSl7IWEmJmU/by5fd3JpdGFibGVTdGF0ZT9vLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD90Lm5leHRUaWNrKG4sbyk6KG8uX3dyaXRhYmxlU3RhdGUuZXJyb3JFbWl0dGVkPSEwLHQubmV4dFRpY2socixvLGUpKTp0Lm5leHRUaWNrKHIsbyxlKTphPyh0Lm5leHRUaWNrKG4sbyksYShlKSk6dC5uZXh0VGljayhuLG8pfSkpLHRoaXMpfSx1bmRlc3Ryb3k6ZnVuY3Rpb24oKXt0aGlzLl9yZWFkYWJsZVN0YXRlJiYodGhpcy5fcmVhZGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5yZWFkaW5nPSExLHRoaXMuX3JlYWRhYmxlU3RhdGUuZW5kZWQ9ITEsdGhpcy5fcmVhZGFibGVTdGF0ZS5lbmRFbWl0dGVkPSExKSx0aGlzLl93cml0YWJsZVN0YXRlJiYodGhpcy5fd3JpdGFibGVTdGF0ZS5kZXN0cm95ZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5lbmRlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVuZGluZz0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmZpbmFsQ2FsbGVkPSExLHRoaXMuX3dyaXRhYmxlU3RhdGUucHJlZmluaXNoZWQ9ITEsdGhpcy5fd3JpdGFibGVTdGF0ZS5maW5pc2hlZD0hMSx0aGlzLl93cml0YWJsZVN0YXRlLmVycm9yRW1pdHRlZD0hMSl9LGVycm9yT3JEZXN0cm95OmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fcmVhZGFibGVTdGF0ZSxuPXQuX3dyaXRhYmxlU3RhdGU7ciYmci5hdXRvRGVzdHJveXx8biYmbi5hdXRvRGVzdHJveT90LmRlc3Ryb3koZSk6dC5lbWl0KCJlcnJvciIsZSl9fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSl9LHtfcHJvY2Vzczo1MDR9XSw1NTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vZXJyb3JzIikuY29kZXMuRVJSX1NUUkVBTV9QUkVNQVRVUkVfQ0xPU0U7ZnVuY3Rpb24gaSgpe31lLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIsYSl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHIpcmV0dXJuIHQoZSxudWxsLHIpO3J8fChyPXt9KSxhPWZ1bmN0aW9uKHQpe3ZhciBlPSExO3JldHVybiBmdW5jdGlvbigpe2lmKCFlKXtlPSEwO2Zvcih2YXIgcj1hcmd1bWVudHMubGVuZ3RoLG49bmV3IEFycmF5KHIpLGk9MDtpPHI7aSsrKW5baV09YXJndW1lbnRzW2ldO3QuYXBwbHkodGhpcyxuKX19fShhfHxpKTt2YXIgbz1yLnJlYWRhYmxlfHwhMSE9PXIucmVhZGFibGUmJmUucmVhZGFibGUscz1yLndyaXRhYmxlfHwhMSE9PXIud3JpdGFibGUmJmUud3JpdGFibGUsbD1mdW5jdGlvbigpe2Uud3JpdGFibGV8fHUoKX0sYz1lLl93cml0YWJsZVN0YXRlJiZlLl93cml0YWJsZVN0YXRlLmZpbmlzaGVkLHU9ZnVuY3Rpb24oKXtzPSExLGM9ITAsb3x8YS5jYWxsKGUpfSxmPWUuX3JlYWRhYmxlU3RhdGUmJmUuX3JlYWRhYmxlU3RhdGUuZW5kRW1pdHRlZCxoPWZ1bmN0aW9uKCl7bz0hMSxmPSEwLHN8fGEuY2FsbChlKX0scD1mdW5jdGlvbih0KXthLmNhbGwoZSx0KX0sZD1mdW5jdGlvbigpe3ZhciB0O3JldHVybiBvJiYhZj8oZS5fcmVhZGFibGVTdGF0ZSYmZS5fcmVhZGFibGVTdGF0ZS5lbmRlZHx8KHQ9bmV3IG4pLGEuY2FsbChlLHQpKTpzJiYhYz8oZS5fd3JpdGFibGVTdGF0ZSYmZS5fd3JpdGFibGVTdGF0ZS5lbmRlZHx8KHQ9bmV3IG4pLGEuY2FsbChlLHQpKTp2b2lkIDB9LG09ZnVuY3Rpb24oKXtlLnJlcS5vbigiZmluaXNoIix1KX07cmV0dXJuIWZ1bmN0aW9uKHQpe3JldHVybiB0LnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIHQuYWJvcnR9KGUpP3MmJiFlLl93cml0YWJsZVN0YXRlJiYoZS5vbigiZW5kIixsKSxlLm9uKCJjbG9zZSIsbCkpOihlLm9uKCJjb21wbGV0ZSIsdSksZS5vbigiYWJvcnQiLGQpLGUucmVxP20oKTplLm9uKCJyZXF1ZXN0IixtKSksZS5vbigiZW5kIixoKSxlLm9uKCJmaW5pc2giLHUpLCExIT09ci5lcnJvciYmZS5vbigiZXJyb3IiLHApLGUub24oImNsb3NlIixkKSxmdW5jdGlvbigpe2UucmVtb3ZlTGlzdGVuZXIoImNvbXBsZXRlIix1KSxlLnJlbW92ZUxpc3RlbmVyKCJhYm9ydCIsZCksZS5yZW1vdmVMaXN0ZW5lcigicmVxdWVzdCIsbSksZS5yZXEmJmUucmVxLnJlbW92ZUxpc3RlbmVyKCJmaW5pc2giLHUpLGUucmVtb3ZlTGlzdGVuZXIoImVuZCIsbCksZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGwpLGUucmVtb3ZlTGlzdGVuZXIoImZpbmlzaCIsdSksZS5yZW1vdmVMaXN0ZW5lcigiZW5kIixoKSxlLnJlbW92ZUxpc3RlbmVyKCJlcnJvciIscCksZS5yZW1vdmVMaXN0ZW5lcigiY2xvc2UiLGQpfX19LHsiLi4vLi4vLi4vZXJyb3JzIjo1NDR9XSw1NTQ6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt0aHJvdyBuZXcgRXJyb3IoIlJlYWRhYmxlLmZyb20gaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUgYnJvd3NlciIpfX0se31dLDU1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbjt2YXIgaT10KCIuLi8uLi8uLi9lcnJvcnMiKS5jb2RlcyxhPWkuRVJSX01JU1NJTkdfQVJHUyxvPWkuRVJSX1NUUkVBTV9ERVNUUk9ZRUQ7ZnVuY3Rpb24gcyh0KXtpZih0KXRocm93IHR9ZnVuY3Rpb24gbChlLHIsaSxhKXthPWZ1bmN0aW9uKHQpe3ZhciBlPSExO3JldHVybiBmdW5jdGlvbigpe2V8fChlPSEwLHQuYXBwbHkodm9pZCAwLGFyZ3VtZW50cykpfX0oYSk7dmFyIHM9ITE7ZS5vbigiY2xvc2UiLChmdW5jdGlvbigpe3M9ITB9KSksdm9pZCAwPT09biYmKG49dCgiLi9lbmQtb2Ytc3RyZWFtIikpLG4oZSx7cmVhZGFibGU6cix3cml0YWJsZTppfSwoZnVuY3Rpb24odCl7aWYodClyZXR1cm4gYSh0KTtzPSEwLGEoKX0pKTt2YXIgbD0hMTtyZXR1cm4gZnVuY3Rpb24odCl7aWYoIXMmJiFsKXJldHVybiBsPSEwLGZ1bmN0aW9uKHQpe3JldHVybiB0LnNldEhlYWRlciYmImZ1bmN0aW9uIj09dHlwZW9mIHQuYWJvcnR9KGUpP2UuYWJvcnQoKToiZnVuY3Rpb24iPT10eXBlb2YgZS5kZXN0cm95P2UuZGVzdHJveSgpOnZvaWQgYSh0fHxuZXcgbygicGlwZSIpKX19ZnVuY3Rpb24gYyh0KXt0KCl9ZnVuY3Rpb24gdSh0LGUpe3JldHVybiB0LnBpcGUoZSl9ZnVuY3Rpb24gZih0KXtyZXR1cm4gdC5sZW5ndGg/ImZ1bmN0aW9uIiE9dHlwZW9mIHRbdC5sZW5ndGgtMV0/czp0LnBvcCgpOnN9ZS5leHBvcnRzPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PWFyZ3VtZW50cy5sZW5ndGgsZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT1hcmd1bWVudHNbcl07dmFyIG4saT1mKGUpO2lmKEFycmF5LmlzQXJyYXkoZVswXSkmJihlPWVbMF0pLGUubGVuZ3RoPDIpdGhyb3cgbmV3IGEoInN0cmVhbXMiKTt2YXIgbz1lLm1hcCgoZnVuY3Rpb24odCxyKXt2YXIgYT1yPGUubGVuZ3RoLTE7cmV0dXJuIGwodCxhLHI+MCwoZnVuY3Rpb24odCl7bnx8KG49dCksdCYmby5mb3JFYWNoKGMpLGF8fChvLmZvckVhY2goYyksaShuKSl9KSl9KSk7cmV0dXJuIGUucmVkdWNlKHUpfX0seyIuLi8uLi8uLi9lcnJvcnMiOjU0NCwiLi9lbmQtb2Ytc3RyZWFtIjo1NTN9XSw1NTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vZXJyb3JzIikuY29kZXMuRVJSX0lOVkFMSURfT1BUX1ZBTFVFO2UuZXhwb3J0cz17Z2V0SGlnaFdhdGVyTWFyazpmdW5jdGlvbih0LGUscixpKXt2YXIgYT1mdW5jdGlvbih0LGUscil7cmV0dXJuIG51bGwhPXQuaGlnaFdhdGVyTWFyaz90LmhpZ2hXYXRlck1hcms6ZT90W3JdOm51bGx9KGUsaSxyKTtpZihudWxsIT1hKXtpZighaXNGaW5pdGUoYSl8fE1hdGguZmxvb3IoYSkhPT1hfHxhPDApdGhyb3cgbmV3IG4oaT9yOiJoaWdoV2F0ZXJNYXJrIixhKTtyZXR1cm4gTWF0aC5mbG9vcihhKX1yZXR1cm4gdC5vYmplY3RNb2RlPzE2OjE2Mzg0fX19LHsiLi4vLi4vLi4vZXJyb3JzIjo1NDR9XSw1NTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9dCgiZXZlbnRzIikuRXZlbnRFbWl0dGVyfSx7ZXZlbnRzOjIzN31dLDU1ODpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyLG4peyhmdW5jdGlvbigpe3ZhciByPXQoImFzc2VydCIpLGk9dCgiZGVidWciKSgic3RyZWFtLXBhcnNlciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10JiYiZnVuY3Rpb24iPT10eXBlb2YgdC5fdHJhbnNmb3JtLHI9dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuX3dyaXRlO2lmKCFlJiYhcil0aHJvdyBuZXcgRXJyb3IoIm11c3QgcGFzcyBhIFdyaXRhYmxlIG9yIFRyYW5zZm9ybSBzdHJlYW0gaW4iKTtpKCJleHRlbmRpbmcgUGFyc2VyIGludG8gc3RyZWFtIiksdC5fYnl0ZXM9byx0Ll9za2lwQnl0ZXM9cyxlJiYodC5fcGFzc3Rocm91Z2g9bCk7ZT90Ll90cmFuc2Zvcm09dTp0Ll93cml0ZT1jfTtmdW5jdGlvbiBhKHQpe2koImluaXRpYWxpemluZyBwYXJzZXIgc3RyZWFtIiksdC5fcGFyc2VyQnl0ZXNMZWZ0PTAsdC5fcGFyc2VyQnVmZmVycz1bXSx0Ll9wYXJzZXJCdWZmZXJlZD0wLHQuX3BhcnNlclN0YXRlPS0xLHQuX3BhcnNlckNhbGxiYWNrPW51bGwsImZ1bmN0aW9uIj09dHlwZW9mIHQucHVzaCYmKHQuX3BhcnNlck91dHB1dD10LnB1c2guYmluZCh0KSksdC5fcGFyc2VySW5pdD0hMH1mdW5jdGlvbiBvKHQsZSl7cighdGhpcy5fcGFyc2VyQ2FsbGJhY2ssJ3RoZXJlIGlzIGFscmVhZHkgYSAiY2FsbGJhY2siIHNldCEnKSxyKGlzRmluaXRlKHQpJiZ0PjAsJ2NhbiBvbmx5IGJ1ZmZlciBhIGZpbml0ZSBudW1iZXIgb2YgYnl0ZXMgPiAwLCBnb3QgIicrdCsnIicpLHRoaXMuX3BhcnNlckluaXR8fGEodGhpcyksaSgiYnVmZmVyaW5nICVvIGJ5dGVzIix0KSx0aGlzLl9wYXJzZXJCeXRlc0xlZnQ9dCx0aGlzLl9wYXJzZXJDYWxsYmFjaz1lLHRoaXMuX3BhcnNlclN0YXRlPTB9ZnVuY3Rpb24gcyh0LGUpe3IoIXRoaXMuX3BhcnNlckNhbGxiYWNrLCd0aGVyZSBpcyBhbHJlYWR5IGEgImNhbGxiYWNrIiBzZXQhJykscih0PjAsJ2NhbiBvbmx5IHNraXAgPiAwIGJ5dGVzLCBnb3QgIicrdCsnIicpLHRoaXMuX3BhcnNlckluaXR8fGEodGhpcyksaSgic2tpcHBpbmcgJW8gYnl0ZXMiLHQpLHRoaXMuX3BhcnNlckJ5dGVzTGVmdD10LHRoaXMuX3BhcnNlckNhbGxiYWNrPWUsdGhpcy5fcGFyc2VyU3RhdGU9MX1mdW5jdGlvbiBsKHQsZSl7cighdGhpcy5fcGFyc2VyQ2FsbGJhY2ssJ1RoZXJlIGlzIGFscmVhZHkgYSAiY2FsbGJhY2siIHNldCEnKSxyKHQ+MCwnY2FuIG9ubHkgcGFzcyB0aHJvdWdoID4gMCBieXRlcywgZ290ICInK3QrJyInKSx0aGlzLl9wYXJzZXJJbml0fHxhKHRoaXMpLGkoInBhc3NpbmcgdGhyb3VnaCAlbyBieXRlcyIsdCksdGhpcy5fcGFyc2VyQnl0ZXNMZWZ0PXQsdGhpcy5fcGFyc2VyQ2FsbGJhY2s9ZSx0aGlzLl9wYXJzZXJTdGF0ZT0yfWZ1bmN0aW9uIGModCxlLHIpe3RoaXMuX3BhcnNlckluaXR8fGEodGhpcyksaSgid3JpdGUoJW8gYnl0ZXMpIix0Lmxlbmd0aCksImZ1bmN0aW9uIj09dHlwZW9mIGUmJihyPWUpLGgodGhpcyx0LG51bGwscil9ZnVuY3Rpb24gdSh0LGUscil7dGhpcy5fcGFyc2VySW5pdHx8YSh0aGlzKSxpKCJ0cmFuc2Zvcm0oJW8gYnl0ZXMpIix0Lmxlbmd0aCksImZ1bmN0aW9uIiE9dHlwZW9mIGUmJihlPXRoaXMuX3BhcnNlck91dHB1dCksaCh0aGlzLHQsZSxyKX1mdW5jdGlvbiBmKHQsZSxyLGEpe2lmKHQuX3BhcnNlckJ5dGVzTGVmdC09ZS5sZW5ndGgsaSgiJW8gYnl0ZXMgbGVmdCBmb3Igc3RyZWFtIHBpZWNlIix0Ll9wYXJzZXJCeXRlc0xlZnQpLDA9PT10Ll9wYXJzZXJTdGF0ZT8odC5fcGFyc2VyQnVmZmVycy5wdXNoKGUpLHQuX3BhcnNlckJ1ZmZlcmVkKz1lLmxlbmd0aCk6Mj09PXQuX3BhcnNlclN0YXRlJiZyKGUpLDAhPT10Ll9wYXJzZXJCeXRlc0xlZnQpcmV0dXJuIGE7dmFyIG89dC5fcGFyc2VyQ2FsbGJhY2s7aWYobyYmMD09PXQuX3BhcnNlclN0YXRlJiZ0Ll9wYXJzZXJCdWZmZXJzLmxlbmd0aD4xJiYoZT1uLmNvbmNhdCh0Ll9wYXJzZXJCdWZmZXJzLHQuX3BhcnNlckJ1ZmZlcmVkKSksMCE9PXQuX3BhcnNlclN0YXRlJiYoZT1udWxsKSx0Ll9wYXJzZXJDYWxsYmFjaz1udWxsLHQuX3BhcnNlckJ1ZmZlcmVkPTAsdC5fcGFyc2VyU3RhdGU9LTEsdC5fcGFyc2VyQnVmZmVycy5zcGxpY2UoMCksbyl7dmFyIHM9W107ZSYmcy5wdXNoKGUpLHImJnMucHVzaChyKTt2YXIgbD1vLmxlbmd0aD5zLmxlbmd0aDtsJiZzLnB1c2gocChhKSk7dmFyIGM9by5hcHBseSh0LHMpO2lmKCFsfHxhPT09YylyZXR1cm4gYX19dmFyIGg9cCgoZnVuY3Rpb24gdChlLHIsbixpKXtyZXR1cm4gZS5fcGFyc2VyQnl0ZXNMZWZ0PD0wP2kobmV3IEVycm9yKCJnb3QgZGF0YSBidXQgbm90IGN1cnJlbnRseSBwYXJzaW5nIGFueXRoaW5nIikpOnIubGVuZ3RoPD1lLl9wYXJzZXJCeXRlc0xlZnQ/ZnVuY3Rpb24oKXtyZXR1cm4gZihlLHIsbixpKX06ZnVuY3Rpb24oKXt2YXIgYT1yLnNsaWNlKDAsZS5fcGFyc2VyQnl0ZXNMZWZ0KTtyZXR1cm4gZihlLGEsbiwoZnVuY3Rpb24obyl7cmV0dXJuIG8/aShvKTpyLmxlbmd0aD5hLmxlbmd0aD9mdW5jdGlvbigpe3JldHVybiB0KGUsci5zbGljZShhLmxlbmd0aCksbixpKX06dm9pZCAwfSkpfX0pKTtmdW5jdGlvbiBwKHQpe3JldHVybiBmdW5jdGlvbigpe2Zvcih2YXIgZT10LmFwcGx5KHRoaXMsYXJndW1lbnRzKTsiZnVuY3Rpb24iPT10eXBlb2YgZTspZT1lKCk7cmV0dXJuIGV9fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsdCgiX3Byb2Nlc3MiKSx0KCJidWZmZXIiKS5CdWZmZXIpfSx7X3Byb2Nlc3M6NTA0LGFzc2VydDo3NixidWZmZXI6MTEyLGRlYnVnOjU1OX1dLDU1OTpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihuKXsoZnVuY3Rpb24oKXtmdW5jdGlvbiBpKCl7dmFyIHQ7dHJ5e3Q9ci5zdG9yYWdlLmRlYnVnfWNhdGNoKHQpe31yZXR1cm4hdCYmdm9pZCAwIT09biYmImVudiJpbiBuJiYodD1uLmVudi5ERUJVRyksdH0ocj1lLmV4cG9ydHM9dCgiLi9kZWJ1ZyIpKS5sb2c9ZnVuY3Rpb24oKXtyZXR1cm4ib2JqZWN0Ij09dHlwZW9mIGNvbnNvbGUmJmNvbnNvbGUubG9nJiZGdW5jdGlvbi5wcm90b3R5cGUuYXBwbHkuY2FsbChjb25zb2xlLmxvZyxjb25zb2xlLGFyZ3VtZW50cyl9LHIuZm9ybWF0QXJncz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnVzZUNvbG9ycztpZih0WzBdPShlPyIlYyI6IiIpK3RoaXMubmFtZXNwYWNlKyhlPyIgJWMiOiIgIikrdFswXSsoZT8iJWMgIjoiICIpKyIrIityLmh1bWFuaXplKHRoaXMuZGlmZiksIWUpcmV0dXJuO3ZhciBuPSJjb2xvcjogIit0aGlzLmNvbG9yO3Quc3BsaWNlKDEsMCxuLCJjb2xvcjogaW5oZXJpdCIpO3ZhciBpPTAsYT0wO3RbMF0ucmVwbGFjZSgvJVthLXpBLVolXS9nLChmdW5jdGlvbih0KXsiJSUiIT09dCYmKGkrKywiJWMiPT09dCYmKGE9aSkpfSkpLHQuc3BsaWNlKGEsMCxuKX0sci5zYXZlPWZ1bmN0aW9uKHQpe3RyeXtudWxsPT10P3Iuc3RvcmFnZS5yZW1vdmVJdGVtKCJkZWJ1ZyIpOnIuc3RvcmFnZS5kZWJ1Zz10fWNhdGNoKHQpe319LHIubG9hZD1pLHIudXNlQ29sb3JzPWZ1bmN0aW9uKCl7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3cmJndpbmRvdy5wcm9jZXNzJiYicmVuZGVyZXIiPT09d2luZG93LnByb2Nlc3MudHlwZSlyZXR1cm4hMDtyZXR1cm4idW5kZWZpbmVkIiE9dHlwZW9mIGRvY3VtZW50JiZkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQmJmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZSYmZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnN0eWxlLldlYmtpdEFwcGVhcmFuY2V8fCJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93JiZ3aW5kb3cuY29uc29sZSYmKHdpbmRvdy5jb25zb2xlLmZpcmVidWd8fHdpbmRvdy5jb25zb2xlLmV4Y2VwdGlvbiYmd2luZG93LmNvbnNvbGUudGFibGUpfHwidW5kZWZpbmVkIiE9dHlwZW9mIG5hdmlnYXRvciYmbmF2aWdhdG9yLnVzZXJBZ2VudCYmbmF2aWdhdG9yLnVzZXJBZ2VudC50b0xvd2VyQ2FzZSgpLm1hdGNoKC9maXJlZm94XC8oXGQrKS8pJiZwYXJzZUludChSZWdFeHAuJDEsMTApPj0zMXx8InVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJm5hdmlnYXRvci51c2VyQWdlbnQmJm5hdmlnYXRvci51c2VyQWdlbnQudG9Mb3dlckNhc2UoKS5tYXRjaCgvYXBwbGV3ZWJraXRcLyhcZCspLyl9LHIuc3RvcmFnZT0idW5kZWZpbmVkIiE9dHlwZW9mIGNocm9tZSYmdm9pZCAwIT09Y2hyb21lLnN0b3JhZ2U/Y2hyb21lLnN0b3JhZ2UubG9jYWw6ZnVuY3Rpb24oKXt0cnl7cmV0dXJuIHdpbmRvdy5sb2NhbFN0b3JhZ2V9Y2F0Y2godCl7fX0oKSxyLmNvbG9ycz1bImxpZ2h0c2VhZ3JlZW4iLCJmb3Jlc3RncmVlbiIsImdvbGRlbnJvZCIsImRvZGdlcmJsdWUiLCJkYXJrb3JjaGlkIiwiY3JpbXNvbiJdLHIuZm9ybWF0dGVycy5qPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gSlNPTi5zdHJpbmdpZnkodCl9Y2F0Y2godCl7cmV0dXJuIltVbmV4cGVjdGVkSlNPTlBhcnNlRXJyb3JdOiAiK3QubWVzc2FnZX19LHIuZW5hYmxlKGkoKSl9KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLHQoIl9wcm9jZXNzIikpfSx7Ii4vZGVidWciOjU2MCxfcHJvY2Vzczo1MDR9XSw1NjA6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbjtmdW5jdGlvbiBpKHQpe2Z1bmN0aW9uIGUoKXtpZihlLmVuYWJsZWQpe3ZhciB0PWUsaT0rbmV3IERhdGUsYT1pLShufHxpKTt0LmRpZmY9YSx0LnByZXY9bix0LmN1cnI9aSxuPWk7Zm9yKHZhciBvPW5ldyBBcnJheShhcmd1bWVudHMubGVuZ3RoKSxzPTA7czxvLmxlbmd0aDtzKyspb1tzXT1hcmd1bWVudHNbc107b1swXT1yLmNvZXJjZShvWzBdKSwic3RyaW5nIiE9dHlwZW9mIG9bMF0mJm8udW5zaGlmdCgiJU8iKTt2YXIgbD0wO29bMF09b1swXS5yZXBsYWNlKC8lKFthLXpBLVolXSkvZywoZnVuY3Rpb24oZSxuKXtpZigiJSUiPT09ZSlyZXR1cm4gZTtsKys7dmFyIGk9ci5mb3JtYXR0ZXJzW25dO2lmKCJmdW5jdGlvbiI9PXR5cGVvZiBpKXt2YXIgYT1vW2xdO2U9aS5jYWxsKHQsYSksby5zcGxpY2UobCwxKSxsLS19cmV0dXJuIGV9KSksci5mb3JtYXRBcmdzLmNhbGwodCxvKTt2YXIgYz1lLmxvZ3x8ci5sb2d8fGNvbnNvbGUubG9nLmJpbmQoY29uc29sZSk7Yy5hcHBseSh0LG8pfX1yZXR1cm4gZS5uYW1lc3BhY2U9dCxlLmVuYWJsZWQ9ci5lbmFibGVkKHQpLGUudXNlQ29sb3JzPXIudXNlQ29sb3JzKCksZS5jb2xvcj1mdW5jdGlvbih0KXt2YXIgZSxuPTA7Zm9yKGUgaW4gdCluPShuPDw1KS1uK3QuY2hhckNvZGVBdChlKSxufD0wO3JldHVybiByLmNvbG9yc1tNYXRoLmFicyhuKSVyLmNvbG9ycy5sZW5ndGhdfSh0KSwiZnVuY3Rpb24iPT10eXBlb2Ygci5pbml0JiZyLmluaXQoZSksZX0ocj1lLmV4cG9ydHM9aS5kZWJ1Zz1pLmRlZmF1bHQ9aSkuY29lcmNlPWZ1bmN0aW9uKHQpe3JldHVybiB0IGluc3RhbmNlb2YgRXJyb3I/dC5zdGFja3x8dC5tZXNzYWdlOnR9LHIuZGlzYWJsZT1mdW5jdGlvbigpe3IuZW5hYmxlKCIiKX0sci5lbmFibGU9ZnVuY3Rpb24odCl7ci5zYXZlKHQpLHIubmFtZXM9W10sci5za2lwcz1bXTtmb3IodmFyIGU9KCJzdHJpbmciPT10eXBlb2YgdD90OiIiKS5zcGxpdCgvW1xzLF0rLyksbj1lLmxlbmd0aCxpPTA7aTxuO2krKyllW2ldJiYoIi0iPT09KHQ9ZVtpXS5yZXBsYWNlKC9cKi9nLCIuKj8iKSlbMF0/ci5za2lwcy5wdXNoKG5ldyBSZWdFeHAoIl4iK3Quc3Vic3RyKDEpKyIkIikpOnIubmFtZXMucHVzaChuZXcgUmVnRXhwKCJeIit0KyIkIikpKX0sci5lbmFibGVkPWZ1bmN0aW9uKHQpe3ZhciBlLG47Zm9yKGU9MCxuPXIuc2tpcHMubGVuZ3RoO2U8bjtlKyspaWYoci5za2lwc1tlXS50ZXN0KHQpKXJldHVybiExO2ZvcihlPTAsbj1yLm5hbWVzLmxlbmd0aDtlPG47ZSsrKWlmKHIubmFtZXNbZV0udGVzdCh0KSlyZXR1cm4hMDtyZXR1cm4hMX0sci5odW1hbml6ZT10KCJtcyIpLHIubmFtZXM9W10sci5za2lwcz1bXSxyLmZvcm1hdHRlcnM9e319LHttczo1NjF9XSw1NjE6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj0xZTMsaT02ZTQsYT02MCppLG89MjQqYTtmdW5jdGlvbiBzKHQsZSxyKXtpZighKHQ8ZSkpcmV0dXJuIHQ8MS41KmU/TWF0aC5mbG9vcih0L2UpKyIgIityOk1hdGguY2VpbCh0L2UpKyIgIityKyJzIn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlPWV8fHt9O3ZhciByLGw9dHlwZW9mIHQ7aWYoInN0cmluZyI9PT1sJiZ0Lmxlbmd0aD4wKXJldHVybiBmdW5jdGlvbih0KXtpZigodD1TdHJpbmcodCkpLmxlbmd0aD4xMDApcmV0dXJuO3ZhciBlPS9eKCg/OlxkKyk/XC4/XGQrKSAqKG1pbGxpc2Vjb25kcz98bXNlY3M/fG1zfHNlY29uZHM/fHNlY3M/fHN8bWludXRlcz98bWlucz98bXxob3Vycz98aHJzP3xofGRheXM/fGR8eWVhcnM/fHlycz98eSk/JC9pLmV4ZWModCk7aWYoIWUpcmV0dXJuO3ZhciByPXBhcnNlRmxvYXQoZVsxXSk7c3dpdGNoKChlWzJdfHwibXMiKS50b0xvd2VyQ2FzZSgpKXtjYXNlInllYXJzIjpjYXNlInllYXIiOmNhc2UieXJzIjpjYXNlInlyIjpjYXNlInkiOnJldHVybiAzMTU1NzZlNSpyO2Nhc2UiZGF5cyI6Y2FzZSJkYXkiOmNhc2UiZCI6cmV0dXJuIHIqbztjYXNlImhvdXJzIjpjYXNlImhvdXIiOmNhc2UiaHJzIjpjYXNlImhyIjpjYXNlImgiOnJldHVybiByKmE7Y2FzZSJtaW51dGVzIjpjYXNlIm1pbnV0ZSI6Y2FzZSJtaW5zIjpjYXNlIm1pbiI6Y2FzZSJtIjpyZXR1cm4gcippO2Nhc2Uic2Vjb25kcyI6Y2FzZSJzZWNvbmQiOmNhc2Uic2VjcyI6Y2FzZSJzZWMiOmNhc2UicyI6cmV0dXJuIHIqbjtjYXNlIm1pbGxpc2Vjb25kcyI6Y2FzZSJtaWxsaXNlY29uZCI6Y2FzZSJtc2VjcyI6Y2FzZSJtc2VjIjpjYXNlIm1zIjpyZXR1cm4gcjtkZWZhdWx0OnJldHVybn19KHQpO2lmKCJudW1iZXIiPT09bCYmITE9PT1pc05hTih0KSlyZXR1cm4gZS5sb25nP3Mocj10LG8sImRheSIpfHxzKHIsYSwiaG91ciIpfHxzKHIsaSwibWludXRlIil8fHMocixuLCJzZWNvbmQiKXx8cisiIG1zIjpmdW5jdGlvbih0KXtpZih0Pj1vKXJldHVybiBNYXRoLnJvdW5kKHQvbykrImQiO2lmKHQ+PWEpcmV0dXJuIE1hdGgucm91bmQodC9hKSsiaCI7aWYodD49aSlyZXR1cm4gTWF0aC5yb3VuZCh0L2kpKyJtIjtpZih0Pj1uKXJldHVybiBNYXRoLnJvdW5kKHQvbikrInMiO3JldHVybiB0KyJtcyJ9KHQpO3Rocm93IG5ldyBFcnJvcigidmFsIGlzIG5vdCBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgYSB2YWxpZCBudW1iZXIuIHZhbD0iK0pTT04uc3RyaW5naWZ5KHQpKX19LHt9XSw1NjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicGFyZW50aGVzaXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKG51bGw9PXQpdGhyb3cgRXJyb3IoIkZpcnN0IGFyZ3VtZW50IHNob3VsZCBiZSBhIHN0cmluZyIpO2lmKG51bGw9PWUpdGhyb3cgRXJyb3IoIlNlcGFyYXRvciBzaG91bGQgYmUgYSBzdHJpbmcgb3IgYSBSZWdFeHAiKTtyPygic3RyaW5nIj09dHlwZW9mIHJ8fEFycmF5LmlzQXJyYXkocikpJiYocj17aWdub3JlOnJ9KTpyPXt9LG51bGw9PXIuZXNjYXBlJiYoci5lc2NhcGU9ITApLG51bGw9PXIuaWdub3JlP3IuaWdub3JlPVsiW10iLCIoKSIsInt9IiwiPD4iLCciIicsIicnIiwiYGAiLCJcdTIwMWNcdTIwMWQiLCJceGFiXHhiYiJdOigic3RyaW5nIj09dHlwZW9mIHIuaWdub3JlJiYoci5pZ25vcmU9W3IuaWdub3JlXSksci5pZ25vcmU9ci5pZ25vcmUubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gMT09PXQubGVuZ3RoJiYodCs9dCksdH0pKSk7dmFyIGk9bi5wYXJzZSh0LHtmbGF0OiEwLGJyYWNrZXRzOnIuaWdub3JlfSksYT1pWzBdLnNwbGl0KGUpO2lmKHIuZXNjYXBlKXtmb3IodmFyIG89W10scz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdLGM9YVtzKzFdOyJcXCI9PT1sW2wubGVuZ3RoLTFdJiYiXFwiIT09bFtsLmxlbmd0aC0yXT8oby5wdXNoKGwrZStjKSxzKyspOm8ucHVzaChsKX1hPW99Zm9yKHM9MDtzPGEubGVuZ3RoO3MrKylpWzBdPWFbc10sYVtzXT1uLnN0cmluZ2lmeShpLHtmbGF0OiEwfSk7cmV0dXJuIGF9fSx7cGFyZW50aGVzaXM6NDcwfV0sNTYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInNhZmUtYnVmZmVyIikuQnVmZmVyLGk9bi5pc0VuY29kaW5nfHxmdW5jdGlvbih0KXtzd2l0Y2goKHQ9IiIrdCkmJnQudG9Mb3dlckNhc2UoKSl7Y2FzZSJoZXgiOmNhc2UidXRmOCI6Y2FzZSJ1dGYtOCI6Y2FzZSJhc2NpaSI6Y2FzZSJiaW5hcnkiOmNhc2UiYmFzZTY0IjpjYXNlInVjczIiOmNhc2UidWNzLTIiOmNhc2UidXRmMTZsZSI6Y2FzZSJ1dGYtMTZsZSI6Y2FzZSJyYXciOnJldHVybiEwO2RlZmF1bHQ6cmV0dXJuITF9fTtmdW5jdGlvbiBhKHQpe3ZhciBlO3N3aXRjaCh0aGlzLmVuY29kaW5nPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe2lmKCF0KXJldHVybiJ1dGY4Ijtmb3IodmFyIGU7Oylzd2l0Y2godCl7Y2FzZSJ1dGY4IjpjYXNlInV0Zi04IjpyZXR1cm4idXRmOCI7Y2FzZSJ1Y3MyIjpjYXNlInVjcy0yIjpjYXNlInV0ZjE2bGUiOmNhc2UidXRmLTE2bGUiOnJldHVybiJ1dGYxNmxlIjtjYXNlImxhdGluMSI6Y2FzZSJiaW5hcnkiOnJldHVybiJsYXRpbjEiO2Nhc2UiYmFzZTY0IjpjYXNlImFzY2lpIjpjYXNlImhleCI6cmV0dXJuIHQ7ZGVmYXVsdDppZihlKXJldHVybjt0PSgiIit0KS50b0xvd2VyQ2FzZSgpLGU9ITB9fSh0KTtpZigic3RyaW5nIiE9dHlwZW9mIGUmJihuLmlzRW5jb2Rpbmc9PT1pfHwhaSh0KSkpdGhyb3cgbmV3IEVycm9yKCJVbmtub3duIGVuY29kaW5nOiAiK3QpO3JldHVybiBlfHx0fSh0KSx0aGlzLmVuY29kaW5nKXtjYXNlInV0ZjE2bGUiOnRoaXMudGV4dD1sLHRoaXMuZW5kPWMsZT00O2JyZWFrO2Nhc2UidXRmOCI6dGhpcy5maWxsTGFzdD1zLGU9NDticmVhaztjYXNlImJhc2U2NCI6dGhpcy50ZXh0PXUsdGhpcy5lbmQ9ZixlPTM7YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdGhpcy53cml0ZT1oLHZvaWQodGhpcy5lbmQ9cCl9dGhpcy5sYXN0TmVlZD0wLHRoaXMubGFzdFRvdGFsPTAsdGhpcy5sYXN0Q2hhcj1uLmFsbG9jVW5zYWZlKGUpfWZ1bmN0aW9uIG8odCl7cmV0dXJuIHQ8PTEyNz8wOnQ+PjU9PTY/Mjp0Pj40PT0xND8zOnQ+PjM9PTMwPzQ6dD4+Nj09Mj8tMTotMn1mdW5jdGlvbiBzKHQpe3ZhciBlPXRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQscj1mdW5jdGlvbih0LGUscil7aWYoMTI4IT0oMTkyJmVbMF0pKXJldHVybiB0Lmxhc3ROZWVkPTAsIlx1ZmZmZCI7aWYodC5sYXN0TmVlZD4xJiZlLmxlbmd0aD4xKXtpZigxMjghPSgxOTImZVsxXSkpcmV0dXJuIHQubGFzdE5lZWQ9MSwiXHVmZmZkIjtpZih0Lmxhc3ROZWVkPjImJmUubGVuZ3RoPjImJjEyOCE9KDE5MiZlWzJdKSlyZXR1cm4gdC5sYXN0TmVlZD0yLCJcdWZmZmQifX0odGhpcyx0KTtyZXR1cm4gdm9pZCAwIT09cj9yOnRoaXMubGFzdE5lZWQ8PXQubGVuZ3RoPyh0LmNvcHkodGhpcy5sYXN0Q2hhcixlLDAsdGhpcy5sYXN0TmVlZCksdGhpcy5sYXN0Q2hhci50b1N0cmluZyh0aGlzLmVuY29kaW5nLDAsdGhpcy5sYXN0VG90YWwpKToodC5jb3B5KHRoaXMubGFzdENoYXIsZSwwLHQubGVuZ3RoKSx2b2lkKHRoaXMubGFzdE5lZWQtPXQubGVuZ3RoKSl9ZnVuY3Rpb24gbCh0LGUpe2lmKCh0Lmxlbmd0aC1lKSUyPT0wKXt2YXIgcj10LnRvU3RyaW5nKCJ1dGYxNmxlIixlKTtpZihyKXt2YXIgbj1yLmNoYXJDb2RlQXQoci5sZW5ndGgtMSk7aWYobj49NTUyOTYmJm48PTU2MzE5KXJldHVybiB0aGlzLmxhc3ROZWVkPTIsdGhpcy5sYXN0VG90YWw9NCx0aGlzLmxhc3RDaGFyWzBdPXRbdC5sZW5ndGgtMl0sdGhpcy5sYXN0Q2hhclsxXT10W3QubGVuZ3RoLTFdLHIuc2xpY2UoMCwtMSl9cmV0dXJuIHJ9cmV0dXJuIHRoaXMubGFzdE5lZWQ9MSx0aGlzLmxhc3RUb3RhbD0yLHRoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXSx0LnRvU3RyaW5nKCJ1dGYxNmxlIixlLHQubGVuZ3RoLTEpfWZ1bmN0aW9uIGModCl7dmFyIGU9dCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIjtpZih0aGlzLmxhc3ROZWVkKXt2YXIgcj10aGlzLmxhc3RUb3RhbC10aGlzLmxhc3ROZWVkO3JldHVybiBlK3RoaXMubGFzdENoYXIudG9TdHJpbmcoInV0ZjE2bGUiLDAscil9cmV0dXJuIGV9ZnVuY3Rpb24gdSh0LGUpe3ZhciByPSh0Lmxlbmd0aC1lKSUzO3JldHVybiAwPT09cj90LnRvU3RyaW5nKCJiYXNlNjQiLGUpOih0aGlzLmxhc3ROZWVkPTMtcix0aGlzLmxhc3RUb3RhbD0zLDE9PT1yP3RoaXMubGFzdENoYXJbMF09dFt0Lmxlbmd0aC0xXToodGhpcy5sYXN0Q2hhclswXT10W3QubGVuZ3RoLTJdLHRoaXMubGFzdENoYXJbMV09dFt0Lmxlbmd0aC0xXSksdC50b1N0cmluZygiYmFzZTY0IixlLHQubGVuZ3RoLXIpKX1mdW5jdGlvbiBmKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSt0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKCJiYXNlNjQiLDAsMy10aGlzLmxhc3ROZWVkKTplfWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQudG9TdHJpbmcodGhpcy5lbmNvZGluZyl9ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdCYmdC5sZW5ndGg/dGhpcy53cml0ZSh0KToiIn1yLlN0cmluZ0RlY29kZXI9YSxhLnByb3RvdHlwZS53cml0ZT1mdW5jdGlvbih0KXtpZigwPT09dC5sZW5ndGgpcmV0dXJuIiI7dmFyIGUscjtpZih0aGlzLmxhc3ROZWVkKXtpZih2b2lkIDA9PT0oZT10aGlzLmZpbGxMYXN0KHQpKSlyZXR1cm4iIjtyPXRoaXMubGFzdE5lZWQsdGhpcy5sYXN0TmVlZD0wfWVsc2Ugcj0wO3JldHVybiByPHQubGVuZ3RoP2U/ZSt0aGlzLnRleHQodCxyKTp0aGlzLnRleHQodCxyKTplfHwiIn0sYS5wcm90b3R5cGUuZW5kPWZ1bmN0aW9uKHQpe3ZhciBlPXQmJnQubGVuZ3RoP3RoaXMud3JpdGUodCk6IiI7cmV0dXJuIHRoaXMubGFzdE5lZWQ/ZSsiXHVmZmZkIjplfSxhLnByb3RvdHlwZS50ZXh0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUubGVuZ3RoLTE7aWYobjxyKXJldHVybiAwO3ZhciBpPW8oZVtuXSk7aWYoaT49MClyZXR1cm4gaT4wJiYodC5sYXN0TmVlZD1pLTEpLGk7aWYoLS1uPHJ8fC0yPT09aSlyZXR1cm4gMDtpZigoaT1vKGVbbl0pKT49MClyZXR1cm4gaT4wJiYodC5sYXN0TmVlZD1pLTIpLGk7aWYoLS1uPHJ8fC0yPT09aSlyZXR1cm4gMDtpZigoaT1vKGVbbl0pKT49MClyZXR1cm4gaT4wJiYoMj09PWk/aT0wOnQubGFzdE5lZWQ9aS0zKSxpO3JldHVybiAwfSh0aGlzLHQsZSk7aWYoIXRoaXMubGFzdE5lZWQpcmV0dXJuIHQudG9TdHJpbmcoInV0ZjgiLGUpO3RoaXMubGFzdFRvdGFsPXI7dmFyIG49dC5sZW5ndGgtKHItdGhpcy5sYXN0TmVlZCk7cmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLDAsbiksdC50b1N0cmluZygidXRmOCIsZSxuKX0sYS5wcm90b3R5cGUuZmlsbExhc3Q9ZnVuY3Rpb24odCl7aWYodGhpcy5sYXN0TmVlZDw9dC5sZW5ndGgpcmV0dXJuIHQuY29weSh0aGlzLmxhc3RDaGFyLHRoaXMubGFzdFRvdGFsLXRoaXMubGFzdE5lZWQsMCx0aGlzLmxhc3ROZWVkKSx0aGlzLmxhc3RDaGFyLnRvU3RyaW5nKHRoaXMuZW5jb2RpbmcsMCx0aGlzLmxhc3RUb3RhbCk7dC5jb3B5KHRoaXMubGFzdENoYXIsdGhpcy5sYXN0VG90YWwtdGhpcy5sYXN0TmVlZCwwLHQubGVuZ3RoKSx0aGlzLmxhc3ROZWVkLT10Lmxlbmd0aH19LHsic2FmZS1idWZmZXIiOjUzMH1dLDU2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49bmV3IEFycmF5KGUpLGk9bmV3IEFycmF5KGUpLGE9bmV3IEFycmF5KGUpLG89bmV3IEFycmF5KGUpLHM9bmV3IEFycmF5KGUpLGw9MDtsPGU7KytsKXJbbF09LTEsbltsXT0wLGlbbF09ITEsYVtsXT0wLG9bbF09LTEsc1tsXT1bXTt2YXIgYyx1PTAsZj1bXSxoPVtdO2Z1bmN0aW9uIHAoZSl7dmFyIGw9W2VdLGM9W2VdO2ZvcihyW2VdPW5bZV09dSxpW2VdPSEwLHUrPTE7Yy5sZW5ndGg+MDspe2U9Y1tjLmxlbmd0aC0xXTt2YXIgcD10W2VdO2lmKGFbZV08cC5sZW5ndGgpe2Zvcih2YXIgZD1hW2VdO2Q8cC5sZW5ndGg7KytkKXt2YXIgbT1wW2RdO2lmKHJbbV08MCl7clttXT1uW21dPXUsaVttXT0hMCx1Kz0xLGwucHVzaChtKSxjLnB1c2gobSk7YnJlYWt9aVttXSYmKG5bZV09MHxNYXRoLm1pbihuW2VdLG5bbV0pKSxvW21dPj0wJiZzW2VdLnB1c2gob1ttXSl9YVtlXT1kfWVsc2V7aWYobltlXT09PXJbZV0pe3ZhciBnPVtdLHY9W10seT0wO2ZvcihkPWwubGVuZ3RoLTE7ZD49MDstLWQpe3ZhciB4PWxbZF07aWYoaVt4XT0hMSxnLnB1c2goeCksdi5wdXNoKHNbeF0pLHkrPXNbeF0ubGVuZ3RoLG9beF09Zi5sZW5ndGgseD09PWUpe2wubGVuZ3RoPWQ7YnJlYWt9fWYucHVzaChnKTt2YXIgYj1uZXcgQXJyYXkoeSk7Zm9yKGQ9MDtkPHYubGVuZ3RoO2QrKylmb3IodmFyIF89MDtfPHZbZF0ubGVuZ3RoO18rKyliWy0teV09dltkXVtfXTtoLnB1c2goYil9Yy5wb3AoKX19fWZvcihsPTA7bDxlOysrbClyW2xdPDAmJnAobCk7Zm9yKGw9MDtsPGgubGVuZ3RoO2wrKyl7dmFyIGQ9aFtsXTtpZigwIT09ZC5sZW5ndGgpe2Quc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpLGM9W2RbMF1dO2Zvcih2YXIgbT0xO208ZC5sZW5ndGg7bSsrKWRbbV0hPT1kW20tMV0mJmMucHVzaChkW21dKTtoW2xdPWN9fXJldHVybntjb21wb25lbnRzOmYsYWRqYWNlbmN5TGlzdDpofX19LHt9XSw1NjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYodC5kaW1lbnNpb248PTApcmV0dXJue3Bvc2l0aW9uczpbXSxjZWxsczpbXX07aWYoMT09PXQuZGltZW5zaW9uKXJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1pKHQsZSksbj1yLmxlbmd0aCxhPW5ldyBBcnJheShuKSxvPW5ldyBBcnJheShuKSxzPTA7czxuOysrcylhW3NdPVtyW3NdXSxvW3NdPVtzXTtyZXR1cm57cG9zaXRpb25zOmEsY2VsbHM6b319KHQsZSk7dmFyIHI9dC5vcmRlci5qb2luKCkrIi0iK3QuZHR5cGUscz1vW3JdO2U9K2V8fDA7c3x8KHM9b1tyXT1mdW5jdGlvbih0LGUpe3ZhciByPXQubGVuZ3RoKyJkIixpPWFbcl07aWYoaSlyZXR1cm4gaShuLHQsZSl9KHQub3JkZXIsdC5kdHlwZSkpO3JldHVybiBzKHQsZSl9O3ZhciBuPXQoIm5kYXJyYXktZXh0cmFjdC1jb250b3VyIiksaT10KCJ6ZXJvLWNyb3NzaW5ncyIpLGE9eyIyZCI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoe29yZGVyOmUsc2NhbGFyQXJndW1lbnRzOjMsZ2V0dGVyczoiZ2VuZXJpYyI9PT1yP1swXTp2b2lkIDAscGhhc2U6ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHQ+bnwwfSx2ZXJ0ZXg6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwsYyx1LGYsaCl7dmFyIHA9KG88PDApKyhzPDwxKSsobDw8MikrKGM8PDMpfDA7aWYoMCE9PXAmJjE1IT09cClzd2l0Y2gocCl7Y2FzZSAwOnUucHVzaChbdC0uNSxlLS41XSk7YnJlYWs7Y2FzZSAxOnUucHVzaChbdC0uMjUtLjI1KihuK3ItMipoKS8oci1uKSxlLS4yNS0uMjUqKGkrci0yKmgpLyhyLWkpXSk7YnJlYWs7Y2FzZSAyOnUucHVzaChbdC0uNzUtLjI1Kigtbi1yKzIqaCkvKG4tciksZS0uMjUtLjI1KihhK24tMipoKS8obi1hKV0pO2JyZWFrO2Nhc2UgMzp1LnB1c2goW3QtLjUsZS0uNS0uNSooaStyK2Erbi00KmgpLyhyLWkrbi1hKV0pO2JyZWFrO2Nhc2UgNDp1LnB1c2goW3QtLjI1LS4yNSooYStpLTIqaCkvKGktYSksZS0uNzUtLjI1KigtaS1yKzIqaCkvKGktcildKTticmVhaztjYXNlIDU6dS5wdXNoKFt0LS41LS41KihuK3IrYStpLTQqaCkvKHItbitpLWEpLGUtLjVdKTticmVhaztjYXNlIDY6dS5wdXNoKFt0LS41LS4yNSooLW4tcithK2kpLyhuLXIraS1hKSxlLS41LS4yNSooLWktcithK24pLyhpLXIrbi1hKV0pO2JyZWFrO2Nhc2UgNzp1LnB1c2goW3QtLjc1LS4yNSooYStpLTIqaCkvKGktYSksZS0uNzUtLjI1KihhK24tMipoKS8obi1hKV0pO2JyZWFrO2Nhc2UgODp1LnB1c2goW3QtLjc1LS4yNSooLWEtaSsyKmgpLyhhLWkpLGUtLjc1LS4yNSooLWEtbisyKmgpLyhhLW4pXSk7YnJlYWs7Y2FzZSA5OnUucHVzaChbdC0uNS0uMjUqKG4rcistYS1pKS8oci1uK2EtaSksZS0uNS0uMjUqKGkrcistYS1uKS8oci1pK2EtbildKTticmVhaztjYXNlIDEwOnUucHVzaChbdC0uNS0uNSooLW4tci1hLWkrNCpoKS8obi1yK2EtaSksZS0uNV0pO2JyZWFrO2Nhc2UgMTE6dS5wdXNoKFt0LS4yNS0uMjUqKC1hLWkrMipoKS8oYS1pKSxlLS43NS0uMjUqKGkrci0yKmgpLyhyLWkpXSk7YnJlYWs7Y2FzZSAxMjp1LnB1c2goW3QtLjUsZS0uNS0uNSooLWktci1hLW4rNCpoKS8oaS1yK2EtbildKTticmVhaztjYXNlIDEzOnUucHVzaChbdC0uNzUtLjI1KihuK3ItMipoKS8oci1uKSxlLS4yNS0uMjUqKC1hLW4rMipoKS8oYS1uKV0pO2JyZWFrO2Nhc2UgMTQ6dS5wdXNoKFt0LS4yNS0uMjUqKC1uLXIrMipoKS8obi1yKSxlLS4yNS0uMjUqKC1pLXIrMipoKS8oaS1yKV0pO2JyZWFrO2Nhc2UgMTU6dS5wdXNoKFt0LS41LGUtLjVdKX19LGNlbGw6ZnVuY3Rpb24odCxlLHIsbixpLGEsbyxzLGwpe2k/cy5wdXNoKFt0LGVdKTpzLnB1c2goW2UsdF0pfX0pO3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPVtdLGk9W107cmV0dXJuIG4odCxyLGksZSkse3Bvc2l0aW9uczpyLGNlbGxzOml9fX19O3ZhciBvPXt9fSx7Im5kYXJyYXktZXh0cmFjdC1jb250b3VyIjo0NTQsInplcm8tY3Jvc3NpbmdzIjo2MjB9XSw1NjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7T2JqZWN0LmRlZmluZVByb3BlcnR5KHIsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO3ZhciBuPWZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdDtpZihTeW1ib2wuaXRlcmF0b3IgaW4gT2JqZWN0KHQpKXJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPVtdLG49ITAsaT0hMSxhPXZvaWQgMDt0cnl7Zm9yKHZhciBvLHM9dFtTeW1ib2wuaXRlcmF0b3JdKCk7IShuPShvPXMubmV4dCgpKS5kb25lKSYmKHIucHVzaChvLnZhbHVlKSwhZXx8ci5sZW5ndGghPT1lKTtuPSEwKTt9Y2F0Y2godCl7aT0hMCxhPXR9ZmluYWxseXt0cnl7IW4mJnMucmV0dXJuJiZzLnJldHVybigpfWZpbmFsbHl7aWYoaSl0aHJvdyBhfX1yZXR1cm4gcn0odCxlKTt0aHJvdyBuZXcgVHlwZUVycm9yKCJJbnZhbGlkIGF0dGVtcHQgdG8gZGVzdHJ1Y3R1cmUgbm9uLWl0ZXJhYmxlIGluc3RhbmNlIil9LGk9MipNYXRoLlBJLGE9ZnVuY3Rpb24odCxlLHIsbixpLGEsbyl7dmFyIHM9dC54LGw9dC55O3JldHVybnt4Om4qKHMqPWUpLWkqKGwqPXIpK2EseTppKnMrbipsK299fSxvPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MS41NzA3OTYzMjY3OTQ4OTY2PT09ZT8uNTUxOTE1MDI0NDk0Oi0xLjU3MDc5NjMyNjc5NDg5NjY9PT1lPy0uNTUxOTE1MDI0NDk0OjQvMypNYXRoLnRhbihlLzQpLG49TWF0aC5jb3ModCksaT1NYXRoLnNpbih0KSxhPU1hdGguY29zKHQrZSksbz1NYXRoLnNpbih0K2UpO3JldHVyblt7eDpuLWkqcix5OmkrbipyfSx7eDphK28qcix5Om8tYSpyfSx7eDphLHk6b31dfSxzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXQqcitlKm47cmV0dXJuIGk+MSYmKGk9MSksaTwtMSYmKGk9LTEpLCh0Km4tZSpyPDA/LTE6MSkqTWF0aC5hY29zKGkpfTtyLmRlZmF1bHQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5weCxyPXQucHksbD10LmN4LGM9dC5jeSx1PXQucngsZj10LnJ5LGg9dC54QXhpc1JvdGF0aW9uLHA9dm9pZCAwPT09aD8wOmgsZD10LmxhcmdlQXJjRmxhZyxtPXZvaWQgMD09PWQ/MDpkLGc9dC5zd2VlcEZsYWcsdj12b2lkIDA9PT1nPzA6Zyx5PVtdO2lmKDA9PT11fHwwPT09ZilyZXR1cm5bXTt2YXIgeD1NYXRoLnNpbihwKmkvMzYwKSxiPU1hdGguY29zKHAqaS8zNjApLF89YiooZS1sKS8yK3gqKHItYykvMix3PS14KihlLWwpLzIrYiooci1jKS8yO2lmKDA9PT1fJiYwPT09dylyZXR1cm5bXTt1PU1hdGguYWJzKHUpLGY9TWF0aC5hYnMoZik7dmFyIFQ9TWF0aC5wb3coXywyKS9NYXRoLnBvdyh1LDIpK01hdGgucG93KHcsMikvTWF0aC5wb3coZiwyKTtUPjEmJih1Kj1NYXRoLnNxcnQoVCksZio9TWF0aC5zcXJ0KFQpKTt2YXIgaz1mdW5jdGlvbih0LGUscixuLGEsbyxsLGMsdSxmLGgscCl7dmFyIGQ9TWF0aC5wb3coYSwyKSxtPU1hdGgucG93KG8sMiksZz1NYXRoLnBvdyhoLDIpLHY9TWF0aC5wb3cocCwyKSx5PWQqbS1kKnYtbSpnO3k8MCYmKHk9MCkseS89ZCp2K20qZzt2YXIgeD0oeT1NYXRoLnNxcnQoeSkqKGw9PT1jPy0xOjEpKSphL28qcCxiPXkqLW8vYSpoLF89Zip4LXUqYisodCtyKS8yLHc9dSp4K2YqYisoZStuKS8yLFQ9KGgteCkvYSxrPShwLWIpL28sQT0oLWgteCkvYSxNPSgtcC1iKS9vLFM9cygxLDAsVCxrKSxFPXMoVCxrLEEsTSk7cmV0dXJuIDA9PT1jJiZFPjAmJihFLT1pKSwxPT09YyYmRTwwJiYoRSs9aSksW18sdyxTLEVdfShlLHIsbCxjLHUsZixtLHYseCxiLF8sdyksQT1uKGssNCksTT1BWzBdLFM9QVsxXSxFPUFbMl0sTD1BWzNdLEM9TWF0aC5hYnMoTCkvKGkvNCk7TWF0aC5hYnMoMS1DKTwxZS03JiYoQz0xKTt2YXIgUD1NYXRoLm1heChNYXRoLmNlaWwoQyksMSk7TC89UDtmb3IodmFyIEk9MDtJPFA7SSsrKXkucHVzaChvKEUsTCkpLEUrPUw7cmV0dXJuIHkubWFwKChmdW5jdGlvbih0KXt2YXIgZT1hKHRbMF0sdSxmLGIseCxNLFMpLHI9ZS54LG49ZS55LGk9YSh0WzFdLHUsZixiLHgsTSxTKSxvPWkueCxzPWkueSxsPWEodFsyXSx1LGYsYix4LE0sUyk7cmV0dXJue3gxOnIseTE6bix4MjpvLHkyOnMseDpsLngseTpsLnl9fSkpfSxlLmV4cG9ydHM9ci5kZWZhdWx0fSx7fV0sNTY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBhcnNlLXN2Zy1wYXRoIiksaT10KCJhYnMtc3ZnLXBhdGgiKSxhPXQoIm5vcm1hbGl6ZS1zdmctcGF0aCIpLG89dCgiaXMtc3ZnLXBhdGgiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7QXJyYXkuaXNBcnJheSh0KSYmMT09PXQubGVuZ3RoJiYic3RyaW5nIj09dHlwZW9mIHRbMF0mJih0PXRbMF0pO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYoIW8odCkpdGhyb3cgRXJyb3IoIlN0cmluZyBpcyBub3QgYW4gU1ZHIHBhdGguIik7dD1uKHQpfWlmKCFBcnJheS5pc0FycmF5KHQpKXRocm93IEVycm9yKCJBcmd1bWVudCBzaG91bGQgYmUgYSBzdHJpbmcgb3IgYW4gYXJyYXkgb2YgcGF0aCBzZWdtZW50cy4iKTtpZih0PWkodCksISh0PWEodCkpLmxlbmd0aClyZXR1cm5bMCwwLDAsMF07Zm9yKHZhciBlPVsxLzAsMS8wLC0xLzAsLTEvMF0scj0wLHM9dC5sZW5ndGg7cjxzO3IrKylmb3IodmFyIGw9dFtyXS5zbGljZSgxKSxjPTA7YzxsLmxlbmd0aDtjKz0yKWxbYyswXTxlWzBdJiYoZVswXT1sW2MrMF0pLGxbYysxXTxlWzFdJiYoZVsxXT1sW2MrMV0pLGxbYyswXT5lWzJdJiYoZVsyXT1sW2MrMF0pLGxbYysxXT5lWzNdJiYoZVszXT1sW2MrMV0pO3JldHVybiBlfX0seyJhYnMtc3ZnLXBhdGgiOjY3LCJpcy1zdmctcGF0aCI6NDM5LCJub3JtYWxpemUtc3ZnLXBhdGgiOjU2OCwicGFyc2Utc3ZnLXBhdGgiOjQ3Mn1dLDU2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9W10sbz0wLHM9MCxsPTAsYz0wLHU9bnVsbCxmPW51bGwsaD0wLHA9MCxkPTAsbT10Lmxlbmd0aDtkPG07ZCsrKXt2YXIgZz10W2RdLHY9Z1swXTtzd2l0Y2godil7Y2FzZSJNIjpsPWdbMV0sYz1nWzJdO2JyZWFrO2Nhc2UiQSI6dmFyIHk9bih7cHg6aCxweTpwLGN4OmdbNl0sY3k6Z1s3XSxyeDpnWzFdLHJ5OmdbMl0seEF4aXNSb3RhdGlvbjpnWzNdLGxhcmdlQXJjRmxhZzpnWzRdLHN3ZWVwRmxhZzpnWzVdfSk7aWYoIXkubGVuZ3RoKWNvbnRpbnVlO2Zvcih2YXIgeCxiPTA7Yjx5Lmxlbmd0aDtiKyspeD15W2JdLGc9WyJDIix4LngxLHgueTEseC54Mix4LnkyLHgueCx4LnldLGI8eS5sZW5ndGgtMSYmci5wdXNoKGcpO2JyZWFrO2Nhc2UiUyI6dmFyIF89aCx3PXA7IkMiIT1lJiYiUyIhPWV8fChfKz1fLW8sdys9dy1zKSxnPVsiQyIsXyx3LGdbMV0sZ1syXSxnWzNdLGdbNF1dO2JyZWFrO2Nhc2UiVCI6IlEiPT1lfHwiVCI9PWU/KHU9MipoLXUsZj0yKnAtZik6KHU9aCxmPXApLGc9YShoLHAsdSxmLGdbMV0sZ1syXSk7YnJlYWs7Y2FzZSJRIjp1PWdbMV0sZj1nWzJdLGc9YShoLHAsZ1sxXSxnWzJdLGdbM10sZ1s0XSk7YnJlYWs7Y2FzZSJMIjpnPWkoaCxwLGdbMV0sZ1syXSk7YnJlYWs7Y2FzZSJIIjpnPWkoaCxwLGdbMV0scCk7YnJlYWs7Y2FzZSJWIjpnPWkoaCxwLGgsZ1sxXSk7YnJlYWs7Y2FzZSJaIjpnPWkoaCxwLGwsYyl9ZT12LGg9Z1tnLmxlbmd0aC0yXSxwPWdbZy5sZW5ndGgtMV0sZy5sZW5ndGg+ND8obz1nW2cubGVuZ3RoLTRdLHM9Z1tnLmxlbmd0aC0zXSk6KG89aCxzPXApLHIucHVzaChnKX1yZXR1cm4gcn07dmFyIG49dCgic3ZnLWFyYy10by1jdWJpYy1iZXppZXIiKTtmdW5jdGlvbiBpKHQsZSxyLG4pe3JldHVyblsiQyIsdCxlLHIsbixyLG5dfWZ1bmN0aW9uIGEodCxlLHIsbixpLGEpe3JldHVyblsiQyIsdC8zKzIvMypyLGUvMysyLzMqbixpLzMrMi8zKnIsYS8zKzIvMypuLGksYV19fSx7InN2Zy1hcmMtdG8tY3ViaWMtYmV6aWVyIjo1NjZ9XSw1Njk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCJzdmctcGF0aC1ib3VuZHMiKSxhPXQoInBhcnNlLXN2Zy1wYXRoIiksbz10KCJkcmF3LXN2Zy1wYXRoIikscz10KCJpcy1zdmctcGF0aCIpLGw9dCgiYml0bWFwLXNkZiIpLGM9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIiksdT1jLmdldENvbnRleHQoIjJkIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIXModCkpdGhyb3cgRXJyb3IoIkFyZ3VtZW50IHNob3VsZCBiZSB2YWxpZCBzdmcgcGF0aCBzdHJpbmciKTtlfHwoZT17fSk7dmFyIHIsZjtlLnNoYXBlPyhyPWUuc2hhcGVbMF0sZj1lLnNoYXBlWzFdKToocj1jLndpZHRoPWUud3x8ZS53aWR0aHx8MjAwLGY9Yy5oZWlnaHQ9ZS5ofHxlLmhlaWdodHx8MjAwKTt2YXIgaD1NYXRoLm1pbihyLGYpLHA9ZS5zdHJva2V8fDAsZD1lLnZpZXdib3h8fGUudmlld0JveHx8aSh0KSxtPVtyLyhkWzJdLWRbMF0pLGYvKGRbM10tZFsxXSldLGc9TWF0aC5taW4obVswXXx8MCxtWzFdfHwwKS8yO3UuZmlsbFN0eWxlPSJibGFjayIsdS5maWxsUmVjdCgwLDAscixmKSx1LmZpbGxTdHlsZT0id2hpdGUiLHAmJigibnVtYmVyIiE9dHlwZW9mIHAmJihwPTEpLHUuc3Ryb2tlU3R5bGU9cD4wPyJ3aGl0ZSI6ImJsYWNrIix1LmxpbmVXaWR0aD1NYXRoLmFicyhwKSk7aWYodS50cmFuc2xhdGUoLjUqciwuNSpmKSx1LnNjYWxlKGcsZyksZnVuY3Rpb24oKXtpZihudWxsIT1uKXJldHVybiBuO3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLmdldENvbnRleHQoIjJkIik7aWYodC5jYW52YXMud2lkdGg9dC5jYW52YXMuaGVpZ2h0PTEsIXdpbmRvdy5QYXRoMkQpcmV0dXJuIG49ITE7dmFyIGU9bmV3IFBhdGgyRCgiTTAsMGgxdjFoLTF2LTFaIik7dC5maWxsU3R5bGU9ImJsYWNrIix0LmZpbGwoZSk7dmFyIHI9dC5nZXRJbWFnZURhdGEoMCwwLDEsMSk7cmV0dXJuIG49ciYmci5kYXRhJiYyNTU9PT1yLmRhdGFbM119KCkpe3ZhciB2PW5ldyBQYXRoMkQodCk7dS5maWxsKHYpLHAmJnUuc3Ryb2tlKHYpfWVsc2V7dmFyIHk9YSh0KTtvKHUseSksdS5maWxsKCkscCYmdS5zdHJva2UoKX1yZXR1cm4gdS5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLGwodSx7Y3V0b2ZmOm51bGwhPWUuY3V0b2ZmP2UuY3V0b2ZmOi41LHJhZGl1czpudWxsIT1lLnJhZGl1cz9lLnJhZGl1czouNSpofSl9fSx7ImJpdG1hcC1zZGYiOjEwMiwiZHJhdy1zdmctcGF0aCI6MTc1LCJpcy1zdmctcGF0aCI6NDM5LCJwYXJzZS1zdmctcGF0aCI6NDcyLCJzdmctcGF0aC1ib3VuZHMiOjU2N31dLDU3MDpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihyKXsoZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uIHQoZSxyLGkpe2k9aXx8e307dmFyIG89YVtlXTtvfHwobz1hW2VdPXsiICI6e2RhdGE6bmV3IEZsb2F0MzJBcnJheSgwKSxzaGFwZTouMn19KTt2YXIgcz1vW3JdO2lmKCFzKWlmKHIubGVuZ3RoPD0xfHwhL1xkLy50ZXN0KHIpKXM9b1tyXT1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5jZWxscyxyPXQucG9zaXRpb25zLG49bmV3IEZsb2F0MzJBcnJheSg2KmUubGVuZ3RoKSxpPTAsYT0wLG89MDtvPGUubGVuZ3RoOysrbylmb3IodmFyIHM9ZVtvXSxsPTA7bDwzOysrbCl7dmFyIGM9cltzW2xdXTtuW2krK109Y1swXSxuW2krK109Y1sxXSsxLjQsYT1NYXRoLm1heChjWzBdLGEpfXJldHVybntkYXRhOm4sc2hhcGU6YX19KG4ocix7dHJpYW5nbGVzOiEwLGZvbnQ6ZSx0ZXh0QWxpZ246aS50ZXh0QWxpZ258fCJsZWZ0Iix0ZXh0QmFzZWxpbmU6ImFscGhhYmV0aWMiLHN0eWxldGFnczp7YnJlYWtsaW5lczohMCxib2xkczohMCxpdGFsaWNzOiEwLHN1YnNjcmlwdHM6ITAsc3VwZXJzY3JpcHRzOiEwfX0pKTtlbHNle2Zvcih2YXIgbD1yLnNwbGl0KC8oXGR8XHMpLyksYz1uZXcgQXJyYXkobC5sZW5ndGgpLHU9MCxmPTAsaD0wO2g8bC5sZW5ndGg7KytoKWNbaF09dChlLGxbaF0pLHUrPWNbaF0uZGF0YS5sZW5ndGgsZis9Y1toXS5zaGFwZSxoPjAmJihmKz0uMDIpO3ZhciBwPW5ldyBGbG9hdDMyQXJyYXkodSksZD0wLG09LS41KmY7Zm9yKGg9MDtoPGMubGVuZ3RoOysraCl7Zm9yKHZhciBnPWNbaF0uZGF0YSx2PTA7djxnLmxlbmd0aDt2Kz0yKXBbZCsrXT1nW3ZdK20scFtkKytdPWdbdisxXTttKz1jW2hdLnNoYXBlKy4wMn1zPW9bcl09e2RhdGE6cCxzaGFwZTpmfX1yZXR1cm4gc307dmFyIG49dCgidmVjdG9yaXplLXRleHQiKSxpPXdpbmRvd3x8ci5nbG9iYWx8fHt9LGE9aS5fX1RFWFRfQ0FDSEV8fHt9O2kuX19URVhUX0NBQ0hFPXt9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcyx0KCJfcHJvY2VzcyIpKX0se19wcm9jZXNzOjUwNCwidmVjdG9yaXplLXRleHQiOjU5Nn1dLDU3MTpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbihlLG4peyhmdW5jdGlvbigpe3ZhciBpPXQoInByb2Nlc3MvYnJvd3Nlci5qcyIpLm5leHRUaWNrLGE9RnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LG89QXJyYXkucHJvdG90eXBlLnNsaWNlLHM9e30sbD0wO2Z1bmN0aW9uIGModCxlKXt0aGlzLl9pZD10LHRoaXMuX2NsZWFyRm49ZX1yLnNldFRpbWVvdXQ9ZnVuY3Rpb24oKXtyZXR1cm4gbmV3IGMoYS5jYWxsKHNldFRpbWVvdXQsd2luZG93LGFyZ3VtZW50cyksY2xlYXJUaW1lb3V0KX0sci5zZXRJbnRlcnZhbD1mdW5jdGlvbigpe3JldHVybiBuZXcgYyhhLmNhbGwoc2V0SW50ZXJ2YWwsd2luZG93LGFyZ3VtZW50cyksY2xlYXJJbnRlcnZhbCl9LHIuY2xlYXJUaW1lb3V0PXIuY2xlYXJJbnRlcnZhbD1mdW5jdGlvbih0KXt0LmNsb3NlKCl9LGMucHJvdG90eXBlLnVucmVmPWMucHJvdG90eXBlLnJlZj1mdW5jdGlvbigpe30sYy5wcm90b3R5cGUuY2xvc2U9ZnVuY3Rpb24oKXt0aGlzLl9jbGVhckZuLmNhbGwod2luZG93LHRoaXMuX2lkKX0sci5lbnJvbGw9ZnVuY3Rpb24odCxlKXtjbGVhclRpbWVvdXQodC5faWRsZVRpbWVvdXRJZCksdC5faWRsZVRpbWVvdXQ9ZX0sci51bmVucm9sbD1mdW5jdGlvbih0KXtjbGVhclRpbWVvdXQodC5faWRsZVRpbWVvdXRJZCksdC5faWRsZVRpbWVvdXQ9LTF9LHIuX3VucmVmQWN0aXZlPXIuYWN0aXZlPWZ1bmN0aW9uKHQpe2NsZWFyVGltZW91dCh0Ll9pZGxlVGltZW91dElkKTt2YXIgZT10Ll9pZGxlVGltZW91dDtlPj0wJiYodC5faWRsZVRpbWVvdXRJZD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuX29uVGltZW91dCYmdC5fb25UaW1lb3V0KCl9KSxlKSl9LHIuc2V0SW1tZWRpYXRlPSJmdW5jdGlvbiI9PXR5cGVvZiBlP2U6ZnVuY3Rpb24odCl7dmFyIGU9bCsrLG49IShhcmd1bWVudHMubGVuZ3RoPDIpJiZvLmNhbGwoYXJndW1lbnRzLDEpO3JldHVybiBzW2VdPSEwLGkoKGZ1bmN0aW9uKCl7c1tlXSYmKG4/dC5hcHBseShudWxsLG4pOnQuY2FsbChudWxsKSxyLmNsZWFySW1tZWRpYXRlKGUpKX0pKSxlfSxyLmNsZWFySW1tZWRpYXRlPSJmdW5jdGlvbiI9PXR5cGVvZiBuP246ZnVuY3Rpb24odCl7ZGVsZXRlIHNbdF19fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcyx0KCJ0aW1lcnMiKS5zZXRJbW1lZGlhdGUsdCgidGltZXJzIikuY2xlYXJJbW1lZGlhdGUpfSx7InByb2Nlc3MvYnJvd3Nlci5qcyI6NTA0LHRpbWVyczo1NzF9XSw1NzI6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCl7dmFyIHI9L15ccysvLG49L1xzKyQvLGk9MCxhPXQucm91bmQsbz10Lm1pbixzPXQubWF4LGw9dC5yYW5kb207ZnVuY3Rpb24gYyhlLGwpe2lmKGw9bHx8e30sKGU9ZXx8IiIpaW5zdGFuY2VvZiBjKXJldHVybiBlO2lmKCEodGhpcyBpbnN0YW5jZW9mIGMpKXJldHVybiBuZXcgYyhlLGwpO3ZhciB1PWZ1bmN0aW9uKGUpe3ZhciBpPXtyOjAsZzowLGI6MH0sYT0xLGw9bnVsbCxjPW51bGwsdT1udWxsLGY9ITEsaD0hMTsic3RyaW5nIj09dHlwZW9mIGUmJihlPWZ1bmN0aW9uKHQpe3Q9dC5yZXBsYWNlKHIsIiIpLnJlcGxhY2UobiwiIikudG9Mb3dlckNhc2UoKTt2YXIgZSxpPSExO2lmKFNbdF0pdD1TW3RdLGk9ITA7ZWxzZSBpZigidHJhbnNwYXJlbnQiPT10KXJldHVybntyOjAsZzowLGI6MCxhOjAsZm9ybWF0OiJuYW1lIn07aWYoZT1qLnJnYi5leGVjKHQpKXJldHVybntyOmVbMV0sZzplWzJdLGI6ZVszXX07aWYoZT1qLnJnYmEuZXhlYyh0KSlyZXR1cm57cjplWzFdLGc6ZVsyXSxiOmVbM10sYTplWzRdfTtpZihlPWouaHNsLmV4ZWModCkpcmV0dXJue2g6ZVsxXSxzOmVbMl0sbDplWzNdfTtpZihlPWouaHNsYS5leGVjKHQpKXJldHVybntoOmVbMV0sczplWzJdLGw6ZVszXSxhOmVbNF19O2lmKGU9ai5oc3YuZXhlYyh0KSlyZXR1cm57aDplWzFdLHM6ZVsyXSx2OmVbM119O2lmKGU9ai5oc3ZhLmV4ZWModCkpcmV0dXJue2g6ZVsxXSxzOmVbMl0sdjplWzNdLGE6ZVs0XX07aWYoZT1qLmhleDguZXhlYyh0KSlyZXR1cm57cjpJKGVbMV0pLGc6SShlWzJdKSxiOkkoZVszXSksYTpSKGVbNF0pLGZvcm1hdDppPyJuYW1lIjoiaGV4OCJ9O2lmKGU9ai5oZXg2LmV4ZWModCkpcmV0dXJue3I6SShlWzFdKSxnOkkoZVsyXSksYjpJKGVbM10pLGZvcm1hdDppPyJuYW1lIjoiaGV4In07aWYoZT1qLmhleDQuZXhlYyh0KSlyZXR1cm57cjpJKGVbMV0rIiIrZVsxXSksZzpJKGVbMl0rIiIrZVsyXSksYjpJKGVbM10rIiIrZVszXSksYTpSKGVbNF0rIiIrZVs0XSksZm9ybWF0Omk/Im5hbWUiOiJoZXg4In07aWYoZT1qLmhleDMuZXhlYyh0KSlyZXR1cm57cjpJKGVbMV0rIiIrZVsxXSksZzpJKGVbMl0rIiIrZVsyXSksYjpJKGVbM10rIiIrZVszXSksZm9ybWF0Omk/Im5hbWUiOiJoZXgifTtyZXR1cm4hMX0oZSkpOyJvYmplY3QiPT10eXBlb2YgZSYmKFUoZS5yKSYmVShlLmcpJiZVKGUuYik/KHA9ZS5yLGQ9ZS5nLG09ZS5iLGk9e3I6MjU1KkMocCwyNTUpLGc6MjU1KkMoZCwyNTUpLGI6MjU1KkMobSwyNTUpfSxmPSEwLGg9IiUiPT09U3RyaW5nKGUucikuc3Vic3RyKC0xKT8icHJnYiI6InJnYiIpOlUoZS5oKSYmVShlLnMpJiZVKGUudik/KGw9eihlLnMpLGM9eihlLnYpLGk9ZnVuY3Rpb24oZSxyLG4pe2U9NipDKGUsMzYwKSxyPUMociwxMDApLG49QyhuLDEwMCk7dmFyIGk9dC5mbG9vcihlKSxhPWUtaSxvPW4qKDEtcikscz1uKigxLWEqciksbD1uKigxLSgxLWEpKnIpLGM9aSU2O3JldHVybntyOjI1NSpbbixzLG8sbyxsLG5dW2NdLGc6MjU1KltsLG4sbixzLG8sb11bY10sYjoyNTUqW28sbyxsLG4sbixzXVtjXX19KGUuaCxsLGMpLGY9ITAsaD0iaHN2Iik6VShlLmgpJiZVKGUucykmJlUoZS5sKSYmKGw9eihlLnMpLHU9eihlLmwpLGk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYTtmdW5jdGlvbiBvKHQsZSxyKXtyZXR1cm4gcjwwJiYocis9MSkscj4xJiYoci09MSkscjwxLzY/dCs2KihlLXQpKnI6cjwuNT9lOnI8Mi8zP3QrKGUtdCkqKDIvMy1yKSo2OnR9aWYodD1DKHQsMzYwKSxlPUMoZSwxMDApLHI9QyhyLDEwMCksMD09PWUpbj1pPWE9cjtlbHNle3ZhciBzPXI8LjU/ciooMStlKTpyK2UtciplLGw9MipyLXM7bj1vKGwscyx0KzEvMyksaT1vKGwscyx0KSxhPW8obCxzLHQtMS8zKX1yZXR1cm57cjoyNTUqbixnOjI1NSppLGI6MjU1KmF9fShlLmgsbCx1KSxmPSEwLGg9ImhzbCIpLGUuaGFzT3duUHJvcGVydHkoImEiKSYmKGE9ZS5hKSk7dmFyIHAsZCxtO3JldHVybiBhPUwoYSkse29rOmYsZm9ybWF0OmUuZm9ybWF0fHxoLHI6bygyNTUscyhpLnIsMCkpLGc6bygyNTUscyhpLmcsMCkpLGI6bygyNTUscyhpLmIsMCkpLGE6YX19KGUpO3RoaXMuX29yaWdpbmFsSW5wdXQ9ZSx0aGlzLl9yPXUucix0aGlzLl9nPXUuZyx0aGlzLl9iPXUuYix0aGlzLl9hPXUuYSx0aGlzLl9yb3VuZEE9YSgxMDAqdGhpcy5fYSkvMTAwLHRoaXMuX2Zvcm1hdD1sLmZvcm1hdHx8dS5mb3JtYXQsdGhpcy5fZ3JhZGllbnRUeXBlPWwuZ3JhZGllbnRUeXBlLHRoaXMuX3I8MSYmKHRoaXMuX3I9YSh0aGlzLl9yKSksdGhpcy5fZzwxJiYodGhpcy5fZz1hKHRoaXMuX2cpKSx0aGlzLl9iPDEmJih0aGlzLl9iPWEodGhpcy5fYikpLHRoaXMuX29rPXUub2ssdGhpcy5fdGNfaWQ9aSsrfWZ1bmN0aW9uIHUodCxlLHIpe3Q9Qyh0LDI1NSksZT1DKGUsMjU1KSxyPUMociwyNTUpO3ZhciBuLGksYT1zKHQsZSxyKSxsPW8odCxlLHIpLGM9KGErbCkvMjtpZihhPT1sKW49aT0wO2Vsc2V7dmFyIHU9YS1sO3N3aXRjaChpPWM+LjU/dS8oMi1hLWwpOnUvKGErbCksYSl7Y2FzZSB0Om49KGUtcikvdSsoZTxyPzY6MCk7YnJlYWs7Y2FzZSBlOm49KHItdCkvdSsyO2JyZWFrO2Nhc2UgcjpuPSh0LWUpL3UrNH1uLz02fXJldHVybntoOm4sczppLGw6Y319ZnVuY3Rpb24gZih0LGUscil7dD1DKHQsMjU1KSxlPUMoZSwyNTUpLHI9QyhyLDI1NSk7dmFyIG4saSxhPXModCxlLHIpLGw9byh0LGUsciksYz1hLHU9YS1sO2lmKGk9MD09PWE/MDp1L2EsYT09bCluPTA7ZWxzZXtzd2l0Y2goYSl7Y2FzZSB0Om49KGUtcikvdSsoZTxyPzY6MCk7YnJlYWs7Y2FzZSBlOm49KHItdCkvdSsyO2JyZWFrO2Nhc2UgcjpuPSh0LWUpL3UrNH1uLz02fXJldHVybntoOm4sczppLHY6Y319ZnVuY3Rpb24gaCh0LGUscixuKXt2YXIgaT1bTyhhKHQpLnRvU3RyaW5nKDE2KSksTyhhKGUpLnRvU3RyaW5nKDE2KSksTyhhKHIpLnRvU3RyaW5nKDE2KSldO3JldHVybiBuJiZpWzBdLmNoYXJBdCgwKT09aVswXS5jaGFyQXQoMSkmJmlbMV0uY2hhckF0KDApPT1pWzFdLmNoYXJBdCgxKSYmaVsyXS5jaGFyQXQoMCk9PWlbMl0uY2hhckF0KDEpP2lbMF0uY2hhckF0KDApK2lbMV0uY2hhckF0KDApK2lbMl0uY2hhckF0KDApOmkuam9pbigiIil9ZnVuY3Rpb24gcCh0LGUscixuKXtyZXR1cm5bTyhEKG4pKSxPKGEodCkudG9TdHJpbmcoMTYpKSxPKGEoZSkudG9TdHJpbmcoMTYpKSxPKGEocikudG9TdHJpbmcoMTYpKV0uam9pbigiIil9ZnVuY3Rpb24gZCh0LGUpe2U9MD09PWU/MDplfHwxMDt2YXIgcj1jKHQpLnRvSHNsKCk7cmV0dXJuIHIucy09ZS8xMDAsci5zPVAoci5zKSxjKHIpfWZ1bmN0aW9uIG0odCxlKXtlPTA9PT1lPzA6ZXx8MTA7dmFyIHI9Yyh0KS50b0hzbCgpO3JldHVybiByLnMrPWUvMTAwLHIucz1QKHIucyksYyhyKX1mdW5jdGlvbiBnKHQpe3JldHVybiBjKHQpLmRlc2F0dXJhdGUoMTAwKX1mdW5jdGlvbiB2KHQsZSl7ZT0wPT09ZT8wOmV8fDEwO3ZhciByPWModCkudG9Ic2woKTtyZXR1cm4gci5sKz1lLzEwMCxyLmw9UChyLmwpLGMocil9ZnVuY3Rpb24geSh0LGUpe2U9MD09PWU/MDplfHwxMDt2YXIgcj1jKHQpLnRvUmdiKCk7cmV0dXJuIHIucj1zKDAsbygyNTUsci5yLWEoLWUvMTAwKjI1NSkpKSxyLmc9cygwLG8oMjU1LHIuZy1hKC1lLzEwMCoyNTUpKSksci5iPXMoMCxvKDI1NSxyLmItYSgtZS8xMDAqMjU1KSkpLGMocil9ZnVuY3Rpb24geCh0LGUpe2U9MD09PWU/MDplfHwxMDt2YXIgcj1jKHQpLnRvSHNsKCk7cmV0dXJuIHIubC09ZS8xMDAsci5sPVAoci5sKSxjKHIpfWZ1bmN0aW9uIGIodCxlKXt2YXIgcj1jKHQpLnRvSHNsKCksbj0oci5oK2UpJTM2MDtyZXR1cm4gci5oPW48MD8zNjArbjpuLGMocil9ZnVuY3Rpb24gXyh0KXt2YXIgZT1jKHQpLnRvSHNsKCk7cmV0dXJuIGUuaD0oZS5oKzE4MCklMzYwLGMoZSl9ZnVuY3Rpb24gdyh0KXt2YXIgZT1jKHQpLnRvSHNsKCkscj1lLmg7cmV0dXJuW2ModCksYyh7aDoocisxMjApJTM2MCxzOmUucyxsOmUubH0pLGMoe2g6KHIrMjQwKSUzNjAsczplLnMsbDplLmx9KV19ZnVuY3Rpb24gVCh0KXt2YXIgZT1jKHQpLnRvSHNsKCkscj1lLmg7cmV0dXJuW2ModCksYyh7aDoocis5MCklMzYwLHM6ZS5zLGw6ZS5sfSksYyh7aDoocisxODApJTM2MCxzOmUucyxsOmUubH0pLGMoe2g6KHIrMjcwKSUzNjAsczplLnMsbDplLmx9KV19ZnVuY3Rpb24gayh0KXt2YXIgZT1jKHQpLnRvSHNsKCkscj1lLmg7cmV0dXJuW2ModCksYyh7aDoocis3MiklMzYwLHM6ZS5zLGw6ZS5sfSksYyh7aDoocisyMTYpJTM2MCxzOmUucyxsOmUubH0pXX1mdW5jdGlvbiBBKHQsZSxyKXtlPWV8fDYscj1yfHwzMDt2YXIgbj1jKHQpLnRvSHNsKCksaT0zNjAvcixhPVtjKHQpXTtmb3Iobi5oPShuLmgtKGkqZT4+MSkrNzIwKSUzNjA7LS1lOyluLmg9KG4uaCtpKSUzNjAsYS5wdXNoKGMobikpO3JldHVybiBhfWZ1bmN0aW9uIE0odCxlKXtlPWV8fDY7Zm9yKHZhciByPWModCkudG9Ic3YoKSxuPXIuaCxpPXIucyxhPXIudixvPVtdLHM9MS9lO2UtLTspby5wdXNoKGMoe2g6bixzOmksdjphfSkpLGE9KGErcyklMTtyZXR1cm4gb31jLnByb3RvdHlwZT17aXNEYXJrOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0QnJpZ2h0bmVzcygpPDEyOH0saXNMaWdodDpmdW5jdGlvbigpe3JldHVybiF0aGlzLmlzRGFyaygpfSxpc1ZhbGlkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29rfSxnZXRPcmlnaW5hbElucHV0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWdpbmFsSW5wdXR9LGdldEZvcm1hdDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9mb3JtYXR9LGdldEFscGhhOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2F9LGdldEJyaWdodG5lc3M6ZnVuY3Rpb24oKXt2YXIgdD10aGlzLnRvUmdiKCk7cmV0dXJuKDI5OSp0LnIrNTg3KnQuZysxMTQqdC5iKS8xZTN9LGdldEx1bWluYW5jZTpmdW5jdGlvbigpe3ZhciBlLHIsbixpPXRoaXMudG9SZ2IoKTtyZXR1cm4gZT1pLnIvMjU1LHI9aS5nLzI1NSxuPWkuYi8yNTUsLjIxMjYqKGU8PS4wMzkyOD9lLzEyLjkyOnQucG93KChlKy4wNTUpLzEuMDU1LDIuNCkpKy43MTUyKihyPD0uMDM5Mjg/ci8xMi45Mjp0LnBvdygocisuMDU1KS8xLjA1NSwyLjQpKSsuMDcyMioobjw9LjAzOTI4P24vMTIuOTI6dC5wb3coKG4rLjA1NSkvMS4wNTUsMi40KSl9LHNldEFscGhhOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9hPUwodCksdGhpcy5fcm91bmRBPWEoMTAwKnRoaXMuX2EpLzEwMCx0aGlzfSx0b0hzdjpmdW5jdGlvbigpe3ZhciB0PWYodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IpO3JldHVybntoOjM2MCp0Lmgsczp0LnMsdjp0LnYsYTp0aGlzLl9hfX0sdG9Ic3ZTdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD1mKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKSxlPWEoMzYwKnQuaCkscj1hKDEwMCp0LnMpLG49YSgxMDAqdC52KTtyZXR1cm4gMT09dGhpcy5fYT8iaHN2KCIrZSsiLCAiK3IrIiUsICIrbisiJSkiOiJoc3ZhKCIrZSsiLCAiK3IrIiUsICIrbisiJSwgIit0aGlzLl9yb3VuZEErIikifSx0b0hzbDpmdW5jdGlvbigpe3ZhciB0PXUodGhpcy5fcix0aGlzLl9nLHRoaXMuX2IpO3JldHVybntoOjM2MCp0Lmgsczp0LnMsbDp0LmwsYTp0aGlzLl9hfX0sdG9Ic2xTdHJpbmc6ZnVuY3Rpb24oKXt2YXIgdD11KHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iKSxlPWEoMzYwKnQuaCkscj1hKDEwMCp0LnMpLG49YSgxMDAqdC5sKTtyZXR1cm4gMT09dGhpcy5fYT8iaHNsKCIrZSsiLCAiK3IrIiUsICIrbisiJSkiOiJoc2xhKCIrZSsiLCAiK3IrIiUsICIrbisiJSwgIit0aGlzLl9yb3VuZEErIikifSx0b0hleDpmdW5jdGlvbih0KXtyZXR1cm4gaCh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYix0KX0sdG9IZXhTdHJpbmc6ZnVuY3Rpb24odCl7cmV0dXJuIiMiK3RoaXMudG9IZXgodCl9LHRvSGV4ODpmdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz1bTyhhKHQpLnRvU3RyaW5nKDE2KSksTyhhKGUpLnRvU3RyaW5nKDE2KSksTyhhKHIpLnRvU3RyaW5nKDE2KSksTyhEKG4pKV07aWYoaSYmb1swXS5jaGFyQXQoMCk9PW9bMF0uY2hhckF0KDEpJiZvWzFdLmNoYXJBdCgwKT09b1sxXS5jaGFyQXQoMSkmJm9bMl0uY2hhckF0KDApPT1vWzJdLmNoYXJBdCgxKSYmb1szXS5jaGFyQXQoMCk9PW9bM10uY2hhckF0KDEpKXJldHVybiBvWzBdLmNoYXJBdCgwKStvWzFdLmNoYXJBdCgwKStvWzJdLmNoYXJBdCgwKStvWzNdLmNoYXJBdCgwKTtyZXR1cm4gby5qb2luKCIiKX0odGhpcy5fcix0aGlzLl9nLHRoaXMuX2IsdGhpcy5fYSx0KX0sdG9IZXg4U3RyaW5nOmZ1bmN0aW9uKHQpe3JldHVybiIjIit0aGlzLnRvSGV4OCh0KX0sdG9SZ2I6ZnVuY3Rpb24oKXtyZXR1cm57cjphKHRoaXMuX3IpLGc6YSh0aGlzLl9nKSxiOmEodGhpcy5fYiksYTp0aGlzLl9hfX0sdG9SZ2JTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gMT09dGhpcy5fYT8icmdiKCIrYSh0aGlzLl9yKSsiLCAiK2EodGhpcy5fZykrIiwgIithKHRoaXMuX2IpKyIpIjoicmdiYSgiK2EodGhpcy5fcikrIiwgIithKHRoaXMuX2cpKyIsICIrYSh0aGlzLl9iKSsiLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvUGVyY2VudGFnZVJnYjpmdW5jdGlvbigpe3JldHVybntyOmEoMTAwKkModGhpcy5fciwyNTUpKSsiJSIsZzphKDEwMCpDKHRoaXMuX2csMjU1KSkrIiUiLGI6YSgxMDAqQyh0aGlzLl9iLDI1NSkpKyIlIixhOnRoaXMuX2F9fSx0b1BlcmNlbnRhZ2VSZ2JTdHJpbmc6ZnVuY3Rpb24oKXtyZXR1cm4gMT09dGhpcy5fYT8icmdiKCIrYSgxMDAqQyh0aGlzLl9yLDI1NSkpKyIlLCAiK2EoMTAwKkModGhpcy5fZywyNTUpKSsiJSwgIithKDEwMCpDKHRoaXMuX2IsMjU1KSkrIiUpIjoicmdiYSgiK2EoMTAwKkModGhpcy5fciwyNTUpKSsiJSwgIithKDEwMCpDKHRoaXMuX2csMjU1KSkrIiUsICIrYSgxMDAqQyh0aGlzLl9iLDI1NSkpKyIlLCAiK3RoaXMuX3JvdW5kQSsiKSJ9LHRvTmFtZTpmdW5jdGlvbigpe3JldHVybiAwPT09dGhpcy5fYT8idHJhbnNwYXJlbnQiOiEodGhpcy5fYTwxKSYmKEVbaCh0aGlzLl9yLHRoaXMuX2csdGhpcy5fYiwhMCldfHwhMSl9LHRvRmlsdGVyOmZ1bmN0aW9uKHQpe3ZhciBlPSIjIitwKHRoaXMuX3IsdGhpcy5fZyx0aGlzLl9iLHRoaXMuX2EpLHI9ZSxuPXRoaXMuX2dyYWRpZW50VHlwZT8iR3JhZGllbnRUeXBlID0gMSwgIjoiIjtpZih0KXt2YXIgaT1jKHQpO3I9IiMiK3AoaS5fcixpLl9nLGkuX2IsaS5fYSl9cmV0dXJuInByb2dpZDpEWEltYWdlVHJhbnNmb3JtLk1pY3Jvc29mdC5ncmFkaWVudCgiK24rInN0YXJ0Q29sb3JzdHI9IitlKyIsZW5kQ29sb3JzdHI9IityKyIpIn0sdG9TdHJpbmc6ZnVuY3Rpb24odCl7dmFyIGU9ISF0O3Q9dHx8dGhpcy5fZm9ybWF0O3ZhciByPSExLG49dGhpcy5fYTwxJiZ0aGlzLl9hPj0wO3JldHVybiBlfHwhbnx8ImhleCIhPT10JiYiaGV4NiIhPT10JiYiaGV4MyIhPT10JiYiaGV4NCIhPT10JiYiaGV4OCIhPT10JiYibmFtZSIhPT10PygicmdiIj09PXQmJihyPXRoaXMudG9SZ2JTdHJpbmcoKSksInByZ2IiPT09dCYmKHI9dGhpcy50b1BlcmNlbnRhZ2VSZ2JTdHJpbmcoKSksImhleCIhPT10JiYiaGV4NiIhPT10fHwocj10aGlzLnRvSGV4U3RyaW5nKCkpLCJoZXgzIj09PXQmJihyPXRoaXMudG9IZXhTdHJpbmcoITApKSwiaGV4NCI9PT10JiYocj10aGlzLnRvSGV4OFN0cmluZyghMCkpLCJoZXg4Ij09PXQmJihyPXRoaXMudG9IZXg4U3RyaW5nKCkpLCJuYW1lIj09PXQmJihyPXRoaXMudG9OYW1lKCkpLCJoc2wiPT09dCYmKHI9dGhpcy50b0hzbFN0cmluZygpKSwiaHN2Ij09PXQmJihyPXRoaXMudG9Ic3ZTdHJpbmcoKSkscnx8dGhpcy50b0hleFN0cmluZygpKToibmFtZSI9PT10JiYwPT09dGhpcy5fYT90aGlzLnRvTmFtZSgpOnRoaXMudG9SZ2JTdHJpbmcoKX0sY2xvbmU6ZnVuY3Rpb24oKXtyZXR1cm4gYyh0aGlzLnRvU3RyaW5nKCkpfSxfYXBwbHlNb2RpZmljYXRpb246ZnVuY3Rpb24odCxlKXt2YXIgcj10LmFwcGx5KG51bGwsW3RoaXNdLmNvbmNhdChbXS5zbGljZS5jYWxsKGUpKSk7cmV0dXJuIHRoaXMuX3I9ci5fcix0aGlzLl9nPXIuX2csdGhpcy5fYj1yLl9iLHRoaXMuc2V0QWxwaGEoci5fYSksdGhpc30sbGlnaHRlbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbih2LGFyZ3VtZW50cyl9LGJyaWdodGVuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKHksYXJndW1lbnRzKX0sZGFya2VuOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKHgsYXJndW1lbnRzKX0sZGVzYXR1cmF0ZTpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihkLGFyZ3VtZW50cyl9LHNhdHVyYXRlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKG0sYXJndW1lbnRzKX0sZ3JleXNjYWxlOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5TW9kaWZpY2F0aW9uKGcsYXJndW1lbnRzKX0sc3BpbjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcHBseU1vZGlmaWNhdGlvbihiLGFyZ3VtZW50cyl9LF9hcHBseUNvbWJpbmF0aW9uOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuYXBwbHkobnVsbCxbdGhpc10uY29uY2F0KFtdLnNsaWNlLmNhbGwoZSkpKX0sYW5hbG9nb3VzOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oQSxhcmd1bWVudHMpfSxjb21wbGVtZW50OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oXyxhcmd1bWVudHMpfSxtb25vY2hyb21hdGljOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24oTSxhcmd1bWVudHMpfSxzcGxpdGNvbXBsZW1lbnQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihrLGFyZ3VtZW50cyl9LHRyaWFkOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2FwcGx5Q29tYmluYXRpb24odyxhcmd1bWVudHMpfSx0ZXRyYWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fYXBwbHlDb21iaW5hdGlvbihULGFyZ3VtZW50cyl9fSxjLmZyb21SYXRpbz1mdW5jdGlvbih0LGUpe2lmKCJvYmplY3QiPT10eXBlb2YgdCl7dmFyIHI9e307Zm9yKHZhciBuIGluIHQpdC5oYXNPd25Qcm9wZXJ0eShuKSYmKHJbbl09ImEiPT09bj90W25dOnoodFtuXSkpO3Q9cn1yZXR1cm4gYyh0LGUpfSxjLmVxdWFscz1mdW5jdGlvbih0LGUpe3JldHVybiEoIXR8fCFlKSYmYyh0KS50b1JnYlN0cmluZygpPT1jKGUpLnRvUmdiU3RyaW5nKCl9LGMucmFuZG9tPWZ1bmN0aW9uKCl7cmV0dXJuIGMuZnJvbVJhdGlvKHtyOmwoKSxnOmwoKSxiOmwoKX0pfSxjLm1peD1mdW5jdGlvbih0LGUscil7cj0wPT09cj8wOnJ8fDUwO3ZhciBuPWModCkudG9SZ2IoKSxpPWMoZSkudG9SZ2IoKSxhPXIvMTAwO3JldHVybiBjKHtyOihpLnItbi5yKSphK24ucixnOihpLmctbi5nKSphK24uZyxiOihpLmItbi5iKSphK24uYixhOihpLmEtbi5hKSphK24uYX0pfSxjLnJlYWRhYmlsaXR5PWZ1bmN0aW9uKGUscil7dmFyIG49YyhlKSxpPWMocik7cmV0dXJuKHQubWF4KG4uZ2V0THVtaW5hbmNlKCksaS5nZXRMdW1pbmFuY2UoKSkrLjA1KS8odC5taW4obi5nZXRMdW1pbmFuY2UoKSxpLmdldEx1bWluYW5jZSgpKSsuMDUpfSxjLmlzUmVhZGFibGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT1jLnJlYWRhYmlsaXR5KHQsZSk7c3dpdGNoKGk9ITEsKG49ZnVuY3Rpb24odCl7dmFyIGUscjtlPSgodD10fHx7bGV2ZWw6IkFBIixzaXplOiJzbWFsbCJ9KS5sZXZlbHx8IkFBIikudG9VcHBlckNhc2UoKSxyPSh0LnNpemV8fCJzbWFsbCIpLnRvTG93ZXJDYXNlKCksIkFBIiE9PWUmJiJBQUEiIT09ZSYmKGU9IkFBIik7InNtYWxsIiE9PXImJiJsYXJnZSIhPT1yJiYocj0ic21hbGwiKTtyZXR1cm57bGV2ZWw6ZSxzaXplOnJ9fShyKSkubGV2ZWwrbi5zaXplKXtjYXNlIkFBc21hbGwiOmNhc2UiQUFBbGFyZ2UiOmk9YT49NC41O2JyZWFrO2Nhc2UiQUFsYXJnZSI6aT1hPj0zO2JyZWFrO2Nhc2UiQUFBc21hbGwiOmk9YT49N31yZXR1cm4gaX0sYy5tb3N0UmVhZGFibGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYSxvLHM9bnVsbCxsPTA7aT0ocj1yfHx7fSkuaW5jbHVkZUZhbGxiYWNrQ29sb3JzLGE9ci5sZXZlbCxvPXIuc2l6ZTtmb3IodmFyIHU9MDt1PGUubGVuZ3RoO3UrKykobj1jLnJlYWRhYmlsaXR5KHQsZVt1XSkpPmwmJihsPW4scz1jKGVbdV0pKTtyZXR1cm4gYy5pc1JlYWRhYmxlKHQscyx7bGV2ZWw6YSxzaXplOm99KXx8IWk/czooci5pbmNsdWRlRmFsbGJhY2tDb2xvcnM9ITEsYy5tb3N0UmVhZGFibGUodCxbIiNmZmYiLCIjMDAwIl0scikpfTt2YXIgUz1jLm5hbWVzPXthbGljZWJsdWU6ImYwZjhmZiIsYW50aXF1ZXdoaXRlOiJmYWViZDciLGFxdWE6IjBmZiIsYXF1YW1hcmluZToiN2ZmZmQ0IixhenVyZToiZjBmZmZmIixiZWlnZToiZjVmNWRjIixiaXNxdWU6ImZmZTRjNCIsYmxhY2s6IjAwMCIsYmxhbmNoZWRhbG1vbmQ6ImZmZWJjZCIsYmx1ZToiMDBmIixibHVldmlvbGV0OiI4YTJiZTIiLGJyb3duOiJhNTJhMmEiLGJ1cmx5d29vZDoiZGViODg3IixidXJudHNpZW5uYToiZWE3ZTVkIixjYWRldGJsdWU6IjVmOWVhMCIsY2hhcnRyZXVzZToiN2ZmZjAwIixjaG9jb2xhdGU6ImQyNjkxZSIsY29yYWw6ImZmN2Y1MCIsY29ybmZsb3dlcmJsdWU6IjY0OTVlZCIsY29ybnNpbGs6ImZmZjhkYyIsY3JpbXNvbjoiZGMxNDNjIixjeWFuOiIwZmYiLGRhcmtibHVlOiIwMDAwOGIiLGRhcmtjeWFuOiIwMDhiOGIiLGRhcmtnb2xkZW5yb2Q6ImI4ODYwYiIsZGFya2dyYXk6ImE5YTlhOSIsZGFya2dyZWVuOiIwMDY0MDAiLGRhcmtncmV5OiJhOWE5YTkiLGRhcmtraGFraToiYmRiNzZiIixkYXJrbWFnZW50YToiOGIwMDhiIixkYXJrb2xpdmVncmVlbjoiNTU2YjJmIixkYXJrb3JhbmdlOiJmZjhjMDAiLGRhcmtvcmNoaWQ6Ijk5MzJjYyIsZGFya3JlZDoiOGIwMDAwIixkYXJrc2FsbW9uOiJlOTk2N2EiLGRhcmtzZWFncmVlbjoiOGZiYzhmIixkYXJrc2xhdGVibHVlOiI0ODNkOGIiLGRhcmtzbGF0ZWdyYXk6IjJmNGY0ZiIsZGFya3NsYXRlZ3JleToiMmY0ZjRmIixkYXJrdHVycXVvaXNlOiIwMGNlZDEiLGRhcmt2aW9sZXQ6Ijk0MDBkMyIsZGVlcHBpbms6ImZmMTQ5MyIsZGVlcHNreWJsdWU6IjAwYmZmZiIsZGltZ3JheToiNjk2OTY5IixkaW1ncmV5OiI2OTY5NjkiLGRvZGdlcmJsdWU6IjFlOTBmZiIsZmlyZWJyaWNrOiJiMjIyMjIiLGZsb3JhbHdoaXRlOiJmZmZhZjAiLGZvcmVzdGdyZWVuOiIyMjhiMjIiLGZ1Y2hzaWE6ImYwZiIsZ2FpbnNib3JvOiJkY2RjZGMiLGdob3N0d2hpdGU6ImY4ZjhmZiIsZ29sZDoiZmZkNzAwIixnb2xkZW5yb2Q6ImRhYTUyMCIsZ3JheToiODA4MDgwIixncmVlbjoiMDA4MDAwIixncmVlbnllbGxvdzoiYWRmZjJmIixncmV5OiI4MDgwODAiLGhvbmV5ZGV3OiJmMGZmZjAiLGhvdHBpbms6ImZmNjliNCIsaW5kaWFucmVkOiJjZDVjNWMiLGluZGlnbzoiNGIwMDgyIixpdm9yeToiZmZmZmYwIixraGFraToiZjBlNjhjIixsYXZlbmRlcjoiZTZlNmZhIixsYXZlbmRlcmJsdXNoOiJmZmYwZjUiLGxhd25ncmVlbjoiN2NmYzAwIixsZW1vbmNoaWZmb246ImZmZmFjZCIsbGlnaHRibHVlOiJhZGQ4ZTYiLGxpZ2h0Y29yYWw6ImYwODA4MCIsbGlnaHRjeWFuOiJlMGZmZmYiLGxpZ2h0Z29sZGVucm9keWVsbG93OiJmYWZhZDIiLGxpZ2h0Z3JheToiZDNkM2QzIixsaWdodGdyZWVuOiI5MGVlOTAiLGxpZ2h0Z3JleToiZDNkM2QzIixsaWdodHBpbms6ImZmYjZjMSIsbGlnaHRzYWxtb246ImZmYTA3YSIsbGlnaHRzZWFncmVlbjoiMjBiMmFhIixsaWdodHNreWJsdWU6Ijg3Y2VmYSIsbGlnaHRzbGF0ZWdyYXk6Ijc4OSIsbGlnaHRzbGF0ZWdyZXk6Ijc4OSIsbGlnaHRzdGVlbGJsdWU6ImIwYzRkZSIsbGlnaHR5ZWxsb3c6ImZmZmZlMCIsbGltZToiMGYwIixsaW1lZ3JlZW46IjMyY2QzMiIsbGluZW46ImZhZjBlNiIsbWFnZW50YToiZjBmIixtYXJvb246IjgwMDAwMCIsbWVkaXVtYXF1YW1hcmluZToiNjZjZGFhIixtZWRpdW1ibHVlOiIwMDAwY2QiLG1lZGl1bW9yY2hpZDoiYmE1NWQzIixtZWRpdW1wdXJwbGU6IjkzNzBkYiIsbWVkaXVtc2VhZ3JlZW46IjNjYjM3MSIsbWVkaXVtc2xhdGVibHVlOiI3YjY4ZWUiLG1lZGl1bXNwcmluZ2dyZWVuOiIwMGZhOWEiLG1lZGl1bXR1cnF1b2lzZToiNDhkMWNjIixtZWRpdW12aW9sZXRyZWQ6ImM3MTU4NSIsbWlkbmlnaHRibHVlOiIxOTE5NzAiLG1pbnRjcmVhbToiZjVmZmZhIixtaXN0eXJvc2U6ImZmZTRlMSIsbW9jY2FzaW46ImZmZTRiNSIsbmF2YWpvd2hpdGU6ImZmZGVhZCIsbmF2eToiMDAwMDgwIixvbGRsYWNlOiJmZGY1ZTYiLG9saXZlOiI4MDgwMDAiLG9saXZlZHJhYjoiNmI4ZTIzIixvcmFuZ2U6ImZmYTUwMCIsb3JhbmdlcmVkOiJmZjQ1MDAiLG9yY2hpZDoiZGE3MGQ2IixwYWxlZ29sZGVucm9kOiJlZWU4YWEiLHBhbGVncmVlbjoiOThmYjk4IixwYWxldHVycXVvaXNlOiJhZmVlZWUiLHBhbGV2aW9sZXRyZWQ6ImRiNzA5MyIscGFwYXlhd2hpcDoiZmZlZmQ1IixwZWFjaHB1ZmY6ImZmZGFiOSIscGVydToiY2Q4NTNmIixwaW5rOiJmZmMwY2IiLHBsdW06ImRkYTBkZCIscG93ZGVyYmx1ZToiYjBlMGU2IixwdXJwbGU6IjgwMDA4MCIscmViZWNjYXB1cnBsZToiNjYzMzk5IixyZWQ6ImYwMCIscm9zeWJyb3duOiJiYzhmOGYiLHJveWFsYmx1ZToiNDE2OWUxIixzYWRkbGVicm93bjoiOGI0NTEzIixzYWxtb246ImZhODA3MiIsc2FuZHlicm93bjoiZjRhNDYwIixzZWFncmVlbjoiMmU4YjU3IixzZWFzaGVsbDoiZmZmNWVlIixzaWVubmE6ImEwNTIyZCIsc2lsdmVyOiJjMGMwYzAiLHNreWJsdWU6Ijg3Y2VlYiIsc2xhdGVibHVlOiI2YTVhY2QiLHNsYXRlZ3JheToiNzA4MDkwIixzbGF0ZWdyZXk6IjcwODA5MCIsc25vdzoiZmZmYWZhIixzcHJpbmdncmVlbjoiMDBmZjdmIixzdGVlbGJsdWU6IjQ2ODJiNCIsdGFuOiJkMmI0OGMiLHRlYWw6IjAwODA4MCIsdGhpc3RsZToiZDhiZmQ4Iix0b21hdG86ImZmNjM0NyIsdHVycXVvaXNlOiI0MGUwZDAiLHZpb2xldDoiZWU4MmVlIix3aGVhdDoiZjVkZWIzIix3aGl0ZToiZmZmIix3aGl0ZXNtb2tlOiJmNWY1ZjUiLHllbGxvdzoiZmYwIix5ZWxsb3dncmVlbjoiOWFjZDMyIn0sRT1jLmhleE5hbWVzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Zvcih2YXIgciBpbiB0KXQuaGFzT3duUHJvcGVydHkocikmJihlW3Rbcl1dPXIpO3JldHVybiBlfShTKTtmdW5jdGlvbiBMKHQpe3JldHVybiB0PXBhcnNlRmxvYXQodCksKGlzTmFOKHQpfHx0PDB8fHQ+MSkmJih0PTEpLHR9ZnVuY3Rpb24gQyhlLHIpeyhmdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJi0xIT10LmluZGV4T2YoIi4iKSYmMT09PXBhcnNlRmxvYXQodCl9KShlKSYmKGU9IjEwMCUiKTt2YXIgbj1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJi0xIT10LmluZGV4T2YoIiUiKX0oZSk7cmV0dXJuIGU9byhyLHMoMCxwYXJzZUZsb2F0KGUpKSksbiYmKGU9cGFyc2VJbnQoZSpyLDEwKS8xMDApLHQuYWJzKGUtcik8MWUtNj8xOmUlci9wYXJzZUZsb2F0KHIpfWZ1bmN0aW9uIFAodCl7cmV0dXJuIG8oMSxzKDAsdCkpfWZ1bmN0aW9uIEkodCl7cmV0dXJuIHBhcnNlSW50KHQsMTYpfWZ1bmN0aW9uIE8odCl7cmV0dXJuIDE9PXQubGVuZ3RoPyIwIit0OiIiK3R9ZnVuY3Rpb24geih0KXtyZXR1cm4gdDw9MSYmKHQ9MTAwKnQrIiUiKSx0fWZ1bmN0aW9uIEQoZSl7cmV0dXJuIHQucm91bmQoMjU1KnBhcnNlRmxvYXQoZSkpLnRvU3RyaW5nKDE2KX1mdW5jdGlvbiBSKHQpe3JldHVybiBJKHQpLzI1NX12YXIgRixCLE4saj0oQj0iW1xcc3xcXChdKygiKyhGPSIoPzpbLVxcK10/XFxkKlxcLlxcZCslPyl8KD86Wy1cXCtdP1xcZCslPykiKSsiKVssfFxcc10rKCIrRisiKVssfFxcc10rKCIrRisiKVxccypcXCk/IixOPSJbXFxzfFxcKF0rKCIrRisiKVssfFxcc10rKCIrRisiKVssfFxcc10rKCIrRisiKVssfFxcc10rKCIrRisiKVxccypcXCk/Iix7Q1NTX1VOSVQ6bmV3IFJlZ0V4cChGKSxyZ2I6bmV3IFJlZ0V4cCgicmdiIitCKSxyZ2JhOm5ldyBSZWdFeHAoInJnYmEiK04pLGhzbDpuZXcgUmVnRXhwKCJoc2wiK0IpLGhzbGE6bmV3IFJlZ0V4cCgiaHNsYSIrTiksaHN2Om5ldyBSZWdFeHAoImhzdiIrQiksaHN2YTpuZXcgUmVnRXhwKCJoc3ZhIitOKSxoZXgzOi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkkLyxoZXg2Oi9eIz8oWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkkLyxoZXg0Oi9eIz8oWzAtOWEtZkEtRl17MX0pKFswLTlhLWZBLUZdezF9KShbMC05YS1mQS1GXXsxfSkoWzAtOWEtZkEtRl17MX0pJC8saGV4ODovXiM/KFswLTlhLWZBLUZdezJ9KShbMC05YS1mQS1GXXsyfSkoWzAtOWEtZkEtRl17Mn0pKFswLTlhLWZBLUZdezJ9KSQvfSk7ZnVuY3Rpb24gVSh0KXtyZXR1cm4hIWouQ1NTX1VOSVQuZXhlYyh0KX12b2lkIDAhPT1lJiZlLmV4cG9ydHM/ZS5leHBvcnRzPWM6d2luZG93LnRpbnljb2xvcj1jfShNYXRoKX0se31dLDU3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9aSxlLmV4cG9ydHMuZmxvYXQzMj1lLmV4cG9ydHMuZmxvYXQ9aSxlLmV4cG9ydHMuZnJhY3QzMj1lLmV4cG9ydHMuZnJhY3Q9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aCl7aWYodCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheSlyZXR1cm4gbmV3IEZsb2F0MzJBcnJheSh0Lmxlbmd0aCk7ZSBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheXx8KGU9aSh0KSk7Zm9yKHZhciByPTAsbj1lLmxlbmd0aDtyPG47cisrKWVbcl09dFtyXS1lW3JdO3JldHVybiBlfXJldHVybiBpKHQtaSh0KSl9O3ZhciBuPW5ldyBGbG9hdDMyQXJyYXkoMSk7ZnVuY3Rpb24gaSh0KXtyZXR1cm4gdC5sZW5ndGg/dCBpbnN0YW5jZW9mIEZsb2F0MzJBcnJheT90Om5ldyBGbG9hdDMyQXJyYXkodCk6KG5bMF09dCxuWzBdKX19LHt9XSw1NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicGFyc2UtdW5pdCIpO2UuZXhwb3J0cz1hO2Z1bmN0aW9uIGkodCxlKXt2YXIgcj1uKGdldENvbXB1dGVkU3R5bGUodCkuZ2V0UHJvcGVydHlWYWx1ZShlKSk7cmV0dXJuIHJbMF0qYShyWzFdLHQpfWZ1bmN0aW9uIGEodCxlKXtzd2l0Y2goZT1lfHxkb2N1bWVudC5ib2R5LHQ9KHR8fCJweCIpLnRyaW0oKS50b0xvd2VyQ2FzZSgpLGUhPT13aW5kb3cmJmUhPT1kb2N1bWVudHx8KGU9ZG9jdW1lbnQuYm9keSksdCl7Y2FzZSIlIjpyZXR1cm4gZS5jbGllbnRIZWlnaHQvMTAwO2Nhc2UiY2giOmNhc2UiZXgiOnJldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3Iuc3R5bGVbImZvbnQtc2l6ZSJdPSIxMjgiK3QsZS5hcHBlbmRDaGlsZChyKTt2YXIgbj1pKHIsImZvbnQtc2l6ZSIpLzEyODtyZXR1cm4gZS5yZW1vdmVDaGlsZChyKSxufSh0LGUpO2Nhc2UiZW0iOnJldHVybiBpKGUsImZvbnQtc2l6ZSIpO2Nhc2UicmVtIjpyZXR1cm4gaShkb2N1bWVudC5ib2R5LCJmb250LXNpemUiKTtjYXNlInZ3IjpyZXR1cm4gd2luZG93LmlubmVyV2lkdGgvMTAwO2Nhc2UidmgiOnJldHVybiB3aW5kb3cuaW5uZXJIZWlnaHQvMTAwO2Nhc2Uidm1pbiI6cmV0dXJuIE1hdGgubWluKHdpbmRvdy5pbm5lcldpZHRoLHdpbmRvdy5pbm5lckhlaWdodCkvMTAwO2Nhc2Uidm1heCI6cmV0dXJuIE1hdGgubWF4KHdpbmRvdy5pbm5lcldpZHRoLHdpbmRvdy5pbm5lckhlaWdodCkvMTAwO2Nhc2UiaW4iOnJldHVybiA5NjtjYXNlImNtIjpyZXR1cm4gOTYvMi41NDtjYXNlIm1tIjpyZXR1cm4gOTYvMjUuNDtjYXNlInB0IjpyZXR1cm4gOTYvNzI7Y2FzZSJwYyI6cmV0dXJuIDE2fXJldHVybiAxfX0seyJwYXJzZS11bml0Ijo0NzN9XSw1NzU6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24odCxuKXsib2JqZWN0Ij09dHlwZW9mIHImJnZvaWQgMCE9PWU/bihyKTpuKCh0PXR8fHNlbGYpLnRvcG9qc29uPXQudG9wb2pzb258fHt9KX0odGhpcywoZnVuY3Rpb24odCl7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIGUodCl7cmV0dXJuIHR9ZnVuY3Rpb24gcih0KXtpZihudWxsPT10KXJldHVybiBlO3ZhciByLG4saT10LnNjYWxlWzBdLGE9dC5zY2FsZVsxXSxvPXQudHJhbnNsYXRlWzBdLHM9dC50cmFuc2xhdGVbMV07cmV0dXJuIGZ1bmN0aW9uKHQsZSl7ZXx8KHI9bj0wKTt2YXIgbD0yLGM9dC5sZW5ndGgsdT1uZXcgQXJyYXkoYyk7Zm9yKHVbMF09KHIrPXRbMF0pKmkrbyx1WzFdPShuKz10WzFdKSphK3M7bDxjOyl1W2xdPXRbbF0sKytsO3JldHVybiB1fX1mdW5jdGlvbiBuKHQpe3ZhciBlLG49cih0LnRyYW5zZm9ybSksaT0xLzAsYT1pLG89LWkscz0taTtmdW5jdGlvbiBsKHQpeyh0PW4odCkpWzBdPGkmJihpPXRbMF0pLHRbMF0+byYmKG89dFswXSksdFsxXTxhJiYoYT10WzFdKSx0WzFdPnMmJihzPXRbMV0pfWZ1bmN0aW9uIGModCl7c3dpdGNoKHQudHlwZSl7Y2FzZSJHZW9tZXRyeUNvbGxlY3Rpb24iOnQuZ2VvbWV0cmllcy5mb3JFYWNoKGMpO2JyZWFrO2Nhc2UiUG9pbnQiOmwodC5jb29yZGluYXRlcyk7YnJlYWs7Y2FzZSJNdWx0aVBvaW50Ijp0LmNvb3JkaW5hdGVzLmZvckVhY2gobCl9fWZvcihlIGluIHQuYXJjcy5mb3JFYWNoKChmdW5jdGlvbih0KXtmb3IodmFyIGUscj0tMSxsPXQubGVuZ3RoOysrcjxsOykoZT1uKHRbcl0scikpWzBdPGkmJihpPWVbMF0pLGVbMF0+byYmKG89ZVswXSksZVsxXTxhJiYoYT1lWzFdKSxlWzFdPnMmJihzPWVbMV0pfSkpLHQub2JqZWN0cyljKHQub2JqZWN0c1tlXSk7cmV0dXJuW2ksYSxvLHNdfWZ1bmN0aW9uIGkodCxlKXt2YXIgcj1lLmlkLG49ZS5iYm94LGk9bnVsbD09ZS5wcm9wZXJ0aWVzP3t9OmUucHJvcGVydGllcyxvPWEodCxlKTtyZXR1cm4gbnVsbD09ciYmbnVsbD09bj97dHlwZToiRmVhdHVyZSIscHJvcGVydGllczppLGdlb21ldHJ5Om99Om51bGw9PW4/e3R5cGU6IkZlYXR1cmUiLGlkOnIscHJvcGVydGllczppLGdlb21ldHJ5Om99Ont0eXBlOiJGZWF0dXJlIixpZDpyLGJib3g6bixwcm9wZXJ0aWVzOmksZ2VvbWV0cnk6b319ZnVuY3Rpb24gYSh0LGUpe3ZhciBuPXIodC50cmFuc2Zvcm0pLGk9dC5hcmNzO2Z1bmN0aW9uIGEodCxlKXtlLmxlbmd0aCYmZS5wb3AoKTtmb3IodmFyIHI9aVt0PDA/fnQ6dF0sYT0wLG89ci5sZW5ndGg7YTxvOysrYSllLnB1c2gobihyW2FdLGEpKTt0PDAmJmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC5sZW5ndGgsaT1uLWU7aTwtLW47KXI9dFtpXSx0W2krK109dFtuXSx0W25dPXJ9KGUsbyl9ZnVuY3Rpb24gbyh0KXtyZXR1cm4gbih0KX1mdW5jdGlvbiBzKHQpe2Zvcih2YXIgZT1bXSxyPTAsbj10Lmxlbmd0aDtyPG47KytyKWEodFtyXSxlKTtyZXR1cm4gZS5sZW5ndGg8MiYmZS5wdXNoKGVbMF0pLGV9ZnVuY3Rpb24gbCh0KXtmb3IodmFyIGU9cyh0KTtlLmxlbmd0aDw0OyllLnB1c2goZVswXSk7cmV0dXJuIGV9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gdC5tYXAobCl9cmV0dXJuIGZ1bmN0aW9uIHQoZSl7dmFyIHIsbj1lLnR5cGU7c3dpdGNoKG4pe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjpyZXR1cm57dHlwZTpuLGdlb21ldHJpZXM6ZS5nZW9tZXRyaWVzLm1hcCh0KX07Y2FzZSJQb2ludCI6cj1vKGUuY29vcmRpbmF0ZXMpO2JyZWFrO2Nhc2UiTXVsdGlQb2ludCI6cj1lLmNvb3JkaW5hdGVzLm1hcChvKTticmVhaztjYXNlIkxpbmVTdHJpbmciOnI9cyhlLmFyY3MpO2JyZWFrO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpyPWUuYXJjcy5tYXAocyk7YnJlYWs7Y2FzZSJQb2x5Z29uIjpyPWMoZS5hcmNzKTticmVhaztjYXNlIk11bHRpUG9seWdvbiI6cj1lLmFyY3MubWFwKGMpO2JyZWFrO2RlZmF1bHQ6cmV0dXJuIG51bGx9cmV0dXJue3R5cGU6bixjb29yZGluYXRlczpyfX0oZSl9ZnVuY3Rpb24gbyh0LGUpe3ZhciByPXt9LG49e30saT17fSxhPVtdLG89LTE7ZnVuY3Rpb24gcyh0LGUpe2Zvcih2YXIgbiBpbiB0KXt2YXIgaT10W25dO2RlbGV0ZSBlW2kuc3RhcnRdLGRlbGV0ZSBpLnN0YXJ0LGRlbGV0ZSBpLmVuZCxpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3JbdDwwP350OnRdPTF9KSksYS5wdXNoKGkpfX1yZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbihyLG4pe3ZhciBpLGE9dC5hcmNzW3I8MD9+cjpyXTthLmxlbmd0aDwzJiYhYVsxXVswXSYmIWFbMV1bMV0mJihpPWVbKytvXSxlW29dPXIsZVtuXT1pKX0pKSxlLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByLGEsbz1mdW5jdGlvbihlKXt2YXIgcixuPXQuYXJjc1tlPDA/fmU6ZV0saT1uWzBdO3QudHJhbnNmb3JtPyhyPVswLDBdLG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7clswXSs9dFswXSxyWzFdKz10WzFdfSkpKTpyPW5bbi5sZW5ndGgtMV07cmV0dXJuIGU8MD9bcixpXTpbaSxyXX0oZSkscz1vWzBdLGw9b1sxXTtpZihyPWlbc10paWYoZGVsZXRlIGlbci5lbmRdLHIucHVzaChlKSxyLmVuZD1sLGE9bltsXSl7ZGVsZXRlIG5bYS5zdGFydF07dmFyIGM9YT09PXI/cjpyLmNvbmNhdChhKTtuW2Muc3RhcnQ9ci5zdGFydF09aVtjLmVuZD1hLmVuZF09Y31lbHNlIG5bci5zdGFydF09aVtyLmVuZF09cjtlbHNlIGlmKHI9bltsXSlpZihkZWxldGUgbltyLnN0YXJ0XSxyLnVuc2hpZnQoZSksci5zdGFydD1zLGE9aVtzXSl7ZGVsZXRlIGlbYS5lbmRdO3ZhciB1PWE9PT1yP3I6YS5jb25jYXQocik7blt1LnN0YXJ0PWEuc3RhcnRdPWlbdS5lbmQ9ci5lbmRdPXV9ZWxzZSBuW3Iuc3RhcnRdPWlbci5lbmRdPXI7ZWxzZSBuWyhyPVtlXSkuc3RhcnQ9c109aVtyLmVuZD1sXT1yfSkpLHMoaSxuKSxzKG4saSksZS5mb3JFYWNoKChmdW5jdGlvbih0KXtyW3Q8MD9+dDp0XXx8YS5wdXNoKFt0XSl9KSksYX1mdW5jdGlvbiBzKHQsZSxyKXt2YXIgbixpLGE7aWYoYXJndW1lbnRzLmxlbmd0aD4xKW49bCh0LGUscik7ZWxzZSBmb3IoaT0wLG49bmV3IEFycmF5KGE9dC5hcmNzLmxlbmd0aCk7aTxhOysraSluW2ldPWk7cmV0dXJue3R5cGU6Ik11bHRpTGluZVN0cmluZyIsYXJjczpvKHQsbil9fWZ1bmN0aW9uIGwodCxlLHIpe3ZhciBuLGk9W10sYT1bXTtmdW5jdGlvbiBvKHQpe3ZhciBlPXQ8MD9+dDp0OyhhW2VdfHwoYVtlXT1bXSkpLnB1c2goe2k6dCxnOm59KX1mdW5jdGlvbiBzKHQpe3QuZm9yRWFjaChvKX1mdW5jdGlvbiBsKHQpe3QuZm9yRWFjaChzKX1yZXR1cm4gZnVuY3Rpb24gdChlKXtzd2l0Y2gobj1lLGUudHlwZSl7Y2FzZSJHZW9tZXRyeUNvbGxlY3Rpb24iOmUuZ2VvbWV0cmllcy5mb3JFYWNoKHQpO2JyZWFrO2Nhc2UiTGluZVN0cmluZyI6cyhlLmFyY3MpO2JyZWFrO2Nhc2UiTXVsdGlMaW5lU3RyaW5nIjpjYXNlIlBvbHlnb24iOmwoZS5hcmNzKTticmVhaztjYXNlIk11bHRpUG9seWdvbiI6IWZ1bmN0aW9uKHQpe3QuZm9yRWFjaChsKX0oZS5hcmNzKX19KGUpLGEuZm9yRWFjaChudWxsPT1yP2Z1bmN0aW9uKHQpe2kucHVzaCh0WzBdLmkpfTpmdW5jdGlvbih0KXtyKHRbMF0uZyx0W3QubGVuZ3RoLTFdLmcpJiZpLnB1c2godFswXS5pKX0pLGl9ZnVuY3Rpb24gYyh0LGUpe3ZhciByPXt9LG49W10saT1bXTtmdW5jdGlvbiBzKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24oZSl7ZS5mb3JFYWNoKChmdW5jdGlvbihlKXsocltlPWU8MD9+ZTplXXx8KHJbZV09W10pKS5wdXNoKHQpfSkpfSkpLG4ucHVzaCh0KX1mdW5jdGlvbiBsKGUpe3JldHVybiBmdW5jdGlvbih0KXtmb3IodmFyIGUscj0tMSxuPXQubGVuZ3RoLGk9dFtuLTFdLGE9MDsrK3I8bjspZT1pLGk9dFtyXSxhKz1lWzBdKmlbMV0tZVsxXSppWzBdO3JldHVybiBNYXRoLmFicyhhKX0oYSh0LHt0eXBlOiJQb2x5Z29uIixhcmNzOltlXX0pLmNvb3JkaW5hdGVzWzBdKX1yZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbiB0KGUpe3N3aXRjaChlLnR5cGUpe2Nhc2UiR2VvbWV0cnlDb2xsZWN0aW9uIjplLmdlb21ldHJpZXMuZm9yRWFjaCh0KTticmVhaztjYXNlIlBvbHlnb24iOnMoZS5hcmNzKTticmVhaztjYXNlIk11bHRpUG9seWdvbiI6ZS5hcmNzLmZvckVhY2gocyl9fSkpLG4uZm9yRWFjaCgoZnVuY3Rpb24odCl7aWYoIXQuXyl7dmFyIGU9W10sbj1bdF07Zm9yKHQuXz0xLGkucHVzaChlKTt0PW4ucG9wKCk7KWUucHVzaCh0KSx0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7clt0PDA/fnQ6dF0uZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5ffHwodC5fPTEsbi5wdXNoKHQpKX0pKX0pKX0pKX19KSksbi5mb3JFYWNoKChmdW5jdGlvbih0KXtkZWxldGUgdC5ffSkpLHt0eXBlOiJNdWx0aVBvbHlnb24iLGFyY3M6aS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciBuLGk9W107aWYoZS5mb3JFYWNoKChmdW5jdGlvbih0KXt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7clt0PDA/fnQ6dF0ubGVuZ3RoPDImJmkucHVzaCh0KX0pKX0pKX0pKSwobj0oaT1vKHQsaSkpLmxlbmd0aCk+MSlmb3IodmFyIGEscyxjPTEsdT1sKGlbMF0pO2M8bjsrK2MpKGE9bChpW2NdKSk+dSYmKHM9aVswXSxpWzBdPWlbY10saVtjXT1zLHU9YSk7cmV0dXJuIGl9KSkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5sZW5ndGg+MH0pKX19ZnVuY3Rpb24gdSh0LGUpe2Zvcih2YXIgcj0wLG49dC5sZW5ndGg7cjxuOyl7dmFyIGk9cituPj4+MTt0W2ldPGU/cj1pKzE6bj1pfXJldHVybiByfWZ1bmN0aW9uIGYodCl7aWYobnVsbD09dClyZXR1cm4gZTt2YXIgcixuLGk9dC5zY2FsZVswXSxhPXQuc2NhbGVbMV0sbz10LnRyYW5zbGF0ZVswXSxzPXQudHJhbnNsYXRlWzFdO3JldHVybiBmdW5jdGlvbih0LGUpe2V8fChyPW49MCk7dmFyIGw9MixjPXQubGVuZ3RoLHU9bmV3IEFycmF5KGMpLGY9TWF0aC5yb3VuZCgodFswXS1vKS9pKSxoPU1hdGgucm91bmQoKHRbMV0tcykvYSk7Zm9yKHVbMF09Zi1yLHI9Zix1WzFdPWgtbixuPWg7bDxjOyl1W2xdPXRbbF0sKytsO3JldHVybiB1fX10LmJib3g9bix0LmZlYXR1cmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIGUmJihlPXQub2JqZWN0c1tlXSksIkdlb21ldHJ5Q29sbGVjdGlvbiI9PT1lLnR5cGU/e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczplLmdlb21ldHJpZXMubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gaSh0LGUpfSkpfTppKHQsZSl9LHQubWVyZ2U9ZnVuY3Rpb24odCl7cmV0dXJuIGEodCxjLmFwcGx5KHRoaXMsYXJndW1lbnRzKSl9LHQubWVyZ2VBcmNzPWMsdC5tZXNoPWZ1bmN0aW9uKHQpe3JldHVybiBhKHQscy5hcHBseSh0aGlzLGFyZ3VtZW50cykpfSx0Lm1lc2hBcmNzPXMsdC5uZWlnaGJvcnM9ZnVuY3Rpb24odCl7dmFyIGU9e30scj10Lm1hcCgoZnVuY3Rpb24oKXtyZXR1cm5bXX0pKTtmdW5jdGlvbiBuKHQscil7dC5mb3JFYWNoKChmdW5jdGlvbih0KXt0PDAmJih0PX50KTt2YXIgbj1lW3RdO24/bi5wdXNoKHIpOmVbdF09W3JdfSkpfWZ1bmN0aW9uIGkodCxlKXt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe24odCxlKX0pKX12YXIgYT17TGluZVN0cmluZzpuLE11bHRpTGluZVN0cmluZzppLFBvbHlnb246aSxNdWx0aVBvbHlnb246ZnVuY3Rpb24odCxlKXt0LmZvckVhY2goKGZ1bmN0aW9uKHQpe2kodCxlKX0pKX19O2Zvcih2YXIgbyBpbiB0LmZvckVhY2goKGZ1bmN0aW9uIHQoZSxyKXsiR2VvbWV0cnlDb2xsZWN0aW9uIj09PWUudHlwZT9lLmdlb21ldHJpZXMuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dChlLHIpfSkpOmUudHlwZSBpbiBhJiZhW2UudHlwZV0oZS5hcmNzLHIpfSkpLGUpZm9yKHZhciBzPWVbb10sbD1zLmxlbmd0aCxjPTA7YzxsOysrYylmb3IodmFyIGY9YysxO2Y8bDsrK2Ype3ZhciBoLHA9c1tjXSxkPXNbZl07KGg9cltwXSlbbz11KGgsZCldIT09ZCYmaC5zcGxpY2UobywwLGQpLChoPXJbZF0pW289dShoLHApXSE9PXAmJmguc3BsaWNlKG8sMCxwKX1yZXR1cm4gcn0sdC5xdWFudGl6ZT1mdW5jdGlvbih0LGUpe2lmKHQudHJhbnNmb3JtKXRocm93IG5ldyBFcnJvcigiYWxyZWFkeSBxdWFudGl6ZWQiKTtpZihlJiZlLnNjYWxlKWw9dC5iYm94O2Vsc2V7aWYoISgocj1NYXRoLmZsb29yKGUpKT49MikpdGhyb3cgbmV3IEVycm9yKCJuIG11c3QgYmUgXHUyMjY1MiIpO3ZhciByLGk9KGw9dC5iYm94fHxuKHQpKVswXSxhPWxbMV0sbz1sWzJdLHM9bFszXTtlPXtzY2FsZTpbby1pPyhvLWkpLyhyLTEpOjEscy1hPyhzLWEpLyhyLTEpOjFdLHRyYW5zbGF0ZTpbaSxhXX19dmFyIGwsYyx1PWYoZSksaD10Lm9iamVjdHMscD17fTtmdW5jdGlvbiBkKHQpe3JldHVybiB1KHQpfWZ1bmN0aW9uIG0odCl7dmFyIGU7c3dpdGNoKHQudHlwZSl7Y2FzZSJHZW9tZXRyeUNvbGxlY3Rpb24iOmU9e3R5cGU6Ikdlb21ldHJ5Q29sbGVjdGlvbiIsZ2VvbWV0cmllczp0Lmdlb21ldHJpZXMubWFwKG0pfTticmVhaztjYXNlIlBvaW50IjplPXt0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6ZCh0LmNvb3JkaW5hdGVzKX07YnJlYWs7Y2FzZSJNdWx0aVBvaW50IjplPXt0eXBlOiJNdWx0aVBvaW50Iixjb29yZGluYXRlczp0LmNvb3JkaW5hdGVzLm1hcChkKX07YnJlYWs7ZGVmYXVsdDpyZXR1cm4gdH1yZXR1cm4gbnVsbCE9dC5pZCYmKGUuaWQ9dC5pZCksbnVsbCE9dC5iYm94JiYoZS5iYm94PXQuYmJveCksbnVsbCE9dC5wcm9wZXJ0aWVzJiYoZS5wcm9wZXJ0aWVzPXQucHJvcGVydGllcyksZX1mb3IoYyBpbiBoKXBbY109bShoW2NdKTtyZXR1cm57dHlwZToiVG9wb2xvZ3kiLGJib3g6bCx0cmFuc2Zvcm06ZSxvYmplY3RzOnAsYXJjczp0LmFyY3MubWFwKChmdW5jdGlvbih0KXt2YXIgZSxyPTAsbj0xLGk9dC5sZW5ndGgsYT1uZXcgQXJyYXkoaSk7Zm9yKGFbMF09dSh0WzBdLDApOysrcjxpOykoKGU9dSh0W3JdLHIpKVswXXx8ZVsxXSkmJihhW24rK109ZSk7cmV0dXJuIDE9PT1uJiYoYVtuKytdPVswLDBdKSxhLmxlbmd0aD1uLGF9KSl9fSx0LnRyYW5zZm9ybT1yLHQudW50cmFuc2Zvcm09ZixPYmplY3QuZGVmaW5lUHJvcGVydHkodCwiX19lc01vZHVsZSIse3ZhbHVlOiEwfSl9KSl9LHt9XSw1NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPSh0PXR8fHt9KS5jZW50ZXJ8fFswLDAsMF0scj10LnVwfHxbMCwxLDBdLG49dC5yaWdodHx8ZihyKSxpPXQucmFkaXVzfHwxLGE9dC50aGV0YXx8MCx1PXQucGhpfHwwO2lmKGU9W10uc2xpY2UuY2FsbChlLDAsMykscj1bXS5zbGljZS5jYWxsKHIsMCwzKSxzKHIsciksbj1bXS5zbGljZS5jYWxsKG4sMCwzKSxzKG4sbiksImV5ZSJpbiB0KXt2YXIgcD10LmV5ZSxkPVtwWzBdLWVbMF0scFsxXS1lWzFdLHBbMl0tZVsyXV07byhuLGQsciksYyhuWzBdLG5bMV0sblsyXSk8MWUtNj9uPWYocik6cyhuLG4pLGk9YyhkWzBdLGRbMV0sZFsyXSk7dmFyIG09bChyLGQpL2ksZz1sKG4sZCkvaTt1PU1hdGguYWNvcyhtKSxhPU1hdGguYWNvcyhnKX1yZXR1cm4gaT1NYXRoLmxvZyhpKSxuZXcgaCh0Lnpvb21NaW4sdC56b29tTWF4LGUscixuLGksYSx1KX07dmFyIG49dCgiZmlsdGVyZWQtdmVjdG9yIiksaT10KCJnbC1tYXQ0L2ludmVydCIpLGE9dCgiZ2wtbWF0NC9yb3RhdGUiKSxvPXQoImdsLXZlYzMvY3Jvc3MiKSxzPXQoImdsLXZlYzMvbm9ybWFsaXplIiksbD10KCJnbC12ZWMzL2RvdCIpO2Z1bmN0aW9uIGModCxlLHIpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5wb3codCwyKStNYXRoLnBvdyhlLDIpK01hdGgucG93KHIsMikpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIE1hdGgubWluKDEsTWF0aC5tYXgoLTEsdCkpfWZ1bmN0aW9uIGYodCl7dmFyIGU9TWF0aC5hYnModFswXSkscj1NYXRoLmFicyh0WzFdKSxuPU1hdGguYWJzKHRbMl0pLGk9WzAsMCwwXTtlPk1hdGgubWF4KHIsbik/aVsyXT0xOnI+TWF0aC5tYXgoZSxuKT9pWzBdPTE6aVsxXT0xO2Zvcih2YXIgYT0wLG89MCxsPTA7bDwzOysrbClhKz10W2xdKnRbbF0sbys9aVtsXSp0W2xdO2ZvcihsPTA7bDwzOysrbClpW2xdLT1vL2EqdFtsXTtyZXR1cm4gcyhpLGkpLGl9ZnVuY3Rpb24gaCh0LGUscixpLGEsbyxzLGwpe3RoaXMuY2VudGVyPW4ociksdGhpcy51cD1uKGkpLHRoaXMucmlnaHQ9bihhKSx0aGlzLnJhZGl1cz1uKFtvXSksdGhpcy5hbmdsZT1uKFtzLGxdKSx0aGlzLmFuZ2xlLmJvdW5kcz1bWy0xLzAsLU1hdGguUEkvMl0sWzEvMCxNYXRoLlBJLzJdXSx0aGlzLnNldERpc3RhbmNlTGltaXRzKHQsZSksdGhpcy5jb21wdXRlZENlbnRlcj10aGlzLmNlbnRlci5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkVXA9dGhpcy51cC5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkUmlnaHQ9dGhpcy5yaWdodC5jdXJ2ZSgwKSx0aGlzLmNvbXB1dGVkUmFkaXVzPXRoaXMucmFkaXVzLmN1cnZlKDApLHRoaXMuY29tcHV0ZWRBbmdsZT10aGlzLmFuZ2xlLmN1cnZlKDApLHRoaXMuY29tcHV0ZWRUb3dhcmQ9WzAsMCwwXSx0aGlzLmNvbXB1dGVkRXllPVswLDAsMF0sdGhpcy5jb21wdXRlZE1hdHJpeD1uZXcgQXJyYXkoMTYpO2Zvcih2YXIgYz0wO2M8MTY7KytjKXRoaXMuY29tcHV0ZWRNYXRyaXhbY109LjU7dGhpcy5yZWNhbGNNYXRyaXgoMCl9dmFyIHA9aC5wcm90b3R5cGU7cC5zZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0LGUpe3Q9dD4wP01hdGgubG9nKHQpOi0xLzAsZT1lPjA/TWF0aC5sb2coZSk6MS8wLGU9TWF0aC5tYXgoZSx0KSx0aGlzLnJhZGl1cy5ib3VuZHNbMF1bMF09dCx0aGlzLnJhZGl1cy5ib3VuZHNbMV1bMF09ZX0scC5nZXREaXN0YW5jZUxpbWl0cz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnJhZGl1cy5ib3VuZHNbMF07cmV0dXJuIHQ/KHRbMF09TWF0aC5leHAoZVswXVswXSksdFsxXT1NYXRoLmV4cChlWzFdWzBdKSx0KTpbTWF0aC5leHAoZVswXVswXSksTWF0aC5leHAoZVsxXVswXSldfSxwLnJlY2FsY01hdHJpeD1mdW5jdGlvbih0KXt0aGlzLmNlbnRlci5jdXJ2ZSh0KSx0aGlzLnVwLmN1cnZlKHQpLHRoaXMucmlnaHQuY3VydmUodCksdGhpcy5yYWRpdXMuY3VydmUodCksdGhpcy5hbmdsZS5jdXJ2ZSh0KTtmb3IodmFyIGU9dGhpcy5jb21wdXRlZFVwLHI9dGhpcy5jb21wdXRlZFJpZ2h0LG49MCxpPTAsYT0wO2E8MzsrK2EpaSs9ZVthXSpyW2FdLG4rPWVbYV0qZVthXTt2YXIgbD1NYXRoLnNxcnQobiksdT0wO2ZvcihhPTA7YTwzOysrYSlyW2FdLT1lW2FdKmkvbix1Kz1yW2FdKnJbYV0sZVthXS89bDt2YXIgZj1NYXRoLnNxcnQodSk7Zm9yKGE9MDthPDM7KythKXJbYV0vPWY7dmFyIGg9dGhpcy5jb21wdXRlZFRvd2FyZDtvKGgsZSxyKSxzKGgsaCk7dmFyIHA9TWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSksZD10aGlzLmNvbXB1dGVkQW5nbGVbMF0sbT10aGlzLmNvbXB1dGVkQW5nbGVbMV0sZz1NYXRoLmNvcyhkKSx2PU1hdGguc2luKGQpLHk9TWF0aC5jb3MobSkseD1NYXRoLnNpbihtKSxiPXRoaXMuY29tcHV0ZWRDZW50ZXIsXz1nKnksdz12KnksVD14LGs9LWcqeCxBPS12KngsTT15LFM9dGhpcy5jb21wdXRlZEV5ZSxFPXRoaXMuY29tcHV0ZWRNYXRyaXg7Zm9yKGE9MDthPDM7KythKXt2YXIgTD1fKnJbYV0rdypoW2FdK1QqZVthXTtFWzQqYSsxXT1rKnJbYV0rQSpoW2FdK00qZVthXSxFWzQqYSsyXT1MLEVbNCphKzNdPTB9dmFyIEM9RVsxXSxQPUVbNV0sST1FWzldLE89RVsyXSx6PUVbNl0sRD1FWzEwXSxSPVAqRC1JKnosRj1JKk8tQypELEI9Qyp6LVAqTyxOPWMoUixGLEIpO1IvPU4sRi89TixCLz1OLEVbMF09UixFWzRdPUYsRVs4XT1CO2ZvcihhPTA7YTwzOysrYSlTW2FdPWJbYV0rRVsyKzQqYV0qcDtmb3IoYT0wO2E8MzsrK2Epe3U9MDtmb3IodmFyIGo9MDtqPDM7KytqKXUrPUVbYSs0KmpdKlNbal07RVsxMithXT0tdX1FWzE1XT0xfSxwLmdldE1hdHJpeD1mdW5jdGlvbih0LGUpe3RoaXMucmVjYWxjTWF0cml4KHQpO3ZhciByPXRoaXMuY29tcHV0ZWRNYXRyaXg7aWYoZSl7Zm9yKHZhciBuPTA7bjwxNjsrK24pZVtuXT1yW25dO3JldHVybiBlfXJldHVybiByfTt2YXIgZD1bMCwwLDBdO3Aucm90YXRlPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKHRoaXMuYW5nbGUubW92ZSh0LGUsciksbil7dGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIGk9dGhpcy5jb21wdXRlZE1hdHJpeDtkWzBdPWlbMl0sZFsxXT1pWzZdLGRbMl09aVsxMF07Zm9yKHZhciBvPXRoaXMuY29tcHV0ZWRVcCxzPXRoaXMuY29tcHV0ZWRSaWdodCxsPXRoaXMuY29tcHV0ZWRUb3dhcmQsYz0wO2M8MzsrK2MpaVs0KmNdPW9bY10saVs0KmMrMV09c1tjXSxpWzQqYysyXT1sW2NdO2EoaSxpLG4sZCk7Zm9yKGM9MDtjPDM7KytjKW9bY109aVs0KmNdLHNbY109aVs0KmMrMV07dGhpcy51cC5zZXQodCxvWzBdLG9bMV0sb1syXSksdGhpcy5yaWdodC5zZXQodCxzWzBdLHNbMV0sc1syXSl9fSxwLnBhbj1mdW5jdGlvbih0LGUscixuKXtlPWV8fDAscj1yfHwwLG49bnx8MCx0aGlzLnJlY2FsY01hdHJpeCh0KTt2YXIgaT10aGlzLmNvbXB1dGVkTWF0cml4LGE9KE1hdGguZXhwKHRoaXMuY29tcHV0ZWRSYWRpdXNbMF0pLGlbMV0pLG89aVs1XSxzPWlbOV0sbD1jKGEsbyxzKTthLz1sLG8vPWwscy89bDt2YXIgdT1pWzBdLGY9aVs0XSxoPWlbOF0scD11KmErZipvK2gqcyxkPWModS09YSpwLGYtPW8qcCxoLT1zKnApLG09KHUvPWQpKmUrYSpyLGc9KGYvPWQpKmUrbypyLHY9KGgvPWQpKmUrcypyO3RoaXMuY2VudGVyLm1vdmUodCxtLGcsdik7dmFyIHk9TWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSk7eT1NYXRoLm1heCgxZS00LHkrbiksdGhpcy5yYWRpdXMuc2V0KHQsTWF0aC5sb2coeSkpfSxwLnRyYW5zbGF0ZT1mdW5jdGlvbih0LGUscixuKXt0aGlzLmNlbnRlci5tb3ZlKHQsZXx8MCxyfHwwLG58fDApfSxwLnNldE1hdHJpeD1mdW5jdGlvbih0LGUscixuKXt2YXIgYT0xOyJudW1iZXIiPT10eXBlb2YgciYmKGE9MHxyKSwoYTwwfHxhPjMpJiYoYT0xKTt2YXIgbz0oYSsyKSUzO2V8fCh0aGlzLnJlY2FsY01hdHJpeCh0KSxlPXRoaXMuY29tcHV0ZWRNYXRyaXgpO3ZhciBzPWVbYV0sbD1lW2ErNF0sZj1lW2ErOF07aWYobil7dmFyIGg9TWF0aC5hYnMocykscD1NYXRoLmFicyhsKSxkPU1hdGguYWJzKGYpLG09TWF0aC5tYXgoaCxwLGQpO2g9PT1tPyhzPXM8MD8tMToxLGw9Zj0wKTpkPT09bT8oZj1mPDA/LTE6MSxzPWw9MCk6KGw9bDwwPy0xOjEscz1mPTApfWVsc2V7dmFyIGc9YyhzLGwsZik7cy89ZyxsLz1nLGYvPWd9dmFyIHYseSx4PWVbb10sYj1lW28rNF0sXz1lW28rOF0sdz14KnMrYipsK18qZixUPWMoeC09cyp3LGItPWwqdyxfLT1mKncpLGs9bCooXy89VCktZiooYi89VCksQT1mKih4Lz1UKS1zKl8sTT1zKmItbCp4LFM9YyhrLEEsTSk7aWYoay89UyxBLz1TLE0vPVMsdGhpcy5jZW50ZXIuanVtcCh0LHEsRyxZKSx0aGlzLnJhZGl1cy5pZGxlKHQpLHRoaXMudXAuanVtcCh0LHMsbCxmKSx0aGlzLnJpZ2h0Lmp1bXAodCx4LGIsXyksMj09PWEpe3ZhciBFPWVbMV0sTD1lWzVdLEM9ZVs5XSxQPUUqeCtMKmIrQypfLEk9RSprK0wqQStDKk07dj1SPDA/LU1hdGguUEkvMjpNYXRoLlBJLzIseT1NYXRoLmF0YW4yKEksUCl9ZWxzZXt2YXIgTz1lWzJdLHo9ZVs2XSxEPWVbMTBdLFI9TypzK3oqbCtEKmYsRj1PKngreipiK0QqXyxCPU8qayt6KkErRCpNO3Y9TWF0aC5hc2luKHUoUikpLHk9TWF0aC5hdGFuMihCLEYpfXRoaXMuYW5nbGUuanVtcCh0LHksdiksdGhpcy5yZWNhbGNNYXRyaXgodCk7dmFyIE49ZVsyXSxqPWVbNl0sVT1lWzEwXSxWPXRoaXMuY29tcHV0ZWRNYXRyaXg7aShWLGUpO3ZhciBIPVZbMTVdLHE9VlsxMl0vSCxHPVZbMTNdL0gsWT1WWzE0XS9ILFc9TWF0aC5leHAodGhpcy5jb21wdXRlZFJhZGl1c1swXSk7dGhpcy5jZW50ZXIuanVtcCh0LHEtTipXLEctaipXLFktVSpXKX0scC5sYXN0VD1mdW5jdGlvbigpe3JldHVybiBNYXRoLm1heCh0aGlzLmNlbnRlci5sYXN0VCgpLHRoaXMudXAubGFzdFQoKSx0aGlzLnJpZ2h0Lmxhc3RUKCksdGhpcy5yYWRpdXMubGFzdFQoKSx0aGlzLmFuZ2xlLmxhc3RUKCkpfSxwLmlkbGU9ZnVuY3Rpb24odCl7dGhpcy5jZW50ZXIuaWRsZSh0KSx0aGlzLnVwLmlkbGUodCksdGhpcy5yaWdodC5pZGxlKHQpLHRoaXMucmFkaXVzLmlkbGUodCksdGhpcy5hbmdsZS5pZGxlKHQpfSxwLmZsdXNoPWZ1bmN0aW9uKHQpe3RoaXMuY2VudGVyLmZsdXNoKHQpLHRoaXMudXAuZmx1c2godCksdGhpcy5yaWdodC5mbHVzaCh0KSx0aGlzLnJhZGl1cy5mbHVzaCh0KSx0aGlzLmFuZ2xlLmZsdXNoKHQpfSxwLnNldERpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7ZT4wJiZ0aGlzLnJhZGl1cy5zZXQodCxNYXRoLmxvZyhlKSl9LHAubG9va0F0PWZ1bmN0aW9uKHQsZSxyLG4pe3RoaXMucmVjYWxjTWF0cml4KHQpLGU9ZXx8dGhpcy5jb21wdXRlZEV5ZSxyPXJ8fHRoaXMuY29tcHV0ZWRDZW50ZXI7dmFyIGk9KG49bnx8dGhpcy5jb21wdXRlZFVwKVswXSxhPW5bMV0sbz1uWzJdLHM9YyhpLGEsbyk7aWYoIShzPDFlLTYpKXtpLz1zLGEvPXMsby89czt2YXIgbD1lWzBdLXJbMF0sZj1lWzFdLXJbMV0saD1lWzJdLXJbMl0scD1jKGwsZixoKTtpZighKHA8MWUtNikpe2wvPXAsZi89cCxoLz1wO3ZhciBkPXRoaXMuY29tcHV0ZWRSaWdodCxtPWRbMF0sZz1kWzFdLHY9ZFsyXSx5PWkqbSthKmcrbyp2LHg9YyhtLT15KmksZy09eSphLHYtPXkqbyk7aWYoISh4PC4wMSYmKHg9YyhtPWEqaC1vKmYsZz1vKmwtaSpoLHY9aSpmLWEqbCkpPDFlLTYpKXttLz14LGcvPXgsdi89eCx0aGlzLnVwLnNldCh0LGksYSxvKSx0aGlzLnJpZ2h0LnNldCh0LG0sZyx2KSx0aGlzLmNlbnRlci5zZXQodCxyWzBdLHJbMV0sclsyXSksdGhpcy5yYWRpdXMuc2V0KHQsTWF0aC5sb2cocCkpO3ZhciBiPWEqdi1vKmcsXz1vKm0taSp2LHc9aSpnLWEqbSxUPWMoYixfLHcpLGs9aSpsK2EqZitvKmgsQT1tKmwrZypmK3YqaCxNPShiLz1UKSpsKyhfLz1UKSpmKyh3Lz1UKSpoLFM9TWF0aC5hc2luKHUoaykpLEU9TWF0aC5hdGFuMihNLEEpLEw9dGhpcy5hbmdsZS5fc3RhdGUsQz1MW0wubGVuZ3RoLTFdLFA9TFtMLmxlbmd0aC0yXTtDJT0yKk1hdGguUEk7dmFyIEk9TWF0aC5hYnMoQysyKk1hdGguUEktRSksTz1NYXRoLmFicyhDLUUpLHo9TWF0aC5hYnMoQy0yKk1hdGguUEktRSk7STxPJiYoQys9MipNYXRoLlBJKSx6PE8mJihDLT0yKk1hdGguUEkpLHRoaXMuYW5nbGUuanVtcCh0aGlzLmFuZ2xlLmxhc3RUKCksQyxQKSx0aGlzLmFuZ2xlLnNldCh0LEUsUyl9fX19fSx7ImZpbHRlcmVkLXZlY3RvciI6MjQzLCJnbC1tYXQ0L2ludmVydCI6Mjg3LCJnbC1tYXQ0L3JvdGF0ZSI6MjkzLCJnbC12ZWMzL2Nyb3NzIjozNTAsImdsLXZlYzMvZG90IjozNTUsImdsLXZlYzMvbm9ybWFsaXplIjozNzJ9XSw1Nzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10KmUsYT1uKnQsbz1hLShhLXQpLHM9dC1vLGw9biplLGM9bC0obC1lKSx1PWUtYyxmPXMqdS0oaS1vKmMtcypjLW8qdSk7aWYocilyZXR1cm4gclswXT1mLHJbMV09aSxyO3JldHVybltmLGldfTt2YXIgbj0rKE1hdGgucG93KDIsMjcpKzEpfSx7fV0sNTc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49dCtlLGk9bi10LGE9ZS1pLG89dC0obi1pKTtpZihyKXJldHVybiByWzBdPW8rYSxyWzFdPW4scjtyZXR1cm5bbythLG5dfX0se31dLDU3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9wcm90b3R5cGUvaXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQpcmV0dXJuITE7aWYoIWhhc093blByb3BlcnR5LmNhbGwodCwibGVuZ3RoIikpcmV0dXJuITE7dHJ5e2lmKCJudW1iZXIiIT10eXBlb2YgdC5sZW5ndGgpcmV0dXJuITE7aWYoImZ1bmN0aW9uIiE9dHlwZW9mIHQuY2FsbClyZXR1cm4hMTtpZigiZnVuY3Rpb24iIT10eXBlb2YgdC5hcHBseSlyZXR1cm4hMX1jYXRjaCh0KXtyZXR1cm4hMX1yZXR1cm4hbih0KX19LHsiLi4vcHJvdG90eXBlL2lzIjo1ODZ9XSw1ODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vdmFsdWUvaXMiKSxpPXQoIi4uL29iamVjdC9pcyIpLGE9dCgiLi4vc3RyaW5nL2NvZXJjZSIpLG89dCgiLi90by1zaG9ydC1zdHJpbmciKSxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucmVwbGFjZSgiJXYiLG8oZSkpfTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKCFpKHIpKXRocm93IG5ldyBUeXBlRXJyb3IocyhlLHQpKTtpZighbih0KSl7aWYoImRlZmF1bHQiaW4gcilyZXR1cm4gci5kZWZhdWx0O2lmKHIuaXNPcHRpb25hbClyZXR1cm4gbnVsbH12YXIgbz1hKHIuZXJyb3JNZXNzYWdlKTt0aHJvdyBuKG8pfHwobz1lKSxuZXcgVHlwZUVycm9yKHMobyx0KSl9fSx7Ii4uL29iamVjdC9pcyI6NTgzLCIuLi9zdHJpbmcvY29lcmNlIjo1ODcsIi4uL3ZhbHVlL2lzIjo1ODksIi4vdG8tc2hvcnQtc3RyaW5nIjo1ODJ9XSw1ODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3RyeXtyZXR1cm4gdC50b1N0cmluZygpfWNhdGNoKGUpe3RyeXtyZXR1cm4gU3RyaW5nKHQpfWNhdGNoKHQpe3JldHVybiBudWxsfX19fSx7fV0sNTgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc2FmZS10by1zdHJpbmciKSxpPS9bXG5cclx1MjAyOFx1MjAyOV0vZztlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bih0KTtyZXR1cm4gbnVsbD09PWU/IjxOb24tY29lcmNpYmxlIHRvIHN0cmluZyB2YWx1ZT4iOihlLmxlbmd0aD4xMDAmJihlPWUuc2xpY2UoMCw5OSkrIlx1MjAyNiIpLGU9ZS5yZXBsYWNlKGksKGZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIlxuIjpyZXR1cm4iXFxuIjtjYXNlIlxyIjpyZXR1cm4iXFxyIjtjYXNlIlx1MjAyOCI6cmV0dXJuIlxcdTIwMjgiO2Nhc2UiXHUyMDI5IjpyZXR1cm4iXFx1MjAyOSI7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoIlVuZXhwZWN0ZWQgY2hhcmFjdGVyIil9fSkpKX19LHsiLi9zYWZlLXRvLXN0cmluZyI6NTgxfV0sNTgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3ZhbHVlL2lzIiksaT17b2JqZWN0OiEwLGZ1bmN0aW9uOiEwLHVuZGVmaW5lZDohMH07ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiEhbih0KSYmaGFzT3duUHJvcGVydHkuY2FsbChpLHR5cGVvZiB0KX19LHsiLi4vdmFsdWUvaXMiOjU4OX1dLDU4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIvcmVzb2x2ZS1leGNlcHRpb24iKSxpPXQoIi4vaXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIGkodCk/dDpuKHQsIiV2IGlzIG5vdCBhIHBsYWluIGZ1bmN0aW9uIixhcmd1bWVudHNbMV0pfX0seyIuLi9saWIvcmVzb2x2ZS1leGNlcHRpb24iOjU4MCwiLi9pcyI6NTg1fV0sNTg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Z1bmN0aW9uL2lzIiksaT0vXlxzKmNsYXNzW1xzey99XS8sYT1GdW5jdGlvbi5wcm90b3R5cGUudG9TdHJpbmc7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiEhbih0KSYmIWkudGVzdChhLmNhbGwodCkpfX0seyIuLi9mdW5jdGlvbi9pcyI6NTc5fV0sNTg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL29iamVjdC9pcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighbih0KSlyZXR1cm4hMTt0cnl7cmV0dXJuISF0LmNvbnN0cnVjdG9yJiZ0LmNvbnN0cnVjdG9yLnByb3RvdHlwZT09PXR9Y2F0Y2godCl7cmV0dXJuITF9fX0seyIuLi9vYmplY3QvaXMiOjU4M31dLDU4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi92YWx1ZS9pcyIpLGk9dCgiLi4vb2JqZWN0L2lzIiksYT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtpZighbih0KSlyZXR1cm4gbnVsbDtpZihpKHQpKXt2YXIgZT10LnRvU3RyaW5nO2lmKCJmdW5jdGlvbiIhPXR5cGVvZiBlKXJldHVybiBudWxsO2lmKGU9PT1hKXJldHVybiBudWxsfXRyeXtyZXR1cm4iIit0fWNhdGNoKHQpe3JldHVybiBudWxsfX19LHsiLi4vb2JqZWN0L2lzIjo1ODMsIi4uL3ZhbHVlL2lzIjo1ODl9XSw1ODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliL3Jlc29sdmUtZXhjZXB0aW9uIiksaT10KCIuL2lzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBpKHQpP3Q6bih0LCJDYW5ub3QgdXNlICV2Iixhcmd1bWVudHNbMV0pfX0seyIuLi9saWIvcmVzb2x2ZS1leGNlcHRpb24iOjU4MCwiLi9pcyI6NTg5fV0sNTg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbnVsbCE9dH19LHt9XSw1OTA6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24oZSl7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBuPXQoImJpdC10d2lkZGxlIiksaT10KCJkdXAiKSxhPXQoImJ1ZmZlciIpLkJ1ZmZlcjtlLl9fVFlQRURBUlJBWV9QT09MfHwoZS5fX1RZUEVEQVJSQVlfUE9PTD17VUlOVDg6aShbMzIsMF0pLFVJTlQxNjppKFszMiwwXSksVUlOVDMyOmkoWzMyLDBdKSxCSUdVSU5UNjQ6aShbMzIsMF0pLElOVDg6aShbMzIsMF0pLElOVDE2OmkoWzMyLDBdKSxJTlQzMjppKFszMiwwXSksQklHSU5UNjQ6aShbMzIsMF0pLEZMT0FUOmkoWzMyLDBdKSxET1VCTEU6aShbMzIsMF0pLERBVEE6aShbMzIsMF0pLFVJTlQ4QzppKFszMiwwXSksQlVGRkVSOmkoWzMyLDBdKX0pO3ZhciBvPSJ1bmRlZmluZWQiIT10eXBlb2YgVWludDhDbGFtcGVkQXJyYXkscz0idW5kZWZpbmVkIiE9dHlwZW9mIEJpZ1VpbnQ2NEFycmF5LGw9InVuZGVmaW5lZCIhPXR5cGVvZiBCaWdJbnQ2NEFycmF5LGM9ZS5fX1RZUEVEQVJSQVlfUE9PTDtjLlVJTlQ4Q3x8KGMuVUlOVDhDPWkoWzMyLDBdKSksYy5CSUdVSU5UNjR8fChjLkJJR1VJTlQ2ND1pKFszMiwwXSkpLGMuQklHSU5UNjR8fChjLkJJR0lOVDY0PWkoWzMyLDBdKSksYy5CVUZGRVJ8fChjLkJVRkZFUj1pKFszMiwwXSkpO3ZhciB1PWMuREFUQSxmPWMuQlVGRkVSO2Z1bmN0aW9uIGgodCl7aWYodCl7dmFyIGU9dC5sZW5ndGh8fHQuYnl0ZUxlbmd0aCxyPW4ubG9nMihlKTt1W3JdLnB1c2godCl9fWZ1bmN0aW9uIHAodCl7dD1uLm5leHRQb3cyKHQpO3ZhciBlPW4ubG9nMih0KSxyPXVbZV07cmV0dXJuIHIubGVuZ3RoPjA/ci5wb3AoKTpuZXcgQXJyYXlCdWZmZXIodCl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4gbmV3IFVpbnQ4QXJyYXkocCh0KSwwLHQpfWZ1bmN0aW9uIG0odCl7cmV0dXJuIG5ldyBVaW50MTZBcnJheShwKDIqdCksMCx0KX1mdW5jdGlvbiBnKHQpe3JldHVybiBuZXcgVWludDMyQXJyYXkocCg0KnQpLDAsdCl9ZnVuY3Rpb24gdih0KXtyZXR1cm4gbmV3IEludDhBcnJheShwKHQpLDAsdCl9ZnVuY3Rpb24geSh0KXtyZXR1cm4gbmV3IEludDE2QXJyYXkocCgyKnQpLDAsdCl9ZnVuY3Rpb24geCh0KXtyZXR1cm4gbmV3IEludDMyQXJyYXkocCg0KnQpLDAsdCl9ZnVuY3Rpb24gYih0KXtyZXR1cm4gbmV3IEZsb2F0MzJBcnJheShwKDQqdCksMCx0KX1mdW5jdGlvbiBfKHQpe3JldHVybiBuZXcgRmxvYXQ2NEFycmF5KHAoOCp0KSwwLHQpfWZ1bmN0aW9uIHcodCl7cmV0dXJuIG8/bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KHAodCksMCx0KTpkKHQpfWZ1bmN0aW9uIFQodCl7cmV0dXJuIHM/bmV3IEJpZ1VpbnQ2NEFycmF5KHAoOCp0KSwwLHQpOm51bGx9ZnVuY3Rpb24gayh0KXtyZXR1cm4gbD9uZXcgQmlnSW50NjRBcnJheShwKDgqdCksMCx0KTpudWxsfWZ1bmN0aW9uIEEodCl7cmV0dXJuIG5ldyBEYXRhVmlldyhwKHQpLDAsdCl9ZnVuY3Rpb24gTSh0KXt0PW4ubmV4dFBvdzIodCk7dmFyIGU9bi5sb2cyKHQpLHI9ZltlXTtyZXR1cm4gci5sZW5ndGg+MD9yLnBvcCgpOm5ldyBhKHQpfXIuZnJlZT1mdW5jdGlvbih0KXtpZihhLmlzQnVmZmVyKHQpKWZbbi5sb2cyKHQubGVuZ3RoKV0ucHVzaCh0KTtlbHNle2lmKCJbb2JqZWN0IEFycmF5QnVmZmVyXSIhPT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkmJih0PXQuYnVmZmVyKSwhdClyZXR1cm47dmFyIGU9dC5sZW5ndGh8fHQuYnl0ZUxlbmd0aCxyPTB8bi5sb2cyKGUpO3Vbcl0ucHVzaCh0KX19LHIuZnJlZVVpbnQ4PXIuZnJlZVVpbnQxNj1yLmZyZWVVaW50MzI9ci5mcmVlQmlnVWludDY0PXIuZnJlZUludDg9ci5mcmVlSW50MTY9ci5mcmVlSW50MzI9ci5mcmVlQmlnSW50NjQ9ci5mcmVlRmxvYXQzMj1yLmZyZWVGbG9hdD1yLmZyZWVGbG9hdDY0PXIuZnJlZURvdWJsZT1yLmZyZWVVaW50OENsYW1wZWQ9ci5mcmVlRGF0YVZpZXc9ZnVuY3Rpb24odCl7aCh0LmJ1ZmZlcil9LHIuZnJlZUFycmF5QnVmZmVyPWgsci5mcmVlQnVmZmVyPWZ1bmN0aW9uKHQpe2Zbbi5sb2cyKHQubGVuZ3RoKV0ucHVzaCh0KX0sci5tYWxsb2M9ZnVuY3Rpb24odCxlKXtpZih2b2lkIDA9PT1lfHwiYXJyYXlidWZmZXIiPT09ZSlyZXR1cm4gcCh0KTtzd2l0Y2goZSl7Y2FzZSJ1aW50OCI6cmV0dXJuIGQodCk7Y2FzZSJ1aW50MTYiOnJldHVybiBtKHQpO2Nhc2UidWludDMyIjpyZXR1cm4gZyh0KTtjYXNlImludDgiOnJldHVybiB2KHQpO2Nhc2UiaW50MTYiOnJldHVybiB5KHQpO2Nhc2UiaW50MzIiOnJldHVybiB4KHQpO2Nhc2UiZmxvYXQiOmNhc2UiZmxvYXQzMiI6cmV0dXJuIGIodCk7Y2FzZSJkb3VibGUiOmNhc2UiZmxvYXQ2NCI6cmV0dXJuIF8odCk7Y2FzZSJ1aW50OF9jbGFtcGVkIjpyZXR1cm4gdyh0KTtjYXNlImJpZ2ludDY0IjpyZXR1cm4gayh0KTtjYXNlImJpZ3VpbnQ2NCI6cmV0dXJuIFQodCk7Y2FzZSJidWZmZXIiOnJldHVybiBNKHQpO2Nhc2UiZGF0YSI6Y2FzZSJkYXRhdmlldyI6cmV0dXJuIEEodCk7ZGVmYXVsdDpyZXR1cm4gbnVsbH1yZXR1cm4gbnVsbH0sci5tYWxsb2NBcnJheUJ1ZmZlcj1wLHIubWFsbG9jVWludDg9ZCxyLm1hbGxvY1VpbnQxNj1tLHIubWFsbG9jVWludDMyPWcsci5tYWxsb2NJbnQ4PXYsci5tYWxsb2NJbnQxNj15LHIubWFsbG9jSW50MzI9eCxyLm1hbGxvY0Zsb2F0MzI9ci5tYWxsb2NGbG9hdD1iLHIubWFsbG9jRmxvYXQ2ND1yLm1hbGxvY0RvdWJsZT1fLHIubWFsbG9jVWludDhDbGFtcGVkPXcsci5tYWxsb2NCaWdVaW50NjQ9VCxyLm1hbGxvY0JpZ0ludDY0PWssci5tYWxsb2NEYXRhVmlldz1BLHIubWFsbG9jQnVmZmVyPU0sci5jbGVhckNhY2hlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PTA7dDwzMjsrK3QpYy5VSU5UOFt0XS5sZW5ndGg9MCxjLlVJTlQxNlt0XS5sZW5ndGg9MCxjLlVJTlQzMlt0XS5sZW5ndGg9MCxjLklOVDhbdF0ubGVuZ3RoPTAsYy5JTlQxNlt0XS5sZW5ndGg9MCxjLklOVDMyW3RdLmxlbmd0aD0wLGMuRkxPQVRbdF0ubGVuZ3RoPTAsYy5ET1VCTEVbdF0ubGVuZ3RoPTAsYy5CSUdVSU5UNjRbdF0ubGVuZ3RoPTAsYy5CSUdJTlQ2NFt0XS5sZW5ndGg9MCxjLlVJTlQ4Q1t0XS5sZW5ndGg9MCx1W3RdLmxlbmd0aD0wLGZbdF0ubGVuZ3RoPTB9fSkuY2FsbCh0aGlzKX0pLmNhbGwodGhpcywidW5kZWZpbmVkIiE9dHlwZW9mIGdsb2JhbD9nbG9iYWw6InVuZGVmaW5lZCIhPXR5cGVvZiBzZWxmP3NlbGY6InVuZGVmaW5lZCIhPXR5cGVvZiB3aW5kb3c/d2luZG93Ont9KX0seyJiaXQtdHdpZGRsZSI6MTAxLGJ1ZmZlcjoxMTIsZHVwOjE3N31dLDU5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQpe3RoaXMucm9vdHM9bmV3IEFycmF5KHQpLHRoaXMucmFua3M9bmV3IEFycmF5KHQpO2Zvcih2YXIgZT0wO2U8dDsrK2UpdGhpcy5yb290c1tlXT1lLHRoaXMucmFua3NbZV09MH1lLmV4cG9ydHM9bjt2YXIgaT1uLnByb3RvdHlwZTtPYmplY3QuZGVmaW5lUHJvcGVydHkoaSwibGVuZ3RoIix7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMucm9vdHMubGVuZ3RofX0pLGkubWFrZVNldD1mdW5jdGlvbigpe3ZhciB0PXRoaXMucm9vdHMubGVuZ3RoO3JldHVybiB0aGlzLnJvb3RzLnB1c2godCksdGhpcy5yYW5rcy5wdXNoKDApLHR9LGkuZmluZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dCxyPXRoaXMucm9vdHM7clt0XSE9PXQ7KXQ9clt0XTtmb3IoO3JbZV0hPT10Oyl7dmFyIG49cltlXTtyW2VdPXQsZT1ufXJldHVybiB0fSxpLmxpbms9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmZpbmQodCksbj10aGlzLmZpbmQoZSk7aWYociE9PW4pe3ZhciBpPXRoaXMucmFua3MsYT10aGlzLnJvb3RzLG89aVtyXSxzPWlbbl07bzxzP2Fbcl09bjpzPG8/YVtuXT1yOihhW25dPXIsKytpW3JdKX19fSx7fV0sNTkyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7cmV0dXJuIDA9PT10Lmxlbmd0aD90OmU/KHJ8fHQuc29ydChlKSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0xLG49dC5sZW5ndGgsaT10WzBdLGE9dFswXSxvPTE7bzxuOysrbylpZihhPWksZShpPXRbb10sYSkpe2lmKG89PT1yKXtyKys7Y29udGludWV9dFtyKytdPWl9cmV0dXJuIHQubGVuZ3RoPXIsdH0odCxlKSk6KHJ8fHQuc29ydCgpLGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0xLHI9dC5sZW5ndGgsbj10WzBdLGk9dFswXSxhPTE7YTxyOysrYSxpPW4paWYoaT1uLChuPXRbYV0pIT09aSl7aWYoYT09PWUpe2UrKztjb250aW51ZX10W2UrK109bn1yZXR1cm4gdC5sZW5ndGg9ZSx0fSh0KSl9fSx7fV0sNTkzOltmdW5jdGlvbih0LGUscil7dmFyIG49L1tcJ1wiXS87ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiB0PyhuLnRlc3QodC5jaGFyQXQoMCkpJiYodD10LnN1YnN0cigxKSksbi50ZXN0KHQuY2hhckF0KHQubGVuZ3RoLTEpKSYmKHQ9dC5zdWJzdHIoMCx0Lmxlbmd0aC0xKSksdCk6IiJ9fSx7fV0sNTk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7QXJyYXkuaXNBcnJheShyKXx8KHI9W10uc2xpY2UuY2FsbChhcmd1bWVudHMsMikpO2Zvcih2YXIgbj0wLGk9ci5sZW5ndGg7bjxpO24rKyl7dmFyIGE9cltuXTtmb3IodmFyIG8gaW4gYSlpZigodm9pZCAwPT09ZVtvXXx8QXJyYXkuaXNBcnJheShlW29dKXx8dFtvXSE9PWVbb10pJiZvIGluIGUpe3ZhciBzO2lmKCEwPT09YVtvXSlzPWVbb107ZWxzZXtpZighMT09PWFbb10pY29udGludWU7aWYoImZ1bmN0aW9uIj09dHlwZW9mIGFbb10mJnZvaWQgMD09PShzPWFbb10oZVtvXSx0LGUpKSljb250aW51ZX10W29dPXN9fXJldHVybiB0fX0se31dLDU5NTpbZnVuY3Rpb24odCxlLHIpeyhmdW5jdGlvbih0KXsoZnVuY3Rpb24oKXtmdW5jdGlvbiByKGUpe3RyeXtpZighdC5sb2NhbFN0b3JhZ2UpcmV0dXJuITF9Y2F0Y2godCl7cmV0dXJuITF9dmFyIHI9dC5sb2NhbFN0b3JhZ2VbZV07cmV0dXJuIG51bGwhPXImJiJ0cnVlIj09PVN0cmluZyhyKS50b0xvd2VyQ2FzZSgpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKHIoIm5vRGVwcmVjYXRpb24iKSlyZXR1cm4gdDt2YXIgbj0hMTtyZXR1cm4gZnVuY3Rpb24oKXtpZighbil7aWYocigidGhyb3dEZXByZWNhdGlvbiIpKXRocm93IG5ldyBFcnJvcihlKTtyKCJ0cmFjZURlcHJlY2F0aW9uIik/Y29uc29sZS50cmFjZShlKTpjb25zb2xlLndhcm4oZSksbj0hMH1yZXR1cm4gdC5hcHBseSh0aGlzLGFyZ3VtZW50cyl9fX0pLmNhbGwodGhpcyl9KS5jYWxsKHRoaXMsInVuZGVmaW5lZCIhPXR5cGVvZiBnbG9iYWw/Z2xvYmFsOiJ1bmRlZmluZWQiIT10eXBlb2Ygc2VsZj9zZWxmOiJ1bmRlZmluZWQiIT10eXBlb2Ygd2luZG93P3dpbmRvdzp7fSl9LHt9XSw1OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Im9iamVjdCI9PXR5cGVvZiBlJiZudWxsIT09ZXx8KGU9e30pO3JldHVybiBuKHQsZS5jYW52YXN8fGksZS5jb250ZXh0fHxhLGUpfTt2YXIgbj10KCIuL2xpYi92dGV4dCIpLGk9bnVsbCxhPW51bGw7InVuZGVmaW5lZCIhPXR5cGVvZiBkb2N1bWVudCYmKChpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpKS53aWR0aD04MTkyLGkuaGVpZ2h0PTEwMjQsYT1pLmdldENvbnRleHQoIjJkIikpfSx7Ii4vbGliL3Z0ZXh0Ijo1OTd9XSw1OTc6W2Z1bmN0aW9uKHQsZSxyKXtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9NjQsbz0xLjI1LHM9e2JyZWFrbGluZXM6ITEsYm9sZHM6ITEsaXRhbGljczohMSxzdWJzY3JpcHRzOiExLHN1cGVyc2NyaXB0czohMX07biYmKG4uc2l6ZSYmbi5zaXplPjAmJihhPW4uc2l6ZSksbi5saW5lU3BhY2luZyYmbi5saW5lU3BhY2luZz4wJiYobz1uLmxpbmVTcGFjaW5nKSxuLnN0eWxldGFncyYmbi5zdHlsZXRhZ3MuYnJlYWtsaW5lcyYmKHMuYnJlYWtsaW5lcz0hIW4uc3R5bGV0YWdzLmJyZWFrbGluZXMpLG4uc3R5bGV0YWdzJiZuLnN0eWxldGFncy5ib2xkcyYmKHMuYm9sZHM9ISFuLnN0eWxldGFncy5ib2xkcyksbi5zdHlsZXRhZ3MmJm4uc3R5bGV0YWdzLml0YWxpY3MmJihzLml0YWxpY3M9ISFuLnN0eWxldGFncy5pdGFsaWNzKSxuLnN0eWxldGFncyYmbi5zdHlsZXRhZ3Muc3Vic2NyaXB0cyYmKHMuc3Vic2NyaXB0cz0hIW4uc3R5bGV0YWdzLnN1YnNjcmlwdHMpLG4uc3R5bGV0YWdzJiZuLnN0eWxldGFncy5zdXBlcnNjcmlwdHMmJihzLnN1cGVyc2NyaXB0cz0hIW4uc3R5bGV0YWdzLnN1cGVyc2NyaXB0cykpO3JldHVybiByLmZvbnQ9W24uZm9udFN0eWxlLG4uZm9udFZhcmlhbnQsbi5mb250V2VpZ2h0LGErInB4IixuLmZvbnRdLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkuam9pbigiICIpLHIudGV4dEFsaWduPSJzdGFydCIsci50ZXh0QmFzZWxpbmU9ImFscGhhYmV0aWMiLHIuZGlyZWN0aW9uPSJsdHIiLGgoZnVuY3Rpb24odCxlLHIsbixhLG8pe3I9ci5yZXBsYWNlKC9cbi9nLCIiKSxyPSEwPT09by5icmVha2xpbmVzP3IucmVwbGFjZSgvXDxiclw+L2csIlxuIik6ci5yZXBsYWNlKC9cPGJyXD4vZywiICIpO3ZhciBzPSIiLGw9W107Zm9yKHA9MDtwPHIubGVuZ3RoOysrcClsW3BdPXM7ITA9PT1vLmJvbGRzJiYobD1jKCJiIiwiYnwiLHIsbCkpOyEwPT09by5pdGFsaWNzJiYobD1jKCJpIiwiaXwiLHIsbCkpOyEwPT09by5zdXBlcnNjcmlwdHMmJihsPWMoInN1cCIsIisxIixyLGwpKTshMD09PW8uc3Vic2NyaXB0cyYmKGw9Yygic3ViIiwiLTEiLHIsbCkpO3ZhciB1PVtdLGY9IiI7Zm9yKHA9MDtwPHIubGVuZ3RoOysrcCludWxsIT09bFtwXSYmKGYrPXJbcF0sdS5wdXNoKGxbcF0pKTt2YXIgaCxwLGQsbSxnLHY9Zi5zcGxpdCgiXG4iKSx5PXYubGVuZ3RoLHg9TWF0aC5yb3VuZChhKm4pLGI9bixfPTIqbix3PTAsVD15KngrXzt0LmhlaWdodDxUJiYodC5oZWlnaHQ9VCk7ZS5maWxsU3R5bGU9IiMwMDAiLGUuZmlsbFJlY3QoMCwwLHQud2lkdGgsdC5oZWlnaHQpLGUuZmlsbFN0eWxlPSIjZmZmIjt2YXIgaz0wLEE9IiI7ZnVuY3Rpb24gTSgpe2lmKCIiIT09QSl7dmFyIHQ9ZS5tZWFzdXJlVGV4dChBKS53aWR0aDtlLmZpbGxUZXh0KEEsYitkLF8rbSksZCs9dH19ZnVuY3Rpb24gUygpe3JldHVybiBNYXRoLnJvdW5kKGcpKyJweCAifWZ1bmN0aW9uIEUodCxyKXt2YXIgbj0iIitlLmZvbnQ7aWYoITA9PT1vLnN1YnNjcmlwdHMpe3ZhciBpPXQuaW5kZXhPZigiLSIpLGE9ci5pbmRleE9mKCItIikscz1pPi0xP3BhcnNlSW50KHRbMStpXSk6MCxsPWE+LTE/cGFyc2VJbnQoclsxK2FdKTowO3MhPT1sJiYobj1uLnJlcGxhY2UoUygpLCI/cHggIiksZyo9TWF0aC5wb3coLjc1LGwtcyksbj1uLnJlcGxhY2UoIj9weCAiLFMoKSkpLG0rPS4yNSp4KihsLXMpfWlmKCEwPT09by5zdXBlcnNjcmlwdHMpe3ZhciBjPXQuaW5kZXhPZigiKyIpLHU9ci5pbmRleE9mKCIrIiksZj1jPi0xP3BhcnNlSW50KHRbMStjXSk6MCxoPXU+LTE/cGFyc2VJbnQoclsxK3VdKTowO2YhPT1oJiYobj1uLnJlcGxhY2UoUygpLCI/cHggIiksZyo9TWF0aC5wb3coLjc1LGgtZiksbj1uLnJlcGxhY2UoIj9weCAiLFMoKSkpLG0tPS4yNSp4KihoLWYpfWlmKCEwPT09by5ib2xkcyl7dmFyIHA9dC5pbmRleE9mKCJifCIpPi0xLGQ9ci5pbmRleE9mKCJifCIpPi0xOyFwJiZkJiYobj12P24ucmVwbGFjZSgiaXRhbGljICIsIml0YWxpYyBib2xkICIpOiJib2xkICIrbikscCYmIWQmJihuPW4ucmVwbGFjZSgiYm9sZCAiLCIiKSl9aWYoITA9PT1vLml0YWxpY3Mpe3ZhciB2PXQuaW5kZXhPZigiaXwiKT4tMSx5PXIuaW5kZXhPZigiaXwiKT4tMTshdiYmeSYmKG49Iml0YWxpYyAiK24pLHYmJiF5JiYobj1uLnJlcGxhY2UoIml0YWxpYyAiLCIiKSl9ZS5mb250PW59Zm9yKGg9MDtoPHk7KytoKXt2YXIgTD12W2hdKyJcbiI7Zm9yKGQ9MCxtPWgqeCxnPW4sQT0iIixwPTA7cDxMLmxlbmd0aDsrK3Ape3ZhciBDPXArazx1Lmxlbmd0aD91W3Ara106dVt1Lmxlbmd0aC0xXTtzPT09Qz9BKz1MW3BdOihNKCksQT1MW3BdLHZvaWQgMCE9PUMmJihFKHMsQykscz1DKSl9TSgpLGsrPUwubGVuZ3RoO3ZhciBQPTB8TWF0aC5yb3VuZChkKzIqYik7dzxQJiYodz1QKX12YXIgST13LE89Xyt4Knk7cmV0dXJuIGkoZS5nZXRJbWFnZURhdGEoMCwwLEksTykuZGF0YSxbTyxJLDRdKS5waWNrKC0xLC0xLDApLnRyYW5zcG9zZSgxLDApfShlLHIsdCxhLG8scyksbixhKX0sZS5leHBvcnRzLnByb2Nlc3NQaXhlbHM9aDt2YXIgbj10KCJzdXJmYWNlLW5ldHMiKSxpPXQoIm5kYXJyYXkiKSxhPXQoInNpbXBsaWZ5LXBsYW5hci1ncmFwaCIpLG89dCgiY2xlYW4tcHNsZyIpLHM9dCgiY2R0MmQiKSxsPXQoInBsYW5hci1ncmFwaC10by1wb2x5bGluZSIpO2Z1bmN0aW9uIGModCxlLHIsbil7Zm9yKHZhciBpPSI8Iit0KyI+IixhPSI8LyIrdCsiPiIsbz1pLmxlbmd0aCxzPWEubGVuZ3RoLGw9IisiPT09ZVswXXx8Ii0iPT09ZVswXSxjPTAsdT0tcztjPi0xJiYtMSE9PShjPXIuaW5kZXhPZihpLGMpKSYmLTEhPT0odT1yLmluZGV4T2YoYSxjK28pKSYmISh1PD1jKTspe2Zvcih2YXIgZj1jO2Y8dStzOysrZilpZihmPGMrb3x8Zj49dSluW2ZdPW51bGwscj1yLnN1YnN0cigwLGYpKyIgIityLnN1YnN0cihmKzEpO2Vsc2UgaWYobnVsbCE9PW5bZl0pe3ZhciBoPW5bZl0uaW5kZXhPZihlWzBdKTstMT09PWg/bltmXSs9ZTpsJiYobltmXT1uW2ZdLnN1YnN0cigwLGgrMSkrKDErcGFyc2VJbnQobltmXVtoKzFdKSkrbltmXS5zdWJzdHIoaCsyKSl9dmFyIHA9YytvLGQ9ci5zdWJzdHIocCx1LXApLmluZGV4T2YoaSk7Yz0tMSE9PWQ/ZDp1K3N9cmV0dXJuIG59ZnVuY3Rpb24gdSh0LGUpe3ZhciByPW4odCwxMjgpO3JldHVybiBlP2Eoci5jZWxscyxyLnBvc2l0aW9ucywuMjUpOntlZGdlczpyLmNlbGxzLHBvc2l0aW9uczpyLnBvc2l0aW9uc319ZnVuY3Rpb24gZih0LGUscixuKXt2YXIgaT11KHQsbiksYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPWUudGV4dEFsaWdufHwic3RhcnQiLGk9ZS50ZXh0QmFzZWxpbmV8fCJhbHBoYWJldGljIixhPVsxPDwzMCwxPDwzMF0sbz1bMCwwXSxzPXQubGVuZ3RoLGw9MDtsPHM7KytsKWZvcih2YXIgYz10W2xdLHU9MDt1PDI7Kyt1KWFbdV09MHxNYXRoLm1pbihhW3VdLGNbdV0pLG9bdV09MHxNYXRoLm1heChvW3VdLGNbdV0pO3ZhciBmPTA7c3dpdGNoKG4pe2Nhc2UiY2VudGVyIjpmPS0uNSooYVswXStvWzBdKTticmVhaztjYXNlInJpZ2h0IjpjYXNlImVuZCI6Zj0tb1swXTticmVhaztjYXNlImxlZnQiOmNhc2Uic3RhcnQiOmY9LWFbMF07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInZlY3Rvcml6ZS10ZXh0OiBVbnJlY29nbml6ZWQgdGV4dEFsaWduOiAnIituKyInIil9dmFyIGg9MDtzd2l0Y2goaSl7Y2FzZSJoYW5naW5nIjpjYXNlInRvcCI6aD0tYVsxXTticmVhaztjYXNlIm1pZGRsZSI6aD0tLjUqKGFbMV0rb1sxXSk7YnJlYWs7Y2FzZSJhbHBoYWJldGljIjpjYXNlImlkZW9ncmFwaGljIjpoPS0zKnI7YnJlYWs7Y2FzZSJib3R0b20iOmg9LW9bMV07YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRXJyb3IoInZlY3Rvcml6ZS10ZXh0OiBVbnJlY29naW5pemVkIHRleHRCYXNlbGluZTogJyIraSsiJyIpfXZhciBwPTEvcjtyZXR1cm4ibGluZUhlaWdodCJpbiBlP3AqPStlLmxpbmVIZWlnaHQ6IndpZHRoImluIGU/cD1lLndpZHRoLyhvWzBdLWFbMF0pOiJoZWlnaHQiaW4gZSYmKHA9ZS5oZWlnaHQvKG9bMV0tYVsxXSkpLHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm5bcCoodFswXStmKSxwKih0WzFdK2gpXX0pKX0oaS5wb3NpdGlvbnMsZSxyKSxjPWkuZWRnZXMsZj0iY2N3Ij09PWUub3JpZW50YXRpb247aWYobyhhLGMpLGUucG9seWdvbnN8fGUucG9seWdvbnx8ZS5wb2x5bGluZSl7Zm9yKHZhciBoPWwoYyxhKSxwPW5ldyBBcnJheShoLmxlbmd0aCksZD0wO2Q8aC5sZW5ndGg7KytkKXtmb3IodmFyIG09aFtkXSxnPW5ldyBBcnJheShtLmxlbmd0aCksdj0wO3Y8bS5sZW5ndGg7Kyt2KXtmb3IodmFyIHk9bVt2XSx4PW5ldyBBcnJheSh5Lmxlbmd0aCksYj0wO2I8eS5sZW5ndGg7KytiKXhbYl09YVt5W2JdXS5zbGljZSgpO2YmJngucmV2ZXJzZSgpLGdbdl09eH1wW2RdPWd9cmV0dXJuIHB9cmV0dXJuIGUudHJpYW5nbGVzfHxlLnRyaWFuZ3VsYXRlfHxlLnRyaWFuZ2xlP3tjZWxsczpzKGEsYyx7ZGVsYXVuYXk6ITEsZXh0ZXJpb3I6ITEsaW50ZXJpb3I6ITB9KSxwb3NpdGlvbnM6YX06e2VkZ2VzOmMscG9zaXRpb25zOmF9fWZ1bmN0aW9uIGgodCxlLHIpe3RyeXtyZXR1cm4gZih0LGUsciwhMCl9Y2F0Y2godCl7fXRyeXtyZXR1cm4gZih0LGUsciwhMSl9Y2F0Y2godCl7fXJldHVybiBlLnBvbHlnb25zfHxlLnBvbHlsaW5lfHxlLnBvbHlnb24/W106ZS50cmlhbmdsZXN8fGUudHJpYW5ndWxhdGV8fGUudHJpYW5nbGU/e2NlbGxzOltdLHBvc2l0aW9uczpbXX06e2VkZ2VzOltdLHBvc2l0aW9uczpbXX19fSx7Y2R0MmQ6MTEzLCJjbGVhbi1wc2xnIjoxMjIsbmRhcnJheTo0NjIsInBsYW5hci1ncmFwaC10by1wb2x5bGluZSI6NDc4LCJzaW1wbGlmeS1wbGFuYXItZ3JhcGgiOjUzOCwic3VyZmFjZS1uZXRzIjo1NjV9XSw1OTg6W2Z1bmN0aW9uKHQsZSxyKXshZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7aWYoInVuZGVmaW5lZCI9PXR5cGVvZiBzZXN8fCFzZXMub2t8fHNlcy5vaygpKXsidW5kZWZpbmVkIiE9dHlwZW9mIHNlcyYmKHNlcy53ZWFrTWFwUGVybWl0SG9zdE9iamVjdHM9bSk7dmFyIHQ9ITE7aWYoImZ1bmN0aW9uIj09dHlwZW9mIFdlYWtNYXApe3ZhciByPVdlYWtNYXA7aWYoInVuZGVmaW5lZCIhPXR5cGVvZiBuYXZpZ2F0b3ImJi9GaXJlZm94Ly50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKTtlbHNle3ZhciBuPW5ldyByLGk9T2JqZWN0LmZyZWV6ZSh7fSk7aWYobi5zZXQoaSwxKSwxPT09bi5nZXQoaSkpcmV0dXJuIHZvaWQoZS5leHBvcnRzPVdlYWtNYXApO3Q9ITB9fU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHk7dmFyIGE9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMsbz1PYmplY3QuZGVmaW5lUHJvcGVydHkscz1PYmplY3QuaXNFeHRlbnNpYmxlLGw9IndlYWttYXA6aWRlbnQ6IitNYXRoLnJhbmRvbSgpKyJfX18iO2lmKCJ1bmRlZmluZWQiIT10eXBlb2YgY3J5cHRvJiYiZnVuY3Rpb24iPT10eXBlb2YgY3J5cHRvLmdldFJhbmRvbVZhbHVlcyYmImZ1bmN0aW9uIj09dHlwZW9mIEFycmF5QnVmZmVyJiYiZnVuY3Rpb24iPT10eXBlb2YgVWludDhBcnJheSl7dmFyIGM9bmV3IEFycmF5QnVmZmVyKDI1KSx1PW5ldyBVaW50OEFycmF5KGMpO2NyeXB0by5nZXRSYW5kb21WYWx1ZXModSksbD0id2Vha21hcDpyYW5kOiIrQXJyYXkucHJvdG90eXBlLm1hcC5jYWxsKHUsKGZ1bmN0aW9uKHQpe3JldHVybih0JTM2KS50b1N0cmluZygzNil9KSkuam9pbigiIikrIl9fXyJ9aWYobyhPYmplY3QsImdldE93blByb3BlcnR5TmFtZXMiLHt2YWx1ZTpmdW5jdGlvbih0KXtyZXR1cm4gYSh0KS5maWx0ZXIoZyl9fSksImdldFByb3BlcnR5TmFtZXMiaW4gT2JqZWN0KXt2YXIgZj1PYmplY3QuZ2V0UHJvcGVydHlOYW1lcztvKE9iamVjdCwiZ2V0UHJvcGVydHlOYW1lcyIse3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiBmKHQpLmZpbHRlcihnKX19KX0hZnVuY3Rpb24oKXt2YXIgdD1PYmplY3QuZnJlZXplO28oT2JqZWN0LCJmcmVlemUiLHt2YWx1ZTpmdW5jdGlvbihlKXtyZXR1cm4gdihlKSx0KGUpfX0pO3ZhciBlPU9iamVjdC5zZWFsO28oT2JqZWN0LCJzZWFsIix7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHYodCksZSh0KX19KTt2YXIgcj1PYmplY3QucHJldmVudEV4dGVuc2lvbnM7byhPYmplY3QsInByZXZlbnRFeHRlbnNpb25zIix7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHYodCkscih0KX19KX0oKTt2YXIgaD0hMSxwPTAsZD1mdW5jdGlvbigpe3RoaXMgaW5zdGFuY2VvZiBkfHx4KCk7dmFyIHQ9W10sZT1bXSxyPXArKztyZXR1cm4gT2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSx7Z2V0X19fOnt2YWx1ZTp5KChmdW5jdGlvbihuLGkpe3ZhciBhLG89dihuKTtyZXR1cm4gbz9yIGluIG8/b1tyXTppOihhPXQuaW5kZXhPZihuKSk+PTA/ZVthXTppfSkpfSxoYXNfX186e3ZhbHVlOnkoKGZ1bmN0aW9uKGUpe3ZhciBuPXYoZSk7cmV0dXJuIG4/ciBpbiBuOnQuaW5kZXhPZihlKT49MH0pKX0sc2V0X19fOnt2YWx1ZTp5KChmdW5jdGlvbihuLGkpe3ZhciBhLG89dihuKTtyZXR1cm4gbz9vW3JdPWk6KGE9dC5pbmRleE9mKG4pKT49MD9lW2FdPWk6KGE9dC5sZW5ndGgsZVthXT1pLHRbYV09biksdGhpc30pKX0sZGVsZXRlX19fOnt2YWx1ZTp5KChmdW5jdGlvbihuKXt2YXIgaSxhLG89dihuKTtyZXR1cm4gbz9yIGluIG8mJmRlbGV0ZSBvW3JdOiEoKGk9dC5pbmRleE9mKG4pKTwwKSYmKGE9dC5sZW5ndGgtMSx0W2ldPXZvaWQgMCxlW2ldPWVbYV0sdFtpXT10W2FdLHQubGVuZ3RoPWEsZS5sZW5ndGg9YSwhMCl9KSl9fSl9O2QucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoT2JqZWN0LnByb3RvdHlwZSx7Z2V0Ont2YWx1ZTpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLmdldF9fXyh0LGUpfSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9LGhhczp7dmFsdWU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuaGFzX19fKHQpfSx3cml0YWJsZTohMCxjb25maWd1cmFibGU6ITB9LHNldDp7dmFsdWU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5zZXRfX18odCxlKX0sd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfSxkZWxldGU6e3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLmRlbGV0ZV9fXyh0KX0sd3JpdGFibGU6ITAsY29uZmlndXJhYmxlOiEwfX0pLCJmdW5jdGlvbiI9PXR5cGVvZiByP2Z1bmN0aW9uKCl7ZnVuY3Rpb24gbigpe3RoaXMgaW5zdGFuY2VvZiBkfHx4KCk7dmFyIGUsbj1uZXcgcixpPXZvaWQgMCxhPSExO3JldHVybiBlPXQ/ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zZXQodCxlKSxuLmhhcyh0KXx8KGl8fChpPW5ldyBkKSxpLnNldCh0LGUpKSx0aGlzfTpmdW5jdGlvbih0LGUpe2lmKGEpdHJ5e24uc2V0KHQsZSl9Y2F0Y2gocil7aXx8KGk9bmV3IGQpLGkuc2V0X19fKHQsZSl9ZWxzZSBuLnNldCh0LGUpO3JldHVybiB0aGlzfSxPYmplY3QuY3JlYXRlKGQucHJvdG90eXBlLHtnZXRfX186e3ZhbHVlOnkoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGk/bi5oYXModCk/bi5nZXQodCk6aS5nZXRfX18odCxlKTpuLmdldCh0LGUpfSkpfSxoYXNfX186e3ZhbHVlOnkoKGZ1bmN0aW9uKHQpe3JldHVybiBuLmhhcyh0KXx8ISFpJiZpLmhhc19fXyh0KX0pKX0sc2V0X19fOnt2YWx1ZTp5KGUpfSxkZWxldGVfX186e3ZhbHVlOnkoKGZ1bmN0aW9uKHQpe3ZhciBlPSEhbi5kZWxldGUodCk7cmV0dXJuIGkmJmkuZGVsZXRlX19fKHQpfHxlfSkpfSxwZXJtaXRIb3N0T2JqZWN0c19fXzp7dmFsdWU6eSgoZnVuY3Rpb24odCl7aWYodCE9PW0pdGhyb3cgbmV3IEVycm9yKCJib2d1cyBjYWxsIHRvIHBlcm1pdEhvc3RPYmplY3RzX19fIik7YT0hMH0pKX19KX10JiYidW5kZWZpbmVkIiE9dHlwZW9mIFByb3h5JiYoUHJveHk9dm9pZCAwKSxuLnByb3RvdHlwZT1kLnByb3RvdHlwZSxlLmV4cG9ydHM9bixPYmplY3QuZGVmaW5lUHJvcGVydHkoV2Vha01hcC5wcm90b3R5cGUsImNvbnN0cnVjdG9yIix7dmFsdWU6V2Vha01hcCxlbnVtZXJhYmxlOiExLGNvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMH0pfSgpOigidW5kZWZpbmVkIiE9dHlwZW9mIFByb3h5JiYoUHJveHk9dm9pZCAwKSxlLmV4cG9ydHM9ZCl9ZnVuY3Rpb24gbSh0KXt0LnBlcm1pdEhvc3RPYmplY3RzX19fJiZ0LnBlcm1pdEhvc3RPYmplY3RzX19fKG0pfWZ1bmN0aW9uIGcodCl7cmV0dXJuISgid2Vha21hcDoiPT10LnN1YnN0cigwLCJ3ZWFrbWFwOiIubGVuZ3RoKSYmIl9fXyI9PT10LnN1YnN0cih0Lmxlbmd0aC0zKSl9ZnVuY3Rpb24gdih0KXtpZih0IT09T2JqZWN0KHQpKXRocm93IG5ldyBUeXBlRXJyb3IoIk5vdCBhbiBvYmplY3Q6ICIrdCk7dmFyIGU9dFtsXTtpZihlJiZlLmtleT09PXQpcmV0dXJuIGU7aWYocyh0KSl7ZT17a2V5OnR9O3RyeXtyZXR1cm4gbyh0LGwse3ZhbHVlOmUsd3JpdGFibGU6ITEsZW51bWVyYWJsZTohMSxjb25maWd1cmFibGU6ITF9KSxlfWNhdGNoKHQpe3JldHVybn19fWZ1bmN0aW9uIHkodCl7cmV0dXJuIHQucHJvdG90eXBlPW51bGwsT2JqZWN0LmZyZWV6ZSh0KX1mdW5jdGlvbiB4KCl7aHx8InVuZGVmaW5lZCI9PXR5cGVvZiBjb25zb2xlfHwoaD0hMCxjb25zb2xlLndhcm4oIldlYWtNYXAgc2hvdWxkIGJlIGludm9rZWQgYXMgbmV3IFdlYWtNYXAoKSwgbm90IFdlYWtNYXAoKS4gVGhpcyB3aWxsIGJlIGFuIGVycm9yIGluIHRoZSBmdXR1cmUuIikpfX0oKX0se31dLDU5OTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4vaGlkZGVuLXN0b3JlLmpzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKCl7dmFyIHQ9e307cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKCgib2JqZWN0IiE9dHlwZW9mIGV8fG51bGw9PT1lKSYmImZ1bmN0aW9uIiE9dHlwZW9mIGUpdGhyb3cgbmV3IEVycm9yKCJXZWFrbWFwLXNoaW06IEtleSBtdXN0IGJlIG9iamVjdCIpO3ZhciByPWUudmFsdWVPZih0KTtyZXR1cm4gciYmci5pZGVudGl0eT09PXQ/cjpuKGUsdCl9fX0seyIuL2hpZGRlbi1zdG9yZS5qcyI6NjAwfV0sNjAwOltmdW5jdGlvbih0LGUscil7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e2lkZW50aXR5OmV9LG49dC52YWx1ZU9mO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwidmFsdWVPZiIse3ZhbHVlOmZ1bmN0aW9uKHQpe3JldHVybiB0IT09ZT9uLmFwcGx5KHRoaXMsYXJndW1lbnRzKTpyfSx3cml0YWJsZTohMH0pLHJ9fSx7fV0sNjAxOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi9jcmVhdGUtc3RvcmUuanMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24oKXt2YXIgdD1uKCk7cmV0dXJue2dldDpmdW5jdGlvbihlLHIpe3ZhciBuPXQoZSk7cmV0dXJuIG4uaGFzT3duUHJvcGVydHkoInZhbHVlIik/bi52YWx1ZTpyfSxzZXQ6ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdChlKS52YWx1ZT1yLHRoaXN9LGhhczpmdW5jdGlvbihlKXtyZXR1cm4idmFsdWUiaW4gdChlKX0sZGVsZXRlOmZ1bmN0aW9uKGUpe3JldHVybiBkZWxldGUgdChlKS52YWx1ZX19fX0seyIuL2NyZWF0ZS1zdG9yZS5qcyI6NTk5fV0sNjAyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiZ2V0LWNhbnZhcy1jb250ZXh0Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuKCJ3ZWJnbCIsdCl9fSx7ImdldC1jYW52YXMtY29udGV4dCI6MjQ4fV0sNjAzOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpLGE9bi5pbnN0YW5jZSgpO2Z1bmN0aW9uIG8odCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1vLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShvLnByb3RvdHlwZSx7bmFtZToiQ2hpbmVzZSIsamRFcG9jaDoxNzIxNDI1LjUsaGFzWWVhclplcm86ITEsbWluTW9udGg6MCxmaXJzdE1vbnRoOjAsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiQ2hpbmVzZSIsZXBvY2hzOlsiQkVDIiwiRUMiXSxtb250aE51bWJlcnM6ZnVuY3Rpb24odCxlKXtpZigic3RyaW5nIj09dHlwZW9mIHQpe3ZhciByPXQubWF0Y2gobCk7cmV0dXJuIHI/clswXToiIn12YXIgbj10aGlzLl92YWxpZGF0ZVllYXIodCksaT10Lm1vbnRoKCksYT0iIit0aGlzLnRvQ2hpbmVzZU1vbnRoKG4saSk7cmV0dXJuIGUmJmEubGVuZ3RoPDImJihhPSIwIithKSx0aGlzLmlzSW50ZXJjYWxhcnlNb250aChuLGkpJiYoYSs9ImkiKSxhfSxtb250aE5hbWVzOmZ1bmN0aW9uKHQpe2lmKCJzdHJpbmciPT10eXBlb2YgdCl7dmFyIGU9dC5tYXRjaChjKTtyZXR1cm4gZT9lWzBdOiIifXZhciByPXRoaXMuX3ZhbGlkYXRlWWVhcih0KSxuPXQubW9udGgoKSxpPVsiXHU0ZTAwXHU2NzA4IiwiXHU0ZThjXHU2NzA4IiwiXHU0ZTA5XHU2NzA4IiwiXHU1NmRiXHU2NzA4IiwiXHU0ZTk0XHU2NzA4IiwiXHU1MTZkXHU2NzA4IiwiXHU0ZTAzXHU2NzA4IiwiXHU1MTZiXHU2NzA4IiwiXHU0ZTVkXHU2NzA4IiwiXHU1MzQxXHU2NzA4IiwiXHU1MzQxXHU0ZTAwXHU2NzA4IiwiXHU1MzQxXHU0ZThjXHU2NzA4Il1bdGhpcy50b0NoaW5lc2VNb250aChyLG4pLTFdO3JldHVybiB0aGlzLmlzSW50ZXJjYWxhcnlNb250aChyLG4pJiYoaT0iXHU5NWYwIitpKSxpfSxtb250aE5hbWVzU2hvcnQ6ZnVuY3Rpb24odCl7aWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgZT10Lm1hdGNoKHUpO3JldHVybiBlP2VbMF06IiJ9dmFyIHI9dGhpcy5fdmFsaWRhdGVZZWFyKHQpLG49dC5tb250aCgpLGk9WyJcdTRlMDAiLCJcdTRlOGMiLCJcdTRlMDkiLCJcdTU2ZGIiLCJcdTRlOTQiLCJcdTUxNmQiLCJcdTRlMDMiLCJcdTUxNmIiLCJcdTRlNWQiLCJcdTUzNDEiLCJcdTUzNDFcdTRlMDAiLCJcdTUzNDFcdTRlOGMiXVt0aGlzLnRvQ2hpbmVzZU1vbnRoKHIsbiktMV07cmV0dXJuIHRoaXMuaXNJbnRlcmNhbGFyeU1vbnRoKHIsbikmJihpPSJcdTk1ZjAiK2kpLGl9LHBhcnNlTW9udGg6ZnVuY3Rpb24odCxlKXt0PXRoaXMuX3ZhbGlkYXRlWWVhcih0KTt2YXIgcixuPXBhcnNlSW50KGUpO2lmKGlzTmFOKG4pKSJcdTk1ZjAiPT09ZVswXSYmKHI9ITAsZT1lLnN1YnN0cmluZygxKSksIlx1NjcwOCI9PT1lW2UubGVuZ3RoLTFdJiYoZT1lLnN1YnN0cmluZygwLGUubGVuZ3RoLTEpKSxuPTErWyJcdTRlMDAiLCJcdTRlOGMiLCJcdTRlMDkiLCJcdTU2ZGIiLCJcdTRlOTQiLCJcdTUxNmQiLCJcdTRlMDMiLCJcdTUxNmIiLCJcdTRlNWQiLCJcdTUzNDEiLCJcdTUzNDFcdTRlMDAiLCJcdTUzNDFcdTRlOGMiXS5pbmRleE9mKGUpO2Vsc2V7dmFyIGk9ZVtlLmxlbmd0aC0xXTtyPSJpIj09PWl8fCJJIj09PWl9cmV0dXJuIHRoaXMudG9Nb250aEluZGV4KHQsbixyKX0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6MSxpc1JUTDohMX19LF92YWxpZGF0ZVllYXI6ZnVuY3Rpb24odCxlKXtpZih0LnllYXImJih0PXQueWVhcigpKSwibnVtYmVyIiE9dHlwZW9mIHR8fHQ8MTg4OHx8dD4yMTExKXRocm93IGUucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7cmV0dXJuIHR9LHRvTW9udGhJbmRleDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5pbnRlcmNhbGFyeU1vbnRoKHQpO2lmKHImJmUhPT1pfHxlPDF8fGU+MTIpdGhyb3cgbi5sb2NhbC5pbnZhbGlkTW9udGgucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7cmV0dXJuIGk/IXImJmU8PWk/ZS0xOmU6ZS0xfSx0b0NoaW5lc2VNb250aDpmdW5jdGlvbih0LGUpe3QueWVhciYmKGU9KHQ9dC55ZWFyKCkpLm1vbnRoKCkpO3ZhciByPXRoaXMuaW50ZXJjYWxhcnlNb250aCh0KTtpZihlPDB8fGU+KHI/MTI6MTEpKXRocm93IG4ubG9jYWwuaW52YWxpZE1vbnRoLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLmxvY2FsLm5hbWUpO3JldHVybiByP2U8cj9lKzE6ZTplKzF9LGludGVyY2FsYXJ5TW9udGg6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dGhpcy5fdmFsaWRhdGVZZWFyKHQpLGZbdC1mWzBdXT4+MTN9LGlzSW50ZXJjYWxhcnlNb250aDpmdW5jdGlvbih0LGUpe3QueWVhciYmKGU9KHQ9dC55ZWFyKCkpLm1vbnRoKCkpO3ZhciByPXRoaXMuaW50ZXJjYWxhcnlNb250aCh0KTtyZXR1cm4hIXImJnI9PT1lfSxsZWFwWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gMCE9PXRoaXMuaW50ZXJjYWxhcnlNb250aCh0KX0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIGksbz10aGlzLl92YWxpZGF0ZVllYXIodCxuLmxvY2FsLmludmFsaWR5ZWFyKSxzPWhbby1oWzBdXSxsPXM+PjkmNDA5NSxjPXM+PjUmMTUsdT0zMSZzOyhpPWEubmV3RGF0ZShsLGMsdSkpLmFkZCg0LShpLmRheU9mV2VlaygpfHw3KSwiZCIpO3ZhciBmPXRoaXMudG9KRCh0LGUsciktaS50b0pEKCk7cmV0dXJuIDErTWF0aC5mbG9vcihmLzcpfSxtb250aHNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGVhcFllYXIodCk/MTM6MTJ9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dC55ZWFyJiYoZT10Lm1vbnRoKCksdD10LnllYXIoKSksdD10aGlzLl92YWxpZGF0ZVllYXIodCk7dmFyIHI9Zlt0LWZbMF1dO2lmKGU+KHI+PjEzPzEyOjExKSl0aHJvdyBuLmxvY2FsLmludmFsaWRNb250aC5yZXBsYWNlKC9cezBcfS8sdGhpcy5sb2NhbC5uYW1lKTtyZXR1cm4gciYxPDwxMi1lPzMwOjI5fSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LHMscixuLmxvY2FsLmludmFsaWREYXRlKTt0PXRoaXMuX3ZhbGlkYXRlWWVhcihpLnllYXIoKSksZT1pLm1vbnRoKCkscj1pLmRheSgpO3ZhciBvPXRoaXMuaXNJbnRlcmNhbGFyeU1vbnRoKHQsZSkscz10aGlzLnRvQ2hpbmVzZU1vbnRoKHQsZSksbD1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhLG8scztpZigib2JqZWN0Ij09dHlwZW9mIHQpbz10LGE9ZXx8e307ZWxzZXt2YXIgbDtpZighKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MTg4OCYmdDw9MjExMSkpdGhyb3cgbmV3IEVycm9yKCJMdW5hciB5ZWFyIG91dHNpZGUgcmFuZ2UgMTg4OC0yMTExIik7aWYoISgibnVtYmVyIj09dHlwZW9mIGUmJmU+PTEmJmU8PTEyKSl0aHJvdyBuZXcgRXJyb3IoIkx1bmFyIG1vbnRoIG91dHNpZGUgcmFuZ2UgMSAtIDEyIik7aWYoISgibnVtYmVyIj09dHlwZW9mIHImJnI+PTEmJnI8PTMwKSl0aHJvdyBuZXcgRXJyb3IoIkx1bmFyIGRheSBvdXRzaWRlIHJhbmdlIDEgLSAzMCIpOyJvYmplY3QiPT10eXBlb2Ygbj8obD0hMSxhPW4pOihsPSEhbixhPWl8fHt9KSxvPXt5ZWFyOnQsbW9udGg6ZSxkYXk6cixpc0ludGVyY2FsYXJ5Omx9fXM9by5kYXktMTt2YXIgYyx1PWZbby55ZWFyLWZbMF1dLHA9dT4+MTM7Yz1wJiYoby5tb250aD5wfHxvLmlzSW50ZXJjYWxhcnkpP28ubW9udGg6by5tb250aC0xO2Zvcih2YXIgZD0wO2Q8YztkKyspe3MrPXUmMTw8MTItZD8zMDoyOX12YXIgbT1oW28ueWVhci1oWzBdXSxnPW5ldyBEYXRlKG0+PjkmNDA5NSwobT4+NSYxNSktMSwoMzEmbSkrcyk7cmV0dXJuIGEueWVhcj1nLmdldEZ1bGxZZWFyKCksYS5tb250aD0xK2cuZ2V0TW9udGgoKSxhLmRheT1nLmdldERhdGUoKSxhfSh0LHMscixvKTtyZXR1cm4gYS50b0pEKGwueWVhcixsLm1vbnRoLGwuZGF5KX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3ZhciBlPWEuZnJvbUpEKHQpLHI9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYTtpZigib2JqZWN0Ij09dHlwZW9mIHQpaT10LGE9ZXx8e307ZWxzZXtpZighKCJudW1iZXIiPT10eXBlb2YgdCYmdD49MTg4OCYmdDw9MjExMSkpdGhyb3cgbmV3IEVycm9yKCJTb2xhciB5ZWFyIG91dHNpZGUgcmFuZ2UgMTg4OC0yMTExIik7aWYoISgibnVtYmVyIj09dHlwZW9mIGUmJmU+PTEmJmU8PTEyKSl0aHJvdyBuZXcgRXJyb3IoIlNvbGFyIG1vbnRoIG91dHNpZGUgcmFuZ2UgMSAtIDEyIik7aWYoISgibnVtYmVyIj09dHlwZW9mIHImJnI+PTEmJnI8PTMxKSl0aHJvdyBuZXcgRXJyb3IoIlNvbGFyIGRheSBvdXRzaWRlIHJhbmdlIDEgLSAzMSIpO2k9e3llYXI6dCxtb250aDplLGRheTpyfSxhPW58fHt9fXZhciBvPWhbaS55ZWFyLWhbMF1dLHM9aS55ZWFyPDw5fGkubW9udGg8PDV8aS5kYXk7YS55ZWFyPXM+PW8/aS55ZWFyOmkueWVhci0xLG89aFthLnllYXItaFswXV07dmFyIGwsYz1uZXcgRGF0ZShvPj45JjQwOTUsKG8+PjUmMTUpLTEsMzEmbyksdT1uZXcgRGF0ZShpLnllYXIsaS5tb250aC0xLGkuZGF5KTtsPU1hdGgucm91bmQoKHUtYykvODY0ZTUpO3ZhciBwLGQ9ZlthLnllYXItZlswXV07Zm9yKHA9MDtwPDEzO3ArKyl7dmFyIG09ZCYxPDwxMi1wPzMwOjI5O2lmKGw8bSlicmVhaztsLT1tfXZhciBnPWQ+PjEzOyFnfHxwPGc/KGEuaXNJbnRlcmNhbGFyeT0hMSxhLm1vbnRoPTErcCk6cD09PWc/KGEuaXNJbnRlcmNhbGFyeT0hMCxhLm1vbnRoPXApOihhLmlzSW50ZXJjYWxhcnk9ITEsYS5tb250aD1wKTtyZXR1cm4gYS5kYXk9MStsLGF9KGUueWVhcigpLGUubW9udGgoKSxlLmRheSgpKSxuPXRoaXMudG9Nb250aEluZGV4KHIueWVhcixyLm1vbnRoLHIuaXNJbnRlcmNhbGFyeSk7cmV0dXJuIHRoaXMubmV3RGF0ZShyLnllYXIsbixyLmRheSl9LGZyb21TdHJpbmc6ZnVuY3Rpb24odCl7dmFyIGU9dC5tYXRjaChzKSxyPXRoaXMuX3ZhbGlkYXRlWWVhcigrZVsxXSksbj0rZVsyXSxpPSEhZVszXSxhPXRoaXMudG9Nb250aEluZGV4KHIsbixpKSxvPStlWzRdO3JldHVybiB0aGlzLm5ld0RhdGUocixhLG8pfSxhZGQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQueWVhcigpLGk9dC5tb250aCgpLGE9dGhpcy5pc0ludGVyY2FsYXJ5TW9udGgobixpKSxzPXRoaXMudG9DaGluZXNlTW9udGgobixpKSxsPU9iamVjdC5nZXRQcm90b3R5cGVPZihvLnByb3RvdHlwZSkuYWRkLmNhbGwodGhpcyx0LGUscik7aWYoInkiPT09cil7dmFyIGM9bC55ZWFyKCksdT1sLm1vbnRoKCksZj10aGlzLmlzSW50ZXJjYWxhcnlNb250aChjLHMpLGg9YSYmZj90aGlzLnRvTW9udGhJbmRleChjLHMsITApOnRoaXMudG9Nb250aEluZGV4KGMscywhMSk7aCE9PXUmJmwubW9udGgoaCl9cmV0dXJuIGx9fSk7dmFyIHM9L15ccyooLT9cZFxkXGRcZHxcZFxkKVstL10oXGQ/XGQpKFtpSV0/KVstL10oXGQ/XGQpL20sbD0vXlxkP1xkW2lJXT8vbSxjPS9eXHU5NWYwP1x1NTM0MT9bXHU0ZTAwXHU0ZThjXHU0ZTA5XHU1NmRiXHU0ZTk0XHU1MTZkXHU0ZTAzXHU1MTZiXHU0ZTVkXT9cdTY3MDgvbSx1PS9eXHU5NWYwP1x1NTM0MT9bXHU0ZTAwXHU0ZThjXHU0ZTA5XHU1NmRiXHU0ZTk0XHU1MTZkXHU0ZTAzXHU1MTZiXHU0ZTVkXT8vbTtuLmNhbGVuZGFycy5jaGluZXNlPW87dmFyIGY9WzE4ODcsNTc4MCw1ODAyLDE5MTU3LDI3NDIsNTAzNTksMTE5OCwyNjQ2LDQ2Mzc4LDc0NjYsMzQxMiwzMDEyMiw1NDgyLDY3OTQ5LDIzOTYsNTI5NCw0MzU5Nyw2NzMyLDY5NTQsMzYxODEsMjc3Miw0OTU0LDE4NzgxLDIzOTYsNTQ0MjcsNTI3NCw2NzMwLDQ3NzgxLDU4MDAsNjg2OCwyMTIxMCw0NzkwLDU5NzAzLDIzNTAsNTI3MCw0NjY2NywzNDAyLDM0OTYsMzgzMjUsMTM4OCw0NzgyLDE4NzM1LDIzNTAsNTIzNzQsNjgwNCw3NDk4LDQ0NDU3LDI5MDYsMTM4OCwyOTI5NCw0NzAwLDYzNzg5LDY0NDIsNjgwNCw1NjEzOCw1ODAyLDI3NzIsMzgyMzUsMTIxMCw0Njk4LDIyODI3LDU0MTgsNjMxMjUsMzQ3Niw1ODAyLDQzNzAxLDI0ODQsNTMwMiwyNzIyMywyNjQ2LDcwOTU0LDc0NjYsMzQxMiw1NDY5OCw1NDgyLDI0MTIsMzgwNjIsNTI5NCwyNjM2LDMyMDM4LDY5NTQsNjAyNDUsMjc3Miw0ODI2LDQzMzU3LDIzOTQsNTI3NCwzOTUwMSw2NzMwLDcyMzU3LDU4MDAsNTg0NCw1Mzk3OCw0NzkwLDIzNTgsMzgwMzksNTI3MCw4NzYyNywzNDAyLDM0OTYsNTQ3MDgsNTQ4NCw0NzgyLDQzMzExLDIzNTAsMzIyMiwyNzk3OCw3NDk4LDY4OTY1LDI5MDQsNTQ4NCw0NTY3Nyw0NzAwLDY0NDQsMzk1NzMsNjgwNCw2OTg2LDE5Mjg1LDI3NzIsNjI4MTEsMTIxMCw0Njk4LDQ3NDAzLDU0MTgsNTc4MCwzODU3MCw1NTQ2LDc2NDY5LDI0MjAsNTMwMiw1MTc5OSwyNjQ2LDU0MTQsMzY1MDEsMzQxMiw1NTQ2LDE4ODY5LDI0MTIsNTQ0NDYsNTI3Niw2NzMyLDQ4NDIyLDY4MjIsMjkwMCwyODAxMCw0ODI2LDkyNTA5LDIzOTQsNTI3NCw1NTg4Myw2NzMwLDY4MjAsNDc5NTYsNTgxMiwyNzc4LDE4Nzc5LDIzNTgsNjI2MTUsNTI3MCw1NDUwLDQ2NzU3LDM0OTIsNTU1NiwyNzMxOCw0NzE4LDY3ODg3LDIzNTAsMzIyMiw1MjU1NCw3NDk4LDM0MjgsMzgyNTIsNTQ2OCw0NzAwLDMxMDIyLDY0NDQsNjQxNDksNjgwNCw2OTg2LDQzODYxLDI3NzIsNTMzOCwzNTQyMSwyNjUwLDcwOTU1LDU0MTgsNTc4MCw1NDk1NCw1NTQ2LDI3NDAsMzgwNzQsNTMwMiwyNjQ2LDI5OTkxLDMzNjYsNjEwMTEsMzQxMiw1NTQ2LDQzNDQ1LDI0MTIsNTI5NCwzNTQwNiw2NzMyLDcyOTk4LDY4MjAsNjk5Niw1MjU4NiwyNzc4LDIzOTYsMzgwNDUsNTI3NCw2Njk4LDIzMzMzLDY4MjAsNjQzMzgsNTgxMiwyNzQ2LDQzMzU1LDIzNTgsNTI3MCwzOTQ5OSw1NDUwLDc5NTI1LDM0OTIsNTU0OF0saD1bMTg4Nyw5NjY3MzIsOTY3MjMxLDk2NzczMyw5NjgyNjUsOTY4NzY2LDk2OTI5Nyw5Njk3OTgsOTcwMjk4LDk3MDgyOSw5NzEzMzAsOTcxODMwLDk3MjM2Miw5NzI4NjMsOTczMzk1LDk3Mzg5Niw5NzQzOTcsOTc0OTI4LDk3NTQyOCw5NzU5MjksOTc2NDYxLDk3Njk2Miw5Nzc0NjIsOTc3OTk0LDk3ODQ5NCw5NzkwMjYsOTc5NTI2LDk4MDAyNiw5ODA1NTgsOTgxMDU5LDk4MTU1OSw5ODIwOTEsOTgyNTkzLDk4MzEyNCw5ODM2MjQsOTg0MTI0LDk4NDY1Niw5ODUxNTcsOTg1NjU2LDk4NjE4OSw5ODY2OTAsOTg3MTkxLDk4NzcyMiw5ODgyMjIsOTg4NzUzLDk4OTI1NCw5ODk3NTQsOTkwMjg2LDk5MDc4OCw5OTEyODgsOTkxODE5LDk5MjMxOSw5OTI4NTEsOTkzMzUyLDk5Mzg1MSw5OTQzODMsOTk0ODg1LDk5NTM4NSw5OTU5MTcsOTk2NDE4LDk5NjkxOCw5OTc0NTAsOTk3OTQ5LDk5ODQ4MSw5OTg5ODIsOTk5NDgzLDEwMDAwMTQsMTAwMDUxNSwxMDAxMDE2LDEwMDE1NDgsMTAwMjA0NywxMDAyNTc4LDEwMDMwODAsMTAwMzU4MCwxMDA0MTExLDEwMDQ2MTMsMTAwNTExMywxMDA1NjQ1LDEwMDYxNDYsMTAwNjY0NSwxMDA3MTc3LDEwMDc2NzgsMTAwODIwOSwxMDA4NzEwLDEwMDkyMTEsMTAwOTc0MywxMDEwMjQzLDEwMTA3NDMsMTAxMTI3NSwxMDExNzc1LDEwMTIzMDYsMTAxMjgwNywxMDEzMzA4LDEwMTM4NDAsMTAxNDM0MSwxMDE0ODQxLDEwMTUzNzMsMTAxNTg3NCwxMDE2NDA0LDEwMTY5MDUsMTAxNzQwNSwxMDE3OTM3LDEwMTg0MzgsMTAxODkzOSwxMDE5NDcxLDEwMTk5NzIsMTAyMDQ3MSwxMDIxMDAyLDEwMjE1MDMsMTAyMjAzNSwxMDIyNTM1LDEwMjMwMzYsMTAyMzU2OCwxMDI0MDY5LDEwMjQ1NjgsMTAyNTEwMCwxMDI1NjAxLDEwMjYxMDIsMTAyNjYzMywxMDI3MTMzLDEwMjc2NjYsMTAyODE2NywxMDI4NjY2LDEwMjkxOTgsMTAyOTY5OSwxMDMwMTk5LDEwMzA3MzAsMTAzMTIzMSwxMDMxNzYzLDEwMzIyNjQsMTAzMjc2NCwxMDMzMjk2LDEwMzM3OTcsMTAzNDI5NywxMDM0ODI4LDEwMzUzMjksMTAzNTgzMCwxMDM2MzYyLDEwMzY4NjEsMTAzNzM5MywxMDM3ODk0LDEwMzgzOTQsMTAzODkyNSwxMDM5NDI3LDEwMzk5MjcsMTA0MDQ1OSwxMDQwOTU5LDEwNDE0OTEsMTA0MTk5MiwxMDQyNDkyLDEwNDMwMjMsMTA0MzUyNCwxMDQ0MDI0LDEwNDQ1NTYsMTA0NTA1NywxMDQ1NTU4LDEwNDYwOTAsMTA0NjU5MCwxMDQ3MTIxLDEwNDc2MjIsMTA0ODEyMiwxMDQ4NjU0LDEwNDkxNTQsMTA0OTY1NSwxMDUwMTg3LDEwNTA2ODksMTA1MTIxOSwxMDUxNzIwLDEwNTIyMjAsMTA1Mjc1MSwxMDUzMjUyLDEwNTM3NTIsMTA1NDI4NCwxMDU0Nzg2LDEwNTUyODUsMTA1NTgxNywxMDU2MzE3LDEwNTY4NDksMTA1NzM0OSwxMDU3ODUwLDEwNTgzODIsMTA1ODg4MywxMDU5MzgzLDEwNTk5MTUsMTA2MDQxNSwxMDYwOTQ3LDEwNjE0NDcsMTA2MTk0NywxMDYyNDc5LDEwNjI5ODEsMTA2MzQ4MCwxMDY0MDEyLDEwNjQ1MTQsMTA2NTAxNCwxMDY1NTQ1LDEwNjYwNDUsMTA2NjU3NywxMDY3MDc4LDEwNjc1NzgsMTA2ODExMCwxMDY4NjExLDEwNjkxMTIsMTA2OTY0MiwxMDcwMTQyLDEwNzA2NzQsMTA3MTE3NSwxMDcxNjc1LDEwNzIyMDcsMTA3MjcwOSwxMDczMjA5LDEwNzM3NDAsMTA3NDI0MSwxMDc0NzQxLDEwNzUyNzMsMTA3NTc3MywxMDc2MzA1LDEwNzY4MDcsMTA3NzMwOCwxMDc3ODM5LDEwNzgzNDAsMTA3ODg0MCwxMDc5MzcyLDEwNzk4NzEsMTA4MDQwMywxMDgwOTA0XX0seyIuLi9tYWluIjo2MTcsIm9iamVjdC1hc3NpZ24iOjQ2Nn1dLDYwNDpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxpPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6IkNvcHRpYyIsamRFcG9jaDoxODI1MDI5LjUsZGF5c1Blck1vbnRoOlszMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCw1XSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJDb3B0aWMiLGVwb2NoczpbIkJBTSIsIkFNIl0sbW9udGhOYW1lczpbIlRob3V0IiwiUGFvcGkiLCJIYXRob3IiLCJLb2lhayIsIlRvYmkiLCJNZXNoaXIiLCJQYXJlbWhhdCIsIlBhcmVtb3VkZSIsIlBhc2hvbnMiLCJQYW9uaSIsIkVwaXAiLCJNZXNvcmkiLCJQaSBLb2dpIEVuYXZvdCJdLG1vbnRoTmFtZXNTaG9ydDpbIlRobyIsIlBhbyIsIkhhdGgiLCJLb2kiLCJUb2IiLCJNZXNoIiwiUGF0IiwiUGFkIiwiUGFzaCIsIlBhbyIsIkVwaSIsIk1lc28iLCJQaUsiXSxkYXlOYW1lczpbIlRreXJpYWthIiwiUGVzbmF1IiwiUHNob21lbnQiLCJQZWZ0b291IiwiUHRpb3UiLCJQc29vdSIsIlBzYWJiYXRvbiJdLGRheU5hbWVzU2hvcnQ6WyJUa3kiLCJQZXMiLCJQc2giLCJQZWYiLCJQdGkiLCJQc28iLCJQc2EiXSxkYXlOYW1lc01pbjpbIlRrIiwiUGVzIiwiUHNoIiwiUGVmIiwiUHQiLCJQc28iLCJQc2EiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJkZC9tbS95eXl5IixmaXJzdERheTowLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpO3JldHVybih0PWUueWVhcigpKyhlLnllYXIoKTwwPzE6MCkpJTQ9PTN8fHQlND09LTF9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXJ8fG4ucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhciksMTN9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKC1uLmRheU9mV2VlaygpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMTM9PT1yLm1vbnRoKCkmJnRoaXMubGVhcFllYXIoci55ZWFyKCkpPzE6MCl9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybih0aGlzLmRheU9mV2Vlayh0LGUscil8fDcpPDZ9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3JldHVybih0PWkueWVhcigpKTwwJiZ0KyssaS5kYXkoKSszMCooaS5tb250aCgpLTEpKzM2NSoodC0xKStNYXRoLmZsb29yKHQvNCkrdGhpcy5qZEVwb2NoLTF9LGZyb21KRDpmdW5jdGlvbih0KXt2YXIgZT1NYXRoLmZsb29yKHQpKy41LXRoaXMuamRFcG9jaCxyPU1hdGguZmxvb3IoKGUtTWF0aC5mbG9vcigoZSszNjYpLzE0NjEpKS8zNjUpKzE7cjw9MCYmci0tLGU9TWF0aC5mbG9vcih0KSsuNS10aGlzLm5ld0RhdGUociwxLDEpLnRvSkQoKTt2YXIgbj1NYXRoLmZsb29yKGUvMzApKzEsaT1lLTMwKihuLTEpKzE7cmV0dXJuIHRoaXMubmV3RGF0ZShyLG4saSl9fSksbi5jYWxlbmRhcnMuY29wdGljPWF9LHsiLi4vbWFpbiI6NjE3LCJvYmplY3QtYXNzaWduIjo0NjZ9XSw2MDU6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksaT10KCJvYmplY3QtYXNzaWduIik7ZnVuY3Rpb24gYSh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfWEucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixpKGEucHJvdG90eXBlLHtuYW1lOiJEaXNjd29ybGQiLGpkRXBvY2g6MTcyMTQyNS41LGRheXNQZXJNb250aDpbMTYsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzJdLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6IkRpc2N3b3JsZCIsZXBvY2hzOlsiQlVDIiwiVUMiXSxtb250aE5hbWVzOlsiSWNrIiwiT2ZmbGUiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiR3J1bmUiLCJBdWd1c3QiLCJTcHVuZSIsIlNla3RvYmVyIiwiRW1iZXIiLCJEZWNlbWJlciJdLG1vbnRoTmFtZXNTaG9ydDpbIkljayIsIk9mZiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkdydSIsIkF1ZyIsIlNwdSIsIlNlayIsIkVtYiIsIkRlYyJdLGRheU5hbWVzOlsiU3VuZGF5IiwiT2N0ZWRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sZGF5TmFtZXNTaG9ydDpbIlN1biIsIk9jdCIsIk1vbiIsIlR1ZSIsIldlZCIsIlRodSIsIkZyaSIsIlNhdCJdLGRheU5hbWVzTWluOlsiU3UiLCJPYyIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6Inl5eXkvbW0vZGQiLGZpcnN0RGF5OjIsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLCExfSxtb250aHNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKSwxM30sZGF5c0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLDQwMH0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLW4uZGF5T2ZXZWVrKCksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzgpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdfSxkYXlzSW5XZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDh9LGRheU9mV2VlazpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLmRheSgpKzEpJTh9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuZGF5T2ZXZWVrKHQsZSxyKTtyZXR1cm4gbj49MiYmbjw9Nn0sZXh0cmFJbmZvOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm57Y2VudHVyeTpvW01hdGguZmxvb3IoKGkueWVhcigpLTEpLzEwMCkrMV18fCIifX0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7cmV0dXJuIHQ9aS55ZWFyKCkrKGkueWVhcigpPDA/MTowKSxlPWkubW9udGgoKSwocj1pLmRheSgpKSsoZT4xPzE2OjApKyhlPjI/MzIqKGUtMik6MCkrNDAwKih0LTEpK3RoaXMuamRFcG9jaC0xfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dD1NYXRoLmZsb29yKHQrLjUpLU1hdGguZmxvb3IodGhpcy5qZEVwb2NoKS0xO3ZhciBlPU1hdGguZmxvb3IodC80MDApKzE7dC09NDAwKihlLTEpLHQrPXQ+MTU/MTY6MDt2YXIgcj1NYXRoLmZsb29yKHQvMzIpKzEsbj10LTMyKihyLTEpKzE7cmV0dXJuIHRoaXMubmV3RGF0ZShlPD0wP2UtMTplLHIsbil9fSk7dmFyIG89ezIwOiJGcnVpdGJhdCIsMjE6IkFuY2hvdnkifTtuLmNhbGVuZGFycy5kaXNjd29ybGQ9YX0seyIuLi9tYWluIjo2MTcsIm9iamVjdC1hc3NpZ24iOjQ2Nn1dLDYwNjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxpPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6IkV0aGlvcGlhbiIsamRFcG9jaDoxNzI0MjIwLjUsZGF5c1Blck1vbnRoOlszMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCwzMCw1XSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJFdGhpb3BpYW4iLGVwb2NoczpbIkJFRSIsIkVFIl0sbW9udGhOYW1lczpbIk1lc2tlcmVtIiwiVGlrZW1ldCIsIkhpZGFyIiwiVGFoZXNhcyIsIlRpciIsIllla2F0aXQiLCJNZWdhYml0IiwiTWlhemlhIiwiR2VuYm90IiwiU2VuZSIsIkhhbWxlIiwiTmVoYXNlIiwiUGFndW1lIl0sbW9udGhOYW1lc1Nob3J0OlsiTWVzIiwiVGlrIiwiSGlkIiwiVGFoIiwiVGlyIiwiWWVrIiwiTWVnIiwiTWlhIiwiR2VuIiwiU2VuIiwiSGFtIiwiTmVoIiwiUGFnIl0sZGF5TmFtZXM6WyJFaHVkIiwiU2Vnbm8iLCJNYWtzZWdubyIsIklyb2IiLCJIYW11cyIsIkFyYiIsIktpZGFtZSJdLGRheU5hbWVzU2hvcnQ6WyJFaHUiLCJTZWciLCJNYWsiLCJJcm8iLCJIYW0iLCJBcmIiLCJLaWQiXSxkYXlOYW1lc01pbjpbIkVoIiwiU2UiLCJNYSIsIklyIiwiSGEiLCJBciIsIktpIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiZGQvbW0veXl5eSIsZmlyc3REYXk6MCxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4odD1lLnllYXIoKSsoZS55ZWFyKCk8MD8xOjApKSU0PT0zfHx0JTQ9PS0xfSxtb250aHNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyfHxuLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZFllYXIpLDEzfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgtbi5kYXlPZldlZWsoKSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpO3JldHVybiB0aGlzLmRheXNQZXJNb250aFtyLm1vbnRoKCktMV0rKDEzPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm4odD1pLnllYXIoKSk8MCYmdCsrLGkuZGF5KCkrMzAqKGkubW9udGgoKS0xKSszNjUqKHQtMSkrTWF0aC5mbG9vcih0LzQpK3RoaXMuamRFcG9jaC0xfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5mbG9vcih0KSsuNS10aGlzLmpkRXBvY2gscj1NYXRoLmZsb29yKChlLU1hdGguZmxvb3IoKGUrMzY2KS8xNDYxKSkvMzY1KSsxO3I8PTAmJnItLSxlPU1hdGguZmxvb3IodCkrLjUtdGhpcy5uZXdEYXRlKHIsMSwxKS50b0pEKCk7dmFyIG49TWF0aC5mbG9vcihlLzMwKSsxLGk9ZS0zMCoobi0xKSsxO3JldHVybiB0aGlzLm5ld0RhdGUocixuLGkpfX0pLG4uY2FsZW5kYXJzLmV0aGlvcGlhbj1hfSx7Ii4uL21haW4iOjYxNywib2JqZWN0LWFzc2lnbiI6NDY2fV0sNjA3OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIHQtZSpNYXRoLmZsb29yKHQvZSl9YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6IkhlYnJldyIsamRFcG9jaDozNDc5OTUuNSxkYXlzUGVyTW9udGg6WzMwLDI5LDMwLDI5LDMwLDI5LDMwLDI5LDMwLDI5LDMwLDI5LDI5XSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6NyxtaW5EYXk6MSxyZWdpb25hbE9wdGlvbnM6eyIiOntuYW1lOiJIZWJyZXciLGVwb2NoczpbIkJBTSIsIkFNIl0sbW9udGhOYW1lczpbIk5pc2FuIiwiSXlhciIsIlNpdmFuIiwiVGFtbXV6IiwiQXYiLCJFbHVsIiwiVGlzaHJlaSIsIkNoZXNodmFuIiwiS2lzbGV2IiwiVGV2ZXQiLCJTaGV2YXQiLCJBZGFyIiwiQWRhciBJSSJdLG1vbnRoTmFtZXNTaG9ydDpbIk5pcyIsIkl5YSIsIlNpdiIsIlRhbSIsIkF2IiwiRWx1IiwiVGlzIiwiQ2hlIiwiS2lzIiwiVGV2IiwiU2hlIiwiQWRhIiwiQWQyIl0sZGF5TmFtZXM6WyJZb20gUmlzaG9uIiwiWW9tIFNoZW5pIiwiWW9tIFNobGlzaGkiLCJZb20gUmV2aSdpIiwiWW9tIENoYW1pc2hpIiwiWW9tIFNoaXNoaSIsIllvbSBTaGFiYmF0Il0sZGF5TmFtZXNTaG9ydDpbIlJpcyIsIlNoZSIsIlNobCIsIlJldiIsIkNoYSIsIlNoaSIsIlNoYSJdLGRheU5hbWVzTWluOlsiUmkiLCJTaGUiLCJTaGwiLCJSZSIsIkNoIiwiU2hpIiwiU2hhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiZGQvbW0veXl5eSIsZmlyc3REYXk6MCxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4gdGhpcy5fbGVhcFllYXIoZS55ZWFyKCkpfSxfbGVhcFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIG8oNyoodD10PDA/dCsxOnQpKzEsMTkpPDd9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLHRoaXMuX2xlYXBZZWFyKHQueWVhcj90LnllYXIoKTp0KT8xMzoxMn0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLW4uZGF5T2ZXZWVrKCksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJblllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQ9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLnllYXIoKSx0aGlzLnRvSkQoLTE9PT10PzE6dCsxLDcsMSktdGhpcy50b0pEKHQsNywxKX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC55ZWFyJiYoZT10Lm1vbnRoKCksdD10LnllYXIoKSksdGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKSwxMj09PWUmJnRoaXMubGVhcFllYXIodCl8fDg9PT1lJiY1PT09byh0aGlzLmRheXNJblllYXIodCksMTApPzMwOjk9PT1lJiYzPT09byh0aGlzLmRheXNJblllYXIodCksMTApPzI5OnRoaXMuZGF5c1Blck1vbnRoW2UtMV19LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiA2IT09dGhpcy5kYXlPZldlZWsodCxlLHIpfSxleHRyYUluZm86ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3JldHVybnt5ZWFyVHlwZToodGhpcy5sZWFwWWVhcihpKT8iZW1ib2xpc21pYyI6ImNvbW1vbiIpKyIgIitbImRlZmljaWVudCIsInJlZ3VsYXIiLCJjb21wbGV0ZSJdW3RoaXMuZGF5c0luWWVhcihpKSUxMC0zXX19LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3Q9aS55ZWFyKCksZT1pLm1vbnRoKCkscj1pLmRheSgpO3ZhciBhPXQ8PTA/dCsxOnQsbz10aGlzLmpkRXBvY2grdGhpcy5fZGVsYXkxKGEpK3RoaXMuX2RlbGF5MihhKStyKzE7aWYoZTw3KXtmb3IodmFyIHM9NztzPD10aGlzLm1vbnRoc0luWWVhcih0KTtzKyspbys9dGhpcy5kYXlzSW5Nb250aCh0LHMpO2ZvcihzPTE7czxlO3MrKylvKz10aGlzLmRheXNJbk1vbnRoKHQscyl9ZWxzZSBmb3Iocz03O3M8ZTtzKyspbys9dGhpcy5kYXlzSW5Nb250aCh0LHMpO3JldHVybiBvfSxfZGVsYXkxOmZ1bmN0aW9uKHQpe3ZhciBlPU1hdGguZmxvb3IoKDIzNSp0LTIzNCkvMTkpLHI9MTIwODQrMTM3NTMqZSxuPTI5KmUrTWF0aC5mbG9vcihyLzI1OTIwKTtyZXR1cm4gbygzKihuKzEpLDcpPDMmJm4rKyxufSxfZGVsYXkyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX2RlbGF5MSh0LTEpLHI9dGhpcy5fZGVsYXkxKHQpO3JldHVybiB0aGlzLl9kZWxheTEodCsxKS1yPT0zNTY/MjpyLWU9PTM4Mj8xOjB9LGZyb21KRDpmdW5jdGlvbih0KXt0PU1hdGguZmxvb3IodCkrLjU7Zm9yKHZhciBlPU1hdGguZmxvb3IoOTg0OTYqKHQtdGhpcy5qZEVwb2NoKS8zNTk3NTM1MSktMTt0Pj10aGlzLnRvSkQoLTE9PT1lPzE6ZSsxLDcsMSk7KWUrKztmb3IodmFyIHI9dDx0aGlzLnRvSkQoZSwxLDEpPzc6MTt0PnRoaXMudG9KRChlLHIsdGhpcy5kYXlzSW5Nb250aChlLHIpKTspcisrO3ZhciBuPXQtdGhpcy50b0pEKGUsciwxKSsxO3JldHVybiB0aGlzLm5ld0RhdGUoZSxyLG4pfX0pLG4uY2FsZW5kYXJzLmhlYnJldz1hfSx7Ii4uL21haW4iOjYxNywib2JqZWN0LWFzc2lnbiI6NDY2fV0sNjA4OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1hLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShhLnByb3RvdHlwZSx7bmFtZToiSXNsYW1pYyIsamRFcG9jaDoxOTQ4NDM5LjUsZGF5c1Blck1vbnRoOlszMCwyOSwzMCwyOSwzMCwyOSwzMCwyOSwzMCwyOSwzMCwyOV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiSXNsYW1pYyIsZXBvY2hzOlsiQkgiLCJBSCJdLG1vbnRoTmFtZXM6WyJNdWhhcnJhbSIsIlNhZmFyIiwiUmFiaScgYWwtYXd3YWwiLCJSYWJpJyBhbC10aGFuaSIsIkp1bWFkYSBhbC1hd3dhbCIsIkp1bWFkYSBhbC10aGFuaSIsIlJhamFiIiwiU2hhJ2FiYW4iLCJSYW1hZGFuIiwiU2hhd3dhbCIsIkRodSBhbC1RaSdkYWgiLCJEaHUgYWwtSGlqamFoIl0sbW9udGhOYW1lc1Nob3J0OlsiTXVoIiwiU2FmIiwiUmFiMSIsIlJhYjIiLCJKdW0xIiwiSnVtMiIsIlJhaiIsIlNoYSciLCJSYW0iLCJTaGF3IiwiRGh1USIsIkRodUgiXSxkYXlOYW1lczpbIllhd20gYWwtYWhhZCIsIllhd20gYWwtaXRobmF5biIsIllhd20gYXRoLXRodWxhYXRoYWEnIiwiWWF3bSBhbC1hcmJpJ2FhJyIsIllhd20gYWwta2hhbVx1MDEyYnMiLCJZYXdtIGFsLWp1bSdhIiwiWWF3bSBhcy1zYWJ0Il0sZGF5TmFtZXNTaG9ydDpbIkFoYSIsIkl0aCIsIlRodSIsIkFyYiIsIktoYSIsIkp1bSIsIlNhYiJdLGRheU5hbWVzTWluOlsiQWgiLCJJdCIsIlRoIiwiQXIiLCJLaCIsIkp1IiwiU2EiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJ5eXl5L21tL2RkIixmaXJzdERheTo2LGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuKDExKnRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKS55ZWFyKCkrMTQpJTMwPDExfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgtbi5kYXlPZldlZWsoKSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5sZWFwWWVhcih0KT8zNTU6MzU0fSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMTI9PT1yLm1vbnRoKCkmJnRoaXMubGVhcFllYXIoci55ZWFyKCkpPzE6MCl9LHdlZWtEYXk6ZnVuY3Rpb24odCxlLHIpe3JldHVybiA1IT09dGhpcy5kYXlPZldlZWsodCxlLHIpfSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm4gdD1pLnllYXIoKSxlPWkubW9udGgoKSx0PXQ8PTA/dCsxOnQsKHI9aS5kYXkoKSkrTWF0aC5jZWlsKDI5LjUqKGUtMSkpKzM1NCoodC0xKStNYXRoLmZsb29yKCgzKzExKnQpLzMwKSt0aGlzLmpkRXBvY2gtMX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3Q9TWF0aC5mbG9vcih0KSsuNTt2YXIgZT1NYXRoLmZsb29yKCgzMCoodC10aGlzLmpkRXBvY2gpKzEwNjQ2KS8xMDYzMSk7ZT1lPD0wP2UtMTplO3ZhciByPU1hdGgubWluKDEyLE1hdGguY2VpbCgodC0yOS10aGlzLnRvSkQoZSwxLDEpKS8yOS41KSsxKSxuPXQtdGhpcy50b0pEKGUsciwxKSsxO3JldHVybiB0aGlzLm5ld0RhdGUoZSxyLG4pfX0pLG4uY2FsZW5kYXJzLmlzbGFtaWM9YX0seyIuLi9tYWluIjo2MTcsIm9iamVjdC1hc3NpZ24iOjQ2Nn1dLDYwOTpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxpPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6Ikp1bGlhbiIsamRFcG9jaDoxNzIxNDIzLjUsZGF5c1Blck1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiSnVsaWFuIixlcG9jaHM6WyJCQyIsIkFEIl0sbW9udGhOYW1lczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoibW0vZGQveXl5eSIsZmlyc3REYXk6MCxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4odD1lLnllYXIoKTwwP2UueWVhcigpKzE6ZS55ZWFyKCkpJTQ9PTB9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKDQtKG4uZGF5T2ZXZWVrKCl8fDcpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuZGF5T2ZXZWVrKHQsZSxyKXx8Nyk8Nn0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7cmV0dXJuIHQ9aS55ZWFyKCksZT1pLm1vbnRoKCkscj1pLmRheSgpLHQ8MCYmdCsrLGU8PTImJih0LS0sZSs9MTIpLE1hdGguZmxvb3IoMzY1LjI1Kih0KzQ3MTYpKStNYXRoLmZsb29yKDMwLjYwMDEqKGUrMSkpK3ItMTUyNC41fSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5mbG9vcih0Ky41KSsxNTI0LHI9TWF0aC5mbG9vcigoZS0xMjIuMSkvMzY1LjI1KSxuPU1hdGguZmxvb3IoMzY1LjI1KnIpLGk9TWF0aC5mbG9vcigoZS1uKS8zMC42MDAxKSxhPWktTWF0aC5mbG9vcihpPDE0PzE6MTMpLG89ci1NYXRoLmZsb29yKGE+Mj80NzE2OjQ3MTUpLHM9ZS1uLU1hdGguZmxvb3IoMzAuNjAwMSppKTtyZXR1cm4gbzw9MCYmby0tLHRoaXMubmV3RGF0ZShvLGEscyl9fSksbi5jYWxlbmRhcnMuanVsaWFuPWF9LHsiLi4vbWFpbiI6NjE3LCJvYmplY3QtYXNzaWduIjo0NjZ9XSw2MTA6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksaT10KCJvYmplY3QtYXNzaWduIik7ZnVuY3Rpb24gYSh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gdC1lKk1hdGguZmxvb3IodC9lKX1mdW5jdGlvbiBzKHQsZSl7cmV0dXJuIG8odC0xLGUpKzF9YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6Ik1heWFuIixqZEVwb2NoOjU4NDI4Mi41LGhhc1llYXJaZXJvOiEwLG1pbk1vbnRoOjAsZmlyc3RNb250aDowLG1pbkRheTowLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6Ik1heWFuIixlcG9jaHM6WyIiLCIiXSxtb250aE5hbWVzOlsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciXSxtb250aE5hbWVzU2hvcnQ6WyIwIiwiMSIsIjIiLCIzIiwiNCIsIjUiLCI2IiwiNyIsIjgiLCI5IiwiMTAiLCIxMSIsIjEyIiwiMTMiLCIxNCIsIjE1IiwiMTYiLCIxNyJdLGRheU5hbWVzOlsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciLCIxOCIsIjE5Il0sZGF5TmFtZXNTaG9ydDpbIjAiLCIxIiwiMiIsIjMiLCI0IiwiNSIsIjYiLCI3IiwiOCIsIjkiLCIxMCIsIjExIiwiMTIiLCIxMyIsIjE0IiwiMTUiLCIxNiIsIjE3IiwiMTgiLCIxOSJdLGRheU5hbWVzTWluOlsiMCIsIjEiLCIyIiwiMyIsIjQiLCI1IiwiNiIsIjciLCI4IiwiOSIsIjEwIiwiMTEiLCIxMiIsIjEzIiwiMTQiLCIxNSIsIjE2IiwiMTciLCIxOCIsIjE5Il0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiWVlZWS5tLmQiLGZpcnN0RGF5OjAsaXNSVEw6ITEsaGFhYk1vbnRoczpbIlBvcCIsIlVvIiwiWmlwIiwiWm90eiIsIlR6ZWMiLCJYdWwiLCJZYXhraW4iLCJNb2wiLCJDaGVuIiwiWWF4IiwiWmFjIiwiQ2VoIiwiTWFjIiwiS2Fua2luIiwiTXVhbiIsIlBheCIsIktheWFiIiwiQ3Vta3UiLCJVYXllYiJdLHR6b2xraW5Nb250aHM6WyJJbWl4IiwiSWsiLCJBa2JhbCIsIkthbiIsIkNoaWNjaGFuIiwiQ2ltaSIsIk1hbmlrIiwiTGFtYXQiLCJNdWx1YyIsIk9jIiwiQ2h1ZW4iLCJFYiIsIkJlbiIsIkl4IiwiTWVuIiwiQ2liIiwiQ2FiYW4iLCJFdHpuYWIiLCJDYXVhYyIsIkFoYXUiXX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhciksITF9LGZvcm1hdFllYXI6ZnVuY3Rpb24odCl7dD10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcikueWVhcigpO3ZhciBlPU1hdGguZmxvb3IodC80MDApO3JldHVybiB0JT00MDAsdCs9dDwwPzQwMDowLGUrIi4iK01hdGguZmxvb3IodC8yMCkrIi4iK3QlMjB9LGZvclllYXI6ZnVuY3Rpb24odCl7aWYoKHQ9dC5zcGxpdCgiLiIpKS5sZW5ndGg8Myl0aHJvdyJJbnZhbGlkIE1heWFuIHllYXIiO2Zvcih2YXIgZT0wLHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49cGFyc2VJbnQodFtyXSwxMCk7aWYoTWF0aC5hYnMobik+MTl8fHI+MCYmbjwwKXRocm93IkludmFsaWQgTWF5YW4geWVhciI7ZT0yMCplK259cmV0dXJuIGV9LG1vbnRoc0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLDE4fSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSksMH0sZGF5c0luWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLDM2MH0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKSwyMH0sZGF5c0luV2VlazpmdW5jdGlvbigpe3JldHVybiA1fSxkYXlPZldlZWs6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKS5kYXkoKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLCEwfSxleHRyYUluZm86ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLnRvSkQoKSxhPXRoaXMuX3RvSGFhYihpKSxvPXRoaXMuX3RvVHpvbGtpbihpKTtyZXR1cm57aGFhYk1vbnRoTmFtZTp0aGlzLmxvY2FsLmhhYWJNb250aHNbYVswXS0xXSxoYWFiTW9udGg6YVswXSxoYWFiRGF5OmFbMV0sdHpvbGtpbkRheU5hbWU6dGhpcy5sb2NhbC50em9sa2luTW9udGhzW29bMF0tMV0sdHpvbGtpbkRheTpvWzBdLHR6b2xraW5UcmVjZW5hOm9bMV19fSxfdG9IYWFiOmZ1bmN0aW9uKHQpe3ZhciBlPW8oKHQtPXRoaXMuamRFcG9jaCkrOCszNDAsMzY1KTtyZXR1cm5bTWF0aC5mbG9vcihlLzIwKSsxLG8oZSwyMCldfSxfdG9Uem9sa2luOmZ1bmN0aW9uKHQpe3JldHVybltzKCh0LT10aGlzLmpkRXBvY2gpKzIwLDIwKSxzKHQrNCwxMyldfSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWREYXRlKTtyZXR1cm4gaS5kYXkoKSsyMCppLm1vbnRoKCkrMzYwKmkueWVhcigpK3RoaXMuamRFcG9jaH0sZnJvbUpEOmZ1bmN0aW9uKHQpe3Q9TWF0aC5mbG9vcih0KSsuNS10aGlzLmpkRXBvY2g7dmFyIGU9TWF0aC5mbG9vcih0LzM2MCk7dCU9MzYwLHQrPXQ8MD8zNjA6MDt2YXIgcj1NYXRoLmZsb29yKHQvMjApLG49dCUyMDtyZXR1cm4gdGhpcy5uZXdEYXRlKGUscixuKX19KSxuLmNhbGVuZGFycy5tYXlhbj1hfSx7Ii4uL21haW4iOjYxNywib2JqZWN0LWFzc2lnbiI6NDY2fV0sNjExOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1hLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXI7dmFyIG89bi5pbnN0YW5jZSgiZ3JlZ29yaWFuIik7aShhLnByb3RvdHlwZSx7bmFtZToiTmFuYWtzaGFoaSIsamRFcG9jaDoyMjU3NjczLjUsZGF5c1Blck1vbnRoOlszMSwzMSwzMSwzMSwzMSwzMCwzMCwzMCwzMCwzMCwzMCwzMF0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiTmFuYWtzaGFoaSIsZXBvY2hzOlsiQk4iLCJBTiJdLG1vbnRoTmFtZXM6WyJDaGV0IiwiVmFpc2FraCIsIkpldGgiLCJIYXJoIiwiU2F3YW4iLCJCaGFkb24iLCJBc3N1IiwiS2F0YWsiLCJNYWdoYXIiLCJQb2giLCJNYWdoIiwiUGhhZ3VuIl0sbW9udGhOYW1lc1Nob3J0OlsiQ2hlIiwiVmFpIiwiSmV0IiwiSGFyIiwiU2F3IiwiQmhhIiwiQXNzIiwiS2F0IiwiTWdyIiwiUG9oIiwiTWdoIiwiUGhhIl0sZGF5TmFtZXM6WyJTb212YWFyIiwiTWFuZ2FsdmFyIiwiQnVkaHZhYXIiLCJWZWVydmFhciIsIlNodWthcnZhYXIiLCJTYW5pY2hhcnZhYXIiLCJFdHZhYXIiXSxkYXlOYW1lc1Nob3J0OlsiU29tIiwiTWFuZ2FsIiwiQnVkaCIsIlZlZXIiLCJTaHVrYXIiLCJTYW5pY2hhciIsIkV0Il0sZGF5TmFtZXNNaW46WyJTbyIsIk1hIiwiQnUiLCJWZSIsIlNoIiwiU2EiLCJFdCJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6ImRkLW1tLXl5eXkiLGZpcnN0RGF5OjAsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcnx8bi5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKTtyZXR1cm4gby5sZWFwWWVhcihlLnllYXIoKSsoZS55ZWFyKCk8MT8xOjApKzE0NjkpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLm5ld0RhdGUodCxlLHIpO3JldHVybiBuLmFkZCgxLShuLmRheU9mV2VlaygpfHw3KSwiZCIpLE1hdGguZmxvb3IoKG4uZGF5T2ZZZWFyKCktMSkvNykrMX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpO3JldHVybiB0aGlzLmRheXNQZXJNb250aFtyLm1vbnRoKCktMV0rKDEyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LGUscixuLmxvY2FsLmludmFsaWRNb250aCk7KHQ9aS55ZWFyKCkpPDAmJnQrKztmb3IodmFyIGE9aS5kYXkoKSxzPTE7czxpLm1vbnRoKCk7cysrKWErPXRoaXMuZGF5c1Blck1vbnRoW3MtMV07cmV0dXJuIGErby50b0pEKHQrMTQ2OCwzLDEzKX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3Q9TWF0aC5mbG9vcih0Ky41KTtmb3IodmFyIGU9TWF0aC5mbG9vcigodC0odGhpcy5qZEVwb2NoLTEpKS8zNjYpO3Q+PXRoaXMudG9KRChlKzEsMSwxKTspZSsrO2Zvcih2YXIgcj10LU1hdGguZmxvb3IodGhpcy50b0pEKGUsMSwxKSsuNSkrMSxuPTE7cj50aGlzLmRheXNJbk1vbnRoKGUsbik7KXItPXRoaXMuZGF5c0luTW9udGgoZSxuKSxuKys7cmV0dXJuIHRoaXMubmV3RGF0ZShlLG4scil9fSksbi5jYWxlbmRhcnMubmFuYWtzaGFoaT1hfSx7Ii4uL21haW4iOjYxNywib2JqZWN0LWFzc2lnbiI6NDY2fV0sNjEyOltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpO2Z1bmN0aW9uIGEodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1hLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShhLnByb3RvdHlwZSx7bmFtZToiTmVwYWxpIixqZEVwb2NoOjE3MDA3MDkuNSxkYXlzUGVyTW9udGg6WzMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSxoYXNZZWFyWmVybzohMSxtaW5Nb250aDoxLGZpcnN0TW9udGg6MSxtaW5EYXk6MSxkYXlzUGVyWWVhcjozNjUscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiTmVwYWxpIixlcG9jaHM6WyJCQlMiLCJBQlMiXSxtb250aE5hbWVzOlsiQmFpc2FraCIsIkplc3RoYSIsIkFzaGFkaCIsIlNocmF3YW4iLCJCaGFkcmEiLCJBc2h3aW4iLCJLYXJ0aWsiLCJNYW5nc2lyIiwiUGF1c2giLCJNYW5naCIsIkZhbGd1biIsIkNoYWl0cmEiXSxtb250aE5hbWVzU2hvcnQ6WyJCYWkiLCJKZSIsIkFzIiwiU2hyYSIsIkJoYSIsIkFzaCIsIkthciIsIk1hbmciLCJQYXUiLCJNYSIsIkZhbCIsIkNoYWkiXSxkYXlOYW1lczpbIkFhaXRhYmFhciIsIlNvbWJhYXIiLCJNYW5nbGJhYXIiLCJCdWRoYWJhYXIiLCJCaWhpYmFhciIsIlNodWtyYWJhYXIiLCJTaGFuaWJhYXIiXSxkYXlOYW1lc1Nob3J0OlsiQWFpdGEiLCJTb20iLCJNYW5nbCIsIkJ1ZGhhIiwiQmloaSIsIlNodWtyYSIsIlNoYW5pIl0sZGF5TmFtZXNNaW46WyJBYWkiLCJTbyIsIk1hbiIsIkJ1IiwiQmkiLCJTaHUiLCJTaGEiXSxkaWdpdHM6bnVsbCxkYXRlRm9ybWF0OiJkZC9tbS95eXl5IixmaXJzdERheToxLGlzUlRMOiExfX0sbGVhcFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuZGF5c0luWWVhcih0KSE9PXRoaXMuZGF5c1BlclllYXJ9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKC1uLmRheU9mV2VlaygpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5ZZWFyOmZ1bmN0aW9uKHQpe2lmKHQ9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZFllYXIpLnllYXIoKSx2b2lkIDA9PT10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW3RdKXJldHVybiB0aGlzLmRheXNQZXJZZWFyO2Zvcih2YXIgZT0wLHI9dGhpcy5taW5Nb250aDtyPD0xMjtyKyspZSs9dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVt0XVtyXTtyZXR1cm4gZX0sZGF5c0luTW9udGg6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC55ZWFyJiYoZT10Lm1vbnRoKCksdD10LnllYXIoKSksdGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKSx2b2lkIDA9PT10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW3RdP3RoaXMuZGF5c1Blck1vbnRoW2UtMV06dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVt0XVtlXX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuIDYhPT10aGlzLmRheU9mV2Vlayh0LGUscil9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3Q9aS55ZWFyKCksZT1pLm1vbnRoKCkscj1pLmRheSgpO3ZhciBhPW4uaW5zdGFuY2UoKSxvPTAscz1lLGw9dDt0aGlzLl9jcmVhdGVNaXNzaW5nQ2FsZW5kYXJEYXRhKHQpO3ZhciBjPXQtKHM+OXx8OT09PXMmJnI+PXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbbF1bMF0/NTY6NTcpO2Zvcig5IT09ZSYmKG89cixzLS0pOzkhPT1zOylzPD0wJiYocz0xMixsLS0pLG8rPXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbbF1bc10scy0tO3JldHVybiA5PT09ZT8obys9ci10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2xdWzBdKTwwJiYobys9YS5kYXlzSW5ZZWFyKGMpKTpvKz10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2xdWzldLXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbbF1bMF0sYS5uZXdEYXRlKGMsMSwxKS5hZGQobywiZCIpLnRvSkQoKX0sZnJvbUpEOmZ1bmN0aW9uKHQpe3ZhciBlPW4uaW5zdGFuY2UoKS5mcm9tSkQodCkscj1lLnllYXIoKSxpPWUuZGF5T2ZZZWFyKCksYT1yKzU2O3RoaXMuX2NyZWF0ZU1pc3NpbmdDYWxlbmRhckRhdGEoYSk7Zm9yKHZhciBvPTkscz10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2FdWzBdLGw9dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVthXVtvXS1zKzE7aT5sOykrK28+MTImJihvPTEsYSsrKSxsKz10aGlzLk5FUEFMSV9DQUxFTkRBUl9EQVRBW2FdW29dO3ZhciBjPXRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbYV1bb10tKGwtaSk7cmV0dXJuIHRoaXMubmV3RGF0ZShhLG8sYyl9LF9jcmVhdGVNaXNzaW5nQ2FsZW5kYXJEYXRhOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZGF5c1Blck1vbnRoLnNsaWNlKDApO2UudW5zaGlmdCgxNyk7Zm9yKHZhciByPXQtMTtyPHQrMjtyKyspdm9pZCAwPT09dGhpcy5ORVBBTElfQ0FMRU5EQVJfREFUQVtyXSYmKHRoaXMuTkVQQUxJX0NBTEVOREFSX0RBVEFbcl09ZSl9LE5FUEFMSV9DQUxFTkRBUl9EQVRBOnsxOTcwOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk3MTpbMTgsMzEsMzEsMzIsMzEsMzIsMzAsMzAsMjksMzAsMjksMzAsMzBdLDE5NzI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMwXSwxOTczOlsxOSwzMCwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMTk3NDpbMTksMzEsMzEsMzIsMzAsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5NzU6WzE4LDMxLDMxLDMyLDMyLDMwLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTc2OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMTk3NzpbMTgsMzEsMzIsMzEsMzIsMzEsMzEsMjksMzAsMjksMzAsMjksMzFdLDE5Nzg6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTc5OlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMTk4MDpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDE5ODE6WzE4LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwxOTgyOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk4MzpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDE5ODQ6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwxOTg1OlsxOCwzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMTk4NjpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5ODc6WzE4LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTg4OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMTk4OTpbMTgsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5OTA6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTkxOlsxOCwzMSwzMiwzMSwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMTk5MjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDE5OTM6WzE4LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwxOTk0OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk5NTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzBdLDE5OTY6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwxOTk3OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMTk5ODpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDE5OTk6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyZTM6WzE3LDMwLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDAxOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAwMjpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMDM6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDA0OlsxNywzMCwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjAwNTpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMDY6WzE4LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDA3OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjAwODpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMjksMzAsMzAsMjksMjksMzFdLDIwMDk6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDEwOlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjAxMTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwMTI6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwyMDEzOlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAxNDpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMTU6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDE2OlsxNywzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMjAxNzpbMTgsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMTg6WzE4LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDE5OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjAyMDpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwMjE6WzE4LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDIyOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMjAyMzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwMjQ6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDI1OlsxOCwzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAyNjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwMjc6WzE3LDMwLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDI4OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjAyOTpbMTgsMzEsMzEsMzIsMzEsMzIsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwMzA6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDMwLDMwLDMwLDMxXSwyMDMxOlsxNywzMSwzMiwzMSwzMiwzMSwzMSwzMSwzMSwzMSwzMSwzMSwzMV0sMjAzMjpbMTcsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzIsMzJdLDIwMzM6WzE4LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDM0OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjAzNTpbMTcsMzAsMzIsMzEsMzIsMzEsMzEsMjksMzAsMzAsMjksMjksMzFdLDIwMzY6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDM3OlsxOCwzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjAzODpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwMzk6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDMwLDMwXSwyMDQwOlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA0MTpbMTgsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNDI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDQzOlsxNywzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMjA0NDpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNDU6WzE4LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDQ2OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjA0NzpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNDg6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDQ5OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMjA1MDpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwNTE6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDUyOlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA1MzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzBdLDIwNTQ6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDI5LDMxXSwyMDU1OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwzMCwyOSwzMF0sMjA1NjpbMTcsMzEsMzEsMzIsMzEsMzIsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNTc6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDU4OlsxNywzMCwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwyOSwzMV0sMjA1OTpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNjA6WzE3LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDYxOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjA2MjpbMTcsMzAsMzIsMzEsMzIsMzEsMzEsMjksMzAsMjksMzAsMjksMzFdLDIwNjM6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDY0OlsxNywzMSwzMSwzMiwzMiwzMSwzMCwzMCwyOSwzMCwyOSwzMCwzMF0sMjA2NTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzFdLDIwNjY6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDI5LDMwLDMwLDI5LDI5LDMxXSwyMDY3OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA2ODpbMTcsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMjksMzAsMjksMzAsMzBdLDIwNjk6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDI5LDMwLDMxXSwyMDcwOlsxNywzMSwzMSwzMSwzMiwzMSwzMSwyOSwzMCwzMCwyOSwzMCwzMF0sMjA3MTpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNzI6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDczOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMV0sMjA3NDpbMTcsMzEsMzEsMzEsMzIsMzEsMzEsMzAsMjksMzAsMjksMzAsMzBdLDIwNzU6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDc2OlsxNiwzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwyOSwzMCwzMF0sMjA3NzpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMjksMzFdLDIwNzg6WzE3LDMxLDMxLDMxLDMyLDMxLDMxLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDc5OlsxNywzMSwzMSwzMiwzMSwzMSwzMSwzMCwyOSwzMCwyOSwzMCwzMF0sMjA4MDpbMTYsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMjksMzAsMzBdLDIwODE6WzE3LDMxLDMxLDMyLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDgyOlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA4MzpbMTcsMzEsMzEsMzIsMzEsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwODQ6WzE3LDMxLDMxLDMyLDMxLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDg1OlsxNywzMSwzMiwzMSwzMiwzMSwzMSwzMCwzMCwyOSwzMCwzMCwzMF0sMjA4NjpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwODc6WzE2LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDg4OlsxNiwzMCwzMSwzMiwzMiwzMCwzMSwzMCwzMCwyOSwzMCwzMCwzMF0sMjA4OTpbMTcsMzEsMzIsMzEsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwOTA6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDkxOlsxNiwzMSwzMSwzMiwzMSwzMSwzMSwzMCwzMCwyOSwzMCwzMCwzMF0sMjA5MjpbMTYsMzEsMzEsMzIsMzIsMzEsMzAsMzAsMzAsMjksMzAsMzAsMzBdLDIwOTM6WzE3LDMxLDMyLDMxLDMyLDMxLDMwLDMwLDMwLDI5LDMwLDMwLDMwXSwyMDk0OlsxNywzMSwzMSwzMiwzMSwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA5NTpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMzAsMjksMzAsMzAsMzAsMzBdLDIwOTY6WzE3LDMwLDMxLDMyLDMyLDMxLDMwLDMwLDI5LDMwLDI5LDMwLDMwXSwyMDk3OlsxNywzMSwzMiwzMSwzMiwzMSwzMCwzMCwzMCwyOSwzMCwzMCwzMF0sMjA5ODpbMTcsMzEsMzEsMzIsMzEsMzEsMzEsMjksMzAsMjksMzAsMzAsMzFdLDIwOTk6WzE3LDMxLDMxLDMyLDMxLDMxLDMxLDMwLDI5LDI5LDMwLDMwLDMwXSwyMTAwOlsxNywzMSwzMiwzMSwzMiwzMCwzMSwzMCwyOSwzMCwyOSwzMCwzMF19fSksbi5jYWxlbmRhcnMubmVwYWxpPWF9LHsiLi4vbWFpbiI6NjE3LCJvYmplY3QtYXNzaWduIjo0NjZ9XSw2MTM6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksaT10KCJvYmplY3QtYXNzaWduIik7ZnVuY3Rpb24gYSh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfWZ1bmN0aW9uIG8odCxlKXtyZXR1cm4gdC1lKk1hdGguZmxvb3IodC9lKX1hLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShhLnByb3RvdHlwZSx7bmFtZToiUGVyc2lhbiIsamRFcG9jaDoxOTQ4MzIwLjUsZGF5c1Blck1vbnRoOlszMSwzMSwzMSwzMSwzMSwzMSwzMCwzMCwzMCwzMCwzMCwyOV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiUGVyc2lhbiIsZXBvY2hzOlsiQlAiLCJBUCJdLG1vbnRoTmFtZXM6WyJGYXJ2YXJkaW4iLCJPcmRpYmVoZXNodCIsIktob3JkYWQiLCJUaXIiLCJNb3JkYWQiLCJTaGFocml2YXIiLCJNZWhyIiwiQWJhbiIsIkF6YXIiLCJEYXkiLCJCYWhtYW4iLCJFc2ZhbmQiXSxtb250aE5hbWVzU2hvcnQ6WyJGYXIiLCJPcmQiLCJLaG8iLCJUaXIiLCJNb3IiLCJTaGEiLCJNZWgiLCJBYmEiLCJBemEiLCJEYXkiLCJCYWgiLCJFc2YiXSxkYXlOYW1lczpbIllla3NoYW1iZSIsIkRvc2hhbWJlIiwiU2VzaGFtYmUiLCJDaFx4ZTZoYXJzaGFtYmUiLCJQYW5qc2hhbWJlIiwiSm9tJ2UiLCJTaGFtYmUiXSxkYXlOYW1lc1Nob3J0OlsiWWVrIiwiRG8iLCJTZSIsIkNoXHhlNiIsIlBhbmoiLCJKb20iLCJTaGEiXSxkYXlOYW1lc01pbjpbIlllIiwiRG8iLCJTZSIsIkNoIiwiUGEiLCJKbyIsIlNoIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6Nixpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTtyZXR1cm4gNjgyKigoZS55ZWFyKCktKGUueWVhcigpPjA/NDc0OjQ3MykpJTI4MjArNDc0KzM4KSUyODE2PDY4Mn0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoLShuLmRheU9mV2VlaygpKzEpJTcsImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LG4ubG9jYWwuaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygxMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuIDUhPT10aGlzLmRheU9mV2Vlayh0LGUscil9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpO3Q9aS55ZWFyKCksZT1pLm1vbnRoKCkscj1pLmRheSgpO3ZhciBhPXQtKHQ+PTA/NDc0OjQ3Mykscz00NzQrbyhhLDI4MjApO3JldHVybiByKyhlPD03PzMxKihlLTEpOjMwKihlLTEpKzYpK01hdGguZmxvb3IoKDY4MipzLTExMCkvMjgxNikrMzY1KihzLTEpKzEwMjk5ODMqTWF0aC5mbG9vcihhLzI4MjApK3RoaXMuamRFcG9jaC0xfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9KHQ9TWF0aC5mbG9vcih0KSsuNSktdGhpcy50b0pEKDQ3NSwxLDEpLHI9TWF0aC5mbG9vcihlLzEwMjk5ODMpLG49byhlLDEwMjk5ODMpLGk9MjgyMDtpZigxMDI5OTgyIT09bil7dmFyIGE9TWF0aC5mbG9vcihuLzM2Nikscz1vKG4sMzY2KTtpPU1hdGguZmxvb3IoKDIxMzQqYSsyODE2KnMrMjgxNSkvMTAyODUyMikrYSsxfXZhciBsPWkrMjgyMCpyKzQ3NDtsPWw8PTA/bC0xOmw7dmFyIGM9dC10aGlzLnRvSkQobCwxLDEpKzEsdT1jPD0xODY/TWF0aC5jZWlsKGMvMzEpOk1hdGguY2VpbCgoYy02KS8zMCksZj10LXRoaXMudG9KRChsLHUsMSkrMTtyZXR1cm4gdGhpcy5uZXdEYXRlKGwsdSxmKX19KSxuLmNhbGVuZGFycy5wZXJzaWFuPWEsbi5jYWxlbmRhcnMuamFsYWxpPWF9LHsiLi4vbWFpbiI6NjE3LCJvYmplY3QtYXNzaWduIjo0NjZ9XSw2MTQ6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCIuLi9tYWluIiksaT10KCJvYmplY3QtYXNzaWduIiksYT1uLmluc3RhbmNlKCk7ZnVuY3Rpb24gbyh0KXt0aGlzLmxvY2FsPXRoaXMucmVnaW9uYWxPcHRpb25zW3R8fCIiXXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfW8ucHJvdG90eXBlPW5ldyBuLmJhc2VDYWxlbmRhcixpKG8ucHJvdG90eXBlLHtuYW1lOiJUYWl3YW4iLGpkRXBvY2g6MjQxOTQwMi41LHllYXJzT2Zmc2V0OjE5MTEsZGF5c1Blck1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiVGFpd2FuIixlcG9jaHM6WyJCUk9DIiwiUk9DIl0sbW9udGhOYW1lczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoieXl5eS9tbS9kZCIsZmlyc3REYXk6MSxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTt0PXRoaXMuX3QyZ1llYXIoZS55ZWFyKCkpO3JldHVybiBhLmxlYXBZZWFyKHQpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcik7dD10aGlzLl90MmdZZWFyKGkueWVhcigpKTtyZXR1cm4gYS53ZWVrT2ZZZWFyKHQsaS5tb250aCgpLGkuZGF5KCkpfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuZGF5T2ZXZWVrKHQsZSxyKXx8Nyk8Nn0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7dD10aGlzLl90MmdZZWFyKGkueWVhcigpKTtyZXR1cm4gYS50b0pEKHQsaS5tb250aCgpLGkuZGF5KCkpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9YS5mcm9tSkQodCkscj10aGlzLl9nMnRZZWFyKGUueWVhcigpKTtyZXR1cm4gdGhpcy5uZXdEYXRlKHIsZS5tb250aCgpLGUuZGF5KCkpfSxfdDJnWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdCt0aGlzLnllYXJzT2Zmc2V0Kyh0Pj0tdGhpcy55ZWFyc09mZnNldCYmdDw9LTE/MTowKX0sX2cydFllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIHQtdGhpcy55ZWFyc09mZnNldC0odD49MSYmdDw9dGhpcy55ZWFyc09mZnNldD8xOjApfX0pLG4uY2FsZW5kYXJzLnRhaXdhbj1vfSx7Ii4uL21haW4iOjYxNywib2JqZWN0LWFzc2lnbiI6NDY2fV0sNjE1OltmdW5jdGlvbih0LGUscil7dmFyIG49dCgiLi4vbWFpbiIpLGk9dCgib2JqZWN0LWFzc2lnbiIpLGE9bi5pbnN0YW5jZSgpO2Z1bmN0aW9uIG8odCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0fHwiIl18fHRoaXMucmVnaW9uYWxPcHRpb25zWyIiXX1vLnByb3RvdHlwZT1uZXcgbi5iYXNlQ2FsZW5kYXIsaShvLnByb3RvdHlwZSx7bmFtZToiVGhhaSIsamRFcG9jaDoxNTIzMDk4LjUseWVhcnNPZmZzZXQ6NTQzLGRheXNQZXJNb250aDpbMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdLGhhc1llYXJaZXJvOiExLG1pbk1vbnRoOjEsZmlyc3RNb250aDoxLG1pbkRheToxLHJlZ2lvbmFsT3B0aW9uczp7IiI6e25hbWU6IlRoYWkiLGVwb2NoczpbIkJCRSIsIkJFIl0sbW9udGhOYW1lczpbIkphbnVhcnkiLCJGZWJydWFyeSIsIk1hcmNoIiwiQXByaWwiLCJNYXkiLCJKdW5lIiwiSnVseSIsIkF1Z3VzdCIsIlNlcHRlbWJlciIsIk9jdG9iZXIiLCJOb3ZlbWJlciIsIkRlY2VtYmVyIl0sbW9udGhOYW1lc1Nob3J0OlsiSmFuIiwiRmViIiwiTWFyIiwiQXByIiwiTWF5IiwiSnVuIiwiSnVsIiwiQXVnIiwiU2VwIiwiT2N0IiwiTm92IiwiRGVjIl0sZGF5TmFtZXM6WyJTdW5kYXkiLCJNb25kYXkiLCJUdWVzZGF5IiwiV2VkbmVzZGF5IiwiVGh1cnNkYXkiLCJGcmlkYXkiLCJTYXR1cmRheSJdLGRheU5hbWVzU2hvcnQ6WyJTdW4iLCJNb24iLCJUdWUiLCJXZWQiLCJUaHUiLCJGcmkiLCJTYXQiXSxkYXlOYW1lc01pbjpbIlN1IiwiTW8iLCJUdSIsIldlIiwiVGgiLCJGciIsIlNhIl0sZGlnaXRzOm51bGwsZGF0ZUZvcm1hdDoiZGQvbW0veXl5eSIsZmlyc3REYXk6MCxpc1JUTDohMX19LGxlYXBZZWFyOmZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRZZWFyKTt0PXRoaXMuX3QyZ1llYXIoZS55ZWFyKCkpO3JldHVybiBhLmxlYXBZZWFyKHQpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcik7dD10aGlzLl90MmdZZWFyKGkueWVhcigpKTtyZXR1cm4gYS53ZWVrT2ZZZWFyKHQsaS5tb250aCgpLGkuZGF5KCkpfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuX3ZhbGlkYXRlKHQsZSx0aGlzLm1pbkRheSxuLmxvY2FsLmludmFsaWRNb250aCk7cmV0dXJuIHRoaXMuZGF5c1Blck1vbnRoW3IubW9udGgoKS0xXSsoMj09PXIubW9udGgoKSYmdGhpcy5sZWFwWWVhcihyLnllYXIoKSk/MTowKX0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuKHRoaXMuZGF5T2ZXZWVrKHQsZSxyKXx8Nyk8Nn0sdG9KRDpmdW5jdGlvbih0LGUscil7dmFyIGk9dGhpcy5fdmFsaWRhdGUodCxlLHIsbi5sb2NhbC5pbnZhbGlkRGF0ZSk7dD10aGlzLl90MmdZZWFyKGkueWVhcigpKTtyZXR1cm4gYS50b0pEKHQsaS5tb250aCgpLGkuZGF5KCkpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9YS5mcm9tSkQodCkscj10aGlzLl9nMnRZZWFyKGUueWVhcigpKTtyZXR1cm4gdGhpcy5uZXdEYXRlKHIsZS5tb250aCgpLGUuZGF5KCkpfSxfdDJnWWVhcjpmdW5jdGlvbih0KXtyZXR1cm4gdC10aGlzLnllYXJzT2Zmc2V0LSh0Pj0xJiZ0PD10aGlzLnllYXJzT2Zmc2V0PzE6MCl9LF9nMnRZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0K3RoaXMueWVhcnNPZmZzZXQrKHQ+PS10aGlzLnllYXJzT2Zmc2V0JiZ0PD0tMT8xOjApfX0pLG4uY2FsZW5kYXJzLnRoYWk9b30seyIuLi9tYWluIjo2MTcsIm9iamVjdC1hc3NpZ24iOjQ2Nn1dLDYxNjpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIi4uL21haW4iKSxpPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBhKHQpe3RoaXMubG9jYWw9dGhpcy5yZWdpb25hbE9wdGlvbnNbdHx8IiJdfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl19YS5wcm90b3R5cGU9bmV3IG4uYmFzZUNhbGVuZGFyLGkoYS5wcm90b3R5cGUse25hbWU6IlVtbUFsUXVyYSIsaGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiVW1tIGFsLVF1cmEiLGVwb2NoczpbIkJIIiwiQUgiXSxtb250aE5hbWVzOlsiQWwtTXVoYXJyYW0iLCJTYWZhciIsIlJhYmknIGFsLWF3d2FsIiwiUmFiaScgQWwtVGhhbmkiLCJKdW1hZGEgQWwtQXd3YWwiLCJKdW1hZGEgQWwtVGhhbmkiLCJSYWphYiIsIlNoYSdhYmFuIiwiUmFtYWRhbiIsIlNoYXd3YWwiLCJEaHUgYWwtUWknZGFoIiwiRGh1IGFsLUhpamphaCJdLG1vbnRoTmFtZXNTaG9ydDpbIk11aCIsIlNhZiIsIlJhYjEiLCJSYWIyIiwiSnVtMSIsIkp1bTIiLCJSYWoiLCJTaGEnIiwiUmFtIiwiU2hhdyIsIkRodVEiLCJEaHVIIl0sZGF5TmFtZXM6WyJZYXdtIGFsLUFoYWQiLCJZYXdtIGFsLUl0aG5haW4iLCJZYXdtIGFsLVRoYWxcdTAxMDF0aFx1MDEwMVx1MjAxOSIsIllhd20gYWwtQXJiYVx1MjAxOFx1MDEwMVx1MjAxOSIsIllhd20gYWwtS2hhbVx1MDEyYnMiLCJZYXdtIGFsLUp1bVx1MjAxOGEiLCJZYXdtIGFsLVNhYnQiXSxkYXlOYW1lc01pbjpbIkFoIiwiSXRoIiwiVGgiLCJBciIsIktoIiwiSnUiLCJTYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6Inl5eXkvbW0vZGQiLGZpcnN0RGF5OjYsaXNSVEw6ITB9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkWWVhcik7cmV0dXJuIDM1NT09PXRoaXMuZGF5c0luWWVhcihlLnllYXIoKSl9LHdlZWtPZlllYXI6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMubmV3RGF0ZSh0LGUscik7cmV0dXJuIG4uYWRkKC1uLmRheU9mV2VlaygpLCJkIiksTWF0aC5mbG9vcigobi5kYXlPZlllYXIoKS0xKS83KSsxfSxkYXlzSW5ZZWFyOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wLHI9MTtyPD0xMjtyKyspZSs9dGhpcy5kYXlzSW5Nb250aCh0LHIpO3JldHVybiBlfSxkYXlzSW5Nb250aDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksbi5sb2NhbC5pbnZhbGlkTW9udGgpLnRvSkQoKS0yNGU1Ky41LGk9MCxhPTA7YTxvLmxlbmd0aDthKyspe2lmKG9bYV0+cilyZXR1cm4gb1tpXS1vW2ktMV07aSsrfXJldHVybiAzMH0sd2Vla0RheTpmdW5jdGlvbih0LGUscil7cmV0dXJuIDUhPT10aGlzLmRheU9mV2Vlayh0LGUscil9LHRvSkQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLG4ubG9jYWwuaW52YWxpZERhdGUpLGE9MTIqKGkueWVhcigpLTEpK2kubW9udGgoKS0xNTI5MjtyZXR1cm4gaS5kYXkoKStvW2EtMV0tMSsyNGU1LS41fSxmcm9tSkQ6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQtMjRlNSsuNSxyPTAsbj0wO248by5sZW5ndGgmJiEob1tuXT5lKTtuKyspcisrO3ZhciBpPXIrMTUyOTIsYT1NYXRoLmZsb29yKChpLTEpLzEyKSxzPWErMSxsPWktMTIqYSxjPWUtb1tyLTFdKzE7cmV0dXJuIHRoaXMubmV3RGF0ZShzLGwsYyl9LGlzVmFsaWQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPW4uYmFzZUNhbGVuZGFyLnByb3RvdHlwZS5pc1ZhbGlkLmFwcGx5KHRoaXMsYXJndW1lbnRzKTtyZXR1cm4gaSYmKGk9KHQ9bnVsbCE9dC55ZWFyP3QueWVhcjp0KT49MTI3NiYmdDw9MTUwMCksaX0sX3ZhbGlkYXRlOmZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPW4uYmFzZUNhbGVuZGFyLnByb3RvdHlwZS5fdmFsaWRhdGUuYXBwbHkodGhpcyxhcmd1bWVudHMpO2lmKGEueWVhcjwxMjc2fHxhLnllYXI+MTUwMCl0aHJvdyBpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLmxvY2FsLm5hbWUpO3JldHVybiBhfX0pLG4uY2FsZW5kYXJzLnVtbWFscXVyYT1hO3ZhciBvPVsyMCw1MCw3OSwxMDksMTM4LDE2OCwxOTcsMjI3LDI1NiwyODYsMzE1LDM0NSwzNzQsNDA0LDQzMyw0NjMsNDkyLDUyMiw1NTEsNTgxLDYxMSw2NDEsNjcwLDcwMCw3MjksNzU5LDc4OCw4MTgsODQ3LDg3Nyw5MDYsOTM2LDk2NSw5OTUsMTAyNCwxMDU0LDEwODMsMTExMywxMTQyLDExNzIsMTIwMSwxMjMxLDEyNjAsMTI5MCwxMzIwLDEzNTAsMTM3OSwxNDA5LDE0MzgsMTQ2OCwxNDk3LDE1MjcsMTU1NiwxNTg2LDE2MTUsMTY0NSwxNjc0LDE3MDQsMTczMywxNzYzLDE3OTIsMTgyMiwxODUxLDE4ODEsMTkxMCwxOTQwLDE5NjksMTk5OSwyMDI4LDIwNTgsMjA4NywyMTE3LDIxNDYsMjE3NiwyMjA1LDIyMzUsMjI2NCwyMjk0LDIzMjMsMjM1MywyMzgzLDI0MTMsMjQ0MiwyNDcyLDI1MDEsMjUzMSwyNTYwLDI1OTAsMjYxOSwyNjQ5LDI2NzgsMjcwOCwyNzM3LDI3NjcsMjc5NiwyODI2LDI4NTUsMjg4NSwyOTE0LDI5NDQsMjk3MywzMDAzLDMwMzIsMzA2MiwzMDkxLDMxMjEsMzE1MCwzMTgwLDMyMDksMzIzOSwzMjY4LDMyOTgsMzMyNywzMzU3LDMzODYsMzQxNiwzNDQ2LDM0NzYsMzUwNSwzNTM1LDM1NjQsMzU5NCwzNjIzLDM2NTMsMzY4MiwzNzEyLDM3NDEsMzc3MSwzODAwLDM4MzAsMzg1OSwzODg5LDM5MTgsMzk0OCwzOTc3LDQwMDcsNDAzNiw0MDY2LDQwOTUsNDEyNSw0MTU1LDQxODUsNDIxNCw0MjQ0LDQyNzMsNDMwMyw0MzMyLDQzNjIsNDM5MSw0NDIxLDQ0NTAsNDQ4MCw0NTA5LDQ1MzksNDU2OCw0NTk4LDQ2MjcsNDY1Nyw0Njg2LDQ3MTYsNDc0NSw0Nzc1LDQ4MDQsNDgzNCw0ODYzLDQ4OTMsNDkyMiw0OTUyLDQ5ODEsNTAxMSw1MDQwLDUwNzAsNTA5OSw1MTI5LDUxNTgsNTE4OCw1MjE4LDUyNDgsNTI3Nyw1MzA3LDUzMzYsNTM2Niw1Mzk1LDU0MjUsNTQ1NCw1NDg0LDU1MTMsNTU0Myw1NTcyLDU2MDIsNTYzMSw1NjYxLDU2OTAsNTcyMCw1NzQ5LDU3NzksNTgwOCw1ODM4LDU4NjcsNTg5Nyw1OTI2LDU5NTYsNTk4NSw2MDE1LDYwNDQsNjA3NCw2MTAzLDYxMzMsNjE2Miw2MTkyLDYyMjEsNjI1MSw2MjgxLDYzMTEsNjM0MCw2MzcwLDYzOTksNjQyOSw2NDU4LDY0ODgsNjUxNyw2NTQ3LDY1NzYsNjYwNiw2NjM1LDY2NjUsNjY5NCw2NzI0LDY3NTMsNjc4Myw2ODEyLDY4NDIsNjg3MSw2OTAxLDY5MzAsNjk2MCw2OTg5LDcwMTksNzA0OCw3MDc4LDcxMDcsNzEzNyw3MTY2LDcxOTYsNzIyNSw3MjU1LDcyODQsNzMxNCw3MzQ0LDczNzQsNzQwMyw3NDMzLDc0NjIsNzQ5Miw3NTIxLDc1NTEsNzU4MCw3NjEwLDc2MzksNzY2OSw3Njk4LDc3MjgsNzc1Nyw3Nzg3LDc4MTYsNzg0Niw3ODc1LDc5MDUsNzkzNCw3OTY0LDc5OTMsODAyMyw4MDUzLDgwODMsODExMiw4MTQyLDgxNzEsODIwMSw4MjMwLDgyNjAsODI4OSw4MzE5LDgzNDgsODM3OCw4NDA3LDg0MzcsODQ2Niw4NDk2LDg1MjUsODU1NSw4NTg0LDg2MTQsODY0Myw4NjczLDg3MDIsODczMiw4NzYxLDg3OTEsODgyMSw4ODUwLDg4ODAsODkwOSw4OTM4LDg5NjgsODk5Nyw5MDI3LDkwNTYsOTA4Niw5MTE1LDkxNDUsOTE3NSw5MjA1LDkyMzQsOTI2NCw5MjkzLDkzMjIsOTM1Miw5MzgxLDk0MTAsOTQ0MCw5NDcwLDk0OTksOTUyOSw5NTU5LDk1ODksOTYxOCw5NjQ4LDk2NzcsOTcwNiw5NzM2LDk3NjUsOTc5NCw5ODI0LDk4NTMsOTg4Myw5OTEzLDk5NDMsOTk3MiwxMDAwMiwxMDAzMiwxMDA2MSwxMDA5MCwxMDEyMCwxMDE0OSwxMDE3OCwxMDIwOCwxMDIzNywxMDI2NywxMDI5NywxMDMyNiwxMDM1NiwxMDM4NiwxMDQxNSwxMDQ0NSwxMDQ3NCwxMDUwNCwxMDUzMywxMDU2MiwxMDU5MiwxMDYyMSwxMDY1MSwxMDY4MCwxMDcxMCwxMDc0MCwxMDc3MCwxMDc5OSwxMDgyOSwxMDg1OCwxMDg4OCwxMDkxNywxMDk0NywxMDk3NiwxMTAwNSwxMTAzNSwxMTA2NCwxMTA5NCwxMTEyNCwxMTE1MywxMTE4MywxMTIxMywxMTI0MiwxMTI3MiwxMTMwMSwxMTMzMSwxMTM2MCwxMTM4OSwxMTQxOSwxMTQ0OCwxMTQ3OCwxMTUwNywxMTUzNywxMTU2NywxMTU5NiwxMTYyNiwxMTY1NSwxMTY4NSwxMTcxNSwxMTc0NCwxMTc3NCwxMTgwMywxMTgzMiwxMTg2MiwxMTg5MSwxMTkyMSwxMTk1MCwxMTk4MCwxMjAxMCwxMjAzOSwxMjA2OSwxMjA5OSwxMjEyOCwxMjE1OCwxMjE4NywxMjIxNiwxMjI0NiwxMjI3NSwxMjMwNCwxMjMzNCwxMjM2NCwxMjM5MywxMjQyMywxMjQ1MywxMjQ4MywxMjUxMiwxMjU0MiwxMjU3MSwxMjYwMCwxMjYzMCwxMjY1OSwxMjY4OCwxMjcxOCwxMjc0NywxMjc3NywxMjgwNywxMjgzNywxMjg2NiwxMjg5NiwxMjkyNiwxMjk1NSwxMjk4NCwxMzAxNCwxMzA0MywxMzA3MiwxMzEwMiwxMzEzMSwxMzE2MSwxMzE5MSwxMzIyMCwxMzI1MCwxMzI4MCwxMzMxMCwxMzMzOSwxMzM2OCwxMzM5OCwxMzQyNywxMzQ1NiwxMzQ4NiwxMzUxNSwxMzU0NSwxMzU3NCwxMzYwNCwxMzYzNCwxMzY2NCwxMzY5MywxMzcyMywxMzc1MiwxMzc4MiwxMzgxMSwxMzg0MCwxMzg3MCwxMzg5OSwxMzkyOSwxMzk1OCwxMzk4OCwxNDAxOCwxNDA0NywxNDA3NywxNDEwNywxNDEzNiwxNDE2NiwxNDE5NSwxNDIyNCwxNDI1NCwxNDI4MywxNDMxMywxNDM0MiwxNDM3MiwxNDQwMSwxNDQzMSwxNDQ2MSwxNDQ5MCwxNDUyMCwxNDU1MCwxNDU3OSwxNDYwOSwxNDYzOCwxNDY2NywxNDY5NywxNDcyNiwxNDc1NiwxNDc4NSwxNDgxNSwxNDg0NCwxNDg3NCwxNDkwNCwxNDkzMywxNDk2MywxNDk5MywxNTAyMSwxNTA1MSwxNTA4MSwxNTExMCwxNTE0MCwxNTE2OSwxNTE5OSwxNTIyOCwxNTI1OCwxNTI4NywxNTMxNywxNTM0NywxNTM3NywxNTQwNiwxNTQzNiwxNTQ2NSwxNTQ5NCwxNTUyNCwxNTU1MywxNTU4MiwxNTYxMiwxNTY0MSwxNTY3MSwxNTcwMSwxNTczMSwxNTc2MCwxNTc5MCwxNTgyMCwxNTg0OSwxNTg3OCwxNTkwOCwxNTkzNywxNTk2NiwxNTk5NiwxNjAyNSwxNjA1NSwxNjA4NSwxNjExNCwxNjE0NCwxNjE3NCwxNjIwNCwxNjIzMywxNjI2MiwxNjI5MiwxNjMyMSwxNjM1MCwxNjM4MCwxNjQwOSwxNjQzOSwxNjQ2OCwxNjQ5OCwxNjUyOCwxNjU1OCwxNjU4NywxNjYxNywxNjY0NiwxNjY3NiwxNjcwNSwxNjczNCwxNjc2NCwxNjc5MywxNjgyMywxNjg1MiwxNjg4MiwxNjkxMiwxNjk0MSwxNjk3MSwxNzAwMSwxNzAzMCwxNzA2MCwxNzA4OSwxNzExOCwxNzE0OCwxNzE3NywxNzIwNywxNzIzNiwxNzI2NiwxNzI5NSwxNzMyNSwxNzM1NSwxNzM4NCwxNzQxNCwxNzQ0NCwxNzQ3MywxNzUwMiwxNzUzMiwxNzU2MSwxNzU5MSwxNzYyMCwxNzY1MCwxNzY3OSwxNzcwOSwxNzczOCwxNzc2OCwxNzc5OCwxNzgyNywxNzg1NywxNzg4NiwxNzkxNiwxNzk0NSwxNzk3NSwxODAwNCwxODAzNCwxODA2MywxODA5MywxODEyMiwxODE1MiwxODE4MSwxODIxMSwxODI0MSwxODI3MCwxODMwMCwxODMzMCwxODM1OSwxODM4OCwxODQxOCwxODQ0NywxODQ3NiwxODUwNiwxODUzNSwxODU2NSwxODU5NSwxODYyNSwxODY1NCwxODY4NCwxODcxNCwxODc0MywxODc3MiwxODgwMiwxODgzMSwxODg2MCwxODg5MCwxODkxOSwxODk0OSwxODk3OSwxOTAwOCwxOTAzOCwxOTA2OCwxOTA5OCwxOTEyNywxOTE1NiwxOTE4NiwxOTIxNSwxOTI0NCwxOTI3NCwxOTMwMywxOTMzMywxOTM2MiwxOTM5MiwxOTQyMiwxOTQ1MiwxOTQ4MSwxOTUxMSwxOTU0MCwxOTU3MCwxOTU5OSwxOTYyOCwxOTY1OCwxOTY4NywxOTcxNywxOTc0NiwxOTc3NiwxOTgwNiwxOTgzNiwxOTg2NSwxOTg5NSwxOTkyNCwxOTk1NCwxOTk4MywyMDAxMiwyMDA0MiwyMDA3MSwyMDEwMSwyMDEzMCwyMDE2MCwyMDE5MCwyMDIxOSwyMDI0OSwyMDI3OSwyMDMwOCwyMDMzOCwyMDM2NywyMDM5NiwyMDQyNiwyMDQ1NSwyMDQ4NSwyMDUxNCwyMDU0NCwyMDU3MywyMDYwMywyMDYzMywyMDY2MiwyMDY5MiwyMDcyMSwyMDc1MSwyMDc4MCwyMDgxMCwyMDgzOSwyMDg2OSwyMDg5OCwyMDkyOCwyMDk1NywyMDk4NywyMTAxNiwyMTA0NiwyMTA3NiwyMTEwNSwyMTEzNSwyMTE2NCwyMTE5NCwyMTIyMywyMTI1MywyMTI4MiwyMTMxMiwyMTM0MSwyMTM3MSwyMTQwMCwyMTQzMCwyMTQ1OSwyMTQ4OSwyMTUxOSwyMTU0OCwyMTU3OCwyMTYwNywyMTYzNywyMTY2NiwyMTY5NiwyMTcyNSwyMTc1NCwyMTc4NCwyMTgxMywyMTg0MywyMTg3MywyMTkwMiwyMTkzMiwyMTk2MiwyMTk5MSwyMjAyMSwyMjA1MCwyMjA4MCwyMjEwOSwyMjEzOCwyMjE2OCwyMjE5NywyMjIyNywyMjI1NiwyMjI4NiwyMjMxNiwyMjM0NiwyMjM3NSwyMjQwNSwyMjQzNCwyMjQ2NCwyMjQ5MywyMjUyMiwyMjU1MiwyMjU4MSwyMjYxMSwyMjY0MCwyMjY3MCwyMjcwMCwyMjczMCwyMjc1OSwyMjc4OSwyMjgxOCwyMjg0OCwyMjg3NywyMjkwNiwyMjkzNiwyMjk2NSwyMjk5NCwyMzAyNCwyMzA1NCwyMzA4MywyMzExMywyMzE0MywyMzE3MywyMzIwMiwyMzIzMiwyMzI2MSwyMzI5MCwyMzMyMCwyMzM0OSwyMzM3OSwyMzQwOCwyMzQzOCwyMzQ2NywyMzQ5NywyMzUyNywyMzU1NiwyMzU4NiwyMzYxNiwyMzY0NSwyMzY3NCwyMzcwNCwyMzczMywyMzc2MywyMzc5MiwyMzgyMiwyMzg1MSwyMzg4MSwyMzkxMCwyMzk0MCwyMzk3MCwyMzk5OSwyNDAyOSwyNDA1OCwyNDA4OCwyNDExNywyNDE0NywyNDE3NiwyNDIwNiwyNDIzNSwyNDI2NSwyNDI5NCwyNDMyNCwyNDM1MywyNDM4MywyNDQxMywyNDQ0MiwyNDQ3MiwyNDUwMSwyNDUzMSwyNDU2MCwyNDU5MCwyNDYxOSwyNDY0OCwyNDY3OCwyNDcwNywyNDczNywyNDc2NywyNDc5NiwyNDgyNiwyNDg1NiwyNDg4NSwyNDkxNSwyNDk0NCwyNDk3NCwyNTAwMywyNTAzMiwyNTA2MiwyNTA5MSwyNTEyMSwyNTE1MCwyNTE4MCwyNTIxMCwyNTI0MCwyNTI2OSwyNTI5OSwyNTMyOCwyNTM1OCwyNTM4NywyNTQxNiwyNTQ0NiwyNTQ3NSwyNTUwNSwyNTUzNCwyNTU2NCwyNTU5NCwyNTYyNCwyNTY1MywyNTY4MywyNTcxMiwyNTc0MiwyNTc3MSwyNTgwMCwyNTgzMCwyNTg1OSwyNTg4OCwyNTkxOCwyNTk0OCwyNTk3NywyNjAwNywyNjAzNywyNjA2NywyNjA5NiwyNjEyNiwyNjE1NSwyNjE4NCwyNjIxNCwyNjI0MywyNjI3MiwyNjMwMiwyNjMzMiwyNjM2MSwyNjM5MSwyNjQyMSwyNjQ1MSwyNjQ4MCwyNjUxMCwyNjUzOSwyNjU2OCwyNjU5OCwyNjYyNywyNjY1NiwyNjY4NiwyNjcxNSwyNjc0NSwyNjc3NSwyNjgwNSwyNjgzNCwyNjg2NCwyNjg5MywyNjkyMywyNjk1MiwyNjk4MiwyNzAxMSwyNzA0MSwyNzA3MCwyNzA5OSwyNzEyOSwyNzE1OSwyNzE4OCwyNzIxOCwyNzI0OCwyNzI3NywyNzMwNywyNzMzNiwyNzM2NiwyNzM5NSwyNzQyNSwyNzQ1NCwyNzQ4NCwyNzUxMywyNzU0MiwyNzU3MiwyNzYwMiwyNzYzMSwyNzY2MSwyNzY5MSwyNzcyMCwyNzc1MCwyNzc3OSwyNzgwOSwyNzgzOCwyNzg2OCwyNzg5NywyNzkyNiwyNzk1NiwyNzk4NSwyODAxNSwyODA0NSwyODA3NCwyODEwNCwyODEzNCwyODE2MywyODE5MywyODIyMiwyODI1MiwyODI4MSwyODMxMCwyODM0MCwyODM2OSwyODM5OSwyODQyOCwyODQ1OCwyODQ4OCwyODUxNywyODU0NywyODU3NywyODYwNywyODYzNiwyODY2NSwyODY5NSwyODcyNCwyODc1NCwyODc4MywyODgxMywyODg0MywyODg3MiwyODkwMSwyODkzMSwyODk2MCwyODk5MCwyOTAxOSwyOTA0OSwyOTA3OCwyOTEwOCwyOTEzNywyOTE2NywyOTE5NiwyOTIyNiwyOTI1NSwyOTI4NSwyOTMxNSwyOTM0NSwyOTM3NSwyOTQwNCwyOTQzNCwyOTQ2MywyOTQ5MiwyOTUyMiwyOTU1MSwyOTU4MCwyOTYxMCwyOTY0MCwyOTY2OSwyOTY5OSwyOTcyOSwyOTc1OSwyOTc4OCwyOTgxOCwyOTg0NywyOTg3NiwyOTkwNiwyOTkzNSwyOTk2NCwyOTk5NCwzMDAyMywzMDA1MywzMDA4MiwzMDExMiwzMDE0MSwzMDE3MSwzMDIwMCwzMDIzMCwzMDI1OSwzMDI4OSwzMDMxOCwzMDM0OCwzMDM3OCwzMDQwOCwzMDQzNywzMDQ2NywzMDQ5NiwzMDUyNiwzMDU1NSwzMDU4NSwzMDYxNCwzMDY0NCwzMDY3MywzMDcwMywzMDczMiwzMDc2MiwzMDc5MSwzMDgyMSwzMDg1MCwzMDg4MCwzMDkwOSwzMDkzOSwzMDk2OCwzMDk5OCwzMTAyNywzMTA1NywzMTA4NiwzMTExNiwzMTE0NSwzMTE3NSwzMTIwNCwzMTIzNCwzMTI2MywzMTI5MywzMTMyMiwzMTM1MiwzMTM4MSwzMTQxMSwzMTQ0MSwzMTQ3MSwzMTUwMCwzMTUzMCwzMTU1OSwzMTU4OSwzMTYxOCwzMTY0OCwzMTY3NiwzMTcwNiwzMTczNiwzMTc2NiwzMTc5NSwzMTgyNSwzMTg1NCwzMTg4NCwzMTkxMywzMTk0MywzMTk3MiwzMjAwMiwzMjAzMSwzMjA2MSwzMjA5MCwzMjEyMCwzMjE1MCwzMjE4MCwzMjIwOSwzMjIzOSwzMjI2OCwzMjI5OCwzMjMyNywzMjM1NywzMjM4NiwzMjQxNiwzMjQ0NSwzMjQ3NSwzMjUwNCwzMjUzNCwzMjU2MywzMjU5MywzMjYyMiwzMjY1MiwzMjY4MSwzMjcxMSwzMjc0MCwzMjc3MCwzMjc5OSwzMjgyOSwzMjg1OCwzMjg4OCwzMjkxNywzMjk0NywzMjk3NiwzMzAwNiwzMzAzNSwzMzA2NSwzMzA5NCwzMzEyNCwzMzE1MywzMzE4MywzMzIxMywzMzI0MywzMzI3MiwzMzMwMiwzMzMzMSwzMzM2MSwzMzM5MCwzMzQyMCwzMzQ1MCwzMzQ3OSwzMzUwOSwzMzUzOSwzMzU2OCwzMzU5OCwzMzYyNywzMzY1NywzMzY4NiwzMzcxNiwzMzc0NSwzMzc3NSwzMzgwNCwzMzgzNCwzMzg2MywzMzg5MywzMzkyMiwzMzk1MiwzMzk4MSwzNDAxMSwzNDA0MCwzNDA2OSwzNDA5OSwzNDEyOCwzNDE1OCwzNDE4NywzNDIxNywzNDI0NywzNDI3NywzNDMwNiwzNDMzNiwzNDM2NSwzNDM5NSwzNDQyNCwzNDQ1NCwzNDQ4MywzNDUxMiwzNDU0MiwzNDU3MSwzNDYwMSwzNDYzMSwzNDY2MCwzNDY5MCwzNDcxOSwzNDc0OSwzNDc3OCwzNDgwOCwzNDgzNywzNDg2NywzNDg5NiwzNDkyNiwzNDk1NSwzNDk4NSwzNTAxNSwzNTA0NCwzNTA3NCwzNTEwMywzNTEzMywzNTE2MiwzNTE5MiwzNTIyMiwzNTI1MSwzNTI4MCwzNTMxMCwzNTM0MCwzNTM3MCwzNTM5OSwzNTQyOSwzNTQ1OCwzNTQ4OCwzNTUxNywzNTU0NywzNTU3NiwzNTYwNSwzNTYzNSwzNTY2NSwzNTY5NCwzNTcyMywzNTc1MywzNTc4MiwzNTgxMSwzNTg0MSwzNTg3MSwzNTkwMSwzNTkzMCwzNTk2MCwzNTk4OSwzNjAxOSwzNjA0OCwzNjA3OCwzNjEwNywzNjEzNiwzNjE2NiwzNjE5NSwzNjIyNSwzNjI1NCwzNjI4NCwzNjMxNCwzNjM0MywzNjM3MywzNjQwMywzNjQzMywzNjQ2MiwzNjQ5MiwzNjUyMSwzNjU1MSwzNjU4MCwzNjYxMCwzNjYzOSwzNjY2OSwzNjY5OCwzNjcyOCwzNjc1NywzNjc4NiwzNjgxNiwzNjg0NSwzNjg3NSwzNjkwNCwzNjkzNCwzNjk2MywzNjk5MywzNzAyMiwzNzA1MiwzNzA4MSwzNzExMSwzNzE0MSwzNzE3MCwzNzIwMCwzNzIyOSwzNzI1OSwzNzI4OCwzNzMxOCwzNzM0NywzNzM3NywzNzQwNiwzNzQzNiwzNzQ2NSwzNzQ5NSwzNzUyNCwzNzU1NCwzNzU4NCwzNzYxMywzNzY0MywzNzY3MiwzNzcwMSwzNzczMSwzNzc2MCwzNzc5MCwzNzgxOSwzNzg0OSwzNzg3OCwzNzkwOCwzNzkzOCwzNzk2NywzNzk5NywzODAyNywzODA1NiwzODA4NSwzODExNSwzODE0NCwzODE3NCwzODIwMywzODIzMywzODI2MiwzODI5MiwzODMyMiwzODM1MSwzODM4MSwzODQxMCwzODQ0MCwzODQ2OSwzODQ5OSwzODUyOCwzODU1OCwzODU4NywzODYxNywzODY0NiwzODY3NiwzODcwNSwzODczNSwzODc2NCwzODc5NCwzODgyMywzODg1MywzODg4MiwzODkxMiwzODk0MSwzODk3MSwzOTAwMSwzOTAzMCwzOTA1OSwzOTA4OSwzOTExOCwzOTE0OCwzOTE3OCwzOTIwOCwzOTIzNywzOTI2NywzOTI5NywzOTMyNiwzOTM1NSwzOTM4NSwzOTQxNCwzOTQ0NCwzOTQ3MywzOTUwMywzOTUzMiwzOTU2MiwzOTU5MiwzOTYyMSwzOTY1MCwzOTY4MCwzOTcwOSwzOTczOSwzOTc2OCwzOTc5OCwzOTgyNywzOTg1NywzOTg4NiwzOTkxNiwzOTk0NiwzOTk3NSw0MDAwNSw0MDAzNSw0MDA2NCw0MDA5NCw0MDEyMyw0MDE1Myw0MDE4Miw0MDIxMiw0MDI0MSw0MDI3MSw0MDMwMCw0MDMzMCw0MDM1OSw0MDM4OSw0MDQxOCw0MDQ0OCw0MDQ3Nyw0MDUwNyw0MDUzNiw0MDU2Niw0MDU5NSw0MDYyNSw0MDY1NSw0MDY4NSw0MDcxNCw0MDc0NCw0MDc3Myw0MDgwMyw0MDgzMiw0MDg2Miw0MDg5Miw0MDkyMSw0MDk1MSw0MDk4MCw0MTAwOSw0MTAzOSw0MTA2OCw0MTA5OCw0MTEyNyw0MTE1Nyw0MTE4Niw0MTIxNiw0MTI0NSw0MTI3NSw0MTMwNCw0MTMzNCw0MTM2NCw0MTM5Myw0MTQyMiw0MTQ1Miw0MTQ4MSw0MTUxMSw0MTU0MCw0MTU3MCw0MTU5OSw0MTYyOSw0MTY1OCw0MTY4OCw0MTcxOCw0MTc0OCw0MTc3Nyw0MTgwNyw0MTgzNiw0MTg2NSw0MTg5NCw0MTkyNCw0MTk1Myw0MTk4Myw0MjAxMiw0MjA0Miw0MjA3Miw0MjEwMiw0MjEzMSw0MjE2MSw0MjE5MCw0MjIyMCw0MjI0OSw0MjI3OSw0MjMwOCw0MjMzNyw0MjM2Nyw0MjM5Nyw0MjQyNiw0MjQ1Niw0MjQ4NSw0MjUxNSw0MjU0NSw0MjU3NCw0MjYwNCw0MjYzMyw0MjY2Miw0MjY5Miw0MjcyMSw0Mjc1MSw0Mjc4MCw0MjgxMCw0MjgzOSw0Mjg2OSw0Mjg5OSw0MjkyOSw0Mjk1OCw0Mjk4OCw0MzAxNyw0MzA0Niw0MzA3Niw0MzEwNSw0MzEzNSw0MzE2NCw0MzE5NCw0MzIyMyw0MzI1Myw0MzI4Myw0MzMxMiw0MzM0Miw0MzM3MSw0MzQwMSw0MzQzMCw0MzQ2MCw0MzQ4OSw0MzUxOSw0MzU0OCw0MzU3OCw0MzYwNyw0MzYzNyw0MzY2Niw0MzY5Niw0MzcyNiw0Mzc1NSw0Mzc4NSw0MzgxNCw0Mzg0NCw0Mzg3Myw0MzkwMyw0MzkzMiw0Mzk2Miw0Mzk5MSw0NDAyMSw0NDA1MCw0NDA4MCw0NDEwOSw0NDEzOSw0NDE2OSw0NDE5OCw0NDIyOCw0NDI1OCw0NDI4Nyw0NDMxNyw0NDM0Niw0NDM3NSw0NDQwNSw0NDQzNCw0NDQ2NCw0NDQ5Myw0NDUyMyw0NDU1Myw0NDU4Miw0NDYxMiw0NDY0MSw0NDY3MSw0NDcwMCw0NDczMCw0NDc1OSw0NDc4OCw0NDgxOCw0NDg0Nyw0NDg3Nyw0NDkwNiw0NDkzNiw0NDk2Niw0NDk5Niw0NTAyNSw0NTA1NSw0NTA4NCw0NTExNCw0NTE0Myw0NTE3Miw0NTIwMiw0NTIzMSw0NTI2MSw0NTI5MCw0NTMyMCw0NTM1MCw0NTM4MCw0NTQwOSw0NTQzOSw0NTQ2OCw0NTQ5OCw0NTUyNyw0NTU1Niw0NTU4Niw0NTYxNSw0NTY0NCw0NTY3NCw0NTcwNCw0NTczMyw0NTc2Myw0NTc5Myw0NTgyMyw0NTg1Miw0NTg4Miw0NTkxMSw0NTk0MCw0NTk3MCw0NTk5OSw0NjAyOCw0NjA1OCw0NjA4OCw0NjExNyw0NjE0Nyw0NjE3Nyw0NjIwNiw0NjIzNiw0NjI2NSw0NjI5NSw0NjMyNCw0NjM1NCw0NjM4Myw0NjQxMyw0NjQ0Miw0NjQ3Miw0NjUwMSw0NjUzMSw0NjU2MCw0NjU5MCw0NjYyMCw0NjY0OSw0NjY3OSw0NjcwOCw0NjczOCw0Njc2Nyw0Njc5Nyw0NjgyNiw0Njg1Niw0Njg4NSw0NjkxNSw0Njk0NCw0Njk3NCw0NzAwMyw0NzAzMyw0NzA2Myw0NzA5Miw0NzEyMiw0NzE1MSw0NzE4MSw0NzIxMCw0NzI0MCw0NzI2OSw0NzI5OCw0NzMyOCw0NzM1Nyw0NzM4Nyw0NzQxNyw0NzQ0Niw0NzQ3Niw0NzUwNiw0NzUzNSw0NzU2NSw0NzU5NCw0NzYyNCw0NzY1Myw0NzY4Miw0NzcxMiw0Nzc0MSw0Nzc3MSw0NzgwMCw0NzgzMCw0Nzg2MCw0Nzg5MCw0NzkxOSw0Nzk0OSw0Nzk3OCw0ODAwOCw0ODAzNyw0ODA2Niw0ODA5Niw0ODEyNSw0ODE1NSw0ODE4NCw0ODIxNCw0ODI0NCw0ODI3Myw0ODMwMyw0ODMzMyw0ODM2Miw0ODM5Miw0ODQyMSw0ODQ1MCw0ODQ4MCw0ODUwOSw0ODUzOCw0ODU2OCw0ODU5OCw0ODYyNyw0ODY1Nyw0ODY4Nyw0ODcxNyw0ODc0Niw0ODc3Niw0ODgwNSw0ODgzNCw0ODg2NCw0ODg5Myw0ODkyMiw0ODk1Miw0ODk4Miw0OTAxMSw0OTA0MSw0OTA3MSw0OTEwMCw0OTEzMCw0OTE2MCw0OTE4OSw0OTIxOCw0OTI0OCw0OTI3Nyw0OTMwNiw0OTMzNiw0OTM2NSw0OTM5NSw0OTQyNSw0OTQ1NSw0OTQ4NCw0OTUxNCw0OTU0Myw0OTU3Myw0OTYwMiw0OTYzMiw0OTY2MSw0OTY5MCw0OTcyMCw0OTc0OSw0OTc3OSw0OTgwOSw0OTgzOCw0OTg2OCw0OTg5OCw0OTkyNyw0OTk1Nyw0OTk4Niw1MDAxNiw1MDA0NSw1MDA3NSw1MDEwNCw1MDEzMyw1MDE2Myw1MDE5Miw1MDIyMiw1MDI1Miw1MDI4MSw1MDMxMSw1MDM0MCw1MDM3MCw1MDQwMCw1MDQyOSw1MDQ1OSw1MDQ4OCw1MDUxOCw1MDU0Nyw1MDU3Niw1MDYwNiw1MDYzNSw1MDY2NSw1MDY5NCw1MDcyNCw1MDc1NCw1MDc4NCw1MDgxMyw1MDg0Myw1MDg3Miw1MDkwMiw1MDkzMSw1MDk2MCw1MDk5MCw1MTAxOSw1MTA0OSw1MTA3OCw1MTEwOCw1MTEzOCw1MTE2Nyw1MTE5Nyw1MTIyNyw1MTI1Niw1MTI4Niw1MTMxNSw1MTM0NSw1MTM3NCw1MTQwMyw1MTQzMyw1MTQ2Miw1MTQ5Miw1MTUyMiw1MTU1Miw1MTU4Miw1MTYxMSw1MTY0MSw1MTY3MCw1MTY5OSw1MTcyOSw1MTc1OCw1MTc4Nyw1MTgxNiw1MTg0Niw1MTg3Niw1MTkwNiw1MTkzNiw1MTk2NSw1MTk5NSw1MjAyNSw1MjA1NCw1MjA4Myw1MjExMyw1MjE0Miw1MjE3MSw1MjIwMCw1MjIzMCw1MjI2MCw1MjI5MCw1MjMxOSw1MjM0OSw1MjM3OSw1MjQwOCw1MjQzOCw1MjQ2Nyw1MjQ5Nyw1MjUyNiw1MjU1NSw1MjU4NSw1MjYxNCw1MjY0NCw1MjY3Myw1MjcwMyw1MjczMyw1Mjc2Miw1Mjc5Miw1MjgyMiw1Mjg1MSw1Mjg4MSw1MjkxMCw1MjkzOSw1Mjk2OSw1Mjk5OCw1MzAyOCw1MzA1Nyw1MzA4Nyw1MzExNiw1MzE0Niw1MzE3Niw1MzIwNSw1MzIzNSw1MzI2NCw1MzI5NCw1MzMyNCw1MzM1Myw1MzM4Myw1MzQxMiw1MzQ0MSw1MzQ3MSw1MzUwMCw1MzUzMCw1MzU1OSw1MzU4OSw1MzYxOSw1MzY0OCw1MzY3OCw1MzcwOCw1MzczNyw1Mzc2Nyw1Mzc5Niw1MzgyNSw1Mzg1NSw1Mzg4NCw1MzkxMyw1Mzk0Myw1Mzk3Myw1NDAwMyw1NDAzMiw1NDA2Miw1NDA5Miw1NDEyMSw1NDE1MSw1NDE4MCw1NDIwOSw1NDIzOSw1NDI2OCw1NDI5Nyw1NDMyNyw1NDM1Nyw1NDM4Nyw1NDQxNiw1NDQ0Niw1NDQ3Niw1NDUwNSw1NDUzNSw1NDU2NCw1NDU5Myw1NDYyMyw1NDY1Miw1NDY4MSw1NDcxMSw1NDc0MSw1NDc3MCw1NDgwMCw1NDgzMCw1NDg1OSw1NDg4OSw1NDkxOSw1NDk0OCw1NDk3Nyw1NTAwNyw1NTAzNiw1NTA2Niw1NTA5NSw1NTEyNSw1NTE1NCw1NTE4NCw1NTIxMyw1NTI0Myw1NTI3Myw1NTMwMiw1NTMzMiw1NTM2MSw1NTM5MSw1NTQyMCw1NTQ1MCw1NTQ3OSw1NTUwOCw1NTUzOCw1NTU2Nyw1NTU5Nyw1NTYyNyw1NTY1Nyw1NTY4Niw1NTcxNiw1NTc0NSw1NTc3NSw1NTgwNCw1NTgzNCw1NTg2Myw1NTg5Miw1NTkyMiw1NTk1MSw1NTk4MSw1NjAxMSw1NjA0MCw1NjA3MCw1NjEwMCw1NjEyOSw1NjE1OSw1NjE4OCw1NjIxOCw1NjI0Nyw1NjI3Niw1NjMwNiw1NjMzNSw1NjM2NSw1NjM5NCw1NjQyNCw1NjQ1NCw1NjQ4Myw1NjUxMyw1NjU0Myw1NjU3Miw1NjYwMSw1NjYzMSw1NjY2MCw1NjY5MCw1NjcxOSw1Njc0OSw1Njc3OCw1NjgwOCw1NjgzNyw1Njg2Nyw1Njg5Nyw1NjkyNiw1Njk1Niw1Njk4NSw1NzAxNSw1NzA0NCw1NzA3NCw1NzEwMyw1NzEzMyw1NzE2Miw1NzE5Miw1NzIyMSw1NzI1MSw1NzI4MCw1NzMxMCw1NzM0MCw1NzM2OSw1NzM5OSw1NzQyOSw1NzQ1OCw1NzQ4Nyw1NzUxNyw1NzU0Niw1NzU3Niw1NzYwNSw1NzYzNCw1NzY2NCw1NzY5NCw1NzcyMyw1Nzc1Myw1Nzc4Myw1NzgxMyw1Nzg0Miw1Nzg3MSw1NzkwMSw1NzkzMCw1Nzk1OSw1Nzk4OSw1ODAxOCw1ODA0OCw1ODA3Nyw1ODEwNyw1ODEzNyw1ODE2Nyw1ODE5Niw1ODIyNiw1ODI1NSw1ODI4NSw1ODMxNCw1ODM0Myw1ODM3Myw1ODQwMiw1ODQzMiw1ODQ2MSw1ODQ5MSw1ODUyMSw1ODU1MSw1ODU4MCw1ODYxMCw1ODYzOSw1ODY2OSw1ODY5OCw1ODcyNyw1ODc1Nyw1ODc4Niw1ODgxNiw1ODg0NSw1ODg3NSw1ODkwNSw1ODkzNCw1ODk2NCw1ODk5NCw1OTAyMyw1OTA1Myw1OTA4Miw1OTExMSw1OTE0MSw1OTE3MCw1OTIwMCw1OTIyOSw1OTI1OSw1OTI4OCw1OTMxOCw1OTM0OCw1OTM3Nyw1OTQwNyw1OTQzNiw1OTQ2Niw1OTQ5NSw1OTUyNSw1OTU1NCw1OTU4NCw1OTYxMyw1OTY0Myw1OTY3Miw1OTcwMiw1OTczMSw1OTc2MSw1OTc5MSw1OTgyMCw1OTg1MCw1OTg3OSw1OTkwOSw1OTkzOSw1OTk2OCw1OTk5Nyw2MDAyNyw2MDA1Niw2MDA4Niw2MDExNSw2MDE0NSw2MDE3NCw2MDIwNCw2MDIzNCw2MDI2NCw2MDI5Myw2MDMyMyw2MDM1Miw2MDM4MSw2MDQxMSw2MDQ0MCw2MDQ2OSw2MDQ5OSw2MDUyOCw2MDU1OCw2MDU4OCw2MDYxOCw2MDY0OCw2MDY3Nyw2MDcwNyw2MDczNiw2MDc2NSw2MDc5NSw2MDgyNCw2MDg1Myw2MDg4Myw2MDkxMiw2MDk0Miw2MDk3Miw2MTAwMiw2MTAzMSw2MTA2MSw2MTA5MCw2MTEyMCw2MTE0OSw2MTE3OSw2MTIwOCw2MTIzNyw2MTI2Nyw2MTI5Niw2MTMyNiw2MTM1Niw2MTM4NSw2MTQxNSw2MTQ0NSw2MTQ3NCw2MTUwNCw2MTUzMyw2MTU2Myw2MTU5Miw2MTYyMSw2MTY1MSw2MTY4MCw2MTcxMCw2MTczOSw2MTc2OSw2MTc5OSw2MTgyOCw2MTg1OCw2MTg4OCw2MTkxNyw2MTk0Nyw2MTk3Niw2MjAwNiw2MjAzNSw2MjA2NCw2MjA5NCw2MjEyMyw2MjE1Myw2MjE4Miw2MjIxMiw2MjI0Miw2MjI3MSw2MjMwMSw2MjMzMSw2MjM2MCw2MjM5MCw2MjQxOSw2MjQ0OCw2MjQ3OCw2MjUwNyw2MjUzNyw2MjU2Niw2MjU5Niw2MjYyNSw2MjY1NSw2MjY4NSw2MjcxNSw2Mjc0NCw2Mjc3NCw2MjgwMyw2MjgzMiw2Mjg2Miw2Mjg5MSw2MjkyMSw2Mjk1MCw2Mjk4MCw2MzAwOSw2MzAzOSw2MzA2OSw2MzA5OSw2MzEyOCw2MzE1Nyw2MzE4Nyw2MzIxNiw2MzI0Niw2MzI3NSw2MzMwNSw2MzMzNCw2MzM2Myw2MzM5Myw2MzQyMyw2MzQ1Myw2MzQ4Miw2MzUxMiw2MzU0MSw2MzU3MSw2MzYwMCw2MzYzMCw2MzY1OSw2MzY4OSw2MzcxOCw2Mzc0Nyw2Mzc3Nyw2MzgwNyw2MzgzNiw2Mzg2Niw2Mzg5NSw2MzkyNSw2Mzk1NSw2Mzk4NCw2NDAxNCw2NDA0Myw2NDA3Myw2NDEwMiw2NDEzMSw2NDE2MSw2NDE5MCw2NDIyMCw2NDI0OSw2NDI3OSw2NDMwOSw2NDMzOSw2NDM2OCw2NDM5OCw2NDQyNyw2NDQ1Nyw2NDQ4Niw2NDUxNSw2NDU0NSw2NDU3NCw2NDYwMyw2NDYzMyw2NDY2Myw2NDY5Miw2NDcyMiw2NDc1Miw2NDc4Miw2NDgxMSw2NDg0MSw2NDg3MCw2NDg5OSw2NDkyOSw2NDk1OCw2NDk4Nyw2NTAxNyw2NTA0Nyw2NTA3Niw2NTEwNiw2NTEzNiw2NTE2Niw2NTE5NSw2NTIyNSw2NTI1NCw2NTI4Myw2NTMxMyw2NTM0Miw2NTM3MSw2NTQwMSw2NTQzMSw2NTQ2MCw2NTQ5MCw2NTUyMCw2NTU0OSw2NTU3OSw2NTYwOCw2NTYzOCw2NTY2Nyw2NTY5Nyw2NTcyNiw2NTc1NSw2NTc4NSw2NTgxNSw2NTg0NCw2NTg3NCw2NTkwMyw2NTkzMyw2NTk2Myw2NTk5Miw2NjAyMiw2NjA1MSw2NjA4MSw2NjExMCw2NjE0MCw2NjE2OSw2NjE5OSw2NjIyOCw2NjI1OCw2NjI4Nyw2NjMxNyw2NjM0Niw2NjM3Niw2NjQwNSw2NjQzNSw2NjQ2NSw2NjQ5NCw2NjUyNCw2NjU1Myw2NjU4Myw2NjYxMiw2NjY0MSw2NjY3MSw2NjcwMCw2NjczMCw2Njc2MCw2Njc4OSw2NjgxOSw2Njg0OSw2Njg3OCw2NjkwOCw2NjkzNyw2Njk2Nyw2Njk5Niw2NzAyNSw2NzA1NSw2NzA4NCw2NzExNCw2NzE0Myw2NzE3Myw2NzIwMyw2NzIzMyw2NzI2Miw2NzI5Miw2NzMyMSw2NzM1MSw2NzM4MCw2NzQwOSw2NzQzOSw2NzQ2OCw2NzQ5Nyw2NzUyNyw2NzU1Nyw2NzU4Nyw2NzYxNyw2NzY0Niw2NzY3Niw2NzcwNSw2NzczNSw2Nzc2NCw2Nzc5Myw2NzgyMyw2Nzg1Miw2Nzg4Miw2NzkxMSw2Nzk0MSw2Nzk3MSw2OGUzLDY4MDMwLDY4MDYwLDY4MDg5LDY4MTE5LDY4MTQ4LDY4MTc3LDY4MjA3LDY4MjM2LDY4MjY2LDY4Mjk1LDY4MzI1LDY4MzU0LDY4Mzg0LDY4NDE0LDY4NDQzLDY4NDczLDY4NTAyLDY4NTMyLDY4NTYxLDY4NTkxLDY4NjIwLDY4NjUwLDY4Njc5LDY4NzA4LDY4NzM4LDY4NzY4LDY4Nzk3LDY4ODI3LDY4ODU3LDY4ODg2LDY4OTE2LDY4OTQ2LDY4OTc1LDY5MDA0LDY5MDM0LDY5MDYzLDY5MDkyLDY5MTIyLDY5MTUyLDY5MTgxLDY5MjExLDY5MjQwLDY5MjcwLDY5MzAwLDY5MzMwLDY5MzU5LDY5Mzg4LDY5NDE4LDY5NDQ3LDY5NDc2LDY5NTA2LDY5NTM1LDY5NTY1LDY5NTk1LDY5NjI0LDY5NjU0LDY5Njg0LDY5NzEzLDY5NzQzLDY5NzcyLDY5ODAyLDY5ODMxLDY5ODYxLDY5ODkwLDY5OTE5LDY5OTQ5LDY5OTc4LDcwMDA4LDcwMDM4LDcwMDY3LDcwMDk3LDcwMTI2LDcwMTU2LDcwMTg2LDcwMjE1LDcwMjQ1LDcwMjc0LDcwMzAzLDcwMzMzLDcwMzYyLDcwMzkyLDcwNDIxLDcwNDUxLDcwNDgxLDcwNTEwLDcwNTQwLDcwNTcwLDcwNTk5LDcwNjI5LDcwNjU4LDcwNjg3LDcwNzE3LDcwNzQ2LDcwNzc2LDcwODA1LDcwODM1LDcwODY0LDcwODk0LDcwOTI0LDcwOTU0LDcwOTgzLDcxMDEzLDcxMDQyLDcxMDcxLDcxMTAxLDcxMTMwLDcxMTU5LDcxMTg5LDcxMjE4LDcxMjQ4LDcxMjc4LDcxMzA4LDcxMzM3LDcxMzY3LDcxMzk3LDcxNDI2LDcxNDU1LDcxNDg1LDcxNTE0LDcxNTQzLDcxNTczLDcxNjAyLDcxNjMyLDcxNjYyLDcxNjkxLDcxNzIxLDcxNzUxLDcxNzgxLDcxODEwLDcxODM5LDcxODY5LDcxODk4LDcxOTI3LDcxOTU3LDcxOTg2LDcyMDE2LDcyMDQ2LDcyMDc1LDcyMTA1LDcyMTM1LDcyMTY0LDcyMTk0LDcyMjIzLDcyMjUzLDcyMjgyLDcyMzExLDcyMzQxLDcyMzcwLDcyNDAwLDcyNDI5LDcyNDU5LDcyNDg5LDcyNTE4LDcyNTQ4LDcyNTc3LDcyNjA3LDcyNjM3LDcyNjY2LDcyNjk1LDcyNzI1LDcyNzU0LDcyNzg0LDcyODEzLDcyODQzLDcyODcyLDcyOTAyLDcyOTMxLDcyOTYxLDcyOTkxLDczMDIwLDczMDUwLDczMDgwLDczMTA5LDczMTM5LDczMTY4LDczMTk3LDczMjI3LDczMjU2LDczMjg2LDczMzE1LDczMzQ1LDczMzc1LDczNDA0LDczNDM0LDczNDY0LDczNDkzLDczNTIzLDczNTUyLDczNTgxLDczNjExLDczNjQwLDczNjY5LDczNjk5LDczNzI5LDczNzU4LDczNzg4LDczODE4LDczODQ4LDczODc3LDczOTA3LDczOTM2LDczOTY1LDczOTk1LDc0MDI0LDc0MDUzLDc0MDgzLDc0MTEzLDc0MTQyLDc0MTcyLDc0MjAyLDc0MjMxLDc0MjYxLDc0MjkxLDc0MzIwLDc0MzQ5LDc0Mzc5LDc0NDA4LDc0NDM3LDc0NDY3LDc0NDk3LDc0NTI2LDc0NTU2LDc0NTg2LDc0NjE1LDc0NjQ1LDc0Njc1LDc0NzA0LDc0NzMzLDc0NzYzLDc0NzkyLDc0ODIyLDc0ODUxLDc0ODgxLDc0OTEwLDc0OTQwLDc0OTY5LDc0OTk5LDc1MDI5LDc1MDU4LDc1MDg4LDc1MTE3LDc1MTQ3LDc1MTc2LDc1MjA2LDc1MjM1LDc1MjY0LDc1Mjk0LDc1MzIzLDc1MzUzLDc1MzgzLDc1NDEyLDc1NDQyLDc1NDcyLDc1NTAxLDc1NTMxLDc1NTYwLDc1NTkwLDc1NjE5LDc1NjQ4LDc1Njc4LDc1NzA3LDc1NzM3LDc1NzY2LDc1Nzk2LDc1ODI2LDc1ODU2LDc1ODg1LDc1OTE1LDc1OTQ0LDc1OTc0LDc2MDAzLDc2MDMyLDc2MDYyLDc2MDkxLDc2MTIxLDc2MTUwLDc2MTgwLDc2MjEwLDc2MjM5LDc2MjY5LDc2Mjk5LDc2MzI4LDc2MzU4LDc2Mzg3LDc2NDE2LDc2NDQ2LDc2NDc1LDc2NTA1LDc2NTM0LDc2NTY0LDc2NTkzLDc2NjIzLDc2NjUzLDc2NjgyLDc2NzEyLDc2NzQxLDc2NzcxLDc2ODAxLDc2ODMwLDc2ODU5LDc2ODg5LDc2OTE4LDc2OTQ4LDc2OTc3LDc3MDA3LDc3MDM2LDc3MDY2LDc3MDk2LDc3MTI1LDc3MTU1LDc3MTg1LDc3MjE0LDc3MjQzLDc3MjczLDc3MzAyLDc3MzMyLDc3MzYxLDc3MzkwLDc3NDIwLDc3NDUwLDc3NDc5LDc3NTA5LDc3NTM5LDc3NTY5LDc3NTk4LDc3NjI3LDc3NjU3LDc3Njg2LDc3NzE1LDc3NzQ1LDc3Nzc0LDc3ODA0LDc3ODMzLDc3ODYzLDc3ODkzLDc3OTIzLDc3OTUyLDc3OTgyLDc4MDExLDc4MDQxLDc4MDcwLDc4MDk5LDc4MTI5LDc4MTU4LDc4MTg4LDc4MjE3LDc4MjQ3LDc4Mjc3LDc4MzA3LDc4MzM2LDc4MzY2LDc4Mzk1LDc4NDI1LDc4NDU0LDc4NDgzLDc4NTEzLDc4NTQyLDc4NTcyLDc4NjAxLDc4NjMxLDc4NjYxLDc4NjkwLDc4NzIwLDc4NzUwLDc4Nzc5LDc4ODA4LDc4ODM4LDc4ODY3LDc4ODk3LDc4OTI2LDc4OTU2LDc4OTg1LDc5MDE1LDc5MDQ0LDc5MDc0LDc5MTA0LDc5MTMzLDc5MTYzLDc5MTkyLDc5MjIyLDc5MjUxLDc5MjgxLDc5MzEwLDc5MzQwLDc5MzY5LDc5Mzk5LDc5NDI4LDc5NDU4LDc5NDg3LDc5NTE3LDc5NTQ2LDc5NTc2LDc5NjA2LDc5NjM1LDc5NjY1LDc5Njk1LDc5NzI0LDc5NzUzLDc5NzgzLDc5ODEyLDc5ODQxLDc5ODcxLDc5OTAwLDc5OTMwLDc5OTYwLDc5OTkwXX0seyIuLi9tYWluIjo2MTcsIm9iamVjdC1hc3NpZ24iOjQ2Nn1dLDYxNzpbZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQoIm9iamVjdC1hc3NpZ24iKTtmdW5jdGlvbiBpKCl7dGhpcy5yZWdpb25hbE9wdGlvbnM9W10sdGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdPXtpbnZhbGlkQ2FsZW5kYXI6IkNhbGVuZGFyIHswfSBub3QgZm91bmQiLGludmFsaWREYXRlOiJJbnZhbGlkIHswfSBkYXRlIixpbnZhbGlkTW9udGg6IkludmFsaWQgezB9IG1vbnRoIixpbnZhbGlkWWVhcjoiSW52YWxpZCB7MH0geWVhciIsZGlmZmVyZW50Q2FsZW5kYXJzOiJDYW5ub3QgbWl4IHswfSBhbmQgezF9IGRhdGVzIn0sdGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl0sdGhpcy5jYWxlbmRhcnM9e30sdGhpcy5fbG9jYWxDYWxzPXt9fWZ1bmN0aW9uIGEodCxlLHIsbil7aWYodGhpcy5fY2FsZW5kYXI9dCx0aGlzLl95ZWFyPWUsdGhpcy5fbW9udGg9cix0aGlzLl9kYXk9biwwPT09dGhpcy5fY2FsZW5kYXIuX3ZhbGlkYXRlTGV2ZWwmJiF0aGlzLl9jYWxlbmRhci5pc1ZhbGlkKHRoaXMuX3llYXIsdGhpcy5fbW9udGgsdGhpcy5fZGF5KSl0aHJvdyhjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLl9jYWxlbmRhci5sb2NhbC5uYW1lKX1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIjAwMDAwMCIuc3Vic3RyaW5nKDAsZS0odD0iIit0KS5sZW5ndGgpK3R9ZnVuY3Rpb24gcygpe3RoaXMuc2hvcnRZZWFyQ3V0b2ZmPSIrMTAifWZ1bmN0aW9uIGwodCl7dGhpcy5sb2NhbD10aGlzLnJlZ2lvbmFsT3B0aW9uc1t0XXx8dGhpcy5yZWdpb25hbE9wdGlvbnNbIiJdfW4oaS5wcm90b3R5cGUse2luc3RhbmNlOmZ1bmN0aW9uKHQsZSl7dD0odHx8ImdyZWdvcmlhbiIpLnRvTG93ZXJDYXNlKCksZT1lfHwiIjt2YXIgcj10aGlzLl9sb2NhbENhbHNbdCsiLSIrZV07aWYoIXImJnRoaXMuY2FsZW5kYXJzW3RdJiYocj1uZXcgdGhpcy5jYWxlbmRhcnNbdF0oZSksdGhpcy5fbG9jYWxDYWxzW3QrIi0iK2VdPXIpLCFyKXRocm93KHRoaXMubG9jYWwuaW52YWxpZENhbGVuZGFyfHx0aGlzLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZENhbGVuZGFyKS5yZXBsYWNlKC9cezBcfS8sdCk7cmV0dXJuIHJ9LG5ld0RhdGU6ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4obj0obnVsbCE9dCYmdC55ZWFyP3QuY2FsZW5kYXIoKToic3RyaW5nIj09dHlwZW9mIG4/dGhpcy5pbnN0YW5jZShuLGkpOm4pfHx0aGlzLmluc3RhbmNlKCkpLm5ld0RhdGUodCxlLHIpfSxzdWJzdGl0dXRlRGlnaXRzOmZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4oZSsiIikucmVwbGFjZSgvWzAtOV0vZywoZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19KSl9fSxzdWJzdGl0dXRlQ2hpbmVzZURpZ2l0czpmdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyKXtmb3IodmFyIG49IiIsaT0wO3I+MDspe3ZhciBhPXIlMTA7bj0oMD09PWE/IiI6dFthXStlW2ldKStuLGkrKyxyPU1hdGguZmxvb3Ioci8xMCl9cmV0dXJuIDA9PT1uLmluZGV4T2YodFsxXStlWzFdKSYmKG49bi5zdWJzdHIoMSkpLG58fHRbMF19fX0pLG4oYS5wcm90b3R5cGUse25ld0RhdGU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl9jYWxlbmRhci5uZXdEYXRlKG51bGw9PXQ/dGhpczp0LGUscil9LHllYXI6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX3llYXI6dGhpcy5zZXQodCwieSIpfSxtb250aDpmdW5jdGlvbih0KXtyZXR1cm4gMD09PWFyZ3VtZW50cy5sZW5ndGg/dGhpcy5fbW9udGg6dGhpcy5zZXQodCwibSIpfSxkYXk6ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT1hcmd1bWVudHMubGVuZ3RoP3RoaXMuX2RheTp0aGlzLnNldCh0LCJkIil9LGRhdGU6ZnVuY3Rpb24odCxlLHIpe2lmKCF0aGlzLl9jYWxlbmRhci5pc1ZhbGlkKHQsZSxyKSl0aHJvdyhjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLl9jYWxlbmRhci5sb2NhbC5uYW1lKTtyZXR1cm4gdGhpcy5feWVhcj10LHRoaXMuX21vbnRoPWUsdGhpcy5fZGF5PXIsdGhpc30sbGVhcFllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIubGVhcFllYXIodGhpcyl9LGVwb2NoOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmVwb2NoKHRoaXMpfSxmb3JtYXRZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZvcm1hdFllYXIodGhpcyl9LG1vbnRoT2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLm1vbnRoT2ZZZWFyKHRoaXMpfSx3ZWVrT2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLndlZWtPZlllYXIodGhpcyl9LGRheXNJblllYXI6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIuZGF5c0luWWVhcih0aGlzKX0sZGF5T2ZZZWFyOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmRheU9mWWVhcih0aGlzKX0sZGF5c0luTW9udGg6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIuZGF5c0luTW9udGgodGhpcyl9LGRheU9mV2VlazpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhci5kYXlPZldlZWsodGhpcyl9LHdlZWtEYXk6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIud2Vla0RheSh0aGlzKX0sZXh0cmFJbmZvOmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmV4dHJhSW5mbyh0aGlzKX0sYWRkOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmFkZCh0aGlzLHQsZSl9LHNldDpmdW5jdGlvbih0LGUpe3JldHVybiB0aGlzLl9jYWxlbmRhci5zZXQodGhpcyx0LGUpfSxjb21wYXJlVG86ZnVuY3Rpb24odCl7aWYodGhpcy5fY2FsZW5kYXIubmFtZSE9PXQuX2NhbGVuZGFyLm5hbWUpdGhyb3coYy5sb2NhbC5kaWZmZXJlbnRDYWxlbmRhcnN8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5kaWZmZXJlbnRDYWxlbmRhcnMpLnJlcGxhY2UoL1x7MFx9Lyx0aGlzLl9jYWxlbmRhci5sb2NhbC5uYW1lKS5yZXBsYWNlKC9cezFcfS8sdC5fY2FsZW5kYXIubG9jYWwubmFtZSk7dmFyIGU9dGhpcy5feWVhciE9PXQuX3llYXI/dGhpcy5feWVhci10Ll95ZWFyOnRoaXMuX21vbnRoIT09dC5fbW9udGg/dGhpcy5tb250aE9mWWVhcigpLXQubW9udGhPZlllYXIoKTp0aGlzLl9kYXktdC5fZGF5O3JldHVybiAwPT09ZT8wOmU8MD8tMToxfSxjYWxlbmRhcjpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhcn0sdG9KRDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYWxlbmRhci50b0pEKHRoaXMpfSxmcm9tSkQ6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZyb21KRCh0KX0sdG9KU0RhdGU6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fY2FsZW5kYXIudG9KU0RhdGUodGhpcyl9LGZyb21KU0RhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMuX2NhbGVuZGFyLmZyb21KU0RhdGUodCl9LHRvU3RyaW5nOmZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMueWVhcigpPDA/Ii0iOiIiKStvKE1hdGguYWJzKHRoaXMueWVhcigpKSw0KSsiLSIrbyh0aGlzLm1vbnRoKCksMikrIi0iK28odGhpcy5kYXkoKSwyKX19KSxuKHMucHJvdG90eXBlLHtfdmFsaWRhdGVMZXZlbDowLG5ld0RhdGU6ZnVuY3Rpb24odCxlLHIpe3JldHVybiBudWxsPT10P3RoaXMudG9kYXkoKToodC55ZWFyJiYodGhpcy5fdmFsaWRhdGUodCxlLHIsYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKSxyPXQuZGF5KCksZT10Lm1vbnRoKCksdD10LnllYXIoKSksbmV3IGEodGhpcyx0LGUscikpfSx0b2RheTpmdW5jdGlvbigpe3JldHVybiB0aGlzLmZyb21KU0RhdGUobmV3IERhdGUpfSxlcG9jaDpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcikueWVhcigpPDA/dGhpcy5sb2NhbC5lcG9jaHNbMF06dGhpcy5sb2NhbC5lcG9jaHNbMV19LGZvcm1hdFllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcik7cmV0dXJuKGUueWVhcigpPDA/Ii0iOiIiKStvKE1hdGguYWJzKGUueWVhcigpKSw0KX0sbW9udGhzSW5ZZWFyOmZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkWWVhcnx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKSwxMn0sbW9udGhPZlllYXI6ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLl92YWxpZGF0ZSh0LGUsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkTW9udGh8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkTW9udGgpO3JldHVybihyLm1vbnRoKCkrdGhpcy5tb250aHNJblllYXIociktdGhpcy5maXJzdE1vbnRoKSV0aGlzLm1vbnRoc0luWWVhcihyKSt0aGlzLm1pbk1vbnRofSxmcm9tTW9udGhPZlllYXI6ZnVuY3Rpb24odCxlKXt2YXIgcj0oZSt0aGlzLmZpcnN0TW9udGgtMip0aGlzLm1pbk1vbnRoKSV0aGlzLm1vbnRoc0luWWVhcih0KSt0aGlzLm1pbk1vbnRoO3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHIsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkTW9udGh8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkTW9udGgpLHJ9LGRheXNJblllYXI6ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5fdmFsaWRhdGUodCx0aGlzLm1pbk1vbnRoLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZFllYXJ8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkWWVhcik7cmV0dXJuIHRoaXMubGVhcFllYXIoZSk/MzY2OjM2NX0sZGF5T2ZZZWFyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3JldHVybiBuLnRvSkQoKS10aGlzLm5ld0RhdGUobi55ZWFyKCksdGhpcy5mcm9tTW9udGhPZlllYXIobi55ZWFyKCksdGhpcy5taW5Nb250aCksdGhpcy5taW5EYXkpLnRvSkQoKSsxfSxkYXlzSW5XZWVrOmZ1bmN0aW9uKCl7cmV0dXJuIDd9LGRheU9mV2VlazpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5fdmFsaWRhdGUodCxlLHIsYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKTtyZXR1cm4oTWF0aC5mbG9vcih0aGlzLnRvSkQobikpKzIpJXRoaXMuZGF5c0luV2VlaygpfSxleHRyYUluZm86ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpLHt9fSxhZGQ6ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkRGF0ZXx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWREYXRlKSx0aGlzLl9jb3JyZWN0QWRkKHQsdGhpcy5fYWRkKHQsZSxyKSxlLHIpfSxfYWRkOmZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLl92YWxpZGF0ZUxldmVsKyssImQiPT09cnx8InciPT09cil7dmFyIG49dC50b0pEKCkrZSooInciPT09cj90aGlzLmRheXNJbldlZWsoKToxKSxpPXQuY2FsZW5kYXIoKS5mcm9tSkQobik7cmV0dXJuIHRoaXMuX3ZhbGlkYXRlTGV2ZWwtLSxbaS55ZWFyKCksaS5tb250aCgpLGkuZGF5KCldfXRyeXt2YXIgYT10LnllYXIoKSsoInkiPT09cj9lOjApLG89dC5tb250aE9mWWVhcigpKygibSI9PT1yP2U6MCk7aT10LmRheSgpOyJ5Ij09PXI/KHQubW9udGgoKSE9PXRoaXMuZnJvbU1vbnRoT2ZZZWFyKGEsbykmJihvPXRoaXMubmV3RGF0ZShhLHQubW9udGgoKSx0aGlzLm1pbkRheSkubW9udGhPZlllYXIoKSksbz1NYXRoLm1pbihvLHRoaXMubW9udGhzSW5ZZWFyKGEpKSxpPU1hdGgubWluKGksdGhpcy5kYXlzSW5Nb250aChhLHRoaXMuZnJvbU1vbnRoT2ZZZWFyKGEsbykpKSk6Im0iPT09ciYmKCFmdW5jdGlvbih0KXtmb3IoO288dC5taW5Nb250aDspYS0tLG8rPXQubW9udGhzSW5ZZWFyKGEpO2Zvcih2YXIgZT10Lm1vbnRoc0luWWVhcihhKTtvPmUtMSt0Lm1pbk1vbnRoOylhKyssby09ZSxlPXQubW9udGhzSW5ZZWFyKGEpfSh0aGlzKSxpPU1hdGgubWluKGksdGhpcy5kYXlzSW5Nb250aChhLHRoaXMuZnJvbU1vbnRoT2ZZZWFyKGEsbykpKSk7dmFyIHM9W2EsdGhpcy5mcm9tTW9udGhPZlllYXIoYSxvKSxpXTtyZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHN9Y2F0Y2godCl7dGhyb3cgdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHR9fSxfY29ycmVjdEFkZDpmdW5jdGlvbih0LGUscixuKXtpZighKHRoaXMuaGFzWWVhclplcm98fCJ5IiE9PW4mJiJtIiE9PW58fDAhPT1lWzBdJiZ0LnllYXIoKT4wPT1lWzBdPjApKXt2YXIgaT17eTpbMSwxLCJ5Il0sbTpbMSx0aGlzLm1vbnRoc0luWWVhcigtMSksIm0iXSx3Olt0aGlzLmRheXNJbldlZWsoKSx0aGlzLmRheXNJblllYXIoLTEpLCJkIl0sZDpbMSx0aGlzLmRheXNJblllYXIoLTEpLCJkIl19W25dLGE9cjwwPy0xOjE7ZT10aGlzLl9hZGQodCxyKmlbMF0rYSppWzFdLGlbMl0pfXJldHVybiB0LmRhdGUoZVswXSxlWzFdLGVbMl0pfSxzZXQ6ZnVuY3Rpb24odCxlLHIpe3RoaXMuX3ZhbGlkYXRlKHQsdGhpcy5taW5Nb250aCx0aGlzLm1pbkRheSxjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3ZhciBuPSJ5Ij09PXI/ZTp0LnllYXIoKSxpPSJtIj09PXI/ZTp0Lm1vbnRoKCksYT0iZCI9PT1yP2U6dC5kYXkoKTtyZXR1cm4ieSIhPT1yJiYibSIhPT1yfHwoYT1NYXRoLm1pbihhLHRoaXMuZGF5c0luTW9udGgobixpKSkpLHQuZGF0ZShuLGksYSl9LGlzVmFsaWQ6ZnVuY3Rpb24odCxlLHIpe3RoaXMuX3ZhbGlkYXRlTGV2ZWwrKzt2YXIgbj10aGlzLmhhc1llYXJaZXJvfHwwIT09dDtpZihuKXt2YXIgaT10aGlzLm5ld0RhdGUodCxlLHRoaXMubWluRGF5KTtuPWU+PXRoaXMubWluTW9udGgmJmUtdGhpcy5taW5Nb250aDx0aGlzLm1vbnRoc0luWWVhcihpKSYmcj49dGhpcy5taW5EYXkmJnItdGhpcy5taW5EYXk8dGhpcy5kYXlzSW5Nb250aChpKX1yZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLG59LHRvSlNEYXRlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3JldHVybiBjLmluc3RhbmNlKCkuZnJvbUpEKHRoaXMudG9KRChuKSkudG9KU0RhdGUoKX0sZnJvbUpTRGF0ZTpmdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5mcm9tSkQoYy5pbnN0YW5jZSgpLmZyb21KU0RhdGUodCkudG9KRCgpKX0sX3ZhbGlkYXRlOmZ1bmN0aW9uKHQsZSxyLG4pe2lmKHQueWVhcil7aWYoMD09PXRoaXMuX3ZhbGlkYXRlTGV2ZWwmJnRoaXMubmFtZSE9PXQuY2FsZW5kYXIoKS5uYW1lKXRocm93KGMubG9jYWwuZGlmZmVyZW50Q2FsZW5kYXJzfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uZGlmZmVyZW50Q2FsZW5kYXJzKS5yZXBsYWNlKC9cezBcfS8sdGhpcy5sb2NhbC5uYW1lKS5yZXBsYWNlKC9cezFcfS8sdC5jYWxlbmRhcigpLmxvY2FsLm5hbWUpO3JldHVybiB0fXRyeXtpZih0aGlzLl92YWxpZGF0ZUxldmVsKyssMT09PXRoaXMuX3ZhbGlkYXRlTGV2ZWwmJiF0aGlzLmlzVmFsaWQodCxlLHIpKXRocm93IG4ucmVwbGFjZSgvXHswXH0vLHRoaXMubG9jYWwubmFtZSk7dmFyIGk9dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gdGhpcy5fdmFsaWRhdGVMZXZlbC0tLGl9Y2F0Y2godCl7dGhyb3cgdGhpcy5fdmFsaWRhdGVMZXZlbC0tLHR9fX0pLGwucHJvdG90eXBlPW5ldyBzLG4obC5wcm90b3R5cGUse25hbWU6IkdyZWdvcmlhbiIsamRFcG9jaDoxNzIxNDI1LjUsZGF5c1Blck1vbnRoOlszMSwyOCwzMSwzMCwzMSwzMCwzMSwzMSwzMCwzMSwzMCwzMV0saGFzWWVhclplcm86ITEsbWluTW9udGg6MSxmaXJzdE1vbnRoOjEsbWluRGF5OjEscmVnaW9uYWxPcHRpb25zOnsiIjp7bmFtZToiR3JlZ29yaWFuIixlcG9jaHM6WyJCQ0UiLCJDRSJdLG1vbnRoTmFtZXM6WyJKYW51YXJ5IiwiRmVicnVhcnkiLCJNYXJjaCIsIkFwcmlsIiwiTWF5IiwiSnVuZSIsIkp1bHkiLCJBdWd1c3QiLCJTZXB0ZW1iZXIiLCJPY3RvYmVyIiwiTm92ZW1iZXIiLCJEZWNlbWJlciJdLG1vbnRoTmFtZXNTaG9ydDpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLGRheU5hbWVzOlsiU3VuZGF5IiwiTW9uZGF5IiwiVHVlc2RheSIsIldlZG5lc2RheSIsIlRodXJzZGF5IiwiRnJpZGF5IiwiU2F0dXJkYXkiXSxkYXlOYW1lc1Nob3J0OlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sZGF5TmFtZXNNaW46WyJTdSIsIk1vIiwiVHUiLCJXZSIsIlRoIiwiRnIiLCJTYSJdLGRpZ2l0czpudWxsLGRhdGVGb3JtYXQ6Im1tL2RkL3l5eXkiLGZpcnN0RGF5OjAsaXNSVEw6ITF9fSxsZWFwWWVhcjpmdW5jdGlvbih0KXt2YXIgZT10aGlzLl92YWxpZGF0ZSh0LHRoaXMubWluTW9udGgsdGhpcy5taW5EYXksYy5sb2NhbC5pbnZhbGlkWWVhcnx8Yy5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRZZWFyKTtyZXR1cm4odD1lLnllYXIoKSsoZS55ZWFyKCk8MD8xOjApKSU0PT0wJiYodCUxMDAhPTB8fHQlNDAwPT0wKX0sd2Vla09mWWVhcjpmdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5uZXdEYXRlKHQsZSxyKTtyZXR1cm4gbi5hZGQoNC0obi5kYXlPZldlZWsoKXx8NyksImQiKSxNYXRoLmZsb29yKChuLmRheU9mWWVhcigpLTEpLzcpKzF9LGRheXNJbk1vbnRoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5fdmFsaWRhdGUodCxlLHRoaXMubWluRGF5LGMubG9jYWwuaW52YWxpZE1vbnRofHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZE1vbnRoKTtyZXR1cm4gdGhpcy5kYXlzUGVyTW9udGhbci5tb250aCgpLTFdKygyPT09ci5tb250aCgpJiZ0aGlzLmxlYXBZZWFyKHIueWVhcigpKT8xOjApfSx3ZWVrRGF5OmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4odGhpcy5kYXlPZldlZWsodCxlLHIpfHw3KTw2fSx0b0pEOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLl92YWxpZGF0ZSh0LGUscixjLmxvY2FsLmludmFsaWREYXRlfHxjLnJlZ2lvbmFsT3B0aW9uc1siIl0uaW52YWxpZERhdGUpO3Q9bi55ZWFyKCksZT1uLm1vbnRoKCkscj1uLmRheSgpLHQ8MCYmdCsrLGU8MyYmKGUrPTEyLHQtLSk7dmFyIGk9TWF0aC5mbG9vcih0LzEwMCksYT0yLWkrTWF0aC5mbG9vcihpLzQpO3JldHVybiBNYXRoLmZsb29yKDM2NS4yNSoodCs0NzE2KSkrTWF0aC5mbG9vcigzMC42MDAxKihlKzEpKStyK2EtMTUyNC41fSxmcm9tSkQ6ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5mbG9vcih0Ky41KSxyPU1hdGguZmxvb3IoKGUtMTg2NzIxNi4yNSkvMzY1MjQuMjUpLG49KHI9ZSsxK3ItTWF0aC5mbG9vcihyLzQpKSsxNTI0LGk9TWF0aC5mbG9vcigobi0xMjIuMSkvMzY1LjI1KSxhPU1hdGguZmxvb3IoMzY1LjI1KmkpLG89TWF0aC5mbG9vcigobi1hKS8zMC42MDAxKSxzPW4tYS1NYXRoLmZsb29yKDMwLjYwMDEqbyksbD1vLShvPjEzLjU/MTM6MSksYz1pLShsPjIuNT80NzE2OjQ3MTUpO3JldHVybiBjPD0wJiZjLS0sdGhpcy5uZXdEYXRlKGMsbCxzKX0sdG9KU0RhdGU6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuX3ZhbGlkYXRlKHQsZSxyLGMubG9jYWwuaW52YWxpZERhdGV8fGMucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkRGF0ZSksaT1uZXcgRGF0ZShuLnllYXIoKSxuLm1vbnRoKCktMSxuLmRheSgpKTtyZXR1cm4gaS5zZXRIb3VycygwKSxpLnNldE1pbnV0ZXMoMCksaS5zZXRTZWNvbmRzKDApLGkuc2V0TWlsbGlzZWNvbmRzKDApLGkuc2V0SG91cnMoaS5nZXRIb3VycygpPjEyP2kuZ2V0SG91cnMoKSsyOjApLGl9LGZyb21KU0RhdGU6ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubmV3RGF0ZSh0LmdldEZ1bGxZZWFyKCksdC5nZXRNb250aCgpKzEsdC5nZXREYXRlKCkpfX0pO3ZhciBjPWUuZXhwb3J0cz1uZXcgaTtjLmNkYXRlPWEsYy5iYXNlQ2FsZW5kYXI9cyxjLmNhbGVuZGFycy5ncmVnb3JpYW49bH0seyJvYmplY3QtYXNzaWduIjo0NjZ9XSw2MTg6W2Z1bmN0aW9uKHQsZSxyKXt2YXIgbj10KCJvYmplY3QtYXNzaWduIiksaT10KCIuL21haW4iKTtuKGkucmVnaW9uYWxPcHRpb25zWyIiXSx7aW52YWxpZEFyZ3VtZW50czoiSW52YWxpZCBhcmd1bWVudHMiLGludmFsaWRGb3JtYXQ6IkNhbm5vdCBmb3JtYXQgYSBkYXRlIGZyb20gYW5vdGhlciBjYWxlbmRhciIsbWlzc2luZ051bWJlckF0OiJNaXNzaW5nIG51bWJlciBhdCBwb3NpdGlvbiB7MH0iLHVua25vd25OYW1lQXQ6IlVua25vd24gbmFtZSBhdCBwb3NpdGlvbiB7MH0iLHVuZXhwZWN0ZWRMaXRlcmFsQXQ6IlVuZXhwZWN0ZWQgbGl0ZXJhbCBhdCBwb3NpdGlvbiB7MH0iLHVuZXhwZWN0ZWRUZXh0OiJBZGRpdGlvbmFsIHRleHQgZm91bmQgYXQgZW5kIn0pLGkubG9jYWw9aS5yZWdpb25hbE9wdGlvbnNbIiJdLG4oaS5jZGF0ZS5wcm90b3R5cGUse2Zvcm1hdERhdGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQmJihlPXQsdD0iIiksdGhpcy5fY2FsZW5kYXIuZm9ybWF0RGF0ZSh0fHwiIix0aGlzLGUpfX0pLG4oaS5iYXNlQ2FsZW5kYXIucHJvdG90eXBlLHtVTklYX0VQT0NIOmkuaW5zdGFuY2UoKS5uZXdEYXRlKDE5NzAsMSwxKS50b0pEKCksU0VDU19QRVJfREFZOjg2NDAwLFRJQ0tTX0VQT0NIOmkuaW5zdGFuY2UoKS5qZEVwb2NoLFRJQ0tTX1BFUl9EQVk6ODY0ZTksQVRPTToieXl5eS1tbS1kZCIsQ09PS0lFOiJELCBkZCBNIHl5eXkiLEZVTEw6IkRELCBNTSBkLCB5eXl5IixJU09fODYwMToieXl5eS1tbS1kZCIsSlVMSUFOOiJKIixSRkNfODIyOiJELCBkIE0geXkiLFJGQ184NTA6IkRELCBkZC1NLXl5IixSRkNfMTAzNjoiRCwgZCBNIHl5IixSRkNfMTEyMzoiRCwgZCBNIHl5eXkiLFJGQ18yODIyOiJELCBkIE0geXl5eSIsUlNTOiJELCBkIE0geXkiLFRJQ0tTOiIhIixUSU1FU1RBTVA6IkAiLFczQzoieXl5eS1tbS1kZCIsZm9ybWF0RGF0ZTpmdW5jdGlvbih0LGUscil7aWYoInN0cmluZyIhPXR5cGVvZiB0JiYocj1lLGU9dCx0PSIiKSwhZSlyZXR1cm4iIjtpZihlLmNhbGVuZGFyKCkhPT10aGlzKXRocm93IGkubG9jYWwuaW52YWxpZEZvcm1hdHx8aS5yZWdpb25hbE9wdGlvbnNbIiJdLmludmFsaWRGb3JtYXQ7dD10fHx0aGlzLmxvY2FsLmRhdGVGb3JtYXQ7Zm9yKHZhciBuLGEsbyxzLGw9KHI9cnx8e30pLmRheU5hbWVzU2hvcnR8fHRoaXMubG9jYWwuZGF5TmFtZXNTaG9ydCxjPXIuZGF5TmFtZXN8fHRoaXMubG9jYWwuZGF5TmFtZXMsdT1yLm1vbnRoTnVtYmVyc3x8dGhpcy5sb2NhbC5tb250aE51bWJlcnMsZj1yLm1vbnRoTmFtZXNTaG9ydHx8dGhpcy5sb2NhbC5tb250aE5hbWVzU2hvcnQsaD1yLm1vbnRoTmFtZXN8fHRoaXMubG9jYWwubW9udGhOYW1lcyxwPShyLmNhbGN1bGF0ZVdlZWt8fHRoaXMubG9jYWwuY2FsY3VsYXRlV2VlayxmdW5jdGlvbihlLHIpe2Zvcih2YXIgbj0xO3crbjx0Lmxlbmd0aCYmdC5jaGFyQXQodytuKT09PWU7KW4rKztyZXR1cm4gdys9bi0xLE1hdGguZmxvb3Iobi8ocnx8MSkpPjF9KSxkPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPSIiK2U7aWYocCh0LG4pKWZvcig7aS5sZW5ndGg8cjspaT0iMCIraTtyZXR1cm4gaX0sbT10aGlzLGc9ZnVuY3Rpb24odCl7cmV0dXJuImZ1bmN0aW9uIj09dHlwZW9mIHU/dS5jYWxsKG0sdCxwKCJtIikpOngoZCgibSIsdC5tb250aCgpLDIpKX0sdj1mdW5jdGlvbih0LGUpe3JldHVybiBlPyJmdW5jdGlvbiI9PXR5cGVvZiBoP2guY2FsbChtLHQpOmhbdC5tb250aCgpLW0ubWluTW9udGhdOiJmdW5jdGlvbiI9PXR5cGVvZiBmP2YuY2FsbChtLHQpOmZbdC5tb250aCgpLW0ubWluTW9udGhdfSx5PXRoaXMubG9jYWwuZGlnaXRzLHg9ZnVuY3Rpb24odCl7cmV0dXJuIHIubG9jYWxOdW1iZXJzJiZ5P3kodCk6dH0sYj0iIixfPSExLHc9MDt3PHQubGVuZ3RoO3crKylpZihfKSInIiE9PXQuY2hhckF0KHcpfHxwKCInIik/Yis9dC5jaGFyQXQodyk6Xz0hMTtlbHNlIHN3aXRjaCh0LmNoYXJBdCh3KSl7Y2FzZSJkIjpiKz14KGQoImQiLGUuZGF5KCksMikpO2JyZWFrO2Nhc2UiRCI6Yis9KG49IkQiLGE9ZS5kYXlPZldlZWsoKSxvPWwscz1jLHAobik/c1thXTpvW2FdKTticmVhaztjYXNlIm8iOmIrPWQoIm8iLGUuZGF5T2ZZZWFyKCksMyk7YnJlYWs7Y2FzZSJ3IjpiKz1kKCJ3IixlLndlZWtPZlllYXIoKSwyKTticmVhaztjYXNlIm0iOmIrPWcoZSk7YnJlYWs7Y2FzZSJNIjpiKz12KGUscCgiTSIpKTticmVhaztjYXNlInkiOmIrPXAoInkiLDIpP2UueWVhcigpOihlLnllYXIoKSUxMDA8MTA/IjAiOiIiKStlLnllYXIoKSUxMDA7YnJlYWs7Y2FzZSJZIjpwKCJZIiwyKSxiKz1lLmZvcm1hdFllYXIoKTticmVhaztjYXNlIkoiOmIrPWUudG9KRCgpO2JyZWFrO2Nhc2UiQCI6Yis9KGUudG9KRCgpLXRoaXMuVU5JWF9FUE9DSCkqdGhpcy5TRUNTX1BFUl9EQVk7YnJlYWs7Y2FzZSIhIjpiKz0oZS50b0pEKCktdGhpcy5USUNLU19FUE9DSCkqdGhpcy5USUNLU19QRVJfREFZO2JyZWFrO2Nhc2UiJyI6cCgiJyIpP2IrPSInIjpfPSEwO2JyZWFrO2RlZmF1bHQ6Yis9dC5jaGFyQXQodyl9cmV0dXJuIGJ9LHBhcnNlRGF0ZTpmdW5jdGlvbih0LGUscil7aWYobnVsbD09ZSl0aHJvdyBpLmxvY2FsLmludmFsaWRBcmd1bWVudHN8fGkucmVnaW9uYWxPcHRpb25zWyIiXS5pbnZhbGlkQXJndW1lbnRzO2lmKCIiPT09KGU9Im9iamVjdCI9PXR5cGVvZiBlP2UudG9TdHJpbmcoKTplKyIiKSlyZXR1cm4gbnVsbDt0PXR8fHRoaXMubG9jYWwuZGF0ZUZvcm1hdDt2YXIgbj0ocj1yfHx7fSkuc2hvcnRZZWFyQ3V0b2ZmfHx0aGlzLnNob3J0WWVhckN1dG9mZjtuPSJzdHJpbmciIT10eXBlb2Ygbj9uOnRoaXMudG9kYXkoKS55ZWFyKCklMTAwK3BhcnNlSW50KG4sMTApO2Zvcih2YXIgYT1yLmRheU5hbWVzU2hvcnR8fHRoaXMubG9jYWwuZGF5TmFtZXNTaG9ydCxvPXIuZGF5TmFtZXN8fHRoaXMubG9jYWwuZGF5TmFtZXMscz1yLnBhcnNlTW9udGh8fHRoaXMubG9jYWwucGFyc2VNb250aCxsPXIubW9udGhOdW1iZXJzfHx0aGlzLmxvY2FsLm1vbnRoTnVtYmVycyxjPXIubW9udGhOYW1lc1Nob3J0fHx0aGlzLmxvY2FsLm1vbnRoTmFtZXNTaG9ydCx1PXIubW9udGhOYW1lc3x8dGhpcy5sb2NhbC5tb250aE5hbWVzLGY9LTEsaD0tMSxwPS0xLGQ9LTEsbT0tMSxnPSExLHY9ITEseT1mdW5jdGlvbihlLHIpe2Zvcih2YXIgbj0xO00rbjx0Lmxlbmd0aCYmdC5jaGFyQXQoTStuKT09PWU7KW4rKztyZXR1cm4gTSs9bi0xLE1hdGguZmxvb3Iobi8ocnx8MSkpPjF9LHg9ZnVuY3Rpb24odCxyKXt2YXIgbj15KHQsciksYT1bMiwzLG4/NDoyLG4/NDoyLDEwLDExLDIwXVsib3lZSkAhIi5pbmRleE9mKHQpKzFdLG89bmV3IFJlZ0V4cCgiXi0/XFxkezEsIithKyJ9Iikscz1lLnN1YnN0cmluZyhBKS5tYXRjaChvKTtpZighcyl0aHJvdyhpLmxvY2FsLm1pc3NpbmdOdW1iZXJBdHx8aS5yZWdpb25hbE9wdGlvbnNbIiJdLm1pc3NpbmdOdW1iZXJBdCkucmVwbGFjZSgvXHswXH0vLEEpO3JldHVybiBBKz1zWzBdLmxlbmd0aCxwYXJzZUludChzWzBdLDEwKX0sYj10aGlzLF89ZnVuY3Rpb24oKXtpZigiZnVuY3Rpb24iPT10eXBlb2YgbCl7eSgibSIpO3ZhciB0PWwuY2FsbChiLGUuc3Vic3RyaW5nKEEpKTtyZXR1cm4gQSs9dC5sZW5ndGgsdH1yZXR1cm4geCgibSIpfSx3PWZ1bmN0aW9uKHQscixuLGEpe2Zvcih2YXIgbz15KHQsYSk/bjpyLHM9MDtzPG8ubGVuZ3RoO3MrKylpZihlLnN1YnN0cihBLG9bc10ubGVuZ3RoKS50b0xvd2VyQ2FzZSgpPT09b1tzXS50b0xvd2VyQ2FzZSgpKXJldHVybiBBKz1vW3NdLmxlbmd0aCxzK2IubWluTW9udGg7dGhyb3coaS5sb2NhbC51bmtub3duTmFtZUF0fHxpLnJlZ2lvbmFsT3B0aW9uc1siIl0udW5rbm93bk5hbWVBdCkucmVwbGFjZSgvXHswXH0vLEEpfSxUPWZ1bmN0aW9uKCl7aWYoImZ1bmN0aW9uIj09dHlwZW9mIHUpe3ZhciB0PXkoIk0iKT91LmNhbGwoYixlLnN1YnN0cmluZyhBKSk6Yy5jYWxsKGIsZS5zdWJzdHJpbmcoQSkpO3JldHVybiBBKz10Lmxlbmd0aCx0fXJldHVybiB3KCJNIixjLHUpfSxrPWZ1bmN0aW9uKCl7aWYoZS5jaGFyQXQoQSkhPT10LmNoYXJBdChNKSl0aHJvdyhpLmxvY2FsLnVuZXhwZWN0ZWRMaXRlcmFsQXR8fGkucmVnaW9uYWxPcHRpb25zWyIiXS51bmV4cGVjdGVkTGl0ZXJhbEF0KS5yZXBsYWNlKC9cezBcfS8sQSk7QSsrfSxBPTAsTT0wO008dC5sZW5ndGg7TSsrKWlmKHYpIiciIT09dC5jaGFyQXQoTSl8fHkoIiciKT9rKCk6dj0hMTtlbHNlIHN3aXRjaCh0LmNoYXJBdChNKSl7Y2FzZSJkIjpkPXgoImQiKTticmVhaztjYXNlIkQiOncoIkQiLGEsbyk7YnJlYWs7Y2FzZSJvIjptPXgoIm8iKTticmVhaztjYXNlInciOngoInciKTticmVhaztjYXNlIm0iOnA9XygpO2JyZWFrO2Nhc2UiTSI6cD1UKCk7YnJlYWs7Y2FzZSJ5Ijp2YXIgUz1NO2c9IXkoInkiLDIpLE09UyxoPXgoInkiLDIpO2JyZWFrO2Nhc2UiWSI6aD14KCJZIiwyKTticmVhaztjYXNlIkoiOmY9eCgiSiIpKy41LCIuIj09PWUuY2hhckF0KEEpJiYoQSsrLHgoIkoiKSk7YnJlYWs7Y2FzZSJAIjpmPXgoIkAiKS90aGlzLlNFQ1NfUEVSX0RBWSt0aGlzLlVOSVhfRVBPQ0g7YnJlYWs7Y2FzZSIhIjpmPXgoIiEiKS90aGlzLlRJQ0tTX1BFUl9EQVkrdGhpcy5USUNLU19FUE9DSDticmVhaztjYXNlIioiOkE9ZS5sZW5ndGg7YnJlYWs7Y2FzZSInIjp5KCInIik/aygpOnY9ITA7YnJlYWs7ZGVmYXVsdDprKCl9aWYoQTxlLmxlbmd0aCl0aHJvdyBpLmxvY2FsLnVuZXhwZWN0ZWRUZXh0fHxpLnJlZ2lvbmFsT3B0aW9uc1siIl0udW5leHBlY3RlZFRleHQ7aWYoLTE9PT1oP2g9dGhpcy50b2RheSgpLnllYXIoKTpoPDEwMCYmZyYmKGgrPS0xPT09bj8xOTAwOnRoaXMudG9kYXkoKS55ZWFyKCktdGhpcy50b2RheSgpLnllYXIoKSUxMDAtKGg8PW4/MDoxMDApKSwic3RyaW5nIj09dHlwZW9mIHAmJihwPXMuY2FsbCh0aGlzLGgscCkpLG0+LTEpe3A9MSxkPW07Zm9yKHZhciBFPXRoaXMuZGF5c0luTW9udGgoaCxwKTtkPkU7RT10aGlzLmRheXNJbk1vbnRoKGgscCkpcCsrLGQtPUV9cmV0dXJuIGY+LTE/dGhpcy5mcm9tSkQoZik6dGhpcy5uZXdEYXRlKGgscCxkKX0sZGV0ZXJtaW5lRGF0ZTpmdW5jdGlvbih0LGUscixuLGkpe3ImJiJvYmplY3QiIT10eXBlb2YgciYmKGk9bixuPXIscj1udWxsKSwic3RyaW5nIiE9dHlwZW9mIG4mJihpPW4sbj0iIik7dmFyIGE9dGhpcztyZXR1cm4gZT1lP2UubmV3RGF0ZSgpOm51bGwsdD1udWxsPT10P2U6InN0cmluZyI9PXR5cGVvZiB0P2Z1bmN0aW9uKHQpe3RyeXtyZXR1cm4gYS5wYXJzZURhdGUobix0LGkpfWNhdGNoKHQpe31mb3IodmFyIGU9KCh0PXQudG9Mb3dlckNhc2UoKSkubWF0Y2goL15jLykmJnI/ci5uZXdEYXRlKCk6bnVsbCl8fGEudG9kYXkoKSxvPS8oWystXT9bMC05XSspXHMqKGR8d3xtfHkpPy9nLHM9by5leGVjKHQpO3M7KWUuYWRkKHBhcnNlSW50KHNbMV0sMTApLHNbMl18fCJkIikscz1vLmV4ZWModCk7cmV0dXJuIGV9KHQpOiJudW1iZXIiPT10eXBlb2YgdD9pc05hTih0KXx8dD09PTEvMHx8dD09PS0xLzA/ZTphLnRvZGF5KCkuYWRkKHQsImQiKTphLm5ld0RhdGUodCl9fSl9LHsiLi9tYWluIjo2MTcsIm9iamVjdC1hc3NpZ24iOjQ2Nn1dLDYxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpPWZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbz10WzBdLHM9clswXSxsPVswXSxjPXM7bnw9MDt2YXIgdT0wLGY9cztmb3IodT0wO3U8bzsrK3Upe3ZhciBoPWVbbl0tYSxwPWVbbitjXS1hO2g+PTAhPXA+PTAmJmkucHVzaChsWzBdKy41Ky41KihoK3ApLyhoLXApKSxuKz1mLCsrbFswXX19fTtlLmV4cG9ydHM9KG49e2Z1bmNOYW1lOntmdW5jTmFtZToiemVyb0Nyb3NzaW5ncyJ9LmZ1bmNOYW1lfSxmdW5jdGlvbih0KXt2YXIgZT17fTtyZXR1cm4gZnVuY3Rpb24ocixuLGkpe3ZhciBhPXIuZHR5cGUsbz1yLm9yZGVyLHM9W2Esby5qb2luKCldLmpvaW4oKSxsPWVbc107cmV0dXJuIGx8fChlW3NdPWw9dChbYSxvXSkpLGwoci5zaGFwZS5zbGljZSgwKSxyLmRhdGEsci5zdHJpZGUsMHxyLm9mZnNldCxuLGkpfX0oaS5iaW5kKHZvaWQgMCxuKSkpfSx7fV0sNjIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPVtdO3JldHVybiBlPStlfHwwLG4odC5oaSh0LnNoYXBlWzBdLTEpLHIsZSkscn07dmFyIG49dCgiLi9saWIvemMtY29yZSIpfSx7Ii4vbGliL3pjLWNvcmUiOjYxOX1dLDYyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9W3twYXRoOiIiLGJhY2tvZmY6MH0se3BhdGg6Ik0tMi40LC0zVjNMMC42LDBaIixiYWNrb2ZmOi42fSx7cGF0aDoiTS0zLjcsLTIuNVYyLjVMMS4zLDBaIixiYWNrb2ZmOjEuM30se3BhdGg6Ik0tNC40NSwtM0wtMS42NSwtMC4yVjAuMkwtNC40NSwzTDEuNTUsMFoiLGJhY2tvZmY6MS41NX0se3BhdGg6Ik0tMi4yLC0yLjJMLTAuMiwtMC4yVjAuMkwtMi4yLDIuMkwtMS40LDNMMS42LDBMLTEuNCwtM1oiLGJhY2tvZmY6MS42fSx7cGF0aDoiTS00LjQsLTIuMUwtMC42LC0wLjJWMC4yTC00LjQsMi4xTC00LDNMMiwwTC00LC0zWiIsYmFja29mZjoyfSx7cGF0aDoiTTIsMEEyLDIgMCAxLDEgMCwtMkEyLDIgMCAwLDEgMiwwWiIsYmFja29mZjowLG5vUm90YXRlOiEwfSx7cGF0aDoiTTIsMlYtMkgtMlYyWiIsYmFja29mZjowLG5vUm90YXRlOiEwfV19LHt9XSw2MjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hcnJvd19wYXRocyIpLGk9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksbz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXk7dCgiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiKTtlLmV4cG9ydHM9bygiYW5ub3RhdGlvbiIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx0ZXh0YW5nbGU6e3ZhbFR5cGU6ImFuZ2xlIixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sZm9udDppKHtlZGl0VHlwZToiY2FsYythcnJheWRyYXciLGNvbG9yRWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxkZmx0Om51bGwsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0saGVpZ2h0Ont2YWxUeXBlOiJudW1iZXIiLG1pbjoxLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MSxlZGl0VHlwZToiYXJyYXlkcmF3In0sYWxpZ246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGRmbHQ6ImNlbnRlciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHZhbGlnbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoibWlkZGxlIixlZGl0VHlwZToiYXJyYXlkcmF3In0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxib3JkZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxib3JkZXJwYWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxzaG93YXJyb3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sYXJyb3djb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxhcnJvd2hlYWQ6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLG1heDpuLmxlbmd0aCxkZmx0OjEsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHN0YXJ0YXJyb3doZWFkOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxtYXg6bi5sZW5ndGgsZGZsdDoxLGVkaXRUeXBlOiJhcnJheWRyYXcifSxhcnJvd3NpZGU6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImVuZCIsInN0YXJ0Il0sZXh0cmFzOlsibm9uZSJdLGRmbHQ6ImVuZCIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGFycm93c2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46LjMsZGZsdDoxLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHN0YXJ0YXJyb3dzaXplOnt2YWxUeXBlOiJudW1iZXIiLG1pbjouMyxkZmx0OjEsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sYXJyb3d3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46LjEsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sc3RhbmRvZmY6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHN0YXJ0c3RhbmRvZmY6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGF4Ont2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGF5Ont2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGF4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJwaXhlbCIsdmFsdWVzOlsicGl4ZWwiLGEuaWRSZWdleC54LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJjYWxjIn0sYXlyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6InBpeGVsIix2YWx1ZXM6WyJwaXhlbCIsYS5pZFJlZ2V4LnkudG9TdHJpbmcoKV0sZWRpdFR5cGU6ImNhbGMifSx4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJwYXBlciIsYS5pZFJlZ2V4LngudG9TdHJpbmcoKV0sZWRpdFR5cGU6ImNhbGMifSx4Ont2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJhdXRvIixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx4c2hpZnQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHlyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBhcGVyIixhLmlkUmVnZXgueS50b1N0cmluZygpXSxlZGl0VHlwZToiY2FsYyJ9LHk6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHlzaGlmdDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sY2xpY2t0b3Nob3c6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITEsIm9ub2ZmIiwib25vdXQiXSxkZmx0OiExLGVkaXRUeXBlOiJhcnJheWRyYXcifSx4Y2xpY2s6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHljbGljazp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiYXJyYXlkcmF3In0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJhcnJheWRyYXcifSxob3ZlcmxhYmVsOntiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGZvbnQ6aSh7ZWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSxlZGl0VHlwZToiYXJyYXlkcmF3In0sY2FwdHVyZWV2ZW50czp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGVkaXRUeXBlOiJjYWxjIixfZGVwcmVjYXRlZDp7cmVmOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn19fSl9LHsiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiOjc0NSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo4MzQsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuL2Fycm93X3BhdGhzIjo2MjF9XSw2MjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi9kcmF3IikuZHJhdztmdW5jdGlvbiBvKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7bi5maWx0ZXJWaXNpYmxlKGUuYW5ub3RhdGlvbnMpLmZvckVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPWkuZ2V0RnJvbUlkKHQsZS54cmVmKSxuPWkuZ2V0RnJvbUlkKHQsZS55cmVmKSxhPWkuZ2V0UmVmVHlwZShlLnhyZWYpLG89aS5nZXRSZWZUeXBlKGUueXJlZik7ZS5fZXh0cmVtZXM9e30sInJhbmdlIj09PWEmJnMoZSxyKSwicmFuZ2UiPT09byYmcyhlLG4pfSkpfWZ1bmN0aW9uIHModCxlKXt2YXIgcixuPWUuX2lkLGE9bi5jaGFyQXQoMCksbz10W2FdLHM9dFsiYSIrYV0sbD10W2ErInJlZiJdLGM9dFsiYSIrYSsicmVmIl0sdT10WyJfIithKyJwYWRwbHVzIl0sZj10WyJfIithKyJwYWRtaW51cyJdLGg9e3g6MSx5Oi0xfVthXSp0W2ErInNoaWZ0Il0scD0zKnQuYXJyb3dzaXplKnQuYXJyb3d3aWR0aHx8MCxkPXAraCxtPXAtaCxnPTMqdC5zdGFydGFycm93c2l6ZSp0LmFycm93d2lkdGh8fDAsdj1nK2gseT1nLWg7aWYoYz09PWwpe3ZhciB4PWkuZmluZEV4dHJlbWVzKGUsW2UucjJjKG8pXSx7cHBhZHBsdXM6ZCxwcGFkbWludXM6bX0pLGI9aS5maW5kRXh0cmVtZXMoZSxbZS5yMmMocyldLHtwcGFkcGx1czpNYXRoLm1heCh1LHYpLHBwYWRtaW51czpNYXRoLm1heChmLHkpfSk7cj17bWluOlt4Lm1pblswXSxiLm1pblswXV0sbWF4Olt4Lm1heFswXSxiLm1heFswXV19fWVsc2Ugdj1zP3Yrczp2LHk9cz95LXM6eSxyPWkuZmluZEV4dHJlbWVzKGUsW2UucjJjKG8pXSx7cHBhZHBsdXM6TWF0aC5tYXgodSxkLHYpLHBwYWRtaW51czpNYXRoLm1heChmLG0seSl9KTt0Ll9leHRyZW1lc1tuXT1yfWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2lmKG4uZmlsdGVyVmlzaWJsZShlLmFubm90YXRpb25zKS5sZW5ndGgmJnQuX2Z1bGxEYXRhLmxlbmd0aClyZXR1cm4gbi5zeW5jT3JBc3luYyhbYSxvXSx0KX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4vZHJhdyI6NjI4fV0sNjI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS5hcnJheUVkaXRvcjtmdW5jdGlvbiBvKHQsZSl7dmFyIHIsbixpLGEsbyxsLGMsdT10Ll9mdWxsTGF5b3V0LmFubm90YXRpb25zLGY9W10saD1bXSxwPVtdLGQ9KGV8fFtdKS5sZW5ndGg7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKylpZihhPShpPXVbcl0pLmNsaWNrdG9zaG93KXtmb3Iobj0wO248ZDtuKyspaWYobD0obz1lW25dKS54YXhpcyxjPW8ueWF4aXMsbC5faWQ9PT1pLnhyZWYmJmMuX2lkPT09aS55cmVmJiZsLmQycihvLngpPT09cyhpLl94Y2xpY2ssbCkmJmMuZDJyKG8ueSk9PT1zKGkuX3ljbGljayxjKSl7KGkudmlzaWJsZT8ib25vdXQiPT09YT9oOnA6ZikucHVzaChyKTticmVha31uPT09ZCYmaS52aXNpYmxlJiYib25vdXQiPT09YSYmaC5wdXNoKHIpfXJldHVybntvbjpmLG9mZjpoLGV4cGxpY2l0T2ZmOnB9fWZ1bmN0aW9uIHModCxlKXtyZXR1cm4ibG9nIj09PWUudHlwZT9lLmwycih0KTplLmQycih0KX1lLmV4cG9ydHM9e2hhc0NsaWNrVG9TaG93OmZ1bmN0aW9uKHQsZSl7dmFyIHI9byh0LGUpO3JldHVybiByLm9uLmxlbmd0aD4wfHxyLmV4cGxpY2l0T2ZmLmxlbmd0aD4wfSxvbkNsaWNrOmZ1bmN0aW9uKHQsZSl7dmFyIHIscyxsPW8odCxlKSxjPWwub24sdT1sLm9mZi5jb25jYXQobC5leHBsaWNpdE9mZiksZj17fSxoPXQuX2Z1bGxMYXlvdXQuYW5ub3RhdGlvbnM7aWYoIWMubGVuZ3RoJiYhdS5sZW5ndGgpcmV0dXJuO2ZvcihyPTA7cjxjLmxlbmd0aDtyKyspKHM9YSh0LmxheW91dCwiYW5ub3RhdGlvbnMiLGhbY1tyXV0pKS5tb2RpZnlJdGVtKCJ2aXNpYmxlIiwhMCksbi5leHRlbmRGbGF0KGYscy5nZXRVcGRhdGVPYmooKSk7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKykocz1hKHQubGF5b3V0LCJhbm5vdGF0aW9ucyIsaFt1W3JdXSkpLm1vZGlmeUl0ZW0oInZpc2libGUiLCExKSxuLmV4dGVuZEZsYXQoZixzLmdldFVwZGF0ZU9iaigpKTtyZXR1cm4gaS5jYWxsKCJ1cGRhdGUiLHQse30sZil9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9yZWdpc3RyeSI6OTA0fV0sNjI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vY29sb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7YSgib3BhY2l0eSIpO3ZhciBvPWEoImJnY29sb3IiKSxzPWEoImJvcmRlcmNvbG9yIiksbD1pLm9wYWNpdHkocyk7YSgiYm9yZGVycGFkIik7dmFyIGM9YSgiYm9yZGVyd2lkdGgiKSx1PWEoInNob3dhcnJvdyIpO2lmKGEoInRleHQiLHU/IiAiOnIuX2RmbHRUaXRsZS5hbm5vdGF0aW9uKSxhKCJ0ZXh0YW5nbGUiKSxuLmNvZXJjZUZvbnQoYSwiZm9udCIsci5mb250KSxhKCJ3aWR0aCIpLGEoImFsaWduIiksYSgiaGVpZ2h0IikmJmEoInZhbGlnbiIpLHUpe3ZhciBmLGgscD1hKCJhcnJvd3NpZGUiKTstMSE9PXAuaW5kZXhPZigiZW5kIikmJihmPWEoImFycm93aGVhZCIpLGg9YSgiYXJyb3dzaXplIikpLC0xIT09cC5pbmRleE9mKCJzdGFydCIpJiYoYSgic3RhcnRhcnJvd2hlYWQiLGYpLGEoInN0YXJ0YXJyb3dzaXplIixoKSksYSgiYXJyb3djb2xvciIsbD9lLmJvcmRlcmNvbG9yOmkuZGVmYXVsdExpbmUpLGEoImFycm93d2lkdGgiLDIqKGwmJmN8fDEpKSxhKCJzdGFuZG9mZiIpLGEoInN0YXJ0c3RhbmRvZmYiKX12YXIgZD1hKCJob3ZlcnRleHQiKSxtPXIuaG92ZXJsYWJlbHx8e307aWYoZCl7dmFyIGc9YSgiaG92ZXJsYWJlbC5iZ2NvbG9yIixtLmJnY29sb3J8fChpLm9wYWNpdHkobyk/aS5yZ2Iobyk6aS5kZWZhdWx0TGluZSkpLHY9YSgiaG92ZXJsYWJlbC5ib3JkZXJjb2xvciIsbS5ib3JkZXJjb2xvcnx8aS5jb250cmFzdChnKSk7bi5jb2VyY2VGb250KGEsImhvdmVybGFiZWwuZm9udCIse2ZhbWlseTptLmZvbnQuZmFtaWx5LHNpemU6bS5mb250LnNpemUsY29sb3I6bS5mb250LmNvbG9yfHx2fSl9YSgiY2FwdHVyZWV2ZW50cyIsISFkKX19LHsiLi4vLi4vbGliIjo3NzYsIi4uL2NvbG9yIjo2Mzl9XSw2MjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYi90b19sb2dfcmFuZ2UiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7ZT1lfHx7fTt2YXIgbz0ibG9nIj09PXImJiJsaW5lYXIiPT09ZS50eXBlLHM9ImxpbmVhciI9PT1yJiYibG9nIj09PWUudHlwZTtpZihvfHxzKWZvcih2YXIgbCxjLHU9dC5fZnVsbExheW91dC5hbm5vdGF0aW9ucyxmPWUuX2lkLmNoYXJBdCgwKSxoPTA7aDx1Lmxlbmd0aDtoKyspbD11W2hdLGM9ImFubm90YXRpb25zWyIraCsiXS4iLGxbZisicmVmIl09PT1lLl9pZCYmcChmKSxsWyJhIitmKyJyZWYiXT09PWUuX2lkJiZwKCJhIitmKTtmdW5jdGlvbiBwKHQpe3ZhciByPWxbdF0scz1udWxsO3M9bz9pKHIsZS5yYW5nZSk6TWF0aC5wb3coMTAsciksbihzKXx8KHM9bnVsbCksYShjK3Qscyl9fX0seyIuLi8uLi9saWIvdG9fbG9nX3JhbmdlIjo4MDQsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw2Mjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbz10KCIuL2NvbW1vbl9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gbCh0LGUscil7ZnVuY3Rpb24gYShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUscyxyLGkpfXZhciBsPWEoInZpc2libGUiKSxjPWEoImNsaWNrdG9zaG93Iik7aWYobHx8Yyl7byh0LGUscixhKTtmb3IodmFyIHU9ZS5zaG93YXJyb3csZj1bIngiLCJ5Il0saD1bLTEwLC0zMF0scD17X2Z1bGxMYXlvdXQ6cn0sZD0wO2Q8MjtkKyspe3ZhciBtPWZbZF0sZz1pLmNvZXJjZVJlZih0LGUscCxtLCIiLCJwYXBlciIpO2lmKCJwYXBlciIhPT1nKWkuZ2V0RnJvbUlkKHAsZykuX2FubkluZGljZXMucHVzaChlLl9pbmRleCk7aWYoaS5jb2VyY2VQb3NpdGlvbihlLHAsYSxnLG0sLjUpLHUpe3ZhciB2PSJhIittLHk9aS5jb2VyY2VSZWYodCxlLHAsdiwicGl4ZWwiLFsicGl4ZWwiLCJwYXBlciJdKTsicGl4ZWwiIT09eSYmeSE9PWcmJih5PWVbdl09InBpeGVsIik7dmFyIHg9InBpeGVsIj09PXk/aFtkXTouNDtpLmNvZXJjZVBvc2l0aW9uKGUscCxhLHksdix4KX1hKG0rImFuY2hvciIpLGEobSsic2hpZnQiKX1pZihuLm5vbmVPckFsbCh0LGUsWyJ4IiwieSJdKSx1JiZuLm5vbmVPckFsbCh0LGUsWyJheCIsImF5Il0pLGMpe3ZhciBiPWEoInhjbGljayIpLF89YSgieWNsaWNrIik7ZS5feGNsaWNrPXZvaWQgMD09PWI/ZS54OmkuY2xlYW5Qb3NpdGlvbihiLHAsZS54cmVmKSxlLl95Y2xpY2s9dm9pZCAwPT09Xz9lLnk6aS5jbGVhblBvc2l0aW9uKF8scCxlLnlyZWYpfX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7YSh0LGUse25hbWU6ImFubm90YXRpb25zIixoYW5kbGVJdGVtRGVmYXVsdHM6bH0pfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo4MjIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4vYXR0cmlidXRlcyI6NjIyLCIuL2NvbW1vbl9kZWZhdWx0cyI6NjI1fV0sNjI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLG89dCgiLi4vLi4vbGliIikscz1vLnN0clRyYW5zbGF0ZSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYz10KCIuLi9jb2xvciIpLHU9dCgiLi4vZHJhd2luZyIpLGY9dCgiLi4vZngiKSxoPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHA9dCgiLi4vLi4vbGliL3NldGN1cnNvciIpLGQ9dCgiLi4vZHJhZ2VsZW1lbnQiKSxtPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS5hcnJheUVkaXRvcixnPXQoIi4vZHJhd19hcnJvd19oZWFkIik7ZnVuY3Rpb24gdih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQuYW5ub3RhdGlvbnNbZV18fHt9LG49bC5nZXRGcm9tSWQodCxyLnhyZWYpLGk9bC5nZXRGcm9tSWQodCxyLnlyZWYpO24mJm4uc2V0U2NhbGUoKSxpJiZpLnNldFNjYWxlKCkseCh0LHIsZSwhMSxuLGkpfWZ1bmN0aW9uIHkodCxlLHIsbixpKXt2YXIgYT1pW3JdLG89aVtyKyJyZWYiXSxzPS0xIT09ci5pbmRleE9mKCJ5IiksYz0iZG9tYWluIj09PWwuZ2V0UmVmVHlwZShvKSx1PXM/bi5oOm4udztyZXR1cm4gdD9jP2ErKHM/LWU6ZSkvdC5fbGVuZ3RoOnQucDJyKHQucjJwKGEpK2UpOmErKHM/LWU6ZSkvdX1mdW5jdGlvbiB4KHQsZSxyLGEsdix4KXt2YXIgYixfLHc9dC5fZnVsbExheW91dCxUPXQuX2Z1bGxMYXlvdXQuX3NpemUsaz10Ll9jb250ZXh0LmVkaXRzO2E/KGI9ImFubm90YXRpb24tIithLF89YSsiLmFubm90YXRpb25zIik6KGI9ImFubm90YXRpb24iLF89ImFubm90YXRpb25zIik7dmFyIEE9bSh0LmxheW91dCxfLGUpLE09QS5tb2RpZnlCYXNlLFM9QS5tb2RpZnlJdGVtLEU9QS5nZXRVcGRhdGVPYmo7dy5faW5mb2xheWVyLnNlbGVjdEFsbCgiLiIrYisnW2RhdGEtaW5kZXg9IicrcisnIl0nKS5yZW1vdmUoKTt2YXIgTD0iY2xpcCIrdy5fdWlkKyJfYW5uIityO2lmKGUuX2lucHV0JiYhMSE9PWUudmlzaWJsZSl7dmFyIEM9e3g6e30seTp7fX0sUD0rZS50ZXh0YW5nbGV8fDAsST13Ll9pbmZvbGF5ZXIuYXBwZW5kKCJnIikuY2xhc3NlZChiLCEwKS5hdHRyKCJkYXRhLWluZGV4IixTdHJpbmcocikpLnN0eWxlKCJvcGFjaXR5IixlLm9wYWNpdHkpLE89SS5hcHBlbmQoImciKS5jbGFzc2VkKCJhbm5vdGF0aW9uLXRleHQtZyIsITApLHo9a1tlLnNob3dhcnJvdz8iYW5ub3RhdGlvblRhaWwiOiJhbm5vdGF0aW9uUG9zaXRpb24iXSxEPWUuY2FwdHVyZWV2ZW50c3x8ay5hbm5vdGF0aW9uVGV4dHx8eixSPU8uYXBwZW5kKCJnIikuc3R5bGUoInBvaW50ZXItZXZlbnRzIixEPyJhbGwiOm51bGwpLmNhbGwocCwicG9pbnRlciIpLm9uKCJjbGljayIsKGZ1bmN0aW9uKCl7dC5fZHJhZ2dpbmc9ITEsdC5lbWl0KCJwbG90bHlfY2xpY2thbm5vdGF0aW9uIixZKG4uZXZlbnQpKX0pKTtlLmhvdmVydGV4dCYmUi5vbigibW91c2VvdmVyIiwoZnVuY3Rpb24oKXt2YXIgcj1lLmhvdmVybGFiZWwsbj1yLmZvbnQsaT10aGlzLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGE9dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtmLmxvbmVIb3Zlcih7eDA6aS5sZWZ0LWEubGVmdCx4MTppLnJpZ2h0LWEubGVmdCx5OihpLnRvcCtpLmJvdHRvbSkvMi1hLnRvcCx0ZXh0OmUuaG92ZXJ0ZXh0LGNvbG9yOnIuYmdjb2xvcixib3JkZXJDb2xvcjpyLmJvcmRlcmNvbG9yLGZvbnRGYW1pbHk6bi5mYW1pbHksZm9udFNpemU6bi5zaXplLGZvbnRDb2xvcjpuLmNvbG9yfSx7Y29udGFpbmVyOncuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOncuX3BhcGVyLm5vZGUoKSxnZDp0fSl9KSkub24oIm1vdXNlb3V0IiwoZnVuY3Rpb24oKXtmLmxvbmVVbmhvdmVyKHcuX2hvdmVybGF5ZXIubm9kZSgpKX0pKTt2YXIgRj1lLmJvcmRlcndpZHRoLEI9ZS5ib3JkZXJwYWQsTj1GK0Isaj1SLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmciKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixGKyJweCIpLmNhbGwoYy5zdHJva2UsZS5ib3JkZXJjb2xvcikuY2FsbChjLmZpbGwsZS5iZ2NvbG9yKSxVPWUud2lkdGh8fGUuaGVpZ2h0LFY9dy5fdG9wY2xpcHMuc2VsZWN0QWxsKCIjIitMKS5kYXRhKFU/WzBdOltdKTtWLmVudGVyKCkuYXBwZW5kKCJjbGlwUGF0aCIpLmNsYXNzZWQoImFubmNsaXAiLCEwKS5hdHRyKCJpZCIsTCkuYXBwZW5kKCJyZWN0IiksVi5leGl0KCkucmVtb3ZlKCk7dmFyIEg9ZS5mb250LHE9dy5fbWV0YT9vLnRlbXBsYXRlU3RyaW5nKGUudGV4dCx3Ll9tZXRhKTplLnRleHQsRz1SLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoImFubm90YXRpb24tdGV4dCIsITApLnRleHQocSk7ay5hbm5vdGF0aW9uVGV4dD9HLmNhbGwoaC5tYWtlRWRpdGFibGUse2RlbGVnYXRlOlIsZ2Q6dH0pLmNhbGwoVykub24oImVkaXQiLChmdW5jdGlvbihyKXtlLnRleHQ9cix0aGlzLmNhbGwoVyksUygidGV4dCIsciksdiYmdi5hdXRvcmFuZ2UmJk0odi5fbmFtZSsiLmF1dG9yYW5nZSIsITApLHgmJnguYXV0b3JhbmdlJiZNKHguX25hbWUrIi5hdXRvcmFuZ2UiLCEwKSxpLmNhbGwoIl9ndWlSZWxheW91dCIsdCxFKCkpfSkpOkcuY2FsbChXKX1lbHNlIG4uc2VsZWN0QWxsKCIjIitMKS5yZW1vdmUoKTtmdW5jdGlvbiBZKHQpe3ZhciBuPXtpbmRleDpyLGFubm90YXRpb246ZS5faW5wdXQsZnVsbEFubm90YXRpb246ZSxldmVudDp0fTtyZXR1cm4gYSYmKG4uc3VicGxvdElkPWEpLG59ZnVuY3Rpb24gVyhyKXtyZXR1cm4gci5jYWxsKHUuZm9udCxIKS5hdHRyKHsidGV4dC1hbmNob3IiOntsZWZ0OiJzdGFydCIscmlnaHQ6ImVuZCJ9W2UuYWxpZ25dfHwibWlkZGxlIn0pLGguY29udmVydFRvVHNwYW5zKHIsdCxYKSxyfWZ1bmN0aW9uIFgoKXt2YXIgcj1HLnNlbGVjdEFsbCgiYSIpOzE9PT1yLnNpemUoKSYmci50ZXh0KCk9PT1HLnRleHQoKSYmUi5pbnNlcnQoImEiLCI6Zmlyc3QtY2hpbGQiKS5hdHRyKHsieGxpbms6eGxpbms6aHJlZiI6ci5hdHRyKCJ4bGluazpocmVmIiksInhsaW5rOnhsaW5rOnNob3ciOnIuYXR0cigieGxpbms6c2hvdyIpfSkuc3R5bGUoe2N1cnNvcjoicG9pbnRlciJ9KS5ub2RlKCkuYXBwZW5kQ2hpbGQoai5ub2RlKCkpO3ZhciBuPVIuc2VsZWN0KCIuYW5ub3RhdGlvbi10ZXh0LW1hdGgtZ3JvdXAiKSxmPSFuLmVtcHR5KCksbT11LmJCb3goKGY/bjpHKS5ub2RlKCkpLGI9bS53aWR0aCxfPW0uaGVpZ2h0LEE9ZS53aWR0aHx8YixEPWUuaGVpZ2h0fHxfLEI9TWF0aC5yb3VuZChBKzIqTiksSD1NYXRoLnJvdW5kKEQrMipOKTtmdW5jdGlvbiBxKHQsZSl7cmV0dXJuImF1dG8iPT09ZSYmKGU9dDwxLzM/ImxlZnQiOnQ+Mi8zPyJyaWdodCI6ImNlbnRlciIpLHtjZW50ZXI6MCxtaWRkbGU6MCxsZWZ0Oi41LGJvdHRvbTotLjUscmlnaHQ6LS41LHRvcDouNX1bZV19Zm9yKHZhciBXPSExLFg9WyJ4IiwieSJdLFo9MDtaPFgubGVuZ3RoO1orKyl7dmFyIEosSyxRLCQsdHQsZXQ9WFtaXSxydD1lW2V0KyJyZWYiXXx8ZXQsbnQ9ZVsiYSIrZXQrInJlZiJdLGl0PXt4OnYseTp4fVtldF0sYXQ9KFArKCJ4Ij09PWV0PzA6LTkwKSkqTWF0aC5QSS8xODAsb3Q9QipNYXRoLmNvcyhhdCksc3Q9SCpNYXRoLnNpbihhdCksbHQ9TWF0aC5hYnMob3QpK01hdGguYWJzKHN0KSxjdD1lW2V0KyJhbmNob3IiXSx1dD1lW2V0KyJzaGlmdCJdKigieCI9PT1ldD8xOi0xKSxmdD1DW2V0XSxodD1sLmdldFJlZlR5cGUocnQpO2lmKGl0JiYiZG9tYWluIiE9PWh0KXt2YXIgcHQ9aXQucjJmcmFjdGlvbihlW2V0XSk7KHB0PDB8fHB0PjEpJiYobnQ9PT1ydD8oKHB0PWl0LnIyZnJhY3Rpb24oZVsiYSIrZXRdKSk8MHx8cHQ+MSkmJihXPSEwKTpXPSEwKSxKPWl0Ll9vZmZzZXQraXQucjJwKGVbZXRdKSwkPS41fWVsc2V7dmFyIGR0PSJkb21haW4iPT09aHQ7IngiPT09ZXQ/KFE9ZVtldF0sSj1kdD9pdC5fb2Zmc2V0K2l0Ll9sZW5ndGgqUTpKPVQubCtULncqUSk6KFE9MS1lW2V0XSxKPWR0P2l0Ll9vZmZzZXQraXQuX2xlbmd0aCpROko9VC50K1QuaCpRKSwkPWUuc2hvd2Fycm93Py41OlF9aWYoZS5zaG93YXJyb3cpe2Z0LmhlYWQ9Sjt2YXIgbXQ9ZVsiYSIrZXRdO2lmKHR0PW90KnEoLjUsZS54YW5jaG9yKS1zdCpxKC41LGUueWFuY2hvciksbnQ9PT1ydCl7dmFyIGd0PWwuZ2V0UmVmVHlwZShudCk7ImRvbWFpbiI9PT1ndD8oInkiPT09ZXQmJihtdD0xLW10KSxmdC50YWlsPWl0Ll9vZmZzZXQraXQuX2xlbmd0aCptdCk6InBhcGVyIj09PWd0PyJ5Ij09PWV0PyhtdD0xLW10LGZ0LnRhaWw9VC50K1QuaCptdCk6ZnQudGFpbD1ULmwrVC53Km10OmZ0LnRhaWw9aXQuX29mZnNldCtpdC5yMnAobXQpLEs9dHR9ZWxzZSBmdC50YWlsPUorbXQsSz10dCttdDtmdC50ZXh0PWZ0LnRhaWwrdHQ7dmFyIHZ0PXdbIngiPT09ZXQ/IndpZHRoIjoiaGVpZ2h0Il07aWYoInBhcGVyIj09PXJ0JiYoZnQuaGVhZD1vLmNvbnN0cmFpbihmdC5oZWFkLDEsdnQtMSkpLCJwaXhlbCI9PT1udCl7dmFyIHl0PS1NYXRoLm1heChmdC50YWlsLTMsZnQudGV4dCkseHQ9TWF0aC5taW4oZnQudGFpbCszLGZ0LnRleHQpLXZ0O3l0PjA/KGZ0LnRhaWwrPXl0LGZ0LnRleHQrPXl0KTp4dD4wJiYoZnQudGFpbC09eHQsZnQudGV4dC09eHQpfWZ0LnRhaWwrPXV0LGZ0LmhlYWQrPXV0fWVsc2UgSz10dD1sdCpxKCQsY3QpLGZ0LnRleHQ9Sit0dDtmdC50ZXh0Kz11dCx0dCs9dXQsSys9dXQsZVsiXyIrZXQrInBhZHBsdXMiXT1sdC8yK0ssZVsiXyIrZXQrInBhZG1pbnVzIl09bHQvMi1LLGVbIl8iK2V0KyJzaXplIl09bHQsZVsiXyIrZXQrInNoaWZ0Il09dHR9aWYoVylSLnJlbW92ZSgpO2Vsc2V7dmFyIGJ0PTAsX3Q9MDtpZigibGVmdCIhPT1lLmFsaWduJiYoYnQ9KEEtYikqKCJjZW50ZXIiPT09ZS5hbGlnbj8uNToxKSksInRvcCIhPT1lLnZhbGlnbiYmKF90PShELV8pKigibWlkZGxlIj09PWUudmFsaWduPy41OjEpKSxmKW4uc2VsZWN0KCJzdmciKS5hdHRyKHt4Ok4rYnQtMSx5Ok4rX3R9KS5jYWxsKHUuc2V0Q2xpcFVybCxVP0w6bnVsbCx0KTtlbHNle3ZhciB3dD1OK190LW0udG9wLFR0PU4rYnQtbS5sZWZ0O0cuY2FsbChoLnBvc2l0aW9uVGV4dCxUdCx3dCkuY2FsbCh1LnNldENsaXBVcmwsVT9MOm51bGwsdCl9Vi5zZWxlY3QoInJlY3QiKS5jYWxsKHUuc2V0UmVjdCxOLE4sQSxEKSxqLmNhbGwodS5zZXRSZWN0LEYvMixGLzIsQi1GLEgtRiksUi5jYWxsKHUuc2V0VHJhbnNsYXRlLE1hdGgucm91bmQoQy54LnRleHQtQi8yKSxNYXRoLnJvdW5kKEMueS50ZXh0LUgvMikpLE8uYXR0cih7dHJhbnNmb3JtOiJyb3RhdGUoIitQKyIsIitDLngudGV4dCsiLCIrQy55LnRleHQrIikifSk7dmFyIGt0LEF0PWZ1bmN0aW9uKHIsbil7SS5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLWFycm93LWciKS5yZW1vdmUoKTt2YXIgbD1DLnguaGVhZCxmPUMueS5oZWFkLGg9Qy54LnRhaWwrcixwPUMueS50YWlsK24sbT1DLngudGV4dCtyLGI9Qy55LnRleHQrbixfPW8ucm90YXRpb25YWU1hdHJpeChQLG0sYiksdz1vLmFwcGx5MkRUcmFuc2Zvcm0oXyksQT1vLmFwcGx5MkRUcmFuc2Zvcm0yKF8pLEw9K2ouYXR0cigid2lkdGgiKSx6PStqLmF0dHIoImhlaWdodCIpLEQ9bS0uNSpMLEY9RCtMLEI9Yi0uNSp6LE49Qit6LFU9W1tELEIsRCxOXSxbRCxOLEYsTl0sW0YsTixGLEJdLFtGLEIsRCxCXV0ubWFwKEEpO2lmKCFVLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdF4hIW8uc2VnbWVudHNJbnRlcnNlY3QobCxmLGwrMWU2LGYrMWU2LGVbMF0sZVsxXSxlWzJdLGVbM10pfSksITEpKXtVLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW8uc2VnbWVudHNJbnRlcnNlY3QoaCxwLGwsZix0WzBdLHRbMV0sdFsyXSx0WzNdKTtlJiYoaD1lLngscD1lLnkpfSkpO3ZhciBWPWUuYXJyb3d3aWR0aCxIPWUuYXJyb3djb2xvcixxPWUuYXJyb3dzaWRlLEc9SS5hcHBlbmQoImciKS5zdHlsZSh7b3BhY2l0eTpjLm9wYWNpdHkoSCl9KS5jbGFzc2VkKCJhbm5vdGF0aW9uLWFycm93LWciLCEwKSxZPUcuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsIk0iK2grIiwiK3ArIkwiK2wrIiwiK2YpLnN0eWxlKCJzdHJva2Utd2lkdGgiLFYrInB4IikuY2FsbChjLnN0cm9rZSxjLnJnYihIKSk7aWYoZyhZLHEsZSksay5hbm5vdGF0aW9uUG9zaXRpb24mJlkubm9kZSgpLnBhcmVudE5vZGUmJiFhKXt2YXIgVz1sLFg9ZjtpZihlLnN0YW5kb2ZmKXt2YXIgWj1NYXRoLnNxcnQoTWF0aC5wb3cobC1oLDIpK01hdGgucG93KGYtcCwyKSk7Vys9ZS5zdGFuZG9mZiooaC1sKS9aLFgrPWUuc3RhbmRvZmYqKHAtZikvWn12YXIgSixLLFE9Ry5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJhbm5vdGF0aW9uLWFycm93IiwhMCkuY2xhc3NlZCgiYW5uZHJhZyIsITApLmNsYXNzZWQoImN1cnNvci1tb3ZlIiwhMCkuYXR0cih7ZDoiTTMsM0gtM1YtM0gzWk0wLDBMIisoaC1XKSsiLCIrKHAtWCksdHJhbnNmb3JtOnMoVyxYKX0pLnN0eWxlKCJzdHJva2Utd2lkdGgiLFYrNisicHgiKS5jYWxsKGMuc3Ryb2tlLCJyZ2JhKDAsMCwwLDApIikuY2FsbChjLmZpbGwsInJnYmEoMCwwLDAsMCkiKTtkLmluaXQoe2VsZW1lbnQ6US5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24oKXt2YXIgdD11LmdldFRyYW5zbGF0ZShSKTtKPXQueCxLPXQueSx2JiZ2LmF1dG9yYW5nZSYmTSh2Ll9uYW1lKyIuYXV0b3JhbmdlIiwhMCkseCYmeC5hdXRvcmFuZ2UmJk0oeC5fbmFtZSsiLmF1dG9yYW5nZSIsITApfSxtb3ZlRm46ZnVuY3Rpb24odCxyKXt2YXIgbj13KEosSyksaT1uWzBdK3QsYT1uWzFdK3I7Ui5jYWxsKHUuc2V0VHJhbnNsYXRlLGksYSksUygieCIseSh2LHQsIngiLFQsZSkpLFMoInkiLHkoeCxyLCJ5IixULGUpKSxlLmF4cmVmPT09ZS54cmVmJiZTKCJheCIseSh2LHQsImF4IixULGUpKSxlLmF5cmVmPT09ZS55cmVmJiZTKCJheSIseSh4LHIsImF5IixULGUpKSxHLmF0dHIoInRyYW5zZm9ybSIscyh0LHIpKSxPLmF0dHIoe3RyYW5zZm9ybToicm90YXRlKCIrUCsiLCIraSsiLCIrYSsiKSJ9KX0sZG9uZUZuOmZ1bmN0aW9uKCl7aS5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsRSgpKTt2YXIgZT1kb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIuanMtbm90ZXMtYm94LXBhbmVsIik7ZSYmZS5yZWRyYXcoZS5zZWxlY3RlZE9iail9fSl9fX07aWYoZS5zaG93YXJyb3cmJkF0KDAsMCkseilkLmluaXQoe2VsZW1lbnQ6Ui5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24oKXtrdD1PLmF0dHIoInRyYW5zZm9ybSIpfSxtb3ZlRm46ZnVuY3Rpb24odCxyKXt2YXIgbj0icG9pbnRlciI7aWYoZS5zaG93YXJyb3cpZS5heHJlZj09PWUueHJlZj9TKCJheCIseSh2LHQsImF4IixULGUpKTpTKCJheCIsZS5heCt0KSxlLmF5cmVmPT09ZS55cmVmP1MoImF5Iix5KHgsciwiYXkiLFQudyxlKSk6UygiYXkiLGUuYXkrciksQXQodCxyKTtlbHNle2lmKGEpcmV0dXJuO3ZhciBpLG87aWYodilpPXkodix0LCJ4IixULGUpO2Vsc2V7dmFyIGw9ZS5feHNpemUvVC53LGM9ZS54KyhlLl94c2hpZnQtZS54c2hpZnQpL1Qudy1sLzI7aT1kLmFsaWduKGMrdC9ULncsbCwwLDEsZS54YW5jaG9yKX1pZih4KW89eSh4LHIsInkiLFQsZSk7ZWxzZXt2YXIgdT1lLl95c2l6ZS9ULmgsZj1lLnktKGUuX3lzaGlmdCtlLnlzaGlmdCkvVC5oLXUvMjtvPWQuYWxpZ24oZi1yL1QuaCx1LDAsMSxlLnlhbmNob3IpfVMoIngiLGkpLFMoInkiLG8pLHYmJnh8fChuPWQuZ2V0Q3Vyc29yKHY/LjU6aSx4Py41Om8sZS54YW5jaG9yLGUueWFuY2hvcikpfU8uYXR0cih7dHJhbnNmb3JtOnModCxyKStrdH0pLHAoUixuKX0sY2xpY2tGbjpmdW5jdGlvbihyLG4pe2UuY2FwdHVyZWV2ZW50cyYmdC5lbWl0KCJwbG90bHlfY2xpY2thbm5vdGF0aW9uIixZKG4pKX0sZG9uZUZuOmZ1bmN0aW9uKCl7cChSKSxpLmNhbGwoIl9ndWlSZWxheW91dCIsdCxFKCkpO3ZhciBlPWRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5qcy1ub3Rlcy1ib3gtcGFuZWwiKTtlJiZlLnJlZHJhdyhlLnNlbGVjdGVkT2JqKX19KX19fWUuZXhwb3J0cz17ZHJhdzpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2UuX2luZm9sYXllci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uIikucmVtb3ZlKCk7Zm9yKHZhciByPTA7cjxlLmFubm90YXRpb25zLmxlbmd0aDtyKyspZS5hbm5vdGF0aW9uc1tyXS52aXNpYmxlJiZ2KHQscik7cmV0dXJuIGEucHJldmlvdXNQcm9taXNlcyh0KX0sZHJhd09uZTp2LGRyYXdSYXc6eH19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjc5NywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vY29sb3IiOjYzOSwiLi4vZHJhZ2VsZW1lbnQiOjY1OCwiLi4vZHJhd2luZyI6NjYxLCIuLi9meCI6Njc5LCIuL2RyYXdfYXJyb3dfaGVhZCI6NjI5LCJAcGxvdGx5L2QzIjo1OH1dLDYyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi9jb2xvciIpLGE9dCgiLi9hcnJvd19wYXRocyIpLG89dCgiLi4vLi4vbGliIikscz1vLnN0clNjYWxlLGw9by5zdHJSb3RhdGUsYz1vLnN0clRyYW5zbGF0ZTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvLHUsZixoLHA9dC5ub2RlKCksZD1hW3IuYXJyb3doZWFkfHwwXSxtPWFbci5zdGFydGFycm93aGVhZHx8MF0sZz0oci5hcnJvd3dpZHRofHwxKSooci5hcnJvd3NpemV8fDEpLHY9KHIuYXJyb3d3aWR0aHx8MSkqKHIuc3RhcnRhcnJvd3NpemV8fDEpLHk9ZS5pbmRleE9mKCJzdGFydCIpPj0wLHg9ZS5pbmRleE9mKCJlbmQiKT49MCxiPWQuYmFja29mZipnK3Iuc3RhbmRvZmYsXz1tLmJhY2tvZmYqdityLnN0YXJ0c3RhbmRvZmY7aWYoImxpbmUiPT09cC5ub2RlTmFtZSl7bz17eDordC5hdHRyKCJ4MSIpLHk6K3QuYXR0cigieTEiKX0sdT17eDordC5hdHRyKCJ4MiIpLHk6K3QuYXR0cigieTIiKX07dmFyIHc9by54LXUueCxUPW8ueS11Lnk7aWYoaD0oZj1NYXRoLmF0YW4yKFQsdykpK01hdGguUEksYiYmXyYmYitfPk1hdGguc3FydCh3KncrVCpUKSlyZXR1cm4gdm9pZCB6KCk7aWYoYil7aWYoYipiPncqdytUKlQpcmV0dXJuIHZvaWQgeigpO3ZhciBrPWIqTWF0aC5jb3MoZiksQT1iKk1hdGguc2luKGYpO3UueCs9ayx1LnkrPUEsdC5hdHRyKHt4Mjp1LngseTI6dS55fSl9aWYoXyl7aWYoXypfPncqdytUKlQpcmV0dXJuIHZvaWQgeigpO3ZhciBNPV8qTWF0aC5jb3MoZiksUz1fKk1hdGguc2luKGYpO28ueC09TSxvLnktPVMsdC5hdHRyKHt4MTpvLngseTE6by55fSl9fWVsc2UgaWYoInBhdGgiPT09cC5ub2RlTmFtZSl7dmFyIEU9cC5nZXRUb3RhbExlbmd0aCgpLEw9IiI7aWYoRTxiK18pcmV0dXJuIHZvaWQgeigpO3ZhciBDPXAuZ2V0UG9pbnRBdExlbmd0aCgwKSxQPXAuZ2V0UG9pbnRBdExlbmd0aCguMSk7Zj1NYXRoLmF0YW4yKEMueS1QLnksQy54LVAueCksbz1wLmdldFBvaW50QXRMZW5ndGgoTWF0aC5taW4oXyxFKSksTD0iMHB4LCIrXysicHgsIjt2YXIgST1wLmdldFBvaW50QXRMZW5ndGgoRSksTz1wLmdldFBvaW50QXRMZW5ndGgoRS0uMSk7aD1NYXRoLmF0YW4yKEkueS1PLnksSS54LU8ueCksdT1wLmdldFBvaW50QXRMZW5ndGgoTWF0aC5tYXgoMCxFLWIpKSxMKz1FLShMP18rYjpiKSsicHgsIitFKyJweCIsdC5zdHlsZSgic3Ryb2tlLWRhc2hhcnJheSIsTCl9ZnVuY3Rpb24geigpe3Quc3R5bGUoInN0cm9rZS1kYXNoYXJyYXkiLCIwcHgsMTAwcHgiKX1mdW5jdGlvbiBEKGUsYSxvLHUpe2UucGF0aCYmKGUubm9Sb3RhdGUmJihvPTApLG4uc2VsZWN0KHAucGFyZW50Tm9kZSkuYXBwZW5kKCJwYXRoIikuYXR0cih7Y2xhc3M6dC5hdHRyKCJjbGFzcyIpLGQ6ZS5wYXRoLHRyYW5zZm9ybTpjKGEueCxhLnkpK2woMTgwKm8vTWF0aC5QSSkrcyh1KX0pLnN0eWxlKHtmaWxsOmkucmdiKHIuYXJyb3djb2xvciksInN0cm9rZS13aWR0aCI6MH0pKX15JiZEKG0sbyxmLHYpLHgmJkQoZCx1LGgsZyl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9jb2xvciI6NjM5LCIuL2Fycm93X3BhdGhzIjo2MjEsIkBwbG90bHkvZDMiOjU4fV0sNjMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZHJhdyIpLGk9dCgiLi9jbGljayIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJhbm5vdGF0aW9ucyIsbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksaW5jbHVkZUJhc2VQbG90OnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiKSgiYW5ub3RhdGlvbnMiKSxjYWxjQXV0b3JhbmdlOnQoIi4vY2FsY19hdXRvcmFuZ2UiKSxkcmF3Om4uZHJhdyxkcmF3T25lOm4uZHJhd09uZSxkcmF3UmF3Om4uZHJhd1JhdyxoYXNDbGlja1RvU2hvdzppLmhhc0NsaWNrVG9TaG93LG9uQ2xpY2s6aS5vbkNsaWNrLGNvbnZlcnRDb29yZHM6dCgiLi9jb252ZXJ0X2Nvb3JkcyIpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vaW5jbHVkZV9jb21wb25lbnRzIjo4NDAsIi4vYXR0cmlidXRlcyI6NjIyLCIuL2NhbGNfYXV0b3JhbmdlIjo2MjMsIi4vY2xpY2siOjYyNCwiLi9jb252ZXJ0X2Nvb3JkcyI6NjI2LCIuL2RlZmF1bHRzIjo2MjcsIi4vZHJhdyI6NjI4fV0sNjMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxhPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheTtlLmV4cG9ydHM9aShhKCJhbm5vdGF0aW9uIix7dmlzaWJsZTpuLnZpc2libGUseDp7dmFsVHlwZToiYW55In0seTp7dmFsVHlwZToiYW55In0sejp7dmFsVHlwZToiYW55In0sYXg6e3ZhbFR5cGU6Im51bWJlciJ9LGF5Ont2YWxUeXBlOiJudW1iZXIifSx4YW5jaG9yOm4ueGFuY2hvcix4c2hpZnQ6bi54c2hpZnQseWFuY2hvcjpuLnlhbmNob3IseXNoaWZ0Om4ueXNoaWZ0LHRleHQ6bi50ZXh0LHRleHRhbmdsZTpuLnRleHRhbmdsZSxmb250Om4uZm9udCx3aWR0aDpuLndpZHRoLGhlaWdodDpuLmhlaWdodCxvcGFjaXR5Om4ub3BhY2l0eSxhbGlnbjpuLmFsaWduLHZhbGlnbjpuLnZhbGlnbixiZ2NvbG9yOm4uYmdjb2xvcixib3JkZXJjb2xvcjpuLmJvcmRlcmNvbG9yLGJvcmRlcnBhZDpuLmJvcmRlcnBhZCxib3JkZXJ3aWR0aDpuLmJvcmRlcndpZHRoLHNob3dhcnJvdzpuLnNob3dhcnJvdyxhcnJvd2NvbG9yOm4uYXJyb3djb2xvcixhcnJvd2hlYWQ6bi5hcnJvd2hlYWQsc3RhcnRhcnJvd2hlYWQ6bi5zdGFydGFycm93aGVhZCxhcnJvd3NpZGU6bi5hcnJvd3NpZGUsYXJyb3dzaXplOm4uYXJyb3dzaXplLHN0YXJ0YXJyb3dzaXplOm4uc3RhcnRhcnJvd3NpemUsYXJyb3d3aWR0aDpuLmFycm93d2lkdGgsc3RhbmRvZmY6bi5zdGFuZG9mZixzdGFydHN0YW5kb2ZmOm4uc3RhcnRzdGFuZG9mZixob3ZlcnRleHQ6bi5ob3ZlcnRleHQsaG92ZXJsYWJlbDpuLmhvdmVybGFiZWwsY2FwdHVyZWV2ZW50czpuLmNhcHR1cmVldmVudHN9KSwiY2FsYyIsImZyb20tcm9vdCIpfSx7Ii4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi9hbm5vdGF0aW9ucy9hdHRyaWJ1dGVzIjo2MjJ9XSw2MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpO2Z1bmN0aW9uIGEodCxlKXt2YXIgcj1lLmZ1bGxTY2VuZUxheW91dC5kb21haW4sYT1lLmZ1bGxMYXlvdXQuX3NpemUsbz17cGRhdGE6bnVsbCx0eXBlOiJsaW5lYXIiLGF1dG9yYW5nZTohMSxyYW5nZTpbLTEvMCwxLzBdfTt0Ll94YT17fSxuLmV4dGVuZEZsYXQodC5feGEsbyksaS5zZXRDb252ZXJ0KHQuX3hhKSx0Ll94YS5fb2Zmc2V0PWEubCtyLnhbMF0qYS53LHQuX3hhLmwycD1mdW5jdGlvbigpe3JldHVybi41KigxK3QuX3BkYXRhWzBdL3QuX3BkYXRhWzNdKSphLncqKHIueFsxXS1yLnhbMF0pfSx0Ll95YT17fSxuLmV4dGVuZEZsYXQodC5feWEsbyksaS5zZXRDb252ZXJ0KHQuX3lhKSx0Ll95YS5fb2Zmc2V0PWEudCsoMS1yLnlbMV0pKmEuaCx0Ll95YS5sMnA9ZnVuY3Rpb24oKXtyZXR1cm4uNSooMS10Ll9wZGF0YVsxXS90Ll9wZGF0YVszXSkqYS5oKihyLnlbMV0tci55WzBdKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmZ1bGxTY2VuZUxheW91dC5hbm5vdGF0aW9ucyxyPTA7cjxlLmxlbmd0aDtyKyspYShlW3JdLHQpO3QuZnVsbExheW91dC5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmFubm90YXRpb24tIit0LmlkKS5yZW1vdmUoKX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4Mjd9XSw2MzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbz10KCIuLi9hbm5vdGF0aW9ucy9jb21tb25fZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIGwodCxlLHIsYSl7ZnVuY3Rpb24gbChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUscyxyLGkpfWZ1bmN0aW9uIGModCl7dmFyIG49dCsiYXhpcyIsYT17X2Z1bGxMYXlvdXQ6e319O3JldHVybiBhLl9mdWxsTGF5b3V0W25dPXJbbl0saS5jb2VyY2VQb3NpdGlvbihlLGEsbCx0LHQsLjUpfWwoInZpc2libGUiKSYmKG8odCxlLGEuZnVsbExheW91dCxsKSxjKCJ4IiksYygieSIpLGMoInoiKSxuLm5vbmVPckFsbCh0LGUsWyJ4IiwieSIsInoiXSksZS54cmVmPSJ4IixlLnlyZWY9InkiLGUuenJlZj0ieiIsbCgieGFuY2hvciIpLGwoInlhbmNob3IiKSxsKCJ4c2hpZnQiKSxsKCJ5c2hpZnQiKSxlLnNob3dhcnJvdyYmKGUuYXhyZWY9InBpeGVsIixlLmF5cmVmPSJwaXhlbCIsbCgiYXgiLC0xMCksbCgiYXkiLC0zMCksbi5ub25lT3JBbGwodCxlLFsiYXgiLCJheSJdKSkpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7YSh0LGUse25hbWU6ImFubm90YXRpb25zIixoYW5kbGVJdGVtRGVmYXVsdHM6bCxmdWxsTGF5b3V0OnIuZnVsbExheW91dH0pfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo4MjIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL2Fubm90YXRpb25zL2NvbW1vbl9kZWZhdWx0cyI6NjI1LCIuL2F0dHJpYnV0ZXMiOjYzMX1dLDYzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9hbm5vdGF0aW9ucy9kcmF3IikuZHJhd1JhdyxpPXQoIi4uLy4uL3Bsb3RzL2dsM2QvcHJvamVjdCIpLGE9WyJ4IiwieSIsInoiXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuZnVsbFNjZW5lTGF5b3V0LHI9dC5kYXRhU2NhbGUsbz1lLmFubm90YXRpb25zLHM9MDtzPG8ubGVuZ3RoO3MrKyl7Zm9yKHZhciBsPW9bc10sYz0hMSx1PTA7dTwzO3UrKyl7dmFyIGY9YVt1XSxoPWxbZl0scD1lW2YrImF4aXMiXS5yMmZyYWN0aW9uKGgpO2lmKHA8MHx8cD4xKXtjPSEwO2JyZWFrfX1jP3QuZnVsbExheW91dC5faW5mb2xheWVyLnNlbGVjdCgiLmFubm90YXRpb24tIit0LmlkKydbZGF0YS1pbmRleD0iJytzKyciXScpLnJlbW92ZSgpOihsLl9wZGF0YT1pKHQuZ2xwbG90LmNhbWVyYVBhcmFtcyxbZS54YXhpcy5yMmwobC54KSpyWzBdLGUueWF4aXMucjJsKGwueSkqclsxXSxlLnpheGlzLnIybChsLnopKnJbMl1dKSxuKHQuZ3JhcGhEaXYsbCxzLHQuaWQsbC5feGEsbC5feWEpKX19fSx7Ii4uLy4uL3Bsb3RzL2dsM2QvcHJvamVjdCI6ODc4LCIuLi9hbm5vdGF0aW9ucy9kcmF3Ijo2Mjh9XSw2MzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJhbm5vdGF0aW9uczNkIixzY2hlbWE6e3N1YnBsb3RzOntzY2VuZTp7YW5ub3RhdGlvbnM6dCgiLi9hdHRyaWJ1dGVzIil9fX0sbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxoYW5kbGVEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksaW5jbHVkZUJhc2VQbG90OmZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5zdWJwbG90c1JlZ2lzdHJ5LmdsM2Q7aWYoIXIpcmV0dXJuO2Zvcih2YXIgYT1yLmF0dHJSZWdleCxvPU9iamVjdC5rZXlzKHQpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGw9b1tzXTthLnRlc3QobCkmJih0W2xdLmFubm90YXRpb25zfHxbXSkubGVuZ3RoJiYoaS5wdXNoVW5pcXVlKGUuX2Jhc2VQbG90TW9kdWxlcyxyKSxpLnB1c2hVbmlxdWUoZS5fc3VicGxvdHMuZ2wzZCxsKSl9fSxjb252ZXJ0OnQoIi4vY29udmVydCIpLGRyYXc6dCgiLi9kcmF3Iil9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F0dHJpYnV0ZXMiOjYzMSwiLi9jb252ZXJ0Ijo2MzIsIi4vZGVmYXVsdHMiOjYzMywiLi9kcmF3Ijo2MzR9XSw2MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXQoIndvcmxkLWNhbGVuZGFycy9kaXN0L21haW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9wbHVzIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2NoaW5lc2UiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvY29wdGljIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2Rpc2N3b3JsZCIpLHQoIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9ldGhpb3BpYW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvaGVicmV3IiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2lzbGFtaWMiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvanVsaWFuIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL21heWFuIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL25hbmFrc2hhaGkiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvbmVwYWxpIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3BlcnNpYW4iKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvdGFpd2FuIiksdCgid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3RoYWkiKSx0KCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvdW1tYWxxdXJhIil9LHsid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2NoaW5lc2UiOjYwMywid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2NvcHRpYyI6NjA0LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvZGlzY3dvcmxkIjo2MDUsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9ldGhpb3BpYW4iOjYwNiwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL2hlYnJldyI6NjA3LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvaXNsYW1pYyI6NjA4LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvanVsaWFuIjo2MDksIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9tYXlhbiI6NjEwLCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvbmFuYWtzaGFoaSI6NjExLCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9jYWxlbmRhcnMvbmVwYWxpIjo2MTIsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy9wZXJzaWFuIjo2MTMsIndvcmxkLWNhbGVuZGFycy9kaXN0L2NhbGVuZGFycy90YWl3YW4iOjYxNCwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3RoYWkiOjYxNSwid29ybGQtY2FsZW5kYXJzL2Rpc3QvY2FsZW5kYXJzL3VtbWFscXVyYSI6NjE2LCJ3b3JsZC1jYWxlbmRhcnMvZGlzdC9tYWluIjo2MTcsIndvcmxkLWNhbGVuZGFycy9kaXN0L3BsdXMiOjYxOH1dLDYzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NhbGVuZGFycyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIiksbz1hLkVQT0NISkQscz1hLk9ORURBWSxsPXt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6aS5zb3J0T2JqZWN0S2V5cyhuLmNhbGVuZGFycyksZWRpdFR5cGU6ImNhbGMiLGRmbHQ6ImdyZWdvcmlhbiJ9LGM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9e307cmV0dXJuIGFbcl09bCxpLmNvZXJjZSh0LGUsYSxyLG4pfSx1PXtkOnswOiJkZCIsIi0iOiJkIn0sZTp7MDoiZCIsIi0iOiJkIn0sYTp7MDoiRCIsIi0iOiJEIn0sQTp7MDoiREQiLCItIjoiREQifSxqOnswOiJvbyIsIi0iOiJvIn0sVzp7MDoid3ciLCItIjoidyJ9LG06ezA6Im1tIiwiLSI6Im0ifSxiOnswOiJNIiwiLSI6Ik0ifSxCOnswOiJNTSIsIi0iOiJNTSJ9LHk6ezA6Inl5IiwiLSI6Inl5In0sWTp7MDoieXl5eSIsIi0iOiJ5eXl5In0sVToiIyMiLHc6IiMjIixjOnswOiJEIE0gZCAlWCB5eXl5IiwiLSI6IkQgTSBkICVYIHl5eXkifSx4OnswOiJtbS9kZC95eXl5IiwiLSI6Im1tL2RkL3l5eXkifX07dmFyIGY9e307ZnVuY3Rpb24gaCh0KXt2YXIgZT1mW3RdO3JldHVybiBlfHwoZT1mW3RdPW4uaW5zdGFuY2UodCkpfWZ1bmN0aW9uIHAodCl7cmV0dXJuIGkuZXh0ZW5kRmxhdCh7fSxsLHtkZXNjcmlwdGlvbjp0fSl9ZnVuY3Rpb24gZCh0KXtyZXR1cm4iU2V0cyB0aGUgY2FsZW5kYXIgc3lzdGVtIHRvIHVzZSB3aXRoIGAiK3QrImAgZGF0ZSBkYXRhLiJ9dmFyIG09e3hjYWxlbmRhcjpwKGQoIngiKSl9LGc9aS5leHRlbmRGbGF0KHt9LG0se3ljYWxlbmRhcjpwKGQoInkiKSl9KSx2PWkuZXh0ZW5kRmxhdCh7fSxnLHt6Y2FsZW5kYXI6cChkKCJ6IikpfSkseT1wKFsiU2V0cyB0aGUgY2FsZW5kYXIgc3lzdGVtIHRvIHVzZSBmb3IgYHJhbmdlYCBhbmQgYHRpY2swYCIsImlmIHRoaXMgaXMgYSBkYXRlIGF4aXMuIFRoaXMgZG9lcyBub3Qgc2V0IHRoZSBjYWxlbmRhciBmb3IiLCJpbnRlcnByZXRpbmcgZGF0YSBvbiB0aGlzIGF4aXMsIHRoYXQncyBzcGVjaWZpZWQgaW4gdGhlIHRyYWNlIiwib3IgdmlhIHRoZSBnbG9iYWwgYGxheW91dC5jYWxlbmRhcmAiXS5qb2luKCIgIikpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJjYWxlbmRhcnMiLHNjaGVtYTp7dHJhY2VzOntzY2F0dGVyOmcsYmFyOmcsYm94OmcsaGVhdG1hcDpnLGNvbnRvdXI6ZyxoaXN0b2dyYW06ZyxoaXN0b2dyYW0yZDpnLGhpc3RvZ3JhbTJkY29udG91cjpnLHNjYXR0ZXIzZDp2LHN1cmZhY2U6dixtZXNoM2Q6dixzY2F0dGVyZ2w6ZyxvaGxjOm0sY2FuZGxlc3RpY2s6bX0sbGF5b3V0OntjYWxlbmRhcjpwKFsiU2V0cyB0aGUgZGVmYXVsdCBjYWxlbmRhciBzeXN0ZW0gdG8gdXNlIGZvciBpbnRlcnByZXRpbmcgYW5kIiwiZGlzcGxheWluZyBkYXRlcyB0aHJvdWdob3V0IHRoZSBwbG90LiJdLmpvaW4oIiAiKSl9LHN1YnBsb3RzOnt4YXhpczp7Y2FsZW5kYXI6eX0seWF4aXM6e2NhbGVuZGFyOnl9LHNjZW5lOnt4YXhpczp7Y2FsZW5kYXI6eX0seWF4aXM6e2NhbGVuZGFyOnl9LHpheGlzOntjYWxlbmRhcjp5fX0scG9sYXI6e3JhZGlhbGF4aXM6e2NhbGVuZGFyOnl9fX0sdHJhbnNmb3Jtczp7ZmlsdGVyOnt2YWx1ZWNhbGVuZGFyOnAoWyJXQVJOSU5HOiBBbGwgdHJhbnNmb3JtcyBhcmUgZGVwcmVjYXRlZCBhbmQgbWF5IGJlIHJlbW92ZWQgZnJvbSB0aGUgQVBJIGluIG5leHQgbWFqb3IgdmVyc2lvbi4iLCJTZXRzIHRoZSBjYWxlbmRhciBzeXN0ZW0gdG8gdXNlIGZvciBgdmFsdWVgLCBpZiBpdCBpcyBhIGRhdGUuIl0uam9pbigiICIpKSx0YXJnZXRjYWxlbmRhcjpwKFsiV0FSTklORzogQWxsIHRyYW5zZm9ybXMgYXJlIGRlcHJlY2F0ZWQgYW5kIG1heSBiZSByZW1vdmVkIGZyb20gdGhlIEFQSSBpbiBuZXh0IG1ham9yIHZlcnNpb24uIiwiU2V0cyB0aGUgY2FsZW5kYXIgc3lzdGVtIHRvIHVzZSBmb3IgYHRhcmdldGAsIGlmIGl0IGlzIGFuIiwiYXJyYXkgb2YgZGF0ZXMuIElmIGB0YXJnZXRgIGlzIGEgc3RyaW5nIChlZyAqeCopIHdlIHVzZSB0aGUiLCJjb3JyZXNwb25kaW5nIHRyYWNlIGF0dHJpYnV0ZSAoZWcgYHhjYWxlbmRhcmApIGlmIGl0IGV4aXN0cywiLCJldmVuIGlmIGB0YXJnZXRjYWxlbmRhcmAgaXMgcHJvdmlkZWQuIl0uam9pbigiICIpKX19fSxsYXlvdXRBdHRyaWJ1dGVzOmwsaGFuZGxlRGVmYXVsdHM6YyxoYW5kbGVUcmFjZURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT0wO2k8ci5sZW5ndGg7aSsrKWModCxlLHJbaV0rImNhbGVuZGFyIixuLmNhbGVuZGFyKX0sQ0FOT05JQ0FMX1NVTkRBWTp7Y2hpbmVzZToiMjAwMC0wMS0wMiIsY29wdGljOiIyMDAwLTAxLTAzIixkaXNjd29ybGQ6IjIwMDAtMDEtMDMiLGV0aGlvcGlhbjoiMjAwMC0wMS0wNSIsaGVicmV3OiI1MDAwLTAxLTAxIixpc2xhbWljOiIxMDAwLTAxLTAyIixqdWxpYW46IjIwMDAtMDEtMDMiLG1heWFuOiI1MDAwLTAxLTAxIixuYW5ha3NoYWhpOiIxMDAwLTAxLTA1IixuZXBhbGk6IjIwMDAtMDEtMDUiLHBlcnNpYW46IjEwMDAtMDEtMDEiLGphbGFsaToiMTAwMC0wMS0wMSIsdGFpd2FuOiIxMDAwLTAxLTA0Iix0aGFpOiIyMDAwLTAxLTA0Iix1bW1hbHF1cmE6IjE0MDAtMDEtMDYifSxDQU5PTklDQUxfVElDSzp7Y2hpbmVzZToiMjAwMC0wMS0wMSIsY29wdGljOiIyMDAwLTAxLTAxIixkaXNjd29ybGQ6IjIwMDAtMDEtMDEiLGV0aGlvcGlhbjoiMjAwMC0wMS0wMSIsaGVicmV3OiI1MDAwLTAxLTAxIixpc2xhbWljOiIxMDAwLTAxLTAxIixqdWxpYW46IjIwMDAtMDEtMDEiLG1heWFuOiI1MDAwLTAxLTAxIixuYW5ha3NoYWhpOiIxMDAwLTAxLTAxIixuZXBhbGk6IjIwMDAtMDEtMDEiLHBlcnNpYW46IjEwMDAtMDEtMDEiLGphbGFsaToiMTAwMC0wMS0wMSIsdGFpd2FuOiIxMDAwLTAxLTAxIix0aGFpOiIyMDAwLTAxLTAxIix1bW1hbHF1cmE6IjE0MDAtMDEtMDEifSxERkxUUkFOR0U6e2NoaW5lc2U6WyIyMDAwLTAxLTAxIiwiMjAwMS0wMS0wMSJdLGNvcHRpYzpbIjE3MDAtMDEtMDEiLCIxNzAxLTAxLTAxIl0sZGlzY3dvcmxkOlsiMTgwMC0wMS0wMSIsIjE4MDEtMDEtMDEiXSxldGhpb3BpYW46WyIyMDAwLTAxLTAxIiwiMjAwMS0wMS0wMSJdLGhlYnJldzpbIjU3MDAtMDEtMDEiLCI1NzAxLTAxLTAxIl0saXNsYW1pYzpbIjE0MDAtMDEtMDEiLCIxNDAxLTAxLTAxIl0sanVsaWFuOlsiMjAwMC0wMS0wMSIsIjIwMDEtMDEtMDEiXSxtYXlhbjpbIjUyMDAtMDEtMDEiLCI1MjAxLTAxLTAxIl0sbmFuYWtzaGFoaTpbIjA1MDAtMDEtMDEiLCIwNTAxLTAxLTAxIl0sbmVwYWxpOlsiMjAwMC0wMS0wMSIsIjIwMDEtMDEtMDEiXSxwZXJzaWFuOlsiMTQwMC0wMS0wMSIsIjE0MDEtMDEtMDEiXSxqYWxhbGk6WyIxNDAwLTAxLTAxIiwiMTQwMS0wMS0wMSJdLHRhaXdhbjpbIjAxMDAtMDEtMDEiLCIwMTAxLTAxLTAxIl0sdGhhaTpbIjI1MDAtMDEtMDEiLCIyNTAxLTAxLTAxIl0sdW1tYWxxdXJhOlsiMTQwMC0wMS0wMSIsIjE0MDEtMDEtMDEiXX0sZ2V0Q2FsOmgsd29ybGRDYWxGbXQ6ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixpLGEsbCxjLGY9TWF0aC5mbG9vcigoZSsuMDUpL3MpK28scD1oKHIpLmZyb21KRChmKSxkPTA7LTEhPT0oZD10LmluZGV4T2YoIiUiLGQpKTspIjAiPT09KG49dC5jaGFyQXQoZCsxKSl8fCItIj09PW58fCJfIj09PW4/KGE9MyxpPXQuY2hhckF0KGQrMiksIl8iPT09biYmKG49Ii0iKSk6KGk9bixuPSIwIixhPTIpLChsPXVbaV0pPyhjPSIjIyI9PT1sPyIjIyI6cC5mb3JtYXREYXRlKGxbbl0pLHQ9dC5zdWJzdHIoMCxkKStjK3Quc3Vic3RyKGQrYSksZCs9Yy5sZW5ndGgpOmQrPWE7cmV0dXJuIHR9fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuL2NhbGVuZGFycyI6NjM2fV0sNjM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuZGVmYXVsdHM9WyIjMWY3N2I0IiwiI2ZmN2YwZSIsIiMyY2EwMmMiLCIjZDYyNzI4IiwiIzk0NjdiZCIsIiM4YzU2NGIiLCIjZTM3N2MyIiwiIzdmN2Y3ZiIsIiNiY2JkMjIiLCIjMTdiZWNmIl0sci5kZWZhdWx0TGluZT0iIzQ0NCIsci5saWdodExpbmU9IiNlZWUiLHIuYmFja2dyb3VuZD0iI2ZmZiIsci5ib3JkZXJMaW5lPSIjQkVDOEQ5IixyLmxpZ2h0RnJhY3Rpb249MWUzLzExfSx7fV0sNjM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInRpbnljb2xvcjIiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIvYXJyYXkiKS5pc1R5cGVkQXJyYXksbz1lLmV4cG9ydHM9e30scz10KCIuL2F0dHJpYnV0ZXMiKTtvLmRlZmF1bHRzPXMuZGVmYXVsdHM7dmFyIGw9by5kZWZhdWx0TGluZT1zLmRlZmF1bHRMaW5lO28ubGlnaHRMaW5lPXMubGlnaHRMaW5lO3ZhciBjPW8uYmFja2dyb3VuZD1zLmJhY2tncm91bmQ7ZnVuY3Rpb24gdSh0KXtpZihpKHQpfHwic3RyaW5nIiE9dHlwZW9mIHQpcmV0dXJuIHQ7dmFyIGU9dC50cmltKCk7aWYoInJnYiIhPT1lLnN1YnN0cigwLDMpKXJldHVybiB0O3ZhciByPWUubWF0Y2goL15yZ2JhP1xzKlwoKFteKCldKilcKSQvKTtpZighcilyZXR1cm4gdDt2YXIgbj1yWzFdLnRyaW0oKS5zcGxpdCgvXHMqW1xzLF1ccyovKSxhPSJhIj09PWUuY2hhckF0KDMpJiY0PT09bi5sZW5ndGg7aWYoIWEmJjMhPT1uLmxlbmd0aClyZXR1cm4gdDtmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKyl7aWYoIW5bb10ubGVuZ3RoKXJldHVybiB0O2lmKG5bb109TnVtYmVyKG5bb10pLCEobltvXT49MCkpcmV0dXJuIHQ7aWYoMz09PW8pbltvXT4xJiYobltvXT0xKTtlbHNlIGlmKG5bb10+PTEpcmV0dXJuIHR9dmFyIHM9TWF0aC5yb3VuZCgyNTUqblswXSkrIiwgIitNYXRoLnJvdW5kKDI1NSpuWzFdKSsiLCAiK01hdGgucm91bmQoMjU1Km5bMl0pO3JldHVybiBhPyJyZ2JhKCIrcysiLCAiK25bM10rIikiOiJyZ2IoIitzKyIpIn1vLnRpbnlSR0I9ZnVuY3Rpb24odCl7dmFyIGU9dC50b1JnYigpO3JldHVybiJyZ2IoIitNYXRoLnJvdW5kKGUucikrIiwgIitNYXRoLnJvdW5kKGUuZykrIiwgIitNYXRoLnJvdW5kKGUuYikrIikifSxvLnJnYj1mdW5jdGlvbih0KXtyZXR1cm4gby50aW55UkdCKG4odCkpfSxvLm9wYWNpdHk9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/bih0KS5nZXRBbHBoYSgpOjB9LG8uYWRkT3BhY2l0eT1mdW5jdGlvbih0LGUpe3ZhciByPW4odCkudG9SZ2IoKTtyZXR1cm4icmdiYSgiK01hdGgucm91bmQoci5yKSsiLCAiK01hdGgucm91bmQoci5nKSsiLCAiK01hdGgucm91bmQoci5iKSsiLCAiK2UrIikifSxvLmNvbWJpbmU9ZnVuY3Rpb24odCxlKXt2YXIgcj1uKHQpLnRvUmdiKCk7aWYoMT09PXIuYSlyZXR1cm4gbih0KS50b1JnYlN0cmluZygpO3ZhciBpPW4oZXx8YykudG9SZ2IoKSxhPTE9PT1pLmE/aTp7cjoyNTUqKDEtaS5hKStpLnIqaS5hLGc6MjU1KigxLWkuYSkraS5nKmkuYSxiOjI1NSooMS1pLmEpK2kuYippLmF9LG89e3I6YS5yKigxLXIuYSkrci5yKnIuYSxnOmEuZyooMS1yLmEpK3IuZypyLmEsYjphLmIqKDEtci5hKStyLmIqci5hfTtyZXR1cm4gbihvKS50b1JnYlN0cmluZygpfSxvLmNvbnRyYXN0PWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1uKHQpO3JldHVybiAxIT09aS5nZXRBbHBoYSgpJiYoaT1uKG8uY29tYmluZSh0LGMpKSksKGkuaXNEYXJrKCk/ZT9pLmxpZ2h0ZW4oZSk6YzpyP2kuZGFya2VuKHIpOmwpLnRvU3RyaW5nKCl9LG8uc3Ryb2tlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bihlKTt0LnN0eWxlKHtzdHJva2U6by50aW55UkdCKHIpLCJzdHJva2Utb3BhY2l0eSI6ci5nZXRBbHBoYSgpfSl9LG8uZmlsbD1mdW5jdGlvbih0LGUpe3ZhciByPW4oZSk7dC5zdHlsZSh7ZmlsbDpvLnRpbnlSR0IociksImZpbGwtb3BhY2l0eSI6ci5nZXRBbHBoYSgpfSl9LG8uY2xlYW49ZnVuY3Rpb24odCl7aWYodCYmIm9iamVjdCI9PXR5cGVvZiB0KXt2YXIgZSxyLG4saSxzPU9iamVjdC5rZXlzKHQpO2ZvcihlPTA7ZTxzLmxlbmd0aDtlKyspaWYoaT10W249c1tlXV0sImNvbG9yIj09PW4uc3Vic3RyKG4ubGVuZ3RoLTUpKWlmKEFycmF5LmlzQXJyYXkoaSkpZm9yKHI9MDtyPGkubGVuZ3RoO3IrKylpW3JdPXUoaVtyXSk7ZWxzZSB0W25dPXUoaSk7ZWxzZSBpZigiY29sb3JzY2FsZSI9PT1uLnN1YnN0cihuLmxlbmd0aC0xMCkmJkFycmF5LmlzQXJyYXkoaSkpZm9yKHI9MDtyPGkubGVuZ3RoO3IrKylBcnJheS5pc0FycmF5KGlbcl0pJiYoaVtyXVsxXT11KGlbcl1bMV0pKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoaSkpe3ZhciBsPWlbMF07aWYoIUFycmF5LmlzQXJyYXkobCkmJmwmJiJvYmplY3QiPT10eXBlb2YgbClmb3Iocj0wO3I8aS5sZW5ndGg7cisrKW8uY2xlYW4oaVtyXSl9ZWxzZSBpJiYib2JqZWN0Ij09dHlwZW9mIGkmJiFhKGkpJiZvLmNsZWFuKGkpfX19LHsiLi4vLi4vbGliL2FycmF5Ijo3NTgsIi4vYXR0cmlidXRlcyI6NjM4LCJmYXN0LWlzbnVtZXJpYyI6MjQyLHRpbnljb2xvcjI6NTcyfV0sNjQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDtlLmV4cG9ydHM9byh7dGhpY2tuZXNzbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJhY3Rpb24iLCJwaXhlbHMiXSxkZmx0OiJwaXhlbHMifSx0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDozMH0sbGVubW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJhY3Rpb24iLCJwaXhlbHMiXSxkZmx0OiJmcmFjdGlvbiJ9LGxlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLjAyLG1pbjotMixtYXg6M30seGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoibGVmdCJ9LHhwYWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxMH0seTp7dmFsVHlwZToibnVtYmVyIixkZmx0Oi41LG1pbjotMixtYXg6M30seWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoibWlkZGxlIn0seXBhZDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwfSxvdXRsaW5lY29sb3I6bi5saW5lY29sb3Isb3V0bGluZXdpZHRoOm4ubGluZXdpZHRoLGJvcmRlcmNvbG9yOm4ubGluZWNvbG9yLGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MH0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwwLDAsMCkifSx0aWNrbW9kZTpuLnRpY2ttb2RlLG50aWNrczpuLm50aWNrcyx0aWNrMDpuLnRpY2swLGR0aWNrOm4uZHRpY2ssdGlja3ZhbHM6bi50aWNrdmFscyx0aWNrdGV4dDpuLnRpY2t0ZXh0LHRpY2tzOmEoe30sbi50aWNrcyx7ZGZsdDoiIn0pLHRpY2tsYWJlbG92ZXJmbG93OmEoe30sbi50aWNrbGFiZWxvdmVyZmxvdyx7fSksdGlja2xhYmVscG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm91dHNpZGUiLCJpbnNpZGUiLCJvdXRzaWRlIHRvcCIsImluc2lkZSB0b3AiLCJvdXRzaWRlIGJvdHRvbSIsImluc2lkZSBib3R0b20iXSxkZmx0OiJvdXRzaWRlIn0sdGlja2xlbjpuLnRpY2tsZW4sdGlja3dpZHRoOm4udGlja3dpZHRoLHRpY2tjb2xvcjpuLnRpY2tjb2xvcixzaG93dGlja2xhYmVsczpuLnNob3d0aWNrbGFiZWxzLHRpY2tmb250Omkoe30pLHRpY2thbmdsZTpuLnRpY2thbmdsZSx0aWNrZm9ybWF0Om4udGlja2Zvcm1hdCx0aWNrZm9ybWF0c3RvcHM6bi50aWNrZm9ybWF0c3RvcHMsdGlja3ByZWZpeDpuLnRpY2twcmVmaXgsc2hvd3RpY2twcmVmaXg6bi5zaG93dGlja3ByZWZpeCx0aWNrc3VmZml4Om4udGlja3N1ZmZpeCxzaG93dGlja3N1ZmZpeDpuLnNob3d0aWNrc3VmZml4LHNlcGFyYXRldGhvdXNhbmRzOm4uc2VwYXJhdGV0aG91c2FuZHMsZXhwb25lbnRmb3JtYXQ6bi5leHBvbmVudGZvcm1hdCxtaW5leHBvbmVudDpuLm1pbmV4cG9uZW50LHNob3dleHBvbmVudDpuLnNob3dleHBvbmVudCx0aXRsZTp7dGV4dDp7dmFsVHlwZToic3RyaW5nIn0sZm9udDppKHt9KSxzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJyaWdodCIsInRvcCIsImJvdHRvbSJdLGRmbHQ6InRvcCJ9fSxfZGVwcmVjYXRlZDp7dGl0bGU6e3ZhbFR5cGU6InN0cmluZyJ9LHRpdGxlZm9udDppKHt9KSx0aXRsZXNpZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJpZ2h0IiwidG9wIiwiYm90dG9tIl0sZGZsdDoidG9wIn19fSwiY29sb3JiYXJzIiwiZnJvbS1yb290Iil9LHsiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo4MDksIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6ODQyLCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjg1Nn1dLDY0MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2NuOntjb2xvcmJhcjoiY29sb3JiYXIiLGNiYmc6ImNiYmciLGNiZmlsbDoiY2JmaWxsIixjYmZpbGxzOiJjYmZpbGxzIixjYmxpbmU6ImNibGluZSIsY2JsaW5lczoiY2JsaW5lcyIsY2JheGlzOiJjYmF4aXMiLGNidGl0bGV1bnNoaWZ0OiJjYnRpdGxldW5zaGlmdCIsY2J0aXRsZToiY2J0aXRsZSIsY2JvdXRsaW5lOiJjYm91dGxpbmUiLGNyaXNwOiJjcmlzcCIsanNQbGFjZWhvbGRlcjoianMtcGxhY2Vob2xkZXIifX19LHt9XSw2NDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja192YWx1ZV9kZWZhdWx0cyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbWFya19kZWZhdWx0cyIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiKSxsPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGM9aS5uZXdDb250YWluZXIoZSwiY29sb3JiYXIiKSx1PXQuY29sb3JiYXJ8fHt9O2Z1bmN0aW9uIGYodCxlKXtyZXR1cm4gbi5jb2VyY2UodSxjLGwsdCxlKX12YXIgaD1mKCJ0aGlja25lc3Ntb2RlIik7ZigidGhpY2tuZXNzIiwiZnJhY3Rpb24iPT09aD8zMC8oci53aWR0aC1yLm1hcmdpbi5sLXIubWFyZ2luLnIpOjMwKTt2YXIgcD1mKCJsZW5tb2RlIik7ZigibGVuIiwiZnJhY3Rpb24iPT09cD8xOnIuaGVpZ2h0LXIubWFyZ2luLnQtci5tYXJnaW4uYiksZigieCIpLGYoInhhbmNob3IiKSxmKCJ4cGFkIiksZigieSIpLGYoInlhbmNob3IiKSxmKCJ5cGFkIiksbi5ub25lT3JBbGwodSxjLFsieCIsInkiXSksZigib3V0bGluZWNvbG9yIiksZigib3V0bGluZXdpZHRoIiksZigiYm9yZGVyY29sb3IiKSxmKCJib3JkZXJ3aWR0aCIpLGYoImJnY29sb3IiKTt2YXIgZD1mKCJ0aWNrbGFiZWxwb3NpdGlvbiIpO2YoInRpY2tsYWJlbG92ZXJmbG93IiwtMSE9PWQuaW5kZXhPZigiaW5zaWRlIik/ImhpZGUgcGFzdCBkb21haW4iOiJoaWRlIHBhc3QgZGl2IiksYSh1LGMsZiwibGluZWFyIik7dmFyIG09ci5mb250LGc9e291dGVyVGlja3M6ITEsZm9udDptfTstMSE9PWQuaW5kZXhPZigiaW5zaWRlIikmJihnLmJnQ29sb3I9ImJsYWNrIikscyh1LGMsZiwibGluZWFyIixnKSxvKHUsYyxmLCJsaW5lYXIiLGcpLGYoInRpdGxlLnRleHQiLHIuX2RmbHRUaXRsZS5jb2xvcmJhcik7dmFyIHY9Yy50aWNrZm9udCx5PW4uZXh0ZW5kRmxhdCh7fSx2LHtjb2xvcjptLmNvbG9yLHNpemU6bi5iaWdGb250KHYuc2l6ZSl9KTtuLmNvZXJjZUZvbnQoZiwidGl0bGUuZm9udCIseSksZigidGl0bGUuc2lkZSIpfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyI6ODQ5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIjo4NTAsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIjo4NTEsIi4vYXR0cmlidXRlcyI6NjQwfV0sNjQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoInRpbnljb2xvcjIiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi8uLi9yZWdpc3RyeSIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxsPXQoIi4uL2RyYWdlbGVtZW50IiksYz10KCIuLi8uLi9saWIiKSx1PWMuc3RyVHJhbnNsYXRlLGY9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIikscD10KCIuLi9kcmF3aW5nIiksZD10KCIuLi9jb2xvciIpLG09dCgiLi4vdGl0bGVzIiksZz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSx2PXQoIi4uL2NvbG9yc2NhbGUvaGVscGVycyIpLmZsaXBTY2FsZSx5PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIikseD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiKSxiPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLF89dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLHc9Xy5MSU5FX1NQQUNJTkcsVD1fLkZST01fVEwsaz1fLkZST01fQlIsQT10KCIuL2NvbnN0YW50cyIpLmNuO2UuZXhwb3J0cz17ZHJhdzpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIuc2VsZWN0QWxsKCJnLiIrQS5jb2xvcmJhcikuZGF0YShmdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhPXQuX2Z1bGxMYXlvdXQsbz10LmNhbGNkYXRhLHM9W107ZnVuY3Rpb24gbCh0KXtyZXR1cm4gZih0LHtfZmlsbGNvbG9yOm51bGwsX2xpbmU6e2NvbG9yOm51bGwsd2lkdGg6bnVsbCxkYXNoOm51bGx9LF9sZXZlbHM6e3N0YXJ0Om51bGwsZW5kOm51bGwsc2l6ZTpudWxsfSxfZmlsbGxldmVsczpudWxsLF9maWxsZ3JhZGllbnQ6bnVsbCxfenJhbmdlOm51bGx9KX1mdW5jdGlvbiBjKCl7ImZ1bmN0aW9uIj09dHlwZW9mIGkuY2FsYz9pLmNhbGModCxuLGUpOihlLl9maWxsZ3JhZGllbnQ9ci5yZXZlcnNlc2NhbGU/dihyLmNvbG9yc2NhbGUpOnIuY29sb3JzY2FsZSxlLl96cmFuZ2U9W3JbaS5taW5dLHJbaS5tYXhdXSl9Zm9yKHZhciB1PTA7dTxvLmxlbmd0aDt1Kyspe3ZhciBoPW9bdV0scD0obj1oWzBdLnRyYWNlKS5fbW9kdWxlLmNvbG9yYmFyO2lmKCEwPT09bi52aXNpYmxlJiZwKWZvcih2YXIgZD1BcnJheS5pc0FycmF5KHApLG09ZD9wOltwXSxnPTA7ZzxtLmxlbmd0aDtnKyspe3ZhciB5PShpPW1bZ10pLmNvbnRhaW5lcjsocj15P25beV06bikmJnIuc2hvd3NjYWxlJiYoKGU9bChyLmNvbG9yYmFyKSkuX2lkPSJjYiIrbi51aWQrKGQmJnk/Ii0iK3k6IiIpLGUuX3RyYWNlSW5kZXg9bi5pbmRleCxlLl9wcm9wUHJlZml4PSh5P3krIi4iOiIiKSsiY29sb3JiYXIuIixlLl9tZXRhPW4uX21ldGEsYygpLHMucHVzaChlKSl9fWZvcih2YXIgeCBpbiBhLl9jb2xvckF4ZXMpaWYoKHI9YVt4XSkuc2hvd3NjYWxlKXt2YXIgYj1hLl9jb2xvckF4ZXNbeF07KGU9bChyLmNvbG9yYmFyKSkuX2lkPSJjYiIreCxlLl9wcm9wUHJlZml4PXgrIi5jb2xvcmJhci4iLGUuX21ldGE9YS5fbWV0YSxpPXttaW46ImNtaW4iLG1heDoiY21heCJ9LCJoZWF0bWFwIiE9PWJbMF0mJihuPWJbMV0saS5jYWxjPW4uX21vZHVsZS5jb2xvcmJhci5jYWxjKSxjKCkscy5wdXNoKGUpfXJldHVybiBzfSh0KSwoZnVuY3Rpb24odCl7cmV0dXJuIHQuX2lkfSkpO2UuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9pZH0pKS5jbGFzc2VkKEEuY29sb3JiYXIsITApLGUuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyk7Yy5lbnN1cmVTaW5nbGUociwicmVjdCIsQS5jYmJnKSxjLmVuc3VyZVNpbmdsZShyLCJnIixBLmNiZmlsbHMpLGMuZW5zdXJlU2luZ2xlKHIsImciLEEuY2JsaW5lcyksYy5lbnN1cmVTaW5nbGUociwiZyIsQS5jYmF4aXMsKGZ1bmN0aW9uKHQpe3QuY2xhc3NlZChBLmNyaXNwLCEwKX0pKSxjLmVuc3VyZVNpbmdsZShyLCJnIixBLmNidGl0bGV1bnNoaWZ0LChmdW5jdGlvbih0KXt0LmFwcGVuZCgiZyIpLmNsYXNzZWQoQS5jYnRpdGxlLCEwKX0pKSxjLmVuc3VyZVNpbmdsZShyLCJyZWN0IixBLmNib3V0bGluZSk7dmFyIHY9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPXIuX2Z1bGxMYXlvdXQsbD1vLl9zaXplLGg9ZS5fZmlsbGNvbG9yLHY9ZS5fbGluZSxfPWUudGl0bGUsTT1fLnNpZGUsUz1lLl96cmFuZ2V8fG4uZXh0ZW50KCgiZnVuY3Rpb24iPT10eXBlb2YgaD9oOnYuY29sb3IpLmRvbWFpbigpKSxFPSJmdW5jdGlvbiI9PXR5cGVvZiB2LmNvbG9yP3YuY29sb3I6ZnVuY3Rpb24oKXtyZXR1cm4gdi5jb2xvcn0sTD0iZnVuY3Rpb24iPT10eXBlb2YgaD9oOmZ1bmN0aW9uKCl7cmV0dXJuIGh9LEM9ZS5fbGV2ZWxzLFA9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT1lLl9sZXZlbHMsbz1bXSxzPVtdLGw9YS5lbmQrYS5zaXplLzEwMCxjPWEuc2l6ZSx1PTEuMDAxKnJbMF0tLjAwMSpyWzFdLGY9MS4wMDEqclsxXS0uMDAxKnJbMF07Zm9yKGk9MDtpPDFlNSYmKG49YS5zdGFydCtpKmMsIShjPjA/bj49bDpuPD1sKSk7aSsrKW4+dSYmbjxmJiZvLnB1c2gobik7aWYoZS5fZmlsbGdyYWRpZW50KXM9WzBdO2Vsc2UgaWYoImZ1bmN0aW9uIj09dHlwZW9mIGUuX2ZpbGxjb2xvcil7dmFyIGg9ZS5fZmlsbGxldmVscztpZihoKWZvcihsPWguZW5kK2guc2l6ZS8xMDAsYz1oLnNpemUsaT0wO2k8MWU1JiYobj1oLnN0YXJ0K2kqYywhKGM+MD9uPj1sOm48PWwpKTtpKyspbj5yWzBdJiZuPHJbMV0mJnMucHVzaChuKTtlbHNlKHM9by5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LWEuc2l6ZS8yfSkpKS5wdXNoKHNbcy5sZW5ndGgtMV0rYS5zaXplKX1lbHNlIGUuX2ZpbGxjb2xvciYmInN0cmluZyI9PXR5cGVvZiBlLl9maWxsY29sb3ImJihzPVswXSk7YS5zaXplPDAmJihvLnJldmVyc2UoKSxzLnJldmVyc2UoKSk7cmV0dXJue2xpbmU6byxmaWxsOnN9fSgwLGUsUyksST1QLmZpbGwsTz1QLmxpbmUsej1NYXRoLnJvdW5kKGUudGhpY2tuZXNzKigiZnJhY3Rpb24iPT09ZS50aGlja25lc3Ntb2RlP2wudzoxKSksRD16L2wudyxSPU1hdGgucm91bmQoZS5sZW4qKCJmcmFjdGlvbiI9PT1lLmxlbm1vZGU/bC5oOjEpKSxGPVIvbC5oLEI9ZS54cGFkL2wudyxOPShlLmJvcmRlcndpZHRoK2Uub3V0bGluZXdpZHRoKS8yLGo9ZS55cGFkL2wuaCxVPU1hdGgucm91bmQoZS54KmwudytlLnhwYWQpLFY9ZS54LUQqKHttaWRkbGU6LjUscmlnaHQ6MX1bZS54YW5jaG9yXXx8MCksSD1lLnkrRiooKHt0b3A6LS41LGJvdHRvbTouNX1bZS55YW5jaG9yXXx8MCktLjUpLHE9TWF0aC5yb3VuZChsLmgqKDEtSCkpLEc9cS1SO2UuX2xlbkZyYWM9RixlLl90aGlja0ZyYWM9RCxlLl94TGVmdEZyYWM9VixlLl95Qm90dG9tRnJhYz1IO3ZhciBZPWUuX2F4aXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQsaT17dHlwZToibGluZWFyIixyYW5nZTpyLHRpY2ttb2RlOmUudGlja21vZGUsbnRpY2tzOmUubnRpY2tzLHRpY2swOmUudGljazAsZHRpY2s6ZS5kdGljayx0aWNrdmFsczplLnRpY2t2YWxzLHRpY2t0ZXh0OmUudGlja3RleHQsdGlja3M6ZS50aWNrcyx0aWNrbGVuOmUudGlja2xlbix0aWNrd2lkdGg6ZS50aWNrd2lkdGgsdGlja2NvbG9yOmUudGlja2NvbG9yLHNob3d0aWNrbGFiZWxzOmUuc2hvd3RpY2tsYWJlbHMsdGlja2xhYmVscG9zaXRpb246ZS50aWNrbGFiZWxwb3NpdGlvbix0aWNrbGFiZWxvdmVyZmxvdzplLnRpY2tsYWJlbG92ZXJmbG93LHRpY2tmb250OmUudGlja2ZvbnQsdGlja2FuZ2xlOmUudGlja2FuZ2xlLHRpY2tmb3JtYXQ6ZS50aWNrZm9ybWF0LGV4cG9uZW50Zm9ybWF0OmUuZXhwb25lbnRmb3JtYXQsbWluZXhwb25lbnQ6ZS5taW5leHBvbmVudCxzZXBhcmF0ZXRob3VzYW5kczplLnNlcGFyYXRldGhvdXNhbmRzLHNob3dleHBvbmVudDplLnNob3dleHBvbmVudCxzaG93dGlja3ByZWZpeDplLnNob3d0aWNrcHJlZml4LHRpY2twcmVmaXg6ZS50aWNrcHJlZml4LHNob3d0aWNrc3VmZml4OmUuc2hvd3RpY2tzdWZmaXgsdGlja3N1ZmZpeDplLnRpY2tzdWZmaXgsdGl0bGU6ZS50aXRsZSxzaG93bGluZTohMCxhbmNob3I6ImZyZWUiLHNpZGU6InJpZ2h0Iixwb3NpdGlvbjoxfSxhPXt0eXBlOiJsaW5lYXIiLF9pZDoieSIrZS5faWR9LG89e2xldHRlcjoieSIsZm9udDpuLmZvbnQsbm9Ib3ZlcjohMCxub1RpY2tzb246ITAsbm9UaWNrbGFiZWxtb2RlOiEwLGNhbGVuZGFyOm4uY2FsZW5kYXJ9O2Z1bmN0aW9uIHModCxlKXtyZXR1cm4gYy5jb2VyY2UoaSxhLGIsdCxlKX1yZXR1cm4geShpLGEscyxvLG4pLHgoaSxhLHMsbyksYX0ocixlLFMpO1kucG9zaXRpb249ZS54K0IrRCwtMSE9PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZihNKSYmKFkudGl0bGUuc2lkZT1NLFkudGl0bGV4PWUueCtCLFkudGl0bGV5PUgrKCJ0b3AiPT09Xy5zaWRlP0YtajpqKSk7aWYodi5jb2xvciYmImF1dG8iPT09ZS50aWNrbW9kZSl7WS50aWNrbW9kZT0ibGluZWFyIixZLnRpY2swPUMuc3RhcnQ7dmFyIFc9Qy5zaXplLFg9Yy5jb25zdHJhaW4oKHEtRykvNTAsNCwxNSkrMSxaPShTWzFdLVNbMF0pLygoZS5udGlja3N8fFgpKlcpO2lmKFo+MSl7dmFyIEo9TWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLmxvZyhaKS9NYXRoLkxOMTApKTtXKj1KKmMucm91bmRVcChaL0osWzIsNSwxMF0pLChNYXRoLmFicyhDLnN0YXJ0KS9DLnNpemUrMWUtNiklMTwyZS02JiYoWS50aWNrMD0wKX1ZLmR0aWNrPVd9WS5kb21haW49W0graixIK0Ytal0sWS5zZXRTY2FsZSgpLHQuYXR0cigidHJhbnNmb3JtIix1KE1hdGgucm91bmQobC5sKSxNYXRoLnJvdW5kKGwudCkpKTt2YXIgSyxRPXQuc2VsZWN0KCIuIitBLmNidGl0bGV1bnNoaWZ0KS5hdHRyKCJ0cmFuc2Zvcm0iLHUoLU1hdGgucm91bmQobC5sKSwtTWF0aC5yb3VuZChsLnQpKSksJD10LnNlbGVjdCgiLiIrQS5jYmF4aXMpLHR0PTA7ZnVuY3Rpb24gZXQobixpKXt2YXIgYT17cHJvcENvbnRhaW5lcjpZLHByb3BOYW1lOmUuX3Byb3BQcmVmaXgrInRpdGxlIix0cmFjZUluZGV4OmUuX3RyYWNlSW5kZXgsX21ldGE6ZS5fbWV0YSxwbGFjZWhvbGRlcjpvLl9kZmx0VGl0bGUuY29sb3JiYXIsY29udGFpbmVyR3JvdXA6dC5zZWxlY3QoIi4iK0EuY2J0aXRsZSl9LHM9ImgiPT09bi5jaGFyQXQoMCk/bi5zdWJzdHIoMSk6ImgiK247dC5zZWxlY3RBbGwoIi4iK3MrIiwuIitzKyItbWF0aC1ncm91cCIpLnJlbW92ZSgpLG0uZHJhdyhyLG4sZihhLGl8fHt9KSl9cmV0dXJuIGMuc3luY09yQXN5bmMoW2EucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe2lmKC0xIT09WyJ0b3AiLCJib3R0b20iXS5pbmRleE9mKE0pKXt2YXIgdCxyPWwubCsoZS54K0IpKmwudyxuPVkudGl0bGUuZm9udC5zaXplO3Q9InRvcCI9PT1NPygxLShIK0YtaikpKmwuaCtsLnQrMysuNzUqbjooMS0oSCtqKSkqbC5oK2wudC0zLS4yNSpuLGV0KFkuX2lkKyJ0aXRsZSIse2F0dHJpYnV0ZXM6e3g6cix5OnQsInRleHQtYW5jaG9yIjoic3RhcnQifX0pfX0sZnVuY3Rpb24oKXtpZigtMSE9PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZihNKSl7dmFyIGE9dC5zZWxlY3QoIi4iK0EuY2J0aXRsZSksbz1hLnNlbGVjdCgidGV4dCIpLGY9Wy1lLm91dGxpbmV3aWR0aC8yLGUub3V0bGluZXdpZHRoLzJdLGg9YS5zZWxlY3QoIi5oIitZLl9pZCsidGl0bGUtbWF0aC1ncm91cCIpLm5vZGUoKSxkPTE1LjY7aWYoby5ub2RlKCkmJihkPXBhcnNlSW50KG8ubm9kZSgpLnN0eWxlLmZvbnRTaXplLDEwKSp3KSxoPyh0dD1wLmJCb3goaCkuaGVpZ2h0KT5kJiYoZlsxXS09KHR0LWQpLzIpOm8ubm9kZSgpJiYhby5jbGFzc2VkKEEuanNQbGFjZWhvbGRlcikmJih0dD1wLmJCb3goby5ub2RlKCkpLmhlaWdodCksdHQpe2lmKHR0Kz01LCJ0b3AiPT09TSlZLmRvbWFpblsxXS09dHQvbC5oLGZbMV0qPS0xO2Vsc2V7WS5kb21haW5bMF0rPXR0L2wuaDt2YXIgbT1nLmxpbmVDb3VudChvKTtmWzFdKz0oMS1tKSpkfWEuYXR0cigidHJhbnNmb3JtIix1KGZbMF0sZlsxXSkpLFkuc2V0U2NhbGUoKX19dC5zZWxlY3RBbGwoIi4iK0EuY2JmaWxscysiLC4iK0EuY2JsaW5lcykuYXR0cigidHJhbnNmb3JtIix1KDAsTWF0aC5yb3VuZChsLmgqKDEtWS5kb21haW5bMV0pKSkpLCQuYXR0cigidHJhbnNmb3JtIix1KDAsTWF0aC5yb3VuZCgtbC50KSkpO3ZhciB5PXQuc2VsZWN0KCIuIitBLmNiZmlsbHMpLnNlbGVjdEFsbCgicmVjdC4iK0EuY2JmaWxsKS5hdHRyKCJzdHlsZSIsIiIpLmRhdGEoSSk7eS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoQS5jYmZpbGwsITApLnN0eWxlKCJzdHJva2UiLCJub25lIikseS5leGl0KCkucmVtb3ZlKCk7dmFyIHg9Uy5tYXAoWS5jMnApLm1hcChNYXRoLnJvdW5kKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LWV9KSk7eS5lYWNoKChmdW5jdGlvbih0LGEpe3ZhciBvPVswPT09YT9TWzBdOihJW2FdK0lbYS0xXSkvMixhPT09SS5sZW5ndGgtMT9TWzFdOihJW2FdK0lbYSsxXSkvMl0ubWFwKFkuYzJwKS5tYXAoTWF0aC5yb3VuZCk7b1sxXT1jLmNvbnN0cmFpbihvWzFdKyhvWzFdPm9bMF0pPzE6LTEseFswXSx4WzFdKTt2YXIgcz1uLnNlbGVjdCh0aGlzKS5hdHRyKHt4OlUsd2lkdGg6TWF0aC5tYXgoeiwyKSx5Om4ubWluKG8pLGhlaWdodDpNYXRoLm1heChuLm1heChvKS1uLm1pbihvKSwyKX0pO2lmKGUuX2ZpbGxncmFkaWVudClwLmdyYWRpZW50KHMscixlLl9pZCwidmVydGljYWwiLGUuX2ZpbGxncmFkaWVudCwiZmlsbCIpO2Vsc2V7dmFyIGw9TCh0KS5yZXBsYWNlKCJlLSIsIiIpO3MuYXR0cigiZmlsbCIsaShsKS50b0hleFN0cmluZygpKX19KSk7dmFyIGI9dC5zZWxlY3QoIi4iK0EuY2JsaW5lcykuc2VsZWN0QWxsKCJwYXRoLiIrQS5jYmxpbmUpLmRhdGEodi5jb2xvciYmdi53aWR0aD9POltdKTtiLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZChBLmNibGluZSwhMCksYi5leGl0KCkucmVtb3ZlKCksYi5lYWNoKChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiTSIrVSsiLCIrKE1hdGgucm91bmQoWS5jMnAodCkpK3Yud2lkdGgvMiUxKSsiaCIreikuY2FsbChwLmxpbmVHcm91cFN0eWxlLHYud2lkdGgsRSh0KSx2LmRhc2gpfSkpLCQuc2VsZWN0QWxsKCJnLiIrWS5faWQrInRpY2sscGF0aCIpLnJlbW92ZSgpO3ZhciBfPVUreisoZS5vdXRsaW5ld2lkdGh8fDApLzItKCJvdXRzaWRlIj09PWUudGlja3M/MTowKSxUPXMuY2FsY1RpY2tzKFkpLGs9cy5nZXRUaWNrU2lnbnMoWSlbMl07cmV0dXJuIHMuZHJhd1RpY2tzKHIsWSx7dmFsczoiaW5zaWRlIj09PVkudGlja3M/cy5jbGlwRW5kcyhZLFQpOlQsbGF5ZXI6JCxwYXRoOnMubWFrZVRpY2tQYXRoKFksXyxrKSx0cmFuc0ZuOnMubWFrZVRyYW5zVGlja0ZuKFkpfSkscy5kcmF3TGFiZWxzKHIsWSx7dmFsczpULGxheWVyOiQsdHJhbnNGbjpzLm1ha2VUcmFuc1RpY2tMYWJlbEZuKFkpLGxhYmVsRm5zOnMubWFrZUxhYmVsRm5zKFksXyl9KX0sZnVuY3Rpb24oKXtpZigtMT09PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZihNKSl7dmFyIHQ9WS50aXRsZS5mb250LnNpemUsZT1ZLl9vZmZzZXQrWS5fbGVuZ3RoLzIsaT1sLmwrKFkucG9zaXRpb258fDApKmwudysoInJpZ2h0Ij09PVkuc2lkZT8xMCt0KihZLnNob3d0aWNrbGFiZWxzPzE6LjUpOi0xMC10KihZLnNob3d0aWNrbGFiZWxzPy41OjApKTtldCgiaCIrWS5faWQrInRpdGxlIix7YXZvaWQ6e3NlbGVjdGlvbjpuLnNlbGVjdChyKS5zZWxlY3RBbGwoImcuIitZLl9pZCsidGljayIpLHNpZGU6TSxvZmZzZXRMZWZ0OmwubCxvZmZzZXRUb3A6MCxtYXhTaGlmdDpvLndpZHRofSxhdHRyaWJ1dGVzOnt4OmkseTplLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9LHRyYW5zZm9ybTp7cm90YXRlOiItOTAiLG9mZnNldDowfX0pfX0sYS5wcmV2aW91c1Byb21pc2VzLGZ1bmN0aW9uKCl7dmFyIG49eitlLm91dGxpbmV3aWR0aC8yO2lmKC0xPT09WS50aWNrbGFiZWxwb3NpdGlvbi5pbmRleE9mKCJpbnNpZGUiKSYmKG4rPXAuYkJveCgkLm5vZGUoKSkud2lkdGgpLChLPVEuc2VsZWN0KCJ0ZXh0IikpLm5vZGUoKSYmIUsuY2xhc3NlZChBLmpzUGxhY2Vob2xkZXIpKXt2YXIgaSxvPVEuc2VsZWN0KCIuaCIrWS5faWQrInRpdGxlLW1hdGgtZ3JvdXAiKS5ub2RlKCk7aT1vJiYtMSE9PVsidG9wIiwiYm90dG9tIl0uaW5kZXhPZihNKT9wLmJCb3gobykud2lkdGg6cC5iQm94KFEubm9kZSgpKS5yaWdodC1VLWwubCxuPU1hdGgubWF4KG4saSl9dmFyIHM9MiplLnhwYWQrbitlLmJvcmRlcndpZHRoK2Uub3V0bGluZXdpZHRoLzIsYz1xLUc7dC5zZWxlY3QoIi4iK0EuY2JiZykuYXR0cih7eDpVLWUueHBhZC0oZS5ib3JkZXJ3aWR0aCtlLm91dGxpbmV3aWR0aCkvMix5OkctTix3aWR0aDpNYXRoLm1heChzLDIpLGhlaWdodDpNYXRoLm1heChjKzIqTiwyKX0pLmNhbGwoZC5maWxsLGUuYmdjb2xvcikuY2FsbChkLnN0cm9rZSxlLmJvcmRlcmNvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLmJvcmRlcndpZHRoKSx0LnNlbGVjdEFsbCgiLiIrQS5jYm91dGxpbmUpLmF0dHIoe3g6VSx5OkcrZS55cGFkKygidG9wIj09PU0/dHQ6MCksd2lkdGg6TWF0aC5tYXgoeiwyKSxoZWlnaHQ6TWF0aC5tYXgoYy0yKmUueXBhZC10dCwyKX0pLmNhbGwoZC5zdHJva2UsZS5vdXRsaW5lY29sb3IpLnN0eWxlKHtmaWxsOiJub25lIiwic3Ryb2tlLXdpZHRoIjplLm91dGxpbmV3aWR0aH0pO3ZhciBmPSh7Y2VudGVyOi41LHJpZ2h0OjF9W2UueGFuY2hvcl18fDApKnM7dC5hdHRyKCJ0cmFuc2Zvcm0iLHUobC5sLWYsbC50KSk7dmFyIGg9e30sbT1UW2UueWFuY2hvcl0sZz1rW2UueWFuY2hvcl07InBpeGVscyI9PT1lLmxlbm1vZGU/KGgueT1lLnksaC50PWMqbSxoLmI9YypnKTooaC50PWguYj0wLGgueXQ9ZS55K2UubGVuKm0saC55Yj1lLnktZS5sZW4qZyk7dmFyIHY9VFtlLnhhbmNob3JdLHk9a1tlLnhhbmNob3JdO2lmKCJwaXhlbHMiPT09ZS50aGlja25lc3Ntb2RlKWgueD1lLngsaC5sPXMqdixoLnI9cyp5O2Vsc2V7dmFyIHg9cy16O2gubD14KnYsaC5yPXgqeSxoLnhsPWUueC1lLnRoaWNrbmVzcyp2LGgueHI9ZS54K2UudGhpY2tuZXNzKnl9YS5hdXRvTWFyZ2luKHIsZS5faWQsaCl9XSxyKX0ocixlLHQpO3YmJnYudGhlbiYmKHQuX3Byb21pc2VzfHxbXSkucHVzaCh2KSx0Ll9jb250ZXh0LmVkaXRzLmNvbG9yYmFyUG9zaXRpb24mJmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEscz1yLl9mdWxsTGF5b3V0Ll9zaXplO2wuaW5pdCh7ZWxlbWVudDp0Lm5vZGUoKSxnZDpyLHByZXBGbjpmdW5jdGlvbigpe249dC5hdHRyKCJ0cmFuc2Zvcm0iKSxoKHQpfSxtb3ZlRm46ZnVuY3Rpb24ocixvKXt0LmF0dHIoInRyYW5zZm9ybSIsbit1KHIsbykpLGk9bC5hbGlnbihlLl94TGVmdEZyYWMrci9zLncsZS5fdGhpY2tGcmFjLDAsMSxlLnhhbmNob3IpLGE9bC5hbGlnbihlLl95Qm90dG9tRnJhYy1vL3MuaCxlLl9sZW5GcmFjLDAsMSxlLnlhbmNob3IpO3ZhciBjPWwuZ2V0Q3Vyc29yKGksYSxlLnhhbmNob3IsZS55YW5jaG9yKTtoKHQsYyl9LGRvbmVGbjpmdW5jdGlvbigpe2lmKGgodCksdm9pZCAwIT09aSYmdm9pZCAwIT09YSl7dmFyIG49e307bltlLl9wcm9wUHJlZml4KyJ4Il09aSxuW2UuX3Byb3BQcmVmaXgrInkiXT1hLHZvaWQgMCE9PWUuX3RyYWNlSW5kZXg/by5jYWxsKCJfZ3VpUmVzdHlsZSIscixuLGUuX3RyYWNlSW5kZXgpOm8uY2FsbCgiX2d1aVJlbGF5b3V0IixyLG4pfX19KX0ocixlLHQpfSkpLGUuZXhpdCgpLmVhY2goKGZ1bmN0aW9uKGUpe2EuYXV0b01hcmdpbih0LGUuX2lkKX0pKS5yZW1vdmUoKSxlLm9yZGVyKCl9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo3NDQsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjc5NywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIjo4MjksIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6ODQyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiOjg0NSwiLi4vLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vY29sb3IiOjYzOSwiLi4vY29sb3JzY2FsZS9oZWxwZXJzIjo2NTAsIi4uL2RyYWdlbGVtZW50Ijo2NTgsIi4uL2RyYXdpbmciOjY2MSwiLi4vdGl0bGVzIjo3MzcsIi4vY29uc3RhbnRzIjo2NDEsIkBwbG90bHkvZDMiOjU4LHRpbnljb2xvcjI6NTcyfV0sNjQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gbi5pc1BsYWluT2JqZWN0KHQuY29sb3JiYXIpfX0seyIuLi8uLi9saWIiOjc3Nn1dLDY0NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToiY29sb3JiYXIiLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGRyYXc6dCgiLi9kcmF3IikuZHJhdyxoYXNDb2xvcmJhcjp0KCIuL2hhc19jb2xvcmJhciIpfX0seyIuL2F0dHJpYnV0ZXMiOjY0MCwiLi9kZWZhdWx0cyI6NjQyLCIuL2RyYXciOjY0MywiLi9oYXNfY29sb3JiYXIiOjY0NH1dLDY0NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb2xvcmJhci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9saWIvcmVnZXgiKS5jb3VudGVyLGE9dCgiLi4vLi4vbGliL3NvcnRfb2JqZWN0X2tleXMiKSxvPXQoIi4vc2NhbGVzLmpzIikuc2NhbGVzO2Eobyk7ZnVuY3Rpb24gcyh0KXtyZXR1cm4iYCIrdCsiYCJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dD10fHwiIjt2YXIgcixhPShlPWV8fHt9KS5jTGV0dGVyfHwiYyIsbD0oIm9ubHlJZk51bWVyaWNhbCJpbiBlP2Uub25seUlmTnVtZXJpY2FsOkJvb2xlYW4odCksIm5vU2NhbGUiaW4gZT9lLm5vU2NhbGU6Im1hcmtlci5saW5lIj09PXQpLGM9InNob3dTY2FsZURmbHQiaW4gZT9lLnNob3dTY2FsZURmbHQ6InoiPT09YSx1PSJzdHJpbmciPT10eXBlb2YgZS5jb2xvcnNjYWxlRGZsdD9vW2UuY29sb3JzY2FsZURmbHRdOm51bGwsZj1lLmVkaXRUeXBlT3ZlcnJpZGV8fCIiLGg9dD90KyIuIjoiIjsiY29sb3JBdHRyImluIGU/KHI9ZS5jb2xvckF0dHIsZS5jb2xvckF0dHIpOnMoaCsocj17ejoieiIsYzoiY29sb3IifVthXSkpO3ZhciBwPWErImF1dG8iLGQ9YSsibWluIixtPWErIm1heCIsZz1hKyJtaWQiLHY9KHMoaCtwKSxzKGgrZCkscyhoK20pLHt9KTt2W2RdPXZbbV09dm9pZCAwO3ZhciB5PXt9O3lbcF09ITE7dmFyIHg9e307cmV0dXJuImNvbG9yIj09PXImJih4LmNvbG9yPXt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxlZGl0VHlwZTpmfHwic3R5bGUifSxlLmFuaW0mJih4LmNvbG9yLmFuaW09ITApKSx4W3BdPXt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6dn0seFtkXT17dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsZWRpdFR5cGU6Znx8InBsb3QiLGltcGxpZWRFZGl0czp5fSx4W21dPXt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxlZGl0VHlwZTpmfHwicGxvdCIsaW1wbGllZEVkaXRzOnl9LHhbZ109e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6dn0seC5jb2xvcnNjYWxlPXt2YWxUeXBlOiJjb2xvcnNjYWxlIixlZGl0VHlwZToiY2FsYyIsZGZsdDp1LGltcGxpZWRFZGl0czp7YXV0b2NvbG9yc2NhbGU6ITF9fSx4LmF1dG9jb2xvcnNjYWxlPXt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExIT09ZS5hdXRvQ29sb3JEZmx0LGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6e2NvbG9yc2NhbGU6dm9pZCAwfX0seC5yZXZlcnNlc2NhbGU9e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InBsb3QifSxsfHwoeC5zaG93c2NhbGU9e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6YyxlZGl0VHlwZToiY2FsYyJ9LHguY29sb3JiYXI9biksZS5ub0NvbG9yQXhpc3x8KHguY29sb3JheGlzPXt2YWxUeXBlOiJzdWJwbG90aWQiLHJlZ2V4OmkoImNvbG9yYXhpcyIpLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYyJ9KSx4fX0seyIuLi8uLi9saWIvcmVnZXgiOjc5MywiLi4vLi4vbGliL3NvcnRfb2JqZWN0X2tleXMiOjc5OSwiLi4vY29sb3JiYXIvYXR0cmlidXRlcyI6NjQwLCIuL3NjYWxlcy5qcyI6NjU0fV0sNjQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4vaGVscGVycyIpLmV4dHJhY3RPcHRzO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG8scz10Ll9mdWxsTGF5b3V0LGw9ci52YWxzLGM9ci5jb250YWluZXJTdHIsdT1jP2kubmVzdGVkUHJvcGVydHkoZSxjKS5nZXQoKTplLGY9YSh1KSxoPSExIT09Zi5hdXRvLHA9Zi5taW4sZD1mLm1heCxtPWYubWlkLGc9ZnVuY3Rpb24oKXtyZXR1cm4gaS5hZ2dOdW1zKE1hdGgubWluLG51bGwsbCl9LHY9ZnVuY3Rpb24oKXtyZXR1cm4gaS5hZ2dOdW1zKE1hdGgubWF4LG51bGwsbCl9Oyh2b2lkIDA9PT1wP3A9ZygpOmgmJihwPXUuX2NvbG9yQXgmJm4ocCk/TWF0aC5taW4ocCxnKCkpOmcoKSksdm9pZCAwPT09ZD9kPXYoKTpoJiYoZD11Ll9jb2xvckF4JiZuKGQpP01hdGgubWF4KGQsdigpKTp2KCkpLGgmJnZvaWQgMCE9PW0mJihkLW0+bS1wP3A9bS0oZC1tKTpkLW08bS1wJiYoZD1tKyhtLXApKSkscD09PWQmJihwLT0uNSxkKz0uNSksZi5fc3luYygibWluIixwKSxmLl9zeW5jKCJtYXgiLGQpLGYuYXV0b2NvbG9yc2NhbGUpJiYobz1wKmQ8MD9zLmNvbG9yc2NhbGUuZGl2ZXJnaW5nOnA+PTA/cy5jb2xvcnNjYWxlLnNlcXVlbnRpYWw6cy5jb2xvcnNjYWxlLnNlcXVlbnRpYWxtaW51cyxmLl9zeW5jKCJjb2xvcnNjYWxlIixvKSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2hlbHBlcnMiOjY1MCwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDY0ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuL2hlbHBlcnMiKS5leHRyYWN0T3B0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHQsZSl7dmFyIHI9dFsiXyIrZV07dm9pZCAwIT09ciYmKHRbZV09cil9ZnVuY3Rpb24gbyh0LGkpe3ZhciBvPWkuY29udGFpbmVyP24ubmVzdGVkUHJvcGVydHkodCxpLmNvbnRhaW5lcikuZ2V0KCk6dDtpZihvKWlmKG8uY29sb3JheGlzKW8uX2NvbG9yQXg9ZVtvLmNvbG9yYXhpc107ZWxzZXt2YXIgcz1hKG8pLGw9cy5hdXRvOyhsfHx2b2lkIDA9PT1zLm1pbikmJnIobyxpLm1pbiksKGx8fHZvaWQgMD09PXMubWF4KSYmcihvLGkubWF4KSxzLmF1dG9jb2xvcnNjYWxlJiZyKG8sImNvbG9yc2NhbGUiKX19Zm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBsPXRbc10sYz1sLl9tb2R1bGUuY29sb3JiYXI7aWYoYylpZihBcnJheS5pc0FycmF5KGMpKWZvcih2YXIgdT0wO3U8Yy5sZW5ndGg7dSsrKW8obCxjW3VdKTtlbHNlIG8obCxjKTtpKGwsIm1hcmtlci5saW5lIikmJm8obCx7Y29udGFpbmVyOiJtYXJrZXIubGluZSIsbWluOiJjbWluIixtYXg6ImNtYXgifSl9Zm9yKHZhciBmIGluIGUuX2NvbG9yQXhlcylvKGVbZl0se21pbjoiY21pbiIsbWF4OiJjbWF4In0pfX0seyIuLi8uLi9saWIiOjc3NiwiLi9oZWxwZXJzIjo2NTB9XSw2NDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vY29sb3JiYXIvaGFzX2NvbG9yYmFyIiksbz10KCIuLi9jb2xvcmJhci9kZWZhdWx0cyIpLHM9dCgiLi9zY2FsZXMiKS5pc1ZhbGlkLGw9dCgiLi4vLi4vcmVnaXN0cnkiKS50cmFjZUlzO2Z1bmN0aW9uIGModCxlKXt2YXIgcj1lLnNsaWNlKDAsZS5sZW5ndGgtMSk7cmV0dXJuIGU/aS5uZXN0ZWRQcm9wZXJ0eSh0LHIpLmdldCgpfHx7fTp0fWUuZXhwb3J0cz1mdW5jdGlvbiB0KGUscix1LGYsaCl7dmFyIHA9aC5wcmVmaXgsZD1oLmNMZXR0ZXIsbT0iX21vZHVsZSJpbiByLGc9YyhlLHApLHY9YyhyLHApLHk9YyhyLl90ZW1wbGF0ZXx8e30scCl8fHt9LHg9ZnVuY3Rpb24oKXtyZXR1cm4gZGVsZXRlIGUuY29sb3JheGlzLGRlbGV0ZSByLmNvbG9yYXhpcyx0KGUscix1LGYsaCl9O2lmKG0pe3ZhciBiPXUuX2NvbG9yQXhlc3x8e30sXz1mKHArImNvbG9yYXhpcyIpO2lmKF8pe3ZhciB3PWwociwiY29udG91ciIpJiZpLm5lc3RlZFByb3BlcnR5KHIsImNvbnRvdXJzLmNvbG9yaW5nIikuZ2V0KCl8fCJoZWF0bWFwIixUPWJbX107cmV0dXJuIHZvaWQoVD8oVFsyXS5wdXNoKHgpLFRbMF0hPT13JiYoVFswXT0hMSxpLndhcm4oWyJJZ25vcmluZyBjb2xvcmF4aXM6IixfLCJzZXR0aW5nIiwiYXMgaXQgaXMgbGlua2VkIHRvIGluY29tcGF0aWJsZSBjb2xvcnNjYWxlcy4iXS5qb2luKCIgIikpKSk6YltfXT1bdyxyLFt4XV0pfX12YXIgaz1nW2QrIm1pbiJdLEE9Z1tkKyJtYXgiXSxNPW4oaykmJm4oQSkmJms8QTtmKHArZCsiYXV0byIsIU0pP2YocCtkKyJtaWQiKTooZihwK2QrIm1pbiIpLGYocCtkKyJtYXgiKSk7dmFyIFMsRSxMPWcuY29sb3JzY2FsZSxDPXkuY29sb3JzY2FsZTsodm9pZCAwIT09TCYmKFM9IXMoTCkpLHZvaWQgMCE9PUMmJihTPSFzKEMpKSxmKHArImF1dG9jb2xvcnNjYWxlIixTKSxmKHArImNvbG9yc2NhbGUiKSxmKHArInJldmVyc2VzY2FsZSIpLCJtYXJrZXIubGluZS4iIT09cCkmJihwJiZtJiYoRT1hKGcpKSxmKHArInNob3dzY2FsZSIsRSkmJihwJiZ5JiYodi5fdGVtcGxhdGU9eSksbyhnLHYsdSkpKX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2NvbG9yYmFyL2RlZmF1bHRzIjo2NDIsIi4uL2NvbG9yYmFyL2hhc19jb2xvcmJhciI6NjQ0LCIuL3NjYWxlcyI6NjU0LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sNjUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoInRpbnljb2xvcjIiKSxhPXQoImZhc3QtaXNudW1lcmljIiksbz10KCIuLi8uLi9saWIiKSxzPXQoIi4uL2NvbG9yIiksbD10KCIuL3NjYWxlcyIpLmlzVmFsaWQ7dmFyIGM9WyJzaG93c2NhbGUiLCJhdXRvY29sb3JzY2FsZSIsImNvbG9yc2NhbGUiLCJyZXZlcnNlc2NhbGUiLCJjb2xvcmJhciJdLHU9WyJtaW4iLCJtYXgiLCJtaWQiLCJhdXRvIl07ZnVuY3Rpb24gZih0KXt2YXIgZSxyLG4saT10Ll9jb2xvckF4LGE9aXx8dCxvPXt9O2ZvcihyPTA7cjxjLmxlbmd0aDtyKyspb1tuPWNbcl1dPWFbbl07aWYoaSlmb3IoZT0iYyIscj0wO3I8dS5sZW5ndGg7cisrKW9bbj11W3JdXT1hWyJjIituXTtlbHNle3ZhciBzO2ZvcihyPTA7cjx1Lmxlbmd0aDtyKyspKChzPSJjIisobj11W3JdKSlpbiBhfHwocz0ieiIrbilpbiBhKSYmKG9bbl09YVtzXSk7ZT1zLmNoYXJBdCgwKX1yZXR1cm4gby5fc3luYz1mdW5jdGlvbih0LHIpe3ZhciBuPS0xIT09dS5pbmRleE9mKHQpP2UrdDp0O2Fbbl09YVsiXyIrbl09cn0sb31mdW5jdGlvbiBoKHQpe2Zvcih2YXIgZT1mKHQpLHI9ZS5taW4sbj1lLm1heCxpPWUucmV2ZXJzZXNjYWxlP3AoZS5jb2xvcnNjYWxlKTplLmNvbG9yc2NhbGUsYT1pLmxlbmd0aCxvPW5ldyBBcnJheShhKSxzPW5ldyBBcnJheShhKSxsPTA7bDxhO2wrKyl7dmFyIGM9aVtsXTtvW2xdPXIrY1swXSoobi1yKSxzW2xdPWNbMV19cmV0dXJue2RvbWFpbjpvLHJhbmdlOnN9fWZ1bmN0aW9uIHAodCl7Zm9yKHZhciBlPXQubGVuZ3RoLHI9bmV3IEFycmF5KGUpLG49ZS0xLGk9MDtuPj0wO24tLSxpKyspe3ZhciBhPXRbbl07cltpXT1bMS1hWzBdLGFbMV1dfXJldHVybiByfWZ1bmN0aW9uIGQodCxlKXtlPWV8fHt9O2Zvcih2YXIgcj10LmRvbWFpbixvPXQucmFuZ2UsbD1vLmxlbmd0aCxjPW5ldyBBcnJheShsKSx1PTA7dTxsO3UrKyl7dmFyIGY9aShvW3VdKS50b1JnYigpO2NbdV09W2YucixmLmcsZi5iLGYuYV19dmFyIGgscD1uLnNjYWxlLmxpbmVhcigpLmRvbWFpbihyKS5yYW5nZShjKS5jbGFtcCghMCksZD1lLm5vTnVtZXJpY0NoZWNrLGc9ZS5yZXR1cm5BcnJheTtyZXR1cm4oaD1kJiZnP3A6ZD9mdW5jdGlvbih0KXtyZXR1cm4gbShwKHQpKX06Zz9mdW5jdGlvbih0KXtyZXR1cm4gYSh0KT9wKHQpOmkodCkuaXNWYWxpZCgpP3Q6cy5kZWZhdWx0TGluZX06ZnVuY3Rpb24odCl7cmV0dXJuIGEodCk/bShwKHQpKTppKHQpLmlzVmFsaWQoKT90OnMuZGVmYXVsdExpbmV9KS5kb21haW49cC5kb21haW4saC5yYW5nZT1mdW5jdGlvbigpe3JldHVybiBvfSxofWZ1bmN0aW9uIG0odCl7dmFyIGU9e3I6dFswXSxnOnRbMV0sYjp0WzJdLGE6dFszXX07cmV0dXJuIGkoZSkudG9SZ2JTdHJpbmcoKX1lLmV4cG9ydHM9e2hhc0NvbG9yc2NhbGU6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWU/by5uZXN0ZWRQcm9wZXJ0eSh0LGUpLmdldCgpfHx7fTp0LGk9bltyfHwiY29sb3IiXSxzPSExO2lmKG8uaXNBcnJheU9yVHlwZWRBcnJheShpKSlmb3IodmFyIGM9MDtjPGkubGVuZ3RoO2MrKylpZihhKGlbY10pKXtzPSEwO2JyZWFrfXJldHVybiBvLmlzUGxhaW5PYmplY3QobikmJihzfHwhMD09PW4uc2hvd3NjYWxlfHxhKG4uY21pbikmJmEobi5jbWF4KXx8bChuLmNvbG9yc2NhbGUpfHxvLmlzUGxhaW5PYmplY3Qobi5jb2xvcmJhcikpfSxleHRyYWN0T3B0czpmLGV4dHJhY3RTY2FsZTpoLGZsaXBTY2FsZTpwLG1ha2VDb2xvclNjYWxlRnVuYzpkLG1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZTpmdW5jdGlvbih0LGUpe3JldHVybiBkKGgodCksZSl9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vY29sb3IiOjYzOSwiLi9zY2FsZXMiOjY1NCwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoyNDIsdGlueWNvbG9yMjo1NzJ9XSw2NTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zY2FsZXMiKSxpPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJjb2xvcnNjYWxlIixhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksaGFuZGxlRGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxzY2FsZXM6bi5zY2FsZXMsZGVmYXVsdFNjYWxlOm4uZGVmYXVsdFNjYWxlLGdldFNjYWxlOm4uZ2V0LGlzVmFsaWRTY2FsZTpuLmlzVmFsaWQsaGFzQ29sb3JzY2FsZTppLmhhc0NvbG9yc2NhbGUsZXh0cmFjdE9wdHM6aS5leHRyYWN0T3B0cyxleHRyYWN0U2NhbGU6aS5leHRyYWN0U2NhbGUsZmxpcFNjYWxlOmkuZmxpcFNjYWxlLG1ha2VDb2xvclNjYWxlRnVuYzppLm1ha2VDb2xvclNjYWxlRnVuYyxtYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2U6aS5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2V9fSx7Ii4vYXR0cmlidXRlcyI6NjQ2LCIuL2NhbGMiOjY0NywiLi9jcm9zc190cmFjZV9kZWZhdWx0cyI6NjQ4LCIuL2RlZmF1bHRzIjo2NDksIi4vaGVscGVycyI6NjUwLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2NTIsIi4vbGF5b3V0X2RlZmF1bHRzIjo2NTMsIi4vc2NhbGVzIjo2NTR9XSw2NTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4vc2NhbGVzIikuc2NhbGVzO2UuZXhwb3J0cz17ZWRpdFR5cGU6ImNhbGMiLGNvbG9yc2NhbGU6e2VkaXRUeXBlOiJjYWxjIixzZXF1ZW50aWFsOnt2YWxUeXBlOiJjb2xvcnNjYWxlIixkZmx0OmEuUmVkcyxlZGl0VHlwZToiY2FsYyJ9LHNlcXVlbnRpYWxtaW51czp7dmFsVHlwZToiY29sb3JzY2FsZSIsZGZsdDphLkJsdWVzLGVkaXRUeXBlOiJjYWxjIn0sZGl2ZXJnaW5nOnt2YWxUeXBlOiJjb2xvcnNjYWxlIixkZmx0OmEuUmRCdSxlZGl0VHlwZToiY2FsYyJ9fSxjb2xvcmF4aXM6bih7X2lzU3VicGxvdE9iajohMCxlZGl0VHlwZToiY2FsYyJ9LGkoIiIse2NvbG9yQXR0cjoiY29ycmVzcG9uZGluZyB0cmFjZSBjb2xvciBhcnJheShzKSIsbm9Db2xvckF4aXM6ITAsc2hvd1NjYWxlRGZsdDohMH0pKX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuL2F0dHJpYnV0ZXMiOjY0NiwiLi9zY2FsZXMiOjY1NH1dLDY1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxhPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxvPXQoIi4vZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9cigiY29sb3JzY2FsZS5zZXF1ZW50aWFsIikscigiY29sb3JzY2FsZS5zZXF1ZW50aWFsbWludXMiKSxyKCJjb2xvcnNjYWxlLmRpdmVyZ2luZyIpO3ZhciBzLGwsYz1lLl9jb2xvckF4ZXM7ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBuLmNvZXJjZShzLGwsYS5jb2xvcmF4aXMsdCxlKX1mb3IodmFyIGYgaW4gYyl7dmFyIGg9Y1tmXTtpZihoWzBdKXM9dFtmXXx8e30sKGw9aS5uZXdDb250YWluZXIoZSxmLCJjb2xvcmF4aXMiKSkuX25hbWU9ZixvKHMsbCxlLHUse3ByZWZpeDoiIixjTGV0dGVyOiJjIn0pO2Vsc2V7Zm9yKHZhciBwPTA7cDxoWzJdLmxlbmd0aDtwKyspaFsyXVtwXSgpO2RlbGV0ZSBlLl9jb2xvckF4ZXNbZl19fX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi9kZWZhdWx0cyI6NjQ5LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo2NTJ9XSw2NTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidGlueWNvbG9yMiIpLGk9e0dyZXlzOltbMCwicmdiKDAsMCwwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyNTUpIl1dLFlsR25CdTpbWzAsInJnYig4LDI5LDg4KSJdLFsuMTI1LCJyZ2IoMzcsNTIsMTQ4KSJdLFsuMjUsInJnYigzNCw5NCwxNjgpIl0sWy4zNzUsInJnYigyOSwxNDUsMTkyKSJdLFsuNSwicmdiKDY1LDE4MiwxOTYpIl0sWy42MjUsInJnYigxMjcsMjA1LDE4NykiXSxbLjc1LCJyZ2IoMTk5LDIzMywxODApIl0sWy44NzUsInJnYigyMzcsMjQ4LDIxNykiXSxbMSwicmdiKDI1NSwyNTUsMjE3KSJdXSxHcmVlbnM6W1swLCJyZ2IoMCw2OCwyNykiXSxbLjEyNSwicmdiKDAsMTA5LDQ0KSJdLFsuMjUsInJnYigzNSwxMzksNjkpIl0sWy4zNzUsInJnYig2NSwxNzEsOTMpIl0sWy41LCJyZ2IoMTE2LDE5NiwxMTgpIl0sWy42MjUsInJnYigxNjEsMjE3LDE1NSkiXSxbLjc1LCJyZ2IoMTk5LDIzMywxOTIpIl0sWy44NzUsInJnYigyMjksMjQ1LDIyNCkiXSxbMSwicmdiKDI0NywyNTIsMjQ1KSJdXSxZbE9yUmQ6W1swLCJyZ2IoMTI4LDAsMzgpIl0sWy4xMjUsInJnYigxODksMCwzOCkiXSxbLjI1LCJyZ2IoMjI3LDI2LDI4KSJdLFsuMzc1LCJyZ2IoMjUyLDc4LDQyKSJdLFsuNSwicmdiKDI1MywxNDEsNjApIl0sWy42MjUsInJnYigyNTQsMTc4LDc2KSJdLFsuNzUsInJnYigyNTQsMjE3LDExOCkiXSxbLjg3NSwicmdiKDI1NSwyMzcsMTYwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyMDQpIl1dLEJsdWVyZWQ6W1swLCJyZ2IoMCwwLDI1NSkiXSxbMSwicmdiKDI1NSwwLDApIl1dLFJkQnU6W1swLCJyZ2IoNSwxMCwxNzIpIl0sWy4zNSwicmdiKDEwNiwxMzcsMjQ3KSJdLFsuNSwicmdiKDE5MCwxOTAsMTkwKSJdLFsuNiwicmdiKDIyMCwxNzAsMTMyKSJdLFsuNywicmdiKDIzMCwxNDUsOTApIl0sWzEsInJnYigxNzgsMTAsMjgpIl1dLFJlZHM6W1swLCJyZ2IoMjIwLDIyMCwyMjApIl0sWy4yLCJyZ2IoMjQ1LDE5NSwxNTcpIl0sWy40LCJyZ2IoMjQ1LDE2MCwxMDUpIl0sWzEsInJnYigxNzgsMTAsMjgpIl1dLEJsdWVzOltbMCwicmdiKDUsMTAsMTcyKSJdLFsuMzUsInJnYig0MCw2MCwxOTApIl0sWy41LCJyZ2IoNzAsMTAwLDI0NSkiXSxbLjYsInJnYig5MCwxMjAsMjQ1KSJdLFsuNywicmdiKDEwNiwxMzcsMjQ3KSJdLFsxLCJyZ2IoMjIwLDIyMCwyMjApIl1dLFBpY25pYzpbWzAsInJnYigwLDAsMjU1KSJdLFsuMSwicmdiKDUxLDE1MywyNTUpIl0sWy4yLCJyZ2IoMTAyLDIwNCwyNTUpIl0sWy4zLCJyZ2IoMTUzLDIwNCwyNTUpIl0sWy40LCJyZ2IoMjA0LDIwNCwyNTUpIl0sWy41LCJyZ2IoMjU1LDI1NSwyNTUpIl0sWy42LCJyZ2IoMjU1LDIwNCwyNTUpIl0sWy43LCJyZ2IoMjU1LDE1MywyNTUpIl0sWy44LCJyZ2IoMjU1LDEwMiwyMDQpIl0sWy45LCJyZ2IoMjU1LDEwMiwxMDIpIl0sWzEsInJnYigyNTUsMCwwKSJdXSxSYWluYm93OltbMCwicmdiKDE1MCwwLDkwKSJdLFsuMTI1LCJyZ2IoMCwwLDIwMCkiXSxbLjI1LCJyZ2IoMCwyNSwyNTUpIl0sWy4zNzUsInJnYigwLDE1MiwyNTUpIl0sWy41LCJyZ2IoNDQsMjU1LDE1MCkiXSxbLjYyNSwicmdiKDE1MSwyNTUsMCkiXSxbLjc1LCJyZ2IoMjU1LDIzNCwwKSJdLFsuODc1LCJyZ2IoMjU1LDExMSwwKSJdLFsxLCJyZ2IoMjU1LDAsMCkiXV0sUG9ydGxhbmQ6W1swLCJyZ2IoMTIsNTEsMTMxKSJdLFsuMjUsInJnYigxMCwxMzYsMTg2KSJdLFsuNSwicmdiKDI0MiwyMTEsNTYpIl0sWy43NSwicmdiKDI0MiwxNDMsNTYpIl0sWzEsInJnYigyMTcsMzAsMzApIl1dLEpldDpbWzAsInJnYigwLDAsMTMxKSJdLFsuMTI1LCJyZ2IoMCw2MCwxNzApIl0sWy4zNzUsInJnYig1LDI1NSwyNTUpIl0sWy42MjUsInJnYigyNTUsMjU1LDApIl0sWy44NzUsInJnYigyNTAsMCwwKSJdLFsxLCJyZ2IoMTI4LDAsMCkiXV0sSG90OltbMCwicmdiKDAsMCwwKSJdLFsuMywicmdiKDIzMCwwLDApIl0sWy42LCJyZ2IoMjU1LDIxMCwwKSJdLFsxLCJyZ2IoMjU1LDI1NSwyNTUpIl1dLEJsYWNrYm9keTpbWzAsInJnYigwLDAsMCkiXSxbLjIsInJnYigyMzAsMCwwKSJdLFsuNCwicmdiKDIzMCwyMTAsMCkiXSxbLjcsInJnYigyNTUsMjU1LDI1NSkiXSxbMSwicmdiKDE2MCwyMDAsMjU1KSJdXSxFYXJ0aDpbWzAsInJnYigwLDAsMTMwKSJdLFsuMSwicmdiKDAsMTgwLDE4MCkiXSxbLjIsInJnYig0MCwyMTAsNDApIl0sWy40LCJyZ2IoMjMwLDIzMCw1MCkiXSxbLjYsInJnYigxMjAsNzAsMjApIl0sWzEsInJnYigyNTUsMjU1LDI1NSkiXV0sRWxlY3RyaWM6W1swLCJyZ2IoMCwwLDApIl0sWy4xNSwicmdiKDMwLDAsMTAwKSJdLFsuNCwicmdiKDEyMCwwLDEwMCkiXSxbLjYsInJnYigxNjAsOTAsMCkiXSxbLjgsInJnYigyMzAsMjAwLDApIl0sWzEsInJnYigyNTUsMjUwLDIyMCkiXV0sVmlyaWRpczpbWzAsIiM0NDAxNTQiXSxbLjA2Mjc0NTA5ODAzOTIxNTY5LCIjNDgxODZhIl0sWy4xMjU0OTAxOTYwNzg0MzEzNywiIzQ3MmQ3YiJdLFsuMTg4MjM1Mjk0MTE3NjQ3MDYsIiM0MjQwODYiXSxbLjI1MDk4MDM5MjE1Njg2Mjc0LCIjM2I1MjhiIl0sWy4zMTM3MjU0OTAxOTYwNzg0LCIjMzM2MzhkIl0sWy4zNzY0NzA1ODgyMzUyOTQxLCIjMmM3MjhlIl0sWy40MzkyMTU2ODYyNzQ1MDk4LCIjMjY4MjhlIl0sWy41MDE5NjA3ODQzMTM3MjU1LCIjMjE5MThjIl0sWy41NjQ3MDU4ODIzNTI5NDEyLCIjMWZhMDg4Il0sWy42Mjc0NTA5ODAzOTIxNTY5LCIjMjhhZTgwIl0sWy42OTAxOTYwNzg0MzEzNzI1LCIjM2ZiYzczIl0sWy43NTI5NDExNzY0NzA1ODgyLCIjNWVjOTYyIl0sWy44MTU2ODYyNzQ1MDk4MDM5LCIjODRkNDRiIl0sWy44Nzg0MzEzNzI1NDkwMTk2LCIjYWRkYzMwIl0sWy45NDExNzY0NzA1ODgyMzUzLCIjZDhlMjE5Il0sWzEsIiNmZGU3MjUiXV0sQ2l2aWRpczpbWzAsInJnYigwLDMyLDc2KSJdLFsuMDU4ODI0LCJyZ2IoMCw0MiwxMDIpIl0sWy4xMTc2NDcsInJnYigwLDUyLDExMCkiXSxbLjE3NjQ3MSwicmdiKDM5LDYzLDEwOCkiXSxbLjIzNTI5NCwicmdiKDYwLDc0LDEwNykiXSxbLjI5NDExOCwicmdiKDc2LDg1LDEwNykiXSxbLjM1Mjk0MSwicmdiKDkxLDk1LDEwOSkiXSxbLjQxMTc2NSwicmdiKDEwNCwxMDYsMTEyKSJdLFsuNDcwNTg4LCJyZ2IoMTE3LDExNywxMTcpIl0sWy41Mjk0MTIsInJnYigxMzEsMTI5LDEyMCkiXSxbLjU4ODIzNSwicmdiKDE0NiwxNDAsMTIwKSJdLFsuNjQ3MDU5LCJyZ2IoMTYxLDE1MiwxMTgpIl0sWy43MDU4ODIsInJnYigxNzYsMTY1LDExNCkiXSxbLjc2NDcwNiwicmdiKDE5MiwxNzcsMTA5KSJdLFsuODIzNTI5LCJyZ2IoMjA5LDE5MSwxMDIpIl0sWy44ODIzNTMsInJnYigyMjUsMjA0LDkyKSJdLFsuOTQxMTc2LCJyZ2IoMjQzLDIxOSw3OSkiXSxbMSwicmdiKDI1NSwyMzMsNjkpIl1dfSxhPWkuUmRCdTtmdW5jdGlvbiBvKHQpe3ZhciBlPTA7aWYoIUFycmF5LmlzQXJyYXkodCl8fHQubGVuZ3RoPDIpcmV0dXJuITE7aWYoIXRbMF18fCF0W3QubGVuZ3RoLTFdKXJldHVybiExO2lmKDAhPSt0WzBdWzBdfHwxIT0rdFt0Lmxlbmd0aC0xXVswXSlyZXR1cm4hMTtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIGk9dFtyXTtpZigyIT09aS5sZW5ndGh8fCtpWzBdPGV8fCFuKGlbMV0pLmlzVmFsaWQoKSlyZXR1cm4hMTtlPStpWzBdfXJldHVybiEwfWUuZXhwb3J0cz17c2NhbGVzOmksZGVmYXVsdFNjYWxlOmEsZ2V0OmZ1bmN0aW9uKHQsZSl7aWYoZXx8KGU9YSksIXQpcmV0dXJuIGU7ZnVuY3Rpb24gcigpe3RyeXt0PWlbdF18fEpTT04ucGFyc2UodCl9Y2F0Y2gocil7dD1lfX1yZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJihyKCksInN0cmluZyI9PXR5cGVvZiB0JiZyKCkpLG8odCk/dDplfSxpc1ZhbGlkOmZ1bmN0aW9uKHQpe3JldHVybiB2b2lkIDAhPT1pW3RdfHxvKHQpfX19LHt0aW55Y29sb3IyOjU3Mn1dLDY1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT0odC1yKS8obi1yKSxvPWErZS8obi1yKSxzPShhK28pLzI7cmV0dXJuImxlZnQiPT09aXx8ImJvdHRvbSI9PT1pP2E6ImNlbnRlciI9PT1pfHwibWlkZGxlIj09PWk/czoicmlnaHQiPT09aXx8InRvcCI9PT1pP286YTwyLzMtcz9hOm8+NC8zLXM/bzpzfX0se31dLDY1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPVtbInN3LXJlc2l6ZSIsInMtcmVzaXplIiwic2UtcmVzaXplIl0sWyJ3LXJlc2l6ZSIsIm1vdmUiLCJlLXJlc2l6ZSJdLFsibnctcmVzaXplIiwibi1yZXNpemUiLCJuZS1yZXNpemUiXV07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3JldHVybiB0PSJsZWZ0Ij09PXI/MDoiY2VudGVyIj09PXI/MToicmlnaHQiPT09cj8yOm4uY29uc3RyYWluKE1hdGguZmxvb3IoMyp0KSwwLDIpLGU9ImJvdHRvbSI9PT1hPzA6Im1pZGRsZSI9PT1hPzE6InRvcCI9PT1hPzI6bi5jb25zdHJhaW4oTWF0aC5mbG9vcigzKmUpLDAsMiksaVtlXVt0XX19LHsiLi4vLi4vbGliIjo3NzZ9XSw2NTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5zZWxlY3RNb2RlPWZ1bmN0aW9uKHQpe3JldHVybiJsYXNzbyI9PT10fHwic2VsZWN0Ij09PXR9LHIuZHJhd01vZGU9ZnVuY3Rpb24odCl7cmV0dXJuImRyYXdjbG9zZWRwYXRoIj09PXR8fCJkcmF3b3BlbnBhdGgiPT09dHx8ImRyYXdsaW5lIj09PXR8fCJkcmF3cmVjdCI9PT10fHwiZHJhd2NpcmNsZSI9PT10fSxyLm9wZW5Nb2RlPWZ1bmN0aW9uKHQpe3JldHVybiJkcmF3bGluZSI9PT10fHwiZHJhd29wZW5wYXRoIj09PXR9LHIucmVjdE1vZGU9ZnVuY3Rpb24odCl7cmV0dXJuInNlbGVjdCI9PT10fHwiZHJhd2xpbmUiPT09dHx8ImRyYXdyZWN0Ij09PXR8fCJkcmF3Y2lyY2xlIj09PXR9LHIuZnJlZU1vZGU9ZnVuY3Rpb24odCl7cmV0dXJuImxhc3NvIj09PXR8fCJkcmF3Y2xvc2VkcGF0aCI9PT10fHwiZHJhd29wZW5wYXRoIj09PXR9LHIuc2VsZWN0aW5nT3JEcmF3aW5nPWZ1bmN0aW9uKHQpe3JldHVybiByLmZyZWVNb2RlKHQpfHxyLnJlY3RNb2RlKHQpfX0se31dLDY1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJtb3VzZS1ldmVudC1vZmZzZXQiKSxpPXQoImhhcy1ob3ZlciIpLGE9dCgiaGFzLXBhc3NpdmUtZXZlbnRzIiksbz10KCIuLi8uLi9saWIiKS5yZW1vdmVFbGVtZW50LHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyIpLGw9ZS5leHBvcnRzPXt9O2wuYWxpZ249dCgiLi9hbGlnbiIpLGwuZ2V0Q3Vyc29yPXQoIi4vY3Vyc29yIik7dmFyIGM9dCgiLi91bmhvdmVyIik7ZnVuY3Rpb24gdSgpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3QuY2xhc3NOYW1lPSJkcmFnY292ZXIiO3ZhciBlPXQuc3R5bGU7cmV0dXJuIGUucG9zaXRpb249ImZpeGVkIixlLmxlZnQ9MCxlLnJpZ2h0PTAsZS50b3A9MCxlLmJvdHRvbT0wLGUuekluZGV4PTk5OTk5OTk5OSxlLmJhY2tncm91bmQ9Im5vbmUiLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQodCksdH1mdW5jdGlvbiBmKHQpe3JldHVybiBuKHQuY2hhbmdlZFRvdWNoZXM/dC5jaGFuZ2VkVG91Y2hlc1swXTp0LGRvY3VtZW50LmJvZHkpfWwudW5ob3Zlcj1jLndyYXBwZWQsbC51bmhvdmVyUmF3PWMucmF3LGwuaW5pdD1mdW5jdGlvbih0KXt2YXIgZSxyLG4sYyxoLHAsZCxtLGc9dC5nZCx2PTEseT1nLl9jb250ZXh0LmRvdWJsZUNsaWNrRGVsYXkseD10LmVsZW1lbnQ7Zy5fbW91c2VEb3duVGltZXx8KGcuX21vdXNlRG93blRpbWU9MCkseC5zdHlsZS5wb2ludGVyRXZlbnRzPSJhbGwiLHgub25tb3VzZWRvd249XyxhPyh4Ll9vbnRvdWNoc3RhcnQmJngucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFydCIseC5fb250b3VjaHN0YXJ0KSx4Ll9vbnRvdWNoc3RhcnQ9Xyx4LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLF8se3Bhc3NpdmU6ITF9KSk6eC5vbnRvdWNoc3RhcnQ9Xzt2YXIgYj10LmNsYW1wRm58fGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gTWF0aC5hYnModCk8ciYmKHQ9MCksTWF0aC5hYnMoZSk8ciYmKGU9MCksW3QsZV19O2Z1bmN0aW9uIF8oYSl7Zy5fZHJhZ2dlZD0hMSxnLl9kcmFnZ2luZz0hMDt2YXIgbz1mKGEpO2U9b1swXSxyPW9bMV0sZD1hLnRhcmdldCxwPWEsbT0yPT09YS5idXR0b25zfHxhLmN0cmxLZXksdm9pZCAwPT09YS5jbGllbnRYJiZ2b2lkIDA9PT1hLmNsaWVudFkmJihhLmNsaWVudFg9ZSxhLmNsaWVudFk9ciksKG49KG5ldyBEYXRlKS5nZXRUaW1lKCkpLWcuX21vdXNlRG93blRpbWU8eT92Kz0xOih2PTEsZy5fbW91c2VEb3duVGltZT1uKSx0LnByZXBGbiYmdC5wcmVwRm4oYSxlLHIpLGkmJiFtPyhoPXUoKSkuc3R5bGUuY3Vyc29yPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHgpLmN1cnNvcjppfHwoaD1kb2N1bWVudCxjPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCkuY3Vyc29yLGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3I9d2luZG93LmdldENvbXB1dGVkU3R5bGUoeCkuY3Vyc29yKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZXVwIixUKSxkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsVCksITEhPT10LmRyYWdtb2RlJiYoYS5wcmV2ZW50RGVmYXVsdCgpLGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsdyksZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2htb3ZlIix3LHtwYXNzaXZlOiExfSkpfWZ1bmN0aW9uIHcobil7bi5wcmV2ZW50RGVmYXVsdCgpO3ZhciBpPWYobiksYT10Lm1pbkRyYWd8fHMuTUlORFJBRyxvPWIoaVswXS1lLGlbMV0tcixhKSxjPW9bMF0sdT1vWzFdOyhjfHx1KSYmKGcuX2RyYWdnZWQ9ITAsbC51bmhvdmVyKGcsbikpLGcuX2RyYWdnZWQmJnQubW92ZUZuJiYhbSYmKGcuX2RyYWdkYXRhPXtlbGVtZW50OngsZHg6YyxkeTp1fSx0Lm1vdmVGbihjLHUpKX1mdW5jdGlvbiBUKGUpe2lmKGRlbGV0ZSBnLl9kcmFnZGF0YSwhMSE9PXQuZHJhZ21vZGUmJihlLnByZXZlbnREZWZhdWx0KCksZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIix3KSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHcpKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZXVwIixUKSxkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsVCksaT9vKGgpOmMmJihoLmRvY3VtZW50RWxlbWVudC5zdHlsZS5jdXJzb3I9YyxjPW51bGwpLGcuX2RyYWdnaW5nKXtpZihnLl9kcmFnZ2luZz0hMSwobmV3IERhdGUpLmdldFRpbWUoKS1nLl9tb3VzZURvd25UaW1lPnkmJih2PU1hdGgubWF4KHYtMSwxKSksZy5fZHJhZ2dlZCl0LmRvbmVGbiYmdC5kb25lRm4oKTtlbHNlIGlmKHQuY2xpY2tGbiYmdC5jbGlja0ZuKHYscCksIW0pe3ZhciByO3RyeXtyPW5ldyBNb3VzZUV2ZW50KCJjbGljayIsZSl9Y2F0Y2godCl7dmFyIG49ZihlKTsocj1kb2N1bWVudC5jcmVhdGVFdmVudCgiTW91c2VFdmVudHMiKSkuaW5pdE1vdXNlRXZlbnQoImNsaWNrIixlLmJ1YmJsZXMsZS5jYW5jZWxhYmxlLGUudmlldyxlLmRldGFpbCxlLnNjcmVlblgsZS5zY3JlZW5ZLG5bMF0sblsxXSxlLmN0cmxLZXksZS5hbHRLZXksZS5zaGlmdEtleSxlLm1ldGFLZXksZS5idXR0b24sZS5yZWxhdGVkVGFyZ2V0KX1kLmRpc3BhdGNoRXZlbnQocil9Zy5fZHJhZ2dpbmc9ITEsZy5fZHJhZ2dlZD0hMX1lbHNlIGcuX2RyYWdnZWQ9ITF9fSxsLmNvdmVyU2xpcD11fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo4MzQsIi4vYWxpZ24iOjY1NSwiLi9jdXJzb3IiOjY1NiwiLi91bmhvdmVyIjo2NTksImhhcy1ob3ZlciI6NDI1LCJoYXMtcGFzc2l2ZS1ldmVudHMiOjQyNiwibW91c2UtZXZlbnQtb2Zmc2V0Ijo0NTB9XSw2NTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V2ZW50cyIpLGk9dCgiLi4vLi4vbGliL3Rocm90dGxlIiksYT10KCIuLi8uLi9saWIvZG9tIikuZ2V0R3JhcGhEaXYsbz10KCIuLi9meC9jb25zdGFudHMiKSxzPWUuZXhwb3J0cz17fTtzLndyYXBwZWQ9ZnVuY3Rpb24odCxlLHIpeyh0PWEodCkpLl9mdWxsTGF5b3V0JiZpLmNsZWFyKHQuX2Z1bGxMYXlvdXQuX3VpZCtvLkhPVkVSSUQpLHMucmF3KHQsZSxyKX0scy5yYXc9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGk9dC5faG92ZXJkYXRhO2V8fChlPXt9KSxlLnRhcmdldCYmIXQuX2RyYWdnZWQmJiExPT09bi50cmlnZ2VySGFuZGxlcih0LCJwbG90bHlfYmVmb3JlaG92ZXIiLGUpfHwoci5faG92ZXJsYXllci5zZWxlY3RBbGwoImciKS5yZW1vdmUoKSxyLl9ob3ZlcmxheWVyLnNlbGVjdEFsbCgibGluZSIpLnJlbW92ZSgpLHIuX2hvdmVybGF5ZXIuc2VsZWN0QWxsKCJjaXJjbGUiKS5yZW1vdmUoKSx0Ll9ob3ZlcmRhdGE9dm9pZCAwLGUudGFyZ2V0JiZpJiZ0LmVtaXQoInBsb3RseV91bmhvdmVyIix7ZXZlbnQ6ZSxwb2ludHM6aX0pKX19LHsiLi4vLi4vbGliL2RvbSI6NzY0LCIuLi8uLi9saWIvZXZlbnRzIjo3NjUsIi4uLy4uL2xpYi90aHJvdHRsZSI6ODAzLCIuLi9meC9jb25zdGFudHMiOjY3M31dLDY2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmRhc2g9e3ZhbFR5cGU6InN0cmluZyIsdmFsdWVzOlsic29saWQiLCJkb3QiLCJkYXNoIiwibG9uZ2Rhc2giLCJkYXNoZG90IiwibG9uZ2Rhc2hkb3QiXSxkZmx0OiJzb2xpZCIsZWRpdFR5cGU6InN0eWxlIn0sci5wYXR0ZXJuPXtzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiIiwiLyIsIlxcIiwieCIsIi0iLCJ8IiwiKyIsIi4iXSxkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sZmlsbG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlcGxhY2UiLCJvdmVybGF5Il0sZGZsdDoicmVwbGFjZSIsZWRpdFR5cGU6InN0eWxlIn0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sZmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sZmdvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJzdHlsZSIsbWluOjAsbWF4OjF9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo4LGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sc29saWRpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMyxhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9fSx7fV0sNjYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9aS5udW1iZXJGb3JtYXQsbz10KCJmYXN0LWlzbnVtZXJpYyIpLHM9dCgidGlueWNvbG9yMiIpLGw9dCgiLi4vLi4vcmVnaXN0cnkiKSxjPXQoIi4uL2NvbG9yIiksdT10KCIuLi9jb2xvcnNjYWxlIiksZj1pLnN0clRyYW5zbGF0ZSxoPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHA9dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxkPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKS5MSU5FX1NQQUNJTkcsbT10KCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIikuREVTRUxFQ1RESU0sZz10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyIpLHY9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvbWFrZV9idWJibGVfc2l6ZV9mdW5jIikseT10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5hcHBlbmRBcnJheVBvaW50VmFsdWUseD1lLmV4cG9ydHM9e307eC5mb250PWZ1bmN0aW9uKHQsZSxyLG4pe2kuaXNQbGFpbk9iamVjdChlKSYmKG49ZS5jb2xvcixyPWUuc2l6ZSxlPWUuZmFtaWx5KSxlJiZ0LnN0eWxlKCJmb250LWZhbWlseSIsZSkscisxJiZ0LnN0eWxlKCJmb250LXNpemUiLHIrInB4IiksbiYmdC5jYWxsKGMuZmlsbCxuKX0seC5zZXRQb3NpdGlvbj1mdW5jdGlvbih0LGUscil7dC5hdHRyKCJ4IixlKS5hdHRyKCJ5IixyKX0seC5zZXRTaXplPWZ1bmN0aW9uKHQsZSxyKXt0LmF0dHIoIndpZHRoIixlKS5hdHRyKCJoZWlnaHQiLHIpfSx4LnNldFJlY3Q9ZnVuY3Rpb24odCxlLHIsbixpKXt0LmNhbGwoeC5zZXRQb3NpdGlvbixlLHIpLmNhbGwoeC5zZXRTaXplLG4saSl9LHgudHJhbnNsYXRlUG9pbnQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ci5jMnAodC54KSxhPW4uYzJwKHQueSk7cmV0dXJuISEobyhpKSYmbyhhKSYmZS5ub2RlKCkpJiYoInRleHQiPT09ZS5ub2RlKCkubm9kZU5hbWU/ZS5hdHRyKCJ4IixpKS5hdHRyKCJ5IixhKTplLmF0dHIoInRyYW5zZm9ybSIsZihpLGEpKSwhMCl9LHgudHJhbnNsYXRlUG9pbnRzPWZ1bmN0aW9uKHQsZSxyKXt0LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpPW4uc2VsZWN0KHRoaXMpO3gudHJhbnNsYXRlUG9pbnQodCxpLGUscil9KSl9LHguaGlkZU91dHNpZGVSYW5nZVBvaW50PWZ1bmN0aW9uKHQsZSxyLG4saSxhKXtlLmF0dHIoImRpc3BsYXkiLHIuaXNQdFdpdGhpblJhbmdlKHQsaSkmJm4uaXNQdFdpdGhpblJhbmdlKHQsYSk/bnVsbDoibm9uZSIpfSx4LmhpZGVPdXRzaWRlUmFuZ2VQb2ludHM9ZnVuY3Rpb24odCxlKXtpZihlLl9oYXNDbGlwT25BeGlzRmFsc2Upe3ZhciByPWUueGF4aXMsaT1lLnlheGlzO3QuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIGE9ZVswXS50cmFjZSxvPWEueGNhbGVuZGFyLHM9YS55Y2FsZW5kYXIsYz1sLnRyYWNlSXMoYSwiYmFyLWxpa2UiKT8iLmJhcnRleHQiOiIucG9pbnQsLnRleHRwb2ludCI7dC5zZWxlY3RBbGwoYykuZWFjaCgoZnVuY3Rpb24odCl7eC5oaWRlT3V0c2lkZVJhbmdlUG9pbnQodCxuLnNlbGVjdCh0aGlzKSxyLGksbyxzKX0pKX0pKX19LHguY3Jpc3BSb3VuZD1mdW5jdGlvbih0LGUscil7cmV0dXJuIGUmJm8oZSk/dC5fY29udGV4dC5zdGF0aWNQbG90P2U6ZTwxPzE6TWF0aC5yb3VuZChlKTpyfHwwfSx4LnNpbmdsZUxpbmVTdHlsZT1mdW5jdGlvbih0LGUscixuLGkpe2Uuc3R5bGUoImZpbGwiLCJub25lIik7dmFyIGE9KCgodHx8W10pWzBdfHx7fSkudHJhY2V8fHt9KS5saW5lfHx7fSxvPXJ8fGEud2lkdGh8fDAscz1pfHxhLmRhc2h8fCIiO2Muc3Ryb2tlKGUsbnx8YS5jb2xvcikseC5kYXNoTGluZShlLHMsbyl9LHgubGluZUdyb3VwU3R5bGU9ZnVuY3Rpb24odCxlLHIsaSl7dC5zdHlsZSgiZmlsbCIsIm5vbmUiKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgYT0oKCh0fHxbXSlbMF18fHt9KS50cmFjZXx8e30pLmxpbmV8fHt9LG89ZXx8YS53aWR0aHx8MCxzPWl8fGEuZGFzaHx8IiI7bi5zZWxlY3QodGhpcykuY2FsbChjLnN0cm9rZSxyfHxhLmNvbG9yKS5jYWxsKHguZGFzaExpbmUscyxvKX0pKX0seC5kYXNoTGluZT1mdW5jdGlvbih0LGUscil7cj0rcnx8MCxlPXguZGFzaFN0eWxlKGUsciksdC5zdHlsZSh7InN0cm9rZS1kYXNoYXJyYXkiOmUsInN0cm9rZS13aWR0aCI6cisicHgifSl9LHguZGFzaFN0eWxlPWZ1bmN0aW9uKHQsZSl7ZT0rZXx8MTt2YXIgcj1NYXRoLm1heChlLDMpO3JldHVybiJzb2xpZCI9PT10P3Q9IiI6ImRvdCI9PT10P3Q9cisicHgsIityKyJweCI6ImRhc2giPT09dD90PTMqcisicHgsIiszKnIrInB4IjoibG9uZ2Rhc2giPT09dD90PTUqcisicHgsIis1KnIrInB4IjoiZGFzaGRvdCI9PT10P3Q9MypyKyJweCwiK3IrInB4LCIrcisicHgsIityKyJweCI6ImxvbmdkYXNoZG90Ij09PXQmJih0PTUqcisicHgsIisyKnIrInB4LCIrcisicHgsIisyKnIrInB4IiksdH0seC5zaW5nbGVGaWxsU3R5bGU9ZnVuY3Rpb24odCl7dmFyIGU9KCgobi5zZWxlY3QodC5ub2RlKCkpLmRhdGEoKVswXXx8W10pWzBdfHx7fSkudHJhY2V8fHt9KS5maWxsY29sb3I7ZSYmdC5jYWxsKGMuZmlsbCxlKX0seC5maWxsR3JvdXBTdHlsZT1mdW5jdGlvbih0KXt0LnN0eWxlKCJzdHJva2Utd2lkdGgiLDApLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpO3RbMF0udHJhY2UmJmUuY2FsbChjLmZpbGwsdFswXS50cmFjZS5maWxsY29sb3IpfSkpfTt2YXIgYj10KCIuL3N5bWJvbF9kZWZzIik7eC5zeW1ib2xOYW1lcz1bXSx4LnN5bWJvbEZ1bmNzPVtdLHguc3ltYm9sTmVlZExpbmVzPXt9LHguc3ltYm9sTm9Eb3Q9e30seC5zeW1ib2xOb0ZpbGw9e30seC5zeW1ib2xMaXN0PVtdLE9iamVjdC5rZXlzKGIpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWJbdF0scj1lLm47eC5zeW1ib2xMaXN0LnB1c2gocixTdHJpbmcociksdCxyKzEwMCxTdHJpbmcocisxMDApLHQrIi1vcGVuIikseC5zeW1ib2xOYW1lc1tyXT10LHguc3ltYm9sRnVuY3Nbcl09ZS5mLGUubmVlZExpbmUmJih4LnN5bWJvbE5lZWRMaW5lc1tyXT0hMCksZS5ub0RvdD94LnN5bWJvbE5vRG90W3JdPSEwOnguc3ltYm9sTGlzdC5wdXNoKHIrMjAwLFN0cmluZyhyKzIwMCksdCsiLWRvdCIsciszMDAsU3RyaW5nKHIrMzAwKSx0KyItb3Blbi1kb3QiKSxlLm5vRmlsbCYmKHguc3ltYm9sTm9GaWxsW3JdPSEwKX0pKTt2YXIgXz14LnN5bWJvbE5hbWVzLmxlbmd0aDtmdW5jdGlvbiB3KHQsZSl7dmFyIHI9dCUxMDA7cmV0dXJuIHguc3ltYm9sRnVuY3Nbcl0oZSkrKHQ+PTIwMD8iTTAsMC41TDAuNSwwTDAsLTAuNUwtMC41LDBaIjoiIil9eC5zeW1ib2xOdW1iZXI9ZnVuY3Rpb24odCl7aWYobyh0KSl0PSt0O2Vsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB0KXt2YXIgZT0wO3QuaW5kZXhPZigiLW9wZW4iKT4wJiYoZT0xMDAsdD10LnJlcGxhY2UoIi1vcGVuIiwiIikpLHQuaW5kZXhPZigiLWRvdCIpPjAmJihlKz0yMDAsdD10LnJlcGxhY2UoIi1kb3QiLCIiKSksKHQ9eC5zeW1ib2xOYW1lcy5pbmRleE9mKHQpKT49MCYmKHQrPWUpfXJldHVybiB0JTEwMD49X3x8dD49NDAwPzA6TWF0aC5mbG9vcihNYXRoLm1heCh0LDApKX07dmFyIFQ9e3gxOjEseDI6MCx5MTowLHkyOjB9LGs9e3gxOjAseDI6MCx5MToxLHkyOjB9LEE9YSgifmYiKSxNPXtyYWRpYWw6e25vZGU6InJhZGlhbEdyYWRpZW50In0scmFkaWFscmV2ZXJzZWQ6e25vZGU6InJhZGlhbEdyYWRpZW50IixyZXZlcnNlZDohMH0saG9yaXpvbnRhbDp7bm9kZToibGluZWFyR3JhZGllbnQiLGF0dHJzOlR9LGhvcml6b250YWxyZXZlcnNlZDp7bm9kZToibGluZWFyR3JhZGllbnQiLGF0dHJzOlQscmV2ZXJzZWQ6ITB9LHZlcnRpY2FsOntub2RlOiJsaW5lYXJHcmFkaWVudCIsYXR0cnM6a30sdmVydGljYWxyZXZlcnNlZDp7bm9kZToibGluZWFyR3JhZGllbnQiLGF0dHJzOmsscmV2ZXJzZWQ6ITB9fTt4LmdyYWRpZW50PWZ1bmN0aW9uKHQsZSxyLGEsbyxsKXtmb3IodmFyIHU9by5sZW5ndGgsZj1NW2FdLGg9bmV3IEFycmF5KHUpLHA9MDtwPHU7cCsrKWYucmV2ZXJzZWQ/aFt1LTEtcF09W0EoMTAwKigxLW9bcF1bMF0pKSxvW3BdWzFdXTpoW3BdPVtBKDEwMCpvW3BdWzBdKSxvW3BdWzFdXTt2YXIgZD1lLl9mdWxsTGF5b3V0LG09ImciK2QuX3VpZCsiLSIrcixnPWQuX2RlZnMuc2VsZWN0KCIuZ3JhZGllbnRzIikuc2VsZWN0QWxsKCIjIittKS5kYXRhKFthK2guam9pbigiOyIpXSxpLmlkZW50aXR5KTtnLmV4aXQoKS5yZW1vdmUoKSxnLmVudGVyKCkuYXBwZW5kKGYubm9kZSkuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKTtmLmF0dHJzJiZ0LmF0dHIoZi5hdHRycyksdC5hdHRyKCJpZCIsbSk7dmFyIGU9dC5zZWxlY3RBbGwoInN0b3AiKS5kYXRhKGgpO2UuZXhpdCgpLnJlbW92ZSgpLGUuZW50ZXIoKS5hcHBlbmQoInN0b3AiKSxlLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXModFsxXSk7bi5zZWxlY3QodGhpcykuYXR0cih7b2Zmc2V0OnRbMF0rIiUiLCJzdG9wLWNvbG9yIjpjLnRpbnlSR0IoZSksInN0b3Atb3BhY2l0eSI6ZS5nZXRBbHBoYSgpfSl9KSl9KSksdC5zdHlsZShsLEQobSxlKSkuc3R5bGUobCsiLW9wYWNpdHkiLG51bGwpO3ZhciB2PWZ1bmN0aW9uKHQpe3JldHVybiIuIit0LmF0dHIoImNsYXNzIikucmVwbGFjZSgvXHMvZywiLiIpfSx5PXYobi5zZWxlY3QodC5ub2RlKCkucGFyZW50Tm9kZSkpKyI+Iit2KHQpO2QuX2dyYWRpZW50VXJsUXVlcnlQYXJ0c1t5XT0xfSx4LnBhdHRlcm49ZnVuY3Rpb24odCxlLHIsYSxvLHMsbCx1LGYsaCxwLGQpe3ZhciBtPSJsZWdlbmQiPT09ZTt1JiYoIm92ZXJsYXkiPT09Zj8oaD11LHA9Yy5jb250cmFzdChoKSk6KGg9dm9pZCAwLHA9dSkpO3ZhciBnLHYseSx4LGIsXyx3LFQsayxBLE0sUz1yLl9mdWxsTGF5b3V0LEU9InAiK1MuX3VpZCsiLSIrYSxMPXt9O3N3aXRjaChvKXtjYXNlIi8iOmc9cypNYXRoLnNxcnQoMiksdj1zKk1hdGguc3FydCgyKSxfPSJwYXRoIixMPXtkOnk9Ik0tIitnLzQrIiwiK3YvNCsibCIrZy8yKyIsLSIrdi8yKyJNMCwiK3YrIkwiK2crIiwwTSIrZy80KjMrIiwiK3YvNCo1KyJsIitnLzIrIiwtIit2LzIsb3BhY2l0eTpkLHN0cm9rZTpwLCJzdHJva2Utd2lkdGgiOih4PWwqcykrInB4In07YnJlYWs7Y2FzZSJcXCI6Zz1zKk1hdGguc3FydCgyKSx2PXMqTWF0aC5zcXJ0KDIpLF89InBhdGgiLEw9e2Q6eT0iTSIrZy80KjMrIiwtIit2LzQrImwiK2cvMisiLCIrdi8yKyJNMCwwTCIrZysiLCIrdisiTS0iK2cvNCsiLCIrdi80KjMrImwiK2cvMisiLCIrdi8yLG9wYWNpdHk6ZCxzdHJva2U6cCwic3Ryb2tlLXdpZHRoIjooeD1sKnMpKyJweCJ9O2JyZWFrO2Nhc2UieCI6Zz1zKk1hdGguc3FydCgyKSx2PXMqTWF0aC5zcXJ0KDIpLHk9Ik0tIitnLzQrIiwiK3YvNCsibCIrZy8yKyIsLSIrdi8yKyJNMCwiK3YrIkwiK2crIiwwTSIrZy80KjMrIiwiK3YvNCo1KyJsIitnLzIrIiwtIit2LzIrIk0iK2cvNCozKyIsLSIrdi80KyJsIitnLzIrIiwiK3YvMisiTTAsMEwiK2crIiwiK3YrIk0tIitnLzQrIiwiK3YvNCozKyJsIitnLzIrIiwiK3YvMix4PXMtcypNYXRoLnNxcnQoMS1sKSxfPSJwYXRoIixMPXtkOnksb3BhY2l0eTpkLHN0cm9rZTpwLCJzdHJva2Utd2lkdGgiOngrInB4In07YnJlYWs7Y2FzZSJ8IjpfPSJwYXRoIixfPSJwYXRoIixMPXtkOnk9Ik0iKyhnPXMpLzIrIiwwTCIrZy8yKyIsIisodj1zKSxvcGFjaXR5OmQsc3Ryb2tlOnAsInN0cm9rZS13aWR0aCI6KHg9bCpzKSsicHgifTticmVhaztjYXNlIi0iOl89InBhdGgiLF89InBhdGgiLEw9e2Q6eT0iTTAsIisodj1zKS8yKyJMIisoZz1zKSsiLCIrdi8yLG9wYWNpdHk6ZCxzdHJva2U6cCwic3Ryb2tlLXdpZHRoIjooeD1sKnMpKyJweCJ9O2JyZWFrO2Nhc2UiKyI6Xz0icGF0aCIseT0iTSIrKGc9cykvMisiLDBMIitnLzIrIiwiKyh2PXMpKyJNMCwiK3YvMisiTCIrZysiLCIrdi8yLHg9cy1zKk1hdGguc3FydCgxLWwpLF89InBhdGgiLEw9e2Q6eSxvcGFjaXR5OmQsc3Ryb2tlOnAsInN0cm9rZS13aWR0aCI6eCsicHgifTticmVhaztjYXNlIi4iOmc9cyx2PXMsbDxNYXRoLlBJLzQ/Yj1NYXRoLnNxcnQobCpzKnMvTWF0aC5QSSk6KHc9bCxUPU1hdGguUEkvNCxrPTEsQT1zLzIsTT1zL01hdGguc3FydCgyKSxiPUErKE0tQSkqKHctVCkvKGstVCkpLF89ImNpcmNsZSIsTD17Y3g6Zy8yLGN5OnYvMixyOmIsb3BhY2l0eTpkLGZpbGw6cH19dmFyIEM9W298fCJub1NoIixofHwibm9CZyIscHx8Im5vRmciLHMsbF0uam9pbigiOyIpLFA9Uy5fZGVmcy5zZWxlY3QoIi5wYXR0ZXJucyIpLnNlbGVjdEFsbCgiIyIrRSkuZGF0YShbQ10saS5pZGVudGl0eSk7UC5leGl0KCkucmVtb3ZlKCksUC5lbnRlcigpLmFwcGVuZCgicGF0dGVybiIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7aWYodC5hdHRyKHtpZDpFLHdpZHRoOmcrInB4IixoZWlnaHQ6disicHgiLHBhdHRlcm5Vbml0czoidXNlclNwYWNlT25Vc2UiLHBhdHRlcm5UcmFuc2Zvcm06bT8ic2NhbGUoMC44KSI6IiJ9KSxoKXt2YXIgZT10LnNlbGVjdEFsbCgicmVjdCIpLmRhdGEoWzBdKTtlLmV4aXQoKS5yZW1vdmUoKSxlLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cih7d2lkdGg6ZysicHgiLGhlaWdodDp2KyJweCIsZmlsbDpofSl9dmFyIHI9dC5zZWxlY3RBbGwoXykuZGF0YShbMF0pO3IuZXhpdCgpLnJlbW92ZSgpLHIuZW50ZXIoKS5hcHBlbmQoXykuYXR0cihMKX0pKSx0LnN0eWxlKCJmaWxsIixEKEUscikpLnN0eWxlKCJmaWxsLW9wYWNpdHkiLG51bGwpLHQuY2xhc3NlZCgicGF0dGVybl9maWxsZWQiLCEwKTt2YXIgST0iLiIrbi5zZWxlY3QodC5ub2RlKCkucGFyZW50Tm9kZSkuYXR0cigiY2xhc3MiKS5yZXBsYWNlKC9ccy9nLCIuIikrIj4ucGF0dGVybl9maWxsZWQiO1MuX3BhdHRlcm5VcmxRdWVyeVBhcnRzW0ldPTF9LHguaW5pdEdyYWRpZW50cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2kuZW5zdXJlU2luZ2xlKGUuX2RlZnMsImciLCJncmFkaWVudHMiKS5zZWxlY3RBbGwoImxpbmVhckdyYWRpZW50LHJhZGlhbEdyYWRpZW50IikucmVtb3ZlKCksZS5fZ3JhZGllbnRVcmxRdWVyeVBhcnRzPXt9fSx4LmluaXRQYXR0ZXJucz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2kuZW5zdXJlU2luZ2xlKGUuX2RlZnMsImciLCJwYXR0ZXJucyIpLnNlbGVjdEFsbCgicGF0dGVybiIpLnJlbW92ZSgpLGUuX3BhdHRlcm5VcmxRdWVyeVBhcnRzPXt9fSx4LmdldFBhdHRlcm5BdHRyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdCYmaS5pc0FycmF5T3JUeXBlZEFycmF5KHQpP2U8dC5sZW5ndGg/dFtlXTpyOnR9LHgucG9pbnRTdHlsZT1mdW5jdGlvbih0LGUscil7aWYodC5zaXplKCkpe3ZhciBpPXgubWFrZVBvaW50U3R5bGVGbnMoZSk7dC5lYWNoKChmdW5jdGlvbih0KXt4LnNpbmdsZVBvaW50U3R5bGUodCxuLnNlbGVjdCh0aGlzKSxlLGkscil9KSl9fSx4LnNpbmdsZVBvaW50U3R5bGU9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgbz1yLm1hcmtlcixzPW8ubGluZTtpZihlLnN0eWxlKCJvcGFjaXR5IixuLnNlbGVjdGVkT3BhY2l0eUZuP24uc2VsZWN0ZWRPcGFjaXR5Rm4odCk6dm9pZCAwPT09dC5tbz9vLm9wYWNpdHk6dC5tbyksbi5tczJtcmMpe3ZhciBsO2w9InZhcmlvdXMiPT09dC5tc3x8InZhcmlvdXMiPT09by5zaXplPzM6bi5tczJtcmModC5tcyksdC5tcmM9bCxuLnNlbGVjdGVkU2l6ZUZuJiYobD10Lm1yYz1uLnNlbGVjdGVkU2l6ZUZuKHQpKTt2YXIgdT14LnN5bWJvbE51bWJlcih0Lm14fHxvLnN5bWJvbCl8fDA7dC5vbT11JTIwMD49MTAwLGUuYXR0cigiZCIsdyh1LGwpKX12YXIgZixoLHAsZD0hMTtpZih0LnNvKXA9cy5vdXRsaWVyd2lkdGgsaD1zLm91dGxpZXJjb2xvcixmPW8ub3V0bGllcmNvbG9yO2Vsc2V7dmFyIG09KHN8fHt9KS53aWR0aDtwPSh0Lm1sdysxfHxtKzF8fCh0LnRyYWNlPyh0LnRyYWNlLm1hcmtlci5saW5lfHx7fSkud2lkdGg6MCkrMSktMXx8MCxoPSJtbGMiaW4gdD90Lm1sY2M9bi5saW5lU2NhbGUodC5tbGMpOmkuaXNBcnJheU9yVHlwZWRBcnJheShzLmNvbG9yKT9jLmRlZmF1bHRMaW5lOnMuY29sb3IsaS5pc0FycmF5T3JUeXBlZEFycmF5KG8uY29sb3IpJiYoZj1jLmRlZmF1bHRMaW5lLGQ9ITApLGY9Im1jImluIHQ/dC5tY2M9bi5tYXJrZXJTY2FsZSh0Lm1jKTpvLmNvbG9yfHwicmdiYSgwLDAsMCwwKSIsbi5zZWxlY3RlZENvbG9yRm4mJihmPW4uc2VsZWN0ZWRDb2xvckZuKHQpKX1pZih0Lm9tKWUuY2FsbChjLnN0cm9rZSxmKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6KHB8fDEpKyJweCIsZmlsbDoibm9uZSJ9KTtlbHNle2Uuc3R5bGUoInN0cm9rZS13aWR0aCIsKHQuaXNCbGFuaz8wOnApKyJweCIpO3ZhciBnPW8uZ3JhZGllbnQsdj10Lm1ndDt2P2Q9ITA6dj1nJiZnLnR5cGUsaS5pc0FycmF5T3JUeXBlZEFycmF5KHYpJiYodj12WzBdLE1bdl18fCh2PTApKTt2YXIgeT1vLnBhdHRlcm4sYj15JiZ4LmdldFBhdHRlcm5BdHRyKHkuc2hhcGUsdC5pLCIiKTtpZih2JiYibm9uZSIhPT12KXt2YXIgXz10Lm1nYztfP2Q9ITA6Xz1nLmNvbG9yO3ZhciBUPXIudWlkO2QmJihUKz0iLSIrdC5pKSx4LmdyYWRpZW50KGUsYSxULHYsW1swLF9dLFsxLGZdXSwiZmlsbCIpfWVsc2UgaWYoYil7dmFyIGs9eC5nZXRQYXR0ZXJuQXR0cih5LmJnY29sb3IsdC5pLG51bGwpLEE9eC5nZXRQYXR0ZXJuQXR0cih5LmZnY29sb3IsdC5pLG51bGwpLFM9eS5mZ29wYWNpdHksRT14LmdldFBhdHRlcm5BdHRyKHkuc2l6ZSx0LmksOCksTD14LmdldFBhdHRlcm5BdHRyKHkuc29saWRpdHksdC5pLC4zKSxDPXQubWNjfHxpLmlzQXJyYXlPclR5cGVkQXJyYXkoeS5zaGFwZSl8fGkuaXNBcnJheU9yVHlwZWRBcnJheSh5LmJnY29sb3IpfHxpLmlzQXJyYXlPclR5cGVkQXJyYXkoeS5zaXplKXx8aS5pc0FycmF5T3JUeXBlZEFycmF5KHkuc29saWRpdHkpLFA9ci51aWQ7QyYmKFArPSItIit0LmkpLHgucGF0dGVybihlLCJwb2ludCIsYSxQLGIsRSxMLHQubWNjLHkuZmlsbG1vZGUsayxBLFMpfWVsc2UgYy5maWxsKGUsZik7cCYmYy5zdHJva2UoZSxoKX19LHgubWFrZVBvaW50U3R5bGVGbnM9ZnVuY3Rpb24odCl7dmFyIGU9e30scj10Lm1hcmtlcjtyZXR1cm4gZS5tYXJrZXJTY2FsZT14LnRyeUNvbG9yc2NhbGUociwiIiksZS5saW5lU2NhbGU9eC50cnlDb2xvcnNjYWxlKHIsImxpbmUiKSxsLnRyYWNlSXModCwic3ltYm9scyIpJiYoZS5tczJtcmM9Zy5pc0J1YmJsZSh0KT92KHQpOmZ1bmN0aW9uKCl7cmV0dXJuKHIuc2l6ZXx8NikvMn0pLHQuc2VsZWN0ZWRwb2ludHMmJmkuZXh0ZW5kRmxhdChlLHgubWFrZVNlbGVjdGVkUG9pbnRTdHlsZUZucyh0KSksZX0seC5tYWtlU2VsZWN0ZWRQb2ludFN0eWxlRm5zPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LHI9dC5zZWxlY3RlZHx8e30sbj10LnVuc2VsZWN0ZWR8fHt9LGE9dC5tYXJrZXJ8fHt9LG89ci5tYXJrZXJ8fHt9LHM9bi5tYXJrZXJ8fHt9LGM9YS5vcGFjaXR5LHU9by5vcGFjaXR5LGY9cy5vcGFjaXR5LGg9dm9pZCAwIT09dSxwPXZvaWQgMCE9PWY7KGkuaXNBcnJheU9yVHlwZWRBcnJheShjKXx8aHx8cCkmJihlLnNlbGVjdGVkT3BhY2l0eUZuPWZ1bmN0aW9uKHQpe3ZhciBlPXZvaWQgMD09PXQubW8/YS5vcGFjaXR5OnQubW87cmV0dXJuIHQuc2VsZWN0ZWQ/aD91OmU6cD9mOm0qZX0pO3ZhciBkPWEuY29sb3IsZz1vLmNvbG9yLHY9cy5jb2xvcjsoZ3x8dikmJihlLnNlbGVjdGVkQ29sb3JGbj1mdW5jdGlvbih0KXt2YXIgZT10Lm1jY3x8ZDtyZXR1cm4gdC5zZWxlY3RlZD9nfHxlOnZ8fGV9KTt2YXIgeT1hLnNpemUseD1vLnNpemUsYj1zLnNpemUsXz12b2lkIDAhPT14LHc9dm9pZCAwIT09YjtyZXR1cm4gbC50cmFjZUlzKHQsInN5bWJvbHMiKSYmKF98fHcpJiYoZS5zZWxlY3RlZFNpemVGbj1mdW5jdGlvbih0KXt2YXIgZT10Lm1yY3x8eS8yO3JldHVybiB0LnNlbGVjdGVkP18/eC8yOmU6dz9iLzI6ZX0pLGV9LHgubWFrZVNlbGVjdGVkVGV4dFN0eWxlRm5zPWZ1bmN0aW9uKHQpe3ZhciBlPXt9LHI9dC5zZWxlY3RlZHx8e30sbj10LnVuc2VsZWN0ZWR8fHt9LGk9dC50ZXh0Zm9udHx8e30sYT1yLnRleHRmb250fHx7fSxvPW4udGV4dGZvbnR8fHt9LHM9aS5jb2xvcixsPWEuY29sb3IsdT1vLmNvbG9yO3JldHVybiBlLnNlbGVjdGVkVGV4dENvbG9yRm49ZnVuY3Rpb24odCl7dmFyIGU9dC50Y3x8cztyZXR1cm4gdC5zZWxlY3RlZD9sfHxlOnV8fChsP2U6Yy5hZGRPcGFjaXR5KGUsbSkpfSxlfSx4LnNlbGVjdGVkUG9pbnRTdHlsZT1mdW5jdGlvbih0LGUpe2lmKHQuc2l6ZSgpJiZlLnNlbGVjdGVkcG9pbnRzKXt2YXIgcj14Lm1ha2VTZWxlY3RlZFBvaW50U3R5bGVGbnMoZSksaT1lLm1hcmtlcnx8e30sYT1bXTtyLnNlbGVjdGVkT3BhY2l0eUZuJiZhLnB1c2goKGZ1bmN0aW9uKHQsZSl7dC5zdHlsZSgib3BhY2l0eSIsci5zZWxlY3RlZE9wYWNpdHlGbihlKSl9KSksci5zZWxlY3RlZENvbG9yRm4mJmEucHVzaCgoZnVuY3Rpb24odCxlKXtjLmZpbGwodCxyLnNlbGVjdGVkQ29sb3JGbihlKSl9KSksci5zZWxlY3RlZFNpemVGbiYmYS5wdXNoKChmdW5jdGlvbih0LGUpe3ZhciBuPWUubXh8fGkuc3ltYm9sfHwwLGE9ci5zZWxlY3RlZFNpemVGbihlKTt0LmF0dHIoImQiLHcoeC5zeW1ib2xOdW1iZXIobiksYSkpLGUubXJjMj1hfSkpLGEubGVuZ3RoJiZ0LmVhY2goKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPTA7cjxhLmxlbmd0aDtyKyspYVtyXShlLHQpfSkpfX0seC50cnlDb2xvcnNjYWxlPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZT9pLm5lc3RlZFByb3BlcnR5KHQsZSkuZ2V0KCk6dDtpZihyKXt2YXIgbj1yLmNvbG9yO2lmKChyLmNvbG9yc2NhbGV8fHIuX2NvbG9yQXgpJiZpLmlzQXJyYXlPclR5cGVkQXJyYXkobikpcmV0dXJuIHUubWFrZUNvbG9yU2NhbGVGdW5jRnJvbVRyYWNlKHIpfXJldHVybiBpLmlkZW50aXR5fTt2YXIgUz17c3RhcnQ6MSxlbmQ6LTEsbWlkZGxlOjAsYm90dG9tOjEsdG9wOi0xfTtmdW5jdGlvbiBFKHQsZSxyLGkpe3ZhciBhPW4uc2VsZWN0KHQubm9kZSgpLnBhcmVudE5vZGUpLG89LTEhPT1lLmluZGV4T2YoInRvcCIpPyJ0b3AiOi0xIT09ZS5pbmRleE9mKCJib3R0b20iKT8iYm90dG9tIjoibWlkZGxlIixzPS0xIT09ZS5pbmRleE9mKCJsZWZ0Iik/ImVuZCI6LTEhPT1lLmluZGV4T2YoInJpZ2h0Iik/InN0YXJ0IjoibWlkZGxlIixsPWk/aS8uOCsxOjAsYz0oaC5saW5lQ291bnQodCktMSkqZCsxLHU9U1tzXSpsLHA9Ljc1KnIrU1tvXSpsKyhTW29dLTEpKmMqci8yO3QuYXR0cigidGV4dC1hbmNob3IiLHMpLGEuYXR0cigidHJhbnNmb3JtIixmKHUscCkpfWZ1bmN0aW9uIEwodCxlKXt2YXIgcj10LnRzfHxlLnRleHRmb250LnNpemU7cmV0dXJuIG8ocikmJnI+MD9yOjB9eC50ZXh0UG9pbnRTdHlsZT1mdW5jdGlvbih0LGUscil7aWYodC5zaXplKCkpe3ZhciBhO2lmKGUuc2VsZWN0ZWRwb2ludHMpe3ZhciBvPXgubWFrZVNlbGVjdGVkVGV4dFN0eWxlRm5zKGUpO2E9by5zZWxlY3RlZFRleHRDb2xvckZufXZhciBzPWUudGV4dHRlbXBsYXRlLGw9ci5fZnVsbExheW91dDt0LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBvPW4uc2VsZWN0KHRoaXMpLGM9cz9pLmV4dHJhY3RPcHRpb24odCxlLCJ0eHQiLCJ0ZXh0dGVtcGxhdGUiKTppLmV4dHJhY3RPcHRpb24odCxlLCJ0eCIsInRleHQiKTtpZihjfHwwPT09Yyl7aWYocyl7dmFyIHU9ZS5fbW9kdWxlLmZvcm1hdExhYmVscyxmPXU/dSh0LGUsbCk6e30scD17fTt5KHAsZSx0LmkpO3ZhciBkPWUuX21ldGF8fHt9O2M9aS50ZXh0dGVtcGxhdGVTdHJpbmcoYyxmLGwuX2QzbG9jYWxlLHAsdCxkKX12YXIgbT10LnRwfHxlLnRleHRwb3NpdGlvbixnPUwodCxlKSx2PWE/YSh0KTp0LnRjfHxlLnRleHRmb250LmNvbG9yO28uY2FsbCh4LmZvbnQsdC50Znx8ZS50ZXh0Zm9udC5mYW1pbHksZyx2KS50ZXh0KGMpLmNhbGwoaC5jb252ZXJ0VG9Uc3BhbnMscikuY2FsbChFLG0sZyx0Lm1yYyl9ZWxzZSBvLnJlbW92ZSgpfSkpfX0seC5zZWxlY3RlZFRleHRTdHlsZT1mdW5jdGlvbih0LGUpe2lmKHQuc2l6ZSgpJiZlLnNlbGVjdGVkcG9pbnRzKXt2YXIgcj14Lm1ha2VTZWxlY3RlZFRleHRTdHlsZUZucyhlKTt0LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLGE9ci5zZWxlY3RlZFRleHRDb2xvckZuKHQpLG89dC50cHx8ZS50ZXh0cG9zaXRpb24scz1MKHQsZSk7Yy5maWxsKGksYSksRShpLG8scyx0Lm1yYzJ8fHQubXJjKX0pKX19O2Z1bmN0aW9uIEModCxlLHIsaSl7dmFyIGE9dFswXS1lWzBdLG89dFsxXS1lWzFdLHM9clswXS1lWzBdLGw9clsxXS1lWzFdLGM9TWF0aC5wb3coYSphK28qbywuMjUpLHU9TWF0aC5wb3cocypzK2wqbCwuMjUpLGY9KHUqdSphLWMqYypzKSppLGg9KHUqdSpvLWMqYypsKSppLHA9Myp1KihjK3UpLGQ9MypjKihjK3UpO3JldHVybltbbi5yb3VuZChlWzBdKyhwJiZmL3ApLDIpLG4ucm91bmQoZVsxXSsocCYmaC9wKSwyKV0sW24ucm91bmQoZVswXS0oZCYmZi9kKSwyKSxuLnJvdW5kKGVbMV0tKGQmJmgvZCksMildXX14LnNtb290aG9wZW49ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aDwzKXJldHVybiJNIit0LmpvaW4oIkwiKTt2YXIgcixuPSJNIit0WzBdLGk9W107Zm9yKHI9MTtyPHQubGVuZ3RoLTE7cisrKWkucHVzaChDKHRbci0xXSx0W3JdLHRbcisxXSxlKSk7Zm9yKG4rPSJRIitpWzBdWzBdKyIgIit0WzFdLHI9MjtyPHQubGVuZ3RoLTE7cisrKW4rPSJDIitpW3ItMl1bMV0rIiAiK2lbci0xXVswXSsiICIrdFtyXTtyZXR1cm4gbis9IlEiK2lbdC5sZW5ndGgtM11bMV0rIiAiK3RbdC5sZW5ndGgtMV19LHguc21vb3RoY2xvc2VkPWZ1bmN0aW9uKHQsZSl7aWYodC5sZW5ndGg8MylyZXR1cm4iTSIrdC5qb2luKCJMIikrIloiO3ZhciByLG49Ik0iK3RbMF0saT10Lmxlbmd0aC0xLGE9W0ModFtpXSx0WzBdLHRbMV0sZSldO2ZvcihyPTE7cjxpO3IrKylhLnB1c2goQyh0W3ItMV0sdFtyXSx0W3IrMV0sZSkpO2ZvcihhLnB1c2goQyh0W2ktMV0sdFtpXSx0WzBdLGUpKSxyPTE7cjw9aTtyKyspbis9IkMiK2Fbci0xXVsxXSsiICIrYVtyXVswXSsiICIrdFtyXTtyZXR1cm4gbis9IkMiK2FbaV1bMV0rIiAiK2FbMF1bMF0rIiAiK3RbMF0rIloifTt2YXIgUD17aHY6ZnVuY3Rpb24odCxlKXtyZXR1cm4iSCIrbi5yb3VuZChlWzBdLDIpKyJWIituLnJvdW5kKGVbMV0sMil9LHZoOmZ1bmN0aW9uKHQsZSl7cmV0dXJuIlYiK24ucm91bmQoZVsxXSwyKSsiSCIrbi5yb3VuZChlWzBdLDIpfSxodmg6ZnVuY3Rpb24odCxlKXtyZXR1cm4iSCIrbi5yb3VuZCgodFswXStlWzBdKS8yLDIpKyJWIituLnJvdW5kKGVbMV0sMikrIkgiK24ucm91bmQoZVswXSwyKX0sdmh2OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIlYiK24ucm91bmQoKHRbMV0rZVsxXSkvMiwyKSsiSCIrbi5yb3VuZChlWzBdLDIpKyJWIituLnJvdW5kKGVbMV0sMil9fSxJPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIkwiK24ucm91bmQoZVswXSwyKSsiLCIrbi5yb3VuZChlWzFdLDIpfTt4LnN0ZXBzPWZ1bmN0aW9uKHQpe3ZhciBlPVBbdF18fEk7cmV0dXJuIGZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0iTSIrbi5yb3VuZCh0WzBdWzBdLDIpKyIsIituLnJvdW5kKHRbMF1bMV0sMiksaT0xO2k8dC5sZW5ndGg7aSsrKXIrPWUodFtpLTFdLHRbaV0pO3JldHVybiByfX0seC5tYWtlVGVzdGVyPWZ1bmN0aW9uKCl7dmFyIHQ9aS5lbnN1cmVTaW5nbGVCeUlkKG4uc2VsZWN0KCJib2R5IiksInN2ZyIsImpzLXBsb3RseS10ZXN0ZXIiLChmdW5jdGlvbih0KXt0LmF0dHIocC5zdmdBdHRycykuc3R5bGUoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsbGVmdDoiLTEwMDAwcHgiLHRvcDoiLTEwMDAwcHgiLHdpZHRoOiI5MDAwcHgiLGhlaWdodDoiOTAwMHB4Iiwiei1pbmRleCI6IjEifSl9KSksZT1pLmVuc3VyZVNpbmdsZSh0LCJwYXRoIiwianMtcmVmZXJlbmNlLXBvaW50IiwoZnVuY3Rpb24odCl7dC5hdHRyKCJkIiwiTTAsMEgxVjFIMFoiKS5zdHlsZSh7InN0cm9rZS13aWR0aCI6MCxmaWxsOiJibGFjayJ9KX0pKTt4LnRlc3Rlcj10LHgudGVzdHJlZj1lfSx4LnNhdmVkQkJveGVzPXt9O3ZhciBPPTA7ZnVuY3Rpb24geih0KXt2YXIgZT10LmdldEF0dHJpYnV0ZSgiZGF0YS11bmZvcm1hdHRlZCIpO2lmKG51bGwhPT1lKXJldHVybiBlK3QuZ2V0QXR0cmlidXRlKCJkYXRhLW1hdGgiKSt0LmdldEF0dHJpYnV0ZSgidGV4dC1hbmNob3IiKSt0LmdldEF0dHJpYnV0ZSgic3R5bGUiKX1mdW5jdGlvbiBEKHQsZSl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIHI9ZS5fY29udGV4dCxuPXIuX2V4cG9ydGVkUGxvdD8iIjpyLl9iYXNlVXJsfHwiIjtyZXR1cm4gbj8idXJsKCciK24rIiMiK3QrIicpIjoidXJsKCMiK3QrIikifXguYkJveD1mdW5jdGlvbih0LGUscil7dmFyIGEsbyxzO2lmKHJ8fChyPXoodCkpLHIpe2lmKGE9eC5zYXZlZEJCb3hlc1tyXSlyZXR1cm4gaS5leHRlbmRGbGF0KHt9LGEpfWVsc2UgaWYoMT09PXQuY2hpbGROb2Rlcy5sZW5ndGgpe3ZhciBsPXQuY2hpbGROb2Rlc1swXTtpZihyPXoobCkpe3ZhciBjPStsLmdldEF0dHJpYnV0ZSgieCIpfHwwLHU9K2wuZ2V0QXR0cmlidXRlKCJ5Iil8fDAsZj1sLmdldEF0dHJpYnV0ZSgidHJhbnNmb3JtIik7aWYoIWYpe3ZhciBwPXguYkJveChsLCExLHIpO3JldHVybiBjJiYocC5sZWZ0Kz1jLHAucmlnaHQrPWMpLHUmJihwLnRvcCs9dSxwLmJvdHRvbSs9dSkscH1pZihyKz0ifiIrYysifiIrdSsifiIrZixhPXguc2F2ZWRCQm94ZXNbcl0pcmV0dXJuIGkuZXh0ZW5kRmxhdCh7fSxhKX19ZT9vPXQ6KHM9eC50ZXN0ZXIubm9kZSgpLG89dC5jbG9uZU5vZGUoITApLHMuYXBwZW5kQ2hpbGQobykpLG4uc2VsZWN0KG8pLmF0dHIoInRyYW5zZm9ybSIsbnVsbCkuY2FsbChoLnBvc2l0aW9uVGV4dCwwLDApO3ZhciBkPW8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbT14LnRlc3RyZWYubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2V8fHMucmVtb3ZlQ2hpbGQobyk7dmFyIGc9e2hlaWdodDpkLmhlaWdodCx3aWR0aDpkLndpZHRoLGxlZnQ6ZC5sZWZ0LW0ubGVmdCx0b3A6ZC50b3AtbS50b3AscmlnaHQ6ZC5yaWdodC1tLmxlZnQsYm90dG9tOmQuYm90dG9tLW0udG9wfTtyZXR1cm4gTz49MWU0JiYoeC5zYXZlZEJCb3hlcz17fSxPPTApLHImJih4LnNhdmVkQkJveGVzW3JdPWcpLE8rKyxpLmV4dGVuZEZsYXQoe30sZyl9LHguc2V0Q2xpcFVybD1mdW5jdGlvbih0LGUscil7dC5hdHRyKCJjbGlwLXBhdGgiLEQoZSxyKSl9LHguZ2V0VHJhbnNsYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPSh0W3QuYXR0cj8iYXR0ciI6ImdldEF0dHJpYnV0ZSJdKCJ0cmFuc2Zvcm0iKXx8IiIpLnJlcGxhY2UoLy4qXGJ0cmFuc2xhdGVcKCgtP1xkKlwuP1xkKilbXi1cZF0qKC0/XGQqXC4/XGQqKVteXGRdLiovLChmdW5jdGlvbih0LGUscil7cmV0dXJuW2Uscl0uam9pbigiICIpfSkpLnNwbGl0KCIgIik7cmV0dXJue3g6K2VbMF18fDAseTorZVsxXXx8MH19LHguc2V0VHJhbnNsYXRlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10LmF0dHI/ImF0dHIiOiJnZXRBdHRyaWJ1dGUiLGk9dC5hdHRyPyJhdHRyIjoic2V0QXR0cmlidXRlIixhPXRbbl0oInRyYW5zZm9ybSIpfHwiIjtyZXR1cm4gZT1lfHwwLHI9cnx8MCxhPWEucmVwbGFjZSgvKFxidHJhbnNsYXRlXCguKj9cKTs/KS8sIiIpLnRyaW0oKSxhPShhKz1mKGUscikpLnRyaW0oKSx0W2ldKCJ0cmFuc2Zvcm0iLGEpLGF9LHguZ2V0U2NhbGU9ZnVuY3Rpb24odCl7dmFyIGU9KHRbdC5hdHRyPyJhdHRyIjoiZ2V0QXR0cmlidXRlIl0oInRyYW5zZm9ybSIpfHwiIikucmVwbGFjZSgvLipcYnNjYWxlXCgoXGQqXC4/XGQqKVteXGRdKihcZCpcLj9cZCopW15cZF0uKi8sKGZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZSxyXS5qb2luKCIgIil9KSkuc3BsaXQoIiAiKTtyZXR1cm57eDorZVswXXx8MSx5OitlWzFdfHwxfX0seC5zZXRTY2FsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dC5hdHRyPyJhdHRyIjoiZ2V0QXR0cmlidXRlIixpPXQuYXR0cj8iYXR0ciI6InNldEF0dHJpYnV0ZSIsYT10W25dKCJ0cmFuc2Zvcm0iKXx8IiI7cmV0dXJuIGU9ZXx8MSxyPXJ8fDEsYT1hLnJlcGxhY2UoLyhcYnNjYWxlXCguKj9cKTs/KS8sIiIpLnRyaW0oKSxhPShhKz0ic2NhbGUoIitlKyIsIityKyIpIikudHJpbSgpLHRbaV0oInRyYW5zZm9ybSIsYSksYX07dmFyIFI9L1xzKnNjLiovO3guc2V0UG9pbnRHcm91cFNjYWxlPWZ1bmN0aW9uKHQsZSxyKXtpZihlPWV8fDEscj1yfHwxLHQpe3ZhciBuPTE9PT1lJiYxPT09cj8iIjoic2NhbGUoIitlKyIsIityKyIpIjt0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9KHRoaXMuZ2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iKXx8IiIpLnJlcGxhY2UoUiwiIik7dD0odCs9bikudHJpbSgpLHRoaXMuc2V0QXR0cmlidXRlKCJ0cmFuc2Zvcm0iLHQpfSkpfX07dmFyIEY9L3RyYW5zbGF0ZVwoW14pXSpcKVxzKiQvO3guc2V0VGV4dFBvaW50c1NjYWxlPWZ1bmN0aW9uKHQsZSxyKXt0JiZ0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQsaT1uLnNlbGVjdCh0aGlzKSxhPWkuc2VsZWN0KCJ0ZXh0Iik7aWYoYS5ub2RlKCkpe3ZhciBvPXBhcnNlRmxvYXQoYS5hdHRyKCJ4Iil8fDApLHM9cGFyc2VGbG9hdChhLmF0dHIoInkiKXx8MCksbD0oaS5hdHRyKCJ0cmFuc2Zvcm0iKXx8IiIpLm1hdGNoKEYpO3Q9MT09PWUmJjE9PT1yP1tdOltmKG8scyksInNjYWxlKCIrZSsiLCIrcisiKSIsZigtbywtcyldLGwmJnQucHVzaChsKSxpLmF0dHIoInRyYW5zZm9ybSIsdC5qb2luKCIiKSl9fSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjY3NSwiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NzQ0LCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo3NTEsIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo3NTMsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvbWFrZV9idWJibGVfc2l6ZV9mdW5jIjoxMjA4LCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyI6MTIxNiwiLi4vY29sb3IiOjYzOSwiLi4vY29sb3JzY2FsZSI6NjUxLCIuL3N5bWJvbF9kZWZzIjo2NjIsIkBwbG90bHkvZDMiOjU4LCJmYXN0LWlzbnVtZXJpYyI6MjQyLHRpbnljb2xvcjI6NTcyfV0sNjYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKTtlLmV4cG9ydHM9e2NpcmNsZTp7bjowLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsMEEiK2UrIiwiK2UrIiAwIDEsMSAwLC0iK2UrIkEiK2UrIiwiK2UrIiAwIDAsMSAiK2UrIiwwWiJ9fSxzcXVhcmU6e246MSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiSC0iK2UrIlYtIitlKyJIIitlKyJaIn19LGRpYW1vbmQ6e246MixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4zKnQsMik7cmV0dXJuIk0iK2UrIiwwTDAsIitlKyJMLSIrZSsiLDBMMCwtIitlKyJaIn19LGNyb3NzOntuOjMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC40KnQsMikscj1uLnJvdW5kKDEuMip0LDIpO3JldHVybiJNIityKyIsIitlKyJIIitlKyJWIityKyJILSIrZSsiViIrZSsiSC0iK3IrIlYtIitlKyJILSIrZSsiVi0iK3IrIkgiK2UrIlYtIitlKyJIIityKyJaIn19LHg6e246NCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjgqdC9NYXRoLnNxcnQoMiksMikscj0ibCIrZSsiLCIrZSxpPSJsIitlKyIsLSIrZSxhPSJsLSIrZSsiLC0iK2Usbz0ibC0iK2UrIiwiK2U7cmV0dXJuIk0wLCIrZStyK2krYStpK2ErbythK28rcitvK3IrIloifX0sInRyaWFuZ2xlLXVwIjp7bjo1LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQvTWF0aC5zcXJ0KDMpLDIpO3JldHVybiJNLSIrZSsiLCIrbi5yb3VuZCh0LzIsMikrIkgiK2UrIkwwLC0iK24ucm91bmQodCwyKSsiWiJ9fSwidHJpYW5nbGUtZG93biI6e246NixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMip0L01hdGguc3FydCgzKSwyKTtyZXR1cm4iTS0iK2UrIiwtIituLnJvdW5kKHQvMiwyKSsiSCIrZSsiTDAsIituLnJvdW5kKHQsMikrIloifX0sInRyaWFuZ2xlLWxlZnQiOntuOjcsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDIqdC9NYXRoLnNxcnQoMyksMik7cmV0dXJuIk0iK24ucm91bmQodC8yLDIpKyIsLSIrZSsiViIrZSsiTC0iK24ucm91bmQodCwyKSsiLDBaIn19LCJ0cmlhbmdsZS1yaWdodCI6e246OCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMip0L01hdGguc3FydCgzKSwyKTtyZXR1cm4iTS0iK24ucm91bmQodC8yLDIpKyIsLSIrZSsiViIrZSsiTCIrbi5yb3VuZCh0LDIpKyIsMFoifX0sInRyaWFuZ2xlLW5lIjp7bjo5LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNip0LDIpLHI9bi5yb3VuZCgxLjIqdCwyKTtyZXR1cm4iTS0iK3IrIiwtIitlKyJIIitlKyJWIityKyJaIn19LCJ0cmlhbmdsZS1zZSI6e246MTAsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC42KnQsMikscj1uLnJvdW5kKDEuMip0LDIpO3JldHVybiJNIitlKyIsLSIrcisiViIrZSsiSC0iK3IrIloifX0sInRyaWFuZ2xlLXN3Ijp7bjoxMSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjYqdCwyKSxyPW4ucm91bmQoMS4yKnQsMik7cmV0dXJuIk0iK3IrIiwiK2UrIkgtIitlKyJWLSIrcisiWiJ9fSwidHJpYW5nbGUtbnciOntuOjEyLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguNip0LDIpLHI9bi5yb3VuZCgxLjIqdCwyKTtyZXR1cm4iTS0iK2UrIiwiK3IrIlYtIitlKyJIIityKyJaIn19LHBlbnRhZ29uOntuOjEzLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCguOTUxKnQsMikscj1uLnJvdW5kKC41ODgqdCwyKSxpPW4ucm91bmQoLXQsMiksYT1uLnJvdW5kKC0uMzA5KnQsMik7cmV0dXJuIk0iK2UrIiwiK2ErIkwiK3IrIiwiK24ucm91bmQoLjgwOSp0LDIpKyJILSIrcisiTC0iK2UrIiwiK2ErIkwwLCIraSsiWiJ9fSxoZXhhZ29uOntuOjE0LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpLHI9bi5yb3VuZCh0LzIsMiksaT1uLnJvdW5kKHQqTWF0aC5zcXJ0KDMpLzIsMik7cmV0dXJuIk0iK2krIiwtIityKyJWIityKyJMMCwiK2UrIkwtIitpKyIsIityKyJWLSIrcisiTDAsLSIrZSsiWiJ9fSxoZXhhZ29uMjp7bjoxNSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKSxyPW4ucm91bmQodC8yLDIpLGk9bi5yb3VuZCh0Kk1hdGguc3FydCgzKS8yLDIpO3JldHVybiJNLSIrcisiLCIraSsiSCIrcisiTCIrZSsiLDBMIityKyIsLSIraSsiSC0iK3IrIkwtIitlKyIsMFoifX0sb2N0YWdvbjp7bjoxNixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjkyNCp0LDIpLHI9bi5yb3VuZCguMzgzKnQsMik7cmV0dXJuIk0tIityKyIsLSIrZSsiSCIrcisiTCIrZSsiLC0iK3IrIlYiK3IrIkwiK3IrIiwiK2UrIkgtIityKyJMLSIrZSsiLCIrcisiVi0iK3IrIloifX0sc3Rhcjp7bjoxNyxmOmZ1bmN0aW9uKHQpe3ZhciBlPTEuNCp0LHI9bi5yb3VuZCguMjI1KmUsMiksaT1uLnJvdW5kKC45NTEqZSwyKSxhPW4ucm91bmQoLjM2MyplLDIpLG89bi5yb3VuZCguNTg4KmUsMikscz1uLnJvdW5kKC1lLDIpLGw9bi5yb3VuZCgtLjMwOSplLDIpLGM9bi5yb3VuZCguMTE4KmUsMiksdT1uLnJvdW5kKC44MDkqZSwyKTtyZXR1cm4iTSIrcisiLCIrbCsiSCIraSsiTCIrYSsiLCIrYysiTCIrbysiLCIrdSsiTDAsIituLnJvdW5kKC4zODIqZSwyKSsiTC0iK28rIiwiK3UrIkwtIithKyIsIitjKyJMLSIraSsiLCIrbCsiSC0iK3IrIkwwLCIrcysiWiJ9fSxoZXhhZ3JhbTp7bjoxOCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoLjY2KnQsMikscj1uLnJvdW5kKC4zOCp0LDIpLGk9bi5yb3VuZCguNzYqdCwyKTtyZXR1cm4iTS0iK2krIiwwbC0iK3IrIiwtIitlKyJoIitpKyJsIityKyIsLSIrZSsibCIrcisiLCIrZSsiaCIraSsibC0iK3IrIiwiK2UrImwiK3IrIiwiK2UrImgtIitpKyJsLSIrcisiLCIrZSsibC0iK3IrIiwtIitlKyJoLSIraSsiWiJ9fSwic3Rhci10cmlhbmdsZS11cCI6e246MTksZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQqTWF0aC5zcXJ0KDMpKi44LDIpLHI9bi5yb3VuZCguOCp0LDIpLGk9bi5yb3VuZCgxLjYqdCwyKSxhPW4ucm91bmQoNCp0LDIpLG89IkEgIithKyIsIithKyIgMCAwIDEgIjtyZXR1cm4iTS0iK2UrIiwiK3IrbytlKyIsIityK28rIjAsLSIraStvKyItIitlKyIsIityKyJaIn19LCJzdGFyLXRyaWFuZ2xlLWRvd24iOntuOjIwLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0Kk1hdGguc3FydCgzKSouOCwyKSxyPW4ucm91bmQoLjgqdCwyKSxpPW4ucm91bmQoMS42KnQsMiksYT1uLnJvdW5kKDQqdCwyKSxvPSJBICIrYSsiLCIrYSsiIDAgMCAxICI7cmV0dXJuIk0iK2UrIiwtIityK28rIi0iK2UrIiwtIityK28rIjAsIitpK28rZSsiLC0iK3IrIloifX0sInN0YXItc3F1YXJlIjp7bjoyMSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4xKnQsMikscj1uLnJvdW5kKDIqdCwyKSxpPSJBICIrcisiLCIrcisiIDAgMCAxICI7cmV0dXJuIk0tIitlKyIsLSIrZStpKyItIitlKyIsIitlK2krZSsiLCIrZStpK2UrIiwtIitlK2krIi0iK2UrIiwtIitlKyJaIn19LCJzdGFyLWRpYW1vbmQiOntuOjIyLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjQqdCwyKSxyPW4ucm91bmQoMS45KnQsMiksaT0iQSAiK3IrIiwiK3IrIiAwIDAgMSAiO3JldHVybiJNLSIrZSsiLDAiK2krIjAsIitlK2krZSsiLDAiK2krIjAsLSIrZStpKyItIitlKyIsMFoifX0sImRpYW1vbmQtdGFsbCI6e246MjMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKC43KnQsMikscj1uLnJvdW5kKDEuNCp0LDIpO3JldHVybiJNMCwiK3IrIkwiK2UrIiwwTDAsLSIrcisiTC0iK2UrIiwwWiJ9fSwiZGlhbW9uZC13aWRlIjp7bjoyNCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS40KnQsMikscj1uLnJvdW5kKC43KnQsMik7cmV0dXJuIk0wLCIrcisiTCIrZSsiLDBMMCwtIityKyJMLSIrZSsiLDBaIn19LGhvdXJnbGFzczp7bjoyNSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiSC0iK2UrIkwiK2UrIiwtIitlKyJILSIrZSsiWiJ9LG5vRG90OiEwfSxib3d0aWU6e246MjYsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwiK2UrIlYtIitlKyJMLSIrZSsiLCIrZSsiVi0iK2UrIloifSxub0RvdDohMH0sImNpcmNsZS1jcm9zcyI6e246MjcsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0wLCIrZSsiVi0iK2UrIk0iK2UrIiwwSC0iK2UrIk0iK2UrIiwwQSIrZSsiLCIrZSsiIDAgMSwxIDAsLSIrZSsiQSIrZSsiLCIrZSsiIDAgMCwxICIrZSsiLDBaIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJjaXJjbGUteCI6e246MjgsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMikscj1uLnJvdW5kKHQvTWF0aC5zcXJ0KDIpLDIpO3JldHVybiJNIityKyIsIityKyJMLSIrcisiLC0iK3IrIk0iK3IrIiwtIityKyJMLSIrcisiLCIrcisiTSIrZSsiLDBBIitlKyIsIitlKyIgMCAxLDEgMCwtIitlKyJBIitlKyIsIitlKyIgMCAwLDEgIitlKyIsMFoifSxuZWVkTGluZTohMCxub0RvdDohMH0sInNxdWFyZS1jcm9zcyI6e246MjksZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0wLCIrZSsiVi0iK2UrIk0iK2UrIiwwSC0iK2UrIk0iK2UrIiwiK2UrIkgtIitlKyJWLSIrZSsiSCIrZSsiWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwic3F1YXJlLXgiOntuOjMwLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIitlKyJMLSIrZSsiLC0iK2UrIk0iK2UrIiwtIitlKyJMLSIrZSsiLCIrZSsiTSIrZSsiLCIrZSsiSC0iK2UrIlYtIitlKyJIIitlKyJaIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJkaWFtb25kLWNyb3NzIjp7bjozMSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4zKnQsMik7cmV0dXJuIk0iK2UrIiwwTDAsIitlKyJMLSIrZSsiLDBMMCwtIitlKyJaTTAsLSIrZSsiViIrZSsiTS0iK2UrIiwwSCIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9LCJkaWFtb25kLXgiOntuOjMyLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjMqdCwyKSxyPW4ucm91bmQoLjY1KnQsMik7cmV0dXJuIk0iK2UrIiwwTDAsIitlKyJMLSIrZSsiLDBMMCwtIitlKyJaTS0iK3IrIiwtIityKyJMIityKyIsIityKyJNLSIrcisiLCIrcisiTCIrcisiLC0iK3J9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiY3Jvc3MtdGhpbiI6e246MzMsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuNCp0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlKyJNIitlKyIsMEgtIitlfSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJ4LXRoaW4iOntuOjM0LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNIitlKyIsIitlKyJMLSIrZSsiLC0iK2UrIk0iK2UrIiwtIitlKyJMLSIrZSsiLCIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSxhc3Rlcmlzazp7bjozNSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4yKnQsMikscj1uLnJvdW5kKC44NSp0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlKyJNIitlKyIsMEgtIitlKyJNIityKyIsIityKyJMLSIrcisiLC0iK3IrIk0iK3IrIiwtIityKyJMLSIrcisiLCIrcn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSxoYXNoOntuOjM2LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LzIsMikscj1uLnJvdW5kKHQsMik7cmV0dXJuIk0iK2UrIiwiK3IrIlYtIityKyJtLSIrcisiLDBWIityKyJNIityKyIsIitlKyJILSIrcisibTAsLSIrcisiSCIrcn0sbmVlZExpbmU6ITAsbm9GaWxsOiEwfSwieS11cCI6e246MzcsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMip0LDIpLHI9bi5yb3VuZCgxLjYqdCwyKSxpPW4ucm91bmQoLjgqdCwyKTtyZXR1cm4iTS0iK2UrIiwiK2krIkwwLDBNIitlKyIsIitpKyJMMCwwTTAsLSIrcisiTDAsMCJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwLG5vRmlsbDohMH0sInktZG93biI6e246MzgsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuMip0LDIpLHI9bi5yb3VuZCgxLjYqdCwyKSxpPW4ucm91bmQoLjgqdCwyKTtyZXR1cm4iTS0iK2UrIiwtIitpKyJMMCwwTSIrZSsiLC0iK2krIkwwLDBNMCwiK3IrIkwwLDAifSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJ5LWxlZnQiOntuOjM5LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjIqdCwyKSxyPW4ucm91bmQoMS42KnQsMiksaT1uLnJvdW5kKC44KnQsMik7cmV0dXJuIk0iK2krIiwiK2UrIkwwLDBNIitpKyIsLSIrZSsiTDAsME0tIityKyIsMEwwLDAifSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJ5LXJpZ2h0Ijp7bjo0MCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMS4yKnQsMikscj1uLnJvdW5kKDEuNip0LDIpLGk9bi5yb3VuZCguOCp0LDIpO3JldHVybiJNLSIraSsiLCIrZSsiTDAsME0tIitpKyIsLSIrZSsiTDAsME0iK3IrIiwwTDAsMCJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwLG5vRmlsbDohMH0sImxpbmUtZXciOntuOjQxLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgxLjQqdCwyKTtyZXR1cm4iTSIrZSsiLDBILSIrZX0sbmVlZExpbmU6ITAsbm9Eb3Q6ITAsbm9GaWxsOiEwfSwibGluZS1ucyI6e246NDIsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDEuNCp0LDIpO3JldHVybiJNMCwiK2UrIlYtIitlfSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJsaW5lLW5lIjp7bjo0MyxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLC0iK2UrIkwtIitlKyIsIitlfSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJsaW5lLW53Ijp7bjo0NCxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTSIrZSsiLCIrZSsiTC0iK2UrIiwtIitlfSxuZWVkTGluZTohMCxub0RvdDohMCxub0ZpbGw6ITB9LCJhcnJvdy11cCI6e246NDUsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKHQsMik7cmV0dXJuIk0wLDBMLSIrZSsiLCIrbi5yb3VuZCgyKnQsMikrIkgiK2UrIloifSxub0RvdDohMH0sImFycm93LWRvd24iOntuOjQ2LGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNMCwwTC0iK2UrIiwtIituLnJvdW5kKDIqdCwyKSsiSCIrZSsiWiJ9LG5vRG90OiEwfSwiYXJyb3ctbGVmdCI6e246NDcsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDIqdCwyKSxyPW4ucm91bmQodCwyKTtyZXR1cm4iTTAsMEwiK2UrIiwtIityKyJWIityKyJaIn0sbm9Eb3Q6ITB9LCJhcnJvdy1yaWdodCI6e246NDgsZjpmdW5jdGlvbih0KXt2YXIgZT1uLnJvdW5kKDIqdCwyKSxyPW4ucm91bmQodCwyKTtyZXR1cm4iTTAsMEwtIitlKyIsLSIrcisiViIrcisiWiJ9LG5vRG90OiEwfSwiYXJyb3ctYmFyLXVwIjp7bjo0OSxmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQodCwyKTtyZXR1cm4iTS0iK2UrIiwwSCIrZSsiTTAsMEwtIitlKyIsIituLnJvdW5kKDIqdCwyKSsiSCIrZSsiWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiYXJyb3ctYmFyLWRvd24iOntuOjUwLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCh0LDIpO3JldHVybiJNLSIrZSsiLDBIIitlKyJNMCwwTC0iK2UrIiwtIituLnJvdW5kKDIqdCwyKSsiSCIrZSsiWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiYXJyb3ctYmFyLWxlZnQiOntuOjUxLGY6ZnVuY3Rpb24odCl7dmFyIGU9bi5yb3VuZCgyKnQsMikscj1uLnJvdW5kKHQsMik7cmV0dXJuIk0wLC0iK3IrIlYiK3IrIk0wLDBMIitlKyIsLSIrcisiViIrcisiWiJ9LG5lZWRMaW5lOiEwLG5vRG90OiEwfSwiYXJyb3ctYmFyLXJpZ2h0Ijp7bjo1MixmOmZ1bmN0aW9uKHQpe3ZhciBlPW4ucm91bmQoMip0LDIpLHI9bi5yb3VuZCh0LDIpO3JldHVybiJNMCwtIityKyJWIityKyJNMCwwTC0iK2UrIiwtIityKyJWIityKyJaIn0sbmVlZExpbmU6ITAsbm9Eb3Q6ITB9fX0seyJAcGxvdGx5L2QzIjo1OH1dLDY2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJjYWxjIn0sdHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicGVyY2VudCIsImNvbnN0YW50Iiwic3FydCIsImRhdGEiXSxlZGl0VHlwZToiY2FsYyJ9LHN5bW1ldHJpYzp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImNhbGMifSxhcnJheTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxhcnJheW1pbnVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHZhbHVlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifSx2YWx1ZW1pbnVzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifSx0cmFjZXJlZjp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJzdHlsZSJ9LHRyYWNlcmVmbWludXM6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToic3R5bGUifSxjb3B5X3lzdHlsZTp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InBsb3QifSxjb3B5X3pzdHlsZTp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InN0eWxlIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSx0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyLGVkaXRUeXBlOiJzdHlsZSJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMiLF9kZXByZWNhdGVkOntvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJzdHlsZSJ9fX19LHt9XSw2NjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vbGliIikscz10KCIuL2NvbXB1dGVfZXJyb3IiKTtmdW5jdGlvbiBsKHQsZSxyLGkpe3ZhciBsPWVbImVycm9yXyIraV18fHt9LGM9W107aWYobC52aXNpYmxlJiYtMSE9PVsibGluZWFyIiwibG9nIl0uaW5kZXhPZihyLnR5cGUpKXtmb3IodmFyIHU9cyhsKSxmPTA7Zjx0Lmxlbmd0aDtmKyspe3ZhciBoPXRbZl0scD1oLmk7aWYodm9pZCAwPT09cClwPWY7ZWxzZSBpZihudWxsPT09cCljb250aW51ZTt2YXIgZD1oW2ldO2lmKG4oci5jMmwoZCkpKXt2YXIgbT11KGQscCk7aWYobihtWzBdKSYmbihtWzFdKSl7dmFyIGc9aFtpKyJzIl09ZC1tWzBdLHY9aFtpKyJoIl09ZCttWzFdO2MucHVzaChnLHYpfX19dmFyIHk9ci5faWQseD1lLl9leHRyZW1lc1t5XSxiPWEuZmluZEV4dHJlbWVzKHIsYyxvLmV4dGVuZEZsYXQoe3RvemVybzp4Lm9wdHMudG96ZXJvfSx7cGFkZGVkOiEwfSkpO3gubWluPXgubWluLmNvbmNhdChiLm1pbikseC5tYXg9eC5tYXguY29uY2F0KGIubWF4KX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10LmNhbGNkYXRhLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxvPW5bMF0udHJhY2U7aWYoITA9PT1vLnZpc2libGUmJmkudHJhY2VJcyhvLCJlcnJvckJhcnNPSyIpKXt2YXIgcz1hLmdldEZyb21JZCh0LG8ueGF4aXMpLGM9YS5nZXRGcm9tSWQodCxvLnlheGlzKTtsKG4sbyxzLCJ4IiksbChuLG8sYywieSIpfX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2NvbXB1dGVfZXJyb3IiOjY2NSwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDY2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7cmV0dXJuInBlcmNlbnQiPT09dD9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5hYnModCplLzEwMCl9OiJjb25zdGFudCI9PT10P2Z1bmN0aW9uKCl7cmV0dXJuIE1hdGguYWJzKGUpfToic3FydCI9PT10P2Z1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTWF0aC5hYnModCkpfTp2b2lkIDB9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQudHlwZSxyPXQuc3ltbWV0cmljO2lmKCJkYXRhIj09PWUpe3ZhciBpPXQuYXJyYXl8fFtdO2lmKHIpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9K2lbZV07cmV0dXJuW3Iscl19O3ZhciBhPXQuYXJyYXltaW51c3x8W107cmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9K2lbZV0sbj0rYVtlXTtyZXR1cm4gaXNOYU4ocikmJmlzTmFOKG4pP1tOYU4sTmFOXTpbbnx8MCxyfHwwXX19dmFyIG89bihlLHQudmFsdWUpLHM9bihlLHQudmFsdWVtaW51cyk7cmV0dXJuIHJ8fHZvaWQgMD09PXQudmFsdWVtaW51cz9mdW5jdGlvbih0KXt2YXIgZT1vKHQpO3JldHVybltlLGVdfTpmdW5jdGlvbih0KXtyZXR1cm5bcyh0KSxvKHQpXX19fSx7fV0sNjY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikscz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7dmFyIGM9ImVycm9yXyIrbC5heGlzLHU9by5uZXdDb250YWluZXIoZSxjKSxmPXRbY118fHt9O2Z1bmN0aW9uIGgodCxlKXtyZXR1cm4gYS5jb2VyY2UoZix1LHMsdCxlKX1pZighMSE9PWgoInZpc2libGUiLHZvaWQgMCE9PWYuYXJyYXl8fHZvaWQgMCE9PWYudmFsdWV8fCJzcXJ0Ij09PWYudHlwZSkpe3ZhciBwPWgoInR5cGUiLCJhcnJheSJpbiBmPyJkYXRhIjoicGVyY2VudCIpLGQ9ITA7InNxcnQiIT09cCYmKGQ9aCgic3ltbWV0cmljIiwhKCgiZGF0YSI9PT1wPyJhcnJheW1pbnVzIjoidmFsdWVtaW51cyIpaW4gZikpKSwiZGF0YSI9PT1wPyhoKCJhcnJheSIpLGgoInRyYWNlcmVmIiksZHx8KGgoImFycmF5bWludXMiKSxoKCJ0cmFjZXJlZm1pbnVzIikpKToicGVyY2VudCIhPT1wJiYiY29uc3RhbnQiIT09cHx8KGgoInZhbHVlIiksZHx8aCgidmFsdWVtaW51cyIpKTt2YXIgbT0iY29weV8iK2wuaW5oZXJpdCsic3R5bGUiO2lmKGwuaW5oZXJpdCkoZVsiZXJyb3JfIitsLmluaGVyaXRdfHx7fSkudmlzaWJsZSYmaChtLCEoZi5jb2xvcnx8bihmLnRoaWNrbmVzcyl8fG4oZi53aWR0aCkpKTtsLmluaGVyaXQmJnVbbV18fChoKCJjb2xvciIsciksaCgidGhpY2tuZXNzIiksaCgid2lkdGgiLGkudHJhY2VJcyhlLCJnbDNkIik/MDo0KSl9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F0dHJpYnV0ZXMiOjY2MywiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDY2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxhPXQoIi4vYXR0cmlidXRlcyIpLG89e2Vycm9yX3g6bi5leHRlbmRGbGF0KHt9LGEpLGVycm9yX3k6bi5leHRlbmRGbGF0KHt9LGEpfTtkZWxldGUgby5lcnJvcl94LmNvcHlfenN0eWxlLGRlbGV0ZSBvLmVycm9yX3kuY29weV96c3R5bGUsZGVsZXRlIG8uZXJyb3JfeS5jb3B5X3lzdHlsZTt2YXIgcz17ZXJyb3JfeDpuLmV4dGVuZEZsYXQoe30sYSksZXJyb3JfeTpuLmV4dGVuZEZsYXQoe30sYSksZXJyb3JfejpuLmV4dGVuZEZsYXQoe30sYSl9O2RlbGV0ZSBzLmVycm9yX3guY29weV95c3R5bGUsZGVsZXRlIHMuZXJyb3JfeS5jb3B5X3lzdHlsZSxkZWxldGUgcy5lcnJvcl96LmNvcHlfeXN0eWxlLGRlbGV0ZSBzLmVycm9yX3ouY29weV96c3R5bGUsZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImVycm9yYmFycyIsc2NoZW1hOnt0cmFjZXM6e3NjYXR0ZXI6byxiYXI6byxoaXN0b2dyYW06byxzY2F0dGVyM2Q6aShzLCJjYWxjIiwibmVzdGVkIiksc2NhdHRlcmdsOmkobywiY2FsYyIsIm5lc3RlZCIpfX0sc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksbWFrZUNvbXB1dGVFcnJvcjp0KCIuL2NvbXB1dGVfZXJyb3IiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKSxob3ZlckluZm86ZnVuY3Rpb24odCxlLHIpeyhlLmVycm9yX3l8fHt9KS52aXNpYmxlJiYoci55ZXJyPXQueWgtdC55LGUuZXJyb3JfeS5zeW1tZXRyaWN8fChyLnllcnJuZWc9dC55LXQueXMpKTsoZS5lcnJvcl94fHx7fSkudmlzaWJsZSYmKHIueGVycj10LnhoLXQueCxlLmVycm9yX3guc3ltbWV0cmljfHwoci54ZXJybmVnPXQueC10LnhzKSl9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuL2F0dHJpYnV0ZXMiOjY2MywiLi9jYWxjIjo2NjQsIi4vY29tcHV0ZV9lcnJvciI6NjY1LCIuL2RlZmF1bHRzIjo2NjYsIi4vcGxvdCI6NjY4LCIuL3N0eWxlIjo2Njl9XSw2Njg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uL2RyYXdpbmciKSxvPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe3ZhciBsPXIueGF4aXMsYz1yLnlheGlzLHU9cyYmcy5kdXJhdGlvbj4wO2UuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIGYsaD1lWzBdLnRyYWNlLHA9aC5lcnJvcl94fHx7fSxkPWguZXJyb3JfeXx8e307aC5pZHMmJihmPWZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSk7dmFyIG09by5oYXNNYXJrZXJzKGgpJiZoLm1hcmtlci5tYXhkaXNwbGF5ZWQ+MDtkLnZpc2libGV8fHAudmlzaWJsZXx8KGU9W10pO3ZhciBnPW4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy5lcnJvcmJhciIpLmRhdGEoZSxmKTtpZihnLmV4aXQoKS5yZW1vdmUoKSxlLmxlbmd0aCl7cC52aXNpYmxlfHxnLnNlbGVjdEFsbCgicGF0aC54ZXJyb3IiKS5yZW1vdmUoKSxkLnZpc2libGV8fGcuc2VsZWN0QWxsKCJwYXRoLnllcnJvciIpLnJlbW92ZSgpLGcuc3R5bGUoIm9wYWNpdHkiLDEpO3ZhciB2PWcuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJlcnJvcmJhciIsITApO3UmJnYuc3R5bGUoIm9wYWNpdHkiLDApLnRyYW5zaXRpb24oKS5kdXJhdGlvbihzLmR1cmF0aW9uKS5zdHlsZSgib3BhY2l0eSIsMSksYS5zZXRDbGlwVXJsKGcsci5sYXllckNsaXBJZCx0KSxnLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLHI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXt4OmUuYzJwKHQueCkseTpyLmMycCh0LnkpfTt2b2lkIDAhPT10LnloJiYobi55aD1yLmMycCh0LnloKSxuLnlzPXIuYzJwKHQueXMpLGkobi55cyl8fChuLm5vWVM9ITAsbi55cz1yLmMycCh0LnlzLCEwKSkpO3ZvaWQgMCE9PXQueGgmJihuLnhoPWUuYzJwKHQueGgpLG4ueHM9ZS5jMnAodC54cyksaShuLnhzKXx8KG4ubm9YUz0hMCxuLnhzPWUuYzJwKHQueHMsITApKSk7cmV0dXJuIG59KHQsbCxjKTtpZighbXx8dC52aXMpe3ZhciBhLG89ZS5zZWxlY3QoInBhdGgueWVycm9yIik7aWYoZC52aXNpYmxlJiZpKHIueCkmJmkoci55aCkmJmkoci55cykpe3ZhciBmPWQud2lkdGg7YT0iTSIrKHIueC1mKSsiLCIrci55aCsiaCIrMipmKyJtLSIrZisiLDBWIityLnlzLHIubm9ZU3x8KGErPSJtLSIrZisiLDBoIisyKmYpLCFvLnNpemUoKT9vPWUuYXBwZW5kKCJwYXRoIikuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5jbGFzc2VkKCJ5ZXJyb3IiLCEwKTp1JiYobz1vLnRyYW5zaXRpb24oKS5kdXJhdGlvbihzLmR1cmF0aW9uKS5lYXNlKHMuZWFzaW5nKSksby5hdHRyKCJkIixhKX1lbHNlIG8ucmVtb3ZlKCk7dmFyIGg9ZS5zZWxlY3QoInBhdGgueGVycm9yIik7aWYocC52aXNpYmxlJiZpKHIueSkmJmkoci54aCkmJmkoci54cykpe3ZhciBnPShwLmNvcHlfeXN0eWxlP2Q6cCkud2lkdGg7YT0iTSIrci54aCsiLCIrKHIueS1nKSsidiIrMipnKyJtMCwtIitnKyJIIityLnhzLHIubm9YU3x8KGErPSJtMCwtIitnKyJ2IisyKmcpLCFoLnNpemUoKT9oPWUuYXBwZW5kKCJwYXRoIikuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5jbGFzc2VkKCJ4ZXJyb3IiLCEwKTp1JiYoaD1oLnRyYW5zaXRpb24oKS5kdXJhdGlvbihzLmR1cmF0aW9uKS5lYXNlKHMuZWFzaW5nKSksaC5hdHRyKCJkIixhKX1lbHNlIGgucmVtb3ZlKCl9fSkpfX0pKX19LHsiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4uL2RyYXdpbmciOjY2MSwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw2Njk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vY29sb3IiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dC5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ZS5lcnJvcl95fHx7fSxhPWUuZXJyb3JfeHx8e30sbz1uLnNlbGVjdCh0aGlzKTtvLnNlbGVjdEFsbCgicGF0aC55ZXJyb3IiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixyLnRoaWNrbmVzcysicHgiKS5jYWxsKGkuc3Ryb2tlLHIuY29sb3IpLGEuY29weV95c3R5bGUmJihhPXIpLG8uc2VsZWN0QWxsKCJwYXRoLnhlcnJvciIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGEudGhpY2tuZXNzKyJweCIpLmNhbGwoaS5zdHJva2UsYS5jb2xvcil9KSl9fSx7Ii4uL2NvbG9yIjo2MzksIkBwbG90bHkvZDMiOjU4fV0sNjcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLmhvdmVybGFiZWwsYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2hvdmVybGFiZWw6e2JnY29sb3I6YSh7fSxpLmJnY29sb3Ise2FycmF5T2s6ITB9KSxib3JkZXJjb2xvcjphKHt9LGkuYm9yZGVyY29sb3Ise2FycmF5T2s6ITB9KSxmb250Om4oe2FycmF5T2s6ITAsZWRpdFR5cGU6Im5vbmUifSksYWxpZ246YSh7fSxpLmFsaWduLHthcnJheU9rOiEwfSksbmFtZWxlbmd0aDphKHt9LGkubmFtZWxlbmd0aCx7YXJyYXlPazohMH0pLGVkaXRUeXBlOiJub25lIn19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo4NTYsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjY4MH1dLDY3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5Iik7ZnVuY3Rpb24gYSh0LGUscixpKXtpPWl8fG4uaWRlbnRpdHksQXJyYXkuaXNBcnJheSh0KSYmKGVbMF1bcl09aSh0KSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY2FsY2RhdGEscj10Ll9mdWxsTGF5b3V0O2Z1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBuLmNvZXJjZUhvdmVyaW5mbyh7aG92ZXJpbmZvOmV9LHtfbW9kdWxlOnQuX21vZHVsZX0scil9fWZvcih2YXIgcz0wO3M8ZS5sZW5ndGg7cysrKXt2YXIgbD1lW3NdLGM9bFswXS50cmFjZTtpZighaS50cmFjZUlzKGMsInBpZS1saWtlIikpe3ZhciB1PWkudHJhY2VJcyhjLCIyZE1hcCIpP2E6bi5maWxsQXJyYXk7dShjLmhvdmVyaW5mbyxsLCJoaSIsbyhjKSksYy5ob3ZlcnRlbXBsYXRlJiZ1KGMuaG92ZXJ0ZW1wbGF0ZSxsLCJodCIpLGMuaG92ZXJsYWJlbCYmKHUoYy5ob3ZlcmxhYmVsLmJnY29sb3IsbCwiaGJnIiksdShjLmhvdmVybGFiZWwuYm9yZGVyY29sb3IsbCwiaGJjIiksdShjLmhvdmVybGFiZWwuZm9udC5zaXplLGwsImh0cyIpLHUoYy5ob3ZlcmxhYmVsLmZvbnQuY29sb3IsbCwiaHRjIiksdShjLmhvdmVybGFiZWwuZm9udC5mYW1pbHksbCwiaHRmIiksdShjLmhvdmVybGFiZWwubmFtZWxlbmd0aCxsLCJobmwiKSx1KGMuaG92ZXJsYWJlbC5hbGlnbixsLCJodGEiKSl9fX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDR9XSw2NzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4vaG92ZXIiKS5ob3ZlcjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPW4uZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9ucyIsIm9uQ2xpY2siKSh0LHQuX2hvdmVyZGF0YSk7ZnVuY3Rpb24gbygpe3QuZW1pdCgicGxvdGx5X2NsaWNrIix7cG9pbnRzOnQuX2hvdmVyZGF0YSxldmVudDplfSl9dm9pZCAwIT09ciYmaSh0LGUsciwhMCksdC5faG92ZXJkYXRhJiZlJiZlLnRhcmdldCYmKGEmJmEudGhlbj9hLnRoZW4obyk6bygpLGUuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uJiZlLnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpKX19LHsiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9ob3ZlciI6Njc2fV0sNjczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17WUFOR0xFOjYwLEhPVkVSQVJST1dTSVpFOjYsSE9WRVJURVhUUEFEOjMsSE9WRVJGT05UU0laRToxMyxIT1ZFUkZPTlQ6IkFyaWFsLCBzYW5zLXNlcmlmIixIT1ZFUk1JTlRJTUU6NTAsSE9WRVJJRDoiLWhvdmVyIn19LHt9XSw2NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2F0dHJpYnV0ZXMiKSxhPXQoIi4vaG92ZXJsYWJlbF9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXt2YXIgcz1uLmV4dGVuZEZsYXQoe30sby5ob3ZlcmxhYmVsKTtlLmhvdmVydGVtcGxhdGUmJihzLm5hbWVsZW5ndGg9LTEpLGEodCxlLChmdW5jdGlvbihyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfSkscyl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2F0dHJpYnV0ZXMiOjY3MCwiLi9ob3ZlcmxhYmVsX2RlZmF1bHRzIjo2Nzd9XSw2NzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ci5nZXRTdWJwbG90PWZ1bmN0aW9uKHQpe3JldHVybiB0LnN1YnBsb3R8fHQueGF4aXMrdC55YXhpc3x8dC5nZW99LHIuaXNUcmFjZUluU3VicGxvdHM9ZnVuY3Rpb24odCxlKXtpZigic3Bsb20iPT09dC50eXBlKXtmb3IodmFyIG49dC54YXhlc3x8W10saT10LnlheGVzfHxbXSxhPTA7YTxuLmxlbmd0aDthKyspZm9yKHZhciBvPTA7bzxpLmxlbmd0aDtvKyspaWYoLTEhPT1lLmluZGV4T2YoblthXStpW29dKSlyZXR1cm4hMDtyZXR1cm4hMX1yZXR1cm4tMSE9PWUuaW5kZXhPZihyLmdldFN1YnBsb3QodCkpfSxyLmZsYXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KHQubGVuZ3RoKSxuPTA7bjx0Lmxlbmd0aDtuKyspcltuXT1lO3JldHVybiByfSxyLnAyYz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgpLG49MDtuPHQubGVuZ3RoO24rKylyW25dPXRbbl0ucDJjKGUpO3JldHVybiByfSxyLmdldERpc3RhbmNlRnVuY3Rpb249ZnVuY3Rpb24odCxlLG4saSl7cmV0dXJuImNsb3Nlc3QiPT09dD9pfHxyLnF1YWRyYXR1cmUoZSxuKToieCI9PT10LmNoYXJBdCgwKT9lOm59LHIuZ2V0Q2xvc2VzdD1mdW5jdGlvbih0LGUscil7aWYoITEhPT1yLmluZGV4KXIuaW5kZXg+PTAmJnIuaW5kZXg8dC5sZW5ndGg/ci5kaXN0YW5jZT0wOnIuaW5kZXg9ITE7ZWxzZSBmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9ZSh0W25dKTtpPD1yLmRpc3RhbmNlJiYoci5pbmRleD1uLHIuZGlzdGFuY2U9aSl9cmV0dXJuIHJ9LHIuaW5ib3g9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0KmU8MHx8MD09PXQ/cjoxLzB9LHIucXVhZHJhdHVyZT1mdW5jdGlvbih0LGUpe3JldHVybiBmdW5jdGlvbihyKXt2YXIgbj10KHIpLGk9ZShyKTtyZXR1cm4gTWF0aC5zcXJ0KG4qbitpKmkpfX0sci5tYWtlRXZlbnREYXRhPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT0iaW5kZXgiaW4gdD90LmluZGV4OnQucG9pbnROdW1iZXIsYT17ZGF0YTplLl9pbnB1dCxmdWxsRGF0YTplLGN1cnZlTnVtYmVyOmUuaW5kZXgscG9pbnROdW1iZXI6aX07aWYoZS5faW5kZXhUb1BvaW50cyl7dmFyIG89ZS5faW5kZXhUb1BvaW50c1tpXTsxPT09by5sZW5ndGg/YS5wb2ludEluZGV4PW9bMF06YS5wb2ludEluZGljZXM9b31lbHNlIGEucG9pbnRJbmRleD1pO3JldHVybiBlLl9tb2R1bGUuZXZlbnREYXRhP2E9ZS5fbW9kdWxlLmV2ZW50RGF0YShhLHQsZSxuLGkpOigieFZhbCJpbiB0P2EueD10LnhWYWw6IngiaW4gdCYmKGEueD10LngpLCJ5VmFsImluIHQ/YS55PXQueVZhbDoieSJpbiB0JiYoYS55PXQueSksdC54YSYmKGEueGF4aXM9dC54YSksdC55YSYmKGEueWF4aXM9dC55YSksdm9pZCAwIT09dC56TGFiZWxWYWwmJihhLno9dC56TGFiZWxWYWwpKSxyLmFwcGVuZEFycmF5UG9pbnRWYWx1ZShhLGUsaSksYX0sci5hcHBlbmRBcnJheVBvaW50VmFsdWU9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWUuX2FycmF5QXR0cnM7aWYoaSlmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGw9aVtzXSxjPWEobCk7aWYodm9pZCAwPT09dFtjXSl7dmFyIHU9byhuLm5lc3RlZFByb3BlcnR5KGUsbCkuZ2V0KCkscik7dm9pZCAwIT09dSYmKHRbY109dSl9fX0sci5hcHBlbmRBcnJheU11bHRpUG9pbnRWYWx1ZXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWUuX2FycmF5QXR0cnM7aWYoaSlmb3IodmFyIHM9MDtzPGkubGVuZ3RoO3MrKyl7dmFyIGw9aVtzXSxjPWEobCk7aWYodm9pZCAwPT09dFtjXSl7Zm9yKHZhciB1PW4ubmVzdGVkUHJvcGVydHkoZSxsKS5nZXQoKSxmPW5ldyBBcnJheShyLmxlbmd0aCksaD0wO2g8ci5sZW5ndGg7aCsrKWZbaF09byh1LHJbaF0pO3RbY109Zn19fTt2YXIgaT17aWRzOiJpZCIsbG9jYXRpb25zOiJsb2NhdGlvbiIsbGFiZWxzOiJsYWJlbCIsdmFsdWVzOiJ2YWx1ZSIsIm1hcmtlci5jb2xvcnMiOiJjb2xvciIscGFyZW50czoicGFyZW50In07ZnVuY3Rpb24gYSh0KXtyZXR1cm4gaVt0XXx8dH1mdW5jdGlvbiBvKHQsZSl7cmV0dXJuIEFycmF5LmlzQXJyYXkoZSk/QXJyYXkuaXNBcnJheSh0KSYmQXJyYXkuaXNBcnJheSh0W2VbMF1dKT90W2VbMF1dW2VbMV1dOnZvaWQgMDp0W2VdfXZhciBzPXt4OiEwLHk6ITB9LGw9eyJ4IHVuaWZpZWQiOiEwLCJ5IHVuaWZpZWQiOiEwfTtyLmlzVW5pZmllZEhvdmVyPWZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmISFsW3RdfSxyLmlzWFlob3Zlcj1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJiEhc1t0XX19LHsiLi4vLi4vbGliIjo3NzZ9XSw2NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoInRpbnljb2xvcjIiKSxvPXQoIi4uLy4uL2xpYiIpLHM9by5zdHJUcmFuc2xhdGUsbD1vLnN0clJvdGF0ZSxjPXQoIi4uLy4uL2xpYi9ldmVudHMiKSx1PXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGY9dCgiLi4vLi4vbGliL292ZXJyaWRlX2N1cnNvciIpLGg9dCgiLi4vZHJhd2luZyIpLHA9dCgiLi4vY29sb3IiKSxkPXQoIi4uL2RyYWdlbGVtZW50IiksbT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGc9dCgiLi4vLi4vcmVnaXN0cnkiKSx2PXQoIi4vaGVscGVycyIpLHk9dCgiLi9jb25zdGFudHMiKSx4PXQoIi4uL2xlZ2VuZC9kZWZhdWx0cyIpLGI9dCgiLi4vbGVnZW5kL2RyYXciKSxfPXkuWUFOR0xFLHc9TWF0aC5QSSpfLzE4MCxUPTEvTWF0aC5zaW4odyksaz1NYXRoLmNvcyh3KSxBPU1hdGguc2luKHcpLE09eS5IT1ZFUkFSUk9XU0laRSxTPXkuSE9WRVJURVhUUEFELEU9e2JveDohMCxvaGxjOiEwLHZpb2xpbjohMCxjYW5kbGVzdGljazohMH0sTD17c2NhdHRlcjohMCxzY2F0dGVyZ2w6ITAsc3Bsb206ITB9O2Z1bmN0aW9uIEModCl7cmV0dXJuW3QudHJhY2UuaW5kZXgsdC5pbmRleCx0LngwLHQueTAsdC5uYW1lLHQuYXR0cix0LnhhP3QueGEuX2lkOiIiLHQueWE/dC55YS5faWQ6IiJdLmpvaW4oIiwiKX1yLmhvdmVyPWZ1bmN0aW9uKHQsZSxyLGEpe3Q9by5nZXRHcmFwaERpdih0KSxvLnRocm90dGxlKHQuX2Z1bGxMYXlvdXQuX3VpZCt5LkhPVkVSSUQseS5IT1ZFUk1JTlRJTUUsKGZ1bmN0aW9uKCl7IWZ1bmN0aW9uKHQsZSxyLGEpe3J8fChyPSJ4eSIpO3ZhciBzPUFycmF5LmlzQXJyYXkocik/cjpbcl0sbD10Ll9mdWxsTGF5b3V0LHU9bC5fcGxvdHN8fFtdLGg9dVtyXSxtPWwuX2hhcygiY2FydGVzaWFuIik7aWYoaCl7dmFyIHk9aC5vdmVybGF5cy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmlkfSkpO3M9cy5jb25jYXQoeSl9Zm9yKHZhciB4PXMubGVuZ3RoLGI9bmV3IEFycmF5KHgpLF89bmV3IEFycmF5KHgpLHc9ITEsaz0wO2s8eDtrKyspe3ZhciBBPXNba107aWYodVtBXSl3PSEwLGJba109dVtBXS54YXhpcyxfW2tdPXVbQV0ueWF4aXM7ZWxzZXtpZighbFtBXXx8IWxbQV0uX3N1YnBsb3QpcmV0dXJuIHZvaWQgby53YXJuKCJVbnJlY29nbml6ZWQgc3VicGxvdDogIitBKTt2YXIgTT1sW0FdLl9zdWJwbG90O2Jba109TS54YXhpcyxfW2tdPU0ueWF4aXN9fXZhciBTPWUuaG92ZXJtb2RlfHxsLmhvdmVybW9kZTtTJiYhdyYmKFM9ImNsb3Nlc3QiKTtpZigtMT09PVsieCIsInkiLCJjbG9zZXN0IiwieCB1bmlmaWVkIiwieSB1bmlmaWVkIl0uaW5kZXhPZihTKXx8IXQuY2FsY2RhdGF8fHQucXVlcnlTZWxlY3RvcigiLnpvb21ib3giKXx8dC5fZHJhZ2dpbmcpcmV0dXJuIGQudW5ob3ZlclJhdyh0LGUpO3ZhciBQPWwuaG92ZXJkaXN0YW5jZTstMT09PVAmJihQPTEvMCk7dmFyIE89bC5zcGlrZWRpc3RhbmNlOy0xPT09TyYmKE89MS8wKTt2YXIgQixWLEgscSxHLFksVyxYLFosSixLLFEsJCx0dD1bXSxldD1bXSxydD17aExpbmVQb2ludDpudWxsLHZMaW5lUG9pbnQ6bnVsbH0sbnQ9ITE7aWYoQXJyYXkuaXNBcnJheShlKSlmb3IoUz0iYXJyYXkiLEg9MDtIPGUubGVuZ3RoO0grKykoRz10LmNhbGNkYXRhW2VbSF0uY3VydmVOdW1iZXJ8fDBdKSYmKFk9R1swXS50cmFjZSwic2tpcCIhPT1HWzBdLnRyYWNlLmhvdmVyaW5mbyYmKGV0LnB1c2goRyksImgiPT09WS5vcmllbnRhdGlvbiYmKG50PSEwKSkpO2Vsc2V7Zm9yKHE9MDtxPHQuY2FsY2RhdGEubGVuZ3RoO3ErKylHPXQuY2FsY2RhdGFbcV0sInNraXAiIT09KFk9R1swXS50cmFjZSkuaG92ZXJpbmZvJiZ2LmlzVHJhY2VJblN1YnBsb3RzKFkscykmJihldC5wdXNoKEcpLCJoIj09PVkub3JpZW50YXRpb24mJihudD0hMCkpO3ZhciBpdCxhdDtpZighZS50YXJnZXQpaXQ9InhweCJpbiBlP2UueHB4OmJbMF0uX2xlbmd0aC8yLGF0PSJ5cHgiaW4gZT9lLnlweDpfWzBdLl9sZW5ndGgvMjtlbHNle2lmKCExPT09Yy50cmlnZ2VySGFuZGxlcih0LCJwbG90bHlfYmVmb3JlaG92ZXIiLGUpKXJldHVybjt2YXIgb3Q9ZS5jb21wb3NlZFBhdGgmJmUuY29tcG9zZWRQYXRoKClbMF07b3R8fChvdD1lLnRhcmdldCk7dmFyIHN0PW90LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2l0PWUuY2xpZW50WC1zdC5sZWZ0LGF0PWUuY2xpZW50WS1zdC50b3AsbC5fY2FsY0ludmVyc2VUcmFuc2Zvcm0odCk7dmFyIGx0PW8uYXBwbHkzRFRyYW5zZm9ybShsLl9pbnZUcmFuc2Zvcm0pKGl0LGF0KTtpZihpdD1sdFswXSxhdD1sdFsxXSxpdDwwfHxpdD5iWzBdLl9sZW5ndGh8fGF0PDB8fGF0Pl9bMF0uX2xlbmd0aClyZXR1cm4gZC51bmhvdmVyUmF3KHQsZSl9aWYoZS5wb2ludGVyWD1pdCtiWzBdLl9vZmZzZXQsZS5wb2ludGVyWT1hdCtfWzBdLl9vZmZzZXQsQj0ieHZhbCJpbiBlP3YuZmxhdChzLGUueHZhbCk6di5wMmMoYixpdCksVj0ieXZhbCJpbiBlP3YuZmxhdChzLGUueXZhbCk6di5wMmMoXyxhdCksIWkoQlswXSl8fCFpKFZbMF0pKXJldHVybiBvLndhcm4oIkZ4LmhvdmVyIGZhaWxlZCIsZSx0KSxkLnVuaG92ZXJSYXcodCxlKX12YXIgY3Q9MS8wO2Z1bmN0aW9uIHV0KHQscil7Zm9yKHE9MDtxPGV0Lmxlbmd0aDtxKyspaWYoKEc9ZXRbcV0pJiZHWzBdJiZHWzBdLnRyYWNlJiYhMD09PShZPUdbMF0udHJhY2UpLnZpc2libGUmJjAhPT1ZLl9sZW5ndGgmJi0xPT09WyJjYXJwZXQiLCJjb250b3VyY2FycGV0Il0uaW5kZXhPZihZLl9tb2R1bGUubmFtZSkpe2lmKCJzcGxvbSI9PT1ZLnR5cGU/Vz1zW1g9MF06KFc9di5nZXRTdWJwbG90KFkpLFg9cy5pbmRleE9mKFcpKSxaPVMsdi5pc1VuaWZpZWRIb3ZlcihaKSYmKFo9Wi5jaGFyQXQoMCkpLFE9e2NkOkcsdHJhY2U6WSx4YTpiW1hdLHlhOl9bWF0sbWF4SG92ZXJEaXN0YW5jZTpQLG1heFNwaWtlRGlzdGFuY2U6TyxpbmRleDohMSxkaXN0YW5jZTpNYXRoLm1pbihjdCxQKSxzcGlrZURpc3RhbmNlOjEvMCx4U3Bpa2U6dm9pZCAwLHlTcGlrZTp2b2lkIDAsY29sb3I6cC5kZWZhdWx0TGluZSxuYW1lOlkubmFtZSx4MDp2b2lkIDAseDE6dm9pZCAwLHkwOnZvaWQgMCx5MTp2b2lkIDAseExhYmVsVmFsOnZvaWQgMCx5TGFiZWxWYWw6dm9pZCAwLHpMYWJlbFZhbDp2b2lkIDAsdGV4dDp2b2lkIDB9LGxbV10mJihRLnN1YnBsb3Q9bFtXXS5fc3VicGxvdCksbC5fc3Bsb21TY2VuZXMmJmwuX3NwbG9tU2NlbmVzW1kudWlkXSYmKFEuc2NlbmU9bC5fc3Bsb21TY2VuZXNbWS51aWRdKSwkPXR0Lmxlbmd0aCwiYXJyYXkiPT09Wil7dmFyIG49ZVtxXTsicG9pbnROdW1iZXIiaW4gbj8oUS5pbmRleD1uLnBvaW50TnVtYmVyLFo9ImNsb3Nlc3QiKTooWj0iIiwieHZhbCJpbiBuJiYoSj1uLnh2YWwsWj0ieCIpLCJ5dmFsImluIG4mJihLPW4ueXZhbCxaPVo/ImNsb3Nlc3QiOiJ5IikpfWVsc2Ugdm9pZCAwIT09dCYmdm9pZCAwIT09cj8oSj10LEs9cik6KEo9QltYXSxLPVZbWF0pO2lmKDAhPT1QKWlmKFkuX21vZHVsZSYmWS5fbW9kdWxlLmhvdmVyUG9pbnRzKXt2YXIgYT1ZLl9tb2R1bGUuaG92ZXJQb2ludHMoUSxKLEssWix7ZmluaXRlUmFuZ2U6ITAsaG92ZXJMYXllcjpsLl9ob3ZlcmxheWVyfSk7aWYoYSlmb3IodmFyIGMsdT0wO3U8YS5sZW5ndGg7dSsrKWM9YVt1XSxpKGMueDApJiZpKGMueTApJiZ0dC5wdXNoKEQoYyxTKSl9ZWxzZSBvLmxvZygiVW5yZWNvZ25pemVkIHRyYWNlIHR5cGUgaW4gaG92ZXI6IixZKTtpZigiY2xvc2VzdCI9PT1TJiZ0dC5sZW5ndGg+JCYmKHR0LnNwbGljZSgwLCQpLGN0PXR0WzBdLmRpc3RhbmNlKSxtJiYwIT09TyYmMD09PXR0Lmxlbmd0aCl7US5kaXN0YW5jZT1PLFEuaW5kZXg9ITE7dmFyIGY9WS5fbW9kdWxlLmhvdmVyUG9pbnRzKFEsSixLLCJjbG9zZXN0Iix7aG92ZXJMYXllcjpsLl9ob3ZlcmxheWVyfSk7aWYoZiYmKGY9Zi5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnNwaWtlRGlzdGFuY2U8PU99KSkpLGYmJmYubGVuZ3RoKXt2YXIgaCxkPWYuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC54YS5zaG93c3Bpa2VzJiYiaG92ZXJlZCBkYXRhIiE9PXQueGEuc3Bpa2VzbmFwfSkpO2lmKGQubGVuZ3RoKXt2YXIgZz1kWzBdO2koZy54MCkmJmkoZy55MCkmJihoPWh0KGcpLCghcnQudkxpbmVQb2ludHx8cnQudkxpbmVQb2ludC5zcGlrZURpc3RhbmNlPmguc3Bpa2VEaXN0YW5jZSkmJihydC52TGluZVBvaW50PWgpKX12YXIgeT1mLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQueWEuc2hvd3NwaWtlcyYmImhvdmVyZWQgZGF0YSIhPT10LnlhLnNwaWtlc25hcH0pKTtpZih5Lmxlbmd0aCl7dmFyIHg9eVswXTtpKHgueDApJiZpKHgueTApJiYoaD1odCh4KSwoIXJ0LmhMaW5lUG9pbnR8fHJ0LmhMaW5lUG9pbnQuc3Bpa2VEaXN0YW5jZT5oLnNwaWtlRGlzdGFuY2UpJiYocnQuaExpbmVQb2ludD1oKSl9fX19fWZ1bmN0aW9uIGZ0KHQsZSxyKXtmb3IodmFyIG4saT1udWxsLGE9MS8wLG89MDtvPHQubGVuZ3RoO28rKyluPXRbb10uc3Bpa2VEaXN0YW5jZSxyJiYwPT09byYmKG49LTEvMCksbjw9YSYmbjw9ZSYmKGk9dFtvXSxhPW4pO3JldHVybiBpfWZ1bmN0aW9uIGh0KHQpe3JldHVybiB0P3t4YTp0LnhhLHlhOnQueWEseDp2b2lkIDAhPT10LnhTcGlrZT90LnhTcGlrZToodC54MCt0LngxKS8yLHk6dm9pZCAwIT09dC55U3Bpa2U/dC55U3Bpa2U6KHQueTArdC55MSkvMixkaXN0YW5jZTp0LmRpc3RhbmNlLHNwaWtlRGlzdGFuY2U6dC5zcGlrZURpc3RhbmNlLGN1cnZlTnVtYmVyOnQudHJhY2UuaW5kZXgsY29sb3I6dC5jb2xvcixwb2ludE51bWJlcjp0LmluZGV4fTpudWxsfXV0KCk7dmFyIHB0PXtmdWxsTGF5b3V0OmwsY29udGFpbmVyOmwuX2hvdmVybGF5ZXIsZXZlbnQ6ZX0sZHQ9dC5fc3Bpa2Vwb2ludHMsbXQ9e3ZMaW5lUG9pbnQ6cnQudkxpbmVQb2ludCxoTGluZVBvaW50OnJ0LmhMaW5lUG9pbnR9O3QuX3NwaWtlcG9pbnRzPW10O3ZhciBndD1mdW5jdGlvbigpe3R0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZGlzdGFuY2UtZS5kaXN0YW5jZX0pKSx0dD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmNoYXJBdCgwKSxuPVtdLGk9W10sYT1bXSxvPTA7bzx0Lmxlbmd0aDtvKyspe3ZhciBzPXRbb107Zy50cmFjZUlzKHMudHJhY2UsImJhci1saWtlIil8fGcudHJhY2VJcyhzLnRyYWNlLCJib3gtdmlvbGluIik/YS5wdXNoKHMpOnMudHJhY2VbcisicGVyaW9kIl0/aS5wdXNoKHMpOm4ucHVzaChzKX1yZXR1cm4gbi5jb25jYXQoaSkuY29uY2F0KGEpfSh0dCxTKX07Z3QoKTt2YXIgdnQ9Uy5jaGFyQXQoMCkseXQ9KCJ4Ij09PXZ0fHwieSI9PT12dCkmJnR0WzBdJiZMW3R0WzBdLnRyYWNlLnR5cGVdO2lmKG0mJjAhPT1PJiYwIT09dHQubGVuZ3RoKXt2YXIgeHQ9ZnQodHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC55YS5zaG93c3Bpa2VzfSkpLE8seXQpO3J0LmhMaW5lUG9pbnQ9aHQoeHQpO3ZhciBidD1mdCh0dC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnhhLnNob3dzcGlrZXN9KSksTyx5dCk7cnQudkxpbmVQb2ludD1odChidCl9aWYoMD09PXR0Lmxlbmd0aCl7dmFyIF90PWQudW5ob3ZlclJhdyh0LGUpO3JldHVybiFtfHxudWxsPT09cnQuaExpbmVQb2ludCYmbnVsbD09PXJ0LnZMaW5lUG9pbnR8fEYoZHQpJiZSKHQscnQscHQpLF90fW0mJkYoZHQpJiZSKHQscnQscHQpO2lmKHYuaXNYWWhvdmVyKFopJiYwIT09dHRbMF0ubGVuZ3RoJiYic3Bsb20iIT09dHRbMF0udHJhY2UudHlwZSl7dmFyIHd0PXR0WzBdLFR0PSh0dD1FW3d0LnRyYWNlLnR5cGVdP3R0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhY2UuaW5kZXg9PT13dC50cmFjZS5pbmRleH0pKTpbd3RdKS5sZW5ndGgsa3Q9TigieCIsd3QsbCksQXQ9TigieSIsd3QsbCk7dXQoa3QsQXQpO3ZhciBNdCxTdD1bXSxFdD17fSxMdD0wLEN0PWZ1bmN0aW9uKHQpe3ZhciBlPUVbdC50cmFjZS50eXBlXT9DKHQpOnQudHJhY2UuaW5kZXg7aWYoRXRbZV0pe3ZhciByPUV0W2VdLTEsbj1TdFtyXTtyPjAmJk1hdGguYWJzKHQuZGlzdGFuY2UpPE1hdGguYWJzKG4uZGlzdGFuY2UpJiYoU3Rbcl09dCl9ZWxzZSBMdCsrLEV0W2VdPUx0LFN0LnB1c2godCl9O2ZvcihNdD0wO010PFR0O010KyspQ3QodHRbTXRdKTtmb3IoTXQ9dHQubGVuZ3RoLTE7TXQ+VHQtMTtNdC0tKUN0KHR0W010XSk7dHQ9U3QsZ3QoKX12YXIgUHQ9dC5faG92ZXJkYXRhLEl0PVtdLE90PWoodCksenQ9VSh0KTtmb3IoSD0wO0g8dHQubGVuZ3RoO0grKyl7dmFyIER0PXR0W0hdLFJ0PXYubWFrZUV2ZW50RGF0YShEdCxEdC50cmFjZSxEdC5jZCk7aWYoITEhPT1EdC5ob3ZlcnRlbXBsYXRlKXt2YXIgRnQ9ITE7RHQuY2RbRHQuaW5kZXhdJiZEdC5jZFtEdC5pbmRleF0uaHQmJihGdD1EdC5jZFtEdC5pbmRleF0uaHQpLER0LmhvdmVydGVtcGxhdGU9RnR8fER0LnRyYWNlLmhvdmVydGVtcGxhdGV8fCExfWlmKER0LnhhJiZEdC55YSl7dmFyIEJ0PUR0LngwK0R0LnhhLl9vZmZzZXQsTnQ9RHQueDErRHQueGEuX29mZnNldCxqdD1EdC55MCtEdC55YS5fb2Zmc2V0LFV0PUR0LnkxK0R0LnlhLl9vZmZzZXQsVnQ9TWF0aC5taW4oQnQsTnQpLEh0PU1hdGgubWF4KEJ0LE50KSxxdD1NYXRoLm1pbihqdCxVdCksR3Q9TWF0aC5tYXgoanQsVXQpO1J0LmJib3g9e3gwOlZ0K3p0LHgxOkh0K3p0LHkwOnF0K090LHkxOkd0K090fX1EdC5ldmVudERhdGE9W1J0XSxJdC5wdXNoKFJ0KX10Ll9ob3ZlcmRhdGE9SXQ7dmFyIFl0PSJ5Ij09PVMmJihldC5sZW5ndGg+MXx8dHQubGVuZ3RoPjEpfHwiY2xvc2VzdCI9PT1TJiZudCYmdHQubGVuZ3RoPjEsV3Q9cC5jb21iaW5lKGwucGxvdF9iZ2NvbG9yfHxwLmJhY2tncm91bmQsbC5wYXBlcl9iZ2NvbG9yKSxYdD1JKHR0LHtnZDp0LGhvdmVybW9kZTpTLHJvdGF0ZUxhYmVsczpZdCxiZ0NvbG9yOld0LGNvbnRhaW5lcjpsLl9ob3ZlcmxheWVyLG91dGVyQ29udGFpbmVyOmwuX3BhcGVyLm5vZGUoKSxjb21tb25MYWJlbE9wdHM6bC5ob3ZlcmxhYmVsLGhvdmVyZGlzdGFuY2U6bC5ob3ZlcmRpc3RhbmNlfSk7di5pc1VuaWZpZWRIb3ZlcihTKXx8KCFmdW5jdGlvbih0LGUscil7dmFyIG4saSxhLG8scyxsLGMsdT0wLGY9MSxoPXQuc2l6ZSgpLHA9bmV3IEFycmF5KGgpLGQ9MDtmdW5jdGlvbiBtKHQpe3ZhciBlPXRbMF0scj10W3QubGVuZ3RoLTFdO2lmKGk9ZS5wbWluLWUucG9zLWUuZHArZS5zaXplLGE9ci5wb3Mrci5kcCtyLnNpemUtZS5wbWF4LGk+LjAxKXtmb3Iocz10Lmxlbmd0aC0xO3M+PTA7cy0tKXRbc10uZHArPWk7bj0hMX1pZighKGE8LjAxKSl7aWYoaTwtLjAxKXtmb3Iocz10Lmxlbmd0aC0xO3M+PTA7cy0tKXRbc10uZHAtPWE7bj0hMX1pZihuKXt2YXIgYz0wO2ZvcihvPTA7bzx0Lmxlbmd0aDtvKyspKGw9dFtvXSkucG9zK2wuZHArbC5zaXplPmUucG1heCYmYysrO2ZvcihvPXQubGVuZ3RoLTE7bz49MCYmIShjPD0wKTtvLS0pKGw9dFtvXSkucG9zPmUucG1heC0xJiYobC5kZWw9ITAsYy0tKTtmb3Iobz0wO288dC5sZW5ndGgmJiEoYzw9MCk7bysrKWlmKChsPXRbb10pLnBvczxlLnBtaW4rMSlmb3IobC5kZWw9ITAsYy0tLGE9MipsLnNpemUscz10Lmxlbmd0aC0xO3M+PTA7cy0tKXRbc10uZHAtPWE7Zm9yKG89dC5sZW5ndGgtMTtvPj0wJiYhKGM8PTApO28tLSkobD10W29dKS5wb3MrbC5kcCtsLnNpemU+ZS5wbWF4JiYobC5kZWw9ITAsYy0tKX19fXQuZWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dFtlXSxpPSJ4Ij09PW4uX2lkLmNoYXJBdCgwKSxhPW4ucmFuZ2U7MD09PWQmJmEmJmFbMF0+YVsxXSE9PWkmJihmPS0xKSxwW2QrK109W3tkYXR1bTp0LHRyYWNlSW5kZXg6dC50cmFjZS5pbmRleCxkcDowLHBvczp0LnBvcyxwb3NyZWY6dC5wb3NyZWYsc2l6ZTp0LmJ5KihpP1Q6MSkvMixwbWluOjAscG1heDppP3Iud2lkdGg6ci5oZWlnaHR9XX0pKSxwLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0ucG9zcmVmLWVbMF0ucG9zcmVmfHxmKihlWzBdLnRyYWNlSW5kZXgtdFswXS50cmFjZUluZGV4KX0pKTtmb3IoOyFuJiZ1PD1oOyl7Zm9yKHUrKyxuPSEwLG89MDtvPHAubGVuZ3RoLTE7KXt2YXIgZz1wW29dLHY9cFtvKzFdLHk9Z1tnLmxlbmd0aC0xXSx4PXZbMF07aWYoKGk9eS5wb3MreS5kcCt5LnNpemUteC5wb3MteC5kcCt4LnNpemUpPi4wMSYmeS5wbWluPT09eC5wbWluJiZ5LnBtYXg9PT14LnBtYXgpe2ZvcihzPXYubGVuZ3RoLTE7cz49MDtzLS0pdltzXS5kcCs9aTtmb3IoZy5wdXNoLmFwcGx5KGcsdikscC5zcGxpY2UobysxLDEpLGM9MCxzPWcubGVuZ3RoLTE7cz49MDtzLS0pYys9Z1tzXS5kcDtmb3IoYT1jL2cubGVuZ3RoLHM9Zy5sZW5ndGgtMTtzPj0wO3MtLSlnW3NdLmRwLT1hO249ITF9ZWxzZSBvKyt9cC5mb3JFYWNoKG0pfWZvcihvPXAubGVuZ3RoLTE7bz49MDtvLS0pe3ZhciBiPXBbb107Zm9yKHM9Yi5sZW5ndGgtMTtzPj0wO3MtLSl7dmFyIF89YltzXSx3PV8uZGF0dW07dy5vZmZzZXQ9Xy5kcCx3LmRlbD1fLmRlbH19fShYdCxZdD8ieGEiOiJ5YSIsbCkseihYdCxZdCxsLl9pbnZTY2FsZVgsbC5faW52U2NhbGVZKSk7aWYoZS50YXJnZXQmJmUudGFyZ2V0LnRhZ05hbWUpe3ZhciBadD1nLmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMiLCJoYXNDbGlja1RvU2hvdyIpKHQsSXQpO2Yobi5zZWxlY3QoZS50YXJnZXQpLFp0PyJwb2ludGVyIjoiIil9aWYoIWUudGFyZ2V0fHxhfHwhZnVuY3Rpb24odCxlLHIpe2lmKCFyfHxyLmxlbmd0aCE9PXQuX2hvdmVyZGF0YS5sZW5ndGgpcmV0dXJuITA7Zm9yKHZhciBuPXIubGVuZ3RoLTE7bj49MDtuLS0pe3ZhciBpPXJbbl0sYT10Ll9ob3ZlcmRhdGFbbl07aWYoaS5jdXJ2ZU51bWJlciE9PWEuY3VydmVOdW1iZXJ8fFN0cmluZyhpLnBvaW50TnVtYmVyKSE9PVN0cmluZyhhLnBvaW50TnVtYmVyKXx8U3RyaW5nKGkucG9pbnROdW1iZXJzKSE9PVN0cmluZyhhLnBvaW50TnVtYmVycykpcmV0dXJuITB9cmV0dXJuITF9KHQsMCxQdCkpcmV0dXJuO1B0JiZ0LmVtaXQoInBsb3RseV91bmhvdmVyIix7ZXZlbnQ6ZSxwb2ludHM6UHR9KTt0LmVtaXQoInBsb3RseV9ob3ZlciIse2V2ZW50OmUscG9pbnRzOnQuX2hvdmVyZGF0YSx4YXhlczpiLHlheGVzOl8seHZhbHM6Qix5dmFsczpWfSl9KHQsZSxyLGEpfSkpfSxyLmxvbmVIb3Zlcj1mdW5jdGlvbih0LGUpe3ZhciByPSEwO0FycmF5LmlzQXJyYXkodCl8fChyPSExLHQ9W3RdKTt2YXIgaT1lLmdkLGE9aihpKSxvPVUoaSkscz1JKHQubWFwKChmdW5jdGlvbih0KXt2YXIgcj10Ll94MHx8dC54MHx8dC54fHwwLG49dC5feDF8fHQueDF8fHQueHx8MCxzPXQuX3kwfHx0LnkwfHx0Lnl8fDAsbD10Ll95MXx8dC55MXx8dC55fHwwLGM9dC5ldmVudERhdGE7aWYoYyl7dmFyIHU9TWF0aC5taW4ocixuKSxmPU1hdGgubWF4KHIsbiksaD1NYXRoLm1pbihzLGwpLGQ9TWF0aC5tYXgocyxsKSxtPXQudHJhY2U7aWYoZy50cmFjZUlzKG0sImdsM2QiKSl7dmFyIHY9aS5fZnVsbExheW91dFttLnNjZW5lXS5fc2NlbmUuY29udGFpbmVyLHk9di5vZmZzZXRMZWZ0LHg9di5vZmZzZXRUb3A7dSs9eSxmKz15LGgrPXgsZCs9eH1jLmJib3g9e3gwOnUrbyx4MTpmK28seTA6aCthLHkxOmQrYX0sZS5pbk91dF9iYm94JiZlLmluT3V0X2Jib3gucHVzaChjLmJib3gpfWVsc2UgYz0hMTtyZXR1cm57Y29sb3I6dC5jb2xvcnx8cC5kZWZhdWx0TGluZSx4MDp0LngwfHx0Lnh8fDAseDE6dC54MXx8dC54fHwwLHkwOnQueTB8fHQueXx8MCx5MTp0LnkxfHx0Lnl8fDAseExhYmVsOnQueExhYmVsLHlMYWJlbDp0LnlMYWJlbCx6TGFiZWw6dC56TGFiZWwsdGV4dDp0LnRleHQsbmFtZTp0Lm5hbWUsaWRlYWxBbGlnbjp0LmlkZWFsQWxpZ24sYm9yZGVyQ29sb3I6dC5ib3JkZXJDb2xvcixmb250RmFtaWx5OnQuZm9udEZhbWlseSxmb250U2l6ZTp0LmZvbnRTaXplLGZvbnRDb2xvcjp0LmZvbnRDb2xvcixuYW1lTGVuZ3RoOnQubmFtZUxlbmd0aCx0ZXh0QWxpZ246dC50ZXh0QWxpZ24sdHJhY2U6dC50cmFjZXx8e2luZGV4OjAsaG92ZXJpbmZvOiIifSx4YTp7X29mZnNldDowfSx5YTp7X29mZnNldDowfSxpbmRleDowLGhvdmVydGVtcGxhdGU6dC5ob3ZlcnRlbXBsYXRlfHwhMSxob3ZlcnRlbXBsYXRlTGFiZWxzOnQuaG92ZXJ0ZW1wbGF0ZUxhYmVsc3x8ITEsZXZlbnREYXRhOmN9fSkpLHtnZDppLGhvdmVybW9kZToiY2xvc2VzdCIscm90YXRlTGFiZWxzOiExLGJnQ29sb3I6ZS5iZ0NvbG9yfHxwLmJhY2tncm91bmQsY29udGFpbmVyOm4uc2VsZWN0KGUuY29udGFpbmVyKSxvdXRlckNvbnRhaW5lcjplLm91dGVyQ29udGFpbmVyfHxlLmNvbnRhaW5lcn0pLGw9MCxjPTA7cmV0dXJuIHMuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC55MC1lLnkwfSkpLmVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG49dC55MC10LmJ5LzI7dC5vZmZzZXQ9bi01PGw/bC1uKzU6MCxsPW4rdC5ieSt0Lm9mZnNldCxyPT09ZS5hbmNob3JJbmRleCYmKGM9dC5vZmZzZXQpfSkpLmVhY2goKGZ1bmN0aW9uKHQpe3Qub2Zmc2V0LT1jfSkpLHoocywhMSxpLl9mdWxsTGF5b3V0Ll9pbnZTY2FsZVgsaS5fZnVsbExheW91dC5faW52U2NhbGVZKSxyP3M6cy5ub2RlKCl9O3ZhciBQPS88ZXh0cmE+KFtcc1xTXSopPFwvZXh0cmE+LztmdW5jdGlvbiBJKHQsZSl7dmFyIHI9ZS5nZCxpPXIuX2Z1bGxMYXlvdXQsYT1lLmhvdmVybW9kZSxjPWUucm90YXRlTGFiZWxzLGY9ZS5iZ0NvbG9yLGQ9ZS5jb250YWluZXIsbT1lLm91dGVyQ29udGFpbmVyLHc9ZS5jb21tb25MYWJlbE9wdHN8fHt9LFQ9ZS5mb250RmFtaWx5fHx5LkhPVkVSRk9OVCxrPWUuZm9udFNpemV8fHkuSE9WRVJGT05UU0laRSxBPXRbMF0sRT1BLnhhLEw9QS55YSxQPWEuY2hhckF0KDApLEk9QVtQKyJMYWJlbCJdLHo9VihyLG0pLEQ9ei50b3AsUj16LndpZHRoLEY9ei5oZWlnaHQsQj12b2lkIDAhPT1JJiZBLmRpc3RhbmNlPD1lLmhvdmVyZGlzdGFuY2UmJigieCI9PT1hfHwieSI9PT1hKTtpZihCKXt2YXIgTixqLFU9ITA7Zm9yKE49MDtOPHQubGVuZ3RoO04rKylpZihVJiZ2b2lkIDA9PT10W05dLnpMYWJlbCYmKFU9ITEpLGo9dFtOXS5ob3ZlcmluZm98fHRbTl0udHJhY2UuaG92ZXJpbmZvKXt2YXIgSD1BcnJheS5pc0FycmF5KGopP2o6ai5zcGxpdCgiKyIpO2lmKC0xPT09SC5pbmRleE9mKCJhbGwiKSYmLTE9PT1ILmluZGV4T2YoYSkpe0I9ITE7YnJlYWt9fVUmJihCPSExKX12YXIgcT1kLnNlbGVjdEFsbCgiZy5heGlzdGV4dCIpLmRhdGEoQj9bMF06W10pO2lmKHEuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJheGlzdGV4dCIsITApLHEuZXhpdCgpLnJlbW92ZSgpLHEuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKSxlPW8uZW5zdXJlU2luZ2xlKHQsInBhdGgiLCIiLChmdW5jdGlvbih0KXt0LnN0eWxlKHsic3Ryb2tlLXdpZHRoIjoiMXB4In0pfSkpLGw9by5lbnN1cmVTaW5nbGUodCwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSksYz13LmJnY29sb3J8fHAuZGVmYXVsdExpbmUsZj13LmJvcmRlcmNvbG9yfHxwLmNvbnRyYXN0KGMpLGQ9cC5jb250cmFzdChjKSxtPXtmYW1pbHk6dy5mb250LmZhbWlseXx8VCxzaXplOncuZm9udC5zaXplfHxrLGNvbG9yOncuZm9udC5jb2xvcnx8ZH07ZS5zdHlsZSh7ZmlsbDpjLHN0cm9rZTpmfSksbC50ZXh0KEkpLmNhbGwoaC5mb250LG0pLmNhbGwodS5wb3NpdGlvblRleHQsMCwwKS5jYWxsKHUuY29udmVydFRvVHNwYW5zLHIpLHQuYXR0cigidHJhbnNmb3JtIiwiIik7dmFyIGcsdix5PVYocixsLm5vZGUoKSk7aWYoIngiPT09YSl7dmFyIHg9InRvcCI9PT1FLnNpZGU/Ii0iOiIiO2wuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5jYWxsKHUucG9zaXRpb25UZXh0LDAsInRvcCI9PT1FLnNpZGU/RC15LmJvdHRvbS1NLVM6RC15LnRvcCtNK1MpLGc9RS5fb2Zmc2V0KyhBLngwK0EueDEpLzIsdj1MLl9vZmZzZXQrKCJ0b3AiPT09RS5zaWRlPzA6TC5fbGVuZ3RoKTt2YXIgYj15LndpZHRoLzIrUztnPGI/KGc9YixlLmF0dHIoImQiLCJNLSIrKGItTSkrIiwwTC0iKyhiLTIqTSkrIiwiK3grTSsiSCIrKFMreS53aWR0aC8yKSsidiIreCsoMipTK3kuaGVpZ2h0KSsiSC0iK2IrIlYiK3grTSsiWiIpKTpnPmkud2lkdGgtYj8oZz1pLndpZHRoLWIsZS5hdHRyKCJkIiwiTSIrKGItTSkrIiwwTCIrYisiLCIreCtNKyJ2Iit4KygyKlMreS5oZWlnaHQpKyJILSIrYisiViIreCtNKyJIIisoYi0yKk0pKyJaIikpOmUuYXR0cigiZCIsIk0wLDBMIitNKyIsIit4K00rIkgiKyhTK3kud2lkdGgvMikrInYiK3grKDIqUyt5LmhlaWdodCkrIkgtIisoUyt5LndpZHRoLzIpKyJWIit4K00rIkgtIitNKyJaIil9ZWxzZXt2YXIgXyxDLFA7InJpZ2h0Ij09PUwuc2lkZT8oXz0ic3RhcnQiLEM9MSxQPSIiLGc9RS5fb2Zmc2V0K0UuX2xlbmd0aCk6KF89ImVuZCIsQz0tMSxQPSItIixnPUUuX29mZnNldCksdj1MLl9vZmZzZXQrKEEueTArQS55MSkvMixsLmF0dHIoInRleHQtYW5jaG9yIixfKSxlLmF0dHIoImQiLCJNMCwwTCIrUCtNKyIsIitNKyJWIisoUyt5LmhlaWdodC8yKSsiaCIrUCsoMipTK3kud2lkdGgpKyJWLSIrKFMreS5oZWlnaHQvMikrIkgiK1ArTSsiVi0iK00rIloiKTt2YXIgTyx6PXkuaGVpZ2h0LzIsUj1ELXkudG9wLXosRj0iY2xpcCIraS5fdWlkKyJjb21tb25sYWJlbCIrTC5faWQ7aWYoZzx5LndpZHRoKzIqUytNKXtPPSJNLSIrKE0rUykrIi0iK3orImgtIisoeS53aWR0aC1TKSsiViIreisiaCIrKHkud2lkdGgtUykrIloiO3ZhciBCPXkud2lkdGgtZytTO3UucG9zaXRpb25UZXh0KGwsQixSKSwiZW5kIj09PV8mJmwuc2VsZWN0QWxsKCJ0c3BhbiIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT1oLnRlc3Rlci5hcHBlbmQoInRleHQiKS50ZXh0KHQudGV4dCgpKS5jYWxsKGguZm9udCxtKSxpPVYocixlLm5vZGUoKSk7TWF0aC5yb3VuZChpLndpZHRoKTxNYXRoLnJvdW5kKHkud2lkdGgpJiZ0LmF0dHIoIngiLEItaS53aWR0aCksZS5yZW1vdmUoKX0pKX1lbHNlIHUucG9zaXRpb25UZXh0KGwsQyooUytNKSxSKSxPPW51bGw7dmFyIE49aS5fdG9wY2xpcHMuc2VsZWN0QWxsKCIjIitGKS5kYXRhKE8/WzBdOltdKTtOLmVudGVyKCkuYXBwZW5kKCJjbGlwUGF0aCIpLmF0dHIoImlkIixGKS5hcHBlbmQoInBhdGgiKSxOLmV4aXQoKS5yZW1vdmUoKSxOLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLE8pLGguc2V0Q2xpcFVybChsLE8/RjpudWxsLHIpfXQuYXR0cigidHJhbnNmb3JtIixzKGcsdikpfSkpLHYuaXNVbmlmaWVkSG92ZXIoYSkpe2lmKGQuc2VsZWN0QWxsKCJnLmhvdmVydGV4dCIpLnJlbW92ZSgpLDA9PT10Lmxlbmd0aClyZXR1cm47dmFyIEc9aS5ob3ZlcmxhYmVsLFk9Ry5mb250LFc9e3Nob3dsZWdlbmQ6ITAsbGVnZW5kOnt0aXRsZTp7dGV4dDpJLGZvbnQ6WX0sZm9udDpZLGJnY29sb3I6Ry5iZ2NvbG9yLGJvcmRlcmNvbG9yOkcuYm9yZGVyY29sb3IsYm9yZGVyd2lkdGg6MSx0cmFjZWdyb3VwZ2FwOjcsdHJhY2VvcmRlcjppLmxlZ2VuZD9pLmxlZ2VuZC50cmFjZW9yZGVyOnZvaWQgMCxvcmllbnRhdGlvbjoidiJ9fSxYPXt9O3goVyxYLHIuX2Z1bGxEYXRhKTt2YXIgWj1YLmxlZ2VuZDtaLmVudHJpZXM9W107Zm9yKHZhciBKPTA7Sjx0Lmxlbmd0aDtKKyspe3ZhciBLPU8odFtKXSwhMCxhLGksSSksUT1LWzBdLCQ9S1sxXSx0dD10W0pdO3R0Lm5hbWU9JCx0dC50ZXh0PSIiIT09JD8kKyIgOiAiK1E6UTt2YXIgZXQ9dHQuY2RbdHQuaW5kZXhdO2V0JiYoZXQubWMmJih0dC5tYz1ldC5tYyksZXQubWNjJiYodHQubWM9ZXQubWNjKSxldC5tbGMmJih0dC5tbGM9ZXQubWxjKSxldC5tbGNjJiYodHQubWxjPWV0Lm1sY2MpLGV0Lm1sdyYmKHR0Lm1sdz1ldC5tbHcpLGV0Lm1yYyYmKHR0Lm1yYz1ldC5tcmMpLGV0LmRpciYmKHR0LmRpcj1ldC5kaXIpKSx0dC5fZGlzdGluY3Q9ITAsWi5lbnRyaWVzLnB1c2goW3R0XSl9Wi5lbnRyaWVzLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0udHJhY2UuaW5kZXgtZVswXS50cmFjZS5pbmRleH0pKSxaLmxheWVyPWQsWi5faW5Ib3Zlcj0hMCxaLl9ncm91cFRpdGxlRm9udD1ZLGIocixaKTt2YXIgcnQsbnQsaXQsYXQsb3Q9ZC5zZWxlY3QoImcubGVnZW5kIiksc3Q9VihyLG90Lm5vZGUoKSksbHQ9c3Qud2lkdGgrMipTLGN0PXN0LmhlaWdodCsyKlMsdXQ9dFswXSxmdD0odXQueDArdXQueDEpLzIsaHQ9KHV0LnkwK3V0LnkxKS8yLHB0PSEoZy50cmFjZUlzKHV0LnRyYWNlLCJiYXItbGlrZSIpfHxnLnRyYWNlSXModXQudHJhY2UsImJveC12aW9saW4iKSk7InkiPT09UD9wdD8obnQ9aHQtUyxydD1odCtTKToobnQ9TWF0aC5taW4uYXBwbHkobnVsbCx0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKHQueTAsdC55MSl9KSkpLHJ0PU1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCh0LnkwLHQueTEpfSkpKSk6bnQ9cnQ9by5tZWFuKHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4odC55MCt0LnkxKS8yfSkpKS1jdC8yLCJ4Ij09PVA/cHQ/KGl0PWZ0K1MsYXQ9ZnQtUyk6KGl0PU1hdGgubWF4LmFwcGx5KG51bGwsdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCh0LngwLHQueDEpfSkpKSxhdD1NYXRoLm1pbi5hcHBseShudWxsLHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5taW4odC54MCx0LngxKX0pKSkpOml0PWF0PW8ubWVhbih0Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuKHQueDArdC54MSkvMn0pKSktbHQvMjt2YXIgZHQsbXQsZ3Q9RS5fb2Zmc2V0LHZ0PUwuX29mZnNldDtyZXR1cm4gYXQrPWd0LWx0LG50Kz12dC1jdCxkdD0oaXQrPWd0KStsdDxSJiZpdD49MD9pdDphdCtsdDxSJiZhdD49MD9hdDpndCtsdDxSP2d0Oml0LWZ0PGZ0LWF0K2x0P1ItbHQ6MCxkdCs9UyxtdD0ocnQrPXZ0KStjdDxGJiZydD49MD9ydDpudCtjdDxGJiZudD49MD9udDp2dCtjdDxGP3Z0OnJ0LWh0PGh0LW50K2N0P0YtY3Q6MCxtdCs9UyxvdC5hdHRyKCJ0cmFuc2Zvcm0iLHMoZHQtMSxtdC0xKSksb3R9dmFyIHl0PWQuc2VsZWN0QWxsKCJnLmhvdmVydGV4dCIpLmRhdGEodCwoZnVuY3Rpb24odCl7cmV0dXJuIEModCl9KSk7cmV0dXJuIHl0LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiaG92ZXJ0ZXh0IiwhMCkuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKTt0LmFwcGVuZCgicmVjdCIpLmNhbGwocC5maWxsLHAuYWRkT3BhY2l0eShmLC44KSksdC5hcHBlbmQoInRleHQiKS5jbGFzc2VkKCJuYW1lIiwhMCksdC5hcHBlbmQoInBhdGgiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwiMXB4IiksdC5hcHBlbmQoInRleHQiKS5jbGFzc2VkKCJudW1zIiwhMCkuY2FsbChoLmZvbnQsVCxrKX0pKSx5dC5leGl0KCkucmVtb3ZlKCkseXQuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykuYXR0cigidHJhbnNmb3JtIiwiIiksbz10LmNvbG9yO0FycmF5LmlzQXJyYXkobykmJihvPW9bdC5ldmVudERhdGFbMF0ucG9pbnROdW1iZXJdKTt2YXIgZD10LmJnY29sb3J8fG8sbT1wLmNvbWJpbmUocC5vcGFjaXR5KGQpP2Q6cC5kZWZhdWx0TGluZSxmKSxnPXAuY29tYmluZShwLm9wYWNpdHkobyk/bzpwLmRlZmF1bHRMaW5lLGYpLHY9dC5ib3JkZXJDb2xvcnx8cC5jb250cmFzdChtKSx5PU8odCxCLGEsaSxJLGUpLHg9eVswXSxiPXlbMV0sdz1lLnNlbGVjdCgidGV4dC5udW1zIikuY2FsbChoLmZvbnQsdC5mb250RmFtaWx5fHxULHQuZm9udFNpemV8fGssdC5mb250Q29sb3J8fHYpLnRleHQoeCkuYXR0cigiZGF0YS1ub3RleCIsMSkuY2FsbCh1LnBvc2l0aW9uVGV4dCwwLDApLmNhbGwodS5jb252ZXJ0VG9Uc3BhbnMsciksQT1lLnNlbGVjdCgidGV4dC5uYW1lIiksRT0wLEw9MDtpZihiJiZiIT09eCl7QS5jYWxsKGguZm9udCx0LmZvbnRGYW1pbHl8fFQsdC5mb250U2l6ZXx8ayxnKS50ZXh0KGIpLmF0dHIoImRhdGEtbm90ZXgiLDEpLmNhbGwodS5wb3NpdGlvblRleHQsMCwwKS5jYWxsKHUuY29udmVydFRvVHNwYW5zLHIpO3ZhciBDPVYocixBLm5vZGUoKSk7RT1DLndpZHRoKzIqUyxMPUMuaGVpZ2h0KzIqU31lbHNlIEEucmVtb3ZlKCksZS5zZWxlY3QoInJlY3QiKS5yZW1vdmUoKTtlLnNlbGVjdCgicGF0aCIpLnN0eWxlKHtmaWxsOm0sc3Ryb2tlOnZ9KTt2YXIgUD10LnhhLl9vZmZzZXQrKHQueDArdC54MSkvMix6PXQueWEuX29mZnNldCsodC55MCt0LnkxKS8yLE49TWF0aC5hYnModC54MS10LngwKSxqPU1hdGguYWJzKHQueTEtdC55MCksVT1WKHIsdy5ub2RlKCkpLEg9VS53aWR0aC9pLl9pbnZTY2FsZVgscT1VLmhlaWdodC9pLl9pbnZTY2FsZVk7dC50eTA9KEQtVS50b3ApL2kuX2ludlNjYWxlWSx0LmJ4PUgrMipTLHQuYnk9TWF0aC5tYXgocSsyKlMsTCksdC5hbmNob3I9InN0YXJ0Iix0LnR4d2lkdGg9SCx0LnR4MndpZHRoPUUsdC5vZmZzZXQ9MDt2YXIgRyxZLFc9KEgrTStTK0UpKmkuX2ludlNjYWxlWDtpZihjKXQucG9zPVAsRz16K2ovMitXPD1GLFk9ei1qLzItVz49MCwidG9wIiE9PXQuaWRlYWxBbGlnbiYmR3x8IVk/Rz8oeis9ai8yLHQuYW5jaG9yPSJzdGFydCIpOnQuYW5jaG9yPSJtaWRkbGUiOih6LT1qLzIsdC5hbmNob3I9ImVuZCIpO2Vsc2UgaWYodC5wb3M9eixHPVArTi8yK1c8PVIsWT1QLU4vMi1XPj0wLCJsZWZ0IiE9PXQuaWRlYWxBbGlnbiYmR3x8IVkpaWYoRylQKz1OLzIsdC5hbmNob3I9InN0YXJ0IjtlbHNle3QuYW5jaG9yPSJtaWRkbGUiO3ZhciBYPVcvMixaPVArWC1SLEo9UC1YO1o+MCYmKFAtPVopLEo8MCYmKFArPS1KKX1lbHNlIFAtPU4vMix0LmFuY2hvcj0iZW5kIjt3LmF0dHIoInRleHQtYW5jaG9yIix0LmFuY2hvciksRSYmQS5hdHRyKCJ0ZXh0LWFuY2hvciIsdC5hbmNob3IpLGUuYXR0cigidHJhbnNmb3JtIixzKFAseikrKGM/bChfKToiIikpfSkpLHl0fWZ1bmN0aW9uIE8odCxlLHIsbixpLGEpe3ZhciBzPSIiLGw9IiI7dm9pZCAwIT09dC5uYW1lT3ZlcnJpZGUmJih0Lm5hbWU9dC5uYW1lT3ZlcnJpZGUpLHQubmFtZSYmKHQudHJhY2UuX21ldGEmJih0Lm5hbWU9by50ZW1wbGF0ZVN0cmluZyh0Lm5hbWUsdC50cmFjZS5fbWV0YSkpLHM9Qih0Lm5hbWUsdC5uYW1lTGVuZ3RoKSk7dmFyIGM9ci5jaGFyQXQoMCksdT0ieCI9PT1jPyJ5IjoieCI7dm9pZCAwIT09dC56TGFiZWw/KHZvaWQgMCE9PXQueExhYmVsJiYobCs9Ing6ICIrdC54TGFiZWwrIjxicj4iKSx2b2lkIDAhPT10LnlMYWJlbCYmKGwrPSJ5OiAiK3QueUxhYmVsKyI8YnI+IiksImNob3JvcGxldGgiIT09dC50cmFjZS50eXBlJiYiY2hvcm9wbGV0aG1hcGJveCIhPT10LnRyYWNlLnR5cGUmJihsKz0obD8iejogIjoiIikrdC56TGFiZWwpKTplJiZ0W2MrIkxhYmVsIl09PT1pP2w9dFt1KyJMYWJlbCJdfHwiIjp2b2lkIDA9PT10LnhMYWJlbD92b2lkIDAhPT10LnlMYWJlbCYmInNjYXR0ZXJjYXJwZXQiIT09dC50cmFjZS50eXBlJiYobD10LnlMYWJlbCk6bD12b2lkIDA9PT10LnlMYWJlbD90LnhMYWJlbDoiKCIrdC54TGFiZWwrIiwgIit0LnlMYWJlbCsiKSIsIXQudGV4dCYmMCE9PXQudGV4dHx8QXJyYXkuaXNBcnJheSh0LnRleHQpfHwobCs9KGw/Ijxicj4iOiIiKSt0LnRleHQpLHZvaWQgMCE9PXQuZXh0cmFUZXh0JiYobCs9KGw/Ijxicj4iOiIiKSt0LmV4dHJhVGV4dCksYSYmIiI9PT1sJiYhdC5ob3ZlcnRlbXBsYXRlJiYoIiI9PT1zJiZhLnJlbW92ZSgpLGw9cyk7dmFyIGY9dC5ob3ZlcnRlbXBsYXRlfHwhMTtpZihmKXt2YXIgaD10LmhvdmVydGVtcGxhdGVMYWJlbHN8fHQ7dFtjKyJMYWJlbCJdIT09aSYmKGhbYysib3RoZXIiXT1oW2MrIlZhbCJdLGhbYysib3RoZXJMYWJlbCJdPWhbYysiTGFiZWwiXSksbD0obD1vLmhvdmVydGVtcGxhdGVTdHJpbmcoZixoLG4uX2QzbG9jYWxlLHQuZXZlbnREYXRhWzBdfHx7fSx0LnRyYWNlLl9tZXRhKSkucmVwbGFjZShQLChmdW5jdGlvbihlLHIpe3JldHVybiBzPUIocix0Lm5hbWVMZW5ndGgpLCIifSkpfXJldHVybltsLHNdfWZ1bmN0aW9uIHoodCxlLHIsaSl7dmFyIGE9ZnVuY3Rpb24odCl7cmV0dXJuIHQqcn0sbz1mdW5jdGlvbih0KXtyZXR1cm4gdCppfTt0LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2lmKHQuZGVsKXJldHVybiByLnJlbW92ZSgpO3ZhciBpPXIuc2VsZWN0KCJ0ZXh0Lm51bXMiKSxzPXQuYW5jaG9yLGw9ImVuZCI9PT1zPy0xOjEsYz17c3RhcnQ6MSxlbmQ6LTEsbWlkZGxlOjB9W3NdLGY9YyooTStTKSxwPWYrYyoodC50eHdpZHRoK1MpLGQ9MCxtPXQub2Zmc2V0LGc9Im1pZGRsZSI9PT1zO2cmJihmLT10LnR4MndpZHRoLzIscCs9dC50eHdpZHRoLzIrUyksZSYmKG0qPS1BLGQ9dC5vZmZzZXQqayksci5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixnPyJNLSIrYSh0LmJ4LzIrdC50eDJ3aWR0aC8yKSsiLCIrbyhtLXQuYnkvMikrImgiK2EodC5ieCkrInYiK28odC5ieSkrImgtIithKHQuYngpKyJaIjoiTTAsMEwiK2EobCpNK2QpKyIsIitvKE0rbSkrInYiK28odC5ieS8yLU0pKyJoIithKGwqdC5ieCkrInYtIitvKHQuYnkpKyJIIithKGwqTStkKSsiViIrbyhtLU0pKyJaIik7dmFyIHY9ZCtmLHk9bSt0LnR5MC10LmJ5LzIrUyx4PXQudGV4dEFsaWdufHwiYXV0byI7ImF1dG8iIT09eCYmKCJsZWZ0Ij09PXgmJiJzdGFydCIhPT1zPyhpLmF0dHIoInRleHQtYW5jaG9yIiwic3RhcnQiKSx2PWc/LXQuYngvMi10LnR4MndpZHRoLzIrUzotdC5ieC1TKToicmlnaHQiPT09eCYmImVuZCIhPT1zJiYoaS5hdHRyKCJ0ZXh0LWFuY2hvciIsImVuZCIpLHY9Zz90LmJ4LzItdC50eDJ3aWR0aC8yLVM6dC5ieCtTKSksaS5jYWxsKHUucG9zaXRpb25UZXh0LGEodiksbyh5KSksdC50eDJ3aWR0aCYmKHIuc2VsZWN0KCJ0ZXh0Lm5hbWUiKS5jYWxsKHUucG9zaXRpb25UZXh0LGEocCtjKlMrZCksbyhtK3QudHkwLXQuYnkvMitTKSksci5zZWxlY3QoInJlY3QiKS5jYWxsKGguc2V0UmVjdCxhKHArKGMtMSkqdC50eDJ3aWR0aC8yK2QpLG8obS10LmJ5LzItMSksYSh0LnR4MndpZHRoKSxvKHQuYnkrMikpKX0pKX1mdW5jdGlvbiBEKHQsZSl7dmFyIHI9dC5pbmRleCxuPXQudHJhY2V8fHt9LGE9dC5jZFswXSxzPXQuY2Rbcl18fHt9O2Z1bmN0aW9uIGwodCl7cmV0dXJuIHR8fGkodCkmJjA9PT10fXZhciBjPUFycmF5LmlzQXJyYXkocik/ZnVuY3Rpb24odCxlKXt2YXIgaT1vLmNhc3RPcHRpb24oYSxyLHQpO3JldHVybiBsKGkpP2k6by5leHRyYWN0T3B0aW9uKHt9LG4sIiIsZSl9OmZ1bmN0aW9uKHQsZSl7cmV0dXJuIG8uZXh0cmFjdE9wdGlvbihzLG4sdCxlKX07ZnVuY3Rpb24gdShlLHIsbil7dmFyIGk9YyhyLG4pO2woaSkmJih0W2VdPWkpfWlmKHUoImhvdmVyaW5mbyIsImhpIiwiaG92ZXJpbmZvIiksdSgiYmdjb2xvciIsImhiZyIsImhvdmVybGFiZWwuYmdjb2xvciIpLHUoImJvcmRlckNvbG9yIiwiaGJjIiwiaG92ZXJsYWJlbC5ib3JkZXJjb2xvciIpLHUoImZvbnRGYW1pbHkiLCJodGYiLCJob3ZlcmxhYmVsLmZvbnQuZmFtaWx5IiksdSgiZm9udFNpemUiLCJodHMiLCJob3ZlcmxhYmVsLmZvbnQuc2l6ZSIpLHUoImZvbnRDb2xvciIsImh0YyIsImhvdmVybGFiZWwuZm9udC5jb2xvciIpLHUoIm5hbWVMZW5ndGgiLCJobmwiLCJob3ZlcmxhYmVsLm5hbWVsZW5ndGgiKSx1KCJ0ZXh0QWxpZ24iLCJodGEiLCJob3ZlcmxhYmVsLmFsaWduIiksdC5wb3NyZWY9InkiPT09ZXx8ImNsb3Nlc3QiPT09ZSYmImgiPT09bi5vcmllbnRhdGlvbj90LnhhLl9vZmZzZXQrKHQueDArdC54MSkvMjp0LnlhLl9vZmZzZXQrKHQueTArdC55MSkvMix0LngwPW8uY29uc3RyYWluKHQueDAsMCx0LnhhLl9sZW5ndGgpLHQueDE9by5jb25zdHJhaW4odC54MSwwLHQueGEuX2xlbmd0aCksdC55MD1vLmNvbnN0cmFpbih0LnkwLDAsdC55YS5fbGVuZ3RoKSx0LnkxPW8uY29uc3RyYWluKHQueTEsMCx0LnlhLl9sZW5ndGgpLHZvaWQgMCE9PXQueExhYmVsVmFsJiYodC54TGFiZWw9InhMYWJlbCJpbiB0P3QueExhYmVsOm0uaG92ZXJMYWJlbFRleHQodC54YSx0LnhMYWJlbFZhbCxuLnhob3ZlcmZvcm1hdCksdC54VmFsPXQueGEuYzJkKHQueExhYmVsVmFsKSksdm9pZCAwIT09dC55TGFiZWxWYWwmJih0LnlMYWJlbD0ieUxhYmVsImluIHQ/dC55TGFiZWw6bS5ob3ZlckxhYmVsVGV4dCh0LnlhLHQueUxhYmVsVmFsLG4ueWhvdmVyZm9ybWF0KSx0LnlWYWw9dC55YS5jMmQodC55TGFiZWxWYWwpKSx2b2lkIDAhPT10LnpMYWJlbFZhbCYmdm9pZCAwPT09dC56TGFiZWwmJih0LnpMYWJlbD1TdHJpbmcodC56TGFiZWxWYWwpKSwhKGlzTmFOKHQueGVycil8fCJsb2ciPT09dC54YS50eXBlJiZ0LnhlcnI8PTApKXt2YXIgZj1tLnRpY2tUZXh0KHQueGEsdC54YS5jMmwodC54ZXJyKSwiaG92ZXIiKS50ZXh0O3ZvaWQgMCE9PXQueGVycm5lZz90LnhMYWJlbCs9IiArIitmKyIgLyAtIittLnRpY2tUZXh0KHQueGEsdC54YS5jMmwodC54ZXJybmVnKSwiaG92ZXIiKS50ZXh0OnQueExhYmVsKz0iIFx4YjEgIitmLCJ4Ij09PWUmJih0LmRpc3RhbmNlKz0xKX1pZighKGlzTmFOKHQueWVycil8fCJsb2ciPT09dC55YS50eXBlJiZ0LnllcnI8PTApKXt2YXIgaD1tLnRpY2tUZXh0KHQueWEsdC55YS5jMmwodC55ZXJyKSwiaG92ZXIiKS50ZXh0O3ZvaWQgMCE9PXQueWVycm5lZz90LnlMYWJlbCs9IiArIitoKyIgLyAtIittLnRpY2tUZXh0KHQueWEsdC55YS5jMmwodC55ZXJybmVnKSwiaG92ZXIiKS50ZXh0OnQueUxhYmVsKz0iIFx4YjEgIitoLCJ5Ij09PWUmJih0LmRpc3RhbmNlKz0xKX12YXIgcD10LmhvdmVyaW5mb3x8dC50cmFjZS5ob3ZlcmluZm87cmV0dXJuIHAmJiJhbGwiIT09cCYmKC0xPT09KHA9QXJyYXkuaXNBcnJheShwKT9wOnAuc3BsaXQoIisiKSkuaW5kZXhPZigieCIpJiYodC54TGFiZWw9dm9pZCAwKSwtMT09PXAuaW5kZXhPZigieSIpJiYodC55TGFiZWw9dm9pZCAwKSwtMT09PXAuaW5kZXhPZigieiIpJiYodC56TGFiZWw9dm9pZCAwKSwtMT09PXAuaW5kZXhPZigidGV4dCIpJiYodC50ZXh0PXZvaWQgMCksLTE9PT1wLmluZGV4T2YoIm5hbWUiKSYmKHQubmFtZT12b2lkIDApKSx0fWZ1bmN0aW9uIFIodCxlLHIpe3ZhciBuLGksbz1yLmNvbnRhaW5lcixzPXIuZnVsbExheW91dCxsPXMuX3NpemUsYz1yLmV2ZW50LHU9ISFlLmhMaW5lUG9pbnQsZj0hIWUudkxpbmVQb2ludDtpZihvLnNlbGVjdEFsbCgiLnNwaWtlbGluZSIpLnJlbW92ZSgpLGZ8fHUpe3ZhciBkPXAuY29tYmluZShzLnBsb3RfYmdjb2xvcixzLnBhcGVyX2JnY29sb3IpO2lmKHUpe3ZhciBnLHYseT1lLmhMaW5lUG9pbnQ7bj15JiZ5LnhhLCJjdXJzb3IiPT09KGk9eSYmeS55YSkuc3Bpa2VzbmFwPyhnPWMucG9pbnRlclgsdj1jLnBvaW50ZXJZKTooZz1uLl9vZmZzZXQreS54LHY9aS5fb2Zmc2V0K3kueSk7dmFyIHgsYixfPWEucmVhZGFiaWxpdHkoeS5jb2xvcixkKTwxLjU/cC5jb250cmFzdChkKTp5LmNvbG9yLHc9aS5zcGlrZW1vZGUsVD1pLnNwaWtldGhpY2tuZXNzLGs9aS5zcGlrZWNvbG9yfHxfLEE9bS5nZXRQeFBvc2l0aW9uKHQsaSk7aWYoLTEhPT13LmluZGV4T2YoInRvYXhpcyIpfHwtMSE9PXcuaW5kZXhPZigiYWNyb3NzIikpe2lmKC0xIT09dy5pbmRleE9mKCJ0b2F4aXMiKSYmKHg9QSxiPWcpLC0xIT09dy5pbmRleE9mKCJhY3Jvc3MiKSl7dmFyIE09aS5fY291bnRlckRvbWFpbk1pbixTPWkuX2NvdW50ZXJEb21haW5NYXg7ImZyZWUiPT09aS5hbmNob3ImJihNPU1hdGgubWluKE0saS5wb3NpdGlvbiksUz1NYXRoLm1heChTLGkucG9zaXRpb24pKSx4PWwubCtNKmwudyxiPWwubCtTKmwud31vLmluc2VydCgibGluZSIsIjpmaXJzdC1jaGlsZCIpLmF0dHIoe3gxOngseDI6Yix5MTp2LHkyOnYsInN0cm9rZS13aWR0aCI6VCxzdHJva2U6aywic3Ryb2tlLWRhc2hhcnJheSI6aC5kYXNoU3R5bGUoaS5zcGlrZWRhc2gsVCl9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKS5jbGFzc2VkKCJjcmlzcCIsITApLG8uaW5zZXJ0KCJsaW5lIiwiOmZpcnN0LWNoaWxkIikuYXR0cih7eDE6eCx4MjpiLHkxOnYseTI6diwic3Ryb2tlLXdpZHRoIjpUKzIsc3Ryb2tlOmR9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKS5jbGFzc2VkKCJjcmlzcCIsITApfS0xIT09dy5pbmRleE9mKCJtYXJrZXIiKSYmby5pbnNlcnQoImNpcmNsZSIsIjpmaXJzdC1jaGlsZCIpLmF0dHIoe2N4OkErKCJyaWdodCIhPT1pLnNpZGU/VDotVCksY3k6dixyOlQsZmlsbDprfSkuY2xhc3NlZCgic3Bpa2VsaW5lIiwhMCl9aWYoZil7dmFyIEUsTCxDPWUudkxpbmVQb2ludDtuPUMmJkMueGEsaT1DJiZDLnlhLCJjdXJzb3IiPT09bi5zcGlrZXNuYXA/KEU9Yy5wb2ludGVyWCxMPWMucG9pbnRlclkpOihFPW4uX29mZnNldCtDLngsTD1pLl9vZmZzZXQrQy55KTt2YXIgUCxJLE89YS5yZWFkYWJpbGl0eShDLmNvbG9yLGQpPDEuNT9wLmNvbnRyYXN0KGQpOkMuY29sb3Isej1uLnNwaWtlbW9kZSxEPW4uc3Bpa2V0aGlja25lc3MsUj1uLnNwaWtlY29sb3J8fE8sRj1tLmdldFB4UG9zaXRpb24odCxuKTtpZigtMSE9PXouaW5kZXhPZigidG9heGlzIil8fC0xIT09ei5pbmRleE9mKCJhY3Jvc3MiKSl7aWYoLTEhPT16LmluZGV4T2YoInRvYXhpcyIpJiYoUD1GLEk9TCksLTEhPT16LmluZGV4T2YoImFjcm9zcyIpKXt2YXIgQj1uLl9jb3VudGVyRG9tYWluTWluLE49bi5fY291bnRlckRvbWFpbk1heDsiZnJlZSI9PT1uLmFuY2hvciYmKEI9TWF0aC5taW4oQixuLnBvc2l0aW9uKSxOPU1hdGgubWF4KE4sbi5wb3NpdGlvbikpLFA9bC50KygxLU4pKmwuaCxJPWwudCsoMS1CKSpsLmh9by5pbnNlcnQoImxpbmUiLCI6Zmlyc3QtY2hpbGQiKS5hdHRyKHt4MTpFLHgyOkUseTE6UCx5MjpJLCJzdHJva2Utd2lkdGgiOkQsc3Ryb2tlOlIsInN0cm9rZS1kYXNoYXJyYXkiOmguZGFzaFN0eWxlKG4uc3Bpa2VkYXNoLEQpfSkuY2xhc3NlZCgic3Bpa2VsaW5lIiwhMCkuY2xhc3NlZCgiY3Jpc3AiLCEwKSxvLmluc2VydCgibGluZSIsIjpmaXJzdC1jaGlsZCIpLmF0dHIoe3gxOkUseDI6RSx5MTpQLHkyOkksInN0cm9rZS13aWR0aCI6RCsyLHN0cm9rZTpkfSkuY2xhc3NlZCgic3Bpa2VsaW5lIiwhMCkuY2xhc3NlZCgiY3Jpc3AiLCEwKX0tMSE9PXouaW5kZXhPZigibWFya2VyIikmJm8uaW5zZXJ0KCJjaXJjbGUiLCI6Zmlyc3QtY2hpbGQiKS5hdHRyKHtjeDpFLGN5OkYtKCJ0b3AiIT09bi5zaWRlP0Q6LUQpLHI6RCxmaWxsOlJ9KS5jbGFzc2VkKCJzcGlrZWxpbmUiLCEwKX19fWZ1bmN0aW9uIEYodCxlKXtyZXR1cm4hZXx8KGUudkxpbmVQb2ludCE9PXQuX3NwaWtlcG9pbnRzLnZMaW5lUG9pbnR8fGUuaExpbmVQb2ludCE9PXQuX3NwaWtlcG9pbnRzLmhMaW5lUG9pbnQpfWZ1bmN0aW9uIEIodCxlKXtyZXR1cm4gdS5wbGFpblRleHQodHx8IiIse2xlbjplLGFsbG93ZWRUYWdzOlsiYnIiLCJzdWIiLCJzdXAiLCJiIiwiaSIsImVtIl19KX1mdW5jdGlvbiBOKHQsZSxyKXt2YXIgbj1lW3QrImEiXSxpPWVbdCsiVmFsIl0sYT1lLmNkWzBdO2lmKCJjYXRlZ29yeSI9PT1uLnR5cGUpaT1uLl9jYXRlZ29yaWVzTWFwW2ldO2Vsc2UgaWYoImRhdGUiPT09bi50eXBlKXt2YXIgbz1lLnRyYWNlW3QrInBlcmlvZGFsaWdubWVudCJdO2lmKG8pe3ZhciBzPWUuY2RbZS5pbmRleF0sbD1zW3QrIlN0YXJ0Il07dm9pZCAwPT09bCYmKGw9c1t0XSk7dmFyIGM9c1t0KyJFbmQiXTt2b2lkIDA9PT1jJiYoYz1zW3RdKTt2YXIgdT1jLWw7ImVuZCI9PT1vP2krPXU6Im1pZGRsZSI9PT1vJiYoaSs9dS8yKX1pPW4uZDJjKGkpfXJldHVybiBhJiZhLnQmJmEudC5wb3NMZXR0ZXI9PT1uLl9pZCYmKCJncm91cCIhPT1yLmJveG1vZGUmJiJncm91cCIhPT1yLnZpb2xpbm1vZGV8fChpKz1hLnQuZFBvcykpLGl9ZnVuY3Rpb24gaih0KXtyZXR1cm4gdC5vZmZzZXRUb3ArdC5jbGllbnRUb3B9ZnVuY3Rpb24gVSh0KXtyZXR1cm4gdC5vZmZzZXRMZWZ0K3QuY2xpZW50TGVmdH1mdW5jdGlvbiBWKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxuPWUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksaT1uLngsYT1uLnkscz1pK24ud2lkdGgsbD1hK24uaGVpZ2h0LGM9by5hcHBseTNEVHJhbnNmb3JtKHIuX2ludlRyYW5zZm9ybSkoaSxhKSx1PW8uYXBwbHkzRFRyYW5zZm9ybShyLl9pbnZUcmFuc2Zvcm0pKHMsbCksZj1jWzBdLGg9Y1sxXSxwPXVbMF0sZD11WzFdO3JldHVybnt4OmYseTpoLHdpZHRoOnAtZixoZWlnaHQ6ZC1oLHRvcDpNYXRoLm1pbihoLGQpLGxlZnQ6TWF0aC5taW4oZixwKSxyaWdodDpNYXRoLm1heChmLHApLGJvdHRvbTpNYXRoLm1heChoLGQpfX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9ldmVudHMiOjc2NSwiLi4vLi4vbGliL292ZXJyaWRlX2N1cnNvciI6Nzg3LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vY29sb3IiOjYzOSwiLi4vZHJhZ2VsZW1lbnQiOjY1OCwiLi4vZHJhd2luZyI6NjYxLCIuLi9sZWdlbmQvZGVmYXVsdHMiOjY5MSwiLi4vbGVnZW5kL2RyYXciOjY5MiwiLi9jb25zdGFudHMiOjY3MywiLi9oZWxwZXJzIjo2NzUsIkBwbG90bHkvZDMiOjU4LCJmYXN0LWlzbnVtZXJpYyI6MjQyLHRpbnljb2xvcjI6NTcyfV0sNjc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vY29sb3IiKSxhPXQoIi4vaGVscGVycyIpLmlzVW5pZmllZEhvdmVyO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHQpe28uZm9udFt0XXx8KG8uZm9udFt0XT1lLmxlZ2VuZD9lLmxlZ2VuZC5mb250W3RdOmUuZm9udFt0XSl9bz1vfHx7fSxlJiZhKGUuaG92ZXJtb2RlKSYmKG8uZm9udHx8KG8uZm9udD17fSkscygic2l6ZSIpLHMoImZhbWlseSIpLHMoImNvbG9yIiksZS5sZWdlbmQ/KG8uYmdjb2xvcnx8KG8uYmdjb2xvcj1pLmNvbWJpbmUoZS5sZWdlbmQuYmdjb2xvcixlLnBhcGVyX2JnY29sb3IpKSxvLmJvcmRlcmNvbG9yfHwoby5ib3JkZXJjb2xvcj1lLmxlZ2VuZC5ib3JkZXJjb2xvcikpOm8uYmdjb2xvcnx8KG8uYmdjb2xvcj1lLnBhcGVyX2JnY29sb3IpKSxyKCJob3ZlcmxhYmVsLmJnY29sb3IiLG8uYmdjb2xvcikscigiaG92ZXJsYWJlbC5ib3JkZXJjb2xvciIsby5ib3JkZXJjb2xvcikscigiaG92ZXJsYWJlbC5uYW1lbGVuZ3RoIixvLm5hbWVsZW5ndGgpLG4uY29lcmNlRm9udChyLCJob3ZlcmxhYmVsLmZvbnQiLG8uZm9udCkscigiaG92ZXJsYWJlbC5hbGlnbiIsby5hbGlnbil9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9jb2xvciI6NjM5LCIuL2hlbHBlcnMiOjY3NX1dLDY3ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIHZvaWQgMCE9PWVbcl0/ZVtyXTpuLmNvZXJjZSh0LGUsaSxyLGEpfXJldHVybiByKCJjbGlja21vZGUiKSxyKCJob3Zlcm1vZGUiKX19LHsiLi4vLi4vbGliIjo3NzYsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjY4MH1dLDY3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2RyYWdlbGVtZW50Iiksbz10KCIuL2hlbHBlcnMiKSxzPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxsPXQoIi4vaG92ZXIiKTtlLmV4cG9ydHM9e21vZHVsZVR5cGU6ImNvbXBvbmVudCIsbmFtZToiZngiLGNvbnN0YW50czp0KCIuL2NvbnN0YW50cyIpLHNjaGVtYTp7bGF5b3V0OnN9LGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczpzLHN1cHBseUxheW91dEdsb2JhbERlZmF1bHRzOnQoIi4vbGF5b3V0X2dsb2JhbF9kZWZhdWx0cyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksZ2V0RGlzdGFuY2VGdW5jdGlvbjpvLmdldERpc3RhbmNlRnVuY3Rpb24sZ2V0Q2xvc2VzdDpvLmdldENsb3Nlc3QsaW5ib3g6by5pbmJveCxxdWFkcmF0dXJlOm8ucXVhZHJhdHVyZSxhcHBlbmRBcnJheVBvaW50VmFsdWU6by5hcHBlbmRBcnJheVBvaW50VmFsdWUsY2FzdEhvdmVyT3B0aW9uOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaS5jYXN0T3B0aW9uKHQsZSwiaG92ZXJsYWJlbC4iK3IpfSxjYXN0SG92ZXJpbmZvOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaS5jYXN0T3B0aW9uKHQsciwiaG92ZXJpbmZvIiwoZnVuY3Rpb24ocil7cmV0dXJuIGkuY29lcmNlSG92ZXJpbmZvKHtob3ZlcmluZm86cn0se19tb2R1bGU6dC5fbW9kdWxlfSxlKX0pKX0saG92ZXI6bC5ob3Zlcix1bmhvdmVyOmEudW5ob3Zlcixsb25lSG92ZXI6bC5sb25lSG92ZXIsbG9uZVVuaG92ZXI6ZnVuY3Rpb24odCl7dmFyIGU9aS5pc0QzU2VsZWN0aW9uKHQpP3Q6bi5zZWxlY3QodCk7ZS5zZWxlY3RBbGwoImcuaG92ZXJ0ZXh0IikucmVtb3ZlKCksZS5zZWxlY3RBbGwoIi5zcGlrZWxpbmUiKS5yZW1vdmUoKX0sY2xpY2s6dCgiLi9jbGljayIpfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vZHJhZ2VsZW1lbnQiOjY1OCwiLi9hdHRyaWJ1dGVzIjo2NzAsIi4vY2FsYyI6NjcxLCIuL2NsaWNrIjo2NzIsIi4vY29uc3RhbnRzIjo2NzMsIi4vZGVmYXVsdHMiOjY3NCwiLi9oZWxwZXJzIjo2NzUsIi4vaG92ZXIiOjY3NiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjgwLCIuL2xheW91dF9kZWZhdWx0cyI6NjgxLCIuL2xheW91dF9nbG9iYWxfZGVmYXVsdHMiOjY4MiwiQHBsb3RseS9kMyI6NTh9XSw2ODA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKSxpPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpKHtlZGl0VHlwZToibm9uZSJ9KTtpLmZhbWlseS5kZmx0PW4uSE9WRVJGT05ULGkuc2l6ZS5kZmx0PW4uSE9WRVJGT05UU0laRSxlLmV4cG9ydHM9e2NsaWNrbW9kZTp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsiZXZlbnQiLCJzZWxlY3QiXSxkZmx0OiJldmVudCIsZWRpdFR5cGU6InBsb3QiLGV4dHJhczpbIm5vbmUiXX0sZHJhZ21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInpvb20iLCJwYW4iLCJzZWxlY3QiLCJsYXNzbyIsImRyYXdjbG9zZWRwYXRoIiwiZHJhd29wZW5wYXRoIiwiZHJhd2xpbmUiLCJkcmF3cmVjdCIsImRyYXdjaXJjbGUiLCJvcmJpdCIsInR1cm50YWJsZSIsITFdLGRmbHQ6Inpvb20iLGVkaXRUeXBlOiJtb2RlYmFyIn0saG92ZXJtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ4IiwieSIsImNsb3Nlc3QiLCExLCJ4IHVuaWZpZWQiLCJ5IHVuaWZpZWQiXSxkZmx0OiJjbG9zZXN0IixlZGl0VHlwZToibW9kZWJhciJ9LGhvdmVyZGlzdGFuY2U6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjotMSxkZmx0OjIwLGVkaXRUeXBlOiJub25lIn0sc3Bpa2VkaXN0YW5jZTp7dmFsVHlwZToiaW50ZWdlciIsbWluOi0xLGRmbHQ6LTEsZWRpdFR5cGU6Im5vbmUifSxob3ZlcmxhYmVsOntiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6Im5vbmUifSxib3JkZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJub25lIn0sZm9udDppLGFsaWduOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwicmlnaHQiLCJhdXRvIl0sZGZsdDoiYXV0byIsZWRpdFR5cGU6Im5vbmUifSxuYW1lbGVuZ3RoOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46LTEsZGZsdDoxNSxlZGl0VHlwZToibm9uZSJ9LGVkaXRUeXBlOiJub25lIn0sc2VsZWN0ZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJoIiwidiIsImQiLCJhbnkiXSxkZmx0OiJhbnkiLGVkaXRUeXBlOiJub25lIn19fSx7Ii4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuL2NvbnN0YW50cyI6NjczfV0sNjgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLGE9dCgiLi9ob3Zlcm1vZGVfZGVmYXVsdHMiKSxvPXQoIi4vaG92ZXJsYWJlbF9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1hKHQsZSkmJihyKCJob3ZlcmRpc3RhbmNlIikscigic3Bpa2VkaXN0YW5jZSIpKSwic2VsZWN0Ij09PXIoImRyYWdtb2RlIikmJnIoInNlbGVjdGRpcmVjdGlvbiIpO3ZhciBzPWUuX2hhcygibWFwYm94IiksbD1lLl9oYXMoImdlbyIpLGM9ZS5fYmFzZVBsb3RNb2R1bGVzLmxlbmd0aDsiem9vbSI9PT1lLmRyYWdtb2RlJiYoKHN8fGwpJiYxPT09Y3x8cyYmbCYmMj09PWMpJiYoZS5kcmFnbW9kZT0icGFuIiksbyh0LGUscil9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2hvdmVybGFiZWxfZGVmYXVsdHMiOjY3NywiLi9ob3Zlcm1vZGVfZGVmYXVsdHMiOjY3OCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjgwfV0sNjgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9ob3ZlcmxhYmVsX2RlZmF1bHRzIiksYT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aSh0LGUsKGZ1bmN0aW9uKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9KSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2hvdmVybGFiZWxfZGVmYXVsdHMiOjY3NywiLi9sYXlvdXRfYXR0cmlidXRlcyI6NjgwfV0sNjgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vbGliL3JlZ2V4IikuY291bnRlcixhPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIikuaWRSZWdleCxzPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxsPXtyb3dzOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MSxlZGl0VHlwZToicGxvdCJ9LHJvd29yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AgdG8gYm90dG9tIiwiYm90dG9tIHRvIHRvcCJdLGRmbHQ6InRvcCB0byBib3R0b20iLGVkaXRUeXBlOiJwbG90In0sY29sdW1uczp7dmFsVHlwZToiaW50ZWdlciIsbWluOjEsZWRpdFR5cGU6InBsb3QifSxzdWJwbG90czp7dmFsVHlwZToiaW5mb19hcnJheSIsZnJlZUxlbmd0aDohMCxkaW1lbnNpb25zOjIsaXRlbXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbaSgieHkiKS50b1N0cmluZygpLCIiXSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0seGF4ZXM6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbby54LnRvU3RyaW5nKCksIiJdLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSx5YXhlczp7dmFsVHlwZToiaW5mb19hcnJheSIsZnJlZUxlbmd0aDohMCxpdGVtczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOltvLnkudG9TdHJpbmcoKSwiIl0sZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LHBhdHRlcm46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluZGVwZW5kZW50IiwiY291cGxlZCJdLGRmbHQ6ImNvdXBsZWQiLGVkaXRUeXBlOiJwbG90In0seGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToicGxvdCJ9LHlnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6InBsb3QifSxkb21haW46YSh7bmFtZToiZ3JpZCIsZWRpdFR5cGU6InBsb3QiLG5vR3JpZENlbGw6ITB9LHt9KSx4c2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYm90dG9tIiwiYm90dG9tIHBsb3QiLCJ0b3AgcGxvdCIsInRvcCJdLGRmbHQ6ImJvdHRvbSBwbG90IixlZGl0VHlwZToicGxvdCJ9LHlzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwibGVmdCBwbG90IiwicmlnaHQgcGxvdCIsInJpZ2h0Il0sZGZsdDoibGVmdCBwbG90IixlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In07ZnVuY3Rpb24gYyh0LGUscil7dmFyIG49ZVtyKyJheGVzIl0saT1PYmplY3Qua2V5cygodC5fc3Bsb21BeGVzfHx7fSlbcl18fHt9KTtyZXR1cm4gQXJyYXkuaXNBcnJheShuKT9uOmkubGVuZ3RoP2k6dm9pZCAwfWZ1bmN0aW9uIHUodCxlLHIsbixpLGEpe3ZhciBvPWUodCsiZ2FwIixyKSxzPWUoImRvbWFpbi4iK3QpO2UodCsic2lkZSIsbik7Zm9yKHZhciBsPW5ldyBBcnJheShpKSxjPXNbMF0sdT0oc1sxXS1jKS8oaS1vKSxmPXUqKDEtbyksaD0wO2g8aTtoKyspe3ZhciBwPWMrdSpoO2xbYT9pLTEtaDpoXT1bcCxwK2ZdfXJldHVybiBsfWZ1bmN0aW9uIGYodCxlLHIsbixpKXt2YXIgYSxvPW5ldyBBcnJheShyKTtmdW5jdGlvbiBzKHQscil7LTEhPT1lLmluZGV4T2YocikmJnZvaWQgMD09PW5bcl0/KG9bdF09cixuW3JdPXQpOm9bdF09IiJ9aWYoQXJyYXkuaXNBcnJheSh0KSlmb3IoYT0wO2E8cjthKyspcyhhLHRbYV0pO2Vsc2UgZm9yKHMoMCxpKSxhPTE7YTxyO2ErKylzKGEsaSsoYSsxKSk7cmV0dXJuIG99ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImdyaWQiLHNjaGVtYTp7bGF5b3V0OntncmlkOmx9fSxsYXlvdXRBdHRyaWJ1dGVzOmwsc2l6ZURlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5ncmlkfHx7fSxpPWMoZSxyLCJ4IiksYT1jKGUsciwieSIpO2lmKHQuZ3JpZHx8aXx8YSl7dmFyIG8sZixoPUFycmF5LmlzQXJyYXkoci5zdWJwbG90cykmJkFycmF5LmlzQXJyYXkoci5zdWJwbG90c1swXSkscD1BcnJheS5pc0FycmF5KGkpLGQ9QXJyYXkuaXNBcnJheShhKSxtPXAmJmkhPT1yLnhheGVzJiZkJiZhIT09ci55YXhlcztoPyhvPXIuc3VicGxvdHMubGVuZ3RoLGY9ci5zdWJwbG90c1swXS5sZW5ndGgpOihkJiYobz1hLmxlbmd0aCkscCYmKGY9aS5sZW5ndGgpKTt2YXIgZz1zLm5ld0NvbnRhaW5lcihlLCJncmlkIiksdj1rKCJyb3dzIixvKSx5PWsoImNvbHVtbnMiLGYpO2lmKHYqeT4xKXtpZighaCYmIXAmJiFkKSJpbmRlcGVuZGVudCI9PT1rKCJwYXR0ZXJuIikmJihoPSEwKTtnLl9oYXNTdWJwbG90R3JpZD1oO3ZhciB4LGIsXz0idG9wIHRvIGJvdHRvbSI9PT1rKCJyb3dvcmRlciIpLHc9aD8uMjouMSxUPWg/LjM6LjE7bSYmZS5fc3Bsb21HcmlkRGZsdCYmKHg9ZS5fc3Bsb21HcmlkRGZsdC54c2lkZSxiPWUuX3NwbG9tR3JpZERmbHQueXNpZGUpLGcuX2RvbWFpbnM9e3g6dSgieCIsayx3LHgseSkseTp1KCJ5IixrLFQsYix2LF8pfX1lbHNlIGRlbGV0ZSBlLmdyaWR9ZnVuY3Rpb24gayh0LGUpe3JldHVybiBuLmNvZXJjZShyLGcsbCx0LGUpfX0sY29udGVudERlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5ncmlkO2lmKHImJnIuX2RvbWFpbnMpe3ZhciBuLGksYSxvLHMsbCx1LGg9dC5ncmlkfHx7fSxwPWUuX3N1YnBsb3RzLGQ9ci5faGFzU3VicGxvdEdyaWQsbT1yLnJvd3MsZz1yLmNvbHVtbnMsdj0iaW5kZXBlbmRlbnQiPT09ci5wYXR0ZXJuLHk9ci5fYXhpc01hcD17fTtpZihkKXt2YXIgeD1oLnN1YnBsb3RzfHxbXTtsPXIuc3VicGxvdHM9bmV3IEFycmF5KG0pO3ZhciBiPTE7Zm9yKG49MDtuPG07bisrKXt2YXIgXz1sW25dPW5ldyBBcnJheShnKSx3PXhbbl18fFtdO2ZvcihpPTA7aTxnO2krKylpZih2PyhzPTE9PT1iPyJ4eSI6IngiK2IrInkiK2IsYisrKTpzPXdbaV0sX1tpXT0iIiwtMSE9PXAuY2FydGVzaWFuLmluZGV4T2Yocykpe2lmKHU9cy5pbmRleE9mKCJ5IiksYT1zLnNsaWNlKDAsdSksbz1zLnNsaWNlKHUpLHZvaWQgMCE9PXlbYV0mJnlbYV0hPT1pfHx2b2lkIDAhPT15W29dJiZ5W29dIT09biljb250aW51ZTtfW2ldPXMseVthXT1pLHlbb109bn19fWVsc2V7dmFyIFQ9YyhlLGgsIngiKSxrPWMoZSxoLCJ5Iik7ci54YXhlcz1mKFQscC54YXhpcyxnLHksIngiKSxyLnlheGVzPWYoayxwLnlheGlzLG0seSwieSIpfXZhciBBPXIuX2FuY2hvcnM9e30sTT0idG9wIHRvIGJvdHRvbSI9PT1yLnJvd29yZGVyO2Zvcih2YXIgUyBpbiB5KXt2YXIgRSxMLEMsUD1TLmNoYXJBdCgwKSxJPXJbUCsic2lkZSJdO2lmKEkubGVuZ3RoPDgpQVtTXT0iZnJlZSI7ZWxzZSBpZigieCI9PT1QKXtpZigidCI9PT1JLmNoYXJBdCgwKT09PU0/KEU9MCxMPTEsQz1tKTooRT1tLTEsTD0tMSxDPS0xKSxkKXt2YXIgTz15W1NdO2ZvcihuPUU7biE9PUM7bis9TClpZigocz1sW25dW09dKSYmKHU9cy5pbmRleE9mKCJ5Iikscy5zbGljZSgwLHUpPT09Uykpe0FbU109cy5zbGljZSh1KTticmVha319ZWxzZSBmb3Iobj1FO24hPT1DO24rPUwpaWYobz1yLnlheGVzW25dLC0xIT09cC5jYXJ0ZXNpYW4uaW5kZXhPZihTK28pKXtBW1NdPW87YnJlYWt9fWVsc2UgaWYoImwiPT09SS5jaGFyQXQoMCk/KEU9MCxMPTEsQz1nKTooRT1nLTEsTD0tMSxDPS0xKSxkKXt2YXIgej15W1NdO2ZvcihuPUU7biE9PUM7bis9TClpZigocz1sW3pdW25dKSYmKHU9cy5pbmRleE9mKCJ5Iikscy5zbGljZSh1KT09PVMpKXtBW1NdPXMuc2xpY2UoMCx1KTticmVha319ZWxzZSBmb3Iobj1FO24hPT1DO24rPUwpaWYoYT1yLnhheGVzW25dLC0xIT09cC5jYXJ0ZXNpYW4uaW5kZXhPZihhK1MpKXtBW1NdPWE7YnJlYWt9fX19fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL3JlZ2V4Ijo3OTMsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6ODM0LCIuLi8uLi9wbG90cy9kb21haW4iOjg1NX1dLDY4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIiksaT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXk7dCgiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiKTtlLmV4cG9ydHM9aSgiaW1hZ2UiLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJhcnJheWRyYXcifSxzb3VyY2U6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGxheWVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJiZWxvdyIsImFib3ZlIl0sZGZsdDoiYWJvdmUiLGVkaXRUeXBlOiJhcnJheWRyYXcifSxzaXpleDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHNpemV5Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZToiYXJyYXlkcmF3In0sc2l6aW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmaWxsIiwiY29udGFpbiIsInN0cmV0Y2giXSxkZmx0OiJjb250YWluIixlZGl0VHlwZToiYXJyYXlkcmF3In0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjEsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHg6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJhcnJheWRyYXcifSx5Ont2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiYXJyYXlkcmF3In0seGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoibGVmdCIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHlhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6InRvcCIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHhyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBhcGVyIixuLmlkUmVnZXgueC50b1N0cmluZygpXSxkZmx0OiJwYXBlciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LHlyZWY6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBhcGVyIixuLmlkUmVnZXgueS50b1N0cmluZygpXSxkZmx0OiJwYXBlciIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGVkaXRUeXBlOiJhcnJheWRyYXcifSl9LHsiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiOjc0NSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo4MzR9XSw2ODU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYi90b19sb2dfcmFuZ2UiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7ZT1lfHx7fTt2YXIgbz0ibG9nIj09PXImJiJsaW5lYXIiPT09ZS50eXBlLHM9ImxpbmVhciI9PT1yJiYibG9nIj09PWUudHlwZTtpZihvfHxzKWZvcih2YXIgbCxjLHU9dC5fZnVsbExheW91dC5pbWFnZXMsZj1lLl9pZC5jaGFyQXQoMCksaD0wO2g8dS5sZW5ndGg7aCsrKWlmKGM9ImltYWdlc1siK2grIl0uIiwobD11W2hdKVtmKyJyZWYiXT09PWUuX2lkKXt2YXIgcD1sW2ZdLGQ9bFsic2l6ZSIrZl0sbT1udWxsLGc9bnVsbDtpZihvKXttPWkocCxlLnJhbmdlKTt2YXIgdj1kL01hdGgucG93KDEwLG0pLzI7Zz0yKk1hdGgubG9nKHYrTWF0aC5zcXJ0KDErdip2KSkvTWF0aC5MTjEwfWVsc2UgZz0obT1NYXRoLnBvdygxMCxwKSkqKE1hdGgucG93KDEwLGQvMiktTWF0aC5wb3coMTAsLWQvMikpO24obSk/bihnKXx8KGc9bnVsbCk6KG09bnVsbCxnPW51bGwpLGEoYytmLG0pLGEoYysic2l6ZSIrZixnKX19fSx7Ii4uLy4uL2xpYi90b19sb2dfcmFuZ2UiOjgwNCwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDY4NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIHModCxlLHIpe2Z1bmN0aW9uIGEocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX12YXIgcz1hKCJzb3VyY2UiKTtpZighYSgidmlzaWJsZSIsISFzKSlyZXR1cm4gZTthKCJsYXllciIpLGEoInhhbmNob3IiKSxhKCJ5YW5jaG9yIiksYSgic2l6ZXgiKSxhKCJzaXpleSIpLGEoInNpemluZyIpLGEoIm9wYWNpdHkiKTtmb3IodmFyIGw9e19mdWxsTGF5b3V0OnJ9LGM9WyJ4IiwieSJdLHU9MDt1PDI7dSsrKXt2YXIgZj1jW3VdLGg9aS5jb2VyY2VSZWYodCxlLGwsZiwicGFwZXIiLHZvaWQgMCk7aWYoInBhcGVyIiE9PWgpaS5nZXRGcm9tSWQobCxoKS5faW1nSW5kaWNlcy5wdXNoKGUuX2luZGV4KTtpLmNvZXJjZVBvc2l0aW9uKGUsbCxhLGgsZiwwKX1yZXR1cm4gZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXthKHQsZSx7bmFtZToiaW1hZ2VzIixoYW5kbGVJdGVtRGVmYXVsdHM6c30pfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo4MjIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4vYXR0cmlidXRlcyI6Njg0fV0sNjg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uL2RyYXdpbmciKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxzPXQoIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbD10Ll9mdWxsTGF5b3V0LGM9W10sdT17fSxmPVtdO2ZvcihyPTA7cjxsLmltYWdlcy5sZW5ndGg7cisrKXt2YXIgaD1sLmltYWdlc1tyXTtpZihoLnZpc2libGUpaWYoImJlbG93Ij09PWgubGF5ZXImJiJwYXBlciIhPT1oLnhyZWYmJiJwYXBlciIhPT1oLnlyZWYpe2U9by5yZWYyaWQoaC54cmVmKStvLnJlZjJpZChoLnlyZWYpO3ZhciBwPWwuX3Bsb3RzW2VdO2lmKCFwKXtmLnB1c2goaCk7Y29udGludWV9cC5tYWlucGxvdCYmKGU9cC5tYWlucGxvdC5pZCksdVtlXXx8KHVbZV09W10pLHVbZV0ucHVzaChoKX1lbHNlImFib3ZlIj09PWgubGF5ZXI/Yy5wdXNoKGgpOmYucHVzaChoKX12YXIgZD17bGVmdDp7c2l6aW5nOiJ4TWluIixvZmZzZXQ6MH0sY2VudGVyOntzaXppbmc6InhNaWQiLG9mZnNldDotLjV9LHJpZ2h0OntzaXppbmc6InhNYXgiLG9mZnNldDotMX19LG09e3RvcDp7c2l6aW5nOiJZTWluIixvZmZzZXQ6MH0sbWlkZGxlOntzaXppbmc6IllNaWQiLG9mZnNldDotLjV9LGJvdHRvbTp7c2l6aW5nOiJZTWF4IixvZmZzZXQ6LTF9fTtmdW5jdGlvbiBnKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2lmKHRoaXMuX2ltZ1NyYyE9PWUuc291cmNlKWlmKHIuYXR0cigieG1sbnMiLHMuc3ZnKSxlLnNvdXJjZSYmImRhdGE6Ij09PWUuc291cmNlLnNsaWNlKDAsNSkpci5hdHRyKCJ4bGluazpocmVmIixlLnNvdXJjZSksdGhpcy5faW1nU3JjPWUuc291cmNlO2Vsc2V7dmFyIGk9bmV3IFByb21pc2UoZnVuY3Rpb24odCl7dmFyIG49bmV3IEltYWdlO2Z1bmN0aW9uIGkoKXtyLnJlbW92ZSgpLHQoKX10aGlzLmltZz1uLG4uc2V0QXR0cmlidXRlKCJjcm9zc09yaWdpbiIsImFub255bW91cyIpLG4ub25lcnJvcj1pLG4ub25sb2FkPWZ1bmN0aW9uKCl7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7ZS53aWR0aD10aGlzLndpZHRoLGUuaGVpZ2h0PXRoaXMuaGVpZ2h0LGUuZ2V0Q29udGV4dCgiMmQiKS5kcmF3SW1hZ2UodGhpcywwLDApO3ZhciBuPWUudG9EYXRhVVJMKCJpbWFnZS9wbmciKTtyLmF0dHIoInhsaW5rOmhyZWYiLG4pLHQoKX0sci5vbigiZXJyb3IiLGkpLG4uc3JjPWUuc291cmNlLHRoaXMuX2ltZ1NyYz1lLnNvdXJjZX0uYmluZCh0aGlzKSk7dC5fcHJvbWlzZXMucHVzaChpKX19ZnVuY3Rpb24gdihlKXt2YXIgcixvLHM9bi5zZWxlY3QodGhpcyksYz1hLmdldEZyb21JZCh0LGUueHJlZiksdT1hLmdldEZyb21JZCh0LGUueXJlZiksZj0iZG9tYWluIj09PWEuZ2V0UmVmVHlwZShlLnhyZWYpLGg9ImRvbWFpbiI9PT1hLmdldFJlZlR5cGUoZS55cmVmKSxwPWwuX3NpemU7cj12b2lkIDAhPT1jPyJzdHJpbmciPT10eXBlb2YgZS54cmVmJiZmP2MuX2xlbmd0aCplLnNpemV4Ok1hdGguYWJzKGMubDJwKGUuc2l6ZXgpLWMubDJwKDApKTplLnNpemV4KnAudyxvPXZvaWQgMCE9PXU/InN0cmluZyI9PXR5cGVvZiBlLnlyZWYmJmg/dS5fbGVuZ3RoKmUuc2l6ZXk6TWF0aC5hYnModS5sMnAoZS5zaXpleSktdS5sMnAoMCkpOmUuc2l6ZXkqcC5oO3ZhciBnLHYseT1yKmRbZS54YW5jaG9yXS5vZmZzZXQseD1vKm1bZS55YW5jaG9yXS5vZmZzZXQsYj1kW2UueGFuY2hvcl0uc2l6aW5nK21bZS55YW5jaG9yXS5zaXppbmc7c3dpdGNoKGc9dm9pZCAwIT09Yz8ic3RyaW5nIj09dHlwZW9mIGUueHJlZiYmZj9jLl9sZW5ndGgqZS54K2MuX29mZnNldDpjLnIycChlLngpK2MuX29mZnNldDplLngqcC53K3AubCxnKz15LHY9dm9pZCAwIT09dT8ic3RyaW5nIj09dHlwZW9mIGUueXJlZiYmaD91Ll9sZW5ndGgqKDEtZS55KSt1Ll9vZmZzZXQ6dS5yMnAoZS55KSt1Ll9vZmZzZXQ6cC5oLWUueSpwLmgrcC50LHYrPXgsZS5zaXppbmcpe2Nhc2UiZmlsbCI6Yis9IiBzbGljZSI7YnJlYWs7Y2FzZSJzdHJldGNoIjpiPSJub25lIn1zLmF0dHIoe3g6Zyx5OnYsd2lkdGg6cixoZWlnaHQ6byxwcmVzZXJ2ZUFzcGVjdFJhdGlvOmIsb3BhY2l0eTplLm9wYWNpdHl9KTt2YXIgXz0oYyYmImRvbWFpbiIhPT1hLmdldFJlZlR5cGUoZS54cmVmKT9jLl9pZDoiIikrKHUmJiJkb21haW4iIT09YS5nZXRSZWZUeXBlKGUueXJlZik/dS5faWQ6IiIpO2kuc2V0Q2xpcFVybChzLF8/ImNsaXAiK2wuX3VpZCtfOm51bGwsdCl9dmFyIHk9bC5faW1hZ2VMb3dlckxheWVyLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKGYpLHg9bC5faW1hZ2VVcHBlckxheWVyLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKGMpO3kuZW50ZXIoKS5hcHBlbmQoImltYWdlIikseC5lbnRlcigpLmFwcGVuZCgiaW1hZ2UiKSx5LmV4aXQoKS5yZW1vdmUoKSx4LmV4aXQoKS5yZW1vdmUoKSx5LmVhY2goKGZ1bmN0aW9uKHQpe2cuYmluZCh0aGlzKSh0KSx2LmJpbmQodGhpcykodCl9KSkseC5lYWNoKChmdW5jdGlvbih0KXtnLmJpbmQodGhpcykodCksdi5iaW5kKHRoaXMpKHQpfSkpO3ZhciBiPU9iamVjdC5rZXlzKGwuX3Bsb3RzKTtmb3Iocj0wO3I8Yi5sZW5ndGg7cisrKXtlPWJbcl07dmFyIF89bC5fcGxvdHNbZV07aWYoXy5pbWFnZWxheWVyKXt2YXIgdz1fLmltYWdlbGF5ZXIuc2VsZWN0QWxsKCJpbWFnZSIpLmRhdGEodVtlXXx8W10pO3cuZW50ZXIoKS5hcHBlbmQoImltYWdlIiksdy5leGl0KCkucmVtb3ZlKCksdy5lYWNoKChmdW5jdGlvbih0KXtnLmJpbmQodGhpcykodCksdi5iaW5kKHRoaXMpKHQpfSkpfX19fSx7Ii4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo3NTMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6ODMxLCIuLi9kcmF3aW5nIjo2NjEsIkBwbG90bHkvZDMiOjU4fV0sNjg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJpbWFnZXMiLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGluY2x1ZGVCYXNlUGxvdDp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vaW5jbHVkZV9jb21wb25lbnRzIikoImltYWdlcyIpLGRyYXc6dCgiLi9kcmF3IiksY29udmVydENvb3Jkczp0KCIuL2NvbnZlcnRfY29vcmRzIil9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiOjg0MCwiLi9hdHRyaWJ1dGVzIjo2ODQsIi4vY29udmVydF9jb29yZHMiOjY4NSwiLi9kZWZhdWx0cyI6Njg2LCIuL2RyYXciOjY4N31dLDY4OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxpPXQoIi4uL2NvbG9yL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9e2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToibGVnZW5kIn0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuZGVmYXVsdExpbmUsZWRpdFR5cGU6ImxlZ2VuZCJ9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToibGVnZW5kIn0sZm9udDpuKHtlZGl0VHlwZToibGVnZW5kIn0pLG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGRmbHQ6InYiLGVkaXRUeXBlOiJsZWdlbmQifSx0cmFjZW9yZGVyOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJyZXZlcnNlZCIsImdyb3VwZWQiXSxleHRyYXM6WyJub3JtYWwiXSxlZGl0VHlwZToibGVnZW5kIn0sdHJhY2Vncm91cGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwLGVkaXRUeXBlOiJsZWdlbmQifSxpdGVtc2l6aW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0cmFjZSIsImNvbnN0YW50Il0sZGZsdDoidHJhY2UiLGVkaXRUeXBlOiJsZWdlbmQifSxpdGVtd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjMwLGRmbHQ6MzAsZWRpdFR5cGU6ImxlZ2VuZCJ9LGl0ZW1jbGljazp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9nZ2xlIiwidG9nZ2xlb3RoZXJzIiwhMV0sZGZsdDoidG9nZ2xlIixlZGl0VHlwZToibGVnZW5kIn0saXRlbWRvdWJsZWNsaWNrOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b2dnbGUiLCJ0b2dnbGVvdGhlcnMiLCExXSxkZmx0OiJ0b2dnbGVvdGhlcnMiLGVkaXRUeXBlOiJsZWdlbmQifSxncm91cGNsaWNrOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b2dnbGVpdGVtIiwidG9nZ2xlZ3JvdXAiXSxkZmx0OiJ0b2dnbGVncm91cCIsZWRpdFR5cGU6ImxlZ2VuZCJ9LHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGVkaXRUeXBlOiJsZWdlbmQifSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoibGVmdCIsZWRpdFR5cGU6ImxlZ2VuZCJ9LHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGVkaXRUeXBlOiJsZWdlbmQifSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZWRpdFR5cGU6ImxlZ2VuZCJ9LHVpcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSx2YWxpZ246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6Im1pZGRsZSIsZWRpdFR5cGU6ImxlZ2VuZCJ9LHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImxlZ2VuZCJ9LGZvbnQ6bih7ZWRpdFR5cGU6ImxlZ2VuZCJ9KSxzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJsZWZ0IiwidG9wIGxlZnQiXSxlZGl0VHlwZToibGVnZW5kIn0sZWRpdFR5cGU6ImxlZ2VuZCJ9LGVkaXRUeXBlOiJsZWdlbmQifX0seyIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjg1NiwiLi4vY29sb3IvYXR0cmlidXRlcyI6NjM4fV0sNjkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17c2Nyb2xsQmFyV2lkdGg6NixzY3JvbGxCYXJNaW5IZWlnaHQ6MjAsc2Nyb2xsQmFyQ29sb3I6IiM4MDhCQTQiLHNjcm9sbEJhck1hcmdpbjo0LHNjcm9sbEJhckVudGVyQXR0cnM6e3J4OjIwLHJ5OjMsd2lkdGg6MCxoZWlnaHQ6MH0sdGl0bGVQYWQ6MixpdGVtR2FwOjV9fSx7fV0sNjkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxvPXQoIi4vYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvbGF5b3V0X2F0dHJpYnV0ZXMiKSxsPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBjPXQubGVnZW5kfHx7fSx1PTAsZj0hMSxoPSJub3JtYWwiLHA9MDtwPHIubGVuZ3RoO3ArKyl7dmFyIGQ9cltwXTtkLnZpc2libGUmJigoZC5zaG93bGVnZW5kfHxkLl9kZmx0U2hvd0xlZ2VuZCYmIShkLl9tb2R1bGUmJmQuX21vZHVsZS5hdHRyaWJ1dGVzJiZkLl9tb2R1bGUuYXR0cmlidXRlcy5zaG93bGVnZW5kJiYhMT09PWQuX21vZHVsZS5hdHRyaWJ1dGVzLnNob3dsZWdlbmQuZGZsdCkpJiYodSsrLGQuc2hvd2xlZ2VuZCYmKGY9ITAsKG4udHJhY2VJcyhkLCJwaWUtbGlrZSIpfHwhMD09PWQuX2lucHV0LnNob3dsZWdlbmQpJiZ1KyspKSwobi50cmFjZUlzKGQsImJhciIpJiYic3RhY2siPT09ZS5iYXJtb2RlfHwtMSE9PVsidG9uZXh0eCIsInRvbmV4dHkiXS5pbmRleE9mKGQuZmlsbCkpJiYoaD1sLmlzR3JvdXBlZCh7dHJhY2VvcmRlcjpofSk/Imdyb3VwZWQrcmV2ZXJzZWQiOiJyZXZlcnNlZCIpLHZvaWQgMCE9PWQubGVnZW5kZ3JvdXAmJiIiIT09ZC5sZWdlbmRncm91cCYmKGg9bC5pc1JldmVyc2VkKHt0cmFjZW9yZGVyOmh9KT8icmV2ZXJzZWQrZ3JvdXBlZCI6Imdyb3VwZWQiKSl9dmFyIG09aS5jb2VyY2UodCxlLHMsInNob3dsZWdlbmQiLGYmJnU+MSk7aWYoITEhPT1tfHxjLnVpcmV2aXNpb24pe3ZhciBnPWEubmV3Q29udGFpbmVyKGUsImxlZ2VuZCIpO2lmKFQoInVpcmV2aXNpb24iLGUudWlyZXZpc2lvbiksITEhPT1tKXtUKCJiZ2NvbG9yIixlLnBhcGVyX2JnY29sb3IpLFQoImJvcmRlcmNvbG9yIiksVCgiYm9yZGVyd2lkdGgiKTt2YXIgdix5LHgsYj1pLmNvZXJjZUZvbnQoVCwiZm9udCIsZS5mb250KSxfPSJoIj09PVQoIm9yaWVudGF0aW9uIik7aWYoXz8odj0wLG4uZ2V0Q29tcG9uZW50TWV0aG9kKCJyYW5nZXNsaWRlciIsImlzVmlzaWJsZSIpKHQueGF4aXMpPyh5PTEuMSx4PSJib3R0b20iKTooeT0tLjEseD0idG9wIikpOih2PTEuMDIseT0xLHg9ImF1dG8iKSxUKCJ0cmFjZW9yZGVyIixoKSxsLmlzR3JvdXBlZChlLmxlZ2VuZCkmJlQoInRyYWNlZ3JvdXBnYXAiKSxUKCJpdGVtc2l6aW5nIiksVCgiaXRlbXdpZHRoIiksVCgiaXRlbWNsaWNrIiksVCgiaXRlbWRvdWJsZWNsaWNrIiksVCgiZ3JvdXBjbGljayIpLFQoIngiLHYpLFQoInhhbmNob3IiKSxUKCJ5Iix5KSxUKCJ5YW5jaG9yIix4KSxUKCJ2YWxpZ24iKSxpLm5vbmVPckFsbChjLGcsWyJ4IiwieSJdKSxUKCJ0aXRsZS50ZXh0Iikpe1QoInRpdGxlLnNpZGUiLF8/ImxlZnQiOiJ0b3AiKTt2YXIgdz1pLmV4dGVuZEZsYXQoe30sYix7c2l6ZTppLmJpZ0ZvbnQoYi5zaXplKX0pO2kuY29lcmNlRm9udChULCJ0aXRsZS5mb250Iix3KX19fWZ1bmN0aW9uIFQodCxlKXtyZXR1cm4gaS5jb2VyY2UoYyxnLG8sdCxlKX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uLy4uL3Bsb3RzL2xheW91dF9hdHRyaWJ1dGVzIjo4ODEsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4vYXR0cmlidXRlcyI6Njg5LCIuL2hlbHBlcnMiOjY5NX1dLDY5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi8uLi9yZWdpc3RyeSIpLHM9dCgiLi4vLi4vbGliL2V2ZW50cyIpLGw9dCgiLi4vZHJhZ2VsZW1lbnQiKSxjPXQoIi4uL2RyYXdpbmciKSx1PXQoIi4uL2NvbG9yIiksZj10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxoPXQoIi4vaGFuZGxlX2NsaWNrIikscD10KCIuL2NvbnN0YW50cyIpLGQ9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLG09ZC5MSU5FX1NQQUNJTkcsZz1kLkZST01fVEwsdj1kLkZST01fQlIseT10KCIuL2dldF9sZWdlbmRfZGF0YSIpLHg9dCgiLi9zdHlsZSIpLGI9dCgiLi9oZWxwZXJzIik7ZnVuY3Rpb24gXyh0LGUscixuLGkpe3ZhciBhPXIuZGF0YSgpWzBdWzBdLnRyYWNlLGw9e2V2ZW50Omksbm9kZTpyLm5vZGUoKSxjdXJ2ZU51bWJlcjphLmluZGV4LGV4cGFuZGVkSW5kZXg6YS5fZXhwYW5kZWRJbmRleCxkYXRhOnQuZGF0YSxsYXlvdXQ6dC5sYXlvdXQsZnJhbWVzOnQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMsY29uZmlnOnQuX2NvbnRleHQsZnVsbERhdGE6dC5fZnVsbERhdGEsZnVsbExheW91dDp0Ll9mdWxsTGF5b3V0fTtpZihhLl9ncm91cCYmKGwuZ3JvdXA9YS5fZ3JvdXApLG8udHJhY2VJcyhhLCJwaWUtbGlrZSIpJiYobC5sYWJlbD1yLmRhdHVtKClbMF0ubGFiZWwpLCExIT09cy50cmlnZ2VySGFuZGxlcih0LCJwbG90bHlfbGVnZW5kY2xpY2siLGwpKWlmKDE9PT1uKWUuX2NsaWNrVGltZW91dD1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3QuX2Z1bGxMYXlvdXQmJmgocix0LG4pfSksdC5fY29udGV4dC5kb3VibGVDbGlja0RlbGF5KTtlbHNlIGlmKDI9PT1uKXtlLl9jbGlja1RpbWVvdXQmJmNsZWFyVGltZW91dChlLl9jbGlja1RpbWVvdXQpLHQuX2xlZ2VuZE1vdXNlRG93blRpbWU9MCwhMSE9PXMudHJpZ2dlckhhbmRsZXIodCwicGxvdGx5X2xlZ2VuZGRvdWJsZWNsaWNrIixsKSYmaChyLHQsbil9fWZ1bmN0aW9uIHcodCxlLHIpe3ZhciBuLGEscz10LmRhdGEoKVswXVswXSxsPXMudHJhY2UsdT1vLnRyYWNlSXMobCwicGllLWxpa2UiKSxoPSFyLl9pbkhvdmVyJiZlLl9jb250ZXh0LmVkaXRzLmxlZ2VuZFRleHQmJiF1LGQ9ci5fbWF4TmFtZUxlbmd0aDtzLmdyb3VwVGl0bGU/KG49cy5ncm91cFRpdGxlLnRleHQsYT1zLmdyb3VwVGl0bGUuZm9udCk6KGE9ci5mb250LHIuZW50cmllcz9uPXMudGV4dDoobj11P3MubGFiZWw6bC5uYW1lLGwuX21ldGEmJihuPWkudGVtcGxhdGVTdHJpbmcobixsLl9tZXRhKSkpKTt2YXIgbT1pLmVuc3VyZVNpbmdsZSh0LCJ0ZXh0IiwibGVnZW5kdGV4dCIpO20uYXR0cigidGV4dC1hbmNob3IiLCJzdGFydCIpLmNhbGwoYy5mb250LGEpLnRleHQoaD9UKG4sZCk6bik7dmFyIGc9ci5pdGVtd2lkdGgrMipwLml0ZW1HYXA7Zi5wb3NpdGlvblRleHQobSxnLDApLGg/bS5jYWxsKGYubWFrZUVkaXRhYmxlLHtnZDplLHRleHQ6bn0pLmNhbGwoQSx0LGUscikub24oImVkaXQiLChmdW5jdGlvbihuKXt0aGlzLnRleHQoVChuLGQpKS5jYWxsKEEsdCxlLHIpO3ZhciBhPXMudHJhY2UuX2Z1bGxJbnB1dHx8e30sYz17fTtpZihvLmhhc1RyYW5zZm9ybShhLCJncm91cGJ5Iikpe3ZhciB1PW8uZ2V0VHJhbnNmb3JtSW5kaWNlcyhhLCJncm91cGJ5IiksZj11W3UubGVuZ3RoLTFdLGg9aS5rZXllZENvbnRhaW5lcihhLCJ0cmFuc2Zvcm1zWyIrZisiXS5zdHlsZXMiLCJ0YXJnZXQiLCJ2YWx1ZS5uYW1lIik7aC5zZXQocy50cmFjZS5fZ3JvdXAsbiksYz1oLmNvbnN0cnVjdFVwZGF0ZSgpfWVsc2UgYy5uYW1lPW47cmV0dXJuIG8uY2FsbCgiX2d1aVJlc3R5bGUiLGUsYyxsLmluZGV4KX0pKTpBKG0sdCxlLHIpfWZ1bmN0aW9uIFQodCxlKXt2YXIgcj1NYXRoLm1heCg0LGUpO2lmKHQmJnQudHJpbSgpLmxlbmd0aD49ci8yKXJldHVybiB0O2Zvcih2YXIgbj1yLSh0PXR8fCIiKS5sZW5ndGg7bj4wO24tLSl0Kz0iICI7cmV0dXJuIHR9ZnVuY3Rpb24gayh0LGUpe3ZhciByLGE9ZS5fY29udGV4dC5kb3VibGVDbGlja0RlbGF5LG89MSxzPWkuZW5zdXJlU2luZ2xlKHQsInJlY3QiLCJsZWdlbmR0b2dnbGUiLChmdW5jdGlvbih0KXtlLl9jb250ZXh0LnN0YXRpY1Bsb3R8fHQuc3R5bGUoImN1cnNvciIsInBvaW50ZXIiKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLHQuY2FsbCh1LmZpbGwsInJnYmEoMCwwLDAsMCkiKX0pKTtlLl9jb250ZXh0LnN0YXRpY1Bsb3R8fChzLm9uKCJtb3VzZWRvd24iLChmdW5jdGlvbigpeyhyPShuZXcgRGF0ZSkuZ2V0VGltZSgpKS1lLl9sZWdlbmRNb3VzZURvd25UaW1lPGE/bys9MToobz0xLGUuX2xlZ2VuZE1vdXNlRG93blRpbWU9cil9KSkscy5vbigibW91c2V1cCIsKGZ1bmN0aW9uKCl7aWYoIWUuX2RyYWdnZWQmJiFlLl9lZGl0aW5nKXt2YXIgcj1lLl9mdWxsTGF5b3V0LmxlZ2VuZDsobmV3IERhdGUpLmdldFRpbWUoKS1lLl9sZWdlbmRNb3VzZURvd25UaW1lPmEmJihvPU1hdGgubWF4KG8tMSwxKSksXyhlLHIsdCxvLG4uZXZlbnQpfX0pKSl9ZnVuY3Rpb24gQSh0LGUscixuLGkpe24uX2luSG92ZXImJnQuYXR0cigiZGF0YS1ub3RleCIsITApLGYuY29udmVydFRvVHNwYW5zKHQsciwoZnVuY3Rpb24oKXshZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5kYXRhKClbMF1bMF07aWYoIXIuX2luSG92ZXImJmkmJiFpLnRyYWNlLnNob3dsZWdlbmQpcmV0dXJuIHZvaWQgdC5yZW1vdmUoKTt2YXIgYT10LnNlbGVjdCgiZ1tjbGFzcyo9bWF0aC1ncm91cF0iKSxvPWEubm9kZSgpO3J8fChyPWUuX2Z1bGxMYXlvdXQubGVnZW5kKTt2YXIgcyxsPXIuYm9yZGVyd2lkdGg7cz0xPT09bj9yLnRpdGxlLmZvbnQ6aS5ncm91cFRpdGxlP2kuZ3JvdXBUaXRsZS5mb250OnIuZm9udDt2YXIgdSxoLGQ9cy5zaXplKm07aWYobyl7dmFyIGc9Yy5iQm94KG8pO3U9Zy5oZWlnaHQsaD1nLndpZHRoLDE9PT1uP2Muc2V0VHJhbnNsYXRlKGEsbCxsKy43NSp1KTpjLnNldFRyYW5zbGF0ZShhLDAsLjI1KnUpfWVsc2V7dmFyIHY9dC5zZWxlY3QoMT09PW4/Ii5sZWdlbmR0aXRsZXRleHQiOiIubGVnZW5kdGV4dCIpLHk9Zi5saW5lQ291bnQodikseD12Lm5vZGUoKTtpZih1PWQqeSxoPXg/Yy5iQm94KHgpLndpZHRoOjAsMT09PW4pImxlZnQiPT09ci50aXRsZS5zaWRlJiYoaCs9MipwLml0ZW1HYXApLGYucG9zaXRpb25UZXh0KHYsbCtwLnRpdGxlUGFkLGwrZCk7ZWxzZXt2YXIgYj0yKnAuaXRlbUdhcCtyLml0ZW13aWR0aDtpLmdyb3VwVGl0bGUmJihiPXAuaXRlbUdhcCxoLT1yLml0ZW13aWR0aCksZi5wb3NpdGlvblRleHQodixiLC1kKigoeS0xKS8yLS4zKSl9fTE9PT1uPyhyLl90aXRsZVdpZHRoPWgsci5fdGl0bGVIZWlnaHQ9dSk6KGkubGluZUhlaWdodD1kLGkuaGVpZ2h0PU1hdGgubWF4KHUsMTYpKzMsaS53aWR0aD1oKX0oZSxyLG4saSl9KSl9ZnVuY3Rpb24gTSh0KXtyZXR1cm4gaS5pc1JpZ2h0QW5jaG9yKHQpPyJyaWdodCI6aS5pc0NlbnRlckFuY2hvcih0KT8iY2VudGVyIjoibGVmdCJ9ZnVuY3Rpb24gUyh0KXtyZXR1cm4gaS5pc0JvdHRvbUFuY2hvcih0KT8iYm90dG9tIjppLmlzTWlkZGxlQW5jaG9yKHQpPyJtaWRkbGUiOiJ0b3AifWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBlfHwoZT10Ll9mdWxsTGF5b3V0LmxlZ2VuZHx8e30pLGZ1bmN0aW9uKHQsZSl7dmFyIHIscyxmPXQuX2Z1bGxMYXlvdXQsaD0ibGVnZW5kIitmLl91aWQsZD1lLl9pbkhvdmVyO2Q/KHI9ZS5sYXllcixoKz0iLWhvdmVyIik6cj1mLl9pbmZvbGF5ZXI7aWYoIXIpcmV0dXJuO3QuX2xlZ2VuZE1vdXNlRG93blRpbWV8fCh0Ll9sZWdlbmRNb3VzZURvd25UaW1lPTApO2lmKGQpe2lmKCFlLmVudHJpZXMpcmV0dXJuO3M9eShlLmVudHJpZXMsZSl9ZWxzZXtpZighdC5jYWxjZGF0YSlyZXR1cm47cz1mLnNob3dsZWdlbmQmJnkodC5jYWxjZGF0YSxlKX12YXIgbT1mLmhpZGRlbmxhYmVsc3x8W107aWYoIShkfHxmLnNob3dsZWdlbmQmJnMubGVuZ3RoKSlyZXR1cm4gci5zZWxlY3RBbGwoIi5sZWdlbmQiKS5yZW1vdmUoKSxmLl90b3BkZWZzLnNlbGVjdCgiIyIraCkucmVtb3ZlKCksYS5hdXRvTWFyZ2luKHQsImxlZ2VuZCIpO3ZhciBUPWkuZW5zdXJlU2luZ2xlKHIsImciLCJsZWdlbmQiLChmdW5jdGlvbih0KXtkfHx0LmF0dHIoInBvaW50ZXItZXZlbnRzIiwiYWxsIil9KSksRT1pLmVuc3VyZVNpbmdsZUJ5SWQoZi5fdG9wZGVmcywiY2xpcFBhdGgiLGgsKGZ1bmN0aW9uKHQpe3QuYXBwZW5kKCJyZWN0Iil9KSksTD1pLmVuc3VyZVNpbmdsZShULCJyZWN0IiwiYmciLChmdW5jdGlvbih0KXt0LmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKX0pKTtMLmNhbGwodS5zdHJva2UsZS5ib3JkZXJjb2xvcikuY2FsbCh1LmZpbGwsZS5iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLmJvcmRlcndpZHRoKyJweCIpO3ZhciBDPWkuZW5zdXJlU2luZ2xlKFQsImciLCJzY3JvbGxib3giKSxQPWUudGl0bGU7aWYoZS5fdGl0bGVXaWR0aD0wLGUuX3RpdGxlSGVpZ2h0PTAsUC50ZXh0KXt2YXIgST1pLmVuc3VyZVNpbmdsZShDLCJ0ZXh0IiwibGVnZW5kdGl0bGV0ZXh0Iik7SS5hdHRyKCJ0ZXh0LWFuY2hvciIsInN0YXJ0IikuY2FsbChjLmZvbnQsUC5mb250KS50ZXh0KFAudGV4dCksQShJLEMsdCxlLDEpfWVsc2UgQy5zZWxlY3RBbGwoIi5sZWdlbmR0aXRsZXRleHQiKS5yZW1vdmUoKTt2YXIgTz1pLmVuc3VyZVNpbmdsZShULCJyZWN0Iiwic2Nyb2xsYmFyIiwoZnVuY3Rpb24odCl7dC5hdHRyKHAuc2Nyb2xsQmFyRW50ZXJBdHRycykuY2FsbCh1LmZpbGwscC5zY3JvbGxCYXJDb2xvcil9KSksej1DLnNlbGVjdEFsbCgiZy5ncm91cHMiKS5kYXRhKHMpO3ouZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsImdyb3VwcyIpLHouZXhpdCgpLnJlbW92ZSgpO3ZhciBEPXouc2VsZWN0QWxsKCJnLnRyYWNlcyIpLmRhdGEoaS5pZGVudGl0eSk7RC5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwidHJhY2VzIiksRC5leGl0KCkucmVtb3ZlKCksRC5zdHlsZSgib3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2U7cmV0dXJuIG8udHJhY2VJcyhlLCJwaWUtbGlrZSIpPy0xIT09bS5pbmRleE9mKHRbMF0ubGFiZWwpPy41OjE6ImxlZ2VuZG9ubHkiPT09ZS52aXNpYmxlPy41OjF9KSkuZWFjaCgoZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5jYWxsKHcsdCxlKX0pKS5jYWxsKHgsdCxlKS5lYWNoKChmdW5jdGlvbigpe2R8fG4uc2VsZWN0KHRoaXMpLmNhbGwoayx0KX0pKSxpLnN5bmNPckFzeW5jKFthLnByZXZpb3VzUHJvbWlzZXMsZnVuY3Rpb24oKXtyZXR1cm4gZnVuY3Rpb24odCxlLHIsaSl7dmFyIGE9dC5fZnVsbExheW91dDtpfHwoaT1hLmxlZ2VuZCk7dmFyIG89YS5fc2l6ZSxzPWIuaXNWZXJ0aWNhbChpKSxsPWIuaXNHcm91cGVkKGkpLHU9aS5ib3JkZXJ3aWR0aCxmPTIqdSxoPXAuaXRlbUdhcCxkPWkuaXRlbXdpZHRoKzIqaCxtPTIqKHUraCksZz1TKGkpLHY9aS55PDB8fDA9PT1pLnkmJiJ0b3AiPT09Zyx5PWkueT4xfHwxPT09aS55JiYiYm90dG9tIj09PWcseD1pLnRyYWNlZ3JvdXBnYXA7aS5fbWF4SGVpZ2h0PU1hdGgubWF4KHZ8fHk/YS5oZWlnaHQvMjpvLmgsMzApO3ZhciBfPTA7aS5fd2lkdGg9MCxpLl9oZWlnaHQ9MDt2YXIgdz1mdW5jdGlvbih0KXt2YXIgZT0wLHI9MCxuPXQudGl0bGUuc2lkZTtuJiYoLTEhPT1uLmluZGV4T2YoImxlZnQiKSYmKGU9dC5fdGl0bGVXaWR0aCksLTEhPT1uLmluZGV4T2YoInRvcCIpJiYocj10Ll90aXRsZUhlaWdodCkpO3JldHVybltlLHJdfShpKTtpZihzKXIuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dFswXS5oZWlnaHQ7Yy5zZXRUcmFuc2xhdGUodGhpcyx1K3dbMF0sdSt3WzFdK2kuX2hlaWdodCtlLzIraCksaS5faGVpZ2h0Kz1lLGkuX3dpZHRoPU1hdGgubWF4KGkuX3dpZHRoLHRbMF0ud2lkdGgpfSkpLF89ZCtpLl93aWR0aCxpLl93aWR0aCs9aCtkK2YsaS5faGVpZ2h0Kz1tLGwmJihlLmVhY2goKGZ1bmN0aW9uKHQsZSl7Yy5zZXRUcmFuc2xhdGUodGhpcywwLGUqaS50cmFjZWdyb3VwZ2FwKX0pKSxpLl9oZWlnaHQrPShpLl9sZ3JvdXBzTGVuZ3RoLTEpKmkudHJhY2Vncm91cGdhcCk7ZWxzZXt2YXIgVD1NKGkpLGs9aS54PDB8fDA9PT1pLngmJiJyaWdodCI9PT1ULEE9aS54PjF8fDE9PT1pLngmJiJsZWZ0Ij09PVQsRT15fHx2LEw9YS53aWR0aC8yO2kuX21heFdpZHRoPU1hdGgubWF4KGs/RSYmImxlZnQiPT09VD9vLmwrby53Okw6QT9FJiYicmlnaHQiPT09VD9vLnIrby53Okw6by53LDIqZCk7dmFyIEM9MCxQPTA7ci5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10WzBdLndpZHRoK2Q7Qz1NYXRoLm1heChDLGUpLFArPWV9KSksXz1udWxsO3ZhciBJPTA7aWYobCl7dmFyIE89MCx6PTAsRD0wO2UuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD0wLGU9MDtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcudHJhY2VzIikuZWFjaCgoZnVuY3Rpb24ocil7dmFyIG49clswXS5oZWlnaHQ7Yy5zZXRUcmFuc2xhdGUodGhpcyx3WzBdLHdbMV0rdStoK24vMitlKSxlKz1uLHQ9TWF0aC5tYXgodCxkK3JbMF0ud2lkdGgpfSkpLE89TWF0aC5tYXgoTyxlKTt2YXIgcj10K2g7cit1K3o+aS5fbWF4V2lkdGgmJihJPU1hdGgubWF4KEkseiksej0wLEQrPU8reCxPPWUpLGMuc2V0VHJhbnNsYXRlKHRoaXMseixEKSx6Kz1yfSkpLGkuX3dpZHRoPU1hdGgubWF4KEkseikrdSxpLl9oZWlnaHQ9RCtPK219ZWxzZXt2YXIgUj1yLnNpemUoKSxGPVArZisoUi0xKSpoPGkuX21heFdpZHRoLEI9MCxOPTAsaj0wLFU9MDtyLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0uaGVpZ2h0LHI9ZCt0WzBdLndpZHRoLG49KEY/cjpDKStoO24rdStOLWg+PWkuX21heFdpZHRoJiYoST1NYXRoLm1heChJLFUpLE49MCxqKz1CLGkuX2hlaWdodCs9QixCPTApLGMuc2V0VHJhbnNsYXRlKHRoaXMsd1swXSt1K04sd1sxXSt1K2orZS8yK2gpLFU9TityK2gsTis9bixCPU1hdGgubWF4KEIsZSl9KSksRj8oaS5fd2lkdGg9TitmLGkuX2hlaWdodD1CK20pOihpLl93aWR0aD1NYXRoLm1heChJLFUpK2YsaS5faGVpZ2h0Kz1CK20pfX1pLl93aWR0aD1NYXRoLmNlaWwoTWF0aC5tYXgoaS5fd2lkdGgrd1swXSxpLl90aXRsZVdpZHRoKzIqKHUrcC50aXRsZVBhZCkpKSxpLl9oZWlnaHQ9TWF0aC5jZWlsKE1hdGgubWF4KGkuX2hlaWdodCt3WzFdLGkuX3RpdGxlSGVpZ2h0KzIqKHUrcC5pdGVtR2FwKSkpLGkuX2VmZkhlaWdodD1NYXRoLm1pbihpLl9oZWlnaHQsaS5fbWF4SGVpZ2h0KTt2YXIgVj10Ll9jb250ZXh0LmVkaXRzLEg9Vi5sZWdlbmRUZXh0fHxWLmxlZ2VuZFBvc2l0aW9uO3IuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykuc2VsZWN0KCIubGVnZW5kdG9nZ2xlIikscj10WzBdLmhlaWdodCxpPUg/ZDpffHxkK3RbMF0ud2lkdGg7c3x8KGkrPWgvMiksYy5zZXRSZWN0KGUsMCwtci8yLGkscil9KSl9KHQseixELGUpfSxmdW5jdGlvbigpe2lmKGR8fCFmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LmxlZ2VuZCxyPU0oZSksbj1TKGUpO3JldHVybiBhLmF1dG9NYXJnaW4odCwibGVnZW5kIix7eDplLngseTplLnksbDplLl93aWR0aCpnW3JdLHI6ZS5fd2lkdGgqdltyXSxiOmUuX2VmZkhlaWdodCp2W25dLHQ6ZS5fZWZmSGVpZ2h0Kmdbbl19KX0odCkpe3ZhciBzLHUsbSx5LHg9Zi5fc2l6ZSxiPWUuYm9yZGVyd2lkdGgsdz14LmwreC53KmUueC1nW00oZSldKmUuX3dpZHRoLGs9eC50K3guaCooMS1lLnkpLWdbUyhlKV0qZS5fZWZmSGVpZ2h0O2lmKCFkJiZmLm1hcmdpbi5hdXRvZXhwYW5kKXt2YXIgQT13LFA9azt3PWkuY29uc3RyYWluKHcsMCxmLndpZHRoLWUuX3dpZHRoKSxrPWkuY29uc3RyYWluKGssMCxmLmhlaWdodC1lLl9lZmZIZWlnaHQpLHchPT1BJiZpLmxvZygiQ29uc3RyYWluIGxlZ2VuZC54IHRvIG1ha2UgbGVnZW5kIGZpdCBpbnNpZGUgZ3JhcGgiKSxrIT09UCYmaS5sb2coIkNvbnN0cmFpbiBsZWdlbmQueSB0byBtYWtlIGxlZ2VuZCBmaXQgaW5zaWRlIGdyYXBoIil9aWYoZHx8Yy5zZXRUcmFuc2xhdGUoVCx3LGspLE8ub24oIi5kcmFnIixudWxsKSxULm9uKCJ3aGVlbCIsbnVsbCksZHx8ZS5faGVpZ2h0PD1lLl9tYXhIZWlnaHR8fHQuX2NvbnRleHQuc3RhdGljUGxvdCl7dmFyIEk9ZS5fZWZmSGVpZ2h0O2QmJihJPWUuX2hlaWdodCksTC5hdHRyKHt3aWR0aDplLl93aWR0aC1iLGhlaWdodDpJLWIseDpiLzIseTpiLzJ9KSxjLnNldFRyYW5zbGF0ZShDLDAsMCksRS5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDplLl93aWR0aC0yKmIsaGVpZ2h0OkktMipiLHg6Yix5OmJ9KSxjLnNldENsaXBVcmwoQyxoLHQpLGMuc2V0UmVjdChPLDAsMCwwLDApLGRlbGV0ZSBlLl9zY3JvbGxZfWVsc2V7dmFyIHosRCxSLEY9TWF0aC5tYXgocC5zY3JvbGxCYXJNaW5IZWlnaHQsZS5fZWZmSGVpZ2h0KmUuX2VmZkhlaWdodC9lLl9oZWlnaHQpLEI9ZS5fZWZmSGVpZ2h0LUYtMipwLnNjcm9sbEJhck1hcmdpbixOPWUuX2hlaWdodC1lLl9lZmZIZWlnaHQsaj1CL04sVT1NYXRoLm1pbihlLl9zY3JvbGxZfHwwLE4pO0wuYXR0cih7d2lkdGg6ZS5fd2lkdGgtMipiK3Auc2Nyb2xsQmFyV2lkdGgrcC5zY3JvbGxCYXJNYXJnaW4saGVpZ2h0OmUuX2VmZkhlaWdodC1iLHg6Yi8yLHk6Yi8yfSksRS5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDplLl93aWR0aC0yKmIrcC5zY3JvbGxCYXJXaWR0aCtwLnNjcm9sbEJhck1hcmdpbixoZWlnaHQ6ZS5fZWZmSGVpZ2h0LTIqYix4OmIseTpiK1V9KSxjLnNldENsaXBVcmwoQyxoLHQpLHEoVSxGLGopLFQub24oIndoZWVsIiwoZnVuY3Rpb24oKXtxKFU9aS5jb25zdHJhaW4oZS5fc2Nyb2xsWStuLmV2ZW50LmRlbHRhWS9CKk4sMCxOKSxGLGopLDAhPT1VJiZVIT09TiYmbi5ldmVudC5wcmV2ZW50RGVmYXVsdCgpfSkpO3ZhciBWPW4uYmVoYXZpb3IuZHJhZygpLm9uKCJkcmFnc3RhcnQiLChmdW5jdGlvbigpe3ZhciB0PW4uZXZlbnQuc291cmNlRXZlbnQ7ej0idG91Y2hzdGFydCI9PT10LnR5cGU/dC5jaGFuZ2VkVG91Y2hlc1swXS5jbGllbnRZOnQuY2xpZW50WSxSPVV9KSkub24oImRyYWciLChmdW5jdGlvbigpe3ZhciB0PW4uZXZlbnQuc291cmNlRXZlbnQ7Mj09PXQuYnV0dG9uc3x8dC5jdHJsS2V5fHwoRD0idG91Y2htb3ZlIj09PXQudHlwZT90LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFk6dC5jbGllbnRZLHEoVT1mdW5jdGlvbih0LGUscil7dmFyIG49KHItZSkvait0O3JldHVybiBpLmNvbnN0cmFpbihuLDAsTil9KFIseixEKSxGLGopKX0pKTtPLmNhbGwoVik7dmFyIEg9bi5iZWhhdmlvci5kcmFnKCkub24oImRyYWdzdGFydCIsKGZ1bmN0aW9uKCl7dmFyIHQ9bi5ldmVudC5zb3VyY2VFdmVudDsidG91Y2hzdGFydCI9PT10LnR5cGUmJih6PXQuY2hhbmdlZFRvdWNoZXNbMF0uY2xpZW50WSxSPVUpfSkpLm9uKCJkcmFnIiwoZnVuY3Rpb24oKXt2YXIgdD1uLmV2ZW50LnNvdXJjZUV2ZW50OyJ0b3VjaG1vdmUiPT09dC50eXBlJiYoRD10LmNoYW5nZWRUb3VjaGVzWzBdLmNsaWVudFkscShVPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0oZS1yKS9qK3Q7cmV0dXJuIGkuY29uc3RyYWluKG4sMCxOKX0oUix6LEQpLEYsaikpfSkpO0MuY2FsbChIKX1pZih0Ll9jb250ZXh0LmVkaXRzLmxlZ2VuZFBvc2l0aW9uKVQuY2xhc3NlZCgiY3Vyc29yLW1vdmUiLCEwKSxsLmluaXQoe2VsZW1lbnQ6VC5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24oKXt2YXIgdD1jLmdldFRyYW5zbGF0ZShUKTttPXQueCx5PXQueX0sbW92ZUZuOmZ1bmN0aW9uKHQscil7dmFyIG49bSt0LGk9eStyO2Muc2V0VHJhbnNsYXRlKFQsbixpKSxzPWwuYWxpZ24obiwwLHgubCx4LmwreC53LGUueGFuY2hvciksdT1sLmFsaWduKGksMCx4LnQreC5oLHgudCxlLnlhbmNob3IpfSxkb25lRm46ZnVuY3Rpb24oKXt2b2lkIDAhPT1zJiZ2b2lkIDAhPT11JiZvLmNhbGwoIl9ndWlSZWxheW91dCIsdCx7ImxlZ2VuZC54IjpzLCJsZWdlbmQueSI6dX0pfSxjbGlja0ZuOmZ1bmN0aW9uKGUsbil7dmFyIGk9ci5zZWxlY3RBbGwoImcudHJhY2VzIikuZmlsdGVyKChmdW5jdGlvbigpe3ZhciB0PXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIG4uY2xpZW50WD49dC5sZWZ0JiZuLmNsaWVudFg8PXQucmlnaHQmJm4uY2xpZW50WT49dC50b3AmJm4uY2xpZW50WTw9dC5ib3R0b219KSk7aS5zaXplKCk+MCYmXyh0LFQsaSxlLG4pfX0pfWZ1bmN0aW9uIHEocixuLGkpe2UuX3Njcm9sbFk9dC5fZnVsbExheW91dC5sZWdlbmQuX3Njcm9sbFk9cixjLnNldFRyYW5zbGF0ZShDLDAsLXIpLGMuc2V0UmVjdChPLGUuX3dpZHRoLHAuc2Nyb2xsQmFyTWFyZ2luK3IqaSxwLnNjcm9sbEJhcldpZHRoLG4pLEUuc2VsZWN0KCJyZWN0IikuYXR0cigieSIsYityKX19XSx0KX0odCxlKX19LHsiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NzQ0LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL2V2ZW50cyI6NzY1LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vY29sb3IiOjYzOSwiLi4vZHJhZ2VsZW1lbnQiOjY1OCwiLi4vZHJhd2luZyI6NjYxLCIuL2NvbnN0YW50cyI6NjkwLCIuL2dldF9sZWdlbmRfZGF0YSI6NjkzLCIuL2hhbmRsZV9jbGljayI6Njk0LCIuL2hlbHBlcnMiOjY5NSwiLi9zdHlsZSI6Njk3LCJAcGxvdGx5L2QzIjo1OH1dLDY5MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxvPWUuX2luSG92ZXIscz1pLmlzR3JvdXBlZChlKSxsPWkuaXNSZXZlcnNlZChlKSxjPXt9LHU9W10sZj0hMSxoPXt9LHA9MCxkPTA7ZnVuY3Rpb24gbSh0LHIpe2lmKCIiIT09dCYmaS5pc0dyb3VwZWQoZSkpLTE9PT11LmluZGV4T2YodCk/KHUucHVzaCh0KSxmPSEwLGNbdF09W3JdKTpjW3RdLnB1c2gocik7ZWxzZXt2YXIgbj0ifn5pIitwO3UucHVzaChuKSxjW25dPVtyXSxwKyt9fWZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBnPXRbcl0sdj1nWzBdLHk9di50cmFjZSx4PXkubGVnZW5kZ3JvdXA7aWYob3x8eS52aXNpYmxlJiZ5LnNob3dsZWdlbmQpaWYobi50cmFjZUlzKHksInBpZS1saWtlIikpZm9yKGhbeF18fChoW3hdPXt9KSxhPTA7YTxnLmxlbmd0aDthKyspe3ZhciBiPWdbYV0ubGFiZWw7aFt4XVtiXXx8KG0oeCx7bGFiZWw6Yixjb2xvcjpnW2FdLmNvbG9yLGk6Z1thXS5pLHRyYWNlOnkscHRzOmdbYV0ucHRzfSksaFt4XVtiXT0hMCxkPU1hdGgubWF4KGQsKGJ8fCIiKS5sZW5ndGgpKX1lbHNlIG0oeCx2KSxkPU1hdGgubWF4KGQsKHkubmFtZXx8IiIpLmxlbmd0aCl9aWYoIXUubGVuZ3RoKXJldHVybltdO3ZhciBfPSFmfHwhcyx3PVtdO2ZvcihyPTA7cjx1Lmxlbmd0aDtyKyspe3ZhciBUPWNbdVtyXV07Xz93LnB1c2goVFswXSk6dy5wdXNoKFQpfWZvcihfJiYodz1bd10pLHI9MDtyPHcubGVuZ3RoO3IrKyl7dmFyIGs9MS8wO2ZvcihhPTA7YTx3W3JdLmxlbmd0aDthKyspe3ZhciBBPXdbcl1bYV0udHJhY2UubGVnZW5kcmFuaztrPkEmJihrPUEpfXdbcl1bMF0uX2dyb3VwTWluUmFuaz1rLHdbcl1bMF0uX3ByZUdyb3VwU29ydD1yfXZhciBNPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQudHJhY2UubGVnZW5kcmFuay1lLnRyYWNlLmxlZ2VuZHJhbmt8fHQuX3ByZVNvcnQtZS5fcHJlU29ydH07Zm9yKHcuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXt0WzBdLl9wcmVHcm91cFNvcnQ9ZX0pKSx3LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbMF0uX2dyb3VwTWluUmFuay1lWzBdLl9ncm91cE1pblJhbmt8fHRbMF0uX3ByZUdyb3VwU29ydC1lWzBdLl9wcmVHcm91cFNvcnR9KSkscj0wO3I8dy5sZW5ndGg7cisrKXt3W3JdLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7dC5fcHJlU29ydD1lfSkpLHdbcl0uc29ydChNKTt2YXIgUz13W3JdWzBdLnRyYWNlLEU9bnVsbDtmb3IoYT0wO2E8d1tyXS5sZW5ndGg7YSsrKXt2YXIgTD13W3JdW2FdLnRyYWNlLmxlZ2VuZGdyb3VwdGl0bGU7aWYoTCYmTC50ZXh0KXtFPUwsbyYmKEwuZm9udD1lLl9ncm91cFRpdGxlRm9udCk7YnJlYWt9fWlmKGwmJndbcl0ucmV2ZXJzZSgpLEUpe3ZhciBDPSExO2ZvcihhPTA7YTx3W3JdLmxlbmd0aDthKyspaWYobi50cmFjZUlzKHdbcl1bYV0udHJhY2UsInBpZS1saWtlIikpe0M9ITA7YnJlYWt9d1tyXS51bnNoaWZ0KHtpOi0xLGdyb3VwVGl0bGU6RSxub0NsaWNrOkMsdHJhY2U6e3Nob3dsZWdlbmQ6Uy5zaG93bGVnZW5kLGxlZ2VuZGdyb3VwOlMubGVnZW5kZ3JvdXAsdmlzaWJsZToidG9nZ2xlaXRlbSI9PT1lLmdyb3VwY2xpY2t8fFMudmlzaWJsZX19KX1mb3IoYT0wO2E8d1tyXS5sZW5ndGg7YSsrKXdbcl1bYV09W3dbcl1bYV1dfXJldHVybiBlLl9sZ3JvdXBzTGVuZ3RoPXcubGVuZ3RoLGUuX21heE5hbWVMZW5ndGg9ZCx3fX0seyIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2hlbHBlcnMiOjY5NX1dLDY5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT0hMDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBvPWUuX2Z1bGxMYXlvdXQ7aWYoIWUuX2RyYWdnZWQmJiFlLl9lZGl0aW5nKXt2YXIgcyxsPW8ubGVnZW5kLml0ZW1jbGljayxjPW8ubGVnZW5kLml0ZW1kb3VibGVjbGljayx1PW8ubGVnZW5kLmdyb3VwY2xpY2s7aWYoMT09PXImJiJ0b2dnbGUiPT09bCYmInRvZ2dsZW90aGVycyI9PT1jJiZhJiZlLmRhdGEmJmUuX2NvbnRleHQuc2hvd1RpcHM/KG4ubm90aWZpZXIobi5fKGUsIkRvdWJsZS1jbGljayBvbiBsZWdlbmQgdG8gaXNvbGF0ZSBvbmUgdHJhY2UiKSwibG9uZyIpLGE9ITEpOmE9ITEsMT09PXI/cz1sOjI9PT1yJiYocz1jKSxzKXt2YXIgZj0idG9nZ2xlZ3JvdXAiPT09dSxoPW8uaGlkZGVubGFiZWxzP28uaGlkZGVubGFiZWxzLnNsaWNlKCk6W10scD10LmRhdGEoKVswXVswXTtpZighcC5ncm91cFRpdGxlfHwhcC5ub0NsaWNrKXt2YXIgZCxtLGcsdix5LHg9ZS5fZnVsbERhdGEsYj1wLnRyYWNlLF89Yi5sZWdlbmRncm91cCx3PXt9LFQ9W10saz1bXSxBPVtdO2lmKGkudHJhY2VJcyhiLCJwaWUtbGlrZSIpKXt2YXIgTT1wLmxhYmVsLFM9aC5pbmRleE9mKE0pOyJ0b2dnbGUiPT09cz8tMT09PVM/aC5wdXNoKE0pOmguc3BsaWNlKFMsMSk6InRvZ2dsZW90aGVycyI9PT1zJiYoaD1bXSxlLmNhbGNkYXRhWzBdLmZvckVhY2goKGZ1bmN0aW9uKHQpe00hPT10LmxhYmVsJiZoLnB1c2godC5sYWJlbCl9KSksZS5fZnVsbExheW91dC5oaWRkZW5sYWJlbHMmJmUuX2Z1bGxMYXlvdXQuaGlkZGVubGFiZWxzLmxlbmd0aD09PWgubGVuZ3RoJiYtMT09PVMmJihoPVtdKSksaS5jYWxsKCJfZ3VpUmVsYXlvdXQiLGUsImhpZGRlbmxhYmVscyIsaCl9ZWxzZXt2YXIgRSxMPV8mJl8ubGVuZ3RoLEM9W107aWYoTClmb3IoZD0wO2Q8eC5sZW5ndGg7ZCsrKShFPXhbZF0pLnZpc2libGUmJkUubGVnZW5kZ3JvdXA9PT1fJiZDLnB1c2goZCk7aWYoInRvZ2dsZSI9PT1zKXt2YXIgUDtzd2l0Y2goYi52aXNpYmxlKXtjYXNlITA6UD0ibGVnZW5kb25seSI7YnJlYWs7Y2FzZSExOlA9ITE7YnJlYWs7Y2FzZSJsZWdlbmRvbmx5IjpQPSEwfWlmKEwpaWYoZilmb3IoZD0wO2Q8eC5sZW5ndGg7ZCsrKSExIT09eFtkXS52aXNpYmxlJiZ4W2RdLmxlZ2VuZGdyb3VwPT09XyYmaih4W2RdLFApO2Vsc2UgaihiLFApO2Vsc2UgaihiLFApfWVsc2UgaWYoInRvZ2dsZW90aGVycyI9PT1zKXt2YXIgSSxPLHosRCxSPSEwO2ZvcihkPTA7ZDx4Lmxlbmd0aDtkKyspaWYoST14W2RdPT09Yix6PSEwIT09eFtkXS5zaG93bGVnZW5kLCEoSXx8enx8KE89TCYmeFtkXS5sZWdlbmRncm91cD09PV8pfHwhMCE9PXhbZF0udmlzaWJsZXx8aS50cmFjZUlzKHhbZF0sIm5vdExlZ2VuZElzb2xhdGFibGUiKSkpe1I9ITE7YnJlYWt9Zm9yKGQ9MDtkPHgubGVuZ3RoO2QrKylpZighMSE9PXhbZF0udmlzaWJsZSYmIWkudHJhY2VJcyh4W2RdLCJub3RMZWdlbmRJc29sYXRhYmxlIikpc3dpdGNoKGIudmlzaWJsZSl7Y2FzZSJsZWdlbmRvbmx5IjpqKHhbZF0sITApO2JyZWFrO2Nhc2UhMDpEPSEhUnx8ImxlZ2VuZG9ubHkiLEk9eFtkXT09PWIsej0hMCE9PXhbZF0uc2hvd2xlZ2VuZCYmIXhbZF0ubGVnZW5kZ3JvdXAsTz1JfHxMJiZ4W2RdLmxlZ2VuZGdyb3VwPT09XyxqKHhbZF0sISghTyYmIXopfHxEKX19Zm9yKGQ9MDtkPGsubGVuZ3RoO2QrKylpZihnPWtbZF0pe3ZhciBGPWcuY29uc3RydWN0VXBkYXRlKCksQj1PYmplY3Qua2V5cyhGKTtmb3IobT0wO208Qi5sZW5ndGg7bSsrKXY9QlttXSwod1t2XT13W3ZdfHxbXSlbQVtkXV09Rlt2XX1mb3IoeT1PYmplY3Qua2V5cyh3KSxkPTA7ZDx5Lmxlbmd0aDtkKyspZm9yKHY9eVtkXSxtPTA7bTxULmxlbmd0aDttKyspd1t2XS5oYXNPd25Qcm9wZXJ0eShtKXx8KHdbdl1bbV09dm9pZCAwKTtpLmNhbGwoIl9ndWlSZXN0eWxlIixlLHcsVCl9fX19ZnVuY3Rpb24gTih0LGUscil7dmFyIG49VC5pbmRleE9mKHQpLGk9d1tlXTtyZXR1cm4gaXx8KGk9d1tlXT1bXSksLTE9PT1ULmluZGV4T2YodCkmJihULnB1c2godCksbj1ULmxlbmd0aC0xKSxpW25dPXIsbn1mdW5jdGlvbiBqKHQsZSl7aWYoIXAuZ3JvdXBUaXRsZXx8Zil7dmFyIHI9dC5fZnVsbElucHV0O2lmKGkuaGFzVHJhbnNmb3JtKHIsImdyb3VwYnkiKSl7dmFyIGE9a1tyLmluZGV4XTtpZighYSl7dmFyIG89aS5nZXRUcmFuc2Zvcm1JbmRpY2VzKHIsImdyb3VwYnkiKSxzPW9bby5sZW5ndGgtMV07YT1uLmtleWVkQ29udGFpbmVyKHIsInRyYW5zZm9ybXNbIitzKyJdLnN0eWxlcyIsInRhcmdldCIsInZhbHVlLnZpc2libGUiKSxrW3IuaW5kZXhdPWF9dmFyIGw9YS5nZXQodC5fZ3JvdXApO3ZvaWQgMD09PWwmJihsPSEwKSwhMSE9PWwmJmEuc2V0KHQuX2dyb3VwLGUpLEFbci5pbmRleF09TihyLmluZGV4LCJ2aXNpYmxlIiwhMSE9PXIudmlzaWJsZSl9ZWxzZXt2YXIgYz0hMSE9PXIudmlzaWJsZSYmZTtOKHIuaW5kZXgsInZpc2libGUiLGMpfX19fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNH1dLDY5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmlzR3JvdXBlZD1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PSh0LnRyYWNlb3JkZXJ8fCIiKS5pbmRleE9mKCJncm91cGVkIil9LHIuaXNWZXJ0aWNhbD1mdW5jdGlvbih0KXtyZXR1cm4iaCIhPT10Lm9yaWVudGF0aW9ufSxyLmlzUmV2ZXJzZWQ9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT0odC50cmFjZW9yZGVyfHwiIikuaW5kZXhPZigicmV2ZXJzZWQiKX19LHt9XSw2OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6ImxlZ2VuZCIsbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksZHJhdzp0KCIuL2RyYXciKSxzdHlsZTp0KCIuL3N0eWxlIil9fSx7Ii4vYXR0cmlidXRlcyI6Njg5LCIuL2RlZmF1bHRzIjo2OTEsIi4vZHJhdyI6NjkyLCIuL3N0eWxlIjo2OTd9XSw2OTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLG89YS5zdHJUcmFuc2xhdGUscz10KCIuLi9kcmF3aW5nIiksbD10KCIuLi9jb2xvciIpLGM9dCgiLi4vY29sb3JzY2FsZS9oZWxwZXJzIikuZXh0cmFjdE9wdHMsdT10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyIpLGY9dCgiLi4vLi4vdHJhY2VzL3BpZS9zdHlsZV9vbmUiKSxoPXQoIi4uLy4uL3RyYWNlcy9waWUvaGVscGVycyIpLmNhc3RPcHRpb24scD10KCIuL2NvbnN0YW50cyIpO2Z1bmN0aW9uIGQodCxlKXtyZXR1cm4oZT8icmFkaWFsIjoiaG9yaXpvbnRhbCIpKyh0PyIiOiJyZXZlcnNlZCIpfWZ1bmN0aW9uIG0odCl7dmFyIGU9dFswXS50cmFjZSxyPWUuY29udG91cnMsbj11Lmhhc0xpbmVzKGUpLGk9dS5oYXNNYXJrZXJzKGUpLGE9ZS52aXNpYmxlJiZlLmZpbGwmJiJub25lIiE9PWUuZmlsbCxvPSExLHM9ITE7aWYocil7dmFyIGw9ci5jb2xvcmluZzsibGluZXMiPT09bD9vPSEwOm49Im5vbmUiPT09bHx8ImhlYXRtYXAiPT09bHx8ci5zaG93bGluZXMsImNvbnN0cmFpbnQiPT09ci50eXBlP2E9Ij0iIT09ci5fb3BlcmF0aW9uOiJmaWxsIiE9PWwmJiJoZWF0bWFwIiE9PWx8fChzPSEwKX1yZXR1cm57c2hvd01hcmtlcjppLHNob3dMaW5lOm4sc2hvd0ZpbGw6YSxzaG93R3JhZGllbnRMaW5lOm8sc2hvd0dyYWRpZW50RmlsbDpzLGFueUxpbmU6bnx8byxhbnlGaWxsOmF8fHN9fWZ1bmN0aW9uIGcodCxlLHIpe3JldHVybiB0JiZhLmlzQXJyYXlPclR5cGVkQXJyYXkodCk/ZTp0PnI/cjp0fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIHY9ZS5fZnVsbExheW91dDtyfHwocj12LmxlZ2VuZCk7dmFyIHk9ImNvbnN0YW50Ij09PXIuaXRlbXNpemluZyx4PXIuaXRlbXdpZHRoLGI9KHgrMipwLml0ZW1HYXApLzIsXz1vKGIsMCksdz1mdW5jdGlvbih0LGUscixuKXt2YXIgaTtpZih0KzEpaT10O2Vsc2V7aWYoIShlJiZlLndpZHRoPjApKXJldHVybiAwO2k9ZS53aWR0aH1yZXR1cm4geT9uOk1hdGgubWluKGkscil9O2Z1bmN0aW9uIFQodCxhLG8pe3ZhciB1PXRbMF0udHJhY2UsZj11Lm1hcmtlcnx8e30saD1mLmxpbmV8fHt9LHA9bz91LnZpc2libGUmJnUudHlwZT09PW86aS50cmFjZUlzKHUsImJhciIpLGQ9bi5zZWxlY3QoYSkuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmQiK28pLmRhdGEocD9bdF06W10pO2QuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmQiK28sITApLmF0dHIoImQiLCJNNiw2SC02Vi02SDZaIikuYXR0cigidHJhbnNmb3JtIixfKSxkLmV4aXQoKS5yZW1vdmUoKSxkLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLGE9dFswXSxvPXcoYS5tbHcsZi5saW5lLDUsMik7aS5zdHlsZSgic3Ryb2tlLXdpZHRoIixvKyJweCIpO3ZhciBwPWEubWNjO2lmKCFyLl9pbkhvdmVyJiYibWMiaW4gYSl7dmFyIGQ9YyhmKSxtPWQubWlkO3ZvaWQgMD09PW0mJihtPShkLm1heCtkLm1pbikvMikscD1zLnRyeUNvbG9yc2NhbGUoZiwiIikobSl9dmFyIHY9cHx8YS5tY3x8Zi5jb2xvcix5PWYucGF0dGVybix4PXkmJnMuZ2V0UGF0dGVybkF0dHIoeS5zaGFwZSwwLCIiKTtpZih4KXt2YXIgYj1zLmdldFBhdHRlcm5BdHRyKHkuYmdjb2xvciwwLG51bGwpLF89cy5nZXRQYXR0ZXJuQXR0cih5LmZnY29sb3IsMCxudWxsKSxUPXkuZmdvcGFjaXR5LGs9Zyh5LnNpemUsOCwxMCksQT1nKHkuc29saWRpdHksLjUsMSksTT0ibGVnZW5kLSIrdS51aWQ7aS5jYWxsKHMucGF0dGVybiwibGVnZW5kIixlLE0seCxrLEEscCx5LmZpbGxtb2RlLGIsXyxUKX1lbHNlIGkuY2FsbChsLmZpbGwsdik7byYmbC5zdHJva2UoaSxhLm1sY3x8aC5jb2xvcil9KSl9ZnVuY3Rpb24gayh0LGUscil7dmFyIG89dFswXSxzPW8udHJhY2UsbD1yP3MudmlzaWJsZSYmcy50eXBlPT09cjppLnRyYWNlSXMocyxyKSxjPW4uc2VsZWN0KGUpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kIityKS5kYXRhKGw/W3RdOltdKTtpZihjLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgibGVnZW5kIityLCEwKS5hdHRyKCJkIiwiTTYsNkgtNlYtNkg2WiIpLmF0dHIoInRyYW5zZm9ybSIsXyksYy5leGl0KCkucmVtb3ZlKCksYy5zaXplKCkpe3ZhciB1PShzLm1hcmtlcnx8e30pLmxpbmUscD13KGgodS53aWR0aCxvLnB0cyksdSw1LDIpLGQ9YS5taW5FeHRlbmQocyx7bWFya2VyOntsaW5lOnt3aWR0aDpwfX19KTtkLm1hcmtlci5saW5lLmNvbG9yPXUuY29sb3I7dmFyIG09YS5taW5FeHRlbmQobyx7dHJhY2U6ZH0pO2YoYyxtLGQpfX10LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLGk9YS5lbnN1cmVTaW5nbGUoZSwiZyIsImxheWVycyIpO2kuc3R5bGUoIm9wYWNpdHkiLHRbMF0udHJhY2Uub3BhY2l0eSk7dmFyIHM9ci52YWxpZ24sbD10WzBdLmxpbmVIZWlnaHQsYz10WzBdLmhlaWdodDtpZigibWlkZGxlIiE9PXMmJmwmJmMpe3ZhciB1PXt0b3A6MSxib3R0b206LTF9W3NdKiguNSoobC1jKzMpKTtpLmF0dHIoInRyYW5zZm9ybSIsbygwLHUpKX1lbHNlIGkuYXR0cigidHJhbnNmb3JtIixudWxsKTtpLnNlbGVjdEFsbCgiZy5sZWdlbmRmaWxsIikuZGF0YShbdF0pLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGVnZW5kZmlsbCIsITApLGkuc2VsZWN0QWxsKCJnLmxlZ2VuZGxpbmVzIikuZGF0YShbdF0pLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGVnZW5kbGluZXMiLCEwKTt2YXIgZj1pLnNlbGVjdEFsbCgiZy5sZWdlbmRzeW1ib2xzIikuZGF0YShbdF0pO2YuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJsZWdlbmRzeW1ib2xzIiwhMCksZi5zZWxlY3RBbGwoImcubGVnZW5kcG9pbnRzIikuZGF0YShbdF0pLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGVnZW5kcG9pbnRzIiwhMCl9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHIsaT10WzBdLnRyYWNlLG89W107aWYoaS52aXNpYmxlKXN3aXRjaChpLnR5cGUpe2Nhc2UiaGlzdG9ncmFtMmQiOmNhc2UiaGVhdG1hcCI6bz1bWyJNLTE1LC0yVjRIMTVWLTJaIl1dLHI9ITA7YnJlYWs7Y2FzZSJjaG9yb3BsZXRoIjpjYXNlImNob3JvcGxldGhtYXBib3giOm89W1siTS02LC02VjZINlYtNloiXV0scj0hMDticmVhaztjYXNlImRlbnNpdHltYXBib3giOm89W1siTS02LDAgYTYsNiAwIDEsMCAxMiwwIGEgNiw2IDAgMSwwIC0xMiwwIl1dLHI9InJhZGlhbCI7YnJlYWs7Y2FzZSJjb25lIjpvPVtbIk0tNiwyIEEyLDIgMCAwLDAgLTYsNiBWNkw2LDRaIl0sWyJNLTYsLTYgQTIsMiAwIDAsMCAtNiwtMiBMNiwtNFoiXSxbIk0tNiwtMiBBMiwyIDAgMCwwIC02LDIgTDYsMFoiXV0scj0hMTticmVhaztjYXNlInN0cmVhbXR1YmUiOm89W1siTS02LDIgQTIsMiAwIDAsMCAtNiw2IEg2IEEyLDIgMCAwLDEgNiwyIFoiXSxbIk0tNiwtNiBBMiwyIDAgMCwwIC02LC0yIEg2IEEyLDIgMCAwLDEgNiwtNiBaIl0sWyJNLTYsLTIgQTIsMiAwIDAsMCAtNiwyIEg2IEEyLDIgMCAwLDEgNiwtMiBaIl1dLHI9ITE7YnJlYWs7Y2FzZSJzdXJmYWNlIjpvPVtbIk0tNiwtNiBBMiwzIDAgMCwwIC02LDAgSDYgQTIsMyAwIDAsMSA2LC02IFoiXSxbIk0tNiwxIEEyLDMgMCAwLDEgLTYsNiBINiBBMiwzIDAgMCwwIDYsMCBaIl1dLHI9ITA7YnJlYWs7Y2FzZSJtZXNoM2QiOm89W1siTS02LDZIMEwtNiwtNloiXSxbIk02LDZIMEw2LC02WiJdLFsiTS02LC02SDZMMCw2WiJdXSxyPSExO2JyZWFrO2Nhc2Uidm9sdW1lIjpvPVtbIk0tNiw2SDBMLTYsLTZaIl0sWyJNNiw2SDBMNiwtNloiXSxbIk0tNiwtNkg2TDAsNloiXV0scj0hMDticmVhaztjYXNlImlzb3N1cmZhY2UiOm89W1siTS02LDZIMEwtNiwtNloiXSxbIk02LDZIMEw2LC02WiJdLFsiTS02LC02IEExMiwyNCAwIDAsMCA2LC02IEwwLDZaIl1dLHI9ITF9dmFyIHU9bi5zZWxlY3QodGhpcykuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmQzZGFuZGZyaWVuZHMiKS5kYXRhKG8pO3UuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmQzZGFuZGZyaWVuZHMiLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLF8pLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMSksdS5leGl0KCkucmVtb3ZlKCksdS5lYWNoKChmdW5jdGlvbih0LG8pe3ZhciB1LGY9bi5zZWxlY3QodGhpcyksaD1jKGkpLHA9aC5jb2xvcnNjYWxlLG09aC5yZXZlcnNlc2NhbGU7aWYocCl7aWYoIXIpe3ZhciBnPXAubGVuZ3RoO3U9MD09PW8/cFttP2ctMTowXVsxXToxPT09bz9wW20/MDpnLTFdWzFdOnBbTWF0aC5mbG9vcigoZy0xKS8yKV1bMV19fWVsc2V7dmFyIHY9aS52ZXJ0ZXhjb2xvcnx8aS5mYWNlY29sb3J8fGkuY29sb3I7dT1hLmlzQXJyYXlPclR5cGVkQXJyYXkodik/dltvXXx8dlswXTp2fWYuYXR0cigiZCIsdFswXSksdT9mLmNhbGwobC5maWxsLHUpOmYuY2FsbCgoZnVuY3Rpb24odCl7aWYodC5zaXplKCkpe3ZhciBuPSJsZWdlbmRmaWxsLSIraS51aWQ7cy5ncmFkaWVudCh0LGUsbixkKG0sInJhZGlhbCI9PT1yKSxwLCJmaWxsIil9fSkpfSkpfSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj0id2F0ZXJmYWxsIj09PWUudHlwZTtpZih0WzBdLl9kaXN0aW5jdCYmcil7dmFyIGk9dFswXS50cmFjZVt0WzBdLmRpcl0ubWFya2VyO3JldHVybiB0WzBdLm1jPWkuY29sb3IsdFswXS5tbHc9aS5saW5lLndpZHRoLHRbMF0ubWxjPWkubGluZS5jb2xvcixUKHQsdGhpcywid2F0ZXJmYWxsIil9dmFyIGE9W107ZS52aXNpYmxlJiZyJiYoYT10WzBdLmhhc1RvdGFscz9bWyJpbmNyZWFzaW5nIiwiTS02LC02VjZIMFoiXSxbInRvdGFscyIsIk02LDZIMEwtNiwtNkgtMFoiXSxbImRlY3JlYXNpbmciLCJNNiw2Vi02SDBaIl1dOltbImluY3JlYXNpbmciLCJNLTYsLTZWNkg2WiJdLFsiZGVjcmVhc2luZyIsIk02LDZWLTZILTZaIl1dKTt2YXIgbz1uLnNlbGVjdCh0aGlzKS5zZWxlY3QoImcubGVnZW5kcG9pbnRzIikuc2VsZWN0QWxsKCJwYXRoLmxlZ2VuZHdhdGVyZmFsbCIpLmRhdGEoYSk7by5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImxlZ2VuZHdhdGVyZmFsbCIsITApLmF0dHIoInRyYW5zZm9ybSIsXykuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwxKSxvLmV4aXQoKS5yZW1vdmUoKSxvLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGk9ZVt0WzBdXS5tYXJrZXIsYT13KHZvaWQgMCxpLmxpbmUsNSwyKTtyLmF0dHIoImQiLHRbMV0pLnN0eWxlKCJzdHJva2Utd2lkdGgiLGErInB4IikuY2FsbChsLmZpbGwsaS5jb2xvciksYSYmci5jYWxsKGwuc3Ryb2tlLGkubGluZS5jb2xvcil9KSl9KSkuZWFjaCgoZnVuY3Rpb24odCl7VCh0LHRoaXMsImZ1bm5lbCIpfSkpLmVhY2goKGZ1bmN0aW9uKHQpe1QodCx0aGlzKX0pKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj10WzBdLnRyYWNlLG89bi5zZWxlY3QodGhpcykuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmRib3giKS5kYXRhKHIudmlzaWJsZSYmaS50cmFjZUlzKHIsImJveC12aW9saW4iKT9bdF06W10pO28uZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmRib3giLCEwKS5hdHRyKCJkIiwiTTYsNkgtNlYtNkg2WiIpLmF0dHIoInRyYW5zZm9ybSIsXyksby5leGl0KCkucmVtb3ZlKCksby5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO2lmKCJhbGwiIT09ci5ib3hwb2ludHMmJiJhbGwiIT09ci5wb2ludHN8fDAhPT1sLm9wYWNpdHkoci5maWxsY29sb3IpfHwwIT09bC5vcGFjaXR5KChyLmxpbmV8fHt9KS5jb2xvcikpe3ZhciBpPXcodm9pZCAwLHIubGluZSw1LDIpO3Quc3R5bGUoInN0cm9rZS13aWR0aCIsaSsicHgiKS5jYWxsKGwuZmlsbCxyLmZpbGxjb2xvciksaSYmbC5zdHJva2UodCxyLmxpbmUuY29sb3IpfWVsc2V7dmFyIGM9YS5taW5FeHRlbmQocix7bWFya2VyOntzaXplOnk/MTI6YS5jb25zdHJhaW4oci5tYXJrZXIuc2l6ZSwyLDE2KSxzaXplcmVmOjEsc2l6ZW1pbjoxLHNpemVtb2RlOiJkaWFtZXRlciJ9fSk7by5jYWxsKHMucG9pbnRTdHlsZSxjLGUpfX0pKX0pKS5lYWNoKChmdW5jdGlvbih0KXtrKHQsdGhpcywiZnVubmVsYXJlYSIpfSkpLmVhY2goKGZ1bmN0aW9uKHQpe2sodCx0aGlzLCJwaWUiKX0pKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgcixpLG89bSh0KSxsPW8uc2hvd0ZpbGwsZj1vLnNob3dMaW5lLGg9by5zaG93R3JhZGllbnRMaW5lLHA9by5zaG93R3JhZGllbnRGaWxsLGc9by5hbnlGaWxsLHY9by5hbnlMaW5lLHk9dFswXSxiPXkudHJhY2UsXz1jKGIpLFQ9Xy5jb2xvcnNjYWxlLGs9Xy5yZXZlcnNlc2NhbGUsQT11Lmhhc01hcmtlcnMoYil8fCFnPyJNNSwwIjp2PyJNNSwtMiI6Ik01LC0zIixNPW4uc2VsZWN0KHRoaXMpLFM9TS5zZWxlY3QoIi5sZWdlbmRmaWxsIikuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShsfHxwP1t0XTpbXSk7aWYoUy5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImpzLWZpbGwiLCEwKSxTLmV4aXQoKS5yZW1vdmUoKSxTLmF0dHIoImQiLEErImgiK3grInY2aC0iK3grInoiKS5jYWxsKGw/cy5maWxsR3JvdXBTdHlsZTpmdW5jdGlvbih0KXtpZih0LnNpemUoKSl7dmFyIHI9ImxlZ2VuZGZpbGwtIitiLnVpZDtzLmdyYWRpZW50KHQsZSxyLGQoayksVCwiZmlsbCIpfX0pLGZ8fGgpe3ZhciBFPXcodm9pZCAwLGIubGluZSwxMCw1KTtpPWEubWluRXh0ZW5kKGIse2xpbmU6e3dpZHRoOkV9fSkscj1bYS5taW5FeHRlbmQoeSx7dHJhY2U6aX0pXX12YXIgTD1NLnNlbGVjdCgiLmxlZ2VuZGxpbmVzIikuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShmfHxoP1tyXTpbXSk7TC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImpzLWxpbmUiLCEwKSxMLmV4aXQoKS5yZW1vdmUoKSxMLmF0dHIoImQiLEErKGg/ImwiK3grIiwwLjAwMDEiOiJoIit4KSkuY2FsbChmP3MubGluZUdyb3VwU3R5bGU6ZnVuY3Rpb24odCl7aWYodC5zaXplKCkpe3ZhciByPSJsZWdlbmRsaW5lLSIrYi51aWQ7cy5saW5lR3JvdXBTdHlsZSh0KSxzLmdyYWRpZW50KHQsZSxyLGQoayksVCwic3Ryb2tlIil9fSl9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHIsaSxvPW0odCksbD1vLmFueUZpbGwsYz1vLmFueUxpbmUsZj1vLnNob3dMaW5lLGg9by5zaG93TWFya2VyLHA9dFswXSxkPXAudHJhY2UsZz0haCYmIWMmJiFsJiZ1Lmhhc1RleHQoZCk7ZnVuY3Rpb24gdih0LGUscixuKXt2YXIgaT1hLm5lc3RlZFByb3BlcnR5KGQsdCkuZ2V0KCksbz1hLmlzQXJyYXlPclR5cGVkQXJyYXkoaSkmJmU/ZShpKTppO2lmKHkmJm8mJnZvaWQgMCE9PW4mJihvPW4pLHIpe2lmKG88clswXSlyZXR1cm4gclswXTtpZihvPnJbMV0pcmV0dXJuIHJbMV19cmV0dXJuIG99ZnVuY3Rpb24geCh0KXtyZXR1cm4gcC5fZGlzdGluY3QmJnAuaW5kZXgmJnRbcC5pbmRleF0/dFtwLmluZGV4XTp0WzBdfWlmKGh8fGd8fGYpe3ZhciBiPXt9LHc9e307aWYoaCl7Yi5tYz12KCJtYXJrZXIuY29sb3IiLHgpLGIubXg9digibWFya2VyLnN5bWJvbCIseCksYi5tbz12KCJtYXJrZXIub3BhY2l0eSIsYS5tZWFuLFsuMiwxXSksYi5tbGM9digibWFya2VyLmxpbmUuY29sb3IiLHgpLGIubWx3PXYoIm1hcmtlci5saW5lLndpZHRoIixhLm1lYW4sWzAsNV0sMiksdy5tYXJrZXI9e3NpemVyZWY6MSxzaXplbWluOjEsc2l6ZW1vZGU6ImRpYW1ldGVyIn07dmFyIFQ9digibWFya2VyLnNpemUiLGEubWVhbixbMiwxNl0sMTIpO2IubXM9VCx3Lm1hcmtlci5zaXplPVR9ZiYmKHcubGluZT17d2lkdGg6digibGluZS53aWR0aCIseCxbMCwxMF0sNSl9KSxnJiYoYi50eD0iQWEiLGIudHA9digidGV4dHBvc2l0aW9uIix4KSxiLnRzPTEwLGIudGM9digidGV4dGZvbnQuY29sb3IiLHgpLGIudGY9digidGV4dGZvbnQuZmFtaWx5Iix4KSkscj1bYS5taW5FeHRlbmQocCxiKV0sKGk9YS5taW5FeHRlbmQoZCx3KSkuc2VsZWN0ZWRwb2ludHM9bnVsbCxpLnRleHR0ZW1wbGF0ZT1udWxsfXZhciBrPW4uc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKSxBPWsuc2VsZWN0QWxsKCJwYXRoLnNjYXR0ZXJwdHMiKS5kYXRhKGg/cjpbXSk7QS5lbnRlcigpLmluc2VydCgicGF0aCIsIjpmaXJzdC1jaGlsZCIpLmNsYXNzZWQoInNjYXR0ZXJwdHMiLCEwKS5hdHRyKCJ0cmFuc2Zvcm0iLF8pLEEuZXhpdCgpLnJlbW92ZSgpLEEuY2FsbChzLnBvaW50U3R5bGUsaSxlKSxoJiYoclswXS5tcmM9Myk7dmFyIE09ay5zZWxlY3RBbGwoImcucG9pbnR0ZXh0IikuZGF0YShnP3I6W10pO00uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJwb2ludHRleHQiLCEwKS5hcHBlbmQoInRleHQiKS5hdHRyKCJ0cmFuc2Zvcm0iLF8pLE0uZXhpdCgpLnJlbW92ZSgpLE0uc2VsZWN0QWxsKCJ0ZXh0IikuY2FsbChzLnRleHRQb2ludFN0eWxlLGksZSl9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZSxyPW4uc2VsZWN0KHRoaXMpLnNlbGVjdCgiZy5sZWdlbmRwb2ludHMiKS5zZWxlY3RBbGwoInBhdGgubGVnZW5kY2FuZGxlIikuZGF0YShlLnZpc2libGUmJiJjYW5kbGVzdGljayI9PT1lLnR5cGU/W3QsdF06W10pO3IuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJsZWdlbmRjYW5kbGUiLCEwKS5hdHRyKCJkIiwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZT8iTS0xNSwwSC04TS04LDZWLTZIOFoiOiJNMTUsMEg4TTgsLTZWNkgtOFoifSkpLmF0dHIoInRyYW5zZm9ybSIsXykuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwxKSxyLmV4aXQoKS5yZW1vdmUoKSxyLmVhY2goKGZ1bmN0aW9uKHQscil7dmFyIGk9bi5zZWxlY3QodGhpcyksYT1lW3I/ImluY3JlYXNpbmciOiJkZWNyZWFzaW5nIl0sbz13KHZvaWQgMCxhLmxpbmUsNSwyKTtpLnN0eWxlKCJzdHJva2Utd2lkdGgiLG8rInB4IikuY2FsbChsLmZpbGwsYS5maWxsY29sb3IpLG8mJmwuc3Ryb2tlKGksYS5saW5lLmNvbG9yKX0pKX0pKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9bi5zZWxlY3QodGhpcykuc2VsZWN0KCJnLmxlZ2VuZHBvaW50cyIpLnNlbGVjdEFsbCgicGF0aC5sZWdlbmRvaGxjIikuZGF0YShlLnZpc2libGUmJiJvaGxjIj09PWUudHlwZT9bdCx0XTpbXSk7ci5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImxlZ2VuZG9obGMiLCEwKS5hdHRyKCJkIiwoZnVuY3Rpb24odCxlKXtyZXR1cm4gZT8iTS0xNSwwSDBNLTgsLTZWMCI6Ik0xNSwwSDBNOCw2VjAifSkpLmF0dHIoInRyYW5zZm9ybSIsXykuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwxKSxyLmV4aXQoKS5yZW1vdmUoKSxyLmVhY2goKGZ1bmN0aW9uKHQscil7dmFyIGk9bi5zZWxlY3QodGhpcyksYT1lW3I/ImluY3JlYXNpbmciOiJkZWNyZWFzaW5nIl0sbz13KHZvaWQgMCxhLmxpbmUsNSwyKTtpLnN0eWxlKCJmaWxsIiwibm9uZSIpLmNhbGwocy5kYXNoTGluZSxhLmxpbmUuZGFzaCxvKSxvJiZsLnN0cm9rZShpLGEubGluZS5jb2xvcil9KSl9KSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi8uLi90cmFjZXMvcGllL2hlbHBlcnMiOjExNzAsIi4uLy4uL3RyYWNlcy9waWUvc3R5bGVfb25lIjoxMTc2LCIuLi8uLi90cmFjZXMvc2NhdHRlci9zdWJ0eXBlcyI6MTIxNiwiLi4vY29sb3IiOjYzOSwiLi4vY29sb3JzY2FsZS9oZWxwZXJzIjo2NTAsIi4uL2RyYXdpbmciOjY2MSwiLi9jb25zdGFudHMiOjY5MCwiQHBsb3RseS9kMyI6NTh9XSw2OTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dCgiLi9jb25zdGFudHMiKTtlLmV4cG9ydHM9e2VkaXRUeXBlOiJtb2RlYmFyIixvcmllbnRhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidiIsImgiXSxkZmx0OiJoIixlZGl0VHlwZToibW9kZWJhciJ9LGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToibW9kZWJhciJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6Im1vZGViYXIifSxhY3RpdmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJtb2RlYmFyIn0sdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LGFkZDp7dmFsVHlwZToic3RyaW5nIixhcnJheU9rOiEwLGRmbHQ6IiIsZWRpdFR5cGU6Im1vZGViYXIifSxyZW1vdmU6e3ZhbFR5cGU6InN0cmluZyIsYXJyYXlPazohMCxkZmx0OiIiLGVkaXRUeXBlOiJtb2RlYmFyIn19fSx7Ii4vY29uc3RhbnRzIjo3MDB9XSw2OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxvPXQoIi4uLy4uL2ZvbnRzL3Bsb3RpY29uIikscz10KCIuLi9zaGFwZXMvZHJhdyIpLmVyYXNlQWN0aXZlU2hhcGUsbD10KCIuLi8uLi9saWIiKSxjPWwuXyx1PWUuZXhwb3J0cz17fTtmdW5jdGlvbiBmKHQsZSl7dmFyIHIsaSxvPWUuY3VycmVudFRhcmdldCxzPW8uZ2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiKSxsPW8uZ2V0QXR0cmlidXRlKCJkYXRhLXZhbCIpfHwhMCxjPXQuX2Z1bGxMYXlvdXQsdT17fSxmPWEubGlzdCh0LG51bGwsITApLGg9Yy5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZDtpZigiem9vbSI9PT1zKXt2YXIgcCxkPSJpbiI9PT1sPy41OjIsbT0oMStkKS8yLGc9KDEtZCkvMjtmb3IoaT0wO2k8Zi5sZW5ndGg7aSsrKWlmKCEocj1mW2ldKS5maXhlZHJhbmdlKWlmKHA9ci5fbmFtZSwiYXV0byI9PT1sKXVbcCsiLmF1dG9yYW5nZSJdPSEwO2Vsc2UgaWYoInJlc2V0Ij09PWwpe2lmKHZvaWQgMD09PXIuX3JhbmdlSW5pdGlhbCl1W3ArIi5hdXRvcmFuZ2UiXT0hMDtlbHNle3ZhciB2PXIuX3JhbmdlSW5pdGlhbC5zbGljZSgpO3VbcCsiLnJhbmdlWzBdIl09dlswXSx1W3ArIi5yYW5nZVsxXSJdPXZbMV19dm9pZCAwIT09ci5fc2hvd1NwaWtlSW5pdGlhbCYmKHVbcCsiLnNob3dzcGlrZXMiXT1yLl9zaG93U3Bpa2VJbml0aWFsLCJvbiIhPT1ofHxyLl9zaG93U3Bpa2VJbml0aWFsfHwoaD0ib2ZmIikpfWVsc2V7dmFyIHk9W3IucjJsKHIucmFuZ2VbMF0pLHIucjJsKHIucmFuZ2VbMV0pXSx4PVttKnlbMF0rZyp5WzFdLG0qeVsxXStnKnlbMF1dO3VbcCsiLnJhbmdlWzBdIl09ci5sMnIoeFswXSksdVtwKyIucmFuZ2VbMV0iXT1yLmwycih4WzFdKX19ZWxzZSJob3Zlcm1vZGUiIT09c3x8IngiIT09bCYmInkiIT09bHx8KGw9Yy5faXNIb3Jpej8ieSI6IngiLG8uc2V0QXR0cmlidXRlKCJkYXRhLXZhbCIsbCkpLHVbc109bDtjLl9jYXJ0ZXNpYW5TcGlrZXNFbmFibGVkPWgsbi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsdSl9ZnVuY3Rpb24gaCh0LGUpe2Zvcih2YXIgcj1lLmN1cnJlbnRUYXJnZXQsaT1yLmdldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIiksYT1yLmdldEF0dHJpYnV0ZSgiZGF0YS12YWwiKXx8ITAsbz10Ll9mdWxsTGF5b3V0Ll9zdWJwbG90cy5nbDNkfHxbXSxzPXt9LGw9aS5zcGxpdCgiLiIpLGM9MDtjPG8ubGVuZ3RoO2MrKylzW29bY10rIi4iK2xbMV1dPWE7dmFyIHU9InBhbiI9PT1hP2E6Inpvb20iO3MuZHJhZ21vZGU9dSxuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxzKX1mdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByPWUuY3VycmVudFRhcmdldC5nZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIpLGk9InJlc2V0TGFzdFNhdmUiPT09cixhPSJyZXNldERlZmF1bHQiPT09cixvPXQuX2Z1bGxMYXlvdXQscz1vLl9zdWJwbG90cy5nbDNkfHxbXSxsPXt9LGM9MDtjPHMubGVuZ3RoO2MrKyl7dmFyIHUsZj1zW2NdLGg9ZisiLmNhbWVyYSIscD1mKyIuYXNwZWN0cmF0aW8iLGQ9ZisiLmFzcGVjdG1vZGUiLG09b1tmXS5fc2NlbmU7aT8obFtoKyIudXAiXT1tLnZpZXdJbml0aWFsLnVwLGxbaCsiLmV5ZSJdPW0udmlld0luaXRpYWwuZXllLGxbaCsiLmNlbnRlciJdPW0udmlld0luaXRpYWwuY2VudGVyLHU9ITApOmEmJihsW2grIi51cCJdPW51bGwsbFtoKyIuZXllIl09bnVsbCxsW2grIi5jZW50ZXIiXT1udWxsLHU9ITApLHUmJihsW3ArIi54Il09bS52aWV3SW5pdGlhbC5hc3BlY3RyYXRpby54LGxbcCsiLnkiXT1tLnZpZXdJbml0aWFsLmFzcGVjdHJhdGlvLnksbFtwKyIueiJdPW0udmlld0luaXRpYWwuYXNwZWN0cmF0aW8ueixsW2RdPW0udmlld0luaXRpYWwuYXNwZWN0bW9kZSl9bi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsbCl9ZnVuY3Rpb24gZCh0LGUpe3ZhciByPWUuY3VycmVudFRhcmdldCxuPXIuX3ByZXZpb3VzVmFsLGk9dC5fZnVsbExheW91dCxhPWkuX3N1YnBsb3RzLmdsM2R8fFtdLG89WyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXSxzPXt9LGw9e307aWYobilsPW4sci5fcHJldmlvdXNWYWw9bnVsbDtlbHNle2Zvcih2YXIgYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgdT1hW2NdLGY9aVt1XSxoPXUrIi5ob3Zlcm1vZGUiO3NbaF09Zi5ob3Zlcm1vZGUsbFtoXT0hMTtmb3IodmFyIHA9MDtwPDM7cCsrKXt2YXIgZD1vW3BdLG09dSsiLiIrZCsiLnNob3dzcGlrZXMiO2xbbV09ITEsc1ttXT1mW2RdLnNob3dzcGlrZXN9fXIuX3ByZXZpb3VzVmFsPXN9cmV0dXJuIGx9ZnVuY3Rpb24gbSh0LGUpe2Zvcih2YXIgcj1lLmN1cnJlbnRUYXJnZXQsaT1yLmdldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIiksYT1yLmdldEF0dHJpYnV0ZSgiZGF0YS12YWwiKXx8ITAsbz10Ll9mdWxsTGF5b3V0LHM9by5fc3VicGxvdHMuZ2VvfHxbXSxsPTA7bDxzLmxlbmd0aDtsKyspe3ZhciBjPXNbbF0sdT1vW2NdO2lmKCJ6b29tIj09PWkpe3ZhciBmPXUucHJvamVjdGlvbi5zY2FsZSxoPSJpbiI9PT1hPzIqZjouNSpmO24uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LGMrIi5wcm9qZWN0aW9uLnNjYWxlIixoKX19InJlc2V0Ij09PWkmJngodCwiZ2VvIil9ZnVuY3Rpb24gZyh0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O3JldHVybiFlLmhvdmVybW9kZSYmKGUuX2hhcygiY2FydGVzaWFuIik/ZS5faXNIb3Jpej8ieSI6IngiOiJjbG9zZXN0Iil9ZnVuY3Rpb24gdih0KXt2YXIgZT1nKHQpO24uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LCJob3Zlcm1vZGUiLGUpfWZ1bmN0aW9uIHkodCxlKXtmb3IodmFyIHI9ZS5jdXJyZW50VGFyZ2V0LmdldEF0dHJpYnV0ZSgiZGF0YS12YWwiKSxpPXQuX2Z1bGxMYXlvdXQsYT1pLl9zdWJwbG90cy5tYXBib3h8fFtdLG89e30scz0wO3M8YS5sZW5ndGg7cysrKXt2YXIgbD1hW3NdLGM9aVtsXS56b29tLHU9ImluIj09PXI/MS4wNSpjOmMvMS4wNTtvW2wrIi56b29tIl09dX1uLmNhbGwoIl9ndWlSZWxheW91dCIsdCxvKX1mdW5jdGlvbiB4KHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxMYXlvdXQsaT1yLl9zdWJwbG90c1tlXXx8W10sYT17fSxvPTA7bzxpLmxlbmd0aDtvKyspZm9yKHZhciBzPWlbb10sbD1yW3NdLl9zdWJwbG90LnZpZXdJbml0aWFsLGM9T2JqZWN0LmtleXMobCksdT0wO3U8Yy5sZW5ndGg7dSsrKXt2YXIgZj1jW3VdO2FbcysiLiIrZl09bFtmXX1uLmNhbGwoIl9ndWlSZWxheW91dCIsdCxhKX11LnRvSW1hZ2U9e25hbWU6InRvSW1hZ2UiLHRpdGxlOmZ1bmN0aW9uKHQpe3ZhciBlPSh0Ll9jb250ZXh0LnRvSW1hZ2VCdXR0b25PcHRpb25zfHx7fSkuZm9ybWF0fHwicG5nIjtyZXR1cm4gYyh0LCJwbmciPT09ZT8iRG93bmxvYWQgcGxvdCBhcyBhIHBuZyI6IkRvd25sb2FkIHBsb3QiKX0saWNvbjpvLmNhbWVyYSxjbGljazpmdW5jdGlvbih0KXt2YXIgZT10Ll9jb250ZXh0LnRvSW1hZ2VCdXR0b25PcHRpb25zLHI9e2Zvcm1hdDplLmZvcm1hdHx8InBuZyJ9O2wubm90aWZpZXIoYyh0LCJUYWtpbmcgc25hcHNob3QgLSB0aGlzIG1heSB0YWtlIGEgZmV3IHNlY29uZHMiKSwibG9uZyIpLCJzdmciIT09ci5mb3JtYXQmJmwuaXNJRSgpJiYobC5ub3RpZmllcihjKHQsIklFIG9ubHkgc3VwcG9ydHMgc3ZnLiAgQ2hhbmdpbmcgZm9ybWF0IHRvIHN2Zy4iKSwibG9uZyIpLHIuZm9ybWF0PSJzdmciKSxbImZpbGVuYW1lIiwid2lkdGgiLCJoZWlnaHQiLCJzY2FsZSJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QgaW4gZSYmKHJbdF09ZVt0XSl9KSksbi5jYWxsKCJkb3dubG9hZEltYWdlIix0LHIpLnRoZW4oKGZ1bmN0aW9uKGUpe2wubm90aWZpZXIoYyh0LCJTbmFwc2hvdCBzdWNjZWVkZWQiKSsiIC0gIitlLCJsb25nIil9KSkuY2F0Y2goKGZ1bmN0aW9uKCl7bC5ub3RpZmllcihjKHQsIlNvcnJ5LCB0aGVyZSB3YXMgYSBwcm9ibGVtIGRvd25sb2FkaW5nIHlvdXIgc25hcHNob3QhIiksImxvbmciKX0pKX19LHUuc2VuZERhdGFUb0Nsb3VkPXtuYW1lOiJzZW5kRGF0YVRvQ2xvdWQiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkVkaXQgaW4gQ2hhcnQgU3R1ZGlvIil9LGljb246by5kaXNrLGNsaWNrOmZ1bmN0aW9uKHQpe2kuc2VuZERhdGFUb0Nsb3VkKHQpfX0sdS5lZGl0SW5DaGFydFN0dWRpbz17bmFtZToiZWRpdEluQ2hhcnRTdHVkaW8iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkVkaXQgaW4gQ2hhcnQgU3R1ZGlvIil9LGljb246by5wZW5jaWwsY2xpY2s6ZnVuY3Rpb24odCl7aS5zZW5kRGF0YVRvQ2xvdWQodCl9fSx1Lnpvb20yZD17bmFtZToiem9vbTJkIixfY2F0OiJ6b29tIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJab29tIil9LGF0dHI6ImRyYWdtb2RlIix2YWw6Inpvb20iLGljb246by56b29tYm94LGNsaWNrOmZ9LHUucGFuMmQ9e25hbWU6InBhbjJkIixfY2F0OiJwYW4iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlBhbiIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJwYW4iLGljb246by5wYW4sY2xpY2s6Zn0sdS5zZWxlY3QyZD17bmFtZToic2VsZWN0MmQiLF9jYXQ6InNlbGVjdCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiQm94IFNlbGVjdCIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJzZWxlY3QiLGljb246by5zZWxlY3Rib3gsY2xpY2s6Zn0sdS5sYXNzbzJkPXtuYW1lOiJsYXNzbzJkIixfY2F0OiJsYXNzbyIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiTGFzc28gU2VsZWN0Iil9LGF0dHI6ImRyYWdtb2RlIix2YWw6Imxhc3NvIixpY29uOm8ubGFzc28sY2xpY2s6Zn0sdS5kcmF3Y2xvc2VkcGF0aD17bmFtZToiZHJhd2Nsb3NlZHBhdGgiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkRyYXcgY2xvc2VkIGZyZWVmb3JtIil9LGF0dHI6ImRyYWdtb2RlIix2YWw6ImRyYXdjbG9zZWRwYXRoIixpY29uOm8uZHJhd2Nsb3NlZHBhdGgsY2xpY2s6Zn0sdS5kcmF3b3BlbnBhdGg9e25hbWU6ImRyYXdvcGVucGF0aCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiRHJhdyBvcGVuIGZyZWVmb3JtIil9LGF0dHI6ImRyYWdtb2RlIix2YWw6ImRyYXdvcGVucGF0aCIsaWNvbjpvLmRyYXdvcGVucGF0aCxjbGljazpmfSx1LmRyYXdsaW5lPXtuYW1lOiJkcmF3bGluZSIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiRHJhdyBsaW5lIil9LGF0dHI6ImRyYWdtb2RlIix2YWw6ImRyYXdsaW5lIixpY29uOm8uZHJhd2xpbmUsY2xpY2s6Zn0sdS5kcmF3cmVjdD17bmFtZToiZHJhd3JlY3QiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkRyYXcgcmVjdGFuZ2xlIil9LGF0dHI6ImRyYWdtb2RlIix2YWw6ImRyYXdyZWN0IixpY29uOm8uZHJhd3JlY3QsY2xpY2s6Zn0sdS5kcmF3Y2lyY2xlPXtuYW1lOiJkcmF3Y2lyY2xlIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJEcmF3IGNpcmNsZSIpfSxhdHRyOiJkcmFnbW9kZSIsdmFsOiJkcmF3Y2lyY2xlIixpY29uOm8uZHJhd2NpcmNsZSxjbGljazpmfSx1LmVyYXNlc2hhcGU9e25hbWU6ImVyYXNlc2hhcGUiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkVyYXNlIGFjdGl2ZSBzaGFwZSIpfSxpY29uOm8uZXJhc2VzaGFwZSxjbGljazpzfSx1Lnpvb21JbjJkPXtuYW1lOiJ6b29tSW4yZCIsX2NhdDoiem9vbWluIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJab29tIGluIil9LGF0dHI6Inpvb20iLHZhbDoiaW4iLGljb246by56b29tX3BsdXMsY2xpY2s6Zn0sdS56b29tT3V0MmQ9e25hbWU6Inpvb21PdXQyZCIsX2NhdDoiem9vbW91dCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiWm9vbSBvdXQiKX0sYXR0cjoiem9vbSIsdmFsOiJvdXQiLGljb246by56b29tX21pbnVzLGNsaWNrOmZ9LHUuYXV0b1NjYWxlMmQ9e25hbWU6ImF1dG9TY2FsZTJkIixfY2F0OiJhdXRvc2NhbGUiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIkF1dG9zY2FsZSIpfSxhdHRyOiJ6b29tIix2YWw6ImF1dG8iLGljb246by5hdXRvc2NhbGUsY2xpY2s6Zn0sdS5yZXNldFNjYWxlMmQ9e25hbWU6InJlc2V0U2NhbGUyZCIsX2NhdDoicmVzZXRzY2FsZSIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiUmVzZXQgYXhlcyIpfSxhdHRyOiJ6b29tIix2YWw6InJlc2V0IixpY29uOm8uaG9tZSxjbGljazpmfSx1LmhvdmVyQ2xvc2VzdENhcnRlc2lhbj17bmFtZToiaG92ZXJDbG9zZXN0Q2FydGVzaWFuIixfY2F0OiJob3ZlcmNsb3Nlc3QiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlNob3cgY2xvc2VzdCBkYXRhIG9uIGhvdmVyIil9LGF0dHI6ImhvdmVybW9kZSIsdmFsOiJjbG9zZXN0IixpY29uOm8udG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6Zn0sdS5ob3ZlckNvbXBhcmVDYXJ0ZXNpYW49e25hbWU6ImhvdmVyQ29tcGFyZUNhcnRlc2lhbiIsX2NhdDoiaG92ZXJDb21wYXJlIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJDb21wYXJlIGRhdGEgb24gaG92ZXIiKX0sYXR0cjoiaG92ZXJtb2RlIix2YWw6ZnVuY3Rpb24odCl7cmV0dXJuIHQuX2Z1bGxMYXlvdXQuX2lzSG9yaXo/InkiOiJ4In0saWNvbjpvLnRvb2x0aXBfY29tcGFyZSxncmF2aXR5OiJuZSIsY2xpY2s6Zn0sdS56b29tM2Q9e25hbWU6Inpvb20zZCIsX2NhdDoiem9vbSIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiWm9vbSIpfSxhdHRyOiJzY2VuZS5kcmFnbW9kZSIsdmFsOiJ6b29tIixpY29uOm8uem9vbWJveCxjbGljazpofSx1LnBhbjNkPXtuYW1lOiJwYW4zZCIsX2NhdDoicGFuIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJQYW4iKX0sYXR0cjoic2NlbmUuZHJhZ21vZGUiLHZhbDoicGFuIixpY29uOm8ucGFuLGNsaWNrOmh9LHUub3JiaXRSb3RhdGlvbj17bmFtZToib3JiaXRSb3RhdGlvbiIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiT3JiaXRhbCByb3RhdGlvbiIpfSxhdHRyOiJzY2VuZS5kcmFnbW9kZSIsdmFsOiJvcmJpdCIsaWNvbjpvWyIzZF9yb3RhdGUiXSxjbGljazpofSx1LnRhYmxlUm90YXRpb249e25hbWU6InRhYmxlUm90YXRpb24iLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlR1cm50YWJsZSByb3RhdGlvbiIpfSxhdHRyOiJzY2VuZS5kcmFnbW9kZSIsdmFsOiJ0dXJudGFibGUiLGljb246b1siei1heGlzIl0sY2xpY2s6aH0sdS5yZXNldENhbWVyYURlZmF1bHQzZD17bmFtZToicmVzZXRDYW1lcmFEZWZhdWx0M2QiLF9jYXQ6InJlc2V0Q2FtZXJhRGVmYXVsdCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiUmVzZXQgY2FtZXJhIHRvIGRlZmF1bHQiKX0sYXR0cjoicmVzZXREZWZhdWx0IixpY29uOm8uaG9tZSxjbGljazpwfSx1LnJlc2V0Q2FtZXJhTGFzdFNhdmUzZD17bmFtZToicmVzZXRDYW1lcmFMYXN0U2F2ZTNkIixfY2F0OiJyZXNldENhbWVyYUxhc3RTYXZlIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJSZXNldCBjYW1lcmEgdG8gbGFzdCBzYXZlIil9LGF0dHI6InJlc2V0TGFzdFNhdmUiLGljb246by5tb3ZpZSxjbGljazpwfSx1LmhvdmVyQ2xvc2VzdDNkPXtuYW1lOiJob3ZlckNsb3Nlc3QzZCIsX2NhdDoiaG92ZXJjbG9zZXN0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJUb2dnbGUgc2hvdyBjbG9zZXN0IGRhdGEgb24gaG92ZXIiKX0sYXR0cjoiaG92ZXJtb2RlIix2YWw6bnVsbCx0b2dnbGU6ITAsaWNvbjpvLnRvb2x0aXBfYmFzaWMsZ3Jhdml0eToibmUiLGNsaWNrOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZCh0LGUpO24uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LHIpfX0sdS56b29tSW5HZW89e25hbWU6Inpvb21JbkdlbyIsX2NhdDoiem9vbWluIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJab29tIGluIil9LGF0dHI6Inpvb20iLHZhbDoiaW4iLGljb246by56b29tX3BsdXMsY2xpY2s6bX0sdS56b29tT3V0R2VvPXtuYW1lOiJ6b29tT3V0R2VvIixfY2F0OiJ6b29tb3V0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJab29tIG91dCIpfSxhdHRyOiJ6b29tIix2YWw6Im91dCIsaWNvbjpvLnpvb21fbWludXMsY2xpY2s6bX0sdS5yZXNldEdlbz17bmFtZToicmVzZXRHZW8iLF9jYXQ6InJlc2V0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJSZXNldCIpfSxhdHRyOiJyZXNldCIsdmFsOm51bGwsaWNvbjpvLmF1dG9zY2FsZSxjbGljazptfSx1LmhvdmVyQ2xvc2VzdEdlbz17bmFtZToiaG92ZXJDbG9zZXN0R2VvIixfY2F0OiJob3ZlcmNsb3Nlc3QiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlRvZ2dsZSBzaG93IGNsb3Nlc3QgZGF0YSBvbiBob3ZlciIpfSxhdHRyOiJob3Zlcm1vZGUiLHZhbDpudWxsLHRvZ2dsZTohMCxpY29uOm8udG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6dn0sdS5ob3ZlckNsb3Nlc3RHbDJkPXtuYW1lOiJob3ZlckNsb3Nlc3RHbDJkIixfY2F0OiJob3ZlcmNsb3Nlc3QiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlRvZ2dsZSBzaG93IGNsb3Nlc3QgZGF0YSBvbiBob3ZlciIpfSxhdHRyOiJob3Zlcm1vZGUiLHZhbDpudWxsLHRvZ2dsZTohMCxpY29uOm8udG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6dn0sdS5ob3ZlckNsb3Nlc3RQaWU9e25hbWU6ImhvdmVyQ2xvc2VzdFBpZSIsX2NhdDoiaG92ZXJjbG9zZXN0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJUb2dnbGUgc2hvdyBjbG9zZXN0IGRhdGEgb24gaG92ZXIiKX0sYXR0cjoiaG92ZXJtb2RlIix2YWw6ImNsb3Nlc3QiLGljb246by50b29sdGlwX2Jhc2ljLGdyYXZpdHk6Im5lIixjbGljazp2fSx1LnJlc2V0Vmlld1NhbmtleT17bmFtZToicmVzZXRTYW5rZXlHcm91cCIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiUmVzZXQgdmlldyIpfSxpY29uOm8uaG9tZSxjbGljazpmdW5jdGlvbih0KXtmb3IodmFyIGU9eyJub2RlLmdyb3VwcyI6W10sIm5vZGUueCI6W10sIm5vZGUueSI6W119LHI9MDtyPHQuX2Z1bGxEYXRhLmxlbmd0aDtyKyspe3ZhciBpPXQuX2Z1bGxEYXRhW3JdLl92aWV3SW5pdGlhbDtlWyJub2RlLmdyb3VwcyJdLnB1c2goaS5ub2RlLmdyb3Vwcy5zbGljZSgpKSxlWyJub2RlLngiXS5wdXNoKGkubm9kZS54LnNsaWNlKCkpLGVbIm5vZGUueSJdLnB1c2goaS5ub2RlLnkuc2xpY2UoKSl9bi5jYWxsKCJyZXN0eWxlIix0LGUpfX0sdS50b2dnbGVIb3Zlcj17bmFtZToidG9nZ2xlSG92ZXIiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlRvZ2dsZSBzaG93IGNsb3Nlc3QgZGF0YSBvbiBob3ZlciIpfSxhdHRyOiJob3Zlcm1vZGUiLHZhbDpudWxsLHRvZ2dsZTohMCxpY29uOm8udG9vbHRpcF9iYXNpYyxncmF2aXR5OiJuZSIsY2xpY2s6ZnVuY3Rpb24odCxlKXt2YXIgcj1kKHQsZSk7ci5ob3Zlcm1vZGU9Zyh0KSxuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxyKX19LHUucmVzZXRWaWV3cz17bmFtZToicmVzZXRWaWV3cyIsdGl0bGU6ZnVuY3Rpb24odCl7cmV0dXJuIGModCwiUmVzZXQgdmlld3MiKX0saWNvbjpvLmhvbWUsY2xpY2s6ZnVuY3Rpb24odCxlKXt2YXIgcj1lLmN1cnJlbnRUYXJnZXQ7ci5zZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIsInpvb20iKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS12YWwiLCJyZXNldCIpLGYodCxlKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIiwicmVzZXRMYXN0U2F2ZSIpLHAodCxlKSx4KHQsImdlbyIpLHgodCwibWFwYm94Iil9fSx1LnRvZ2dsZVNwaWtlbGluZXM9e25hbWU6InRvZ2dsZVNwaWtlbGluZXMiLHRpdGxlOmZ1bmN0aW9uKHQpe3JldHVybiBjKHQsIlRvZ2dsZSBTcGlrZSBMaW5lcyIpfSxpY29uOm8uc3Bpa2VsaW5lLGF0dHI6Il9jYXJ0ZXNpYW5TcGlrZXNFbmFibGVkIix2YWw6Im9uIixjbGljazpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS5fY2FydGVzaWFuU3Bpa2VzRW5hYmxlZDtlLl9jYXJ0ZXNpYW5TcGlrZXNFbmFibGVkPSJvbiI9PT1yPyJvZmYiOiJvbiIsbi5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsZnVuY3Rpb24odCl7Zm9yKHZhciBlPSJvbiI9PT10Ll9mdWxsTGF5b3V0Ll9jYXJ0ZXNpYW5TcGlrZXNFbmFibGVkLHI9YS5saXN0KHQsbnVsbCwhMCksbj17fSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBvPXJbaV07bltvLl9uYW1lKyIuc2hvd3NwaWtlcyJdPSEhZXx8by5fc2hvd1NwaWtlSW5pdGlhbH1yZXR1cm4gbn0odCkpfX0sdS5yZXNldFZpZXdNYXBib3g9e25hbWU6InJlc2V0Vmlld01hcGJveCIsX2NhdDoicmVzZXRWaWV3Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJSZXNldCB2aWV3Iil9LGF0dHI6InJlc2V0IixpY29uOm8uaG9tZSxjbGljazpmdW5jdGlvbih0KXt4KHQsIm1hcGJveCIpfX0sdS56b29tSW5NYXBib3g9e25hbWU6Inpvb21Jbk1hcGJveCIsX2NhdDoiem9vbWluIix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJab29tIGluIil9LGF0dHI6Inpvb20iLHZhbDoiaW4iLGljb246by56b29tX3BsdXMsY2xpY2s6eX0sdS56b29tT3V0TWFwYm94PXtuYW1lOiJ6b29tT3V0TWFwYm94IixfY2F0OiJ6b29tb3V0Iix0aXRsZTpmdW5jdGlvbih0KXtyZXR1cm4gYyh0LCJab29tIG91dCIpfSxhdHRyOiJ6b29tIix2YWw6Im91dCIsaWNvbjpvLnpvb21fbWludXMsY2xpY2s6eX19LHsiLi4vLi4vZm9udHMvcGxvdGljb24iOjc1NSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6ODMxLCIuLi8uLi9wbG90cy9wbG90cyI6ODkwLCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9zaGFwZXMvZHJhdyI6NzIzfV0sNzAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vYnV0dG9ucyIpLGk9T2JqZWN0LmtleXMobiksYT1bImRyYXdsaW5lIiwiZHJhd29wZW5wYXRoIiwiZHJhd2Nsb3NlZHBhdGgiLCJkcmF3Y2lyY2xlIiwiZHJhd3JlY3QiLCJlcmFzZXNoYXBlIl0sbz1bInYxaG92ZXJtb2RlIiwiaG92ZXJjbG9zZXN0IiwiaG92ZXJjb21wYXJlIiwidG9nZ2xlaG92ZXIiLCJ0b2dnbGVzcGlrZWxpbmVzIl0uY29uY2F0KGEpLHM9W107aS5mb3JFYWNoKChmdW5jdGlvbih0KXshZnVuY3Rpb24odCl7aWYoLTE9PT1vLmluZGV4T2YodC5fY2F0fHx0Lm5hbWUpKXt2YXIgZT10Lm5hbWUscj0odC5fY2F0fHx0Lm5hbWUpLnRvTG93ZXJDYXNlKCk7LTE9PT1zLmluZGV4T2YoZSkmJnMucHVzaChlKSwtMT09PXMuaW5kZXhPZihyKSYmcy5wdXNoKHIpfX0oblt0XSl9KSkscy5zb3J0KCksZS5leHBvcnRzPXtEUkFXX01PREVTOmEsYmFja0J1dHRvbnM6byxmb3JlQnV0dG9uczpzfX0seyIuL2J1dHRvbnMiOjY5OX1dLDcwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2NvbG9yIiksYT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksbz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Lm1vZGViYXJ8fHt9LHM9YS5uZXdDb250YWluZXIoZSwibW9kZWJhciIpO2Z1bmN0aW9uIGwodCxlKXtyZXR1cm4gbi5jb2VyY2UocixzLG8sdCxlKX1sKCJvcmllbnRhdGlvbiIpLGwoImJnY29sb3IiLGkuYWRkT3BhY2l0eShlLnBhcGVyX2JnY29sb3IsLjUpKTt2YXIgYz1pLmNvbnRyYXN0KGkucmdiKGUubW9kZWJhci5iZ2NvbG9yKSk7bCgiY29sb3IiLGkuYWRkT3BhY2l0eShjLC4zKSksbCgiYWN0aXZlY29sb3IiLGkuYWRkT3BhY2l0eShjLC43KSksbCgidWlyZXZpc2lvbiIsZS51aXJldmlzaW9uKSxsKCJhZGQiKSxsKCJyZW1vdmUiKX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vY29sb3IiOjYzOSwiLi9hdHRyaWJ1dGVzIjo2OTh9XSw3MDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6Im1vZGViYXIiLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLG1hbmFnZTp0KCIuL21hbmFnZSIpfX0seyIuL2F0dHJpYnV0ZXMiOjY5OCwiLi9kZWZhdWx0cyI6NzAxLCIuL21hbmFnZSI6NzAzfV0sNzAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLGk9dCgiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvc3VidHlwZXMiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi9meC9oZWxwZXJzIikuaXNVbmlmaWVkSG92ZXIscz10KCIuL21vZGViYXIiKSxsPXQoIi4vYnV0dG9ucyIpLGM9dCgiLi9jb25zdGFudHMiKS5EUkFXX01PREVTO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5fY29udGV4dCx1PWUuX21vZGVCYXI7aWYoci5kaXNwbGF5TW9kZUJhcnx8ci53YXRlcm1hcmspe2lmKCFBcnJheS5pc0FycmF5KHIubW9kZUJhckJ1dHRvbnNUb1JlbW92ZSkpdGhyb3cgbmV3IEVycm9yKFsiKm1vZGVCYXJCdXR0b25zVG9SZW1vdmUqIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyIsIm11c3QgYmUgYW4gYXJyYXkuIl0uam9pbigiICIpKTtpZighQXJyYXkuaXNBcnJheShyLm1vZGVCYXJCdXR0b25zVG9BZGQpKXRocm93IG5ldyBFcnJvcihbIiptb2RlQmFyQnV0dG9uc1RvQWRkKiBjb25maWd1cmF0aW9uIG9wdGlvbnMiLCJtdXN0IGJlIGFuIGFycmF5LiJdLmpvaW4oIiAiKSk7dmFyIGYsaD1yLm1vZGVCYXJCdXR0b25zO2Y9QXJyYXkuaXNBcnJheShoKSYmaC5sZW5ndGg/ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspZm9yKHZhciByPXRbZV0sbj0wO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dO2lmKCJzdHJpbmciPT10eXBlb2YgaSl7aWYodm9pZCAwPT09bFtpXSl0aHJvdyBuZXcgRXJyb3IoWyIqbW9kZUJhckJ1dHRvbnMqIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyIsImludmFsaWQgYnV0dG9uIG5hbWUiXS5qb2luKCIgIikpO3RbZV1bbl09bFtpXX19cmV0dXJuIHR9KGgpOiFyLmRpc3BsYXlNb2RlQmFyJiZyLndhdGVybWFyaz9bXTpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5fZnVsbERhdGEscz10Ll9jb250ZXh0O2Z1bmN0aW9uIHUodCxlKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe2lmKGUudG9Mb3dlckNhc2UoKT09PXQudG9Mb3dlckNhc2UoKSlyZXR1cm4hMH1lbHNle3ZhciByPWUubmFtZSxuPWUuX2NhdHx8ZS5uYW1lO2lmKHI9PT10fHxuPT09dC50b0xvd2VyQ2FzZSgpKXJldHVybiEwfXJldHVybiExfXZhciBmPWUubW9kZWJhci5hZGQ7InN0cmluZyI9PXR5cGVvZiBmJiYoZj1bZl0pO3ZhciBoPWUubW9kZWJhci5yZW1vdmU7InN0cmluZyI9PXR5cGVvZiBoJiYoaD1baF0pO3ZhciBwPXMubW9kZUJhckJ1dHRvbnNUb0FkZC5jb25jYXQoZi5maWx0ZXIoKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8cy5tb2RlQmFyQnV0dG9uc1RvUmVtb3ZlLmxlbmd0aDtlKyspaWYodSh0LHMubW9kZUJhckJ1dHRvbnNUb1JlbW92ZVtlXSkpcmV0dXJuITE7cmV0dXJuITB9KSkpLGQ9cy5tb2RlQmFyQnV0dG9uc1RvUmVtb3ZlLmNvbmNhdChoLmZpbHRlcigoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTxzLm1vZGVCYXJCdXR0b25zVG9BZGQubGVuZ3RoO2UrKylpZih1KHQscy5tb2RlQmFyQnV0dG9uc1RvQWRkW2VdKSlyZXR1cm4hMTtyZXR1cm4hMH0pKSksbT1lLl9oYXMoImNhcnRlc2lhbiIpLGc9ZS5faGFzKCJnbDNkIiksdj1lLl9oYXMoImdlbyIpLHk9ZS5faGFzKCJwaWUiKSx4PWUuX2hhcygiZnVubmVsYXJlYSIpLGI9ZS5faGFzKCJnbDJkIiksXz1lLl9oYXMoInRlcm5hcnkiKSx3PWUuX2hhcygibWFwYm94IiksVD1lLl9oYXMoInBvbGFyIiksaz1lLl9oYXMoInNhbmtleSIpLEE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW4ubGlzdCh7X2Z1bGxMYXlvdXQ6dH0sbnVsbCwhMCkscj0wO3I8ZS5sZW5ndGg7cisrKWlmKCFlW3JdLmZpeGVkcmFuZ2UpcmV0dXJuITE7cmV0dXJuITB9KGUpLE09byhlLmhvdmVybW9kZSksUz1bXTtmdW5jdGlvbiBFKHQpe2lmKHQubGVuZ3RoKXtmb3IodmFyIGU9W10scj0wO3I8dC5sZW5ndGg7cisrKXtmb3IodmFyIG49dFtyXSxpPWxbbl0sYT1pLm5hbWUudG9Mb3dlckNhc2UoKSxvPShpLl9jYXR8fGkubmFtZSkudG9Mb3dlckNhc2UoKSxzPSExLGM9MDtjPGQubGVuZ3RoO2MrKyl7dmFyIHU9ZFtjXS50b0xvd2VyQ2FzZSgpO2lmKHU9PT1hfHx1PT09byl7cz0hMDticmVha319c3x8ZS5wdXNoKGxbbl0pfVMucHVzaChlKX19dmFyIEw9WyJ0b0ltYWdlIl07cy5zaG93RWRpdEluQ2hhcnRTdHVkaW8/TC5wdXNoKCJlZGl0SW5DaGFydFN0dWRpbyIpOnMuc2hvd1NlbmRUb0Nsb3VkJiZMLnB1c2goInNlbmREYXRhVG9DbG91ZCIpO0UoTCk7dmFyIEM9W10sUD1bXSxJPVtdLE89W107KG18fGJ8fHl8fHh8fF8pK3YrZyt3K1Q+MT8oUD1bInRvZ2dsZUhvdmVyIl0sST1bInJlc2V0Vmlld3MiXSk6dj8oQz1bInpvb21JbkdlbyIsInpvb21PdXRHZW8iXSxQPVsiaG92ZXJDbG9zZXN0R2VvIl0sST1bInJlc2V0R2VvIl0pOmc/KFA9WyJob3ZlckNsb3Nlc3QzZCJdLEk9WyJyZXNldENhbWVyYURlZmF1bHQzZCIsInJlc2V0Q2FtZXJhTGFzdFNhdmUzZCJdKTp3PyhDPVsiem9vbUluTWFwYm94Iiwiem9vbU91dE1hcGJveCJdLFA9WyJ0b2dnbGVIb3ZlciJdLEk9WyJyZXNldFZpZXdNYXBib3giXSk6Yj9QPVsiaG92ZXJDbG9zZXN0R2wyZCJdOnk/UD1bImhvdmVyQ2xvc2VzdFBpZSJdOms/KFA9WyJob3ZlckNsb3Nlc3RDYXJ0ZXNpYW4iLCJob3ZlckNvbXBhcmVDYXJ0ZXNpYW4iXSxJPVsicmVzZXRWaWV3U2Fua2V5Il0pOlA9WyJ0b2dnbGVIb3ZlciJdO20mJihQPVsidG9nZ2xlU3Bpa2VsaW5lcyIsImhvdmVyQ2xvc2VzdENhcnRlc2lhbiIsImhvdmVyQ29tcGFyZUNhcnRlc2lhbiJdKTsoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYoIWEudHJhY2VJcyh0W2VdLCJub0hvdmVyIikpcmV0dXJuITE7cmV0dXJuITB9KHIpfHxNKSYmKFA9W10pOyFtJiYhYnx8QXx8KEM9WyJ6b29tSW4yZCIsInpvb21PdXQyZCIsImF1dG9TY2FsZTJkIl0sInJlc2V0Vmlld3MiIT09SVswXSYmKEk9WyJyZXNldFNjYWxlMmQiXSkpO2c/Tz1bInpvb20zZCIsInBhbjNkIiwib3JiaXRSb3RhdGlvbiIsInRhYmxlUm90YXRpb24iXToobXx8YikmJiFBfHxfP089WyJ6b29tMmQiLCJwYW4yZCJdOnd8fHY/Tz1bInBhbjJkIl06VCYmKE89WyJ6b29tMmQiXSk7KGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0hMSxyPTA7cjx0Lmxlbmd0aCYmIWU7cisrKXt2YXIgbj10W3JdO24uX21vZHVsZSYmbi5fbW9kdWxlLnNlbGVjdFBvaW50cyYmKGEudHJhY2VJcyhuLCJzY2F0dGVyLWxpa2UiKT8oaS5oYXNNYXJrZXJzKG4pfHxpLmhhc1RleHQobikpJiYoZT0hMCk6YS50cmFjZUlzKG4sImJveC12aW9saW4iKSYmImFsbCIhPT1uLmJveHBvaW50cyYmImFsbCIhPT1uLnBvaW50c3x8KGU9ITApKX1yZXR1cm4gZX0pKHIpJiZPLnB1c2goInNlbGVjdDJkIiwibGFzc28yZCIpO3ZhciB6PVtdLEQ9ZnVuY3Rpb24odCl7LTE9PT16LmluZGV4T2YodCkmJi0xIT09UC5pbmRleE9mKHQpJiZ6LnB1c2godCl9O2lmKEFycmF5LmlzQXJyYXkocCkpe2Zvcih2YXIgUj1bXSxGPTA7RjxwLmxlbmd0aDtGKyspe3ZhciBCPXBbRl07InN0cmluZyI9PXR5cGVvZiBCPyhCPUIudG9Mb3dlckNhc2UoKSwtMSE9PWMuaW5kZXhPZihCKT8oZS5faGFzKCJtYXBib3giKXx8ZS5faGFzKCJjYXJ0ZXNpYW4iKSkmJk8ucHVzaChCKToidG9nZ2xlc3Bpa2VsaW5lcyI9PT1CP0QoInRvZ2dsZVNwaWtlbGluZXMiKToidG9nZ2xlaG92ZXIiPT09Qj9EKCJ0b2dnbGVIb3ZlciIpOiJob3ZlcmNvbXBhcmUiPT09Qj9EKCJob3ZlckNvbXBhcmVDYXJ0ZXNpYW4iKToiaG92ZXJjbG9zZXN0Ij09PUI/KEQoImhvdmVyQ2xvc2VzdENhcnRlc2lhbiIpLEQoImhvdmVyQ2xvc2VzdEdlbyIpLEQoImhvdmVyQ2xvc2VzdDNkIiksRCgiaG92ZXJDbG9zZXN0R2wyZCIpLEQoImhvdmVyQ2xvc2VzdFBpZSIpKToidjFob3Zlcm1vZGUiPT09QiYmKEQoInRvZ2dsZUhvdmVyIiksRCgiaG92ZXJDbG9zZXN0Q2FydGVzaWFuIiksRCgiaG92ZXJDb21wYXJlQ2FydGVzaWFuIiksRCgiaG92ZXJDbG9zZXN0R2VvIiksRCgiaG92ZXJDbG9zZXN0M2QiKSxEKCJob3ZlckNsb3Nlc3RHbDJkIiksRCgiaG92ZXJDbG9zZXN0UGllIikpKTpSLnB1c2goQil9cD1SfXJldHVybiBFKE8pLEUoQy5jb25jYXQoSSkpLEUoeiksZnVuY3Rpb24odCxlKXtpZihlLmxlbmd0aClpZihBcnJheS5pc0FycmF5KGVbMF0pKWZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXQucHVzaChlW3JdKTtlbHNlIHQucHVzaChlKTtyZXR1cm4gdH0oUyxwKX0odCksdT91LnVwZGF0ZSh0LGYpOmUuX21vZGVCYXI9cyh0LGYpfWVsc2UgdSYmKHUuZGVzdHJveSgpLGRlbGV0ZSBlLl9tb2RlQmFyKX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo4MzEsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL3N1YnR5cGVzIjoxMjE2LCIuLi9meC9oZWxwZXJzIjo2NzUsIi4vYnV0dG9ucyI6Njk5LCIuL2NvbnN0YW50cyI6NzAwLCIuL21vZGViYXIiOjcwNH1dLDcwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9mb250cy9wbG90aWNvbiIpLHM9bmV3IERPTVBhcnNlcjtmdW5jdGlvbiBsKHQpe3RoaXMuY29udGFpbmVyPXQuY29udGFpbmVyLHRoaXMuZWxlbWVudD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKSx0aGlzLnVwZGF0ZSh0LmdyYXBoSW5mbyx0LmJ1dHRvbnMpLHRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCl9dmFyIGM9bC5wcm90b3R5cGU7Yy51cGRhdGU9ZnVuY3Rpb24odCxlKXt0aGlzLmdyYXBoSW5mbz10O3ZhciByPXRoaXMuZ3JhcGhJbmZvLl9jb250ZXh0LG49dGhpcy5ncmFwaEluZm8uX2Z1bGxMYXlvdXQsaT0ibW9kZWJhci0iK24uX3VpZDt0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCJpZCIsaSksdGhpcy5fdWlkPWksdGhpcy5lbGVtZW50LmNsYXNzTmFtZT0ibW9kZWJhciIsImhvdmVyIj09PXIuZGlzcGxheU1vZGVCYXImJih0aGlzLmVsZW1lbnQuY2xhc3NOYW1lKz0iIG1vZGViYXItLWhvdmVyIGVhc2UtYmciKSwidiI9PT1uLm1vZGViYXIub3JpZW50YXRpb24mJih0aGlzLmVsZW1lbnQuY2xhc3NOYW1lKz0iIHZlcnRpY2FsIixlPWUucmV2ZXJzZSgpKTt2YXIgbz1uLm1vZGViYXIscz0iaG92ZXIiPT09ci5kaXNwbGF5TW9kZUJhcj8iLmpzLXBsb3RseS1wbG90IC5wbG90bHk6aG92ZXIgIjoiIjthLmRlbGV0ZVJlbGF0ZWRTdHlsZVJ1bGUoaSksYS5hZGRSZWxhdGVkU3R5bGVSdWxlKGkscysiIyIraSsiIC5tb2RlYmFyLWdyb3VwIiwiYmFja2dyb3VuZC1jb2xvcjogIitvLmJnY29sb3IpLGEuYWRkUmVsYXRlZFN0eWxlUnVsZShpLCIjIitpKyIgLm1vZGViYXItYnRuIC5pY29uIHBhdGgiLCJmaWxsOiAiK28uY29sb3IpLGEuYWRkUmVsYXRlZFN0eWxlUnVsZShpLCIjIitpKyIgLm1vZGViYXItYnRuOmhvdmVyIC5pY29uIHBhdGgiLCJmaWxsOiAiK28uYWN0aXZlY29sb3IpLGEuYWRkUmVsYXRlZFN0eWxlUnVsZShpLCIjIitpKyIgLm1vZGViYXItYnRuLmFjdGl2ZSAuaWNvbiBwYXRoIiwiZmlsbDogIitvLmFjdGl2ZWNvbG9yKTt2YXIgbD0hdGhpcy5oYXNCdXR0b25zKGUpLGM9dGhpcy5oYXNMb2dvIT09ci5kaXNwbGF5bG9nbyx1PXRoaXMubG9jYWxlIT09ci5sb2NhbGU7aWYodGhpcy5sb2NhbGU9ci5sb2NhbGUsKGx8fGN8fHUpJiYodGhpcy5yZW1vdmVBbGxCdXR0b25zKCksdGhpcy51cGRhdGVCdXR0b25zKGUpLHIud2F0ZXJtYXJrfHxyLmRpc3BsYXlsb2dvKSl7dmFyIGY9dGhpcy5nZXRMb2dvKCk7ci53YXRlcm1hcmsmJihmLmNsYXNzTmFtZT1mLmNsYXNzTmFtZSsiIHdhdGVybWFyayIpLCJ2Ij09PW4ubW9kZWJhci5vcmllbnRhdGlvbj90aGlzLmVsZW1lbnQuaW5zZXJ0QmVmb3JlKGYsdGhpcy5lbGVtZW50LmNoaWxkTm9kZXNbMF0pOnRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZChmKSx0aGlzLmhhc0xvZ289ITB9dGhpcy51cGRhdGVBY3RpdmVCdXR0b24oKX0sYy51cGRhdGVCdXR0b25zPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXM7dGhpcy5idXR0b25zPXQsdGhpcy5idXR0b25FbGVtZW50cz1bXSx0aGlzLmJ1dHRvbnNOYW1lcz1bXSx0aGlzLmJ1dHRvbnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9ZS5jcmVhdGVHcm91cCgpO3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIG49dC5uYW1lO2lmKCFuKXRocm93IG5ldyBFcnJvcigibXVzdCBwcm92aWRlIGJ1dHRvbiAnbmFtZScgaW4gYnV0dG9uIGNvbmZpZyIpO2lmKC0xIT09ZS5idXR0b25zTmFtZXMuaW5kZXhPZihuKSl0aHJvdyBuZXcgRXJyb3IoImJ1dHRvbiBuYW1lICciK24rIicgaXMgdGFrZW4iKTtlLmJ1dHRvbnNOYW1lcy5wdXNoKG4pO3ZhciBpPWUuY3JlYXRlQnV0dG9uKHQpO2UuYnV0dG9uRWxlbWVudHMucHVzaChpKSxyLmFwcGVuZENoaWxkKGkpfSkpLGUuZWxlbWVudC5hcHBlbmRDaGlsZChyKX0pKX0sYy5jcmVhdGVHcm91cD1mdW5jdGlvbigpe3ZhciB0PWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO3JldHVybiB0LmNsYXNzTmFtZT0ibW9kZWJhci1ncm91cCIsdH0sYy5jcmVhdGVCdXR0b249ZnVuY3Rpb24odCl7dmFyIGU9dGhpcyxyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKTtyLnNldEF0dHJpYnV0ZSgicmVsIiwidG9vbHRpcCIpLHIuY2xhc3NOYW1lPSJtb2RlYmFyLWJ0biI7dmFyIGk9dC50aXRsZTt2b2lkIDA9PT1pP2k9dC5uYW1lOiJmdW5jdGlvbiI9PXR5cGVvZiBpJiYoaT1pKHRoaXMuZ3JhcGhJbmZvKSksKGl8fDA9PT1pKSYmci5zZXRBdHRyaWJ1dGUoImRhdGEtdGl0bGUiLGkpLHZvaWQgMCE9PXQuYXR0ciYmci5zZXRBdHRyaWJ1dGUoImRhdGEtYXR0ciIsdC5hdHRyKTt2YXIgYT10LnZhbDtpZih2b2lkIDAhPT1hJiYoImZ1bmN0aW9uIj09dHlwZW9mIGEmJihhPWEodGhpcy5ncmFwaEluZm8pKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS12YWwiLGEpKSwiZnVuY3Rpb24iIT10eXBlb2YgdC5jbGljayl0aHJvdyBuZXcgRXJyb3IoIm11c3QgcHJvdmlkZSBidXR0b24gJ2NsaWNrJyBmdW5jdGlvbiBpbiBidXR0b24gY29uZmlnIik7ci5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKHIpe3QuY2xpY2soZS5ncmFwaEluZm8sciksZS51cGRhdGVBY3RpdmVCdXR0b24oci5jdXJyZW50VGFyZ2V0KX0pKSxyLnNldEF0dHJpYnV0ZSgiZGF0YS10b2dnbGUiLHQudG9nZ2xlfHwhMSksdC50b2dnbGUmJm4uc2VsZWN0KHIpLmNsYXNzZWQoImFjdGl2ZSIsITApO3ZhciBzPXQuaWNvbjtyZXR1cm4iZnVuY3Rpb24iPT10eXBlb2Ygcz9yLmFwcGVuZENoaWxkKHMoKSk6ci5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUljb24oc3x8by5xdWVzdGlvbikpLHIuc2V0QXR0cmlidXRlKCJkYXRhLWdyYXZpdHkiLHQuZ3Jhdml0eXx8Im4iKSxyfSxjLmNyZWF0ZUljb249ZnVuY3Rpb24odCl7dmFyIGUscj1pKHQuaGVpZ2h0KT9OdW1iZXIodC5oZWlnaHQpOnQuYXNjZW50LXQuZGVzY2VudCxuPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI7aWYodC5wYXRoKXsoZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50TlMobiwic3ZnIikpLnNldEF0dHJpYnV0ZSgidmlld0JveCIsWzAsMCx0LndpZHRoLHJdLmpvaW4oIiAiKSksZS5zZXRBdHRyaWJ1dGUoImNsYXNzIiwiaWNvbiIpO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhuLCJwYXRoIik7YS5zZXRBdHRyaWJ1dGUoImQiLHQucGF0aCksdC50cmFuc2Zvcm0/YS5zZXRBdHRyaWJ1dGUoInRyYW5zZm9ybSIsdC50cmFuc2Zvcm0pOnZvaWQgMCE9PXQuYXNjZW50JiZhLnNldEF0dHJpYnV0ZSgidHJhbnNmb3JtIiwibWF0cml4KDEgMCAwIC0xIDAgIit0LmFzY2VudCsiKSIpLGUuYXBwZW5kQ2hpbGQoYSl9dC5zdmcmJihlPXMucGFyc2VGcm9tU3RyaW5nKHQuc3ZnLCJhcHBsaWNhdGlvbi94bWwiKS5jaGlsZE5vZGVzWzBdKTtyZXR1cm4gZS5zZXRBdHRyaWJ1dGUoImhlaWdodCIsIjFlbSIpLGUuc2V0QXR0cmlidXRlKCJ3aWR0aCIsIjFlbSIpLGV9LGMudXBkYXRlQWN0aXZlQnV0dG9uPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ3JhcGhJbmZvLl9mdWxsTGF5b3V0LHI9dm9pZCAwIT09dD90LmdldEF0dHJpYnV0ZSgiZGF0YS1hdHRyIik6bnVsbDt0aGlzLmJ1dHRvbkVsZW1lbnRzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpPXQuZ2V0QXR0cmlidXRlKCJkYXRhLXZhbCIpfHwhMCxvPXQuZ2V0QXR0cmlidXRlKCJkYXRhLWF0dHIiKSxzPSJ0cnVlIj09PXQuZ2V0QXR0cmlidXRlKCJkYXRhLXRvZ2dsZSIpLGw9bi5zZWxlY3QodCk7aWYocylvPT09ciYmbC5jbGFzc2VkKCJhY3RpdmUiLCFsLmNsYXNzZWQoImFjdGl2ZSIpKTtlbHNle3ZhciBjPW51bGw9PT1vP286YS5uZXN0ZWRQcm9wZXJ0eShlLG8pLmdldCgpO2wuY2xhc3NlZCgiYWN0aXZlIixjPT09aSl9fSkpfSxjLmhhc0J1dHRvbnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5idXR0b25zO2lmKCFlKXJldHVybiExO2lmKHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDsrK3Ipe2lmKHRbcl0ubGVuZ3RoIT09ZVtyXS5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBuPTA7bjx0W3JdLmxlbmd0aDtuKyspaWYodFtyXVtuXS5uYW1lIT09ZVtyXVtuXS5uYW1lKXJldHVybiExfXJldHVybiEwfSxjLmdldExvZ289ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNyZWF0ZUdyb3VwKCksZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIik7cmV0dXJuIGUuaHJlZj0iaHR0cHM6Ly9wbG90bHkuY29tLyIsZS50YXJnZXQ9Il9ibGFuayIsZS5zZXRBdHRyaWJ1dGUoImRhdGEtdGl0bGUiLGEuXyh0aGlzLmdyYXBoSW5mbywiUHJvZHVjZWQgd2l0aCBQbG90bHkiKSksZS5jbGFzc05hbWU9Im1vZGViYXItYnRuIHBsb3RseWpzaWNvbiBtb2RlYmFyLWJ0bi0tbG9nbyIsZS5hcHBlbmRDaGlsZCh0aGlzLmNyZWF0ZUljb24oby5uZXdwbG90bHlsb2dvKSksdC5hcHBlbmRDaGlsZChlKSx0fSxjLnJlbW92ZUFsbEJ1dHRvbnM9ZnVuY3Rpb24oKXtmb3IoO3RoaXMuZWxlbWVudC5maXJzdENoaWxkOyl0aGlzLmVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50LmZpcnN0Q2hpbGQpO3RoaXMuaGFzTG9nbz0hMX0sYy5kZXN0cm95PWZ1bmN0aW9uKCl7YS5yZW1vdmVFbGVtZW50KHRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5tb2RlYmFyIikpLGEuZGVsZXRlUmVsYXRlZFN0eWxlUnVsZSh0aGlzLl91aWQpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGk9bmV3IGwoe2dyYXBoSW5mbzp0LGNvbnRhaW5lcjpyLl9tb2RlYmFyZGl2Lm5vZGUoKSxidXR0b25zOmV9KTtyZXR1cm4gci5fcHJpdmF0ZXBsb3QmJm4uc2VsZWN0KGkuZWxlbWVudCkuYXBwZW5kKCJzcGFuIikuY2xhc3NlZCgiYmFkZ2UtcHJpdmF0ZSBmbG9hdC0tbGVmdCIsITApLnRleHQoIlBSSVZBVEUiKSxpfX0seyIuLi8uLi9mb250cy9wbG90aWNvbiI6NzU1LCIuLi8uLi9saWIiOjc3NiwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw3MDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuLi9jb2xvci9hdHRyaWJ1dGVzIiksYT0oMCx0KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXkpKCJidXR0b24iLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sc3RlcDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibW9udGgiLCJ5ZWFyIiwiZGF5IiwiaG91ciIsIm1pbnV0ZSIsInNlY29uZCIsImFsbCJdLGRmbHQ6Im1vbnRoIixlZGl0VHlwZToicGxvdCJ9LHN0ZXBtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJiYWNrd2FyZCIsInRvZGF0ZSJdLGRmbHQ6ImJhY2t3YXJkIixlZGl0VHlwZToicGxvdCJ9LGNvdW50Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGxhYmVsOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSk7ZS5leHBvcnRzPXt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToicGxvdCJ9LGJ1dHRvbnM6YSx4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6MyxlZGl0VHlwZToicGxvdCJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0IixlZGl0VHlwZToicGxvdCJ9LHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGVkaXRUeXBlOiJwbG90In0seWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6ImJvdHRvbSIsZWRpdFR5cGU6InBsb3QifSxmb250Om4oe2VkaXRUeXBlOiJwbG90In0pLGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkubGlnaHRMaW5lLGVkaXRUeXBlOiJwbG90In0sYWN0aXZlY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToicGxvdCJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJwbG90In0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifX0seyIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuLi9jb2xvci9hdHRyaWJ1dGVzIjo2Mzh9XSw3MDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXt5UGFkOi4wMixtaW5CdXR0b25XaWR0aDozMCxyeDozLHJ5OjMsbGlnaHRBbW91bnQ6MjUsZGFya0Ftb3VudDoxMH19LHt9XSw3MDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9jb2xvciIpLGE9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLG89dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIikscz10KCIuL2F0dHJpYnV0ZXMiKSxsPXQoIi4vY29uc3RhbnRzIik7ZnVuY3Rpb24gYyh0LGUscixpKXt2YXIgYT1pLmNhbGVuZGFyO2Z1bmN0aW9uIG8ocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMuYnV0dG9ucyxyLGkpfWlmKG8oInZpc2libGUiKSl7dmFyIGw9bygic3RlcCIpOyJhbGwiIT09bCYmKCFhfHwiZ3JlZ29yaWFuIj09PWF8fCJtb250aCIhPT1sJiYieWVhciIhPT1sP28oInN0ZXBtb2RlIik6ZS5zdGVwbW9kZT0iYmFja3dhcmQiLG8oImNvdW50IikpLG8oImxhYmVsIil9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscix1LGYpe3ZhciBoPXQucmFuZ2VzZWxlY3Rvcnx8e30scD1hLm5ld0NvbnRhaW5lcihlLCJyYW5nZXNlbGVjdG9yIik7ZnVuY3Rpb24gZCh0LGUpe3JldHVybiBuLmNvZXJjZShoLHAscyx0LGUpfWlmKGQoInZpc2libGUiLG8oaCxwLHtuYW1lOiJidXR0b25zIixoYW5kbGVJdGVtRGVmYXVsdHM6YyxjYWxlbmRhcjpmfSkubGVuZ3RoPjApKXt2YXIgbT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXIuZmlsdGVyKChmdW5jdGlvbihyKXtyZXR1cm4gZVtyXS5hbmNob3I9PT10Ll9pZH0pKSxpPTAsYT0wO2E8bi5sZW5ndGg7YSsrKXt2YXIgbz1lW25bYV1dLmRvbWFpbjtvJiYoaT1NYXRoLm1heChvWzFdLGkpKX1yZXR1cm5bdC5kb21haW5bMF0saStsLnlQYWRdfShlLHIsdSk7ZCgieCIsbVswXSksZCgieSIsbVsxXSksbi5ub25lT3JBbGwodCxlLFsieCIsInkiXSksZCgieGFuY2hvciIpLGQoInlhbmNob3IiKSxuLmNvZXJjZUZvbnQoZCwiZm9udCIsci5mb250KTt2YXIgZz1kKCJiZ2NvbG9yIik7ZCgiYWN0aXZlY29sb3IiLGkuY29udHJhc3QoZyxsLmxpZ2h0QW1vdW50LGwuZGFya0Ftb3VudCkpLGQoImJvcmRlcmNvbG9yIiksZCgiYm9yZGVyd2lkdGgiKX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6ODIyLCIuLi9jb2xvciI6NjM5LCIuL2F0dHJpYnV0ZXMiOjcwNSwiLi9jb25zdGFudHMiOjcwNn1dLDcwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4uL2NvbG9yIikscz10KCIuLi9kcmF3aW5nIiksbD10KCIuLi8uLi9saWIiKSxjPWwuc3RyVHJhbnNsYXRlLHU9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksZj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKSxwPWguTElORV9TUEFDSU5HLGQ9aC5GUk9NX1RMLG09aC5GUk9NX0JSLGc9dCgiLi9jb25zdGFudHMiKSx2PXQoIi4vZ2V0X3VwZGF0ZV9vYmplY3QiKTtmdW5jdGlvbiB5KHQpe3JldHVybiB0Ll9pZH1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgbj1sLmVuc3VyZVNpbmdsZSh0LCJyZWN0Iiwic2VsZWN0b3ItcmVjdCIsKGZ1bmN0aW9uKHQpe3QuYXR0cigic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpfSkpO24uYXR0cih7cng6Zy5yeCxyeTpnLnJ5fSksbi5jYWxsKG8uc3Ryb2tlLGUuYm9yZGVyY29sb3IpLmNhbGwoby5maWxsLGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuX2lzQWN0aXZlfHxlLl9pc0hvdmVyZWQ/dC5hY3RpdmVjb2xvcjp0LmJnY29sb3J9KGUscikpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGUuYm9yZGVyd2lkdGgrInB4Iil9ZnVuY3Rpb24gYih0LGUscixuKXtsLmVuc3VyZVNpbmdsZSh0LCJ0ZXh0Iiwic2VsZWN0b3ItdGV4dCIsKGZ1bmN0aW9uKHQpe3QuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKX0pKS5jYWxsKHMuZm9udCxlLmZvbnQpLnRleHQoZnVuY3Rpb24odCxlKXtpZih0LmxhYmVsKXJldHVybiBlP2wudGVtcGxhdGVTdHJpbmcodC5sYWJlbCxlKTp0LmxhYmVsO3JldHVybiJhbGwiPT09dC5zdGVwPyJhbGwiOnQuY291bnQrdC5zdGVwLmNoYXJBdCgwKX0ocixuLl9mdWxsTGF5b3V0Ll9tZXRhKSkuY2FsbCgoZnVuY3Rpb24odCl7dS5jb252ZXJ0VG9Uc3BhbnModCxuKX0pKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dC5faW5mb2xheWVyLnNlbGVjdEFsbCgiLnJhbmdlc2VsZWN0b3IiKS5kYXRhKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1mLmxpc3QodCwieCIsITApLHI9W10sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgaT1lW25dO2kucmFuZ2VzZWxlY3RvciYmaS5yYW5nZXNlbGVjdG9yLnZpc2libGUmJnIucHVzaChpKX1yZXR1cm4gcn0odCkseSk7ZS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInJhbmdlc2VsZWN0b3IiLCEwKSxlLmV4aXQoKS5yZW1vdmUoKSxlLnN0eWxlKHtjdXJzb3I6InBvaW50ZXIiLCJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KSxlLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLG89ZSxmPW8ucmFuZ2VzZWxlY3RvcixoPXIuc2VsZWN0QWxsKCJnLmJ1dHRvbiIpLmRhdGEobC5maWx0ZXJWaXNpYmxlKGYuYnV0dG9ucykpO2guZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJidXR0b24iLCEwKSxoLmV4aXQoKS5yZW1vdmUoKSxoLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGE9dihvLGUpO2UuX2lzQWN0aXZlPWZ1bmN0aW9uKHQsZSxyKXtpZigiYWxsIj09PWUuc3RlcClyZXR1cm4hMD09PXQuYXV0b3JhbmdlO3ZhciBuPU9iamVjdC5rZXlzKHIpO3JldHVybiB0LnJhbmdlWzBdPT09cltuWzBdXSYmdC5yYW5nZVsxXT09PXJbblsxXV19KG8sZSxhKSxyLmNhbGwoeCxmLGUpLHIuY2FsbChiLGYsZSx0KSxyLm9uKCJjbGljayIsKGZ1bmN0aW9uKCl7dC5fZHJhZ2dlZHx8aS5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsYSl9KSksci5vbigibW91c2VvdmVyIiwoZnVuY3Rpb24oKXtlLl9pc0hvdmVyZWQ9ITAsci5jYWxsKHgsZixlKX0pKSxyLm9uKCJtb3VzZW91dCIsKGZ1bmN0aW9uKCl7ZS5faXNIb3ZlcmVkPSExLHIuY2FsbCh4LGYsZSl9KSl9KSksZnVuY3Rpb24odCxlLHIsaSxvKXt2YXIgZj0wLGg9MCx2PXIuYm9yZGVyd2lkdGg7ZS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpLnNlbGVjdCgiLnNlbGVjdG9yLXRleHQiKSxlPXIuZm9udC5zaXplKnAsaT1NYXRoLm1heChlKnUubGluZUNvdW50KHQpLDE2KSszO2g9TWF0aC5tYXgoaCxpKX0pKSxlLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT10LnNlbGVjdCgiLnNlbGVjdG9yLXJlY3QiKSxpPXQuc2VsZWN0KCIuc2VsZWN0b3ItdGV4dCIpLGE9aS5ub2RlKCkmJnMuYkJveChpLm5vZGUoKSkud2lkdGgsbz1yLmZvbnQuc2l6ZSpwLGw9dS5saW5lQ291bnQoaSksZD1NYXRoLm1heChhKzEwLGcubWluQnV0dG9uV2lkdGgpO3QuYXR0cigidHJhbnNmb3JtIixjKHYrZix2KSksZS5hdHRyKHt4OjAseTowLHdpZHRoOmQsaGVpZ2h0Omh9KSx1LnBvc2l0aW9uVGV4dChpLGQvMixoLzItKGwtMSkqby8yKzMpLGYrPWQrNX0pKTt2YXIgeT10Ll9mdWxsTGF5b3V0Ll9zaXplLHg9eS5sK3kudypyLngsYj15LnQreS5oKigxLXIueSksXz0ibGVmdCI7bC5pc1JpZ2h0QW5jaG9yKHIpJiYoeC09ZixfPSJyaWdodCIpO2wuaXNDZW50ZXJBbmNob3IocikmJih4LT1mLzIsXz0iY2VudGVyIik7dmFyIHc9InRvcCI7bC5pc0JvdHRvbUFuY2hvcihyKSYmKGItPWgsdz0iYm90dG9tIik7bC5pc01pZGRsZUFuY2hvcihyKSYmKGItPWgvMix3PSJtaWRkbGUiKTtmPU1hdGguY2VpbChmKSxoPU1hdGguY2VpbChoKSx4PU1hdGgucm91bmQoeCksYj1NYXRoLnJvdW5kKGIpLGEuYXV0b01hcmdpbih0LGkrIi1yYW5nZS1zZWxlY3RvciIse3g6ci54LHk6ci55LGw6ZipkW19dLHI6ZiptW19dLGI6aCptW3ddLHQ6aCpkW3ddfSksby5hdHRyKCJ0cmFuc2Zvcm0iLGMoeCxiKSl9KHQsaCxmLG8uX25hbWUscil9KSl9fSx7Ii4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjc0NCwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwiLi4vLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vY29sb3IiOjYzOSwiLi4vZHJhd2luZyI6NjYxLCIuL2NvbnN0YW50cyI6NzA2LCIuL2dldF91cGRhdGVfb2JqZWN0Ijo3MDksIkBwbG90bHkvZDMiOjU4fV0sNzA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzLXRpbWUiKSxpPXQoIi4uLy4uL2xpYiIpLnRpdGxlQ2FzZTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9uYW1lLGE9e307aWYoImFsbCI9PT1lLnN0ZXApYVtyKyIuYXV0b3JhbmdlIl09ITA7ZWxzZXt2YXIgbz1mdW5jdGlvbih0LGUpe3ZhciByLGE9dC5yYW5nZSxvPW5ldyBEYXRlKHQucjJsKGFbMV0pKSxzPWUuc3RlcCxsPW5bInV0YyIraShzKV0sYz1lLmNvdW50O3N3aXRjaChlLnN0ZXBtb2RlKXtjYXNlImJhY2t3YXJkIjpyPXQubDJyKCtsLm9mZnNldChvLC1jKSk7YnJlYWs7Y2FzZSJ0b2RhdGUiOnZhciB1PWwub2Zmc2V0KG8sLWMpO3I9dC5sMnIoK2wuY2VpbCh1KSl9dmFyIGY9YVsxXTtyZXR1cm5bcixmXX0odCxlKTthW3IrIi5yYW5nZVswXSJdPW9bMF0sYVtyKyIucmFuZ2VbMV0iXT1vWzFdfXJldHVybiBhfX0seyIuLi8uLi9saWIiOjc3NiwiZDMtdGltZSI6MTY5fV0sNzEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJyYW5nZXNlbGVjdG9yIixzY2hlbWE6e3N1YnBsb3RzOnt4YXhpczp7cmFuZ2VzZWxlY3Rvcjp0KCIuL2F0dHJpYnV0ZXMiKX19fSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGhhbmRsZURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxkcmF3OnQoIi4vZHJhdyIpfX0seyIuL2F0dHJpYnV0ZXMiOjcwNSwiLi9kZWZhdWx0cyI6NzA3LCIuL2RyYXciOjcwOH1dLDcxMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb2xvci9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPXtiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmJhY2tncm91bmQsZWRpdFR5cGU6InBsb3QifSxib3JkZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5kZWZhdWx0TGluZSxlZGl0VHlwZToicGxvdCJ9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJpbnRlZ2VyIixkZmx0OjAsbWluOjAsZWRpdFR5cGU6InBsb3QifSxhdXRvcmFuZ2U6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMiLGltcGxpZWRFZGl0czp7InJhbmdlWzBdIjp2b2lkIDAsInJhbmdlWzFdIjp2b2lkIDB9fSxyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19XSxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnthdXRvcmFuZ2U6ITF9fSx0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDouMTUsbWluOjAsbWF4OjEsZWRpdFR5cGU6InBsb3QifSx2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifX0seyIuLi9jb2xvci9hdHRyaWJ1dGVzIjo2Mzh9XSw3MTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIikubGlzdCxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5nZXRBdXRvUmFuZ2UsYT10KCIuL2NvbnN0YW50cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9bih0LCJ4IiwhMCkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbz1lW3JdLHM9b1thLm5hbWVdO3MmJnMudmlzaWJsZSYmcy5hdXRvcmFuZ2UmJihzLl9pbnB1dC5hdXRvcmFuZ2U9ITAscy5faW5wdXQucmFuZ2U9cy5yYW5nZT1pKHQsbykpfX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSI6ODI2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwiLi9jb25zdGFudHMiOjcxM31dLDcxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e25hbWU6InJhbmdlc2xpZGVyIixjb250YWluZXJDbGFzc05hbWU6InJhbmdlc2xpZGVyLWNvbnRhaW5lciIsYmdDbGFzc05hbWU6InJhbmdlc2xpZGVyLWJnIixyYW5nZVBsb3RDbGFzc05hbWU6InJhbmdlc2xpZGVyLXJhbmdlcGxvdCIsbWFza01pbkNsYXNzTmFtZToicmFuZ2VzbGlkZXItbWFzay1taW4iLG1hc2tNYXhDbGFzc05hbWU6InJhbmdlc2xpZGVyLW1hc2stbWF4IixzbGlkZUJveENsYXNzTmFtZToicmFuZ2VzbGlkZXItc2xpZGVib3giLGdyYWJiZXJNaW5DbGFzc05hbWU6InJhbmdlc2xpZGVyLWdyYWJiZXItbWluIixncmFiQXJlYU1pbkNsYXNzTmFtZToicmFuZ2VzbGlkZXItZ3JhYmFyZWEtbWluIixoYW5kbGVNaW5DbGFzc05hbWU6InJhbmdlc2xpZGVyLWhhbmRsZS1taW4iLGdyYWJiZXJNYXhDbGFzc05hbWU6InJhbmdlc2xpZGVyLWdyYWJiZXItbWF4IixncmFiQXJlYU1heENsYXNzTmFtZToicmFuZ2VzbGlkZXItZ3JhYmFyZWEtbWF4IixoYW5kbGVNYXhDbGFzc05hbWU6InJhbmdlc2xpZGVyLWhhbmRsZS1tYXgiLG1hc2tNaW5PcHBBeGlzQ2xhc3NOYW1lOiJyYW5nZXNsaWRlci1tYXNrLW1pbi1vcHAtYXhpcyIsbWFza01heE9wcEF4aXNDbGFzc05hbWU6InJhbmdlc2xpZGVyLW1hc2stbWF4LW9wcC1heGlzIixtYXNrQ29sb3I6InJnYmEoMCwwLDAsMC40KSIsbWFza09wcEF4aXNDb2xvcjoicmdiYSgwLDAsMCwwLjIpIixzbGlkZUJveEZpbGw6InRyYW5zcGFyZW50IixzbGlkZUJveEN1cnNvcjoiZXctcmVzaXplIixncmFiQXJlYUZpbGw6InRyYW5zcGFyZW50IixncmFiQXJlYUN1cnNvcjoiY29sLXJlc2l6ZSIsZ3JhYkFyZWFXaWR0aDoxMCxoYW5kbGVXaWR0aDo0LGhhbmRsZVJhZGl1czoxLGhhbmRsZVN0cm9rZVdpZHRoOjEsZXh0cmFQYWQ6MTV9fSx7fV0sNzE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksbz10KCIuL2F0dHJpYnV0ZXMiKSxzPXQoIi4vb3BwYXhpc19hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbD10W3JdLGM9ZVtyXTtpZihsLnJhbmdlc2xpZGVyfHxlLl9yZXF1ZXN0UmFuZ2VzbGlkZXJbYy5faWRdKXtuLmlzUGxhaW5PYmplY3QobC5yYW5nZXNsaWRlcil8fChsLnJhbmdlc2xpZGVyPXt9KTt2YXIgdSxmLGg9bC5yYW5nZXNsaWRlcixwPWkubmV3Q29udGFpbmVyKGMsInJhbmdlc2xpZGVyIik7aWYoXygidmlzaWJsZSIpKXtfKCJiZ2NvbG9yIixlLnBsb3RfYmdjb2xvciksXygiYm9yZGVyY29sb3IiKSxfKCJib3JkZXJ3aWR0aCIpLF8oInRoaWNrbmVzcyIpLF8oImF1dG9yYW5nZSIsIWMuaXNWYWxpZFJhbmdlKGgucmFuZ2UpKSxfKCJyYW5nZSIpO3ZhciBkPWUuX3N1YnBsb3RzO2lmKGQpZm9yKHZhciBtPWQuY2FydGVzaWFuLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3Vic3RyKDAsdC5pbmRleE9mKCJ5IikpPT09YS5uYW1lMmlkKHIpfSkpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc3Vic3RyKHQuaW5kZXhPZigieSIpLHQubGVuZ3RoKX0pKSxnPW4uc2ltcGxlTWFwKG0sYS5pZDJuYW1lKSx2PTA7djxnLmxlbmd0aDt2Kyspe3ZhciB5PWdbdl07dT1oW3ldfHx7fSxmPWkubmV3Q29udGFpbmVyKHAseSwieWF4aXMiKTt2YXIgeCxiPWVbeV07dS5yYW5nZSYmYi5pc1ZhbGlkUmFuZ2UodS5yYW5nZSkmJih4PSJmaXhlZCIpLCJtYXRjaCIhPT13KCJyYW5nZW1vZGUiLHgpJiZ3KCJyYW5nZSIsYi5yYW5nZS5zbGljZSgpKX1wLl9pbnB1dD1ofX1mdW5jdGlvbiBfKHQsZSl7cmV0dXJuIG4uY29lcmNlKGgscCxvLHQsZSl9ZnVuY3Rpb24gdyh0LGUpe3JldHVybiBuLmNvZXJjZSh1LGYscyx0LGUpfX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo4MzEsIi4vYXR0cmlidXRlcyI6NzExLCIuL29wcGF4aXNfYXR0cmlidXRlcyI6NzE4fV0sNzE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLG89dCgiLi4vLi4vbGliIikscz1vLnN0clRyYW5zbGF0ZSxsPXQoIi4uL2RyYXdpbmciKSxjPXQoIi4uL2NvbG9yIiksdT10KCIuLi90aXRsZXMiKSxmPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGg9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIikscD10KCIuLi9kcmFnZWxlbWVudCIpLGQ9dCgiLi4vLi4vbGliL3NldGN1cnNvciIpLG09dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBnKHQsZSxyLG4pe3ZhciBpPW8uZW5zdXJlU2luZ2xlKHQsInJlY3QiLG0uYmdDbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3QuYXR0cih7eDowLHk6MCwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KX0pKSxhPW4uYm9yZGVyd2lkdGglMj09MD9uLmJvcmRlcndpZHRoOm4uYm9yZGVyd2lkdGgtMSxjPS1uLl9vZmZzZXRTaGlmdCx1PWwuY3Jpc3BSb3VuZChlLG4uYm9yZGVyd2lkdGgpO2kuYXR0cih7d2lkdGg6bi5fd2lkdGgrYSxoZWlnaHQ6bi5faGVpZ2h0K2EsdHJhbnNmb3JtOnMoYyxjKSxmaWxsOm4uYmdjb2xvcixzdHJva2U6bi5ib3JkZXJjb2xvciwic3Ryb2tlLXdpZHRoIjp1fSl9ZnVuY3Rpb24gdih0LGUscixuKXt2YXIgaT1lLl9mdWxsTGF5b3V0O28uZW5zdXJlU2luZ2xlQnlJZChpLl90b3BkZWZzLCJjbGlwUGF0aCIsbi5fY2xpcElkLChmdW5jdGlvbih0KXt0LmFwcGVuZCgicmVjdCIpLmF0dHIoe3g6MCx5OjB9KX0pKS5zZWxlY3QoInJlY3QiKS5hdHRyKHt3aWR0aDpuLl93aWR0aCxoZWlnaHQ6bi5faGVpZ2h0fSl9ZnVuY3Rpb24geSh0LGUscixpKXt2YXIgcyxjPWUuY2FsY2RhdGEsdT10LnNlbGVjdEFsbCgiZy4iK20ucmFuZ2VQbG90Q2xhc3NOYW1lKS5kYXRhKHIuX3N1YnBsb3RzV2l0aCxvLmlkZW50aXR5KTt1LmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLChmdW5jdGlvbih0KXtyZXR1cm4gbS5yYW5nZVBsb3RDbGFzc05hbWUrIiAiK3R9KSkuY2FsbChsLnNldENsaXBVcmwsaS5fY2xpcElkLGUpLHUub3JkZXIoKSx1LmV4aXQoKS5yZW1vdmUoKSx1LmVhY2goKGZ1bmN0aW9uKHQsbyl7dmFyIGw9bi5zZWxlY3QodGhpcyksdT0wPT09byxwPWguZ2V0RnJvbUlkKGUsdCwieSIpLGQ9cC5fbmFtZSxtPWlbZF0sZz17ZGF0YTpbXSxsYXlvdXQ6e3hheGlzOnt0eXBlOnIudHlwZSxkb21haW46WzAsMV0scmFuZ2U6aS5yYW5nZS5zbGljZSgpLGNhbGVuZGFyOnIuY2FsZW5kYXJ9LHdpZHRoOmkuX3dpZHRoLGhlaWdodDppLl9oZWlnaHQsbWFyZ2luOnt0OjAsYjowLGw6MCxyOjB9fSxfY29udGV4dDplLl9jb250ZXh0fTtyLnJhbmdlYnJlYWtzJiYoZy5sYXlvdXQueGF4aXMucmFuZ2VicmVha3M9ci5yYW5nZWJyZWFrcyksZy5sYXlvdXRbZF09e3R5cGU6cC50eXBlLGRvbWFpbjpbMCwxXSxyYW5nZToibWF0Y2giIT09bS5yYW5nZW1vZGU/bS5yYW5nZS5zbGljZSgpOnAucmFuZ2Uuc2xpY2UoKSxjYWxlbmRhcjpwLmNhbGVuZGFyfSxwLnJhbmdlYnJlYWtzJiYoZy5sYXlvdXRbZF0ucmFuZ2VicmVha3M9cC5yYW5nZWJyZWFrcyksYS5zdXBwbHlEZWZhdWx0cyhnKTt2YXIgdj1nLl9mdWxsTGF5b3V0LnhheGlzLHk9Zy5fZnVsbExheW91dFtkXTt2LmNsZWFyQ2FsYygpLHYuc2V0U2NhbGUoKSx5LmNsZWFyQ2FsYygpLHkuc2V0U2NhbGUoKTt2YXIgeD17aWQ6dCxwbG90Z3JvdXA6bCx4YXhpczp2LHlheGlzOnksaXNSYW5nZVBsb3Q6ITB9O3U/cz14Oih4Lm1haW5wbG90PSJ4eSIseC5tYWlucGxvdGluZm89cyksZi5yYW5nZVBsb3QoZSx4LGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxhPWlbMF0udHJhY2U7YS54YXhpcythLnlheGlzPT09ZSYmci5wdXNoKGkpfXJldHVybiByfShjLHQpKX0pKX1mdW5jdGlvbiB4KHQsZSxyLG4saSl7KG8uZW5zdXJlU2luZ2xlKHQsInJlY3QiLG0ubWFza01pbkNsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHt4OjAseTowLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pfSkpLmF0dHIoImhlaWdodCIsbi5faGVpZ2h0KS5jYWxsKGMuZmlsbCxtLm1hc2tDb2xvciksby5lbnN1cmVTaW5nbGUodCwicmVjdCIsbS5tYXNrTWF4Q2xhc3NOYW1lLChmdW5jdGlvbih0KXt0LmF0dHIoe3k6MCwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KX0pKS5hdHRyKCJoZWlnaHQiLG4uX2hlaWdodCkuY2FsbChjLmZpbGwsbS5tYXNrQ29sb3IpLCJtYXRjaCIhPT1pLnJhbmdlbW9kZSkmJihvLmVuc3VyZVNpbmdsZSh0LCJyZWN0IixtLm1hc2tNaW5PcHBBeGlzQ2xhc3NOYW1lLChmdW5jdGlvbih0KXt0LmF0dHIoe3k6MCwic2hhcGUtcmVuZGVyaW5nIjoiY3Jpc3BFZGdlcyJ9KX0pKS5hdHRyKCJ3aWR0aCIsbi5fd2lkdGgpLmNhbGwoYy5maWxsLG0ubWFza09wcEF4aXNDb2xvciksby5lbnN1cmVTaW5nbGUodCwicmVjdCIsbS5tYXNrTWF4T3BwQXhpc0NsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHt5OjAsInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSl9KSkuYXR0cigid2lkdGgiLG4uX3dpZHRoKS5zdHlsZSgiYm9yZGVyLXRvcCIsbS5tYXNrT3BwQm9yZGVyKS5jYWxsKGMuZmlsbCxtLm1hc2tPcHBBeGlzQ29sb3IpKX1mdW5jdGlvbiBiKHQsZSxyLG4pe2UuX2NvbnRleHQuc3RhdGljUGxvdHx8by5lbnN1cmVTaW5nbGUodCwicmVjdCIsbS5zbGlkZUJveENsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHt5OjAsY3Vyc29yOm0uc2xpZGVCb3hDdXJzb3IsInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSl9KSkuYXR0cih7aGVpZ2h0Om4uX2hlaWdodCxmaWxsOm0uc2xpZGVCb3hGaWxsfSl9ZnVuY3Rpb24gXyh0LGUscixuKXt2YXIgaT1vLmVuc3VyZVNpbmdsZSh0LCJnIixtLmdyYWJiZXJNaW5DbGFzc05hbWUpLGE9by5lbnN1cmVTaW5nbGUodCwiZyIsbS5ncmFiYmVyTWF4Q2xhc3NOYW1lKSxzPXt4OjAsd2lkdGg6bS5oYW5kbGVXaWR0aCxyeDptLmhhbmRsZVJhZGl1cyxmaWxsOmMuYmFja2dyb3VuZCxzdHJva2U6Yy5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjptLmhhbmRsZVN0cm9rZVdpZHRoLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0sbD17eTpNYXRoLnJvdW5kKG4uX2hlaWdodC80KSxoZWlnaHQ6TWF0aC5yb3VuZChuLl9oZWlnaHQvMil9O28uZW5zdXJlU2luZ2xlKGksInJlY3QiLG0uaGFuZGxlTWluQ2xhc3NOYW1lLChmdW5jdGlvbih0KXt0LmF0dHIocyl9KSkuYXR0cihsKSxvLmVuc3VyZVNpbmdsZShhLCJyZWN0IixtLmhhbmRsZU1heENsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHMpfSkpLmF0dHIobCk7dmFyIHU9e3dpZHRoOm0uZ3JhYkFyZWFXaWR0aCx4OjAseTowLGZpbGw6bS5ncmFiQXJlYUZpbGwsY3Vyc29yOmUuX2NvbnRleHQuc3RhdGljUGxvdD92b2lkIDA6bS5ncmFiQXJlYUN1cnNvcn07by5lbnN1cmVTaW5nbGUoaSwicmVjdCIsbS5ncmFiQXJlYU1pbkNsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHUpfSkpLmF0dHIoImhlaWdodCIsbi5faGVpZ2h0KSxvLmVuc3VyZVNpbmdsZShhLCJyZWN0IixtLmdyYWJBcmVhTWF4Q2xhc3NOYW1lLChmdW5jdGlvbih0KXt0LmF0dHIodSl9KSkuYXR0cigiaGVpZ2h0IixuLl9oZWlnaHQpfWUuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3JhbmdlU2xpZGVyRGF0YSxhPTA7YTxyLmxlbmd0aDthKyspe3ZhciBsPXJbYV1bbS5uYW1lXTtsLl9jbGlwSWQ9bC5faWQrIi0iK2UuX3VpZH12YXIgYz1lLl9pbmZvbGF5ZXIuc2VsZWN0QWxsKCJnLiIrbS5jb250YWluZXJDbGFzc05hbWUpLmRhdGEociwoZnVuY3Rpb24odCl7cmV0dXJuIHQuX25hbWV9KSk7Yy5leGl0KCkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9dFttLm5hbWVdO2UuX3RvcGRlZnMuc2VsZWN0KCIjIityLl9jbGlwSWQpLnJlbW92ZSgpfSkpLnJlbW92ZSgpLDAhPT1yLmxlbmd0aCYmKGMuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG0uY29udGFpbmVyQ2xhc3NOYW1lLCEwKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLGMuZWFjaCgoZnVuY3Rpb24ocil7dmFyIGE9bi5zZWxlY3QodGhpcyksbD1yW20ubmFtZV0sYz1lW2guaWQybmFtZShyLmFuY2hvcildLGY9bFtoLmlkMm5hbWUoci5hbmNob3IpXTtpZihsLnJhbmdlKXt2YXIgdyxUPW8uc2ltcGxlTWFwKGwucmFuZ2Usci5yMmwpLGs9by5zaW1wbGVNYXAoci5yYW5nZSxyLnIybCk7dz1rWzBdPGtbMV0/W01hdGgubWluKFRbMF0sa1swXSksTWF0aC5tYXgoVFsxXSxrWzFdKV06W01hdGgubWF4KFRbMF0sa1swXSksTWF0aC5taW4oVFsxXSxrWzFdKV0sbC5yYW5nZT1sLl9pbnB1dC5yYW5nZT1vLnNpbXBsZU1hcCh3LHIubDJyKX1yLmNsZWFuUmFuZ2UoInJhbmdlc2xpZGVyLnJhbmdlIik7dmFyIEE9ZS5fc2l6ZSxNPXIuZG9tYWluO2wuX3dpZHRoPUEudyooTVsxXS1NWzBdKTt2YXIgUz1NYXRoLnJvdW5kKEEubCtBLncqTVswXSksRT1NYXRoLnJvdW5kKEEudCtBLmgqKDEtci5fY291bnRlckRvbWFpbk1pbikrKCJib3R0b20iPT09ci5zaWRlP3IuX2RlcHRoOjApK2wuX29mZnNldFNoaWZ0K20uZXh0cmFQYWQpO2EuYXR0cigidHJhbnNmb3JtIixzKFMsRSkpLGwuX3JsPW8uc2ltcGxlTWFwKGwucmFuZ2Usci5yMmwpO3ZhciBMPWwuX3JsWzBdLEM9bC5fcmxbMV0sUD1DLUw7aWYobC5wMmQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQvbC5fd2lkdGgqUCtMfSxsLmQycD1mdW5jdGlvbih0KXtyZXR1cm4odC1MKS9QKmwuX3dpZHRofSxyLnJhbmdlYnJlYWtzKXt2YXIgST1yLmxvY2F0ZUJyZWFrcyhMLEMpO2lmKEkubGVuZ3RoKXt2YXIgTyx6LEQ9MDtmb3IoTz0wO088SS5sZW5ndGg7TysrKUQrPSh6PUlbT10pLm1heC16Lm1pbjt2YXIgUj1sLl93aWR0aC8oQy1MLUQpLEY9Wy1SKkxdO2ZvcihPPTA7TzxJLmxlbmd0aDtPKyspej1JW09dLEYucHVzaChGW0YubGVuZ3RoLTFdLVIqKHoubWF4LXoubWluKSk7Zm9yKGwuZDJwPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1GWzBdLHI9MDtyPEkubGVuZ3RoO3IrKyl7dmFyIG49SVtyXTtpZih0Pj1uLm1heCllPUZbcisxXTtlbHNlIGlmKHQ8bi5taW4pYnJlYWt9cmV0dXJuIGUrUip0fSxPPTA7TzxJLmxlbmd0aDtPKyspKHo9SVtPXSkucG1pbj1sLmQycCh6Lm1pbiksei5wbWF4PWwuZDJwKHoubWF4KTtsLnAyZD1mdW5jdGlvbih0KXtmb3IodmFyIGU9RlswXSxyPTA7cjxJLmxlbmd0aDtyKyspe3ZhciBuPUlbcl07aWYodD49bi5wbWF4KWU9RltyKzFdO2Vsc2UgaWYodDxuLnBtaW4pYnJlYWt9cmV0dXJuKHQtZSkvUn19fWlmKCJtYXRjaCIhPT1mLnJhbmdlbW9kZSl7dmFyIEI9Yy5yMmwoZi5yYW5nZVswXSksTj1jLnIybChmLnJhbmdlWzFdKS1CO2wuZDJwT3BwQXhpcz1mdW5jdGlvbih0KXtyZXR1cm4odC1CKS9OKmwuX2hlaWdodH19YS5jYWxsKGcsdCxyLGwpLmNhbGwodix0LHIsbCkuY2FsbCh5LHQscixsKS5jYWxsKHgsdCxyLGwsZikuY2FsbChiLHQscixsKS5jYWxsKF8sdCxyLGwpLGZ1bmN0aW9uKHQsZSxyLGEpe2lmKGUuX2NvbnRleHQuc3RhdGljUGxvdClyZXR1cm47dmFyIHM9dC5zZWxlY3QoInJlY3QuIittLnNsaWRlQm94Q2xhc3NOYW1lKS5ub2RlKCksbD10LnNlbGVjdCgicmVjdC4iK20uZ3JhYkFyZWFNaW5DbGFzc05hbWUpLm5vZGUoKSxjPXQuc2VsZWN0KCJyZWN0LiIrbS5ncmFiQXJlYU1heENsYXNzTmFtZSkubm9kZSgpO2Z1bmN0aW9uIHUoKXt2YXIgdT1uLmV2ZW50LGY9dS50YXJnZXQsaD11LmNsaWVudFh8fHUudG91Y2hlc1swXS5jbGllbnRYLG09aC10Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0LGc9YS5kMnAoci5fcmxbMF0pLHY9YS5kMnAoci5fcmxbMV0pLHk9cC5jb3ZlclNsaXAoKTtmdW5jdGlvbiB4KHQpe3ZhciB1LHAseCxiPSsodC5jbGllbnRYfHx0LnRvdWNoZXNbMF0uY2xpZW50WCktaDtzd2l0Y2goZil7Y2FzZSBzOng9ImV3LXJlc2l6ZSIsdT1nK2IscD12K2I7YnJlYWs7Y2FzZSBsOng9ImNvbC1yZXNpemUiLHU9ZytiLHA9djticmVhaztjYXNlIGM6eD0iY29sLXJlc2l6ZSIsdT1nLHA9ditiO2JyZWFrO2RlZmF1bHQ6eD0iZXctcmVzaXplIix1PW0scD1tK2J9aWYocDx1KXt2YXIgXz1wO3A9dSx1PV99YS5fcGl4ZWxNaW49dSxhLl9waXhlbE1heD1wLGQobi5zZWxlY3QoeSkseCksZnVuY3Rpb24odCxlLHIsbil7ZnVuY3Rpb24gYSh0KXtyZXR1cm4gci5sMnIoby5jb25zdHJhaW4odCxuLl9ybFswXSxuLl9ybFsxXSkpfXZhciBzPWEobi5wMmQobi5fcGl4ZWxNaW4pKSxsPWEobi5wMmQobi5fcGl4ZWxNYXgpKTt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbigpe2kuY2FsbCgiX2d1aVJlbGF5b3V0IixlLHIuX25hbWUrIi5yYW5nZSIsW3MsbF0pfSkpfSgwLGUscixhKX1mdW5jdGlvbiBiKCl7eS5yZW1vdmVFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHgpLHkucmVtb3ZlRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsYiksdGhpcy5yZW1vdmVFdmVudExpc3RlbmVyKCJ0b3VjaG1vdmUiLHgpLHRoaXMucmVtb3ZlRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLGIpLG8ucmVtb3ZlRWxlbWVudCh5KX10aGlzLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIseCksdGhpcy5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaGVuZCIsYikseS5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLHgpLHkuYWRkRXZlbnRMaXN0ZW5lcigibW91c2V1cCIsYil9dC5vbigibW91c2Vkb3duIix1KSx0Lm9uKCJ0b3VjaHN0YXJ0Iix1KX0oYSx0LHIsbCksZnVuY3Rpb24odCxlLHIsbixpLGEpe3ZhciBsPW0uaGFuZGxlV2lkdGgvMjtmdW5jdGlvbiBjKHQpe3JldHVybiBvLmNvbnN0cmFpbih0LDAsbi5fd2lkdGgpfWZ1bmN0aW9uIHUodCl7cmV0dXJuIG8uY29uc3RyYWluKHQsMCxuLl9oZWlnaHQpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIG8uY29uc3RyYWluKHQsLWwsbi5fd2lkdGgrbCl9dmFyIGg9YyhuLmQycChyLl9ybFswXSkpLHA9YyhuLmQycChyLl9ybFsxXSkpO2lmKHQuc2VsZWN0KCJyZWN0LiIrbS5zbGlkZUJveENsYXNzTmFtZSkuYXR0cigieCIsaCkuYXR0cigid2lkdGgiLHAtaCksdC5zZWxlY3QoInJlY3QuIittLm1hc2tNaW5DbGFzc05hbWUpLmF0dHIoIndpZHRoIixoKSx0LnNlbGVjdCgicmVjdC4iK20ubWFza01heENsYXNzTmFtZSkuYXR0cigieCIscCkuYXR0cigid2lkdGgiLG4uX3dpZHRoLXApLCJtYXRjaCIhPT1hLnJhbmdlbW9kZSl7dmFyIGQ9bi5faGVpZ2h0LXUobi5kMnBPcHBBeGlzKGkuX3JsWzFdKSksZz1uLl9oZWlnaHQtdShuLmQycE9wcEF4aXMoaS5fcmxbMF0pKTt0LnNlbGVjdCgicmVjdC4iK20ubWFza01pbk9wcEF4aXNDbGFzc05hbWUpLmF0dHIoIngiLGgpLmF0dHIoImhlaWdodCIsZCkuYXR0cigid2lkdGgiLHAtaCksdC5zZWxlY3QoInJlY3QuIittLm1hc2tNYXhPcHBBeGlzQ2xhc3NOYW1lKS5hdHRyKCJ4IixoKS5hdHRyKCJ5IixnKS5hdHRyKCJoZWlnaHQiLG4uX2hlaWdodC1nKS5hdHRyKCJ3aWR0aCIscC1oKSx0LnNlbGVjdCgicmVjdC4iK20uc2xpZGVCb3hDbGFzc05hbWUpLmF0dHIoInkiLGQpLmF0dHIoImhlaWdodCIsZy1kKX12YXIgdj1NYXRoLnJvdW5kKGYoaC1sKSktLjUseT1NYXRoLnJvdW5kKGYocC1sKSkrLjU7dC5zZWxlY3QoImcuIittLmdyYWJiZXJNaW5DbGFzc05hbWUpLmF0dHIoInRyYW5zZm9ybSIscyh2LC41KSksdC5zZWxlY3QoImcuIittLmdyYWJiZXJNYXhDbGFzc05hbWUpLmF0dHIoInRyYW5zZm9ybSIscyh5LC41KSl9KGEsMCxyLGwsYyxmKSwiYm90dG9tIj09PXIuc2lkZSYmdS5kcmF3KHQsci5faWQrInRpdGxlIix7cHJvcENvbnRhaW5lcjpyLHByb3BOYW1lOnIuX25hbWUrIi50aXRsZSIscGxhY2Vob2xkZXI6ZS5fZGZsdFRpdGxlLngsYXR0cmlidXRlczp7eDpyLl9vZmZzZXQrci5fbGVuZ3RoLzIseTpFK2wuX2hlaWdodCtsLl9vZmZzZXRTaGlmdCsxMCsxLjUqci50aXRsZS5mb250LnNpemUsInRleHQtYW5jaG9yIjoibWlkZGxlIn19KX0pKSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo3OTcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6ODQxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwiLi4vLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vY29sb3IiOjYzOSwiLi4vZHJhZ2VsZW1lbnQiOjY1OCwiLi4vZHJhd2luZyI6NjYxLCIuLi90aXRsZXMiOjczNywiLi9jb25zdGFudHMiOjcxMywiQHBsb3RseS9kMyI6NTh9XSw3MTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksaT10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxhPXQoIi4vY29uc3RhbnRzIiksbz10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuTElORV9TUEFDSU5HLHM9YS5uYW1lO2Z1bmN0aW9uIGwodCl7dmFyIGU9dCYmdFtzXTtyZXR1cm4gZSYmZS52aXNpYmxlfXIuaXNWaXNpYmxlPWwsci5tYWtlRGF0YT1mdW5jdGlvbih0KXt2YXIgZT1uLmxpc3Qoe19mdWxsTGF5b3V0OnR9LCJ4IiwhMCkscj10Lm1hcmdpbixpPVtdO2lmKCF0Ll9oYXMoImdsMmQiKSlmb3IodmFyIGE9MDthPGUubGVuZ3RoO2ErKyl7dmFyIG89ZVthXTtpZihsKG8pKXtpLnB1c2gobyk7dmFyIGM9b1tzXTtjLl9pZD1zK28uX2lkLGMuX2hlaWdodD0odC5oZWlnaHQtci5iLXIudCkqYy50aGlja25lc3MsYy5fb2Zmc2V0U2hpZnQ9TWF0aC5mbG9vcihjLmJvcmRlcndpZHRoLzIpfX10Ll9yYW5nZVNsaWRlckRhdGE9aX0sci5hdXRvTWFyZ2luT3B0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQsbj1lW3NdLGw9ZS5faWQuY2hhckF0KDApLGM9MCx1PTA7ImJvdHRvbSI9PT1lLnNpZGUmJihjPWUuX2RlcHRoLGUudGl0bGUudGV4dCE9PXIuX2RmbHRUaXRsZVtsXSYmKHU9MS41KmUudGl0bGUuZm9udC5zaXplKzEwK24uX29mZnNldFNoaWZ0LHUrPShlLnRpdGxlLnRleHQubWF0Y2goaS5CUl9UQUdfQUxMKXx8W10pLmxlbmd0aCplLnRpdGxlLmZvbnQuc2l6ZSpvKSk7cmV0dXJue3g6MCx5OmUuX2NvdW50ZXJEb21haW5NaW4sbDowLHI6MCx0OjAsYjpuLl9oZWlnaHQrYytNYXRoLm1heChyLm1hcmdpbi5iLHUpLHBhZDphLmV4dHJhUGFkKzIqbi5fb2Zmc2V0U2hpZnR9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo3NDQsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwiLi9jb25zdGFudHMiOjcxM31dLDcxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vYXR0cmlidXRlcyIpLGE9dCgiLi9vcHBheGlzX2F0dHJpYnV0ZXMiKSxvPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToiY29tcG9uZW50IixuYW1lOiJyYW5nZXNsaWRlciIsc2NoZW1hOntzdWJwbG90czp7eGF4aXM6e3Jhbmdlc2xpZGVyOm4uZXh0ZW5kRmxhdCh7fSxpLHt5YXhpczphfSl9fX0sbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxoYW5kbGVEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsY0F1dG9yYW5nZTp0KCIuL2NhbGNfYXV0b3JhbmdlIiksZHJhdzp0KCIuL2RyYXciKSxpc1Zpc2libGU6by5pc1Zpc2libGUsbWFrZURhdGE6by5tYWtlRGF0YSxhdXRvTWFyZ2luT3B0czpvLmF1dG9NYXJnaW5PcHRzfX0seyIuLi8uLi9saWIiOjc3NiwiLi9hdHRyaWJ1dGVzIjo3MTEsIi4vY2FsY19hdXRvcmFuZ2UiOjcxMiwiLi9kZWZhdWx0cyI6NzE0LCIuL2RyYXciOjcxNSwiLi9oZWxwZXJzIjo3MTYsIi4vb3BwYXhpc19hdHRyaWJ1dGVzIjo3MTh9XSw3MTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtfaXNTdWJwbG90T2JqOiEwLHJhbmdlbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsImZpeGVkIiwibWF0Y2giXSxkZmx0OiJtYXRjaCIsZWRpdFR5cGU6ImNhbGMifSxyYW5nZTp7dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90In0se3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InBsb3QifV0sZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToiY2FsYyJ9fSx7fV0sNzE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3RyYWNlcy9zY2F0dGVyL2F0dHJpYnV0ZXMiKS5saW5lLGE9dCgiLi4vZHJhd2luZy9hdHRyaWJ1dGVzIikuZGFzaCxvPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHM9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5O3QoIi4uLy4uL2NvbnN0YW50cy9heGlzX3BsYWNlYWJsZV9vYmplY3RzIik7ZS5leHBvcnRzPXMoInNoYXBlIix7dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjaXJjbGUiLCJyZWN0IiwicGF0aCIsImxpbmUiXSxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxsYXllcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYmVsb3ciLCJhYm92ZSJdLGRmbHQ6ImFib3ZlIixlZGl0VHlwZToiYXJyYXlkcmF3In0seHJlZjpvKHt9LG4ueHJlZix7fSkseHNpemVtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzY2FsZWQiLCJwaXhlbCJdLGRmbHQ6InNjYWxlZCIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0seGFuY2hvcjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx4MDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx4MTp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx5cmVmOm8oe30sbi55cmVmLHt9KSx5c2l6ZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNjYWxlZCIsInBpeGVsIl0sZGZsdDoic2NhbGVkIixlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSx5YW5jaG9yOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHkwOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHkxOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LHBhdGg6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMrYXJyYXlkcmF3In0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjEsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGxpbmU6e2NvbG9yOm8oe30saS5jb2xvcix7ZWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSx3aWR0aDpvKHt9LGkud2lkdGgse2VkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9KSxkYXNoOm8oe30sYSx7ZWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSxlZGl0VHlwZToiY2FsYythcnJheWRyYXcifSxmaWxsY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OiJyZ2JhKDAsMCwwLDApIixlZGl0VHlwZToiYXJyYXlkcmF3In0sZmlsbHJ1bGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImV2ZW5vZGQiLCJub256ZXJvIl0sZGZsdDoiZXZlbm9kZCIsZWRpdFR5cGU6ImFycmF5ZHJhdyJ9LGVkaXRhYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjK2FycmF5ZHJhdyJ9LGVkaXRUeXBlOiJhcnJheWRyYXcifSl9LHsiLi4vLi4vY29uc3RhbnRzL2F4aXNfcGxhY2VhYmxlX29iamVjdHMiOjc0NSwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uLy4uL3RyYWNlcy9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExOTEsIi4uL2Fubm90YXRpb25zL2F0dHJpYnV0ZXMiOjYyMiwiLi4vZHJhd2luZy9hdHRyaWJ1dGVzIjo2NjB9XSw3MjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi9jb25zdGFudHMiKSxvPXQoIi4vaGVscGVycyIpO2Z1bmN0aW9uIHModCl7cmV0dXJuIGModC5saW5lLndpZHRoLHQueHNpemVtb2RlLHQueDAsdC54MSx0LnBhdGgsITEpfWZ1bmN0aW9uIGwodCl7cmV0dXJuIGModC5saW5lLndpZHRoLHQueXNpemVtb2RlLHQueTAsdC55MSx0LnBhdGgsITApfWZ1bmN0aW9uIGModCxlLHIsaSxzLGwpe3ZhciBjPXQvMix1PWw7aWYoInBpeGVsIj09PWUpe3ZhciBmPXM/by5leHRyYWN0UGF0aENvb3JkcyhzLGw/YS5wYXJhbUlzWTphLnBhcmFtSXNYKTpbcixpXSxoPW4uYWdnTnVtcyhNYXRoLm1heCxudWxsLGYpLHA9bi5hZ2dOdW1zKE1hdGgubWluLG51bGwsZiksZD1wPDA/TWF0aC5hYnMocCkrYzpjLG09aD4wP2grYzpjO3JldHVybntwcGFkOmMscHBhZHBsdXM6dT9kOm0scHBhZG1pbnVzOnU/bTpkfX1yZXR1cm57cHBhZDpjfX1mdW5jdGlvbiB1KHQsZSxyLG4saSl7dmFyIHM9ImNhdGVnb3J5Ij09PXQudHlwZXx8Im11bHRpY2F0ZWdvcnkiPT09dC50eXBlP3QucjJjOnQuZDJjO2lmKHZvaWQgMCE9PWUpcmV0dXJuW3MoZSkscyhyKV07aWYobil7dmFyIGwsYyx1LGYsaD0xLzAscD0tMS8wLGQ9bi5tYXRjaChhLnNlZ21lbnRSRSk7Zm9yKCJkYXRlIj09PXQudHlwZSYmKHM9by5kZWNvZGVEYXRlKHMpKSxsPTA7bDxkLmxlbmd0aDtsKyspdm9pZCAwIT09KGM9aVtkW2xdLmNoYXJBdCgwKV0uZHJhd24pJiYoISh1PWRbbF0uc3Vic3RyKDEpLm1hdGNoKGEucGFyYW1SRSkpfHx1Lmxlbmd0aDxjfHwoKGY9cyh1W2NdKSk8aCYmKGg9ZiksZj5wJiYocD1mKSkpO3JldHVybiBwPj1oP1toLHBdOnZvaWQgMH19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1uLmZpbHRlclZpc2libGUoZS5zaGFwZXMpO2lmKHIubGVuZ3RoJiZ0Ll9mdWxsRGF0YS5sZW5ndGgpZm9yKHZhciBvPTA7bzxyLmxlbmd0aDtvKyspe3ZhciBjLGYsaD1yW29dO2guX2V4dHJlbWVzPXt9O3ZhciBwPWkuZ2V0UmVmVHlwZShoLnhyZWYpLGQ9aS5nZXRSZWZUeXBlKGgueXJlZik7aWYoInBhcGVyIiE9PWgueHJlZiYmImRvbWFpbiIhPT1wKXt2YXIgbT0icGl4ZWwiPT09aC54c2l6ZW1vZGU/aC54YW5jaG9yOmgueDAsZz0icGl4ZWwiPT09aC54c2l6ZW1vZGU/aC54YW5jaG9yOmgueDE7KGY9dShjPWkuZ2V0RnJvbUlkKHQsaC54cmVmKSxtLGcsaC5wYXRoLGEucGFyYW1Jc1gpKSYmKGguX2V4dHJlbWVzW2MuX2lkXT1pLmZpbmRFeHRyZW1lcyhjLGYscyhoKSkpfWlmKCJwYXBlciIhPT1oLnlyZWYmJiJkb21haW4iIT09ZCl7dmFyIHY9InBpeGVsIj09PWgueXNpemVtb2RlP2gueWFuY2hvcjpoLnkwLHk9InBpeGVsIj09PWgueXNpemVtb2RlP2gueWFuY2hvcjpoLnkxOyhmPXUoYz1pLmdldEZyb21JZCh0LGgueXJlZiksdix5LGgucGF0aCxhLnBhcmFtSXNZKSkmJihoLl9leHRyZW1lc1tjLl9pZF09aS5maW5kRXh0cmVtZXMoYyxmLGwoaCkpKX19fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi9jb25zdGFudHMiOjcyMSwiLi9oZWxwZXJzIjo3MzB9XSw3MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzZWdtZW50UkU6L1tNTEhWUUNUU1pdW15NTEhWUUNUU1pdKi9nLHBhcmFtUkU6L1teXHMsXSsvZyxwYXJhbUlzWDp7TTp7MDohMCxkcmF3bjowfSxMOnswOiEwLGRyYXduOjB9LEg6ezA6ITAsZHJhd246MH0sVjp7fSxROnswOiEwLDI6ITAsZHJhd246Mn0sQzp7MDohMCwyOiEwLDQ6ITAsZHJhd246NH0sVDp7MDohMCxkcmF3bjowfSxTOnswOiEwLDI6ITAsZHJhd246Mn0sWjp7fX0scGFyYW1Jc1k6e006ezE6ITAsZHJhd246MX0sTDp7MTohMCxkcmF3bjoxfSxIOnt9LFY6ezA6ITAsZHJhd246MH0sUTp7MTohMCwzOiEwLGRyYXduOjN9LEM6ezE6ITAsMzohMCw1OiEwLGRyYXduOjV9LFQ6ezE6ITAsZHJhd246MX0sUzp7MTohMCwzOiEwLGRyYXduOjV9LFo6e319LG51bVBhcmFtczp7TToyLEw6MixIOjEsVjoxLFE6NCxDOjYsVDoyLFM6NCxaOjB9fX0se31dLDcyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpLHM9dCgiLi9oZWxwZXJzIik7ZnVuY3Rpb24gbCh0LGUscil7ZnVuY3Rpb24gYShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWlmKGEoInZpc2libGUiKSl7dmFyIGw9YSgicGF0aCIpLGM9YSgidHlwZSIsbD8icGF0aCI6InJlY3QiKTsicGF0aCIhPT1lLnR5cGUmJmRlbGV0ZSBlLnBhdGgsYSgiZWRpdGFibGUiKSxhKCJsYXllciIpLGEoIm9wYWNpdHkiKSxhKCJmaWxsY29sb3IiKSxhKCJmaWxscnVsZSIpLGEoImxpbmUud2lkdGgiKSYmKGEoImxpbmUuY29sb3IiKSxhKCJsaW5lLmRhc2giKSk7Zm9yKHZhciB1PWEoInhzaXplbW9kZSIpLGY9YSgieXNpemVtb2RlIiksaD1bIngiLCJ5Il0scD0wO3A8MjtwKyspe3ZhciBkLG0sZyx2PWhbcF0seT12KyJhbmNob3IiLHg9IngiPT09dj91OmYsYj17X2Z1bGxMYXlvdXQ6cn0sXz1pLmNvZXJjZVJlZih0LGUsYix2LHZvaWQgMCwicGFwZXIiKTtpZigicmFuZ2UiPT09aS5nZXRSZWZUeXBlKF8pPygoZD1pLmdldEZyb21JZChiLF8pKS5fc2hhcGVJbmRpY2VzLnB1c2goZS5faW5kZXgpLGc9cy5yYW5nZVRvU2hhcGVQb3NpdGlvbihkKSxtPXMuc2hhcGVQb3NpdGlvblRvUmFuZ2UoZCkpOm09Zz1uLmlkZW50aXR5LCJwYXRoIiE9PWMpe3ZhciB3PXYrIjAiLFQ9disiMSIsaz10W3ddLEE9dFtUXTt0W3ddPW0odFt3XSwhMCksdFtUXT1tKHRbVF0sITApLCJwaXhlbCI9PT14PyhhKHcsMCksYShULDEwKSk6KGkuY29lcmNlUG9zaXRpb24oZSxiLGEsXyx3LC4yNSksaS5jb2VyY2VQb3NpdGlvbihlLGIsYSxfLFQsLjc1KSksZVt3XT1nKGVbd10pLGVbVF09ZyhlW1RdKSx0W3ddPWssdFtUXT1BfWlmKCJwaXhlbCI9PT14KXt2YXIgTT10W3ldO3RbeV09bSh0W3ldLCEwKSxpLmNvZXJjZVBvc2l0aW9uKGUsYixhLF8seSwuMjUpLGVbeV09ZyhlW3ldKSx0W3ldPU19fSJwYXRoIj09PWM/YSgicGF0aCIpOm4ubm9uZU9yQWxsKHQsZSxbIngwIiwieDEiLCJ5MCIsInkxIl0pfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXthKHQsZSx7bmFtZToic2hhcGVzIixoYW5kbGVJdGVtRGVmYXVsdHM6bH0pfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo4MjIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4vYXR0cmlidXRlcyI6NzE5LCIuL2hlbHBlcnMiOjczMH1dLDcyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi9kcmF3X25ld3NoYXBlL2hlbHBlcnMiKS5yZWFkUGF0aHMscz10KCIuL2RyYXdfbmV3c2hhcGUvZGlzcGxheV9vdXRsaW5lcyIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2hhbmRsZV9vdXRsaW5lIikuY2xlYXJPdXRsaW5lQ29udHJvbGxlcnMsYz10KCIuLi9jb2xvciIpLHU9dCgiLi4vZHJhd2luZyIpLGY9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yLGg9dCgiLi4vZHJhZ2VsZW1lbnQiKSxwPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxkPXQoIi4vY29uc3RhbnRzIiksbT10KCIuL2hlbHBlcnMiKTtmdW5jdGlvbiBnKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7Zm9yKHZhciByIGluIGUuX3NoYXBlVXBwZXJMYXllci5zZWxlY3RBbGwoInBhdGgiKS5yZW1vdmUoKSxlLl9zaGFwZUxvd2VyTGF5ZXIuc2VsZWN0QWxsKCJwYXRoIikucmVtb3ZlKCksZS5fcGxvdHMpe3ZhciBuPWUuX3Bsb3RzW3JdLnNoYXBlbGF5ZXI7biYmbi5zZWxlY3RBbGwoInBhdGgiKS5yZW1vdmUoKX1mb3IodmFyIGk9MDtpPGUuc2hhcGVzLmxlbmd0aDtpKyspZS5zaGFwZXNbaV0udmlzaWJsZSYmeCh0LGkpfWZ1bmN0aW9uIHYodCl7cmV0dXJuISF0Ll9mdWxsTGF5b3V0Ll9kcmF3aW5nfWZ1bmN0aW9uIHkodCl7cmV0dXJuIXQuX2NvbnRleHQuZWRpdHMuc2hhcGVQb3NpdGlvbn1mdW5jdGlvbiB4KHQsZSl7dC5fZnVsbExheW91dC5fcGFwZXJkaXYuc2VsZWN0QWxsKCcuc2hhcGVsYXllciBbZGF0YS1pbmRleD0iJytlKyciXScpLnJlbW92ZSgpO3ZhciByPW0ubWFrZU9wdGlvbnNBbmRQbG90aW5mbyh0LGUpLGw9ci5vcHRpb25zLHg9ci5wbG90aW5mbztpZihsLl9pbnB1dCYmITEhPT1sLnZpc2libGUpaWYoImJlbG93IiE9PWwubGF5ZXIpayh0Ll9mdWxsTGF5b3V0Ll9zaGFwZVVwcGVyTGF5ZXIpO2Vsc2UgaWYoInBhcGVyIj09PWwueHJlZnx8InBhcGVyIj09PWwueXJlZilrKHQuX2Z1bGxMYXlvdXQuX3NoYXBlTG93ZXJMYXllcik7ZWxzZXtpZih4Ll9oYWRQbG90aW5mbylrKCh4Lm1haW5wbG90aW5mb3x8eCkuc2hhcGVsYXllcik7ZWxzZSBrKHQuX2Z1bGxMYXlvdXQuX3NoYXBlTG93ZXJMYXllcil9ZnVuY3Rpb24gayhyKXt2YXIgaz1fKHQsbCksQT17ImRhdGEtaW5kZXgiOmUsImZpbGwtcnVsZSI6bC5maWxscnVsZSxkOmt9LE09bC5vcGFjaXR5LFM9bC5maWxsY29sb3IsRT1sLmxpbmUud2lkdGg/bC5saW5lLmNvbG9yOiJyZ2JhKDAsMCwwLDApIixMPWwubGluZS53aWR0aCxDPWwubGluZS5kYXNoO0x8fCEwIT09bC5lZGl0YWJsZXx8KEw9NSxDPSJzb2xpZCIpO3ZhciBQPSJaIiE9PWtbay5sZW5ndGgtMV0sST15KHQpJiZsLmVkaXRhYmxlJiZ0Ll9mdWxsTGF5b3V0Ll9hY3RpdmVTaGFwZUluZGV4PT09ZTtJJiYoUz1QPyJyZ2JhKDAsMCwwLDApIjp0Ll9mdWxsTGF5b3V0LmFjdGl2ZXNoYXBlLmZpbGxjb2xvcixNPXQuX2Z1bGxMYXlvdXQuYWN0aXZlc2hhcGUub3BhY2l0eSk7dmFyIE8sej1yLmFwcGVuZCgicGF0aCIpLmF0dHIoQSkuc3R5bGUoIm9wYWNpdHkiLE0pLmNhbGwoYy5zdHJva2UsRSkuY2FsbChjLmZpbGwsUykuY2FsbCh1LmRhc2hMaW5lLEMsTCk7aWYoYih6LHQsbCksKEl8fHQuX2NvbnRleHQuZWRpdHMuc2hhcGVQb3NpdGlvbikmJihPPWYodC5sYXlvdXQsInNoYXBlcyIsbCkpLEkpe3ouc3R5bGUoe2N1cnNvcjoibW92ZSJ9KTt2YXIgRD17ZWxlbWVudDp6Lm5vZGUoKSxwbG90aW5mbzp4LGdkOnQsZWRpdEhlbHBlcnM6Tyxpc0FjdGl2ZVNoYXBlOiEwfSxSPW8oayx0KTtzKFIseixEKX1lbHNlIHQuX2NvbnRleHQuZWRpdHMuc2hhcGVQb3NpdGlvbj9mdW5jdGlvbih0LGUscixvLHMsbCl7dmFyIGMsZixnLHkseCxULGssQSxNLFMsRSxMLEMsUCxJLE8sej0icGl4ZWwiPT09ci54c2l6ZW1vZGUsRD0icGl4ZWwiPT09ci55c2l6ZW1vZGUsUj0ibGluZSI9PT1yLnR5cGUsRj0icGF0aCI9PT1yLnR5cGUsQj1sLm1vZGlmeUl0ZW0sTj1hLmdldEZyb21JZCh0LHIueHJlZiksaj1hLmdldFJlZlR5cGUoci54cmVmKSxVPWEuZ2V0RnJvbUlkKHQsci55cmVmKSxWPWEuZ2V0UmVmVHlwZShyLnlyZWYpLEg9bS5nZXREYXRhVG9QaXhlbCh0LE4sITEsaikscT1tLmdldERhdGFUb1BpeGVsKHQsVSwhMCxWKSxHPW0uZ2V0UGl4ZWxUb0RhdGEodCxOLCExLGopLFk9bS5nZXRQaXhlbFRvRGF0YSh0LFUsITAsViksVz1SP2Z1bmN0aW9uKCl7dmFyIHQ9TWF0aC5tYXgoci5saW5lLndpZHRoLDEwKSxuPXMuYXBwZW5kKCJnIikuYXR0cigiZGF0YS1pbmRleCIsbyk7bi5hcHBlbmQoInBhdGgiKS5hdHRyKCJkIixlLmF0dHIoImQiKSkuc3R5bGUoe2N1cnNvcjoibW92ZSIsInN0cm9rZS13aWR0aCI6dCwic3Ryb2tlLW9wYWNpdHkiOiIwIn0pO3ZhciBpPXsiZmlsbC1vcGFjaXR5IjoiMCJ9LGE9TWF0aC5tYXgodC8yLDEwKTtyZXR1cm4gbi5hcHBlbmQoImNpcmNsZSIpLmF0dHIoeyJkYXRhLWxpbmUtcG9pbnQiOiJzdGFydC1wb2ludCIsY3g6ej9IKHIueGFuY2hvcikrci54MDpIKHIueDApLGN5OkQ/cShyLnlhbmNob3IpLXIueTA6cShyLnkwKSxyOmF9KS5zdHlsZShpKS5jbGFzc2VkKCJjdXJzb3ItZ3JhYiIsITApLG4uYXBwZW5kKCJjaXJjbGUiKS5hdHRyKHsiZGF0YS1saW5lLXBvaW50IjoiZW5kLXBvaW50IixjeDp6P0goci54YW5jaG9yKStyLngxOkgoci54MSksY3k6RD9xKHIueWFuY2hvciktci55MTpxKHIueTEpLHI6YX0pLnN0eWxlKGkpLmNsYXNzZWQoImN1cnNvci1ncmFiIiwhMCksbn0oKTplLFg9e2VsZW1lbnQ6Vy5ub2RlKCksZ2Q6dCxwcmVwRm46ZnVuY3Rpb24obil7aWYodih0KSlyZXR1cm47eiYmKHg9SChyLnhhbmNob3IpKTtEJiYoVD1xKHIueWFuY2hvcikpOyJwYXRoIj09PXIudHlwZT9JPXIucGF0aDooYz16P3IueDA6SChyLngwKSxmPUQ/ci55MDpxKHIueTApLGc9ej9yLngxOkgoci54MSkseT1EP3IueTE6cShyLnkxKSk7YzxnPyhNPWMsQz0ieDAiLFM9ZyxQPSJ4MSIpOihNPWcsQz0ieDEiLFM9YyxQPSJ4MCIpOyFEJiZmPHl8fEQmJmY+eT8oaz1mLEU9InkwIixBPXksTD0ieTEiKTooaz15LEU9InkxIixBPWYsTD0ieTAiKTtaKG4pLFEocyxyKSxmdW5jdGlvbih0LGUscil7dmFyIG49ZS54cmVmLGk9ZS55cmVmLG89YS5nZXRGcm9tSWQocixuKSxzPWEuZ2V0RnJvbUlkKHIsaSksbD0iIjsicGFwZXIiPT09bnx8by5hdXRvcmFuZ2V8fChsKz1uKTsicGFwZXIiPT09aXx8cy5hdXRvcmFuZ2V8fChsKz1pKTt1LnNldENsaXBVcmwodCxsPyJjbGlwIityLl9mdWxsTGF5b3V0Ll91aWQrbDpudWxsLHIpfShlLHIsdCksWC5tb3ZlRm49Im1vdmUiPT09Tz9KOkssWC5hbHRLZXk9bi5hbHRLZXl9LGRvbmVGbjpmdW5jdGlvbigpe2lmKHYodCkpcmV0dXJuO3AoZSksJChzKSxiKGUsdCxyKSxuLmNhbGwoIl9ndWlSZWxheW91dCIsdCxsLmdldFVwZGF0ZU9iaigpKX0sY2xpY2tGbjpmdW5jdGlvbigpe2lmKHYodCkpcmV0dXJuOyQocyl9fTtmdW5jdGlvbiBaKHIpe2lmKHYodCkpTz1udWxsO2Vsc2UgaWYoUilPPSJwYXRoIj09PXIudGFyZ2V0LnRhZ05hbWU/Im1vdmUiOiJzdGFydC1wb2ludCI9PT1yLnRhcmdldC5hdHRyaWJ1dGVzWyJkYXRhLWxpbmUtcG9pbnQiXS52YWx1ZT8icmVzaXplLW92ZXItc3RhcnQtcG9pbnQiOiJyZXNpemUtb3Zlci1lbmQtcG9pbnQiO2Vsc2V7dmFyIG49WC5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLGk9bi5yaWdodC1uLmxlZnQsYT1uLmJvdHRvbS1uLnRvcCxvPXIuY2xpZW50WC1uLmxlZnQscz1yLmNsaWVudFktbi50b3AsbD0hRiYmaT4xMCYmYT4xMCYmIXIuc2hpZnRLZXk/aC5nZXRDdXJzb3Ioby9pLDEtcy9hKToibW92ZSI7cChlLGwpLE89bC5zcGxpdCgiLSIpWzBdfX1mdW5jdGlvbiBKKG4saSl7aWYoInBhdGgiPT09ci50eXBlKXt2YXIgYT1mdW5jdGlvbih0KXtyZXR1cm4gdH0sbz1hLGw9YTt6P0IoInhhbmNob3IiLHIueGFuY2hvcj1HKHgrbikpOihvPWZ1bmN0aW9uKHQpe3JldHVybiBHKEgodCkrbil9LE4mJiJkYXRlIj09PU4udHlwZSYmKG89bS5lbmNvZGVEYXRlKG8pKSksRD9CKCJ5YW5jaG9yIixyLnlhbmNob3I9WShUK2kpKToobD1mdW5jdGlvbih0KXtyZXR1cm4gWShxKHQpK2kpfSxVJiYiZGF0ZSI9PT1VLnR5cGUmJihsPW0uZW5jb2RlRGF0ZShsKSkpLEIoInBhdGgiLHIucGF0aD13KEksbyxsKSl9ZWxzZSB6P0IoInhhbmNob3IiLHIueGFuY2hvcj1HKHgrbikpOihCKCJ4MCIsci54MD1HKGMrbikpLEIoIngxIixyLngxPUcoZytuKSkpLEQ/QigieWFuY2hvciIsci55YW5jaG9yPVkoVCtpKSk6KEIoInkwIixyLnkwPVkoZitpKSksQigieTEiLHIueTE9WSh5K2kpKSk7ZS5hdHRyKCJkIixfKHQscikpLFEocyxyKX1mdW5jdGlvbiBLKG4saSl7aWYoRil7dmFyIGE9ZnVuY3Rpb24odCl7cmV0dXJuIHR9LG89YSxsPWE7ej9CKCJ4YW5jaG9yIixyLnhhbmNob3I9Ryh4K24pKToobz1mdW5jdGlvbih0KXtyZXR1cm4gRyhIKHQpK24pfSxOJiYiZGF0ZSI9PT1OLnR5cGUmJihvPW0uZW5jb2RlRGF0ZShvKSkpLEQ/QigieWFuY2hvciIsci55YW5jaG9yPVkoVCtpKSk6KGw9ZnVuY3Rpb24odCl7cmV0dXJuIFkocSh0KStpKX0sVSYmImRhdGUiPT09VS50eXBlJiYobD1tLmVuY29kZURhdGUobCkpKSxCKCJwYXRoIixyLnBhdGg9dyhJLG8sbCkpfWVsc2UgaWYoUil7aWYoInJlc2l6ZS1vdmVyLXN0YXJ0LXBvaW50Ij09PU8pe3ZhciB1PWMrbixoPUQ/Zi1pOmYraTtCKCJ4MCIsci54MD16P3U6Ryh1KSksQigieTAiLHIueTA9RD9oOlkoaCkpfWVsc2UgaWYoInJlc2l6ZS1vdmVyLWVuZC1wb2ludCI9PT1PKXt2YXIgcD1nK24sZD1EP3ktaTp5K2k7QigieDEiLHIueDE9ej9wOkcocCkpLEIoInkxIixyLnkxPUQ/ZDpZKGQpKX19ZWxzZXt2YXIgdj1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PU8uaW5kZXhPZih0KX0sYj12KCJuIiksaj12KCJzIiksVj12KCJ3IiksVz12KCJlIiksWD1iP2sraTprLFo9aj9BK2k6QSxKPVY/TStuOk0sSz1XP1MrbjpTO0QmJihiJiYoWD1rLWkpLGomJihaPUEtaSkpLCghRCYmWi1YPjEwfHxEJiZYLVo+MTApJiYoQihFLHJbRV09RD9YOlkoWCkpLEIoTCxyW0xdPUQ/WjpZKFopKSksSy1KPjEwJiYoQihDLHJbQ109ej9KOkcoSikpLEIoUCxyW1BdPXo/SzpHKEspKSl9ZS5hdHRyKCJkIixfKHQscikpLFEocyxyKX1mdW5jdGlvbiBRKHQsZSl7KHp8fEQpJiZmdW5jdGlvbigpe3ZhciByPSJwYXRoIiE9PWUudHlwZSxuPXQuc2VsZWN0QWxsKCIudmlzdWFsLWN1ZSIpLmRhdGEoWzBdKTtuLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuYXR0cih7ZmlsbDoiI2ZmZiIsImZpbGwtcnVsZSI6ImV2ZW5vZGQiLHN0cm9rZToiIzAwMCIsInN0cm9rZS13aWR0aCI6MX0pLmNsYXNzZWQoInZpc3VhbC1jdWUiLCEwKTt2YXIgYT1IKHo/ZS54YW5jaG9yOmkubWlkUmFuZ2Uocj9bZS54MCxlLngxXTptLmV4dHJhY3RQYXRoQ29vcmRzKGUucGF0aCxkLnBhcmFtSXNYKSkpLG89cShEP2UueWFuY2hvcjppLm1pZFJhbmdlKHI/W2UueTAsZS55MV06bS5leHRyYWN0UGF0aENvb3JkcyhlLnBhdGgsZC5wYXJhbUlzWSkpKTtpZihhPW0ucm91bmRQb3NpdGlvbkZvclNoYXJwU3Ryb2tlUmVuZGVyaW5nKGEsMSksbz1tLnJvdW5kUG9zaXRpb25Gb3JTaGFycFN0cm9rZVJlbmRlcmluZyhvLDEpLHomJkQpe3ZhciBzPSJNIisoYS0xLTEpKyIsIisoby0xLTEpKyJoLTh2Mmg4IHY4aDJ2LTggaDh2LTJoLTggdi04aC0yIFoiO24uYXR0cigiZCIscyl9ZWxzZSBpZih6KXt2YXIgbD0iTSIrKGEtMS0xKSsiLCIrKG8tOS0xKSsidjE4IGgyIHYtMTggWiI7bi5hdHRyKCJkIixsKX1lbHNle3ZhciBjPSJNIisoYS05LTEpKyIsIisoby0xLTEpKyJoMTggdjIgaC0xOCBaIjtuLmF0dHIoImQiLGMpfX0oKX1mdW5jdGlvbiAkKHQpe3Quc2VsZWN0QWxsKCIudmlzdWFsLWN1ZSIpLnJlbW92ZSgpfWguaW5pdChYKSxXLm5vZGUoKS5vbm1vdXNlbW92ZT1afSh0LHosbCxlLHIsTyk6ITA9PT1sLmVkaXRhYmxlJiZ6LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsUHx8Yy5vcGFjaXR5KFMpKk08PS41PyJzdHJva2UiOiJhbGwiKTt6Lm5vZGUoKS5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsKGZ1bmN0aW9uKCl7cmV0dXJuIGZ1bmN0aW9uKHQsZSl7aWYoIXkodCkpcmV0dXJuO3ZhciByPStlLm5vZGUoKS5nZXRBdHRyaWJ1dGUoImRhdGEtaW5kZXgiKTtpZihyPj0wKXtpZihyPT09dC5fZnVsbExheW91dC5fYWN0aXZlU2hhcGVJbmRleClyZXR1cm4gdm9pZCBUKHQpO3QuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg9cix0Ll9mdWxsTGF5b3V0Ll9kZWFjdGl2YXRlU2hhcGU9VCxnKHQpfX0odCx6KX0pKX19ZnVuY3Rpb24gYih0LGUscil7dmFyIG49KHIueHJlZityLnlyZWYpLnJlcGxhY2UoL3BhcGVyL2csIiIpLnJlcGxhY2UoL1t4eXpdWzEtOV0qICpkb21haW4vZywiIik7dS5zZXRDbGlwVXJsKHQsbj8iY2xpcCIrZS5fZnVsbExheW91dC5fdWlkK246bnVsbCxlKX1mdW5jdGlvbiBfKHQsZSl7dmFyIHIsbixvLHMsbCxjLHUsZixoPWUudHlwZSxwPWEuZ2V0UmVmVHlwZShlLnhyZWYpLGc9YS5nZXRSZWZUeXBlKGUueXJlZiksdj1hLmdldEZyb21JZCh0LGUueHJlZikseT1hLmdldEZyb21JZCh0LGUueXJlZikseD10Ll9mdWxsTGF5b3V0Ll9zaXplO2lmKHY/ImRvbWFpbiI9PT1wP249ZnVuY3Rpb24odCl7cmV0dXJuIHYuX29mZnNldCt2Ll9sZW5ndGgqdH06KHI9bS5zaGFwZVBvc2l0aW9uVG9SYW5nZSh2KSxuPWZ1bmN0aW9uKHQpe3JldHVybiB2Ll9vZmZzZXQrdi5yMnAocih0LCEwKSl9KTpuPWZ1bmN0aW9uKHQpe3JldHVybiB4LmwreC53KnR9LHk/ImRvbWFpbiI9PT1nP3M9ZnVuY3Rpb24odCl7cmV0dXJuIHkuX29mZnNldCt5Ll9sZW5ndGgqKDEtdCl9OihvPW0uc2hhcGVQb3NpdGlvblRvUmFuZ2UoeSkscz1mdW5jdGlvbih0KXtyZXR1cm4geS5fb2Zmc2V0K3kucjJwKG8odCwhMCkpfSk6cz1mdW5jdGlvbih0KXtyZXR1cm4geC50K3guaCooMS10KX0sInBhdGgiPT09aClyZXR1cm4gdiYmImRhdGUiPT09di50eXBlJiYobj1tLmRlY29kZURhdGUobikpLHkmJiJkYXRlIj09PXkudHlwZSYmKHM9bS5kZWNvZGVEYXRlKHMpKSxmdW5jdGlvbih0LGUscil7dmFyIG49dC5wYXRoLGE9dC54c2l6ZW1vZGUsbz10LnlzaXplbW9kZSxzPXQueGFuY2hvcixsPXQueWFuY2hvcjtyZXR1cm4gbi5yZXBsYWNlKGQuc2VnbWVudFJFLChmdW5jdGlvbih0KXt2YXIgbj0wLGM9dC5jaGFyQXQoMCksdT1kLnBhcmFtSXNYW2NdLGY9ZC5wYXJhbUlzWVtjXSxoPWQubnVtUGFyYW1zW2NdLHA9dC5zdWJzdHIoMSkucmVwbGFjZShkLnBhcmFtUkUsKGZ1bmN0aW9uKHQpe3JldHVybiB1W25dP3Q9InBpeGVsIj09PWE/ZShzKStOdW1iZXIodCk6ZSh0KTpmW25dJiYodD0icGl4ZWwiPT09bz9yKGwpLU51bWJlcih0KTpyKHQpKSwrK24+aCYmKHQ9IlgiKSx0fSkpO3JldHVybiBuPmgmJihwPXAucmVwbGFjZSgvW1xzLF0qWC4qLywiIiksaS5sb2coIklnbm9yaW5nIGV4dHJhIHBhcmFtcyBpbiBzZWdtZW50ICIrdCkpLGMrcH0pKX0oZSxuLHMpO2lmKCJwaXhlbCI9PT1lLnhzaXplbW9kZSl7dmFyIGI9bihlLnhhbmNob3IpO2w9YitlLngwLGM9YitlLngxfWVsc2UgbD1uKGUueDApLGM9bihlLngxKTtpZigicGl4ZWwiPT09ZS55c2l6ZW1vZGUpe3ZhciBfPXMoZS55YW5jaG9yKTt1PV8tZS55MCxmPV8tZS55MX1lbHNlIHU9cyhlLnkwKSxmPXMoZS55MSk7aWYoImxpbmUiPT09aClyZXR1cm4iTSIrbCsiLCIrdSsiTCIrYysiLCIrZjtpZigicmVjdCI9PT1oKXJldHVybiJNIitsKyIsIit1KyJIIitjKyJWIitmKyJIIitsKyJaIjt2YXIgdz0obCtjKS8yLFQ9KHUrZikvMixrPU1hdGguYWJzKHctbCksQT1NYXRoLmFicyhULXUpLE09IkEiK2srIiwiK0EsUz13K2srIiwiK1Q7cmV0dXJuIk0iK1MrTSsiIDAgMSwxICIrKHcrIiwiKyhULUEpKStNKyIgMCAwLDEgIitTKyJaIn1mdW5jdGlvbiB3KHQsZSxyKXtyZXR1cm4gdC5yZXBsYWNlKGQuc2VnbWVudFJFLChmdW5jdGlvbih0KXt2YXIgbj0wLGk9dC5jaGFyQXQoMCksYT1kLnBhcmFtSXNYW2ldLG89ZC5wYXJhbUlzWVtpXSxzPWQubnVtUGFyYW1zW2ldO3JldHVybiBpK3Quc3Vic3RyKDEpLnJlcGxhY2UoZC5wYXJhbVJFLChmdW5jdGlvbih0KXtyZXR1cm4gbj49c3x8KGFbbl0/dD1lKHQpOm9bbl0mJih0PXIodCkpLG4rKyksdH0pKX0pKX1mdW5jdGlvbiBUKHQpe3kodCkmJih0Ll9mdWxsTGF5b3V0Ll9hY3RpdmVTaGFwZUluZGV4Pj0wJiYobCh0KSxkZWxldGUgdC5fZnVsbExheW91dC5fYWN0aXZlU2hhcGVJbmRleCxnKHQpKSl9ZS5leHBvcnRzPXtkcmF3OmcsZHJhd09uZTp4LGVyYXNlQWN0aXZlU2hhcGU6ZnVuY3Rpb24odCl7aWYoIXkodCkpcmV0dXJuO2wodCk7dmFyIGU9dC5fZnVsbExheW91dC5fYWN0aXZlU2hhcGVJbmRleCxyPSh0LmxheW91dHx8e30pLnNoYXBlc3x8W107aWYoZTxyLmxlbmd0aCl7Zm9yKHZhciBpPVtdLGE9MDthPHIubGVuZ3RoO2ErKylhIT09ZSYmaS5wdXNoKHJbYV0pO2RlbGV0ZSB0Ll9mdWxsTGF5b3V0Ll9hY3RpdmVTaGFwZUluZGV4LG4uY2FsbCgiX2d1aVJlbGF5b3V0Iix0LHtzaGFwZXM6aX0pfX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo3OTcsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2hhbmRsZV9vdXRsaW5lIjo4MzgsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2NvbG9yIjo2MzksIi4uL2RyYWdlbGVtZW50Ijo2NTgsIi4uL2RyYXdpbmciOjY2MSwiLi9jb25zdGFudHMiOjcyMSwiLi9kcmF3X25ld3NoYXBlL2Rpc3BsYXlfb3V0bGluZXMiOjcyNywiLi9kcmF3X25ld3NoYXBlL2hlbHBlcnMiOjcyOCwiLi9oZWxwZXJzIjo3MzB9XSw3MjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vZHJhd2luZy9hdHRyaWJ1dGVzIikuZGFzaCxpPXQoIi4uLy4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17bmV3c2hhcGU6e2xpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6Im5vbmUifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjQsZWRpdFR5cGU6Im5vbmUifSxkYXNoOmkoe30sbix7ZGZsdDoic29saWQiLGVkaXRUeXBlOiJub25lIn0pLGVkaXRUeXBlOiJub25lIn0sZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSIsZWRpdFR5cGU6Im5vbmUifSxmaWxscnVsZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZXZlbm9kZCIsIm5vbnplcm8iXSxkZmx0OiJldmVub2RkIixlZGl0VHlwZToibm9uZSJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJub25lIn0sbGF5ZXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImJlbG93IiwiYWJvdmUiXSxkZmx0OiJhYm92ZSIsZWRpdFR5cGU6Im5vbmUifSxkcmF3ZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJvcnRobyIsImhvcml6b250YWwiLCJ2ZXJ0aWNhbCIsImRpYWdvbmFsIl0sZGZsdDoiZGlhZ29uYWwiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6Im5vbmUifSxhY3RpdmVzaGFwZTp7ZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiKDI1NSwwLDI1NSkiLGVkaXRUeXBlOiJub25lIn0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi41LGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6Im5vbmUifX19LHsiLi4vLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9kcmF3aW5nL2F0dHJpYnV0ZXMiOjY2MH1dLDcyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0NJUkNMRV9TSURFUzozMixpMDAwOjAsaTA5MDo4LGkxODA6MTYsaTI3MDoyNCxjb3M0NTpNYXRoLmNvcyhNYXRoLlBJLzQpLHNpbjQ1Ok1hdGguc2luKE1hdGguUEkvNCksU1FSVDI6TWF0aC5zcXJ0KDIpfX0se31dLDcyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb2xvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYocigibmV3c2hhcGUuZHJhd2RpcmVjdGlvbiIpLHIoIm5ld3NoYXBlLmxheWVyIikscigibmV3c2hhcGUuZmlsbGNvbG9yIikscigibmV3c2hhcGUuZmlsbHJ1bGUiKSxyKCJuZXdzaGFwZS5vcGFjaXR5IikscigibmV3c2hhcGUubGluZS53aWR0aCIpKXt2YXIgaT0odHx8e30pLnBsb3RfYmdjb2xvcnx8IiNGRkYiO3IoIm5ld3NoYXBlLmxpbmUuY29sb3IiLG4uY29udHJhc3QoaSkpLHIoIm5ld3NoYXBlLmxpbmUuZGFzaCIpfXIoImFjdGl2ZXNoYXBlLmZpbGxjb2xvciIpLHIoImFjdGl2ZXNoYXBlLm9wYWNpdHkiKX19LHsiLi4vLi4vY29sb3IiOjYzOX1dLDcyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9kcmFnZWxlbWVudCIpLGk9dCgiLi4vLi4vZHJhZ2VsZW1lbnQvaGVscGVycyIpLmRyYXdNb2RlLGE9dCgiLi4vLi4vLi4vcmVnaXN0cnkiKSxvPXQoIi4vY29uc3RhbnRzIikscz1vLmkwMDAsbD1vLmkwOTAsYz1vLmkxODAsdT1vLmkyNzAsZj10KCIuLi8uLi8uLi9wbG90cy9jYXJ0ZXNpYW4vaGFuZGxlX291dGxpbmUiKS5jbGVhck91dGxpbmVDb250cm9sbGVycyxoPXQoIi4vaGVscGVycyIpLHA9aC5wb2ludHNTaGFwZVJlY3RhbmdsZSxkPWgucG9pbnRzU2hhcGVFbGxpcHNlLG09aC53cml0ZVBhdGhzLGc9dCgiLi9uZXdzaGFwZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIsbyxoKXtofHwoaD0wKTt2YXIgdj1vLmdkO2Z1bmN0aW9uIHkoKXt0KGUscixvLGgrKyksZChlWzBdKSYmeCh7cmVkcmF3aW5nOiEwfSl9ZnVuY3Rpb24geCh0KXtvLmlzQWN0aXZlU2hhcGU9ITE7dmFyIGU9ZyhyLG8pO09iamVjdC5rZXlzKGUpLmxlbmd0aCYmYS5jYWxsKCh0fHx7fSkucmVkcmF3aW5nPyJyZWxheW91dCI6Il9ndWlSZWxheW91dCIsdixlKX12YXIgYixfLHcsVCxrLEE9by5pc0FjdGl2ZVNoYXBlLE09di5fZnVsbExheW91dC5fem9vbWxheWVyLFM9by5kcmFnbW9kZTsoaShTKT92Ll9mdWxsTGF5b3V0Ll9kcmF3aW5nPSEwOnYuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg+PTAmJmYodiksci5hdHRyKCJkIixtKGUpKSxBJiYhaCkmJihrPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07dFtyXT1bXTtmb3IodmFyIGk9MDtpPG4ubGVuZ3RoO2krKyl7dFtyXVtpXT1bXTtmb3IodmFyIGE9MDthPG5baV0ubGVuZ3RoO2ErKyl0W3JdW2ldW2FdPW5baV1bYV19fXJldHVybiB0fShbXSxlKSxmdW5jdGlvbih0KXtiPVtdO2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgaT1lW3JdLGE9IXAoaSkmJmQoaSk7YltyXT1bXTtmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKylpZigiWiIhPT1pW29dWzBdJiYoIWF8fG89PT1zfHxvPT09bHx8bz09PWN8fG89PT11KSl7dmFyIGY9aVtvXVsxXSxoPWlbb11bMl0sbT10LmFwcGVuZCgiY2lyY2xlIikuY2xhc3NlZCgiY3Vyc29yLWdyYWIiLCEwKS5hdHRyKCJkYXRhLWkiLHIpLmF0dHIoImRhdGEtaiIsbykuYXR0cigiY3giLGYpLmF0dHIoImN5IixoKS5hdHRyKCJyIiw0KS5zdHlsZSh7Im1peC1ibGVuZC1tb2RlIjoibHVtaW5vc2l0eSIsZmlsbDoiYmxhY2siLHN0cm9rZToid2hpdGUiLCJzdHJva2Utd2lkdGgiOjF9KTtiW3JdW29dPXtlbGVtZW50Om0ubm9kZSgpLGdkOnYscHJlcEZuOkUsZG9uZUZuOkMsY2xpY2tGbjpQfSxuLmluaXQoYltyXVtvXSl9fX0oTS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsIm91dGxpbmUtY29udHJvbGxlcnMiKSksZnVuY3Rpb24oKXtpZihfPVtdLCFlLmxlbmd0aClyZXR1cm47X1swXT17ZWxlbWVudDpyWzBdWzBdLGdkOnYscHJlcEZuOk8sZG9uZUZuOnp9LG4uaW5pdChfWzBdKX0oKSk7ZnVuY3Rpb24gRSh0KXt3PSt0LnNyY0VsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWkiKSxUPSt0LnNyY0VsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWoiKSxiW3ddW1RdLm1vdmVGbj1MfWZ1bmN0aW9uIEwodCxyKXtpZihlLmxlbmd0aCl7dmFyIG49a1t3XVtUXVsxXSxpPWtbd11bVF1bMl0sYT1lW3ddLG89YS5sZW5ndGg7aWYocChhKSl7Zm9yKHZhciBzPTA7czxvO3MrKylpZihzIT09VCl7dmFyIGw9YVtzXTtsWzFdPT09YVtUXVsxXSYmKGxbMV09bit0KSxsWzJdPT09YVtUXVsyXSYmKGxbMl09aStyKX1pZihhW1RdWzFdPW4rdCxhW1RdWzJdPWkrciwhcChhKSlmb3IodmFyIGM9MDtjPG87YysrKWZvcih2YXIgdT0wO3U8YVtjXS5sZW5ndGg7dSsrKWFbY11bdV09a1t3XVtjXVt1XX1lbHNlIGFbVF1bMV09bit0LGFbVF1bMl09aStyO3koKX19ZnVuY3Rpb24gQygpe3goKX1mdW5jdGlvbiBQKHQscil7aWYoMj09PXQpe3c9K3Iuc3JjRWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtaSIpLFQ9K3Iuc3JjRWxlbWVudC5nZXRBdHRyaWJ1dGUoImRhdGEtaiIpO3ZhciBuPWVbd107cChuKXx8ZChuKXx8ZnVuY3Rpb24oKXtpZihlLmxlbmd0aCYmZVt3XSYmZVt3XS5sZW5ndGgpe2Zvcih2YXIgdD1bXSxyPTA7cjxlW3ddLmxlbmd0aDtyKyspciE9PVQmJnQucHVzaChlW3ddW3JdKTt0Lmxlbmd0aD4xJiYoMiE9PXQubGVuZ3RofHwiWiIhPT10WzFdWzBdKSYmKDA9PT1UJiYodFswXVswXT0iTSIpLGVbd109dCx5KCkseCgpKX19KCl9fWZ1bmN0aW9uIEkodCxyKXshZnVuY3Rpb24odCxyKXtpZihlLmxlbmd0aClmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylmb3IodmFyIGk9MDtpPGVbbl0ubGVuZ3RoO2krKylmb3IodmFyIGE9MDthKzI8ZVtuXVtpXS5sZW5ndGg7YSs9MillW25dW2ldW2ErMV09a1tuXVtpXVthKzFdK3QsZVtuXVtpXVthKzJdPWtbbl1baV1bYSsyXStyfSh0LHIpLHkoKX1mdW5jdGlvbiBPKHQpeyh3PSt0LnNyY0VsZW1lbnQuZ2V0QXR0cmlidXRlKCJkYXRhLWkiKSl8fCh3PTApLF9bd10ubW92ZUZuPUl9ZnVuY3Rpb24geigpe3goKX19fSx7Ii4uLy4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9oYW5kbGVfb3V0bGluZSI6ODM4LCIuLi8uLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi8uLi9kcmFnZWxlbWVudCI6NjU4LCIuLi8uLi9kcmFnZWxlbWVudC9oZWxwZXJzIjo2NTcsIi4vY29uc3RhbnRzIjo3MjUsIi4vaGVscGVycyI6NzI4LCIuL25ld3NoYXBlcyI6NzI5fV0sNzI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBhcnNlLXN2Zy1wYXRoIiksaT10KCIuL2NvbnN0YW50cyIpLGE9aS5DSVJDTEVfU0lERVMsbz1pLlNRUlQyLHM9dCgiLi4vLi4vLi4vcGxvdHMvY2FydGVzaWFuL2hlbHBlcnMiKSxsPXMucDJyLGM9cy5yMnAsdT1bMCwzLDQsNSw2LDEsMl0sZj1bMCwzLDQsMSwyXTtmdW5jdGlvbiBoKHQsZSl7cmV0dXJuIE1hdGguYWJzKHQtZSk8PTFlLTZ9ZnVuY3Rpb24gcCh0LGUpe3ZhciByPWVbMV0tdFsxXSxuPWVbMl0tdFsyXTtyZXR1cm4gTWF0aC5zcXJ0KHIqcituKm4pfXIud3JpdGVQYXRocz1mdW5jdGlvbih0KXt2YXIgZT10Lmxlbmd0aDtpZighZSlyZXR1cm4iTTAsMFoiO2Zvcih2YXIgcj0iIixuPTA7bjxlO24rKylmb3IodmFyIGk9dFtuXS5sZW5ndGgsYT0wO2E8aTthKyspe3ZhciBvPXRbbl1bYV1bMF07aWYoIloiPT09bylyKz0iWiI7ZWxzZSBmb3IodmFyIHM9dFtuXVthXS5sZW5ndGgsbD0wO2w8cztsKyspe3ZhciBjPWw7IlEiPT09b3x8IlMiPT09bz9jPWZbbF06IkMiPT09byYmKGM9dVtsXSkscis9dFtuXVthXVtjXSxsPjAmJmw8cy0xJiYocis9IiwiKX19cmV0dXJuIHJ9LHIucmVhZFBhdGhzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBvLHMsdSxmPW4odCksaD1bXSxwPS0xLGQ9MCxtPTAsZz1mdW5jdGlvbigpe3M9ZCx1PW19O2coKTtmb3IodmFyIHY9MDt2PGYubGVuZ3RoO3YrKyl7dmFyIHkseCxiLF8sdz1bXSxUPWZbdl1bMF0saz1UO3N3aXRjaChUKXtjYXNlIk0iOnArKyxoW3BdPVtdLGQ9K2Zbdl1bMV0sbT0rZlt2XVsyXSx3LnB1c2goW2ssZCxtXSksZygpO2JyZWFrO2Nhc2UiUSI6Y2FzZSJTIjp5PStmW3ZdWzFdLGI9K2Zbdl1bMl0sZD0rZlt2XVszXSxtPStmW3ZdWzRdLHcucHVzaChbayxkLG0seSxiXSk7YnJlYWs7Y2FzZSJDIjp5PStmW3ZdWzFdLGI9K2Zbdl1bMl0seD0rZlt2XVszXSxfPStmW3ZdWzRdLGQ9K2Zbdl1bNV0sbT0rZlt2XVs2XSx3LnB1c2goW2ssZCxtLHksYix4LF9dKTticmVhaztjYXNlIlQiOmNhc2UiTCI6ZD0rZlt2XVsxXSxtPStmW3ZdWzJdLHcucHVzaChbayxkLG1dKTticmVhaztjYXNlIkgiOms9IkwiLGQ9K2Zbdl1bMV0sdy5wdXNoKFtrLGQsbV0pO2JyZWFrO2Nhc2UiViI6az0iTCIsbT0rZlt2XVsxXSx3LnB1c2goW2ssZCxtXSk7YnJlYWs7Y2FzZSJBIjprPSJMIjt2YXIgQT0rZlt2XVsxXSxNPStmW3ZdWzJdOytmW3ZdWzRdfHwoQT0tQSxNPS1NKTt2YXIgUz1kLUEsRT1tO2ZvcihvPTE7bzw9YS8yO28rKyl7dmFyIEw9MipNYXRoLlBJKm8vYTt3LnB1c2goW2ssUytBKk1hdGguY29zKEwpLEUrTSpNYXRoLnNpbihMKV0pfWJyZWFrO2Nhc2UiWiI6ZD09PXMmJm09PT11fHwoZD1zLG09dSx3LnB1c2goW2ssZCxtXSkpfWZvcih2YXIgQz0ocnx8e30pLmRvbWFpbixQPWUuX2Z1bGxMYXlvdXQuX3NpemUsST1yJiYicGl4ZWwiPT09ci54c2l6ZW1vZGUsTz1yJiYicGl4ZWwiPT09ci55c2l6ZW1vZGUsej0hMT09PWksRD0wO0Q8dy5sZW5ndGg7RCsrKXtmb3Iobz0wO28rMjw3O28rPTIpe3ZhciBSPXdbRF1bbysxXSxGPXdbRF1bbysyXTt2b2lkIDAhPT1SJiZ2b2lkIDAhPT1GJiYoZD1SLG09RixyJiYoci54YXhpcyYmci54YXhpcy5wMnI/KHomJihSLT1yLnhheGlzLl9vZmZzZXQpLFI9ST9jKHIueGF4aXMsci54YW5jaG9yKStSOmwoci54YXhpcyxSKSk6KHomJihSLT1QLmwpLEM/Uj1DLnhbMF0rUi9QLnc6Ui89UC53KSxyLnlheGlzJiZyLnlheGlzLnAycj8oeiYmKEYtPXIueWF4aXMuX29mZnNldCksRj1PP2Moci55YXhpcyxyLnlhbmNob3IpLUY6bChyLnlheGlzLEYpKTooeiYmKEYtPVAudCksRj1DP0MueVsxXS1GL1AuaDoxLUYvUC5oKSksd1tEXVtvKzFdPVIsd1tEXVtvKzJdPUYpfWhbcF0ucHVzaCh3W0RdLnNsaWNlKCkpfX1yZXR1cm4gaH0sci5wb2ludHNTaGFwZVJlY3RhbmdsZT1mdW5jdGlvbih0KXtpZig1IT09dC5sZW5ndGgpcmV0dXJuITE7Zm9yKHZhciBlPTE7ZTwzO2UrKyl7aWYoIWgodFswXVtlXS10WzFdW2VdLHRbM11bZV0tdFsyXVtlXSkpcmV0dXJuITE7aWYoIWgodFswXVtlXS10WzNdW2VdLHRbMV1bZV0tdFsyXVtlXSkpcmV0dXJuITF9cmV0dXJuISghaCh0WzBdWzFdLHRbMV1bMV0pJiYhaCh0WzBdWzFdLHRbM11bMV0pKSYmISEocCh0WzBdLHRbMV0pKnAodFswXSx0WzNdKSl9LHIucG9pbnRzU2hhcGVFbGxpcHNlPWZ1bmN0aW9uKHQpe3ZhciBlPXQubGVuZ3RoO2lmKGUhPT1hKzEpcmV0dXJuITE7ZT1hO2Zvcih2YXIgcj0wO3I8ZTtyKyspe3ZhciBuPSgyKmUtciklZSxpPShlLzIrbiklZSxvPShlLzIrciklZTtpZighaChwKHRbcl0sdFtvXSkscCh0W25dLHRbaV0pKSlyZXR1cm4hMX1yZXR1cm4hMH0sci5oYW5kbGVFbGxpcHNlPWZ1bmN0aW9uKHQsZSxuKXtpZighdClyZXR1cm5bZSxuXTt2YXIgaT1yLmVsbGlwc2VPdmVyKHt4MDplWzBdLHkwOmVbMV0seDE6blswXSx5MTpuWzFdfSkscz0oaS54MStpLngwKS8yLGw9KGkueTEraS55MCkvMixjPShpLngxLWkueDApLzIsdT0oaS55MS1pLnkwKS8yO2N8fChjPXUvPW8pLHV8fCh1PWMvPW8pO2Zvcih2YXIgZj1bXSxoPTA7aDxhO2grKyl7dmFyIHA9MipoKk1hdGguUEkvYTtmLnB1c2goW3MrYypNYXRoLmNvcyhwKSxsK3UqTWF0aC5zaW4ocCldKX1yZXR1cm4gZn0sci5lbGxpcHNlT3Zlcj1mdW5jdGlvbih0KXt2YXIgZT10LngwLHI9dC55MCxuPXQueDEsaT10LnkxLGE9bi1lLHM9aS1yLGw9KChlLT1hKStuKS8yLGM9KChyLT1zKStpKS8yO3JldHVybnt4MDpsLShhKj1vKSx5MDpjLShzKj1vKSx4MTpsK2EseTE6YytzfX19LHsiLi4vLi4vLi4vcGxvdHMvY2FydGVzaWFuL2hlbHBlcnMiOjgzOSwiLi9jb25zdGFudHMiOjcyNSwicGFyc2Utc3ZnLXBhdGgiOjQ3Mn1dLDcyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9kcmFnZWxlbWVudC9oZWxwZXJzIiksaT1uLmRyYXdNb2RlLGE9bi5vcGVuTW9kZSxvPXQoIi4vY29uc3RhbnRzIikscz1vLmkwMDAsbD1vLmkwOTAsYz1vLmkxODAsdT1vLmkyNzAsZj1vLmNvczQ1LGg9by5zaW40NSxwPXQoIi4uLy4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9oZWxwZXJzIiksZD1wLnAycixtPXAucjJwLGc9dCgiLi4vLi4vLi4vcGxvdHMvY2FydGVzaWFuL2hhbmRsZV9vdXRsaW5lIikuY2xlYXJTZWxlY3Qsdj10KCIuL2hlbHBlcnMiKSx5PXYucmVhZFBhdGhzLHg9di53cml0ZVBhdGhzLGI9di5lbGxpcHNlT3ZlcjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZih0Lmxlbmd0aCl7dmFyIHI9dFswXVswXTtpZihyKXt2YXIgbj1yLmdldEF0dHJpYnV0ZSgiZCIpLG89ZS5nZCxwPW8uX2Z1bGxMYXlvdXQubmV3c2hhcGUsdj1lLnBsb3RpbmZvLF89di54YXhpcyx3PXYueWF4aXMsVD0hIXYuZG9tYWlufHwhdi54YXhpcyxrPSEhdi5kb21haW58fCF2LnlheGlzLEE9ZS5pc0FjdGl2ZVNoYXBlLE09ZS5kcmFnbW9kZSxTPShvLmxheW91dHx8e30pLnNoYXBlc3x8W107aWYoIWkoTSkmJnZvaWQgMCE9PUEpe3ZhciBFPW8uX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg7aWYoRTxTLmxlbmd0aClzd2l0Y2goby5fZnVsbExheW91dC5zaGFwZXNbRV0udHlwZSl7Y2FzZSJyZWN0IjpNPSJkcmF3cmVjdCI7YnJlYWs7Y2FzZSJjaXJjbGUiOk09ImRyYXdjaXJjbGUiO2JyZWFrO2Nhc2UibGluZSI6TT0iZHJhd2xpbmUiO2JyZWFrO2Nhc2UicGF0aCI6dmFyIEw9U1tFXS5wYXRofHwiIjtNPSJaIj09PUxbTC5sZW5ndGgtMV0/ImRyYXdjbG9zZWRwYXRoIjoiZHJhd29wZW5wYXRoIn19dmFyIEMsUD1hKE0pLEk9eShuLG8sdixBKSxPPXtlZGl0YWJsZTohMCx4cmVmOlQ/InBhcGVyIjpfLl9pZCx5cmVmOms/InBhcGVyIjp3Ll9pZCxsYXllcjpwLmxheWVyLG9wYWNpdHk6cC5vcGFjaXR5LGxpbmU6e2NvbG9yOnAubGluZS5jb2xvcix3aWR0aDpwLmxpbmUud2lkdGgsZGFzaDpwLmxpbmUuZGFzaH19O2lmKFB8fChPLmZpbGxjb2xvcj1wLmZpbGxjb2xvcixPLmZpbGxydWxlPXAuZmlsbHJ1bGUpLDE9PT1JLmxlbmd0aCYmKEM9SVswXSksQyYmImRyYXdyZWN0Ij09PU0pTy50eXBlPSJyZWN0IixPLngwPUNbMF1bMV0sTy55MD1DWzBdWzJdLE8ueDE9Q1syXVsxXSxPLnkxPUNbMl1bMl07ZWxzZSBpZihDJiYiZHJhd2xpbmUiPT09TSlPLnR5cGU9ImxpbmUiLE8ueDA9Q1swXVsxXSxPLnkwPUNbMF1bMl0sTy54MT1DWzFdWzFdLE8ueTE9Q1sxXVsyXTtlbHNlIGlmKEMmJiJkcmF3Y2lyY2xlIj09PU0pe08udHlwZT0iY2lyY2xlIjt2YXIgej1DW3NdWzFdLEQ9Q1tsXVsxXSxSPUNbY11bMV0sRj1DW3VdWzFdLEI9Q1tzXVsyXSxOPUNbbF1bMl0saj1DW2NdWzJdLFU9Q1t1XVsyXSxWPXYueGF4aXMmJigiZGF0ZSI9PT12LnhheGlzLnR5cGV8fCJsb2ciPT09di54YXhpcy50eXBlKSxIPXYueWF4aXMmJigiZGF0ZSI9PT12LnlheGlzLnR5cGV8fCJsb2ciPT09di55YXhpcy50eXBlKTtWJiYoej1tKHYueGF4aXMseiksRD1tKHYueGF4aXMsRCksUj1tKHYueGF4aXMsUiksRj1tKHYueGF4aXMsRikpLEgmJihCPW0odi55YXhpcyxCKSxOPW0odi55YXhpcyxOKSxqPW0odi55YXhpcyxqKSxVPW0odi55YXhpcyxVKSk7dmFyIHE9KEQrRikvMixHPShCK2opLzIsWT1iKHt4MDpxLHkwOkcseDE6cSsoRi1EK1IteikvMipmLHkxOkcrKFUtTitqLUIpLzIqaH0pO1YmJihZLngwPWQodi54YXhpcyxZLngwKSxZLngxPWQodi54YXhpcyxZLngxKSksSCYmKFkueTA9ZCh2LnlheGlzLFkueTApLFkueTE9ZCh2LnlheGlzLFkueTEpKSxPLngwPVkueDAsTy55MD1ZLnkwLE8ueDE9WS54MSxPLnkxPVkueTF9ZWxzZSBPLnR5cGU9InBhdGgiLF8mJncmJmZ1bmN0aW9uKHQsZSxyKXt2YXIgbj0iZGF0ZSI9PT1lLnR5cGUsaT0iZGF0ZSI9PT1yLnR5cGU7aWYoIW4mJiFpKXJldHVybiB0O2Zvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKWZvcih2YXIgbz0wO288dFthXS5sZW5ndGg7bysrKWZvcih2YXIgcz0wO3MrMjx0W2FdW29dLmxlbmd0aDtzKz0yKW4mJih0W2FdW29dW3MrMV09dFthXVtvXVtzKzFdLnJlcGxhY2UoIiAiLCJfIikpLGkmJih0W2FdW29dW3MrMl09dFthXVtvXVtzKzJdLnJlcGxhY2UoIiAiLCJfIikpfShJLF8sdyksTy5wYXRoPXgoSSksQz1udWxsO2cobyk7Zm9yKHZhciBXPWUuZWRpdEhlbHBlcnMsWD0oV3x8e30pLm1vZGlmeUl0ZW0sWj1bXSxKPTA7SjxTLmxlbmd0aDtKKyspe3ZhciBLPW8uX2Z1bGxMYXlvdXQuc2hhcGVzW0pdO2lmKFpbSl09Sy5faW5wdXQsdm9pZCAwIT09QSYmSj09PW8uX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXgpe3ZhciBRPU87c3dpdGNoKEsudHlwZSl7Y2FzZSJsaW5lIjpjYXNlInJlY3QiOmNhc2UiY2lyY2xlIjpYKCJ4MCIsUS54MCksWCgieDEiLFEueDEpLFgoInkwIixRLnkwKSxYKCJ5MSIsUS55MSk7YnJlYWs7Y2FzZSJwYXRoIjpYKCJwYXRoIixRLnBhdGgpfX19cmV0dXJuIHZvaWQgMD09PUE/KFoucHVzaChPKSxaKTpXP1cuZ2V0VXBkYXRlT2JqKCk6e319fX19LHsiLi4vLi4vLi4vcGxvdHMvY2FydGVzaWFuL2hhbmRsZV9vdXRsaW5lIjo4MzgsIi4uLy4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9oZWxwZXJzIjo4MzksIi4uLy4uL2RyYWdlbGVtZW50L2hlbHBlcnMiOjY1NywiLi9jb25zdGFudHMiOjcyNSwiLi9oZWxwZXJzIjo3Mjh9XSw3MzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKSxpPXQoIi4uLy4uL2xpYiIpO3IucmFuZ2VUb1NoYXBlUG9zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuImxvZyI9PT10LnR5cGU/dC5yMmQ6ZnVuY3Rpb24odCl7cmV0dXJuIHR9fSxyLnNoYXBlUG9zaXRpb25Ub1JhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiJsb2ciPT09dC50eXBlP3QuZDJyOmZ1bmN0aW9uKHQpe3JldHVybiB0fX0sci5kZWNvZGVEYXRlPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4gZS5yZXBsYWNlJiYoZT1lLnJlcGxhY2UoIl8iLCIgIikpLHQoZSl9fSxyLmVuY29kZURhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiB0KGUpLnJlcGxhY2UoIiAiLCJfIil9fSxyLmV4dHJhY3RQYXRoQ29vcmRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W107cmV0dXJuIHQubWF0Y2gobi5zZWdtZW50UkUpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBhPWVbdC5jaGFyQXQoMCldLmRyYXduO2lmKHZvaWQgMCE9PWEpe3ZhciBvPXQuc3Vic3RyKDEpLm1hdGNoKG4ucGFyYW1SRSk7IW98fG8ubGVuZ3RoPGF8fHIucHVzaChpLmNsZWFuTnVtYmVyKG9bYV0pKX19KSkscn0sci5nZXREYXRhVG9QaXhlbD1mdW5jdGlvbih0LGUsbixpKXt2YXIgYSxvPXQuX2Z1bGxMYXlvdXQuX3NpemU7aWYoZSlpZigiZG9tYWluIj09PWkpYT1mdW5jdGlvbih0KXtyZXR1cm4gZS5fbGVuZ3RoKihuPzEtdDp0KStlLl9vZmZzZXR9O2Vsc2V7dmFyIHM9ci5zaGFwZVBvc2l0aW9uVG9SYW5nZShlKTthPWZ1bmN0aW9uKHQpe3JldHVybiBlLl9vZmZzZXQrZS5yMnAocyh0LCEwKSl9LCJkYXRlIj09PWUudHlwZSYmKGE9ci5kZWNvZGVEYXRlKGEpKX1lbHNlIGE9bj9mdW5jdGlvbih0KXtyZXR1cm4gby50K28uaCooMS10KX06ZnVuY3Rpb24odCl7cmV0dXJuIG8ubCtvLncqdH07cmV0dXJuIGF9LHIuZ2V0UGl4ZWxUb0RhdGE9ZnVuY3Rpb24odCxlLG4saSl7dmFyIGEsbz10Ll9mdWxsTGF5b3V0Ll9zaXplO2lmKGUpaWYoImRvbWFpbiI9PT1pKWE9ZnVuY3Rpb24odCl7dmFyIHI9KHQtZS5fb2Zmc2V0KS9lLl9sZW5ndGg7cmV0dXJuIG4/MS1yOnJ9O2Vsc2V7dmFyIHM9ci5yYW5nZVRvU2hhcGVQb3NpdGlvbihlKTthPWZ1bmN0aW9uKHQpe3JldHVybiBzKGUucDJyKHQtZS5fb2Zmc2V0KSl9fWVsc2UgYT1uP2Z1bmN0aW9uKHQpe3JldHVybiAxLSh0LW8udCkvby5ofTpmdW5jdGlvbih0KXtyZXR1cm4odC1vLmwpL28ud307cmV0dXJuIGF9LHIucm91bmRQb3NpdGlvbkZvclNoYXJwU3Ryb2tlUmVuZGVyaW5nPWZ1bmN0aW9uKHQsZSl7dmFyIHI9MT09PU1hdGgucm91bmQoZSUyKSxuPU1hdGgucm91bmQodCk7cmV0dXJuIHI/bisuNTpufSxyLm1ha2VPcHRpb25zQW5kUGxvdGluZm89ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LnNoYXBlc1tlXXx8e30sbj10Ll9mdWxsTGF5b3V0Ll9wbG90c1tyLnhyZWYrci55cmVmXTtyZXR1cm4hIW4/bi5faGFkUGxvdGluZm89ITA6KG49e30sci54cmVmJiYicGFwZXIiIT09ci54cmVmJiYobi54YXhpcz10Ll9mdWxsTGF5b3V0W3IueHJlZisiYXhpcyJdKSxyLnlyZWYmJiJwYXBlciIhPT1yLnlyZWYmJihuLnlheGlzPXQuX2Z1bGxMYXlvdXRbci55cmVmKyJheGlzIl0pKSxuLnhzaXplbW9kZT1yLnhzaXplbW9kZSxuLnlzaXplbW9kZT1yLnlzaXplbW9kZSxuLnhhbmNob3I9ci54YW5jaG9yLG4ueWFuY2hvcj1yLnlhbmNob3Ise29wdGlvbnM6cixwbG90aW5mbzpufX19LHsiLi4vLi4vbGliIjo3NzYsIi4vY29uc3RhbnRzIjo3MjF9XSw3MzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9kcmF3Iik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6InNoYXBlcyIsbGF5b3V0QXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksc3VwcGx5RHJhd05ld1NoYXBlRGVmYXVsdHM6dCgiLi9kcmF3X25ld3NoYXBlL2RlZmF1bHRzIiksaW5jbHVkZUJhc2VQbG90OnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiKSgic2hhcGVzIiksY2FsY0F1dG9yYW5nZTp0KCIuL2NhbGNfYXV0b3JhbmdlIiksZHJhdzpuLmRyYXcsZHJhd09uZTpuLmRyYXdPbmV9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9pbmNsdWRlX2NvbXBvbmVudHMiOjg0MCwiLi9hdHRyaWJ1dGVzIjo3MTksIi4vY2FsY19hdXRvcmFuZ2UiOjcyMCwiLi9kZWZhdWx0cyI6NzIyLCIuL2RyYXciOjcyMywiLi9kcmF3X25ld3NoYXBlL2RlZmF1bHRzIjo3MjZ9XSw3MzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9wYWRfYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZERlZXBBbGwsbz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwscz10KCIuLi8uLi9wbG90cy9hbmltYXRpb25fYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5LGM9dCgiLi9jb25zdGFudHMiKSx1PWwoInN0ZXAiLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlc3R5bGUiLCJyZWxheW91dCIsImFuaW1hdGUiLCJ1cGRhdGUiLCJza2lwIl0sZGZsdDoicmVzdHlsZSJ9LGFyZ3M6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGZyZWVMZW5ndGg6ITAsaXRlbXM6W3t2YWxUeXBlOiJhbnkifSx7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9XX0sbGFiZWw6e3ZhbFR5cGU6InN0cmluZyJ9LHZhbHVlOnt2YWxUeXBlOiJzdHJpbmcifSxleGVjdXRlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfX0pO2UuZXhwb3J0cz1vKGwoInNsaWRlciIse3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGFjdGl2ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjB9LHN0ZXBzOnUsbGVubW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZnJhY3Rpb24iLCJwaXhlbHMiXSxkZmx0OiJmcmFjdGlvbiJ9LGxlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGRmbHQ6MH0scGFkOmEoaSh7ZWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSx7fSx7dDp7ZGZsdDoyMH19KSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwibGVmdCIsImNlbnRlciIsInJpZ2h0Il0sZGZsdDoibGVmdCJ9LHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGRmbHQ6MH0seWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGRmbHQ6InRvcCJ9LHRyYW5zaXRpb246e2R1cmF0aW9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MTUwfSxlYXNpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpzLnRyYW5zaXRpb24uZWFzaW5nLnZhbHVlcyxkZmx0OiJjdWJpYy1pbi1vdXQifX0sY3VycmVudHZhbHVlOnt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSx4YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxkZmx0OiJsZWZ0In0sb2Zmc2V0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTB9LHByZWZpeDp7dmFsVHlwZToic3RyaW5nIn0sc3VmZml4Ont2YWxUeXBlOiJzdHJpbmcifSxmb250Om4oe30pfSxmb250Om4oe30pLGFjdGl2ZWJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmMuZ3JpcEJnQWN0aXZlQ29sb3J9LGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmMucmFpbEJnQ29sb3J9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpjLnJhaWxCb3JkZXJDb2xvcn0sYm9yZGVyd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDpjLnJhaWxCb3JkZXJXaWR0aH0sdGlja2xlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OmMudGlja0xlbmd0aH0sdGlja2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpjLnRpY2tDb2xvcn0sdGlja3dpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sbWlub3J0aWNrbGVuOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6Yy5taW5vclRpY2tMZW5ndGh9fSksImFycmF5ZHJhdyIsImZyb20tcm9vdCIpfSx7Ii4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uLy4uL3Bsb3RzL2FuaW1hdGlvbl9hdHRyaWJ1dGVzIjo4MjEsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuLi8uLi9wbG90cy9wYWRfYXR0cmlidXRlcyI6ODg5LCIuL2NvbnN0YW50cyI6NzMzfV0sNzMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bmFtZToic2xpZGVycyIsY29udGFpbmVyQ2xhc3NOYW1lOiJzbGlkZXItY29udGFpbmVyIixncm91cENsYXNzTmFtZToic2xpZGVyLWdyb3VwIixpbnB1dEFyZWFDbGFzczoic2xpZGVyLWlucHV0LWFyZWEiLHJhaWxSZWN0Q2xhc3M6InNsaWRlci1yYWlsLXJlY3QiLHJhaWxUb3VjaFJlY3RDbGFzczoic2xpZGVyLXJhaWwtdG91Y2gtcmVjdCIsZ3JpcFJlY3RDbGFzczoic2xpZGVyLWdyaXAtcmVjdCIsdGlja1JlY3RDbGFzczoic2xpZGVyLXRpY2stcmVjdCIsaW5wdXRQcm94eUNsYXNzOiJzbGlkZXItaW5wdXQtcHJveHkiLGxhYmVsc0NsYXNzOiJzbGlkZXItbGFiZWxzIixsYWJlbEdyb3VwQ2xhc3M6InNsaWRlci1sYWJlbC1ncm91cCIsbGFiZWxDbGFzczoic2xpZGVyLWxhYmVsIixjdXJyZW50VmFsdWVDbGFzczoic2xpZGVyLWN1cnJlbnQtdmFsdWUiLHJhaWxIZWlnaHQ6NSxtZW51SW5kZXhBdHRyTmFtZToic2xpZGVyLWFjdGl2ZS1pbmRleCIsYXV0b01hcmdpbklkUm9vdDoic2xpZGVyLSIsbWluV2lkdGg6MzAsbWluSGVpZ2h0OjMwLHRleHRQYWRYOjQwLGFycm93T2Zmc2V0WDo0LHJhaWxSYWRpdXM6MixyYWlsV2lkdGg6NSxyYWlsQm9yZGVyOjQscmFpbEJvcmRlcldpZHRoOjEscmFpbEJvcmRlckNvbG9yOiIjYmVjOGQ5IixyYWlsQmdDb2xvcjoiI2Y4ZmFmYyIscmFpbEluc2V0Ojgsc3RlcEluc2V0OjEwLGdyaXBSYWRpdXM6MTAsZ3JpcFdpZHRoOjIwLGdyaXBIZWlnaHQ6MjAsZ3JpcEJvcmRlcjoyMCxncmlwQm9yZGVyV2lkdGg6MSxncmlwQm9yZGVyQ29sb3I6IiNiZWM4ZDkiLGdyaXBCZ0NvbG9yOiIjZjZmOGZhIixncmlwQmdBY3RpdmVDb2xvcjoiI2RiZGRlMCIsbGFiZWxQYWRkaW5nOjgsbGFiZWxPZmZzZXQ6MCx0aWNrV2lkdGg6MSx0aWNrQ29sb3I6IiMzMzMiLHRpY2tPZmZzZXQ6MjUsdGlja0xlbmd0aDo3LG1pbm9yVGlja09mZnNldDoyNSxtaW5vclRpY2tDb2xvcjoiIzMzMyIsbWlub3JUaWNrTGVuZ3RoOjQsY3VycmVudFZhbHVlUGFkZGluZzo4LGN1cnJlbnRWYWx1ZUluc2V0OjB9fSx7fV0sNzM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksYT10KCIuL2F0dHJpYnV0ZXMiKSxvPXQoIi4vY29uc3RhbnRzIikubmFtZSxzPWEuc3RlcHM7ZnVuY3Rpb24gbCh0LGUscil7ZnVuY3Rpb24gbyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYSxyLGkpfWZvcih2YXIgcz1pKHQsZSx7bmFtZToic3RlcHMiLGhhbmRsZUl0ZW1EZWZhdWx0czpjfSksbD0wLHU9MDt1PHMubGVuZ3RoO3UrKylzW3VdLnZpc2libGUmJmwrKztpZihsPDI/ZS52aXNpYmxlPSExOm8oInZpc2libGUiKSl7ZS5fc3RlcENvdW50PWw7dmFyIGY9ZS5fdmlzaWJsZVN0ZXBzPW4uZmlsdGVyVmlzaWJsZShzKTsoc1tvKCJhY3RpdmUiKV18fHt9KS52aXNpYmxlfHwoZS5hY3RpdmU9ZlswXS5faW5kZXgpLG8oIngiKSxvKCJ5Iiksbi5ub25lT3JBbGwodCxlLFsieCIsInkiXSksbygieGFuY2hvciIpLG8oInlhbmNob3IiKSxvKCJsZW4iKSxvKCJsZW5tb2RlIiksbygicGFkLnQiKSxvKCJwYWQuciIpLG8oInBhZC5iIiksbygicGFkLmwiKSxuLmNvZXJjZUZvbnQobywiZm9udCIsci5mb250KSxvKCJjdXJyZW50dmFsdWUudmlzaWJsZSIpJiYobygiY3VycmVudHZhbHVlLnhhbmNob3IiKSxvKCJjdXJyZW50dmFsdWUucHJlZml4IiksbygiY3VycmVudHZhbHVlLnN1ZmZpeCIpLG8oImN1cnJlbnR2YWx1ZS5vZmZzZXQiKSxuLmNvZXJjZUZvbnQobywiY3VycmVudHZhbHVlLmZvbnQiLGUuZm9udCkpLG8oInRyYW5zaXRpb24uZHVyYXRpb24iKSxvKCJ0cmFuc2l0aW9uLmVhc2luZyIpLG8oImJnY29sb3IiKSxvKCJhY3RpdmViZ2NvbG9yIiksbygiYm9yZGVyY29sb3IiKSxvKCJib3JkZXJ3aWR0aCIpLG8oInRpY2tsZW4iKSxvKCJ0aWNrd2lkdGgiKSxvKCJ0aWNrY29sb3IiKSxvKCJtaW5vcnRpY2tsZW4iKX19ZnVuY3Rpb24gYyh0LGUpe2Z1bmN0aW9uIHIocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixpKX1pZigic2tpcCI9PT10Lm1ldGhvZHx8QXJyYXkuaXNBcnJheSh0LmFyZ3MpP3IoInZpc2libGUiKTplLnZpc2libGU9ITEpe3IoIm1ldGhvZCIpLHIoImFyZ3MiKTt2YXIgaT1yKCJsYWJlbCIsInN0ZXAtIitlLl9pbmRleCk7cigidmFsdWUiLGkpLHIoImV4ZWN1dGUiKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aSh0LGUse25hbWU6byxoYW5kbGVJdGVtRGVmYXVsdHM6bH0pfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo4MjIsIi4vYXR0cmlidXRlcyI6NzMyLCIuL2NvbnN0YW50cyI6NzMzfV0sNzM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIiksYT10KCIuLi9jb2xvciIpLG89dCgiLi4vZHJhd2luZyIpLHM9dCgiLi4vLi4vbGliIiksbD1zLnN0clRyYW5zbGF0ZSxjPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHU9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yLGY9dCgiLi9jb25zdGFudHMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKSxwPWguTElORV9TUEFDSU5HLGQ9aC5GUk9NX1RMLG09aC5GUk9NX0JSO2Z1bmN0aW9uIGcodCl7cmV0dXJuIGYuYXV0b01hcmdpbklkUm9vdCt0Ll9pbmRleH1mdW5jdGlvbiB2KHQpe3JldHVybiB0Ll9pbmRleH1mdW5jdGlvbiB5KHQsZSl7dmFyIHI9by50ZXN0ZXIuc2VsZWN0QWxsKCJnLiIrZi5sYWJlbEdyb3VwQ2xhc3MpLmRhdGEoZS5fdmlzaWJsZVN0ZXBzKTtyLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChmLmxhYmVsR3JvdXBDbGFzcywhMCk7dmFyIGE9MCxsPTA7ci5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj1fKG4uc2VsZWN0KHRoaXMpLHtzdGVwOnR9LGUpLm5vZGUoKTtpZihyKXt2YXIgaT1vLmJCb3gocik7bD1NYXRoLm1heChsLGkuaGVpZ2h0KSxhPU1hdGgubWF4KGEsaS53aWR0aCl9fSkpLHIucmVtb3ZlKCk7dmFyIHU9ZS5fZGltcz17fTt1LmlucHV0QXJlYVdpZHRoPU1hdGgubWF4KGYucmFpbFdpZHRoLGYuZ3JpcEhlaWdodCk7dmFyIGg9dC5fZnVsbExheW91dC5fc2l6ZTt1Lmx4PWgubCtoLncqZS54LHUubHk9aC50K2guaCooMS1lLnkpLCJmcmFjdGlvbiI9PT1lLmxlbm1vZGU/dS5vdXRlckxlbmd0aD1NYXRoLnJvdW5kKGgudyplLmxlbik6dS5vdXRlckxlbmd0aD1lLmxlbix1LmlucHV0QXJlYVN0YXJ0PTAsdS5pbnB1dEFyZWFMZW5ndGg9TWF0aC5yb3VuZCh1Lm91dGVyTGVuZ3RoLWUucGFkLmwtZS5wYWQucik7dmFyIHA9KHUuaW5wdXRBcmVhTGVuZ3RoLTIqZi5zdGVwSW5zZXQpLyhlLl9zdGVwQ291bnQtMSksdj1hK2YubGFiZWxQYWRkaW5nO2lmKHUubGFiZWxTdHJpZGU9TWF0aC5tYXgoMSxNYXRoLmNlaWwodi9wKSksdS5sYWJlbEhlaWdodD1sLHUuY3VycmVudFZhbHVlTWF4V2lkdGg9MCx1LmN1cnJlbnRWYWx1ZUhlaWdodD0wLHUuY3VycmVudFZhbHVlVG90YWxIZWlnaHQ9MCx1LmN1cnJlbnRWYWx1ZU1heExpbmVzPTEsZS5jdXJyZW50dmFsdWUudmlzaWJsZSl7dmFyIHk9by50ZXN0ZXIuYXBwZW5kKCJnIik7ci5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj14KHksZSx0LmxhYmVsKSxuPXIubm9kZSgpJiZvLmJCb3goci5ub2RlKCkpfHx7d2lkdGg6MCxoZWlnaHQ6MH0saT1jLmxpbmVDb3VudChyKTt1LmN1cnJlbnRWYWx1ZU1heFdpZHRoPU1hdGgubWF4KHUuY3VycmVudFZhbHVlTWF4V2lkdGgsTWF0aC5jZWlsKG4ud2lkdGgpKSx1LmN1cnJlbnRWYWx1ZUhlaWdodD1NYXRoLm1heCh1LmN1cnJlbnRWYWx1ZUhlaWdodCxNYXRoLmNlaWwobi5oZWlnaHQpKSx1LmN1cnJlbnRWYWx1ZU1heExpbmVzPU1hdGgubWF4KHUuY3VycmVudFZhbHVlTWF4TGluZXMsaSl9KSksdS5jdXJyZW50VmFsdWVUb3RhbEhlaWdodD11LmN1cnJlbnRWYWx1ZUhlaWdodCtlLmN1cnJlbnR2YWx1ZS5vZmZzZXQseS5yZW1vdmUoKX11LmhlaWdodD11LmN1cnJlbnRWYWx1ZVRvdGFsSGVpZ2h0K2YudGlja09mZnNldCtlLnRpY2tsZW4rZi5sYWJlbE9mZnNldCt1LmxhYmVsSGVpZ2h0K2UucGFkLnQrZS5wYWQuYjt2YXIgYj0ibGVmdCI7cy5pc1JpZ2h0QW5jaG9yKGUpJiYodS5seC09dS5vdXRlckxlbmd0aCxiPSJyaWdodCIpLHMuaXNDZW50ZXJBbmNob3IoZSkmJih1Lmx4LT11Lm91dGVyTGVuZ3RoLzIsYj0iY2VudGVyIik7dmFyIHc9InRvcCI7cy5pc0JvdHRvbUFuY2hvcihlKSYmKHUubHktPXUuaGVpZ2h0LHc9ImJvdHRvbSIpLHMuaXNNaWRkbGVBbmNob3IoZSkmJih1Lmx5LT11LmhlaWdodC8yLHc9Im1pZGRsZSIpLHUub3V0ZXJMZW5ndGg9TWF0aC5jZWlsKHUub3V0ZXJMZW5ndGgpLHUuaGVpZ2h0PU1hdGguY2VpbCh1LmhlaWdodCksdS5seD1NYXRoLnJvdW5kKHUubHgpLHUubHk9TWF0aC5yb3VuZCh1Lmx5KTt2YXIgVD17eTplLnksYjp1LmhlaWdodCptW3ddLHQ6dS5oZWlnaHQqZFt3XX07ImZyYWN0aW9uIj09PWUubGVubW9kZT8oVC5sPTAsVC54bD1lLngtZS5sZW4qZFtiXSxULnI9MCxULnhyPWUueCtlLmxlbiptW2JdKTooVC54PWUueCxULmw9dS5vdXRlckxlbmd0aCpkW2JdLFQucj11Lm91dGVyTGVuZ3RoKm1bYl0pLGkuYXV0b01hcmdpbih0LGcoZSksVCl9ZnVuY3Rpb24geCh0LGUscil7aWYoZS5jdXJyZW50dmFsdWUudmlzaWJsZSl7dmFyIG4saSxhPWUuX2RpbXM7c3dpdGNoKGUuY3VycmVudHZhbHVlLnhhbmNob3Ipe2Nhc2UicmlnaHQiOm49YS5pbnB1dEFyZWFMZW5ndGgtZi5jdXJyZW50VmFsdWVJbnNldC1hLmN1cnJlbnRWYWx1ZU1heFdpZHRoLGk9ImxlZnQiO2JyZWFrO2Nhc2UiY2VudGVyIjpuPS41KmEuaW5wdXRBcmVhTGVuZ3RoLGk9Im1pZGRsZSI7YnJlYWs7ZGVmYXVsdDpuPWYuY3VycmVudFZhbHVlSW5zZXQsaT0ibGVmdCJ9dmFyIGw9cy5lbnN1cmVTaW5nbGUodCwidGV4dCIsZi5sYWJlbENsYXNzLChmdW5jdGlvbih0KXt0LmF0dHIoeyJ0ZXh0LWFuY2hvciI6aSwiZGF0YS1ub3RleCI6MX0pfSkpLHU9ZS5jdXJyZW50dmFsdWUucHJlZml4P2UuY3VycmVudHZhbHVlLnByZWZpeDoiIjtpZigic3RyaW5nIj09dHlwZW9mIHIpdSs9cjtlbHNle3ZhciBoPWUuc3RlcHNbZS5hY3RpdmVdLmxhYmVsLGQ9ZS5fZ2QuX2Z1bGxMYXlvdXQuX21ldGE7ZCYmKGg9cy50ZW1wbGF0ZVN0cmluZyhoLGQpKSx1Kz1ofWUuY3VycmVudHZhbHVlLnN1ZmZpeCYmKHUrPWUuY3VycmVudHZhbHVlLnN1ZmZpeCksbC5jYWxsKG8uZm9udCxlLmN1cnJlbnR2YWx1ZS5mb250KS50ZXh0KHUpLmNhbGwoYy5jb252ZXJ0VG9Uc3BhbnMsZS5fZ2QpO3ZhciBtPWMubGluZUNvdW50KGwpLGc9KGEuY3VycmVudFZhbHVlTWF4TGluZXMrMS1tKSplLmN1cnJlbnR2YWx1ZS5mb250LnNpemUqcDtyZXR1cm4gYy5wb3NpdGlvblRleHQobCxuLGcpLGx9fWZ1bmN0aW9uIGIodCxlLHIpe3MuZW5zdXJlU2luZ2xlKHQsInJlY3QiLGYuZ3JpcFJlY3RDbGFzcywoZnVuY3Rpb24obil7bi5jYWxsKEEsZSx0LHIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSkpLmF0dHIoe3dpZHRoOmYuZ3JpcFdpZHRoLGhlaWdodDpmLmdyaXBIZWlnaHQscng6Zi5ncmlwUmFkaXVzLHJ5OmYuZ3JpcFJhZGl1c30pLmNhbGwoYS5zdHJva2Usci5ib3JkZXJjb2xvcikuY2FsbChhLmZpbGwsci5iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixyLmJvcmRlcndpZHRoKyJweCIpfWZ1bmN0aW9uIF8odCxlLHIpe3ZhciBuPXMuZW5zdXJlU2luZ2xlKHQsInRleHQiLGYubGFiZWxDbGFzcywoZnVuY3Rpb24odCl7dC5hdHRyKHsidGV4dC1hbmNob3IiOiJtaWRkbGUiLCJkYXRhLW5vdGV4IjoxfSl9KSksaT1lLnN0ZXAubGFiZWwsYT1yLl9nZC5fZnVsbExheW91dC5fbWV0YTtyZXR1cm4gYSYmKGk9cy50ZW1wbGF0ZVN0cmluZyhpLGEpKSxuLmNhbGwoby5mb250LHIuZm9udCkudGV4dChpKS5jYWxsKGMuY29udmVydFRvVHNwYW5zLHIuX2dkKSxufWZ1bmN0aW9uIHcodCxlKXt2YXIgcj1zLmVuc3VyZVNpbmdsZSh0LCJnIixmLmxhYmVsc0NsYXNzKSxpPWUuX2RpbXMsYT1yLnNlbGVjdEFsbCgiZy4iK2YubGFiZWxHcm91cENsYXNzKS5kYXRhKGkubGFiZWxTdGVwcyk7YS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZi5sYWJlbEdyb3VwQ2xhc3MsITApLGEuZXhpdCgpLnJlbW92ZSgpLGEuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyk7ci5jYWxsKF8sdCxlKSxvLnNldFRyYW5zbGF0ZShyLEUoZSx0LmZyYWN0aW9uKSxmLnRpY2tPZmZzZXQrZS50aWNrbGVuK2UuZm9udC5zaXplKnArZi5sYWJlbE9mZnNldCtpLmN1cnJlbnRWYWx1ZVRvdGFsSGVpZ2h0KX0pKX1mdW5jdGlvbiBUKHQsZSxyLG4saSl7dmFyIGE9TWF0aC5yb3VuZChuKihyLl9zdGVwQ291bnQtMSkpLG89ci5fdmlzaWJsZVN0ZXBzW2FdLl9pbmRleDtvIT09ci5hY3RpdmUmJmsodCxlLHIsbywhMCxpKX1mdW5jdGlvbiBrKHQsZSxyLG4sYSxvKXt2YXIgcz1yLmFjdGl2ZTtyLmFjdGl2ZT1uLHUodC5sYXlvdXQsZi5uYW1lLHIpLmFwcGx5VXBkYXRlKCJhY3RpdmUiLG4pO3ZhciBsPXIuc3RlcHNbci5hY3RpdmVdO2UuY2FsbChTLHIsbyksZS5jYWxsKHgsciksdC5lbWl0KCJwbG90bHlfc2xpZGVyY2hhbmdlIix7c2xpZGVyOnIsc3RlcDpyLnN0ZXBzW3IuYWN0aXZlXSxpbnRlcmFjdGlvbjphLHByZXZpb3VzQWN0aXZlOnN9KSxsJiZsLm1ldGhvZCYmYSYmKGUuX25leHRNZXRob2Q/KGUuX25leHRNZXRob2Quc3RlcD1sLGUuX25leHRNZXRob2QuZG9DYWxsYmFjaz1hLGUuX25leHRNZXRob2QuZG9UcmFuc2l0aW9uPW8pOihlLl9uZXh0TWV0aG9kPXtzdGVwOmwsZG9DYWxsYmFjazphLGRvVHJhbnNpdGlvbjpvfSxlLl9uZXh0TWV0aG9kUmFmPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7dmFyIHI9ZS5fbmV4dE1ldGhvZC5zdGVwO3IubWV0aG9kJiYoci5leGVjdXRlJiZpLmV4ZWN1dGVBUElDb21tYW5kKHQsci5tZXRob2Qsci5hcmdzKSxlLl9uZXh0TWV0aG9kPW51bGwsZS5fbmV4dE1ldGhvZFJhZj1udWxsKX0pKSkpfWZ1bmN0aW9uIEEodCxlLHIpe3ZhciBpPXIubm9kZSgpLG89bi5zZWxlY3QoZSk7ZnVuY3Rpb24gcygpe3JldHVybiByLmRhdGEoKVswXX1mdW5jdGlvbiBsKCl7dmFyIHQ9cygpO2UuZW1pdCgicGxvdGx5X3NsaWRlcnN0YXJ0Iix7c2xpZGVyOnR9KTt2YXIgbD1yLnNlbGVjdCgiLiIrZi5ncmlwUmVjdENsYXNzKTtuLmV2ZW50LnN0b3BQcm9wYWdhdGlvbigpLG4uZXZlbnQucHJldmVudERlZmF1bHQoKSxsLmNhbGwoYS5maWxsLHQuYWN0aXZlYmdjb2xvcik7dmFyIGM9TCh0LG4ubW91c2UoaSlbMF0pO2Z1bmN0aW9uIHUoKXt2YXIgdD1zKCksYT1MKHQsbi5tb3VzZShpKVswXSk7VChlLHIsdCxhLCExKX1mdW5jdGlvbiBoKCl7dmFyIHQ9cygpO3QuX2RyYWdnaW5nPSExLGwuY2FsbChhLmZpbGwsdC5iZ2NvbG9yKSxvLm9uKCJtb3VzZXVwIixudWxsKSxvLm9uKCJtb3VzZW1vdmUiLG51bGwpLG8ub24oInRvdWNoZW5kIixudWxsKSxvLm9uKCJ0b3VjaG1vdmUiLG51bGwpLGUuZW1pdCgicGxvdGx5X3NsaWRlcmVuZCIse3NsaWRlcjp0LHN0ZXA6dC5zdGVwc1t0LmFjdGl2ZV19KX1UKGUscix0LGMsITApLHQuX2RyYWdnaW5nPSEwLG8ub24oIm1vdXNlbW92ZSIsdSksby5vbigidG91Y2htb3ZlIix1KSxvLm9uKCJtb3VzZXVwIixoKSxvLm9uKCJ0b3VjaGVuZCIsaCl9dC5vbigibW91c2Vkb3duIixsKSx0Lm9uKCJ0b3VjaHN0YXJ0IixsKX1mdW5jdGlvbiBNKHQsZSl7dmFyIHI9dC5zZWxlY3RBbGwoInJlY3QuIitmLnRpY2tSZWN0Q2xhc3MpLmRhdGEoZS5fdmlzaWJsZVN0ZXBzKSxpPWUuX2RpbXM7ci5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmNsYXNzZWQoZi50aWNrUmVjdENsYXNzLCEwKSxyLmV4aXQoKS5yZW1vdmUoKSxyLmF0dHIoe3dpZHRoOmUudGlja3dpZHRoKyJweCIsInNoYXBlLXJlbmRlcmluZyI6ImNyaXNwRWRnZXMifSksci5lYWNoKChmdW5jdGlvbih0LHIpe3ZhciBzPXIlaS5sYWJlbFN0cmlkZT09MCxsPW4uc2VsZWN0KHRoaXMpO2wuYXR0cih7aGVpZ2h0OnM/ZS50aWNrbGVuOmUubWlub3J0aWNrbGVufSkuY2FsbChhLmZpbGwsZS50aWNrY29sb3IpLG8uc2V0VHJhbnNsYXRlKGwsRShlLHIvKGUuX3N0ZXBDb3VudC0xKSktLjUqZS50aWNrd2lkdGgsKHM/Zi50aWNrT2Zmc2V0OmYubWlub3JUaWNrT2Zmc2V0KStpLmN1cnJlbnRWYWx1ZVRvdGFsSGVpZ2h0KX0pKX1mdW5jdGlvbiBTKHQsZSxyKXtmb3IodmFyIG49dC5zZWxlY3QoInJlY3QuIitmLmdyaXBSZWN0Q2xhc3MpLGk9MCxhPTA7YTxlLl9zdGVwQ291bnQ7YSsrKWlmKGUuX3Zpc2libGVTdGVwc1thXS5faW5kZXg9PT1lLmFjdGl2ZSl7aT1hO2JyZWFrfXZhciBvPUUoZSxpLyhlLl9zdGVwQ291bnQtMSkpO2lmKCFlLl9pbnZva2luZ0NvbW1hbmQpe3ZhciBzPW47ciYmZS50cmFuc2l0aW9uLmR1cmF0aW9uPjAmJihzPXMudHJhbnNpdGlvbigpLmR1cmF0aW9uKGUudHJhbnNpdGlvbi5kdXJhdGlvbikuZWFzZShlLnRyYW5zaXRpb24uZWFzaW5nKSkscy5hdHRyKCJ0cmFuc2Zvcm0iLGwoby0uNSpmLmdyaXBXaWR0aCxlLl9kaW1zLmN1cnJlbnRWYWx1ZVRvdGFsSGVpZ2h0KSl9fWZ1bmN0aW9uIEUodCxlKXt2YXIgcj10Ll9kaW1zO3JldHVybiByLmlucHV0QXJlYVN0YXJ0K2Yuc3RlcEluc2V0KyhyLmlucHV0QXJlYUxlbmd0aC0yKmYuc3RlcEluc2V0KSpNYXRoLm1pbigxLE1hdGgubWF4KDAsZSkpfWZ1bmN0aW9uIEwodCxlKXt2YXIgcj10Ll9kaW1zO3JldHVybiBNYXRoLm1pbigxLE1hdGgubWF4KDAsKGUtZi5zdGVwSW5zZXQtci5pbnB1dEFyZWFTdGFydCkvKHIuaW5wdXRBcmVhTGVuZ3RoLTIqZi5zdGVwSW5zZXQtMipyLmlucHV0QXJlYVN0YXJ0KSkpfWZ1bmN0aW9uIEModCxlLHIpe3ZhciBuPXIuX2RpbXMsaT1zLmVuc3VyZVNpbmdsZSh0LCJyZWN0IixmLnJhaWxUb3VjaFJlY3RDbGFzcywoZnVuY3Rpb24obil7bi5jYWxsKEEsZSx0LHIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSkpO2kuYXR0cih7d2lkdGg6bi5pbnB1dEFyZWFMZW5ndGgsaGVpZ2h0Ok1hdGgubWF4KG4uaW5wdXRBcmVhV2lkdGgsZi50aWNrT2Zmc2V0K3IudGlja2xlbituLmxhYmVsSGVpZ2h0KX0pLmNhbGwoYS5maWxsLHIuYmdjb2xvcikuYXR0cigib3BhY2l0eSIsMCksby5zZXRUcmFuc2xhdGUoaSwwLG4uY3VycmVudFZhbHVlVG90YWxIZWlnaHQpfWZ1bmN0aW9uIFAodCxlKXt2YXIgcj1lLl9kaW1zLG49ci5pbnB1dEFyZWFMZW5ndGgtMipmLnJhaWxJbnNldCxpPXMuZW5zdXJlU2luZ2xlKHQsInJlY3QiLGYucmFpbFJlY3RDbGFzcyk7aS5hdHRyKHt3aWR0aDpuLGhlaWdodDpmLnJhaWxXaWR0aCxyeDpmLnJhaWxSYWRpdXMscnk6Zi5yYWlsUmFkaXVzLCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pLmNhbGwoYS5zdHJva2UsZS5ib3JkZXJjb2xvcikuY2FsbChhLmZpbGwsZS5iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLmJvcmRlcndpZHRoKyJweCIpLG8uc2V0VHJhbnNsYXRlKGksZi5yYWlsSW5zZXQsLjUqKHIuaW5wdXRBcmVhV2lkdGgtZi5yYWlsV2lkdGgpK3IuY3VycmVudFZhbHVlVG90YWxIZWlnaHQpfWUuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dFtmLm5hbWVdLG49W10saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldO2EudmlzaWJsZSYmKGEuX2dkPWUsbi5wdXNoKGEpKX1yZXR1cm4gbn0oZSx0KSxhPWUuX2luZm9sYXllci5zZWxlY3RBbGwoImcuIitmLmNvbnRhaW5lckNsYXNzTmFtZSkuZGF0YShyLmxlbmd0aD4wP1swXTpbXSk7ZnVuY3Rpb24gcyhlKXtlLl9jb21tYW5kT2JzZXJ2ZXImJihlLl9jb21tYW5kT2JzZXJ2ZXIucmVtb3ZlKCksZGVsZXRlIGUuX2NvbW1hbmRPYnNlcnZlciksaS5hdXRvTWFyZ2luKHQsZyhlKSl9aWYoYS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZi5jb250YWluZXJDbGFzc05hbWUsITApLnN0eWxlKCJjdXJzb3IiLCJldy1yZXNpemUiKSxhLmV4aXQoKS5lYWNoKChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgiZy4iK2YuZ3JvdXBDbGFzc05hbWUpLmVhY2gocyl9KSkucmVtb3ZlKCksMCE9PXIubGVuZ3RoKXt2YXIgbD1hLnNlbGVjdEFsbCgiZy4iK2YuZ3JvdXBDbGFzc05hbWUpLmRhdGEocix2KTtsLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChmLmdyb3VwQ2xhc3NOYW1lLCEwKSxsLmV4aXQoKS5lYWNoKHMpLnJlbW92ZSgpO2Zvcih2YXIgYz0wO2M8ci5sZW5ndGg7YysrKXt2YXIgdT1yW2NdO3kodCx1KX1sLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpOyFmdW5jdGlvbih0KXt2YXIgZT10Ll9kaW1zO2UubGFiZWxTdGVwcz1bXTtmb3IodmFyIHI9dC5fc3RlcENvdW50LG49MDtuPHI7bis9ZS5sYWJlbFN0cmlkZSllLmxhYmVsU3RlcHMucHVzaCh7ZnJhY3Rpb246bi8oci0xKSxzdGVwOnQuX3Zpc2libGVTdGVwc1tuXX0pfShlKSxpLm1hbmFnZUNvbW1hbmRPYnNlcnZlcih0LGUsZS5fdmlzaWJsZVN0ZXBzLChmdW5jdGlvbihlKXt2YXIgbj1yLmRhdGEoKVswXTtuLmFjdGl2ZSE9PWUuaW5kZXgmJihuLl9kcmFnZ2luZ3x8ayh0LHIsbixlLmluZGV4LCExLCEwKSl9KSksZnVuY3Rpb24odCxlLHIpeyhyLnN0ZXBzW3IuYWN0aXZlXXx8e30pLnZpc2libGV8fChyLmFjdGl2ZT1yLl92aXNpYmxlU3RlcHNbMF0uX2luZGV4KTtlLmNhbGwoeCxyKS5jYWxsKFAscikuY2FsbCh3LHIpLmNhbGwoTSxyKS5jYWxsKEMsdCxyKS5jYWxsKGIsdCxyKTt2YXIgbj1yLl9kaW1zO28uc2V0VHJhbnNsYXRlKGUsbi5seCtyLnBhZC5sLG4ubHkrci5wYWQudCksZS5jYWxsKFMsciwhMSksZS5jYWxsKHgscil9KHQsbi5zZWxlY3QodGhpcyksZSl9KSl9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo3NDQsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9wbG90cy9wbG90cyI6ODkwLCIuLi9jb2xvciI6NjM5LCIuLi9kcmF3aW5nIjo2NjEsIi4vY29uc3RhbnRzIjo3MzMsIkBwbG90bHkvZDMiOjU4fV0sNzM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJjb21wb25lbnQiLG5hbWU6bi5uYW1lLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGRyYXc6dCgiLi9kcmF3Iil9fSx7Ii4vYXR0cmlidXRlcyI6NzMyLCIuL2NvbnN0YW50cyI6NzMzLCIuL2RlZmF1bHRzIjo3MzQsIi4vZHJhdyI6NzM1fV0sNzM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLG89dCgiLi4vLi4vcmVnaXN0cnkiKSxzPXQoIi4uLy4uL2xpYiIpLGw9cy5zdHJUcmFuc2xhdGUsYz10KCIuLi9kcmF3aW5nIiksdT10KCIuLi9jb2xvciIpLGY9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksaD10KCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIikscD10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuT1BQT1NJVEVfU0lERSxkPS8gW1hZXVswLTldKiAvO2UuZXhwb3J0cz17ZHJhdzpmdW5jdGlvbih0LGUscil7dmFyIG0sZz1yLnByb3BDb250YWluZXIsdj1yLnByb3BOYW1lLHk9ci5wbGFjZWhvbGRlcix4PXIudHJhY2VJbmRleCxiPXIuYXZvaWR8fHt9LF89ci5hdHRyaWJ1dGVzLHc9ci50cmFuc2Zvcm0sVD1yLmNvbnRhaW5lckdyb3VwLGs9dC5fZnVsbExheW91dCxBPTEsTT0hMSxTPWcudGl0bGUsRT0oUyYmUy50ZXh0P1MudGV4dDoiIikudHJpbSgpLEw9UyYmUy5mb250P1MuZm9udDp7fSxDPUwuZmFtaWx5LFA9TC5zaXplLEk9TC5jb2xvcjsidGl0bGUudGV4dCI9PT12P209InRpdGxlVGV4dCI6LTEhPT12LmluZGV4T2YoImF4aXMiKT9tPSJheGlzVGl0bGVUZXh0Ijp2LmluZGV4T2YoITApJiYobT0iY29sb3JiYXJUaXRsZVRleHQiKTt2YXIgTz10Ll9jb250ZXh0LmVkaXRzW21dOyIiPT09RT9BPTA6RS5yZXBsYWNlKGQsIiAlICIpPT09eS5yZXBsYWNlKGQsIiAlICIpJiYoQT0uMixNPSEwLE98fChFPSIiKSksci5fbWV0YT9FPXMudGVtcGxhdGVTdHJpbmcoRSxyLl9tZXRhKTprLl9tZXRhJiYoRT1zLnRlbXBsYXRlU3RyaW5nKEUsay5fbWV0YSkpO3ZhciB6PUV8fE87VHx8KFQ9cy5lbnN1cmVTaW5nbGUoay5faW5mb2xheWVyLCJnIiwiZy0iK2UpKTt2YXIgRD1ULnNlbGVjdEFsbCgidGV4dCIpLmRhdGEoej9bMF06W10pO2lmKEQuZW50ZXIoKS5hcHBlbmQoInRleHQiKSxELnRleHQoRSkuYXR0cigiY2xhc3MiLGUpLEQuZXhpdCgpLnJlbW92ZSgpLCF6KXJldHVybiBUO2Z1bmN0aW9uIFIodCl7cy5zeW5jT3JBc3luYyhbRixCXSx0KX1mdW5jdGlvbiBGKGUpe3ZhciByO3JldHVybiB3PyhyPSIiLHcucm90YXRlJiYocis9InJvdGF0ZSgiK1t3LnJvdGF0ZSxfLngsXy55XSsiKSIpLHcub2Zmc2V0JiYocis9bCgwLHcub2Zmc2V0KSkpOnI9bnVsbCxlLmF0dHIoInRyYW5zZm9ybSIsciksZS5zdHlsZSh7ImZvbnQtZmFtaWx5IjpDLCJmb250LXNpemUiOm4ucm91bmQoUCwyKSsicHgiLGZpbGw6dS5yZ2IoSSksb3BhY2l0eTpBKnUub3BhY2l0eShJKSwiZm9udC13ZWlnaHQiOmEuZm9udFdlaWdodH0pLmF0dHIoXykuY2FsbChmLmNvbnZlcnRUb1RzcGFucyx0KSxhLnByZXZpb3VzUHJvbWlzZXModCl9ZnVuY3Rpb24gQih0KXt2YXIgZT1uLnNlbGVjdCh0Lm5vZGUoKS5wYXJlbnROb2RlKTtpZihiJiZiLnNlbGVjdGlvbiYmYi5zaWRlJiZFKXtlLmF0dHIoInRyYW5zZm9ybSIsbnVsbCk7dmFyIHI9cFtiLnNpZGVdLGE9ImxlZnQiPT09Yi5zaWRlfHwidG9wIj09PWIuc2lkZT8tMToxLG89aShiLnBhZCk/Yi5wYWQ6Mix1PWMuYkJveChlLm5vZGUoKSksZj17bGVmdDowLHRvcDowLHJpZ2h0Omsud2lkdGgsYm90dG9tOmsuaGVpZ2h0fSxoPWIubWF4U2hpZnR8fGEqKGZbYi5zaWRlXS11W2Iuc2lkZV0pLGQ9MDtpZihoPDApZD1oO2Vsc2V7dmFyIG09Yi5vZmZzZXRMZWZ0fHwwLGc9Yi5vZmZzZXRUb3B8fDA7dS5sZWZ0LT1tLHUucmlnaHQtPW0sdS50b3AtPWcsdS5ib3R0b20tPWcsYi5zZWxlY3Rpb24uZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1jLmJCb3godGhpcyk7cy5iQm94SW50ZXJzZWN0KHUsdCxvKSYmKGQ9TWF0aC5tYXgoZCxhKih0W2Iuc2lkZV0tdVtyXSkrbykpfSkpLGQ9TWF0aC5taW4oaCxkKX1pZihkPjB8fGg8MCl7dmFyIHY9e2xlZnQ6Wy1kLDBdLHJpZ2h0OltkLDBdLHRvcDpbMCwtZF0sYm90dG9tOlswLGRdfVtiLnNpZGVdO2UuYXR0cigidHJhbnNmb3JtIixsKHZbMF0sdlsxXSkpfX19cmV0dXJuIEQuY2FsbChSKSxPJiYoRT9ELm9uKCIub3BhY2l0eSIsbnVsbCk6KEE9MCxNPSEwLEQudGV4dCh5KS5vbigibW91c2VvdmVyLm9wYWNpdHkiLChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnRyYW5zaXRpb24oKS5kdXJhdGlvbihoLlNIT1dfUExBQ0VIT0xERVIpLnN0eWxlKCJvcGFjaXR5IiwxKX0pKS5vbigibW91c2VvdXQub3BhY2l0eSIsKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykudHJhbnNpdGlvbigpLmR1cmF0aW9uKGguSElERV9QTEFDRUhPTERFUikuc3R5bGUoIm9wYWNpdHkiLDApfSkpKSxELmNhbGwoZi5tYWtlRWRpdGFibGUse2dkOnR9KS5vbigiZWRpdCIsKGZ1bmN0aW9uKGUpe3ZvaWQgMCE9PXg/by5jYWxsKCJfZ3VpUmVzdHlsZSIsdCx2LGUseCk6by5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsdixlKX0pKS5vbigiY2FuY2VsIiwoZnVuY3Rpb24oKXt0aGlzLnRleHQodGhpcy5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIikpLmNhbGwoUil9KSkub24oImlucHV0IiwoZnVuY3Rpb24odCl7dGhpcy50ZXh0KHR8fCIgIikuY2FsbChmLnBvc2l0aW9uVGV4dCxfLngsXy55KX0pKSksRC5jbGFzc2VkKCJqcy1wbGFjZWhvbGRlciIsTSksVH19fSx7Ii4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjc0NCwiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NzUxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo4OTAsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2NvbG9yIjo2MzksIi4uL2RyYXdpbmciOjY2MSwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw3Mzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuLi9jb2xvci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxzPXQoIi4uLy4uL3Bsb3RzL3BhZF9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXksYz1sKCJidXR0b24iLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIn0sbWV0aG9kOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJyZXN0eWxlIiwicmVsYXlvdXQiLCJhbmltYXRlIiwidXBkYXRlIiwic2tpcCJdLGRmbHQ6InJlc3R5bGUifSxhcmdzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixmcmVlTGVuZ3RoOiEwLGl0ZW1zOlt7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9LHt2YWxUeXBlOiJhbnkifV19LGFyZ3MyOnt2YWxUeXBlOiJpbmZvX2FycmF5IixmcmVlTGVuZ3RoOiEwLGl0ZW1zOlt7dmFsVHlwZToiYW55In0se3ZhbFR5cGU6ImFueSJ9LHt2YWxUeXBlOiJhbnkifV19LGxhYmVsOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LGV4ZWN1dGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9fSk7ZS5leHBvcnRzPW8obCgidXBkYXRlbWVudSIse19hcnJheUF0dHJSZWdleHBzOlsvXnVwZGF0ZW1lbnVzXFsoMHxbMS05XVswLTldKylcXVwuYnV0dG9ucy9dLHZpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4ifSx0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJkcm9wZG93biIsImJ1dHRvbnMiXSxkZmx0OiJkcm9wZG93biJ9LGRpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGVmdCIsInJpZ2h0IiwidXAiLCJkb3duIl0sZGZsdDoiZG93biJ9LGFjdGl2ZTp7dmFsVHlwZToiaW50ZWdlciIsbWluOi0xLGRmbHQ6MH0sc2hvd2FjdGl2ZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sYnV0dG9uczpjLHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOi0yLG1heDozLGRmbHQ6LS4wNX0seGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYXV0byIsImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGRmbHQ6InJpZ2h0In0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTIsbWF4OjMsZGZsdDoxfSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhdXRvIiwidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZGZsdDoidG9wIn0scGFkOmEocyh7ZWRpdFR5cGU6ImFycmF5ZHJhdyJ9KSx7fSksZm9udDpuKHt9KSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciJ9LGJvcmRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmJvcmRlckxpbmV9LGJvcmRlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToiYXJyYXlkcmF3In19KSwiYXJyYXlkcmF3IiwiZnJvbS1yb290Iil9LHsiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo4MDksIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo4NTYsIi4uLy4uL3Bsb3RzL3BhZF9hdHRyaWJ1dGVzIjo4ODksIi4uL2NvbG9yL2F0dHJpYnV0ZXMiOjYzOH1dLDczOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e25hbWU6InVwZGF0ZW1lbnVzIixjb250YWluZXJDbGFzc05hbWU6InVwZGF0ZW1lbnUtY29udGFpbmVyIixoZWFkZXJHcm91cENsYXNzTmFtZToidXBkYXRlbWVudS1oZWFkZXItZ3JvdXAiLGhlYWRlckNsYXNzTmFtZToidXBkYXRlbWVudS1oZWFkZXIiLGhlYWRlckFycm93Q2xhc3NOYW1lOiJ1cGRhdGVtZW51LWhlYWRlci1hcnJvdyIsZHJvcGRvd25CdXR0b25Hcm91cENsYXNzTmFtZToidXBkYXRlbWVudS1kcm9wZG93bi1idXR0b24tZ3JvdXAiLGRyb3Bkb3duQnV0dG9uQ2xhc3NOYW1lOiJ1cGRhdGVtZW51LWRyb3Bkb3duLWJ1dHRvbiIsYnV0dG9uQ2xhc3NOYW1lOiJ1cGRhdGVtZW51LWJ1dHRvbiIsaXRlbVJlY3RDbGFzc05hbWU6InVwZGF0ZW1lbnUtaXRlbS1yZWN0IixpdGVtVGV4dENsYXNzTmFtZToidXBkYXRlbWVudS1pdGVtLXRleHQiLG1lbnVJbmRleEF0dHJOYW1lOiJ1cGRhdGVtZW51LWFjdGl2ZS1pbmRleCIsYXV0b01hcmdpbklkUm9vdDoidXBkYXRlbWVudS0iLGJsYW5rSGVhZGVyT3B0czp7bGFiZWw6IiAgIn0sbWluV2lkdGg6MzAsbWluSGVpZ2h0OjMwLHRleHRQYWRYOjI0LGFycm93UGFkWDoxNixyeDoyLHJ5OjIsdGV4dE9mZnNldFg6MTIsdGV4dE9mZnNldFk6MyxhcnJvd09mZnNldFg6NCxnYXBCdXR0b25IZWFkZXI6NSxnYXBCdXR0b246MixhY3RpdmVDb2xvcjoiI0Y0RkFGRiIsaG92ZXJDb2xvcjoiI0Y0RkFGRiIsYXJyb3dTeW1ib2w6e2xlZnQ6Ilx1MjVjNCIscmlnaHQ6Ilx1MjViYSIsdXA6Ilx1MjViMiIsZG93bjoiXHUyNWJjIn19fSx7fV0sNzQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksYT10KCIuL2F0dHJpYnV0ZXMiKSxvPXQoIi4vY29uc3RhbnRzIikubmFtZSxzPWEuYnV0dG9ucztmdW5jdGlvbiBsKHQsZSxyKXtmdW5jdGlvbiBvKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9bygidmlzaWJsZSIsaSh0LGUse25hbWU6ImJ1dHRvbnMiLGhhbmRsZUl0ZW1EZWZhdWx0czpjfSkubGVuZ3RoPjApJiYobygiYWN0aXZlIiksbygiZGlyZWN0aW9uIiksbygidHlwZSIpLG8oInNob3dhY3RpdmUiKSxvKCJ4IiksbygieSIpLG4ubm9uZU9yQWxsKHQsZSxbIngiLCJ5Il0pLG8oInhhbmNob3IiKSxvKCJ5YW5jaG9yIiksbygicGFkLnQiKSxvKCJwYWQuciIpLG8oInBhZC5iIiksbygicGFkLmwiKSxuLmNvZXJjZUZvbnQobywiZm9udCIsci5mb250KSxvKCJiZ2NvbG9yIixyLnBhcGVyX2JnY29sb3IpLG8oImJvcmRlcmNvbG9yIiksbygiYm9yZGVyd2lkdGgiKSl9ZnVuY3Rpb24gYyh0LGUpe2Z1bmN0aW9uIHIocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixpKX1yKCJ2aXNpYmxlIiwic2tpcCI9PT10Lm1ldGhvZHx8QXJyYXkuaXNBcnJheSh0LmFyZ3MpKSYmKHIoIm1ldGhvZCIpLHIoImFyZ3MiKSxyKCJhcmdzMiIpLHIoImxhYmVsIikscigiZXhlY3V0ZSIpKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpKHQsZSx7bmFtZTpvLGhhbmRsZUl0ZW1EZWZhdWx0czpsfSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjgyMiwiLi9hdHRyaWJ1dGVzIjo3MzgsIi4vY29uc3RhbnRzIjo3Mzl9XSw3NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxhPXQoIi4uL2NvbG9yIiksbz10KCIuLi9kcmF3aW5nIikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLmFycmF5RWRpdG9yLHU9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLkxJTkVfU1BBQ0lORyxmPXQoIi4vY29uc3RhbnRzIiksaD10KCIuL3Njcm9sbGJveCIpO2Z1bmN0aW9uIHAodCl7cmV0dXJuIHQuX2luZGV4fWZ1bmN0aW9uIGQodCxlKXtyZXR1cm4rdC5hdHRyKGYubWVudUluZGV4QXR0ck5hbWUpPT09ZS5faW5kZXh9ZnVuY3Rpb24gbSh0LGUscixuLGksYSxvLHMpe2UuYWN0aXZlPW8sYyh0LmxheW91dCxmLm5hbWUsZSkuYXBwbHlVcGRhdGUoImFjdGl2ZSIsbyksImJ1dHRvbnMiPT09ZS50eXBlP3YodCxuLG51bGwsbnVsbCxlKToiZHJvcGRvd24iPT09ZS50eXBlJiYoaS5hdHRyKGYubWVudUluZGV4QXR0ck5hbWUsIi0xIiksZyh0LG4saSxhLGUpLHN8fHYodCxuLGksYSxlKSl9ZnVuY3Rpb24gZyh0LGUscixuLGkpe3ZhciBhPXMuZW5zdXJlU2luZ2xlKGUsImciLGYuaGVhZGVyQ2xhc3NOYW1lLChmdW5jdGlvbih0KXt0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpfSkpLGw9aS5fZGltcyxjPWkuYWN0aXZlLHU9aS5idXR0b25zW2NdfHxmLmJsYW5rSGVhZGVyT3B0cyxoPXt5OmkucGFkLnQseVBhZDowLHg6aS5wYWQubCx4UGFkOjAsaW5kZXg6MH0scD17d2lkdGg6bC5oZWFkZXJXaWR0aCxoZWlnaHQ6bC5oZWFkZXJIZWlnaHR9O2EuY2FsbCh5LGksdSx0KS5jYWxsKE0saSxoLHApLHMuZW5zdXJlU2luZ2xlKGUsInRleHQiLGYuaGVhZGVyQXJyb3dDbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3QuYXR0cigidGV4dC1hbmNob3IiLCJlbmQiKS5jYWxsKG8uZm9udCxpLmZvbnQpLnRleHQoZi5hcnJvd1N5bWJvbFtpLmRpcmVjdGlvbl0pfSkpLmF0dHIoe3g6bC5oZWFkZXJXaWR0aC1mLmFycm93T2Zmc2V0WCtpLnBhZC5sLHk6bC5oZWFkZXJIZWlnaHQvMitmLnRleHRPZmZzZXRZK2kucGFkLnR9KSxhLm9uKCJjbGljayIsKGZ1bmN0aW9uKCl7ci5jYWxsKFMsU3RyaW5nKGQocixpKT8tMTppLl9pbmRleCkpLHYodCxlLHIsbixpKX0pKSxhLm9uKCJtb3VzZW92ZXIiLChmdW5jdGlvbigpe2EuY2FsbCh3KX0pKSxhLm9uKCJtb3VzZW91dCIsKGZ1bmN0aW9uKCl7YS5jYWxsKFQsaSl9KSksby5zZXRUcmFuc2xhdGUoZSxsLmx4LGwubHkpfWZ1bmN0aW9uIHYodCxlLHIsYSxvKXtyfHwocj1lKS5hdHRyKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpO3ZhciBsPWZ1bmN0aW9uKHQpe3JldHVybi0xPT0rdC5hdHRyKGYubWVudUluZGV4QXR0ck5hbWUpfShyKSYmImJ1dHRvbnMiIT09by50eXBlP1tdOm8uYnV0dG9ucyxjPSJkcm9wZG93biI9PT1vLnR5cGU/Zi5kcm9wZG93bkJ1dHRvbkNsYXNzTmFtZTpmLmJ1dHRvbkNsYXNzTmFtZSx1PXIuc2VsZWN0QWxsKCJnLiIrYykuZGF0YShzLmZpbHRlclZpc2libGUobCkpLGg9dS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoYywhMCkscD11LmV4aXQoKTsiZHJvcGRvd24iPT09by50eXBlPyhoLmF0dHIoIm9wYWNpdHkiLCIwIikudHJhbnNpdGlvbigpLmF0dHIoIm9wYWNpdHkiLCIxIikscC50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsIjAiKS5yZW1vdmUoKSk6cC5yZW1vdmUoKTt2YXIgZD0wLGc9MCx2PW8uX2RpbXMseD0tMSE9PVsidXAiLCJkb3duIl0uaW5kZXhPZihvLmRpcmVjdGlvbik7ImRyb3Bkb3duIj09PW8udHlwZSYmKHg/Zz12LmhlYWRlckhlaWdodCtmLmdhcEJ1dHRvbkhlYWRlcjpkPXYuaGVhZGVyV2lkdGgrZi5nYXBCdXR0b25IZWFkZXIpLCJkcm9wZG93biI9PT1vLnR5cGUmJiJ1cCI9PT1vLmRpcmVjdGlvbiYmKGc9LWYuZ2FwQnV0dG9uSGVhZGVyK2YuZ2FwQnV0dG9uLXYub3BlbkhlaWdodCksImRyb3Bkb3duIj09PW8udHlwZSYmImxlZnQiPT09by5kaXJlY3Rpb24mJihkPS1mLmdhcEJ1dHRvbkhlYWRlcitmLmdhcEJ1dHRvbi12Lm9wZW5XaWR0aCk7dmFyIGI9e3g6di5seCtkK28ucGFkLmwseTp2Lmx5K2crby5wYWQudCx5UGFkOmYuZ2FwQnV0dG9uLHhQYWQ6Zi5nYXBCdXR0b24saW5kZXg6MH0saz17bDpiLngrby5ib3JkZXJ3aWR0aCx0OmIueStvLmJvcmRlcndpZHRofTt1LmVhY2goKGZ1bmN0aW9uKHMsbCl7dmFyIGM9bi5zZWxlY3QodGhpcyk7Yy5jYWxsKHksbyxzLHQpLmNhbGwoTSxvLGIpLGMub24oImNsaWNrIiwoZnVuY3Rpb24oKXtuLmV2ZW50LmRlZmF1bHRQcmV2ZW50ZWR8fChzLmV4ZWN1dGUmJihzLmFyZ3MyJiZvLmFjdGl2ZT09PWw/KG0odCxvLDAsZSxyLGEsLTEpLGkuZXhlY3V0ZUFQSUNvbW1hbmQodCxzLm1ldGhvZCxzLmFyZ3MyKSk6KG0odCxvLDAsZSxyLGEsbCksaS5leGVjdXRlQVBJQ29tbWFuZCh0LHMubWV0aG9kLHMuYXJncykpKSx0LmVtaXQoInBsb3RseV9idXR0b25jbGlja2VkIix7bWVudTpvLGJ1dHRvbjpzLGFjdGl2ZTpvLmFjdGl2ZX0pKX0pKSxjLm9uKCJtb3VzZW92ZXIiLChmdW5jdGlvbigpe2MuY2FsbCh3KX0pKSxjLm9uKCJtb3VzZW91dCIsKGZ1bmN0aW9uKCl7Yy5jYWxsKFQsbyksdS5jYWxsKF8sbyl9KSl9KSksdS5jYWxsKF8sbykseD8oay53PU1hdGgubWF4KHYub3BlbldpZHRoLHYuaGVhZGVyV2lkdGgpLGsuaD1iLnktay50KTooay53PWIueC1rLmwsay5oPU1hdGgubWF4KHYub3BlbkhlaWdodCx2LmhlYWRlckhlaWdodCkpLGsuZGlyZWN0aW9uPW8uZGlyZWN0aW9uLGEmJih1LnNpemUoKT9mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG8scyxsLGM9aS5kaXJlY3Rpb24sdT0idXAiPT09Y3x8ImRvd24iPT09YyxoPWkuX2RpbXMscD1pLmFjdGl2ZTtpZih1KWZvcihzPTAsbD0wO2w8cDtsKyspcys9aC5oZWlnaHRzW2xdK2YuZ2FwQnV0dG9uO2Vsc2UgZm9yKG89MCxsPTA7bDxwO2wrKylvKz1oLndpZHRoc1tsXStmLmdhcEJ1dHRvbjtuLmVuYWJsZShhLG8scyksbi5oYmFyJiZuLmhiYXIuYXR0cigib3BhY2l0eSIsIjAiKS50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsIjEiKTtuLnZiYXImJm4udmJhci5hdHRyKCJvcGFjaXR5IiwiMCIpLnRyYW5zaXRpb24oKS5hdHRyKCJvcGFjaXR5IiwiMSIpfSgwLDAsMCxhLG8sayk6ZnVuY3Rpb24odCl7dmFyIGU9ISF0LmhiYXIscj0hIXQudmJhcjtlJiZ0LmhiYXIudHJhbnNpdGlvbigpLmF0dHIoIm9wYWNpdHkiLCIwIikuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtlPSExLHJ8fHQuZGlzYWJsZSgpfSkpO3ImJnQudmJhci50cmFuc2l0aW9uKCkuYXR0cigib3BhY2l0eSIsIjAiKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpe3I9ITEsZXx8dC5kaXNhYmxlKCl9KSl9KGEpKX1mdW5jdGlvbiB5KHQsZSxyLG4pe3QuY2FsbCh4LGUpLmNhbGwoYixlLHIsbil9ZnVuY3Rpb24geCh0LGUpe3MuZW5zdXJlU2luZ2xlKHQsInJlY3QiLGYuaXRlbVJlY3RDbGFzc05hbWUsKGZ1bmN0aW9uKHQpe3QuYXR0cih7cng6Zi5yeCxyeTpmLnJ5LCJzaGFwZS1yZW5kZXJpbmciOiJjcmlzcEVkZ2VzIn0pfSkpLmNhbGwoYS5zdHJva2UsZS5ib3JkZXJjb2xvcikuY2FsbChhLmZpbGwsZS5iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLmJvcmRlcndpZHRoKyJweCIpfWZ1bmN0aW9uIGIodCxlLHIsbil7dmFyIGk9cy5lbnN1cmVTaW5nbGUodCwidGV4dCIsZi5pdGVtVGV4dENsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5hdHRyKHsidGV4dC1hbmNob3IiOiJzdGFydCIsImRhdGEtbm90ZXgiOjF9KX0pKSxhPXIubGFiZWwsYz1uLl9mdWxsTGF5b3V0Ll9tZXRhO2MmJihhPXMudGVtcGxhdGVTdHJpbmcoYSxjKSksaS5jYWxsKG8uZm9udCxlLmZvbnQpLnRleHQoYSkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyxuKX1mdW5jdGlvbiBfKHQsZSl7dmFyIHI9ZS5hY3RpdmU7dC5lYWNoKChmdW5jdGlvbih0LGkpe3ZhciBvPW4uc2VsZWN0KHRoaXMpO2k9PT1yJiZlLnNob3dhY3RpdmUmJm8uc2VsZWN0KCJyZWN0LiIrZi5pdGVtUmVjdENsYXNzTmFtZSkuY2FsbChhLmZpbGwsZi5hY3RpdmVDb2xvcil9KSl9ZnVuY3Rpb24gdyh0KXt0LnNlbGVjdCgicmVjdC4iK2YuaXRlbVJlY3RDbGFzc05hbWUpLmNhbGwoYS5maWxsLGYuaG92ZXJDb2xvcil9ZnVuY3Rpb24gVCh0LGUpe3Quc2VsZWN0KCJyZWN0LiIrZi5pdGVtUmVjdENsYXNzTmFtZSkuY2FsbChhLmZpbGwsZS5iZ2NvbG9yKX1mdW5jdGlvbiBrKHQsZSl7dmFyIHI9ZS5fZGltcz17d2lkdGgxOjAsaGVpZ2h0MTowLGhlaWdodHM6W10sd2lkdGhzOltdLHRvdGFsV2lkdGg6MCx0b3RhbEhlaWdodDowLG9wZW5XaWR0aDowLG9wZW5IZWlnaHQ6MCxseDowLGx5OjB9LGE9by50ZXN0ZXIuc2VsZWN0QWxsKCJnLiIrZi5kcm9wZG93bkJ1dHRvbkNsYXNzTmFtZSkuZGF0YShzLmZpbHRlclZpc2libGUoZS5idXR0b25zKSk7YS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZi5kcm9wZG93bkJ1dHRvbkNsYXNzTmFtZSwhMCk7dmFyIGM9LTEhPT1bInVwIiwiZG93biJdLmluZGV4T2YoZS5kaXJlY3Rpb24pO2EuZWFjaCgoZnVuY3Rpb24oaSxhKXt2YXIgcz1uLnNlbGVjdCh0aGlzKTtzLmNhbGwoeSxlLGksdCk7dmFyIGg9cy5zZWxlY3QoIi4iK2YuaXRlbVRleHRDbGFzc05hbWUpLHA9aC5ub2RlKCkmJm8uYkJveChoLm5vZGUoKSkud2lkdGgsZD1NYXRoLm1heChwK2YudGV4dFBhZFgsZi5taW5XaWR0aCksbT1lLmZvbnQuc2l6ZSp1LGc9bC5saW5lQ291bnQoaCksdj1NYXRoLm1heChtKmcsZi5taW5IZWlnaHQpK2YudGV4dE9mZnNldFk7dj1NYXRoLmNlaWwodiksZD1NYXRoLmNlaWwoZCksci53aWR0aHNbYV09ZCxyLmhlaWdodHNbYV09dixyLmhlaWdodDE9TWF0aC5tYXgoci5oZWlnaHQxLHYpLHIud2lkdGgxPU1hdGgubWF4KHIud2lkdGgxLGQpLGM/KHIudG90YWxXaWR0aD1NYXRoLm1heChyLnRvdGFsV2lkdGgsZCksci5vcGVuV2lkdGg9ci50b3RhbFdpZHRoLHIudG90YWxIZWlnaHQrPXYrZi5nYXBCdXR0b24sci5vcGVuSGVpZ2h0Kz12K2YuZ2FwQnV0dG9uKTooci50b3RhbFdpZHRoKz1kK2YuZ2FwQnV0dG9uLHIub3BlbldpZHRoKz1kK2YuZ2FwQnV0dG9uLHIudG90YWxIZWlnaHQ9TWF0aC5tYXgoci50b3RhbEhlaWdodCx2KSxyLm9wZW5IZWlnaHQ9ci50b3RhbEhlaWdodCl9KSksYz9yLnRvdGFsSGVpZ2h0LT1mLmdhcEJ1dHRvbjpyLnRvdGFsV2lkdGgtPWYuZ2FwQnV0dG9uLHIuaGVhZGVyV2lkdGg9ci53aWR0aDErZi5hcnJvd1BhZFgsci5oZWFkZXJIZWlnaHQ9ci5oZWlnaHQxLCJkcm9wZG93biI9PT1lLnR5cGUmJihjPyhyLndpZHRoMSs9Zi5hcnJvd1BhZFgsci50b3RhbEhlaWdodD1yLmhlaWdodDEpOnIudG90YWxXaWR0aD1yLndpZHRoMSxyLnRvdGFsV2lkdGgrPWYuYXJyb3dQYWRYKSxhLnJlbW92ZSgpO3ZhciBoPXIudG90YWxXaWR0aCtlLnBhZC5sK2UucGFkLnIscD1yLnRvdGFsSGVpZ2h0K2UucGFkLnQrZS5wYWQuYixkPXQuX2Z1bGxMYXlvdXQuX3NpemU7ci5seD1kLmwrZC53KmUueCxyLmx5PWQudCtkLmgqKDEtZS55KTt2YXIgbT0ibGVmdCI7cy5pc1JpZ2h0QW5jaG9yKGUpJiYoci5seC09aCxtPSJyaWdodCIpLHMuaXNDZW50ZXJBbmNob3IoZSkmJihyLmx4LT1oLzIsbT0iY2VudGVyIik7dmFyIGc9InRvcCI7cy5pc0JvdHRvbUFuY2hvcihlKSYmKHIubHktPXAsZz0iYm90dG9tIikscy5pc01pZGRsZUFuY2hvcihlKSYmKHIubHktPXAvMixnPSJtaWRkbGUiKSxyLnRvdGFsV2lkdGg9TWF0aC5jZWlsKHIudG90YWxXaWR0aCksci50b3RhbEhlaWdodD1NYXRoLmNlaWwoci50b3RhbEhlaWdodCksci5seD1NYXRoLnJvdW5kKHIubHgpLHIubHk9TWF0aC5yb3VuZChyLmx5KSxpLmF1dG9NYXJnaW4odCxBKGUpLHt4OmUueCx5OmUueSxsOmgqKHtyaWdodDoxLGNlbnRlcjouNX1bbV18fDApLHI6aCooe2xlZnQ6MSxjZW50ZXI6LjV9W21dfHwwKSxiOnAqKHt0b3A6MSxtaWRkbGU6LjV9W2ddfHwwKSx0OnAqKHtib3R0b206MSxtaWRkbGU6LjV9W2ddfHwwKX0pfWZ1bmN0aW9uIEEodCl7cmV0dXJuIGYuYXV0b01hcmdpbklkUm9vdCt0Ll9pbmRleH1mdW5jdGlvbiBNKHQsZSxyLG4pe249bnx8e307dmFyIGk9dC5zZWxlY3QoIi4iK2YuaXRlbVJlY3RDbGFzc05hbWUpLGE9dC5zZWxlY3QoIi4iK2YuaXRlbVRleHRDbGFzc05hbWUpLHM9ZS5ib3JkZXJ3aWR0aCxjPXIuaW5kZXgsaD1lLl9kaW1zO28uc2V0VHJhbnNsYXRlKHQscytyLngscytyLnkpO3ZhciBwPS0xIT09WyJ1cCIsImRvd24iXS5pbmRleE9mKGUuZGlyZWN0aW9uKSxkPW4uaGVpZ2h0fHwocD9oLmhlaWdodHNbY106aC5oZWlnaHQxKTtpLmF0dHIoe3g6MCx5OjAsd2lkdGg6bi53aWR0aHx8KHA/aC53aWR0aDE6aC53aWR0aHNbY10pLGhlaWdodDpkfSk7dmFyIG09ZS5mb250LnNpemUqdSxnPShsLmxpbmVDb3VudChhKS0xKSptLzI7bC5wb3NpdGlvblRleHQoYSxmLnRleHRPZmZzZXRYLGQvMi1nK2YudGV4dE9mZnNldFkpLHA/ci55Kz1oLmhlaWdodHNbY10rci55UGFkOnIueCs9aC53aWR0aHNbY10rci54UGFkLHIuaW5kZXgrK31mdW5jdGlvbiBTKHQsZSl7dC5hdHRyKGYubWVudUluZGV4QXR0ck5hbWUsZXx8Ii0xIikuc2VsZWN0QWxsKCJnLiIrZi5kcm9wZG93bkJ1dHRvbkNsYXNzTmFtZSkucmVtb3ZlKCl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1zLmZpbHRlclZpc2libGUoZVtmLm5hbWVdKTtmdW5jdGlvbiBhKGUpe2kuYXV0b01hcmdpbih0LEEoZSkpfXZhciBvPWUuX21lbnVsYXllci5zZWxlY3RBbGwoImcuIitmLmNvbnRhaW5lckNsYXNzTmFtZSkuZGF0YShyLmxlbmd0aD4wP1swXTpbXSk7aWYoby5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZi5jb250YWluZXJDbGFzc05hbWUsITApLnN0eWxlKCJjdXJzb3IiLCJwb2ludGVyIiksby5leGl0KCkuZWFjaCgoZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuIitmLmhlYWRlckdyb3VwQ2xhc3NOYW1lKS5lYWNoKGEpfSkpLnJlbW92ZSgpLDAhPT1yLmxlbmd0aCl7dmFyIGw9by5zZWxlY3RBbGwoImcuIitmLmhlYWRlckdyb3VwQ2xhc3NOYW1lKS5kYXRhKHIscCk7bC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoZi5oZWFkZXJHcm91cENsYXNzTmFtZSwhMCk7Zm9yKHZhciBjPXMuZW5zdXJlU2luZ2xlKG8sImciLGYuZHJvcGRvd25CdXR0b25Hcm91cENsYXNzTmFtZSwoZnVuY3Rpb24odCl7dC5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKX0pKSx1PTA7dTxyLmxlbmd0aDt1Kyspe3ZhciB5PXJbdV07ayh0LHkpfXZhciB4PSJ1cGRhdGVtZW51cyIrZS5fdWlkLGI9bmV3IGgodCxjLHgpO2wuZW50ZXIoKS5zaXplKCkmJihjLm5vZGUoKS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKGMubm9kZSgpKSxjLmNhbGwoUykpLGwuZXhpdCgpLmVhY2goKGZ1bmN0aW9uKHQpe2MuY2FsbChTKSxhKHQpfSkpLnJlbW92ZSgpLGwuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyksYT0iZHJvcGRvd24iPT09ZS50eXBlP2M6bnVsbDtpLm1hbmFnZUNvbW1hbmRPYnNlcnZlcih0LGUsZS5idXR0b25zLChmdW5jdGlvbihuKXttKHQsZSxlLmJ1dHRvbnNbbi5pbmRleF0scixhLGIsbi5pbmRleCwhMCl9KSksImRyb3Bkb3duIj09PWUudHlwZT8oZyh0LHIsYyxiLGUpLGQoYyxlKSYmdih0LHIsYyxiLGUpKTp2KHQscixudWxsLG51bGwsZSl9KSl9fX0seyIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo3NDQsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9wbG90cy9wbG90cyI6ODkwLCIuLi9jb2xvciI6NjM5LCIuLi9kcmF3aW5nIjo2NjEsIi4vY29uc3RhbnRzIjo3MzksIi4vc2Nyb2xsYm94Ijo3NDMsIkBwbG90bHkvZDMiOjU4fV0sNzQyOltmdW5jdGlvbih0LGUscil7YXJndW1lbnRzWzRdWzczNl1bMF0uYXBwbHkocixhcmd1bWVudHMpfSx7Ii4vYXR0cmlidXRlcyI6NzM4LCIuL2NvbnN0YW50cyI6NzM5LCIuL2RlZmF1bHRzIjo3NDAsIi4vZHJhdyI6NzQxLGR1cDo3MzZ9XSw3NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXM7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vY29sb3IiKSxhPXQoIi4uL2RyYXdpbmciKSxvPXQoIi4uLy4uL2xpYiIpO2Z1bmN0aW9uIHModCxlLHIpe3RoaXMuZ2Q9dCx0aGlzLmNvbnRhaW5lcj1lLHRoaXMuaWQ9cix0aGlzLnBvc2l0aW9uPW51bGwsdGhpcy50cmFuc2xhdGVYPW51bGwsdGhpcy50cmFuc2xhdGVZPW51bGwsdGhpcy5oYmFyPW51bGwsdGhpcy52YmFyPW51bGwsdGhpcy5iZz10aGlzLmNvbnRhaW5lci5zZWxlY3RBbGwoInJlY3Quc2Nyb2xsYm94LWJnIikuZGF0YShbMF0pLHRoaXMuYmcuZXhpdCgpLm9uKCIuZHJhZyIsbnVsbCkub24oIndoZWVsIixudWxsKS5yZW1vdmUoKSx0aGlzLmJnLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgic2Nyb2xsYm94LWJnIiwhMCkuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIikuYXR0cih7b3BhY2l0eTowLHg6MCx5OjAsd2lkdGg6MCxoZWlnaHQ6MH0pfXMuYmFyV2lkdGg9MixzLmJhckxlbmd0aD0yMCxzLmJhclJhZGl1cz0yLHMuYmFyUGFkPTEscy5iYXJDb2xvcj0iIzgwOEJBNCIscy5wcm90b3R5cGUuZW5hYmxlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbz10aGlzLmdkLl9mdWxsTGF5b3V0LGw9by53aWR0aCxjPW8uaGVpZ2h0O3RoaXMucG9zaXRpb249dDt2YXIgdSxmLGgscCxkPXRoaXMucG9zaXRpb24ubCxtPXRoaXMucG9zaXRpb24udyxnPXRoaXMucG9zaXRpb24udCx2PXRoaXMucG9zaXRpb24uaCx5PXRoaXMucG9zaXRpb24uZGlyZWN0aW9uLHg9ImRvd24iPT09eSxiPSJsZWZ0Ij09PXksXz0idXAiPT09eSx3PW0sVD12O3h8fGJ8fCJyaWdodCI9PT15fHxffHwodGhpcy5wb3NpdGlvbi5kaXJlY3Rpb249ImRvd24iLHg9ITApLHh8fF8/KGY9KHU9ZCkrdyx4PyhoPWcsVD0ocD1NYXRoLm1pbihoK1QsYykpLWgpOlQ9KHA9ZytUKS0oaD1NYXRoLm1heChwLVQsMCkpKToocD0oaD1nKStULGI/dz0oZj1kK3cpLSh1PU1hdGgubWF4KGYtdywwKSk6KHU9ZCx3PShmPU1hdGgubWluKHUrdyxsKSktdSkpLHRoaXMuX2JveD17bDp1LHQ6aCx3OncsaDpUfTt2YXIgaz1tPncsQT1zLmJhckxlbmd0aCsyKnMuYmFyUGFkLE09cy5iYXJXaWR0aCsyKnMuYmFyUGFkLFM9ZCxFPWcrdjtFK00+YyYmKEU9Yy1NKTt2YXIgTD10aGlzLmNvbnRhaW5lci5zZWxlY3RBbGwoInJlY3Quc2Nyb2xsYmFyLWhvcml6b250YWwiKS5kYXRhKGs/WzBdOltdKTtMLmV4aXQoKS5vbigiLmRyYWciLG51bGwpLnJlbW92ZSgpLEwuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJzY3JvbGxiYXItaG9yaXpvbnRhbCIsITApLmNhbGwoaS5maWxsLHMuYmFyQ29sb3IpLGs/KHRoaXMuaGJhcj1MLmF0dHIoe3J4OnMuYmFyUmFkaXVzLHJ5OnMuYmFyUmFkaXVzLHg6Uyx5OkUsd2lkdGg6QSxoZWlnaHQ6TX0pLHRoaXMuX2hiYXJYTWluPVMrQS8yLHRoaXMuX2hiYXJUcmFuc2xhdGVNYXg9dy1BKTooZGVsZXRlIHRoaXMuaGJhcixkZWxldGUgdGhpcy5faGJhclhNaW4sZGVsZXRlIHRoaXMuX2hiYXJUcmFuc2xhdGVNYXgpO3ZhciBDPXY+VCxQPXMuYmFyV2lkdGgrMipzLmJhclBhZCxJPXMuYmFyTGVuZ3RoKzIqcy5iYXJQYWQsTz1kK20sej1nO08rUD5sJiYoTz1sLVApO3ZhciBEPXRoaXMuY29udGFpbmVyLnNlbGVjdEFsbCgicmVjdC5zY3JvbGxiYXItdmVydGljYWwiKS5kYXRhKEM/WzBdOltdKTtELmV4aXQoKS5vbigiLmRyYWciLG51bGwpLnJlbW92ZSgpLEQuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJzY3JvbGxiYXItdmVydGljYWwiLCEwKS5jYWxsKGkuZmlsbCxzLmJhckNvbG9yKSxDPyh0aGlzLnZiYXI9RC5hdHRyKHtyeDpzLmJhclJhZGl1cyxyeTpzLmJhclJhZGl1cyx4Ok8seTp6LHdpZHRoOlAsaGVpZ2h0Okl9KSx0aGlzLl92YmFyWU1pbj16K0kvMix0aGlzLl92YmFyVHJhbnNsYXRlTWF4PVQtSSk6KGRlbGV0ZSB0aGlzLnZiYXIsZGVsZXRlIHRoaXMuX3ZiYXJZTWluLGRlbGV0ZSB0aGlzLl92YmFyVHJhbnNsYXRlTWF4KTt2YXIgUj10aGlzLmlkLEY9dS0uNSxCPUM/ZitQKy41OmYrLjUsTj1oLS41LGo9az9wK00rLjU6cCsuNSxVPW8uX3RvcGRlZnMuc2VsZWN0QWxsKCIjIitSKS5kYXRhKGt8fEM/WzBdOltdKTtpZihVLmV4aXQoKS5yZW1vdmUoKSxVLmVudGVyKCkuYXBwZW5kKCJjbGlwUGF0aCIpLmF0dHIoImlkIixSKS5hcHBlbmQoInJlY3QiKSxrfHxDPyh0aGlzLl9jbGlwUmVjdD1VLnNlbGVjdCgicmVjdCIpLmF0dHIoe3g6TWF0aC5mbG9vcihGKSx5Ok1hdGguZmxvb3IoTiksd2lkdGg6TWF0aC5jZWlsKEIpLU1hdGguZmxvb3IoRiksaGVpZ2h0Ok1hdGguY2VpbChqKS1NYXRoLmZsb29yKE4pfSksdGhpcy5jb250YWluZXIuY2FsbChhLnNldENsaXBVcmwsUix0aGlzLmdkKSx0aGlzLmJnLmF0dHIoe3g6ZCx5Omcsd2lkdGg6bSxoZWlnaHQ6dn0pKToodGhpcy5iZy5hdHRyKHt3aWR0aDowLGhlaWdodDowfSksdGhpcy5jb250YWluZXIub24oIndoZWVsIixudWxsKS5vbigiLmRyYWciLG51bGwpLmNhbGwoYS5zZXRDbGlwVXJsLG51bGwpLGRlbGV0ZSB0aGlzLl9jbGlwUmVjdCksa3x8Qyl7dmFyIFY9bi5iZWhhdmlvci5kcmFnKCkub24oImRyYWdzdGFydCIsKGZ1bmN0aW9uKCl7bi5ldmVudC5zb3VyY2VFdmVudC5wcmV2ZW50RGVmYXVsdCgpfSkpLm9uKCJkcmFnIix0aGlzLl9vbkJveERyYWcuYmluZCh0aGlzKSk7dGhpcy5jb250YWluZXIub24oIndoZWVsIixudWxsKS5vbigid2hlZWwiLHRoaXMuX29uQm94V2hlZWwuYmluZCh0aGlzKSkub24oIi5kcmFnIixudWxsKS5jYWxsKFYpO3ZhciBIPW4uYmVoYXZpb3IuZHJhZygpLm9uKCJkcmFnc3RhcnQiLChmdW5jdGlvbigpe24uZXZlbnQuc291cmNlRXZlbnQucHJldmVudERlZmF1bHQoKSxuLmV2ZW50LnNvdXJjZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpfSkpLm9uKCJkcmFnIix0aGlzLl9vbkJhckRyYWcuYmluZCh0aGlzKSk7ayYmdGhpcy5oYmFyLm9uKCIuZHJhZyIsbnVsbCkuY2FsbChIKSxDJiZ0aGlzLnZiYXIub24oIi5kcmFnIixudWxsKS5jYWxsKEgpfXRoaXMuc2V0VHJhbnNsYXRlKGUscil9LHMucHJvdG90eXBlLmRpc2FibGU9ZnVuY3Rpb24oKXsodGhpcy5oYmFyfHx0aGlzLnZiYXIpJiYodGhpcy5iZy5hdHRyKHt3aWR0aDowLGhlaWdodDowfSksdGhpcy5jb250YWluZXIub24oIndoZWVsIixudWxsKS5vbigiLmRyYWciLG51bGwpLmNhbGwoYS5zZXRDbGlwVXJsLG51bGwpLGRlbGV0ZSB0aGlzLl9jbGlwUmVjdCksdGhpcy5oYmFyJiYodGhpcy5oYmFyLm9uKCIuZHJhZyIsbnVsbCksdGhpcy5oYmFyLnJlbW92ZSgpLGRlbGV0ZSB0aGlzLmhiYXIsZGVsZXRlIHRoaXMuX2hiYXJYTWluLGRlbGV0ZSB0aGlzLl9oYmFyVHJhbnNsYXRlTWF4KSx0aGlzLnZiYXImJih0aGlzLnZiYXIub24oIi5kcmFnIixudWxsKSx0aGlzLnZiYXIucmVtb3ZlKCksZGVsZXRlIHRoaXMudmJhcixkZWxldGUgdGhpcy5fdmJhcllNaW4sZGVsZXRlIHRoaXMuX3ZiYXJUcmFuc2xhdGVNYXgpfSxzLnByb3RvdHlwZS5fb25Cb3hEcmFnPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50cmFuc2xhdGVYLGU9dGhpcy50cmFuc2xhdGVZO3RoaXMuaGJhciYmKHQtPW4uZXZlbnQuZHgpLHRoaXMudmJhciYmKGUtPW4uZXZlbnQuZHkpLHRoaXMuc2V0VHJhbnNsYXRlKHQsZSl9LHMucHJvdG90eXBlLl9vbkJveFdoZWVsPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50cmFuc2xhdGVYLGU9dGhpcy50cmFuc2xhdGVZO3RoaXMuaGJhciYmKHQrPW4uZXZlbnQuZGVsdGFZKSx0aGlzLnZiYXImJihlKz1uLmV2ZW50LmRlbHRhWSksdGhpcy5zZXRUcmFuc2xhdGUodCxlKX0scy5wcm90b3R5cGUuX29uQmFyRHJhZz1mdW5jdGlvbigpe3ZhciB0PXRoaXMudHJhbnNsYXRlWCxlPXRoaXMudHJhbnNsYXRlWTtpZih0aGlzLmhiYXIpe3ZhciByPXQrdGhpcy5faGJhclhNaW4saT1yK3RoaXMuX2hiYXJUcmFuc2xhdGVNYXg7dD0oby5jb25zdHJhaW4obi5ldmVudC54LHIsaSktcikvKGktcikqKHRoaXMucG9zaXRpb24udy10aGlzLl9ib3gudyl9aWYodGhpcy52YmFyKXt2YXIgYT1lK3RoaXMuX3ZiYXJZTWluLHM9YSt0aGlzLl92YmFyVHJhbnNsYXRlTWF4O2U9KG8uY29uc3RyYWluKG4uZXZlbnQueSxhLHMpLWEpLyhzLWEpKih0aGlzLnBvc2l0aW9uLmgtdGhpcy5fYm94LmgpfXRoaXMuc2V0VHJhbnNsYXRlKHQsZSl9LHMucHJvdG90eXBlLnNldFRyYW5zbGF0ZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMucG9zaXRpb24udy10aGlzLl9ib3gudyxuPXRoaXMucG9zaXRpb24uaC10aGlzLl9ib3guaDtpZih0PW8uY29uc3RyYWluKHR8fDAsMCxyKSxlPW8uY29uc3RyYWluKGV8fDAsMCxuKSx0aGlzLnRyYW5zbGF0ZVg9dCx0aGlzLnRyYW5zbGF0ZVk9ZSx0aGlzLmNvbnRhaW5lci5jYWxsKGEuc2V0VHJhbnNsYXRlLHRoaXMuX2JveC5sLXRoaXMucG9zaXRpb24ubC10LHRoaXMuX2JveC50LXRoaXMucG9zaXRpb24udC1lKSx0aGlzLl9jbGlwUmVjdCYmdGhpcy5fY2xpcFJlY3QuYXR0cih7eDpNYXRoLmZsb29yKHRoaXMucG9zaXRpb24ubCt0LS41KSx5Ok1hdGguZmxvb3IodGhpcy5wb3NpdGlvbi50K2UtLjUpfSksdGhpcy5oYmFyKXt2YXIgaT10L3I7dGhpcy5oYmFyLmNhbGwoYS5zZXRUcmFuc2xhdGUsdCtpKnRoaXMuX2hiYXJUcmFuc2xhdGVNYXgsZSl9aWYodGhpcy52YmFyKXt2YXIgcz1lL247dGhpcy52YmFyLmNhbGwoYS5zZXRUcmFuc2xhdGUsdCxlK3MqdGhpcy5fdmJhclRyYW5zbGF0ZU1heCl9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vY29sb3IiOjYzOSwiLi4vZHJhd2luZyI6NjYxLCJAcGxvdGx5L2QzIjo1OH1dLDc0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0ZST01fQkw6e2xlZnQ6MCxjZW50ZXI6LjUscmlnaHQ6MSxib3R0b206MCxtaWRkbGU6LjUsdG9wOjF9LEZST01fVEw6e2xlZnQ6MCxjZW50ZXI6LjUscmlnaHQ6MSxib3R0b206MSxtaWRkbGU6LjUsdG9wOjB9LEZST01fQlI6e2xlZnQ6MSxjZW50ZXI6LjUscmlnaHQ6MCxib3R0b206MCxtaWRkbGU6LjUsdG9wOjF9LExJTkVfU1BBQ0lORzoxLjMsQ0FQX1NISUZUOi43LE1JRF9TSElGVDouMzUsT1BQT1NJVEVfU0lERTp7bGVmdDoicmlnaHQiLHJpZ2h0OiJsZWZ0Iix0b3A6ImJvdHRvbSIsYm90dG9tOiJ0b3AifX19LHt9XSw3NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtheGlzUmVmRGVzY3JpcHRpb246ZnVuY3Rpb24odCxlLHIpe3JldHVyblsiSWYgc2V0IHRvIGEiLHQsImF4aXMgaWQgKGUuZy4gKiIrdCsiKiBvciIsIioiK3QrIjIqKSwgdGhlIGAiK3QrImAgcG9zaXRpb24gcmVmZXJzIHRvIGEiLHQsImNvb3JkaW5hdGUuIElmIHNldCB0byAqcGFwZXIqLCB0aGUgYCIrdCsiYCIsInBvc2l0aW9uIHJlZmVycyB0byB0aGUgZGlzdGFuY2UgZnJvbSB0aGUiLGUsIm9mIHRoZSBwbG90dGluZyIsImFyZWEgaW4gbm9ybWFsaXplZCBjb29yZGluYXRlcyB3aGVyZSAqMCogKCoxKikgY29ycmVzcG9uZHMgdG8gdGhlIixlLCIoIityKyIpLiBJZiBzZXQgdG8gYSIsdCwiYXhpcyBJRCBmb2xsb3dlZCBieSIsIipkb21haW4qIChzZXBhcmF0ZWQgYnkgYSBzcGFjZSksIHRoZSBwb3NpdGlvbiBiZWhhdmVzIGxpa2UgZm9yIiwiKnBhcGVyKiwgYnV0IHJlZmVycyB0byB0aGUgZGlzdGFuY2UgaW4gZnJhY3Rpb25zIG9mIHRoZSBkb21haW4iLCJsZW5ndGggZnJvbSB0aGUiLGUsIm9mIHRoZSBkb21haW4gb2YgdGhhdCBheGlzOiBlLmcuLCIsIioiK3QrIjIgZG9tYWluKiByZWZlcnMgdG8gdGhlIGRvbWFpbiBvZiB0aGUgc2Vjb25kIix0LCIgYXhpcyBhbmQgYSIsdCwicG9zaXRpb24gb2YgMC41IHJlZmVycyB0byB0aGUiLCJwb2ludCBiZXR3ZWVuIHRoZSIsZSwiYW5kIHRoZSIsciwib2YgdGhlIGRvbWFpbiBvZiB0aGUiLCJzZWNvbmQiLHQsImF4aXMuIl0uam9pbigiICIpfX19LHt9XSw3NDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtJTkNSRUFTSU5HOntDT0xPUjoiIzNEOTk3MCIsU1lNQk9MOiJcdTI1YjIifSxERUNSRUFTSU5HOntDT0xPUjoiI0ZGNDEzNiIsU1lNQk9MOiJcdTI1YmMifX19LHt9XSw3NDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtGT1JNQVRfTElOSzoiaHR0cHM6Ly9naXRodWIuY29tL2QzL2QzLWZvcm1hdC90cmVlL3YxLjQuNSNkMy1mb3JtYXQiLERBVEVfRk9STUFUX0xJTks6Imh0dHBzOi8vZ2l0aHViLmNvbS9kMy9kMy10aW1lLWZvcm1hdC90cmVlL3YyLjIuMyNsb2NhbGVfZm9ybWF0In19LHt9XSw3NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtDT01QQVJJU09OX09QUzpbIj0iLCIhPSIsIjwiLCI+PSIsIj4iLCI8PSJdLENPTVBBUklTT05fT1BTMjpbIj0iLCI8IiwiPj0iLCI+IiwiPD0iXSxJTlRFUlZBTF9PUFM6WyJbXSIsIigpIiwiWykiLCIoXSIsIl1bIiwiKSgiLCJdKCIsIilbIl0sU0VUX09QUzpbInt9IiwifXsiXSxDT05TVFJBSU5UX1JFRFVDVElPTjp7Ij0iOiI9IiwiPCI6IjwiLCI8PSI6IjwiLCI+IjoiPiIsIj49IjoiPiIsIltdIjoiW10iLCIoKSI6IltdIiwiWykiOiJbXSIsIihdIjoiW10iLCJdWyI6Il1bIiwiKSgiOiJdWyIsIl0oIjoiXVsiLCIpWyI6Il1bIn19fSx7fV0sNzQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17c29saWQ6W1tdLDBdLGRvdDpbWy41LDFdLDIwMF0sZGFzaDpbWy41LDFdLDUwXSxsb25nZGFzaDpbWy41LDFdLDEwXSxkYXNoZG90OltbLjUsLjYyNSwuODc1LDFdLDUwXSxsb25nZGFzaGRvdDpbWy41LC43LC44LDFdLDEwXX19LHt9XSw3NTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjaXJjbGU6Ilx1MjVjZiIsImNpcmNsZS1vcGVuIjoiXHUyNWNiIixzcXVhcmU6Ilx1MjVhMCIsInNxdWFyZS1vcGVuIjoiXHUyNWExIixkaWFtb25kOiJcdTI1YzYiLCJkaWFtb25kLW9wZW4iOiJcdTI1YzciLGNyb3NzOiIrIix4OiJcdTI3NGMifX0se31dLDc1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e1NIT1dfUExBQ0VIT0xERVI6MTAwLEhJREVfUExBQ0VIT0xERVI6MWUzLERFU0VMRUNURElNOi4yfX0se31dLDc1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0JBRE5VTTp2b2lkIDAsRlBfU0FGRToxZS00Kk51bWJlci5NQVhfVkFMVUUsT05FTUFYWUVBUjozMTYyMjRlNSxPTkVBVkdZRUFSOjMxNTU3NmU1LE9ORU1JTllFQVI6MzE1MzZlNixPTkVNQVhRVUFSVEVSOjc5NDg4ZTUsT05FQVZHUVVBUlRFUjo3ODg5NGU1LE9ORU1JTlFVQVJURVI6NzY4OTZlNSxPTkVNQVhNT05USDoyNjc4NGU1LE9ORUFWR01PTlRIOjI2Mjk4ZTUsT05FTUlOTU9OVEg6MjQxOTJlNSxPTkVXRUVLOjYwNDhlNSxPTkVEQVk6ODY0ZTUsT05FSE9VUjozNmU1LE9ORU1JTjo2ZTQsT05FU0VDOjFlMyxFUE9DSEpEOjI0NDA1ODcuNSxBTE1PU1RfRVFVQUw6Ljk5OTk5OSxMT0dfQ0xJUDoxMCxNSU5VU19TSUdOOiJcdTIyMTIifX0se31dLDc1MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLnhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3htbG5zLyIsci5zdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIixyLnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIixyLnN2Z0F0dHJzPXt4bWxuczpyLnN2ZywieG1sbnM6eGxpbmsiOnIueGxpbmt9fSx7fV0sNzU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IudmVyc2lvbj10KCIuL3ZlcnNpb24iKS52ZXJzaW9uLHQoIm5hdGl2ZS1wcm9taXNlLW9ubHkiKSx0KCIuLi9idWlsZC9wbG90Y3NzIik7Zm9yKHZhciBuPXQoIi4vcmVnaXN0cnkiKSxpPXIucmVnaXN0ZXI9bi5yZWdpc3RlcixhPXQoIi4vcGxvdF9hcGkiKSxvPU9iamVjdC5rZXlzKGEpLHM9MDtzPG8ubGVuZ3RoO3MrKyl7dmFyIGw9b1tzXTsiXyIhPT1sLmNoYXJBdCgwKSYmKHJbbF09YVtsXSksaSh7bW9kdWxlVHlwZToiYXBpTWV0aG9kIixuYW1lOmwsZm46YVtsXX0pfWkodCgiLi90cmFjZXMvc2NhdHRlciIpKSxpKFt0KCIuL2NvbXBvbmVudHMvbGVnZW5kIiksdCgiLi9jb21wb25lbnRzL2Z4IiksdCgiLi9jb21wb25lbnRzL2Fubm90YXRpb25zIiksdCgiLi9jb21wb25lbnRzL2Fubm90YXRpb25zM2QiKSx0KCIuL2NvbXBvbmVudHMvc2hhcGVzIiksdCgiLi9jb21wb25lbnRzL2ltYWdlcyIpLHQoIi4vY29tcG9uZW50cy91cGRhdGVtZW51cyIpLHQoIi4vY29tcG9uZW50cy9zbGlkZXJzIiksdCgiLi9jb21wb25lbnRzL3Jhbmdlc2xpZGVyIiksdCgiLi9jb21wb25lbnRzL3Jhbmdlc2VsZWN0b3IiKSx0KCIuL2NvbXBvbmVudHMvZ3JpZCIpLHQoIi4vY29tcG9uZW50cy9lcnJvcmJhcnMiKSx0KCIuL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHQoIi4vY29tcG9uZW50cy9jb2xvcmJhciIpLHQoIi4vY29tcG9uZW50cy9tb2RlYmFyIildKSxpKFt0KCIuL2xvY2FsZS1lbiIpLHQoIi4vbG9jYWxlLWVuLXVzIildKSx3aW5kb3cuUGxvdGx5TG9jYWxlcyYmQXJyYXkuaXNBcnJheSh3aW5kb3cuUGxvdGx5TG9jYWxlcykmJihpKHdpbmRvdy5QbG90bHlMb2NhbGVzKSxkZWxldGUgd2luZG93LlBsb3RseUxvY2FsZXMpLHIuSWNvbnM9dCgiLi9mb250cy9wbG90aWNvbiIpO3ZhciBjPXQoIi4vY29tcG9uZW50cy9meCIpLHU9dCgiLi9wbG90cy9wbG90cyIpO3IuUGxvdHM9e3Jlc2l6ZTp1LnJlc2l6ZSxncmFwaEpzb246dS5ncmFwaEpzb24sc2VuZERhdGFUb0Nsb3VkOnUuc2VuZERhdGFUb0Nsb3VkfSxyLkZ4PXtob3ZlcjpjLmhvdmVyLHVuaG92ZXI6Yy51bmhvdmVyLGxvbmVIb3ZlcjpjLmxvbmVIb3Zlcixsb25lVW5ob3ZlcjpjLmxvbmVVbmhvdmVyfSxyLlNuYXBzaG90PXQoIi4vc25hcHNob3QiKSxyLlBsb3RTY2hlbWE9dCgiLi9wbG90X2FwaS9wbG90X3NjaGVtYSIpfSx7Ii4uL2J1aWxkL3Bsb3Rjc3MiOjEsIi4vY29tcG9uZW50cy9hbm5vdGF0aW9ucyI6NjMwLCIuL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMzZCI6NjM1LCIuL2NvbXBvbmVudHMvY29sb3JiYXIiOjY0NSwiLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi9jb21wb25lbnRzL2Vycm9yYmFycyI6NjY3LCIuL2NvbXBvbmVudHMvZngiOjY3OSwiLi9jb21wb25lbnRzL2dyaWQiOjY4MywiLi9jb21wb25lbnRzL2ltYWdlcyI6Njg4LCIuL2NvbXBvbmVudHMvbGVnZW5kIjo2OTYsIi4vY29tcG9uZW50cy9tb2RlYmFyIjo3MDIsIi4vY29tcG9uZW50cy9yYW5nZXNlbGVjdG9yIjo3MTAsIi4vY29tcG9uZW50cy9yYW5nZXNsaWRlciI6NzE3LCIuL2NvbXBvbmVudHMvc2hhcGVzIjo3MzEsIi4vY29tcG9uZW50cy9zbGlkZXJzIjo3MzYsIi4vY29tcG9uZW50cy91cGRhdGVtZW51cyI6NzQyLCIuL2ZvbnRzL3Bsb3RpY29uIjo3NTUsIi4vbG9jYWxlLWVuIjo4MDcsIi4vbG9jYWxlLWVuLXVzIjo4MDYsIi4vcGxvdF9hcGkiOjgxMSwiLi9wbG90X2FwaS9wbG90X3NjaGVtYSI6ODE1LCIuL3Bsb3RzL3Bsb3RzIjo4OTAsIi4vcmVnaXN0cnkiOjkwNCwiLi9zbmFwc2hvdCI6OTA5LCIuL3RyYWNlcy9zY2F0dGVyIjoxMjAzLCIuL3ZlcnNpb24iOjEzNzcsIm5hdGl2ZS1wcm9taXNlLW9ubHkiOjQ1M31dLDc1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3VuZG86e3dpZHRoOjg1Ny4xLGhlaWdodDoxZTMscGF0aDoibTg1NyAzNTBxMC04Ny0zNC0xNjZ0LTkxLTEzNy0xMzctOTItMTY2LTM0cS05NiAwLTE4MyA0MXQtMTQ3IDExNHEtNCA2LTQgMTN0NSAxMWw3NiA3N3E2IDUgMTQgNSA5LTEgMTMtNyA0MS01MyAxMDAtODJ0MTI2LTI5cTU4IDAgMTEwIDIzdDkyIDYxIDYxIDkxIDIyIDExMS0yMiAxMTEtNjEgOTEtOTIgNjEtMTEwIDIzcS01NSAwLTEwNS0yMHQtOTAtNTdsNzctNzdxMTctMTYgOC0zOC0xMC0yMy0zMy0yM2gtMjUwcS0xNSAwLTI1IDExdC0xMSAyNXYyNTBxMCAyNCAyMiAzMyAyMiAxMCAzOS04bDcyLTcycTYwIDU3IDEzNyA4OHQxNTkgMzFxODcgMCAxNjYtMzR0MTM3LTkyIDkxLTEzNyAzNC0xNjZ6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxob21lOnt3aWR0aDo5MjguNixoZWlnaHQ6MWUzLHBhdGg6Im03ODYgMjk2di0yNjdxMC0xNS0xMS0yNnQtMjUtMTBoLTIxNHYyMTRoLTE0M3YtMjE0aC0yMTRxLTE1IDAtMjUgMTB0LTExIDI2djI2N3EwIDEgMCAydDAgMmwzMjEgMjY0IDMyMS0yNjRxMS0xIDEtNHogbTEyNCAzOWwtMzQtNDFxLTUtNS0xMi02aC0ycS03IDAtMTIgM2wtMzg2IDMyMi0zODYtMzIycS03LTQtMTMtNC03IDItMTIgN2wtMzUgNDFxLTQgNS0zIDEzdDYgMTJsNDAxIDMzNHExOCAxNSA0MiAxNXQ0My0xNWwxMzYtMTE0djEwOXEwIDggNSAxM3QxMyA1aDEwN3E4IDAgMTMtNXQ1LTEzdi0yMjdsMTIyLTEwMnE1LTUgNi0xMnQtNC0xM3oiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LCJjYW1lcmEtcmV0cm8iOnt3aWR0aDoxZTMsaGVpZ2h0OjFlMyxwYXRoOiJtNTE4IDM4NnEwIDgtNSAxM3QtMTMgNXEtMzcgMC02My0yN3QtMjYtNjNxMC04IDUtMTN0MTMtNSAxMiA1IDUgMTNxMCAyMyAxNiAzOHQzOCAxNnE4IDAgMTMgNXQ1IDEzeiBtMTI1LTczcTAtNTktNDItMTAxdC0xMDEtNDItMTAxIDQyLTQyIDEwMSA0MiAxMDEgMTAxIDQyIDEwMS00MiA0Mi0xMDF6IG0tNTcyLTMyMGg4NTh2NzFoLTg1OHYtNzF6IG02NDMgMzIwcTAgODktNjIgMTUydC0xNTIgNjItMTUxLTYyLTYzLTE1MiA2My0xNTEgMTUxLTYzIDE1MiA2MyA2MiAxNTF6IG0tNTcxIDM1OGgyMTR2NzJoLTIxNHYtNzJ6IG0tNzItMTA3aDg1OHYxNDNoLTQ2MmwtMzYtNzFoLTM2MHYtNzJ6IG05MjkgMTQzdi03MTRxMC0zMC0yMS01MXQtNTAtMjFoLTg1OHEtMjkgMC01MCAyMXQtMjEgNTF2NzE0cTAgMzAgMjEgNTF0NTAgMjFoODU4cTI5IDAgNTAtMjF0MjEtNTF6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSx6b29tYm94Ont3aWR0aDoxZTMsaGVpZ2h0OjFlMyxwYXRoOiJtMTAwMC0yNWwtMjUwIDI1MWM0MCA2MyA2MyAxMzggNjMgMjE4IDAgMjI0LTE4MiA0MDYtNDA3IDQwNi0yMjQgMC00MDYtMTgyLTQwNi00MDZzMTgzLTQwNiA0MDctNDA2YzgwIDAgMTU1IDIyIDIxOCA2MmwyNTAtMjUwIDEyNSAxMjV6IG0tODEyIDI1MGwwIDQzOCA0MzcgMCAwLTQzOC00MzcgMHogbTYyIDM3NWwzMTMgMCAwLTMxMi0zMTMgMCAwIDMxMnoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHBhbjp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTEwMDAgMzUwbC0xODcgMTg4IDAtMTI1LTI1MCAwIDAgMjUwIDEyNSAwLTE4OCAxODctMTg3LTE4NyAxMjUgMCAwLTI1MC0yNTAgMCAwIDEyNS0xODgtMTg4IDE4Ni0xODcgMCAxMjUgMjUyIDAgMC0yNTAtMTI1IDAgMTg3LTE4OCAxODggMTg4LTEyNSAwIDAgMjUwIDI1MCAwIDAtMTI2IDE4NyAxODh6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSx6b29tX3BsdXM6e3dpZHRoOjg3NSxoZWlnaHQ6MWUzLHBhdGg6Im0xIDc4N2wwLTg3NSA4NzUgMCAwIDg3NS04NzUgMHogbTY4Ny01MDBsLTE4NyAwIDAtMTg3LTEyNSAwIDAgMTg3LTE4OCAwIDAgMTI1IDE4OCAwIDAgMTg3IDEyNSAwIDAtMTg3IDE4NyAwIDAtMTI1eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sem9vbV9taW51czp7d2lkdGg6ODc1LGhlaWdodDoxZTMscGF0aDoibTAgNzg4bDAtODc2IDg3NSAwIDAgODc2LTg3NSAweiBtNjg4LTUwMGwtNTAwIDAgMCAxMjUgNTAwIDAgMC0xMjV6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxhdXRvc2NhbGU6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im0yNTAgODUwbC0xODcgMC02MyAwIDAtNjIgMC0xODggNjMgMCAwIDE4OCAxODcgMCAwIDYyeiBtNjg4IDBsLTE4OCAwIDAtNjIgMTg4IDAgMC0xODggNjIgMCAwIDE4OCAwIDYyLTYyIDB6IG0tODc1LTkzOGwwIDE4OC02MyAwIDAtMTg4IDAtNjIgNjMgMCAxODcgMCAwIDYyLTE4NyAweiBtODc1IDE4OGwwLTE4OC0xODggMCAwLTYyIDE4OCAwIDYyIDAgMCA2MiAwIDE4OC02MiAweiBtLTEyNSAxODhsLTEgMC05My05NC0xNTYgMTU2IDE1NiAxNTYgOTItOTMgMiAwIDAgMjUwLTI1MCAwIDAtMiA5My05Mi0xNTYtMTU2LTE1NiAxNTYgOTQgOTIgMCAyLTI1MCAwIDAtMjUwIDAgMCA5MyA5MyAxNTctMTU2LTE1Ny0xNTYtOTMgOTQgMCAwIDAtMjUwIDI1MCAwIDAgMC05NCA5MyAxNTYgMTU3IDE1Ni0xNTctOTMtOTMgMCAwIDI1MCAwIDAgMjUweiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sdG9vbHRpcF9iYXNpYzp7d2lkdGg6MTUwMCxoZWlnaHQ6MWUzLHBhdGg6Im0zNzUgNzI1bDAgMC0zNzUtMzc1IDM3NS0zNzQgMC0xIDExMjUgMCAwIDc1MC0xMTI1IDB6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSx0b29sdGlwX2NvbXBhcmU6e3dpZHRoOjExMjUsaGVpZ2h0OjFlMyxwYXRoOiJtMTg3IDc4NmwwIDItMTg3LTE4OCAxODgtMTg3IDAgMCA5MzcgMCAwIDM3My05MzggMHogbTAtNDk5bDAgMS0xODctMTg4IDE4OC0xODggMCAwIDkzNyAwIDAgMzc2LTkzOC0xeiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0scGxvdGx5bG9nbzp7d2lkdGg6MTU0MixoZWlnaHQ6MWUzLHBhdGg6Im0wLTEwaDE4MnYtMTQwaC0xODJ2MTQweiBtMjI4IDE0NmgxODN2LTI4NmgtMTgzdjI4NnogbTIyNSA3MTRoMTgydi0xMDAwaC0xODJ2MTAwMHogbTIyNS0yODVoMTgydi03MTVoLTE4MnY3MTV6IG0yMjUgMTQyaDE4M3YtODU3aC0xODN2ODU3eiBtMjMxLTQyOGgxODJ2LTQyOWgtMTgydjQyOXogbTIyNS0yOTFoMTgzdi0xMzhoLTE4M3YxMzh6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSwiei1heGlzIjp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTgzMyA1bC0xNyAxMDh2NDFsLTEzMC02NSAxMzAtNjZjMCAwIDAgMzggMCAzOSAwLTEgMzYtMTQgMzktMjUgNC0xNS02LTIyLTE2LTMwLTE1LTEyLTM5LTE2LTU2LTIwLTkwLTIyLTE4Ny0yMy0yNzktMjMtMjYxIDAtMzQxIDM0LTM1MyA1OSAzIDYwIDIyOCAxMTAgMjI4IDExMC0xNDAtOC0zNTEtMzUtMzUxLTExNiAwLTEyMCAyOTMtMTQyIDQ3NC0xNDIgMTU1IDAgNDc3IDIyIDQ3NyAxNDIgMCA1MC03NCA3OS0xNjMgOTZ6IG0tMzc0IDk0Yy01OC01LTk5LTIxLTk5LTQwIDAtMjQgNjUtNDMgMTQ0LTQzIDc5IDAgMTQzIDE5IDE0MyA0MyAwIDE5LTQyIDM0LTk4IDQwdjIxNmg4N2wtMTMyIDEzNS0xMzMtMTM1aDg4di0yMTZ6IG0xNjcgNTE1aC0xMzZ2MWMxNiAxNiAzMSAzNCA0NiA1Mmw4NCAxMDl2NTRoLTIzMHYtNzFoMTI0di0xYy0xNi0xNy0yOC0zMi00NC01MWwtODktMTE0di01MWgyNDV2NzJ6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSwiM2Rfcm90YXRlIjp7d2lkdGg6MWUzLGhlaWdodDoxZTMscGF0aDoibTkyMiA2NjBjLTUgNC05IDctMTQgMTEtMzU5IDI2My01ODAtMzEtNTgwLTMxbC0xMDIgMjggNTgtNDAwYzAgMSAxIDEgMiAyIDExOCAxMDggMzUxIDI0OSAzNTEgMjQ5cy02MiAyNy0xMDAgNDJjODggODMgMjIyIDE4MyAzNDcgMTIyIDE2LTggMzAtMTcgNDQtMjctMiAxLTQgMi02IDR6IG0zNi0zMjljMCAwIDY0IDIyOS04OCAyOTYtNjIgMjctMTI0IDE0LTE3NS0xMSAxNTctNzggMjI1LTIwOCAyNDktMjY2IDgtMTkgMTEtMzEgMTEtMzEgMiA1IDYgMTUgMTEgMzItNS0xMy04LTIwLTgtMjB6IG0tNzc1LTIzOWM3MC0zMSAxMTctNTAgMTk4LTMyLTEyMSA4MC0xOTkgMzQ2LTE5OSAzNDZsLTk2LTE1LTU4LTEyYzAgMCA1NS0yMjYgMTU1LTI4N3ogbTYwMyAxMzNsLTMxNy0xMzljMCAwIDQtNCAxOS0xNCA3LTUgMjQtMTUgMjQtMTVzLTE3Ny0xNDctMzg5IDRjMjM1LTI4NyA1MzYtMTEyIDUzNi0xMTJsMzEtMjIgMTAwIDI5OS00LTF6IG0tMjk4LTE1M2M2LTQgMTQtOSAyNC0xNSAwIDAtMTcgMTAtMjQgMTV6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxjYW1lcmE6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im01MDAgNDUwYy04MyAwLTE1MC02Ny0xNTAtMTUwIDAtODMgNjctMTUwIDE1MC0xNTAgODMgMCAxNTAgNjcgMTUwIDE1MCAwIDgzLTY3IDE1MC0xNTAgMTUweiBtNDAwIDE1MGgtMTIwYy0xNiAwLTM0IDEzLTM5IDI5bC0zMSA5M2MtNiAxNS0yMyAyOC00MCAyOGgtMzQwYy0xNiAwLTM0LTEzLTM5LTI4bC0zMS05NGMtNi0xNS0yMy0yOC00MC0yOGgtMTIwYy01NSAwLTEwMC00NS0xMDAtMTAwdi00NTBjMC01NSA0NS0xMDAgMTAwLTEwMGg4MDBjNTUgMCAxMDAgNDUgMTAwIDEwMHY0NTBjMCA1NS00NSAxMDAtMTAwIDEwMHogbS00MDAtNTUwYy0xMzggMC0yNTAgMTEyLTI1MCAyNTAgMCAxMzggMTEyIDI1MCAyNTAgMjUwIDEzOCAwIDI1MC0xMTIgMjUwLTI1MCAwLTEzOC0xMTItMjUwLTI1MC0yNTB6IG0zNjUgMzgwYy0xOSAwLTM1IDE2LTM1IDM1IDAgMTkgMTYgMzUgMzUgMzUgMTkgMCAzNS0xNiAzNS0zNSAwLTE5LTE2LTM1LTM1LTM1eiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgLTEgMCA4NTApIn0sbW92aWU6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im05MzggNDEzbC0xODgtMTI1YzAgMzctMTcgNzEtNDQgOTQgNjQgMzggMTA3IDEwNyAxMDcgMTg3IDAgMTIxLTk4IDIxOS0yMTkgMjE5LTEyMSAwLTIxOS05OC0yMTktMjE5IDAtNjEgMjUtMTE3IDY2LTE1NmgtMTE1YzMwIDMzIDQ5IDc2IDQ5IDEyNSAwIDEwMy04NCAxODctMTg3IDE4N3MtMTg4LTg0LTE4OC0xODdjMC01NyAyNi0xMDcgNjUtMTQxLTM4LTIyLTY1LTYyLTY1LTEwOXYtMjUwYzAtNzAgNTYtMTI2IDEyNS0xMjZoNTAwYzY5IDAgMTI1IDU2IDEyNSAxMjZsMTg4LTEyNmMzNCAwIDYyIDI4IDYyIDYzdjM3NWMwIDM1LTI4IDYzLTYyIDYzeiBtLTc1MCAwYy02OSAwLTEyNSA1Ni0xMjUgMTI1czU2IDEyNSAxMjUgMTI1IDEyNS01NiAxMjUtMTI1LTU2LTEyNS0xMjUtMTI1eiBtNDA2LTFjLTg3IDAtMTU3IDcwLTE1NyAxNTcgMCA4NiA3MCAxNTYgMTU3IDE1NnMxNTYtNzAgMTU2LTE1Ni03MC0xNTctMTU2LTE1N3oiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIC0xIDAgODUwKSJ9LHF1ZXN0aW9uOnt3aWR0aDo4NTcuMSxoZWlnaHQ6MWUzLHBhdGg6Im01MDAgODJ2MTA3cTAgOC01IDEzdC0xMyA1aC0xMDdxLTggMC0xMy01dC01LTEzdi0xMDdxMC04IDUtMTN0MTMtNWgxMDdxOCAwIDEzIDV0NSAxM3ogbTE0MyAzNzVxMCA0OS0zMSA5MXQtNzcgNjUtOTUgMjNxLTEzNiAwLTIwNy0xMTktOS0xNCA0LTI0bDc0LTU1cTQtNCAxMC00IDkgMCAxNCA3IDMwIDM4IDQ4IDUxIDE5IDE0IDQ4IDE0IDI3IDAgNDgtMTV0MjEtMzNxMC0yMS0xMS0zNHQtMzgtMjVxLTM1LTE2LTY1LTQ4dC0yOS03MHYtMjBxMC04IDUtMTN0MTMtNWgxMDdxOCAwIDEzIDV0NSAxM3EwIDEwIDEyIDI3dDMwIDI4cTE4IDEwIDI4IDE2dDI1IDE5IDI1IDI3IDE2IDM0IDcgNDV6IG0yMTQtMTA3cTAtMTE3LTU3LTIxNXQtMTU2LTE1Ni0yMTUtNTgtMjE2IDU4LTE1NSAxNTYtNTggMjE1IDU4IDIxNSAxNTUgMTU2IDIxNiA1OCAyMTUtNTggMTU2LTE1NiA1Ny0yMTV6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxkaXNrOnt3aWR0aDo4NTcuMSxoZWlnaHQ6MWUzLHBhdGg6Im0yMTQtN2g0Mjl2MjE0aC00Mjl2LTIxNHogbTUwMCAwaDcydjUwMHEwIDgtNiAyMXQtMTEgMjBsLTE1NyAxNTZxLTUgNi0xOSAxMnQtMjIgNXYtMjMycTAtMjItMTUtMzh0LTM4LTE2aC0zMjJxLTIyIDAtMzcgMTZ0LTE2IDM4djIzMmgtNzJ2LTcxNGg3MnYyMzJxMCAyMiAxNiAzOHQzNyAxNmg0NjVxMjIgMCAzOC0xNnQxNS0zOHYtMjMyeiBtLTIxNCA1MTh2MTc4cTAgOC01IDEzdC0xMyA1aC0xMDdxLTcgMC0xMy01dC01LTEzdi0xNzhxMC04IDUtMTN0MTMtNWgxMDdxNyAwIDEzIDV0NSAxM3ogbTM1Ny0xOHYtNTE4cTAtMjItMTUtMzh0LTM4LTE2aC03NTBxLTIzIDAtMzggMTZ0LTE2IDM4djc1MHEwIDIyIDE2IDM4dDM4IDE2aDUxN3EyMyAwIDUwLTEydDQyLTI2bDE1Ni0xNTdxMTYtMTUgMjctNDJ0MTEtNDl6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxkcmF3b3BlbnBhdGg6e3dpZHRoOjcwLGhlaWdodDo3MCxwYXRoOiJNMzMuMjEsODUuNjVhNy4zMSw3LjMxLDAsMCwxLTIuNTktLjQ4Yy04LjE2LTMuMTEtOS4yNy0xOS44LTkuODgtNDEuMy0uMS0zLjU4LS4xOS02LjY4LS4zNS05LS4xNS0yLjEtLjY3LTMuNDgtMS40My0zLjc5LTIuMTMtLjg4LTcuOTEsMi4zMi0xMiw1Ljg2TDMsMzIuMzhjMS44Ny0xLjY0LDExLjU1LTkuNjYsMTguMjctNi45LDIuMTMuODcsNC43NSwzLjE0LDUuMTcsOSwuMTcsMi40My4yNiw1LjU5LjM2LDkuMjVhMjI0LjE3LDIyNC4xNywwLDAsMCwxLjUsMjMuNGMxLjU0LDEwLjc2LDQsMTIuMjIsNC40OCwxMi40Ljg0LjMyLDIuNzktLjQ2LDUuNzYtMy41OUw0Myw4MC4wN0M0MS41Myw4MS41NywzNy42OCw4NS42NCwzMy4yMSw4NS42NVpNNzQuODEsNjlhMTEuMzQsMTEuMzQsMCwwLDAsNi4wOS02LjcyTDg3LjI2LDQ0LjUsNzQuNzIsMzIsNTYuOSwzOC4zNWMtMi4zNy44Ni01LjU3LDMuNDItNi42MSw2TDM4LjY1LDcyLjE0bDguNDIsOC40M1pNNTUsNDYuMjdhNy45MSw3LjkxLDAsMCwxLDMuNjQtMy4xN2wxNC44LTUuMyw4LDhMNzYuMTEsNjAuNmwtLjA2LjE5YTYuMzcsNi4zNywwLDAsMS0zLDMuNDNMNDguMjUsNzQuNTksNDQuNjIsNzFabTE2LjU3LDcuODJBNi45LDYuOSwwLDEsMCw2NC42NCw2MSw2LjkxLDYuOTEsMCwwLDAsNzEuNTQsNTQuMDlabS00LjA1LDBhMi44NSwyLjg1LDAsMSwxLTIuODUtMi44NUEyLjg2LDIuODYsMCwwLDEsNjcuNDksNTQuMDlabS00LjEzLDUuMjJMNjAuNSw1Ni40NSw0NC4yNiw3Mi43bDIuODYsMi44NlpNOTcuODMsMzUuNjcsODQuMTQsMjJsLTguNTcsOC41N0w4OS4yNiw0NC4yNFptLTEzLjY5LTgsOCw4LTIuODUsMi44NS04LThaIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAxIC0xNSAtMTUpIn0sZHJhd2Nsb3NlZHBhdGg6e3dpZHRoOjkwLGhlaWdodDo5MCxwYXRoOiJNODguNDEsMjEuMTJhMjYuNTYsMjYuNTYsMCwwLDAtMzYuMTgsMGwtMi4wNywyLTIuMDctMmEyNi41NywyNi41NywwLDAsMC0zNi4xOCwwLDIzLjc0LDIzLjc0LDAsMCwwLDAsMzQuOEw0OCw5MC4xMmEzLjIyLDMuMjIsMCwwLDAsNC40MiwwbDM2LTM0LjIxYTIzLjczLDIzLjczLDAsMCwwLDAtMzQuNzlaTTg0LDUxLjI0LDUwLjE2LDgzLjM1LDE2LjM1LDUxLjI1YTE3LjI4LDE3LjI4LDAsMCwxLDAtMjUuNDcsMjAsMjAsMCwwLDEsMjcuMywwbDQuMjksNC4wN2EzLjIzLDMuMjMsMCwwLDAsNC40NCwwbDQuMjktNC4wN2EyMCwyMCwwLDAsMSwyNy4zLDAsMTcuMjcsMTcuMjcsMCwwLDEsMCwyNS40NlpNNjYuNzYsNDcuNjhoLTMzdjYuOTFoMzNaTTUzLjM1LDM1SDQ2LjQ0VjY4aDYuOTFaIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAxIC01IC01KSJ9LGxhc3NvOnt3aWR0aDoxMDMxLGhlaWdodDoxZTMscGF0aDoibTEwMTggNTM4Yy0zNiAyMDctMjkwIDMzNi01NjggMjg2LTI3Ny00OC00NzMtMjU2LTQzNi00NjMgMTAtNTcgMzYtMTA4IDc2LTE1MS0xMy02NiAxMS0xMzcgNjgtMTgzIDM0LTI4IDc1LTQxIDExNC00MmwtNTUtNzAgMCAwYy0yLTEtMy0yLTQtMy0xMC0xNC04LTM0IDUtNDUgMTQtMTEgMzQtOCA0NSA0IDEgMSAyIDMgMiA1bDAgMCAxMTMgMTQwYzE2IDExIDMxIDI0IDQ1IDQwIDQgMyA2IDcgOCAxMSA0OC0zIDEwMCAwIDE1MSA5IDI3OCA0OCA0NzMgMjU1IDQzNiA0NjJ6IG0tNjI0LTM3OWMtODAgMTQtMTQ5IDQ4LTE5NyA5NiA0MiA0MiAxMDkgNDcgMTU2IDkgMzMtMjYgNDctNjYgNDEtMTA1eiBtLTE4Ny03NGMtMTkgMTYtMzMgMzctMzkgNjAgNTAtMzIgMTA5LTU1IDE3NC02OC00Mi0yNS05NS0yNC0xMzUgOHogbTM2MCA3NWMtMzQtNy02OS05LTEwMi04IDggNjItMTYgMTI4LTY4IDE3MC03MyA1OS0xNzUgNTQtMjQ0LTUtOSAyMC0xNiA0MC0yMCA2MS0yOCAxNTkgMTIxIDMxNyAzMzMgMzU0czQwNy02MCA0MzQtMjE3YzI4LTE1OS0xMjEtMzE4LTMzMy0zNTV6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxzZWxlY3Rib3g6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Im0wIDg1MGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NiAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg1IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODYgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbS04NTctMjg2bDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtODU3IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0tODU3LTI4NWwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTg1NyAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtLTg1Ny0yODZsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6IG0yODYgMGwwLTE0MyAxNDMgMCAwIDE0My0xNDMgMHogbTI4NSAwbDAtMTQzIDE0MyAwIDAgMTQzLTE0MyAweiBtMjg2IDBsMC0xNDMgMTQzIDAgMCAxNDMtMTQzIDB6Iix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAtMSAwIDg1MCkifSxkcmF3bGluZTp7d2lkdGg6NzAsaGVpZ2h0OjcwLHBhdGg6Ik02MC42NCw2Mi4zYTExLjI5LDExLjI5LDAsMCwwLDYuMDktNi43Mmw2LjM1LTE3LjcyTDYwLjU0LDI1LjMxbC0xNy44Miw2LjRjLTIuMzYuODYtNS41NywzLjQxLTYuNiw2TDI0LjQ4LDY1LjVsOC40Miw4LjQyWk00MC43OSwzOS42M2E3Ljg5LDcuODksMCwwLDEsMy42NS0zLjE3bDE0Ljc5LTUuMzEsOCw4TDYxLjk0LDU0bC0uMDYuMTlhNi40NCw2LjQ0LDAsMCwxLTMsMy40M0wzNC4wNyw2OGwtMy42Mi0zLjYzWm0xNi41Nyw3LjgxYTYuOSw2LjksMCwxLDAtNi44OSw2LjlBNi45LDYuOSwwLDAsMCw1Ny4zNiw0Ny40NFptLTQsMGEyLjg2LDIuODYsMCwxLDEtMi44NS0yLjg1QTIuODYsMi44NiwwLDAsMSw1My4zMiw0Ny40NFptLTQuMTMsNS4yMkw0Ni4zMyw0OS44LDMwLjA4LDY2LjA1bDIuODYsMi44NlpNODMuNjUsMjksNzAsMTUuMzQsNjEuNCwyMy45LDc1LjA5LDM3LjU5Wk03MCwyMS4wNmw4LDgtMi44NCwyLjg1LTgtOFpNODcsODAuNDlIMTAuNjdWODdIODdaIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAxIC0xNSAtMTUpIn0sZHJhd3JlY3Q6e3dpZHRoOjgwLGhlaWdodDo4MCxwYXRoOiJNNzgsMjJWNzlIMjFWMjJINzhtOS05SDEyVjg4SDg3VjEzWk02OCw0Ni4yMkgzMVY1NEg2OFpNNTMsMzJINDUuMjJWNjlINTNaIix0cmFuc2Zvcm06Im1hdHJpeCgxIDAgMCAxIC0xMCAtMTApIn0sZHJhd2NpcmNsZTp7d2lkdGg6ODAsaGVpZ2h0OjgwLHBhdGg6Ik01MCw4NC43MkMyNi44NCw4NC43Miw4LDY5LjI4LDgsNTAuM1MyNi44NCwxNS44Nyw1MCwxNS44Nyw5MiwzMS4zMSw5Miw1MC4zLDczLjE2LDg0LjcyLDUwLDg0LjcyWm0wLTYwLjU5Yy0xOC42LDAtMzMuNzQsMTEuNzQtMzMuNzQsMjYuMTdTMzEuNCw3Ni40Niw1MCw3Ni40Niw4My43NCw2NC43Miw4My43NCw1MC4zLDY4LjYsMjQuMTMsNTAsMjQuMTNabTE3LjE1LDIyaC0zNHY3LjExaDM0Wm0tMTMuOC0xM0g0Ni4yNHYzNGg3LjExWiIsdHJhbnNmb3JtOiJtYXRyaXgoMSAwIDAgMSAtMTAgLTEwKSJ9LGVyYXNlc2hhcGU6e3dpZHRoOjgwLGhlaWdodDo4MCxwYXRoOiJNODIuNzcsNzhIMzEuODVMNiw0OS41NywzMS44NSwyMS4xNEg4Mi43N2E4LjcyLDguNzIsMCwwLDEsOC42NSw4Ljc3VjY5LjI0QTguNzIsOC43MiwwLDAsMSw4Mi43Nyw3OFpNMzUuNDYsNjkuODRIODIuNzdhLjU3LjU3LDAsMCwwLC40OS0uNlYyOS45MWEuNTcuNTcsMCwwLDAtLjQ5LS42MUgzNS40NkwxNyw0OS41N1ptMzIuNjgtMzQuNy0yNCwyNCw1LDUsMjQtMjRabS0xOSwuNTMtNSw1LDI0LDI0LDUtNVoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIDEgLTEwIC0xMCkifSxzcGlrZWxpbmU6e3dpZHRoOjFlMyxoZWlnaHQ6MWUzLHBhdGg6Ik01MTIgNDA5YzAtNTctNDYtMTA0LTEwMy0xMDQtNTcgMC0xMDQgNDctMTA0IDEwNCAwIDU3IDQ3IDEwMyAxMDQgMTAzIDU3IDAgMTAzLTQ2IDEwMy0xMDN6IG0tMzI3LTM5bDkyIDAgMCA5Mi05MiAweiBtLTE4NSAwbDkyIDAgMCA5Mi05MiAweiBtMzcwLTE4Nmw5MiAwIDAgOTMtOTIgMHogbTAtMTg0bDkyIDAgMCA5Mi05MiAweiIsdHJhbnNmb3JtOiJtYXRyaXgoMS41IDAgMCAtMS41IDAgODUwKSJ9LHBlbmNpbDp7d2lkdGg6MTc5MixoZWlnaHQ6MTc5MixwYXRoOiJNNDkxIDE1MzZsOTEtOTEtMjM1LTIzNS05MSA5MXYxMDdoMTI4djEyOGgxMDd6bTUyMy05MjhxMC0yMi0yMi0yMi0xMCAwLTE3IDdsLTU0MiA1NDJxLTcgNy03IDE3IDAgMjIgMjIgMjIgMTAgMCAxNy03bDU0Mi01NDJxNy03IDctMTd6bS01NC0xOTJsNDE2IDQxNi04MzIgODMyaC00MTZ2LTQxNnptNjgzIDk2cTAgNTMtMzcgOTBsLTE2NiAxNjYtNDE2LTQxNiAxNjYtMTY1cTM2LTM4IDkwLTM4IDUzIDAgOTEgMzhsMjM1IDIzNHEzNyAzOSAzNyA5MXoiLHRyYW5zZm9ybToibWF0cml4KDEgMCAwIDEgMCAxKSJ9LG5ld3Bsb3RseWxvZ286e25hbWU6Im5ld3Bsb3RseWxvZ28iLHN2ZzoiPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZpZXdCb3g9JzAgMCAxMzIgMTMyJz48ZGVmcz48c3R5bGU+LmNscy0xIHtmaWxsOiAjM2Y0Zjc1O30gLmNscy0yIHtmaWxsOiAjODBjZmJlO30gLmNscy0zIHtmaWxsOiAjZmZmO308L3N0eWxlPjwvZGVmcz48dGl0bGU+cGxvdGx5LWxvZ29tYXJrPC90aXRsZT48ZyBpZD0nc3ltYm9sJz48cmVjdCBjbGFzcz0nY2xzLTEnIHdpZHRoPScxMzInIGhlaWdodD0nMTMyJyByeD0nNicgcnk9JzYnLz48Y2lyY2xlIGNsYXNzPSdjbHMtMicgY3g9Jzc4JyBjeT0nNTQnIHI9JzYnLz48Y2lyY2xlIGNsYXNzPSdjbHMtMicgY3g9JzEwMicgY3k9JzMwJyByPSc2Jy8+PGNpcmNsZSBjbGFzcz0nY2xzLTInIGN4PSc3OCcgY3k9JzMwJyByPSc2Jy8+PGNpcmNsZSBjbGFzcz0nY2xzLTInIGN4PSc1NCcgY3k9JzMwJyByPSc2Jy8+PGNpcmNsZSBjbGFzcz0nY2xzLTInIGN4PSczMCcgY3k9JzMwJyByPSc2Jy8+PGNpcmNsZSBjbGFzcz0nY2xzLTInIGN4PSczMCcgY3k9JzU0JyByPSc2Jy8+PHBhdGggY2xhc3M9J2Nscy0zJyBkPSdNMzAsNzJhNiw2LDAsMCwwLTYsNnYyNGE2LDYsMCwwLDAsMTIsMFY3OEE2LDYsMCwwLDAsMzAsNzJaJy8+PHBhdGggY2xhc3M9J2Nscy0zJyBkPSdNNzgsNzJhNiw2LDAsMCwwLTYsNnYyNGE2LDYsMCwwLDAsMTIsMFY3OEE2LDYsMCwwLDAsNzgsNzJaJy8+PHBhdGggY2xhc3M9J2Nscy0zJyBkPSdNNTQsNDhhNiw2LDAsMCwwLTYsNnY0OGE2LDYsMCwwLDAsMTIsMFY1NEE2LDYsMCwwLDAsNTQsNDhaJy8+PHBhdGggY2xhc3M9J2Nscy0zJyBkPSdNMTAyLDQ4YTYsNiwwLDAsMC02LDZ2NDhhNiw2LDAsMCwwLDEyLDBWNTRBNiw2LDAsMCwwLDEwMiw0OFonLz48L2c+PC9zdmc+In19fSx7fV0sNzU2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3IuaXNMZWZ0QW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJsZWZ0Ij09PXQueGFuY2hvcnx8ImF1dG8iPT09dC54YW5jaG9yJiZ0Lng8PTEvM30sci5pc0NlbnRlckFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4iY2VudGVyIj09PXQueGFuY2hvcnx8ImF1dG8iPT09dC54YW5jaG9yJiZ0Lng+MS8zJiZ0Lng8Mi8zfSxyLmlzUmlnaHRBbmNob3I9ZnVuY3Rpb24odCl7cmV0dXJuInJpZ2h0Ij09PXQueGFuY2hvcnx8ImF1dG8iPT09dC54YW5jaG9yJiZ0Lng+PTIvM30sci5pc1RvcEFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4idG9wIj09PXQueWFuY2hvcnx8ImF1dG8iPT09dC55YW5jaG9yJiZ0Lnk+PTIvM30sci5pc01pZGRsZUFuY2hvcj1mdW5jdGlvbih0KXtyZXR1cm4ibWlkZGxlIj09PXQueWFuY2hvcnx8ImF1dG8iPT09dC55YW5jaG9yJiZ0Lnk+MS8zJiZ0Lnk8Mi8zfSxyLmlzQm90dG9tQW5jaG9yPWZ1bmN0aW9uKHQpe3JldHVybiJib3R0b20iPT09dC55YW5jaG9yfHwiYXV0byI9PT10LnlhbmNob3ImJnQueTw9MS8zfX0se31dLDc1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL21vZCIpLGk9bi5tb2QsYT1uLm1vZEhhbGYsbz1NYXRoLlBJLHM9MipvO2Z1bmN0aW9uIGwodCl7cmV0dXJuIE1hdGguYWJzKHRbMV0tdFswXSk+cy0xZS0xNH1mdW5jdGlvbiBjKHQsZSl7cmV0dXJuIGEoZS10LHMpfWZ1bmN0aW9uIHUodCxlKXtpZihsKGUpKXJldHVybiEwO3ZhciByLG47ZVswXTxlWzFdPyhyPWVbMF0sbj1lWzFdKToocj1lWzFdLG49ZVswXSksKHI9aShyLHMpKT4obj1pKG4scykpJiYobis9cyk7dmFyIGE9aSh0LHMpLG89YStzO3JldHVybiBhPj1yJiZhPD1ufHxvPj1yJiZvPD1ufWZ1bmN0aW9uIGYodCxlLHIsbixpLGEsYyl7aT1pfHwwLGE9YXx8MDt2YXIgdSxmLGgscCxkLG09bChbcixuXSk7ZnVuY3Rpb24gZyh0LGUpe3JldHVyblt0Kk1hdGguY29zKGUpK2ksYS10Kk1hdGguc2luKGUpXX1tPyh1PTAsZj1vLGg9cyk6cjxuPyh1PXIsaD1uKToodT1uLGg9ciksdDxlPyhwPXQsZD1lKToocD1lLGQ9dCk7dmFyIHYseT1NYXRoLmFicyhoLXUpPD1vPzA6MTtmdW5jdGlvbiB4KHQsZSxyKXtyZXR1cm4iQSIrW3QsdF0rIiAiK1swLHkscl0rIiAiK2codCxlKX1yZXR1cm4gbT92PW51bGw9PT1wPyJNIitnKGQsdSkreChkLGYsMCkreChkLGgsMCkrIloiOiJNIitnKHAsdSkreChwLGYsMCkreChwLGgsMCkrIlpNIitnKGQsdSkreChkLGYsMSkreChkLGgsMSkrIloiOm51bGw9PT1wPyh2PSJNIitnKGQsdSkreChkLGgsMCksYyYmKHYrPSJMMCwwWiIpKTp2PSJNIitnKHAsdSkrIkwiK2coZCx1KSt4KGQsaCwwKSsiTCIrZyhwLGgpK3gocCx1LDEpKyJaIix2fWUuZXhwb3J0cz17ZGVnMnJhZDpmdW5jdGlvbih0KXtyZXR1cm4gdC8xODAqb30scmFkMmRlZzpmdW5jdGlvbih0KXtyZXR1cm4gdC9vKjE4MH0sYW5nbGVEZWx0YTpjLGFuZ2xlRGlzdDpmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLmFicyhjKHQsZSkpfSxpc0Z1bGxDaXJjbGU6bCxpc0FuZ2xlSW5zaWRlU2VjdG9yOnUsaXNQdEluc2lkZVNlY3RvcjpmdW5jdGlvbih0LGUscixuKXtyZXR1cm4hIXUoZSxuKSYmKHJbMF08clsxXT8oaT1yWzBdLGE9clsxXSk6KGk9clsxXSxhPXJbMF0pLHQ+PWkmJnQ8PWEpO3ZhciBpLGF9LHBhdGhBcmM6ZnVuY3Rpb24odCxlLHIsbixpKXtyZXR1cm4gZihudWxsLHQsZSxyLG4saSwwKX0scGF0aFNlY3RvcjpmdW5jdGlvbih0LGUscixuLGkpe3JldHVybiBmKG51bGwsdCxlLHIsbixpLDEpfSxwYXRoQW5udWx1czpmdW5jdGlvbih0LGUscixuLGksYSl7cmV0dXJuIGYodCxlLHIsbixpLGEsMSl9fX0seyIuL21vZCI6NzgzfV0sNzU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPUFycmF5LmlzQXJyYXksaT0idW5kZWZpbmVkIiE9dHlwZW9mIEFycmF5QnVmZmVyJiZBcnJheUJ1ZmZlci5pc1ZpZXc/QXJyYXlCdWZmZXI6e2lzVmlldzpmdW5jdGlvbigpe3JldHVybiExfX0sYT0idW5kZWZpbmVkIj09dHlwZW9mIERhdGFWaWV3P2Z1bmN0aW9uKCl7fTpEYXRhVmlldztmdW5jdGlvbiBvKHQpe3JldHVybiBpLmlzVmlldyh0KSYmISh0IGluc3RhbmNlb2YgYSl9ZnVuY3Rpb24gcyh0KXtyZXR1cm4gbih0KXx8byh0KX1mdW5jdGlvbiBsKHQsZSxyKXtpZihzKHQpKXtpZihzKHRbMF0pKXtmb3IodmFyIG49cixpPTA7aTx0Lmxlbmd0aDtpKyspbj1lKG4sdFtpXS5sZW5ndGgpO3JldHVybiBufXJldHVybiB0Lmxlbmd0aH1yZXR1cm4gMH1yLmlzVHlwZWRBcnJheT1vLHIuaXNBcnJheU9yVHlwZWRBcnJheT1zLHIuaXNBcnJheTFEPWZ1bmN0aW9uKHQpe3JldHVybiFzKHRbMF0pfSxyLmVuc3VyZUFycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odCl8fCh0PVtdKSx0Lmxlbmd0aD1lLHR9LHIuY29uY2F0PWZ1bmN0aW9uKCl7dmFyIHQsZSxyLGksYSxvLHMsbCxjPVtdLHU9ITAsZj0wO2ZvcihyPTA7cjxhcmd1bWVudHMubGVuZ3RoO3IrKykobz0oaT1hcmd1bWVudHNbcl0pLmxlbmd0aCkmJihlP2MucHVzaChpKTooZT1pLGE9byksbihpKT90PSExOih1PSExLGY/dCE9PWkuY29uc3RydWN0b3ImJih0PSExKTp0PWkuY29uc3RydWN0b3IpLGYrPW8pO2lmKCFmKXJldHVybltdO2lmKCFjLmxlbmd0aClyZXR1cm4gZTtpZih1KXJldHVybiBlLmNvbmNhdC5hcHBseShlLGMpO2lmKHQpe2Zvcigocz1uZXcgdChmKSkuc2V0KGUpLHI9MDtyPGMubGVuZ3RoO3IrKylpPWNbcl0scy5zZXQoaSxhKSxhKz1pLmxlbmd0aDtyZXR1cm4gc31mb3Iocz1uZXcgQXJyYXkoZiksbD0wO2w8ZS5sZW5ndGg7bCsrKXNbbF09ZVtsXTtmb3Iocj0wO3I8Yy5sZW5ndGg7cisrKXtmb3IoaT1jW3JdLGw9MDtsPGkubGVuZ3RoO2wrKylzW2ErbF09aVtsXTthKz1sfXJldHVybiBzfSxyLm1heFJvd0xlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gbCh0LE1hdGgubWF4LDApfSxyLm1pblJvd0xlbmd0aD1mdW5jdGlvbih0KXtyZXR1cm4gbCh0LE1hdGgubWluLDEvMCl9fSx7fV0sNzU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGE9L15bJyIlLCQjXHMnXSt8WywgXXxbJyIlLCQjXHMnXSskL2c7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmKHQ9dC5yZXBsYWNlKGEsIiIpKSxuKHQpP051bWJlcih0KTppfX0seyIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw3NjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7ZS5fZ2xjYW52YXMmJmUuX2dsY2FudmFzLnNpemUoKSYmZS5fZ2xjYW52YXMuZWFjaCgoZnVuY3Rpb24odCl7dC5yZWdsJiZ0LnJlZ2wuY2xlYXIoe2NvbG9yOiEwLGRlcHRoOiEwfSl9KSl9fSx7fV0sNzYxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt0Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyJiYod2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoInJlc2l6ZSIsdC5fcmVzcG9uc2l2ZUNoYXJ0SGFuZGxlciksZGVsZXRlIHQuX3Jlc3BvbnNpdmVDaGFydEhhbmRsZXIpfX0se31dLDc2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgidGlueWNvbG9yMiIpLGE9dCgiLi4vcGxvdHMvYXR0cmlidXRlcyIpLG89dCgiLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL3NjYWxlcyIpLHM9dCgiLi4vY29tcG9uZW50cy9jb2xvciIpLGw9dCgiLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyIpLkRFU0VMRUNURElNLGM9dCgiLi9uZXN0ZWRfcHJvcGVydHkiKSx1PXQoIi4vcmVnZXgiKS5jb3VudGVyLGY9dCgiLi9tb2QiKS5tb2RIYWxmLGg9dCgiLi9hcnJheSIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZnVuY3Rpb24gcCh0LGUpe3ZhciBuPXIudmFsT2JqZWN0TWV0YVtlLnZhbFR5cGVdO2lmKGUuYXJyYXlPayYmaCh0KSlyZXR1cm4hMDtpZihuLnZhbGlkYXRlRnVuY3Rpb24pcmV0dXJuIG4udmFsaWRhdGVGdW5jdGlvbih0LGUpO3ZhciBpPXt9LGE9aSxvPXtzZXQ6ZnVuY3Rpb24odCl7YT10fX07cmV0dXJuIG4uY29lcmNlRnVuY3Rpb24odCxvLGksZSksYSE9PWl9ci52YWxPYmplY3RNZXRhPXtkYXRhX2FycmF5Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7aCh0KT9lLnNldCh0KTp2b2lkIDAhPT1yJiZlLnNldChyKX19LGVudW1lcmF0ZWQ6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe24uY29lcmNlTnVtYmVyJiYodD0rdCksLTE9PT1uLnZhbHVlcy5pbmRleE9mKHQpP2Uuc2V0KHIpOmUuc2V0KHQpfSx2YWxpZGF0ZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSl7ZS5jb2VyY2VOdW1iZXImJih0PSt0KTtmb3IodmFyIHI9ZS52YWx1ZXMsbj0wO248ci5sZW5ndGg7bisrKXt2YXIgaT1TdHJpbmcocltuXSk7aWYoIi8iPT09aS5jaGFyQXQoMCkmJiIvIj09PWkuY2hhckF0KGkubGVuZ3RoLTEpKXtpZihuZXcgUmVnRXhwKGkuc3Vic3RyKDEsaS5sZW5ndGgtMikpLnRlc3QodCkpcmV0dXJuITB9ZWxzZSBpZih0PT09cltuXSlyZXR1cm4hMH1yZXR1cm4hMX19LGJvb2xlYW46e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyKXshMD09PXR8fCExPT09dD9lLnNldCh0KTplLnNldChyKX19LG51bWJlcjp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIsaSl7IW4odCl8fHZvaWQgMCE9PWkubWluJiZ0PGkubWlufHx2b2lkIDAhPT1pLm1heCYmdD5pLm1heD9lLnNldChyKTplLnNldCgrdCl9fSxpbnRlZ2VyOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixpKXt0JTF8fCFuKHQpfHx2b2lkIDAhPT1pLm1pbiYmdDxpLm1pbnx8dm9pZCAwIT09aS5tYXgmJnQ+aS5tYXg/ZS5zZXQocik6ZS5zZXQoK3QpfX0sc3RyaW5nOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscixuKXtpZigic3RyaW5nIiE9dHlwZW9mIHQpe3ZhciBpPSJudW1iZXIiPT10eXBlb2YgdDshMCE9PW4uc3RyaWN0JiZpP2Uuc2V0KFN0cmluZyh0KSk6ZS5zZXQocil9ZWxzZSBuLm5vQmxhbmsmJiF0P2Uuc2V0KHIpOmUuc2V0KHQpfX0sY29sb3I6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyKXtpKHQpLmlzVmFsaWQoKT9lLnNldCh0KTplLnNldChyKX19LGNvbG9ybGlzdDp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpe0FycmF5LmlzQXJyYXkodCkmJnQubGVuZ3RoJiZ0LmV2ZXJ5KChmdW5jdGlvbih0KXtyZXR1cm4gaSh0KS5pc1ZhbGlkKCl9KSk/ZS5zZXQodCk6ZS5zZXQocil9fSxjb2xvcnNjYWxlOntjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7ZS5zZXQoby5nZXQodCxyKSl9fSxhbmdsZTp7Y29lcmNlRnVuY3Rpb246ZnVuY3Rpb24odCxlLHIpeyJhdXRvIj09PXQ/ZS5zZXQoImF1dG8iKTpuKHQpP2Uuc2V0KGYoK3QsMzYwKSk6ZS5zZXQocil9fSxzdWJwbG90aWQ6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW4ucmVnZXh8fHUocik7InN0cmluZyI9PXR5cGVvZiB0JiZpLnRlc3QodCk/ZS5zZXQodCk6ZS5zZXQocil9LHZhbGlkYXRlRnVuY3Rpb246ZnVuY3Rpb24odCxlKXt2YXIgcj1lLmRmbHQ7cmV0dXJuIHQ9PT1yfHwic3RyaW5nIj09dHlwZW9mIHQmJiEhdShyKS50ZXN0KHQpfX0sZmxhZ2xpc3Q6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxyLG4pe2lmKCJzdHJpbmciPT10eXBlb2YgdClpZigtMT09PShuLmV4dHJhc3x8W10pLmluZGV4T2YodCkpe2Zvcih2YXIgaT10LnNwbGl0KCIrIiksYT0wO2E8aS5sZW5ndGg7KXt2YXIgbz1pW2FdOy0xPT09bi5mbGFncy5pbmRleE9mKG8pfHxpLmluZGV4T2Yobyk8YT9pLnNwbGljZShhLDEpOmErK31pLmxlbmd0aD9lLnNldChpLmpvaW4oIisiKSk6ZS5zZXQocil9ZWxzZSBlLnNldCh0KTtlbHNlIGUuc2V0KHIpfX0sYW55Ontjb2VyY2VGdW5jdGlvbjpmdW5jdGlvbih0LGUscil7dm9pZCAwPT09dD9lLnNldChyKTplLnNldCh0KX19LGluZm9fYXJyYXk6e2NvZXJjZUZ1bmN0aW9uOmZ1bmN0aW9uKHQsZSxuLGkpe2Z1bmN0aW9uIGEodCxlLG4pe3ZhciBpLGE9e3NldDpmdW5jdGlvbih0KXtpPXR9fTtyZXR1cm4gdm9pZCAwPT09biYmKG49ZS5kZmx0KSxyLnZhbE9iamVjdE1ldGFbZS52YWxUeXBlXS5jb2VyY2VGdW5jdGlvbih0LGEsbixlKSxpfXZhciBvPTI9PT1pLmRpbWVuc2lvbnN8fCIxLTIiPT09aS5kaW1lbnNpb25zJiZBcnJheS5pc0FycmF5KHQpJiZBcnJheS5pc0FycmF5KHRbMF0pO2lmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBzLGwsYyx1LGYsaCxwPWkuaXRlbXMsZD1bXSxtPUFycmF5LmlzQXJyYXkocCksZz1tJiZvJiZBcnJheS5pc0FycmF5KHBbMF0pLHY9byYmbSYmIWcseT1tJiYhdj9wLmxlbmd0aDp0Lmxlbmd0aDtpZihuPUFycmF5LmlzQXJyYXkobik/bjpbXSxvKWZvcihzPTA7czx5O3MrKylmb3IoZFtzXT1bXSxjPUFycmF5LmlzQXJyYXkodFtzXSk/dFtzXTpbXSxmPXY/cC5sZW5ndGg6bT9wW3NdLmxlbmd0aDpjLmxlbmd0aCxsPTA7bDxmO2wrKyl1PXY/cFtsXTptP3Bbc11bbF06cCx2b2lkIDAhPT0oaD1hKGNbbF0sdSwobltzXXx8W10pW2xdKSkmJihkW3NdW2xdPWgpO2Vsc2UgZm9yKHM9MDtzPHk7cysrKXZvaWQgMCE9PShoPWEodFtzXSxtP3Bbc106cCxuW3NdKSkmJihkW3NdPWgpO2Uuc2V0KGQpfWVsc2UgZS5zZXQobil9LHZhbGlkYXRlRnVuY3Rpb246ZnVuY3Rpb24odCxlKXtpZighQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4hMTt2YXIgcj1lLml0ZW1zLG49QXJyYXkuaXNBcnJheShyKSxpPTI9PT1lLmRpbWVuc2lvbnM7aWYoIWUuZnJlZUxlbmd0aCYmdC5sZW5ndGghPT1yLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKylpZihpKXtpZighQXJyYXkuaXNBcnJheSh0W2FdKXx8IWUuZnJlZUxlbmd0aCYmdFthXS5sZW5ndGghPT1yW2FdLmxlbmd0aClyZXR1cm4hMTtmb3IodmFyIG89MDtvPHRbYV0ubGVuZ3RoO28rKylpZighcCh0W2FdW29dLG4/clthXVtvXTpyKSlyZXR1cm4hMX1lbHNlIGlmKCFwKHRbYV0sbj9yW2FdOnIpKXJldHVybiExO3JldHVybiEwfX19LHIuY29lcmNlPWZ1bmN0aW9uKHQsZSxuLGksYSl7dmFyIG89YyhuLGkpLmdldCgpLHM9Yyh0LGkpLGw9YyhlLGkpLHU9cy5nZXQoKSxmPWUuX3RlbXBsYXRlO2lmKHZvaWQgMD09PXUmJmYmJih1PWMoZixpKS5nZXQoKSxmPTApLHZvaWQgMD09PWEmJihhPW8uZGZsdCksby5hcnJheU9rJiZoKHUpKXJldHVybiBsLnNldCh1KSx1O3ZhciBkPXIudmFsT2JqZWN0TWV0YVtvLnZhbFR5cGVdLmNvZXJjZUZ1bmN0aW9uO2QodSxsLGEsbyk7dmFyIG09bC5nZXQoKTtyZXR1cm4gZiYmbT09PWEmJiFwKHUsbykmJihkKHU9YyhmLGkpLmdldCgpLGwsYSxvKSxtPWwuZ2V0KCkpLG19LHIuY29lcmNlMj1mdW5jdGlvbih0LGUsbixpLGEpe3ZhciBvPWModCxpKSxzPXIuY29lcmNlKHQsZSxuLGksYSksbD1vLmdldCgpO3JldHVybiBudWxsIT1sJiZzfSxyLmNvZXJjZUZvbnQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXt9O3JldHVybiByPXJ8fHt9LG4uZmFtaWx5PXQoZSsiLmZhbWlseSIsci5mYW1pbHkpLG4uc2l6ZT10KGUrIi5zaXplIixyLnNpemUpLG4uY29sb3I9dChlKyIuY29sb3IiLHIuY29sb3IpLG59LHIuY29lcmNlUGF0dGVybj1mdW5jdGlvbih0LGUscixuKXtpZih0KGUrIi5zaGFwZSIpKXt0KGUrIi5zb2xpZGl0eSIpLHQoZSsiLnNpemUiKTt2YXIgaT0ib3ZlcmxheSI9PT10KGUrIi5maWxsbW9kZSIpO2lmKCFuKXt2YXIgYT10KGUrIi5iZ2NvbG9yIixpP3I6dm9pZCAwKTt0KGUrIi5mZ2NvbG9yIixpP3MuY29udHJhc3QoYSk6cil9dChlKyIuZmdvcGFjaXR5IixpPy41OjEpfX0sci5jb2VyY2VIb3ZlcmluZm89ZnVuY3Rpb24odCxlLG4pe3ZhciBpLG89ZS5fbW9kdWxlLmF0dHJpYnV0ZXMscz1vLmhvdmVyaW5mbz9vOmEsbD1zLmhvdmVyaW5mbztpZigxPT09bi5fZGF0YUxlbmd0aCl7dmFyIGM9ImFsbCI9PT1sLmRmbHQ/bC5mbGFncy5zbGljZSgpOmwuZGZsdC5zcGxpdCgiKyIpO2Muc3BsaWNlKGMuaW5kZXhPZigibmFtZSIpLDEpLGk9Yy5qb2luKCIrIil9cmV0dXJuIHIuY29lcmNlKHQsZSxzLCJob3ZlcmluZm8iLGkpfSxyLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHk9ZnVuY3Rpb24odCxlKXtpZih0Lm1hcmtlcil7dmFyIHIsbixpPXQubWFya2VyLm9wYWNpdHk7aWYodm9pZCAwIT09aSloKGkpfHx0LnNlbGVjdGVkfHx0LnVuc2VsZWN0ZWR8fChyPWksbj1sKmkpLGUoInNlbGVjdGVkLm1hcmtlci5vcGFjaXR5IixyKSxlKCJ1bnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5IixuKX19LHIudmFsaWRhdGU9cH0seyIuLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9zY2FsZXMiOjY1NCwiLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NzUxLCIuLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4vYXJyYXkiOjc1OCwiLi9tb2QiOjc4MywiLi9uZXN0ZWRfcHJvcGVydHkiOjc4NCwiLi9yZWdleCI6NzkzLCJmYXN0LWlzbnVtZXJpYyI6MjQyLHRpbnljb2xvcjI6NTcyfV0sNzYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGksYT10KCJkMy10aW1lLWZvcm1hdCIpLnRpbWVGb3JtYXQsbz10KCJmYXN0LWlzbnVtZXJpYyIpLHM9dCgiLi9sb2dnZXJzIiksbD10KCIuL21vZCIpLm1vZCxjPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKSx1PWMuQkFETlVNLGY9Yy5PTkVEQVksaD1jLk9ORUhPVVIscD1jLk9ORU1JTixkPWMuT05FU0VDLG09Yy5FUE9DSEpELGc9dCgiLi4vcmVnaXN0cnkiKSx2PXQoImQzLXRpbWUtZm9ybWF0IikudXRjRm9ybWF0LHk9L15ccyooLT9cZFxkXGRcZHxcZFxkKSgtKFxkP1xkKSgtKFxkP1xkKShbIFR0XShbMDFdP1xkfDJbMC0zXSkoOihbMC01XVxkKSg6KFswLTVdXGQoXC5cZCspPykpPyhafHp8WytcLV1cZFxkKDo/XGRcZCk/KT8pPyk/KT8pP1xzKiQvbSx4PS9eXHMqKC0/XGRcZFxkXGR8XGRcZCkoLShcZD9cZGk/KSgtKFxkP1xkKShbIFR0XShbMDFdP1xkfDJbMC0zXSkoOihbMC01XVxkKSg6KFswLTVdXGQoXC5cZCspPykpPyhafHp8WytcLV1cZFxkKDo/XGRcZCk/KT8pPyk/KT8pP1xzKiQvbSxiPShuZXcgRGF0ZSkuZ2V0RnVsbFllYXIoKS03MDtmdW5jdGlvbiBfKHQpe3JldHVybiB0JiZnLmNvbXBvbmVudHNSZWdpc3RyeS5jYWxlbmRhcnMmJiJzdHJpbmciPT10eXBlb2YgdCYmImdyZWdvcmlhbiIhPT10fWZ1bmN0aW9uIHcodCxlKXtyZXR1cm4gU3RyaW5nKHQrTWF0aC5wb3coMTAsZSkpLnN1YnN0cigxKX1yLmRhdGVUaWNrMD1mdW5jdGlvbih0LGUpe3ZhciBuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIF8odCk/ZT9nLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiQ0FOT05JQ0FMX1NVTkRBWSIpW3RdOmcuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJDQU5PTklDQUxfVElDSyIpW3RdOmU/IjIwMDAtMDEtMDIiOiIyMDAwLTAxLTAxIn0odCwhIWUpO2lmKGU8MilyZXR1cm4gbjt2YXIgaT1yLmRhdGVUaW1lMm1zKG4sdCk7cmV0dXJuIGkrPWYqKGUtMSksci5tczJEYXRlVGltZShpLDAsdCl9LHIuZGZsdFJhbmdlPWZ1bmN0aW9uKHQpe3JldHVybiBfKHQpP2cuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJERkxUUkFOR0UiKVt0XTpbIjIwMDAtMDEtMDEiLCIyMDAxLTAxLTAxIl19LHIuaXNKU0RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiZudWxsIT09dCYmImZ1bmN0aW9uIj09dHlwZW9mIHQuZ2V0VGltZX0sci5kYXRlVGltZTJtcz1mdW5jdGlvbih0LGUpe2lmKHIuaXNKU0RhdGUodCkpe3ZhciBhPXQuZ2V0VGltZXpvbmVPZmZzZXQoKSpwLG89KHQuZ2V0VVRDTWludXRlcygpLXQuZ2V0TWludXRlcygpKSpwKyh0LmdldFVUQ1NlY29uZHMoKS10LmdldFNlY29uZHMoKSkqZCsodC5nZXRVVENNaWxsaXNlY29uZHMoKS10LmdldE1pbGxpc2Vjb25kcygpKTtpZihvKXt2YXIgcz0zKnA7YT1hLXMvMitsKG8tYStzLzIscyl9cmV0dXJuKHQ9TnVtYmVyKHQpLWEpPj1uJiZ0PD1pP3Q6dX1pZigic3RyaW5nIiE9dHlwZW9mIHQmJiJudW1iZXIiIT10eXBlb2YgdClyZXR1cm4gdTt0PVN0cmluZyh0KTt2YXIgYz1fKGUpLHY9dC5jaGFyQXQoMCk7IWN8fCJHIiE9PXYmJiJnIiE9PXZ8fCh0PXQuc3Vic3RyKDEpLGU9IiIpO3ZhciB3PWMmJiJjaGluZXNlIj09PWUuc3Vic3RyKDAsNyksVD10Lm1hdGNoKHc/eDp5KTtpZighVClyZXR1cm4gdTt2YXIgaz1UWzFdLEE9VFszXXx8IjEiLE09TnVtYmVyKFRbNV18fDEpLFM9TnVtYmVyKFRbN118fDApLEU9TnVtYmVyKFRbOV18fDApLEw9TnVtYmVyKFRbMTFdfHwwKTtpZihjKXtpZigyPT09ay5sZW5ndGgpcmV0dXJuIHU7dmFyIEM7az1OdW1iZXIoayk7dHJ5e3ZhciBQPWcuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJnZXRDYWwiKShlKTtpZih3KXt2YXIgST0iaSI9PT1BLmNoYXJBdChBLmxlbmd0aC0xKTtBPXBhcnNlSW50KEEsMTApLEM9UC5uZXdEYXRlKGssUC50b01vbnRoSW5kZXgoayxBLEkpLE0pfWVsc2UgQz1QLm5ld0RhdGUoayxOdW1iZXIoQSksTSl9Y2F0Y2godCl7cmV0dXJuIHV9cmV0dXJuIEM/KEMudG9KRCgpLW0pKmYrUypoK0UqcCtMKmQ6dX1rPTI9PT1rLmxlbmd0aD8oTnVtYmVyKGspKzJlMy1iKSUxMDArYjpOdW1iZXIoayksQS09MTt2YXIgTz1uZXcgRGF0ZShEYXRlLlVUQygyZTMsQSxNLFMsRSkpO3JldHVybiBPLnNldFVUQ0Z1bGxZZWFyKGspLE8uZ2V0VVRDTW9udGgoKSE9PUF8fE8uZ2V0VVRDRGF0ZSgpIT09TT91Ok8uZ2V0VGltZSgpK0wqZH0sbj1yLk1JTl9NUz1yLmRhdGVUaW1lMm1zKCItOTk5OSIpLGk9ci5NQVhfTVM9ci5kYXRlVGltZTJtcygiOTk5OS0xMi0zMSAyMzo1OTo1OS45OTk5Iiksci5pc0RhdGVUaW1lPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIuZGF0ZVRpbWUybXModCxlKSE9PXV9O3ZhciBUPTkwKmYsaz0zKmgsQT01KnA7ZnVuY3Rpb24gTSh0LGUscixuLGkpe2lmKChlfHxyfHxufHxpKSYmKHQrPSIgIit3KGUsMikrIjoiK3cociwyKSwobnx8aSkmJih0Kz0iOiIrdyhuLDIpLGkpKSl7Zm9yKHZhciBhPTQ7aSUxMD09MDspYS09MSxpLz0xMDt0Kz0iLiIrdyhpLGEpfXJldHVybiB0fXIubXMyRGF0ZVRpbWU9ZnVuY3Rpb24odCxlLHIpe2lmKCJudW1iZXIiIT10eXBlb2YgdHx8ISh0Pj1uJiZ0PD1pKSlyZXR1cm4gdTtlfHwoZT0wKTt2YXIgYSxvLHMsYyx5LHgsYj1NYXRoLmZsb29yKDEwKmwodCsuMDUsMSkpLHc9TWF0aC5yb3VuZCh0LWIvMTApO2lmKF8ocikpe3ZhciBTPU1hdGguZmxvb3Iody9mKSttLEU9TWF0aC5mbG9vcihsKHQsZikpO3RyeXthPWcuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJnZXRDYWwiKShyKS5mcm9tSkQoUykuZm9ybWF0RGF0ZSgieXl5eS1tbS1kZCIpfWNhdGNoKHQpe2E9digiRyVZLSVtLSVkIikobmV3IERhdGUodykpfWlmKCItIj09PWEuY2hhckF0KDApKWZvcig7YS5sZW5ndGg8MTE7KWE9Ii0wIithLnN1YnN0cigxKTtlbHNlIGZvcig7YS5sZW5ndGg8MTA7KWE9IjAiK2E7bz1lPFQ/TWF0aC5mbG9vcihFL2gpOjAscz1lPFQ/TWF0aC5mbG9vcihFJWgvcCk6MCxjPWU8az9NYXRoLmZsb29yKEUlcC9kKTowLHk9ZTxBP0UlZCoxMCtiOjB9ZWxzZSB4PW5ldyBEYXRlKHcpLGE9digiJVktJW0tJWQiKSh4KSxvPWU8VD94LmdldFVUQ0hvdXJzKCk6MCxzPWU8VD94LmdldFVUQ01pbnV0ZXMoKTowLGM9ZTxrP3guZ2V0VVRDU2Vjb25kcygpOjAseT1lPEE/MTAqeC5nZXRVVENNaWxsaXNlY29uZHMoKStiOjA7cmV0dXJuIE0oYSxvLHMsYyx5KX0sci5tczJEYXRlVGltZUxvY2FsPWZ1bmN0aW9uKHQpe2lmKCEodD49bitmJiZ0PD1pLWYpKXJldHVybiB1O3ZhciBlPU1hdGguZmxvb3IoMTAqbCh0Ky4wNSwxKSkscj1uZXcgRGF0ZShNYXRoLnJvdW5kKHQtZS8xMCkpO3JldHVybiBNKGEoIiVZLSVtLSVkIikociksci5nZXRIb3VycygpLHIuZ2V0TWludXRlcygpLHIuZ2V0U2Vjb25kcygpLDEwKnIuZ2V0VVRDTWlsbGlzZWNvbmRzKCkrZSl9LHIuY2xlYW5EYXRlPWZ1bmN0aW9uKHQsZSxuKXtpZih0PT09dSlyZXR1cm4gZTtpZihyLmlzSlNEYXRlKHQpfHwibnVtYmVyIj09dHlwZW9mIHQmJmlzRmluaXRlKHQpKXtpZihfKG4pKXJldHVybiBzLmVycm9yKCJKUyBEYXRlcyBhbmQgbWlsbGlzZWNvbmRzIGFyZSBpbmNvbXBhdGlibGUgd2l0aCB3b3JsZCBjYWxlbmRhcnMiLHQpLGU7aWYoISh0PXIubXMyRGF0ZVRpbWVMb2NhbCgrdCkpJiZ2b2lkIDAhPT1lKXJldHVybiBlfWVsc2UgaWYoIXIuaXNEYXRlVGltZSh0LG4pKXJldHVybiBzLmVycm9yKCJ1bnJlY29nbml6ZWQgZGF0ZSIsdCksZTtyZXR1cm4gdH07dmFyIFM9LyVcZD9mL2csRT0vJWgvZyxMPXsxOiIxIiwyOiIxIiwzOiIyIiw0OiIyIn07ZnVuY3Rpb24gQyh0LGUscixuKXt0PXQucmVwbGFjZShTLChmdW5jdGlvbih0KXt2YXIgcj1NYXRoLm1pbigrdC5jaGFyQXQoMSl8fDYsNik7cmV0dXJuKGUvMWUzJTErMikudG9GaXhlZChyKS5zdWJzdHIoMikucmVwbGFjZSgvMCskLywiIil8fCIwIn0pKTt2YXIgaT1uZXcgRGF0ZShNYXRoLmZsb29yKGUrLjA1KSk7aWYodD10LnJlcGxhY2UoRSwoZnVuY3Rpb24oKXtyZXR1cm4gTFtyKCIlcSIpKGkpXX0pKSxfKG4pKXRyeXt0PWcuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJ3b3JsZENhbEZtdCIpKHQsZSxuKX1jYXRjaCh0KXtyZXR1cm4iSW52YWxpZCJ9cmV0dXJuIHIodCkoaSl9dmFyIFA9WzU5LDU5LjksNTkuOTksNTkuOTk5LDU5Ljk5OTldO3IuZm9ybWF0RGF0ZT1mdW5jdGlvbih0LGUscixuLGksYSl7aWYoaT1fKGkpJiZpLCFlKWlmKCJ5Ij09PXIpZT1hLnllYXI7ZWxzZSBpZigibSI9PT1yKWU9YS5tb250aDtlbHNle2lmKCJkIiE9PXIpcmV0dXJuIGZ1bmN0aW9uKHQsZSl7dmFyIHI9bCh0Ky4wNSxmKSxuPXcoTWF0aC5mbG9vcihyL2gpLDIpKyI6Iit3KGwoTWF0aC5mbG9vcihyL3ApLDYwKSwyKTtpZigiTSIhPT1lKXtvKGUpfHwoZT0wKTt2YXIgaT0oMTAwK01hdGgubWluKGwodC9kLDYwKSxQW2VdKSkudG9GaXhlZChlKS5zdWJzdHIoMSk7ZT4wJiYoaT1pLnJlcGxhY2UoLzArJC8sIiIpLnJlcGxhY2UoL1tcLl0kLywiIikpLG4rPSI6IitpfXJldHVybiBufSh0LHIpKyJcbiIrQyhhLmRheU1vbnRoWWVhcix0LG4saSk7ZT1hLmRheU1vbnRoKyJcbiIrYS55ZWFyfXJldHVybiBDKGUsdCxuLGkpfTt2YXIgST0zKmY7ci5pbmNyZW1lbnRNb250aD1mdW5jdGlvbih0LGUscil7cj1fKHIpJiZyO3ZhciBuPWwodCxmKTtpZih0PU1hdGgucm91bmQodC1uKSxyKXRyeXt2YXIgaT1NYXRoLnJvdW5kKHQvZikrbSxhPWcuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJnZXRDYWwiKShyKSxvPWEuZnJvbUpEKGkpO3JldHVybiBlJTEyP2EuYWRkKG8sZSwibSIpOmEuYWRkKG8sZS8xMiwieSIpLChvLnRvSkQoKS1tKSpmK259Y2F0Y2goZSl7cy5lcnJvcigiaW52YWxpZCBtcyAiK3QrIiBpbiBjYWxlbmRhciAiK3IpfXZhciBjPW5ldyBEYXRlKHQrSSk7cmV0dXJuIGMuc2V0VVRDTW9udGgoYy5nZXRVVENNb250aCgpK2UpK24tSX0sci5maW5kRXhhY3REYXRlcz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuLGk9MCxhPTAscz0wLGw9MCxjPV8oZSkmJmcuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJnZXRDYWwiKShlKSx1PTA7dTx0Lmxlbmd0aDt1KyspaWYobj10W3VdLG8obikpe2lmKCEobiVmKSlpZihjKXRyeXsxPT09KHI9Yy5mcm9tSkQobi9mK20pKS5kYXkoKT8xPT09ci5tb250aCgpP2krKzphKys6cysrfWNhdGNoKHQpe31lbHNlIDE9PT0ocj1uZXcgRGF0ZShuKSkuZ2V0VVRDRGF0ZSgpPzA9PT1yLmdldFVUQ01vbnRoKCk/aSsrOmErKzpzKyt9ZWxzZSBsKys7cys9YSs9aTt2YXIgaD10Lmxlbmd0aC1sO3JldHVybntleGFjdFllYXJzOmkvaCxleGFjdE1vbnRoczphL2gsZXhhY3REYXlzOnMvaH19fSx7Ii4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vcmVnaXN0cnkiOjkwNCwiLi9sb2dnZXJzIjo3ODAsIi4vbW9kIjo3ODMsImQzLXRpbWUtZm9ybWF0IjoxNjgsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw3NjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi9sb2dnZXJzIiksYT10KCIuL21hdHJpeCIpLG89dCgiZ2wtbWF0NCIpO2Z1bmN0aW9uIHModCl7dmFyIGU9dCYmdC5wYXJlbnROb2RlO2UmJmUucmVtb3ZlQ2hpbGQodCl9ZnVuY3Rpb24gbCh0LGUscil7dmFyIG49InBsb3RseS5qcy1zdHlsZS0iK3QsYT1kb2N1bWVudC5nZXRFbGVtZW50QnlJZChuKTthfHwoKGE9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3R5bGUiKSkuc2V0QXR0cmlidXRlKCJpZCIsbiksYS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiIikpLGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoYSkpO3ZhciBvPWEuc2hlZXQ7by5pbnNlcnRSdWxlP28uaW5zZXJ0UnVsZShlKyJ7IityKyJ9IiwwKTpvLmFkZFJ1bGU/by5hZGRSdWxlKGUsciwwKTppLndhcm4oImFkZFN0eWxlUnVsZSBmYWlsZWQiKX1mdW5jdGlvbiBjKHQpe3ZhciBlPXdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHQsbnVsbCkscj1lLmdldFByb3BlcnR5VmFsdWUoIi13ZWJraXQtdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgiLW1vei10cmFuc2Zvcm0iKXx8ZS5nZXRQcm9wZXJ0eVZhbHVlKCItbXMtdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgiLW8tdHJhbnNmb3JtIil8fGUuZ2V0UHJvcGVydHlWYWx1ZSgidHJhbnNmb3JtIik7cmV0dXJuIm5vbmUiPT09cj9udWxsOnIucmVwbGFjZSgibWF0cml4IiwiIikucmVwbGFjZSgiM2QiLCIiKS5zbGljZSgxLC0xKS5zcGxpdCgiLCIpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuK3R9KSl9ZnVuY3Rpb24gdSh0KXtmb3IodmFyIGU9W107Zih0KTspZS5wdXNoKHQpLHQ9dC5wYXJlbnROb2RlO3JldHVybiBlfWZ1bmN0aW9uIGYodCl7cmV0dXJuIHQmJih0IGluc3RhbmNlb2YgRWxlbWVudHx8dCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KX1lLmV4cG9ydHM9e2dldEdyYXBoRGl2OmZ1bmN0aW9uKHQpe3ZhciBlO2lmKCJzdHJpbmciPT10eXBlb2YgdCl7aWYobnVsbD09PShlPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHQpKSl0aHJvdyBuZXcgRXJyb3IoIk5vIERPTSBlbGVtZW50IHdpdGggaWQgJyIrdCsiJyBleGlzdHMgb24gdGhlIHBhZ2UuIik7cmV0dXJuIGV9aWYobnVsbD09dCl0aHJvdyBuZXcgRXJyb3IoIkRPTSBlbGVtZW50IHByb3ZpZGVkIGlzIG51bGwgb3IgdW5kZWZpbmVkIik7cmV0dXJuIHR9LGlzUGxvdERpdjpmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0KTtyZXR1cm4gZS5ub2RlKClpbnN0YW5jZW9mIEhUTUxFbGVtZW50JiZlLnNpemUoKSYmZS5jbGFzc2VkKCJqcy1wbG90bHktcGxvdCIpfSxyZW1vdmVFbGVtZW50OnMsYWRkU3R5bGVSdWxlOmZ1bmN0aW9uKHQsZSl7bCgiZ2xvYmFsIix0LGUpfSxhZGRSZWxhdGVkU3R5bGVSdWxlOmwsZGVsZXRlUmVsYXRlZFN0eWxlUnVsZTpmdW5jdGlvbih0KXt2YXIgZT0icGxvdGx5LmpzLXN0eWxlLSIrdCxyPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGUpO3ImJnMocil9LGdldEZ1bGxUcmFuc2Zvcm1NYXRyaXg6ZnVuY3Rpb24odCl7dmFyIGU9dSh0KSxyPVsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXTtyZXR1cm4gZS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT1jKHQpO2lmKGUpe3ZhciBuPWEuY29udmVydENzc01hdHJpeChlKTtyPW8ubXVsdGlwbHkocixyLG4pfX0pKSxyfSxnZXRFbGVtZW50VHJhbnNmb3JtTWF0cml4OmMsZ2V0RWxlbWVudEFuZEFuY2VzdG9yczp1LGVxdWFsRG9tUmVjdHM6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCYmZSYmdC54PT09ZS54JiZ0Lnk9PT1lLnkmJnQudG9wPT09ZS50b3AmJnQubGVmdD09PWUubGVmdCYmdC5yaWdodD09PWUucmlnaHQmJnQuYm90dG9tPT09ZS5ib3R0b219fX0seyIuL2xvZ2dlcnMiOjc4MCwiLi9tYXRyaXgiOjc4MiwiQHBsb3RseS9kMyI6NTgsImdsLW1hdDQiOjI4Nn1dLDc2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJldmVudHMiKS5FdmVudEVtaXR0ZXIsaT17aW5pdDpmdW5jdGlvbih0KXtpZih0Ll9ldiBpbnN0YW5jZW9mIG4pcmV0dXJuIHQ7dmFyIGU9bmV3IG4scj1uZXcgbjtyZXR1cm4gdC5fZXY9ZSx0Ll9pbnRlcm5hbEV2PXIsdC5vbj1lLm9uLmJpbmQoZSksdC5vbmNlPWUub25jZS5iaW5kKGUpLHQucmVtb3ZlTGlzdGVuZXI9ZS5yZW1vdmVMaXN0ZW5lci5iaW5kKGUpLHQucmVtb3ZlQWxsTGlzdGVuZXJzPWUucmVtb3ZlQWxsTGlzdGVuZXJzLmJpbmQoZSksdC5faW50ZXJuYWxPbj1yLm9uLmJpbmQociksdC5faW50ZXJuYWxPbmNlPXIub25jZS5iaW5kKHIpLHQuX3JlbW92ZUludGVybmFsTGlzdGVuZXI9ci5yZW1vdmVMaXN0ZW5lci5iaW5kKHIpLHQuX3JlbW92ZUFsbEludGVybmFsTGlzdGVuZXJzPXIucmVtb3ZlQWxsTGlzdGVuZXJzLmJpbmQociksdC5lbWl0PWZ1bmN0aW9uKG4saSl7InVuZGVmaW5lZCIhPXR5cGVvZiBqUXVlcnkmJmpRdWVyeSh0KS50cmlnZ2VyKG4saSksZS5lbWl0KG4saSksci5lbWl0KG4saSl9LHR9LHRyaWdnZXJIYW5kbGVyOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpOyJ1bmRlZmluZWQiIT10eXBlb2YgalF1ZXJ5JiYobj1qUXVlcnkodCkudHJpZ2dlckhhbmRsZXIoZSxyKSk7dmFyIGE9dC5fZXY7aWYoIWEpcmV0dXJuIG47dmFyIG8scz1hLl9ldmVudHNbZV07aWYoIXMpcmV0dXJuIG47ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdC5saXN0ZW5lcj8oYS5yZW1vdmVMaXN0ZW5lcihlLHQubGlzdGVuZXIpLHQuZmlyZWQ/dm9pZCAwOih0LmZpcmVkPSEwLHQubGlzdGVuZXIuYXBwbHkoYSxbcl0pKSk6dC5hcHBseShhLFtyXSl9Zm9yKHM9QXJyYXkuaXNBcnJheShzKT9zOltzXSxvPTA7bzxzLmxlbmd0aC0xO28rKylsKHNbb10pO3JldHVybiBpPWwoc1tvXSksdm9pZCAwIT09bj9uOml9LHB1cmdlOmZ1bmN0aW9uKHQpe3JldHVybiBkZWxldGUgdC5fZXYsZGVsZXRlIHQub24sZGVsZXRlIHQub25jZSxkZWxldGUgdC5yZW1vdmVMaXN0ZW5lcixkZWxldGUgdC5yZW1vdmVBbGxMaXN0ZW5lcnMsZGVsZXRlIHQuZW1pdCxkZWxldGUgdC5fZXYsZGVsZXRlIHQuX2ludGVybmFsRXYsZGVsZXRlIHQuX2ludGVybmFsT24sZGVsZXRlIHQuX2ludGVybmFsT25jZSxkZWxldGUgdC5fcmVtb3ZlSW50ZXJuYWxMaXN0ZW5lcixkZWxldGUgdC5fcmVtb3ZlQWxsSW50ZXJuYWxMaXN0ZW5lcnMsdH19O2UuZXhwb3J0cz1pfSx7ZXZlbnRzOjIzN31dLDc2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2lzX3BsYWluX29iamVjdC5qcyIpLGk9QXJyYXkuaXNBcnJheTtmdW5jdGlvbiBhKHQsZSxyLG8pe3ZhciBzLGwsYyx1LGYsaCxwPXRbMF0sZD10Lmxlbmd0aDtpZigyPT09ZCYmaShwKSYmaSh0WzFdKSYmMD09PXAubGVuZ3RoKXtpZihmdW5jdGlvbih0LGUpe3ZhciByLG47Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7aWYobnVsbCE9PShuPXRbcl0pJiYib2JqZWN0Ij09dHlwZW9mIG4pcmV0dXJuITE7dm9pZCAwIT09biYmKGVbcl09bil9cmV0dXJuITB9KHRbMV0scCkpcmV0dXJuIHA7cC5zcGxpY2UoMCxwLmxlbmd0aCl9Zm9yKHZhciBtPTE7bTxkO20rKylmb3IobCBpbiBzPXRbbV0pYz1wW2xdLHU9c1tsXSxvJiZpKHUpP3BbbF09dTplJiZ1JiYobih1KXx8KGY9aSh1KSkpPyhmPyhmPSExLGg9YyYmaShjKT9jOltdKTpoPWMmJm4oYyk/Yzp7fSxwW2xdPWEoW2gsdV0sZSxyLG8pKToodm9pZCAwIT09dXx8cikmJihwW2xdPXUpO3JldHVybiBwfXIuZXh0ZW5kRmxhdD1mdW5jdGlvbigpe3JldHVybiBhKGFyZ3VtZW50cywhMSwhMSwhMSl9LHIuZXh0ZW5kRGVlcD1mdW5jdGlvbigpe3JldHVybiBhKGFyZ3VtZW50cywhMCwhMSwhMSl9LHIuZXh0ZW5kRGVlcEFsbD1mdW5jdGlvbigpe3JldHVybiBhKGFyZ3VtZW50cywhMCwhMCwhMSl9LHIuZXh0ZW5kRGVlcE5vQXJyYXlzPWZ1bmN0aW9uKCl7cmV0dXJuIGEoYXJndW1lbnRzLCEwLCExLCEwKX19LHsiLi9pc19wbGFpbl9vYmplY3QuanMiOjc3N31dLDc2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXt9LHI9W10sbj0wLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTsxIT09ZVthXSYmKGVbYV09MSxyW24rK109YSl9cmV0dXJuIHJ9fSx7fV0sNzY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2Z1bmN0aW9uIG4odCl7cmV0dXJuITA9PT10LnZpc2libGV9ZnVuY3Rpb24gaSh0KXt2YXIgZT10WzBdLnRyYWNlO3JldHVybiEwPT09ZS52aXNpYmxlJiYwIT09ZS5fbGVuZ3RofWUuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscj0oZT10LEFycmF5LmlzQXJyYXkoZSkmJkFycmF5LmlzQXJyYXkoZVswXSkmJmVbMF1bMF0mJmVbMF1bMF0udHJhY2U/aTpuKSxhPVtdLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXTtyKHMpJiZhLnB1c2gocyl9cmV0dXJuIGF9fSx7fV0sNzY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImNvdW50cnktcmVnZXgiKSxhPXQoIkB0dXJmL2FyZWEiKSxvPXQoIkB0dXJmL2NlbnRyb2lkIikscz10KCJAdHVyZi9iYm94IiksbD10KCIuL2lkZW50aXR5IiksYz10KCIuL2xvZ2dlcnMiKSx1PXQoIi4vaXNfcGxhaW5fb2JqZWN0IiksZj10KCIuL25lc3RlZF9wcm9wZXJ0eSIpLGg9dCgiLi9wb2x5Z29uIikscD1PYmplY3Qua2V5cyhpKSxkPXsiSVNPLTMiOmwsIlVTQS1zdGF0ZXMiOmwsImNvdW50cnkgbmFtZXMiOmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8cC5sZW5ndGg7ZSsrKXt2YXIgcj1wW2VdO2lmKG5ldyBSZWdFeHAoaVtyXSkudGVzdCh0LnRyaW0oKS50b0xvd2VyQ2FzZSgpKSlyZXR1cm4gcn1yZXR1cm4gYy5sb2coIlVucmVjb2duaXplZCBjb3VudHJ5IG5hbWU6ICIrdCsiLiIpLCExfX07ZnVuY3Rpb24gbSh0KXt2YXIgZT10Lmdlb2pzb24scj13aW5kb3cuUGxvdGx5R2VvQXNzZXRzfHx7fSxuPSJzdHJpbmciPT10eXBlb2YgZT9yW2VdOmU7cmV0dXJuIHUobik/bjooYy5lcnJvcigiT29wcyAuLi4gc29tZXRoaW5nIHdlbnQgd3Jvbmcgd2hlbiBmZXRjaGluZyAiK2UpLCExKX1lLmV4cG9ydHM9e2xvY2F0aW9uVG9GZWF0dXJlOmZ1bmN0aW9uKHQsZSxyKXtpZighZXx8InN0cmluZyIhPXR5cGVvZiBlKXJldHVybiExO3ZhciBuLGksYSxvPWRbdF0oZSk7aWYobyl7aWYoIlVTQS1zdGF0ZXMiPT09dClmb3Iobj1bXSxhPTA7YTxyLmxlbmd0aDthKyspKGk9clthXSkucHJvcGVydGllcyYmaS5wcm9wZXJ0aWVzLmd1JiYiVVNBIj09PWkucHJvcGVydGllcy5ndSYmbi5wdXNoKGkpO2Vsc2Ugbj1yO2ZvcihhPTA7YTxuLmxlbmd0aDthKyspaWYoKGk9blthXSkuaWQ9PT1vKXJldHVybiBpO2MubG9nKFsiTG9jYXRpb24gd2l0aCBpZCIsbywiZG9lcyBub3QgaGF2ZSBhIG1hdGNoaW5nIHRvcG9qc29uIGZlYXR1cmUgYXQgdGhpcyByZXNvbHV0aW9uLiJdLmpvaW4oIiAiKSl9cmV0dXJuITF9LGZlYXR1cmUycG9seWdvbnM6ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYT10Lmdlb21ldHJ5LG89YS5jb29yZGluYXRlcyxzPXQuaWQsbD1bXTtmdW5jdGlvbiBjKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGgtMTtlKyspaWYodFtlXVswXT4wJiZ0W2UrMV1bMF08MClyZXR1cm4gZTtyZXR1cm4gbnVsbH1zd2l0Y2goZT0iUlVTIj09PXN8fCJGSkkiPT09cz9mdW5jdGlvbih0KXt2YXIgZTtpZihudWxsPT09Yyh0KSllPXQ7ZWxzZSBmb3IoZT1uZXcgQXJyYXkodC5sZW5ndGgpLGk9MDtpPHQubGVuZ3RoO2krKyllW2ldPVt0W2ldWzBdPDA/dFtpXVswXSszNjA6dFtpXVswXSx0W2ldWzFdXTtsLnB1c2goaC50ZXN0ZXIoZSkpfToiQVRBIj09PXM/ZnVuY3Rpb24odCl7dmFyIGU9Yyh0KTtpZihudWxsPT09ZSlyZXR1cm4gbC5wdXNoKGgudGVzdGVyKHQpKTt2YXIgcj1uZXcgQXJyYXkodC5sZW5ndGgrMSksbj0wO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspaT5lP3JbbisrXT1bdFtpXVswXSszNjAsdFtpXVsxXV06aT09PWU/KHJbbisrXT10W2ldLHJbbisrXT1bdFtpXVswXSwtOTBdKTpyW24rK109dFtpXTt2YXIgYT1oLnRlc3RlcihyKTthLnB0cy5wb3AoKSxsLnB1c2goYSl9OmZ1bmN0aW9uKHQpe2wucHVzaChoLnRlc3Rlcih0KSl9LGEudHlwZSl7Y2FzZSJNdWx0aVBvbHlnb24iOmZvcihyPTA7cjxvLmxlbmd0aDtyKyspZm9yKG49MDtuPG9bcl0ubGVuZ3RoO24rKyllKG9bcl1bbl0pO2JyZWFrO2Nhc2UiUG9seWdvbiI6Zm9yKHI9MDtyPG8ubGVuZ3RoO3IrKyllKG9bcl0pfXJldHVybiBsfSxnZXRUcmFjZUdlb2pzb246bSxleHRyYWN0VHJhY2VGZWF0dXJlOmZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1tKGUpO2lmKCFyKXJldHVybiExO3ZhciBuLGk9e30scz1bXTtmb3Iobj0wO248ZS5fbGVuZ3RoO24rKyl7dmFyIGw9dFtuXTsobC5sb2N8fDA9PT1sLmxvYykmJihpW2wubG9jXT1sKX1mdW5jdGlvbiB1KHQpe3ZhciByPWYodCxlLmZlYXR1cmVpZGtleXx8ImlkIikuZ2V0KCksbj1pW3JdO2lmKG4pe3ZhciBsPXQuZ2VvbWV0cnk7aWYoIlBvbHlnb24iPT09bC50eXBlfHwiTXVsdGlQb2x5Z29uIj09PWwudHlwZSl7dmFyIHU9e3R5cGU6IkZlYXR1cmUiLGlkOnIsZ2VvbWV0cnk6bCxwcm9wZXJ0aWVzOnt9fTt1LnByb3BlcnRpZXMuY3Q9ZnVuY3Rpb24odCl7dmFyIGUscj10Lmdlb21ldHJ5O2lmKCJNdWx0aVBvbHlnb24iPT09ci50eXBlKWZvcih2YXIgbj1yLmNvb3JkaW5hdGVzLGk9MCxzPTA7czxuLmxlbmd0aDtzKyspe3ZhciBsPXt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpuW3NdfSxjPWEuZGVmYXVsdChsKTtjPmkmJihpPWMsZT1sKX1lbHNlIGU9cjtyZXR1cm4gby5kZWZhdWx0KGUpLmdlb21ldHJ5LmNvb3JkaW5hdGVzfSh1KSxuLmZJbj10LG4uZk91dD11LHMucHVzaCh1KX1lbHNlIGMubG9nKFsiTG9jYXRpb24iLG4ubG9jLCJkb2VzIG5vdCBoYXZlIGEgdmFsaWQgR2VvSlNPTiBnZW9tZXRyeS4iLCJUcmFjZXMgd2l0aCBsb2NhdGlvbm1vZGUgKmdlb2pzb24taWQqIG9ubHkgc3VwcG9ydCIsIipQb2x5Z29uKiBhbmQgKk11bHRpUG9seWdvbiogZ2VvbWV0cmllcy4iXS5qb2luKCIgIikpfWRlbGV0ZSBpW3JdfXN3aXRjaChyLnR5cGUpe2Nhc2UiRmVhdHVyZUNvbGxlY3Rpb24iOnZhciBoPXIuZmVhdHVyZXM7Zm9yKG49MDtuPGgubGVuZ3RoO24rKyl1KGhbbl0pO2JyZWFrO2Nhc2UiRmVhdHVyZSI6dShyKTticmVhaztkZWZhdWx0OnJldHVybiBjLndhcm4oWyJJbnZhbGlkIEdlb0pTT04gdHlwZSIsKHIudHlwZXx8Im5vbmUiKSsiLiIsIlRyYWNlcyB3aXRoIGxvY2F0aW9ubW9kZSAqZ2VvanNvbi1pZCogb25seSBzdXBwb3J0IiwiKkZlYXR1cmVDb2xsZWN0aW9uKiBhbmQgKkZlYXR1cmUqIHR5cGVzLiJdLmpvaW4oIiAiKSksITF9Zm9yKHZhciBwIGluIGkpYy5sb2coWyJMb2NhdGlvbiAqIitwKyIqIiwiZG9lcyBub3QgaGF2ZSBhIG1hdGNoaW5nIGZlYXR1cmUgd2l0aCBpZC1rZXkiLCIqIitlLmZlYXR1cmVpZGtleSsiKi4iXS5qb2luKCIgIikpO3JldHVybiBzfSxmZXRjaFRyYWNlR2VvRGF0YTpmdW5jdGlvbih0KXt2YXIgZT13aW5kb3cuUGxvdGx5R2VvQXNzZXRzfHx7fSxyPVtdO2Z1bmN0aW9uIGkodCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbihyLGkpe24uanNvbih0LChmdW5jdGlvbihuLGEpe2lmKG4pe2RlbGV0ZSBlW3RdO3ZhciBvPTQwND09PW4uc3RhdHVzPydHZW9KU09OIGF0IFVSTCAiJyt0KyciIGRvZXMgbm90IGV4aXN0Lic6IlVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZmV0Y2hpbmcgZnJvbSAiK3Q7cmV0dXJuIGkobmV3IEVycm9yKG8pKX1yZXR1cm4gZVt0XT1hLHIoYSl9KSl9KSl9ZnVuY3Rpb24gYSh0KXtyZXR1cm4gbmV3IFByb21pc2UoKGZ1bmN0aW9uKHIsbil7dmFyIGk9MCxhPXNldEludGVydmFsKChmdW5jdGlvbigpe3JldHVybiBlW3RdJiYicGVuZGluZyIhPT1lW3RdPyhjbGVhckludGVydmFsKGEpLHIoZVt0XSkpOmk+MTAwPyhjbGVhckludGVydmFsKGEpLG4oIlVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZmV0Y2hpbmcgZnJvbSAiK3QpKTp2b2lkIGkrK30pLDUwKX0pKX1mb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXVswXS50cmFjZS5nZW9qc29uOyJzdHJpbmciPT10eXBlb2YgcyYmKGVbc10/InBlbmRpbmciPT09ZVtzXSYmci5wdXNoKGEocykpOihlW3NdPSJwZW5kaW5nIixyLnB1c2goaShzKSkpKX1yZXR1cm4gcn0sY29tcHV0ZUJib3g6ZnVuY3Rpb24odCl7cmV0dXJuIHMuZGVmYXVsdCh0KX19fSx7Ii4vaWRlbnRpdHkiOjc3NCwiLi9pc19wbGFpbl9vYmplY3QiOjc3NywiLi9sb2dnZXJzIjo3ODAsIi4vbmVzdGVkX3Byb3BlcnR5Ijo3ODQsIi4vcG9seWdvbiI6Nzg4LCJAcGxvdGx5L2QzIjo1OCwiQHR1cmYvYXJlYSI6NjEsIkB0dXJmL2Jib3giOjYyLCJAdHVyZi9jZW50cm9pZCI6NjMsImNvdW50cnktcmVnZXgiOjE0MX1dLDc3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO3IuY2FsY1RyYWNlVG9MaW5lQ29vcmRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10WzBdLnRyYWNlLmNvbm5lY3RnYXBzLHI9W10saT1bXSxhPTA7YTx0Lmxlbmd0aDthKyspe3ZhciBvPXRbYV0ubG9ubGF0O29bMF0hPT1uP2kucHVzaChvKTohZSYmaS5sZW5ndGg+MCYmKHIucHVzaChpKSxpPVtdKX1yZXR1cm4gaS5sZW5ndGg+MCYmci5wdXNoKGkpLHJ9LHIubWFrZUxpbmU9ZnVuY3Rpb24odCl7cmV0dXJuIDE9PT10Lmxlbmd0aD97dHlwZToiTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dFswXX06e3R5cGU6Ik11bHRpTGluZVN0cmluZyIsY29vcmRpbmF0ZXM6dH19LHIubWFrZVBvbHlnb249ZnVuY3Rpb24odCl7aWYoMT09PXQubGVuZ3RoKXJldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczp0fTtmb3IodmFyIGU9bmV3IEFycmF5KHQubGVuZ3RoKSxyPTA7cjx0Lmxlbmd0aDtyKyspZVtyXT1bdFtyXV07cmV0dXJue3R5cGU6Ik11bHRpUG9seWdvbiIsY29vcmRpbmF0ZXM6ZX19LHIubWFrZUJsYW5rPWZ1bmN0aW9uKCl7cmV0dXJue3R5cGU6IlBvaW50Iixjb29yZGluYXRlczpbXX19fSx7Ii4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1Mn1dLDc3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbixpLGEsbz10KCIuL21vZCIpLm1vZDtmdW5jdGlvbiBzKHQsZSxyLG4saSxhLG8scyl7dmFyIGw9ci10LGM9aS10LHU9by1pLGY9bi1lLGg9YS1lLHA9cy1hLGQ9bCpwLXUqZjtpZigwPT09ZClyZXR1cm4gbnVsbDt2YXIgbT0oYypwLXUqaCkvZCxnPShjKmYtbCpoKS9kO3JldHVybiBnPDB8fGc+MXx8bTwwfHxtPjE/bnVsbDp7eDp0K2wqbSx5OmUrZiptfX1mdW5jdGlvbiBsKHQsZSxyLG4saSl7dmFyIGE9bip0K2kqZTtpZihhPDApcmV0dXJuIG4qbitpKmk7aWYoYT5yKXt2YXIgbz1uLXQscz1pLWU7cmV0dXJuIG8qbytzKnN9dmFyIGw9biplLWkqdDtyZXR1cm4gbCpsL3J9ci5zZWdtZW50c0ludGVyc2VjdD1zLHIuc2VnbWVudERpc3RhbmNlPWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8sYyl7aWYocyh0LGUscixuLGksYSxvLGMpKXJldHVybiAwO3ZhciB1PXItdCxmPW4tZSxoPW8taSxwPWMtYSxkPXUqdStmKmYsbT1oKmgrcCpwLGc9TWF0aC5taW4obCh1LGYsZCxpLXQsYS1lKSxsKHUsZixkLG8tdCxjLWUpLGwoaCxwLG0sdC1pLGUtYSksbChoLHAsbSxyLWksbi1hKSk7cmV0dXJuIE1hdGguc3FydChnKX0sci5nZXRUZXh0TG9jYXRpb249ZnVuY3Rpb24odCxlLHIscyl7aWYodD09PWkmJnM9PT1hfHwobj17fSxpPXQsYT1zKSxuW3JdKXJldHVybiBuW3JdO3ZhciBsPXQuZ2V0UG9pbnRBdExlbmd0aChvKHItcy8yLGUpKSxjPXQuZ2V0UG9pbnRBdExlbmd0aChvKHIrcy8yLGUpKSx1PU1hdGguYXRhbigoYy55LWwueSkvKGMueC1sLngpKSxmPXQuZ2V0UG9pbnRBdExlbmd0aChvKHIsZSkpLGg9e3g6KDQqZi54K2wueCtjLngpLzYseTooNCpmLnkrbC55K2MueSkvNix0aGV0YTp1fTtyZXR1cm4gbltyXT1oLGh9LHIuY2xlYXJMb2NhdGlvbkNhY2hlPWZ1bmN0aW9uKCl7aT1udWxsfSxyLmdldFZpc2libGVTZWdtZW50PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGE9ZS5sZWZ0LG89ZS5yaWdodCxzPWUudG9wLGw9ZS5ib3R0b20sYz0wLHU9dC5nZXRUb3RhbExlbmd0aCgpLGY9dTtmdW5jdGlvbiBoKGUpe3ZhciByPXQuZ2V0UG9pbnRBdExlbmd0aChlKTswPT09ZT9uPXI6ZT09PXUmJihpPXIpO3ZhciBjPXIueDxhP2Etci54OnIueD5vP3IueC1vOjAsZj1yLnk8cz9zLXIueTpyLnk+bD9yLnktbDowO3JldHVybiBNYXRoLnNxcnQoYypjK2YqZil9Zm9yKHZhciBwPWgoYyk7cDspe2lmKChjKz1wK3IpPmYpcmV0dXJuO3A9aChjKX1mb3IocD1oKGYpO3A7KXtpZihjPihmLT1wK3IpKXJldHVybjtwPWgoZil9cmV0dXJue21pbjpjLG1heDpmLGxlbjpmLWMsdG90YWw6dSxpc0Nsb3NlZDowPT09YyYmZj09PXUmJk1hdGguYWJzKG4ueC1pLngpPC4xJiZNYXRoLmFicyhuLnktaS55KTwuMX19LHIuZmluZFBvaW50T25QYXRoPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaSxhLG8scz0obj1ufHx7fSkucGF0aExlbmd0aHx8dC5nZXRUb3RhbExlbmd0aCgpLGw9bi50b2xlcmFuY2V8fC4wMDEsYz1uLml0ZXJhdGlvbkxpbWl0fHwzMCx1PXQuZ2V0UG9pbnRBdExlbmd0aCgwKVtyXT50LmdldFBvaW50QXRMZW5ndGgocylbcl0/LTE6MSxmPTAsaD0wLHA9cztmPGM7KXtpZihpPShoK3ApLzIsbz0oYT10LmdldFBvaW50QXRMZW5ndGgoaSkpW3JdLWUsTWF0aC5hYnMobyk8bClyZXR1cm4gYTt1Km8+MD9wPWk6aD1pLGYrK31yZXR1cm4gYX19LHsiLi9tb2QiOjc4M31dLDc3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgidGlueWNvbG9yMiIpLGE9dCgiY29sb3Itbm9ybWFsaXplIiksbz10KCIuLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSxzPXQoIi4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLmRlZmF1bHRMaW5lLGw9dCgiLi9hcnJheSIpLmlzQXJyYXlPclR5cGVkQXJyYXksYz1hKHMpO2Z1bmN0aW9uIHUodCxlKXt2YXIgcj10O3JldHVybiByWzNdKj1lLHJ9ZnVuY3Rpb24gZih0KXtpZihuKHQpKXJldHVybiBjO3ZhciBlPWEodCk7cmV0dXJuIGUubGVuZ3RoP2U6Y31mdW5jdGlvbiBoKHQpe3JldHVybiBuKHQpP3Q6MX1lLmV4cG9ydHM9e2Zvcm1hdENvbG9yOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLHMscCxkLG09dC5jb2xvcixnPWwobSksdj1sKGUpLHk9by5leHRyYWN0T3B0cyh0KSx4PVtdO2lmKG49dm9pZCAwIT09eS5jb2xvcnNjYWxlP28ubWFrZUNvbG9yU2NhbGVGdW5jRnJvbVRyYWNlKHQpOmYsaT1nP2Z1bmN0aW9uKHQsZSl7cmV0dXJuIHZvaWQgMD09PXRbZV0/YzphKG4odFtlXSkpfTpmLHM9dj9mdW5jdGlvbih0LGUpe3JldHVybiB2b2lkIDA9PT10W2VdPzE6aCh0W2VdKX06aCxnfHx2KWZvcih2YXIgYj0wO2I8cjtiKyspcD1pKG0sYiksZD1zKGUsYikseFtiXT11KHAsZCk7ZWxzZSB4PXUoYShtKSxlKTtyZXR1cm4geH0scGFyc2VDb2xvclNjYWxlOmZ1bmN0aW9uKHQpe3ZhciBlPW8uZXh0cmFjdE9wdHModCkscj1lLmNvbG9yc2NhbGU7cmV0dXJuIGUucmV2ZXJzZXNjYWxlJiYocj1vLmZsaXBTY2FsZShlLmNvbG9yc2NhbGUpKSxyLm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9dFswXSxyPWkodFsxXSkudG9SZ2IoKTtyZXR1cm57aW5kZXg6ZSxyZ2I6W3IucixyLmcsci5iLHIuYV19fSkpfX19LHsiLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuL2FycmF5Ijo3NTgsImNvbG9yLW5vcm1hbGl6ZSI6MTI2LCJmYXN0LWlzbnVtZXJpYyI6MjQyLHRpbnljb2xvcjI6NTcyfV0sNzczOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaWRlbnRpdHkiKTtmdW5jdGlvbiBpKHQpe3JldHVyblt0XX1lLmV4cG9ydHM9e2tleUZ1bjpmdW5jdGlvbih0KXtyZXR1cm4gdC5rZXl9LHJlcGVhdDppLGRlc2NlbmQ6bix3cmFwOmksdW53cmFwOmZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfX19LHsiLi9pZGVudGl0eSI6Nzc0fV0sNzc0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdH19LHt9XSw3NzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7aWYoIWUpcmV0dXJuIHQ7dmFyIHI9MS9NYXRoLmFicyhlKSxuPXI+MT8ocip0K3IqZSkvcjp0K2UsaT1TdHJpbmcobikubGVuZ3RoO2lmKGk+MTYpe3ZhciBhPVN0cmluZyhlKS5sZW5ndGg7aWYoaT49U3RyaW5nKHQpLmxlbmd0aCthKXt2YXIgbz1wYXJzZUZsb2F0KG4pLnRvUHJlY2lzaW9uKDEyKTstMT09PW8uaW5kZXhPZigiZSsiKSYmKG49K28pfX1yZXR1cm4gbn19LHt9XSw3NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZDMtdGltZS1mb3JtYXQiKS51dGNGb3JtYXQsYT10KCJkMy1mb3JtYXQiKS5mb3JtYXQsbz10KCJmYXN0LWlzbnVtZXJpYyIpLHM9dCgiLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLGw9cy5GUF9TQUZFLGM9LWwsdT1zLkJBRE5VTSxmPWUuZXhwb3J0cz17fTtmLmFkanVzdEZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4hdHx8L15cZFsuXVxkZi8udGVzdCh0KXx8L1suXVxkJS8udGVzdCh0KT90OiIwLmYiPT09dD8ifmYiOi9eXGQlLy50ZXN0KHQpPyJ+JSI6L15cZHMvLnRlc3QodCk/In5zIjohL15bfiwuMCRdLy50ZXN0KHQpJiYvWyZmcHNdLy50ZXN0KHQpPyJ+Iit0OnR9O3ZhciBoPXt9O2Yud2FybkJhZEZvcm1hdD1mdW5jdGlvbih0KXt2YXIgZT1TdHJpbmcodCk7aFtlXXx8KGhbZV09MSxmLndhcm4oJ2VuY291bnRlcmVkIGJhZCBmb3JtYXQ6ICInK2UrJyInKSl9LGYubm9Gb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIFN0cmluZyh0KX0sZi5udW1iZXJGb3JtYXQ9ZnVuY3Rpb24odCl7dmFyIGU7dHJ5e2U9YShmLmFkanVzdEZvcm1hdCh0KSl9Y2F0Y2goZSl7cmV0dXJuIGYud2FybkJhZEZvcm1hdCh0KSxmLm5vRm9ybWF0fXJldHVybiBlfSxmLm5lc3RlZFByb3BlcnR5PXQoIi4vbmVzdGVkX3Byb3BlcnR5IiksZi5rZXllZENvbnRhaW5lcj10KCIuL2tleWVkX2NvbnRhaW5lciIpLGYucmVsYXRpdmVBdHRyPXQoIi4vcmVsYXRpdmVfYXR0ciIpLGYuaXNQbGFpbk9iamVjdD10KCIuL2lzX3BsYWluX29iamVjdCIpLGYudG9Mb2dSYW5nZT10KCIuL3RvX2xvZ19yYW5nZSIpLGYucmVsaW5rUHJpdmF0ZUtleXM9dCgiLi9yZWxpbmtfcHJpdmF0ZSIpO3ZhciBwPXQoIi4vYXJyYXkiKTtmLmlzVHlwZWRBcnJheT1wLmlzVHlwZWRBcnJheSxmLmlzQXJyYXlPclR5cGVkQXJyYXk9cC5pc0FycmF5T3JUeXBlZEFycmF5LGYuaXNBcnJheTFEPXAuaXNBcnJheTFELGYuZW5zdXJlQXJyYXk9cC5lbnN1cmVBcnJheSxmLmNvbmNhdD1wLmNvbmNhdCxmLm1heFJvd0xlbmd0aD1wLm1heFJvd0xlbmd0aCxmLm1pblJvd0xlbmd0aD1wLm1pblJvd0xlbmd0aDt2YXIgZD10KCIuL21vZCIpO2YubW9kPWQubW9kLGYubW9kSGFsZj1kLm1vZEhhbGY7dmFyIG09dCgiLi9jb2VyY2UiKTtmLnZhbE9iamVjdE1ldGE9bS52YWxPYmplY3RNZXRhLGYuY29lcmNlPW0uY29lcmNlLGYuY29lcmNlMj1tLmNvZXJjZTIsZi5jb2VyY2VGb250PW0uY29lcmNlRm9udCxmLmNvZXJjZVBhdHRlcm49bS5jb2VyY2VQYXR0ZXJuLGYuY29lcmNlSG92ZXJpbmZvPW0uY29lcmNlSG92ZXJpbmZvLGYuY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eT1tLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHksZi52YWxpZGF0ZT1tLnZhbGlkYXRlO3ZhciBnPXQoIi4vZGF0ZXMiKTtmLmRhdGVUaW1lMm1zPWcuZGF0ZVRpbWUybXMsZi5pc0RhdGVUaW1lPWcuaXNEYXRlVGltZSxmLm1zMkRhdGVUaW1lPWcubXMyRGF0ZVRpbWUsZi5tczJEYXRlVGltZUxvY2FsPWcubXMyRGF0ZVRpbWVMb2NhbCxmLmNsZWFuRGF0ZT1nLmNsZWFuRGF0ZSxmLmlzSlNEYXRlPWcuaXNKU0RhdGUsZi5mb3JtYXREYXRlPWcuZm9ybWF0RGF0ZSxmLmluY3JlbWVudE1vbnRoPWcuaW5jcmVtZW50TW9udGgsZi5kYXRlVGljazA9Zy5kYXRlVGljazAsZi5kZmx0UmFuZ2U9Zy5kZmx0UmFuZ2UsZi5maW5kRXhhY3REYXRlcz1nLmZpbmRFeGFjdERhdGVzLGYuTUlOX01TPWcuTUlOX01TLGYuTUFYX01TPWcuTUFYX01TO3ZhciB2PXQoIi4vc2VhcmNoIik7Zi5maW5kQmluPXYuZmluZEJpbixmLnNvcnRlckFzYz12LnNvcnRlckFzYyxmLnNvcnRlckRlcz12LnNvcnRlckRlcyxmLmRpc3RpbmN0VmFscz12LmRpc3RpbmN0VmFscyxmLnJvdW5kVXA9di5yb3VuZFVwLGYuc29ydD12LnNvcnQsZi5maW5kSW5kZXhPZk1pbj12LmZpbmRJbmRleE9mTWluLGYuc29ydE9iamVjdEtleXM9dCgiLi9zb3J0X29iamVjdF9rZXlzIik7dmFyIHk9dCgiLi9zdGF0cyIpO2YuYWdnTnVtcz15LmFnZ051bXMsZi5sZW49eS5sZW4sZi5tZWFuPXkubWVhbixmLm1lZGlhbj15Lm1lZGlhbixmLm1pZFJhbmdlPXkubWlkUmFuZ2UsZi52YXJpYW5jZT15LnZhcmlhbmNlLGYuc3RkZXY9eS5zdGRldixmLmludGVycD15LmludGVycDt2YXIgeD10KCIuL21hdHJpeCIpO2YuaW5pdDJkQXJyYXk9eC5pbml0MmRBcnJheSxmLnRyYW5zcG9zZVJhZ2dlZD14LnRyYW5zcG9zZVJhZ2dlZCxmLmRvdD14LmRvdCxmLnRyYW5zbGF0aW9uTWF0cml4PXgudHJhbnNsYXRpb25NYXRyaXgsZi5yb3RhdGlvbk1hdHJpeD14LnJvdGF0aW9uTWF0cml4LGYucm90YXRpb25YWU1hdHJpeD14LnJvdGF0aW9uWFlNYXRyaXgsZi5hcHBseTNEVHJhbnNmb3JtPXguYXBwbHkzRFRyYW5zZm9ybSxmLmFwcGx5MkRUcmFuc2Zvcm09eC5hcHBseTJEVHJhbnNmb3JtLGYuYXBwbHkyRFRyYW5zZm9ybTI9eC5hcHBseTJEVHJhbnNmb3JtMixmLmNvbnZlcnRDc3NNYXRyaXg9eC5jb252ZXJ0Q3NzTWF0cml4LGYuaW52ZXJzZVRyYW5zZm9ybU1hdHJpeD14LmludmVyc2VUcmFuc2Zvcm1NYXRyaXg7dmFyIGI9dCgiLi9hbmdsZXMiKTtmLmRlZzJyYWQ9Yi5kZWcycmFkLGYucmFkMmRlZz1iLnJhZDJkZWcsZi5hbmdsZURlbHRhPWIuYW5nbGVEZWx0YSxmLmFuZ2xlRGlzdD1iLmFuZ2xlRGlzdCxmLmlzRnVsbENpcmNsZT1iLmlzRnVsbENpcmNsZSxmLmlzQW5nbGVJbnNpZGVTZWN0b3I9Yi5pc0FuZ2xlSW5zaWRlU2VjdG9yLGYuaXNQdEluc2lkZVNlY3Rvcj1iLmlzUHRJbnNpZGVTZWN0b3IsZi5wYXRoQXJjPWIucGF0aEFyYyxmLnBhdGhTZWN0b3I9Yi5wYXRoU2VjdG9yLGYucGF0aEFubnVsdXM9Yi5wYXRoQW5udWx1czt2YXIgXz10KCIuL2FuY2hvcl91dGlscyIpO2YuaXNMZWZ0QW5jaG9yPV8uaXNMZWZ0QW5jaG9yLGYuaXNDZW50ZXJBbmNob3I9Xy5pc0NlbnRlckFuY2hvcixmLmlzUmlnaHRBbmNob3I9Xy5pc1JpZ2h0QW5jaG9yLGYuaXNUb3BBbmNob3I9Xy5pc1RvcEFuY2hvcixmLmlzTWlkZGxlQW5jaG9yPV8uaXNNaWRkbGVBbmNob3IsZi5pc0JvdHRvbUFuY2hvcj1fLmlzQm90dG9tQW5jaG9yO3ZhciB3PXQoIi4vZ2VvbWV0cnkyZCIpO2Yuc2VnbWVudHNJbnRlcnNlY3Q9dy5zZWdtZW50c0ludGVyc2VjdCxmLnNlZ21lbnREaXN0YW5jZT13LnNlZ21lbnREaXN0YW5jZSxmLmdldFRleHRMb2NhdGlvbj13LmdldFRleHRMb2NhdGlvbixmLmNsZWFyTG9jYXRpb25DYWNoZT13LmNsZWFyTG9jYXRpb25DYWNoZSxmLmdldFZpc2libGVTZWdtZW50PXcuZ2V0VmlzaWJsZVNlZ21lbnQsZi5maW5kUG9pbnRPblBhdGg9dy5maW5kUG9pbnRPblBhdGg7dmFyIFQ9dCgiLi9leHRlbmQiKTtmLmV4dGVuZEZsYXQ9VC5leHRlbmRGbGF0LGYuZXh0ZW5kRGVlcD1ULmV4dGVuZERlZXAsZi5leHRlbmREZWVwQWxsPVQuZXh0ZW5kRGVlcEFsbCxmLmV4dGVuZERlZXBOb0FycmF5cz1ULmV4dGVuZERlZXBOb0FycmF5czt2YXIgaz10KCIuL2xvZ2dlcnMiKTtmLmxvZz1rLmxvZyxmLndhcm49ay53YXJuLGYuZXJyb3I9ay5lcnJvcjt2YXIgQT10KCIuL3JlZ2V4Iik7Zi5jb3VudGVyUmVnZXg9QS5jb3VudGVyO3ZhciBNPXQoIi4vdGhyb3R0bGUiKTtmLnRocm90dGxlPU0udGhyb3R0bGUsZi50aHJvdHRsZURvbmU9TS5kb25lLGYuY2xlYXJUaHJvdHRsZT1NLmNsZWFyO3ZhciBTPXQoIi4vZG9tIik7ZnVuY3Rpb24gRSh0KXt2YXIgZT17fTtmb3IodmFyIHIgaW4gdClmb3IodmFyIG49dFtyXSxpPTA7aTxuLmxlbmd0aDtpKyspZVtuW2ldXT0rcjtyZXR1cm4gZX1mLmdldEdyYXBoRGl2PVMuZ2V0R3JhcGhEaXYsZi5pc1Bsb3REaXY9Uy5pc1Bsb3REaXYsZi5yZW1vdmVFbGVtZW50PVMucmVtb3ZlRWxlbWVudCxmLmFkZFN0eWxlUnVsZT1TLmFkZFN0eWxlUnVsZSxmLmFkZFJlbGF0ZWRTdHlsZVJ1bGU9Uy5hZGRSZWxhdGVkU3R5bGVSdWxlLGYuZGVsZXRlUmVsYXRlZFN0eWxlUnVsZT1TLmRlbGV0ZVJlbGF0ZWRTdHlsZVJ1bGUsZi5nZXRGdWxsVHJhbnNmb3JtTWF0cml4PVMuZ2V0RnVsbFRyYW5zZm9ybU1hdHJpeCxmLmdldEVsZW1lbnRUcmFuc2Zvcm1NYXRyaXg9Uy5nZXRFbGVtZW50VHJhbnNmb3JtTWF0cml4LGYuZ2V0RWxlbWVudEFuZEFuY2VzdG9ycz1TLmdldEVsZW1lbnRBbmRBbmNlc3RvcnMsZi5lcXVhbERvbVJlY3RzPVMuZXF1YWxEb21SZWN0cyxmLmNsZWFyUmVzcG9uc2l2ZT10KCIuL2NsZWFyX3Jlc3BvbnNpdmUiKSxmLnByZXNlcnZlRHJhd2luZ0J1ZmZlcj10KCIuL3ByZXNlcnZlX2RyYXdpbmdfYnVmZmVyIiksZi5tYWtlVHJhY2VHcm91cHM9dCgiLi9tYWtlX3RyYWNlX2dyb3VwcyIpLGYuXz10KCIuL2xvY2FsaXplIiksZi5ub3RpZmllcj10KCIuL25vdGlmaWVyIiksZi5maWx0ZXJVbmlxdWU9dCgiLi9maWx0ZXJfdW5pcXVlIiksZi5maWx0ZXJWaXNpYmxlPXQoIi4vZmlsdGVyX3Zpc2libGUiKSxmLnB1c2hVbmlxdWU9dCgiLi9wdXNoX3VuaXF1ZSIpLGYuaW5jcmVtZW50PXQoIi4vaW5jcmVtZW50IiksZi5jbGVhbk51bWJlcj10KCIuL2NsZWFuX251bWJlciIpLGYuZW5zdXJlTnVtYmVyPWZ1bmN0aW9uKHQpe3JldHVybiBvKHQpPyh0PU51bWJlcih0KSk+bHx8dDxjP3U6dDp1fSxmLmlzSW5kZXg9ZnVuY3Rpb24odCxlKXtyZXR1cm4hKHZvaWQgMCE9PWUmJnQ+PWUpJiYobyh0KSYmdD49MCYmdCUxPT0wKX0sZi5ub29wPXQoIi4vbm9vcCIpLGYuaWRlbnRpdHk9dCgiLi9pZGVudGl0eSIpLGYucmVwZWF0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheShlKSxuPTA7bjxlO24rKylyW25dPXQ7cmV0dXJuIHJ9LGYuc3dhcEF0dHJzPWZ1bmN0aW9uKHQsZSxyLG4pe3J8fChyPSJ4Iiksbnx8KG49InkiKTtmb3IodmFyIGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIGE9ZVtpXSxvPWYubmVzdGVkUHJvcGVydHkodCxhLnJlcGxhY2UoIj8iLHIpKSxzPWYubmVzdGVkUHJvcGVydHkodCxhLnJlcGxhY2UoIj8iLG4pKSxsPW8uZ2V0KCk7by5zZXQocy5nZXQoKSkscy5zZXQobCl9fSxmLnJhaXNlVG9Ub3A9ZnVuY3Rpb24odCl7dC5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHQpfSxmLmNhbmNlbFRyYW5zaXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIHQudHJhbnNpdGlvbigpLmR1cmF0aW9uKDApfSxmLmNvbnN0cmFpbj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGU+cj9NYXRoLm1heChyLE1hdGgubWluKGUsdCkpOk1hdGgubWF4KGUsTWF0aC5taW4ocix0KSl9LGYuYkJveEludGVyc2VjdD1mdW5jdGlvbih0LGUscil7cmV0dXJuIHI9cnx8MCx0LmxlZnQ8PWUucmlnaHQrciYmZS5sZWZ0PD10LnJpZ2h0K3ImJnQudG9wPD1lLmJvdHRvbStyJiZlLnRvcDw9dC5ib3R0b20rcn0sZi5zaW1wbGVNYXA9ZnVuY3Rpb24odCxlLHIsbixpKXtmb3IodmFyIGE9dC5sZW5ndGgsbz1uZXcgQXJyYXkoYSkscz0wO3M8YTtzKyspb1tzXT1lKHRbc10scixuLGkpO3JldHVybiBvfSxmLnJhbmRzdHI9ZnVuY3Rpb24gdChlLHIsbixpKXtpZihufHwobj0xNiksdm9pZCAwPT09ciYmKHI9MjQpLHI8PTApcmV0dXJuIjAiO3ZhciBhLG8scz1NYXRoLmxvZyhNYXRoLnBvdygyLHIpKS9NYXRoLmxvZyhuKSxsPSIiO2ZvcihhPTI7cz09PTEvMDthKj0yKXM9TWF0aC5sb2coTWF0aC5wb3coMixyL2EpKS9NYXRoLmxvZyhuKSphO3ZhciBjPXMtTWF0aC5mbG9vcihzKTtmb3IoYT0wO2E8TWF0aC5mbG9vcihzKTthKyspbD1NYXRoLmZsb29yKE1hdGgucmFuZG9tKCkqbikudG9TdHJpbmcobikrbDtjJiYobz1NYXRoLnBvdyhuLGMpLGw9TWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpKm8pLnRvU3RyaW5nKG4pK2wpO3ZhciB1PXBhcnNlSW50KGwsbik7cmV0dXJuIGUmJmVbbF18fHUhPT0xLzAmJnU+PU1hdGgucG93KDIscik/aT4xMD8oZi53YXJuKCJyYW5kc3RyIGZhaWxlZCB1bmlxdWVuZXNzIiksbCk6dChlLHIsbiwoaXx8MCkrMSk6bH0sZi5PcHRpb25Db250cm9sPWZ1bmN0aW9uKHQsZSl7dHx8KHQ9e30pLGV8fChlPSJvcHQiKTt2YXIgcj17b3B0aW9uTGlzdDpbXSxfbmV3b3B0aW9uOmZ1bmN0aW9uKG4pe25bZV09dCxyW24ubmFtZV09bixyLm9wdGlvbkxpc3QucHVzaChuKX19O3JldHVybiByWyJfIitlXT10LHJ9LGYuc21vb3RoPWZ1bmN0aW9uKHQsZSl7aWYoKGU9TWF0aC5yb3VuZChlKXx8MCk8MilyZXR1cm4gdDt2YXIgcixuLGksYSxvPXQubGVuZ3RoLHM9MipvLGw9MiplLTEsYz1uZXcgQXJyYXkobCksdT1uZXcgQXJyYXkobyk7Zm9yKHI9MDtyPGw7cisrKWNbcl09KDEtTWF0aC5jb3MoTWF0aC5QSSoocisxKS9lKSkvKDIqZSk7Zm9yKHI9MDtyPG87cisrKXtmb3IoYT0wLG49MDtuPGw7bisrKShpPXIrbisxLWUpPC1vP2ktPXMqTWF0aC5yb3VuZChpL3MpOmk+PXMmJihpLT1zKk1hdGguZmxvb3IoaS9zKSksaTwwP2k9LTEtaTppPj1vJiYoaT1zLTEtaSksYSs9dFtpXSpjW25dO3Vbcl09YX1yZXR1cm4gdX0sZi5zeW5jT3JBc3luYz1mdW5jdGlvbih0LGUscil7dmFyIG47ZnVuY3Rpb24gaSgpe3JldHVybiBmLnN5bmNPckFzeW5jKHQsZSxyKX1mb3IoO3QubGVuZ3RoOylpZigobj0oMCx0LnNwbGljZSgwLDEpWzBdKShlKSkmJm4udGhlbilyZXR1cm4gbi50aGVuKGkpO3JldHVybiByJiZyKGUpfSxmLnN0cmlwVHJhaWxpbmdTbGFzaD1mdW5jdGlvbih0KXtyZXR1cm4iLyI9PT10LnN1YnN0cigtMSk/dC5zdWJzdHIoMCx0Lmxlbmd0aC0xKTp0fSxmLm5vbmVPckFsbD1mdW5jdGlvbih0LGUscil7aWYodCl7dmFyIG4saT0hMSxhPSEwO2ZvcihuPTA7bjxyLmxlbmd0aDtuKyspbnVsbCE9dFtyW25dXT9pPSEwOmE9ITE7aWYoaSYmIWEpZm9yKG49MDtuPHIubGVuZ3RoO24rKyl0W3Jbbl1dPWVbcltuXV19fSxmLm1lcmdlQXJyYXk9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9ImZ1bmN0aW9uIj09dHlwZW9mIG47aWYoZi5pc0FycmF5T3JUeXBlZEFycmF5KHQpKWZvcih2YXIgYT1NYXRoLm1pbih0Lmxlbmd0aCxlLmxlbmd0aCksbz0wO288YTtvKyspe3ZhciBzPXRbb107ZVtvXVtyXT1pP24ocyk6c319LGYubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZT1mdW5jdGlvbih0LGUscil7cmV0dXJuIGYubWVyZ2VBcnJheSh0LGUsciwoZnVuY3Rpb24odCl7dmFyIGU9K3Q7cmV0dXJuIGlzRmluaXRlKGUpJiZlPjA/ZTowfSkpfSxmLmZpbGxBcnJheT1mdW5jdGlvbih0LGUscixuKXtpZihuPW58fGYuaWRlbnRpdHksZi5pc0FycmF5T3JUeXBlZEFycmF5KHQpKWZvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKWVbaV1bcl09bih0W2ldKX0sZi5jYXN0T3B0aW9uPWZ1bmN0aW9uKHQsZSxyLG4pe249bnx8Zi5pZGVudGl0eTt2YXIgaT1mLm5lc3RlZFByb3BlcnR5KHQscikuZ2V0KCk7cmV0dXJuIGYuaXNBcnJheU9yVHlwZWRBcnJheShpKT9BcnJheS5pc0FycmF5KGUpJiZmLmlzQXJyYXlPclR5cGVkQXJyYXkoaVtlWzBdXSk/bihpW2VbMF1dW2VbMV1dKTpuKGlbZV0pOml9LGYuZXh0cmFjdE9wdGlvbj1mdW5jdGlvbih0LGUscixuKXtpZihyIGluIHQpcmV0dXJuIHRbcl07dmFyIGk9Zi5uZXN0ZWRQcm9wZXJ0eShlLG4pLmdldCgpO3JldHVybiBBcnJheS5pc0FycmF5KGkpP3ZvaWQgMDppfSxmLnRhZ1NlbGVjdGVkPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGE9ZS5zZWxlY3RlZHBvaW50cyxvPWUuX2luZGV4VG9Qb2ludHM7byYmKG49RShvKSk7Zm9yKHZhciBzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBsPWFbc107aWYoZi5pc0luZGV4KGwpfHxmLmlzQXJyYXlPclR5cGVkQXJyYXkobCkmJmYuaXNJbmRleChsWzBdKSYmZi5pc0luZGV4KGxbMV0pKXt2YXIgYz1uP25bbF06bCx1PXI/cltjXTpjO3ZvaWQgMCE9PShpPXUpJiZpPHQubGVuZ3RoJiYodFt1XS5zZWxlY3RlZD0xKX19fSxmLnNlbEluZGljZXMyc2VsUG9pbnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuc2VsZWN0ZWRwb2ludHMscj10Ll9pbmRleFRvUG9pbnRzO2lmKHIpe2Zvcih2YXIgbj1FKHIpLGk9W10sYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgbz1lW2FdO2lmKGYuaXNJbmRleChvKSl7dmFyIHM9bltvXTtmLmlzSW5kZXgocykmJmkucHVzaChzKX19cmV0dXJuIGl9cmV0dXJuIGV9LGYuZ2V0VGFyZ2V0QXJyYXk9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnRhcmdldDtpZigic3RyaW5nIj09dHlwZW9mIHImJnIpe3ZhciBuPWYubmVzdGVkUHJvcGVydHkodCxyKS5nZXQoKTtyZXR1cm4hIUFycmF5LmlzQXJyYXkobikmJm59cmV0dXJuISFBcnJheS5pc0FycmF5KHIpJiZyfSxmLm1pbkV4dGVuZD1mdW5jdGlvbih0LGUpe3ZhciByPXt9OyJvYmplY3QiIT10eXBlb2YgZSYmKGU9e30pO3ZhciBuLGksYSxvPU9iamVjdC5rZXlzKHQpO2ZvcihuPTA7bjxvLmxlbmd0aDtuKyspYT10W2k9b1tuXV0sIl8iIT09aS5jaGFyQXQoMCkmJiJmdW5jdGlvbiIhPXR5cGVvZiBhJiYoIm1vZHVsZSI9PT1pP3JbaV09YTpBcnJheS5pc0FycmF5KGEpP3JbaV09ImNvbG9yc2NhbGUiPT09aT9hLnNsaWNlKCk6YS5zbGljZSgwLDMpOmYuaXNUeXBlZEFycmF5KGEpP3JbaV09YS5zdWJhcnJheSgwLDMpOnJbaV09YSYmIm9iamVjdCI9PXR5cGVvZiBhP2YubWluRXh0ZW5kKHRbaV0sZVtpXSk6YSk7Zm9yKG89T2JqZWN0LmtleXMoZSksbj0wO248by5sZW5ndGg7bisrKSJvYmplY3QiPT10eXBlb2YoYT1lW2k9b1tuXV0pJiZpIGluIHImJiJvYmplY3QiPT10eXBlb2YgcltpXXx8KHJbaV09YSk7cmV0dXJuIHJ9LGYudGl0bGVDYXNlPWZ1bmN0aW9uKHQpe3JldHVybiB0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpK3Quc3Vic3RyKDEpfSxmLmNvbnRhaW5zQW55PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspaWYoLTEhPT10LmluZGV4T2YoZVtyXSkpcmV0dXJuITA7cmV0dXJuITF9LGYuaXNJRT1mdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT13aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2J9O3ZhciBMPS9WZXJzaW9uXC9bXGRcLl0rLipTYWZhcmkvO2YuaXNTYWZhcmk9ZnVuY3Rpb24oKXtyZXR1cm4gTC50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KX07dmFyIEM9L2lQYWR8aVBob25lfGlQb2QvO2YuaXNJT1M9ZnVuY3Rpb24oKXtyZXR1cm4gQy50ZXN0KHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50KX07dmFyIFA9L0ZpcmVmb3hcLyhcZCspXC5cZCsvO2YuZ2V0RmlyZWZveFZlcnNpb249ZnVuY3Rpb24oKXt2YXIgdD1QLmV4ZWMod2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQpO2lmKHQmJjI9PT10Lmxlbmd0aCl7dmFyIGU9cGFyc2VJbnQodFsxXSk7aWYoIWlzTmFOKGUpKXJldHVybiBlfXJldHVybiBudWxsfSxmLmlzRDNTZWxlY3Rpb249ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBuLnNlbGVjdGlvbn0sZi5lbnN1cmVTaW5nbGU9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5zZWxlY3QoZSsocj8iLiIrcjoiIikpO2lmKGkuc2l6ZSgpKXJldHVybiBpO3ZhciBhPXQuYXBwZW5kKGUpO3JldHVybiByJiZhLmNsYXNzZWQociwhMCksbiYmYS5jYWxsKG4pLGF9LGYuZW5zdXJlU2luZ2xlQnlJZD1mdW5jdGlvbih0LGUscixuKXt2YXIgaT10LnNlbGVjdChlKyIjIityKTtpZihpLnNpemUoKSlyZXR1cm4gaTt2YXIgYT10LmFwcGVuZChlKS5hdHRyKCJpZCIscik7cmV0dXJuIG4mJmEuY2FsbChuKSxhfSxmLm9iamVjdEZyb21QYXRoPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC5zcGxpdCgiLiIpLGk9cj17fSxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBvPW5bYV0scz1udWxsLGw9blthXS5tYXRjaCgvKC4qKVxbKFswLTldKylcXS8pO2w/KG89bFsxXSxzPWxbMl0scj1yW29dPVtdLGE9PT1uLmxlbmd0aC0xP3Jbc109ZTpyW3NdPXt9LHI9cltzXSk6KGE9PT1uLmxlbmd0aC0xP3Jbb109ZTpyW29dPXt9LHI9cltvXSl9cmV0dXJuIGl9O3ZhciBJPS9eKFteXFtcLl0rKVwuKC4rKT8vLE89L14oW15cLl0rKVxbKFswLTldKylcXShcLik/KC4rKT8vO2YuZXhwYW5kT2JqZWN0UGF0aHM9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHM7aWYoIm9iamVjdCI9PXR5cGVvZiB0JiYhQXJyYXkuaXNBcnJheSh0KSlmb3IociBpbiB0KXQuaGFzT3duUHJvcGVydHkocikmJigoZT1yLm1hdGNoKEkpKT8oaT10W3JdLG49ZVsxXSxkZWxldGUgdFtyXSx0W25dPWYuZXh0ZW5kRGVlcE5vQXJyYXlzKHRbbl18fHt9LGYub2JqZWN0RnJvbVBhdGgocixmLmV4cGFuZE9iamVjdFBhdGhzKGkpKVtuXSkpOihlPXIubWF0Y2goTykpPyhpPXRbcl0sbj1lWzFdLGE9cGFyc2VJbnQoZVsyXSksZGVsZXRlIHRbcl0sdFtuXT10W25dfHxbXSwiLiI9PT1lWzNdPyhzPWVbNF0sbz10W25dW2FdPXRbbl1bYV18fHt9LGYuZXh0ZW5kRGVlcE5vQXJyYXlzKG8sZi5vYmplY3RGcm9tUGF0aChzLGYuZXhwYW5kT2JqZWN0UGF0aHMoaSkpKSk6dFtuXVthXT1mLmV4cGFuZE9iamVjdFBhdGhzKGkpKTp0W3JdPWYuZXhwYW5kT2JqZWN0UGF0aHModFtyXSkpO3JldHVybiB0fSxmLm51bVNlcGFyYXRlPWZ1bmN0aW9uKHQsZSxyKXtpZihyfHwocj0hMSksInN0cmluZyIhPXR5cGVvZiBlfHwwPT09ZS5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJTZXBhcmF0b3Igc3RyaW5nIHJlcXVpcmVkIGZvciBmb3JtYXR0aW5nISIpOyJudW1iZXIiPT10eXBlb2YgdCYmKHQ9U3RyaW5nKHQpKTt2YXIgbj0vKFxkKykoXGR7M30pLyxpPWUuY2hhckF0KDApLGE9ZS5jaGFyQXQoMSksbz10LnNwbGl0KCIuIikscz1vWzBdLGw9by5sZW5ndGg+MT9pK29bMV06IiI7aWYoYSYmKG8ubGVuZ3RoPjF8fHMubGVuZ3RoPjR8fHIpKWZvcig7bi50ZXN0KHMpOylzPXMucmVwbGFjZShuLCIkMSIrYSsiJDIiKTtyZXR1cm4gcytsfSxmLlRFTVBMQVRFX1NUUklOR19SRUdFWD0vJXsoW15ccyV7fTpdKikoWzp8XHxdW159XSopP30vZzt2YXIgej0vXlx3KiQvO2YudGVtcGxhdGVTdHJpbmc9ZnVuY3Rpb24odCxlKXt2YXIgcj17fTtyZXR1cm4gdC5yZXBsYWNlKGYuVEVNUExBVEVfU1RSSU5HX1JFR0VYLChmdW5jdGlvbih0LG4pe3ZhciBpO3JldHVybiB6LnRlc3Qobik/aT1lW25dOihyW25dPXJbbl18fGYubmVzdGVkUHJvcGVydHkoZSxuKS5nZXQsaT1yW25dKCkpLGYuaXNWYWxpZFRleHRWYWx1ZShpKT9pOiIifSkpfTt2YXIgRD17bWF4OjEwLGNvdW50OjAsbmFtZToiaG92ZXJ0ZW1wbGF0ZSJ9O2YuaG92ZXJ0ZW1wbGF0ZVN0cmluZz1mdW5jdGlvbigpe3JldHVybiBCLmFwcGx5KEQsYXJndW1lbnRzKX07dmFyIFI9e21heDoxMCxjb3VudDowLG5hbWU6InRleHR0ZW1wbGF0ZSJ9O2YudGV4dHRlbXBsYXRlU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIEIuYXBwbHkoUixhcmd1bWVudHMpfTt2YXIgRj0vXls6fFx8XS87ZnVuY3Rpb24gQih0LGUscil7dmFyIG49dGhpcyxhPWFyZ3VtZW50cztlfHwoZT17fSk7dmFyIG89e307cmV0dXJuIHQucmVwbGFjZShmLlRFTVBMQVRFX1NUUklOR19SRUdFWCwoZnVuY3Rpb24odCxzLGwpe3ZhciBjLHUsaCxwPSJfeG90aGVyIj09PXN8fCJfeW90aGVyIj09PXMsZD0iX3hvdGhlcl8iPT09c3x8Il95b3RoZXJfIj09PXMsbT0ieG90aGVyXyI9PT1zfHwieW90aGVyXyI9PT1zLGc9InhvdGhlciI9PT1zfHwieW90aGVyIj09PXN8fHB8fG18fGQsdj1zO2lmKChwfHxkKSYmKHY9di5zdWJzdHJpbmcoMSkpLChtfHxkKSYmKHY9di5zdWJzdHJpbmcoMCx2Lmxlbmd0aC0xKSksZyl7aWYodm9pZCAwPT09KGM9ZVt2XSkpcmV0dXJuIiJ9ZWxzZSBmb3IoaD0zO2g8YS5sZW5ndGg7aCsrKWlmKHU9YVtoXSl7aWYodS5oYXNPd25Qcm9wZXJ0eSh2KSl7Yz11W3ZdO2JyZWFrfWlmKHoudGVzdCh2KXx8KGM9Zi5uZXN0ZWRQcm9wZXJ0eSh1LHYpLmdldCgpLChjPW9bdl18fGYubmVzdGVkUHJvcGVydHkodSx2KS5nZXQoKSkmJihvW3ZdPWMpKSx2b2lkIDAhPT1jKWJyZWFrfWlmKHZvaWQgMD09PWMmJm4pcmV0dXJuIG4uY291bnQ8bi5tYXgmJihmLndhcm4oIlZhcmlhYmxlICciK3YrIicgaW4gIituLm5hbWUrIiBjb3VsZCBub3QgYmUgZm91bmQhIiksYz10KSxuLmNvdW50PT09bi5tYXgmJmYud2FybigiVG9vIG1hbnkgIituLm5hbWUrIiB3YXJuaW5ncyAtIGFkZGl0aW9uYWwgd2FybmluZ3Mgd2lsbCBiZSBzdXBwcmVzc2VkIiksbi5jb3VudCsrLHQ7aWYobCl7dmFyIHk7aWYoIjoiPT09bFswXSYmKGM9KHk9cj9yLm51bWJlckZvcm1hdDpmLm51bWJlckZvcm1hdCkobC5yZXBsYWNlKEYsIiIpKShjKSksInwiPT09bFswXSl7eT1yP3IudGltZUZvcm1hdDppO3ZhciB4PWYuZGF0ZVRpbWUybXMoYyk7Yz1mLmZvcm1hdERhdGUoeCxsLnJlcGxhY2UoRiwiIiksITEseSl9fWVsc2V7dmFyIGI9disiTGFiZWwiO2UuaGFzT3duUHJvcGVydHkoYikmJihjPWVbYl0pfXJldHVybiBnJiYoYz0iKCIrYysiKSIsKHB8fGQpJiYoYz0iICIrYyksKG18fGQpJiYoYys9IiAiKSksY30pKX1mLnN1YnBsb3RTb3J0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKSsxLG49MCxpPTAsYT0wO2E8cjthKyspe3ZhciBvPXQuY2hhckNvZGVBdChhKXx8MCxzPWUuY2hhckNvZGVBdChhKXx8MCxsPW8+PTQ4JiZvPD01NyxjPXM+PTQ4JiZzPD01NztpZihsJiYobj0xMCpuK28tNDgpLGMmJihpPTEwKmkrcy00OCksIWx8fCFjKXtpZihuIT09aSlyZXR1cm4gbi1pO2lmKG8hPT1zKXJldHVybiBvLXN9fXJldHVybiBpLW59O3ZhciBOPTJlOTtmLnNlZWRQc2V1ZG9SYW5kb209ZnVuY3Rpb24oKXtOPTJlOX0sZi5wc2V1ZG9SYW5kb209ZnVuY3Rpb24oKXt2YXIgdD1OO3JldHVybiBOPSg2OTA2OSpOKzEpJTQyOTQ5NjcyOTYsTWF0aC5hYnMoTi10KTw0Mjk0OTY3Mjk/Zi5wc2V1ZG9SYW5kb20oKTpOLzQyOTQ5NjcyOTZ9LGYuZmlsbFRleHQ9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPUFycmF5LmlzQXJyYXkocik/ZnVuY3Rpb24odCl7ci5wdXNoKHQpfTpmdW5jdGlvbih0KXtyLnRleHQ9dH0saT1mLmV4dHJhY3RPcHRpb24odCxlLCJodHgiLCJob3ZlcnRleHQiKTtpZihmLmlzVmFsaWRUZXh0VmFsdWUoaSkpcmV0dXJuIG4oaSk7dmFyIGE9Zi5leHRyYWN0T3B0aW9uKHQsZSwidHgiLCJ0ZXh0Iik7cmV0dXJuIGYuaXNWYWxpZFRleHRWYWx1ZShhKT9uKGEpOnZvaWQgMH0sZi5pc1ZhbGlkVGV4dFZhbHVlPWZ1bmN0aW9uKHQpe3JldHVybiB0fHwwPT09dH0sZi5mb3JtYXRQZXJjZW50PWZ1bmN0aW9uKHQsZSl7ZT1lfHwwO2Zvcih2YXIgcj0oTWF0aC5yb3VuZCgxMDAqdCpNYXRoLnBvdygxMCxlKSkqTWF0aC5wb3coLjEsZSkpLnRvRml4ZWQoZSkrIiUiLG49MDtuPGU7bisrKS0xIT09ci5pbmRleE9mKCIuIikmJihyPShyPXIucmVwbGFjZSgiMCUiLCIlIikpLnJlcGxhY2UoIi4lIiwiJSIpKTtyZXR1cm4gcn0sZi5pc0hpZGRlbj1mdW5jdGlvbih0KXt2YXIgZT13aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KS5kaXNwbGF5O3JldHVybiFlfHwibm9uZSI9PT1lfSxmLnN0clRyYW5zbGF0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB0fHxlPyJ0cmFuc2xhdGUoIit0KyIsIitlKyIpIjoiIn0sZi5zdHJSb3RhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQ/InJvdGF0ZSgiK3QrIikiOiIifSxmLnN0clNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiAxIT09dD8ic2NhbGUoIit0KyIpIjoiIn0sZi5nZXRUZXh0VHJhbnNmb3JtPWZ1bmN0aW9uKHQpe3ZhciBlPXQubm9DZW50ZXIscj10LnRleHRYLG49dC50ZXh0WSxpPXQudGFyZ2V0WCxhPXQudGFyZ2V0WSxvPXQuYW5jaG9yWHx8MCxzPXQuYW5jaG9yWXx8MCxsPXQucm90YXRlLGM9dC5zY2FsZTtyZXR1cm4gYz9jPjEmJihjPTEpOmM9MCxmLnN0clRyYW5zbGF0ZShpLWMqKHIrbyksYS1jKihuK3MpKStmLnN0clNjYWxlKGMpKyhsPyJyb3RhdGUoIitsKyhlPyIiOiIgIityKyIgIituKSsiKSI6IiIpfSxmLmVuc3VyZVVuaWZvcm1Gb250U2l6ZT1mdW5jdGlvbih0LGUpe3ZhciByPWYuZXh0ZW5kRmxhdCh7fSxlKTtyZXR1cm4gci5zaXplPU1hdGgubWF4KGUuc2l6ZSx0Ll9mdWxsTGF5b3V0LnVuaWZvcm10ZXh0Lm1pbnNpemV8fDApLHJ9LGYuam9pbjI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQubGVuZ3RoO3JldHVybiBuPjE/dC5zbGljZSgwLC0xKS5qb2luKGUpK3IrdFtuLTFdOnQuam9pbihlKX0sZi5iaWdGb250PWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnJvdW5kKDEuMip0KX07dmFyIGo9Zi5nZXRGaXJlZm94VmVyc2lvbigpLFU9bnVsbCE9PWomJmo8ODY7Zi5nZXRQb3NpdGlvbkZyb21EM0V2ZW50PWZ1bmN0aW9uKCl7cmV0dXJuIFU/W24uZXZlbnQubGF5ZXJYLG4uZXZlbnQubGF5ZXJZXTpbbi5ldmVudC5vZmZzZXRYLG4uZXZlbnQub2Zmc2V0WV19fSx7Ii4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi9hbmNob3JfdXRpbHMiOjc1NiwiLi9hbmdsZXMiOjc1NywiLi9hcnJheSI6NzU4LCIuL2NsZWFuX251bWJlciI6NzU5LCIuL2NsZWFyX3Jlc3BvbnNpdmUiOjc2MSwiLi9jb2VyY2UiOjc2MiwiLi9kYXRlcyI6NzYzLCIuL2RvbSI6NzY0LCIuL2V4dGVuZCI6NzY2LCIuL2ZpbHRlcl91bmlxdWUiOjc2NywiLi9maWx0ZXJfdmlzaWJsZSI6NzY4LCIuL2dlb21ldHJ5MmQiOjc3MSwiLi9pZGVudGl0eSI6Nzc0LCIuL2luY3JlbWVudCI6Nzc1LCIuL2lzX3BsYWluX29iamVjdCI6Nzc3LCIuL2tleWVkX2NvbnRhaW5lciI6Nzc4LCIuL2xvY2FsaXplIjo3NzksIi4vbG9nZ2VycyI6NzgwLCIuL21ha2VfdHJhY2VfZ3JvdXBzIjo3ODEsIi4vbWF0cml4Ijo3ODIsIi4vbW9kIjo3ODMsIi4vbmVzdGVkX3Byb3BlcnR5Ijo3ODQsIi4vbm9vcCI6Nzg1LCIuL25vdGlmaWVyIjo3ODYsIi4vcHJlc2VydmVfZHJhd2luZ19idWZmZXIiOjc5MCwiLi9wdXNoX3VuaXF1ZSI6NzkxLCIuL3JlZ2V4Ijo3OTMsIi4vcmVsYXRpdmVfYXR0ciI6Nzk0LCIuL3JlbGlua19wcml2YXRlIjo3OTUsIi4vc2VhcmNoIjo3OTYsIi4vc29ydF9vYmplY3Rfa2V5cyI6Nzk5LCIuL3N0YXRzIjo4MDAsIi4vdGhyb3R0bGUiOjgwMywiLi90b19sb2dfcmFuZ2UiOjgwNCwiQHBsb3RseS9kMyI6NTgsImQzLWZvcm1hdCI6MTYwLCJkMy10aW1lLWZvcm1hdCI6MTY4LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sNzc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gd2luZG93JiZ3aW5kb3cucHJvY2VzcyYmd2luZG93LnByb2Nlc3MudmVyc2lvbnM/IltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCk6IltvYmplY3QgT2JqZWN0XSI9PT1PYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwodCkmJk9iamVjdC5nZXRQcm90b3R5cGVPZih0KS5oYXNPd25Qcm9wZXJ0eSgiaGFzT3duUHJvcGVydHkiKX19LHt9XSw3Nzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9uZXN0ZWRfcHJvcGVydHkiKSxpPS9eXHcqJC87ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvLHMsbDtyPXJ8fCJuYW1lIixhPWF8fCJ2YWx1ZSI7dmFyIGM9e307ZSYmZS5sZW5ndGg/KGw9bih0LGUpLHM9bC5nZXQoKSk6cz10LGU9ZXx8IiI7dmFyIHU9e307aWYocylmb3Iobz0wO288cy5sZW5ndGg7bysrKXVbc1tvXVtyXV09bzt2YXIgZj1pLnRlc3QoYSksaD17c2V0OmZ1bmN0aW9uKHQsZSl7dmFyIGk9bnVsbD09PWU/NDowO2lmKCFzKXtpZighbHx8ND09PWkpcmV0dXJuO3M9W10sbC5zZXQocyl9dmFyIG89dVt0XTtpZih2b2lkIDA9PT1vKXtpZig0PT09aSlyZXR1cm47aXw9MyxvPXMubGVuZ3RoLHVbdF09b31lbHNlIGUhPT0oZj9zW29dW2FdOm4oc1tvXSxhKS5nZXQoKSkmJihpfD0yKTt2YXIgcD1zW29dPXNbb118fHt9O3JldHVybiBwW3JdPXQsZj9wW2FdPWU6bihwLGEpLnNldChlKSxudWxsIT09ZSYmKGkmPS01KSxjW29dPWNbb118aSxofSxnZXQ6ZnVuY3Rpb24odCl7aWYocyl7dmFyIGU9dVt0XTtyZXR1cm4gdm9pZCAwPT09ZT92b2lkIDA6Zj9zW2VdW2FdOm4oc1tlXSxhKS5nZXQoKX19LHJlbmFtZTpmdW5jdGlvbih0LGUpe3ZhciBuPXVbdF07cmV0dXJuIHZvaWQgMD09PW58fChjW25dPTF8Y1tuXSx1W2VdPW4sZGVsZXRlIHVbdF0sc1tuXVtyXT1lKSxofSxyZW1vdmU6ZnVuY3Rpb24odCl7dmFyIGU9dVt0XTtpZih2b2lkIDA9PT1lKXJldHVybiBoO3ZhciBpPXNbZV07aWYoT2JqZWN0LmtleXMoaSkubGVuZ3RoPjIpcmV0dXJuIGNbZV09MnxjW2VdLGguc2V0KHQsbnVsbCk7aWYoZil7Zm9yKG89ZTtvPHMubGVuZ3RoO28rKyljW29dPTN8Y1tvXTtmb3Iobz1lO288cy5sZW5ndGg7bysrKXVbc1tvXVtyXV0tLTtzLnNwbGljZShlLDEpLGRlbGV0ZSB1W3RdfWVsc2UgbihpLGEpLnNldChudWxsKSxjW2VdPTZ8Y1tlXTtyZXR1cm4gaH0sY29uc3RydWN0VXBkYXRlOmZ1bmN0aW9uKCl7Zm9yKHZhciB0LGksbz17fSxsPU9iamVjdC5rZXlzKGMpLHU9MDt1PGwubGVuZ3RoO3UrKylpPWxbdV0sdD1lKyJbIitpKyJdIixzW2ldPygxJmNbaV0mJihvW3QrIi4iK3JdPXNbaV1bcl0pLDImY1tpXSYmKG9bdCsiLiIrYV09Zj80JmNbaV0/bnVsbDpzW2ldW2FdOjQmY1tpXT9udWxsOm4oc1tpXSxhKS5nZXQoKSkpOm9bdF09bnVsbDtyZXR1cm4gb319O3JldHVybiBofX0seyIuL25lc3RlZF9wcm9wZXJ0eSI6Nzg0fV0sNzc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3JlZ2lzdHJ5Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2NvbnRleHQubG9jYWxlLGk9MDtpPDI7aSsrKXtmb3IodmFyIGE9dC5fY29udGV4dC5sb2NhbGVzLG89MDtvPDI7bysrKXt2YXIgcz0oYVtyXXx8e30pLmRpY3Rpb25hcnk7aWYocyl7dmFyIGw9c1tlXTtpZihsKXJldHVybiBsfWE9bi5sb2NhbGVSZWdpc3RyeX12YXIgYz1yLnNwbGl0KCItIilbMF07aWYoYz09PXIpYnJlYWs7cj1jfXJldHVybiBlfX0seyIuLi9yZWdpc3RyeSI6OTA0fV0sNzgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3Bsb3RfYXBpL3Bsb3RfY29uZmlnIikuZGZsdENvbmZpZyxpPXQoIi4vbm90aWZpZXIiKSxhPWUuZXhwb3J0cz17fTthLmxvZz1mdW5jdGlvbigpe3ZhciB0O2lmKG4ubG9nZ2luZz4xKXt2YXIgZT1bIkxPRzoiXTtmb3IodD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0KyspZS5wdXNoKGFyZ3VtZW50c1t0XSk7Y29uc29sZS50cmFjZS5hcHBseShjb25zb2xlLGUpfWlmKG4ubm90aWZ5T25Mb2dnaW5nPjEpe3ZhciByPVtdO2Zvcih0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKylyLnB1c2goYXJndW1lbnRzW3RdKTtpKHIuam9pbigiPGJyPiIpLCJsb25nIil9fSxhLndhcm49ZnVuY3Rpb24oKXt2YXIgdDtpZihuLmxvZ2dpbmc+MCl7dmFyIGU9WyJXQVJOOiJdO2Zvcih0PTA7dDxhcmd1bWVudHMubGVuZ3RoO3QrKyllLnB1c2goYXJndW1lbnRzW3RdKTtjb25zb2xlLnRyYWNlLmFwcGx5KGNvbnNvbGUsZSl9aWYobi5ub3RpZnlPbkxvZ2dpbmc+MCl7dmFyIHI9W107Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKXIucHVzaChhcmd1bWVudHNbdF0pO2koci5qb2luKCI8YnI+IiksInN0aWNrIil9fSxhLmVycm9yPWZ1bmN0aW9uKCl7dmFyIHQ7aWYobi5sb2dnaW5nPjApe3ZhciBlPVsiRVJST1I6Il07Zm9yKHQ9MDt0PGFyZ3VtZW50cy5sZW5ndGg7dCsrKWUucHVzaChhcmd1bWVudHNbdF0pO2NvbnNvbGUuZXJyb3IuYXBwbHkoY29uc29sZSxlKX1pZihuLm5vdGlmeU9uTG9nZ2luZz4wKXt2YXIgcj1bXTtmb3IodD0wO3Q8YXJndW1lbnRzLmxlbmd0aDt0Kyspci5wdXNoKGFyZ3VtZW50c1t0XSk7aShyLmpvaW4oIjxicj4iKSwic3RpY2siKX19fSx7Ii4uL3Bsb3RfYXBpL3Bsb3RfY29uZmlnIjo4MTQsIi4vbm90aWZpZXIiOjc4Nn1dLDc4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10LnNlbGVjdEFsbCgiZy4iK3IucmVwbGFjZSgvXHMvZywiLiIpKS5kYXRhKGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLnVpZH0pKTtpLmV4aXQoKS5yZW1vdmUoKSxpLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLHIpLGkub3JkZXIoKTt2YXIgYT10LmNsYXNzZWQoInJhbmdlcGxvdCIpPyJub2RlUmFuZ2VQbG90MyI6Im5vZGUzIjtyZXR1cm4gaS5lYWNoKChmdW5jdGlvbih0KXt0WzBdW2FdPW4uc2VsZWN0KHRoaXMpfSkpLGl9fSx7IkBwbG90bHkvZDMiOjU4fV0sNzgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLW1hdDQiKTtyLmluaXQyZEFycmF5PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSh0KSxuPTA7bjx0O24rKylyW25dPW5ldyBBcnJheShlKTtyZXR1cm4gcn0sci50cmFuc3Bvc2VSYWdnZWQ9ZnVuY3Rpb24odCl7dmFyIGUscixuPTAsaT10Lmxlbmd0aDtmb3IoZT0wO2U8aTtlKyspbj1NYXRoLm1heChuLHRbZV0ubGVuZ3RoKTt2YXIgYT1uZXcgQXJyYXkobik7Zm9yKGU9MDtlPG47ZSsrKWZvcihhW2VdPW5ldyBBcnJheShpKSxyPTA7cjxpO3IrKylhW2VdW3JdPXRbcl1bZV07cmV0dXJuIGF9LHIuZG90PWZ1bmN0aW9uKHQsZSl7aWYoIXQubGVuZ3RofHwhZS5sZW5ndGh8fHQubGVuZ3RoIT09ZS5sZW5ndGgpcmV0dXJuIG51bGw7dmFyIG4saSxhPXQubGVuZ3RoO2lmKHRbMF0ubGVuZ3RoKWZvcihuPW5ldyBBcnJheShhKSxpPTA7aTxhO2krKyluW2ldPXIuZG90KHRbaV0sZSk7ZWxzZSBpZihlWzBdLmxlbmd0aCl7dmFyIG89ci50cmFuc3Bvc2VSYWdnZWQoZSk7Zm9yKG49bmV3IEFycmF5KG8ubGVuZ3RoKSxpPTA7aTxvLmxlbmd0aDtpKyspbltpXT1yLmRvdCh0LG9baV0pfWVsc2UgZm9yKG49MCxpPTA7aTxhO2krKyluKz10W2ldKmVbaV07cmV0dXJuIG59LHIudHJhbnNsYXRpb25NYXRyaXg9ZnVuY3Rpb24odCxlKXtyZXR1cm5bWzEsMCx0XSxbMCwxLGVdLFswLDAsMV1dfSxyLnJvdGF0aW9uTWF0cml4PWZ1bmN0aW9uKHQpe3ZhciBlPXQqTWF0aC5QSS8xODA7cmV0dXJuW1tNYXRoLmNvcyhlKSwtTWF0aC5zaW4oZSksMF0sW01hdGguc2luKGUpLE1hdGguY29zKGUpLDBdLFswLDAsMV1dfSxyLnJvdGF0aW9uWFlNYXRyaXg9ZnVuY3Rpb24odCxlLG4pe3JldHVybiByLmRvdChyLmRvdChyLnRyYW5zbGF0aW9uTWF0cml4KGUsbiksci5yb3RhdGlvbk1hdHJpeCh0KSksci50cmFuc2xhdGlvbk1hdHJpeCgtZSwtbikpfSxyLmFwcGx5M0RUcmFuc2Zvcm09ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIGU9YXJndW1lbnRzLG49MT09PWFyZ3VtZW50cy5sZW5ndGg/ZVswXTpbZVswXSxlWzFdLGVbMl18fDBdO3JldHVybiByLmRvdCh0LFtuWzBdLG5bMV0sblsyXSwxXSkuc2xpY2UoMCwzKX19LHIuYXBwbHkyRFRyYW5zZm9ybT1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgZT1hcmd1bWVudHM7Mz09PWUubGVuZ3RoJiYoZT1lWzBdKTt2YXIgbj0xPT09YXJndW1lbnRzLmxlbmd0aD9lWzBdOltlWzBdLGVbMV1dO3JldHVybiByLmRvdCh0LFtuWzBdLG5bMV0sMV0pLnNsaWNlKDAsMil9fSxyLmFwcGx5MkRUcmFuc2Zvcm0yPWZ1bmN0aW9uKHQpe3ZhciBlPXIuYXBwbHkyRFRyYW5zZm9ybSh0KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGUodC5zbGljZSgwLDIpKS5jb25jYXQoZSh0LnNsaWNlKDIsNCkpKX19LHIuY29udmVydENzc01hdHJpeD1mdW5jdGlvbih0KXtpZih0KXt2YXIgZT10Lmxlbmd0aDtpZigxNj09PWUpcmV0dXJuIHQ7aWYoNj09PWUpcmV0dXJuW3RbMF0sdFsxXSwwLDAsdFsyXSx0WzNdLDAsMCwwLDAsMSwwLHRbNF0sdFs1XSwwLDFdfXJldHVyblsxLDAsMCwwLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwxXX0sci5pbnZlcnNlVHJhbnNmb3JtTWF0cml4PWZ1bmN0aW9uKHQpe3ZhciBlPVtdO3JldHVybiBuLmludmVydChlLHQpLFtbZVswXSxlWzFdLGVbMl0sZVszXV0sW2VbNF0sZVs1XSxlWzZdLGVbN11dLFtlWzhdLGVbOV0sZVsxMF0sZVsxMV1dLFtlWzEyXSxlWzEzXSxlWzE0XSxlWzE1XV1dfX0seyJnbC1tYXQ0IjoyODZ9XSw3ODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2Q6ZnVuY3Rpb24odCxlKXt2YXIgcj10JWU7cmV0dXJuIHI8MD9yK2U6cn0sbW9kSGFsZjpmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLmFicyh0KT5lLzI/dC1NYXRoLnJvdW5kKHQvZSkqZTp0fX19LHt9XSw3ODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4vYXJyYXkiKS5pc0FycmF5T3JUeXBlZEFycmF5O2Z1bmN0aW9uIGEodCxlKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgcixuLG8scyxsLGM9dDtmb3Iocz0wO3M8ZS5sZW5ndGgtMTtzKyspe2lmKC0xPT09KHI9ZVtzXSkpe2ZvcihuPSEwLG89W10sbD0wO2w8Yy5sZW5ndGg7bCsrKW9bbF09YShjW2xdLGUuc2xpY2UocysxKSkoKSxvW2xdIT09b1swXSYmKG49ITEpO3JldHVybiBuP29bMF06b31pZigibnVtYmVyIj09dHlwZW9mIHImJiFpKGMpKXJldHVybjtpZigib2JqZWN0IiE9dHlwZW9mKGM9Y1tyXSl8fG51bGw9PT1jKXJldHVybn1pZigib2JqZWN0Ij09dHlwZW9mIGMmJm51bGwhPT1jJiZudWxsIT09KG89Y1tlW3NdXSkpcmV0dXJuIG99fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKG4oZSkpZT1TdHJpbmcoZSk7ZWxzZSBpZigic3RyaW5nIiE9dHlwZW9mIGV8fCJbLTFdIj09PWUuc3Vic3RyKGUubGVuZ3RoLTQpKXRocm93ImJhZCBwcm9wZXJ0eSBzdHJpbmciO2Zvcih2YXIgcixpLG8scz0wLGM9ZS5zcGxpdCgiLiIpO3M8Yy5sZW5ndGg7KXtpZihyPVN0cmluZyhjW3NdKS5tYXRjaCgvXihbXlxbXF1dKikoKFxbXC0/WzAtOV0qXF0pKykkLykpe2lmKHJbMV0pY1tzXT1yWzFdO2Vsc2V7aWYoMCE9PXMpdGhyb3ciYmFkIHByb3BlcnR5IHN0cmluZyI7Yy5zcGxpY2UoMCwxKX1mb3IoaT1yWzJdLnN1YnN0cigxLHJbMl0ubGVuZ3RoLTIpLnNwbGl0KCJdWyIpLG89MDtvPGkubGVuZ3RoO28rKylzKyssYy5zcGxpY2UocywwLE51bWJlcihpW29dKSl9cysrfXJldHVybiJvYmplY3QiIT10eXBlb2YgdD9mdW5jdGlvbih0LGUscil7cmV0dXJue3NldDpmdW5jdGlvbigpe3Rocm93ImJhZCBjb250YWluZXIifSxnZXQ6ZnVuY3Rpb24oKXt9LGFzdHI6ZSxwYXJ0czpyLG9iajp0fX0odCxlLGMpOntzZXQ6bCh0LGMsZSksZ2V0OmEodCxjKSxhc3RyOmUscGFydHM6YyxvYmo6dH19O3ZhciBvPS8oXnxcLilhcmdzXFsvO2Z1bmN0aW9uIHModCxlKXtyZXR1cm4gdm9pZCAwPT09dHx8bnVsbD09PXQmJiFlLm1hdGNoKG8pfWZ1bmN0aW9uIGwodCxlLHIpe3JldHVybiBmdW5jdGlvbihuKXt2YXIgYSxvLGw9dCxoPSIiLHA9W1t0LGhdXSxkPXMobixyKTtmb3Iobz0wO288ZS5sZW5ndGgtMTtvKyspe2lmKCJudW1iZXIiPT10eXBlb2YoYT1lW29dKSYmIWkobCkpdGhyb3ciYXJyYXkgaW5kZXggYnV0IGNvbnRhaW5lciBpcyBub3QgYW4gYXJyYXkiO2lmKC0xPT09YSl7aWYoZD0hdShsLGUuc2xpY2UobysxKSxuLHIpKWJyZWFrO3JldHVybn1pZighZihsLGEsZVtvKzFdLGQpKWJyZWFrO2lmKCJvYmplY3QiIT10eXBlb2YobD1sW2FdKXx8bnVsbD09PWwpdGhyb3ciY29udGFpbmVyIGlzIG5vdCBhbiBvYmplY3QiO2g9YyhoLGEpLHAucHVzaChbbCxoXSl9aWYoZCl7aWYobz09PWUubGVuZ3RoLTEmJihkZWxldGUgbFtlW29dXSxBcnJheS5pc0FycmF5KGwpJiYrZVtvXT09bC5sZW5ndGgtMSkpZm9yKDtsLmxlbmd0aCYmdm9pZCAwPT09bFtsLmxlbmd0aC0xXTspbC5wb3AoKX1lbHNlIGxbZVtvXV09bn19ZnVuY3Rpb24gYyh0LGUpe3ZhciByPWU7cmV0dXJuIG4oZSk/cj0iWyIrZSsiXSI6dCYmKHI9Ii4iK2UpLHQrcn1mdW5jdGlvbiB1KHQsZSxyLG4pe3ZhciBhLG89aShyKSxjPSEwLHU9cixoPW4ucmVwbGFjZSgiLTEiLDApLHA9IW8mJnMocixoKSxkPWVbMF07Zm9yKGE9MDthPHQubGVuZ3RoO2ErKyloPW4ucmVwbGFjZSgiLTEiLGEpLG8mJihwPXModT1yW2Elci5sZW5ndGhdLGgpKSxwJiYoYz0hMSksZih0LGEsZCxwKSYmbCh0W2FdLGUsbi5yZXBsYWNlKCItMSIsYSkpKHUpO3JldHVybiBjfWZ1bmN0aW9uIGYodCxlLHIsbil7aWYodm9pZCAwPT09dFtlXSl7aWYobilyZXR1cm4hMTt0W2VdPSJudW1iZXIiPT10eXBlb2Ygcj9bXTp7fX1yZXR1cm4hMH19LHsiLi9hcnJheSI6NzU4LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sNzg1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbigpe319LHt9XSw3ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxhPVtdO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKC0xPT09YS5pbmRleE9mKHQpKXthLnB1c2godCk7dmFyIHI9MWUzO2koZSk/cj1lOiJsb25nIj09PWUmJihyPTNlMyk7dmFyIG89bi5zZWxlY3QoImJvZHkiKS5zZWxlY3RBbGwoIi5wbG90bHktbm90aWZpZXIiKS5kYXRhKFswXSk7by5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgicGxvdGx5LW5vdGlmaWVyIiwhMCksby5zZWxlY3RBbGwoIi5ub3RpZmllci1ub3RlIikuZGF0YShhKS5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgibm90aWZpZXItbm90ZSIsITApLnN0eWxlKCJvcGFjaXR5IiwwKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgaT1uLnNlbGVjdCh0aGlzKTtpLmFwcGVuZCgiYnV0dG9uIikuY2xhc3NlZCgibm90aWZpZXItY2xvc2UiLCEwKS5odG1sKCImdGltZXM7Iikub24oImNsaWNrIiwoZnVuY3Rpb24oKXtpLnRyYW5zaXRpb24oKS5jYWxsKHMpfSkpO2Zvcih2YXIgYT1pLmFwcGVuZCgicCIpLG89dC5zcGxpdCgvPGJyXHMqXC8/Pi9nKSxsPTA7bDxvLmxlbmd0aDtsKyspbCYmYS5hcHBlbmQoImJyIiksYS5hcHBlbmQoInNwYW4iKS50ZXh0KG9bbF0pOyJzdGljayI9PT1lP2kudHJhbnNpdGlvbigpLmR1cmF0aW9uKDM1MCkuc3R5bGUoIm9wYWNpdHkiLDEpOmkudHJhbnNpdGlvbigpLmR1cmF0aW9uKDcwMCkuc3R5bGUoIm9wYWNpdHkiLDEpLnRyYW5zaXRpb24oKS5kZWxheShyKS5jYWxsKHMpfSkpfWZ1bmN0aW9uIHModCl7dC5kdXJhdGlvbig3MDApLnN0eWxlKCJvcGFjaXR5IiwwKS5lYWNoKCJlbmQiLChmdW5jdGlvbih0KXt2YXIgZT1hLmluZGV4T2YodCk7LTEhPT1lJiZhLnNwbGljZShlLDEpLG4uc2VsZWN0KHRoaXMpLnJlbW92ZSgpfSkpfX19LHsiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw3ODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9zZXRjdXJzb3IiKSxpPSJkYXRhLXNhdmVkY3Vyc29yIjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmF0dHIoaSk7aWYoZSl7aWYoIXIpe2Zvcih2YXIgYT0odC5hdHRyKCJjbGFzcyIpfHwiIikuc3BsaXQoIiAiKSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107MD09PXMuaW5kZXhPZigiY3Vyc29yLSIpJiZ0LmF0dHIoaSxzLnN1YnN0cig3KSkuY2xhc3NlZChzLCExKX10LmF0dHIoaSl8fHQuYXR0cihpLCIhISIpfW4odCxlKX1lbHNlIHImJih0LmF0dHIoaSxudWxsKSwiISEiPT09cj9uKHQpOm4odCxyKSl9fSx7Ii4vc2V0Y3Vyc29yIjo3OTd9XSw3ODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9tYXRyaXgiKS5kb3QsaT10KCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGE9ZS5leHBvcnRzPXt9O2EudGVzdGVyPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5zbGljZSgpLG49clswXVswXSxhPW4sbz1yWzBdWzFdLHM9bztmb3Ioci5wdXNoKHJbMF0pLGU9MTtlPHIubGVuZ3RoO2UrKyluPU1hdGgubWluKG4scltlXVswXSksYT1NYXRoLm1heChhLHJbZV1bMF0pLG89TWF0aC5taW4obyxyW2VdWzFdKSxzPU1hdGgubWF4KHMscltlXVsxXSk7dmFyIGwsYz0hMTs1PT09ci5sZW5ndGgmJihyWzBdWzBdPT09clsxXVswXT9yWzJdWzBdPT09clszXVswXSYmclswXVsxXT09PXJbM11bMV0mJnJbMV1bMV09PT1yWzJdWzFdJiYoYz0hMCxsPWZ1bmN0aW9uKHQpe3JldHVybiB0WzBdPT09clswXVswXX0pOnJbMF1bMV09PT1yWzFdWzFdJiZyWzJdWzFdPT09clszXVsxXSYmclswXVswXT09PXJbM11bMF0mJnJbMV1bMF09PT1yWzJdWzBdJiYoYz0hMCxsPWZ1bmN0aW9uKHQpe3JldHVybiB0WzFdPT09clswXVsxXX0pKTt2YXIgdT0hMCxmPXJbMF07Zm9yKGU9MTtlPHIubGVuZ3RoO2UrKylpZihmWzBdIT09cltlXVswXXx8ZlsxXSE9PXJbZV1bMV0pe3U9ITE7YnJlYWt9cmV0dXJue3htaW46bix4bWF4OmEseW1pbjpvLHltYXg6cyxwdHM6cixjb250YWluczpjP2Z1bmN0aW9uKHQsZSl7dmFyIHI9dFswXSxjPXRbMV07cmV0dXJuIShyPT09aXx8cjxufHxyPmF8fGM9PT1pfHxjPG98fGM+cykmJighZXx8IWwodCkpfTpmdW5jdGlvbih0LGUpe3ZhciBsPXRbMF0sYz10WzFdO2lmKGw9PT1pfHxsPG58fGw+YXx8Yz09PWl8fGM8b3x8Yz5zKXJldHVybiExO3ZhciB1LGYsaCxwLGQsbT1yLmxlbmd0aCxnPXJbMF1bMF0sdj1yWzBdWzFdLHk9MDtmb3IodT0xO3U8bTt1KyspaWYoZj1nLGg9dixnPXJbdV1bMF0sdj1yW3VdWzFdLCEobDwocD1NYXRoLm1pbihmLGcpKXx8bD5NYXRoLm1heChmLGcpfHxjPk1hdGgubWF4KGgsdikpKWlmKGM8TWF0aC5taW4oaCx2KSlsIT09cCYmeSsrO2Vsc2V7aWYoYz09PShkPWc9PT1mP2M6aCsobC1mKSoodi1oKS8oZy1mKSkpcmV0dXJuIDEhPT11fHwhZTtjPD1kJiZsIT09cCYmeSsrfXJldHVybiB5JTI9PTF9LGlzUmVjdDpjLGRlZ2VuZXJhdGU6dX19LGEuaXNTZWdtZW50QmVudD1mdW5jdGlvbih0LGUscixpKXt2YXIgYSxvLHMsbD10W2VdLGM9W3Rbcl1bMF0tbFswXSx0W3JdWzFdLWxbMV1dLHU9bihjLGMpLGY9TWF0aC5zcXJ0KHUpLGg9Wy1jWzFdL2YsY1swXS9mXTtmb3IoYT1lKzE7YTxyO2ErKylpZihvPVt0W2FdWzBdLWxbMF0sdFthXVsxXS1sWzFdXSwocz1uKG8sYykpPDB8fHM+dXx8TWF0aC5hYnMobihvLGgpKT5pKXJldHVybiEwO3JldHVybiExfSxhLmZpbHRlcj1mdW5jdGlvbih0LGUpe3ZhciByPVt0WzBdXSxuPTAsaT0wO2Z1bmN0aW9uIG8obyl7dC5wdXNoKG8pO3ZhciBzPXIubGVuZ3RoLGw9bjtyLnNwbGljZShpKzEpO2Zvcih2YXIgYz1sKzE7Yzx0Lmxlbmd0aDtjKyspKGM9PT10Lmxlbmd0aC0xfHxhLmlzU2VnbWVudEJlbnQodCxsLGMrMSxlKSkmJihyLnB1c2godFtjXSksci5sZW5ndGg8cy0yJiYobj1jLGk9ci5sZW5ndGgtMSksbD1jKX10Lmxlbmd0aD4xJiZvKHQucG9wKCkpO3JldHVybnthZGRQdDpvLHJhdzp0LGZpbHRlcmVkOnJ9fX0seyIuLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4vbWF0cml4Ijo3ODJ9XSw3ODk6W2Z1bmN0aW9uKHQsZSxyKXsoZnVuY3Rpb24ocil7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc2hvd19ub193ZWJnbF9tc2ciKSxpPXQoInJlZ2wiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgYT10Ll9mdWxsTGF5b3V0LG89ITA7cmV0dXJuIGEuX2dsY2FudmFzLmVhY2goKGZ1bmN0aW9uKG4pe2lmKCFuLnJlZ2wmJighbi5waWNrfHxhLl9oYXMoInBhcmNvb3JkcyIpKSl7dHJ5e24ucmVnbD1pKHtjYW52YXM6dGhpcyxhdHRyaWJ1dGVzOnthbnRpYWxpYXM6IW4ucGljayxwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6ITB9LHBpeGVsUmF0aW86dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvfHxyLmRldmljZVBpeGVsUmF0aW8sZXh0ZW5zaW9uczplfHxbXX0pfWNhdGNoKHQpe289ITF9bi5yZWdsfHwobz0hMSksbyYmdGhpcy5hZGRFdmVudExpc3RlbmVyKCJ3ZWJnbGNvbnRleHRsb3N0IiwoZnVuY3Rpb24oZSl7dCYmdC5lbWl0JiZ0LmVtaXQoInBsb3RseV93ZWJnbGNvbnRleHRsb3N0Iix7ZXZlbnQ6ZSxsYXllcjpuLmtleX0pfSksITEpfX0pKSxvfHxuKHtjb250YWluZXI6YS5fZ2xjb250YWluZXIubm9kZSgpfSksb319KS5jYWxsKHRoaXMpfSkuY2FsbCh0aGlzLCJ1bmRlZmluZWQiIT10eXBlb2YgZ2xvYmFsP2dsb2JhbDoidW5kZWZpbmVkIiE9dHlwZW9mIHNlbGY/c2VsZjoidW5kZWZpbmVkIiE9dHlwZW9mIHdpbmRvdz93aW5kb3c6e30pfSx7Ii4vc2hvd19ub193ZWJnbF9tc2ciOjc5OCxyZWdsOjUxNn1dLDc5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiaXMtbW9iaWxlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKCJzdHJpbmciIT10eXBlb2YoZT10JiZ0Lmhhc093blByb3BlcnR5KCJ1c2VyQWdlbnQiKT90LnVzZXJBZ2VudDpmdW5jdGlvbigpe3ZhciB0OyJ1bmRlZmluZWQiIT10eXBlb2YgbmF2aWdhdG9yJiYodD1uYXZpZ2F0b3IudXNlckFnZW50KTt0JiZ0LmhlYWRlcnMmJiJzdHJpbmciPT10eXBlb2YgdC5oZWFkZXJzWyJ1c2VyLWFnZW50Il0mJih0PXQuaGVhZGVyc1sidXNlci1hZ2VudCJdKTtyZXR1cm4gdH0oKSkpcmV0dXJuITA7dmFyIHI9aSh7dWE6e2hlYWRlcnM6eyJ1c2VyLWFnZW50IjplfX0sdGFibGV0OiEwLGZlYXR1cmVEZXRlY3Q6ITF9KTtpZighcilmb3IodmFyIGE9ZS5zcGxpdCgiICIpLG89MTtvPGEubGVuZ3RoO28rKyl7aWYoLTEhPT1hW29dLmluZGV4T2YoIlNhZmFyaSIpKWZvcih2YXIgcz1vLTE7cz4tMTtzLS0pe3ZhciBsPWFbc107aWYoIlZlcnNpb24vIj09PWwuc3Vic3RyKDAsOCkpe3ZhciBjPWwuc3Vic3RyKDgpLnNwbGl0KCIuIilbMF07aWYobihjKSYmKGM9K2MpLGM+PTEzKXJldHVybiEwfX19cmV0dXJuIHJ9fSx7ImZhc3QtaXNudW1lcmljIjoyNDIsImlzLW1vYmlsZSI6NDM1fV0sNzkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApe2Zvcih2YXIgcj1lLnRvU3RyaW5nKCksbj0wO248dC5sZW5ndGg7bisrKWlmKHRbbl1pbnN0YW5jZW9mIFJlZ0V4cCYmdFtuXS50b1N0cmluZygpPT09cilyZXR1cm4gdDt0LnB1c2goZSl9ZWxzZSFlJiYwIT09ZXx8LTEhPT10LmluZGV4T2YoZSl8fHQucHVzaChlKTtyZXR1cm4gdH19LHt9XSw3OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT10KCIuLi9wbG90X2FwaS9wbG90X2NvbmZpZyIpLmRmbHRDb25maWc7dmFyIGE9e2FkZDpmdW5jdGlvbih0LGUscixuLGEpe3ZhciBvLHM7dC51bmRvUXVldWU9dC51bmRvUXVldWV8fHtpbmRleDowLHF1ZXVlOltdLHNlcXVlbmNlOiExfSxzPXQudW5kb1F1ZXVlLmluZGV4LHQuYXV0b3BsYXk/dC51bmRvUXVldWUuaW5TZXF1ZW5jZXx8KHQuYXV0b3BsYXk9ITEpOighdC51bmRvUXVldWUuc2VxdWVuY2V8fHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U/KG89e3VuZG86e2NhbGxzOltdLGFyZ3M6W119LHJlZG86e2NhbGxzOltdLGFyZ3M6W119fSx0LnVuZG9RdWV1ZS5xdWV1ZS5zcGxpY2Uocyx0LnVuZG9RdWV1ZS5xdWV1ZS5sZW5ndGgtcyxvKSx0LnVuZG9RdWV1ZS5pbmRleCs9MSk6bz10LnVuZG9RdWV1ZS5xdWV1ZVtzLTFdLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITEsbyYmKG8udW5kby5jYWxscy51bnNoaWZ0KGUpLG8udW5kby5hcmdzLnVuc2hpZnQociksby5yZWRvLmNhbGxzLnB1c2gobiksby5yZWRvLmFyZ3MucHVzaChhKSksdC51bmRvUXVldWUucXVldWUubGVuZ3RoPmkucXVldWVMZW5ndGgmJih0LnVuZG9RdWV1ZS5xdWV1ZS5zaGlmdCgpLHQudW5kb1F1ZXVlLmluZGV4LS0pKX0sc3RhcnRTZXF1ZW5jZTpmdW5jdGlvbih0KXt0LnVuZG9RdWV1ZT10LnVuZG9RdWV1ZXx8e2luZGV4OjAscXVldWU6W10sc2VxdWVuY2U6ITF9LHQudW5kb1F1ZXVlLnNlcXVlbmNlPSEwLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITB9LHN0b3BTZXF1ZW5jZTpmdW5jdGlvbih0KXt0LnVuZG9RdWV1ZT10LnVuZG9RdWV1ZXx8e2luZGV4OjAscXVldWU6W10sc2VxdWVuY2U6ITF9LHQudW5kb1F1ZXVlLnNlcXVlbmNlPSExLHQudW5kb1F1ZXVlLmJlZ2luU2VxdWVuY2U9ITF9LHVuZG86ZnVuY3Rpb24odCl7dmFyIGUscjtpZighKHZvaWQgMD09PXQudW5kb1F1ZXVlfHxpc05hTih0LnVuZG9RdWV1ZS5pbmRleCl8fHQudW5kb1F1ZXVlLmluZGV4PD0wKSl7Zm9yKHQudW5kb1F1ZXVlLmluZGV4LS0sZT10LnVuZG9RdWV1ZS5xdWV1ZVt0LnVuZG9RdWV1ZS5pbmRleF0sdC51bmRvUXVldWUuaW5TZXF1ZW5jZT0hMCxyPTA7cjxlLnVuZG8uY2FsbHMubGVuZ3RoO3IrKylhLnBsb3REbyh0LGUudW5kby5jYWxsc1tyXSxlLnVuZG8uYXJnc1tyXSk7dC51bmRvUXVldWUuaW5TZXF1ZW5jZT0hMSx0LmF1dG9wbGF5PSExfX0scmVkbzpmdW5jdGlvbih0KXt2YXIgZSxyO2lmKCEodm9pZCAwPT09dC51bmRvUXVldWV8fGlzTmFOKHQudW5kb1F1ZXVlLmluZGV4KXx8dC51bmRvUXVldWUuaW5kZXg+PXQudW5kb1F1ZXVlLnF1ZXVlLmxlbmd0aCkpe2ZvcihlPXQudW5kb1F1ZXVlLnF1ZXVlW3QudW5kb1F1ZXVlLmluZGV4XSx0LnVuZG9RdWV1ZS5pblNlcXVlbmNlPSEwLHI9MDtyPGUucmVkby5jYWxscy5sZW5ndGg7cisrKWEucGxvdERvKHQsZS5yZWRvLmNhbGxzW3JdLGUucmVkby5hcmdzW3JdKTt0LnVuZG9RdWV1ZS5pblNlcXVlbmNlPSExLHQuYXV0b3BsYXk9ITEsdC51bmRvUXVldWUuaW5kZXgrK319fTthLnBsb3REbz1mdW5jdGlvbih0LGUscil7dC5hdXRvcGxheT0hMCxyPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLGk9W10sYT0wO2E8ZS5sZW5ndGg7YSsrKXI9ZVthXSxpW2FdPXI9PT10P3I6Im9iamVjdCI9PXR5cGVvZiByP0FycmF5LmlzQXJyYXkocik/bi5leHRlbmREZWVwKFtdLHIpOm4uZXh0ZW5kRGVlcEFsbCh7fSxyKTpyO3JldHVybiBpfSh0LHIpLGUuYXBwbHkobnVsbCxyKX0sZS5leHBvcnRzPWF9LHsiLi4vbGliIjo3NzYsIi4uL3Bsb3RfYXBpL3Bsb3RfY29uZmlnIjo4MTR9XSw3OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci5jb3VudGVyPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPShlfHwiIikrKHI/IiI6IiQiKSxhPSExPT09bj8iIjoiXiI7cmV0dXJuInh5Ij09PXQ/bmV3IFJlZ0V4cChhKyJ4KFsyLTldfFsxLTldWzAtOV0rKT95KFsyLTldfFsxLTldWzAtOV0rKT8iK2kpOm5ldyBSZWdFeHAoYSt0KyIoWzItOV18WzEtOV1bMC05XSspPyIraSl9fSx7fV0sNzk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPS9eKC4qKShcLlteXC5cW1xdXSt8XFtcZFxdKSQvLGk9L15bXlwuXFtcXV0rJC87ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKDtlOyl7dmFyIHI9dC5tYXRjaChuKTtpZihyKXQ9clsxXTtlbHNle2lmKCF0Lm1hdGNoKGkpKXRocm93IG5ldyBFcnJvcigiYmFkIHJlbGF0aXZlQXR0ciBjYWxsOiIrW3QsZV0pO3Q9IiJ9aWYoIl4iIT09ZS5jaGFyQXQoMCkpYnJlYWs7ZT1lLnNsaWNlKDEpfXJldHVybiB0JiYiWyIhPT1lLmNoYXJBdCgwKT90KyIuIitlOnQrZX19LHt9XSw3OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9hcnJheSIpLmlzQXJyYXlPclR5cGVkQXJyYXksaT10KCIuL2lzX3BsYWluX29iamVjdCIpO2UuZXhwb3J0cz1mdW5jdGlvbiB0KGUscil7Zm9yKHZhciBhIGluIHIpe3ZhciBvPXJbYV0scz1lW2FdO2lmKHMhPT1vKWlmKCJfIj09PWEuY2hhckF0KDApfHwiZnVuY3Rpb24iPT10eXBlb2Ygbyl7aWYoYSBpbiBlKWNvbnRpbnVlO2VbYV09b31lbHNlIGlmKG4obykmJm4ocykmJmkob1swXSkpe2lmKCJjdXN0b21kYXRhIj09PWF8fCJpZHMiPT09YSljb250aW51ZTtmb3IodmFyIGw9TWF0aC5taW4oby5sZW5ndGgscy5sZW5ndGgpLGM9MDtjPGw7YysrKXNbY10hPT1vW2NdJiZpKG9bY10pJiZpKHNbY10pJiZ0KHNbY10sb1tjXSl9ZWxzZSBpKG8pJiZpKHMpJiYodChzLG8pLE9iamVjdC5rZXlzKHMpLmxlbmd0aHx8ZGVsZXRlIGVbYV0pfX19LHsiLi9hcnJheSI6NzU4LCIuL2lzX3BsYWluX29iamVjdCI6Nzc3fV0sNzk2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuL2xvZ2dlcnMiKSxhPXQoIi4vaWRlbnRpdHkiKSxvPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZnVuY3Rpb24gcyh0LGUpe3JldHVybiB0PGV9ZnVuY3Rpb24gbCh0LGUpe3JldHVybiB0PD1lfWZ1bmN0aW9uIGModCxlKXtyZXR1cm4gdD5lfWZ1bmN0aW9uIHUodCxlKXtyZXR1cm4gdD49ZX1yLmZpbmRCaW49ZnVuY3Rpb24odCxlLHIpe2lmKG4oZS5zdGFydCkpcmV0dXJuIHI/TWF0aC5jZWlsKCh0LWUuc3RhcnQpL2Uuc2l6ZS0xZS05KS0xOk1hdGguZmxvb3IoKHQtZS5zdGFydCkvZS5zaXplKzFlLTkpO3ZhciBhLG8sZj0wLGg9ZS5sZW5ndGgscD0wLGQ9aD4xPyhlW2gtMV0tZVswXSkvKGgtMSk6MTtmb3Iobz1kPj0wP3I/czpsOnI/dTpjLHQrPTFlLTkqZCoocj8tMToxKSooZD49MD8xOi0xKTtmPGgmJnArKzwxMDA7KW8oZVthPU1hdGguZmxvb3IoKGYraCkvMildLHQpP2Y9YSsxOmg9YTtyZXR1cm4gcD45MCYmaS5sb2coIkxvbmcgYmluYXJ5IHNlYXJjaC4uLiIpLGYtMX0sci5zb3J0ZXJBc2M9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSxyLnNvcnRlckRlcz1mdW5jdGlvbih0LGUpe3JldHVybiBlLXR9LHIuZGlzdGluY3RWYWxzPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC5zbGljZSgpO2ZvcihuLnNvcnQoci5zb3J0ZXJBc2MpLGU9bi5sZW5ndGgtMTtlPi0xJiZuW2VdPT09bztlLS0pO2Zvcih2YXIgaSxhPW5bZV0tblswXXx8MSxzPWEvKGV8fDEpLzFlNCxsPVtdLGM9MDtjPD1lO2MrKyl7dmFyIHU9bltjXSxmPXUtaTt2b2lkIDA9PT1pPyhsLnB1c2godSksaT11KTpmPnMmJihhPU1hdGgubWluKGEsZiksbC5wdXNoKHUpLGk9dSl9cmV0dXJue3ZhbHM6bCxtaW5EaWZmOmF9fSxyLnJvdW5kVXA9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixpPTAsYT1lLmxlbmd0aC0xLG89MCxzPXI/MDoxLGw9cj8xOjAsYz1yP01hdGguY2VpbDpNYXRoLmZsb29yO2k8YSYmbysrPDEwMDspZVtuPWMoKGkrYSkvMildPD10P2k9bitzOmE9bi1sO3JldHVybiBlW2ldfSxyLnNvcnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxuPTAsaT0xO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT1lKHRbaV0sdFtpLTFdKTtpZihhPDA/cj0xOmE+MCYmKG49MSksciYmbilyZXR1cm4gdC5zb3J0KGUpfXJldHVybiBuP3Q6dC5yZXZlcnNlKCl9LHIuZmluZEluZGV4T2ZNaW49ZnVuY3Rpb24odCxlKXtlPWV8fGE7Zm9yKHZhciByLG49MS8wLGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIG89ZSh0W2ldKTtvPG4mJihuPW8scj1pKX1yZXR1cm4gcn19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuL2lkZW50aXR5Ijo3NzQsIi4vbG9nZ2VycyI6NzgwLCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sNzk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpeyh0LmF0dHIoImNsYXNzIil8fCIiKS5zcGxpdCgiICIpLmZvckVhY2goKGZ1bmN0aW9uKGUpezA9PT1lLmluZGV4T2YoImN1cnNvci0iKSYmdC5jbGFzc2VkKGUsITEpfSkpLGUmJnQuY2xhc3NlZCgiY3Vyc29yLSIrZSwhMCl9fSx7fV0sNzk4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbXBvbmVudHMvY29sb3IiKSxpPWZ1bmN0aW9uKCl7fTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlIGluIHQpImZ1bmN0aW9uIj09dHlwZW9mIHRbZV0mJih0W2VdPWkpO3QuZGVzdHJveT1mdW5jdGlvbigpe3QuY29udGFpbmVyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodC5jb250YWluZXIpfTt2YXIgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmNsYXNzTmFtZT0ibm8td2ViZ2wiLHIuc3R5bGUuY3Vyc29yPSJwb2ludGVyIixyLnN0eWxlLmZvbnRTaXplPSIyNHB4IixyLnN0eWxlLmNvbG9yPW4uZGVmYXVsdHNbMF0sci5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLHIuc3R5bGUubGVmdD1yLnN0eWxlLnRvcD0iMHB4IixyLnN0eWxlLndpZHRoPXIuc3R5bGUuaGVpZ2h0PSIxMDAlIixyLnN0eWxlWyJiYWNrZ3JvdW5kLWNvbG9yIl09bi5saWdodExpbmUsci5zdHlsZVsiei1pbmRleCJdPTMwO3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKTtyZXR1cm4gYS50ZXh0Q29udGVudD0iV2ViR0wgaXMgbm90IHN1cHBvcnRlZCBieSB5b3VyIGJyb3dzZXIgLSB2aXNpdCBodHRwczovL2dldC53ZWJnbC5vcmcgZm9yIG1vcmUgaW5mbyIsYS5zdHlsZS5wb3NpdGlvbj0icmVsYXRpdmUiLGEuc3R5bGUudG9wPSI1MCUiLGEuc3R5bGUubGVmdD0iNTAlIixhLnN0eWxlLmhlaWdodD0iMzAlIixhLnN0eWxlLndpZHRoPSI1MCUiLGEuc3R5bGUubWFyZ2luPSItMTUlIDAgMCAtMjUlIixyLmFwcGVuZENoaWxkKGEpLHQuY29udGFpbmVyLmFwcGVuZENoaWxkKHIpLHQuY29udGFpbmVyLnN0eWxlLmJhY2tncm91bmQ9IiNGRkZGRkYiLHQuY29udGFpbmVyLm9uY2xpY2s9ZnVuY3Rpb24oKXt3aW5kb3cub3BlbigiaHR0cHM6Ly9nZXQud2ViZ2wub3JnIil9LCExfX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjo2Mzl9XSw3OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBPYmplY3Qua2V5cyh0KS5zb3J0KCl9fSx7fV0sODAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuL2FycmF5IikuaXNBcnJheU9yVHlwZWRBcnJheTtyLmFnZ051bXM9ZnVuY3Rpb24odCxlLGEsbyl7dmFyIHMsbDtpZigoIW98fG8+YS5sZW5ndGgpJiYobz1hLmxlbmd0aCksbihlKXx8KGU9ITEpLGkoYVswXSkpe2ZvcihsPW5ldyBBcnJheShvKSxzPTA7czxvO3MrKylsW3NdPXIuYWdnTnVtcyh0LGUsYVtzXSk7YT1sfWZvcihzPTA7czxvO3MrKyluKGUpP24oYVtzXSkmJihlPXQoK2UsK2Fbc10pKTplPWFbc107cmV0dXJuIGV9LHIubGVuPWZ1bmN0aW9uKHQpe3JldHVybiByLmFnZ051bXMoKGZ1bmN0aW9uKHQpe3JldHVybiB0KzF9KSwwLHQpfSxyLm1lYW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gZXx8KGU9ci5sZW4odCkpLHIuYWdnTnVtcygoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlfSksMCx0KS9lfSxyLm1pZFJhbmdlPWZ1bmN0aW9uKHQpe2lmKHZvaWQgMCE9PXQmJjAhPT10Lmxlbmd0aClyZXR1cm4oci5hZ2dOdW1zKE1hdGgubWF4LG51bGwsdCkrci5hZ2dOdW1zKE1hdGgubWluLG51bGwsdCkpLzJ9LHIudmFyaWFuY2U9ZnVuY3Rpb24odCxlLGkpe3JldHVybiBlfHwoZT1yLmxlbih0KSksbihpKXx8KGk9ci5tZWFuKHQsZSkpLHIuYWdnTnVtcygoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtNYXRoLnBvdyhlLWksMil9KSwwLHQpL2V9LHIuc3RkZXY9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBNYXRoLnNxcnQoci52YXJpYW5jZSh0LGUsbikpfSxyLm1lZGlhbj1mdW5jdGlvbih0KXt2YXIgZT10LnNsaWNlKCkuc29ydCgpO3JldHVybiByLmludGVycChlLC41KX0sci5pbnRlcnA9ZnVuY3Rpb24odCxlKXtpZighbihlKSl0aHJvdyJuIHNob3VsZCBiZSBhIGZpbml0ZSBudW1iZXIiO2lmKChlPWUqdC5sZW5ndGgtLjUpPDApcmV0dXJuIHRbMF07aWYoZT50Lmxlbmd0aC0xKXJldHVybiB0W3QubGVuZ3RoLTFdO3ZhciByPWUlMTtyZXR1cm4gcip0W01hdGguY2VpbChlKV0rKDEtcikqdFtNYXRoLmZsb29yKGUpXX19LHsiLi9hcnJheSI6NzU4LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sODAxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImNvbG9yLW5vcm1hbGl6ZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdD9uKHQpOlswLDAsMCwxXX19LHsiY29sb3Itbm9ybWFsaXplIjoxMjZ9XSw4MDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vbGliIiksYT1pLnN0clRyYW5zbGF0ZSxvPXQoIi4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIikscz10KCIuLi9jb25zdGFudHMvYWxpZ25tZW50IikuTElORV9TUEFDSU5HO2Z1bmN0aW9uIGwodCxlKXtyZXR1cm4gdC5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClbZV19dmFyIGM9LyhbXiRdKikoWyRdK1teJF0qWyRdKykoW14kXSopLztyLmNvbnZlcnRUb1RzcGFucz1mdW5jdGlvbih0LGUsbSl7dmFyIE09dC50ZXh0KCksUz0hdC5hdHRyKCJkYXRhLW5vdGV4IikmJiJ1bmRlZmluZWQiIT10eXBlb2YgTWF0aEpheCYmTS5tYXRjaChjKSxDPW4uc2VsZWN0KHQubm9kZSgpLnBhcmVudE5vZGUpO2lmKCFDLmVtcHR5KCkpe3ZhciBQPXQuYXR0cigiY2xhc3MiKT90LmF0dHIoImNsYXNzIikuc3BsaXQoIiAiKVswXToidGV4dCI7cmV0dXJuIFArPSItbWF0aCIsQy5zZWxlY3RBbGwoInN2Zy4iK1ApLnJlbW92ZSgpLEMuc2VsZWN0QWxsKCJnLiIrUCsiLWdyb3VwIikucmVtb3ZlKCksdC5zdHlsZSgiZGlzcGxheSIsbnVsbCkuYXR0cih7ImRhdGEtdW5mb3JtYXR0ZWQiOk0sImRhdGEtbWF0aCI6Ik4ifSksUz8oZSYmZS5fcHJvbWlzZXN8fFtdKS5wdXNoKG5ldyBQcm9taXNlKChmdW5jdGlvbihlKXt0LnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpO3ZhciByPXBhcnNlSW50KHQubm9kZSgpLnN0eWxlLmZvbnRTaXplLDEwKSxvPXtmb250U2l6ZTpyfTshZnVuY3Rpb24odCxlLHIpe3ZhciBhLG8scyxsO01hdGhKYXguSHViLlF1ZXVlKChmdW5jdGlvbigpe3JldHVybiBvPWkuZXh0ZW5kRGVlcEFsbCh7fSxNYXRoSmF4Lkh1Yi5jb25maWcpLHM9TWF0aEpheC5IdWIucHJvY2Vzc1NlY3Rpb25EZWxheSx2b2lkIDAhPT1NYXRoSmF4Lkh1Yi5wcm9jZXNzU2VjdGlvbkRlbGF5JiYoTWF0aEpheC5IdWIucHJvY2Vzc1NlY3Rpb25EZWxheT0wKSxNYXRoSmF4Lkh1Yi5Db25maWcoe21lc3NhZ2VTdHlsZToibm9uZSIsdGV4MmpheDp7aW5saW5lTWF0aDpbWyIkIiwiJCJdLFsiXFwoIiwiXFwpIl1dfSxkaXNwbGF5QWxpZ246ImxlZnQifSl9KSwoZnVuY3Rpb24oKXtpZigiU1ZHIiE9PShhPU1hdGhKYXguSHViLmNvbmZpZy5tZW51U2V0dGluZ3MucmVuZGVyZXIpKXJldHVybiBNYXRoSmF4Lkh1Yi5zZXRSZW5kZXJlcigiU1ZHIil9KSwoZnVuY3Rpb24oKXt2YXIgcj0ibWF0aC1vdXRwdXQtIitpLnJhbmRzdHIoe30sNjQpO3JldHVybiBsPW4uc2VsZWN0KCJib2R5IikuYXBwZW5kKCJkaXYiKS5hdHRyKHtpZDpyfSkuc3R5bGUoe3Zpc2liaWxpdHk6ImhpZGRlbiIscG9zaXRpb246ImFic29sdXRlIn0pLnN0eWxlKHsiZm9udC1zaXplIjplLmZvbnRTaXplKyJweCJ9KS50ZXh0KHQucmVwbGFjZSh1LCJcXGx0ICIpLnJlcGxhY2UoZiwiXFxndCAiKSksTWF0aEpheC5IdWIuVHlwZXNldChsLm5vZGUoKSl9KSwoZnVuY3Rpb24oKXt2YXIgZT1uLnNlbGVjdCgiYm9keSIpLnNlbGVjdCgiI01hdGhKYXhfU1ZHX2dseXBocyIpO2lmKGwuc2VsZWN0KCIuTWF0aEpheF9TVkciKS5lbXB0eSgpfHwhbC5zZWxlY3QoInN2ZyIpLm5vZGUoKSlpLmxvZygiVGhlcmUgd2FzIGFuIGVycm9yIGluIHRoZSB0ZXggc3ludGF4LiIsdCkscigpO2Vsc2V7dmFyIG89bC5zZWxlY3QoInN2ZyIpLm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtyKGwuc2VsZWN0KCIuTWF0aEpheF9TVkciKSxlLG8pfWlmKGwucmVtb3ZlKCksIlNWRyIhPT1hKXJldHVybiBNYXRoSmF4Lkh1Yi5zZXRSZW5kZXJlcihhKX0pLChmdW5jdGlvbigpe3JldHVybiB2b2lkIDAhPT1zJiYoTWF0aEpheC5IdWIucHJvY2Vzc1NlY3Rpb25EZWxheT1zKSxNYXRoSmF4Lkh1Yi5Db25maWcobyl9KSl9KFNbMl0sbywoZnVuY3Rpb24obixpLG8pe0Muc2VsZWN0QWxsKCJzdmcuIitQKS5yZW1vdmUoKSxDLnNlbGVjdEFsbCgiZy4iK1ArIi1ncm91cCIpLnJlbW92ZSgpO3ZhciBzPW4mJm4uc2VsZWN0KCJzdmciKTtpZighc3x8IXMubm9kZSgpKXJldHVybiBJKCksdm9pZCBlKCk7dmFyIGM9Qy5hcHBlbmQoImciKS5jbGFzc2VkKFArIi1ncm91cCIsITApLmF0dHIoeyJwb2ludGVyLWV2ZW50cyI6Im5vbmUiLCJkYXRhLXVuZm9ybWF0dGVkIjpNLCJkYXRhLW1hdGgiOiJZIn0pO2Mubm9kZSgpLmFwcGVuZENoaWxkKHMubm9kZSgpKSxpJiZpLm5vZGUoKSYmcy5ub2RlKCkuaW5zZXJ0QmVmb3JlKGkubm9kZSgpLmNsb25lTm9kZSghMCkscy5ub2RlKCkuZmlyc3RDaGlsZCkscy5hdHRyKHtjbGFzczpQLGhlaWdodDpvLmhlaWdodCxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJ4TWluWU1pbiBtZWV0In0pLnN0eWxlKHtvdmVyZmxvdzoidmlzaWJsZSIsInBvaW50ZXItZXZlbnRzIjoibm9uZSJ9KTt2YXIgdT10Lm5vZGUoKS5zdHlsZS5maWxsfHwiYmxhY2siLGY9cy5zZWxlY3QoImciKTtmLmF0dHIoe2ZpbGw6dSxzdHJva2U6dX0pO3ZhciBoPWwoZiwid2lkdGgiKSxwPWwoZiwiaGVpZ2h0IiksZD0rdC5hdHRyKCJ4IiktaCp7c3RhcnQ6MCxtaWRkbGU6LjUsZW5kOjF9W3QuYXR0cigidGV4dC1hbmNob3IiKXx8InN0YXJ0Il0sZz0tKHJ8fGwodCwiaGVpZ2h0IikpLzQ7InkiPT09UFswXT8oYy5hdHRyKHt0cmFuc2Zvcm06InJvdGF0ZSgiK1stOTAsK3QuYXR0cigieCIpLCt0LmF0dHIoInkiKV0rIikiK2EoLWgvMixnLXAvMil9KSxzLmF0dHIoe3g6K3QuYXR0cigieCIpLHk6K3QuYXR0cigieSIpfSkpOiJsIj09PVBbMF0/cy5hdHRyKHt4OnQuYXR0cigieCIpLHk6Zy1wLzJ9KToiYSI9PT1QWzBdJiYwIT09UC5pbmRleE9mKCJhdGl0bGUiKT9zLmF0dHIoe3g6MCx5Omd9KTpzLmF0dHIoe3g6ZCx5Oit0LmF0dHIoInkiKStnLXAvMn0pLG0mJm0uY2FsbCh0LGMpLGUoYyl9KSl9KSkpOkkoKSx0fWZ1bmN0aW9uIEkoKXtDLmVtcHR5KCl8fChQPXQuYXR0cigiY2xhc3MiKSsiLW1hdGgiLEMuc2VsZWN0KCJzdmcuIitQKS5yZW1vdmUoKSksdC50ZXh0KCIiKS5zdHlsZSgid2hpdGUtc3BhY2UiLCJwcmUiKSxmdW5jdGlvbih0LGUpe2U9ZS5yZXBsYWNlKGcsIiAiKTt2YXIgcixhPSExLGw9W10sYz0tMTtmdW5jdGlvbiB1KCl7YysrO3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUyhvLnN2ZywidHNwYW4iKTtuLnNlbGVjdChlKS5hdHRyKHtjbGFzczoibGluZSIsZHk6YypzKyJlbSJ9KSx0LmFwcGVuZENoaWxkKGUpLHI9ZTt2YXIgaT1sO2lmKGw9W3tub2RlOmV9XSxpLmxlbmd0aD4xKWZvcih2YXIgYT0xO2E8aS5sZW5ndGg7YSsrKWYoaVthXSl9ZnVuY3Rpb24gZih0KXt2YXIgZSxpPXQudHlwZSxhPXt9O2lmKCJhIj09PWkpe2U9ImEiO3ZhciBzPXQudGFyZ2V0LGM9dC5ocmVmLHU9dC5wb3B1cDtjJiYoYT17InhsaW5rOnhsaW5rOnNob3ciOiJfYmxhbmsiPT09c3x8Il8iIT09cy5jaGFyQXQoMCk/Im5ldyI6InJlcGxhY2UiLHRhcmdldDpzLCJ4bGluazp4bGluazpocmVmIjpjfSx1JiYoYS5vbmNsaWNrPSd3aW5kb3cub3Blbih0aGlzLmhyZWYuYmFzZVZhbCx0aGlzLnRhcmdldC5iYXNlVmFsLCInK3UrJyIpO3JldHVybiBmYWxzZTsnKSl9ZWxzZSBlPSJ0c3BhbiI7dC5zdHlsZSYmKGEuc3R5bGU9dC5zdHlsZSk7dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG8uc3ZnLGUpO2lmKCJzdXAiPT09aXx8InN1YiI9PT1pKXttKHIsIlx1MjAwYiIpLHIuYXBwZW5kQ2hpbGQoZik7dmFyIGg9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudE5TKG8uc3ZnLCJ0c3BhbiIpO20oaCwiXHUyMDBiIiksbi5zZWxlY3QoaCkuYXR0cigiZHkiLGRbaV0pLGEuZHk9cFtpXSxyLmFwcGVuZENoaWxkKGYpLHIuYXBwZW5kQ2hpbGQoaCl9ZWxzZSByLmFwcGVuZENoaWxkKGYpO24uc2VsZWN0KGYpLmF0dHIoYSkscj10Lm5vZGU9ZixsLnB1c2godCl9ZnVuY3Rpb24gbSh0LGUpe3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZSkpfWZ1bmN0aW9uIE0odCl7aWYoMSE9PWwubGVuZ3RoKXt2YXIgbj1sLnBvcCgpO3QhPT1uLnR5cGUmJmkubG9nKCJTdGFydCB0YWcgPCIrbi50eXBlKyI+IGRvZXNudCBtYXRjaCBlbmQgdGFnIDwiK3QrIj4uIFByZXRlbmRpbmcgaXQgZGlkIG1hdGNoLiIsZSkscj1sW2wubGVuZ3RoLTFdLm5vZGV9ZWxzZSBpLmxvZygiSWdub3JpbmcgdW5leHBlY3RlZCBlbmQgdGFnIDwvIit0KyI+LiIsZSl9eC50ZXN0KGUpP3UoKToocj10LGw9W3tub2RlOnR9XSk7Zm9yKHZhciBTPWUuc3BsaXQodiksQz0wO0M8Uy5sZW5ndGg7QysrKXt2YXIgUD1TW0NdLEk9UC5tYXRjaCh5KSxPPUkmJklbMl0udG9Mb3dlckNhc2UoKSx6PWhbT107aWYoImJyIj09PU8pdSgpO2Vsc2UgaWYodm9pZCAwPT09eiltKHIsRShQKSk7ZWxzZSBpZihJWzFdKU0oTyk7ZWxzZXt2YXIgRD1JWzRdLFI9e3R5cGU6T30sRj1rKEQsYik7aWYoRj8oRj1GLnJlcGxhY2UoQSwiJDEgZmlsbDoiKSx6JiYoRis9IjsiK3opKTp6JiYoRj16KSxGJiYoUi5zdHlsZT1GKSwiYSI9PT1PKXthPSEwO3ZhciBCPWsoRCxfKTtpZihCKXt2YXIgTj1MKEIpO04mJihSLmhyZWY9TixSLnRhcmdldD1rKEQsdyl8fCJfYmxhbmsiLFIucG9wdXA9ayhELFQpKX19ZihSKX19cmV0dXJuIGF9KHQubm9kZSgpLE0pJiZ0LnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImFsbCIpLHIucG9zaXRpb25UZXh0KHQpLG0mJm0uY2FsbCh0KX19O3ZhciB1PS8oPHwmbHQ7fCYjNjA7KS9nLGY9Lyg+fCZndDt8JiM2MjspL2c7dmFyIGg9e3N1cDoiZm9udC1zaXplOjcwJSIsc3ViOiJmb250LXNpemU6NzAlIixiOiJmb250LXdlaWdodDpib2xkIixpOiJmb250LXN0eWxlOml0YWxpYyIsYToiY3Vyc29yOnBvaW50ZXIiLHNwYW46IiIsZW06ImZvbnQtc3R5bGU6aXRhbGljO2ZvbnQtd2VpZ2h0OmJvbGQifSxwPXtzdWI6IjAuM2VtIixzdXA6Ii0wLjZlbSJ9LGQ9e3N1YjoiLTAuMjFlbSIsc3VwOiIwLjQyZW0ifSxtPVsiaHR0cDoiLCJodHRwczoiLCJtYWlsdG86IiwiIix2b2lkIDAsIjoiXSxnPXIuTkVXTElORVM9LyhcclxuP3xcbikvZyx2PS8oPFtePD5dKj4pLyx5PS88KFwvPykoW14gPl0qKShccysoLiopKT8+L2kseD0vPGJyKFxzKy4qKT8+L2k7ci5CUl9UQUdfQUxMPS88YnIoXHMrLiopPz4vZ2k7dmFyIGI9LyhefFtccyInXSlzdHlsZVxzKj1ccyooIihbXiJdKik7PyJ8JyhbXiddKik7PycpL2ksXz0vKF58W1xzIiddKWhyZWZccyo9XHMqKCIoW14iXSopInwnKFteJ10qKScpL2ksdz0vKF58W1xzIiddKXRhcmdldFxzKj1ccyooIihbXiJcc10qKSJ8JyhbXidcc10qKScpL2ksVD0vKF58W1xzIiddKXBvcHVwXHMqPVxzKigiKFtcdz0sXSopInwnKFtcdz0sXSopJykvaTtmdW5jdGlvbiBrKHQsZSl7aWYoIXQpcmV0dXJuIG51bGw7dmFyIHI9dC5tYXRjaChlKSxuPXImJihyWzNdfHxyWzRdKTtyZXR1cm4gbiYmRShuKX12YXIgQT0vKF58Oylccypjb2xvcjovO3IucGxhaW5UZXh0PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXZvaWQgMCE9PShlPWV8fHt9KS5sZW4mJi0xIT09ZS5sZW4/ZS5sZW46MS8wLG49dm9pZCAwIT09ZS5hbGxvd2VkVGFncz9lLmFsbG93ZWRUYWdzOlsiYnIiXSxpPSIuLi4iLmxlbmd0aCxhPXQuc3BsaXQodiksbz1bXSxzPSIiLGw9MCxjPTA7YzxhLmxlbmd0aDtjKyspe3ZhciB1PWFbY10sZj11Lm1hdGNoKHkpLGg9ZiYmZlsyXS50b0xvd2VyQ2FzZSgpO2lmKGgpLTEhPT1uLmluZGV4T2YoaCkmJihvLnB1c2godSkscz1oKTtlbHNle3ZhciBwPXUubGVuZ3RoO2lmKGwrcDxyKW8ucHVzaCh1KSxsKz1wO2Vsc2UgaWYobDxyKXt2YXIgZD1yLWw7cyYmKCJiciIhPT1zfHxkPD1pfHxwPD1pKSYmby5wb3AoKSxyPmk/by5wdXNoKHUuc3Vic3RyKDAsZC1pKSsiLi4uIik6by5wdXNoKHUuc3Vic3RyKDAsZCkpO2JyZWFrfXM9IiJ9fXJldHVybiBvLmpvaW4oIiIpfTt2YXIgTT17bXU6Ilx1MDNiYyIsYW1wOiImIixsdDoiPCIsZ3Q6Ij4iLG5ic3A6Ilx4YTAiLHRpbWVzOiJceGQ3IixwbHVzbW46Ilx4YjEiLGRlZzoiXHhiMCJ9LFM9LyYoI1xkK3wjeFtcZGEtZkEtRl0rfFthLXpdKyk7L2c7ZnVuY3Rpb24gRSh0KXtyZXR1cm4gdC5yZXBsYWNlKFMsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuKCIjIj09PWUuY2hhckF0KDApP2Z1bmN0aW9uKHQpe2lmKHQ+MTExNDExMSlyZXR1cm47dmFyIGU9U3RyaW5nLmZyb21Db2RlUG9pbnQ7aWYoZSlyZXR1cm4gZSh0KTt2YXIgcj1TdHJpbmcuZnJvbUNoYXJDb2RlO3JldHVybiB0PD02NTUzNT9yKHQpOnIoNTUyMzIrKHQ+PjEwKSx0JTEwMjQrNTYzMjApfSgieCI9PT1lLmNoYXJBdCgxKT9wYXJzZUludChlLnN1YnN0cigyKSwxNik6cGFyc2VJbnQoZS5zdWJzdHIoMSksMTApKTpNW2VdKXx8dH0pKX1mdW5jdGlvbiBMKHQpe3ZhciBlPWVuY29kZVVSSShkZWNvZGVVUkkodCkpLHI9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpLG49ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYSIpO3IuaHJlZj10LG4uaHJlZj1lO3ZhciBpPXIucHJvdG9jb2wsYT1uLnByb3RvY29sO3JldHVybi0xIT09bS5pbmRleE9mKGkpJiYtMSE9PW0uaW5kZXhPZihhKT9lOiIifWZ1bmN0aW9uIEModCxlLHIpe3ZhciBuLGEsbyxzPXIuaG9yaXpvbnRhbEFsaWduLGw9ci52ZXJ0aWNhbEFsaWdufHwidG9wIixjPXQubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9ZS5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cmV0dXJuIGE9ImJvdHRvbSI9PT1sP2Z1bmN0aW9uKCl7cmV0dXJuIGMuYm90dG9tLW4uaGVpZ2h0fToibWlkZGxlIj09PWw/ZnVuY3Rpb24oKXtyZXR1cm4gYy50b3ArKGMuaGVpZ2h0LW4uaGVpZ2h0KS8yfTpmdW5jdGlvbigpe3JldHVybiBjLnRvcH0sbz0icmlnaHQiPT09cz9mdW5jdGlvbigpe3JldHVybiBjLnJpZ2h0LW4ud2lkdGh9OiJjZW50ZXIiPT09cz9mdW5jdGlvbigpe3JldHVybiBjLmxlZnQrKGMud2lkdGgtbi53aWR0aCkvMn06ZnVuY3Rpb24oKXtyZXR1cm4gYy5sZWZ0fSxmdW5jdGlvbigpe249dGhpcy5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7dmFyIHQ9bygpLXUubGVmdCxlPWEoKS11LnRvcCxzPXIuZ2R8fHt9O2lmKHIuZ2Qpe3MuX2Z1bGxMYXlvdXQuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKHMpO3ZhciBsPWkuYXBwbHkzRFRyYW5zZm9ybShzLl9mdWxsTGF5b3V0Ll9pbnZUcmFuc2Zvcm0pKHQsZSk7dD1sWzBdLGU9bFsxXX1yZXR1cm4gdGhpcy5zdHlsZSh7dG9wOmUrInB4IixsZWZ0OnQrInB4Iiwiei1pbmRleCI6MWUzfSksdGhpc319ci5jb252ZXJ0RW50aXRpZXM9RSxyLnNhbml0aXplSFRNTD1mdW5jdGlvbih0KXt0PXQucmVwbGFjZShnLCIgIik7Zm9yKHZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInAiKSxyPWUsaT1bXSxhPXQuc3BsaXQodiksbz0wO288YS5sZW5ndGg7bysrKXt2YXIgcz1hW29dLGw9cy5tYXRjaCh5KSxjPWwmJmxbMl0udG9Mb3dlckNhc2UoKTtpZihjIGluIGgpaWYobFsxXSlpLmxlbmd0aCYmKHI9aS5wb3AoKSk7ZWxzZXt2YXIgdT1sWzRdLGY9ayh1LGIpLHA9Zj97c3R5bGU6Zn06e307aWYoImEiPT09Yyl7dmFyIGQ9ayh1LF8pO2lmKGQpe3ZhciBtPUwoZCk7aWYobSl7cC5ocmVmPW07dmFyIHg9ayh1LHcpO3gmJihwLnRhcmdldD14KX19fXZhciBUPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYyk7ci5hcHBlbmRDaGlsZChUKSxuLnNlbGVjdChUKS5hdHRyKHApLHI9VCxpLnB1c2goVCl9ZWxzZSByLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKEUocykpKX1yZXR1cm4gZS5pbm5lckhUTUx9LHIubGluZUNvdW50PWZ1bmN0aW9uKHQpe3JldHVybiB0LnNlbGVjdEFsbCgidHNwYW4ubGluZSIpLnNpemUoKXx8MX0sci5wb3NpdGlvblRleHQ9ZnVuY3Rpb24odCxlLHIpe3JldHVybiB0LmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7ZnVuY3Rpb24gaShlLHIpe3JldHVybiB2b2lkIDA9PT1yP251bGw9PT0ocj10LmF0dHIoZSkpJiYodC5hdHRyKGUsMCkscj0wKTp0LmF0dHIoZSxyKSxyfXZhciBhPWkoIngiLGUpLG89aSgieSIscik7InRleHQiPT09dGhpcy5ub2RlTmFtZSYmdC5zZWxlY3RBbGwoInRzcGFuLmxpbmUiKS5hdHRyKHt4OmEseTpvfSl9KSl9O3IubWFrZVRleHRTaGFkb3c9ZnVuY3Rpb24odCl7dmFyIGU9IjFweCAiLHI9IjFweCAiLG49IjFweCAiO3JldHVybiBlK3Irbit0KyIsIC0iK2UrIi0iK3Irbit0KyIsICIrZSsiLSIrcituK3QrIiwgLSIrZStyK24rdH0sci5tYWtlRWRpdGFibGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLmdkLGk9ZS5kZWxlZ2F0ZSxhPW4uZGlzcGF0Y2goImVkaXQiLCJpbnB1dCIsImNhbmNlbCIpLG89aXx8dDtpZih0LnN0eWxlKHsicG9pbnRlci1ldmVudHMiOmk/Im5vbmUiOiJhbGwifSksMSE9PXQuc2l6ZSgpKXRocm93IG5ldyBFcnJvcigiYm9vIik7ZnVuY3Rpb24gcygpeyFmdW5jdGlvbigpe3ZhciBpPW4uc2VsZWN0KHIpLnNlbGVjdCgiLnN2Zy1jb250YWluZXIiKSxvPWkuYXBwZW5kKCJkaXYiKSxzPXQubm9kZSgpLnN0eWxlLGM9cGFyc2VGbG9hdChzLmZvbnRTaXplfHwxMiksdT1lLnRleHQ7dm9pZCAwPT09dSYmKHU9dC5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIikpO28uY2xhc3NlZCgicGx1Z2luLWVkaXRhYmxlIGVkaXRhYmxlIiwhMCkuc3R5bGUoe3Bvc2l0aW9uOiJhYnNvbHV0ZSIsImZvbnQtZmFtaWx5IjpzLmZvbnRGYW1pbHl8fCJBcmlhbCIsImZvbnQtc2l6ZSI6Yyxjb2xvcjplLmZpbGx8fHMuZmlsbHx8ImJsYWNrIixvcGFjaXR5OjEsImJhY2tncm91bmQtY29sb3IiOmUuYmFja2dyb3VuZHx8InRyYW5zcGFyZW50IixvdXRsaW5lOiIjZmZmZmZmMzMgMXB4IHNvbGlkIixtYXJnaW46Wy1jLzgrMSwwLDAsLTFdLmpvaW4oInB4ICIpKyJweCIscGFkZGluZzoiMCIsImJveC1zaXppbmciOiJib3JkZXItYm94In0pLmF0dHIoe2NvbnRlbnRlZGl0YWJsZTohMH0pLnRleHQodSkuY2FsbChDKHQsaSxlKSkub24oImJsdXIiLChmdW5jdGlvbigpe3IuX2VkaXRpbmc9ITEsdC50ZXh0KHRoaXMudGV4dENvbnRlbnQpLnN0eWxlKHtvcGFjaXR5OjF9KTt2YXIgZSxpPW4uc2VsZWN0KHRoaXMpLmF0dHIoImNsYXNzIik7KGU9aT8iLiIraS5zcGxpdCgiICIpWzBdKyItbWF0aC1ncm91cCI6IltjbGFzcyo9LW1hdGgtZ3JvdXBdIikmJm4uc2VsZWN0KHQubm9kZSgpLnBhcmVudE5vZGUpLnNlbGVjdChlKS5zdHlsZSh7b3BhY2l0eTowfSk7dmFyIG89dGhpcy50ZXh0Q29udGVudDtuLnNlbGVjdCh0aGlzKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oMCkucmVtb3ZlKCksbi5zZWxlY3QoZG9jdW1lbnQpLm9uKCJtb3VzZXVwIixudWxsKSxhLmVkaXQuY2FsbCh0LG8pfSkpLm9uKCJmb2N1cyIsKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcztyLl9lZGl0aW5nPSEwLG4uc2VsZWN0KGRvY3VtZW50KS5vbigibW91c2V1cCIsKGZ1bmN0aW9uKCl7aWYobi5ldmVudC50YXJnZXQ9PT10KXJldHVybiExO2RvY3VtZW50LmFjdGl2ZUVsZW1lbnQ9PT1vLm5vZGUoKSYmby5ub2RlKCkuYmx1cigpfSkpfSkpLm9uKCJrZXl1cCIsKGZ1bmN0aW9uKCl7Mjc9PT1uLmV2ZW50LndoaWNoPyhyLl9lZGl0aW5nPSExLHQuc3R5bGUoe29wYWNpdHk6MX0pLG4uc2VsZWN0KHRoaXMpLnN0eWxlKHtvcGFjaXR5OjB9KS5vbigiYmx1ciIsKGZ1bmN0aW9uKCl7cmV0dXJuITF9KSkudHJhbnNpdGlvbigpLnJlbW92ZSgpLGEuY2FuY2VsLmNhbGwodCx0aGlzLnRleHRDb250ZW50KSk6KGEuaW5wdXQuY2FsbCh0LHRoaXMudGV4dENvbnRlbnQpLG4uc2VsZWN0KHRoaXMpLmNhbGwoQyh0LGksZSkpKX0pKS5vbigia2V5ZG93biIsKGZ1bmN0aW9uKCl7MTM9PT1uLmV2ZW50LndoaWNoJiZ0aGlzLmJsdXIoKX0pKS5jYWxsKGwpfSgpLHQuc3R5bGUoe29wYWNpdHk6MH0pO3ZhciBpLHM9by5hdHRyKCJjbGFzcyIpOyhpPXM/Ii4iK3Muc3BsaXQoIiAiKVswXSsiLW1hdGgtZ3JvdXAiOiJbY2xhc3MqPS1tYXRoLWdyb3VwXSIpJiZuLnNlbGVjdCh0Lm5vZGUoKS5wYXJlbnROb2RlKS5zZWxlY3QoaSkuc3R5bGUoe29wYWNpdHk6MH0pfWZ1bmN0aW9uIGwodCl7dmFyIGU9dC5ub2RlKCkscj1kb2N1bWVudC5jcmVhdGVSYW5nZSgpO3Iuc2VsZWN0Tm9kZUNvbnRlbnRzKGUpO3ZhciBuPXdpbmRvdy5nZXRTZWxlY3Rpb24oKTtuLnJlbW92ZUFsbFJhbmdlcygpLG4uYWRkUmFuZ2UociksZS5mb2N1cygpfXJldHVybiBlLmltbWVkaWF0ZT9zKCk6by5vbigiY2xpY2siLHMpLG4ucmViaW5kKHQsYSwib24iKX19LHsiLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NzQ0LCIuLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NzUzLCIuLi9saWIiOjc3NiwiQHBsb3RseS9kMyI6NTh9XSw4MDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e307ZnVuY3Rpb24gaSh0KXt0JiZudWxsIT09dC50aW1lciYmKGNsZWFyVGltZW91dCh0LnRpbWVyKSx0LnRpbWVyPW51bGwpfXIudGhyb3R0bGU9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPW5bdF0sbz1EYXRlLm5vdygpO2lmKCFhKXtmb3IodmFyIHMgaW4gbiluW3NdLnRzPG8tNmU0JiZkZWxldGUgbltzXTthPW5bdF09e3RzOjAsdGltZXI6bnVsbH19ZnVuY3Rpb24gbCgpe3IoKSxhLnRzPURhdGUubm93KCksYS5vbkRvbmUmJihhLm9uRG9uZSgpLGEub25Eb25lPW51bGwpfWkoYSksbz5hLnRzK2U/bCgpOmEudGltZXI9c2V0VGltZW91dCgoZnVuY3Rpb24oKXtsKCksYS50aW1lcj1udWxsfSksZSl9LHIuZG9uZT1mdW5jdGlvbih0KXt2YXIgZT1uW3RdO3JldHVybiBlJiZlLnRpbWVyP25ldyBQcm9taXNlKChmdW5jdGlvbih0KXt2YXIgcj1lLm9uRG9uZTtlLm9uRG9uZT1mdW5jdGlvbigpe3ImJnIoKSx0KCksZS5vbkRvbmU9bnVsbH19KSk6UHJvbWlzZS5yZXNvbHZlKCl9LHIuY2xlYXI9ZnVuY3Rpb24odCl7aWYodClpKG5bdF0pLGRlbGV0ZSBuW3RdO2Vsc2UgZm9yKHZhciBlIGluIG4pci5jbGVhcihlKX19LHt9XSw4MDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtpZih0PjApcmV0dXJuIE1hdGgubG9nKHQpL01hdGguTE4xMDt2YXIgcj1NYXRoLmxvZyhNYXRoLm1pbihlWzBdLGVbMV0pKS9NYXRoLkxOMTA7cmV0dXJuIG4ocil8fChyPU1hdGgubG9nKE1hdGgubWF4KGVbMF0sZVsxXSkpL01hdGguTE4xMC02KSxyfX0seyJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sODA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPWUuZXhwb3J0cz17fSxpPXQoIi4uL3Bsb3RzL2dlby9jb25zdGFudHMiKS5sb2NhdGlvbm1vZGVUb0xheWVyLGE9dCgidG9wb2pzb24tY2xpZW50IikuZmVhdHVyZTtuLmdldFRvcG9qc29uTmFtZT1mdW5jdGlvbih0KXtyZXR1cm5bdC5zY29wZS5yZXBsYWNlKC8gL2csIi0iKSwiXyIsdC5yZXNvbHV0aW9uLnRvU3RyaW5nKCksIm0iXS5qb2luKCIiKX0sbi5nZXRUb3BvanNvblBhdGg9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlKyIuanNvbiJ9LG4uZ2V0VG9wb2pzb25GZWF0dXJlcz1mdW5jdGlvbih0LGUpe3ZhciByPWlbdC5sb2NhdGlvbm1vZGVdLG49ZS5vYmplY3RzW3JdO3JldHVybiBhKGUsbikuZmVhdHVyZXN9fSx7Ii4uL3Bsb3RzL2dlby9jb25zdGFudHMiOjg1OCwidG9wb2pzb24tY2xpZW50Ijo1NzV9XSw4MDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJsb2NhbGUiLG5hbWU6ImVuLVVTIixkaWN0aW9uYXJ5OnsiQ2xpY2sgdG8gZW50ZXIgQ29sb3JzY2FsZSB0aXRsZSI6IkNsaWNrIHRvIGVudGVyIENvbG9yc2NhbGUgdGl0bGUifSxmb3JtYXQ6e2RhdGU6IiVtLyVkLyVZIn19fSx7fV0sODA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToibG9jYWxlIixuYW1lOiJlbiIsZGljdGlvbmFyeTp7IkNsaWNrIHRvIGVudGVyIENvbG9yc2NhbGUgdGl0bGUiOiJDbGljayB0byBlbnRlciBDb2xvdXJzY2FsZSB0aXRsZSJ9LGZvcm1hdDp7ZGF5czpbIlN1bmRheSIsIk1vbmRheSIsIlR1ZXNkYXkiLCJXZWRuZXNkYXkiLCJUaHVyc2RheSIsIkZyaWRheSIsIlNhdHVyZGF5Il0sc2hvcnREYXlzOlsiU3VuIiwiTW9uIiwiVHVlIiwiV2VkIiwiVGh1IiwiRnJpIiwiU2F0Il0sbW9udGhzOlsiSmFudWFyeSIsIkZlYnJ1YXJ5IiwiTWFyY2giLCJBcHJpbCIsIk1heSIsIkp1bmUiLCJKdWx5IiwiQXVndXN0IiwiU2VwdGVtYmVyIiwiT2N0b2JlciIsIk5vdmVtYmVyIiwiRGVjZW1iZXIiXSxzaG9ydE1vbnRoczpbIkphbiIsIkZlYiIsIk1hciIsIkFwciIsIk1heSIsIkp1biIsIkp1bCIsIkF1ZyIsIlNlcCIsIk9jdCIsIk5vdiIsIkRlYyJdLHBlcmlvZHM6WyJBTSIsIlBNIl0sZGF0ZVRpbWU6IiVhICViICVlICVYICVZIixkYXRlOiIlZC8lbS8lWSIsdGltZToiJUg6JU06JVMiLGRlY2ltYWw6Ii4iLHRob3VzYW5kczoiLCIsZ3JvdXBpbmc6WzNdLGN1cnJlbmN5OlsiJCIsIiJdLHllYXI6IiVZIixtb250aDoiJWIgJVkiLGRheU1vbnRoOiIlYiAlLWQiLGRheU1vbnRoWWVhcjoiJWIgJS1kLCAlWSJ9fX0se31dLDgwODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGUscixpPW4ubGF5b3V0QXJyYXlDb250YWluZXJzLGE9bi5sYXlvdXRBcnJheVJlZ2V4ZXMsbz10LnNwbGl0KCJbIilbMF0scz0wO3M8YS5sZW5ndGg7cysrKWlmKChyPXQubWF0Y2goYVtzXSkpJiYwPT09ci5pbmRleCl7ZT1yWzBdO2JyZWFrfWlmKGV8fChlPWlbaS5pbmRleE9mKG8pXSksIWUpcmV0dXJuITE7dmFyIGw9dC5zdWJzdHIoZS5sZW5ndGgpO3JldHVybiBsPyEhKHI9bC5tYXRjaCgvXlxbKDB8WzEtOV1bMC05XSopXF0oXC4oLispKT8kLykpJiZ7YXJyYXk6ZSxpbmRleDpOdW1iZXIoclsxXSkscHJvcGVydHk6clszXXx8IiJ9OnthcnJheTplLGluZGV4OiIiLHByb3BlcnR5OiIifX19LHsiLi4vcmVnaXN0cnkiOjkwNH1dLDgwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPW4uZXh0ZW5kRmxhdCxhPW4uaXNQbGFpbk9iamVjdCxvPXt2YWxUeXBlOiJmbGFnbGlzdCIsZXh0cmFzOlsibm9uZSJdLGZsYWdzOlsiY2FsYyIsImNsZWFyQXhpc1R5cGVzIiwicGxvdCIsInN0eWxlIiwibWFya2VyU2l6ZSIsImNvbG9yYmFycyJdfSxzPXt2YWxUeXBlOiJmbGFnbGlzdCIsZXh0cmFzOlsibm9uZSJdLGZsYWdzOlsiY2FsYyIsInBsb3QiLCJsZWdlbmQiLCJ0aWNrcyIsImF4cmFuZ2UiLCJsYXlvdXRzdHlsZSIsIm1vZGViYXIiLCJjYW1lcmEiLCJhcnJheWRyYXciLCJjb2xvcmJhcnMiXX0sbD1vLmZsYWdzLnNsaWNlKCkuY29uY2F0KFsiZnVsbFJlcGxvdCJdKSxjPXMuZmxhZ3Muc2xpY2UoKS5jb25jYXQoImxheW91dFJlcGxvdCIpO2Z1bmN0aW9uIHUodCl7Zm9yKHZhciBlPXt9LHI9MDtyPHQubGVuZ3RoO3IrKyllW3Rbcl1dPSExO3JldHVybiBlfWZ1bmN0aW9uIGYodCxlLHIpe3ZhciBuPWkoe30sdCk7Zm9yKHZhciBvIGluIG4pe3ZhciBzPW5bb107YShzKSYmKG5bb109aChzLGUscixvKSl9cmV0dXJuImZyb20tcm9vdCI9PT1yJiYobi5lZGl0VHlwZT1lKSxufWZ1bmN0aW9uIGgodCxlLHIsbil7aWYodC52YWxUeXBlKXt2YXIgYT1pKHt9LHQpO2lmKGEuZWRpdFR5cGU9ZSxBcnJheS5pc0FycmF5KHQuaXRlbXMpKXthLml0ZW1zPW5ldyBBcnJheSh0Lml0ZW1zLmxlbmd0aCk7Zm9yKHZhciBvPTA7bzx0Lml0ZW1zLmxlbmd0aDtvKyspYS5pdGVtc1tvXT1oKHQuaXRlbXNbb10sZSwiZnJvbS1yb290Iil9cmV0dXJuIGF9cmV0dXJuIGYodCxlLCJfIj09PW4uY2hhckF0KDApPyJuZXN0ZWQiOiJmcm9tLXJvb3QiKX1lLmV4cG9ydHM9e3RyYWNlczpvLGxheW91dDpzLHRyYWNlRmxhZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdShsKX0sbGF5b3V0RmxhZ3M6ZnVuY3Rpb24oKXtyZXR1cm4gdShjKX0sdXBkYXRlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5lZGl0VHlwZTtpZihyJiYibm9uZSIhPT1yKWZvcih2YXIgbj1yLnNwbGl0KCIrIiksaT0wO2k8bi5sZW5ndGg7aSsrKXRbbltpXV09ITB9LG92ZXJyaWRlQWxsOmZ9fSx7Ii4uL2xpYiI6Nzc2fV0sODEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCJnbC1tYXQ0L2Zyb21RdWF0IiksYT10KCIuLi9yZWdpc3RyeSIpLG89dCgiLi4vbGliIikscz10KCIuLi9wbG90cy9wbG90cyIpLGw9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksYz10KCIuLi9jb21wb25lbnRzL2NvbG9yIiksdT1sLmNsZWFuSWQsZj1sLmdldEZyb21UcmFjZSxoPWEudHJhY2VJcztmdW5jdGlvbiBwKHQsZSl7dmFyIHI9dFtlXSxuPWUuY2hhckF0KDApO3ImJiJwYXBlciIhPT1yJiYodFtlXT11KHIsbiwhMCkpfWZ1bmN0aW9uIGQodCl7ZnVuY3Rpb24gZShlLHIpe3ZhciBuPXRbZV0saT10LnRpdGxlJiZ0LnRpdGxlW3JdO24mJiFpJiYodC50aXRsZXx8KHQudGl0bGU9e30pLHQudGl0bGVbcl09dFtlXSxkZWxldGUgdFtlXSl9dCYmKCJzdHJpbmciIT10eXBlb2YgdC50aXRsZSYmIm51bWJlciIhPXR5cGVvZiB0LnRpdGxlfHwodC50aXRsZT17dGV4dDp0LnRpdGxlfSksZSgidGl0bGVmb250IiwiZm9udCIpLGUoInRpdGxlcG9zaXRpb24iLCJwb3NpdGlvbiIpLGUoInRpdGxlc2lkZSIsInNpZGUiKSxlKCJ0aXRsZW9mZnNldCIsIm9mZnNldCIpKX1mdW5jdGlvbiBtKHQpe2lmKCFvLmlzUGxhaW5PYmplY3QodCkpcmV0dXJuITE7dmFyIGU9dC5uYW1lO3JldHVybiBkZWxldGUgdC5uYW1lLGRlbGV0ZSB0LnNob3dsZWdlbmQsKCJzdHJpbmciPT10eXBlb2YgZXx8Im51bWJlciI9PXR5cGVvZiBlKSYmU3RyaW5nKGUpfWZ1bmN0aW9uIGcodCxlLHIsbil7aWYociYmIW4pcmV0dXJuIHQ7aWYobiYmIXIpcmV0dXJuIGU7aWYoIXQudHJpbSgpKXJldHVybiBlO2lmKCFlLnRyaW0oKSlyZXR1cm4gdDt2YXIgaSxhPU1hdGgubWluKHQubGVuZ3RoLGUubGVuZ3RoKTtmb3IoaT0wO2k8YSYmdC5jaGFyQXQoaSk9PT1lLmNoYXJBdChpKTtpKyspO3JldHVybiB0LnN1YnN0cigwLGkpLnRyaW0oKX1mdW5jdGlvbiB2KHQpe3ZhciBlPSJtaWRkbGUiLHI9ImNlbnRlciI7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYoLTEhPT10LmluZGV4T2YoInRvcCIpP2U9InRvcCI6LTEhPT10LmluZGV4T2YoImJvdHRvbSIpJiYoZT0iYm90dG9tIiksLTEhPT10LmluZGV4T2YoImxlZnQiKT9yPSJsZWZ0IjotMSE9PXQuaW5kZXhPZigicmlnaHQiKSYmKHI9InJpZ2h0IikpLGUrIiAiK3J9ZnVuY3Rpb24geSh0LGUpe3JldHVybiBlIGluIHQmJiJvYmplY3QiPT10eXBlb2YgdFtlXSYmMD09PU9iamVjdC5rZXlzKHRbZV0pLmxlbmd0aH1yLmNsZWFyUHJvbWlzZVF1ZXVlPWZ1bmN0aW9uKHQpe0FycmF5LmlzQXJyYXkodC5fcHJvbWlzZXMpJiZ0Ll9wcm9taXNlcy5sZW5ndGg+MCYmby5sb2coIkNsZWFyaW5nIHByZXZpb3VzIHJlamVjdGVkIHByb21pc2VzIGZyb20gcXVldWUuIiksdC5fcHJvbWlzZXM9W119LHIuY2xlYW5MYXlvdXQ9ZnVuY3Rpb24odCl7dmFyIGUsbjt0fHwodD17fSksdC54YXhpczEmJih0LnhheGlzfHwodC54YXhpcz10LnhheGlzMSksZGVsZXRlIHQueGF4aXMxKSx0LnlheGlzMSYmKHQueWF4aXN8fCh0LnlheGlzPXQueWF4aXMxKSxkZWxldGUgdC55YXhpczEpLHQuc2NlbmUxJiYodC5zY2VuZXx8KHQuc2NlbmU9dC5zY2VuZTEpLGRlbGV0ZSB0LnNjZW5lMSk7dmFyIGE9KHMuc3VicGxvdHNSZWdpc3RyeS5jYXJ0ZXNpYW58fHt9KS5hdHRyUmVnZXgsbD0ocy5zdWJwbG90c1JlZ2lzdHJ5LnBvbGFyfHx7fSkuYXR0clJlZ2V4LGY9KHMuc3VicGxvdHNSZWdpc3RyeS50ZXJuYXJ5fHx7fSkuYXR0clJlZ2V4LGg9KHMuc3VicGxvdHNSZWdpc3RyeS5nbDNkfHx7fSkuYXR0clJlZ2V4LG09T2JqZWN0LmtleXModCk7Zm9yKGU9MDtlPG0ubGVuZ3RoO2UrKyl7dmFyIGc9bVtlXTtpZihhJiZhLnRlc3QoZykpe3ZhciB2PXRbZ107di5hbmNob3ImJiJmcmVlIiE9PXYuYW5jaG9yJiYodi5hbmNob3I9dSh2LmFuY2hvcikpLHYub3ZlcmxheWluZyYmKHYub3ZlcmxheWluZz11KHYub3ZlcmxheWluZykpLHYudHlwZXx8KHYuaXNkYXRlP3YudHlwZT0iZGF0ZSI6di5pc2xvZz92LnR5cGU9ImxvZyI6ITE9PT12LmlzZGF0ZSYmITE9PT12LmlzbG9nJiYodi50eXBlPSJsaW5lYXIiKSksIndpdGh6ZXJvIiE9PXYuYXV0b3JhbmdlJiYidG96ZXJvIiE9PXYuYXV0b3JhbmdlfHwodi5hdXRvcmFuZ2U9ITAsdi5yYW5nZW1vZGU9InRvemVybyIpLGRlbGV0ZSB2LmlzbG9nLGRlbGV0ZSB2LmlzZGF0ZSxkZWxldGUgdi5jYXRlZ29yaWVzLHkodiwiZG9tYWluIikmJmRlbGV0ZSB2LmRvbWFpbix2b2lkIDAhPT12LmF1dG90aWNrJiYodm9pZCAwPT09di50aWNrbW9kZSYmKHYudGlja21vZGU9di5hdXRvdGljaz8iYXV0byI6ImxpbmVhciIpLGRlbGV0ZSB2LmF1dG90aWNrKSxkKHYpfWVsc2UgaWYobCYmbC50ZXN0KGcpKXtkKHRbZ10ucmFkaWFsYXhpcyl9ZWxzZSBpZihmJiZmLnRlc3QoZykpe3ZhciB4PXRbZ107ZCh4LmFheGlzKSxkKHguYmF4aXMpLGQoeC5jYXhpcyl9ZWxzZSBpZihoJiZoLnRlc3QoZykpe3ZhciBiPXRbZ10sXz1iLmNhbWVyYXBvc2l0aW9uO2lmKEFycmF5LmlzQXJyYXkoXykmJjQ9PT1fWzBdLmxlbmd0aCl7dmFyIHc9X1swXSxUPV9bMV0saz1fWzJdLEE9aShbXSx3KSxNPVtdO2ZvcihuPTA7bjwzOysrbilNW25dPVRbbl0raypBWzIrNCpuXTtiLmNhbWVyYT17ZXllOnt4Ok1bMF0seTpNWzFdLHo6TVsyXX0sY2VudGVyOnt4OlRbMF0seTpUWzFdLHo6VFsyXX0sdXA6e3g6MCx5OjAsejoxfX0sZGVsZXRlIGIuY2FtZXJhcG9zaXRpb259ZChiLnhheGlzKSxkKGIueWF4aXMpLGQoYi56YXhpcyl9fXZhciBTPUFycmF5LmlzQXJyYXkodC5hbm5vdGF0aW9ucyk/dC5hbm5vdGF0aW9ucy5sZW5ndGg6MDtmb3IoZT0wO2U8UztlKyspe3ZhciBFPXQuYW5ub3RhdGlvbnNbZV07by5pc1BsYWluT2JqZWN0KEUpJiYoRS5yZWYmJigicGFwZXIiPT09RS5yZWY/KEUueHJlZj0icGFwZXIiLEUueXJlZj0icGFwZXIiKToiZGF0YSI9PT1FLnJlZiYmKEUueHJlZj0ieCIsRS55cmVmPSJ5IiksZGVsZXRlIEUucmVmKSxwKEUsInhyZWYiKSxwKEUsInlyZWYiKSl9dmFyIEw9QXJyYXkuaXNBcnJheSh0LnNoYXBlcyk/dC5zaGFwZXMubGVuZ3RoOjA7Zm9yKGU9MDtlPEw7ZSsrKXt2YXIgQz10LnNoYXBlc1tlXTtvLmlzUGxhaW5PYmplY3QoQykmJihwKEMsInhyZWYiKSxwKEMsInlyZWYiKSl9dmFyIFA9QXJyYXkuaXNBcnJheSh0LmltYWdlcyk/dC5pbWFnZXMubGVuZ3RoOjA7Zm9yKGU9MDtlPFA7ZSsrKXt2YXIgST10LmltYWdlc1tlXTtvLmlzUGxhaW5PYmplY3QoSSkmJihwKEksInhyZWYiKSxwKEksInlyZWYiKSl9dmFyIE89dC5sZWdlbmQ7cmV0dXJuIE8mJihPLng+Mz8oTy54PTEuMDIsTy54YW5jaG9yPSJsZWZ0Iik6Ty54PC0yJiYoTy54PS0uMDIsTy54YW5jaG9yPSJyaWdodCIpLE8ueT4zPyhPLnk9MS4wMixPLnlhbmNob3I9ImJvdHRvbSIpOk8ueTwtMiYmKE8ueT0tLjAyLE8ueWFuY2hvcj0idG9wIikpLGQodCksInJvdGF0ZSI9PT10LmRyYWdtb2RlJiYodC5kcmFnbW9kZT0ib3JiaXQiKSxjLmNsZWFuKHQpLHQudGVtcGxhdGUmJnQudGVtcGxhdGUubGF5b3V0JiZyLmNsZWFuTGF5b3V0KHQudGVtcGxhdGUubGF5b3V0KSx0fSxyLmNsZWFuRGF0YT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG4saT10W2VdO2lmKCJoaXN0b2dyYW15Ij09PWkudHlwZSYmInhiaW5zImluIGkmJiEoInliaW5zImluIGkpJiYoaS55Ymlucz1pLnhiaW5zLGRlbGV0ZSBpLnhiaW5zKSxpLmVycm9yX3kmJiJvcGFjaXR5ImluIGkuZXJyb3JfeSl7dmFyIGw9Yy5kZWZhdWx0cyxmPWkuZXJyb3JfeS5jb2xvcnx8KGgoaSwiYmFyIik/Yy5kZWZhdWx0TGluZTpsW2UlbC5sZW5ndGhdKTtpLmVycm9yX3kuY29sb3I9Yy5hZGRPcGFjaXR5KGMucmdiKGYpLGMub3BhY2l0eShmKSppLmVycm9yX3kub3BhY2l0eSksZGVsZXRlIGkuZXJyb3JfeS5vcGFjaXR5fWlmKCJiYXJkaXIiaW4gaSYmKCJoIiE9PWkuYmFyZGlyfHwhaChpLCJiYXIiKSYmImhpc3RvZ3JhbSIhPT1pLnR5cGUuc3Vic3RyKDAsOSl8fChpLm9yaWVudGF0aW9uPSJoIixyLnN3YXBYWURhdGEoaSkpLGRlbGV0ZSBpLmJhcmRpciksImhpc3RvZ3JhbXkiPT09aS50eXBlJiZyLnN3YXBYWURhdGEoaSksImhpc3RvZ3JhbXgiIT09aS50eXBlJiYiaGlzdG9ncmFteSIhPT1pLnR5cGV8fChpLnR5cGU9Imhpc3RvZ3JhbSIpLCJzY2wiaW4gaSYmISgiY29sb3JzY2FsZSJpbiBpKSYmKGkuY29sb3JzY2FsZT1pLnNjbCxkZWxldGUgaS5zY2wpLCJyZXZlcnNlc2NsImluIGkmJiEoInJldmVyc2VzY2FsZSJpbiBpKSYmKGkucmV2ZXJzZXNjYWxlPWkucmV2ZXJzZXNjbCxkZWxldGUgaS5yZXZlcnNlc2NsKSxpLnhheGlzJiYoaS54YXhpcz11KGkueGF4aXMsIngiKSksaS55YXhpcyYmKGkueWF4aXM9dShpLnlheGlzLCJ5IikpLGgoaSwiZ2wzZCIpJiZpLnNjZW5lJiYoaS5zY2VuZT1zLnN1YnBsb3RzUmVnaXN0cnkuZ2wzZC5jbGVhbklkKGkuc2NlbmUpKSwhaChpLCJwaWUtbGlrZSIpJiYhaChpLCJiYXItbGlrZSIpKWlmKEFycmF5LmlzQXJyYXkoaS50ZXh0cG9zaXRpb24pKWZvcihuPTA7bjxpLnRleHRwb3NpdGlvbi5sZW5ndGg7bisrKWkudGV4dHBvc2l0aW9uW25dPXYoaS50ZXh0cG9zaXRpb25bbl0pO2Vsc2UgaS50ZXh0cG9zaXRpb24mJihpLnRleHRwb3NpdGlvbj12KGkudGV4dHBvc2l0aW9uKSk7dmFyIHA9YS5nZXRNb2R1bGUoaSk7aWYocCYmcC5jb2xvcmJhcil7dmFyIHg9cC5jb2xvcmJhci5jb250YWluZXIsYj14P2lbeF06aTtiJiZiLmNvbG9yc2NhbGUmJigiWUlHbkJ1Ij09PWIuY29sb3JzY2FsZSYmKGIuY29sb3JzY2FsZT0iWWxHbkJ1IiksIllJT3JSZCI9PT1iLmNvbG9yc2NhbGUmJihiLmNvbG9yc2NhbGU9IllsT3JSZCIpKX1pZigic3VyZmFjZSI9PT1pLnR5cGUmJm8uaXNQbGFpbk9iamVjdChpLmNvbnRvdXJzKSl7dmFyIF89WyJ4IiwieSIsInoiXTtmb3Iobj0wO248Xy5sZW5ndGg7bisrKXt2YXIgdz1pLmNvbnRvdXJzW19bbl1dO28uaXNQbGFpbk9iamVjdCh3KSYmKHcuaGlnaGxpZ2h0Q29sb3ImJih3LmhpZ2hsaWdodGNvbG9yPXcuaGlnaGxpZ2h0Q29sb3IsZGVsZXRlIHcuaGlnaGxpZ2h0Q29sb3IpLHcuaGlnaGxpZ2h0V2lkdGgmJih3LmhpZ2hsaWdodHdpZHRoPXcuaGlnaGxpZ2h0V2lkdGgsZGVsZXRlIHcuaGlnaGxpZ2h0V2lkdGgpKX19aWYoImNhbmRsZXN0aWNrIj09PWkudHlwZXx8Im9obGMiPT09aS50eXBlKXt2YXIgVD0hMSE9PShpLmluY3JlYXNpbmd8fHt9KS5zaG93bGVnZW5kLGs9ITEhPT0oaS5kZWNyZWFzaW5nfHx7fSkuc2hvd2xlZ2VuZCxBPW0oaS5pbmNyZWFzaW5nKSxNPW0oaS5kZWNyZWFzaW5nKTtpZighMSE9PUEmJiExIT09TSl7dmFyIFM9ZyhBLE0sVCxrKTtTJiYoaS5uYW1lPVMpfWVsc2UhQSYmIU18fGkubmFtZXx8KGkubmFtZT1BfHxNKX1pZihBcnJheS5pc0FycmF5KGkudHJhbnNmb3Jtcykpe3ZhciBFPWkudHJhbnNmb3Jtcztmb3Iobj0wO248RS5sZW5ndGg7bisrKXt2YXIgTD1FW25dO2lmKG8uaXNQbGFpbk9iamVjdChMKSlzd2l0Y2goTC50eXBlKXtjYXNlImZpbHRlciI6TC5maWx0ZXJzcmMmJihMLnRhcmdldD1MLmZpbHRlcnNyYyxkZWxldGUgTC5maWx0ZXJzcmMpLEwuY2FsZW5kYXImJihMLnZhbHVlY2FsZW5kYXJ8fChMLnZhbHVlY2FsZW5kYXI9TC5jYWxlbmRhciksZGVsZXRlIEwuY2FsZW5kYXIpO2JyZWFrO2Nhc2UiZ3JvdXBieSI6aWYoTC5zdHlsZXM9TC5zdHlsZXN8fEwuc3R5bGUsTC5zdHlsZXMmJiFBcnJheS5pc0FycmF5KEwuc3R5bGVzKSl7dmFyIEM9TC5zdHlsZXMsUD1PYmplY3Qua2V5cyhDKTtMLnN0eWxlcz1bXTtmb3IodmFyIEk9MDtJPFAubGVuZ3RoO0krKylMLnN0eWxlcy5wdXNoKHt0YXJnZXQ6UFtJXSx2YWx1ZTpDW1BbSV1dfSl9fX19eShpLCJsaW5lIikmJmRlbGV0ZSBpLmxpbmUsIm1hcmtlciJpbiBpJiYoeShpLm1hcmtlciwibGluZSIpJiZkZWxldGUgaS5tYXJrZXIubGluZSx5KGksIm1hcmtlciIpJiZkZWxldGUgaS5tYXJrZXIpLGMuY2xlYW4oaSksaS5hdXRvYmlueCYmKGRlbGV0ZSBpLmF1dG9iaW54LGRlbGV0ZSBpLnhiaW5zKSxpLmF1dG9iaW55JiYoZGVsZXRlIGkuYXV0b2JpbnksZGVsZXRlIGkueWJpbnMpLGQoaSksaS5jb2xvcmJhciYmZChpLmNvbG9yYmFyKSxpLm1hcmtlciYmaS5tYXJrZXIuY29sb3JiYXImJmQoaS5tYXJrZXIuY29sb3JiYXIpLGkubGluZSYmaS5saW5lLmNvbG9yYmFyJiZkKGkubGluZS5jb2xvcmJhciksaS5hYXhpcyYmZChpLmFheGlzKSxpLmJheGlzJiZkKGkuYmF4aXMpfX0sci5zd2FwWFlEYXRhPWZ1bmN0aW9uKHQpe3ZhciBlO2lmKG8uc3dhcEF0dHJzKHQsWyI/IiwiPzAiLCJkPyIsIj9iaW5zIiwibmJpbnM/IiwiYXV0b2Jpbj8iLCI/c3JjIiwiZXJyb3JfPyJdKSxBcnJheS5pc0FycmF5KHQueikmJkFycmF5LmlzQXJyYXkodC56WzBdKSYmKHQudHJhbnNwb3NlP2RlbGV0ZSB0LnRyYW5zcG9zZTp0LnRyYW5zcG9zZT0hMCksdC5lcnJvcl94JiZ0LmVycm9yX3kpe3ZhciByPXQuZXJyb3JfeSxuPSJjb3B5X3lzdHlsZSJpbiByP3IuY29weV95c3R5bGU6IShyLmNvbG9yfHxyLnRoaWNrbmVzc3x8ci53aWR0aCk7by5zd2FwQXR0cnModCxbImVycm9yXz8uY29weV95c3R5bGUiXSksbiYmby5zd2FwQXR0cnModCxbImVycm9yXz8uY29sb3IiLCJlcnJvcl8/LnRoaWNrbmVzcyIsImVycm9yXz8ud2lkdGgiXSl9aWYoInN0cmluZyI9PXR5cGVvZiB0LmhvdmVyaW5mbyl7dmFyIGk9dC5ob3ZlcmluZm8uc3BsaXQoIisiKTtmb3IoZT0wO2U8aS5sZW5ndGg7ZSsrKSJ4Ij09PWlbZV0/aVtlXT0ieSI6InkiPT09aVtlXSYmKGlbZV09IngiKTt0LmhvdmVyaW5mbz1pLmpvaW4oIisiKX19LHIuY29lcmNlVHJhY2VJbmRpY2VzPWZ1bmN0aW9uKHQsZSl7aWYobihlKSlyZXR1cm5bZV07aWYoIUFycmF5LmlzQXJyYXkoZSl8fCFlLmxlbmd0aClyZXR1cm4gdC5kYXRhLm1hcCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gZX0pKTtpZihBcnJheS5pc0FycmF5KGUpKXtmb3IodmFyIHI9W10saT0wO2k8ZS5sZW5ndGg7aSsrKW8uaXNJbmRleChlW2ldLHQuZGF0YS5sZW5ndGgpP3IucHVzaChlW2ldKTpvLndhcm4oInRyYWNlIGluZGV4ICgiLGVbaV0sIikgaXMgbm90IGEgbnVtYmVyIG9yIGlzIG91dCBvZiBib3VuZHMiKTtyZXR1cm4gcn1yZXR1cm4gZX0sci5tYW5hZ2VBcnJheUNvbnRhaW5lcnM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXQub2JqLGE9dC5wYXJ0cyxzPWEubGVuZ3RoLGw9YVtzLTFdLGM9bihsKTtpZihjJiZudWxsPT09ZSl7dmFyIHU9YS5zbGljZSgwLHMtMSkuam9pbigiLiIpO28ubmVzdGVkUHJvcGVydHkoaSx1KS5nZXQoKS5zcGxpY2UobCwxKX1lbHNlIGMmJnZvaWQgMD09PXQuZ2V0KCk/KHZvaWQgMD09PXQuZ2V0KCkmJihyW3QuYXN0cl09bnVsbCksdC5zZXQoZSkpOnQuc2V0KGUpfTt2YXIgeD0vKFwuW15cW1xdXC5dK3xcW1teXFtcXVwuXStcXSkkLztmdW5jdGlvbiBiKHQpe3ZhciBlPXQuc2VhcmNoKHgpO2lmKGU+MClyZXR1cm4gdC5zdWJzdHIoMCxlKX1yLmhhc1BhcmVudD1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1iKGUpO3I7KXtpZihyIGluIHQpcmV0dXJuITA7cj1iKHIpfXJldHVybiExfTt2YXIgXz1bIngiLCJ5IiwieiJdO3IuY2xlYXJBeGlzVHlwZXM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWZvcih2YXIgaT10Ll9mdWxsRGF0YVtuXSxhPTA7YTwzO2ErKyl7dmFyIHM9Zih0LGksX1thXSk7aWYocyYmImxvZyIhPT1zLnR5cGUpe3ZhciBsPXMuX25hbWUsYz1zLl9pZC5zdWJzdHIoMSk7aWYoInNjZW5lIj09PWMuc3Vic3RyKDAsNSkpe2lmKHZvaWQgMCE9PXJbY10pY29udGludWU7bD1jKyIuIitsfXZhciB1PWwrIi50eXBlIjt2b2lkIDA9PT1yW2xdJiZ2b2lkIDA9PT1yW3VdJiZvLm5lc3RlZFByb3BlcnR5KHQubGF5b3V0LHUpLnNldChudWxsKX19fX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uL2xpYiI6Nzc2LCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwiLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi4vcmVnaXN0cnkiOjkwNCwiZmFzdC1pc251bWVyaWMiOjI0MiwiZ2wtbWF0NC9mcm9tUXVhdCI6Mjc2fV0sODExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vcGxvdF9hcGkiKTtyLl9kb1Bsb3Q9bi5fZG9QbG90LHIubmV3UGxvdD1uLm5ld1Bsb3Qsci5yZXN0eWxlPW4ucmVzdHlsZSxyLnJlbGF5b3V0PW4ucmVsYXlvdXQsci5yZWRyYXc9bi5yZWRyYXcsci51cGRhdGU9bi51cGRhdGUsci5fZ3VpUmVzdHlsZT1uLl9ndWlSZXN0eWxlLHIuX2d1aVJlbGF5b3V0PW4uX2d1aVJlbGF5b3V0LHIuX2d1aVVwZGF0ZT1uLl9ndWlVcGRhdGUsci5fc3RvcmVEaXJlY3RHVUlFZGl0PW4uX3N0b3JlRGlyZWN0R1VJRWRpdCxyLnJlYWN0PW4ucmVhY3Qsci5leHRlbmRUcmFjZXM9bi5leHRlbmRUcmFjZXMsci5wcmVwZW5kVHJhY2VzPW4ucHJlcGVuZFRyYWNlcyxyLmFkZFRyYWNlcz1uLmFkZFRyYWNlcyxyLmRlbGV0ZVRyYWNlcz1uLmRlbGV0ZVRyYWNlcyxyLm1vdmVUcmFjZXM9bi5tb3ZlVHJhY2VzLHIucHVyZ2U9bi5wdXJnZSxyLmFkZEZyYW1lcz1uLmFkZEZyYW1lcyxyLmRlbGV0ZUZyYW1lcz1uLmRlbGV0ZUZyYW1lcyxyLmFuaW1hdGU9bi5hbmltYXRlLHIuc2V0UGxvdENvbmZpZz1uLnNldFBsb3RDb25maWcsci50b0ltYWdlPXQoIi4vdG9faW1hZ2UiKSxyLnZhbGlkYXRlPXQoIi4vdmFsaWRhdGUiKSxyLmRvd25sb2FkSW1hZ2U9dCgiLi4vc25hcHNob3QvZG93bmxvYWQiKTt2YXIgaT10KCIuL3RlbXBsYXRlX2FwaSIpO3IubWFrZVRlbXBsYXRlPWkubWFrZVRlbXBsYXRlLHIudmFsaWRhdGVUZW1wbGF0ZT1pLnZhbGlkYXRlVGVtcGxhdGV9LHsiLi4vc25hcHNob3QvZG93bmxvYWQiOjkwNiwiLi9wbG90X2FwaSI6ODEzLCIuL3RlbXBsYXRlX2FwaSI6ODE4LCIuL3RvX2ltYWdlIjo4MTksIi4vdmFsaWRhdGUiOjgyMH1dLDgxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIvaXNfcGxhaW5fb2JqZWN0IiksaT10KCIuLi9saWIvbm9vcCIpLGE9dCgiLi4vbGliL2xvZ2dlcnMiKSxvPXQoIi4uL2xpYi9zZWFyY2giKS5zb3J0ZXJBc2Mscz10KCIuLi9yZWdpc3RyeSIpO3IuY29udGFpbmVyQXJyYXlNYXRjaD10KCIuL2NvbnRhaW5lcl9hcnJheV9tYXRjaCIpO3ZhciBsPXIuaXNBZGRWYWw9ZnVuY3Rpb24odCl7cmV0dXJuImFkZCI9PT10fHxuKHQpfSxjPXIuaXNSZW1vdmVWYWw9ZnVuY3Rpb24odCl7cmV0dXJuIG51bGw9PT10fHwicmVtb3ZlIj09PXR9O3IuYXBwbHlDb250YWluZXJBcnJheUNoYW5nZXM9ZnVuY3Rpb24odCxlLHIsbix1KXt2YXIgZj1lLmFzdHIsaD1zLmdldENvbXBvbmVudE1ldGhvZChmLCJzdXBwbHlMYXlvdXREZWZhdWx0cyIpLHA9cy5nZXRDb21wb25lbnRNZXRob2QoZiwiZHJhdyIpLGQ9cy5nZXRDb21wb25lbnRNZXRob2QoZiwiZHJhd09uZSIpLG09bi5yZXBsb3R8fG4ucmVjYWxjfHxoPT09aXx8cD09PWksZz10LmxheW91dCx2PXQuX2Z1bGxMYXlvdXQ7aWYoclsiIl0pe09iamVjdC5rZXlzKHIpLmxlbmd0aD4xJiZhLndhcm4oIkZ1bGwgYXJyYXkgZWRpdHMgYXJlIGluY29tcGF0aWJsZSB3aXRoIG90aGVyIGVkaXRzIixmKTt2YXIgeT1yWyIiXVsiIl07aWYoYyh5KSllLnNldChudWxsKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KHkpKXJldHVybiBhLndhcm4oIlVucmVjb2duaXplZCBmdWxsIGFycmF5IGVkaXQgdmFsdWUiLGYseSksITA7ZS5zZXQoeSl9cmV0dXJuIW0mJihoKGcsdikscCh0KSwhMCl9dmFyIHgsYixfLHcsVCxrLEEsTSxTPU9iamVjdC5rZXlzKHIpLm1hcChOdW1iZXIpLnNvcnQobyksRT1lLmdldCgpLEw9RXx8W10sQz11KHYsZikuZ2V0KCksUD1bXSxJPS0xLE89TC5sZW5ndGg7Zm9yKHg9MDt4PFMubGVuZ3RoO3grKylpZih3PXJbXz1TW3hdXSxUPU9iamVjdC5rZXlzKHcpLGs9d1siIl0sQT1sKGspLF88MHx8Xz5MLmxlbmd0aC0oQT8wOjEpKWEud2FybigiaW5kZXggb3V0IG9mIHJhbmdlIixmLF8pO2Vsc2UgaWYodm9pZCAwIT09aylULmxlbmd0aD4xJiZhLndhcm4oIkluc2VydGlvbiAmIHJlbW92YWwgYXJlIGluY29tcGF0aWJsZSB3aXRoIGVkaXRzIHRvIHRoZSBzYW1lIGluZGV4LiIsZixfKSxjKGspP1AucHVzaChfKTpBPygiYWRkIj09PWsmJihrPXt9KSxMLnNwbGljZShfLDAsayksQyYmQy5zcGxpY2UoXywwLHt9KSk6YS53YXJuKCJVbnJlY29nbml6ZWQgZnVsbCBvYmplY3QgZWRpdCB2YWx1ZSIsZixfLGspLC0xPT09SSYmKEk9Xyk7ZWxzZSBmb3IoYj0wO2I8VC5sZW5ndGg7YisrKU09ZisiWyIrXysiXS4iLHUoTFtfXSxUW2JdLE0pLnNldCh3W1RbYl1dKTtmb3IoeD1QLmxlbmd0aC0xO3g+PTA7eC0tKUwuc3BsaWNlKFBbeF0sMSksQyYmQy5zcGxpY2UoUFt4XSwxKTtpZihMLmxlbmd0aD9FfHxlLnNldChMKTplLnNldChudWxsKSxtKXJldHVybiExO2lmKGgoZyx2KSxkIT09aSl7dmFyIHo7aWYoLTE9PT1JKXo9UztlbHNle2ZvcihPPU1hdGgubWF4KEwubGVuZ3RoLE8pLHo9W10seD0wO3g8Uy5sZW5ndGgmJiEoKF89U1t4XSk+PUkpO3grKyl6LnB1c2goXyk7Zm9yKHg9STt4PE87eCsrKXoucHVzaCh4KX1mb3IoeD0wO3g8ei5sZW5ndGg7eCsrKWQodCx6W3hdKX1lbHNlIHAodCk7cmV0dXJuITB9fSx7Ii4uL2xpYi9pc19wbGFpbl9vYmplY3QiOjc3NywiLi4vbGliL2xvZ2dlcnMiOjc4MCwiLi4vbGliL25vb3AiOjc4NSwiLi4vbGliL3NlYXJjaCI6Nzk2LCIuLi9yZWdpc3RyeSI6OTA0LCIuL2NvbnRhaW5lcl9hcnJheV9tYXRjaCI6ODA4fV0sODEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCJoYXMtaG92ZXIiKSxvPXQoIi4uL2xpYiIpLHM9by5uZXN0ZWRQcm9wZXJ0eSxsPXQoIi4uL2xpYi9ldmVudHMiKSxjPXQoIi4uL2xpYi9xdWV1ZSIpLHU9dCgiLi4vcmVnaXN0cnkiKSxmPXQoIi4vcGxvdF9zY2hlbWEiKSxoPXQoIi4uL3Bsb3RzL3Bsb3RzIikscD10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGQ9dCgiLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbT10KCIuLi9jb21wb25lbnRzL2NvbG9yIiksZz10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vZ3JhcGhfaW50ZXJhY3QiKS5pbml0SW50ZXJhY3Rpb25zLHY9dCgiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSx5PXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9zZWxlY3QiKS5jbGVhclNlbGVjdCx4PXQoIi4vcGxvdF9jb25maWciKS5kZmx0Q29uZmlnLGI9dCgiLi9tYW5hZ2VfYXJyYXlzIiksXz10KCIuL2hlbHBlcnMiKSx3PXQoIi4vc3Vicm91dGluZXMiKSxUPXQoIi4vZWRpdF90eXBlcyIpLGs9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyIpLkFYX05BTUVfUEFUVEVSTixBPTA7ZnVuY3Rpb24gTSh0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2UuX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQ/ZS5fcmVkcmF3RnJvbUF1dG9NYXJnaW5Db3VudC0tOnQuZW1pdCgicGxvdGx5X2FmdGVycGxvdCIpfWZ1bmN0aW9uIFModCxlKXt0cnl7dC5fZnVsbExheW91dC5fcGFwZXIuc3R5bGUoImJhY2tncm91bmQiLGUpfWNhdGNoKHQpe28uZXJyb3IodCl9fWZ1bmN0aW9uIEUodCxlKXtTKHQsbS5jb21iaW5lKGUsIndoaXRlIikpfWZ1bmN0aW9uIEwodCxlKXtpZighdC5fY29udGV4dCl7dC5fY29udGV4dD1vLmV4dGVuZERlZXAoe30seCk7dmFyIHI9bi5zZWxlY3QoImJhc2UiKTt0Ll9jb250ZXh0Ll9iYXNlVXJsPXIuc2l6ZSgpJiZyLmF0dHIoImhyZWYiKT93aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdCgiIyIpWzBdOiIifXZhciBpLHMsbCxjPXQuX2NvbnRleHQ7aWYoZSl7Zm9yKHM9T2JqZWN0LmtleXMoZSksaT0wO2k8cy5sZW5ndGg7aSsrKSJlZGl0YWJsZSIhPT0obD1zW2ldKSYmImVkaXRzIiE9PWwmJmwgaW4gYyYmKCJzZXRCYWNrZ3JvdW5kIj09PWwmJiJvcGFxdWUiPT09ZVtsXT9jW2xdPUU6Y1tsXT1lW2xdKTtlLnBsb3QzZFBpeGVsUmF0aW8mJiFjLnBsb3RHbFBpeGVsUmF0aW8mJihjLnBsb3RHbFBpeGVsUmF0aW89Yy5wbG90M2RQaXhlbFJhdGlvKTt2YXIgdT1lLmVkaXRhYmxlO2lmKHZvaWQgMCE9PXUpZm9yKGMuZWRpdGFibGU9dSxzPU9iamVjdC5rZXlzKGMuZWRpdHMpLGk9MDtpPHMubGVuZ3RoO2krKyljLmVkaXRzW3NbaV1dPXU7aWYoZS5lZGl0cylmb3Iocz1PYmplY3Qua2V5cyhlLmVkaXRzKSxpPTA7aTxzLmxlbmd0aDtpKyspKGw9c1tpXSlpbiBjLmVkaXRzJiYoYy5lZGl0c1tsXT1lLmVkaXRzW2xdKTtjLl9leHBvcnRlZFBsb3Q9ZS5fZXhwb3J0ZWRQbG90fWMuc3RhdGljUGxvdCYmKGMuZWRpdGFibGU9ITEsYy5lZGl0cz17fSxjLmF1dG9zaXphYmxlPSExLGMuc2Nyb2xsWm9vbT0hMSxjLmRvdWJsZUNsaWNrPSExLGMuc2hvd1RpcHM9ITEsYy5zaG93TGluaz0hMSxjLmRpc3BsYXlNb2RlQmFyPSExKSwiaG92ZXIiIT09Yy5kaXNwbGF5TW9kZUJhcnx8YXx8KGMuZGlzcGxheU1vZGVCYXI9ITApLCJ0cmFuc3BhcmVudCIhPT1jLnNldEJhY2tncm91bmQmJiJmdW5jdGlvbiI9PXR5cGVvZiBjLnNldEJhY2tncm91bmR8fChjLnNldEJhY2tncm91bmQ9UyksYy5faGFzWmVyb0hlaWdodD1jLl9oYXNaZXJvSGVpZ2h0fHwwPT09dC5jbGllbnRIZWlnaHQsYy5faGFzWmVyb1dpZHRoPWMuX2hhc1plcm9XaWR0aHx8MD09PXQuY2xpZW50V2lkdGg7dmFyIGY9Yy5zY3JvbGxab29tLGg9Yy5fc2Nyb2xsWm9vbT17fTtpZighMD09PWYpaC5jYXJ0ZXNpYW49MSxoLmdsM2Q9MSxoLmdlbz0xLGgubWFwYm94PTE7ZWxzZSBpZigic3RyaW5nIj09dHlwZW9mIGYpe3ZhciBwPWYuc3BsaXQoIisiKTtmb3IoaT0wO2k8cC5sZW5ndGg7aSsrKWhbcFtpXV09MX1lbHNlITEhPT1mJiYoaC5nbDNkPTEsaC5nZW89MSxoLm1hcGJveD0xKX1mdW5jdGlvbiBDKHQsZSl7dmFyIHIsbixpPWUrMSxhPVtdO2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspKG49dFtyXSk8MD9hLnB1c2goaStuKTphLnB1c2gobik7cmV0dXJuIGF9ZnVuY3Rpb24gUCh0LGUscil7dmFyIG4saTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKXtpZigoaT1lW25dKSE9PXBhcnNlSW50KGksMTApKXRocm93IG5ldyBFcnJvcigiYWxsIHZhbHVlcyBpbiAiK3IrIiBtdXN0IGJlIGludGVnZXJzIik7aWYoaT49dC5kYXRhLmxlbmd0aHx8aTwtdC5kYXRhLmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IocisiIG11c3QgYmUgdmFsaWQgaW5kaWNlcyBmb3IgZ2QuZGF0YS4iKTtpZihlLmluZGV4T2YoaSxuKzEpPi0xfHxpPj0wJiZlLmluZGV4T2YoLXQuZGF0YS5sZW5ndGgraSk+LTF8fGk8MCYmZS5pbmRleE9mKHQuZGF0YS5sZW5ndGgraSk+LTEpdGhyb3cgbmV3IEVycm9yKCJlYWNoIGluZGV4IGluICIrcisiIG11c3QgYmUgdW5pcXVlLiIpfX1mdW5jdGlvbiBJKHQsZSxyKXtpZighQXJyYXkuaXNBcnJheSh0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2QuZGF0YSBtdXN0IGJlIGFuIGFycmF5LiIpO2lmKHZvaWQgMD09PWUpdGhyb3cgbmV3IEVycm9yKCJjdXJyZW50SW5kaWNlcyBpcyBhIHJlcXVpcmVkIGFyZ3VtZW50LiIpO2lmKEFycmF5LmlzQXJyYXkoZSl8fChlPVtlXSksUCh0LGUsImN1cnJlbnRJbmRpY2VzIiksdm9pZCAwPT09cnx8QXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKSx2b2lkIDAhPT1yJiZQKHQsciwibmV3SW5kaWNlcyIpLHZvaWQgMCE9PXImJmUubGVuZ3RoIT09ci5sZW5ndGgpdGhyb3cgbmV3IEVycm9yKCJjdXJyZW50IGFuZCBuZXcgaW5kaWNlcyBtdXN0IGJlIG9mIGVxdWFsIGxlbmd0aC4iKX1mdW5jdGlvbiBPKHQsZSxyLG4sYSl7IWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW8uaXNQbGFpbk9iamVjdChuKTtpZighQXJyYXkuaXNBcnJheSh0LmRhdGEpKXRocm93IG5ldyBFcnJvcigiZ2QuZGF0YSBtdXN0IGJlIGFuIGFycmF5Iik7aWYoIW8uaXNQbGFpbk9iamVjdChlKSl0aHJvdyBuZXcgRXJyb3IoInVwZGF0ZSBtdXN0IGJlIGEga2V5OnZhbHVlIG9iamVjdCIpO2lmKHZvaWQgMD09PXIpdGhyb3cgbmV3IEVycm9yKCJpbmRpY2VzIG11c3QgYmUgYW4gaW50ZWdlciBvciBhcnJheSBvZiBpbnRlZ2VycyIpO2Zvcih2YXIgYSBpbiBQKHQsciwiaW5kaWNlcyIpLGUpe2lmKCFBcnJheS5pc0FycmF5KGVbYV0pfHxlW2FdLmxlbmd0aCE9PXIubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiYXR0cmlidXRlICIrYSsiIG11c3QgYmUgYW4gYXJyYXkgb2YgbGVuZ3RoIGVxdWFsIHRvIGluZGljZXMgYXJyYXkgbGVuZ3RoIik7aWYoaSYmKCEoYSBpbiBuKXx8IUFycmF5LmlzQXJyYXkoblthXSl8fG5bYV0ubGVuZ3RoIT09ZVthXS5sZW5ndGgpKXRocm93IG5ldyBFcnJvcigid2hlbiBtYXhQb2ludHMgaXMgc2V0IGFzIGEga2V5OnZhbHVlIG9iamVjdCBpdCBtdXN0IGNvbnRhaW4gYSAxOjEgY29ycmlzcG9uZGVuY2Ugd2l0aCB0aGUga2V5cyBhbmQgbnVtYmVyIG9mIHRyYWNlcyBpbiB0aGUgdXBkYXRlIG9iamVjdCIpfX0odCxlLHIsbik7Zm9yKHZhciBsPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBhLGwsYyx1LGYsaD1vLmlzUGxhaW5PYmplY3QobikscD1bXTtmb3IodmFyIGQgaW4gQXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKSxyPUMocix0LmRhdGEubGVuZ3RoLTEpLGUpZm9yKHZhciBtPTA7bTxyLmxlbmd0aDttKyspe2lmKGE9dC5kYXRhW3JbbV1dLGw9KGM9cyhhLGQpKS5nZXQoKSx1PWVbZF1bbV0sIW8uaXNBcnJheU9yVHlwZWRBcnJheSh1KSl0aHJvdyBuZXcgRXJyb3IoImF0dHJpYnV0ZTogIitkKyIgaW5kZXg6ICIrbSsiIG11c3QgYmUgYW4gYXJyYXkiKTtpZighby5pc0FycmF5T3JUeXBlZEFycmF5KGwpKXRocm93IG5ldyBFcnJvcigiY2Fubm90IGV4dGVuZCBtaXNzaW5nIG9yIG5vbi1hcnJheSBhdHRyaWJ1dGU6ICIrZCk7aWYobC5jb25zdHJ1Y3RvciE9PXUuY29uc3RydWN0b3IpdGhyb3cgbmV3IEVycm9yKCJjYW5ub3QgZXh0ZW5kIGFycmF5IHdpdGggYW4gYXJyYXkgb2YgYSBkaWZmZXJlbnQgdHlwZTogIitkKTtmPWg/bltkXVttXTpuLGkoZil8fChmPS0xKSxwLnB1c2goe3Byb3A6Yyx0YXJnZXQ6bCxpbnNlcnQ6dSxtYXhwOk1hdGguZmxvb3IoZil9KX1yZXR1cm4gcH0odCxlLHIsbiksYz17fSx1PXt9LGY9MDtmPGwubGVuZ3RoO2YrKyl7dmFyIGg9bFtmXS5wcm9wLHA9bFtmXS5tYXhwLGQ9YShsW2ZdLnRhcmdldCxsW2ZdLmluc2VydCxwKTtoLnNldChkWzBdKSxBcnJheS5pc0FycmF5KGNbaC5hc3RyXSl8fChjW2guYXN0cl09W10pLGNbaC5hc3RyXS5wdXNoKGRbMV0pLEFycmF5LmlzQXJyYXkodVtoLmFzdHJdKXx8KHVbaC5hc3RyXT1bXSksdVtoLmFzdHJdLnB1c2gobFtmXS50YXJnZXQubGVuZ3RoKX1yZXR1cm57dXBkYXRlOmMsbWF4UG9pbnRzOnV9fWZ1bmN0aW9uIHoodCxlKXt2YXIgcj1uZXcgdC5jb25zdHJ1Y3Rvcih0Lmxlbmd0aCtlLmxlbmd0aCk7cmV0dXJuIHIuc2V0KHQpLHIuc2V0KGUsdC5sZW5ndGgpLHJ9ZnVuY3Rpb24gRCh0LGUsbixpKXt0PW8uZ2V0R3JhcGhEaXYodCksXy5jbGVhclByb21pc2VRdWV1ZSh0KTt2YXIgYT17fTtpZigic3RyaW5nIj09dHlwZW9mIGUpYVtlXT1uO2Vsc2V7aWYoIW8uaXNQbGFpbk9iamVjdChlKSlyZXR1cm4gby53YXJuKCJSZXN0eWxlIGZhaWwuIixlLG4saSksUHJvbWlzZS5yZWplY3QoKTthPW8uZXh0ZW5kRmxhdCh7fSxlKSx2b2lkIDA9PT1pJiYoaT1uKX1PYmplY3Qua2V5cyhhKS5sZW5ndGgmJih0LmNoYW5nZWQ9ITApO3ZhciBzPV8uY29lcmNlVHJhY2VJbmRpY2VzKHQsaSksbD1OKHQsYSxzKSx1PWwuZmxhZ3M7dS5jYWxjJiYodC5jYWxjZGF0YT12b2lkIDApLHUuY2xlYXJBeGlzVHlwZXMmJl8uY2xlYXJBeGlzVHlwZXModCxzLHt9KTt2YXIgZj1bXTt1LmZ1bGxSZXBsb3Q/Zi5wdXNoKHIuX2RvUGxvdCk6KGYucHVzaChoLnByZXZpb3VzUHJvbWlzZXMpLGguc3VwcGx5RGVmYXVsdHModCksdS5tYXJrZXJTaXplJiYoaC5kb0NhbGNkYXRhKHQpLEgoZikpLHUuc3R5bGUmJmYucHVzaCh3LmRvVHJhY2VTdHlsZSksdS5jb2xvcmJhcnMmJmYucHVzaCh3LmRvQ29sb3JCYXJzKSxmLnB1c2goTSkpLGYucHVzaChoLnJlaG92ZXIsaC5yZWRyYWcpLGMuYWRkKHQsRCxbdCxsLnVuZG9pdCxsLnRyYWNlc10sRCxbdCxsLnJlZG9pdCxsLnRyYWNlc10pO3ZhciBwPW8uc3luY09yQXN5bmMoZix0KTtyZXR1cm4gcCYmcC50aGVufHwocD1Qcm9taXNlLnJlc29sdmUoKSkscC50aGVuKChmdW5jdGlvbigpe3JldHVybiB0LmVtaXQoInBsb3RseV9yZXN0eWxlIixsLmV2ZW50RGF0YSksdH0pKX1mdW5jdGlvbiBSKHQpe3JldHVybiB2b2lkIDA9PT10P251bGw6dH1mdW5jdGlvbiBGKHQsZSl7cmV0dXJuIGU/ZnVuY3Rpb24oZSxyLG4pe3ZhciBpPXMoZSxyKSxhPWkuc2V0O3JldHVybiBpLnNldD1mdW5jdGlvbihlKXtCKChufHwiIikrcixpLmdldCgpLGUsdCksYShlKX0saX06c31mdW5jdGlvbiBCKHQsZSxyLG4pe2lmKEFycmF5LmlzQXJyYXkoZSl8fEFycmF5LmlzQXJyYXkocikpZm9yKHZhciBpPUFycmF5LmlzQXJyYXkoZSk/ZTpbXSxhPUFycmF5LmlzQXJyYXkocik/cjpbXSxzPU1hdGgubWF4KGkubGVuZ3RoLGEubGVuZ3RoKSxsPTA7bDxzO2wrKylCKHQrIlsiK2wrIl0iLGlbbF0sYVtsXSxuKTtlbHNlIGlmKG8uaXNQbGFpbk9iamVjdChlKXx8by5pc1BsYWluT2JqZWN0KHIpKXt2YXIgYz1vLmlzUGxhaW5PYmplY3QoZSk/ZTp7fSx1PW8uaXNQbGFpbk9iamVjdChyKT9yOnt9LGY9by5leHRlbmRGbGF0KHt9LGMsdSk7Zm9yKHZhciBoIGluIGYpQih0KyIuIitoLGNbaF0sdVtoXSxuKX1lbHNlIHZvaWQgMD09PW5bdF0mJihuW3RdPVIoZSkpfWZ1bmN0aW9uIE4odCxlLHIpe3ZhciBuLGk9dC5fZnVsbExheW91dCxhPXQuX2Z1bGxEYXRhLGw9dC5kYXRhLGM9aS5fZ3VpRWRpdGluZyxkPUYoaS5fcHJlR1VJLGMpLG09by5leHRlbmREZWVwQWxsKHt9LGUpO2ooZSk7dmFyIGcsdj1ULnRyYWNlRmxhZ3MoKSx5PXt9LHg9e307ZnVuY3Rpb24gYigpe3JldHVybiByLm1hcCgoZnVuY3Rpb24oKXt9KSl9ZnVuY3Rpb24gdyh0KXt2YXIgZT1wLmlkMm5hbWUodCk7LTE9PT1nLmluZGV4T2YoZSkmJmcucHVzaChlKX1mdW5jdGlvbiBrKHQpe3JldHVybiJMQVlPVVQiK3QrIi5hdXRvcmFuZ2UifWZ1bmN0aW9uIEEodCl7cmV0dXJuIkxBWU9VVCIrdCsiLnJhbmdlIn1mdW5jdGlvbiBNKHQpe2Zvcih2YXIgZT10O2U8YS5sZW5ndGg7ZSsrKWlmKGFbZV0uX2lucHV0PT09bFt0XSlyZXR1cm4gYVtlXX1mdW5jdGlvbiBTKG4sYSxvKXtpZihBcnJheS5pc0FycmF5KG4pKW4uZm9yRWFjaCgoZnVuY3Rpb24odCl7Uyh0LGEsbyl9KSk7ZWxzZSBpZighKG4gaW4gZSkmJiFfLmhhc1BhcmVudChlLG4pKXt2YXIgcztpZigiTEFZT1VUIj09PW4uc3Vic3RyKDAsNikpcz1kKHQubGF5b3V0LG4ucmVwbGFjZSgiTEFZT1VUIiwiIikpO2Vsc2V7dmFyIHU9cltvXTtzPUYoaS5fdHJhY2VQcmVHVUlbTSh1KS5fZnVsbElucHV0LnVpZF0sYykobFt1XSxuKX1uIGluIHh8fCh4W25dPWIoKSksdm9pZCAwPT09eFtuXVtvXSYmKHhbbl1bb109UihzLmdldCgpKSksdm9pZCAwIT09YSYmcy5zZXQoYSl9fWZ1bmN0aW9uIEUodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBhW2VdW3RdfX1mdW5jdGlvbiBMKHQpe3JldHVybiBmdW5jdGlvbihlLG4pe3JldHVybiExPT09ZT9hW3Jbbl1dW3RdOm51bGx9fWZvcih2YXIgQyBpbiBlKXtpZihfLmhhc1BhcmVudChlLEMpKXRocm93IG5ldyBFcnJvcigiY2Fubm90IHNldCAiK0MrIiBhbmQgYSBwYXJlbnQgYXR0cmlidXRlIHNpbXVsdGFuZW91c2x5Iik7dmFyIFAsSSxPLHosRCxCLE49ZVtDXTtpZigiYXV0b2JpbngiIT09QyYmImF1dG9iaW55IiE9PUN8fChDPUMuY2hhckF0KEMubGVuZ3RoLTEpKyJiaW5zIixOPUFycmF5LmlzQXJyYXkoTik/Ti5tYXAoTChDKSk6ITE9PT1OP3IubWFwKEUoQykpOm51bGwpLHlbQ109TiwiTEFZT1VUIiE9PUMuc3Vic3RyKDAsNikpe2Zvcih4W0NdPWIoKSxuPTA7bjxyLmxlbmd0aDtuKyspe2lmKFA9bFtyW25dXSxJPU0ocltuXSksej0oTz1GKGkuX3RyYWNlUHJlR1VJW0kuX2Z1bGxJbnB1dC51aWRdLGMpKFAsQykpLmdldCgpLHZvaWQgMCE9PShEPUFycmF5LmlzQXJyYXkoTik/TltuJU4ubGVuZ3RoXTpOKSl7dmFyIFU9Ty5wYXJ0c1tPLnBhcnRzLmxlbmd0aC0xXSxWPUMuc3Vic3RyKDAsQy5sZW5ndGgtVS5sZW5ndGgtMSksSD1WP1YrIi4iOiIiLHE9Vj9zKEksVikuZ2V0KCk6STtpZigoQj1mLmdldFRyYWNlVmFsT2JqZWN0KEksTy5wYXJ0cykpJiZCLmltcGxpZWRFZGl0cyYmbnVsbCE9PUQpZm9yKHZhciBHIGluIEIuaW1wbGllZEVkaXRzKVMoby5yZWxhdGl2ZUF0dHIoQyxHKSxCLmltcGxpZWRFZGl0c1tHXSxuKTtlbHNlIGlmKCJ0aGlja25lc3Ntb2RlIiE9PVUmJiJsZW5tb2RlIiE9PVV8fHo9PT1EfHwiZnJhY3Rpb24iIT09RCYmInBpeGVscyIhPT1EfHwhcSl7aWYoInR5cGUiPT09QyYmKCJwaWUiPT09RCE9KCJwaWUiPT09eil8fCJmdW5uZWxhcmVhIj09PUQhPSgiZnVubmVsYXJlYSI9PT16KSkpe3ZhciBZPSJ4IixXPSJ5IjsiYmFyIiE9PUQmJiJiYXIiIT09enx8ImgiIT09UC5vcmllbnRhdGlvbnx8KFk9InkiLFc9IngiKSxvLnN3YXBBdHRycyhQLFsiPyIsIj9zcmMiXSwibGFiZWxzIixZKSxvLnN3YXBBdHRycyhQLFsiZD8iLCI/MCJdLCJsYWJlbCIsWSksby5zd2FwQXR0cnMoUCxbIj8iLCI/c3JjIl0sInZhbHVlcyIsVyksInBpZSI9PT16fHwiZnVubmVsYXJlYSI9PT16PyhzKFAsIm1hcmtlci5jb2xvciIpLnNldChzKFAsIm1hcmtlci5jb2xvcnMiKS5nZXQoKSksaS5fcGllbGF5ZXIuc2VsZWN0QWxsKCJnLnRyYWNlIikucmVtb3ZlKCkpOnUudHJhY2VJcyhQLCJjYXJ0ZXNpYW4iKSYmcyhQLCJtYXJrZXIuY29sb3JzIikuc2V0KHMoUCwibWFya2VyLmNvbG9yIikuZ2V0KCkpfX1lbHNle3ZhciBYPWkuX3NpemUsWj1xLm9yaWVudCxKPSJ0b3AiPT09Wnx8ImJvdHRvbSI9PT1aO2lmKCJ0aGlja25lc3Ntb2RlIj09PVUpe3ZhciBLPUo/WC5oOlgudztTKEgrInRoaWNrbmVzcyIscS50aGlja25lc3MqKCJmcmFjdGlvbiI9PT1EPzEvSzpLKSxuKX1lbHNle3ZhciBRPUo/WC53OlguaDtTKEgrImxlbiIscS5sZW4qKCJmcmFjdGlvbiI9PT1EPzEvUTpRKSxuKX19eFtDXVtuXT1SKHopO2lmKC0xIT09WyJzd2FweHkiLCJzd2FweHlheGVzIiwib3JpZW50YXRpb24iLCJvcmllbnRhdGlvbmF4ZXMiXS5pbmRleE9mKEMpKXtpZigib3JpZW50YXRpb24iPT09Qyl7Ty5zZXQoRCk7dmFyICQ9UC54JiYhUC55PyJoIjoidiI7aWYoKE8uZ2V0KCl8fCQpPT09SS5vcmllbnRhdGlvbiljb250aW51ZX1lbHNlIm9yaWVudGF0aW9uYXhlcyI9PT1DJiYoUC5vcmllbnRhdGlvbj17djoiaCIsaDoidiJ9W0kub3JpZW50YXRpb25dKTtfLnN3YXBYWURhdGEoUCksdi5jYWxjPXYuY2xlYXJBeGlzVHlwZXM9ITB9ZWxzZS0xIT09aC5kYXRhQXJyYXlDb250YWluZXJzLmluZGV4T2YoTy5wYXJ0c1swXSk/KF8ubWFuYWdlQXJyYXlDb250YWluZXJzKE8sRCx4KSx2LmNhbGM9ITApOihCP0IuYXJyYXlPayYmIXUudHJhY2VJcyhJLCJyZWdsIikmJihvLmlzQXJyYXlPclR5cGVkQXJyYXkoRCl8fG8uaXNBcnJheU9yVHlwZWRBcnJheSh6KSk/di5jYWxjPSEwOlQudXBkYXRlKHYsQik6di5jYWxjPSEwLE8uc2V0KEQpKX19aWYoLTEhPT1bInN3YXB4eWF4ZXMiLCJvcmllbnRhdGlvbmF4ZXMiXS5pbmRleE9mKEMpJiZwLnN3YXAodCxyKSwib3JpZW50YXRpb25heGVzIj09PUMpe3ZhciB0dD1zKHQubGF5b3V0LCJob3Zlcm1vZGUiKSxldD10dC5nZXQoKTsieCI9PT1ldD90dC5zZXQoInkiKToieSI9PT1ldD90dC5zZXQoIngiKToieCB1bmlmaWVkIj09PWV0P3R0LnNldCgieSB1bmlmaWVkIik6InkgdW5pZmllZCI9PT1ldCYmdHQuc2V0KCJ4IHVuaWZpZWQiKX1pZigtMSE9PVsib3JpZW50YXRpb24iLCJ0eXBlIl0uaW5kZXhPZihDKSl7Zm9yKGc9W10sbj0wO248ci5sZW5ndGg7bisrKXt2YXIgcnQ9bFtyW25dXTt1LnRyYWNlSXMocnQsImNhcnRlc2lhbiIpJiYodyhydC54YXhpc3x8IngiKSx3KHJ0LnlheGlzfHwieSIpKX1TKGcubWFwKGspLCEwLDApLFMoZy5tYXAoQSksWzAsMV0sMCl9fWVsc2UgTz1kKHQubGF5b3V0LEMucmVwbGFjZSgiTEFZT1VUIiwiIikpLHhbQ109W1IoTy5nZXQoKSldLE8uc2V0KEFycmF5LmlzQXJyYXkoTik/TlswXTpOKSx2LmNhbGM9ITB9cmV0dXJuKHYuY2FsY3x8di5wbG90KSYmKHYuZnVsbFJlcGxvdD0hMCkse2ZsYWdzOnYsdW5kb2l0OngscmVkb2l0OnksdHJhY2VzOnIsZXZlbnREYXRhOm8uZXh0ZW5kRGVlcE5vQXJyYXlzKFtdLFttLHJdKX19ZnVuY3Rpb24gaih0KXt2YXIgZSxyLG4saT1vLmNvdW50ZXJSZWdleCgiYXhpcyIsIi50aXRsZSIsITEsITEpLGE9L2NvbG9yYmFyXC50aXRsZSQvLHM9T2JqZWN0LmtleXModCk7Zm9yKGU9MDtlPHMubGVuZ3RoO2UrKylyPXNbZV0sbj10W3JdLCJ0aXRsZSIhPT1yJiYhaS50ZXN0KHIpJiYhYS50ZXN0KHIpfHwic3RyaW5nIiE9dHlwZW9mIG4mJiJudW1iZXIiIT10eXBlb2Ygbj9yLmluZGV4T2YoInRpdGxlZm9udCIpPi0xP2wocixyLnJlcGxhY2UoInRpdGxlZm9udCIsInRpdGxlLmZvbnQiKSk6ci5pbmRleE9mKCJ0aXRsZXBvc2l0aW9uIik+LTE/bChyLHIucmVwbGFjZSgidGl0bGVwb3NpdGlvbiIsInRpdGxlLnBvc2l0aW9uIikpOnIuaW5kZXhPZigidGl0bGVzaWRlIik+LTE/bChyLHIucmVwbGFjZSgidGl0bGVzaWRlIiwidGl0bGUuc2lkZSIpKTpyLmluZGV4T2YoInRpdGxlb2Zmc2V0Iik+LTEmJmwocixyLnJlcGxhY2UoInRpdGxlb2Zmc2V0IiwidGl0bGUub2Zmc2V0IikpOmwocixyLnJlcGxhY2UoInRpdGxlIiwidGl0bGUudGV4dCIpKTtmdW5jdGlvbiBsKGUscil7dFtyXT10W2VdLGRlbGV0ZSB0W2VdfX1mdW5jdGlvbiBVKHQsZSxyKXt0PW8uZ2V0R3JhcGhEaXYodCksXy5jbGVhclByb21pc2VRdWV1ZSh0KTt2YXIgbj17fTtpZigic3RyaW5nIj09dHlwZW9mIGUpbltlXT1yO2Vsc2V7aWYoIW8uaXNQbGFpbk9iamVjdChlKSlyZXR1cm4gby53YXJuKCJSZWxheW91dCBmYWlsLiIsZSxyKSxQcm9taXNlLnJlamVjdCgpO249by5leHRlbmRGbGF0KHt9LGUpfU9iamVjdC5rZXlzKG4pLmxlbmd0aCYmKHQuY2hhbmdlZD0hMCk7dmFyIGk9Vyh0LG4pLGE9aS5mbGFnczthLmNhbGMmJih0LmNhbGNkYXRhPXZvaWQgMCk7dmFyIHM9W2gucHJldmlvdXNQcm9taXNlc107YS5sYXlvdXRSZXBsb3Q/cy5wdXNoKHcubGF5b3V0UmVwbG90KTpPYmplY3Qua2V5cyhuKS5sZW5ndGgmJihWKHQsYSxpKXx8aC5zdXBwbHlEZWZhdWx0cyh0KSxhLmxlZ2VuZCYmcy5wdXNoKHcuZG9MZWdlbmQpLGEubGF5b3V0c3R5bGUmJnMucHVzaCh3LmxheW91dFN0eWxlcyksYS5heHJhbmdlJiZIKHMsaS5yYW5nZXNBbHRlcmVkKSxhLnRpY2tzJiZzLnB1c2gody5kb1RpY2tzUmVsYXlvdXQpLGEubW9kZWJhciYmcy5wdXNoKHcuZG9Nb2RlQmFyKSxhLmNhbWVyYSYmcy5wdXNoKHcuZG9DYW1lcmEpLGEuY29sb3JiYXJzJiZzLnB1c2gody5kb0NvbG9yQmFycykscy5wdXNoKE0pKSxzLnB1c2goaC5yZWhvdmVyLGgucmVkcmFnKSxjLmFkZCh0LFUsW3QsaS51bmRvaXRdLFUsW3QsaS5yZWRvaXRdKTt2YXIgbD1vLnN5bmNPckFzeW5jKHMsdCk7cmV0dXJuIGwmJmwudGhlbnx8KGw9UHJvbWlzZS5yZXNvbHZlKHQpKSxsLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0IixpLmV2ZW50RGF0YSksdH0pKX1mdW5jdGlvbiBWKHQsZSxyKXt2YXIgbj10Ll9mdWxsTGF5b3V0O2lmKCFlLmF4cmFuZ2UpcmV0dXJuITE7Zm9yKHZhciBpIGluIGUpaWYoImF4cmFuZ2UiIT09aSYmZVtpXSlyZXR1cm4hMTtmb3IodmFyIGEgaW4gci5yYW5nZXNBbHRlcmVkKXt2YXIgbz1wLmlkMm5hbWUoYSkscz10LmxheW91dFtvXSxsPW5bb107aWYobC5hdXRvcmFuZ2U9cy5hdXRvcmFuZ2Uscy5yYW5nZSYmKGwucmFuZ2U9cy5yYW5nZS5zbGljZSgpKSxsLmNsZWFuUmFuZ2UoKSxsLl9tYXRjaEdyb3VwKWZvcih2YXIgYyBpbiBsLl9tYXRjaEdyb3VwKWlmKGMhPT1hKXt2YXIgdT1uW3AuaWQybmFtZShjKV07dS5hdXRvcmFuZ2U9bC5hdXRvcmFuZ2UsdS5yYW5nZT1sLnJhbmdlLnNsaWNlKCksdS5faW5wdXQucmFuZ2U9bC5yYW5nZS5zbGljZSgpfX1yZXR1cm4hMH1mdW5jdGlvbiBIKHQsZSl7dmFyIHI9ZT9mdW5jdGlvbih0KXt2YXIgcj1bXSxuPSEwO2Zvcih2YXIgaSBpbiBlKXt2YXIgYT1wLmdldEZyb21JZCh0LGkpO2lmKHIucHVzaChpKSwtMSE9PShhLnRpY2tsYWJlbHBvc2l0aW9ufHwiIikuaW5kZXhPZigiaW5zaWRlIikmJmEuX2FuY2hvckF4aXMmJnIucHVzaChhLl9hbmNob3JBeGlzLl9pZCksYS5fbWF0Y2hHcm91cClmb3IodmFyIG8gaW4gYS5fbWF0Y2hHcm91cCllW29dfHxyLnB1c2gobyk7YS5hdXRvbWFyZ2luJiYobj0hMSl9cmV0dXJuIHAuZHJhdyh0LHIse3NraXBUaXRsZTpufSl9OmZ1bmN0aW9uKHQpe3JldHVybiBwLmRyYXcodCwicmVkcmF3Iil9O3QucHVzaCh5LHcuZG9BdXRvUmFuZ2VBbmRDb25zdHJhaW50cyxyLHcuZHJhd0RhdGEsdy5maW5hbERyYXcpfXZhciBxPS9eW3h5el1heGlzWzAtOV0qXC5yYW5nZShcW1swfDFdXF0pPyQvLEc9L15beHl6XWF4aXNbMC05XSpcLmF1dG9yYW5nZSQvLFk9L15beHl6XWF4aXNbMC05XSpcLmRvbWFpbihcW1swfDFdXF0pPyQvO2Z1bmN0aW9uIFcodCxlKXt2YXIgcixuLGksYT10LmxheW91dCxsPXQuX2Z1bGxMYXlvdXQsYz1sLl9ndWlFZGl0aW5nLGg9RihsLl9wcmVHVUksYyksZD1PYmplY3Qua2V5cyhlKSxtPXAubGlzdCh0KSxnPW8uZXh0ZW5kRGVlcEFsbCh7fSxlKSx2PXt9O2ZvcihqKGUpLGQ9T2JqZWN0LmtleXMoZSksbj0wO248ZC5sZW5ndGg7bisrKWlmKDA9PT1kW25dLmluZGV4T2YoImFsbGF4ZXMiKSl7Zm9yKGk9MDtpPG0ubGVuZ3RoO2krKyl7dmFyIHk9bVtpXS5faWQuc3Vic3RyKDEpLHg9LTEhPT15LmluZGV4T2YoInNjZW5lIik/eSsiLiI6IiIsdz1kW25dLnJlcGxhY2UoImFsbGF4ZXMiLHgrbVtpXS5fbmFtZSk7ZVt3XXx8KGVbd109ZVtkW25dXSl9ZGVsZXRlIGVbZFtuXV19dmFyIEE9VC5sYXlvdXRGbGFncygpLE09e30sUz17fTtmdW5jdGlvbiBFKHQscil7aWYoQXJyYXkuaXNBcnJheSh0KSl0LmZvckVhY2goKGZ1bmN0aW9uKHQpe0UodCxyKX0pKTtlbHNlIGlmKCEodCBpbiBlKSYmIV8uaGFzUGFyZW50KGUsdCkpe3ZhciBuPWgoYSx0KTt0IGluIFN8fChTW3RdPVIobi5nZXQoKSkpLHZvaWQgMCE9PXImJm4uc2V0KHIpfX12YXIgTCxDPXt9O2Z1bmN0aW9uIFAodCl7dmFyIGU9cC5uYW1lMmlkKHQuc3BsaXQoIi4iKVswXSk7cmV0dXJuIENbZV09MSxlfWZvcih2YXIgSSBpbiBlKXtpZihfLmhhc1BhcmVudChlLEkpKXRocm93IG5ldyBFcnJvcigiY2Fubm90IHNldCAiK0krIiBhbmQgYSBwYXJlbnQgYXR0cmlidXRlIHNpbXVsdGFuZW91c2x5Iik7Zm9yKHZhciBPPWgoYSxJKSx6PWVbSV0sRD1PLnBhcnRzLmxlbmd0aC0xO0Q+MCYmInN0cmluZyIhPXR5cGVvZiBPLnBhcnRzW0RdOylELS07dmFyIEI9Ty5wYXJ0c1tEXSxOPU8ucGFydHNbRC0xXSsiLiIrQixVPU8ucGFydHMuc2xpY2UoMCxEKS5qb2luKCIuIiksVj1zKHQubGF5b3V0LFUpLmdldCgpLEg9cyhsLFUpLmdldCgpLFc9Ty5nZXQoKTtpZih2b2lkIDAhPT16KXtNW0ldPXosU1tJXT0icmV2ZXJzZSI9PT1CP3o6UihXKTt2YXIgWj1mLmdldExheW91dFZhbE9iamVjdChsLE8ucGFydHMpO2lmKFomJlouaW1wbGllZEVkaXRzJiZudWxsIT09eilmb3IodmFyIEogaW4gWi5pbXBsaWVkRWRpdHMpRShvLnJlbGF0aXZlQXR0cihJLEopLFouaW1wbGllZEVkaXRzW0pdKTtpZigtMSE9PVsid2lkdGgiLCJoZWlnaHQiXS5pbmRleE9mKEkpKWlmKHope0UoImF1dG9zaXplIixudWxsKTt2YXIgSz0iaGVpZ2h0Ij09PUk/IndpZHRoIjoiaGVpZ2h0IjtFKEssbFtLXSl9ZWxzZSBsW0ldPXQuX2luaXRpYWxBdXRvU2l6ZVtJXTtlbHNlIGlmKCJhdXRvc2l6ZSI9PT1JKUUoIndpZHRoIix6P251bGw6bC53aWR0aCksRSgiaGVpZ2h0Iix6P251bGw6bC5oZWlnaHQpO2Vsc2UgaWYoTi5tYXRjaChxKSlQKE4pLHMobCxVKyIuX2lucHV0UmFuZ2UiKS5zZXQobnVsbCk7ZWxzZSBpZihOLm1hdGNoKEcpKXtQKE4pLHMobCxVKyIuX2lucHV0UmFuZ2UiKS5zZXQobnVsbCk7dmFyIFE9cyhsLFUpLmdldCgpO1EuX2lucHV0RG9tYWluJiYoUS5faW5wdXQuZG9tYWluPVEuX2lucHV0RG9tYWluLnNsaWNlKCkpfWVsc2UgTi5tYXRjaChZKSYmcyhsLFUrIi5faW5wdXREb21haW4iKS5zZXQobnVsbCk7aWYoInR5cGUiPT09Qil7TD1WO3ZhciAkPSJsaW5lYXIiPT09SC50eXBlJiYibG9nIj09PXosdHQ9ImxvZyI9PT1ILnR5cGUmJiJsaW5lYXIiPT09ejtpZigkfHx0dCl7aWYoTCYmTC5yYW5nZSlpZihILmF1dG9yYW5nZSkkJiYoTC5yYW5nZT1MLnJhbmdlWzFdPkwucmFuZ2VbMF0/WzEsMl06WzIsMV0pO2Vsc2V7dmFyIGV0PUwucmFuZ2VbMF0scnQ9TC5yYW5nZVsxXTskPyhldDw9MCYmcnQ8PTAmJkUoVSsiLmF1dG9yYW5nZSIsITApLGV0PD0wP2V0PXJ0LzFlNjpydDw9MCYmKHJ0PWV0LzFlNiksRShVKyIucmFuZ2VbMF0iLE1hdGgubG9nKGV0KS9NYXRoLkxOMTApLEUoVSsiLnJhbmdlWzFdIixNYXRoLmxvZyhydCkvTWF0aC5MTjEwKSk6KEUoVSsiLnJhbmdlWzBdIixNYXRoLnBvdygxMCxldCkpLEUoVSsiLnJhbmdlWzFdIixNYXRoLnBvdygxMCxydCkpKX1lbHNlIEUoVSsiLmF1dG9yYW5nZSIsITApO0FycmF5LmlzQXJyYXkobC5fc3VicGxvdHMucG9sYXIpJiZsLl9zdWJwbG90cy5wb2xhci5sZW5ndGgmJmxbTy5wYXJ0c1swXV0mJiJyYWRpYWxheGlzIj09PU8ucGFydHNbMV0mJmRlbGV0ZSBsW08ucGFydHNbMF1dLl9zdWJwbG90LnZpZXdJbml0aWFsWyJyYWRpYWxheGlzLnJhbmdlIl0sdS5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiY29udmVydENvb3JkcyIpKHQsSCx6LEUpLHUuZ2V0Q29tcG9uZW50TWV0aG9kKCJpbWFnZXMiLCJjb252ZXJ0Q29vcmRzIikodCxILHosRSl9ZWxzZSBFKFUrIi5hdXRvcmFuZ2UiLCEwKSxFKFUrIi5yYW5nZSIsbnVsbCk7cyhsLFUrIi5faW5wdXRSYW5nZSIpLnNldChudWxsKX1lbHNlIGlmKEIubWF0Y2goaykpe3ZhciBudD1zKGwsSSkuZ2V0KCksaXQ9KHp8fHt9KS50eXBlO2l0JiYiLSIhPT1pdHx8KGl0PSJsaW5lYXIiKSx1LmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMiLCJjb252ZXJ0Q29vcmRzIikodCxudCxpdCxFKSx1LmdldENvbXBvbmVudE1ldGhvZCgiaW1hZ2VzIiwiY29udmVydENvb3JkcyIpKHQsbnQsaXQsRSl9dmFyIGF0PWIuY29udGFpbmVyQXJyYXlNYXRjaChJKTtpZihhdCl7cj1hdC5hcnJheSxuPWF0LmluZGV4O3ZhciBvdD1hdC5wcm9wZXJ0eSxzdD1afHx7ZWRpdFR5cGU6ImNhbGMifTsiIiE9PW4mJiIiPT09b3QmJihiLmlzQWRkVmFsKHopP1NbSV09bnVsbDpiLmlzUmVtb3ZlVmFsKHopP1NbSV09KHMoYSxyKS5nZXQoKXx8W10pW25dOm8ud2FybigidW5yZWNvZ25pemVkIGZ1bGwgb2JqZWN0IHZhbHVlIixlKSksVC51cGRhdGUoQSxzdCksdltyXXx8KHZbcl09e30pO3ZhciBsdD12W3JdW25dO2x0fHwobHQ9dltyXVtuXT17fSksbHRbb3RdPXosZGVsZXRlIGVbSV19ZWxzZSJyZXZlcnNlIj09PUI/KFYucmFuZ2U/Vi5yYW5nZS5yZXZlcnNlKCk6KEUoVSsiLmF1dG9yYW5nZSIsITApLFYucmFuZ2U9WzEsMF0pLEguYXV0b3JhbmdlP0EuY2FsYz0hMDpBLnBsb3Q9ITApOihsLl9oYXMoInNjYXR0ZXItbGlrZSIpJiZsLl9oYXMoInJlZ2wiKSYmImRyYWdtb2RlIj09PUkmJigibGFzc28iPT09enx8InNlbGVjdCI9PT16KSYmImxhc3NvIiE9PVcmJiJzZWxlY3QiIT09V3x8bC5faGFzKCJnbDJkIik/QS5wbG90PSEwOlo/VC51cGRhdGUoQSxaKTpBLmNhbGM9ITAsTy5zZXQoeikpfX1mb3IociBpbiB2KXtiLmFwcGx5Q29udGFpbmVyQXJyYXlDaGFuZ2VzKHQsaChhLHIpLHZbcl0sQSxoKXx8KEEucGxvdD0hMCl9Zm9yKHZhciBjdCBpbiBDKXt2YXIgdXQ9KEw9cC5nZXRGcm9tSWQodCxjdCkpJiZMLl9jb25zdHJhaW50R3JvdXA7aWYodXQpZm9yKHZhciBmdCBpbiBBLmNhbGM9ITAsdXQpQ1tmdF18fChwLmdldEZyb21JZCh0LGZ0KS5fY29uc3RyYWludFNocmlua2FibGU9ITApfXJldHVybihYKHQpfHxlLmhlaWdodHx8ZS53aWR0aCkmJihBLnBsb3Q9ITApLChBLnBsb3R8fEEuY2FsYykmJihBLmxheW91dFJlcGxvdD0hMCkse2ZsYWdzOkEscmFuZ2VzQWx0ZXJlZDpDLHVuZG9pdDpTLHJlZG9pdDpNLGV2ZW50RGF0YTpnfX1mdW5jdGlvbiBYKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLndpZHRoLG49ZS5oZWlnaHQ7cmV0dXJuIHQubGF5b3V0LmF1dG9zaXplJiZoLnBsb3RBdXRvU2l6ZSh0LHQubGF5b3V0LGUpLGUud2lkdGghPT1yfHxlLmhlaWdodCE9PW59ZnVuY3Rpb24gWih0LGUsbixpKXt0PW8uZ2V0R3JhcGhEaXYodCksXy5jbGVhclByb21pc2VRdWV1ZSh0KSxvLmlzUGxhaW5PYmplY3QoZSl8fChlPXt9KSxvLmlzUGxhaW5PYmplY3Qobil8fChuPXt9KSxPYmplY3Qua2V5cyhlKS5sZW5ndGgmJih0LmNoYW5nZWQ9ITApLE9iamVjdC5rZXlzKG4pLmxlbmd0aCYmKHQuY2hhbmdlZD0hMCk7dmFyIGE9Xy5jb2VyY2VUcmFjZUluZGljZXModCxpKSxzPU4odCxvLmV4dGVuZEZsYXQoe30sZSksYSksbD1zLmZsYWdzLHU9Vyh0LG8uZXh0ZW5kRmxhdCh7fSxuKSksZj11LmZsYWdzOyhsLmNhbGN8fGYuY2FsYykmJih0LmNhbGNkYXRhPXZvaWQgMCksbC5jbGVhckF4aXNUeXBlcyYmXy5jbGVhckF4aXNUeXBlcyh0LGEsbik7dmFyIHA9W107Zi5sYXlvdXRSZXBsb3Q/cC5wdXNoKHcubGF5b3V0UmVwbG90KTpsLmZ1bGxSZXBsb3Q/cC5wdXNoKHIuX2RvUGxvdCk6KHAucHVzaChoLnByZXZpb3VzUHJvbWlzZXMpLFYodCxmLHUpfHxoLnN1cHBseURlZmF1bHRzKHQpLGwuc3R5bGUmJnAucHVzaCh3LmRvVHJhY2VTdHlsZSksKGwuY29sb3JiYXJzfHxmLmNvbG9yYmFycykmJnAucHVzaCh3LmRvQ29sb3JCYXJzKSxmLmxlZ2VuZCYmcC5wdXNoKHcuZG9MZWdlbmQpLGYubGF5b3V0c3R5bGUmJnAucHVzaCh3LmxheW91dFN0eWxlcyksZi5heHJhbmdlJiZIKHAsdS5yYW5nZXNBbHRlcmVkKSxmLnRpY2tzJiZwLnB1c2gody5kb1RpY2tzUmVsYXlvdXQpLGYubW9kZWJhciYmcC5wdXNoKHcuZG9Nb2RlQmFyKSxmLmNhbWVyYSYmcC5wdXNoKHcuZG9DYW1lcmEpLHAucHVzaChNKSkscC5wdXNoKGgucmVob3ZlcixoLnJlZHJhZyksYy5hZGQodCxaLFt0LHMudW5kb2l0LHUudW5kb2l0LHMudHJhY2VzXSxaLFt0LHMucmVkb2l0LHUucmVkb2l0LHMudHJhY2VzXSk7dmFyIGQ9by5zeW5jT3JBc3luYyhwLHQpO3JldHVybiBkJiZkLnRoZW58fChkPVByb21pc2UucmVzb2x2ZSh0KSksZC50aGVuKChmdW5jdGlvbigpe3JldHVybiB0LmVtaXQoInBsb3RseV91cGRhdGUiLHtkYXRhOnMuZXZlbnREYXRhLGxheW91dDp1LmV2ZW50RGF0YX0pLHR9KSl9ZnVuY3Rpb24gSih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7ZS5fZnVsbExheW91dC5fZ3VpRWRpdGluZz0hMDt2YXIgcj10LmFwcGx5KG51bGwsYXJndW1lbnRzKTtyZXR1cm4gZS5fZnVsbExheW91dC5fZ3VpRWRpdGluZz0hMSxyfX12YXIgSz1be3BhdHRlcm46L15oaWRkZW5sYWJlbHMvLGF0dHI6ImxlZ2VuZC51aXJldmlzaW9uIn0se3BhdHRlcm46L14oKHh8eSlheGlzXGQqKVwuKChhdXRvKT9yYW5nZXx0aXRsZVwudGV4dCkvfSx7cGF0dGVybjovYXhpc1xkKlwuc2hvd3NwaWtlcyQvLGF0dHI6Im1vZGViYXIudWlyZXZpc2lvbiJ9LHtwYXR0ZXJuOi8oaG92ZXJ8ZHJhZyltb2RlJC8sYXR0cjoibW9kZWJhci51aXJldmlzaW9uIn0se3BhdHRlcm46L14oc2NlbmVcZCopXC5jYW1lcmEvfSx7cGF0dGVybjovXihnZW9cZCopXC4ocHJvamVjdGlvbnxjZW50ZXJ8Zml0Ym91bmRzKS99LHtwYXR0ZXJuOi9eKHRlcm5hcnlcZCpcLlthYmNdYXhpcylcLihtaW58dGl0bGVcLnRleHQpJC99LHtwYXR0ZXJuOi9eKHBvbGFyXGQqXC5yYWRpYWxheGlzKVwuKChhdXRvKT9yYW5nZXxhbmdsZXx0aXRsZVwudGV4dCkvfSx7cGF0dGVybjovXihwb2xhclxkKlwuYW5ndWxhcmF4aXMpXC5yb3RhdGlvbi99LHtwYXR0ZXJuOi9eKG1hcGJveFxkKilcLihjZW50ZXJ8em9vbXxiZWFyaW5nfHBpdGNoKS99LHtwYXR0ZXJuOi9ebGVnZW5kXC4oeHx5KSQvLGF0dHI6ImVkaXRyZXZpc2lvbiJ9LHtwYXR0ZXJuOi9eKHNoYXBlc3xhbm5vdGF0aW9ucykvLGF0dHI6ImVkaXRyZXZpc2lvbiJ9LHtwYXR0ZXJuOi9edGl0bGVcLnRleHQkLyxhdHRyOiJlZGl0cmV2aXNpb24ifV0sUT1be3BhdHRlcm46L15zZWxlY3RlZHBvaW50cyQvLGF0dHI6InNlbGVjdGlvbnJldmlzaW9uIn0se3BhdHRlcm46LyhefHZhbHVlXC4pdmlzaWJsZSQvLGF0dHI6ImxlZ2VuZC51aXJldmlzaW9uIn0se3BhdHRlcm46L15kaW1lbnNpb25zXFtcZCtcXVwuY29uc3RyYWludHJhbmdlL30se3BhdHRlcm46L15ub2RlXC4oeHx5fGdyb3VwcykvfSx7cGF0dGVybjovXmxldmVsJC99LHtwYXR0ZXJuOi8oXnx2YWx1ZVwuKW5hbWUkL30se3BhdHRlcm46L2NvbG9yYmFyXC50aXRsZVwudGV4dCQvfSx7cGF0dGVybjovY29sb3JiYXJcLih4fHkpJC8sYXR0cjoiZWRpdHJldmlzaW9uIn1dO2Z1bmN0aW9uICQodCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxpPXQubWF0Y2gobi5wYXR0ZXJuKTtpZihpKXJldHVybntoZWFkOmlbMV0sYXR0cjpuLmF0dHJ9fX1mdW5jdGlvbiB0dCh0LGUpe3ZhciByPXMoZSx0KS5nZXQoKTtpZih2b2lkIDAhPT1yKXJldHVybiByO3ZhciBuPXQuc3BsaXQoIi4iKTtmb3Iobi5wb3AoKTtuLmxlbmd0aD4xOylpZihuLnBvcCgpLHZvaWQgMCE9PShyPXMoZSxuLmpvaW4oIi4iKSsiLnVpcmV2aXNpb24iKS5nZXQoKSkpcmV0dXJuIHI7cmV0dXJuIGUudWlyZXZpc2lvbn1mdW5jdGlvbiBldCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0uX2Z1bGxJbnB1dC51aWQ9PT10KXJldHVybiByO3JldHVybi0xfWZ1bmN0aW9uIHJ0KHQsZSxyKXtmb3IodmFyIG49MDtuPGUubGVuZ3RoO24rKylpZihlW25dLnVpZD09PXQpcmV0dXJuIG47cmV0dXJuIWVbcl18fGVbcl0udWlkPy0xOnJ9ZnVuY3Rpb24gbnQodCxlKXt2YXIgcj1vLmlzUGxhaW5PYmplY3QodCksbj1BcnJheS5pc0FycmF5KHQpO3JldHVybiByfHxuPyhyJiZvLmlzUGxhaW5PYmplY3QoZSl8fG4mJkFycmF5LmlzQXJyYXkoZSkpJiZKU09OLnN0cmluZ2lmeSh0KT09PUpTT04uc3RyaW5naWZ5KGUpOnQ9PT1lfWZ1bmN0aW9uIGl0KHQsZSxyLG4pe3ZhciBpLGEsbCxjPW4uZ2V0VmFsT2JqZWN0LHU9bi5mbGFncyxmPW4uaW1tdXRhYmxlLGg9bi5pbkFycmF5LHA9bi5hcnJheUluZGV4O2Z1bmN0aW9uIGQoKXt2YXIgdD1pLmVkaXRUeXBlO2gmJi0xIT09dC5pbmRleE9mKCJhcnJheWRyYXciKT9vLnB1c2hVbmlxdWUodS5hcnJheXNbaF0scCk6KFQudXBkYXRlKHUsaSksIm5vbmUiIT09dCYmdS5uQ2hhbmdlcysrLG4udHJhbnNpdGlvbiYmaS5hbmltJiZ1Lm5DaGFuZ2VzQW5pbSsrLChxLnRlc3QobCl8fEcudGVzdChsKSkmJih1LnJhbmdlc0FsdGVyZWRbclswXV09MSksWS50ZXN0KGwpJiZzKGUsIl9pbnB1dERvbWFpbiIpLnNldChudWxsKSwiZGF0YXJldmlzaW9uIj09PWEmJih1Lm5ld0RhdGFSZXZpc2lvbj0xKSl9ZnVuY3Rpb24gbSh0KXtyZXR1cm4iZGF0YV9hcnJheSI9PT10LnZhbFR5cGV8fHQuYXJyYXlPa31mb3IoYSBpbiB0KXtpZih1LmNhbGMmJiFuLnRyYW5zaXRpb24pcmV0dXJuO3ZhciBnPXRbYV0sdj1lW2FdLHk9ci5jb25jYXQoYSk7aWYobD15LmpvaW4oIi4iKSwiXyIhPT1hLmNoYXJBdCgwKSYmImZ1bmN0aW9uIiE9dHlwZW9mIGcmJmchPT12KXtpZigoInRpY2swIj09PWF8fCJkdGljayI9PT1hKSYmImdlbyIhPT1yWzBdKXt2YXIgeD1lLnRpY2ttb2RlO2lmKCJhdXRvIj09PXh8fCJhcnJheSI9PT14fHwheCljb250aW51ZX1pZigoInJhbmdlIiE9PWF8fCFlLmF1dG9yYW5nZSkmJigiem1pbiIhPT1hJiYiem1heCIhPT1hfHwiY29udG91cmNhcnBldCIhPT1lLnR5cGUpJiYoaT1jKHkpKSYmKCFpLl9jb21wYXJlQXNKU09OfHxKU09OLnN0cmluZ2lmeShnKSE9PUpTT04uc3RyaW5naWZ5KHYpKSl7dmFyIGIsXz1pLnZhbFR5cGUsdz1tKGkpLGs9QXJyYXkuaXNBcnJheShnKSxBPUFycmF5LmlzQXJyYXkodik7aWYoayYmQSl7dmFyIE09Il9pbnB1dF8iK2EsUz10W01dLEU9ZVtNXTtpZihBcnJheS5pc0FycmF5KFMpJiZTPT09RSljb250aW51ZX1pZih2b2lkIDA9PT12KXcmJms/dS5jYWxjPSEwOmQoKTtlbHNlIGlmKGkuX2lzTGlua2VkVG9BcnJheSl7dmFyIEw9W10sQz0hMTtofHwodS5hcnJheXNbYV09TCk7dmFyIFA9TWF0aC5taW4oZy5sZW5ndGgsdi5sZW5ndGgpLEk9TWF0aC5tYXgoZy5sZW5ndGgsdi5sZW5ndGgpO2lmKFAhPT1JKXtpZigiYXJyYXlkcmF3IiE9PWkuZWRpdFR5cGUpe2QoKTtjb250aW51ZX1DPSEwfWZvcihiPTA7YjxQO2IrKylpdChnW2JdLHZbYl0seS5jb25jYXQoYiksby5leHRlbmRGbGF0KHtpbkFycmF5OmEsYXJyYXlJbmRleDpifSxuKSk7aWYoQylmb3IoYj1QO2I8STtiKyspTC5wdXNoKGIpfWVsc2UhXyYmby5pc1BsYWluT2JqZWN0KGcpP2l0KGcsdix5LG4pOnc/ayYmQT8oZiYmKHUuY2FsYz0hMCksKGZ8fG4ubmV3RGF0YVJldmlzaW9uKSYmZCgpKTprIT09QT91LmNhbGM9ITA6ZCgpOmsmJkEmJmcubGVuZ3RoPT09di5sZW5ndGgmJlN0cmluZyhnKT09PVN0cmluZyh2KXx8ZCgpfX19Zm9yKGEgaW4gZSlpZighKGEgaW4gdCkmJiJfIiE9PWEuY2hhckF0KDApJiYiZnVuY3Rpb24iIT10eXBlb2YgZVthXSl7aWYobShpPWMoci5jb25jYXQoYSkpKSYmQXJyYXkuaXNBcnJheShlW2FdKSlyZXR1cm4gdm9pZCh1LmNhbGM9ITApO2QoKX19ZnVuY3Rpb24gYXQodCl7dmFyIGU9dC5fZnVsbExheW91dCxyPXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7aWYoIW8uZXF1YWxEb21SZWN0cyhyLGUuX2xhc3RCQm94KSl7dmFyIG49ZS5faW52VHJhbnNmb3JtPW8uaW52ZXJzZVRyYW5zZm9ybU1hdHJpeChvLmdldEZ1bGxUcmFuc2Zvcm1NYXRyaXgodCkpO2UuX2ludlNjYWxlWD1NYXRoLnNxcnQoblswXVswXSpuWzBdWzBdK25bMF1bMV0qblswXVsxXStuWzBdWzJdKm5bMF1bMl0pLGUuX2ludlNjYWxlWT1NYXRoLnNxcnQoblsxXVswXSpuWzFdWzBdK25bMV1bMV0qblsxXVsxXStuWzFdWzJdKm5bMV1bMl0pLGUuX2xhc3RCQm94PXJ9fXIuYW5pbWF0ZT1mdW5jdGlvbih0LGUscil7aWYodD1vLmdldEdyYXBoRGl2KHQpLCFvLmlzUGxvdERpdih0KSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgZWxlbWVudCBpcyBub3QgYSBQbG90bHkgcGxvdDogIit0KyIuIEl0J3MgbGlrZWx5IHRoYXQgeW91J3ZlIGZhaWxlZCB0byBjcmVhdGUgYSBwbG90IGJlZm9yZSBhbmltYXRpbmcgaXQuIEZvciBtb3JlIGRldGFpbHMsIHNlZSBodHRwczovL3Bsb3RseS5jb20vamF2YXNjcmlwdC9hbmltYXRpb25zLyIpO3ZhciBuPXQuX3RyYW5zaXRpb25EYXRhO24uX2ZyYW1lUXVldWV8fChuLl9mcmFtZVF1ZXVlPVtdKTt2YXIgaT0ocj1oLnN1cHBseUFuaW1hdGlvbkRlZmF1bHRzKHIpKS50cmFuc2l0aW9uLGE9ci5mcmFtZTtmdW5jdGlvbiBzKHQpe3JldHVybiBBcnJheS5pc0FycmF5KGkpP3Q+PWkubGVuZ3RoP2lbMF06aVt0XTppfWZ1bmN0aW9uIGwodCl7cmV0dXJuIEFycmF5LmlzQXJyYXkoYSk/dD49YS5sZW5ndGg/YVswXTphW3RdOmF9ZnVuY3Rpb24gYyh0LGUpe3ZhciByPTA7cmV0dXJuIGZ1bmN0aW9uKCl7aWYodCYmKytyPT09ZSlyZXR1cm4gdCgpfX1yZXR1cm4gdm9pZCAwPT09bi5fZnJhbWVXYWl0aW5nQ250JiYobi5fZnJhbWVXYWl0aW5nQ250PTApLG5ldyBQcm9taXNlKChmdW5jdGlvbihhLHUpe2Z1bmN0aW9uIGYoKXtuLl9jdXJyZW50RnJhbWUmJm4uX2N1cnJlbnRGcmFtZS5vbkNvbXBsZXRlJiZuLl9jdXJyZW50RnJhbWUub25Db21wbGV0ZSgpO3ZhciBlPW4uX2N1cnJlbnRGcmFtZT1uLl9mcmFtZVF1ZXVlLnNoaWZ0KCk7aWYoZSl7dmFyIHI9ZS5uYW1lP2UubmFtZS50b1N0cmluZygpOm51bGw7dC5fZnVsbExheW91dC5fY3VycmVudEZyYW1lPXIsbi5fbGFzdEZyYW1lQXQ9RGF0ZS5ub3coKSxuLl90aW1lVG9OZXh0PWUuZnJhbWVPcHRzLmR1cmF0aW9uLGgudHJhbnNpdGlvbih0LGUuZnJhbWUuZGF0YSxlLmZyYW1lLmxheW91dCxfLmNvZXJjZVRyYWNlSW5kaWNlcyh0LGUuZnJhbWUudHJhY2VzKSxlLmZyYW1lT3B0cyxlLnRyYW5zaXRpb25PcHRzKS50aGVuKChmdW5jdGlvbigpe2Uub25Db21wbGV0ZSYmZS5vbkNvbXBsZXRlKCl9KSksdC5lbWl0KCJwbG90bHlfYW5pbWF0aW5nZnJhbWUiLHtuYW1lOnIsZnJhbWU6ZS5mcmFtZSxhbmltYXRpb246e2ZyYW1lOmUuZnJhbWVPcHRzLHRyYW5zaXRpb246ZS50cmFuc2l0aW9uT3B0c319KX1lbHNlIHQuZW1pdCgicGxvdGx5X2FuaW1hdGVkIiksd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKG4uX2FuaW1hdGlvblJhZiksbi5fYW5pbWF0aW9uUmFmPW51bGx9ZnVuY3Rpb24gcCgpe3QuZW1pdCgicGxvdGx5X2FuaW1hdGluZyIpLG4uX2xhc3RGcmFtZUF0PS0xLzAsbi5fdGltZVRvTmV4dD0wLG4uX3J1bm5pbmdUcmFuc2l0aW9ucz0wLG4uX2N1cnJlbnRGcmFtZT1udWxsO3ZhciBlPWZ1bmN0aW9uKCl7bi5fYW5pbWF0aW9uUmFmPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSksRGF0ZS5ub3coKS1uLl9sYXN0RnJhbWVBdD5uLl90aW1lVG9OZXh0JiZmKCl9O2UoKX12YXIgZCxtLGc9MDtmdW5jdGlvbiB2KHQpe3JldHVybiBBcnJheS5pc0FycmF5KGkpP2c+PWkubGVuZ3RoP3QudHJhbnNpdGlvbk9wdHM9aVtnXTp0LnRyYW5zaXRpb25PcHRzPWlbMF06dC50cmFuc2l0aW9uT3B0cz1pLGcrKyx0fXZhciB5PVtdLHg9bnVsbD09ZSxiPUFycmF5LmlzQXJyYXkoZSk7aWYoIXgmJiFiJiZvLmlzUGxhaW5PYmplY3QoZSkpeS5wdXNoKHt0eXBlOiJvYmplY3QiLGRhdGE6dihvLmV4dGVuZEZsYXQoe30sZSkpfSk7ZWxzZSBpZih4fHwtMSE9PVsic3RyaW5nIiwibnVtYmVyIl0uaW5kZXhPZih0eXBlb2YgZSkpZm9yKGQ9MDtkPG4uX2ZyYW1lcy5sZW5ndGg7ZCsrKShtPW4uX2ZyYW1lc1tkXSkmJih4fHxTdHJpbmcobS5ncm91cCk9PT1TdHJpbmcoZSkpJiZ5LnB1c2goe3R5cGU6ImJ5bmFtZSIsbmFtZTpTdHJpbmcobS5uYW1lKSxkYXRhOnYoe25hbWU6bS5uYW1lfSl9KTtlbHNlIGlmKGIpZm9yKGQ9MDtkPGUubGVuZ3RoO2QrKyl7dmFyIHc9ZVtkXTstMSE9PVsibnVtYmVyIiwic3RyaW5nIl0uaW5kZXhPZih0eXBlb2Ygdyk/KHc9U3RyaW5nKHcpLHkucHVzaCh7dHlwZToiYnluYW1lIixuYW1lOncsZGF0YTp2KHtuYW1lOnd9KX0pKTpvLmlzUGxhaW5PYmplY3QodykmJnkucHVzaCh7dHlwZToib2JqZWN0IixkYXRhOnYoby5leHRlbmRGbGF0KHt9LHcpKX0pfWZvcihkPTA7ZDx5Lmxlbmd0aDtkKyspaWYoImJ5bmFtZSI9PT0obT15W2RdKS50eXBlJiYhbi5fZnJhbWVIYXNoW20uZGF0YS5uYW1lXSlyZXR1cm4gby53YXJuKCdhbmltYXRlIGZhaWx1cmU6IGZyYW1lIG5vdCBmb3VuZDogIicrbS5kYXRhLm5hbWUrJyInKSx2b2lkIHUoKTstMSE9PVsibmV4dCIsImltbWVkaWF0ZSJdLmluZGV4T2Yoci5tb2RlKSYmZnVuY3Rpb24oKXtpZigwIT09bi5fZnJhbWVRdWV1ZS5sZW5ndGgpe2Zvcig7bi5fZnJhbWVRdWV1ZS5sZW5ndGg7KXt2YXIgZT1uLl9mcmFtZVF1ZXVlLnBvcCgpO2Uub25JbnRlcnJ1cHQmJmUub25JbnRlcnJ1cHQoKX10LmVtaXQoInBsb3RseV9hbmltYXRpb25pbnRlcnJ1cHRlZCIsW10pfX0oKSwicmV2ZXJzZSI9PT1yLmRpcmVjdGlvbiYmeS5yZXZlcnNlKCk7dmFyIFQ9dC5fZnVsbExheW91dC5fY3VycmVudEZyYW1lO2lmKFQmJnIuZnJvbWN1cnJlbnQpe3ZhciBrPS0xO2ZvcihkPTA7ZDx5Lmxlbmd0aDtkKyspaWYoImJ5bmFtZSI9PT0obT15W2RdKS50eXBlJiZtLm5hbWU9PT1UKXtrPWQ7YnJlYWt9aWYoaz4wJiZrPHkubGVuZ3RoLTEpe3ZhciBBPVtdO2ZvcihkPTA7ZDx5Lmxlbmd0aDtkKyspbT15W2RdLCgiYnluYW1lIiE9PXlbZF0udHlwZXx8ZD5rKSYmQS5wdXNoKG0pO3k9QX19eS5sZW5ndGg+MD9mdW5jdGlvbihlKXtpZigwIT09ZS5sZW5ndGgpe2Zvcih2YXIgaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgbztvPSJieW5hbWUiPT09ZVtpXS50eXBlP2guY29tcHV0ZUZyYW1lKHQsZVtpXS5uYW1lKTplW2ldLmRhdGE7dmFyIGY9bChpKSxkPXMoaSk7ZC5kdXJhdGlvbj1NYXRoLm1pbihkLmR1cmF0aW9uLGYuZHVyYXRpb24pO3ZhciBtPXtmcmFtZTpvLG5hbWU6ZVtpXS5uYW1lLGZyYW1lT3B0czpmLHRyYW5zaXRpb25PcHRzOmR9O2k9PT1lLmxlbmd0aC0xJiYobS5vbkNvbXBsZXRlPWMoYSwyKSxtLm9uSW50ZXJydXB0PXUpLG4uX2ZyYW1lUXVldWUucHVzaChtKX0iaW1tZWRpYXRlIj09PXIubW9kZSYmKG4uX2xhc3RGcmFtZUF0PS0xLzApLG4uX2FuaW1hdGlvblJhZnx8cCgpfX0oeSk6KHQuZW1pdCgicGxvdGx5X2FuaW1hdGVkIiksYSgpKX0pKX0sci5hZGRGcmFtZXM9ZnVuY3Rpb24odCxlLHIpe2lmKHQ9by5nZXRHcmFwaERpdih0KSxudWxsPT1lKXJldHVybiBQcm9taXNlLnJlc29sdmUoKTtpZighby5pc1Bsb3REaXYodCkpdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVsZW1lbnQgaXMgbm90IGEgUGxvdGx5IHBsb3Q6ICIrdCsiLiBJdCdzIGxpa2VseSB0aGF0IHlvdSd2ZSBmYWlsZWQgdG8gY3JlYXRlIGEgcGxvdCBiZWZvcmUgYWRkaW5nIGZyYW1lcy4gRm9yIG1vcmUgZGV0YWlscywgc2VlIGh0dHBzOi8vcGxvdGx5LmNvbS9qYXZhc2NyaXB0L2FuaW1hdGlvbnMvIik7dmFyIG4saSxhLHMsbD10Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVzLHU9dC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lSGFzaDtpZighQXJyYXkuaXNBcnJheShlKSl0aHJvdyBuZXcgRXJyb3IoImFkZEZyYW1lcyBmYWlsdXJlOiBmcmFtZUxpc3QgbXVzdCBiZSBhbiBBcnJheSBvZiBmcmFtZSBkZWZpbml0aW9ucyIrZSk7dmFyIGY9bC5sZW5ndGgrMiplLmxlbmd0aCxwPVtdLGQ9e307Zm9yKG49ZS5sZW5ndGgtMTtuPj0wO24tLSlpZihvLmlzUGxhaW5PYmplY3QoZVtuXSkpe3ZhciBtPWVbbl0ubmFtZSxnPSh1W21dfHxkW21dfHx7fSkubmFtZSx2PWVbbl0ubmFtZSx5PXVbZ118fGRbZ107ZyYmdiYmIm51bWJlciI9PXR5cGVvZiB2JiZ5JiZBPDUmJihBKyssby53YXJuKCdhZGRGcmFtZXM6IG92ZXJ3cml0aW5nIGZyYW1lICInKyh1W2ddfHxkW2ddKS5uYW1lKyciIHdpdGggYSBmcmFtZSB3aG9zZSBuYW1lIG9mIHR5cGUgIm51bWJlciIgYWxzbyBlcXVhdGVzIHRvICInK2crJyIuIFRoaXMgaXMgdmFsaWQgYnV0IG1heSBwb3RlbnRpYWxseSBsZWFkIHRvIHVuZXhwZWN0ZWQgYmVoYXZpb3Igc2luY2UgYWxsIHBsb3RseS5qcyBmcmFtZSBuYW1lcyBhcmUgc3RvcmVkIGludGVybmFsbHkgYXMgc3RyaW5ncy4nKSw1PT09QSYmby53YXJuKCJhZGRGcmFtZXM6IFRoaXMgQVBJIGNhbGwgaGFzIHlpZWxkZWQgdG9vIG1hbnkgb2YgdGhlc2Ugd2FybmluZ3MuIEZvciB0aGUgcmVzdCBvZiB0aGlzIGNhbGwsIGZ1cnRoZXIgd2FybmluZ3MgYWJvdXQgbnVtZXJpYyBmcmFtZSBuYW1lcyB3aWxsIGJlIHN1cHByZXNzZWQuIikpLGRbbV09e25hbWU6bX0scC5wdXNoKHtmcmFtZTpoLnN1cHBseUZyYW1lRGVmYXVsdHMoZVtuXSksaW5kZXg6ciYmdm9pZCAwIT09cltuXSYmbnVsbCE9PXJbbl0/cltuXTpmK259KX1wLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuaW5kZXg+ZS5pbmRleD8tMTp0LmluZGV4PGUuaW5kZXg/MTowfSkpO3ZhciB4PVtdLGI9W10sXz1sLmxlbmd0aDtmb3Iobj1wLmxlbmd0aC0xO24+PTA7bi0tKXtpZigibnVtYmVyIj09dHlwZW9mKGk9cFtuXS5mcmFtZSkubmFtZSYmby53YXJuKCJXYXJuaW5nOiBhZGRGcmFtZXMgYWNjZXB0cyBmcmFtZXMgd2l0aCBudW1lcmljIG5hbWVzLCBidXQgdGhlIG51bWJlcnMgYXJlaW1wbGljaXRseSBjYXN0IHRvIHN0cmluZ3MiKSwhaS5uYW1lKWZvcig7dVtpLm5hbWU9ImZyYW1lICIrdC5fdHJhbnNpdGlvbkRhdGEuX2NvdW50ZXIrK107KTtpZih1W2kubmFtZV0pe2ZvcihhPTA7YTxsLmxlbmd0aCYmKGxbYV18fHt9KS5uYW1lIT09aS5uYW1lO2ErKyk7eC5wdXNoKHt0eXBlOiJyZXBsYWNlIixpbmRleDphLHZhbHVlOml9KSxiLnVuc2hpZnQoe3R5cGU6InJlcGxhY2UiLGluZGV4OmEsdmFsdWU6bFthXX0pfWVsc2Ugcz1NYXRoLm1heCgwLE1hdGgubWluKHBbbl0uaW5kZXgsXykpLHgucHVzaCh7dHlwZToiaW5zZXJ0IixpbmRleDpzLHZhbHVlOml9KSxiLnVuc2hpZnQoe3R5cGU6ImRlbGV0ZSIsaW5kZXg6c30pLF8rK312YXIgdz1oLm1vZGlmeUZyYW1lcyxUPWgubW9kaWZ5RnJhbWVzLGs9W3QsYl0sTT1bdCx4XTtyZXR1cm4gYyYmYy5hZGQodCx3LGssVCxNKSxoLm1vZGlmeUZyYW1lcyh0LHgpfSxyLmRlbGV0ZUZyYW1lcz1mdW5jdGlvbih0LGUpe2lmKHQ9by5nZXRHcmFwaERpdih0KSwhby5pc1Bsb3REaXYodCkpdGhyb3cgbmV3IEVycm9yKCJUaGlzIGVsZW1lbnQgaXMgbm90IGEgUGxvdGx5IHBsb3Q6ICIrdCk7dmFyIHIsbixpPXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZXMsYT1bXSxzPVtdO2lmKCFlKWZvcihlPVtdLHI9MDtyPGkubGVuZ3RoO3IrKyllLnB1c2gocik7Zm9yKChlPWUuc2xpY2UoKSkuc29ydCgpLHI9ZS5sZW5ndGgtMTtyPj0wO3ItLSluPWVbcl0sYS5wdXNoKHt0eXBlOiJkZWxldGUiLGluZGV4Om59KSxzLnVuc2hpZnQoe3R5cGU6Imluc2VydCIsaW5kZXg6bix2YWx1ZTppW25dfSk7dmFyIGw9aC5tb2RpZnlGcmFtZXMsdT1oLm1vZGlmeUZyYW1lcyxmPVt0LHNdLHA9W3QsYV07cmV0dXJuIGMmJmMuYWRkKHQsbCxmLHUscCksaC5tb2RpZnlGcmFtZXModCxhKX0sci5hZGRUcmFjZXM9ZnVuY3Rpb24gdChlLG4saSl7ZT1vLmdldEdyYXBoRGl2KGUpO3ZhciBhLHMsbD1bXSx1PXIuZGVsZXRlVHJhY2VzLGY9dCxoPVtlLGxdLHA9W2Usbl07Zm9yKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpO2lmKCFBcnJheS5pc0FycmF5KHQuZGF0YSkpdGhyb3cgbmV3IEVycm9yKCJnZC5kYXRhIG11c3QgYmUgYW4gYXJyYXkuIik7aWYodm9pZCAwPT09ZSl0aHJvdyBuZXcgRXJyb3IoInRyYWNlcyBtdXN0IGJlIGRlZmluZWQuIik7Zm9yKEFycmF5LmlzQXJyYXkoZSl8fChlPVtlXSksbj0wO248ZS5sZW5ndGg7bisrKWlmKCJvYmplY3QiIT10eXBlb2YoaT1lW25dKXx8QXJyYXkuaXNBcnJheShpKXx8bnVsbD09PWkpdGhyb3cgbmV3IEVycm9yKCJhbGwgdmFsdWVzIGluIHRyYWNlcyBhcnJheSBtdXN0IGJlIG5vbi1hcnJheSBvYmplY3RzIik7aWYodm9pZCAwPT09cnx8QXJyYXkuaXNBcnJheShyKXx8KHI9W3JdKSx2b2lkIDAhPT1yJiZyLmxlbmd0aCE9PWUubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiaWYgaW5kaWNlcyBpcyBzcGVjaWZpZWQsIHRyYWNlcy5sZW5ndGggbXVzdCBlcXVhbCBpbmRpY2VzLmxlbmd0aCIpfShlLG4saSksQXJyYXkuaXNBcnJheShuKXx8KG49W25dKSxuPW4ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gby5leHRlbmRGbGF0KHt9LHQpfSkpLF8uY2xlYW5EYXRhKG4pLGE9MDthPG4ubGVuZ3RoO2ErKyllLmRhdGEucHVzaChuW2FdKTtmb3IoYT0wO2E8bi5sZW5ndGg7YSsrKWwucHVzaCgtbi5sZW5ndGgrYSk7aWYodm9pZCAwPT09aSlyZXR1cm4gcz1yLnJlZHJhdyhlKSxjLmFkZChlLHUsaCxmLHApLHM7QXJyYXkuaXNBcnJheShpKXx8KGk9W2ldKTt0cnl7SShlLGwsaSl9Y2F0Y2godCl7dGhyb3cgZS5kYXRhLnNwbGljZShlLmRhdGEubGVuZ3RoLW4ubGVuZ3RoLG4ubGVuZ3RoKSx0fXJldHVybiBjLnN0YXJ0U2VxdWVuY2UoZSksYy5hZGQoZSx1LGgsZixwKSxzPXIubW92ZVRyYWNlcyhlLGwsaSksYy5zdG9wU2VxdWVuY2UoZSksc30sci5kZWxldGVUcmFjZXM9ZnVuY3Rpb24gdChlLG4pe2U9by5nZXRHcmFwaERpdihlKTt2YXIgaSxhLHM9W10sbD1yLmFkZFRyYWNlcyx1PXQsZj1bZSxzLG5dLGg9W2Usbl07aWYodm9pZCAwPT09bil0aHJvdyBuZXcgRXJyb3IoImluZGljZXMgbXVzdCBiZSBhbiBpbnRlZ2VyIG9yIGFycmF5IG9mIGludGVnZXJzLiIpO2ZvcihBcnJheS5pc0FycmF5KG4pfHwobj1bbl0pLFAoZSxuLCJpbmRpY2VzIiksKG49QyhuLGUuZGF0YS5sZW5ndGgtMSkpLnNvcnQoby5zb3J0ZXJEZXMpLGk9MDtpPG4ubGVuZ3RoO2krPTEpYT1lLmRhdGEuc3BsaWNlKG5baV0sMSlbMF0scy5wdXNoKGEpO3ZhciBwPXIucmVkcmF3KGUpO3JldHVybiBjLmFkZChlLGwsZix1LGgpLHB9LHIuZXh0ZW5kVHJhY2VzPWZ1bmN0aW9uIHQoZSxuLGksYSl7ZnVuY3Rpb24gcyh0LGUscil7dmFyIG4saTtpZihvLmlzVHlwZWRBcnJheSh0KSlpZihyPDApe3ZhciBhPW5ldyB0LmNvbnN0cnVjdG9yKDApLHM9eih0LGUpO3I8MD8obj1zLGk9YSk6KG49YSxpPXMpfWVsc2UgaWYobj1uZXcgdC5jb25zdHJ1Y3RvcihyKSxpPW5ldyB0LmNvbnN0cnVjdG9yKHQubGVuZ3RoK2UubGVuZ3RoLXIpLHI9PT1lLmxlbmd0aCluLnNldChlKSxpLnNldCh0KTtlbHNlIGlmKHI8ZS5sZW5ndGgpe3ZhciBsPWUubGVuZ3RoLXI7bi5zZXQoZS5zdWJhcnJheShsKSksaS5zZXQodCksaS5zZXQoZS5zdWJhcnJheSgwLGwpLHQubGVuZ3RoKX1lbHNle3ZhciBjPXItZS5sZW5ndGgsdT10Lmxlbmd0aC1jO24uc2V0KHQuc3ViYXJyYXkodSkpLG4uc2V0KGUsYyksaS5zZXQodC5zdWJhcnJheSgwLHUpKX1lbHNlIG49dC5jb25jYXQoZSksaT1yPj0wJiZyPG4ubGVuZ3RoP24uc3BsaWNlKDAsbi5sZW5ndGgtcik6W107cmV0dXJuW24saV19dmFyIGw9TyhlPW8uZ2V0R3JhcGhEaXYoZSksbixpLGEscyksdT1yLnJlZHJhdyhlKSxmPVtlLGwudXBkYXRlLGksbC5tYXhQb2ludHNdO3JldHVybiBjLmFkZChlLHIucHJlcGVuZFRyYWNlcyxmLHQsYXJndW1lbnRzKSx1fSxyLm1vdmVUcmFjZXM9ZnVuY3Rpb24gdChlLG4saSl7dmFyIGEscz1bXSxsPVtdLHU9dCxmPXQsaD1bZT1vLmdldEdyYXBoRGl2KGUpLGksbl0scD1bZSxuLGldO2lmKEkoZSxuLGkpLG49QXJyYXkuaXNBcnJheShuKT9uOltuXSx2b2lkIDA9PT1pKWZvcihpPVtdLGE9MDthPG4ubGVuZ3RoO2ErKylpLnB1c2goLW4ubGVuZ3RoK2EpO2ZvcihpPUFycmF5LmlzQXJyYXkoaSk/aTpbaV0sbj1DKG4sZS5kYXRhLmxlbmd0aC0xKSxpPUMoaSxlLmRhdGEubGVuZ3RoLTEpLGE9MDthPGUuZGF0YS5sZW5ndGg7YSsrKS0xPT09bi5pbmRleE9mKGEpJiZzLnB1c2goZS5kYXRhW2FdKTtmb3IoYT0wO2E8bi5sZW5ndGg7YSsrKWwucHVzaCh7bmV3SW5kZXg6aVthXSx0cmFjZTplLmRhdGFbblthXV19KTtmb3IobC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Lm5ld0luZGV4LWUubmV3SW5kZXh9KSksYT0wO2E8bC5sZW5ndGg7YSs9MSlzLnNwbGljZShsW2FdLm5ld0luZGV4LDAsbFthXS50cmFjZSk7ZS5kYXRhPXM7dmFyIGQ9ci5yZWRyYXcoZSk7cmV0dXJuIGMuYWRkKGUsdSxoLGYscCksZH0sci5wcmVwZW5kVHJhY2VzPWZ1bmN0aW9uIHQoZSxuLGksYSl7ZnVuY3Rpb24gcyh0LGUscil7dmFyIG4saTtpZihvLmlzVHlwZWRBcnJheSh0KSlpZihyPD0wKXt2YXIgYT1uZXcgdC5jb25zdHJ1Y3RvcigwKSxzPXooZSx0KTtyPDA/KG49cyxpPWEpOihuPWEsaT1zKX1lbHNlIGlmKG49bmV3IHQuY29uc3RydWN0b3IociksaT1uZXcgdC5jb25zdHJ1Y3Rvcih0Lmxlbmd0aCtlLmxlbmd0aC1yKSxyPT09ZS5sZW5ndGgpbi5zZXQoZSksaS5zZXQodCk7ZWxzZSBpZihyPGUubGVuZ3RoKXt2YXIgbD1lLmxlbmd0aC1yO24uc2V0KGUuc3ViYXJyYXkoMCxsKSksaS5zZXQoZS5zdWJhcnJheShsKSksaS5zZXQodCxsKX1lbHNle3ZhciBjPXItZS5sZW5ndGg7bi5zZXQoZSksbi5zZXQodC5zdWJhcnJheSgwLGMpLGUubGVuZ3RoKSxpLnNldCh0LnN1YmFycmF5KGMpKX1lbHNlIG49ZS5jb25jYXQodCksaT1yPj0wJiZyPG4ubGVuZ3RoP24uc3BsaWNlKHIsbi5sZW5ndGgpOltdO3JldHVybltuLGldfXZhciBsPU8oZT1vLmdldEdyYXBoRGl2KGUpLG4saSxhLHMpLHU9ci5yZWRyYXcoZSksZj1bZSxsLnVwZGF0ZSxpLGwubWF4UG9pbnRzXTtyZXR1cm4gYy5hZGQoZSxyLmV4dGVuZFRyYWNlcyxmLHQsYXJndW1lbnRzKSx1fSxyLm5ld1Bsb3Q9ZnVuY3Rpb24odCxlLG4saSl7cmV0dXJuIHQ9by5nZXRHcmFwaERpdih0KSxoLmNsZWFuUGxvdChbXSx7fSx0Ll9mdWxsRGF0YXx8W10sdC5fZnVsbExheW91dHx8e30pLGgucHVyZ2UodCksci5fZG9QbG90KHQsZSxuLGkpfSxyLl9kb1Bsb3Q9ZnVuY3Rpb24odCxlLGksYSl7dmFyIHM7aWYodD1vLmdldEdyYXBoRGl2KHQpLGwuaW5pdCh0KSxvLmlzUGxhaW5PYmplY3QoZSkpe3ZhciBjPWU7ZT1jLmRhdGEsaT1jLmxheW91dCxhPWMuY29uZmlnLHM9Yy5mcmFtZXN9aWYoITE9PT1sLnRyaWdnZXJIYW5kbGVyKHQsInBsb3RseV9iZWZvcmVwbG90IixbZSxpLGFdKSlyZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtlfHxpfHxvLmlzUGxvdERpdih0KXx8by53YXJuKCJDYWxsaW5nIF9kb1Bsb3QgYXMgaWYgcmVkcmF3aW5nIGJ1dCB0aGlzIGNvbnRhaW5lciBkb2Vzbid0IHlldCBoYXZlIGEgcGxvdC4iLHQpLEwodCxhKSxpfHwoaT17fSksbi5zZWxlY3QodCkuY2xhc3NlZCgianMtcGxvdGx5LXBsb3QiLCEwKSxkLm1ha2VUZXN0ZXIoKSxBcnJheS5pc0FycmF5KHQuX3Byb21pc2VzKXx8KHQuX3Byb21pc2VzPVtdKTt2YXIgZj0wPT09KHQuZGF0YXx8W10pLmxlbmd0aCYmQXJyYXkuaXNBcnJheShlKTtBcnJheS5pc0FycmF5KGUpJiYoXy5jbGVhbkRhdGEoZSksZj90LmRhdGE9ZTp0LmRhdGEucHVzaC5hcHBseSh0LmRhdGEsZSksdC5lbXB0eT0hMSksdC5sYXlvdXQmJiFmfHwodC5sYXlvdXQ9Xy5jbGVhbkxheW91dChpKSksaC5zdXBwbHlEZWZhdWx0cyh0KTt2YXIgbT10Ll9mdWxsTGF5b3V0LHk9bS5faGFzKCJjYXJ0ZXNpYW4iKTttLl9yZXBsb3R0aW5nPSEwLChmfHxtLl9zaG91bGRDcmVhdGVCZ0xheWVyKSYmKCFmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0KSxyPXQuX2Z1bGxMYXlvdXQ7aWYoci5fY2FsY0ludmVyc2VUcmFuc2Zvcm09YXQsci5fY2FsY0ludmVyc2VUcmFuc2Zvcm0odCksci5fY29udGFpbmVyPWUuc2VsZWN0QWxsKCIucGxvdC1jb250YWluZXIiKS5kYXRhKFswXSksci5fY29udGFpbmVyLmVudGVyKCkuaW5zZXJ0KCJkaXYiLCI6Zmlyc3QtY2hpbGQiKS5jbGFzc2VkKCJwbG90LWNvbnRhaW5lciIsITApLmNsYXNzZWQoInBsb3RseSIsITApLHIuX3BhcGVyZGl2PXIuX2NvbnRhaW5lci5zZWxlY3RBbGwoIi5zdmctY29udGFpbmVyIikuZGF0YShbMF0pLHIuX3BhcGVyZGl2LmVudGVyKCkuYXBwZW5kKCJkaXYiKS5jbGFzc2VkKCJ1c2VyLXNlbGVjdC1ub25lIiwhMCkuY2xhc3NlZCgic3ZnLWNvbnRhaW5lciIsITApLnN0eWxlKCJwb3NpdGlvbiIsInJlbGF0aXZlIiksci5fZ2xjb250YWluZXI9ci5fcGFwZXJkaXYuc2VsZWN0QWxsKCIuZ2wtY29udGFpbmVyIikuZGF0YShbe31dKSxyLl9nbGNvbnRhaW5lci5lbnRlcigpLmFwcGVuZCgiZGl2IikuY2xhc3NlZCgiZ2wtY29udGFpbmVyIiwhMCksci5fcGFwZXJkaXYuc2VsZWN0QWxsKCIubWFpbi1zdmciKS5yZW1vdmUoKSxyLl9wYXBlcmRpdi5zZWxlY3QoIi5tb2RlYmFyLWNvbnRhaW5lciIpLnJlbW92ZSgpLHIuX3BhcGVyPXIuX3BhcGVyZGl2Lmluc2VydCgic3ZnIiwiOmZpcnN0LWNoaWxkIikuY2xhc3NlZCgibWFpbi1zdmciLCEwKSxyLl90b3BwYXBlcj1yLl9wYXBlcmRpdi5hcHBlbmQoInN2ZyIpLmNsYXNzZWQoIm1haW4tc3ZnIiwhMCksci5fbW9kZWJhcmRpdj1yLl9wYXBlcmRpdi5hcHBlbmQoImRpdiIpLGRlbGV0ZSByLl9tb2RlQmFyLHIuX2hvdmVycGFwZXI9ci5fcGFwZXJkaXYuYXBwZW5kKCJzdmciKS5jbGFzc2VkKCJtYWluLXN2ZyIsITApLCFyLl91aWQpe3ZhciBpPXt9O24uc2VsZWN0QWxsKCJkZWZzIikuZWFjaCgoZnVuY3Rpb24oKXt0aGlzLmlkJiYoaVt0aGlzLmlkLnNwbGl0KCItIilbMV1dPTEpfSkpLHIuX3VpZD1vLnJhbmRzdHIoaSl9ci5fcGFwZXJkaXYuc2VsZWN0QWxsKCIubWFpbi1zdmciKS5hdHRyKHYuc3ZnQXR0cnMpLHIuX2RlZnM9ci5fcGFwZXIuYXBwZW5kKCJkZWZzIikuYXR0cigiaWQiLCJkZWZzLSIrci5fdWlkKSxyLl9jbGlwcz1yLl9kZWZzLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNsaXBzIiwhMCksci5fdG9wZGVmcz1yLl90b3BwYXBlci5hcHBlbmQoImRlZnMiKS5hdHRyKCJpZCIsInRvcGRlZnMtIityLl91aWQpLHIuX3RvcGNsaXBzPXIuX3RvcGRlZnMuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2xpcHMiLCEwKSxyLl9iZ0xheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJnbGF5ZXIiLCEwKSxyLl9kcmFnZ2Vycz1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJkcmFnbGF5ZXIiLCEwKTt2YXIgYT1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJsYXllci1iZWxvdyIsITApO3IuX2ltYWdlTG93ZXJMYXllcj1hLmFwcGVuZCgiZyIpLmNsYXNzZWQoImltYWdlbGF5ZXIiLCEwKSxyLl9zaGFwZUxvd2VyTGF5ZXI9YS5hcHBlbmQoImciKS5jbGFzc2VkKCJzaGFwZWxheWVyIiwhMCksci5fY2FydGVzaWFubGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiY2FydGVzaWFubGF5ZXIiLCEwKSxyLl9wb2xhcmxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInBvbGFybGF5ZXIiLCEwKSxyLl90ZXJuYXJ5bGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgidGVybmFyeWxheWVyIiwhMCksci5fZ2VvbGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiZ2VvbGF5ZXIiLCEwKSxyLl9mdW5uZWxhcmVhbGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiZnVubmVsYXJlYWxheWVyIiwhMCksci5fcGllbGF5ZXI9ci5fcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgicGllbGF5ZXIiLCEwKSxyLl9pY2ljbGVsYXllcj1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJpY2ljbGVsYXllciIsITApLHIuX3RyZWVtYXBsYXllcj1yLl9wYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJ0cmVlbWFwbGF5ZXIiLCEwKSxyLl9zdW5idXJzdGxheWVyPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInN1bmJ1cnN0bGF5ZXIiLCEwKSxyLl9pbmRpY2F0b3JsYXllcj1yLl90b3BwYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJpbmRpY2F0b3JsYXllciIsITApLHIuX2dsaW1hZ2VzPXIuX3BhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoImdsaW1hZ2VzIiwhMCk7dmFyIHM9ci5fdG9wcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgibGF5ZXItYWJvdmUiLCEwKTtyLl9pbWFnZVVwcGVyTGF5ZXI9cy5hcHBlbmQoImciKS5jbGFzc2VkKCJpbWFnZWxheWVyIiwhMCksci5fc2hhcGVVcHBlckxheWVyPXMuYXBwZW5kKCJnIikuY2xhc3NlZCgic2hhcGVsYXllciIsITApLHIuX2luZm9sYXllcj1yLl90b3BwYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJpbmZvbGF5ZXIiLCEwKSxyLl9tZW51bGF5ZXI9ci5fdG9wcGFwZXIuYXBwZW5kKCJnIikuY2xhc3NlZCgibWVudWxheWVyIiwhMCksci5fem9vbWxheWVyPXIuX3RvcHBhcGVyLmFwcGVuZCgiZyIpLmNsYXNzZWQoInpvb21sYXllciIsITApLHIuX2hvdmVybGF5ZXI9ci5faG92ZXJwYXBlci5hcHBlbmQoImciKS5jbGFzc2VkKCJob3ZlcmxheWVyIiwhMCksci5fbW9kZWJhcmRpdi5jbGFzc2VkKCJtb2RlYmFyLWNvbnRhaW5lciIsITApLnN0eWxlKCJwb3NpdGlvbiIsImFic29sdXRlIikuc3R5bGUoInRvcCIsIjBweCIpLnN0eWxlKCJyaWdodCIsIjBweCIpLHQuZW1pdCgicGxvdGx5X2ZyYW1ld29yayIpfSh0KSxtLl9zaG91bGRDcmVhdGVCZ0xheWVyJiZkZWxldGUgbS5fc2hvdWxkQ3JlYXRlQmdMYXllciksZC5pbml0R3JhZGllbnRzKHQpLGQuaW5pdFBhdHRlcm5zKHQpLGYmJnAuc2F2ZVNob3dTcGlrZUluaXRpYWwodCk7dmFyIHg9IXQuY2FsY2RhdGF8fHQuY2FsY2RhdGEubGVuZ3RoIT09KHQuX2Z1bGxEYXRhfHxbXSkubGVuZ3RoO3gmJmguZG9DYWxjZGF0YSh0KTtmb3IodmFyIGI9MDtiPHQuY2FsY2RhdGEubGVuZ3RoO2IrKyl0LmNhbGNkYXRhW2JdWzBdLnRyYWNlPXQuX2Z1bGxEYXRhW2JdO3QuX2NvbnRleHQucmVzcG9uc2l2ZT90Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyfHwodC5fcmVzcG9uc2l2ZUNoYXJ0SGFuZGxlcj1mdW5jdGlvbigpe28uaXNIaWRkZW4odCl8fGgucmVzaXplKHQpfSx3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigicmVzaXplIix0Ll9yZXNwb25zaXZlQ2hhcnRIYW5kbGVyKSk6by5jbGVhclJlc3BvbnNpdmUodCk7dmFyIFQ9by5leHRlbmRGbGF0KHt9LG0uX3NpemUpLGs9MDtmdW5jdGlvbiBBKCl7aWYoaC5jbGVhckF1dG9NYXJnaW5JZHModCksdy5kcmF3TWFyZ2luUHVzaGVycyh0KSxwLmFsbG93QXV0b01hcmdpbih0KSxtLl9oYXMoInBpZSIpKWZvcih2YXIgZT10Ll9mdWxsRGF0YSxyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl07InBpZSI9PT1uLnR5cGUmJm4uYXV0b21hcmdpbiYmaC5hbGxvd0F1dG9NYXJnaW4odCwicGllLiIrbi51aWQrIi5hdXRvbWFyZ2luIil9cmV0dXJuIGguZG9BdXRvTWFyZ2luKHQpLGgucHJldmlvdXNQcm9taXNlcyh0KX1mdW5jdGlvbiBTKCl7dC5fdHJhbnNpdGlvbmluZ3x8KHcuZG9BdXRvUmFuZ2VBbmRDb25zdHJhaW50cyh0KSxmJiZwLnNhdmVSYW5nZUluaXRpYWwodCksdS5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiY2FsY0F1dG9yYW5nZSIpKHQpKX12YXIgRT1baC5wcmV2aW91c1Byb21pc2VzLGZ1bmN0aW9uKCl7aWYocylyZXR1cm4gci5hZGRGcmFtZXModCxzKX0sZnVuY3Rpb24gZSgpe2Zvcih2YXIgcj1tLl9iYXNlUGxvdE1vZHVsZXMsbj0wO248ci5sZW5ndGg7bisrKXJbbl0uZHJhd0ZyYW1ld29yayYmcltuXS5kcmF3RnJhbWV3b3JrKHQpOyFtLl9nbGNhbnZhcyYmbS5faGFzKCJnbCIpJiYobS5fZ2xjYW52YXM9bS5fZ2xjb250YWluZXIuc2VsZWN0QWxsKCIuZ2wtY2FudmFzIikuZGF0YShbe2tleToiY29udGV4dExheWVyIixjb250ZXh0OiEwLHBpY2s6ITF9LHtrZXk6ImZvY3VzTGF5ZXIiLGNvbnRleHQ6ITEscGljazohMX0se2tleToicGlja0xheWVyIixjb250ZXh0OiExLHBpY2s6ITB9XSwoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5fSkpLG0uX2dsY2FudmFzLmVudGVyKCkuYXBwZW5kKCJjYW52YXMiKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJnbC1jYW52YXMgZ2wtY2FudmFzLSIrdC5rZXkucmVwbGFjZSgiTGF5ZXIiLCIiKX0pKS5zdHlsZSh7cG9zaXRpb246ImFic29sdXRlIix0b3A6MCxsZWZ0OjAsb3ZlcmZsb3c6InZpc2libGUiLCJwb2ludGVyLWV2ZW50cyI6Im5vbmUifSkpO3ZhciBpPXQuX2NvbnRleHQucGxvdEdsUGl4ZWxSYXRpbztpZihtLl9nbGNhbnZhcyl7bS5fZ2xjYW52YXMuYXR0cigid2lkdGgiLG0ud2lkdGgqaSkuYXR0cigiaGVpZ2h0IixtLmhlaWdodCppKS5zdHlsZSgid2lkdGgiLG0ud2lkdGgrInB4Iikuc3R5bGUoImhlaWdodCIsbS5oZWlnaHQrInB4Iik7dmFyIGE9bS5fZ2xjYW52YXMuZGF0YSgpWzBdLnJlZ2w7aWYoYSYmKE1hdGguZmxvb3IobS53aWR0aCppKSE9PWEuX2dsLmRyYXdpbmdCdWZmZXJXaWR0aHx8TWF0aC5mbG9vcihtLmhlaWdodCppKSE9PWEuX2dsLmRyYXdpbmdCdWZmZXJIZWlnaHQpKXt2YXIgcz0iV2ViR0wgY29udGV4dCBidWZmZXIgYW5kIGNhbnZhcyBkaW1lbnNpb25zIGRvIG5vdCBtYXRjaCBkdWUgdG8gYnJvd3Nlci9XZWJHTCBidWcuIjtpZighaylyZXR1cm4gby5sb2cocysiIENsZWFyaW5nIGdyYXBoIGFuZCBwbG90dGluZyBhZ2Fpbi4iKSxoLmNsZWFuUGxvdChbXSx7fSx0Ll9mdWxsRGF0YSxtKSxoLnN1cHBseURlZmF1bHRzKHQpLG09dC5fZnVsbExheW91dCxoLmRvQ2FsY2RhdGEodCksaysrLGUoKTtvLmVycm9yKHMpfX1yZXR1cm4iaCI9PT1tLm1vZGViYXIub3JpZW50YXRpb24/bS5fbW9kZWJhcmRpdi5zdHlsZSgiaGVpZ2h0IixudWxsKS5zdHlsZSgid2lkdGgiLCIxMDAlIik6bS5fbW9kZWJhcmRpdi5zdHlsZSgid2lkdGgiLG51bGwpLnN0eWxlKCJoZWlnaHQiLG0uaGVpZ2h0KyJweCIpLGgucHJldmlvdXNQcm9taXNlcyh0KX0sQSxmdW5jdGlvbigpe2lmKGguZGlkTWFyZ2luQ2hhbmdlKFQsbS5fc2l6ZSkpcmV0dXJuIG8uc3luY09yQXN5bmMoW0Esdy5sYXlvdXRTdHlsZXNdLHQpfV07eSYmRS5wdXNoKChmdW5jdGlvbigpe2lmKHgpcmV0dXJuIG8uc3luY09yQXN5bmMoW3UuZ2V0Q29tcG9uZW50TWV0aG9kKCJzaGFwZXMiLCJjYWxjQXV0b3JhbmdlIiksdS5nZXRDb21wb25lbnRNZXRob2QoImFubm90YXRpb25zIiwiY2FsY0F1dG9yYW5nZSIpLFNdLHQpO1MoKX0pKSxFLnB1c2gody5sYXlvdXRTdHlsZXMpLHkmJkUucHVzaCgoZnVuY3Rpb24oKXtyZXR1cm4gcC5kcmF3KHQsZj8iIjoicmVkcmF3Iil9KSwoZnVuY3Rpb24odCl7dC5fZnVsbExheW91dC5faW5zaWRlVGlja0xhYmVsc0F1dG9yYW5nZSYmVSh0LHQuX2Z1bGxMYXlvdXQuX2luc2lkZVRpY2tMYWJlbHNBdXRvcmFuZ2UpLnRoZW4oKGZ1bmN0aW9uKCl7dC5fZnVsbExheW91dC5faW5zaWRlVGlja0xhYmVsc0F1dG9yYW5nZT12b2lkIDB9KSl9KSksRS5wdXNoKHcuZHJhd0RhdGEsdy5maW5hbERyYXcsZyxoLmFkZExpbmtzLGgucmVob3ZlcixoLnJlZHJhZyxoLmRvQXV0b01hcmdpbiwoZnVuY3Rpb24odCl7dC5fZnVsbExheW91dC5faW5zaWRlVGlja0xhYmVsc0F1dG9yYW5nZSYmZiYmcC5zYXZlUmFuZ2VJbml0aWFsKHQsITApfSksaC5wcmV2aW91c1Byb21pc2VzKTt2YXIgQz1vLnN5bmNPckFzeW5jKEUsdCk7cmV0dXJuIEMmJkMudGhlbnx8KEM9UHJvbWlzZS5yZXNvbHZlKCkpLEMudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gTSh0KSx0fSkpfSxyLnB1cmdlPWZ1bmN0aW9uKHQpe3ZhciBlPSh0PW8uZ2V0R3JhcGhEaXYodCkpLl9mdWxsTGF5b3V0fHx7fSxyPXQuX2Z1bGxEYXRhfHxbXTtyZXR1cm4gaC5jbGVhblBsb3QoW10se30scixlKSxoLnB1cmdlKHQpLGwucHVyZ2UodCksZS5fY29udGFpbmVyJiZlLl9jb250YWluZXIucmVtb3ZlKCksZGVsZXRlIHQuX2NvbnRleHQsdH0sci5yZWFjdD1mdW5jdGlvbih0LGUsbixpKXt2YXIgYSxsO3Q9by5nZXRHcmFwaERpdih0KSxfLmNsZWFyUHJvbWlzZVF1ZXVlKHQpO3ZhciBjPXQuX2Z1bGxEYXRhLHA9dC5fZnVsbExheW91dDtpZihvLmlzUGxvdERpdih0KSYmYyYmcCl7aWYoby5pc1BsYWluT2JqZWN0KGUpKXt2YXIgZD1lO2U9ZC5kYXRhLG49ZC5sYXlvdXQsaT1kLmNvbmZpZyxhPWQuZnJhbWVzfXZhciBtPSExO2lmKGkpe3ZhciBnPW8uZXh0ZW5kRGVlcCh7fSx0Ll9jb250ZXh0KTt0Ll9jb250ZXh0PXZvaWQgMCxMKHQsaSksbT1mdW5jdGlvbiB0KGUscil7dmFyIG47Zm9yKG4gaW4gZSlpZigiXyIhPT1uLmNoYXJBdCgwKSl7dmFyIGk9ZVtuXSxhPXJbbl07aWYoaSE9PWEpaWYoby5pc1BsYWluT2JqZWN0KGkpJiZvLmlzUGxhaW5PYmplY3QoYSkpe2lmKHQoaSxhKSlyZXR1cm4hMH1lbHNle2lmKCFBcnJheS5pc0FycmF5KGkpfHwhQXJyYXkuaXNBcnJheShhKSlyZXR1cm4hMDtpZihpLmxlbmd0aCE9PWEubGVuZ3RoKXJldHVybiEwO2Zvcih2YXIgcz0wO3M8aS5sZW5ndGg7cysrKWlmKGlbc10hPT1hW3NdKXtpZighby5pc1BsYWluT2JqZWN0KGlbc10pfHwhby5pc1BsYWluT2JqZWN0KGFbc10pKXJldHVybiEwO2lmKHQoaVtzXSxhW3NdKSlyZXR1cm4hMH19fX0oZyx0Ll9jb250ZXh0KX10LmRhdGE9ZXx8W10sXy5jbGVhbkRhdGEodC5kYXRhKSx0LmxheW91dD1ufHx7fSxfLmNsZWFuTGF5b3V0KHQubGF5b3V0KSxmdW5jdGlvbih0LGUscixuKXt2YXIgaSxhLGwsYyx1LGYsaCxwLGQ9bi5fcHJlR1VJLG09W10sZz17fTtmb3IoaSBpbiBkKXtpZih1PSQoaSxLKSl7aWYoYT11LmF0dHJ8fHUuaGVhZCsiLnVpcmV2aXNpb24iLChjPShsPXMobixhKS5nZXQoKSkmJnR0KGEsZSkpJiZjPT09bCYmKG51bGw9PT0oZj1kW2ldKSYmKGY9dm9pZCAwKSxudChwPShoPXMoZSxpKSkuZ2V0KCksZikpKXt2b2lkIDA9PT1wJiYiYXV0b3JhbmdlIj09PWkuc3Vic3RyKGkubGVuZ3RoLTkpJiZtLnB1c2goaS5zdWJzdHIoMCxpLmxlbmd0aC0xMCkpLGguc2V0KFIocyhuLGkpLmdldCgpKSk7Y29udGludWV9fWVsc2Ugby53YXJuKCJ1bnJlY29nbml6ZWQgR1VJIGVkaXQ6ICIraSk7ZGVsZXRlIGRbaV0sInJhbmdlWyI9PT1pLnN1YnN0cihpLmxlbmd0aC04LDYpJiYoZ1tpLnN1YnN0cigwLGkubGVuZ3RoLTkpXT0xKX1mb3IodmFyIHY9MDt2PG0ubGVuZ3RoO3YrKyl7dmFyIHk9bVt2XTtpZihnW3ldKXt2YXIgeD1zKGUseSkuZ2V0KCk7eCYmZGVsZXRlIHguYXV0b3JhbmdlfX12YXIgYj1uLl90cmFjZVByZUdVSTtmb3IodmFyIF8gaW4gYil7dmFyIHcsVD1iW19dLGs9bnVsbDtmb3IoaSBpbiBUKXtpZighayl7dmFyIEE9ZXQoXyxyKTtpZihBPDApe2RlbGV0ZSBiW19dO2JyZWFrfXZhciBNPXJ0KF8sdCwodz1yW0FdLl9mdWxsSW5wdXQpLmluZGV4KTtpZihNPDApe2RlbGV0ZSBiW19dO2JyZWFrfWs9dFtNXX1pZih1PSQoaSxRKSl7aWYodS5hdHRyP2M9KGw9cyhuLHUuYXR0cikuZ2V0KCkpJiZ0dCh1LmF0dHIsZSk6KGw9dy51aXJldmlzaW9uLHZvaWQgMD09PShjPWsudWlyZXZpc2lvbikmJihjPWUudWlyZXZpc2lvbikpLGMmJmM9PT1sJiYobnVsbD09PShmPVRbaV0pJiYoZj12b2lkIDApLG50KHA9KGg9cyhrLGkpKS5nZXQoKSxmKSkpe2guc2V0KFIocyh3LGkpLmdldCgpKSk7Y29udGludWV9fWVsc2Ugby53YXJuKCJ1bnJlY29nbml6ZWQgR1VJIGVkaXQ6ICIraSsiIGluIHRyYWNlIHVpZCAiK18pO2RlbGV0ZSBUW2ldfX19KHQuZGF0YSx0LmxheW91dCxjLHApLGguc3VwcGx5RGVmYXVsdHModCx7c2tpcFVwZGF0ZUNhbGM6ITB9KTt2YXIgdj10Ll9mdWxsRGF0YSx5PXQuX2Z1bGxMYXlvdXQseD12b2lkIDA9PT15LmRhdGFyZXZpc2lvbixiPXkudHJhbnNpdGlvbixrPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9VC5sYXlvdXRGbGFncygpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIGYuZ2V0TGF5b3V0VmFsT2JqZWN0KHIsdCl9YS5hcnJheXM9e30sYS5yYW5nZXNBbHRlcmVkPXt9LGEubkNoYW5nZXM9MCxhLm5DaGFuZ2VzQW5pbT0wLGl0KGUscixbXSx7Z2V0VmFsT2JqZWN0Om8sZmxhZ3M6YSxpbW11dGFibGU6bix0cmFuc2l0aW9uOmksZ2Q6dH0pLChhLnBsb3R8fGEuY2FsYykmJihhLmxheW91dFJlcGxvdD0hMCk7aSYmYS5uQ2hhbmdlcyYmYS5uQ2hhbmdlc0FuaW0mJihhLmFuaW09YS5uQ2hhbmdlcz09PWEubkNoYW5nZXNBbmltPyJhbGwiOiJzb21lIik7cmV0dXJuIGF9KHQscCx5LHgsYiksQT1rLm5ld0RhdGFSZXZpc2lvbixTPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbz1lLmxlbmd0aD09PXIubGVuZ3RoO2lmKCFpJiYhbylyZXR1cm57ZnVsbFJlcGxvdDohMCxjYWxjOiEwfTt2YXIgcyxsLGM9VC50cmFjZUZsYWdzKCk7Yy5hcnJheXM9e30sYy5uQ2hhbmdlcz0wLGMubkNoYW5nZXNBbmltPTA7dmFyIHU9e2dldFZhbE9iamVjdDpmdW5jdGlvbih0KXt2YXIgZT1mLmdldFRyYWNlVmFsT2JqZWN0KGwsdCk7cmV0dXJuIWwuX21vZHVsZS5hbmltYXRhYmxlJiZlLmFuaW0mJihlLmFuaW09ITEpLGV9LGZsYWdzOmMsaW1tdXRhYmxlOm4sdHJhbnNpdGlvbjppLG5ld0RhdGFSZXZpc2lvbjphLGdkOnR9LHA9e307Zm9yKHM9MDtzPGUubGVuZ3RoO3MrKylpZihyW3NdKXtpZihsPXJbc10uX2Z1bGxJbnB1dCxoLmhhc01ha2VzRGF0YVRyYW5zZm9ybShsKSYmKGw9cltzXSkscFtsLnVpZF0pY29udGludWU7cFtsLnVpZF09MSxpdChlW3NdLl9mdWxsSW5wdXQsbCxbXSx1KX0oYy5jYWxjfHxjLnBsb3QpJiYoYy5mdWxsUmVwbG90PSEwKTtpJiZjLm5DaGFuZ2VzJiZjLm5DaGFuZ2VzQW5pbSYmKGMuYW5pbT1jLm5DaGFuZ2VzPT09Yy5uQ2hhbmdlc0FuaW0mJm8/ImFsbCI6InNvbWUiKTtyZXR1cm4gY30odCxjLHYseCxiLEEpO2lmKFgodCkmJihrLmxheW91dFJlcGxvdD0hMCksUy5jYWxjfHxrLmNhbGMpe3QuY2FsY2RhdGE9dm9pZCAwO2Zvcih2YXIgRT1PYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyh5KSxDPTA7QzxFLmxlbmd0aDtDKyspe3ZhciBQPUVbQ10sST1QLnN1YnN0cmluZygwLDUpO2lmKCJ4YXhpcyI9PT1JfHwieWF4aXMiPT09SSl7dmFyIE89eVtQXS5fZW1wdHlDYXRlZ29yaWVzO08mJk8oKX19fWVsc2UgaC5zdXBwbHlEZWZhdWx0c1VwZGF0ZUNhbGModC5jYWxjZGF0YSx2KTt2YXIgej1bXTtpZihhJiYodC5fdHJhbnNpdGlvbkRhdGE9e30saC5jcmVhdGVUcmFuc2l0aW9uRGF0YSh0KSx6LnB1c2goKGZ1bmN0aW9uKCl7cmV0dXJuIHIuYWRkRnJhbWVzKHQsYSl9KSkpLHkudHJhbnNpdGlvbiYmIW0mJihTLmFuaW18fGsuYW5pbSkpay50aWNrcyYmei5wdXNoKHcuZG9UaWNrc1JlbGF5b3V0KSxoLmRvQ2FsY2RhdGEodCksdy5kb0F1dG9SYW5nZUFuZENvbnN0cmFpbnRzKHQpLHoucHVzaCgoZnVuY3Rpb24oKXtyZXR1cm4gaC50cmFuc2l0aW9uRnJvbVJlYWN0KHQsUyxrLHApfSkpO2Vsc2UgaWYoUy5mdWxsUmVwbG90fHxrLmxheW91dFJlcGxvdHx8bSl0Ll9mdWxsTGF5b3V0Ll9za2lwRGVmYXVsdHM9ITAsei5wdXNoKHIuX2RvUGxvdCk7ZWxzZXtmb3IodmFyIEQgaW4gay5hcnJheXMpe3ZhciBGPWsuYXJyYXlzW0RdO2lmKEYubGVuZ3RoKXt2YXIgQj11LmdldENvbXBvbmVudE1ldGhvZChELCJkcmF3T25lIik7aWYoQiE9PW8ubm9vcClmb3IodmFyIE49MDtOPEYubGVuZ3RoO04rKylCKHQsRltOXSk7ZWxzZXt2YXIgaj11LmdldENvbXBvbmVudE1ldGhvZChELCJkcmF3Iik7aWYoaj09PW8ubm9vcCl0aHJvdyBuZXcgRXJyb3IoImNhbm5vdCBkcmF3IGNvbXBvbmVudHM6ICIrRCk7aih0KX19fXoucHVzaChoLnByZXZpb3VzUHJvbWlzZXMpLFMuc3R5bGUmJnoucHVzaCh3LmRvVHJhY2VTdHlsZSksKFMuY29sb3JiYXJzfHxrLmNvbG9yYmFycykmJnoucHVzaCh3LmRvQ29sb3JCYXJzKSxrLmxlZ2VuZCYmei5wdXNoKHcuZG9MZWdlbmQpLGsubGF5b3V0c3R5bGUmJnoucHVzaCh3LmxheW91dFN0eWxlcyksay5heHJhbmdlJiZIKHopLGsudGlja3MmJnoucHVzaCh3LmRvVGlja3NSZWxheW91dCksay5tb2RlYmFyJiZ6LnB1c2gody5kb01vZGVCYXIpLGsuY2FtZXJhJiZ6LnB1c2gody5kb0NhbWVyYSksei5wdXNoKE0pfXoucHVzaChoLnJlaG92ZXIsaC5yZWRyYWcpLChsPW8uc3luY09yQXN5bmMoeix0KSkmJmwudGhlbnx8KGw9UHJvbWlzZS5yZXNvbHZlKHQpKX1lbHNlIGw9ci5uZXdQbG90KHQsZSxuLGkpO3JldHVybiBsLnRoZW4oKGZ1bmN0aW9uKCl7cmV0dXJuIHQuZW1pdCgicGxvdGx5X3JlYWN0Iix7ZGF0YTplLGxheW91dDpufSksdH0pKX0sci5yZWRyYXc9ZnVuY3Rpb24odCl7aWYodD1vLmdldEdyYXBoRGl2KHQpLCFvLmlzUGxvdERpdih0KSl0aHJvdyBuZXcgRXJyb3IoIlRoaXMgZWxlbWVudCBpcyBub3QgYSBQbG90bHkgcGxvdDogIit0KTtyZXR1cm4gXy5jbGVhbkRhdGEodC5kYXRhKSxfLmNsZWFuTGF5b3V0KHQubGF5b3V0KSx0LmNhbGNkYXRhPXZvaWQgMCxyLl9kb1Bsb3QodCkudGhlbigoZnVuY3Rpb24oKXtyZXR1cm4gdC5lbWl0KCJwbG90bHlfcmVkcmF3IiksdH0pKX0sci5yZWxheW91dD1VLHIucmVzdHlsZT1ELHIuc2V0UGxvdENvbmZpZz1mdW5jdGlvbih0KXtyZXR1cm4gby5leHRlbmRGbGF0KHgsdCl9LHIudXBkYXRlPVosci5fZ3VpUmVsYXlvdXQ9SihVKSxyLl9ndWlSZXN0eWxlPUooRCksci5fZ3VpVXBkYXRlPUooWiksci5fc3RvcmVEaXJlY3RHVUlFZGl0PWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4gaW4gcil7QihuLHModCxuKS5nZXQoKSxyW25dLGUpfX19LHsiLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjc1MywiLi4vbGliIjo3NzYsIi4uL2xpYi9ldmVudHMiOjc2NSwiLi4vbGliL3F1ZXVlIjo3OTIsIi4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdGFudHMiOjgzNCwiLi4vcGxvdHMvY2FydGVzaWFuL2dyYXBoX2ludGVyYWN0Ijo4MzcsIi4uL3Bsb3RzL2NhcnRlc2lhbi9zZWxlY3QiOjg0NywiLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi4vcmVnaXN0cnkiOjkwNCwiLi9lZGl0X3R5cGVzIjo4MDksIi4vaGVscGVycyI6ODEwLCIuL21hbmFnZV9hcnJheXMiOjgxMiwiLi9wbG90X2NvbmZpZyI6ODE0LCIuL3Bsb3Rfc2NoZW1hIjo4MTUsIi4vc3Vicm91dGluZXMiOjgxNywiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoyNDIsImhhcy1ob3ZlciI6NDI1fV0sODE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXtzdGF0aWNQbG90Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxwbG90bHlTZXJ2ZXJVUkw6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIn0sZWRpdGFibGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGVkaXRzOnthbm5vdGF0aW9uUG9zaXRpb246e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGFubm90YXRpb25UYWlsOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxhbm5vdGF0aW9uVGV4dDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sYXhpc1RpdGxlVGV4dDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sY29sb3JiYXJQb3NpdGlvbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sY29sb3JiYXJUaXRsZVRleHQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxlZ2VuZFBvc2l0aW9uOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsZWdlbmRUZXh0Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxzaGFwZVBvc2l0aW9uOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx0aXRsZVRleHQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9fSxhdXRvc2l6YWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0scmVzcG9uc2l2ZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sZmlsbEZyYW1lOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxmcmFtZU1hcmdpbnM6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLG1pbjowLG1heDouNX0sc2Nyb2xsWm9vbTp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsiY2FydGVzaWFuIiwiZ2wzZCIsImdlbyIsIm1hcGJveCJdLGV4dHJhczpbITAsITFdLGRmbHQ6ImdsM2QrZ2VvK21hcGJveCJ9LGRvdWJsZUNsaWNrOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyExLCJyZXNldCIsImF1dG9zaXplIiwicmVzZXQrYXV0b3NpemUiXSxkZmx0OiJyZXNldCthdXRvc2l6ZSJ9LGRvdWJsZUNsaWNrRGVsYXk6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDozMDAsbWluOjB9LHNob3dBeGlzRHJhZ0hhbmRsZXM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHNob3dBeGlzUmFuZ2VFbnRyeUJveGVzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxzaG93VGlwczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc2hvd0xpbms6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxpbmtUZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IkVkaXQgY2hhcnQiLG5vQmxhbms6ITB9LHNlbmREYXRhOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxzaG93U291cmNlczp7dmFsVHlwZToiYW55IixkZmx0OiExfSxkaXNwbGF5TW9kZUJhcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaG92ZXIiLCEwLCExXSxkZmx0OiJob3ZlciJ9LHNob3dTZW5kVG9DbG91ZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sc2hvd0VkaXRJbkNoYXJ0U3R1ZGlvOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxtb2RlQmFyQnV0dG9uc1RvUmVtb3ZlOnt2YWxUeXBlOiJhbnkiLGRmbHQ6W119LG1vZGVCYXJCdXR0b25zVG9BZGQ6e3ZhbFR5cGU6ImFueSIsZGZsdDpbXX0sbW9kZUJhckJ1dHRvbnM6e3ZhbFR5cGU6ImFueSIsZGZsdDohMX0sdG9JbWFnZUJ1dHRvbk9wdGlvbnM6e3ZhbFR5cGU6ImFueSIsZGZsdDp7fX0sZGlzcGxheWxvZ286e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LHdhdGVybWFyazp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0scGxvdEdsUGl4ZWxSYXRpbzp7dmFsVHlwZToibnVtYmVyIixkZmx0OjIsbWluOjEsbWF4OjR9LHNldEJhY2tncm91bmQ6e3ZhbFR5cGU6ImFueSIsZGZsdDoidHJhbnNwYXJlbnQifSx0b3BvanNvblVSTDp7dmFsVHlwZToic3RyaW5nIixub0JsYW5rOiEwLGRmbHQ6Imh0dHBzOi8vY2RuLnBsb3QubHkvIn0sbWFwYm94QWNjZXNzVG9rZW46e3ZhbFR5cGU6InN0cmluZyIsZGZsdDpudWxsfSxsb2dnaW5nOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxtYXg6MixkZmx0OjF9LG5vdGlmeU9uTG9nZ2luZzp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsbWF4OjIsZGZsdDowfSxxdWV1ZUxlbmd0aDp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowfSxnbG9iYWxUcmFuc2Zvcm1zOnt2YWxUeXBlOiJhbnkiLGRmbHQ6W119LGxvY2FsZTp7dmFsVHlwZToic3RyaW5nIixkZmx0OiJlbi1VUyJ9LGxvY2FsZXM6e3ZhbFR5cGU6ImFueSIsZGZsdDp7fX19LGk9e307IWZ1bmN0aW9uIHQoZSxyKXtmb3IodmFyIG4gaW4gZSl7dmFyIGk9ZVtuXTtpLnZhbFR5cGU/cltuXT1pLmRmbHQ6KHJbbl18fChyW25dPXt9KSx0KGkscltuXSkpfX0obixpKSxlLmV4cG9ydHM9e2NvbmZpZ0F0dHJpYnV0ZXM6bixkZmx0Q29uZmlnOml9fSx7fV0sODE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3JlZ2lzdHJ5IiksaT10KCIuLi9saWIiKSxhPXQoIi4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL3Bsb3RzL2xheW91dF9hdHRyaWJ1dGVzIikscz10KCIuLi9wbG90cy9mcmFtZV9hdHRyaWJ1dGVzIiksbD10KCIuLi9wbG90cy9hbmltYXRpb25fYXR0cmlidXRlcyIpLGM9dCgiLi9wbG90X2NvbmZpZyIpLmNvbmZpZ0F0dHJpYnV0ZXMsdT10KCIuL2VkaXRfdHlwZXMiKSxmPWkuZXh0ZW5kRGVlcEFsbCxoPWkuaXNQbGFpbk9iamVjdCxwPWkuaXNBcnJheU9yVHlwZWRBcnJheSxkPWkubmVzdGVkUHJvcGVydHksbT1pLnZhbE9iamVjdE1ldGEsZz1bIl9pc1N1YnBsb3RPYmoiLCJfaXNMaW5rZWRUb0FycmF5IiwiX2FycmF5QXR0clJlZ2V4cHMiLCJfZGVwcmVjYXRlZCJdO2Z1bmN0aW9uIHYodCxlLHIpe2lmKCF0KXJldHVybiExO2lmKHQuX2lzTGlua2VkVG9BcnJheSlpZih5KGVbcl0pKXIrKztlbHNlIGlmKHI8ZS5sZW5ndGgpcmV0dXJuITE7Zm9yKDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49dFtlW3JdXTtpZighaChuKSlicmVhaztpZih0PW4scj09PWUubGVuZ3RoLTEpYnJlYWs7aWYodC5faXNMaW5rZWRUb0FycmF5KXtpZigheShlWysrcl0pKXJldHVybiExfWVsc2UgaWYoImluZm9fYXJyYXkiPT09dC52YWxUeXBlKXt2YXIgaT1lWysrcl07aWYoIXkoaSkpcmV0dXJuITE7dmFyIGE9dC5pdGVtcztpZihBcnJheS5pc0FycmF5KGEpKXtpZihpPj1hLmxlbmd0aClyZXR1cm4hMTtpZigyPT09dC5kaW1lbnNpb25zKXtpZihyKyssZS5sZW5ndGg9PT1yKXJldHVybiB0O3ZhciBvPWVbcl07aWYoIXkobykpcmV0dXJuITE7dD1hW2ldW29dfWVsc2UgdD1hW2ldfWVsc2UgdD1hfX1yZXR1cm4gdH1mdW5jdGlvbiB5KHQpe3JldHVybiB0PT09TWF0aC5yb3VuZCh0KSYmdD49MH1mdW5jdGlvbiB4KCl7dmFyIHQsZSxyPXt9O2Zvcih0IGluIGYocixvKSxuLnN1YnBsb3RzUmVnaXN0cnkpe2lmKChlPW4uc3VicGxvdHNSZWdpc3RyeVt0XSkubGF5b3V0QXR0cmlidXRlcylpZihBcnJheS5pc0FycmF5KGUuYXR0cikpZm9yKHZhciBpPTA7aTxlLmF0dHIubGVuZ3RoO2krKyl3KHIsZSxlLmF0dHJbaV0pO2Vsc2UgdyhyLGUsInN1YnBsb3QiPT09ZS5hdHRyP2UubmFtZTplLmF0dHIpfWZvcih0IGluIG4uY29tcG9uZW50c1JlZ2lzdHJ5KXt2YXIgYT0oZT1uLmNvbXBvbmVudHNSZWdpc3RyeVt0XSkuc2NoZW1hO2lmKGEmJihhLnN1YnBsb3RzfHxhLmxheW91dCkpe3ZhciBzPWEuc3VicGxvdHM7aWYocyYmcy54YXhpcyYmIXMueWF4aXMpZm9yKHZhciBsIGluIHMueGF4aXMpZGVsZXRlIHIueWF4aXNbbF19ZWxzZSJjb2xvcnNjYWxlIj09PWUubmFtZT9mKHIsZS5sYXlvdXRBdHRyaWJ1dGVzKTplLmxheW91dEF0dHJpYnV0ZXMmJlQocixlLmxheW91dEF0dHJpYnV0ZXMsZS5uYW1lKX1yZXR1cm57bGF5b3V0QXR0cmlidXRlczpfKHIpfX1mdW5jdGlvbiBiKCl7dmFyIHQ9e2ZyYW1lczpmKHt9LHMpfTtyZXR1cm4gXyh0KSx0LmZyYW1lc31mdW5jdGlvbiBfKHQpe3JldHVybiBmdW5jdGlvbih0KXtyLmNyYXdsKHQsKGZ1bmN0aW9uKHQsZSxuKXtyLmlzVmFsT2JqZWN0KHQpPyEwIT09dC5hcnJheU9rJiYiZGF0YV9hcnJheSIhPT10LnZhbFR5cGV8fChuW2UrInNyYyJdPXt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJub25lIn0pOmgodCkmJih0LnJvbGU9Im9iamVjdCIpfSkpfSh0KSxmdW5jdGlvbih0KXtyLmNyYXdsKHQsKGZ1bmN0aW9uKHQsZSxyKXtpZih0KXt2YXIgbj10Ll9pc0xpbmtlZFRvQXJyYXk7biYmKGRlbGV0ZSB0Ll9pc0xpbmtlZFRvQXJyYXkscltlXT17aXRlbXM6e319LHJbZV0uaXRlbXNbbl09dCxyW2VdLnJvbGU9Im9iamVjdCIpfX0pKX0odCksZnVuY3Rpb24odCl7IWZ1bmN0aW9uIHQoZSl7Zm9yKHZhciByIGluIGUpaWYoaChlW3JdKSl0KGVbcl0pO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShlW3JdKSlmb3IodmFyIG49MDtuPGVbcl0ubGVuZ3RoO24rKyl0KGVbcl1bbl0pO2Vsc2UgZVtyXWluc3RhbmNlb2YgUmVnRXhwJiYoZVtyXT1lW3JdLnRvU3RyaW5nKCkpfSh0KX0odCksdH1mdW5jdGlvbiB3KHQsZSxyKXt2YXIgbj1kKHQsciksaT1mKHt9LGUubGF5b3V0QXR0cmlidXRlcyk7aS5faXNTdWJwbG90T2JqPSEwLG4uc2V0KGkpfWZ1bmN0aW9uIFQodCxlLHIpe3ZhciBuPWQodCxyKTtuLnNldChmKG4uZ2V0KCl8fHt9LGUpKX1yLklTX1NVQlBMT1RfT0JKPSJfaXNTdWJwbG90T2JqIixyLklTX0xJTktFRF9UT19BUlJBWT0iX2lzTGlua2VkVG9BcnJheSIsci5ERVBSRUNBVEVEPSJfZGVwcmVjYXRlZCIsci5VTkRFUlNDT1JFX0FUVFJTPWcsci5nZXQ9ZnVuY3Rpb24oKXt2YXIgdD17fTtuLmFsbFR5cGVzLmZvckVhY2goKGZ1bmN0aW9uKGUpe3RbZV09ZnVuY3Rpb24odCl7dmFyIGUsaTtlPW4ubW9kdWxlc1t0XS5fbW9kdWxlLGk9ZS5iYXNlUGxvdE1vZHVsZTt2YXIgbz17dHlwZTpudWxsfSxzPWYoe30sYSksbD1mKHt9LGUuYXR0cmlidXRlcyk7ci5jcmF3bChsLChmdW5jdGlvbih0LGUscixuLGkpe2QocyxpKS5zZXQodm9pZCAwKSx2b2lkIDA9PT10JiZkKGwsaSkuc2V0KHZvaWQgMCl9KSksZihvLHMpLG4udHJhY2VJcyh0LCJub09wYWNpdHkiKSYmZGVsZXRlIG8ub3BhY2l0eTtuLnRyYWNlSXModCwic2hvd0xlZ2VuZCIpfHwoZGVsZXRlIG8uc2hvd2xlZ2VuZCxkZWxldGUgby5sZWdlbmRncm91cCk7bi50cmFjZUlzKHQsIm5vSG92ZXIiKSYmKGRlbGV0ZSBvLmhvdmVyaW5mbyxkZWxldGUgby5ob3ZlcmxhYmVsKTtlLnNlbGVjdFBvaW50c3x8ZGVsZXRlIG8uc2VsZWN0ZWRwb2ludHM7ZihvLGwpLGkuYXR0cmlidXRlcyYmZihvLGkuYXR0cmlidXRlcyk7by50eXBlPXQ7dmFyIGM9e21ldGE6ZS5tZXRhfHx7fSxjYXRlZ29yaWVzOmUuY2F0ZWdvcmllc3x8e30sYW5pbWF0YWJsZTpCb29sZWFuKGUuYW5pbWF0YWJsZSksdHlwZTp0LGF0dHJpYnV0ZXM6XyhvKX07aWYoZS5sYXlvdXRBdHRyaWJ1dGVzKXt2YXIgdT17fTtmKHUsZS5sYXlvdXRBdHRyaWJ1dGVzKSxjLmxheW91dEF0dHJpYnV0ZXM9Xyh1KX1lLmFuaW1hdGFibGV8fHIuY3Jhd2woYywoZnVuY3Rpb24odCl7ci5pc1ZhbE9iamVjdCh0KSYmImFuaW0iaW4gdCYmZGVsZXRlIHQuYW5pbX0pKTtyZXR1cm4gY30oZSl9KSk7dmFyIGU9e307cmV0dXJuIE9iamVjdC5rZXlzKG4udHJhbnNmb3Jtc1JlZ2lzdHJ5KS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPWZ1bmN0aW9uKHQpe3ZhciBlPW4udHJhbnNmb3Jtc1JlZ2lzdHJ5W3RdLHI9Zih7fSxlLmF0dHJpYnV0ZXMpO3JldHVybiBPYmplY3Qua2V5cyhuLmNvbXBvbmVudHNSZWdpc3RyeSkuZm9yRWFjaCgoZnVuY3Rpb24oZSl7dmFyIGk9bi5jb21wb25lbnRzUmVnaXN0cnlbZV07aS5zY2hlbWEmJmkuc2NoZW1hLnRyYW5zZm9ybXMmJmkuc2NoZW1hLnRyYW5zZm9ybXNbdF0mJk9iamVjdC5rZXlzKGkuc2NoZW1hLnRyYW5zZm9ybXNbdF0pLmZvckVhY2goKGZ1bmN0aW9uKGUpe1QocixpLnNjaGVtYS50cmFuc2Zvcm1zW3RdW2VdLGUpfSkpfSkpLHthdHRyaWJ1dGVzOl8ocil9fSh0KX0pKSx7ZGVmczp7dmFsT2JqZWN0czptLG1ldGFLZXlzOmcuY29uY2F0KFsiZGVzY3JpcHRpb24iLCJyb2xlIiwiZWRpdFR5cGUiLCJpbXBsaWVkRWRpdHMiXSksZWRpdFR5cGU6e3RyYWNlczp1LnRyYWNlcyxsYXlvdXQ6dS5sYXlvdXR9LGltcGxpZWRFZGl0czp7fX0sdHJhY2VzOnQsbGF5b3V0OngoKSx0cmFuc2Zvcm1zOmUsZnJhbWVzOmIoKSxhbmltYXRpb246XyhsKSxjb25maWc6XyhjKX19LHIuY3Jhd2w9ZnVuY3Rpb24odCxlLG4saSl7dmFyIGE9bnx8MDtpPWl8fCIiLE9iamVjdC5rZXlzKHQpLmZvckVhY2goKGZ1bmN0aW9uKG4pe3ZhciBvPXRbbl07aWYoLTE9PT1nLmluZGV4T2Yobikpe3ZhciBzPShpP2krIi4iOiIiKStuO2UobyxuLHQsYSxzKSxyLmlzVmFsT2JqZWN0KG8pfHxoKG8pJiYiaW1wbGllZEVkaXRzIiE9PW4mJnIuY3Jhd2wobyxlLGErMSxzKX19KSl9LHIuaXNWYWxPYmplY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIHQmJnZvaWQgMCE9PXQudmFsVHlwZX0sci5maW5kQXJyYXlBdHRyaWJ1dGVzPWZ1bmN0aW9uKHQpe3ZhciBlLG4saT1bXSxvPVtdLHM9W107ZnVuY3Rpb24gbCh0LHIsYSxsKXtvPW8uc2xpY2UoMCxsKS5jb25jYXQoW3JdKSxzPXMuc2xpY2UoMCxsKS5jb25jYXQoW3QmJnQuX2lzTGlua2VkVG9BcnJheV0pLHQmJigiZGF0YV9hcnJheSI9PT10LnZhbFR5cGV8fCEwPT09dC5hcnJheU9rKSYmISgiY29sb3JiYXIiPT09b1tsLTFdJiYoInRpY2t0ZXh0Ij09PXJ8fCJ0aWNrdmFscyI9PT1yKSkmJmZ1bmN0aW9uIHQoZSxyLGEpe3ZhciBsPWVbb1tyXV0sYz1hK29bcl07aWYocj09PW8ubGVuZ3RoLTEpcChsKSYmaS5wdXNoKG4rYyk7ZWxzZSBpZihzW3JdKXtpZihBcnJheS5pc0FycmF5KGwpKWZvcih2YXIgdT0wO3U8bC5sZW5ndGg7dSsrKWgobFt1XSkmJnQobFt1XSxyKzEsYysiWyIrdSsiXS4iKX1lbHNlIGgobCkmJnQobCxyKzEsYysiLiIpfShlLDAsIiIpfWU9dCxuPSIiLHIuY3Jhd2woYSxsKSx0Ll9tb2R1bGUmJnQuX21vZHVsZS5hdHRyaWJ1dGVzJiZyLmNyYXdsKHQuX21vZHVsZS5hdHRyaWJ1dGVzLGwpO3ZhciBjPXQudHJhbnNmb3JtcztpZihjKWZvcih2YXIgdT0wO3U8Yy5sZW5ndGg7dSsrKXt2YXIgZj1jW3VdLGQ9Zi5fbW9kdWxlO2QmJihuPSJ0cmFuc2Zvcm1zWyIrdSsiXS4iLGU9ZixyLmNyYXdsKGQuYXR0cmlidXRlcyxsKSl9cmV0dXJuIGl9LHIuZ2V0VHJhY2VWYWxPYmplY3Q9ZnVuY3Rpb24odCxlKXt2YXIgcixpLG89ZVswXSxzPTE7aWYoInRyYW5zZm9ybXMiPT09byl7aWYoMT09PWUubGVuZ3RoKXJldHVybiBhLnRyYW5zZm9ybXM7dmFyIGw9dC50cmFuc2Zvcm1zO2lmKCFBcnJheS5pc0FycmF5KGwpfHwhbC5sZW5ndGgpcmV0dXJuITE7dmFyIGM9ZVsxXTtpZigheShjKXx8Yz49bC5sZW5ndGgpcmV0dXJuITE7aT0ocj0obi50cmFuc2Zvcm1zUmVnaXN0cnlbbFtjXS50eXBlXXx8e30pLmF0dHJpYnV0ZXMpJiZyW2VbMl1dLHM9M31lbHNle3ZhciB1PXQuX21vZHVsZTtpZih1fHwodT0obi5tb2R1bGVzW3QudHlwZXx8YS50eXBlLmRmbHRdfHx7fSkuX21vZHVsZSksIXUpcmV0dXJuITE7aWYoIShpPShyPXUuYXR0cmlidXRlcykmJnJbb10pKXt2YXIgZj11LmJhc2VQbG90TW9kdWxlO2YmJmYuYXR0cmlidXRlcyYmKGk9Zi5hdHRyaWJ1dGVzW29dKX1pfHwoaT1hW29dKX1yZXR1cm4gdihpLGUscyl9LHIuZ2V0TGF5b3V0VmFsT2JqZWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHYoZnVuY3Rpb24odCxlKXt2YXIgcixpLGEscyxsPXQuX2Jhc2VQbG90TW9kdWxlcztpZihsKXt2YXIgYztmb3Iocj0wO3I8bC5sZW5ndGg7cisrKXtpZigoYT1sW3JdKS5hdHRyUmVnZXgmJmEuYXR0clJlZ2V4LnRlc3QoZSkpe2lmKGEubGF5b3V0QXR0ck92ZXJyaWRlcylyZXR1cm4gYS5sYXlvdXRBdHRyT3ZlcnJpZGVzOyFjJiZhLmxheW91dEF0dHJpYnV0ZXMmJihjPWEubGF5b3V0QXR0cmlidXRlcyl9dmFyIHU9YS5iYXNlTGF5b3V0QXR0ck92ZXJyaWRlcztpZih1JiZlIGluIHUpcmV0dXJuIHVbZV19aWYoYylyZXR1cm4gY312YXIgZj10Ll9tb2R1bGVzO2lmKGYpZm9yKHI9MDtyPGYubGVuZ3RoO3IrKylpZigocz1mW3JdLmxheW91dEF0dHJpYnV0ZXMpJiZlIGluIHMpcmV0dXJuIHNbZV07Zm9yKGkgaW4gbi5jb21wb25lbnRzUmVnaXN0cnkpe2lmKCJjb2xvcnNjYWxlIj09PShhPW4uY29tcG9uZW50c1JlZ2lzdHJ5W2ldKS5uYW1lJiYwPT09ZS5pbmRleE9mKCJjb2xvcmF4aXMiKSlyZXR1cm4gYS5sYXlvdXRBdHRyaWJ1dGVzW2VdO2lmKCFhLnNjaGVtYSYmZT09PWEubmFtZSlyZXR1cm4gYS5sYXlvdXRBdHRyaWJ1dGVzfXJldHVybiBlIGluIG8mJm9bZV19KHQsZVswXSksZSwxKX19LHsiLi4vbGliIjo3NzYsIi4uL3Bsb3RzL2FuaW1hdGlvbl9hdHRyaWJ1dGVzIjo4MjEsIi4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vcGxvdHMvZnJhbWVfYXR0cmlidXRlcyI6ODU3LCIuLi9wbG90cy9sYXlvdXRfYXR0cmlidXRlcyI6ODgxLCIuLi9yZWdpc3RyeSI6OTA0LCIuL2VkaXRfdHlwZXMiOjgwOSwiLi9wbG90X2NvbmZpZyI6ODE0fV0sODE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYiIpLGk9dCgiLi4vcGxvdHMvYXR0cmlidXRlcyIpLGE9e25hbWU6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6Im5vbmUifX07ZnVuY3Rpb24gbyh0KXtyZXR1cm4gdCYmInN0cmluZyI9PXR5cGVvZiB0fWZ1bmN0aW9uIHModCl7dmFyIGU9dC5sZW5ndGgtMTtyZXR1cm4icyIhPT10LmNoYXJBdChlKSYmbi53YXJuKCJiYWQgYXJndW1lbnQgdG8gYXJyYXlEZWZhdWx0S2V5OiAiK3QpLHQuc3Vic3RyKDAsdC5sZW5ndGgtMSkrImRlZmF1bHRzIn1hLnRlbXBsYXRlaXRlbW5hbWU9e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSxyLnRlbXBsYXRlZEFycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUuX2lzTGlua2VkVG9BcnJheT10LGUubmFtZT1hLm5hbWUsZS50ZW1wbGF0ZWl0ZW1uYW1lPWEudGVtcGxhdGVpdGVtbmFtZSxlfSxyLnRyYWNlVGVtcGxhdGVyPWZ1bmN0aW9uKHQpe3ZhciBlLHIsYT17fTtmb3IoZSBpbiB0KXI9dFtlXSxBcnJheS5pc0FycmF5KHIpJiZyLmxlbmd0aCYmKGFbZV09MCk7cmV0dXJue25ld1RyYWNlOmZ1bmN0aW9uKG8pe3ZhciBzPXt0eXBlOmU9bi5jb2VyY2Uobyx7fSxpLCJ0eXBlIiksX3RlbXBsYXRlOm51bGx9O2lmKGUgaW4gYSl7cj10W2VdO3ZhciBsPWFbZV0lci5sZW5ndGg7YVtlXSsrLHMuX3RlbXBsYXRlPXJbbF19cmV0dXJuIHN9fX0sci5uZXdDb250YWluZXI9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXQuX3RlbXBsYXRlLGE9aSYmKGlbZV18fHImJmlbcl0pO3JldHVybiBuLmlzUGxhaW5PYmplY3QoYSl8fChhPW51bGwpLHRbZV09e190ZW1wbGF0ZTphfX0sci5hcnJheVRlbXBsYXRlcj1mdW5jdGlvbih0LGUscil7dmFyIG49dC5fdGVtcGxhdGUsaT1uJiZuW3MoZSldLGE9biYmbltlXTtBcnJheS5pc0FycmF5KGEpJiZhLmxlbmd0aHx8KGE9W10pO3ZhciBsPXt9O3JldHVybntuZXdJdGVtOmZ1bmN0aW9uKHQpe3ZhciBlPXtuYW1lOnQubmFtZSxfaW5wdXQ6dH0sbj1lLnRlbXBsYXRlaXRlbW5hbWU9dC50ZW1wbGF0ZWl0ZW1uYW1lO2lmKCFvKG4pKXJldHVybiBlLl90ZW1wbGF0ZT1pLGU7Zm9yKHZhciBzPTA7czxhLmxlbmd0aDtzKyspe3ZhciBjPWFbc107aWYoYy5uYW1lPT09bilyZXR1cm4gbFtuXT0xLGUuX3RlbXBsYXRlPWMsZX1yZXR1cm4gZVtyXT10W3JdfHwhMSxlLl90ZW1wbGF0ZT0hMSxlfSxkZWZhdWx0SXRlbXM6ZnVuY3Rpb24oKXtmb3IodmFyIHQ9W10sZT0wO2U8YS5sZW5ndGg7ZSsrKXt2YXIgcj1hW2VdLG49ci5uYW1lO2lmKG8obikmJiFsW25dKXt2YXIgaT17X3RlbXBsYXRlOnIsbmFtZTpuLF9pbnB1dDp7X3RlbXBsYXRlaXRlbW5hbWU6bn19O2kudGVtcGxhdGVpdGVtbmFtZT1yLnRlbXBsYXRlaXRlbW5hbWUsdC5wdXNoKGkpLGxbbl09MX19cmV0dXJuIHR9fX0sci5hcnJheURlZmF1bHRLZXk9cyxyLmFycmF5RWRpdG9yPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT0obi5uZXN0ZWRQcm9wZXJ0eSh0LGUpLmdldCgpfHxbXSkubGVuZ3RoLGE9ci5faW5kZXgsbz1hPj1pJiYoci5faW5wdXR8fHt9KS5fdGVtcGxhdGVpdGVtbmFtZTtvJiYoYT1pKTt2YXIgcyxsPWUrIlsiK2ErIl0iO2Z1bmN0aW9uIGMoKXtzPXt9LG8mJihzW2xdPXt9LHNbbF0udGVtcGxhdGVpdGVtbmFtZT1vKX1mdW5jdGlvbiB1KHQsZSl7bz9uLm5lc3RlZFByb3BlcnR5KHNbbF0sdCkuc2V0KGUpOnNbbCsiLiIrdF09ZX1mdW5jdGlvbiBmKCl7dmFyIHQ9cztyZXR1cm4gYygpLHR9cmV0dXJuIGMoKSx7bW9kaWZ5QmFzZTpmdW5jdGlvbih0LGUpe3NbdF09ZX0sbW9kaWZ5SXRlbTp1LGdldFVwZGF0ZU9iajpmLGFwcGx5VXBkYXRlOmZ1bmN0aW9uKGUscil7ZSYmdShlLHIpO3ZhciBpPWYoKTtmb3IodmFyIGEgaW4gaSluLm5lc3RlZFByb3BlcnR5KHQsYSkuc2V0KGlbYV0pfX19fSx7Ii4uL2xpYiI6Nzc2LCIuLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjN9XSw4MTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vcmVnaXN0cnkiKSxhPXQoIi4uL3Bsb3RzL3Bsb3RzIiksbz10KCIuLi9saWIiKSxzPXQoIi4uL2xpYi9jbGVhcl9nbF9jYW52YXNlcyIpLGw9dCgiLi4vY29tcG9uZW50cy9jb2xvciIpLGM9dCgiLi4vY29tcG9uZW50cy9kcmF3aW5nIiksdT10KCIuLi9jb21wb25lbnRzL3RpdGxlcyIpLGY9dCgiLi4vY29tcG9uZW50cy9tb2RlYmFyIiksaD10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLHA9dCgiLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLGQ9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIiksbT1kLmVuZm9yY2UsZz1kLmNsZWFuLHY9dCgiLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSIpLmRvQXV0b1JhbmdlO2Z1bmN0aW9uIHkodCxlLHIpe2Zvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXt2YXIgaT1yW25dWzBdLGE9cltuXVsxXTtpZighKGlbMF0+PXRbMV18fGlbMV08PXRbMF0pJiYoYVswXTxlWzFdJiZhWzFdPmVbMF0pKXJldHVybiEwfXJldHVybiExfWZ1bmN0aW9uIHgodCl7dmFyIGUsaSxzLHUsZCxtLGc9dC5fZnVsbExheW91dCx2PWcuX3NpemUseD12LnAsXz1oLmxpc3QodCwiIiwhMCk7aWYoZy5fcGFwZXJkaXYuc3R5bGUoe3dpZHRoOnQuX2NvbnRleHQucmVzcG9uc2l2ZSYmZy5hdXRvc2l6ZSYmIXQuX2NvbnRleHQuX2hhc1plcm9XaWR0aCYmIXQubGF5b3V0LndpZHRoPyIxMDAlIjpnLndpZHRoKyJweCIsaGVpZ2h0OnQuX2NvbnRleHQucmVzcG9uc2l2ZSYmZy5hdXRvc2l6ZSYmIXQuX2NvbnRleHQuX2hhc1plcm9IZWlnaHQmJiF0LmxheW91dC5oZWlnaHQ/IjEwMCUiOmcuaGVpZ2h0KyJweCJ9KS5zZWxlY3RBbGwoIi5tYWluLXN2ZyIpLmNhbGwoYy5zZXRTaXplLGcud2lkdGgsZy5oZWlnaHQpLHQuX2NvbnRleHQuc2V0QmFja2dyb3VuZCh0LGcucGFwZXJfYmdjb2xvciksci5kcmF3TWFpblRpdGxlKHQpLGYubWFuYWdlKHQpLCFnLl9oYXMoImNhcnRlc2lhbiIpKXJldHVybiBhLnByZXZpb3VzUHJvbWlzZXModCk7ZnVuY3Rpb24gVCh0LGUscil7dmFyIG49dC5fbHcvMjtyZXR1cm4ieCI9PT10Ll9pZC5jaGFyQXQoMCk/ZT8idG9wIj09PXI/ZS5fb2Zmc2V0LXgtbjplLl9vZmZzZXQrZS5fbGVuZ3RoK3grbjp2LnQrdi5oKigxLSh0LnBvc2l0aW9ufHwwKSkrbiUxOmU/InJpZ2h0Ij09PXI/ZS5fb2Zmc2V0K2UuX2xlbmd0aCt4K246ZS5fb2Zmc2V0LXgtbjp2Lmwrdi53Kih0LnBvc2l0aW9ufHwwKStuJTF9Zm9yKGU9MDtlPF8ubGVuZ3RoO2UrKyl7dmFyIGs9KHU9X1tlXSkuX2FuY2hvckF4aXM7dS5fbGluZXBvc2l0aW9ucz17fSx1Ll9sdz1jLmNyaXNwUm91bmQodCx1LmxpbmV3aWR0aCwxKSx1Ll9tYWluTGluZVBvc2l0aW9uPVQodSxrLHUuc2lkZSksdS5fbWFpbk1pcnJvclBvc2l0aW9uPXUubWlycm9yJiZrP1QodSxrLHAuT1BQT1NJVEVfU0lERVt1LnNpZGVdKTpudWxsfXZhciBBPVtdLE09W10sUz1bXSxFPTE9PT1sLm9wYWNpdHkoZy5wYXBlcl9iZ2NvbG9yKSYmMT09PWwub3BhY2l0eShnLnBsb3RfYmdjb2xvcikmJmcucGFwZXJfYmdjb2xvcj09PWcucGxvdF9iZ2NvbG9yO2ZvcihpIGluIGcuX3Bsb3RzKWlmKChzPWcuX3Bsb3RzW2ldKS5tYWlucGxvdClzLmJnJiZzLmJnLnJlbW92ZSgpLHMuYmc9dm9pZCAwO2Vsc2V7dmFyIEw9cy54YXhpcy5kb21haW4sQz1zLnlheGlzLmRvbWFpbixQPXMucGxvdGdyb3VwO2lmKHkoTCxDLFMpKXt2YXIgST1QLm5vZGUoKSxPPXMuYmc9by5lbnN1cmVTaW5nbGUoUCwicmVjdCIsImJnIik7SS5pbnNlcnRCZWZvcmUoTy5ub2RlKCksSS5jaGlsZE5vZGVzWzBdKSxNLnB1c2goaSl9ZWxzZSBQLnNlbGVjdCgicmVjdC5iZyIpLnJlbW92ZSgpLFMucHVzaChbTCxDXSksRXx8KEEucHVzaChpKSxNLnB1c2goaSkpfXZhciB6LEQsUixGLEIsTixqLFUsVixILHEsRyxZLFc9Zy5fYmdMYXllci5zZWxlY3RBbGwoIi5iZyIpLmRhdGEoQSk7Zm9yKFcuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKCJiZyIsITApLFcuZXhpdCgpLnJlbW92ZSgpLFcuZWFjaCgoZnVuY3Rpb24odCl7Zy5fcGxvdHNbdF0uYmc9bi5zZWxlY3QodGhpcyl9KSksZT0wO2U8TS5sZW5ndGg7ZSsrKXM9Zy5fcGxvdHNbTVtlXV0sZD1zLnhheGlzLG09cy55YXhpcyxzLmJnJiZ2b2lkIDAhPT1kLl9vZmZzZXQmJnZvaWQgMCE9PW0uX29mZnNldCYmcy5iZy5jYWxsKGMuc2V0UmVjdCxkLl9vZmZzZXQteCxtLl9vZmZzZXQteCxkLl9sZW5ndGgrMip4LG0uX2xlbmd0aCsyKngpLmNhbGwobC5maWxsLGcucGxvdF9iZ2NvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwwKTtpZighZy5faGFzT25seUxhcmdlU3Bsb21zKWZvcihpIGluIGcuX3Bsb3RzKXtzPWcuX3Bsb3RzW2ldLGQ9cy54YXhpcyxtPXMueWF4aXM7dmFyIFgsWixKPXMuY2xpcElkPSJjbGlwIitnLl91aWQraSsicGxvdCIsSz1vLmVuc3VyZVNpbmdsZUJ5SWQoZy5fY2xpcHMsImNsaXBQYXRoIixKLChmdW5jdGlvbih0KXt0LmNsYXNzZWQoInBsb3RjbGlwIiwhMCkuYXBwZW5kKCJyZWN0Iil9KSk7cy5jbGlwUmVjdD1LLnNlbGVjdCgicmVjdCIpLmF0dHIoe3dpZHRoOmQuX2xlbmd0aCxoZWlnaHQ6bS5fbGVuZ3RofSksYy5zZXRUcmFuc2xhdGUocy5wbG90LGQuX29mZnNldCxtLl9vZmZzZXQpLHMuX2hhc0NsaXBPbkF4aXNGYWxzZT8oWD1udWxsLFo9Sik6KFg9SixaPW51bGwpLGMuc2V0Q2xpcFVybChzLnBsb3QsWCx0KSxzLmxheWVyQ2xpcElkPVp9ZnVuY3Rpb24gUSh0KXtyZXR1cm4iTSIreisiLCIrdCsiSCIrRH1mdW5jdGlvbiAkKHQpe3JldHVybiJNIitkLl9vZmZzZXQrIiwiK3QrImgiK2QuX2xlbmd0aH1mdW5jdGlvbiB0dCh0KXtyZXR1cm4iTSIrdCsiLCIrVSsiViIran1mdW5jdGlvbiBldCh0KXtyZXR1cm4iTSIrdCsiLCIrbS5fb2Zmc2V0KyJ2IittLl9sZW5ndGh9ZnVuY3Rpb24gcnQodCxlLHIpe2lmKCF0LnNob3dsaW5lfHxpIT09dC5fbWFpblN1YnBsb3QpcmV0dXJuIiI7aWYoIXQuX2FuY2hvckF4aXMpcmV0dXJuIHIodC5fbWFpbkxpbmVQb3NpdGlvbik7dmFyIG49ZSh0Ll9tYWluTGluZVBvc2l0aW9uKTtyZXR1cm4gdC5taXJyb3ImJihuKz1lKHQuX21haW5NaXJyb3JQb3NpdGlvbikpLG59Zm9yKGkgaW4gZy5fcGxvdHMpe3M9Zy5fcGxvdHNbaV0sZD1zLnhheGlzLG09cy55YXhpczt2YXIgbnQ9Ik0wLDAiO2IoZCxpKSYmKEI9dyhkLCJsZWZ0IixtLF8pLHo9ZC5fb2Zmc2V0LShCP3grQjowKSxOPXcoZCwicmlnaHQiLG0sXyksRD1kLl9vZmZzZXQrZC5fbGVuZ3RoKyhOP3grTjowKSxSPVQoZCxtLCJib3R0b20iKSxGPVQoZCxtLCJ0b3AiKSwhKFk9IWQuX2FuY2hvckF4aXN8fGkhPT1kLl9tYWluU3VicGxvdCl8fCJhbGx0aWNrcyIhPT1kLm1pcnJvciYmImFsbCIhPT1kLm1pcnJvcnx8KGQuX2xpbmVwb3NpdGlvbnNbaV09W1IsRl0pLG50PXJ0KGQsUSwkKSxZJiZkLnNob3dsaW5lJiYoImFsbCI9PT1kLm1pcnJvcnx8ImFsbHRpY2tzIj09PWQubWlycm9yKSYmKG50Kz1RKFIpK1EoRikpLHMueGxpbmVzLnN0eWxlKCJzdHJva2Utd2lkdGgiLGQuX2x3KyJweCIpLmNhbGwobC5zdHJva2UsZC5zaG93bGluZT9kLmxpbmVjb2xvcjoicmdiYSgwLDAsMCwwKSIpKSxzLnhsaW5lcy5hdHRyKCJkIixudCk7dmFyIGl0PSJNMCwwIjtiKG0saSkmJihxPXcobSwiYm90dG9tIixkLF8pLGo9bS5fb2Zmc2V0K20uX2xlbmd0aCsocT94OjApLEc9dyhtLCJ0b3AiLGQsXyksVT1tLl9vZmZzZXQtKEc/eDowKSxWPVQobSxkLCJsZWZ0IiksSD1UKG0sZCwicmlnaHQiKSwhKFk9IW0uX2FuY2hvckF4aXN8fGkhPT1tLl9tYWluU3VicGxvdCl8fCJhbGx0aWNrcyIhPT1tLm1pcnJvciYmImFsbCIhPT1tLm1pcnJvcnx8KG0uX2xpbmVwb3NpdGlvbnNbaV09W1YsSF0pLGl0PXJ0KG0sdHQsZXQpLFkmJm0uc2hvd2xpbmUmJigiYWxsIj09PW0ubWlycm9yfHwiYWxsdGlja3MiPT09bS5taXJyb3IpJiYoaXQrPXR0KFYpK3R0KEgpKSxzLnlsaW5lcy5zdHlsZSgic3Ryb2tlLXdpZHRoIixtLl9sdysicHgiKS5jYWxsKGwuc3Ryb2tlLG0uc2hvd2xpbmU/bS5saW5lY29sb3I6InJnYmEoMCwwLDAsMCkiKSkscy55bGluZXMuYXR0cigiZCIsaXQpfXJldHVybiBoLm1ha2VDbGlwUGF0aHModCksYS5wcmV2aW91c1Byb21pc2VzKHQpfWZ1bmN0aW9uIGIodCxlKXtyZXR1cm4odC50aWNrc3x8dC5zaG93bGluZSkmJihlPT09dC5fbWFpblN1YnBsb3R8fCJhbGwiPT09dC5taXJyb3J8fCJhbGx0aWNrcyI9PT10Lm1pcnJvcil9ZnVuY3Rpb24gXyh0LGUscil7aWYoIXIuc2hvd2xpbmV8fCFyLl9sdylyZXR1cm4hMTtpZigiYWxsIj09PXIubWlycm9yfHwiYWxsdGlja3MiPT09ci5taXJyb3IpcmV0dXJuITA7dmFyIG49ci5fYW5jaG9yQXhpcztpZighbilyZXR1cm4hMTt2YXIgaT1wLkZST01fQkxbZV07cmV0dXJuIHIuc2lkZT09PWU/bi5kb21haW5baV09PT10LmRvbWFpbltpXTpyLm1pcnJvciYmbi5kb21haW5bMS1pXT09PXQuZG9tYWluWzEtaV19ZnVuY3Rpb24gdyh0LGUscixuKXtpZihfKHQsZSxyKSlyZXR1cm4gci5fbHc7Zm9yKHZhciBpPTA7aTxuLmxlbmd0aDtpKyspe3ZhciBhPW5baV07aWYoYS5fbWFpbkF4aXM9PT1yLl9tYWluQXhpcyYmXyh0LGUsYSkpcmV0dXJuIGEuX2x3fXJldHVybiAwfWZ1bmN0aW9uIFQodCxlKXt2YXIgcj10LnRpdGxlLG49dC5fc2l6ZSxpPTA7c3dpdGNoKCJzdGFydCI9PT1lP2k9ci5wYWQubDoiZW5kIj09PWUmJihpPS1yLnBhZC5yKSxyLnhyZWYpe2Nhc2UicGFwZXIiOnJldHVybiBuLmwrbi53KnIueCtpO2Nhc2UiY29udGFpbmVyIjpkZWZhdWx0OnJldHVybiB0LndpZHRoKnIueCtpfX1mdW5jdGlvbiBrKHQsZSl7dmFyIHI9dC50aXRsZSxuPXQuX3NpemUsaT0wO2lmKCIwZW0iIT09ZSYmZT9lPT09cC5DQVBfU0hJRlQrImVtIiYmKGk9ci5wYWQudCk6aT0tci5wYWQuYiwiYXV0byI9PT1yLnkpcmV0dXJuIG4udC8yO3N3aXRjaChyLnlyZWYpe2Nhc2UicGFwZXIiOnJldHVybiBuLnQrbi5oLW4uaCpyLnkraTtjYXNlImNvbnRhaW5lciI6ZGVmYXVsdDpyZXR1cm4gdC5oZWlnaHQtdC5oZWlnaHQqci55K2l9fXIubGF5b3V0U3R5bGVzPWZ1bmN0aW9uKHQpe3JldHVybiBvLnN5bmNPckFzeW5jKFthLmRvQXV0b01hcmdpbix4XSx0KX0sci5kcmF3TWFpblRpdGxlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQscj1mdW5jdGlvbih0KXt2YXIgZT10LnRpdGxlLHI9Im1pZGRsZSI7by5pc1JpZ2h0QW5jaG9yKGUpP3I9ImVuZCI6by5pc0xlZnRBbmNob3IoZSkmJihyPSJzdGFydCIpO3JldHVybiByfShlKSxuPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGl0bGUscj0iMGVtIjtvLmlzVG9wQW5jaG9yKGUpP3I9cC5DQVBfU0hJRlQrImVtIjpvLmlzTWlkZGxlQW5jaG9yKGUpJiYocj1wLk1JRF9TSElGVCsiZW0iKTtyZXR1cm4gcn0oZSk7dS5kcmF3KHQsImd0aXRsZSIse3Byb3BDb250YWluZXI6ZSxwcm9wTmFtZToidGl0bGUudGV4dCIscGxhY2Vob2xkZXI6ZS5fZGZsdFRpdGxlLnBsb3QsYXR0cmlidXRlczp7eDpUKGUscikseTprKGUsbiksInRleHQtYW5jaG9yIjpyLGR5Om59fSl9LHIuZG9UcmFjZVN0eWxlPWZ1bmN0aW9uKHQpe3ZhciBlLG49dC5jYWxjZGF0YSxvPVtdO2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspe3ZhciBsPW5bZV0sYz1sWzBdfHx7fSx1PWMudHJhY2V8fHt9LGY9dS5fbW9kdWxlfHx7fSxoPWYuYXJyYXlzVG9DYWxjZGF0YTtoJiZoKGwsdSk7dmFyIHA9Zi5lZGl0U3R5bGU7cCYmby5wdXNoKHtmbjpwLGNkMDpjfSl9aWYoby5sZW5ndGgpe2ZvcihlPTA7ZTxvLmxlbmd0aDtlKyspe3ZhciBkPW9bZV07ZC5mbih0LGQuY2QwKX1zKHQpLHIucmVkcmF3UmVnbFRyYWNlcyh0KX1yZXR1cm4gYS5zdHlsZSh0KSxpLmdldENvbXBvbmVudE1ldGhvZCgibGVnZW5kIiwiZHJhdyIpKHQpLGEucHJldmlvdXNQcm9taXNlcyh0KX0sci5kb0NvbG9yQmFycz1mdW5jdGlvbih0KXtyZXR1cm4gaS5nZXRDb21wb25lbnRNZXRob2QoImNvbG9yYmFyIiwiZHJhdyIpKHQpLGEucHJldmlvdXNQcm9taXNlcyh0KX0sci5sYXlvdXRSZXBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9dC5sYXlvdXQ7cmV0dXJuIHQubGF5b3V0PXZvaWQgMCxpLmNhbGwoIl9kb1Bsb3QiLHQsIiIsZSl9LHIuZG9MZWdlbmQ9ZnVuY3Rpb24odCl7cmV0dXJuIGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJsZWdlbmQiLCJkcmF3IikodCksYS5wcmV2aW91c1Byb21pc2VzKHQpfSxyLmRvVGlja3NSZWxheW91dD1mdW5jdGlvbih0KXtyZXR1cm4gaC5kcmF3KHQsInJlZHJhdyIpLHQuX2Z1bGxMYXlvdXQuX2hhc09ubHlMYXJnZVNwbG9tcyYmKGkuc3VicGxvdHNSZWdpc3RyeS5zcGxvbS51cGRhdGVHcmlkKHQpLHModCksci5yZWRyYXdSZWdsVHJhY2VzKHQpKSxyLmRyYXdNYWluVGl0bGUodCksYS5wcmV2aW91c1Byb21pc2VzKHQpfSxyLmRvTW9kZUJhcj1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0O2YubWFuYWdlKHQpO2Zvcih2YXIgcj0wO3I8ZS5fYmFzZVBsb3RNb2R1bGVzLmxlbmd0aDtyKyspe3ZhciBuPWUuX2Jhc2VQbG90TW9kdWxlc1tyXS51cGRhdGVGeDtuJiZuKHQpfXJldHVybiBhLnByZXZpb3VzUHJvbWlzZXModCl9LHIuZG9DYW1lcmE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5nbDNkLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9ZVtyW25dXTtpLl9zY2VuZS5zZXRWaWV3cG9ydChpKX19LHIuZHJhd0RhdGE9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtzKHQpO2Zvcih2YXIgbj1lLl9iYXNlUGxvdE1vZHVsZXMsbz0wO288bi5sZW5ndGg7bysrKW5bb10ucGxvdCh0KTtyZXR1cm4gci5yZWRyYXdSZWdsVHJhY2VzKHQpLGEuc3R5bGUodCksaS5nZXRDb21wb25lbnRNZXRob2QoInNoYXBlcyIsImRyYXciKSh0KSxpLmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMiLCJkcmF3IikodCksaS5nZXRDb21wb25lbnRNZXRob2QoImltYWdlcyIsImRyYXciKSh0KSxlLl9yZXBsb3R0aW5nPSExLGEucHJldmlvdXNQcm9taXNlcyh0KX0sci5yZWRyYXdSZWdsVHJhY2VzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQ7aWYoZS5faGFzKCJyZWdsIikpe3ZhciByLG4saT10Ll9mdWxsRGF0YSxhPVtdLHM9W107Zm9yKGUuX2hhc09ubHlMYXJnZVNwbG9tcyYmZS5fc3Bsb21HcmlkLmRyYXcoKSxyPTA7cjxpLmxlbmd0aDtyKyspe3ZhciBsPWlbcl07ITA9PT1sLnZpc2libGUmJjAhPT1sLl9sZW5ndGgmJigic3Bsb20iPT09bC50eXBlP2UuX3NwbG9tU2NlbmVzW2wudWlkXS5kcmF3KCk6InNjYXR0ZXJnbCI9PT1sLnR5cGU/by5wdXNoVW5pcXVlKGEsbC54YXhpcytsLnlheGlzKToic2NhdHRlcnBvbGFyZ2wiPT09bC50eXBlJiZvLnB1c2hVbmlxdWUocyxsLnN1YnBsb3QpKX1mb3Iocj0wO3I8YS5sZW5ndGg7cisrKShuPWUuX3Bsb3RzW2Fbcl1dKS5fc2NlbmUmJm4uX3NjZW5lLmRyYXcoKTtmb3Iocj0wO3I8cy5sZW5ndGg7cisrKShuPWVbc1tyXV0uX3N1YnBsb3QpLl9zY2VuZSYmbi5fc2NlbmUuZHJhdygpfX0sci5kb0F1dG9SYW5nZUFuZENvbnN0cmFpbnRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZSxyPWgubGlzdCh0LCIiLCEwKSxuPXt9LGk9MDtpPHIubGVuZ3RoO2krKylpZighblsoZT1yW2ldKS5faWRdKXtuW2UuX2lkXT0xLGcodCxlKSx2KHQsZSk7dmFyIGE9ZS5fbWF0Y2hHcm91cDtpZihhKWZvcih2YXIgbyBpbiBhKXt2YXIgcz1oLmdldEZyb21JZCh0LG8pO3YodCxzLGUucmFuZ2UpLG5bb109MX19bSh0KX0sci5maW5hbERyYXc9ZnVuY3Rpb24odCl7aS5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiZHJhdyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJyYW5nZXNlbGVjdG9yIiwiZHJhdyIpKHQpfSxyLmRyYXdNYXJnaW5QdXNoZXJzPWZ1bmN0aW9uKHQpe2kuZ2V0Q29tcG9uZW50TWV0aG9kKCJsZWdlbmQiLCJkcmF3IikodCksaS5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2VsZWN0b3IiLCJkcmF3IikodCksaS5nZXRDb21wb25lbnRNZXRob2QoInNsaWRlcnMiLCJkcmF3IikodCksaS5nZXRDb21wb25lbnRNZXRob2QoInVwZGF0ZW1lbnVzIiwiZHJhdyIpKHQpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJjb2xvcmJhciIsImRyYXciKSh0KX19LHsiLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vY29tcG9uZW50cy9tb2RlYmFyIjo3MDIsIi4uL2NvbXBvbmVudHMvdGl0bGVzIjo3MzcsIi4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjc0NCwiLi4vbGliIjo3NzYsIi4uL2xpYi9jbGVhcl9nbF9jYW52YXNlcyI6NzYwLCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo4MjYsIi4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdHJhaW50cyI6ODM1LCIuLi9wbG90cy9wbG90cyI6ODkwLCIuLi9yZWdpc3RyeSI6OTA0LCJAcGxvdGx5L2QzIjo1OH1dLDgxODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPW4uaXNQbGFpbk9iamVjdCxhPXQoIi4vcGxvdF9zY2hlbWEiKSxvPXQoIi4uL3Bsb3RzL3Bsb3RzIikscz10KCIuLi9wbG90cy9hdHRyaWJ1dGVzIiksbD10KCIuL3Bsb3RfdGVtcGxhdGUiKSxjPXQoIi4vcGxvdF9jb25maWciKS5kZmx0Q29uZmlnO2Z1bmN0aW9uIHUodCxlKXt0PW4uZXh0ZW5kRGVlcCh7fSx0KTt2YXIgcixhLG89T2JqZWN0LmtleXModCkuc29ydCgpO2Z1bmN0aW9uIHMoZSxyLG4pe2lmKGkocikmJmkoZSkpdShlLHIpO2Vsc2UgaWYoQXJyYXkuaXNBcnJheShyKSYmQXJyYXkuaXNBcnJheShlKSl7dmFyIG89bC5hcnJheVRlbXBsYXRlcih7X3RlbXBsYXRlOnR9LG4pO2ZvcihhPTA7YTxyLmxlbmd0aDthKyspe3ZhciBzPXJbYV0sYz1vLm5ld0l0ZW0ocykuX3RlbXBsYXRlO2MmJnUoYyxzKX12YXIgZj1vLmRlZmF1bHRJdGVtcygpO2ZvcihhPTA7YTxmLmxlbmd0aDthKyspci5wdXNoKGZbYV0uX3RlbXBsYXRlKTtmb3IoYT0wO2E8ci5sZW5ndGg7YSsrKWRlbGV0ZSByW2FdLnRlbXBsYXRlaXRlbW5hbWV9fWZvcihyPTA7cjxvLmxlbmd0aDtyKyspe3ZhciBjPW9bcl0saD10W2NdO2lmKGMgaW4gZT9zKGgsZVtjXSxjKTplW2NdPWgsZihjKT09PWMpZm9yKHZhciBwIGluIGUpe3ZhciBkPWYocCk7cD09PWR8fGQhPT1jfHxwIGluIHR8fHMoaCxlW3BdLGMpfX19ZnVuY3Rpb24gZih0KXtyZXR1cm4gdC5yZXBsYWNlKC9bMC05XSskLywiIil9ZnVuY3Rpb24gaCh0LGUscixhLG8pe3ZhciBzPW8mJnIobyk7Zm9yKHZhciBjIGluIHQpe3ZhciB1PXRbY10scD1tKHQsYyxhKSxkPW0odCxjLG8pLGc9cihkKTtpZighZyl7dmFyIHY9ZihjKTt2IT09YyYmKGc9cihkPW0odCx2LG8pKSl9aWYoKCFzfHxzIT09ZykmJiEoIWd8fGcuX25vVGVtcGxhdGluZ3x8ImRhdGFfYXJyYXkiPT09Zy52YWxUeXBlfHxnLmFycmF5T2smJkFycmF5LmlzQXJyYXkodSkpKWlmKCFnLnZhbFR5cGUmJmkodSkpaCh1LGUscixwLGQpO2Vsc2UgaWYoZy5faXNMaW5rZWRUb0FycmF5JiZBcnJheS5pc0FycmF5KHUpKWZvcih2YXIgeT0hMSx4PTAsYj17fSxfPTA7Xzx1Lmxlbmd0aDtfKyspe3ZhciB3PXVbX107aWYoaSh3KSl7dmFyIFQ9dy5uYW1lO2lmKFQpYltUXXx8KGgodyxlLHIsbSh1LHgscCksbSh1LHgsZCkpLHgrKyxiW1RdPTEpO2Vsc2UgaWYoIXkpe3ZhciBrPW0odCxsLmFycmF5RGVmYXVsdEtleShjKSxhKSxBPW0odSx4LHApO2godyxlLHIsQSxtKHUseCxkKSk7dmFyIE09bi5uZXN0ZWRQcm9wZXJ0eShlLEEpO24ubmVzdGVkUHJvcGVydHkoZSxrKS5zZXQoTS5nZXQoKSksTS5zZXQobnVsbCkseT0hMH19fWVsc2V7bi5uZXN0ZWRQcm9wZXJ0eShlLHApLnNldCh1KX19fWZ1bmN0aW9uIHAodCxlKXtyZXR1cm4gYS5nZXRMYXlvdXRWYWxPYmplY3QodCxuLm5lc3RlZFByb3BlcnR5KHt9LGUpLnBhcnRzKX1mdW5jdGlvbiBkKHQsZSl7cmV0dXJuIGEuZ2V0VHJhY2VWYWxPYmplY3QodCxuLm5lc3RlZFByb3BlcnR5KHt9LGUpLnBhcnRzKX1mdW5jdGlvbiBtKHQsZSxyKXtyZXR1cm4gcj9BcnJheS5pc0FycmF5KHQpP3IrIlsiK2UrIl0iOnIrIi4iK2U6ZX1mdW5jdGlvbiBnKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKWlmKGkodFtlXSkpcmV0dXJuITB9ZnVuY3Rpb24gdih0KXt2YXIgZTtzd2l0Y2godC5jb2RlKXtjYXNlImRhdGEiOmU9IlRoZSB0ZW1wbGF0ZSBoYXMgbm8ga2V5IGRhdGEuIjticmVhaztjYXNlImxheW91dCI6ZT0iVGhlIHRlbXBsYXRlIGhhcyBubyBrZXkgbGF5b3V0LiI7YnJlYWs7Y2FzZSJtaXNzaW5nIjplPXQucGF0aD8iVGhlcmUgYXJlIG5vIHRlbXBsYXRlcyBmb3IgaXRlbSAiK3QucGF0aCsiIHdpdGggbmFtZSAiK3QudGVtcGxhdGVpdGVtbmFtZToiVGhlcmUgYXJlIG5vIHRlbXBsYXRlcyBmb3IgdHJhY2UgIit0LmluZGV4KyIsIG9mIHR5cGUgIit0LnRyYWNlVHlwZSsiLiI7YnJlYWs7Y2FzZSJ1bnVzZWQiOmU9dC5wYXRoPyJUaGUgdGVtcGxhdGUgaXRlbSBhdCAiK3QucGF0aCsiIHdhcyBub3QgdXNlZCBpbiBjb25zdHJ1Y3RpbmcgdGhlIHBsb3QuIjp0LmRhdGFDb3VudD8iU29tZSBvZiB0aGUgdGVtcGxhdGVzIG9mIHR5cGUgIit0LnRyYWNlVHlwZSsiIHdlcmUgbm90IHVzZWQuIFRoZSB0ZW1wbGF0ZSBoYXMgIit0LnRlbXBsYXRlQ291bnQrIiB0cmFjZXMsIHRoZSBkYXRhIG9ubHkgaGFzICIrdC5kYXRhQ291bnQrIiBvZiB0aGlzIHR5cGUuIjoiVGhlIHRlbXBsYXRlIGhhcyAiK3QudGVtcGxhdGVDb3VudCsiIHRyYWNlcyBvZiB0eXBlICIrdC50cmFjZVR5cGUrIiBidXQgdGhlcmUgYXJlIG5vbmUgaW4gdGhlIGRhdGEuIjticmVhaztjYXNlInJldXNlZCI6ZT0iU29tZSBvZiB0aGUgdGVtcGxhdGVzIG9mIHR5cGUgIit0LnRyYWNlVHlwZSsiIHdlcmUgdXNlZCBtb3JlIHRoYW4gb25jZS4gVGhlIHRlbXBsYXRlIGhhcyAiK3QudGVtcGxhdGVDb3VudCsiIHRyYWNlcywgdGhlIGRhdGEgaGFzICIrdC5kYXRhQ291bnQrIiBvZiB0aGlzIHR5cGUuIn1yZXR1cm4gdC5tc2c9ZSx0fXIubWFrZVRlbXBsYXRlPWZ1bmN0aW9uKHQpe3Q9bi5pc1BsYWluT2JqZWN0KHQpP3Q6bi5nZXRHcmFwaERpdih0KSx0PW4uZXh0ZW5kRGVlcCh7X2NvbnRleHQ6Y30se2RhdGE6dC5kYXRhLGxheW91dDp0LmxheW91dH0pLG8uc3VwcGx5RGVmYXVsdHModCk7dmFyIGU9dC5kYXRhfHxbXSxyPXQubGF5b3V0fHx7fTtyLl9iYXNlUGxvdE1vZHVsZXM9dC5fZnVsbExheW91dC5fYmFzZVBsb3RNb2R1bGVzLHIuX21vZHVsZXM9dC5fZnVsbExheW91dC5fbW9kdWxlczt2YXIgYT17ZGF0YTp7fSxsYXlvdXQ6e319O2UuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9e307aCh0LGUsZC5iaW5kKG51bGwsdCkpO3ZhciByPW4uY29lcmNlKHQse30scywidHlwZSIpLGk9YS5kYXRhW3JdO2l8fChpPWEuZGF0YVtyXT1bXSksaS5wdXNoKGUpfSkpLGgocixhLmxheW91dCxwLmJpbmQobnVsbCxyKSksZGVsZXRlIGEubGF5b3V0LnRlbXBsYXRlO3ZhciBsPXIudGVtcGxhdGU7aWYoaShsKSl7dmFyIGYsbSxnLHYseSx4LGI9bC5sYXlvdXQ7aShiKSYmdShiLGEubGF5b3V0KTt2YXIgXz1sLmRhdGE7aWYoaShfKSl7Zm9yKG0gaW4gYS5kYXRhKWlmKGc9X1ttXSxBcnJheS5pc0FycmF5KGcpKXtmb3IoeD0oeT1hLmRhdGFbbV0pLmxlbmd0aCx2PWcubGVuZ3RoLGY9MDtmPHg7ZisrKXUoZ1tmJXZdLHlbZl0pO2ZvcihmPXg7Zjx2O2YrKyl5LnB1c2gobi5leHRlbmREZWVwKHt9LGdbZl0pKX1mb3IobSBpbiBfKW0gaW4gYS5kYXRhfHwoYS5kYXRhW21dPW4uZXh0ZW5kRGVlcChbXSxfW21dKSl9fXJldHVybiBhfSxyLnZhbGlkYXRlVGVtcGxhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1uLmV4dGVuZERlZXAoe30se19jb250ZXh0OmMsZGF0YTp0LmRhdGEsbGF5b3V0OnQubGF5b3V0fSksYT1yLmxheW91dHx8e307aShlKXx8KGU9YS50ZW1wbGF0ZXx8e30pO3ZhciBzPWUubGF5b3V0LGw9ZS5kYXRhLHU9W107ci5sYXlvdXQ9YSxyLmxheW91dC50ZW1wbGF0ZT1lLG8uc3VwcGx5RGVmYXVsdHMocik7dmFyIGg9ci5fZnVsbExheW91dCxwPXIuX2Z1bGxEYXRhLGQ9e307aWYoaShzKT8oIWZ1bmN0aW9uIHQoZSxyKXtmb3IodmFyIG4gaW4gZSlpZigiXyIhPT1uLmNoYXJBdCgwKSYmaShlW25dKSl7dmFyIGEsbz1mKG4pLHM9W107Zm9yKGE9MDthPHIubGVuZ3RoO2ErKylzLnB1c2gobShlLG4sclthXSkpLG8hPT1uJiZzLnB1c2gobShlLG8sclthXSkpO2ZvcihhPTA7YTxzLmxlbmd0aDthKyspZFtzW2FdXT0xO3QoZVtuXSxzKX19KGgsWyJsYXlvdXQiXSksZnVuY3Rpb24gdChlLHIpe2Zvcih2YXIgbiBpbiBlKWlmKC0xPT09bi5pbmRleE9mKCJkZWZhdWx0cyIpJiZpKGVbbl0pKXt2YXIgYT1tKGUsbixyKTtkW2FdP3QoZVtuXSxhKTp1LnB1c2goe2NvZGU6InVudXNlZCIscGF0aDphfSl9fShzLCJsYXlvdXQiKSk6dS5wdXNoKHtjb2RlOiJsYXlvdXQifSksaShsKSl7Zm9yKHZhciB5LHg9e30sYj0wO2I8cC5sZW5ndGg7YisrKXt2YXIgXz1wW2JdO3hbeT1fLnR5cGVdPSh4W3ldfHwwKSsxLF8uX2Z1bGxJbnB1dC5fdGVtcGxhdGV8fHUucHVzaCh7Y29kZToibWlzc2luZyIsaW5kZXg6Xy5fZnVsbElucHV0LmluZGV4LHRyYWNlVHlwZTp5fSl9Zm9yKHkgaW4gbCl7dmFyIHc9bFt5XS5sZW5ndGgsVD14W3ldfHwwO3c+VD91LnB1c2goe2NvZGU6InVudXNlZCIsdHJhY2VUeXBlOnksdGVtcGxhdGVDb3VudDp3LGRhdGFDb3VudDpUfSk6VD53JiZ1LnB1c2goe2NvZGU6InJldXNlZCIsdHJhY2VUeXBlOnksdGVtcGxhdGVDb3VudDp3LGRhdGFDb3VudDpUfSl9fWVsc2UgdS5wdXNoKHtjb2RlOiJkYXRhIn0pO2lmKGZ1bmN0aW9uIHQoZSxyKXtmb3IodmFyIG4gaW4gZSlpZigiXyIhPT1uLmNoYXJBdCgwKSl7dmFyIGE9ZVtuXSxvPW0oZSxuLHIpO2koYSk/KEFycmF5LmlzQXJyYXkoZSkmJiExPT09YS5fdGVtcGxhdGUmJmEudGVtcGxhdGVpdGVtbmFtZSYmdS5wdXNoKHtjb2RlOiJtaXNzaW5nIixwYXRoOm8sdGVtcGxhdGVpdGVtbmFtZTphLnRlbXBsYXRlaXRlbW5hbWV9KSx0KGEsbykpOkFycmF5LmlzQXJyYXkoYSkmJmcoYSkmJnQoYSxvKX19KHtkYXRhOnAsbGF5b3V0Omh9LCIiKSx1Lmxlbmd0aClyZXR1cm4gdS5tYXAodil9fSx7Ii4uL2xpYiI6Nzc2LCIuLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uL3Bsb3RzL3Bsb3RzIjo4OTAsIi4vcGxvdF9jb25maWciOjgxNCwiLi9wbG90X3NjaGVtYSI6ODE1LCIuL3Bsb3RfdGVtcGxhdGUiOjgxNn1dLDgxOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi9wbG90X2FwaSIpLGE9dCgiLi4vcGxvdHMvcGxvdHMiKSxvPXQoIi4uL2xpYiIpLHM9dCgiLi4vc25hcHNob3QvaGVscGVycyIpLGw9dCgiLi4vc25hcHNob3QvdG9zdmciKSxjPXQoIi4uL3NuYXBzaG90L3N2Z3RvaW1nIiksdT10KCIuLi92ZXJzaW9uIikudmVyc2lvbixmPXtmb3JtYXQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBuZyIsImpwZWciLCJ3ZWJwIiwic3ZnIiwiZnVsbC1qc29uIl0sZGZsdDoicG5nIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjF9LGhlaWdodDp7dmFsVHlwZToibnVtYmVyIixtaW46MX0sc2NhbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzZXRCYWNrZ3JvdW5kOnt2YWxUeXBlOiJhbnkiLGRmbHQ6ITF9LGltYWdlRGF0YU9ubHk6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9fTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixoLHAsZDtmdW5jdGlvbiBtKHQpe3JldHVybiEodCBpbiBlKXx8by52YWxpZGF0ZShlW3RdLGZbdF0pfWlmKGU9ZXx8e30sby5pc1BsYWluT2JqZWN0KHQpPyhyPXQuZGF0YXx8W10saD10LmxheW91dHx8e30scD10LmNvbmZpZ3x8e30sZD17fSk6KHQ9by5nZXRHcmFwaERpdih0KSxyPW8uZXh0ZW5kRGVlcChbXSx0LmRhdGEpLGg9by5leHRlbmREZWVwKHt9LHQubGF5b3V0KSxwPXQuX2NvbnRleHQsZD10Ll9mdWxsTGF5b3V0fHx7fSksIW0oIndpZHRoIikmJm51bGwhPT1lLndpZHRofHwhbSgiaGVpZ2h0IikmJm51bGwhPT1lLmhlaWdodCl0aHJvdyBuZXcgRXJyb3IoIkhlaWdodCBhbmQgd2lkdGggc2hvdWxkIGJlIHBpeGVsIHZhbHVlcy4iKTtpZighbSgiZm9ybWF0IikpdGhyb3cgbmV3IEVycm9yKCJFeHBvcnQgZm9ybWF0IGlzIG5vdCAiK28uam9pbjIoZi5mb3JtYXQudmFsdWVzLCIsICIsIiBvciAiKSsiLiIpO3ZhciBnPXt9O2Z1bmN0aW9uIHYodCxyKXtyZXR1cm4gby5jb2VyY2UoZSxnLGYsdCxyKX12YXIgeT12KCJmb3JtYXQiKSx4PXYoIndpZHRoIiksYj12KCJoZWlnaHQiKSxfPXYoInNjYWxlIiksdz12KCJzZXRCYWNrZ3JvdW5kIiksVD12KCJpbWFnZURhdGFPbmx5Iiksaz1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtrLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsay5zdHlsZS5sZWZ0PSItNTAwMHB4Iixkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGspO3ZhciBBPW8uZXh0ZW5kRmxhdCh7fSxoKTt4P0Eud2lkdGg9eDpudWxsPT09ZS53aWR0aCYmbihkLndpZHRoKSYmKEEud2lkdGg9ZC53aWR0aCksYj9BLmhlaWdodD1iOm51bGw9PT1lLmhlaWdodCYmbihkLmhlaWdodCkmJihBLmhlaWdodD1kLmhlaWdodCk7dmFyIE09by5leHRlbmRGbGF0KHt9LHAse19leHBvcnRlZFBsb3Q6ITAsc3RhdGljUGxvdDohMCxzZXRCYWNrZ3JvdW5kOnd9KSxTPXMuZ2V0UmVkcmF3RnVuYyhrKTtmdW5jdGlvbiBFKCl7cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtzZXRUaW1lb3V0KHQscy5nZXREZWxheShrLl9mdWxsTGF5b3V0KSl9KSl9ZnVuY3Rpb24gTCgpe3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24odCxlKXt2YXIgcj1sKGsseSxfKSxuPWsuX2Z1bGxMYXlvdXQud2lkdGgsZj1rLl9mdWxsTGF5b3V0LmhlaWdodDtmdW5jdGlvbiBoKCl7aS5wdXJnZShrKSxkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGspfWlmKCJmdWxsLWpzb24iPT09eSl7dmFyIHA9YS5ncmFwaEpzb24oaywhMSwia2VlcGRhdGEiLCJvYmplY3QiLCEwLCEwKTtyZXR1cm4gcC52ZXJzaW9uPXUscD1KU09OLnN0cmluZ2lmeShwKSxoKCksdChUP3A6cy5lbmNvZGVKU09OKHApKX1pZihoKCksInN2ZyI9PT15KXJldHVybiB0KFQ/cjpzLmVuY29kZVNWRyhyKSk7dmFyIGQ9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7ZC5pZD1vLnJhbmRzdHIoKSxjKHtmb3JtYXQ6eSx3aWR0aDpuLGhlaWdodDpmLHNjYWxlOl8sY2FudmFzOmQsc3ZnOnIscHJvbWlzZTohMH0pLnRoZW4odCkuY2F0Y2goZSl9KSl9cmV0dXJuIG5ldyBQcm9taXNlKChmdW5jdGlvbih0LGUpe2kubmV3UGxvdChrLHIsQSxNKS50aGVuKFMpLnRoZW4oRSkudGhlbihMKS50aGVuKChmdW5jdGlvbihlKXt0KGZ1bmN0aW9uKHQpe3JldHVybiBUP3QucmVwbGFjZShzLklNQUdFX1VSTF9QUkVGSVgsIiIpOnR9KGUpKX0pKS5jYXRjaCgoZnVuY3Rpb24odCl7ZSh0KX0pKX0pKX19LHsiLi4vbGliIjo3NzYsIi4uL3Bsb3RzL3Bsb3RzIjo4OTAsIi4uL3NuYXBzaG90L2hlbHBlcnMiOjkwOCwiLi4vc25hcHNob3Qvc3ZndG9pbWciOjkxMCwiLi4vc25hcHNob3QvdG9zdmciOjkxMiwiLi4vdmVyc2lvbiI6MTM3NywiLi9wbG90X2FwaSI6ODEzLCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sODIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2xpYiIpLGk9dCgiLi4vcGxvdHMvcGxvdHMiKSxhPXQoIi4vcGxvdF9zY2hlbWEiKSxvPXQoIi4vcGxvdF9jb25maWciKS5kZmx0Q29uZmlnLHM9bi5pc1BsYWluT2JqZWN0LGw9QXJyYXkuaXNBcnJheSxjPW4uaXNBcnJheU9yVHlwZWRBcnJheTtmdW5jdGlvbiB1KHQsZSxyLGksYSxvKXtvPW98fFtdO2Zvcih2YXIgZj1PYmplY3Qua2V5cyh0KSxoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBwPWZbaF07aWYoInRyYW5zZm9ybXMiIT09cCl7dmFyIHY9by5zbGljZSgpO3YucHVzaChwKTt2YXIgeT10W3BdLHg9ZVtwXSxiPWcocixwKSxfPShifHx7fSkudmFsVHlwZSx3PSJpbmZvX2FycmF5Ij09PV8sVD0iY29sb3JzY2FsZSI9PT1fLGs9KGJ8fHt9KS5pdGVtcztpZihtKHIscCkpaWYocyh5KSYmcyh4KSYmImFueSIhPT1fKXUoeSx4LGIsaSxhLHYpO2Vsc2UgaWYodyYmbCh5KSl7eS5sZW5ndGg+eC5sZW5ndGgmJmkucHVzaChkKCJ1bnVzZWQiLGEsdi5jb25jYXQoeC5sZW5ndGgpKSk7dmFyIEEsTSxTLEUsTCxDPXgubGVuZ3RoLFA9QXJyYXkuaXNBcnJheShrKTtpZihQJiYoQz1NYXRoLm1pbihDLGsubGVuZ3RoKSksMj09PWIuZGltZW5zaW9ucylmb3IoTT0wO008QztNKyspaWYobCh5W01dKSl7eVtNXS5sZW5ndGg+eFtNXS5sZW5ndGgmJmkucHVzaChkKCJ1bnVzZWQiLGEsdi5jb25jYXQoTSx4W01dLmxlbmd0aCkpKTt2YXIgST14W01dLmxlbmd0aDtmb3IoQT0wO0E8KFA/TWF0aC5taW4oSSxrW01dLmxlbmd0aCk6SSk7QSsrKVM9UD9rW01dW0FdOmssRT15W01dW0FdLEw9eFtNXVtBXSxuLnZhbGlkYXRlKEUsUyk/TCE9PUUmJkwhPT0rRSYmaS5wdXNoKGQoImR5bmFtaWMiLGEsdi5jb25jYXQoTSxBKSxFLEwpKTppLnB1c2goZCgidmFsdWUiLGEsdi5jb25jYXQoTSxBKSxFKSl9ZWxzZSBpLnB1c2goZCgiYXJyYXkiLGEsdi5jb25jYXQoTSkseVtNXSkpO2Vsc2UgZm9yKE09MDtNPEM7TSsrKVM9UD9rW01dOmssRT15W01dLEw9eFtNXSxuLnZhbGlkYXRlKEUsUyk/TCE9PUUmJkwhPT0rRSYmaS5wdXNoKGQoImR5bmFtaWMiLGEsdi5jb25jYXQoTSksRSxMKSk6aS5wdXNoKGQoInZhbHVlIixhLHYuY29uY2F0KE0pLEUpKX1lbHNlIGlmKGIuaXRlbXMmJiF3JiZsKHkpKXt2YXIgTyx6LEQ9a1tPYmplY3Qua2V5cyhrKVswXV0sUj1bXTtmb3IoTz0wO088eC5sZW5ndGg7TysrKXt2YXIgRj14W09dLl9pbmRleHx8TztpZigoej12LnNsaWNlKCkpLnB1c2goRikscyh5W0ZdKSYmcyh4W09dKSl7Ui5wdXNoKEYpO3ZhciBCPXlbRl0sTj14W09dO3MoQikmJiExIT09Qi52aXNpYmxlJiYhMT09PU4udmlzaWJsZT9pLnB1c2goZCgiaW52aXNpYmxlIixhLHopKTp1KEIsTixELGksYSx6KX19Zm9yKE89MDtPPHkubGVuZ3RoO08rKykoej12LnNsaWNlKCkpLnB1c2goTykscyh5W09dKT8tMT09PVIuaW5kZXhPZihPKSYmaS5wdXNoKGQoInVudXNlZCIsYSx6KSk6aS5wdXNoKGQoIm9iamVjdCIsYSx6LHlbT10pKX1lbHNlIXMoeSkmJnMoeCk/aS5wdXNoKGQoIm9iamVjdCIsYSx2LHkpKTpjKHkpfHwhYyh4KXx8d3x8VD9wIGluIGU/bi52YWxpZGF0ZSh5LGIpPyJlbnVtZXJhdGVkIj09PWIudmFsVHlwZSYmKGIuY29lcmNlTnVtYmVyJiZ5IT09K3h8fHkhPT14KSYmaS5wdXNoKGQoImR5bmFtaWMiLGEsdix5LHgpKTppLnB1c2goZCgidmFsdWUiLGEsdix5KSk6aS5wdXNoKGQoInVudXNlZCIsYSx2LHkpKTppLnB1c2goZCgiYXJyYXkiLGEsdix5KSk7ZWxzZSBpLnB1c2goZCgic2NoZW1hIixhLHYpKX19cmV0dXJuIGl9ZnVuY3Rpb24gZih0LGUpe2Zvcih2YXIgcj10LmxheW91dC5sYXlvdXRBdHRyaWJ1dGVzLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIGE9ZVtpXSxvPXQudHJhY2VzW2EudHlwZV0scz1vLmxheW91dEF0dHJpYnV0ZXM7cyYmKGEuc3VicGxvdD9uLmV4dGVuZEZsYXQocltvLmF0dHJpYnV0ZXMuc3VicGxvdC5kZmx0XSxzKTpuLmV4dGVuZEZsYXQocixzKSl9cmV0dXJuIHJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dm9pZCAwPT09dCYmKHQ9W10pLHZvaWQgMD09PWUmJihlPXt9KTt2YXIgcixjLGg9YS5nZXQoKSxwPVtdLG09e19jb250ZXh0Om4uZXh0ZW5kRmxhdCh7fSxvKX07bCh0KT8obS5kYXRhPW4uZXh0ZW5kRGVlcChbXSx0KSxyPXQpOihtLmRhdGE9W10scj1bXSxwLnB1c2goZCgiYXJyYXkiLCJkYXRhIikpKSxzKGUpPyhtLmxheW91dD1uLmV4dGVuZERlZXAoe30sZSksYz1lKToobS5sYXlvdXQ9e30sYz17fSxhcmd1bWVudHMubGVuZ3RoPjEmJnAucHVzaChkKCJvYmplY3QiLCJsYXlvdXQiKSkpLGkuc3VwcGx5RGVmYXVsdHMobSk7Zm9yKHZhciBnPW0uX2Z1bGxEYXRhLHY9ci5sZW5ndGgseT0wO3k8djt5Kyspe3ZhciB4PXJbeV0sYj1bImRhdGEiLHldO2lmKHMoeCkpe3ZhciBfPWdbeV0sdz1fLnR5cGUsVD1oLnRyYWNlc1t3XS5hdHRyaWJ1dGVzO1QudHlwZT17dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlt3XX0sITE9PT1fLnZpc2libGUmJiExIT09eC52aXNpYmxlJiZwLnB1c2goZCgiaW52aXNpYmxlIixiKSksdSh4LF8sVCxwLGIpO3ZhciBrPXgudHJhbnNmb3JtcyxBPV8udHJhbnNmb3JtcztpZihrKXtsKGspfHxwLnB1c2goZCgiYXJyYXkiLGIsWyJ0cmFuc2Zvcm1zIl0pKSxiLnB1c2goInRyYW5zZm9ybXMiKTtmb3IodmFyIE09MDtNPGsubGVuZ3RoO00rKyl7dmFyIFM9WyJ0cmFuc2Zvcm1zIixNXSxFPWtbTV0udHlwZTtpZihzKGtbTV0pKXt2YXIgTD1oLnRyYW5zZm9ybXNbRV0/aC50cmFuc2Zvcm1zW0VdLmF0dHJpYnV0ZXM6e307TC50eXBlPXt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6T2JqZWN0LmtleXMoaC50cmFuc2Zvcm1zKX0sdShrW01dLEFbTV0sTCxwLGIsUyl9ZWxzZSBwLnB1c2goZCgib2JqZWN0IixiLFMpKX19fWVsc2UgcC5wdXNoKGQoIm9iamVjdCIsYikpfXZhciBDPW0uX2Z1bGxMYXlvdXQsUD1mKGgsZyk7cmV0dXJuIHUoYyxDLFAscCwibGF5b3V0IiksMD09PXAubGVuZ3RoP3ZvaWQgMDpwfTt2YXIgaD17b2JqZWN0OmZ1bmN0aW9uKHQsZSl7cmV0dXJuKCJsYXlvdXQiPT09dCYmIiI9PT1lPyJUaGUgbGF5b3V0IGFyZ3VtZW50IjoiZGF0YSI9PT10WzBdJiYiIj09PWU/IlRyYWNlICIrdFsxXSsiIGluIHRoZSBkYXRhIGFyZ3VtZW50IjpwKHQpKyJrZXkgIitlKSsiIG11c3QgYmUgbGlua2VkIHRvIGFuIG9iamVjdCBjb250YWluZXIifSxhcnJheTpmdW5jdGlvbih0LGUpe3JldHVybigiZGF0YSI9PT10PyJUaGUgZGF0YSBhcmd1bWVudCI6cCh0KSsia2V5ICIrZSkrIiBtdXN0IGJlIGxpbmtlZCB0byBhbiBhcnJheSBjb250YWluZXIifSxzY2hlbWE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gcCh0KSsia2V5ICIrZSsiIGlzIG5vdCBwYXJ0IG9mIHRoZSBzY2hlbWEifSx1bnVzZWQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXMocik/ImNvbnRhaW5lciI6ImtleSI7cmV0dXJuIHAodCkrbisiICIrZSsiIGRpZCBub3QgZ2V0IGNvZXJjZWQifSxkeW5hbWljOmZ1bmN0aW9uKHQsZSxyLG4pe3JldHVybltwKHQpKyJrZXkiLGUsIihzZXQgdG8gJyIrcisiJykiLCJnb3QgcmVzZXQgdG8iLCInIituKyInIiwiZHVyaW5nIGRlZmF1bHRzLiJdLmpvaW4oIiAiKX0saW52aXNpYmxlOmZ1bmN0aW9uKHQsZSl7cmV0dXJuKGU/cCh0KSsiaXRlbSAiK2U6IlRyYWNlICIrdFsxXSkrIiBnb3QgZGVmYXVsdGVkIHRvIGJlIG5vdCB2aXNpYmxlIn0sdmFsdWU6ZnVuY3Rpb24odCxlLHIpe3JldHVybltwKHQpKyJrZXkgIitlLCJpcyBzZXQgdG8gYW4gaW52YWxpZCB2YWx1ZSAoIityKyIpIl0uam9pbigiICIpfX07ZnVuY3Rpb24gcCh0KXtyZXR1cm4gbCh0KT8iSW4gZGF0YSB0cmFjZSAiK3RbMV0rIiwgIjoiSW4gIit0KyIsICJ9ZnVuY3Rpb24gZCh0LGUscixpLGEpe3ZhciBvLHM7cj1yfHwiIixsKGUpPyhvPWVbMF0scz1lWzFdKToobz1lLHM9bnVsbCk7dmFyIGM9ZnVuY3Rpb24odCl7aWYoIWwodCkpcmV0dXJuIFN0cmluZyh0KTtmb3IodmFyIGU9IiIscj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbj10W3JdOyJudW1iZXIiPT10eXBlb2Ygbj9lPWUuc3Vic3RyKDAsZS5sZW5ndGgtMSkrIlsiK24rIl0iOmUrPW4scjx0Lmxlbmd0aC0xJiYoZSs9Ii4iKX1yZXR1cm4gZX0ociksdT1oW3RdKGUsYyxpLGEpO3JldHVybiBuLmxvZyh1KSx7Y29kZTp0LGNvbnRhaW5lcjpvLHRyYWNlOnMscGF0aDpyLGFzdHI6Yyxtc2c6dX19ZnVuY3Rpb24gbSh0LGUpe3ZhciByPXkoZSksbj1yLmtleU1pbnVzSWQsaT1yLmlkO3JldHVybiEhKG4gaW4gdCYmdFtuXS5faXNTdWJwbG90T2JqJiZpKXx8ZSBpbiB0fWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gZSBpbiB0P3RbZV06dFt5KGUpLmtleU1pbnVzSWRdfXZhciB2PW4uY291bnRlclJlZ2V4KCIoW2Etel0rKSIpO2Z1bmN0aW9uIHkodCl7dmFyIGU9dC5tYXRjaCh2KTtyZXR1cm57a2V5TWludXNJZDplJiZlWzFdLGlkOmUmJmVbMl19fX0seyIuLi9saWIiOjc3NiwiLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi9wbG90X2NvbmZpZyI6ODE0LCIuL3Bsb3Rfc2NoZW1hIjo4MTV9XSw4MjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJhZnRlcmFsbCIsdmFsdWVzOlsiaW1tZWRpYXRlIiwibmV4dCIsImFmdGVyYWxsIl19LGRpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZm9yd2FyZCIsInJldmVyc2UiXSxkZmx0OiJmb3J3YXJkIn0sZnJvbWN1cnJlbnQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZyYW1lOntkdXJhdGlvbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjUwMH0scmVkcmF3Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfX0sdHJhbnNpdGlvbjp7ZHVyYXRpb246e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo1MDAsZWRpdFR5cGU6Im5vbmUifSxlYXNpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6ImN1YmljLWluLW91dCIsdmFsdWVzOlsibGluZWFyIiwicXVhZCIsImN1YmljIiwic2luIiwiZXhwIiwiY2lyY2xlIiwiZWxhc3RpYyIsImJhY2siLCJib3VuY2UiLCJsaW5lYXItaW4iLCJxdWFkLWluIiwiY3ViaWMtaW4iLCJzaW4taW4iLCJleHAtaW4iLCJjaXJjbGUtaW4iLCJlbGFzdGljLWluIiwiYmFjay1pbiIsImJvdW5jZS1pbiIsImxpbmVhci1vdXQiLCJxdWFkLW91dCIsImN1YmljLW91dCIsInNpbi1vdXQiLCJleHAtb3V0IiwiY2lyY2xlLW91dCIsImVsYXN0aWMtb3V0IiwiYmFjay1vdXQiLCJib3VuY2Utb3V0IiwibGluZWFyLWluLW91dCIsInF1YWQtaW4tb3V0IiwiY3ViaWMtaW4tb3V0Iiwic2luLWluLW91dCIsImV4cC1pbi1vdXQiLCJjaXJjbGUtaW4tb3V0IiwiZWxhc3RpYy1pbi1vdXQiLCJiYWNrLWluLW91dCIsImJvdW5jZS1pbi1vdXQiXSxlZGl0VHlwZToibm9uZSJ9LG9yZGVyaW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsYXlvdXQgZmlyc3QiLCJ0cmFjZXMgZmlyc3QiXSxkZmx0OiJsYXlvdXQgZmlyc3QiLGVkaXRUeXBlOiJub25lIn19fX0se31dLDgyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhLG8scz1yLm5hbWUsbD1yLmluY2x1c2lvbkF0dHJ8fCJ2aXNpYmxlIixjPWVbc10sdT1uLmlzQXJyYXlPclR5cGVkQXJyYXkodFtzXSk/dFtzXTpbXSxmPWVbc109W10saD1pLmFycmF5VGVtcGxhdGVyKGUscyxsKTtmb3IoYT0wO2E8dS5sZW5ndGg7YSsrKXt2YXIgcD11W2FdO24uaXNQbGFpbk9iamVjdChwKT9vPWgubmV3SXRlbShwKToobz1oLm5ld0l0ZW0oe30pKVtsXT0hMSxvLl9pbmRleD1hLCExIT09b1tsXSYmci5oYW5kbGVJdGVtRGVmYXVsdHMocCxvLGUsciksZi5wdXNoKG8pfXZhciBkPWguZGVmYXVsdEl0ZW1zKCk7Zm9yKGE9MDthPGQubGVuZ3RoO2ErKykobz1kW2FdKS5faW5kZXg9Zi5sZW5ndGgsci5oYW5kbGVJdGVtRGVmYXVsdHMoe30sbyxlLHIse30pLGYucHVzaChvKTtpZihuLmlzQXJyYXlPclR5cGVkQXJyYXkoYykpe3ZhciBtPU1hdGgubWluKGMubGVuZ3RoLGYubGVuZ3RoKTtmb3IoYT0wO2E8bTthKyspbi5yZWxpbmtQcml2YXRlS2V5cyhmW2FdLGNbYV0pfXJldHVybiBmfX0seyIuLi9saWIiOjc3NiwiLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2fV0sODIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vZm9udF9hdHRyaWJ1dGVzIiksaT10KCIuLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9e3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbXSxkZmx0OiJzY2F0dGVyIixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyIsX25vVGVtcGxhdGluZzohMH0sdmlzaWJsZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwhMSwibGVnZW5kb25seSJdLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxzaG93bGVnZW5kOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJzdHlsZSJ9LGxlZ2VuZGdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InN0eWxlIn0sbGVnZW5kZ3JvdXB0aXRsZTp7dGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJzdHlsZSJ9LGZvbnQ6bih7ZWRpdFR5cGU6InN0eWxlIn0pLGVkaXRUeXBlOiJzdHlsZSJ9LGxlZ2VuZHJhbms6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxZTMsZWRpdFR5cGU6InN0eWxlIn0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjEsZWRpdFR5cGU6InN0eWxlIn0sbmFtZTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToic3R5bGUifSx1aWQ6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6InBsb3QiLGFuaW06ITB9LGlkczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMiLGFuaW06ITB9LGN1c3RvbWRhdGE6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbWV0YTp7dmFsVHlwZToiYW55IixhcnJheU9rOiEwLGVkaXRUeXBlOiJwbG90In0sc2VsZWN0ZWRwb2ludHM6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSxob3ZlcmluZm86e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbIngiLCJ5IiwieiIsInRleHQiLCJuYW1lIl0sZXh0cmFzOlsiYWxsIiwibm9uZSIsInNraXAiXSxhcnJheU9rOiEwLGRmbHQ6ImFsbCIsZWRpdFR5cGU6Im5vbmUifSxob3ZlcmxhYmVsOmkuaG92ZXJsYWJlbCxzdHJlYW06e3Rva2VuOnt2YWxUeXBlOiJzdHJpbmciLG5vQmxhbms6ITAsc3RyaWN0OiEwLGVkaXRUeXBlOiJjYWxjIn0sbWF4cG9pbnRzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxZTQsZGZsdDo1MDAsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LHRyYW5zZm9ybXM6e19pc0xpbmtlZFRvQXJyYXk6InRyYW5zZm9ybSIsZWRpdFR5cGU6ImNhbGMifSx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn19fSx7Ii4uL2NvbXBvbmVudHMvZngvYXR0cmlidXRlcyI6NjcwLCIuL2ZvbnRfYXR0cmlidXRlcyI6ODU2fV0sODI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxhPWkuZGF0ZVRpbWUybXMsbz1pLmluY3JlbWVudE1vbnRoLHM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLk9ORUFWR01PTlRIO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXtpZigiZGF0ZSIhPT1lLnR5cGUpcmV0dXJue3ZhbHM6aX07dmFyIGw9dFtyKyJwZXJpb2RhbGlnbm1lbnQiXTtpZighbClyZXR1cm57dmFsczppfTt2YXIgYyx1PXRbcisicGVyaW9kIl07aWYobih1KSl7aWYoKHU9K3UpPD0wKXJldHVybnt2YWxzOml9fWVsc2UgaWYoInN0cmluZyI9PXR5cGVvZiB1JiYiTSI9PT11LmNoYXJBdCgwKSl7dmFyIGY9K3Uuc3Vic3RyaW5nKDEpO2lmKCEoZj4wJiZNYXRoLnJvdW5kKGYpPT09ZikpcmV0dXJue3ZhbHM6aX07Yz1mfWZvcih2YXIgaD1lLmNhbGVuZGFyLHA9InN0YXJ0Ij09PWwsZD0iZW5kIj09PWwsbT10W3IrInBlcmlvZDAiXSxnPWEobSxoKXx8MCx2PVtdLHk9W10seD1bXSxiPWkubGVuZ3RoLF89MDtfPGI7XysrKXt2YXIgdyxULGssQT1pW19dO2lmKGMpe2Zvcih3PU1hdGgucm91bmQoKEEtZykvKGMqcykpLGs9byhnLGMqdyxoKTtrPkE7KWs9byhrLC1jLGgpO2Zvcig7azw9QTspaz1vKGssYyxoKTtUPW8oaywtYyxoKX1lbHNle2ZvcihrPWcrKHc9TWF0aC5yb3VuZCgoQS1nKS91KSkqdTtrPkE7KWstPXU7Zm9yKDtrPD1BOylrKz11O1Q9ay11fXZbX109cD9UOmQ/azooVCtrKS8yLHlbX109VCx4W19dPWt9cmV0dXJue3ZhbHM6dixzdGFydHM6eSxlbmRzOnh9fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sODI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17eGF4aXM6e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoieCIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx5YXhpczp7dmFsVHlwZToic3VicGxvdGlkIixkZmx0OiJ5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9fX0se31dLDgyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuRlBfU0FGRSxzPXQoIi4uLy4uL3JlZ2lzdHJ5IiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxjPXQoIi4vYXhpc19pZHMiKSx1PWMuZ2V0RnJvbUlkLGY9Yy5pc0xpbmtlZDtmdW5jdGlvbiBoKHQsZSl7dmFyIHIsbixpPVtdLG89dC5fZnVsbExheW91dCxzPWQobyxlLDApLGw9ZChvLGUsMSksYz1tKHQsZSksdT1jLm1pbixmPWMubWF4O2lmKDA9PT11Lmxlbmd0aHx8MD09PWYubGVuZ3RoKXJldHVybiBhLnNpbXBsZU1hcChlLnJhbmdlLGUucjJsKTt2YXIgaD11WzBdLnZhbCxnPWZbMF0udmFsO2ZvcihyPTE7cjx1Lmxlbmd0aCYmaD09PWc7cisrKWg9TWF0aC5taW4oaCx1W3JdLnZhbCk7Zm9yKHI9MTtyPGYubGVuZ3RoJiZoPT09ZztyKyspZz1NYXRoLm1heChnLGZbcl0udmFsKTt2YXIgdj0hMTtpZihlLnJhbmdlKXt2YXIgeT1hLnNpbXBsZU1hcChlLnJhbmdlLGUucjJsKTt2PXlbMV08eVswXX0icmV2ZXJzZWQiPT09ZS5hdXRvcmFuZ2UmJih2PSEwLGUuYXV0b3JhbmdlPSEwKTt2YXIgeCxiLF8sdyxULGssQT1lLnJhbmdlbW9kZSxNPSJ0b3plcm8iPT09QSxTPSJub25uZWdhdGl2ZSI9PT1BLEU9ZS5fbGVuZ3RoLEw9RS8xMCxDPTA7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKylmb3IoeD11W3JdLG49MDtuPGYubGVuZ3RoO24rKykoaz0oYj1mW25dKS52YWwteC52YWwtcChlLHgudmFsLGIudmFsKSk+MCYmKChUPUUtcyh4KS1sKGIpKT5MP2svVD5DJiYoXz14LHc9YixDPWsvVCk6ay9FPkMmJihfPXt2YWw6eC52YWwsbm9wYWQ6MX0sdz17dmFsOmIudmFsLG5vcGFkOjF9LEM9ay9FKSk7aWYoaD09PWcpe3ZhciBQPWgtMSxJPWgrMTtpZihNKWlmKDA9PT1oKWk9WzAsMV07ZWxzZXt2YXIgTz0oaD4wP2Y6dSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGwoZSkpfSksMCksej1oLygxLU1hdGgubWluKC41LE8vRSkpO2k9aD4wP1swLHpdOlt6LDBdfWVsc2UgaT1TP1tNYXRoLm1heCgwLFApLE1hdGgubWF4KDEsSSldOltQLEldfWVsc2UgTT8oXy52YWw+PTAmJihfPXt2YWw6MCxub3BhZDoxfSksdy52YWw8PTAmJih3PXt2YWw6MCxub3BhZDoxfSkpOlMmJihfLnZhbC1DKnMoXyk8MCYmKF89e3ZhbDowLG5vcGFkOjF9KSx3LnZhbDw9MCYmKHc9e3ZhbDoxLG5vcGFkOjF9KSksQz0ody52YWwtXy52YWwtcChlLHgudmFsLGIudmFsKSkvKEUtcyhfKS1sKHcpKSxpPVtfLnZhbC1DKnMoXyksdy52YWwrQypsKHcpXTtyZXR1cm4gdiYmaS5yZXZlcnNlKCksYS5zaW1wbGVNYXAoaSxlLmwycnx8TnVtYmVyKX1mdW5jdGlvbiBwKHQsZSxyKXt2YXIgbj0wO2lmKHQucmFuZ2VicmVha3MpZm9yKHZhciBpPXQubG9jYXRlQnJlYWtzKGUsciksYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdO24rPW8ubWF4LW8ubWlufXJldHVybiBufWZ1bmN0aW9uIGQodCxlLHIpe3ZhciBpPS4wNSplLl9sZW5ndGgsbz1lLl9hbmNob3JBeGlzfHx7fTtpZigtMSE9PShlLnRpY2tsYWJlbHBvc2l0aW9ufHwiIikuaW5kZXhPZigiaW5zaWRlIil8fC0xIT09KG8udGlja2xhYmVscG9zaXRpb258fCIiKS5pbmRleE9mKCJpbnNpZGUiKSl7dmFyIHM9InJldmVyc2VkIj09PWUuYXV0b3JhbmdlO2lmKCFzKXt2YXIgYz1hLnNpbXBsZU1hcChlLnJhbmdlLGUucjJsKTtzPWNbMV08Y1swXX1zJiYocj0hcil9dmFyIHU9MDtyZXR1cm4gZih0LGUuX2lkKXx8KHU9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPTAsbz0ieCI9PT1lLl9pZC5jaGFyQXQoMCk7Zm9yKHZhciBzIGluIHQuX3Bsb3RzKXt2YXIgYz10Ll9wbG90c1tzXTtpZihlLl9pZD09PWMueGF4aXMuX2lkfHxlLl9pZD09PWMueWF4aXMuX2lkKXt2YXIgdT0obz9jLnlheGlzOmMueGF4aXMpfHx7fTtpZigtMSE9PSh1LnRpY2tsYWJlbHBvc2l0aW9ufHwiIikuaW5kZXhPZigiaW5zaWRlIikmJighciYmKCJsZWZ0Ij09PXUuc2lkZXx8ImJvdHRvbSI9PT11LnNpZGUpfHxyJiYoInRvcCI9PT11LnNpZGV8fCJyaWdodCI9PT11LnNpZGUpKSl7aWYodS5fdmFscyl7dmFyIGY9YS5kZWcycmFkKHUuX3RpY2tBbmdsZXNbdS5faWQrInRpY2siXXx8MCksaD1NYXRoLmFicyhNYXRoLmNvcyhmKSkscD1NYXRoLmFicyhNYXRoLnNpbihmKSk7aWYoIXUuX3ZhbHNbMF0uYmIpe3ZhciBkPXUuX2lkKyJ0aWNrIjt1Ll9zZWxlY3Rpb25zW2RdLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpO2Uuc2VsZWN0KCIudGV4dC1tYXRoLWdyb3VwIikuZW1wdHkoKSYmKHQuYmI9bC5iQm94KGUubm9kZSgpKSl9KSl9Zm9yKHZhciBtPTA7bTx1Ll92YWxzLmxlbmd0aDttKyspe3ZhciBnPXUuX3ZhbHNbbV0uYmI7aWYoZyl7dmFyIHY9NitnLndpZHRoLHk9NitnLmhlaWdodDtpPU1hdGgubWF4KGksbz9NYXRoLm1heCh2KmgseSpwKTpNYXRoLm1heCh5KmgsdipwKSl9fX0iaW5zaWRlIj09PXUudGlja3MmJiJpbnNpZGUiPT09dS50aWNrbGFiZWxwb3NpdGlvbiYmKGkrPXUudGlja2xlbnx8MCl9fX1yZXR1cm4gaX0odCxlLHIpKSxpPU1hdGgubWF4KHUsaSksImRvbWFpbiI9PT1lLmNvbnN0cmFpbiYmZS5faW5wdXREb21haW4mJihpKj0oZS5faW5wdXREb21haW5bMV0tZS5faW5wdXREb21haW5bMF0pLyhlLmRvbWFpblsxXS1lLmRvbWFpblswXSkpLGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vcGFkPzA6dC5wYWQrKHQuZXh0cmFwYWQ/aTp1KX19ZS5leHBvcnRzPXtnZXRBdXRvUmFuZ2U6aCxtYWtlUGFkRm46ZCxkb0F1dG9SYW5nZTpmdW5jdGlvbih0LGUscil7aWYoZS5zZXRTY2FsZSgpLGUuYXV0b3JhbmdlKXtlLnJhbmdlPXI/ci5zbGljZSgpOmgodCxlKSxlLl9yPWUucmFuZ2Uuc2xpY2UoKSxlLl9ybD1hLnNpbXBsZU1hcChlLl9yLGUucjJsKTt2YXIgbj1lLl9pbnB1dCxpPXt9O2lbZS5fYXR0cisiLnJhbmdlIl09ZS5yYW5nZSxpW2UuX2F0dHIrIi5hdXRvcmFuZ2UiXT1lLmF1dG9yYW5nZSxzLmNhbGwoIl9zdG9yZURpcmVjdEdVSUVkaXQiLHQubGF5b3V0LHQuX2Z1bGxMYXlvdXQuX3ByZUdVSSxpKSxuLnJhbmdlPWUucmFuZ2Uuc2xpY2UoKSxuLmF1dG9yYW5nZT1lLmF1dG9yYW5nZX12YXIgbz1lLl9hbmNob3JBeGlzO2lmKG8mJm8ucmFuZ2VzbGlkZXIpe3ZhciBsPW8ucmFuZ2VzbGlkZXJbZS5fbmFtZV07bCYmImF1dG8iPT09bC5yYW5nZW1vZGUmJihsLnJhbmdlPWgodCxlKSksby5faW5wdXQucmFuZ2VzbGlkZXJbZS5fbmFtZV09YS5leHRlbmRGbGF0KHt9LGwpfX0sZmluZEV4dHJlbWVzOmZ1bmN0aW9uKHQsZSxyKXtyfHwocj17fSk7dC5fbXx8dC5zZXRTY2FsZSgpO3ZhciBuLGEscyxsLGMsdSxmLGgscCxkPVtdLG09W10seT1lLmxlbmd0aCxiPXIucGFkZGVkfHwhMSxfPXIudG96ZXJvJiYoImxpbmVhciI9PT10LnR5cGV8fCItIj09PXQudHlwZSksdz0ibG9nIj09PXQudHlwZSxUPSExLGs9ci52cGFkTGluZWFyaXplZHx8ITE7ZnVuY3Rpb24gQSh0KXtpZihBcnJheS5pc0FycmF5KHQpKXJldHVybiBUPSEwLGZ1bmN0aW9uKGUpe3JldHVybiBNYXRoLm1heChOdW1iZXIodFtlXXx8MCksMCl9O3ZhciBlPU1hdGgubWF4KE51bWJlcih0fHwwKSwwKTtyZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gZX19dmFyIE09QSgodC5fbT4wP3IucHBhZHBsdXM6ci5wcGFkbWludXMpfHxyLnBwYWR8fDApLFM9QSgodC5fbT4wP3IucHBhZG1pbnVzOnIucHBhZHBsdXMpfHxyLnBwYWR8fDApLEU9QShyLnZwYWRwbHVzfHxyLnZwYWQpLEw9QShyLnZwYWRtaW51c3x8ci52cGFkKTtpZighVCl7aWYoaD0xLzAscD0tMS8wLHcpZm9yKG49MDtuPHk7bisrKShhPWVbbl0pPGgmJmE+MCYmKGg9YSksYT5wJiZhPG8mJihwPWEpO2Vsc2UgZm9yKG49MDtuPHk7bisrKShhPWVbbl0pPGgmJmE+LW8mJihoPWEpLGE+cCYmYTxvJiYocD1hKTtlPVtoLHBdLHk9Mn12YXIgQz17dG96ZXJvOl8sZXh0cmFwYWQ6Yn07ZnVuY3Rpb24gUChyKXtzPWVbcl0saShzKSYmKHU9TShyKSxmPVMociksaz8obD10LmMybChzKS1MKHIpLGM9dC5jMmwocykrRShyKSk6KGg9cy1MKHIpLHA9cytFKHIpLHcmJmg8cC8xMCYmKGg9cC8xMCksbD10LmMybChoKSxjPXQuYzJsKHApKSxfJiYobD1NYXRoLm1pbigwLGwpLGM9TWF0aC5tYXgoMCxjKSkseChsKSYmZyhkLGwsZixDKSx4KGMpJiZ2KG0sYyx1LEMpKX12YXIgST1NYXRoLm1pbig2LHkpO2ZvcihuPTA7bjxJO24rKylQKG4pO2ZvcihuPXktMTtuPj1JO24tLSlQKG4pO3JldHVybnttaW46ZCxtYXg6bSxvcHRzOnJ9fSxjb25jYXRFeHRyZW1lczptfTtmdW5jdGlvbiBtKHQsZSxyKXt2YXIgbixpLGEsbz1lLl9pZCxzPXQuX2Z1bGxEYXRhLGw9dC5fZnVsbExheW91dCxjPVtdLGY9W107ZnVuY3Rpb24gaCh0LGUpe2ZvcihuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciByPXRbZVtuXV0scz0oci5fZXh0cmVtZXN8fHt9KVtvXTtpZighMD09PXIudmlzaWJsZSYmcyl7Zm9yKGk9MDtpPHMubWluLmxlbmd0aDtpKyspYT1zLm1pbltpXSxnKGMsYS52YWwsYS5wYWQse2V4dHJhcGFkOmEuZXh0cmFwYWR9KTtmb3IoaT0wO2k8cy5tYXgubGVuZ3RoO2krKylhPXMubWF4W2ldLHYoZixhLnZhbCxhLnBhZCx7ZXh0cmFwYWQ6YS5leHRyYXBhZH0pfX19aWYoaChzLGUuX3RyYWNlSW5kaWNlcyksaChsLmFubm90YXRpb25zfHxbXSxlLl9hbm5JbmRpY2VzfHxbXSksaChsLnNoYXBlc3x8W10sZS5fc2hhcGVJbmRpY2VzfHxbXSksZS5fbWF0Y2hHcm91cCYmIXIpZm9yKHZhciBwIGluIGUuX21hdGNoR3JvdXApaWYocCE9PWUuX2lkKXt2YXIgZD11KHQscCkseT1tKHQsZCwhMCkseD1lLl9sZW5ndGgvZC5fbGVuZ3RoO2ZvcihpPTA7aTx5Lm1pbi5sZW5ndGg7aSsrKWE9eS5taW5baV0sZyhjLGEudmFsLGEucGFkKngse2V4dHJhcGFkOmEuZXh0cmFwYWR9KTtmb3IoaT0wO2k8eS5tYXgubGVuZ3RoO2krKylhPXkubWF4W2ldLHYoZixhLnZhbCxhLnBhZCp4LHtleHRyYXBhZDphLmV4dHJhcGFkfSl9cmV0dXJue21pbjpjLG1heDpmfX1mdW5jdGlvbiBnKHQsZSxyLG4pe3kodCxlLHIsbixiKX1mdW5jdGlvbiB2KHQsZSxyLG4pe3kodCxlLHIsbixfKX1mdW5jdGlvbiB5KHQsZSxyLG4saSl7Zm9yKHZhciBhPW4udG96ZXJvLG89bi5leHRyYXBhZCxzPSEwLGw9MDtsPHQubGVuZ3RoJiZzO2wrKyl7dmFyIGM9dFtsXTtpZihpKGMudmFsLGUpJiZjLnBhZD49ciYmKGMuZXh0cmFwYWR8fCFvKSl7cz0hMTticmVha31pKGUsYy52YWwpJiZjLnBhZDw9ciYmKG98fCFjLmV4dHJhcGFkKSYmKHQuc3BsaWNlKGwsMSksbC0tKX1pZihzKXt2YXIgdT1hJiYwPT09ZTt0LnB1c2goe3ZhbDplLHBhZDp1PzA6cixleHRyYXBhZDohdSYmb30pfX1mdW5jdGlvbiB4KHQpe3JldHVybiBpKHQpJiZNYXRoLmFicyh0KTxvfWZ1bmN0aW9uIGIodCxlKXtyZXR1cm4gdDw9ZX1mdW5jdGlvbiBfKHQsZSl7cmV0dXJuIHQ+PWV9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F4aXNfaWRzIjo4MzEsIkBwbG90bHkvZDMiOjU4LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sODI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9wbG90cy9wbG90cyIpLG89dCgiLi4vLi4vcmVnaXN0cnkiKSxzPXQoIi4uLy4uL2xpYiIpLGw9cy5zdHJUcmFuc2xhdGUsYz10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSx1PXQoIi4uLy4uL2NvbXBvbmVudHMvdGl0bGVzIiksZj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxwPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxkPXQoIi4vY2xlYW5fdGlja3MiKSxtPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxnPW0uT05FTUFYWUVBUix2PW0uT05FQVZHWUVBUix5PW0uT05FTUlOWUVBUix4PW0uT05FTUFYUVVBUlRFUixiPW0uT05FQVZHUVVBUlRFUixfPW0uT05FTUlOUVVBUlRFUix3PW0uT05FTUFYTU9OVEgsVD1tLk9ORUFWR01PTlRILGs9bS5PTkVNSU5NT05USCxBPW0uT05FV0VFSyxNPW0uT05FREFZLFM9TS8yLEU9bS5PTkVIT1VSLEw9bS5PTkVNSU4sQz1tLk9ORVNFQyxQPW0uTUlOVVNfU0lHTixJPW0uQkFETlVNLE89e0s6Inplcm9saW5lIn0sej17SzoiZ3JpZGxpbmUiLEw6InBhdGgifSxEPXtLOiJ0aWNrIixMOiJwYXRoIn0sUj17SzoidGljayIsTDoidGV4dCJ9LEY9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLEI9Ri5NSURfU0hJRlQsTj1GLkNBUF9TSElGVCxqPUYuTElORV9TUEFDSU5HLFU9Ri5PUFBPU0lURV9TSURFLFY9ZS5leHBvcnRzPXt9O1Yuc2V0Q29udmVydD10KCIuL3NldF9jb252ZXJ0Iik7dmFyIEg9dCgiLi9heGlzX2F1dG90eXBlIikscT10KCIuL2F4aXNfaWRzIiksRz1xLmlkU29ydCxZPXEuaXNMaW5rZWQ7Vi5pZDJuYW1lPXEuaWQybmFtZSxWLm5hbWUyaWQ9cS5uYW1lMmlkLFYuY2xlYW5JZD1xLmNsZWFuSWQsVi5saXN0PXEubGlzdCxWLmxpc3RJZHM9cS5saXN0SWRzLFYuZ2V0RnJvbUlkPXEuZ2V0RnJvbUlkLFYuZ2V0RnJvbVRyYWNlPXEuZ2V0RnJvbVRyYWNlO3ZhciBXPXQoIi4vYXV0b3JhbmdlIik7Vi5nZXRBdXRvUmFuZ2U9Vy5nZXRBdXRvUmFuZ2UsVi5maW5kRXh0cmVtZXM9Vy5maW5kRXh0cmVtZXM7ZnVuY3Rpb24gWCh0KXt2YXIgZT0xZS00Kih0WzFdLXRbMF0pO3JldHVyblt0WzBdLWUsdFsxXStlXX1WLmNvZXJjZVJlZj1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89bi5jaGFyQXQobi5sZW5ndGgtMSksbD1yLl9mdWxsTGF5b3V0Ll9zdWJwbG90c1tvKyJheGlzIl0sYz1uKyJyZWYiLHU9e307cmV0dXJuIGl8fChpPWxbMF18fCgic3RyaW5nIj09dHlwZW9mIGE/YTphWzBdKSksYXx8KGE9aSksbD1sLmNvbmNhdChsLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQrIiBkb21haW4ifSkpKSx1W2NdPXt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6bC5jb25jYXQoYT8ic3RyaW5nIj09dHlwZW9mIGE/W2FdOmE6W10pLGRmbHQ6aX0scy5jb2VyY2UodCxlLHUsYyl9LFYuZ2V0UmVmVHlwZT1mdW5jdGlvbih0KXtyZXR1cm4gdm9pZCAwPT09dD90OiJwYXBlciI9PT10PyJwYXBlciI6InBpeGVsIj09PXQ/InBpeGVsIjovKCBkb21haW4pJC8udGVzdCh0KT8iZG9tYWluIjoicmFuZ2UifSxWLmNvZXJjZVBvc2l0aW9uPWZ1bmN0aW9uKHQsZSxyLG4saSxhKXt2YXIgbyxsO2lmKCJyYW5nZSIhPT1WLmdldFJlZlR5cGUobikpbz1zLmVuc3VyZU51bWJlcixsPXIoaSxhKTtlbHNle3ZhciBjPVYuZ2V0RnJvbUlkKGUsbik7bD1yKGksYT1jLmZyYWN0aW9uMnIoYSkpLG89Yy5jbGVhblBvc310W2ldPW8obCl9LFYuY2xlYW5Qb3NpdGlvbj1mdW5jdGlvbih0LGUscil7cmV0dXJuKCJwYXBlciI9PT1yfHwicGl4ZWwiPT09cj9zLmVuc3VyZU51bWJlcjpWLmdldEZyb21JZChlLHIpLmNsZWFuUG9zKSh0KX0sVi5yZWRyYXdDb21wb25lbnRzPWZ1bmN0aW9uKHQsZSl7ZT1lfHxWLmxpc3RJZHModCk7dmFyIHI9dC5fZnVsbExheW91dDtmdW5jdGlvbiBuKG4saSxhLHMpe2Zvcih2YXIgbD1vLmdldENvbXBvbmVudE1ldGhvZChuLGkpLGM9e30sdT0wO3U8ZS5sZW5ndGg7dSsrKWZvcih2YXIgZj1yW1YuaWQybmFtZShlW3VdKV1bYV0saD0wO2g8Zi5sZW5ndGg7aCsrKXt2YXIgcD1mW2hdO2lmKCFjW3BdJiYobCh0LHApLGNbcF09MSxzKSlyZXR1cm59fW4oImFubm90YXRpb25zIiwiZHJhd09uZSIsIl9hbm5JbmRpY2VzIiksbigic2hhcGVzIiwiZHJhd09uZSIsIl9zaGFwZUluZGljZXMiKSxuKCJpbWFnZXMiLCJkcmF3IiwiX2ltZ0luZGljZXMiLCEwKX07dmFyIFo9Vi5nZXREYXRhQ29udmVyc2lvbnM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYT0ieCI9PT1yfHwieSI9PT1yfHwieiI9PT1yP3I6bjtpZihBcnJheS5pc0FycmF5KGEpKXtpZihpPXt0eXBlOkgobix2b2lkIDAse2F1dG90eXBlbnVtYmVyczp0Ll9mdWxsTGF5b3V0LmF1dG90eXBlbnVtYmVyc30pLF9jYXRlZ29yaWVzOltdfSxWLnNldENvbnZlcnQoaSksImNhdGVnb3J5Ij09PWkudHlwZSlmb3IodmFyIG89MDtvPG4ubGVuZ3RoO28rKylpLmQyYyhuW29dKX1lbHNlIGk9Vi5nZXRGcm9tVHJhY2UodCxlLGEpO3JldHVybiBpP3tkMmM6aS5kMmMsYzJkOmkuYzJkfToiaWRzIj09PWE/e2QyYzpLLGMyZDpLfTp7ZDJjOkosYzJkOkp9fTtmdW5jdGlvbiBKKHQpe3JldHVybit0fWZ1bmN0aW9uIEsodCl7cmV0dXJuIFN0cmluZyh0KX1mdW5jdGlvbiBRKHQpe3JldHVybit0LnN1YnN0cmluZygxKX1WLmdldERhdGFUb0Nvb3JkRnVuYz1mdW5jdGlvbih0LGUscixuKXtyZXR1cm4gWih0LGUscixuKS5kMmN9LFYuY291bnRlckxldHRlcj1mdW5jdGlvbih0KXt2YXIgZT10LmNoYXJBdCgwKTtyZXR1cm4ieCI9PT1lPyJ5IjoieSI9PT1lPyJ4Ijp2b2lkIDB9LFYubWluRHRpY2s9ZnVuY3Rpb24odCxlLHIsbil7LTE9PT1bImxvZyIsImNhdGVnb3J5IiwibXVsdGljYXRlZ29yeSJdLmluZGV4T2YodC50eXBlKSYmbj92b2lkIDA9PT10Ll9taW5EdGljaz8odC5fbWluRHRpY2s9ZSx0Ll9mb3JjZVRpY2swPXIpOnQuX21pbkR0aWNrJiYoKHQuX21pbkR0aWNrL2UrMWUtNiklMTwyZS02JiYoKHItdC5fZm9yY2VUaWNrMCkvZSUxKzEuMDAwMDAxKSUxPDJlLTY/KHQuX21pbkR0aWNrPWUsdC5fZm9yY2VUaWNrMD1yKTooKGUvdC5fbWluRHRpY2srMWUtNiklMT4yZS02fHwoKHItdC5fZm9yY2VUaWNrMCkvdC5fbWluRHRpY2slMSsxLjAwMDAwMSklMT4yZS02KSYmKHQuX21pbkR0aWNrPTApKTp0Ll9taW5EdGljaz0wfSxWLnNhdmVSYW5nZUluaXRpYWw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9Vi5saXN0KHQsIiIsITApLG49ITEsaT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldLG89dm9pZCAwPT09YS5fcmFuZ2VJbml0aWFsLHM9b3x8IShhLnJhbmdlWzBdPT09YS5fcmFuZ2VJbml0aWFsWzBdJiZhLnJhbmdlWzFdPT09YS5fcmFuZ2VJbml0aWFsWzFdKTsobyYmITE9PT1hLmF1dG9yYW5nZXx8ZSYmcykmJihhLl9yYW5nZUluaXRpYWw9YS5yYW5nZS5zbGljZSgpLG49ITApfXJldHVybiBufSxWLnNhdmVTaG93U3Bpa2VJbml0aWFsPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVYubGlzdCh0LCIiLCEwKSxuPSExLGk9Im9uIixhPTA7YTxyLmxlbmd0aDthKyspe3ZhciBvPXJbYV0scz12b2lkIDA9PT1vLl9zaG93U3Bpa2VJbml0aWFsLGw9c3x8IShvLnNob3dzcGlrZXM9PT1vLl9zaG93c3Bpa2VzKTsoc3x8ZSYmbCkmJihvLl9zaG93U3Bpa2VJbml0aWFsPW8uc2hvd3NwaWtlcyxuPSEwKSwib24iIT09aXx8by5zaG93c3Bpa2VzfHwoaT0ib2ZmIil9cmV0dXJuIHQuX2Z1bGxMYXlvdXQuX2NhcnRlc2lhblNwaWtlc0VuYWJsZWQ9aSxufSxWLmF1dG9CaW49ZnVuY3Rpb24odCxlLHIsbixhLG8pe3ZhciBsLGM9cy5hZ2dOdW1zKE1hdGgubWluLG51bGwsdCksdT1zLmFnZ051bXMoTWF0aC5tYXgsbnVsbCx0KTtpZigiY2F0ZWdvcnkiPT09ZS50eXBlfHwibXVsdGljYXRlZ29yeSI9PT1lLnR5cGUpcmV0dXJue3N0YXJ0OmMtLjUsZW5kOnUrLjUsc2l6ZTpNYXRoLm1heCgxLE1hdGgucm91bmQobyl8fDEpLF9kYXRhU3Bhbjp1LWN9O2lmKGF8fChhPWUuY2FsZW5kYXIpLGw9ImxvZyI9PT1lLnR5cGU/e3R5cGU6ImxpbmVhciIscmFuZ2U6W2MsdV19Ont0eXBlOmUudHlwZSxyYW5nZTpzLnNpbXBsZU1hcChbYyx1XSxlLmMyciwwLGEpLGNhbGVuZGFyOmF9LFYuc2V0Q29udmVydChsKSxvPW8mJmQuZHRpY2sobyxsLnR5cGUpKWwuZHRpY2s9byxsLnRpY2swPWQudGljazAodm9pZCAwLGwudHlwZSxhKTtlbHNle3ZhciBmO2lmKHIpZj0odS1jKS9yO2Vsc2V7dmFyIGg9cy5kaXN0aW5jdFZhbHModCkscD1NYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKGgubWluRGlmZikvTWF0aC5MTjEwKSksbT1wKnMucm91bmRVcChoLm1pbkRpZmYvcCxbLjksMS45LDQuOSw5LjldLCEwKTtmPU1hdGgubWF4KG0sMipzLnN0ZGV2KHQpL01hdGgucG93KHQubGVuZ3RoLG4/LjI1Oi40KSksaShmKXx8KGY9MSl9Vi5hdXRvVGlja3MobCxmKX12YXIgZyx2PWwuZHRpY2sseT1WLnRpY2tJbmNyZW1lbnQoVi50aWNrRmlyc3QobCksdiwicmV2ZXJzZSIsYSk7aWYoIm51bWJlciI9PXR5cGVvZiB2KWc9KHk9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgbz0wLHM9MCxsPTAsYz0wO2Z1bmN0aW9uIHUoZSl7cmV0dXJuKDErMTAwKihlLXQpL3IuZHRpY2spJTEwMDwyfWZvcih2YXIgZj0wO2Y8ZS5sZW5ndGg7ZisrKWVbZl0lMT09MD9sKys6aShlW2ZdKXx8YysrLHUoZVtmXSkmJm8rKyx1KGVbZl0rci5kdGljay8yKSYmcysrO3ZhciBoPWUubGVuZ3RoLWM7aWYobD09PWgmJiJkYXRlIiE9PXIudHlwZSlyLmR0aWNrPDE/dD1uLS41KnIuZHRpY2s6KHQtPS41KStyLmR0aWNrPG4mJih0Kz1yLmR0aWNrKTtlbHNlIGlmKHM8LjEqaCYmKG8+LjMqaHx8dShuKXx8dShhKSkpe3ZhciBwPXIuZHRpY2svMjt0Kz10K3A8bj9wOi1wfXJldHVybiB0fSh5LHQsbCxjLHUpKSsoMStNYXRoLmZsb29yKCh1LXkpL3YpKSp2O2Vsc2UgZm9yKCJNIj09PWwuZHRpY2suY2hhckF0KDApJiYoeT1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPXMuZmluZEV4YWN0RGF0ZXMoZSxpKTtpZihhLmV4YWN0RGF5cz4uOCl7dmFyIG89TnVtYmVyKHIuc3Vic3RyKDEpKTthLmV4YWN0WWVhcnM+LjgmJm8lMTI9PTA/dD1WLnRpY2tJbmNyZW1lbnQodCwiTTYiLCJyZXZlcnNlIikrMS41Kk06YS5leGFjdE1vbnRocz4uOD90PVYudGlja0luY3JlbWVudCh0LCJNMSIsInJldmVyc2UiKSsxNS41Kk06dC09Uzt2YXIgbD1WLnRpY2tJbmNyZW1lbnQodCxyKTtpZihsPD1uKXJldHVybiBsfXJldHVybiB0fSh5LHQsdixjLGEpKSxnPXksMDtnPD11OylnPVYudGlja0luY3JlbWVudChnLHYsITEsYSk7cmV0dXJue3N0YXJ0OmUuYzJyKHksMCxhKSxlbmQ6ZS5jMnIoZywwLGEpLHNpemU6dixfZGF0YVNwYW46dS1jfX0sVi5wcmVwVGlja3M9ZnVuY3Rpb24odCxlKXt2YXIgcj1zLnNpbXBsZU1hcCh0LnJhbmdlLHQucjJsLHZvaWQgMCx2b2lkIDAsZSk7aWYodC5fZHRpY2tJbml0PXQuZHRpY2ssdC5fdGljazBJbml0PXQudGljazAsImF1dG8iPT09dC50aWNrbW9kZXx8IXQuZHRpY2spe3ZhciBuLGE9dC5udGlja3M7YXx8KCJjYXRlZ29yeSI9PT10LnR5cGV8fCJtdWx0aWNhdGVnb3J5Ij09PXQudHlwZT8obj10LnRpY2tmb250P3MuYmlnRm9udCh0LnRpY2tmb250LnNpemV8fDEyKToxNSxhPXQuX2xlbmd0aC9uKToobj0ieSI9PT10Ll9pZC5jaGFyQXQoMCk/NDA6ODAsYT1zLmNvbnN0cmFpbih0Ll9sZW5ndGgvbiw0LDkpKzEpLCJyYWRpYWxheGlzIj09PXQuX25hbWUmJihhKj0yKSksImFycmF5Ij09PXQudGlja21vZGUmJihhKj0xMDApLHQuX3JvdWdoRFRpY2s9TWF0aC5hYnMoclsxXS1yWzBdKS9hLFYuYXV0b1RpY2tzKHQsdC5fcm91Z2hEVGljayksdC5fbWluRHRpY2s+MCYmdC5kdGljazwyKnQuX21pbkR0aWNrJiYodC5kdGljaz10Ll9taW5EdGljayx0LnRpY2swPXQubDJyKHQuX2ZvcmNlVGljazApKX0icGVyaW9kIj09PXQudGlja2xhYmVsbW9kZSYmZnVuY3Rpb24odCl7dmFyIGU7ZnVuY3Rpb24gcigpe3JldHVybiEoaSh0LmR0aWNrKXx8Ik0iIT09dC5kdGljay5jaGFyQXQoMCkpfXZhciBuPXIoKSxhPVYuZ2V0VGlja0Zvcm1hdCh0KTtpZihhKXt2YXIgbz10Ll9kdGlja0luaXQhPT10LmR0aWNrOy8lW2ZMUXNTTVhdLy50ZXN0KGEpfHwoLyVbSEldLy50ZXN0KGEpPyhlPUUsbyYmIW4mJnQuZHRpY2s8RSYmKHQuZHRpY2s9RSkpOi8lcC8udGVzdChhKT8oZT1TLG8mJiFuJiZ0LmR0aWNrPFMmJih0LmR0aWNrPVMpKTovJVtBYWRlanV3eF0vLnRlc3QoYSk/KGU9TSxvJiYhbiYmdC5kdGljazxNJiYodC5kdGljaz1NKSk6LyVbVVZXXS8udGVzdChhKT8oZT1BLG8mJiFuJiZ0LmR0aWNrPEEmJih0LmR0aWNrPUEpKTovJVtCYm1dLy50ZXN0KGEpPyhlPVQsbyYmKG4/USh0LmR0aWNrKTwxOnQuZHRpY2s8aykmJih0LmR0aWNrPSJNMSIpKTovJVtxXS8udGVzdChhKT8oZT1iLG8mJihuP1EodC5kdGljayk8Mzp0LmR0aWNrPF8pJiYodC5kdGljaz0iTTMiKSk6LyVbWXldLy50ZXN0KGEpJiYoZT12LG8mJihuP1EodC5kdGljayk8MTI6dC5kdGljazx5KSYmKHQuZHRpY2s9Ik0xMiIpKSl9KG49cigpKSYmdC50aWNrMD09PXQuX2Rvd1RpY2swJiYodC50aWNrMD10Ll9yYXdUaWNrMCk7dC5fZGVmaW5lZERlbHRhPWV9KHQpLHQudGljazB8fCh0LnRpY2swPSJkYXRlIj09PXQudHlwZT8iMjAwMC0wMS0wMSI6MCksImRhdGUiPT09dC50eXBlJiZ0LmR0aWNrPC4xJiYodC5kdGljaz0uMSksc3QodCl9LFYuY2FsY1RpY2tzPWZ1bmN0aW9uKHQsZSl7Vi5wcmVwVGlja3ModCxlKTt2YXIgcj1zLnNpbXBsZU1hcCh0LnJhbmdlLHQucjJsLHZvaWQgMCx2b2lkIDAsZSk7aWYoImFycmF5Ij09PXQudGlja21vZGUpcmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPXQudGlja3ZhbHMscj10LnRpY2t0ZXh0LG49bmV3IEFycmF5KGUubGVuZ3RoKSxpPVgocy5zaW1wbGVNYXAodC5yYW5nZSx0LnIybCkpLGE9TWF0aC5taW4oaVswXSxpWzFdKSxvPU1hdGgubWF4KGlbMF0saVsxXSksbD0wO0FycmF5LmlzQXJyYXkocil8fChyPVtdKTt2YXIgYz0iY2F0ZWdvcnkiPT09dC50eXBlP3QuZDJsX25vYWRkOnQuZDJsOyJsb2ciPT09dC50eXBlJiYiTCIhPT1TdHJpbmcodC5kdGljaykuY2hhckF0KDApJiYodC5kdGljaz0iTCIrTWF0aC5wb3coMTAsTWF0aC5mbG9vcihNYXRoLm1pbih0LnJhbmdlWzBdLHQucmFuZ2VbMV0pKS0xKSk7Zm9yKHZhciB1PTA7dTxlLmxlbmd0aDt1Kyspe3ZhciBmPWMoZVt1XSk7Zj5hJiZmPG8mJih2b2lkIDA9PT1yW3VdP25bbF09Vi50aWNrVGV4dCh0LGYpOm5bbF09bHQodCxmLFN0cmluZyhyW3VdKSksbCsrKX1sPGUubGVuZ3RoJiZuLnNwbGljZShsLGUubGVuZ3RoLWwpO3QucmFuZ2VicmVha3MmJihuPW4uZmlsdGVyKChmdW5jdGlvbihlKXtyZXR1cm4gdC5tYXNrQnJlYWtzKGUueCkhPT1JfSkpKTtyZXR1cm4gbn0odCk7dmFyIG49WChyKSxhPW5bMF0sbz1uWzFdLGw9clsxXTxyWzBdLGM9TWF0aC5taW4oclswXSxyWzFdKSx1PU1hdGgubWF4KHJbMF0sclsxXSksZj0ibG9nIj09PXQudHlwZSYmIShpKHQuZHRpY2spfHwiTCI9PT10LmR0aWNrLmNoYXJBdCgwKSksaD0icGVyaW9kIj09PXQudGlja2xhYmVsbW9kZTtpZih0Ll90bWluPVYudGlja0ZpcnN0KHQsZSksdC5fdG1pbjxhIT09bClyZXR1cm5bXTsiY2F0ZWdvcnkiIT09dC50eXBlJiYibXVsdGljYXRlZ29yeSIhPT10LnR5cGV8fChvPWw/TWF0aC5tYXgoLS41LG8pOk1hdGgubWluKHQuX2NhdGVnb3JpZXMubGVuZ3RoLS41LG8pKTt2YXIgcD10Ll90bWluO3QucmFuZ2VicmVha3MmJnQuX3RpY2swSW5pdCE9PXQudGljazAmJihwPU10KHAsdCksbHx8KHA9Vi50aWNrSW5jcmVtZW50KHAsdC5kdGljaywhbCx0LmNhbGVuZGFyKSkpLGgmJihwPVYudGlja0luY3JlbWVudChwLHQuZHRpY2ssIWwsdC5jYWxlbmRhcikpO2Zvcih2YXIgZCxtPU1hdGgubWF4KDFlMyx0Ll9sZW5ndGh8fDApLEw9W10sQz1udWxsO2w/cD49bzpwPD1vO3A9Vi50aWNrSW5jcmVtZW50KHAsdC5kdGljayxsLHQuY2FsZW5kYXIpKXtpZih0LnJhbmdlYnJlYWtzJiYhbCl7aWYocDxhKWNvbnRpbnVlO2lmKHQubWFza0JyZWFrcyhwKT09PUkmJk10KHAsdCk+PXUpYnJlYWt9aWYoTC5sZW5ndGg+bXx8cD09PUMpYnJlYWs7Qz1wO3ZhciBQPSExO2YmJnAhPT0oMHxwKSYmKFA9ITApLEwucHVzaCh7bWlub3I6UCx2YWx1ZTpwfSl9aWYoaCYmZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dLnZhbHVlLGE9bixvPW4rMTtuPHQubGVuZ3RoLTE/KGE9bixvPW4rMSk6bj4wPyhhPW4tMSxvPW4pOihhPW4sbz1uKTt2YXIgcyxsPXRbYV0udmFsdWUsYz10W29dLnZhbHVlLHU9TWF0aC5hYnMoYy1sKSxmPXJ8fHUsaD0wO2Y+PXk/aD11Pj15JiZ1PD1nP3U6djpyPT09YiYmZj49Xz9oPXU+PV8mJnU8PXg/dTpiOmY+PWs/aD11Pj1rJiZ1PD13P3U6VDpyPT09QSYmZj49QT9oPUE6Zj49TT9oPU06cj09PVMmJmY+PVM/aD1TOnI9PT1FJiZmPj1FJiYoaD1FKSxoPj11JiYoaD11LHM9ITApO3ZhciBwPWkraDtpZihlLnJhbmdlYnJlYWtzJiZoPjApe2Zvcih2YXIgZD0wLG09MDttPDg0O20rKyl7dmFyIEw9KG0rLjUpLzg0O2UubWFza0JyZWFrcyhpKigxLUwpK0wqcCkhPT1JJiZkKyt9KGgqPWQvODQpfHwodFtuXS5kcm9wPSEwKSxzJiZ1PkEmJihoPXUpfShoPjB8fDA9PT1uKSYmKHRbbl0ucGVyaW9kWD1pK2gvMil9fShMLHQsdC5fZGVmaW5lZERlbHRhKSx0LnJhbmdlYnJlYWtzKXt2YXIgTz0ieSI9PT10Ll9pZC5jaGFyQXQoMCksej0xOyJhdXRvIj09PXQudGlja21vZGUmJih6PXQudGlja2ZvbnQ/dC50aWNrZm9udC5zaXplOjEyKTt2YXIgRD1OYU47Zm9yKGQ9TC5sZW5ndGgtMTtkPi0xO2QtLSlpZihMW2RdLmRyb3ApTC5zcGxpY2UoZCwxKTtlbHNle0xbZF0udmFsdWU9TXQoTFtkXS52YWx1ZSx0KTt2YXIgUj10LmMycChMW2RdLnZhbHVlKTsoTz9EPlItejpEPFIreik/TC5zcGxpY2UobD9kKzE6ZCwxKTpEPVJ9fUF0KHQpJiYzNjA9PT1NYXRoLmFicyhyWzFdLXJbMF0pJiZMLnBvcCgpLHQuX3RtYXg9KExbTC5sZW5ndGgtMV18fHt9KS52YWx1ZSx0Ll9wcmV2RGF0ZUhlYWQ9IiIsdC5faW5DYWxjVGlja3M9ITA7dmFyIEYsQixOPVtdO2ZvcihkPTA7ZDxMLmxlbmd0aDtkKyspe3ZhciBqPUxbZF0ubWlub3IsVT1MW2RdLnZhbHVlO0Y9Vi50aWNrVGV4dCh0LFUsITEsaiksdm9pZCAwIT09KEI9TFtkXS5wZXJpb2RYKSYmKEYucGVyaW9kWD1CLChCPnV8fEI8YykmJihCPnUmJihGLnBlcmlvZFg9dSksQjxjJiYoRi5wZXJpb2RYPWMpLEYudGV4dD0iICIsdC5fcHJldkRhdGVIZWFkPSIiKSksTi5wdXNoKEYpfXJldHVybiB0Ll9pbkNhbGNUaWNrcz0hMSxOfTt2YXIgJD1bMiw1LDEwXSx0dD1bMSwyLDMsNiwxMl0sZXQ9WzEsMiw1LDEwLDE1LDMwXSxydD1bMSwyLDMsNywxNF0sbnQ9Wy0uMDQ2LDAsLjMwMSwuNDc3LC42MDIsLjY5OSwuNzc4LC44NDUsLjkwMywuOTU0LDFdLGl0PVstLjMwMSwwLC4zMDEsLjY5OSwxXSxhdD1bMTUsMzAsNDUsOTAsMTgwXTtmdW5jdGlvbiBvdCh0LGUscil7cmV0dXJuIGUqcy5yb3VuZFVwKHQvZSxyKX1mdW5jdGlvbiBzdCh0KXt2YXIgZT10LmR0aWNrO2lmKHQuX3RpY2tleHBvbmVudD0wLGkoZSl8fCJzdHJpbmciPT10eXBlb2YgZXx8KGU9MSksImNhdGVnb3J5IiE9PXQudHlwZSYmIm11bHRpY2F0ZWdvcnkiIT09dC50eXBlfHwodC5fdGlja3JvdW5kPW51bGwpLCJkYXRlIj09PXQudHlwZSl7dmFyIHI9dC5yMmwodC50aWNrMCksbj10LmwycihyKS5yZXBsYWNlKC8oXi18aSkvZywiIiksYT1uLmxlbmd0aDtpZigiTSI9PT1TdHJpbmcoZSkuY2hhckF0KDApKWE+MTB8fCIwMS0wMSIhPT1uLnN1YnN0cig1KT90Ll90aWNrcm91bmQ9ImQiOnQuX3RpY2tyb3VuZD0rZS5zdWJzdHIoMSklMTI9PTA/InkiOiJtIjtlbHNlIGlmKGU+PU0mJmE8PTEwfHxlPj0xNSpNKXQuX3RpY2tyb3VuZD0iZCI7ZWxzZSBpZihlPj1MJiZhPD0xNnx8ZT49RSl0Ll90aWNrcm91bmQ9Ik0iO2Vsc2UgaWYoZT49QyYmYTw9MTl8fGU+PUwpdC5fdGlja3JvdW5kPSJTIjtlbHNle3ZhciBvPXQubDJyKHIrZSkucmVwbGFjZSgvXi0vLCIiKS5sZW5ndGg7dC5fdGlja3JvdW5kPU1hdGgubWF4KGEsbyktMjAsdC5fdGlja3JvdW5kPDAmJih0Ll90aWNrcm91bmQ9NCl9fWVsc2UgaWYoaShlKXx8IkwiPT09ZS5jaGFyQXQoMCkpe3ZhciBzPXQucmFuZ2UubWFwKHQucjJkfHxOdW1iZXIpO2koZSl8fChlPU51bWJlcihlLnN1YnN0cigxKSkpLHQuX3RpY2tyb3VuZD0yLU1hdGguZmxvb3IoTWF0aC5sb2coZSkvTWF0aC5MTjEwKy4wMSk7dmFyIGw9TWF0aC5tYXgoTWF0aC5hYnMoc1swXSksTWF0aC5hYnMoc1sxXSkpLGM9TWF0aC5mbG9vcihNYXRoLmxvZyhsKS9NYXRoLkxOMTArLjAxKSx1PXZvaWQgMD09PXQubWluZXhwb25lbnQ/Mzp0Lm1pbmV4cG9uZW50O01hdGguYWJzKGMpPnUmJih1dCh0LmV4cG9uZW50Zm9ybWF0KSYmIWZ0KGMpP3QuX3RpY2tleHBvbmVudD0zKk1hdGgucm91bmQoKGMtMSkvMyk6dC5fdGlja2V4cG9uZW50PWMpfWVsc2UgdC5fdGlja3JvdW5kPW51bGx9ZnVuY3Rpb24gbHQodCxlLHIpe3ZhciBuPXQudGlja2ZvbnR8fHt9O3JldHVybnt4OmUsZHg6MCxkeTowLHRleHQ6cnx8IiIsZm9udFNpemU6bi5zaXplLGZvbnQ6bi5mYW1pbHksZm9udENvbG9yOm4uY29sb3J9fVYuYXV0b1RpY2tzPWZ1bmN0aW9uKHQsZSl7dmFyIHI7ZnVuY3Rpb24gbih0KXtyZXR1cm4gTWF0aC5wb3codCxNYXRoLmZsb29yKE1hdGgubG9nKGUpL01hdGguTE4xMCkpfWlmKCJkYXRlIj09PXQudHlwZSl7dC50aWNrMD1zLmRhdGVUaWNrMCh0LmNhbGVuZGFyLDApO3ZhciBhPTIqZTtpZihhPnYpZS89dixyPW4oMTApLHQuZHRpY2s9Ik0iKzEyKm90KGUsciwkKTtlbHNlIGlmKGE+VCllLz1ULHQuZHRpY2s9Ik0iK290KGUsMSx0dCk7ZWxzZSBpZihhPk0pe3QuZHRpY2s9b3QoZSxNLHQuX2hhc0RheU9mV2Vla0JyZWFrcz9bMSwyLDcsMTRdOnJ0KTt2YXIgbz1WLmdldFRpY2tGb3JtYXQodCksbD0icGVyaW9kIj09PXQudGlja2xhYmVsbW9kZTtsJiYodC5fcmF3VGljazA9dC50aWNrMCksLyVbdVZXXS8udGVzdChvKT90LnRpY2swPXMuZGF0ZVRpY2swKHQuY2FsZW5kYXIsMik6dC50aWNrMD1zLmRhdGVUaWNrMCh0LmNhbGVuZGFyLDEpLGwmJih0Ll9kb3dUaWNrMD10LnRpY2swKX1lbHNlIGE+RT90LmR0aWNrPW90KGUsRSx0dCk6YT5MP3QuZHRpY2s9b3QoZSxMLGV0KTphPkM/dC5kdGljaz1vdChlLEMsZXQpOihyPW4oMTApLHQuZHRpY2s9b3QoZSxyLCQpKX1lbHNlIGlmKCJsb2ciPT09dC50eXBlKXt0LnRpY2swPTA7dmFyIGM9cy5zaW1wbGVNYXAodC5yYW5nZSx0LnIybCk7aWYoZT4uNyl0LmR0aWNrPU1hdGguY2VpbChlKTtlbHNlIGlmKE1hdGguYWJzKGNbMV0tY1swXSk8MSl7dmFyIHU9MS41Kk1hdGguYWJzKChjWzFdLWNbMF0pL2UpO2U9TWF0aC5hYnMoTWF0aC5wb3coMTAsY1sxXSktTWF0aC5wb3coMTAsY1swXSkpL3Uscj1uKDEwKSx0LmR0aWNrPSJMIitvdChlLHIsJCl9ZWxzZSB0LmR0aWNrPWU+LjM/IkQyIjoiRDEifWVsc2UiY2F0ZWdvcnkiPT09dC50eXBlfHwibXVsdGljYXRlZ29yeSI9PT10LnR5cGU/KHQudGljazA9MCx0LmR0aWNrPU1hdGguY2VpbChNYXRoLm1heChlLDEpKSk6QXQodCk/KHQudGljazA9MCxyPTEsdC5kdGljaz1vdChlLHIsYXQpKToodC50aWNrMD0wLHI9bigxMCksdC5kdGljaz1vdChlLHIsJCkpO2lmKDA9PT10LmR0aWNrJiYodC5kdGljaz0xKSwhaSh0LmR0aWNrKSYmInN0cmluZyIhPXR5cGVvZiB0LmR0aWNrKXt2YXIgZj10LmR0aWNrO3Rocm93IHQuZHRpY2s9MSwiYXguZHRpY2sgZXJyb3I6ICIrU3RyaW5nKGYpfX0sVi50aWNrSW5jcmVtZW50PWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvPXI/LTE6MTtpZihpKGUpKXJldHVybiBzLmluY3JlbWVudCh0LG8qZSk7dmFyIGw9ZS5jaGFyQXQoMCksYz1vKk51bWJlcihlLnN1YnN0cigxKSk7aWYoIk0iPT09bClyZXR1cm4gcy5pbmNyZW1lbnRNb250aCh0LGMsYSk7aWYoIkwiPT09bClyZXR1cm4gTWF0aC5sb2coTWF0aC5wb3coMTAsdCkrYykvTWF0aC5MTjEwO2lmKCJEIj09PWwpe3ZhciB1PSJEMiI9PT1lP2l0Om50LGY9dCsuMDEqbyxoPXMucm91bmRVcChzLm1vZChmLDEpLHUscik7cmV0dXJuIE1hdGguZmxvb3IoZikrTWF0aC5sb2cobi5yb3VuZChNYXRoLnBvdygxMCxoKSwxKSkvTWF0aC5MTjEwfXRocm93InVucmVjb2duaXplZCBkdGljayAiK1N0cmluZyhlKX0sVi50aWNrRmlyc3Q9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnIybHx8TnVtYmVyLGE9cy5zaW1wbGVNYXAodC5yYW5nZSxyLHZvaWQgMCx2b2lkIDAsZSksbz1hWzFdPGFbMF0sbD1vP01hdGguZmxvb3I6TWF0aC5jZWlsLGM9WChhKVswXSx1PXQuZHRpY2ssZj1yKHQudGljazApO2lmKGkodSkpe3ZhciBoPWwoKGMtZikvdSkqdStmO3JldHVybiJjYXRlZ29yeSIhPT10LnR5cGUmJiJtdWx0aWNhdGVnb3J5IiE9PXQudHlwZXx8KGg9cy5jb25zdHJhaW4oaCwwLHQuX2NhdGVnb3JpZXMubGVuZ3RoLTEpKSxofXZhciBwPXUuY2hhckF0KDApLGQ9TnVtYmVyKHUuc3Vic3RyKDEpKTtpZigiTSI9PT1wKXtmb3IodmFyIG0sZyx2LHk9MCx4PWY7eTwxMDspe2lmKCgobT1WLnRpY2tJbmNyZW1lbnQoeCx1LG8sdC5jYWxlbmRhcikpLWMpKih4LWMpPD0wKXJldHVybiBvP01hdGgubWluKHgsbSk6TWF0aC5tYXgoeCxtKTtnPShjLSh4K20pLzIpLyhtLXgpLHY9cCsoTWF0aC5hYnMoTWF0aC5yb3VuZChnKSl8fDEpKmQseD1WLnRpY2tJbmNyZW1lbnQoeCx2LGc8MD8hbzpvLHQuY2FsZW5kYXIpLHkrK31yZXR1cm4gcy5lcnJvcigidGlja0ZpcnN0IGRpZCBub3QgY29udmVyZ2UiLHQpLHh9aWYoIkwiPT09cClyZXR1cm4gTWF0aC5sb2cobCgoTWF0aC5wb3coMTAsYyktZikvZCkqZCtmKS9NYXRoLkxOMTA7aWYoIkQiPT09cCl7dmFyIGI9IkQyIj09PXU/aXQ6bnQsXz1zLnJvdW5kVXAocy5tb2QoYywxKSxiLG8pO3JldHVybiBNYXRoLmZsb29yKGMpK01hdGgubG9nKG4ucm91bmQoTWF0aC5wb3coMTAsXyksMSkpL01hdGguTE4xMH10aHJvdyJ1bnJlY29nbml6ZWQgZHRpY2sgIitTdHJpbmcodSl9LFYudGlja1RleHQ9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsbz1sdCh0LGUpLGw9ImFycmF5Ij09PXQudGlja21vZGUsYz1yfHxsLHU9dC50eXBlLGY9ImNhdGVnb3J5Ij09PXU/dC5kMmxfbm9hZGQ6dC5kMmw7aWYobCYmQXJyYXkuaXNBcnJheSh0LnRpY2t0ZXh0KSl7dmFyIGg9cy5zaW1wbGVNYXAodC5yYW5nZSx0LnIybCkscD0oTWF0aC5hYnMoaFsxXS1oWzBdKS0odC5fbEJyZWFrc3x8MCkpLzFlNDtmb3IoYT0wO2E8dC50aWNrdGV4dC5sZW5ndGgmJiEoTWF0aC5hYnMoZS1mKHQudGlja3ZhbHNbYV0pKTxwKTthKyspO2lmKGE8dC50aWNrdGV4dC5sZW5ndGgpcmV0dXJuIG8udGV4dD1TdHJpbmcodC50aWNrdGV4dFthXSksb31mdW5jdGlvbiBkKG4pe2lmKHZvaWQgMD09PW4pcmV0dXJuITA7aWYocilyZXR1cm4ibm9uZSI9PT1uO3ZhciBpPXtmaXJzdDp0Ll90bWluLGxhc3Q6dC5fdG1heH1bbl07cmV0dXJuImFsbCIhPT1uJiZlIT09aX12YXIgbT1yPyJuZXZlciI6Im5vbmUiIT09dC5leHBvbmVudGZvcm1hdCYmZCh0LnNob3dleHBvbmVudCk/ImhpZGUiOiIiO2lmKCJkYXRlIj09PXU/ZnVuY3Rpb24odCxlLHIsbil7dmFyIGE9dC5fdGlja3JvdW5kLG89ciYmdC5ob3ZlcmZvcm1hdHx8Vi5nZXRUaWNrRm9ybWF0KHQpO24mJihhPWkoYSk/NDp7eToibSIsbToiZCIsZDoiTSIsTToiUyIsUzo0fVthXSk7dmFyIGwsYz1zLmZvcm1hdERhdGUoZS54LG8sYSx0Ll9kYXRlRm9ybWF0LHQuY2FsZW5kYXIsdC5fZXh0cmFGb3JtYXQpLHU9Yy5pbmRleE9mKCJcbiIpOy0xIT09dSYmKGw9Yy5zdWJzdHIodSsxKSxjPWMuc3Vic3RyKDAsdSkpO24mJigiMDA6MDA6MDAiPT09Y3x8IjAwOjAwIj09PWM/KGM9bCxsPSIiKTo4PT09Yy5sZW5ndGgmJihjPWMucmVwbGFjZSgvOjAwJC8sIiIpKSk7aWYobClpZihyKSJkIj09PWE/Yys9IiwgIitsOmM9bCsoYz8iLCAiK2M6IiIpO2Vsc2UgaWYodC5faW5DYWxjVGlja3MmJnQuX3ByZXZEYXRlSGVhZD09PWwpe3ZhciBmPVN0KHQpLGg9dC5fcmVhbFNpZGV8fHQuc2lkZTsoIWYmJiJ0b3AiPT09aHx8ZiYmImJvdHRvbSI9PT1oKSYmKGMrPSI8YnI+ICIpfWVsc2UgdC5fcHJldkRhdGVIZWFkPWwsYys9Ijxicj4iK2w7ZS50ZXh0PWN9KHQsbyxyLGMpOiJsb2ciPT09dT9mdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPXQuZHRpY2ssbD1lLngsYz10LnRpY2tmb3JtYXQsdT0ic3RyaW5nIj09dHlwZW9mIG8mJm8uY2hhckF0KDApOyJuZXZlciI9PT1hJiYoYT0iIik7biYmIkwiIT09dSYmKG89IkwzIix1PSJMIik7aWYoY3x8IkwiPT09dSllLnRleHQ9aHQoTWF0aC5wb3coMTAsbCksdCxhLG4pO2Vsc2UgaWYoaShvKXx8IkQiPT09dSYmcy5tb2QobCsuMDEsMSk8LjEpe3ZhciBmPU1hdGgucm91bmQobCksaD1NYXRoLmFicyhmKSxwPXQuZXhwb25lbnRmb3JtYXQ7InBvd2VyIj09PXB8fHV0KHApJiZmdChmKT8oZS50ZXh0PTA9PT1mPzE6MT09PWY/IjEwIjoiMTA8c3VwPiIrKGY+MT8iIjpQKStoKyI8L3N1cD4iLGUuZm9udFNpemUqPTEuMjUpOigiZSI9PT1wfHwiRSI9PT1wKSYmaD4yP2UudGV4dD0iMSIrcCsoZj4wPyIrIjpQKStoOihlLnRleHQ9aHQoTWF0aC5wb3coMTAsbCksdCwiIiwiZmFrZWhvdmVyIiksIkQxIj09PW8mJiJ5Ij09PXQuX2lkLmNoYXJBdCgwKSYmKGUuZHktPWUuZm9udFNpemUvNikpfWVsc2V7aWYoIkQiIT09dSl0aHJvdyJ1bnJlY29nbml6ZWQgZHRpY2sgIitTdHJpbmcobyk7ZS50ZXh0PVN0cmluZyhNYXRoLnJvdW5kKE1hdGgucG93KDEwLHMubW9kKGwsMSkpKSksZS5mb250U2l6ZSo9Ljc1fWlmKCJEMSI9PT10LmR0aWNrKXt2YXIgZD1TdHJpbmcoZS50ZXh0KS5jaGFyQXQoMCk7IjAiIT09ZCYmIjEiIT09ZHx8KCJ5Ij09PXQuX2lkLmNoYXJBdCgwKT9lLmR4LT1lLmZvbnRTaXplLzQ6KGUuZHkrPWUuZm9udFNpemUvMixlLmR4Kz0odC5yYW5nZVsxXT50LnJhbmdlWzBdPzE6LTEpKmUuZm9udFNpemUqKGw8MD8uNTouMjUpKSl9fSh0LG8sMCxjLG0pOiJjYXRlZ29yeSI9PT11P2Z1bmN0aW9uKHQsZSl7dmFyIHI9dC5fY2F0ZWdvcmllc1tNYXRoLnJvdW5kKGUueCldO3ZvaWQgMD09PXImJihyPSIiKTtlLnRleHQ9U3RyaW5nKHIpfSh0LG8pOiJtdWx0aWNhdGVnb3J5Ij09PXU/ZnVuY3Rpb24odCxlLHIpe3ZhciBuPU1hdGgucm91bmQoZS54KSxpPXQuX2NhdGVnb3JpZXNbbl18fFtdLGE9dm9pZCAwPT09aVsxXT8iIjpTdHJpbmcoaVsxXSksbz12b2lkIDA9PT1pWzBdPyIiOlN0cmluZyhpWzBdKTtyP2UudGV4dD1vKyIgLSAiK2E6KGUudGV4dD1hLGUudGV4dDI9byl9KHQsbyxyKTpBdCh0KT9mdW5jdGlvbih0LGUscixuLGkpe2lmKCJyYWRpYW5zIiE9PXQudGhldGF1bml0fHxyKWUudGV4dD1odChlLngsdCxpLG4pO2Vsc2V7dmFyIGE9ZS54LzE4MDtpZigwPT09YSllLnRleHQ9IjAiO2Vsc2V7dmFyIG89ZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSh0LGUpe3JldHVybiBNYXRoLmFicyh0LWUpPD0xZS02fXZhciByPWZ1bmN0aW9uKHQpe2Zvcih2YXIgcj0xOyFlKE1hdGgucm91bmQodCpyKS9yLHQpOylyKj0xMDtyZXR1cm4gcn0odCksbj10KnIsaT1NYXRoLmFicyhmdW5jdGlvbiB0KHIsbil7cmV0dXJuIGUobiwwKT9yOnQobixyJW4pfShuLHIpKTtyZXR1cm5bTWF0aC5yb3VuZChuL2kpLE1hdGgucm91bmQoci9pKV19KGEpO2lmKG9bMV0+PTEwMCllLnRleHQ9aHQocy5kZWcycmFkKGUueCksdCxpLG4pO2Vsc2V7dmFyIGw9ZS54PDA7MT09PW9bMV0/MT09PW9bMF0/ZS50ZXh0PSJcdTAzYzAiOmUudGV4dD1vWzBdKyJcdTAzYzAiOmUudGV4dD1bIjxzdXA+IixvWzBdLCI8L3N1cD4iLCJcdTIwNDQiLCI8c3ViPiIsb1sxXSwiPC9zdWI+IiwiXHUwM2MwIl0uam9pbigiIiksbCYmKGUudGV4dD1QK2UudGV4dCl9fX19KHQsbyxyLGMsbSk6ZnVuY3Rpb24odCxlLHIsbixpKXsibmV2ZXIiPT09aT9pPSIiOiJhbGwiPT09dC5zaG93ZXhwb25lbnQmJk1hdGguYWJzKGUueC90LmR0aWNrKTwxZS02JiYoaT0iaGlkZSIpO2UudGV4dD1odChlLngsdCxpLG4pfSh0LG8sMCxjLG0pLG58fCh0LnRpY2twcmVmaXgmJiFkKHQuc2hvd3RpY2twcmVmaXgpJiYoby50ZXh0PXQudGlja3ByZWZpeCtvLnRleHQpLHQudGlja3N1ZmZpeCYmIWQodC5zaG93dGlja3N1ZmZpeCkmJihvLnRleHQrPXQudGlja3N1ZmZpeCkpLCJib3VuZGFyaWVzIj09PXQudGlja3Nvbnx8dC5zaG93ZGl2aWRlcnMpe3ZhciBnPWZ1bmN0aW9uKGUpe3ZhciByPXQubDJwKGUpO3JldHVybiByPj0wJiZyPD10Ll9sZW5ndGg/ZTpudWxsfTtvLnhibmQ9W2coby54LS41KSxnKG8ueCt0LmR0aWNrLS41KV19cmV0dXJuIG99LFYuaG92ZXJMYWJlbFRleHQ9ZnVuY3Rpb24odCxlLHIpe3ImJih0PXMuZXh0ZW5kRmxhdCh7fSx0LHtob3ZlcmZvcm1hdDpyfSkpO3ZhciBuPUFycmF5LmlzQXJyYXkoZSk/ZVswXTplLGk9QXJyYXkuaXNBcnJheShlKT9lWzFdOnZvaWQgMDtpZih2b2lkIDAhPT1pJiZpIT09bilyZXR1cm4gVi5ob3ZlckxhYmVsVGV4dCh0LG4scikrIiAtICIrVi5ob3ZlckxhYmVsVGV4dCh0LGkscik7dmFyIGE9ImxvZyI9PT10LnR5cGUmJm48PTAsbz1WLnRpY2tUZXh0KHQsdC5jMmwoYT8tbjpuKSwiaG92ZXIiKS50ZXh0O3JldHVybiBhPzA9PT1uPyIwIjpQK286b307dmFyIGN0PVsiZiIsInAiLCJuIiwiXHUwM2JjIiwibSIsIiIsImsiLCJNIiwiRyIsIlQiXTtmdW5jdGlvbiB1dCh0KXtyZXR1cm4iU0kiPT09dHx8IkIiPT09dH1mdW5jdGlvbiBmdCh0KXtyZXR1cm4gdD4xNHx8dDwtMTV9ZnVuY3Rpb24gaHQodCxlLHIsbil7dmFyIGE9dDwwLG89ZS5fdGlja3JvdW5kLGw9cnx8ZS5leHBvbmVudGZvcm1hdHx8IkIiLGM9ZS5fdGlja2V4cG9uZW50LHU9Vi5nZXRUaWNrRm9ybWF0KGUpLGY9ZS5zZXBhcmF0ZXRob3VzYW5kcztpZihuKXt2YXIgaD17ZXhwb25lbnRmb3JtYXQ6bCxtaW5leHBvbmVudDplLm1pbmV4cG9uZW50LGR0aWNrOiJub25lIj09PWUuc2hvd2V4cG9uZW50P2UuZHRpY2s6aSh0KSYmTWF0aC5hYnModCl8fDEscmFuZ2U6Im5vbmUiPT09ZS5zaG93ZXhwb25lbnQ/ZS5yYW5nZS5tYXAoZS5yMmQpOlswLHR8fDFdfTtzdChoKSxvPShOdW1iZXIoaC5fdGlja3JvdW5kKXx8MCkrNCxjPWguX3RpY2tleHBvbmVudCxlLmhvdmVyZm9ybWF0JiYodT1lLmhvdmVyZm9ybWF0KX1pZih1KXJldHVybiBlLl9udW1Gb3JtYXQodSkodCkucmVwbGFjZSgvLS9nLFApO3ZhciBwLGQ9TWF0aC5wb3coMTAsLW8pLzI7aWYoIm5vbmUiPT09bCYmKGM9MCksKHQ9TWF0aC5hYnModCkpPGQpdD0iMCIsYT0hMTtlbHNle2lmKHQrPWQsYyYmKHQqPU1hdGgucG93KDEwLC1jKSxvKz1jKSwwPT09byl0PVN0cmluZyhNYXRoLmZsb29yKHQpKTtlbHNlIGlmKG88MCl7dD0odD1TdHJpbmcoTWF0aC5yb3VuZCh0KSkpLnN1YnN0cigwLHQubGVuZ3RoK28pO2Zvcih2YXIgbT1vO208MDttKyspdCs9IjAifWVsc2V7dmFyIGc9KHQ9U3RyaW5nKHQpKS5pbmRleE9mKCIuIikrMTtnJiYodD10LnN1YnN0cigwLGcrbykucmVwbGFjZSgvXC4/MCskLywiIikpfXQ9cy5udW1TZXBhcmF0ZSh0LGUuX3NlcGFyYXRvcnMsZil9YyYmImhpZGUiIT09bCYmKHV0KGwpJiZmdChjKSYmKGw9InBvd2VyIikscD1jPDA/UCstYzoicG93ZXIiIT09bD8iKyIrYzpTdHJpbmcoYyksImUiPT09bHx8IkUiPT09bD90Kz1sK3A6InBvd2VyIj09PWw/dCs9Ilx4ZDcxMDxzdXA+IitwKyI8L3N1cD4iOiJCIj09PWwmJjk9PT1jP3QrPSJCIjp1dChsKSYmKHQrPWN0W2MvMys1XSkpO3JldHVybiBhP1ArdDp0fWZ1bmN0aW9uIHB0KHQsZSl7Zm9yKHZhciByPVtdLG49e30saT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgYT1lW2ldO25bYS50ZXh0Ml0/blthLnRleHQyXS5wdXNoKGEueCk6blthLnRleHQyXT1bYS54XX1mb3IodmFyIG8gaW4gbilyLnB1c2gobHQodCxzLmludGVycChuW29dLC41KSxvKSk7cmV0dXJuIHJ9ZnVuY3Rpb24gZHQodCl7cmV0dXJuIHZvaWQgMCE9PXQucGVyaW9kWD90LnBlcmlvZFg6dC54fWZ1bmN0aW9uIG10KHQpe3JldHVyblt0LnRleHQsdC54LHQuYXhJbmZvLHQuZm9udCx0LmZvbnRTaXplLHQuZm9udENvbG9yXS5qb2luKCJfIil9ZnVuY3Rpb24gZ3QodCl7dmFyIGU9dC50aXRsZS5mb250LnNpemUscj0odC50aXRsZS50ZXh0Lm1hdGNoKGMuQlJfVEFHX0FMTCl8fFtdKS5sZW5ndGg7cmV0dXJuIHQudGl0bGUuaGFzT3duUHJvcGVydHkoInN0YW5kb2ZmIik/cj9lKihOK3Iqaik6ZSpOOnI/ZSoocisxKSpqOmV9ZnVuY3Rpb24gdnQodCxlKXt2YXIgcj10LmwycChlKTtyZXR1cm4gcj4xJiZyPHQuX2xlbmd0aC0xfWZ1bmN0aW9uIHl0KHQpe3ZhciBlPW4uc2VsZWN0KHQpLHI9ZS5zZWxlY3QoIi50ZXh0LW1hdGgtZ3JvdXAiKTtyZXR1cm4gci5lbXB0eSgpP2Uuc2VsZWN0KCJ0ZXh0Iik6cn1mdW5jdGlvbiB4dCh0KXtyZXR1cm4gdC5faWQrIi5hdXRvbWFyZ2luIn1mdW5jdGlvbiBidCh0KXtyZXR1cm4geHQodCkrIi5taXJyb3IifWZ1bmN0aW9uIF90KHQpe3JldHVybiB0Ll9pZCsiLnJhbmdlc2xpZGVyIn1mdW5jdGlvbiB3dCh0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKS0xPT09dC5pbmRleE9mKGVbcl0pJiZ0LnB1c2goZVtyXSl9ZnVuY3Rpb24gVHQodCxlLHIpe3ZhciBuLGksYT1bXSxvPVtdLGw9dC5sYXlvdXQ7Zm9yKG49MDtuPGUubGVuZ3RoO24rKylhLnB1c2goVi5nZXRGcm9tSWQodCxlW25dKSk7Zm9yKG49MDtuPHIubGVuZ3RoO24rKylvLnB1c2goVi5nZXRGcm9tSWQodCxyW25dKSk7dmFyIGM9T2JqZWN0LmtleXMocCksdT1bImFuY2hvciIsImRvbWFpbiIsIm92ZXJsYXlpbmciLCJwb3NpdGlvbiIsInNpZGUiLCJ0aWNrYW5nbGUiLCJlZGl0VHlwZSJdLGY9WyJsaW5lYXIiLCJsb2ciXTtmb3Iobj0wO248Yy5sZW5ndGg7bisrKXt2YXIgaD1jW25dLGQ9YVswXVtoXSxtPW9bMF1baF0sZz0hMCx2PSExLHk9ITE7aWYoIl8iIT09aC5jaGFyQXQoMCkmJiJmdW5jdGlvbiIhPXR5cGVvZiBkJiYtMT09PXUuaW5kZXhPZihoKSl7Zm9yKGk9MTtpPGEubGVuZ3RoJiZnO2krKyl7dmFyIHg9YVtpXVtoXTsidHlwZSI9PT1oJiYtMSE9PWYuaW5kZXhPZihkKSYmLTEhPT1mLmluZGV4T2YoeCkmJmQhPT14P3Y9ITA6eCE9PWQmJihnPSExKX1mb3IoaT0xO2k8by5sZW5ndGgmJmc7aSsrKXt2YXIgYj1vW2ldW2hdOyJ0eXBlIj09PWgmJi0xIT09Zi5pbmRleE9mKG0pJiYtMSE9PWYuaW5kZXhPZihiKSYmbSE9PWI/eT0hMDpvW2ldW2hdIT09bSYmKGc9ITEpfWcmJih2JiYobFthWzBdLl9uYW1lXS50eXBlPSJsaW5lYXIiKSx5JiYobFtvWzBdLl9uYW1lXS50eXBlPSJsaW5lYXIiKSxrdChsLGgsYSxvLHQuX2Z1bGxMYXlvdXQuX2RmbHRUaXRsZSkpfX1mb3Iobj0wO248dC5fZnVsbExheW91dC5hbm5vdGF0aW9ucy5sZW5ndGg7bisrKXt2YXIgXz10Ll9mdWxsTGF5b3V0LmFubm90YXRpb25zW25dOy0xIT09ZS5pbmRleE9mKF8ueHJlZikmJi0xIT09ci5pbmRleE9mKF8ueXJlZikmJnMuc3dhcEF0dHJzKGwuYW5ub3RhdGlvbnNbbl0sWyI/Il0pfX1mdW5jdGlvbiBrdCh0LGUscixuLGkpe3ZhciBhLG89cy5uZXN0ZWRQcm9wZXJ0eSxsPW8odFtyWzBdLl9uYW1lXSxlKS5nZXQoKSxjPW8odFtuWzBdLl9uYW1lXSxlKS5nZXQoKTtmb3IoInRpdGxlIj09PWUmJihsJiZsLnRleHQ9PT1pLngmJihsLnRleHQ9aS55KSxjJiZjLnRleHQ9PT1pLnkmJihjLnRleHQ9aS54KSksYT0wO2E8ci5sZW5ndGg7YSsrKW8odCxyW2FdLl9uYW1lKyIuIitlKS5zZXQoYyk7Zm9yKGE9MDthPG4ubGVuZ3RoO2ErKylvKHQsblthXS5fbmFtZSsiLiIrZSkuc2V0KGwpfWZ1bmN0aW9uIEF0KHQpe3JldHVybiJhbmd1bGFyYXhpcyI9PT10Ll9pZH1mdW5jdGlvbiBNdCh0LGUpe2Zvcih2YXIgcj1lLl9yYW5nZWJyZWFrcy5sZW5ndGgsbj0wO248cjtuKyspe3ZhciBpPWUuX3JhbmdlYnJlYWtzW25dO2lmKHQ+PWkubWluJiZ0PGkubWF4KXJldHVybiBpLm1heH1yZXR1cm4gdH1mdW5jdGlvbiBTdCh0KXtyZXR1cm4tMSE9PSh0LnRpY2tsYWJlbHBvc2l0aW9ufHwiIikuaW5kZXhPZigiaW5zaWRlIil9ZnVuY3Rpb24gRXQodCxlKXtTdCh0Ll9hbmNob3JBeGlzfHx7fSkmJnQuX2hpZGVDb3VudGVyQXhpc0luc2lkZVRpY2tMYWJlbHMmJnQuX2hpZGVDb3VudGVyQXhpc0luc2lkZVRpY2tMYWJlbHMoZSl9Vi5nZXRUaWNrRm9ybWF0PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGEsbyxzLGw7ZnVuY3Rpb24gYyh0KXtyZXR1cm4ic3RyaW5nIiE9dHlwZW9mIHQ/dDpOdW1iZXIodC5yZXBsYWNlKCJNIiwiIikpKlR9ZnVuY3Rpb24gdSh0LGUpe3ZhciByPVsiTCIsIkQiXTtpZih0eXBlb2YgdD09dHlwZW9mIGUpe2lmKCJudW1iZXIiPT10eXBlb2YgdClyZXR1cm4gdC1lO3ZhciBuPXIuaW5kZXhPZih0LmNoYXJBdCgwKSksaT1yLmluZGV4T2YoZS5jaGFyQXQoMCkpO3JldHVybiBuPT09aT9OdW1iZXIodC5yZXBsYWNlKC8oTHxEKS9nLCIiKSktTnVtYmVyKGUucmVwbGFjZSgvKEx8RCkvZywiIikpOm4taX1yZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQ/MTotMX1mdW5jdGlvbiBmKHQsZSl7dmFyIHI9bnVsbD09PWVbMF0sbj1udWxsPT09ZVsxXSxpPXUodCxlWzBdKT49MCxhPXUodCxlWzFdKTw9MDtyZXR1cm4ocnx8aSkmJihufHxhKX1pZih0LnRpY2tmb3JtYXRzdG9wcyYmdC50aWNrZm9ybWF0c3RvcHMubGVuZ3RoPjApc3dpdGNoKHQudHlwZSl7Y2FzZSJkYXRlIjpjYXNlImxpbmVhciI6Zm9yKGU9MDtlPHQudGlja2Zvcm1hdHN0b3BzLmxlbmd0aDtlKyspaWYoKG49dC50aWNrZm9ybWF0c3RvcHNbZV0pLmVuYWJsZWQmJihpPXQuZHRpY2ssYT1uLmR0aWNrcmFuZ2Usbz12b2lkIDAscz12b2lkIDAsbD12b2lkIDAsbz1jfHxmdW5jdGlvbih0KXtyZXR1cm4gdH0scz1hWzBdLGw9YVsxXSwoIXMmJiJudW1iZXIiIT10eXBlb2Ygc3x8byhzKTw9byhpKSkmJighbCYmIm51bWJlciIhPXR5cGVvZiBsfHxvKGwpPj1vKGkpKSkpe3I9bjticmVha31icmVhaztjYXNlImxvZyI6Zm9yKGU9MDtlPHQudGlja2Zvcm1hdHN0b3BzLmxlbmd0aDtlKyspaWYoKG49dC50aWNrZm9ybWF0c3RvcHNbZV0pLmVuYWJsZWQmJmYodC5kdGljayxuLmR0aWNrcmFuZ2UpKXtyPW47YnJlYWt9fXJldHVybiByP3IudmFsdWU6dC50aWNrZm9ybWF0fSxWLmdldFN1YnBsb3RzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dC5fc3VicGxvdHMsbj1yLmNhcnRlc2lhbi5jb25jYXQoci5nbDJkfHxbXSksaT1lP1YuZmluZFN1YnBsb3RzV2l0aEF4aXMobixlKTpuO3JldHVybiBpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zdWJzdHIoMSkuc3BsaXQoInkiKSxuPWUuc3Vic3RyKDEpLnNwbGl0KCJ5Iik7cmV0dXJuIHJbMF09PT1uWzBdPytyWzFdLStuWzFdOityWzBdLStuWzBdfSkpLGl9LFYuZmluZFN1YnBsb3RzV2l0aEF4aXM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IFJlZ0V4cCgieCI9PT1lLl9pZC5jaGFyQXQoMCk/Il4iK2UuX2lkKyJ5IjplLl9pZCsiJCIpLG49W10saT0wO2k8dC5sZW5ndGg7aSsrKXt2YXIgYT10W2ldO3IudGVzdChhKSYmbi5wdXNoKGEpfXJldHVybiBufSxWLm1ha2VDbGlwUGF0aHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtpZighZS5faGFzT25seUxhcmdlU3Bsb21zKXt2YXIgcixpLGE9e19vZmZzZXQ6MCxfbGVuZ3RoOmUud2lkdGgsX2lkOiIifSxvPXtfb2Zmc2V0OjAsX2xlbmd0aDplLmhlaWdodCxfaWQ6IiJ9LHM9Vi5saXN0KHQsIngiLCEwKSxsPVYubGlzdCh0LCJ5IiwhMCksYz1bXTtmb3Iocj0wO3I8cy5sZW5ndGg7cisrKWZvcihjLnB1c2goe3g6c1tyXSx5Om99KSxpPTA7aTxsLmxlbmd0aDtpKyspMD09PXImJmMucHVzaCh7eDphLHk6bFtpXX0pLGMucHVzaCh7eDpzW3JdLHk6bFtpXX0pO3ZhciB1PWUuX2NsaXBzLnNlbGVjdEFsbCgiLmF4ZXNjbGlwIikuZGF0YShjLChmdW5jdGlvbih0KXtyZXR1cm4gdC54Ll9pZCt0LnkuX2lkfSkpO3UuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZCgiYXhlc2NsaXAiLCEwKS5hdHRyKCJpZCIsKGZ1bmN0aW9uKHQpe3JldHVybiJjbGlwIitlLl91aWQrdC54Ll9pZCt0LnkuX2lkfSkpLmFwcGVuZCgicmVjdCIpLHUuZXhpdCgpLnJlbW92ZSgpLHUuZWFjaCgoZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuc2VsZWN0KCJyZWN0IikuYXR0cih7eDp0LnguX29mZnNldHx8MCx5OnQueS5fb2Zmc2V0fHwwLHdpZHRoOnQueC5fbGVuZ3RofHwxLGhlaWdodDp0LnkuX2xlbmd0aHx8MX0pfSkpfX0sVi5kcmF3PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10Ll9mdWxsTGF5b3V0OyJyZWRyYXciPT09ZSYmbi5fcGFwZXIuc2VsZWN0QWxsKCJnLnN1YnBsb3QiKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10WzBdLHI9bi5fcGxvdHNbZV07aWYocil7dmFyIGk9ci54YXhpcyxhPXIueWF4aXM7ci54YXhpc2xheWVyLnNlbGVjdEFsbCgiLiIraS5faWQrInRpY2siKS5yZW1vdmUoKSxyLnlheGlzbGF5ZXIuc2VsZWN0QWxsKCIuIithLl9pZCsidGljayIpLnJlbW92ZSgpLHIueGF4aXNsYXllci5zZWxlY3RBbGwoIi4iK2kuX2lkKyJ0aWNrMiIpLnJlbW92ZSgpLHIueWF4aXNsYXllci5zZWxlY3RBbGwoIi4iK2EuX2lkKyJ0aWNrMiIpLnJlbW92ZSgpLHIueGF4aXNsYXllci5zZWxlY3RBbGwoIi4iK2kuX2lkKyJkaXZpZGVyIikucmVtb3ZlKCksci55YXhpc2xheWVyLnNlbGVjdEFsbCgiLiIrYS5faWQrImRpdmlkZXIiKS5yZW1vdmUoKSxyLmdyaWRsYXllciYmci5ncmlkbGF5ZXIuc2VsZWN0QWxsKCJwYXRoIikucmVtb3ZlKCksci56ZXJvbGluZWxheWVyJiZyLnplcm9saW5lbGF5ZXIuc2VsZWN0QWxsKCJwYXRoIikucmVtb3ZlKCksbi5faW5mb2xheWVyLnNlbGVjdCgiLmctIitpLl9pZCsidGl0bGUiKS5yZW1vdmUoKSxuLl9pbmZvbGF5ZXIuc2VsZWN0KCIuZy0iK2EuX2lkKyJ0aXRsZSIpLnJlbW92ZSgpfX0pKTt2YXIgaT1lJiYicmVkcmF3IiE9PWU/ZTpWLmxpc3RJZHModCk7cmV0dXJuIHMuc3luY09yQXN5bmMoaS5tYXAoKGZ1bmN0aW9uKGUpe3JldHVybiBmdW5jdGlvbigpe2lmKGUpe3ZhciBuPVYuZ2V0RnJvbUlkKHQsZSksaT1WLmRyYXdPbmUodCxuLHIpO3JldHVybiBuLl9yPW4ucmFuZ2Uuc2xpY2UoKSxuLl9ybD1zLnNpbXBsZU1hcChuLl9yLG4ucjJsKSxpfX19KSkpfSxWLmRyYXdPbmU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksbDtyPXJ8fHt9LGUuc2V0U2NhbGUoKTt2YXIgYz10Ll9mdWxsTGF5b3V0LHA9ZS5faWQsZD1wLmNoYXJBdCgwKSxtPVYuY291bnRlckxldHRlcihwKSxnPWMuX3Bsb3RzW2UuX21haW5TdWJwbG90XTtpZihnKXt2YXIgdj1nW2QrImF4aXNsYXllciJdLHk9ZS5fbWFpbkxpbmVQb3NpdGlvbix4PWUuX21haW5NaXJyb3JQb3NpdGlvbixiPWUuX3ZhbHM9Vi5jYWxjVGlja3MoZSksXz1bZS5taXJyb3IseSx4XS5qb2luKCJfIik7Zm9yKG49MDtuPGIubGVuZ3RoO24rKyliW25dLmF4SW5mbz1fO2UuX3NlbGVjdGlvbnM9e30sZS5fdGlja0FuZ2xlcyYmKGUuX3ByZXZUaWNrQW5nbGVzPWUuX3RpY2tBbmdsZXMpLGUuX3RpY2tBbmdsZXM9e30sZS5fZGVwdGg9bnVsbDt2YXIgdz17fTtpZihlLnZpc2libGUpe3ZhciBULGssQT1WLm1ha2VUcmFuc1RpY2tGbihlKSxNPVYubWFrZVRyYW5zVGlja0xhYmVsRm4oZSksUz0iaW5zaWRlIj09PWUudGlja3MsRT0ib3V0c2lkZSI9PT1lLnRpY2tzO2lmKCJib3VuZGFyaWVzIj09PWUudGlja3Nvbil7dmFyIEw9ZnVuY3Rpb24odCxlKXt2YXIgcixuPVtdLGk9ZnVuY3Rpb24odCxlKXt2YXIgcj10LnhibmRbZV07bnVsbCE9PXImJm4ucHVzaChzLmV4dGVuZEZsYXQoe30sdCx7eDpyfSkpfTtpZihlLmxlbmd0aCl7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKylpKGVbcl0sMCk7aShlW3ItMV0sMSl9cmV0dXJuIG59KDAsYik7az1WLmNsaXBFbmRzKGUsTCksVD1TP2s6TH1lbHNlIGs9Vi5jbGlwRW5kcyhlLGIpLFQ9UyYmInBlcmlvZCIhPT1lLnRpY2tsYWJlbG1vZGU/azpiO3ZhciBDPWUuX2dyaWRWYWxzPWssUD1mdW5jdGlvbih0LGUpe3ZhciByLG4saT1bXSxhPWUubGVuZ3RoJiZlW2UubGVuZ3RoLTFdLng8ZVswXS54LG89ZnVuY3Rpb24odCxlKXt2YXIgcj10LnhibmRbZV07bnVsbCE9PXImJmkucHVzaChzLmV4dGVuZEZsYXQoe30sdCx7eDpyfSkpfTtpZih0LnNob3dkaXZpZGVycyYmZS5sZW5ndGgpe2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBsPWVbcl07bC50ZXh0MiE9PW4mJm8obCxhPzE6MCksbj1sLnRleHQyfW8oZVtyLTFdLGE/MDoxKX1yZXR1cm4gaX0oZSxiKTtpZighYy5faGFzT25seUxhcmdlU3Bsb21zKXt2YXIgST1lLl9zdWJwbG90c1dpdGgsTz17fTtmb3Iobj0wO248SS5sZW5ndGg7bisrKXtpPUlbbl07dmFyIHo9KGw9Yy5fcGxvdHNbaV0pW20rImF4aXMiXSxEPXouX21haW5BeGlzLl9pZDtpZighT1tEXSl7T1tEXT0xO3ZhciBSPSJ4Ij09PWQ/Ik0wLCIrei5fb2Zmc2V0KyJ2Iit6Ll9sZW5ndGg6Ik0iK3ouX29mZnNldCsiLDBoIit6Ll9sZW5ndGg7Vi5kcmF3R3JpZCh0LGUse3ZhbHM6Qyxjb3VudGVyQXhpczp6LGxheWVyOmwuZ3JpZGxheWVyLnNlbGVjdCgiLiIrcCkscGF0aDpSLHRyYW5zRm46QX0pLFYuZHJhd1plcm9MaW5lKHQsZSx7Y291bnRlckF4aXM6eixsYXllcjpsLnplcm9saW5lbGF5ZXIscGF0aDpSLHRyYW5zRm46QX0pfX19dmFyIEY9Vi5nZXRUaWNrU2lnbnMoZSksQj1bXTtpZihlLnRpY2tzKXt2YXIgTixILHEsRz1WLm1ha2VUaWNrUGF0aChlLHksRlsyXSk7aWYoZS5fYW5jaG9yQXhpcyYmZS5taXJyb3ImJiEwIT09ZS5taXJyb3I/KE49Vi5tYWtlVGlja1BhdGgoZSx4LEZbM10pLEg9RytOKTooTj0iIixIPUcpLGUuc2hvd2RpdmlkZXJzJiZFJiYiYm91bmRhcmllcyI9PT1lLnRpY2tzb24pe3ZhciBZPXt9O2ZvcihuPTA7bjxQLmxlbmd0aDtuKyspWVtQW25dLnhdPTE7cT1mdW5jdGlvbih0KXtyZXR1cm4gWVt0LnhdP046SH19ZWxzZSBxPUg7Vi5kcmF3VGlja3ModCxlLHt2YWxzOlQsbGF5ZXI6dixwYXRoOnEsdHJhbnNGbjpBfSksImFsbHRpY2tzIj09PWUubWlycm9yJiYoQj1PYmplY3Qua2V5cyhlLl9saW5lcG9zaXRpb25zfHx7fSkpfWZvcihuPTA7bjxCLmxlbmd0aDtuKyspe2k9QltuXSxsPWMuX3Bsb3RzW2ldO3ZhciBXPWUuX2xpbmVwb3NpdGlvbnNbaV18fFtdLFg9Vi5tYWtlVGlja1BhdGgoZSxXWzBdLEZbMF0pK1YubWFrZVRpY2tQYXRoKGUsV1sxXSxGWzFdKTtWLmRyYXdUaWNrcyh0LGUse3ZhbHM6VCxsYXllcjpsW2QrImF4aXNsYXllciJdLHBhdGg6WCx0cmFuc0ZuOkF9KX12YXIgWj1bXTtpZihaLnB1c2goKGZ1bmN0aW9uKCl7cmV0dXJuIFYuZHJhd0xhYmVscyh0LGUse3ZhbHM6YixsYXllcjp2LHBsb3RpbmZvOmwsdHJhbnNGbjpNLGxhYmVsRm5zOlYubWFrZUxhYmVsRm5zKGUseSl9KX0pKSwibXVsdGljYXRlZ29yeSI9PT1lLnR5cGUpe3ZhciBKPXt4OjIseToxMH1bZF07Wi5wdXNoKChmdW5jdGlvbigpe3ZhciByPXt4OiJoZWlnaHQiLHk6IndpZHRoIn1bZF0sbj1RKClbcl0rSisoZS5fdGlja0FuZ2xlc1twKyJ0aWNrIl0/ZS50aWNrZm9udC5zaXplKmo6MCk7cmV0dXJuIFYuZHJhd0xhYmVscyh0LGUse3ZhbHM6cHQoZSxiKSxsYXllcjp2LGNsczpwKyJ0aWNrMiIscmVwb3NpdGlvbk9uVXBkYXRlOiEwLHNlY29uZGFyeTohMCx0cmFuc0ZuOkEsbGFiZWxGbnM6Vi5tYWtlTGFiZWxGbnMoZSx5K24qRls0XSl9KX0pKSxaLnB1c2goKGZ1bmN0aW9uKCl7cmV0dXJuIGUuX2RlcHRoPUZbNF0qKFEoInRpY2syIilbZS5zaWRlXS15KSxmdW5jdGlvbih0LGUscil7dmFyIG49ZS5faWQrImRpdmlkZXIiLGk9ci52YWxzLGE9ci5sYXllci5zZWxlY3RBbGwoInBhdGguIituKS5kYXRhKGksbXQpO2EuZXhpdCgpLnJlbW92ZSgpLGEuZW50ZXIoKS5pbnNlcnQoInBhdGgiLCI6Zmlyc3QtY2hpbGQiKS5jbGFzc2VkKG4sMSkuY2xhc3NlZCgiY3Jpc3AiLDEpLmNhbGwoZi5zdHJva2UsZS5kaXZpZGVyY29sb3IpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGguY3Jpc3BSb3VuZCh0LGUuZGl2aWRlcndpZHRoLDEpKyJweCIpLGEuYXR0cigidHJhbnNmb3JtIixyLnRyYW5zRm4pLmF0dHIoImQiLHIucGF0aCl9KHQsZSx7dmFsczpQLGxheWVyOnYscGF0aDpWLm1ha2VUaWNrUGF0aChlLHksRls0XSxlLl9kZXB0aCksdHJhbnNGbjpBfSl9KSl9ZWxzZSBlLnRpdGxlLmhhc093blByb3BlcnR5KCJzdGFuZG9mZiIpJiZaLnB1c2goKGZ1bmN0aW9uKCl7ZS5fZGVwdGg9Rls0XSooUSgpW2Uuc2lkZV0teSl9KSk7dmFyIEs9by5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiaXNWaXNpYmxlIikoZSk7cmV0dXJuIFoucHVzaCgoZnVuY3Rpb24oKXt2YXIgcixuLGkscyxsPWUuc2lkZS5jaGFyQXQoMCksdT1VW2Uuc2lkZV0uY2hhckF0KDApLGY9Vi5nZXRQeFBvc2l0aW9uKHQsZSksaD1FP2UudGlja2xlbjowO2lmKChlLmF1dG9tYXJnaW58fEspJiYoIm11bHRpY2F0ZWdvcnkiPT09ZS50eXBlP3I9USgidGljazIiKToocj1RKCksIngiPT09ZCYmImIiPT09bCYmKGUuX2RlcHRoPU1hdGgubWF4KHIud2lkdGg+MD9yLmJvdHRvbS1mOjAsaCkpKSksZS5hdXRvbWFyZ2luKXtuPXt4OjAseTowLHI6MCxsOjAsdDowLGI6MH07dmFyIHA9WzAsMV07aWYoIngiPT09ZCl7aWYoImIiPT09bD9uW2xdPWUuX2RlcHRoOihuW2xdPWUuX2RlcHRoPU1hdGgubWF4KHIud2lkdGg+MD9mLXIudG9wOjAsaCkscC5yZXZlcnNlKCkpLHIud2lkdGg+MCl7dmFyIGc9ci5yaWdodC0oZS5fb2Zmc2V0K2UuX2xlbmd0aCk7Zz4wJiYobi54cj0xLG4ucj1nKTt2YXIgdj1lLl9vZmZzZXQtci5sZWZ0O3Y+MCYmKG4ueGw9MCxuLmw9dil9fWVsc2UgaWYoImwiPT09bD9uW2xdPWUuX2RlcHRoPU1hdGgubWF4KHIuaGVpZ2h0PjA/Zi1yLmxlZnQ6MCxoKToobltsXT1lLl9kZXB0aD1NYXRoLm1heChyLmhlaWdodD4wP3IucmlnaHQtZjowLGgpLHAucmV2ZXJzZSgpKSxyLmhlaWdodD4wKXt2YXIgeT1yLmJvdHRvbS0oZS5fb2Zmc2V0K2UuX2xlbmd0aCk7eT4wJiYobi55Yj0wLG4uYj15KTt2YXIgeD1lLl9vZmZzZXQtci50b3A7eD4wJiYobi55dD0xLG4udD14KX1uW21dPSJmcmVlIj09PWUuYW5jaG9yP2UucG9zaXRpb246ZS5fYW5jaG9yQXhpcy5kb21haW5bcFswXV0sZS50aXRsZS50ZXh0IT09Yy5fZGZsdFRpdGxlW2RdJiYobltsXSs9Z3QoZSkrKGUudGl0bGUuc3RhbmRvZmZ8fDApKSxlLm1pcnJvciYmImZyZWUiIT09ZS5hbmNob3ImJigoaT17eDowLHk6MCxyOjAsbDowLHQ6MCxiOjB9KVt1XT1lLmxpbmV3aWR0aCxlLm1pcnJvciYmITAhPT1lLm1pcnJvciYmKGlbdV0rPWgpLCEwPT09ZS5taXJyb3J8fCJ0aWNrcyI9PT1lLm1pcnJvcj9pW21dPWUuX2FuY2hvckF4aXMuZG9tYWluW3BbMV1dOiJhbGwiIT09ZS5taXJyb3ImJiJhbGx0aWNrcyIhPT1lLm1pcnJvcnx8KGlbbV09W2UuX2NvdW50ZXJEb21haW5NaW4sZS5fY291bnRlckRvbWFpbk1heF1bcFsxXV0pKX1LJiYocz1vLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzbGlkZXIiLCJhdXRvTWFyZ2luT3B0cyIpKHQsZSkpLGEuYXV0b01hcmdpbih0LHh0KGUpLG4pLGEuYXV0b01hcmdpbih0LGJ0KGUpLGkpLGEuYXV0b01hcmdpbih0LF90KGUpLHMpfSkpLHIuc2tpcFRpdGxlfHxLJiYiYm90dG9tIj09PWUuc2lkZXx8Wi5wdXNoKChmdW5jdGlvbigpe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByLG49dC5fZnVsbExheW91dCxpPWUuX2lkLGE9aS5jaGFyQXQoMCksbz1lLnRpdGxlLmZvbnQuc2l6ZTtpZihlLnRpdGxlLmhhc093blByb3BlcnR5KCJzdGFuZG9mZiIpKXI9ZS5fZGVwdGgrZS50aXRsZS5zdGFuZG9mZitndChlKTtlbHNle3ZhciBzPVN0KGUpO2lmKCJtdWx0aWNhdGVnb3J5Ij09PWUudHlwZSlyPWUuX2RlcHRoO2Vsc2V7dmFyIGw9MS41Km87cyYmKGw9LjUqbywib3V0c2lkZSI9PT1lLnRpY2tzJiYobCs9ZS50aWNrbGVuKSkscj0xMCtsKyhlLmxpbmV3aWR0aD9lLmxpbmV3aWR0aC0xOjApfXN8fChyKz0ieCI9PT1hPyJ0b3AiPT09ZS5zaWRlP28qKGUuc2hvd3RpY2tsYWJlbHM/MTowKTpvKihlLnNob3d0aWNrbGFiZWxzPzEuNTouNSk6InJpZ2h0Ij09PWUuc2lkZT9vKihlLnNob3d0aWNrbGFiZWxzPzE6LjUpOm8qKGUuc2hvd3RpY2tsYWJlbHM/LjU6MCkpfXZhciBjLGYscCxkLG09Vi5nZXRQeFBvc2l0aW9uKHQsZSk7IngiPT09YT8oZj1lLl9vZmZzZXQrZS5fbGVuZ3RoLzIscD0idG9wIj09PWUuc2lkZT9tLXI6bStyKToocD1lLl9vZmZzZXQrZS5fbGVuZ3RoLzIsZj0icmlnaHQiPT09ZS5zaWRlP20rcjptLXIsYz17cm90YXRlOiItOTAiLG9mZnNldDowfSk7aWYoIm11bHRpY2F0ZWdvcnkiIT09ZS50eXBlKXt2YXIgZz1lLl9zZWxlY3Rpb25zW2UuX2lkKyJ0aWNrIl07aWYoZD17c2VsZWN0aW9uOmcsc2lkZTplLnNpZGV9LGcmJmcubm9kZSgpJiZnLm5vZGUoKS5wYXJlbnROb2RlKXt2YXIgdj1oLmdldFRyYW5zbGF0ZShnLm5vZGUoKS5wYXJlbnROb2RlKTtkLm9mZnNldExlZnQ9di54LGQub2Zmc2V0VG9wPXYueX1lLnRpdGxlLmhhc093blByb3BlcnR5KCJzdGFuZG9mZiIpJiYoZC5wYWQ9MCl9cmV0dXJuIHUuZHJhdyh0LGkrInRpdGxlIix7cHJvcENvbnRhaW5lcjplLHByb3BOYW1lOmUuX25hbWUrIi50aXRsZS50ZXh0IixwbGFjZWhvbGRlcjpuLl9kZmx0VGl0bGVbYV0sYXZvaWQ6ZCx0cmFuc2Zvcm06YyxhdHRyaWJ1dGVzOnt4OmYseTpwLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9fSl9KHQsZSl9KSkscy5zeW5jT3JBc3luYyhaKX19ZnVuY3Rpb24gUSh0KXt2YXIgcj1wKyh0fHwidGljayIpO3JldHVybiB3W3JdfHwod1tyXT1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhO3QuX3NlbGVjdGlvbnNbZV0uc2l6ZSgpPyhyPTEvMCxuPS0xLzAsaT0xLzAsYT0tMS8wLHQuX3NlbGVjdGlvbnNbZV0uZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD15dCh0aGlzKSxlPWguYkJveCh0Lm5vZGUoKS5wYXJlbnROb2RlKTtyPU1hdGgubWluKHIsZS50b3ApLG49TWF0aC5tYXgobixlLmJvdHRvbSksaT1NYXRoLm1pbihpLGUubGVmdCksYT1NYXRoLm1heChhLGUucmlnaHQpfSkpKToocj0wLG49MCxpPTAsYT0wKTtyZXR1cm57dG9wOnIsYm90dG9tOm4sbGVmdDppLHJpZ2h0OmEsaGVpZ2h0Om4tcix3aWR0aDphLWl9fShlLHIpKSx3W3JdfX0sVi5nZXRUaWNrU2lnbnM9ZnVuY3Rpb24odCl7dmFyIGU9dC5faWQuY2hhckF0KDApLHI9e3g6InRvcCIseToicmlnaHQifVtlXSxuPXQuc2lkZT09PXI/MTotMSxpPVstMSwxLG4sLW5dO3JldHVybiJpbnNpZGUiIT09dC50aWNrcz09KCJ4Ij09PWUpJiYoaT1pLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuLXR9KSkpLHQuc2lkZSYmaS5wdXNoKHtsOi0xLHQ6LTEscjoxLGI6MX1bdC5zaWRlLmNoYXJBdCgwKV0pLGl9LFYubWFrZVRyYW5zVGlja0ZuPWZ1bmN0aW9uKHQpe3JldHVybiJ4Ij09PXQuX2lkLmNoYXJBdCgwKT9mdW5jdGlvbihlKXtyZXR1cm4gbCh0Ll9vZmZzZXQrdC5sMnAoZS54KSwwKX06ZnVuY3Rpb24oZSl7cmV0dXJuIGwoMCx0Ll9vZmZzZXQrdC5sMnAoZS54KSl9fSxWLm1ha2VUcmFuc1RpY2tMYWJlbEZuPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBlPXQudGlja2xhYmVscG9zaXRpb258fCIiLHI9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1lLmluZGV4T2YodCl9LG49cigidG9wIiksaT1yKCJsZWZ0IiksYT1yKCJyaWdodCIpLG89cigiYm90dG9tIikscz1yKCJpbnNpZGUiKSxsPW98fGl8fG58fGE7aWYoIWwmJiFzKXJldHVyblswLDBdO3ZhciBjPXQuc2lkZSx1PWw/KHQudGlja3dpZHRofHwwKS8yOjAsZj0zLGg9dC50aWNrZm9udD90LnRpY2tmb250LnNpemU6MTI7KG98fG4pJiYodSs9aCpOLGYrPSh0LmxpbmV3aWR0aHx8MCkvMik7KGl8fGEpJiYodSs9KHQubGluZXdpZHRofHwwKS8yLGYrPTMpO3MmJiJ0b3AiPT09YyYmKGYtPWgqKDEtTikpOyhpfHxuKSYmKHU9LXUpOyJib3R0b20iIT09YyYmInJpZ2h0IiE9PWN8fChmPS1mKTtyZXR1cm5bbD91OjAscz9mOjBdfSh0KSxyPWVbMF0sbj1lWzFdO3JldHVybiJ4Ij09PXQuX2lkLmNoYXJBdCgwKT9mdW5jdGlvbihlKXtyZXR1cm4gbChyK3QuX29mZnNldCt0LmwycChkdChlKSksbil9OmZ1bmN0aW9uKGUpe3JldHVybiBsKG4scit0Ll9vZmZzZXQrdC5sMnAoZHQoZSkpKX19LFYubWFrZVRpY2tQYXRoPWZ1bmN0aW9uKHQsZSxyLG4pe249dm9pZCAwIT09bj9uOnQudGlja2xlbjt2YXIgaT10Ll9pZC5jaGFyQXQoMCksYT0odC5saW5ld2lkdGh8fDEpLzI7cmV0dXJuIngiPT09aT8iTTAsIisoZSthKnIpKyJ2IituKnI6Ik0iKyhlK2EqcikrIiwwaCIrbipyfSxWLm1ha2VMYWJlbEZucz1mdW5jdGlvbih0LGUscil7dmFyIG49dC50aWNrbGFiZWxwb3NpdGlvbnx8IiIsYT1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PW4uaW5kZXhPZih0KX0sbz1hKCJ0b3AiKSxsPWEoImxlZnQiKSxjPWEoInJpZ2h0IiksdT1hKCJib3R0b20iKXx8bHx8b3x8YyxmPWEoImluc2lkZSIpLGg9Imluc2lkZSI9PT1uJiYiaW5zaWRlIj09PXQudGlja3N8fCFmJiYib3V0c2lkZSI9PT10LnRpY2tzJiYiYm91bmRhcmllcyIhPT10LnRpY2tzb24scD0wLGQ9MCxtPWg/dC50aWNrbGVuOjA7aWYoZj9tKj0tMTp1JiYobT0wKSxoJiYocCs9bSxyKSl7dmFyIGc9cy5kZWcycmFkKHIpO3A9bSpNYXRoLmNvcyhnKSsxLGQ9bSpNYXRoLnNpbihnKX10LnNob3d0aWNrbGFiZWxzJiYoaHx8dC5zaG93bGluZSkmJihwKz0uMip0LnRpY2tmb250LnNpemUpO3ZhciB2LHkseCxiLF8sdz17bGFiZWxTdGFuZG9mZjpwKz0odC5saW5ld2lkdGh8fDEpLzIqKGY/LTE6MSksbGFiZWxTaGlmdDpkfSxUPTAsaz10LnNpZGUsQT10Ll9pZC5jaGFyQXQoMCksTT10LnRpY2thbmdsZTtpZigieCI9PT1BKWI9KF89IWYmJiJib3R0b20iPT09a3x8ZiYmInRvcCI9PT1rKT8xOi0xLGYmJihiKj0tMSksdj1kKmIseT1lK3AqYix4PV8/MTotLjIsOTA9PT1NYXRoLmFicyhNKSYmKGY/eCs9Qjp4PS05MD09PU0mJiJib3R0b20iPT09az9OOjkwPT09TSYmInRvcCI9PT1rP0I6LjUsVD1CLzIqKE0vOTApKSx3LnhGbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5keCt2K1QqdC5mb250U2l6ZX0sdy55Rm49ZnVuY3Rpb24odCl7cmV0dXJuIHQuZHkreSt0LmZvbnRTaXplKnh9LHcuYW5jaG9yRm49ZnVuY3Rpb24odCxlKXtpZih1KXtpZihsKXJldHVybiJlbmQiO2lmKGMpcmV0dXJuInN0YXJ0In1yZXR1cm4gaShlKSYmMCE9PWUmJjE4MCE9PWU/ZSpiPDAhPT1mPyJlbmQiOiJzdGFydCI6Im1pZGRsZSJ9LHcuaGVpZ2h0Rm49ZnVuY3Rpb24oZSxyLG4pe3JldHVybiByPC02MHx8cj42MD8tLjUqbjoidG9wIj09PXQuc2lkZSE9PWY/LW46MH07ZWxzZSBpZigieSI9PT1BKXtpZihiPShfPSFmJiYibGVmdCI9PT1rfHxmJiYicmlnaHQiPT09ayk/MTotMSxmJiYoYio9LTEpLHY9cCx5PWQqYix4PTAsZnx8OTAhPT1NYXRoLmFicyhNKXx8KHg9LTkwPT09TSYmImxlZnQiPT09a3x8OTA9PT1NJiYicmlnaHQiPT09az9OOi41KSxmKXt2YXIgUz1pKE0pPytNOjA7aWYoMCE9PVMpe3ZhciBFPXMuZGVnMnJhZChTKTtUPU1hdGguYWJzKE1hdGguc2luKEUpKSpOKmIseD0wfX13LnhGbj1mdW5jdGlvbih0KXtyZXR1cm4gdC5keCtlLSh2K3QuZm9udFNpemUqeCkqYitUKnQuZm9udFNpemV9LHcueUZuPWZ1bmN0aW9uKHQpe3JldHVybiB0LmR5K3krdC5mb250U2l6ZSpCfSx3LmFuY2hvckZuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGkoZSkmJjkwPT09TWF0aC5hYnMoZSk/Im1pZGRsZSI6Xz8iZW5kIjoic3RhcnQifSx3LmhlaWdodEZuPWZ1bmN0aW9uKGUscixuKXtyZXR1cm4icmlnaHQiPT09dC5zaWRlJiYocio9LTEpLHI8LTMwPy1uOnI8MzA/LS41Km46MH19cmV0dXJuIHd9LFYuZHJhd1RpY2tzPWZ1bmN0aW9uKHQsZSxyKXtyPXJ8fHt9O3ZhciBuPWUuX2lkKyJ0aWNrIixpPXIudmFsczsicGVyaW9kIj09PWUudGlja2xhYmVsbW9kZSYmKGk9aS5zbGljZSgpKS5zaGlmdCgpO3ZhciBhPXIubGF5ZXIuc2VsZWN0QWxsKCJwYXRoLiIrbikuZGF0YShlLnRpY2tzP2k6W10sbXQpO2EuZXhpdCgpLnJlbW92ZSgpLGEuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKG4sMSkuY2xhc3NlZCgidGlja3MiLDEpLmNsYXNzZWQoImNyaXNwIiwhMSE9PXIuY3Jpc3ApLmNhbGwoZi5zdHJva2UsZS50aWNrY29sb3IpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGguY3Jpc3BSb3VuZCh0LGUudGlja3dpZHRoLDEpKyJweCIpLmF0dHIoImQiLHIucGF0aCkuc3R5bGUoImRpc3BsYXkiLG51bGwpLEV0KGUsW0RdKSxhLmF0dHIoInRyYW5zZm9ybSIsci50cmFuc0ZuKX0sVi5kcmF3R3JpZD1mdW5jdGlvbih0LGUscil7cj1yfHx7fTt2YXIgbj1lLl9pZCsiZ3JpZCIsaT1yLnZhbHMsYT1yLmNvdW50ZXJBeGlzO2lmKCExPT09ZS5zaG93Z3JpZClpPVtdO2Vsc2UgaWYoYSYmVi5zaG91bGRTaG93WmVyb0xpbmUodCxlLGEpKWZvcih2YXIgbz0iYXJyYXkiPT09ZS50aWNrbW9kZSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBsPWlbc10ueDtpZihvPyFsOk1hdGguYWJzKGwpPGUuZHRpY2svMTAwKXtpZihpPWkuc2xpY2UoMCxzKS5jb25jYXQoaS5zbGljZShzKzEpKSwhbylicmVhaztzLS19fXZhciBjPXIubGF5ZXIuc2VsZWN0QWxsKCJwYXRoLiIrbikuZGF0YShpLG10KTtjLmV4aXQoKS5yZW1vdmUoKSxjLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZChuLDEpLmNsYXNzZWQoImNyaXNwIiwhMSE9PXIuY3Jpc3ApLGUuX2d3PWguY3Jpc3BSb3VuZCh0LGUuZ3JpZHdpZHRoLDEpLGMuYXR0cigidHJhbnNmb3JtIixyLnRyYW5zRm4pLmF0dHIoImQiLHIucGF0aCkuY2FsbChmLnN0cm9rZSxlLmdyaWRjb2xvcnx8IiNkZGQiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixlLl9ndysicHgiKS5zdHlsZSgiZGlzcGxheSIsbnVsbCksRXQoZSxbel0pLCJmdW5jdGlvbiI9PXR5cGVvZiByLnBhdGgmJmMuYXR0cigiZCIsci5wYXRoKX0sVi5kcmF3WmVyb0xpbmU9ZnVuY3Rpb24odCxlLHIpe3I9cnx8cjt2YXIgbj1lLl9pZCsiemwiLGk9Vi5zaG91bGRTaG93WmVyb0xpbmUodCxlLHIuY291bnRlckF4aXMpLGE9ci5sYXllci5zZWxlY3RBbGwoInBhdGguIituKS5kYXRhKGk/W3t4OjAsaWQ6ZS5faWR9XTpbXSk7YS5leGl0KCkucmVtb3ZlKCksYS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQobiwxKS5jbGFzc2VkKCJ6bCIsMSkuY2xhc3NlZCgiY3Jpc3AiLCExIT09ci5jcmlzcCkuZWFjaCgoZnVuY3Rpb24oKXtyLmxheWVyLnNlbGVjdEFsbCgicGF0aCIpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIEcodC5pZCxlLmlkKX0pKX0pKSxhLmF0dHIoInRyYW5zZm9ybSIsci50cmFuc0ZuKS5hdHRyKCJkIixyLnBhdGgpLmNhbGwoZi5zdHJva2UsZS56ZXJvbGluZWNvbG9yfHxmLmRlZmF1bHRMaW5lKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixoLmNyaXNwUm91bmQodCxlLnplcm9saW5ld2lkdGgsZS5fZ3d8fDEpKyJweCIpLnN0eWxlKCJkaXNwbGF5IixudWxsKSxFdChlLFtPXSl9LFYuZHJhd0xhYmVscz1mdW5jdGlvbih0LGUscil7cj1yfHx7fTt2YXIgYT10Ll9mdWxsTGF5b3V0LG89ZS5faWQsdT1vLmNoYXJBdCgwKSxmPXIuY2xzfHxvKyJ0aWNrIixwPXIudmFscyxkPXIubGFiZWxGbnMsbT1yLnNlY29uZGFyeT8wOmUudGlja2FuZ2xlLGc9KGUuX3ByZXZUaWNrQW5nbGVzfHx7fSlbZl0sdj1yLmxheWVyLnNlbGVjdEFsbCgiZy4iK2YpLmRhdGEoZS5zaG93dGlja2xhYmVscz9wOltdLG10KSx5PVtdO2Z1bmN0aW9uIHgodCxhKXt0LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBvPW4uc2VsZWN0KHRoaXMpLHM9by5zZWxlY3QoIi50ZXh0LW1hdGgtZ3JvdXAiKSx1PWQuYW5jaG9yRm4odCxhKSxmPXIudHJhbnNGbi5jYWxsKG8ubm9kZSgpLHQpKyhpKGEpJiYwIT0rYT8iIHJvdGF0ZSgiK2ErIiwiK2QueEZuKHQpKyIsIisoZC55Rm4odCktdC5mb250U2l6ZS8yKSsiKSI6IiIpLHA9Yy5saW5lQ291bnQobyksbT1qKnQuZm9udFNpemUsZz1kLmhlaWdodEZuKHQsaShhKT8rYTowLChwLTEpKm0pO2lmKGcmJihmKz1sKDAsZykpLHMuZW1wdHkoKSl7dmFyIHY9by5zZWxlY3QoInRleHQiKTt2LmF0dHIoe3RyYW5zZm9ybTpmLCJ0ZXh0LWFuY2hvciI6dX0pLHYuc3R5bGUoIm9wYWNpdHkiLDEpLGUuX2FkanVzdFRpY2tMYWJlbHNPdmVyZmxvdyYmZS5fYWRqdXN0VGlja0xhYmVsc092ZXJmbG93KCl9ZWxzZXt2YXIgeT1oLmJCb3gocy5ub2RlKCkpLndpZHRoKntlbmQ6LS41LHN0YXJ0Oi41fVt1XTtzLmF0dHIoInRyYW5zZm9ybSIsZitsKHksMCkpfX0pKX12LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChmLDEpLmFwcGVuZCgidGV4dCIpLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyksaT10Ll9wcm9taXNlcy5sZW5ndGg7ci5jYWxsKGMucG9zaXRpb25UZXh0LGQueEZuKGUpLGQueUZuKGUpKS5jYWxsKGguZm9udCxlLmZvbnQsZS5mb250U2l6ZSxlLmZvbnRDb2xvcikudGV4dChlLnRleHQpLmNhbGwoYy5jb252ZXJ0VG9Uc3BhbnMsdCksdC5fcHJvbWlzZXNbaV0/eS5wdXNoKHQuX3Byb21pc2VzLnBvcCgpLnRoZW4oKGZ1bmN0aW9uKCl7eChyLG0pfSkpKTp4KHIsbSl9KSksRXQoZSxbUl0pLHYuZXhpdCgpLnJlbW92ZSgpLHIucmVwb3NpdGlvbk9uVXBkYXRlJiZ2LmVhY2goKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLnNlbGVjdCgidGV4dCIpLmNhbGwoYy5wb3NpdGlvblRleHQsZC54Rm4odCksZC55Rm4odCkpfSkpLGUuX2FkanVzdFRpY2tMYWJlbHNPdmVyZmxvdz1mdW5jdGlvbigpe3ZhciByPWUudGlja2xhYmVsb3ZlcmZsb3c7aWYociYmImFsbG93IiE9PXIpe3ZhciBpPS0xIT09ci5pbmRleE9mKCJoaWRlIiksbz0ieCI9PT1lLl9pZC5jaGFyQXQoMCksbD0wLGM9bz90Ll9mdWxsTGF5b3V0LndpZHRoOnQuX2Z1bGxMYXlvdXQuaGVpZ2h0O2lmKC0xIT09ci5pbmRleE9mKCJkb21haW4iKSl7dmFyIHU9cy5zaW1wbGVNYXAoZS5yYW5nZSxlLnIybCk7bD1lLmwycCh1WzBdKStlLl9vZmZzZXQsYz1lLmwycCh1WzFdKStlLl9vZmZzZXR9dmFyIGY9TWF0aC5taW4obCxjKSxwPU1hdGgubWF4KGwsYyksZD1lLnNpZGUsbT0xLzAsZz0tMS8wO2Zvcih2YXIgeSBpbiB2LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2lmKHIuc2VsZWN0KCIudGV4dC1tYXRoLWdyb3VwIikuZW1wdHkoKSl7dmFyIGE9aC5iQm94KHIubm9kZSgpKSxzPTA7bz8oYS5yaWdodD5wfHxhLmxlZnQ8ZikmJihzPTEpOihhLmJvdHRvbT5wfHxhLnRvcCsoZS50aWNrYW5nbGU/MDp0LmZvbnRTaXplLzQpPGYpJiYocz0xKTt2YXIgbD1yLnNlbGVjdCgidGV4dCIpO3M/aSYmbC5zdHlsZSgib3BhY2l0eSIsMCk6KGwuc3R5bGUoIm9wYWNpdHkiLDEpLG09ImJvdHRvbSI9PT1kfHwicmlnaHQiPT09ZD9NYXRoLm1pbihtLG8/YS50b3A6YS5sZWZ0KTotMS8wLGc9InRvcCI9PT1kfHwibGVmdCI9PT1kP01hdGgubWF4KGcsbz9hLmJvdHRvbTphLnJpZ2h0KToxLzApfX0pKSxhLl9wbG90cyl7dmFyIHg9YS5fcGxvdHNbeV07aWYoZS5faWQ9PT14LnhheGlzLl9pZHx8ZS5faWQ9PT14LnlheGlzLl9pZCl7dmFyIGI9bz94LnlheGlzOngueGF4aXM7YiYmKGJbIl92aXNpYmxlTGFiZWxNaW5fIitlLl9pZF09bSxiWyJfdmlzaWJsZUxhYmVsTWF4XyIrZS5faWRdPWcpfX19fSxlLl9oaWRlQ291bnRlckF4aXNJbnNpZGVUaWNrTGFiZWxzPWZ1bmN0aW9uKHQpe3ZhciByPSJ4Ij09PWUuX2lkLmNoYXJBdCgwKSxpPVtdO2Zvcih2YXIgbyBpbiBhLl9wbG90cyl7dmFyIHM9YS5fcGxvdHNbb107ZS5faWQhPT1zLnhheGlzLl9pZCYmZS5faWQhPT1zLnlheGlzLl9pZHx8aS5wdXNoKHI/cy55YXhpczpzLnhheGlzKX1pLmZvckVhY2goKGZ1bmN0aW9uKHIsaSl7ciYmU3QocikmJih0fHxbTyx6LEQsUl0pLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBvPSJ0aWNrIj09PXQuSyYmInRleHQiPT09dC5MJiYicGVyaW9kIj09PWUudGlja2xhYmVsbW9kZSxzPWEuX3Bsb3RzW2UuX21haW5TdWJwbG90XTsodC5LPT09Ty5LP3MuemVyb2xpbmVsYXllci5zZWxlY3RBbGwoIi4iK2UuX2lkKyJ6bCIpOnQuSz09PXouSz9zLmdyaWRsYXllci5zZWxlY3RBbGwoIi4iK2UuX2lkKTpzW2UuX2lkLmNoYXJBdCgwKSsiYXhpc2xheWVyIl0pLmVhY2goKGZ1bmN0aW9uKCl7dmFyIGE9bi5zZWxlY3QodGhpcyk7dC5MJiYoYT1hLnNlbGVjdEFsbCh0LkwpKSxhLmVhY2goKGZ1bmN0aW9uKGEpe3ZhciBzPWUubDJwKG8/ZHQoYSk6YS54KStlLl9vZmZzZXQsbD1uLnNlbGVjdCh0aGlzKTtzPGVbIl92aXNpYmxlTGFiZWxNYXhfIityLl9pZF0mJnM+ZVsiX3Zpc2libGVMYWJlbE1pbl8iK3IuX2lkXT9sLnN0eWxlKCJkaXNwbGF5Iiwibm9uZSIpOiJ0aWNrIiE9PXQuS3x8aXx8bC5zdHlsZSgiZGlzcGxheSIsbnVsbCl9KSl9KSl9KSl9KSl9LHgodixnKzE/ZzptKTt2YXIgYj1udWxsO2UuX3NlbGVjdGlvbnMmJihlLl9zZWxlY3Rpb25zW2ZdPXYpO3ZhciBfPVtmdW5jdGlvbigpe3JldHVybiB5Lmxlbmd0aCYmUHJvbWlzZS5hbGwoeSl9XTtlLmF1dG9tYXJnaW4mJmEuX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQmJjkwPT09Zz8oYj05MCxfLnB1c2goKGZ1bmN0aW9uKCl7eCh2LGcpfSkpKTpfLnB1c2goKGZ1bmN0aW9uKCl7aWYoeCh2LG0pLHAubGVuZ3RoJiYieCI9PT11JiYhaShtKSYmKCJsb2ciIT09ZS50eXBlfHwiRCIhPT1TdHJpbmcoZS5kdGljaykuY2hhckF0KDApKSl7Yj0wO3ZhciB0LG49MCxhPVtdO2lmKHYuZWFjaCgoZnVuY3Rpb24odCl7bj1NYXRoLm1heChuLHQuZm9udFNpemUpO3ZhciByPWUubDJwKHQueCksaT15dCh0aGlzKSxvPWguYkJveChpLm5vZGUoKSk7YS5wdXNoKHt0b3A6MCxib3R0b206MTAsaGVpZ2h0OjEwLGxlZnQ6ci1vLndpZHRoLzIscmlnaHQ6citvLndpZHRoLzIrMix3aWR0aDpvLndpZHRoKzJ9KX0pKSwiYm91bmRhcmllcyIhPT1lLnRpY2tzb24mJiFlLnNob3dkaXZpZGVyc3x8ci5zZWNvbmRhcnkpe3ZhciBvPXAubGVuZ3RoLGw9TWF0aC5hYnMoKHBbby0xXS54LXBbMF0ueCkqZS5fbSkvKG8tMSksYz1lLnRpY2tsYWJlbHBvc2l0aW9ufHwiIixmPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09Yy5pbmRleE9mKHQpfSxkPWYoInRvcCIpLGc9ZigibGVmdCIpLHk9ZigicmlnaHQiKSxfPWYoImJvdHRvbSIpfHxnfHxkfHx5PyhlLnRpY2t3aWR0aHx8MCkrNjowLHc9bDwyLjUqbnx8Im11bHRpY2F0ZWdvcnkiPT09ZS50eXBlO2Zvcih0PTA7dDxhLmxlbmd0aC0xO3QrKylpZihzLmJCb3hJbnRlcnNlY3QoYVt0XSxhW3QrMV0sXykpe2I9dz85MDozMDticmVha319ZWxzZXt2YXIgVD0yO2ZvcihlLnRpY2tzJiYoVCs9ZS50aWNrd2lkdGgvMiksdD0wO3Q8YS5sZW5ndGg7dCsrKXt2YXIgaz1wW3RdLnhibmQsQT1hW3RdO2lmKG51bGwhPT1rWzBdJiZBLmxlZnQtZS5sMnAoa1swXSk8VHx8bnVsbCE9PWtbMV0mJmUubDJwKGtbMV0pLUEucmlnaHQ8VCl7Yj05MDticmVha319fWImJngodixiKX19KSksZS5fdGlja0FuZ2xlcyYmXy5wdXNoKChmdW5jdGlvbigpe2UuX3RpY2tBbmdsZXNbZl09bnVsbD09PWI/aShtKT9tOjA6Yn0pKTt2YXIgdz1lLl9hbmNob3JBeGlzO3cmJncuYXV0b3JhbmdlJiZTdChlKSYmIVkoYSxlLl9pZCkmJihhLl9pbnNpZGVUaWNrTGFiZWxzQXV0b3JhbmdlfHwoYS5faW5zaWRlVGlja0xhYmVsc0F1dG9yYW5nZT17fSksYS5faW5zaWRlVGlja0xhYmVsc0F1dG9yYW5nZVt3Ll9uYW1lKyIuYXV0b3JhbmdlIl09dy5hdXRvcmFuZ2UsXy5wdXNoKChmdW5jdGlvbigpe3YuZWFjaCgoZnVuY3Rpb24odCxyKXt2YXIgbj15dCh0aGlzKTtuLnNlbGVjdCgiLnRleHQtbWF0aC1ncm91cCIpLmVtcHR5KCkmJihlLl92YWxzW3JdLmJiPWguYkJveChuLm5vZGUoKSkpfSkpfSkpKTt2YXIgVD1zLnN5bmNPckFzeW5jKF8pO3JldHVybiBUJiZULnRoZW4mJnQuX3Byb21pc2VzLnB1c2goVCksVH0sVi5nZXRQeFBvc2l0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10Ll9mdWxsTGF5b3V0Ll9zaXplLGk9ZS5faWQuY2hhckF0KDApLGE9ZS5zaWRlO3JldHVybiJmcmVlIiE9PWUuYW5jaG9yP3I9ZS5fYW5jaG9yQXhpczoieCI9PT1pP3I9e19vZmZzZXQ6bi50KygxLShlLnBvc2l0aW9ufHwwKSkqbi5oLF9sZW5ndGg6MH06InkiPT09aSYmKHI9e19vZmZzZXQ6bi5sKyhlLnBvc2l0aW9ufHwwKSpuLncsX2xlbmd0aDowfSksInRvcCI9PT1hfHwibGVmdCI9PT1hP3IuX29mZnNldDoiYm90dG9tIj09PWF8fCJyaWdodCI9PT1hP3IuX29mZnNldCtyLl9sZW5ndGg6dm9pZCAwfSxWLnNob3VsZFNob3daZXJvTGluZT1mdW5jdGlvbih0LGUscil7dmFyIG49cy5zaW1wbGVNYXAoZS5yYW5nZSxlLnIybCk7cmV0dXJuIG5bMF0qblsxXTw9MCYmZS56ZXJvbGluZSYmKCJsaW5lYXIiPT09ZS50eXBlfHwiLSI9PT1lLnR5cGUpJiYhKGUucmFuZ2VicmVha3MmJmUubWFza0JyZWFrcygwKT09PUkpJiYodnQoZSwwKXx8IWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXIuX21haW5BeGlzO2lmKCFpKXJldHVybjt2YXIgYT10Ll9mdWxsTGF5b3V0LG89ZS5faWQuY2hhckF0KDApLHM9Vi5jb3VudGVyTGV0dGVyKGUuX2lkKSxsPWUuX29mZnNldCsoTWF0aC5hYnMoblswXSk8TWF0aC5hYnMoblsxXSk9PSgieCI9PT1vKT8wOmUuX2xlbmd0aCk7ZnVuY3Rpb24gYyh0KXtpZighdC5zaG93bGluZXx8IXQubGluZXdpZHRoKXJldHVybiExO3ZhciByPU1hdGgubWF4KCh0LmxpbmV3aWR0aCtlLnplcm9saW5ld2lkdGgpLzIsMSk7ZnVuY3Rpb24gbih0KXtyZXR1cm4ibnVtYmVyIj09dHlwZW9mIHQmJk1hdGguYWJzKHQtbCk8cn1pZihuKHQuX21haW5MaW5lUG9zaXRpb24pfHxuKHQuX21haW5NaXJyb3JQb3NpdGlvbikpcmV0dXJuITA7dmFyIGk9dC5fbGluZXBvc2l0aW9uc3x8e307Zm9yKHZhciBhIGluIGkpaWYobihpW2FdWzBdKXx8bihpW2FdWzFdKSlyZXR1cm4hMH12YXIgdT1hLl9wbG90c1tyLl9tYWluU3VicGxvdF07aWYoISh1Lm1haW5wbG90aW5mb3x8dSkub3ZlcmxheXMubGVuZ3RoKXJldHVybiBjKHIpO2Zvcih2YXIgZj1WLmxpc3QodCxzKSxoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBwPWZbaF07aWYocC5fbWFpbkF4aXM9PT1pJiZjKHApKXJldHVybiEwfX0odCxlLHIsbil8fGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxEYXRhLG49ZS5fbWFpblN1YnBsb3QsaT1lLl9pZC5jaGFyQXQoMCksYT0wO2E8ci5sZW5ndGg7YSsrKXt2YXIgcz1yW2FdO2lmKCEwPT09cy52aXNpYmxlJiZzLnhheGlzK3MueWF4aXM9PT1uKXtpZihvLnRyYWNlSXMocywiYmFyLWxpa2UiKSYmcy5vcmllbnRhdGlvbj09PXt4OiJoIix5OiJ2In1baV0pcmV0dXJuITA7aWYocy5maWxsJiZzLmZpbGwuY2hhckF0KHMuZmlsbC5sZW5ndGgtMSk9PT1pKXJldHVybiEwfX1yZXR1cm4hMX0odCxlKSl9LFYuY2xpcEVuZHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB2dCh0LGUueCl9KSl9LFYuYWxsb3dBdXRvTWFyZ2luPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1WLmxpc3QodCwiIiwhMCkscj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj1lW3JdO24uYXV0b21hcmdpbiYmKGEuYWxsb3dBdXRvTWFyZ2luKHQseHQobikpLG4ubWlycm9yJiZhLmFsbG93QXV0b01hcmdpbih0LGJ0KG4pKSksby5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwiaXNWaXNpYmxlIikobikmJmEuYWxsb3dBdXRvTWFyZ2luKHQsX3QobikpfX0sVi5zd2FwPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPVtdO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBhPVtdLG89dC5fZnVsbERhdGFbZVtyXV0ueGF4aXMscz10Ll9mdWxsRGF0YVtlW3JdXS55YXhpcztpZihvJiZzKXtmb3Iobj0wO248aS5sZW5ndGg7bisrKS0xPT09aVtuXS54LmluZGV4T2YobykmJi0xPT09aVtuXS55LmluZGV4T2Yocyl8fGEucHVzaChuKTtpZihhLmxlbmd0aCl7dmFyIGwsYz1pW2FbMF1dO2lmKGEubGVuZ3RoPjEpZm9yKG49MTtuPGEubGVuZ3RoO24rKylsPWlbYVtuXV0sd3QoYy54LGwueCksd3QoYy55LGwueSk7d3QoYy54LFtvXSksd3QoYy55LFtzXSl9ZWxzZSBpLnB1c2goe3g6W29dLHk6W3NdfSl9fXJldHVybiBpfSh0LGUpLG49MDtuPHIubGVuZ3RoO24rKylUdCh0LHJbbl0ueCxyW25dLnkpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb21wb25lbnRzL3RpdGxlcyI6NzM3LCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo3NDQsIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuLi8uLi9wbG90cy9wbG90cyI6ODkwLCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F1dG9yYW5nZSI6ODI2LCIuL2F4aXNfYXV0b3R5cGUiOjgyOCwiLi9heGlzX2lkcyI6ODMxLCIuL2NsZWFuX3RpY2tzIjo4MzMsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg0MiwiLi9zZXRfY29udmVydCI6ODQ4LCJAcGxvdGx5L2QzIjo1OCwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDgyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLG89aS5pc0FycmF5T3JUeXBlZEFycmF5LHM9aS5pc0RhdGVUaW1lLGw9aS5jbGVhbk51bWJlcixjPU1hdGgucm91bmQ7ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBlP24odCk6Im51bWJlciI9PXR5cGVvZiB0fWZ1bmN0aW9uIGYodCl7cmV0dXJuIE1hdGgubWF4KDEsKHQtMSkvMWUzKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXQsaD1yLm5vTXVsdGlDYXRlZ29yeTtpZihvKGkpJiYhaS5sZW5ndGgpcmV0dXJuIi0iO2lmKCFoJiZmdW5jdGlvbih0KXtyZXR1cm4gbyh0WzBdKSYmbyh0WzFdKX0oaSkpcmV0dXJuIm11bHRpY2F0ZWdvcnkiO2lmKGgmJkFycmF5LmlzQXJyYXkoaVswXSkpe2Zvcih2YXIgcD1bXSxkPTA7ZDxpLmxlbmd0aDtkKyspaWYobyhpW2RdKSlmb3IodmFyIG09MDttPGlbZF0ubGVuZ3RoO20rKylwLnB1c2goaVtkXVttXSk7aT1wfWlmKGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLGk9ZihyKSxhPTAsbz0wLGw9e30sdT0wO3U8cjt1Kz1pKXt2YXIgaD1jKHUpLHA9dFtoXSxkPVN0cmluZyhwKTtsW2RdfHwobFtkXT0xLHMocCxlKSYmYSsrLG4ocCkmJm8rKyl9cmV0dXJuIGE+MipvfShpLGUpKXJldHVybiJkYXRlIjt2YXIgZz0ic3RyaWN0IiE9PXIuYXV0b3R5cGVudW1iZXJzO3JldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPWYociksaT0wLG89MCxzPXt9LHU9MDt1PHI7dSs9bil7dmFyIGg9Yyh1KSxwPXRbaF0sZD1TdHJpbmcocCk7aWYoIXNbZF0pe3NbZF09MTt2YXIgbT10eXBlb2YgcDsiYm9vbGVhbiI9PT1tP28rKzooZT9sKHApIT09YToibnVtYmVyIj09PW0pP2krKzoic3RyaW5nIj09PW0mJm8rK319cmV0dXJuIG8+MippfShpLGcpPyJjYXRlZ29yeSI6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj0wO248cjtuKyspaWYodSh0W25dLGUpKXJldHVybiEwO3JldHVybiExfShpLGcpPyJsaW5lYXIiOiItIn19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDgyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIikscz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksbD10KCIuL3RpY2tfdmFsdWVfZGVmYXVsdHMiKSxjPXQoIi4vdGlja19tYXJrX2RlZmF1bHRzIiksdT10KCIuL3RpY2tfbGFiZWxfZGVmYXVsdHMiKSxmPXQoIi4vY2F0ZWdvcnlfb3JkZXJfZGVmYXVsdHMiKSxoPXQoIi4vbGluZV9ncmlkX2RlZmF1bHRzIikscD10KCIuL3NldF9jb252ZXJ0IiksZD10KCIuL2NvbnN0YW50cyIpLldFRUtEQVlfUEFUVEVSTixtPXQoIi4vY29uc3RhbnRzIikuSE9VUl9QQVRURVJOO2Z1bmN0aW9uIGcodCxlLHIpe2Z1bmN0aW9uIGkocixuKXtyZXR1cm4gYS5jb2VyY2UodCxlLHMucmFuZ2VicmVha3MscixuKX1pZihpKCJlbmFibGVkIikpe3ZhciBvPWkoImJvdW5kcyIpO2lmKG8mJm8ubGVuZ3RoPj0yKXt2YXIgbCxjLHU9IiI7aWYoMj09PW8ubGVuZ3RoKWZvcihsPTA7bDwyO2wrKylpZihjPXkob1tsXSkpe3U9ZDticmVha312YXIgZj1pKCJwYXR0ZXJuIix1KTtpZihmPT09ZClmb3IobD0wO2w8MjtsKyspKGM9eShvW2xdKSkmJihlLmJvdW5kc1tsXT1vW2xdPWMtMSk7aWYoZilmb3IobD0wO2w8MjtsKyspc3dpdGNoKGM9b1tsXSxmKXtjYXNlIGQ6aWYoIW4oYykpcmV0dXJuIHZvaWQoZS5lbmFibGVkPSExKTtpZigoYz0rYykhPT1NYXRoLmZsb29yKGMpfHxjPDB8fGM+PTcpcmV0dXJuIHZvaWQoZS5lbmFibGVkPSExKTtlLmJvdW5kc1tsXT1vW2xdPWM7YnJlYWs7Y2FzZSBtOmlmKCFuKGMpKXJldHVybiB2b2lkKGUuZW5hYmxlZD0hMSk7aWYoKGM9K2MpPDB8fGM+MjQpcmV0dXJuIHZvaWQoZS5lbmFibGVkPSExKTtlLmJvdW5kc1tsXT1vW2xdPWN9aWYoITE9PT1yLmF1dG9yYW5nZSl7dmFyIGg9ci5yYW5nZTtpZihoWzBdPGhbMV0pe2lmKG9bMF08aFswXSYmb1sxXT5oWzFdKXJldHVybiB2b2lkKGUuZW5hYmxlZD0hMSl9ZWxzZSBpZihvWzBdPmhbMF0mJm9bMV08aFsxXSlyZXR1cm4gdm9pZChlLmVuYWJsZWQ9ITEpfX1lbHNle3ZhciBwPWkoInZhbHVlcyIpO2lmKCFwfHwhcC5sZW5ndGgpcmV0dXJuIHZvaWQoZS5lbmFibGVkPSExKTtpKCJkdmFsdWUiKX19fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLG0pe3ZhciB2LHk9bi5sZXR0ZXIseD1uLmZvbnR8fHt9LGI9bi5zcGxvbVN0YXNofHx7fSxfPXIoInZpc2libGUiLCFuLnZpc2libGVEZmx0KSx3PWUuX3RlbXBsYXRlfHx7fSxUPWUudHlwZXx8dy50eXBlfHwiLSI7ImRhdGUiPT09VCYmKGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVEZWZhdWx0cyIpKHQsZSwiY2FsZW5kYXIiLG4uY2FsZW5kYXIpLG4ubm9UaWNrbGFiZWxtb2RlfHwodj1yKCJ0aWNrbGFiZWxtb2RlIikpKTt2YXIgaz0iIjtuLm5vVGlja2xhYmVscG9zaXRpb24mJiJtdWx0aWNhdGVnb3J5IiE9PVR8fChrPWEuY29lcmNlKHQsZSx7dGlja2xhYmVscG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6Im91dHNpZGUiLHZhbHVlczoicGVyaW9kIj09PXY/WyJvdXRzaWRlIiwiaW5zaWRlIl06IngiPT09eT9bIm91dHNpZGUiLCJpbnNpZGUiLCJvdXRzaWRlIGxlZnQiLCJpbnNpZGUgbGVmdCIsIm91dHNpZGUgcmlnaHQiLCJpbnNpZGUgcmlnaHQiXTpbIm91dHNpZGUiLCJpbnNpZGUiLCJvdXRzaWRlIHRvcCIsImluc2lkZSB0b3AiLCJvdXRzaWRlIGJvdHRvbSIsImluc2lkZSBib3R0b20iXX19LCJ0aWNrbGFiZWxwb3NpdGlvbiIpKSxuLm5vVGlja2xhYmVsb3ZlcmZsb3d8fHIoInRpY2tsYWJlbG92ZXJmbG93IiwtMSE9PWsuaW5kZXhPZigiaW5zaWRlIik/ImhpZGUgcGFzdCBkb21haW4iOiJjYXRlZ29yeSI9PT1UfHwibXVsdGljYXRlZ29yeSI9PT1UPyJhbGxvdyI6ImhpZGUgcGFzdCBkaXYiKSxwKGUsbSk7dmFyIEE9IWUuaXNWYWxpZFJhbmdlKHQucmFuZ2UpO0EmJm4ucmV2ZXJzZURmbHQmJihBPSJyZXZlcnNlZCIpLCFyKCJhdXRvcmFuZ2UiLEEpfHwibGluZWFyIiE9PVQmJiItIiE9PVR8fHIoInJhbmdlbW9kZSIpLHIoInJhbmdlIiksZS5jbGVhblJhbmdlKCksZih0LGUscixuKSwiY2F0ZWdvcnkiPT09VHx8bi5ub0hvdmVyfHxyKCJob3ZlcmZvcm1hdCIpO3ZhciBNPXIoImNvbG9yIiksUz1NIT09cy5jb2xvci5kZmx0P006eC5jb2xvcixFPWIubGFiZWx8fG0uX2RmbHRUaXRsZVt5XTtpZih1KHQsZSxyLFQsbix7cGFzczoxfSksIV8pcmV0dXJuIGU7cigidGl0bGUudGV4dCIsRSksYS5jb2VyY2VGb250KHIsInRpdGxlLmZvbnQiLHtmYW1pbHk6eC5mYW1pbHksc2l6ZTphLmJpZ0ZvbnQoeC5zaXplKSxjb2xvcjpTfSksbCh0LGUscixUKSx1KHQsZSxyLFQsbix7cGFzczoyfSksYyh0LGUscixuKSxoKHQsZSxyLHtkZmx0Q29sb3I6TSxiZ0NvbG9yOm4uYmdDb2xvcixzaG93R3JpZDpuLnNob3dHcmlkLGF0dHJpYnV0ZXM6c30pLChlLnNob3dsaW5lfHxlLnRpY2tzKSYmcigibWlycm9yIiksbi5hdXRvbWFyZ2luJiZyKCJhdXRvbWFyZ2luIik7dmFyIEwsQz0ibXVsdGljYXRlZ29yeSI9PT1UO24ubm9UaWNrc29ufHwiY2F0ZWdvcnkiIT09VCYmIUN8fCFlLnRpY2tzJiYhZS5zaG93Z3JpZHx8KEMmJihMPSJib3VuZGFyaWVzIiksImJvdW5kYXJpZXMiPT09cigidGlja3NvbiIsTCkmJmRlbGV0ZSBlLnRpY2tsYWJlbHBvc2l0aW9uKTtDJiYocigic2hvd2RpdmlkZXJzIikmJihyKCJkaXZpZGVyY29sb3IiKSxyKCJkaXZpZGVyd2lkdGgiKSkpO2lmKCJkYXRlIj09PVQpaWYobyh0LGUse25hbWU6InJhbmdlYnJlYWtzIixpbmNsdXNpb25BdHRyOiJlbmFibGVkIixoYW5kbGVJdGVtRGVmYXVsdHM6Z30pLGUucmFuZ2VicmVha3MubGVuZ3RoKXtmb3IodmFyIFA9MDtQPGUucmFuZ2VicmVha3MubGVuZ3RoO1ArKylpZihlLnJhbmdlYnJlYWtzW1BdLnBhdHRlcm49PT1kKXtlLl9oYXNEYXlPZldlZWtCcmVha3M9ITA7YnJlYWt9aWYocChlLG0pLG0uX2hhcygic2NhdHRlcmdsIil8fG0uX2hhcygic3Bsb20iKSlmb3IodmFyIEk9MDtJPG4uZGF0YS5sZW5ndGg7SSsrKXt2YXIgTz1uLmRhdGFbSV07InNjYXR0ZXJnbCIhPT1PLnR5cGUmJiJzcGxvbSIhPT1PLnR5cGV8fChPLnZpc2libGU9ITEsYS53YXJuKE8udHlwZSsiIHRyYWNlcyBkbyBub3Qgd29yayBvbiBheGVzIHdpdGggcmFuZ2VicmVha3MuIFNldHRpbmcgdHJhY2UgIitPLmluZGV4KyIgdG8gYHZpc2libGU6IGZhbHNlYC4iKSl9fWVsc2UgZGVsZXRlIGUucmFuZ2VicmVha3M7cmV0dXJuIGV9O3ZhciB2PXtzdW46MSxtb246Mix0dWU6Myx3ZWQ6NCx0aHU6NSxmcmk6NixzYXQ6N307ZnVuY3Rpb24geSh0KXtpZigic3RyaW5nIj09dHlwZW9mIHQpcmV0dXJuIHZbdC5zdWJzdHIoMCwzKS50b0xvd2VyQ2FzZSgpXX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6ODIyLCIuL2NhdGVnb3J5X29yZGVyX2RlZmF1bHRzIjo4MzIsIi4vY29uc3RhbnRzIjo4MzQsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg0MiwiLi9saW5lX2dyaWRfZGVmYXVsdHMiOjg0NCwiLi9zZXRfY29udmVydCI6ODQ4LCIuL3RpY2tfbGFiZWxfZGVmYXVsdHMiOjg0OSwiLi90aWNrX21hcmtfZGVmYXVsdHMiOjg1MCwiLi90aWNrX3ZhbHVlX2RlZmF1bHRzIjo4NTEsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw4MzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29uc3RhbnRzL2RvY3MiKSxpPW4uRk9STUFUX0xJTkssYT1uLkRBVEVfRk9STUFUX0xJTks7ZnVuY3Rpb24gbyh0LGUpe3JldHVyblsiU2V0cyB0aGUgIit0KyIgZm9ybWF0dGluZyBydWxlIisoZT8iZm9yIGAiK2UrImAgIjoiIiksInVzaW5nIGQzIGZvcm1hdHRpbmcgbWluaS1sYW5ndWFnZXMiLCJ3aGljaCBhcmUgdmVyeSBzaW1pbGFyIHRvIHRob3NlIGluIFB5dGhvbi4gRm9yIG51bWJlcnMsIHNlZTogIitpKyIuIl0uam9pbigiICIpfWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gbyh0LGUpK1siIEFuZCBmb3IgZGF0ZXMgc2VlOiAiK2ErIi4iLCJXZSBhZGQgdHdvIGl0ZW1zIHRvIGQzJ3MgZGF0ZSBmb3JtYXR0ZXI6IiwiKiVoKiBmb3IgaGFsZiBvZiB0aGUgeWVhciBhcyBhIGRlY2ltYWwgbnVtYmVyIGFzIHdlbGwgYXMiLCIqJXtufWYqIGZvciBmcmFjdGlvbmFsIHNlY29uZHMiLCJ3aXRoIG4gZGlnaXRzLiBGb3IgZXhhbXBsZSwgKjIwMTYtMTAtMTMgMDk6MTU6MjMuNDU2KiB3aXRoIHRpY2tmb3JtYXQiLCIqJUh+JU1+JVMuJTJmKiB3b3VsZCBkaXNwbGF5ICowOX4xNX4yMy40NioiXS5qb2luKCIgIil9ZS5leHBvcnRzPXtheGlzSG92ZXJGb3JtYXQ6ZnVuY3Rpb24odCxlKXtyZXR1cm57dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJub25lIixkZXNjcmlwdGlvbjooZT9vOnMpKCJob3ZlciB0ZXh0Iix0KStbIkJ5IGRlZmF1bHQgdGhlIHZhbHVlcyBhcmUgZm9ybWF0dGVkIHVzaW5nICIrKGU/ImdlbmVyaWMgbnVtYmVyIGZvcm1hdCI6ImAiK3QrImF4aXMuaG92ZXJmb3JtYXRgIikrIi4iXS5qb2luKCIgIil9fSxkZXNjcmlwdGlvbk9ubHlOdW1iZXJzOm8sZGVzY3JpcHRpb25XaXRoRGF0ZXM6c319LHsiLi4vLi4vY29uc3RhbnRzL2RvY3MiOjc0N31dLDgzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBhKHQsZSl7aWYoZSYmZS5sZW5ndGgpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspaWYoZVtyXVt0XSlyZXR1cm4hMDtyZXR1cm4hMX1yLmlkMm5hbWU9ZnVuY3Rpb24odCl7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0Lm1hdGNoKGkuQVhfSURfUEFUVEVSTikpe3ZhciBlPXQuc3BsaXQoIiAiKVswXS5zdWJzdHIoMSk7cmV0dXJuIjEiPT09ZSYmKGU9IiIpLHQuY2hhckF0KDApKyJheGlzIitlfX0sci5uYW1lMmlkPWZ1bmN0aW9uKHQpe2lmKHQubWF0Y2goaS5BWF9OQU1FX1BBVFRFUk4pKXt2YXIgZT10LnN1YnN0cig1KTtyZXR1cm4iMSI9PT1lJiYoZT0iIiksdC5jaGFyQXQoMCkrZX19LHIuY2xlYW5JZD1mdW5jdGlvbih0LGUscil7dmFyIG49LyggZG9tYWluKSQvLnRlc3QodCk7aWYoInN0cmluZyI9PXR5cGVvZiB0JiZ0Lm1hdGNoKGkuQVhfSURfUEFUVEVSTikmJighZXx8dC5jaGFyQXQoMCk9PT1lKSYmKCFufHxyKSl7dmFyIGE9dC5zcGxpdCgiICIpWzBdLnN1YnN0cigxKS5yZXBsYWNlKC9eMCsvLCIiKTtyZXR1cm4iMSI9PT1hJiYoYT0iIiksdC5jaGFyQXQoMCkrYSsobiYmcj8iIGRvbWFpbiI6IiIpfX0sci5saXN0PWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10Ll9mdWxsTGF5b3V0O2lmKCFpKXJldHVybltdO3ZhciBhLG89ci5saXN0SWRzKHQsZSkscz1uZXcgQXJyYXkoby5sZW5ndGgpO2ZvcihhPTA7YTxvLmxlbmd0aDthKyspe3ZhciBsPW9bYV07c1thXT1pW2wuY2hhckF0KDApKyJheGlzIitsLnN1YnN0cigxKV19aWYoIW4pe3ZhciBjPWkuX3N1YnBsb3RzLmdsM2R8fFtdO2ZvcihhPTA7YTxjLmxlbmd0aDthKyspe3ZhciB1PWlbY1thXV07ZT9zLnB1c2godVtlKyJheGlzIl0pOnMucHVzaCh1LnhheGlzLHUueWF4aXMsdS56YXhpcyl9fXJldHVybiBzfSxyLmxpc3RJZHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0O2lmKCFyKXJldHVybltdO3ZhciBuPXIuX3N1YnBsb3RzO3JldHVybiBlP25bZSsiYXhpcyJdOm4ueGF4aXMuY29uY2F0KG4ueWF4aXMpfSxyLmdldEZyb21JZD1mdW5jdGlvbih0LGUsbil7dmFyIGk9dC5fZnVsbExheW91dDtyZXR1cm4gZT12b2lkIDA9PT1lfHwic3RyaW5nIiE9dHlwZW9mIGU/ZTplLnJlcGxhY2UoIiBkb21haW4iLCIiKSwieCI9PT1uP2U9ZS5yZXBsYWNlKC95WzAtOV0qLywiIik6InkiPT09biYmKGU9ZS5yZXBsYWNlKC94WzAtOV0qLywiIikpLGlbci5pZDJuYW1lKGUpXX0sci5nZXRGcm9tVHJhY2U9ZnVuY3Rpb24odCxlLGkpe3ZhciBhPXQuX2Z1bGxMYXlvdXQsbz1udWxsO2lmKG4udHJhY2VJcyhlLCJnbDNkIikpe3ZhciBzPWUuc2NlbmU7InNjZW5lIj09PXMuc3Vic3RyKDAsNSkmJihvPWFbc11baSsiYXhpcyJdKX1lbHNlIG89ci5nZXRGcm9tSWQodCxlW2krImF4aXMiXXx8aSk7cmV0dXJuIG99LHIuaWRTb3J0PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5jaGFyQXQoMCksbj1lLmNoYXJBdCgwKTtyZXR1cm4gciE9PW4/cj5uPzE6LTE6Kyh0LnN1YnN0cigxKXx8MSktKyhlLnN1YnN0cigxKXx8MSl9LHIucmVmMmlkPWZ1bmN0aW9uKHQpe3JldHVybiEhL15beHl6XS8udGVzdCh0KSYmdC5zcGxpdCgiICIpWzBdfSxyLmlzTGlua2VkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGEoZSx0Ll9heGlzTWF0Y2hHcm91cHMpfHxhKGUsdC5fYXhpc0NvbnN0cmFpbnRHcm91cHMpfX0seyIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2NvbnN0YW50cyI6ODM0fV0sODMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtpZigiY2F0ZWdvcnkiPT09ZS50eXBlKXt2YXIgaSxhPXQuY2F0ZWdvcnlhcnJheSxvPUFycmF5LmlzQXJyYXkoYSkmJmEubGVuZ3RoPjA7byYmKGk9ImFycmF5Iik7dmFyIHMsbD1yKCJjYXRlZ29yeW9yZGVyIixpKTsiYXJyYXkiPT09bCYmKHM9cigiY2F0ZWdvcnlhcnJheSIpKSxvfHwiYXJyYXkiIT09bHx8KGw9ZS5jYXRlZ29yeW9yZGVyPSJ0cmFjZSIpLCJ0cmFjZSI9PT1sP2UuX2luaXRpYWxDYXRlZ29yaWVzPVtdOiJhcnJheSI9PT1sP2UuX2luaXRpYWxDYXRlZ29yaWVzPXMuc2xpY2UoKToocz1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhPWUuZGF0YUF0dHJ8fHQuX2lkLmNoYXJBdCgwKSxvPXt9O2lmKGUuYXhEYXRhKXI9ZS5heERhdGE7ZWxzZSBmb3Iocj1bXSxuPTA7bjxlLmRhdGEubGVuZ3RoO24rKyl7dmFyIHM9ZS5kYXRhW25dO3NbYSsiYXhpcyJdPT09dC5faWQmJnIucHVzaChzKX1mb3Iobj0wO248ci5sZW5ndGg7bisrKXt2YXIgbD1yW25dW2FdO2ZvcihpPTA7aTxsLmxlbmd0aDtpKyspe3ZhciBjPWxbaV07bnVsbCE9YyYmKG9bY109MSl9fXJldHVybiBPYmplY3Qua2V5cyhvKX0oZSxuKS5zb3J0KCksImNhdGVnb3J5IGFzY2VuZGluZyI9PT1sP2UuX2luaXRpYWxDYXRlZ29yaWVzPXM6ImNhdGVnb3J5IGRlc2NlbmRpbmciPT09bCYmKGUuX2luaXRpYWxDYXRlZ29yaWVzPXMucmV2ZXJzZSgpKSl9fX0se31dLDgzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIiksbz1hLk9ORURBWSxzPWEuT05FV0VFSztyLmR0aWNrPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ImxvZyI9PT1lLGk9ImRhdGUiPT09ZSxhPSJjYXRlZ29yeSI9PT1lLHM9aT9vOjE7aWYoIXQpcmV0dXJuIHM7aWYobih0KSlyZXR1cm4odD1OdW1iZXIodCkpPD0wP3M6YT9NYXRoLm1heCgxLE1hdGgucm91bmQodCkpOmk/TWF0aC5tYXgoLjEsdCk6dDtpZigic3RyaW5nIiE9dHlwZW9mIHR8fCFpJiYhcilyZXR1cm4gczt2YXIgbD10LmNoYXJBdCgwKSxjPXQuc3Vic3RyKDEpO3JldHVybihjPW4oYyk/TnVtYmVyKGMpOjApPD0wfHwhKGkmJiJNIj09PWwmJmM9PT1NYXRoLnJvdW5kKGMpfHxyJiYiTCI9PT1sfHxyJiYiRCI9PT1sJiYoMT09PWN8fDI9PT1jKSk/czp0fSxyLnRpY2swPWZ1bmN0aW9uKHQsZSxyLGEpe3JldHVybiJkYXRlIj09PWU/aS5jbGVhbkRhdGUodCxpLmRhdGVUaWNrMChyLGElcz09MD8xOjApKToiRDEiIT09YSYmIkQyIiE9PWE/bih0KT9OdW1iZXIodCk6MDp2b2lkIDB9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw4MzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL3JlZ2V4IikuY291bnRlcjtlLmV4cG9ydHM9e2lkUmVnZXg6e3g6bigieCIsIiggZG9tYWluKT8iKSx5Om4oInkiLCIoIGRvbWFpbik/Iil9LGF0dHJSZWdleDpuKCJbeHldYXhpcyIpLHhBeGlzTWF0Y2g6bigieGF4aXMiKSx5QXhpc01hdGNoOm4oInlheGlzIiksQVhfSURfUEFUVEVSTjovXlt4eXpdWzAtOV0qKCBkb21haW4pPyQvLEFYX05BTUVfUEFUVEVSTjovXlt4eXpdYXhpc1swLTldKiQvLFNVQlBMT1RfUEFUVEVSTjovXngoWzAtOV0qKXkoWzAtOV0qKSQvLEhPVVJfUEFUVEVSTjoiaG91ciIsV0VFS0RBWV9QQVRURVJOOiJkYXkgb2Ygd2VlayIsTUlORFJBRzo4LE1JTlNFTEVDVDoxMixNSU5aT09NOjIwLERSQUdHRVJTSVpFOjIwLEJFTkRQWDoxLjUsUkVEUkFXREVMQVk6NTAsU0VMRUNUREVMQVk6MTAwLFNFTEVDVElEOiItc2VsZWN0IixERkxUUkFOR0VYOlstMSw2XSxERkxUUkFOR0VZOlstMSw0XSx0cmFjZUxheWVyQ2xhc3NlczpbImltYWdlbGF5ZXIiLCJoZWF0bWFwbGF5ZXIiLCJjb250b3VyY2FycGV0bGF5ZXIiLCJjb250b3VybGF5ZXIiLCJmdW5uZWxsYXllciIsIndhdGVyZmFsbGxheWVyIiwiYmFybGF5ZXIiLCJjYXJwZXRsYXllciIsInZpb2xpbmxheWVyIiwiYm94bGF5ZXIiLCJvaGxjbGF5ZXIiLCJzY2F0dGVyY2FycGV0bGF5ZXIiLCJzY2F0dGVybGF5ZXIiXSxjbGlwT25BeGlzRmFsc2VRdWVyeTpbIi5zY2F0dGVybGF5ZXIiLCIuYmFybGF5ZXIiLCIuZnVubmVsbGF5ZXIiLCIud2F0ZXJmYWxsbGF5ZXIiXSxsYXllclZhbHVlMmxheWVyQ2xhc3M6eyJhYm92ZSB0cmFjZXMiOiJhYm92ZSIsImJlbG93IHRyYWNlcyI6ImJlbG93In19fSx7Ii4uLy4uL2xpYi9yZWdleCI6NzkzfV0sODM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdXRvcmFuZ2UiKSxhPXQoIi4vYXhpc19pZHMiKS5pZDJuYW1lLG89dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHM9dCgiLi9zY2FsZV96b29tIiksbD10KCIuL3NldF9jb252ZXJ0IiksYz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQUxNT1NUX0VRVUFMLHU9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLkZST01fQkw7ZnVuY3Rpb24gZih0LGUscil7dmFyIGk9ci5heElkcyxzPXIubGF5b3V0T3V0LGw9ci5oYXNJbWFnZSxjPXMuX2F4aXNDb25zdHJhaW50R3JvdXBzLHU9cy5fYXhpc01hdGNoR3JvdXBzLGY9ZS5faWQsbT1mLmNoYXJBdCgwKSxnPSgocy5fc3Bsb21BeGVzfHx7fSlbbV18fHt9KVtmXXx8e30sdj1lLl9pZCx5PSJ4Ij09PXYuY2hhckF0KDApO2Z1bmN0aW9uIHgocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX1lLl9tYXRjaEdyb3VwPW51bGwsZS5fY29uc3RyYWludEdyb3VwPW51bGwseCgiY29uc3RyYWluIixsPyJkb21haW4iOiJyYW5nZSIpLG4uY29lcmNlKHQsZSx7Y29uc3RyYWludG93YXJkOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6eT9bImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdOlsiYm90dG9tIiwibWlkZGxlIiwidG9wIl0sZGZsdDp5PyJjZW50ZXIiOiJtaWRkbGUifX0sImNvbnN0cmFpbnRvd2FyZCIpO3ZhciBiLF8sdz1lLnR5cGUsVD1bXTtmb3IoYj0wO2I8aS5sZW5ndGg7YisrKXtpZigoXz1pW2JdKSE9PXYpc1thKF8pXS50eXBlPT09dyYmVC5wdXNoKF8pfXZhciBrPXAoYyx2KTtpZihrKXt2YXIgQT1bXTtmb3IoYj0wO2I8VC5sZW5ndGg7YisrKWtbXz1UW2JdXXx8QS5wdXNoKF8pO1Q9QX12YXIgTSxTLEU9VC5sZW5ndGg7RSYmKHQubWF0Y2hlc3x8Zy5tYXRjaGVzKSYmKE09bi5jb2VyY2UodCxlLHttYXRjaGVzOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6VCxkZmx0Oi0xIT09VC5pbmRleE9mKGcubWF0Y2hlcyk/Zy5tYXRjaGVzOnZvaWQgMH19LCJtYXRjaGVzIikpO3ZhciBMPWwmJiF5P2UuYW5jaG9yOnZvaWQgMDtpZihFJiYhTSYmKHQuc2NhbGVhbmNob3J8fEwpJiYoUz1uLmNvZXJjZSh0LGUse3NjYWxlYW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6VH19LCJzY2FsZWFuY2hvciIsTCkpLE0pe2UuX21hdGNoR3JvdXA9ZCh1LHYsTSwxKTt2YXIgQz1zW2EoTSldLFA9aChzLGUpL2gocyxDKTt5IT09KCJ4Ij09PU0uY2hhckF0KDApKSYmKFA9KHk/IngiOiJ5IikrUCksZChjLHYsTSxQKX1lbHNlIHQubWF0Y2hlcyYmLTEhPT1pLmluZGV4T2YodC5tYXRjaGVzKSYmbi53YXJuKCJpZ25vcmVkICIrZS5fbmFtZSsnLm1hdGNoZXM6ICInK3QubWF0Y2hlcysnIiB0byBhdm9pZCBhbiBpbmZpbml0ZSBsb29wJyk7aWYoUyl7dmFyIEk9eCgic2NhbGVyYXRpbyIpO0l8fChJPWUuc2NhbGVyYXRpbz0xKSxkKGMsdixTLEkpfWVsc2UgdC5zY2FsZWFuY2hvciYmLTEhPT1pLmluZGV4T2YodC5zY2FsZWFuY2hvcikmJm4ud2FybigiaWdub3JlZCAiK2UuX25hbWUrJy5zY2FsZWFuY2hvcjogIicrdC5zY2FsZWFuY2hvcisnIiB0byBhdm9pZCBlaXRoZXIgYW4gaW5maW5pdGUgbG9vcCBhbmQgcG9zc2libHkgaW5jb25zaXN0ZW50IHNjYWxlcmF0aW9zLCBvciBiZWNhdXNlIHRoaXMgYXhpcyBkZWNsYXJlcyBhICptYXRjaGVzKiBjb25zdHJhaW50LicpfWZ1bmN0aW9uIGgodCxlKXt2YXIgcj1lLmRvbWFpbjtyZXR1cm4gcnx8KHI9dFthKGUub3ZlcmxheWluZyldLmRvbWFpbiksclsxXS1yWzBdfWZ1bmN0aW9uIHAodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKylpZih0W3JdW2VdKXJldHVybiB0W3JdO3JldHVybiBudWxsfWZ1bmN0aW9uIGQodCxlLHIsbil7dmFyIGksYSxvLHMsbCxjPXAodCxlKTtudWxsPT09Yz8oKGM9e30pW2VdPTEsbD10Lmxlbmd0aCx0LnB1c2goYykpOmw9dC5pbmRleE9mKGMpO3ZhciB1PU9iamVjdC5rZXlzKGMpO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspaWYobz10W2ldLGkhPT1sJiZvW3JdKXt2YXIgZj1vW3JdO2ZvcihhPTA7YTx1Lmxlbmd0aDthKyspb1tzPXVbYV1dPW0oZixtKG4sY1tzXSkpO3JldHVybiB2b2lkIHQuc3BsaWNlKGwsMSl9aWYoMSE9PW4pZm9yKGE9MDthPHUubGVuZ3RoO2ErKyl7dmFyIGg9dVthXTtjW2hdPW0obixjW2hdKX1jW3JdPTF9ZnVuY3Rpb24gbSh0LGUpe3ZhciByLG4saT0iIixhPSIiOyJzdHJpbmciPT10eXBlb2YgdCYmKHI9KGk9dC5tYXRjaCgvXlt4eV0qLylbMF0pLmxlbmd0aCx0PSt0LnN1YnN0cihyKSksInN0cmluZyI9PXR5cGVvZiBlJiYobj0oYT1lLm1hdGNoKC9eW3h5XSovKVswXSkubGVuZ3RoLGU9K2Uuc3Vic3RyKG4pKTt2YXIgbz10KmU7cmV0dXJuIHJ8fG4/ciYmbiYmaS5jaGFyQXQoMCkhPT1hLmNoYXJBdCgwKT9yPT09bj9vOihyPm4/aS5zdWJzdHIobik6YS5zdWJzdHIocikpK286aSthK3QqZTpvfWZ1bmN0aW9uIGcodCxlKXtmb3IodmFyIHI9ZS5fc2l6ZSxuPXIuaC9yLncsaT17fSxhPU9iamVjdC5rZXlzKHQpLG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXSxsPXRbc107aWYoInN0cmluZyI9PXR5cGVvZiBsKXt2YXIgYz1sLm1hdGNoKC9eW3h5XSovKVswXSx1PWMubGVuZ3RoO2w9K2wuc3Vic3RyKHUpO2Zvcih2YXIgZj0ieSI9PT1jLmNoYXJBdCgwKT9uOjEvbixoPTA7aDx1O2grKylsKj1mfWlbc109bH1yZXR1cm4gaX1mdW5jdGlvbiB2KHQsZSl7dmFyIHI9dC5faW5wdXREb21haW4sbj11W3QuY29uc3RyYWludG93YXJkXSxpPXJbMF0rKHJbMV0tclswXSkqbjt0LmRvbWFpbj10Ll9pbnB1dC5kb21haW49W2krKHJbMF0taSkvZSxpKyhyWzFdLWkpL2VdLHQuc2V0U2NhbGUoKX1yLmhhbmRsZURlZmF1bHRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaSxvLHMsYyx1LGgscCxkLG09ci5heElkcyxnPXIuYXhIYXNJbWFnZSx2PWUuX2F4aXNDb25zdHJhaW50R3JvdXBzPVtdLHk9ZS5fYXhpc01hdGNoR3JvdXBzPVtdO2ZvcihpPTA7aTxtLmxlbmd0aDtpKyspZih1PXRbYz1hKG1baV0pXSxoPWVbY10se2F4SWRzOm0sbGF5b3V0T3V0OmUsaGFzSW1hZ2U6Z1tjXX0pO2Z1bmN0aW9uIHgodCxyKXtmb3IoaT0wO2k8dC5sZW5ndGg7aSsrKWZvcihzIGluIG89dFtpXSllW2EocyldW3JdPW99Zm9yKHgoeSwiX21hdGNoR3JvdXAiKSxpPTA7aTx2Lmxlbmd0aDtpKyspZm9yKHMgaW4gbz12W2ldKWlmKChoPWVbYShzKV0pLmZpeGVkcmFuZ2Upe2Zvcih2YXIgYiBpbiBvKXt2YXIgXz1hKGIpOyExPT09KHRbX118fHt9KS5maXhlZHJhbmdlJiZuLndhcm4oImZpeGVkcmFuZ2Ugd2FzIHNwZWNpZmllZCBhcyBmYWxzZSBmb3IgYXhpcyAiK18rIiBidXQgd2FzIG92ZXJyaWRkZW4gYmVjYXVzZSBhbm90aGVyIGF4aXMgaW4gaXRzIGNvbnN0cmFpbnQgZ3JvdXAgaGFzIGZpeGVkcmFuZ2UgdHJ1ZSIpLGVbX10uZml4ZWRyYW5nZT0hMH1icmVha31mb3IoaT0wO2k8di5sZW5ndGg7KXtmb3IocyBpbiBvPXZbaV0peyhoPWVbYShzKV0pLl9tYXRjaEdyb3VwJiZPYmplY3Qua2V5cyhoLl9tYXRjaEdyb3VwKS5sZW5ndGg9PT1PYmplY3Qua2V5cyhvKS5sZW5ndGgmJih2LnNwbGljZShpLDEpLGktLSk7YnJlYWt9aSsrfXgodiwiX2NvbnN0cmFpbnRHcm91cCIpO3ZhciB3PVsiY29uc3RyYWluIiwicmFuZ2UiLCJhdXRvcmFuZ2UiLCJyYW5nZW1vZGUiLCJyYW5nZWJyZWFrcyIsImNhdGVnb3J5b3JkZXIiLCJjYXRlZ29yeWFycmF5Il0sVD0hMSxrPSExO2Z1bmN0aW9uIEEoKXtkPWhbcF0sInJhbmdlYnJlYWtzIj09PXAmJihrPWguX2hhc0RheU9mV2Vla0JyZWFrcyl9Zm9yKGk9MDtpPHkubGVuZ3RoO2krKyl7bz15W2ldO2Zvcih2YXIgTT0wO008dy5sZW5ndGg7TSsrKXt2YXIgUztmb3IocyBpbiBwPXdbTV0sZD1udWxsLG8paWYodT10W2M9YShzKV0saD1lW2NdLHAgaW4gaCl7aWYoIWgubWF0Y2hlcyYmKFM9aCxwIGluIHUpKXtBKCk7YnJlYWt9bnVsbD09PWQmJnAgaW4gdSYmQSgpfWlmKCJyYW5nZSI9PT1wJiZkJiYoVD0hMCksImF1dG9yYW5nZSI9PT1wJiZudWxsPT09ZCYmVCYmKGQ9ITEpLG51bGw9PT1kJiZwIGluIFMmJihkPVNbcF0pLG51bGwhPT1kKWZvcihzIGluIG8pKGg9ZVthKHMpXSlbcF09InJhbmdlIj09PXA/ZC5zbGljZSgpOmQsInJhbmdlYnJlYWtzIj09PXAmJihoLl9oYXNEYXlPZldlZWtCcmVha3M9ayxsKGgsZSkpfX19LHIuZW5mb3JjZT1mdW5jdGlvbih0KXt2YXIgZSxyLG4sbyxsLHUsZixoLHA9dC5fZnVsbExheW91dCxkPXAuX2F4aXNDb25zdHJhaW50R3JvdXBzfHxbXTtmb3IoZT0wO2U8ZC5sZW5ndGg7ZSsrKXtuPWcoZFtlXSxwKTt2YXIgbT1PYmplY3Qua2V5cyhuKSx5PTEvMCx4PTAsYj0xLzAsXz17fSx3PXt9LFQ9ITE7Zm9yKHI9MDtyPG0ubGVuZ3RoO3IrKyl3W289bVtyXV09bD1wW2EobyldLGwuX2lucHV0RG9tYWluP2wuZG9tYWluPWwuX2lucHV0RG9tYWluLnNsaWNlKCk6bC5faW5wdXREb21haW49bC5kb21haW4uc2xpY2UoKSxsLl9pbnB1dFJhbmdlfHwobC5faW5wdXRSYW5nZT1sLnJhbmdlLnNsaWNlKCkpLGwuc2V0U2NhbGUoKSxfW29dPXU9TWF0aC5hYnMobC5fbSkvbltvXSx5PU1hdGgubWluKHksdSksImRvbWFpbiIhPT1sLmNvbnN0cmFpbiYmbC5fY29uc3RyYWludFNocmlua2FibGV8fChiPU1hdGgubWluKGIsdSkpLGRlbGV0ZSBsLl9jb25zdHJhaW50U2hyaW5rYWJsZSx4PU1hdGgubWF4KHgsdSksImRvbWFpbiI9PT1sLmNvbnN0cmFpbiYmKFQ9ITApO2lmKCEoeT5jKngpfHxUKWZvcihyPTA7cjxtLmxlbmd0aDtyKyspaWYodT1fW289bVtyXV0sZj0obD13W29dKS5jb25zdHJhaW4sdSE9PWJ8fCJkb21haW4iPT09ZilpZihoPXUvYiwicmFuZ2UiPT09ZilzKGwsaCk7ZWxzZXt2YXIgaz1sLl9pbnB1dERvbWFpbixBPShsLmRvbWFpblsxXS1sLmRvbWFpblswXSkvKGtbMV0ta1swXSksTT0obC5yMmwobC5yYW5nZVsxXSktbC5yMmwobC5yYW5nZVswXSkpLyhsLnIybChsLl9pbnB1dFJhbmdlWzFdKS1sLnIybChsLl9pbnB1dFJhbmdlWzBdKSk7aWYoKGgvPUEpKk08MSl7bC5kb21haW49bC5faW5wdXQuZG9tYWluPWsuc2xpY2UoKSxzKGwsaCk7Y29udGludWV9aWYoTTwxJiYobC5yYW5nZT1sLl9pbnB1dC5yYW5nZT1sLl9pbnB1dFJhbmdlLnNsaWNlKCksaCo9TSksbC5hdXRvcmFuZ2Upe3ZhciBTPWwucjJsKGwucmFuZ2VbMF0pLEU9bC5yMmwobC5yYW5nZVsxXSksTD0oUytFKS8yLEM9TCxQPUwsST1NYXRoLmFicyhFLUwpLE89TC1JKmgqMS4wMDAxLHo9TCtJKmgqMS4wMDAxLEQ9aS5tYWtlUGFkRm4ocCxsLDApLFI9aS5tYWtlUGFkRm4ocCxsLDEpO3YobCxoKTt2YXIgRixCLE49TWF0aC5hYnMobC5fbSksaj1pLmNvbmNhdEV4dHJlbWVzKHQsbCksVT1qLm1pbixWPWoubWF4O2ZvcihCPTA7QjxVLmxlbmd0aDtCKyspKEY9VVtCXS52YWwtRChVW0JdKS9OKT5PJiZGPEMmJihDPUYpO2ZvcihCPTA7QjxWLmxlbmd0aDtCKyspKEY9VltCXS52YWwrUihWW0JdKS9OKTx6JiZGPlAmJihQPUYpO2gvPShQLUMpLygyKkkpLEM9bC5sMnIoQyksUD1sLmwycihQKSxsLnJhbmdlPWwuX2lucHV0LnJhbmdlPVM8RT9bQyxQXTpbUCxDXX12KGwsaCl9fX0sci5nZXRBeGlzR3JvdXA9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5fYXhpc01hdGNoR3JvdXBzLG49MDtuPHIubGVuZ3RoO24rKyl7aWYocltuXVtlXSlyZXR1cm4iZyIrbn1yZXR1cm4gZX0sci5jbGVhbj1mdW5jdGlvbih0LGUpe2lmKGUuX2lucHV0RG9tYWluKXtmb3IodmFyIHI9ITEsbj1lLl9pZCxpPXQuX2Z1bGxMYXlvdXQuX2F4aXNDb25zdHJhaW50R3JvdXBzLGE9MDthPGkubGVuZ3RoO2ErKylpZihpW2FdW25dKXtyPSEwO2JyZWFrfXImJiJkb21haW4iPT09ZS5jb25zdHJhaW58fChlLl9pbnB1dC5kb21haW49ZS5kb21haW49ZS5faW5wdXREb21haW4sZGVsZXRlIGUuX2lucHV0RG9tYWluKX19fSx7Ii4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjc0NCwiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiLi9hdXRvcmFuZ2UiOjgyNiwiLi9heGlzX2lkcyI6ODMxLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDIsIi4vc2NhbGVfem9vbSI6ODQ2LCIuL3NldF9jb252ZXJ0Ijo4NDh9XSw4MzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT1pLm51bWJlckZvcm1hdCxvPXQoInRpbnljb2xvcjIiKSxzPXQoImhhcy1wYXNzaXZlLWV2ZW50cyIpLGw9dCgiLi4vLi4vcmVnaXN0cnkiKSxjPWkuc3RyVHJhbnNsYXRlLHU9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksZj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxwPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxkPXQoIi4vYXhlcyIpLG09dCgiLi4vLi4vbGliL3NldGN1cnNvciIpLGc9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLHY9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIikseT12LnNlbGVjdGluZ09yRHJhd2luZyx4PXYuZnJlZU1vZGUsYj10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuRlJPTV9UTCxfPXQoIi4uLy4uL2xpYi9jbGVhcl9nbF9jYW52YXNlcyIpLHc9dCgiLi4vLi4vcGxvdF9hcGkvc3Vicm91dGluZXMiKS5yZWRyYXdSZWdsVHJhY2VzLFQ9dCgiLi4vcGxvdHMiKSxrPXQoIi4vYXhpc19pZHMiKS5nZXRGcm9tSWQsQT10KCIuL3NlbGVjdCIpLnByZXBTZWxlY3QsTT10KCIuL3NlbGVjdCIpLmNsZWFyU2VsZWN0LFM9dCgiLi9zZWxlY3QiKS5zZWxlY3RPbkNsaWNrLEU9dCgiLi9zY2FsZV96b29tIiksTD10KCIuL2NvbnN0YW50cyIpLEM9TC5NSU5EUkFHLFA9TC5NSU5aT09NLEk9ITA7ZnVuY3Rpb24gTyh0LGUscixuKXt2YXIgYT1pLmVuc3VyZVNpbmdsZSh0LmRyYWdsYXllcixlLHIsKGZ1bmN0aW9uKGUpe2UuY2xhc3NlZCgiZHJhZyIsITApLnN0eWxlKHtmaWxsOiJ0cmFuc3BhcmVudCIsInN0cm9rZS13aWR0aCI6MH0pLmF0dHIoImRhdGEtc3VicGxvdCIsdC5pZCl9KSk7cmV0dXJuIGEuY2FsbChtLG4pLGEubm9kZSgpfWZ1bmN0aW9uIHoodCxlLHIsaSxhLG8scyl7dmFyIGw9Tyh0LCJyZWN0IixlLHIpO3JldHVybiBuLnNlbGVjdChsKS5jYWxsKGguc2V0UmVjdCxpLGEsbyxzKSxsfWZ1bmN0aW9uIEQodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKylpZighdFtyXS5maXhlZHJhbmdlKXJldHVybiBlO3JldHVybiIifWZ1bmN0aW9uIFIodCxlLHIsbixpKXtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG89dFthXTtpZighby5maXhlZHJhbmdlKWlmKG8ucmFuZ2VicmVha3Mpe3ZhciBzPSJ5Ij09PW8uX2lkLmNoYXJBdCgwKSxsPXM/MS1lOmUsYz1zPzEtcjpyO25bby5fbmFtZSsiLnJhbmdlWzBdIl09by5sMnIoby5wMmwobCpvLl9sZW5ndGgpKSxuW28uX25hbWUrIi5yYW5nZVsxXSJdPW8ubDJyKG8ucDJsKGMqby5fbGVuZ3RoKSl9ZWxzZXt2YXIgdT1vLl9ybFswXSxmPW8uX3JsWzFdLXU7bltvLl9uYW1lKyIucmFuZ2VbMF0iXT1vLmwycih1K2YqZSksbltvLl9uYW1lKyIucmFuZ2VbMV0iXT1vLmwycih1K2Yqcil9fWlmKGkmJmkubGVuZ3RoKXt2YXIgaD0oZSsoMS1yKSkvMjtSKGksaCwxLWgsbixbXSl9fWZ1bmN0aW9uIEYodCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIG49dFtyXTtpZighbi5maXhlZHJhbmdlKWlmKG4ucmFuZ2VicmVha3Mpe3ZhciBpPW4uX2xlbmd0aCxhPShuLnAybCgwK2UpLW4ucDJsKDApKyhuLnAybChpK2UpLW4ucDJsKGkpKSkvMjtuLnJhbmdlPVtuLmwycihuLl9ybFswXS1hKSxuLmwycihuLl9ybFsxXS1hKV19ZWxzZSBuLnJhbmdlPVtuLmwycihuLl9ybFswXS1lL24uX20pLG4ubDJyKG4uX3JsWzFdLWUvbi5fbSldfX1mdW5jdGlvbiBCKHQpe3JldHVybiAxLSh0Pj0wP01hdGgubWluKHQsLjkpOjEvKDEvTWF0aC5tYXgodCwtLjMpKzMuMjIyKSl9ZnVuY3Rpb24gTih0LGUscixuLGkpe3JldHVybiB0LmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiem9vbWJveCIpLnN0eWxlKHtmaWxsOmU+LjI/InJnYmEoMCwwLDAsMCkiOiJyZ2JhKDI1NSwyNTUsMjU1LDApIiwic3Ryb2tlLXdpZHRoIjowfSkuYXR0cigidHJhbnNmb3JtIixjKHIsbikpLmF0dHIoImQiLGkrIloiKX1mdW5jdGlvbiBqKHQsZSxyKXtyZXR1cm4gdC5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInpvb21ib3gtY29ybmVycyIpLnN0eWxlKHtmaWxsOmYuYmFja2dyb3VuZCxzdHJva2U6Zi5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjoxLG9wYWNpdHk6MH0pLmF0dHIoInRyYW5zZm9ybSIsYyhlLHIpKS5hdHRyKCJkIiwiTTAsMFoiKX1mdW5jdGlvbiBVKHQsZSxyLG4saSxhKXt0LmF0dHIoImQiLG4rIk0iK3IubCsiLCIrci50KyJ2IityLmgrImgiK3Iudysidi0iK3IuaCsiaC0iK3IudysiWiIpLFYodCxlLGksYSl9ZnVuY3Rpb24gVih0LGUscixuKXtyfHwodC50cmFuc2l0aW9uKCkuc3R5bGUoImZpbGwiLG4+LjI/InJnYmEoMCwwLDAsMC40KSI6InJnYmEoMjU1LDI1NSwyNTUsMC4zKSIpLmR1cmF0aW9uKDIwMCksZS50cmFuc2l0aW9uKCkuc3R5bGUoIm9wYWNpdHkiLDEpLmR1cmF0aW9uKDIwMCkpfWZ1bmN0aW9uIEgodCl7bi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuem9vbWJveCwuanMtem9vbWJveC1iYWNrZHJvcCwuanMtem9vbWJveC1tZW51LC56b29tYm94LWNvcm5lcnMiKS5yZW1vdmUoKX1mdW5jdGlvbiBxKHQpe0kmJnQuZGF0YSYmdC5fY29udGV4dC5zaG93VGlwcyYmKGkubm90aWZpZXIoaS5fKHQsIkRvdWJsZS1jbGljayB0byB6b29tIGJhY2sgb3V0IiksImxvbmciKSxJPSExKX1mdW5jdGlvbiBHKHQpe3ZhciBlPU1hdGguZmxvb3IoTWF0aC5taW4odC5iLXQudCx0LnItdC5sLFApLzIpO3JldHVybiJNIisodC5sLTMuNSkrIiwiKyh0LnQtLjUrZSkrImgzdiIrLWUrImgiK2UrInYtM2gtIisoZSszKSsiWk0iKyh0LnIrMy41KSsiLCIrKHQudC0uNStlKSsiaC0zdiIrLWUrImgiKy1lKyJ2LTNoIisoZSszKSsiWk0iKyh0LnIrMy41KSsiLCIrKHQuYisuNS1lKSsiaC0zdiIrZSsiaCIrLWUrInYzaCIrKGUrMykrIlpNIisodC5sLTMuNSkrIiwiKyh0LmIrLjUtZSkrImgzdiIrZSsiaCIrZSsidjNoLSIrKGUrMykrIloifWZ1bmN0aW9uIFkodCxlLHIsbixhKXtmb3IodmFyIG8scyxsLGMsdT0hMSxmPXt9LGg9e30scD0oYXx8e30pLnhhSGFzaCxkPShhfHx7fSkueWFIYXNoLG09MDttPGUubGVuZ3RoO20rKyl7dmFyIGc9ZVttXTtmb3IobyBpbiByKWlmKGdbb10pe2ZvcihsIGluIGcpYSYmKHBbbF18fGRbbF0pfHwoIngiPT09bC5jaGFyQXQoMCk/cjpuKVtsXXx8KGZbbF09byk7Zm9yKHMgaW4gbilhJiYocFtzXXx8ZFtzXSl8fCFnW3NdfHwodT0hMCl9Zm9yKHMgaW4gbilpZihnW3NdKWZvcihjIGluIGcpYSYmKHBbY118fGRbY10pfHwoIngiPT09Yy5jaGFyQXQoMCk/cjpuKVtjXXx8KGhbY109cyl9dSYmKGkuZXh0ZW5kRmxhdChmLGgpLGg9e30pO3ZhciB2PXt9LHk9W107Zm9yKGwgaW4gZil7dmFyIHg9ayh0LGwpO3kucHVzaCh4KSx2W3guX2lkXT14fXZhciBiPXt9LF89W107Zm9yKGMgaW4gaCl7dmFyIHc9ayh0LGMpO18ucHVzaCh3KSxiW3cuX2lkXT13fXJldHVybnt4YUhhc2g6dix5YUhhc2g6Yix4YXhlczp5LHlheGVzOl8seExpbmtzOmYseUxpbmtzOmgsaXNTdWJwbG90Q29uc3RyYWluZWQ6dX19ZnVuY3Rpb24gVyh0LGUpe2lmKHMpe3ZhciByPXZvaWQgMCE9PXQub253aGVlbD8id2hlZWwiOiJtb3VzZXdoZWVsIjt0Ll9vbndoZWVsJiZ0LnJlbW92ZUV2ZW50TGlzdGVuZXIocix0Ll9vbndoZWVsKSx0Ll9vbndoZWVsPWUsdC5hZGRFdmVudExpc3RlbmVyKHIsZSx7cGFzc2l2ZTohMX0pfWVsc2Ugdm9pZCAwIT09dC5vbndoZWVsP3Qub253aGVlbD1lOnZvaWQgMCE9PXQub25tb3VzZXdoZWVsP3Qub25tb3VzZXdoZWVsPWU6dC5pc0FkZGVkV2hlZWxFdmVudHx8KHQuaXNBZGRlZFdoZWVsRXZlbnQ9ITAsdC5hZGRFdmVudExpc3RlbmVyKCJ3aGVlbCIsZSx7cGFzc2l2ZTohMX0pKX1mdW5jdGlvbiBYKHQpe3ZhciBlPVtdO2Zvcih2YXIgciBpbiB0KWUucHVzaCh0W3JdKTtyZXR1cm4gZX1lLmV4cG9ydHM9e21ha2VEcmFnQm94OmZ1bmN0aW9uKHQsZSxyLHMsYyxmLG0sdil7dmFyIEksTyxWLFosSixLLFEsJCx0dCxldCxydCxudCxpdCxhdCxvdCxzdCxsdCxjdCx1dCxmdCxodCxwdCxkdCxtdD10Ll9mdWxsTGF5b3V0Ll96b29tbGF5ZXIsZ3Q9bSt2PT09Im5zZXciLHZ0PTE9PT0obSt2KS5sZW5ndGg7ZnVuY3Rpb24geXQoKXtpZihJPWUueGF4aXMsTz1lLnlheGlzLHR0PUkuX2xlbmd0aCxldD1PLl9sZW5ndGgsUT1JLl9vZmZzZXQsJD1PLl9vZmZzZXQsKFY9e30pW0kuX2lkXT1JLChaPXt9KVtPLl9pZF09TyxtJiZ2KWZvcih2YXIgcj1lLm92ZXJsYXlzLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXS54YXhpcztWW2kuX2lkXT1pO3ZhciBhPXJbbl0ueWF4aXM7WlthLl9pZF09YX1KPVgoViksSz1YKFopLGl0PUQoSix2KSxhdD1EKEssbSksb3Q9IWF0JiYhaXQsbnQ9WSh0LHQuX2Z1bGxMYXlvdXQuX2F4aXNNYXRjaEdyb3VwcyxWLFopO3ZhciBvPShydD1ZKHQsdC5fZnVsbExheW91dC5fYXhpc0NvbnN0cmFpbnRHcm91cHMsVixaLG50KSkuaXNTdWJwbG90Q29uc3RyYWluZWR8fG50LmlzU3VicGxvdENvbnN0cmFpbmVkO3N0PXZ8fG8sbHQ9bXx8bzt2YXIgcz10Ll9mdWxsTGF5b3V0O2N0PXMuX2hhcygic2NhdHRlcmdsIiksdXQ9cy5faGFzKCJzcGxvbSIpLGZ0PXMuX2hhcygic3ZnIil9eXQoKTt2YXIgeHQ9ZnVuY3Rpb24odCxlLHIpe2lmKCF0KXJldHVybiJwb2ludGVyIjtpZigibnNldyI9PT10KXJldHVybiByPyIiOiJwYW4iPT09ZT8ibW92ZSI6ImNyb3NzaGFpciI7cmV0dXJuIHQudG9Mb3dlckNhc2UoKSsiLXJlc2l6ZSJ9KGF0K2l0LHQuX2Z1bGxMYXlvdXQuZHJhZ21vZGUsZ3QpLGJ0PXooZSxtK3YrImRyYWciLHh0LHIscyxjLGYpO2lmKG90JiYhZ3QpcmV0dXJuIGJ0Lm9ubW91c2Vkb3duPW51bGwsYnQuc3R5bGUucG9pbnRlckV2ZW50cz0ibm9uZSIsYnQ7dmFyIF90LHd0LFR0LGt0LEF0LE10LFN0LEV0LEx0LEN0LFB0PXtlbGVtZW50OmJ0LGdkOnQscGxvdGluZm86ZX07ZnVuY3Rpb24gSXQoKXtQdC5wbG90aW5mby5zZWxlY3Rpb249ITEsTSh0KX1mdW5jdGlvbiBPdCh0LHIpe3ZhciBpPVB0LmdkO2lmKGkuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg+PTApaS5fZnVsbExheW91dC5fZGVhY3RpdmF0ZVNoYXBlKGkpO2Vsc2V7dmFyIG89aS5fZnVsbExheW91dC5jbGlja21vZGU7aWYoSChpKSwyIT09dHx8dnR8fHF0KCksZ3Qpby5pbmRleE9mKCJzZWxlY3QiKT4tMSYmUyhyLGksSixLLGUuaWQsUHQpLG8uaW5kZXhPZigiZXZlbnQiKT4tMSYmcC5jbGljayhpLHIsZS5pZCk7ZWxzZSBpZigxPT09dCYmdnQpe3ZhciBzPW0/TzpJLGM9InMiPT09bXx8InciPT09dj8wOjEsZj1zLl9uYW1lKyIucmFuZ2VbIitjKyJdIixoPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10LnJhbmdlW2VdLGk9TWF0aC5hYnMobi10LnJhbmdlWzEtZV0pO3JldHVybiJkYXRlIj09PXQudHlwZT9uOiJsb2ciPT09dC50eXBlPyhyPU1hdGguY2VpbChNYXRoLm1heCgwLC1NYXRoLmxvZyhpKS9NYXRoLkxOMTApKSszLGEoIi4iK3IrImciKShNYXRoLnBvdygxMCxuKSkpOihyPU1hdGguZmxvb3IoTWF0aC5sb2coTWF0aC5hYnMobikpL01hdGguTE4xMCktTWF0aC5mbG9vcihNYXRoLmxvZyhpKS9NYXRoLkxOMTApKzQsYSgiLiIrU3RyaW5nKHIpKyJnIikobikpfShzLGMpLGQ9ImxlZnQiLGc9Im1pZGRsZSI7aWYocy5maXhlZHJhbmdlKXJldHVybjttPyhnPSJuIj09PW0/InRvcCI6ImJvdHRvbSIsInJpZ2h0Ij09PXMuc2lkZSYmKGQ9InJpZ2h0IikpOiJlIj09PXYmJihkPSJyaWdodCIpLGkuX2NvbnRleHQuc2hvd0F4aXNSYW5nZUVudHJ5Qm94ZXMmJm4uc2VsZWN0KGJ0KS5jYWxsKHUubWFrZUVkaXRhYmxlLHtnZDppLGltbWVkaWF0ZTohMCxiYWNrZ3JvdW5kOmkuX2Z1bGxMYXlvdXQucGFwZXJfYmdjb2xvcix0ZXh0OlN0cmluZyhoKSxmaWxsOnMudGlja2ZvbnQ/cy50aWNrZm9udC5jb2xvcjoiIzQ0NCIsaG9yaXpvbnRhbEFsaWduOmQsdmVydGljYWxBbGlnbjpnfSkub24oImVkaXQiLChmdW5jdGlvbih0KXt2YXIgZT1zLmQycih0KTt2b2lkIDAhPT1lJiZsLmNhbGwoIl9ndWlSZWxheW91dCIsaSxmLGUpfSkpfX19ZnVuY3Rpb24genQoZSxyKXtpZih0Ll90cmFuc2l0aW9uaW5nV2l0aER1cmF0aW9uKXJldHVybiExO3ZhciBuPU1hdGgubWF4KDAsTWF0aC5taW4odHQscHQqZStfdCkpLGk9TWF0aC5tYXgoMCxNYXRoLm1pbihldCxkdCpyK3d0KSksYT1NYXRoLmFicyhuLV90KSxvPU1hdGguYWJzKGktd3QpO2Z1bmN0aW9uIHMoKXtTdD0iIixUdC5yPVR0LmwsVHQudD1UdC5iLEx0LmF0dHIoImQiLCJNMCwwWiIpfWlmKFR0Lmw9TWF0aC5taW4oX3QsbiksVHQucj1NYXRoLm1heChfdCxuKSxUdC50PU1hdGgubWluKHd0LGkpLFR0LmI9TWF0aC5tYXgod3QsaSkscnQuaXNTdWJwbG90Q29uc3RyYWluZWQpYT5QfHxvPlA/KFN0PSJ4eSIsYS90dD5vL2V0PyhvPWEqZXQvdHQsd3Q+aT9UdC50PXd0LW86VHQuYj13dCtvKTooYT1vKnR0L2V0LF90Pm4/VHQubD1fdC1hOlR0LnI9X3QrYSksTHQuYXR0cigiZCIsRyhUdCkpKTpzKCk7ZWxzZSBpZihudC5pc1N1YnBsb3RDb25zdHJhaW5lZClpZihhPlB8fG8+UCl7U3Q9Inh5Ijt2YXIgbD1NYXRoLm1pbihUdC5sL3R0LChldC1UdC5iKS9ldCksYz1NYXRoLm1heChUdC5yL3R0LChldC1UdC50KS9ldCk7VHQubD1sKnR0LFR0LnI9Yyp0dCxUdC5iPSgxLWwpKmV0LFR0LnQ9KDEtYykqZXQsTHQuYXR0cigiZCIsRyhUdCkpfWVsc2UgcygpO2Vsc2UhYXR8fG88TWF0aC5taW4oTWF0aC5tYXgoLjYqYSxDKSxQKT9hPEN8fCFpdD9zKCk6KFR0LnQ9MCxUdC5iPWV0LFN0PSJ4IixMdC5hdHRyKCJkIixmdW5jdGlvbih0LGUpe3JldHVybiJNIisodC5sLS41KSsiLCIrKGUtUC0uNSkrImgtM3YiKygyKlArMSkrImgzWk0iKyh0LnIrLjUpKyIsIisoZS1QLS41KSsiaDN2IisoMipQKzEpKyJoLTNaIn0oVHQsd3QpKSk6IWl0fHxhPE1hdGgubWluKC42Km8sUCk/KFR0Lmw9MCxUdC5yPXR0LFN0PSJ5IixMdC5hdHRyKCJkIixmdW5jdGlvbih0LGUpe3JldHVybiJNIisoZS1QLS41KSsiLCIrKHQudC0uNSkrInYtM2giKygyKlArMSkrInYzWk0iKyhlLVAtLjUpKyIsIisodC5iKy41KSsidjNoIisoMipQKzEpKyJ2LTNaIn0oVHQsX3QpKSk6KFN0PSJ4eSIsTHQuYXR0cigiZCIsRyhUdCkpKTtUdC53PVR0LnItVHQubCxUdC5oPVR0LmItVHQudCxTdCYmKEN0PSEwKSx0Ll9kcmFnZ2VkPUN0LFUoRXQsTHQsVHQsQXQsTXQsa3QpLER0KCksdC5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLGh0KSxNdD0hMH1mdW5jdGlvbiBEdCgpe2h0PXt9LCJ4eSIhPT1TdCYmIngiIT09U3R8fChSKEosVHQubC90dCxUdC5yL3R0LGh0LHJ0LnhheGVzKSxWdCgieCIsaHQpKSwieHkiIT09U3QmJiJ5IiE9PVN0fHwoUihLLChldC1UdC5iKS9ldCwoZXQtVHQudCkvZXQsaHQscnQueWF4ZXMpLFZ0KCJ5IixodCkpfWZ1bmN0aW9uIFJ0KCl7RHQoKSxIKHQpLEd0KCkscSh0KX1QdC5wcmVwRm49ZnVuY3Rpb24oZSxyLG4pe3ZhciBhPVB0LmRyYWdtb2RlLHM9dC5fZnVsbExheW91dC5kcmFnbW9kZTtzIT09YSYmKFB0LmRyYWdtb2RlPXMpLHl0KCkscHQ9dC5fZnVsbExheW91dC5faW52U2NhbGVYLGR0PXQuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWSxvdHx8KGd0P2Uuc2hpZnRLZXk/InBhbiI9PT1zP3M9Inpvb20iOnkocyl8fChzPSJwYW4iKTplLmN0cmxLZXkmJihzPSJwYW4iKTpzPSJwYW4iKSx4KHMpP1B0Lm1pbkRyYWc9MTpQdC5taW5EcmFnPXZvaWQgMCx5KHMpPyhQdC54YXhlcz1KLFB0LnlheGVzPUssQShlLHIsbixQdCxzKSk6KFB0LmNsaWNrRm49T3QseShhKSYmSXQoKSxvdHx8KCJ6b29tIj09PXM/KFB0Lm1vdmVGbj16dCxQdC5kb25lRm49UnQsUHQubWluRHJhZz0xLGZ1bmN0aW9uKGUscixuKXt2YXIgYT1idC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtfdD1yLWEubGVmdCx3dD1uLWEudG9wLHQuX2Z1bGxMYXlvdXQuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKHQpO3ZhciBzPWkuYXBwbHkzRFRyYW5zZm9ybSh0Ll9mdWxsTGF5b3V0Ll9pbnZUcmFuc2Zvcm0pKF90LHd0KTtfdD1zWzBdLHd0PXNbMV0sVHQ9e2w6X3QscjpfdCx3OjAsdDp3dCxiOnd0LGg6MH0sa3Q9dC5faG1waXhjb3VudD90Ll9obWx1bWNvdW50L3QuX2htcGl4Y291bnQ6byh0Ll9mdWxsTGF5b3V0LnBsb3RfYmdjb2xvcikuZ2V0THVtaW5hbmNlKCksTXQ9ITEsU3Q9Inh5IixDdD0hMSxFdD1OKG10LGt0LFEsJCxBdD0iTTAsMEgiK3R0KyJWIitldCsiSDBWMCIpLEx0PWoobXQsUSwkKX0oMCxyLG4pKToicGFuIj09PXMmJihQdC5tb3ZlRm49VXQsUHQuZG9uZUZuPUd0KSkpLHQuX2Z1bGxMYXlvdXQuX3JlZHJhZz1mdW5jdGlvbigpe3ZhciBlPXQuX2RyYWdkYXRhO2lmKGUmJmUuZWxlbWVudD09PWJ0KXt2YXIgcj10Ll9mdWxsTGF5b3V0LmRyYWdtb2RlO3kocil8fCh5dCgpLFl0KFswLDAsdHQsZXRdKSxQdC5tb3ZlRm4oZS5keCxlLmR5KSl9fX0sZy5pbml0KFB0KTt2YXIgRnQ9WzAsMCx0dCxldF0sQnQ9bnVsbCxOdD1MLlJFRFJBV0RFTEFZLGp0PWUubWFpbnBsb3Q/dC5fZnVsbExheW91dC5fcGxvdHNbZS5tYWlucGxvdF06ZTtmdW5jdGlvbiBVdChlLHIpe2lmKGUqPXB0LHIqPWR0LCF0Ll90cmFuc2l0aW9uaW5nV2l0aER1cmF0aW9uKXtpZih0Ll9mdWxsTGF5b3V0Ll9yZXBsb3R0aW5nPSEwLCJldyI9PT1pdHx8Im5zIj09PWF0KXt2YXIgbj1pdD8tZTowLGk9YXQ/LXI6MDtpZihudC5pc1N1YnBsb3RDb25zdHJhaW5lZCl7aWYoaXQmJmF0KXt2YXIgYT0oZS90dC1yL2V0KS8yO249LShlPWEqdHQpLGk9LShyPS1hKmV0KX1hdD9uPS1pKnR0L2V0Omk9LW4qZXQvdHR9cmV0dXJuIGl0JiYoRihKLGUpLFZ0KCJ4IikpLGF0JiYoRihLLHIpLFZ0KCJ5IikpLFl0KFtuLGksdHQsZXRdKSxIdCgpLHZvaWQgdC5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLGh0KX12YXIgbyxzLGw9InciPT09aXQ9PSgibiI9PT1hdCk/MTotMTtpZihpdCYmYXQmJihydC5pc1N1YnBsb3RDb25zdHJhaW5lZHx8bnQuaXNTdWJwbG90Q29uc3RyYWluZWQpKXt2YXIgYz0oZS90dCtsKnIvZXQpLzI7ZT1jKnR0LHI9bCpjKmV0fWlmKCJ3Ij09PWl0P2U9cChKLDAsZSk6ImUiPT09aXQ/ZT1wKEosMSwtZSk6aXR8fChlPTApLCJuIj09PWF0P3I9cChLLDEscik6InMiPT09YXQ/cj1wKEssMCwtcik6YXR8fChyPTApLG89InciPT09aXQ/ZTowLHM9Im4iPT09YXQ/cjowLHJ0LmlzU3VicGxvdENvbnN0cmFpbmVkJiYhbnQuaXNTdWJwbG90Q29uc3RyYWluZWR8fG50LmlzU3VicGxvdENvbnN0cmFpbmVkJiZpdCYmYXQmJmw+MCl7dmFyIHU7aWYobnQuaXNTdWJwbG90Q29uc3RyYWluZWR8fCFpdCYmMT09PWF0Lmxlbmd0aCl7Zm9yKHU9MDt1PEoubGVuZ3RoO3UrKylKW3VdLnJhbmdlPUpbdV0uX3Iuc2xpY2UoKSxFKEpbdV0sMS1yL2V0KTtvPShlPXIqdHQvZXQpLzJ9aWYobnQuaXNTdWJwbG90Q29uc3RyYWluZWR8fCFhdCYmMT09PWl0Lmxlbmd0aCl7Zm9yKHU9MDt1PEsubGVuZ3RoO3UrKylLW3VdLnJhbmdlPUtbdV0uX3Iuc2xpY2UoKSxFKEtbdV0sMS1lL3R0KTtzPShyPWUqZXQvdHQpLzJ9fW50LmlzU3VicGxvdENvbnN0cmFpbmVkJiZhdHx8VnQoIngiKSxudC5pc1N1YnBsb3RDb25zdHJhaW5lZCYmaXR8fFZ0KCJ5Iik7dmFyIGY9dHQtZSxoPWV0LXI7IW50LmlzU3VicGxvdENvbnN0cmFpbmVkfHxpdCYmYXR8fChpdD8ocz1vPzA6ZSpldC90dCxoPWYqZXQvdHQpOihvPXM/MDpyKnR0L2V0LGY9aCp0dC9ldCkpLFl0KFtvLHMsZixoXSksSHQoKSx0LmVtaXQoInBsb3RseV9yZWxheW91dGluZyIsaHQpfWZ1bmN0aW9uIHAodCxlLHIpe2Zvcih2YXIgbixpLGE9MS1lLG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIHM9dFtvXTtpZighcy5maXhlZHJhbmdlKXtuPXMsaT1zLl9ybFthXSsocy5fcmxbZV0tcy5fcmxbYV0pL0Ioci9zLl9sZW5ndGgpO3ZhciBsPXMubDJyKGkpOyExIT09bCYmdm9pZCAwIT09bCYmKHMucmFuZ2VbZV09bCl9fXJldHVybiBuLl9sZW5ndGgqKG4uX3JsW2VdLWkpLyhuLl9ybFtlXS1uLl9ybFthXSl9fWZ1bmN0aW9uIFZ0KHQsZSl7Zm9yKHZhciByPW50LmlzU3VicGxvdENvbnN0cmFpbmVkP3t4OksseTpKfVt0XTpudFt0KyJheGVzIl0sbj1udC5pc1N1YnBsb3RDb25zdHJhaW5lZD97eDpKLHk6S31bdF06W10saT0wO2k8ci5sZW5ndGg7aSsrKXt2YXIgYT1yW2ldLG89YS5faWQscz1udC54TGlua3Nbb118fG50LnlMaW5rc1tvXSxsPW5bMF18fFZbc118fFpbc107bCYmKGU/KGVbYS5fbmFtZSsiLnJhbmdlWzBdIl09ZVtsLl9uYW1lKyIucmFuZ2VbMF0iXSxlW2EuX25hbWUrIi5yYW5nZVsxXSJdPWVbbC5fbmFtZSsiLnJhbmdlWzFdIl0pOmEucmFuZ2U9bC5yYW5nZS5zbGljZSgpKX19ZnVuY3Rpb24gSHQoKXt2YXIgZSxyPVtdO2Z1bmN0aW9uIG4odCl7Zm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLmZpeGVkcmFuZ2V8fHIucHVzaCh0W2VdLl9pZCl9Zm9yKHN0JiYobihKKSxuKHJ0LnhheGVzKSxuKG50LnhheGVzKSksbHQmJihuKEspLG4ocnQueWF4ZXMpLG4obnQueWF4ZXMpKSxodD17fSxlPTA7ZTxyLmxlbmd0aDtlKyspe3ZhciBpPXJbZV0sYT1rKHQsaSk7ZC5kcmF3T25lKHQsYSx7c2tpcFRpdGxlOiEwfSksaHRbYS5fbmFtZSsiLnJhbmdlWzBdIl09YS5yYW5nZVswXSxodFthLl9uYW1lKyIucmFuZ2VbMV0iXT1hLnJhbmdlWzFdfWQucmVkcmF3Q29tcG9uZW50cyh0LHIpfWZ1bmN0aW9uIHF0KCl7aWYoIXQuX3RyYW5zaXRpb25pbmdXaXRoRHVyYXRpb24pe3ZhciBlPXQuX2NvbnRleHQuZG91YmxlQ2xpY2sscj1bXTtpdCYmKHI9ci5jb25jYXQoSikpLGF0JiYocj1yLmNvbmNhdChLKSksbnQueGF4ZXMmJihyPXIuY29uY2F0KG50LnhheGVzKSksbnQueWF4ZXMmJihyPXIuY29uY2F0KG50LnlheGVzKSk7dmFyIG4saSxhLG89e307aWYoInJlc2V0K2F1dG9zaXplIj09PWUpZm9yKGU9ImF1dG9zaXplIixpPTA7aTxyLmxlbmd0aDtpKyspaWYoKG49cltpXSkuX3JhbmdlSW5pdGlhbCYmKG4ucmFuZ2VbMF0hPT1uLl9yYW5nZUluaXRpYWxbMF18fG4ucmFuZ2VbMV0hPT1uLl9yYW5nZUluaXRpYWxbMV0pfHwhbi5fcmFuZ2VJbml0aWFsJiYhbi5hdXRvcmFuZ2Upe2U9InJlc2V0IjticmVha31pZigiYXV0b3NpemUiPT09ZSlmb3IoaT0wO2k8ci5sZW5ndGg7aSsrKShuPXJbaV0pLmZpeGVkcmFuZ2V8fChvW24uX25hbWUrIi5hdXRvcmFuZ2UiXT0hMCk7ZWxzZSBpZigicmVzZXQiPT09ZSlmb3IoKGl0fHxydC5pc1N1YnBsb3RDb25zdHJhaW5lZCkmJihyPXIuY29uY2F0KHJ0LnhheGVzKSksYXQmJiFydC5pc1N1YnBsb3RDb25zdHJhaW5lZCYmKHI9ci5jb25jYXQocnQueWF4ZXMpKSxydC5pc1N1YnBsb3RDb25zdHJhaW5lZCYmKGl0P2F0fHwocj1yLmNvbmNhdChLKSk6cj1yLmNvbmNhdChKKSksaT0wO2k8ci5sZW5ndGg7aSsrKShuPXJbaV0pLmZpeGVkcmFuZ2V8fChuLl9yYW5nZUluaXRpYWw/KGE9bi5fcmFuZ2VJbml0aWFsLG9bbi5fbmFtZSsiLnJhbmdlWzBdIl09YVswXSxvW24uX25hbWUrIi5yYW5nZVsxXSJdPWFbMV0pOm9bbi5fbmFtZSsiLmF1dG9yYW5nZSJdPSEwKTt0LmVtaXQoInBsb3RseV9kb3VibGVjbGljayIsbnVsbCksbC5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsbyl9fWZ1bmN0aW9uIEd0KCl7WXQoWzAsMCx0dCxldF0pLGkuc3luY09yQXN5bmMoW1QucHJldmlvdXNQcm9taXNlcyxmdW5jdGlvbigpe3QuX2Z1bGxMYXlvdXQuX3JlcGxvdHRpbmc9ITEsbC5jYWxsKCJfZ3VpUmVsYXlvdXQiLHQsaHQpfV0sdCl9ZnVuY3Rpb24gWXQoZSl7dmFyIHIsbixhLG8scz10Ll9mdWxsTGF5b3V0LGM9cy5fcGxvdHMsdT1zLl9zdWJwbG90cy5jYXJ0ZXNpYW47aWYodXQmJmwuc3VicGxvdHNSZWdpc3RyeS5zcGxvbS5kcmFnKHQpLGN0KWZvcihyPTA7cjx1Lmxlbmd0aDtyKyspaWYoYT0obj1jW3Vbcl1dKS54YXhpcyxvPW4ueWF4aXMsbi5fc2NlbmUpe3ZhciBmPWkuc2ltcGxlTWFwKGEucmFuZ2UsYS5yMmwpLHA9aS5zaW1wbGVNYXAoby5yYW5nZSxvLnIybCk7bi5fc2NlbmUudXBkYXRlKHtyYW5nZTpbZlswXSxwWzBdLGZbMV0scFsxXV19KX1pZigodXR8fGN0KSYmKF8odCksdyh0KSksZnQpe3ZhciBkPWVbMl0vSS5fbGVuZ3RoLGc9ZVszXS9PLl9sZW5ndGg7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKyl7YT0obj1jW3Vbcl1dKS54YXhpcyxvPW4ueWF4aXM7dmFyIHkseCxiLFQsaz0oc3R8fG50LmlzU3VicGxvdENvbnN0cmFpbmVkKSYmIWEuZml4ZWRyYW5nZSYmVlthLl9pZF0sQT0obHR8fG50LmlzU3VicGxvdENvbnN0cmFpbmVkKSYmIW8uZml4ZWRyYW5nZSYmWltvLl9pZF07aWYoaz8oeT1kLGI9dnx8bnQuaXNTdWJwbG90Q29uc3RyYWluZWQ/ZVswXTpadChhLHkpKTpudC54YUhhc2hbYS5faWRdPyh5PWQsYj1lWzBdKmEuX2xlbmd0aC9JLl9sZW5ndGgpOm50LnlhSGFzaFthLl9pZF0/KHk9ZyxiPSJucyI9PT1hdD8tZVsxXSphLl9sZW5ndGgvTy5fbGVuZ3RoOlp0KGEseSx7bjoidG9wIixzOiJib3R0b20ifVthdF0pKTpiPVh0KGEseT1XdChhLGQsZykpLEE/KHg9ZyxUPW18fG50LmlzU3VicGxvdENvbnN0cmFpbmVkP2VbMV06WnQobyx4KSk6bnQueWFIYXNoW28uX2lkXT8oeD1nLFQ9ZVsxXSpvLl9sZW5ndGgvTy5fbGVuZ3RoKTpudC54YUhhc2hbby5faWRdPyh4PWQsVD0iZXciPT09aXQ/LWVbMF0qby5fbGVuZ3RoL0kuX2xlbmd0aDpadChvLHgse2U6InJpZ2h0Iix3OiJsZWZ0In1baXRdKSk6VD1YdChvLHg9V3QobyxkLGcpKSx5fHx4KXt5fHwoeT0xKSx4fHwoeD0xKTt2YXIgTT1hLl9vZmZzZXQtYi95LFM9by5fb2Zmc2V0LVQveDtuLmNsaXBSZWN0LmNhbGwoaC5zZXRUcmFuc2xhdGUsYixUKS5jYWxsKGguc2V0U2NhbGUseSx4KSxuLnBsb3QuY2FsbChoLnNldFRyYW5zbGF0ZSxNLFMpLmNhbGwoaC5zZXRTY2FsZSwxL3ksMS94KSx5PT09bi54U2NhbGVGYWN0b3ImJng9PT1uLnlTY2FsZUZhY3Rvcnx8KGguc2V0UG9pbnRHcm91cFNjYWxlKG4uem9vbVNjYWxlUHRzLHkseCksaC5zZXRUZXh0UG9pbnRzU2NhbGUobi56b29tU2NhbGVUeHQseSx4KSksaC5oaWRlT3V0c2lkZVJhbmdlUG9pbnRzKG4uY2xpcE9uQXhpc0ZhbHNlVHJhY2VzLG4pLG4ueFNjYWxlRmFjdG9yPXksbi55U2NhbGVGYWN0b3I9eH19fX1mdW5jdGlvbiBXdCh0LGUscil7cmV0dXJuIHQuZml4ZWRyYW5nZT8wOnN0JiZydC54YUhhc2hbdC5faWRdP2U6bHQmJihydC5pc1N1YnBsb3RDb25zdHJhaW5lZD9ydC54YUhhc2g6cnQueWFIYXNoKVt0Ll9pZF0/cjowfWZ1bmN0aW9uIFh0KHQsZSl7cmV0dXJuIGU/KHQucmFuZ2U9dC5fci5zbGljZSgpLEUodCxlKSxadCh0LGUpKTowfWZ1bmN0aW9uIFp0KHQsZSxyKXtyZXR1cm4gdC5fbGVuZ3RoKigxLWUpKmJbcnx8dC5jb25zdHJhaW50b3dhcmR8fCJtaWRkbGUiXX1yZXR1cm4gbS5sZW5ndGgqdi5sZW5ndGghPTEmJlcoYnQsKGZ1bmN0aW9uKGUpe2lmKHQuX2NvbnRleHQuX3Njcm9sbFpvb20uY2FydGVzaWFufHx0Ll9mdWxsTGF5b3V0Ll9lbmFibGVzY3JvbGx6b29tKXtpZihJdCgpLHQuX3RyYW5zaXRpb25pbmdXaXRoRHVyYXRpb24pcmV0dXJuIGUucHJldmVudERlZmF1bHQoKSx2b2lkIGUuc3RvcFByb3BhZ2F0aW9uKCk7eXQoKSxjbGVhclRpbWVvdXQoQnQpO3ZhciByPS1lLmRlbHRhWTtpZihpc0Zpbml0ZShyKXx8KHI9ZS53aGVlbERlbHRhLzEwKSxpc0Zpbml0ZShyKSl7dmFyIG4sYT1NYXRoLmV4cCgtTWF0aC5taW4oTWF0aC5tYXgociwtMjApLDIwKS8yMDApLG89anQuZHJhZ2xheWVyLnNlbGVjdCgiLm5zZXdkcmFnIikubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHM9KGUuY2xpZW50WC1vLmxlZnQpL28ud2lkdGgsbD0oby5ib3R0b20tZS5jbGllbnRZKS9vLmhlaWdodDtpZihzdCl7Zm9yKHZ8fChzPS41KSxuPTA7bjxKLmxlbmd0aDtuKyspYyhKW25dLHMsYSk7VnQoIngiKSxGdFsyXSo9YSxGdFswXSs9RnRbMl0qcyooMS9hLTEpfWlmKGx0KXtmb3IobXx8KGw9LjUpLG49MDtuPEsubGVuZ3RoO24rKyljKEtbbl0sbCxhKTtWdCgieSIpLEZ0WzNdKj1hLEZ0WzFdKz1GdFszXSooMS1sKSooMS9hLTEpfVl0KEZ0KSxIdCgpLHQuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixodCksQnQ9c2V0VGltZW91dCgoZnVuY3Rpb24oKXt0Ll9mdWxsTGF5b3V0JiYoRnQ9WzAsMCx0dCxldF0sR3QoKSl9KSxOdCksZS5wcmV2ZW50RGVmYXVsdCgpfWVsc2UgaS5sb2coIkRpZCBub3QgZmluZCB3aGVlbCBtb3Rpb24gYXR0cmlidXRlczogIixlKX1mdW5jdGlvbiBjKHQsZSxyKXtpZighdC5maXhlZHJhbmdlKXt2YXIgbj1pLnNpbXBsZU1hcCh0LnJhbmdlLHQucjJsKSxhPW5bMF0rKG5bMV0tblswXSkqZTt0LnJhbmdlPW4ubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5sMnIoYSsoZS1hKSpyKX0pKX19fSkpLGJ0fSxtYWtlRHJhZ2dlcjpPLG1ha2VSZWN0RHJhZ2dlcjp6LG1ha2Vab29tYm94Ok4sbWFrZUNvcm5lcnM6aix1cGRhdGVab29tYm94OlUseHlDb3JuZXJzOkcsdHJhbnNpdGlvblpvb21ib3g6VixyZW1vdmVab29tYm94Okgsc2hvd0RvdWJsZUNsaWNrTm90aWZpZXI6cSxhdHRhY2hXaGVlbEV2ZW50SGFuZGxlcjpXfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjY1OCwiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIjo2NTcsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb21wb25lbnRzL2Z4Ijo2NzksIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjc0NCwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9jbGVhcl9nbF9jYW52YXNlcyI6NzYwLCIuLi8uLi9saWIvc2V0Y3Vyc29yIjo3OTcsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuLi8uLi9wbG90X2FwaS9zdWJyb3V0aW5lcyI6ODE3LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9wbG90cyI6ODkwLCIuL2F4ZXMiOjgyNywiLi9heGlzX2lkcyI6ODMxLCIuL2NvbnN0YW50cyI6ODM0LCIuL3NjYWxlX3pvb20iOjg0NiwiLi9zZWxlY3QiOjg0NywiQHBsb3RseS9kMyI6NTgsImhhcy1wYXNzaXZlLWV2ZW50cyI6NDI2LHRpbnljb2xvcjI6NTcyfV0sODM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiKSxvPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxzPXQoIi4vZHJhZ2JveCIpLm1ha2VEcmFnQm94LGw9dCgiLi9jb25zdGFudHMiKS5EUkFHR0VSU0laRTtyLmluaXRJbnRlcmFjdGlvbnM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dDtpZih0Ll9jb250ZXh0LnN0YXRpY1Bsb3Qpbi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuZHJhZyIpLnJlbW92ZSgpO2Vsc2UgaWYoZS5faGFzKCJjYXJ0ZXNpYW4iKXx8ZS5faGFzKCJzcGxvbSIpKXtPYmplY3Qua2V5cyhlLl9wbG90c3x8e30pLnNvcnQoKGZ1bmN0aW9uKHQscil7aWYoKGUuX3Bsb3RzW3RdLm1haW5wbG90JiYhMCk9PT0oZS5fcGxvdHNbcl0ubWFpbnBsb3QmJiEwKSl7dmFyIG49dC5zcGxpdCgieSIpLGk9ci5zcGxpdCgieSIpO3JldHVybiBuWzBdPT09aVswXT9OdW1iZXIoblsxXXx8MSktTnVtYmVyKGlbMV18fDEpOk51bWJlcihuWzBdfHwxKS1OdW1iZXIoaVswXXx8MSl9cmV0dXJuIGUuX3Bsb3RzW3RdLm1haW5wbG90PzE6LTF9KSkuZm9yRWFjaCgoZnVuY3Rpb24ocil7dmFyIG49ZS5fcGxvdHNbcl0sbz1uLnhheGlzLGM9bi55YXhpcztpZighbi5tYWlucGxvdCl7dmFyIHU9cyh0LG4sby5fb2Zmc2V0LGMuX29mZnNldCxvLl9sZW5ndGgsYy5fbGVuZ3RoLCJucyIsImV3Iik7dS5vbm1vdXNlbW92ZT1mdW5jdGlvbihlKXt0Ll9mdWxsTGF5b3V0Ll9yZWhvdmVyPWZ1bmN0aW9uKCl7dC5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PT09ciYmdC5fZnVsbExheW91dC5fcGxvdHNbcl0mJmkuaG92ZXIodCxlLHIpfSxpLmhvdmVyKHQsZSxyKSx0Ll9mdWxsTGF5b3V0Ll9sYXN0aG92ZXI9dSx0Ll9mdWxsTGF5b3V0Ll9ob3ZlcnN1YnBsb3Q9cn0sdS5vbm1vdXNlb3V0PWZ1bmN0aW9uKGUpe3QuX2RyYWdnaW5nfHwodC5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PW51bGwsYS51bmhvdmVyKHQsZSkpfSx0Ll9jb250ZXh0LnNob3dBeGlzRHJhZ0hhbmRsZXMmJihzKHQsbixvLl9vZmZzZXQtbCxjLl9vZmZzZXQtbCxsLGwsIm4iLCJ3Iikscyh0LG4sby5fb2Zmc2V0K28uX2xlbmd0aCxjLl9vZmZzZXQtbCxsLGwsIm4iLCJlIikscyh0LG4sby5fb2Zmc2V0LWwsYy5fb2Zmc2V0K2MuX2xlbmd0aCxsLGwsInMiLCJ3Iikscyh0LG4sby5fb2Zmc2V0K28uX2xlbmd0aCxjLl9vZmZzZXQrYy5fbGVuZ3RoLGwsbCwicyIsImUiKSl9aWYodC5fY29udGV4dC5zaG93QXhpc0RyYWdIYW5kbGVzKXtpZihyPT09by5fbWFpblN1YnBsb3Qpe3ZhciBmPW8uX21haW5MaW5lUG9zaXRpb247InRvcCI9PT1vLnNpZGUmJihmLT1sKSxzKHQsbixvLl9vZmZzZXQrLjEqby5fbGVuZ3RoLGYsLjgqby5fbGVuZ3RoLGwsIiIsImV3Iikscyh0LG4sby5fb2Zmc2V0LGYsLjEqby5fbGVuZ3RoLGwsIiIsInciKSxzKHQsbixvLl9vZmZzZXQrLjkqby5fbGVuZ3RoLGYsLjEqby5fbGVuZ3RoLGwsIiIsImUiKX1pZihyPT09Yy5fbWFpblN1YnBsb3Qpe3ZhciBoPWMuX21haW5MaW5lUG9zaXRpb247InJpZ2h0IiE9PWMuc2lkZSYmKGgtPWwpLHModCxuLGgsYy5fb2Zmc2V0Ky4xKmMuX2xlbmd0aCxsLC44KmMuX2xlbmd0aCwibnMiLCIiKSxzKHQsbixoLGMuX29mZnNldCsuOSpjLl9sZW5ndGgsbCwuMSpjLl9sZW5ndGgsInMiLCIiKSxzKHQsbixoLGMuX29mZnNldCxsLC4xKmMuX2xlbmd0aCwibiIsIiIpfX19KSk7dmFyIG89ZS5faG92ZXJsYXllci5ub2RlKCk7by5vbm1vdXNlbW92ZT1mdW5jdGlvbihyKXtyLnRhcmdldD10Ll9mdWxsTGF5b3V0Ll9sYXN0aG92ZXIsaS5ob3Zlcih0LHIsZS5faG92ZXJzdWJwbG90KX0sby5vbmNsaWNrPWZ1bmN0aW9uKGUpe2UudGFyZ2V0PXQuX2Z1bGxMYXlvdXQuX2xhc3Rob3ZlcixpLmNsaWNrKHQsZSl9LG8ub25tb3VzZWRvd249ZnVuY3Rpb24oZSl7dC5fZnVsbExheW91dC5fbGFzdGhvdmVyLm9ubW91c2Vkb3duKGUpfSxyLnVwZGF0ZUZ4KHQpfX0sci51cGRhdGVGeD1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9InBhbiI9PT1lLmRyYWdtb2RlPyJtb3ZlIjoiY3Jvc3NoYWlyIjtvKGUuX2RyYWdnZXJzLHIpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50Ijo2NTgsIi4uLy4uL2NvbXBvbmVudHMvZngiOjY3OSwiLi4vLi4vbGliL3NldGN1cnNvciI6Nzk3LCIuL2NvbnN0YW50cyI6ODM0LCIuL2RyYWdib3giOjgzNiwiQHBsb3RseS9kMyI6NTh9XSw4Mzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjbGVhck91dGxpbmVDb250cm9sbGVyczpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll96b29tbGF5ZXI7ZSYmZS5zZWxlY3RBbGwoIi5vdXRsaW5lLWNvbnRyb2xsZXJzIikucmVtb3ZlKCl9LGNsZWFyU2VsZWN0OmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX3pvb21sYXllcjtlJiZlLnNlbGVjdEFsbCgiLnNlbGVjdC1vdXRsaW5lIikucmVtb3ZlKCksdC5fZnVsbExheW91dC5fZHJhd2luZz0hMX19fSx7fV0sODM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLnN0clRyYW5zbGF0ZTtmdW5jdGlvbiBpKHQsZSl7c3dpdGNoKHQudHlwZSl7Y2FzZSJsb2ciOnJldHVybiB0LnAyZChlKTtjYXNlImRhdGUiOnJldHVybiB0LnAycihlLDAsdC5jYWxlbmRhcik7ZGVmYXVsdDpyZXR1cm4gdC5wMnIoZSl9fWUuZXhwb3J0cz17cDJyOmkscjJwOmZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQudHlwZSl7Y2FzZSJsb2ciOnJldHVybiB0LmQycChlKTtjYXNlImRhdGUiOnJldHVybiB0LnIycChlLDAsdC5jYWxlbmRhcik7ZGVmYXVsdDpyZXR1cm4gdC5yMnAoZSl9fSxheFZhbHVlOmZ1bmN0aW9uKHQpe3ZhciBlPSJ5Ij09PXQuX2lkLmNoYXJBdCgwKT8xOjA7cmV0dXJuIGZ1bmN0aW9uKHIpe3JldHVybiBpKHQscltlXSl9fSxnZXRUcmFuc2Zvcm06ZnVuY3Rpb24odCl7cmV0dXJuIG4odC54YXhpcy5fb2Zmc2V0LHQueWF4aXMuX29mZnNldCl9fX0seyIuLi8uLi9saWIiOjc3Nn1dLDg0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuL2F4aXNfaWRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBvPWVbdF07aWYoQXJyYXkuaXNBcnJheShvKSlmb3IodmFyIHM9bi5zdWJwbG90c1JlZ2lzdHJ5LmNhcnRlc2lhbixsPXMuaWRSZWdleCxjPXIuX3N1YnBsb3RzLHU9Yy54YXhpcyxmPWMueWF4aXMsaD1jLmNhcnRlc2lhbixwPXIuX2hhcygiY2FydGVzaWFuIil8fHIuX2hhcygiZ2wyZCIpLGQ9MDtkPG8ubGVuZ3RoO2QrKyl7dmFyIG09b1tkXTtpZihpLmlzUGxhaW5PYmplY3QobSkpe3ZhciBnPWEuY2xlYW5JZChtLnhyZWYsIngiLCExKSx2PWEuY2xlYW5JZChtLnlyZWYsInkiLCExKSx5PWwueC50ZXN0KGcpLHg9bC55LnRlc3Qodik7aWYoeXx8eCl7cHx8aS5wdXNoVW5pcXVlKHIuX2Jhc2VQbG90TW9kdWxlcyxzKTt2YXIgYj0hMTt5JiYtMT09PXUuaW5kZXhPZihnKSYmKHUucHVzaChnKSxiPSEwKSx4JiYtMT09PWYuaW5kZXhPZih2KSYmKGYucHVzaCh2KSxiPSEwKSxiJiZ5JiZ4JiZoLnB1c2goZyt2KX19fX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F4aXNfaWRzIjo4MzF9XSw4NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vcGxvdHMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGw9dCgiLi4vZ2V0X2RhdGEiKS5nZXRNb2R1bGVDYWxjRGF0YSxjPXQoIi4vYXhpc19pZHMiKSx1PXQoIi4vY29uc3RhbnRzIiksZj10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLGg9YS5lbnN1cmVTaW5nbGU7ZnVuY3Rpb24gcCh0LGUscil7cmV0dXJuIGEuZW5zdXJlU2luZ2xlKHQsZSxyLChmdW5jdGlvbih0KXt0LmRhdHVtKHIpfSkpfWZ1bmN0aW9uIGQodCxlLHIsYSxvKXtmb3IodmFyIGMsZixoLHA9dS50cmFjZUxheWVyQ2xhc3NlcyxkPXQuX2Z1bGxMYXlvdXQsbT1kLl9tb2R1bGVzLGc9W10sdj1bXSx5PTA7eTxtLmxlbmd0aDt5Kyspe3ZhciB4PShjPW1beV0pLm5hbWUsYj1pLm1vZHVsZXNbeF0uY2F0ZWdvcmllcztpZihiLnN2Zyl7dmFyIF89Yy5sYXllck5hbWV8fHgrImxheWVyIix3PWMucGxvdDtoPShmPWwocix3KSlbMF0scj1mWzFdLGgubGVuZ3RoJiZnLnB1c2goe2k6cC5pbmRleE9mKF8pLGNsYXNzTmFtZTpfLHBsb3RNZXRob2Q6dyxjZE1vZHVsZTpofSksYi56b29tU2NhbGUmJnYucHVzaCgiLiIrXyl9fWcuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5pLWUuaX0pKTt2YXIgVD1lLnBsb3Quc2VsZWN0QWxsKCJnLm1sYXllciIpLmRhdGEoZywoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2xhc3NOYW1lfSkpO2lmKFQuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNsYXNzTmFtZX0pKS5jbGFzc2VkKCJtbGF5ZXIiLCEwKS5jbGFzc2VkKCJyYW5nZXBsb3QiLGUuaXNSYW5nZVBsb3QpLFQuZXhpdCgpLnJlbW92ZSgpLFQub3JkZXIoKSxULmVhY2goKGZ1bmN0aW9uKHIpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLGw9ci5jbGFzc05hbWU7ci5wbG90TWV0aG9kKHQsZSxyLmNkTW9kdWxlLGksYSxvKSwtMT09PXUuY2xpcE9uQXhpc0ZhbHNlUXVlcnkuaW5kZXhPZigiLiIrbCkmJnMuc2V0Q2xpcFVybChpLGUubGF5ZXJDbGlwSWQsdCl9KSksZC5faGFzKCJzY2F0dGVyZ2wiKSYmKGM9aS5nZXRNb2R1bGUoInNjYXR0ZXJnbCIpLGg9bChyLGMpWzBdLGMucGxvdCh0LGUsaCkpLCF0Ll9jb250ZXh0LnN0YXRpY1Bsb3QmJihlLl9oYXNDbGlwT25BeGlzRmFsc2UmJihlLmNsaXBPbkF4aXNGYWxzZVRyYWNlcz1lLnBsb3Quc2VsZWN0QWxsKHUuY2xpcE9uQXhpc0ZhbHNlUXVlcnkuam9pbigiLCIpKS5zZWxlY3RBbGwoIi50cmFjZSIpKSx2Lmxlbmd0aCkpe3ZhciBrPWUucGxvdC5zZWxlY3RBbGwodi5qb2luKCIsIikpLnNlbGVjdEFsbCgiLnRyYWNlIik7ZS56b29tU2NhbGVQdHM9ay5zZWxlY3RBbGwoInBhdGgucG9pbnQiKSxlLnpvb21TY2FsZVR4dD1rLnNlbGVjdEFsbCgiLnRleHRwb2ludCIpfX1mdW5jdGlvbiBtKHQsZSl7dmFyIHI9ZS5wbG90Z3JvdXAsbj1lLmlkLGk9dS5sYXllclZhbHVlMmxheWVyQ2xhc3NbZS54YXhpcy5sYXllcl0sYT11LmxheWVyVmFsdWUybGF5ZXJDbGFzc1tlLnlheGlzLmxheWVyXSxvPXQuX2Z1bGxMYXlvdXQuX2hhc09ubHlMYXJnZVNwbG9tcztpZihlLm1haW5wbG90KXt2YXIgcz1lLm1haW5wbG90aW5mbyxsPXMucGxvdGdyb3VwLGY9bisiLXgiLGQ9bisiLXkiO2UuZ3JpZGxheWVyPXMuZ3JpZGxheWVyLGUuemVyb2xpbmVsYXllcj1zLnplcm9saW5lbGF5ZXIsaChzLm92ZXJsaW5lc0JlbG93LCJwYXRoIixmKSxoKHMub3ZlcmxpbmVzQmVsb3csInBhdGgiLGQpLGgocy5vdmVyYXhlc0JlbG93LCJnIixmKSxoKHMub3ZlcmF4ZXNCZWxvdywiZyIsZCksZS5wbG90PWgocy5vdmVycGxvdCwiZyIsbiksaChzLm92ZXJsaW5lc0Fib3ZlLCJwYXRoIixmKSxoKHMub3ZlcmxpbmVzQWJvdmUsInBhdGgiLGQpLGgocy5vdmVyYXhlc0Fib3ZlLCJnIixmKSxoKHMub3ZlcmF4ZXNBYm92ZSwiZyIsZCksZS54bGluZXM9bC5zZWxlY3QoIi5vdmVybGluZXMtIitpKS5zZWxlY3QoIi4iK2YpLGUueWxpbmVzPWwuc2VsZWN0KCIub3ZlcmxpbmVzLSIrYSkuc2VsZWN0KCIuIitkKSxlLnhheGlzbGF5ZXI9bC5zZWxlY3QoIi5vdmVyYXhlcy0iK2kpLnNlbGVjdCgiLiIrZiksZS55YXhpc2xheWVyPWwuc2VsZWN0KCIub3ZlcmF4ZXMtIithKS5zZWxlY3QoIi4iK2QpfWVsc2UgaWYobyllLnhsaW5lcz1oKHIsInBhdGgiLCJ4bGluZXMtYWJvdmUiKSxlLnlsaW5lcz1oKHIsInBhdGgiLCJ5bGluZXMtYWJvdmUiKSxlLnhheGlzbGF5ZXI9aChyLCJnIiwieGF4aXNsYXllci1hYm92ZSIpLGUueWF4aXNsYXllcj1oKHIsImciLCJ5YXhpc2xheWVyLWFib3ZlIik7ZWxzZXt2YXIgbT1oKHIsImciLCJsYXllci1zdWJwbG90Iik7ZS5zaGFwZWxheWVyPWgobSwiZyIsInNoYXBlbGF5ZXIiKSxlLmltYWdlbGF5ZXI9aChtLCJnIiwiaW1hZ2VsYXllciIpLGUuZ3JpZGxheWVyPWgociwiZyIsImdyaWRsYXllciIpLGUuemVyb2xpbmVsYXllcj1oKHIsImciLCJ6ZXJvbGluZWxheWVyIiksaChyLCJwYXRoIiwieGxpbmVzLWJlbG93IiksaChyLCJwYXRoIiwieWxpbmVzLWJlbG93IiksZS5vdmVybGluZXNCZWxvdz1oKHIsImciLCJvdmVybGluZXMtYmVsb3ciKSxoKHIsImciLCJ4YXhpc2xheWVyLWJlbG93IiksaChyLCJnIiwieWF4aXNsYXllci1iZWxvdyIpLGUub3ZlcmF4ZXNCZWxvdz1oKHIsImciLCJvdmVyYXhlcy1iZWxvdyIpLGUucGxvdD1oKHIsImciLCJwbG90IiksZS5vdmVycGxvdD1oKHIsImciLCJvdmVycGxvdCIpLGUueGxpbmVzPWgociwicGF0aCIsInhsaW5lcy1hYm92ZSIpLGUueWxpbmVzPWgociwicGF0aCIsInlsaW5lcy1hYm92ZSIpLGUub3ZlcmxpbmVzQWJvdmU9aChyLCJnIiwib3ZlcmxpbmVzLWFib3ZlIiksaChyLCJnIiwieGF4aXNsYXllci1hYm92ZSIpLGgociwiZyIsInlheGlzbGF5ZXItYWJvdmUiKSxlLm92ZXJheGVzQWJvdmU9aChyLCJnIiwib3ZlcmF4ZXMtYWJvdmUiKSxlLnhsaW5lcz1yLnNlbGVjdCgiLnhsaW5lcy0iK2kpLGUueWxpbmVzPXIuc2VsZWN0KCIueWxpbmVzLSIrYSksZS54YXhpc2xheWVyPXIuc2VsZWN0KCIueGF4aXNsYXllci0iK2kpLGUueWF4aXNsYXllcj1yLnNlbGVjdCgiLnlheGlzbGF5ZXItIithKX1vfHwocChlLmdyaWRsYXllciwiZyIsZS54YXhpcy5faWQpLHAoZS5ncmlkbGF5ZXIsImciLGUueWF4aXMuX2lkKSxlLmdyaWRsYXllci5zZWxlY3RBbGwoImciKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkpLnNvcnQoYy5pZFNvcnQpKSxlLnhsaW5lcy5zdHlsZSgiZmlsbCIsIm5vbmUiKS5jbGFzc2VkKCJjcmlzcCIsITApLGUueWxpbmVzLnN0eWxlKCJmaWxsIiwibm9uZSIpLmNsYXNzZWQoImNyaXNwIiwhMCl9ZnVuY3Rpb24gZyh0LGUpe2lmKHQpe3ZhciByPXt9O2Zvcih2YXIgaSBpbiB0LmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBpPXRbMF07bi5zZWxlY3QodGhpcykucmVtb3ZlKCksdihpLGUpLHJbaV09ITB9KSksZS5fcGxvdHMpZm9yKHZhciBhPWUuX3Bsb3RzW2ldLm92ZXJsYXlzfHxbXSxvPTA7bzxhLmxlbmd0aDtvKyspe3ZhciBzPWFbb107cltzLmlkXSYmcy5wbG90LnNlbGVjdEFsbCgiLnRyYWNlIikucmVtb3ZlKCl9fX1mdW5jdGlvbiB2KHQsZSl7ZS5fZHJhZ2dlcnMuc2VsZWN0QWxsKCJnLiIrdCkucmVtb3ZlKCksZS5fZGVmcy5zZWxlY3QoIiNjbGlwIitlLl91aWQrdCsicGxvdCIpLnJlbW92ZSgpfXIubmFtZT0iY2FydGVzaWFuIixyLmF0dHI9WyJ4YXhpcyIsInlheGlzIl0sci5pZFJvb3Q9WyJ4IiwieSJdLHIuaWRSZWdleD11LmlkUmVnZXgsci5hdHRyUmVnZXg9dS5hdHRyUmVnZXgsci5hdHRyaWJ1dGVzPXQoIi4vYXR0cmlidXRlcyIpLHIubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksci5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2xheW91dF9kZWZhdWx0cyIpLHIudHJhbnNpdGlvbkF4ZXM9dCgiLi90cmFuc2l0aW9uX2F4ZXMiKSxyLmZpbmFsaXplU3VicGxvdHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksbz1lLl9zdWJwbG90cyxzPW8ueGF4aXMsbD1vLnlheGlzLGY9by5jYXJ0ZXNpYW4saD1mLmNvbmNhdChvLmdsMmR8fFtdKSxwPXt9LGQ9e307Zm9yKHI9MDtyPGgubGVuZ3RoO3IrKyl7dmFyIG09aFtyXS5zcGxpdCgieSIpO3BbbVswXV09MSxkWyJ5IittWzFdXT0xfWZvcihyPTA7cjxzLmxlbmd0aDtyKyspcFtuPXNbcl1dfHwoaT0odFtjLmlkMm5hbWUobildfHx7fSkuYW5jaG9yLHUuaWRSZWdleC55LnRlc3QoaSl8fChpPSJ5IiksZi5wdXNoKG4raSksaC5wdXNoKG4raSksZFtpXXx8KGRbaV09MSxhLnB1c2hVbmlxdWUobCxpKSkpO2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspZFtpPWxbcl1dfHwobj0odFtjLmlkMm5hbWUoaSldfHx7fSkuYW5jaG9yLHUuaWRSZWdleC54LnRlc3Qobil8fChuPSJ4IiksZi5wdXNoKG4raSksaC5wdXNoKG4raSkscFtuXXx8KHBbbl09MSxhLnB1c2hVbmlxdWUocyxuKSkpO2lmKCFoLmxlbmd0aCl7Zm9yKHZhciBnIGluIG49IiIsaT0iIix0KXtpZih1LmF0dHJSZWdleC50ZXN0KGcpKSJ4Ij09PWcuY2hhckF0KDApPyghbnx8K2cuc3Vic3RyKDUpPCtuLnN1YnN0cig1KSkmJihuPWcpOighaXx8K2cuc3Vic3RyKDUpPCtpLnN1YnN0cig1KSkmJihpPWcpfW49bj9jLm5hbWUyaWQobik6IngiLGk9aT9jLm5hbWUyaWQoaSk6InkiLHMucHVzaChuKSxsLnB1c2goaSksZi5wdXNoKG4raSl9fSxyLnBsb3Q9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYT10Ll9mdWxsTGF5b3V0LG89YS5fc3VicGxvdHMuY2FydGVzaWFuLHM9dC5jYWxjZGF0YTtpZighQXJyYXkuaXNBcnJheShlKSlmb3IoZT1bXSxpPTA7aTxzLmxlbmd0aDtpKyspZS5wdXNoKGkpO2ZvcihpPTA7aTxvLmxlbmd0aDtpKyspe2Zvcih2YXIgbCxjPW9baV0sdT1hLl9wbG90c1tjXSxmPVtdLGg9MDtoPHMubGVuZ3RoO2grKyl7dmFyIHA9c1toXSxtPXBbMF0udHJhY2U7bS54YXhpcyttLnlheGlzPT09YyYmKCgtMSE9PWUuaW5kZXhPZihtLmluZGV4KXx8bS5jYXJwZXQpJiYobCYmbFswXS50cmFjZS54YXhpcytsWzBdLnRyYWNlLnlheGlzPT09YyYmLTEhPT1bInRvbmV4dHgiLCJ0b25leHR5IiwidG9uZXh0Il0uaW5kZXhPZihtLmZpbGwpJiYtMT09PWYuaW5kZXhPZihsKSYmZi5wdXNoKGwpLGYucHVzaChwKSksbD1wKX1kKHQsdSxmLHIsbil9fSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbyxzPW4uX3Bsb3RzfHx7fSxsPWUuX3Bsb3RzfHx7fSx1PW4uX3N1YnBsb3RzfHx7fTtpZihuLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJiFlLl9oYXNPbmx5TGFyZ2VTcGxvbXMpZm9yKG8gaW4gcykoaT1zW29dKS5wbG90Z3JvdXAmJmkucGxvdGdyb3VwLnJlbW92ZSgpO3ZhciBmPW4uX2hhcyYmbi5faGFzKCJnbCIpLGg9ZS5faGFzJiZlLl9oYXMoImdsIik7aWYoZiYmIWgpZm9yKG8gaW4gcykoaT1zW29dKS5fc2NlbmUmJmkuX3NjZW5lLmRlc3Ryb3koKTtpZih1LnhheGlzJiZ1LnlheGlzKXt2YXIgcD1jLmxpc3RJZHMoe19mdWxsTGF5b3V0Om59KTtmb3IoYT0wO2E8cC5sZW5ndGg7YSsrKXt2YXIgZD1wW2FdO2VbYy5pZDJuYW1lKGQpXXx8bi5faW5mb2xheWVyLnNlbGVjdEFsbCgiLmctIitkKyJ0aXRsZSIpLnJlbW92ZSgpfX12YXIgbT1uLl9oYXMmJm4uX2hhcygiY2FydGVzaWFuIikseT1lLl9oYXMmJmUuX2hhcygiY2FydGVzaWFuIik7aWYobSYmIXkpZyhuLl9jYXJ0ZXNpYW5sYXllci5zZWxlY3RBbGwoIi5zdWJwbG90Iiksbiksbi5fZGVmcy5zZWxlY3RBbGwoIi5heGVzY2xpcCIpLnJlbW92ZSgpLGRlbGV0ZSBuLl9heGlzQ29uc3RyYWludEdyb3VwcyxkZWxldGUgbi5fYXhpc01hdGNoR3JvdXBzO2Vsc2UgaWYodS5jYXJ0ZXNpYW4pZm9yKGE9MDthPHUuY2FydGVzaWFuLmxlbmd0aDthKyspe3ZhciB4PXUuY2FydGVzaWFuW2FdO2lmKCFsW3hdKXt2YXIgYj0iLiIreCsiLC4iK3grIi14LC4iK3grIi15IjtuLl9jYXJ0ZXNpYW5sYXllci5zZWxlY3RBbGwoYikucmVtb3ZlKCksdih4LG4pfX19LHIuZHJhd0ZyYW1ld29yaz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZnVuY3Rpb24odCl7dmFyIGUscixuLGksYSxvLHM9dC5fZnVsbExheW91dCxsPXMuX3N1YnBsb3RzLmNhcnRlc2lhbixjPWwubGVuZ3RoLHU9W10sZj1bXTtmb3IoZT0wO2U8YztlKyspe249bFtlXSxpPXMuX3Bsb3RzW25dLGE9aS54YXhpcyxvPWkueWF4aXM7dmFyIGg9YS5fbWFpbkF4aXMscD1vLl9tYWluQXhpcyxkPWguX2lkK3AuX2lkLG09cy5fcGxvdHNbZF07aS5vdmVybGF5cz1bXSxkIT09biYmbT8oaS5tYWlucGxvdD1kLGkubWFpbnBsb3RpbmZvPW0sZi5wdXNoKG4pKTooaS5tYWlucGxvdD12b2lkIDAsaS5tYWlucGxvdGluZm89dm9pZCAwLHUucHVzaChuKSl9Zm9yKGU9MDtlPGYubGVuZ3RoO2UrKyluPWZbZV0sKGk9cy5fcGxvdHNbbl0pLm1haW5wbG90aW5mby5vdmVybGF5cy5wdXNoKGkpO3ZhciBnPXUuY29uY2F0KGYpLHY9bmV3IEFycmF5KGMpO2ZvcihlPTA7ZTxjO2UrKyl7bj1nW2VdLGk9cy5fcGxvdHNbbl0sYT1pLnhheGlzLG89aS55YXhpczt2YXIgeT1bbixhLmxheWVyLG8ubGF5ZXIsYS5vdmVybGF5aW5nfHwiIixvLm92ZXJsYXlpbmd8fCIiXTtmb3Iocj0wO3I8aS5vdmVybGF5cy5sZW5ndGg7cisrKXkucHVzaChpLm92ZXJsYXlzW3JdLmlkKTt2W2VdPXl9cmV0dXJuIHZ9KHQpLGk9ZS5fY2FydGVzaWFubGF5ZXIuc2VsZWN0QWxsKCIuc3VicGxvdCIpLmRhdGEocixTdHJpbmcpO2kuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJzdWJwbG90ICIrdFswXX0pKSxpLm9yZGVyKCksaS5leGl0KCkuY2FsbChnLGUpLGkuZWFjaCgoZnVuY3Rpb24ocil7dmFyIGk9clswXSxhPWUuX3Bsb3RzW2ldO2EucGxvdGdyb3VwPW4uc2VsZWN0KHRoaXMpLG0odCxhKSxhLmRyYWdsYXllcj1oKGUuX2RyYWdnZXJzLCJnIixpKX0pKX0sci5yYW5nZVBsb3Q9ZnVuY3Rpb24odCxlLHIpe20odCxlKSxkKHQsZSxyKSxvLnN0eWxlKHQpfSxyLnRvU1ZHPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX2dsaW1hZ2VzLHI9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuc3ZnLWNvbnRhaW5lciIpO3IuZmlsdGVyKChmdW5jdGlvbih0LGUpe3JldHVybiBlPT09ci5zaXplKCktMX0pKS5zZWxlY3RBbGwoIi5nbC1jYW52YXMtY29udGV4dCwgLmdsLWNhbnZhcy1mb2N1cyIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy50b0RhdGFVUkwoImltYWdlL3BuZyIpO2UuYXBwZW5kKCJzdmc6aW1hZ2UiKS5hdHRyKHt4bWxuczpmLnN2ZywieGxpbms6aHJlZiI6dCxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIix4OjAseTowLHdpZHRoOnRoaXMuc3R5bGUud2lkdGgsaGVpZ2h0OnRoaXMuc3R5bGUuaGVpZ2h0fSl9KSl9LHIudXBkYXRlRng9dCgiLi9ncmFwaF9pbnRlcmFjdCIpLnVwZGF0ZUZ4fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NzUzLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vZ2V0X2RhdGEiOjg2NCwiLi4vcGxvdHMiOjg5MCwiLi9hdHRyaWJ1dGVzIjo4MjUsIi4vYXhpc19pZHMiOjgzMSwiLi9jb25zdGFudHMiOjgzNCwiLi9ncmFwaF9pbnRlcmFjdCI6ODM3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDIsIi4vbGF5b3V0X2RlZmF1bHRzIjo4NDMsIi4vdHJhbnNpdGlvbl9heGVzIjo4NTIsIkBwbG90bHkvZDMiOjU4fV0sODQyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsbz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxzPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuZGVzY3JpcHRpb25XaXRoRGF0ZXMsYz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuT05FREFZLHU9dCgiLi9jb25zdGFudHMiKSxmPXUuSE9VUl9QQVRURVJOLGg9dS5XRUVLREFZX1BBVFRFUk47ZS5leHBvcnRzPXt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToicGxvdCJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJ0aWNrcyJ9LGZvbnQ6bih7ZWRpdFR5cGU6InRpY2tzIn0pLHN0YW5kb2ZmOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJ0aWNrcyJ9LGVkaXRUeXBlOiJ0aWNrcyJ9LHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIi0iLCJsaW5lYXIiLCJsb2ciLCJkYXRlIiwiY2F0ZWdvcnkiLCJtdWx0aWNhdGVnb3J5Il0sZGZsdDoiLSIsZWRpdFR5cGU6ImNhbGMiLF9ub1RlbXBsYXRpbmc6ITB9LGF1dG90eXBlbnVtYmVyczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY29udmVydCB0eXBlcyIsInN0cmljdCJdLGRmbHQ6ImNvbnZlcnQgdHlwZXMiLGVkaXRUeXBlOiJjYWxjIn0sYXV0b3JhbmdlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyEwLCExLCJyZXZlcnNlZCJdLGRmbHQ6ITAsZWRpdFR5cGU6ImF4cmFuZ2UiLGltcGxpZWRFZGl0czp7InJhbmdlWzBdIjp2b2lkIDAsInJhbmdlWzFdIjp2b2lkIDB9fSxyYW5nZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm5vcm1hbCIsInRvemVybyIsIm5vbm5lZ2F0aXZlIl0sZGZsdDoibm9ybWFsIixlZGl0VHlwZToicGxvdCJ9LHJhbmdlOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImF4cmFuZ2UiLGltcGxpZWRFZGl0czp7Il5hdXRvcmFuZ2UiOiExfSxhbmltOiEwfSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToiYXhyYW5nZSIsaW1wbGllZEVkaXRzOnsiXmF1dG9yYW5nZSI6ITF9LGFuaW06ITB9XSxlZGl0VHlwZToiYXhyYW5nZSIsaW1wbGllZEVkaXRzOnthdXRvcmFuZ2U6ITF9LGFuaW06ITB9LGZpeGVkcmFuZ2U6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxzY2FsZWFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlt1LmlkUmVnZXgueC50b1N0cmluZygpLHUuaWRSZWdleC55LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJwbG90In0sc2NhbGVyYXRpbzp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6InBsb3QifSxjb25zdHJhaW46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJhbmdlIiwiZG9tYWluIl0sZWRpdFR5cGU6InBsb3QifSxjb25zdHJhaW50b3dhcmQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCIsInRvcCIsIm1pZGRsZSIsImJvdHRvbSJdLGVkaXRUeXBlOiJwbG90In0sbWF0Y2hlczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlt1LmlkUmVnZXgueC50b1N0cmluZygpLHUuaWRSZWdleC55LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJjYWxjIn0scmFuZ2VicmVha3M6cygicmFuZ2VicmVhayIse2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxib3VuZHM6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn1dLGVkaXRUeXBlOiJjYWxjIn0scGF0dGVybjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOltoLGYsIiJdLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixmcmVlTGVuZ3RoOiEwLGVkaXRUeXBlOiJjYWxjIixpdGVtczp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9fSxkdmFsdWU6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLG1pbjowLGRmbHQ6Y30sZWRpdFR5cGU6ImNhbGMifSksdGlja21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJsaW5lYXIiLCJhcnJheSJdLGVkaXRUeXBlOiJ0aWNrcyIsaW1wbGllZEVkaXRzOnt0aWNrMDp2b2lkIDAsZHRpY2s6dm9pZCAwfX0sbnRpY2tzOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InRpY2tzIn0sdGljazA6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIixpbXBsaWVkRWRpdHM6e3RpY2ttb2RlOiJsaW5lYXIifX0sZHRpY2s6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIixpbXBsaWVkRWRpdHM6e3RpY2ttb2RlOiJsaW5lYXIifX0sdGlja3ZhbHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2t0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToidGlja3MifSx0aWNrczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsib3V0c2lkZSIsImluc2lkZSIsIiJdLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2tzb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxhYmVscyIsImJvdW5kYXJpZXMiXSxkZmx0OiJsYWJlbHMiLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2tsYWJlbG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluc3RhbnQiLCJwZXJpb2QiXSxkZmx0OiJpbnN0YW50IixlZGl0VHlwZToidGlja3MifSx0aWNrbGFiZWxwb3NpdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsib3V0c2lkZSIsImluc2lkZSIsIm91dHNpZGUgdG9wIiwiaW5zaWRlIHRvcCIsIm91dHNpZGUgbGVmdCIsImluc2lkZSBsZWZ0Iiwib3V0c2lkZSByaWdodCIsImluc2lkZSByaWdodCIsIm91dHNpZGUgYm90dG9tIiwiaW5zaWRlIGJvdHRvbSJdLGRmbHQ6Im91dHNpZGUiLGVkaXRUeXBlOiJjYWxjIn0sdGlja2xhYmVsb3ZlcmZsb3c6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbG93IiwiaGlkZSBwYXN0IGRpdiIsImhpZGUgcGFzdCBkb21haW4iXSxlZGl0VHlwZToiY2FsYyJ9LG1pcnJvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMCwidGlja3MiLCExLCJhbGwiLCJhbGx0aWNrcyJdLGRmbHQ6ITEsZWRpdFR5cGU6InRpY2tzK2xheW91dHN0eWxlIn0sdGlja2xlbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjUsZWRpdFR5cGU6InRpY2tzIn0sdGlja3dpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToidGlja3MifSx0aWNrY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuZGVmYXVsdExpbmUsZWRpdFR5cGU6InRpY2tzIn0sc2hvd3RpY2tsYWJlbHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InRpY2tzIn0sYXV0b21hcmdpbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToidGlja3MifSxzaG93c3Bpa2VzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJtb2RlYmFyIn0sc3Bpa2Vjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bnVsbCxlZGl0VHlwZToibm9uZSJ9LHNwaWtldGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MyxlZGl0VHlwZToibm9uZSJ9LHNwaWtlZGFzaDpvKHt9LGEse2RmbHQ6ImRhc2giLGVkaXRUeXBlOiJub25lIn0pLHNwaWtlbW9kZTp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsidG9heGlzIiwiYWNyb3NzIiwibWFya2VyIl0sZGZsdDoidG9heGlzIixlZGl0VHlwZToibm9uZSJ9LHNwaWtlc25hcDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZGF0YSIsImN1cnNvciIsImhvdmVyZWQgZGF0YSJdLGRmbHQ6ImhvdmVyZWQgZGF0YSIsZWRpdFR5cGU6Im5vbmUifSx0aWNrZm9udDpuKHtlZGl0VHlwZToidGlja3MifSksdGlja2FuZ2xlOnt2YWxUeXBlOiJhbmdsZSIsZGZsdDoiYXV0byIsZWRpdFR5cGU6InRpY2tzIn0sdGlja3ByZWZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJ0aWNrcyJ9LHNob3d0aWNrcHJlZml4Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhbGwiLCJmaXJzdCIsImxhc3QiLCJub25lIl0sZGZsdDoiYWxsIixlZGl0VHlwZToidGlja3MifSx0aWNrc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InRpY2tzIn0sc2hvd3RpY2tzdWZmaXg6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwiLGVkaXRUeXBlOiJ0aWNrcyJ9LHNob3dleHBvbmVudDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsIiwiZmlyc3QiLCJsYXN0Iiwibm9uZSJdLGRmbHQ6ImFsbCIsZWRpdFR5cGU6InRpY2tzIn0sZXhwb25lbnRmb3JtYXQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm5vbmUiLCJlIiwiRSIsInBvd2VyIiwiU0kiLCJCIl0sZGZsdDoiQiIsZWRpdFR5cGU6InRpY2tzIn0sbWluZXhwb25lbnQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDozLG1pbjowLGVkaXRUeXBlOiJ0aWNrcyJ9LHNlcGFyYXRldGhvdXNhbmRzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpY2tmb3JtYXQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToidGlja3MiLGRlc2NyaXB0aW9uOmwoInRpY2sgbGFiZWwiKX0sdGlja2Zvcm1hdHN0b3BzOnMoInRpY2tmb3JtYXRzdG9wIix7ZW5hYmxlZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToidGlja3MifSxkdGlja3JhbmdlOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIn0se3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InRpY2tzIn1dLGVkaXRUeXBlOiJ0aWNrcyJ9LHZhbHVlOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InRpY2tzIn0sZWRpdFR5cGU6InRpY2tzIn0pLGhvdmVyZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6Im5vbmUiLGRlc2NyaXB0aW9uOmwoImhvdmVyIHRleHQiKX0sc2hvd2xpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InRpY2tzK2xheW91dHN0eWxlIn0sbGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LGxpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6InRpY2tzK2xheW91dHN0eWxlIn0sc2hvd2dyaWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJ0aWNrcyJ9LGdyaWRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5saWdodExpbmUsZWRpdFR5cGU6InRpY2tzIn0sZ3JpZHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToidGlja3MifSx6ZXJvbGluZTp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6InRpY2tzIn0semVyb2xpbmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aS5kZWZhdWx0TGluZSxlZGl0VHlwZToidGlja3MifSx6ZXJvbGluZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToidGlja3MifSxzaG93ZGl2aWRlcnM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InRpY2tzIn0sZGl2aWRlcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppLmRlZmF1bHRMaW5lLGVkaXRUeXBlOiJ0aWNrcyJ9LGRpdmlkZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6InRpY2tzIn0sYW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmcmVlIix1LmlkUmVnZXgueC50b1N0cmluZygpLHUuaWRSZWdleC55LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJwbG90In0sc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwiYm90dG9tIiwibGVmdCIsInJpZ2h0Il0sZWRpdFR5cGU6InBsb3QifSxvdmVybGF5aW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmcmVlIix1LmlkUmVnZXgueC50b1N0cmluZygpLHUuaWRSZWdleC55LnRvU3RyaW5nKCldLGVkaXRUeXBlOiJwbG90In0sbGF5ZXI6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFib3ZlIHRyYWNlcyIsImJlbG93IHRyYWNlcyJdLGRmbHQ6ImFib3ZlIHRyYWNlcyIsZWRpdFR5cGU6InBsb3QifSxkb21haW46e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToicGxvdCJ9LHt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJwbG90In1dLGRmbHQ6WzAsMV0sZWRpdFR5cGU6InBsb3QifSxwb3NpdGlvbjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxjYXRlZ29yeW9yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0cmFjZSIsImNhdGVnb3J5IGFzY2VuZGluZyIsImNhdGVnb3J5IGRlc2NlbmRpbmciLCJhcnJheSIsInRvdGFsIGFzY2VuZGluZyIsInRvdGFsIGRlc2NlbmRpbmciLCJtaW4gYXNjZW5kaW5nIiwibWluIGRlc2NlbmRpbmciLCJtYXggYXNjZW5kaW5nIiwibWF4IGRlc2NlbmRpbmciLCJzdW0gYXNjZW5kaW5nIiwic3VtIGRlc2NlbmRpbmciLCJtZWFuIGFzY2VuZGluZyIsIm1lYW4gZGVzY2VuZGluZyIsIm1lZGlhbiBhc2NlbmRpbmciLCJtZWRpYW4gZGVzY2VuZGluZyJdLGRmbHQ6InRyYWNlIixlZGl0VHlwZToiY2FsYyJ9LGNhdGVnb3J5YXJyYXk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LGVkaXRUeXBlOiJjYWxjIixfZGVwcmVjYXRlZDp7YXV0b3RpY2s6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpdGxlOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJ0aWNrcyJ9LHRpdGxlZm9udDpuKHtlZGl0VHlwZToidGlja3MifSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjYzOCwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiOjY2MCwiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vZm9udF9hdHRyaWJ1dGVzIjo4NTYsIi4vY29uc3RhbnRzIjo4MzR9XSw4NDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5pc1VuaWZpZWRIb3ZlcixvPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaG92ZXJtb2RlX2RlZmF1bHRzIikscz10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIiksbD10KCIuLi9sYXlvdXRfYXR0cmlidXRlcyIpLGM9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHU9dCgiLi90eXBlX2RlZmF1bHRzIiksZj10KCIuL2F4aXNfZGVmYXVsdHMiKSxoPXQoIi4vY29uc3RyYWludHMiKSxwPXQoIi4vcG9zaXRpb25fZGVmYXVsdHMiKSxkPXQoIi4vYXhpc19pZHMiKSxtPWQuaWQybmFtZSxnPWQubmFtZTJpZCx2PXQoIi4vY29uc3RhbnRzIikuQVhfSURfUEFUVEVSTix5PXQoIi4uLy4uL3JlZ2lzdHJ5IikseD15LnRyYWNlSXMsYj15LmdldENvbXBvbmVudE1ldGhvZDtmdW5jdGlvbiBfKHQsZSxyKXtBcnJheS5pc0FycmF5KHRbZV0pP3RbZV0ucHVzaChyKTp0W2VdPVtyXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciB5LHcsVD1lLmF1dG90eXBlbnVtYmVycyxrPXt9LEE9e30sTT17fSxTPXt9LEU9e30sTD17fSxDPXt9LFA9e30sST17fSxPPXt9O2Zvcih5PTA7eTxyLmxlbmd0aDt5Kyspe3ZhciB6PXJbeV07aWYoeCh6LCJjYXJ0ZXNpYW4iKXx8eCh6LCJnbDJkIikpe3ZhciBELFI7aWYoei54YXhpcylEPW0oei54YXhpcyksXyhrLEQseik7ZWxzZSBpZih6LnhheGVzKWZvcih3PTA7dzx6LnhheGVzLmxlbmd0aDt3KyspXyhrLG0oei54YXhlc1t3XSkseik7aWYoei55YXhpcylSPW0oei55YXhpcyksXyhrLFIseik7ZWxzZSBpZih6LnlheGVzKWZvcih3PTA7dzx6LnlheGVzLmxlbmd0aDt3KyspXyhrLG0oei55YXhlc1t3XSkseik7aWYoImZ1bm5lbCI9PT16LnR5cGU/ImgiPT09ei5vcmllbnRhdGlvbj8oRCYmKEFbRF09ITApLFImJihDW1JdPSEwKSk6UiYmKE1bUl09ITApOiJpbWFnZSI9PT16LnR5cGU/KFImJihQW1JdPSEwKSxEJiYoUFtEXT0hMCkpOihSJiYoRVtSXT0hMCxMW1JdPSEwKSx4KHosImNhcnBldCIpJiYoImNhcnBldCIhPT16LnR5cGV8fHouX2NoZWF0ZXIpfHxEJiYoU1tEXT0hMCkpLCJjYXJwZXQiPT09ei50eXBlJiZ6Ll9jaGVhdGVyJiZEJiYoQVtEXT0hMCkseCh6LCIyZE1hcCIpJiYoSVtEXT0hMCxJW1JdPSEwKSx4KHosIm9yaWVudGVkIikpT1siaCI9PT16Lm9yaWVudGF0aW9uP1I6RF09ITB9fXZhciBGPWUuX3N1YnBsb3RzLEI9Ri54YXhpcyxOPUYueWF4aXMsaj1uLnNpbXBsZU1hcChCLG0pLFU9bi5zaW1wbGVNYXAoTixtKSxWPWouY29uY2F0KFUpLEg9aS5iYWNrZ3JvdW5kO0IubGVuZ3RoJiZOLmxlbmd0aCYmKEg9bi5jb2VyY2UodCxlLGwsInBsb3RfYmdjb2xvciIpKTt2YXIgcSxHLFksVyxYLFo9aS5jb21iaW5lKEgsZS5wYXBlcl9iZ2NvbG9yKTtmdW5jdGlvbiBKKCl7dmFyIHQ9a1txXXx8W107WC5fdHJhY2VJbmRpY2VzPXQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5fZXhwYW5kZWRJbmRleH0pKSxYLl9hbm5JbmRpY2VzPVtdLFguX3NoYXBlSW5kaWNlcz1bXSxYLl9pbWdJbmRpY2VzPVtdLFguX3N1YnBsb3RzV2l0aD1bXSxYLl9jb3VudGVyQXhlcz1bXSxYLl9uYW1lPVguX2F0dHI9cSxYLl9pZD1HfWZ1bmN0aW9uIEsodCxlKXtyZXR1cm4gbi5jb2VyY2UoVyxYLGMsdCxlKX1mdW5jdGlvbiBRKHQsZSl7cmV0dXJuIG4uY29lcmNlMihXLFgsYyx0LGUpfWZ1bmN0aW9uICQodCl7cmV0dXJuIngiPT09dD9OOkJ9ZnVuY3Rpb24gdHQoZSxyKXtmb3IodmFyIG49IngiPT09ZT9qOlUsaT1bXSxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBvPW5bYV07bz09PXJ8fCh0W29dfHx7fSkub3ZlcmxheWluZ3x8aS5wdXNoKGcobykpfXJldHVybiBpfXZhciBldD17eDokKCJ4IikseTokKCJ5Iil9LHJ0PWV0LnguY29uY2F0KGV0LnkpLG50PXt9LGl0PVtdO2Z1bmN0aW9uIGF0KCl7dmFyIHQ9Vy5tYXRjaGVzO3YudGVzdCh0KSYmLTE9PT1ydC5pbmRleE9mKHQpJiYobnRbdF09Vy50eXBlLGl0PU9iamVjdC5rZXlzKG50KSl9dmFyIG90PW8odCxlKSxzdD1hKG90KTtmb3IoeT0wO3k8Vi5sZW5ndGg7eSsrKXtxPVZbeV0sRz1nKHEpLFk9cS5jaGFyQXQoMCksbi5pc1BsYWluT2JqZWN0KHRbcV0pfHwodFtxXT17fSksVz10W3FdLFg9cy5uZXdDb250YWluZXIoZSxxLFkrImF4aXMiKSxKKCk7dmFyIGx0PSJ4Ij09PVkmJiFTW3FdJiZBW3FdfHwieSI9PT1ZJiYhRVtxXSYmTVtxXSxjdD0ieSI9PT1ZJiYoIUxbcV0mJkNbcV18fFBbcV0pLHV0PXtsZXR0ZXI6WSxmb250OmUuZm9udCxvdXRlclRpY2tzOklbcV0sc2hvd0dyaWQ6IU9bcV0sZGF0YTprW3FdfHxbXSxiZ0NvbG9yOlosY2FsZW5kYXI6ZS5jYWxlbmRhcixhdXRvbWFyZ2luOiEwLHZpc2libGVEZmx0Omx0LHJldmVyc2VEZmx0OmN0LGF1dG90eXBlbnVtYmVyc0RmbHQ6VCxzcGxvbVN0YXNoOigoZS5fc3Bsb21BeGVzfHx7fSlbWV18fHt9KVtHXX07SygidWlyZXZpc2lvbiIsZS51aXJldmlzaW9uKSx1KFcsWCxLLHV0KSxmKFcsWCxLLHV0LGUpO3ZhciBmdD1zdCYmWT09PW90LmNoYXJBdCgwKSxodD1RKCJzcGlrZWNvbG9yIixzdD9YLmNvbG9yOnZvaWQgMCkscHQ9USgic3Bpa2V0aGlja25lc3MiLHN0PzEuNTp2b2lkIDApLGR0PVEoInNwaWtlZGFzaCIsc3Q/ImRvdCI6dm9pZCAwKSxtdD1RKCJzcGlrZW1vZGUiLHN0PyJhY3Jvc3MiOnZvaWQgMCksZ3Q9USgic3Bpa2VzbmFwIik7Sygic2hvd3NwaWtlcyIsISEoZnR8fGh0fHxwdHx8ZHR8fG10fHxndCkpfHwoZGVsZXRlIFguc3Bpa2Vjb2xvcixkZWxldGUgWC5zcGlrZXRoaWNrbmVzcyxkZWxldGUgWC5zcGlrZWRhc2gsZGVsZXRlIFguc3Bpa2Vtb2RlLGRlbGV0ZSBYLnNwaWtlc25hcCkscChXLFgsSyx7bGV0dGVyOlksY291bnRlckF4ZXM6ZXRbWV0sb3ZlcmxheWFibGVBeGVzOnR0KFkscSksZ3JpZDplLmdyaWR9KSxLKCJ0aXRsZS5zdGFuZG9mZiIpLGF0KCksWC5faW5wdXQ9V31mb3IoeT0wO3k8aXQubGVuZ3RoOyl7Rz1pdFt5KytdLFk9KHE9bShHKSkuY2hhckF0KDApLG4uaXNQbGFpbk9iamVjdCh0W3FdKXx8KHRbcV09e30pLFc9dFtxXSxYPXMubmV3Q29udGFpbmVyKGUscSxZKyJheGlzIiksSigpO3ZhciB2dD17bGV0dGVyOlksZm9udDplLmZvbnQsb3V0ZXJUaWNrczpJW3FdLHNob3dHcmlkOiFPW3FdLGRhdGE6W10sYmdDb2xvcjpaLGNhbGVuZGFyOmUuY2FsZW5kYXIsYXV0b21hcmdpbjohMCx2aXNpYmxlRGZsdDohMSxyZXZlcnNlRGZsdDohMSxhdXRvdHlwZW51bWJlcnNEZmx0OlQsc3Bsb21TdGFzaDooKGUuX3NwbG9tQXhlc3x8e30pW1ldfHx7fSlbR119O0soInVpcmV2aXNpb24iLGUudWlyZXZpc2lvbiksWC50eXBlPW50W0ddfHwibGluZWFyIixmKFcsWCxLLHZ0LGUpLHAoVyxYLEsse2xldHRlcjpZLGNvdW50ZXJBeGVzOmV0W1ldLG92ZXJsYXlhYmxlQXhlczp0dChZLHEpLGdyaWQ6ZS5ncmlkfSksSygiZml4ZWRyYW5nZSIpLGF0KCksWC5faW5wdXQ9V312YXIgeXQ9YigicmFuZ2VzbGlkZXIiLCJoYW5kbGVEZWZhdWx0cyIpLHh0PWIoInJhbmdlc2VsZWN0b3IiLCJoYW5kbGVEZWZhdWx0cyIpO2Zvcih5PTA7eTxqLmxlbmd0aDt5KyspcT1qW3ldLFc9dFtxXSxYPWVbcV0seXQodCxlLHEpLCJkYXRlIj09PVgudHlwZSYmeHQoVyxYLGUsVSxYLmNhbGVuZGFyKSxLKCJmaXhlZHJhbmdlIik7Zm9yKHk9MDt5PFUubGVuZ3RoO3krKyl7cT1VW3ldLFc9dFtxXSxYPWVbcV07dmFyIGJ0PWVbbShYLmFuY2hvcildO0soImZpeGVkcmFuZ2UiLGIoInJhbmdlc2xpZGVyIiwiaXNWaXNpYmxlIikoYnQpKX1oLmhhbmRsZURlZmF1bHRzKHQsZSx7YXhJZHM6cnQuY29uY2F0KGl0KS5zb3J0KGQuaWRTb3J0KSxheEhhc0ltYWdlOlB9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjY3NSwiLi4vLi4vY29tcG9uZW50cy9meC9ob3Zlcm1vZGVfZGVmYXVsdHMiOjY3OCwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg4MSwiLi9heGlzX2RlZmF1bHRzIjo4MjksIi4vYXhpc19pZHMiOjgzMSwiLi9jb25zdGFudHMiOjgzNCwiLi9jb25zdHJhaW50cyI6ODM1LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDIsIi4vcG9zaXRpb25fZGVmYXVsdHMiOjg0NSwiLi90eXBlX2RlZmF1bHRzIjo4NTN9XSw4NDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgidGlueWNvbG9yMiIpLm1peCxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLmxpZ2h0RnJhY3Rpb24sYT10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7dmFyIHM9KG89b3x8e30pLmRmbHRDb2xvcjtmdW5jdGlvbiBsKHIsbil7cmV0dXJuIGEuY29lcmNlMih0LGUsby5hdHRyaWJ1dGVzLHIsbil9dmFyIGM9bCgibGluZWNvbG9yIixzKSx1PWwoImxpbmV3aWR0aCIpO3IoInNob3dsaW5lIixvLnNob3dMaW5lfHwhIWN8fCEhdSl8fChkZWxldGUgZS5saW5lY29sb3IsZGVsZXRlIGUubGluZXdpZHRoKTt2YXIgZj1sKCJncmlkY29sb3IiLG4ocyxvLmJnQ29sb3Isby5ibGVuZHx8aSkudG9SZ2JTdHJpbmcoKSksaD1sKCJncmlkd2lkdGgiKTtpZihyKCJzaG93Z3JpZCIsby5zaG93R3JpZHx8ISFmfHwhIWgpfHwoZGVsZXRlIGUuZ3JpZGNvbG9yLGRlbGV0ZSBlLmdyaWR3aWR0aCksIW8ubm9aZXJvTGluZSl7dmFyIHA9bCgiemVyb2xpbmVjb2xvciIscyksZD1sKCJ6ZXJvbGluZXdpZHRoIik7cigiemVyb2xpbmUiLG8uc2hvd0dyaWR8fCEhcHx8ISFkKXx8KGRlbGV0ZSBlLnplcm9saW5lY29sb3IsZGVsZXRlIGUuemVyb2xpbmV3aWR0aCl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjYzOCwiLi4vLi4vbGliIjo3NzYsdGlueWNvbG9yMjo1NzJ9XSw4NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbyxzLGwsYyx1PWEuY291bnRlckF4ZXN8fFtdLGY9YS5vdmVybGF5YWJsZUF4ZXN8fFtdLGg9YS5sZXR0ZXIscD1hLmdyaWQ7cCYmKHM9cC5fZG9tYWluc1toXVtwLl9heGlzTWFwW2UuX2lkXV0sbz1wLl9hbmNob3JzW2UuX2lkXSxzJiYobD1wW2grInNpZGUiXS5zcGxpdCgiICIpWzBdLGM9cC5kb21haW5baF1bInJpZ2h0Ij09PWx8fCJ0b3AiPT09bD8xOjBdKSkscz1zfHxbMCwxXSxvPW98fChuKHQucG9zaXRpb24pPyJmcmVlIjp1WzBdfHwiZnJlZSIpLGw9bHx8KCJ4Ij09PWg/ImJvdHRvbSI6ImxlZnQiKSxjPWN8fDAsImZyZWUiPT09aS5jb2VyY2UodCxlLHthbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZyZWUiXS5jb25jYXQodSksZGZsdDpvfX0sImFuY2hvciIpJiZyKCJwb3NpdGlvbiIsYyksaS5jb2VyY2UodCxlLHtzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6IngiPT09aD9bImJvdHRvbSIsInRvcCJdOlsibGVmdCIsInJpZ2h0Il0sZGZsdDpsfX0sInNpZGUiKTt2YXIgZD0hMTtpZihmLmxlbmd0aCYmKGQ9aS5jb2VyY2UodCxlLHtvdmVybGF5aW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyExXS5jb25jYXQoZiksZGZsdDohMX19LCJvdmVybGF5aW5nIikpLCFkKXt2YXIgbT1yKCJkb21haW4iLHMpO21bMF0+bVsxXS0xLzQwOTYmJihlLmRvbWFpbj1zKSxpLm5vbmVPckFsbCh0LmRvbWFpbixlLmRvbWFpbixzKX1yZXR1cm4gcigibGF5ZXIiKSxlfX0seyIuLi8uLi9saWIiOjc3NiwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDg0NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuRlJPTV9CTDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZvaWQgMD09PXImJihyPW5bdC5jb25zdHJhaW50b3dhcmR8fCJjZW50ZXIiXSk7dmFyIGk9W3QucjJsKHQucmFuZ2VbMF0pLHQucjJsKHQucmFuZ2VbMV0pXSxhPWlbMF0rKGlbMV0taVswXSkqcjt0LnJhbmdlPXQuX2lucHV0LnJhbmdlPVt0LmwycihhKyhpWzBdLWEpKmUpLHQubDJyKGErKGlbMV0tYSkqZSldLHQuc2V0U2NhbGUoKX19LHsiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NzQ0fV0sODQ3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInBvbHlib29sanMiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKS5kYXNoU3R5bGUsbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIikscz10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksbD10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5tYWtlRXZlbnREYXRhLGM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIiksdT1jLmZyZWVNb2RlLGY9Yy5yZWN0TW9kZSxoPWMuZHJhd01vZGUscD1jLm9wZW5Nb2RlLGQ9Yy5zZWxlY3RNb2RlLG09dCgiLi4vLi4vY29tcG9uZW50cy9zaGFwZXMvZHJhd19uZXdzaGFwZS9kaXNwbGF5X291dGxpbmVzIiksZz10KCIuLi8uLi9jb21wb25lbnRzL3NoYXBlcy9kcmF3X25ld3NoYXBlL2hlbHBlcnMiKS5oYW5kbGVFbGxpcHNlLHY9dCgiLi4vLi4vY29tcG9uZW50cy9zaGFwZXMvZHJhd19uZXdzaGFwZS9uZXdzaGFwZXMiKSx5PXQoIi4uLy4uL2xpYiIpLHg9dCgiLi4vLi4vbGliL3BvbHlnb24iKSxiPXQoIi4uLy4uL2xpYi90aHJvdHRsZSIpLF89dCgiLi9heGlzX2lkcyIpLmdldEZyb21JZCx3PXQoIi4uLy4uL2xpYi9jbGVhcl9nbF9jYW52YXNlcyIpLFQ9dCgiLi4vLi4vcGxvdF9hcGkvc3Vicm91dGluZXMiKS5yZWRyYXdSZWdsVHJhY2VzLGs9dCgiLi9jb25zdGFudHMiKSxBPWsuTUlOU0VMRUNULE09eC5maWx0ZXIsUz14LnRlc3RlcixFPXQoIi4vaGFuZGxlX291dGxpbmUiKS5jbGVhclNlbGVjdCxMPXQoIi4vaGVscGVycyIpLEM9TC5wMnIsUD1MLmF4VmFsdWUsST1MLmdldFRyYW5zZm9ybTtmdW5jdGlvbiBPKHQsZSxyLG4saSxhLG8pe3ZhciBzLGwsYyx1LGYsaCxkLGcsdix5PWUuX2hvdmVyZGF0YSx4PWUuX2Z1bGxMYXlvdXQuY2xpY2ttb2RlLmluZGV4T2YoImV2ZW50Iik+LTEsYj1bXTtpZihmdW5jdGlvbih0KXtyZXR1cm4gdCYmQXJyYXkuaXNBcnJheSh0KSYmITAhPT10WzBdLmhvdmVyT25Cb3h9KHkpKXtGKHQsZSxhKTt2YXIgXz1mdW5jdGlvbih0LGUpe3ZhciByLG4saT10WzBdLGE9LTEsbz1bXTtmb3Iobj0wO248ZS5sZW5ndGg7bisrKWlmKHI9ZVtuXSxpLmZ1bGxEYXRhLl9leHBhbmRlZEluZGV4PT09ci5jZFswXS50cmFjZS5fZXhwYW5kZWRJbmRleCl7aWYoITA9PT1pLmhvdmVyT25Cb3gpYnJlYWs7dm9pZCAwIT09aS5wb2ludE51bWJlcj9hPWkucG9pbnROdW1iZXI6dm9pZCAwIT09aS5iaW5OdW1iZXImJihhPWkuYmluTnVtYmVyLG89aS5wb2ludE51bWJlcnMpO2JyZWFrfXJldHVybntwb2ludE51bWJlcjphLHBvaW50TnVtYmVyczpvLHNlYXJjaEluZm86cn19KHkscz1OKGUscixuLGkpKTtpZihfLnBvaW50TnVtYmVycy5sZW5ndGg+MD9mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhPVtdO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspKHI9dFtpXSkuY2RbMF0udHJhY2Uuc2VsZWN0ZWRwb2ludHMmJnIuY2RbMF0udHJhY2Uuc2VsZWN0ZWRwb2ludHMubGVuZ3RoPjAmJmEucHVzaChyKTtpZigxPT09YS5sZW5ndGgmJmFbMF09PT1lLnNlYXJjaEluZm8mJihuPWUuc2VhcmNoSW5mby5jZFswXS50cmFjZSkuc2VsZWN0ZWRwb2ludHMubGVuZ3RoPT09ZS5wb2ludE51bWJlcnMubGVuZ3RoKXtmb3IoaT0wO2k8ZS5wb2ludE51bWJlcnMubGVuZ3RoO2krKylpZihuLnNlbGVjdGVkcG9pbnRzLmluZGV4T2YoZS5wb2ludE51bWJlcnNbaV0pPDApcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuITF9KHMsXyk6ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9MDtmb3Iobj0wO248dC5sZW5ndGg7bisrKWlmKGU9dFtuXSwocj1lLmNkWzBdLnRyYWNlKS5zZWxlY3RlZHBvaW50cyl7aWYoci5zZWxlY3RlZHBvaW50cy5sZW5ndGg+MSlyZXR1cm4hMTtpZigoaSs9ci5zZWxlY3RlZHBvaW50cy5sZW5ndGgpPjEpcmV0dXJuITF9cmV0dXJuIDE9PT1pfShzKSYmKGg9aihfKSkpe2ZvcihvJiZvLnJlbW92ZSgpLHY9MDt2PHMubGVuZ3RoO3YrKykobD1zW3ZdKS5fbW9kdWxlLnNlbGVjdFBvaW50cyhsLCExKTtVKGUscyksQihhKSx4JiZlLmVtaXQoInBsb3RseV9kZXNlbGVjdCIsbnVsbCl9ZWxzZXtmb3IoZD10LnNoaWZ0S2V5JiYodm9pZCAwIT09aD9oOmooXykpLGM9ZnVuY3Rpb24odCxlLHIpe3JldHVybntwb2ludE51bWJlcjp0LHNlYXJjaEluZm86ZSxzdWJ0cmFjdDpyfX0oXy5wb2ludE51bWJlcixfLnNlYXJjaEluZm8sZCksdT1SKGEuc2VsZWN0aW9uRGVmcy5jb25jYXQoW2NdKSksdj0wO3Y8cy5sZW5ndGg7disrKWlmKGY9VihzW3ZdLl9tb2R1bGUuc2VsZWN0UG9pbnRzKHNbdl0sdSksc1t2XSksYi5sZW5ndGgpZm9yKHZhciB3PTA7dzxmLmxlbmd0aDt3KyspYi5wdXNoKGZbd10pO2Vsc2UgYj1mO2lmKFUoZSxzLGc9e3BvaW50czpifSksYyYmYSYmYS5zZWxlY3Rpb25EZWZzLnB1c2goYyksbyl7dmFyIFQ9YS5tZXJnZWRQb2x5Z29ucyxrPXAoYS5kcmFnbW9kZSk7bShIKFQsayksbyxhKX14JiZlLmVtaXQoInBsb3RseV9zZWxlY3RlZCIsZyl9fX1mdW5jdGlvbiB6KHQpe3JldHVybiJwb2ludE51bWJlciJpbiB0JiYic2VhcmNoSW5mbyJpbiB0fWZ1bmN0aW9uIEQodCl7cmV0dXJue3htaW46MCx4bWF4OjAseW1pbjowLHltYXg6MCxwdHM6W10sY29udGFpbnM6ZnVuY3Rpb24oZSxyLG4saSl7dmFyIGE9dC5zZWFyY2hJbmZvLmNkWzBdLnRyYWNlLl9leHBhbmRlZEluZGV4O3JldHVybiBpLmNkWzBdLnRyYWNlLl9leHBhbmRlZEluZGV4PT09YSYmbj09PXQucG9pbnROdW1iZXJ9LGlzUmVjdDohMSxkZWdlbmVyYXRlOiExLHN1YnRyYWN0OnQuc3VidHJhY3R9fWZ1bmN0aW9uIFIodCl7Zm9yKHZhciBlPVtdLHI9eih0WzBdKT8wOnRbMF1bMF1bMF0sbj1yLGk9eih0WzBdKT8wOnRbMF1bMF1bMV0sYT1pLG89MDtvPHQubGVuZ3RoO28rKylpZih6KHRbb10pKWUucHVzaChEKHRbb10pKTtlbHNle3ZhciBzPXgudGVzdGVyKHRbb10pO3Muc3VidHJhY3Q9dFtvXS5zdWJ0cmFjdCxlLnB1c2gocykscj1NYXRoLm1pbihyLHMueG1pbiksbj1NYXRoLm1heChuLHMueG1heCksaT1NYXRoLm1pbihpLHMueW1pbiksYT1NYXRoLm1heChhLHMueW1heCl9cmV0dXJue3htaW46cix4bWF4Om4seW1pbjppLHltYXg6YSxwdHM6W10sY29udGFpbnM6ZnVuY3Rpb24odCxyLG4saSl7Zm9yKHZhciBhPSExLG89MDtvPGUubGVuZ3RoO28rKyllW29dLmNvbnRhaW5zKHQscixuLGkpJiYoYT0hMT09PWVbb10uc3VidHJhY3QpO3JldHVybiBhfSxpc1JlY3Q6ITEsZGVnZW5lcmF0ZTohMX19ZnVuY3Rpb24gRih0LGUscil7ZS5fZnVsbExheW91dC5fZHJhd2luZz0hMTt2YXIgbj1lLl9mdWxsTGF5b3V0LGk9ci5wbG90aW5mbyxhPXIuZHJhZ21vZGUsbz1uLl9sYXN0U2VsZWN0ZWRTdWJwbG90JiZuLl9sYXN0U2VsZWN0ZWRTdWJwbG90PT09aS5pZCxzPSh0LnNoaWZ0S2V5fHx0LmFsdEtleSkmJiEoaChhKSYmcChhKSk7byYmcyYmaS5zZWxlY3Rpb24mJmkuc2VsZWN0aW9uLnNlbGVjdGlvbkRlZnMmJiFyLnNlbGVjdGlvbkRlZnM/KHIuc2VsZWN0aW9uRGVmcz1pLnNlbGVjdGlvbi5zZWxlY3Rpb25EZWZzLHIubWVyZ2VkUG9seWdvbnM9aS5zZWxlY3Rpb24ubWVyZ2VkUG9seWdvbnMpOnMmJmkuc2VsZWN0aW9ufHxCKHIpLG98fChFKGUpLG4uX2xhc3RTZWxlY3RlZFN1YnBsb3Q9aS5pZCl9ZnVuY3Rpb24gQih0KXt2YXIgZT10LmRyYWdtb2RlLHI9dC5wbG90aW5mbyxuPXQuZ2Q7aWYobi5fZnVsbExheW91dC5fYWN0aXZlU2hhcGVJbmRleD49MCYmbi5fZnVsbExheW91dC5fZGVhY3RpdmF0ZVNoYXBlKG4pLGgoZSkpe3ZhciBhPW4uX2Z1bGxMYXlvdXQuX3pvb21sYXllci5zZWxlY3RBbGwoIi5zZWxlY3Qtb3V0bGluZS0iK3IuaWQpO2lmKGEmJm4uX2Z1bGxMYXlvdXQuX2RyYXdpbmcpe3ZhciBvPXYoYSx0KTtvJiZpLmNhbGwoIl9ndWlSZWxheW91dCIsbix7c2hhcGVzOm99KSxuLl9mdWxsTGF5b3V0Ll9kcmF3aW5nPSExfX1yLnNlbGVjdGlvbj17fSxyLnNlbGVjdGlvbi5zZWxlY3Rpb25EZWZzPXQuc2VsZWN0aW9uRGVmcz1bXSxyLnNlbGVjdGlvbi5tZXJnZWRQb2x5Z29ucz10Lm1lcmdlZFBvbHlnb25zPVtdfWZ1bmN0aW9uIE4odCxlLHIsbil7dmFyIGksYSxvLHM9W10sbD1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuX2lkfSkpLGM9ci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Ll9pZH0pKTtmb3Iobz0wO288dC5jYWxjZGF0YS5sZW5ndGg7bysrKWlmKCEwPT09KGE9KGk9dC5jYWxjZGF0YVtvXSlbMF0udHJhY2UpLnZpc2libGUmJmEuX21vZHVsZSYmYS5fbW9kdWxlLnNlbGVjdFBvaW50cylpZighbnx8YS5zdWJwbG90IT09biYmYS5nZW8hPT1uKWlmKCJzcGxvbSI9PT1hLnR5cGUmJmEuX3hheGVzW2xbMF1dJiZhLl95YXhlc1tjWzBdXSl7dmFyIHU9aChhLl9tb2R1bGUsaSxlWzBdLHJbMF0pO3Uuc2NlbmU9dC5fZnVsbExheW91dC5fc3Bsb21TY2VuZXNbYS51aWRdLHMucHVzaCh1KX1lbHNlIGlmKCJzYW5rZXkiPT09YS50eXBlKXt2YXIgZj1oKGEuX21vZHVsZSxpLGVbMF0sclswXSk7cy5wdXNoKGYpfWVsc2V7aWYoLTE9PT1sLmluZGV4T2YoYS54YXhpcykpY29udGludWU7aWYoLTE9PT1jLmluZGV4T2YoYS55YXhpcykpY29udGludWU7cy5wdXNoKGgoYS5fbW9kdWxlLGksXyh0LGEueGF4aXMpLF8odCxhLnlheGlzKSkpfWVsc2Ugcy5wdXNoKGgoYS5fbW9kdWxlLGksZVswXSxyWzBdKSk7cmV0dXJuIHM7ZnVuY3Rpb24gaCh0LGUscixuKXtyZXR1cm57X21vZHVsZTp0LGNkOmUseGF4aXM6cix5YXhpczpufX19ZnVuY3Rpb24gaih0KXt2YXIgZT10LnNlYXJjaEluZm8uY2RbMF0udHJhY2Uscj10LnBvaW50TnVtYmVyLG49dC5wb2ludE51bWJlcnMsaT1uLmxlbmd0aD4wP25bMF06cjtyZXR1cm4hIWUuc2VsZWN0ZWRwb2ludHMmJmUuc2VsZWN0ZWRwb2ludHMuaW5kZXhPZihpKT4tMX1mdW5jdGlvbiBVKHQsZSxyKXt2YXIgbixhLG8scztmb3Iobj0wO248ZS5sZW5ndGg7bisrKXt2YXIgbD1lW25dLmNkWzBdLnRyYWNlLl9mdWxsSW5wdXQsYz10Ll9mdWxsTGF5b3V0Ll90cmFjZVByZUdVSVtsLnVpZF18fHt9O3ZvaWQgMD09PWMuc2VsZWN0ZWRwb2ludHMmJihjLnNlbGVjdGVkcG9pbnRzPWwuX2lucHV0LnNlbGVjdGVkcG9pbnRzfHxudWxsKX1pZihyKXt2YXIgdT1yLnBvaW50c3x8W107Zm9yKG49MDtuPGUubGVuZ3RoO24rKykocz1lW25dLmNkWzBdLnRyYWNlKS5faW5wdXQuc2VsZWN0ZWRwb2ludHM9cy5fZnVsbElucHV0LnNlbGVjdGVkcG9pbnRzPVtdLHMuX2Z1bGxJbnB1dCE9PXMmJihzLnNlbGVjdGVkcG9pbnRzPVtdKTtmb3Iobj0wO248dS5sZW5ndGg7bisrKXt2YXIgZj11W25dLGg9Zi5kYXRhLHA9Zi5mdWxsRGF0YTtmLnBvaW50SW5kaWNlcz8oW10ucHVzaC5hcHBseShoLnNlbGVjdGVkcG9pbnRzLGYucG9pbnRJbmRpY2VzKSxzLl9mdWxsSW5wdXQhPT1zJiZbXS5wdXNoLmFwcGx5KHAuc2VsZWN0ZWRwb2ludHMsZi5wb2ludEluZGljZXMpKTooaC5zZWxlY3RlZHBvaW50cy5wdXNoKGYucG9pbnRJbmRleCkscy5fZnVsbElucHV0IT09cyYmcC5zZWxlY3RlZHBvaW50cy5wdXNoKGYucG9pbnRJbmRleCkpfX1lbHNlIGZvcihuPTA7bjxlLmxlbmd0aDtuKyspZGVsZXRlKHM9ZVtuXS5jZFswXS50cmFjZSkuc2VsZWN0ZWRwb2ludHMsZGVsZXRlIHMuX2lucHV0LnNlbGVjdGVkcG9pbnRzLHMuX2Z1bGxJbnB1dCE9PXMmJmRlbGV0ZSBzLl9mdWxsSW5wdXQuc2VsZWN0ZWRwb2ludHM7dmFyIGQ9ITE7Zm9yKG49MDtuPGUubGVuZ3RoO24rKyl7cz0obz0oYT1lW25dKS5jZClbMF0udHJhY2UsaS50cmFjZUlzKHMsInJlZ2wiKSYmKGQ9ITApO3ZhciBtPWEuX21vZHVsZSxnPW0uc3R5bGVPblNlbGVjdHx8bS5zdHlsZTtnJiYoZyh0LG8sb1swXS5ub2RlMyksb1swXS5ub2RlUmFuZ2VQbG90MyYmZyh0LG8sb1swXS5ub2RlUmFuZ2VQbG90MykpfWQmJih3KHQpLFQodCkpfWZ1bmN0aW9uIFYodCxlKXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgcj1lLmNkLG49ZS5jZFswXS50cmFjZSxpPTA7aTx0Lmxlbmd0aDtpKyspdFtpXT1sKHRbaV0sbixyKTtyZXR1cm4gdH1mdW5jdGlvbiBIKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPHQubGVuZ3RoO24rKyl7cltuXT1bXTtmb3IodmFyIGk9MDtpPHRbbl0ubGVuZ3RoO2krKyl7cltuXVtpXT1bXSxyW25dW2ldWzBdPWk/IkwiOiJNIjtmb3IodmFyIGE9MDthPHRbbl1baV0ubGVuZ3RoO2ErKylyW25dW2ldLnB1c2godFtuXVtpXVthXSl9ZXx8cltuXS5wdXNoKFsiWiIscltuXVswXVsxXSxyW25dWzBdWzJdXSl9cmV0dXJuIHJ9ZS5leHBvcnRzPXtwcmVwU2VsZWN0OmZ1bmN0aW9uKHQsZSxyLGksbCl7dmFyIGM9dShsKSx2PWYobCkseD1wKGwpLF89aChsKSx3PWQobCksVD0iZHJhd2NpcmNsZSI9PT1sLEU9ImRyYXdsaW5lIj09PWx8fFQsTD1pLmdkLHo9TC5fZnVsbExheW91dCxEPXouX3pvb21sYXllcixqPWkuZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxxPWkucGxvdGluZm8sRz1JKHEpLFk9ZS1qLmxlZnQsVz1yLWoudG9wO3ouX2NhbGNJbnZlcnNlVHJhbnNmb3JtKEwpO3ZhciBYPXkuYXBwbHkzRFRyYW5zZm9ybSh6Ll9pbnZUcmFuc2Zvcm0pKFksVyk7WT1YWzBdLFc9WFsxXTt2YXIgWixKLEssUSwkLHR0LGV0LHJ0PXouX2ludlNjYWxlWCxudD16Ll9pbnZTY2FsZVksaXQ9WSxhdD1XLG90PSJNIitZKyIsIitXLHN0PWkueGF4ZXNbMF0uX2xlbmd0aCxsdD1pLnlheGVzWzBdLl9sZW5ndGgsY3Q9aS54YXhlcy5jb25jYXQoaS55YXhlcyksdXQ9dC5hbHRLZXkmJiEoaChsKSYmeCk7Rih0LEwsaSksYyYmKFo9TShbW1ksV11dLGsuQkVORFBYKSk7dmFyIGZ0PUQuc2VsZWN0QWxsKCJwYXRoLnNlbGVjdC1vdXRsaW5lLSIrcS5pZCkuZGF0YShfP1swXTpbMSwyXSksaHQ9ei5uZXdzaGFwZTtmdC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwoZnVuY3Rpb24odCl7cmV0dXJuInNlbGVjdC1vdXRsaW5lIHNlbGVjdC1vdXRsaW5lLSIrdCsiIHNlbGVjdC1vdXRsaW5lLSIrcS5pZH0pKS5zdHlsZShfP3tvcGFjaXR5Omh0Lm9wYWNpdHkvMixmaWxsOng/dm9pZCAwOmh0LmZpbGxjb2xvcixzdHJva2U6aHQubGluZS5jb2xvciwic3Ryb2tlLWRhc2hhcnJheSI6YShodC5saW5lLmRhc2gsaHQubGluZS53aWR0aCksInN0cm9rZS13aWR0aCI6aHQubGluZS53aWR0aCsicHgifTp7fSkuYXR0cigiZmlsbC1ydWxlIixodC5maWxscnVsZSkuY2xhc3NlZCgiY3Vyc29yLW1vdmUiLCEhXykuYXR0cigidHJhbnNmb3JtIixHKS5hdHRyKCJkIixvdCsiWiIpO3ZhciBwdCxkdD1ELmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiem9vbWJveC1jb3JuZXJzIikuc3R5bGUoe2ZpbGw6by5iYWNrZ3JvdW5kLHN0cm9rZTpvLmRlZmF1bHRMaW5lLCJzdHJva2Utd2lkdGgiOjF9KS5hdHRyKCJ0cmFuc2Zvcm0iLEcpLmF0dHIoImQiLCJNMCwwWiIpLG10PXouX3VpZCtrLlNFTEVDVElELGd0PVtdLHZ0PU4oTCxpLnhheGVzLGkueWF4ZXMsaS5zdWJwbG90KTtmdW5jdGlvbiB5dCh0LGUpe3JldHVybiB0LWV9cHQ9cS5maWxsUmFuZ2VJdGVtcz9xLmZpbGxSYW5nZUl0ZW1zOnY/ZnVuY3Rpb24odCxlKXt2YXIgcj10LnJhbmdlPXt9O2ZvcigkPTA7JDxjdC5sZW5ndGg7JCsrKXt2YXIgbj1jdFskXSxpPW4uX2lkLmNoYXJBdCgwKTtyW24uX2lkXT1bQyhuLGVbaSsibWluIl0pLEMobixlW2krIm1heCJdKV0uc29ydCh5dCl9fTpmdW5jdGlvbih0LGUscil7dmFyIG49dC5sYXNzb1BvaW50cz17fTtmb3IoJD0wOyQ8Y3QubGVuZ3RoOyQrKyl7dmFyIGk9Y3RbJF07bltpLl9pZF09ci5maWx0ZXJlZC5tYXAoUChpKSl9fSxpLm1vdmVGbj1mdW5jdGlvbih0LGUpe2l0PU1hdGgubWF4KDAsTWF0aC5taW4oc3QscnQqdCtZKSksYXQ9TWF0aC5tYXgoMCxNYXRoLm1pbihsdCxudCplK1cpKTt2YXIgcj1NYXRoLmFicyhpdC1ZKSxhPU1hdGguYWJzKGF0LVcpO2lmKHYpe3ZhciBvLHMsbDtpZih3KXt2YXIgdT16LnNlbGVjdGRpcmVjdGlvbjtzd2l0Y2gobz0iYW55Ij09PXU/YTxNYXRoLm1pbiguNipyLEEpPyJoIjpyPE1hdGgubWluKC42KmEsQSk/InYiOiJkIjp1KXtjYXNlImgiOnM9VD9sdC8yOjAsbD1sdDticmVhaztjYXNlInYiOnM9VD9zdC8yOjAsbD1zdH19aWYoXylzd2l0Y2goei5uZXdzaGFwZS5kcmF3ZGlyZWN0aW9uKXtjYXNlInZlcnRpY2FsIjpvPSJoIixzPVQ/bHQvMjowLGw9bHQ7YnJlYWs7Y2FzZSJob3Jpem9udGFsIjpvPSJ2IixzPVQ/c3QvMjowLGw9c3Q7YnJlYWs7Y2FzZSJvcnRobyI6cjxhPyhvPSJoIixzPVcsbD1hdCk6KG89InYiLHM9WSxsPWl0KTticmVhaztkZWZhdWx0Om89ImQifSJoIj09PW8/KChRPUU/ZyhULFtpdCxzXSxbaXQsbF0pOltbWSxzXSxbWSxsXSxbaXQsbF0sW2l0LHNdXSkueG1pbj1FP2l0Ok1hdGgubWluKFksaXQpLFEueG1heD1FP2l0Ok1hdGgubWF4KFksaXQpLFEueW1pbj1NYXRoLm1pbihzLGwpLFEueW1heD1NYXRoLm1heChzLGwpLGR0LmF0dHIoImQiLCJNIitRLnhtaW4rIiwiKyhXLUEpKyJoLTR2IisyKkErImg0Wk0iKyhRLnhtYXgtMSkrIiwiKyhXLUEpKyJoNHYiKzIqQSsiaC00WiIpKToidiI9PT1vPygoUT1FP2coVCxbcyxhdF0sW2wsYXRdKTpbW3MsV10sW3MsYXRdLFtsLGF0XSxbbCxXXV0pLnhtaW49TWF0aC5taW4ocyxsKSxRLnhtYXg9TWF0aC5tYXgocyxsKSxRLnltaW49RT9hdDpNYXRoLm1pbihXLGF0KSxRLnltYXg9RT9hdDpNYXRoLm1heChXLGF0KSxkdC5hdHRyKCJkIiwiTSIrKFktQSkrIiwiK1EueW1pbisidi00aCIrMipBKyJ2NFpNIisoWS1BKSsiLCIrKFEueW1heC0xKSsidjRoIisyKkErInYtNFoiKSk6ImQiPT09byYmKChRPUU/ZyhULFtZLFddLFtpdCxhdF0pOltbWSxXXSxbWSxhdF0sW2l0LGF0XSxbaXQsV11dKS54bWluPU1hdGgubWluKFksaXQpLFEueG1heD1NYXRoLm1heChZLGl0KSxRLnltaW49TWF0aC5taW4oVyxhdCksUS55bWF4PU1hdGgubWF4KFcsYXQpLGR0LmF0dHIoImQiLCJNMCwwWiIpKX1lbHNlIGMmJihaLmFkZFB0KFtpdCxhdF0pLFE9Wi5maWx0ZXJlZCk7aS5zZWxlY3Rpb25EZWZzJiZpLnNlbGVjdGlvbkRlZnMubGVuZ3RoPyhLPWZ1bmN0aW9uKHQsZSxyKXtpZihyKXJldHVybiBuLmRpZmZlcmVuY2Uoe3JlZ2lvbnM6dCxpbnZlcnRlZDohMX0se3JlZ2lvbnM6W2VdLGludmVydGVkOiExfSkucmVnaW9ucztyZXR1cm4gbi51bmlvbih7cmVnaW9uczp0LGludmVydGVkOiExfSx7cmVnaW9uczpbZV0saW52ZXJ0ZWQ6ITF9KS5yZWdpb25zfShpLm1lcmdlZFBvbHlnb25zLFEsdXQpLFEuc3VidHJhY3Q9dXQsSj1SKGkuc2VsZWN0aW9uRGVmcy5jb25jYXQoW1FdKSkpOihLPVtRXSxKPVMoUSkpLG0oSChLLHgpLGZ0LGkpLHcmJmIudGhyb3R0bGUobXQsay5TRUxFQ1RERUxBWSwoZnVuY3Rpb24oKXt2YXIgdDtndD1bXTt2YXIgZSxyPVtdO2ZvcigkPTA7JDx2dC5sZW5ndGg7JCsrKWlmKGU9KHR0PXZ0WyRdKS5fbW9kdWxlLnNlbGVjdFBvaW50cyh0dCxKKSxyLnB1c2goZSksdD1WKGUsdHQpLGd0Lmxlbmd0aClmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKylndC5wdXNoKHRbbl0pO2Vsc2UgZ3Q9dDtVKEwsdnQsZXQ9e3BvaW50czpndH0pLHB0KGV0LFEsWiksaS5nZC5lbWl0KCJwbG90bHlfc2VsZWN0aW5nIixldCl9KSl9LGkuY2xpY2tGbj1mdW5jdGlvbih0LGUpe2lmKGR0LnJlbW92ZSgpLEwuX2Z1bGxMYXlvdXQuX2FjdGl2ZVNoYXBlSW5kZXg+PTApTC5fZnVsbExheW91dC5fZGVhY3RpdmF0ZVNoYXBlKEwpO2Vsc2UgaWYoIV8pe3ZhciByPXouY2xpY2ttb2RlO2IuZG9uZShtdCkudGhlbigoZnVuY3Rpb24oKXtpZihiLmNsZWFyKG10KSwyPT09dCl7Zm9yKGZ0LnJlbW92ZSgpLCQ9MDskPHZ0Lmxlbmd0aDskKyspKHR0PXZ0WyRdKS5fbW9kdWxlLnNlbGVjdFBvaW50cyh0dCwhMSk7VShMLHZ0KSxCKGkpLEwuZW1pdCgicGxvdGx5X2Rlc2VsZWN0IixudWxsKX1lbHNlIHIuaW5kZXhPZigic2VsZWN0Iik+LTEmJk8oZSxMLGkueGF4ZXMsaS55YXhlcyxpLnN1YnBsb3QsaSxmdCksImV2ZW50Ij09PXImJkwuZW1pdCgicGxvdGx5X3NlbGVjdGVkIix2b2lkIDApO3MuY2xpY2soTCxlKX0pKS5jYXRjaCh5LmVycm9yKX19LGkuZG9uZUZuPWZ1bmN0aW9uKCl7ZHQucmVtb3ZlKCksYi5kb25lKG10KS50aGVuKChmdW5jdGlvbigpe2IuY2xlYXIobXQpLGkuZ2QuZW1pdCgicGxvdGx5X3NlbGVjdGVkIixldCksUSYmaS5zZWxlY3Rpb25EZWZzJiYoUS5zdWJ0cmFjdD11dCxpLnNlbGVjdGlvbkRlZnMucHVzaChRKSxpLm1lcmdlZFBvbHlnb25zLmxlbmd0aD0wLFtdLnB1c2guYXBwbHkoaS5tZXJnZWRQb2x5Z29ucyxLKSksaS5kb25lRm5Db21wbGV0ZWQmJmkuZG9uZUZuQ29tcGxldGVkKGd0KX0pKS5jYXRjaCh5LmVycm9yKSxfJiZCKGkpfX0sY2xlYXJTZWxlY3Q6RSxjbGVhclNlbGVjdGlvbnNDYWNoZTpCLHNlbGVjdE9uQ2xpY2s6T319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50L2hlbHBlcnMiOjY1NywiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2NvbXBvbmVudHMvZngiOjY3OSwiLi4vLi4vY29tcG9uZW50cy9meC9oZWxwZXJzIjo2NzUsIi4uLy4uL2NvbXBvbmVudHMvc2hhcGVzL2RyYXdfbmV3c2hhcGUvZGlzcGxheV9vdXRsaW5lcyI6NzI3LCIuLi8uLi9jb21wb25lbnRzL3NoYXBlcy9kcmF3X25ld3NoYXBlL2hlbHBlcnMiOjcyOCwiLi4vLi4vY29tcG9uZW50cy9zaGFwZXMvZHJhd19uZXdzaGFwZS9uZXdzaGFwZXMiOjcyOSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9jbGVhcl9nbF9jYW52YXNlcyI6NzYwLCIuLi8uLi9saWIvcG9seWdvbiI6Nzg4LCIuLi8uLi9saWIvdGhyb3R0bGUiOjgwMywiLi4vLi4vcGxvdF9hcGkvc3Vicm91dGluZXMiOjgxNywiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9heGlzX2lkcyI6ODMxLCIuL2NvbnN0YW50cyI6ODM0LCIuL2hhbmRsZV9vdXRsaW5lIjo4MzgsIi4vaGVscGVycyI6ODM5LHBvbHlib29sanM6NDgwfV0sODQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImQzLXRpbWUtZm9ybWF0IikudXRjRm9ybWF0LGE9dCgiLi4vLi4vbGliIiksbz1hLm51bWJlckZvcm1hdCxzPXQoImZhc3QtaXNudW1lcmljIiksbD1hLmNsZWFuTnVtYmVyLGM9YS5tczJEYXRlVGltZSx1PWEuZGF0ZVRpbWUybXMsZj1hLmVuc3VyZU51bWJlcixoPWEuaXNBcnJheU9yVHlwZWRBcnJheSxwPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxkPXAuRlBfU0FGRSxtPXAuQkFETlVNLGc9cC5MT0dfQ0xJUCx2PXAuT05FV0VFSyx5PXAuT05FREFZLHg9cC5PTkVIT1VSLGI9cC5PTkVNSU4sXz1wLk9ORVNFQyx3PXQoIi4vYXhpc19pZHMiKSxUPXQoIi4vY29uc3RhbnRzIiksaz1ULkhPVVJfUEFUVEVSTixBPVQuV0VFS0RBWV9QQVRURVJOO2Z1bmN0aW9uIE0odCl7cmV0dXJuIE1hdGgucG93KDEwLHQpfWZ1bmN0aW9uIFModCl7cmV0dXJuIG51bGwhPXR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZT1lfHx7fTt2YXIgcj10Ll9pZHx8IngiLHA9ci5jaGFyQXQoMCk7ZnVuY3Rpb24gRShlLHIpe2lmKGU+MClyZXR1cm4gTWF0aC5sb2coZSkvTWF0aC5MTjEwO2lmKGU8PTAmJnImJnQucmFuZ2UmJjI9PT10LnJhbmdlLmxlbmd0aCl7dmFyIG49dC5yYW5nZVswXSxpPXQucmFuZ2VbMV07cmV0dXJuLjUqKG4raS0yKmcqTWF0aC5hYnMobi1pKSl9cmV0dXJuIG19ZnVuY3Rpb24gTChlLHIsbixpKXtpZigoaXx8e30pLm1zVVRDJiZzKGUpKXJldHVybitlO3ZhciBvPXUoZSxufHx0LmNhbGVuZGFyKTtpZihvPT09bSl7aWYoIXMoZSkpcmV0dXJuIG07ZT0rZTt2YXIgbD1NYXRoLmZsb29yKDEwKmEubW9kKGUrLjA1LDEpKSxjPU1hdGgucm91bmQoZS1sLzEwKTtvPXUobmV3IERhdGUoYykpK2wvMTB9cmV0dXJuIG99ZnVuY3Rpb24gQyhlLHIsbil7cmV0dXJuIGMoZSxyLG58fHQuY2FsZW5kYXIpfWZ1bmN0aW9uIFAoZSl7cmV0dXJuIHQuX2NhdGVnb3JpZXNbTWF0aC5yb3VuZChlKV19ZnVuY3Rpb24gSShlKXtpZihTKGUpKXtpZih2b2lkIDA9PT10Ll9jYXRlZ29yaWVzTWFwJiYodC5fY2F0ZWdvcmllc01hcD17fSksdm9pZCAwIT09dC5fY2F0ZWdvcmllc01hcFtlXSlyZXR1cm4gdC5fY2F0ZWdvcmllc01hcFtlXTt0Ll9jYXRlZ29yaWVzLnB1c2goIm51bWJlciI9PXR5cGVvZiBlP1N0cmluZyhlKTplKTt2YXIgcj10Ll9jYXRlZ29yaWVzLmxlbmd0aC0xO3JldHVybiB0Ll9jYXRlZ29yaWVzTWFwW2VdPXIscn1yZXR1cm4gbX1mdW5jdGlvbiBPKGUpe2lmKHQuX2NhdGVnb3JpZXNNYXApcmV0dXJuIHQuX2NhdGVnb3JpZXNNYXBbZV19ZnVuY3Rpb24geih0KXt2YXIgZT1PKHQpO3JldHVybiB2b2lkIDAhPT1lP2U6cyh0KT8rdDp2b2lkIDB9ZnVuY3Rpb24gRCh0KXtyZXR1cm4gcyh0KT8rdDpPKHQpfWZ1bmN0aW9uIFIodCxlLHIpe3JldHVybiBuLnJvdW5kKHIrZSp0LDIpfWZ1bmN0aW9uIEYodCxlLHIpe3JldHVybih0LXIpL2V9dmFyIEI9ZnVuY3Rpb24oZSl7cmV0dXJuIHMoZSk/UihlLHQuX20sdC5fYik6bX0sTj1mdW5jdGlvbihlKXtyZXR1cm4gRihlLHQuX20sdC5fYil9O2lmKHQucmFuZ2VicmVha3Mpe3ZhciBqPSJ5Ij09PXA7Qj1mdW5jdGlvbihlKXtpZighcyhlKSlyZXR1cm4gbTt2YXIgcj10Ll9yYW5nZWJyZWFrcy5sZW5ndGg7aWYoIXIpcmV0dXJuIFIoZSx0Ll9tLHQuX2IpO3ZhciBuPWo7dC5yYW5nZVswXT50LnJhbmdlWzFdJiYobj0hbik7Zm9yKHZhciBpPW4/LTE6MSxhPWkqZSxvPTAsbD0wO2w8cjtsKyspe3ZhciBjPWkqdC5fcmFuZ2VicmVha3NbbF0ubWluLHU9aSp0Ll9yYW5nZWJyZWFrc1tsXS5tYXg7aWYoYTxjKWJyZWFrO2lmKCEoYT51KSl7bz1hPChjK3UpLzI/bDpsKzE7YnJlYWt9bz1sKzF9dmFyIGY9dC5fQltvXXx8MDtyZXR1cm4gaXNGaW5pdGUoZik/UihlLHQuX20yLGYpOjB9LE49ZnVuY3Rpb24oZSl7dmFyIHI9dC5fcmFuZ2VicmVha3MubGVuZ3RoO2lmKCFyKXJldHVybiBGKGUsdC5fbSx0Ll9iKTtmb3IodmFyIG49MCxpPTA7aTxyJiYhKGU8dC5fcmFuZ2VicmVha3NbaV0ucG1pbik7aSsrKWU+dC5fcmFuZ2VicmVha3NbaV0ucG1heCYmKG49aSsxKTtyZXR1cm4gRihlLHQuX20yLHQuX0Jbbl0pfX10LmMybD0ibG9nIj09PXQudHlwZT9FOmYsdC5sMmM9ImxvZyI9PT10LnR5cGU/TTpmLHQubDJwPUIsdC5wMmw9Tix0LmMycD0ibG9nIj09PXQudHlwZT9mdW5jdGlvbih0LGUpe3JldHVybiBCKEUodCxlKSl9OkIsdC5wMmM9ImxvZyI9PT10LnR5cGU/ZnVuY3Rpb24odCl7cmV0dXJuIE0oTih0KSl9Ok4sLTEhPT1bImxpbmVhciIsIi0iXS5pbmRleE9mKHQudHlwZSk/KHQuZDJyPXQucjJkPXQuZDJjPXQucjJjPXQuZDJsPXQucjJsPWwsdC5jMmQ9dC5jMnI9dC5sMmQ9dC5sMnI9Zix0LmQycD10LnIycD1mdW5jdGlvbihlKXtyZXR1cm4gdC5sMnAobChlKSl9LHQucDJkPXQucDJyPU4sdC5jbGVhblBvcz1mKToibG9nIj09PXQudHlwZT8odC5kMnI9dC5kMmw9ZnVuY3Rpb24odCxlKXtyZXR1cm4gRShsKHQpLGUpfSx0LnIyZD10LnIyYz1mdW5jdGlvbih0KXtyZXR1cm4gTShsKHQpKX0sdC5kMmM9dC5yMmw9bCx0LmMyZD10Lmwycj1mLHQuYzJyPUUsdC5sMmQ9TSx0LmQycD1mdW5jdGlvbihlLHIpe3JldHVybiB0LmwycCh0LmQycihlLHIpKX0sdC5wMmQ9ZnVuY3Rpb24odCl7cmV0dXJuIE0oTih0KSl9LHQucjJwPWZ1bmN0aW9uKGUpe3JldHVybiB0LmwycChsKGUpKX0sdC5wMnI9Tix0LmNsZWFuUG9zPWYpOiJkYXRlIj09PXQudHlwZT8odC5kMnI9dC5yMmQ9YS5pZGVudGl0eSx0LmQyYz10LnIyYz10LmQybD10LnIybD1MLHQuYzJkPXQuYzJyPXQubDJkPXQubDJyPUMsdC5kMnA9dC5yMnA9ZnVuY3Rpb24oZSxyLG4pe3JldHVybiB0LmwycChMKGUsMCxuKSl9LHQucDJkPXQucDJyPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gQyhOKHQpLGUscil9LHQuY2xlYW5Qb3M9ZnVuY3Rpb24oZSl7cmV0dXJuIGEuY2xlYW5EYXRlKGUsbSx0LmNhbGVuZGFyKX0pOiJjYXRlZ29yeSI9PT10LnR5cGU/KHQuZDJjPXQuZDJsPUksdC5yMmQ9dC5jMmQ9dC5sMmQ9UCx0LmQycj10LmQybF9ub2FkZD16LHQucjJjPWZ1bmN0aW9uKGUpe3ZhciByPUQoZSk7cmV0dXJuIHZvaWQgMCE9PXI/cjp0LmZyYWN0aW9uMnIoLjUpfSx0Lmwycj10LmMycj1mLHQucjJsPUQsdC5kMnA9ZnVuY3Rpb24oZSl7cmV0dXJuIHQubDJwKHQucjJjKGUpKX0sdC5wMmQ9ZnVuY3Rpb24odCl7cmV0dXJuIFAoTih0KSl9LHQucjJwPXQuZDJwLHQucDJyPU4sdC5jbGVhblBvcz1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQmJiIiIT09dD90OmYodCl9KToibXVsdGljYXRlZ29yeSI9PT10LnR5cGUmJih0LnIyZD10LmMyZD10LmwyZD1QLHQuZDJyPXQuZDJsX25vYWRkPXosdC5yMmM9ZnVuY3Rpb24oZSl7dmFyIHI9eihlKTtyZXR1cm4gdm9pZCAwIT09cj9yOnQuZnJhY3Rpb24yciguNSl9LHQucjJjX2p1c3RfaW5kaWNlcz1PLHQubDJyPXQuYzJyPWYsdC5yMmw9eix0LmQycD1mdW5jdGlvbihlKXtyZXR1cm4gdC5sMnAodC5yMmMoZSkpfSx0LnAyZD1mdW5jdGlvbih0KXtyZXR1cm4gUChOKHQpKX0sdC5yMnA9dC5kMnAsdC5wMnI9Tix0LmNsZWFuUG9zPWZ1bmN0aW9uKHQpe3JldHVybiBBcnJheS5pc0FycmF5KHQpfHwic3RyaW5nIj09dHlwZW9mIHQmJiIiIT09dD90OmYodCl9LHQuc2V0dXBNdWx0aUNhdGVnb3J5PWZ1bmN0aW9uKG4pe3ZhciBpLG8scz10Ll90cmFjZUluZGljZXMsbD10Ll9tYXRjaEdyb3VwO2lmKGwmJjA9PT10Ll9jYXRlZ29yaWVzLmxlbmd0aClmb3IodmFyIGMgaW4gbClpZihjIT09cil7dmFyIHU9ZVt3LmlkMm5hbWUoYyldO3M9cy5jb25jYXQodS5fdHJhY2VJbmRpY2VzKX12YXIgZj1bWzAse31dLFswLHt9XV0sZD1bXTtmb3IoaT0wO2k8cy5sZW5ndGg7aSsrKXt2YXIgbT1uW3NbaV1dO2lmKHAgaW4gbSl7dmFyIGc9bVtwXSx2PW0uX2xlbmd0aHx8YS5taW5Sb3dMZW5ndGgoZyk7aWYoaChnWzBdKSYmaChnWzFdKSlmb3Iobz0wO288djtvKyspe3ZhciB5PWdbMF1bb10seD1nWzFdW29dO1MoeSkmJlMoeCkmJihkLnB1c2goW3kseF0pLHkgaW4gZlswXVsxXXx8KGZbMF1bMV1beV09ZlswXVswXSsrKSx4IGluIGZbMV1bMV18fChmWzFdWzFdW3hdPWZbMV1bMF0rKykpfX19Zm9yKGQuc29ydCgoZnVuY3Rpb24odCxlKXt2YXIgcj1mWzBdWzFdLG49clt0WzBdXS1yW2VbMF1dO2lmKG4pcmV0dXJuIG47dmFyIGk9ZlsxXVsxXTtyZXR1cm4gaVt0WzFdXS1pW2VbMV1dfSkpLGk9MDtpPGQubGVuZ3RoO2krKylJKGRbaV0pfSksdC5mcmFjdGlvbjJyPWZ1bmN0aW9uKGUpe3ZhciByPXQucjJsKHQucmFuZ2VbMF0pLG49dC5yMmwodC5yYW5nZVsxXSk7cmV0dXJuIHQubDJyKHIrZSoobi1yKSl9LHQucjJmcmFjdGlvbj1mdW5jdGlvbihlKXt2YXIgcj10LnIybCh0LnJhbmdlWzBdKSxuPXQucjJsKHQucmFuZ2VbMV0pO3JldHVybih0LnIybChlKS1yKS8obi1yKX0sdC5jbGVhblJhbmdlPWZ1bmN0aW9uKGUscil7cnx8KHI9e30pLGV8fChlPSJyYW5nZSIpO3ZhciBuLGksbz1hLm5lc3RlZFByb3BlcnR5KHQsZSkuZ2V0KCk7aWYoaT0oaT0iZGF0ZSI9PT10LnR5cGU/YS5kZmx0UmFuZ2UodC5jYWxlbmRhcik6InkiPT09cD9ULkRGTFRSQU5HRVk6ci5kZmx0UmFuZ2V8fFQuREZMVFJBTkdFWCkuc2xpY2UoKSwidG96ZXJvIiE9PXQucmFuZ2Vtb2RlJiYibm9ubmVnYXRpdmUiIT09dC5yYW5nZW1vZGV8fChpWzBdPTApLG8mJjI9PT1vLmxlbmd0aClmb3IoImRhdGUiIT09dC50eXBlfHx0LmF1dG9yYW5nZXx8KG9bMF09YS5jbGVhbkRhdGUob1swXSxtLHQuY2FsZW5kYXIpLG9bMV09YS5jbGVhbkRhdGUob1sxXSxtLHQuY2FsZW5kYXIpKSxuPTA7bjwyO24rKylpZigiZGF0ZSI9PT10LnR5cGUpe2lmKCFhLmlzRGF0ZVRpbWUob1tuXSx0LmNhbGVuZGFyKSl7dFtlXT1pO2JyZWFrfWlmKHQucjJsKG9bMF0pPT09dC5yMmwob1sxXSkpe3ZhciBsPWEuY29uc3RyYWluKHQucjJsKG9bMF0pLGEuTUlOX01TKzFlMyxhLk1BWF9NUy0xZTMpO29bMF09dC5sMnIobC0xZTMpLG9bMV09dC5sMnIobCsxZTMpO2JyZWFrfX1lbHNle2lmKCFzKG9bbl0pKXtpZighcyhvWzEtbl0pKXt0W2VdPWk7YnJlYWt9b1tuXT1vWzEtbl0qKG4/MTA6LjEpfWlmKG9bbl08LWQ/b1tuXT0tZDpvW25dPmQmJihvW25dPWQpLG9bMF09PT1vWzFdKXt2YXIgYz1NYXRoLm1heCgxLE1hdGguYWJzKDFlLTYqb1swXSkpO29bMF0tPWMsb1sxXSs9Y319ZWxzZSBhLm5lc3RlZFByb3BlcnR5KHQsZSkuc2V0KGkpfSx0LnNldFNjYWxlPWZ1bmN0aW9uKHIpe3ZhciBuPWUuX3NpemU7aWYodC5vdmVybGF5aW5nKXt2YXIgaT13LmdldEZyb21JZCh7X2Z1bGxMYXlvdXQ6ZX0sdC5vdmVybGF5aW5nKTt0LmRvbWFpbj1pLmRvbWFpbn12YXIgYT1yJiZ0Ll9yPyJfciI6InJhbmdlIixvPXQuY2FsZW5kYXI7dC5jbGVhblJhbmdlKGEpO3ZhciBzLGwsYz10LnIybCh0W2FdWzBdLG8pLHU9dC5yMmwodFthXVsxXSxvKSxmPSJ5Ij09PXA7aWYoKGY/KHQuX29mZnNldD1uLnQrKDEtdC5kb21haW5bMV0pKm4uaCx0Ll9sZW5ndGg9bi5oKih0LmRvbWFpblsxXS10LmRvbWFpblswXSksdC5fbT10Ll9sZW5ndGgvKGMtdSksdC5fYj0tdC5fbSp1KToodC5fb2Zmc2V0PW4ubCt0LmRvbWFpblswXSpuLncsdC5fbGVuZ3RoPW4udyoodC5kb21haW5bMV0tdC5kb21haW5bMF0pLHQuX209dC5fbGVuZ3RoLyh1LWMpLHQuX2I9LXQuX20qYyksdC5fcmFuZ2VicmVha3M9W10sdC5fbEJyZWFrcz0wLHQuX20yPTAsdC5fQj1bXSx0LnJhbmdlYnJlYWtzKSYmKHQuX3JhbmdlYnJlYWtzPXQubG9jYXRlQnJlYWtzKE1hdGgubWluKGMsdSksTWF0aC5tYXgoYyx1KSksdC5fcmFuZ2VicmVha3MubGVuZ3RoKSl7Zm9yKHM9MDtzPHQuX3JhbmdlYnJlYWtzLmxlbmd0aDtzKyspbD10Ll9yYW5nZWJyZWFrc1tzXSx0Ll9sQnJlYWtzKz1NYXRoLmFicyhsLm1heC1sLm1pbik7dmFyIGg9ZjtjPnUmJihoPSFoKSxoJiZ0Ll9yYW5nZWJyZWFrcy5yZXZlcnNlKCk7dmFyIGQ9aD8tMToxO2Zvcih0Ll9tMj1kKnQuX2xlbmd0aC8oTWF0aC5hYnModS1jKS10Ll9sQnJlYWtzKSx0Ll9CLnB1c2goLXQuX20yKihmP3U6YykpLHM9MDtzPHQuX3JhbmdlYnJlYWtzLmxlbmd0aDtzKyspbD10Ll9yYW5nZWJyZWFrc1tzXSx0Ll9CLnB1c2godC5fQlt0Ll9CLmxlbmd0aC0xXS1kKnQuX20yKihsLm1heC1sLm1pbikpO2ZvcihzPTA7czx0Ll9yYW5nZWJyZWFrcy5sZW5ndGg7cysrKShsPXQuX3JhbmdlYnJlYWtzW3NdKS5wbWluPUIobC5taW4pLGwucG1heD1CKGwubWF4KX1pZighaXNGaW5pdGUodC5fbSl8fCFpc0Zpbml0ZSh0Ll9iKXx8dC5fbGVuZ3RoPDApdGhyb3cgZS5fcmVwbG90dGluZz0hMSxuZXcgRXJyb3IoIlNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggYXhpcyBzY2FsaW5nIil9LHQubWFza0JyZWFrcz1mdW5jdGlvbihlKXt2YXIgcixuLGksbyxzLGM9dC5yYW5nZWJyZWFrc3x8W107Yy5fY2FjaGVkUGF0dGVybnN8fChjLl9jYWNoZWRQYXR0ZXJucz1jLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZW5hYmxlZCYmZS5ib3VuZHM/YS5zaW1wbGVNYXAoZS5ib3VuZHMsZS5wYXR0ZXJuP2w6dC5kMmMpOm51bGx9KSkpLGMuX2NhY2hlZFZhbHVlc3x8KGMuX2NhY2hlZFZhbHVlcz1jLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUuZW5hYmxlZCYmZS52YWx1ZXM/YS5zaW1wbGVNYXAoZS52YWx1ZXMsdC5kMmMpLnNvcnQoYS5zb3J0ZXJBc2MpOm51bGx9KSkpO2Zvcih2YXIgdT0wO3U8Yy5sZW5ndGg7dSsrKXt2YXIgZj1jW3VdO2lmKGYuZW5hYmxlZClpZihmLmJvdW5kcyl7dmFyIGg9Zi5wYXR0ZXJuO3N3aXRjaChuPShyPWMuX2NhY2hlZFBhdHRlcm5zW3VdKVswXSxpPXJbMV0saCl7Y2FzZSBBOm89KHM9bmV3IERhdGUoZSkpLmdldFVUQ0RheSgpLG4+aSYmKGkrPTcsbzxuJiYobys9NykpO2JyZWFrO2Nhc2UgazpvPShzPW5ldyBEYXRlKGUpKS5nZXRVVENIb3VycygpKyhzLmdldFVUQ01pbnV0ZXMoKS82MCtzLmdldFVUQ1NlY29uZHMoKS8zNjAwK3MuZ2V0VVRDTWlsbGlzZWNvbmRzKCkvMzZlNSksbj5pJiYoaSs9MjQsbzxuJiYobys9MjQpKTticmVhaztjYXNlIiI6bz1lfWlmKG8+PW4mJm88aSlyZXR1cm4gbX1lbHNlIGZvcih2YXIgcD1jLl9jYWNoZWRWYWx1ZXNbdV0sZD0wO2Q8cC5sZW5ndGg7ZCsrKWlmKGk9KG49cFtkXSkrZi5kdmFsdWUsZT49biYmZTxpKXJldHVybiBtfXJldHVybiBlfSx0LmxvY2F0ZUJyZWFrcz1mdW5jdGlvbihlLHIpe3ZhciBuLGksbyxzLGM9W107aWYoIXQucmFuZ2VicmVha3MpcmV0dXJuIGM7dmFyIHU9dC5yYW5nZWJyZWFrcy5zbGljZSgpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQucGF0dGVybj09PUEmJmUucGF0dGVybj09PWs/LTE6ZS5wYXR0ZXJuPT09QSYmdC5wYXR0ZXJuPT09az8xOjB9KSksZj1mdW5jdGlvbih0LG4pe2lmKCh0PWEuY29uc3RyYWluKHQsZSxyKSkhPT0obj1hLmNvbnN0cmFpbihuLGUscikpKXtmb3IodmFyIGk9ITAsbz0wO288Yy5sZW5ndGg7bysrKXt2YXIgcz1jW29dO3Q8cy5tYXgmJm4+PXMubWluJiYodDxzLm1pbiYmKHMubWluPXQpLG4+cy5tYXgmJihzLm1heD1uKSxpPSExKX1pJiZjLnB1c2goe21pbjp0LG1heDpufSl9fTtmb3Iobj0wO248dS5sZW5ndGg7bisrKXt2YXIgaD11W25dO2lmKGguZW5hYmxlZClpZihoLmJvdW5kcyl7dmFyIHA9ZSxkPXI7aC5wYXR0ZXJuJiYocD1NYXRoLmZsb29yKHApKSxvPShpPWEuc2ltcGxlTWFwKGguYm91bmRzLGgucGF0dGVybj9sOnQucjJsKSlbMF0scz1pWzFdO3ZhciBtLGcsdz1uZXcgRGF0ZShwKTtzd2l0Y2goaC5wYXR0ZXJuKXtjYXNlIEE6Zz12LG09KHMtbysoczxvPzc6MCkpKnkscCs9byp5LSh3LmdldFVUQ0RheSgpKnkrdy5nZXRVVENIb3VycygpKngrdy5nZXRVVENNaW51dGVzKCkqYit3LmdldFVUQ1NlY29uZHMoKSpfK3cuZ2V0VVRDTWlsbGlzZWNvbmRzKCkpO2JyZWFrO2Nhc2UgazpnPXksbT0ocy1vKyhzPG8/MjQ6MCkpKngscCs9byp4LSh3LmdldFVUQ0hvdXJzKCkqeCt3LmdldFVUQ01pbnV0ZXMoKSpiK3cuZ2V0VVRDU2Vjb25kcygpKl8rdy5nZXRVVENNaWxsaXNlY29uZHMoKSk7YnJlYWs7ZGVmYXVsdDpwPU1hdGgubWluKGlbMF0saVsxXSksbT1nPShkPU1hdGgubWF4KGlbMF0saVsxXSkpLXB9Zm9yKHZhciBUPXA7VDxkO1QrPWcpZihULFQrbSl9ZWxzZSBmb3IodmFyIE09YS5zaW1wbGVNYXAoaC52YWx1ZXMsdC5kMmMpLFM9MDtTPE0ubGVuZ3RoO1MrKylmKG89TVtTXSxzPW8raC5kdmFsdWUpfXJldHVybiBjLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQubWluLWUubWlufSkpLGN9LHQubWFrZUNhbGNkYXRhPWZ1bmN0aW9uKGUscixuKXt2YXIgaSxvLHMsbCxjPXQudHlwZSx1PSJkYXRlIj09PWMmJmVbcisiY2FsZW5kYXIiXTtpZihyIGluIGUpe2lmKGk9ZVtyXSxsPWUuX2xlbmd0aHx8YS5taW5Sb3dMZW5ndGgoaSksYS5pc1R5cGVkQXJyYXkoaSkmJigibGluZWFyIj09PWN8fCJsb2ciPT09Yykpe2lmKGw9PT1pLmxlbmd0aClyZXR1cm4gaTtpZihpLnN1YmFycmF5KXJldHVybiBpLnN1YmFycmF5KDAsbCl9aWYoIm11bHRpY2F0ZWdvcnkiPT09YylyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9bmV3IEFycmF5KGUpLG49MDtuPGU7bisrKXt2YXIgaT0odFswXXx8W10pW25dLGE9KHRbMV18fFtdKVtuXTtyW25dPU8oW2ksYV0pfXJldHVybiByfShpLGwpO2ZvcihvPW5ldyBBcnJheShsKSxzPTA7czxsO3MrKylvW3NdPXQuZDJjKGlbc10sMCx1LG4pfWVsc2V7dmFyIGY9cisiMCJpbiBlP3QuZDJjKGVbcisiMCJdLDAsdSk6MCxoPWVbImQiK3JdP051bWJlcihlWyJkIityXSk6MTtmb3IoaT1lW3t4OiJ5Iix5OiJ4In1bcl1dLGw9ZS5fbGVuZ3RofHxpLmxlbmd0aCxvPW5ldyBBcnJheShsKSxzPTA7czxsO3MrKylvW3NdPWYrcypofWlmKHQucmFuZ2VicmVha3MpZm9yKHM9MDtzPGw7cysrKW9bc109dC5tYXNrQnJlYWtzKG9bc10pO3JldHVybiBvfSx0LmlzVmFsaWRSYW5nZT1mdW5jdGlvbihlKXtyZXR1cm4gQXJyYXkuaXNBcnJheShlKSYmMj09PWUubGVuZ3RoJiZzKHQucjJsKGVbMF0pKSYmcyh0LnIybChlWzFdKSl9LHQuaXNQdFdpdGhpblJhbmdlPWZ1bmN0aW9uKGUscil7dmFyIG49dC5jMmwoZVtwXSxudWxsLHIpLGk9dC5yMmwodC5yYW5nZVswXSksYT10LnIybCh0LnJhbmdlWzFdKTtyZXR1cm4gaTxhP2k8PW4mJm48PWE6YTw9biYmbjw9aX0sdC5fZW1wdHlDYXRlZ29yaWVzPWZ1bmN0aW9uKCl7dC5fY2F0ZWdvcmllcz1bXSx0Ll9jYXRlZ29yaWVzTWFwPXt9fSx0LmNsZWFyQ2FsYz1mdW5jdGlvbigpe3ZhciByPXQuX21hdGNoR3JvdXA7aWYocil7dmFyIG49bnVsbCxpPW51bGw7Zm9yKHZhciBhIGluIHIpe3ZhciBvPWVbdy5pZDJuYW1lKGEpXTtpZihvLl9jYXRlZ29yaWVzKXtuPW8uX2NhdGVnb3JpZXMsaT1vLl9jYXRlZ29yaWVzTWFwO2JyZWFrfX1uJiZpPyh0Ll9jYXRlZ29yaWVzPW4sdC5fY2F0ZWdvcmllc01hcD1pKTp0Ll9lbXB0eUNhdGVnb3JpZXMoKX1lbHNlIHQuX2VtcHR5Q2F0ZWdvcmllcygpO2lmKHQuX2luaXRpYWxDYXRlZ29yaWVzKWZvcih2YXIgcz0wO3M8dC5faW5pdGlhbENhdGVnb3JpZXMubGVuZ3RoO3MrKylJKHQuX2luaXRpYWxDYXRlZ29yaWVzW3NdKX0sdC5zb3J0QnlJbml0aWFsQ2F0ZWdvcmllcz1mdW5jdGlvbigpe3ZhciBuPVtdO2lmKHQuX2VtcHR5Q2F0ZWdvcmllcygpLHQuX2luaXRpYWxDYXRlZ29yaWVzKWZvcih2YXIgaT0wO2k8dC5faW5pdGlhbENhdGVnb3JpZXMubGVuZ3RoO2krKylJKHQuX2luaXRpYWxDYXRlZ29yaWVzW2ldKTtuPW4uY29uY2F0KHQuX3RyYWNlSW5kaWNlcyk7dmFyIGE9dC5fbWF0Y2hHcm91cDtmb3IodmFyIG8gaW4gYSlpZihyIT09byl7dmFyIHM9ZVt3LmlkMm5hbWUobyldO3MuX2NhdGVnb3JpZXM9dC5fY2F0ZWdvcmllcyxzLl9jYXRlZ29yaWVzTWFwPXQuX2NhdGVnb3JpZXNNYXAsbj1uLmNvbmNhdChzLl90cmFjZUluZGljZXMpfXJldHVybiBufTt2YXIgVT1lLl9kM2xvY2FsZTsiZGF0ZSI9PT10LnR5cGUmJih0Ll9kYXRlRm9ybWF0PVU/VS50aW1lRm9ybWF0OmksdC5fZXh0cmFGb3JtYXQ9ZS5fZXh0cmFGb3JtYXQpLHQuX3NlcGFyYXRvcnM9ZS5zZXBhcmF0b3JzLHQuX251bUZvcm1hdD1VP1UubnVtYmVyRm9ybWF0Om8sZGVsZXRlIHQuX21pbkR0aWNrLGRlbGV0ZSB0Ll9mb3JjZVRpY2swfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuL2F4aXNfaWRzIjo4MzEsIi4vY29uc3RhbnRzIjo4MzQsIkBwbG90bHkvZDMiOjU4LCJkMy10aW1lLWZvcm1hdCI6MTY4LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sODQ5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLmNvbnRyYXN0LGE9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLG89dCgiLi4vYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIik7ZnVuY3Rpb24gcyh0KXt2YXIgZT1bInNob3dleHBvbmVudCIsInNob3d0aWNrcHJlZml4Iiwic2hvd3RpY2tzdWZmaXgiXS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiB2b2lkIDAhPT10W2VdfSkpO2lmKGUuZXZlcnkoKGZ1bmN0aW9uKHIpe3JldHVybiB0W3JdPT09dFtlWzBdXX0pKXx8MT09PWUubGVuZ3RoKXJldHVybiB0W2VbMF1dfWZ1bmN0aW9uIGwodCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLnRpY2tmb3JtYXRzdG9wcyxyLGkpfXIoImVuYWJsZWQiKSYmKHIoImR0aWNrcmFuZ2UiKSxyKCJ2YWx1ZSIpKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyx1LGYpe2YmJjEhPT1mLnBhc3N8fGZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9cyh0KTtyKCJ0aWNrcHJlZml4IikmJnIoInNob3d0aWNrcHJlZml4IixhKTtyKCJ0aWNrc3VmZml4IixpLnRpY2tTdWZmaXhEZmx0KSYmcigic2hvd3RpY2tzdWZmaXgiLGEpfSh0LDAsciwwLHUpLGYmJjIhPT1mLnBhc3N8fGZ1bmN0aW9uKHQsZSxyLGMsdSl7dmFyIGY9cyh0KTtyKCJ0aWNrcHJlZml4IikmJnIoInNob3d0aWNrcHJlZml4IixmKTtyKCJ0aWNrc3VmZml4Iix1LnRpY2tTdWZmaXhEZmx0KSYmcigic2hvd3RpY2tzdWZmaXgiLGYpO2lmKHIoInNob3d0aWNrbGFiZWxzIikpe3ZhciBoPXUuZm9udHx8e30scD1lLmNvbG9yLGQ9LTEhPT0oZS50aWNrbGFiZWxwb3NpdGlvbnx8IiIpLmluZGV4T2YoImluc2lkZSIpP2kodS5iZ0NvbG9yKTpwJiZwIT09YS5jb2xvci5kZmx0P3A6aC5jb2xvcjtpZihuLmNvZXJjZUZvbnQociwidGlja2ZvbnQiLHtmYW1pbHk6aC5mYW1pbHksc2l6ZTpoLnNpemUsY29sb3I6ZH0pLHIoInRpY2thbmdsZSIpLCJjYXRlZ29yeSIhPT1jKXt2YXIgbT1yKCJ0aWNrZm9ybWF0Iik7byh0LGUse25hbWU6InRpY2tmb3JtYXRzdG9wcyIsaW5jbHVzaW9uQXR0cjoiZW5hYmxlZCIsaGFuZGxlSXRlbURlZmF1bHRzOmx9KSxlLnRpY2tmb3JtYXRzdG9wcy5sZW5ndGh8fGRlbGV0ZSBlLnRpY2tmb3JtYXRzdG9wcyxtfHwiZGF0ZSI9PT1jfHwocigic2hvd2V4cG9uZW50IixmKSxyKCJleHBvbmVudGZvcm1hdCIpLHIoIm1pbmV4cG9uZW50Iikscigic2VwYXJhdGV0aG91c2FuZHMiKSl9fX0odCxlLHIsYyx1KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9saWIiOjc3NiwiLi4vYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo4MjIsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg0Mn1dLDg1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89bi5jb2VyY2UyKHQsZSxpLCJ0aWNrbGVuIikscz1uLmNvZXJjZTIodCxlLGksInRpY2t3aWR0aCIpLGw9bi5jb2VyY2UyKHQsZSxpLCJ0aWNrY29sb3IiLGUuY29sb3IpO3IoInRpY2tzIixhLm91dGVyVGlja3N8fG98fHN8fGw/Im91dHNpZGUiOiIiKXx8KGRlbGV0ZSBlLnRpY2tsZW4sZGVsZXRlIGUudGlja3dpZHRoLGRlbGV0ZSBlLnRpY2tjb2xvcil9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDJ9XSw4NTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jbGVhbl90aWNrcyIpLGk9dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7ZnVuY3Rpb24gbyhyKXt2YXIgbj10W3JdO3JldHVybiB2b2lkIDAhPT1uP246KGUuX3RlbXBsYXRlfHx7fSlbcl19dmFyIHM9bygidGljazAiKSxsPW8oImR0aWNrIiksYz1vKCJ0aWNrdmFscyIpLHU9cigidGlja21vZGUiLGkoYyk/ImFycmF5IjpsPyJsaW5lYXIiOiJhdXRvIik7aWYoImF1dG8iPT09dSlyKCJudGlja3MiKTtlbHNlIGlmKCJsaW5lYXIiPT09dSl7dmFyIGY9ZS5kdGljaz1uLmR0aWNrKGwsYSk7ZS50aWNrMD1uLnRpY2swKHMsYSxlLmNhbGVuZGFyLGYpfWVsc2UgaWYoIm11bHRpY2F0ZWdvcnkiIT09YSl7dm9pZCAwPT09cigidGlja3ZhbHMiKT9lLnRpY2ttb2RlPSJhdXRvIjpyKCJ0aWNrdGV4dCIpfX19LHsiLi4vLi4vbGliIjo3NzYsIi4vY2xlYW5fdGlja3MiOjgzM31dLDg1MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxzPXQoIi4vYXhlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXt2YXIgYz10Ll9mdWxsTGF5b3V0O2lmKDAhPT1lLmxlbmd0aCl7dmFyIHUsZixoLHA7bCYmKHU9bCgpKTt2YXIgZD1uLmVhc2Uoci5lYXNpbmcpO3JldHVybiB0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzLnB1c2goKGZ1bmN0aW9uKCl7cmV0dXJuIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZShwKSxwPW51bGwsZnVuY3Rpb24oKXtmb3IodmFyIHI9e30sbj0wO248ZS5sZW5ndGg7bisrKXt2YXIgYT1lW25dLG89YS5wbG90aW5mby54YXhpcyxzPWEucGxvdGluZm8ueWF4aXM7YS54cjAmJihyW28uX25hbWUrIi5yYW5nZSJdPWEueHIwLnNsaWNlKCkpLGEueXIwJiYocltzLl9uYW1lKyIucmFuZ2UiXT1hLnlyMC5zbGljZSgpKX1yZXR1cm4gaS5jYWxsKCJyZWxheW91dCIsdCxyKS50aGVuKChmdW5jdGlvbigpe2Zvcih2YXIgdD0wO3Q8ZS5sZW5ndGg7dCsrKW0oZVt0XS5wbG90aW5mbyl9KSl9KCl9KSksZj1EYXRlLm5vdygpLHA9d2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoZnVuY3Rpb24gbigpe2g9RGF0ZS5ub3coKTtmb3IodmFyIGE9TWF0aC5taW4oMSwoaC1mKS9yLmR1cmF0aW9uKSxvPWQoYSkscz0wO3M8ZS5sZW5ndGg7cysrKWcoZVtzXSxvKTtoLWY+ci5kdXJhdGlvbj8oIWZ1bmN0aW9uKCl7Zm9yKHZhciByPXt9LG49MDtuPGUubGVuZ3RoO24rKyl7dmFyIGE9ZVtuXSxvPWEucGxvdGluZm8ueGF4aXMscz1hLnBsb3RpbmZvLnlheGlzO2EueHIxJiYocltvLl9uYW1lKyIucmFuZ2UiXT1hLnhyMS5zbGljZSgpKSxhLnlyMSYmKHJbcy5fbmFtZSsiLnJhbmdlIl09YS55cjEuc2xpY2UoKSl9dSYmdSgpLGkuY2FsbCgicmVsYXlvdXQiLHQscikudGhlbigoZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PGUubGVuZ3RoO3QrKyltKGVbdF0ucGxvdGluZm8pfSkpfSgpLHA9d2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKG4pKTpwPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUobil9KSksUHJvbWlzZS5yZXNvbHZlKCl9ZnVuY3Rpb24gbSh0KXt2YXIgZT10LnhheGlzLHI9dC55YXhpcztjLl9kZWZzLnNlbGVjdCgiIyIrdC5jbGlwSWQrIj4gcmVjdCIpLmNhbGwoby5zZXRUcmFuc2xhdGUsMCwwKS5jYWxsKG8uc2V0U2NhbGUsMSwxKSx0LnBsb3QuY2FsbChvLnNldFRyYW5zbGF0ZSxlLl9vZmZzZXQsci5fb2Zmc2V0KS5jYWxsKG8uc2V0U2NhbGUsMSwxKTt2YXIgbj10LnBsb3Quc2VsZWN0QWxsKCIuc2NhdHRlcmxheWVyIC50cmFjZSIpO24uc2VsZWN0QWxsKCIucG9pbnQiKS5jYWxsKG8uc2V0UG9pbnRHcm91cFNjYWxlLDEsMSksbi5zZWxlY3RBbGwoIi50ZXh0cG9pbnQiKS5jYWxsKG8uc2V0VGV4dFBvaW50c1NjYWxlLDEsMSksbi5jYWxsKG8uaGlkZU91dHNpZGVSYW5nZVBvaW50cyx0KX1mdW5jdGlvbiBnKGUscil7dmFyIG49ZS5wbG90aW5mbyxpPW4ueGF4aXMsbD1uLnlheGlzLGM9aS5fbGVuZ3RoLHU9bC5fbGVuZ3RoLGY9ISFlLnhyMSxoPSEhZS55cjEscD1bXTtpZihmKXt2YXIgZD1hLnNpbXBsZU1hcChlLnhyMCxpLnIybCksbT1hLnNpbXBsZU1hcChlLnhyMSxpLnIybCksZz1kWzFdLWRbMF0sdj1tWzFdLW1bMF07cFswXT0oZFswXSooMS1yKStyKm1bMF0tZFswXSkvKGRbMV0tZFswXSkqYyxwWzJdPWMqKDEtcityKnYvZyksaS5yYW5nZVswXT1pLmwycihkWzBdKigxLXIpK3IqbVswXSksaS5yYW5nZVsxXT1pLmwycihkWzFdKigxLXIpK3IqbVsxXSl9ZWxzZSBwWzBdPTAscFsyXT1jO2lmKGgpe3ZhciB5PWEuc2ltcGxlTWFwKGUueXIwLGwucjJsKSx4PWEuc2ltcGxlTWFwKGUueXIxLGwucjJsKSxiPXlbMV0teVswXSxfPXhbMV0teFswXTtwWzFdPSh5WzFdKigxLXIpK3IqeFsxXS15WzFdKS8oeVswXS15WzFdKSp1LHBbM109dSooMS1yK3IqXy9iKSxsLnJhbmdlWzBdPWkubDJyKHlbMF0qKDEtcikrcip4WzBdKSxsLnJhbmdlWzFdPWwubDJyKHlbMV0qKDEtcikrcip4WzFdKX1lbHNlIHBbMV09MCxwWzNdPXU7cy5kcmF3T25lKHQsaSx7c2tpcFRpdGxlOiEwfSkscy5kcmF3T25lKHQsbCx7c2tpcFRpdGxlOiEwfSkscy5yZWRyYXdDb21wb25lbnRzKHQsW2kuX2lkLGwuX2lkXSk7dmFyIHc9Zj9jL3BbMl06MSxUPWg/dS9wWzNdOjEsaz1mP3BbMF06MCxBPWg/cFsxXTowLE09Zj9wWzBdL3BbMl0qYzowLFM9aD9wWzFdL3BbM10qdTowLEU9aS5fb2Zmc2V0LU0sTD1sLl9vZmZzZXQtUztuLmNsaXBSZWN0LmNhbGwoby5zZXRUcmFuc2xhdGUsayxBKS5jYWxsKG8uc2V0U2NhbGUsMS93LDEvVCksbi5wbG90LmNhbGwoby5zZXRUcmFuc2xhdGUsRSxMKS5jYWxsKG8uc2V0U2NhbGUsdyxUKSxvLnNldFBvaW50R3JvdXBTY2FsZShuLnpvb21TY2FsZVB0cywxL3csMS9UKSxvLnNldFRleHRQb2ludHNTY2FsZShuLnpvb21TY2FsZVR4dCwxL3csMS9UKX1zLnJlZHJhd0NvbXBvbmVudHModCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9heGVzIjo4MjcsIkBwbG90bHkvZDMiOjU4fV0sODUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IikudHJhY2VJcyxpPXQoIi4vYXhpc19hdXRvdHlwZSIpO2Z1bmN0aW9uIGEodCl7cmV0dXJue3Y6IngiLGg6InkifVt0Lm9yaWVudGF0aW9ufHwidiJdfWZ1bmN0aW9uIG8odCxlKXt2YXIgcj1hKHQpLGk9bih0LCJib3gtdmlvbGluIiksbz1uKHQuX2Z1bGxJbnB1dHx8e30sImNhbmRsZXN0aWNrIik7cmV0dXJuIGkmJiFvJiZlPT09ciYmdm9pZCAwPT09dFtyXSYmdm9pZCAwPT09dFtyKyIwIl19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe3IoImF1dG90eXBlbnVtYmVycyIscy5hdXRvdHlwZW51bWJlcnNEZmx0KSwiLSI9PT1yKCJ0eXBlIiwocy5zcGxvbVN0YXNofHx7fSkudHlwZSkmJighZnVuY3Rpb24odCxlKXtpZigiLSIhPT10LnR5cGUpcmV0dXJuO3ZhciByLHM9dC5faWQsbD1zLmNoYXJBdCgwKTstMSE9PXMuaW5kZXhPZigic2NlbmUiKSYmKHM9bCk7dmFyIGM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dO2lmKCJzcGxvbSI9PT1pLnR5cGUmJmkuX2xlbmd0aD4wJiYoaVsiXyIrcisiYXhlcyJdfHx7fSlbZV0pcmV0dXJuIGk7aWYoKGlbcisiYXhpcyJdfHxyKT09PWUpe2lmKG8oaSxyKSlyZXR1cm4gaTtpZigoaVtyXXx8W10pLmxlbmd0aHx8aVtyKyIwIl0pcmV0dXJuIGl9fX0oZSxzLGwpO2lmKCFjKXJldHVybjtpZigiaGlzdG9ncmFtIj09PWMudHlwZSYmbD09PXt2OiJ5IixoOiJ4In1bYy5vcmllbnRhdGlvbnx8InYiXSlyZXR1cm4gdm9pZCh0LnR5cGU9ImxpbmVhciIpO3ZhciB1PWwrImNhbGVuZGFyIixmPWNbdV0saD17bm9NdWx0aUNhdGVnb3J5OiFuKGMsImNhcnRlc2lhbiIpfHxuKGMsIm5vTXVsdGlDYXRlZ29yeSIpfTsiYm94Ij09PWMudHlwZSYmYy5faGFzUHJlQ29tcFN0YXRzJiZsPT09e2g6IngiLHY6InkifVtjLm9yaWVudGF0aW9ufHwidiJdJiYoaC5ub011bHRpQ2F0ZWdvcnk9ITApO2lmKGguYXV0b3R5cGVudW1iZXJzPXQuYXV0b3R5cGVudW1iZXJzLG8oYyxsKSl7dmFyIHA9YShjKSxkPVtdO2ZvcihyPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBtPWVbcl07bihtLCJib3gtdmlvbGluIikmJihtW2wrImF4aXMiXXx8bCk9PT1zJiYodm9pZCAwIT09bVtwXT9kLnB1c2gobVtwXVswXSk6dm9pZCAwIT09bS5uYW1lP2QucHVzaChtLm5hbWUpOmQucHVzaCgidGV4dCIpLG1bdV0hPT1mJiYoZj12b2lkIDApKX10LnR5cGU9aShkLGYsaCl9ZWxzZSBpZigic3Bsb20iPT09Yy50eXBlKXt2YXIgZz1jLmRpbWVuc2lvbnNbYy5fYXhlc0RpbVtzXV07Zy52aXNpYmxlJiYodC50eXBlPWkoZy52YWx1ZXMsZixoKSl9ZWxzZSB0LnR5cGU9aShjW2xdfHxbY1tsKyIwIl1dLGYsaCl9KGUscy5kYXRhKSwiLSI9PT1lLnR5cGU/ZS50eXBlPSJsaW5lYXIiOnQudHlwZT1lLnR5cGUpfX0seyIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F4aXNfYXV0b3R5cGUiOjgyOH1dLDg1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpLGk9dCgiLi4vbGliIik7ZnVuY3Rpb24gYSh0LGUscil7dmFyIG4sYSxvLHM9ITE7aWYoImRhdGEiPT09ZS50eXBlKW49dC5fZnVsbERhdGFbbnVsbCE9PWUudHJhY2VzP2UudHJhY2VzWzBdOjBdO2Vsc2V7aWYoImxheW91dCIhPT1lLnR5cGUpcmV0dXJuITE7bj10Ll9mdWxsTGF5b3V0fXJldHVybiBhPWkubmVzdGVkUHJvcGVydHkobixlLnByb3ApLmdldCgpLChvPXJbZS50eXBlXT1yW2UudHlwZV18fHt9KS5oYXNPd25Qcm9wZXJ0eShlLnByb3ApJiZvW2UucHJvcF0hPT1hJiYocz0hMCksb1tlLnByb3BdPWEse2NoYW5nZWQ6cyx2YWx1ZTphfX1mdW5jdGlvbiBvKHQsZSl7dmFyIHI9W10sbj1lWzBdLGE9e307aWYoInN0cmluZyI9PXR5cGVvZiBuKWFbbl09ZVsxXTtlbHNle2lmKCFpLmlzUGxhaW5PYmplY3QobikpcmV0dXJuIHI7YT1ufXJldHVybiBsKGEsKGZ1bmN0aW9uKHQsZSxuKXtyLnB1c2goe3R5cGU6ImxheW91dCIscHJvcDp0LHZhbHVlOm59KX0pLCIiLDApLHJ9ZnVuY3Rpb24gcyh0LGUpe3ZhciByLG4sYSxvLHM9W107aWYobj1lWzBdLGE9ZVsxXSxyPWVbMl0sbz17fSwic3RyaW5nIj09dHlwZW9mIG4pb1tuXT1hO2Vsc2V7aWYoIWkuaXNQbGFpbk9iamVjdChuKSlyZXR1cm4gcztvPW4sdm9pZCAwPT09ciYmKHI9YSl9cmV0dXJuIHZvaWQgMD09PXImJihyPW51bGwpLGwobywoZnVuY3Rpb24oZSxuLGkpe3ZhciBhLG87aWYoQXJyYXkuaXNBcnJheShpKSl7bz1pLnNsaWNlKCk7dmFyIGw9TWF0aC5taW4oby5sZW5ndGgsdC5kYXRhLmxlbmd0aCk7ciYmKGw9TWF0aC5taW4obCxyLmxlbmd0aCkpLGE9W107Zm9yKHZhciBjPTA7YzxsO2MrKylhW2NdPXI/cltjXTpjfWVsc2Ugbz1pLGE9cj9yLnNsaWNlKCk6bnVsbDtpZihudWxsPT09YSlBcnJheS5pc0FycmF5KG8pJiYobz1vWzBdKTtlbHNlIGlmKEFycmF5LmlzQXJyYXkoYSkpe2lmKCFBcnJheS5pc0FycmF5KG8pKXt2YXIgdT1vO289W107Zm9yKHZhciBmPTA7ZjxhLmxlbmd0aDtmKyspb1tmXT11fW8ubGVuZ3RoPU1hdGgubWluKGEubGVuZ3RoLG8ubGVuZ3RoKX1zLnB1c2goe3R5cGU6ImRhdGEiLHByb3A6ZSx0cmFjZXM6YSx2YWx1ZTpvfSl9KSwiIiwwKSxzfWZ1bmN0aW9uIGwodCxlLHIsbil7T2JqZWN0LmtleXModCkuZm9yRWFjaCgoZnVuY3Rpb24oYSl7dmFyIG89dFthXTtpZigiXyIhPT1hWzBdKXt2YXIgcz1yKyhuPjA/Ii4iOiIiKSthO2kuaXNQbGFpbk9iamVjdChvKT9sKG8sZSxzLG4rMSk6ZShzLGEsbyl9fSkpfXIubWFuYWdlQ29tbWFuZE9ic2VydmVyPWZ1bmN0aW9uKHQsZSxuLG8pe3ZhciBzPXt9LGw9ITA7ZSYmZS5fY29tbWFuZE9ic2VydmVyJiYocz1lLl9jb21tYW5kT2JzZXJ2ZXIpLHMuY2FjaGV8fChzLmNhY2hlPXt9KSxzLmxvb2t1cFRhYmxlPXt9O3ZhciBjPXIuaGFzU2ltcGxlQVBJQ29tbWFuZEJpbmRpbmdzKHQsbixzLmxvb2t1cFRhYmxlKTtpZihlJiZlLl9jb21tYW5kT2JzZXJ2ZXIpe2lmKGMpcmV0dXJuIHM7aWYoZS5fY29tbWFuZE9ic2VydmVyLnJlbW92ZSlyZXR1cm4gZS5fY29tbWFuZE9ic2VydmVyLnJlbW92ZSgpLGUuX2NvbW1hbmRPYnNlcnZlcj1udWxsLHN9aWYoYyl7YSh0LGMscy5jYWNoZSkscy5jaGVjaz1mdW5jdGlvbigpe2lmKGwpe3ZhciBlPWEodCxjLHMuY2FjaGUpO3JldHVybiBlLmNoYW5nZWQmJm8mJnZvaWQgMCE9PXMubG9va3VwVGFibGVbZS52YWx1ZV0mJihzLmRpc2FibGUoKSxQcm9taXNlLnJlc29sdmUobyh7dmFsdWU6ZS52YWx1ZSx0eXBlOmMudHlwZSxwcm9wOmMucHJvcCx0cmFjZXM6Yy50cmFjZXMsaW5kZXg6cy5sb29rdXBUYWJsZVtlLnZhbHVlXX0pKS50aGVuKHMuZW5hYmxlLHMuZW5hYmxlKSksZS5jaGFuZ2VkfX07Zm9yKHZhciB1PVsicGxvdGx5X3JlbGF5b3V0IiwicGxvdGx5X3JlZHJhdyIsInBsb3RseV9yZXN0eWxlIiwicGxvdGx5X3VwZGF0ZSIsInBsb3RseV9hbmltYXRpbmdmcmFtZSIsInBsb3RseV9hZnRlcnBsb3QiXSxmPTA7Zjx1Lmxlbmd0aDtmKyspdC5faW50ZXJuYWxPbih1W2ZdLHMuY2hlY2spO3MucmVtb3ZlPWZ1bmN0aW9uKCl7Zm9yKHZhciBlPTA7ZTx1Lmxlbmd0aDtlKyspdC5fcmVtb3ZlSW50ZXJuYWxMaXN0ZW5lcih1W2VdLHMuY2hlY2spfX1lbHNlIGkubG9nKCJVbmFibGUgdG8gYXV0b21hdGljYWxseSBiaW5kIHBsb3QgdXBkYXRlcyB0byBBUEkgY29tbWFuZCIpLHMubG9va3VwVGFibGU9e30scy5yZW1vdmU9ZnVuY3Rpb24oKXt9O3JldHVybiBzLmRpc2FibGU9ZnVuY3Rpb24oKXtsPSExfSxzLmVuYWJsZT1mdW5jdGlvbigpe2w9ITB9LGUmJihlLl9jb21tYW5kT2JzZXJ2ZXI9cyksc30sci5oYXNTaW1wbGVBUElDb21tYW5kQmluZGluZ3M9ZnVuY3Rpb24odCxlLG4pe3ZhciBpLGEsbz1lLmxlbmd0aDtmb3IoaT0wO2k8bztpKyspe3ZhciBzLGw9ZVtpXSxjPWwubWV0aG9kLHU9bC5hcmdzO2lmKEFycmF5LmlzQXJyYXkodSl8fCh1PVtdKSwhYylyZXR1cm4hMTt2YXIgZj1yLmNvbXB1dGVBUElDb21tYW5kQmluZGluZ3ModCxjLHUpO2lmKDEhPT1mLmxlbmd0aClyZXR1cm4hMTtpZihhKXtpZigocz1mWzBdKS50eXBlIT09YS50eXBlKXJldHVybiExO2lmKHMucHJvcCE9PWEucHJvcClyZXR1cm4hMTtpZihBcnJheS5pc0FycmF5KGEudHJhY2VzKSl7aWYoIUFycmF5LmlzQXJyYXkocy50cmFjZXMpKXJldHVybiExO3MudHJhY2VzLnNvcnQoKTtmb3IodmFyIGg9MDtoPGEudHJhY2VzLmxlbmd0aDtoKyspaWYoYS50cmFjZXNbaF0hPT1zLnRyYWNlc1toXSlyZXR1cm4hMX1lbHNlIGlmKHMucHJvcCE9PWEucHJvcClyZXR1cm4hMX1lbHNlIGE9ZlswXSxBcnJheS5pc0FycmF5KGEudHJhY2VzKSYmYS50cmFjZXMuc29ydCgpO3ZhciBwPShzPWZbMF0pLnZhbHVlO2lmKEFycmF5LmlzQXJyYXkocCkpe2lmKDEhPT1wLmxlbmd0aClyZXR1cm4hMTtwPXBbMF19biYmKG5bcF09aSl9cmV0dXJuIGF9LHIuZXhlY3V0ZUFQSUNvbW1hbmQ9ZnVuY3Rpb24odCxlLHIpe2lmKCJza2lwIj09PWUpcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO3ZhciBhPW4uYXBpTWV0aG9kUmVnaXN0cnlbZV0sbz1bdF07QXJyYXkuaXNBcnJheShyKXx8KHI9W10pO2Zvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKW8ucHVzaChyW3NdKTtyZXR1cm4gYS5hcHBseShudWxsLG8pLmNhdGNoKChmdW5jdGlvbih0KXtyZXR1cm4gaS53YXJuKCJBUEkgY2FsbCB0byBQbG90bHkuIitlKyIgcmVqZWN0ZWQuIix0KSxQcm9taXNlLnJlamVjdCh0KX0pKX0sci5jb21wdXRlQVBJQ29tbWFuZEJpbmRpbmdzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbjtzd2l0Y2goQXJyYXkuaXNBcnJheShyKXx8KHI9W10pLGUpe2Nhc2UicmVzdHlsZSI6bj1zKHQscik7YnJlYWs7Y2FzZSJyZWxheW91dCI6bj1vKHQscik7YnJlYWs7Y2FzZSJ1cGRhdGUiOm49cyh0LFtyWzBdLHJbMl1dKS5jb25jYXQobyh0LFtyWzFdXSkpO2JyZWFrO2Nhc2UiYW5pbWF0ZSI6bj1mdW5jdGlvbih0LGUpe3JldHVybiBBcnJheS5pc0FycmF5KGVbMF0pJiYxPT09ZVswXS5sZW5ndGgmJi0xIT09WyJzdHJpbmciLCJudW1iZXIiXS5pbmRleE9mKHR5cGVvZiBlWzBdWzBdKT9be3R5cGU6ImxheW91dCIscHJvcDoiX2N1cnJlbnRGcmFtZSIsdmFsdWU6ZVswXVswXS50b1N0cmluZygpfV06W119KDAscik7YnJlYWs7ZGVmYXVsdDpuPVtdfXJldHVybiBufX0seyIuLi9saWIiOjc3NiwiLi4vcmVnaXN0cnkiOjkwNH1dLDg1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtyLmF0dHJpYnV0ZXM9ZnVuY3Rpb24odCxlKXtlPWV8fHt9O3ZhciByPXt2YWxUeXBlOiJpbmZvX2FycmF5IixlZGl0VHlwZToodD10fHx7fSkuZWRpdFR5cGUsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOnQuZWRpdFR5cGV9LHt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOnQuZWRpdFR5cGV9XSxkZmx0OlswLDFdfSxpPSh0Lm5hbWUmJnQubmFtZSx0LnRyYWNlLGUuZGVzY3JpcHRpb24mJmUuZGVzY3JpcHRpb24se3g6bih7fSxyLHt9KSx5Om4oe30scix7fSksZWRpdFR5cGU6dC5lZGl0VHlwZX0pO3JldHVybiB0Lm5vR3JpZENlbGx8fChpLnJvdz17dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOnQuZWRpdFR5cGV9LGkuY29sdW1uPXt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6dC5lZGl0VHlwZX0pLGl9LHIuZGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9biYmbi54fHxbMCwxXSxhPW4mJm4ueXx8WzAsMV0sbz1lLmdyaWQ7aWYobyl7dmFyIHM9cigiZG9tYWluLmNvbHVtbiIpO3ZvaWQgMCE9PXMmJihzPG8uY29sdW1ucz9pPW8uX2RvbWFpbnMueFtzXTpkZWxldGUgdC5kb21haW4uY29sdW1uKTt2YXIgbD1yKCJkb21haW4ucm93Iik7dm9pZCAwIT09bCYmKGw8by5yb3dzP2E9by5fZG9tYWlucy55W2xdOmRlbGV0ZSB0LmRvbWFpbi5yb3cpfXZhciBjPXIoImRvbWFpbi54IixpKSx1PXIoImRvbWFpbi55IixhKTtjWzBdPGNbMV18fCh0LmRvbWFpbi54PWkuc2xpY2UoKSksdVswXTx1WzFdfHwodC5kb21haW4ueT1hLnNsaWNlKCkpfX0seyIuLi9saWIvZXh0ZW5kIjo3NjZ9XSw4NTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuZWRpdFR5cGUscj10LmNvbG9yRWRpdFR5cGU7dm9pZCAwPT09ciYmKHI9ZSk7dmFyIG49e2ZhbWlseTp7dmFsVHlwZToic3RyaW5nIixub0JsYW5rOiEwLHN0cmljdDohMCxlZGl0VHlwZTplfSxzaXplOnt2YWxUeXBlOiJudW1iZXIiLG1pbjoxLGVkaXRUeXBlOmV9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6cn0sZWRpdFR5cGU6ZX07cmV0dXJuIHQuYXJyYXlPayYmKG4uZmFtaWx5LmFycmF5T2s9ITAsbi5zaXplLmFycmF5T2s9ITAsbi5jb2xvci5hcnJheU9rPSEwKSxufX0se31dLDg1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e19pc0xpbmtlZFRvQXJyYXk6ImZyYW1lc19lbnRyeSIsZ3JvdXA6e3ZhbFR5cGU6InN0cmluZyJ9LG5hbWU6e3ZhbFR5cGU6InN0cmluZyJ9LHRyYWNlczp7dmFsVHlwZToiYW55In0sYmFzZWZyYW1lOnt2YWxUeXBlOiJzdHJpbmcifSxkYXRhOnt2YWxUeXBlOiJhbnkifSxsYXlvdXQ6e3ZhbFR5cGU6ImFueSJ9fX0se31dLDg1ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLnByb2pOYW1lcz17YWlyeToiYWlyeSIsYWl0b2ZmOiJhaXRvZmYiLCJhbGJlcnMgdXNhIjoiYWxiZXJzVXNhIixhbGJlcnM6ImFsYmVycyIsYXVndXN0OiJhdWd1c3QiLCJhemltdXRoYWwgZXF1YWwgYXJlYSI6ImF6aW11dGhhbEVxdWFsQXJlYSIsImF6aW11dGhhbCBlcXVpZGlzdGFudCI6ImF6aW11dGhhbEVxdWlkaXN0YW50IixiYWtlcjoiYmFrZXIiLGJlcnRpbjE5NTM6ImJlcnRpbjE5NTMiLGJvZ2dzOiJib2dncyIsYm9ubmU6ImJvbm5lIixib3R0b21sZXk6ImJvdHRvbWxleSIsYnJvbWxleToiYnJvbWxleSIsY29sbGlnbm9uOiJjb2xsaWdub24iLCJjb25pYyBjb25mb3JtYWwiOiJjb25pY0NvbmZvcm1hbCIsImNvbmljIGVxdWFsIGFyZWEiOiJjb25pY0VxdWFsQXJlYSIsImNvbmljIGVxdWlkaXN0YW50IjoiY29uaWNFcXVpZGlzdGFudCIsY3JhaWc6ImNyYWlnIixjcmFzdGVyOiJjcmFzdGVyIiwiY3lsaW5kcmljYWwgZXF1YWwgYXJlYSI6ImN5bGluZHJpY2FsRXF1YWxBcmVhIiwiY3lsaW5kcmljYWwgc3RlcmVvZ3JhcGhpYyI6ImN5bGluZHJpY2FsU3RlcmVvZ3JhcGhpYyIsZWNrZXJ0MToiZWNrZXJ0MSIsZWNrZXJ0MjoiZWNrZXJ0MiIsZWNrZXJ0MzoiZWNrZXJ0MyIsZWNrZXJ0NDoiZWNrZXJ0NCIsZWNrZXJ0NToiZWNrZXJ0NSIsZWNrZXJ0NjoiZWNrZXJ0NiIsZWlzZW5sb2hyOiJlaXNlbmxvaHIiLGVxdWlyZWN0YW5ndWxhcjoiZXF1aXJlY3Rhbmd1bGFyIixmYWhleToiZmFoZXkiLCJmb3VjYXV0IHNpbnVzb2lkYWwiOiJmb3VjYXV0U2ludXNvaWRhbCIsZm91Y2F1dDoiZm91Y2F1dCIsZ2luemJ1cmc0OiJnaW56YnVyZzQiLGdpbnpidXJnNToiZ2luemJ1cmc1IixnaW56YnVyZzY6ImdpbnpidXJnNiIsZ2luemJ1cmc4OiJnaW56YnVyZzgiLGdpbnpidXJnOToiZ2luemJ1cmc5Iixnbm9tb25pYzoiZ25vbW9uaWMiLCJncmluZ29ydGVuIHF1aW5jdW5jaWFsIjoiZ3JpbmdvcnRlblF1aW5jdW5jaWFsIixncmluZ29ydGVuOiJncmluZ29ydGVuIixndXlvdToiZ3V5b3UiLGhhbW1lcjoiaGFtbWVyIixoaWxsOiJoaWxsIixob21vbG9zaW5lOiJob21vbG9zaW5lIixodWZuYWdlbDoiaHVmbmFnZWwiLGh5cGVyZWxsaXB0aWNhbDoiaHlwZXJlbGxpcHRpY2FsIixrYXZyYXlza2l5Nzoia2F2cmF5c2tpeTciLGxhZ3JhbmdlOiJsYWdyYW5nZSIsbGFycml2ZWU6ImxhcnJpdmVlIixsYXNrb3dza2k6Imxhc2tvd3NraSIsbG94aW11dGhhbDoibG94aW11dGhhbCIsbWVyY2F0b3I6Im1lcmNhdG9yIixtaWxsZXI6Im1pbGxlciIsbW9sbHdlaWRlOiJtb2xsd2VpZGUiLCJtdCBmbGF0IHBvbGFyIHBhcmFib2xpYyI6Im10RmxhdFBvbGFyUGFyYWJvbGljIiwibXQgZmxhdCBwb2xhciBxdWFydGljIjoibXRGbGF0UG9sYXJRdWFydGljIiwibXQgZmxhdCBwb2xhciBzaW51c29pZGFsIjoibXRGbGF0UG9sYXJTaW51c29pZGFsIiwibmF0dXJhbCBlYXJ0aCI6Im5hdHVyYWxFYXJ0aCIsIm5hdHVyYWwgZWFydGgxIjoibmF0dXJhbEVhcnRoMSIsIm5hdHVyYWwgZWFydGgyIjoibmF0dXJhbEVhcnRoMiIsIm5lbGwgaGFtbWVyIjoibmVsbEhhbW1lciIsbmljb2xvc2k6Im5pY29sb3NpIixvcnRob2dyYXBoaWM6Im9ydGhvZ3JhcGhpYyIscGF0dGVyc29uOiJwYXR0ZXJzb24iLCJwZWlyY2UgcXVpbmN1bmNpYWwiOiJwZWlyY2VRdWluY3VuY2lhbCIscG9seWNvbmljOiJwb2x5Y29uaWMiLCJyZWN0YW5ndWxhciBwb2x5Y29uaWMiOiJyZWN0YW5ndWxhclBvbHljb25pYyIscm9iaW5zb246InJvYmluc29uIixzYXRlbGxpdGU6InNhdGVsbGl0ZSIsInNpbnUgbW9sbHdlaWRlIjoic2ludU1vbGx3ZWlkZSIsc2ludXNvaWRhbDoic2ludXNvaWRhbCIsc3RlcmVvZ3JhcGhpYzoic3RlcmVvZ3JhcGhpYyIsdGltZXM6InRpbWVzIiwidHJhbnN2ZXJzZSBtZXJjYXRvciI6InRyYW5zdmVyc2VNZXJjYXRvciIsInZhbiBkZXIgZ3JpbnRlbiI6InZhbkRlckdyaW50ZW4iLCJ2YW4gZGVyIGdyaW50ZW4yIjoidmFuRGVyR3JpbnRlbjIiLCJ2YW4gZGVyIGdyaW50ZW4zIjoidmFuRGVyR3JpbnRlbjMiLCJ2YW4gZGVyIGdyaW50ZW40IjoidmFuRGVyR3JpbnRlbjQiLHdhZ25lcjQ6IndhZ25lcjQiLHdhZ25lcjY6IndhZ25lcjYiLHdpZWNoZWw6IndpZWNoZWwiLCJ3aW5rZWwgdHJpcGVsIjoid2lua2VsMyIsd2lua2VsMzoid2lua2VsMyJ9LHIuYXhlc05hbWVzPVsibG9uYXhpcyIsImxhdGF4aXMiXSxyLmxvbmF4aXNTcGFuPXtvcnRob2dyYXBoaWM6MTgwLCJhemltdXRoYWwgZXF1YWwgYXJlYSI6MzYwLCJhemltdXRoYWwgZXF1aWRpc3RhbnQiOjM2MCwiY29uaWMgY29uZm9ybWFsIjoxODAsZ25vbW9uaWM6MTYwLHN0ZXJlb2dyYXBoaWM6MTgwLCJ0cmFuc3ZlcnNlIG1lcmNhdG9yIjoxODAsIioiOjM2MH0sci5sYXRheGlzU3Bhbj17ImNvbmljIGNvbmZvcm1hbCI6MTUwLHN0ZXJlb2dyYXBoaWM6MTc5LjUsIioiOjE4MH0sci5zY29wZURlZmF1bHRzPXt3b3JsZDp7bG9uYXhpc1JhbmdlOlstMTgwLDE4MF0sbGF0YXhpc1JhbmdlOlstOTAsOTBdLHByb2pUeXBlOiJlcXVpcmVjdGFuZ3VsYXIiLHByb2pSb3RhdGU6WzAsMCwwXX0sdXNhOntsb25heGlzUmFuZ2U6Wy0xODAsLTUwXSxsYXRheGlzUmFuZ2U6WzE1LDgwXSxwcm9qVHlwZToiYWxiZXJzIHVzYSJ9LGV1cm9wZTp7bG9uYXhpc1JhbmdlOlstMzAsNjBdLGxhdGF4aXNSYW5nZTpbMzAsODVdLHByb2pUeXBlOiJjb25pYyBjb25mb3JtYWwiLHByb2pSb3RhdGU6WzE1LDAsMF0scHJvalBhcmFsbGVsczpbMCw2MF19LGFzaWE6e2xvbmF4aXNSYW5nZTpbMjIsMTYwXSxsYXRheGlzUmFuZ2U6Wy0xNSw1NV0scHJvalR5cGU6Im1lcmNhdG9yIixwcm9qUm90YXRlOlswLDAsMF19LGFmcmljYTp7bG9uYXhpc1JhbmdlOlstMzAsNjBdLGxhdGF4aXNSYW5nZTpbLTQwLDQwXSxwcm9qVHlwZToibWVyY2F0b3IiLHByb2pSb3RhdGU6WzAsMCwwXX0sIm5vcnRoIGFtZXJpY2EiOntsb25heGlzUmFuZ2U6Wy0xODAsLTQ1XSxsYXRheGlzUmFuZ2U6WzUsODVdLHByb2pUeXBlOiJjb25pYyBjb25mb3JtYWwiLHByb2pSb3RhdGU6Wy0xMDAsMCwwXSxwcm9qUGFyYWxsZWxzOlsyOS41LDQ1LjVdfSwic291dGggYW1lcmljYSI6e2xvbmF4aXNSYW5nZTpbLTEwMCwtMzBdLGxhdGF4aXNSYW5nZTpbLTYwLDE1XSxwcm9qVHlwZToibWVyY2F0b3IiLHByb2pSb3RhdGU6WzAsMCwwXX19LHIuY2xpcFBhZD0uMDAxLHIucHJlY2lzaW9uPS4xLHIubGFuZENvbG9yPSIjRjBEQzgyIixyLndhdGVyQ29sb3I9IiMzMzk5RkYiLHIubG9jYXRpb25tb2RlVG9MYXllcj17IklTTy0zIjoiY291bnRyaWVzIiwiVVNBLXN0YXRlcyI6InN1YnVuaXRzIiwiY291bnRyeSBuYW1lcyI6ImNvdW50cmllcyJ9LHIuc3BoZXJlU1ZHPXt0eXBlOiJTcGhlcmUifSxyLmZpbGxMYXllcnM9e29jZWFuOjEsbGFuZDoxLGxha2VzOjF9LHIubGluZUxheWVycz17c3VidW5pdHM6MSxjb3VudHJpZXM6MSxjb2FzdGxpbmVzOjEscml2ZXJzOjEsZnJhbWU6MX0sci5sYXllcnM9WyJiZyIsIm9jZWFuIiwibGFuZCIsImxha2VzIiwic3VidW5pdHMiLCJjb3VudHJpZXMiLCJjb2FzdGxpbmVzIiwicml2ZXJzIiwibGF0YXhpcyIsImxvbmF4aXMiLCJmcmFtZSIsImJhY2twbG90IiwiZnJvbnRwbG90Il0sci5sYXllcnNGb3JDaG9yb3BsZXRoPVsiYmciLCJvY2VhbiIsImxhbmQiLCJzdWJ1bml0cyIsImNvdW50cmllcyIsImNvYXN0bGluZXMiLCJsYXRheGlzIiwibG9uYXhpcyIsImZyYW1lIiwiYmFja3Bsb3QiLCJyaXZlcnMiLCJsYWtlcyIsImZyb250cGxvdCJdLHIubGF5ZXJOYW1lVG9BZGplY3RpdmU9e29jZWFuOiJvY2VhbiIsbGFuZDoibGFuZCIsbGFrZXM6Imxha2UiLHN1YnVuaXRzOiJzdWJ1bml0Iixjb3VudHJpZXM6ImNvdW50cnkiLGNvYXN0bGluZXM6ImNvYXN0bGluZSIscml2ZXJzOiJyaXZlciIsZnJhbWU6ImZyYW1lIn19LHt9XSw4NTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZDMtZ2VvIiksYT1pLmdlb1BhdGgsbz1pLmdlb0Rpc3RhbmNlLHM9dCgiZDMtZ2VvLXByb2plY3Rpb24iKSxsPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYz10KCIuLi8uLi9saWIiKSx1PWMuc3RyVHJhbnNsYXRlLGY9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGg9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIikscD10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksZD10KCIuLi9wbG90cyIpLG09dCgiLi4vY2FydGVzaWFuL2F4ZXMiKSxnPXQoIi4uL2NhcnRlc2lhbi9hdXRvcmFuZ2UiKS5nZXRBdXRvUmFuZ2Usdj10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50IikseT10KCIuLi9jYXJ0ZXNpYW4vc2VsZWN0IikucHJlcFNlbGVjdCx4PXQoIi4uL2NhcnRlc2lhbi9zZWxlY3QiKS5jbGVhclNlbGVjdCxiPXQoIi4uL2NhcnRlc2lhbi9zZWxlY3QiKS5zZWxlY3RPbkNsaWNrLF89dCgiLi96b29tIiksdz10KCIuL2NvbnN0YW50cyIpLFQ9dCgiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyIpLGs9dCgiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIiksQT10KCJ0b3BvanNvbi1jbGllbnQiKS5mZWF0dXJlO2Z1bmN0aW9uIE0odCl7dGhpcy5pZD10LmlkLHRoaXMuZ3JhcGhEaXY9dC5ncmFwaERpdix0aGlzLmNvbnRhaW5lcj10LmNvbnRhaW5lcix0aGlzLnRvcG9qc29uVVJMPXQudG9wb2pzb25VUkwsdGhpcy5pc1N0YXRpYz10LnN0YXRpY1Bsb3QsdGhpcy50b3BvanNvbk5hbWU9bnVsbCx0aGlzLnRvcG9qc29uPW51bGwsdGhpcy5wcm9qZWN0aW9uPW51bGwsdGhpcy5zY29wZT1udWxsLHRoaXMudmlld0luaXRpYWw9bnVsbCx0aGlzLmZpdFNjYWxlPW51bGwsdGhpcy5ib3VuZHM9bnVsbCx0aGlzLm1pZFB0PW51bGwsdGhpcy5oYXNDaG9yb3BsZXRoPSExLHRoaXMudHJhY2VIYXNoPXt9LHRoaXMubGF5ZXJzPXt9LHRoaXMuYmFzZVBhdGhzPXt9LHRoaXMuZGF0YVBhdGhzPXt9LHRoaXMuZGF0YVBvaW50cz17fSx0aGlzLmNsaXBEZWY9bnVsbCx0aGlzLmNsaXBSZWN0PW51bGwsdGhpcy5iZ1JlY3Q9bnVsbCx0aGlzLm1ha2VGcmFtZXdvcmsoKX12YXIgUz1NLnByb3RvdHlwZTtmdW5jdGlvbiBFKHQsZSl7dmFyIHI9dy5jbGlwUGFkLG49dFswXStyLGk9dFsxXS1yLGE9ZVswXStyLG89ZVsxXS1yO24+MCYmaTwwJiYoaSs9MzYwKTt2YXIgcz0oaS1uKS80O3JldHVybnt0eXBlOiJQb2x5Z29uIixjb29yZGluYXRlczpbW1tuLGFdLFtuLG9dLFtuK3Msb10sW24rMipzLG9dLFtuKzMqcyxvXSxbaSxvXSxbaSxhXSxbaS1zLGFdLFtpLTIqcyxhXSxbaS0zKnMsYV0sW24sYV1dXX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcgTSh0KX0sUy5wbG90PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10aGlzLGk9ZVt0aGlzLmlkXSxhPVtdLG89ITE7Zm9yKHZhciBzIGluIHcubGF5ZXJOYW1lVG9BZGplY3RpdmUpaWYoImZyYW1lIiE9PXMmJmlbInNob3ciK3NdKXtvPSEwO2JyZWFrfWZvcih2YXIgbD0wO2w8dC5sZW5ndGg7bCsrKWlmKHRbMF1bMF0udHJhY2UubG9jYXRpb25tb2RlKXtvPSEwO2JyZWFrfWlmKG8pe3ZhciBjPWsuZ2V0VG9wb2pzb25OYW1lKGkpO251bGwhPT1uLnRvcG9qc29uJiZjPT09bi50b3BvanNvbk5hbWV8fChuLnRvcG9qc29uTmFtZT1jLHZvaWQgMD09PVBsb3RseUdlb0Fzc2V0cy50b3BvanNvbltuLnRvcG9qc29uTmFtZV0mJmEucHVzaChuLmZldGNoVG9wb2pzb24oKSkpfWE9YS5jb25jYXQoVC5mZXRjaFRyYWNlR2VvRGF0YSh0KSksci5wdXNoKG5ldyBQcm9taXNlKChmdW5jdGlvbihyLGkpe1Byb21pc2UuYWxsKGEpLnRoZW4oKGZ1bmN0aW9uKCl7bi50b3BvanNvbj1QbG90bHlHZW9Bc3NldHMudG9wb2pzb25bbi50b3BvanNvbk5hbWVdLG4udXBkYXRlKHQsZSkscigpfSkpLmNhdGNoKGkpfSkpKX0sUy5mZXRjaFRvcG9qc29uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcyxlPWsuZ2V0VG9wb2pzb25QYXRoKHQudG9wb2pzb25VUkwsdC50b3BvanNvbk5hbWUpO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocixpKXtuLmpzb24oZSwoZnVuY3Rpb24obixhKXtpZihuKXJldHVybiA0MDQ9PT1uLnN0YXR1cz9pKG5ldyBFcnJvcihbInBsb3RseS5qcyBjb3VsZCBub3QgZmluZCB0b3BvanNvbiBmaWxlIGF0IixlLCIuIiwiTWFrZSBzdXJlIHRoZSAqdG9wb2pzb25VUkwqIHBsb3QgY29uZmlnIG9wdGlvbiIsImlzIHNldCBwcm9wZXJseS4iXS5qb2luKCIgIikpKTppKG5ldyBFcnJvcihbInVuZXhwZWN0ZWQgZXJyb3Igd2hpbGUgZmV0Y2hpbmcgdG9wb2pzb24gZmlsZSBhdCIsZV0uam9pbigiICIpKSk7UGxvdGx5R2VvQXNzZXRzLnRvcG9qc29uW3QudG9wb2pzb25OYW1lXT1hLHIoKX0pKX0pKX0sUy51cGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lW3RoaXMuaWRdO3RoaXMuaGFzQ2hvcm9wbGV0aD0hMTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7dmFyIGk9dFtuXSxhPWlbMF0udHJhY2U7ImNob3JvcGxldGgiPT09YS50eXBlJiYodGhpcy5oYXNDaG9yb3BsZXRoPSEwKSwhMD09PWEudmlzaWJsZSYmYS5fbGVuZ3RoPjAmJmEuX21vZHVsZS5jYWxjR2VvSlNPTihpLGUpfWlmKCF0aGlzLnVwZGF0ZVByb2plY3Rpb24odCxlKSl7dGhpcy52aWV3SW5pdGlhbCYmdGhpcy5zY29wZT09PXIuc2NvcGV8fHRoaXMuc2F2ZVZpZXdJbml0aWFsKHIpLHRoaXMuc2NvcGU9ci5zY29wZSx0aGlzLnVwZGF0ZUJhc2VMYXllcnMoZSxyKSx0aGlzLnVwZGF0ZURpbXMoZSxyKSx0aGlzLnVwZGF0ZUZ4KGUsciksZC5nZW5lcmFsVXBkYXRlUGVyVHJhY2VNb2R1bGUodGhpcy5ncmFwaERpdix0aGlzLHQscik7dmFyIG89dGhpcy5sYXllcnMuZnJvbnRwbG90LnNlbGVjdCgiLnNjYXR0ZXJsYXllciIpO3RoaXMuZGF0YVBvaW50cy5wb2ludD1vLnNlbGVjdEFsbCgiLnBvaW50IiksdGhpcy5kYXRhUG9pbnRzLnRleHQ9by5zZWxlY3RBbGwoInRleHQiKSx0aGlzLmRhdGFQYXRocy5saW5lPW8uc2VsZWN0QWxsKCIuanMtbGluZSIpO3ZhciBzPXRoaXMubGF5ZXJzLmJhY2twbG90LnNlbGVjdCgiLmNob3JvcGxldGhsYXllciIpO3RoaXMuZGF0YVBhdGhzLmNob3JvcGxldGg9cy5zZWxlY3RBbGwoInBhdGgiKSx0aGlzLnJlbmRlcigpfX0sUy51cGRhdGVQcm9qZWN0aW9uPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5ncmFwaERpdixuPWVbdGhpcy5pZF0sbD1lLl9zaXplLHU9bi5kb21haW4sZj1uLnByb2plY3Rpb24saD1uLmxvbmF4aXMscD1uLmxhdGF4aXMsZD1oLl9heCxtPXAuX2F4LHY9dGhpcy5wcm9qZWN0aW9uPWZ1bmN0aW9uKHQpe3ZhciBlPXQucHJvamVjdGlvbixyPWUudHlwZSxuPXcucHJvak5hbWVzW3JdO249ImdlbyIrYy50aXRsZUNhc2Uobik7Zm9yKHZhciBsPShpW25dfHxzW25dKSgpLHU9dC5faXNTYXRlbGxpdGU/MTgwKk1hdGguYWNvcygxL2UuZGlzdGFuY2UpL01hdGguUEk6dC5faXNDbGlwcGVkP3cubG9uYXhpc1NwYW5bcl0vMjpudWxsLGY9WyJjZW50ZXIiLCJyb3RhdGUiLCJwYXJhbGxlbHMiLCJjbGlwRXh0ZW50Il0saD1mdW5jdGlvbih0KXtyZXR1cm4gdD9sOltdfSxwPTA7cDxmLmxlbmd0aDtwKyspe3ZhciBkPWZbcF07ImZ1bmN0aW9uIiE9dHlwZW9mIGxbZF0mJihsW2RdPWgpfWwuaXNMb25MYXRPdmVyRWRnZXM9ZnVuY3Rpb24odCl7aWYobnVsbD09PWwodCkpcmV0dXJuITA7aWYodSl7dmFyIGU9bC5yb3RhdGUoKTtyZXR1cm4gbyh0LFstZVswXSwtZVsxXV0pPnUqTWF0aC5QSS8xODB9cmV0dXJuITF9LGwuZ2V0UGF0aD1mdW5jdGlvbigpe3JldHVybiBhKCkucHJvamVjdGlvbihsKX0sbC5nZXRCb3VuZHM9ZnVuY3Rpb24odCl7cmV0dXJuIGwuZ2V0UGF0aCgpLmJvdW5kcyh0KX0sbC5wcmVjaXNpb24ody5wcmVjaXNpb24pLHQuX2lzU2F0ZWxsaXRlJiZsLnRpbHQoZS50aWx0KS5kaXN0YW5jZShlLmRpc3RhbmNlKTt1JiZsLmNsaXBBbmdsZSh1LXcuY2xpcFBhZCk7cmV0dXJuIGx9KG4pLHk9W1tsLmwrbC53KnUueFswXSxsLnQrbC5oKigxLXUueVsxXSldLFtsLmwrbC53KnUueFsxXSxsLnQrbC5oKigxLXUueVswXSldXSx4PW4uY2VudGVyfHx7fSxiPWYucm90YXRpb258fHt9LF89aC5yYW5nZXx8W10sVD1wLnJhbmdlfHxbXTtpZihuLmZpdGJvdW5kcyl7ZC5fbGVuZ3RoPXlbMV1bMF0teVswXVswXSxtLl9sZW5ndGg9eVsxXVsxXS15WzBdWzFdLGQucmFuZ2U9ZyhyLGQpLG0ucmFuZ2U9ZyhyLG0pO3ZhciBrPShkLnJhbmdlWzBdK2QucmFuZ2VbMV0pLzIsQT0obS5yYW5nZVswXSttLnJhbmdlWzFdKS8yO2lmKG4uX2lzU2NvcGVkKXg9e2xvbjprLGxhdDpBfTtlbHNlIGlmKG4uX2lzQ2xpcHBlZCl7eD17bG9uOmssbGF0OkF9LGI9e2xvbjprLGxhdDpBLHJvbGw6Yi5yb2xsfTt2YXIgTT1mLnR5cGUsUz13LmxvbmF4aXNTcGFuW01dLzJ8fDE4MCxMPXcubGF0YXhpc1NwYW5bTV0vMnx8OTA7Xz1bay1TLGsrU10sVD1bQS1MLEErTF19ZWxzZSB4PXtsb246ayxsYXQ6QX0sYj17bG9uOmssbGF0OmIubGF0LHJvbGw6Yi5yb2xsfX12LmNlbnRlcihbeC5sb24tYi5sb24seC5sYXQtYi5sYXRdKS5yb3RhdGUoWy1iLmxvbiwtYi5sYXQsYi5yb2xsXSkucGFyYWxsZWxzKGYucGFyYWxsZWxzKTt2YXIgQz1FKF8sVCk7di5maXRFeHRlbnQoeSxDKTt2YXIgUD10aGlzLmJvdW5kcz12LmdldEJvdW5kcyhDKSxJPXRoaXMuZml0U2NhbGU9di5zY2FsZSgpLE89di50cmFuc2xhdGUoKTtpZihuLmZpdGJvdW5kcyl7dmFyIHo9di5nZXRCb3VuZHMoRShkLnJhbmdlLG0ucmFuZ2UpKSxEPU1hdGgubWluKChQWzFdWzBdLVBbMF1bMF0pLyh6WzFdWzBdLXpbMF1bMF0pLChQWzFdWzFdLVBbMF1bMV0pLyh6WzFdWzFdLXpbMF1bMV0pKTtpc0Zpbml0ZShEKT92LnNjYWxlKEQqSSk6Yy53YXJuKCJTb21ldGhpbmcgd2VudCB3cm9uZyBkdXJpbmciK3RoaXMuaWQrImZpdGJvdW5kcyBjb21wdXRhdGlvbnMuIil9ZWxzZSB2LnNjYWxlKGYuc2NhbGUqSSk7dmFyIFI9dGhpcy5taWRQdD1bKFBbMF1bMF0rUFsxXVswXSkvMiwoUFswXVsxXStQWzFdWzFdKS8yXTtpZih2LnRyYW5zbGF0ZShbT1swXSsoUlswXS1PWzBdKSxPWzFdKyhSWzFdLU9bMV0pXSkuY2xpcEV4dGVudChQKSxuLl9pc0FsYmVyc1VzYSl7dmFyIEY9dihbeC5sb24seC5sYXRdKSxCPXYudHJhbnNsYXRlKCk7di50cmFuc2xhdGUoW0JbMF0tKEZbMF0tQlswXSksQlsxXS0oRlsxXS1CWzFdKV0pfX0sUy51cGRhdGVCYXNlTGF5ZXJzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxpPXIudG9wb2pzb24sYT1yLmxheWVycyxvPXIuYmFzZVBhdGhzO2Z1bmN0aW9uIHModCl7cmV0dXJuImxvbmF4aXMiPT09dHx8ImxhdGF4aXMiPT09dH1mdW5jdGlvbiBsKHQpe3JldHVybiBCb29sZWFuKHcubGluZUxheWVyc1t0XSl9ZnVuY3Rpb24gYyh0KXtyZXR1cm4gQm9vbGVhbih3LmZpbGxMYXllcnNbdF0pfXZhciB1PSh0aGlzLmhhc0Nob3JvcGxldGg/dy5sYXllcnNGb3JDaG9yb3BsZXRoOncubGF5ZXJzKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBsKHQpfHxjKHQpP2VbInNob3ciK3RdOiFzKHQpfHxlW3RdLnNob3dncmlkfSkpLHA9ci5mcmFtZXdvcmsuc2VsZWN0QWxsKCIubGF5ZXIiKS5kYXRhKHUsU3RyaW5nKTtwLmV4aXQoKS5lYWNoKChmdW5jdGlvbih0KXtkZWxldGUgYVt0XSxkZWxldGUgb1t0XSxuLnNlbGVjdCh0aGlzKS5yZW1vdmUoKX0pKSxwLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLChmdW5jdGlvbih0KXtyZXR1cm4ibGF5ZXIgIit0fSkpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWFbdF09bi5zZWxlY3QodGhpcyk7ImJnIj09PXQ/ci5iZ1JlY3Q9ZS5hcHBlbmQoInJlY3QiKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKTpzKHQpP29bdF09ZS5hcHBlbmQoInBhdGgiKS5zdHlsZSgiZmlsbCIsIm5vbmUiKToiYmFja3Bsb3QiPT09dD9lLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNob3JvcGxldGhsYXllciIsITApOiJmcm9udHBsb3QiPT09dD9lLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNjYXR0ZXJsYXllciIsITApOmwodCk/b1t0XT1lLmFwcGVuZCgicGF0aCIpLnN0eWxlKCJmaWxsIiwibm9uZSIpLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMik6Yyh0KSYmKG9bdF09ZS5hcHBlbmQoInBhdGgiKS5zdHlsZSgic3Ryb2tlIiwibm9uZSIpKX0pKSxwLm9yZGVyKCkscC5lYWNoKChmdW5jdGlvbihyKXt2YXIgbj1vW3JdLGE9dy5sYXllck5hbWVUb0FkamVjdGl2ZVtyXTsiZnJhbWUiPT09cj9uLmRhdHVtKHcuc3BoZXJlU1ZHKTpsKHIpfHxjKHIpP24uZGF0dW0oQShpLGkub2JqZWN0c1tyXSkpOnMocikmJm4uZGF0dW0oZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYSxvPWVbdF0scz13LnNjb3BlRGVmYXVsdHNbZS5zY29wZV07ImxvbmF4aXMiPT09dD8obj1zLmxvbmF4aXNSYW5nZSxpPXMubGF0YXhpc1JhbmdlLGE9ZnVuY3Rpb24odCxlKXtyZXR1cm5bdCxlXX0pOiJsYXRheGlzIj09PXQmJihuPXMubGF0YXhpc1JhbmdlLGk9cy5sb25heGlzUmFuZ2UsYT1mdW5jdGlvbih0LGUpe3JldHVybltlLHRdfSk7dmFyIGw9e3R5cGU6ImxpbmVhciIscmFuZ2U6W25bMF0sblsxXS0xZS02XSx0aWNrMDpvLnRpY2swLGR0aWNrOm8uZHRpY2t9O20uc2V0Q29udmVydChsLHIpO3ZhciBjPW0uY2FsY1RpY2tzKGwpO2UuaXNTY29wZWR8fCJsb25heGlzIiE9PXR8fGMucG9wKCk7Zm9yKHZhciB1PWMubGVuZ3RoLGY9bmV3IEFycmF5KHUpLGg9MDtoPHU7aCsrKWZvcih2YXIgcD1jW2hdLngsZD1mW2hdPVtdLGc9aVswXTtnPGlbMV0rMi41O2crPTIuNSlkLnB1c2goYShwLGcpKTtyZXR1cm57dHlwZToiTXVsdGlMaW5lU3RyaW5nIixjb29yZGluYXRlczpmfX0ocixlLHQpKS5jYWxsKGYuc3Ryb2tlLGVbcl0uZ3JpZGNvbG9yKS5jYWxsKGguZGFzaExpbmUsIiIsZVtyXS5ncmlkd2lkdGgpLGwocik/bi5jYWxsKGYuc3Ryb2tlLGVbYSsiY29sb3IiXSkuY2FsbChoLmRhc2hMaW5lLCIiLGVbYSsid2lkdGgiXSk6YyhyKSYmbi5jYWxsKGYuZmlsbCxlW2ErImNvbG9yIl0pfSkpfSxTLnVwZGF0ZURpbXM9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmJvdW5kcyxuPShlLmZyYW1ld2lkdGh8fDApLzIsaT1yWzBdWzBdLW4sYT1yWzBdWzFdLW4sbz1yWzFdWzBdLWkrbixzPXJbMV1bMV0tYStuO2guc2V0UmVjdCh0aGlzLmNsaXBSZWN0LGksYSxvLHMpLHRoaXMuYmdSZWN0LmNhbGwoaC5zZXRSZWN0LGksYSxvLHMpLmNhbGwoZi5maWxsLGUuYmdjb2xvciksdGhpcy54YXhpcy5fb2Zmc2V0PWksdGhpcy54YXhpcy5fbGVuZ3RoPW8sdGhpcy55YXhpcy5fb2Zmc2V0PWEsdGhpcy55YXhpcy5fbGVuZ3RoPXN9LFMudXBkYXRlRng9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLGk9ci5ncmFwaERpdixhPXIuYmdSZWN0LG89dC5kcmFnbW9kZSxzPXQuY2xpY2ttb2RlO2lmKCFyLmlzU3RhdGljKXt2YXIgdTsic2VsZWN0Ij09PW8/dT1mdW5jdGlvbih0LGUpeyh0LnJhbmdlPXt9KVtyLmlkXT1baChbZS54bWluLGUueW1pbl0pLGgoW2UueG1heCxlLnltYXhdKV19OiJsYXNzbyI9PT1vJiYodT1mdW5jdGlvbih0LGUsbil7KHQubGFzc29Qb2ludHM9e30pW3IuaWRdPW4uZmlsdGVyZWQubWFwKGgpfSk7dmFyIGY9e2VsZW1lbnQ6ci5iZ1JlY3Qubm9kZSgpLGdkOmkscGxvdGluZm86e2lkOnIuaWQseGF4aXM6ci54YXhpcyx5YXhpczpyLnlheGlzLGZpbGxSYW5nZUl0ZW1zOnV9LHhheGVzOltyLnhheGlzXSx5YXhlczpbci55YXhpc10sc3VicGxvdDpyLmlkLGNsaWNrRm46ZnVuY3Rpb24odCl7Mj09PXQmJngoaSl9fTsicGFuIj09PW8/KGEubm9kZSgpLm9ubW91c2Vkb3duPW51bGwsYS5jYWxsKF8ocixlKSksYS5vbigiZGJsY2xpY2suem9vbSIsKGZ1bmN0aW9uKCl7dmFyIHQ9ci52aWV3SW5pdGlhbCxlPXt9O2Zvcih2YXIgbiBpbiB0KWVbci5pZCsiLiIrbl09dFtuXTtsLmNhbGwoIl9ndWlSZWxheW91dCIsaSxlKSxpLmVtaXQoInBsb3RseV9kb3VibGVjbGljayIsbnVsbCl9KSksaS5fY29udGV4dC5fc2Nyb2xsWm9vbS5nZW98fGEub24oIndoZWVsLnpvb20iLG51bGwpKToic2VsZWN0IiE9PW8mJiJsYXNzbyIhPT1vfHwoYS5vbigiLnpvb20iLG51bGwpLGYucHJlcEZuPWZ1bmN0aW9uKHQsZSxyKXt5KHQsZSxyLGYsbyl9LHYuaW5pdChmKSksYS5vbigibW91c2Vtb3ZlIiwoZnVuY3Rpb24oKXt2YXIgdD1yLnByb2plY3Rpb24uaW52ZXJ0KGMuZ2V0UG9zaXRpb25Gcm9tRDNFdmVudCgpKTtpZighdClyZXR1cm4gdi51bmhvdmVyKGksbi5ldmVudCk7ci54YXhpcy5wMmM9ZnVuY3Rpb24oKXtyZXR1cm4gdFswXX0sci55YXhpcy5wMmM9ZnVuY3Rpb24oKXtyZXR1cm4gdFsxXX0scC5ob3ZlcihpLG4uZXZlbnQsci5pZCl9KSksYS5vbigibW91c2VvdXQiLChmdW5jdGlvbigpe2kuX2RyYWdnaW5nfHx2LnVuaG92ZXIoaSxuLmV2ZW50KX0pKSxhLm9uKCJjbGljayIsKGZ1bmN0aW9uKCl7InNlbGVjdCIhPT1vJiYibGFzc28iIT09byYmKHMuaW5kZXhPZigic2VsZWN0Iik+LTEmJmIobi5ldmVudCxpLFtyLnhheGlzXSxbci55YXhpc10sci5pZCxmKSxzLmluZGV4T2YoImV2ZW50Iik+LTEmJnAuY2xpY2soaSxuLmV2ZW50KSl9KSl9ZnVuY3Rpb24gaCh0KXtyZXR1cm4gci5wcm9qZWN0aW9uLmludmVydChbdFswXStyLnhheGlzLl9vZmZzZXQsdFsxXStyLnlheGlzLl9vZmZzZXRdKX19LFMubWFrZUZyYW1ld29yaz1mdW5jdGlvbigpe3ZhciB0PXRoaXMsZT10LmdyYXBoRGl2LHI9ZS5fZnVsbExheW91dCxpPSJjbGlwIityLl91aWQrdC5pZDt0LmNsaXBEZWY9ci5fY2xpcHMuYXBwZW5kKCJjbGlwUGF0aCIpLmF0dHIoImlkIixpKSx0LmNsaXBSZWN0PXQuY2xpcERlZi5hcHBlbmQoInJlY3QiKSx0LmZyYW1ld29yaz1uLnNlbGVjdCh0LmNvbnRhaW5lcikuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJnZW8gIit0LmlkKS5jYWxsKGguc2V0Q2xpcFVybCxpLGUpLHQucHJvamVjdD1mdW5jdGlvbihlKXt2YXIgcj10LnByb2plY3Rpb24oZSk7cmV0dXJuIHI/W3JbMF0tdC54YXhpcy5fb2Zmc2V0LHJbMV0tdC55YXhpcy5fb2Zmc2V0XTpbbnVsbCxudWxsXX0sdC54YXhpcz17X2lkOiJ4IixjMnA6ZnVuY3Rpb24oZSl7cmV0dXJuIHQucHJvamVjdChlKVswXX19LHQueWF4aXM9e19pZDoieSIsYzJwOmZ1bmN0aW9uKGUpe3JldHVybiB0LnByb2plY3QoZSlbMV19fSx0Lm1vY2tBeGlzPXt0eXBlOiJsaW5lYXIiLHNob3dleHBvbmVudDoiYWxsIixleHBvbmVudGZvcm1hdDoiQiJ9LG0uc2V0Q29udmVydCh0Lm1vY2tBeGlzLHIpfSxTLnNhdmVWaWV3SW5pdGlhbD1mdW5jdGlvbih0KXt2YXIgZSxyPXQuY2VudGVyfHx7fSxuPXQucHJvamVjdGlvbixpPW4ucm90YXRpb258fHt9O3RoaXMudmlld0luaXRpYWw9e2ZpdGJvdW5kczp0LmZpdGJvdW5kcywicHJvamVjdGlvbi5zY2FsZSI6bi5zY2FsZX0sZT10Ll9pc1Njb3BlZD97ImNlbnRlci5sb24iOnIubG9uLCJjZW50ZXIubGF0IjpyLmxhdH06dC5faXNDbGlwcGVkP3sicHJvamVjdGlvbi5yb3RhdGlvbi5sb24iOmkubG9uLCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxhdCI6aS5sYXR9OnsiY2VudGVyLmxvbiI6ci5sb24sImNlbnRlci5sYXQiOnIubGF0LCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxvbiI6aS5sb259LGMuZXh0ZW5kRmxhdCh0aGlzLnZpZXdJbml0aWFsLGUpfSxTLnJlbmRlcj1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcy5wcm9qZWN0aW9uLHI9ZS5nZXRQYXRoKCk7ZnVuY3Rpb24gbih0KXt2YXIgcj1lKHQubG9ubGF0KTtyZXR1cm4gcj91KHJbMF0sclsxXSk6bnVsbH1mdW5jdGlvbiBpKHQpe3JldHVybiBlLmlzTG9uTGF0T3ZlckVkZ2VzKHQubG9ubGF0KT8ibm9uZSI6bnVsbH1mb3IodCBpbiB0aGlzLmJhc2VQYXRocyl0aGlzLmJhc2VQYXRoc1t0XS5hdHRyKCJkIixyKTtmb3IodCBpbiB0aGlzLmRhdGFQYXRocyl0aGlzLmRhdGFQYXRoc1t0XS5hdHRyKCJkIiwoZnVuY3Rpb24odCl7cmV0dXJuIHIodC5nZW9qc29uKX0pKTtmb3IodCBpbiB0aGlzLmRhdGFQb2ludHMpdGhpcy5kYXRhUG9pbnRzW3RdLmF0dHIoImRpc3BsYXkiLGkpLmF0dHIoInRyYW5zZm9ybSIsbil9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCI6NjU4LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyI6NzY5LCIuLi8uLi9saWIvdG9wb2pzb25fdXRpbHMiOjgwNSwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vY2FydGVzaWFuL2F1dG9yYW5nZSI6ODI2LCIuLi9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi9jYXJ0ZXNpYW4vc2VsZWN0Ijo4NDcsIi4uL3Bsb3RzIjo4OTAsIi4vY29uc3RhbnRzIjo4NTgsIi4vem9vbSI6ODYzLCJAcGxvdGx5L2QzIjo1OCwiZDMtZ2VvIjoxNjIsImQzLWdlby1wcm9qZWN0aW9uIjoxNjEsInRvcG9qc29uLWNsaWVudCI6NTc1fV0sODYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2dldF9kYXRhIikuZ2V0U3VicGxvdENhbGNEYXRhLGk9dCgiLi4vLi4vbGliIikuY291bnRlclJlZ2V4LGE9dCgiLi9nZW8iKSxvPSJnZW8iLHM9aShvKSxsPXt9O2wuZ2VvPXt2YWxUeXBlOiJzdWJwbG90aWQiLGRmbHQ6byxlZGl0VHlwZToiY2FsYyJ9LGUuZXhwb3J0cz17YXR0cjpvLG5hbWU6byxpZFJvb3Q6byxpZFJlZ2V4OnMsYXR0clJlZ2V4OnMsYXR0cmlidXRlczpsLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIikscGxvdDpmdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPXQuY2FsY2RhdGEsaT1lLl9zdWJwbG90cy5nZW8scz0wO3M8aS5sZW5ndGg7cysrKXt2YXIgbD1pW3NdLGM9bihyLG8sbCksdT1lW2xdLl9zdWJwbG90O3V8fCh1PWEoe2lkOmwsZ3JhcGhEaXY6dCxjb250YWluZXI6ZS5fZ2VvbGF5ZXIubm9kZSgpLHRvcG9qc29uVVJMOnQuX2NvbnRleHQudG9wb2pzb25VUkwsc3RhdGljUGxvdDp0Ll9jb250ZXh0LnN0YXRpY1Bsb3R9KSxlW2xdLl9zdWJwbG90PXUpLHUucGxvdChjLGUsdC5fcHJvbWlzZXMpfX0sdXBkYXRlRng6ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5nZW8sbj0wO248ci5sZW5ndGg7bisrKXt2YXIgaT1lW3Jbbl1dO2kuX3N1YnBsb3QudXBkYXRlRngoZSxpKX19LGNsZWFuOmZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT1uLl9zdWJwbG90cy5nZW98fFtdLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXSxzPW5bb10uX3N1YnBsb3Q7IWVbb10mJnMmJihzLmZyYW1ld29yay5yZW1vdmUoKSxzLmNsaXBEZWYucmVtb3ZlKCkpfX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9nZXRfZGF0YSI6ODY0LCIuL2dlbyI6ODU5LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4NjEsIi4vbGF5b3V0X2RlZmF1bHRzIjo4NjJ9XSw4NjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksaT10KCIuLi9kb21haW4iKS5hdHRyaWJ1dGVzLGE9dCgiLi9jb25zdGFudHMiKSxvPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxzPXQoIi4uLy4uL2xpYi9zb3J0X29iamVjdF9rZXlzIiksbD17cmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIn0se3ZhbFR5cGU6Im51bWJlciJ9XX0sc2hvd2dyaWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LHRpY2swOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0sZHRpY2s6e3ZhbFR5cGU6Im51bWJlciJ9LGdyaWRjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5saWdodExpbmV9LGdyaWR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9fTsoZS5leHBvcnRzPW8oe2RvbWFpbjppKHtuYW1lOiJnZW8ifSx7fSksZml0Ym91bmRzOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyExLCJsb2NhdGlvbnMiLCJnZW9qc29uIl0sZGZsdDohMSxlZGl0VHlwZToicGxvdCJ9LHJlc29sdXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbMTEwLDUwXSxkZmx0OjExMCxjb2VyY2VOdW1iZXI6ITB9LHNjb3BlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6cyhhLnNjb3BlRGVmYXVsdHMpLGRmbHQ6IndvcmxkIn0scHJvamVjdGlvbjp7dHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOnMoYS5wcm9qTmFtZXMpfSxyb3RhdGlvbjp7bG9uOnt2YWxUeXBlOiJudW1iZXIifSxsYXQ6e3ZhbFR5cGU6Im51bWJlciJ9LHJvbGw6e3ZhbFR5cGU6Im51bWJlciJ9fSx0aWx0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0sZGlzdGFuY2U6e3ZhbFR5cGU6Im51bWJlciIsbWluOjEuMDAxLGRmbHQ6Mn0scGFyYWxsZWxzOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciJ9LHt2YWxUeXBlOiJudW1iZXIifV19LHNjYWxlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX19LGNlbnRlcjp7bG9uOnt2YWxUeXBlOiJudW1iZXIifSxsYXQ6e3ZhbFR5cGU6Im51bWJlciJ9fSx2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxzaG93Y29hc3RsaW5lczp7dmFsVHlwZToiYm9vbGVhbiJ9LGNvYXN0bGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxjb2FzdGxpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjF9LHNob3dsYW5kOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsYW5kY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEubGFuZENvbG9yfSxzaG93b2NlYW46e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LG9jZWFuY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEud2F0ZXJDb2xvcn0sc2hvd2xha2VzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsYWtlY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEud2F0ZXJDb2xvcn0sc2hvd3JpdmVyczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0scml2ZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS53YXRlckNvbG9yfSxyaXZlcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sc2hvd2NvdW50cmllczp7dmFsVHlwZToiYm9vbGVhbiJ9LGNvdW50cnljb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5kZWZhdWx0TGluZX0sY291bnRyeXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sc2hvd3N1YnVuaXRzOnt2YWxUeXBlOiJib29sZWFuIn0sc3VidW5pdGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxzdWJ1bml0d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxfSxzaG93ZnJhbWU6e3ZhbFR5cGU6ImJvb2xlYW4ifSxmcmFtZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxmcmFtZXdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MX0sYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5iYWNrZ3JvdW5kfSxsb25heGlzOmwsbGF0YXhpczpsfSwicGxvdCIsImZyb20tcm9vdCIpKS51aXJldmlzaW9uPXt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uLy4uL2xpYi9zb3J0X29iamVjdF9rZXlzIjo3OTksIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vZG9tYWluIjo4NTUsIi4vY29uc3RhbnRzIjo4NTh9XSw4NjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9zdWJwbG90X2RlZmF1bHRzIiksYT10KCIuLi9nZXRfZGF0YSIpLmdldFN1YnBsb3REYXRhLG89dCgiLi9jb25zdGFudHMiKSxzPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxsPW8uYXhlc05hbWVzO2Z1bmN0aW9uIGModCxlLHIsaSl7dmFyIHM9YShpLmZ1bGxEYXRhLCJnZW8iLGkuaWQpLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuX2V4cGFuZGVkSW5kZXh9KSksYz1yKCJyZXNvbHV0aW9uIiksdT1yKCJzY29wZSIpLGY9by5zY29wZURlZmF1bHRzW3VdLGg9cigicHJvamVjdGlvbi50eXBlIixmLnByb2pUeXBlKSxwPWUuX2lzQWxiZXJzVXNhPSJhbGJlcnMgdXNhIj09PWg7cCYmKHU9ZS5zY29wZT0idXNhIik7dmFyIGQ9ZS5faXNTY29wZWQ9IndvcmxkIiE9PXUsbT1lLl9pc1NhdGVsbGl0ZT0ic2F0ZWxsaXRlIj09PWgsZz1lLl9pc0NvbmljPS0xIT09aC5pbmRleE9mKCJjb25pYyIpfHwiYWxiZXJzIj09PWgsdj1lLl9pc0NsaXBwZWQ9ISFvLmxvbmF4aXNTcGFuW2hdO2lmKCExPT09dC52aXNpYmxlKXt2YXIgeT1uLmV4dGVuZERlZXAoe30sZS5fdGVtcGxhdGUpO3kuc2hvd2NvYXN0bGluZXM9ITEseS5zaG93Y291bnRyaWVzPSExLHkuc2hvd2ZyYW1lPSExLHkuc2hvd2xha2VzPSExLHkuc2hvd2xhbmQ9ITEseS5zaG93b2NlYW49ITEseS5zaG93cml2ZXJzPSExLHkuc2hvd3N1YnVuaXRzPSExLHkubG9uYXhpcyYmKHkubG9uYXhpcy5zaG93Z3JpZD0hMSkseS5sYXRheGlzJiYoeS5sYXRheGlzLnNob3dncmlkPSExKSxlLl90ZW1wbGF0ZT15fWZvcih2YXIgeD1yKCJ2aXNpYmxlIiksYj0wO2I8bC5sZW5ndGg7YisrKXt2YXIgXyx3PWxbYl0sVD1bMzAsMTBdW2JdO2lmKGQpXz1mW3crIlJhbmdlIl07ZWxzZXt2YXIgaz1vW3crIlNwYW4iXSxBPShrW2hdfHxrWyIqIl0pLzIsTT1yKCJwcm9qZWN0aW9uLnJvdGF0aW9uLiIrdy5zdWJzdHIoMCwzKSxmLnByb2pSb3RhdGVbYl0pO189W00tQSxNK0FdfXZhciBTPXIodysiLnJhbmdlIixfKTtyKHcrIi50aWNrMCIpLHIodysiLmR0aWNrIixUKSxyKHcrIi5zaG93Z3JpZCIsISF4JiZ2b2lkIDApJiYocih3KyIuZ3JpZGNvbG9yIikscih3KyIuZ3JpZHdpZHRoIikpLGVbd10uX2F4PXt0eXBlOiJsaW5lYXIiLF9pZDp3LnNsaWNlKDAsMyksX3RyYWNlSW5kaWNlczpzLHNldFNjYWxlOm4uaWRlbnRpdHksYzJsOm4uaWRlbnRpdHkscjJsOm4uaWRlbnRpdHksYXV0b3JhbmdlOiEwLHJhbmdlOlMuc2xpY2UoKSxfbToxLF9pbnB1dDp7fX19dmFyIEU9ZS5sb25heGlzLnJhbmdlLEw9ZS5sYXRheGlzLnJhbmdlLEM9RVswXSxQPUVbMV07Qz4wJiZQPDAmJihQKz0zNjApO3ZhciBJLE8seixEPShDK1ApLzI7aWYoIXApe3ZhciBSPWQ/Zi5wcm9qUm90YXRlOltELDAsMF07ST1yKCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxvbiIsUlswXSkscigicHJvamVjdGlvbi5yb3RhdGlvbi5sYXQiLFJbMV0pLHIoInByb2plY3Rpb24ucm90YXRpb24ucm9sbCIsUlsyXSkscigic2hvd2NvYXN0bGluZXMiLCFkJiZ4KSYmKHIoImNvYXN0bGluZWNvbG9yIikscigiY29hc3RsaW5ld2lkdGgiKSkscigic2hvd29jZWFuIiwhIXgmJnZvaWQgMCkmJnIoIm9jZWFuY29sb3IiKX0ocD8oTz0tOTYuNix6PTM4LjcpOihPPWQ/RDpJLHo9KExbMF0rTFsxXSkvMikscigiY2VudGVyLmxvbiIsTykscigiY2VudGVyLmxhdCIseiksbSYmKHIoInByb2plY3Rpb24udGlsdCIpLHIoInByb2plY3Rpb24uZGlzdGFuY2UiKSksZykmJnIoInByb2plY3Rpb24ucGFyYWxsZWxzIixmLnByb2pQYXJhbGxlbHN8fFswLDYwXSk7cigicHJvamVjdGlvbi5zY2FsZSIpLHIoInNob3dsYW5kIiwhIXgmJnZvaWQgMCkmJnIoImxhbmRjb2xvciIpLHIoInNob3dsYWtlcyIsISF4JiZ2b2lkIDApJiZyKCJsYWtlY29sb3IiKSxyKCJzaG93cml2ZXJzIiwhIXgmJnZvaWQgMCkmJihyKCJyaXZlcmNvbG9yIikscigicml2ZXJ3aWR0aCIpKSxyKCJzaG93Y291bnRyaWVzIixkJiYidXNhIiE9PXUmJngpJiYocigiY291bnRyeWNvbG9yIikscigiY291bnRyeXdpZHRoIikpLCgidXNhIj09PXV8fCJub3J0aCBhbWVyaWNhIj09PXUmJjUwPT09YykmJihyKCJzaG93c3VidW5pdHMiLHgpLHIoInN1YnVuaXRjb2xvciIpLHIoInN1YnVuaXR3aWR0aCIpKSxkfHxyKCJzaG93ZnJhbWUiLHgpJiYocigiZnJhbWVjb2xvciIpLHIoImZyYW1ld2lkdGgiKSkscigiYmdjb2xvciIpLHIoImZpdGJvdW5kcyIpJiYoZGVsZXRlIGUucHJvamVjdGlvbi5zY2FsZSxkPyhkZWxldGUgZS5jZW50ZXIubG9uLGRlbGV0ZSBlLmNlbnRlci5sYXQpOnY/KGRlbGV0ZSBlLmNlbnRlci5sb24sZGVsZXRlIGUuY2VudGVyLmxhdCxkZWxldGUgZS5wcm9qZWN0aW9uLnJvdGF0aW9uLmxvbixkZWxldGUgZS5wcm9qZWN0aW9uLnJvdGF0aW9uLmxhdCxkZWxldGUgZS5sb25heGlzLnJhbmdlLGRlbGV0ZSBlLmxhdGF4aXMucmFuZ2UpOihkZWxldGUgZS5jZW50ZXIubG9uLGRlbGV0ZSBlLmNlbnRlci5sYXQsZGVsZXRlIGUucHJvamVjdGlvbi5yb3RhdGlvbi5sb24pKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2kodCxlLHIse3R5cGU6ImdlbyIsYXR0cmlidXRlczpzLGhhbmRsZURlZmF1bHRzOmMsZnVsbERhdGE6cixwYXJ0aXRpb246InkifSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9nZXRfZGF0YSI6ODY0LCIuLi9zdWJwbG90X2RlZmF1bHRzIjo4OTgsIi4vY29uc3RhbnRzIjo4NTgsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg2MX1dLDg2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5Iiksbz1NYXRoLlBJLzE4MCxzPTE4MC9NYXRoLlBJLGw9e2N1cnNvcjoicG9pbnRlciJ9LGM9e2N1cnNvcjoiYXV0byJ9O2Z1bmN0aW9uIHUodCxlKXtyZXR1cm4gbi5iZWhhdmlvci56b29tKCkudHJhbnNsYXRlKGUudHJhbnNsYXRlKCkpLnNjYWxlKGUuc2NhbGUoKSl9ZnVuY3Rpb24gZih0LGUscil7dmFyIG49dC5pZCxvPXQuZ3JhcGhEaXYscz1vLmxheW91dCxsPXNbbl0sYz1vLl9mdWxsTGF5b3V0LHU9Y1tuXSxmPXt9LGg9e307ZnVuY3Rpb24gcCh0LGUpe2ZbbisiLiIrdF09aS5uZXN0ZWRQcm9wZXJ0eShsLHQpLmdldCgpLGEuY2FsbCgiX3N0b3JlRGlyZWN0R1VJRWRpdCIscyxjLl9wcmVHVUksZik7dmFyIHI9aS5uZXN0ZWRQcm9wZXJ0eSh1LHQpO3IuZ2V0KCkhPT1lJiYoci5zZXQoZSksaS5uZXN0ZWRQcm9wZXJ0eShsLHQpLnNldChlKSxoW24rIi4iK3RdPWUpfXIocCkscCgicHJvamVjdGlvbi5zY2FsZSIsZS5zY2FsZSgpL3QuZml0U2NhbGUpLHAoImZpdGJvdW5kcyIsITEpLG8uZW1pdCgicGxvdGx5X3JlbGF5b3V0IixoKX1mdW5jdGlvbiBoKHQsZSl7dmFyIHI9dSgwLGUpO2Z1bmN0aW9uIGkocil7dmFyIG49ZS5pbnZlcnQodC5taWRQdCk7cigiY2VudGVyLmxvbiIsblswXSkscigiY2VudGVyLmxhdCIsblsxXSl9cmV0dXJuIHIub24oInpvb21zdGFydCIsKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuc3R5bGUobCl9KSkub24oInpvb20iLChmdW5jdGlvbigpe2Uuc2NhbGUobi5ldmVudC5zY2FsZSkudHJhbnNsYXRlKG4uZXZlbnQudHJhbnNsYXRlKSx0LnJlbmRlcigpO3ZhciByPWUuaW52ZXJ0KHQubWlkUHQpO3QuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIix7Imdlby5wcm9qZWN0aW9uLnNjYWxlIjplLnNjYWxlKCkvdC5maXRTY2FsZSwiZ2VvLmNlbnRlci5sb24iOnJbMF0sImdlby5jZW50ZXIubGF0IjpyWzFdfSl9KSkub24oInpvb21lbmQiLChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnN0eWxlKGMpLGYodCxlLGkpfSkpLHJ9ZnVuY3Rpb24gcCh0LGUpe3ZhciByLGksYSxvLHMsaCxwLGQsbSxnPXUoMCxlKTtmdW5jdGlvbiB2KHQpe3JldHVybiBlLmludmVydCh0KX1mdW5jdGlvbiB5KHIpe3ZhciBuPWUucm90YXRlKCksaT1lLmludmVydCh0Lm1pZFB0KTtyKCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxvbiIsLW5bMF0pLHIoImNlbnRlci5sb24iLGlbMF0pLHIoImNlbnRlci5sYXQiLGlbMV0pfXJldHVybiBnLm9uKCJ6b29tc3RhcnQiLChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnN0eWxlKGwpLHI9bi5tb3VzZSh0aGlzKSxpPWUucm90YXRlKCksYT1lLnRyYW5zbGF0ZSgpLG89aSxzPXYocil9KSkub24oInpvb20iLChmdW5jdGlvbigpe2lmKGg9bi5tb3VzZSh0aGlzKSxmdW5jdGlvbih0KXt2YXIgcj12KHQpO2lmKCFyKXJldHVybiEwO3ZhciBuPWUocik7cmV0dXJuIE1hdGguYWJzKG5bMF0tdFswXSk+Mnx8TWF0aC5hYnMoblsxXS10WzFdKT4yfShyKSlyZXR1cm4gZy5zY2FsZShlLnNjYWxlKCkpLHZvaWQgZy50cmFuc2xhdGUoZS50cmFuc2xhdGUoKSk7ZS5zY2FsZShuLmV2ZW50LnNjYWxlKSxlLnRyYW5zbGF0ZShbYVswXSxuLmV2ZW50LnRyYW5zbGF0ZVsxXV0pLHM/dihoKSYmKGQ9dihoKSxwPVtvWzBdKyhkWzBdLXNbMF0pLGlbMV0saVsyXV0sZS5yb3RhdGUocCksbz1wKTpzPXYocj1oKSxtPSEwLHQucmVuZGVyKCk7dmFyIGw9ZS5yb3RhdGUoKSxjPWUuaW52ZXJ0KHQubWlkUHQpO3QuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIix7Imdlby5wcm9qZWN0aW9uLnNjYWxlIjplLnNjYWxlKCkvdC5maXRTY2FsZSwiZ2VvLmNlbnRlci5sb24iOmNbMF0sImdlby5jZW50ZXIubGF0IjpjWzFdLCJnZW8ucHJvamVjdGlvbi5yb3RhdGlvbi5sb24iOi1sWzBdfSl9KSkub24oInpvb21lbmQiLChmdW5jdGlvbigpe24uc2VsZWN0KHRoaXMpLnN0eWxlKGMpLG0mJmYodCxlLHkpfSkpLGd9ZnVuY3Rpb24gZCh0LGUpe3ZhciByLGk9e3I6ZS5yb3RhdGUoKSxrOmUuc2NhbGUoKX0sYT11KDAsZSksbz1mdW5jdGlvbih0KXt2YXIgZT0wLHI9YXJndW1lbnRzLmxlbmd0aCxpPVtdO2Zvcig7KytlPHI7KWkucHVzaChhcmd1bWVudHNbZV0pO3ZhciBhPW4uZGlzcGF0Y2guYXBwbHkobnVsbCxpKTtyZXR1cm4gYS5vZj1mdW5jdGlvbihlLHIpe3JldHVybiBmdW5jdGlvbihpKXt2YXIgbzt0cnl7bz1pLnNvdXJjZUV2ZW50PW4uZXZlbnQsaS50YXJnZXQ9dCxuLmV2ZW50PWksYVtpLnR5cGVdLmFwcGx5KGUscil9ZmluYWxseXtuLmV2ZW50PW99fX0sYX0oYSwiem9vbXN0YXJ0Iiwiem9vbSIsInpvb21lbmQiKSxzPTAsaD1hLm9uO2Z1bmN0aW9uIHAodCl7cysrfHx0KHt0eXBlOiJ6b29tc3RhcnQifSl9ZnVuY3Rpb24gZCh0KXt0KHt0eXBlOiJ6b29tIn0pfWZ1bmN0aW9uIGIodCl7LS1zfHx0KHt0eXBlOiJ6b29tZW5kIn0pfWZ1bmN0aW9uIF8odCl7dmFyIHI9ZS5yb3RhdGUoKTt0KCJwcm9qZWN0aW9uLnJvdGF0aW9uLmxvbiIsLXJbMF0pLHQoInByb2plY3Rpb24ucm90YXRpb24ubGF0IiwtclsxXSl9cmV0dXJuIGEub24oInpvb21zdGFydCIsKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuc3R5bGUobCk7dmFyIHQ9bi5tb3VzZSh0aGlzKSxzPWUucm90YXRlKCksYz1zLHU9ZS50cmFuc2xhdGUoKSxmPWcocyk7cj1tKGUsdCksaC5jYWxsKGEsInpvb20iLChmdW5jdGlvbigpe3ZhciBhPW4ubW91c2UodGhpcyk7aWYoZS5zY2FsZShpLms9bi5ldmVudC5zY2FsZSkscil7aWYobShlLGEpKXtlLnJvdGF0ZShzKS50cmFuc2xhdGUodSk7dmFyIGw9bShlLGEpLGg9eShyLGwpLHA9VCh2KGYsaCkpLGc9aS5yPXgocCxyLGMpO2lzRmluaXRlKGdbMF0pJiZpc0Zpbml0ZShnWzFdKSYmaXNGaW5pdGUoZ1syXSl8fChnPWMpLGUucm90YXRlKGcpLGM9Z319ZWxzZSByPW0oZSx0PWEpO2Qoby5vZih0aGlzLGFyZ3VtZW50cykpfSkpLHAoby5vZih0aGlzLGFyZ3VtZW50cykpfSkpLm9uKCJ6b29tZW5kIiwoZnVuY3Rpb24oKXtuLnNlbGVjdCh0aGlzKS5zdHlsZShjKSxoLmNhbGwoYSwiem9vbSIsbnVsbCksYihvLm9mKHRoaXMsYXJndW1lbnRzKSksZih0LGUsXyl9KSkub24oInpvb20ucmVkcmF3IiwoZnVuY3Rpb24oKXt0LnJlbmRlcigpO3ZhciByPWUucm90YXRlKCk7dC5ncmFwaERpdi5lbWl0KCJwbG90bHlfcmVsYXlvdXRpbmciLHsiZ2VvLnByb2plY3Rpb24uc2NhbGUiOmUuc2NhbGUoKS90LmZpdFNjYWxlLCJnZW8ucHJvamVjdGlvbi5yb3RhdGlvbi5sb24iOi1yWzBdLCJnZW8ucHJvamVjdGlvbi5yb3RhdGlvbi5sYXQiOi1yWzFdfSl9KSksbi5yZWJpbmQoYSxvLCJvbiIpfWZ1bmN0aW9uIG0odCxlKXt2YXIgcj10LmludmVydChlKTtyZXR1cm4gciYmaXNGaW5pdGUoclswXSkmJmlzRmluaXRlKHJbMV0pJiZmdW5jdGlvbih0KXt2YXIgZT10WzBdKm8scj10WzFdKm8sbj1NYXRoLmNvcyhyKTtyZXR1cm5bbipNYXRoLmNvcyhlKSxuKk1hdGguc2luKGUpLE1hdGguc2luKHIpXX0ocil9ZnVuY3Rpb24gZyh0KXt2YXIgZT0uNSp0WzBdKm8scj0uNSp0WzFdKm8sbj0uNSp0WzJdKm8saT1NYXRoLnNpbihlKSxhPU1hdGguY29zKGUpLHM9TWF0aC5zaW4ociksbD1NYXRoLmNvcyhyKSxjPU1hdGguc2luKG4pLHU9TWF0aC5jb3Mobik7cmV0dXJuW2EqbCp1K2kqcypjLGkqbCp1LWEqcypjLGEqcyp1K2kqbCpjLGEqbCpjLWkqcyp1XX1mdW5jdGlvbiB2KHQsZSl7dmFyIHI9dFswXSxuPXRbMV0saT10WzJdLGE9dFszXSxvPWVbMF0scz1lWzFdLGw9ZVsyXSxjPWVbM107cmV0dXJuW3Iqby1uKnMtaSpsLWEqYyxyKnMrbipvK2kqYy1hKmwscipsLW4qYytpKm8rYSpzLHIqYytuKmwtaSpzK2Eqb119ZnVuY3Rpb24geSh0LGUpe2lmKHQmJmUpe3ZhciByPWZ1bmN0aW9uKHQsZSl7cmV0dXJuW3RbMV0qZVsyXS10WzJdKmVbMV0sdFsyXSplWzBdLXRbMF0qZVsyXSx0WzBdKmVbMV0tdFsxXSplWzBdXX0odCxlKSxuPU1hdGguc3FydChrKHIscikpLGk9LjUqTWF0aC5hY29zKE1hdGgubWF4KC0xLE1hdGgubWluKDEsayh0LGUpKSkpLGE9TWF0aC5zaW4oaSkvbjtyZXR1cm4gbiYmW01hdGguY29zKGkpLHJbMl0qYSwtclsxXSphLHJbMF0qYV19fWZ1bmN0aW9uIHgodCxlLHIpe3ZhciBuPXcoZSwyLHRbMF0pO249dyhuLDEsdFsxXSksbj13KG4sMCx0WzJdLXJbMl0pO3ZhciBpLGEsbz1lWzBdLGw9ZVsxXSxjPWVbMl0sdT1uWzBdLGY9blsxXSxoPW5bMl0scD1NYXRoLmF0YW4yKGwsbykqcyxkPU1hdGguc3FydChvKm8rbCpsKTtNYXRoLmFicyhmKT5kPyhhPShmPjA/OTA6LTkwKS1wLGk9MCk6KGE9TWF0aC5hc2luKGYvZCkqcy1wLGk9TWF0aC5zcXJ0KGQqZC1mKmYpKTt2YXIgbT0xODAtYS0yKnAsZz0oTWF0aC5hdGFuMihoLHUpLU1hdGguYXRhbjIoYyxpKSkqcyx2PShNYXRoLmF0YW4yKGgsdSktTWF0aC5hdGFuMihjLC1pKSkqcztyZXR1cm4gYihyWzBdLHJbMV0sYSxnKTw9YihyWzBdLHJbMV0sbSx2KT9bYSxnLHJbMl1dOlttLHYsclsyXV19ZnVuY3Rpb24gYih0LGUscixuKXt2YXIgaT1fKHItdCksYT1fKG4tZSk7cmV0dXJuIE1hdGguc3FydChpKmkrYSphKX1mdW5jdGlvbiBfKHQpe3JldHVybih0JTM2MCs1NDApJTM2MC0xODB9ZnVuY3Rpb24gdyh0LGUscil7dmFyIG49cipvLGk9dC5zbGljZSgpLGE9MD09PWU/MTowLHM9Mj09PWU/MToyLGw9TWF0aC5jb3MobiksYz1NYXRoLnNpbihuKTtyZXR1cm4gaVthXT10W2FdKmwtdFtzXSpjLGlbc109dFtzXSpsK3RbYV0qYyxpfWZ1bmN0aW9uIFQodCl7cmV0dXJuW01hdGguYXRhbjIoMioodFswXSp0WzFdK3RbMl0qdFszXSksMS0yKih0WzFdKnRbMV0rdFsyXSp0WzJdKSkqcyxNYXRoLmFzaW4oTWF0aC5tYXgoLTEsTWF0aC5taW4oMSwyKih0WzBdKnRbMl0tdFszXSp0WzFdKSkpKSpzLE1hdGguYXRhbjIoMioodFswXSp0WzNdK3RbMV0qdFsyXSksMS0yKih0WzJdKnRbMl0rdFszXSp0WzNdKSkqc119ZnVuY3Rpb24gayh0LGUpe2Zvcih2YXIgcj0wLG49MCxpPXQubGVuZ3RoO248aTsrK24pcis9dFtuXSplW25dO3JldHVybiByfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQucHJvamVjdGlvbjtyZXR1cm4oZS5faXNTY29wZWQ/aDplLl9pc0NsaXBwZWQ/ZDpwKSh0LHIpfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiQHBsb3RseS9kMyI6NTh9XSw4NjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcmVnaXN0cnkiKSxpPXQoIi4vY2FydGVzaWFuL2NvbnN0YW50cyIpLlNVQlBMT1RfUEFUVEVSTjtyLmdldFN1YnBsb3RDYWxjRGF0YT1mdW5jdGlvbih0LGUscil7dmFyIGk9bi5zdWJwbG90c1JlZ2lzdHJ5W2VdO2lmKCFpKXJldHVybltdO2Zvcih2YXIgYT1pLmF0dHIsbz1bXSxzPTA7czx0Lmxlbmd0aDtzKyspe3ZhciBsPXRbc107bFswXS50cmFjZVthXT09PXImJm8ucHVzaChsKX1yZXR1cm4gb30sci5nZXRNb2R1bGVDYWxjRGF0YT1mdW5jdGlvbih0LGUpe3ZhciByLGk9W10sYT1bXTtpZighKHI9InN0cmluZyI9PXR5cGVvZiBlP24uZ2V0TW9kdWxlKGUpLnBsb3Q6ImZ1bmN0aW9uIj09dHlwZW9mIGU/ZTplLnBsb3QpKXJldHVybltpLHRdO2Zvcih2YXIgbz0wO288dC5sZW5ndGg7bysrKXt2YXIgcz10W29dLGw9c1swXS50cmFjZTshMD09PWwudmlzaWJsZSYmMCE9PWwuX2xlbmd0aCYmKGwuX21vZHVsZS5wbG90PT09cj9pLnB1c2gocyk6YS5wdXNoKHMpKX1yZXR1cm5baSxhXX0sci5nZXRTdWJwbG90RGF0YT1mdW5jdGlvbih0LGUscil7aWYoIW4uc3VicGxvdHNSZWdpc3RyeVtlXSlyZXR1cm5bXTt2YXIgYSxvLHMsbD1uLnN1YnBsb3RzUmVnaXN0cnlbZV0uYXR0cixjPVtdO2lmKCJnbDJkIj09PWUpe3ZhciB1PXIubWF0Y2goaSk7bz0ieCIrdVsxXSxzPSJ5Iit1WzJdfWZvcih2YXIgZj0wO2Y8dC5sZW5ndGg7ZisrKWE9dFtmXSwiZ2wyZCI9PT1lJiZuLnRyYWNlSXMoYSwiZ2wyZCIpP2FbbFswXV09PT1vJiZhW2xbMV1dPT09cyYmYy5wdXNoKGEpOmFbbF09PT1yJiZjLnB1c2goYSk7cmV0dXJuIGN9fSx7Ii4uL3JlZ2lzdHJ5Ijo5MDQsIi4vY2FydGVzaWFuL2NvbnN0YW50cyI6ODM0fV0sODY1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIm1vdXNlLWNoYW5nZSIpLGk9dCgibW91c2Utd2hlZWwiKSxhPXQoIm1vdXNlLWV2ZW50LW9mZnNldCIpLG89dCgiLi4vY2FydGVzaWFuL2NvbnN0YW50cyIpLHM9dCgiaGFzLXBhc3NpdmUtZXZlbnRzIik7ZnVuY3Rpb24gbCh0LGUpe3RoaXMuZWxlbWVudD10LHRoaXMucGxvdD1lLHRoaXMubW91c2VMaXN0ZW5lcj1udWxsLHRoaXMud2hlZWxMaXN0ZW5lcj1udWxsLHRoaXMubGFzdElucHV0VGltZT1EYXRlLm5vdygpLHRoaXMubGFzdFBvcz1bMCwwXSx0aGlzLmJveEVuYWJsZWQ9ITEsdGhpcy5ib3hJbml0ZWQ9ITEsdGhpcy5ib3hTdGFydD1bMCwwXSx0aGlzLmJveEVuZD1bMCwwXSx0aGlzLmRyYWdTdGFydD1bMCwwXX1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5tb3VzZUNvbnRhaW5lcixyPXQuZ2xwbG90LGM9bmV3IGwoZSxyKTtmdW5jdGlvbiB1KCl7dC54YXhpcy5hdXRvcmFuZ2U9ITEsdC55YXhpcy5hdXRvcmFuZ2U9ITF9ZnVuY3Rpb24gZihlLG4saSl7dmFyIGEscyxsPXQuY2FsY0RhdGFCb3goKSxmPXIudmlld0JveCxoPWMubGFzdFBvc1swXSxwPWMubGFzdFBvc1sxXSxkPW8uTUlORFJBRypyLnBpeGVsUmF0aW8sbT1vLk1JTlpPT00qci5waXhlbFJhdGlvO2Z1bmN0aW9uIGcoZSxyLG4pe3ZhciBpPU1hdGgubWluKHIsbiksYT1NYXRoLm1heChyLG4pO2khPT1hPyhsW2VdPWksbFtlKzJdPWEsYy5kYXRhQm94PWwsdC5zZXRSYW5nZXMobCkpOih0LnNlbGVjdEJveC5zZWxlY3RCb3g9WzAsMCwxLDFdLHQuZ2xwbG90LnNldERpcnR5KCkpfXN3aXRjaChuKj1yLnBpeGVsUmF0aW8saSo9ci5waXhlbFJhdGlvLGk9ZlszXS1mWzFdLWksdC5mdWxsTGF5b3V0LmRyYWdtb2RlKXtjYXNlInpvb20iOmlmKGUpe3ZhciB2PW4vKGZbMl0tZlswXSkqKGxbMl0tbFswXSkrbFswXSx5PWkvKGZbM10tZlsxXSkqKGxbM10tbFsxXSkrbFsxXTtjLmJveEluaXRlZHx8KGMuYm94U3RhcnRbMF09dixjLmJveFN0YXJ0WzFdPXksYy5kcmFnU3RhcnRbMF09bixjLmRyYWdTdGFydFsxXT1pKSxjLmJveEVuZFswXT12LGMuYm94RW5kWzFdPXksYy5ib3hJbml0ZWQ9ITAsYy5ib3hFbmFibGVkfHxjLmJveFN0YXJ0WzBdPT09Yy5ib3hFbmRbMF0mJmMuYm94U3RhcnRbMV09PT1jLmJveEVuZFsxXXx8KGMuYm94RW5hYmxlZD0hMCk7dmFyIHg9TWF0aC5hYnMoYy5kcmFnU3RhcnRbMF0tbik8bSxiPU1hdGguYWJzKGMuZHJhZ1N0YXJ0WzFdLWkpPG07aWYoIWZ1bmN0aW9uKCl7Zm9yKHZhciBlPXQuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQuX2F4aXNDb25zdHJhaW50R3JvdXBzLHI9dC54YXhpcy5faWQsbj10LnlheGlzLl9pZCxpPTA7aTxlLmxlbmd0aDtpKyspaWYoLTEhPT1lW2ldW3JdKXtpZigtMSE9PWVbaV1bbl0pcmV0dXJuITA7YnJlYWt9cmV0dXJuITF9KCl8fHgmJmIpeCYmKGMuYm94RW5kWzBdPWMuYm94U3RhcnRbMF0pLGImJihjLmJveEVuZFsxXT1jLmJveFN0YXJ0WzFdKTtlbHNle2E9Yy5ib3hFbmRbMF0tYy5ib3hTdGFydFswXSxzPWMuYm94RW5kWzFdLWMuYm94U3RhcnRbMV07dmFyIF89KGxbM10tbFsxXSkvKGxbMl0tbFswXSk7TWF0aC5hYnMoYSpfKT5NYXRoLmFicyhzKT8oYy5ib3hFbmRbMV09Yy5ib3hTdGFydFsxXStNYXRoLmFicyhhKSpfKihzPj0wPzE6LTEpLGMuYm94RW5kWzFdPGxbMV0/KGMuYm94RW5kWzFdPWxbMV0sYy5ib3hFbmRbMF09Yy5ib3hTdGFydFswXSsobFsxXS1jLmJveFN0YXJ0WzFdKS9NYXRoLmFicyhfKSk6Yy5ib3hFbmRbMV0+bFszXSYmKGMuYm94RW5kWzFdPWxbM10sYy5ib3hFbmRbMF09Yy5ib3hTdGFydFswXSsobFszXS1jLmJveFN0YXJ0WzFdKS9NYXRoLmFicyhfKSkpOihjLmJveEVuZFswXT1jLmJveFN0YXJ0WzBdK01hdGguYWJzKHMpL18qKGE+PTA/MTotMSksYy5ib3hFbmRbMF08bFswXT8oYy5ib3hFbmRbMF09bFswXSxjLmJveEVuZFsxXT1jLmJveFN0YXJ0WzFdKyhsWzBdLWMuYm94U3RhcnRbMF0pKk1hdGguYWJzKF8pKTpjLmJveEVuZFswXT5sWzJdJiYoYy5ib3hFbmRbMF09bFsyXSxjLmJveEVuZFsxXT1jLmJveFN0YXJ0WzFdKyhsWzJdLWMuYm94U3RhcnRbMF0pKk1hdGguYWJzKF8pKSl9fWVsc2UgYy5ib3hFbmFibGVkPyhhPWMuYm94U3RhcnRbMF0hPT1jLmJveEVuZFswXSxzPWMuYm94U3RhcnRbMV0hPT1jLmJveEVuZFsxXSxhfHxzPyhhJiYoZygwLGMuYm94U3RhcnRbMF0sYy5ib3hFbmRbMF0pLHQueGF4aXMuYXV0b3JhbmdlPSExKSxzJiYoZygxLGMuYm94U3RhcnRbMV0sYy5ib3hFbmRbMV0pLHQueWF4aXMuYXV0b3JhbmdlPSExKSx0LnJlbGF5b3V0Q2FsbGJhY2soKSk6dC5nbHBsb3Quc2V0RGlydHkoKSxjLmJveEVuYWJsZWQ9ITEsYy5ib3hJbml0ZWQ9ITEpOmMuYm94SW5pdGVkJiYoYy5ib3hJbml0ZWQ9ITEpO2JyZWFrO2Nhc2UicGFuIjpjLmJveEVuYWJsZWQ9ITEsYy5ib3hJbml0ZWQ9ITEsZT8oYy5wYW5uaW5nfHwoYy5kcmFnU3RhcnRbMF09bixjLmRyYWdTdGFydFsxXT1pKSxNYXRoLmFicyhjLmRyYWdTdGFydFswXS1uKTxkJiYobj1jLmRyYWdTdGFydFswXSksTWF0aC5hYnMoYy5kcmFnU3RhcnRbMV0taSk8ZCYmKGk9Yy5kcmFnU3RhcnRbMV0pLGE9KGgtbikqKGxbMl0tbFswXSkvKHIudmlld0JveFsyXS1yLnZpZXdCb3hbMF0pLHM9KHAtaSkqKGxbM10tbFsxXSkvKHIudmlld0JveFszXS1yLnZpZXdCb3hbMV0pLGxbMF0rPWEsbFsyXSs9YSxsWzFdKz1zLGxbM10rPXMsdC5zZXRSYW5nZXMobCksYy5wYW5uaW5nPSEwLGMubGFzdElucHV0VGltZT1EYXRlLm5vdygpLHUoKSx0LmNhbWVyYUNoYW5nZWQoKSx0LmhhbmRsZUFubm90YXRpb25zKCkpOmMucGFubmluZyYmKGMucGFubmluZz0hMSx0LnJlbGF5b3V0Q2FsbGJhY2soKSl9Yy5sYXN0UG9zWzBdPW4sYy5sYXN0UG9zWzFdPWl9cmV0dXJuIGMubW91c2VMaXN0ZW5lcj1uKGUsZiksZS5hZGRFdmVudExpc3RlbmVyKCJ0b3VjaHN0YXJ0IiwoZnVuY3Rpb24odCl7dmFyIHI9YSh0LmNoYW5nZWRUb3VjaGVzWzBdLGUpO2YoMCxyWzBdLHJbMV0pLGYoMSxyWzBdLHJbMV0pLHQucHJldmVudERlZmF1bHQoKX0pLCEhcyYme3Bhc3NpdmU6ITF9KSxlLmFkZEV2ZW50TGlzdGVuZXIoInRvdWNobW92ZSIsKGZ1bmN0aW9uKHQpe3QucHJldmVudERlZmF1bHQoKTt2YXIgcj1hKHQuY2hhbmdlZFRvdWNoZXNbMF0sZSk7ZigxLHJbMF0sclsxXSksdC5wcmV2ZW50RGVmYXVsdCgpfSksISFzJiZ7cGFzc2l2ZTohMX0pLGUuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hlbmQiLChmdW5jdGlvbih0KXtmKDAsYy5sYXN0UG9zWzBdLGMubGFzdFBvc1sxXSksdC5wcmV2ZW50RGVmYXVsdCgpfSksISFzJiZ7cGFzc2l2ZTohMX0pLGMud2hlZWxMaXN0ZW5lcj1pKGUsKGZ1bmN0aW9uKGUsbil7aWYoIXQuc2Nyb2xsWm9vbSlyZXR1cm4hMTt2YXIgaT10LmNhbGNEYXRhQm94KCksYT1yLnZpZXdCb3gsbz1jLmxhc3RQb3NbMF0scz1jLmxhc3RQb3NbMV0sbD1NYXRoLmV4cCg1Km4vKGFbM10tYVsxXSkpLGY9by8oYVsyXS1hWzBdKSooaVsyXS1pWzBdKStpWzBdLGg9cy8oYVszXS1hWzFdKSooaVszXS1pWzFdKStpWzFdO3JldHVybiBpWzBdPShpWzBdLWYpKmwrZixpWzJdPShpWzJdLWYpKmwrZixpWzFdPShpWzFdLWgpKmwraCxpWzNdPShpWzNdLWgpKmwraCx0LnNldFJhbmdlcyhpKSxjLmxhc3RJbnB1dFRpbWU9RGF0ZS5ub3coKSx1KCksdC5jYW1lcmFDaGFuZ2VkKCksdC5oYW5kbGVBbm5vdGF0aW9ucygpLHQucmVsYXlvdXRDYWxsYmFjaygpLCEwfSksITApLGN9fSx7Ii4uL2NhcnRlc2lhbi9jb25zdGFudHMiOjgzNCwiaGFzLXBhc3NpdmUtZXZlbnRzIjo0MjYsIm1vdXNlLWNoYW5nZSI6NDQ5LCJtb3VzZS1ldmVudC1vZmZzZXQiOjQ1MCwibW91c2Utd2hlZWwiOjQ1Mn1dLDg2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpO2Z1bmN0aW9uIGEodCl7dGhpcy5zY2VuZT10LHRoaXMuZ2w9dC5nbCx0aGlzLnBpeGVsUmF0aW89dC5waXhlbFJhdGlvLHRoaXMuc2NyZWVuQm94PVswLDAsMSwxXSx0aGlzLnZpZXdCb3g9WzAsMCwxLDFdLHRoaXMuZGF0YUJveD1bLTEsLTEsMSwxXSx0aGlzLmJvcmRlckxpbmVFbmFibGU9WyExLCExLCExLCExXSx0aGlzLmJvcmRlckxpbmVXaWR0aD1bMSwxLDEsMV0sdGhpcy5ib3JkZXJMaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aWNrcz1bW10sW11dLHRoaXMudGlja0VuYWJsZT1bITAsITAsITEsITFdLHRoaXMudGlja1BhZD1bMTUsMTUsMTUsMTVdLHRoaXMudGlja0FuZ2xlPVswLDAsMCwwXSx0aGlzLnRpY2tDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnRpY2tNYXJrTGVuZ3RoPVswLDAsMCwwXSx0aGlzLnRpY2tNYXJrV2lkdGg9WzAsMCwwLDBdLHRoaXMudGlja01hcmtDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLmxhYmVscz1bIngiLCJ5Il0sdGhpcy5sYWJlbEVuYWJsZT1bITAsITAsITEsITFdLHRoaXMubGFiZWxBbmdsZT1bMCxNYXRoLlBJLzIsMCwzKk1hdGguUEkvMl0sdGhpcy5sYWJlbFBhZD1bMTUsMTUsMTUsMTVdLHRoaXMubGFiZWxTaXplPVsxMiwxMl0sdGhpcy5sYWJlbEZvbnQ9WyJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiJdLHRoaXMubGFiZWxDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV0sWzAsMCwwLDFdXSx0aGlzLnRpdGxlPSIiLHRoaXMudGl0bGVFbmFibGU9ITAsdGhpcy50aXRsZUNlbnRlcj1bMCwwLDAsMF0sdGhpcy50aXRsZUFuZ2xlPTAsdGhpcy50aXRsZUNvbG9yPVswLDAsMCwxXSx0aGlzLnRpdGxlRm9udD0ic2Fucy1zZXJpZiIsdGhpcy50aXRsZVNpemU9MTgsdGhpcy5ncmlkTGluZUVuYWJsZT1bITAsITBdLHRoaXMuZ3JpZExpbmVDb2xvcj1bWzAsMCwwLC41XSxbMCwwLDAsLjVdXSx0aGlzLmdyaWRMaW5lV2lkdGg9WzEsMV0sdGhpcy56ZXJvTGluZUVuYWJsZT1bITAsITBdLHRoaXMuemVyb0xpbmVXaWR0aD1bMSwxXSx0aGlzLnplcm9MaW5lQ29sb3I9W1swLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuYm9yZGVyQ29sb3I9WzAsMCwwLDBdLHRoaXMuYmFja2dyb3VuZENvbG9yPVswLDAsMCwwXSx0aGlzLnN0YXRpYz10aGlzLnNjZW5lLnN0YXRpY1Bsb3R9dmFyIG89YS5wcm90b3R5cGUscz1bInhheGlzIiwieWF4aXMiXTtvLm1lcmdlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixhLG8sbCxjLHUsZixoLHA7Zm9yKHRoaXMudGl0bGVFbmFibGU9ITEsdGhpcy5iYWNrZ3JvdW5kQ29sb3I9aSh0LnBsb3RfYmdjb2xvciksaD0wO2g8MjsrK2gpe3ZhciBkPShlPXNbaF0pLmNoYXJBdCgwKTtmb3Iobj0ocj10W3RoaXMuc2NlbmVbZV0uX25hbWVdKS50aXRsZS50ZXh0PT09dGhpcy5zY2VuZS5mdWxsTGF5b3V0Ll9kZmx0VGl0bGVbZF0/IiI6ci50aXRsZS50ZXh0LHA9MDtwPD0yO3ArPTIpdGhpcy5sYWJlbEVuYWJsZVtoK3BdPSExLHRoaXMubGFiZWxzW2grcF09bix0aGlzLmxhYmVsQ29sb3JbaCtwXT1pKHIudGl0bGUuZm9udC5jb2xvciksdGhpcy5sYWJlbEZvbnRbaCtwXT1yLnRpdGxlLmZvbnQuZmFtaWx5LHRoaXMubGFiZWxTaXplW2grcF09ci50aXRsZS5mb250LnNpemUsdGhpcy5sYWJlbFBhZFtoK3BdPXRoaXMuZ2V0TGFiZWxQYWQoZSxyKSx0aGlzLnRpY2tFbmFibGVbaCtwXT0hMSx0aGlzLnRpY2tDb2xvcltoK3BdPWkoKHIudGlja2ZvbnR8fHt9KS5jb2xvciksdGhpcy50aWNrQW5nbGVbaCtwXT0iYXV0byI9PT1yLnRpY2thbmdsZT8wOk1hdGguUEkqLXIudGlja2FuZ2xlLzE4MCx0aGlzLnRpY2tQYWRbaCtwXT10aGlzLmdldFRpY2tQYWQociksdGhpcy50aWNrTWFya0xlbmd0aFtoK3BdPTAsdGhpcy50aWNrTWFya1dpZHRoW2grcF09ci50aWNrd2lkdGh8fDAsdGhpcy50aWNrTWFya0NvbG9yW2grcF09aShyLnRpY2tjb2xvciksdGhpcy5ib3JkZXJMaW5lRW5hYmxlW2grcF09ITEsdGhpcy5ib3JkZXJMaW5lQ29sb3JbaCtwXT1pKHIubGluZWNvbG9yKSx0aGlzLmJvcmRlckxpbmVXaWR0aFtoK3BdPXIubGluZXdpZHRofHwwO2M9dGhpcy5oYXNTaGFyZWRBeGlzKHIpLG89dGhpcy5oYXNBeGlzSW5EZmx0UG9zKGUscikmJiFjLGw9dGhpcy5oYXNBeGlzSW5BbHRyUG9zKGUscikmJiFjLGE9ci5taXJyb3J8fCExLHU9Yz8tMSE9PVN0cmluZyhhKS5pbmRleE9mKCJhbGwiKTohIWEsZj1jPyJhbGx0aWNrcyI9PT1hOi0xIT09U3RyaW5nKGEpLmluZGV4T2YoInRpY2tzIiksbz90aGlzLmxhYmVsRW5hYmxlW2hdPSEwOmwmJih0aGlzLmxhYmVsRW5hYmxlW2grMl09ITApLG8/dGhpcy50aWNrRW5hYmxlW2hdPXIuc2hvd3RpY2tsYWJlbHM6bCYmKHRoaXMudGlja0VuYWJsZVtoKzJdPXIuc2hvd3RpY2tsYWJlbHMpLChvfHx1KSYmKHRoaXMuYm9yZGVyTGluZUVuYWJsZVtoXT1yLnNob3dsaW5lKSwobHx8dSkmJih0aGlzLmJvcmRlckxpbmVFbmFibGVbaCsyXT1yLnNob3dsaW5lKSwob3x8ZikmJih0aGlzLnRpY2tNYXJrTGVuZ3RoW2hdPXRoaXMuZ2V0VGlja01hcmtMZW5ndGgocikpLChsfHxmKSYmKHRoaXMudGlja01hcmtMZW5ndGhbaCsyXT10aGlzLmdldFRpY2tNYXJrTGVuZ3RoKHIpKSx0aGlzLmdyaWRMaW5lRW5hYmxlW2hdPXIuc2hvd2dyaWQsdGhpcy5ncmlkTGluZUNvbG9yW2hdPWkoci5ncmlkY29sb3IpLHRoaXMuZ3JpZExpbmVXaWR0aFtoXT1yLmdyaWR3aWR0aCx0aGlzLnplcm9MaW5lRW5hYmxlW2hdPXIuemVyb2xpbmUsdGhpcy56ZXJvTGluZUNvbG9yW2hdPWkoci56ZXJvbGluZWNvbG9yKSx0aGlzLnplcm9MaW5lV2lkdGhbaF09ci56ZXJvbGluZXdpZHRofX0sby5oYXNTaGFyZWRBeGlzPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2NlbmUscj1lLmZ1bGxMYXlvdXQuX3N1YnBsb3RzLmdsMmQ7cmV0dXJuIDAhPT1uLmZpbmRTdWJwbG90c1dpdGhBeGlzKHIsdCkuaW5kZXhPZihlLmlkKX0sby5oYXNBeGlzSW5EZmx0UG9zPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5zaWRlO3JldHVybiJ4YXhpcyI9PT10PyJib3R0b20iPT09cjoieWF4aXMiPT09dD8ibGVmdCI9PT1yOnZvaWQgMH0sby5oYXNBeGlzSW5BbHRyUG9zPWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5zaWRlO3JldHVybiJ4YXhpcyI9PT10PyJ0b3AiPT09cjoieWF4aXMiPT09dD8icmlnaHQiPT09cjp2b2lkIDB9LG8uZ2V0TGFiZWxQYWQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnRpdGxlLmZvbnQuc2l6ZSxuPWUuc2hvd3RpY2tsYWJlbHM7cmV0dXJuInhheGlzIj09PXQ/InRvcCI9PT1lLnNpZGU/ciooMS41KyhuPzE6MCkpLTEwOnIqKDEuNSsobj8uNTowKSktMTA6InlheGlzIj09PXQ/InJpZ2h0Ij09PWUuc2lkZT8xMCtyKigxLjUrKG4/MTouNSkpOjEwK3IqKDEuNSsobj8uNTowKSk6dm9pZCAwfSxvLmdldFRpY2tQYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIm91dHNpZGUiPT09dC50aWNrcz8xMCt0LnRpY2tsZW46MTV9LG8uZ2V0VGlja01hcmtMZW5ndGg9ZnVuY3Rpb24odCl7aWYoIXQudGlja3MpcmV0dXJuIDA7dmFyIGU9dC50aWNrbGVuO3JldHVybiJpbnNpZGUiPT09dC50aWNrcz8tZTplfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBhKHQpfX0seyIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo4MDEsIi4uL2NhcnRlc2lhbi9heGVzIjo4Mjd9XSw4Njc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGk9dCgiLi9zY2VuZTJkIiksYT10KCIuLi9sYXlvdXRfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxzPXQoIi4uL2NhcnRlc2lhbi9jb25zdGFudHMiKSxsPXQoIi4uL2NhcnRlc2lhbiIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9meC9sYXlvdXRfYXR0cmlidXRlcyIpLHU9dCgiLi4vZ2V0X2RhdGEiKS5nZXRTdWJwbG90RGF0YTtyLm5hbWU9ImdsMmQiLHIuYXR0cj1bInhheGlzIiwieWF4aXMiXSxyLmlkUm9vdD1bIngiLCJ5Il0sci5pZFJlZ2V4PXMuaWRSZWdleCxyLmF0dHJSZWdleD1zLmF0dHJSZWdleCxyLmF0dHJpYnV0ZXM9dCgiLi4vY2FydGVzaWFuL2F0dHJpYnV0ZXMiKSxyLnN1cHBseUxheW91dERlZmF1bHRzPWZ1bmN0aW9uKHQsZSxyKXtlLl9oYXMoImNhcnRlc2lhbiIpfHxsLnN1cHBseUxheW91dERlZmF1bHRzKHQsZSxyKX0sci5sYXlvdXRBdHRyT3ZlcnJpZGVzPW4obC5sYXlvdXRBdHRyaWJ1dGVzLCJwbG90IiwiZnJvbS1yb290Iiksci5iYXNlTGF5b3V0QXR0ck92ZXJyaWRlcz1uKHtwbG90X2JnY29sb3I6YS5wbG90X2JnY29sb3IsaG92ZXJsYWJlbDpjLmhvdmVybGFiZWx9LCJwbG90IiwibmVzdGVkIiksci5wbG90PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5fZnVsbERhdGEsbj1lLl9zdWJwbG90cy5nbDJkLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIG89blthXSxzPWUuX3Bsb3RzW29dLGw9dShyLCJnbDJkIixvKSxjPXMuX3NjZW5lMmQ7dm9pZCAwPT09YyYmKGM9bmV3IGkoe2lkOm8sZ3JhcGhEaXY6dCxjb250YWluZXI6dC5xdWVyeVNlbGVjdG9yKCIuZ2wtY29udGFpbmVyIiksc3RhdGljUGxvdDp0Ll9jb250ZXh0LnN0YXRpY1Bsb3QscGxvdEdsUGl4ZWxSYXRpbzp0Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW99LGUpLHMuX3NjZW5lMmQ9YyksYy5wbG90KGwsdC5jYWxjZGF0YSxlLHQubGF5b3V0KX19LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPW4uX3N1YnBsb3RzLmdsMmR8fFtdLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXSxzPW4uX3Bsb3RzW29dO2lmKHMuX3NjZW5lMmQpe3ZhciBjPXUodCwiZ2wyZCIsbyk7MD09PWMubGVuZ3RoJiYocy5fc2NlbmUyZC5kZXN0cm95KCksZGVsZXRlIG4uX3Bsb3RzW29dKX19bC5jbGVhbi5hcHBseSh0aGlzLGFyZ3VtZW50cyl9LHIuZHJhd0ZyYW1ld29yaz1mdW5jdGlvbih0KXt0Ll9jb250ZXh0LnN0YXRpY1Bsb3R8fGwuZHJhd0ZyYW1ld29yayh0KX0sci50b1NWRz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLmdsMmQsbj0wO248ci5sZW5ndGg7bisrKXt2YXIgaT1lLl9wbG90c1tyW25dXS5fc2NlbmUyZCxhPWkudG9JbWFnZSgicG5nIik7ZS5fZ2xpbWFnZXMuYXBwZW5kKCJzdmc6aW1hZ2UiKS5hdHRyKHt4bWxuczpvLnN2ZywieGxpbms6aHJlZiI6YSx4OjAseTowLHdpZHRoOiIxMDAlIixoZWlnaHQ6IjEwMCUiLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSksaS5kZXN0cm95KCl9fSxyLnVwZGF0ZUZ4PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS5fc3VicGxvdHMuZ2wyZCxuPTA7bjxyLmxlbmd0aDtuKyspe2UuX3Bsb3RzW3Jbbl1dLl9zY2VuZTJkLnVwZGF0ZUZ4KGUuZHJhZ21vZGUpfX19LHsiLi4vLi4vY29tcG9uZW50cy9meC9sYXlvdXRfYXR0cmlidXRlcyI6NjgwLCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NzUzLCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo4MDksIi4uL2NhcnRlc2lhbiI6ODQxLCIuLi9jYXJ0ZXNpYW4vYXR0cmlidXRlcyI6ODI1LCIuLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo4MzQsIi4uL2dldF9kYXRhIjo4NjQsIi4uL2xheW91dF9hdHRyaWJ1dGVzIjo4ODEsIi4vc2NlbmUyZCI6ODY4fV0sODY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxsPXQoImdsLXBsb3QyZCIpLGM9dCgiZ2wtc3Bpa2VzMmQiKSx1PXQoImdsLXNlbGVjdC1ib3giKSxmPXQoIndlYmdsLWNvbnRleHQiKSxoPXQoIi4vY29udmVydCIpLHA9dCgiLi9jYW1lcmEiKSxkPXQoIi4uLy4uL2xpYi9zaG93X25vX3dlYmdsX21zZyIpLG09dCgiLi4vY2FydGVzaWFuL2NvbnN0cmFpbnRzIiksZz1tLmVuZm9yY2Usdj1tLmNsZWFuLHk9dCgiLi4vY2FydGVzaWFuL2F1dG9yYW5nZSIpLmRvQXV0b1JhbmdlLHg9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIiksYj14LmRyYXdNb2RlLF89eC5zZWxlY3RNb2RlLHc9WyJ4YXhpcyIsInlheGlzIl0sVD10KCIuLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIikuU1VCUExPVF9QQVRURVJOO2Z1bmN0aW9uIGsodCxlKXt0aGlzLmNvbnRhaW5lcj10LmNvbnRhaW5lcix0aGlzLmdyYXBoRGl2PXQuZ3JhcGhEaXYsdGhpcy5waXhlbFJhdGlvPXQucGxvdEdsUGl4ZWxSYXRpb3x8d2luZG93LmRldmljZVBpeGVsUmF0aW8sdGhpcy5pZD10LmlkLHRoaXMuc3RhdGljUGxvdD0hIXQuc3RhdGljUGxvdCx0aGlzLnNjcm9sbFpvb209dGhpcy5ncmFwaERpdi5fY29udGV4dC5fc2Nyb2xsWm9vbS5jYXJ0ZXNpYW4sdGhpcy5mdWxsRGF0YT1udWxsLHRoaXMudXBkYXRlUmVmcyhlKSx0aGlzLm1ha2VGcmFtZXdvcmsoKSx0aGlzLnN0b3BwZWR8fCh0aGlzLmdscGxvdE9wdGlvbnM9aCh0aGlzKSx0aGlzLmdscGxvdE9wdGlvbnMubWVyZ2UoZSksdGhpcy5nbHBsb3Q9bCh0aGlzLmdscGxvdE9wdGlvbnMpLHRoaXMuY2FtZXJhPXAodGhpcyksdGhpcy50cmFjZXM9e30sdGhpcy5zcGlrZXM9Yyh0aGlzLmdscGxvdCksdGhpcy5zZWxlY3RCb3g9dSh0aGlzLmdscGxvdCx7aW5uZXJGaWxsOiExLG91dGVyRmlsbDohMH0pLHRoaXMubGFzdEJ1dHRvblN0YXRlPTAsdGhpcy5waWNrUmVzdWx0PW51bGwsdGhpcy5pc01vdXNlT3Zlcj0hMCx0aGlzLnN0b3BwZWQ9ITEsdGhpcy5yZWRyYXc9dGhpcy5kcmF3LmJpbmQodGhpcyksdGhpcy5yZWRyYXcoKSl9ZS5leHBvcnRzPWs7dmFyIEE9ay5wcm90b3R5cGU7QS5tYWtlRnJhbWV3b3JrPWZ1bmN0aW9uKCl7aWYodGhpcy5zdGF0aWNQbG90KXtpZighKGl8fChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGk9Zih7Y2FudmFzOm4scHJlc2VydmVEcmF3aW5nQnVmZmVyOiExLHByZW11bHRpcGxpZWRBbHBoYTohMCxhbnRpYWxpYXM6ITB9KSkpKXRocm93IG5ldyBFcnJvcigiRXJyb3IgY3JlYXRpbmcgc3RhdGljIGNhbnZhcy9jb250ZXh0IGZvciBpbWFnZSBzZXJ2ZXIiKTt0aGlzLmNhbnZhcz1uLHRoaXMuZ2w9aX1lbHNle3ZhciB0PXRoaXMuY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoIi5nbC1jYW52YXMtZm9jdXMiKSxlPWYoe2NhbnZhczp0LHByZXNlcnZlRHJhd2luZ0J1ZmZlcjohMCxwcmVtdWx0aXBsaWVkQWxwaGE6ITB9KTtpZighZSlyZXR1cm4gZCh0aGlzKSx2b2lkKHRoaXMuc3RvcHBlZD0hMCk7dGhpcy5jYW52YXM9dCx0aGlzLmdsPWV9dmFyIHI9dGhpcy5jYW52YXM7ci5zdHlsZS53aWR0aD0iMTAwJSIsci5zdHlsZS5oZWlnaHQ9IjEwMCUiLHIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixyLnN0eWxlLnRvcD0iMHB4IixyLnN0eWxlLmxlZnQ9IjBweCIsci5zdHlsZVsicG9pbnRlci1ldmVudHMiXT0ibm9uZSIsdGhpcy51cGRhdGVTaXplKHIpO3ZhciBhPXRoaXMuc3ZnQ29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTthLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsYS5zdHlsZS50b3A9YS5zdHlsZS5sZWZ0PSIwcHgiLGEuc3R5bGUud2lkdGg9YS5zdHlsZS5oZWlnaHQ9IjEwMCUiLGEuc3R5bGVbInotaW5kZXgiXT0yMCxhLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIjt2YXIgbz10aGlzLm1vdXNlQ29udGFpbmVyPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpO28uc3R5bGUucG9zaXRpb249ImFic29sdXRlIixvLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJhdXRvIix0aGlzLnBpY2tDYW52YXM9dGhpcy5jb250YWluZXIucXVlcnlTZWxlY3RvcigiLmdsLWNhbnZhcy1waWNrIik7dmFyIHM9dGhpcy5jb250YWluZXI7cy5hcHBlbmRDaGlsZChhKSxzLmFwcGVuZENoaWxkKG8pO3ZhciBsPXRoaXM7by5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW91dCIsKGZ1bmN0aW9uKCl7bC5pc01vdXNlT3Zlcj0hMSxsLnVuaG92ZXIoKX0pKSxvLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKCl7bC5pc01vdXNlT3Zlcj0hMH0pKX0sQS50b0ltYWdlPWZ1bmN0aW9uKHQpe3R8fCh0PSJwbmciKSx0aGlzLnN0b3BwZWQ9ITAsdGhpcy5zdGF0aWNQbG90JiZ0aGlzLmNvbnRhaW5lci5hcHBlbmRDaGlsZChuKSx0aGlzLnVwZGF0ZVNpemUodGhpcy5jYW52YXMpO3ZhciBlPXRoaXMuZ2xwbG90LmdsLHI9ZS5kcmF3aW5nQnVmZmVyV2lkdGgsaT1lLmRyYXdpbmdCdWZmZXJIZWlnaHQ7ZS5jbGVhckNvbG9yKDEsMSwxLDApLGUuY2xlYXIoZS5DT0xPUl9CVUZGRVJfQklUfGUuREVQVEhfQlVGRkVSX0JJVCksdGhpcy5nbHBsb3Quc2V0RGlydHkoKSx0aGlzLmdscGxvdC5kcmF3KCksZS5iaW5kRnJhbWVidWZmZXIoZS5GUkFNRUJVRkZFUixudWxsKTt2YXIgYT1uZXcgVWludDhBcnJheShyKmkqNCk7ZS5yZWFkUGl4ZWxzKDAsMCxyLGksZS5SR0JBLGUuVU5TSUdORURfQllURSxhKTtmb3IodmFyIG89MCxzPWktMTtvPHM7KytvLC0tcylmb3IodmFyIGw9MDtsPHI7KytsKWZvcih2YXIgYz0wO2M8NDsrK2Mpe3ZhciB1PWFbNCoocipvK2wpK2NdO2FbNCoocipvK2wpK2NdPWFbNCoocipzK2wpK2NdLGFbNCoocipzK2wpK2NdPXV9dmFyIGY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7Zi53aWR0aD1yLGYuaGVpZ2h0PWk7dmFyIGgscD1mLmdldENvbnRleHQoIjJkIiksZD1wLmNyZWF0ZUltYWdlRGF0YShyLGkpO3N3aXRjaChkLmRhdGEuc2V0KGEpLHAucHV0SW1hZ2VEYXRhKGQsMCwwKSx0KXtjYXNlImpwZWciOmg9Zi50b0RhdGFVUkwoImltYWdlL2pwZWciKTticmVhaztjYXNlIndlYnAiOmg9Zi50b0RhdGFVUkwoImltYWdlL3dlYnAiKTticmVhaztkZWZhdWx0Omg9Zi50b0RhdGFVUkwoImltYWdlL3BuZyIpfXJldHVybiB0aGlzLnN0YXRpY1Bsb3QmJnRoaXMuY29udGFpbmVyLnJlbW92ZUNoaWxkKG4pLGh9LEEudXBkYXRlU2l6ZT1mdW5jdGlvbih0KXt0fHwodD10aGlzLmNhbnZhcyk7dmFyIGU9dGhpcy5waXhlbFJhdGlvLHI9dGhpcy5mdWxsTGF5b3V0LG49ci53aWR0aCxpPXIuaGVpZ2h0LGE9MHxNYXRoLmNlaWwoZSpuKSxvPTB8TWF0aC5jZWlsKGUqaSk7cmV0dXJuIHQud2lkdGg9PT1hJiZ0LmhlaWdodD09PW98fCh0LndpZHRoPWEsdC5oZWlnaHQ9byksdH0sQS5jb21wdXRlVGlja01hcmtzPWZ1bmN0aW9uKCl7dGhpcy54YXhpcy5zZXRTY2FsZSgpLHRoaXMueWF4aXMuc2V0U2NhbGUoKTtmb3IodmFyIHQ9W28uY2FsY1RpY2tzKHRoaXMueGF4aXMpLG8uY2FsY1RpY2tzKHRoaXMueWF4aXMpXSxlPTA7ZTwyOysrZSlmb3IodmFyIHI9MDtyPHRbZV0ubGVuZ3RoOysrcil0W2VdW3JdLnRleHQ9dFtlXVtyXS50ZXh0KyIiO3JldHVybiB0fSxBLnVwZGF0ZVJlZnM9ZnVuY3Rpb24odCl7dGhpcy5mdWxsTGF5b3V0PXQ7dmFyIGU9dGhpcy5pZC5tYXRjaChUKSxyPSJ4YXhpcyIrZVsxXSxuPSJ5YXhpcyIrZVsyXTt0aGlzLnhheGlzPXRoaXMuZnVsbExheW91dFtyXSx0aGlzLnlheGlzPXRoaXMuZnVsbExheW91dFtuXX0sQS5yZWxheW91dENhbGxiYWNrPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ncmFwaERpdixlPXRoaXMueGF4aXMscj10aGlzLnlheGlzLG49dC5sYXlvdXQsaT17fSxvPWlbZS5fbmFtZSsiLnJhbmdlIl09ZS5yYW5nZS5zbGljZSgpLHM9aVtyLl9uYW1lKyIucmFuZ2UiXT1yLnJhbmdlLnNsaWNlKCk7aVtlLl9uYW1lKyIuYXV0b3JhbmdlIl09ZS5hdXRvcmFuZ2UsaVtyLl9uYW1lKyIuYXV0b3JhbmdlIl09ci5hdXRvcmFuZ2UsYS5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0Iix0LmxheW91dCx0Ll9mdWxsTGF5b3V0Ll9wcmVHVUksaSk7dmFyIGw9bltlLl9uYW1lXTtsLnJhbmdlPW8sbC5hdXRvcmFuZ2U9ZS5hdXRvcmFuZ2U7dmFyIGM9bltyLl9uYW1lXTtjLnJhbmdlPXMsYy5hdXRvcmFuZ2U9ci5hdXRvcmFuZ2UsaS5sYXN0SW5wdXRUaW1lPXRoaXMuY2FtZXJhLmxhc3RJbnB1dFRpbWUsdC5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLGkpfSxBLmNhbWVyYUNoYW5nZWQ9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmNhbWVyYTt0aGlzLmdscGxvdC5zZXREYXRhQm94KHRoaXMuY2FsY0RhdGFCb3goKSk7dmFyIGU9dGhpcy5jb21wdXRlVGlja01hcmtzKCk7KGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjwyOysrcil7dmFyIG49dFtyXSxpPWVbcl07aWYobi5sZW5ndGghPT1pLmxlbmd0aClyZXR1cm4hMDtmb3IodmFyIGE9MDthPG4ubGVuZ3RoOysrYSlpZihuW2FdLnghPT1pW2FdLngpcmV0dXJuITB9cmV0dXJuITF9KShlLHRoaXMuZ2xwbG90T3B0aW9ucy50aWNrcykmJih0aGlzLmdscGxvdE9wdGlvbnMudGlja3M9ZSx0aGlzLmdscGxvdE9wdGlvbnMuZGF0YUJveD10LmRhdGFCb3gsdGhpcy5nbHBsb3QudXBkYXRlKHRoaXMuZ2xwbG90T3B0aW9ucyksdGhpcy5oYW5kbGVBbm5vdGF0aW9ucygpKX0sQS5oYW5kbGVBbm5vdGF0aW9ucz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLmdyYXBoRGl2LGU9dGhpcy5mdWxsTGF5b3V0LmFubm90YXRpb25zLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXTtuLnhyZWY9PT10aGlzLnhheGlzLl9pZCYmbi55cmVmPT09dGhpcy55YXhpcy5faWQmJmEuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9ucyIsImRyYXdPbmUiKSh0LHIpfX0sQS5kZXN0cm95PWZ1bmN0aW9uKCl7aWYodGhpcy5nbHBsb3Qpe3ZhciB0PXRoaXMudHJhY2VzO3QmJk9iamVjdC5rZXlzKHQpLm1hcCgoZnVuY3Rpb24oZSl7dFtlXS5kaXNwb3NlKCksZGVsZXRlIHRbZV19KSksdGhpcy5nbHBsb3QuZGlzcG9zZSgpLHRoaXMuY29udGFpbmVyLnJlbW92ZUNoaWxkKHRoaXMuc3ZnQ29udGFpbmVyKSx0aGlzLmNvbnRhaW5lci5yZW1vdmVDaGlsZCh0aGlzLm1vdXNlQ29udGFpbmVyKSx0aGlzLmZ1bGxEYXRhPW51bGwsdGhpcy5nbHBsb3Q9bnVsbCx0aGlzLnN0b3BwZWQ9ITAsdGhpcy5jYW1lcmEubW91c2VMaXN0ZW5lci5lbmFibGVkPSExLHRoaXMubW91c2VDb250YWluZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcigid2hlZWwiLHRoaXMuY2FtZXJhLndoZWVsTGlzdGVuZXIpLHRoaXMuY2FtZXJhPW51bGx9fSxBLnBsb3Q9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMuZ2xwbG90O3RoaXMudXBkYXRlUmVmcyhyKSx0aGlzLnhheGlzLmNsZWFyQ2FsYygpLHRoaXMueWF4aXMuY2xlYXJDYWxjKCksdGhpcy51cGRhdGVUcmFjZXModCxlKSx0aGlzLnVwZGF0ZUZ4KHIuZHJhZ21vZGUpO3ZhciBpPXIud2lkdGgsYT1yLmhlaWdodDt0aGlzLnVwZGF0ZVNpemUodGhpcy5jYW52YXMpO3ZhciBvPXRoaXMuZ2xwbG90T3B0aW9ucztvLm1lcmdlKHIpLG8uc2NyZWVuQm94PVswLDAsaSxhXTt2YXIgcz17X2Z1bGxMYXlvdXQ6e19heGlzQ29uc3RyYWludEdyb3VwczpyLl9heGlzQ29uc3RyYWludEdyb3Vwcyx4YXhpczp0aGlzLnhheGlzLHlheGlzOnRoaXMueWF4aXMsX3NpemU6ci5fc2l6ZX19O3Yocyx0aGlzLnhheGlzKSx2KHMsdGhpcy55YXhpcyk7dmFyIGwsYyx1PXIuX3NpemUsZj10aGlzLnhheGlzLmRvbWFpbixoPXRoaXMueWF4aXMuZG9tYWluO2ZvcihvLnZpZXdCb3g9W3UubCtmWzBdKnUudyx1LmIraFswXSp1LmgsaS11LnItKDEtZlsxXSkqdS53LGEtdS50LSgxLWhbMV0pKnUuaF0sdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZS53aWR0aD11LncqKGZbMV0tZlswXSkrInB4Iix0aGlzLm1vdXNlQ29udGFpbmVyLnN0eWxlLmhlaWdodD11LmgqKGhbMV0taFswXSkrInB4Iix0aGlzLm1vdXNlQ29udGFpbmVyLmhlaWdodD11LmgqKGhbMV0taFswXSksdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZS5sZWZ0PXUubCtmWzBdKnUudysicHgiLHRoaXMubW91c2VDb250YWluZXIuc3R5bGUudG9wPXUudCsoMS1oWzFdKSp1LmgrInB4IixjPTA7YzwyOysrYykobD10aGlzW3dbY11dKS5fbGVuZ3RoPW8udmlld0JveFtjKzJdLW8udmlld0JveFtjXSx5KHRoaXMuZ3JhcGhEaXYsbCksbC5zZXRTY2FsZSgpO2cocyksby50aWNrcz10aGlzLmNvbXB1dGVUaWNrTWFya3MoKSxvLmRhdGFCb3g9dGhpcy5jYWxjRGF0YUJveCgpLG8ubWVyZ2Uociksbi51cGRhdGUobyksdGhpcy5nbHBsb3QuZHJhdygpfSxBLmNhbGNEYXRhQm94PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy54YXhpcyxlPXRoaXMueWF4aXMscj10LnJhbmdlLG49ZS5yYW5nZSxpPXQucjJsLGE9ZS5yMmw7cmV0dXJuW2koclswXSksYShuWzBdKSxpKHJbMV0pLGEoblsxXSldfSxBLnNldFJhbmdlcz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnhheGlzLHI9dGhpcy55YXhpcyxuPWUubDJyLGk9ci5sMnI7ZS5yYW5nZT1bbih0WzBdKSxuKHRbMl0pXSxyLnJhbmdlPVtpKHRbMV0pLGkodFszXSldfSxBLnVwZGF0ZVRyYWNlcz1mdW5jdGlvbih0LGUpe3ZhciByLG4saSxhPU9iamVjdC5rZXlzKHRoaXMudHJhY2VzKTt0aGlzLmZ1bGxEYXRhPXQ7dDpmb3Iocj0wO3I8YS5sZW5ndGg7cisrKXt2YXIgbz1hW3JdLHM9dGhpcy50cmFjZXNbb107Zm9yKG49MDtuPHQubGVuZ3RoO24rKylpZigoaT10W25dKS51aWQ9PT1vJiZpLnR5cGU9PT1zLnR5cGUpY29udGludWUgdDtzLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy50cmFjZXNbb119Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7aT10W3JdO3ZhciBsPWVbcl0sYz10aGlzLnRyYWNlc1tpLnVpZF07Yz9jLnVwZGF0ZShpLGwpOihjPWkuX21vZHVsZS5wbG90KHRoaXMsaSxsKSx0aGlzLnRyYWNlc1tpLnVpZF09Yyl9dGhpcy5nbHBsb3Qub2JqZWN0cy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Ll90cmFjZS5pbmRleC1lLl90cmFjZS5pbmRleH0pKX0sQS51cGRhdGVGeD1mdW5jdGlvbih0KXtfKHQpfHxiKHQpPyh0aGlzLnBpY2tDYW52YXMuc3R5bGVbInBvaW50ZXItZXZlbnRzIl09Im5vbmUiLHRoaXMubW91c2VDb250YWluZXIuc3R5bGVbInBvaW50ZXItZXZlbnRzIl09Im5vbmUiKToodGhpcy5waWNrQ2FudmFzLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJhdXRvIix0aGlzLm1vdXNlQ29udGFpbmVyLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJhdXRvIiksdGhpcy5tb3VzZUNvbnRhaW5lci5zdHlsZS5jdXJzb3I9InBhbiI9PT10PyJtb3ZlIjoiem9vbSI9PT10PyJjcm9zc2hhaXIiOm51bGx9LEEuZW1pdFBvaW50QWN0aW9uPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC50cmFjZS51aWQsaT10LnBvaW50SW5kZXgsYT0wO2E8dGhpcy5mdWxsRGF0YS5sZW5ndGg7YSsrKXRoaXMuZnVsbERhdGFbYV0udWlkPT09biYmKHI9dGhpcy5mdWxsRGF0YVthXSk7dmFyIG89e3g6dC50cmFjZUNvb3JkWzBdLHk6dC50cmFjZUNvb3JkWzFdLGN1cnZlTnVtYmVyOnIuaW5kZXgscG9pbnROdW1iZXI6aSxkYXRhOnIuX2lucHV0LGZ1bGxEYXRhOnRoaXMuZnVsbERhdGEseGF4aXM6dGhpcy54YXhpcyx5YXhpczp0aGlzLnlheGlzfTtzLmFwcGVuZEFycmF5UG9pbnRWYWx1ZShvLHIsaSksdGhpcy5ncmFwaERpdi5lbWl0KGUse3BvaW50czpbb119KX0sQS5kcmF3PWZ1bmN0aW9uKCl7aWYoIXRoaXMuc3RvcHBlZCl7cmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMucmVkcmF3KTt2YXIgdD10aGlzLmdscGxvdCxlPXRoaXMuY2FtZXJhLHI9ZS5tb3VzZUxpc3RlbmVyLG49MT09PXRoaXMubGFzdEJ1dHRvblN0YXRlJiYwPT09ci5idXR0b25zLGk9dGhpcy5mdWxsTGF5b3V0O3RoaXMubGFzdEJ1dHRvblN0YXRlPXIuYnV0dG9ucyx0aGlzLmNhbWVyYUNoYW5nZWQoKTt2YXIgYSxvPXIueCp0LnBpeGVsUmF0aW8sbD10aGlzLmNhbnZhcy5oZWlnaHQtdC5waXhlbFJhdGlvKnIueTtpZihlLmJveEVuYWJsZWQmJiJ6b29tIj09PWkuZHJhZ21vZGUpe3RoaXMuc2VsZWN0Qm94LmVuYWJsZWQ9ITA7Zm9yKHZhciBjPXRoaXMuc2VsZWN0Qm94LnNlbGVjdEJveD1bTWF0aC5taW4oZS5ib3hTdGFydFswXSxlLmJveEVuZFswXSksTWF0aC5taW4oZS5ib3hTdGFydFsxXSxlLmJveEVuZFsxXSksTWF0aC5tYXgoZS5ib3hTdGFydFswXSxlLmJveEVuZFswXSksTWF0aC5tYXgoZS5ib3hTdGFydFsxXSxlLmJveEVuZFsxXSldLHU9MDt1PDI7dSsrKWUuYm94U3RhcnRbdV09PT1lLmJveEVuZFt1XSYmKGNbdV09dC5kYXRhQm94W3VdLGNbdSsyXT10LmRhdGFCb3hbdSsyXSk7dC5zZXREaXJ0eSgpfWVsc2UgaWYoIWUucGFubmluZyYmdGhpcy5pc01vdXNlT3Zlcil7dGhpcy5zZWxlY3RCb3guZW5hYmxlZD0hMTt2YXIgZj1pLl9zaXplLGg9dGhpcy54YXhpcy5kb21haW4scD10aGlzLnlheGlzLmRvbWFpbixkPShhPXQucGljayhvL3QucGl4ZWxSYXRpbytmLmwraFswXSpmLncsbC90LnBpeGVsUmF0aW8tKGYudCsoMS1wWzFdKSpmLmgpKSkmJmEub2JqZWN0Ll90cmFjZS5oYW5kbGVQaWNrKGEpO2lmKGQmJm4mJnRoaXMuZW1pdFBvaW50QWN0aW9uKGQsInBsb3RseV9jbGljayIpLGEmJiJza2lwIiE9PWEub2JqZWN0Ll90cmFjZS5ob3ZlcmluZm8mJmkuaG92ZXJtb2RlJiZkJiYoIXRoaXMubGFzdFBpY2tSZXN1bHR8fHRoaXMubGFzdFBpY2tSZXN1bHQudHJhY2VVaWQhPT1kLnRyYWNlLnVpZHx8dGhpcy5sYXN0UGlja1Jlc3VsdC5kYXRhQ29vcmRbMF0hPT1kLmRhdGFDb29yZFswXXx8dGhpcy5sYXN0UGlja1Jlc3VsdC5kYXRhQ29vcmRbMV0hPT1kLmRhdGFDb29yZFsxXSkpe3ZhciBtPWQ7dGhpcy5sYXN0UGlja1Jlc3VsdD17dHJhY2VVaWQ6ZC50cmFjZT9kLnRyYWNlLnVpZDpudWxsLGRhdGFDb29yZDpkLmRhdGFDb29yZC5zbGljZSgpfSx0aGlzLnNwaWtlcy51cGRhdGUoe2NlbnRlcjphLmRhdGFDb29yZH0pLG0uc2NyZWVuQ29vcmQ9WygodC52aWV3Qm94WzJdLXQudmlld0JveFswXSkqKGEuZGF0YUNvb3JkWzBdLXQuZGF0YUJveFswXSkvKHQuZGF0YUJveFsyXS10LmRhdGFCb3hbMF0pK3Qudmlld0JveFswXSkvdC5waXhlbFJhdGlvLCh0aGlzLmNhbnZhcy5oZWlnaHQtKHQudmlld0JveFszXS10LnZpZXdCb3hbMV0pKihhLmRhdGFDb29yZFsxXS10LmRhdGFCb3hbMV0pLyh0LmRhdGFCb3hbM10tdC5kYXRhQm94WzFdKS10LnZpZXdCb3hbMV0pL3QucGl4ZWxSYXRpb10sdGhpcy5lbWl0UG9pbnRBY3Rpb24oZCwicGxvdGx5X2hvdmVyIik7dmFyIGc9dGhpcy5mdWxsRGF0YVttLnRyYWNlLmluZGV4XXx8e30sdj1tLnBvaW50SW5kZXgseT1zLmNhc3RIb3ZlcmluZm8oZyxpLHYpO2lmKHkmJiJhbGwiIT09eSl7dmFyIHg9eS5zcGxpdCgiKyIpOy0xPT09eC5pbmRleE9mKCJ4IikmJihtLnRyYWNlQ29vcmRbMF09dm9pZCAwKSwtMT09PXguaW5kZXhPZigieSIpJiYobS50cmFjZUNvb3JkWzFdPXZvaWQgMCksLTE9PT14LmluZGV4T2YoInoiKSYmKG0udHJhY2VDb29yZFsyXT12b2lkIDApLC0xPT09eC5pbmRleE9mKCJ0ZXh0IikmJihtLnRleHRMYWJlbD12b2lkIDApLC0xPT09eC5pbmRleE9mKCJuYW1lIikmJihtLm5hbWU9dm9pZCAwKX1zLmxvbmVIb3Zlcih7eDptLnNjcmVlbkNvb3JkWzBdLHk6bS5zY3JlZW5Db29yZFsxXSx4TGFiZWw6dGhpcy5ob3ZlckZvcm1hdHRlcigieGF4aXMiLG0udHJhY2VDb29yZFswXSkseUxhYmVsOnRoaXMuaG92ZXJGb3JtYXR0ZXIoInlheGlzIixtLnRyYWNlQ29vcmRbMV0pLHpMYWJlbDptLnRyYWNlQ29vcmRbMl0sdGV4dDptLnRleHRMYWJlbCxuYW1lOm0ubmFtZSxjb2xvcjpzLmNhc3RIb3Zlck9wdGlvbihnLHYsImJnY29sb3IiKXx8bS5jb2xvcixib3JkZXJDb2xvcjpzLmNhc3RIb3Zlck9wdGlvbihnLHYsImJvcmRlcmNvbG9yIiksZm9udEZhbWlseTpzLmNhc3RIb3Zlck9wdGlvbihnLHYsImZvbnQuZmFtaWx5IiksZm9udFNpemU6cy5jYXN0SG92ZXJPcHRpb24oZyx2LCJmb250LnNpemUiKSxmb250Q29sb3I6cy5jYXN0SG92ZXJPcHRpb24oZyx2LCJmb250LmNvbG9yIiksbmFtZUxlbmd0aDpzLmNhc3RIb3Zlck9wdGlvbihnLHYsIm5hbWVsZW5ndGgiKSx0ZXh0QWxpZ246cy5jYXN0SG92ZXJPcHRpb24oZyx2LCJhbGlnbiIpfSx7Y29udGFpbmVyOnRoaXMuc3ZnQ29udGFpbmVyLGdkOnRoaXMuZ3JhcGhEaXZ9KX19YXx8dGhpcy51bmhvdmVyKCksdC5kcmF3KCl9fSxBLnVuaG92ZXI9ZnVuY3Rpb24oKXt0aGlzLmxhc3RQaWNrUmVzdWx0JiYodGhpcy5zcGlrZXMudXBkYXRlKHt9KSx0aGlzLmxhc3RQaWNrUmVzdWx0PW51bGwsdGhpcy5ncmFwaERpdi5lbWl0KCJwbG90bHlfdW5ob3ZlciIpLHMubG9uZVVuaG92ZXIodGhpcy5zdmdDb250YWluZXIpKX0sQS5ob3ZlckZvcm1hdHRlcj1mdW5jdGlvbih0LGUpe2lmKHZvaWQgMCE9PWUpe3ZhciByPXRoaXNbdF07cmV0dXJuIG8udGlja1RleHQocixyLmMybChlKSwiaG92ZXIiKS50ZXh0fX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIjo2NTcsIi4uLy4uL2NvbXBvbmVudHMvZngiOjY3OSwiLi4vLi4vbGliL3Nob3dfbm9fd2ViZ2xfbXNnIjo3OTgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2NhcnRlc2lhbi9hdXRvcmFuZ2UiOjgyNiwiLi4vY2FydGVzaWFuL2NvbnN0YW50cyI6ODM0LCIuLi9jYXJ0ZXNpYW4vY29uc3RyYWludHMiOjgzNSwiLi9jYW1lcmEiOjg2NSwiLi9jb252ZXJ0Ijo4NjYsImdsLXBsb3QyZCI6MzA5LCJnbC1zZWxlY3QtYm94IjozMjEsImdsLXNwaWtlczJkIjozMzAsIndlYmdsLWNvbnRleHQiOjYwMn1dLDg2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsaT10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2xheW91dF9hdHRyaWJ1dGVzIiksYT10KCIuL3NjZW5lIiksbz10KCIuLi9nZXRfZGF0YSIpLmdldFN1YnBsb3REYXRhLHM9dCgiLi4vLi4vbGliIiksbD10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpO3IubmFtZT0iZ2wzZCIsci5hdHRyPSJzY2VuZSIsci5pZFJvb3Q9InNjZW5lIixyLmlkUmVnZXg9ci5hdHRyUmVnZXg9cy5jb3VudGVyUmVnZXgoInNjZW5lIiksci5hdHRyaWJ1dGVzPXQoIi4vbGF5b3V0L2F0dHJpYnV0ZXMiKSxyLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9sYXlvdXQvbGF5b3V0X2F0dHJpYnV0ZXMiKSxyLmJhc2VMYXlvdXRBdHRyT3ZlcnJpZGVzPW4oe2hvdmVybGFiZWw6aS5ob3ZlcmxhYmVsfSwicGxvdCIsIm5lc3RlZCIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXQvZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj10Ll9mdWxsRGF0YSxuPWUuX3N1YnBsb3RzLmdsM2QsaT0wO2k8bi5sZW5ndGg7aSsrKXt2YXIgcz1uW2ldLGw9byhyLCJnbDNkIixzKSxjPWVbc10sdT1jLmNhbWVyYSxmPWMuX3NjZW5lO2Z8fChmPW5ldyBhKHtpZDpzLGdyYXBoRGl2OnQsY29udGFpbmVyOnQucXVlcnlTZWxlY3RvcigiLmdsLWNvbnRhaW5lciIpLHN0YXRpY1Bsb3Q6dC5fY29udGV4dC5zdGF0aWNQbG90LHBsb3RHbFBpeGVsUmF0aW86dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvLGNhbWVyYTp1fSxlKSxjLl9zY2VuZT1mKSxmLnZpZXdJbml0aWFsfHwoZi52aWV3SW5pdGlhbD17dXA6e3g6dS51cC54LHk6dS51cC55LHo6dS51cC56fSxleWU6e3g6dS5leWUueCx5OnUuZXllLnksejp1LmV5ZS56fSxjZW50ZXI6e3g6dS5jZW50ZXIueCx5OnUuY2VudGVyLnksejp1LmNlbnRlci56fX0pLGYucGxvdChsLGUsdC5sYXlvdXQpfX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9bi5fc3VicGxvdHMuZ2wzZHx8W10sYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdOyFlW29dJiZuW29dLl9zY2VuZSYmKG5bb10uX3NjZW5lLmRlc3Ryb3koKSxuLl9pbmZvbGF5ZXImJm4uX2luZm9sYXllci5zZWxlY3RBbGwoIi5hbm5vdGF0aW9uLSIrbykucmVtb3ZlKCkpfX0sci50b1NWRz1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLmdsM2Qsbj1lLl9zaXplLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGE9ZVtyW2ldXSxvPWEuZG9tYWluLHM9YS5fc2NlbmUsYz1zLnRvSW1hZ2UoInBuZyIpO2UuX2dsaW1hZ2VzLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6bC5zdmcsInhsaW5rOmhyZWYiOmMseDpuLmwrbi53Km8ueFswXSx5Om4udCtuLmgqKDEtby55WzFdKSx3aWR0aDpuLncqKG8ueFsxXS1vLnhbMF0pLGhlaWdodDpuLmgqKG8ueVsxXS1vLnlbMF0pLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSkscy5kZXN0cm95KCl9fSxyLmNsZWFuSWQ9ZnVuY3Rpb24odCl7aWYodC5tYXRjaCgvXnNjZW5lWzAtOV0qJC8pKXt2YXIgZT10LnN1YnN0cig1KTtyZXR1cm4iMSI9PT1lJiYoZT0iIiksInNjZW5lIitlfX0sci51cGRhdGVGeD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPWUuX3N1YnBsb3RzLmdsM2Qsbj0wO248ci5sZW5ndGg7bisrKXtlW3Jbbl1dLl9zY2VuZS51cGRhdGVGeChlLmRyYWdtb2RlLGUuaG92ZXJtb2RlKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngvbGF5b3V0X2F0dHJpYnV0ZXMiOjY4MCwiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiOjc1MywiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vZ2V0X2RhdGEiOjg2NCwiLi9sYXlvdXQvYXR0cmlidXRlcyI6ODcwLCIuL2xheW91dC9kZWZhdWx0cyI6ODc0LCIuL2xheW91dC9sYXlvdXRfYXR0cmlidXRlcyI6ODc1LCIuL3NjZW5lIjo4Nzl9XSw4NzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzY2VuZTp7dmFsVHlwZToic3VicGxvdGlkIixkZmx0OiJzY2VuZSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifX19LHt9XSw4NzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxvPXQoIi4uLy4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDtlLmV4cG9ydHM9byh7dmlzaWJsZTppLnZpc2libGUsc2hvd3NwaWtlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc3Bpa2VzaWRlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sc3Bpa2V0aGlja25lc3M6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyfSxzcGlrZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxzaG93YmFja2dyb3VuZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sYmFja2dyb3VuZGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgyMDQsIDIwNCwgMjA0LCAwLjUpIn0sc2hvd2F4ZXNsYWJlbHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGNvbG9yOmkuY29sb3IsY2F0ZWdvcnlvcmRlcjppLmNhdGVnb3J5b3JkZXIsY2F0ZWdvcnlhcnJheTppLmNhdGVnb3J5YXJyYXksdGl0bGU6e3RleHQ6aS50aXRsZS50ZXh0LGZvbnQ6aS50aXRsZS5mb250fSx0eXBlOmEoe30saS50eXBlLHt2YWx1ZXM6WyItIiwibGluZWFyIiwibG9nIiwiZGF0ZSIsImNhdGVnb3J5Il19KSxhdXRvdHlwZW51bWJlcnM6aS5hdXRvdHlwZW51bWJlcnMsYXV0b3JhbmdlOmkuYXV0b3JhbmdlLHJhbmdlbW9kZTppLnJhbmdlbW9kZSxyYW5nZTphKHt9LGkucmFuZ2Use2l0ZW1zOlt7dmFsVHlwZToiYW55IixlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiXmF1dG9yYW5nZSI6ITF9fSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiXmF1dG9yYW5nZSI6ITF9fV0sYW5pbTohMX0pLHRpY2ttb2RlOmkudGlja21vZGUsbnRpY2tzOmkubnRpY2tzLHRpY2swOmkudGljazAsZHRpY2s6aS5kdGljayx0aWNrdmFsczppLnRpY2t2YWxzLHRpY2t0ZXh0OmkudGlja3RleHQsdGlja3M6aS50aWNrcyxtaXJyb3I6aS5taXJyb3IsdGlja2xlbjppLnRpY2tsZW4sdGlja3dpZHRoOmkudGlja3dpZHRoLHRpY2tjb2xvcjppLnRpY2tjb2xvcixzaG93dGlja2xhYmVsczppLnNob3d0aWNrbGFiZWxzLHRpY2tmb250OmkudGlja2ZvbnQsdGlja2FuZ2xlOmkudGlja2FuZ2xlLHRpY2twcmVmaXg6aS50aWNrcHJlZml4LHNob3d0aWNrcHJlZml4Omkuc2hvd3RpY2twcmVmaXgsdGlja3N1ZmZpeDppLnRpY2tzdWZmaXgsc2hvd3RpY2tzdWZmaXg6aS5zaG93dGlja3N1ZmZpeCxzaG93ZXhwb25lbnQ6aS5zaG93ZXhwb25lbnQsZXhwb25lbnRmb3JtYXQ6aS5leHBvbmVudGZvcm1hdCxtaW5leHBvbmVudDppLm1pbmV4cG9uZW50LHNlcGFyYXRldGhvdXNhbmRzOmkuc2VwYXJhdGV0aG91c2FuZHMsdGlja2Zvcm1hdDppLnRpY2tmb3JtYXQsdGlja2Zvcm1hdHN0b3BzOmkudGlja2Zvcm1hdHN0b3BzLGhvdmVyZm9ybWF0OmkuaG92ZXJmb3JtYXQsc2hvd2xpbmU6aS5zaG93bGluZSxsaW5lY29sb3I6aS5saW5lY29sb3IsbGluZXdpZHRoOmkubGluZXdpZHRoLHNob3dncmlkOmkuc2hvd2dyaWQsZ3JpZGNvbG9yOmEoe30saS5ncmlkY29sb3Ise2RmbHQ6InJnYigyMDQsIDIwNCwgMjA0KSJ9KSxncmlkd2lkdGg6aS5ncmlkd2lkdGgsemVyb2xpbmU6aS56ZXJvbGluZSx6ZXJvbGluZWNvbG9yOmkuemVyb2xpbmVjb2xvcix6ZXJvbGluZXdpZHRoOmkuemVyb2xpbmV3aWR0aCxfZGVwcmVjYXRlZDp7dGl0bGU6aS5fZGVwcmVjYXRlZC50aXRsZSx0aXRsZWZvbnQ6aS5fZGVwcmVjYXRlZC50aXRsZWZvbnR9fSwicGxvdCIsImZyb20tcm9vdCIpfSx7Ii4uLy4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo4MDksIi4uLy4uL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyI6ODQyfV0sODcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInRpbnljb2xvcjIiKS5taXgsaT10KCIuLi8uLi8uLi9saWIiKSxhPXQoIi4uLy4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxvPXQoIi4vYXhpc19hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jYXJ0ZXNpYW4vdHlwZV9kZWZhdWx0cyIpLGw9dCgiLi4vLi4vY2FydGVzaWFuL2F4aXNfZGVmYXVsdHMiKSxjPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgdSxmO2Z1bmN0aW9uIGgodCxlKXtyZXR1cm4gaS5jb2VyY2UodSxmLG8sdCxlKX1mb3IodmFyIHA9MDtwPGMubGVuZ3RoO3ArKyl7dmFyIGQ9Y1twXTt1PXRbZF18fHt9LChmPWEubmV3Q29udGFpbmVyKGUsZCkpLl9pZD1kWzBdK3Iuc2NlbmUsZi5fbmFtZT1kLHModSxmLGgsciksbCh1LGYsaCx7Zm9udDpyLmZvbnQsbGV0dGVyOmRbMF0sZGF0YTpyLmRhdGEsc2hvd0dyaWQ6ITAsbm9UaWNrc29uOiEwLG5vVGlja2xhYmVsbW9kZTohMCxub1RpY2tsYWJlbHBvc2l0aW9uOiEwLG5vVGlja2xhYmVsb3ZlcmZsb3c6ITAsYmdDb2xvcjpyLmJnQ29sb3IsY2FsZW5kYXI6ci5jYWxlbmRhcn0sci5mdWxsTGF5b3V0KSxoKCJncmlkY29sb3IiLG4oZi5jb2xvcixyLmJnQ29sb3IsMTM2MDAvMTg3KS50b1JnYlN0cmluZygpKSxoKCJ0aXRsZS50ZXh0IixkWzBdKSxmLnNldFNjYWxlPWkubm9vcCxoKCJzaG93c3Bpa2VzIikmJihoKCJzcGlrZXNpZGVzIiksaCgic3Bpa2V0aGlja25lc3MiKSxoKCJzcGlrZWNvbG9yIixmLmNvbG9yKSksaCgic2hvd2F4ZXNsYWJlbHMiKSxoKCJzaG93YmFja2dyb3VuZCIpJiZoKCJiYWNrZ3JvdW5kY29sb3IiKX19fSx7Ii4uLy4uLy4uL2xpYiI6Nzc2LCIuLi8uLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uLy4uL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIjo4MjksIi4uLy4uL2NhcnRlc2lhbi90eXBlX2RlZmF1bHRzIjo4NTMsIi4vYXhpc19hdHRyaWJ1dGVzIjo4NzEsdGlueWNvbG9yMjo1NzJ9XSw4NzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLGk9dCgiLi4vLi4vLi4vbGliIiksYT1bInhheGlzIiwieWF4aXMiLCJ6YXhpcyJdO2Z1bmN0aW9uIG8oKXt0aGlzLmJvdW5kcz1bWy0xMCwtMTAsLTEwXSxbMTAsMTAsMTBdXSx0aGlzLnRpY2tzPVtbXSxbXSxbXV0sdGhpcy50aWNrRW5hYmxlPVshMCwhMCwhMF0sdGhpcy50aWNrRm9udD1bInNhbnMtc2VyaWYiLCJzYW5zLXNlcmlmIiwic2Fucy1zZXJpZiJdLHRoaXMudGlja1NpemU9WzEyLDEyLDEyXSx0aGlzLnRpY2tBbmdsZT1bMCwwLDBdLHRoaXMudGlja0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy50aWNrUGFkPVsxOCwxOCwxOF0sdGhpcy5sYWJlbHM9WyJ4IiwieSIsInoiXSx0aGlzLmxhYmVsRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5sYWJlbEZvbnQ9WyJPcGVuIFNhbnMiLCJPcGVuIFNhbnMiLCJPcGVuIFNhbnMiXSx0aGlzLmxhYmVsU2l6ZT1bMjAsMjAsMjBdLHRoaXMubGFiZWxDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMubGFiZWxQYWQ9WzMwLDMwLDMwXSx0aGlzLmxpbmVFbmFibGU9WyEwLCEwLCEwXSx0aGlzLmxpbmVNaXJyb3I9WyExLCExLCExXSx0aGlzLmxpbmVXaWR0aD1bMSwxLDFdLHRoaXMubGluZUNvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5saW5lVGlja0VuYWJsZT1bITAsITAsITBdLHRoaXMubGluZVRpY2tNaXJyb3I9WyExLCExLCExXSx0aGlzLmxpbmVUaWNrTGVuZ3RoPVsxMCwxMCwxMF0sdGhpcy5saW5lVGlja1dpZHRoPVsxLDEsMV0sdGhpcy5saW5lVGlja0NvbG9yPVtbMCwwLDAsMV0sWzAsMCwwLDFdLFswLDAsMCwxXV0sdGhpcy5ncmlkRW5hYmxlPVshMCwhMCwhMF0sdGhpcy5ncmlkV2lkdGg9WzEsMSwxXSx0aGlzLmdyaWRDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuemVyb0VuYWJsZT1bITAsITAsITBdLHRoaXMuemVyb0xpbmVDb2xvcj1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuemVyb0xpbmVXaWR0aD1bMiwyLDJdLHRoaXMuYmFja2dyb3VuZEVuYWJsZT1bITAsITAsITBdLHRoaXMuYmFja2dyb3VuZENvbG9yPVtbLjgsLjgsLjgsLjVdLFsuOCwuOCwuOCwuNV0sWy44LC44LC44LC41XV0sdGhpcy5fZGVmYXVsdFRpY2tQYWQ9dGhpcy50aWNrUGFkLnNsaWNlKCksdGhpcy5fZGVmYXVsdExhYmVsUGFkPXRoaXMubGFiZWxQYWQuc2xpY2UoKSx0aGlzLl9kZWZhdWx0TGluZVRpY2tMZW5ndGg9dGhpcy5saW5lVGlja0xlbmd0aC5zbGljZSgpfW8ucHJvdG90eXBlLm1lcmdlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjwzOysrcil7dmFyIG89ZVthW3JdXTtvLnZpc2libGU/KHRoaXMubGFiZWxzW3JdPXQuX21ldGE/aS50ZW1wbGF0ZVN0cmluZyhvLnRpdGxlLnRleHQsdC5fbWV0YSk6by50aXRsZS50ZXh0LCJmb250ImluIG8udGl0bGUmJihvLnRpdGxlLmZvbnQuY29sb3ImJih0aGlzLmxhYmVsQ29sb3Jbcl09bihvLnRpdGxlLmZvbnQuY29sb3IpKSxvLnRpdGxlLmZvbnQuZmFtaWx5JiYodGhpcy5sYWJlbEZvbnRbcl09by50aXRsZS5mb250LmZhbWlseSksby50aXRsZS5mb250LnNpemUmJih0aGlzLmxhYmVsU2l6ZVtyXT1vLnRpdGxlLmZvbnQuc2l6ZSkpLCJzaG93bGluZSJpbiBvJiYodGhpcy5saW5lRW5hYmxlW3JdPW8uc2hvd2xpbmUpLCJsaW5lY29sb3IiaW4gbyYmKHRoaXMubGluZUNvbG9yW3JdPW4oby5saW5lY29sb3IpKSwibGluZXdpZHRoImluIG8mJih0aGlzLmxpbmVXaWR0aFtyXT1vLmxpbmV3aWR0aCksInNob3dncmlkImluIG8mJih0aGlzLmdyaWRFbmFibGVbcl09by5zaG93Z3JpZCksImdyaWRjb2xvciJpbiBvJiYodGhpcy5ncmlkQ29sb3Jbcl09bihvLmdyaWRjb2xvcikpLCJncmlkd2lkdGgiaW4gbyYmKHRoaXMuZ3JpZFdpZHRoW3JdPW8uZ3JpZHdpZHRoKSwibG9nIj09PW8udHlwZT90aGlzLnplcm9FbmFibGVbcl09ITE6Inplcm9saW5lImluIG8mJih0aGlzLnplcm9FbmFibGVbcl09by56ZXJvbGluZSksInplcm9saW5lY29sb3IiaW4gbyYmKHRoaXMuemVyb0xpbmVDb2xvcltyXT1uKG8uemVyb2xpbmVjb2xvcikpLCJ6ZXJvbGluZXdpZHRoImluIG8mJih0aGlzLnplcm9MaW5lV2lkdGhbcl09by56ZXJvbGluZXdpZHRoKSwidGlja3MiaW4gbyYmby50aWNrcz90aGlzLmxpbmVUaWNrRW5hYmxlW3JdPSEwOnRoaXMubGluZVRpY2tFbmFibGVbcl09ITEsInRpY2tsZW4iaW4gbyYmKHRoaXMubGluZVRpY2tMZW5ndGhbcl09dGhpcy5fZGVmYXVsdExpbmVUaWNrTGVuZ3RoW3JdPW8udGlja2xlbiksInRpY2tjb2xvciJpbiBvJiYodGhpcy5saW5lVGlja0NvbG9yW3JdPW4oby50aWNrY29sb3IpKSwidGlja3dpZHRoImluIG8mJih0aGlzLmxpbmVUaWNrV2lkdGhbcl09by50aWNrd2lkdGgpLCJ0aWNrYW5nbGUiaW4gbyYmKHRoaXMudGlja0FuZ2xlW3JdPSJhdXRvIj09PW8udGlja2FuZ2xlPy0zNjAwOk1hdGguUEkqLW8udGlja2FuZ2xlLzE4MCksInNob3d0aWNrbGFiZWxzImluIG8mJih0aGlzLnRpY2tFbmFibGVbcl09by5zaG93dGlja2xhYmVscyksInRpY2tmb250ImluIG8mJihvLnRpY2tmb250LmNvbG9yJiYodGhpcy50aWNrQ29sb3Jbcl09bihvLnRpY2tmb250LmNvbG9yKSksby50aWNrZm9udC5mYW1pbHkmJih0aGlzLnRpY2tGb250W3JdPW8udGlja2ZvbnQuZmFtaWx5KSxvLnRpY2tmb250LnNpemUmJih0aGlzLnRpY2tTaXplW3JdPW8udGlja2ZvbnQuc2l6ZSkpLCJtaXJyb3IiaW4gbz8tMSE9PVsidGlja3MiLCJhbGwiLCJhbGx0aWNrcyJdLmluZGV4T2Yoby5taXJyb3IpPyh0aGlzLmxpbmVUaWNrTWlycm9yW3JdPSEwLHRoaXMubGluZU1pcnJvcltyXT0hMCk6ITA9PT1vLm1pcnJvcj8odGhpcy5saW5lVGlja01pcnJvcltyXT0hMSx0aGlzLmxpbmVNaXJyb3Jbcl09ITApOih0aGlzLmxpbmVUaWNrTWlycm9yW3JdPSExLHRoaXMubGluZU1pcnJvcltyXT0hMSk6dGhpcy5saW5lTWlycm9yW3JdPSExLCJzaG93YmFja2dyb3VuZCJpbiBvJiYhMSE9PW8uc2hvd2JhY2tncm91bmQ/KHRoaXMuYmFja2dyb3VuZEVuYWJsZVtyXT0hMCx0aGlzLmJhY2tncm91bmRDb2xvcltyXT1uKG8uYmFja2dyb3VuZGNvbG9yKSk6dGhpcy5iYWNrZ3JvdW5kRW5hYmxlW3JdPSExKToodGhpcy50aWNrRW5hYmxlW3JdPSExLHRoaXMubGFiZWxFbmFibGVbcl09ITEsdGhpcy5saW5lRW5hYmxlW3JdPSExLHRoaXMubGluZVRpY2tFbmFibGVbcl09ITEsdGhpcy5ncmlkRW5hYmxlW3JdPSExLHRoaXMuemVyb0VuYWJsZVtyXT0hMSx0aGlzLmJhY2tncm91bmRFbmFibGVbcl09ITEpfX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IG87cmV0dXJuIHIubWVyZ2UodCxlKSxyfX0seyIuLi8uLi8uLi9saWIiOjc3NiwiLi4vLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6ODAxfV0sODc0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vLi4vcmVnaXN0cnkiKSxvPXQoIi4uLy4uL3N1YnBsb3RfZGVmYXVsdHMiKSxzPXQoIi4vYXhpc19kZWZhdWx0cyIpLGw9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLGM9dCgiLi4vLi4vZ2V0X2RhdGEiKS5nZXRTdWJwbG90RGF0YTtmdW5jdGlvbiB1KHQsZSxyLG4pe2Zvcih2YXIgbz1yKCJiZ2NvbG9yIiksbD1pLmNvbWJpbmUobyxuLnBhcGVyX2JnY29sb3IpLHU9WyJ1cCIsImNlbnRlciIsImV5ZSJdLGY9MDtmPHUubGVuZ3RoO2YrKylyKCJjYW1lcmEuIit1W2ZdKyIueCIpLHIoImNhbWVyYS4iK3VbZl0rIi55IikscigiY2FtZXJhLiIrdVtmXSsiLnoiKTtyKCJjYW1lcmEucHJvamVjdGlvbi50eXBlIik7dmFyIGg9ISFyKCJhc3BlY3RyYXRpby54IikmJiEhcigiYXNwZWN0cmF0aW8ueSIpJiYhIXIoImFzcGVjdHJhdGlvLnoiKSxwPXIoImFzcGVjdG1vZGUiLGg/Im1hbnVhbCI6ImF1dG8iKTtofHwodC5hc3BlY3RyYXRpbz1lLmFzcGVjdHJhdGlvPXt4OjEseToxLHo6MX0sIm1hbnVhbCI9PT1wJiYoZS5hc3BlY3Rtb2RlPSJhdXRvIiksdC5hc3BlY3Rtb2RlPWUuYXNwZWN0bW9kZSk7dmFyIGQ9YyhuLmZ1bGxEYXRhLCJnbDNkIixuLmlkKTtzKHQsZSx7Zm9udDpuLmZvbnQsc2NlbmU6bi5pZCxkYXRhOmQsYmdDb2xvcjpsLGNhbGVuZGFyOm4uY2FsZW5kYXIsYXV0b3R5cGVudW1iZXJzRGZsdDpuLmF1dG90eXBlbnVtYmVyc0RmbHQsZnVsbExheW91dDpuLmZ1bGxMYXlvdXR9KSxhLmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMzZCIsImhhbmRsZURlZmF1bHRzIikodCxlLG4pO3ZhciBtPW4uZ2V0RGZsdEZyb21MYXlvdXQoImRyYWdtb2RlIik7aWYoITEhPT1tJiYhbSlpZihtPSJvcmJpdCIsdC5jYW1lcmEmJnQuY2FtZXJhLnVwKXt2YXIgZz10LmNhbWVyYS51cC54LHY9dC5jYW1lcmEudXAueSx5PXQuY2FtZXJhLnVwLno7MCE9PXkmJihnJiZ2JiZ5P3kvTWF0aC5zcXJ0KGcqZyt2KnYreSp5KT4uOTk5JiYobT0idHVybnRhYmxlIik6bT0idHVybnRhYmxlIil9ZWxzZSBtPSJ0dXJudGFibGUiO3IoImRyYWdtb2RlIixtKSxyKCJob3Zlcm1vZGUiLG4uZ2V0RGZsdEZyb21MYXlvdXQoImhvdmVybW9kZSIpKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWUuX2Jhc2VQbG90TW9kdWxlcy5sZW5ndGg+MTtvKHQsZSxyLHt0eXBlOiJnbDNkIixhdHRyaWJ1dGVzOmwsaGFuZGxlRGVmYXVsdHM6dSxmdWxsTGF5b3V0OmUsZm9udDplLmZvbnQsZnVsbERhdGE6cixnZXREZmx0RnJvbUxheW91dDpmdW5jdGlvbihlKXtpZighaSlyZXR1cm4gbi52YWxpZGF0ZSh0W2VdLGxbZV0pP3RbZV06dm9pZCAwfSxhdXRvdHlwZW51bWJlcnNEZmx0OmUuYXV0b3R5cGVudW1iZXJzLHBhcGVyX2JnY29sb3I6ZS5wYXBlcl9iZ2NvbG9yLGNhbGVuZGFyOmUuY2FsZW5kYXJ9KX19LHsiLi4vLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi8uLi9saWIiOjc3NiwiLi4vLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vLi4vZ2V0X2RhdGEiOjg2NCwiLi4vLi4vc3VicGxvdF9kZWZhdWx0cyI6ODk4LCIuL2F4aXNfZGVmYXVsdHMiOjg3MiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6ODc1fV0sODc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vYXhpc19hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9kb21haW4iKS5hdHRyaWJ1dGVzLGE9dCgiLi4vLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbz10KCIuLi8uLi8uLi9saWIiKS5jb3VudGVyUmVnZXg7ZnVuY3Rpb24gcyh0LGUscil7cmV0dXJue3g6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDp0LGVkaXRUeXBlOiJjYW1lcmEifSx5Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6ZSxlZGl0VHlwZToiY2FtZXJhIn0sejp7dmFsVHlwZToibnVtYmVyIixkZmx0OnIsZWRpdFR5cGU6ImNhbWVyYSJ9LGVkaXRUeXBlOiJjYW1lcmEifX1lLmV4cG9ydHM9e19hcnJheUF0dHJSZWdleHBzOltvKCJzY2VuZSIsIi5hbm5vdGF0aW9ucyIsITApXSxiZ2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDoicmdiYSgwLDAsMCwwKSIsZWRpdFR5cGU6InBsb3QifSxjYW1lcmE6e3VwOmEocygwLDAsMSkse30pLGNlbnRlcjphKHMoMCwwLDApLHt9KSxleWU6YShzKDEuMjUsMS4yNSwxLjI1KSx7fSkscHJvamVjdGlvbjp7dHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicGVyc3BlY3RpdmUiLCJvcnRob2dyYXBoaWMiXSxkZmx0OiJwZXJzcGVjdGl2ZSIsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYW1lcmEifSxkb21haW46aSh7bmFtZToic2NlbmUiLGVkaXRUeXBlOiJwbG90In0pLGFzcGVjdG1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImF1dG8iLCJjdWJlIiwiZGF0YSIsIm1hbnVhbCJdLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJhc3BlY3RyYXRpby54Ijp2b2lkIDAsImFzcGVjdHJhdGlvLnkiOnZvaWQgMCwiYXNwZWN0cmF0aW8ueiI6dm9pZCAwfX0sYXNwZWN0cmF0aW86e3g6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InBsb3QiLGltcGxpZWRFZGl0czp7Il5hc3BlY3Rtb2RlIjoibWFudWFsIn19LHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InBsb3QiLGltcGxpZWRFZGl0czp7Il5hc3BlY3Rtb2RlIjoibWFudWFsIn19LHo6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InBsb3QiLGltcGxpZWRFZGl0czp7Il5hc3BlY3Rtb2RlIjoibWFudWFsIn19LGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6e2FzcGVjdG1vZGU6Im1hbnVhbCJ9fSx4YXhpczpuLHlheGlzOm4semF4aXM6bixkcmFnbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsib3JiaXQiLCJ0dXJudGFibGUiLCJ6b29tIiwicGFuIiwhMV0sZWRpdFR5cGU6InBsb3QifSxob3Zlcm1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNsb3Nlc3QiLCExXSxkZmx0OiJjbG9zZXN0IixlZGl0VHlwZToibW9kZWJhciJ9LHVpcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxlZGl0VHlwZToicGxvdCIsX2RlcHJlY2F0ZWQ6e2NhbWVyYXBvc2l0aW9uOnt2YWxUeXBlOiJpbmZvX2FycmF5IixlZGl0VHlwZToiY2FtZXJhIn19fX0seyIuLi8uLi8uLi9saWIiOjc3NiwiLi4vLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9kb21haW4iOjg1NSwiLi9heGlzX2F0dHJpYnV0ZXMiOjg3MX1dLDg3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi8uLi9saWIvc3RyMnJnYmFycmF5IiksaT1bInhheGlzIiwieWF4aXMiLCJ6YXhpcyJdO2Z1bmN0aW9uIGEoKXt0aGlzLmVuYWJsZWQ9WyEwLCEwLCEwXSx0aGlzLmNvbG9ycz1bWzAsMCwwLDFdLFswLDAsMCwxXSxbMCwwLDAsMV1dLHRoaXMuZHJhd1NpZGVzPVshMCwhMCwhMF0sdGhpcy5saW5lV2lkdGg9WzEsMSwxXX1hLnByb3RvdHlwZS5tZXJnZT1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPDM7KytlKXt2YXIgcj10W2lbZV1dO3IudmlzaWJsZT8odGhpcy5lbmFibGVkW2VdPXIuc2hvd3NwaWtlcyx0aGlzLmNvbG9yc1tlXT1uKHIuc3Bpa2Vjb2xvciksdGhpcy5kcmF3U2lkZXNbZV09ci5zcGlrZXNpZGVzLHRoaXMubGluZVdpZHRoW2VdPXIuc3Bpa2V0aGlja25lc3MpOih0aGlzLmVuYWJsZWRbZV09ITEsdGhpcy5kcmF3U2lkZXNbZV09ITEpfX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW5ldyBhO3JldHVybiBlLm1lcmdlKHQpLGV9fSx7Ii4uLy4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjgwMX1dLDg3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuYXhlc09wdGlvbnMscj10LmdscGxvdC5heGVzUGl4ZWxzLHM9dC5mdWxsU2NlbmVMYXlvdXQsbD1bW10sW10sW11dLGM9MDtjPDM7KytjKXt2YXIgdT1zW2FbY11dO2lmKHUuX2xlbmd0aD0ocltjXS5oaS1yW2NdLmxvKSpyW2NdLnBpeGVsc1BlckRhdGFVbml0L3QuZGF0YVNjYWxlW2NdLE1hdGguYWJzKHUuX2xlbmd0aCk9PT0xLzB8fGlzTmFOKHUuX2xlbmd0aCkpbFtjXT1bXTtlbHNle3UuX2lucHV0X3JhbmdlPXUucmFuZ2Uuc2xpY2UoKSx1LnJhbmdlWzBdPXJbY10ubG8vdC5kYXRhU2NhbGVbY10sdS5yYW5nZVsxXT1yW2NdLmhpL3QuZGF0YVNjYWxlW2NdLHUuX209MS8odC5kYXRhU2NhbGVbY10qcltjXS5waXhlbHNQZXJEYXRhVW5pdCksdS5yYW5nZVswXT09PXUucmFuZ2VbMV0mJih1LnJhbmdlWzBdLT0xLHUucmFuZ2VbMV0rPTEpO3ZhciBmPXUudGlja21vZGU7aWYoImF1dG8iPT09dS50aWNrbW9kZSl7dS50aWNrbW9kZT0ibGluZWFyIjt2YXIgaD11Lm50aWNrc3x8aS5jb25zdHJhaW4odS5fbGVuZ3RoLzQwLDQsOSk7bi5hdXRvVGlja3ModSxNYXRoLmFicyh1LnJhbmdlWzFdLXUucmFuZ2VbMF0pL2gpfWZvcih2YXIgcD1uLmNhbGNUaWNrcyh1LHttc1VUQzohMH0pLGQ9MDtkPHAubGVuZ3RoOysrZClwW2RdLng9cFtkXS54KnQuZGF0YVNjYWxlW2NdLCJkYXRlIj09PXUudHlwZSYmKHBbZF0udGV4dD1wW2RdLnRleHQucmVwbGFjZSgvXDxiclw+L2csIiAiKSk7bFtjXT1wLHUudGlja21vZGU9Zn19ZS50aWNrcz1sO2ZvcihjPTA7YzwzOysrYyl7b1tjXT0uNSoodC5nbHBsb3QuYm91bmRzWzBdW2NdK3QuZ2xwbG90LmJvdW5kc1sxXVtjXSk7Zm9yKGQ9MDtkPDI7KytkKWUuYm91bmRzW2RdW2NdPXQuZ2xwbG90LmJvdW5kc1tkXVtjXX10LmNvbnRvdXJMZXZlbHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSgzKSxyPTA7cjwzOysrcil7Zm9yKHZhciBuPXRbcl0saT1uZXcgQXJyYXkobi5sZW5ndGgpLGE9MDthPG4ubGVuZ3RoOysrYSlpW2FdPW5bYV0ueDtlW3JdPWl9cmV0dXJuIGV9KGwpfTt2YXIgbj10KCIuLi8uLi9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vLi4vbGliIiksYT1bInhheGlzIiwieWF4aXMiLCJ6YXhpcyJdLG89WzAsMCwwXX0seyIuLi8uLi8uLi9saWIiOjc3NiwiLi4vLi4vY2FydGVzaWFuL2F4ZXMiOjgyN31dLDg3ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtmdW5jdGlvbiBuKHQsZSl7dmFyIHIsbixpPVswLDAsMCwwXTtmb3Iocj0wO3I8NDsrK3IpZm9yKG49MDtuPDQ7KytuKWlbbl0rPXRbNCpyK25dKmVbcl07cmV0dXJuIGl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4odC5wcm9qZWN0aW9uLG4odC52aWV3LG4odC5tb2RlbCxbZVswXSxlWzFdLGVbMl0sMV0pKSl9fSx7fV0sODc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuLGksYT10KCJnbC1wbG90M2QiKSxvPWEuY3JlYXRlQ2FtZXJhLHM9YS5jcmVhdGVTY2VuZSxsPXQoIndlYmdsLWNvbnRleHQiKSxjPXQoImhhcy1wYXNzaXZlLWV2ZW50cyIpLHU9dCgiLi4vLi4vcmVnaXN0cnkiKSxmPXQoIi4uLy4uL2xpYiIpLGg9Zi5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIoKSxwPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksZD10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksbT10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5IiksZz10KCIuLi8uLi9saWIvc2hvd19ub193ZWJnbF9tc2ciKSx2PXQoIi4vcHJvamVjdCIpLHk9dCgiLi9sYXlvdXQvY29udmVydCIpLHg9dCgiLi9sYXlvdXQvc3Bpa2VzIiksYj10KCIuL2xheW91dC90aWNrX21hcmtzIik7ZnVuY3Rpb24gXyh0LGUpe3ZhciByPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLG49dC5jb250YWluZXI7dGhpcy5ncmFwaERpdj10LmdyYXBoRGl2O3ZhciBpPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJzdmciKTtpLnN0eWxlLnBvc2l0aW9uPSJhYnNvbHV0ZSIsaS5zdHlsZS50b3A9aS5zdHlsZS5sZWZ0PSIwcHgiLGkuc3R5bGUud2lkdGg9aS5zdHlsZS5oZWlnaHQ9IjEwMCUiLGkuc3R5bGVbInotaW5kZXgiXT0yMCxpLnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIixyLmFwcGVuZENoaWxkKGkpLHRoaXMuc3ZnQ29udGFpbmVyPWksci5pZD10LmlkLHIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixyLnN0eWxlLnRvcD1yLnN0eWxlLmxlZnQ9IjBweCIsci5zdHlsZS53aWR0aD1yLnN0eWxlLmhlaWdodD0iMTAwJSIsbi5hcHBlbmRDaGlsZChyKSx0aGlzLmZ1bGxMYXlvdXQ9ZSx0aGlzLmlkPXQuaWR8fCJzY2VuZSIsdGhpcy5mdWxsU2NlbmVMYXlvdXQ9ZVt0aGlzLmlkXSx0aGlzLnBsb3RBcmdzPVtbXSx7fSx7fV0sdGhpcy5heGVzT3B0aW9ucz15KGUsZVt0aGlzLmlkXSksdGhpcy5zcGlrZU9wdGlvbnM9eChlW3RoaXMuaWRdKSx0aGlzLmNvbnRhaW5lcj1yLHRoaXMuc3RhdGljTW9kZT0hIXQuc3RhdGljUGxvdCx0aGlzLnBpeGVsUmF0aW89dGhpcy5waXhlbFJhdGlvfHx0LnBsb3RHbFBpeGVsUmF0aW98fDIsdGhpcy5kYXRhU2NhbGU9WzEsMSwxXSx0aGlzLmNvbnRvdXJMZXZlbHM9W1tdLFtdLFtdXSx0aGlzLmNvbnZlcnRBbm5vdGF0aW9ucz11LmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMzZCIsImNvbnZlcnQiKSx0aGlzLmRyYXdBbm5vdGF0aW9ucz11LmdldENvbXBvbmVudE1ldGhvZCgiYW5ub3RhdGlvbnMzZCIsImRyYXciKSx0aGlzLmluaXRpYWxpemVHTFBsb3QoKX12YXIgdz1fLnByb3RvdHlwZTt3LnByZXBhcmVPcHRpb25zPWZ1bmN0aW9uKCl7dmFyIHQ9e2NhbnZhczp0aGlzLmNhbnZhcyxnbDp0aGlzLmdsLGdsT3B0aW9uczp7cHJlc2VydmVEcmF3aW5nQnVmZmVyOmgscHJlbXVsdGlwbGllZEFscGhhOiEwLGFudGlhbGlhczohMH0sY29udGFpbmVyOnRoaXMuY29udGFpbmVyLGF4ZXM6dGhpcy5heGVzT3B0aW9ucyxzcGlrZXM6dGhpcy5zcGlrZU9wdGlvbnMscGlja1JhZGl1czoxMCxzbmFwVG9EYXRhOiEwLGF1dG9TY2FsZTohMCxhdXRvQm91bmRzOiExLGNhbWVyYU9iamVjdDp0aGlzLmNhbWVyYSxwaXhlbFJhdGlvOnRoaXMucGl4ZWxSYXRpb307aWYodGhpcy5zdGF0aWNNb2RlKXtpZighKGl8fChuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLGk9bCh7Y2FudmFzOm4scHJlc2VydmVEcmF3aW5nQnVmZmVyOiEwLHByZW11bHRpcGxpZWRBbHBoYTohMCxhbnRpYWxpYXM6ITB9KSkpKXRocm93IG5ldyBFcnJvcigiZXJyb3IgY3JlYXRpbmcgc3RhdGljIGNhbnZhcy9jb250ZXh0IGZvciBpbWFnZSBzZXJ2ZXIiKTt0LmdsPWksdC5jYW52YXM9bn1yZXR1cm4gdH07dmFyIFQ9ITA7dy50cnlDcmVhdGVQbG90PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5wcmVwYXJlT3B0aW9ucygpLGU9ITA7dHJ5e3RoaXMuZ2xwbG90PXModCl9Y2F0Y2gocil7aWYodGhpcy5zdGF0aWNNb2RlfHwhVHx8aCllPSExO2Vsc2V7Zi53YXJuKFsid2ViZ2wgc2V0dXAgZmFpbGVkIHBvc3NpYmx5IGR1ZSB0byIsImZhbHNlIHByZXNlcnZlRHJhd2luZ0J1ZmZlciBjb25maWcuIiwiVGhlIG1vYmlsZS90YWJsZXQgZGV2aWNlIG1heSBub3QgYmUgZGV0ZWN0ZWQgYnkgaXMtbW9iaWxlIG1vZHVsZS4iLCJFbmFibGluZyBwcmVzZXJ2ZURyYXdpbmdCdWZmZXIgaW4gc2Vjb25kIGF0dGVtcHQgdG8gY3JlYXRlIHdlYmdsIHNjZW5lLi4uIl0uam9pbigiICIpKTt0cnl7aD10LmdsT3B0aW9ucy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXI9ITAsdGhpcy5nbHBsb3Q9cyh0KX1jYXRjaChyKXtoPXQuZ2xPcHRpb25zLnByZXNlcnZlRHJhd2luZ0J1ZmZlcj0hMSxlPSExfX19cmV0dXJuIFQ9ITEsZX0sdy5pbml0aWFsaXplR0xDYW1lcmE9ZnVuY3Rpb24oKXt2YXIgdD10aGlzLmZ1bGxTY2VuZUxheW91dC5jYW1lcmEsZT0ib3J0aG9ncmFwaGljIj09PXQucHJvamVjdGlvbi50eXBlO3RoaXMuY2FtZXJhPW8odGhpcy5jb250YWluZXIse2NlbnRlcjpbdC5jZW50ZXIueCx0LmNlbnRlci55LHQuY2VudGVyLnpdLGV5ZTpbdC5leWUueCx0LmV5ZS55LHQuZXllLnpdLHVwOlt0LnVwLngsdC51cC55LHQudXAuel0sX29ydGhvOmUsem9vbU1pbjouMDEsem9vbU1heDoxMDAsbW9kZToib3JiaXQifSl9LHcuaW5pdGlhbGl6ZUdMUGxvdD1mdW5jdGlvbigpe3ZhciB0PXRoaXM7aWYodC5pbml0aWFsaXplR0xDYW1lcmEoKSwhdC50cnlDcmVhdGVQbG90KCkpcmV0dXJuIGcodCk7dC50cmFjZXM9e30sdC5tYWtlNHRoRGltZW5zaW9uKCk7dmFyIGU9dC5ncmFwaERpdixyPWUubGF5b3V0LG49ZnVuY3Rpb24oKXt2YXIgZT17fTtyZXR1cm4gdC5pc0NhbWVyYUNoYW5nZWQocikmJihlW3QuaWQrIi5jYW1lcmEiXT10LmdldENhbWVyYSgpKSx0LmlzQXNwZWN0Q2hhbmdlZChyKSYmKGVbdC5pZCsiLmFzcGVjdHJhdGlvIl09dC5nbHBsb3QuZ2V0QXNwZWN0cmF0aW8oKSwibWFudWFsIiE9PXJbdC5pZF0uYXNwZWN0bW9kZSYmKHQuZnVsbFNjZW5lTGF5b3V0LmFzcGVjdG1vZGU9clt0LmlkXS5hc3BlY3Rtb2RlPWVbdC5pZCsiLmFzcGVjdG1vZGUiXT0ibWFudWFsIikpLGV9LGk9ZnVuY3Rpb24odCl7aWYoITEhPT10LmZ1bGxTY2VuZUxheW91dC5kcmFnbW9kZSl7dmFyIGU9bigpO3Quc2F2ZUxheW91dChyKSx0LmdyYXBoRGl2LmVtaXQoInBsb3RseV9yZWxheW91dCIsZSl9fTtyZXR1cm4gdC5nbHBsb3QuY2FudmFzJiYodC5nbHBsb3QuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNldXAiLChmdW5jdGlvbigpe2kodCl9KSksdC5nbHBsb3QuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIndoZWVsIiwoZnVuY3Rpb24ocil7aWYoZS5fY29udGV4dC5fc2Nyb2xsWm9vbS5nbDNkKXtpZih0LmNhbWVyYS5fb3J0aG8pe3ZhciBuPXIuZGVsdGFYPnIuZGVsdGFZPzEuMToxLzEuMSxhPXQuZ2xwbG90LmdldEFzcGVjdHJhdGlvKCk7dC5nbHBsb3Quc2V0QXNwZWN0cmF0aW8oe3g6biphLngseTpuKmEueSx6Om4qYS56fSl9aSh0KX19KSwhIWMmJntwYXNzaXZlOiExfSksdC5nbHBsb3QuY2FudmFzLmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsKGZ1bmN0aW9uKCl7aWYoITEhPT10LmZ1bGxTY2VuZUxheW91dC5kcmFnbW9kZSYmMCE9PXQuY2FtZXJhLm1vdXNlTGlzdGVuZXIuYnV0dG9ucyl7dmFyIGU9bigpO3QuZ3JhcGhEaXYuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixlKX19KSksdC5zdGF0aWNNb2RlfHx0LmdscGxvdC5jYW52YXMuYWRkRXZlbnRMaXN0ZW5lcigid2ViZ2xjb250ZXh0bG9zdCIsKGZ1bmN0aW9uKHIpe2UmJmUuZW1pdCYmZS5lbWl0KCJwbG90bHlfd2ViZ2xjb250ZXh0bG9zdCIse2V2ZW50OnIsbGF5ZXI6dC5pZH0pfSksITEpKSx0LmdscGxvdC5vbmNvbnRleHRsb3NzPWZ1bmN0aW9uKCl7dC5yZWNvdmVyQ29udGV4dCgpfSx0LmdscGxvdC5vbnJlbmRlcj1mdW5jdGlvbigpe3QucmVuZGVyKCl9LCEwfSx3LnJlbmRlcj1mdW5jdGlvbigpe3ZhciB0LGU9dGhpcyxyPWUuZ3JhcGhEaXYsbj1lLnN2Z0NvbnRhaW5lcixpPWUuY29udGFpbmVyLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO3IuX2Z1bGxMYXlvdXQuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKHIpO3ZhciBhPXIuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWCxvPXIuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWSxzPWkud2lkdGgqYSxsPWkuaGVpZ2h0Km87bi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ2aWV3Qm94IiwiMCAwICIrcysiICIrbCksbi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJ3aWR0aCIscyksbi5zZXRBdHRyaWJ1dGVOUyhudWxsLCJoZWlnaHQiLGwpLGIoZSksZS5nbHBsb3QuYXhlcy51cGRhdGUoZS5heGVzT3B0aW9ucyk7Zm9yKHZhciBjLHU9T2JqZWN0LmtleXMoZS50cmFjZXMpLGg9bnVsbCxtPWUuZ2xwbG90LnNlbGVjdGlvbixnPTA7Zzx1Lmxlbmd0aDsrK2cpInNraXAiIT09KHQ9ZS50cmFjZXNbdVtnXV0pLmRhdGEuaG92ZXJpbmZvJiZ0LmhhbmRsZVBpY2sobSkmJihoPXQpLHQuc2V0Q29udG91ckxldmVscyYmdC5zZXRDb250b3VyTGV2ZWxzKCk7ZnVuY3Rpb24geSh0LHIsbil7dmFyIGk9ZS5mdWxsU2NlbmVMYXlvdXRbdCsiYXhpcyJdO3JldHVybiJsb2ciIT09aS50eXBlJiYocj1pLmQybChyKSkscC5ob3ZlckxhYmVsVGV4dChpLHIsbil9aWYobnVsbCE9PWgpe3ZhciB4PXYoZS5nbHBsb3QuY2FtZXJhUGFyYW1zLG0uZGF0YUNvb3JkaW5hdGUpO3Q9aC5kYXRhO3ZhciBfLHc9ci5fZnVsbERhdGFbdC5pbmRleF0sVD1tLmluZGV4LGs9e3hMYWJlbDp5KCJ4IixtLnRyYWNlQ29vcmRpbmF0ZVswXSx0Lnhob3ZlcmZvcm1hdCkseUxhYmVsOnkoInkiLG0udHJhY2VDb29yZGluYXRlWzFdLHQueWhvdmVyZm9ybWF0KSx6TGFiZWw6eSgieiIsbS50cmFjZUNvb3JkaW5hdGVbMl0sdC56aG92ZXJmb3JtYXQpfSxBPWQuY2FzdEhvdmVyaW5mbyh3LGUuZnVsbExheW91dCxUKSxNPShBfHwiIikuc3BsaXQoIisiKSxTPUEmJiJhbGwiPT09QTt3LmhvdmVydGVtcGxhdGV8fFN8fCgtMT09PU0uaW5kZXhPZigieCIpJiYoay54TGFiZWw9dm9pZCAwKSwtMT09PU0uaW5kZXhPZigieSIpJiYoay55TGFiZWw9dm9pZCAwKSwtMT09PU0uaW5kZXhPZigieiIpJiYoay56TGFiZWw9dm9pZCAwKSwtMT09PU0uaW5kZXhPZigidGV4dCIpJiYobS50ZXh0TGFiZWw9dm9pZCAwKSwtMT09PU0uaW5kZXhPZigibmFtZSIpJiYoaC5uYW1lPXZvaWQgMCkpO3ZhciBFPVtdOyJjb25lIj09PXQudHlwZXx8InN0cmVhbXR1YmUiPT09dC50eXBlPyhrLnVMYWJlbD15KCJ4IixtLnRyYWNlQ29vcmRpbmF0ZVszXSx0LnVob3ZlcmZvcm1hdCksKFN8fC0xIT09TS5pbmRleE9mKCJ1IikpJiZFLnB1c2goInU6ICIray51TGFiZWwpLGsudkxhYmVsPXkoInkiLG0udHJhY2VDb29yZGluYXRlWzRdLHQudmhvdmVyZm9ybWF0KSwoU3x8LTEhPT1NLmluZGV4T2YoInYiKSkmJkUucHVzaCgidjogIitrLnZMYWJlbCksay53TGFiZWw9eSgieiIsbS50cmFjZUNvb3JkaW5hdGVbNV0sdC53aG92ZXJmb3JtYXQpLChTfHwtMSE9PU0uaW5kZXhPZigidyIpKSYmRS5wdXNoKCJ3OiAiK2sud0xhYmVsKSxrLm5vcm1MYWJlbD1tLnRyYWNlQ29vcmRpbmF0ZVs2XS50b1ByZWNpc2lvbigzKSwoU3x8LTEhPT1NLmluZGV4T2YoIm5vcm0iKSkmJkUucHVzaCgibm9ybTogIitrLm5vcm1MYWJlbCksInN0cmVhbXR1YmUiPT09dC50eXBlJiYoay5kaXZlcmdlbmNlTGFiZWw9bS50cmFjZUNvb3JkaW5hdGVbN10udG9QcmVjaXNpb24oMyksKFN8fC0xIT09TS5pbmRleE9mKCJkaXZlcmdlbmNlIikpJiZFLnB1c2goImRpdmVyZ2VuY2U6ICIray5kaXZlcmdlbmNlTGFiZWwpKSxtLnRleHRMYWJlbCYmRS5wdXNoKG0udGV4dExhYmVsKSxfPUUuam9pbigiPGJyPiIpKToiaXNvc3VyZmFjZSI9PT10LnR5cGV8fCJ2b2x1bWUiPT09dC50eXBlPyhrLnZhbHVlTGFiZWw9cC5ob3ZlckxhYmVsVGV4dChlLl9tb2NrQXhpcyxlLl9tb2NrQXhpcy5kMmwobS50cmFjZUNvb3JkaW5hdGVbM10pLHQudmFsdWVob3ZlcmZvcm1hdCksRS5wdXNoKCJ2YWx1ZTogIitrLnZhbHVlTGFiZWwpLG0udGV4dExhYmVsJiZFLnB1c2gobS50ZXh0TGFiZWwpLF89RS5qb2luKCI8YnI+IikpOl89bS50ZXh0TGFiZWw7dmFyIEw9e3g6bS50cmFjZUNvb3JkaW5hdGVbMF0seTptLnRyYWNlQ29vcmRpbmF0ZVsxXSx6Om0udHJhY2VDb29yZGluYXRlWzJdLGRhdGE6dy5faW5wdXQsZnVsbERhdGE6dyxjdXJ2ZU51bWJlcjp3LmluZGV4LHBvaW50TnVtYmVyOlR9O2QuYXBwZW5kQXJyYXlQb2ludFZhbHVlKEwsdyxUKSx0Ll9tb2R1bGUuZXZlbnREYXRhJiYoTD13Ll9tb2R1bGUuZXZlbnREYXRhKEwsbSx3LHt9LFQpKTt2YXIgQz17cG9pbnRzOltMXX07aWYoZS5mdWxsU2NlbmVMYXlvdXQuaG92ZXJtb2RlKXt2YXIgUD1bXTtkLmxvbmVIb3Zlcih7dHJhY2U6dyx4OiguNSsuNSp4WzBdL3hbM10pKnMseTooLjUtLjUqeFsxXS94WzNdKSpsLHhMYWJlbDprLnhMYWJlbCx5TGFiZWw6ay55TGFiZWwsekxhYmVsOmsuekxhYmVsLHRleHQ6XyxuYW1lOmgubmFtZSxjb2xvcjpkLmNhc3RIb3Zlck9wdGlvbih3LFQsImJnY29sb3IiKXx8aC5jb2xvcixib3JkZXJDb2xvcjpkLmNhc3RIb3Zlck9wdGlvbih3LFQsImJvcmRlcmNvbG9yIiksZm9udEZhbWlseTpkLmNhc3RIb3Zlck9wdGlvbih3LFQsImZvbnQuZmFtaWx5IiksZm9udFNpemU6ZC5jYXN0SG92ZXJPcHRpb24odyxULCJmb250LnNpemUiKSxmb250Q29sb3I6ZC5jYXN0SG92ZXJPcHRpb24odyxULCJmb250LmNvbG9yIiksbmFtZUxlbmd0aDpkLmNhc3RIb3Zlck9wdGlvbih3LFQsIm5hbWVsZW5ndGgiKSx0ZXh0QWxpZ246ZC5jYXN0SG92ZXJPcHRpb24odyxULCJhbGlnbiIpLGhvdmVydGVtcGxhdGU6Zi5jYXN0T3B0aW9uKHcsVCwiaG92ZXJ0ZW1wbGF0ZSIpLGhvdmVydGVtcGxhdGVMYWJlbHM6Zi5leHRlbmRGbGF0KHt9LEwsayksZXZlbnREYXRhOltMXX0se2NvbnRhaW5lcjpuLGdkOnIsaW5PdXRfYmJveDpQfSksTC5iYm94PVBbMF19bS5idXR0b25zJiZtLmRpc3RhbmNlPDU/ci5lbWl0KCJwbG90bHlfY2xpY2siLEMpOnIuZW1pdCgicGxvdGx5X2hvdmVyIixDKSxjPUN9ZWxzZSBkLmxvbmVVbmhvdmVyKG4pLHIuZW1pdCgicGxvdGx5X3VuaG92ZXIiLGMpO2UuZHJhd0Fubm90YXRpb25zKGUpfSx3LnJlY292ZXJDb250ZXh0PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpczt0LmdscGxvdC5kaXNwb3NlKCk7dmFyIGU9ZnVuY3Rpb24oKXt0LmdscGxvdC5nbC5pc0NvbnRleHRMb3N0KCk/cmVxdWVzdEFuaW1hdGlvbkZyYW1lKGUpOnQuaW5pdGlhbGl6ZUdMUGxvdCgpP3QucGxvdC5hcHBseSh0LHQucGxvdEFyZ3MpOmYuZXJyb3IoIkNhdGFzdHJvcGhpYyBhbmQgdW5yZWNvdmVyYWJsZSBXZWJHTCBlcnJvci4gQ29udGV4dCBsb3N0LiIpfTtyZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZSl9O3ZhciBrPVsieGF4aXMiLCJ5YXhpcyIsInpheGlzIl07ZnVuY3Rpb24gQSh0LGUscil7Zm9yKHZhciBuPXQuZnVsbFNjZW5lTGF5b3V0LGk9MDtpPDM7aSsrKXt2YXIgYT1rW2ldLG89YS5jaGFyQXQoMCkscz1uW2FdLGw9ZVtvXSxjPWVbbysiY2FsZW5kYXIiXSx1PWVbIl8iK28rImxlbmd0aCJdO2lmKGYuaXNBcnJheU9yVHlwZWRBcnJheShsKSlmb3IodmFyIGgscD0wO3A8KHV8fGwubGVuZ3RoKTtwKyspaWYoZi5pc0FycmF5T3JUeXBlZEFycmF5KGxbcF0pKWZvcih2YXIgZD0wO2Q8bFtwXS5sZW5ndGg7KytkKWg9cy5kMmwobFtwXVtkXSwwLGMpLCFpc05hTihoKSYmaXNGaW5pdGUoaCkmJihyWzBdW2ldPU1hdGgubWluKHJbMF1baV0saCksclsxXVtpXT1NYXRoLm1heChyWzFdW2ldLGgpKTtlbHNlIGg9cy5kMmwobFtwXSwwLGMpLCFpc05hTihoKSYmaXNGaW5pdGUoaCkmJihyWzBdW2ldPU1hdGgubWluKHJbMF1baV0saCksclsxXVtpXT1NYXRoLm1heChyWzFdW2ldLGgpKTtlbHNlIHJbMF1baV09TWF0aC5taW4oclswXVtpXSwwKSxyWzFdW2ldPU1hdGgubWF4KHJbMV1baV0sdS0xKX19dy5wbG90PWZ1bmN0aW9uKHQsZSxyKXtpZih0aGlzLnBsb3RBcmdzPVt0LGUscl0sIXRoaXMuZ2xwbG90LmNvbnRleHRMb3N0KXt2YXIgbixpLGEsbyxzLGwsYz1lW3RoaXMuaWRdLHU9clt0aGlzLmlkXTt0aGlzLmZ1bGxMYXlvdXQ9ZSx0aGlzLmZ1bGxTY2VuZUxheW91dD1jLHRoaXMuYXhlc09wdGlvbnMubWVyZ2UoZSxjKSx0aGlzLnNwaWtlT3B0aW9ucy5tZXJnZShjKSx0aGlzLnNldFZpZXdwb3J0KGMpLHRoaXMudXBkYXRlRngoYy5kcmFnbW9kZSxjLmhvdmVybW9kZSksdGhpcy5jYW1lcmEuZW5hYmxlV2hlZWw9dGhpcy5ncmFwaERpdi5fY29udGV4dC5fc2Nyb2xsWm9vbS5nbDNkLHRoaXMuZ2xwbG90LnNldENsZWFyQ29sb3IobShjLmJnY29sb3IpKSx0aGlzLnNldENvbnZlcnQocyksdD9BcnJheS5pc0FycmF5KHQpfHwodD1bdF0pOnQ9W107dmFyIGY9W1sxLzAsMS8wLDEvMF0sWy0xLzAsLTEvMCwtMS8wXV07Zm9yKGE9MDthPHQubGVuZ3RoOysrYSkhMD09PShuPXRbYV0pLnZpc2libGUmJjAhPT1uLl9sZW5ndGgmJkEodGhpcyxuLGYpOyFmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LmZ1bGxTY2VuZUxheW91dCxuPXIuYW5ub3RhdGlvbnN8fFtdLGk9MDtpPDM7aSsrKWZvcih2YXIgYT1rW2ldLG89YS5jaGFyQXQoMCkscz1yW2FdLGw9MDtsPG4ubGVuZ3RoO2wrKyl7dmFyIGM9bltsXTtpZihjLnZpc2libGUpe3ZhciB1PXMucjJsKGNbb10pOyFpc05hTih1KSYmaXNGaW5pdGUodSkmJihlWzBdW2ldPU1hdGgubWluKGVbMF1baV0sdSksZVsxXVtpXT1NYXRoLm1heChlWzFdW2ldLHUpKX19fSh0aGlzLGYpO3ZhciBoPVsxLDEsMV07Zm9yKG89MDtvPDM7KytvKWZbMV1bb109PT1mWzBdW29dP2hbb109MTpoW29dPTEvKGZbMV1bb10tZlswXVtvXSk7Zm9yKHRoaXMuZGF0YVNjYWxlPWgsdGhpcy5jb252ZXJ0QW5ub3RhdGlvbnModGhpcyksYT0wO2E8dC5sZW5ndGg7KythKSEwPT09KG49dFthXSkudmlzaWJsZSYmMCE9PW4uX2xlbmd0aCYmKChpPXRoaXMudHJhY2VzW24udWlkXSk/aS5kYXRhLnR5cGU9PT1uLnR5cGU/aS51cGRhdGUobik6KGkuZGlzcG9zZSgpLGk9bi5fbW9kdWxlLnBsb3QodGhpcyxuKSx0aGlzLnRyYWNlc1tuLnVpZF09aSk6KGk9bi5fbW9kdWxlLnBsb3QodGhpcyxuKSx0aGlzLnRyYWNlc1tuLnVpZF09aSksaS5uYW1lPW4ubmFtZSk7dmFyIHA9T2JqZWN0LmtleXModGhpcy50cmFjZXMpO3Q6Zm9yKGE9MDthPHAubGVuZ3RoOysrYSl7Zm9yKG89MDtvPHQubGVuZ3RoOysrbylpZih0W29dLnVpZD09PXBbYV0mJiEwPT09dFtvXS52aXNpYmxlJiYwIT09dFtvXS5fbGVuZ3RoKWNvbnRpbnVlIHQ7KGk9dGhpcy50cmFjZXNbcFthXV0pLmRpc3Bvc2UoKSxkZWxldGUgdGhpcy50cmFjZXNbcFthXV19dGhpcy5nbHBsb3Qub2JqZWN0cy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0Ll90cmFjZS5kYXRhLmluZGV4LWUuX3RyYWNlLmRhdGEuaW5kZXh9KSk7dmFyIGQsZz1bWzAsMCwwXSxbMCwwLDBdXSx2PVtdLHk9e307Zm9yKGE9MDthPDM7KythKXtpZigobD0ocz1jW2tbYV1dKS50eXBlKWluIHk/KHlbbF0uYWNjKj1oW2FdLHlbbF0uY291bnQrPTEpOnlbbF09e2FjYzpoW2FdLGNvdW50OjF9LHMuYXV0b3JhbmdlKXtnWzBdW2FdPTEvMCxnWzFdW2FdPS0xLzA7dmFyIHg9dGhpcy5nbHBsb3Qub2JqZWN0cyxiPXRoaXMuZnVsbFNjZW5lTGF5b3V0LmFubm90YXRpb25zfHxbXSxfPXMuX25hbWUuY2hhckF0KDApO2ZvcihvPTA7bzx4Lmxlbmd0aDtvKyspe3ZhciB3PXhbb10sVD13LmJvdW5kcyxNPXcuX3RyYWNlLmRhdGEuX3BhZHx8MDsiRXJyb3JCYXJzIj09PXcuY29uc3RydWN0b3IubmFtZSYmcy5fbG93ZXJMb2dFcnJvckJvdW5kP2dbMF1bYV09TWF0aC5taW4oZ1swXVthXSxzLl9sb3dlckxvZ0Vycm9yQm91bmQpOmdbMF1bYV09TWF0aC5taW4oZ1swXVthXSxUWzBdW2FdL2hbYV0tTSksZ1sxXVthXT1NYXRoLm1heChnWzFdW2FdLFRbMV1bYV0vaFthXStNKX1mb3Iobz0wO288Yi5sZW5ndGg7bysrKXt2YXIgUz1iW29dO2lmKFMudmlzaWJsZSl7dmFyIEU9cy5yMmwoU1tfXSk7Z1swXVthXT1NYXRoLm1pbihnWzBdW2FdLEUpLGdbMV1bYV09TWF0aC5tYXgoZ1sxXVthXSxFKX19aWYoInJhbmdlbW9kZSJpbiBzJiYidG96ZXJvIj09PXMucmFuZ2Vtb2RlJiYoZ1swXVthXT1NYXRoLm1pbihnWzBdW2FdLDApLGdbMV1bYV09TWF0aC5tYXgoZ1sxXVthXSwwKSksZ1swXVthXT5nWzFdW2FdKWdbMF1bYV09LTEsZ1sxXVthXT0xO2Vsc2V7dmFyIEw9Z1sxXVthXS1nWzBdW2FdO2dbMF1bYV0tPUwvMzIsZ1sxXVthXSs9TC8zMn1pZigicmV2ZXJzZWQiPT09cy5hdXRvcmFuZ2Upe3ZhciBDPWdbMF1bYV07Z1swXVthXT1nWzFdW2FdLGdbMV1bYV09Q319ZWxzZXt2YXIgUD1zLnJhbmdlO2dbMF1bYV09cy5yMmwoUFswXSksZ1sxXVthXT1zLnIybChQWzFdKX1nWzBdW2FdPT09Z1sxXVthXSYmKGdbMF1bYV0tPTEsZ1sxXVthXSs9MSksdlthXT1nWzFdW2FdLWdbMF1bYV0sdGhpcy5nbHBsb3Quc2V0Qm91bmRzKGEse21pbjpnWzBdW2FdKmhbYV0sbWF4OmdbMV1bYV0qaFthXX0pfXZhciBJPWMuYXNwZWN0bW9kZTtpZigiY3ViZSI9PT1JKWQ9WzEsMSwxXTtlbHNlIGlmKCJtYW51YWwiPT09SSl7dmFyIE89Yy5hc3BlY3RyYXRpbztkPVtPLngsTy55LE8uel19ZWxzZXtpZigiYXV0byIhPT1JJiYiZGF0YSIhPT1JKXRocm93IG5ldyBFcnJvcigic2NlbmUuanMgYXNwZWN0UmF0aW8gd2FzIG5vdCBvbmUgb2YgdGhlIGVudW1lcmF0ZWQgdHlwZXMiKTt2YXIgej1bMSwxLDFdO2ZvcihhPTA7YTwzOysrYSl7dmFyIEQ9eVtsPShzPWNba1thXV0pLnR5cGVdO3pbYV09TWF0aC5wb3coRC5hY2MsMS9ELmNvdW50KS9oW2FdfWQ9ImRhdGEiPT09SXx8TWF0aC5tYXguYXBwbHkobnVsbCx6KS9NYXRoLm1pbi5hcHBseShudWxsLHopPD00P3o6WzEsMSwxXX1jLmFzcGVjdHJhdGlvLng9dS5hc3BlY3RyYXRpby54PWRbMF0sYy5hc3BlY3RyYXRpby55PXUuYXNwZWN0cmF0aW8ueT1kWzFdLGMuYXNwZWN0cmF0aW8uej11LmFzcGVjdHJhdGlvLno9ZFsyXSx0aGlzLmdscGxvdC5zZXRBc3BlY3RyYXRpbyhjLmFzcGVjdHJhdGlvKSx0aGlzLnZpZXdJbml0aWFsLmFzcGVjdHJhdGlvfHwodGhpcy52aWV3SW5pdGlhbC5hc3BlY3RyYXRpbz17eDpjLmFzcGVjdHJhdGlvLngseTpjLmFzcGVjdHJhdGlvLnksejpjLmFzcGVjdHJhdGlvLnp9KSx0aGlzLnZpZXdJbml0aWFsLmFzcGVjdG1vZGV8fCh0aGlzLnZpZXdJbml0aWFsLmFzcGVjdG1vZGU9Yy5hc3BlY3Rtb2RlKTt2YXIgUj1jLmRvbWFpbnx8bnVsbCxGPWUuX3NpemV8fG51bGw7aWYoUiYmRil7dmFyIEI9dGhpcy5jb250YWluZXIuc3R5bGU7Qi5wb3NpdGlvbj0iYWJzb2x1dGUiLEIubGVmdD1GLmwrUi54WzBdKkYudysicHgiLEIudG9wPUYudCsoMS1SLnlbMV0pKkYuaCsicHgiLEIud2lkdGg9Ri53KihSLnhbMV0tUi54WzBdKSsicHgiLEIuaGVpZ2h0PUYuaCooUi55WzFdLVIueVswXSkrInB4In10aGlzLmdscGxvdC5yZWRyYXcoKX19LHcuZGVzdHJveT1mdW5jdGlvbigpe3RoaXMuZ2xwbG90JiYodGhpcy5jYW1lcmEubW91c2VMaXN0ZW5lci5lbmFibGVkPSExLHRoaXMuY29udGFpbmVyLnJlbW92ZUV2ZW50TGlzdGVuZXIoIndoZWVsIix0aGlzLmNhbWVyYS53aGVlbExpc3RlbmVyKSx0aGlzLmNhbWVyYT1udWxsLHRoaXMuZ2xwbG90LmRpc3Bvc2UoKSx0aGlzLmNvbnRhaW5lci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyKSx0aGlzLmdscGxvdD1udWxsKX0sdy5nZXRDYW1lcmE9ZnVuY3Rpb24oKXt2YXIgdDtyZXR1cm4gdGhpcy5jYW1lcmEudmlldy5yZWNhbGNNYXRyaXgodGhpcy5jYW1lcmEudmlldy5sYXN0VCgpKSx7dXA6e3g6KHQ9dGhpcy5jYW1lcmEpLnVwWzBdLHk6dC51cFsxXSx6OnQudXBbMl19LGNlbnRlcjp7eDp0LmNlbnRlclswXSx5OnQuY2VudGVyWzFdLHo6dC5jZW50ZXJbMl19LGV5ZTp7eDp0LmV5ZVswXSx5OnQuZXllWzFdLHo6dC5leWVbMl19LHByb2plY3Rpb246e3R5cGU6ITA9PT10Ll9vcnRobz8ib3J0aG9ncmFwaGljIjoicGVyc3BlY3RpdmUifX19LHcuc2V0Vmlld3BvcnQ9ZnVuY3Rpb24odCl7dmFyIGUscj10LmNhbWVyYTt0aGlzLmNhbWVyYS5sb29rQXQuYXBwbHkodGhpcyxbWyhlPXIpLmV5ZS54LGUuZXllLnksZS5leWUuel0sW2UuY2VudGVyLngsZS5jZW50ZXIueSxlLmNlbnRlci56XSxbZS51cC54LGUudXAueSxlLnVwLnpdXSksdGhpcy5nbHBsb3Quc2V0QXNwZWN0cmF0aW8odC5hc3BlY3RyYXRpbyksIm9ydGhvZ3JhcGhpYyI9PT1yLnByb2plY3Rpb24udHlwZSE9PXRoaXMuY2FtZXJhLl9vcnRobyYmKHRoaXMuZ2xwbG90LnJlZHJhdygpLHRoaXMuZ2xwbG90LmNsZWFyUkdCQSgpLHRoaXMuZ2xwbG90LmRpc3Bvc2UoKSx0aGlzLmluaXRpYWxpemVHTFBsb3QoKSl9LHcuaXNDYW1lcmFDaGFuZ2VkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2V0Q2FtZXJhKCkscj1mLm5lc3RlZFByb3BlcnR5KHQsdGhpcy5pZCsiLmNhbWVyYSIpLmdldCgpO2Z1bmN0aW9uIG4odCxlLHIsbil7dmFyIGk9WyJ1cCIsImNlbnRlciIsImV5ZSJdLGE9WyJ4IiwieSIsInoiXTtyZXR1cm4gZVtpW3JdXSYmdFtpW3JdXVthW25dXT09PWVbaVtyXV1bYVtuXV19dmFyIGk9ITE7aWYodm9pZCAwPT09cilpPSEwO2Vsc2V7Zm9yKHZhciBhPTA7YTwzO2ErKylmb3IodmFyIG89MDtvPDM7bysrKWlmKCFuKGUscixhLG8pKXtpPSEwO2JyZWFrfSghci5wcm9qZWN0aW9ufHxlLnByb2plY3Rpb24mJmUucHJvamVjdGlvbi50eXBlIT09ci5wcm9qZWN0aW9uLnR5cGUpJiYoaT0hMCl9cmV0dXJuIGl9LHcuaXNBc3BlY3RDaGFuZ2VkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuZ2xwbG90LmdldEFzcGVjdHJhdGlvKCkscj1mLm5lc3RlZFByb3BlcnR5KHQsdGhpcy5pZCsiLmFzcGVjdHJhdGlvIikuZ2V0KCk7cmV0dXJuIHZvaWQgMD09PXJ8fHIueCE9PWUueHx8ci55IT09ZS55fHxyLnohPT1lLnp9LHcuc2F2ZUxheW91dD1mdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhLG8scz10aGlzLmZ1bGxMYXlvdXQsbD10aGlzLmlzQ2FtZXJhQ2hhbmdlZCh0KSxjPXRoaXMuaXNBc3BlY3RDaGFuZ2VkKHQpLGg9bHx8YztpZihoKXt2YXIgcD17fTtpZihsJiYoZT10aGlzLmdldENhbWVyYSgpLG49KHI9Zi5uZXN0ZWRQcm9wZXJ0eSh0LHRoaXMuaWQrIi5jYW1lcmEiKSkuZ2V0KCkscFt0aGlzLmlkKyIuY2FtZXJhIl09biksYyYmKGk9dGhpcy5nbHBsb3QuZ2V0QXNwZWN0cmF0aW8oKSxvPShhPWYubmVzdGVkUHJvcGVydHkodCx0aGlzLmlkKyIuYXNwZWN0cmF0aW8iKSkuZ2V0KCkscFt0aGlzLmlkKyIuYXNwZWN0cmF0aW8iXT1vKSx1LmNhbGwoIl9zdG9yZURpcmVjdEdVSUVkaXQiLHQscy5fcHJlR1VJLHApLGwpci5zZXQoZSksZi5uZXN0ZWRQcm9wZXJ0eShzLHRoaXMuaWQrIi5jYW1lcmEiKS5zZXQoZSk7aWYoYylhLnNldChpKSxmLm5lc3RlZFByb3BlcnR5KHMsdGhpcy5pZCsiLmFzcGVjdHJhdGlvIikuc2V0KGkpLHRoaXMuZ2xwbG90LnJlZHJhdygpfXJldHVybiBofSx3LnVwZGF0ZUZ4PWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5jYW1lcmE7aWYocilpZigib3JiaXQiPT09dClyLm1vZGU9Im9yYml0IixyLmtleUJpbmRpbmdNb2RlPSJyb3RhdGUiO2Vsc2UgaWYoInR1cm50YWJsZSI9PT10KXtyLnVwPVswLDAsMV0sci5tb2RlPSJ0dXJudGFibGUiLHIua2V5QmluZGluZ01vZGU9InJvdGF0ZSI7dmFyIG49dGhpcy5ncmFwaERpdixpPW4uX2Z1bGxMYXlvdXQsYT10aGlzLmZ1bGxTY2VuZUxheW91dC5jYW1lcmEsbz1hLnVwLngscz1hLnVwLnksbD1hLnVwLno7aWYobC9NYXRoLnNxcnQobypvK3MqcytsKmwpPC45OTkpe3ZhciBjPXRoaXMuaWQrIi5jYW1lcmEudXAiLGg9e3g6MCx5OjAsejoxfSxwPXt9O3BbY109aDt2YXIgZD1uLmxheW91dDt1LmNhbGwoIl9zdG9yZURpcmVjdEdVSUVkaXQiLGQsaS5fcHJlR1VJLHApLGEudXA9aCxmLm5lc3RlZFByb3BlcnR5KGQsYykuc2V0KGgpfX1lbHNlIHIua2V5QmluZGluZ01vZGU9dDt0aGlzLmZ1bGxTY2VuZUxheW91dC5ob3Zlcm1vZGU9ZX0sdy50b0ltYWdlPWZ1bmN0aW9uKHQpe3R8fCh0PSJwbmciKSx0aGlzLnN0YXRpY01vZGUmJnRoaXMuY29udGFpbmVyLmFwcGVuZENoaWxkKG4pLHRoaXMuZ2xwbG90LnJlZHJhdygpO3ZhciBlPXRoaXMuZ2xwbG90LmdsLHI9ZS5kcmF3aW5nQnVmZmVyV2lkdGgsaT1lLmRyYXdpbmdCdWZmZXJIZWlnaHQ7ZS5iaW5kRnJhbWVidWZmZXIoZS5GUkFNRUJVRkZFUixudWxsKTt2YXIgYT1uZXcgVWludDhBcnJheShyKmkqNCk7ZS5yZWFkUGl4ZWxzKDAsMCxyLGksZS5SR0JBLGUuVU5TSUdORURfQllURSxhKSxmdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPTAsaT1yLTE7bjxpOysrbiwtLWkpZm9yKHZhciBhPTA7YTxlOysrYSlmb3IodmFyIG89MDtvPDQ7KytvKXt2YXIgcz00KihlKm4rYSkrbyxsPTQqKGUqaSthKStvLGM9dFtzXTt0W3NdPXRbbF0sdFtsXT1jfX0oYSxyLGkpLGZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPHI7KytuKWZvcih2YXIgaT0wO2k8ZTsrK2kpe3ZhciBhPTQqKGUqbitpKSxvPXRbYSszXTtpZihvPjApZm9yKHZhciBzPTI1NS9vLGw9MDtsPDM7KytsKXRbYStsXT1NYXRoLm1pbihzKnRbYStsXSwyNTUpfX0oYSxyLGkpO3ZhciBvPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO28ud2lkdGg9cixvLmhlaWdodD1pO3ZhciBzLGw9by5nZXRDb250ZXh0KCIyZCIpLGM9bC5jcmVhdGVJbWFnZURhdGEocixpKTtzd2l0Y2goYy5kYXRhLnNldChhKSxsLnB1dEltYWdlRGF0YShjLDAsMCksdCl7Y2FzZSJqcGVnIjpzPW8udG9EYXRhVVJMKCJpbWFnZS9qcGVnIik7YnJlYWs7Y2FzZSJ3ZWJwIjpzPW8udG9EYXRhVVJMKCJpbWFnZS93ZWJwIik7YnJlYWs7ZGVmYXVsdDpzPW8udG9EYXRhVVJMKCJpbWFnZS9wbmciKX1yZXR1cm4gdGhpcy5zdGF0aWNNb2RlJiZ0aGlzLmNvbnRhaW5lci5yZW1vdmVDaGlsZChuKSxzfSx3LnNldENvbnZlcnQ9ZnVuY3Rpb24oKXtmb3IodmFyIHQ9MDt0PDM7dCsrKXt2YXIgZT10aGlzLmZ1bGxTY2VuZUxheW91dFtrW3RdXTtwLnNldENvbnZlcnQoZSx0aGlzLmZ1bGxMYXlvdXQpLGUuc2V0U2NhbGU9Zi5ub29wfX0sdy5tYWtlNHRoRGltZW5zaW9uPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5ncmFwaERpdi5fZnVsbExheW91dDt0aGlzLl9tb2NrQXhpcz17dHlwZToibGluZWFyIixzaG93ZXhwb25lbnQ6ImFsbCIsZXhwb25lbnRmb3JtYXQ6IkIifSxwLnNldENvbnZlcnQodGhpcy5fbW9ja0F4aXMsdCl9LGUuZXhwb3J0cz1ffSx7Ii4uLy4uL2NvbXBvbmVudHMvZngiOjY3OSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zaG93X25vX3dlYmdsX21zZyI6Nzk4LCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo4MDEsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4vbGF5b3V0L2NvbnZlcnQiOjg3MywiLi9sYXlvdXQvc3Bpa2VzIjo4NzYsIi4vbGF5b3V0L3RpY2tfbWFya3MiOjg3NywiLi9wcm9qZWN0Ijo4NzgsImdsLXBsb3QzZCI6MzEyLCJoYXMtcGFzc2l2ZS1ldmVudHMiOjQyNiwid2ViZ2wtY29udGV4dCI6NjAyfV0sODgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXtuPW58fHQubGVuZ3RoO2Zvcih2YXIgaT1uZXcgQXJyYXkobiksYT0wO2E8bjthKyspaVthXT1bdFthXSxlW2FdLHJbYV1dO3JldHVybiBpfX0se31dLDg4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi9hbmltYXRpb25fYXR0cmlidXRlcyIpLGE9dCgiLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksbz10KCIuLi9jb21wb25lbnRzL3NoYXBlcy9kcmF3X25ld3NoYXBlL2F0dHJpYnV0ZXMiKSxzPXQoIi4vcGFkX2F0dHJpYnV0ZXMiKSxsPXQoIi4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGM9bih7ZWRpdFR5cGU6ImNhbGMifSk7Yy5mYW1pbHkuZGZsdD0nIk9wZW4gU2FucyIsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmJyxjLnNpemUuZGZsdD0xMixjLmNvbG9yLmRmbHQ9YS5kZWZhdWx0TGluZSxlLmV4cG9ydHM9e2ZvbnQ6Yyx0aXRsZTp7dGV4dDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToibGF5b3V0c3R5bGUifSxmb250Om4oe2VkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9KSx4cmVmOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJjb250YWluZXIiLHZhbHVlczpbImNvbnRhaW5lciIsInBhcGVyIl0sZWRpdFR5cGU6ImxheW91dHN0eWxlIn0seXJlZjp7dmFsVHlwZToiZW51bWVyYXRlZCIsZGZsdDoiY29udGFpbmVyIix2YWx1ZXM6WyJjb250YWluZXIiLCJwYXBlciJdLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouNSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSx5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LHhhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGRmbHQ6ImF1dG8iLHZhbHVlczpbImF1dG8iLCJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSx5YW5jaG9yOnt2YWxUeXBlOiJlbnVtZXJhdGVkIixkZmx0OiJhdXRvIix2YWx1ZXM6WyJhdXRvIiwidG9wIiwibWlkZGxlIiwiYm90dG9tIl0sZWRpdFR5cGU6ImxheW91dHN0eWxlIn0scGFkOmwocyh7ZWRpdFR5cGU6ImxheW91dHN0eWxlIn0pLHt9KSxlZGl0VHlwZToibGF5b3V0c3R5bGUifSx1bmlmb3JtdGV4dDp7bW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlshMSwiaGlkZSIsInNob3ciXSxkZmx0OiExLGVkaXRUeXBlOiJwbG90In0sbWluc2l6ZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGF1dG9zaXplOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJub25lIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjEwLGRmbHQ6NzAwLGVkaXRUeXBlOiJwbG90In0saGVpZ2h0Ont2YWxUeXBlOiJudW1iZXIiLG1pbjoxMCxkZmx0OjQ1MCxlZGl0VHlwZToicGxvdCJ9LG1hcmdpbjp7bDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjgwLGVkaXRUeXBlOiJwbG90In0scjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjgwLGVkaXRUeXBlOiJwbG90In0sdDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEwMCxlZGl0VHlwZToicGxvdCJ9LGI6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo4MCxlZGl0VHlwZToicGxvdCJ9LHBhZDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxhdXRvZXhwYW5kOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxjb21wdXRlZDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LHBhcGVyX2JnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuYmFja2dyb3VuZCxlZGl0VHlwZToicGxvdCJ9LHBsb3RfYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5iYWNrZ3JvdW5kLGVkaXRUeXBlOiJsYXlvdXRzdHlsZSJ9LGF1dG90eXBlbnVtYmVyczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY29udmVydCB0eXBlcyIsInN0cmljdCJdLGRmbHQ6ImNvbnZlcnQgdHlwZXMiLGVkaXRUeXBlOiJjYWxjIn0sc2VwYXJhdG9yczp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LGhpZGVzb3VyY2VzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJwbG90In0sc2hvd2xlZ2VuZDp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImxlZ2VuZCJ9LGNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGRmbHQ6YS5kZWZhdWx0cyxlZGl0VHlwZToiY2FsYyJ9LGRhdGFyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LHVpcmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxlZGl0cmV2aXNpb246e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxzZWxlY3Rpb25yZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LHRlbXBsYXRlOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0sbmV3c2hhcGU6by5uZXdzaGFwZSxhY3RpdmVzaGFwZTpvLmFjdGl2ZXNoYXBlLG1ldGE6e3ZhbFR5cGU6ImFueSIsYXJyYXlPazohMCxlZGl0VHlwZToicGxvdCJ9LHRyYW5zaXRpb246bCh7fSxpLnRyYW5zaXRpb24se2VkaXRUeXBlOiJub25lIn0pLF9kZXByZWNhdGVkOnt0aXRsZTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToibGF5b3V0c3R5bGUifSx0aXRsZWZvbnQ6bih7ZWRpdFR5cGU6ImxheW91dHN0eWxlIn0pfX19LHsiLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uL2NvbXBvbmVudHMvc2hhcGVzL2RyYXdfbmV3c2hhcGUvYXR0cmlidXRlcyI6NzI0LCIuLi9saWIvZXh0ZW5kIjo3NjYsIi4vYW5pbWF0aW9uX2F0dHJpYnV0ZXMiOjgyMSwiLi9mb250X2F0dHJpYnV0ZXMiOjg1NiwiLi9wYWRfYXR0cmlidXRlcyI6ODg5fV0sODgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYi9zb3J0X29iamVjdF9rZXlzIiksaT0nXHhhOSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0Ij5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnLGE9WydceGE5IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2NhcnRvLmNvbS8iPkNhcnRvPC9hPicsaV0uam9pbigiICIpLG89WydNYXAgdGlsZXMgYnkgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vc3RhbWVuLmNvbSI+U3RhbWVuIERlc2lnbjwvYT4nLCd1bmRlciA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LzMuMCI+Q0MgQlkgMy4wPC9hPicsInwiLCdEYXRhIGJ5IDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL29wZW5zdHJlZXRtYXAub3JnIj5PcGVuU3RyZWV0TWFwPC9hPiBjb250cmlidXRvcnMnLCd1bmRlciA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0Ij5PRGJMPC9hPiddLmpvaW4oIiAiKSxzPXsib3Blbi1zdHJlZXQtbWFwIjp7aWQ6Im9zbSIsdmVyc2lvbjo4LHNvdXJjZXM6eyJwbG90bHktb3NtLXRpbGVzIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjppLHRpbGVzOlsiaHR0cHM6Ly9hLnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nIiwiaHR0cHM6Ly9iLnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nIl0sdGlsZVNpemU6MjU2fX0sbGF5ZXJzOlt7aWQ6InBsb3RseS1vc20tdGlsZXMiLHR5cGU6InJhc3RlciIsc291cmNlOiJwbG90bHktb3NtLXRpbGVzIixtaW56b29tOjAsbWF4em9vbToyMn1dfSwid2hpdGUtYmciOntpZDoid2hpdGUtYmciLHZlcnNpb246OCxzb3VyY2VzOnt9LGxheWVyczpbe2lkOiJ3aGl0ZS1iZyIsdHlwZToiYmFja2dyb3VuZCIscGFpbnQ6eyJiYWNrZ3JvdW5kLWNvbG9yIjoiI0ZGRkZGRiJ9LG1pbnpvb206MCxtYXh6b29tOjIyfV19LCJjYXJ0by1wb3NpdHJvbiI6e2lkOiJjYXJ0by1wb3NpdHJvbiIsdmVyc2lvbjo4LHNvdXJjZXM6eyJwbG90bHktY2FydG8tcG9zaXRyb24iOnt0eXBlOiJyYXN0ZXIiLGF0dHJpYnV0aW9uOmEsdGlsZXM6WyJodHRwczovL2NhcnRvZGItYmFzZW1hcHMtYy5nbG9iYWwuc3NsLmZhc3RseS5uZXQvbGlnaHRfYWxsL3t6fS97eH0ve3l9LnBuZyJdLHRpbGVTaXplOjI1Nn19LGxheWVyczpbe2lkOiJwbG90bHktY2FydG8tcG9zaXRyb24iLHR5cGU6InJhc3RlciIsc291cmNlOiJwbG90bHktY2FydG8tcG9zaXRyb24iLG1pbnpvb206MCxtYXh6b29tOjIyfV19LCJjYXJ0by1kYXJrbWF0dGVyIjp7aWQ6ImNhcnRvLWRhcmttYXR0ZXIiLHZlcnNpb246OCxzb3VyY2VzOnsicGxvdGx5LWNhcnRvLWRhcmttYXR0ZXIiOnt0eXBlOiJyYXN0ZXIiLGF0dHJpYnV0aW9uOmEsdGlsZXM6WyJodHRwczovL2NhcnRvZGItYmFzZW1hcHMtYy5nbG9iYWwuc3NsLmZhc3RseS5uZXQvZGFya19hbGwve3p9L3t4fS97eX0ucG5nIl0sdGlsZVNpemU6MjU2fX0sbGF5ZXJzOlt7aWQ6InBsb3RseS1jYXJ0by1kYXJrbWF0dGVyIix0eXBlOiJyYXN0ZXIiLHNvdXJjZToicGxvdGx5LWNhcnRvLWRhcmttYXR0ZXIiLG1pbnpvb206MCxtYXh6b29tOjIyfV19LCJzdGFtZW4tdGVycmFpbiI6e2lkOiJzdGFtZW4tdGVycmFpbiIsdmVyc2lvbjo4LHNvdXJjZXM6eyJwbG90bHktc3RhbWVuLXRlcnJhaW4iOnt0eXBlOiJyYXN0ZXIiLGF0dHJpYnV0aW9uOm8sdGlsZXM6WyJodHRwczovL3N0YW1lbi10aWxlcy5hLnNzbC5mYXN0bHkubmV0L3RlcnJhaW4ve3p9L3t4fS97eX0ucG5nIl0sdGlsZVNpemU6MjU2fX0sbGF5ZXJzOlt7aWQ6InBsb3RseS1zdGFtZW4tdGVycmFpbiIsdHlwZToicmFzdGVyIixzb3VyY2U6InBsb3RseS1zdGFtZW4tdGVycmFpbiIsbWluem9vbTowLG1heHpvb206MjJ9XX0sInN0YW1lbi10b25lciI6e2lkOiJzdGFtZW4tdG9uZXIiLHZlcnNpb246OCxzb3VyY2VzOnsicGxvdGx5LXN0YW1lbi10b25lciI6e3R5cGU6InJhc3RlciIsYXR0cmlidXRpb246byx0aWxlczpbImh0dHBzOi8vc3RhbWVuLXRpbGVzLmEuc3NsLmZhc3RseS5uZXQvdG9uZXIve3p9L3t4fS97eX0ucG5nIl0sdGlsZVNpemU6MjU2fX0sbGF5ZXJzOlt7aWQ6InBsb3RseS1zdGFtZW4tdG9uZXIiLHR5cGU6InJhc3RlciIsc291cmNlOiJwbG90bHktc3RhbWVuLXRvbmVyIixtaW56b29tOjAsbWF4em9vbToyMn1dfSwic3RhbWVuLXdhdGVyY29sb3IiOntpZDoic3RhbWVuLXdhdGVyY29sb3IiLHZlcnNpb246OCxzb3VyY2VzOnsicGxvdGx5LXN0YW1lbi13YXRlcmNvbG9yIjp7dHlwZToicmFzdGVyIixhdHRyaWJ1dGlvbjpbJ01hcCB0aWxlcyBieSA8YSB0YXJnZXQ9Il9ibGFuayIgaHJlZj0iaHR0cHM6Ly9zdGFtZW4uY29tIj5TdGFtZW4gRGVzaWduPC9hPicsJ3VuZGVyIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnkvMy4wIj5DQyBCWSAzLjA8L2E+JywifCIsJ0RhdGEgYnkgPGEgdGFyZ2V0PSJfYmxhbmsiIGhyZWY9Imh0dHBzOi8vb3BlbnN0cmVldG1hcC5vcmciPk9wZW5TdHJlZXRNYXA8L2E+IGNvbnRyaWJ1dG9ycycsJ3VuZGVyIDxhIHRhcmdldD0iX2JsYW5rIiBocmVmPSJodHRwczovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvYnktc2EvMy4wIj5DQyBCWSBTQTwvYT4nXS5qb2luKCIgIiksdGlsZXM6WyJodHRwczovL3N0YW1lbi10aWxlcy5hLnNzbC5mYXN0bHkubmV0L3dhdGVyY29sb3Ive3p9L3t4fS97eX0ucG5nIl0sdGlsZVNpemU6MjU2fX0sbGF5ZXJzOlt7aWQ6InBsb3RseS1zdGFtZW4td2F0ZXJjb2xvciIsdHlwZToicmFzdGVyIixzb3VyY2U6InBsb3RseS1zdGFtZW4td2F0ZXJjb2xvciIsbWluem9vbTowLG1heHpvb206MjJ9XX19LGw9bihzKTtlLmV4cG9ydHM9e3JlcXVpcmVkVmVyc2lvbjoiMS4xMC4xIixzdHlsZVVybFByZWZpeDoibWFwYm94Oi8vc3R5bGVzL21hcGJveC8iLHN0eWxlVXJsU3VmZml4OiJ2OSIsc3R5bGVWYWx1ZXNNYXBib3g6WyJiYXNpYyIsInN0cmVldHMiLCJvdXRkb29ycyIsImxpZ2h0IiwiZGFyayIsInNhdGVsbGl0ZSIsInNhdGVsbGl0ZS1zdHJlZXRzIl0sc3R5bGVWYWx1ZURmbHQ6ImJhc2ljIixzdHlsZXNOb25NYXBib3g6cyxzdHlsZVZhbHVlc05vbk1hcGJveDpsLHRyYWNlTGF5ZXJQcmVmaXg6InBsb3RseS10cmFjZS1sYXllci0iLGxheW91dExheWVyUHJlZml4OiJwbG90bHktbGF5b3V0LWxheWVyLSIsd3JvbmdWZXJzaW9uRXJyb3JNc2c6WyJZb3VyIGN1c3RvbSBwbG90bHkuanMgYnVuZGxlIGlzIG5vdCB1c2luZyB0aGUgY29ycmVjdCBtYXBib3gtZ2wgdmVyc2lvbiIsIlBsZWFzZSBpbnN0YWxsIG1hcGJveC1nbEAxLjEwLjEuIl0uam9pbigiXG4iKSxub0FjY2Vzc1Rva2VuRXJyb3JNc2c6WyJNaXNzaW5nIE1hcGJveCBhY2Nlc3MgdG9rZW4uIiwiTWFwYm94IHRyYWNlIHR5cGUgcmVxdWlyZSBhIE1hcGJveCBhY2Nlc3MgdG9rZW4gdG8gYmUgcmVnaXN0ZXJlZC4iLCJGb3IgZXhhbXBsZToiLCIgIFBsb3RseS5uZXdQbG90KGdkLCBkYXRhLCBsYXlvdXQsIHsgbWFwYm94QWNjZXNzVG9rZW46ICdteS1hY2Nlc3MtdG9rZW4nIH0pOyIsIk1vcmUgaW5mbyBoZXJlOiBodHRwczovL3d3dy5tYXBib3guY29tL2hlbHAvZGVmaW5lLWFjY2Vzcy10b2tlbi8iXS5qb2luKCJcbiIpLG1pc3NpbmdTdHlsZUVycm9yTXNnOlsiTm8gdmFsaWQgbWFwYm94IHN0eWxlIGZvdW5kLCBwbGVhc2Ugc2V0IGBtYXBib3guc3R5bGVgIHRvIG9uZSBvZjoiLGwuam9pbigiLCAiKSwib3IgcmVnaXN0ZXIgYSBNYXBib3ggYWNjZXNzIHRva2VuIHRvIHVzZSBhIE1hcGJveC1zZXJ2ZWQgc3R5bGUuIl0uam9pbigiXG4iKSxtdWx0aXBsZVRva2Vuc0Vycm9yTXNnOlsiU2V0IG11bHRpcGxlIG1hcGJveCBhY2Nlc3MgdG9rZW4gYWNyb3NzIGRpZmZlcmVudCBtYXBib3ggc3VicGxvdCwiLCJ1c2luZyBmaXJzdCB0b2tlbiBmb3VuZCBhcyBtYXBib3gtZ2wgZG9lcyBub3QgYWxsb3cgbXVsdGlwbGVhY2Nlc3MgdG9rZW5zIG9uIHRoZSBzYW1lIHBhZ2UuIl0uam9pbigiXG4iKSxtYXBPbkVycm9yTXNnOiJNYXBib3ggZXJyb3IuIixtYXBib3hMb2dvOntwYXRoMDoibSAxMC41LDEuMjQgYyAtNS4xMSwwIC05LjI1LDQuMTUgLTkuMjUsOS4yNSAwLDUuMSA0LjE1LDkuMjUgOS4yNSw5LjI1IDUuMSwwIDkuMjUsLTQuMTUgOS4yNSwtOS4yNSAwLC01LjExIC00LjE0LC05LjI1IC05LjI1LC05LjI1IHogbSA0LjM5LDExLjUzIGMgLTEuOTMsMS45MyAtNC43OCwyLjMxIC02LjcsMi4zMSAtMC43LDAgLTEuNDEsLTAuMDUgLTIuMSwtMC4xNiAwLDAgLTEuMDIsLTUuNjQgMi4xNCwtOC44MSAwLjgzLC0wLjgzIDEuOTUsLTEuMjggMy4xMywtMS4yOCAxLjI3LDAgMi40OSwwLjUxIDMuMzksMS40MiAxLjg0LDEuODQgMS44OSw0Ljc1IDAuMTQsNi41MiB6IixwYXRoMToiTSAxMC41LC0wLjAxIEMgNC43LC0wLjAxIDAsNC43IDAsMTAuNDkgYyAwLDUuNzkgNC43LDEwLjUgMTAuNSwxMC41IDUuOCwwIDEwLjUsLTQuNyAxMC41LC0xMC41IEMgMjAuOTksNC43IDE2LjMsLTAuMDEgMTAuNSwtMC4wMSBaIG0gMCwxOS43NSBjIC01LjExLDAgLTkuMjUsLTQuMTUgLTkuMjUsLTkuMjUgMCwtNS4xIDQuMTQsLTkuMjYgOS4yNSwtOS4yNiA1LjExLDAgOS4yNSw0LjE1IDkuMjUsOS4yNSAwLDUuMTMgLTQuMTQsOS4yNiAtOS4yNSw5LjI2IHoiLHBhdGgyOiJNIDE0Ljc0LDYuMjUgQyAxMi45LDQuNDEgOS45OCw0LjM1IDguMjMsNi4xIDUuMDcsOS4yNyA2LjA5LDE0LjkxIDYuMDksMTQuOTEgYyAwLDAgNS42NCwxLjAyIDguODEsLTIuMTQgQyAxNi42NCwxMSAxNi41OSw4LjA5IDE0Ljc0LDYuMjUgWiBtIC0yLjI3LDQuMDkgLTAuOTEsMS44NyAtMC45LC0xLjg3IC0xLjg2LC0wLjkxIDEuODYsLTAuOSAwLjksLTEuODcgMC45MSwxLjg3IDEuODYsMC45IHoiLHBvbHlnb246IjExLjU2LDEyLjIxIDEwLjY2LDEwLjM0IDguOCw5LjQzIDEwLjY2LDguNTMgMTEuNTYsNi42NiAxMi40Nyw4LjUzIDE0LjMzLDkuNDMgMTIuNDcsMTAuMzQifSxzdHlsZVJ1bGVzOnttYXA6Im92ZXJmbG93OmhpZGRlbjtwb3NpdGlvbjpyZWxhdGl2ZTsiLCJtaXNzaW5nLWNzcyI6ImRpc3BsYXk6bm9uZTsiLGNhbmFyeToiYmFja2dyb3VuZC1jb2xvcjpzYWxtb247IiwiY3RybC1ib3R0b20tbGVmdCI6InBvc2l0aW9uOiBhYnNvbHV0ZTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDI7IGJvdHRvbTogMDsgbGVmdDogMDsiLCJjdHJsLWJvdHRvbS1yaWdodCI6InBvc2l0aW9uOiBhYnNvbHV0ZTsgcG9pbnRlci1ldmVudHM6IG5vbmU7IHotaW5kZXg6IDI7IHJpZ2h0OiAwOyBib3R0b206IDA7IixjdHJsOiJjbGVhcjogYm90aDsgcG9pbnRlci1ldmVudHM6IGF1dG87IHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDApOyIsImN0cmwtYXR0cmliLm1hcGJveGdsLWNvbXBhY3QgLm1hcGJveGdsLWN0cmwtYXR0cmliLWlubmVyIjoiZGlzcGxheTogbm9uZTsiLCJjdHJsLWF0dHJpYi5tYXBib3hnbC1jb21wYWN0OmhvdmVyIC5tYXBib3hnbC1jdHJsLWF0dHJpYi1pbm5lciI6ImRpc3BsYXk6IGJsb2NrOyBtYXJnaW4tdG9wOjJweCIsImN0cmwtYXR0cmliLm1hcGJveGdsLWNvbXBhY3Q6aG92ZXIiOiJwYWRkaW5nOiAycHggMjRweCAycHggNHB4OyB2aXNpYmlsaXR5OiB2aXNpYmxlOyBtYXJnaW4tdG9wOiA2cHg7IiwiY3RybC1hdHRyaWIubWFwYm94Z2wtY29tcGFjdDo6YWZ0ZXIiOidjb250ZW50OiAiIjsgY3Vyc29yOiBwb2ludGVyOyBwb3NpdGlvbjogYWJzb2x1dGU7IGJhY2tncm91bmQtaW1hZ2U6IHVybChcJ2RhdGE6aW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04LCUzQ3N2ZyB2aWV3Qm94PSIwIDAgMjAgMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIlM0UgJTNDcGF0aCBmaWxsPSIlMjMzMzMzMzMiIGZpbGwtcnVsZT0iZXZlbm9kZCIgZD0iTTQsMTBhNiw2IDAgMSwwIDEyLDBhNiw2IDAgMSwwIC0xMiwwIE05LDdhMSwxIDAgMSwwIDIsMGExLDEgMCAxLDAgLTIsMCBNOSwxMGExLDEgMCAxLDEgMiwwbDAsM2ExLDEgMCAxLDEgLTIsMCIvJTNFICUzQy9zdmclM0VcJyk7IGJhY2tncm91bmQtY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC41KTsgd2lkdGg6IDI0cHg7IGhlaWdodDogMjRweDsgYm94LXNpemluZzogYm9yZGVyLWJveDsgYm9yZGVyLXJhZGl1czogMTJweDsnLCJjdHJsLWF0dHJpYi5tYXBib3hnbC1jb21wYWN0IjoibWluLWhlaWdodDogMjBweDsgcGFkZGluZzogMDsgbWFyZ2luOiAxMHB4OyBwb3NpdGlvbjogcmVsYXRpdmU7IGJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDNweCAxMnB4IDEycHggM3B4OyIsImN0cmwtYm90dG9tLXJpZ2h0ID4gLm1hcGJveGdsLWN0cmwtYXR0cmliLm1hcGJveGdsLWNvbXBhY3Q6OmFmdGVyIjoiYm90dG9tOiAwOyByaWdodDogMCIsImN0cmwtYm90dG9tLWxlZnQgPiAubWFwYm94Z2wtY3RybC1hdHRyaWIubWFwYm94Z2wtY29tcGFjdDo6YWZ0ZXIiOiJib3R0b206IDA7IGxlZnQ6IDAiLCJjdHJsLWJvdHRvbS1sZWZ0IC5tYXBib3hnbC1jdHJsIjoibWFyZ2luOiAwIDAgMTBweCAxMHB4OyBmbG9hdDogbGVmdDsiLCJjdHJsLWJvdHRvbS1yaWdodCAubWFwYm94Z2wtY3RybCI6Im1hcmdpbjogMCAxMHB4IDEwcHggMDsgZmxvYXQ6IHJpZ2h0OyIsImN0cmwtYXR0cmliIjoiY29sb3I6IHJnYmEoMCwgMCwgMCwgMC43NSk7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgZm9udC1zaXplOiAxMnB4IiwiY3RybC1hdHRyaWIgYSI6ImNvbG9yOiByZ2JhKDAsIDAsIDAsIDAuNzUpOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IGZvbnQtc2l6ZTogMTJweCIsImN0cmwtYXR0cmliIGE6aG92ZXIiOiJjb2xvcjogaW5oZXJpdDsgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IiwiY3RybC1hdHRyaWIgLm1hcGJveC1pbXByb3ZlLW1hcCI6ImZvbnQtd2VpZ2h0OiBib2xkOyBtYXJnaW4tbGVmdDogMnB4OyIsImF0dHJpYi1lbXB0eSI6ImRpc3BsYXk6IG5vbmU7IiwiY3RybC1sb2dvIjonZGlzcGxheTpibG9jazsgd2lkdGg6IDIxcHg7IGhlaWdodDogMjFweDsgYmFja2dyb3VuZC1pbWFnZTogdXJsKFwnZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJTNDP3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJ1dGYtOCI/JTNFICUzQ3N2ZyB2ZXJzaW9uPSIxLjEiIGlkPSJMYXllcl8xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4PSIwcHgiIHk9IjBweCIgdmlld0JveD0iMCAwIDIxIDIxIiBzdHlsZT0iZW5hYmxlLWJhY2tncm91bmQ6bmV3IDAgMCAyMSAyMTsiIHhtbDpzcGFjZT0icHJlc2VydmUiJTNFJTNDZyB0cmFuc2Zvcm09InRyYW5zbGF0ZSgwLDAuMDEpIiUzRSUzQ3BhdGggZD0ibSAxMC41LDEuMjQgYyAtNS4xMSwwIC05LjI1LDQuMTUgLTkuMjUsOS4yNSAwLDUuMSA0LjE1LDkuMjUgOS4yNSw5LjI1IDUuMSwwIDkuMjUsLTQuMTUgOS4yNSwtOS4yNSAwLC01LjExIC00LjE0LC05LjI1IC05LjI1LC05LjI1IHogbSA0LjM5LDExLjUzIGMgLTEuOTMsMS45MyAtNC43OCwyLjMxIC02LjcsMi4zMSAtMC43LDAgLTEuNDEsLTAuMDUgLTIuMSwtMC4xNiAwLDAgLTEuMDIsLTUuNjQgMi4xNCwtOC44MSAwLjgzLC0wLjgzIDEuOTUsLTEuMjggMy4xMywtMS4yOCAxLjI3LDAgMi40OSwwLjUxIDMuMzksMS40MiAxLjg0LDEuODQgMS44OSw0Ljc1IDAuMTQsNi41MiB6IiBzdHlsZT0ib3BhY2l0eTowLjk7ZmlsbDolMjNmZmZmZmY7ZW5hYmxlLWJhY2tncm91bmQ6bmV3IiBjbGFzcz0ic3QwIi8lM0UlM0NwYXRoIGQ9Ik0gMTAuNSwtMC4wMSBDIDQuNywtMC4wMSAwLDQuNyAwLDEwLjQ5IGMgMCw1Ljc5IDQuNywxMC41IDEwLjUsMTAuNSA1LjgsMCAxMC41LC00LjcgMTAuNSwtMTAuNSBDIDIwLjk5LDQuNyAxNi4zLC0wLjAxIDEwLjUsLTAuMDEgWiBtIDAsMTkuNzUgYyAtNS4xMSwwIC05LjI1LC00LjE1IC05LjI1LC05LjI1IDAsLTUuMSA0LjE0LC05LjI2IDkuMjUsLTkuMjYgNS4xMSwwIDkuMjUsNC4xNSA5LjI1LDkuMjUgMCw1LjEzIC00LjE0LDkuMjYgLTkuMjUsOS4yNiB6IiBzdHlsZT0ib3BhY2l0eTowLjM1O2VuYWJsZS1iYWNrZ3JvdW5kOm5ldyIgY2xhc3M9InN0MSIvJTNFJTNDcGF0aCBkPSJNIDE0Ljc0LDYuMjUgQyAxMi45LDQuNDEgOS45OCw0LjM1IDguMjMsNi4xIDUuMDcsOS4yNyA2LjA5LDE0LjkxIDYuMDksMTQuOTEgYyAwLDAgNS42NCwxLjAyIDguODEsLTIuMTQgQyAxNi42NCwxMSAxNi41OSw4LjA5IDE0Ljc0LDYuMjUgWiBtIC0yLjI3LDQuMDkgLTAuOTEsMS44NyAtMC45LC0xLjg3IC0xLjg2LC0wLjkxIDEuODYsLTAuOSAwLjksLTEuODcgMC45MSwxLjg3IDEuODYsMC45IHoiIHN0eWxlPSJvcGFjaXR5OjAuMzU7ZW5hYmxlLWJhY2tncm91bmQ6bmV3IiBjbGFzcz0ic3QxIi8lM0UlM0Nwb2x5Z29uIHBvaW50cz0iMTEuNTYsMTIuMjEgMTAuNjYsMTAuMzQgOC44LDkuNDMgMTAuNjYsOC41MyAxMS41Niw2LjY2IDEyLjQ3LDguNTMgMTQuMzMsOS40MyAxMi40NywxMC4zNCAiIHN0eWxlPSJvcGFjaXR5OjAuOTtmaWxsOiUyM2ZmZmZmZjtlbmFibGUtYmFja2dyb3VuZDpuZXciIGNsYXNzPSJzdDAiLyUzRSUzQy9nJTNFJTNDL3N2ZyUzRVwnKSd9fX0seyIuLi8uLi9saWIvc29ydF9vYmplY3Rfa2V5cyI6Nzk5fV0sODgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuc3BsaXQoIiAiKSxpPXJbMF0sYT1yWzFdLG89bi5pc0FycmF5T3JUeXBlZEFycmF5KGUpP24ubWVhbihlKTplLHM9LjUrby8xMDAsbD0xLjUrby8xMDAsYz1bIiIsIiJdLHU9WzAsMF07c3dpdGNoKGkpe2Nhc2UidG9wIjpjWzBdPSJ0b3AiLHVbMV09LWw7YnJlYWs7Y2FzZSJib3R0b20iOmNbMF09ImJvdHRvbSIsdVsxXT1sfXN3aXRjaChhKXtjYXNlImxlZnQiOmNbMV09InJpZ2h0Iix1WzBdPS1zO2JyZWFrO2Nhc2UicmlnaHQiOmNbMV09ImxlZnQiLHVbMF09c31yZXR1cm57YW5jaG9yOmNbMF0mJmNbMV0/Yy5qb2luKCItIik6Y1swXT9jWzBdOmNbMV0/Y1sxXToiY2VudGVyIixvZmZzZXQ6dX19fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sODg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIm1hcGJveC1nbC9kaXN0L21hcGJveC1nbC11bm1pbmlmaWVkIiksaT10KCIuLi8uLi9saWIiKSxhPWkuc3RyVHJhbnNsYXRlLG89aS5zdHJTY2FsZSxzPXQoIi4uLy4uL3Bsb3RzL2dldF9kYXRhIikuZ2V0U3VicGxvdENhbGNEYXRhLGw9dCgiLi4vLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxjPXQoIkBwbG90bHkvZDMiKSx1PXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGY9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksaD10KCIuL21hcGJveCIpLHA9ci5jb25zdGFudHM9dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBkKHQpe3JldHVybiJzdHJpbmciPT10eXBlb2YgdCYmKC0xIT09cC5zdHlsZVZhbHVlc01hcGJveC5pbmRleE9mKHQpfHwwPT09dC5pbmRleE9mKCJtYXBib3g6Ly8iKSl9ci5uYW1lPSJtYXBib3giLHIuYXR0cj0ic3VicGxvdCIsci5pZFJvb3Q9Im1hcGJveCIsci5pZFJlZ2V4PXIuYXR0clJlZ2V4PWkuY291bnRlclJlZ2V4KCJtYXBib3giKSxyLmF0dHJpYnV0ZXM9e3N1YnBsb3Q6e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDoibWFwYm94IixlZGl0VHlwZToiY2FsYyJ9fSxyLmxheW91dEF0dHJpYnV0ZXM9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHIuc3VwcGx5TGF5b3V0RGVmYXVsdHM9dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPXQuY2FsY2RhdGEsYT1lLl9zdWJwbG90cy5tYXBib3g7aWYobi52ZXJzaW9uIT09cC5yZXF1aXJlZFZlcnNpb24pdGhyb3cgbmV3IEVycm9yKHAud3JvbmdWZXJzaW9uRXJyb3JNc2cpO3ZhciBvPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dDtpZigiIj09PXQuX2NvbnRleHQubWFwYm94QWNjZXNzVG9rZW4pcmV0dXJuIiI7Zm9yKHZhciBuPVtdLGE9W10sbz0hMSxzPSExLGw9MDtsPGUubGVuZ3RoO2wrKyl7dmFyIGM9cltlW2xdXSx1PWMuYWNjZXNzdG9rZW47ZChjLnN0eWxlKSYmKHU/aS5wdXNoVW5pcXVlKG4sdSk6KGQoYy5faW5wdXQuc3R5bGUpJiYoaS5lcnJvcigiVXNlcyBNYXBib3ggbWFwIHN0eWxlLCBidXQgZGlkIG5vdCBzZXQgYW4gYWNjZXNzIHRva2VuLiIpLG89ITApLHM9ITApKSx1JiZpLnB1c2hVbmlxdWUoYSx1KX1pZihzKXt2YXIgZj1vP3Aubm9BY2Nlc3NUb2tlbkVycm9yTXNnOnAubWlzc2luZ1N0eWxlRXJyb3JNc2c7dGhyb3cgaS5lcnJvcihmKSxuZXcgRXJyb3IoZil9cmV0dXJuIG4ubGVuZ3RoPyhuLmxlbmd0aD4xJiZpLndhcm4ocC5tdWx0aXBsZVRva2Vuc0Vycm9yTXNnKSxuWzBdKTooYS5sZW5ndGgmJmkubG9nKFsiTGlzdGVkIG1hcGJveCBhY2Nlc3MgdG9rZW4ocykiLGEuam9pbigiLCIpLCJidXQgZGlkIG5vdCB1c2UgYSBNYXBib3ggbWFwIHN0eWxlLCBpZ25vcmluZyB0b2tlbihzKS4iXS5qb2luKCIgIikpLCIiKX0odCxhKTtuLmFjY2Vzc1Rva2VuPW87Zm9yKHZhciBsPTA7bDxhLmxlbmd0aDtsKyspe3ZhciBjPWFbbF0sdT1zKHIsIm1hcGJveCIsYyksZj1lW2NdLG09Zi5fc3VicGxvdDttfHwobT1uZXcgaCh0LGMpLGVbY10uX3N1YnBsb3Q9bSksbS52aWV3SW5pdGlhbHx8KG0udmlld0luaXRpYWw9e2NlbnRlcjppLmV4dGVuZEZsYXQoe30sZi5jZW50ZXIpLHpvb206Zi56b29tLGJlYXJpbmc6Zi5iZWFyaW5nLHBpdGNoOmYucGl0Y2h9KSxtLnBsb3QodSxlLHQuX3Byb21pc2VzKX19LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7Zm9yKHZhciBpPW4uX3N1YnBsb3RzLm1hcGJveHx8W10sYT0wO2E8aS5sZW5ndGg7YSsrKXt2YXIgbz1pW2FdOyFlW29dJiZuW29dLl9zdWJwbG90JiZuW29dLl9zdWJwbG90LmRlc3Ryb3koKX19LHIudG9TVkc9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5tYXBib3gsbj1lLl9zaXplLGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIHM9ZVtyW2ldXSxoPXMuZG9tYWluLGQ9cy5fc3VicGxvdC50b0ltYWdlKCJwbmciKTtlLl9nbGltYWdlcy5hcHBlbmQoInN2ZzppbWFnZSIpLmF0dHIoe3htbG5zOmwuc3ZnLCJ4bGluazpocmVmIjpkLHg6bi5sK24udypoLnhbMF0seTpuLnQrbi5oKigxLWgueVsxXSksd2lkdGg6bi53KihoLnhbMV0taC54WzBdKSxoZWlnaHQ6bi5oKihoLnlbMV0taC55WzBdKSxwcmVzZXJ2ZUFzcGVjdFJhdGlvOiJub25lIn0pO3ZhciBtPWMuc2VsZWN0KHMuX3N1YnBsb3QuZGl2KTtpZighKG51bGw9PT1tLnNlbGVjdCgiLm1hcGJveGdsLWN0cmwtbG9nbyIpLm5vZGUoKS5vZmZzZXRQYXJlbnQpKXt2YXIgZz1lLl9nbGltYWdlcy5hcHBlbmQoImciKTtnLmF0dHIoInRyYW5zZm9ybSIsYShuLmwrbi53KmgueFswXSsxMCxuLnQrbi5oKigxLWgueVswXSktMzEpKSxnLmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLHAubWFwYm94TG9nby5wYXRoMCkuc3R5bGUoe29wYWNpdHk6LjksZmlsbDoiI2ZmZmZmZiIsImVuYWJsZS1iYWNrZ3JvdW5kIjoibmV3In0pLGcuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIscC5tYXBib3hMb2dvLnBhdGgxKS5zdHlsZSgib3BhY2l0eSIsLjM1KS5zdHlsZSgiZW5hYmxlLWJhY2tncm91bmQiLCJuZXciKSxnLmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLHAubWFwYm94TG9nby5wYXRoMikuc3R5bGUoIm9wYWNpdHkiLC4zNSkuc3R5bGUoImVuYWJsZS1iYWNrZ3JvdW5kIiwibmV3IiksZy5hcHBlbmQoInBvbHlnb24iKS5hdHRyKCJwb2ludHMiLHAubWFwYm94TG9nby5wb2x5Z29uKS5zdHlsZSh7b3BhY2l0eTouOSxmaWxsOiIjZmZmZmZmIiwiZW5hYmxlLWJhY2tncm91bmQiOiJuZXcifSl9dmFyIHY9bS5zZWxlY3QoIi5tYXBib3hnbC1jdHJsLWF0dHJpYiIpLnRleHQoKS5yZXBsYWNlKCJJbXByb3ZlIHRoaXMgbWFwIiwiIikseT1lLl9nbGltYWdlcy5hcHBlbmQoImciKSx4PXkuYXBwZW5kKCJ0ZXh0Iik7eC50ZXh0KHYpLmNsYXNzZWQoInN0YXRpYy1hdHRyaWJ1dGlvbiIsITApLmF0dHIoeyJmb250LXNpemUiOjEyLCJmb250LWZhbWlseSI6IkFyaWFsIixjb2xvcjoicmdiYSgwLCAwLCAwLCAwLjc1KSIsInRleHQtYW5jaG9yIjoiZW5kIiwiZGF0YS11bmZvcm1hdHRlZCI6dn0pO3ZhciBiPXUuYkJveCh4Lm5vZGUoKSksXz1uLncqKGgueFsxXS1oLnhbMF0pO2lmKGIud2lkdGg+Xy8yKXt2YXIgdz12LnNwbGl0KCJ8Iikuam9pbigiPGJyPiIpO3gudGV4dCh3KS5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIix3KS5jYWxsKGYuY29udmVydFRvVHNwYW5zLHQpLGI9dS5iQm94KHgubm9kZSgpKX14LmF0dHIoInRyYW5zZm9ybSIsYSgtMyw4LWIuaGVpZ2h0KSkseS5pbnNlcnQoInJlY3QiLCIuc3RhdGljLWF0dHJpYnV0aW9uIikuYXR0cih7eDotYi53aWR0aC02LHk6LWIuaGVpZ2h0LTMsd2lkdGg6Yi53aWR0aCs2LGhlaWdodDpiLmhlaWdodCszLGZpbGw6InJnYmEoMjU1LCAyNTUsIDI1NSwgMC43NSkifSk7dmFyIFQ9MTtiLndpZHRoKzY+XyYmKFQ9Xy8oYi53aWR0aCs2KSk7dmFyIGs9W24ubCtuLncqaC54WzFdLG4udCtuLmgqKDEtaC55WzBdKV07eS5hdHRyKCJ0cmFuc2Zvcm0iLGEoa1swXSxrWzFdKStvKFQpKX19LHIudXBkYXRlRng9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX2Z1bGxMYXlvdXQscj1lLl9zdWJwbG90cy5tYXBib3gsbj0wO248ci5sZW5ndGg7bisrKXtlW3Jbbl1dLl9zdWJwbG90LnVwZGF0ZUZ4KGUpfX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo3NTMsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiOjg2NCwiLi9jb25zdGFudHMiOjg4MiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6ODg2LCIuL2xheW91dF9kZWZhdWx0cyI6ODg3LCIuL21hcGJveCI6ODg4LCJAcGxvdGx5L2QzIjo1OCwibWFwYm94LWdsL2Rpc3QvbWFwYm94LWdsLXVubWluaWZpZWQiOjQ0MX1dLDg4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLnNhbml0aXplSFRNTCxhPXQoIi4vY29udmVydF90ZXh0X29wdHMiKSxvPXQoIi4vY29uc3RhbnRzIik7ZnVuY3Rpb24gcyh0LGUpe3RoaXMuc3VicGxvdD10LHRoaXMudWlkPXQudWlkKyItIitlLHRoaXMuaW5kZXg9ZSx0aGlzLmlkU291cmNlPSJzb3VyY2UtIit0aGlzLnVpZCx0aGlzLmlkTGF5ZXI9by5sYXlvdXRMYXllclByZWZpeCt0aGlzLnVpZCx0aGlzLnNvdXJjZVR5cGU9bnVsbCx0aGlzLnNvdXJjZT1udWxsLHRoaXMubGF5ZXJUeXBlPW51bGwsdGhpcy5iZWxvdz1udWxsLHRoaXMudmlzaWJsZT0hMX12YXIgbD1zLnByb3RvdHlwZTtmdW5jdGlvbiBjKHQpe2lmKCF0LnZpc2libGUpcmV0dXJuITE7dmFyIGU9dC5zb3VyY2U7aWYoQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGg+MCl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspaWYoInN0cmluZyIhPXR5cGVvZiBlW3JdfHwwPT09ZVtyXS5sZW5ndGgpcmV0dXJuITE7cmV0dXJuITB9cmV0dXJuIG4uaXNQbGFpbk9iamVjdChlKXx8InN0cmluZyI9PXR5cGVvZiBlJiZlLmxlbmd0aD4wfWZ1bmN0aW9uIHUodCl7dmFyIGU9e30scj17fTtzd2l0Y2godC50eXBlKXtjYXNlImNpcmNsZSI6bi5leHRlbmRGbGF0KHIseyJjaXJjbGUtcmFkaXVzIjp0LmNpcmNsZS5yYWRpdXMsImNpcmNsZS1jb2xvciI6dC5jb2xvciwiY2lyY2xlLW9wYWNpdHkiOnQub3BhY2l0eX0pO2JyZWFrO2Nhc2UibGluZSI6bi5leHRlbmRGbGF0KHIseyJsaW5lLXdpZHRoIjp0LmxpbmUud2lkdGgsImxpbmUtY29sb3IiOnQuY29sb3IsImxpbmUtb3BhY2l0eSI6dC5vcGFjaXR5LCJsaW5lLWRhc2hhcnJheSI6dC5saW5lLmRhc2h9KTticmVhaztjYXNlImZpbGwiOm4uZXh0ZW5kRmxhdChyLHsiZmlsbC1jb2xvciI6dC5jb2xvciwiZmlsbC1vdXRsaW5lLWNvbG9yIjp0LmZpbGwub3V0bGluZWNvbG9yLCJmaWxsLW9wYWNpdHkiOnQub3BhY2l0eX0pO2JyZWFrO2Nhc2Uic3ltYm9sIjp2YXIgaT10LnN5bWJvbCxvPWEoaS50ZXh0cG9zaXRpb24saS5pY29uc2l6ZSk7bi5leHRlbmRGbGF0KGUseyJpY29uLWltYWdlIjppLmljb24rIi0xNSIsImljb24tc2l6ZSI6aS5pY29uc2l6ZS8xMCwidGV4dC1maWVsZCI6aS50ZXh0LCJ0ZXh0LXNpemUiOmkudGV4dGZvbnQuc2l6ZSwidGV4dC1hbmNob3IiOm8uYW5jaG9yLCJ0ZXh0LW9mZnNldCI6by5vZmZzZXQsInN5bWJvbC1wbGFjZW1lbnQiOmkucGxhY2VtZW50fSksbi5leHRlbmRGbGF0KHIseyJpY29uLWNvbG9yIjp0LmNvbG9yLCJ0ZXh0LWNvbG9yIjppLnRleHRmb250LmNvbG9yLCJ0ZXh0LW9wYWNpdHkiOnQub3BhY2l0eX0pO2JyZWFrO2Nhc2UicmFzdGVyIjpuLmV4dGVuZEZsYXQocix7InJhc3Rlci1mYWRlLWR1cmF0aW9uIjowLCJyYXN0ZXItb3BhY2l0eSI6dC5vcGFjaXR5fSl9cmV0dXJue2xheW91dDplLHBhaW50OnJ9fWwudXBkYXRlPWZ1bmN0aW9uKHQpe3RoaXMudmlzaWJsZT90aGlzLm5lZWRzTmV3SW1hZ2UodCk/dGhpcy51cGRhdGVJbWFnZSh0KTp0aGlzLm5lZWRzTmV3U291cmNlKHQpPyh0aGlzLnJlbW92ZUxheWVyKCksdGhpcy51cGRhdGVTb3VyY2UodCksdGhpcy51cGRhdGVMYXllcih0KSk6dGhpcy5uZWVkc05ld0xheWVyKHQpP3RoaXMudXBkYXRlTGF5ZXIodCk6dGhpcy51cGRhdGVTdHlsZSh0KToodGhpcy51cGRhdGVTb3VyY2UodCksdGhpcy51cGRhdGVMYXllcih0KSksdGhpcy52aXNpYmxlPWModCl9LGwubmVlZHNOZXdJbWFnZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zdWJwbG90Lm1hcC5nZXRTb3VyY2UodGhpcy5pZFNvdXJjZSkmJiJpbWFnZSI9PT10aGlzLnNvdXJjZVR5cGUmJiJpbWFnZSI9PT10LnNvdXJjZXR5cGUmJih0aGlzLnNvdXJjZSE9PXQuc291cmNlfHxKU09OLnN0cmluZ2lmeSh0aGlzLmNvb3JkaW5hdGVzKSE9PUpTT04uc3RyaW5naWZ5KHQuY29vcmRpbmF0ZXMpKX0sbC5uZWVkc05ld1NvdXJjZT1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5zb3VyY2VUeXBlIT09dC5zb3VyY2V0eXBlfHxKU09OLnN0cmluZ2lmeSh0aGlzLnNvdXJjZSkhPT1KU09OLnN0cmluZ2lmeSh0LnNvdXJjZSl8fHRoaXMubGF5ZXJUeXBlIT09dC50eXBlfSxsLm5lZWRzTmV3TGF5ZXI9ZnVuY3Rpb24odCl7cmV0dXJuIHRoaXMubGF5ZXJUeXBlIT09dC50eXBlfHx0aGlzLmJlbG93IT09dGhpcy5zdWJwbG90LmJlbG93TG9va3VwWyJsYXlvdXQtIit0aGlzLmluZGV4XX0sbC5sb29rdXBCZWxvdz1mdW5jdGlvbigpe3JldHVybiB0aGlzLnN1YnBsb3QuYmVsb3dMb29rdXBbImxheW91dC0iK3RoaXMuaW5kZXhdfSxsLnVwZGF0ZUltYWdlPWZ1bmN0aW9uKHQpe3RoaXMuc3VicGxvdC5tYXAuZ2V0U291cmNlKHRoaXMuaWRTb3VyY2UpLnVwZGF0ZUltYWdlKHt1cmw6dC5zb3VyY2UsY29vcmRpbmF0ZXM6dC5jb29yZGluYXRlc30pO3ZhciBlPXRoaXMuZmluZEZvbGxvd2luZ01hcGJveExheWVySWQodGhpcy5sb29rdXBCZWxvdygpKTtudWxsIT09ZSYmdGhpcy5zdWJwbG90Lm1hcC5tb3ZlTGF5ZXIodGhpcy5pZExheWVyLGUpfSxsLnVwZGF0ZVNvdXJjZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnN1YnBsb3QubWFwO2lmKGUuZ2V0U291cmNlKHRoaXMuaWRTb3VyY2UpJiZlLnJlbW92ZVNvdXJjZSh0aGlzLmlkU291cmNlKSx0aGlzLnNvdXJjZVR5cGU9dC5zb3VyY2V0eXBlLHRoaXMuc291cmNlPXQuc291cmNlLGModCkpe3ZhciByPWZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5zb3VyY2V0eXBlLG49dC5zb3VyY2UsYT17dHlwZTpyfTsiZ2VvanNvbiI9PT1yP2U9ImRhdGEiOiJ2ZWN0b3IiPT09cj9lPSJzdHJpbmciPT10eXBlb2Ygbj8idXJsIjoidGlsZXMiOiJyYXN0ZXIiPT09cj8oZT0idGlsZXMiLGEudGlsZVNpemU9MjU2KToiaW1hZ2UiPT09ciYmKGU9InVybCIsYS5jb29yZGluYXRlcz10LmNvb3JkaW5hdGVzKTthW2VdPW4sdC5zb3VyY2VhdHRyaWJ1dGlvbiYmKGEuYXR0cmlidXRpb249aSh0LnNvdXJjZWF0dHJpYnV0aW9uKSk7cmV0dXJuIGF9KHQpO2UuYWRkU291cmNlKHRoaXMuaWRTb3VyY2Uscil9fSxsLmZpbmRGb2xsb3dpbmdNYXBib3hMYXllcklkPWZ1bmN0aW9uKHQpe2lmKCJ0cmFjZXMiPT09dClmb3IodmFyIGU9dGhpcy5zdWJwbG90LmdldE1hcExheWVycygpLHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXS5pZDtpZigic3RyaW5nIj09dHlwZW9mIG4mJjA9PT1uLmluZGV4T2Yoby50cmFjZUxheWVyUHJlZml4KSl7dD1uO2JyZWFrfX1yZXR1cm4gdH0sbC51cGRhdGVMYXllcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnN1YnBsb3Qscj11KHQpLG49dGhpcy5sb29rdXBCZWxvdygpLGk9dGhpcy5maW5kRm9sbG93aW5nTWFwYm94TGF5ZXJJZChuKTt0aGlzLnJlbW92ZUxheWVyKCksYyh0KSYmZS5hZGRMYXllcih7aWQ6dGhpcy5pZExheWVyLHNvdXJjZTp0aGlzLmlkU291cmNlLCJzb3VyY2UtbGF5ZXIiOnQuc291cmNlbGF5ZXJ8fCIiLHR5cGU6dC50eXBlLG1pbnpvb206dC5taW56b29tLG1heHpvb206dC5tYXh6b29tLGxheW91dDpyLmxheW91dCxwYWludDpyLnBhaW50fSxpKSx0aGlzLmxheWVyVHlwZT10LnR5cGUsdGhpcy5iZWxvdz1ufSxsLnVwZGF0ZVN0eWxlPWZ1bmN0aW9uKHQpe2lmKGModCkpe3ZhciBlPXUodCk7dGhpcy5zdWJwbG90LnNldE9wdGlvbnModGhpcy5pZExheWVyLCJzZXRMYXlvdXRQcm9wZXJ0eSIsZS5sYXlvdXQpLHRoaXMuc3VicGxvdC5zZXRPcHRpb25zKHRoaXMuaWRMYXllciwic2V0UGFpbnRQcm9wZXJ0eSIsZS5wYWludCl9fSxsLnJlbW92ZUxheWVyPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zdWJwbG90Lm1hcDt0LmdldExheWVyKHRoaXMuaWRMYXllcikmJnQucmVtb3ZlTGF5ZXIodGhpcy5pZExheWVyKX0sbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5zdWJwbG90Lm1hcDt0LmdldExheWVyKHRoaXMuaWRMYXllcikmJnQucmVtb3ZlTGF5ZXIodGhpcy5pZExheWVyKSx0LmdldFNvdXJjZSh0aGlzLmlkU291cmNlKSYmdC5yZW1vdmVTb3VyY2UodGhpcy5pZFNvdXJjZSl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49bmV3IHModCxlKTtyZXR1cm4gbi51cGRhdGUociksbn19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuL2NvbnN0YW50cyI6ODgyLCIuL2NvbnZlcnRfdGV4dF9vcHRzIjo4ODN9XSw4ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIikuZGVmYXVsdExpbmUsYT10KCIuLi9kb21haW4iKS5hdHRyaWJ1dGVzLG89dCgiLi4vZm9udF9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi90cmFjZXMvc2NhdHRlci9hdHRyaWJ1dGVzIikudGV4dHBvc2l0aW9uLGw9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGM9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5LHU9dCgiLi9jb25zdGFudHMiKSxmPW8oe30pO2YuZmFtaWx5LmRmbHQ9Ik9wZW4gU2FucyBSZWd1bGFyLCBBcmlhbCBVbmljb2RlIE1TIFJlZ3VsYXIiLChlLmV4cG9ydHM9bCh7X2FycmF5QXR0clJlZ2V4cHM6W24uY291bnRlclJlZ2V4KCJtYXBib3giLCIubGF5ZXJzIiwhMCldLGRvbWFpbjphKHtuYW1lOiJtYXBib3gifSksYWNjZXNzdG9rZW46e3ZhbFR5cGU6InN0cmluZyIsbm9CbGFuazohMCxzdHJpY3Q6ITB9LHN0eWxlOnt2YWxUeXBlOiJhbnkiLHZhbHVlczp1LnN0eWxlVmFsdWVzTWFwYm94LmNvbmNhdCh1LnN0eWxlVmFsdWVzTm9uTWFwYm94KSxkZmx0OnUuc3R5bGVWYWx1ZURmbHR9LGNlbnRlcjp7bG9uOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0sbGF0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH19LHpvb206e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxfSxiZWFyaW5nOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MH0scGl0Y2g6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowfSxsYXllcnM6YygibGF5ZXIiLHt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxzb3VyY2V0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJnZW9qc29uIiwidmVjdG9yIiwicmFzdGVyIiwiaW1hZ2UiXSxkZmx0OiJnZW9qc29uIn0sc291cmNlOnt2YWxUeXBlOiJhbnkifSxzb3VyY2VsYXllcjp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIifSxzb3VyY2VhdHRyaWJ1dGlvbjp7dmFsVHlwZToic3RyaW5nIn0sdHlwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2lyY2xlIiwibGluZSIsImZpbGwiLCJzeW1ib2wiLCJyYXN0ZXIiXSxkZmx0OiJjaXJjbGUifSxjb29yZGluYXRlczp7dmFsVHlwZToiYW55In0sYmVsb3c6e3ZhbFR5cGU6InN0cmluZyJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDppfSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0sbWluem9vbTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MjQsZGZsdDowfSxtYXh6b29tOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoyNCxkZmx0OjI0fSxjaXJjbGU6e3JhZGl1czp7dmFsVHlwZToibnVtYmVyIixkZmx0OjE1fX0sbGluZTp7d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoyfSxkYXNoOnt2YWxUeXBlOiJkYXRhX2FycmF5In19LGZpbGw6e291dGxpbmVjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6aX19LHN5bWJvbDp7aWNvbjp7dmFsVHlwZToic3RyaW5nIixkZmx0OiJtYXJrZXIifSxpY29uc2l6ZTp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEwfSx0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LHBsYWNlbWVudDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsicG9pbnQiLCJsaW5lIiwibGluZS1jZW50ZXIiXSxkZmx0OiJwb2ludCJ9LHRleHRmb250OmYsdGV4dHBvc2l0aW9uOm4uZXh0ZW5kRmxhdCh7fSxzLHthcnJheU9rOiExfSl9fSl9LCJwbG90IiwiZnJvbS1yb290IikpLnVpcmV2aXNpb249e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo4MDksIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vdHJhY2VzL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTE5MSwiLi4vZG9tYWluIjo4NTUsIi4uL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuL2NvbnN0YW50cyI6ODgyfV0sODg3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc3VicGxvdF9kZWZhdWx0cyIpLGE9dCgiLi4vYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gcyh0LGUscixuKXtyKCJhY2Nlc3N0b2tlbiIsbi5hY2Nlc3NUb2tlbikscigic3R5bGUiKSxyKCJjZW50ZXIubG9uIikscigiY2VudGVyLmxhdCIpLHIoInpvb20iKSxyKCJiZWFyaW5nIikscigicGl0Y2giKSxhKHQsZSx7bmFtZToibGF5ZXJzIixoYW5kbGVJdGVtRGVmYXVsdHM6bH0pLGUuX2lucHV0PXR9ZnVuY3Rpb24gbCh0LGUpe2Z1bmN0aW9uIHIocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8ubGF5ZXJzLHIsaSl9aWYocigidmlzaWJsZSIpKXt2YXIgaSxhPXIoInNvdXJjZXR5cGUiKSxzPSJyYXN0ZXIiPT09YXx8ImltYWdlIj09PWE7cigic291cmNlIikscigic291cmNlYXR0cmlidXRpb24iKSwidmVjdG9yIj09PWEmJnIoInNvdXJjZWxheWVyIiksImltYWdlIj09PWEmJnIoImNvb3JkaW5hdGVzIikscyYmKGk9InJhc3RlciIpO3ZhciBsPXIoInR5cGUiLGkpO3MmJiJyYXN0ZXIiIT09bCYmKGw9ZS50eXBlPSJyYXN0ZXIiLG4ubG9nKCJTb3VyY2UgdHlwZXMgKnJhc3RlciogYW5kICppbWFnZSogbXVzdCBkcmF3biAqcmFzdGVyKiBsYXllciB0eXBlLiIpKSxyKCJiZWxvdyIpLHIoImNvbG9yIikscigib3BhY2l0eSIpLHIoIm1pbnpvb20iKSxyKCJtYXh6b29tIiksImNpcmNsZSI9PT1sJiZyKCJjaXJjbGUucmFkaXVzIiksImxpbmUiPT09bCYmKHIoImxpbmUud2lkdGgiKSxyKCJsaW5lLmRhc2giKSksImZpbGwiPT09bCYmcigiZmlsbC5vdXRsaW5lY29sb3IiKSwic3ltYm9sIj09PWwmJihyKCJzeW1ib2wuaWNvbiIpLHIoInN5bWJvbC5pY29uc2l6ZSIpLHIoInN5bWJvbC50ZXh0Iiksbi5jb2VyY2VGb250KHIsInN5bWJvbC50ZXh0Zm9udCIpLHIoInN5bWJvbC50ZXh0cG9zaXRpb24iKSxyKCJzeW1ib2wucGxhY2VtZW50IikpfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2kodCxlLHIse3R5cGU6Im1hcGJveCIsYXR0cmlidXRlczpvLGhhbmRsZURlZmF1bHRzOnMscGFydGl0aW9uOiJ5IixhY2Nlc3NUb2tlbjplLl9tYXBib3hBY2Nlc3NUb2tlbn0pfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo4MjIsIi4uL3N1YnBsb3RfZGVmYXVsdHMiOjg5OCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6ODg2fV0sODg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIm1hcGJveC1nbC9kaXN0L21hcGJveC1nbC11bm1pbmlmaWVkIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiKSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi9jYXJ0ZXNpYW4vYXhlcyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLHU9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIiksZj11LnJlY3RNb2RlLGg9dS5kcmF3TW9kZSxwPXUuc2VsZWN0TW9kZSxkPXQoIi4uL2NhcnRlc2lhbi9zZWxlY3QiKS5wcmVwU2VsZWN0LG09dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLmNsZWFyU2VsZWN0LGc9dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLmNsZWFyU2VsZWN0aW9uc0NhY2hlLHY9dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLnNlbGVjdE9uQ2xpY2sseT10KCIuL2NvbnN0YW50cyIpLHg9dCgiLi9sYXllcnMiKTtmdW5jdGlvbiBiKHQsZSl7dGhpcy5pZD1lLHRoaXMuZ2Q9dDt2YXIgcj10Ll9mdWxsTGF5b3V0LG49dC5fY29udGV4dDt0aGlzLmNvbnRhaW5lcj1yLl9nbGNvbnRhaW5lci5ub2RlKCksdGhpcy5pc1N0YXRpYz1uLnN0YXRpY1Bsb3QsdGhpcy51aWQ9ci5fdWlkKyItIit0aGlzLmlkLHRoaXMuZGl2PW51bGwsdGhpcy54YXhpcz1udWxsLHRoaXMueWF4aXM9bnVsbCx0aGlzLmNyZWF0ZUZyYW1ld29yayhyKSx0aGlzLm1hcD1udWxsLHRoaXMuYWNjZXNzVG9rZW49bnVsbCx0aGlzLnN0eWxlT2JqPW51bGwsdGhpcy50cmFjZUhhc2g9e30sdGhpcy5sYXllckxpc3Q9W10sdGhpcy5iZWxvd0xvb2t1cD17fSx0aGlzLmRyYWdnaW5nPSExLHRoaXMud2hlZWxpbmc9ITF9dmFyIF89Yi5wcm90b3R5cGU7Xy5wbG90PWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpPXRoaXMsYT1lW2kuaWRdO2kubWFwJiZhLmFjY2Vzc3Rva2VuIT09aS5hY2Nlc3NUb2tlbiYmKGkubWFwLnJlbW92ZSgpLGkubWFwPW51bGwsaS5zdHlsZU9iaj1udWxsLGkudHJhY2VIYXNoPXt9LGkubGF5ZXJMaXN0PVtdKSxuPWkubWFwP25ldyBQcm9taXNlKChmdW5jdGlvbihyLG4pe2kudXBkYXRlTWFwKHQsZSxyLG4pfSkpOm5ldyBQcm9taXNlKChmdW5jdGlvbihyLG4pe2kuY3JlYXRlTWFwKHQsZSxyLG4pfSkpLHIucHVzaChuKX0sXy5jcmVhdGVNYXA9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIG89dGhpcyxzPWVbby5pZF0sbD1vLnN0eWxlT2JqPVQocy5zdHlsZSk7by5hY2Nlc3NUb2tlbj1zLmFjY2Vzc3Rva2VuO3ZhciBjPW8ubWFwPW5ldyBuLk1hcCh7Y29udGFpbmVyOm8uZGl2LHN0eWxlOmwuc3R5bGUsY2VudGVyOkEocy5jZW50ZXIpLHpvb206cy56b29tLGJlYXJpbmc6cy5iZWFyaW5nLHBpdGNoOnMucGl0Y2gsaW50ZXJhY3RpdmU6IW8uaXNTdGF0aWMscHJlc2VydmVEcmF3aW5nQnVmZmVyOm8uaXNTdGF0aWMsZG91YmxlQ2xpY2tab29tOiExLGJveFpvb206ITEsYXR0cmlidXRpb25Db250cm9sOiExfSkuYWRkQ29udHJvbChuZXcgbi5BdHRyaWJ1dGlvbkNvbnRyb2woe2NvbXBhY3Q6ITB9KSk7Yy5fY2FudmFzLnN0eWxlLmxlZnQ9IjBweCIsYy5fY2FudmFzLnN0eWxlLnRvcD0iMHB4IixvLnJlamVjdE9uRXJyb3IoaSksby5pc1N0YXRpY3x8by5pbml0RngodCxlKTt2YXIgdT1bXTt1LnB1c2gobmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe2Mub25jZSgibG9hZCIsdCl9KSkpLHU9dS5jb25jYXQoYS5mZXRjaFRyYWNlR2VvRGF0YSh0KSksUHJvbWlzZS5hbGwodSkudGhlbigoZnVuY3Rpb24oKXtvLmZpbGxCZWxvd0xvb2t1cCh0LGUpLG8udXBkYXRlRGF0YSh0KSxvLnVwZGF0ZUxheW91dChlKSxvLnJlc29sdmVPblJlbmRlcihyKX0pKS5jYXRjaChpKX0sXy51cGRhdGVNYXA9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dGhpcyxvPWkubWFwLHM9ZVt0aGlzLmlkXTtpLnJlamVjdE9uRXJyb3Iobik7dmFyIGw9W10sYz1UKHMuc3R5bGUpO0pTT04uc3RyaW5naWZ5KGkuc3R5bGVPYmopIT09SlNPTi5zdHJpbmdpZnkoYykmJihpLnN0eWxlT2JqPWMsby5zZXRTdHlsZShjLnN0eWxlKSxpLnRyYWNlSGFzaD17fSxsLnB1c2gobmV3IFByb21pc2UoKGZ1bmN0aW9uKHQpe28ub25jZSgic3R5bGVkYXRhIix0KX0pKSkpLGw9bC5jb25jYXQoYS5mZXRjaFRyYWNlR2VvRGF0YSh0KSksUHJvbWlzZS5hbGwobCkudGhlbigoZnVuY3Rpb24oKXtpLmZpbGxCZWxvd0xvb2t1cCh0LGUpLGkudXBkYXRlRGF0YSh0KSxpLnVwZGF0ZUxheW91dChlKSxpLnJlc29sdmVPblJlbmRlcihyKX0pKS5jYXRjaChuKX0sXy5maWxsQmVsb3dMb29rdXA9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9ZVt0aGlzLmlkXS5sYXllcnMsYT10aGlzLmJlbG93TG9va3VwPXt9LG89ITE7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKyl7dmFyIHM9dFtyXVswXS50cmFjZSxsPXMuX21vZHVsZTsic3RyaW5nIj09dHlwZW9mIHMuYmVsb3c/bj1zLmJlbG93OmwuZ2V0QmVsb3cmJihuPWwuZ2V0QmVsb3cocyx0aGlzKSksIiI9PT1uJiYobz0hMCksYVsidHJhY2UtIitzLnVpZF09bnx8IiJ9Zm9yKHI9MDtyPGkubGVuZ3RoO3IrKyl7dmFyIGM9aVtyXTtuPSJzdHJpbmciPT10eXBlb2YgYy5iZWxvdz9jLmJlbG93Om8/InRyYWNlcyI6IiIsYVsibGF5b3V0LSIrcl09bn12YXIgdSxmLGg9e307Zm9yKHUgaW4gYSloW249YVt1XV0/aFtuXS5wdXNoKHUpOmhbbl09W3VdO2ZvcihuIGluIGgpe3ZhciBwPWhbbl07aWYocC5sZW5ndGg+MSlmb3Iocj0wO3I8cC5sZW5ndGg7cisrKTA9PT0odT1wW3JdKS5pbmRleE9mKCJ0cmFjZS0iKT8oZj11LnNwbGl0KCJ0cmFjZS0iKVsxXSx0aGlzLnRyYWNlSGFzaFtmXSYmKHRoaXMudHJhY2VIYXNoW2ZdLmJlbG93PW51bGwpKTowPT09dS5pbmRleE9mKCJsYXlvdXQtIikmJihmPXUuc3BsaXQoImxheW91dC0iKVsxXSx0aGlzLmxheWVyTGlzdFtmXSYmKHRoaXMubGF5ZXJMaXN0W2ZdLmJlbG93PW51bGwpKX19O3ZhciB3PXtjaG9yb3BsZXRobWFwYm94OjAsZGVuc2l0eW1hcGJveDoxLHNjYXR0ZXJtYXBib3g6Mn07ZnVuY3Rpb24gVCh0KXt2YXIgZT17fTtyZXR1cm4gaS5pc1BsYWluT2JqZWN0KHQpPyhlLmlkPXQuaWQsZS5zdHlsZT10KToic3RyaW5nIj09dHlwZW9mIHQ/KGUuaWQ9dCwtMSE9PXkuc3R5bGVWYWx1ZXNNYXBib3guaW5kZXhPZih0KT9lLnN0eWxlPWsodCk6eS5zdHlsZXNOb25NYXBib3hbdF0/ZS5zdHlsZT15LnN0eWxlc05vbk1hcGJveFt0XTplLnN0eWxlPXQpOihlLmlkPXkuc3R5bGVWYWx1ZURmbHQsZS5zdHlsZT1rKHkuc3R5bGVWYWx1ZURmbHQpKSxlLnRyYW5zaXRpb249e2R1cmF0aW9uOjAsZGVsYXk6MH0sZX1mdW5jdGlvbiBrKHQpe3JldHVybiB5LnN0eWxlVXJsUHJlZml4K3QrIi0iK3kuc3R5bGVVcmxTdWZmaXh9ZnVuY3Rpb24gQSh0KXtyZXR1cm5bdC5sb24sdC5sYXRdfV8udXBkYXRlRGF0YT1mdW5jdGlvbih0KXt2YXIgZSxyLG4saSxhPXRoaXMudHJhY2VIYXNoLG89dC5zbGljZSgpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHdbdFswXS50cmFjZS50eXBlXS13W2VbMF0udHJhY2UudHlwZV19KSk7Zm9yKG49MDtuPG8ubGVuZ3RoO24rKyl7dmFyIHM9b1tuXSxsPSExOyhlPWFbKHI9c1swXS50cmFjZSkudWlkXSkmJihlLnR5cGU9PT1yLnR5cGU/KGUudXBkYXRlKHMpLGw9ITApOmUuZGlzcG9zZSgpKSwhbCYmci5fbW9kdWxlJiYoYVtyLnVpZF09ci5fbW9kdWxlLnBsb3QodGhpcyxzKSl9dmFyIGM9T2JqZWN0LmtleXMoYSk7dDpmb3Iobj0wO248Yy5sZW5ndGg7bisrKXt2YXIgdT1jW25dO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspaWYodT09PShyPXRbaV1bMF0udHJhY2UpLnVpZCljb250aW51ZSB0OyhlPWFbdV0pLmRpc3Bvc2UoKSxkZWxldGUgYVt1XX19LF8udXBkYXRlTGF5b3V0PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwLHI9dFt0aGlzLmlkXTt0aGlzLmRyYWdnaW5nfHx0aGlzLndoZWVsaW5nfHwoZS5zZXRDZW50ZXIoQShyLmNlbnRlcikpLGUuc2V0Wm9vbShyLnpvb20pLGUuc2V0QmVhcmluZyhyLmJlYXJpbmcpLGUuc2V0UGl0Y2goci5waXRjaCkpLHRoaXMudXBkYXRlTGF5ZXJzKHQpLHRoaXMudXBkYXRlRnJhbWV3b3JrKHQpLHRoaXMudXBkYXRlRngodCksdGhpcy5tYXAucmVzaXplKCksdGhpcy5nZC5fY29udGV4dC5fc2Nyb2xsWm9vbS5tYXBib3g/ZS5zY3JvbGxab29tLmVuYWJsZSgpOmUuc2Nyb2xsWm9vbS5kaXNhYmxlKCl9LF8ucmVzb2x2ZU9uUmVuZGVyPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMubWFwO2Uub24oInJlbmRlciIsKGZ1bmN0aW9uIHIoKXtlLmxvYWRlZCgpJiYoZS5vZmYoInJlbmRlciIsciksc2V0VGltZW91dCh0LDEwKSl9KSl9LF8ucmVqZWN0T25FcnJvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLm1hcDtmdW5jdGlvbiByKCl7dChuZXcgRXJyb3IoeS5tYXBPbkVycm9yTXNnKSl9ZS5vbmNlKCJlcnJvciIsciksZS5vbmNlKCJzdHlsZS5lcnJvciIsciksZS5vbmNlKCJzb3VyY2UuZXJyb3IiLHIpLGUub25jZSgidGlsZS5lcnJvciIsciksZS5vbmNlKCJsYXllci5lcnJvciIscil9LF8uY3JlYXRlRnJhbWV3b3JrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1lLmRpdj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTtyLmlkPWUudWlkLHIuc3R5bGUucG9zaXRpb249ImFic29sdXRlIixlLmNvbnRhaW5lci5hcHBlbmRDaGlsZChyKSxlLnhheGlzPXtfaWQ6IngiLGMycDpmdW5jdGlvbih0KXtyZXR1cm4gZS5wcm9qZWN0KHQpLnh9fSxlLnlheGlzPXtfaWQ6InkiLGMycDpmdW5jdGlvbih0KXtyZXR1cm4gZS5wcm9qZWN0KHQpLnl9fSxlLnVwZGF0ZUZyYW1ld29yayh0KSxlLm1vY2tBeGlzPXt0eXBlOiJsaW5lYXIiLHNob3dleHBvbmVudDoiYWxsIixleHBvbmVudGZvcm1hdDoiQiJ9LHMuc2V0Q29udmVydChlLm1vY2tBeGlzLHQpfSxfLmluaXRGeD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMsbj1yLmdkLGk9ci5tYXA7ZnVuY3Rpb24gYSgpe2MubG9uZVVuaG92ZXIoZS5faG92ZXJsYXllcil9ZnVuY3Rpb24gcygpe3ZhciB0PXIuZ2V0VmlldygpO24uZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixyLmdldFZpZXdFZGl0c1dpdGhEZXJpdmVkKHQpKX1pLm9uKCJtb3ZlZW5kIiwoZnVuY3Rpb24odCl7aWYoci5tYXApe3ZhciBlPW4uX2Z1bGxMYXlvdXQ7aWYodC5vcmlnaW5hbEV2ZW50fHxyLndoZWVsaW5nKXt2YXIgaT1lW3IuaWRdO28uY2FsbCgiX3N0b3JlRGlyZWN0R1VJRWRpdCIsbi5sYXlvdXQsZS5fcHJlR1VJLHIuZ2V0Vmlld0VkaXRzKGkpKTt2YXIgYT1yLmdldFZpZXcoKTtpLl9pbnB1dC5jZW50ZXI9aS5jZW50ZXI9YS5jZW50ZXIsaS5faW5wdXQuem9vbT1pLnpvb209YS56b29tLGkuX2lucHV0LmJlYXJpbmc9aS5iZWFyaW5nPWEuYmVhcmluZyxpLl9pbnB1dC5waXRjaD1pLnBpdGNoPWEucGl0Y2gsbi5lbWl0KCJwbG90bHlfcmVsYXlvdXQiLHIuZ2V0Vmlld0VkaXRzV2l0aERlcml2ZWQoYSkpfXQub3JpZ2luYWxFdmVudCYmIm1vdXNldXAiPT09dC5vcmlnaW5hbEV2ZW50LnR5cGU/ci5kcmFnZ2luZz0hMTpyLndoZWVsaW5nJiYoci53aGVlbGluZz0hMSksZS5fcmVob3ZlciYmZS5fcmVob3ZlcigpfX0pKSxpLm9uKCJ3aGVlbCIsKGZ1bmN0aW9uKCl7ci53aGVlbGluZz0hMH0pKSxpLm9uKCJtb3VzZW1vdmUiLChmdW5jdGlvbih0KXt2YXIgZT1yLmRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxhPVt0Lm9yaWdpbmFsRXZlbnQub2Zmc2V0WCx0Lm9yaWdpbmFsRXZlbnQub2Zmc2V0WV07dC50YXJnZXQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0PWZ1bmN0aW9uKCl7cmV0dXJuIGV9LHIueGF4aXMucDJjPWZ1bmN0aW9uKCl7cmV0dXJuIGkudW5wcm9qZWN0KGEpLmxuZ30sci55YXhpcy5wMmM9ZnVuY3Rpb24oKXtyZXR1cm4gaS51bnByb2plY3QoYSkubGF0fSxuLl9mdWxsTGF5b3V0Ll9yZWhvdmVyPWZ1bmN0aW9uKCl7bi5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PT09ci5pZCYmbi5fZnVsbExheW91dFtyLmlkXSYmYy5ob3ZlcihuLHQsci5pZCl9LGMuaG92ZXIobix0LHIuaWQpLG4uX2Z1bGxMYXlvdXQuX2hvdmVyc3VicGxvdD1yLmlkfSkpLGkub24oImRyYWdzdGFydCIsKGZ1bmN0aW9uKCl7ci5kcmFnZ2luZz0hMCxhKCl9KSksaS5vbigiem9vbXN0YXJ0IixhKSxpLm9uKCJtb3VzZW91dCIsKGZ1bmN0aW9uKCl7bi5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PW51bGx9KSksaS5vbigiZHJhZyIscyksaS5vbigiem9vbSIscyksaS5vbigiZGJsY2xpY2siLChmdW5jdGlvbigpe3ZhciB0PW4uX2Z1bGxMYXlvdXRbci5pZF07by5jYWxsKCJfc3RvcmVEaXJlY3RHVUlFZGl0IixuLmxheW91dCxuLl9mdWxsTGF5b3V0Ll9wcmVHVUksci5nZXRWaWV3RWRpdHModCkpO3ZhciBlPXIudmlld0luaXRpYWw7aS5zZXRDZW50ZXIoQShlLmNlbnRlcikpLGkuc2V0Wm9vbShlLnpvb20pLGkuc2V0QmVhcmluZyhlLmJlYXJpbmcpLGkuc2V0UGl0Y2goZS5waXRjaCk7dmFyIGE9ci5nZXRWaWV3KCk7dC5faW5wdXQuY2VudGVyPXQuY2VudGVyPWEuY2VudGVyLHQuX2lucHV0Lnpvb209dC56b29tPWEuem9vbSx0Ll9pbnB1dC5iZWFyaW5nPXQuYmVhcmluZz1hLmJlYXJpbmcsdC5faW5wdXQucGl0Y2g9dC5waXRjaD1hLnBpdGNoLG4uZW1pdCgicGxvdGx5X2RvdWJsZWNsaWNrIixudWxsKSxuLmVtaXQoInBsb3RseV9yZWxheW91dCIsci5nZXRWaWV3RWRpdHNXaXRoRGVyaXZlZChhKSl9KSksci5jbGVhclNlbGVjdD1mdW5jdGlvbigpe2coci5kcmFnT3B0aW9ucyksbShyLmRyYWdPcHRpb25zLmdkKX0sci5vbkNsaWNrSW5QYW5Gbj1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIGk9bi5fZnVsbExheW91dC5jbGlja21vZGU7aS5pbmRleE9mKCJzZWxlY3QiKT4tMSYmdihlLm9yaWdpbmFsRXZlbnQsbixbci54YXhpc10sW3IueWF4aXNdLHIuaWQsdCksaS5pbmRleE9mKCJldmVudCIpPi0xJiZjLmNsaWNrKG4sZS5vcmlnaW5hbEV2ZW50KX19fSxfLnVwZGF0ZUZ4PWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMscj1lLm1hcCxuPWUuZ2Q7aWYoIWUuaXNTdGF0aWMpe3ZhciBhLG89dC5kcmFnbW9kZTthPWYobyk/ZnVuY3Rpb24odCxyKXsodC5yYW5nZT17fSlbZS5pZF09W2MoW3IueG1pbixyLnltaW5dKSxjKFtyLnhtYXgsci55bWF4XSldfTpmdW5jdGlvbih0LHIsbil7KHQubGFzc29Qb2ludHM9e30pW2UuaWRdPW4uZmlsdGVyZWQubWFwKGMpfTt2YXIgcz1lLmRyYWdPcHRpb25zO2UuZHJhZ09wdGlvbnM9aS5leHRlbmREZWVwKHN8fHt9LHtkcmFnbW9kZTp0LmRyYWdtb2RlLGVsZW1lbnQ6ZS5kaXYsZ2Q6bixwbG90aW5mbzp7aWQ6ZS5pZCxkb21haW46dFtlLmlkXS5kb21haW4seGF4aXM6ZS54YXhpcyx5YXhpczplLnlheGlzLGZpbGxSYW5nZUl0ZW1zOmF9LHhheGVzOltlLnhheGlzXSx5YXhlczpbZS55YXhpc10sc3VicGxvdDplLmlkfSksci5vZmYoImNsaWNrIixlLm9uQ2xpY2tJblBhbkhhbmRsZXIpLHAobyl8fGgobyk/KHIuZHJhZ1Bhbi5kaXNhYmxlKCksci5vbigiem9vbXN0YXJ0IixlLmNsZWFyU2VsZWN0KSxlLmRyYWdPcHRpb25zLnByZXBGbj1mdW5jdGlvbih0LHIsbil7ZCh0LHIsbixlLmRyYWdPcHRpb25zLG8pfSxsLmluaXQoZS5kcmFnT3B0aW9ucykpOihyLmRyYWdQYW4uZW5hYmxlKCksci5vZmYoInpvb21zdGFydCIsZS5jbGVhclNlbGVjdCksZS5kaXYub25tb3VzZWRvd249bnVsbCxlLm9uQ2xpY2tJblBhbkhhbmRsZXI9ZS5vbkNsaWNrSW5QYW5GbihlLmRyYWdPcHRpb25zKSxyLm9uKCJjbGljayIsZS5vbkNsaWNrSW5QYW5IYW5kbGVyKSl9ZnVuY3Rpb24gYyh0KXt2YXIgcj1lLm1hcC51bnByb2plY3QodCk7cmV0dXJuW3IubG5nLHIubGF0XX19LF8udXBkYXRlRnJhbWV3b3JrPWZ1bmN0aW9uKHQpe3ZhciBlPXRbdGhpcy5pZF0uZG9tYWluLHI9dC5fc2l6ZSxuPXRoaXMuZGl2LnN0eWxlO24ud2lkdGg9ci53KihlLnhbMV0tZS54WzBdKSsicHgiLG4uaGVpZ2h0PXIuaCooZS55WzFdLWUueVswXSkrInB4IixuLmxlZnQ9ci5sK2UueFswXSpyLncrInB4IixuLnRvcD1yLnQrKDEtZS55WzFdKSpyLmgrInB4Iix0aGlzLnhheGlzLl9vZmZzZXQ9ci5sK2UueFswXSpyLncsdGhpcy54YXhpcy5fbGVuZ3RoPXIudyooZS54WzFdLWUueFswXSksdGhpcy55YXhpcy5fb2Zmc2V0PXIudCsoMS1lLnlbMV0pKnIuaCx0aGlzLnlheGlzLl9sZW5ndGg9ci5oKihlLnlbMV0tZS55WzBdKX0sXy51cGRhdGVMYXllcnM9ZnVuY3Rpb24odCl7dmFyIGUscj10W3RoaXMuaWRdLmxheWVycyxuPXRoaXMubGF5ZXJMaXN0O2lmKHIubGVuZ3RoIT09bi5sZW5ndGgpe2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspbltlXS5kaXNwb3NlKCk7Zm9yKG49dGhpcy5sYXllckxpc3Q9W10sZT0wO2U8ci5sZW5ndGg7ZSsrKW4ucHVzaCh4KHRoaXMsZSxyW2VdKSl9ZWxzZSBmb3IoZT0wO2U8ci5sZW5ndGg7ZSsrKW5bZV0udXBkYXRlKHJbZV0pfSxfLmRlc3Ryb3k9ZnVuY3Rpb24oKXt0aGlzLm1hcCYmKHRoaXMubWFwLnJlbW92ZSgpLHRoaXMubWFwPW51bGwsdGhpcy5jb250YWluZXIucmVtb3ZlQ2hpbGQodGhpcy5kaXYpKX0sXy50b0ltYWdlPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwLnN0b3AoKSx0aGlzLm1hcC5nZXRDYW52YXMoKS50b0RhdGFVUkwoKX0sXy5zZXRPcHRpb25zPWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG4gaW4gcil0aGlzLm1hcFtlXSh0LG4scltuXSl9LF8uZ2V0TWFwTGF5ZXJzPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMubWFwLmdldFN0eWxlKCkubGF5ZXJzfSxfLmFkZExheWVyPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcy5tYXA7aWYoInN0cmluZyI9PXR5cGVvZiBlKXtpZigiIj09PWUpcmV0dXJuIHZvaWQgci5hZGRMYXllcih0LGUpO2Zvcih2YXIgbj10aGlzLmdldE1hcExheWVycygpLGE9MDthPG4ubGVuZ3RoO2ErKylpZihlPT09blthXS5pZClyZXR1cm4gdm9pZCByLmFkZExheWVyKHQsZSk7aS53YXJuKFsiVHJ5aW5nIHRvIGFkZCBsYXllciB3aXRoICpiZWxvdyogdmFsdWUiLGUsInJlZmVyZW5jaW5nIGEgbGF5ZXIgdGhhdCBkb2VzIG5vdCBleGlzdCIsIm9yIHRoYXQgZG9lcyBub3QgeWV0IGV4aXN0LiJdLmpvaW4oIiAiKSl9ci5hZGRMYXllcih0KX0sXy5wcm9qZWN0PWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLm1hcC5wcm9qZWN0KG5ldyBuLkxuZ0xhdCh0WzBdLHRbMV0pKX0sXy5nZXRWaWV3PWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5tYXAsZT10LmdldENlbnRlcigpLHI9e2xvbjplLmxuZyxsYXQ6ZS5sYXR9LG49dC5nZXRDYW52YXMoKSxpPW4ud2lkdGgsYT1uLmhlaWdodDtyZXR1cm57Y2VudGVyOnIsem9vbTp0LmdldFpvb20oKSxiZWFyaW5nOnQuZ2V0QmVhcmluZygpLHBpdGNoOnQuZ2V0UGl0Y2goKSxfZGVyaXZlZDp7Y29vcmRpbmF0ZXM6W3QudW5wcm9qZWN0KFswLDBdKS50b0FycmF5KCksdC51bnByb2plY3QoW2ksMF0pLnRvQXJyYXkoKSx0LnVucHJvamVjdChbaSxhXSkudG9BcnJheSgpLHQudW5wcm9qZWN0KFswLGFdKS50b0FycmF5KCldfX19LF8uZ2V0Vmlld0VkaXRzPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10aGlzLmlkLHI9WyJjZW50ZXIiLCJ6b29tIiwiYmVhcmluZyIsInBpdGNoIl0sbj17fSxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV07bltlKyIuIithXT10W2FdfXJldHVybiBufSxfLmdldFZpZXdFZGl0c1dpdGhEZXJpdmVkPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaWQscj10aGlzLmdldFZpZXdFZGl0cyh0KTtyZXR1cm4gcltlKyIuX2Rlcml2ZWQiXT10Ll9kZXJpdmVkLHJ9LGUuZXhwb3J0cz1ifSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiOjY1OCwiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIjo2NTcsIi4uLy4uL2NvbXBvbmVudHMvZngiOjY3OSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiOjc2OSwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vY2FydGVzaWFuL3NlbGVjdCI6ODQ3LCIuL2NvbnN0YW50cyI6ODgyLCIuL2xheWVycyI6ODg1LCJtYXBib3gtZ2wvZGlzdC9tYXBib3gtZ2wtdW5taW5pZmllZCI6NDQxfV0sODg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmVkaXRUeXBlO3JldHVybnt0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZTplfSxyOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZTplfSxiOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZTplfSxsOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZTplfSxlZGl0VHlwZTplfX19LHt9XSw4OTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZDMtdGltZS1mb3JtYXQiKS50aW1lRm9ybWF0TG9jYWxlLGE9dCgiZDMtZm9ybWF0IikuZm9ybWF0TG9jYWxlLG89dCgiZmFzdC1pc251bWVyaWMiKSxzPXQoIi4uL3JlZ2lzdHJ5IiksbD10KCIuLi9wbG90X2FwaS9wbG90X3NjaGVtYSIpLGM9dCgiLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLHU9dCgiLi4vbGliIiksZj10KCIuLi9jb21wb25lbnRzL2NvbG9yIiksaD10KCIuLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLHA9dCgiLi9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxkPXQoIi4vY2FydGVzaWFuL2hhbmRsZV9vdXRsaW5lIikuY2xlYXJTZWxlY3QsbT10KCIuL2FuaW1hdGlvbl9hdHRyaWJ1dGVzIiksZz10KCIuL2ZyYW1lX2F0dHJpYnV0ZXMiKSx2PXQoIi4uL3Bsb3RzL2dldF9kYXRhIikuZ2V0TW9kdWxlQ2FsY0RhdGEseT11LnJlbGlua1ByaXZhdGVLZXlzLHg9dS5fLGI9ZS5leHBvcnRzPXt9O3UuZXh0ZW5kRmxhdChiLHMpLGIuYXR0cmlidXRlcz10KCIuL2F0dHJpYnV0ZXMiKSxiLmF0dHJpYnV0ZXMudHlwZS52YWx1ZXM9Yi5hbGxUeXBlcyxiLmZvbnRBdHRycz10KCIuL2ZvbnRfYXR0cmlidXRlcyIpLGIubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksYi5mb250V2VpZ2h0PSJub3JtYWwiO3ZhciBfPWIudHJhbnNmb3Jtc1JlZ2lzdHJ5LHc9dCgiLi9jb21tYW5kIik7Yi5leGVjdXRlQVBJQ29tbWFuZD13LmV4ZWN1dGVBUElDb21tYW5kLGIuY29tcHV0ZUFQSUNvbW1hbmRCaW5kaW5ncz13LmNvbXB1dGVBUElDb21tYW5kQmluZGluZ3MsYi5tYW5hZ2VDb21tYW5kT2JzZXJ2ZXI9dy5tYW5hZ2VDb21tYW5kT2JzZXJ2ZXIsYi5oYXNTaW1wbGVBUElDb21tYW5kQmluZGluZ3M9dy5oYXNTaW1wbGVBUElDb21tYW5kQmluZGluZ3MsYi5yZWRyYXdUZXh0PWZ1bmN0aW9uKHQpe3JldHVybiB0PXUuZ2V0R3JhcGhEaXYodCksbmV3IFByb21pc2UoKGZ1bmN0aW9uKGUpe3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dC5fZnVsbExheW91dCYmKHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJhbm5vdGF0aW9ucyIsImRyYXciKSh0KSxzLmdldENvbXBvbmVudE1ldGhvZCgibGVnZW5kIiwiZHJhdyIpKHQpLHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJjb2xvcmJhciIsImRyYXciKSh0KSxlKGIucHJldmlvdXNQcm9taXNlcyh0KSkpfSksMzAwKX0pKX0sYi5yZXNpemU9ZnVuY3Rpb24odCl7dmFyIGU7dD11LmdldEdyYXBoRGl2KHQpO3ZhciByPW5ldyBQcm9taXNlKChmdW5jdGlvbihyLG4pe3QmJiF1LmlzSGlkZGVuKHQpfHxuKG5ldyBFcnJvcigiUmVzaXplIG11c3QgYmUgcGFzc2VkIGEgZGlzcGxheWVkIHBsb3QgZGl2IGVsZW1lbnQuIikpLHQuX3JlZHJhd1RpbWVyJiZjbGVhclRpbWVvdXQodC5fcmVkcmF3VGltZXIpLHQuX3Jlc29sdmVSZXNpemUmJihlPXQuX3Jlc29sdmVSZXNpemUpLHQuX3Jlc29sdmVSZXNpemU9cix0Ll9yZWRyYXdUaW1lcj1zZXRUaW1lb3V0KChmdW5jdGlvbigpe2lmKCF0LmxheW91dHx8dC5sYXlvdXQud2lkdGgmJnQubGF5b3V0LmhlaWdodHx8dS5pc0hpZGRlbih0KSlyKHQpO2Vsc2V7ZGVsZXRlIHQubGF5b3V0LndpZHRoLGRlbGV0ZSB0LmxheW91dC5oZWlnaHQ7dmFyIGU9dC5jaGFuZ2VkO3QuYXV0b3BsYXk9ITAscy5jYWxsKCJyZWxheW91dCIsdCx7YXV0b3NpemU6ITB9KS50aGVuKChmdW5jdGlvbigpe3QuY2hhbmdlZD1lLHQuX3Jlc29sdmVSZXNpemU9PT1yJiYoZGVsZXRlIHQuX3Jlc29sdmVSZXNpemUscih0KSl9KSl9fSksMTAwKX0pKTtyZXR1cm4gZSYmZShyKSxyfSxiLnByZXZpb3VzUHJvbWlzZXM9ZnVuY3Rpb24odCl7aWYoKHQuX3Byb21pc2VzfHxbXSkubGVuZ3RoKXJldHVybiBQcm9taXNlLmFsbCh0Ll9wcm9taXNlcykudGhlbigoZnVuY3Rpb24oKXt0Ll9wcm9taXNlcz1bXX0pKX0sYi5hZGRMaW5rcz1mdW5jdGlvbih0KXtpZih0Ll9jb250ZXh0LnNob3dMaW5rfHx0Ll9jb250ZXh0LnNob3dTb3VyY2VzKXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dS5lbnN1cmVTaW5nbGUoZS5fcGFwZXIsInRleHQiLCJqcy1wbG90LWxpbmstY29udGFpbmVyIiwoZnVuY3Rpb24odCl7dC5zdHlsZSh7ImZvbnQtZmFtaWx5IjonIk9wZW4gU2FucyIsIEFyaWFsLCBzYW5zLXNlcmlmJywiZm9udC1zaXplIjoiMTJweCIsZmlsbDpmLmRlZmF1bHRMaW5lLCJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO3QuYXBwZW5kKCJ0c3BhbiIpLmNsYXNzZWQoImpzLWxpbmstdG8tdG9vbCIsITApLHQuYXBwZW5kKCJ0c3BhbiIpLmNsYXNzZWQoImpzLWxpbmstc3BhY2VyIiwhMCksdC5hcHBlbmQoInRzcGFuIikuY2xhc3NlZCgianMtc291cmNlbGlua3MiLCEwKX0pKX0pKSxpPXIubm9kZSgpLGE9e3k6ZS5fcGFwZXIuYXR0cigiaGVpZ2h0IiktOX07ZG9jdW1lbnQuYm9keS5jb250YWlucyhpKSYmaS5nZXRDb21wdXRlZFRleHRMZW5ndGgoKT49ZS53aWR0aC0yMD8oYVsidGV4dC1hbmNob3IiXT0ic3RhcnQiLGEueD01KTooYVsidGV4dC1hbmNob3IiXT0iZW5kIixhLng9ZS5fcGFwZXIuYXR0cigid2lkdGgiKS03KSxyLmF0dHIoYSk7dmFyIG89ci5zZWxlY3QoIi5qcy1saW5rLXRvLXRvb2wiKSxzPXIuc2VsZWN0KCIuanMtbGluay1zcGFjZXIiKSxsPXIuc2VsZWN0KCIuanMtc291cmNlbGlua3MiKTt0Ll9jb250ZXh0LnNob3dTb3VyY2VzJiZ0Ll9jb250ZXh0LnNob3dTb3VyY2VzKHQpLHQuX2NvbnRleHQuc2hvd0xpbmsmJmZ1bmN0aW9uKHQsZSl7ZS50ZXh0KCIiKTt2YXIgcj1lLmFwcGVuZCgiYSIpLmF0dHIoeyJ4bGluazp4bGluazpocmVmIjoiIyIsY2xhc3M6ImxpbmstLWltcHQgbGluay0tZW1iZWR2aWV3IiwiZm9udC13ZWlnaHQiOiJib2xkIn0pLnRleHQodC5fY29udGV4dC5saW5rVGV4dCsiICIrU3RyaW5nLmZyb21DaGFyQ29kZSgxODcpKTtpZih0Ll9jb250ZXh0LnNlbmREYXRhKXIub24oImNsaWNrIiwoZnVuY3Rpb24oKXtiLnNlbmREYXRhVG9DbG91ZCh0KX0pKTtlbHNle3ZhciBuPXdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5zcGxpdCgiLyIpLGk9d2luZG93LmxvY2F0aW9uLnNlYXJjaDtyLmF0dHIoeyJ4bGluazp4bGluazpzaG93IjoibmV3IiwieGxpbms6eGxpbms6aHJlZiI6Ii8iK25bMl0uc3BsaXQoIi4iKVswXSsiLyIrblsxXStpfSl9fSh0LG8pLHMudGV4dChvLnRleHQoKSYmbC50ZXh0KCk/IiAtICI6IiIpfX0sYi5zZW5kRGF0YVRvQ2xvdWQ9ZnVuY3Rpb24odCl7dmFyIGU9KHdpbmRvdy5QTE9UTFlFTlZ8fHt9KS5CQVNFX1VSTHx8dC5fY29udGV4dC5wbG90bHlTZXJ2ZXJVUkw7aWYoZSl7dC5lbWl0KCJwbG90bHlfYmVmb3JlZXhwb3J0Iik7dmFyIHI9bi5zZWxlY3QodCkuYXBwZW5kKCJkaXYiKS5hdHRyKCJpZCIsImhpZGRlbmZvcm0iKS5zdHlsZSgiZGlzcGxheSIsIm5vbmUiKSxpPXIuYXBwZW5kKCJmb3JtIikuYXR0cih7YWN0aW9uOmUrIi9leHRlcm5hbCIsbWV0aG9kOiJwb3N0Iix0YXJnZXQ6Il9ibGFuayJ9KTtyZXR1cm4gaS5hcHBlbmQoImlucHV0IikuYXR0cih7dHlwZToidGV4dCIsbmFtZToiZGF0YSJ9KS5ub2RlKCkudmFsdWU9Yi5ncmFwaEpzb24odCwhMSwia2VlcGRhdGEiKSxpLm5vZGUoKS5zdWJtaXQoKSxyLnJlbW92ZSgpLHQuZW1pdCgicGxvdGx5X2FmdGVyZXhwb3J0IiksITF9fTt2YXIgVD1bImRheXMiLCJzaG9ydERheXMiLCJtb250aHMiLCJzaG9ydE1vbnRocyIsInBlcmlvZHMiLCJkYXRlVGltZSIsImRhdGUiLCJ0aW1lIiwiZGVjaW1hbCIsInRob3VzYW5kcyIsImdyb3VwaW5nIiwiY3VycmVuY3kiXSxrPVsieWVhciIsIm1vbnRoIiwiZGF5TW9udGgiLCJkYXlNb250aFllYXIiXTtmdW5jdGlvbiBBKHQsZSl7dmFyIHI9dC5fY29udGV4dC5sb2NhbGU7cnx8KHI9ImVuLVVTIik7dmFyIG49ITEsaT17fTtmdW5jdGlvbiBhKHQpe2Zvcih2YXIgcj0hMCxhPTA7YTxlLmxlbmd0aDthKyspe3ZhciBvPWVbYV07aVtvXXx8KHRbb10/aVtvXT10W29dOnI9ITEpfXImJihuPSEwKX1mb3IodmFyIG89MDtvPDI7bysrKXtmb3IodmFyIGw9dC5fY29udGV4dC5sb2NhbGVzLGM9MDtjPDI7YysrKXt2YXIgdT0obFtyXXx8e30pLmZvcm1hdDtpZih1JiYoYSh1KSxuKSlicmVhaztsPXMubG9jYWxlUmVnaXN0cnl9dmFyIGY9ci5zcGxpdCgiLSIpWzBdO2lmKG58fGY9PT1yKWJyZWFrO3I9Zn1yZXR1cm4gbnx8YShzLmxvY2FsZVJlZ2lzdHJ5LmVuLmZvcm1hdCksaX1mdW5jdGlvbiBNKHQsZSl7dmFyIHI9e19mdWxsTGF5b3V0OmV9LG49IngiPT09dC5faWQuY2hhckF0KDApLGk9dC5fbWFpbkF4aXMuX2FuY2hvckF4aXMsYT0iIixvPSIiLHM9IiI7aWYoaSYmKHM9aS5fbWFpbkF4aXMuX2lkLGE9bj90Ll9pZCtzOnMrdC5faWQpLCFhfHwhZS5fcGxvdHNbYV0pe2E9IiI7Zm9yKHZhciBsPXQuX2NvdW50ZXJBeGVzLGM9MDtjPGwubGVuZ3RoO2MrKyl7dmFyIHU9bFtjXSxmPW4/dC5faWQrdTp1K3QuX2lkO298fChvPWYpO3ZhciBoPXAuZ2V0RnJvbUlkKHIsdSk7aWYocyYmaC5vdmVybGF5aW5nPT09cyl7YT1mO2JyZWFrfX19cmV0dXJuIGF8fG99ZnVuY3Rpb24gUyh0KXt2YXIgZT10LnRyYW5zZm9ybXM7aWYoQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGgpZm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl0saT1uLl9tb2R1bGV8fF9bbi50eXBlXTtpZihpJiZpLm1ha2VzRGF0YSlyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBFKHQsZSxyLG4pe2Zvcih2YXIgaT10LnRyYW5zZm9ybXMsYT1bdF0sbz0wO288aS5sZW5ndGg7bysrKXt2YXIgcz1pW29dLGw9X1tzLnR5cGVdO2wmJmwudHJhbnNmb3JtJiYoYT1sLnRyYW5zZm9ybShhLHt0cmFuc2Zvcm06cyxmdWxsVHJhY2U6dCxmdWxsRGF0YTplLGxheW91dDpyLGZ1bGxMYXlvdXQ6bix0cmFuc2Zvcm1JbmRleDpvfSkpfXJldHVybiBhfWZ1bmN0aW9uIEwodCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0JiYicHgiPT09dC5zdWJzdHIodC5sZW5ndGgtMikmJnBhcnNlRmxvYXQodCl9ZnVuY3Rpb24gQyh0KXt2YXIgZT10Lm1hcmdpbjtpZighdC5fc2l6ZSl7dmFyIHI9dC5fc2l6ZT17bDpNYXRoLnJvdW5kKGUubCkscjpNYXRoLnJvdW5kKGUuciksdDpNYXRoLnJvdW5kKGUudCksYjpNYXRoLnJvdW5kKGUuYikscDpNYXRoLnJvdW5kKGUucGFkKX07ci53PU1hdGgucm91bmQodC53aWR0aCktci5sLXIucixyLmg9TWF0aC5yb3VuZCh0LmhlaWdodCktci50LXIuYn10Ll9wdXNobWFyZ2lufHwodC5fcHVzaG1hcmdpbj17fSksdC5fcHVzaG1hcmdpbklkc3x8KHQuX3B1c2htYXJnaW5JZHM9e30pfWIuc3VwcGx5RGVmYXVsdHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lJiZlLnNraXBVcGRhdGVDYWxjLG49dC5fZnVsbExheW91dHx8e307aWYobi5fc2tpcERlZmF1bHRzKWRlbGV0ZSBuLl9za2lwRGVmYXVsdHM7ZWxzZXt2YXIgbyxsPXQuX2Z1bGxMYXlvdXQ9e30sYz10LmxheW91dHx8e30sZj10Ll9mdWxsRGF0YXx8W10saD10Ll9mdWxsRGF0YT1bXSxwPXQuZGF0YXx8W10sbT10LmNhbGNkYXRhfHxbXSxnPXQuX2NvbnRleHR8fHt9O3QuX3RyYW5zaXRpb25EYXRhfHxiLmNyZWF0ZVRyYW5zaXRpb25EYXRhKHQpLGwuX2RmbHRUaXRsZT17cGxvdDp4KHQsIkNsaWNrIHRvIGVudGVyIFBsb3QgdGl0bGUiKSx4OngodCwiQ2xpY2sgdG8gZW50ZXIgWCBheGlzIHRpdGxlIikseTp4KHQsIkNsaWNrIHRvIGVudGVyIFkgYXhpcyB0aXRsZSIpLGNvbG9yYmFyOngodCwiQ2xpY2sgdG8gZW50ZXIgQ29sb3JzY2FsZSB0aXRsZSIpLGFubm90YXRpb246eCh0LCJuZXcgdGV4dCIpfSxsLl90cmFjZVdvcmQ9eCh0LCJ0cmFjZSIpO3ZhciB2PUEodCxUKTtpZihsLl9tYXBib3hBY2Nlc3NUb2tlbj1nLm1hcGJveEFjY2Vzc1Rva2VuLG4uX2luaXRpYWxBdXRvU2l6ZUlzRG9uZSl7dmFyIF89bi53aWR0aCx3PW4uaGVpZ2h0O2Iuc3VwcGx5TGF5b3V0R2xvYmFsRGVmYXVsdHMoYyxsLHYpLGMud2lkdGh8fChsLndpZHRoPV8pLGMuaGVpZ2h0fHwobC5oZWlnaHQ9dyksYi5zYW5pdGl6ZU1hcmdpbnMobCl9ZWxzZXtiLnN1cHBseUxheW91dEdsb2JhbERlZmF1bHRzKGMsbCx2KTt2YXIgTT0hYy53aWR0aHx8IWMuaGVpZ2h0LFM9bC5hdXRvc2l6ZSxFPWcuYXV0b3NpemFibGU7TSYmKFN8fEUpP2IucGxvdEF1dG9TaXplKHQsYyxsKTpNJiZiLnNhbml0aXplTWFyZ2lucyhsKSwhUyYmTSYmKGMud2lkdGg9bC53aWR0aCxjLmhlaWdodD1sLmhlaWdodCl9bC5fZDNsb2NhbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5kZWNpbWFsPWUuY2hhckF0KDApLHQudGhvdXNhbmRzPWUuY2hhckF0KDEpLHtudW1iZXJGb3JtYXQ6ZnVuY3Rpb24oZSl7dHJ5e2U9YSh0KS5mb3JtYXQodS5hZGp1c3RGb3JtYXQoZSkpfWNhdGNoKHQpe3JldHVybiB1Lndhcm5CYWRGb3JtYXQoZSksdS5ub0Zvcm1hdH1yZXR1cm4gZX0sdGltZUZvcm1hdDppKHQpLnV0Y0Zvcm1hdH19KHYsbC5zZXBhcmF0b3JzKSxsLl9leHRyYUZvcm1hdD1BKHQsayksbC5faW5pdGlhbEF1dG9TaXplSXNEb25lPSEwLGwuX2RhdGFMZW5ndGg9cC5sZW5ndGgsbC5fbW9kdWxlcz1bXSxsLl92aXNpYmxlTW9kdWxlcz1bXSxsLl9iYXNlUGxvdE1vZHVsZXM9W107dmFyIEw9bC5fc3VicGxvdHM9ZnVuY3Rpb24oKXt2YXIgdCxlLHI9cy5jb2xsZWN0YWJsZVN1YnBsb3RUeXBlcyxuPXt9O2lmKCFyKXtyPVtdO3ZhciBpPXMuc3VicGxvdHNSZWdpc3RyeTtmb3IodmFyIGEgaW4gaSl7dmFyIG89aVthXS5hdHRyO2lmKG8mJihyLnB1c2goYSksQXJyYXkuaXNBcnJheShvKSkpZm9yKGU9MDtlPG8ubGVuZ3RoO2UrKyl1LnB1c2hVbmlxdWUocixvW2VdKX19Zm9yKHQ9MDt0PHIubGVuZ3RoO3QrKyluW3JbdF1dPVtdO3JldHVybiBufSgpLFA9bC5fc3Bsb21BeGVzPXt4Ont9LHk6e319LEk9bC5fc3Bsb21TdWJwbG90cz17fTtsLl9zcGxvbUdyaWREZmx0PXt9LGwuX3NjYXR0ZXJTdGFja09wdHM9e30sbC5fZmlyc3RTY2F0dGVyPXt9LGwuX2FsaWdubWVudE9wdHM9e30sbC5fY29sb3JBeGVzPXt9LGwuX3JlcXVlc3RSYW5nZXNsaWRlcj17fSxsLl90cmFjZVVpZHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9ZS5sZW5ndGgsYT1bXTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKXt2YXIgbz10W3JdLl9mdWxsSW5wdXQ7byE9PW4mJmEucHVzaChvKSxuPW99dmFyIHM9YS5sZW5ndGgsbD1uZXcgQXJyYXkoaSksYz17fTtmdW5jdGlvbiBmKHQsZSl7bFtlXT10LGNbdF09MX1mdW5jdGlvbiBoKHQsZSl7aWYodCYmInN0cmluZyI9PXR5cGVvZiB0JiYhY1t0XSlyZXR1cm4gZih0LGUpLCEwfWZvcihyPTA7cjxpO3IrKyl7dmFyIHA9ZVtyXS51aWQ7Im51bWJlciI9PXR5cGVvZiBwJiYocD1TdHJpbmcocCkpLGgocCxyKXx8KHI8cyYmaChhW3JdLnVpZCxyKXx8Zih1LnJhbmRzdHIoYykscikpfXJldHVybiBsfShmLHApLGwuX2dsb2JhbFRyYW5zZm9ybXM9KHQuX2NvbnRleHR8fHt9KS5nbG9iYWxUcmFuc2Zvcm1zLGIuc3VwcGx5RGF0YURlZmF1bHRzKHAsaCxjLGwpO3ZhciBPPU9iamVjdC5rZXlzKFAueCksej1PYmplY3Qua2V5cyhQLnkpO2lmKE8ubGVuZ3RoPjEmJnoubGVuZ3RoPjEpe2ZvcihzLmdldENvbXBvbmVudE1ldGhvZCgiZ3JpZCIsInNpemVEZWZhdWx0cyIpKGMsbCksbz0wO288Ty5sZW5ndGg7bysrKXUucHVzaFVuaXF1ZShMLnhheGlzLE9bb10pO2ZvcihvPTA7bzx6Lmxlbmd0aDtvKyspdS5wdXNoVW5pcXVlKEwueWF4aXMseltvXSk7Zm9yKHZhciBEIGluIEkpdS5wdXNoVW5pcXVlKEwuY2FydGVzaWFuLEQpfWlmKGwuX2hhcz1iLl9oYXNQbG90VHlwZS5iaW5kKGwpLGYubGVuZ3RoPT09aC5sZW5ndGgpZm9yKG89MDtvPGgubGVuZ3RoO28rKyl5KGhbb10sZltvXSk7Yi5zdXBwbHlMYXlvdXRNb2R1bGVEZWZhdWx0cyhjLGwsaCx0Ll90cmFuc2l0aW9uRGF0YSk7dmFyIFI9bC5fdmlzaWJsZU1vZHVsZXMsRj1bXTtmb3Iobz0wO288Ui5sZW5ndGg7bysrKXt2YXIgQj1SW29dLmNyb3NzVHJhY2VEZWZhdWx0cztCJiZ1LnB1c2hVbmlxdWUoRixCKX1mb3Iobz0wO288Ri5sZW5ndGg7bysrKUZbb10oaCxsKTtsLl9oYXNPbmx5TGFyZ2VTcGxvbXM9MT09PWwuX2Jhc2VQbG90TW9kdWxlcy5sZW5ndGgmJiJzcGxvbSI9PT1sLl9iYXNlUGxvdE1vZHVsZXNbMF0ubmFtZSYmTy5sZW5ndGg+MTUmJnoubGVuZ3RoPjE1JiYwPT09bC5zaGFwZXMubGVuZ3RoJiYwPT09bC5pbWFnZXMubGVuZ3RoLGIubGlua1N1YnBsb3RzKGgsbCxmLG4pLGIuY2xlYW5QbG90KGgsbCxmLG4pO3ZhciBOPSEoIW4uX2hhc3x8IW4uX2hhcygiZ2wyZCIpKSxqPSEoIWwuX2hhc3x8IWwuX2hhcygiZ2wyZCIpKSxVPSEoIW4uX2hhc3x8IW4uX2hhcygiY2FydGVzaWFuIikpfHxOLFY9ISghbC5faGFzfHwhbC5faGFzKCJjYXJ0ZXNpYW4iKSl8fGo7VSYmIVY/bi5fYmdMYXllci5yZW1vdmUoKTpWJiYhVSYmKGwuX3Nob3VsZENyZWF0ZUJnTGF5ZXI9ITApLG4uX3pvb21sYXllciYmIXQuX2RyYWdnaW5nJiZkKHtfZnVsbExheW91dDpufSksZnVuY3Rpb24odCxlKXt2YXIgcixuPVtdO2UubWV0YSYmKHI9ZS5fbWV0YT17bWV0YTplLm1ldGEsbGF5b3V0OnttZXRhOmUubWV0YX19KTtmb3IodmFyIGk9MDtpPHQubGVuZ3RoO2krKyl7dmFyIGE9dFtpXTthLm1ldGE/blthLmluZGV4XT1hLl9tZXRhPXttZXRhOmEubWV0YX06ZS5tZXRhJiYoYS5fbWV0YT17bWV0YTplLm1ldGF9KSxlLm1ldGEmJihhLl9tZXRhLmxheW91dD17bWV0YTplLm1ldGF9KX1uLmxlbmd0aCYmKHJ8fChyPWUuX21ldGE9e30pLHIuZGF0YT1uKX0oaCxsKSx5KGwsbikscy5nZXRDb21wb25lbnRNZXRob2QoImNvbG9yc2NhbGUiLCJjcm9zc1RyYWNlRGVmYXVsdHMiKShoLGwpLGwuX3ByZUdVSXx8KGwuX3ByZUdVST17fSksbC5fdHJhY2VQcmVHVUl8fChsLl90cmFjZVByZUdVST17fSk7dmFyIEgscT1sLl90cmFjZVByZUdVSSxHPXt9O2ZvcihIIGluIHEpR1tIXT0ib2xkIjtmb3Iobz0wO288aC5sZW5ndGg7bysrKUdbSD1oW29dLl9mdWxsSW5wdXQudWlkXXx8KHFbSF09e30pLEdbSF09Im5ldyI7Zm9yKEggaW4gRykib2xkIj09PUdbSF0mJmRlbGV0ZSBxW0hdO0MobCkscy5nZXRDb21wb25lbnRNZXRob2QoInJhbmdlc2xpZGVyIiwibWFrZURhdGEiKShsKSxyfHxtLmxlbmd0aCE9PWgubGVuZ3RofHxiLnN1cHBseURlZmF1bHRzVXBkYXRlQ2FsYyhtLGgpfX0sYi5zdXBwbHlEZWZhdWx0c1VwZGF0ZUNhbGM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPGUubGVuZ3RoO3IrKyl7dmFyIG49ZVtyXSxpPSh0W3JdfHxbXSlbMF07aWYoaSYmaS50cmFjZSl7dmFyIGE9aS50cmFjZTtpZihhLl9oYXNDYWxjVHJhbnNmb3JtKXt2YXIgbyxzLGwsYz1hLl9hcnJheUF0dHJzO2ZvcihvPTA7bzxjLmxlbmd0aDtvKyspcz1jW29dLGw9dS5uZXN0ZWRQcm9wZXJ0eShhLHMpLmdldCgpLnNsaWNlKCksdS5uZXN0ZWRQcm9wZXJ0eShuLHMpLnNldChsKX1pLnRyYWNlPW59fX0sYi5jcmVhdGVUcmFuc2l0aW9uRGF0YT1mdW5jdGlvbih0KXt0Ll90cmFuc2l0aW9uRGF0YXx8KHQuX3RyYW5zaXRpb25EYXRhPXt9KSx0Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVzfHwodC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lcz1bXSksdC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lSGFzaHx8KHQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZUhhc2g9e30pLHQuX3RyYW5zaXRpb25EYXRhLl9jb3VudGVyfHwodC5fdHJhbnNpdGlvbkRhdGEuX2NvdW50ZXI9MCksdC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrc3x8KHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3M9W10pfSxiLl9oYXNQbG90VHlwZT1mdW5jdGlvbih0KXt2YXIgZSxyPXRoaXMuX2Jhc2VQbG90TW9kdWxlc3x8W107Zm9yKGU9MDtlPHIubGVuZ3RoO2UrKylpZihyW2VdLm5hbWU9PT10KXJldHVybiEwO3ZhciBuPXRoaXMuX21vZHVsZXN8fFtdO2ZvcihlPTA7ZTxuLmxlbmd0aDtlKyspe3ZhciBpPW5bZV0ubmFtZTtpZihpPT09dClyZXR1cm4hMDt2YXIgYT1zLm1vZHVsZXNbaV07aWYoYSYmYS5jYXRlZ29yaWVzW3RdKXJldHVybiEwfXJldHVybiExfSxiLmNsZWFuUGxvdD1mdW5jdGlvbih0LGUscixuKXt2YXIgaSxhLG89bi5fYmFzZVBsb3RNb2R1bGVzfHxbXTtmb3IoaT0wO2k8by5sZW5ndGg7aSsrKXt2YXIgcz1vW2ldO3MuY2xlYW4mJnMuY2xlYW4odCxlLHIsbil9dmFyIGw9bi5faGFzJiZuLl9oYXMoImdsIiksYz1lLl9oYXMmJmUuX2hhcygiZ2wiKTtsJiYhYyYmdm9pZCAwIT09bi5fZ2xjb250YWluZXImJihuLl9nbGNvbnRhaW5lci5zZWxlY3RBbGwoIi5nbC1jYW52YXMiKS5yZW1vdmUoKSxuLl9nbGNvbnRhaW5lci5zZWxlY3RBbGwoIi5uby13ZWJnbCIpLnJlbW92ZSgpLG4uX2dsY2FudmFzPW51bGwpO3ZhciB1PSEhbi5faW5mb2xheWVyO3Q6Zm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGY9cltpXS51aWQ7Zm9yKGE9MDthPHQubGVuZ3RoO2ErKyl7aWYoZj09PXRbYV0udWlkKWNvbnRpbnVlIHR9dSYmbi5faW5mb2xheWVyLnNlbGVjdCgiLmNiIitmKS5yZW1vdmUoKX19LGIubGlua1N1YnBsb3RzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbz1uLl9wbG90c3x8e30sbD1lLl9wbG90cz17fSxjPWUuX3N1YnBsb3RzLGY9e19mdWxsRGF0YTp0LF9mdWxsTGF5b3V0OmV9LGg9Yy5jYXJ0ZXNpYW4uY29uY2F0KGMuZ2wyZHx8W10pO2ZvcihpPTA7aTxoLmxlbmd0aDtpKyspe3ZhciBkLG09aFtpXSxnPW9bbV0sdj1wLmdldEZyb21JZChmLG0sIngiKSx5PXAuZ2V0RnJvbUlkKGYsbSwieSIpO2ZvcihnP2Q9bFttXT1nOihkPWxbbV09e30pLmlkPW0sdi5fY291bnRlckF4ZXMucHVzaCh5Ll9pZCkseS5fY291bnRlckF4ZXMucHVzaCh2Ll9pZCksdi5fc3VicGxvdHNXaXRoLnB1c2gobSkseS5fc3VicGxvdHNXaXRoLnB1c2gobSksZC54YXhpcz12LGQueWF4aXM9eSxkLl9oYXNDbGlwT25BeGlzRmFsc2U9ITEsYT0wO2E8dC5sZW5ndGg7YSsrKXt2YXIgeD10W2FdO2lmKHgueGF4aXM9PT1kLnhheGlzLl9pZCYmeC55YXhpcz09PWQueWF4aXMuX2lkJiYhMT09PXguY2xpcG9uYXhpcyl7ZC5faGFzQ2xpcE9uQXhpc0ZhbHNlPSEwO2JyZWFrfX19dmFyIGIsXz1wLmxpc3QoZixudWxsLCEwKTtmb3IoaT0wO2k8Xy5sZW5ndGg7aSsrKXt2YXIgdz1udWxsOyhiPV9baV0pLm92ZXJsYXlpbmcmJih3PXAuZ2V0RnJvbUlkKGYsYi5vdmVybGF5aW5nKSkmJncub3ZlcmxheWluZyYmKGIub3ZlcmxheWluZz0hMSx3PW51bGwpLGIuX21haW5BeGlzPXd8fGIsdyYmKGIuZG9tYWluPXcuZG9tYWluLnNsaWNlKCkpLGIuX2FuY2hvckF4aXM9ImZyZWUiPT09Yi5hbmNob3I/bnVsbDpwLmdldEZyb21JZChmLGIuYW5jaG9yKX1mb3IoaT0wO2k8Xy5sZW5ndGg7aSsrKWlmKChiPV9baV0pLl9jb3VudGVyQXhlcy5zb3J0KHAuaWRTb3J0KSxiLl9zdWJwbG90c1dpdGguc29ydCh1LnN1YnBsb3RTb3J0KSxiLl9tYWluU3VicGxvdD1NKGIsZSksYi5fY291bnRlckF4ZXMubGVuZ3RoJiYoYi5zcGlrZW1vZGUmJi0xIT09Yi5zcGlrZW1vZGUuaW5kZXhPZigiYWNyb3NzIil8fGIuYXV0b21hcmdpbiYmYi5taXJyb3ImJiJmcmVlIiE9PWIuYW5jaG9yfHxzLmdldENvbXBvbmVudE1ldGhvZCgicmFuZ2VzbGlkZXIiLCJpc1Zpc2libGUiKShiKSkpe3ZhciBUPTEsaz0wO2ZvcihhPTA7YTxiLl9jb3VudGVyQXhlcy5sZW5ndGg7YSsrKXt2YXIgQT1wLmdldEZyb21JZChmLGIuX2NvdW50ZXJBeGVzW2FdKTtUPU1hdGgubWluKFQsQS5kb21haW5bMF0pLGs9TWF0aC5tYXgoayxBLmRvbWFpblsxXSl9VDxrJiYoYi5fY291bnRlckRvbWFpbk1pbj1ULGIuX2NvdW50ZXJEb21haW5NYXg9ayl9fSxiLmNsZWFyRXhwYW5kZWRUcmFjZURlZmF1bHRDb2xvcnM9ZnVuY3Rpb24odCl7dmFyIGUscixuO2ZvcihyPVtdLChlPXQuX21vZHVsZS5fY29sb3JBdHRycyl8fCh0Ll9tb2R1bGUuX2NvbG9yQXR0cnM9ZT1bXSxsLmNyYXdsKHQuX21vZHVsZS5hdHRyaWJ1dGVzLChmdW5jdGlvbih0LG4saSxhKXtyW2FdPW4sci5sZW5ndGg9YSsxLCJjb2xvciI9PT10LnZhbFR5cGUmJnZvaWQgMD09PXQuZGZsdCYmZS5wdXNoKHIuam9pbigiLiIpKX0pKSksbj0wO248ZS5sZW5ndGg7bisrKXt1Lm5lc3RlZFByb3BlcnR5KHQsIl9pbnB1dC4iK2Vbbl0pLmdldCgpfHx1Lm5lc3RlZFByb3BlcnR5KHQsZVtuXSkuc2V0KG51bGwpfX0sYi5zdXBwbHlEYXRhRGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLGw9bi5fbW9kdWxlcyxmPW4uX3Zpc2libGVNb2R1bGVzLGg9bi5fYmFzZVBsb3RNb2R1bGVzLHA9MCxkPTA7ZnVuY3Rpb24gbSh0KXtlLnB1c2godCk7dmFyIHI9dC5fbW9kdWxlO3ImJih1LnB1c2hVbmlxdWUobCxyKSwhMD09PXQudmlzaWJsZSYmdS5wdXNoVW5pcXVlKGYsciksdS5wdXNoVW5pcXVlKGgsdC5fbW9kdWxlLmJhc2VQbG90TW9kdWxlKSxwKyssITEhPT10Ll9pbnB1dC52aXNpYmxlJiZkKyspfW4uX3RyYW5zZm9ybU1vZHVsZXM9W107dmFyIGc9e30sdj1bXSx4PShyLnRlbXBsYXRlfHx7fSkuZGF0YXx8e30sXz1jLnRyYWNlVGVtcGxhdGVyKHgpO2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe2lmKG89dFtpXSwoYT1fLm5ld1RyYWNlKG8pKS51aWQ9bi5fdHJhY2VVaWRzW2ldLGIuc3VwcGx5VHJhY2VEZWZhdWx0cyhvLGEsZCxuLGkpLGEuaW5kZXg9aSxhLl9pbnB1dD1vLGEuX2V4cGFuZGVkSW5kZXg9cCxhLnRyYW5zZm9ybXMmJmEudHJhbnNmb3Jtcy5sZW5ndGgpZm9yKHZhciB3PSExIT09by52aXNpYmxlJiYhMT09PWEudmlzaWJsZSxUPUUoYSxlLHIsbiksaz0wO2s8VC5sZW5ndGg7aysrKXt2YXIgQT1UW2tdLE09e190ZW1wbGF0ZTphLl90ZW1wbGF0ZSx0eXBlOmEudHlwZSx1aWQ6YS51aWQra307dyYmITE9PT1BLnZpc2libGUmJmRlbGV0ZSBBLnZpc2libGUsYi5zdXBwbHlUcmFjZURlZmF1bHRzKEEsTSxwLG4saSkseShNLEEpLE0uaW5kZXg9aSxNLl9pbnB1dD1vLE0uX2Z1bGxJbnB1dD1hLE0uX2V4cGFuZGVkSW5kZXg9cCxNLl9leHBhbmRlZElucHV0PUEsbShNKX1lbHNlIGEuX2Z1bGxJbnB1dD1hLGEuX2V4cGFuZGVkSW5wdXQ9YSxtKGEpO3MudHJhY2VJcyhhLCJjYXJwZXRBeGlzIikmJihnW2EuY2FycGV0XT1hKSxzLnRyYWNlSXMoYSwiY2FycGV0RGVwZW5kZW50IikmJnYucHVzaChpKX1mb3IoaT0wO2k8di5sZW5ndGg7aSsrKWlmKChhPWVbdltpXV0pLnZpc2libGUpe3ZhciBTPWdbYS5jYXJwZXRdO2EuX2NhcnBldD1TLFMmJlMudmlzaWJsZT8oYS54YXhpcz1TLnhheGlzLGEueWF4aXM9Uy55YXhpcyk6YS52aXNpYmxlPSExfX0sYi5zdXBwbHlBbmltYXRpb25EZWZhdWx0cz1mdW5jdGlvbih0KXt2YXIgZTt0PXR8fHt9O3ZhciByPXt9O2Z1bmN0aW9uIG4oZSxuKXtyZXR1cm4gdS5jb2VyY2UodHx8e30scixtLGUsbil9aWYobigibW9kZSIpLG4oImRpcmVjdGlvbiIpLG4oImZyb21jdXJyZW50IiksQXJyYXkuaXNBcnJheSh0LmZyYW1lKSlmb3Ioci5mcmFtZT1bXSxlPTA7ZTx0LmZyYW1lLmxlbmd0aDtlKyspci5mcmFtZVtlXT1iLnN1cHBseUFuaW1hdGlvbkZyYW1lRGVmYXVsdHModC5mcmFtZVtlXXx8e30pO2Vsc2Ugci5mcmFtZT1iLnN1cHBseUFuaW1hdGlvbkZyYW1lRGVmYXVsdHModC5mcmFtZXx8e30pO2lmKEFycmF5LmlzQXJyYXkodC50cmFuc2l0aW9uKSlmb3Ioci50cmFuc2l0aW9uPVtdLGU9MDtlPHQudHJhbnNpdGlvbi5sZW5ndGg7ZSsrKXIudHJhbnNpdGlvbltlXT1iLnN1cHBseUFuaW1hdGlvblRyYW5zaXRpb25EZWZhdWx0cyh0LnRyYW5zaXRpb25bZV18fHt9KTtlbHNlIHIudHJhbnNpdGlvbj1iLnN1cHBseUFuaW1hdGlvblRyYW5zaXRpb25EZWZhdWx0cyh0LnRyYW5zaXRpb258fHt9KTtyZXR1cm4gcn0sYi5zdXBwbHlBbmltYXRpb25GcmFtZURlZmF1bHRzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIHIocixuKXtyZXR1cm4gdS5jb2VyY2UodHx8e30sZSxtLmZyYW1lLHIsbil9cmV0dXJuIHIoImR1cmF0aW9uIikscigicmVkcmF3IiksZX0sYi5zdXBwbHlBbmltYXRpb25UcmFuc2l0aW9uRGVmYXVsdHM9ZnVuY3Rpb24odCl7dmFyIGU9e307ZnVuY3Rpb24gcihyLG4pe3JldHVybiB1LmNvZXJjZSh0fHx7fSxlLG0udHJhbnNpdGlvbixyLG4pfXJldHVybiByKCJkdXJhdGlvbiIpLHIoImVhc2luZyIpLGV9LGIuc3VwcGx5RnJhbWVEZWZhdWx0cz1mdW5jdGlvbih0KXt2YXIgZT17fTtmdW5jdGlvbiByKHIsbil7cmV0dXJuIHUuY29lcmNlKHQsZSxnLHIsbil9cmV0dXJuIHIoImdyb3VwIikscigibmFtZSIpLHIoInRyYWNlcyIpLHIoImJhc2VmcmFtZSIpLHIoImRhdGEiKSxyKCJsYXlvdXQiKSxlfSxiLnN1cHBseVRyYWNlRGVmYXVsdHM9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYSxvPW4uY29sb3J3YXl8fGYuZGVmYXVsdHMsbD1vW3Ilby5sZW5ndGhdO2Z1bmN0aW9uIGMocixuKXtyZXR1cm4gdS5jb2VyY2UodCxlLGIuYXR0cmlidXRlcyxyLG4pfXZhciBoPWMoInZpc2libGUiKTtjKCJ0eXBlIiksYygibmFtZSIsbi5fdHJhY2VXb3JkKyIgIitpKSxjKCJ1aXJldmlzaW9uIixuLnVpcmV2aXNpb24pO3ZhciBwPWIuZ2V0TW9kdWxlKGUpO2lmKGUuX21vZHVsZT1wLHApe3ZhciBkPXAuYmFzZVBsb3RNb2R1bGUsbT1kLmF0dHIsZz1kLmF0dHJpYnV0ZXM7aWYobSYmZyl7dmFyIHY9bi5fc3VicGxvdHMseT0iIjtpZihofHwiZ2wyZCIhPT1kLm5hbWUpe2lmKEFycmF5LmlzQXJyYXkobSkpZm9yKGE9MDthPG0ubGVuZ3RoO2ErKyl7dmFyIHg9bVthXSxfPXUuY29lcmNlKHQsZSxnLHgpO3ZbeF0mJnUucHVzaFVuaXF1ZSh2W3hdLF8pLHkrPV99ZWxzZSB5PXUuY29lcmNlKHQsZSxnLG0pO3ZbZC5uYW1lXSYmdS5wdXNoVW5pcXVlKHZbZC5uYW1lXSx5KX19fWlmKGgpe2lmKGMoImN1c3RvbWRhdGEiKSxjKCJpZHMiKSxjKCJtZXRhIikscy50cmFjZUlzKGUsInNob3dMZWdlbmQiKSl1LmNvZXJjZSh0LGUscC5hdHRyaWJ1dGVzLnNob3dsZWdlbmQ/cC5hdHRyaWJ1dGVzOmIuYXR0cmlidXRlcywic2hvd2xlZ2VuZCIpLGMoImxlZ2VuZGdyb3VwIiksYygibGVnZW5kZ3JvdXB0aXRsZS50ZXh0IikmJnUuY29lcmNlRm9udChjLCJsZWdlbmRncm91cHRpdGxlLmZvbnQiLHUuZXh0ZW5kRmxhdCh7fSxuLmZvbnQse3NpemU6TWF0aC5yb3VuZCgxLjEqbi5mb250LnNpemUpfSkpLGMoImxlZ2VuZHJhbmsiKSxlLl9kZmx0U2hvd0xlZ2VuZD0hMDtlbHNlIGUuX2RmbHRTaG93TGVnZW5kPSExO3AmJnAuc3VwcGx5RGVmYXVsdHModCxlLGwsbikscy50cmFjZUlzKGUsIm5vT3BhY2l0eSIpfHxjKCJvcGFjaXR5Iikscy50cmFjZUlzKGUsIm5vdExlZ2VuZElzb2xhdGFibGUiKSYmKGUudmlzaWJsZT0hIWUudmlzaWJsZSkscy50cmFjZUlzKGUsIm5vSG92ZXIiKXx8KGUuaG92ZXJ0ZW1wbGF0ZXx8dS5jb2VyY2VIb3ZlcmluZm8odCxlLG4pLCJwYXJjYXRzIiE9PWUudHlwZSYmcy5nZXRDb21wb25lbnRNZXRob2QoImZ4Iiwic3VwcGx5RGVmYXVsdHMiKSh0LGUsbCxuKSkscCYmcC5zZWxlY3RQb2ludHMmJmMoInNlbGVjdGVkcG9pbnRzIiksYi5zdXBwbHlUcmFuc2Zvcm1EZWZhdWx0cyh0LGUsbil9cmV0dXJuIGV9LGIuaGFzTWFrZXNEYXRhVHJhbnNmb3JtPVMsYi5zdXBwbHlUcmFuc2Zvcm1EZWZhdWx0cz1mdW5jdGlvbih0LGUscil7aWYoZS5fbGVuZ3RofHxTKHQpKXt2YXIgbj1yLl9nbG9iYWxUcmFuc2Zvcm1zfHxbXSxpPXIuX3RyYW5zZm9ybU1vZHVsZXN8fFtdO2lmKEFycmF5LmlzQXJyYXkodC50cmFuc2Zvcm1zKXx8MCE9PW4ubGVuZ3RoKWZvcih2YXIgYT10LnRyYW5zZm9ybXN8fFtdLG89bi5jb25jYXQoYSkscz1lLnRyYW5zZm9ybXM9W10sbD0wO2w8by5sZW5ndGg7bCsrKXt2YXIgYyxmPW9bbF0saD1mLnR5cGUscD1fW2hdLGQ9IShmLl9tb2R1bGUmJmYuX21vZHVsZT09PXApLG09cCYmImZ1bmN0aW9uIj09dHlwZW9mIHAudHJhbnNmb3JtO3B8fHUud2FybigiVW5yZWNvZ25pemVkIHRyYW5zZm9ybSB0eXBlICIraCsiLiIpLHAmJnAuc3VwcGx5RGVmYXVsdHMmJihkfHxtKT8oKGM9cC5zdXBwbHlEZWZhdWx0cyhmLGUscix0KSkudHlwZT1oLGMuX21vZHVsZT1wLHUucHVzaFVuaXF1ZShpLHApKTpjPXUuZXh0ZW5kRmxhdCh7fSxmKSxzLnB1c2goYyl9fX0sYi5zdXBwbHlMYXlvdXRHbG9iYWxEZWZhdWx0cz1mdW5jdGlvbih0LGUscil7ZnVuY3Rpb24gbihyLG4pe3JldHVybiB1LmNvZXJjZSh0LGUsYi5sYXlvdXRBdHRyaWJ1dGVzLHIsbil9dmFyIGk9dC50ZW1wbGF0ZTt1LmlzUGxhaW5PYmplY3QoaSkmJihlLnRlbXBsYXRlPWksZS5fdGVtcGxhdGU9aS5sYXlvdXQsZS5fZGF0YVRlbXBsYXRlPWkuZGF0YSksbigiYXV0b3R5cGVudW1iZXJzIik7dmFyIGE9dS5jb2VyY2VGb250KG4sImZvbnQiKTtuKCJ0aXRsZS50ZXh0IixlLl9kZmx0VGl0bGUucGxvdCksdS5jb2VyY2VGb250KG4sInRpdGxlLmZvbnQiLHtmYW1pbHk6YS5mYW1pbHksc2l6ZTpNYXRoLnJvdW5kKDEuNCphLnNpemUpLGNvbG9yOmEuY29sb3J9KSxuKCJ0aXRsZS54cmVmIiksbigidGl0bGUueXJlZiIpLG4oInRpdGxlLngiKSxuKCJ0aXRsZS55IiksbigidGl0bGUueGFuY2hvciIpLG4oInRpdGxlLnlhbmNob3IiKSxuKCJ0aXRsZS5wYWQudCIpLG4oInRpdGxlLnBhZC5yIiksbigidGl0bGUucGFkLmIiKSxuKCJ0aXRsZS5wYWQubCIpLG4oInVuaWZvcm10ZXh0Lm1vZGUiKSYmbigidW5pZm9ybXRleHQubWluc2l6ZSIpLG4oImF1dG9zaXplIiwhKHQud2lkdGgmJnQuaGVpZ2h0KSksbigid2lkdGgiKSxuKCJoZWlnaHQiKSxuKCJtYXJnaW4ubCIpLG4oIm1hcmdpbi5yIiksbigibWFyZ2luLnQiKSxuKCJtYXJnaW4uYiIpLG4oIm1hcmdpbi5wYWQiKSxuKCJtYXJnaW4uYXV0b2V4cGFuZCIpLHQud2lkdGgmJnQuaGVpZ2h0JiZiLnNhbml0aXplTWFyZ2lucyhlKSxzLmdldENvbXBvbmVudE1ldGhvZCgiZ3JpZCIsInNpemVEZWZhdWx0cyIpKHQsZSksbigicGFwZXJfYmdjb2xvciIpLG4oInNlcGFyYXRvcnMiLHIuZGVjaW1hbCtyLnRob3VzYW5kcyksbigiaGlkZXNvdXJjZXMiKSxuKCJjb2xvcndheSIpLG4oImRhdGFyZXZpc2lvbiIpO3ZhciBvPW4oInVpcmV2aXNpb24iKTtuKCJlZGl0cmV2aXNpb24iLG8pLG4oInNlbGVjdGlvbnJldmlzaW9uIixvKSxzLmdldENvbXBvbmVudE1ldGhvZCgibW9kZWJhciIsInN1cHBseUxheW91dERlZmF1bHRzIikodCxlKSxzLmdldENvbXBvbmVudE1ldGhvZCgic2hhcGVzIiwic3VwcGx5RHJhd05ld1NoYXBlRGVmYXVsdHMiKSh0LGUsbiksbigibWV0YSIpLHUuaXNQbGFpbk9iamVjdCh0LnRyYW5zaXRpb24pJiYobigidHJhbnNpdGlvbi5kdXJhdGlvbiIpLG4oInRyYW5zaXRpb24uZWFzaW5nIiksbigidHJhbnNpdGlvbi5vcmRlcmluZyIpKSxzLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlRGVmYXVsdHMiKSh0LGUsImNhbGVuZGFyIikscy5nZXRDb21wb25lbnRNZXRob2QoImZ4Iiwic3VwcGx5TGF5b3V0R2xvYmFsRGVmYXVsdHMiKSh0LGUsbil9LGIucGxvdEF1dG9TaXplPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGE9dC5fY29udGV4dHx8e30scz1hLmZyYW1lTWFyZ2lucyxsPXUuaXNQbG90RGl2KHQpO2lmKGwmJnQuZW1pdCgicGxvdGx5X2F1dG9zaXplIiksYS5maWxsRnJhbWUpbj13aW5kb3cuaW5uZXJXaWR0aCxpPXdpbmRvdy5pbm5lckhlaWdodCxkb2N1bWVudC5ib2R5LnN0eWxlLm92ZXJmbG93PSJoaWRkZW4iO2Vsc2V7dmFyIGM9bD93aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSh0KTp7fTtpZihuPUwoYy53aWR0aCl8fEwoYy5tYXhXaWR0aCl8fHIud2lkdGgsaT1MKGMuaGVpZ2h0KXx8TChjLm1heEhlaWdodCl8fHIuaGVpZ2h0LG8ocykmJnM+MCl7dmFyIGY9MS0yKnM7bj1NYXRoLnJvdW5kKGYqbiksaT1NYXRoLnJvdW5kKGYqaSl9fXZhciBoPWIubGF5b3V0QXR0cmlidXRlcy53aWR0aC5taW4scD1iLmxheW91dEF0dHJpYnV0ZXMuaGVpZ2h0Lm1pbjtuPGgmJihuPWgpLGk8cCYmKGk9cCk7dmFyIGQ9IWUud2lkdGgmJk1hdGguYWJzKHIud2lkdGgtbik+MSxtPSFlLmhlaWdodCYmTWF0aC5hYnMoci5oZWlnaHQtaSk+MTsobXx8ZCkmJihkJiYoci53aWR0aD1uKSxtJiYoci5oZWlnaHQ9aSkpLHQuX2luaXRpYWxBdXRvU2l6ZXx8KHQuX2luaXRpYWxBdXRvU2l6ZT17d2lkdGg6bixoZWlnaHQ6aX0pLGIuc2FuaXRpemVNYXJnaW5zKHIpfSxiLnN1cHBseUxheW91dE1vZHVsZURlZmF1bHRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbyxsPXMuY29tcG9uZW50c1JlZ2lzdHJ5LGM9ZS5fYmFzZVBsb3RNb2R1bGVzLGY9cy5zdWJwbG90c1JlZ2lzdHJ5LmNhcnRlc2lhbjtmb3IoaSBpbiBsKShvPWxbaV0pLmluY2x1ZGVCYXNlUGxvdCYmby5pbmNsdWRlQmFzZVBsb3QodCxlKTtmb3IodmFyIGggaW4gYy5sZW5ndGh8fGMucHVzaChmKSxlLl9oYXMoImNhcnRlc2lhbiIpJiYocy5nZXRDb21wb25lbnRNZXRob2QoImdyaWQiLCJjb250ZW50RGVmYXVsdHMiKSh0LGUpLGYuZmluYWxpemVTdWJwbG90cyh0LGUpKSxlLl9zdWJwbG90cyllLl9zdWJwbG90c1toXS5zb3J0KHUuc3VicGxvdFNvcnQpO2ZvcihhPTA7YTxjLmxlbmd0aDthKyspKG89Y1thXSkuc3VwcGx5TGF5b3V0RGVmYXVsdHMmJm8uc3VwcGx5TGF5b3V0RGVmYXVsdHModCxlLHIpO3ZhciBwPWUuX21vZHVsZXM7Zm9yKGE9MDthPHAubGVuZ3RoO2ErKykobz1wW2FdKS5zdXBwbHlMYXlvdXREZWZhdWx0cyYmby5zdXBwbHlMYXlvdXREZWZhdWx0cyh0LGUscik7dmFyIGQ9ZS5fdHJhbnNmb3JtTW9kdWxlcztmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKShvPWRbYV0pLnN1cHBseUxheW91dERlZmF1bHRzJiZvLnN1cHBseUxheW91dERlZmF1bHRzKHQsZSxyLG4pO2ZvcihpIGluIGwpKG89bFtpXSkuc3VwcGx5TGF5b3V0RGVmYXVsdHMmJm8uc3VwcGx5TGF5b3V0RGVmYXVsdHModCxlLHIpfSxiLnB1cmdlPWZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXR8fHt9O3ZvaWQgMCE9PWUuX2dsY29udGFpbmVyJiYoZS5fZ2xjb250YWluZXIuc2VsZWN0QWxsKCIuZ2wtY2FudmFzIikucmVtb3ZlKCksZS5fZ2xjb250YWluZXIucmVtb3ZlKCksZS5fZ2xjYW52YXM9bnVsbCksZS5fbW9kZUJhciYmZS5fbW9kZUJhci5kZXN0cm95KCksdC5fdHJhbnNpdGlvbkRhdGEmJih0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzJiYodC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrcy5sZW5ndGg9MCksdC5fdHJhbnNpdGlvbkRhdGEuX2FuaW1hdGlvblJhZiYmd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHQuX3RyYW5zaXRpb25EYXRhLl9hbmltYXRpb25SYWYpKSx1LmNsZWFyVGhyb3R0bGUoKSx1LmNsZWFyUmVzcG9uc2l2ZSh0KSxkZWxldGUgdC5kYXRhLGRlbGV0ZSB0LmxheW91dCxkZWxldGUgdC5fZnVsbERhdGEsZGVsZXRlIHQuX2Z1bGxMYXlvdXQsZGVsZXRlIHQuY2FsY2RhdGEsZGVsZXRlIHQuZW1wdHksZGVsZXRlIHQuZmlkLGRlbGV0ZSB0LnVuZG9xdWV1ZSxkZWxldGUgdC51bmRvbnVtLGRlbGV0ZSB0LmF1dG9wbGF5LGRlbGV0ZSB0LmNoYW5nZWQsZGVsZXRlIHQuX3Byb21pc2VzLGRlbGV0ZSB0Ll9yZWRyYXdUaW1lcixkZWxldGUgdC5faG1sdW1jb3VudCxkZWxldGUgdC5faG1waXhjb3VudCxkZWxldGUgdC5fdHJhbnNpdGlvbkRhdGEsZGVsZXRlIHQuX3RyYW5zaXRpb25pbmcsZGVsZXRlIHQuX2luaXRpYWxBdXRvU2l6ZSxkZWxldGUgdC5fdHJhbnNpdGlvbmluZ1dpdGhEdXJhdGlvbixkZWxldGUgdC5fZHJhZ2dpbmcsZGVsZXRlIHQuX2RyYWdnZWQsZGVsZXRlIHQuX2RyYWdkYXRhLGRlbGV0ZSB0Ll9ob3ZlcmRhdGEsZGVsZXRlIHQuX3NuYXBzaG90SW5Qcm9ncmVzcyxkZWxldGUgdC5fZWRpdGluZyxkZWxldGUgdC5fbW91c2VEb3duVGltZSxkZWxldGUgdC5fbGVnZW5kTW91c2VEb3duVGltZSx0LnJlbW92ZUFsbExpc3RlbmVycyYmdC5yZW1vdmVBbGxMaXN0ZW5lcnMoKX0sYi5zdHlsZT1mdW5jdGlvbih0KXt2YXIgZSxyPXQuX2Z1bGxMYXlvdXQuX3Zpc2libGVNb2R1bGVzLG49W107Zm9yKGU9MDtlPHIubGVuZ3RoO2UrKyl7dmFyIGk9cltlXTtpLnN0eWxlJiZ1LnB1c2hVbmlxdWUobixpLnN0eWxlKX1mb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKW5bZV0odCl9LGIuc2FuaXRpemVNYXJnaW5zPWZ1bmN0aW9uKHQpe2lmKHQmJnQubWFyZ2luKXt2YXIgZSxyPXQud2lkdGgsbj10LmhlaWdodCxpPXQubWFyZ2luLGE9ci0oaS5sK2kuciksbz1uLShpLnQraS5iKTthPDAmJihlPShyLTEpLyhpLmwraS5yKSxpLmw9TWF0aC5mbG9vcihlKmkubCksaS5yPU1hdGguZmxvb3IoZSppLnIpKSxvPDAmJihlPShuLTEpLyhpLnQraS5iKSxpLnQ9TWF0aC5mbG9vcihlKmkudCksaS5iPU1hdGguZmxvb3IoZSppLmIpKX19LGIuY2xlYXJBdXRvTWFyZ2luSWRzPWZ1bmN0aW9uKHQpe3QuX2Z1bGxMYXlvdXQuX3B1c2htYXJnaW5JZHM9e319LGIuYWxsb3dBdXRvTWFyZ2luPWZ1bmN0aW9uKHQsZSl7dC5fZnVsbExheW91dC5fcHVzaG1hcmdpbklkc1tlXT0xfTtiLmF1dG9NYXJnaW49ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQsaT1uLndpZHRoLGE9bi5oZWlnaHQsbz1uLm1hcmdpbixzPXUuY29uc3RyYWluKGktby5sLW8uciwyLDY0KSxsPXUuY29uc3RyYWluKGEtby50LW8uYiwyLDY0KSxjPU1hdGgubWF4KDAsaS1zKSxmPU1hdGgubWF4KDAsYS1sKSxoPW4uX3B1c2htYXJnaW4scD1uLl9wdXNobWFyZ2luSWRzO2lmKCExIT09by5hdXRvZXhwYW5kKXtpZihyKXt2YXIgZD1yLnBhZDtpZih2b2lkIDA9PT1kJiYoZD1NYXRoLm1pbigxMixvLmwsby5yLG8udCxvLmIpKSxjKXt2YXIgbT0oci5sK3IucikvYzttPjEmJihyLmwvPW0sci5yLz1tKX1pZihmKXt2YXIgZz0oci50K3IuYikvZjtnPjEmJihyLnQvPWcsci5iLz1nKX12YXIgdj12b2lkIDAhPT1yLnhsP3IueGw6ci54LHk9dm9pZCAwIT09ci54cj9yLnhyOnIueCx4PXZvaWQgMCE9PXIueXQ/ci55dDpyLnksXz12b2lkIDAhPT1yLnliP3IueWI6ci55O2hbZV09e2w6e3ZhbDp2LHNpemU6ci5sK2R9LHI6e3ZhbDp5LHNpemU6ci5yK2R9LGI6e3ZhbDpfLHNpemU6ci5iK2R9LHQ6e3ZhbDp4LHNpemU6ci50K2R9fSxwW2VdPTF9ZWxzZSBkZWxldGUgaFtlXSxkZWxldGUgcFtlXTtpZighbi5fcmVwbG90dGluZylyZXR1cm4gYi5kb0F1dG9NYXJnaW4odCl9fSxiLmRvQXV0b01hcmdpbj1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS53aWR0aCxuPWUuaGVpZ2h0O2UuX3NpemV8fChlLl9zaXplPXt9KSxDKGUpO3ZhciBpPWUuX3NpemUsYT1lLm1hcmdpbixsPXUuZXh0ZW5kRmxhdCh7fSxpKSxjPWEubCxmPWEucixoPWEudCxkPWEuYixtPWUuX3B1c2htYXJnaW4sZz1lLl9wdXNobWFyZ2luSWRzO2lmKCExIT09ZS5tYXJnaW4uYXV0b2V4cGFuZCl7Zm9yKHZhciB2IGluIG0pZ1t2XXx8ZGVsZXRlIG1bdl07Zm9yKHZhciB5IGluIG0uYmFzZT17bDp7dmFsOjAsc2l6ZTpjfSxyOnt2YWw6MSxzaXplOmZ9LHQ6e3ZhbDoxLHNpemU6aH0sYjp7dmFsOjAsc2l6ZTpkfX0sbSl7dmFyIHg9bVt5XS5sfHx7fSxfPW1beV0uYnx8e30sdz14LnZhbCxUPXguc2l6ZSxrPV8udmFsLEE9Xy5zaXplO2Zvcih2YXIgTSBpbiBtKXtpZihvKFQpJiZtW01dLnIpe3ZhciBTPW1bTV0uci52YWwsRT1tW01dLnIuc2l6ZTtpZihTPncpe3ZhciBMPShUKlMrKEUtcikqdykvKFMtdyksUD0oRSooMS13KSsoVC1yKSooMS1TKSkvKFMtdyk7TCtQPmMrZiYmKGM9TCxmPVApfX1pZihvKEEpJiZtW01dLnQpe3ZhciBJPW1bTV0udC52YWwsTz1tW01dLnQuc2l6ZTtpZihJPmspe3ZhciB6PShBKkkrKE8tbikqaykvKEktayksRD0oTyooMS1rKSsoQS1uKSooMS1JKSkvKEktayk7eitEPmQraCYmKGQ9eixoPUQpfX19fX12YXIgUj11LmNvbnN0cmFpbihyLWEubC1hLnIsMiw2NCksRj11LmNvbnN0cmFpbihuLWEudC1hLmIsMiw2NCksQj1NYXRoLm1heCgwLHItUiksTj1NYXRoLm1heCgwLG4tRik7aWYoQil7dmFyIGo9KGMrZikvQjtqPjEmJihjLz1qLGYvPWopfWlmKE4pe3ZhciBVPShkK2gpL047VT4xJiYoZC89VSxoLz1VKX1pZihpLmw9TWF0aC5yb3VuZChjKSxpLnI9TWF0aC5yb3VuZChmKSxpLnQ9TWF0aC5yb3VuZChoKSxpLmI9TWF0aC5yb3VuZChkKSxpLnA9TWF0aC5yb3VuZChhLnBhZCksaS53PU1hdGgucm91bmQociktaS5sLWkucixpLmg9TWF0aC5yb3VuZChuKS1pLnQtaS5iLCFlLl9yZXBsb3R0aW5nJiZiLmRpZE1hcmdpbkNoYW5nZShsLGkpKXsiX3JlZHJhd0Zyb21BdXRvTWFyZ2luQ291bnQiaW4gZT9lLl9yZWRyYXdGcm9tQXV0b01hcmdpbkNvdW50Kys6ZS5fcmVkcmF3RnJvbUF1dG9NYXJnaW5Db3VudD0xO3ZhciBWPTMqKDErT2JqZWN0LmtleXMoZykubGVuZ3RoKTtpZihlLl9yZWRyYXdGcm9tQXV0b01hcmdpbkNvdW50PFYpcmV0dXJuIHMuY2FsbCgiX2RvUGxvdCIsdCk7ZS5fc2l6ZT1sLHUud2FybigiVG9vIG1hbnkgYXV0by1tYXJnaW4gcmVkcmF3cy4iKX0hZnVuY3Rpb24odCl7dmFyIGU9cC5saXN0KHQsIiIsITApO1siX2FkanVzdFRpY2tMYWJlbHNPdmVyZmxvdyIsIl9oaWRlQ291bnRlckF4aXNJbnNpZGVUaWNrTGFiZWxzIl0uZm9yRWFjaCgoZnVuY3Rpb24odCl7Zm9yKHZhciByPTA7cjxlLmxlbmd0aDtyKyspe3ZhciBuPWVbcl1bdF07biYmbigpfX0pKX0odCl9O3ZhciBQPVsibCIsInIiLCJ0IiwiYiIsInAiLCJ3IiwiaCJdO2Z1bmN0aW9uIEkodCxlLHIpe3ZhciBuPSExO3ZhciBpPVtiLnByZXZpb3VzUHJvbWlzZXMsZnVuY3Rpb24oKXtpZih0Ll90cmFuc2l0aW9uRGF0YSlyZXR1cm4gdC5fdHJhbnNpdGlvbmluZz0hMSxmdW5jdGlvbih0KXt2YXIgZT1Qcm9taXNlLnJlc29sdmUoKTtpZighdClyZXR1cm4gZTtmb3IoO3QubGVuZ3RoOyllPWUudGhlbih0LnNoaWZ0KCkpO3JldHVybiBlfSh0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzKX0sci5wcmVwYXJlRm4sYi5yZWhvdmVyLGZ1bmN0aW9uKCl7cmV0dXJuIHQuZW1pdCgicGxvdGx5X3RyYW5zaXRpb25pbmciLFtdKSxuZXcgUHJvbWlzZSgoZnVuY3Rpb24oaSl7dC5fdHJhbnNpdGlvbmluZz0hMCxlLmR1cmF0aW9uPjAmJih0Ll90cmFuc2l0aW9uaW5nV2l0aER1cmF0aW9uPSEwKSx0Ll90cmFuc2l0aW9uRGF0YS5faW50ZXJydXB0Q2FsbGJhY2tzLnB1c2goKGZ1bmN0aW9uKCl7bj0hMH0pKSxyLnJlZHJhdyYmdC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrcy5wdXNoKChmdW5jdGlvbigpe3JldHVybiBzLmNhbGwoInJlZHJhdyIsdCl9KSksdC5fdHJhbnNpdGlvbkRhdGEuX2ludGVycnVwdENhbGxiYWNrcy5wdXNoKChmdW5jdGlvbigpe3QuZW1pdCgicGxvdGx5X3RyYW5zaXRpb25pbnRlcnJ1cHRlZCIsW10pfSkpO3ZhciBhPTAsbz0wO2Z1bmN0aW9uIGwoKXtyZXR1cm4gYSsrLGZ1bmN0aW9uKCl7bysrLG58fG8hPT1hfHxmdW5jdGlvbihlKXtpZighdC5fdHJhbnNpdGlvbkRhdGEpcmV0dXJuOyhmdW5jdGlvbih0KXtpZih0KWZvcig7dC5sZW5ndGg7KXQuc2hpZnQoKX0pKHQuX3RyYW5zaXRpb25EYXRhLl9pbnRlcnJ1cHRDYWxsYmFja3MpLFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKGZ1bmN0aW9uKCl7aWYoci5yZWRyYXcpcmV0dXJuIHMuY2FsbCgicmVkcmF3Iix0KX0pKS50aGVuKChmdW5jdGlvbigpe3QuX3RyYW5zaXRpb25pbmc9ITEsdC5fdHJhbnNpdGlvbmluZ1dpdGhEdXJhdGlvbj0hMSx0LmVtaXQoInBsb3RseV90cmFuc2l0aW9uZWQiLFtdKX0pKS50aGVuKGUpfShpKX19ci5ydW5GbihsKSxzZXRUaW1lb3V0KGwoKSl9KSl9XSxhPXUuc3luY09yQXN5bmMoaSx0KTtyZXR1cm4gYSYmYS50aGVufHwoYT1Qcm9taXNlLnJlc29sdmUoKSksYS50aGVuKChmdW5jdGlvbigpe3JldHVybiB0fSkpfWIuZGlkTWFyZ2luQ2hhbmdlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPTA7cjxQLmxlbmd0aDtyKyspe3ZhciBuPVBbcl0saT10W25dLGE9ZVtuXTtpZighbyhpKXx8TWF0aC5hYnMoYS1pKT4xKXJldHVybiEwfXJldHVybiExfSxiLmdyYXBoSnNvbj1mdW5jdGlvbih0LGUscixuLGksYSl7KGkmJmUmJiF0Ll9mdWxsRGF0YXx8aSYmIWUmJiF0Ll9mdWxsTGF5b3V0KSYmYi5zdXBwbHlEZWZhdWx0cyh0KTt2YXIgbz1pP3QuX2Z1bGxEYXRhOnQuZGF0YSxzPWk/dC5fZnVsbExheW91dDp0LmxheW91dCxsPSh0Ll90cmFuc2l0aW9uRGF0YXx8e30pLl9mcmFtZXM7ZnVuY3Rpb24gYyh0LGUpe2lmKCJmdW5jdGlvbiI9PXR5cGVvZiB0KXJldHVybiBlPyJfZnVuY3Rpb25fIjpudWxsO2lmKHUuaXNQbGFpbk9iamVjdCh0KSl7dmFyIG4saT17fTtyZXR1cm4gT2JqZWN0LmtleXModCkuc29ydCgpLmZvckVhY2goKGZ1bmN0aW9uKGEpe2lmKC0xPT09WyJfIiwiWyJdLmluZGV4T2YoYS5jaGFyQXQoMCkpKWlmKCJmdW5jdGlvbiIhPXR5cGVvZiB0W2FdKXtpZigia2VlcGRhdGEiPT09cil7aWYoInNyYyI9PT1hLnN1YnN0cihhLmxlbmd0aC0zKSlyZXR1cm59ZWxzZSBpZigia2VlcHN0cmVhbSI9PT1yKXtpZigic3RyaW5nIj09dHlwZW9mKG49dFthKyJzcmMiXSkmJm4uaW5kZXhPZigiOiIpPjAmJiF1LmlzUGxhaW5PYmplY3QodC5zdHJlYW0pKXJldHVybn1lbHNlIGlmKCJrZWVwYWxsIiE9PXImJiJzdHJpbmciPT10eXBlb2Yobj10W2ErInNyYyJdKSYmbi5pbmRleE9mKCI6Iik+MClyZXR1cm47aVthXT1jKHRbYV0sZSl9ZWxzZSBlJiYoaVthXT0iX2Z1bmN0aW9uIil9KSksaX1yZXR1cm4gQXJyYXkuaXNBcnJheSh0KT90Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGModCxlKX0pKTp1LmlzVHlwZWRBcnJheSh0KT91LnNpbXBsZU1hcCh0LHUuaWRlbnRpdHkpOnUuaXNKU0RhdGUodCk/dS5tczJEYXRlVGltZUxvY2FsKCt0KTp0fXZhciBmPXtkYXRhOihvfHxbXSkubWFwKChmdW5jdGlvbih0KXt2YXIgcj1jKHQpO3JldHVybiBlJiZkZWxldGUgci5maXQscn0pKX07aWYoIWUmJihmLmxheW91dD1jKHMpLGkpKXt2YXIgaD1zLl9zaXplO2YubGF5b3V0LmNvbXB1dGVkPXttYXJnaW46e2I6aC5iLGw6aC5sLHI6aC5yLHQ6aC50fX19cmV0dXJuIGwmJihmLmZyYW1lcz1jKGwpKSxhJiYoZi5jb25maWc9Yyh0Ll9jb250ZXh0LCEwKSksIm9iamVjdCI9PT1uP2Y6SlNPTi5zdHJpbmdpZnkoZil9LGIubW9kaWZ5RnJhbWVzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGE9dC5fdHJhbnNpdGlvbkRhdGEuX2ZyYW1lcyxvPXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZUhhc2g7Zm9yKHI9MDtyPGUubGVuZ3RoO3IrKylzd2l0Y2goKG49ZVtyXSkudHlwZSl7Y2FzZSJyZXBsYWNlIjppPW4udmFsdWU7dmFyIHM9KGFbbi5pbmRleF18fHt9KS5uYW1lLGw9aS5uYW1lO2Fbbi5pbmRleF09b1tsXT1pLGwhPT1zJiYoZGVsZXRlIG9bc10sb1tsXT1pKTticmVhaztjYXNlImluc2VydCI6b1soaT1uLnZhbHVlKS5uYW1lXT1pLGEuc3BsaWNlKG4uaW5kZXgsMCxpKTticmVhaztjYXNlImRlbGV0ZSI6ZGVsZXRlIG9bKGk9YVtuLmluZGV4XSkubmFtZV0sYS5zcGxpY2Uobi5pbmRleCwxKX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LGIuY29tcHV0ZUZyYW1lPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGEsbz10Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVIYXNoO2lmKCFlKXRocm93IG5ldyBFcnJvcigiY29tcHV0ZUZyYW1lIG11c3QgYmUgZ2l2ZW4gYSBzdHJpbmcgZnJhbWUgbmFtZSIpO3ZhciBzPW9bZS50b1N0cmluZygpXTtpZighcylyZXR1cm4hMTtmb3IodmFyIGw9W3NdLGM9W3MubmFtZV07cy5iYXNlZnJhbWUmJihzPW9bcy5iYXNlZnJhbWUudG9TdHJpbmcoKV0pJiYtMT09PWMuaW5kZXhPZihzLm5hbWUpOylsLnB1c2gocyksYy5wdXNoKHMubmFtZSk7Zm9yKHZhciB1PXt9O3M9bC5wb3AoKTspaWYocy5sYXlvdXQmJih1LmxheW91dD1iLmV4dGVuZExheW91dCh1LmxheW91dCxzLmxheW91dCkpLHMuZGF0YSl7aWYodS5kYXRhfHwodS5kYXRhPVtdKSwhKG49cy50cmFjZXMpKWZvcihuPVtdLHI9MDtyPHMuZGF0YS5sZW5ndGg7cisrKW5bcl09cjtmb3IodS50cmFjZXN8fCh1LnRyYWNlcz1bXSkscj0wO3I8cy5kYXRhLmxlbmd0aDtyKyspbnVsbCE9KGk9bltyXSkmJigtMT09PShhPXUudHJhY2VzLmluZGV4T2YoaSkpJiYoYT11LmRhdGEubGVuZ3RoLHUudHJhY2VzW2FdPWkpLHUuZGF0YVthXT1iLmV4dGVuZFRyYWNlKHUuZGF0YVthXSxzLmRhdGFbcl0pKX1yZXR1cm4gdX0sYi5yZWNvbXB1dGVGcmFtZUhhc2g9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuX3RyYW5zaXRpb25EYXRhLl9mcmFtZUhhc2g9e30scj10Ll90cmFuc2l0aW9uRGF0YS5fZnJhbWVzLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXTtpJiZpLm5hbWUmJihlW2kubmFtZV09aSl9fSxiLmV4dGVuZE9iamVjdFdpdGhDb250YWluZXJzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbixpLGEsbyxzLGwsYyxmPXUuZXh0ZW5kRGVlcE5vQXJyYXlzKHt9LGV8fHt9KSxoPXUuZXhwYW5kT2JqZWN0UGF0aHMoZikscD17fTtpZihyJiZyLmxlbmd0aClmb3IoYT0wO2E8ci5sZW5ndGg7YSsrKXZvaWQgMD09PShpPShuPXUubmVzdGVkUHJvcGVydHkoaCxyW2FdKSkuZ2V0KCkpP3UubmVzdGVkUHJvcGVydHkocCxyW2FdKS5zZXQobnVsbCk6KG4uc2V0KG51bGwpLHUubmVzdGVkUHJvcGVydHkocCxyW2FdKS5zZXQoaSkpO2lmKHQ9dS5leHRlbmREZWVwTm9BcnJheXModHx8e30saCksciYmci5sZW5ndGgpZm9yKGE9MDthPHIubGVuZ3RoO2ErKylpZihsPXUubmVzdGVkUHJvcGVydHkocCxyW2FdKS5nZXQoKSl7Zm9yKGM9KHM9dS5uZXN0ZWRQcm9wZXJ0eSh0LHJbYV0pKS5nZXQoKSxBcnJheS5pc0FycmF5KGMpfHwoYz1bXSxzLnNldChjKSksbz0wO288bC5sZW5ndGg7bysrKXt2YXIgZD1sW29dO2Nbb109bnVsbD09PWQ/bnVsbDpiLmV4dGVuZE9iamVjdFdpdGhDb250YWluZXJzKGNbb10sZCl9cy5zZXQoYyl9cmV0dXJuIHR9LGIuZGF0YUFycmF5Q29udGFpbmVycz1bInRyYW5zZm9ybXMiLCJkaW1lbnNpb25zIl0sYi5sYXlvdXRBcnJheUNvbnRhaW5lcnM9cy5sYXlvdXRBcnJheUNvbnRhaW5lcnMsYi5leHRlbmRUcmFjZT1mdW5jdGlvbih0LGUpe3JldHVybiBiLmV4dGVuZE9iamVjdFdpdGhDb250YWluZXJzKHQsZSxiLmRhdGFBcnJheUNvbnRhaW5lcnMpfSxiLmV4dGVuZExheW91dD1mdW5jdGlvbih0LGUpe3JldHVybiBiLmV4dGVuZE9iamVjdFdpdGhDb250YWluZXJzKHQsZSxiLmxheW91dEFycmF5Q29udGFpbmVycyl9LGIudHJhbnNpdGlvbj1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89e3JlZHJhdzppLnJlZHJhd30scz17fSxsPVtdO3JldHVybiBvLnByZXBhcmVGbj1mdW5jdGlvbigpe2Zvcih2YXIgaT1BcnJheS5pc0FycmF5KGUpP2UubGVuZ3RoOjAsYT1uLnNsaWNlKDAsaSksbz0wO288YS5sZW5ndGg7bysrKXt2YXIgYz1hW29dLGY9dC5fZnVsbERhdGFbY10uX21vZHVsZTtpZihmKXtpZihmLmFuaW1hdGFibGUpe3ZhciBoPWYuYmFzZVBsb3RNb2R1bGUubmFtZTtzW2hdfHwoc1toXT1bXSksc1toXS5wdXNoKGMpfXQuZGF0YVthW29dXT1iLmV4dGVuZFRyYWNlKHQuZGF0YVthW29dXSxlW29dKX19dmFyIHA9dS5leHBhbmRPYmplY3RQYXRocyh1LmV4dGVuZERlZXBOb0FycmF5cyh7fSxyKSksZD0vXlt4eV1heGlzWzAtOV0qJC87Zm9yKHZhciBtIGluIHApZC50ZXN0KG0pJiZkZWxldGUgcFttXS5yYW5nZTtiLmV4dGVuZExheW91dCh0LmxheW91dCxwKSxkZWxldGUgdC5jYWxjZGF0YSxiLnN1cHBseURlZmF1bHRzKHQpLGIuZG9DYWxjZGF0YSh0KTt2YXIgZz11LmV4cGFuZE9iamVjdFBhdGhzKHIpO2lmKGcpe3ZhciB2PXQuX2Z1bGxMYXlvdXQuX3Bsb3RzO2Zvcih2YXIgeSBpbiB2KXt2YXIgeD12W3ldLF89eC54YXhpcyx3PXgueWF4aXMsVD1fLnJhbmdlLnNsaWNlKCksaz13LnJhbmdlLnNsaWNlKCksQT1udWxsLE09bnVsbCxTPW51bGwsRT1udWxsO0FycmF5LmlzQXJyYXkoZ1tfLl9uYW1lKyIucmFuZ2UiXSk/QT1nW18uX25hbWUrIi5yYW5nZSJdLnNsaWNlKCk6QXJyYXkuaXNBcnJheSgoZ1tfLl9uYW1lXXx8e30pLnJhbmdlKSYmKEE9Z1tfLl9uYW1lXS5yYW5nZS5zbGljZSgpKSxBcnJheS5pc0FycmF5KGdbdy5fbmFtZSsiLnJhbmdlIl0pP009Z1t3Ll9uYW1lKyIucmFuZ2UiXS5zbGljZSgpOkFycmF5LmlzQXJyYXkoKGdbdy5fbmFtZV18fHt9KS5yYW5nZSkmJihNPWdbdy5fbmFtZV0ucmFuZ2Uuc2xpY2UoKSksVCYmQSYmKF8ucjJsKFRbMF0pIT09Xy5yMmwoQVswXSl8fF8ucjJsKFRbMV0pIT09Xy5yMmwoQVsxXSkpJiYoUz17eHIwOlQseHIxOkF9KSxrJiZNJiYody5yMmwoa1swXSkhPT13LnIybChNWzBdKXx8dy5yMmwoa1sxXSkhPT13LnIybChNWzFdKSkmJihFPXt5cjA6ayx5cjE6TX0pLChTfHxFKSYmbC5wdXNoKHUuZXh0ZW5kRmxhdCh7cGxvdGluZm86eH0sUyxFKSl9fXJldHVybiBQcm9taXNlLnJlc29sdmUoKX0sby5ydW5Gbj1mdW5jdGlvbihlKXt2YXIgbixpLG89dC5fZnVsbExheW91dC5fYmFzZVBsb3RNb2R1bGVzLGM9bC5sZW5ndGg7aWYocilmb3IoaT0wO2k8by5sZW5ndGg7aSsrKW9baV0udHJhbnNpdGlvbkF4ZXMmJm9baV0udHJhbnNpdGlvbkF4ZXModCxsLGEsZSk7Zm9yKHZhciBmIGluIGM/KChuPXUuZXh0ZW5kRmxhdCh7fSxhKSkuZHVyYXRpb249MCxkZWxldGUgcy5jYXJ0ZXNpYW4pOm49YSxzKXt2YXIgaD1zW2ZdO3QuX2Z1bGxEYXRhW2hbMF1dLl9tb2R1bGUuYmFzZVBsb3RNb2R1bGUucGxvdCh0LGgsbixlKX19LEkodCxhLG8pfSxiLnRyYW5zaXRpb25Gcm9tUmVhY3Q9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5fZnVsbExheW91dCxhPWkudHJhbnNpdGlvbixvPXt9LHM9W107cmV0dXJuIG8ucHJlcGFyZUZuPWZ1bmN0aW9uKCl7dmFyIHQ9aS5fcGxvdHM7Zm9yKHZhciBhIGluIG8ucmVkcmF3PSExLCJzb21lIj09PWUuYW5pbSYmKG8ucmVkcmF3PSEwKSwic29tZSI9PT1yLmFuaW0mJihvLnJlZHJhdz0hMCksdCl7dmFyIGw9dFthXSxjPWwueGF4aXMsZj1sLnlheGlzLGg9bltjLl9uYW1lXS5yYW5nZS5zbGljZSgpLHA9bltmLl9uYW1lXS5yYW5nZS5zbGljZSgpLGQ9Yy5yYW5nZS5zbGljZSgpLG09Zi5yYW5nZS5zbGljZSgpO2Muc2V0U2NhbGUoKSxmLnNldFNjYWxlKCk7dmFyIGc9bnVsbCx2PW51bGw7Yy5yMmwoaFswXSk9PT1jLnIybChkWzBdKSYmYy5yMmwoaFsxXSk9PT1jLnIybChkWzFdKXx8KGc9e3hyMDpoLHhyMTpkfSksZi5yMmwocFswXSk9PT1mLnIybChtWzBdKSYmZi5yMmwocFsxXSk9PT1mLnIybChtWzFdKXx8KHY9e3lyMDpwLHlyMTptfSksKGd8fHYpJiZzLnB1c2godS5leHRlbmRGbGF0KHtwbG90aW5mbzpsfSxnLHYpKX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCl9LG8ucnVuRm49ZnVuY3Rpb24ocil7Zm9yKHZhciBuLGksbyxsPXQuX2Z1bGxEYXRhLGM9dC5fZnVsbExheW91dC5fYmFzZVBsb3RNb2R1bGVzLGY9W10saD0wO2g8bC5sZW5ndGg7aCsrKWYucHVzaChoKTtmdW5jdGlvbiBwKCl7aWYodC5fZnVsbExheW91dClmb3IodmFyIGU9MDtlPGMubGVuZ3RoO2UrKyljW2VdLnRyYW5zaXRpb25BeGVzJiZjW2VdLnRyYW5zaXRpb25BeGVzKHQscyxuLHIpfWZ1bmN0aW9uIGQoKXtpZih0Ll9mdWxsTGF5b3V0KWZvcih2YXIgZT0wO2U8Yy5sZW5ndGg7ZSsrKWNbZV0ucGxvdCh0LG8saSxyKX1zLmxlbmd0aCYmZS5hbmltPyJ0cmFjZXMgZmlyc3QiPT09YS5vcmRlcmluZz8obj11LmV4dGVuZEZsYXQoe30sYSx7ZHVyYXRpb246MH0pLG89ZixpPWEsc2V0VGltZW91dChwLGEuZHVyYXRpb24pLGQoKSk6KG49YSxvPW51bGwsaT11LmV4dGVuZEZsYXQoe30sYSx7ZHVyYXRpb246MH0pLHNldFRpbWVvdXQoZCxuLmR1cmF0aW9uKSxwKCkpOnMubGVuZ3RoPyhuPWEscCgpKTplLmFuaW0mJihvPWYsaT1hLGQoKSl9LEkodCxhLG8pfSxiLmRvQ2FsY2RhdGE9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvPXAubGlzdCh0KSxjPXQuX2Z1bGxEYXRhLGY9dC5fZnVsbExheW91dCxkPW5ldyBBcnJheShjLmxlbmd0aCksbT0odC5jYWxjZGF0YXx8W10pLnNsaWNlKCk7Zm9yKHQuY2FsY2RhdGE9ZCxmLl9udW1Cb3hlcz0wLGYuX251bVZpb2xpbnM9MCxmLl92aW9saW5TY2FsZUdyb3VwU3RhdHM9e30sdC5faG1waXhjb3VudD0wLHQuX2htbHVtY291bnQ9MCxmLl9waWVjb2xvcm1hcD17fSxmLl9zdW5idXJzdGNvbG9ybWFwPXt9LGYuX3RyZWVtYXBjb2xvcm1hcD17fSxmLl9pY2ljbGVjb2xvcm1hcD17fSxmLl9mdW5uZWxhcmVhY29sb3JtYXA9e30saT0wO2k8Yy5sZW5ndGg7aSsrKUFycmF5LmlzQXJyYXkoZSkmJi0xPT09ZS5pbmRleE9mKGkpJiYoZFtpXT1tW2ldKTtmb3IoaT0wO2k8Yy5sZW5ndGg7aSsrKShyPWNbaV0pLl9hcnJheUF0dHJzPWwuZmluZEFycmF5QXR0cmlidXRlcyhyKSxyLl9leHRyZW1lcz17fTt2YXIgZz1mLl9zdWJwbG90cy5wb2xhcnx8W107Zm9yKGk9MDtpPGcubGVuZ3RoO2krKylvLnB1c2goZltnW2ldXS5yYWRpYWxheGlzLGZbZ1tpXV0uYW5ndWxhcmF4aXMpO2Zvcih2YXIgdiBpbiBmLl9jb2xvckF4ZXMpe3ZhciB5PWZbdl07ITEhPT15LmNhdXRvJiYoZGVsZXRlIHkuY21pbixkZWxldGUgeS5jbWF4KX12YXIgeD0hMTtmdW5jdGlvbiBiKGUpe2lmKHI9Y1tlXSxuPXIuX21vZHVsZSwhMD09PXIudmlzaWJsZSYmci50cmFuc2Zvcm1zKXtpZihuJiZuLmNhbGMpe3ZhciBpPW4uY2FsYyh0LHIpO2lbMF0mJmlbMF0udCYmaVswXS50Ll9zY2VuZSYmZGVsZXRlIGlbMF0udC5fc2NlbmUuZGlydHl9Zm9yKGE9MDthPHIudHJhbnNmb3Jtcy5sZW5ndGg7YSsrKXt2YXIgbz1yLnRyYW5zZm9ybXNbYV07KG49X1tvLnR5cGVdKSYmbi5jYWxjVHJhbnNmb3JtJiYoci5faGFzQ2FsY1RyYW5zZm9ybT0hMCx4PSEwLG4uY2FsY1RyYW5zZm9ybSh0LHIsbykpfX19ZnVuY3Rpb24gdyhlLGkpe2lmKHI9Y1tlXSwhIShuPXIuX21vZHVsZSkuaXNDb250YWluZXI9PT1pKXt2YXIgbz1bXTtpZighMD09PXIudmlzaWJsZSYmMCE9PXIuX2xlbmd0aCl7ZGVsZXRlIHIuX2luZGV4VG9Qb2ludHM7dmFyIHM9ci50cmFuc2Zvcm1zfHxbXTtmb3IoYT1zLmxlbmd0aC0xO2E+PTA7YS0tKWlmKHNbYV0uZW5hYmxlZCl7ci5faW5kZXhUb1BvaW50cz1zW2FdLl9pbmRleFRvUG9pbnRzO2JyZWFrfW4mJm4uY2FsYyYmKG89bi5jYWxjKHQscikpfUFycmF5LmlzQXJyYXkobykmJm9bMF18fChvPVt7eDpoLHk6aH1dKSxvWzBdLnR8fChvWzBdLnQ9e30pLG9bMF0udHJhY2U9cixkW2VdPW99fWZvcih6KG8sYyxmKSxpPTA7aTxjLmxlbmd0aDtpKyspdyhpLCEwKTtmb3IoaT0wO2k8Yy5sZW5ndGg7aSsrKWIoaSk7Zm9yKHgmJnoobyxjLGYpLGk9MDtpPGMubGVuZ3RoO2krKyl3KGksITApO2ZvcihpPTA7aTxjLmxlbmd0aDtpKyspdyhpLCExKTtEKHQpO3ZhciBUPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGEsbyxsPVtdO2Z1bmN0aW9uIGModCxyLG4pe3ZhciBpPXIuX2lkLmNoYXJBdCgwKTtpZigiaGlzdG9ncmFtMmRjb250b3VyIj09PXQpe3ZhciBhPXIuX2NvdW50ZXJBeGVzWzBdLG89cC5nZXRGcm9tSWQoZSxhKSxzPSJ4Ij09PWl8fCJ4Ij09PWEmJiJjYXRlZ29yeSI9PT1vLnR5cGUsbD0ieSI9PT1pfHwieSI9PT1hJiYiY2F0ZWdvcnkiPT09by50eXBlO3JldHVybiBmdW5jdGlvbih0LGUpe3JldHVybiAwPT09dHx8MD09PWV8fHMmJnQ9PT1uW2VdLmxlbmd0aC0xfHxsJiZlPT09bi5sZW5ndGgtMT8tMTooInkiPT09aT9lOnQpLTF9fXJldHVybiBmdW5jdGlvbih0LGUpe3JldHVybiJ5Ij09PWk/ZTp0fX12YXIgZj17bWluOmZ1bmN0aW9uKHQpe3JldHVybiB1LmFnZ051bXMoTWF0aC5taW4sbnVsbCx0KX0sbWF4OmZ1bmN0aW9uKHQpe3JldHVybiB1LmFnZ051bXMoTWF0aC5tYXgsbnVsbCx0KX0sc3VtOmZ1bmN0aW9uKHQpe3JldHVybiB1LmFnZ051bXMoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pLG51bGwsdCl9LHRvdGFsOmZ1bmN0aW9uKHQpe3JldHVybiB1LmFnZ051bXMoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pLG51bGwsdCl9LG1lYW46ZnVuY3Rpb24odCl7cmV0dXJuIHUubWVhbih0KX0sbWVkaWFuOmZ1bmN0aW9uKHQpe3JldHVybiB1Lm1lZGlhbih0KX19O2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBoPXRbcl07aWYoImNhdGVnb3J5Ij09PWgudHlwZSl7dmFyIGQ9aC5jYXRlZ29yeW9yZGVyLm1hdGNoKE8pO2lmKGQpe3ZhciBtPWRbMV0sZz1kWzJdLHY9aC5faWQuY2hhckF0KDApLHk9IngiPT09dix4PVtdO2ZvcihuPTA7bjxoLl9jYXRlZ29yaWVzLmxlbmd0aDtuKyspeC5wdXNoKFtoLl9jYXRlZ29yaWVzW25dLFtdXSk7Zm9yKG49MDtuPGguX3RyYWNlSW5kaWNlcy5sZW5ndGg7bisrKXt2YXIgYj1oLl90cmFjZUluZGljZXNbbl0sXz1lLl9mdWxsRGF0YVtiXTtpZighMD09PV8udmlzaWJsZSl7dmFyIHc9Xy50eXBlO3MudHJhY2VJcyhfLCJoaXN0b2dyYW0iKSYmKGRlbGV0ZSBfLl94YXV0b0JpbkZpbmlzaGVkLGRlbGV0ZSBfLl95YXV0b0JpbkZpbmlzaGVkKTt2YXIgVD0ic3Bsb20iPT09dyxrPSJzY2F0dGVyZ2wiPT09dyxBPWUuY2FsY2RhdGFbYl07Zm9yKGk9MDtpPEEubGVuZ3RoO2krKyl7dmFyIE0sUyxFPUFbaV07aWYoVCl7dmFyIEw9Xy5fYXhlc0RpbVtoLl9pZF07aWYoIXkpe3ZhciBDPV8uX2RpYWdbTF1bMF07QyYmKGg9ZS5fZnVsbExheW91dFtwLmlkMm5hbWUoQyldKX12YXIgUD1FLnRyYWNlLmRpbWVuc2lvbnNbTF0udmFsdWVzO2ZvcihhPTA7YTxQLmxlbmd0aDthKyspZm9yKE09aC5fY2F0ZWdvcmllc01hcFtQW2FdXSxvPTA7bzxFLnRyYWNlLmRpbWVuc2lvbnMubGVuZ3RoO28rKylpZihvIT09TCl7dmFyIEk9RS50cmFjZS5kaW1lbnNpb25zW29dO3hbTV1bMV0ucHVzaChJLnZhbHVlc1thXSl9fWVsc2UgaWYoayl7Zm9yKGE9MDthPEUudC54Lmxlbmd0aDthKyspeT8oTT1FLnQueFthXSxTPUUudC55W2FdKTooTT1FLnQueVthXSxTPUUudC54W2FdKSx4W01dWzFdLnB1c2goUyk7RS50JiZFLnQuX3NjZW5lJiZkZWxldGUgRS50Ll9zY2VuZS5kaXJ0eX1lbHNlIGlmKEUuaGFzT3duUHJvcGVydHkoInoiKSl7Uz1FLno7dmFyIHo9YyhfLnR5cGUsaCxTKTtmb3IoYT0wO2E8Uy5sZW5ndGg7YSsrKWZvcihvPTA7bzxTW2FdLmxlbmd0aDtvKyspKE09eihvLGEpKSsxJiZ4W01dWzFdLnB1c2goU1thXVtvXSl9ZWxzZSBmb3Iodm9pZCAwPT09KE09RS5wKSYmKE09RVt2XSksdm9pZCAwPT09KFM9RS5zKSYmKFM9RS52KSx2b2lkIDA9PT1TJiYoUz15P0UueTpFLngpLEFycmF5LmlzQXJyYXkoUyl8fChTPXZvaWQgMD09PVM/W106W1NdKSxhPTA7YTxTLmxlbmd0aDthKyspeFtNXVsxXS5wdXNoKFNbYV0pfX19aC5fY2F0ZWdvcmllc1ZhbHVlPXg7dmFyIEQ9W107Zm9yKG49MDtuPHgubGVuZ3RoO24rKylELnB1c2goW3hbbl1bMF0sZlttXSh4W25dWzFdKV0pO0Quc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdFsxXS1lWzFdfSkpLGguX2NhdGVnb3JpZXNBZ2dyZWdhdGVkVmFsdWU9RCxoLl9pbml0aWFsQ2F0ZWdvcmllcz1ELm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSksImRlc2NlbmRpbmciPT09ZyYmaC5faW5pdGlhbENhdGVnb3JpZXMucmV2ZXJzZSgpLGw9bC5jb25jYXQoaC5zb3J0QnlJbml0aWFsQ2F0ZWdvcmllcygpKX19fXJldHVybiBsfShvLHQpO2lmKFQubGVuZ3RoKXtmb3IoZi5fbnVtQm94ZXM9MCxmLl9udW1WaW9saW5zPTAsaT0wO2k8VC5sZW5ndGg7aSsrKXcoVFtpXSwhMCk7Zm9yKGk9MDtpPFQubGVuZ3RoO2krKyl3KFRbaV0sITEpO0QodCl9cy5nZXRDb21wb25lbnRNZXRob2QoImZ4IiwiY2FsYyIpKHQpLHMuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJjYWxjIikodCl9O3ZhciBPPS8odG90YWx8c3VtfG1pbnxtYXh8bWVhbnxtZWRpYW4pIChhc2NlbmRpbmd8ZGVzY2VuZGluZykvO2Z1bmN0aW9uIHoodCxlLHIpe3ZhciBuPXt9O2Z1bmN0aW9uIGkodCl7dC5jbGVhckNhbGMoKSwibXVsdGljYXRlZ29yeSI9PT10LnR5cGUmJnQuc2V0dXBNdWx0aUNhdGVnb3J5KGUpLG5bdC5faWRdPTF9dS5zaW1wbGVNYXAodCxpKTtmb3IodmFyIGE9ci5fYXhpc01hdGNoR3JvdXBzfHxbXSxvPTA7bzxhLmxlbmd0aDtvKyspZm9yKHZhciBzIGluIGFbb10pbltzXXx8aShyW3AuaWQybmFtZShzKV0pfWZ1bmN0aW9uIEQodCl7dmFyIGUscixuLGk9dC5fZnVsbExheW91dCxhPWkuX3Zpc2libGVNb2R1bGVzLG89e307Zm9yKHI9MDtyPGEubGVuZ3RoO3IrKyl7dmFyIHM9YVtyXSxsPXMuY3Jvc3NUcmFjZUNhbGM7aWYobCl7dmFyIGM9cy5iYXNlUGxvdE1vZHVsZS5uYW1lO29bY10/dS5wdXNoVW5pcXVlKG9bY10sbCk6b1tjXT1bbF19fWZvcihuIGluIG8pe3ZhciBmPW9bbl0saD1pLl9zdWJwbG90c1tuXTtpZihBcnJheS5pc0FycmF5KGgpKWZvcihlPTA7ZTxoLmxlbmd0aDtlKyspe3ZhciBwPWhbZV0sZD0iY2FydGVzaWFuIj09PW4/aS5fcGxvdHNbcF06aVtwXTtmb3Iocj0wO3I8Zi5sZW5ndGg7cisrKWZbcl0odCxkLHApfWVsc2UgZm9yKHI9MDtyPGYubGVuZ3RoO3IrKylmW3JdKHQpfX1iLnJlaG92ZXI9ZnVuY3Rpb24odCl7dC5fZnVsbExheW91dC5fcmVob3ZlciYmdC5fZnVsbExheW91dC5fcmVob3ZlcigpfSxiLnJlZHJhZz1mdW5jdGlvbih0KXt0Ll9mdWxsTGF5b3V0Ll9yZWRyYWcmJnQuX2Z1bGxMYXlvdXQuX3JlZHJhZygpfSxiLmdlbmVyYWxVcGRhdGVQZXJUcmFjZU1vZHVsZT1mdW5jdGlvbih0LGUscixuKXt2YXIgaSxhPWUudHJhY2VIYXNoLG89e307Zm9yKGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIHM9cltpXSxsPXNbMF0udHJhY2U7bC52aXNpYmxlJiYob1tsLnR5cGVdPW9bbC50eXBlXXx8W10sb1tsLnR5cGVdLnB1c2gocykpfWZvcih2YXIgYyBpbiBhKWlmKCFvW2NdKXt2YXIgZj1hW2NdWzBdO2ZbMF0udHJhY2UudmlzaWJsZT0hMSxvW2NdPVtmXX1mb3IodmFyIGggaW4gbyl7dmFyIHA9b1toXTtwWzBdWzBdLnRyYWNlLl9tb2R1bGUucGxvdCh0LGUsdS5maWx0ZXJWaXNpYmxlKHApLG4pfWUudHJhY2VIYXNoPW99LGIucGxvdEJhc2VQbG90PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9cy5nZXRNb2R1bGUodCksbz12KGUuY2FsY2RhdGEsYSlbMF07YS5wbG90KGUsbyxuLGkpfSxiLmNsZWFuQmFzZVBsb3Q9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT1pLl9oYXMmJmkuX2hhcyh0KSxvPXIuX2hhcyYmci5faGFzKHQpO2EmJiFvJiZpWyJfIit0KyJsYXllciJdLnNlbGVjdEFsbCgiZy50cmFjZSIpLnJlbW92ZSgpfX0seyIuLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vbGliIjo3NzYsIi4uL3Bsb3RfYXBpL3Bsb3Rfc2NoZW1hIjo4MTUsIi4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vcGxvdHMvZ2V0X2RhdGEiOjg2NCwiLi4vcmVnaXN0cnkiOjkwNCwiLi9hbmltYXRpb25fYXR0cmlidXRlcyI6ODIxLCIuL2F0dHJpYnV0ZXMiOjgyMywiLi9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwiLi9jYXJ0ZXNpYW4vaGFuZGxlX291dGxpbmUiOjgzOCwiLi9jb21tYW5kIjo4NTQsIi4vZm9udF9hdHRyaWJ1dGVzIjo4NTYsIi4vZnJhbWVfYXR0cmlidXRlcyI6ODU3LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4ODEsIkBwbG90bHkvZDMiOjU4LCJkMy1mb3JtYXQiOjE2MCwiZDMtdGltZS1mb3JtYXQiOjE2OCwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDg5MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHI6InN1YnBsb3QiLG5hbWU6InBvbGFyIixheGlzTmFtZXM6WyJhbmd1bGFyYXhpcyIsInJhZGlhbGF4aXMiXSxheGlzTmFtZTJkYXRhQXJyYXk6e2FuZ3VsYXJheGlzOiJ0aGV0YSIscmFkaWFsYXhpczoiciJ9LGxheWVyTmFtZXM6WyJkcmFnbGF5ZXIiLCJwbG90YmciLCJiYWNrcGxvdCIsImFuZ3VsYXItZ3JpZCIsInJhZGlhbC1ncmlkIiwiZnJvbnRwbG90IiwiYW5ndWxhci1saW5lIiwicmFkaWFsLWxpbmUiLCJhbmd1bGFyLWF4aXMiLCJyYWRpYWwtYXhpcyJdLHJhZGlhbERyYWdCb3hTaXplOjUwLGFuZ3VsYXJEcmFnQm94U2l6ZTozMCxjb3JuZXJMZW46MjUsY29ybmVySGFsZldpZHRoOjIsTUlORFJBRzo4LE1JTlpPT006MjAsT0ZGRURHRToyMH19LHt9XSw4OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9saWIvcG9seWdvbiIpLnRlc3RlcixhPW4uZmluZEluZGV4T2ZNaW4sbz1uLmlzQW5nbGVJbnNpZGVTZWN0b3Iscz1uLmFuZ2xlRGVsdGEsbD1uLmFuZ2xlRGlzdDtmdW5jdGlvbiBjKHQsZSxyLG4pe3ZhciBpLGEsbz1uWzBdLHM9blsxXSxsPWYoTWF0aC5zaW4oZSktTWF0aC5zaW4odCkpLGM9ZihNYXRoLmNvcyhlKS1NYXRoLmNvcyh0KSksdT1NYXRoLnRhbihyKSxoPWYoMS91KSxwPWwvYyxkPXMtcCpvO3JldHVybiBoP2wmJmM/YT11KihpPWQvKHUtcCkpOmM/KGk9cypoLGE9cyk6KGk9byxhPW8qdSk6bCYmYz8oaT0wLGE9ZCk6Yz8oaT0wLGE9cyk6aT1hPU5hTixbaSxhXX1mdW5jdGlvbiB1KHQsZSxyLGkpe3JldHVybiBuLmlzRnVsbENpcmNsZShbZSxyXSk/ZnVuY3Rpb24odCxlKXt2YXIgcixuPWUubGVuZ3RoLGk9bmV3IEFycmF5KG4rMSk7Zm9yKHI9MDtyPG47cisrKXt2YXIgYT1lW3JdO2lbcl09W3QqTWF0aC5jb3MoYSksdCpNYXRoLnNpbihhKV19cmV0dXJuIGlbcl09aVswXS5zbGljZSgpLGl9KHQsaSk6ZnVuY3Rpb24odCxlLHIsaSl7dmFyIHMsdSxmPWkubGVuZ3RoLGg9W107ZnVuY3Rpb24gcChlKXtyZXR1cm5bdCpNYXRoLmNvcyhlKSx0Kk1hdGguc2luKGUpXX1mdW5jdGlvbiBkKHQsZSxyKXtyZXR1cm4gYyh0LGUscixwKHQpKX1mdW5jdGlvbiBtKHQpe3JldHVybiBuLm1vZCh0LGYpfWZ1bmN0aW9uIGcodCl7cmV0dXJuIG8odCxbZSxyXSl9dmFyIHY9YShpLChmdW5jdGlvbih0KXtyZXR1cm4gZyh0KT9sKHQsZSk6MS8wfSkpLHk9ZChpW3ZdLGlbbSh2LTEpXSxlKTtmb3IoaC5wdXNoKHkpLHM9dix1PTA7dTxmO3MrKyx1Kyspe3ZhciB4PWlbbShzKV07aWYoIWcoeCkpYnJlYWs7aC5wdXNoKHAoeCkpfXZhciBiPWEoaSwoZnVuY3Rpb24odCl7cmV0dXJuIGcodCk/bCh0LHIpOjEvMH0pKSxfPWQoaVtiXSxpW20oYisxKV0scik7cmV0dXJuIGgucHVzaChfKSxoLnB1c2goWzAsMF0pLGgucHVzaChoWzBdLnNsaWNlKCkpLGh9KHQsZSxyLGkpfWZ1bmN0aW9uIGYodCl7cmV0dXJuIE1hdGguYWJzKHQpPjFlLTEwP3Q6MH1mdW5jdGlvbiBoKHQsZSxyKXtlPWV8fDAscj1yfHwwO2Zvcih2YXIgbj10Lmxlbmd0aCxpPW5ldyBBcnJheShuKSxhPTA7YTxuO2ErKyl7dmFyIG89dFthXTtpW2FdPVtlK29bMF0sci1vWzFdXX1yZXR1cm4gaX1lLmV4cG9ydHM9e2lzUHRJbnNpZGVQb2x5Z29uOmZ1bmN0aW9uKHQsZSxyLG4sYSl7aWYoIW8oZSxuKSlyZXR1cm4hMTt2YXIgcyxsO3JbMF08clsxXT8ocz1yWzBdLGw9clsxXSk6KHM9clsxXSxsPXJbMF0pO3ZhciBjPWkodShzLG5bMF0sblsxXSxhKSksZj1pKHUobCxuWzBdLG5bMV0sYSkpLGg9W3QqTWF0aC5jb3MoZSksdCpNYXRoLnNpbihlKV07cmV0dXJuIGYuY29udGFpbnMoaCkmJiFjLmNvbnRhaW5zKGgpfSxmaW5kUG9seWdvbk9mZnNldDpmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9MS8wLGE9MS8wLG89dSh0LGUscixuKSxzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBsPW9bc107aT1NYXRoLm1pbihpLGxbMF0pLGE9TWF0aC5taW4oYSwtbFsxXSl9cmV0dXJuW2ksYV19LGZpbmRFbmNsb3NpbmdWZXJ0ZXhBbmdsZXM6ZnVuY3Rpb24odCxlKXt2YXIgcj1hKGUsKGZ1bmN0aW9uKGUpe3ZhciByPXMoZSx0KTtyZXR1cm4gcj4wP3I6MS8wfSkpLGk9bi5tb2QocisxLGUubGVuZ3RoKTtyZXR1cm5bZVtyXSxlW2ldXX0sZmluZEludGVyc2VjdGlvblhZOmMsZmluZFhZYXRMZW5ndGg6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9LWUqcixhPWUqZSsxLG89MiooZSppLXIpLHM9aSppK3Iqci10KnQsbD1NYXRoLnNxcnQobypvLTQqYSpzKSxjPSgtbytsKS8oMiphKSx1PSgtby1sKS8oMiphKTtyZXR1cm5bW2MsZSpjK2krbl0sW3UsZSp1K2krbl1dfSxjbGFtcFRpbnk6ZixwYXRoUG9seWdvbjpmdW5jdGlvbih0LGUscixuLGksYSl7cmV0dXJuIk0iK2godSh0LGUscixuKSxpLGEpLmpvaW4oIkwiKX0scGF0aFBvbHlnb25Bbm51bHVzOmZ1bmN0aW9uKHQsZSxyLG4saSxhLG8pe3ZhciBzLGw7dDxlPyhzPXQsbD1lKToocz1lLGw9dCk7dmFyIGM9aCh1KHMscixuLGkpLGEsbyk7cmV0dXJuIk0iK2godShsLHIsbixpKSxhLG8pLnJldmVyc2UoKS5qb2luKCJMIikrIk0iK2Muam9pbigiTCIpfX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9wb2x5Z29uIjo3ODh9XSw4OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vZ2V0X2RhdGEiKS5nZXRTdWJwbG90Q2FsY0RhdGEsaT10KCIuLi8uLi9saWIiKS5jb3VudGVyUmVnZXgsYT10KCIuL3BvbGFyIiksbz10KCIuL2NvbnN0YW50cyIpLHM9by5hdHRyLGw9by5uYW1lLGM9aShsKSx1PXt9O3Vbc109e3ZhbFR5cGU6InN1YnBsb3RpZCIsZGZsdDpsLGVkaXRUeXBlOiJjYWxjIn0sZS5leHBvcnRzPXthdHRyOnMsbmFtZTpsLGlkUm9vdDpsLGlkUmVnZXg6YyxhdHRyUmVnZXg6YyxhdHRyaWJ1dGVzOnUsbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxwbG90OmZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Ll9mdWxsTGF5b3V0LHI9dC5jYWxjZGF0YSxpPWUuX3N1YnBsb3RzW2xdLG89MDtvPGkubGVuZ3RoO28rKyl7dmFyIHM9aVtvXSxjPW4ocixsLHMpLHU9ZVtzXS5fc3VicGxvdDt1fHwodT1hKHQscyksZVtzXS5fc3VicGxvdD11KSx1LnBsb3QoYyxlLHQuX3Byb21pc2VzKX19LGNsZWFuOmZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT1uLl9zdWJwbG90c1tsXXx8W10sYT1uLl9oYXMmJm4uX2hhcygiZ2wiKSxvPWUuX2hhcyYmZS5faGFzKCJnbCIpLHM9YSYmIW8sYz0wO2M8aS5sZW5ndGg7YysrKXt2YXIgdT1pW2NdLGY9blt1XS5fc3VicGxvdDtpZighZVt1XSYmZilmb3IodmFyIGggaW4gZi5mcmFtZXdvcmsucmVtb3ZlKCksZi5sYXllcnNbInJhZGlhbC1heGlzLXRpdGxlIl0ucmVtb3ZlKCksZi5jbGlwUGF0aHMpZi5jbGlwUGF0aHNbaF0ucmVtb3ZlKCk7cyYmZi5fc2NlbmUmJihmLl9zY2VuZS5kZXN0cm95KCksZi5fc2NlbmU9bnVsbCl9fSx0b1NWRzp0KCIuLi9jYXJ0ZXNpYW4iKS50b1NWR319LHsiLi4vLi4vbGliIjo3NzYsIi4uL2NhcnRlc2lhbiI6ODQxLCIuLi9nZXRfZGF0YSI6ODY0LCIuL2NvbnN0YW50cyI6ODkxLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4OTQsIi4vbGF5b3V0X2RlZmF1bHRzIjo4OTUsIi4vcG9sYXIiOjg5Nn1dLDg5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxpPXQoIi4uL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLGE9dCgiLi4vZG9tYWluIikuYXR0cmlidXRlcyxvPXQoIi4uLy4uL2xpYiIpLmV4dGVuZEZsYXQscz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsbD1zKHtjb2xvcjppLmNvbG9yLHNob3dsaW5lOm8oe30saS5zaG93bGluZSx7ZGZsdDohMH0pLGxpbmVjb2xvcjppLmxpbmVjb2xvcixsaW5ld2lkdGg6aS5saW5ld2lkdGgsc2hvd2dyaWQ6byh7fSxpLnNob3dncmlkLHtkZmx0OiEwfSksZ3JpZGNvbG9yOmkuZ3JpZGNvbG9yLGdyaWR3aWR0aDppLmdyaWR3aWR0aH0sInBsb3QiLCJmcm9tLXJvb3QiKSxjPXMoe3RpY2ttb2RlOmkudGlja21vZGUsbnRpY2tzOmkubnRpY2tzLHRpY2swOmkudGljazAsZHRpY2s6aS5kdGljayx0aWNrdmFsczppLnRpY2t2YWxzLHRpY2t0ZXh0OmkudGlja3RleHQsdGlja3M6aS50aWNrcyx0aWNrbGVuOmkudGlja2xlbix0aWNrd2lkdGg6aS50aWNrd2lkdGgsdGlja2NvbG9yOmkudGlja2NvbG9yLHNob3d0aWNrbGFiZWxzOmkuc2hvd3RpY2tsYWJlbHMsc2hvd3RpY2twcmVmaXg6aS5zaG93dGlja3ByZWZpeCx0aWNrcHJlZml4OmkudGlja3ByZWZpeCxzaG93dGlja3N1ZmZpeDppLnNob3d0aWNrc3VmZml4LHRpY2tzdWZmaXg6aS50aWNrc3VmZml4LHNob3dleHBvbmVudDppLnNob3dleHBvbmVudCxleHBvbmVudGZvcm1hdDppLmV4cG9uZW50Zm9ybWF0LG1pbmV4cG9uZW50OmkubWluZXhwb25lbnQsc2VwYXJhdGV0aG91c2FuZHM6aS5zZXBhcmF0ZXRob3VzYW5kcyx0aWNrZm9udDppLnRpY2tmb250LHRpY2thbmdsZTppLnRpY2thbmdsZSx0aWNrZm9ybWF0OmkudGlja2Zvcm1hdCx0aWNrZm9ybWF0c3RvcHM6aS50aWNrZm9ybWF0c3RvcHMsbGF5ZXI6aS5sYXllcn0sInBsb3QiLCJmcm9tLXJvb3QiKSx1PXt2aXNpYmxlOm8oe30saS52aXNpYmxlLHtkZmx0OiEwfSksdHlwZTpvKHt9LGkudHlwZSx7dmFsdWVzOlsiLSIsImxpbmVhciIsImxvZyIsImRhdGUiLCJjYXRlZ29yeSJdfSksYXV0b3R5cGVudW1iZXJzOmkuYXV0b3R5cGVudW1iZXJzLGF1dG9yYW5nZTpvKHt9LGkuYXV0b3JhbmdlLHtlZGl0VHlwZToicGxvdCJ9KSxyYW5nZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvemVybyIsIm5vbm5lZ2F0aXZlIiwibm9ybWFsIl0sZGZsdDoidG96ZXJvIixlZGl0VHlwZToiY2FsYyJ9LHJhbmdlOm8oe30saS5yYW5nZSx7aXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19LHt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90IixpbXBsaWVkRWRpdHM6eyJeYXV0b3JhbmdlIjohMX19XSxlZGl0VHlwZToicGxvdCJ9KSxjYXRlZ29yeW9yZGVyOmkuY2F0ZWdvcnlvcmRlcixjYXRlZ29yeWFycmF5OmkuY2F0ZWdvcnlhcnJheSxhbmdsZTp7dmFsVHlwZToiYW5nbGUiLGVkaXRUeXBlOiJwbG90In0sc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2xvY2t3aXNlIiwiY291bnRlcmNsb2Nrd2lzZSJdLGRmbHQ6ImNsb2Nrd2lzZSIsZWRpdFR5cGU6InBsb3QifSx0aXRsZTp7dGV4dDpvKHt9LGkudGl0bGUudGV4dCx7ZWRpdFR5cGU6InBsb3QiLGRmbHQ6IiJ9KSxmb250Om8oe30saS50aXRsZS5mb250LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToicGxvdCJ9LGhvdmVyZm9ybWF0OmkuaG92ZXJmb3JtYXQsdWlyZXZpc2lvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9LGVkaXRUeXBlOiJjYWxjIixfZGVwcmVjYXRlZDp7dGl0bGU6aS5fZGVwcmVjYXRlZC50aXRsZSx0aXRsZWZvbnQ6aS5fZGVwcmVjYXRlZC50aXRsZWZvbnR9fTtvKHUsbCxjKTt2YXIgZj17dmlzaWJsZTpvKHt9LGkudmlzaWJsZSx7ZGZsdDohMH0pLHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIi0iLCJsaW5lYXIiLCJjYXRlZ29yeSJdLGRmbHQ6Ii0iLGVkaXRUeXBlOiJjYWxjIixfbm9UZW1wbGF0aW5nOiEwfSxhdXRvdHlwZW51bWJlcnM6aS5hdXRvdHlwZW51bWJlcnMsY2F0ZWdvcnlvcmRlcjppLmNhdGVnb3J5b3JkZXIsY2F0ZWdvcnlhcnJheTppLmNhdGVnb3J5YXJyYXksdGhldGF1bml0Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJyYWRpYW5zIiwiZGVncmVlcyJdLGRmbHQ6ImRlZ3JlZXMiLGVkaXRUeXBlOiJjYWxjIn0scGVyaW9kOnt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIixtaW46MH0sZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjb3VudGVyY2xvY2t3aXNlIiwiY2xvY2t3aXNlIl0sZGZsdDoiY291bnRlcmNsb2Nrd2lzZSIsZWRpdFR5cGU6ImNhbGMifSxyb3RhdGlvbjp7dmFsVHlwZToiYW5nbGUiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJmb3JtYXQ6aS5ob3ZlcmZvcm1hdCx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6ImNhbGMifTtvKGYsbCxjKSxlLmV4cG9ydHM9e2RvbWFpbjphKHtuYW1lOiJwb2xhciIsZWRpdFR5cGU6InBsb3QifSksc2VjdG9yOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6InBsb3QifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToicGxvdCJ9XSxkZmx0OlswLDM2MF0sZWRpdFR5cGU6InBsb3QifSxob2xlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGJnY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToicGxvdCIsZGZsdDpuLmJhY2tncm91bmR9LHJhZGlhbGF4aXM6dSxhbmd1bGFyYXhpczpmLGdyaWRzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2lyY3VsYXIiLCJsaW5lYXIiXSxkZmx0OiJjaXJjdWxhciIsZWRpdFR5cGU6InBsb3QifSx1aXJldmlzaW9uOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJub25lIn0sZWRpdFR5cGU6ImNhbGMifX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjYzOCwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDIsIi4uL2RvbWFpbiI6ODU1fV0sODk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLG89dCgiLi4vc3VicGxvdF9kZWZhdWx0cyIpLHM9dCgiLi4vZ2V0X2RhdGEiKS5nZXRTdWJwbG90RGF0YSxsPXQoIi4uL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIiksYz10KCIuLi9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIiksdT10KCIuLi9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyIpLGY9dCgiLi4vY2FydGVzaWFuL2NhdGVnb3J5X29yZGVyX2RlZmF1bHRzIiksaD10KCIuLi9jYXJ0ZXNpYW4vbGluZV9ncmlkX2RlZmF1bHRzIikscD10KCIuLi9jYXJ0ZXNpYW4vYXhpc19hdXRvdHlwZSIpLGQ9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLG09dCgiLi9zZXRfY29udmVydCIpLGc9dCgiLi9jb25zdGFudHMiKSx2PWcuYXhpc05hbWVzO2Z1bmN0aW9uIHkodCxlLHIsbyl7dmFyIHA9cigiYmdjb2xvciIpO28uYmdDb2xvcj1pLmNvbWJpbmUocCxvLnBhcGVyX2JnY29sb3IpO3ZhciB5PXIoInNlY3RvciIpO3IoImhvbGUiKTt2YXIgYixfPXMoby5mdWxsRGF0YSxnLm5hbWUsby5pZCksdz1vLmxheW91dE91dDtmdW5jdGlvbiBUKHQsZSl7cmV0dXJuIHIoYisiLiIrdCxlKX1mb3IodmFyIGs9MDtrPHYubGVuZ3RoO2srKyl7Yj12W2tdLG4uaXNQbGFpbk9iamVjdCh0W2JdKXx8KHRbYl09e30pO3ZhciBBPXRbYl0sTT1hLm5ld0NvbnRhaW5lcihlLGIpO00uX2lkPU0uX25hbWU9YixNLl9hdHRyPW8uaWQrIi4iK2IsTS5fdHJhY2VJbmRpY2VzPV8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5fZXhwYW5kZWRJbmRleH0pKTt2YXIgUz1nLmF4aXNOYW1lMmRhdGFBcnJheVtiXSxFPXgoQSxNLFQsXyxTLG8pO2YoQSxNLFQse2F4RGF0YTpfLGRhdGFBdHRyOlN9KTt2YXIgTCxDLFA9VCgidmlzaWJsZSIpO3N3aXRjaChtKE0sZSx3KSxUKCJ1aXJldmlzaW9uIixlLnVpcmV2aXNpb24pLFAmJihDPShMPVQoImNvbG9yIikpPT09QS5jb2xvcj9MOm8uZm9udC5jb2xvciksTS5fbT0xLGIpe2Nhc2UicmFkaWFsYXhpcyI6dmFyIEk9VCgiYXV0b3JhbmdlIiwhTS5pc1ZhbGlkUmFuZ2UoQS5yYW5nZSkpO0EuYXV0b3JhbmdlPUksIUl8fCJsaW5lYXIiIT09RSYmIi0iIT09RXx8VCgicmFuZ2Vtb2RlIiksInJldmVyc2VkIj09PUkmJihNLl9tPS0xKSxUKCJyYW5nZSIpLE0uY2xlYW5SYW5nZSgicmFuZ2UiLHtkZmx0UmFuZ2U6WzAsMV19KSxQJiYoVCgic2lkZSIpLFQoImFuZ2xlIix5WzBdKSxUKCJ0aXRsZS50ZXh0Iiksbi5jb2VyY2VGb250KFQsInRpdGxlLmZvbnQiLHtmYW1pbHk6by5mb250LmZhbWlseSxzaXplOm4uYmlnRm9udChvLmZvbnQuc2l6ZSksY29sb3I6Q30pKTticmVhaztjYXNlImFuZ3VsYXJheGlzIjppZigiZGF0ZSI9PT1FKXtuLmxvZygiUG9sYXIgcGxvdHMgZG8gbm90IHN1cHBvcnQgZGF0ZSBhbmd1bGFyIGF4ZXMgeWV0LiIpO2Zvcih2YXIgTz0wO088Xy5sZW5ndGg7TysrKV9bT10udmlzaWJsZT0hMTtFPUEudHlwZT1NLnR5cGU9ImxpbmVhciJ9VCgibGluZWFyIj09PUU/InRoZXRhdW5pdCI6InBlcmlvZCIpO3ZhciB6PVQoImRpcmVjdGlvbiIpO1QoInJvdGF0aW9uIix7Y291bnRlcmNsb2Nrd2lzZTowLGNsb2Nrd2lzZTo5MH1bel0pfWlmKFApbChBLE0sVCxNLnR5cGUpLHUoQSxNLFQsTS50eXBlLHt0aWNrU3VmZml4RGZsdDoiZGVncmVlcyI9PT1NLnRoZXRhdW5pdD8iXHhiMCI6dm9pZCAwfSksYyhBLE0sVCx7b3V0ZXJUaWNrczohMH0pLFQoInNob3d0aWNrbGFiZWxzIikmJihuLmNvZXJjZUZvbnQoVCwidGlja2ZvbnQiLHtmYW1pbHk6by5mb250LmZhbWlseSxzaXplOm8uZm9udC5zaXplLGNvbG9yOkN9KSxUKCJ0aWNrYW5nbGUiKSxUKCJ0aWNrZm9ybWF0IikpLGgoQSxNLFQse2RmbHRDb2xvcjpMLGJnQ29sb3I6by5iZ0NvbG9yLGJsZW5kOjYwLHNob3dMaW5lOiEwLHNob3dHcmlkOiEwLG5vWmVyb0xpbmU6ITAsYXR0cmlidXRlczpkW2JdfSksVCgibGF5ZXIiKTsiY2F0ZWdvcnkiIT09RSYmVCgiaG92ZXJmb3JtYXQiKSxNLl9pbnB1dD1BfSJjYXRlZ29yeSI9PT1lLmFuZ3VsYXJheGlzLnR5cGUmJnIoImdyaWRzaGFwZSIpfWZ1bmN0aW9uIHgodCxlLHIsbixpLGEpe3ZhciBvPXIoImF1dG90eXBlbnVtYmVycyIsYS5hdXRvdHlwZW51bWJlcnNEZmx0KTtpZigiLSI9PT1yKCJ0eXBlIikpe2Zvcih2YXIgcyxsPTA7bDxuLmxlbmd0aDtsKyspaWYobltsXS52aXNpYmxlKXtzPW5bbF07YnJlYWt9cyYmc1tpXSYmKGUudHlwZT1wKHNbaV0sImdyZWdvcmlhbiIse25vTXVsdGlDYXRlZ29yeTohMCxhdXRvdHlwZW51bWJlcnM6b30pKSwiLSI9PT1lLnR5cGU/ZS50eXBlPSJsaW5lYXIiOnQudHlwZT1lLnR5cGV9cmV0dXJuIGUudHlwZX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe28odCxlLHIse3R5cGU6Zy5uYW1lLGF0dHJpYnV0ZXM6ZCxoYW5kbGVEZWZhdWx0czp5LGZvbnQ6ZS5mb250LGF1dG90eXBlbnVtYmVyc0RmbHQ6ZS5hdXRvdHlwZW51bWJlcnMscGFwZXJfYmdjb2xvcjplLnBhcGVyX2JnY29sb3IsZnVsbERhdGE6cixsYXlvdXRPdXQ6ZX0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uL2NhcnRlc2lhbi9heGlzX2F1dG90eXBlIjo4MjgsIi4uL2NhcnRlc2lhbi9jYXRlZ29yeV9vcmRlcl9kZWZhdWx0cyI6ODMyLCIuLi9jYXJ0ZXNpYW4vbGluZV9ncmlkX2RlZmF1bHRzIjo4NDQsIi4uL2NhcnRlc2lhbi90aWNrX2xhYmVsX2RlZmF1bHRzIjo4NDksIi4uL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiOjg1MCwiLi4vY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjg1MSwiLi4vZ2V0X2RhdGEiOjg2NCwiLi4vc3VicGxvdF9kZWZhdWx0cyI6ODk4LCIuL2NvbnN0YW50cyI6ODkxLCIuL2xheW91dF9hdHRyaWJ1dGVzIjo4OTQsIi4vc2V0X2NvbnZlcnQiOjg5N31dLDg5NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJ0aW55Y29sb3IyIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vbGliIikscz1vLnN0clJvdGF0ZSxsPW8uc3RyVHJhbnNsYXRlLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHU9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksZj10KCIuLi9wbG90cyIpLGg9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxwPXQoIi4uL2NhcnRlc2lhbi9zZXRfY29udmVydCIpLGQ9dCgiLi9zZXRfY29udmVydCIpLG09dCgiLi4vY2FydGVzaWFuL2F1dG9yYW5nZSIpLmRvQXV0b1JhbmdlLGc9dCgiLi4vY2FydGVzaWFuL2RyYWdib3giKSx2PXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiKSx5PXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSx4PXQoIi4uLy4uL2NvbXBvbmVudHMvdGl0bGVzIiksYj10KCIuLi9jYXJ0ZXNpYW4vc2VsZWN0IikucHJlcFNlbGVjdCxfPXQoIi4uL2NhcnRlc2lhbi9zZWxlY3QiKS5zZWxlY3RPbkNsaWNrLHc9dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLmNsZWFyU2VsZWN0LFQ9dCgiLi4vLi4vbGliL3NldGN1cnNvciIpLGs9dCgiLi4vLi4vbGliL2NsZWFyX2dsX2NhbnZhc2VzIiksQT10KCIuLi8uLi9wbG90X2FwaS9zdWJyb3V0aW5lcyIpLnJlZHJhd1JlZ2xUcmFjZXMsTT10KCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50IikuTUlEX1NISUZULFM9dCgiLi9jb25zdGFudHMiKSxFPXQoIi4vaGVscGVycyIpLEw9by5fLEM9by5tb2QsUD1vLmRlZzJyYWQsST1vLnJhZDJkZWc7ZnVuY3Rpb24gTyh0LGUpe3RoaXMuaWQ9ZSx0aGlzLmdkPXQsdGhpcy5faGFzQ2xpcE9uQXhpc0ZhbHNlPW51bGwsdGhpcy52YW5nbGVzPW51bGwsdGhpcy5yYWRpYWxBeGlzQW5nbGU9bnVsbCx0aGlzLnRyYWNlSGFzaD17fSx0aGlzLmxheWVycz17fSx0aGlzLmNsaXBQYXRocz17fSx0aGlzLmNsaXBJZHM9e30sdGhpcy52aWV3SW5pdGlhbD17fTt2YXIgcj10Ll9mdWxsTGF5b3V0LG49ImNsaXAiK3IuX3VpZCtlO3RoaXMuY2xpcElkcy5mb3JUcmFjZXM9bisiLWZvci10cmFjZXMiLHRoaXMuY2xpcFBhdGhzLmZvclRyYWNlcz1yLl9jbGlwcy5hcHBlbmQoImNsaXBQYXRoIikuYXR0cigiaWQiLHRoaXMuY2xpcElkcy5mb3JUcmFjZXMpLHRoaXMuY2xpcFBhdGhzLmZvclRyYWNlcy5hcHBlbmQoInBhdGgiKSx0aGlzLmZyYW1ld29yaz1yLl9wb2xhcmxheWVyLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIixlKSx0aGlzLnJhZGlhbFRpY2tMYXlvdXQ9bnVsbCx0aGlzLmFuZ3VsYXJUaWNrTGF5b3V0PW51bGx9dmFyIHo9Ty5wcm90b3R5cGU7ZnVuY3Rpb24gRCh0KXt2YXIgZT10LnRpY2tzK1N0cmluZyh0LnRpY2tsZW4pK1N0cmluZyh0LnNob3d0aWNrbGFiZWxzKTtyZXR1cm4ic2lkZSJpbiB0JiYoZSs9dC5zaWRlKSxlfWZ1bmN0aW9uIFIodCxlKXtyZXR1cm4gZVtvLmZpbmRJbmRleE9mTWluKGUsKGZ1bmN0aW9uKGUpe3JldHVybiBvLmFuZ2xlRGlzdCh0LGUpfSkpXX1mdW5jdGlvbiBGKHQsZSxyKXtyZXR1cm4gZT8odC5hdHRyKCJkaXNwbGF5IixudWxsKSx0LmF0dHIocikpOnQmJnQuYXR0cigiZGlzcGxheSIsIm5vbmUiKSx0fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiBuZXcgTyh0LGUpfSx6LnBsb3Q9ZnVuY3Rpb24odCxlKXt2YXIgcj1lW3RoaXMuaWRdO3RoaXMuX2hhc0NsaXBPbkF4aXNGYWxzZT0hMTtmb3IodmFyIG49MDtuPHQubGVuZ3RoO24rKyl7aWYoITE9PT10W25dWzBdLnRyYWNlLmNsaXBvbmF4aXMpe3RoaXMuX2hhc0NsaXBPbkF4aXNGYWxzZT0hMDticmVha319dGhpcy51cGRhdGVMYXllcnMoZSxyKSx0aGlzLnVwZGF0ZUxheW91dChlLHIpLGYuZ2VuZXJhbFVwZGF0ZVBlclRyYWNlTW9kdWxlKHRoaXMuZ2QsdGhpcyx0LHIpLHRoaXMudXBkYXRlRngoZSxyKX0sei51cGRhdGVMYXllcnM9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmxheWVycyxpPWUucmFkaWFsYXhpcyxhPWUuYW5ndWxhcmF4aXMsbz1TLmxheWVyTmFtZXMscz1vLmluZGV4T2YoImZyb250cGxvdCIpLGw9by5zbGljZSgwLHMpLGM9ImJlbG93IHRyYWNlcyI9PT1hLmxheWVyLHU9ImJlbG93IHRyYWNlcyI9PT1pLmxheWVyO2MmJmwucHVzaCgiYW5ndWxhci1saW5lIiksdSYmbC5wdXNoKCJyYWRpYWwtbGluZSIpLGMmJmwucHVzaCgiYW5ndWxhci1heGlzIiksdSYmbC5wdXNoKCJyYWRpYWwtYXhpcyIpLGwucHVzaCgiZnJvbnRwbG90IiksY3x8bC5wdXNoKCJhbmd1bGFyLWxpbmUiKSx1fHxsLnB1c2goInJhZGlhbC1saW5lIiksY3x8bC5wdXNoKCJhbmd1bGFyLWF4aXMiKSx1fHxsLnB1c2goInJhZGlhbC1heGlzIik7dmFyIGY9dGhpcy5mcmFtZXdvcmsuc2VsZWN0QWxsKCIucG9sYXJzdWJsYXllciIpLmRhdGEobCxTdHJpbmcpO2YuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJwb2xhcnN1YmxheWVyICIrdH0pKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1yW3RdPW4uc2VsZWN0KHRoaXMpO3N3aXRjaCh0KXtjYXNlImZyb250cGxvdCI6ZS5hcHBlbmQoImciKS5jbGFzc2VkKCJiYXJsYXllciIsITApLGUuYXBwZW5kKCJnIikuY2xhc3NlZCgic2NhdHRlcmxheWVyIiwhMCk7YnJlYWs7Y2FzZSJiYWNrcGxvdCI6ZS5hcHBlbmQoImciKS5jbGFzc2VkKCJtYXBsYXllciIsITApO2JyZWFrO2Nhc2UicGxvdGJnIjpyLmJnPWUuYXBwZW5kKCJwYXRoIik7YnJlYWs7Y2FzZSJyYWRpYWwtZ3JpZCI6Y2FzZSJhbmd1bGFyLWdyaWQiOmUuc3R5bGUoImZpbGwiLCJub25lIik7YnJlYWs7Y2FzZSJyYWRpYWwtbGluZSI6ZS5hcHBlbmQoImxpbmUiKS5zdHlsZSgiZmlsbCIsIm5vbmUiKTticmVhaztjYXNlImFuZ3VsYXItbGluZSI6ZS5hcHBlbmQoInBhdGgiKS5zdHlsZSgiZmlsbCIsIm5vbmUiKX19KSksZi5vcmRlcigpfSx6LnVwZGF0ZUxheW91dD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMubGF5ZXJzLG49dC5fc2l6ZSxpPWUucmFkaWFsYXhpcyxhPWUuYW5ndWxhcmF4aXMsbz1lLmRvbWFpbi54LHM9ZS5kb21haW4ueTt0aGlzLnhPZmZzZXQ9bi5sK24udypvWzBdLHRoaXMueU9mZnNldD1uLnQrbi5oKigxLXNbMV0pO3ZhciBmPXRoaXMueExlbmd0aD1uLncqKG9bMV0tb1swXSksaD10aGlzLnlMZW5ndGg9bi5oKihzWzFdLXNbMF0pLHA9ZS5zZWN0b3I7dGhpcy5zZWN0b3JJblJhZD1wLm1hcChQKTt2YXIgZCxtLGcsdix5LHg9dGhpcy5zZWN0b3JCQm94PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixpLGE9dFswXSxvPXRbMV0tYSxzPUMoYSwzNjApLGw9cytvLGM9TWF0aC5jb3MoUChzKSksdT1NYXRoLnNpbihQKHMpKSxmPU1hdGguY29zKFAobCkpLGg9TWF0aC5zaW4oUChsKSk7aT1zPD05MCYmbD49OTB8fHM+OTAmJmw+PTQ1MD8xOnU8PTAmJmg8PTA/MDpNYXRoLm1heCh1LGgpO2U9czw9MTgwJiZsPj0xODB8fHM+MTgwJiZsPj01NDA/LTE6Yz49MCYmZj49MD8wOk1hdGgubWluKGMsZik7cj1zPD0yNzAmJmw+PTI3MHx8cz4yNzAmJmw+PTYzMD8tMTp1Pj0wJiZoPj0wPzA6TWF0aC5taW4odSxoKTtuPWw+PTM2MD8xOmM8PTAmJmY8PTA/MDpNYXRoLm1heChjLGYpO3JldHVybltlLHIsbixpXX0ocCksYj14WzJdLXhbMF0sXz14WzNdLXhbMV0sdz1oL2YsVD1NYXRoLmFicyhfL2IpO3c+VD8oZD1mLHk9KGgtKG09ZipUKSkvbi5oLzIsZz1bb1swXSxvWzFdXSx2PVtzWzBdK3ksc1sxXS15XSk6KG09aCx5PShmLShkPWgvVCkpL24udy8yLGc9W29bMF0reSxvWzFdLXldLHY9W3NbMF0sc1sxXV0pLHRoaXMueExlbmd0aDI9ZCx0aGlzLnlMZW5ndGgyPW0sdGhpcy54RG9tYWluMj1nLHRoaXMueURvbWFpbjI9djt2YXIgaz10aGlzLnhPZmZzZXQyPW4ubCtuLncqZ1swXSxBPXRoaXMueU9mZnNldDI9bi50K24uaCooMS12WzFdKSxNPXRoaXMucmFkaXVzPWQvYixTPXRoaXMuaW5uZXJSYWRpdXM9ZS5ob2xlKk0sRT10aGlzLmN4PWstTSp4WzBdLEw9dGhpcy5jeT1BK00qeFszXSxJPXRoaXMuY3h4PUUtayxPPXRoaXMuY3l5PUwtQTt0aGlzLnJhZGlhbEF4aXM9dGhpcy5tb2NrQXhpcyh0LGUsaSx7X2lkOiJ4IixzaWRlOntjb3VudGVyY2xvY2t3aXNlOiJ0b3AiLGNsb2Nrd2lzZToiYm90dG9tIn1baS5zaWRlXSxfcmVhbFNpZGU6aS5zaWRlLGRvbWFpbjpbUy9uLncsTS9uLnddfSksdGhpcy5hbmd1bGFyQXhpcz10aGlzLm1vY2tBeGlzKHQsZSxhLHtzaWRlOiJyaWdodCIsZG9tYWluOlswLE1hdGguUEldLGF1dG9yYW5nZTohMX0pLHRoaXMuZG9BdXRvUmFuZ2UodCxlKSx0aGlzLnVwZGF0ZUFuZ3VsYXJBeGlzKHQsZSksdGhpcy51cGRhdGVSYWRpYWxBeGlzKHQsZSksdGhpcy51cGRhdGVSYWRpYWxBeGlzVGl0bGUodCxlKSx0aGlzLnhheGlzPXRoaXMubW9ja0NhcnRlc2lhbkF4aXModCxlLHtfaWQ6IngiLGRvbWFpbjpnfSksdGhpcy55YXhpcz10aGlzLm1vY2tDYXJ0ZXNpYW5BeGlzKHQsZSx7X2lkOiJ5Iixkb21haW46dn0pO3ZhciB6PXRoaXMucGF0aFN1YnBsb3QoKTt0aGlzLmNsaXBQYXRocy5mb3JUcmFjZXMuc2VsZWN0KCJwYXRoIikuYXR0cigiZCIseikuYXR0cigidHJhbnNmb3JtIixsKEksTykpLHIuZnJvbnRwbG90LmF0dHIoInRyYW5zZm9ybSIsbChrLEEpKS5jYWxsKHUuc2V0Q2xpcFVybCx0aGlzLl9oYXNDbGlwT25BeGlzRmFsc2U/bnVsbDp0aGlzLmNsaXBJZHMuZm9yVHJhY2VzLHRoaXMuZ2QpLHIuYmcuYXR0cigiZCIseikuYXR0cigidHJhbnNmb3JtIixsKEUsTCkpLmNhbGwoYy5maWxsLGUuYmdjb2xvcil9LHoubW9ja0F4aXM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9by5leHRlbmRGbGF0KHt9LHIsbik7cmV0dXJuIGQoaSxlLHQpLGl9LHoubW9ja0NhcnRlc2lhbkF4aXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXRoaXMsaT1yLl9pZCxhPW8uZXh0ZW5kRmxhdCh7dHlwZToibGluZWFyIn0scik7cChhLHQpO3ZhciBzPXt4OlswLDJdLHk6WzEsM119O3JldHVybiBhLnNldFJhbmdlPWZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWN0b3JCQm94LHI9c1tpXSxvPW4ucmFkaWFsQXhpcy5fcmwsbD0ob1sxXS1vWzBdKS8oMS1lLmhvbGUpO2EucmFuZ2U9W3RbclswXV0qbCx0W3JbMV1dKmxdfSxhLmlzUHRXaXRoaW5SYW5nZT0ieCI9PT1pP2Z1bmN0aW9uKHQpe3JldHVybiBuLmlzUHRJbnNpZGUodCl9OmZ1bmN0aW9uKCl7cmV0dXJuITB9LGEuc2V0UmFuZ2UoKSxhLnNldFNjYWxlKCksYX0sei5kb0F1dG9SYW5nZT1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZ2Qsbj10aGlzLnJhZGlhbEF4aXMsaT1lLnJhZGlhbGF4aXM7bi5zZXRTY2FsZSgpLG0ocixuKTt2YXIgYT1uLnJhbmdlO2kucmFuZ2U9YS5zbGljZSgpLGkuX2lucHV0LnJhbmdlPWEuc2xpY2UoKSxuLl9ybD1bbi5yMmwoYVswXSxudWxsLCJncmVnb3JpYW4iKSxuLnIybChhWzFdLG51bGwsImdyZWdvcmlhbiIpXX0sei51cGRhdGVSYWRpYWxBeGlzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxuPXIuZ2QsaT1yLmxheWVycyxhPXIucmFkaXVzLHU9ci5pbm5lclJhZGl1cyxmPXIuY3gscD1yLmN5LGQ9ZS5yYWRpYWxheGlzLG09QyhlLnNlY3RvclswXSwzNjApLGc9ci5yYWRpYWxBeGlzLHY9dTxhO3IuZmlsbFZpZXdJbml0aWFsS2V5KCJyYWRpYWxheGlzLmFuZ2xlIixkLmFuZ2xlKSxyLmZpbGxWaWV3SW5pdGlhbEtleSgicmFkaWFsYXhpcy5yYW5nZSIsZy5yYW5nZS5zbGljZSgpKSxnLnNldEdlb21ldHJ5KCksImF1dG8iPT09Zy50aWNrYW5nbGUmJm0+OTAmJm08PTI3MCYmKGcudGlja2FuZ2xlPTE4MCk7dmFyIHk9ZnVuY3Rpb24odCl7cmV0dXJuIGwoZy5sMnAodC54KSt1LDApfSx4PUQoZCk7aWYoci5yYWRpYWxUaWNrTGF5b3V0IT09eCYmKGlbInJhZGlhbC1heGlzIl0uc2VsZWN0QWxsKCIueHRpY2siKS5yZW1vdmUoKSxyLnJhZGlhbFRpY2tMYXlvdXQ9eCksdil7Zy5zZXRTY2FsZSgpO3ZhciBiPWguY2FsY1RpY2tzKGcpLF89aC5jbGlwRW5kcyhnLGIpLHc9aC5nZXRUaWNrU2lnbnMoZylbMl07aC5kcmF3VGlja3MobixnLHt2YWxzOmIsbGF5ZXI6aVsicmFkaWFsLWF4aXMiXSxwYXRoOmgubWFrZVRpY2tQYXRoKGcsMCx3KSx0cmFuc0ZuOnksY3Jpc3A6ITF9KSxoLmRyYXdHcmlkKG4sZyx7dmFsczpfLGxheWVyOmlbInJhZGlhbC1ncmlkIl0scGF0aDpmdW5jdGlvbih0KXtyZXR1cm4gci5wYXRoQXJjKGcucjJwKHQueCkrdSl9LHRyYW5zRm46by5ub29wLGNyaXNwOiExfSksaC5kcmF3TGFiZWxzKG4sZyx7dmFsczpiLGxheWVyOmlbInJhZGlhbC1heGlzIl0sdHJhbnNGbjp5LGxhYmVsRm5zOmgubWFrZUxhYmVsRm5zKGcsMCl9KX12YXIgVD1yLnJhZGlhbEF4aXNBbmdsZT1yLnZhbmdsZXM/SShSKFAoZC5hbmdsZSksci52YW5nbGVzKSk6ZC5hbmdsZSxrPWwoZixwKSxBPWsrcygtVCk7RihpWyJyYWRpYWwtYXhpcyJdLHYmJihkLnNob3d0aWNrbGFiZWxzfHxkLnRpY2tzKSx7dHJhbnNmb3JtOkF9KSxGKGlbInJhZGlhbC1ncmlkIl0sdiYmZC5zaG93Z3JpZCx7dHJhbnNmb3JtOmt9KSxGKGlbInJhZGlhbC1saW5lIl0uc2VsZWN0KCJsaW5lIiksdiYmZC5zaG93bGluZSx7eDE6dSx5MTowLHgyOmEseTI6MCx0cmFuc2Zvcm06QX0pLmF0dHIoInN0cm9rZS13aWR0aCIsZC5saW5ld2lkdGgpLmNhbGwoYy5zdHJva2UsZC5saW5lY29sb3IpfSx6LnVwZGF0ZVJhZGlhbEF4aXNUaXRsZT1mdW5jdGlvbih0LGUscil7dmFyIG49dGhpcy5nZCxpPXRoaXMucmFkaXVzLGE9dGhpcy5jeCxvPXRoaXMuY3kscz1lLnJhZGlhbGF4aXMsbD10aGlzLmlkKyJ0aXRsZSIsYz12b2lkIDAhPT1yP3I6dGhpcy5yYWRpYWxBeGlzQW5nbGUsZj1QKGMpLGg9TWF0aC5jb3MoZikscD1NYXRoLnNpbihmKSxkPTA7aWYocy50aXRsZSl7dmFyIG09dS5iQm94KHRoaXMubGF5ZXJzWyJyYWRpYWwtYXhpcyJdLm5vZGUoKSkuaGVpZ2h0LGc9cy50aXRsZS5mb250LnNpemU7ZD0iY291bnRlcmNsb2Nrd2lzZSI9PT1zLnNpZGU/LW0tLjQqZzptKy44Kmd9dGhpcy5sYXllcnNbInJhZGlhbC1heGlzLXRpdGxlIl09eC5kcmF3KG4sbCx7cHJvcENvbnRhaW5lcjpzLHByb3BOYW1lOnRoaXMuaWQrIi5yYWRpYWxheGlzLnRpdGxlIixwbGFjZWhvbGRlcjpMKG4sIkNsaWNrIHRvIGVudGVyIHJhZGlhbCBheGlzIHRpdGxlIiksYXR0cmlidXRlczp7eDphK2kvMipoK2QqcCx5Om8taS8yKnArZCpoLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9LHRyYW5zZm9ybTp7cm90YXRlOi1jfX0pfSx6LnVwZGF0ZUFuZ3VsYXJBeGlzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dGhpcyxuPXIuZ2QsaT1yLmxheWVycyxhPXIucmFkaXVzLHU9ci5pbm5lclJhZGl1cyxmPXIuY3gscD1yLmN5LGQ9ZS5hbmd1bGFyYXhpcyxtPXIuYW5ndWxhckF4aXM7ci5maWxsVmlld0luaXRpYWxLZXkoImFuZ3VsYXJheGlzLnJvdGF0aW9uIixkLnJvdGF0aW9uKSxtLnNldEdlb21ldHJ5KCksbS5zZXRTY2FsZSgpO3ZhciBnPWZ1bmN0aW9uKHQpe3JldHVybiBtLnQyZyh0LngpfTsibGluZWFyIj09PW0udHlwZSYmInJhZGlhbnMiPT09bS50aGV0YXVuaXQmJihtLnRpY2swPUkobS50aWNrMCksbS5kdGljaz1JKG0uZHRpY2spKTt2YXIgdj1mdW5jdGlvbih0KXtyZXR1cm4gbChmK2EqTWF0aC5jb3ModCkscC1hKk1hdGguc2luKHQpKX0seT1oLm1ha2VMYWJlbEZucyhtLDApLmxhYmVsU3RhbmRvZmYseD17eEZuOmZ1bmN0aW9uKHQpe3ZhciBlPWcodCk7cmV0dXJuIE1hdGguY29zKGUpKnl9LHlGbjpmdW5jdGlvbih0KXt2YXIgZT1nKHQpLHI9TWF0aC5zaW4oZSk+MD8uMjoxO3JldHVybi1NYXRoLnNpbihlKSooeSt0LmZvbnRTaXplKnIpK01hdGguYWJzKE1hdGguY29zKGUpKSoodC5mb250U2l6ZSpNKX0sYW5jaG9yRm46ZnVuY3Rpb24odCl7dmFyIGU9Zyh0KSxyPU1hdGguY29zKGUpO3JldHVybiBNYXRoLmFicyhyKTwuMT8ibWlkZGxlIjpyPjA/InN0YXJ0IjoiZW5kIn0saGVpZ2h0Rm46ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWcodCk7cmV0dXJuLS41KigxK01hdGguc2luKG4pKSpyfX0sYj1EKGQpO3IuYW5ndWxhclRpY2tMYXlvdXQhPT1iJiYoaVsiYW5ndWxhci1heGlzIl0uc2VsZWN0QWxsKCIuIittLl9pZCsidGljayIpLnJlbW92ZSgpLHIuYW5ndWxhclRpY2tMYXlvdXQ9Yik7dmFyIF8sdz1oLmNhbGNUaWNrcyhtKTtpZigibGluZWFyIj09PWUuZ3JpZHNoYXBlPyhfPXcubWFwKGcpLG8uYW5nbGVEZWx0YShfWzBdLF9bMV0pPDAmJihfPV8uc2xpY2UoKS5yZXZlcnNlKCkpKTpfPW51bGwsci52YW5nbGVzPV8sImNhdGVnb3J5Ij09PW0udHlwZSYmKHc9dy5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBvLmlzQW5nbGVJbnNpZGVTZWN0b3IoZyh0KSxyLnNlY3RvckluUmFkKX0pKSksbS52aXNpYmxlKXt2YXIgVD0iaW5zaWRlIj09PW0udGlja3M/LTE6MSxrPShtLmxpbmV3aWR0aHx8MSkvMjtoLmRyYXdUaWNrcyhuLG0se3ZhbHM6dyxsYXllcjppWyJhbmd1bGFyLWF4aXMiXSxwYXRoOiJNIitUKmsrIiwwaCIrVCptLnRpY2tsZW4sdHJhbnNGbjpmdW5jdGlvbih0KXt2YXIgZT1nKHQpO3JldHVybiB2KGUpK3MoLUkoZSkpfSxjcmlzcDohMX0pLGguZHJhd0dyaWQobixtLHt2YWxzOncsbGF5ZXI6aVsiYW5ndWxhci1ncmlkIl0scGF0aDpmdW5jdGlvbih0KXt2YXIgZT1nKHQpLHI9TWF0aC5jb3MoZSksbj1NYXRoLnNpbihlKTtyZXR1cm4iTSIrW2YrdSpyLHAtdSpuXSsiTCIrW2YrYSpyLHAtYSpuXX0sdHJhbnNGbjpvLm5vb3AsY3Jpc3A6ITF9KSxoLmRyYXdMYWJlbHMobixtLHt2YWxzOncsbGF5ZXI6aVsiYW5ndWxhci1heGlzIl0scmVwb3NpdGlvbk9uVXBkYXRlOiEwLHRyYW5zRm46ZnVuY3Rpb24odCl7cmV0dXJuIHYoZyh0KSl9LGxhYmVsRm5zOnh9KX1GKGlbImFuZ3VsYXItbGluZSJdLnNlbGVjdCgicGF0aCIpLGQuc2hvd2xpbmUse2Q6ci5wYXRoU3VicGxvdCgpLHRyYW5zZm9ybTpsKGYscCl9KS5hdHRyKCJzdHJva2Utd2lkdGgiLGQubGluZXdpZHRoKS5jYWxsKGMuc3Ryb2tlLGQubGluZWNvbG9yKX0sei51cGRhdGVGeD1mdW5jdGlvbih0LGUpe3RoaXMuZ2QuX2NvbnRleHQuc3RhdGljUGxvdHx8KHRoaXMudXBkYXRlQW5ndWxhckRyYWcodCksdGhpcy51cGRhdGVSYWRpYWxEcmFnKHQsZSwwKSx0aGlzLnVwZGF0ZVJhZGlhbERyYWcodCxlLDEpLHRoaXMudXBkYXRlTWFpbkRyYWcodCkpfSx6LnVwZGF0ZU1haW5EcmFnPWZ1bmN0aW9uKHQpe3ZhciBlLHIscz10aGlzLGM9cy5nZCx1PXMubGF5ZXJzLGY9dC5fem9vbWxheWVyLGg9Uy5NSU5aT09NLHA9Uy5PRkZFREdFLGQ9cy5yYWRpdXMsbT1zLmlubmVyUmFkaXVzLHg9cy5jeCxUPXMuY3ksaz1zLmN4eCxBPXMuY3l5LE09cy5zZWN0b3JJblJhZCxMPXMudmFuZ2xlcyxDPXMucmFkaWFsQXhpcyxQPUUuY2xhbXBUaW55LEk9RS5maW5kWFlhdExlbmd0aCxPPUUuZmluZEVuY2xvc2luZ1ZlcnRleEFuZ2xlcyx6PVMuY29ybmVySGFsZldpZHRoLEQ9Uy5jb3JuZXJMZW4vMixSPWcubWFrZURyYWdnZXIodSwicGF0aCIsIm1haW5kcmFnIiwiY3Jvc3NoYWlyIik7bi5zZWxlY3QoUikuYXR0cigiZCIscy5wYXRoU3VicGxvdCgpKS5hdHRyKCJ0cmFuc2Zvcm0iLGwoeCxUKSk7dmFyIEYsQixOLGosVSxWLEgscSxHLFk9e2VsZW1lbnQ6UixnZDpjLHN1YnBsb3Q6cy5pZCxwbG90aW5mbzp7aWQ6cy5pZCx4YXhpczpzLnhheGlzLHlheGlzOnMueWF4aXN9LHhheGVzOltzLnhheGlzXSx5YXhlczpbcy55YXhpc119O2Z1bmN0aW9uIFcodCxlKXtyZXR1cm4gTWF0aC5zcXJ0KHQqdCtlKmUpfWZ1bmN0aW9uIFgodCxlKXtyZXR1cm4gVyh0LWssZS1BKX1mdW5jdGlvbiBaKHQsZSl7cmV0dXJuIE1hdGguYXRhbjIoQS1lLHQtayl9ZnVuY3Rpb24gSih0LGUpe3JldHVyblt0Kk1hdGguY29zKGUpLHQqTWF0aC5zaW4oLWUpXX1mdW5jdGlvbiBLKHQsZSl7aWYoMD09PXQpcmV0dXJuIHMucGF0aFNlY3RvcigyKnopO3ZhciByPUQvdCxuPWUtcixpPWUrcixhPU1hdGgubWF4KDAsTWF0aC5taW4odCxkKSksbz1hLXosbD1hK3o7cmV0dXJuIk0iK0oobyxuKSsiQSIrW28sb10rIiAwLDAsMCAiK0oobyxpKSsiTCIrSihsLGkpKyJBIitbbCxsXSsiIDAsMCwxICIrSihsLG4pKyJaIn1mdW5jdGlvbiBRKHQsZSxyKXtpZigwPT09dClyZXR1cm4gcy5wYXRoU2VjdG9yKDIqeik7dmFyIG4saSxhPUoodCxlKSxvPUoodCxyKSxsPVAoKGFbMF0rb1swXSkvMiksYz1QKChhWzFdK29bMV0pLzIpO2lmKGwmJmMpe3ZhciB1PWMvbCxmPS0xL3UsaD1JKHosdSxsLGMpO249SShELGYsaFswXVswXSxoWzBdWzFdKSxpPUkoRCxmLGhbMV1bMF0saFsxXVsxXSl9ZWxzZXt2YXIgcCxkO2M/KHA9RCxkPXopOihwPXosZD1EKSxuPVtbbC1wLGMtZF0sW2wrcCxjLWRdXSxpPVtbbC1wLGMrZF0sW2wrcCxjK2RdXX1yZXR1cm4iTSIrbi5qb2luKCJMIikrIkwiK2kucmV2ZXJzZSgpLmpvaW4oIkwiKSsiWiJ9ZnVuY3Rpb24gJCh0LGUpe3JldHVybiBlPU1hdGgubWF4KE1hdGgubWluKGUsZCksbSksdDxwP3Q9MDpkLXQ8cD90PWQ6ZTxwP2U9MDpkLWU8cCYmKGU9ZCksTWF0aC5hYnMoZS10KT5oPyh0PGU/KE49dCxqPWUpOihOPWUsaj10KSwhMCk6KE49bnVsbCxqPW51bGwsITEpfWZ1bmN0aW9uIHR0KHQsZSl7dD10fHxVLGU9ZXx8Ik0wLDBaIixxLmF0dHIoImQiLHQpLEcuYXR0cigiZCIsZSksZy50cmFuc2l0aW9uWm9vbWJveChxLEcsVixIKSxWPSEwO3ZhciByPXt9O2F0KHIpLGMuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixyKX1mdW5jdGlvbiBldCh0LG4pe3ZhciBpLGEsbz1GKyh0Kj1lKSxsPUIrKG4qPXIpLGM9WChGLEIpLHU9TWF0aC5taW4oWChvLGwpLGQpLGY9WihGLEIpOyQoYyx1KSYmKGk9VStzLnBhdGhTZWN0b3IoaiksTiYmKGkrPXMucGF0aFNlY3RvcihOKSksYT1LKE4sZikrSyhqLGYpKSx0dChpLGEpfWZ1bmN0aW9uIHJ0KHQsZSxyLG4pe3ZhciBpPUUuZmluZEludGVyc2VjdGlvblhZKHIsbixyLFt0LWssQS1lXSk7cmV0dXJuIFcoaVswXSxpWzFdKX1mdW5jdGlvbiBudCh0LGUpe3ZhciByLG4saT1GK3QsYT1CK2Usbz1aKEYsQiksbD1aKGksYSksYz1PKG8sTCksdT1PKGwsTCk7JChydChGLEIsY1swXSxjWzFdKSxNYXRoLm1pbihydChpLGEsdVswXSx1WzFdKSxkKSkmJihyPVUrcy5wYXRoU2VjdG9yKGopLE4mJihyKz1zLnBhdGhTZWN0b3IoTikpLG49W1EoTixjWzBdLGNbMV0pLFEoaixjWzBdLGNbMV0pXS5qb2luKCIgIikpLHR0KHIsbil9ZnVuY3Rpb24gaXQoKXtpZihnLnJlbW92ZVpvb21ib3goYyksbnVsbCE9PU4mJm51bGwhPT1qKXt2YXIgdD17fTthdCh0KSxnLnNob3dEb3VibGVDbGlja05vdGlmaWVyKGMpLGEuY2FsbCgiX2d1aVJlbGF5b3V0IixjLHQpfX1mdW5jdGlvbiBhdCh0KXt2YXIgZT1DLl9ybCxyPShlWzFdLWVbMF0pLygxLW0vZCkvZCxuPVtlWzBdKyhOLW0pKnIsZVswXSsoai1tKSpyXTt0W3MuaWQrIi5yYWRpYWxheGlzLnJhbmdlIl09bn1mdW5jdGlvbiBvdCh0LGUpe3ZhciByPWMuX2Z1bGxMYXlvdXQuY2xpY2ttb2RlO2lmKGcucmVtb3ZlWm9vbWJveChjKSwyPT09dCl7dmFyIG49e307Zm9yKHZhciBpIGluIHMudmlld0luaXRpYWwpbltzLmlkKyIuIitpXT1zLnZpZXdJbml0aWFsW2ldO2MuZW1pdCgicGxvdGx5X2RvdWJsZWNsaWNrIixudWxsKSxhLmNhbGwoIl9ndWlSZWxheW91dCIsYyxuKX1yLmluZGV4T2YoInNlbGVjdCIpPi0xJiYxPT09dCYmXyhlLGMsW3MueGF4aXNdLFtzLnlheGlzXSxzLmlkLFkpLHIuaW5kZXhPZigiZXZlbnQiKT4tMSYmeS5jbGljayhjLGUscy5pZCl9WS5wcmVwRm49ZnVuY3Rpb24odCxuLGEpe3ZhciBsPWMuX2Z1bGxMYXlvdXQuZHJhZ21vZGUsdT1SLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO2MuX2Z1bGxMYXlvdXQuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKGMpO3ZhciBoPWMuX2Z1bGxMYXlvdXQuX2ludlRyYW5zZm9ybTtlPWMuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWCxyPWMuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWTt2YXIgcD1vLmFwcGx5M0RUcmFuc2Zvcm0oaCkobi11LmxlZnQsYS11LnRvcCk7aWYoRj1wWzBdLEI9cFsxXSxMKXt2YXIgbT1FLmZpbmRQb2x5Z29uT2Zmc2V0KGQsTVswXSxNWzFdLEwpO0YrPWsrbVswXSxCKz1BK21bMV19c3dpdGNoKGwpe2Nhc2Uiem9vbSI6WS5tb3ZlRm49TD9udDpldCxZLmNsaWNrRm49b3QsWS5kb25lRm49aXQsZnVuY3Rpb24oKXtOPW51bGwsaj1udWxsLFU9cy5wYXRoU3VicGxvdCgpLFY9ITE7dmFyIHQ9Yy5fZnVsbExheW91dFtzLmlkXTtIPWkodC5iZ2NvbG9yKS5nZXRMdW1pbmFuY2UoKSwocT1nLm1ha2Vab29tYm94KGYsSCx4LFQsVSkpLmF0dHIoImZpbGwtcnVsZSIsImV2ZW5vZGQiKSxHPWcubWFrZUNvcm5lcnMoZix4LFQpLHcoYyl9KCk7YnJlYWs7Y2FzZSJzZWxlY3QiOmNhc2UibGFzc28iOmIodCxuLGEsWSxsKX19LFIub25tb3VzZW1vdmU9ZnVuY3Rpb24odCl7eS5ob3ZlcihjLHQscy5pZCksYy5fZnVsbExheW91dC5fbGFzdGhvdmVyPVIsYy5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PXMuaWR9LFIub25tb3VzZW91dD1mdW5jdGlvbih0KXtjLl9kcmFnZ2luZ3x8di51bmhvdmVyKGMsdCl9LHYuaW5pdChZKX0sei51cGRhdGVSYWRpYWxEcmFnPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10aGlzLGM9aS5nZCx1PWkubGF5ZXJzLGY9aS5yYWRpdXMsaD1pLmlubmVyUmFkaXVzLHA9aS5jeCxkPWkuY3ksbT1pLnJhZGlhbEF4aXMseT1TLnJhZGlhbERyYWdCb3hTaXplLHg9eS8yO2lmKG0udmlzaWJsZSl7dmFyIGIsXyxULE09UChpLnJhZGlhbEF4aXNBbmdsZSksRT1tLl9ybCxMPUVbMF0sQz1FWzFdLE89RVtyXSx6PS43NSooRVsxXS1FWzBdKS8oMS1lLmhvbGUpL2Y7cj8oYj1wKyhmK3gpKk1hdGguY29zKE0pLF89ZC0oZit4KSpNYXRoLnNpbihNKSxUPSJyYWRpYWxkcmFnIik6KGI9cCsoaC14KSpNYXRoLmNvcyhNKSxfPWQtKGgteCkqTWF0aC5zaW4oTSksVD0icmFkaWFsZHJhZy1pbm5lciIpO3ZhciBELEIsTixqPWcubWFrZVJlY3REcmFnZ2VyKHUsVCwiY3Jvc3NoYWlyIiwteCwteCx5LHkpLFU9e2VsZW1lbnQ6aixnZDpjfTtGKG4uc2VsZWN0KGopLG0udmlzaWJsZSYmaDxmLHt0cmFuc2Zvcm06bChiLF8pfSksVS5wcmVwRm49ZnVuY3Rpb24oKXtEPW51bGwsQj1udWxsLE49bnVsbCxVLm1vdmVGbj1WLFUuZG9uZUZuPUgsdyhjKX0sVS5jbGFtcEZuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIE1hdGguc3FydCh0KnQrZSplKTxTLk1JTkRSQUcmJih0PTAsZT0wKSxbdCxlXX0sdi5pbml0KFUpfWZ1bmN0aW9uIFYodCxlKXtpZihEKUQodCxlKTtlbHNle3ZhciBuPVt0LC1lXSxhPVtNYXRoLmNvcyhNKSxNYXRoLnNpbihNKV0scz1NYXRoLmFicyhvLmRvdChuLGEpL01hdGguc3FydChvLmRvdChuLG4pKSk7aXNOYU4ocyl8fChEPXM8LjU/cTpHKX12YXIgbD17fTshZnVuY3Rpb24odCl7bnVsbCE9PUI/dFtpLmlkKyIucmFkaWFsYXhpcy5hbmdsZSJdPUI6bnVsbCE9PU4mJih0W2kuaWQrIi5yYWRpYWxheGlzLnJhbmdlWyIrcisiXSJdPU4pfShsKSxjLmVtaXQoInBsb3RseV9yZWxheW91dGluZyIsbCl9ZnVuY3Rpb24gSCgpe251bGwhPT1CP2EuY2FsbCgiX2d1aVJlbGF5b3V0IixjLGkuaWQrIi5yYWRpYWxheGlzLmFuZ2xlIixCKTpudWxsIT09TiYmYS5jYWxsKCJfZ3VpUmVsYXlvdXQiLGMsaS5pZCsiLnJhZGlhbGF4aXMucmFuZ2VbIityKyJdIixOKX1mdW5jdGlvbiBxKHQsZSl7aWYoMCE9PXIpe3ZhciBuPWIrdCxhPV8rZTtCPU1hdGguYXRhbjIoZC1hLG4tcCksaS52YW5nbGVzJiYoQj1SKEIsaS52YW5nbGVzKSksQj1JKEIpO3ZhciBvPWwocCxkKStzKC1CKTt1WyJyYWRpYWwtYXhpcyJdLmF0dHIoInRyYW5zZm9ybSIsbyksdVsicmFkaWFsLWxpbmUiXS5zZWxlY3QoImxpbmUiKS5hdHRyKCJ0cmFuc2Zvcm0iLG8pO3ZhciBjPWkuZ2QuX2Z1bGxMYXlvdXQsZj1jW2kuaWRdO2kudXBkYXRlUmFkaWFsQXhpc1RpdGxlKGMsZixCKX19ZnVuY3Rpb24gRyh0LGUpe3ZhciBuPW8uZG90KFt0LC1lXSxbTWF0aC5jb3MoTSksTWF0aC5zaW4oTSldKTtpZihOPU8teipuLHo+MD09KHI/Tj5MOk48Qykpe3ZhciBzPWMuX2Z1bGxMYXlvdXQsbD1zW2kuaWRdO20ucmFuZ2Vbcl09TixtLl9ybFtyXT1OLGkudXBkYXRlUmFkaWFsQXhpcyhzLGwpLGkueGF4aXMuc2V0UmFuZ2UoKSxpLnhheGlzLnNldFNjYWxlKCksaS55YXhpcy5zZXRSYW5nZSgpLGkueWF4aXMuc2V0U2NhbGUoKTt2YXIgdT0hMTtmb3IodmFyIGYgaW4gaS50cmFjZUhhc2gpe3ZhciBoPWkudHJhY2VIYXNoW2ZdLHA9by5maWx0ZXJWaXNpYmxlKGgpO2hbMF1bMF0udHJhY2UuX21vZHVsZS5wbG90KGMsaSxwLGwpLGEudHJhY2VJcyhmLCJnbCIpJiZwLmxlbmd0aCYmKHU9ITApfXUmJihrKGMpLEEoYykpfWVsc2UgTj1udWxsfX0sei51cGRhdGVBbmd1bGFyRHJhZz1mdW5jdGlvbih0KXt2YXIgZT10aGlzLHI9ZS5nZCxpPWUubGF5ZXJzLGM9ZS5yYWRpdXMsZj1lLmFuZ3VsYXJBeGlzLGg9ZS5jeCxwPWUuY3ksZD1lLmN4eCxtPWUuY3l5LHk9Uy5hbmd1bGFyRHJhZ0JveFNpemUseD1nLm1ha2VEcmFnZ2VyKGksInBhdGgiLCJhbmd1bGFyZHJhZyIsIm1vdmUiKSxiPXtlbGVtZW50OngsZ2Q6cn07ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBNYXRoLmF0YW4yKG0reS1lLHQtZC15KX1uLnNlbGVjdCh4KS5hdHRyKCJkIixlLnBhdGhBbm51bHVzKGMsYyt5KSkuYXR0cigidHJhbnNmb3JtIixsKGgscCkpLmNhbGwoVCwibW92ZSIpO3ZhciBNLEUsTCxDLFAsTyx6PWkuZnJvbnRwbG90LnNlbGVjdCgiLnNjYXR0ZXJsYXllciIpLnNlbGVjdEFsbCgiLnRyYWNlIiksRD16LnNlbGVjdEFsbCgiLnBvaW50IiksUj16LnNlbGVjdEFsbCgiLnRleHRwb2ludCIpO2Z1bmN0aW9uIEYoYyxnKXt2YXIgdj1lLmdkLl9mdWxsTGF5b3V0LHk9dltlLmlkXSx4PV8oTStjKnQuX2ludlNjYWxlWCxFK2cqdC5faW52U2NhbGVZKSxiPUkoeC1PKTtpZihDPUwrYixpLmZyb250cGxvdC5hdHRyKCJ0cmFuc2Zvcm0iLGwoZS54T2Zmc2V0MixlLnlPZmZzZXQyKStzKFstYixkLG1dKSksZS52YW5nbGVzKXtQPWUucmFkaWFsQXhpc0FuZ2xlK2I7dmFyIHc9bChoLHApK3MoLWIpLFQ9bChoLHApK3MoLVApO2kuYmcuYXR0cigidHJhbnNmb3JtIix3KSxpWyJyYWRpYWwtZ3JpZCJdLmF0dHIoInRyYW5zZm9ybSIsdyksaVsicmFkaWFsLWF4aXMiXS5hdHRyKCJ0cmFuc2Zvcm0iLFQpLGlbInJhZGlhbC1saW5lIl0uc2VsZWN0KCJsaW5lIikuYXR0cigidHJhbnNmb3JtIixUKSxlLnVwZGF0ZVJhZGlhbEF4aXNUaXRsZSh2LHksUCl9ZWxzZSBlLmNsaXBQYXRocy5mb3JUcmFjZXMuc2VsZWN0KCJwYXRoIikuYXR0cigidHJhbnNmb3JtIixsKGQsbSkrcyhiKSk7RC5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpLGU9dS5nZXRUcmFuc2xhdGUodCk7dC5hdHRyKCJ0cmFuc2Zvcm0iLGwoZS54LGUueSkrcyhbYl0pKX0pKSxSLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT10LnNlbGVjdCgidGV4dCIpLHI9dS5nZXRUcmFuc2xhdGUodCk7dC5hdHRyKCJ0cmFuc2Zvcm0iLHMoW2IsZS5hdHRyKCJ4IiksZS5hdHRyKCJ5IildKStsKHIueCxyLnkpKX0pKSxmLnJvdGF0aW9uPW8ubW9kSGFsZihDLDM2MCksZS51cGRhdGVBbmd1bGFyQXhpcyh2LHkpLGUuX2hhc0NsaXBPbkF4aXNGYWxzZSYmIW8uaXNGdWxsQ2lyY2xlKGUuc2VjdG9ySW5SYWQpJiZ6LmNhbGwodS5oaWRlT3V0c2lkZVJhbmdlUG9pbnRzLGUpO3ZhciBTPSExO2Zvcih2YXIgRiBpbiBlLnRyYWNlSGFzaClpZihhLnRyYWNlSXMoRiwiZ2wiKSl7dmFyIE49ZS50cmFjZUhhc2hbRl0saj1vLmZpbHRlclZpc2libGUoTik7TlswXVswXS50cmFjZS5fbW9kdWxlLnBsb3QocixlLGoseSksai5sZW5ndGgmJihTPSEwKX1TJiYoayhyKSxBKHIpKTt2YXIgVT17fTtCKFUpLHIuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixVKX1mdW5jdGlvbiBCKHQpe3RbZS5pZCsiLmFuZ3VsYXJheGlzLnJvdGF0aW9uIl09QyxlLnZhbmdsZXMmJih0W2UuaWQrIi5yYWRpYWxheGlzLmFuZ2xlIl09UCl9ZnVuY3Rpb24gTigpe1Iuc2VsZWN0KCJ0ZXh0IikuYXR0cigidHJhbnNmb3JtIixudWxsKTt2YXIgdD17fTtCKHQpLGEuY2FsbCgiX2d1aVJlbGF5b3V0IixyLHQpfWIucHJlcEZuPWZ1bmN0aW9uKG4saSxhKXt2YXIgcz10W2UuaWRdO0w9cy5hbmd1bGFyYXhpcy5yb3RhdGlvbjt2YXIgbD14LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO009aS1sLmxlZnQsRT1hLWwudG9wLHIuX2Z1bGxMYXlvdXQuX2NhbGNJbnZlcnNlVHJhbnNmb3JtKHIpO3ZhciBjPW8uYXBwbHkzRFRyYW5zZm9ybSh0Ll9pbnZUcmFuc2Zvcm0pKE0sRSk7TT1jWzBdLEU9Y1sxXSxPPV8oTSxFKSxiLm1vdmVGbj1GLGIuZG9uZUZuPU4sdyhyKX0sZS52YW5nbGVzJiYhby5pc0Z1bGxDaXJjbGUoZS5zZWN0b3JJblJhZCkmJihiLnByZXBGbj1vLm5vb3AsVChuLnNlbGVjdCh4KSxudWxsKSksdi5pbml0KGIpfSx6LmlzUHRJbnNpZGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zZWN0b3JJblJhZCxyPXRoaXMudmFuZ2xlcyxuPXRoaXMuYW5ndWxhckF4aXMuYzJnKHQudGhldGEpLGk9dGhpcy5yYWRpYWxBeGlzLGE9aS5jMmwodC5yKSxzPWkuX3JsO3JldHVybihyP0UuaXNQdEluc2lkZVBvbHlnb246by5pc1B0SW5zaWRlU2VjdG9yKShhLG4scyxlLHIpfSx6LnBhdGhBcmM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zZWN0b3JJblJhZCxyPXRoaXMudmFuZ2xlcztyZXR1cm4ocj9FLnBhdGhQb2x5Z29uOm8ucGF0aEFyYykodCxlWzBdLGVbMV0scil9LHoucGF0aFNlY3Rvcj1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNlY3RvckluUmFkLHI9dGhpcy52YW5nbGVzO3JldHVybihyP0UucGF0aFBvbHlnb246by5wYXRoU2VjdG9yKSh0LGVbMF0sZVsxXSxyKX0sei5wYXRoQW5udWx1cz1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuc2VjdG9ySW5SYWQsbj10aGlzLnZhbmdsZXM7cmV0dXJuKG4/RS5wYXRoUG9seWdvbkFubnVsdXM6by5wYXRoQW5udWx1cykodCxlLHJbMF0sclsxXSxuKX0sei5wYXRoU3VicGxvdD1mdW5jdGlvbigpe3ZhciB0PXRoaXMuaW5uZXJSYWRpdXMsZT10aGlzLnJhZGl1cztyZXR1cm4gdD90aGlzLnBhdGhBbm51bHVzKHQsZSk6dGhpcy5wYXRoU2VjdG9yKGUpfSx6LmZpbGxWaWV3SW5pdGlhbEtleT1mdW5jdGlvbih0LGUpe3QgaW4gdGhpcy52aWV3SW5pdGlhbHx8KHRoaXMudmlld0luaXRpYWxbdF09ZSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCI6NjU4LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9jb21wb25lbnRzL3RpdGxlcyI6NzM3LCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo3NDQsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvY2xlYXJfZ2xfY2FudmFzZXMiOjc2MCwiLi4vLi4vbGliL3NldGN1cnNvciI6Nzk3LCIuLi8uLi9wbG90X2FwaS9zdWJyb3V0aW5lcyI6ODE3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo4MjYsIi4uL2NhcnRlc2lhbi9kcmFnYm94Ijo4MzYsIi4uL2NhcnRlc2lhbi9zZWxlY3QiOjg0NywiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0Ijo4NDgsIi4uL3Bsb3RzIjo4OTAsIi4vY29uc3RhbnRzIjo4OTEsIi4vaGVscGVycyI6ODkyLCIuL3NldF9jb252ZXJ0Ijo4OTcsIkBwbG90bHkvZDMiOjU4LHRpbnljb2xvcjI6NTcyfV0sODk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0IiksYT1uLmRlZzJyYWQsbz1uLnJhZDJkZWc7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtzd2l0Y2goaSh0LHIpLHQuX2lkKXtjYXNlIngiOmNhc2UicmFkaWFsYXhpcyI6IWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5fc3VicGxvdDt0LnNldEdlb21ldHJ5PWZ1bmN0aW9uKCl7dmFyIGU9dC5fcmxbMF0sbj10Ll9ybFsxXSxpPXIuaW5uZXJSYWRpdXMsYT0oci5yYWRpdXMtaSkvKG4tZSksbz1pL2Escz1lPm4/ZnVuY3Rpb24odCl7cmV0dXJuIHQ8PTB9OmZ1bmN0aW9uKHQpe3JldHVybiB0Pj0wfTt0LmMyZz1mdW5jdGlvbihyKXt2YXIgbj10LmMybChyKS1lO3JldHVybihzKG4pP246MCkrb30sdC5nMmM9ZnVuY3Rpb24ocil7cmV0dXJuIHQubDJjKHIrZS1vKX0sdC5nMnA9ZnVuY3Rpb24odCl7cmV0dXJuIHQqYX0sdC5jMnA9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZzJwKHQuYzJnKGUpKX19fSh0LGUpO2JyZWFrO2Nhc2UiYW5ndWxhcmF4aXMiOiFmdW5jdGlvbih0LGUpe3ZhciByPXQudHlwZTtpZigibGluZWFyIj09PXIpe3ZhciBpPXQuZDJjLHM9dC5jMmQ7dC5kMmM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZnVuY3Rpb24odCxlKXtyZXR1cm4iZGVncmVlcyI9PT1lP2EodCk6dH0oaSh0KSxlKX0sdC5jMmQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gcyhmdW5jdGlvbih0LGUpe3JldHVybiJkZWdyZWVzIj09PWU/byh0KTp0fSh0LGUpKX19dC5tYWtlQ2FsY2RhdGE9ZnVuY3Rpb24oZSxpKXt2YXIgYSxvLHM9ZVtpXSxsPWUuX2xlbmd0aCxjPWZ1bmN0aW9uKHIpe3JldHVybiB0LmQyYyhyLGUudGhldGF1bml0KX07aWYocyl7aWYobi5pc1R5cGVkQXJyYXkocykmJiJsaW5lYXIiPT09cil7aWYobD09PXMubGVuZ3RoKXJldHVybiBzO2lmKHMuc3ViYXJyYXkpcmV0dXJuIHMuc3ViYXJyYXkoMCxsKX1mb3IoYT1uZXcgQXJyYXkobCksbz0wO288bDtvKyspYVtvXT1jKHNbb10pfWVsc2V7dmFyIHU9aSsiMCIsZj0iZCIraSxoPXUgaW4gZT9jKGVbdV0pOjAscD1lW2ZdP2MoZVtmXSk6KHQucGVyaW9kfHwyKk1hdGguUEkpL2w7Zm9yKGE9bmV3IEFycmF5KGwpLG89MDtvPGw7bysrKWFbb109aCtvKnB9cmV0dXJuIGF9LHQuc2V0R2VvbWV0cnk9ZnVuY3Rpb24oKXt2YXIgaSxzLGwsYyx1PWUuc2VjdG9yLGY9dS5tYXAoYSksaD17Y2xvY2t3aXNlOi0xLGNvdW50ZXJjbG9ja3dpc2U6MX1bdC5kaXJlY3Rpb25dLHA9YSh0LnJvdGF0aW9uKSxkPWZ1bmN0aW9uKHQpe3JldHVybiBoKnQrcH0sbT1mdW5jdGlvbih0KXtyZXR1cm4odC1wKS9ofTtzd2l0Y2gocil7Y2FzZSJsaW5lYXIiOnM9aT1uLmlkZW50aXR5LGM9YSxsPW8sdC5yYW5nZT1uLmlzRnVsbENpcmNsZShmKT9bdVswXSx1WzBdKzM2MF06Zi5tYXAobSkubWFwKG8pO2JyZWFrO2Nhc2UiY2F0ZWdvcnkiOnZhciBnPXQuX2NhdGVnb3JpZXMubGVuZ3RoLHY9dC5wZXJpb2Q/TWF0aC5tYXgodC5wZXJpb2QsZyk6ZzswPT09diYmKHY9MSkscz1jPWZ1bmN0aW9uKHQpe3JldHVybiAyKnQqTWF0aC5QSS92fSxpPWw9ZnVuY3Rpb24odCl7cmV0dXJuIHQqdi9NYXRoLlBJLzJ9LHQucmFuZ2U9WzAsdl19dC5jMmc9ZnVuY3Rpb24odCl7cmV0dXJuIGQocyh0KSl9LHQuZzJjPWZ1bmN0aW9uKHQpe3JldHVybiBpKG0odCkpfSx0LnQyZz1mdW5jdGlvbih0KXtyZXR1cm4gZChjKHQpKX0sdC5nMnQ9ZnVuY3Rpb24odCl7cmV0dXJuIGwobSh0KSl9fX0odCxlKX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiOjg0OH1dLDg5ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxhPXQoIi4vZG9tYWluIikuZGVmYXVsdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzLGwsYz1vLnR5cGUsdT1vLmF0dHJpYnV0ZXMsZj1vLmhhbmRsZURlZmF1bHRzLGg9by5wYXJ0aXRpb258fCJ4IixwPWUuX3N1YnBsb3RzW2NdLGQ9cC5sZW5ndGgsbT1kJiZwWzBdLnJlcGxhY2UoL1xkKyQvLCIiKTtmdW5jdGlvbiBnKHQsZSl7cmV0dXJuIG4uY29lcmNlKHMsbCx1LHQsZSl9Zm9yKHZhciB2PTA7djxkO3YrKyl7dmFyIHk9cFt2XTtzPXRbeV0/dFt5XTp0W3ldPXt9LGw9aS5uZXdDb250YWluZXIoZSx5LG0pLGcoInVpcmV2aXNpb24iLGUudWlyZXZpc2lvbik7dmFyIHg9e307eFtoXT1bdi9kLCh2KzEpL2RdLGEobCxlLGcseCksby5pZD15LGYocyxsLGcsbyl9fX0seyIuLi9saWIiOjc3NiwiLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuL2RvbWFpbiI6ODU1fV0sODk5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2NvbnN0YW50cy9kb2NzIik7bi5GT1JNQVRfTElOSyxuLkRBVEVfRk9STUFUX0xJTks7ZnVuY3Rpb24gaSh0KXt2YXIgZT10LmRlc2NyaXB0aW9uPyIgIit0LmRlc2NyaXB0aW9uOiIiLHI9dC5rZXlzfHxbXTtpZihyLmxlbmd0aD4wKXtmb3IodmFyIG49W10saT0wO2k8ci5sZW5ndGg7aSsrKW5baV09ImAiK3JbaV0rImAiO2UrPSJGaW5hbGx5LCB0aGUgdGVtcGxhdGUgc3RyaW5nIGhhcyBhY2Nlc3MgdG8gIixlPTE9PT1yLmxlbmd0aD8idmFyaWFibGUgIituWzBdOiJ2YXJpYWJsZXMgIituLnNsaWNlKDAsLTEpLmpvaW4oIiwgIikrIiBhbmQgIituLnNsaWNlKC0xKSsiLiJ9cmV0dXJuIGV9ci5ob3ZlcnRlbXBsYXRlQXR0cnM9ZnVuY3Rpb24odCxlKXt0PXR8fHt9O2koZT1lfHx7fSk7dmFyIHI9e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZTp0LmVkaXRUeXBlfHwibm9uZSJ9O3JldHVybiExIT09dC5hcnJheU9rJiYoci5hcnJheU9rPSEwKSxyfSxyLnRleHR0ZW1wbGF0ZUF0dHJzPWZ1bmN0aW9uKHQsZSl7dD10fHx7fTtpKGU9ZXx8e30pO3ZhciByPXt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6dC5lZGl0VHlwZXx8ImNhbGMifTtyZXR1cm4hMSE9PXQuYXJyYXlPayYmKHIuYXJyYXlPaz0hMCkscn19LHsiLi4vY29uc3RhbnRzL2RvY3MiOjc0N31dLDkwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3Rlcm5hcnkiKSxpPXQoIi4uLy4uL3Bsb3RzL2dldF9kYXRhIikuZ2V0U3VicGxvdENhbGNEYXRhLGE9dCgiLi4vLi4vbGliIikuY291bnRlclJlZ2V4O3IubmFtZT0idGVybmFyeSI7dmFyIG89ci5hdHRyPSJzdWJwbG90IjtyLmlkUm9vdD0idGVybmFyeSIsci5pZFJlZ2V4PXIuYXR0clJlZ2V4PWEoInRlcm5hcnkiKSwoci5hdHRyaWJ1dGVzPXt9KVtvXT17dmFsVHlwZToic3VicGxvdGlkIixkZmx0OiJ0ZXJuYXJ5IixlZGl0VHlwZToiY2FsYyJ9LHIubGF5b3V0QXR0cmlidXRlcz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksci5zdXBwbHlMYXlvdXREZWZhdWx0cz10KCIuL2xheW91dF9kZWZhdWx0cyIpLHIucGxvdD1mdW5jdGlvbih0KXtmb3IodmFyIGU9dC5fZnVsbExheW91dCxyPXQuY2FsY2RhdGEsYT1lLl9zdWJwbG90cy50ZXJuYXJ5LG89MDtvPGEubGVuZ3RoO28rKyl7dmFyIHM9YVtvXSxsPWkociwidGVybmFyeSIscyksYz1lW3NdLl9zdWJwbG90O2N8fChjPW5ldyBuKHtpZDpzLGdyYXBoRGl2OnQsY29udGFpbmVyOmUuX3Rlcm5hcnlsYXllci5ub2RlKCl9LGUpLGVbc10uX3N1YnBsb3Q9YyksYy5wbG90KGwsZSx0Ll9wcm9taXNlcyl9fSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT1uLl9zdWJwbG90cy50ZXJuYXJ5fHxbXSxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciBvPWlbYV0scz1uW29dLl9zdWJwbG90OyFlW29dJiZzJiYocy5wbG90Q29udGFpbmVyLnJlbW92ZSgpLHMuY2xpcERlZi5yZW1vdmUoKSxzLmNsaXBEZWZSZWxhdGl2ZS5yZW1vdmUoKSxzLmxheWVyc1siYS10aXRsZSJdLnJlbW92ZSgpLHMubGF5ZXJzWyJiLXRpdGxlIl0ucmVtb3ZlKCkscy5sYXllcnNbImMtdGl0bGUiXS5yZW1vdmUoKSl9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiOjg2NCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6OTAxLCIuL2xheW91dF9kZWZhdWx0cyI6OTAyLCIuL3Rlcm5hcnkiOjkwM31dLDkwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKSxpPXQoIi4uL2RvbWFpbiIpLmF0dHJpYnV0ZXMsYT10KCIuLi9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGw9e3RpdGxlOnt0ZXh0OmEudGl0bGUudGV4dCxmb250OmEudGl0bGUuZm9udH0sY29sb3I6YS5jb2xvcix0aWNrbW9kZTphLnRpY2ttb2RlLG50aWNrczpzKHt9LGEubnRpY2tzLHtkZmx0OjYsbWluOjF9KSx0aWNrMDphLnRpY2swLGR0aWNrOmEuZHRpY2ssdGlja3ZhbHM6YS50aWNrdmFscyx0aWNrdGV4dDphLnRpY2t0ZXh0LHRpY2tzOmEudGlja3MsdGlja2xlbjphLnRpY2tsZW4sdGlja3dpZHRoOmEudGlja3dpZHRoLHRpY2tjb2xvcjphLnRpY2tjb2xvcixzaG93dGlja2xhYmVsczphLnNob3d0aWNrbGFiZWxzLHNob3d0aWNrcHJlZml4OmEuc2hvd3RpY2twcmVmaXgsdGlja3ByZWZpeDphLnRpY2twcmVmaXgsc2hvd3RpY2tzdWZmaXg6YS5zaG93dGlja3N1ZmZpeCx0aWNrc3VmZml4OmEudGlja3N1ZmZpeCxzaG93ZXhwb25lbnQ6YS5zaG93ZXhwb25lbnQsZXhwb25lbnRmb3JtYXQ6YS5leHBvbmVudGZvcm1hdCxtaW5leHBvbmVudDphLm1pbmV4cG9uZW50LHNlcGFyYXRldGhvdXNhbmRzOmEuc2VwYXJhdGV0aG91c2FuZHMsdGlja2ZvbnQ6YS50aWNrZm9udCx0aWNrYW5nbGU6YS50aWNrYW5nbGUsdGlja2Zvcm1hdDphLnRpY2tmb3JtYXQsdGlja2Zvcm1hdHN0b3BzOmEudGlja2Zvcm1hdHN0b3BzLGhvdmVyZm9ybWF0OmEuaG92ZXJmb3JtYXQsc2hvd2xpbmU6cyh7fSxhLnNob3dsaW5lLHtkZmx0OiEwfSksbGluZWNvbG9yOmEubGluZWNvbG9yLGxpbmV3aWR0aDphLmxpbmV3aWR0aCxzaG93Z3JpZDpzKHt9LGEuc2hvd2dyaWQse2RmbHQ6ITB9KSxncmlkY29sb3I6YS5ncmlkY29sb3IsZ3JpZHdpZHRoOmEuZ3JpZHdpZHRoLGxheWVyOmEubGF5ZXIsbWluOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxtaW46MH0sX2RlcHJlY2F0ZWQ6e3RpdGxlOmEuX2RlcHJlY2F0ZWQudGl0bGUsdGl0bGVmb250OmEuX2RlcHJlY2F0ZWQudGl0bGVmb250fX0sYz1lLmV4cG9ydHM9byh7ZG9tYWluOmkoe25hbWU6InRlcm5hcnkifSksYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6bi5iYWNrZ3JvdW5kfSxzdW06e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLG1pbjowfSxhYXhpczpsLGJheGlzOmwsY2F4aXM6bH0sInBsb3QiLCJmcm9tLXJvb3QiKTtjLnVpcmV2aXNpb249e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6Im5vbmUifSxjLmFheGlzLnVpcmV2aXNpb249Yy5iYXhpcy51aXJldmlzaW9uPWMuY2F4aXMudWlyZXZpc2lvbj17dmFsVHlwZToiYW55IixlZGl0VHlwZToibm9uZSJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyI6NjM4LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDIsIi4uL2RvbWFpbiI6ODU1fV0sOTAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vc3VicGxvdF9kZWZhdWx0cyIpLHM9dCgiLi4vY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiKSxsPXQoIi4uL2NhcnRlc2lhbi90aWNrX21hcmtfZGVmYXVsdHMiKSxjPXQoIi4uL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIiksdT10KCIuLi9jYXJ0ZXNpYW4vbGluZV9ncmlkX2RlZmF1bHRzIiksZj10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksaD1bImFheGlzIiwiYmF4aXMiLCJjYXhpcyJdO2Z1bmN0aW9uIHAodCxlLHIsYSl7dmFyIG8scyxsLGM9cigiYmdjb2xvciIpLHU9cigic3VtIik7YS5iZ0NvbG9yPW4uY29tYmluZShjLGEucGFwZXJfYmdjb2xvcik7Zm9yKHZhciBmPTA7ZjxoLmxlbmd0aDtmKyspcz10W289aFtmXV18fHt9LChsPWkubmV3Q29udGFpbmVyKGUsbykpLl9uYW1lPW8sZChzLGwsYSxlKTt2YXIgcD1lLmFheGlzLG09ZS5iYXhpcyxnPWUuY2F4aXM7cC5taW4rbS5taW4rZy5taW4+PXUmJihwLm1pbj0wLG0ubWluPTAsZy5taW49MCx0LmFheGlzJiZkZWxldGUgdC5hYXhpcy5taW4sdC5iYXhpcyYmZGVsZXRlIHQuYmF4aXMubWluLHQuY2F4aXMmJmRlbGV0ZSB0LmNheGlzLm1pbil9ZnVuY3Rpb24gZCh0LGUscixuKXt2YXIgaT1mW2UuX25hbWVdO2Z1bmN0aW9uIG8ocixuKXtyZXR1cm4gYS5jb2VyY2UodCxlLGkscixuKX1vKCJ1aXJldmlzaW9uIixuLnVpcmV2aXNpb24pLGUudHlwZT0ibGluZWFyIjt2YXIgaD1vKCJjb2xvciIpLHA9aCE9PWkuY29sb3IuZGZsdD9oOnIuZm9udC5jb2xvcixkPWUuX25hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCksbT0iQ29tcG9uZW50ICIrZCxnPW8oInRpdGxlLnRleHQiLG0pO2UuX2hvdmVydGl0bGU9Zz09PW0/ZzpkLGEuY29lcmNlRm9udChvLCJ0aXRsZS5mb250Iix7ZmFtaWx5OnIuZm9udC5mYW1pbHksc2l6ZTphLmJpZ0ZvbnQoci5mb250LnNpemUpLGNvbG9yOnB9KSxvKCJtaW4iKSxjKHQsZSxvLCJsaW5lYXIiKSxzKHQsZSxvLCJsaW5lYXIiLHt9KSxsKHQsZSxvLHtvdXRlclRpY2tzOiEwfSksbygic2hvd3RpY2tsYWJlbHMiKSYmKGEuY29lcmNlRm9udChvLCJ0aWNrZm9udCIse2ZhbWlseTpyLmZvbnQuZmFtaWx5LHNpemU6ci5mb250LnNpemUsY29sb3I6cH0pLG8oInRpY2thbmdsZSIpLG8oInRpY2tmb3JtYXQiKSksdSh0LGUsbyx7ZGZsdENvbG9yOmgsYmdDb2xvcjpyLmJnQ29sb3IsYmxlbmQ6NjAsc2hvd0xpbmU6ITAsc2hvd0dyaWQ6ITAsbm9aZXJvTGluZTohMCxhdHRyaWJ1dGVzOml9KSxvKCJob3ZlcmZvcm1hdCIpLG8oImxheWVyIil9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtvKHQsZSxyLHt0eXBlOiJ0ZXJuYXJ5IixhdHRyaWJ1dGVzOmYsaGFuZGxlRGVmYXVsdHM6cCxmb250OmUuZm9udCxwYXBlcl9iZ2NvbG9yOmUucGFwZXJfYmdjb2xvcn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uL2NhcnRlc2lhbi9saW5lX2dyaWRfZGVmYXVsdHMiOjg0NCwiLi4vY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiOjg0OSwiLi4vY2FydGVzaWFuL3RpY2tfbWFya19kZWZhdWx0cyI6ODUwLCIuLi9jYXJ0ZXNpYW4vdGlja192YWx1ZV9kZWZhdWx0cyI6ODUxLCIuLi9zdWJwbG90X2RlZmF1bHRzIjo4OTgsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjkwMX1dLDkwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJ0aW55Y29sb3IyIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vbGliIikscz1vLnN0clRyYW5zbGF0ZSxsPW8uXyxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSx1PXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGY9dCgiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0IiksaD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxwPXQoIi4uL3Bsb3RzIiksZD10KCIuLi9jYXJ0ZXNpYW4vYXhlcyIpLG09dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudCIpLGc9dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLHY9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIikseT12LmZyZWVNb2RlLHg9di5yZWN0TW9kZSxiPXQoIi4uLy4uL2NvbXBvbmVudHMvdGl0bGVzIiksXz10KCIuLi9jYXJ0ZXNpYW4vc2VsZWN0IikucHJlcFNlbGVjdCx3PXQoIi4uL2NhcnRlc2lhbi9zZWxlY3QiKS5zZWxlY3RPbkNsaWNrLFQ9dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLmNsZWFyU2VsZWN0LGs9dCgiLi4vY2FydGVzaWFuL3NlbGVjdCIpLmNsZWFyU2VsZWN0aW9uc0NhY2hlLEE9dCgiLi4vY2FydGVzaWFuL2NvbnN0YW50cyIpO2Z1bmN0aW9uIE0odCxlKXt0aGlzLmlkPXQuaWQsdGhpcy5ncmFwaERpdj10LmdyYXBoRGl2LHRoaXMuaW5pdChlKSx0aGlzLm1ha2VGcmFtZXdvcmsoZSksdGhpcy5hVGlja0xheW91dD1udWxsLHRoaXMuYlRpY2tMYXlvdXQ9bnVsbCx0aGlzLmNUaWNrTGF5b3V0PW51bGx9ZS5leHBvcnRzPU07dmFyIFM9TS5wcm90b3R5cGU7Uy5pbml0PWZ1bmN0aW9uKHQpe3RoaXMuY29udGFpbmVyPXQuX3Rlcm5hcnlsYXllcix0aGlzLmRlZnM9dC5fZGVmcyx0aGlzLmxheW91dElkPXQuX3VpZCx0aGlzLnRyYWNlSGFzaD17fSx0aGlzLmxheWVycz17fX0sUy5wbG90PWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVt0aGlzLmlkXSxuPWUuX3NpemU7dGhpcy5faGFzQ2xpcE9uQXhpc0ZhbHNlPSExO2Zvcih2YXIgaT0wO2k8dC5sZW5ndGg7aSsrKXtpZighMT09PXRbaV1bMF0udHJhY2UuY2xpcG9uYXhpcyl7dGhpcy5faGFzQ2xpcE9uQXhpc0ZhbHNlPSEwO2JyZWFrfX10aGlzLnVwZGF0ZUxheWVycyhyKSx0aGlzLmFkanVzdExheW91dChyLG4pLHAuZ2VuZXJhbFVwZGF0ZVBlclRyYWNlTW9kdWxlKHRoaXMuZ3JhcGhEaXYsdGhpcyx0LHIpLHRoaXMubGF5ZXJzLnBsb3RiZy5zZWxlY3QoInBhdGgiKS5jYWxsKGMuZmlsbCxyLmJnY29sb3IpfSxTLm1ha2VGcmFtZXdvcms9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5ncmFwaERpdixyPXRbdGhpcy5pZF0sbj10aGlzLmNsaXBJZD0iY2xpcCIrdGhpcy5sYXlvdXRJZCt0aGlzLmlkLGk9dGhpcy5jbGlwSWRSZWxhdGl2ZT0iY2xpcC1yZWxhdGl2ZSIrdGhpcy5sYXlvdXRJZCt0aGlzLmlkO3RoaXMuY2xpcERlZj1vLmVuc3VyZVNpbmdsZUJ5SWQodC5fY2xpcHMsImNsaXBQYXRoIixuLChmdW5jdGlvbih0KXt0LmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLCJNMCwwWiIpfSkpLHRoaXMuY2xpcERlZlJlbGF0aXZlPW8uZW5zdXJlU2luZ2xlQnlJZCh0Ll9jbGlwcywiY2xpcFBhdGgiLGksKGZ1bmN0aW9uKHQpe3QuYXBwZW5kKCJwYXRoIikuYXR0cigiZCIsIk0wLDBaIil9KSksdGhpcy5wbG90Q29udGFpbmVyPW8uZW5zdXJlU2luZ2xlKHRoaXMuY29udGFpbmVyLCJnIix0aGlzLmlkKSx0aGlzLnVwZGF0ZUxheWVycyhyKSx1LnNldENsaXBVcmwodGhpcy5sYXllcnMuYmFja3Bsb3QsbixlKSx1LnNldENsaXBVcmwodGhpcy5sYXllcnMuZ3JpZHMsbixlKX0sUy51cGRhdGVMYXllcnM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5sYXllcnMscj1bImRyYWdsYXllciIsInBsb3RiZyIsImJhY2twbG90IiwiZ3JpZHMiXTsiYmVsb3cgdHJhY2VzIj09PXQuYWF4aXMubGF5ZXImJnIucHVzaCgiYWF4aXMiLCJhbGluZSIpLCJiZWxvdyB0cmFjZXMiPT09dC5iYXhpcy5sYXllciYmci5wdXNoKCJiYXhpcyIsImJsaW5lIiksImJlbG93IHRyYWNlcyI9PT10LmNheGlzLmxheWVyJiZyLnB1c2goImNheGlzIiwiY2xpbmUiKSxyLnB1c2goImZyb250cGxvdCIpLCJhYm92ZSB0cmFjZXMiPT09dC5hYXhpcy5sYXllciYmci5wdXNoKCJhYXhpcyIsImFsaW5lIiksImFib3ZlIHRyYWNlcyI9PT10LmJheGlzLmxheWVyJiZyLnB1c2goImJheGlzIiwiYmxpbmUiKSwiYWJvdmUgdHJhY2VzIj09PXQuY2F4aXMubGF5ZXImJnIucHVzaCgiY2F4aXMiLCJjbGluZSIpO3ZhciBpPXRoaXMucGxvdENvbnRhaW5lci5zZWxlY3RBbGwoImcudG9wbGV2ZWwiKS5kYXRhKHIsU3RyaW5nKSxhPVsiYWdyaWQiLCJiZ3JpZCIsImNncmlkIl07aS5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwoZnVuY3Rpb24odCl7cmV0dXJuInRvcGxldmVsICIrdH0pKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj1uLnNlbGVjdCh0aGlzKTtlW3RdPXIsImZyb250cGxvdCI9PT10P3IuYXBwZW5kKCJnIikuY2xhc3NlZCgic2NhdHRlcmxheWVyIiwhMCk6ImJhY2twbG90Ij09PXQ/ci5hcHBlbmQoImciKS5jbGFzc2VkKCJtYXBsYXllciIsITApOiJwbG90YmciPT09dD9yLmFwcGVuZCgicGF0aCIpLmF0dHIoImQiLCJNMCwwWiIpOiJhbGluZSI9PT10fHwiYmxpbmUiPT09dHx8ImNsaW5lIj09PXQ/ci5hcHBlbmQoInBhdGgiKToiZ3JpZHMiPT09dCYmYS5mb3JFYWNoKChmdW5jdGlvbih0KXtlW3RdPXIuYXBwZW5kKCJnIikuY2xhc3NlZCgiZ3JpZCAiK3QsITApfSkpfSkpLGkub3JkZXIoKX07dmFyIEU9TWF0aC5zcXJ0KDQvMyk7Uy5hZGp1c3RMYXlvdXQ9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYSxvLGwscD10aGlzLGQ9dC5kb21haW4sbT0oZC54WzBdK2QueFsxXSkvMixnPShkLnlbMF0rZC55WzFdKS8yLHY9ZC54WzFdLWQueFswXSx5PWQueVsxXS1kLnlbMF0seD12KmUudyxiPXkqZS5oLF89dC5zdW0sdz10LmFheGlzLm1pbixUPXQuYmF4aXMubWluLGs9dC5jYXhpcy5taW47eD5FKmI/aT0oYT1iKSpFOmE9KGk9eCkvRSxvPXYqaS94LGw9eSphL2Iscj1lLmwrZS53Km0taS8yLG49ZS50K2UuaCooMS1nKS1hLzIscC54MD1yLHAueTA9bixwLnc9aSxwLmg9YSxwLnN1bT1fLHAueGF4aXM9e3R5cGU6ImxpbmVhciIscmFuZ2U6W3crMiprLV8sXy13LTIqVF0sZG9tYWluOlttLW8vMixtK28vMl0sX2lkOiJ4In0sZihwLnhheGlzLHAuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQpLHAueGF4aXMuc2V0U2NhbGUoKSxwLnhheGlzLmlzUHRXaXRoaW5SYW5nZT1mdW5jdGlvbih0KXtyZXR1cm4gdC5hPj1wLmFheGlzLnJhbmdlWzBdJiZ0LmE8PXAuYWF4aXMucmFuZ2VbMV0mJnQuYj49cC5iYXhpcy5yYW5nZVsxXSYmdC5iPD1wLmJheGlzLnJhbmdlWzBdJiZ0LmM+PXAuY2F4aXMucmFuZ2VbMV0mJnQuYzw9cC5jYXhpcy5yYW5nZVswXX0scC55YXhpcz17dHlwZToibGluZWFyIixyYW5nZTpbdyxfLVQta10sZG9tYWluOltnLWwvMixnK2wvMl0sX2lkOiJ5In0sZihwLnlheGlzLHAuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQpLHAueWF4aXMuc2V0U2NhbGUoKSxwLnlheGlzLmlzUHRXaXRoaW5SYW5nZT1mdW5jdGlvbigpe3JldHVybiEwfTt2YXIgQT1wLnlheGlzLmRvbWFpblswXSxNPXAuYWF4aXM9aCh7fSx0LmFheGlzLHtyYW5nZTpbdyxfLVQta10sc2lkZToibGVmdCIsdGlja2FuZ2xlOigrdC5hYXhpcy50aWNrYW5nbGV8fDApLTMwLGRvbWFpbjpbQSxBK2wqRV0sYW5jaG9yOiJmcmVlIixwb3NpdGlvbjowLF9pZDoieSIsX2xlbmd0aDppfSk7ZihNLHAuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQpLE0uc2V0U2NhbGUoKTt2YXIgUz1wLmJheGlzPWgoe30sdC5iYXhpcyx7cmFuZ2U6W18tdy1rLFRdLHNpZGU6ImJvdHRvbSIsZG9tYWluOnAueGF4aXMuZG9tYWluLGFuY2hvcjoiZnJlZSIscG9zaXRpb246MCxfaWQ6IngiLF9sZW5ndGg6aX0pO2YoUyxwLmdyYXBoRGl2Ll9mdWxsTGF5b3V0KSxTLnNldFNjYWxlKCk7dmFyIEw9cC5jYXhpcz1oKHt9LHQuY2F4aXMse3JhbmdlOltfLXctVCxrXSxzaWRlOiJyaWdodCIsdGlja2FuZ2xlOigrdC5jYXhpcy50aWNrYW5nbGV8fDApKzMwLGRvbWFpbjpbQSxBK2wqRV0sYW5jaG9yOiJmcmVlIixwb3NpdGlvbjowLF9pZDoieSIsX2xlbmd0aDppfSk7ZihMLHAuZ3JhcGhEaXYuX2Z1bGxMYXlvdXQpLEwuc2V0U2NhbGUoKTt2YXIgQz0iTSIrcisiLCIrKG4rYSkrImgiK2krImwtIitpLzIrIiwtIithKyJaIjtwLmNsaXBEZWYuc2VsZWN0KCJwYXRoIikuYXR0cigiZCIsQykscC5sYXllcnMucGxvdGJnLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLEMpO3ZhciBQPSJNMCwiK2ErImgiK2krImwtIitpLzIrIiwtIithKyJaIjtwLmNsaXBEZWZSZWxhdGl2ZS5zZWxlY3QoInBhdGgiKS5hdHRyKCJkIixQKTt2YXIgST1zKHIsbik7cC5wbG90Q29udGFpbmVyLnNlbGVjdEFsbCgiLnNjYXR0ZXJsYXllciwubWFwbGF5ZXIiKS5hdHRyKCJ0cmFuc2Zvcm0iLEkpLHAuY2xpcERlZlJlbGF0aXZlLnNlbGVjdCgicGF0aCIpLmF0dHIoInRyYW5zZm9ybSIsbnVsbCk7dmFyIE89cyhyLVMuX29mZnNldCxuK2EpO3AubGF5ZXJzLmJheGlzLmF0dHIoInRyYW5zZm9ybSIsTykscC5sYXllcnMuYmdyaWQuYXR0cigidHJhbnNmb3JtIixPKTt2YXIgej1zKHIraS8yLG4pKyJyb3RhdGUoMzApIitzKDAsLU0uX29mZnNldCk7cC5sYXllcnMuYWF4aXMuYXR0cigidHJhbnNmb3JtIix6KSxwLmxheWVycy5hZ3JpZC5hdHRyKCJ0cmFuc2Zvcm0iLHopO3ZhciBEPXMocitpLzIsbikrInJvdGF0ZSgtMzApIitzKDAsLUwuX29mZnNldCk7cC5sYXllcnMuY2F4aXMuYXR0cigidHJhbnNmb3JtIixEKSxwLmxheWVycy5jZ3JpZC5hdHRyKCJ0cmFuc2Zvcm0iLEQpLHAuZHJhd0F4ZXMoITApLHAubGF5ZXJzLmFsaW5lLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLE0uc2hvd2xpbmU/Ik0iK3IrIiwiKyhuK2EpKyJsIitpLzIrIiwtIithOiJNMCwwIikuY2FsbChjLnN0cm9rZSxNLmxpbmVjb2xvcnx8IiMwMDAiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwoTS5saW5ld2lkdGh8fDApKyJweCIpLHAubGF5ZXJzLmJsaW5lLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLFMuc2hvd2xpbmU/Ik0iK3IrIiwiKyhuK2EpKyJoIitpOiJNMCwwIikuY2FsbChjLnN0cm9rZSxTLmxpbmVjb2xvcnx8IiMwMDAiKS5zdHlsZSgic3Ryb2tlLXdpZHRoIiwoUy5saW5ld2lkdGh8fDApKyJweCIpLHAubGF5ZXJzLmNsaW5lLnNlbGVjdCgicGF0aCIpLmF0dHIoImQiLEwuc2hvd2xpbmU/Ik0iKyhyK2kvMikrIiwiK24rImwiK2kvMisiLCIrYToiTTAsMCIpLmNhbGwoYy5zdHJva2UsTC5saW5lY29sb3J8fCIjMDAwIikuc3R5bGUoInN0cm9rZS13aWR0aCIsKEwubGluZXdpZHRofHwwKSsicHgiKSxwLmdyYXBoRGl2Ll9jb250ZXh0LnN0YXRpY1Bsb3R8fHAuaW5pdEludGVyYWN0aW9ucygpLHUuc2V0Q2xpcFVybChwLmxheWVycy5mcm9udHBsb3QscC5faGFzQ2xpcE9uQXhpc0ZhbHNlP251bGw6cC5jbGlwSWQscC5ncmFwaERpdil9LFMuZHJhd0F4ZXM9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5ncmFwaERpdixyPXRoaXMuaWQuc3Vic3RyKDcpKyJ0aXRsZSIsbj10aGlzLmxheWVycyxpPXRoaXMuYWF4aXMsYT10aGlzLmJheGlzLG89dGhpcy5jYXhpcztpZih0aGlzLmRyYXdBeChpKSx0aGlzLmRyYXdBeChhKSx0aGlzLmRyYXdBeChvKSx0KXt2YXIgcz1NYXRoLm1heChpLnNob3d0aWNrbGFiZWxzP2kudGlja2ZvbnQuc2l6ZS8yOjAsKG8uc2hvd3RpY2tsYWJlbHM/Ljc1Km8udGlja2ZvbnQuc2l6ZTowKSsoIm91dHNpZGUiPT09by50aWNrcz8uODcqby50aWNrbGVuOjApKSxjPShhLnNob3d0aWNrbGFiZWxzP2EudGlja2ZvbnQuc2l6ZTowKSsoIm91dHNpZGUiPT09YS50aWNrcz9hLnRpY2tsZW46MCkrMztuWyJhLXRpdGxlIl09Yi5kcmF3KGUsImEiK3Ise3Byb3BDb250YWluZXI6aSxwcm9wTmFtZTp0aGlzLmlkKyIuYWF4aXMudGl0bGUiLHBsYWNlaG9sZGVyOmwoZSwiQ2xpY2sgdG8gZW50ZXIgQ29tcG9uZW50IEEgdGl0bGUiKSxhdHRyaWJ1dGVzOnt4OnRoaXMueDArdGhpcy53LzIseTp0aGlzLnkwLWkudGl0bGUuZm9udC5zaXplLzMtcywidGV4dC1hbmNob3IiOiJtaWRkbGUifX0pLG5bImItdGl0bGUiXT1iLmRyYXcoZSwiYiIrcix7cHJvcENvbnRhaW5lcjphLHByb3BOYW1lOnRoaXMuaWQrIi5iYXhpcy50aXRsZSIscGxhY2Vob2xkZXI6bChlLCJDbGljayB0byBlbnRlciBDb21wb25lbnQgQiB0aXRsZSIpLGF0dHJpYnV0ZXM6e3g6dGhpcy54MC1jLHk6dGhpcy55MCt0aGlzLmgrLjgzKmEudGl0bGUuZm9udC5zaXplK2MsInRleHQtYW5jaG9yIjoibWlkZGxlIn19KSxuWyJjLXRpdGxlIl09Yi5kcmF3KGUsImMiK3Ise3Byb3BDb250YWluZXI6byxwcm9wTmFtZTp0aGlzLmlkKyIuY2F4aXMudGl0bGUiLHBsYWNlaG9sZGVyOmwoZSwiQ2xpY2sgdG8gZW50ZXIgQ29tcG9uZW50IEMgdGl0bGUiKSxhdHRyaWJ1dGVzOnt4OnRoaXMueDArdGhpcy53K2MseTp0aGlzLnkwK3RoaXMuaCsuODMqby50aXRsZS5mb250LnNpemUrYywidGV4dC1hbmNob3IiOiJtaWRkbGUifX0pfX0sUy5kcmF3QXg9ZnVuY3Rpb24odCl7dmFyIGUscj10aGlzLmdyYXBoRGl2LG49dC5fbmFtZSxpPW4uY2hhckF0KDApLGE9dC5faWQscz10aGlzLmxheWVyc1tuXSxsPWkrInRpY2tMYXlvdXQiLGM9KGU9dCkudGlja3MrU3RyaW5nKGUudGlja2xlbikrU3RyaW5nKGUuc2hvd3RpY2tsYWJlbHMpO3RoaXNbbF0hPT1jJiYocy5zZWxlY3RBbGwoIi4iK2ErInRpY2siKS5yZW1vdmUoKSx0aGlzW2xdPWMpLHQuc2V0U2NhbGUoKTt2YXIgdT1kLmNhbGNUaWNrcyh0KSxmPWQuY2xpcEVuZHModCx1KSxoPWQubWFrZVRyYW5zVGlja0ZuKHQpLHA9ZC5nZXRUaWNrU2lnbnModClbMl0sbT1vLmRlZzJyYWQoMzApLGc9cCoodC5saW5ld2lkdGh8fDEpLzIsdj1wKnQudGlja2xlbix5PXRoaXMudyx4PXRoaXMuaCxiPSJiIj09PWk/Ik0wLCIrZysibCIrTWF0aC5zaW4obSkqdisiLCIrTWF0aC5jb3MobSkqdjoiTSIrZysiLDBsIitNYXRoLmNvcyhtKSp2KyIsIistTWF0aC5zaW4obSkqdixfPXthOiJNMCwwbCIreCsiLC0iK3kvMixiOiJNMCwwbC0iK3kvMisiLC0iK3gsYzoiTTAsMGwtIit4KyIsIit5LzJ9W2ldO2QuZHJhd1RpY2tzKHIsdCx7dmFsczoiaW5zaWRlIj09PXQudGlja3M/Zjp1LGxheWVyOnMscGF0aDpiLHRyYW5zRm46aCxjcmlzcDohMX0pLGQuZHJhd0dyaWQocix0LHt2YWxzOmYsbGF5ZXI6dGhpcy5sYXllcnNbaSsiZ3JpZCJdLHBhdGg6Xyx0cmFuc0ZuOmgsY3Jpc3A6ITF9KSxkLmRyYXdMYWJlbHMocix0LHt2YWxzOnUsbGF5ZXI6cyx0cmFuc0ZuOmgsbGFiZWxGbnM6ZC5tYWtlTGFiZWxGbnModCwwLDMwKX0pfTt2YXIgTD1BLk1JTlpPT00vMisuODcsQz0ibS0wLjg3LC41aCIrTCsidjNoLSIrKEwrNS4yKSsibCIrKEwvMisyLjYpKyIsLSIrKC44NypMKzQuNSkrImwyLjYsMS41bC0iK0wvMisiLCIrLjg3KkwrIloiLFA9Im0wLjg3LC41aC0iK0wrInYzaCIrKEwrNS4yKSsibC0iKyhMLzIrMi42KSsiLC0iKyguODcqTCs0LjUpKyJsLTIuNiwxLjVsIitMLzIrIiwiKy44NypMKyJaIixJPSJtMCwxbCIrTC8yKyIsIisuODcqTCsibDIuNiwtMS41bC0iKyhMLzIrMi42KSsiLC0iKyguODcqTCs0LjUpKyJsLSIrKEwvMisyLjYpKyIsIisoLjg3KkwrNC41KSsibDIuNiwxLjVsIitMLzIrIiwtIisuODcqTCsiWiIsTz0hMDtmdW5jdGlvbiB6KHQpe24uc2VsZWN0KHQpLnNlbGVjdEFsbCgiLnpvb21ib3gsLmpzLXpvb21ib3gtYmFja2Ryb3AsLmpzLXpvb21ib3gtbWVudSwuem9vbWJveC1jb3JuZXJzIikucmVtb3ZlKCl9Uy5jbGVhclNlbGVjdD1mdW5jdGlvbigpe2sodGhpcy5kcmFnT3B0aW9ucyksVCh0aGlzLmRyYWdPcHRpb25zLmdkKX0sUy5pbml0SW50ZXJhY3Rpb25zPWZ1bmN0aW9uKCl7dmFyIHQsZSxyLG4sZixoLHAsZCx2LGIsVCxrLE09dGhpcyxTPU0ubGF5ZXJzLnBsb3RiZy5zZWxlY3QoInBhdGgiKS5ub2RlKCksTD1NLmdyYXBoRGl2LEQ9TC5fZnVsbExheW91dC5fem9vbWxheWVyO2Z1bmN0aW9uIFIodCl7dmFyIGU9e307cmV0dXJuIGVbTS5pZCsiLmFheGlzLm1pbiJdPXQuYSxlW00uaWQrIi5iYXhpcy5taW4iXT10LmIsZVtNLmlkKyIuY2F4aXMubWluIl09dC5jLGV9ZnVuY3Rpb24gRih0LGUpe3ZhciByPUwuX2Z1bGxMYXlvdXQuY2xpY2ttb2RlO3ooTCksMj09PXQmJihMLmVtaXQoInBsb3RseV9kb3VibGVjbGljayIsbnVsbCksYS5jYWxsKCJfZ3VpUmVsYXlvdXQiLEwsUih7YTowLGI6MCxjOjB9KSkpLHIuaW5kZXhPZigic2VsZWN0Iik+LTEmJjE9PT10JiZ3KGUsTCxbTS54YXhpc10sW00ueWF4aXNdLE0uaWQsTS5kcmFnT3B0aW9ucyksci5pbmRleE9mKCJldmVudCIpPi0xJiZnLmNsaWNrKEwsZSxNLmlkKX1mdW5jdGlvbiBCKHQsZSl7cmV0dXJuIDEtZS9NLmh9ZnVuY3Rpb24gTih0LGUpe3JldHVybiAxLSh0KyhNLmgtZSkvTWF0aC5zcXJ0KDMpKS9NLnd9ZnVuY3Rpb24gaih0LGUpe3JldHVybih0LShNLmgtZSkvTWF0aC5zcXJ0KDMpKS9NLnd9ZnVuY3Rpb24gVShpLGEpe3ZhciBvPXIraSp0LHM9bithKmUsbD1NYXRoLm1heCgwLE1hdGgubWluKDEsQigwLG4pLEIoMCxzKSkpLGM9TWF0aC5tYXgoMCxNYXRoLm1pbigxLE4ocixuKSxOKG8scykpKSx1PU1hdGgubWF4KDAsTWF0aC5taW4oMSxqKHIsbiksaihvLHMpKSksbT0obC8yK3UpKk0udyxnPSgxLWwvMi1jKSpNLncseT0obStnKS8yLHg9Zy1tLF89KDEtbCkqTS5oLHc9Xy14L0U7eDxBLk1JTlpPT00/KHA9ZixULmF0dHIoImQiLHYpLGsuYXR0cigiZCIsIk0wLDBaIikpOihwPXthOmYuYStsKmgsYjpmLmIrYypoLGM6Zi5jK3UqaH0sVC5hdHRyKCJkIix2KyJNIittKyIsIitfKyJIIitnKyJMIit5KyIsIit3KyJMIittKyIsIitfKyJaIiksay5hdHRyKCJkIiwiTSIrcisiLCIrbisibTAuNSwwLjVoNXYtMmgtNXYtNWgtMnY1aC01djJoNXY1aDJaTSIrbSsiLCIrXytDKyJNIitnKyIsIitfK1ArIk0iK3krIiwiK3crSSkpLGJ8fChULnRyYW5zaXRpb24oKS5zdHlsZSgiZmlsbCIsZD4uMj8icmdiYSgwLDAsMCwwLjQpIjoicmdiYSgyNTUsMjU1LDI1NSwwLjMpIikuZHVyYXRpb24oMjAwKSxrLnRyYW5zaXRpb24oKS5zdHlsZSgib3BhY2l0eSIsMSkuZHVyYXRpb24oMjAwKSxiPSEwKSxMLmVtaXQoInBsb3RseV9yZWxheW91dGluZyIsUihwKSl9ZnVuY3Rpb24gVigpe3ooTCkscCE9PWYmJihhLmNhbGwoIl9ndWlSZWxheW91dCIsTCxSKHApKSxPJiZMLmRhdGEmJkwuX2NvbnRleHQuc2hvd1RpcHMmJihvLm5vdGlmaWVyKGwoTCwiRG91YmxlLWNsaWNrIHRvIHpvb20gYmFjayBvdXQiKSwibG9uZyIpLE89ITEpKX1mdW5jdGlvbiBIKHQsZSl7dmFyIHI9dC9NLnhheGlzLl9tLG49ZS9NLnlheGlzLl9tLGk9WyhwPXthOmYuYS1uLGI6Zi5iKyhyK24pLzIsYzpmLmMtKHItbikvMn0pLmEscC5iLHAuY10uc29ydChvLnNvcnRlckFzYyksYT1pLmluZGV4T2YocC5hKSxsPWkuaW5kZXhPZihwLmIpLGM9aS5pbmRleE9mKHAuYyk7aVswXTwwJiYoaVsxXStpWzBdLzI8MD8oaVsyXSs9aVswXStpWzFdLGlbMF09aVsxXT0wKTooaVsyXSs9aVswXS8yLGlbMV0rPWlbMF0vMixpWzBdPTApLHA9e2E6aVthXSxiOmlbbF0sYzppW2NdfSxlPShmLmEtcC5hKSpNLnlheGlzLl9tLHQ9KGYuYy1wLmMtZi5iK3AuYikqTS54YXhpcy5fbSk7dmFyIGg9cyhNLngwK3QsTS55MCtlKTtNLnBsb3RDb250YWluZXIuc2VsZWN0QWxsKCIuc2NhdHRlcmxheWVyLC5tYXBsYXllciIpLmF0dHIoInRyYW5zZm9ybSIsaCk7dmFyIGQ9cygtdCwtZSk7TS5jbGlwRGVmUmVsYXRpdmUuc2VsZWN0KCJwYXRoIikuYXR0cigidHJhbnNmb3JtIixkKSxNLmFheGlzLnJhbmdlPVtwLmEsTS5zdW0tcC5iLXAuY10sTS5iYXhpcy5yYW5nZT1bTS5zdW0tcC5hLXAuYyxwLmJdLE0uY2F4aXMucmFuZ2U9W00uc3VtLXAuYS1wLmIscC5jXSxNLmRyYXdBeGVzKCExKSxNLl9oYXNDbGlwT25BeGlzRmFsc2UmJk0ucGxvdENvbnRhaW5lci5zZWxlY3QoIi5zY2F0dGVybGF5ZXIiKS5zZWxlY3RBbGwoIi50cmFjZSIpLmNhbGwodS5oaWRlT3V0c2lkZVJhbmdlUG9pbnRzLE0pLEwuZW1pdCgicGxvdGx5X3JlbGF5b3V0aW5nIixSKHApKX1mdW5jdGlvbiBxKCl7YS5jYWxsKCJfZ3VpUmVsYXlvdXQiLEwsUihwKSl9dGhpcy5kcmFnT3B0aW9ucz17ZWxlbWVudDpTLGdkOkwscGxvdGluZm86e2lkOk0uaWQsZG9tYWluOkwuX2Z1bGxMYXlvdXRbTS5pZF0uZG9tYWluLHhheGlzOk0ueGF4aXMseWF4aXM6TS55YXhpc30sc3VicGxvdDpNLmlkLHByZXBGbjpmdW5jdGlvbihhLGwsdSl7TS5kcmFnT3B0aW9ucy54YXhlcz1bTS54YXhpc10sTS5kcmFnT3B0aW9ucy55YXhlcz1bTS55YXhpc10sdD1MLl9mdWxsTGF5b3V0Ll9pbnZTY2FsZVgsZT1MLl9mdWxsTGF5b3V0Ll9pbnZTY2FsZVk7dmFyIG09TS5kcmFnT3B0aW9ucy5kcmFnbW9kZT1MLl9mdWxsTGF5b3V0LmRyYWdtb2RlO3kobSk/TS5kcmFnT3B0aW9ucy5taW5EcmFnPTE6TS5kcmFnT3B0aW9ucy5taW5EcmFnPXZvaWQgMCwiem9vbSI9PT1tPyhNLmRyYWdPcHRpb25zLm1vdmVGbj1VLE0uZHJhZ09wdGlvbnMuY2xpY2tGbj1GLE0uZHJhZ09wdGlvbnMuZG9uZUZuPVYsZnVuY3Rpb24odCxlLGEpe3ZhciBsPVMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7cj1lLWwubGVmdCxuPWEtbC50b3AsTC5fZnVsbExheW91dC5fY2FsY0ludmVyc2VUcmFuc2Zvcm0oTCk7dmFyIHU9TC5fZnVsbExheW91dC5faW52VHJhbnNmb3JtLG09by5hcHBseTNEVHJhbnNmb3JtKHUpKHIsbik7cj1tWzBdLG49bVsxXSxmPXthOk0uYWF4aXMucmFuZ2VbMF0sYjpNLmJheGlzLnJhbmdlWzFdLGM6TS5jYXhpcy5yYW5nZVsxXX0scD1mLGg9TS5hYXhpcy5yYW5nZVsxXS1mLmEsZD1pKE0uZ3JhcGhEaXYuX2Z1bGxMYXlvdXRbTS5pZF0uYmdjb2xvcikuZ2V0THVtaW5hbmNlKCksdj0iTTAsIitNLmgrIkwiK00udy8yKyIsIDBMIitNLncrIiwiK00uaCsiWiIsYj0hMSxUPUQuYXBwZW5kKCJwYXRoIikuYXR0cigiY2xhc3MiLCJ6b29tYm94IikuYXR0cigidHJhbnNmb3JtIixzKE0ueDAsTS55MCkpLnN0eWxlKHtmaWxsOmQ+LjI/InJnYmEoMCwwLDAsMCkiOiJyZ2JhKDI1NSwyNTUsMjU1LDApIiwic3Ryb2tlLXdpZHRoIjowfSkuYXR0cigiZCIsdiksaz1ELmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwiem9vbWJveC1jb3JuZXJzIikuYXR0cigidHJhbnNmb3JtIixzKE0ueDAsTS55MCkpLnN0eWxlKHtmaWxsOmMuYmFja2dyb3VuZCxzdHJva2U6Yy5kZWZhdWx0TGluZSwic3Ryb2tlLXdpZHRoIjoxLG9wYWNpdHk6MH0pLmF0dHIoImQiLCJNMCwwWiIpLE0uY2xlYXJTZWxlY3QoTCl9KDAsbCx1KSk6InBhbiI9PT1tPyhNLmRyYWdPcHRpb25zLm1vdmVGbj1ILE0uZHJhZ09wdGlvbnMuY2xpY2tGbj1GLE0uZHJhZ09wdGlvbnMuZG9uZUZuPXEsZj17YTpNLmFheGlzLnJhbmdlWzBdLGI6TS5iYXhpcy5yYW5nZVsxXSxjOk0uY2F4aXMucmFuZ2VbMV19LHA9ZixNLmNsZWFyU2VsZWN0KEwpKTooeChtKXx8eShtKSkmJl8oYSxsLHUsTS5kcmFnT3B0aW9ucyxtKX19LFMub25tb3VzZW1vdmU9ZnVuY3Rpb24odCl7Zy5ob3ZlcihMLHQsTS5pZCksTC5fZnVsbExheW91dC5fbGFzdGhvdmVyPVMsTC5fZnVsbExheW91dC5faG92ZXJzdWJwbG90PU0uaWR9LFMub25tb3VzZW91dD1mdW5jdGlvbih0KXtMLl9kcmFnZ2luZ3x8bS51bmhvdmVyKEwsdCl9LG0uaW5pdCh0aGlzLmRyYWdPcHRpb25zKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50Ijo2NTgsIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQvaGVscGVycyI6NjU3LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9jb21wb25lbnRzL3RpdGxlcyI6NzM3LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi9jYXJ0ZXNpYW4vY29uc3RhbnRzIjo4MzQsIi4uL2NhcnRlc2lhbi9zZWxlY3QiOjg0NywiLi4vY2FydGVzaWFuL3NldF9jb252ZXJ0Ijo4NDgsIi4uL3Bsb3RzIjo4OTAsIkBwbG90bHkvZDMiOjU4LHRpbnljb2xvcjI6NTcyfV0sOTA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vbGliL2xvZ2dlcnMiKSxpPXQoIi4vbGliL25vb3AiKSxhPXQoIi4vbGliL3B1c2hfdW5pcXVlIiksbz10KCIuL2xpYi9pc19wbGFpbl9vYmplY3QiKSxzPXQoIi4vbGliL2RvbSIpLmFkZFN0eWxlUnVsZSxsPXQoIi4vbGliL2V4dGVuZCIpLGM9dCgiLi9wbG90cy9hdHRyaWJ1dGVzIiksdT10KCIuL3Bsb3RzL2xheW91dF9hdHRyaWJ1dGVzIiksZj1sLmV4dGVuZEZsYXQsaD1sLmV4dGVuZERlZXBBbGw7ZnVuY3Rpb24gcCh0KXt2YXIgZT10Lm5hbWUsaT10LmNhdGVnb3JpZXMsYT10Lm1ldGE7aWYoci5tb2R1bGVzW2VdKW4ubG9nKCJUeXBlICIrZSsiIGFscmVhZHkgcmVnaXN0ZXJlZCIpO2Vsc2V7ci5zdWJwbG90c1JlZ2lzdHJ5W3QuYmFzZVBsb3RNb2R1bGUubmFtZV18fGZ1bmN0aW9uKHQpe3ZhciBlPXQubmFtZTtpZihyLnN1YnBsb3RzUmVnaXN0cnlbZV0pcmV0dXJuIHZvaWQgbi5sb2coIlBsb3QgdHlwZSAiK2UrIiBhbHJlYWR5IHJlZ2lzdGVyZWQuIik7Zm9yKHZhciBpIGluIHYodCksci5zdWJwbG90c1JlZ2lzdHJ5W2VdPXQsci5jb21wb25lbnRzUmVnaXN0cnkpYihpLHQubmFtZSl9KHQuYmFzZVBsb3RNb2R1bGUpO2Zvcih2YXIgbz17fSxsPTA7bDxpLmxlbmd0aDtsKyspb1tpW2xdXT0hMCxyLmFsbENhdGVnb3JpZXNbaVtsXV09ITA7Zm9yKHZhciBjIGluIHIubW9kdWxlc1tlXT17X21vZHVsZTp0LGNhdGVnb3JpZXM6b30sYSYmT2JqZWN0LmtleXMoYSkubGVuZ3RoJiYoci5tb2R1bGVzW2VdLm1ldGE9YSksci5hbGxUeXBlcy5wdXNoKGUpLHIuY29tcG9uZW50c1JlZ2lzdHJ5KXkoYyxlKTt0LmxheW91dEF0dHJpYnV0ZXMmJmYoci50cmFjZUxheW91dEF0dHJpYnV0ZXMsdC5sYXlvdXRBdHRyaWJ1dGVzKTt2YXIgdT10LmJhc2VQbG90TW9kdWxlLGg9dS5uYW1lO2lmKCJtYXBib3giPT09aCl7dmFyIHA9dS5jb25zdGFudHMuc3R5bGVSdWxlcztmb3IodmFyIGQgaW4gcClzKCIuanMtcGxvdGx5LXBsb3QgLnBsb3RseSAubWFwYm94Z2wtIitkLHBbZF0pfSJnZW8iIT09aCYmIm1hcGJveCIhPT1ofHx2b2lkIDA9PT10eXBlb2Ygd2luZG93fHx2b2lkIDAhPT13aW5kb3cuUGxvdGx5R2VvQXNzZXRzfHwod2luZG93LlBsb3RseUdlb0Fzc2V0cz17dG9wb2pzb246e319KX19ZnVuY3Rpb24gZCh0KXtpZigic3RyaW5nIiE9dHlwZW9mIHQubmFtZSl0aHJvdyBuZXcgRXJyb3IoIkNvbXBvbmVudCBtb2R1bGUgKm5hbWUqIG11c3QgYmUgYSBzdHJpbmcuIik7dmFyIGU9dC5uYW1lO2Zvcih2YXIgbiBpbiByLmNvbXBvbmVudHNSZWdpc3RyeVtlXT10LHQubGF5b3V0QXR0cmlidXRlcyYmKHQubGF5b3V0QXR0cmlidXRlcy5faXNMaW5rZWRUb0FycmF5JiZhKHIubGF5b3V0QXJyYXlDb250YWluZXJzLGUpLHYodCkpLHIubW9kdWxlcyl5KGUsbik7Zm9yKHZhciBpIGluIHIuc3VicGxvdHNSZWdpc3RyeSliKGUsaSk7Zm9yKHZhciBvIGluIHIudHJhbnNmb3Jtc1JlZ2lzdHJ5KXgoZSxvKTt0LnNjaGVtYSYmdC5zY2hlbWEubGF5b3V0JiZoKHUsdC5zY2hlbWEubGF5b3V0KX1mdW5jdGlvbiBtKHQpe2lmKCJzdHJpbmciIT10eXBlb2YgdC5uYW1lKXRocm93IG5ldyBFcnJvcigiVHJhbnNmb3JtIG1vZHVsZSAqbmFtZSogbXVzdCBiZSBhIHN0cmluZy4iKTt2YXIgZT0iVHJhbnNmb3JtIG1vZHVsZSAiK3QubmFtZSxpPSJmdW5jdGlvbiI9PXR5cGVvZiB0LnRyYW5zZm9ybSxhPSJmdW5jdGlvbiI9PXR5cGVvZiB0LmNhbGNUcmFuc2Zvcm07aWYoIWkmJiFhKXRocm93IG5ldyBFcnJvcihlKyIgaXMgbWlzc2luZyBhICp0cmFuc2Zvcm0qIG9yICpjYWxjVHJhbnNmb3JtKiBtZXRob2QuIik7Zm9yKHZhciBzIGluIGkmJmEmJm4ubG9nKFtlKyIgaGFzIGJvdGggYSAqdHJhbnNmb3JtKiBhbmQgKmNhbGNUcmFuc2Zvcm0qIG1ldGhvZHMuIiwiUGxlYXNlIG5vdGUgdGhhdCBhbGwgKnRyYW5zZm9ybSogbWV0aG9kcyBhcmUgZXhlY3V0ZWQiLCJiZWZvcmUgYWxsICpjYWxjVHJhbnNmb3JtKiBtZXRob2RzLiJdLmpvaW4oIiAiKSksbyh0LmF0dHJpYnV0ZXMpfHxuLmxvZyhlKyIgcmVnaXN0ZXJlZCB3aXRob3V0IGFuICphdHRyaWJ1dGVzKiBvYmplY3QuIiksImZ1bmN0aW9uIiE9dHlwZW9mIHQuc3VwcGx5RGVmYXVsdHMmJm4ubG9nKGUrIiByZWdpc3RlcmVkIHdpdGhvdXQgYSAqc3VwcGx5RGVmYXVsdHMqIG1ldGhvZC4iKSxyLnRyYW5zZm9ybXNSZWdpc3RyeVt0Lm5hbWVdPXQsci5jb21wb25lbnRzUmVnaXN0cnkpeChzLHQubmFtZSl9ZnVuY3Rpb24gZyh0KXt2YXIgZT10Lm5hbWUsbj1lLnNwbGl0KCItIilbMF0saT10LmRpY3Rpb25hcnksYT10LmZvcm1hdCxvPWkmJk9iamVjdC5rZXlzKGkpLmxlbmd0aCxzPWEmJk9iamVjdC5rZXlzKGEpLmxlbmd0aCxsPXIubG9jYWxlUmVnaXN0cnksYz1sW2VdO2lmKGN8fChsW2VdPWM9e30pLG4hPT1lKXt2YXIgdT1sW25dO3V8fChsW25dPXU9e30pLG8mJnUuZGljdGlvbmFyeT09PWMuZGljdGlvbmFyeSYmKHUuZGljdGlvbmFyeT1pKSxzJiZ1LmZvcm1hdD09PWMuZm9ybWF0JiYodS5mb3JtYXQ9YSl9byYmKGMuZGljdGlvbmFyeT1pKSxzJiYoYy5mb3JtYXQ9YSl9ZnVuY3Rpb24gdih0KXtpZih0LmxheW91dEF0dHJpYnV0ZXMpe3ZhciBlPXQubGF5b3V0QXR0cmlidXRlcy5fYXJyYXlBdHRyUmVnZXhwcztpZihlKWZvcih2YXIgbj0wO248ZS5sZW5ndGg7bisrKWEoci5sYXlvdXRBcnJheVJlZ2V4ZXMsZVtuXSl9fWZ1bmN0aW9uIHkodCxlKXt2YXIgbj1yLmNvbXBvbmVudHNSZWdpc3RyeVt0XS5zY2hlbWE7aWYobiYmbi50cmFjZXMpe3ZhciBpPW4udHJhY2VzW2VdO2kmJmgoci5tb2R1bGVzW2VdLl9tb2R1bGUuYXR0cmlidXRlcyxpKX19ZnVuY3Rpb24geCh0LGUpe3ZhciBuPXIuY29tcG9uZW50c1JlZ2lzdHJ5W3RdLnNjaGVtYTtpZihuJiZuLnRyYW5zZm9ybXMpe3ZhciBpPW4udHJhbnNmb3Jtc1tlXTtpJiZoKHIudHJhbnNmb3Jtc1JlZ2lzdHJ5W2VdLmF0dHJpYnV0ZXMsaSl9fWZ1bmN0aW9uIGIodCxlKXt2YXIgbj1yLmNvbXBvbmVudHNSZWdpc3RyeVt0XS5zY2hlbWE7aWYobiYmbi5zdWJwbG90cyl7dmFyIGk9ci5zdWJwbG90c1JlZ2lzdHJ5W2VdLGE9aS5sYXlvdXRBdHRyaWJ1dGVzLG89InN1YnBsb3QiPT09aS5hdHRyP2kubmFtZTppLmF0dHI7QXJyYXkuaXNBcnJheShvKSYmKG89b1swXSk7dmFyIHM9bi5zdWJwbG90c1tvXTthJiZzJiZoKGEscyl9fWZ1bmN0aW9uIF8odCl7cmV0dXJuIm9iamVjdCI9PXR5cGVvZiB0JiYodD10LnR5cGUpLHR9ci5tb2R1bGVzPXt9LHIuYWxsQ2F0ZWdvcmllcz17fSxyLmFsbFR5cGVzPVtdLHIuc3VicGxvdHNSZWdpc3RyeT17fSxyLnRyYW5zZm9ybXNSZWdpc3RyeT17fSxyLmNvbXBvbmVudHNSZWdpc3RyeT17fSxyLmxheW91dEFycmF5Q29udGFpbmVycz1bXSxyLmxheW91dEFycmF5UmVnZXhlcz1bXSxyLnRyYWNlTGF5b3V0QXR0cmlidXRlcz17fSxyLmxvY2FsZVJlZ2lzdHJ5PXt9LHIuYXBpTWV0aG9kUmVnaXN0cnk9e30sci5jb2xsZWN0YWJsZVN1YnBsb3RUeXBlcz1udWxsLHIucmVnaXN0ZXI9ZnVuY3Rpb24odCl7aWYoci5jb2xsZWN0YWJsZVN1YnBsb3RUeXBlcz1udWxsLCF0KXRocm93IG5ldyBFcnJvcigiTm8gYXJndW1lbnQgcGFzc2VkIHRvIFBsb3RseS5yZWdpc3Rlci4iKTt0JiYhQXJyYXkuaXNBcnJheSh0KSYmKHQ9W3RdKTtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIG49dFtlXTtpZighbil0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgbW9kdWxlIHdhcyBhdHRlbXB0ZWQgdG8gYmUgcmVnaXN0ZXJlZCEiKTtzd2l0Y2gobi5tb2R1bGVUeXBlKXtjYXNlInRyYWNlIjpwKG4pO2JyZWFrO2Nhc2UidHJhbnNmb3JtIjptKG4pO2JyZWFrO2Nhc2UiY29tcG9uZW50IjpkKG4pO2JyZWFrO2Nhc2UibG9jYWxlIjpnKG4pO2JyZWFrO2Nhc2UiYXBpTWV0aG9kIjp2YXIgaT1uLm5hbWU7ci5hcGlNZXRob2RSZWdpc3RyeVtpXT1uLmZuO2JyZWFrO2RlZmF1bHQ6dGhyb3cgbmV3IEVycm9yKCJJbnZhbGlkIG1vZHVsZSB3YXMgYXR0ZW1wdGVkIHRvIGJlIHJlZ2lzdGVyZWQhIil9fX0sci5nZXRNb2R1bGU9ZnVuY3Rpb24odCl7dmFyIGU9ci5tb2R1bGVzW18odCldO3JldHVybiEhZSYmZS5fbW9kdWxlfSxyLnRyYWNlSXM9ZnVuY3Rpb24odCxlKXtpZigidmFyaW91cyI9PT0odD1fKHQpKSlyZXR1cm4hMTt2YXIgaT1yLm1vZHVsZXNbdF07cmV0dXJuIGl8fCh0JiZuLmxvZygiVW5yZWNvZ25pemVkIHRyYWNlIHR5cGUgIit0KyIuIiksaT1yLm1vZHVsZXNbYy50eXBlLmRmbHRdKSwhIWkuY2F0ZWdvcmllc1tlXX0sci5nZXRUcmFuc2Zvcm1JbmRpY2VzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49dC50cmFuc2Zvcm1zfHxbXSxpPTA7aTxuLmxlbmd0aDtpKyspbltpXS50eXBlPT09ZSYmci5wdXNoKGkpO3JldHVybiByfSxyLmhhc1RyYW5zZm9ybT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LnRyYW5zZm9ybXN8fFtdLG49MDtuPHIubGVuZ3RoO24rKylpZihyW25dLnR5cGU9PT1lKXJldHVybiEwO3JldHVybiExfSxyLmdldENvbXBvbmVudE1ldGhvZD1mdW5jdGlvbih0LGUpe3ZhciBuPXIuY29tcG9uZW50c1JlZ2lzdHJ5W3RdO3JldHVybiBuJiZuW2VdfHxpfSxyLmNhbGw9ZnVuY3Rpb24oKXt2YXIgdD1hcmd1bWVudHNbMF0sZT1bXS5zbGljZS5jYWxsKGFyZ3VtZW50cywxKTtyZXR1cm4gci5hcGlNZXRob2RSZWdpc3RyeVt0XS5hcHBseShudWxsLGUpfX0seyIuL2xpYi9kb20iOjc2NCwiLi9saWIvZXh0ZW5kIjo3NjYsIi4vbGliL2lzX3BsYWluX29iamVjdCI6Nzc3LCIuL2xpYi9sb2dnZXJzIjo3ODAsIi4vbGliL25vb3AiOjc4NSwiLi9saWIvcHVzaF91bmlxdWUiOjc5MSwiLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4vcGxvdHMvbGF5b3V0X2F0dHJpYnV0ZXMiOjg4MX1dLDkwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9yZWdpc3RyeSIpLGk9dCgiLi4vbGliIiksYT1pLmV4dGVuZEZsYXQsbz1pLmV4dGVuZERlZXA7ZnVuY3Rpb24gcyh0KXt2YXIgZTtzd2l0Y2godCl7Y2FzZSJ0aGVtZXNfX3RodW1iIjplPXthdXRvc2l6ZTohMCx3aWR0aDoxNTAsaGVpZ2h0OjE1MCx0aXRsZTp7dGV4dDoiIn0sc2hvd2xlZ2VuZDohMSxtYXJnaW46e2w6NSxyOjUsdDo1LGI6NSxwYWQ6MH0sYW5ub3RhdGlvbnM6W119O2JyZWFrO2Nhc2UidGh1bWJuYWlsIjplPXt0aXRsZTp7dGV4dDoiIn0saGlkZXNvdXJjZXM6ITAsc2hvd2xlZ2VuZDohMSxib3JkZXJ3aWR0aDowLGJvcmRlcmNvbG9yOiIiLG1hcmdpbjp7bDoxLHI6MSx0OjEsYjoxLHBhZDowfSxhbm5vdGF0aW9uczpbXX07YnJlYWs7ZGVmYXVsdDplPXt9fXJldHVybiBlfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGksbD10LmRhdGEsYz10LmxheW91dCx1PW8oW10sbCksZj1vKHt9LGMscyhlLnRpbGVDbGFzcykpLGg9dC5fY29udGV4dHx8e307aWYoZS53aWR0aCYmKGYud2lkdGg9ZS53aWR0aCksZS5oZWlnaHQmJihmLmhlaWdodD1lLmhlaWdodCksInRodW1ibmFpbCI9PT1lLnRpbGVDbGFzc3x8InRoZW1lc19fdGh1bWIiPT09ZS50aWxlQ2xhc3Mpe2YuYW5ub3RhdGlvbnM9W107dmFyIHA9T2JqZWN0LmtleXMoZik7Zm9yKHI9MDtyPHAubGVuZ3RoO3IrKylpPXBbcl0sWyJ4YXhpcyIsInlheGlzIiwiemF4aXMiXS5pbmRleE9mKGkuc2xpY2UoMCw1KSk+LTEmJihmW3Bbcl1dLnRpdGxlPXt0ZXh0OiIifSk7Zm9yKHI9MDtyPHUubGVuZ3RoO3IrKyl7dmFyIGQ9dVtyXTtkLnNob3dzY2FsZT0hMSxkLm1hcmtlciYmKGQubWFya2VyLnNob3dzY2FsZT0hMSksbi50cmFjZUlzKGQsInBpZS1saWtlIikmJihkLnRleHRwb3NpdGlvbj0ibm9uZSIpfX1pZihBcnJheS5pc0FycmF5KGUuYW5ub3RhdGlvbnMpKWZvcihyPTA7cjxlLmFubm90YXRpb25zLmxlbmd0aDtyKyspZi5hbm5vdGF0aW9ucy5wdXNoKGUuYW5ub3RhdGlvbnNbcl0pO3ZhciBtPU9iamVjdC5rZXlzKGYpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQubWF0Y2goL15zY2VuZVxkKiQvKX0pKTtpZihtLmxlbmd0aCl7dmFyIGc9e307Zm9yKCJ0aHVtYm5haWwiPT09ZS50aWxlQ2xhc3MmJihnPXt0aXRsZTp7dGV4dDoiIn0sc2hvd2F4ZXNsYWJlbHM6ITEsc2hvd3RpY2tsYWJlbHM6ITEsbGluZXRpY2tlbmFibGU6ITF9KSxyPTA7cjxtLmxlbmd0aDtyKyspe3ZhciB2PWZbbVtyXV07di54YXhpc3x8KHYueGF4aXM9e30pLHYueWF4aXN8fCh2LnlheGlzPXt9KSx2LnpheGlzfHwodi56YXhpcz17fSksYSh2LnhheGlzLGcpLGEodi55YXhpcyxnKSxhKHYuemF4aXMsZyksdi5fc2NlbmU9bnVsbH19dmFyIHk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7ZS50aWxlQ2xhc3MmJih5LmNsYXNzTmFtZT1lLnRpbGVDbGFzcyk7dmFyIHg9e2dkOnksdGQ6eSxsYXlvdXQ6ZixkYXRhOnUsY29uZmlnOntzdGF0aWNQbG90OnZvaWQgMD09PWUuc3RhdGljUGxvdHx8ZS5zdGF0aWNQbG90LHBsb3RHbFBpeGVsUmF0aW86dm9pZCAwPT09ZS5wbG90R2xQaXhlbFJhdGlvPzI6ZS5wbG90R2xQaXhlbFJhdGlvLGRpc3BsYXlsb2dvOmUuZGlzcGxheWxvZ298fCExLHNob3dMaW5rOmUuc2hvd0xpbmt8fCExLHNob3dUaXBzOmUuc2hvd1RpcHN8fCExLG1hcGJveEFjY2Vzc1Rva2VuOmgubWFwYm94QWNjZXNzVG9rZW59fTtyZXR1cm4idHJhbnNwYXJlbnQiIT09ZS5zZXRCYWNrZ3JvdW5kJiYoeC5jb25maWcuc2V0QmFja2dyb3VuZD1lLnNldEJhY2tncm91bmR8fCJvcGFxdWUiKSx4LmdkLmRlZmF1bHRMYXlvdXQ9cyhlLnRpbGVDbGFzcykseH19LHsiLi4vbGliIjo3NzYsIi4uL3JlZ2lzdHJ5Ijo5MDR9XSw5MDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT10KCIuLi9wbG90X2FwaS90b19pbWFnZSIpLGE9dCgiLi9maWxlc2F2ZXIiKSxvPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByO3JldHVybiBuLmlzUGxhaW5PYmplY3QodCl8fChyPW4uZ2V0R3JhcGhEaXYodCkpLChlPWV8fHt9KS5mb3JtYXQ9ZS5mb3JtYXR8fCJwbmciLGUud2lkdGg9ZS53aWR0aHx8bnVsbCxlLmhlaWdodD1lLmhlaWdodHx8bnVsbCxlLmltYWdlRGF0YU9ubHk9ITAsbmV3IFByb21pc2UoKGZ1bmN0aW9uKHMsbCl7ciYmci5fc25hcHNob3RJblByb2dyZXNzJiZsKG5ldyBFcnJvcigiU25hcHNob3R0aW5nIGFscmVhZHkgaW4gcHJvZ3Jlc3MuIikpLG4uaXNJRSgpJiYic3ZnIiE9PWUuZm9ybWF0JiZsKG5ldyBFcnJvcihvLk1TR19JRV9CQURfRk9STUFUKSksciYmKHIuX3NuYXBzaG90SW5Qcm9ncmVzcz0hMCk7dmFyIGM9aSh0LGUpLHU9ZS5maWxlbmFtZXx8dC5mbnx8Im5ld3Bsb3QiO3UrPSIuIitlLmZvcm1hdC5yZXBsYWNlKCItIiwiLiIpLGMudGhlbigoZnVuY3Rpb24odCl7cmV0dXJuIHImJihyLl9zbmFwc2hvdEluUHJvZ3Jlc3M9ITEpLGEodCx1LGUuZm9ybWF0KX0pKS50aGVuKChmdW5jdGlvbih0KXtzKHQpfSkpLmNhdGNoKChmdW5jdGlvbih0KXtyJiYoci5fc25hcHNob3RJblByb2dyZXNzPSExKSxsKHQpfSkpfSkpfX0seyIuLi9saWIiOjc3NiwiLi4vcGxvdF9hcGkvdG9faW1hZ2UiOjgxOSwiLi9maWxlc2F2ZXIiOjkwNywiLi9oZWxwZXJzIjo5MDh9XSw5MDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vbGliIiksaT10KCIuL2hlbHBlcnMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImEiKSxvPSJkb3dubG9hZCJpbiBhO3JldHVybiBuZXcgUHJvbWlzZSgoZnVuY3Rpb24ocyxsKXt2YXIgYyx1O2lmKG4uaXNJRSgpKXJldHVybiBjPWkuY3JlYXRlQmxvYih0LCJzdmciKSx3aW5kb3cubmF2aWdhdG9yLm1zU2F2ZUJsb2IoYyxlKSxjPW51bGwscyhlKTtpZihvKXJldHVybiBjPWkuY3JlYXRlQmxvYih0LHIpLHU9aS5jcmVhdGVPYmplY3RVUkwoYyksYS5ocmVmPXUsYS5kb3dubG9hZD1lLGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYSksYS5jbGljaygpLGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoYSksaS5yZXZva2VPYmplY3RVUkwodSksYz1udWxsLHMoZSk7aWYobi5pc1NhZmFyaSgpKXt2YXIgZj0ic3ZnIj09PXI/IiwiOiI7YmFzZTY0LCI7cmV0dXJuIGkub2N0ZXRTdHJlYW0oZitlbmNvZGVVUklDb21wb25lbnQodCkpLHMoZSl9bChuZXcgRXJyb3IoImRvd25sb2FkIGVycm9yIikpfSkpfX0seyIuLi9saWIiOjc3NiwiLi9oZWxwZXJzIjo5MDh9XSw5MDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vcmVnaXN0cnkiKTtyLmdldERlbGF5PWZ1bmN0aW9uKHQpe3JldHVybiB0Ll9oYXMmJih0Ll9oYXMoImdsM2QiKXx8dC5faGFzKCJnbDJkIil8fHQuX2hhcygibWFwYm94IikpPzUwMDowfSxyLmdldFJlZHJhd0Z1bmM9ZnVuY3Rpb24odCl7cmV0dXJuIGZ1bmN0aW9uKCl7bi5nZXRDb21wb25lbnRNZXRob2QoImNvbG9yYmFyIiwiZHJhdyIpKHQpfX0sci5lbmNvZGVTVkc9ZnVuY3Rpb24odCl7cmV0dXJuImRhdGE6aW1hZ2Uvc3ZnK3htbCwiK2VuY29kZVVSSUNvbXBvbmVudCh0KX0sci5lbmNvZGVKU09OPWZ1bmN0aW9uKHQpe3JldHVybiJkYXRhOmFwcGxpY2F0aW9uL2pzb24sIitlbmNvZGVVUklDb21wb25lbnQodCl9O3ZhciBpPXdpbmRvdy5VUkx8fHdpbmRvdy53ZWJraXRVUkw7ci5jcmVhdGVPYmplY3RVUkw9ZnVuY3Rpb24odCl7cmV0dXJuIGkuY3JlYXRlT2JqZWN0VVJMKHQpfSxyLnJldm9rZU9iamVjdFVSTD1mdW5jdGlvbih0KXtyZXR1cm4gaS5yZXZva2VPYmplY3RVUkwodCl9LHIuY3JlYXRlQmxvYj1mdW5jdGlvbih0LGUpe2lmKCJzdmciPT09ZSlyZXR1cm4gbmV3IHdpbmRvdy5CbG9iKFt0XSx7dHlwZToiaW1hZ2Uvc3ZnK3htbDtjaGFyc2V0PXV0Zi04In0pO2lmKCJmdWxsLWpzb24iPT09ZSlyZXR1cm4gbmV3IHdpbmRvdy5CbG9iKFt0XSx7dHlwZToiYXBwbGljYXRpb24vanNvbjtjaGFyc2V0PXV0Zi04In0pO3ZhciByPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT10Lmxlbmd0aCxyPW5ldyBBcnJheUJ1ZmZlcihlKSxuPW5ldyBVaW50OEFycmF5KHIpLGk9MDtpPGU7aSsrKW5baV09dC5jaGFyQ29kZUF0KGkpO3JldHVybiByfSh3aW5kb3cuYXRvYih0KSk7cmV0dXJuIG5ldyB3aW5kb3cuQmxvYihbcl0se3R5cGU6ImltYWdlLyIrZX0pfSxyLm9jdGV0U3RyZWFtPWZ1bmN0aW9uKHQpe2RvY3VtZW50LmxvY2F0aW9uLmhyZWY9ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtIit0fSxyLklNQUdFX1VSTF9QUkVGSVg9L15kYXRhOmltYWdlXC9cdys7YmFzZTY0LC8sci5NU0dfSUVfQkFEX0ZPUk1BVD0iU29ycnkgSUUgZG9lcyBub3Qgc3VwcG9ydCBkb3dubG9hZGluZyBmcm9tIGNhbnZhcy4gVHJ5IHtmb3JtYXQ6J3N2Zyd9IGluc3RlYWQuIn0seyIuLi9yZWdpc3RyeSI6OTA0fV0sOTA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaGVscGVycyIpLGk9e2dldERlbGF5Om4uZ2V0RGVsYXksZ2V0UmVkcmF3RnVuYzpuLmdldFJlZHJhd0Z1bmMsY2xvbmU6dCgiLi9jbG9uZXBsb3QiKSx0b1NWRzp0KCIuL3Rvc3ZnIiksc3ZnVG9JbWc6dCgiLi9zdmd0b2ltZyIpLHRvSW1hZ2U6dCgiLi90b2ltYWdlIiksZG93bmxvYWRJbWFnZTp0KCIuL2Rvd25sb2FkIil9O2UuZXhwb3J0cz1pfSx7Ii4vY2xvbmVwbG90Ijo5MDUsIi4vZG93bmxvYWQiOjkwNiwiLi9oZWxwZXJzIjo5MDgsIi4vc3ZndG9pbWciOjkxMCwiLi90b2ltYWdlIjo5MTEsIi4vdG9zdmciOjkxMn1dLDkxMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoImV2ZW50cyIpLkV2ZW50RW1pdHRlcixhPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10LmVtaXR0ZXJ8fG5ldyBpLHI9bmV3IFByb21pc2UoKGZ1bmN0aW9uKGksbyl7dmFyIHM9d2luZG93LkltYWdlLGw9dC5zdmcsYz10LmZvcm1hdHx8InBuZyI7aWYobi5pc0lFKCkmJiJzdmciIT09Yyl7dmFyIHU9bmV3IEVycm9yKGEuTVNHX0lFX0JBRF9GT1JNQVQpO3JldHVybiBvKHUpLHQucHJvbWlzZT9yOmUuZW1pdCgiZXJyb3IiLHUpfXZhciBmLGgscD10LmNhbnZhcyxkPXQuc2NhbGV8fDEsbT10LndpZHRofHwzMDAsZz10LmhlaWdodHx8MTUwLHY9ZCptLHk9ZCpnLHg9cC5nZXRDb250ZXh0KCIyZCIpLGI9bmV3IHM7InN2ZyI9PT1jfHxuLmlzU2FmYXJpKCk/aD1hLmVuY29kZVNWRyhsKTooZj1hLmNyZWF0ZUJsb2IobCwic3ZnIiksaD1hLmNyZWF0ZU9iamVjdFVSTChmKSkscC53aWR0aD12LHAuaGVpZ2h0PXksYi5vbmxvYWQ9ZnVuY3Rpb24oKXt2YXIgcjtzd2l0Y2goZj1udWxsLGEucmV2b2tlT2JqZWN0VVJMKGgpLCJzdmciIT09YyYmeC5kcmF3SW1hZ2UoYiwwLDAsdix5KSxjKXtjYXNlImpwZWciOnI9cC50b0RhdGFVUkwoImltYWdlL2pwZWciKTticmVhaztjYXNlInBuZyI6cj1wLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIik7YnJlYWs7Y2FzZSJ3ZWJwIjpyPXAudG9EYXRhVVJMKCJpbWFnZS93ZWJwIik7YnJlYWs7Y2FzZSJzdmciOnI9aDticmVhaztkZWZhdWx0OnZhciBuPSJJbWFnZSBmb3JtYXQgaXMgbm90IGpwZWcsIHBuZywgc3ZnIG9yIHdlYnAuIjtpZihvKG5ldyBFcnJvcihuKSksIXQucHJvbWlzZSlyZXR1cm4gZS5lbWl0KCJlcnJvciIsbil9aShyKSx0LnByb21pc2V8fGUuZW1pdCgic3VjY2VzcyIscil9LGIub25lcnJvcj1mdW5jdGlvbihyKXtpZihmPW51bGwsYS5yZXZva2VPYmplY3RVUkwoaCksbyhyKSwhdC5wcm9taXNlKXJldHVybiBlLmVtaXQoImVycm9yIixyKX0sYi5zcmM9aH0pKTtyZXR1cm4gdC5wcm9taXNlP3I6ZX19LHsiLi4vbGliIjo3NzYsIi4vaGVscGVycyI6OTA4LGV2ZW50czoyMzd9XSw5MTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZXZlbnRzIikuRXZlbnRFbWl0dGVyLGk9dCgiLi4vcmVnaXN0cnkiKSxhPXQoIi4uL2xpYiIpLG89dCgiLi9oZWxwZXJzIikscz10KCIuL2Nsb25lcGxvdCIpLGw9dCgiLi90b3N2ZyIpLGM9dCgiLi9zdmd0b2ltZyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPW5ldyBuLHU9cyh0LHtmb3JtYXQ6InBuZyJ9KSxmPXUuZ2Q7Zi5zdHlsZS5wb3NpdGlvbj0iYWJzb2x1dGUiLGYuc3R5bGUubGVmdD0iLTUwMDBweCIsZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChmKTt2YXIgaD1vLmdldFJlZHJhd0Z1bmMoZik7cmV0dXJuIGkuY2FsbCgiX2RvUGxvdCIsZix1LmRhdGEsdS5sYXlvdXQsdS5jb25maWcpLnRoZW4oaCkudGhlbigoZnVuY3Rpb24oKXt2YXIgdD1vLmdldERlbGF5KGYuX2Z1bGxMYXlvdXQpO3NldFRpbWVvdXQoKGZ1bmN0aW9uKCl7dmFyIHQ9bChmKSxuPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO24uaWQ9YS5yYW5kc3RyKCksKHI9Yyh7Zm9ybWF0OmUuZm9ybWF0LHdpZHRoOmYuX2Z1bGxMYXlvdXQud2lkdGgsaGVpZ2h0OmYuX2Z1bGxMYXlvdXQuaGVpZ2h0LGNhbnZhczpuLGVtaXR0ZXI6cixzdmc6dH0pKS5jbGVhbj1mdW5jdGlvbigpe2YmJmRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZil9fSksdCl9KSkuY2F0Y2goKGZ1bmN0aW9uKHQpe3IuZW1pdCgiZXJyb3IiLHQpfSkpLHJ9fSx7Ii4uL2xpYiI6Nzc2LCIuLi9yZWdpc3RyeSI6OTA0LCIuL2Nsb25lcGxvdCI6OTA1LCIuL2hlbHBlcnMiOjkwOCwiLi9zdmd0b2ltZyI6OTEwLCIuL3Rvc3ZnIjo5MTIsZXZlbnRzOjIzN31dLDkxMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi9saWIiKSxhPXQoIi4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vY29tcG9uZW50cy9jb2xvciIpLHM9dCgiLi4vY29uc3RhbnRzL3htbG5zX25hbWVzcGFjZXMiKSxsPS8iL2csYz1uZXcgUmVnRXhwKCcoIlRPQkVTVFJJUFBFRCl8KFRPQkVTVFJJUFBFRCIpJywiZyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIHUsZixoPXQuX2Z1bGxMYXlvdXQscD1oLl9wYXBlcixkPWguX3RvcHBhcGVyLG09aC53aWR0aCxnPWguaGVpZ2h0O3AuaW5zZXJ0KCJyZWN0IiwiOmZpcnN0LWNoaWxkIikuY2FsbChhLnNldFJlY3QsMCwwLG0sZykuY2FsbChvLmZpbGwsaC5wYXBlcl9iZ2NvbG9yKTt2YXIgdj1oLl9iYXNlUGxvdE1vZHVsZXN8fFtdO2Zvcih1PTA7dTx2Lmxlbmd0aDt1Kyspe3ZhciB5PXZbdV07eS50b1NWRyYmeS50b1NWRyh0KX1pZihkKXt2YXIgeD1kLm5vZGUoKS5jaGlsZE5vZGVzLGI9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoeCk7Zm9yKHU9MDt1PGIubGVuZ3RoO3UrKyl7dmFyIF89Ylt1XTtfLmNoaWxkTm9kZXMubGVuZ3RoJiZwLm5vZGUoKS5hcHBlbmRDaGlsZChfKX19aC5fZHJhZ2dlcnMmJmguX2RyYWdnZXJzLnJlbW92ZSgpLHAubm9kZSgpLnN0eWxlLmJhY2tncm91bmQ9IiIscC5zZWxlY3RBbGwoInRleHQiKS5hdHRyKHsiZGF0YS11bmZvcm1hdHRlZCI6bnVsbCwiZGF0YS1tYXRoIjpudWxsfSkuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1uLnNlbGVjdCh0aGlzKTtpZigiaGlkZGVuIiE9PXRoaXMuc3R5bGUudmlzaWJpbGl0eSYmIm5vbmUiIT09dGhpcy5zdHlsZS5kaXNwbGF5KXt0LnN0eWxlKHt2aXNpYmlsaXR5Om51bGwsZGlzcGxheTpudWxsfSk7dmFyIGU9dGhpcy5zdHlsZS5mb250RmFtaWx5O2UmJi0xIT09ZS5pbmRleE9mKCciJykmJnQuc3R5bGUoImZvbnQtZmFtaWx5IixlLnJlcGxhY2UobCwiVE9CRVNUUklQUEVEIikpfWVsc2UgdC5yZW1vdmUoKX0pKTt2YXIgdz1bXTtpZihoLl9ncmFkaWVudFVybFF1ZXJ5UGFydHMpZm9yKGYgaW4gaC5fZ3JhZGllbnRVcmxRdWVyeVBhcnRzKXcucHVzaChmKTtpZihoLl9wYXR0ZXJuVXJsUXVlcnlQYXJ0cylmb3IoZiBpbiBoLl9wYXR0ZXJuVXJsUXVlcnlQYXJ0cyl3LnB1c2goZik7dy5sZW5ndGgmJnAuc2VsZWN0QWxsKHcuam9pbigiLCIpKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpLGU9dGhpcy5zdHlsZS5maWxsO2UmJi0xIT09ZS5pbmRleE9mKCJ1cmwoIikmJnQuc3R5bGUoImZpbGwiLGUucmVwbGFjZShsLCJUT0JFU1RSSVBQRUQiKSk7dmFyIHI9dGhpcy5zdHlsZS5zdHJva2U7ciYmLTEhPT1yLmluZGV4T2YoInVybCgiKSYmdC5zdHlsZSgic3Ryb2tlIixyLnJlcGxhY2UobCwiVE9CRVNUUklQUEVEIikpfSkpLCJwZGYiIT09ZSYmImVwcyIhPT1lfHxwLnNlbGVjdEFsbCgiI01hdGhKYXhfU1ZHX2dseXBocyBwYXRoIikuYXR0cigic3Ryb2tlLXdpZHRoIiwwKSxwLm5vZGUoKS5zZXRBdHRyaWJ1dGVOUyhzLnhtbG5zLCJ4bWxucyIscy5zdmcpLHAubm9kZSgpLnNldEF0dHJpYnV0ZU5TKHMueG1sbnMsInhtbG5zOnhsaW5rIixzLnhsaW5rKSwic3ZnIj09PWUmJnImJihwLmF0dHIoIndpZHRoIixyKm0pLHAuYXR0cigiaGVpZ2h0IixyKmcpLHAuYXR0cigidmlld0JveCIsIjAgMCAiK20rIiAiK2cpKTt2YXIgVD0obmV3IHdpbmRvdy5YTUxTZXJpYWxpemVyKS5zZXJpYWxpemVUb1N0cmluZyhwLm5vZGUoKSk7cmV0dXJuIFQ9ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QoImJvZHkiKS5hcHBlbmQoImRpdiIpLnN0eWxlKHtkaXNwbGF5OiJub25lIn0pLmh0bWwoIiIpLHI9dC5yZXBsYWNlKC8oJlteO10qOykvZ2ksKGZ1bmN0aW9uKHQpe3JldHVybiImbHQ7Ij09PXQ/IiYjNjA7IjoiJnJ0OyI9PT10PyImIzYyOyI6LTEhPT10LmluZGV4T2YoIjwiKXx8LTEhPT10LmluZGV4T2YoIj4iKT8iIjplLmh0bWwodCkudGV4dCgpfSkpO3JldHVybiBlLnJlbW92ZSgpLHJ9KFQpLFQ9KFQ9VC5yZXBsYWNlKC8mKD8hXHcrO3xcI1swLTldKzt8IFwjeFswLTlBLUZdKzspL2csIiZhbXA7IikpLnJlcGxhY2UoYywiJyIpLGkuaXNJRSgpJiYoVD0oVD0oVD1ULnJlcGxhY2UoLyIvZ2ksIiciKSkucmVwbGFjZSgvKFwoJyMpKFteJ10qKSgnXCkpL2dpLCcoIiMkMiIpJykpLnJlcGxhY2UoLyhcXCcpL2dpLCciJykpLFR9fSx7Ii4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uL2NvbnN0YW50cy94bWxuc19uYW1lc3BhY2VzIjo3NTMsIi4uL2xpYiI6Nzc2LCJAcGxvdGx5L2QzIjo1OH1dLDkxMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdLmk9cjtuLm1lcmdlQXJyYXkoZS50ZXh0LHQsInR4Iiksbi5tZXJnZUFycmF5KGUuaG92ZXJ0ZXh0LHQsImh0eCIpO3ZhciBpPWUubWFya2VyO2lmKGkpe24ubWVyZ2VBcnJheShpLm9wYWNpdHksdCwibW8iLCEwKSxuLm1lcmdlQXJyYXkoaS5jb2xvcix0LCJtYyIpO3ZhciBhPWkubGluZTthJiYobi5tZXJnZUFycmF5KGEuY29sb3IsdCwibWxjIiksbi5tZXJnZUFycmF5Q2FzdFBvc2l0aXZlKGEud2lkdGgsdCwibWx3IikpfX19LHsiLi4vLi4vbGliIjo3NzZ9XSw5MTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsbz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksYz10KCIuL2NvbnN0YW50cyIpLHU9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5wYXR0ZXJuLGY9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD1sKHtlZGl0VHlwZToiY2FsYyIsYXJyYXlPazohMCxjb2xvckVkaXRUeXBlOiJzdHlsZSJ9KSxwPWYoe30sbi5tYXJrZXIubGluZS53aWR0aCx7ZGZsdDowfSksZD1mKHt3aWR0aDpwLGVkaXRUeXBlOiJjYWxjIn0scygibWFya2VyLmxpbmUiKSksbT1mKHtsaW5lOmQsZWRpdFR5cGU6ImNhbGMifSxzKCJtYXJrZXIiKSx7b3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixhcnJheU9rOiEwLGRmbHQ6MSxtaW46MCxtYXg6MSxlZGl0VHlwZToic3R5bGUifSxwYXR0ZXJuOnV9KTtlLmV4cG9ydHM9e3g6bi54LHgwOm4ueDAsZHg6bi5keCx5Om4ueSx5MDpuLnkwLGR5Om4uZHkseHBlcmlvZDpuLnhwZXJpb2QseXBlcmlvZDpuLnlwZXJpb2QseHBlcmlvZDA6bi54cGVyaW9kMCx5cGVyaW9kMDpuLnlwZXJpb2QwLHhwZXJpb2RhbGlnbm1lbnQ6bi54cGVyaW9kYWxpZ25tZW50LHlwZXJpb2RhbGlnbm1lbnQ6bi55cGVyaW9kYWxpZ25tZW50LHhob3ZlcmZvcm1hdDppKCJ4IikseWhvdmVyZm9ybWF0OmkoInkiKSx0ZXh0Om4udGV4dCx0ZXh0dGVtcGxhdGU6byh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpjLmV2ZW50RGF0YUtleXN9KSxob3ZlcnRleHQ6bi5ob3ZlcnRleHQsaG92ZXJ0ZW1wbGF0ZTphKHt9LHtrZXlzOmMuZXZlbnREYXRhS2V5c30pLHRleHRwb3NpdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5zaWRlIiwib3V0c2lkZSIsImF1dG8iLCJub25lIl0sZGZsdDoiYXV0byIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGluc2lkZXRleHRhbmNob3I6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImVuZCIsIm1pZGRsZSIsInN0YXJ0Il0sZGZsdDoiZW5kIixlZGl0VHlwZToicGxvdCJ9LHRleHRhbmdsZTp7dmFsVHlwZToiYW5nbGUiLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJwbG90In0sdGV4dGZvbnQ6Zih7fSxoLHt9KSxpbnNpZGV0ZXh0Zm9udDpmKHt9LGgse30pLG91dHNpZGV0ZXh0Zm9udDpmKHt9LGgse30pLGNvbnN0cmFpbnRleHQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluc2lkZSIsIm91dHNpZGUiLCJib3RoIiwibm9uZSJdLGRmbHQ6ImJvdGgiLGVkaXRUeXBlOiJjYWxjIn0sY2xpcG9uYXhpczpmKHt9LG4uY2xpcG9uYXhpcyx7fSksb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl0sZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxiYXNlOnt2YWxUeXBlOiJhbnkiLGRmbHQ6bnVsbCxhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0sb2Zmc2V0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLG1pbjowLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6bSxvZmZzZXRncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sYWxpZ25tZW50Z3JvdXA6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToiY2FsYyJ9LHNlbGVjdGVkOnttYXJrZXI6e29wYWNpdHk6bi5zZWxlY3RlZC5tYXJrZXIub3BhY2l0eSxjb2xvcjpuLnNlbGVjdGVkLm1hcmtlci5jb2xvcixlZGl0VHlwZToic3R5bGUifSx0ZXh0Zm9udDpuLnNlbGVjdGVkLnRleHRmb250LGVkaXRUeXBlOiJzdHlsZSJ9LHVuc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTpuLnVuc2VsZWN0ZWQubWFya2VyLm9wYWNpdHksY29sb3I6bi51bnNlbGVjdGVkLm1hcmtlci5jb2xvcixlZGl0VHlwZToic3R5bGUifSx0ZXh0Zm9udDpuLnVuc2VsZWN0ZWQudGV4dGZvbnQsZWRpdFR5cGU6InN0eWxlIn0sX2RlcHJlY2F0ZWQ6e2JhcmRpcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsZWRpdFR5cGU6ImNhbGMiLHZhbHVlczpbInYiLCJoIl19fX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjY0NiwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiOjY2MCwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6ODMwLCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjg1NiwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODk5LCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExOTEsIi4vY29uc3RhbnRzIjo5MTZ9XSw5MTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIikuaGFzQ29sb3JzY2FsZSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIikscz10KCIuL2FycmF5c190b19jYWxjZGF0YSIpLGw9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGMsdSxmLGgscCxkPW4uZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSxtPW4uZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxnPXttc1VUQzohKCFlLmJhc2UmJjAhPT1lLmJhc2UpfTsiaCI9PT1lLm9yaWVudGF0aW9uPyhyPWQubWFrZUNhbGNkYXRhKGUsIngiLGcpLHU9bS5tYWtlQ2FsY2RhdGEoZSwieSIpLGY9aShlLG0sInkiLHUpLGg9ISFlLnlwZXJpb2RhbGlnbm1lbnQscD0ieSIpOihyPW0ubWFrZUNhbGNkYXRhKGUsInkiLGcpLHU9ZC5tYWtlQ2FsY2RhdGEoZSwieCIpLGY9aShlLGQsIngiLHUpLGg9ISFlLnhwZXJpb2RhbGlnbm1lbnQscD0ieCIpLGM9Zi52YWxzO2Zvcih2YXIgdj1NYXRoLm1pbihjLmxlbmd0aCxyLmxlbmd0aCkseT1uZXcgQXJyYXkodikseD0wO3g8djt4KyspeVt4XT17cDpjW3hdLHM6clt4XX0saCYmKHlbeF0ub3JpZ19wPXVbeF0seVt4XVtwKyJFbmQiXT1mLmVuZHNbeF0seVt4XVtwKyJTdGFydCJdPWYuc3RhcnRzW3hdKSxlLmlkcyYmKHlbeF0uaWQ9U3RyaW5nKGUuaWRzW3hdKSk7cmV0dXJuIGEoZSwibWFya2VyIikmJm8odCxlLHt2YWxzOmUubWFya2VyLmNvbG9yLGNvbnRhaW5lclN0cjoibWFya2VyIixjTGV0dGVyOiJjIn0pLGEoZSwibWFya2VyLmxpbmUiKSYmbyh0LGUse3ZhbHM6ZS5tYXJrZXIubGluZS5jb2xvcixjb250YWluZXJTdHI6Im1hcmtlci5saW5lIixjTGV0dGVyOiJjIn0pLHMoeSxlKSxsKHksZSkseX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjY0NywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiOjY1MCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6ODI0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjoxMTkzLCIuL2FycmF5c190b19jYWxjZGF0YSI6OTEzfV0sOTE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17VEVYVFBBRDozLGV2ZW50RGF0YUtleXM6WyJ2YWx1ZSIsImxhYmVsIl19fSx7fV0sOTE3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5LGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxvPXQoIi4uLy4uL3JlZ2lzdHJ5Iikscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIikuZ2V0QXhpc0dyb3VwLGM9dCgiLi9zaWV2ZS5qcyIpO2Z1bmN0aW9uIHUodCxlLHIsbyx1KXtpZihvLmxlbmd0aCl7dmFyIGIsXyx3LFQ7c3dpdGNoKGZ1bmN0aW9uKHQsZSl7dmFyIHIsYTtmb3Iocj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbyxzPWVbcl0sbD1zWzBdLnRyYWNlLGM9ImZ1bm5lbCI9PT1sLnR5cGU/bC5fYmFzZTpsLmJhc2UsdT0iaCI9PT1sLm9yaWVudGF0aW9uP2wueGNhbGVuZGFyOmwueWNhbGVuZGFyLGY9ImNhdGVnb3J5Ij09PXQudHlwZXx8Im11bHRpY2F0ZWdvcnkiPT09dC50eXBlP2Z1bmN0aW9uKCl7cmV0dXJuIG51bGx9OnQuZDJjO2lmKGkoYykpe2ZvcihhPTA7YTxNYXRoLm1pbihjLmxlbmd0aCxzLmxlbmd0aCk7YSsrKW89ZihjW2FdLDAsdSksbihvKT8oc1thXS5iPStvLHNbYV0uaGFzQj0xKTpzW2FdLmI9MDtmb3IoO2E8cy5sZW5ndGg7YSsrKXNbYV0uYj0wfWVsc2V7bz1mKGMsMCx1KTt2YXIgaD1uKG8pO2ZvcihvPWg/bzowLGE9MDthPHMubGVuZ3RoO2ErKylzW2FdLmI9byxoJiYoc1thXS5oYXNCPTEpfX19KHIsbyksdS5tb2RlKXtjYXNlIm92ZXJsYXkiOmYoZSxyLG8sdSk7YnJlYWs7Y2FzZSJncm91cCI6Zm9yKGI9W10sXz1bXSx3PTA7dzxvLmxlbmd0aDt3Kyspdm9pZCAwPT09KFQ9b1t3XSlbMF0udHJhY2Uub2Zmc2V0P18ucHVzaChUKTpiLnB1c2goVCk7Xy5sZW5ndGgmJmZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG89bmV3IGMobix7cG9zQXhpczplLHNlcE5lZ1ZhbDohMSxvdmVybGFwTm9NZXJnZTohaS5ub3JtfSk7KGZ1bmN0aW9uKHQsZSxyLG4pe2Zvcih2YXIgaT10Ll9mdWxsTGF5b3V0LGE9ci5wb3NpdGlvbnMsbz1yLmRpc3RpbmN0UG9zaXRpb25zLHM9ci5taW5EaWZmLGM9ci50cmFjZXMsdT1jLmxlbmd0aCxmPWEubGVuZ3RoIT09by5sZW5ndGgsaD1zKigxLW4uZ2FwKSxnPWwoaSxlLl9pZCkrY1swXVswXS50cmFjZS5vcmllbnRhdGlvbix2PWkuX2FsaWdubWVudE9wdHNbZ118fHt9LHk9MDt5PHU7eSsrKXt2YXIgeCxiLF89Y1t5XSx3PV9bMF0udHJhY2UsVD12W3cuYWxpZ25tZW50Z3JvdXBdfHx7fSxrPU9iamVjdC5rZXlzKFQub2Zmc2V0R3JvdXBzfHx7fSkubGVuZ3RoLEE9KHg9az9oL2s6Zj9oL3U6aCkqKDEtKG4uZ3JvdXBnYXB8fDApKTtiPWs/KCgyKncuX29mZnNldEluZGV4KzEtaykqeC1BKS8yOmY/KCgyKnkrMS11KSp4LUEpLzI6LUEvMjt2YXIgTT1fWzBdLnQ7TS5iYXJ3aWR0aD1BLE0ucG9mZnNldD1iLE0uYmFyZ3JvdXB3aWR0aD1oLE0uYmFyZGVsdGE9c31yLmJpbldpZHRoPWNbMF1bMF0udC5iYXJ3aWR0aC8xMDAscChyKSxkKGUsciksbShlLHIsZil9KSh0LGUsbyxpKSxmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10LnRyYWNlcyxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl07aWYodm9pZCAwPT09aVswXS50cmFjZS5iYXNlKWZvcih2YXIgbz1uZXcgYyhbaV0se3Bvc0F4aXM6ZSxzZXBOZWdWYWw6ITAsb3ZlcmxhcE5vTWVyZ2U6ITB9KSxzPTA7czxpLmxlbmd0aDtzKyspe3ZhciBsPWlbc107aWYobC5wIT09YSl7dmFyIHU9by5wdXQobC5wLGwuYitsLnMpO3UmJihsLmI9dSl9fX19KG8sZSksaS5ub3JtPyh2KG8pLHkocixvLGkpKTpnKHIsbyl9KHQsZSxyLF8sdSksYi5sZW5ndGgmJmYoZSxyLGIsdSk7YnJlYWs7Y2FzZSJzdGFjayI6Y2FzZSJyZWxhdGl2ZSI6Zm9yKGI9W10sXz1bXSx3PTA7dzxvLmxlbmd0aDt3Kyspdm9pZCAwPT09KFQ9b1t3XSlbMF0udHJhY2UuYmFzZT9fLnB1c2goVCk6Yi5wdXNoKFQpO18ubGVuZ3RoJiZmdW5jdGlvbih0LGUscixuLGkpe3ZhciBvPW5ldyBjKG4se3Bvc0F4aXM6ZSxzZXBOZWdWYWw6InJlbGF0aXZlIj09PWkubW9kZSxvdmVybGFwTm9NZXJnZTohKGkubm9ybXx8InN0YWNrIj09PWkubW9kZXx8InJlbGF0aXZlIj09PWkubW9kZSl9KTtoKGUsbyxpKSxmdW5jdGlvbih0LGUscil7dmFyIG4saSxvLGwsYyx1LGY9eCh0KSxoPWUudHJhY2VzO2ZvcihsPTA7bDxoLmxlbmd0aDtsKyspaWYobj1oW2xdLCJmdW5uZWwiPT09KGk9blswXS50cmFjZSkudHlwZSlmb3IoYz0wO2M8bi5sZW5ndGg7YysrKSh1PW5bY10pLnMhPT1hJiZlLnB1dCh1LnAsLS41KnUucyk7Zm9yKGw9MDtsPGgubGVuZ3RoO2wrKyl7bj1oW2xdLGk9blswXS50cmFjZSxvPSJmdW5uZWwiPT09aS50eXBlO3ZhciBwPVtdO2ZvcihjPTA7YzxuLmxlbmd0aDtjKyspaWYoKHU9bltjXSkucyE9PWEpe3ZhciBkO2Q9bz91LnM6dS5zK3UuYjt2YXIgbT1lLnB1dCh1LnAsZCksZz1tK2Q7dS5iPW0sdVtmXT1nLHIubm9ybXx8KHAucHVzaChnKSx1Lmhhc0ImJnAucHVzaChtKSl9ci5ub3JtfHwoaS5fZXh0cmVtZXNbdC5faWRdPXMuZmluZEV4dHJlbWVzKHQscCx7dG96ZXJvOiEwLHBhZGRlZDohMH0pKX19KHIsbyxpKTtmb3IodmFyIGw9MDtsPG4ubGVuZ3RoO2wrKylmb3IodmFyIHU9bltsXSxmPTA7Zjx1Lmxlbmd0aDtmKyspe3ZhciBwPXVbZl07aWYocC5zIT09YSlwLmIrcC5zPT09by5nZXQocC5wLHAucykmJihwLl9vdXRtb3N0PSEwKX1pLm5vcm0mJnkocixvLGkpfSgwLGUscixfLHUpLGIubGVuZ3RoJiZmKGUscixiLHUpfSFmdW5jdGlvbih0LGUpe3ZhciByLGksYSxvPXgoZSkscz17fSxsPTEvMCxjPS0xLzA7Zm9yKHI9MDtyPHQubGVuZ3RoO3IrKylmb3IoYT10W3JdLGk9MDtpPGEubGVuZ3RoO2krKyl7dmFyIHU9YVtpXS5wO24odSkmJihsPU1hdGgubWluKGwsdSksYz1NYXRoLm1heChjLHUpKX12YXIgZj0xZTQvKGMtbCksaD1zLnJvdW5kPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcoTWF0aC5yb3VuZChmKih0LWwpKSl9O2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspeyhhPXRbcl0pWzBdLnQuZXh0ZW50cz1zO3ZhciBwPWFbMF0udC5wb2Zmc2V0LGQ9QXJyYXkuaXNBcnJheShwKTtmb3IoaT0wO2k8YS5sZW5ndGg7aSsrKXt2YXIgbT1hW2ldLGc9bVtvXS1tLncvMjtpZihuKGcpKXt2YXIgdj1tW29dK20udy8yLHk9aChtLnApO3NbeV0/c1t5XT1bTWF0aC5taW4oZyxzW3ldWzBdKSxNYXRoLm1heCh2LHNbeV1bMV0pXTpzW3ldPVtnLHZdfW0ucDA9bS5wKyhkP3BbaV06cCksbS5wMT1tLnAwK20udyxtLnMwPW0uYixtLnMxPW0uczArbS5zfX19KG8sZSl9fWZ1bmN0aW9uIGYodCxlLHIsbil7Zm9yKHZhciBpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV0sbz1uZXcgYyhbYV0se3Bvc0F4aXM6dCxzZXBOZWdWYWw6ITEsb3ZlcmxhcE5vTWVyZ2U6IW4ubm9ybX0pO2godCxvLG4pLG4ubm9ybT8odihvKSx5KGUsbyxuKSk6ZyhlLG8pfX1mdW5jdGlvbiBoKHQsZSxyKXtmb3IodmFyIG49ZS5taW5EaWZmLGk9ZS50cmFjZXMsYT1uKigxLXIuZ2FwKSxvPWEqKDEtKHIuZ3JvdXBnYXB8fDApKSxzPS1vLzIsbD0wO2w8aS5sZW5ndGg7bCsrKXt2YXIgYz1pW2xdWzBdLnQ7Yy5iYXJ3aWR0aD1vLGMucG9mZnNldD1zLGMuYmFyZ3JvdXB3aWR0aD1hLGMuYmFyZGVsdGE9bn1lLmJpbldpZHRoPWlbMF1bMF0udC5iYXJ3aWR0aC8xMDAscChlKSxkKHQsZSksbSh0LGUpfWZ1bmN0aW9uIHAodCl7dmFyIGUscixhPXQudHJhY2VzO2ZvcihlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciBvLHM9YVtlXSxsPXNbMF0sYz1sLnRyYWNlLHU9bC50LGY9Yy5fb2Zmc2V0fHxjLm9mZnNldCxoPXUucG9mZnNldDtpZihpKGYpKXtmb3Iobz1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChmLDAscy5sZW5ndGgpLHI9MDtyPG8ubGVuZ3RoO3IrKyluKG9bcl0pfHwob1tyXT1oKTtmb3Iocj1vLmxlbmd0aDtyPHMubGVuZ3RoO3IrKylvLnB1c2goaCk7dS5wb2Zmc2V0PW99ZWxzZSB2b2lkIDAhPT1mJiYodS5wb2Zmc2V0PWYpO3ZhciBwPWMuX3dpZHRofHxjLndpZHRoLGQ9dS5iYXJ3aWR0aDtpZihpKHApKXt2YXIgbT1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChwLDAscy5sZW5ndGgpO2ZvcihyPTA7cjxtLmxlbmd0aDtyKyspbihtW3JdKXx8KG1bcl09ZCk7Zm9yKHI9bS5sZW5ndGg7cjxzLmxlbmd0aDtyKyspbS5wdXNoKGQpO2lmKHUuYmFyd2lkdGg9bSx2b2lkIDA9PT1mKXtmb3Iobz1bXSxyPTA7cjxzLmxlbmd0aDtyKyspby5wdXNoKGgrKGQtbVtyXSkvMik7dS5wb2Zmc2V0PW99fWVsc2Ugdm9pZCAwIT09cCYmKHUuYmFyd2lkdGg9cCx2b2lkIDA9PT1mJiYodS5wb2Zmc2V0PWgrKGQtcCkvMikpfX1mdW5jdGlvbiBkKHQsZSl7Zm9yKHZhciByPWUudHJhY2VzLG49eCh0KSxpPTA7aTxyLmxlbmd0aDtpKyspZm9yKHZhciBhPXJbaV0sbz1hWzBdLnQscz1vLnBvZmZzZXQsbD1BcnJheS5pc0FycmF5KHMpLGM9by5iYXJ3aWR0aCx1PUFycmF5LmlzQXJyYXkoYyksZj0wO2Y8YS5sZW5ndGg7ZisrKXt2YXIgaD1hW2ZdLHA9aC53PXU/Y1tmXTpjO2hbbl09aC5wKyhsP3NbZl06cykrcC8yfX1mdW5jdGlvbiBtKHQsZSxyKXt2YXIgbj1lLnRyYWNlcyxpPWUubWluRGlmZi8yO3MubWluRHRpY2sodCxlLm1pbkRpZmYsZS5kaXN0aW5jdFBvc2l0aW9uc1swXSxyKTtmb3IodmFyIGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIG8sbCxjLHUsZj1uW2FdLGg9ZlswXSxwPWgudHJhY2UsZD1bXTtmb3IodT0wO3U8Zi5sZW5ndGg7dSsrKWw9KG89Zlt1XSkucC1pLGM9by5wK2ksZC5wdXNoKGwsYyk7aWYocC53aWR0aHx8cC5vZmZzZXQpe3ZhciBtPWgudCxnPW0ucG9mZnNldCx2PW0uYmFyd2lkdGgseT1BcnJheS5pc0FycmF5KGcpLHg9QXJyYXkuaXNBcnJheSh2KTtmb3IodT0wO3U8Zi5sZW5ndGg7dSsrKXtvPWZbdV07dmFyIGI9eT9nW3VdOmcsXz14P3ZbdV06djtjPShsPW8ucCtiKStfLGQucHVzaChsLGMpfX1wLl9leHRyZW1lc1t0Ll9pZF09cy5maW5kRXh0cmVtZXModCxkLHtwYWRkZWQ6ITF9KX19ZnVuY3Rpb24gZyh0LGUpe2Zvcih2YXIgcj1lLnRyYWNlcyxuPXgodCksaT0wO2k8ci5sZW5ndGg7aSsrKXtmb3IodmFyIGE9cltpXSxvPWFbMF0udHJhY2UsbD1bXSxjPSExLHU9MDt1PGEubGVuZ3RoO3UrKyl7dmFyIGY9YVt1XSxoPWYuYixwPWgrZi5zO2Zbbl09cCxsLnB1c2gocCksZi5oYXNCJiZsLnB1c2goaCksZi5oYXNCJiZmLmJ8fChjPSEwKX1vLl9leHRyZW1lc1t0Ll9pZF09cy5maW5kRXh0cmVtZXModCxsLHt0b3plcm86YyxwYWRkZWQ6ITB9KX19ZnVuY3Rpb24gdih0KXtmb3IodmFyIGU9dC50cmFjZXMscj0wO3I8ZS5sZW5ndGg7cisrKWZvcih2YXIgbj1lW3JdLGk9MDtpPG4ubGVuZ3RoO2krKyl7dmFyIG89bltpXTtvLnMhPT1hJiZ0LnB1dChvLnAsby5iK28ucyl9fWZ1bmN0aW9uIHkodCxlLHIpe3ZhciBpPWUudHJhY2VzLG89eCh0KSxsPSJmcmFjdGlvbiI9PT1yLm5vcm0/MToxMDAsYz1sLzFlOSx1PXQubDJjKHQuYzJsKDApKSxmPSJzdGFjayI9PT1yLm1vZGU/bDp1O2Z1bmN0aW9uIGgoZSl7cmV0dXJuIG4odC5jMmwoZSkpJiYoZTx1LWN8fGU+ZitjfHwhbih1KSl9Zm9yKHZhciBwPTA7cDxpLmxlbmd0aDtwKyspe2Zvcih2YXIgZD1pW3BdLG09ZFswXS50cmFjZSxnPVtdLHY9ITEseT0hMSxiPTA7YjxkLmxlbmd0aDtiKyspe3ZhciBfPWRbYl07aWYoXy5zIT09YSl7dmFyIHc9TWF0aC5hYnMobC9lLmdldChfLnAsXy5zKSk7Xy5iKj13LF8ucyo9dzt2YXIgVD1fLmIsaz1UK18ucztfW29dPWssZy5wdXNoKGspLHk9eXx8aChrKSxfLmhhc0ImJihnLnB1c2goVCkseT15fHxoKFQpKSxfLmhhc0ImJl8uYnx8KHY9ITApfX1tLl9leHRyZW1lc1t0Ll9pZF09cy5maW5kRXh0cmVtZXModCxnLHt0b3plcm86dixwYWRkZWQ6eX0pfX1mdW5jdGlvbiB4KHQpe3JldHVybiB0Ll9pZC5jaGFyQXQoMCl9ZS5leHBvcnRzPXtjcm9zc1RyYWNlQ2FsYzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLnhheGlzLG49ZS55YXhpcyxpPXQuX2Z1bGxMYXlvdXQsYT10Ll9mdWxsRGF0YSxzPXQuY2FsY2RhdGEsbD1bXSxjPVtdLGY9MDtmPGEubGVuZ3RoO2YrKyl7dmFyIGg9YVtmXTtpZighMD09PWgudmlzaWJsZSYmby50cmFjZUlzKGgsImJhciIpJiZoLnhheGlzPT09ci5faWQmJmgueWF4aXM9PT1uLl9pZCYmKCJoIj09PWgub3JpZW50YXRpb24/bC5wdXNoKHNbZl0pOmMucHVzaChzW2ZdKSxoLl9jb21wdXRlUGgpKWZvcih2YXIgcD10LmNhbGNkYXRhW2ZdLGQ9MDtkPHAubGVuZ3RoO2QrKykiZnVuY3Rpb24iPT10eXBlb2YgcFtkXS5waDAmJihwW2RdLnBoMD1wW2RdLnBoMCgpKSwiZnVuY3Rpb24iPT10eXBlb2YgcFtkXS5waDEmJihwW2RdLnBoMT1wW2RdLnBoMSgpKX12YXIgbT17eENhdDoiY2F0ZWdvcnkiPT09ci50eXBlfHwibXVsdGljYXRlZ29yeSI9PT1yLnR5cGUseUNhdDoiY2F0ZWdvcnkiPT09bi50eXBlfHwibXVsdGljYXRlZ29yeSI9PT1uLnR5cGUsbW9kZTppLmJhcm1vZGUsbm9ybTppLmJhcm5vcm0sZ2FwOmkuYmFyZ2FwLGdyb3VwZ2FwOmkuYmFyZ3JvdXBnYXB9O3UodCxyLG4sYyxtKSx1KHQsbixyLGwsbSl9LHNldEdyb3VwUG9zaXRpb25zOnV9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdHJhaW50cyI6ODM1LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL3NpZXZlLmpzIjo5MjcsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw5MTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vc2NhdHRlci94eV9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiKSxsPXQoIi4vc3R5bGVfZGVmYXVsdHMiKSxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdHJhaW50cyIpLmdldEF4aXNHcm91cCx1PXQoIi4vYXR0cmlidXRlcyIpLGY9bi5jb2VyY2VGb250O2Z1bmN0aW9uIGgodCxlLHIsbil7dmFyIGk9ZS5vcmllbnRhdGlvbixhPWVbe3Y6IngiLGg6InkifVtpXSsiYXhpcyJdLG89YyhyLGEpK2kscz1yLl9hbGlnbm1lbnRPcHRzfHx7fSxsPW4oImFsaWdubWVudGdyb3VwIiksdT1zW29dO3V8fCh1PXNbb109e30pO3ZhciBmPXVbbF07Zj9mLnRyYWNlcy5wdXNoKGUpOmY9dVtsXT17dHJhY2VzOltlXSxhbGlnbm1lbnRJbmRleDpPYmplY3Qua2V5cyh1KS5sZW5ndGgsb2Zmc2V0R3JvdXBzOnt9fTt2YXIgaD1uKCJvZmZzZXRncm91cCIpLHA9Zi5vZmZzZXRHcm91cHMsZD1wW2hdO2gmJihkfHwoZD1wW2hdPXtvZmZzZXRJbmRleDpPYmplY3Qua2V5cyhwKS5sZW5ndGh9KSxlLl9vZmZzZXRJbmRleD1kLm9mZnNldEluZGV4KX1mdW5jdGlvbiBwKHQsZSxyLGksYSxvKXt2YXIgcz0hKCExPT09KG89b3x8e30pLm1vZHVsZUhhc1NlbGVjdGVkKSxsPSEoITE9PT1vLm1vZHVsZUhhc1Vuc2VsZWN0ZWQpLGM9ISghMT09PW8ubW9kdWxlSGFzQ29uc3RyYWluKSx1PSEoITE9PT1vLm1vZHVsZUhhc0NsaXBvbmF4aXMpLGg9ISghMT09PW8ubW9kdWxlSGFzVGV4dGFuZ2xlKSxwPSEoITE9PT1vLm1vZHVsZUhhc0luc2lkZWFuY2hvciksZD0hIW8uaGFzUGF0aGJhcixtPUFycmF5LmlzQXJyYXkoYSl8fCJhdXRvIj09PWEsZz1tfHwiaW5zaWRlIj09PWEsdj1tfHwib3V0c2lkZSI9PT1hO2lmKGd8fHYpe3ZhciB5PWYoaSwidGV4dGZvbnQiLHIuZm9udCkseD1uLmV4dGVuZEZsYXQoe30seSksYj0hKHQudGV4dGZvbnQmJnQudGV4dGZvbnQuY29sb3IpO2lmKGImJmRlbGV0ZSB4LmNvbG9yLGYoaSwiaW5zaWRldGV4dGZvbnQiLHgpLGQpe3ZhciBfPW4uZXh0ZW5kRmxhdCh7fSx5KTtiJiZkZWxldGUgXy5jb2xvcixmKGksInBhdGhiYXIudGV4dGZvbnQiLF8pfXYmJmYoaSwib3V0c2lkZXRleHRmb250Iix5KSxzJiZpKCJzZWxlY3RlZC50ZXh0Zm9udC5jb2xvciIpLGwmJmkoInVuc2VsZWN0ZWQudGV4dGZvbnQuY29sb3IiKSxjJiZpKCJjb25zdHJhaW50ZXh0IiksdSYmaSgiY2xpcG9uYXhpcyIpLGgmJmkoInRleHRhbmdsZSIpLGkoInRleHR0ZW1wbGF0ZSIpfWcmJnAmJmkoImluc2lkZXRleHRhbmNob3IiKX1lLmV4cG9ydHM9e3N1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLGMpe2Z1bmN0aW9uIGYocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHUscixpKX1pZihvKHQsZSxjLGYpKXtzKHQsZSxjLGYpLGYoInhob3ZlcmZvcm1hdCIpLGYoInlob3ZlcmZvcm1hdCIpLGYoIm9yaWVudGF0aW9uIixlLngmJiFlLnk/ImgiOiJ2IiksZigiYmFzZSIpLGYoIm9mZnNldCIpLGYoIndpZHRoIiksZigidGV4dCIpLGYoImhvdmVydGV4dCIpLGYoImhvdmVydGVtcGxhdGUiKTt2YXIgaD1mKCJ0ZXh0cG9zaXRpb24iKTtwKHQsZSxjLGYsaCx7bW9kdWxlSGFzU2VsZWN0ZWQ6ITAsbW9kdWxlSGFzVW5zZWxlY3RlZDohMCxtb2R1bGVIYXNDb25zdHJhaW46ITAsbW9kdWxlSGFzQ2xpcG9uYXhpczohMCxtb2R1bGVIYXNUZXh0YW5nbGU6ITAsbW9kdWxlSGFzSW5zaWRlYW5jaG9yOiEwfSksbCh0LGUsZixyLGMpO3ZhciBkPShlLm1hcmtlci5saW5lfHx7fSkuY29sb3IsbT1hLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTttKHQsZSxkfHxpLmRlZmF1bHRMaW5lLHtheGlzOiJ5In0pLG0odCxlLGR8fGkuZGVmYXVsdExpbmUse2F4aXM6IngiLGluaGVyaXQ6InkifSksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsZil9ZWxzZSBlLnZpc2libGU9ITF9LGNyb3NzVHJhY2VEZWZhdWx0czpmdW5jdGlvbih0LGUpe3ZhciByO2Z1bmN0aW9uIGkodCl7cmV0dXJuIG4uY29lcmNlKHIuX2lucHV0LHIsdSx0KX1pZigiZ3JvdXAiPT09ZS5iYXJtb2RlKWZvcih2YXIgYT0wO2E8dC5sZW5ndGg7YSsrKSJiYXIiPT09KHI9dFthXSkudHlwZSYmKHIuX2lucHV0LGgoMCxyLGUsaSkpfSxoYW5kbGVHcm91cGluZ0RlZmF1bHRzOmgsaGFuZGxlVGV4dDpwfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vY29uc3RyYWludHMiOjgzNSwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjEyMTEsIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiOjEyMTgsIi4vYXR0cmlidXRlcyI6OTE0LCIuL3N0eWxlX2RlZmF1bHRzIjo5Mjl9XSw5MTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC54PSJ4VmFsImluIGU/ZS54VmFsOmUueCx0Lnk9InlWYWwiaW4gZT9lLnlWYWw6ZS55LGUueGEmJih0LnhheGlzPWUueGEpLGUueWEmJih0LnlheGlzPWUueWEpLCJoIj09PXIub3JpZW50YXRpb24/KHQubGFiZWw9dC55LHQudmFsdWU9dC54KToodC5sYWJlbD10LngsdC52YWx1ZT10LnkpLHR9fSx7fV0sOTIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCJ0aW55Y29sb3IyIiksYT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5O3IuY29lcmNlU3RyaW5nPWZ1bmN0aW9uKHQsZSxyKXtpZigic3RyaW5nIj09dHlwZW9mIGUpe2lmKGV8fCF0Lm5vQmxhbmspcmV0dXJuIGV9ZWxzZSBpZigoIm51bWJlciI9PXR5cGVvZiBlfHwhMD09PWUpJiYhdC5zdHJpY3QpcmV0dXJuIFN0cmluZyhlKTtyZXR1cm4gdm9pZCAwIT09cj9yOnQuZGZsdH0sci5jb2VyY2VOdW1iZXI9ZnVuY3Rpb24odCxlLHIpe2lmKG4oZSkpe2U9K2U7dmFyIGk9dC5taW4sYT10Lm1heDtpZighKHZvaWQgMCE9PWkmJmU8aXx8dm9pZCAwIT09YSYmZT5hKSlyZXR1cm4gZX1yZXR1cm4gdm9pZCAwIT09cj9yOnQuZGZsdH0sci5jb2VyY2VDb2xvcj1mdW5jdGlvbih0LGUscil7cmV0dXJuIGkoZSkuaXNWYWxpZCgpP2U6dm9pZCAwIT09cj9yOnQuZGZsdH0sci5jb2VyY2VFbnVtZXJhdGVkPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gdC5jb2VyY2VOdW1iZXImJihlPStlKSwtMSE9PXQudmFsdWVzLmluZGV4T2YoZSk/ZTp2b2lkIDAhPT1yP3I6dC5kZmx0fSxyLmdldFZhbHVlPWZ1bmN0aW9uKHQsZSl7dmFyIHI7cmV0dXJuIEFycmF5LmlzQXJyYXkodCk/ZTx0Lmxlbmd0aCYmKHI9dFtlXSk6cj10LHJ9LHIuZ2V0TGluZVdpZHRoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIDA8ZS5tbHc/ZS5tbHc6YSh0Lm1hcmtlci5saW5lLndpZHRoKT8wOnQubWFya2VyLmxpbmUud2lkdGh9fSx7Ii4uLy4uL2xpYiI6Nzc2LCJmYXN0LWlzbnVtZXJpYyI6MjQyLHRpbnljb2xvcjI6NTcyfV0sOTIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi8uLi9saWIiKS5maWxsVGV4dCxzPXQoIi4vaGVscGVycyIpLmdldExpbmVXaWR0aCxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikuaG92ZXJMYWJlbFRleHQsYz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIHUodCxlLHIsaSxhKXt2YXIgcyx1LGYsaCxwLGQsbSxnPXQuY2Qsdj1nWzBdLnRyYWNlLHk9Z1swXS50LHg9ImNsb3Nlc3QiPT09aSxiPSJ3YXRlcmZhbGwiPT09di50eXBlLF89dC5tYXhIb3ZlckRpc3RhbmNlLHc9dC5tYXhTcGlrZURpc3RhbmNlOyJoIj09PXYub3JpZW50YXRpb24/KHM9cix1PWUsZj0ieSIsaD0ieCIscD16LGQ9SSk6KHM9ZSx1PXIsZj0ieCIsaD0ieSIsZD16LHA9SSk7dmFyIFQ9dltmKyJwZXJpb2QiXSxrPXh8fFQ7ZnVuY3Rpb24gQSh0KXtyZXR1cm4gUyh0LC0xKX1mdW5jdGlvbiBNKHQpe3JldHVybiBTKHQsMSl9ZnVuY3Rpb24gUyh0LGUpe3ZhciByPXQudztyZXR1cm4gdFtmXStlKnIvMn1mdW5jdGlvbiBFKHQpe3JldHVybiB0W2YrIkVuZCJdLXRbZisiU3RhcnQiXX12YXIgTD14P0E6VD9mdW5jdGlvbih0KXtyZXR1cm4gdC5wLUUodCkvMn06ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWluKEEodCksdC5wLXkuYmFyZGVsdGEvMil9LEM9eD9NOlQ/ZnVuY3Rpb24odCl7cmV0dXJuIHQucCtFKHQpLzJ9OmZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heChNKHQpLHQucCt5LmJhcmRlbHRhLzIpfTtmdW5jdGlvbiBQKHQsZSxyKXtyZXR1cm4gYS5maW5pdGVSYW5nZSYmKHI9MCksbi5pbmJveCh0LXMsZS1zLHIrTWF0aC5taW4oMSxNYXRoLmFicyhlLXQpL20pLTEpfWZ1bmN0aW9uIEkodCl7cmV0dXJuIFAoTCh0KSxDKHQpLF8pfWZ1bmN0aW9uIE8odCl7dmFyIGU9dFtoXTtpZihiKXt2YXIgcj1NYXRoLmFicyh0LnJhd1MpfHwwO3U+MD9lKz1yOnU8MCYmKGUtPXIpfXJldHVybiBlfWZ1bmN0aW9uIHoodCl7dmFyIGU9dSxyPXQuYixpPU8odCk7cmV0dXJuIG4uaW5ib3goci1lLGktZSxfKyhpLWUpLyhpLXIpLTEpfXZhciBEPXRbZisiYSJdLFI9dFtoKyJhIl07bT1NYXRoLmFicyhELnIyYyhELnJhbmdlWzFdKS1ELnIyYyhELnJhbmdlWzBdKSk7dmFyIEY9bi5nZXREaXN0YW5jZUZ1bmN0aW9uKGkscCxkLChmdW5jdGlvbih0KXtyZXR1cm4ocCh0KStkKHQpKS8yfSkpO2lmKG4uZ2V0Q2xvc2VzdChnLEYsdCksITEhPT10LmluZGV4JiZnW3QuaW5kZXhdLnAhPT1jKXtrfHwoTD1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5taW4oQSh0KSx0LnAteS5iYXJncm91cHdpZHRoLzIpfSxDPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heChNKHQpLHQucCt5LmJhcmdyb3Vwd2lkdGgvMil9KTt2YXIgQj1nW3QuaW5kZXhdLE49di5iYXNlP0IuYitCLnM6Qi5zO3RbaCsiMCJdPXRbaCsiMSJdPVIuYzJwKEJbaF0sITApLHRbaCsiTGFiZWxWYWwiXT1OO3ZhciBqPXkuZXh0ZW50c1t5LmV4dGVudHMucm91bmQoQi5wKV07dFtmKyIwIl09RC5jMnAoeD9MKEIpOmpbMF0sITApLHRbZisiMSJdPUQuYzJwKHg/QyhCKTpqWzFdLCEwKTt2YXIgVT12b2lkIDAhPT1CLm9yaWdfcDtyZXR1cm4gdFtmKyJMYWJlbFZhbCJdPVU/Qi5vcmlnX3A6Qi5wLHQubGFiZWxMYWJlbD1sKEQsdFtmKyJMYWJlbFZhbCJdLHZbZisiaG92ZXJmb3JtYXQiXSksdC52YWx1ZUxhYmVsPWwoUix0W2grIkxhYmVsVmFsIl0sdltoKyJob3ZlcmZvcm1hdCJdKSx0LmJhc2VMYWJlbD1sKFIsQi5iLHZbaCsiaG92ZXJmb3JtYXQiXSksdC5zcGlrZURpc3RhbmNlPShmdW5jdGlvbih0KXt2YXIgZT11LHI9dC5iLGk9Tyh0KTtyZXR1cm4gbi5pbmJveChyLWUsaS1lLHcrKGktZSkvKGktciktMSl9KEIpK2Z1bmN0aW9uKHQpe3JldHVybiBQKEEodCksTSh0KSx3KX0oQikpLzIsdFtmKyJTcGlrZSJdPUQuYzJwKEIucCwhMCksbyhCLHYsdCksdC5ob3ZlcnRlbXBsYXRlPXYuaG92ZXJ0ZW1wbGF0ZSx0fX1mdW5jdGlvbiBmKHQsZSl7dmFyIHI9ZS5tY2N8fHQubWFya2VyLmNvbG9yLG49ZS5tbGNjfHx0Lm1hcmtlci5saW5lLmNvbG9yLGk9cyh0LGUpO3JldHVybiBhLm9wYWNpdHkocik/cjphLm9wYWNpdHkobikmJmk/bjp2b2lkIDB9ZS5leHBvcnRzPXtob3ZlclBvaW50czpmdW5jdGlvbih0LGUscixuLGEpe3ZhciBvPXUodCxlLHIsbixhKTtpZihvKXt2YXIgcz1vLmNkLGw9c1swXS50cmFjZSxjPXNbby5pbmRleF07cmV0dXJuIG8uY29sb3I9ZihsLGMpLGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJob3ZlckluZm8iKShjLGwsbyksW29dfX0saG92ZXJPbkJhcnM6dSxnZXRUcmFjZUNvbG9yOmZ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2hlbHBlcnMiOjkyMH1dLDkyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLnN1cHBseURlZmF1bHRzLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuY3Jvc3NUcmFjZURlZmF1bHRzLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxjcm9zc1RyYWNlQ2FsYzp0KCIuL2Nyb3NzX3RyYWNlX2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLGFycmF5c1RvQ2FsY2RhdGE6dCgiLi9hcnJheXNfdG9fY2FsY2RhdGEiKSxwbG90OnQoIi4vcGxvdCIpLnBsb3Qsc3R5bGU6dCgiLi9zdHlsZSIpLnN0eWxlLHN0eWxlT25TZWxlY3Q6dCgiLi9zdHlsZSIpLnN0eWxlT25TZWxlY3QsaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLGV2ZW50RGF0YTp0KCIuL2V2ZW50X2RhdGEiKSxzZWxlY3RQb2ludHM6dCgiLi9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiYmFyIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiYmFyLWxpa2UiLCJjYXJ0ZXNpYW4iLCJzdmciLCJiYXIiLCJvcmllbnRlZCIsImVycm9yQmFyc09LIiwic2hvd0xlZ2VuZCIsInpvb21TY2FsZSJdLGFuaW1hdGFibGU6ITAsbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo4NDEsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMjA5LCIuL2FycmF5c190b19jYWxjZGF0YSI6OTEzLCIuL2F0dHJpYnV0ZXMiOjkxNCwiLi9jYWxjIjo5MTUsIi4vY3Jvc3NfdHJhY2VfY2FsYyI6OTE3LCIuL2RlZmF1bHRzIjo5MTgsIi4vZXZlbnRfZGF0YSI6OTE5LCIuL2hvdmVyIjo5MjEsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjkyMywiLi9sYXlvdXRfZGVmYXVsdHMiOjkyNCwiLi9wbG90Ijo5MjUsIi4vc2VsZWN0Ijo5MjYsIi4vc3R5bGUiOjkyOH1dLDkyMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2Jhcm1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInN0YWNrIiwiZ3JvdXAiLCJvdmVybGF5IiwicmVsYXRpdmUiXSxkZmx0OiJncm91cCIsZWRpdFR5cGU6ImNhbGMifSxiYXJub3JtOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyIiLCJmcmFjdGlvbiIsInBlcmNlbnQiXSxkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sYmFyZ2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJjYWxjIn0sYmFyZ3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sOTI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBzKHIsbil7cmV0dXJuIGEuY29lcmNlKHQsZSxvLHIsbil9Zm9yKHZhciBsPSExLGM9ITEsdT0hMSxmPXt9LGg9cygiYmFybW9kZSIpLHA9MDtwPHIubGVuZ3RoO3ArKyl7dmFyIGQ9cltwXTtpZihuLnRyYWNlSXMoZCwiYmFyIikmJmQudmlzaWJsZSl7aWYobD0hMCwiZ3JvdXAiPT09aCl7dmFyIG09ZC54YXhpcytkLnlheGlzO2ZbbV0mJih1PSEwKSxmW21dPSEwfWlmKGQudmlzaWJsZSYmImhpc3RvZ3JhbSI9PT1kLnR5cGUpImNhdGVnb3J5IiE9PWkuZ2V0RnJvbUlkKHtfZnVsbExheW91dDplfSxkWyJ2Ij09PWQub3JpZW50YXRpb24/InhheGlzIjoieWF4aXMiXSkudHlwZSYmKGM9ITApfX1sPygib3ZlcmxheSIhPT1oJiZzKCJiYXJub3JtIikscygiYmFyZ2FwIixjJiYhdT8wOi4yKSxzKCJiYXJncm91cGdhcCIpKTpkZWxldGUgZS5iYXJtb2RlfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6OTIzfV0sOTI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImZhc3QtaXNudW1lcmljIiksYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuLi8uLi9yZWdpc3RyeSIpLHU9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS50aWNrVGV4dCxmPXQoIi4vdW5pZm9ybV90ZXh0IiksaD1mLnJlY29yZE1pblRleHRTaXplLHA9Zi5jbGVhck1pblRleHRTaXplLGQ9dCgiLi9zdHlsZSIpLG09dCgiLi9oZWxwZXJzIiksZz10KCIuL2NvbnN0YW50cyIpLHY9dCgiLi9hdHRyaWJ1dGVzIikseT12LnRleHQseD12LnRleHRwb3NpdGlvbixiPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZSxfPWcuVEVYVFBBRDtmdW5jdGlvbiB3KHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIFQodCl7aWYodC5pZHMpcmV0dXJuIHd9ZnVuY3Rpb24gayh0LGUpe3JldHVybiB0PGU/MTotMX1mdW5jdGlvbiBBKHQsZSxyLG4pe3ZhciBpO3JldHVybiFlLnVuaWZvcm10ZXh0Lm1vZGUmJk0ocik/KG4mJihpPW4oKSksdC50cmFuc2l0aW9uKCkuZHVyYXRpb24oci5kdXJhdGlvbikuZWFzZShyLmVhc2luZykuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtpJiZpKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXtpJiZpKCl9KSkpOnR9ZnVuY3Rpb24gTSh0KXtyZXR1cm4gdCYmdC5kdXJhdGlvbj4wfWZ1bmN0aW9uIFModCl7cmV0dXJuImF1dG8iPT09dD8wOnR9ZnVuY3Rpb24gRSh0LGUpe3ZhciByPU1hdGguUEkvMTgwKmUsbj1NYXRoLmFicyhNYXRoLnNpbihyKSksaT1NYXRoLmFicyhNYXRoLmNvcyhyKSk7cmV0dXJue3g6dC53aWR0aCppK3QuaGVpZ2h0Km4seTp0LndpZHRoKm4rdC5oZWlnaHQqaX19ZnVuY3Rpb24gTCh0LGUscixuLGksYSl7dmFyIG89ISFhLmlzSG9yaXpvbnRhbCxzPSEhYS5jb25zdHJhaW5lZCxsPWEuYW5nbGV8fDAsYz1hLmFuY2hvcnx8ImVuZCIsdT0iZW5kIj09PWMsZj0ic3RhcnQiPT09YyxoPSgoYS5sZWZ0VG9SaWdodHx8MCkrMSkvMixwPTEtaCxkPWkud2lkdGgsbT1pLmhlaWdodCxnPU1hdGguYWJzKGUtdCksdj1NYXRoLmFicyhuLXIpLHk9Zz4yKl8mJnY+MipfP186MDtnLT0yKnksdi09Mip5O3ZhciB4PVMobCk7ImF1dG8iIT09bHx8ZDw9ZyYmbTw9dnx8IShkPmd8fG0+dil8fChkPnZ8fG0+ZykmJmQ8bT09Zzx2fHwoeCs9OTApO3ZhciBiPUUoaSx4KSx3PTE7cyYmKHc9TWF0aC5taW4oMSxnL2IueCx2L2IueSkpO3ZhciBUPWkubGVmdCpwK2kucmlnaHQqaCxBPShpLnRvcCtpLmJvdHRvbSkvMixNPSh0K18pKnArKGUtXykqaCxMPShyK24pLzIsQz0wLFA9MDtpZihmfHx1KXt2YXIgST0obz9iLng6Yi55KS8yLE89bz9rKHQsZSk6ayhyLG4pO28/Zj8oTT10K08qeSxDPS1PKkkpOihNPWUtTyp5LEM9TypJKTpmPyhMPXIrTyp5LFA9LU8qSSk6KEw9bi1PKnksUD1PKkkpfXJldHVybnt0ZXh0WDpULHRleHRZOkEsdGFyZ2V0WDpNLHRhcmdldFk6TCxhbmNob3JYOkMsYW5jaG9yWTpQLHNjYWxlOncscm90YXRlOnh9fWUuZXhwb3J0cz17cGxvdDpmdW5jdGlvbih0LGUscixmLGcsdil7dmFyIHc9ZS54YXhpcyxDPWUueWF4aXMsUD10Ll9mdWxsTGF5b3V0O2d8fChnPXttb2RlOlAuYmFybW9kZSxub3JtOlAuYmFybW9kZSxnYXA6UC5iYXJnYXAsZ3JvdXBnYXA6UC5iYXJncm91cGdhcH0scCgiYmFyIixQKSk7dmFyIEk9YS5tYWtlVHJhY2VHcm91cHMoZixyLCJ0cmFjZSBiYXJzIikuZWFjaCgoZnVuY3Rpb24ocil7dmFyIGM9bi5zZWxlY3QodGhpcyksZj1yWzBdLnRyYWNlLHA9IndhdGVyZmFsbCI9PT1mLnR5cGUsST0iZnVubmVsIj09PWYudHlwZSxPPSJiYXIiPT09Zi50eXBlfHxJLHo9MDtwJiZmLmNvbm5lY3Rvci52aXNpYmxlJiYiYmV0d2VlbiI9PT1mLmNvbm5lY3Rvci5tb2RlJiYoej1mLmNvbm5lY3Rvci5saW5lLndpZHRoLzIpO3ZhciBEPSJoIj09PWYub3JpZW50YXRpb24sUj1NKGcpLEY9YS5lbnN1cmVTaW5nbGUoYywiZyIsInBvaW50cyIpLEI9VChmKSxOPUYuc2VsZWN0QWxsKCJnLnBvaW50IikuZGF0YShhLmlkZW50aXR5LEIpO04uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJwb2ludCIsITApLE4uZXhpdCgpLnJlbW92ZSgpLE4uZWFjaCgoZnVuY3Rpb24oYyxwKXt2YXIgVCxNLEk9bi5zZWxlY3QodGhpcyksRj1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1bXSxhPVtdLG89bj9lOnIscz1uP3I6ZTtyZXR1cm4gaVswXT1vLmMycCh0LnMwLCEwKSxhWzBdPXMuYzJwKHQucDAsITApLGlbMV09by5jMnAodC5zMSwhMCksYVsxXT1zLmMycCh0LnAxLCEwKSxuP1tpLGFdOlthLGldfShjLHcsQyxEKSxCPUZbMF1bMF0sTj1GWzBdWzFdLGo9RlsxXVswXSxVPUZbMV1bMV0sVj0wPT0oRD9OLUI6VS1qKTtpZihWJiZPJiZtLmdldExpbmVXaWR0aChmLGMpJiYoVj0hMSksVnx8KFY9IShpKEIpJiZpKE4pJiZpKGopJiZpKFUpKSksYy5pc0JsYW5rPVYsViYmKEQ/Tj1COlU9aikseiYmIVYmJihEPyhCLT1rKEIsTikqeixOKz1rKEIsTikqeik6KGotPWsoaixVKSp6LFUrPWsoaixVKSp6KSksIndhdGVyZmFsbCI9PT1mLnR5cGUpe2lmKCFWKXt2YXIgSD1mW2MuZGlyXS5tYXJrZXI7VD1ILmxpbmUud2lkdGgsTT1ILmNvbG9yfX1lbHNlIFQ9bS5nZXRMaW5lV2lkdGgoZixjKSxNPWMubWN8fGYubWFya2VyLmNvbG9yO2Z1bmN0aW9uIHEodCl7dmFyIGU9bi5yb3VuZChULzIlMSwyKTtyZXR1cm4gMD09PWcuZ2FwJiYwPT09Zy5ncm91cGdhcD9uLnJvdW5kKE1hdGgucm91bmQodCktZSwyKTp0fWlmKCF0Ll9jb250ZXh0LnN0YXRpY1Bsb3Qpe3ZhciBHPXMub3BhY2l0eShNKTwxfHxUPi4wMT9xOmZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gciYmdD09PWU/dDpNYXRoLmFicyh0LWUpPj0yP3EodCk6dD5lP01hdGguY2VpbCh0KTpNYXRoLmZsb29yKHQpfTtCPUcoQixOLEQpLE49RyhOLEIsRCksaj1HKGosVSwhRCksVT1HKFUsaiwhRCl9dmFyIFk9QShhLmVuc3VyZVNpbmdsZShJLCJwYXRoIiksUCxnLHYpO2lmKFkuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5hdHRyKCJkIixpc05hTigoTi1CKSooVS1qKSl8fFYmJnQuX2NvbnRleHQuc3RhdGljUGxvdD8iTTAsMFoiOiJNIitCKyIsIitqKyJWIitVKyJIIitOKyJWIitqKyJaIikuY2FsbChsLnNldENsaXBVcmwsZS5sYXllckNsaXBJZCx0KSwhUC51bmlmb3JtdGV4dC5tb2RlJiZSKXt2YXIgVz1sLm1ha2VQb2ludFN0eWxlRm5zKGYpO2wuc2luZ2xlUG9pbnRTdHlsZShjLFksZixXLHQpfSFmdW5jdGlvbih0LGUscixuLGkscyxjLGYscCxnLHYpe3ZhciB3LFQ9ZS54YXhpcyxNPWUueWF4aXMsQz10Ll9mdWxsTGF5b3V0O2Z1bmN0aW9uIFAoZSxyLG4pe3JldHVybiBhLmVuc3VyZVNpbmdsZShlLCJ0ZXh0IikudGV4dChyKS5hdHRyKHtjbGFzczoiYmFydGV4dCBiYXJ0ZXh0LSIrdywidGV4dC1hbmNob3IiOiJtaWRkbGUiLCJkYXRhLW5vdGV4IjoxfSkuY2FsbChsLmZvbnQsbikuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KX12YXIgST1uWzBdLnRyYWNlLE89ImgiPT09SS5vcmllbnRhdGlvbix6PWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIG8scz1lWzBdLnRyYWNlO289cy50ZXh0dGVtcGxhdGU/ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz1lWzBdLnRyYWNlLHM9YS5jYXN0T3B0aW9uKG8sciwidGV4dHRlbXBsYXRlIik7aWYoIXMpcmV0dXJuIiI7dmFyIGwsYyxmLGgscD0id2F0ZXJmYWxsIj09PW8udHlwZSxkPSJmdW5uZWwiPT09by50eXBlOyJoIj09PW8ub3JpZW50YXRpb24/KGw9InkiLGM9aSxmPSJ4IixoPW4pOihsPSJ4IixjPW4sZj0ieSIsaD1pKTtmdW5jdGlvbiBtKHQpe3JldHVybiB1KGgsaC5jMmwodCksITApLnRleHR9dmFyIGc9ZVtyXSx2PXt9O3YubGFiZWw9Zy5wLHYubGFiZWxMYWJlbD12W2wrIkxhYmVsIl09KHk9Zy5wLHUoYyxjLmMybCh5KSwhMCkudGV4dCk7dmFyIHk7dmFyIHg9YS5jYXN0T3B0aW9uKG8sZy5pLCJ0ZXh0Iik7KDA9PT14fHx4KSYmKHYudGV4dD14KTt2LnZhbHVlPWcucyx2LnZhbHVlTGFiZWw9dltmKyJMYWJlbCJdPW0oZy5zKTt2YXIgXz17fTtiKF8sbyxnLmkpLHAmJih2LmRlbHRhPStnLnJhd1N8fGcucyx2LmRlbHRhTGFiZWw9bSh2LmRlbHRhKSx2LmZpbmFsPWcudix2LmZpbmFsTGFiZWw9bSh2LmZpbmFsKSx2LmluaXRpYWw9di5maW5hbC12LmRlbHRhLHYuaW5pdGlhbExhYmVsPW0odi5pbml0aWFsKSk7ZCYmKHYudmFsdWU9Zy5zLHYudmFsdWVMYWJlbD1tKHYudmFsdWUpLHYucGVyY2VudEluaXRpYWw9Zy5iZWdSLHYucGVyY2VudEluaXRpYWxMYWJlbD1hLmZvcm1hdFBlcmNlbnQoZy5iZWdSKSx2LnBlcmNlbnRQcmV2aW91cz1nLmRpZlIsdi5wZXJjZW50UHJldmlvdXNMYWJlbD1hLmZvcm1hdFBlcmNlbnQoZy5kaWZSKSx2LnBlcmNlbnRUb3RhbD1nLnN1bVIsdi5wZXJjZW5Ub3RhbExhYmVsPWEuZm9ybWF0UGVyY2VudChnLnN1bVIpKTt2YXIgdz1hLmNhc3RPcHRpb24obyxnLmksImN1c3RvbWRhdGEiKTt3JiYodi5jdXN0b21kYXRhPXcpO3JldHVybiBhLnRleHR0ZW1wbGF0ZVN0cmluZyhzLHYsdC5fZDNsb2NhbGUsXyx2LG8uX21ldGF8fHt9KX0odCxlLHIsbixpKTpzLnRleHRpbmZvP2Z1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRbMF0udHJhY2Usbz0iaCI9PT1pLm9yaWVudGF0aW9uLHM9IndhdGVyZmFsbCI9PT1pLnR5cGUsbD0iZnVubmVsIj09PWkudHlwZTtmdW5jdGlvbiBjKHQpe3JldHVybiB1KG8/cjpuLCt0LCEwKS50ZXh0fXZhciBmLGg9aS50ZXh0aW5mbyxwPXRbZV0sZD1oLnNwbGl0KCIrIiksbT1bXSxnPWZ1bmN0aW9uKHQpe3JldHVybi0xIT09ZC5pbmRleE9mKHQpfTtnKCJsYWJlbCIpJiZtLnB1c2goKHY9dFtlXS5wLHUobz9uOnIsdiwhMCkudGV4dCkpO3ZhciB2O2coInRleHQiKSYmKDA9PT0oZj1hLmNhc3RPcHRpb24oaSxwLmksInRleHQiKSl8fGYpJiZtLnB1c2goZik7aWYocyl7dmFyIHk9K3AucmF3U3x8cC5zLHg9cC52LGI9eC15O2coImluaXRpYWwiKSYmbS5wdXNoKGMoYikpLGcoImRlbHRhIikmJm0ucHVzaChjKHkpKSxnKCJmaW5hbCIpJiZtLnB1c2goYyh4KSl9aWYobCl7ZygidmFsdWUiKSYmbS5wdXNoKGMocC5zKSk7dmFyIF89MDtnKCJwZXJjZW50IGluaXRpYWwiKSYmXysrLGcoInBlcmNlbnQgcHJldmlvdXMiKSYmXysrLGcoInBlcmNlbnQgdG90YWwiKSYmXysrO3ZhciB3PV8+MTtnKCJwZXJjZW50IGluaXRpYWwiKSYmKGY9YS5mb3JtYXRQZXJjZW50KHAuYmVnUiksdyYmKGYrPSIgb2YgaW5pdGlhbCIpLG0ucHVzaChmKSksZygicGVyY2VudCBwcmV2aW91cyIpJiYoZj1hLmZvcm1hdFBlcmNlbnQocC5kaWZSKSx3JiYoZis9IiBvZiBwcmV2aW91cyIpLG0ucHVzaChmKSksZygicGVyY2VudCB0b3RhbCIpJiYoZj1hLmZvcm1hdFBlcmNlbnQocC5zdW1SKSx3JiYoZis9IiBvZiB0b3RhbCIpLG0ucHVzaChmKSl9cmV0dXJuIG0uam9pbigiPGJyPiIpfShlLHIsbixpKTptLmdldFZhbHVlKHMudGV4dCxyKTtyZXR1cm4gbS5jb2VyY2VTdHJpbmcoeSxvKX0oQyxuLGksVCxNKTt3PWZ1bmN0aW9uKHQsZSl7dmFyIHI9bS5nZXRWYWx1ZSh0LnRleHRwb3NpdGlvbixlKTtyZXR1cm4gbS5jb2VyY2VFbnVtZXJhdGVkKHgscil9KEksaSk7dmFyIEQ9InN0YWNrIj09PWcubW9kZXx8InJlbGF0aXZlIj09PWcubW9kZSxSPW5baV0sRj0hRHx8Ui5fb3V0bW9zdDtpZighenx8Im5vbmUiPT09d3x8KFIuaXNCbGFua3x8cz09PWN8fGY9PT1wKSYmKCJhdXRvIj09PXd8fCJpbnNpZGUiPT09dykpcmV0dXJuIHZvaWQgci5zZWxlY3QoInRleHQiKS5yZW1vdmUoKTt2YXIgQj1DLmZvbnQsTj1kLmdldEJhckNvbG9yKG5baV0sSSksaj1kLmdldEluc2lkZVRleHRGb250KEksaSxCLE4pLFU9ZC5nZXRPdXRzaWRlVGV4dEZvbnQoSSxpLEIpLFY9ci5kYXR1bSgpO08/ImxvZyI9PT1ULnR5cGUmJlYuczA8PTAmJihzPVQucmFuZ2VbMF08VC5yYW5nZVsxXT8wOlQuX2xlbmd0aCk6ImxvZyI9PT1NLnR5cGUmJlYuczA8PTAmJihmPU0ucmFuZ2VbMF08TS5yYW5nZVsxXT9NLl9sZW5ndGg6MCk7dmFyIEgscSxHLFksVyxYPU1hdGguYWJzKGMtcyktMipfLFo9TWF0aC5hYnMocC1mKS0yKl87Im91dHNpZGUiPT09dyYmKEZ8fFIuaGFzQnx8KHc9Imluc2lkZSIpKTtpZigiYXV0byI9PT13KWlmKEYpe3c9Imluc2lkZSIsVz1hLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LGopLEg9UChyLHosVykscT1sLmJCb3goSC5ub2RlKCkpLEc9cS53aWR0aCxZPXEuaGVpZ2h0O3ZhciBKPUc8PVgmJlk8PVosSz1HPD1aJiZZPD1YLFE9Tz9YPj1HKihaL1kpOlo+PVkqKFgvRyk7Rz4wJiZZPjAmJihKfHxLfHxRKT93PSJpbnNpZGUiOih3PSJvdXRzaWRlIixILnJlbW92ZSgpLEg9bnVsbCl9ZWxzZSB3PSJpbnNpZGUiO2lmKCFIKXtXPWEuZW5zdXJlVW5pZm9ybUZvbnRTaXplKHQsIm91dHNpZGUiPT09dz9VOmopO3ZhciAkPShIPVAocix6LFcpKS5hdHRyKCJ0cmFuc2Zvcm0iKTtpZihILmF0dHIoInRyYW5zZm9ybSIsIiIpLHE9bC5iQm94KEgubm9kZSgpKSxHPXEud2lkdGgsWT1xLmhlaWdodCxILmF0dHIoInRyYW5zZm9ybSIsJCksRzw9MHx8WTw9MClyZXR1cm4gdm9pZCBILnJlbW92ZSgpfXZhciB0dCxldCxydD1JLnRleHRhbmdsZTsib3V0c2lkZSI9PT13PyhldD0iYm90aCI9PT1JLmNvbnN0cmFpbnRleHR8fCJvdXRzaWRlIj09PUkuY29uc3RyYWludGV4dCx0dD1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG8scz0hIWEuaXNIb3Jpem9udGFsLGw9ISFhLmNvbnN0cmFpbmVkLGM9YS5hbmdsZXx8MCx1PWkud2lkdGgsZj1pLmhlaWdodCxoPU1hdGguYWJzKGUtdCkscD1NYXRoLmFicyhuLXIpO289cz9wPjIqXz9fOjA6aD4yKl8/XzowO3ZhciBkPTE7bCYmKGQ9cz9NYXRoLm1pbigxLHAvZik6TWF0aC5taW4oMSxoL3UpKTt2YXIgbT1TKGMpLGc9RShpLG0pLHY9KHM/Zy54OmcueSkvMix5PShpLmxlZnQraS5yaWdodCkvMix4PShpLnRvcCtpLmJvdHRvbSkvMixiPSh0K2UpLzIsdz0ocituKS8yLFQ9MCxBPTAsTT1zP2soZSx0KTprKHIsbik7cz8oYj1lLU0qbyxUPU0qdik6KHc9bitNKm8sQT0tTSp2KTtyZXR1cm57dGV4dFg6eSx0ZXh0WTp4LHRhcmdldFg6Yix0YXJnZXRZOncsYW5jaG9yWDpULGFuY2hvclk6QSxzY2FsZTpkLHJvdGF0ZTptfX0ocyxjLGYscCxxLHtpc0hvcml6b250YWw6Tyxjb25zdHJhaW5lZDpldCxhbmdsZTpydH0pKTooZXQ9ImJvdGgiPT09SS5jb25zdHJhaW50ZXh0fHwiaW5zaWRlIj09PUkuY29uc3RyYWludGV4dCx0dD1MKHMsYyxmLHAscSx7aXNIb3Jpem9udGFsOk8sY29uc3RyYWluZWQ6ZXQsYW5nbGU6cnQsYW5jaG9yOkkuaW5zaWRldGV4dGFuY2hvcn0pKTt0dC5mb250U2l6ZT1XLnNpemUsaChJLnR5cGUsdHQsQyksUi50cmFuc2Zvcm09dHQsQShILEMsZyx2KS5hdHRyKCJ0cmFuc2Zvcm0iLGEuZ2V0VGV4dFRyYW5zZm9ybSh0dCkpfSh0LGUsSSxyLHAsQixOLGosVSxnLHYpLGUubGF5ZXJDbGlwSWQmJmwuaGlkZU91dHNpZGVSYW5nZVBvaW50KGMsSS5zZWxlY3QoInRleHQiKSx3LEMsZi54Y2FsZW5kYXIsZi55Y2FsZW5kYXIpfSkpO3ZhciBqPSExPT09Zi5jbGlwb25heGlzO2wuc2V0Q2xpcFVybChjLGo/bnVsbDplLmxheWVyQ2xpcElkLHQpfSkpO2MuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJwbG90IikodCxJLGUsZyl9LHRvTW92ZUluc2lkZUJhcjpMfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjY3NSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F0dHJpYnV0ZXMiOjkxNCwiLi9jb25zdGFudHMiOjkxNiwiLi9oZWxwZXJzIjo5MjAsIi4vc3R5bGUiOjkyOCwiLi91bmlmb3JtX3RleHQiOjkzMCwiQHBsb3RseS9kMyI6NTgsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw5MjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZnVuY3Rpb24gbih0LGUscixuLGkpe3ZhciBhPWUuYzJwKG4/dC5zMDp0LnAwLCEwKSxvPWUuYzJwKG4/dC5zMTp0LnAxLCEwKSxzPXIuYzJwKG4/dC5wMDp0LnMwLCEwKSxsPXIuYzJwKG4/dC5wMTp0LnMxLCEwKTtyZXR1cm4gaT9bKGErbykvMiwocytsKS8yXTpuP1tvLChzK2wpLzJdOlsoYStvKS8yLGxdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGk9dC5jZCxhPXQueGF4aXMsbz10LnlheGlzLHM9aVswXS50cmFjZSxsPSJmdW5uZWwiPT09cy50eXBlLGM9ImgiPT09cy5vcmllbnRhdGlvbix1PVtdO2lmKCExPT09ZSlmb3Iocj0wO3I8aS5sZW5ndGg7cisrKWlbcl0uc2VsZWN0ZWQ9MDtlbHNlIGZvcihyPTA7cjxpLmxlbmd0aDtyKyspe3ZhciBmPWlbcl0saD0iY3QiaW4gZj9mLmN0Om4oZixhLG8sYyxsKTtlLmNvbnRhaW5zKGgsITEscix0KT8odS5wdXNoKHtwb2ludE51bWJlcjpyLHg6YS5jMmQoZi54KSx5Om8uYzJkKGYueSl9KSxmLnNlbGVjdGVkPTEpOmYuc2VsZWN0ZWQ9MH1yZXR1cm4gdX19LHt9XSw5Mjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWE7dmFyIG49dCgiLi4vLi4vbGliIikuZGlzdGluY3RWYWxzLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtmdW5jdGlvbiBhKHQsZSl7dGhpcy50cmFjZXM9dCx0aGlzLnNlcE5lZ1ZhbD1lLnNlcE5lZ1ZhbCx0aGlzLm92ZXJsYXBOb01lcmdlPWUub3ZlcmxhcE5vTWVyZ2U7Zm9yKHZhciByPTEvMCxhPVtdLG89MDtvPHQubGVuZ3RoO28rKyl7Zm9yKHZhciBzPXRbb10sbD0wO2w8cy5sZW5ndGg7bCsrKXt2YXIgYz1zW2xdO2MucCE9PWkmJmEucHVzaChjLnApfXNbMF0mJnNbMF0ud2lkdGgxJiYocj1NYXRoLm1pbihzWzBdLndpZHRoMSxyKSl9dGhpcy5wb3NpdGlvbnM9YTt2YXIgdT1uKGEpO3RoaXMuZGlzdGluY3RQb3NpdGlvbnM9dS52YWxzLDE9PT11LnZhbHMubGVuZ3RoJiZyIT09MS8wP3RoaXMubWluRGlmZj1yOnRoaXMubWluRGlmZj1NYXRoLm1pbih1Lm1pbkRpZmYscik7dmFyIGY9KGUucG9zQXhpc3x8e30pLnR5cGU7ImNhdGVnb3J5IiE9PWYmJiJtdWx0aWNhdGVnb3J5IiE9PWZ8fCh0aGlzLm1pbkRpZmY9MSksdGhpcy5iaW5XaWR0aD10aGlzLm1pbkRpZmYsdGhpcy5iaW5zPXt9fWEucHJvdG90eXBlLnB1dD1mdW5jdGlvbih0LGUpe3ZhciByPXRoaXMuZ2V0TGFiZWwodCxlKSxuPXRoaXMuYmluc1tyXXx8MDtyZXR1cm4gdGhpcy5iaW5zW3JdPW4rZSxufSxhLnByb3RvdHlwZS5nZXQ9ZnVuY3Rpb24odCxlKXt2YXIgcj10aGlzLmdldExhYmVsKHQsZSk7cmV0dXJuIHRoaXMuYmluc1tyXXx8MH0sYS5wcm90b3R5cGUuZ2V0TGFiZWw9ZnVuY3Rpb24odCxlKXtyZXR1cm4oZTwwJiZ0aGlzLnNlcE5lZ1ZhbD8idiI6Il4iKSsodGhpcy5vdmVybGFwTm9NZXJnZT90Ok1hdGgucm91bmQodC90aGlzLmJpbldpZHRoKSl9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzZ9XSw5Mjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbz10KCIuLi8uLi9saWIiKSxzPXQoIi4uLy4uL3JlZ2lzdHJ5IiksbD10KCIuL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQsYz10KCIuL2F0dHJpYnV0ZXMiKSx1PWMudGV4dGZvbnQsZj1jLmluc2lkZXRleHRmb250LGg9Yy5vdXRzaWRldGV4dGZvbnQscD10KCIuL2hlbHBlcnMiKTtmdW5jdGlvbiBkKHQsZSxyKXthLnBvaW50U3R5bGUodC5zZWxlY3RBbGwoInBhdGgiKSxlLHIpLG0odCxlLHIpfWZ1bmN0aW9uIG0odCxlLHIpe3Quc2VsZWN0QWxsKCJ0ZXh0IikuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGk9bi5zZWxlY3QodGhpcykscz1vLmVuc3VyZVVuaWZvcm1Gb250U2l6ZShyLGcoaSx0LGUscikpO2EuZm9udChpLHMpfSkpfWZ1bmN0aW9uIGcodCxlLHIsbil7dmFyIGk9bi5fZnVsbExheW91dC5mb250LGE9ci50ZXh0Zm9udDtpZih0LmNsYXNzZWQoImJhcnRleHQtaW5zaWRlIikpe3ZhciBvPV8oZSxyKTthPXkocixlLmksaSxvKX1lbHNlIHQuY2xhc3NlZCgiYmFydGV4dC1vdXRzaWRlIikmJihhPXgocixlLmksaSkpO3JldHVybiBhfWZ1bmN0aW9uIHYodCxlLHIpe3JldHVybiBiKHUsdC50ZXh0Zm9udCxlLHIpfWZ1bmN0aW9uIHkodCxlLHIsbil7dmFyIGE9dih0LGUscik7cmV0dXJuKHZvaWQgMD09PXQuX2lucHV0LnRleHRmb250fHx2b2lkIDA9PT10Ll9pbnB1dC50ZXh0Zm9udC5jb2xvcnx8QXJyYXkuaXNBcnJheSh0LnRleHRmb250LmNvbG9yKSYmdm9pZCAwPT09dC50ZXh0Zm9udC5jb2xvcltlXSkmJihhPXtjb2xvcjppLmNvbnRyYXN0KG4pLGZhbWlseTphLmZhbWlseSxzaXplOmEuc2l6ZX0pLGIoZix0Lmluc2lkZXRleHRmb250LGUsYSl9ZnVuY3Rpb24geCh0LGUscil7dmFyIG49dih0LGUscik7cmV0dXJuIGIoaCx0Lm91dHNpZGV0ZXh0Zm9udCxlLG4pfWZ1bmN0aW9uIGIodCxlLHIsbil7ZT1lfHx7fTt2YXIgaT1wLmdldFZhbHVlKGUuZmFtaWx5LHIpLGE9cC5nZXRWYWx1ZShlLnNpemUsciksbz1wLmdldFZhbHVlKGUuY29sb3Iscik7cmV0dXJue2ZhbWlseTpwLmNvZXJjZVN0cmluZyh0LmZhbWlseSxpLG4uZmFtaWx5KSxzaXplOnAuY29lcmNlTnVtYmVyKHQuc2l6ZSxhLG4uc2l6ZSksY29sb3I6cC5jb2VyY2VDb2xvcih0LmNvbG9yLG8sbi5jb2xvcil9fWZ1bmN0aW9uIF8odCxlKXtyZXR1cm4id2F0ZXJmYWxsIj09PWUudHlwZT9lW3QuZGlyXS5tYXJrZXIuY29sb3I6dC5tY2N8fHQubWN8fGUubWFya2VyLmNvbG9yfWUuZXhwb3J0cz17c3R5bGU6ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLmJhcmxheWVyIikuc2VsZWN0QWxsKCJnLnRyYWNlIik7bCh0LGUsImJhciIpO3ZhciByPWUuc2l6ZSgpLGk9dC5fZnVsbExheW91dDtlLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pKS5lYWNoKChmdW5jdGlvbih0KXsoInN0YWNrIj09PWkuYmFybW9kZSYmcj4xfHwwPT09aS5iYXJnYXAmJjA9PT1pLmJhcmdyb3VwZ2FwJiYhdFswXS50cmFjZS5tYXJrZXIubGluZS53aWR0aCkmJm4uc2VsZWN0KHRoaXMpLmF0dHIoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKX0pKSxlLnNlbGVjdEFsbCgiZy5wb2ludHMiKS5lYWNoKChmdW5jdGlvbihlKXtkKG4uc2VsZWN0KHRoaXMpLGVbMF0udHJhY2UsdCl9KSkscy5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsInN0eWxlIikoZSl9LHN0eWxlVGV4dFBvaW50czptLHN0eWxlT25TZWxlY3Q6ZnVuY3Rpb24odCxlLHIpe3ZhciBpPWVbMF0udHJhY2U7aS5zZWxlY3RlZHBvaW50cz9mdW5jdGlvbih0LGUscil7YS5zZWxlY3RlZFBvaW50U3R5bGUodC5zZWxlY3RBbGwoInBhdGgiKSxlKSxmdW5jdGlvbih0LGUscil7dC5lYWNoKChmdW5jdGlvbih0KXt2YXIgaSxzPW4uc2VsZWN0KHRoaXMpO2lmKHQuc2VsZWN0ZWQpe2k9by5lbnN1cmVVbmlmb3JtRm9udFNpemUocixnKHMsdCxlLHIpKTt2YXIgbD1lLnNlbGVjdGVkLnRleHRmb250JiZlLnNlbGVjdGVkLnRleHRmb250LmNvbG9yO2wmJihpLmNvbG9yPWwpLGEuZm9udChzLGkpfWVsc2UgYS5zZWxlY3RlZFRleHRTdHlsZShzLGUpfSkpfSh0LnNlbGVjdEFsbCgidGV4dCIpLGUscil9KHIsaSx0KTooZChyLGksdCkscy5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsInN0eWxlIikocikpfSxnZXRJbnNpZGVUZXh0Rm9udDp5LGdldE91dHNpZGVUZXh0Rm9udDp4LGdldEJhckNvbG9yOl8scmVzaXplVGV4dDpsfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9hdHRyaWJ1dGVzIjo5MTQsIi4vaGVscGVycyI6OTIwLCIuL3VuaWZvcm1fdGV4dCI6OTMwLCJAcGxvdGx5L2QzIjo1OH1dLDkyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxvPXQoIi4uLy4uL2xpYiIpLmNvZXJjZVBhdHRlcm47ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMsbCl7dmFyIGM9cigibWFya2VyLmNvbG9yIixzKSx1PWkodCwibWFya2VyIik7dSYmYSh0LGUsbCxyLHtwcmVmaXg6Im1hcmtlci4iLGNMZXR0ZXI6ImMifSkscigibWFya2VyLmxpbmUuY29sb3IiLG4uZGVmYXVsdExpbmUpLGkodCwibWFya2VyLmxpbmUiKSYmYSh0LGUsbCxyLHtwcmVmaXg6Im1hcmtlci5saW5lLiIsY0xldHRlcjoiYyJ9KSxyKCJtYXJrZXIubGluZS53aWR0aCIpLHIoIm1hcmtlci5vcGFjaXR5IiksbyhyLCJtYXJrZXIucGF0dGVybiIsYyx1KSxyKCJzZWxlY3RlZC5tYXJrZXIuY29sb3IiKSxyKCJ1bnNlbGVjdGVkLm1hcmtlci5jb2xvciIpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjQ5LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyI6NjUwLCIuLi8uLi9saWIiOjc3Nn1dLDkzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKTtmdW5jdGlvbiBhKHQpe3JldHVybiJfIit0KyJUZXh0X21pbnNpemUifWUuZXhwb3J0cz17cmVjb3JkTWluVGV4dFNpemU6ZnVuY3Rpb24odCxlLHIpe2lmKHIudW5pZm9ybXRleHQubW9kZSl7dmFyIG49YSh0KSxpPXIudW5pZm9ybXRleHQubWluc2l6ZSxvPWUuc2NhbGUqZS5mb250U2l6ZTtlLmhpZGU9bzxpLHJbbl09cltuXXx8MS8wLGUuaGlkZXx8KHJbbl09TWF0aC5taW4ocltuXSxNYXRoLm1heChvLGkpKSl9fSxjbGVhck1pblRleHRTaXplOmZ1bmN0aW9uKHQsZSl7ZVthKHQpXT12b2lkIDB9LHJlc2l6ZVRleHQ6ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXQuX2Z1bGxMYXlvdXQsbz1hWyJfIityKyJUZXh0X21pbnNpemUiXTtpZihvKXt2YXIgcyxsPSJoaWRlIj09PWEudW5pZm9ybXRleHQubW9kZTtzd2l0Y2gocil7Y2FzZSJmdW5uZWxhcmVhIjpjYXNlInBpZSI6Y2FzZSJzdW5idXJzdCI6cz0iZy5zbGljZSI7YnJlYWs7Y2FzZSJ0cmVlbWFwIjpjYXNlImljaWNsZSI6cz0iZy5zbGljZSwgZy5wYXRoYmFyIjticmVhaztkZWZhdWx0OnM9ImcucG9pbnRzID4gZy5wb2ludCJ9ZS5zZWxlY3RBbGwocykuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC50cmFuc2Zvcm07ZSYmKGUuc2NhbGU9bCYmZS5oaWRlPzA6by9lLmZvbnRTaXplLG4uc2VsZWN0KHRoaXMpLnNlbGVjdCgidGV4dCIpLmF0dHIoInRyYW5zZm9ybSIsaS5nZXRUZXh0VHJhbnNmb3JtKGUpKSl9KSl9fX19LHsiLi4vLi4vbGliIjo3NzYsIkBwbG90bHkvZDMiOjU4fV0sOTMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxhPXQoIi4uL3NjYXR0ZXJwb2xhci9hdHRyaWJ1dGVzIiksbz10KCIuLi9iYXIvYXR0cmlidXRlcyIpO2UuZXhwb3J0cz17cjphLnIsdGhldGE6YS50aGV0YSxyMDphLnIwLGRyOmEuZHIsdGhldGEwOmEudGhldGEwLGR0aGV0YTphLmR0aGV0YSx0aGV0YXVuaXQ6YS50aGV0YXVuaXQsYmFzZTppKHt9LG8uYmFzZSx7fSksb2Zmc2V0Omkoe30sby5vZmZzZXQse30pLHdpZHRoOmkoe30sby53aWR0aCx7fSksdGV4dDppKHt9LG8udGV4dCx7fSksaG92ZXJ0ZXh0Omkoe30sby5ob3ZlcnRleHQse30pLG1hcmtlcjpvLm1hcmtlcixob3ZlcmluZm86YS5ob3ZlcmluZm8saG92ZXJ0ZW1wbGF0ZTpuKCksc2VsZWN0ZWQ6by5zZWxlY3RlZCx1bnNlbGVjdGVkOm8udW5zZWxlY3RlZH19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL2Jhci9hdHRyaWJ1dGVzIjo5MTQsIi4uL3NjYXR0ZXJwb2xhci9hdHRyaWJ1dGVzIjoxMjY1fV0sOTMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIikuaGFzQ29sb3JzY2FsZSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIiksYT10KCIuLi9iYXIvYXJyYXlzX3RvX2NhbGNkYXRhIiksbz10KCIuLi9iYXIvY3Jvc3NfdHJhY2VfY2FsYyIpLnNldEdyb3VwUG9zaXRpb25zLHM9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLGw9dCgiLi4vLi4vcmVnaXN0cnkiKS50cmFjZUlzLGM9dCgiLi4vLi4vbGliIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5fZnVsbExheW91dCxvPWUuc3VicGxvdCxsPXJbb10ucmFkaWFsYXhpcyxjPXJbb10uYW5ndWxhcmF4aXMsdT1sLm1ha2VDYWxjZGF0YShlLCJyIiksZj1jLm1ha2VDYWxjZGF0YShlLCJ0aGV0YSIpLGg9ZS5fbGVuZ3RoLHA9bmV3IEFycmF5KGgpLGQ9dSxtPWYsZz0wO2c8aDtnKyspcFtnXT17cDptW2ddLHM6ZFtnXX07ZnVuY3Rpb24gdih0KXt2YXIgcj1lW3RdO3ZvaWQgMCE9PXImJihlWyJfIit0XT1BcnJheS5pc0FycmF5KHIpP2MubWFrZUNhbGNkYXRhKGUsdCk6Yy5kMmMocixlLnRoZXRhdW5pdCkpfXJldHVybiJsaW5lYXIiPT09Yy50eXBlJiYodigid2lkdGgiKSx2KCJvZmZzZXQiKSksbihlLCJtYXJrZXIiKSYmaSh0LGUse3ZhbHM6ZS5tYXJrZXIuY29sb3IsY29udGFpbmVyU3RyOiJtYXJrZXIiLGNMZXR0ZXI6ImMifSksbihlLCJtYXJrZXIubGluZSIpJiZpKHQsZSx7dmFsczplLm1hcmtlci5saW5lLmNvbG9yLGNvbnRhaW5lclN0cjoibWFya2VyLmxpbmUiLGNMZXR0ZXI6ImMifSksYShwLGUpLHMocCxlKSxwfSxjcm9zc1RyYWNlQ2FsYzpmdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPXQuY2FsY2RhdGEsaT1bXSxhPTA7YTxuLmxlbmd0aDthKyspe3ZhciBzPW5bYV0sdT1zWzBdLnRyYWNlOyEwPT09dS52aXNpYmxlJiZsKHUsImJhciIpJiZ1LnN1YnBsb3Q9PT1yJiZpLnB1c2gocyl9dmFyIGY9Yyh7fSxlLnJhZGlhbGF4aXMse19pZDoieCJ9KSxoPWUuYW5ndWxhcmF4aXM7byh0LGgsZixpLHttb2RlOmUuYmFybW9kZSxub3JtOmUuYmFybm9ybSxnYXA6ZS5iYXJnYXAsZ3JvdXBnYXA6ZS5iYXJncm91cGdhcH0pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjY0NywiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiOjY1MCwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2Jhci9hcnJheXNfdG9fY2FsY2RhdGEiOjkxMywiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiOjkxNywiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiI6MTE5M31dLDkzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXJwb2xhci9kZWZhdWx0cyIpLmhhbmRsZVJUaGV0YURlZmF1bHRzLGE9dCgiLi4vYmFyL3N0eWxlX2RlZmF1bHRzIiksbz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7ZnVuY3Rpb24gbChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWkodCxlLHMsbCk/KGwoInRoZXRhdW5pdCIpLGwoImJhc2UiKSxsKCJvZmZzZXQiKSxsKCJ3aWR0aCIpLGwoInRleHQiKSxsKCJob3ZlcnRleHQiKSxsKCJob3ZlcnRlbXBsYXRlIiksYSh0LGUsbCxyLHMpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLGwpKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9iYXIvc3R5bGVfZGVmYXVsdHMiOjkyOSwiLi4vc2NhdHRlcnBvbGFyL2RlZmF1bHRzIjoxMjY3LCIuL2F0dHJpYnV0ZXMiOjkzMX1dLDkzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2Jhci9ob3ZlciIpLmdldFRyYWNlQ29sb3Isbz1pLmZpbGxUZXh0LHM9dCgiLi4vc2NhdHRlcnBvbGFyL2hvdmVyIikubWFrZUhvdmVyUG9pbnRUZXh0LGw9dCgiLi4vLi4vcGxvdHMvcG9sYXIvaGVscGVycyIpLmlzUHRJbnNpZGVQb2x5Z29uO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGM9dC5jZCx1PWNbMF0udHJhY2UsZj10LnN1YnBsb3QsaD1mLnJhZGlhbEF4aXMscD1mLmFuZ3VsYXJBeGlzLGQ9Zi52YW5nbGVzLG09ZD9sOmkuaXNQdEluc2lkZVNlY3RvcixnPXQubWF4SG92ZXJEaXN0YW5jZSx2PXAuX3BlcmlvZHx8MipNYXRoLlBJLHk9TWF0aC5hYnMoaC5nMnAoTWF0aC5zcXJ0KGUqZStyKnIpKSkseD1NYXRoLmF0YW4yKHIsZSk7aC5yYW5nZVswXT5oLnJhbmdlWzFdJiYoeCs9TWF0aC5QSSk7aWYobi5nZXRDbG9zZXN0KGMsKGZ1bmN0aW9uKHQpe3JldHVybiBtKHkseCxbdC5ycDAsdC5ycDFdLFt0LnRoZXRhZzAsdC50aGV0YWcxXSxkKT9nK01hdGgubWluKDEsTWF0aC5hYnModC50aGV0YWcxLXQudGhldGFnMCkvdiktMSsodC5ycDEteSkvKHQucnAxLXQucnAwKS0xOjEvMH0pLHQpLCExIT09dC5pbmRleCl7dmFyIGI9Y1t0LmluZGV4XTt0LngwPXQueDE9Yi5jdFswXSx0LnkwPXQueTE9Yi5jdFsxXTt2YXIgXz1pLmV4dGVuZEZsYXQoe30sYix7cjpiLnMsdGhldGE6Yi5wfSk7cmV0dXJuIG8oYix1LHQpLHMoXyx1LGYsdCksdC5ob3ZlcnRlbXBsYXRlPXUuaG92ZXJ0ZW1wbGF0ZSx0LmNvbG9yPWEodSxiKSx0LnhMYWJlbFZhbD10LnlMYWJlbFZhbD12b2lkIDAsYi5zPDAmJih0LmlkZWFsQWxpZ249ImxlZnQiKSxbdF19fX0seyIuLi8uLi9jb21wb25lbnRzL2Z4Ijo2NzksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9wb2xhci9oZWxwZXJzIjo4OTIsIi4uL2Jhci9ob3ZlciI6OTIxLCIuLi9zY2F0dGVycG9sYXIvaG92ZXIiOjEyNjl9XSw5MzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiYmFycG9sYXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL3BvbGFyIiksY2F0ZWdvcmllczpbInBvbGFyIiwiYmFyIiwic2hvd0xlZ2VuZCJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksbGF5b3V0QXR0cmlidXRlczp0KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4vbGF5b3V0X2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKS5jYWxjLGNyb3NzVHJhY2VDYWxjOnQoIi4vY2FsYyIpLmNyb3NzVHJhY2VDYWxjLHBsb3Q6dCgiLi9wbG90IiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi4vc2NhdHRlcnBvbGFyL2Zvcm1hdF9sYWJlbHMiKSxzdHlsZTp0KCIuLi9iYXIvc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4uL2Jhci9zdHlsZSIpLnN0eWxlT25TZWxlY3QsaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLHNlbGVjdFBvaW50czp0KCIuLi9iYXIvc2VsZWN0IiksbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvcG9sYXIiOjg5MywiLi4vYmFyL3NlbGVjdCI6OTI2LCIuLi9iYXIvc3R5bGUiOjkyOCwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjEyMDksIi4uL3NjYXR0ZXJwb2xhci9mb3JtYXRfbGFiZWxzIjoxMjY4LCIuL2F0dHJpYnV0ZXMiOjkzMSwiLi9jYWxjIjo5MzIsIi4vZGVmYXVsdHMiOjkzMywiLi9ob3ZlciI6OTM0LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo5MzYsIi4vbGF5b3V0X2RlZmF1bHRzIjo5MzcsIi4vcGxvdCI6OTM4fV0sOTM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YmFybW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic3RhY2siLCJvdmVybGF5Il0sZGZsdDoic3RhY2siLGVkaXRUeXBlOiJjYWxjIn0sYmFyZ2FwOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6LjEsbWluOjAsbWF4OjEsZWRpdFR5cGU6ImNhbGMifX19LHt9XSw5Mzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxvPXt9O2Z1bmN0aW9uIHMocixvKXtyZXR1cm4gbi5jb2VyY2UodFthXXx8e30sZVthXSxpLHIsbyl9Zm9yKHZhciBsPTA7bDxyLmxlbmd0aDtsKyspe3ZhciBjPXJbbF07ImJhcnBvbGFyIj09PWMudHlwZSYmITA9PT1jLnZpc2libGUmJihvW2E9Yy5zdWJwbG90XXx8KHMoImJhcm1vZGUiKSxzKCJiYXJnYXAiKSxvW2FdPTEpKX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo5MzZ9XSw5Mzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIikscz10KCIuLi8uLi9wbG90cy9wb2xhci9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbD1lLnhheGlzLGM9ZS55YXhpcyx1PWUucmFkaWFsQXhpcyxmPWUuYW5ndWxhckF4aXMsaD1mdW5jdGlvbih0KXt2YXIgZT10LmN4eCxyPXQuY3l5O2lmKHQudmFuZ2xlcylyZXR1cm4gZnVuY3Rpb24obixpLG8sbCl7dmFyIGMsdTthLmFuZ2xlRGVsdGEobyxsKT4wPyhjPW8sdT1sKTooYz1sLHU9byk7dmFyIGY9W3MuZmluZEVuY2xvc2luZ1ZlcnRleEFuZ2xlcyhjLHQudmFuZ2xlcylbMF0sKGMrdSkvMixzLmZpbmRFbmNsb3NpbmdWZXJ0ZXhBbmdsZXModSx0LnZhbmdsZXMpWzFdXTtyZXR1cm4gcy5wYXRoUG9seWdvbkFubnVsdXMobixpLGMsdSxmLGUscil9O3JldHVybiBmdW5jdGlvbih0LG4saSxvKXtyZXR1cm4gYS5wYXRoQW5udWx1cyh0LG4saSxvLGUscil9fShlKSxwPWUubGF5ZXJzLmZyb250cGxvdC5zZWxlY3QoImcuYmFybGF5ZXIiKTthLm1ha2VUcmFjZUdyb3VwcyhwLHIsInRyYWNlIGJhcnMiKS5lYWNoKChmdW5jdGlvbigpe3ZhciByPW4uc2VsZWN0KHRoaXMpLHM9YS5lbnN1cmVTaW5nbGUociwiZyIsInBvaW50cyIpLnNlbGVjdEFsbCgiZy5wb2ludCIpLmRhdGEoYS5pZGVudGl0eSk7cy5lbnRlcigpLmFwcGVuZCgiZyIpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwyKS5jbGFzc2VkKCJwb2ludCIsITApLHMuZXhpdCgpLnJlbW92ZSgpLHMuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGUscj1uLnNlbGVjdCh0aGlzKSxvPXQucnAwPXUuYzJwKHQuczApLHM9dC5ycDE9dS5jMnAodC5zMSkscD10LnRoZXRhZzA9Zi5jMmcodC5wMCksZD10LnRoZXRhZzE9Zi5jMmcodC5wMSk7aWYoaShvKSYmaShzKSYmaShwKSYmaShkKSYmbyE9PXMmJnAhPT1kKXt2YXIgbT11LmMyZyh0LnMxKSxnPShwK2QpLzI7dC5jdD1bbC5jMnAobSpNYXRoLmNvcyhnKSksYy5jMnAobSpNYXRoLnNpbihnKSldLGU9aChvLHMscCxkKX1lbHNlIGU9Ik0wLDBaIjthLmVuc3VyZVNpbmdsZShyLCJwYXRoIikuYXR0cigiZCIsZSl9KSksby5zZXRDbGlwVXJsKHIsZS5faGFzQ2xpcE9uQXhpc0ZhbHNlP2UuY2xpcElkcy5mb3JUcmFjZXM6bnVsbCx0KX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9wb2xhci9oZWxwZXJzIjo4OTIsIkBwbG90bHkvZDMiOjU4LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sOTM5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vYmFyL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQscz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYz1uLm1hcmtlcix1PWMubGluZTtlLmV4cG9ydHM9e3k6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx4MDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHkwOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sZHg6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSxkeTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHhwZXJpb2Q6bi54cGVyaW9kLHlwZXJpb2Q6bi55cGVyaW9kLHhwZXJpb2QwOm4ueHBlcmlvZDAseXBlcmlvZDA6bi55cGVyaW9kMCx4cGVyaW9kYWxpZ25tZW50Om4ueHBlcmlvZGFsaWdubWVudCx5cGVyaW9kYWxpZ25tZW50Om4ueXBlcmlvZGFsaWdubWVudCx4aG92ZXJmb3JtYXQ6bygieCIpLHlob3ZlcmZvcm1hdDpvKCJ5IiksbmFtZTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHExOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LG1lZGlhbjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxxMzp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxsb3dlcmZlbmNlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHVwcGVyZmVuY2U6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbm90Y2hlZDp7dmFsVHlwZToiYm9vbGVhbiIsZWRpdFR5cGU6ImNhbGMifSxub3RjaHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDouNSxkZmx0Oi4yNSxlZGl0VHlwZToiY2FsYyJ9LG5vdGNoc3Bhbjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxib3hwb2ludHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsIm91dGxpZXJzIiwic3VzcGVjdGVkb3V0bGllcnMiLCExXSxlZGl0VHlwZToiY2FsYyJ9LGppdHRlcjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToiY2FsYyJ9LHBvaW50cG9zOnt2YWxUeXBlOiJudW1iZXIiLG1pbjotMixtYXg6MixlZGl0VHlwZToiY2FsYyJ9LGJveG1lYW46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsInNkIiwhMV0sZWRpdFR5cGU6ImNhbGMifSxtZWFuOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHNkOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0scXVhcnRpbGVtZXRob2Q6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxpbmVhciIsImV4Y2x1c2l2ZSIsImluY2x1c2l2ZSJdLGRmbHQ6ImxpbmVhciIsZWRpdFR5cGU6ImNhbGMifSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6e291dGxpZXJjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6InJnYmEoMCwgMCwgMCwgMCkiLGVkaXRUeXBlOiJzdHlsZSJ9LHN5bWJvbDpsKHt9LGMuc3ltYm9sLHthcnJheU9rOiExLGVkaXRUeXBlOiJwbG90In0pLG9wYWNpdHk6bCh7fSxjLm9wYWNpdHkse2FycmF5T2s6ITEsZGZsdDoxLGVkaXRUeXBlOiJzdHlsZSJ9KSxzaXplOmwoe30sYy5zaXplLHthcnJheU9rOiExLGVkaXRUeXBlOiJjYWxjIn0pLGNvbG9yOmwoe30sYy5jb2xvcix7YXJyYXlPazohMSxlZGl0VHlwZToic3R5bGUifSksbGluZTp7Y29sb3I6bCh7fSx1LmNvbG9yLHthcnJheU9rOiExLGRmbHQ6YS5kZWZhdWx0TGluZSxlZGl0VHlwZToic3R5bGUifSksd2lkdGg6bCh7fSx1LndpZHRoLHthcnJheU9rOiExLGRmbHQ6MCxlZGl0VHlwZToic3R5bGUifSksb3V0bGllcmNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sb3V0bGllcndpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToic3R5bGUifSxlZGl0VHlwZToicGxvdCJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJwbG90In0sZmlsbGNvbG9yOm4uZmlsbGNvbG9yLHdoaXNrZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi41LGVkaXRUeXBlOiJjYWxjIn0sb2Zmc2V0Z3JvdXA6aS5vZmZzZXRncm91cCxhbGlnbm1lbnRncm91cDppLmFsaWdubWVudGdyb3VwLHNlbGVjdGVkOnttYXJrZXI6bi5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6InN0eWxlIn0sdW5zZWxlY3RlZDp7bWFya2VyOm4udW5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6InN0eWxlIn0sdGV4dDpsKHt9LG4udGV4dCx7fSksaG92ZXJ0ZXh0Omwoe30sbi5ob3ZlcnRleHQse30pLGhvdmVydGVtcGxhdGU6cyh7fSksaG92ZXJvbjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsiYm94ZXMiLCJwb2ludHMiXSxkZmx0OiJib3hlcytwb2ludHMiLGVkaXRUeXBlOiJzdHlsZSJ9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjYzOCwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6ODMwLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL2Jhci9hdHRyaWJ1dGVzIjo5MTQsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTE5MX1dLDk0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKSxvPXQoIi4uLy4uL2xpYiIpLHM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxsPW8uXztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixjLHkseCxiLF8sdyxUPXQuX2Z1bGxMYXlvdXQsaz1pLmdldEZyb21JZCh0LGUueGF4aXN8fCJ4IiksQT1pLmdldEZyb21JZCh0LGUueWF4aXN8fCJ5IiksTT1bXSxTPSJ2aW9saW4iPT09ZS50eXBlPyJfbnVtVmlvbGlucyI6Il9udW1Cb3hlcyI7ImgiPT09ZS5vcmllbnRhdGlvbj8oeT1rLHg9IngiLGI9QSxfPSJ5Iix3PSEhZS55cGVyaW9kYWxpZ25tZW50KTooeT1BLHg9InkiLGI9ayxfPSJ4Iix3PSEhZS54cGVyaW9kYWxpZ25tZW50KTt2YXIgRSxMLEMsUCxJLE8sej1mdW5jdGlvbih0LGUscixpKXt2YXIgcyxsPWUrIjAiaW4gdCxjPSJkIitlIGluIHQ7aWYoZSBpbiB0fHxsJiZjKXt2YXIgdT1yLm1ha2VDYWxjZGF0YSh0LGUpO3JldHVyblthKHQscixlLHUpLnZhbHMsdV19cz1sP3RbZSsiMCJdOiJuYW1lImluIHQmJigiY2F0ZWdvcnkiPT09ci50eXBlfHxuKHQubmFtZSkmJi0xIT09WyJsaW5lYXIiLCJsb2ciXS5pbmRleE9mKHIudHlwZSl8fG8uaXNEYXRlVGltZSh0Lm5hbWUpJiYiZGF0ZSI9PT1yLnR5cGUpP3QubmFtZTppO2Zvcih2YXIgZj0ibXVsdGljYXRlZ29yeSI9PT1yLnR5cGU/ci5yMmNfanVzdF9pbmRpY2VzKHMpOnIuZDJjKHMsMCx0W2UrImNhbGVuZGFyIl0pLGg9dC5fbGVuZ3RoLHA9bmV3IEFycmF5KGgpLGQ9MDtkPGg7ZCsrKXBbZF09ZjtyZXR1cm5bcF19KGUsXyxiLFRbU10pLEQ9elswXSxSPXpbMV0sRj1vLmRpc3RpbmN0VmFscyhELGIpLEI9Ri52YWxzLE49Ri5taW5EaWZmLzIsaj0iYWxsIj09PShlLmJveHBvaW50c3x8ZS5wb2ludHMpP28uaWRlbnRpdHk6ZnVuY3Rpb24odCl7cmV0dXJuIHQudjxFLmxmfHx0LnY+RS51Zn07aWYoZS5faGFzUHJlQ29tcFN0YXRzKXt2YXIgVT1lW3hdLFY9ZnVuY3Rpb24odCl7cmV0dXJuIHkuZDJjKChlW3RdfHxbXSlbcl0pfSxIPTEvMCxxPS0xLzA7Zm9yKHI9MDtyPGUuX2xlbmd0aDtyKyspe3ZhciBHPURbcl07aWYobihHKSl7aWYoKEU9e30pLnBvcz1FW19dPUcsdyYmUiYmKEUub3JpZ19wPVJbcl0pLEUucTE9VigicTEiKSxFLm1lZD1WKCJtZWRpYW4iKSxFLnEzPVYoInEzIiksTD1bXSxVJiZvLmlzQXJyYXlPclR5cGVkQXJyYXkoVVtyXSkpZm9yKGM9MDtjPFVbcl0ubGVuZ3RoO2MrKykoTz15LmQyYyhVW3JdW2NdKSkhPT1zJiYodShJPXt2Ok8saTpbcixjXX0sZSxbcixjXSksTC5wdXNoKEkpKTtpZihFLnB0cz1MLnNvcnQoZiksUD0oQz1FW3hdPUwubWFwKGgpKS5sZW5ndGgsRS5tZWQhPT1zJiZFLnExIT09cyYmRS5xMyE9PXMmJkUubWVkPj1FLnExJiZFLnEzPj1FLm1lZCl7dmFyIFk9VigibG93ZXJmZW5jZSIpO0UubGY9WSE9PXMmJlk8PUUucTE/WTpwKEUsQyxQKTt2YXIgVz1WKCJ1cHBlcmZlbmNlIik7RS51Zj1XIT09cyYmVz49RS5xMz9XOmQoRSxDLFApO3ZhciBYPVYoIm1lYW4iKTtFLm1lYW49WCE9PXM/WDpQP28ubWVhbihDLFApOihFLnExK0UucTMpLzI7dmFyIFo9Vigic2QiKTtFLnNkPVghPT1zJiZaPj0wP1o6UD9vLnN0ZGV2KEMsUCxFLm1lYW4pOkUucTMtRS5xMSxFLmxvPW0oRSksRS51bz1nKEUpO3ZhciBKPVYoIm5vdGNoc3BhbiIpO0o9SiE9PXMmJko+MD9KOnYoRSxQKSxFLmxuPUUubWVkLUosRS51bj1FLm1lZCtKO3ZhciBLPUUubGYsUT1FLnVmO2UuYm94cG9pbnRzJiZDLmxlbmd0aCYmKEs9TWF0aC5taW4oSyxDWzBdKSxRPU1hdGgubWF4KFEsQ1tQLTFdKSksZS5ub3RjaGVkJiYoSz1NYXRoLm1pbihLLEUubG4pLFE9TWF0aC5tYXgoUSxFLnVuKSksRS5taW49SyxFLm1heD1RfWVsc2V7dmFyICQ7by53YXJuKFsiSW52YWxpZCBpbnB1dCAtIG1ha2Ugc3VyZSB0aGF0IHExIDw9IG1lZGlhbiA8PSBxMyIsInExID0gIitFLnExLCJtZWRpYW4gPSAiK0UubWVkLCJxMyA9ICIrRS5xM10uam9pbigiXG4iKSksJD1FLm1lZCE9PXM/RS5tZWQ6RS5xMSE9PXM/RS5xMyE9PXM/KEUucTErRS5xMykvMjpFLnExOkUucTMhPT1zP0UucTM6MCxFLm1lZD0kLEUucTE9RS5xMz0kLEUubGY9RS51Zj0kLEUubWVhbj1FLnNkPSQsRS5sbj1FLnVuPSQsRS5taW49RS5tYXg9JH1IPU1hdGgubWluKEgsRS5taW4pLHE9TWF0aC5tYXgocSxFLm1heCksRS5wdHMyPUwuZmlsdGVyKGopLE0ucHVzaChFKX19ZS5fZXh0cmVtZXNbeS5faWRdPWkuZmluZEV4dHJlbWVzKHksW0gscV0se3BhZGRlZDohMH0pfWVsc2V7dmFyIHR0PXkubWFrZUNhbGNkYXRhKGUseCksZXQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5sZW5ndGgsbj1uZXcgQXJyYXkocisxKSxpPTA7aTxyO2krKyluW2ldPXRbaV0tZTtyZXR1cm4gbltyXT10W3ItMV0rZSxufShCLE4pLHJ0PUIubGVuZ3RoLG50PWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodCkscj0wO3I8dDtyKyspZVtyXT1bXTtyZXR1cm4gZX0ocnQpO2ZvcihyPTA7cjxlLl9sZW5ndGg7cisrKWlmKE89dHRbcl0sbihPKSl7dmFyIGl0PW8uZmluZEJpbihEW3JdLGV0KTtpdD49MCYmaXQ8cnQmJih1KEk9e3Y6TyxpOnJ9LGUsciksbnRbaXRdLnB1c2goSSkpfXZhciBhdD0xLzAsb3Q9LTEvMCxzdD1lLnF1YXJ0aWxlbWV0aG9kLGx0PSJleGNsdXNpdmUiPT09c3QsY3Q9ImluY2x1c2l2ZSI9PT1zdDtmb3Iocj0wO3I8cnQ7cisrKWlmKG50W3JdLmxlbmd0aD4wKXt2YXIgdXQsZnQ7aWYoKEU9e30pLnBvcz1FW19dPUJbcl0sTD1FLnB0cz1udFtyXS5zb3J0KGYpLFA9KEM9RVt4XT1MLm1hcChoKSkubGVuZ3RoLEUubWluPUNbMF0sRS5tYXg9Q1tQLTFdLEUubWVhbj1vLm1lYW4oQyxQKSxFLnNkPW8uc3RkZXYoQyxQLEUubWVhbiksRS5tZWQ9by5pbnRlcnAoQywuNSksUCUyJiYobHR8fGN0KSlsdD8odXQ9Qy5zbGljZSgwLFAvMiksZnQ9Qy5zbGljZShQLzIrMSkpOmN0JiYodXQ9Qy5zbGljZSgwLFAvMisxKSxmdD1DLnNsaWNlKFAvMikpLEUucTE9by5pbnRlcnAodXQsLjUpLEUucTM9by5pbnRlcnAoZnQsLjUpO2Vsc2UgRS5xMT1vLmludGVycChDLC4yNSksRS5xMz1vLmludGVycChDLC43NSk7RS5sZj1wKEUsQyxQKSxFLnVmPWQoRSxDLFApLEUubG89bShFKSxFLnVvPWcoRSk7dmFyIGh0PXYoRSxQKTtFLmxuPUUubWVkLWh0LEUudW49RS5tZWQraHQsYXQ9TWF0aC5taW4oYXQsRS5sbiksb3Q9TWF0aC5tYXgob3QsRS51biksRS5wdHMyPUwuZmlsdGVyKGopLE0ucHVzaChFKX1lLl9leHRyZW1lc1t5Ll9pZF09aS5maW5kRXh0cmVtZXMoeSxlLm5vdGNoZWQ/dHQuY29uY2F0KFthdCxvdF0pOnR0LHtwYWRkZWQ6ITB9KX1yZXR1cm4gZnVuY3Rpb24odCxlKXtpZihvLmlzQXJyYXlPclR5cGVkQXJyYXkoZS5zZWxlY3RlZHBvaW50cykpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe2Zvcih2YXIgbj10W3JdLnB0c3x8W10saT17fSxhPTA7YTxuLmxlbmd0aDthKyspaVtuW2FdLmldPWE7by50YWdTZWxlY3RlZChuLGUsaSl9fShNLGUpLE0ubGVuZ3RoPjA/KE1bMF0udD17bnVtOlRbU10sZFBvczpOLHBvc0xldHRlcjpfLHZhbExldHRlcjp4LGxhYmVsczp7bWVkOmwodCwibWVkaWFuOiIpLG1pbjpsKHQsIm1pbjoiKSxxMTpsKHQsInExOiIpLHEzOmwodCwicTM6IiksbWF4OmwodCwibWF4OiIpLG1lYW46InNkIj09PWUuYm94bWVhbj9sKHQsIm1lYW4gXHhiMSBcdTAzYzM6Iik6bCh0LCJtZWFuOiIpLGxmOmwodCwibG93ZXIgZmVuY2U6IiksdWY6bCh0LCJ1cHBlciBmZW5jZToiKX19LFRbU10rKyxNKTpbe3Q6e2VtcHR5OiEwfX1dfTt2YXIgYz17dGV4dDoidHgiLGhvdmVydGV4dDoiaHR4In07ZnVuY3Rpb24gdSh0LGUscil7Zm9yKHZhciBuIGluIGMpby5pc0FycmF5T3JUeXBlZEFycmF5KGVbbl0pJiYoQXJyYXkuaXNBcnJheShyKT9vLmlzQXJyYXlPclR5cGVkQXJyYXkoZVtuXVtyWzBdXSkmJih0W2Nbbl1dPWVbbl1bclswXV1bclsxXV0pOnRbY1tuXV09ZVtuXVtyXSl9ZnVuY3Rpb24gZih0LGUpe3JldHVybiB0LnYtZS52fWZ1bmN0aW9uIGgodCl7cmV0dXJuIHQudn1mdW5jdGlvbiBwKHQsZSxyKXtyZXR1cm4gMD09PXI/dC5xMTpNYXRoLm1pbih0LnExLGVbTWF0aC5taW4oby5maW5kQmluKDIuNSp0LnExLTEuNSp0LnEzLGUsITApKzEsci0xKV0pfWZ1bmN0aW9uIGQodCxlLHIpe3JldHVybiAwPT09cj90LnEzOk1hdGgubWF4KHQucTMsZVtNYXRoLm1heChvLmZpbmRCaW4oMi41KnQucTMtMS41KnQucTEsZSksMCldKX1mdW5jdGlvbiBtKHQpe3JldHVybiA0KnQucTEtMyp0LnEzfWZ1bmN0aW9uIGcodCl7cmV0dXJuIDQqdC5xMy0zKnQucTF9ZnVuY3Rpb24gdih0LGUpe3JldHVybiAwPT09ZT8wOjEuNTcqKHQucTMtdC5xMSkvTWF0aC5zcXJ0KGUpfX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIjo4MjQsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw5NDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIikuZ2V0QXhpc0dyb3VwLG89WyJ2IiwiaCJdO2Z1bmN0aW9uIHModCxlLHIsbyl7dmFyIHMsbCxjLHU9ZS5jYWxjZGF0YSxmPWUuX2Z1bGxMYXlvdXQsaD1vLl9pZCxwPWguY2hhckF0KDApLGQ9W10sbT0wO2ZvcihzPTA7czxyLmxlbmd0aDtzKyspZm9yKGM9dVtyW3NdXSxsPTA7bDxjLmxlbmd0aDtsKyspZC5wdXNoKG8uYzJsKGNbbF0ucG9zLCEwKSksbSs9KGNbbF0ucHRzMnx8W10pLmxlbmd0aDtpZihkLmxlbmd0aCl7dmFyIGc9aS5kaXN0aW5jdFZhbHMoZCk7ImNhdGVnb3J5IiE9PW8udHlwZSYmIm11bHRpY2F0ZWdvcnkiIT09by50eXBlfHwoZy5taW5EaWZmPTEpO3ZhciB2PWcubWluRGlmZi8yO24ubWluRHRpY2sobyxnLm1pbkRpZmYsZy52YWxzWzBdLCEwKTt2YXIgeT1mWyJ2aW9saW4iPT09dD8iX251bVZpb2xpbnMiOiJfbnVtQm94ZXMiXSx4PSJncm91cCI9PT1mW3QrIm1vZGUiXSYmeT4xLGI9MS1mW3QrImdhcCJdLF89MS1mW3QrImdyb3VwZ2FwIl07Zm9yKHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIHcsVCxrLEEsTSxTLEU9KGM9dVtyW3NdXSlbMF0udHJhY2UsTD1jWzBdLnQsQz1FLndpZHRoLFA9RS5zaWRlO2lmKEMpdz1UPUE9Qy8yLGs9MDtlbHNlIGlmKHc9dix4KXt2YXIgST1hKGYsby5faWQpK0Uub3JpZW50YXRpb24sTz0oZi5fYWxpZ25tZW50T3B0c1tJXXx8e30pW0UuYWxpZ25tZW50Z3JvdXBdfHx7fSx6PU9iamVjdC5rZXlzKE8ub2Zmc2V0R3JvdXBzfHx7fSkubGVuZ3RoLEQ9enx8eTtUPXcqYipfL0Qsaz0yKncqKCgoej9FLl9vZmZzZXRJbmRleDpMLm51bSkrLjUpL0QtLjUpKmIsQT13KmIvRH1lbHNlIFQ9dypiKl8saz0wLEE9dztMLmRQb3M9dyxMLmJQb3M9ayxMLmJkUG9zPVQsTC53SG92ZXI9QTt2YXIgUixGLEIsTixqLFUsVj1rK1QsSD1Cb29sZWFuKEMpO2lmKCJwb3NpdGl2ZSI9PT1QPyhNPXcqKEM/MTouNSksUj1WLFM9Uj1rKToibmVnYXRpdmUiPT09UD8oTT1SPWssUz13KihDPzE6LjUpLEY9Vik6KE09Uz13LFI9Rj1WKSwoRS5ib3hwb2ludHN8fEUucG9pbnRzKSYmbT4wKXt2YXIgcT1FLnBvaW50cG9zLEc9RS5qaXR0ZXIsWT1FLm1hcmtlci5zaXplLzIsVz0wO3ErRz49MCYmKChXPVYqKHErRykpPk0/KEg9ITAsaj1ZLEI9Vyk6Vz5SJiYoaj1ZLEI9TSkpLFc8PU0mJihCPU0pO3ZhciBYPTA7cS1HPD0wJiYoKFg9LVYqKHEtRykpPlM/KEg9ITAsVT1ZLE49WCk6WD5GJiYoVT1ZLE49UykpLFg8PVMmJihOPVMpfWVsc2UgQj1NLE49Uzt2YXIgWj1uZXcgQXJyYXkoYy5sZW5ndGgpO2ZvcihsPTA7bDxjLmxlbmd0aDtsKyspWltsXT1jW2xdLnBvcztFLl9leHRyZW1lc1toXT1uLmZpbmRFeHRyZW1lcyhvLFose3BhZGRlZDpILHZwYWRtaW51czpOLHZwYWRwbHVzOkIsdnBhZExpbmVhcml6ZWQ6ITAscHBhZG1pbnVzOnt4OlUseTpqfVtwXSxwcGFkcGx1czp7eDpqLHk6VX1bcF19KX19fWUuZXhwb3J0cz17Y3Jvc3NUcmFjZUNhbGM6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jYWxjZGF0YSxuPWUueGF4aXMsaT1lLnlheGlzLGE9MDthPG8ubGVuZ3RoO2ErKyl7Zm9yKHZhciBsPW9bYV0sYz0iaCI9PT1sP2k6bix1PVtdLGY9MDtmPHIubGVuZ3RoO2YrKyl7dmFyIGg9cltmXSxwPWhbMF0udCxkPWhbMF0udHJhY2U7ITAhPT1kLnZpc2libGV8fCJib3giIT09ZC50eXBlJiYiY2FuZGxlc3RpY2siIT09ZC50eXBlfHxwLmVtcHR5fHwoZC5vcmllbnRhdGlvbnx8InYiKSE9PWx8fGQueGF4aXMhPT1uLl9pZHx8ZC55YXhpcyE9PWkuX2lkfHx1LnB1c2goZil9cygiYm94Iix0LHUsYyl9fSxzZXRQb3NpdGlvbk9mZnNldDpzfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIjo4MzV9XSw5NDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89dCgiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiKSxzPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZUdyb3VwaW5nRGVmYXVsdHMsbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19hdXRvdHlwZSIpLGM9dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gdSh0LGUscixhKXtmdW5jdGlvbiBvKHQpe3ZhciBlPTA7cmV0dXJuIHQmJnQubGVuZ3RoJiYoZSs9MSxuLmlzQXJyYXlPclR5cGVkQXJyYXkodFswXSkmJnRbMF0ubGVuZ3RoJiYoZSs9MSkpLGV9ZnVuY3Rpb24gcyhlKXtyZXR1cm4gbi52YWxpZGF0ZSh0W2VdLGNbZV0pfXZhciB1LGY9cigieSIpLGg9cigieCIpO2lmKCJib3giPT09ZS50eXBlKXt2YXIgcD1yKCJxMSIpLGQ9cigibWVkaWFuIiksbT1yKCJxMyIpO2UuX2hhc1ByZUNvbXBTdGF0cz1wJiZwLmxlbmd0aCYmZCYmZC5sZW5ndGgmJm0mJm0ubGVuZ3RoLHU9TWF0aC5taW4obi5taW5Sb3dMZW5ndGgocCksbi5taW5Sb3dMZW5ndGgoZCksbi5taW5Sb3dMZW5ndGgobSkpfXZhciBnLHYseT1vKGYpLHg9byhoKSxiPXkmJm4ubWluUm93TGVuZ3RoKGYpLF89eCYmbi5taW5Sb3dMZW5ndGgoaCksdz1hLmNhbGVuZGFyLFQ9e2F1dG90eXBlbnVtYmVyczphLmF1dG90eXBlbnVtYmVyc307aWYoZS5faGFzUHJlQ29tcFN0YXRzKXN3aXRjaChTdHJpbmcoeCkrU3RyaW5nKHkpKXtjYXNlIjAwIjp2YXIgaz1zKCJ4MCIpfHxzKCJkeCIpO2c9KHMoInkwIil8fHMoImR5IikpJiYhaz8iaCI6InYiLHY9dTticmVhaztjYXNlIjEwIjpnPSJ2Iix2PU1hdGgubWluKHUsXyk7YnJlYWs7Y2FzZSIyMCI6Zz0iaCIsdj1NYXRoLm1pbih1LGgubGVuZ3RoKTticmVhaztjYXNlIjAxIjpnPSJoIix2PU1hdGgubWluKHUsYik7YnJlYWs7Y2FzZSIwMiI6Zz0idiIsdj1NYXRoLm1pbih1LGYubGVuZ3RoKTticmVhaztjYXNlIjEyIjpnPSJ2Iix2PU1hdGgubWluKHUsXyxmLmxlbmd0aCk7YnJlYWs7Y2FzZSIyMSI6Zz0iaCIsdj1NYXRoLm1pbih1LGgubGVuZ3RoLGIpO2JyZWFrO2Nhc2UiMTEiOnY9MDticmVhaztjYXNlIjIyIjp2YXIgQSxNPSExO2ZvcihBPTA7QTxoLmxlbmd0aDtBKyspaWYoImNhdGVnb3J5Ij09PWwoaFtBXSx3LFQpKXtNPSEwO2JyZWFrfWlmKE0pZz0idiIsdj1NYXRoLm1pbih1LF8sZi5sZW5ndGgpO2Vsc2V7Zm9yKEE9MDtBPGYubGVuZ3RoO0ErKylpZigiY2F0ZWdvcnkiPT09bChmW0FdLHcsVCkpe009ITA7YnJlYWt9TT8oZz0iaCIsdj1NYXRoLm1pbih1LGgubGVuZ3RoLGIpKTooZz0idiIsdj1NYXRoLm1pbih1LF8sZi5sZW5ndGgpKX19ZWxzZSB5PjA/KGc9InYiLHY9eD4wP01hdGgubWluKF8sYik6TWF0aC5taW4oYikpOng+MD8oZz0iaCIsdj1NYXRoLm1pbihfKSk6dj0wO2lmKHYpe2UuX2xlbmd0aD12O3ZhciBTPXIoIm9yaWVudGF0aW9uIixnKTtlLl9oYXNQcmVDb21wU3RhdHM/InYiPT09UyYmMD09PXg/KHIoIngwIiwwKSxyKCJkeCIsMSkpOiJoIj09PVMmJjA9PT15JiYocigieTAiLDApLHIoImR5IiwxKSk6InYiPT09UyYmMD09PXg/cigieDAiKToiaCI9PT1TJiYwPT09eSYmcigieTAiKSxpLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5Il0sYSl9ZWxzZSBlLnZpc2libGU9ITF9ZnVuY3Rpb24gZih0LGUscixpKXt2YXIgYT1pLnByZWZpeCxvPW4uY29lcmNlMih0LGUsYywibWFya2VyLm91dGxpZXJjb2xvciIpLHM9cigibWFya2VyLmxpbmUub3V0bGllcmNvbG9yIiksbD0ib3V0bGllcnMiO2UuX2hhc1ByZUNvbXBTdGF0cz9sPSJhbGwiOihvfHxzKSYmKGw9InN1c3BlY3RlZG91dGxpZXJzIik7dmFyIHU9cihhKyJwb2ludHMiLGwpO3U/KHIoImppdHRlciIsImFsbCI9PT11Py4zOjApLHIoInBvaW50cG9zIiwiYWxsIj09PXU/LTEuNTowKSxyKCJtYXJrZXIuc3ltYm9sIikscigibWFya2VyLm9wYWNpdHkiKSxyKCJtYXJrZXIuc2l6ZSIpLHIoIm1hcmtlci5jb2xvciIsZS5saW5lLmNvbG9yKSxyKCJtYXJrZXIubGluZS5jb2xvciIpLHIoIm1hcmtlci5saW5lLndpZHRoIiksInN1c3BlY3RlZG91dGxpZXJzIj09PXUmJihyKCJtYXJrZXIubGluZS5vdXRsaWVyY29sb3IiLGUubWFya2VyLmNvbG9yKSxyKCJtYXJrZXIubGluZS5vdXRsaWVyd2lkdGgiKSkscigic2VsZWN0ZWQubWFya2VyLmNvbG9yIikscigidW5zZWxlY3RlZC5tYXJrZXIuY29sb3IiKSxyKCJzZWxlY3RlZC5tYXJrZXIuc2l6ZSIpLHIoInVuc2VsZWN0ZWQubWFya2VyLnNpemUiKSxyKCJ0ZXh0IikscigiaG92ZXJ0ZXh0IikpOmRlbGV0ZSBlLm1hcmtlcjt2YXIgZj1yKCJob3Zlcm9uIik7ImFsbCIhPT1mJiYtMT09PWYuaW5kZXhPZigicG9pbnRzIil8fHIoImhvdmVydGVtcGxhdGUiKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxyKX1lLmV4cG9ydHM9e3N1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLGkpe2Z1bmN0aW9uIHMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGMscixpKX1pZih1KHQsZSxzLGkpLCExIT09ZS52aXNpYmxlKXtvKHQsZSxpLHMpLHMoInhob3ZlcmZvcm1hdCIpLHMoInlob3ZlcmZvcm1hdCIpO3ZhciBsPWUuX2hhc1ByZUNvbXBTdGF0cztsJiYocygibG93ZXJmZW5jZSIpLHMoInVwcGVyZmVuY2UiKSkscygibGluZS5jb2xvciIsKHQubWFya2VyfHx7fSkuY29sb3J8fHIpLHMoImxpbmUud2lkdGgiKSxzKCJmaWxsY29sb3IiLGEuYWRkT3BhY2l0eShlLmxpbmUuY29sb3IsLjUpKTt2YXIgaD0hMTtpZihsKXt2YXIgcD1zKCJtZWFuIiksZD1zKCJzZCIpO3AmJnAubGVuZ3RoJiYoaD0hMCxkJiZkLmxlbmd0aCYmKGg9InNkIikpfXMoImJveG1lYW4iLGgpLHMoIndoaXNrZXJ3aWR0aCIpLHMoIndpZHRoIikscygicXVhcnRpbGVtZXRob2QiKTt2YXIgbT0hMTtpZihsKXt2YXIgZz1zKCJub3RjaHNwYW4iKTtnJiZnLmxlbmd0aCYmKG09ITApfWVsc2Ugbi52YWxpZGF0ZSh0Lm5vdGNod2lkdGgsYy5ub3RjaHdpZHRoKSYmKG09ITApO3MoIm5vdGNoZWQiLG0pJiZzKCJub3RjaHdpZHRoIiksZih0LGUscyx7cHJlZml4OiJib3gifSl9fSxjcm9zc1RyYWNlRGVmYXVsdHM6ZnVuY3Rpb24odCxlKXt2YXIgcixpO2Z1bmN0aW9uIGEodCl7cmV0dXJuIG4uY29lcmNlKGkuX2lucHV0LGksYyx0KX1mb3IodmFyIG89MDtvPHQubGVuZ3RoO28rKyl7dmFyIGw9KGk9dFtvXSkudHlwZTsiYm94IiE9PWwmJiJ2aW9saW4iIT09bHx8KHI9aS5faW5wdXQsImdyb3VwIj09PWVbbCsibW9kZSJdJiZzKHIsaSxlLGEpKX19LGhhbmRsZVNhbXBsZURlZmF1bHRzOnUsaGFuZGxlUG9pbnRzRGVmYXVsdHM6Zn19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfYXV0b3R5cGUiOjgyOCwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi4vYmFyL2RlZmF1bHRzIjo5MTgsIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIjoxMjExLCIuL2F0dHJpYnV0ZXMiOjkzOX1dLDk0MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZS5ob3Zlck9uQm94JiYodC5ob3Zlck9uQm94PWUuaG92ZXJPbkJveCksInhWYWwiaW4gZSYmKHQueD1lLnhWYWwpLCJ5VmFsImluIGUmJih0Lnk9ZS55VmFsKSxlLnhhJiYodC54YXhpcz1lLnhhKSxlLnlhJiYodC55YXhpcz1lLnlhKSx0fX0se31dLDk0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2Z4Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIikscz1pLmZpbGxUZXh0O2Z1bmN0aW9uIGwodCxlLHIscyl7dmFyIGwsYyx1LGYsaCxwLGQsbSxnLHYseSx4LGIsXyx3PXQuY2QsVD10LnhhLGs9dC55YSxBPXdbMF0udHJhY2UsTT13WzBdLnQsUz0idmlvbGluIj09PUEudHlwZSxFPVtdLEw9TS5iZFBvcyxDPU0ud0hvdmVyLFA9ZnVuY3Rpb24odCl7cmV0dXJuIHUuYzJsKHQucG9zKStNLmJQb3MtdS5jMmwocCl9O1MmJiJib3RoIiE9PUEuc2lkZT8oInBvc2l0aXZlIj09PUEuc2lkZSYmKGc9ZnVuY3Rpb24odCl7dmFyIGU9UCh0KTtyZXR1cm4gYS5pbmJveChlLGUrQyx2KX0seD1MLGI9MCksIm5lZ2F0aXZlIj09PUEuc2lkZSYmKGc9ZnVuY3Rpb24odCl7dmFyIGU9UCh0KTtyZXR1cm4gYS5pbmJveChlLUMsZSx2KX0seD0wLGI9TCkpOihnPWZ1bmN0aW9uKHQpe3ZhciBlPVAodCk7cmV0dXJuIGEuaW5ib3goZS1DLGUrQyx2KX0seD1iPUwpLF89Uz9mdW5jdGlvbih0KXtyZXR1cm4gYS5pbmJveCh0LnNwYW5bMF0taCx0LnNwYW5bMV0taCx2KX06ZnVuY3Rpb24odCl7cmV0dXJuIGEuaW5ib3godC5taW4taCx0Lm1heC1oLHYpfSwiaCI9PT1BLm9yaWVudGF0aW9uPyhoPWUscD1yLGQ9XyxtPWcsbD0ieSIsdT1rLGM9IngiLGY9VCk6KGg9cixwPWUsZD1nLG09XyxsPSJ4Iix1PVQsYz0ieSIsZj1rKTt2YXIgST1NYXRoLm1pbigxLEwvTWF0aC5hYnModS5yMmModS5yYW5nZVsxXSktdS5yMmModS5yYW5nZVswXSkpKTtmdW5jdGlvbiBPKHQpe3JldHVybihkKHQpK20odCkpLzJ9dj10Lm1heEhvdmVyRGlzdGFuY2UtSSx5PXQubWF4U3Bpa2VEaXN0YW5jZS1JO3ZhciB6PWEuZ2V0RGlzdGFuY2VGdW5jdGlvbihzLGQsbSxPKTtpZihhLmdldENsb3Nlc3Qodyx6LHQpLCExPT09dC5pbmRleClyZXR1cm5bXTt2YXIgRD13W3QuaW5kZXhdLFI9QS5saW5lLmNvbG9yLEY9KEEubWFya2VyfHx7fSkuY29sb3I7by5vcGFjaXR5KFIpJiZBLmxpbmUud2lkdGg/dC5jb2xvcj1SOm8ub3BhY2l0eShGKSYmQS5ib3hwb2ludHM/dC5jb2xvcj1GOnQuY29sb3I9QS5maWxsY29sb3IsdFtsKyIwIl09dS5jMnAoRC5wb3MrTS5iUG9zLWIsITApLHRbbCsiMSJdPXUuYzJwKEQucG9zK00uYlBvcyt4LCEwKSx0W2wrIkxhYmVsVmFsIl09dm9pZCAwIT09RC5vcmlnX3A/RC5vcmlnX3A6RC5wb3M7dmFyIEI9bCsiU3Bpa2UiO3Quc3Bpa2VEaXN0YW5jZT1PKEQpKnkvdix0W0JdPXUuYzJwKEQucG9zLCEwKTt2YXIgTj17fSxqPVsibWVkIiwicTEiLCJxMyIsIm1pbiIsIm1heCJdOyhBLmJveG1lYW58fChBLm1lYW5saW5lfHx7fSkudmlzaWJsZSkmJmoucHVzaCgibWVhbiIpLChBLmJveHBvaW50c3x8QS5wb2ludHMpJiZqLnB1c2goImxmIiwidWYiKTtmb3IodmFyIFU9MDtVPGoubGVuZ3RoO1UrKyl7dmFyIFY9altVXTtpZihWIGluIEQmJiEoRFtWXWluIE4pKXtOW0RbVl1dPSEwO3ZhciBIPURbVl0scT1mLmMycChILCEwKSxHPWkuZXh0ZW5kRmxhdCh7fSx0KTtHLmF0dHI9VixHW2MrIjAiXT1HW2MrIjEiXT1xLEdbYysiTGFiZWxWYWwiXT1ILEdbYysiTGFiZWwiXT0oTS5sYWJlbHM/TS5sYWJlbHNbVl0rIiAiOiIiKStuLmhvdmVyTGFiZWxUZXh0KGYsSCxBW2MrImhvdmVyZm9ybWF0Il0pLEcuaG92ZXJPbkJveD0hMCwibWVhbiI9PT1WJiYic2QiaW4gRCYmInNkIj09PUEuYm94bWVhbiYmKEdbYysiZXJyIl09RC5zZCksdC5uYW1lPSIiLHQuc3Bpa2VEaXN0YW5jZT12b2lkIDAsdFtCXT12b2lkIDAsRy5ob3ZlcnRlbXBsYXRlPSExLEUucHVzaChHKX19cmV0dXJuIEV9ZnVuY3Rpb24gYyh0LGUscil7Zm9yKHZhciBuLG8sbCxjPXQuY2QsdT10LnhhLGY9dC55YSxoPWNbMF0udHJhY2UscD11LmMycChlKSxkPWYuYzJwKHIpLG09YS5xdWFkcmF0dXJlKChmdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCgzLHQubXJjfHwwKTtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnModS5jMnAodC54KS1wKS1lLDEtMy9lKX0pLChmdW5jdGlvbih0KXt2YXIgZT1NYXRoLm1heCgzLHQubXJjfHwwKTtyZXR1cm4gTWF0aC5tYXgoTWF0aC5hYnMoZi5jMnAodC55KS1kKS1lLDEtMy9lKX0pKSxnPSExLHY9MDt2PGMubGVuZ3RoO3YrKyl7bz1jW3ZdO2Zvcih2YXIgeT0wO3k8KG8ucHRzfHxbXSkubGVuZ3RoO3krKyl7dmFyIHg9bShsPW8ucHRzW3ldKTt4PD10LmRpc3RhbmNlJiYodC5kaXN0YW5jZT14LGc9W3YseV0pfX1pZighZylyZXR1cm4hMTtsPShvPWNbZ1swXV0pLnB0c1tnWzFdXTt2YXIgYj11LmMycChsLngsITApLF89Zi5jMnAobC55LCEwKSx3PWwubXJjfHwxO249aS5leHRlbmRGbGF0KHt9LHQse2luZGV4OmwuaSxjb2xvcjooaC5tYXJrZXJ8fHt9KS5jb2xvcixuYW1lOmgubmFtZSx4MDpiLXcseDE6Yit3LHkwOl8tdyx5MTpfK3csc3Bpa2VEaXN0YW5jZTp0LmRpc3RhbmNlLGhvdmVydGVtcGxhdGU6aC5ob3ZlcnRlbXBsYXRlfSk7dmFyIFQsaz1vLm9yaWdfcCxBPXZvaWQgMCE9PWs/azpvLnBvcztyZXR1cm4iaCI9PT1oLm9yaWVudGF0aW9uPyhUPWYsbi54TGFiZWxWYWw9bC54LG4ueUxhYmVsVmFsPUEpOihUPXUsbi54TGFiZWxWYWw9QSxuLnlMYWJlbFZhbD1sLnkpLG5bVC5faWQuY2hhckF0KDApKyJTcGlrZSJdPVQuYzJwKG8ucG9zLCEwKSxzKGwsaCxuKSxufWUuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYT10LmNkWzBdLnRyYWNlLmhvdmVyb24sbz1bXTtyZXR1cm4tMSE9PWEuaW5kZXhPZigiYm94ZXMiKSYmKG89by5jb25jYXQobCh0LGUscixuKSkpLC0xIT09YS5pbmRleE9mKCJwb2ludHMiKSYmKGk9Yyh0LGUscikpLCJjbG9zZXN0Ij09PW4/aT9baV06bzppPyhvLnB1c2goaSksbyk6b30saG92ZXJPbkJveGVzOmwsaG92ZXJPblBvaW50czpjfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZngiOjY3OSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4Mjd9XSw5NDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5zdXBwbHlEZWZhdWx0cyxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLmNyb3NzVHJhY2VEZWZhdWx0cyxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLnN1cHBseUxheW91dERlZmF1bHRzLGNhbGM6dCgiLi9jYWxjIiksY3Jvc3NUcmFjZUNhbGM6dCgiLi9jcm9zc190cmFjZV9jYWxjIikuY3Jvc3NUcmFjZUNhbGMscGxvdDp0KCIuL3Bsb3QiKS5wbG90LHN0eWxlOnQoIi4vc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4vc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKS5ob3ZlclBvaW50cyxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImJveCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsInN5bWJvbHMiLCJvcmllbnRlZCIsImJveC12aW9saW4iLCJzaG93TGVnZW5kIiwiYm94TGF5b3V0Iiwiem9vbVNjYWxlIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo4NDEsIi4vYXR0cmlidXRlcyI6OTM5LCIuL2NhbGMiOjk0MCwiLi9jcm9zc190cmFjZV9jYWxjIjo5NDEsIi4vZGVmYXVsdHMiOjk0MiwiLi9ldmVudF9kYXRhIjo5NDMsIi4vaG92ZXIiOjk0NCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6OTQ2LCIuL2xheW91dF9kZWZhdWx0cyI6OTQ3LCIuL3Bsb3QiOjk0OCwiLi9zZWxlY3QiOjk0OSwiLi9zdHlsZSI6OTUwfV0sOTQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Ym94bW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZ3JvdXAiLCJvdmVybGF5Il0sZGZsdDoib3ZlcmxheSIsZWRpdFR5cGU6ImNhbGMifSxib3hnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMyxlZGl0VHlwZToiY2FsYyJ9LGJveGdyb3VwZ2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6LjMsZWRpdFR5cGU6ImNhbGMifX19LHt9XSw5NDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2Z1bmN0aW9uIG8odCxlLHIsaSxhKXtmb3IodmFyIG89YSsiTGF5b3V0IixzPSExLGw9MDtsPHIubGVuZ3RoO2wrKyl7dmFyIGM9cltsXTtpZihuLnRyYWNlSXMoYyxvKSl7cz0hMDticmVha319cyYmKGkoYSsibW9kZSIpLGkoYSsiZ2FwIiksaShhKyJncm91cGdhcCIpKX1lLmV4cG9ydHM9e3N1cHBseUxheW91dERlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyKXtvKDAsMCxyLChmdW5jdGlvbihyLG4pe3JldHVybiBpLmNvZXJjZSh0LGUsYSxyLG4pfSksImJveCIpfSxfc3VwcGx5Om99fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2xheW91dF9hdHRyaWJ1dGVzIjo5NDZ9XSw5NDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKTtmdW5jdGlvbiBvKHQsZSxyLGEpe3ZhciBvLHMsbD0iaCI9PT1yLm9yaWVudGF0aW9uLGM9ZS52YWwsdT1lLnBvcyxmPSEhdS5yYW5nZWJyZWFrcyxoPWEuYlBvcyxwPWEud2RQb3N8fDAsZD1hLmJQb3NQeE9mZnNldHx8MCxtPXIud2hpc2tlcndpZHRofHwwLGc9ci5ub3RjaGVkfHwhMSx2PWc/MS0yKnIubm90Y2h3aWR0aDoxO0FycmF5LmlzQXJyYXkoYS5iZFBvcyk/KG89YS5iZFBvc1swXSxzPWEuYmRQb3NbMV0pOihvPWEuYmRQb3Mscz1hLmJkUG9zKTt2YXIgeT10LnNlbGVjdEFsbCgicGF0aC5ib3giKS5kYXRhKCJ2aW9saW4iIT09ci50eXBlfHxyLmJveC52aXNpYmxlP2kuaWRlbnRpdHk6W10pO3kuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLmF0dHIoImNsYXNzIiwiYm94IikseS5leGl0KCkucmVtb3ZlKCkseS5lYWNoKChmdW5jdGlvbih0KXtpZih0LmVtcHR5KXJldHVybiJNMCwwWiI7dmFyIGU9dS5jMmwodC5wb3MraCwhMCksYT11LmwycChlLW8pK2QseT11LmwycChlK3MpK2QseD1mPyhhK3kpLzI6dS5sMnAoZSkrZCxiPXIud2hpc2tlcndpZHRoLF89Zj9hKmIrKDEtYikqeDp1LmwycChlLXApK2Qsdz1mP3kqYisoMS1iKSp4OnUubDJwKGUrcCkrZCxUPXUubDJwKGUtbyp2KStkLGs9dS5sMnAoZStzKnYpK2QsQT1jLmMycCh0LnExLCEwKSxNPWMuYzJwKHQucTMsITApLFM9aS5jb25zdHJhaW4oYy5jMnAodC5tZWQsITApLE1hdGgubWluKEEsTSkrMSxNYXRoLm1heChBLE0pLTEpLEU9dm9pZCAwPT09dC5sZnx8ITE9PT1yLmJveHBvaW50cyxMPWMuYzJwKEU/dC5taW46dC5sZiwhMCksQz1jLmMycChFP3QubWF4OnQudWYsITApLFA9Yy5jMnAodC5sbiwhMCksST1jLmMycCh0LnVuLCEwKTtsP24uc2VsZWN0KHRoaXMpLmF0dHIoImQiLCJNIitTKyIsIitUKyJWIitrKyJNIitBKyIsIithKyJWIit5KyhnPyJIIitQKyJMIitTKyIsIitrKyJMIitJKyIsIit5OiIiKSsiSCIrTSsiViIrYSsoZz8iSCIrSSsiTCIrUysiLCIrVCsiTCIrUCsiLCIrYToiIikrIlpNIitBKyIsIit4KyJIIitMKyJNIitNKyIsIit4KyJIIitDKygwPT09bT8iIjoiTSIrTCsiLCIrXysiViIrdysiTSIrQysiLCIrXysiViIrdykpOm4uc2VsZWN0KHRoaXMpLmF0dHIoImQiLCJNIitUKyIsIitTKyJIIitrKyJNIithKyIsIitBKyJIIit5KyhnPyJWIitQKyJMIitrKyIsIitTKyJMIit5KyIsIitJOiIiKSsiViIrTSsiSCIrYSsoZz8iViIrSSsiTCIrVCsiLCIrUysiTCIrYSsiLCIrUDoiIikrIlpNIit4KyIsIitBKyJWIitMKyJNIit4KyIsIitNKyJWIitDKygwPT09bT8iIjoiTSIrXysiLCIrTCsiSCIrdysiTSIrXysiLCIrQysiSCIrdykpfSkpfWZ1bmN0aW9uIHModCxlLHIsbil7dmFyIG89ZS54LHM9ZS55LGw9bi5iZFBvcyxjPW4uYlBvcyx1PXIuYm94cG9pbnRzfHxyLnBvaW50cztpLnNlZWRQc2V1ZG9SYW5kb20oKTt2YXIgZj10LnNlbGVjdEFsbCgiZy5wb2ludHMiKS5kYXRhKHU/ZnVuY3Rpb24odCl7cmV0dXJuIHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC50PW4sdC50cmFjZT1yfSkpLHR9OltdKTtmLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJwb2ludHMiKSxmLmV4aXQoKS5yZW1vdmUoKTt2YXIgaD1mLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEoKGZ1bmN0aW9uKHQpe3ZhciBlLG4sYT10LnB0czIsbz1NYXRoLm1heCgodC5tYXgtdC5taW4pLzEwLHQucTMtdC5xMSkscz0xZS05Km8sZj0uMDEqbyxoPVtdLHA9MDtpZihyLmppdHRlcil7aWYoMD09PW8pZm9yKHA9MSxoPW5ldyBBcnJheShhLmxlbmd0aCksZT0wO2U8YS5sZW5ndGg7ZSsrKWhbZV09MTtlbHNlIGZvcihlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciBkPU1hdGgubWF4KDAsZS01KSxtPWFbZF0udixnPU1hdGgubWluKGEubGVuZ3RoLTEsZSs1KSx2PWFbZ10udjsiYWxsIiE9PXUmJihhW2VdLnY8dC5sZj92PU1hdGgubWluKHYsdC5sZik6bT1NYXRoLm1heChtLHQudWYpKTt2YXIgeT1NYXRoLnNxcnQoZiooZy1kKS8odi1tK3MpKXx8MDt5PWkuY29uc3RyYWluKE1hdGguYWJzKHkpLDAsMSksaC5wdXNoKHkpLHA9TWF0aC5tYXgoeSxwKX1uPTIqci5qaXR0ZXIvKHB8fDEpfWZvcihlPTA7ZTxhLmxlbmd0aDtlKyspe3ZhciB4PWFbZV0sYj14LnYsXz1yLmppdHRlcj9uKmhbZV0qKGkucHNldWRvUmFuZG9tKCktLjUpOjAsdz10LnBvcytjK2wqKHIucG9pbnRwb3MrXyk7ImgiPT09ci5vcmllbnRhdGlvbj8oeC55PXcseC54PWIpOih4Lng9dyx4Lnk9YiksInN1c3BlY3RlZG91dGxpZXJzIj09PXUmJmI8dC51byYmYj50LmxvJiYoeC5zbz0hMCl9cmV0dXJuIGF9KSk7aC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoInBvaW50IiwhMCksaC5leGl0KCkucmVtb3ZlKCksaC5jYWxsKGEudHJhbnNsYXRlUG9pbnRzLG8scyl9ZnVuY3Rpb24gbCh0LGUscixhKXt2YXIgbyxzLGw9ZS52YWwsYz1lLnBvcyx1PSEhYy5yYW5nZWJyZWFrcyxmPWEuYlBvcyxoPWEuYlBvc1B4T2Zmc2V0fHwwLHA9ci5ib3htZWFufHwoci5tZWFubGluZXx8e30pLnZpc2libGU7QXJyYXkuaXNBcnJheShhLmJkUG9zKT8obz1hLmJkUG9zWzBdLHM9YS5iZFBvc1sxXSk6KG89YS5iZFBvcyxzPWEuYmRQb3MpO3ZhciBkPXQuc2VsZWN0QWxsKCJwYXRoLm1lYW4iKS5kYXRhKCJib3giPT09ci50eXBlJiZyLmJveG1lYW58fCJ2aW9saW4iPT09ci50eXBlJiZyLmJveC52aXNpYmxlJiZyLm1lYW5saW5lLnZpc2libGU/aS5pZGVudGl0eTpbXSk7ZC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwibWVhbiIpLnN0eWxlKHtmaWxsOiJub25lIiwidmVjdG9yLWVmZmVjdCI6Im5vbi1zY2FsaW5nLXN0cm9rZSJ9KSxkLmV4aXQoKS5yZW1vdmUoKSxkLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPWMuYzJsKHQucG9zK2YsITApLGk9Yy5sMnAoZS1vKStoLGE9Yy5sMnAoZStzKStoLGQ9dT8oaSthKS8yOmMubDJwKGUpK2gsbT1sLmMycCh0Lm1lYW4sITApLGc9bC5jMnAodC5tZWFuLXQuc2QsITApLHY9bC5jMnAodC5tZWFuK3Quc2QsITApOyJoIj09PXIub3JpZW50YXRpb24/bi5zZWxlY3QodGhpcykuYXR0cigiZCIsIk0iK20rIiwiK2krIlYiK2ErKCJzZCI9PT1wPyJtMCwwTCIrZysiLCIrZCsiTCIrbSsiLCIraSsiTCIrdisiLCIrZCsiWiI6IiIpKTpuLnNlbGVjdCh0aGlzKS5hdHRyKCJkIiwiTSIraSsiLCIrbSsiSCIrYSsoInNkIj09PXA/Im0wLDBMIitkKyIsIitnKyJMIitpKyIsIittKyJMIitkKyIsIit2KyJaIjoiIikpfSkpfWUuZXhwb3J0cz17cGxvdDpmdW5jdGlvbih0LGUscixhKXt2YXIgYz1lLnhheGlzLHU9ZS55YXhpcztpLm1ha2VUcmFjZUdyb3VwcyhhLHIsInRyYWNlIGJveGVzIikuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGUscixpPW4uc2VsZWN0KHRoaXMpLGE9dFswXSxmPWEudCxoPWEudHJhY2U7KGYud2RQb3M9Zi5iZFBvcypoLndoaXNrZXJ3aWR0aCwhMCE9PWgudmlzaWJsZXx8Zi5lbXB0eSk/aS5yZW1vdmUoKTooImgiPT09aC5vcmllbnRhdGlvbj8oZT11LHI9Yyk6KGU9YyxyPXUpLG8oaSx7cG9zOmUsdmFsOnJ9LGgsZikscyhpLHt4OmMseTp1fSxoLGYpLGwoaSx7cG9zOmUsdmFsOnJ9LGgsZikpfSkpfSxwbG90Qm94QW5kV2hpc2tlcnM6byxwbG90UG9pbnRzOnMscGxvdEJveE1lYW46bH19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2xpYiI6Nzc2LCJAcGxvdGx5L2QzIjo1OH1dLDk0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuLGk9dC5jZCxhPXQueGF4aXMsbz10LnlheGlzLHM9W107aWYoITE9PT1lKWZvcihyPTA7cjxpLmxlbmd0aDtyKyspZm9yKG49MDtuPChpW3JdLnB0c3x8W10pLmxlbmd0aDtuKyspaVtyXS5wdHNbbl0uc2VsZWN0ZWQ9MDtlbHNlIGZvcihyPTA7cjxpLmxlbmd0aDtyKyspZm9yKG49MDtuPChpW3JdLnB0c3x8W10pLmxlbmd0aDtuKyspe3ZhciBsPWlbcl0ucHRzW25dLGM9YS5jMnAobC54KSx1PW8uYzJwKGwueSk7ZS5jb250YWlucyhbYyx1XSxudWxsLGwuaSx0KT8ocy5wdXNoKHtwb2ludE51bWJlcjpsLmkseDphLmMyZChsLngpLHk6by5jMmQobC55KX0pLGwuc2VsZWN0ZWQ9MSk6bC5zZWxlY3RlZD0wfXJldHVybiBzfX0se31dLDk1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKTtlLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgbz1yfHxuLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcudHJhY2UuYm94ZXMiKTtvLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pKSxvLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLG89ZVswXS50cmFjZSxzPW8ubGluZS53aWR0aDtmdW5jdGlvbiBsKHQsZSxyLG4pe3Quc3R5bGUoInN0cm9rZS13aWR0aCIsZSsicHgiKS5jYWxsKGkuc3Ryb2tlLHIpLmNhbGwoaS5maWxsLG4pfXZhciBjPXIuc2VsZWN0QWxsKCJwYXRoLmJveCIpO2lmKCJjYW5kbGVzdGljayI9PT1vLnR5cGUpYy5lYWNoKChmdW5jdGlvbih0KXtpZighdC5lbXB0eSl7dmFyIGU9bi5zZWxlY3QodGhpcykscj1vW3QuZGlyXTtsKGUsci5saW5lLndpZHRoLHIubGluZS5jb2xvcixyLmZpbGxjb2xvciksZS5zdHlsZSgib3BhY2l0eSIsby5zZWxlY3RlZHBvaW50cyYmIXQuc2VsZWN0ZWQ/LjM6MSl9fSkpO2Vsc2V7bChjLHMsby5saW5lLmNvbG9yLG8uZmlsbGNvbG9yKSxyLnNlbGVjdEFsbCgicGF0aC5tZWFuIikuc3R5bGUoeyJzdHJva2Utd2lkdGgiOnMsInN0cm9rZS1kYXNoYXJyYXkiOjIqcysicHgsIitzKyJweCJ9KS5jYWxsKGkuc3Ryb2tlLG8ubGluZS5jb2xvcik7dmFyIHU9ci5zZWxlY3RBbGwoInBhdGgucG9pbnQiKTthLnBvaW50U3R5bGUodSxvLHQpfX0pKX0sc3R5bGVPblNlbGVjdDpmdW5jdGlvbih0LGUscil7dmFyIG49ZVswXS50cmFjZSxpPXIuc2VsZWN0QWxsKCJwYXRoLnBvaW50Iik7bi5zZWxlY3RlZHBvaW50cz9hLnNlbGVjdGVkUG9pbnRTdHlsZShpLG4pOmEucG9pbnRTdHlsZShpLG4sdCl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCJAcGxvdGx5L2QzIjo1OH1dLDk1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5leHRlbmRGbGF0LGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsYT10KCIuLi9vaGxjL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL2JveC9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gcyh0KXtyZXR1cm57bGluZTp7Y29sb3I6bih7fSxvLmxpbmUuY29sb3Ise2RmbHQ6dH0pLHdpZHRoOm8ubGluZS53aWR0aCxlZGl0VHlwZToic3R5bGUifSxmaWxsY29sb3I6by5maWxsY29sb3IsZWRpdFR5cGU6InN0eWxlIn19ZS5leHBvcnRzPXt4cGVyaW9kOmEueHBlcmlvZCx4cGVyaW9kMDphLnhwZXJpb2QwLHhwZXJpb2RhbGlnbm1lbnQ6YS54cGVyaW9kYWxpZ25tZW50LHhob3ZlcmZvcm1hdDppKCJ4IikseWhvdmVyZm9ybWF0OmkoInkiKSx4OmEueCxvcGVuOmEub3BlbixoaWdoOmEuaGlnaCxsb3c6YS5sb3csY2xvc2U6YS5jbG9zZSxsaW5lOnt3aWR0aDpuKHt9LG8ubGluZS53aWR0aCx7fSksZWRpdFR5cGU6InN0eWxlIn0saW5jcmVhc2luZzpzKGEuaW5jcmVhc2luZy5saW5lLmNvbG9yLmRmbHQpLGRlY3JlYXNpbmc6cyhhLmRlY3JlYXNpbmcubGluZS5jb2xvci5kZmx0KSx0ZXh0OmEudGV4dCxob3ZlcnRleHQ6YS5ob3ZlcnRleHQsd2hpc2tlcndpZHRoOm4oe30sby53aGlza2Vyd2lkdGgse2RmbHQ6MH0pLGhvdmVybGFiZWw6YS5ob3ZlcmxhYmVsfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vYm94L2F0dHJpYnV0ZXMiOjkzOSwiLi4vb2hsYy9hdHRyaWJ1dGVzIjoxMTM3fV0sOTUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKSxvPXQoIi4uL29obGMvY2FsYyIpLmNhbGNDb21tb247ZnVuY3Rpb24gcyh0LGUscixuKXtyZXR1cm57bWluOnIscTE6TWF0aC5taW4odCxuKSxtZWQ6bixxMzpNYXRoLm1heCh0LG4pLG1heDplfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGw9aS5nZXRGcm9tSWQodCxlLnhheGlzKSxjPWkuZ2V0RnJvbUlkKHQsZS55YXhpcyksdT1sLm1ha2VDYWxjZGF0YShlLCJ4IiksZj1hKGUsbCwieCIsdSkudmFscyxoPW8odCxlLHUsZixjLHMpO3JldHVybiBoLmxlbmd0aD8obi5leHRlbmRGbGF0KGhbMF0udCx7bnVtOnIuX251bUJveGVzLGRQb3M6bi5kaXN0aW5jdFZhbHMoZikubWluRGlmZi8yLHBvc0xldHRlcjoieCIsdmFsTGV0dGVyOiJ5In0pLHIuX251bUJveGVzKyssaCk6W3t0OntlbXB0eTohMH19XX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiOjgyNCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vb2hsYy9jYWxjIjoxMTM4fV0sOTUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vb2hsYy9vaGxjX2RlZmF1bHRzIiksbz10KCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gbCh0LGUscixuKXt2YXIgYT1yKG4rIi5saW5lLmNvbG9yIik7cihuKyIubGluZS53aWR0aCIsZS5saW5lLndpZHRoKSxyKG4rIi5maWxsY29sb3IiLGkuYWRkT3BhY2l0eShhLC41KSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe2Z1bmN0aW9uIGMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixpKX1hKHQsZSxjLGkpPyhvKHQsZSxpLGMse3g6ITB9KSxjKCJ4aG92ZXJmb3JtYXQiKSxjKCJ5aG92ZXJmb3JtYXQiKSxjKCJsaW5lLndpZHRoIiksbCh0LGUsYywiaW5jcmVhc2luZyIpLGwodCxlLGMsImRlY3JlYXNpbmciKSxjKCJ0ZXh0IiksYygiaG92ZXJ0ZXh0IiksYygid2hpc2tlcndpZHRoIiksaS5fcmVxdWVzdFJhbmdlc2xpZGVyW2UueGF4aXNdPSEwKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vbGliIjo3NzYsIi4uL29obGMvb2hsY19kZWZhdWx0cyI6MTE0MiwiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjEyMTEsIi4vYXR0cmlidXRlcyI6OTUxfV0sOTU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImNhbmRsZXN0aWNrIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwic2hvd0xlZ2VuZCIsImNhbmRsZXN0aWNrIiwiYm94TGF5b3V0Il0sbWV0YTp7fSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi4vYm94L2xheW91dF9hdHRyaWJ1dGVzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi4vYm94L2xheW91dF9kZWZhdWx0cyIpLnN1cHBseUxheW91dERlZmF1bHRzLGNyb3NzVHJhY2VDYWxjOnQoIi4uL2JveC9jcm9zc190cmFjZV9jYWxjIikuY3Jvc3NUcmFjZUNhbGMsc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuLi9ib3gvcGxvdCIpLnBsb3QsbGF5ZXJOYW1lOiJib3hsYXllciIsc3R5bGU6dCgiLi4vYm94L3N0eWxlIikuc3R5bGUsaG92ZXJQb2ludHM6dCgiLi4vb2hsYy9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuLi9vaGxjL3NlbGVjdCIpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi4vYm94L2Nyb3NzX3RyYWNlX2NhbGMiOjk0MSwiLi4vYm94L2xheW91dF9hdHRyaWJ1dGVzIjo5NDYsIi4uL2JveC9sYXlvdXRfZGVmYXVsdHMiOjk0NywiLi4vYm94L3Bsb3QiOjk0OCwiLi4vYm94L3N0eWxlIjo5NTAsIi4uL29obGMvaG92ZXIiOjExNDAsIi4uL29obGMvc2VsZWN0IjoxMTQ0LCIuL2F0dHJpYnV0ZXMiOjk1MSwiLi9jYWxjIjo5NTIsIi4vZGVmYXVsdHMiOjk1M31dLDk1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2F4aXNfZGVmYXVsdHMiKSxpPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxvKXthKCJhIil8fChhKCJkYSIpLGEoImEwIikpLGEoImIiKXx8KGEoImRiIiksYSgiYjAiKSksZnVuY3Rpb24odCxlLHIsYSl7WyJhYXhpcyIsImJheGlzIl0uZm9yRWFjaCgoZnVuY3Rpb24obyl7dmFyIHM9by5jaGFyQXQoMCksbD10W29dfHx7fSxjPWkubmV3Q29udGFpbmVyKGUsbyksdT17dGlja2ZvbnQ6IngiLGlkOnMrImF4aXMiLGxldHRlcjpzLGZvbnQ6ZS5mb250LG5hbWU6byxkYXRhOnRbc10sY2FsZW5kYXI6ZS5jYWxlbmRhcixkZmx0Q29sb3I6YSxiZ0NvbG9yOnIucGFwZXJfYmdjb2xvcixhdXRvdHlwZW51bWJlcnNEZmx0OnIuYXV0b3R5cGVudW1iZXJzLGZ1bGxMYXlvdXQ6cn07bihsLGMsdSksYy5fY2F0ZWdvcmllcz1jLl9jYXRlZ29yaWVzfHxbXSx0W29dfHwiLSI9PT1sLnR5cGV8fCh0W29dPXt0eXBlOmwudHlwZX0pfSkpfSh0LGUscixvKX19LHsiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuL2F4aXNfZGVmYXVsdHMiOjk2MH1dLDk1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5O2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gZnVuY3Rpb24gdChlLHIpe2lmKCFuKGUpfHxyPj0xMClyZXR1cm4gbnVsbDtmb3IodmFyIGk9MS8wLGE9LTEvMCxvPWUubGVuZ3RoLHM9MDtzPG87cysrKXt2YXIgbD1lW3NdO2lmKG4obCkpe3ZhciBjPXQobCxyKzEpO2MmJihpPU1hdGgubWluKGNbMF0saSksYT1NYXRoLm1heChjWzFdLGEpKX1lbHNlIGk9TWF0aC5taW4obCxpKSxhPU1hdGgubWF4KGwsYSl9cmV0dXJuW2ksYV19KHQsMCl9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sOTU3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi9heGlzX2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IvYXR0cmlidXRlcyIpLG89bih7ZWRpdFR5cGU6ImNhbGMifSk7by5mYW1pbHkuZGZsdD0nIk9wZW4gU2FucyIsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmJyxvLnNpemUuZGZsdD0xMixvLmNvbG9yLmRmbHQ9YS5kZWZhdWx0TGluZSxlLmV4cG9ydHM9e2NhcnBldDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHg6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxhOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGEwOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LGRhOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGI6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sYjA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZGI6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sY2hlYXRlcnNsb3BlOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGFheGlzOmksYmF4aXM6aSxmb250Om8sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmEuZGVmYXVsdExpbmUsZWRpdFR5cGU6InBsb3QifSx0cmFuc2Zvcm1zOnZvaWQgMH19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuL2F4aXNfYXR0cmlidXRlcyI6OTU5fV0sOTU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHk9bihyKT8iYSI6ImIiLHg9KCJhIj09PXk/dC5hYXhpczp0LmJheGlzKS5zbW9vdGhpbmcsYj0iYSI9PT15P3QuYTJpOnQuYjJqLF89ImEiPT09eT9yOmksdz0iYSI9PT15P2k6cixUPSJhIj09PXk/ZS5hLmxlbmd0aDplLmIubGVuZ3RoLGs9ImEiPT09eT9lLmIubGVuZ3RoOmUuYS5sZW5ndGgsQT1NYXRoLmZsb29yKCJhIj09PXk/dC5iMmoodyk6dC5hMmkodykpLE09ImEiPT09eT9mdW5jdGlvbihlKXtyZXR1cm4gdC5ldmFseHkoW10sZSxBKX06ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZXZhbHh5KFtdLEEsZSl9O3gmJihzPU1hdGgubWF4KDAsTWF0aC5taW4oay0yLEEpKSxsPUEtcyxvPSJhIj09PXk/ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5keHlkaShbXSxlLHMscixsKX06ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5keHlkaihbXSxzLGUsbCxyKX0pO3ZhciBTPWIoX1swXSksRT1iKF9bMV0pLEw9UzxFPzE6LTEsQz0xZS04KihFLVMpLFA9TD4wP01hdGguZmxvb3I6TWF0aC5jZWlsLEk9TD4wP01hdGguY2VpbDpNYXRoLmZsb29yLE89TD4wP01hdGgubWluOk1hdGgubWF4LHo9TD4wP01hdGgubWF4Ok1hdGgubWluLEQ9UChTK0MpLFI9SShFLUMpLEY9W1tmPU0oUyldXTtmb3IoYT1EO2EqTDxSKkw7YSs9TCljPVtdLG09eihTLGEpLHY9KGc9TyhFLGErTCkpLW0sdT1NYXRoLm1heCgwLE1hdGgubWluKFQtMixNYXRoLmZsb29yKC41KihtK2cpKSkpLGg9TShnKSx4JiYocD1vKHUsbS11KSxkPW8odSxnLXUpLGMucHVzaChbZlswXStwWzBdLzMqdixmWzFdK3BbMV0vMyp2XSksYy5wdXNoKFtoWzBdLWRbMF0vMyp2LGhbMV0tZFsxXS8zKnZdKSksYy5wdXNoKGgpLEYucHVzaChjKSxmPWg7cmV0dXJuIEZ9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sOTU5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuZGVzY3JpcHRpb25XaXRoRGF0ZXMscz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGw7ZS5leHBvcnRzPXtjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJjYWxjIn0sc21vb3RoaW5nOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxtaW46MCxtYXg6MS4zLGVkaXRUeXBlOiJjYWxjIn0sdGl0bGU6e3RleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToiY2FsYyJ9LGZvbnQ6bih7ZWRpdFR5cGU6ImNhbGMifSksb2Zmc2V0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MTAsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LHR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIi0iLCJsaW5lYXIiLCJkYXRlIiwiY2F0ZWdvcnkiXSxkZmx0OiItIixlZGl0VHlwZToiY2FsYyJ9LGF1dG90eXBlbnVtYmVyczphLmF1dG90eXBlbnVtYmVycyxhdXRvcmFuZ2U6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbITAsITEsInJldmVyc2VkIl0sZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LHJhbmdlbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibm9ybWFsIiwidG96ZXJvIiwibm9ubmVnYXRpdmUiXSxkZmx0OiJub3JtYWwiLGVkaXRUeXBlOiJjYWxjIn0scmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGVkaXRUeXBlOiJjYWxjIixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9XX0sZml4ZWRyYW5nZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGNoZWF0ZXJ0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJpbmRleCIsInZhbHVlIl0sZGZsdDoidmFsdWUiLGVkaXRUeXBlOiJjYWxjIn0sdGlja21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxpbmVhciIsImFycmF5Il0sZGZsdDoiYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbnRpY2tzOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSx0aWNrdmFsczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx0aWNrdGV4dDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxzaG93dGlja2xhYmVsczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic3RhcnQiLCJlbmQiLCJib3RoIiwibm9uZSJdLGRmbHQ6InN0YXJ0IixlZGl0VHlwZToiY2FsYyJ9LHRpY2tmb250Om4oe2VkaXRUeXBlOiJjYWxjIn0pLHRpY2thbmdsZTp7dmFsVHlwZToiYW5nbGUiLGRmbHQ6ImF1dG8iLGVkaXRUeXBlOiJjYWxjIn0sdGlja3ByZWZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sc2hvd3RpY2twcmVmaXg6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwiLGVkaXRUeXBlOiJjYWxjIn0sdGlja3N1ZmZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sc2hvd3RpY2tzdWZmaXg6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFsbCIsImZpcnN0IiwibGFzdCIsIm5vbmUiXSxkZmx0OiJhbGwiLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2V4cG9uZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhbGwiLCJmaXJzdCIsImxhc3QiLCJub25lIl0sZGZsdDoiYWxsIixlZGl0VHlwZToiY2FsYyJ9LGV4cG9uZW50Zm9ybWF0Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJub25lIiwiZSIsIkUiLCJwb3dlciIsIlNJIiwiQiJdLGRmbHQ6IkIiLGVkaXRUeXBlOiJjYWxjIn0sbWluZXhwb25lbnQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDozLG1pbjowLGVkaXRUeXBlOiJjYWxjIn0sc2VwYXJhdGV0aG91c2FuZHM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSx0aWNrZm9ybWF0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMiLGRlc2NyaXB0aW9uOm8oInRpY2sgbGFiZWwiKX0sdGlja2Zvcm1hdHN0b3BzOnMoYS50aWNrZm9ybWF0c3RvcHMsImNhbGMiLCJmcm9tLXJvb3QiKSxjYXRlZ29yeW9yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0cmFjZSIsImNhdGVnb3J5IGFzY2VuZGluZyIsImNhdGVnb3J5IGRlc2NlbmRpbmciLCJhcnJheSJdLGRmbHQ6InRyYWNlIixlZGl0VHlwZToiY2FsYyJ9LGNhdGVnb3J5YXJyYXk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbGFiZWxwYWRkaW5nOnt2YWxUeXBlOiJpbnRlZ2VyIixkZmx0OjEwLGVkaXRUeXBlOiJjYWxjIn0sbGFiZWxwcmVmaXg6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSxsYWJlbHN1ZmZpeDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2xpbmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxsaW5lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkuZGVmYXVsdExpbmUsZWRpdFR5cGU6ImNhbGMifSxsaW5ld2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sZ3JpZGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImNhbGMifSxncmlkd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2dyaWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxtaW5vcmdyaWRjb3VudDp7dmFsVHlwZToiaW50ZWdlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sbWlub3Jncmlkd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sbWlub3JncmlkY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OmkubGlnaHRMaW5lLGVkaXRUeXBlOiJjYWxjIn0sc3RhcnRsaW5lOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToiY2FsYyJ9LHN0YXJ0bGluZWNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImNhbGMifSxzdGFydGxpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxlbmRsaW5lOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToiY2FsYyJ9LGVuZGxpbmV3aWR0aDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6ImNhbGMifSxlbmRsaW5lY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LHRpY2swOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LGR0aWNrOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGFycmF5dGljazA6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LGFycmF5ZHRpY2s6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjoxLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LF9kZXByZWNhdGVkOnt0aXRsZTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHRpdGxlZm9udDpuKHtlZGl0VHlwZToiY2FsYyJ9KSx0aXRsZW9mZnNldDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEwLGVkaXRUeXBlOiJjYWxjIn19LGVkaXRUeXBlOiJjYWxjIn19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDIsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2fV0sOTYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLmFkZE9wYWNpdHksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja192YWx1ZV9kZWZhdWx0cyIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiKSxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jYXRlZ29yeV9vcmRlcl9kZWZhdWx0cyIpLHU9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3NldF9jb252ZXJ0IiksZj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19hdXRvdHlwZSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGg9ci5sZXR0ZXIscD1yLmZvbnR8fHt9LGQ9bltoKyJheGlzIl07ZnVuY3Rpb24gbShyLG4pe3JldHVybiBvLmNvZXJjZSh0LGUsZCxyLG4pfWZ1bmN0aW9uIGcocixuKXtyZXR1cm4gby5jb2VyY2UyKHQsZSxkLHIsbil9ci5uYW1lJiYoZS5fbmFtZT1yLm5hbWUsZS5faWQ9ci5uYW1lKSxtKCJhdXRvdHlwZW51bWJlcnMiLHIuYXV0b3R5cGVudW1iZXJzRGZsdCk7dmFyIHY9bSgidHlwZSIpOygiLSI9PT12JiYoci5kYXRhJiZmdW5jdGlvbih0LGUpe2lmKCItIiE9PXQudHlwZSlyZXR1cm47dmFyIHI9dC5faWQuY2hhckF0KDApLG49dFtyKyJjYWxlbmRhciJdO3QudHlwZT1mKGUsbix7YXV0b3R5cGVudW1iZXJzOnQuYXV0b3R5cGVudW1iZXJzfSl9KGUsci5kYXRhKSwiLSI9PT1lLnR5cGU/ZS50eXBlPSJsaW5lYXIiOnY9dC50eXBlPWUudHlwZSksbSgic21vb3RoaW5nIiksbSgiY2hlYXRlcnR5cGUiKSxtKCJzaG93dGlja2xhYmVscyIpLG0oImxhYmVscHJlZml4IixoKyIgPSAiKSxtKCJsYWJlbHN1ZmZpeCIpLG0oInNob3d0aWNrcHJlZml4IiksbSgic2hvd3RpY2tzdWZmaXgiKSxtKCJzZXBhcmF0ZXRob3VzYW5kcyIpLG0oInRpY2tmb3JtYXQiKSxtKCJleHBvbmVudGZvcm1hdCIpLG0oIm1pbmV4cG9uZW50IiksbSgic2hvd2V4cG9uZW50IiksbSgiY2F0ZWdvcnlvcmRlciIpLG0oInRpY2ttb2RlIiksbSgidGlja3ZhbHMiKSxtKCJ0aWNrdGV4dCIpLG0oInRpY2swIiksbSgiZHRpY2siKSwiYXJyYXkiPT09ZS50aWNrbW9kZSYmKG0oImFycmF5dGljazAiKSxtKCJhcnJheWR0aWNrIikpLG0oImxhYmVscGFkZGluZyIpLGUuX2hvdmVydGl0bGU9aCwiZGF0ZSI9PT12KSYmYS5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZURlZmF1bHRzIikodCxlLCJjYWxlbmRhciIsci5jYWxlbmRhcik7dShlLHIuZnVsbExheW91dCksZS5jMnA9by5pZGVudGl0eTt2YXIgeT1tKCJjb2xvciIsci5kZmx0Q29sb3IpLHg9eT09PXQuY29sb3I/eTpwLmNvbG9yO20oInRpdGxlLnRleHQiKSYmKG8uY29lcmNlRm9udChtLCJ0aXRsZS5mb250Iix7ZmFtaWx5OnAuZmFtaWx5LHNpemU6by5iaWdGb250KHAuc2l6ZSksY29sb3I6eH0pLG0oInRpdGxlLm9mZnNldCIpKSxtKCJ0aWNrYW5nbGUiKSxtKCJhdXRvcmFuZ2UiLCFlLmlzVmFsaWRSYW5nZSh0LnJhbmdlKSkmJm0oInJhbmdlbW9kZSIpLG0oInJhbmdlIiksZS5jbGVhblJhbmdlKCksbSgiZml4ZWRyYW5nZSIpLHModCxlLG0sdiksbCh0LGUsbSx2LHIpLGModCxlLG0se2RhdGE6ci5kYXRhLGRhdGFBdHRyOmh9KTt2YXIgYj1nKCJncmlkY29sb3IiLGkoeSwuMykpLF89ZygiZ3JpZHdpZHRoIiksdz1tKCJzaG93Z3JpZCIpO3d8fChkZWxldGUgZS5ncmlkY29sb3IsZGVsZXRlIGUuZ3JpZHdpZHRoKTt2YXIgVD1nKCJzdGFydGxpbmVjb2xvciIseSksaz1nKCJzdGFydGxpbmV3aWR0aCIsXyk7bSgic3RhcnRsaW5lIixlLnNob3dncmlkfHwhIVR8fCEhayl8fChkZWxldGUgZS5zdGFydGxpbmVjb2xvcixkZWxldGUgZS5zdGFydGxpbmV3aWR0aCk7dmFyIEE9ZygiZW5kbGluZWNvbG9yIix5KSxNPWcoImVuZGxpbmV3aWR0aCIsXyk7cmV0dXJuIG0oImVuZGxpbmUiLGUuc2hvd2dyaWR8fCEhQXx8ISFNKXx8KGRlbGV0ZSBlLmVuZGxpbmVjb2xvcixkZWxldGUgZS5lbmRsaW5ld2lkdGgpLHc/KG0oIm1pbm9yZ3JpZGNvdW50IiksbSgibWlub3Jncmlkd2lkdGgiLF8pLG0oIm1pbm9yZ3JpZGNvbG9yIixpKGIsLjA2KSksZS5taW5vcmdyaWRjb3VudHx8KGRlbGV0ZSBlLm1pbm9yZ3JpZHdpZHRoLGRlbGV0ZSBlLm1pbm9yZ3JpZGNvbG9yKSk6KGRlbGV0ZSBlLmdyaWRjb2xvcixkZWxldGUgZS5ncmlkV2lkdGgpLCJub25lIj09PWUuc2hvd3RpY2tsYWJlbHMmJihkZWxldGUgZS50aWNrZm9udCxkZWxldGUgZS50aWNrYW5nbGUsZGVsZXRlIGUuc2hvd2V4cG9uZW50LGRlbGV0ZSBlLmV4cG9uZW50Zm9ybWF0LGRlbGV0ZSBlLm1pbmV4cG9uZW50LGRlbGV0ZSBlLnRpY2tmb3JtYXQsZGVsZXRlIGUuc2hvd3RpY2tzdWZmaXgsZGVsZXRlIGUuc2hvd3RpY2twcmVmaXgpLGUuc2hvd3RpY2tzdWZmaXh8fGRlbGV0ZSBlLnRpY2tzdWZmaXgsZS5zaG93dGlja3ByZWZpeHx8ZGVsZXRlIGUudGlja3ByZWZpeCxtKCJ0aWNrbW9kZSIpLGV9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2F1dG90eXBlIjo4MjgsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jYXRlZ29yeV9vcmRlcl9kZWZhdWx0cyI6ODMyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vc2V0X2NvbnZlcnQiOjg0OCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfbGFiZWxfZGVmYXVsdHMiOjg0OSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3RpY2tfdmFsdWVfZGVmYXVsdHMiOjg1MSwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9hdHRyaWJ1dGVzIjo5NTd9XSw5NjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXkxRCxhPXQoIi4vY2hlYXRlcl9iYXNpcyIpLG89dCgiLi9hcnJheV9taW5tYXgiKSxzPXQoIi4vY2FsY19ncmlkbGluZXMiKSxsPXQoIi4vY2FsY19sYWJlbHMiKSxjPXQoIi4vY2FsY19jbGlwcGF0aCIpLHU9dCgiLi4vaGVhdG1hcC9jbGVhbl8yZF9hcnJheSIpLGY9dCgiLi9zbW9vdGhfZmlsbF8yZF9hcnJheSIpLGg9dCgiLi4vaGVhdG1hcC9jb252ZXJ0X2NvbHVtbl94eXoiKSxwPXQoIi4vc2V0X2NvbnZlcnQiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uLmdldEZyb21JZCh0LGUueGF4aXMpLGQ9bi5nZXRGcm9tSWQodCxlLnlheGlzKSxtPWUuYWF4aXMsZz1lLmJheGlzLHY9ZS54LHk9ZS55LHg9W107diYmaSh2KSYmeC5wdXNoKCJ4IikseSYmaSh5KSYmeC5wdXNoKCJ5IikseC5sZW5ndGgmJmgoZSxtLGcsImEiLCJiIix4KTt2YXIgYj1lLl9hPWUuX2F8fGUuYSxfPWUuX2I9ZS5fYnx8ZS5iO3Y9ZS5feHx8ZS54LHk9ZS5feXx8ZS55O3ZhciB3PXt9O2lmKGUuX2NoZWF0ZXIpe3ZhciBUPSJpbmRleCI9PT1tLmNoZWF0ZXJ0eXBlP2IubGVuZ3RoOmIsaz0iaW5kZXgiPT09Zy5jaGVhdGVydHlwZT9fLmxlbmd0aDpfO3Y9YShULGssZS5jaGVhdGVyc2xvcGUpfWUuX3g9dj11KHYpLGUuX3k9eT11KHkpLGYodixiLF8pLGYoeSxiLF8pLHAoZSksZS5zZXRTY2FsZSgpO3ZhciBBPW8odiksTT1vKHkpLFM9LjUqKEFbMV0tQVswXSksRT0uNSooQVsxXStBWzBdKSxMPS41KihNWzFdLU1bMF0pLEM9LjUqKE1bMV0rTVswXSk7cmV0dXJuIEE9W0UtMS4zKlMsRSsxLjMqU10sTT1bQy0xLjMqTCxDKzEuMypMXSxlLl9leHRyZW1lc1tyLl9pZF09bi5maW5kRXh0cmVtZXMocixBLHtwYWRkZWQ6ITB9KSxlLl9leHRyZW1lc1tkLl9pZF09bi5maW5kRXh0cmVtZXMoZCxNLHtwYWRkZWQ6ITB9KSxzKGUsImEiLCJiIikscyhlLCJiIiwiYSIpLGwoZSxtKSxsKGUsZyksdy5jbGlwc2VnbWVudHM9YyhlLl94Y3RybCxlLl95Y3RybCxtLGcpLHcueD12LHcueT15LHcuYT1iLHcuYj1fLFt3XX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL2hlYXRtYXAvY2xlYW5fMmRfYXJyYXkiOjEwNjAsIi4uL2hlYXRtYXAvY29udmVydF9jb2x1bW5feHl6IjoxMDYyLCIuL2FycmF5X21pbm1heCI6OTU2LCIuL2NhbGNfY2xpcHBhdGgiOjk2MiwiLi9jYWxjX2dyaWRsaW5lcyI6OTYzLCIuL2NhbGNfbGFiZWxzIjo5NjQsIi4vY2hlYXRlcl9iYXNpcyI6OTY2LCIuL3NldF9jb252ZXJ0Ijo5NzksIi4vc21vb3RoX2ZpbGxfMmRfYXJyYXkiOjk4MH1dLDk2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYSxvLHM9W10sbD0hIXIuc21vb3RoaW5nLGM9ISFuLnNtb290aGluZyx1PXRbMF0ubGVuZ3RoLTEsZj10Lmxlbmd0aC0xO2ZvcihpPTAsYT1bXSxvPVtdO2k8PXU7aSsrKWFbaV09dFswXVtpXSxvW2ldPWVbMF1baV07Zm9yKHMucHVzaCh7eDphLHk6byxiaWN1YmljOmx9KSxpPTAsYT1bXSxvPVtdO2k8PWY7aSsrKWFbaV09dFtpXVt1XSxvW2ldPWVbaV1bdV07Zm9yKHMucHVzaCh7eDphLHk6byxiaWN1YmljOmN9KSxpPXUsYT1bXSxvPVtdO2k+PTA7aS0tKWFbdS1pXT10W2ZdW2ldLG9bdS1pXT1lW2ZdW2ldO2ZvcihzLnB1c2goe3g6YSx5Om8sYmljdWJpYzpsfSksaT1mLGE9W10sbz1bXTtpPj0wO2ktLSlhW2YtaV09dFtpXVswXSxvW2YtaV09ZVtpXVswXTtyZXR1cm4gcy5wdXNoKHt4OmEseTpvLGJpY3ViaWM6Y30pLHN9fSx7fV0sOTYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2LHkseD10WyJfIitlXSxiPXRbZSsiYXhpcyJdLF89Yi5fZ3JpZGxpbmVzPVtdLHc9Yi5fbWlub3JncmlkbGluZXM9W10sVD1iLl9ib3VuZGFyeWxpbmVzPVtdLGs9dFsiXyIrcl0sQT10W3IrImF4aXMiXTsiYXJyYXkiPT09Yi50aWNrbW9kZSYmKGIudGlja3ZhbHM9eC5zbGljZSgpKTt2YXIgTT10Ll94Y3RybCxTPXQuX3ljdHJsLEU9TVswXS5sZW5ndGgsTD1NLmxlbmd0aCxDPXQuX2EubGVuZ3RoLFA9dC5fYi5sZW5ndGg7bi5wcmVwVGlja3MoYiksImFycmF5Ij09PWIudGlja21vZGUmJmRlbGV0ZSBiLnRpY2t2YWxzO3ZhciBJPWIuc21vb3RoaW5nPzM6MTtmdW5jdGlvbiBPKG4pe3ZhciBpLGEsbyxzLGwsYyx1LGYscCxkLG0sZyx2PVtdLHk9W10seD17fTtpZigiYiI9PT1lKWZvcihhPXQuYjJqKG4pLG89TWF0aC5mbG9vcihNYXRoLm1heCgwLE1hdGgubWluKFAtMixhKSkpLHM9YS1vLHgubGVuZ3RoPVAseC5jcm9zc0xlbmd0aD1DLHgueHk9ZnVuY3Rpb24oZSl7cmV0dXJuIHQuZXZhbHh5KFtdLGUsYSl9LHguZHh5PWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZHh5ZGkoW10sZSxvLHIscyl9LGk9MDtpPEM7aSsrKWM9TWF0aC5taW4oQy0yLGkpLHU9aS1jLGY9dC5ldmFseHkoW10saSxhKSxBLnNtb290aGluZyYmaT4wJiYocD10LmR4eWRpKFtdLGktMSxvLDAscyksdi5wdXNoKGxbMF0rcFswXS8zKSx5LnB1c2gobFsxXStwWzFdLzMpLGQ9dC5keHlkaShbXSxpLTEsbywxLHMpLHYucHVzaChmWzBdLWRbMF0vMykseS5wdXNoKGZbMV0tZFsxXS8zKSksdi5wdXNoKGZbMF0pLHkucHVzaChmWzFdKSxsPWY7ZWxzZSBmb3IoaT10LmEyaShuKSxjPU1hdGguZmxvb3IoTWF0aC5tYXgoMCxNYXRoLm1pbihDLTIsaSkpKSx1PWktYyx4Lmxlbmd0aD1DLHguY3Jvc3NMZW5ndGg9UCx4Lnh5PWZ1bmN0aW9uKGUpe3JldHVybiB0LmV2YWx4eShbXSxpLGUpfSx4LmR4eT1mdW5jdGlvbihlLHIpe3JldHVybiB0LmR4eWRqKFtdLGMsZSx1LHIpfSxhPTA7YTxQO2ErKylvPU1hdGgubWluKFAtMixhKSxzPWEtbyxmPXQuZXZhbHh5KFtdLGksYSksQS5zbW9vdGhpbmcmJmE+MCYmKG09dC5keHlkaihbXSxjLGEtMSx1LDApLHYucHVzaChsWzBdK21bMF0vMykseS5wdXNoKGxbMV0rbVsxXS8zKSxnPXQuZHh5ZGooW10sYyxhLTEsdSwxKSx2LnB1c2goZlswXS1nWzBdLzMpLHkucHVzaChmWzFdLWdbMV0vMykpLHYucHVzaChmWzBdKSx5LnB1c2goZlsxXSksbD1mO3JldHVybiB4LmF4aXNMZXR0ZXI9ZSx4LmF4aXM9Yix4LmNyb3NzQXhpcz1BLHgudmFsdWU9bix4LmNvbnN0dmFyPXIseC5pbmRleD1oLHgueD12LHgueT15LHguc21vb3RoaW5nPUEuc21vb3RoaW5nLHh9ZnVuY3Rpb24geihuKXt2YXIgaSxhLG8scyxsLGM9W10sdT1bXSxmPXt9O2lmKGYubGVuZ3RoPXgubGVuZ3RoLGYuY3Jvc3NMZW5ndGg9ay5sZW5ndGgsImIiPT09ZSlmb3Iobz1NYXRoLm1heCgwLE1hdGgubWluKFAtMixuKSksbD1NYXRoLm1pbigxLE1hdGgubWF4KDAsbi1vKSksZi54eT1mdW5jdGlvbihlKXtyZXR1cm4gdC5ldmFseHkoW10sZSxuKX0sZi5keHk9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5keHlkaShbXSxlLG8scixsKX0saT0wO2k8RTtpKyspY1tpXT1NW24qSV1baV0sdVtpXT1TW24qSV1baV07ZWxzZSBmb3IoYT1NYXRoLm1heCgwLE1hdGgubWluKEMtMixuKSkscz1NYXRoLm1pbigxLE1hdGgubWF4KDAsbi1hKSksZi54eT1mdW5jdGlvbihlKXtyZXR1cm4gdC5ldmFseHkoW10sbixlKX0sZi5keHk9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gdC5keHlkaihbXSxhLGUscyxyKX0saT0wO2k8TDtpKyspY1tpXT1NW2ldW24qSV0sdVtpXT1TW2ldW24qSV07cmV0dXJuIGYuYXhpc0xldHRlcj1lLGYuYXhpcz1iLGYuY3Jvc3NBeGlzPUEsZi52YWx1ZT14W25dLGYuY29uc3R2YXI9cixmLmluZGV4PW4sZi54PWMsZi55PXUsZi5zbW9vdGhpbmc9QS5zbW9vdGhpbmcsZn1pZigiYXJyYXkiPT09Yi50aWNrbW9kZSl7Zm9yKGw9NWUtMTUsdT0oYz1bTWF0aC5mbG9vcigoeC5sZW5ndGgtMS1iLmFycmF5dGljazApL2IuYXJyYXlkdGljayooMStsKSksTWF0aC5jZWlsKC1iLmFycmF5dGljazAvYi5hcnJheWR0aWNrLygxK2wpKV0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpKVswXS0xLGY9Y1sxXSsxLGg9dTtoPGY7aCsrKShvPWIuYXJyYXl0aWNrMCtiLmFycmF5ZHRpY2sqaCk8MHx8bz54Lmxlbmd0aC0xfHxfLnB1c2goaSh6KG8pLHtjb2xvcjpiLmdyaWRjb2xvcix3aWR0aDpiLmdyaWR3aWR0aH0pKTtmb3IoaD11O2g8ZjtoKyspaWYocz1iLmFycmF5dGljazArYi5hcnJheWR0aWNrKmgsbT1NYXRoLm1pbihzK2IuYXJyYXlkdGljayx4Lmxlbmd0aC0xKSwhKHM8MHx8cz54Lmxlbmd0aC0xfHxtPDB8fG0+eC5sZW5ndGgtMSkpZm9yKGc9eFtzXSx2PXhbbV0sYT0wO2E8Yi5taW5vcmdyaWRjb3VudDthKyspKHk9bS1zKTw9MHx8KGQ9Zysodi1nKSooYSsxKS8oYi5taW5vcmdyaWRjb3VudCsxKSooYi5hcnJheWR0aWNrL3kpKTx4WzBdfHxkPnhbeC5sZW5ndGgtMV18fHcucHVzaChpKE8oZCkse2NvbG9yOmIubWlub3JncmlkY29sb3Isd2lkdGg6Yi5taW5vcmdyaWR3aWR0aH0pKTtiLnN0YXJ0bGluZSYmVC5wdXNoKGkoeigwKSx7Y29sb3I6Yi5zdGFydGxpbmVjb2xvcix3aWR0aDpiLnN0YXJ0bGluZXdpZHRofSkpLGIuZW5kbGluZSYmVC5wdXNoKGkoeih4Lmxlbmd0aC0xKSx7Y29sb3I6Yi5lbmRsaW5lY29sb3Isd2lkdGg6Yi5lbmRsaW5ld2lkdGh9KSl9ZWxzZXtmb3IobD01ZS0xNSx1PShjPVtNYXRoLmZsb29yKCh4W3gubGVuZ3RoLTFdLWIudGljazApL2IuZHRpY2sqKDErbCkpLE1hdGguY2VpbCgoeFswXS1iLnRpY2swKS9iLmR0aWNrLygxK2wpKV0uc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpKVswXSxmPWNbMV0saD11O2g8PWY7aCsrKXA9Yi50aWNrMCtiLmR0aWNrKmgsXy5wdXNoKGkoTyhwKSx7Y29sb3I6Yi5ncmlkY29sb3Isd2lkdGg6Yi5ncmlkd2lkdGh9KSk7Zm9yKGg9dS0xO2g8ZisxO2grKylmb3IocD1iLnRpY2swK2IuZHRpY2sqaCxhPTA7YTxiLm1pbm9yZ3JpZGNvdW50O2ErKykoZD1wK2IuZHRpY2sqKGErMSkvKGIubWlub3JncmlkY291bnQrMSkpPHhbMF18fGQ+eFt4Lmxlbmd0aC0xXXx8dy5wdXNoKGkoTyhkKSx7Y29sb3I6Yi5taW5vcmdyaWRjb2xvcix3aWR0aDpiLm1pbm9yZ3JpZHdpZHRofSkpO2Iuc3RhcnRsaW5lJiZULnB1c2goaShPKHhbMF0pLHtjb2xvcjpiLnN0YXJ0bGluZWNvbG9yLHdpZHRoOmIuc3RhcnRsaW5ld2lkdGh9KSksYi5lbmRsaW5lJiZULnB1c2goaShPKHhbeC5sZW5ndGgtMV0pLHtjb2xvcjpiLmVuZGxpbmVjb2xvcix3aWR0aDpiLmVuZGxpbmV3aWR0aH0pKX19fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyN31dLDk2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxvLHM9ZS5fbGFiZWxzPVtdLGw9ZS5fZ3JpZGxpbmVzO2ZvcihyPTA7cjxsLmxlbmd0aDtyKyspbz1sW3JdLC0xIT09WyJzdGFydCIsImJvdGgiXS5pbmRleE9mKGUuc2hvd3RpY2tsYWJlbHMpJiYoYT1uLnRpY2tUZXh0KGUsby52YWx1ZSksaShhLHtwcmVmaXg6dm9pZCAwLHN1ZmZpeDp2b2lkIDAsZW5kQW5jaG9yOiEwLHh5Om8ueHkoMCksZHh5Om8uZHh5KDAsMCksYXhpczpvLmF4aXMsbGVuZ3RoOm8uY3Jvc3NBeGlzLmxlbmd0aCxmb250Om8uYXhpcy50aWNrZm9udCxpc0ZpcnN0OjA9PT1yLGlzTGFzdDpyPT09bC5sZW5ndGgtMX0pLHMucHVzaChhKSksLTEhPT1bImVuZCIsImJvdGgiXS5pbmRleE9mKGUuc2hvd3RpY2tsYWJlbHMpJiYoYT1uLnRpY2tUZXh0KGUsby52YWx1ZSksaShhLHtlbmRBbmNob3I6ITEseHk6by54eShvLmNyb3NzTGVuZ3RoLTEpLGR4eTpvLmR4eShvLmNyb3NzTGVuZ3RoLTIsMSksYXhpczpvLmF4aXMsbGVuZ3RoOm8uY3Jvc3NBeGlzLmxlbmd0aCxmb250Om8uYXhpcy50aWNrZm9udCxpc0ZpcnN0OjA9PT1yLGlzTGFzdDpyPT09bC5sZW5ndGgtMX0pLHMucHVzaChhKSl9fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyN31dLDk2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dFswXS1lWzBdLGE9dFsxXS1lWzFdLG89clswXS1lWzBdLHM9clsxXS1lWzFdLGw9TWF0aC5wb3coaSppK2EqYSwuMjUpLGM9TWF0aC5wb3cobypvK3MqcywuMjUpLHU9KGMqYyppLWwqbCpvKSpuLGY9KGMqYyphLWwqbCpzKSpuLGg9YyoobCtjKSozLHA9bCoobCtjKSozO3JldHVybltbZVswXSsoaCYmdS9oKSxlWzFdKyhoJiZmL2gpXSxbZVswXS0ocCYmdS9wKSxlWzFdLShwJiZmL3ApXV19fSx7fV0sOTY2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXk7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaSxhLG8scyxsLGMsdT1bXSxmPW4odCk/dC5sZW5ndGg6dCxoPW4oZSk/ZS5sZW5ndGg6ZSxwPW4odCk/dDpudWxsLGQ9bihlKT9lOm51bGw7cCYmKG89KHAubGVuZ3RoLTEpLyhwW3AubGVuZ3RoLTFdLXBbMF0pLyhmLTEpKSxkJiYocz0oZC5sZW5ndGgtMSkvKGRbZC5sZW5ndGgtMV0tZFswXSkvKGgtMSkpO3ZhciBtPTEvMCxnPS0xLzA7Zm9yKGE9MDthPGg7YSsrKWZvcih1W2FdPVtdLGw9ZD8oZFthXS1kWzBdKSpzOmEvKGgtMSksaT0wO2k8ZjtpKyspYz0ocD8ocFtpXS1wWzBdKSpvOmkvKGYtMSkpLWwqcixtPU1hdGgubWluKGMsbSksZz1NYXRoLm1heChjLGcpLHVbYV1baV09Yzt2YXIgdj0xLyhnLW0pLHk9LW0qdjtmb3IoYT0wO2E8aDthKyspZm9yKGk9MDtpPGY7aSsrKXVbYV1baV09dip1W2FdW2ldK3k7cmV0dXJuIHV9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sOTY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY2F0bXVsbF9yb20iKSxpPXQoIi4uLy4uL2xpYiIpLmVuc3VyZUFycmF5O2Z1bmN0aW9uIGEodCxlLHIpe3ZhciBuPS0uNSpyWzBdKzEuNSplWzBdLGk9LS41KnJbMV0rMS41KmVbMV07cmV0dXJuWygyKm4rdFswXSkvMywoMippK3RbMV0pLzNdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvLHMsbCl7dmFyIGMsdSxmLGgscCxkLG0sZyx2LHkseD1yWzBdLmxlbmd0aCxiPXIubGVuZ3RoLF89cz8zKngtMjp4LHc9bD8zKmItMjpiO2Zvcih0PWkodCx3KSxlPWkoZSx3KSxmPTA7Zjx3O2YrKyl0W2ZdPWkodFtmXSxfKSxlW2ZdPWkoZVtmXSxfKTtmb3IodT0wLGg9MDt1PGI7dSsrLGgrPWw/MzoxKWZvcihwPXRbaF0sZD1lW2hdLG09clt1XSxnPW9bdV0sYz0wLGY9MDtjPHg7YysrLGYrPXM/MzoxKXBbZl09bVtjXSxkW2ZdPWdbY107aWYocylmb3IodT0wLGg9MDt1PGI7dSsrLGgrPWw/MzoxKXtmb3IoYz0xLGY9MztjPHgtMTtjKyssZis9Myl2PW4oW3JbdV1bYy0xXSxvW3VdW2MtMV1dLFtyW3VdW2NdLG9bdV1bY11dLFtyW3VdW2MrMV0sb1t1XVtjKzFdXSxzKSx0W2hdW2YtMV09dlswXVswXSxlW2hdW2YtMV09dlswXVsxXSx0W2hdW2YrMV09dlsxXVswXSxlW2hdW2YrMV09dlsxXVsxXTt5PWEoW3RbaF1bMF0sZVtoXVswXV0sW3RbaF1bMl0sZVtoXVsyXV0sW3RbaF1bM10sZVtoXVszXV0pLHRbaF1bMV09eVswXSxlW2hdWzFdPXlbMV0seT1hKFt0W2hdW18tMV0sZVtoXVtfLTFdXSxbdFtoXVtfLTNdLGVbaF1bXy0zXV0sW3RbaF1bXy00XSxlW2hdW18tNF1dKSx0W2hdW18tMl09eVswXSxlW2hdW18tMl09eVsxXX1pZihsKWZvcihmPTA7ZjxfO2YrKyl7Zm9yKGg9MztoPHctMztoKz0zKXY9bihbdFtoLTNdW2ZdLGVbaC0zXVtmXV0sW3RbaF1bZl0sZVtoXVtmXV0sW3RbaCszXVtmXSxlW2grM11bZl1dLGwpLHRbaC0xXVtmXT12WzBdWzBdLGVbaC0xXVtmXT12WzBdWzFdLHRbaCsxXVtmXT12WzFdWzBdLGVbaCsxXVtmXT12WzFdWzFdO3k9YShbdFswXVtmXSxlWzBdW2ZdXSxbdFsyXVtmXSxlWzJdW2ZdXSxbdFszXVtmXSxlWzNdW2ZdXSksdFsxXVtmXT15WzBdLGVbMV1bZl09eVsxXSx5PWEoW3Rbdy0xXVtmXSxlW3ctMV1bZl1dLFt0W3ctM11bZl0sZVt3LTNdW2ZdXSxbdFt3LTRdW2ZdLGVbdy00XVtmXV0pLHRbdy0yXVtmXT15WzBdLGVbdy0yXVtmXT15WzFdfWlmKHMmJmwpZm9yKGg9MTtoPHc7aCs9KGgrMSklMz09MD8yOjEpe2ZvcihmPTM7ZjxfLTM7Zis9Myl2PW4oW3RbaF1bZi0zXSxlW2hdW2YtM11dLFt0W2hdW2ZdLGVbaF1bZl1dLFt0W2hdW2YrM10sZVtoXVtmKzNdXSxzKSx0W2hdW2YtMV09LjUqKHRbaF1bZi0xXSt2WzBdWzBdKSxlW2hdW2YtMV09LjUqKGVbaF1bZi0xXSt2WzBdWzFdKSx0W2hdW2YrMV09LjUqKHRbaF1bZisxXSt2WzFdWzBdKSxlW2hdW2YrMV09LjUqKGVbaF1bZisxXSt2WzFdWzFdKTt5PWEoW3RbaF1bMF0sZVtoXVswXV0sW3RbaF1bMl0sZVtoXVsyXV0sW3RbaF1bM10sZVtoXVszXV0pLHRbaF1bMV09LjUqKHRbaF1bMV0reVswXSksZVtoXVsxXT0uNSooZVtoXVsxXSt5WzFdKSx5PWEoW3RbaF1bXy0xXSxlW2hdW18tMV1dLFt0W2hdW18tM10sZVtoXVtfLTNdXSxbdFtoXVtfLTRdLGVbaF1bXy00XV0pLHRbaF1bXy0yXT0uNSoodFtoXVtfLTJdK3lbMF0pLGVbaF1bXy0yXT0uNSooZVtoXVtfLTJdK3lbMV0pfXJldHVyblt0LGVdfX0seyIuLi8uLi9saWIiOjc3NiwiLi9jYXRtdWxsX3JvbSI6OTY1fV0sOTY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17UkVMQVRJVkVfQ1VMTF9UT0xFUkFOQ0U6MWUtNn19LHt9XSw5Njk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZSYmcj9mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvLHMsbCxjLHUsZjtlfHwoZT1bXSkscio9MyxuKj0zO3ZhciBoPWkqaSxwPTEtaSxkPXAqcCxtPXAqaSoyLGc9LTMqZCx2PTMqKGQtbSkseT0zKihtLWgpLHg9MypoLGI9YSphLF89YiphLHc9MS1hLFQ9dyp3LGs9VCp3O2ZvcihmPTA7Zjx0Lmxlbmd0aDtmKyspbz1nKih1PXRbZl0pW25dW3JdK3YqdVtuXVtyKzFdK3kqdVtuXVtyKzJdK3gqdVtuXVtyKzNdLHM9Zyp1W24rMV1bcl0rdip1W24rMV1bcisxXSt5KnVbbisxXVtyKzJdK3gqdVtuKzFdW3IrM10sbD1nKnVbbisyXVtyXSt2KnVbbisyXVtyKzFdK3kqdVtuKzJdW3IrMl0reCp1W24rMl1bciszXSxjPWcqdVtuKzNdW3JdK3YqdVtuKzNdW3IrMV0reSp1W24rM11bcisyXSt4KnVbbiszXVtyKzNdLGVbZl09aypvKzMqKFQqYSpzK3cqYipsKStfKmM7cmV0dXJuIGV9OmU/ZnVuY3Rpb24oZSxyLG4saSxhKXt2YXIgbyxzLGwsYztlfHwoZT1bXSkscio9Mzt2YXIgdT1pKmksZj0xLWksaD1mKmYscD1mKmkqMixkPS0zKmgsbT0zKihoLXApLGc9MyoocC11KSx2PTMqdSx5PTEtYTtmb3IobD0wO2w8dC5sZW5ndGg7bCsrKW89ZCooYz10W2xdKVtuXVtyXSttKmNbbl1bcisxXStnKmNbbl1bcisyXSt2KmNbbl1bciszXSxzPWQqY1tuKzFdW3JdK20qY1tuKzFdW3IrMV0rZypjW24rMV1bcisyXSt2KmNbbisxXVtyKzNdLGVbbF09eSpvK2EqcztyZXR1cm4gZX06cj9mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvLHMsbCxjLHUsZjtlfHwoZT1bXSksbio9Mzt2YXIgaD1hKmEscD1oKmEsZD0xLWEsbT1kKmQsZz1tKmQ7Zm9yKHU9MDt1PHQubGVuZ3RoO3UrKylvPShmPXRbdV0pW25dW3IrMV0tZltuXVtyXSxzPWZbbisxXVtyKzFdLWZbbisxXVtyXSxsPWZbbisyXVtyKzFdLWZbbisyXVtyXSxjPWZbbiszXVtyKzFdLWZbbiszXVtyXSxlW3VdPWcqbyszKihtKmEqcytkKmgqbCkrcCpjO3JldHVybiBlfTpmdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvLHMsbCxjO2V8fChlPVtdKTt2YXIgdT0xLWE7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylvPShjPXRbbF0pW25dW3IrMV0tY1tuXVtyXSxzPWNbbisxXVtyKzFdLWNbbisxXVtyXSxlW2xdPXUqbythKnM7cmV0dXJuIGV9fX0se31dLDk3MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3JldHVybiBlJiZyP2Z1bmN0aW9uKGUscixuLGksYSl7dmFyIG8scyxsLGMsdSxmO2V8fChlPVtdKSxyKj0zLG4qPTM7dmFyIGg9aSppLHA9aCppLGQ9MS1pLG09ZCpkLGc9bSpkLHY9YSphLHk9MS1hLHg9eSp5LGI9eSphKjIsXz0tMyp4LHc9MyooeC1iKSxUPTMqKGItdiksaz0zKnY7Zm9yKGY9MDtmPHQubGVuZ3RoO2YrKylvPV8qKHU9dFtmXSlbbl1bcl0rdyp1W24rMV1bcl0rVCp1W24rMl1bcl0rayp1W24rM11bcl0scz1fKnVbbl1bcisxXSt3KnVbbisxXVtyKzFdK1QqdVtuKzJdW3IrMV0rayp1W24rM11bcisxXSxsPV8qdVtuXVtyKzJdK3cqdVtuKzFdW3IrMl0rVCp1W24rMl1bcisyXStrKnVbbiszXVtyKzJdLGM9Xyp1W25dW3IrM10rdyp1W24rMV1bciszXStUKnVbbisyXVtyKzNdK2sqdVtuKzNdW3IrM10sZVtmXT1nKm8rMyoobSppKnMrZCpoKmwpK3AqYztyZXR1cm4gZX06ZT9mdW5jdGlvbihlLHIsbixpLGEpe3ZhciBvLHMsbCxjLHUsZjtlfHwoZT1bXSkscio9Mzt2YXIgaD1hKmEscD1oKmEsZD0xLWEsbT1kKmQsZz1tKmQ7Zm9yKHU9MDt1PHQubGVuZ3RoO3UrKylvPShmPXRbdV0pW24rMV1bcl0tZltuXVtyXSxzPWZbbisxXVtyKzFdLWZbbl1bcisxXSxsPWZbbisxXVtyKzJdLWZbbl1bcisyXSxjPWZbbisxXVtyKzNdLWZbbl1bciszXSxlW3VdPWcqbyszKihtKmEqcytkKmgqbCkrcCpjO3JldHVybiBlfTpyP2Z1bmN0aW9uKGUscixuLGksYSl7dmFyIG8scyxsLGM7ZXx8KGU9W10pLG4qPTM7dmFyIHU9MS1pLGY9YSphLGg9MS1hLHA9aCpoLGQ9aCphKjIsbT0tMypwLGc9MyoocC1kKSx2PTMqKGQtZikseT0zKmY7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylvPW0qKGM9dFtsXSlbbl1bcl0rZypjW24rMV1bcl0rdipjW24rMl1bcl0reSpjW24rM11bcl0scz1tKmNbbl1bcisxXStnKmNbbisxXVtyKzFdK3YqY1tuKzJdW3IrMV0reSpjW24rM11bcisxXSxlW2xdPXUqbytpKnM7cmV0dXJuIGV9OmZ1bmN0aW9uKGUscixuLGksYSl7dmFyIG8scyxsLGM7ZXx8KGU9W10pO3ZhciB1PTEtaTtmb3IobD0wO2w8dC5sZW5ndGg7bCsrKW89KGM9dFtsXSlbbisxXVtyXS1jW25dW3JdLHM9Y1tuKzFdW3IrMV0tY1tuXVtyKzFdLGVbbF09dSpvK2kqcztyZXR1cm4gZX19fSx7fV0sOTcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe3ZhciBhPWUtMixvPXItMjtyZXR1cm4gbiYmaT9mdW5jdGlvbihlLHIsbil7dmFyIGkscyxsLGMsdSxmO2V8fChlPVtdKTt2YXIgaD1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IociksYSkpLHA9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKG4pLG8pKSxkPU1hdGgubWF4KDAsTWF0aC5taW4oMSxyLWgpKSxtPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuLXApKTtoKj0zLHAqPTM7dmFyIGc9ZCpkLHY9ZypkLHk9MS1kLHg9eSp5LGI9eCp5LF89bSptLHc9XyptLFQ9MS1tLGs9VCpULEE9aypUO2ZvcihmPTA7Zjx0Lmxlbmd0aDtmKyspaT1iKih1PXRbZl0pW3BdW2hdKzMqKHgqZCp1W3BdW2grMV0reSpnKnVbcF1baCsyXSkrdip1W3BdW2grM10scz1iKnVbcCsxXVtoXSszKih4KmQqdVtwKzFdW2grMV0reSpnKnVbcCsxXVtoKzJdKSt2KnVbcCsxXVtoKzNdLGw9Yip1W3ArMl1baF0rMyooeCpkKnVbcCsyXVtoKzFdK3kqZyp1W3ArMl1baCsyXSkrdip1W3ArMl1baCszXSxjPWIqdVtwKzNdW2hdKzMqKHgqZCp1W3ArM11baCsxXSt5KmcqdVtwKzNdW2grMl0pK3YqdVtwKzNdW2grM10sZVtmXT1BKmkrMyooayptKnMrVCpfKmwpK3cqYztyZXR1cm4gZX06bj9mdW5jdGlvbihlLHIsbil7ZXx8KGU9W10pO3ZhciBpLHMsbCxjLHUsZixoPU1hdGgubWF4KDAsTWF0aC5taW4oTWF0aC5mbG9vcihyKSxhKSkscD1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IobiksbykpLGQ9TWF0aC5tYXgoMCxNYXRoLm1pbigxLHItaCkpLG09TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4tcCkpO2gqPTM7dmFyIGc9ZCpkLHY9ZypkLHk9MS1kLHg9eSp5LGI9eCp5LF89MS1tO2Zvcih1PTA7dTx0Lmxlbmd0aDt1KyspaT1fKihmPXRbdV0pW3BdW2hdK20qZltwKzFdW2hdLHM9XypmW3BdW2grMV0rbSpmW3ArMV1baCsxXSxsPV8qZltwXVtoKzJdK20qZltwKzFdW2grMV0sYz1fKmZbcF1baCszXSttKmZbcCsxXVtoKzFdLGVbdV09YippKzMqKHgqZCpzK3kqZypsKSt2KmM7cmV0dXJuIGV9Omk/ZnVuY3Rpb24oZSxyLG4pe2V8fChlPVtdKTt2YXIgaSxzLGwsYyx1LGYsaD1NYXRoLm1heCgwLE1hdGgubWluKE1hdGguZmxvb3IociksYSkpLHA9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKG4pLG8pKSxkPU1hdGgubWF4KDAsTWF0aC5taW4oMSxyLWgpKSxtPU1hdGgubWF4KDAsTWF0aC5taW4oMSxuLXApKTtwKj0zO3ZhciBnPW0qbSx2PWcqbSx5PTEtbSx4PXkqeSxiPXgqeSxfPTEtZDtmb3IodT0wO3U8dC5sZW5ndGg7dSsrKWk9XyooZj10W3VdKVtwXVtoXStkKmZbcF1baCsxXSxzPV8qZltwKzFdW2hdK2QqZltwKzFdW2grMV0sbD1fKmZbcCsyXVtoXStkKmZbcCsyXVtoKzFdLGM9XypmW3ArM11baF0rZCpmW3ArM11baCsxXSxlW3VdPWIqaSszKih4Km0qcyt5KmcqbCkrdipjO3JldHVybiBlfTpmdW5jdGlvbihlLHIsbil7ZXx8KGU9W10pO3ZhciBpLHMsbCxjLHU9TWF0aC5tYXgoMCxNYXRoLm1pbihNYXRoLmZsb29yKHIpLGEpKSxmPU1hdGgubWF4KDAsTWF0aC5taW4oTWF0aC5mbG9vcihuKSxvKSksaD1NYXRoLm1heCgwLE1hdGgubWluKDEsci11KSkscD1NYXRoLm1heCgwLE1hdGgubWluKDEsbi1mKSksZD0xLXAsbT0xLWg7Zm9yKGw9MDtsPHQubGVuZ3RoO2wrKylpPW0qKGM9dFtsXSlbZl1bdV0raCpjW2ZdW3UrMV0scz1tKmNbZisxXVt1XStoKmNbZisxXVt1KzFdLGVbbF09ZCppK3AqcztyZXR1cm4gZX19fSx7fV0sOTcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi94eV9kZWZhdWx0cyIpLGE9dCgiLi9hYl9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCl7ZnVuY3Rpb24gYyhyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWUuX2NsaXBQYXRoSWQ9ImNsaXAiK2UudWlkKyJjYXJwZXQiO3ZhciB1PWMoImNvbG9yIixzLmRlZmF1bHRMaW5lKTsobi5jb2VyY2VGb250KGMsImZvbnQiKSxjKCJjYXJwZXQiKSxhKHQsZSxsLGMsdSksZS5hJiZlLmIpPyhlLmEubGVuZ3RoPDMmJihlLmFheGlzLnNtb290aGluZz0wKSxlLmIubGVuZ3RoPDMmJihlLmJheGlzLnNtb290aGluZz0wKSxpKHQsZSxjKXx8KGUudmlzaWJsZT0hMSksZS5fY2hlYXRlciYmYygiY2hlYXRlcnNsb3BlIikpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uLy4uL2xpYiI6Nzc2LCIuL2FiX2RlZmF1bHRzIjo5NTUsIi4vYXR0cmlidXRlcyI6OTU3LCIuL3h5X2RlZmF1bHRzIjo5ODF9XSw5NzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxwbG90OnQoIi4vcGxvdCIpLGNhbGM6dCgiLi9jYWxjIiksYW5pbWF0YWJsZTohMCxpc0NvbnRhaW5lcjohMCxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY2FycGV0IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwiY2FycGV0IiwiY2FycGV0QXhpcyIsIm5vdExlZ2VuZElzb2xhdGFibGUiLCJub011bHRpQ2F0ZWdvcnkiLCJub0hvdmVyIiwibm9Tb3J0aW5nQnlWYWx1ZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6ODQxLCIuL2F0dHJpYnV0ZXMiOjk1NywiLi9jYWxjIjo5NjEsIi4vZGVmYXVsdHMiOjk3MiwiLi9wbG90Ijo5Nzh9XSw5NzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByLG49dC5fZnVsbERhdGEubGVuZ3RoLGk9MDtpPG47aSsrKXt2YXIgYT10Ll9mdWxsRGF0YVtpXTtpZihhLmluZGV4IT09ZS5pbmRleCYmKCJjYXJwZXQiPT09YS50eXBlJiYocnx8KHI9YSksYS5jYXJwZXQ9PT1lLmNhcnBldCkpKXJldHVybiBhfXJldHVybiByfX0se31dLDk3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKDA9PT10Lmxlbmd0aClyZXR1cm4iIjt2YXIgbixpPVtdLGE9cj8zOjE7Zm9yKG49MDtuPHQubGVuZ3RoO24rPWEpaS5wdXNoKHRbbl0rIiwiK2Vbbl0pLHImJm48dC5sZW5ndGgtYSYmKGkucHVzaCgiQyIpLGkucHVzaChbdFtuKzFdKyIsIitlW24rMV0sdFtuKzJdKyIsIitlW24rMl0rIiAiXS5qb2luKCIgIikpKTtyZXR1cm4gaS5qb2luKHI/IiI6IkwiKX19LHt9XSw5NzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpO2ZvcihuKHQpP3QubGVuZ3RoPmUubGVuZ3RoJiYodD10LnNsaWNlKDAsZS5sZW5ndGgpKTp0PVtdLGk9MDtpPGUubGVuZ3RoO2krKyl0W2ldPXIoZVtpXSk7cmV0dXJuIHR9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sOTc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG89aVswXSp0LmRwZHgoZSkscz1pWzFdKnQuZHBkeShyKSxsPTEsYz0xO2lmKGEpe3ZhciB1PU1hdGguc3FydChpWzBdKmlbMF0raVsxXSppWzFdKSxmPU1hdGguc3FydChhWzBdKmFbMF0rYVsxXSphWzFdKSxoPShpWzBdKmFbMF0raVsxXSphWzFdKS91L2Y7Yz1NYXRoLm1heCgwLGgpfXZhciBwPTE4MCpNYXRoLmF0YW4yKHMsbykvTWF0aC5QSTtyZXR1cm4gcDwtOTA/KHArPTE4MCxsPS1sKTpwPjkwJiYocC09MTgwLGw9LWwpLHthbmdsZTpwLGZsaXA6bCxwOnQuYzJwKG4sZSxyKSxvZmZzZXRNdWx0cGxpZXI6Y319fSx7fV0sOTc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi9tYXBfMWRfYXJyYXkiKSxvPXQoIi4vbWFrZXBhdGgiKSxzPXQoIi4vb3JpZW50X3RleHQiKSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vLi4vbGliIiksdT1jLnN0clJvdGF0ZSxmPWMuc3RyVHJhbnNsYXRlLGg9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpO2Z1bmN0aW9uIHAodCxlLHIsaSxzLGwpe3ZhciBjPSJjb25zdC0iK3MrIi1saW5lcyIsdT1yLnNlbGVjdEFsbCgiLiIrYykuZGF0YShsKTt1LmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZChjLCEwKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLHUuZWFjaCgoZnVuY3Rpb24ocil7dmFyIGk9cixzPWkueCxsPWkueSxjPWEoW10scyx0LmMycCksdT1hKFtdLGwsZS5jMnApLGY9Ik0iK28oYyx1LGkuc21vb3RoaW5nKTtuLnNlbGVjdCh0aGlzKS5hdHRyKCJkIixmKS5zdHlsZSgic3Ryb2tlLXdpZHRoIixpLndpZHRoKS5zdHlsZSgic3Ryb2tlIixpLmNvbG9yKS5zdHlsZSgiZmlsbCIsIm5vbmUiKX0pKSx1LmV4aXQoKS5yZW1vdmUoKX1mdW5jdGlvbiBkKHQsZSxyLGEsbyxjLGgscCl7dmFyIGQ9Yy5zZWxlY3RBbGwoInRleHQuIitwKS5kYXRhKGgpO2QuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKHAsITApO3ZhciBtPTAsZz17fTtyZXR1cm4gZC5lYWNoKChmdW5jdGlvbihvLGMpe3ZhciBoO2lmKCJhdXRvIj09PW8uYXhpcy50aWNrYW5nbGUpaD1zKGEsZSxyLG8ueHksby5keHkpO2Vsc2V7dmFyIHA9KG8uYXhpcy50aWNrYW5nbGUrMTgwKSpNYXRoLlBJLzE4MDtoPXMoYSxlLHIsby54eSxbTWF0aC5jb3MocCksTWF0aC5zaW4ocCldKX1jfHwoZz17YW5nbGU6aC5hbmdsZSxmbGlwOmguZmxpcH0pO3ZhciBkPShvLmVuZEFuY2hvcj8tMToxKSpoLmZsaXAsdj1uLnNlbGVjdCh0aGlzKS5hdHRyKHsidGV4dC1hbmNob3IiOmQ+MD8ic3RhcnQiOiJlbmQiLCJkYXRhLW5vdGV4IjoxfSkuY2FsbChpLmZvbnQsby5mb250KS50ZXh0KG8udGV4dCkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyx0KSx5PWkuYkJveCh0aGlzKTt2LmF0dHIoInRyYW5zZm9ybSIsZihoLnBbMF0saC5wWzFdKSt1KGguYW5nbGUpK2Yoby5heGlzLmxhYmVscGFkZGluZypkLC4zKnkuaGVpZ2h0KSksbT1NYXRoLm1heChtLHkud2lkdGgrby5heGlzLmxhYmVscGFkZGluZyl9KSksZC5leGl0KCkucmVtb3ZlKCksZy5tYXhFeHRlbnQ9bSxnfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgbD1lLnhheGlzLHU9ZS55YXhpcyxmPXQuX2Z1bGxMYXlvdXQuX2NsaXBzO2MubWFrZVRyYWNlR3JvdXBzKGksciwidHJhY2UiKS5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxpPWVbMF0saD1pLnRyYWNlLG09aC5hYXhpcyxnPWguYmF4aXMseT1jLmVuc3VyZVNpbmdsZShyLCJnIiwibWlub3JsYXllciIpLHg9Yy5lbnN1cmVTaW5nbGUociwiZyIsIm1ham9ybGF5ZXIiKSxiPWMuZW5zdXJlU2luZ2xlKHIsImciLCJib3VuZGFyeWxheWVyIiksXz1jLmVuc3VyZVNpbmdsZShyLCJnIiwibGFiZWxsYXllciIpO3Iuc3R5bGUoIm9wYWNpdHkiLGgub3BhY2l0eSkscChsLHUseCxtLCJhIixtLl9ncmlkbGluZXMpLHAobCx1LHgsZywiYiIsZy5fZ3JpZGxpbmVzKSxwKGwsdSx5LG0sImEiLG0uX21pbm9yZ3JpZGxpbmVzKSxwKGwsdSx5LGcsImIiLGcuX21pbm9yZ3JpZGxpbmVzKSxwKGwsdSxiLG0sImEtYm91bmRhcnkiLG0uX2JvdW5kYXJ5bGluZXMpLHAobCx1LGIsZywiYi1ib3VuZGFyeSIsZy5fYm91bmRhcnlsaW5lcyk7dmFyIHc9ZCh0LGwsdSxoLGksXyxtLl9sYWJlbHMsImEtbGFiZWwiKSxUPWQodCxsLHUsaCxpLF8sZy5fbGFiZWxzLCJiLWxhYmVsIik7IWZ1bmN0aW9uKHQsZSxyLG4saSxhLG8sbCl7dmFyIHUsZixoLHAsZD1jLmFnZ051bXMoTWF0aC5taW4sbnVsbCxyLmEpLG09Yy5hZ2dOdW1zKE1hdGgubWF4LG51bGwsci5hKSxnPWMuYWdnTnVtcyhNYXRoLm1pbixudWxsLHIuYikseT1jLmFnZ051bXMoTWF0aC5tYXgsbnVsbCxyLmIpO3U9LjUqKGQrbSksZj1nLGg9ci5hYjJ4eSh1LGYsITApLHA9ci5keHlkYV9yb3VnaCh1LGYpLHZvaWQgMD09PW8uYW5nbGUmJmMuZXh0ZW5kRmxhdChvLHMocixpLGEsaCxyLmR4eWRiX3JvdWdoKHUsZikpKTt2KHQsZSxyLG4saCxwLHIuYWF4aXMsaSxhLG8sImEtdGl0bGUiKSx1PWQsZj0uNSooZyt5KSxoPXIuYWIyeHkodSxmLCEwKSxwPXIuZHh5ZGJfcm91Z2godSxmKSx2b2lkIDA9PT1sLmFuZ2xlJiZjLmV4dGVuZEZsYXQobCxzKHIsaSxhLGgsci5keHlkYV9yb3VnaCh1LGYpKSk7dih0LGUscixuLGgscCxyLmJheGlzLGksYSxsLCJiLXRpdGxlIil9KHQsXyxoLGksbCx1LHcsVCksZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgcyxsLHUsZixoPXIuc2VsZWN0KCIjIit0Ll9jbGlwUGF0aElkKTtoLnNpemUoKXx8KGg9ci5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZCgiY2FycGV0Y2xpcCIsITApKTt2YXIgcD1jLmVuc3VyZVNpbmdsZShoLCJwYXRoIiwiY2FycGV0Ym91bmRhcnkiKSxkPWUuY2xpcHNlZ21lbnRzLG09W107Zm9yKGY9MDtmPGQubGVuZ3RoO2YrKylzPWRbZl0sbD1hKFtdLHMueCxuLmMycCksdT1hKFtdLHMueSxpLmMycCksbS5wdXNoKG8obCx1LHMuYmljdWJpYykpO3ZhciBnPSJNIittLmpvaW4oIkwiKSsiWiI7aC5hdHRyKCJpZCIsdC5fY2xpcFBhdGhJZCkscC5hdHRyKCJkIixnKX0oaCxpLGYsbCx1KX0pKX07dmFyIG09aC5MSU5FX1NQQUNJTkcsZz0oMS1oLk1JRF9TSElGVCkvbSsxO2Z1bmN0aW9uIHYodCxlLHIsYSxvLGMsaCxwLGQsdix5KXt2YXIgeD1bXTtoLnRpdGxlLnRleHQmJngucHVzaChoLnRpdGxlLnRleHQpO3ZhciBiPWUuc2VsZWN0QWxsKCJ0ZXh0LiIreSkuZGF0YSh4KSxfPXYubWF4RXh0ZW50O2IuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5jbGFzc2VkKHksITApLGIuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT1zKHIscCxkLG8sYyk7LTE9PT1bInN0YXJ0IiwiYm90aCJdLmluZGV4T2YoaC5zaG93dGlja2xhYmVscykmJihfPTApO3ZhciBhPWgudGl0bGUuZm9udC5zaXplO18rPWEraC50aXRsZS5vZmZzZXQ7dmFyIHk9KHYuYW5nbGUrKHYuZmxpcDwwPzE4MDowKS1lLmFuZ2xlKzQ1MCklMzYwLHg9eT45MCYmeTwyNzAsYj1uLnNlbGVjdCh0aGlzKTtiLnRleHQoaC50aXRsZS50ZXh0KS5jYWxsKGwuY29udmVydFRvVHNwYW5zLHQpLHgmJihfPSgtbC5saW5lQ291bnQoYikrZykqbSphLV8pLGIuYXR0cigidHJhbnNmb3JtIixmKGUucFswXSxlLnBbMV0pK3UoZS5hbmdsZSkrZigwLF8pKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLmNhbGwoaS5mb250LGgudGl0bGUuZm9udCl9KSksYi5leGl0KCkucmVtb3ZlKCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb25zdGFudHMvYWxpZ25tZW50Ijo3NDQsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi9tYWtlcGF0aCI6OTc1LCIuL21hcF8xZF9hcnJheSI6OTc2LCIuL29yaWVudF90ZXh0Ijo5NzcsIkBwbG90bHkvZDMiOjU4fV0sOTc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIiksaT10KCIuLi8uLi9saWIvc2VhcmNoIikuZmluZEJpbixhPXQoIi4vY29tcHV0ZV9jb250cm9sX3BvaW50cyIpLG89dCgiLi9jcmVhdGVfc3BsaW5lX2V2YWx1YXRvciIpLHM9dCgiLi9jcmVhdGVfaV9kZXJpdmF0aXZlX2V2YWx1YXRvciIpLGw9dCgiLi9jcmVhdGVfal9kZXJpdmF0aXZlX2V2YWx1YXRvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10Ll9hLHI9dC5fYixjPWUubGVuZ3RoLHU9ci5sZW5ndGgsZj10LmFheGlzLGg9dC5iYXhpcyxwPWVbMF0sZD1lW2MtMV0sbT1yWzBdLGc9clt1LTFdLHY9ZVtlLmxlbmd0aC0xXS1lWzBdLHk9cltyLmxlbmd0aC0xXS1yWzBdLHg9dipuLlJFTEFUSVZFX0NVTExfVE9MRVJBTkNFLGI9eSpuLlJFTEFUSVZFX0NVTExfVE9MRVJBTkNFO3AtPXgsZCs9eCxtLT1iLGcrPWIsdC5pc1Zpc2libGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD5wJiZ0PGQmJmU+bSYmZTxnfSx0LmlzT2NjbHVkZWQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdDxwfHx0PmR8fGU8bXx8ZT5nfSx0LnNldFNjYWxlPWZ1bmN0aW9uKCl7dmFyIGU9dC5feCxyPXQuX3ksbj1hKHQuX3hjdHJsLHQuX3ljdHJsLGUscixmLnNtb290aGluZyxoLnNtb290aGluZyk7dC5feGN0cmw9blswXSx0Ll95Y3RybD1uWzFdLHQuZXZhbHh5PW8oW3QuX3hjdHJsLHQuX3ljdHJsXSxjLHUsZi5zbW9vdGhpbmcsaC5zbW9vdGhpbmcpLHQuZHh5ZGk9cyhbdC5feGN0cmwsdC5feWN0cmxdLGYuc21vb3RoaW5nLGguc21vb3RoaW5nKSx0LmR4eWRqPWwoW3QuX3hjdHJsLHQuX3ljdHJsXSxmLnNtb290aGluZyxoLnNtb290aGluZyl9LHQuaTJhPWZ1bmN0aW9uKHQpe3ZhciByPU1hdGgubWF4KDAsTWF0aC5mbG9vcih0WzBdKSxjLTIpLG49dFswXS1yO3JldHVybigxLW4pKmVbcl0rbiplW3IrMV19LHQuajJiPWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDAsTWF0aC5mbG9vcih0WzFdKSxjLTIpLG49dFsxXS1lO3JldHVybigxLW4pKnJbZV0rbipyW2UrMV19LHQuaWoyYWI9ZnVuY3Rpb24oZSl7cmV0dXJuW3QuaTJhKGVbMF0pLHQuajJiKGVbMV0pXX0sdC5hMmk9ZnVuY3Rpb24odCl7dmFyIHI9TWF0aC5tYXgoMCxNYXRoLm1pbihpKHQsZSksYy0yKSksbj1lW3JdLGE9ZVtyKzFdO3JldHVybiBNYXRoLm1heCgwLE1hdGgubWluKGMtMSxyKyh0LW4pLyhhLW4pKSl9LHQuYjJqPWZ1bmN0aW9uKHQpe3ZhciBlPU1hdGgubWF4KDAsTWF0aC5taW4oaSh0LHIpLHUtMikpLG49cltlXSxhPXJbZSsxXTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbih1LTEsZSsodC1uKS8oYS1uKSkpfSx0LmFiMmlqPWZ1bmN0aW9uKGUpe3JldHVyblt0LmEyaShlWzBdKSx0LmIyaihlWzFdKV19LHQuaTJjPWZ1bmN0aW9uKGUscil7cmV0dXJuIHQuZXZhbHh5KFtdLGUscil9LHQuYWIyeHk9ZnVuY3Rpb24obixpLGEpe2lmKCFhJiYobjxlWzBdfHxuPmVbYy0xXXxpPHJbMF18fGk+clt1LTFdKSlyZXR1cm5bITEsITFdO3ZhciBvPXQuYTJpKG4pLHM9dC5iMmooaSksbD10LmV2YWx4eShbXSxvLHMpO2lmKGEpe3ZhciBmLGgscCxkLG09MCxnPTAsdj1bXTtuPGVbMF0/KGY9MCxoPTAsbT0obi1lWzBdKS8oZVsxXS1lWzBdKSk6bj5lW2MtMV0/KGY9Yy0yLGg9MSxtPShuLWVbYy0xXSkvKGVbYy0xXS1lW2MtMl0pKTpoPW8tKGY9TWF0aC5tYXgoMCxNYXRoLm1pbihjLTIsTWF0aC5mbG9vcihvKSkpKSxpPHJbMF0/KHA9MCxkPTAsZz0oaS1yWzBdKS8oclsxXS1yWzBdKSk6aT5yW3UtMV0/KHA9dS0yLGQ9MSxnPShpLXJbdS0xXSkvKHJbdS0xXS1yW3UtMl0pKTpkPXMtKHA9TWF0aC5tYXgoMCxNYXRoLm1pbih1LTIsTWF0aC5mbG9vcihzKSkpKSxtJiYodC5keHlkaSh2LGYscCxoLGQpLGxbMF0rPXZbMF0qbSxsWzFdKz12WzFdKm0pLGcmJih0LmR4eWRqKHYsZixwLGgsZCksbFswXSs9dlswXSpnLGxbMV0rPXZbMV0qZyl9cmV0dXJuIGx9LHQuYzJwPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm5bZS5jMnAodFswXSksci5jMnAodFsxXSldfSx0LnAyeD1mdW5jdGlvbih0LGUscil7cmV0dXJuW2UucDJjKHRbMF0pLHIucDJjKHRbMV0pXX0sdC5kYWRpPWZ1bmN0aW9uKHQpe3ZhciByPU1hdGgubWF4KDAsTWF0aC5taW4oZS5sZW5ndGgtMix0KSk7cmV0dXJuIGVbcisxXS1lW3JdfSx0LmRiZGo9ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5tYXgoMCxNYXRoLm1pbihyLmxlbmd0aC0yLHQpKTtyZXR1cm4gcltlKzFdLXJbZV19LHQuZHh5ZGE9ZnVuY3Rpb24oZSxyLG4saSl7dmFyIGE9dC5keHlkaShudWxsLGUscixuLGkpLG89dC5kYWRpKGUsbik7cmV0dXJuW2FbMF0vbyxhWzFdL29dfSx0LmR4eWRiPWZ1bmN0aW9uKGUscixuLGkpe3ZhciBhPXQuZHh5ZGoobnVsbCxlLHIsbixpKSxvPXQuZGJkaihyLGkpO3JldHVyblthWzBdL28sYVsxXS9vXX0sdC5keHlkYV9yb3VnaD1mdW5jdGlvbihlLHIsbil7dmFyIGk9dioobnx8LjEpLGE9dC5hYjJ4eShlK2ksciwhMCksbz10LmFiMnh5KGUtaSxyLCEwKTtyZXR1cm5bLjUqKGFbMF0tb1swXSkvaSwuNSooYVsxXS1vWzFdKS9pXX0sdC5keHlkYl9yb3VnaD1mdW5jdGlvbihlLHIsbil7dmFyIGk9eSoobnx8LjEpLGE9dC5hYjJ4eShlLHIraSwhMCksbz10LmFiMnh5KGUsci1pLCEwKTtyZXR1cm5bLjUqKGFbMF0tb1swXSkvaSwuNSooYVsxXS1vWzFdKS9pXX0sdC5kcGR4PWZ1bmN0aW9uKHQpe3JldHVybiB0Ll9tfSx0LmRwZHk9ZnVuY3Rpb24odCl7cmV0dXJuIHQuX219fX0seyIuLi8uLi9saWIvc2VhcmNoIjo3OTYsIi4vY29tcHV0ZV9jb250cm9sX3BvaW50cyI6OTY3LCIuL2NvbnN0YW50cyI6OTY4LCIuL2NyZWF0ZV9pX2Rlcml2YXRpdmVfZXZhbHVhdG9yIjo5NjksIi4vY3JlYXRlX2pfZGVyaXZhdGl2ZV9ldmFsdWF0b3IiOjk3MCwiLi9jcmVhdGVfc3BsaW5lX2V2YWx1YXRvciI6OTcxfV0sOTgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGksYSxvLHM9W10sbD1bXSxjPXRbMF0ubGVuZ3RoLHU9dC5sZW5ndGg7ZnVuY3Rpb24gZihlLHIpe3ZhciBuLGk9MCxhPTA7cmV0dXJuIGU+MCYmdm9pZCAwIT09KG49dFtyXVtlLTFdKSYmKGErKyxpKz1uKSxlPGMtMSYmdm9pZCAwIT09KG49dFtyXVtlKzFdKSYmKGErKyxpKz1uKSxyPjAmJnZvaWQgMCE9PShuPXRbci0xXVtlXSkmJihhKyssaSs9bikscjx1LTEmJnZvaWQgMCE9PShuPXRbcisxXVtlXSkmJihhKyssaSs9biksaS9NYXRoLm1heCgxLGEpfXZhciBoLHAsZCxtLGcsdix5LHgsYixfLHcsVD0wO2ZvcihpPTA7aTxjO2krKylmb3IoYT0wO2E8dTthKyspdm9pZCAwPT09dFthXVtpXSYmKHMucHVzaChpKSxsLnB1c2goYSksdFthXVtpXT1mKGksYSkpLFQ9TWF0aC5tYXgoVCxNYXRoLmFicyh0W2FdW2ldKSk7aWYoIXMubGVuZ3RoKXJldHVybiB0O3ZhciBrPTAsQT0wLE09cy5sZW5ndGg7ZG97Zm9yKGs9MCxvPTA7bzxNO28rKyl7aT1zW29dLGE9bFtvXTt2YXIgUyxFLEwsQyxQLEksTz0wLHo9MDswPT09aT8oTD1lW1A9TWF0aC5taW4oYy0xLDIpXSxDPWVbMV0sUz10W2FdW1BdLHorPShFPXRbYV1bMV0pKyhFLVMpKihlWzBdLUMpLyhDLUwpLE8rKyk6aT09PWMtMSYmKEw9ZVtQPU1hdGgubWF4KDAsYy0zKV0sQz1lW2MtMl0sUz10W2FdW1BdLHorPShFPXRbYV1bYy0yXSkrKEUtUykqKGVbYy0xXS1DKS8oQy1MKSxPKyspLCgwPT09aXx8aT09PWMtMSkmJmE+MCYmYTx1LTEmJihoPXJbYSsxXS1yW2FdLHorPSgocD1yW2FdLXJbYS0xXSkqdFthKzFdW2ldK2gqdFthLTFdW2ldKS8ocCtoKSxPKyspLDA9PT1hPyhMPXJbST1NYXRoLm1pbih1LTEsMildLEM9clsxXSxTPXRbSV1baV0seis9KEU9dFsxXVtpXSkrKEUtUykqKHJbMF0tQykvKEMtTCksTysrKTphPT09dS0xJiYoTD1yW0k9TWF0aC5tYXgoMCx1LTMpXSxDPXJbdS0yXSxTPXRbSV1baV0seis9KEU9dFt1LTJdW2ldKSsoRS1TKSooclt1LTFdLUMpLyhDLUwpLE8rKyksKDA9PT1hfHxhPT09dS0xKSYmaT4wJiZpPGMtMSYmKGg9ZVtpKzFdLWVbaV0seis9KChwPWVbaV0tZVtpLTFdKSp0W2FdW2krMV0raCp0W2FdW2ktMV0pLyhwK2gpLE8rKyksTz96Lz1POihkPWVbaSsxXS1lW2ldLG09ZVtpXS1lW2ktMV0seD0oZz1yW2ErMV0tclthXSkqKHY9clthXS1yW2EtMV0pKihnK3YpLHo9KCh5PWQqbSooZCttKSkqKHYqdFthKzFdW2ldK2cqdFthLTFdW2ldKSt4KihtKnRbYV1baSsxXStkKnRbYV1baS0xXSkpLyh4KihtK2QpK3kqKHYrZykpKSxrKz0oXz0oYj16LXRbYV1baV0pL1QpKl8sdz1PPzA6Ljg1LHRbYV1baV0rPWIqKDErdyl9az1NYXRoLnNxcnQoayl9d2hpbGUoQSsrPDEwMCYmaz4xZS01KTtyZXR1cm4gbi5sb2coIlNtb290aGVyIGNvbnZlcmdlZCB0byIsaywiYWZ0ZXIiLEEsIml0ZXJhdGlvbnMiKSx0fX0seyIuLi8uLi9saWIiOjc3Nn1dLDk4MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5pc0FycmF5MUQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1yKCJ4IiksYT1pJiZpLmxlbmd0aCxvPXIoInkiKSxzPW8mJm8ubGVuZ3RoO2lmKCFhJiYhcylyZXR1cm4hMTtpZihlLl9jaGVhdGVyPSFpLGEmJiFuKGkpfHxzJiYhbihvKSllLl9sZW5ndGg9bnVsbDtlbHNle3ZhciBsPWE/aS5sZW5ndGg6MS8wO3MmJihsPU1hdGgubWluKGwsby5sZW5ndGgpKSxlLmEmJmUuYS5sZW5ndGgmJihsPU1hdGgubWluKGwsZS5hLmxlbmd0aCkpLGUuYiYmZS5iLmxlbmd0aCYmKGw9TWF0aC5taW4obCxlLmIubGVuZ3RoKSksZS5fbGVuZ3RoPWx9cmV0dXJuITB9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sOTgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi9zY2F0dGVyZ2VvL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiKS5kZWZhdWx0TGluZSxsPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGM9aS5tYXJrZXIubGluZTtlLmV4cG9ydHM9bCh7bG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxvY2F0aW9ubW9kZTppLmxvY2F0aW9ubW9kZSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGdlb2pzb246bCh7fSxpLmdlb2pzb24se30pLGZlYXR1cmVpZGtleTppLmZlYXR1cmVpZGtleSx0ZXh0Omwoe30saS50ZXh0LHt9KSxob3ZlcnRleHQ6bCh7fSxpLmhvdmVydGV4dCx7fSksbWFya2VyOntsaW5lOntjb2xvcjpsKHt9LGMuY29sb3Ise2RmbHQ6c30pLHdpZHRoOmwoe30sYy53aWR0aCx7ZGZsdDoxfSksZWRpdFR5cGU6ImNhbGMifSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLGFycmF5T2s6ITAsbWluOjAsbWF4OjEsZGZsdDoxLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJjYWxjIn0sc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTppLnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSx1bnNlbGVjdGVkOnttYXJrZXI6e29wYWNpdHk6aS51bnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxob3ZlcmluZm86bCh7fSxvLmhvdmVyaW5mbyx7ZWRpdFR5cGU6ImNhbGMiLGZsYWdzOlsibG9jYXRpb24iLCJ6IiwidGV4dCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6bigpLHNob3dsZWdlbmQ6bCh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sYSgiIix7Y0xldHRlcjoieiIsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSl9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6ODIzLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL3NjYXR0ZXJnZW8vYXR0cmlidXRlcyI6MTIzM31dLDk4MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIiksbz10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLHM9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpO2Z1bmN0aW9uIGwodCl7cmV0dXJuIHQmJiJzdHJpbmciPT10eXBlb2YgdH1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixjPWUuX2xlbmd0aCx1PW5ldyBBcnJheShjKTtyPWUuZ2VvanNvbj9mdW5jdGlvbih0KXtyZXR1cm4gbCh0KXx8bih0KX06bDtmb3IodmFyIGY9MDtmPGM7ZisrKXt2YXIgaD11W2ZdPXt9LHA9ZS5sb2NhdGlvbnNbZl0sZD1lLnpbZl07cihwKSYmbihkKT8oaC5sb2M9cCxoLno9ZCk6KGgubG9jPW51bGwsaC56PWkpLGguaW5kZXg9Zn1yZXR1cm4gbyh1LGUpLGEodCxlLHt2YWxzOmUueixjb250YWluZXJTdHI6IiIsY0xldHRlcjoieiJ9KSxzKHUsZSksdX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjY0NywiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6MTE5MCwiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiI6MTE5MywiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDk4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLGE9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIHMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgbD1zKCJsb2NhdGlvbnMiKSxjPXMoInoiKTtpZihsJiZsLmxlbmd0aCYmbi5pc0FycmF5T3JUeXBlZEFycmF5KGMpJiZjLmxlbmd0aCl7ZS5fbGVuZ3RoPU1hdGgubWluKGwubGVuZ3RoLGMubGVuZ3RoKTt2YXIgdSxmPXMoImdlb2pzb24iKTsoInN0cmluZyI9PXR5cGVvZiBmJiYiIiE9PWZ8fG4uaXNQbGFpbk9iamVjdChmKSkmJih1PSJnZW9qc29uLWlkIiksImdlb2pzb24taWQiPT09cygibG9jYXRpb25tb2RlIix1KSYmcygiZmVhdHVyZWlka2V5IikscygidGV4dCIpLHMoImhvdmVydGV4dCIpLHMoImhvdmVydGVtcGxhdGUiKSxzKCJtYXJrZXIubGluZS53aWR0aCIpJiZzKCJtYXJrZXIubGluZS5jb2xvciIpLHMoIm1hcmtlci5vcGFjaXR5IiksaSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxzKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2NDksIi4uLy4uL2xpYiI6Nzc2LCIuL2F0dHJpYnV0ZXMiOjk4Mn1dLDk4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt0LmxvY2F0aW9uPWUubG9jYXRpb24sdC56PWUuejt2YXIgYT1uW2ldO3JldHVybiBhLmZJbiYmYS5mSW4ucHJvcGVydGllcyYmKHQucHJvcGVydGllcz1hLmZJbi5wcm9wZXJ0aWVzKSx0LmN0PWEuY3QsdH19LHt9XSw5ODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4vYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vbGliIikuZmlsbFRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbyxzLGwsYyx1PXQuY2QsZj11WzBdLnRyYWNlLGg9dC5zdWJwbG90LHA9W2Uscl0sZD1bZSszNjAscl07Zm9yKHM9MDtzPHUubGVuZ3RoO3MrKylpZihjPSExLChvPXVbc10pLl9wb2x5Z29ucyl7Zm9yKGw9MDtsPG8uX3BvbHlnb25zLmxlbmd0aDtsKyspby5fcG9seWdvbnNbbF0uY29udGFpbnMocCkmJihjPSFjKSxvLl9wb2x5Z29uc1tsXS5jb250YWlucyhkKSYmKGM9IWMpO2lmKGMpYnJlYWt9aWYoYyYmbylyZXR1cm4gdC54MD10LngxPXQueGEuYzJwKG8uY3QpLHQueTA9dC55MT10LnlhLmMycChvLmN0KSx0LmluZGV4PW8uaW5kZXgsdC5sb2NhdGlvbj1vLmxvYyx0Lno9by56LHQuekxhYmVsPW4udGlja1RleHQoaC5tb2NrQXhpcyxoLm1vY2tBeGlzLmMybChvLnopLCJob3ZlciIpLnRleHQsdC5ob3ZlcnRlbXBsYXRlPW8uaG92ZXJ0ZW1wbGF0ZSxmdW5jdGlvbih0LGUscil7aWYoZS5ob3ZlcnRlbXBsYXRlKXJldHVybjt2YXIgbj1yLmhpfHxlLmhvdmVyaW5mbyxvPVN0cmluZyhyLmxvYykscz0iYWxsIj09PW4/aS5ob3ZlcmluZm8uZmxhZ3M6bi5zcGxpdCgiKyIpLGw9LTEhPT1zLmluZGV4T2YoIm5hbWUiKSxjPS0xIT09cy5pbmRleE9mKCJsb2NhdGlvbiIpLHU9LTEhPT1zLmluZGV4T2YoInoiKSxmPS0xIT09cy5pbmRleE9mKCJ0ZXh0IiksaD1bXTshbCYmYz90Lm5hbWVPdmVycmlkZT1vOihsJiYodC5uYW1lT3ZlcnJpZGU9ZS5uYW1lKSxjJiZoLnB1c2gobykpO3UmJmgucHVzaCh0LnpMYWJlbCk7ZiYmYShyLGUsaCk7dC5leHRyYVRleHQ9aC5qb2luKCI8YnI+Iil9KHQsZixvKSxbdF19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuL2F0dHJpYnV0ZXMiOjk4Mn1dLDk4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL2hlYXRtYXAvY29sb3JiYXIiKSxjYWxjOnQoIi4vY2FsYyIpLGNhbGNHZW9KU09OOnQoIi4vcGxvdCIpLmNhbGNHZW9KU09OLHBsb3Q6dCgiLi9wbG90IikucGxvdCxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJjaG9yb3BsZXRoIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nZW8iKSxjYXRlZ29yaWVzOlsiZ2VvIiwibm9PcGFjaXR5Iiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dlbyI6ODYwLCIuLi9oZWF0bWFwL2NvbG9yYmFyIjoxMDYxLCIuL2F0dHJpYnV0ZXMiOjk4MiwiLi9jYWxjIjo5ODMsIi4vZGVmYXVsdHMiOjk4NCwiLi9ldmVudF9kYXRhIjo5ODUsIi4vaG92ZXIiOjk4NiwiLi9wbG90Ijo5ODgsIi4vc2VsZWN0Ijo5ODksIi4vc3R5bGUiOjk5MH1dLDk4ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiKSxvPXQoIi4uLy4uL2xpYi90b3BvanNvbl91dGlscyIpLmdldFRvcG9qc29uRmVhdHVyZXMscz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIikuZmluZEV4dHJlbWVzLGw9dCgiLi9zdHlsZSIpLnN0eWxlO2UuZXhwb3J0cz17Y2FsY0dlb0pTT046ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dFswXS50cmFjZSxuPWVbci5nZW9dLGk9bi5fc3VicGxvdCxsPXIubG9jYXRpb25tb2RlLGM9ci5fbGVuZ3RoLHU9Imdlb2pzb24taWQiPT09bD9hLmV4dHJhY3RUcmFjZUZlYXR1cmUodCk6byhyLGkudG9wb2pzb24pLGY9W10saD1bXSxwPTA7cDxjO3ArKyl7dmFyIGQ9dFtwXSxtPSJnZW9qc29uLWlkIj09PWw/ZC5mT3V0OmEubG9jYXRpb25Ub0ZlYXR1cmUobCxkLmxvYyx1KTtpZihtKXtkLmdlb2pzb249bSxkLmN0PW0ucHJvcGVydGllcy5jdCxkLl9wb2x5Z29ucz1hLmZlYXR1cmUycG9seWdvbnMobSk7dmFyIGc9YS5jb21wdXRlQmJveChtKTtmLnB1c2goZ1swXSxnWzJdKSxoLnB1c2goZ1sxXSxnWzNdKX1lbHNlIGQuZ2VvanNvbj1udWxsfWlmKCJnZW9qc29uIj09PW4uZml0Ym91bmRzJiYiZ2VvanNvbi1pZCI9PT1sKXt2YXIgdj1hLmNvbXB1dGVCYm94KGEuZ2V0VHJhY2VHZW9qc29uKHIpKTtmPVt2WzBdLHZbMl1dLGg9W3ZbMV0sdlszXV19dmFyIHk9e3BhZGRlZDohMH07ci5fZXh0cmVtZXMubG9uPXMobi5sb25heGlzLl9heCxmLHkpLHIuX2V4dHJlbWVzLmxhdD1zKG4ubGF0YXhpcy5fYXgsaCx5KX0scGxvdDpmdW5jdGlvbih0LGUscil7dmFyIGE9ZS5sYXllcnMuYmFja3Bsb3Quc2VsZWN0KCIuY2hvcm9wbGV0aGxheWVyIik7aS5tYWtlVHJhY2VHcm91cHMoYSxyLCJ0cmFjZSBjaG9yb3BsZXRoIikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoLmNob3JvcGxldGhsb2NhdGlvbiIpLmRhdGEoaS5pZGVudGl0eSk7ci5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoImNob3JvcGxldGhsb2NhdGlvbiIsITApLHIuZXhpdCgpLnJlbW92ZSgpLGwodCxlKX0pKX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIjo3NjksIi4uLy4uL2xpYi90b3BvanNvbl91dGlscyI6ODA1LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXV0b3JhbmdlIjo4MjYsIi4vc3R5bGUiOjk5MCwiQHBsb3RseS9kMyI6NTh9XSw5ODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGEsbyxzPXQuY2QsbD10LnhheGlzLGM9dC55YXhpcyx1PVtdO2lmKCExPT09ZSlmb3Iocj0wO3I8cy5sZW5ndGg7cisrKXNbcl0uc2VsZWN0ZWQ9MDtlbHNlIGZvcihyPTA7cjxzLmxlbmd0aDtyKyspKGk9KG49c1tyXSkuY3QpJiYoYT1sLmMycChpKSxvPWMuYzJwKGkpLGUuY29udGFpbnMoW2Esb10sbnVsbCxyLHQpPyh1LnB1c2goe3BvaW50TnVtYmVyOnIsbG9uOmlbMF0sbGF0OmlbMV19KSxuLnNlbGVjdGVkPTEpOm4uc2VsZWN0ZWQ9MCk7cmV0dXJuIHV9fSx7fV0sOTkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIik7ZnVuY3Rpb24gcyh0LGUpe3ZhciByPWVbMF0udHJhY2Uscz1lWzBdLm5vZGUzLnNlbGVjdEFsbCgiLmNob3JvcGxldGhsb2NhdGlvbiIpLGw9ci5tYXJrZXJ8fHt9LGM9bC5saW5lfHx7fSx1PW8ubWFrZUNvbG9yU2NhbGVGdW5jRnJvbVRyYWNlKHIpO3MuZWFjaCgoZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuYXR0cigiZmlsbCIsdSh0LnopKS5jYWxsKGkuc3Ryb2tlLHQubWxjfHxjLmNvbG9yKS5jYWxsKGEuZGFzaExpbmUsIiIsdC5tbHd8fGMud2lkdGh8fDApLnN0eWxlKCJvcGFjaXR5IixsLm9wYWNpdHkpfSkpLGEuc2VsZWN0ZWRQb2ludFN0eWxlKHMscix0KX1lLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQsZSl7ZSYmcyh0LGUpfSxzdHlsZU9uU2VsZWN0OmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS5ub2RlMyxuPWVbMF0udHJhY2U7bi5zZWxlY3RlZHBvaW50cz9hLnNlbGVjdGVkUG9pbnRTdHlsZShyLnNlbGVjdEFsbCgiLmNob3JvcGxldGhsb2NhdGlvbiIpLG4sdCk6cyh0LGUpfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIkBwbG90bHkvZDMiOjU4fV0sOTkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2Nob3JvcGxldGgvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9cyh7bG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sZ2VvanNvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LGZlYXR1cmVpZGtleTpzKHt9LG4uZmVhdHVyZWlka2V5LHt9KSxiZWxvdzp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LHRleHQ6bi50ZXh0LGhvdmVydGV4dDpuLmhvdmVydGV4dCxtYXJrZXI6e2xpbmU6e2NvbG9yOnMoe30sbi5tYXJrZXIubGluZS5jb2xvcix7ZWRpdFR5cGU6InBsb3QifSksd2lkdGg6cyh7fSxuLm1hcmtlci5saW5lLndpZHRoLHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToiY2FsYyJ9LG9wYWNpdHk6cyh7fSxuLm1hcmtlci5vcGFjaXR5LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToiY2FsYyJ9LHNlbGVjdGVkOnttYXJrZXI6e29wYWNpdHk6cyh7fSxuLnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sdW5zZWxlY3RlZDp7bWFya2VyOntvcGFjaXR5OnMoe30sbi51bnNlbGVjdGVkLm1hcmtlci5vcGFjaXR5LHtlZGl0VHlwZToicGxvdCJ9KSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0saG92ZXJpbmZvOm4uaG92ZXJpbmZvLGhvdmVydGVtcGxhdGU6YSh7fSx7a2V5czpbInByb3BlcnRpZXMiXX0pLHNob3dsZWdlbmQ6cyh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0saSgiIix7Y0xldHRlcjoieiIsZWRpdFR5cGVPdmVycmlkZToiY2FsYyJ9KSl9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjY0NiwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vY2hvcm9wbGV0aC9hdHRyaWJ1dGVzIjo5ODJ9XSw5OTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxzPXQoIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIikubWFrZUJsYW5rLGw9dCgiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyIpO2Z1bmN0aW9uIGModCl7dmFyIGUscj10WzBdLnRyYWNlLG49ci5fb3B0cztpZihyLnNlbGVjdGVkcG9pbnRzKXtmb3IodmFyIGE9by5tYWtlU2VsZWN0ZWRQb2ludFN0eWxlRm5zKHIpLHM9MDtzPHQubGVuZ3RoO3MrKyl7dmFyIGw9dFtzXTtsLmZPdXQmJihsLmZPdXQucHJvcGVydGllcy5tbzI9YS5zZWxlY3RlZE9wYWNpdHlGbihsKSl9ZT17dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtbzIifX1lbHNlIGU9aS5pc0FycmF5T3JUeXBlZEFycmF5KHIubWFya2VyLm9wYWNpdHkpP3t0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6Im1vIn06ci5tYXJrZXIub3BhY2l0eTtyZXR1cm4gaS5leHRlbmRGbGF0KG4uZmlsbC5wYWludCx7ImZpbGwtb3BhY2l0eSI6ZX0pLGkuZXh0ZW5kRmxhdChuLmxpbmUucGFpbnQseyJsaW5lLW9wYWNpdHkiOmV9KSxufWUuZXhwb3J0cz17Y29udmVydDpmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ITA9PT1lLnZpc2libGUmJjAhPT1lLl9sZW5ndGgsbz17bGF5b3V0Ont2aXNpYmlsaXR5OiJub25lIn0scGFpbnQ6e319LHU9e2xheW91dDp7dmlzaWJpbGl0eToibm9uZSJ9LHBhaW50Ont9fSxmPWUuX29wdHM9e2ZpbGw6byxsaW5lOnUsZ2VvanNvbjpzKCl9O2lmKCFyKXJldHVybiBmO3ZhciBoPWwuZXh0cmFjdFRyYWNlRmVhdHVyZSh0KTtpZighaClyZXR1cm4gZjt2YXIgcCxkLG0sZz1hLm1ha2VDb2xvclNjYWxlRnVuY0Zyb21UcmFjZShlKSx2PWUubWFya2VyLHk9di5saW5lfHx7fTtpLmlzQXJyYXlPclR5cGVkQXJyYXkodi5vcGFjaXR5KSYmKHA9ZnVuY3Rpb24odCl7dmFyIGU9dC5tbztyZXR1cm4gbihlKT8raS5jb25zdHJhaW4oZSwwLDEpOjB9KSxpLmlzQXJyYXlPclR5cGVkQXJyYXkoeS5jb2xvcikmJihkPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1sY30pLGkuaXNBcnJheU9yVHlwZWRBcnJheSh5LndpZHRoKSYmKG09ZnVuY3Rpb24odCl7cmV0dXJuIHQubWx3fSk7Zm9yKHZhciB4PTA7eDx0Lmxlbmd0aDt4Kyspe3ZhciBiPXRbeF0sXz1iLmZPdXQ7aWYoXyl7dmFyIHc9Xy5wcm9wZXJ0aWVzO3cuZmM9ZyhiLnopLHAmJih3Lm1vPXAoYikpLGQmJih3Lm1sYz1kKGIpKSxtJiYody5tbHc9bShiKSksYi5jdD13LmN0LGIuX3BvbHlnb25zPWwuZmVhdHVyZTJwb2x5Z29ucyhfKX19dmFyIFQ9cD97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtbyJ9OnYub3BhY2l0eTtyZXR1cm4gaS5leHRlbmRGbGF0KG8ucGFpbnQseyJmaWxsLWNvbG9yIjp7dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJmYyJ9LCJmaWxsLW9wYWNpdHkiOlR9KSxpLmV4dGVuZEZsYXQodS5wYWludCx7ImxpbmUtY29sb3IiOmQ/e3R5cGU6ImlkZW50aXR5Iixwcm9wZXJ0eToibWxjIn06eS5jb2xvciwibGluZS13aWR0aCI6bT97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtbHcifTp5LndpZHRoLCJsaW5lLW9wYWNpdHkiOlR9KSxvLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIix1LmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixmLmdlb2pzb249e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczpofSxjKHQpLGZ9LGNvbnZlcnRPblNlbGVjdDpjfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvZ2VvX2xvY2F0aW9uX3V0aWxzIjo3NjksIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIjo3NzAsImZhc3QtaXNudW1lcmljIjoyNDJ9XSw5OTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9dmFyIGw9cygibG9jYXRpb25zIiksYz1zKCJ6IiksdT1zKCJnZW9qc29uIik7bi5pc0FycmF5T3JUeXBlZEFycmF5KGwpJiZsLmxlbmd0aCYmbi5pc0FycmF5T3JUeXBlZEFycmF5KGMpJiZjLmxlbmd0aCYmKCJzdHJpbmciPT10eXBlb2YgdSYmIiIhPT11fHxuLmlzUGxhaW5PYmplY3QodSkpPyhzKCJmZWF0dXJlaWRrZXkiKSxlLl9sZW5ndGg9TWF0aC5taW4obC5sZW5ndGgsYy5sZW5ndGgpLHMoImJlbG93IikscygidGV4dCIpLHMoImhvdmVydGV4dCIpLHMoImhvdmVydGVtcGxhdGUiKSxzKCJtYXJrZXIubGluZS53aWR0aCIpJiZzKCJtYXJrZXIubGluZS5jb2xvciIpLHMoIm1hcmtlci5vcGFjaXR5IiksaSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxzKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjY0OSwiLi4vLi4vbGliIjo3NzYsIi4vYXR0cmlidXRlcyI6OTkxfV0sOTk0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vaGVhdG1hcC9jb2xvcmJhciIpLGNhbGM6dCgiLi4vY2hvcm9wbGV0aC9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxob3ZlclBvaW50czp0KCIuLi9jaG9yb3BsZXRoL2hvdmVyIiksZXZlbnREYXRhOnQoIi4uL2Nob3JvcGxldGgvZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuLi9jaG9yb3BsZXRoL3NlbGVjdCIpLHN0eWxlT25TZWxlY3Q6ZnVuY3Rpb24odCxlKXtlJiZlWzBdLnRyYWNlLl9nbFRyYWNlLnVwZGF0ZU9uU2VsZWN0KGUpfSxnZXRCZWxvdzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmdldE1hcExheWVycygpLG49ci5sZW5ndGgtMjtuPj0wO24tLSl7dmFyIGk9cltuXS5pZDtpZigic3RyaW5nIj09dHlwZW9mIGkmJjA9PT1pLmluZGV4T2YoIndhdGVyIikpZm9yKHZhciBhPW4rMTthPHIubGVuZ3RoO2ErKylpZigic3RyaW5nIj09dHlwZW9mKGk9clthXS5pZCkmJi0xPT09aS5pbmRleE9mKCJwbG90bHktIikpcmV0dXJuIGl9fSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY2hvcm9wbGV0aG1hcGJveCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvbWFwYm94IiksY2F0ZWdvcmllczpbIm1hcGJveCIsImdsIiwibm9PcGFjaXR5Iiwic2hvd0xlZ2VuZCJdLG1ldGE6e2hyX25hbWU6ImNob3JvcGxldGhfbWFwYm94In19fSx7Ii4uLy4uL3Bsb3RzL21hcGJveCI6ODg0LCIuLi9jaG9yb3BsZXRoL2NhbGMiOjk4MywiLi4vY2hvcm9wbGV0aC9ldmVudF9kYXRhIjo5ODUsIi4uL2Nob3JvcGxldGgvaG92ZXIiOjk4NiwiLi4vY2hvcm9wbGV0aC9zZWxlY3QiOjk4OSwiLi4vaGVhdG1hcC9jb2xvcmJhciI6MTA2MSwiLi9hdHRyaWJ1dGVzIjo5OTEsIi4vZGVmYXVsdHMiOjk5MywiLi9wbG90Ijo5OTV9XSw5OTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb252ZXJ0IikuY29udmVydCxpPXQoIi4vY29udmVydCIpLmNvbnZlcnRPblNlbGVjdCxhPXQoIi4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiKS50cmFjZUxheWVyUHJlZml4O2Z1bmN0aW9uIG8odCxlKXt0aGlzLnR5cGU9ImNob3JvcGxldGhtYXBib3giLHRoaXMuc3VicGxvdD10LHRoaXMudWlkPWUsdGhpcy5zb3VyY2VJZD0ic291cmNlLSIrZSx0aGlzLmxheWVyTGlzdD1bWyJmaWxsIixhK2UrIi1maWxsIl0sWyJsaW5lIixhK2UrIi1saW5lIl1dLHRoaXMuYmVsb3c9bnVsbH12YXIgcz1vLnByb3RvdHlwZTtzLnVwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLl91cGRhdGUobih0KSl9LHMudXBkYXRlT25TZWxlY3Q9ZnVuY3Rpb24odCl7dGhpcy5fdXBkYXRlKGkodCkpfSxzLl91cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zdWJwbG90LHI9dGhpcy5sYXllckxpc3Qsbj1lLmJlbG93TG9va3VwWyJ0cmFjZS0iK3RoaXMudWlkXTtlLm1hcC5nZXRTb3VyY2UodGhpcy5zb3VyY2VJZCkuc2V0RGF0YSh0Lmdlb2pzb24pLG4hPT10aGlzLmJlbG93JiYodGhpcy5fcmVtb3ZlTGF5ZXJzKCksdGhpcy5fYWRkTGF5ZXJzKHQsbiksdGhpcy5iZWxvdz1uKTtmb3IodmFyIGk9MDtpPHIubGVuZ3RoO2krKyl7dmFyIGE9cltpXSxvPWFbMF0scz1hWzFdLGw9dFtvXTtlLnNldE9wdGlvbnMocywic2V0TGF5b3V0UHJvcGVydHkiLGwubGF5b3V0KSwidmlzaWJsZSI9PT1sLmxheW91dC52aXNpYmlsaXR5JiZlLnNldE9wdGlvbnMocywic2V0UGFpbnRQcm9wZXJ0eSIsbC5wYWludCl9fSxzLl9hZGRMYXllcnM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5zdWJwbG90LG49dGhpcy5sYXllckxpc3QsaT10aGlzLnNvdXJjZUlkLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIG89blthXSxzPW9bMF0sbD10W3NdO3IuYWRkTGF5ZXIoe3R5cGU6cyxpZDpvWzFdLHNvdXJjZTppLGxheW91dDpsLmxheW91dCxwYWludDpsLnBhaW50fSxlKX19LHMuX3JlbW92ZUxheWVycz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN1YnBsb3QubWFwLGU9dGhpcy5sYXllckxpc3Qscj1lLmxlbmd0aC0xO3I+PTA7ci0tKXQucmVtb3ZlTGF5ZXIoZVtyXVsxXSl9LHMuZGlzcG9zZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3VicGxvdC5tYXA7dGhpcy5fcmVtb3ZlTGF5ZXJzKCksdC5yZW1vdmVTb3VyY2UodGhpcy5zb3VyY2VJZCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0udHJhY2UsaT1uZXcgbyh0LHIudWlkKSxhPWkuc291cmNlSWQscz1uKGUpLGw9aS5iZWxvdz10LmJlbG93TG9va3VwWyJ0cmFjZS0iK3IudWlkXTtyZXR1cm4gdC5tYXAuYWRkU291cmNlKGEse3R5cGU6Imdlb2pzb24iLGRhdGE6cy5nZW9qc29ufSksaS5fYWRkTGF5ZXJzKHMsbCksZVswXS50cmFjZS5fZ2xUcmFjZT1pLGl9fSx7Ii4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiOjg4MiwiLi9jb252ZXJ0Ijo5OTJ9XSw5OTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uL21lc2gzZC9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxjPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx1Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHY6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdzp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxzaXplbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic2NhbGVkIiwiYWJzb2x1dGUiXSxlZGl0VHlwZToiY2FsYyIsZGZsdDoic2NhbGVkIn0sc2l6ZXJlZjp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyIsbWluOjB9LGFuY2hvcjp7dmFsVHlwZToiZW51bWVyYXRlZCIsZWRpdFR5cGU6ImNhbGMiLHZhbHVlczpbInRpcCIsInRhaWwiLCJjbSIsImNlbnRlciJdLGRmbHQ6ImNtIn0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxob3ZlcnRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZW1wbGF0ZTphKHtlZGl0VHlwZToiY2FsYyJ9LHtrZXlzOlsibm9ybSJdfSksdWhvdmVyZm9ybWF0OmkoInUiLDEpLHZob3ZlcmZvcm1hdDppKCJ2IiwxKSx3aG92ZXJmb3JtYXQ6aSgidyIsMSkseGhvdmVyZm9ybWF0OmkoIngiKSx5aG92ZXJmb3JtYXQ6aSgieSIpLHpob3ZlcmZvcm1hdDppKCJ6Iiksc2hvd2xlZ2VuZDpsKHt9LHMuc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfTtsKGMsbigiIix7Y29sb3JBdHRyOiJ1L3YvdyBub3JtIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkpO1sib3BhY2l0eSIsImxpZ2h0cG9zaXRpb24iLCJsaWdodGluZyJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2NbdF09b1t0XX0pKSxjLmhvdmVyaW5mbz1sKHt9LHMuaG92ZXJpbmZvLHtlZGl0VHlwZToiY2FsYyIsZmxhZ3M6WyJ4IiwieSIsInoiLCJ1IiwidiIsInciLCJub3JtIiwidGV4dCIsIm5hbWUiXSxkZmx0OiJ4K3kreitub3JtK3RleHQrbmFtZSJ9KSxjLnRyYW5zZm9ybXM9dm9pZCAwLGUuZXhwb3J0cz1jfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6ODIzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6ODMwLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL21lc2gzZC9hdHRyaWJ1dGVzIjoxMTMyfV0sOTk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUudSxpPWUudixhPWUudyxvPU1hdGgubWluKGUueC5sZW5ndGgsZS55Lmxlbmd0aCxlLnoubGVuZ3RoLHIubGVuZ3RoLGkubGVuZ3RoLGEubGVuZ3RoKSxzPS0xLzAsbD0xLzAsYz0wO2M8bztjKyspe3ZhciB1PXJbY10sZj1pW2NdLGg9YVtjXSxwPU1hdGguc3FydCh1KnUrZipmK2gqaCk7cz1NYXRoLm1heChzLHApLGw9TWF0aC5taW4obCxwKX1lLl9sZW49byxlLl9ub3JtTWF4PXMsbih0LGUse3ZhbHM6W2wsc10sY29udGFpbmVyU3RyOiIiLGNMZXR0ZXI6ImMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo2NDd9XSw5OTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtY29uZTNkIiksaT10KCJnbC1jb25lM2QiKS5jcmVhdGVDb25lTWVzaCxhPXQoIi4uLy4uL2xpYiIpLnNpbXBsZU1hcCxvPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyxsPXQoIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyIpO2Z1bmN0aW9uIGModCxlKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9ZSx0aGlzLm1lc2g9bnVsbCx0aGlzLmRhdGE9bnVsbH12YXIgdT1jLnByb3RvdHlwZTt1LmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7aWYodC5vYmplY3Q9PT10aGlzLm1lc2gpe3ZhciBlPXQuaW5kZXg9dC5kYXRhLmluZGV4LHI9dGhpcy5kYXRhLnhbZV0sbj10aGlzLmRhdGEueVtlXSxpPXRoaXMuZGF0YS56W2VdLGE9dGhpcy5kYXRhLnVbZV0sbz10aGlzLmRhdGEudltlXSxzPXRoaXMuZGF0YS53W2VdO3QudHJhY2VDb29yZGluYXRlPVtyLG4saSxhLG8scyxNYXRoLnNxcnQoYSphK28qbytzKnMpXTt2YXIgbD10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dDtyZXR1cm4gQXJyYXkuaXNBcnJheShsKSYmdm9pZCAwIT09bFtlXT90LnRleHRMYWJlbD1sW2VdOmwmJih0LnRleHRMYWJlbD1sKSwhMH19O3ZhciBmPXt4YXhpczowLHlheGlzOjEsemF4aXM6Mn0saD17dGlwOjEsdGFpbDowLGNtOi4yNSxjZW50ZXI6LjV9LHA9e3RpcDoxLHRhaWw6MSxjbTouNzUsY2VudGVyOi41fTtmdW5jdGlvbiBkKHQsZSl7dmFyIHI9dC5mdWxsU2NlbmVMYXlvdXQsaT10LmRhdGFTY2FsZSxjPXt9O2Z1bmN0aW9uIHUodCxlKXt2YXIgbj1yW2VdLG89aVtmW2VdXTtyZXR1cm4gYSh0LChmdW5jdGlvbih0KXtyZXR1cm4gbi5kMmwodCkqb30pKX1jLnZlY3RvcnM9bCh1KGUudSwieGF4aXMiKSx1KGUudiwieWF4aXMiKSx1KGUudywiemF4aXMiKSxlLl9sZW4pLGMucG9zaXRpb25zPWwodShlLngsInhheGlzIiksdShlLnksInlheGlzIiksdShlLnosInpheGlzIiksZS5fbGVuKTt2YXIgZD1zKGUpO2MuY29sb3JtYXA9byhlKSxjLnZlcnRleEludGVuc2l0eUJvdW5kcz1bZC5taW4vZS5fbm9ybU1heCxkLm1heC9lLl9ub3JtTWF4XSxjLmNvbmVPZmZzZXQ9aFtlLmFuY2hvcl0sInNjYWxlZCI9PT1lLnNpemVtb2RlP2MuY29uZVNpemU9ZS5zaXplcmVmfHwuNTpjLmNvbmVTaXplPWUuc2l6ZXJlZiYmZS5fbm9ybU1heD9lLnNpemVyZWYvZS5fbm9ybU1heDouNTt2YXIgbT1uKGMpLGc9ZS5saWdodHBvc2l0aW9uO3JldHVybiBtLmxpZ2h0UG9zaXRpb249W2cueCxnLnksZy56XSxtLmFtYmllbnQ9ZS5saWdodGluZy5hbWJpZW50LG0uZGlmZnVzZT1lLmxpZ2h0aW5nLmRpZmZ1c2UsbS5zcGVjdWxhcj1lLmxpZ2h0aW5nLnNwZWN1bGFyLG0ucm91Z2huZXNzPWUubGlnaHRpbmcucm91Z2huZXNzLG0uZnJlc25lbD1lLmxpZ2h0aW5nLmZyZXNuZWwsbS5vcGFjaXR5PWUub3BhY2l0eSxlLl9wYWQ9cFtlLmFuY2hvcl0qbS52ZWN0b3JTY2FsZSptLmNvbmVTY2FsZSplLl9ub3JtTWF4LG19dS51cGRhdGU9ZnVuY3Rpb24odCl7dGhpcy5kYXRhPXQ7dmFyIGU9ZCh0aGlzLnNjZW5lLHQpO3RoaXMubWVzaC51cGRhdGUoZSl9LHUuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLm1lc2gpLHRoaXMubWVzaC5kaXNwb3NlKCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuZ2xwbG90LmdsLG49ZCh0LGUpLGE9aShyLG4pLG89bmV3IGModCxlLnVpZCk7cmV0dXJuIG8ubWVzaD1hLG8uZGF0YT1lLGEuX3RyYWNlPW8sdC5nbHBsb3QuYWRkKGEpLG99fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciI6NzcyLCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiOjg4MCwiZ2wtY29uZTNkIjoyNTh9XSw5OTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9dmFyIGw9cygidSIpLGM9cygidiIpLHU9cygidyIpLGY9cygieCIpLGg9cygieSIpLHA9cygieiIpO2wmJmwubGVuZ3RoJiZjJiZjLmxlbmd0aCYmdSYmdS5sZW5ndGgmJmYmJmYubGVuZ3RoJiZoJiZoLmxlbmd0aCYmcCYmcC5sZW5ndGg/KHMoInNpemVyZWYiKSxzKCJzaXplbW9kZSIpLHMoImFuY2hvciIpLHMoImxpZ2h0aW5nLmFtYmllbnQiKSxzKCJsaWdodGluZy5kaWZmdXNlIikscygibGlnaHRpbmcuc3BlY3VsYXIiKSxzKCJsaWdodGluZy5yb3VnaG5lc3MiKSxzKCJsaWdodGluZy5mcmVzbmVsIikscygibGlnaHRwb3NpdGlvbi54IikscygibGlnaHRwb3NpdGlvbi55IikscygibGlnaHRwb3NpdGlvbi56IiksaSh0LGUsbyxzLHtwcmVmaXg6IiIsY0xldHRlcjoiYyJ9KSxzKCJ0ZXh0IikscygiaG92ZXJ0ZXh0IikscygiaG92ZXJ0ZW1wbGF0ZSIpLHMoInVob3ZlcmZvcm1hdCIpLHMoInZob3ZlcmZvcm1hdCIpLHMoIndob3ZlcmZvcm1hdCIpLHMoInhob3ZlcmZvcm1hdCIpLHMoInlob3ZlcmZvcm1hdCIpLHMoInpob3ZlcmZvcm1hdCIpLGUuX2xlbmd0aD1udWxsKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjQ5LCIuLi8uLi9saWIiOjc3NiwiLi9hdHRyaWJ1dGVzIjo5OTZ9XSwxZTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY29uZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwic2hvd0xlZ2VuZCJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL2NvbnZlcnQiKSxldmVudERhdGE6ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5ub3JtPWUudHJhY2VDb29yZGluYXRlWzZdLHR9LG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjg2OSwiLi9hdHRyaWJ1dGVzIjo5OTYsIi4vY2FsYyI6OTk3LCIuL2NvbnZlcnQiOjk5OCwiLi9kZWZhdWx0cyI6OTk5fV0sMTAwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiKSxpPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKSxvPWEuYXhpc0hvdmVyRm9ybWF0LHM9YS5kZXNjcmlwdGlvbk9ubHlOdW1iZXJzLGw9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZy9hdHRyaWJ1dGVzIikuZGFzaCx1PXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGY9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaD10KCIuLi8uLi9jb25zdGFudHMvZmlsdGVyX29wcyIpLHA9aC5DT01QQVJJU09OX09QUzIsZD1oLklOVEVSVkFMX09QUyxtPWkubGluZTtlLmV4cG9ydHM9Zih7ejpuLnoseDpuLngseDA6bi54MCxkeDpuLmR4LHk6bi55LHkwOm4ueTAsZHk6bi5keSx4cGVyaW9kOm4ueHBlcmlvZCx5cGVyaW9kOm4ueXBlcmlvZCx4cGVyaW9kMDppLnhwZXJpb2QwLHlwZXJpb2QwOmkueXBlcmlvZDAseHBlcmlvZGFsaWdubWVudDpuLnhwZXJpb2RhbGlnbm1lbnQseXBlcmlvZGFsaWdubWVudDpuLnlwZXJpb2RhbGlnbm1lbnQsdGV4dDpuLnRleHQsaG92ZXJ0ZXh0Om4uaG92ZXJ0ZXh0LHRyYW5zcG9zZTpuLnRyYW5zcG9zZSx4dHlwZTpuLnh0eXBlLHl0eXBlOm4ueXR5cGUseGhvdmVyZm9ybWF0Om8oIngiKSx5aG92ZXJmb3JtYXQ6bygieSIpLHpob3ZlcmZvcm1hdDpvKCJ6IiwxKSxob3ZlcnRlbXBsYXRlOm4uaG92ZXJ0ZW1wbGF0ZSxob3Zlcm9uZ2FwczpuLmhvdmVyb25nYXBzLGNvbm5lY3RnYXBzOmYoe30sbi5jb25uZWN0Z2Fwcyx7fSksZmlsbGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6ImNhbGMifSxhdXRvY29udG91cjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnsiY29udG91cnMuc3RhcnQiOnZvaWQgMCwiY29udG91cnMuZW5kIjp2b2lkIDAsImNvbnRvdXJzLnNpemUiOnZvaWQgMH19LG5jb250b3Vyczp7dmFsVHlwZToiaW50ZWdlciIsZGZsdDoxNSxtaW46MSxlZGl0VHlwZToiY2FsYyJ9LGNvbnRvdXJzOnt0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZXZlbHMiLCJjb25zdHJhaW50Il0sZGZsdDoibGV2ZWxzIixlZGl0VHlwZToiY2FsYyJ9LHN0YXJ0Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiXmF1dG9jb250b3VyIjohMX19LGVuZDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsZWRpdFR5cGU6InBsb3QiLGltcGxpZWRFZGl0czp7Il5hdXRvY29udG91ciI6ITF9fSxzaXplOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6bnVsbCxtaW46MCxlZGl0VHlwZToicGxvdCIsaW1wbGllZEVkaXRzOnsiXmF1dG9jb250b3VyIjohMX19LGNvbG9yaW5nOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmaWxsIiwiaGVhdG1hcCIsImxpbmVzIiwibm9uZSJdLGRmbHQ6ImZpbGwiLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2xpbmVzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sc2hvd2xhYmVsczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToicGxvdCJ9LGxhYmVsZm9udDp1KHtlZGl0VHlwZToicGxvdCIsY29sb3JFZGl0VHlwZToic3R5bGUifSksbGFiZWxmb3JtYXQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToicGxvdCIsZGVzY3JpcHRpb246cygiY29udG91ciBsYWJlbCIpfSxvcGVyYXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbXS5jb25jYXQocCkuY29uY2F0KGQpLGRmbHQ6Ij0iLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWU6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMiLGltcGxpZWRFZGl0czp7YXV0b2NvbnRvdXI6ITF9fSxsaW5lOntjb2xvcjpmKHt9LG0uY29sb3Ise2VkaXRUeXBlOiJzdHlsZStjb2xvcmJhcnMifSksd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InN0eWxlK2NvbG9yYmFycyJ9LGRhc2g6YyxzbW9vdGhpbmc6Zih7fSxtLnNtb290aGluZyx7fSksZWRpdFR5cGU6InBsb3QifX0sbCgiIix7Y0xldHRlcjoieiIsYXV0b0NvbG9yRGZsdDohMSxlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6NjYwLCIuLi8uLi9jb25zdGFudHMvZmlsdGVyX29wcyI6NzQ4LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo4MzAsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiOjEwNTgsIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTE5MX1dLDEwMDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksaT10KCIuLi9oZWF0bWFwL2NhbGMiKSxhPXQoIi4vc2V0X2NvbnRvdXJzIiksbz10KCIuL2VuZF9wbHVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9aSh0LGUpLHM9clswXS56O2EoZSxzKTt2YXIgbCxjPWUuY29udG91cnMsdT1uLmV4dHJhY3RPcHRzKGUpO2lmKCJoZWF0bWFwIj09PWMuY29sb3JpbmcmJnUuYXV0byYmITE9PT1lLmF1dG9jb250b3VyKXt2YXIgZj1jLnN0YXJ0LGg9byhjKSxwPWMuc2l6ZXx8MSxkPU1hdGguZmxvb3IoKGgtZikvcCkrMTtpc0Zpbml0ZShwKXx8KHA9MSxkPTEpO3ZhciBtPWYtcC8yO2w9W20sbStkKnBdfWVsc2UgbD1zO3JldHVybiBuLmNhbGModCxlLHt2YWxzOmwsY0xldHRlcjoieiJ9KSxyfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi4vaGVhdG1hcC9jYWxjIjoxMDU5LCIuL2VuZF9wbHVzIjoxMDEyLCIuL3NldF9jb250b3VycyI6MTAyMH1dLDEwMDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsbj10WzBdLGk9bi56O3N3aXRjaChlLnR5cGUpe2Nhc2UibGV2ZWxzIjp2YXIgYT1NYXRoLm1pbihpWzBdWzBdLGlbMF1bMV0pO2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBvPXRbcl07by5wcmVmaXhCb3VuZGFyeT0hby5lZGdlcGF0aHMubGVuZ3RoJiYoYT5vLmxldmVsfHxvLnN0YXJ0cy5sZW5ndGgmJmE9PT1vLmxldmVsKX1icmVhaztjYXNlImNvbnN0cmFpbnQiOmlmKG4ucHJlZml4Qm91bmRhcnk9ITEsbi5lZGdlcGF0aHMubGVuZ3RoKXJldHVybjt2YXIgcz1uLngubGVuZ3RoLGw9bi55Lmxlbmd0aCxjPS0xLzAsdT0xLzA7Zm9yKHI9MDtyPGw7cisrKXU9TWF0aC5taW4odSxpW3JdWzBdKSx1PU1hdGgubWluKHUsaVtyXVtzLTFdKSxjPU1hdGgubWF4KGMsaVtyXVswXSksYz1NYXRoLm1heChjLGlbcl1bcy0xXSk7Zm9yKHI9MTtyPHMtMTtyKyspdT1NYXRoLm1pbih1LGlbMF1bcl0pLHU9TWF0aC5taW4odSxpW2wtMV1bcl0pLGM9TWF0aC5tYXgoYyxpWzBdW3JdKSxjPU1hdGgubWF4KGMsaVtsLTFdW3JdKTt2YXIgZixoLHA9ZS52YWx1ZTtzd2l0Y2goZS5fb3BlcmF0aW9uKXtjYXNlIj4iOnA+YyYmKG4ucHJlZml4Qm91bmRhcnk9ITApO2JyZWFrO2Nhc2UiPCI6KHA8dXx8bi5zdGFydHMubGVuZ3RoJiZwPT09dSkmJihuLnByZWZpeEJvdW5kYXJ5PSEwKTticmVhaztjYXNlIltdIjpmPU1hdGgubWluKHBbMF0scFsxXSksKChoPU1hdGgubWF4KHBbMF0scFsxXSkpPHV8fGY+Y3x8bi5zdGFydHMubGVuZ3RoJiZoPT09dSkmJihuLnByZWZpeEJvdW5kYXJ5PSEwKTticmVhaztjYXNlIl1bIjpmPU1hdGgubWluKHBbMF0scFsxXSksaD1NYXRoLm1heChwWzBdLHBbMV0pLGY8dSYmaD5jJiYobi5wcmVmaXhCb3VuZGFyeT0hMCl9fX19LHt9XSwxMDA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLGk9dCgiLi9tYWtlX2NvbG9yX21hcCIpLGE9dCgiLi9lbmRfcGx1cyIpO2UuZXhwb3J0cz17bWluOiJ6bWluIixtYXg6InptYXgiLGNhbGM6ZnVuY3Rpb24odCxlLHIpe3ZhciBvPWUuY29udG91cnMscz1lLmxpbmUsbD1vLnNpemV8fDEsYz1vLmNvbG9yaW5nLHU9aShlLHtpc0NvbG9yYmFyOiEwfSk7aWYoImhlYXRtYXAiPT09Yyl7dmFyIGY9bi5leHRyYWN0T3B0cyhlKTtyLl9maWxsZ3JhZGllbnQ9Zi5yZXZlcnNlc2NhbGU/bi5mbGlwU2NhbGUoZi5jb2xvcnNjYWxlKTpmLmNvbG9yc2NhbGUsci5fenJhbmdlPVtmLm1pbixmLm1heF19ZWxzZSJmaWxsIj09PWMmJihyLl9maWxsY29sb3I9dSk7ci5fbGluZT17Y29sb3I6ImxpbmVzIj09PWM/dTpzLmNvbG9yLHdpZHRoOiExIT09by5zaG93bGluZXM/cy53aWR0aDowLGRhc2g6cy5kYXNofSxyLl9sZXZlbHM9e3N0YXJ0Om8uc3RhcnQsZW5kOmEobyksc2l6ZTpsfX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuL2VuZF9wbHVzIjoxMDEyLCIuL21ha2VfY29sb3JfbWFwIjoxMDE3fV0sMTAwNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e0JPVFRPTVNUQVJUOlsxLDksMTMsMTA0LDcxM10sVE9QU1RBUlQ6WzQsNiw3LDEwNCw3MTNdLExFRlRTVEFSVDpbOCwxMiwxNCwyMDgsMTExNF0sUklHSFRTVEFSVDpbMiwzLDExLDIwOCwxMTE0XSxORVdERUxUQTpbbnVsbCxbLTEsMF0sWzAsLTFdLFstMSwwXSxbMSwwXSxudWxsLFswLC0xXSxbLTEsMF0sWzAsMV0sWzAsMV0sbnVsbCxbMCwxXSxbMSwwXSxbMSwwXSxbMCwtMV1dLENIT09TRVNBRERMRTp7MTA0Ols0LDFdLDIwODpbMiw4XSw3MTM6WzcsMTNdLDExMTQ6WzExLDE0XX0sU0FERExFUkVNQUlOREVSOnsxOjQsMjo4LDQ6MSw3OjEzLDg6MiwxMToxNCwxMzo3LDE0OjExfSxMQUJFTERJU1RBTkNFOjIsTEFCRUxJTkNSRUFTRToxMCxMQUJFTE1JTjozLExBQkVMTUFYOjEwLExBQkVMT1BUSU1JWkVSOntFREdFQ09TVDoxLEFOR0xFQ09TVDoxLE5FSUdIQk9SQ09TVDo1LFNBTUVMRVZFTEZBQ1RPUjoxMCxTQU1FTEVWRUxESVNUQU5DRTo1LE1BWENPU1Q6MTAwLElOSVRJQUxTRUFSQ0hQT0lOVFM6MTAsSVRFUkFUSU9OUzo1fX19LHt9XSwxMDA2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuL2xhYmVsX2RlZmF1bHRzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz1hLmFkZE9wYWNpdHkscz1hLm9wYWNpdHksbD10KCIuLi8uLi9jb25zdGFudHMvZmlsdGVyX29wcyIpLGM9bC5DT05TVFJBSU5UX1JFRFVDVElPTix1PWwuQ09NUEFSSVNPTl9PUFMyO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLGwsZil7dmFyIGgscCxkLG09ZS5jb250b3VycyxnPXIoImNvbnRvdXJzLm9wZXJhdGlvbiIpOyhtLl9vcGVyYXRpb249Y1tnXSxmdW5jdGlvbih0LGUpe3ZhciByOy0xPT09dS5pbmRleE9mKGUub3BlcmF0aW9uKT8odCgiY29udG91cnMudmFsdWUiLFswLDFdKSxBcnJheS5pc0FycmF5KGUudmFsdWUpP2UudmFsdWUubGVuZ3RoPjI/ZS52YWx1ZT1lLnZhbHVlLnNsaWNlKDIpOjA9PT1lLmxlbmd0aD9lLnZhbHVlPVswLDFdOmUubGVuZ3RoPDI/KHI9cGFyc2VGbG9hdChlLnZhbHVlWzBdKSxlLnZhbHVlPVtyLHIrMV0pOmUudmFsdWU9W3BhcnNlRmxvYXQoZS52YWx1ZVswXSkscGFyc2VGbG9hdChlLnZhbHVlWzFdKV06bihlLnZhbHVlKSYmKHI9cGFyc2VGbG9hdChlLnZhbHVlKSxlLnZhbHVlPVtyLHIrMV0pKToodCgiY29udG91cnMudmFsdWUiLDApLG4oZS52YWx1ZSl8fChBcnJheS5pc0FycmF5KGUudmFsdWUpP2UudmFsdWU9cGFyc2VGbG9hdChlLnZhbHVlWzBdKTplLnZhbHVlPTApKX0ocixtKSwiPSI9PT1nP2g9bS5zaG93bGluZXM9ITA6KGg9cigiY29udG91cnMuc2hvd2xpbmVzIiksZD1yKCJmaWxsY29sb3IiLG8oKHQubGluZXx8e30pLmNvbG9yfHxsLC41KSkpLGgpJiYocD1yKCJsaW5lLmNvbG9yIixkJiZzKGQpP28oZS5maWxsY29sb3IsMSk6bCkscigibGluZS53aWR0aCIsMikscigibGluZS5kYXNoIikpO3IoImxpbmUuc21vb3RoaW5nIiksaShyLGEscCxmKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb25zdGFudHMvZmlsdGVyX29wcyI6NzQ4LCIuL2xhYmVsX2RlZmF1bHRzIjoxMDE2LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sMTAwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb25zdGFudHMvZmlsdGVyX29wcyIpLGk9dCgiZmFzdC1pc251bWVyaWMiKTtmdW5jdGlvbiBhKHQsZSl7dmFyIHIsYT1BcnJheS5pc0FycmF5KGUpO2Z1bmN0aW9uIG8odCl7cmV0dXJuIGkodCk/K3Q6bnVsbH1yZXR1cm4tMSE9PW4uQ09NUEFSSVNPTl9PUFMyLmluZGV4T2YodCk/cj1vKGE/ZVswXTplKTotMSE9PW4uSU5URVJWQUxfT1BTLmluZGV4T2YodCk/cj1hP1tvKGVbMF0pLG8oZVsxXSldOltvKGUpLG8oZSldOi0xIT09bi5TRVRfT1BTLmluZGV4T2YodCkmJihyPWE/ZS5tYXAobyk6W28oZSldKSxyfWZ1bmN0aW9uIG8odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2U9YSh0LGUpO3ZhciByPU1hdGgubWluKGVbMF0sZVsxXSksbj1NYXRoLm1heChlWzBdLGVbMV0pO3JldHVybntzdGFydDpyLGVuZDpuLHNpemU6bi1yfX19ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJue3N0YXJ0OmU9YSh0LGUpLGVuZDoxLzAsc2l6ZToxLzB9fX1lLmV4cG9ydHM9eyJbXSI6bygiW10iKSwiXVsiOm8oIl1bIiksIj4iOnMoIj4iKSwiPCI6cygiPCIpLCI9IjpzKCI9Iil9fSx7Ii4uLy4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIjo3NDgsImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMDA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1uKCJjb250b3Vycy5zdGFydCIpLGE9bigiY29udG91cnMuZW5kIiksbz0hMT09PWl8fCExPT09YSxzPXIoImNvbnRvdXJzLnNpemUiKTshKG8/ZS5hdXRvY29udG91cj0hMDpyKCJhdXRvY29udG91ciIsITEpKSYmc3x8cigibmNvbnRvdXJzIil9fSx7fV0sMTAwOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtmdW5jdGlvbiBpKHQpe3JldHVybiBuLmV4dGVuZEZsYXQoe30sdCx7ZWRnZXBhdGhzOm4uZXh0ZW5kRGVlcChbXSx0LmVkZ2VwYXRocykscGF0aHM6bi5leHRlbmREZWVwKFtdLHQucGF0aHMpLHN0YXJ0czpuLmV4dGVuZERlZXAoW10sdC5zdGFydHMpfSl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxvLHM9ZnVuY3Rpb24odCl7cmV0dXJuIHQucmV2ZXJzZSgpfSxsPWZ1bmN0aW9uKHQpe3JldHVybiB0fTtzd2l0Y2goZSl7Y2FzZSI9IjpjYXNlIjwiOnJldHVybiB0O2Nhc2UiPiI6Zm9yKDEhPT10Lmxlbmd0aCYmbi53YXJuKCJDb250b3VyIGRhdGEgaW52YWxpZCBmb3IgdGhlIHNwZWNpZmllZCBpbmVxdWFsaXR5IG9wZXJhdGlvbi4iKSxhPXRbMF0scj0wO3I8YS5lZGdlcGF0aHMubGVuZ3RoO3IrKylhLmVkZ2VwYXRoc1tyXT1zKGEuZWRnZXBhdGhzW3JdKTtmb3Iocj0wO3I8YS5wYXRocy5sZW5ndGg7cisrKWEucGF0aHNbcl09cyhhLnBhdGhzW3JdKTtmb3Iocj0wO3I8YS5zdGFydHMubGVuZ3RoO3IrKylhLnN0YXJ0c1tyXT1zKGEuc3RhcnRzW3JdKTtyZXR1cm4gdDtjYXNlIl1bIjp2YXIgYz1zO3M9bCxsPWM7Y2FzZSJbXSI6Zm9yKDIhPT10Lmxlbmd0aCYmbi53YXJuKCJDb250b3VyIGRhdGEgaW52YWxpZCBmb3IgdGhlIHNwZWNpZmllZCBpbmVxdWFsaXR5IHJhbmdlIG9wZXJhdGlvbi4iKSxhPWkodFswXSksbz1pKHRbMV0pLHI9MDtyPGEuZWRnZXBhdGhzLmxlbmd0aDtyKyspYS5lZGdlcGF0aHNbcl09cyhhLmVkZ2VwYXRoc1tyXSk7Zm9yKHI9MDtyPGEucGF0aHMubGVuZ3RoO3IrKylhLnBhdGhzW3JdPXMoYS5wYXRoc1tyXSk7Zm9yKHI9MDtyPGEuc3RhcnRzLmxlbmd0aDtyKyspYS5zdGFydHNbcl09cyhhLnN0YXJ0c1tyXSk7Zm9yKDtvLmVkZ2VwYXRocy5sZW5ndGg7KWEuZWRnZXBhdGhzLnB1c2gobChvLmVkZ2VwYXRocy5zaGlmdCgpKSk7Zm9yKDtvLnBhdGhzLmxlbmd0aDspYS5wYXRocy5wdXNoKGwoby5wYXRocy5zaGlmdCgpKSk7Zm9yKDtvLnN0YXJ0cy5sZW5ndGg7KWEuc3RhcnRzLnB1c2gobChvLnN0YXJ0cy5zaGlmdCgpKSk7cmV0dXJuW2FdfX19LHsiLi4vLi4vbGliIjo3NzZ9XSwxMDEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vaGVhdG1hcC94eXpfZGVmYXVsdHMiKSxhPXQoIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIiksbz10KCIuL2NvbnN0cmFpbnRfZGVmYXVsdHMiKSxzPXQoIi4vY29udG91cnNfZGVmYXVsdHMiKSxsPXQoIi4vc3R5bGVfZGVmYXVsdHMiKSxjPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscix1KXtmdW5jdGlvbiBmKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxjLHIsaSl9aWYoaSh0LGUsZix1KSl7YSh0LGUsdSxmKSxmKCJ4aG92ZXJmb3JtYXQiKSxmKCJ5aG92ZXJmb3JtYXQiKSxmKCJ0ZXh0IiksZigiaG92ZXJ0ZXh0IiksZigiaG92ZXJ0ZW1wbGF0ZSIpLGYoImhvdmVyb25nYXBzIik7dmFyIGg9ImNvbnN0cmFpbnQiPT09ZigiY29udG91cnMudHlwZSIpO2YoImNvbm5lY3RnYXBzIixuLmlzQXJyYXkxRChlLnopKSxoP28odCxlLGYsdSxyKToocyh0LGUsZiwoZnVuY3Rpb24ocil7cmV0dXJuIG4uY29lcmNlMih0LGUsYyxyKX0pKSxsKHQsZSxmLHUpKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3NzYsIi4uL2hlYXRtYXAveHl6X2RlZmF1bHRzIjoxMDcyLCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyI6MTIxMSwiLi9hdHRyaWJ1dGVzIjoxMDAxLCIuL2NvbnN0cmFpbnRfZGVmYXVsdHMiOjEwMDYsIi4vY29udG91cnNfZGVmYXVsdHMiOjEwMDgsIi4vc3R5bGVfZGVmYXVsdHMiOjEwMjJ9XSwxMDExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9jb25zdHJhaW50X21hcHBpbmciKSxhPXQoIi4vZW5kX3BsdXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbz0iY29uc3RyYWludCI9PT10LnR5cGU/aVt0Ll9vcGVyYXRpb25dKHQudmFsdWUpOnQscz1vLnNpemUsbD1bXSxjPWEobyksdT1yLnRyYWNlLl9jYXJwZXRUcmFjZSxmPXU/e3hheGlzOnUuYWF4aXMseWF4aXM6dS5iYXhpcyx4OnIuYSx5OnIuYn06e3hheGlzOmUueGF4aXMseWF4aXM6ZS55YXhpcyx4OnIueCx5OnIueX0saD1vLnN0YXJ0O2g8YztoKz1zKWlmKGwucHVzaChuLmV4dGVuZEZsYXQoe2xldmVsOmgsY3Jvc3NpbmdzOnt9LHN0YXJ0czpbXSxlZGdlcGF0aHM6W10scGF0aHM6W10sejpyLnosc21vb3RoaW5nOnIudHJhY2UubGluZS5zbW9vdGhpbmd9LGYpKSxsLmxlbmd0aD4xZTMpe24ud2FybigiVG9vIG1hbnkgY29udG91cnMsIGNsaXBwaW5nIGF0IDEwMDAiLHQpO2JyZWFrfXJldHVybiBsfX0seyIuLi8uLi9saWIiOjc3NiwiLi9jb25zdHJhaW50X21hcHBpbmciOjEwMDcsIi4vZW5kX3BsdXMiOjEwMTJ9XSwxMDEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtyZXR1cm4gdC5lbmQrdC5zaXplLzFlNn19LHt9XSwxMDEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9jb25zdGFudHMiKTtmdW5jdGlvbiBhKHQsZSxyLG4pe3JldHVybiBNYXRoLmFicyh0WzBdLWVbMF0pPHImJk1hdGguYWJzKHRbMV0tZVsxXSk8bn1mdW5jdGlvbiBvKHQsZSxyLG8sbCl7dmFyIGMsdT1lLmpvaW4oIiwiKSxmPXQuY3Jvc3NpbmdzW3VdLGg9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPTAsYT0wO3Q+MjAmJmU/MjA4PT09dHx8MTExND09PXQ/bj0wPT09clswXT8xOi0xOmE9MD09PXJbMV0/MTotMTotMSE9PWkuQk9UVE9NU1RBUlQuaW5kZXhPZih0KT9hPTE6LTEhPT1pLkxFRlRTVEFSVC5pbmRleE9mKHQpP249MTotMSE9PWkuVE9QU1RBUlQuaW5kZXhPZih0KT9hPS0xOm49LTE7cmV0dXJuW24sYV19KGYscixlKSxwPVtzKHQsZSxbLWhbMF0sLWhbMV1dKV0sZD10LnoubGVuZ3RoLG09dC56WzBdLmxlbmd0aCxnPWUuc2xpY2UoKSx2PWguc2xpY2UoKTtmb3IoYz0wO2M8MWU0O2MrKyl7aWYoZj4yMD8oZj1pLkNIT09TRVNBRERMRVtmXVsoaFswXXx8aFsxXSk8MD8wOjFdLHQuY3Jvc3NpbmdzW3VdPWkuU0FERExFUkVNQUlOREVSW2ZdKTpkZWxldGUgdC5jcm9zc2luZ3NbdV0sIShoPWkuTkVXREVMVEFbZl0pKXtuLmxvZygiRm91bmQgYmFkIG1hcmNoaW5nIGluZGV4OiIsZixlLHQubGV2ZWwpO2JyZWFrfXAucHVzaChzKHQsZSxoKSksZVswXSs9aFswXSxlWzFdKz1oWzFdLHU9ZS5qb2luKCIsIiksYShwW3AubGVuZ3RoLTFdLHBbcC5sZW5ndGgtMl0sbyxsKSYmcC5wb3AoKTt2YXIgeT1oWzBdJiYoZVswXTwwfHxlWzBdPm0tMil8fGhbMV0mJihlWzFdPDB8fGVbMV0+ZC0yKTtpZihlWzBdPT09Z1swXSYmZVsxXT09PWdbMV0mJmhbMF09PT12WzBdJiZoWzFdPT09dlsxXXx8ciYmeSlicmVhaztmPXQuY3Jvc3NpbmdzW3VdfTFlND09PWMmJm4ubG9nKCJJbmZpbml0ZSBsb29wIGluIGNvbnRvdXI/Iik7dmFyIHgsYixfLHcsVCxrLEEsTSxTLEUsTCxDLFAsSSxPLHo9YShwWzBdLHBbcC5sZW5ndGgtMV0sbyxsKSxEPTAsUj0uMip0LnNtb290aGluZyxGPVtdLEI9MDtmb3IoYz0xO2M8cC5sZW5ndGg7YysrKUM9cFtjXSxQPXBbYy0xXSxJPXZvaWQgMCxPPXZvaWQgMCxJPUNbMl0tUFsyXSxPPUNbM10tUFszXSxEKz1BPU1hdGguc3FydChJKkkrTypPKSxGLnB1c2goQSk7dmFyIE49RC9GLmxlbmd0aCpSO2Z1bmN0aW9uIGoodCl7cmV0dXJuIHBbdCVwLmxlbmd0aF19Zm9yKGM9cC5sZW5ndGgtMjtjPj1CO2MtLSlpZigoeD1GW2NdKTxOKXtmb3IoXz0wLGI9Yy0xO2I+PUImJngrRltiXTxOO2ItLSl4Kz1GW2JdO2lmKHomJmM9PT1wLmxlbmd0aC0yKWZvcihfPTA7XzxiJiZ4K0ZbX108TjtfKyspeCs9RltfXTtUPWMtYitfKzEsaz1NYXRoLmZsb29yKChjK2IrXysyKS8yKSx3PXp8fGMhPT1wLmxlbmd0aC0yP3p8fC0xIT09Yj9UJTI/aihrKTpbKGooaylbMF0raihrKzEpWzBdKS8yLChqKGspWzFdK2ooaysxKVsxXSkvMl06cFswXTpwW3AubGVuZ3RoLTFdLHAuc3BsaWNlKGIrMSxjLWIrMSx3KSxjPWIrMSxfJiYoQj1fKSx6JiYoYz09PXAubGVuZ3RoLTI/cFtfXT1wW3AubGVuZ3RoLTFdOjA9PT1jJiYocFtwLmxlbmd0aC0xXT1wWzBdKSl9Zm9yKHAuc3BsaWNlKDAsQiksYz0wO2M8cC5sZW5ndGg7YysrKXBbY10ubGVuZ3RoPTI7aWYoIShwLmxlbmd0aDwyKSlpZih6KXAucG9wKCksdC5wYXRocy5wdXNoKHApO2Vsc2V7cnx8bi5sb2coIlVuY2xvc2VkIGludGVyaW9yIGNvbnRvdXI/Iix0LmxldmVsLGcuam9pbigiLCIpLHAuam9pbigiTCIpKTt2YXIgVT0hMTtmb3IoTT0wO008dC5lZGdlcGF0aHMubGVuZ3RoO00rKylpZihFPXQuZWRnZXBhdGhzW01dLCFVJiZhKEVbMF0scFtwLmxlbmd0aC0xXSxvLGwpKXtwLnBvcCgpLFU9ITA7dmFyIFY9ITE7Zm9yKFM9MDtTPHQuZWRnZXBhdGhzLmxlbmd0aDtTKyspaWYoYSgoTD10LmVkZ2VwYXRoc1tTXSlbTC5sZW5ndGgtMV0scFswXSxvLGwpKXtWPSEwLHAuc2hpZnQoKSx0LmVkZ2VwYXRocy5zcGxpY2UoTSwxKSxTPT09TT90LnBhdGhzLnB1c2gocC5jb25jYXQoTCkpOihTPk0mJlMtLSx0LmVkZ2VwYXRoc1tTXT1MLmNvbmNhdChwLEUpKTticmVha31WfHwodC5lZGdlcGF0aHNbTV09cC5jb25jYXQoRSkpfWZvcihNPTA7TTx0LmVkZ2VwYXRocy5sZW5ndGgmJiFVO00rKylhKChFPXQuZWRnZXBhdGhzW01dKVtFLmxlbmd0aC0xXSxwWzBdLG8sbCkmJihwLnNoaWZ0KCksdC5lZGdlcGF0aHNbTV09RS5jb25jYXQocCksVT0hMCk7VXx8dC5lZGdlcGF0aHMucHVzaChwKX19ZnVuY3Rpb24gcyh0LGUscil7dmFyIG49ZVswXStNYXRoLm1heChyWzBdLDApLGk9ZVsxXStNYXRoLm1heChyWzFdLDApLGE9dC56W2ldW25dLG89dC54YXhpcyxzPXQueWF4aXM7aWYoclsxXSl7dmFyIGw9KHQubGV2ZWwtYSkvKHQueltpXVtuKzFdLWEpO3JldHVybltvLmMycCgoMS1sKSp0Lnhbbl0rbCp0LnhbbisxXSwhMCkscy5jMnAodC55W2ldLCEwKSxuK2wsaV19dmFyIGM9KHQubGV2ZWwtYSkvKHQueltpKzFdW25dLWEpO3JldHVybltvLmMycCh0Lnhbbl0sITApLHMuYzJwKCgxLWMpKnQueVtpXStjKnQueVtpKzFdLCEwKSxuLGkrY119ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaSxhLHMsbDtmb3IoZT1lfHwuMDEscj1yfHwuMDEsYT0wO2E8dC5sZW5ndGg7YSsrKXtmb3Iocz10W2FdLGw9MDtsPHMuc3RhcnRzLmxlbmd0aDtsKyspbyhzLHMuc3RhcnRzW2xdLCJlZGdlIixlLHIpO2ZvcihpPTA7T2JqZWN0LmtleXMocy5jcm9zc2luZ3MpLmxlbmd0aCYmaTwxZTQ7KWkrKyxvKHMsT2JqZWN0LmtleXMocy5jcm9zc2luZ3MpWzBdLnNwbGl0KCIsIikubWFwKE51bWJlciksdm9pZCAwLGUscik7MWU0PT09aSYmbi5sb2coIkluZmluaXRlIGxvb3AgaW4gY29udG91cj8iKX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2NvbnN0YW50cyI6MTAwNX1dLDEwMTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vaGVhdG1hcC9ob3ZlciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLG8pe298fChvPXt9KSxvLmlzQ29udG91cj0hMDt2YXIgcz1pKHQsZSxyLGEsbyk7cmV0dXJuIHMmJnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC50cmFjZTsiY29uc3RyYWludCI9PT1lLmNvbnRvdXJzLnR5cGUmJihlLmZpbGxjb2xvciYmbi5vcGFjaXR5KGUuZmlsbGNvbG9yKT90LmNvbG9yPW4uYWRkT3BhY2l0eShlLmZpbGxjb2xvciwxKTplLmNvbnRvdXJzLnNob3dsaW5lcyYmbi5vcGFjaXR5KGUubGluZS5jb2xvcikmJih0LmNvbG9yPW4uYWRkT3BhY2l0eShlLmxpbmUuY29sb3IsMSkpKX0pKSxzfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uL2hlYXRtYXAvaG92ZXIiOjEwNjV9XSwxMDE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLnBsb3Qsc3R5bGU6dCgiLi9zdHlsZSIpLGNvbG9yYmFyOnQoIi4vY29sb3JiYXIiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImNvbnRvdXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsImNvbnRvdXIiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo4NDEsIi4vYXR0cmlidXRlcyI6MTAwMSwiLi9jYWxjIjoxMDAyLCIuL2NvbG9yYmFyIjoxMDA0LCIuL2RlZmF1bHRzIjoxMDEwLCIuL2hvdmVyIjoxMDE0LCIuL3Bsb3QiOjEwMTksIi4vc3R5bGUiOjEwMjF9XSwxMDE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXtpZihpfHwoaT17fSksdCgiY29udG91cnMuc2hvd2xhYmVscyIpKXt2YXIgYT1lLmZvbnQ7bi5jb2VyY2VGb250KHQsImNvbnRvdXJzLmxhYmVsZm9udCIse2ZhbWlseTphLmZhbWlseSxzaXplOmEuc2l6ZSxjb2xvcjpyfSksdCgiY29udG91cnMubGFiZWxmb3JtYXQiKX0hMSE9PWkuaGFzSG92ZXImJnQoInpob3ZlcmZvcm1hdCIpfX0seyIuLi8uLi9saWIiOjc3Nn1dLDEwMTc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksYT10KCIuL2VuZF9wbHVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPXQuY29udG91cnMscj1lLnN0YXJ0LG89YShlKSxzPWUuc2l6ZXx8MSxsPU1hdGguZmxvb3IoKG8tcikvcykrMSxjPSJsaW5lcyI9PT1lLmNvbG9yaW5nPzA6MSx1PWkuZXh0cmFjdE9wdHModCk7aXNGaW5pdGUocyl8fChzPTEsbD0xKTt2YXIgZixoLHA9dS5yZXZlcnNlc2NhbGU/aS5mbGlwU2NhbGUodS5jb2xvcnNjYWxlKTp1LmNvbG9yc2NhbGUsZD1wLmxlbmd0aCxtPW5ldyBBcnJheShkKSxnPW5ldyBBcnJheShkKTtpZigiaGVhdG1hcCI9PT1lLmNvbG9yaW5nKXt2YXIgdj11Lm1pbix5PXUubWF4O2ZvcihoPTA7aDxkO2grKylmPXBbaF0sbVtoXT1mWzBdKih5LXYpK3YsZ1toXT1mWzFdO3ZhciB4PW4uZXh0ZW50KFt2LHksZS5zdGFydCxlLnN0YXJ0K3MqKGwtMSldKSxiPXhbdjx5PzA6MV0sXz14W3Y8eT8xOjBdO2IhPT12JiYobS5zcGxpY2UoMCwwLGIpLGcuc3BsaWNlKDAsMCxnWzBdKSksXyE9PXkmJihtLnB1c2goXyksZy5wdXNoKGdbZy5sZW5ndGgtMV0pKX1lbHNlIGZvcihoPTA7aDxkO2grKylmPXBbaF0sbVtoXT0oZlswXSoobCtjLTEpLWMvMikqcytyLGdbaF09ZlsxXTtyZXR1cm4gaS5tYWtlQ29sb3JTY2FsZUZ1bmMoe2RvbWFpbjptLHJhbmdlOmd9LHtub051bWVyaWNDaGVjazohMH0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi9lbmRfcGx1cyI6MTAxMiwiQHBsb3RseS9kMyI6NTh9XSwxMDE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIik7ZnVuY3Rpb24gaSh0LGUpe3ZhciByPShlWzBdWzBdPnQ/MDoxKSsoZVswXVsxXT50PzA6MikrKGVbMV1bMV0+dD8wOjQpKyhlWzFdWzBdPnQ/MDo4KTtyZXR1cm4gNT09PXJ8fDEwPT09cj90PihlWzBdWzBdK2VbMF1bMV0rZVsxXVswXStlWzFdWzFdKS80PzU9PT1yPzcxMzoxMTE0OjU9PT1yPzEwNDoyMDg6MTU9PT1yPzA6cn1lLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGUscixhLG8scyxsLGMsdSxmLGg9dFswXS56LHA9aC5sZW5ndGgsZD1oWzBdLmxlbmd0aCxtPTI9PT1wfHwyPT09ZDtmb3Iocj0wO3I8cC0xO3IrKylmb3Iobz1bXSwwPT09ciYmKG89by5jb25jYXQobi5CT1RUT01TVEFSVCkpLHI9PT1wLTImJihvPW8uY29uY2F0KG4uVE9QU1RBUlQpKSxlPTA7ZTxkLTE7ZSsrKWZvcihhPW8uc2xpY2UoKSwwPT09ZSYmKGE9YS5jb25jYXQobi5MRUZUU1RBUlQpKSxlPT09ZC0yJiYoYT1hLmNvbmNhdChuLlJJR0hUU1RBUlQpKSxzPWUrIiwiK3IsbD1bW2hbcl1bZV0saFtyXVtlKzFdXSxbaFtyKzFdW2VdLGhbcisxXVtlKzFdXV0sZj0wO2Y8dC5sZW5ndGg7ZisrKShjPWkoKHU9dFtmXSkubGV2ZWwsbCkpJiYodS5jcm9zc2luZ3Nbc109YywtMSE9PWEuaW5kZXhPZihjKSYmKHUuc3RhcnRzLnB1c2goW2Uscl0pLG0mJi0xIT09YS5pbmRleE9mKGMsYS5pbmRleE9mKGMpKzEpJiZ1LnN0YXJ0cy5wdXNoKFtlLHJdKSkpfX0seyIuL2NvbnN0YW50cyI6MTAwNX1dLDEwMTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHM9dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIiksbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3NldF9jb252ZXJ0IiksdT10KCIuLi9oZWF0bWFwL3Bsb3QiKSxmPXQoIi4vbWFrZV9jcm9zc2luZ3MiKSxoPXQoIi4vZmluZF9hbGxfcGF0aHMiKSxwPXQoIi4vZW1wdHlfcGF0aGluZm8iKSxkPXQoIi4vY29udmVydF90b19jb25zdHJhaW50cyIpLG09dCgiLi9jbG9zZV9ib3VuZGFyaWVzIiksZz10KCIuL2NvbnN0YW50cyIpLHY9Zy5MQUJFTE9QVElNSVpFUjtmdW5jdGlvbiB5KHQsZSl7dmFyIHIsbixvLHMsbCxjLHUsZj0iIixoPTAscD10LmVkZ2VwYXRocy5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSksZD0hMDtmdW5jdGlvbiBtKHQpe3JldHVybiBNYXRoLmFicyh0WzFdLWVbMl1bMV0pPC4wMX1mdW5jdGlvbiBnKHQpe3JldHVybiBNYXRoLmFicyh0WzBdLWVbMF1bMF0pPC4wMX1mdW5jdGlvbiB2KHQpe3JldHVybiBNYXRoLmFicyh0WzBdLWVbMl1bMF0pPC4wMX1mb3IoO3AubGVuZ3RoOyl7Zm9yKGM9YS5zbW9vdGhvcGVuKHQuZWRnZXBhdGhzW2hdLHQuc21vb3RoaW5nKSxmKz1kP2M6Yy5yZXBsYWNlKC9eTS8sIkwiKSxwLnNwbGljZShwLmluZGV4T2YoaCksMSkscj10LmVkZ2VwYXRoc1toXVt0LmVkZ2VwYXRoc1toXS5sZW5ndGgtMV0scz0tMSxvPTA7bzw0O28rKyl7aWYoIXIpe2kubG9nKCJNaXNzaW5nIGVuZD8iLGgsdCk7YnJlYWt9Zm9yKHU9cixNYXRoLmFicyh1WzFdLWVbMF1bMV0pPC4wMSYmIXYocik/bj1lWzFdOmcocik/bj1lWzBdOm0ocik/bj1lWzNdOnYocikmJihuPWVbMl0pLGw9MDtsPHQuZWRnZXBhdGhzLmxlbmd0aDtsKyspe3ZhciB5PXQuZWRnZXBhdGhzW2xdWzBdO01hdGguYWJzKHJbMF0tblswXSk8LjAxP01hdGguYWJzKHJbMF0teVswXSk8LjAxJiYoeVsxXS1yWzFdKSooblsxXS15WzFdKT49MCYmKG49eSxzPWwpOk1hdGguYWJzKHJbMV0tblsxXSk8LjAxP01hdGguYWJzKHJbMV0teVsxXSk8LjAxJiYoeVswXS1yWzBdKSooblswXS15WzBdKT49MCYmKG49eSxzPWwpOmkubG9nKCJlbmRwdCB0byBuZXdlbmRwdCBpcyBub3QgdmVydC4gb3IgaG9yei4iLHIsbix5KX1pZihyPW4scz49MClicmVhaztmKz0iTCIrbn1pZihzPT09dC5lZGdlcGF0aHMubGVuZ3RoKXtpLmxvZygidW5jbG9zZWQgcGVyaW1ldGVyIHBhdGgiKTticmVha31oPXMsKGQ9LTE9PT1wLmluZGV4T2YoaCkpJiYoaD1wWzBdLGYrPSJaIil9Zm9yKGg9MDtoPHQucGF0aHMubGVuZ3RoO2grKylmKz1hLnNtb290aGNsb3NlZCh0LnBhdGhzW2hdLHQuc21vb3RoaW5nKTtyZXR1cm4gZn1mdW5jdGlvbiB4KHQsZSxyLG4pe3ZhciBhPWUud2lkdGgvMixvPWUuaGVpZ2h0LzIscz10LngsbD10LnksYz10LnRoZXRhLHU9TWF0aC5jb3MoYykqYSxmPU1hdGguc2luKGMpKmEsaD0ocz5uLmNlbnRlcj9uLnJpZ2h0LXM6cy1uLmxlZnQpLyh1K01hdGguYWJzKE1hdGguc2luKGMpKm8pKSxwPShsPm4ubWlkZGxlP24uYm90dG9tLWw6bC1uLnRvcCkvKE1hdGguYWJzKGYpK01hdGguY29zKGMpKm8pO2lmKGg8MXx8cDwxKXJldHVybiAxLzA7dmFyIGQ9di5FREdFQ09TVCooMS8oaC0xKSsxLyhwLTEpKTtkKz12LkFOR0xFQ09TVCpjKmM7Zm9yKHZhciBtPXMtdSxnPWwtZix5PXMrdSx4PWwrZixiPTA7YjxyLmxlbmd0aDtiKyspe3ZhciBfPXJbYl0sdz1NYXRoLmNvcyhfLnRoZXRhKSpfLndpZHRoLzIsVD1NYXRoLnNpbihfLnRoZXRhKSpfLndpZHRoLzIsaz0yKmkuc2VnbWVudERpc3RhbmNlKG0sZyx5LHgsXy54LXcsXy55LVQsXy54K3csXy55K1QpLyhlLmhlaWdodCtfLmhlaWdodCksQT1fLmxldmVsPT09ZS5sZXZlbCxNPUE/di5TQU1FTEVWRUxESVNUQU5DRToxO2lmKGs8PU0pcmV0dXJuIDEvMDtkKz12Lk5FSUdIQk9SQ09TVCooQT92LlNBTUVMRVZFTEZBQ1RPUjoxKS8oay1NKX1yZXR1cm4gZH1mdW5jdGlvbiBiKHQpe3ZhciBlLHIsbj10LnRyYWNlLl9lbXB0eXBvaW50cyxpPVtdLGE9dC56Lmxlbmd0aCxvPXQuelswXS5sZW5ndGgscz1bXTtmb3IoZT0wO2U8bztlKyspcy5wdXNoKDEpO2ZvcihlPTA7ZTxhO2UrKylpLnB1c2gocy5zbGljZSgpKTtmb3IoZT0wO2U8bi5sZW5ndGg7ZSsrKWlbKHI9bltlXSlbMF1dW3JbMV1dPTA7cmV0dXJuIHQuem1hc2s9aSxpfXIucGxvdD1mdW5jdGlvbih0LGUsbyxzKXt2YXIgbD1lLnhheGlzLGM9ZS55YXhpcztpLm1ha2VUcmFjZUdyb3VwcyhzLG8sImNvbnRvdXIiKS5lYWNoKChmdW5jdGlvbihvKXt2YXIgcz1uLnNlbGVjdCh0aGlzKSx2PW9bMF0seD12LnRyYWNlLF89di54LHc9di55LFQ9eC5jb250b3VycyxrPXAoVCxlLHYpLEE9aS5lbnN1cmVTaW5nbGUocywiZyIsImhlYXRtYXBjb2xvcmluZyIpLE09W107ImhlYXRtYXAiPT09VC5jb2xvcmluZyYmKE09W29dKSx1KHQsZSxNLEEpLGYoayksaChrKTt2YXIgUz1sLmMycChfWzBdLCEwKSxFPWwuYzJwKF9bXy5sZW5ndGgtMV0sITApLEw9Yy5jMnAod1swXSwhMCksQz1jLmMycCh3W3cubGVuZ3RoLTFdLCEwKSxQPVtbUyxDXSxbRSxDXSxbRSxMXSxbUyxMXV0sST1rOyJjb25zdHJhaW50Ij09PVQudHlwZSYmKEk9ZChrLFQuX29wZXJhdGlvbikpLGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1pLmVuc3VyZVNpbmdsZSh0LCJnIiwiY29udG91cmJnIikuc2VsZWN0QWxsKCJwYXRoIikuZGF0YSgiZmlsbCI9PT1yLmNvbG9yaW5nP1swXTpbXSk7bi5lbnRlcigpLmFwcGVuZCgicGF0aCIpLG4uZXhpdCgpLnJlbW92ZSgpLG4uYXR0cigiZCIsIk0iK2Uuam9pbigiTCIpKyJaIikuc3R5bGUoInN0cm9rZSIsIm5vbmUiKX0ocyxQLFQpLGZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvPSJmaWxsIj09PWEuY29sb3Jpbmd8fCJjb25zdHJhaW50Ij09PWEudHlwZSYmIj0iIT09YS5fb3BlcmF0aW9uLHM9Ik0iK3Iuam9pbigiTCIpKyJaIjtvJiZtKGUsYSk7dmFyIGw9aS5lbnN1cmVTaW5nbGUodCwiZyIsImNvbnRvdXJmaWxsIikuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShvP2U6W10pO2wuZW50ZXIoKS5hcHBlbmQoInBhdGgiKSxsLmV4aXQoKS5yZW1vdmUoKSxsLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPSh0LnByZWZpeEJvdW5kYXJ5P3M6IiIpK3kodCxyKTtlP24uc2VsZWN0KHRoaXMpLmF0dHIoImQiLGUpLnN0eWxlKCJzdHJva2UiLCJub25lIik6bi5zZWxlY3QodGhpcykucmVtb3ZlKCl9KSl9KHMsSSxQLFQpLGZ1bmN0aW9uKHQsZSxvLHMsbCl7dmFyIGM9aS5lbnN1cmVTaW5nbGUodCwiZyIsImNvbnRvdXJsaW5lcyIpLHU9ITEhPT1sLnNob3dsaW5lcyxmPWwuc2hvd2xhYmVscyxoPXUmJmYscD1yLmNyZWF0ZUxpbmVzKGMsdXx8ZixlKSxkPXIuY3JlYXRlTGluZUNsaXAoYyxoLG8scy50cmFjZS51aWQpLG09dC5zZWxlY3RBbGwoImcuY29udG91cmxhYmVscyIpLmRhdGEoZj9bMF06W10pO2lmKG0uZXhpdCgpLnJlbW92ZSgpLG0uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJjb250b3VybGFiZWxzIiwhMCksZil7dmFyIHY9W10seT1bXTtpLmNsZWFyTG9jYXRpb25DYWNoZSgpO3ZhciB4PXIubGFiZWxGb3JtYXR0ZXIobyxzKSxiPWEudGVzdGVyLmFwcGVuZCgidGV4dCIpLmF0dHIoImRhdGEtbm90ZXgiLDEpLmNhbGwoYS5mb250LGwubGFiZWxmb250KSxfPWVbMF0ueGF4aXMsdz1lWzBdLnlheGlzLFQ9Xy5fbGVuZ3RoLGs9dy5fbGVuZ3RoLEE9Xy5yYW5nZSxNPXcucmFuZ2UsUz1pLmFnZ051bXMoTWF0aC5taW4sbnVsbCxzLngpLEU9aS5hZ2dOdW1zKE1hdGgubWF4LG51bGwscy54KSxMPWkuYWdnTnVtcyhNYXRoLm1pbixudWxsLHMueSksQz1pLmFnZ051bXMoTWF0aC5tYXgsbnVsbCxzLnkpLFA9TWF0aC5tYXgoXy5jMnAoUywhMCksMCksST1NYXRoLm1pbihfLmMycChFLCEwKSxUKSxPPU1hdGgubWF4KHcuYzJwKEMsITApLDApLHo9TWF0aC5taW4ody5jMnAoTCwhMCksayksRD17fTtBWzBdPEFbMV0/KEQubGVmdD1QLEQucmlnaHQ9SSk6KEQubGVmdD1JLEQucmlnaHQ9UCksTVswXTxNWzFdPyhELnRvcD1PLEQuYm90dG9tPXopOihELnRvcD16LEQuYm90dG9tPU8pLEQubWlkZGxlPShELnRvcCtELmJvdHRvbSkvMixELmNlbnRlcj0oRC5sZWZ0K0QucmlnaHQpLzIsdi5wdXNoKFtbRC5sZWZ0LEQudG9wXSxbRC5yaWdodCxELnRvcF0sW0QucmlnaHQsRC5ib3R0b21dLFtELmxlZnQsRC5ib3R0b21dXSk7dmFyIFI9TWF0aC5zcXJ0KFQqVCtrKmspLEY9Zy5MQUJFTERJU1RBTkNFKlIvTWF0aC5tYXgoMSxlLmxlbmd0aC9nLkxBQkVMSU5DUkVBU0UpO3AuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9ci5jYWxjVGV4dE9wdHModC5sZXZlbCx4LGIsbyk7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIikuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1pLmdldFZpc2libGVTZWdtZW50KHRoaXMsRCxlLmhlaWdodC8yKTtpZih0JiYhKHQubGVuPChlLndpZHRoK2UuaGVpZ2h0KSpnLkxBQkVMTUlOKSlmb3IodmFyIG49TWF0aC5taW4oTWF0aC5jZWlsKHQubGVuL0YpLGcuTEFCRUxNQVgpLGE9MDthPG47YSsrKXt2YXIgbz1yLmZpbmRCZXN0VGV4dExvY2F0aW9uKHRoaXMsdCxlLHksRCk7aWYoIW8pYnJlYWs7ci5hZGRMYWJlbERhdGEobyxlLHksdil9fSkpfSkpLGIucmVtb3ZlKCksci5kcmF3TGFiZWxzKG0seSxvLGQsaD92Om51bGwpfWYmJiF1JiZwLnJlbW92ZSgpfShzLGssdCx2LFQpLGZ1bmN0aW9uKHQsZSxyLG4sbyl7dmFyIHM9bi50cmFjZSxsPXIuX2Z1bGxMYXlvdXQuX2NsaXBzLGM9ImNsaXAiK3MudWlkLHU9bC5zZWxlY3RBbGwoIiMiK2MpLmRhdGEocy5jb25uZWN0Z2Fwcz9bXTpbMF0pO2lmKHUuZW50ZXIoKS5hcHBlbmQoImNsaXBQYXRoIikuY2xhc3NlZCgiY29udG91cmNsaXAiLCEwKS5hdHRyKCJpZCIsYyksdS5leGl0KCkucmVtb3ZlKCksITE9PT1zLmNvbm5lY3RnYXBzKXt2YXIgcD17bGV2ZWw6LjksY3Jvc3NpbmdzOnt9LHN0YXJ0czpbXSxlZGdlcGF0aHM6W10scGF0aHM6W10seGF4aXM6ZS54YXhpcyx5YXhpczplLnlheGlzLHg6bi54LHk6bi55LHo6YihuKSxzbW9vdGhpbmc6MH07ZihbcF0pLGgoW3BdKSxtKFtwXSx7dHlwZToibGV2ZWxzIn0pLGkuZW5zdXJlU2luZ2xlKHUsInBhdGgiLCIiKS5hdHRyKCJkIiwocC5wcmVmaXhCb3VuZGFyeT8iTSIrby5qb2luKCJMIikrIloiOiIiKSt5KHAsbykpfWVsc2UgYz1udWxsO2Euc2V0Q2xpcFVybCh0LGMscil9KHMsZSx0LHYsUCl9KSl9LHIuY3JlYXRlTGluZXM9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXJbMF0uc21vb3RoaW5nLGk9dC5zZWxlY3RBbGwoImcuY29udG91cmxldmVsIikuZGF0YShlP3I6W10pO2lmKGkuZXhpdCgpLnJlbW92ZSgpLGkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJjb250b3VybGV2ZWwiLCEwKSxlKXt2YXIgbz1pLnNlbGVjdEFsbCgicGF0aC5vcGVubGluZSIpLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBlZGdlcGF0aHN8fHQuZWRnZXBhdGhzfSkpO28uZXhpdCgpLnJlbW92ZSgpLG8uZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJvcGVubGluZSIsITApLG8uYXR0cigiZCIsKGZ1bmN0aW9uKHQpe3JldHVybiBhLnNtb290aG9wZW4odCxuKX0pKS5zdHlsZSgic3Ryb2tlLW1pdGVybGltaXQiLDEpLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIik7dmFyIHM9aS5zZWxlY3RBbGwoInBhdGguY2xvc2VkbGluZSIpLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBwYXRoc3x8dC5wYXRoc30pKTtzLmV4aXQoKS5yZW1vdmUoKSxzLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgiY2xvc2VkbGluZSIsITApLHMuYXR0cigiZCIsKGZ1bmN0aW9uKHQpe3JldHVybiBhLnNtb290aGNsb3NlZCh0LG4pfSkpLnN0eWxlKCJzdHJva2UtbWl0ZXJsaW1pdCIsMSkuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKX1yZXR1cm4gaX0sci5jcmVhdGVMaW5lQ2xpcD1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1lPyJjbGlwbGluZSIrbjpudWxsLG89ci5fZnVsbExheW91dC5fY2xpcHMuc2VsZWN0QWxsKCIjIitpKS5kYXRhKGU/WzBdOltdKTtyZXR1cm4gby5leGl0KCkucmVtb3ZlKCksby5lbnRlcigpLmFwcGVuZCgiY2xpcFBhdGgiKS5jbGFzc2VkKCJjb250b3VybGluZWNsaXAiLCEwKS5hdHRyKCJpZCIsaSksYS5zZXRDbGlwVXJsKHQsaSxyKSxvfSxyLmxhYmVsRm9ybWF0dGVyPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5fZnVsbExheW91dCxuPWUudHJhY2UsaT1uLmNvbnRvdXJzLGE9e3R5cGU6ImxpbmVhciIsX2lkOiJ5Y29udG91ciIsc2hvd2V4cG9uZW50OiJhbGwiLGV4cG9uZW50Zm9ybWF0OiJCIn07aWYoaS5sYWJlbGZvcm1hdClhLnRpY2tmb3JtYXQ9aS5sYWJlbGZvcm1hdCxjKGEscik7ZWxzZXt2YXIgcz1vLmV4dHJhY3RPcHRzKG4pO2lmKHMmJnMuY29sb3JiYXImJnMuY29sb3JiYXIuX2F4aXMpYT1zLmNvbG9yYmFyLl9heGlzO2Vsc2V7aWYoImNvbnN0cmFpbnQiPT09aS50eXBlKXt2YXIgdT1pLnZhbHVlO0FycmF5LmlzQXJyYXkodSk/YS5yYW5nZT1bdVswXSx1W3UubGVuZ3RoLTFdXTphLnJhbmdlPVt1LHVdfWVsc2UgYS5yYW5nZT1baS5zdGFydCxpLmVuZF0sYS5udGlja3M9KGkuZW5kLWkuc3RhcnQpL2kuc2l6ZTthLnJhbmdlWzBdPT09YS5yYW5nZVsxXSYmKGEucmFuZ2VbMV0rPWEucmFuZ2VbMF18fDEpLGEubnRpY2tzfHwoYS5udGlja3M9MWUzKSxjKGEsciksbC5wcmVwVGlja3MoYSksYS5fdG1pbj1udWxsLGEuX3RtYXg9bnVsbH19cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBsLnRpY2tUZXh0KGEsdCkudGV4dH19LHIuY2FsY1RleHRPcHRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWUodCk7ci50ZXh0KGkpLmNhbGwocy5jb252ZXJ0VG9Uc3BhbnMsbik7dmFyIG89ci5ub2RlKCksbD1hLmJCb3gobywhMCk7cmV0dXJue3RleHQ6aSx3aWR0aDpsLndpZHRoLGhlaWdodDpsLmhlaWdodCxmb250U2l6ZTorby5zdHlsZVsiZm9udC1zaXplIl0ucmVwbGFjZSgicHgiLCIiKSxsZXZlbDp0LGR5OihsLnRvcCtsLmJvdHRvbSkvMn19LHIuZmluZEJlc3RUZXh0TG9jYXRpb249ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgbyxzLGwsYyx1LGY9ci53aWR0aDtlLmlzQ2xvc2VkPyhzPWUubGVuL3YuSU5JVElBTFNFQVJDSFBPSU5UUyxvPWUubWluK3MvMixsPWUubWF4KToocz0oZS5sZW4tZikvKHYuSU5JVElBTFNFQVJDSFBPSU5UUysxKSxvPWUubWluK3MrZi8yLGw9ZS5tYXgtKHMrZikvMik7Zm9yKHZhciBoPTEvMCxwPTA7cDx2LklURVJBVElPTlM7cCsrKXtmb3IodmFyIGQ9bztkPGw7ZCs9cyl7dmFyIG09aS5nZXRUZXh0TG9jYXRpb24odCxlLnRvdGFsLGQsZiksZz14KG0scixuLGEpO2c8aCYmKGg9Zyx1PW0sYz1kKX1pZihoPjIqdi5NQVhDT1NUKWJyZWFrO3AmJihzLz0yKSxsPShvPWMtcy8yKSsxLjUqc31pZihoPD12Lk1BWENPU1QpcmV0dXJuIHV9LHIuYWRkTGFiZWxEYXRhPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWUuZm9udFNpemUsYT1lLndpZHRoK2kvMyxvPU1hdGgubWF4KDAsZS5oZWlnaHQtaS8zKSxzPXQueCxsPXQueSxjPXQudGhldGEsdT1NYXRoLnNpbihjKSxmPU1hdGguY29zKGMpLGg9ZnVuY3Rpb24odCxlKXtyZXR1cm5bcyt0KmYtZSp1LGwrdCp1K2UqZl19LHA9W2goLWEvMiwtby8yKSxoKC1hLzIsby8yKSxoKGEvMixvLzIpLGgoYS8yLC1vLzIpXTtyLnB1c2goe3RleHQ6ZS50ZXh0LHg6cyx5OmwsZHk6ZS5keSx0aGV0YTpjLGxldmVsOmUubGV2ZWwsd2lkdGg6YSxoZWlnaHQ6b30pLG4ucHVzaChwKX0sci5kcmF3TGFiZWxzPWZ1bmN0aW9uKHQsZSxyLGEsbyl7dmFyIGw9dC5zZWxlY3RBbGwoInRleHQiKS5kYXRhKGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRleHQrIiwiK3QueCsiLCIrdC55KyIsIit0LnRoZXRhfSkpO2lmKGwuZXhpdCgpLnJlbW92ZSgpLGwuZW50ZXIoKS5hcHBlbmQoInRleHQiKS5hdHRyKHsiZGF0YS1ub3RleCI6MSwidGV4dC1hbmNob3IiOiJtaWRkbGUifSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC54K01hdGguc2luKHQudGhldGEpKnQuZHksaT10LnktTWF0aC5jb3ModC50aGV0YSkqdC5keTtuLnNlbGVjdCh0aGlzKS50ZXh0KHQudGV4dCkuYXR0cih7eDplLHk6aSx0cmFuc2Zvcm06InJvdGF0ZSgiKzE4MCp0LnRoZXRhL01hdGguUEkrIiAiK2UrIiAiK2krIikifSkuY2FsbChzLmNvbnZlcnRUb1RzcGFucyxyKX0pKSxvKXtmb3IodmFyIGM9IiIsdT0wO3U8by5sZW5ndGg7dSsrKWMrPSJNIitvW3VdLmpvaW4oIkwiKSsiWiI7aS5lbnN1cmVTaW5nbGUoYSwicGF0aCIsIiIpLmF0dHIoImQiLGMpfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2NTEsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9zZXRfY29udmVydCI6ODQ4LCIuLi9oZWF0bWFwL3Bsb3QiOjEwNjksIi4vY2xvc2VfYm91bmRhcmllcyI6MTAwMywiLi9jb25zdGFudHMiOjEwMDUsIi4vY29udmVydF90b19jb25zdHJhaW50cyI6MTAwOSwiLi9lbXB0eV9wYXRoaW5mbyI6MTAxMSwiLi9maW5kX2FsbF9wYXRocyI6MTAxMywiLi9tYWtlX2Nyb3NzaW5ncyI6MTAxOCwiQHBsb3RseS9kMyI6NTh9XSwxMDIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9saWIiKTtmdW5jdGlvbiBhKHQsZSxyKXt2YXIgaT17dHlwZToibGluZWFyIixyYW5nZTpbdCxlXX07cmV0dXJuIG4uYXV0b1RpY2tzKGksKGUtdCkvKHJ8fDE1KSksaX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmNvbnRvdXJzO2lmKHQuYXV0b2NvbnRvdXIpe3ZhciBvPXQuem1pbixzPXQuem1heDsodC56YXV0b3x8dm9pZCAwPT09bykmJihvPWkuYWdnTnVtcyhNYXRoLm1pbixudWxsLGUpKSwodC56YXV0b3x8dm9pZCAwPT09cykmJihzPWkuYWdnTnVtcyhNYXRoLm1heCxudWxsLGUpKTt2YXIgbD1hKG8scyx0Lm5jb250b3Vycyk7ci5zaXplPWwuZHRpY2ssci5zdGFydD1uLnRpY2tGaXJzdChsKSxsLnJhbmdlLnJldmVyc2UoKSxyLmVuZD1uLnRpY2tGaXJzdChsKSxyLnN0YXJ0PT09byYmKHIuc3RhcnQrPXIuc2l6ZSksci5lbmQ9PT1zJiYoci5lbmQtPXIuc2l6ZSksci5zdGFydD5yLmVuZCYmKHIuc3RhcnQ9ci5lbmQ9KHIuc3RhcnQrci5lbmQpLzIpLHQuX2lucHV0LmNvbnRvdXJzfHwodC5faW5wdXQuY29udG91cnM9e30pLGkuZXh0ZW5kRmxhdCh0Ll9pbnB1dC5jb250b3Vycyx7c3RhcnQ6ci5zdGFydCxlbmQ6ci5lbmQsc2l6ZTpyLnNpemV9KSx0Ll9pbnB1dC5hdXRvY29udG91cj0hMH1lbHNlIGlmKCJjb25zdHJhaW50IiE9PXIudHlwZSl7dmFyIGMsdT1yLnN0YXJ0LGY9ci5lbmQsaD10Ll9pbnB1dC5jb250b3VycztpZih1PmYmJihyLnN0YXJ0PWguc3RhcnQ9ZixmPXIuZW5kPWguZW5kPXUsdT1yLnN0YXJ0KSwhKHIuc2l6ZT4wKSljPXU9PT1mPzE6YSh1LGYsdC5uY29udG91cnMpLmR0aWNrLGguc2l6ZT1yLnNpemU9Y319fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3fV0sMTAyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxhPXQoIi4uL2hlYXRtYXAvc3R5bGUiKSxvPXQoIi4vbWFrZV9jb2xvcl9tYXAiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLmNvbnRvdXIiKTtlLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pKSxlLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLHI9dFswXS50cmFjZSxhPXIuY29udG91cnMscz1yLmxpbmUsbD1hLnNpemV8fDEsYz1hLnN0YXJ0LHU9ImNvbnN0cmFpbnQiPT09YS50eXBlLGY9IXUmJiJsaW5lcyI9PT1hLmNvbG9yaW5nLGg9IXUmJiJmaWxsIj09PWEuY29sb3JpbmcscD1mfHxoP28ocik6bnVsbDtlLnNlbGVjdEFsbCgiZy5jb250b3VybGV2ZWwiKS5lYWNoKChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5jYWxsKGkubGluZUdyb3VwU3R5bGUscy53aWR0aCxmP3AodC5sZXZlbCk6cy5jb2xvcixzLmRhc2gpfSkpO3ZhciBkPWEubGFiZWxmb250O2lmKGUuc2VsZWN0QWxsKCJnLmNvbnRvdXJsYWJlbHMgdGV4dCIpLmVhY2goKGZ1bmN0aW9uKHQpe2kuZm9udChuLnNlbGVjdCh0aGlzKSx7ZmFtaWx5OmQuZmFtaWx5LHNpemU6ZC5zaXplLGNvbG9yOmQuY29sb3J8fChmP3AodC5sZXZlbCk6cy5jb2xvcil9KX0pKSx1KWUuc2VsZWN0QWxsKCJnLmNvbnRvdXJmaWxsIHBhdGgiKS5zdHlsZSgiZmlsbCIsci5maWxsY29sb3IpO2Vsc2UgaWYoaCl7dmFyIG07ZS5zZWxlY3RBbGwoImcuY29udG91cmZpbGwgcGF0aCIpLnN0eWxlKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIHZvaWQgMD09PW0mJihtPXQubGV2ZWwpLHAodC5sZXZlbCsuNSpsKX0pKSx2b2lkIDA9PT1tJiYobT1jKSxlLnNlbGVjdEFsbCgiZy5jb250b3VyYmcgcGF0aCIpLnN0eWxlKCJmaWxsIixwKG0tLjUqbCkpfX0pKSxhKHQpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vaGVhdG1hcC9zdHlsZSI6MTA3MCwiLi9tYWtlX2NvbG9yX21hcCI6MTAxNywiQHBsb3RseS9kMyI6NTh9XSwxMDIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLGk9dCgiLi9sYWJlbF9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLG8pe3ZhciBzLGw9cigiY29udG91cnMuY29sb3JpbmciKSxjPSIiOyJmaWxsIj09PWwmJihzPXIoImNvbnRvdXJzLnNob3dsaW5lcyIpKSwhMSE9PXMmJigibGluZXMiIT09bCYmKGM9cigibGluZS5jb2xvciIsIiMwMDAiKSkscigibGluZS53aWR0aCIsLjUpLHIoImxpbmUuZGFzaCIpKSwibm9uZSIhPT1sJiYoITAhPT10LnNob3dsZWdlbmQmJihlLnNob3dsZWdlbmQ9ITEpLGUuX2RmbHRTaG93TGVnZW5kPSExLG4odCxlLGEscix7cHJlZml4OiIiLGNMZXR0ZXI6InoifSkpLHIoImxpbmUuc21vb3RoaW5nIiksaShyLGEsYyxvKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2NDksIi4vbGFiZWxfZGVmYXVsdHMiOjEwMTZ9XSwxMDIzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hlYXRtYXAvYXR0cmlidXRlcyIpLGk9dCgiLi4vY29udG91ci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQscz1pLmNvbnRvdXJzO2UuZXhwb3J0cz1vKHtjYXJwZXQ6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSx6Om4ueixhOm4ueCxhMDpuLngwLGRhOm4uZHgsYjpuLnksYjA6bi55MCxkYjpuLmR5LHRleHQ6bi50ZXh0LGhvdmVydGV4dDpuLmhvdmVydGV4dCx0cmFuc3Bvc2U6bi50cmFuc3Bvc2UsYXR5cGU6bi54dHlwZSxidHlwZTpuLnl0eXBlLGZpbGxjb2xvcjppLmZpbGxjb2xvcixhdXRvY29udG91cjppLmF1dG9jb250b3VyLG5jb250b3VyczppLm5jb250b3Vycyxjb250b3Vyczp7dHlwZTpzLnR5cGUsc3RhcnQ6cy5zdGFydCxlbmQ6cy5lbmQsc2l6ZTpzLnNpemUsY29sb3Jpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZpbGwiLCJsaW5lcyIsIm5vbmUiXSxkZmx0OiJmaWxsIixlZGl0VHlwZToiY2FsYyJ9LHNob3dsaW5lczpzLnNob3dsaW5lcyxzaG93bGFiZWxzOnMuc2hvd2xhYmVscyxsYWJlbGZvbnQ6cy5sYWJlbGZvbnQsbGFiZWxmb3JtYXQ6cy5sYWJlbGZvcm1hdCxvcGVyYXRpb246cy5vcGVyYXRpb24sdmFsdWU6cy52YWx1ZSxlZGl0VHlwZToiY2FsYyIsaW1wbGllZEVkaXRzOnthdXRvY29udG91cjohMX19LGxpbmU6e2NvbG9yOmkubGluZS5jb2xvcix3aWR0aDppLmxpbmUud2lkdGgsZGFzaDppLmxpbmUuZGFzaCxzbW9vdGhpbmc6aS5saW5lLnNtb290aGluZyxlZGl0VHlwZToicGxvdCJ9LHRyYW5zZm9ybXM6dm9pZCAwfSxhKCIiLHtjTGV0dGVyOiJ6IixhdXRvQ29sb3JEZmx0OiExfSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vY29udG91ci9hdHRyaWJ1dGVzIjoxMDAxLCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiOjEwNTh9XSwxMDI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uL2hlYXRtYXAvY29udmVydF9jb2x1bW5feHl6Iiksbz10KCIuLi9oZWF0bWFwL2NsZWFuXzJkX2FycmF5Iikscz10KCIuLi9oZWF0bWFwL2ludGVycDJkIiksbD10KCIuLi9oZWF0bWFwL2ZpbmRfZW1wdGllcyIpLGM9dCgiLi4vaGVhdG1hcC9tYWtlX2JvdW5kX2FycmF5IiksdT10KCIuL2RlZmF1bHRzIiksZj10KCIuLi9jYXJwZXQvbG9va3VwX2NhcnBldGlkIiksaD10KCIuLi9jb250b3VyL3NldF9jb250b3VycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUuX2NhcnBldFRyYWNlPWYodCxlKTtpZihyJiZyLnZpc2libGUmJiJsZWdlbmRvbmx5IiE9PXIudmlzaWJsZSl7aWYoIWUuYXx8IWUuYil7dmFyIHA9dC5kYXRhW3IuaW5kZXhdLGQ9dC5kYXRhW2UuaW5kZXhdO2QuYXx8KGQuYT1wLmEpLGQuYnx8KGQuYj1wLmIpLHUoZCxlLGUuX2RlZmF1bHRDb2xvcix0Ll9mdWxsTGF5b3V0KX12YXIgbT1mdW5jdGlvbih0LGUpe3ZhciByLHUsZixoLHAsZCxtLGc9ZS5fY2FycGV0VHJhY2Usdj1nLmFheGlzLHk9Zy5iYXhpczt2Ll9taW5EdGljaz0wLHkuX21pbkR0aWNrPTAsaS5pc0FycmF5MUQoZS56KSYmYShlLHYseSwiYSIsImIiLFsieiJdKTtyPWUuX2E9ZS5fYXx8ZS5hLGg9ZS5fYj1lLl9ifHxlLmIscj1yP3YubWFrZUNhbGNkYXRhKGUsIl9hIik6W10saD1oP3kubWFrZUNhbGNkYXRhKGUsIl9iIik6W10sdT1lLmEwfHwwLGY9ZS5kYXx8MSxwPWUuYjB8fDAsZD1lLmRifHwxLG09ZS5fej1vKGUuX3p8fGUueixlLnRyYW5zcG9zZSksZS5fZW1wdHlwb2ludHM9bChtKSxzKG0sZS5fZW1wdHlwb2ludHMpO3ZhciB4PWkubWF4Um93TGVuZ3RoKG0pLGI9InNjYWxlZCI9PT1lLnh0eXBlPyIiOnIsXz1jKGUsYix1LGYseCx2KSx3PSJzY2FsZWQiPT09ZS55dHlwZT8iIjpoLFQ9YyhlLHcscCxkLG0ubGVuZ3RoLHkpLGs9e2E6XyxiOlQsejptfTsibGV2ZWxzIj09PWUuY29udG91cnMudHlwZSYmIm5vbmUiIT09ZS5jb250b3Vycy5jb2xvcmluZyYmbih0LGUse3ZhbHM6bSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoieiJ9KTtyZXR1cm5ba119KHQsZSk7cmV0dXJuIGgoZSxlLl96KSxtfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjY0NywiLi4vLi4vbGliIjo3NzYsIi4uL2NhcnBldC9sb29rdXBfY2FycGV0aWQiOjk3NCwiLi4vY29udG91ci9zZXRfY29udG91cnMiOjEwMjAsIi4uL2hlYXRtYXAvY2xlYW5fMmRfYXJyYXkiOjEwNjAsIi4uL2hlYXRtYXAvY29udmVydF9jb2x1bW5feHl6IjoxMDYyLCIuLi9oZWF0bWFwL2ZpbmRfZW1wdGllcyI6MTA2NCwiLi4vaGVhdG1hcC9pbnRlcnAyZCI6MTA2NywiLi4vaGVhdG1hcC9tYWtlX2JvdW5kX2FycmF5IjoxMDY4LCIuL2RlZmF1bHRzIjoxMDI1fV0sMTAyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2hlYXRtYXAveHl6X2RlZmF1bHRzIiksYT10KCIuL2F0dHJpYnV0ZXMiKSxvPXQoIi4uL2NvbnRvdXIvY29uc3RyYWludF9kZWZhdWx0cyIpLHM9dCgiLi4vY29udG91ci9jb250b3Vyc19kZWZhdWx0cyIpLGw9dCgiLi4vY29udG91ci9zdHlsZV9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixjKXtmdW5jdGlvbiB1KHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9aWYodSgiY2FycGV0IiksdC5hJiZ0LmIpe2lmKCFpKHQsZSx1LGMsImEiLCJiIikpcmV0dXJuIHZvaWQoZS52aXNpYmxlPSExKTt1KCJ0ZXh0IiksImNvbnN0cmFpbnQiPT09dSgiY29udG91cnMudHlwZSIpP28odCxlLHUsYyxyLHtoYXNIb3ZlcjohMX0pOihzKHQsZSx1LChmdW5jdGlvbihyKXtyZXR1cm4gbi5jb2VyY2UyKHQsZSxhLHIpfSkpLGwodCxlLHUsYyx7aGFzSG92ZXI6ITF9KSl9ZWxzZSBlLl9kZWZhdWx0Q29sb3I9cixlLl9sZW5ndGg9bnVsbH19LHsiLi4vLi4vbGliIjo3NzYsIi4uL2NvbnRvdXIvY29uc3RyYWludF9kZWZhdWx0cyI6MTAwNiwiLi4vY29udG91ci9jb250b3Vyc19kZWZhdWx0cyI6MTAwOCwiLi4vY29udG91ci9zdHlsZV9kZWZhdWx0cyI6MTAyMiwiLi4vaGVhdG1hcC94eXpfZGVmYXVsdHMiOjEwNzIsIi4vYXR0cmlidXRlcyI6MTAyM31dLDEwMjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjb2xvcmJhcjp0KCIuLi9jb250b3VyL2NvbG9yYmFyIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4uL2NvbnRvdXIvc3R5bGUiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiY29udG91cmNhcnBldCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsImNhcnBldCIsImNvbnRvdXIiLCJzeW1ib2xzIiwic2hvd0xlZ2VuZCIsImhhc0xpbmVzIiwiY2FycGV0RGVwZW5kZW50Iiwibm9Ib3ZlciIsIm5vU29ydGluZ0J5VmFsdWUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi4vY29udG91ci9jb2xvcmJhciI6MTAwNCwiLi4vY29udG91ci9zdHlsZSI6MTAyMSwiLi9hdHRyaWJ1dGVzIjoxMDIzLCIuL2NhbGMiOjEwMjQsIi4vZGVmYXVsdHMiOjEwMjUsIi4vcGxvdCI6MTAyN31dLDEwMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vY2FycGV0L21hcF8xZF9hcnJheSIpLGE9dCgiLi4vY2FycGV0L21ha2VwYXRoIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vY29udG91ci9tYWtlX2Nyb3NzaW5ncyIpLGM9dCgiLi4vY29udG91ci9maW5kX2FsbF9wYXRocyIpLHU9dCgiLi4vY29udG91ci9wbG90IiksZj10KCIuLi9jb250b3VyL2NvbnN0YW50cyIpLGg9dCgiLi4vY29udG91ci9jb252ZXJ0X3RvX2NvbnN0cmFpbnRzIikscD10KCIuLi9jb250b3VyL2VtcHR5X3BhdGhpbmZvIiksZD10KCIuLi9jb250b3VyL2Nsb3NlX2JvdW5kYXJpZXMiKSxtPXQoIi4uL2NhcnBldC9sb29rdXBfY2FycGV0aWQiKSxnPXQoIi4uL2NhcnBldC9heGlzX2FsaWduZWRfbGluZSIpO2Z1bmN0aW9uIHYodCxlLHIpe3ZhciBuPXQuZ2V0UG9pbnRBdExlbmd0aChlKSxpPXQuZ2V0UG9pbnRBdExlbmd0aChyKSxhPWkueC1uLngsbz1pLnktbi55LHM9TWF0aC5zcXJ0KGEqYStvKm8pO3JldHVyblthL3Msby9zXX1mdW5jdGlvbiB5KHQpe3ZhciBlPU1hdGguc3FydCh0WzBdKnRbMF0rdFsxXSp0WzFdKTtyZXR1cm5bdFswXS9lLHRbMV0vZV19ZnVuY3Rpb24geCh0LGUpe3ZhciByPU1hdGguYWJzKHRbMF0qZVswXSt0WzFdKmVbMV0pO3JldHVybiBNYXRoLnNxcnQoMS1yKnIpL3J9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGIpe3ZhciBfPWUueGF4aXMsdz1lLnlheGlzO3MubWFrZVRyYWNlR3JvdXBzKGIsciwiY29udG91ciIpLmVhY2goKGZ1bmN0aW9uKHIpe3ZhciBiPW4uc2VsZWN0KHRoaXMpLFQ9clswXSxrPVQudHJhY2UsQT1rLl9jYXJwZXRUcmFjZT1tKHQsayksTT10LmNhbGNkYXRhW0EuaW5kZXhdWzBdO2lmKEEudmlzaWJsZSYmImxlZ2VuZG9ubHkiIT09QS52aXNpYmxlKXt2YXIgUz1ULmEsRT1ULmIsTD1rLmNvbnRvdXJzLEM9cChMLGUsVCksUD0iY29uc3RyYWludCI9PT1MLnR5cGUsST1MLl9vcGVyYXRpb24sTz1QPyI9Ij09PUk/ImxpbmVzIjoiZmlsbCI6TC5jb2xvcmluZyx6PVtbU1swXSxFW0UubGVuZ3RoLTFdXSxbU1tTLmxlbmd0aC0xXSxFW0UubGVuZ3RoLTFdXSxbU1tTLmxlbmd0aC0xXSxFWzBdXSxbU1swXSxFWzBdXV07bChDKTt2YXIgRD0xZS04KihTW1MubGVuZ3RoLTFdLVNbMF0pLFI9MWUtOCooRVtFLmxlbmd0aC0xXS1FWzBdKTtjKEMsRCxSKTt2YXIgRixCLE4saixVPUM7ImNvbnN0cmFpbnQiPT09TC50eXBlJiYoVT1oKEMsSSkpLGZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpLGEsbyxzLGwsYyx1O2ZvcihyPTA7cjx0Lmxlbmd0aDtyKyspe2ZvcihhPXRbcl0sbz1hLnBlZGdlcGF0aHM9W10scz1hLnBwYXRocz1bXSxuPTA7bjxhLmVkZ2VwYXRocy5sZW5ndGg7bisrKXtmb3IodT1hLmVkZ2VwYXRoc1tuXSxsPVtdLGk9MDtpPHUubGVuZ3RoO2krKylsW2ldPWUodVtpXSk7by5wdXNoKGwpfWZvcihuPTA7bjxhLnBhdGhzLmxlbmd0aDtuKyspe2Zvcih1PWEucGF0aHNbbl0sYz1bXSxpPTA7aTx1Lmxlbmd0aDtpKyspY1tpXT1lKHVbaV0pO3MucHVzaChjKX19fShDLHEpO3ZhciBWPVtdO2ZvcihqPU0uY2xpcHNlZ21lbnRzLmxlbmd0aC0xO2o+PTA7ai0tKUY9TS5jbGlwc2VnbWVudHNbal0sQj1pKFtdLEYueCxfLmMycCksTj1pKFtdLEYueSx3LmMycCksQi5yZXZlcnNlKCksTi5yZXZlcnNlKCksVi5wdXNoKGEoQixOLEYuYmljdWJpYykpO3ZhciBIPSJNIitWLmpvaW4oIkwiKSsiWiI7IWZ1bmN0aW9uKHQsZSxyLG4sbyxsKXt2YXIgYyx1LGYsaCxwPXMuZW5zdXJlU2luZ2xlKHQsImciLCJjb250b3VyYmciKS5zZWxlY3RBbGwoInBhdGgiKS5kYXRhKCJmaWxsIiE9PWx8fG8/W106WzBdKTtwLmVudGVyKCkuYXBwZW5kKCJwYXRoIikscC5leGl0KCkucmVtb3ZlKCk7dmFyIGQ9W107Zm9yKGg9MDtoPGUubGVuZ3RoO2grKyljPWVbaF0sdT1pKFtdLGMueCxyLmMycCksZj1pKFtdLGMueSxuLmMycCksZC5wdXNoKGEodSxmLGMuYmljdWJpYykpO3AuYXR0cigiZCIsIk0iK2Quam9pbigiTCIpKyJaIikuc3R5bGUoInN0cm9rZSIsIm5vbmUiKX0oYixNLmNsaXBzZWdtZW50cyxfLHcsUCxPKSxmdW5jdGlvbih0LGUscixpLGEsbCxjLHUsZixoLHApe3ZhciBtPSJmaWxsIj09PWg7bSYmZChhLHQuY29udG91cnMpO3ZhciB2PXMuZW5zdXJlU2luZ2xlKGUsImciLCJjb250b3VyZmlsbCIpLnNlbGVjdEFsbCgicGF0aCIpLmRhdGEobT9hOltdKTt2LmVudGVyKCkuYXBwZW5kKCJwYXRoIiksdi5leGl0KCkucmVtb3ZlKCksdi5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT0odC5wcmVmaXhCb3VuZGFyeT9wOiIiKStmdW5jdGlvbih0LGUscixuLGksYSxsLGMpe3ZhciB1LGYsaCxwLGQsbSx2LHk9IiIseD1lLmVkZ2VwYXRocy5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSksYj0hMCxfPTFlLTQqTWF0aC5hYnMoclswXVswXS1yWzJdWzBdKSx3PTFlLTQqTWF0aC5hYnMoclswXVsxXS1yWzJdWzFdKTtmdW5jdGlvbiBUKHQpe3JldHVybiBNYXRoLmFicyh0WzFdLXJbMF1bMV0pPHd9ZnVuY3Rpb24gayh0KXtyZXR1cm4gTWF0aC5hYnModFsxXS1yWzJdWzFdKTx3fWZ1bmN0aW9uIEEodCl7cmV0dXJuIE1hdGguYWJzKHRbMF0tclswXVswXSk8X31mdW5jdGlvbiBNKHQpe3JldHVybiBNYXRoLmFicyh0WzBdLXJbMl1bMF0pPF99ZnVuY3Rpb24gUyh0LGUpe3ZhciByLG4sbyxzLHU9IiI7Zm9yKFQodCkmJiFNKHQpfHxrKHQpJiYhQSh0KT8ocz1pLmFheGlzLG89ZyhpLGEsW3RbMF0sZVswXV0sLjUqKHRbMV0rZVsxXSkpKToocz1pLmJheGlzLG89ZyhpLGEsLjUqKHRbMF0rZVswXSksW3RbMV0sZVsxXV0pKSxyPTE7cjxvLmxlbmd0aDtyKyspZm9yKHUrPXMuc21vb3RoaW5nPyJDIjoiTCIsbj0wO248b1tyXS5sZW5ndGg7bisrKXt2YXIgZj1vW3JdW25dO3UrPVtsLmMycChmWzBdKSxjLmMycChmWzFdKV0rIiAifXJldHVybiB1fXU9MCxmPW51bGw7Zm9yKDt4Lmxlbmd0aDspe3ZhciBFPWUuZWRnZXBhdGhzW3VdWzBdO2ZvcihmJiYoeSs9UyhmLEUpKSx2PW8uc21vb3Rob3BlbihlLmVkZ2VwYXRoc1t1XS5tYXAobiksZS5zbW9vdGhpbmcpLHkrPWI/djp2LnJlcGxhY2UoL15NLywiTCIpLHguc3BsaWNlKHguaW5kZXhPZih1KSwxKSxmPWUuZWRnZXBhdGhzW3VdW2UuZWRnZXBhdGhzW3VdLmxlbmd0aC0xXSxkPS0xLHA9MDtwPDQ7cCsrKXtpZighZil7cy5sb2coIk1pc3NpbmcgZW5kPyIsdSxlKTticmVha31mb3IoVChmKSYmIU0oZik/aD1yWzFdOkEoZik/aD1yWzBdOmsoZik/aD1yWzNdOk0oZikmJihoPXJbMl0pLG09MDttPGUuZWRnZXBhdGhzLmxlbmd0aDttKyspe3ZhciBMPWUuZWRnZXBhdGhzW21dWzBdO01hdGguYWJzKGZbMF0taFswXSk8Xz9NYXRoLmFicyhmWzBdLUxbMF0pPF8mJihMWzFdLWZbMV0pKihoWzFdLUxbMV0pPj0wJiYoaD1MLGQ9bSk6TWF0aC5hYnMoZlsxXS1oWzFdKTx3P01hdGguYWJzKGZbMV0tTFsxXSk8dyYmKExbMF0tZlswXSkqKGhbMF0tTFswXSk+PTAmJihoPUwsZD1tKTpzLmxvZygiZW5kcHQgdG8gbmV3ZW5kcHQgaXMgbm90IHZlcnQuIG9yIGhvcnouIixmLGgsTCl9aWYoZD49MClicmVhazt5Kz1TKGYsaCksZj1ofWlmKGQ9PT1lLmVkZ2VwYXRocy5sZW5ndGgpe3MubG9nKCJ1bmNsb3NlZCBwZXJpbWV0ZXIgcGF0aCIpO2JyZWFrfXU9ZCwoYj0tMT09PXguaW5kZXhPZih1KSkmJih1PXhbMF0seSs9UyhmLGgpKyJaIixmPW51bGwpfWZvcih1PTA7dTxlLnBhdGhzLmxlbmd0aDt1KyspeSs9by5zbW9vdGhjbG9zZWQoZS5wYXRoc1t1XS5tYXAobiksZS5zbW9vdGhpbmcpO3JldHVybiB5fSgwLHQsbCxjLHUsZixyLGkpO2U/bi5zZWxlY3QodGhpcykuYXR0cigiZCIsZSkuc3R5bGUoInN0cm9rZSIsIm5vbmUiKTpuLnNlbGVjdCh0aGlzKS5yZW1vdmUoKX0pKX0oayxiLF8sdyxVLHoscSxBLE0sTyxIKSxmdW5jdGlvbih0LGUscixpLGEsbCxjKXt2YXIgaD1zLmVuc3VyZVNpbmdsZSh0LCJnIiwiY29udG91cmxpbmVzIikscD0hMSE9PWEuc2hvd2xpbmVzLGQ9YS5zaG93bGFiZWxzLG09cCYmZCxnPXUuY3JlYXRlTGluZXMoaCxwfHxkLGUpLGI9dS5jcmVhdGVMaW5lQ2xpcChoLG0scixpLnRyYWNlLnVpZCksXz10LnNlbGVjdEFsbCgiZy5jb250b3VybGFiZWxzIikuZGF0YShkP1swXTpbXSk7aWYoXy5leGl0KCkucmVtb3ZlKCksXy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImNvbnRvdXJsYWJlbHMiLCEwKSxkKXt2YXIgdz1sLnhheGlzLFQ9bC55YXhpcyxrPXcuX2xlbmd0aCxBPVQuX2xlbmd0aCxNPVtbWzAsMF0sW2ssMF0sW2ssQV0sWzAsQV1dXSxTPVtdO3MuY2xlYXJMb2NhdGlvbkNhY2hlKCk7dmFyIEU9dS5sYWJlbEZvcm1hdHRlcihyLGkpLEw9by50ZXN0ZXIuYXBwZW5kKCJ0ZXh0IikuYXR0cigiZGF0YS1ub3RleCIsMSkuY2FsbChvLmZvbnQsYS5sYWJlbGZvbnQpLEM9e2xlZnQ6MCxyaWdodDprLGNlbnRlcjprLzIsdG9wOjAsYm90dG9tOkEsbWlkZGxlOkEvMn0sUD1NYXRoLnNxcnQoayprK0EqQSksST1mLkxBQkVMRElTVEFOQ0UqUC9NYXRoLm1heCgxLGUubGVuZ3RoL2YuTEFCRUxJTkNSRUFTRSk7Zy5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT11LmNhbGNUZXh0T3B0cyh0LmxldmVsLEUsTCxyKTtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5lYWNoKChmdW5jdGlvbihyKXt2YXIgbj1zLmdldFZpc2libGVTZWdtZW50KHRoaXMsQyxlLmhlaWdodC8yKTtpZihuJiYoZnVuY3Rpb24odCxlLHIsbixpLGEpe2Zvcih2YXIgbyxzPTA7czxyLnBlZGdlcGF0aHMubGVuZ3RoO3MrKyllPT09ci5wZWRnZXBhdGhzW3NdJiYobz1yLmVkZ2VwYXRoc1tzXSk7aWYoIW8pcmV0dXJuO3ZhciBsPWkuYVswXSxjPWkuYVtpLmEubGVuZ3RoLTFdLHU9aS5iWzBdLGY9aS5iW2kuYi5sZW5ndGgtMV07ZnVuY3Rpb24gaCh0LGUpe3ZhciByLG49MDtyZXR1cm4oTWF0aC5hYnModFswXS1sKTwuMXx8TWF0aC5hYnModFswXS1jKTwuMSkmJihyPXkoaS5keHlkYl9yb3VnaCh0WzBdLHRbMV0sLjEpKSxuPU1hdGgubWF4KG4sYSp4KGUscikvMikpLChNYXRoLmFicyh0WzFdLXUpPC4xfHxNYXRoLmFicyh0WzFdLWYpPC4xKSYmKHI9eShpLmR4eWRhX3JvdWdoKHRbMF0sdFsxXSwuMSkpLG49TWF0aC5tYXgobixhKngoZSxyKS8yKSksbn12YXIgcD12KHQsMCwxKSxkPXYodCxuLnRvdGFsLG4udG90YWwtMSksbT1oKG9bMF0scCksZz1uLnRvdGFsLWgob1tvLmxlbmd0aC0xXSxkKTtuLm1pbjxtJiYobi5taW49bSk7bi5tYXg+ZyYmKG4ubWF4PWcpO24ubGVuPW4ubWF4LW4ubWlufSh0aGlzLHIsdCxuLGMsZS5oZWlnaHQpLCEobi5sZW48KGUud2lkdGgrZS5oZWlnaHQpKmYuTEFCRUxNSU4pKSlmb3IodmFyIGk9TWF0aC5taW4oTWF0aC5jZWlsKG4ubGVuL0kpLGYuTEFCRUxNQVgpLGE9MDthPGk7YSsrKXt2YXIgbz11LmZpbmRCZXN0VGV4dExvY2F0aW9uKHRoaXMsbixlLFMsQyk7aWYoIW8pYnJlYWs7dS5hZGRMYWJlbERhdGEobyxlLFMsTSl9fSkpfSkpLEwucmVtb3ZlKCksdS5kcmF3TGFiZWxzKF8sUyxyLGIsbT9NOm51bGwpfWQmJiFwJiZnLnJlbW92ZSgpfShiLEMsdCxULEwsZSxBKSxvLnNldENsaXBVcmwoYixBLl9jbGlwUGF0aElkLHQpfWZ1bmN0aW9uIHEodCl7dmFyIGU9QS5hYjJ4eSh0WzBdLHRbMV0sITApO3JldHVybltfLmMycChlWzBdKSx3LmMycChlWzFdKV19fSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vbGliIjo3NzYsIi4uL2NhcnBldC9heGlzX2FsaWduZWRfbGluZSI6OTU4LCIuLi9jYXJwZXQvbG9va3VwX2NhcnBldGlkIjo5NzQsIi4uL2NhcnBldC9tYWtlcGF0aCI6OTc1LCIuLi9jYXJwZXQvbWFwXzFkX2FycmF5Ijo5NzYsIi4uL2NvbnRvdXIvY2xvc2VfYm91bmRhcmllcyI6MTAwMywiLi4vY29udG91ci9jb25zdGFudHMiOjEwMDUsIi4uL2NvbnRvdXIvY29udmVydF90b19jb25zdHJhaW50cyI6MTAwOSwiLi4vY29udG91ci9lbXB0eV9wYXRoaW5mbyI6MTAxMSwiLi4vY29udG91ci9maW5kX2FsbF9wYXRocyI6MTAxMywiLi4vY29udG91ci9tYWtlX2Nyb3NzaW5ncyI6MTAxOCwiLi4vY29udG91ci9wbG90IjoxMDE5LCJAcGxvdGx5L2QzIjo1OH1dLDEwMjg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsYT10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbz10KCIuLi9zY2F0dGVybWFwYm94L2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz1zKHtsb246by5sb24sbGF0Om8ubGF0LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0scmFkaXVzOnt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJwbG90IixhcnJheU9rOiEwLG1pbjoxLGRmbHQ6MzB9LGJlbG93Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJwbG90In0sdGV4dDpvLnRleHQsaG92ZXJ0ZXh0Om8uaG92ZXJ0ZXh0LGhvdmVyaW5mbzpzKHt9LGEuaG92ZXJpbmZvLHtmbGFnczpbImxvbiIsImxhdCIsInoiLCJ0ZXh0IiwibmFtZSJdfSksaG92ZXJ0ZW1wbGF0ZTppKCksc2hvd2xlZ2VuZDpzKHt9LGEuc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSxuKCIiLHtjTGV0dGVyOiJ6IixlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODk5LCIuLi9zY2F0dGVybWFwYm94L2F0dHJpYnV0ZXMiOjEyNTZ9XSwxMDI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5LGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIikscz10KCIuLi8uLi9saWIiKS5fO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLl9sZW5ndGgsbD1uZXcgQXJyYXkociksYz1lLnosdT1pKGMpJiZjLmxlbmd0aCxmPTA7ZjxyO2YrKyl7dmFyIGg9bFtmXT17fSxwPWUubG9uW2ZdLGQ9ZS5sYXRbZl07aWYoaC5sb25sYXQ9bihwKSYmbihkKT9bK3AsK2RdOlthLGFdLHUpe3ZhciBtPWNbZl07aC56PW4obSk/bTphfX1yZXR1cm4gbyh0LGUse3ZhbHM6dT9jOlswLDFdLGNvbnRhaW5lclN0cjoiIixjTGV0dGVyOiJ6In0pLHImJihsWzBdLnQ9e2xhYmVsczp7bGF0OnModCwibGF0OiIpKyIgIixsb246cyh0LCJsb246IikrIiAifX0pLGx9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo2NDcsIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMDMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxsPXQoIi4uLy4uL2xpYi9nZW9qc29uX3V0aWxzIikubWFrZUJsYW5rO2UuZXhwb3J0cz1mdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9ITA9PT1lLnZpc2libGUmJjAhPT1lLl9sZW5ndGgsYz1lLl9vcHRzPXtoZWF0bWFwOntsYXlvdXQ6e3Zpc2liaWxpdHk6Im5vbmUifSxwYWludDp7fX0sZ2VvanNvbjpsKCl9O2lmKCFyKXJldHVybiBjO3ZhciB1LGY9W10saD1lLnoscD1lLnJhZGl1cyxkPWkuaXNBcnJheU9yVHlwZWRBcnJheShoKSYmaC5sZW5ndGgsbT1pLmlzQXJyYXlPclR5cGVkQXJyYXkocCk7Zm9yKHU9MDt1PHQubGVuZ3RoO3UrKyl7dmFyIGc9dFt1XSx2PWcubG9ubGF0O2lmKHZbMF0hPT1zKXt2YXIgeT17fTtpZihkKXt2YXIgeD1nLno7eS56PXghPT1zP3g6MH1tJiYoeS5yPW4ocFt1XSkmJnBbdV0+MD8rcFt1XTowKSxmLnB1c2goe3R5cGU6IkZlYXR1cmUiLGdlb21ldHJ5Ont0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6dn0scHJvcGVydGllczp5fSl9fXZhciBiPW8uZXh0cmFjdE9wdHMoZSksXz1iLnJldmVyc2VzY2FsZT9vLmZsaXBTY2FsZShiLmNvbG9yc2NhbGUpOmIuY29sb3JzY2FsZSx3PV9bMF1bMV0sVD1bImludGVycG9sYXRlIixbImxpbmVhciJdLFsiaGVhdG1hcC1kZW5zaXR5Il0sMCxhLm9wYWNpdHkodyk8MT93OmEuYWRkT3BhY2l0eSh3LDApXTtmb3IodT0xO3U8Xy5sZW5ndGg7dSsrKVQucHVzaChfW3VdWzBdLF9bdV1bMV0pO3ZhciBrPVsiaW50ZXJwb2xhdGUiLFsibGluZWFyIl0sWyJnZXQiLCJ6Il0sYi5taW4sMCxiLm1heCwxXTtyZXR1cm4gaS5leHRlbmRGbGF0KGMuaGVhdG1hcC5wYWludCx7ImhlYXRtYXAtd2VpZ2h0IjpkP2s6MS8oYi5tYXgtYi5taW4pLCJoZWF0bWFwLWNvbG9yIjpULCJoZWF0bWFwLXJhZGl1cyI6bT97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJyIn06ZS5yYWRpdXMsImhlYXRtYXAtb3BhY2l0eSI6ZS5vcGFjaXR5fSksYy5nZW9qc29uPXt0eXBlOiJGZWF0dXJlQ29sbGVjdGlvbiIsZmVhdHVyZXM6Zn0sYy5oZWF0bWFwLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixjfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvZ2VvanNvbl91dGlscyI6NzcwLCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sMTAzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLGE9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIHMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgbD1zKCJsb24iKXx8W10sYz1zKCJsYXQiKXx8W10sdT1NYXRoLm1pbihsLmxlbmd0aCxjLmxlbmd0aCk7dT8oZS5fbGVuZ3RoPXUscygieiIpLHMoInJhZGl1cyIpLHMoImJlbG93IikscygidGV4dCIpLHMoImhvdmVydGV4dCIpLHMoImhvdmVydGVtcGxhdGUiKSxpKHQsZSxvLHMse3ByZWZpeDoiIixjTGV0dGVyOiJ6In0pKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjQ5LCIuLi8uLi9saWIiOjc3NiwiLi9hdHRyaWJ1dGVzIjoxMDI4fV0sMTAzMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sb249ZS5sb24sdC5sYXQ9ZS5sYXQsdC56PWUueix0fX0se31dLDEwMzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uL3NjYXR0ZXJtYXBib3gvaG92ZXIiKS5ob3ZlclBvaW50cyxhPXQoIi4uL3NjYXR0ZXJtYXBib3gvaG92ZXIiKS5nZXRFeHRyYVRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbz1pKHQsZSxyKTtpZihvKXt2YXIgcz1vWzBdLGw9cy5jZCxjPWxbMF0udHJhY2UsdT1sW3MuaW5kZXhdO2lmKGRlbGV0ZSBzLmNvbG9yLCJ6ImluIHUpe3ZhciBmPXMuc3VicGxvdC5tb2NrQXhpcztzLno9dS56LHMuekxhYmVsPW4udGlja1RleHQoZixmLmMybCh1LnopLCJob3ZlciIpLnRleHR9cmV0dXJuIHMuZXh0cmFUZXh0PWEoYyx1LGxbMF0udC5sYWJlbHMpLFtzXX19fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL3NjYXR0ZXJtYXBib3gvaG92ZXIiOjEyNjF9XSwxMDM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vaGVhdG1hcC9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuLi9zY2F0dGVybWFwYm94L2Zvcm1hdF9sYWJlbHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLGV2ZW50RGF0YTp0KCIuL2V2ZW50X2RhdGEiKSxnZXRCZWxvdzpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLmdldE1hcExheWVycygpLG49MDtuPHIubGVuZ3RoO24rKyl7dmFyIGk9cltuXSxhPWkuaWQ7aWYoInN5bWJvbCI9PT1pLnR5cGUmJiJzdHJpbmciPT10eXBlb2YgYSYmLTE9PT1hLmluZGV4T2YoInBsb3RseS0iKSlyZXR1cm4gYX19LG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJkZW5zaXR5bWFwYm94IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9tYXBib3giKSxjYXRlZ29yaWVzOlsibWFwYm94IiwiZ2wiLCJzaG93TGVnZW5kIl0sbWV0YTp7aHJfbmFtZToiZGVuc2l0eV9tYXBib3gifX19LHsiLi4vLi4vcGxvdHMvbWFwYm94Ijo4ODQsIi4uL2hlYXRtYXAvY29sb3JiYXIiOjEwNjEsIi4uL3NjYXR0ZXJtYXBib3gvZm9ybWF0X2xhYmVscyI6MTI2MCwiLi9hdHRyaWJ1dGVzIjoxMDI4LCIuL2NhbGMiOjEwMjksIi4vZGVmYXVsdHMiOjEwMzEsIi4vZXZlbnRfZGF0YSI6MTAzMiwiLi9ob3ZlciI6MTAzMywiLi9wbG90IjoxMDM1fV0sMTAzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NvbnZlcnQiKSxpPXQoIi4uLy4uL3Bsb3RzL21hcGJveC9jb25zdGFudHMiKS50cmFjZUxheWVyUHJlZml4O2Z1bmN0aW9uIGEodCxlKXt0aGlzLnR5cGU9ImRlbnNpdHltYXBib3giLHRoaXMuc3VicGxvdD10LHRoaXMudWlkPWUsdGhpcy5zb3VyY2VJZD0ic291cmNlLSIrZSx0aGlzLmxheWVyTGlzdD1bWyJoZWF0bWFwIixpK2UrIi1oZWF0bWFwIl1dLHRoaXMuYmVsb3c9bnVsbH12YXIgbz1hLnByb3RvdHlwZTtvLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnN1YnBsb3Qscj10aGlzLmxheWVyTGlzdCxpPW4odCksYT1lLmJlbG93TG9va3VwWyJ0cmFjZS0iK3RoaXMudWlkXTtlLm1hcC5nZXRTb3VyY2UodGhpcy5zb3VyY2VJZCkuc2V0RGF0YShpLmdlb2pzb24pLGEhPT10aGlzLmJlbG93JiYodGhpcy5fcmVtb3ZlTGF5ZXJzKCksdGhpcy5fYWRkTGF5ZXJzKGksYSksdGhpcy5iZWxvdz1hKTtmb3IodmFyIG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIHM9cltvXSxsPXNbMF0sYz1zWzFdLHU9aVtsXTtlLnNldE9wdGlvbnMoYywic2V0TGF5b3V0UHJvcGVydHkiLHUubGF5b3V0KSwidmlzaWJsZSI9PT11LmxheW91dC52aXNpYmlsaXR5JiZlLnNldE9wdGlvbnMoYywic2V0UGFpbnRQcm9wZXJ0eSIsdS5wYWludCl9fSxvLl9hZGRMYXllcnM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dGhpcy5zdWJwbG90LG49dGhpcy5sYXllckxpc3QsaT10aGlzLnNvdXJjZUlkLGE9MDthPG4ubGVuZ3RoO2ErKyl7dmFyIG89blthXSxzPW9bMF0sbD10W3NdO3IuYWRkTGF5ZXIoe3R5cGU6cyxpZDpvWzFdLHNvdXJjZTppLGxheW91dDpsLmxheW91dCxwYWludDpsLnBhaW50fSxlKX19LG8uX3JlbW92ZUxheWVycz1mdW5jdGlvbigpe2Zvcih2YXIgdD10aGlzLnN1YnBsb3QubWFwLGU9dGhpcy5sYXllckxpc3Qscj1lLmxlbmd0aC0xO3I+PTA7ci0tKXQucmVtb3ZlTGF5ZXIoZVtyXVsxXSl9LG8uZGlzcG9zZT1mdW5jdGlvbigpe3ZhciB0PXRoaXMuc3VicGxvdC5tYXA7dGhpcy5fcmVtb3ZlTGF5ZXJzKCksdC5yZW1vdmVTb3VyY2UodGhpcy5zb3VyY2VJZCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWVbMF0udHJhY2UsaT1uZXcgYSh0LHIudWlkKSxvPWkuc291cmNlSWQscz1uKGUpLGw9aS5iZWxvdz10LmJlbG93TG9va3VwWyJ0cmFjZS0iK3IudWlkXTtyZXR1cm4gdC5tYXAuYWRkU291cmNlKG8se3R5cGU6Imdlb2pzb24iLGRhdGE6cy5nZW9qc29ufSksaS5fYWRkTGF5ZXJzKHMsbCksaX19LHsiLi4vLi4vcGxvdHMvbWFwYm94L2NvbnN0YW50cyI6ODgyLCIuL2NvbnZlcnQiOjEwMzB9XSwxMDM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8dC5sZW5ndGg7cisrKXRbcl0uaT1yO24ubWVyZ2VBcnJheShlLnRleHQsdCwidHgiKSxuLm1lcmdlQXJyYXkoZS5ob3ZlcnRleHQsdCwiaHR4Iik7dmFyIGk9ZS5tYXJrZXI7aWYoaSl7bi5tZXJnZUFycmF5KGkub3BhY2l0eSx0LCJtbyIpLG4ubWVyZ2VBcnJheShpLmNvbG9yLHQsIm1jIik7dmFyIGE9aS5saW5lO2EmJihuLm1lcmdlQXJyYXkoYS5jb2xvcix0LCJtbGMiKSxuLm1lcmdlQXJyYXlDYXN0UG9zaXRpdmUoYS53aWR0aCx0LCJtbHciKSl9fX0seyIuLi8uLi9saWIiOjc3Nn1dLDEwMzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG4saT10KCIuLi9iYXIvYXR0cmlidXRlcyIpLGE9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIikubGluZSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGw9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxjPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyx1PXQoIi4vY29uc3RhbnRzIiksZj10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxoPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKTtlLmV4cG9ydHM9e3g6aS54LHgwOmkueDAsZHg6aS5keCx5OmkueSx5MDppLnkwLGR5OmkuZHkseHBlcmlvZDppLnhwZXJpb2QseXBlcmlvZDppLnlwZXJpb2QseHBlcmlvZDA6aS54cGVyaW9kMCx5cGVyaW9kMDppLnlwZXJpb2QwLHhwZXJpb2RhbGlnbm1lbnQ6aS54cGVyaW9kYWxpZ25tZW50LHlwZXJpb2RhbGlnbm1lbnQ6aS55cGVyaW9kYWxpZ25tZW50LHhob3ZlcmZvcm1hdDpzKCJ4IikseWhvdmVyZm9ybWF0OnMoInkiKSxob3ZlcnRleHQ6aS5ob3ZlcnRleHQsaG92ZXJ0ZW1wbGF0ZTpsKHt9LHtrZXlzOnUuZXZlbnREYXRhS2V5c30pLGhvdmVyaW5mbzpmKHt9LG8uaG92ZXJpbmZvLHtmbGFnczpbIm5hbWUiLCJ4IiwieSIsInRleHQiLCJwZXJjZW50IGluaXRpYWwiLCJwZXJjZW50IHByZXZpb3VzIiwicGVyY2VudCB0b3RhbCJdfSksdGV4dGluZm86e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImxhYmVsIiwidGV4dCIsInBlcmNlbnQgaW5pdGlhbCIsInBlcmNlbnQgcHJldmlvdXMiLCJwZXJjZW50IHRvdGFsIiwidmFsdWUiXSxleHRyYXM6WyJub25lIl0sZWRpdFR5cGU6InBsb3QiLGFycmF5T2s6ITF9LHRleHR0ZW1wbGF0ZTpjKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOnUuZXZlbnREYXRhS2V5cy5jb25jYXQoWyJsYWJlbCIsInZhbHVlIl0pfSksdGV4dDppLnRleHQsdGV4dHBvc2l0aW9uOmkudGV4dHBvc2l0aW9uLGluc2lkZXRleHRhbmNob3I6Zih7fSxpLmluc2lkZXRleHRhbmNob3Ise2RmbHQ6Im1pZGRsZSJ9KSx0ZXh0YW5nbGU6Zih7fSxpLnRleHRhbmdsZSx7ZGZsdDowfSksdGV4dGZvbnQ6aS50ZXh0Zm9udCxpbnNpZGV0ZXh0Zm9udDppLmluc2lkZXRleHRmb250LG91dHNpZGV0ZXh0Zm9udDppLm91dHNpZGV0ZXh0Zm9udCxjb25zdHJhaW50ZXh0OmkuY29uc3RyYWludGV4dCxjbGlwb25heGlzOmkuY2xpcG9uYXhpcyxvcmllbnRhdGlvbjpmKHt9LGkub3JpZW50YXRpb24se30pLG9mZnNldDpmKHt9LGkub2Zmc2V0LHthcnJheU9rOiExfSksd2lkdGg6Zih7fSxpLndpZHRoLHthcnJheU9rOiExfSksbWFya2VyOihuPWYoe30saS5tYXJrZXIpLGRlbGV0ZSBuLnBhdHRlcm4sbiksY29ubmVjdG9yOntmaWxsY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSxsaW5lOntjb2xvcjpmKHt9LGEuY29sb3Ise2RmbHQ6aC5kZWZhdWx0TGluZX0pLHdpZHRoOmYoe30sYS53aWR0aCx7ZGZsdDowLGVkaXRUeXBlOiJwbG90In0pLGRhc2g6YS5kYXNoLGVkaXRUeXBlOiJzdHlsZSJ9LHZpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LG9mZnNldGdyb3VwOmkub2Zmc2V0Z3JvdXAsYWxpZ25tZW50Z3JvdXA6aS5hbGlnbm1lbnRncm91cH19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODk5LCIuLi9iYXIvYXR0cmlidXRlcyI6OTE0LCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExOTEsIi4vY29uc3RhbnRzIjoxMDM5fV0sMTAzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCIpLGE9dCgiLi9hcnJheXNfdG9fY2FsY2RhdGEiKSxvPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKSxzPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZnVuY3Rpb24gbCh0KXtyZXR1cm4gdD09PXM/MDp0fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGMsdSxmLGgscCxkLG0sZz1uLmdldEZyb21JZCh0LGUueGF4aXN8fCJ4Iiksdj1uLmdldEZyb21JZCh0LGUueWF4aXN8fCJ5Iik7ImgiPT09ZS5vcmllbnRhdGlvbj8ocj1nLm1ha2VDYWxjZGF0YShlLCJ4IiksdT12Lm1ha2VDYWxjZGF0YShlLCJ5IiksZj1pKGUsdiwieSIsdSksaD0hIWUueXBlcmlvZGFsaWdubWVudCxwPSJ5Iik6KHI9di5tYWtlQ2FsY2RhdGEoZSwieSIpLHU9Zy5tYWtlQ2FsY2RhdGEoZSwieCIpLGY9aShlLGcsIngiLHUpLGg9ISFlLnhwZXJpb2RhbGlnbm1lbnQscD0ieCIpLGM9Zi52YWxzO3ZhciB5LHg9TWF0aC5taW4oYy5sZW5ndGgsci5sZW5ndGgpLGI9bmV3IEFycmF5KHgpO2ZvcihlLl9iYXNlPVtdLGQ9MDtkPHg7ZCsrKXtyW2RdPDAmJihyW2RdPXMpO3ZhciBfPSExO3JbZF0hPT1zJiZkKzE8eCYmcltkKzFdIT09cyYmKF89ITApLG09YltkXT17cDpjW2RdLHM6cltkXSxjTmV4dDpffSxlLl9iYXNlW2RdPS0uNSptLnMsaCYmKGJbZF0ub3JpZ19wPXVbZF0sYltkXVtwKyJFbmQiXT1mLmVuZHNbZF0sYltkXVtwKyJTdGFydCJdPWYuc3RhcnRzW2RdKSxlLmlkcyYmKG0uaWQ9U3RyaW5nKGUuaWRzW2RdKSksMD09PWQmJihiWzBdLnZUb3RhbD0wKSxiWzBdLnZUb3RhbCs9bChtLnMpLG0uYmVnUj1sKG0ucykvbChiWzBdLnMpfWZvcihkPTA7ZDx4O2QrKykobT1iW2RdKS5zIT09cyYmKG0uc3VtUj1tLnMvYlswXS52VG90YWwsbS5kaWZSPXZvaWQgMCE9PXk/bS5zL3k6MSx5PW0ucyk7cmV0dXJuIGEoYixlKSxvKGIsZSksYn19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIjo4MjQsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjExOTMsIi4vYXJyYXlzX3RvX2NhbGNkYXRhIjoxMDM2fV0sMTAzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2V2ZW50RGF0YUtleXM6WyJwZXJjZW50SW5pdGlhbCIsInBlcmNlbnRQcmV2aW91cyIsInBlcmNlbnRUb3RhbCJdfX0se31dLDEwNDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiKS5zZXRHcm91cFBvc2l0aW9ucztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGE9dC5fZnVsbExheW91dCxvPXQuX2Z1bGxEYXRhLHM9dC5jYWxjZGF0YSxsPWUueGF4aXMsYz1lLnlheGlzLHU9W10sZj1bXSxoPVtdO2ZvcihpPTA7aTxvLmxlbmd0aDtpKyspe3ZhciBwPW9baV0sZD0iaCI9PT1wLm9yaWVudGF0aW9uOyEwPT09cC52aXNpYmxlJiZwLnhheGlzPT09bC5faWQmJnAueWF4aXM9PT1jLl9pZCYmImZ1bm5lbCI9PT1wLnR5cGUmJihyPXNbaV0sZD9oLnB1c2gocik6Zi5wdXNoKHIpLHUucHVzaChyKSl9dmFyIG09e21vZGU6YS5mdW5uZWxtb2RlLG5vcm06YS5mdW5uZWxub3JtLGdhcDphLmZ1bm5lbGdhcCxncm91cGdhcDphLmZ1bm5lbGdyb3VwZ2FwfTtmb3Iobih0LGwsYyxmLG0pLG4odCxjLGwsaCxtKSxpPTA7aTx1Lmxlbmd0aDtpKyspe3I9dVtpXTtmb3IodmFyIGc9MDtnPHIubGVuZ3RoO2crKylnKzE8ci5sZW5ndGgmJihyW2ddLm5leHRQMD1yW2crMV0ucDAscltnXS5uZXh0UzA9cltnKzFdLnMwLHJbZ10ubmV4dFAxPXJbZysxXS5wMSxyW2ddLm5leHRTMT1yW2crMV0uczEpfX19LHsiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiOjkxN31dLDEwNDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVHcm91cGluZ0RlZmF1bHRzLGE9dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlVGV4dCxvPXQoIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIiksbD10KCIuL2F0dHJpYnV0ZXMiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKTtlLmV4cG9ydHM9e3N1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLGkpe2Z1bmN0aW9uIHUocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGwscixpKX1pZihvKHQsZSxpLHUpKXtzKHQsZSxpLHUpLHUoInhob3ZlcmZvcm1hdCIpLHUoInlob3ZlcmZvcm1hdCIpLHUoIm9yaWVudGF0aW9uIixlLnkmJiFlLng/InYiOiJoIiksdSgib2Zmc2V0IiksdSgid2lkdGgiKTt2YXIgZj11KCJ0ZXh0Iik7dSgiaG92ZXJ0ZXh0IiksdSgiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciBoPXUoInRleHRwb3NpdGlvbiIpO2EodCxlLGksdSxoLHttb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMCxtb2R1bGVIYXNDbGlwb25heGlzOiEwLG1vZHVsZUhhc1RleHRhbmdsZTohMCxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITB9KSwibm9uZSI9PT1lLnRleHRwb3NpdGlvbnx8ZS50ZXh0dGVtcGxhdGV8fHUoInRleHRpbmZvIixBcnJheS5pc0FycmF5KGYpPyJ0ZXh0K3ZhbHVlIjoidmFsdWUiKTt2YXIgcD11KCJtYXJrZXIuY29sb3IiLHIpO2lmKHUoIm1hcmtlci5saW5lLmNvbG9yIixjLmRlZmF1bHRMaW5lKSx1KCJtYXJrZXIubGluZS53aWR0aCIpLHUoImNvbm5lY3Rvci52aXNpYmxlIikpdSgiY29ubmVjdG9yLmZpbGxjb2xvciIsZnVuY3Rpb24odCl7dmFyIGU9bi5pc0FycmF5T3JUeXBlZEFycmF5KHQpPyIjMDAwIjp0O3JldHVybiBjLmFkZE9wYWNpdHkoZSwuNSpjLm9wYWNpdHkoZSkpfShwKSksdSgiY29ubmVjdG9yLmxpbmUud2lkdGgiKSYmKHUoImNvbm5lY3Rvci5saW5lLmNvbG9yIiksdSgiY29ubmVjdG9yLmxpbmUuZGFzaCIpKX1lbHNlIGUudmlzaWJsZT0hMX0sY3Jvc3NUcmFjZURlZmF1bHRzOmZ1bmN0aW9uKHQsZSl7dmFyIHIsYTtmdW5jdGlvbiBvKHQpe3JldHVybiBuLmNvZXJjZShhLl9pbnB1dCxhLGwsdCl9aWYoImdyb3VwIj09PWUuZnVubmVsbW9kZSlmb3IodmFyIHM9MDtzPHQubGVuZ3RoO3MrKylyPShhPXRbc10pLl9pbnB1dCxpKHIsYSxlLG8pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9saWIiOjc3NiwiLi4vYmFyL2RlZmF1bHRzIjo5MTgsIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIjoxMjExLCIuLi9zY2F0dGVyL3h5X2RlZmF1bHRzIjoxMjE4LCIuL2F0dHJpYnV0ZXMiOjEwMzd9XSwxMDQyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3JldHVybiB0Lng9InhWYWwiaW4gZT9lLnhWYWw6ZS54LHQueT0ieVZhbCJpbiBlP2UueVZhbDplLnksInBlcmNlbnRJbml0aWFsImluIGUmJih0LnBlcmNlbnRJbml0aWFsPWUucGVyY2VudEluaXRpYWwpLCJwZXJjZW50UHJldmlvdXMiaW4gZSYmKHQucGVyY2VudFByZXZpb3VzPWUucGVyY2VudFByZXZpb3VzKSwicGVyY2VudFRvdGFsImluIGUmJih0LnBlcmNlbnRUb3RhbD1lLnBlcmNlbnRUb3RhbCksZS54YSYmKHQueGF4aXM9ZS54YSksZS55YSYmKHQueWF4aXM9ZS55YSksdH19LHt9XSwxMDQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5vcGFjaXR5LGk9dCgiLi4vYmFyL2hvdmVyIikuaG92ZXJPbkJhcnMsYT10KCIuLi8uLi9saWIiKS5mb3JtYXRQZXJjZW50O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvLHMpe3ZhciBsPWkodCxlLHIsbyxzKTtpZihsKXt2YXIgYz1sLmNkLHU9Y1swXS50cmFjZSxmPSJoIj09PXUub3JpZW50YXRpb24saD1jW2wuaW5kZXhdO2xbKGY/IngiOiJ5IikrIkxhYmVsVmFsIl09aC5zLGwucGVyY2VudEluaXRpYWw9aC5iZWdSLGwucGVyY2VudEluaXRpYWxMYWJlbD1hKGguYmVnUiwxKSxsLnBlcmNlbnRQcmV2aW91cz1oLmRpZlIsbC5wZXJjZW50UHJldmlvdXNMYWJlbD1hKGguZGlmUiwxKSxsLnBlcmNlbnRUb3RhbD1oLnN1bVIsbC5wZXJjZW50VG90YWxMYWJlbD1hKGguc3VtUiwxKTt2YXIgcD1oLmhpfHx1LmhvdmVyaW5mbyxkPVtdO2lmKHAmJiJub25lIiE9PXAmJiJza2lwIiE9PXApe3ZhciBtPSJhbGwiPT09cCxnPXAuc3BsaXQoIisiKSx2PWZ1bmN0aW9uKHQpe3JldHVybiBtfHwtMSE9PWcuaW5kZXhPZih0KX07digicGVyY2VudCBpbml0aWFsIikmJmQucHVzaChsLnBlcmNlbnRJbml0aWFsTGFiZWwrIiBvZiBpbml0aWFsIiksdigicGVyY2VudCBwcmV2aW91cyIpJiZkLnB1c2gobC5wZXJjZW50UHJldmlvdXNMYWJlbCsiIG9mIHByZXZpb3VzIiksdigicGVyY2VudCB0b3RhbCIpJiZkLnB1c2gobC5wZXJjZW50VG90YWxMYWJlbCsiIG9mIHRvdGFsIil9cmV0dXJuIGwuZXh0cmFUZXh0PWQuam9pbigiPGJyPiIpLGwuY29sb3I9ZnVuY3Rpb24odCxlKXt2YXIgcj10Lm1hcmtlcixpPWUubWN8fHIuY29sb3IsYT1lLm1sY3x8ci5saW5lLmNvbG9yLG89ZS5tbHd8fHIubGluZS53aWR0aDtpZihuKGkpKXJldHVybiBpO2lmKG4oYSkmJm8pcmV0dXJuIGF9KHUsaCksW2xdfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9saWIiOjc3NiwiLi4vYmFyL2hvdmVyIjo5MjF9XSwxMDQ0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5jcm9zc1RyYWNlRGVmYXVsdHMsc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLGNyb3NzVHJhY2VDYWxjOnQoIi4vY3Jvc3NfdHJhY2VfY2FsYyIpLHBsb3Q6dCgiLi9wbG90Iiksc3R5bGU6dCgiLi9zdHlsZSIpLnN0eWxlLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4uL2Jhci9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiZnVubmVsIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiYmFyLWxpa2UiLCJjYXJ0ZXNpYW4iLCJzdmciLCJvcmllbnRlZCIsInNob3dMZWdlbmQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi4vYmFyL3NlbGVjdCI6OTI2LCIuL2F0dHJpYnV0ZXMiOjEwMzcsIi4vY2FsYyI6MTAzOCwiLi9jcm9zc190cmFjZV9jYWxjIjoxMDQwLCIuL2RlZmF1bHRzIjoxMDQxLCIuL2V2ZW50X2RhdGEiOjEwNDIsIi4vaG92ZXIiOjEwNDMsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEwNDUsIi4vbGF5b3V0X2RlZmF1bHRzIjoxMDQ2LCIuL3Bsb3QiOjEwNDcsIi4vc3R5bGUiOjEwNDh9XSwxMDQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17ZnVubmVsbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic3RhY2siLCJncm91cCIsIm92ZXJsYXkiXSxkZmx0OiJzdGFjayIsZWRpdFR5cGU6ImNhbGMifSxmdW5uZWxnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6ImNhbGMifSxmdW5uZWxncm91cGdhcDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifX19LHt9XSwxMDQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGE9ITE7ZnVuY3Rpb24gbyhyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfWZvcih2YXIgcz0wO3M8ci5sZW5ndGg7cysrKXt2YXIgbD1yW3NdO2lmKGwudmlzaWJsZSYmImZ1bm5lbCI9PT1sLnR5cGUpe2E9ITA7YnJlYWt9fWEmJihvKCJmdW5uZWxtb2RlIiksbygiZnVubmVsZ2FwIiwuMiksbygiZnVubmVsZ3JvdXBnYXAiKSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMDQ1fV0sMTA0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxzPXQoIi4uL2Jhci9wbG90IiksbD10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikuY2xlYXJNaW5UZXh0U2l6ZTtmdW5jdGlvbiBjKHQsZSxyLG4pe3ZhciBpPVtdLGE9W10sbz1uP2U6cixzPW4/cjplO3JldHVybiBpWzBdPW8uYzJwKHQuczAsITApLGFbMF09cy5jMnAodC5wMCwhMCksaVsxXT1vLmMycCh0LnMxLCEwKSxhWzFdPXMuYzJwKHQucDEsITApLGlbMl09by5jMnAodC5uZXh0UzAsITApLGFbMl09cy5jMnAodC5uZXh0UDAsITApLGlbM109by5jMnAodC5uZXh0UzEsITApLGFbM109cy5jMnAodC5uZXh0UDEsITApLG4/W2ksYV06W2EsaV19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHUpe3ZhciBmPXQuX2Z1bGxMYXlvdXQ7bCgiZnVubmVsIixmKSxmdW5jdGlvbih0LGUscixzKXt2YXIgbD1lLnhheGlzLHU9ZS55YXhpcztpLm1ha2VUcmFjZUdyb3VwcyhzLHIsInRyYWNlIGJhcnMiKS5lYWNoKChmdW5jdGlvbihyKXt2YXIgcz1uLnNlbGVjdCh0aGlzKSxmPXJbMF0udHJhY2UsaD1pLmVuc3VyZVNpbmdsZShzLCJnIiwicmVnaW9ucyIpO2lmKGYuY29ubmVjdG9yJiZmLmNvbm5lY3Rvci52aXNpYmxlKXt2YXIgcD0iaCI9PT1mLm9yaWVudGF0aW9uLGQ9aC5zZWxlY3RBbGwoImcucmVnaW9uIikuZGF0YShpLmlkZW50aXR5KTtkLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicmVnaW9uIiwhMCksZC5leGl0KCkucmVtb3ZlKCk7dmFyIG09ZC5zaXplKCk7ZC5lYWNoKChmdW5jdGlvbihyLHMpe2lmKHM9PT1tLTF8fHIuY05leHQpe3ZhciBmPWMocixsLHUscCksaD1mWzBdLGQ9ZlsxXSxnPSIiO2hbMF0hPT1vJiZkWzBdIT09byYmaFsxXSE9PW8mJmRbMV0hPT1vJiZoWzJdIT09byYmZFsyXSE9PW8mJmhbM10hPT1vJiZkWzNdIT09byYmKGcrPXA/Ik0iK2hbMF0rIiwiK2RbMV0rIkwiK2hbMl0rIiwiK2RbMl0rIkgiK2hbM10rIkwiK2hbMV0rIiwiK2RbMV0rIloiOiJNIitoWzFdKyIsIitkWzFdKyJMIitoWzJdKyIsIitkWzNdKyJWIitkWzJdKyJMIitoWzFdKyIsIitkWzBdKyJaIiksIiI9PT1nJiYoZz0iTTAsMFoiKSxpLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwicGF0aCIpLmF0dHIoImQiLGcpLmNhbGwoYS5zZXRDbGlwVXJsLGUubGF5ZXJDbGlwSWQsdCl9fSkpfWVsc2UgaC5yZW1vdmUoKX0pKX0odCxlLHIsdSksZnVuY3Rpb24odCxlLHIsbyl7dmFyIHM9ZS54YXhpcyxsPWUueWF4aXM7aS5tYWtlVHJhY2VHcm91cHMobyxyLCJ0cmFjZSBiYXJzIikuZWFjaCgoZnVuY3Rpb24ocil7dmFyIG89bi5zZWxlY3QodGhpcyksdT1yWzBdLnRyYWNlLGY9aS5lbnN1cmVTaW5nbGUobywiZyIsImxpbmVzIik7aWYodS5jb25uZWN0b3ImJnUuY29ubmVjdG9yLnZpc2libGUmJnUuY29ubmVjdG9yLmxpbmUud2lkdGgpe3ZhciBoPSJoIj09PXUub3JpZW50YXRpb24scD1mLnNlbGVjdEFsbCgiZy5saW5lIikuZGF0YShpLmlkZW50aXR5KTtwLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGluZSIsITApLHAuZXhpdCgpLnJlbW92ZSgpO3ZhciBkPXAuc2l6ZSgpO3AuZWFjaCgoZnVuY3Rpb24ocixvKXtpZihvPT09ZC0xfHxyLmNOZXh0KXt2YXIgdT1jKHIscyxsLGgpLGY9dVswXSxwPXVbMV0sbT0iIjt2b2lkIDAhPT1mWzNdJiZ2b2lkIDAhPT1wWzNdJiYoaD8obSs9Ik0iK2ZbMF0rIiwiK3BbMV0rIkwiK2ZbMl0rIiwiK3BbMl0sbSs9Ik0iK2ZbMV0rIiwiK3BbMV0rIkwiK2ZbM10rIiwiK3BbMl0pOihtKz0iTSIrZlsxXSsiLCIrcFsxXSsiTCIrZlsyXSsiLCIrcFszXSxtKz0iTSIrZlsxXSsiLCIrcFswXSsiTCIrZlsyXSsiLCIrcFsyXSkpLCIiPT09bSYmKG09Ik0wLDBaIiksaS5lbnN1cmVTaW5nbGUobi5zZWxlY3QodGhpcyksInBhdGgiKS5hdHRyKCJkIixtKS5jYWxsKGEuc2V0Q2xpcFVybCxlLmxheWVyQ2xpcElkLHQpfX0pKX1lbHNlIGYucmVtb3ZlKCl9KSl9KHQsZSxyLHUpLHMucGxvdCh0LGUscix1LHttb2RlOmYuZnVubmVsbW9kZSxub3JtOmYuZnVubmVsbW9kZSxnYXA6Zi5mdW5uZWxnYXAsZ3JvdXBnYXA6Zi5mdW5uZWxncm91cGdhcH0pfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiLi4vYmFyL3Bsb3QiOjkyNSwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6OTMwLCJAcGxvdGx5L2QzIjo1OH1dLDEwNDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIikuREVTRUxFQ1RESU0scz10KCIuLi9iYXIvc3R5bGUiKSxsPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKS5yZXNpemVUZXh0LGM9cy5zdHlsZVRleHRQb2ludHM7ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0LGUscil7dmFyIHM9cnx8bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLmZ1bm5lbGxheWVyIikuc2VsZWN0QWxsKCJnLnRyYWNlIik7bCh0LHMsImZ1bm5lbCIpLHMuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSkpLHMuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcykscz1lWzBdLnRyYWNlO3Iuc2VsZWN0QWxsKCIucG9pbnQgPiBwYXRoIikuZWFjaCgoZnVuY3Rpb24odCl7aWYoIXQuaXNCbGFuayl7dmFyIGU9cy5tYXJrZXI7bi5zZWxlY3QodGhpcykuY2FsbChhLmZpbGwsdC5tY3x8ZS5jb2xvcikuY2FsbChhLnN0cm9rZSx0Lm1sY3x8ZS5saW5lLmNvbG9yKS5jYWxsKGkuZGFzaExpbmUsZS5saW5lLmRhc2gsdC5tbHd8fGUubGluZS53aWR0aCkuc3R5bGUoIm9wYWNpdHkiLHMuc2VsZWN0ZWRwb2ludHMmJiF0LnNlbGVjdGVkP286MSl9fSkpLGMocixzLHQpLHIuc2VsZWN0QWxsKCIucmVnaW9ucyIpLmVhY2goKGZ1bmN0aW9uKCl7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIikuc3R5bGUoInN0cm9rZS13aWR0aCIsMCkuY2FsbChhLmZpbGwscy5jb25uZWN0b3IuZmlsbGNvbG9yKX0pKSxyLnNlbGVjdEFsbCgiLmxpbmVzIikuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1zLmNvbm5lY3Rvci5saW5lO2kubGluZUdyb3VwU3R5bGUobi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIiksdC53aWR0aCx0LmNvbG9yLHQuZGFzaCl9KSl9KSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo3NTEsIi4uL2Jhci9zdHlsZSI6OTI4LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo5MzAsIkBwbG90bHkvZDMiOjU4fV0sMTA0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9waWUvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMscz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2xhYmVsczpuLmxhYmVscyxsYWJlbDA6bi5sYWJlbDAsZGxhYmVsOm4uZGxhYmVsLHZhbHVlczpuLnZhbHVlcyxtYXJrZXI6e2NvbG9yczpuLm1hcmtlci5jb2xvcnMsbGluZTp7Y29sb3I6bCh7fSxuLm1hcmtlci5saW5lLmNvbG9yLHtkZmx0Om51bGx9KSx3aWR0aDpsKHt9LG4ubWFya2VyLmxpbmUud2lkdGgse2RmbHQ6MX0pLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSx0ZXh0Om4udGV4dCxob3ZlcnRleHQ6bi5ob3ZlcnRleHQsc2NhbGVncm91cDpsKHt9LG4uc2NhbGVncm91cCx7fSksdGV4dGluZm86bCh7fSxuLnRleHRpbmZvLHtmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwicGVyY2VudCJdfSksdGV4dHRlbXBsYXRlOnMoe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJsYWJlbCIsImNvbG9yIiwidmFsdWUiLCJ0ZXh0IiwicGVyY2VudCJdfSksaG92ZXJpbmZvOmwoe30saS5ob3ZlcmluZm8se2ZsYWdzOlsibGFiZWwiLCJ0ZXh0IiwidmFsdWUiLCJwZXJjZW50IiwibmFtZSJdfSksaG92ZXJ0ZW1wbGF0ZTpvKHt9LHtrZXlzOlsibGFiZWwiLCJjb2xvciIsInZhbHVlIiwidGV4dCIsInBlcmNlbnQiXX0pLHRleHRwb3NpdGlvbjpsKHt9LG4udGV4dHBvc2l0aW9uLHt2YWx1ZXM6WyJpbnNpZGUiLCJub25lIl0sZGZsdDoiaW5zaWRlIn0pLHRleHRmb250Om4udGV4dGZvbnQsaW5zaWRldGV4dGZvbnQ6bi5pbnNpZGV0ZXh0Zm9udCx0aXRsZTp7dGV4dDpuLnRpdGxlLnRleHQsZm9udDpuLnRpdGxlLmZvbnQscG9zaXRpb246bCh7fSxuLnRpdGxlLnBvc2l0aW9uLHt2YWx1ZXM6WyJ0b3AgbGVmdCIsInRvcCBjZW50ZXIiLCJ0b3AgcmlnaHQiXSxkZmx0OiJ0b3AgY2VudGVyIn0pLGVkaXRUeXBlOiJwbG90In0sZG9tYWluOmEoe25hbWU6ImZ1bm5lbGFyZWEiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pLGFzcGVjdHJhdGlvOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGJhc2VyYXRpbzp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi4zMzMsZWRpdFR5cGU6InBsb3QifX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6ODU1LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL3BpZS9hdHRyaWJ1dGVzIjoxMTY1fV0sMTA1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0iZnVubmVsYXJlYSIsci5wbG90PWZ1bmN0aW9uKHQsZSxpLGEpe24ucGxvdEJhc2VQbG90KHIubmFtZSx0LGUsaSxhKX0sci5jbGVhbj1mdW5jdGlvbih0LGUsaSxhKXtuLmNsZWFuQmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfX0seyIuLi8uLi9wbG90cy9wbG90cyI6ODkwfV0sMTA1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9waWUvY2FsYyIpO2UuZXhwb3J0cz17Y2FsYzpmdW5jdGlvbih0LGUpe3JldHVybiBuLmNhbGModCxlKX0sY3Jvc3NUcmFjZUNhbGM6ZnVuY3Rpb24odCl7bi5jcm9zc1RyYWNlQ2FsYyh0LHt0eXBlOiJmdW5uZWxhcmVhIn0pfX19LHsiLi4vcGllL2NhbGMiOjExNjd9XSwxMDUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxvPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQscz10KCIuLi9waWUvZGVmYXVsdHMiKS5oYW5kbGVMYWJlbHNBbmRWYWx1ZXM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe2Z1bmN0aW9uIGMocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX12YXIgdT1jKCJsYWJlbHMiKSxmPWMoInZhbHVlcyIpLGg9cyh1LGYpLHA9aC5sZW47aWYoZS5faGFzTGFiZWxzPWguaGFzTGFiZWxzLGUuX2hhc1ZhbHVlcz1oLmhhc1ZhbHVlcywhZS5faGFzTGFiZWxzJiZlLl9oYXNWYWx1ZXMmJihjKCJsYWJlbDAiKSxjKCJkbGFiZWwiKSkscCl7ZS5fbGVuZ3RoPXAsYygibWFya2VyLmxpbmUud2lkdGgiKSYmYygibWFya2VyLmxpbmUuY29sb3IiLGwucGFwZXJfYmdjb2xvciksYygibWFya2VyLmNvbG9ycyIpLGMoInNjYWxlZ3JvdXAiKTt2YXIgZCxtPWMoInRleHQiKSxnPWMoInRleHR0ZW1wbGF0ZSIpO2lmKGd8fChkPWMoInRleHRpbmZvIixBcnJheS5pc0FycmF5KG0pPyJ0ZXh0K3BlcmNlbnQiOiJwZXJjZW50IikpLGMoImhvdmVydGV4dCIpLGMoImhvdmVydGVtcGxhdGUiKSxnfHxkJiYibm9uZSIhPT1kKXt2YXIgdj1jKCJ0ZXh0cG9zaXRpb24iKTtvKHQsZSxsLGMsdix7bW9kdWxlSGFzU2VsZWN0ZWQ6ITEsbW9kdWxlSGFzVW5zZWxlY3RlZDohMSxtb2R1bGVIYXNDb25zdHJhaW46ITEsbW9kdWxlSGFzQ2xpcG9uYXhpczohMSxtb2R1bGVIYXNUZXh0YW5nbGU6ITEsbW9kdWxlSGFzSW5zaWRlYW5jaG9yOiExfSl9YShlLGwsYyksYygidGl0bGUudGV4dCIpJiYoYygidGl0bGUucG9zaXRpb24iKSxuLmNvZXJjZUZvbnQoYywidGl0bGUuZm9udCIsbC5mb250KSksYygiYXNwZWN0cmF0aW8iKSxjKCJiYXNlcmF0aW8iKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6ODU1LCIuLi9iYXIvZGVmYXVsdHMiOjkxOCwiLi4vcGllL2RlZmF1bHRzIjoxMTY4LCIuL2F0dHJpYnV0ZXMiOjEwNDl9XSwxMDUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImZ1bm5lbGFyZWEiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbInBpZS1saWtlIiwiZnVubmVsYXJlYSIsInNob3dMZWdlbmQiXSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxjcm9zc1RyYWNlQ2FsYzp0KCIuL2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKSxzdHlsZU9uZTp0KCIuLi9waWUvc3R5bGVfb25lIiksbWV0YTp7fX19LHsiLi4vcGllL3N0eWxlX29uZSI6MTE3NiwiLi9hdHRyaWJ1dGVzIjoxMDQ5LCIuL2Jhc2VfcGxvdCI6MTA1MCwiLi9jYWxjIjoxMDUxLCIuL2RlZmF1bHRzIjoxMDUyLCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMDU0LCIuL2xheW91dF9kZWZhdWx0cyI6MTA1NSwiLi9wbG90IjoxMDU2LCIuL3N0eWxlIjoxMDU3fV0sMTA1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9waWUvbGF5b3V0X2F0dHJpYnV0ZXMiKS5oaWRkZW5sYWJlbHM7ZS5leHBvcnRzPXtoaWRkZW5sYWJlbHM6bixmdW5uZWxhcmVhY29sb3J3YXk6e3ZhbFR5cGU6ImNvbG9ybGlzdCIsZWRpdFR5cGU6ImNhbGMifSxleHRlbmRmdW5uZWxhcmVhY29sb3JzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn19fSx7Ii4uL3BpZS9sYXlvdXRfYXR0cmlidXRlcyI6MTE3Mn1dLDEwNTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZnVuY3Rpb24gcihyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXIoImhpZGRlbmxhYmVscyIpLHIoImZ1bm5lbGFyZWFjb2xvcndheSIsZS5jb2xvcndheSkscigiZXh0ZW5kZnVubmVsYXJlYWNvbG9ycyIpfX0seyIuLi8uLi9saWIiOjc3NiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTA1NH1dLDEwNTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYT10KCIuLi8uLi9saWIiKSxvPWEuc3RyU2NhbGUscz1hLnN0clRyYW5zbGF0ZSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vYmFyL3Bsb3QiKS50b01vdmVJbnNpZGVCYXIsdT10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IiksZj11LnJlY29yZE1pblRleHRTaXplLGg9dS5jbGVhck1pblRleHRTaXplLHA9dCgiLi4vcGllL2hlbHBlcnMiKSxkPXQoIi4uL3BpZS9wbG90IiksbT1kLmF0dGFjaEZ4SGFuZGxlcnMsZz1kLmRldGVybWluZUluc2lkZVRleHRGb250LHY9ZC5sYXlvdXRBcmVhcyx5PWQucHJlcmVuZGVyVGl0bGVzLHg9ZC5wb3NpdGlvblRpdGxlT3V0c2lkZSxiPWQuZm9ybWF0U2xpY2VMYWJlbDtmdW5jdGlvbiBfKHQsZSl7cmV0dXJuImwiKyhlWzBdLXRbMF0pKyIsIisoZVsxXS10WzFdKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0O2goImZ1bm5lbGFyZWEiLHIpLHkoZSx0KSx2KGUsci5fc2l6ZSksYS5tYWtlVHJhY2VHcm91cHMoci5fZnVubmVsYXJlYWxheWVyLGUsInRyYWNlIikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHU9bi5zZWxlY3QodGhpcyksaD1lWzBdLGQ9aC50cmFjZTshZnVuY3Rpb24odCl7aWYoIXQubGVuZ3RoKXJldHVybjt2YXIgZT10WzBdLHI9ZS50cmFjZSxuPXIuYXNwZWN0cmF0aW8saT1yLmJhc2VyYXRpbztpPi45OTkmJihpPS45OTkpO3ZhciBhLG89TWF0aC5wb3coaSwyKSxzPWUudlRvdGFsLGw9cyxjPXMqby8oMS1vKS9zO2Z1bmN0aW9uIHUoKXt2YXIgdCxlPXt4OnQ9TWF0aC5zcXJ0KGMpLHk6LXR9O3JldHVybltlLngsZS55XX12YXIgZixoLHA9W107Zm9yKHAucHVzaCh1KCkpLGY9dC5sZW5ndGgtMTtmPi0xO2YtLSlpZighKGg9dFtmXSkuaGlkZGVuKXt2YXIgZD1oLnYvbDtjKz1kLHAucHVzaCh1KCkpfXZhciBtPTEvMCxnPS0xLzA7Zm9yKGY9MDtmPHAubGVuZ3RoO2YrKylhPXBbZl0sbT1NYXRoLm1pbihtLGFbMV0pLGc9TWF0aC5tYXgoZyxhWzFdKTtmb3IoZj0wO2Y8cC5sZW5ndGg7ZisrKXBbZl1bMV0tPShnK20pLzI7dmFyIHY9cFtwLmxlbmd0aC0xXVswXSx5PWUucix4PShnLW0pLzIsYj15L3YsXz15L3gqbjtmb3IoZS5yPV8qeCxmPTA7ZjxwLmxlbmd0aDtmKyspcFtmXVswXSo9YixwW2ZdWzFdKj1fO3ZhciB3PVstKGE9cFswXSlbMF0sYVsxXV0sVD1bYVswXSxhWzFdXSxrPTA7Zm9yKGY9dC5sZW5ndGgtMTtmPi0xO2YtLSlpZighKGg9dFtmXSkuaGlkZGVuKXt2YXIgQT1wW2srPTFdWzBdLE09cFtrXVsxXTtoLlRMPVstQSxNXSxoLlRSPVtBLE1dLGguQkw9dyxoLkJSPVQsaC5weG1pZD0oUz1oLlRSLEU9aC5CUixbLjUqKFNbMF0rRVswXSksLjUqKFNbMV0rRVsxXSldKSx3PWguVEwsVD1oLlRSfXZhciBTLEV9KGUpLHUuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdT1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuc2xpY2UiKS5kYXRhKGUpO3UuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzbGljZSIsITApLHUuZXhpdCgpLnJlbW92ZSgpLHUuZWFjaCgoZnVuY3Rpb24obyxzKXtpZihvLmhpZGRlbiluLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgsZyIpLnJlbW92ZSgpO2Vsc2V7by5wb2ludE51bWJlcj1vLmksby5jdXJ2ZU51bWJlcj1kLmluZGV4O3ZhciB1PWguY3gsdj1oLmN5LHk9bi5zZWxlY3QodGhpcykseD15LnNlbGVjdEFsbCgicGF0aC5zdXJmYWNlIikuZGF0YShbb10pO3guZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJzdXJmYWNlIiwhMCkuc3R5bGUoeyJwb2ludGVyLWV2ZW50cyI6ImFsbCJ9KSx5LmNhbGwobSx0LGUpO3ZhciB3PSJNIisodStvLlRSWzBdKSsiLCIrKHYrby5UUlsxXSkrXyhvLlRSLG8uQlIpK18oby5CUixvLkJMKStfKG8uQkwsby5UTCkrIloiO3guYXR0cigiZCIsdyksYih0LG8saCk7dmFyIFQ9cC5jYXN0T3B0aW9uKGQudGV4dHBvc2l0aW9uLG8ucHRzKSxrPXkuc2VsZWN0QWxsKCJnLnNsaWNldGV4dCIpLmRhdGEoby50ZXh0JiYibm9uZSIhPT1UP1swXTpbXSk7ay5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLGsuZXhpdCgpLnJlbW92ZSgpLGsuZWFjaCgoZnVuY3Rpb24oKXt2YXIgaD1hLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSkscD1hLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LGcoZCxvLHIuZm9udCkpO2gudGV4dChvLnRleHQpLmF0dHIoe2NsYXNzOiJzbGljZXRleHQiLHRyYW5zZm9ybToiIiwidGV4dC1hbmNob3IiOiJtaWRkbGUifSkuY2FsbChpLmZvbnQscCkuY2FsbChsLmNvbnZlcnRUb1RzcGFucyx0KTt2YXIgbSx5LHgsYj1pLmJCb3goaC5ub2RlKCkpLF89TWF0aC5taW4oby5CTFsxXSxvLkJSWzFdKSt2LHc9TWF0aC5tYXgoby5UTFsxXSxvLlRSWzFdKSt2O3k9TWF0aC5tYXgoby5UTFswXSxvLkJMWzBdKSt1LHg9TWF0aC5taW4oby5UUlswXSxvLkJSWzBdKSt1LChtPWMoeSx4LF8sdyxiLHtpc0hvcml6b250YWw6ITAsY29uc3RyYWluZWQ6ITAsYW5nbGU6MCxhbmNob3I6Im1pZGRsZSJ9KSkuZm9udFNpemU9cC5zaXplLGYoZC50eXBlLG0sciksZVtzXS50cmFuc2Zvcm09bSxoLmF0dHIoInRyYW5zZm9ybSIsYS5nZXRUZXh0VHJhbnNmb3JtKG0pKX0pKX19KSk7dmFyIHY9bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnRpdGxldGV4dCIpLmRhdGEoZC50aXRsZS50ZXh0P1swXTpbXSk7di5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRpdGxldGV4dCIsITApLHYuZXhpdCgpLnJlbW92ZSgpLHYuZWFjaCgoZnVuY3Rpb24oKXt2YXIgZT1hLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSksYz1kLnRpdGxlLnRleHQ7ZC5fbWV0YSYmKGM9YS50ZW1wbGF0ZVN0cmluZyhjLGQuX21ldGEpKSxlLnRleHQoYykuYXR0cih7Y2xhc3M6InRpdGxldGV4dCIsdHJhbnNmb3JtOiIiLCJ0ZXh0LWFuY2hvciI6Im1pZGRsZSJ9KS5jYWxsKGkuZm9udCxkLnRpdGxlLmZvbnQpLmNhbGwobC5jb252ZXJ0VG9Uc3BhbnMsdCk7dmFyIHU9eChoLHIuX3NpemUpO2UuYXR0cigidHJhbnNmb3JtIixzKHUueCx1LnkpK28oTWF0aC5taW4oMSx1LnNjYWxlKSkrcyh1LnR4LHUudHkpKX0pKX0pKX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vYmFyL3Bsb3QiOjkyNSwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6OTMwLCIuLi9waWUvaGVscGVycyI6MTE3MCwiLi4vcGllL3Bsb3QiOjExNzQsIkBwbG90bHkvZDMiOjU4fV0sMTA1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi9waWUvc3R5bGVfb25lIiksYT10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikucmVzaXplVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dC5fZnVubmVsYXJlYWxheWVyLnNlbGVjdEFsbCgiLnRyYWNlIik7YSh0LGUsImZ1bm5lbGFyZWEiKSxlLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXRbMF0udHJhY2Uscj1uLnNlbGVjdCh0aGlzKTtyLnN0eWxlKHtvcGFjaXR5OmUub3BhY2l0eX0pLHIuc2VsZWN0QWxsKCJwYXRoLnN1cmZhY2UiKS5lYWNoKChmdW5jdGlvbih0KXtuLnNlbGVjdCh0aGlzKS5jYWxsKGksdCxlKX0pKX0pKX19LHsiLi4vYmFyL3VuaWZvcm1fdGV4dCI6OTMwLCIuLi9waWUvc3R5bGVfb25lIjoxMTc2LCJAcGxvdGx5L2QzIjo1OH1dLDEwNTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPWwoe3o6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0seDpsKHt9LG4ueCx7aW1wbGllZEVkaXRzOnt4dHlwZToiYXJyYXkifX0pLHgwOmwoe30sbi54MCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSxkeDpsKHt9LG4uZHgse2ltcGxpZWRFZGl0czp7eHR5cGU6InNjYWxlZCJ9fSkseTpsKHt9LG4ueSx7aW1wbGllZEVkaXRzOnt5dHlwZToiYXJyYXkifX0pLHkwOmwoe30sbi55MCx7aW1wbGllZEVkaXRzOnt5dHlwZToic2NhbGVkIn19KSxkeTpsKHt9LG4uZHkse2ltcGxpZWRFZGl0czp7eXR5cGU6InNjYWxlZCJ9fSkseHBlcmlvZDpsKHt9LG4ueHBlcmlvZCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSx5cGVyaW9kOmwoe30sbi55cGVyaW9kLHtpbXBsaWVkRWRpdHM6e3l0eXBlOiJzY2FsZWQifX0pLHhwZXJpb2QwOmwoe30sbi54cGVyaW9kMCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSx5cGVyaW9kMDpsKHt9LG4ueXBlcmlvZDAse2ltcGxpZWRFZGl0czp7eXR5cGU6InNjYWxlZCJ9fSkseHBlcmlvZGFsaWdubWVudDpsKHt9LG4ueHBlcmlvZGFsaWdubWVudCx7aW1wbGllZEVkaXRzOnt4dHlwZToic2NhbGVkIn19KSx5cGVyaW9kYWxpZ25tZW50Omwoe30sbi55cGVyaW9kYWxpZ25tZW50LHtpbXBsaWVkRWRpdHM6e3l0eXBlOiJzY2FsZWQifX0pLHRleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHRyYW5zcG9zZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LHh0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhcnJheSIsInNjYWxlZCJdLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seXR5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImFycmF5Iiwic2NhbGVkIl0sZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx6c21vb3RoOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmYXN0IiwiYmVzdCIsITFdLGRmbHQ6ITEsZWRpdFR5cGU6ImNhbGMifSxob3Zlcm9uZ2Fwczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToibm9uZSJ9LGNvbm5lY3RnYXBzOnt2YWxUeXBlOiJib29sZWFuIixlZGl0VHlwZToiY2FsYyJ9LHhnYXA6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDowLG1pbjowLGVkaXRUeXBlOiJwbG90In0seWdhcDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsbWluOjAsZWRpdFR5cGU6InBsb3QifSx4aG92ZXJmb3JtYXQ6YSgieCIpLHlob3ZlcmZvcm1hdDphKCJ5IiksemhvdmVyZm9ybWF0OmEoInoiLDEpLGhvdmVydGVtcGxhdGU6bygpLHNob3dsZWdlbmQ6bCh7fSxpLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0se3RyYW5zZm9ybXM6dm9pZCAwfSxzKCIiLHtjTGV0dGVyOiJ6IixhdXRvQ29sb3JEZmx0OiExfSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6ODIzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6ODMwLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTE5MX1dLDEwNTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKSxzPXQoIi4uL2hpc3RvZ3JhbTJkL2NhbGMiKSxsPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIiksYz10KCIuL2NvbnZlcnRfY29sdW1uX3h5eiIpLHU9dCgiLi9jbGVhbl8yZF9hcnJheSIpLGY9dCgiLi9pbnRlcnAyZCIpLGg9dCgiLi9maW5kX2VtcHRpZXMiKSxwPXQoIi4vbWFrZV9ib3VuZF9hcnJheSIpLGQ9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtmdW5jdGlvbiBtKHQpe2Zvcih2YXIgZT1bXSxyPXQubGVuZ3RoLG49MDtuPHI7bisrKXt2YXIgaT10W25dO2khPT1kJiZlLnB1c2goaSl9cmV0dXJuIGV9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsZyx2LHkseCxiLF8sdyxULGssQSxNPWEuZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSxTPWEuZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxFPW4udHJhY2VJcyhlLCJjb250b3VyIiksTD1uLnRyYWNlSXMoZSwiaGlzdG9ncmFtIiksQz1uLnRyYWNlSXMoZSwiZ2wyZCIpLFA9RT8iYmVzdCI6ZS56c21vb3RoO2lmKE0uX21pbkR0aWNrPTAsUy5fbWluRHRpY2s9MCxMKXk9KEE9cyh0LGUpKS5vcmlnX3gscj1BLngsZz1BLngwLHY9QS5keCx3PUEub3JpZ195LHg9QS55LGI9QS55MCxfPUEuZHksVD1BLno7ZWxzZXt2YXIgST1lLno7aS5pc0FycmF5MUQoSSk/KGMoZSxNLFMsIngiLCJ5IixbInoiXSkscj1lLl94LHg9ZS5feSxJPWUuX3opOih5PWUueD9NLm1ha2VDYWxjZGF0YShlLCJ4Iik6W10sdz1lLnk/Uy5tYWtlQ2FsY2RhdGEoZSwieSIpOltdLHI9byhlLE0sIngiLHkpLnZhbHMseD1vKGUsUywieSIsdykudmFscyxlLl94PXIsZS5feT14KSxnPWUueDAsdj1lLmR4LGI9ZS55MCxfPWUuZHksVD11KEksZSxNLFMpfWZ1bmN0aW9uIE8odCl7UD1lLl9pbnB1dC56c21vb3RoPWUuenNtb290aD0hMSxpLndhcm4oJ2Nhbm5vdCB1c2UgenNtb290aDogImZhc3QiOiAnK3QpfWlmKChNLnJhbmdlYnJlYWtzfHxTLnJhbmdlYnJlYWtzKSYmKFQ9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1bXSxpPS0xLGE9MDthPHIubGVuZ3RoO2ErKylpZihlW2FdIT09ZCl7aSsrLG5baV09W107Zm9yKHZhciBvPTA7bzxyW2FdLmxlbmd0aDtvKyspdFtvXSE9PWQmJm5baV0ucHVzaChyW2FdW29dKX1yZXR1cm4gbn0ocix4LFQpLEx8fChyPW0ocikseD1tKHgpLGUuX3g9cixlLl95PXgpKSxMfHwhRSYmIWUuY29ubmVjdGdhcHN8fChlLl9lbXB0eXBvaW50cz1oKFQpLGYoVCxlLl9lbXB0eXBvaW50cykpLCJmYXN0Ij09PVApaWYoImxvZyI9PT1NLnR5cGV8fCJsb2ciPT09Uy50eXBlKU8oImxvZyBheGlzIGZvdW5kIik7ZWxzZSBpZighTCl7aWYoci5sZW5ndGgpe3ZhciB6PShyW3IubGVuZ3RoLTFdLXJbMF0pLyhyLmxlbmd0aC0xKSxEPU1hdGguYWJzKHovMTAwKTtmb3Ioaz0wO2s8ci5sZW5ndGgtMTtrKyspaWYoTWF0aC5hYnMocltrKzFdLXJba10teik+RCl7TygieCBzY2FsZSBpcyBub3QgbGluZWFyIik7YnJlYWt9fWlmKHgubGVuZ3RoJiYiZmFzdCI9PT1QKXt2YXIgUj0oeFt4Lmxlbmd0aC0xXS14WzBdKS8oeC5sZW5ndGgtMSksRj1NYXRoLmFicyhSLzEwMCk7Zm9yKGs9MDtrPHgubGVuZ3RoLTE7aysrKWlmKE1hdGguYWJzKHhbaysxXS14W2tdLVIpPkYpe08oInkgc2NhbGUgaXMgbm90IGxpbmVhciIpO2JyZWFrfX19dmFyIEI9aS5tYXhSb3dMZW5ndGgoVCksTj0ic2NhbGVkIj09PWUueHR5cGU/IiI6cixqPXAoZSxOLGcsdixCLE0pLFU9InNjYWxlZCI9PT1lLnl0eXBlPyIiOngsVj1wKGUsVSxiLF8sVC5sZW5ndGgsUyk7Q3x8KGUuX2V4dHJlbWVzW00uX2lkXT1hLmZpbmRFeHRyZW1lcyhNLGopLGUuX2V4dHJlbWVzW1MuX2lkXT1hLmZpbmRFeHRyZW1lcyhTLFYpKTt2YXIgSD17eDpqLHk6Vix6OlQsdGV4dDplLl90ZXh0fHxlLnRleHQsaG92ZXJ0ZXh0OmUuX2hvdmVydGV4dHx8ZS5ob3ZlcnRleHR9O2lmKGUueHBlcmlvZGFsaWdubWVudCYmeSYmKEgub3JpZ194PXkpLGUueXBlcmlvZGFsaWdubWVudCYmdyYmKEgub3JpZ195PXcpLE4mJk4ubGVuZ3RoPT09ai5sZW5ndGgtMSYmKEgueENlbnRlcj1OKSxVJiZVLmxlbmd0aD09PVYubGVuZ3RoLTEmJihILnlDZW50ZXI9VSksTCYmKEgueFJhbmdlcz1BLnhSYW5nZXMsSC55UmFuZ2VzPUEueVJhbmdlcyxILnB0cz1BLnB0cyksRXx8bCh0LGUse3ZhbHM6VCxjTGV0dGVyOiJ6In0pLEUmJmUuY29udG91cnMmJiJoZWF0bWFwIj09PWUuY29udG91cnMuY29sb3Jpbmcpe3ZhciBxPXt0eXBlOiJjb250b3VyIj09PWUudHlwZT8iaGVhdG1hcCI6Imhpc3RvZ3JhbTJkIix4Y2FsZW5kYXI6ZS54Y2FsZW5kYXIseWNhbGVuZGFyOmUueWNhbGVuZGFyfTtILnhmaWxsPXAocSxOLGcsdixCLE0pLEgueWZpbGw9cChxLFUsYixfLFQubGVuZ3RoLFMpfXJldHVybltIXX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjY0NywiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6ODI0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9oaXN0b2dyYW0yZC9jYWxjIjoxMDkxLCIuL2NsZWFuXzJkX2FycmF5IjoxMDYwLCIuL2NvbnZlcnRfY29sdW1uX3h5eiI6MTA2MiwiLi9maW5kX2VtcHRpZXMiOjEwNjQsIi4vaW50ZXJwMmQiOjEwNjcsIi4vbWFrZV9ib3VuZF9hcnJheSI6MTA2OH1dLDEwNjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyl7dmFyIHMsbCxjLHUsZixoO2Z1bmN0aW9uIHAodCl7aWYobih0KSlyZXR1cm4rdH1pZihlJiZlLnRyYW5zcG9zZSl7Zm9yKHM9MCxmPTA7Zjx0Lmxlbmd0aDtmKyspcz1NYXRoLm1heChzLHRbZl0ubGVuZ3RoKTtpZigwPT09cylyZXR1cm4hMTtjPWZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aH0sdT1mdW5jdGlvbih0LGUscil7cmV0dXJuKHRbcl18fFtdKVtlXX19ZWxzZSBzPXQubGVuZ3RoLGM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdFtlXS5sZW5ndGh9LHU9ZnVuY3Rpb24odCxlLHIpe3JldHVybih0W2VdfHxbXSlbcl19O3ZhciBkPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gZT09PWF8fHI9PT1hP2E6dSh0LGUscil9O2Z1bmN0aW9uIG0odCl7aWYoZSYmImNhcnBldCIhPT1lLnR5cGUmJiJjb250b3VyY2FycGV0IiE9PWUudHlwZSYmdCYmImNhdGVnb3J5Ij09PXQudHlwZSYmZVsiXyIrdC5faWQuY2hhckF0KDApXS5sZW5ndGgpe3ZhciByPXQuX2lkLmNoYXJBdCgwKSxuPXt9LG89ZVsiXyIrcisiQ2F0ZWdvcnlNYXAiXXx8ZVtyXTtmb3IoZj0wO2Y8by5sZW5ndGg7ZisrKW5bb1tmXV09ZjtyZXR1cm4gZnVuY3Rpb24oZSl7dmFyIHI9blt0Ll9jYXRlZ29yaWVzW2VdXTtyZXR1cm4gcisxP3I6YX19cmV0dXJuIGkuaWRlbnRpdHl9dmFyIGc9bShyKSx2PW0obyk7byYmImNhdGVnb3J5Ij09PW8udHlwZSYmKHM9by5fY2F0ZWdvcmllcy5sZW5ndGgpO3ZhciB5PW5ldyBBcnJheShzKTtmb3IoZj0wO2Y8cztmKyspZm9yKGw9ciYmImNhdGVnb3J5Ij09PXIudHlwZT9yLl9jYXRlZ29yaWVzLmxlbmd0aDpjKHQsZikseVtmXT1uZXcgQXJyYXkobCksaD0wO2g8bDtoKyspeVtmXVtoXT1wKGQodCx2KGYpLGcoaCkpKTtyZXR1cm4geX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDEwNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttaW46InptaW4iLG1heDoiem1heCJ9fSx7fV0sMTA2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0sYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8scyxsKXt2YXIgYz10Ll9sZW5ndGgsdT1lLm1ha2VDYWxjZGF0YSh0LG8pLGY9ci5tYWtlQ2FsY2RhdGEodCxzKTt1PWEodCxlLG8sdSkudmFscyxmPWEodCxyLHMsZikudmFsczt2YXIgaCxwLGQsbSxnPXQudGV4dCx2PXZvaWQgMCE9PWcmJm4uaXNBcnJheTFEKGcpLHk9dC5ob3ZlcnRleHQseD12b2lkIDAhPT15JiZuLmlzQXJyYXkxRCh5KSxiPW4uZGlzdGluY3RWYWxzKHUpLF89Yi52YWxzLHc9bi5kaXN0aW5jdFZhbHMoZiksVD13LnZhbHMsaz1bXSxBPVQubGVuZ3RoLE09Xy5sZW5ndGg7Zm9yKGg9MDtoPGwubGVuZ3RoO2grKylrW2hdPW4uaW5pdDJkQXJyYXkoQSxNKTt2JiYoZD1uLmluaXQyZEFycmF5KEEsTSkpLHgmJihtPW4uaW5pdDJkQXJyYXkoQSxNKSk7dmFyIFM9bi5pbml0MmRBcnJheShBLE0pO2ZvcihoPTA7aDxjO2grKylpZih1W2hdIT09aSYmZltoXSE9PWkpe3ZhciBFPW4uZmluZEJpbih1W2hdK2IubWluRGlmZi8yLF8pLEw9bi5maW5kQmluKGZbaF0rdy5taW5EaWZmLzIsVCk7Zm9yKHA9MDtwPGwubGVuZ3RoO3ArKyl7dmFyIEM9dFtsW3BdXTtrW3BdW0xdW0VdPUNbaF0sU1tMXVtFXT1ofXYmJihkW0xdW0VdPWdbaF0pLHgmJihtW0xdW0VdPXlbaF0pfWZvcih0WyJfIitvXT1fLHRbIl8iK3NdPVQscD0wO3A8bC5sZW5ndGg7cCsrKXRbIl8iK2xbcF1dPWtbcF07diYmKHQuX3RleHQ9ZCkseCYmKHQuX2hvdmVydGV4dD1tKSxlJiYiY2F0ZWdvcnkiPT09ZS50eXBlJiYodFsiXyIrbysiQ2F0ZWdvcnlNYXAiXT1fLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIGUuX2NhdGVnb3JpZXNbdF19KSkpLHImJiJjYXRlZ29yeSI9PT1yLnR5cGUmJih0WyJfIitzKyJDYXRlZ29yeU1hcCJdPVQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gci5fY2F0ZWdvcmllc1t0XX0pKSksdC5fYWZ0ZXIyYmVmb3JlPVN9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiOjgyNH1dLDEwNjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL3h5el9kZWZhdWx0cyIpLGE9dCgiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiKSxvPXQoIi4vc3R5bGVfZGVmYXVsdHMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLGw9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGMpe2Z1bmN0aW9uIHUocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGwscixpKX1pKHQsZSx1LGMpPyhhKHQsZSxjLHUpLHUoInhob3ZlcmZvcm1hdCIpLHUoInlob3ZlcmZvcm1hdCIpLHUoInRleHQiKSx1KCJob3ZlcnRleHQiKSx1KCJob3ZlcnRlbXBsYXRlIiksbyh0LGUsdSxjKSx1KCJob3Zlcm9uZ2FwcyIpLHUoImNvbm5lY3RnYXBzIixuLmlzQXJyYXkxRChlLnopJiYhMSE9PWUuenNtb290aCkscyh0LGUsYyx1LHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjY0OSwiLi4vLi4vbGliIjo3NzYsIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIjoxMjExLCIuL2F0dHJpYnV0ZXMiOjEwNTgsIi4vc3R5bGVfZGVmYXVsdHMiOjEwNzEsIi4veHl6X2RlZmF1bHRzIjoxMDcyfV0sMTA2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5tYXhSb3dMZW5ndGg7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlLHIsaSxhLG8scyxsLGMsdT1bXSxmPXt9LGg9W10scD10WzBdLGQ9W10sbT1bMCwwLDBdLGc9bih0KTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKWZvcihlPWQsZD1wLHA9dFtyKzFdfHxbXSxpPTA7aTxnO2krKyl2b2lkIDA9PT1kW2ldJiYoKHM9KHZvaWQgMCE9PWRbaS0xXT8xOjApKyh2b2lkIDAhPT1kW2krMV0/MTowKSsodm9pZCAwIT09ZVtpXT8xOjApKyh2b2lkIDAhPT1wW2ldPzE6MCkpPygwPT09ciYmcysrLDA9PT1pJiZzKysscj09PXQubGVuZ3RoLTEmJnMrKyxpPT09ZC5sZW5ndGgtMSYmcysrLHM8NCYmKGZbW3IsaV1dPVtyLGksc10pLHUucHVzaChbcixpLHNdKSk6aC5wdXNoKFtyLGldKSk7Zm9yKDtoLmxlbmd0aDspe2ZvcihsPXt9LGM9ITEsbz1oLmxlbmd0aC0xO28+PTA7by0tKShzPSgoZltbKHI9KGE9aFtvXSlbMF0pLTEsaT1hWzFdXV18fG0pWzJdKyhmW1tyKzEsaV1dfHxtKVsyXSsoZltbcixpLTFdXXx8bSlbMl0rKGZbW3IsaSsxXV18fG0pWzJdKS8yMCkmJihsW2FdPVtyLGksc10saC5zcGxpY2UobywxKSxjPSEwKTtpZighYyl0aHJvdyJmaW5kRW1wdGllcyBpdGVyYXRlZCB3aXRoIG5vIG5ldyBuZWlnaGJvcnMiO2ZvcihhIGluIGwpZlthXT1sW2FdLHUucHVzaChsW2FdKX1yZXR1cm4gdS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlWzJdLXRbMl19KSl9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sMTA2NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyxsKXtsfHwobD17fSk7dmFyIGMsdSxmLGgscD1sLmlzQ29udG91cixkPXQuY2RbMF0sbT1kLnRyYWNlLGc9dC54YSx2PXQueWEseT1kLngseD1kLnksYj1kLnosXz1kLnhDZW50ZXIsdz1kLnlDZW50ZXIsVD1kLnptYXNrLGs9bS56aG92ZXJmb3JtYXQsQT15LE09eDtpZighMSE9PXQuaW5kZXgpe3RyeXtmPU1hdGgucm91bmQodC5pbmRleFsxXSksaD1NYXRoLnJvdW5kKHQuaW5kZXhbMF0pfWNhdGNoKGUpe3JldHVybiB2b2lkIGkuZXJyb3IoIkVycm9yIGhvdmVyaW5nIG9uIGhlYXRtYXAsIHBvaW50TnVtYmVyIG11c3QgYmUgW3Jvdyxjb2xdLCBmb3VuZDoiLHQuaW5kZXgpfWlmKGY8MHx8Zj49YlswXS5sZW5ndGh8fGg8MHx8aD5iLmxlbmd0aClyZXR1cm59ZWxzZXtpZihuLmluYm94KGUteVswXSxlLXlbeS5sZW5ndGgtMV0sMCk+MHx8bi5pbmJveChyLXhbMF0sci14W3gubGVuZ3RoLTFdLDApPjApcmV0dXJuO2lmKHApe3ZhciBTO2ZvcihBPVsyKnlbMF0teVsxXV0sUz0xO1M8eS5sZW5ndGg7UysrKUEucHVzaCgoeVtTXSt5W1MtMV0pLzIpO2ZvcihBLnB1c2goWzIqeVt5Lmxlbmd0aC0xXS15W3kubGVuZ3RoLTJdXSksTT1bMip4WzBdLXhbMV1dLFM9MTtTPHgubGVuZ3RoO1MrKylNLnB1c2goKHhbU10reFtTLTFdKS8yKTtNLnB1c2goWzIqeFt4Lmxlbmd0aC0xXS14W3gubGVuZ3RoLTJdXSl9Zj1NYXRoLm1heCgwLE1hdGgubWluKEEubGVuZ3RoLTIsaS5maW5kQmluKGUsQSkpKSxoPU1hdGgubWF4KDAsTWF0aC5taW4oTS5sZW5ndGgtMixpLmZpbmRCaW4ocixNKSkpfXZhciBFLEwsQz1nLmMycCh5W2ZdKSxQPWcuYzJwKHlbZisxXSksST12LmMycCh4W2hdKSxPPXYuYzJwKHhbaCsxXSk7cD8oRT1kLm9yaWdfeHx8eSxMPWQub3JpZ195fHx4LFA9QyxjPUVbZl0sTz1JLHU9TFtoXSk6KEU9ZC5vcmlnX3h8fF98fHksTD1kLm9yaWdfeXx8d3x8eCxjPV8/RVtmXTooRVtmXStFW2YrMV0pLzIsdT13P0xbaF06KExbaF0rTFtoKzFdKS8yLGcmJiJjYXRlZ29yeSI9PT1nLnR5cGUmJihjPXlbZl0pLHYmJiJjYXRlZ29yeSI9PT12LnR5cGUmJih1PXhbaF0pLG0uenNtb290aCYmKEM9UD1nLmMycChjKSxJPU89di5jMnAodSkpKTt2YXIgej1iW2hdW2ZdO2lmKFQmJiFUW2hdW2ZdJiYoej12b2lkIDApLHZvaWQgMCE9PXp8fG0uaG92ZXJvbmdhcHMpe3ZhciBEO0FycmF5LmlzQXJyYXkoZC5ob3ZlcnRleHQpJiZBcnJheS5pc0FycmF5KGQuaG92ZXJ0ZXh0W2hdKT9EPWQuaG92ZXJ0ZXh0W2hdW2ZdOkFycmF5LmlzQXJyYXkoZC50ZXh0KSYmQXJyYXkuaXNBcnJheShkLnRleHRbaF0pJiYoRD1kLnRleHRbaF1bZl0pO3ZhciBSPW8obSksRj17dHlwZToibGluZWFyIixyYW5nZTpbUi5taW4sUi5tYXhdLGhvdmVyZm9ybWF0OmssX3NlcGFyYXRvcnM6Zy5fc2VwYXJhdG9ycyxfbnVtRm9ybWF0OmcuX251bUZvcm1hdH0sQj1hLnRpY2tUZXh0KEYseiwiaG92ZXIiKS50ZXh0O3JldHVybltpLmV4dGVuZEZsYXQodCx7aW5kZXg6bS5fYWZ0ZXIyYmVmb3JlP20uX2FmdGVyMmJlZm9yZVtoXVtmXTpbaCxmXSxkaXN0YW5jZTp0Lm1heEhvdmVyRGlzdGFuY2Usc3Bpa2VEaXN0YW5jZTp0Lm1heFNwaWtlRGlzdGFuY2UseDA6Qyx4MTpQLHkwOkkseTE6Tyx4TGFiZWxWYWw6Yyx5TGFiZWxWYWw6dSx6TGFiZWxWYWw6eix6TGFiZWw6Qix0ZXh0OkR9KV19fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyN31dLDEwNjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksY29sb3JiYXI6dCgiLi9jb2xvcmJhciIpLHN0eWxlOnQoIi4vc3R5bGUiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6ImhlYXRtYXAiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi9hdHRyaWJ1dGVzIjoxMDU4LCIuL2NhbGMiOjEwNTksIi4vY29sb3JiYXIiOjEwNjEsIi4vZGVmYXVsdHMiOjEwNjMsIi4vaG92ZXIiOjEwNjUsIi4vcGxvdCI6MTA2OSwiLi9zdHlsZSI6MTA3MH1dLDEwNjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT1bWy0xLDBdLFsxLDBdLFswLC0xXSxbMCwxXV07ZnVuY3Rpb24gYSh0KXtyZXR1cm4uNS0uMjUqTWF0aC5taW4oMSwuNSp0KX1mdW5jdGlvbiBvKHQsZSxyKXt2YXIgbixhLG8scyxsLGMsdSxmLGgscCxkLG0sZyx2PTA7Zm9yKHM9MDtzPGUubGVuZ3RoO3MrKyl7Zm9yKGE9KG49ZVtzXSlbMF0sbz1uWzFdLGQ9dFthXVtvXSxwPTAsaD0wLGw9MDtsPDQ7bCsrKSh1PXRbYSsoYz1pW2xdKVswXV0pJiZ2b2lkIDAhPT0oZj11W28rY1sxXV0pJiYoMD09PXA/bT1nPWY6KG09TWF0aC5taW4obSxmKSxnPU1hdGgubWF4KGcsZikpLGgrKyxwKz1mKTtpZigwPT09aCl0aHJvdyJpdGVyYXRlSW50ZXJwMmQgb3JkZXIgaXMgd3Jvbmc6IG5vIGRlZmluZWQgbmVpZ2hib3JzIjt0W2FdW29dPXAvaCx2b2lkIDA9PT1kP2g8NCYmKHY9MSk6KHRbYV1bb109KDErcikqdFthXVtvXS1yKmQsZz5tJiYodj1NYXRoLm1heCh2LE1hdGguYWJzKHRbYV1bb10tZCkvKGctbSkpKSl9cmV0dXJuIHZ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsaT0xO2ZvcihvKHQsZSkscj0wO3I8ZS5sZW5ndGgmJiEoZVtyXVsyXTw0KTtyKyspO2ZvcihlPWUuc2xpY2Uocikscj0wO3I8MTAwJiZpPi4wMTtyKyspaT1vKHQsZSxhKGkpKTtyZXR1cm4gaT4uMDEmJm4ubG9nKCJpbnRlcnAyZCBkaWRuJ3QgY29udmVyZ2UgcXVpY2tseSIsaSksdH19LHsiLi4vLi4vbGliIjo3NzZ9XSwxMDY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLG8scyl7dmFyIGwsYyx1LGY9W10saD1uLnRyYWNlSXModCwiY29udG91ciIpLHA9bi50cmFjZUlzKHQsImhpc3RvZ3JhbSIpLGQ9bi50cmFjZUlzKHQsImdsMmQiKTtpZihpKGUpJiZlLmxlbmd0aD4xJiYhcCYmImNhdGVnb3J5IiE9PXMudHlwZSl7dmFyIG09ZS5sZW5ndGg7aWYoIShtPD1vKSlyZXR1cm4gaD9lLnNsaWNlKDAsbyk6ZS5zbGljZSgwLG8rMSk7aWYoaHx8ZClmPWUuc2xpY2UoMCxvKTtlbHNlIGlmKDE9PT1vKWY9W2VbMF0tLjUsZVswXSsuNV07ZWxzZXtmb3IoZj1bMS41KmVbMF0tLjUqZVsxXV0sdT0xO3U8bTt1KyspZi5wdXNoKC41KihlW3UtMV0rZVt1XSkpO2YucHVzaCgxLjUqZVttLTFdLS41KmVbbS0yXSl9aWYobTxvKXt2YXIgZz1mW2YubGVuZ3RoLTFdLHY9Zy1mW2YubGVuZ3RoLTJdO2Zvcih1PW07dTxvO3UrKylnKz12LGYucHVzaChnKX19ZWxzZXt2YXIgeT10W3MuX2lkLmNoYXJBdCgwKSsiY2FsZW5kYXIiXTtpZihwKWw9cy5yMmMociwwLHkpO2Vsc2UgaWYoaShlKSYmMT09PWUubGVuZ3RoKWw9ZVswXTtlbHNlIGlmKHZvaWQgMD09PXIpbD0wO2Vsc2V7bD0oImxvZyI9PT1zLnR5cGU/cy5kMmM6cy5yMmMpKHIsMCx5KX1mb3IoYz1hfHwxLHU9aHx8ZD8wOi0uNTt1PG87dSsrKWYucHVzaChsK2MqdSl9cmV0dXJuIGZ9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0fV0sMTA2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJ0aW55Y29sb3IyIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi4vLi4vbGliIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2UsbD10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpO2Z1bmN0aW9uIGModCxlKXt2YXIgcj1lLmxlbmd0aC0yLG49by5jb25zdHJhaW4oby5maW5kQmluKHQsZSksMCxyKSxpPWVbbl0sYT1lW24rMV0scz1vLmNvbnN0cmFpbihuKyh0LWkpLyhhLWkpLS41LDAsciksbD1NYXRoLnJvdW5kKHMpLGM9TWF0aC5hYnMocy1sKTtyZXR1cm4gcyYmcyE9PXImJmM/e2JpbjA6bCxmcmFjOmMsYmluMTpNYXRoLnJvdW5kKGwrYy8ocy1sKSl9OntiaW4wOmwsYmluMTpsLGZyYWM6MH19ZnVuY3Rpb24gdSh0LGUpe3ZhciByPWUubGVuZ3RoLTEsbj1vLmNvbnN0cmFpbihvLmZpbmRCaW4odCxlKSwwLHIpLGk9ZVtuXSxhPSh0LWkpLyhlW24rMV0taSl8fDA7cmV0dXJuIGE8PTA/e2JpbjA6bixiaW4xOm4sZnJhYzowfTphPC41P3tiaW4wOm4sYmluMTpuKzEsZnJhYzphfTp7YmluMDpuKzEsYmluMTpuLGZyYWM6MS1hfX1mdW5jdGlvbiBmKHQsZSxyKXt0W2VdPXJbMF0sdFtlKzFdPXJbMV0sdFtlKzJdPXJbMl0sdFtlKzNdPU1hdGgucm91bmQoMjU1KnJbM10pfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixoKXt2YXIgcD1lLnhheGlzLGQ9ZS55YXhpcztvLm1ha2VUcmFjZUdyb3VwcyhoLHIsImhtIikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHIsaCxtLGcsdix5LHg9bi5zZWxlY3QodGhpcyksYj1lWzBdLF89Yi50cmFjZSx3PWIueixUPWIueCxrPWIueSxBPWIueENlbnRlcixNPWIueUNlbnRlcixTPWEudHJhY2VJcyhfLCJjb250b3VyIiksRT1TPyJiZXN0IjpfLnpzbW9vdGgsTD13Lmxlbmd0aCxDPW8ubWF4Um93TGVuZ3RoKHcpLFA9ITEsST0hMTtmb3IoeT0wO3ZvaWQgMD09PXImJnk8VC5sZW5ndGgtMTspcj1wLmMycChUW3ldKSx5Kys7Zm9yKHk9VC5sZW5ndGgtMTt2b2lkIDA9PT1oJiZ5PjA7KWg9cC5jMnAoVFt5XSkseS0tO2ZvcihoPHImJihtPWgsaD1yLHI9bSxQPSEwKSx5PTA7dm9pZCAwPT09ZyYmeTxrLmxlbmd0aC0xOylnPWQuYzJwKGtbeV0pLHkrKztmb3IoeT1rLmxlbmd0aC0xO3ZvaWQgMD09PXYmJnk+MDspdj1kLmMycChrW3ldKSx5LS07aWYodjxnJiYobT1nLGc9dix2PW0sST0hMCksUyYmKEE9VCxNPWssVD1iLnhmaWxsLGs9Yi55ZmlsbCksImZhc3QiIT09RSl7dmFyIE89ImJlc3QiPT09RT8wOi41O3I9TWF0aC5tYXgoLU8qcC5fbGVuZ3RoLHIpLGg9TWF0aC5taW4oKDErTykqcC5fbGVuZ3RoLGgpLGc9TWF0aC5tYXgoLU8qZC5fbGVuZ3RoLGcpLHY9TWF0aC5taW4oKDErTykqZC5fbGVuZ3RoLHYpfXZhciB6PU1hdGgucm91bmQoaC1yKSxEPU1hdGgucm91bmQodi1nKTtpZih6PD0wfHxEPD0wKXt4LnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKFtdKS5leGl0KCkucmVtb3ZlKCl9ZWxzZXt2YXIgUixGOyJmYXN0Ij09PUU/KFI9QyxGPUwpOihSPXosRj1EKTt2YXIgQj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTtCLndpZHRoPVIsQi5oZWlnaHQ9Rjt2YXIgTixqLFU9Qi5nZXRDb250ZXh0KCIyZCIpLFY9cyhfLHtub051bWVyaWNDaGVjazohMCxyZXR1cm5BcnJheTohMH0pOyJmYXN0Ij09PUU/KE49UD9mdW5jdGlvbih0KXtyZXR1cm4gQy0xLXR9Om8uaWRlbnRpdHksaj1JP2Z1bmN0aW9uKHQpe3JldHVybiBMLTEtdH06by5pZGVudGl0eSk6KE49ZnVuY3Rpb24odCl7cmV0dXJuIG8uY29uc3RyYWluKE1hdGgucm91bmQocC5jMnAoVFt0XSktciksMCx6KX0saj1mdW5jdGlvbih0KXtyZXR1cm4gby5jb25zdHJhaW4oTWF0aC5yb3VuZChkLmMycChrW3RdKS1nKSwwLEQpfSk7dmFyIEgscSxHLFksVyxYPWooMCksWj1bWCxYXSxKPVA/MDoxLEs9ST8wOjEsUT0wLCQ9MCx0dD0wLGV0PTA7aWYoRSl7dmFyIHJ0LG50PTA7dHJ5e3J0PW5ldyBVaW50OEFycmF5KHoqRCo0KX1jYXRjaCh0KXtydD1uZXcgQXJyYXkoeipEKjQpfWlmKCJiZXN0Ij09PUUpe3ZhciBpdCxhdCxvdCxzdD1BfHxULGx0PU18fGssY3Q9bmV3IEFycmF5KHN0Lmxlbmd0aCksdXQ9bmV3IEFycmF5KGx0Lmxlbmd0aCksZnQ9bmV3IEFycmF5KHopLGh0PUE/dTpjLHB0PU0/dTpjO2Zvcih5PTA7eTxzdC5sZW5ndGg7eSsrKWN0W3ldPU1hdGgucm91bmQocC5jMnAoc3RbeV0pLXIpO2Zvcih5PTA7eTxsdC5sZW5ndGg7eSsrKXV0W3ldPU1hdGgucm91bmQoZC5jMnAobHRbeV0pLWcpO2Zvcih5PTA7eTx6O3krKylmdFt5XT1odCh5LGN0KTtmb3IocT0wO3E8RDtxKyspZm9yKGF0PXdbKGl0PXB0KHEsdXQpKS5iaW4wXSxvdD13W2l0LmJpbjFdLHk9MDt5PHo7eSsrLG50Kz00KWYocnQsbnQsVz1rdChhdCxvdCxmdFt5XSxpdCkpfWVsc2UgZm9yKHE9MDtxPEw7cSsrKWZvcihZPXdbcV0sWj1qKHEpLHk9MDt5PHo7eSsrKVc9VHQoWVt5XSwxKSxmKHJ0LG50PTQqKFoqeitOKHkpKSxXKTt2YXIgZHQ9VS5jcmVhdGVJbWFnZURhdGEoeixEKTt0cnl7ZHQuZGF0YS5zZXQocnQpfWNhdGNoKHQpe3ZhciBtdD1kdC5kYXRhLGd0PW10Lmxlbmd0aDtmb3IocT0wO3E8Z3Q7cSsrKW10W3FdPXJ0W3FdfVUucHV0SW1hZ2VEYXRhKGR0LDAsMCl9ZWxzZXt2YXIgdnQ9Xy54Z2FwLHl0PV8ueWdhcCx4dD1NYXRoLmZsb29yKHZ0LzIpLGJ0PU1hdGguZmxvb3IoeXQvMik7Zm9yKHE9MDtxPEw7cSsrKWlmKFk9d1txXSxaLnJldmVyc2UoKSxaW0tdPWoocSsxKSxaWzBdIT09WlsxXSYmdm9pZCAwIT09WlswXSYmdm9pZCAwIT09WlsxXSlmb3IoSD1bRz1OKDApLEddLHk9MDt5PEM7eSsrKUgucmV2ZXJzZSgpLEhbSl09Tih5KzEpLEhbMF0hPT1IWzFdJiZ2b2lkIDAhPT1IWzBdJiZ2b2lkIDAhPT1IWzFdJiYoVz1UdChZW3ldLChIWzFdLUhbMF0pKihaWzFdLVpbMF0pKSxVLmZpbGxTdHlsZT0icmdiYSgiK1cuam9pbigiLCIpKyIpIixVLmZpbGxSZWN0KEhbMF0reHQsWlswXStidCxIWzFdLUhbMF0tdnQsWlsxXS1aWzBdLXl0KSl9JD1NYXRoLnJvdW5kKCQvUSksdHQ9TWF0aC5yb3VuZCh0dC9RKSxldD1NYXRoLnJvdW5kKGV0L1EpO3ZhciBfdD1pKCJyZ2IoIiskKyIsIit0dCsiLCIrZXQrIikiKTt0Ll9obXBpeGNvdW50PSh0Ll9obXBpeGNvdW50fHwwKStRLHQuX2htbHVtY291bnQ9KHQuX2htbHVtY291bnR8fDApK1EqX3QuZ2V0THVtaW5hbmNlKCk7dmFyIHd0PXguc2VsZWN0QWxsKCJpbWFnZSIpLmRhdGEoZSk7d3QuZW50ZXIoKS5hcHBlbmQoInN2ZzppbWFnZSIpLmF0dHIoe3htbG5zOmwuc3ZnLHByZXNlcnZlQXNwZWN0UmF0aW86Im5vbmUifSksd3QuYXR0cih7aGVpZ2h0OkQsd2lkdGg6eix4OnIseTpnLCJ4bGluazpocmVmIjpCLnRvRGF0YVVSTCgiaW1hZ2UvcG5nIil9KX1mdW5jdGlvbiBUdCh0LGUpe2lmKHZvaWQgMCE9PXQpe3ZhciByPVYodCk7cmV0dXJuIHJbMF09TWF0aC5yb3VuZChyWzBdKSxyWzFdPU1hdGgucm91bmQoclsxXSksclsyXT1NYXRoLnJvdW5kKHJbMl0pLFErPWUsJCs9clswXSplLHR0Kz1yWzFdKmUsZXQrPXJbMl0qZSxyfXJldHVyblswLDAsMCwwXX1mdW5jdGlvbiBrdCh0LGUscixuKXt2YXIgaT10W3IuYmluMF07aWYodm9pZCAwPT09aSlyZXR1cm4gVHQodm9pZCAwLDEpO3ZhciBhLG89dFtyLmJpbjFdLHM9ZVtyLmJpbjBdLGw9ZVtyLmJpbjFdLGM9by1pfHwwLHU9cy1pfHwwO3JldHVybiBhPXZvaWQgMD09PW8/dm9pZCAwPT09bD8wOnZvaWQgMD09PXM/MioobC1pKToyKigyKmwtcy1pKS8zOnZvaWQgMD09PWw/dm9pZCAwPT09cz8wOjIqKDIqaS1vLXMpLzM6dm9pZCAwPT09cz8yKigyKmwtby1pKS8zOmwraS1vLXMsVHQoaStyLmZyYWMqYytuLmZyYWMqKHUrci5mcmFjKmEpKX19KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NzUzLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiQHBsb3RseS9kMyI6NTgsdGlueWNvbG9yMjo1NzJ9XSwxMDcwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7bi5zZWxlY3QodCkuc2VsZWN0QWxsKCIuaG0gaW1hZ2UiKS5zdHlsZSgib3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRyYWNlLm9wYWNpdHl9KSl9fSx7IkBwbG90bHkvZDMiOjU4fV0sMTA3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpeyExPT09cigienNtb290aCIpJiYocigieGdhcCIpLHIoInlnYXAiKSkscigiemhvdmVyZm9ybWF0Iil9fSx7fV0sMTA3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9yZWdpc3RyeSIpO2Z1bmN0aW9uIG8odCxlKXt2YXIgcj1lKHQpO3JldHVybiJzY2FsZWQiPT09KHI/ZSh0KyJ0eXBlIiwiYXJyYXkiKToic2NhbGVkIikmJihlKHQrIjAiKSxlKCJkIit0KSkscn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyxsLGMpe3ZhciB1LGYsaD1yKCJ6Iik7aWYobD1sfHwieCIsYz1jfHwieSIsdm9pZCAwPT09aHx8IWgubGVuZ3RoKXJldHVybiAwO2lmKGkuaXNBcnJheTFEKHQueikpe3U9cihsKSxmPXIoYyk7dmFyIHA9aS5taW5Sb3dMZW5ndGgodSksZD1pLm1pblJvd0xlbmd0aChmKTtpZigwPT09cHx8MD09PWQpcmV0dXJuIDA7ZS5fbGVuZ3RoPU1hdGgubWluKHAsZCxoLmxlbmd0aCl9ZWxzZXtpZih1PW8obCxyKSxmPW8oYyxyKSwhZnVuY3Rpb24odCl7Zm9yKHZhciBlLHI9ITAsYT0hMSxvPSExLHM9MDtzPHQubGVuZ3RoO3MrKyl7aWYoZT10W3NdLCFpLmlzQXJyYXlPclR5cGVkQXJyYXkoZSkpe3I9ITE7YnJlYWt9ZS5sZW5ndGg+MCYmKGE9ITApO2Zvcih2YXIgbD0wO2w8ZS5sZW5ndGg7bCsrKWlmKG4oZVtsXSkpe289ITA7YnJlYWt9fXJldHVybiByJiZhJiZvfShoKSlyZXR1cm4gMDtyKCJ0cmFuc3Bvc2UiKSxlLl9sZW5ndGg9bnVsbH1yZXR1cm4iaGVhdG1hcGdsIj09PXQudHlwZXx8YS5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsW2wsY10scyksITB9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sMTA3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIG49dCgiLi4vaGVhdG1hcC9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsbz10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwscz1bInoiLCJ4IiwieDAiLCJkeCIsInkiLCJ5MCIsImR5IiwidGV4dCIsInRyYW5zcG9zZSIsInh0eXBlIiwieXR5cGUiXSxsPXt9LGM9MDtjPHMubGVuZ3RoO2MrKyl7dmFyIHU9c1tjXTtsW3VdPW5bdV19bC56c21vb3RoPXt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmYXN0IiwhMV0sZGZsdDoiZmFzdCIsZWRpdFR5cGU6ImNhbGMifSxhKGwsaSgiIix7Y0xldHRlcjoieiIsYXV0b0NvbG9yRGZsdDohMX0pKSxlLmV4cG9ydHM9byhsLCJjYWxjIiwibmVzdGVkIil9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjY0NiwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo4MDksIi4uL2hlYXRtYXAvYXR0cmlidXRlcyI6MTA1OH1dLDEwNzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtaGVhdG1hcDJkIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpO2Z1bmN0aW9uIG8odCxlKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9ZSx0aGlzLnR5cGU9ImhlYXRtYXBnbCIsdGhpcy5uYW1lPSIiLHRoaXMuaG92ZXJpbmZvPSJhbGwiLHRoaXMueERhdGE9W10sdGhpcy55RGF0YT1bXSx0aGlzLnpEYXRhPVtdLHRoaXMudGV4dExhYmVscz1bXSx0aGlzLmlkVG9JbmRleD1bXSx0aGlzLmJvdW5kcz1bMCwwLDAsMF0sdGhpcy5vcHRpb25zPXt6c21vb3RoOiJmYXN0Iix6OltdLHg6W10seTpbXSxzaGFwZTpbMCwwXSxjb2xvckxldmVsczpbMF0sY29sb3JWYWx1ZXM6WzAsMCwwLDFdfSx0aGlzLmhlYXRtYXA9bih0LmdscGxvdCx0aGlzLm9wdGlvbnMpLHRoaXMuaGVhdG1hcC5fdHJhY2U9dGhpc312YXIgcz1vLnByb3RvdHlwZTtzLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5vcHRpb25zLHI9ZS5zaGFwZSxuPXQucG9pbnRJZCxpPW4lclswXSxhPU1hdGguZmxvb3Iobi9yWzBdKSxvPW47cmV0dXJue3RyYWNlOnRoaXMsZGF0YUNvb3JkOnQuZGF0YUNvb3JkLHRyYWNlQ29vcmQ6W2UueFtpXSxlLnlbYV0sZS56W29dXSx0ZXh0TGFiZWw6dGhpcy50ZXh0TGFiZWxzW25dLG5hbWU6dGhpcy5uYW1lLHBvaW50SW5kZXg6W2EsaV0saG92ZXJpbmZvOnRoaXMuaG92ZXJpbmZvfX0scy51cGRhdGU9ZnVuY3Rpb24odCxlKXt2YXIgcj1lWzBdO3RoaXMuaW5kZXg9dC5pbmRleCx0aGlzLm5hbWU9dC5uYW1lLHRoaXMuaG92ZXJpbmZvPXQuaG92ZXJpbmZvO3ZhciBuPXIuejt0aGlzLm9wdGlvbnMuej1bXS5jb25jYXQuYXBwbHkoW10sbik7dmFyIG89blswXS5sZW5ndGgscz1uLmxlbmd0aDt0aGlzLm9wdGlvbnMuc2hhcGU9W28sc10sdGhpcy5vcHRpb25zLng9ci54LHRoaXMub3B0aW9ucy55PXIueSx0aGlzLm9wdGlvbnMuenNtb290aD10LnpzbW9vdGg7dmFyIGw9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXQuY29sb3JzY2FsZSxyPXQuem1pbixuPXQuem1heCxpPWUubGVuZ3RoLG89bmV3IEFycmF5KGkpLHM9bmV3IEFycmF5KDQqaSksbD0wO2w8aTtsKyspe3ZhciBjPWVbbF0sdT1hKGNbMV0pO29bbF09citjWzBdKihuLXIpO2Zvcih2YXIgZj0wO2Y8NDtmKyspc1s0KmwrZl09dVtmXX1yZXR1cm57Y29sb3JMZXZlbHM6byxjb2xvclZhbHVlczpzfX0odCk7dGhpcy5vcHRpb25zLmNvbG9yTGV2ZWxzPWwuY29sb3JMZXZlbHMsdGhpcy5vcHRpb25zLmNvbG9yVmFsdWVzPWwuY29sb3JWYWx1ZXMsdGhpcy50ZXh0TGFiZWxzPVtdLmNvbmNhdC5hcHBseShbXSx0LnRleHQpLHRoaXMuaGVhdG1hcC51cGRhdGUodGhpcy5vcHRpb25zKTt2YXIgYyx1LGY9dGhpcy5zY2VuZS54YXhpcyxoPXRoaXMuc2NlbmUueWF4aXM7ITE9PT10LnpzbW9vdGgmJihjPXtwcGFkOnIueFsxXS1yLnhbMF19LHU9e3BwYWQ6ci55WzFdLXIueVswXX0pLHQuX2V4dHJlbWVzW2YuX2lkXT1pLmZpbmRFeHRyZW1lcyhmLHIueCxjKSx0Ll9leHRyZW1lc1toLl9pZF09aS5maW5kRXh0cmVtZXMoaCxyLnksdSl9LHMuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMuaGVhdG1hcC5kaXNwb3NlKCl9LGUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG49bmV3IG8odCxlLnVpZCk7cmV0dXJuIG4udXBkYXRlKGUsciksbn19LHsiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6ODAxLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCJnbC1oZWF0bWFwMmQiOjI2N31dLDEwNzU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9oZWF0bWFwL3h5el9kZWZhdWx0cyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksbz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7ZnVuY3Rpb24gbChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWkodCxlLGwscyk/KGwoInRleHQiKSxsKCJ6c21vb3RoIiksYSh0LGUscyxsLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjY0OSwiLi4vLi4vbGliIjo3NzYsIi4uL2hlYXRtYXAveHl6X2RlZmF1bHRzIjoxMDcyLCIuL2F0dHJpYnV0ZXMiOjEwNzN9XSwxMDc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO1siKmhlYXRtYXBnbCogdHJhY2UgaXMgZGVwcmVjYXRlZCEiLCJQbGVhc2UgY29uc2lkZXIgc3dpdGNoaW5nIHRvIHRoZSAqaGVhdG1hcCogb3IgKmltYWdlKiB0cmFjZSB0eXBlcy4iLCJBbHRlcm5hdGl2ZWx5IHlvdSBjb3VsZCBjb250cmlidXRlL3Nwb25zb3IgcmV3cml0aW5nIHRoaXMgdHJhY2UgdHlwZSIsImJhc2VkIG9uIGNhcnRlc2lhbiBmZWF0dXJlcyBhbmQgdXNpbmcgcmVnbCBmcmFtZXdvcmsuIl0uam9pbigiICIpO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vaGVhdG1hcC9jb2xvcmJhciIpLGNhbGM6dCgiLi4vaGVhdG1hcC9jYWxjIikscGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiaGVhdG1hcGdsIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nbDJkIiksY2F0ZWdvcmllczpbImdsIiwiZ2wyZCIsIjJkTWFwIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wyZCI6ODY3LCIuLi9oZWF0bWFwL2NhbGMiOjEwNTksIi4uL2hlYXRtYXAvY29sb3JiYXIiOjEwNjEsIi4vYXR0cmlidXRlcyI6MTA3MywiLi9jb252ZXJ0IjoxMDc0LCIuL2RlZmF1bHRzIjoxMDc1fV0sMTA3NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9iYXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsYT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLG89dCgiLi9iaW5fYXR0cmlidXRlcyIpLHM9dCgiLi9jb25zdGFudHMiKSxsPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17eDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHhob3ZlcmZvcm1hdDppKCJ4IikseWhvdmVyZm9ybWF0OmkoInkiKSx0ZXh0Omwoe30sbi50ZXh0LHt9KSxob3ZlcnRleHQ6bCh7fSxuLmhvdmVydGV4dCx7fSksb3JpZW50YXRpb246bi5vcmllbnRhdGlvbixoaXN0ZnVuYzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY291bnQiLCJzdW0iLCJhdmciLCJtaW4iLCJtYXgiXSxkZmx0OiJjb3VudCIsZWRpdFR5cGU6ImNhbGMifSxoaXN0bm9ybTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiIiwicGVyY2VudCIsInByb2JhYmlsaXR5IiwiZGVuc2l0eSIsInByb2JhYmlsaXR5IGRlbnNpdHkiXSxkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sY3VtdWxhdGl2ZTp7ZW5hYmxlZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGRpcmVjdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5jcmVhc2luZyIsImRlY3JlYXNpbmciXSxkZmx0OiJpbmNyZWFzaW5nIixlZGl0VHlwZToiY2FsYyJ9LGN1cnJlbnRiaW46e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluY2x1ZGUiLCJleGNsdWRlIiwiaGFsZiJdLGRmbHQ6ImluY2x1ZGUiLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxuYmluc3g6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHhiaW5zOm8oIngiLCEwKSxuYmluc3k6e3ZhbFR5cGU6ImludGVnZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHliaW5zOm8oInkiLCEwKSxhdXRvYmlueDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDpudWxsLGVkaXRUeXBlOiJjYWxjIn0sYXV0b2Jpbnk6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYyJ9LGJpbmdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxob3ZlcnRlbXBsYXRlOmEoe30se2tleXM6cy5ldmVudERhdGFLZXlzfSksbWFya2VyOm4ubWFya2VyLG9mZnNldGdyb3VwOm4ub2Zmc2V0Z3JvdXAsYWxpZ25tZW50Z3JvdXA6bi5hbGlnbm1lbnRncm91cCxzZWxlY3RlZDpuLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6bi51bnNlbGVjdGVkLF9kZXByZWNhdGVkOntiYXJkaXI6bi5fZGVwcmVjYXRlZC5iYXJkaXJ9fX0seyIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo4MzAsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vYmFyL2F0dHJpYnV0ZXMiOjkxNCwiLi9iaW5fYXR0cmlidXRlcyI6MTA3OSwiLi9jb25zdGFudHMiOjEwODN9XSwxMDc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPTAsaT0wO2k8cjtpKyspZVtpXT8odFtpXS89ZVtpXSxuKz10W2ldKTp0W2ldPW51bGw7cmV0dXJuIG59fSx7fV0sMTA3OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm57c3RhcnQ6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSxlbmQ6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSxzaXplOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifX19LHt9XSwxMDgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIik7ZS5leHBvcnRzPXtjb3VudDpmdW5jdGlvbih0LGUscil7cmV0dXJuIHJbdF0rKywxfSxzdW06ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGE9aVtlXTtyZXR1cm4gbihhKT8oYT1OdW1iZXIoYSksclt0XSs9YSxhKTowfSxhdmc6ZnVuY3Rpb24odCxlLHIsaSxhKXt2YXIgbz1pW2VdO3JldHVybiBuKG8pJiYobz1OdW1iZXIobyksclt0XSs9byxhW3RdKyspLDB9LG1pbjpmdW5jdGlvbih0LGUscixpKXt2YXIgYT1pW2VdO2lmKG4oYSkpe2lmKGE9TnVtYmVyKGEpLCFuKHJbdF0pKXJldHVybiByW3RdPWEsYTtpZihyW3RdPmEpe3ZhciBvPWEtclt0XTtyZXR1cm4gclt0XT1hLG99fXJldHVybiAwfSxtYXg6ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGE9aVtlXTtpZihuKGEpKXtpZihhPU51bWJlcihhKSwhbihyW3RdKSlyZXR1cm4gclt0XT1hLGE7aWYoclt0XTxhKXt2YXIgbz1hLXJbdF07cmV0dXJuIHJbdF09YSxvfX1yZXR1cm4gMH19fSx7ImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMDgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxpPW4uT05FQVZHWUVBUixhPW4uT05FQVZHTU9OVEgsbz1uLk9ORURBWSxzPW4uT05FSE9VUixsPW4uT05FTUlOLGM9bi5PTkVTRUMsdT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLnRpY2tJbmNyZW1lbnQ7ZnVuY3Rpb24gZih0LGUscixuKXtpZih0KmU8PTApcmV0dXJuIDEvMDtmb3IodmFyIGk9TWF0aC5hYnMoZS10KSxhPSJkYXRlIj09PXIudHlwZSxvPWgoaSxhKSxzPTA7czwxMDtzKyspe3ZhciBsPWgoODAqbyxhKTtpZihvPT09bClicmVhaztpZighcChsLHQsZSxhLHIsbikpYnJlYWs7bz1sfXJldHVybiBvfWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gZSYmdD5jP3Q+bz90PjEuMSppP2k6dD4xLjEqYT9hOm86dD5zP3M6dD5sP2w6YzpNYXRoLnBvdygxMCxNYXRoLmZsb29yKE1hdGgubG9nKHQpL01hdGguTE4xMCkpfWZ1bmN0aW9uIHAodCxlLHIsbixhLHMpe2lmKG4mJnQ+byl7dmFyIGw9ZChlLGEscyksYz1kKHIsYSxzKSx1PXQ9PT1pPzA6MTtyZXR1cm4gbFt1XSE9PWNbdV19cmV0dXJuIE1hdGguZmxvb3Ioci90KS1NYXRoLmZsb29yKGUvdCk+LjF9ZnVuY3Rpb24gZCh0LGUscil7dmFyIG49ZS5jMmQodCxpLHIpLnNwbGl0KCItIik7cmV0dXJuIiI9PT1uWzBdJiYobi51bnNoaWZ0KCksblswXT0iLSIrblswXSksbn1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgcyxsLGM9LTEuMSplLGg9LS4xKmUscD10LWgsZD1yWzBdLG09clsxXSxnPU1hdGgubWluKGYoZCtoLGQrcCxuLGEpLGYobStoLG0rcCxuLGEpKSx2PU1hdGgubWluKGYoZCtjLGQraCxuLGEpLGYobStjLG0raCxuLGEpKTtpZihnPnYmJnY8TWF0aC5hYnMobS1kKS80ZTM/KHM9ZyxsPSExKToocz1NYXRoLm1pbihnLHYpLGw9ITApLCJkYXRlIj09PW4udHlwZSYmcz5vKXt2YXIgeT1zPT09aT8xOjYseD1zPT09aT8iTTEyIjoiTTEiO3JldHVybiBmdW5jdGlvbihlLHIpe3ZhciBvPW4uYzJkKGUsaSxhKSxzPW8uaW5kZXhPZigiLSIseSk7cz4wJiYobz1vLnN1YnN0cigwLHMpKTt2YXIgYz1uLmQyYyhvLDAsYSk7aWYoYzxlKXt2YXIgZj11KGMseCwhMSxhKTsoYytmKS8yPGUrdCYmKGM9Zil9cmV0dXJuIHImJmw/dShjLHgsITAsYSk6Y319cmV0dXJuIGZ1bmN0aW9uKGUscil7dmFyIG49cypNYXRoLnJvdW5kKGUvcyk7cmV0dXJuIG4rcy8xMDxlJiZuKy45KnM8ZSt0JiYobis9cyksciYmbCYmKG4tPXMpLG59fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4Mjd9XSwxMDgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5Iiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLHM9dCgiLi4vYmFyL2FycmF5c190b19jYWxjZGF0YSIpLGw9dCgiLi9iaW5fZnVuY3Rpb25zIiksYz10KCIuL25vcm1fZnVuY3Rpb25zIiksdT10KCIuL2F2ZXJhZ2UiKSxmPXQoIi4vYmluX2xhYmVsX3ZhbHMiKTtmdW5jdGlvbiBoKHQsZSxyLHMsbCl7dmFyIGMsdSxmLHAsZCxtLGcsdj1zKyJiaW5zIix5PXQuX2Z1bGxMYXlvdXQseD1lWyJfIitzKyJiaW5ncm91cCJdLGI9eS5faGlzdG9ncmFtQmluT3B0c1t4XSxfPSJvdmVybGF5Ij09PXkuYmFybW9kZSx3PWZ1bmN0aW9uKHQpe3JldHVybiByLnIyYyh0LDAscCl9LFQ9ZnVuY3Rpb24odCl7cmV0dXJuIHIuYzJyKHQsMCxwKX0saz0iZGF0ZSI9PT1yLnR5cGU/ZnVuY3Rpb24odCl7cmV0dXJuIHR8fDA9PT10P2kuY2xlYW5EYXRlKHQsbnVsbCxwKTpudWxsfTpmdW5jdGlvbih0KXtyZXR1cm4gbih0KT9OdW1iZXIodCk6bnVsbH07ZnVuY3Rpb24gQSh0LGUscil7ZVt0KyJGb3VuZCJdPyhlW3RdPWsoZVt0XSksbnVsbD09PWVbdF0mJihlW3RdPXJbdF0pKToobVt0XT1lW3RdPXJbdF0saS5uZXN0ZWRQcm9wZXJ0eSh1WzBdLHYrIi4iK3QpLnNldChyW3RdKSl9aWYoZVsiXyIrcysiYXV0b0JpbkZpbmlzaGVkIl0pZGVsZXRlIGVbIl8iK3MrImF1dG9CaW5GaW5pc2hlZCJdO2Vsc2V7dT1iLnRyYWNlczt2YXIgTT1bXSxTPSEwLEU9ITEsTD0hMTtmb3IoYz0wO2M8dS5sZW5ndGg7YysrKWlmKChmPXVbY10pLnZpc2libGUpe3ZhciBDPWIuZGlyc1tjXTtkPWZbIl8iK0MrInBvczAiXT1yLm1ha2VDYWxjZGF0YShmLEMpLE09aS5jb25jYXQoTSxkKSxkZWxldGUgZlsiXyIrcysiYXV0b0JpbkZpbmlzaGVkIl0sITA9PT1lLnZpc2libGUmJihTP1M9ITE6KGRlbGV0ZSBmLl9hdXRvQmluLGZbIl8iK3MrImF1dG9CaW5GaW5pc2hlZCJdPTEpLGEudHJhY2VJcyhmLCIyZE1hcCIpJiYoRT0hMCksImhpc3RvZ3JhbTJkY29udG91ciI9PT1mLnR5cGUmJihMPSEwKSl9cD11WzBdW3MrImNhbGVuZGFyIl07dmFyIFA9by5hdXRvQmluKE0scixiLm5iaW5zLEUscCxiLnNpemVGb3VuZCYmYi5zaXplKSxJPXVbMF0uX2F1dG9CaW49e307aWYobT1JW2IuZGlyc1swXV09e30sTCYmKGIuc2l6ZXx8KFAuc3RhcnQ9VChvLnRpY2tJbmNyZW1lbnQodyhQLnN0YXJ0KSxQLnNpemUsITAscCkpKSx2b2lkIDA9PT1iLmVuZCYmKFAuZW5kPVQoby50aWNrSW5jcmVtZW50KHcoUC5lbmQpLFAuc2l6ZSwhMSxwKSkpKSxfJiYhYS50cmFjZUlzKGUsIjJkTWFwIikmJjA9PT1QLl9kYXRhU3BhbiYmImNhdGVnb3J5IiE9PXIudHlwZSYmIm11bHRpY2F0ZWdvcnkiIT09ci50eXBlKXtpZihsKXJldHVybltQLGQsITBdO1A9ZnVuY3Rpb24odCxlLHIsbixhKXt2YXIgbyxzLGwsYz10Ll9mdWxsTGF5b3V0LHU9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS54YXhpcyxuPWUueWF4aXMsaT1lLm9yaWVudGF0aW9uLGE9W10sbz10Ll9mdWxsRGF0YSxzPTA7czxvLmxlbmd0aDtzKyspe3ZhciBsPW9bc107Imhpc3RvZ3JhbSI9PT1sLnR5cGUmJiEwPT09bC52aXNpYmxlJiZsLm9yaWVudGF0aW9uPT09aSYmbC54YXhpcz09PXImJmwueWF4aXM9PT1uJiZhLnB1c2gobCl9cmV0dXJuIGF9KHQsZSksZj0hMSxwPTEvMCxkPVtlXTtmb3Iobz0wO288dS5sZW5ndGg7bysrKWlmKChzPXVbb10pPT09ZSlmPSEwO2Vsc2UgaWYoZil7dmFyIG09aCh0LHMscixuLCEwKSxnPW1bMF0sdj1tWzJdO3NbIl8iK24rImF1dG9CaW5GaW5pc2hlZCJdPTEsc1siXyIrbisicG9zMCJdPW1bMV0sdj9kLnB1c2gocyk6cD1NYXRoLm1pbihwLGcuc2l6ZSl9ZWxzZSBsPWMuX2hpc3RvZ3JhbUJpbk9wdHNbc1siXyIrbisiYmluZ3JvdXAiXV0scD1NYXRoLm1pbihwLGwuc2l6ZXx8c1thXS5zaXplKTt2YXIgeT1uZXcgQXJyYXkoZC5sZW5ndGgpO2ZvcihvPTA7bzxkLmxlbmd0aDtvKyspZm9yKHZhciB4PWRbb11bIl8iK24rInBvczAiXSxiPTA7Yjx4Lmxlbmd0aDtiKyspaWYodm9pZCAwIT09eFtiXSl7eVtvXT14W2JdO2JyZWFrfWlzRmluaXRlKHApfHwocD1pLmRpc3RpbmN0VmFscyh5KS5taW5EaWZmKTtmb3Iobz0wO288ZC5sZW5ndGg7bysrKXt2YXIgXz0ocz1kW29dKVtuKyJjYWxlbmRhciJdLHc9e3N0YXJ0OnIuYzJyKHlbb10tcC8yLDAsXyksZW5kOnIuYzJyKHlbb10rcC8yLDAsXyksc2l6ZTpwfTtzLl9pbnB1dFthXT1zW2FdPXcsKGw9Yy5faGlzdG9ncmFtQmluT3B0c1tzWyJfIituKyJiaW5ncm91cCJdXSkmJmkuZXh0ZW5kRmxhdChsLHcpfXJldHVybiBlW2FdfSh0LGUscixzLHYpfShnPWYuY3VtdWxhdGl2ZXx8e30pLmVuYWJsZWQmJiJpbmNsdWRlIiE9PWcuY3VycmVudGJpbiYmKCJkZWNyZWFzaW5nIj09PWcuZGlyZWN0aW9uP1Auc3RhcnQ9VChvLnRpY2tJbmNyZW1lbnQodyhQLnN0YXJ0KSxQLnNpemUsITAscCkpOlAuZW5kPVQoby50aWNrSW5jcmVtZW50KHcoUC5lbmQpLFAuc2l6ZSwhMSxwKSkpLGIuc2l6ZT1QLnNpemUsYi5zaXplRm91bmR8fChtLnNpemU9UC5zaXplLGkubmVzdGVkUHJvcGVydHkodVswXSx2KyIuc2l6ZSIpLnNldChQLnNpemUpKSxBKCJzdGFydCIsYixQKSxBKCJlbmQiLGIsUCl9ZD1lWyJfIitzKyJwb3MwIl0sZGVsZXRlIGVbIl8iK3MrInBvczAiXTt2YXIgTz1lLl9pbnB1dFt2XXx8e30sej1pLmV4dGVuZEZsYXQoe30sYiksRD1iLnN0YXJ0LFI9ci5yMmwoTy5zdGFydCksRj12b2lkIDAhPT1SO2lmKChiLnN0YXJ0Rm91bmR8fEYpJiZSIT09ci5yMmwoRCkpe3ZhciBCPUY/UjppLmFnZ051bXMoTWF0aC5taW4sbnVsbCxkKSxOPXt0eXBlOiJjYXRlZ29yeSI9PT1yLnR5cGV8fCJtdWx0aWNhdGVnb3J5Ij09PXIudHlwZT8ibGluZWFyIjpyLnR5cGUscjJsOnIucjJsLGR0aWNrOmIuc2l6ZSx0aWNrMDpELGNhbGVuZGFyOnAscmFuZ2U6W0Isby50aWNrSW5jcmVtZW50KEIsYi5zaXplLCExLHApXS5tYXAoci5sMnIpfSxqPW8udGlja0ZpcnN0KE4pO2o+ci5yMmwoQikmJihqPW8udGlja0luY3JlbWVudChqLGIuc2l6ZSwhMCxwKSksei5zdGFydD1yLmwycihqKSxGfHxpLm5lc3RlZFByb3BlcnR5KGUsdisiLnN0YXJ0Iikuc2V0KHouc3RhcnQpfXZhciBVPWIuZW5kLFY9ci5yMmwoTy5lbmQpLEg9dm9pZCAwIT09VjtpZigoYi5lbmRGb3VuZHx8SCkmJlYhPT1yLnIybChVKSl7dmFyIHE9SD9WOmkuYWdnTnVtcyhNYXRoLm1heCxudWxsLGQpO3ouZW5kPXIubDJyKHEpLEh8fGkubmVzdGVkUHJvcGVydHkoZSx2KyIuc3RhcnQiKS5zZXQoei5lbmQpfXZhciBHPSJhdXRvYmluIitzO3JldHVybiExPT09ZS5faW5wdXRbR10mJihlLl9pbnB1dFt2XT1pLmV4dGVuZEZsYXQoe30sZVt2XXx8e30pLGRlbGV0ZSBlLl9pbnB1dFtHXSxkZWxldGUgZVtHXSksW3osZF19ZS5leHBvcnRzPXtjYWxjOmZ1bmN0aW9uKHQsZSl7dmFyIHIsYSxwLGQsbT1bXSxnPVtdLHY9by5nZXRGcm9tSWQodCwiaCI9PT1lLm9yaWVudGF0aW9uP2UueWF4aXM6ZS54YXhpcykseT0iaCI9PT1lLm9yaWVudGF0aW9uPyJ5IjoieCIseD17eDoieSIseToieCJ9W3ldLGI9ZVt5KyJjYWxlbmRhciJdLF89ZS5jdW11bGF0aXZlLHc9aCh0LGUsdix5KSxUPXdbMF0saz13WzFdLEE9InN0cmluZyI9PXR5cGVvZiBULnNpemUsTT1bXSxTPUE/TTpULEU9W10sTD1bXSxDPVtdLFA9MCxJPWUuaGlzdG5vcm0sTz1lLmhpc3RmdW5jLHo9LTEhPT1JLmluZGV4T2YoImRlbnNpdHkiKTtfLmVuYWJsZWQmJnomJihJPUkucmVwbGFjZSgvID9kZW5zaXR5JC8sIiIpLHo9ITEpO3ZhciBELFI9Im1heCI9PT1PfHwibWluIj09PU8/bnVsbDowLEY9bC5jb3VudCxCPWNbSV0sTj0hMSxqPWZ1bmN0aW9uKHQpe3JldHVybiB2LnIyYyh0LDAsYil9O2ZvcihpLmlzQXJyYXlPclR5cGVkQXJyYXkoZVt4XSkmJiJjb3VudCIhPT1PJiYoRD1lW3hdLE49ImF2ZyI9PT1PLEY9bFtPXSkscj1qKFQuc3RhcnQpLHA9aihULmVuZCkrKHItby50aWNrSW5jcmVtZW50KHIsVC5zaXplLCExLGIpKS8xZTY7cjxwJiZtLmxlbmd0aDwxZTYmJihhPW8udGlja0luY3JlbWVudChyLFQuc2l6ZSwhMSxiKSxtLnB1c2goKHIrYSkvMiksZy5wdXNoKFIpLEMucHVzaChbXSksTS5wdXNoKHIpLHomJkUucHVzaCgxLyhhLXIpKSxOJiZMLnB1c2goMCksIShhPD1yKSk7KXI9YTtNLnB1c2gociksQXx8ImRhdGUiIT09di50eXBlfHwoUz17c3RhcnQ6aihTLnN0YXJ0KSxlbmQ6aihTLmVuZCksc2l6ZTpTLnNpemV9KSx0Ll9mdWxsTGF5b3V0Ll9yb3VuZEZuT3B0c3x8KHQuX2Z1bGxMYXlvdXQuX3JvdW5kRm5PcHRzPXt9KTt2YXIgVT1lWyJfIit5KyJiaW5ncm91cCJdLFY9e2xlZnRHYXA6MS8wLHJpZ2h0R2FwOjEvMH07VSYmKHQuX2Z1bGxMYXlvdXQuX3JvdW5kRm5PcHRzW1VdfHwodC5fZnVsbExheW91dC5fcm91bmRGbk9wdHNbVV09ViksVj10Ll9mdWxsTGF5b3V0Ll9yb3VuZEZuT3B0c1tVXSk7dmFyIEgscT1nLmxlbmd0aCxHPSEwLFk9Vi5sZWZ0R2FwLFc9Vi5yaWdodEdhcCxYPXt9O2ZvcihyPTA7cjxrLmxlbmd0aDtyKyspe3ZhciBaPWtbcl07KGQ9aS5maW5kQmluKFosUykpPj0wJiZkPHEmJihQKz1GKGQscixnLEQsTCksRyYmQ1tkXS5sZW5ndGgmJlohPT1rW0NbZF1bMF1dJiYoRz0hMSksQ1tkXS5wdXNoKHIpLFhbcl09ZCxZPU1hdGgubWluKFksWi1NW2RdKSxXPU1hdGgubWluKFcsTVtkKzFdLVopKX1WLmxlZnRHYXA9WSxWLnJpZ2h0R2FwPVcsR3x8KEg9ZnVuY3Rpb24oZSxyKXtyZXR1cm4gZnVuY3Rpb24oKXt2YXIgbj10Ll9mdWxsTGF5b3V0Ll9yb3VuZEZuT3B0c1tVXTtyZXR1cm4gZihuLmxlZnRHYXAsbi5yaWdodEdhcCxNLHYsYikoZSxyKX19KSxOJiYoUD11KGcsTCkpLEImJkIoZyxQLEUpLF8uZW5hYmxlZCYmZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYTtmdW5jdGlvbiBvKGUpe2E9dFtlXSx0W2VdLz0yfWZ1bmN0aW9uIHMoZSl7aT10W2VdLHRbZV09YStpLzIsYSs9aX1pZigiaGFsZiI9PT1yKWlmKCJpbmNyZWFzaW5nIj09PWUpZm9yKG8oMCksbj0xO248dC5sZW5ndGg7bisrKXMobik7ZWxzZSBmb3Iobyh0Lmxlbmd0aC0xKSxuPXQubGVuZ3RoLTI7bj49MDtuLS0pcyhuKTtlbHNlIGlmKCJpbmNyZWFzaW5nIj09PWUpe2ZvcihuPTE7bjx0Lmxlbmd0aDtuKyspdFtuXSs9dFtuLTFdOyJleGNsdWRlIj09PXImJih0LnVuc2hpZnQoMCksdC5wb3AoKSl9ZWxzZXtmb3Iobj10Lmxlbmd0aC0yO24+PTA7bi0tKXRbbl0rPXRbbisxXTsiZXhjbHVkZSI9PT1yJiYodC5wdXNoKDApLHQuc2hpZnQoKSl9fShnLF8uZGlyZWN0aW9uLF8uY3VycmVudGJpbik7dmFyIEo9TWF0aC5taW4obS5sZW5ndGgsZy5sZW5ndGgpLEs9W10sUT0wLCQ9Si0xO2ZvcihyPTA7cjxKO3IrKylpZihnW3JdKXtRPXI7YnJlYWt9Zm9yKHI9Si0xO3I+PVE7ci0tKWlmKGdbcl0peyQ9cjticmVha31mb3Iocj1RO3I8PSQ7cisrKWlmKG4obVtyXSkmJm4oZ1tyXSkpe3ZhciB0dD17cDptW3JdLHM6Z1tyXSxiOjB9O18uZW5hYmxlZHx8KHR0LnB0cz1DW3JdLEc/dHQucGgwPXR0LnBoMT1DW3JdLmxlbmd0aD9rW0Nbcl1bMF1dOm1bcl06KGUuX2NvbXB1dGVQaD0hMCx0dC5waDA9SChNW3JdKSx0dC5waDE9SChNW3IrMV0sITApKSksSy5wdXNoKHR0KX1yZXR1cm4gMT09PUsubGVuZ3RoJiYoS1swXS53aWR0aDE9by50aWNrSW5jcmVtZW50KEtbMF0ucCxULnNpemUsITEsYiktS1swXS5wKSxzKEssZSksaS5pc0FycmF5T3JUeXBlZEFycmF5KGUuc2VsZWN0ZWRwb2ludHMpJiZpLnRhZ1NlbGVjdGVkKEssZSxYKSxLfSxjYWxjQWxsQXV0b0JpbnM6aH19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2Jhci9hcnJheXNfdG9fY2FsY2RhdGEiOjkxMywiLi9hdmVyYWdlIjoxMDc4LCIuL2Jpbl9mdW5jdGlvbnMiOjEwODAsIi4vYmluX2xhYmVsX3ZhbHMiOjEwODEsIi4vbm9ybV9mdW5jdGlvbnMiOjEwODksImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMDgzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17ZXZlbnREYXRhS2V5czpbImJpbk51bWJlciJdfX0se31dLDEwODQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiKSxhPXQoIi4uLy4uL3JlZ2lzdHJ5IikudHJhY2VJcyxvPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZUdyb3VwaW5nRGVmYXVsdHMscz1uLm5lc3RlZFByb3BlcnR5LGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIikuZ2V0QXhpc0dyb3VwLGM9W3thU3RyOnt4OiJ4Ymlucy5zdGFydCIseToieWJpbnMuc3RhcnQifSxuYW1lOiJzdGFydCJ9LHthU3RyOnt4OiJ4Ymlucy5lbmQiLHk6InliaW5zLmVuZCJ9LG5hbWU6ImVuZCJ9LHthU3RyOnt4OiJ4Ymlucy5zaXplIix5OiJ5Ymlucy5zaXplIn0sbmFtZToic2l6ZSJ9LHthU3RyOnt4OiJuYmluc3giLHk6Im5iaW5zeSJ9LG5hbWU6Im5iaW5zIn1dLHU9WyJ4IiwieSJdO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGYsaCxwLGQsbSxnLHY9ZS5faGlzdG9ncmFtQmluT3B0cz17fSx5PVtdLHg9e30sYj1bXTtmdW5jdGlvbiBfKHQsZSl7cmV0dXJuIG4uY29lcmNlKHIuX2lucHV0LHIsci5fbW9kdWxlLmF0dHJpYnV0ZXMsdCxlKX1mdW5jdGlvbiB3KHQpe3JldHVybiJ2Ij09PXQub3JpZW50YXRpb24/IngiOiJ5In1mdW5jdGlvbiBUKHQscixhKXt2YXIgbz10LnVpZCsiX18iK2E7cnx8KHI9byk7dmFyIHM9ZnVuY3Rpb24odCxyKXtyZXR1cm4gaS5nZXRGcm9tVHJhY2Uoe19mdWxsTGF5b3V0OmV9LHQscikudHlwZX0odCxhKSxsPXRbYSsiY2FsZW5kYXIiXXx8IiIsYz12W3JdLHU9ITA7YyYmKHM9PT1jLmF4VHlwZSYmbD09PWMuY2FsZW5kYXI/KHU9ITEsYy50cmFjZXMucHVzaCh0KSxjLmRpcnMucHVzaChhKSk6KHI9byxzIT09Yy5heFR5cGUmJm4ud2FybihbIkF0dGVtcHRlZCB0byBncm91cCB0aGUgYmlucyBvZiB0cmFjZSIsdC5pbmRleCwic2V0IG9uIGEiLCJ0eXBlOiIrcywiYXhpcyIsIndpdGggYmlucyBvbiIsInR5cGU6IitjLmF4VHlwZSwiYXhpcy4iXS5qb2luKCIgIikpLGwhPT1jLmNhbGVuZGFyJiZuLndhcm4oWyJBdHRlbXB0ZWQgdG8gZ3JvdXAgdGhlIGJpbnMgb2YgdHJhY2UiLHQuaW5kZXgsInNldCB3aXRoIGEiLGwsImNhbGVuZGFyIiwid2l0aCBiaW5zIixjLmNhbGVuZGFyPyJvbiBhICIrYy5jYWxlbmRhcisiIGNhbGVuZGFyIjoidy9vIGEgc2V0IGNhbGVuZGFyIl0uam9pbigiICIpKSkpLHUmJih2W3JdPXt0cmFjZXM6W3RdLGRpcnM6W2FdLGF4VHlwZTpzLGNhbGVuZGFyOnRbYSsiY2FsZW5kYXIiXXx8IiJ9KSx0WyJfIithKyJiaW5ncm91cCJdPXJ9Zm9yKGQ9MDtkPHQubGVuZ3RoO2QrKylyPXRbZF0sYShyLCJoaXN0b2dyYW0iKSYmKHkucHVzaChyKSxkZWxldGUgci5feGF1dG9CaW5GaW5pc2hlZCxkZWxldGUgci5feWF1dG9CaW5GaW5pc2hlZCxhKHIsIjJkTWFwIil8fG8oci5faW5wdXQscixlLF8pKTt2YXIgaz1lLl9hbGlnbm1lbnRPcHRzfHx7fTtmb3IoZD0wO2Q8eS5sZW5ndGg7ZCsrKXtpZihyPXlbZF0saD0iIiwhYShyLCIyZE1hcCIpKXtpZihwPXcociksImdyb3VwIj09PWUuYmFybW9kZSYmci5hbGlnbm1lbnRncm91cCl7dmFyIEE9cltwKyJheGlzIl0sTT1sKGUsQSkrci5vcmllbnRhdGlvbjsoa1tNXXx8e30pW3IuYWxpZ25tZW50Z3JvdXBdJiYoaD1NKX1ofHwib3ZlcmxheSI9PT1lLmJhcm1vZGV8fChoPWwoZSxyLnhheGlzKStsKGUsci55YXhpcykrdyhyKSl9aD8oeFtoXXx8KHhbaF09W10pLHhbaF0ucHVzaChyKSk6Yi5wdXNoKHIpfWZvcihoIGluIHgpaWYoMSE9PShmPXhbaF0pLmxlbmd0aCl7dmFyIFM9ITE7Zm9yKGYubGVuZ3RoJiYocj1mWzBdLFM9XygiYmluZ3JvdXAiKSksaD1TfHxoLGQ9MDtkPGYubGVuZ3RoO2QrKyl7dmFyIEU9KHI9ZltkXSkuX2lucHV0LmJpbmdyb3VwO0UmJkUhPT1oJiZuLndhcm4oWyJUcmFjZSIsci5pbmRleCwibXVzdCBtYXRjaCIsIndpdGhpbiBiaW5ncm91cCIsaCsiLiIsIklnbm9yaW5nIGl0cyBiaW5ncm91cDoiLEUsInNldHRpbmcuIl0uam9pbigiICIpKSxyLmJpbmdyb3VwPWgsVChyLGgsdyhyKSl9fWVsc2UgYi5wdXNoKGZbMF0pO2ZvcihkPTA7ZDxiLmxlbmd0aDtkKyspe3I9YltkXTt2YXIgTD1fKCJiaW5ncm91cCIpO2lmKGEociwiMmRNYXAiKSlmb3IoZz0wO2c8MjtnKyspe3ZhciBDPV8oKHA9dVtnXSkrImJpbmdyb3VwIixMP0wrIl9fIitwOm51bGwpO1QocixDLHApfWVsc2UgVChyLEwsdyhyKSl9Zm9yKGggaW4gdil7dmFyIFA9dltoXTtmb3IoZj1QLnRyYWNlcyxtPTA7bTxjLmxlbmd0aDttKyspe3ZhciBJLE8sej1jW21dLEQ9ei5uYW1lO2lmKCJuYmlucyIhPT1EfHwhUC5zaXplRm91bmQpe2ZvcihkPTA7ZDxmLmxlbmd0aDtkKyspe2lmKHI9ZltkXSxwPVAuZGlyc1tkXSxJPXouYVN0cltwXSx2b2lkIDAhPT1zKHIuX2lucHV0LEkpLmdldCgpKXtQW0RdPV8oSSksUFtEKyJGb3VuZCJdPSEwO2JyZWFrfShPPShyLl9hdXRvQmlufHx7fSlbcF18fHt9KVtEXSYmcyhyLEkpLnNldChPW0RdKX1pZigic3RhcnQiPT09RHx8ImVuZCI9PT1EKWZvcig7ZDxmLmxlbmd0aDtkKyspKHI9ZltkXSlbIl8iK3ArImJpbmdyb3VwIl0mJl8oSSwoTz0oci5fYXV0b0Jpbnx8e30pW3BdfHx7fSlbRF0pOyJuYmlucyIhPT1EfHxQLnNpemVGb3VuZHx8UC5uYmluc0ZvdW5kfHwocj1mWzBdLFBbRF09XyhJKSl9fX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0cmFpbnRzIjo4MzUsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2Jhci9kZWZhdWx0cyI6OTE4fV0sMTA4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi9iYXIvc3R5bGVfZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXtmdW5jdGlvbiBjKHIsbil7cmV0dXJuIGkuY29lcmNlKHQsZSxzLHIsbil9dmFyIHU9YygieCIpLGY9YygieSIpO2MoImN1bXVsYXRpdmUuZW5hYmxlZCIpJiYoYygiY3VtdWxhdGl2ZS5kaXJlY3Rpb24iKSxjKCJjdW11bGF0aXZlLmN1cnJlbnRiaW4iKSksYygidGV4dCIpLGMoImhvdmVydGV4dCIpLGMoImhvdmVydGVtcGxhdGUiKSxjKCJ4aG92ZXJmb3JtYXQiKSxjKCJ5aG92ZXJmb3JtYXQiKTt2YXIgaD1jKCJvcmllbnRhdGlvbiIsZiYmIXU/ImgiOiJ2IikscD0idiI9PT1oPyJ4IjoieSIsZD0idiI9PT1oPyJ5IjoieCIsbT11JiZmP01hdGgubWluKGkubWluUm93TGVuZ3RoKHUpJiZpLm1pblJvd0xlbmd0aChmKSk6aS5taW5Sb3dMZW5ndGgoZVtwXXx8W10pO2lmKG0pe2UuX2xlbmd0aD1tLG4uZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVUcmFjZURlZmF1bHRzIikodCxlLFsieCIsInkiXSxsKSxlW2RdJiZjKCJoaXN0ZnVuYyIpLGMoImhpc3Rub3JtIiksYygiYXV0b2JpbiIrcCksbyh0LGUsYyxyLGwpLGkuY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLGMpO3ZhciBnPShlLm1hcmtlci5saW5lfHx7fSkuY29sb3Isdj1uLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTt2KHQsZSxnfHxhLmRlZmF1bHRMaW5lLHtheGlzOiJ5In0pLHYodCxlLGd8fGEuZGVmYXVsdExpbmUse2F4aXM6IngiLGluaGVyaXQ6InkifSl9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL2Jhci9zdHlsZV9kZWZhdWx0cyI6OTI5LCIuL2F0dHJpYnV0ZXMiOjEwNzd9XSwxMDg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe2lmKHQueD0ieFZhbCJpbiBlP2UueFZhbDplLngsdC55PSJ5VmFsImluIGU/ZS55VmFsOmUueSwiekxhYmVsVmFsImluIGUmJih0Lno9ZS56TGFiZWxWYWwpLGUueGEmJih0LnhheGlzPWUueGEpLGUueWEmJih0LnlheGlzPWUueWEpLCEoci5jdW11bGF0aXZlfHx7fSkuZW5hYmxlZCl7dmFyIGEsbz1BcnJheS5pc0FycmF5KGkpP25bMF0ucHRzW2lbMF1dW2lbMV1dOm5baV0ucHRzO2lmKHQucG9pbnROdW1iZXJzPW8sdC5iaW5OdW1iZXI9dC5wb2ludE51bWJlcixkZWxldGUgdC5wb2ludE51bWJlcixkZWxldGUgdC5wb2ludEluZGV4LHIuX2luZGV4VG9Qb2ludHMpe2E9W107Zm9yKHZhciBzPTA7czxvLmxlbmd0aDtzKyspYT1hLmNvbmNhdChyLl9pbmRleFRvUG9pbnRzW29bc11dKX1lbHNlIGE9bzt0LnBvaW50SW5kaWNlcz1hfXJldHVybiB0fX0se31dLDEwODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYmFyL2hvdmVyIikuaG92ZXJQb2ludHMsaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLmhvdmVyTGFiZWxUZXh0O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhLG8pe3ZhciBzPW4odCxlLHIsYSxvKTtpZihzKXt2YXIgbD0odD1zWzBdKS5jZFt0LmluZGV4XSxjPXQuY2RbMF0udHJhY2U7aWYoIWMuY3VtdWxhdGl2ZS5lbmFibGVkKXt2YXIgdT0iaCI9PT1jLm9yaWVudGF0aW9uPyJ5IjoieCI7dFt1KyJMYWJlbCJdPWkodFt1KyJhIl0sW2wucGgwLGwucGgxXSxjW3UrImhvdmVyZm9ybWF0Il0pfXJldHVybiBzfX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vYmFyL2hvdmVyIjo5MjF9XSwxMDg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4uL2Jhci9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi9jcm9zc190cmFjZV9kZWZhdWx0cyIpLHN1cHBseUxheW91dERlZmF1bHRzOnQoIi4uL2Jhci9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMsY3Jvc3NUcmFjZUNhbGM6dCgiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4uL2Jhci9wbG90IikucGxvdCxsYXllck5hbWU6ImJhcmxheWVyIixzdHlsZTp0KCIuLi9iYXIvc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4uL2Jhci9zdHlsZSIpLnN0eWxlT25TZWxlY3QsY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL2Jhci9zZWxlY3QiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6Imhpc3RvZ3JhbSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImJhci1saWtlIiwiY2FydGVzaWFuIiwic3ZnIiwiYmFyIiwiaGlzdG9ncmFtIiwib3JpZW50ZWQiLCJlcnJvckJhcnNPSyIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiOjkxNywiLi4vYmFyL2xheW91dF9hdHRyaWJ1dGVzIjo5MjMsIi4uL2Jhci9sYXlvdXRfZGVmYXVsdHMiOjkyNCwiLi4vYmFyL3Bsb3QiOjkyNSwiLi4vYmFyL3NlbGVjdCI6OTI2LCIuLi9iYXIvc3R5bGUiOjkyOCwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjEyMDksIi4vYXR0cmlidXRlcyI6MTA3NywiLi9jYWxjIjoxMDgyLCIuL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIjoxMDg0LCIuL2RlZmF1bHRzIjoxMDg1LCIuL2V2ZW50X2RhdGEiOjEwODYsIi4vaG92ZXIiOjEwODd9XSwxMDg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17cGVyY2VudDpmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPTEwMC9lLGk9MDtpPHI7aSsrKXRbaV0qPW59LHByb2JhYmlsaXR5OmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQubGVuZ3RoLG49MDtuPHI7bisrKXRbbl0vPWV9LGRlbnNpdHk6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5sZW5ndGg7bj1ufHwxO2Zvcih2YXIgYT0wO2E8aTthKyspdFthXSo9clthXSpufSwicHJvYmFiaWxpdHkgZGVuc2l0eSI6ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9dC5sZW5ndGg7biYmKGUvPW4pO2Zvcih2YXIgYT0wO2E8aTthKyspdFthXSo9clthXS9lfX19LHt9XSwxMDkwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hpc3RvZ3JhbS9hdHRyaWJ1dGVzIiksaT10KCIuLi9oaXN0b2dyYW0vYmluX2F0dHJpYnV0ZXMiKSxhPXQoIi4uL2hlYXRtYXAvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsbD10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSx1PXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz11KHt4Om4ueCx5Om4ueSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG1hcmtlcjp7Y29sb3I6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxoaXN0bm9ybTpuLmhpc3Rub3JtLGhpc3RmdW5jOm4uaGlzdGZ1bmMsbmJpbnN4Om4ubmJpbnN4LHhiaW5zOmkoIngiKSxuYmluc3k6bi5uYmluc3kseWJpbnM6aSgieSIpLGF1dG9iaW54Om4uYXV0b2JpbngsYXV0b2Jpbnk6bi5hdXRvYmlueSxiaW5ncm91cDp1KHt9LG4uYmluZ3JvdXAse30pLHhiaW5ncm91cDp1KHt9LG4uYmluZ3JvdXAse30pLHliaW5ncm91cDp1KHt9LG4uYmluZ3JvdXAse30pLHhnYXA6YS54Z2FwLHlnYXA6YS55Z2FwLHpzbW9vdGg6YS56c21vb3RoLHhob3ZlcmZvcm1hdDpzKCJ4IikseWhvdmVyZm9ybWF0OnMoInkiKSx6aG92ZXJmb3JtYXQ6cygieiIsMSksaG92ZXJ0ZW1wbGF0ZTpsKHt9LHtrZXlzOiJ6In0pLHNob3dsZWdlbmQ6dSh7fSxvLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sYygiIix7Y0xldHRlcjoieiIsYXV0b0NvbG9yRGZsdDohMX0pKX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODk5LCIuLi9oZWF0bWFwL2F0dHJpYnV0ZXMiOjEwNTgsIi4uL2hpc3RvZ3JhbS9hdHRyaWJ1dGVzIjoxMDc3LCIuLi9oaXN0b2dyYW0vYmluX2F0dHJpYnV0ZXMiOjEwNzl9XSwxMDkxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uL2hpc3RvZ3JhbS9iaW5fZnVuY3Rpb25zIiksbz10KCIuLi9oaXN0b2dyYW0vbm9ybV9mdW5jdGlvbnMiKSxzPXQoIi4uL2hpc3RvZ3JhbS9hdmVyYWdlIiksbD10KCIuLi9oaXN0b2dyYW0vYmluX2xhYmVsX3ZhbHMiKSxjPXQoIi4uL2hpc3RvZ3JhbS9jYWxjIikuY2FsY0FsbEF1dG9CaW5zO2Z1bmN0aW9uIHUodCxlLHIsbil7dmFyIGksYT1uZXcgQXJyYXkodCk7aWYobilmb3IoaT0wO2k8dDtpKyspYVtpXT0xLyhlW2krMV0tZVtpXSk7ZWxzZXt2YXIgbz0xL3I7Zm9yKGk9MDtpPHQ7aSsrKWFbaV09b31yZXR1cm4gYX1mdW5jdGlvbiBmKHQsZSl7cmV0dXJue3N0YXJ0OnQoZS5zdGFydCksZW5kOnQoZS5lbmQpLHNpemU6ZS5zaXplfX1mdW5jdGlvbiBoKHQsZSxyLG4saSxhKXt2YXIgbyxzPXQubGVuZ3RoLTEsYz1uZXcgQXJyYXkocyksdT1sKHIsbix0LGksYSk7Zm9yKG89MDtvPHM7bysrKXt2YXIgZj0oZXx8W10pW29dO2Nbb109dm9pZCAwPT09Zj9bdSh0W29dKSx1KHRbbysxXSwhMCldOltmLGZdfXJldHVybiBjfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGwscCxkLG09aS5nZXRGcm9tSWQodCxlLnhheGlzKSxnPWkuZ2V0RnJvbUlkKHQsZS55YXhpcyksdj1lLnhjYWxlbmRhcix5PWUueWNhbGVuZGFyLHg9ZnVuY3Rpb24odCl7cmV0dXJuIG0ucjJjKHQsMCx2KX0sYj1mdW5jdGlvbih0KXtyZXR1cm4gZy5yMmModCwwLHkpfSxfPWModCxlLG0sIngiKSx3PV9bMF0sVD1fWzFdLGs9Yyh0LGUsZywieSIpLEE9a1swXSxNPWtbMV0sUz1lLl9sZW5ndGg7VC5sZW5ndGg+UyYmVC5zcGxpY2UoUyxULmxlbmd0aC1TKSxNLmxlbmd0aD5TJiZNLnNwbGljZShTLE0ubGVuZ3RoLVMpO3ZhciBFPVtdLEw9W10sQz1bXSxQPSJzdHJpbmciPT10eXBlb2Ygdy5zaXplLEk9InN0cmluZyI9PXR5cGVvZiBBLnNpemUsTz1bXSx6PVtdLEQ9UD9POncsUj1JP3o6QSxGPTAsQj1bXSxOPVtdLGo9ZS5oaXN0bm9ybSxVPWUuaGlzdGZ1bmMsVj0tMSE9PWouaW5kZXhPZigiZGVuc2l0eSIpLEg9Im1heCI9PT1VfHwibWluIj09PVU/bnVsbDowLHE9YS5jb3VudCxHPW9bal0sWT0hMSxXPVtdLFg9W10sWj0ieiJpbiBlP2UuejoibWFya2VyImluIGUmJkFycmF5LmlzQXJyYXkoZS5tYXJrZXIuY29sb3IpP2UubWFya2VyLmNvbG9yOiIiO1omJiJjb3VudCIhPT1VJiYoWT0iYXZnIj09PVUscT1hW1VdKTt2YXIgSj13LnNpemUsSz14KHcuc3RhcnQpLFE9eCh3LmVuZCkrKEstaS50aWNrSW5jcmVtZW50KEssSiwhMSx2KSkvMWU2O2ZvcihyPUs7cjxRO3I9aS50aWNrSW5jcmVtZW50KHIsSiwhMSx2KSlMLnB1c2goSCksTy5wdXNoKHIpLFkmJkMucHVzaCgwKTtPLnB1c2gocik7dmFyICQsdHQ9TC5sZW5ndGgsZXQ9KHItSykvdHQscnQ9KCQ9SytldC8yLG0uYzJyKCQsMCx2KSksbnQ9QS5zaXplLGl0PWIoQS5zdGFydCksYXQ9YihBLmVuZCkrKGl0LWkudGlja0luY3JlbWVudChpdCxudCwhMSx5KSkvMWU2O2ZvcihyPWl0O3I8YXQ7cj1pLnRpY2tJbmNyZW1lbnQocixudCwhMSx5KSl7RS5wdXNoKEwuc2xpY2UoKSksei5wdXNoKHIpO3ZhciBvdD1uZXcgQXJyYXkodHQpO2ZvcihsPTA7bDx0dDtsKyspb3RbbF09W107Ti5wdXNoKG90KSxZJiZCLnB1c2goQy5zbGljZSgpKX16LnB1c2gocik7dmFyIHN0PUUubGVuZ3RoLGx0PShyLWl0KS9zdCxjdD1mdW5jdGlvbih0KXtyZXR1cm4gZy5jMnIodCwwLHkpfShpdCtsdC8yKTtWJiYoVz11KEwubGVuZ3RoLEQsZXQsUCksWD11KEUubGVuZ3RoLFIsbHQsSSkpLFB8fCJkYXRlIiE9PW0udHlwZXx8KEQ9Zih4LEQpKSxJfHwiZGF0ZSIhPT1nLnR5cGV8fChSPWYoYixSKSk7dmFyIHV0PSEwLGZ0PSEwLGh0PW5ldyBBcnJheSh0dCkscHQ9bmV3IEFycmF5KHN0KSxkdD0xLzAsbXQ9MS8wLGd0PTEvMCx2dD0xLzA7Zm9yKHI9MDtyPFM7cisrKXt2YXIgeXQ9VFtyXSx4dD1NW3JdO3A9bi5maW5kQmluKHl0LEQpLGQ9bi5maW5kQmluKHh0LFIpLHA+PTAmJnA8dHQmJmQ+PTAmJmQ8c3QmJihGKz1xKHAscixFW2RdLFosQltkXSksTltkXVtwXS5wdXNoKHIpLHV0JiYodm9pZCAwPT09aHRbcF0/aHRbcF09eXQ6aHRbcF0hPT15dCYmKHV0PSExKSksZnQmJih2b2lkIDA9PT1wdFtkXT9wdFtkXT14dDpwdFtkXSE9PXh0JiYoZnQ9ITEpKSxkdD1NYXRoLm1pbihkdCx5dC1PW3BdKSxtdD1NYXRoLm1pbihtdCxPW3ArMV0teXQpLGd0PU1hdGgubWluKGd0LHh0LXpbZF0pLHZ0PU1hdGgubWluKHZ0LHpbZCsxXS14dCkpfWlmKFkpZm9yKGQ9MDtkPHN0O2QrKylGKz1zKEVbZF0sQltkXSk7aWYoRylmb3IoZD0wO2Q8c3Q7ZCsrKUcoRVtkXSxGLFcsWFtkXSk7cmV0dXJue3g6VCx4UmFuZ2VzOmgoTyx1dCYmaHQsZHQsbXQsbSx2KSx4MDpydCxkeDpldCx5Ok0seVJhbmdlczpoKHosZnQmJnB0LGd0LHZ0LGcseSkseTA6Y3QsZHk6bHQsejpFLHB0czpOfX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL2hpc3RvZ3JhbS9hdmVyYWdlIjoxMDc4LCIuLi9oaXN0b2dyYW0vYmluX2Z1bmN0aW9ucyI6MTA4MCwiLi4vaGlzdG9ncmFtL2Jpbl9sYWJlbF92YWxzIjoxMDgxLCIuLi9oaXN0b2dyYW0vY2FsYyI6MTA4MiwiLi4vaGlzdG9ncmFtL25vcm1fZnVuY3Rpb25zIjoxMDg5fV0sMTA5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vc2FtcGxlX2RlZmF1bHRzIiksYT10KCIuLi9oZWF0bWFwL3N0eWxlX2RlZmF1bHRzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxzPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixsKXtmdW5jdGlvbiBjKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxzLHIsaSl9aSh0LGUsYyxsKSwhMSE9PWUudmlzaWJsZSYmKGEodCxlLGMsbCksbyh0LGUsbCxjLHtwcmVmaXg6IiIsY0xldHRlcjoieiJ9KSxjKCJob3ZlcnRlbXBsYXRlIiksYygieGhvdmVyZm9ybWF0IiksYygieWhvdmVyZm9ybWF0IikpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjY0OSwiLi4vLi4vbGliIjo3NzYsIi4uL2hlYXRtYXAvc3R5bGVfZGVmYXVsdHMiOjEwNzEsIi4vYXR0cmlidXRlcyI6MTA5MCwiLi9zYW1wbGVfZGVmYXVsdHMiOjEwOTV9XSwxMDkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL2hlYXRtYXAvaG92ZXIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikuaG92ZXJMYWJlbFRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEsbyl7dmFyIHM9bih0LGUscixhLG8pO2lmKHMpe3ZhciBsPSh0PXNbMF0pLmluZGV4LGM9bFswXSx1PWxbMV0sZj10LmNkWzBdLGg9Zi50cmFjZSxwPWYueFJhbmdlc1t1XSxkPWYueVJhbmdlc1tjXTtyZXR1cm4gdC54TGFiZWw9aSh0LnhhLFtwWzBdLHBbMV1dLGgueGhvdmVyZm9ybWF0KSx0LnlMYWJlbD1pKHQueWEsW2RbMF0sZFsxXV0saC55aG92ZXJmb3JtYXQpLHN9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi9oZWF0bWFwL2hvdmVyIjoxMDY1fV0sMTA5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNyb3NzVHJhY2VEZWZhdWx0czp0KCIuLi9oaXN0b2dyYW0vY3Jvc3NfdHJhY2VfZGVmYXVsdHMiKSxjYWxjOnQoIi4uL2hlYXRtYXAvY2FsYyIpLHBsb3Q6dCgiLi4vaGVhdG1hcC9wbG90IiksbGF5ZXJOYW1lOiJoZWF0bWFwbGF5ZXIiLGNvbG9yYmFyOnQoIi4uL2hlYXRtYXAvY29sb3JiYXIiKSxzdHlsZTp0KCIuLi9oZWF0bWFwL3N0eWxlIiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLGV2ZW50RGF0YTp0KCIuLi9oaXN0b2dyYW0vZXZlbnRfZGF0YSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJoaXN0b2dyYW0yZCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsIjJkTWFwIiwiaGlzdG9ncmFtIiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6ODQxLCIuLi9oZWF0bWFwL2NhbGMiOjEwNTksIi4uL2hlYXRtYXAvY29sb3JiYXIiOjEwNjEsIi4uL2hlYXRtYXAvcGxvdCI6MTA2OSwiLi4vaGVhdG1hcC9zdHlsZSI6MTA3MCwiLi4vaGlzdG9ncmFtL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIjoxMDg0LCIuLi9oaXN0b2dyYW0vZXZlbnRfZGF0YSI6MTA4NiwiLi9hdHRyaWJ1dGVzIjoxMDkwLCIuL2RlZmF1bHRzIjoxMDkyLCIuL2hvdmVyIjoxMDkzfV0sMTA5NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvPXIoIngiKSxzPXIoInkiKSxsPWkubWluUm93TGVuZ3RoKG8pLGM9aS5taW5Sb3dMZW5ndGgocyk7bCYmYz8oZS5fbGVuZ3RoPU1hdGgubWluKGwsYyksbi5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4IiwieSJdLGEpLChyKCJ6Iil8fHIoIm1hcmtlci5jb2xvciIpKSYmcigiaGlzdGZ1bmMiKSxyKCJoaXN0bm9ybSIpLHIoImF1dG9iaW54IikscigiYXV0b2JpbnkiKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNH1dLDEwOTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vaGlzdG9ncmFtMmQvYXR0cmlidXRlcyIpLGk9dCgiLi4vY29udG91ci9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQscz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9cyh7eDpuLngseTpuLnksejpuLnosbWFya2VyOm4ubWFya2VyLGhpc3Rub3JtOm4uaGlzdG5vcm0saGlzdGZ1bmM6bi5oaXN0ZnVuYyxuYmluc3g6bi5uYmluc3gseGJpbnM6bi54YmlucyxuYmluc3k6bi5uYmluc3kseWJpbnM6bi55YmlucyxhdXRvYmlueDpuLmF1dG9iaW54LGF1dG9iaW55Om4uYXV0b2JpbnksYmluZ3JvdXA6bi5iaW5ncm91cCx4YmluZ3JvdXA6bi54YmluZ3JvdXAseWJpbmdyb3VwOm4ueWJpbmdyb3VwLGF1dG9jb250b3VyOmkuYXV0b2NvbnRvdXIsbmNvbnRvdXJzOmkubmNvbnRvdXJzLGNvbnRvdXJzOmkuY29udG91cnMsbGluZTp7Y29sb3I6aS5saW5lLmNvbG9yLHdpZHRoOnMoe30saS5saW5lLndpZHRoLHtkZmx0Oi41fSksZGFzaDppLmxpbmUuZGFzaCxzbW9vdGhpbmc6aS5saW5lLnNtb290aGluZyxlZGl0VHlwZToicGxvdCJ9LHhob3ZlcmZvcm1hdDpvKCJ4IikseWhvdmVyZm9ybWF0Om8oInkiKSx6aG92ZXJmb3JtYXQ6bygieiIsMSksaG92ZXJ0ZW1wbGF0ZTpuLmhvdmVydGVtcGxhdGV9LGEoIiIse2NMZXR0ZXI6InoiLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vY29udG91ci9hdHRyaWJ1dGVzIjoxMDAxLCIuLi9oaXN0b2dyYW0yZC9hdHRyaWJ1dGVzIjoxMDkwfV0sMTA5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL2hpc3RvZ3JhbTJkL3NhbXBsZV9kZWZhdWx0cyIpLGE9dCgiLi4vY29udG91ci9jb250b3Vyc19kZWZhdWx0cyIpLG89dCgiLi4vY29udG91ci9zdHlsZV9kZWZhdWx0cyIpLHM9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe2Z1bmN0aW9uIGMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLHMscixpKX1pKHQsZSxjLGwpLCExIT09ZS52aXNpYmxlJiYoYSh0LGUsYywoZnVuY3Rpb24ocil7cmV0dXJuIG4uY29lcmNlMih0LGUscyxyKX0pKSxvKHQsZSxjLGwpLGMoImhvdmVydGVtcGxhdGUiKSxjKCJ4aG92ZXJmb3JtYXQiKSxjKCJ5aG92ZXJmb3JtYXQiKSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9jb250b3VyL2NvbnRvdXJzX2RlZmF1bHRzIjoxMDA4LCIuLi9jb250b3VyL3N0eWxlX2RlZmF1bHRzIjoxMDIyLCIuLi9oaXN0b2dyYW0yZC9zYW1wbGVfZGVmYXVsdHMiOjEwOTUsIi4vYXR0cmlidXRlcyI6MTA5Nn1dLDEwOTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi4vaGlzdG9ncmFtL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIiksY2FsYzp0KCIuLi9jb250b3VyL2NhbGMiKSxwbG90OnQoIi4uL2NvbnRvdXIvcGxvdCIpLnBsb3QsbGF5ZXJOYW1lOiJjb250b3VybGF5ZXIiLHN0eWxlOnQoIi4uL2NvbnRvdXIvc3R5bGUiKSxjb2xvcmJhcjp0KCIuLi9jb250b3VyL2NvbG9yYmFyIiksaG92ZXJQb2ludHM6dCgiLi4vY29udG91ci9ob3ZlciIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJoaXN0b2dyYW0yZGNvbnRvdXIiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsImNvbnRvdXIiLCJoaXN0b2dyYW0iLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuIjo4NDEsIi4uL2NvbnRvdXIvY2FsYyI6MTAwMiwiLi4vY29udG91ci9jb2xvcmJhciI6MTAwNCwiLi4vY29udG91ci9ob3ZlciI6MTAxNCwiLi4vY29udG91ci9wbG90IjoxMDE5LCIuLi9jb250b3VyL3N0eWxlIjoxMDIxLCIuLi9oaXN0b2dyYW0vY3Jvc3NfdHJhY2VfZGVmYXVsdHMiOjEwODQsIi4vYXR0cmlidXRlcyI6MTA5NiwiLi9kZWZhdWx0cyI6MTA5N31dLDEwOTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzLHM9dCgiLi4vcGllL2F0dHJpYnV0ZXMiKSxsPXQoIi4uL3N1bmJ1cnN0L2F0dHJpYnV0ZXMiKSxjPXQoIi4uL3RyZWVtYXAvYXR0cmlidXRlcyIpLHU9dCgiLi4vdHJlZW1hcC9jb25zdGFudHMiKSxmPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17bGFiZWxzOmwubGFiZWxzLHBhcmVudHM6bC5wYXJlbnRzLHZhbHVlczpsLnZhbHVlcyxicmFuY2h2YWx1ZXM6bC5icmFuY2h2YWx1ZXMsY291bnQ6bC5jb3VudCxsZXZlbDpsLmxldmVsLG1heGRlcHRoOmwubWF4ZGVwdGgsdGlsaW5nOntvcmllbnRhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidiIsImgiXSxkZmx0OiJoIixlZGl0VHlwZToicGxvdCJ9LGZsaXA6Yy50aWxpbmcuZmxpcCxwYWQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6ImNhbGMifSxtYXJrZXI6Zih7Y29sb3JzOmwubWFya2VyLmNvbG9ycyxsaW5lOmwubWFya2VyLmxpbmUsZWRpdFR5cGU6ImNhbGMifSxhKCJtYXJrZXIiLHtjb2xvckF0dHI6ImNvbG9ycyIsYW5pbTohMX0pKSxsZWFmOmwubGVhZixwYXRoYmFyOmMucGF0aGJhcix0ZXh0OnMudGV4dCx0ZXh0aW5mbzpsLnRleHRpbmZvLHRleHR0ZW1wbGF0ZTppKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOnUuZXZlbnREYXRhS2V5cy5jb25jYXQoWyJsYWJlbCIsInZhbHVlIl0pfSksaG92ZXJ0ZXh0OnMuaG92ZXJ0ZXh0LGhvdmVyaW5mbzpsLmhvdmVyaW5mbyxob3ZlcnRlbXBsYXRlOm4oe30se2tleXM6dS5ldmVudERhdGFLZXlzfSksdGV4dGZvbnQ6cy50ZXh0Zm9udCxpbnNpZGV0ZXh0Zm9udDpzLmluc2lkZXRleHRmb250LG91dHNpZGV0ZXh0Zm9udDpjLm91dHNpZGV0ZXh0Zm9udCx0ZXh0cG9zaXRpb246Yy50ZXh0cG9zaXRpb24sc29ydDpzLnNvcnQscm9vdDpsLnJvb3QsZG9tYWluOm8oe25hbWU6ImljaWNsZSIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvZG9tYWluIjo4NTUsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vcGllL2F0dHJpYnV0ZXMiOjExNjUsIi4uL3N1bmJ1cnN0L2F0dHJpYnV0ZXMiOjEzMDMsIi4uL3RyZWVtYXAvYXR0cmlidXRlcyI6MTMyOSwiLi4vdHJlZW1hcC9jb25zdGFudHMiOjEzMzJ9XSwxMTAwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3Bsb3RzIik7ci5uYW1lPSJpY2ljbGUiLHIucGxvdD1mdW5jdGlvbih0LGUsaSxhKXtuLnBsb3RCYXNlUGxvdChyLm5hbWUsdCxlLGksYSl9LHIuY2xlYW49ZnVuY3Rpb24odCxlLGksYSl7bi5jbGVhbkJhc2VQbG90KHIubmFtZSx0LGUsaSxhKX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjg5MH1dLDExMDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc3VuYnVyc3QvY2FsYyIpO3IuY2FsYz1mdW5jdGlvbih0LGUpe3JldHVybiBuLmNhbGModCxlKX0sci5jcm9zc1RyYWNlQ2FsYz1mdW5jdGlvbih0KXtyZXR1cm4gbi5fcnVuQ3Jvc3NUcmFjZUNhbGMoImljaWNsZSIsdCl9fSx7Ii4uL3N1bmJ1cnN0L2NhbGMiOjEzMDV9XSwxMTAyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxzPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQsbD10KCIuLi9iYXIvY29uc3RhbnRzIikuVEVYVFBBRCxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHU9Yy5oYXNDb2xvcnNjYWxlLGY9Yy5oYW5kbGVEZWZhdWx0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7ZnVuY3Rpb24gaChyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXZhciBwPWgoImxhYmVscyIpLGQ9aCgicGFyZW50cyIpO2lmKHAmJnAubGVuZ3RoJiZkJiZkLmxlbmd0aCl7dmFyIG09aCgidmFsdWVzIik7bSYmbS5sZW5ndGg/aCgiYnJhbmNodmFsdWVzIik6aCgiY291bnQiKSxoKCJsZXZlbCIpLGgoIm1heGRlcHRoIiksaCgidGlsaW5nLm9yaWVudGF0aW9uIiksaCgidGlsaW5nLmZsaXAiKSxoKCJ0aWxpbmcucGFkIik7dmFyIGc9aCgidGV4dCIpO2goInRleHR0ZW1wbGF0ZSIpLGUudGV4dHRlbXBsYXRlfHxoKCJ0ZXh0aW5mbyIsQXJyYXkuaXNBcnJheShnKT8idGV4dCtsYWJlbCI6ImxhYmVsIiksaCgiaG92ZXJ0ZXh0IiksaCgiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciB2PWgoInBhdGhiYXIudmlzaWJsZSIpO3ModCxlLGMsaCwiYXV0byIse2hhc1BhdGhiYXI6dixtb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMSxtb2R1bGVIYXNDbGlwb25heGlzOiExLG1vZHVsZUhhc1RleHRhbmdsZTohMSxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITF9KSxoKCJ0ZXh0cG9zaXRpb24iKSxoKCJtYXJrZXIubGluZS53aWR0aCIpJiZoKCJtYXJrZXIubGluZS5jb2xvciIsYy5wYXBlcl9iZ2NvbG9yKSxoKCJtYXJrZXIuY29sb3JzIik7dmFyIHk9ZS5faGFzQ29sb3JzY2FsZT11KHQsIm1hcmtlciIsImNvbG9ycyIpfHwodC5tYXJrZXJ8fHt9KS5jb2xvcmF4aXM7eSYmZih0LGUsYyxoLHtwcmVmaXg6Im1hcmtlci4iLGNMZXR0ZXI6ImMifSksaCgibGVhZi5vcGFjaXR5Iix5PzE6LjcpLGUuX2hvdmVyZWQ9e21hcmtlcjp7bGluZTp7d2lkdGg6Mixjb2xvcjphLmNvbnRyYXN0KGMucGFwZXJfYmdjb2xvcil9fX0sdiYmKGgoInBhdGhiYXIudGhpY2tuZXNzIixlLnBhdGhiYXIudGV4dGZvbnQuc2l6ZSsyKmwpLGgoInBhdGhiYXIuc2lkZSIpLGgoInBhdGhiYXIuZWRnZXNoYXBlIikpLGgoInNvcnQiKSxoKCJyb290LmNvbG9yIiksbyhlLGMsaCksZS5fbGVuZ3RoPW51bGx9ZWxzZSBlLnZpc2libGU9ITF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2NTEsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9kb21haW4iOjg1NSwiLi4vYmFyL2NvbnN0YW50cyI6OTE2LCIuLi9iYXIvZGVmYXVsdHMiOjkxOCwiLi9hdHRyaWJ1dGVzIjoxMDk5fV0sMTEwMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIikscz10KCIuL3BhcnRpdGlvbiIpLGw9dCgiLi9zdHlsZSIpLnN0eWxlT25lLGM9dCgiLi4vdHJlZW1hcC9jb25zdGFudHMiKSx1PXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxmPXQoIi4uL3N1bmJ1cnN0L2Z4IiksaD10KCIuLi9zdW5idXJzdC9wbG90IikuZm9ybWF0U2xpY2VMYWJlbDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscCxkKXt2YXIgbT1kLndpZHRoLGc9ZC5oZWlnaHQsdj1kLnZpZXdYLHk9ZC52aWV3WSx4PWQucGF0aFNsaWNlLGI9ZC50b01vdmVJbnNpZGVTbGljZSxfPWQuc3RyVHJhbnNmb3JtLHc9ZC5oYXNUcmFuc2l0aW9uLFQ9ZC5oYW5kbGVTbGljZXNFeGl0LGs9ZC5tYWtlVXBkYXRlU2xpY2VJbnRlcnBvbGF0b3IsQT1kLm1ha2VVcGRhdGVUZXh0SW50ZXJwb2xhdG9yLE09ZC5wcmV2RW50cnksUz10Ll9mdWxsTGF5b3V0LEU9ZVswXS50cmFjZSxMPS0xIT09RS50ZXh0cG9zaXRpb24uaW5kZXhPZigibGVmdCIpLEM9LTEhPT1FLnRleHRwb3NpdGlvbi5pbmRleE9mKCJyaWdodCIpLFA9LTEhPT1FLnRleHRwb3NpdGlvbi5pbmRleE9mKCJib3R0b20iKSxJPXMocixbbSxnXSx7ZmxpcFg6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ4Iik+LTEsZmxpcFk6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ5Iik+LTEsb3JpZW50YXRpb246RS50aWxpbmcub3JpZW50YXRpb24scGFkOntpbm5lcjpFLnRpbGluZy5wYWR9LG1heERlcHRoOkUuX21heERlcHRofSkuZGVzY2VuZGFudHMoKSxPPTEvMCx6PS0xLzA7SS5mb3JFYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LmRlcHRoO2U+PUUuX21heERlcHRoPyh0LngwPXQueDE9KHQueDArdC54MSkvMix0LnkwPXQueTE9KHQueTArdC55MSkvMik6KE89TWF0aC5taW4oTyxlKSx6PU1hdGgubWF4KHosZSkpfSkpLHA9cC5kYXRhKEksdS5nZXRQdElkKSxFLl9tYXhWaXNpYmxlTGF5ZXJzPWlzRmluaXRlKHopP3otTysxOjAscC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInNsaWNlIiwhMCksVChwLCExLHt9LFttLGddLHgpLHAub3JkZXIoKTt2YXIgRD1udWxsO2lmKHcmJk0pe3ZhciBSPXUuZ2V0UHRJZChNKTtwLmVhY2goKGZ1bmN0aW9uKHQpe251bGw9PT1EJiZ1LmdldFB0SWQodCk9PT1SJiYoRD17eDA6dC54MCx4MTp0LngxLHkwOnQueTAseTE6dC55MX0pfSkpfXZhciBGPWZ1bmN0aW9uKCl7cmV0dXJuIER8fHt4MDowLHgxOm0seTA6MCx5MTpnfX0sQj1wO3JldHVybiB3JiYoQj1CLnRyYW5zaXRpb24oKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpe3ZhciBlPW4uc2VsZWN0KHRoaXMpO3Uuc2V0U2xpY2VDdXJzb3IoZSx0LHtoaWRlT25Sb290OiEwLGhpZGVPbkxlYXZlczohMSxpc1RyYW5zaXRpb25pbmc6ITF9KX0pKSksQi5lYWNoKChmdW5jdGlvbihzKXtzLl94MD12KHMueDApLHMuX3gxPXYocy54MSkscy5feTA9eShzLnkwKSxzLl95MT15KHMueTEpLHMuX2hvdmVyWD12KHMueDEtRS50aWxpbmcucGFkKSxzLl9ob3Zlclk9eShQP3MueTEtRS50aWxpbmcucGFkLzI6cy55MCtFLnRpbGluZy5wYWQvMik7dmFyIHA9bi5zZWxlY3QodGhpcyksZD1pLmVuc3VyZVNpbmdsZShwLCJwYXRoIiwic3VyZmFjZSIsKGZ1bmN0aW9uKHQpe3Quc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIil9KSk7dz9kLnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oImQiLChmdW5jdGlvbih0KXt2YXIgZT1rKHQsITEsRigpLFttLGddLHtvcmllbnRhdGlvbjpFLnRpbGluZy5vcmllbnRhdGlvbixmbGlwWDpFLnRpbGluZy5mbGlwLmluZGV4T2YoIngiKT4tMSxmbGlwWTpFLnRpbGluZy5mbGlwLmluZGV4T2YoInkiKT4tMX0pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4geChlKHQpKX19KSk6ZC5hdHRyKCJkIix4KSxwLmNhbGwoZixyLHQsZSx7c3R5bGVPbmU6bCxldmVudERhdGFLZXlzOmMuZXZlbnREYXRhS2V5cyx0cmFuc2l0aW9uVGltZTpjLkNMSUNLX1RSQU5TSVRJT05fVElNRSx0cmFuc2l0aW9uRWFzaW5nOmMuQ0xJQ0tfVFJBTlNJVElPTl9FQVNJTkd9KS5jYWxsKHUuc2V0U2xpY2VDdXJzb3IsdCx7aXNUcmFuc2l0aW9uaW5nOnQuX3RyYW5zaXRpb25pbmd9KSxkLmNhbGwobCxzLEUse2hvdmVyZWQ6ITF9KSxzLngwPT09cy54MXx8cy55MD09PXMueTE/cy5fdGV4dD0iIjpzLl90ZXh0PWgocyxyLEUsZSxTKXx8IiI7dmFyIFQ9aS5lbnN1cmVTaW5nbGUocCwiZyIsInNsaWNldGV4dCIpLE09aS5lbnN1cmVTaW5nbGUoVCwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSksST1pLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LHUuZGV0ZXJtaW5lVGV4dEZvbnQoRSxzLFMuZm9udCkpO00udGV4dChzLl90ZXh0fHwiICIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLmF0dHIoInRleHQtYW5jaG9yIixDPyJlbmQiOkw/InN0YXJ0IjoibWlkZGxlIikuY2FsbChhLmZvbnQsSSkuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KSxzLnRleHRCQj1hLmJCb3goTS5ub2RlKCkpLHMudHJhbnNmb3JtPWIocyx7Zm9udFNpemU6SS5zaXplfSkscy50cmFuc2Zvcm0uZm9udFNpemU9SS5zaXplLHc/TS50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgZT1BKHQsITEsRigpLFttLGddKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIF8oZSh0KSl9fSkpOk0uYXR0cigidHJhbnNmb3JtIixfKHMpKX0pKSxEfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuLi9zdW5idXJzdC9meCI6MTMwOCwiLi4vc3VuYnVyc3QvaGVscGVycyI6MTMwOSwiLi4vc3VuYnVyc3QvcGxvdCI6MTMxMywiLi4vdHJlZW1hcC9jb25zdGFudHMiOjEzMzIsIi4vcGFydGl0aW9uIjoxMTA3LCIuL3N0eWxlIjoxMTA5LCJAcGxvdGx5L2QzIjo1OH1dLDExMDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiaWNpY2xlIixiYXNlUGxvdE1vZHVsZTp0KCIuL2Jhc2VfcGxvdCIpLGNhdGVnb3JpZXM6W10sYW5pbWF0YWJsZTohMCxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxjcm9zc1RyYWNlQ2FsYzp0KCIuL2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4vc3R5bGUiKS5zdHlsZSxjb2xvcmJhcjp0KCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciIpLG1ldGE6e319fSx7Ii4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMjA5LCIuL2F0dHJpYnV0ZXMiOjEwOTksIi4vYmFzZV9wbG90IjoxMTAwLCIuL2NhbGMiOjExMDEsIi4vZGVmYXVsdHMiOjExMDIsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjExMDUsIi4vbGF5b3V0X2RlZmF1bHRzIjoxMTA2LCIuL3Bsb3QiOjExMDgsIi4vc3R5bGUiOjExMDl9XSwxMTA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17aWNpY2xlY29sb3J3YXk6e3ZhbFR5cGU6ImNvbG9ybGlzdCIsZWRpdFR5cGU6ImNhbGMifSxleHRlbmRpY2ljbGVjb2xvcnM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifX19LHt9XSwxMTA2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1yKCJpY2ljbGVjb2xvcndheSIsZS5jb2xvcndheSkscigiZXh0ZW5kaWNpY2xlY29sb3JzIil9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMTA1fV0sMTEwNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJkMy1oaWVyYXJjaHkiKSxpPXQoIi4uL3RyZWVtYXAvZmxpcF90cmVlIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1yLmZsaXBYLG89ci5mbGlwWSxzPSJoIj09PXIub3JpZW50YXRpb24sbD1yLm1heERlcHRoLGM9ZVswXSx1PWVbMV07bCYmKGM9KHQuaGVpZ2h0KzEpKmVbMF0vTWF0aC5taW4odC5oZWlnaHQrMSxsKSx1PSh0LmhlaWdodCsxKSplWzFdL01hdGgubWluKHQuaGVpZ2h0KzEsbCkpO3ZhciBmPW4ucGFydGl0aW9uKCkucGFkZGluZyhyLnBhZC5pbm5lcikuc2l6ZShzP1tlWzFdLGNdOltlWzBdLHVdKSh0KTtyZXR1cm4oc3x8YXx8bykmJmkoZixlLHtzd2FwWFk6cyxmbGlwWDphLGZsaXBZOm99KSxmfX0seyIuLi90cmVlbWFwL2ZsaXBfdHJlZSI6MTMzNywiZDMtaGllcmFyY2h5IjoxNjN9XSwxMTA4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3RyZWVtYXAvZHJhdyIpLGk9dCgiLi9kcmF3X2Rlc2NlbmRhbnRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGEpe3JldHVybiBuKHQsZSxyLGEse3R5cGU6ImljaWNsZSIsZHJhd0Rlc2NlbmRhbnRzOml9KX19LHsiLi4vdHJlZW1hcC9kcmF3IjoxMzM0LCIuL2RyYXdfZGVzY2VuZGFudHMiOjExMDN9XSwxMTA5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxhPXQoIi4uLy4uL2xpYiIpLG89dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQ7ZnVuY3Rpb24gcyh0LGUscil7dmFyIG49ZS5kYXRhLmRhdGEsbz0hZS5jaGlsZHJlbixzPW4uaSxsPWEuY2FzdE9wdGlvbihyLHMsIm1hcmtlci5saW5lLmNvbG9yIil8fGkuZGVmYXVsdExpbmUsYz1hLmNhc3RPcHRpb24ocixzLCJtYXJrZXIubGluZS53aWR0aCIpfHwwO3Quc3R5bGUoInN0cm9rZS13aWR0aCIsYykuY2FsbChpLmZpbGwsbi5jb2xvcikuY2FsbChpLnN0cm9rZSxsKS5zdHlsZSgib3BhY2l0eSIsbz9yLmxlYWYub3BhY2l0eTpudWxsKX1lLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQpe3ZhciBlPXQuX2Z1bGxMYXlvdXQuX2ljaWNsZWxheWVyLnNlbGVjdEFsbCgiLnRyYWNlIik7byh0LGUsImljaWNsZSIpLGUuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykscj10WzBdLnRyYWNlO2Uuc3R5bGUoIm9wYWNpdHkiLHIub3BhY2l0eSksZS5zZWxlY3RBbGwoInBhdGguc3VyZmFjZSIpLmVhY2goKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLmNhbGwocyx0LHIpfSkpfSkpfSxzdHlsZU9uZTpzfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2xpYiI6Nzc2LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo5MzAsIkBwbG90bHkvZDMiOjU4fV0sMTExMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijtmb3IodmFyIG49dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LG89dCgiLi9jb25zdGFudHMiKS5jb2xvcm1vZGVsLHM9WyJyZ2IiLCJyZ2JhIiwicmdiYTI1NiIsImhzbCIsImhzbGEiXSxsPVtdLGM9W10sdT0wO3U8cy5sZW5ndGg7dSsrKXt2YXIgZj1vW3NbdV1dO2wucHVzaCgiRm9yIHRoZSBgIitzW3VdKyJgIGNvbG9ybW9kZWwsIGl0IGlzIFsiKyhmLnptaW5EZmx0fHxmLm1pbikuam9pbigiLCAiKSsiXS4iKSxjLnB1c2goIkZvciB0aGUgYCIrc1t1XSsiYCBjb2xvcm1vZGVsLCBpdCBpcyBbIisoZi56bWF4RGZsdHx8Zi5tYXgpLmpvaW4oIiwgIikrIl0uIil9ZS5leHBvcnRzPWEoe3NvdXJjZTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sY29sb3Jtb2RlbDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOnMsZWRpdFR5cGU6ImNhbGMifSx6c21vb3RoOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJmYXN0IiwhMV0sZGZsdDohMSxlZGl0VHlwZToicGxvdCJ9LHptaW46e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9XSxlZGl0VHlwZToiY2FsYyJ9LHptYXg6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJjYWxjIn0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9XSxlZGl0VHlwZToiY2FsYyJ9LHgwOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHkwOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGR4Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LGR5Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LHRleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJwbG90In0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToicGxvdCJ9LGhvdmVyaW5mbzphKHt9LG4uaG92ZXJpbmZvLHtmbGFnczpbIngiLCJ5IiwieiIsImNvbG9yIiwibmFtZSIsInRleHQiXSxkZmx0OiJ4K3kreit0ZXh0K25hbWUifSksaG92ZXJ0ZW1wbGF0ZTppKHt9LHtrZXlzOlsieiIsImNvbG9yIiwiY29sb3Jtb2RlbCJdfSksdHJhbnNmb3Jtczp2b2lkIDB9KX0seyIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODk5LCIuL2NvbnN0YW50cyI6MTExMn1dLDExMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2NvbnN0YW50cyIpLGE9dCgiZmFzdC1pc251bWVyaWMiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikscz10KCIuLi8uLi9saWIiKS5tYXhSb3dMZW5ndGgsbD10KCIuL2hlbHBlcnMiKS5nZXRJbWFnZVNpemU7ZnVuY3Rpb24gYyh0LGUscixpKXtyZXR1cm4gZnVuY3Rpb24oYSl7cmV0dXJuIG4uY29uc3RyYWluKChhLXQpKmUscixpKX19ZnVuY3Rpb24gdSh0LGUpe3JldHVybiBmdW5jdGlvbihyKXtyZXR1cm4gbi5jb25zdHJhaW4ocix0LGUpfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuO2lmKGUuX2hhc1opcj1lLnoubGVuZ3RoLG49cyhlLnopO2Vsc2UgaWYoZS5faGFzU291cmNlKXt2YXIgZj1sKGUuc291cmNlKTtyPWYuaGVpZ2h0LG49Zi53aWR0aH12YXIgaCxwPW8uZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSxkPW8uZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxtPXAuZDJjKGUueDApLWUuZHgvMixnPWQuZDJjKGUueTApLWUuZHkvMix2PVttLG0rbiplLmR4XSx5PVtnLGcrciplLmR5XTtpZihwJiYibG9nIj09PXAudHlwZSlmb3IoaD0wO2g8bjtoKyspdi5wdXNoKG0raCplLmR4KTtpZihkJiYibG9nIj09PWQudHlwZSlmb3IoaD0wO2g8cjtoKyspeS5wdXNoKGcraCplLmR5KTtyZXR1cm4gZS5fZXh0cmVtZXNbcC5faWRdPW8uZmluZEV4dHJlbWVzKHAsdiksZS5fZXh0cmVtZXNbZC5faWRdPW8uZmluZEV4dHJlbWVzKGQseSksZS5fc2NhbGVyPWZ1bmN0aW9uKHQpe3ZhciBlPWkuY29sb3Jtb2RlbFt0LmNvbG9ybW9kZWxdLHI9KGUuY29sb3Jtb2RlbHx8dC5jb2xvcm1vZGVsKS5sZW5ndGg7dC5fc0FycmF5PVtdO2Zvcih2YXIgbj0wO248cjtuKyspZS5taW5bbl0hPT10LnptaW5bbl18fGUubWF4W25dIT09dC56bWF4W25dP3QuX3NBcnJheS5wdXNoKGModC56bWluW25dLChlLm1heFtuXS1lLm1pbltuXSkvKHQuem1heFtuXS10LnptaW5bbl0pLGUubWluW25dLGUubWF4W25dKSk6dC5fc0FycmF5LnB1c2godShlLm1pbltuXSxlLm1heFtuXSkpO3JldHVybiBmdW5jdGlvbihlKXtmb3IodmFyIG49ZS5zbGljZSgwLHIpLGk9MDtpPHI7aSsrKXt2YXIgbz1uW2ldO2lmKCFhKG8pKXJldHVybiExO25baV09dC5fc0FycmF5W2ldKG8pfXJldHVybiBufX0oZSksW3t4MDptLHkwOmcsejplLnosdzpuLGg6cn1dfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi9jb25zdGFudHMiOjExMTIsIi4vaGVscGVycyI6MTExNSwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDExMTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjb2xvcm1vZGVsOntyZ2I6e21pbjpbMCwwLDBdLG1heDpbMjU1LDI1NSwyNTVdLGZtdDpmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgwLDMpfSxzdWZmaXg6WyIiLCIiLCIiXX0scmdiYTp7bWluOlswLDAsMCwwXSxtYXg6WzI1NSwyNTUsMjU1LDFdLGZtdDpmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgwLDQpfSxzdWZmaXg6WyIiLCIiLCIiLCIiXX0scmdiYTI1Njp7Y29sb3Jtb2RlbDoicmdiYSIsem1pbkRmbHQ6WzAsMCwwLDBdLHptYXhEZmx0OlsyNTUsMjU1LDI1NSwyNTVdLG1pbjpbMCwwLDAsMF0sbWF4OlsyNTUsMjU1LDI1NSwxXSxmbXQ6ZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoMCw0KX0sc3VmZml4OlsiIiwiIiwiIiwiIl19LGhzbDp7bWluOlswLDAsMF0sbWF4OlszNjAsMTAwLDEwMF0sZm10OmZ1bmN0aW9uKHQpe3ZhciBlPXQuc2xpY2UoMCwzKTtyZXR1cm4gZVsxXT1lWzFdKyIlIixlWzJdPWVbMl0rIiUiLGV9LHN1ZmZpeDpbIlx4YjAiLCIlIiwiJSJdfSxoc2xhOnttaW46WzAsMCwwLDBdLG1heDpbMzYwLDEwMCwxMDAsMV0sZm10OmZ1bmN0aW9uKHQpe3ZhciBlPXQuc2xpY2UoMCw0KTtyZXR1cm4gZVsxXT1lWzFdKyIlIixlWzJdPWVbMl0rIiUiLGV9LHN1ZmZpeDpbIlx4YjAiLCIlIiwiJSIsIiJdfX0scGl4ZWxhdGVkU3R5bGU6WyJpbWFnZS1yZW5kZXJpbmc6IG9wdGltaXplU3BlZWQiLCJpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXMiLCJpbWFnZS1yZW5kZXJpbmc6IC1vLWNyaXNwLWVkZ2VzIiwiaW1hZ2UtcmVuZGVyaW5nOiAtd2Via2l0LW9wdGltaXplLWNvbnRyYXN0IiwiaW1hZ2UtcmVuZGVyaW5nOiBvcHRpbWl6ZS1jb250cmFzdCIsImltYWdlLXJlbmRlcmluZzogY3Jpc3AtZWRnZXMiLCJpbWFnZS1yZW5kZXJpbmc6IHBpeGVsYXRlZCIsIiJdLmpvaW4oIjsgIil9fSx7fV0sMTExMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vYXR0cmlidXRlcyIpLGE9dCgiLi9jb25zdGFudHMiKSxvPXQoIi4uLy4uL3NuYXBzaG90L2hlbHBlcnMiKS5JTUFHRV9VUkxfUFJFRklYO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1yKCJzb3VyY2UiKSxlLnNvdXJjZSYmIWUuc291cmNlLm1hdGNoKG8pJiZkZWxldGUgZS5zb3VyY2UsZS5faGFzU291cmNlPSEhZS5zb3VyY2U7dmFyIHMsbD1yKCJ6Iik7KGUuX2hhc1o9ISh2b2lkIDA9PT1sfHwhbC5sZW5ndGh8fCFsWzBdfHwhbFswXS5sZW5ndGgpLGUuX2hhc1p8fGUuX2hhc1NvdXJjZSk/KHIoIngwIikscigieTAiKSxyKCJkeCIpLHIoImR5IiksZS5faGFzWj8ocigiY29sb3Jtb2RlbCIsInJnYiIpLHIoInptaW4iLChzPWEuY29sb3Jtb2RlbFtlLmNvbG9ybW9kZWxdKS56bWluRGZsdHx8cy5taW4pLHIoInptYXgiLHMuem1heERmbHR8fHMubWF4KSk6ZS5faGFzU291cmNlJiYoZS5jb2xvcm1vZGVsPSJyZ2JhMjU2IixzPWEuY29sb3Jtb2RlbFtlLmNvbG9ybW9kZWxdLGUuem1pbj1zLnptaW5EZmx0LGUuem1heD1zLnptYXhEZmx0KSxyKCJ6c21vb3RoIikscigidGV4dCIpLHIoImhvdmVydGV4dCIpLHIoImhvdmVydGVtcGxhdGUiKSxlLl9sZW5ndGg9bnVsbCk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vc25hcHNob3QvaGVscGVycyI6OTA4LCIuL2F0dHJpYnV0ZXMiOjExMTAsIi4vY29uc3RhbnRzIjoxMTEyfV0sMTExNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4ieFZhbCJpbiBlJiYodC54PWUueFZhbCksInlWYWwiaW4gZSYmKHQueT1lLnlWYWwpLGUueGEmJih0LnhheGlzPWUueGEpLGUueWEmJih0LnlheGlzPWUueWEpLHQuY29sb3I9ZS5jb2xvcix0LmNvbG9ybW9kZWw9ZS50cmFjZS5jb2xvcm1vZGVsLHQuenx8KHQuej1lLmNvbG9yKSx0fX0se31dLDExMTU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicHJvYmUtaW1hZ2Utc2l6ZS9zeW5jIiksaT10KCIuLi8uLi9zbmFwc2hvdC9oZWxwZXJzIikuSU1BR0VfVVJMX1BSRUZJWCxhPXQoImJ1ZmZlci8iKS5CdWZmZXI7ci5nZXRJbWFnZVNpemU9ZnVuY3Rpb24odCl7dmFyIGU9dC5yZXBsYWNlKGksIiIpLHI9bmV3IGEoZSwiYmFzZTY0Iik7cmV0dXJuIG4ocil9fSx7Ii4uLy4uL3NuYXBzaG90L2hlbHBlcnMiOjkwOCwiYnVmZmVyLyI6MTEyLCJwcm9iZS1pbWFnZS1zaXplL3N5bmMiOjUwM31dLDExMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9meCIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuL2NvbnN0YW50cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG89dC5jZFswXSxzPW8udHJhY2UsbD10LnhhLGM9dC55YTtpZighKG4uaW5ib3goZS1vLngwLGUtKG8ueDArby53KnMuZHgpLDApPjB8fG4uaW5ib3goci1vLnkwLHItKG8ueTArby5oKnMuZHkpLDApPjApKXt2YXIgdSxmPU1hdGguZmxvb3IoKGUtby54MCkvcy5keCksaD1NYXRoLmZsb29yKE1hdGguYWJzKHItby55MCkvcy5keSk7aWYocy5faGFzWj91PW8ueltoXVtmXTpzLl9oYXNTb3VyY2UmJih1PXMuX2NhbnZhcy5lbC5nZXRDb250ZXh0KCIyZCIpLmdldEltYWdlRGF0YShmLGgsMSwxKS5kYXRhKSx1KXt2YXIgcCxkPW8uaGl8fHMuaG92ZXJpbmZvO2lmKGQpe3ZhciBtPWQuc3BsaXQoIisiKTstMSE9PW0uaW5kZXhPZigiYWxsIikmJihtPVsiY29sb3IiXSksLTEhPT1tLmluZGV4T2YoImNvbG9yIikmJihwPSEwKX12YXIgZyx2PWEuY29sb3Jtb2RlbFtzLmNvbG9ybW9kZWxdLHk9di5jb2xvcm1vZGVsfHxzLmNvbG9ybW9kZWwseD15Lmxlbmd0aCxiPXMuX3NjYWxlcih1KSxfPXYuc3VmZml4LHc9W107KHMuaG92ZXJ0ZW1wbGF0ZXx8cCkmJih3LnB1c2goIlsiK1tiWzBdK19bMF0sYlsxXStfWzFdLGJbMl0rX1syXV0uam9pbigiLCAiKSksND09PXgmJncucHVzaCgiLCAiK2JbM10rX1szXSksdy5wdXNoKCJdIiksdz13LmpvaW4oIiIpLHQuZXh0cmFUZXh0PXkudG9VcHBlckNhc2UoKSsiOiAiK3cpLEFycmF5LmlzQXJyYXkocy5ob3ZlcnRleHQpJiZBcnJheS5pc0FycmF5KHMuaG92ZXJ0ZXh0W2hdKT9nPXMuaG92ZXJ0ZXh0W2hdW2ZdOkFycmF5LmlzQXJyYXkocy50ZXh0KSYmQXJyYXkuaXNBcnJheShzLnRleHRbaF0pJiYoZz1zLnRleHRbaF1bZl0pO3ZhciBUPWMuYzJwKG8ueTArKGgrLjUpKnMuZHkpLGs9by54MCsoZisuNSkqcy5keCxBPW8ueTArKGgrLjUpKnMuZHksTT0iWyIrdS5zbGljZSgwLHMuY29sb3Jtb2RlbC5sZW5ndGgpLmpvaW4oIiwgIikrIl0iO3JldHVybltpLmV4dGVuZEZsYXQodCx7aW5kZXg6W2gsZl0seDA6bC5jMnAoby54MCtmKnMuZHgpLHgxOmwuYzJwKG8ueDArKGYrMSkqcy5keCkseTA6VCx5MTpULGNvbG9yOmIseFZhbDprLHhMYWJlbFZhbDprLHlWYWw6QSx5TGFiZWxWYWw6QSx6TGFiZWxWYWw6TSx0ZXh0OmcsaG92ZXJ0ZW1wbGF0ZUxhYmVsczp7ekxhYmVsOk0sY29sb3JMYWJlbDp3LCJjb2xvclswXUxhYmVsIjpiWzBdK19bMF0sImNvbG9yWzFdTGFiZWwiOmJbMV0rX1sxXSwiY29sb3JbMl1MYWJlbCI6YlsyXStfWzJdLCJjb2xvclszXUxhYmVsIjpiWzNdK19bM119fSldfX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZngiOjY3OSwiLi4vLi4vbGliIjo3NzYsIi4vY29uc3RhbnRzIjoxMTEyfV0sMTExNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLGV2ZW50RGF0YTp0KCIuL2V2ZW50X2RhdGEiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiaW1hZ2UiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCIyZE1hcCIsIm5vU29ydGluZ0J5VmFsdWUiXSxhbmltYXRhYmxlOiExLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6ODQxLCIuL2F0dHJpYnV0ZXMiOjExMTAsIi4vY2FsYyI6MTExMSwiLi9kZWZhdWx0cyI6MTExMywiLi9ldmVudF9kYXRhIjoxMTE0LCIuL2hvdmVyIjoxMTE2LCIuL3Bsb3QiOjExMTgsIi4vc3R5bGUiOjExMTl9XSwxMTE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9aS5zdHJUcmFuc2xhdGUsbz10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpLHM9dCgiLi9jb25zdGFudHMiKSxsPWkuaXNJT1MoKXx8aS5pc1NhZmFyaSgpfHxpLmlzSUUoKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7dmFyIHU9ZS54YXhpcyxmPWUueWF4aXMsaD0hKGx8fHQuX2NvbnRleHQuX2V4cG9ydGVkUGxvdCk7aS5tYWtlVHJhY2VHcm91cHMoYyxyLCJpbSIpLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpLGw9ZVswXSxjPWwudHJhY2UscD0oImZhc3QiPT09Yy56c21vb3RofHwhMT09PWMuenNtb290aCYmaCkmJiFjLl9oYXNaJiZjLl9oYXNTb3VyY2UmJiJsaW5lYXIiPT09dS50eXBlJiYibGluZWFyIj09PWYudHlwZTtjLl9yZWFsSW1hZ2U9cDt2YXIgZCxtLGcsdix5LHgsYj1sLnosXz1sLngwLHc9bC55MCxUPWwudyxrPWwuaCxBPWMuZHgsTT1jLmR5O2Zvcih4PTA7dm9pZCAwPT09ZCYmeDxUOylkPXUuYzJwKF8reCpBKSx4Kys7Zm9yKHg9VDt2b2lkIDA9PT1tJiZ4PjA7KW09dS5jMnAoXyt4KkEpLHgtLTtmb3IoeD0wO3ZvaWQgMD09PXYmJng8azspdj1mLmMycCh3K3gqTSkseCsrO2Zvcih4PWs7dm9pZCAwPT09eSYmeD4wOyl5PWYuYzJwKHcreCpNKSx4LS07aWYobTxkJiYoZz1tLG09ZCxkPWcpLHk8diYmKGc9dix2PXkseT1nKSwhcCl7ZD1NYXRoLm1heCgtLjUqdS5fbGVuZ3RoLGQpLG09TWF0aC5taW4oMS41KnUuX2xlbmd0aCxtKSx2PU1hdGgubWF4KC0uNSpmLl9sZW5ndGgsdikseT1NYXRoLm1pbigxLjUqZi5fbGVuZ3RoLHkpfXZhciBTPU1hdGgucm91bmQobS1kKSxFPU1hdGgucm91bmQoeS12KTtpZihTPD0wfHxFPD0wKXtyLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKFtdKS5leGl0KCkucmVtb3ZlKCl9ZWxzZXt2YXIgTD1yLnNlbGVjdEFsbCgiaW1hZ2UiKS5kYXRhKFtlXSk7TC5lbnRlcigpLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6by5zdmcscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSJ9KSxMLmV4aXQoKS5yZW1vdmUoKTt2YXIgQz0hMT09PWMuenNtb290aD9zLnBpeGVsYXRlZFN0eWxlOiIiO2lmKHApe3ZhciBQPWkuc2ltcGxlTWFwKHUucmFuZ2UsdS5yMmwpLEk9aS5zaW1wbGVNYXAoZi5yYW5nZSxmLnIybCksTz1QWzFdPFBbMF0sej1JWzFdPklbMF07aWYoT3x8eil7dmFyIEQ9ZCtTLzIsUj12K0UvMjtDKz0idHJhbnNmb3JtOiIrYShEKyJweCIsUisicHgiKSsic2NhbGUoIisoTz8tMToxKSsiLCIrKHo/LTE6MSkrIikiK2EoLUQrInB4IiwtUisicHgiKSsiOyJ9fUwuYXR0cigic3R5bGUiLEMpO3ZhciBGPW5ldyBQcm9taXNlKChmdW5jdGlvbih0KXtpZihjLl9oYXNaKXQoKTtlbHNlIGlmKGMuX2hhc1NvdXJjZSlpZihjLl9jYW52YXMmJmMuX2NhbnZhcy5lbC53aWR0aD09PVQmJmMuX2NhbnZhcy5lbC5oZWlnaHQ9PT1rJiZjLl9jYW52YXMuc291cmNlPT09Yy5zb3VyY2UpdCgpO2Vsc2V7dmFyIGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7ZS53aWR0aD1ULGUuaGVpZ2h0PWs7dmFyIHI9ZS5nZXRDb250ZXh0KCIyZCIpO2MuX2ltYWdlPWMuX2ltYWdlfHxuZXcgSW1hZ2U7dmFyIG49Yy5faW1hZ2U7bi5vbmxvYWQ9ZnVuY3Rpb24oKXtyLmRyYXdJbWFnZShuLDAsMCksYy5fY2FudmFzPXtlbDplLHNvdXJjZTpjLnNvdXJjZX0sdCgpfSxuLnNldEF0dHJpYnV0ZSgic3JjIixjLnNvdXJjZSl9fSkpLnRoZW4oKGZ1bmN0aW9uKCl7dmFyIHQ7aWYoYy5faGFzWil0PUIoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGJbZV1bdF19KSkudG9EYXRhVVJMKCJpbWFnZS9wbmciKTtlbHNlIGlmKGMuX2hhc1NvdXJjZSlpZihwKXQ9Yy5zb3VyY2U7ZWxzZXt2YXIgZT1jLl9jYW52YXMuZWwuZ2V0Q29udGV4dCgiMmQiKS5nZXRJbWFnZURhdGEoMCwwLFQsaykuZGF0YTt0PUIoKGZ1bmN0aW9uKHQscil7dmFyIG49NCoocipUK3QpO3JldHVybltlW25dLGVbbisxXSxlW24rMl0sZVtuKzNdXX0pKS50b0RhdGFVUkwoImltYWdlL3BuZyIpfUwuYXR0cih7InhsaW5rOmhyZWYiOnQsaGVpZ2h0OkUsd2lkdGg6Uyx4OmQseTp2fSl9KSk7dC5fcHJvbWlzZXMucHVzaChGKX1mdW5jdGlvbiBCKHQpe3ZhciBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpO2Uud2lkdGg9UyxlLmhlaWdodD1FO3ZhciByLG49ZS5nZXRDb250ZXh0KCIyZCIpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGkuY29uc3RyYWluKE1hdGgucm91bmQodS5jMnAoXyt0KkEpLWQpLDAsUyl9LG89ZnVuY3Rpb24odCl7cmV0dXJuIGkuY29uc3RyYWluKE1hdGgucm91bmQoZi5jMnAodyt0Kk0pLXYpLDAsRSl9LGg9cy5jb2xvcm1vZGVsW2MuY29sb3Jtb2RlbF0scD1oLmNvbG9ybW9kZWx8fGMuY29sb3Jtb2RlbCxtPWguZm10O2Zvcih4PTA7eDxsLnc7eCsrKXt2YXIgZz1hKHgpLHk9YSh4KzEpO2lmKHkhPT1nJiYhaXNOYU4oeSkmJiFpc05hTihnKSlmb3IodmFyIGI9MDtiPGwuaDtiKyspe3ZhciBUPW8oYiksaz1vKGIrMSk7az09PVR8fGlzTmFOKGspfHxpc05hTihUKXx8IXQoeCxiKXx8KHI9Yy5fc2NhbGVyKHQoeCxiKSksbi5maWxsU3R5bGU9cj9wKyIoIittKHIpLmpvaW4oIiwiKSsiKSI6InJnYmEoMCwwLDAsMCkiLG4uZmlsbFJlY3QoZyxULHktZyxrLVQpKX19cmV0dXJuIGV9fSkpfX0seyIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NzUzLCIuLi8uLi9saWIiOjc3NiwiLi9jb25zdGFudHMiOjExMTIsIkBwbG90bHkvZDMiOjU4fV0sMTExOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe24uc2VsZWN0KHQpLnNlbGVjdEFsbCgiLmltIGltYWdlIikuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSkpfX0seyJAcGxvdGx5L2QzIjo1OH1dLDExMjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsaT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRGVlcCxhPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxvPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIiksdT10KCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIikudGVtcGxhdGVkQXJyYXksZj10KCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiKSxoPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuZGVzY3JpcHRpb25Pbmx5TnVtYmVycyxwPW8oe2VkaXRUeXBlOiJwbG90Iixjb2xvckVkaXRUeXBlOiJwbG90In0pLGQ9e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InBsb3QifSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6cy5kZWZhdWx0TGluZSxlZGl0VHlwZToicGxvdCJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJjYWxjIn0sdGhpY2tuZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJjYWxjIn0sbT17dmFsVHlwZToiaW5mb19hcnJheSIsaXRlbXM6W3t2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJwbG90In0se3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6InBsb3QifV0sZWRpdFR5cGU6InBsb3QifSxnPXUoInN0ZXAiLGkoe30sZCx7cmFuZ2U6bX0pKTtlLmV4cG9ydHM9e21vZGU6e3ZhbFR5cGU6ImZsYWdsaXN0IixlZGl0VHlwZToiY2FsYyIsZmxhZ3M6WyJudW1iZXIiLCJkZWx0YSIsImdhdWdlIl0sZGZsdDoibnVtYmVyIn0sdmFsdWU6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLGFuaW06ITB9LGFsaWduOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsZWZ0IiwiY2VudGVyIiwicmlnaHQiXSxlZGl0VHlwZToicGxvdCJ9LGRvbWFpbjpsKHtuYW1lOiJpbmRpY2F0b3IiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pLHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJwbG90In0sYWxpZ246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxlZnQiLCJjZW50ZXIiLCJyaWdodCJdLGVkaXRUeXBlOiJwbG90In0sZm9udDpuKHt9LHAse30pLGVkaXRUeXBlOiJwbG90In0sbnVtYmVyOnt2YWx1ZWZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJwbG90IixkZXNjcmlwdGlvbjpoKCJ2YWx1ZSIpfSxmb250Om4oe30scCx7fSkscHJlZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sZGVsdGE6e3JlZmVyZW5jZTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyJ9LHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJib3R0b20iLCJsZWZ0IiwicmlnaHQiXSxkZmx0OiJib3R0b20iLGVkaXRUeXBlOiJwbG90In0scmVsYXRpdmU6e3ZhbFR5cGU6ImJvb2xlYW4iLGVkaXRUeXBlOiJwbG90IixkZmx0OiExfSx2YWx1ZWZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCIsZGVzY3JpcHRpb246aCgidmFsdWUiKX0saW5jcmVhc2luZzp7c3ltYm9sOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6Zi5JTkNSRUFTSU5HLlNZTUJPTCxlZGl0VHlwZToicGxvdCJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpmLklOQ1JFQVNJTkcuQ09MT1IsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGRlY3JlYXNpbmc6e3N5bWJvbDp7dmFsVHlwZToic3RyaW5nIixkZmx0OmYuREVDUkVBU0lORy5TWU1CT0wsZWRpdFR5cGU6InBsb3QifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6Zi5ERUNSRUFTSU5HLkNPTE9SLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxmb250Om4oe30scCx7fSksZWRpdFR5cGU6ImNhbGMifSxnYXVnZTp7c2hhcGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLGVkaXRUeXBlOiJwbG90IixkZmx0OiJhbmd1bGFyIix2YWx1ZXM6WyJhbmd1bGFyIiwiYnVsbGV0Il19LGJhcjppKHt9LGQse2NvbG9yOntkZmx0OiJncmVlbiJ9fSksYmdjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJwbG90In0sYm9yZGVyY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0OnMuZGVmYXVsdExpbmUsZWRpdFR5cGU6InBsb3QifSxib3JkZXJ3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjEsZWRpdFR5cGU6InBsb3QifSxheGlzOmEoe3JhbmdlOm0sdmlzaWJsZTpuKHt9LGMudmlzaWJsZSx7ZGZsdDohMH0pLHRpY2ttb2RlOmMudGlja21vZGUsbnRpY2tzOmMubnRpY2tzLHRpY2swOmMudGljazAsZHRpY2s6Yy5kdGljayx0aWNrdmFsczpjLnRpY2t2YWxzLHRpY2t0ZXh0OmMudGlja3RleHQsdGlja3M6bih7fSxjLnRpY2tzLHtkZmx0OiJvdXRzaWRlIn0pLHRpY2tsZW46Yy50aWNrbGVuLHRpY2t3aWR0aDpjLnRpY2t3aWR0aCx0aWNrY29sb3I6Yy50aWNrY29sb3Isc2hvd3RpY2tsYWJlbHM6Yy5zaG93dGlja2xhYmVscyx0aWNrZm9udDpvKHt9KSx0aWNrYW5nbGU6Yy50aWNrYW5nbGUsdGlja2Zvcm1hdDpjLnRpY2tmb3JtYXQsdGlja2Zvcm1hdHN0b3BzOmMudGlja2Zvcm1hdHN0b3BzLHRpY2twcmVmaXg6Yy50aWNrcHJlZml4LHNob3d0aWNrcHJlZml4OmMuc2hvd3RpY2twcmVmaXgsdGlja3N1ZmZpeDpjLnRpY2tzdWZmaXgsc2hvd3RpY2tzdWZmaXg6Yy5zaG93dGlja3N1ZmZpeCxzZXBhcmF0ZXRob3VzYW5kczpjLnNlcGFyYXRldGhvdXNhbmRzLGV4cG9uZW50Zm9ybWF0OmMuZXhwb25lbnRmb3JtYXQsbWluZXhwb25lbnQ6Yy5taW5leHBvbmVudCxzaG93ZXhwb25lbnQ6Yy5zaG93ZXhwb25lbnQsZWRpdFR5cGU6InBsb3QifSwicGxvdCIpLHN0ZXBzOmcsdGhyZXNob2xkOntsaW5lOntjb2xvcjpuKHt9LGQubGluZS5jb2xvcix7fSksd2lkdGg6bih7fSxkLmxpbmUud2lkdGgse2RmbHQ6MX0pLGVkaXRUeXBlOiJwbG90In0sdGhpY2tuZXNzOm4oe30sZC50aGlja25lc3Mse2RmbHQ6Ljg1fSksdmFsdWU6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLGRmbHQ6ITF9LGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uLy4uL2NvbnN0YW50cy9kZWx0YS5qcyI6NzQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6ODMwLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg0MiwiLi4vLi4vcGxvdHMvZG9tYWluIjo4NTUsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2fV0sMTEyMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0iaW5kaWNhdG9yIixyLnBsb3Q9ZnVuY3Rpb24odCxlLGksYSl7bi5wbG90QmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxpLGEpe24uY2xlYW5CYXNlUGxvdChyLm5hbWUsdCxlLGksYSl9fSx7Ii4uLy4uL3Bsb3RzL3Bsb3RzIjo4OTB9XSwxMTIyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Y2FsYzpmdW5jdGlvbih0LGUpe3ZhciByPVtdLG49ZS52YWx1ZTsibnVtYmVyIiE9dHlwZW9mIGUuX2xhc3RWYWx1ZSYmKGUuX2xhc3RWYWx1ZT1lLnZhbHVlKTt2YXIgaT1lLl9sYXN0VmFsdWUsYT1pO3JldHVybiBlLl9oYXNEZWx0YSYmIm51bWJlciI9PXR5cGVvZiBlLmRlbHRhLnJlZmVyZW5jZSYmKGE9ZS5kZWx0YS5yZWZlcmVuY2UpLHJbMF09e3k6bixsYXN0WTppLGRlbHRhOm4tYSxyZWxhdGl2ZURlbHRhOihuLWEpL2F9LHJ9fX0se31dLDExMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtkZWZhdWx0TnVtYmVyRm9udFNpemU6ODAsYnVsbGV0TnVtYmVyRG9tYWluU2l6ZTouMjUsYnVsbGV0UGFkZGluZzouMDI1LGlubmVyUmFkaXVzOi43NSx2YWx1ZVRoaWNrbmVzczouNSx0aXRsZVBhZGRpbmc6NSxob3Jpem9udGFsUGFkZGluZzoxMH19LHt9XSwxMTI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxvPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSxzPXQoIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyIpLGw9dCgiLi9jb25zdGFudHMuanMiKSxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIiksdT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIiksZj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyIpO2Z1bmN0aW9uIGgodCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLmdhdWdlLnN0ZXBzLHIsYSl9cigiY29sb3IiKSxyKCJsaW5lLmNvbG9yIikscigibGluZS53aWR0aCIpLHIoInJhbmdlIikscigidGhpY2tuZXNzIil9ZS5leHBvcnRzPXtzdXBwbHlEZWZhdWx0czpmdW5jdGlvbih0LGUscixwKXtmdW5jdGlvbiBkKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9YShlLHAsZCksZCgibW9kZSIpLGUuX2hhc051bWJlcj0tMSE9PWUubW9kZS5pbmRleE9mKCJudW1iZXIiKSxlLl9oYXNEZWx0YT0tMSE9PWUubW9kZS5pbmRleE9mKCJkZWx0YSIpLGUuX2hhc0dhdWdlPS0xIT09ZS5tb2RlLmluZGV4T2YoImdhdWdlIik7dmFyIG09ZCgidmFsdWUiKTtlLl9yYW5nZT1bMCwibnVtYmVyIj09dHlwZW9mIG0/MS41Km06MV07dmFyIGcsdix5LHgsYixfLHc9bmV3IEFycmF5KDIpO2Z1bmN0aW9uIFQodCxlKXtyZXR1cm4gbi5jb2VyY2UoeSx4LGkuZ2F1Z2UsdCxlKX1mdW5jdGlvbiBrKHQsZSl7cmV0dXJuIG4uY29lcmNlKGIsXyxpLmdhdWdlLmF4aXMsdCxlKX1pZihlLl9oYXNOdW1iZXImJihkKCJudW1iZXIudmFsdWVmb3JtYXQiKSxkKCJudW1iZXIuZm9udC5jb2xvciIscC5mb250LmNvbG9yKSxkKCJudW1iZXIuZm9udC5mYW1pbHkiLHAuZm9udC5mYW1pbHkpLGQoIm51bWJlci5mb250LnNpemUiKSx2b2lkIDA9PT1lLm51bWJlci5mb250LnNpemUmJihlLm51bWJlci5mb250LnNpemU9bC5kZWZhdWx0TnVtYmVyRm9udFNpemUsd1swXT0hMCksZCgibnVtYmVyLnByZWZpeCIpLGQoIm51bWJlci5zdWZmaXgiKSxnPWUubnVtYmVyLmZvbnQuc2l6ZSksZS5faGFzRGVsdGEmJihkKCJkZWx0YS5mb250LmNvbG9yIixwLmZvbnQuY29sb3IpLGQoImRlbHRhLmZvbnQuZmFtaWx5IixwLmZvbnQuZmFtaWx5KSxkKCJkZWx0YS5mb250LnNpemUiKSx2b2lkIDA9PT1lLmRlbHRhLmZvbnQuc2l6ZSYmKGUuZGVsdGEuZm9udC5zaXplPShlLl9oYXNOdW1iZXI/LjU6MSkqKGd8fGwuZGVmYXVsdE51bWJlckZvbnRTaXplKSx3WzFdPSEwKSxkKCJkZWx0YS5yZWZlcmVuY2UiLGUudmFsdWUpLGQoImRlbHRhLnJlbGF0aXZlIiksZCgiZGVsdGEudmFsdWVmb3JtYXQiLGUuZGVsdGEucmVsYXRpdmU/IjIlIjoiIiksZCgiZGVsdGEuaW5jcmVhc2luZy5zeW1ib2wiKSxkKCJkZWx0YS5pbmNyZWFzaW5nLmNvbG9yIiksZCgiZGVsdGEuZGVjcmVhc2luZy5zeW1ib2wiKSxkKCJkZWx0YS5kZWNyZWFzaW5nLmNvbG9yIiksZCgiZGVsdGEucG9zaXRpb24iKSx2PWUuZGVsdGEuZm9udC5zaXplKSxlLl9zY2FsZU51bWJlcnM9KCFlLl9oYXNOdW1iZXJ8fHdbMF0pJiYoIWUuX2hhc0RlbHRhfHx3WzFdKXx8ITEsZCgidGl0bGUuZm9udC5jb2xvciIscC5mb250LmNvbG9yKSxkKCJ0aXRsZS5mb250LmZhbWlseSIscC5mb250LmZhbWlseSksZCgidGl0bGUuZm9udC5zaXplIiwuMjUqKGd8fHZ8fGwuZGVmYXVsdE51bWJlckZvbnRTaXplKSksZCgidGl0bGUudGV4dCIpLGUuX2hhc0dhdWdlKXsoeT10LmdhdWdlKXx8KHk9e30pLHg9by5uZXdDb250YWluZXIoZSwiZ2F1Z2UiKSxUKCJzaGFwZSIpLChlLl9pc0J1bGxldD0iYnVsbGV0Ij09PWUuZ2F1Z2Uuc2hhcGUpfHxkKCJ0aXRsZS5hbGlnbiIsImNlbnRlciIpLChlLl9pc0FuZ3VsYXI9ImFuZ3VsYXIiPT09ZS5nYXVnZS5zaGFwZSl8fGQoImFsaWduIiwiY2VudGVyIiksVCgiYmdjb2xvciIscC5wYXBlcl9iZ2NvbG9yKSxUKCJib3JkZXJ3aWR0aCIpLFQoImJvcmRlcmNvbG9yIiksVCgiYmFyLmNvbG9yIiksVCgiYmFyLmxpbmUuY29sb3IiKSxUKCJiYXIubGluZS53aWR0aCIpLFQoImJhci50aGlja25lc3MiLGwudmFsdWVUaGlja25lc3MqKCJidWxsZXQiPT09ZS5nYXVnZS5zaGFwZT8uNToxKSkscyh5LHgse25hbWU6InN0ZXBzIixoYW5kbGVJdGVtRGVmYXVsdHM6aH0pLFQoInRocmVzaG9sZC52YWx1ZSIpLFQoInRocmVzaG9sZC50aGlja25lc3MiKSxUKCJ0aHJlc2hvbGQubGluZS53aWR0aCIpLFQoInRocmVzaG9sZC5saW5lLmNvbG9yIiksYj17fSx5JiYoYj15LmF4aXN8fHt9KSxfPW8ubmV3Q29udGFpbmVyKHgsImF4aXMiKSxrKCJ2aXNpYmxlIiksZS5fcmFuZ2U9aygicmFuZ2UiLGUuX3JhbmdlKTt2YXIgQT17b3V0ZXJUaWNrczohMH07YyhiLF8saywibGluZWFyIiksZihiLF8saywibGluZWFyIixBKSx1KGIsXyxrLEEpfWVsc2UgZCgidGl0bGUuYWxpZ24iLCJjZW50ZXIiKSxkKCJhbGlnbiIsImNlbnRlciIpLGUuX2lzQW5ndWxhcj1lLl9pc0J1bGxldD0hMTtlLl9sZW5ndGg9bnVsbH19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6ODIyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19sYWJlbF9kZWZhdWx0cyI6ODQ5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vdGlja19tYXJrX2RlZmF1bHRzIjo4NTAsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi90aWNrX3ZhbHVlX2RlZmF1bHRzIjo4NTEsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6ODU1LCIuL2F0dHJpYnV0ZXMiOjExMjAsIi4vY29uc3RhbnRzLmpzIjoxMTIzfV0sMTEyNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJpbmRpY2F0b3IiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbInN2ZyIsIm5vT3BhY2l0eSIsIm5vSG92ZXIiXSxhbmltYXRhYmxlOiEwLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLnN1cHBseURlZmF1bHRzLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxwbG90OnQoIi4vcGxvdCIpLG1ldGE6e319fSx7Ii4vYXR0cmlidXRlcyI6MTEyMCwiLi9iYXNlX3Bsb3QiOjExMjEsIi4vY2FsYyI6MTEyMiwiLi9kZWZhdWx0cyI6MTEyNCwiLi9wbG90IjoxMTI2fV0sMTEyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJkMy1pbnRlcnBvbGF0ZSIpLmludGVycG9sYXRlLGE9dCgiZDMtaW50ZXJwb2xhdGUiKS5pbnRlcnBvbGF0ZU51bWJlcixvPXQoIi4uLy4uL2xpYiIpLHM9by5zdHJTY2FsZSxsPW8uc3RyVHJhbnNsYXRlLGM9by5yYWQyZGVnLHU9dCgiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCIpLk1JRF9TSElGVCxmPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGg9dCgiLi9jb25zdGFudHMiKSxwPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGQ9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxtPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2RlZmF1bHRzIiksZz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vcG9zaXRpb25fZGVmYXVsdHMiKSx2PXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9sYXlvdXRfYXR0cmlidXRlcyIpLHk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLHg9e2xlZnQ6InN0YXJ0IixjZW50ZXI6Im1pZGRsZSIscmlnaHQ6ImVuZCJ9LGI9e2xlZnQ6MCxjZW50ZXI6LjUscmlnaHQ6MX0sXz0vW3l6YWZwblx4YjVta01HVFBFWlldLztmdW5jdGlvbiB3KHQpe3JldHVybiB0JiZ0LmR1cmF0aW9uPjB9ZnVuY3Rpb24gVCh0KXt0LmVhY2goKGZ1bmN0aW9uKHQpe3kuc3Ryb2tlKG4uc2VsZWN0KHRoaXMpLHQubGluZS5jb2xvcil9KSkuZWFjaCgoZnVuY3Rpb24odCl7eS5maWxsKG4uc2VsZWN0KHRoaXMpLHQuY29sb3IpfSkpLnN0eWxlKCJzdHJva2Utd2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5saW5lLndpZHRofSkpfWZ1bmN0aW9uIGsodCxlLHIpe3ZhciBuPXQuX2Z1bGxMYXlvdXQsaT1vLmV4dGVuZEZsYXQoe3R5cGU6ImxpbmVhciIsdGlja3M6Im91dHNpZGUiLHJhbmdlOnIsc2hvd2xpbmU6ITB9LGUpLGE9e3R5cGU6ImxpbmVhciIsX2lkOiJ4IitlLl9pZH0scz17bGV0dGVyOiJ4Iixmb250Om4uZm9udCxub0hvdmVyOiEwLG5vVGlja3NvbjohMH07ZnVuY3Rpb24gbCh0LGUpe3JldHVybiBvLmNvZXJjZShpLGEsdix0LGUpfXJldHVybiBtKGksYSxsLHMsbiksZyhpLGEsbCxzKSxhfWZ1bmN0aW9uIEEodCxlLHIpe3JldHVybltNYXRoLm1pbihlL3Qud2lkdGgsci90LmhlaWdodCksdCxlKyJ4IityXX1mdW5jdGlvbiBNKHQsZSxyLGkpe3ZhciBhPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnROUygiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciLCJ0ZXh0Iiksbz1uLnNlbGVjdChhKTtyZXR1cm4gby50ZXh0KHQpLmF0dHIoIngiLDApLmF0dHIoInkiLDApLmF0dHIoInRleHQtYW5jaG9yIixyKS5hdHRyKCJkYXRhLXVuZm9ybWF0dGVkIix0KS5jYWxsKHAuY29udmVydFRvVHNwYW5zLGkpLmNhbGwoZi5mb250LGUpLGYuYkJveChvLm5vZGUoKSl9ZnVuY3Rpb24gUyh0LGUscixuLGksYSl7dmFyIHM9Il9jYWNoZSIrZTt0W3NdJiZ0W3NdLmtleT09PWl8fCh0W3NdPXtrZXk6aSx2YWx1ZTpyfSk7dmFyIGw9by5hZ2dOdW1zKGEsbnVsbCxbdFtzXS52YWx1ZSxuXSwyKTtyZXR1cm4gdFtzXS52YWx1ZT1sLGx9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG0pe3ZhciBnLHY9dC5fZnVsbExheW91dDt3KHIpJiZtJiYoZz1tKCkpLG8ubWFrZVRyYWNlR3JvdXBzKHYuX2luZGljYXRvcmxheWVyLGUsInRyYWNlIikuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIG0sRSxMLEMsUCxJPWVbMF0udHJhY2UsTz1uLnNlbGVjdCh0aGlzKSx6PUkuX2hhc0dhdWdlLEQ9SS5faXNBbmd1bGFyLFI9SS5faXNCdWxsZXQsRj1JLmRvbWFpbixCPXt3OnYuX3NpemUudyooRi54WzFdLUYueFswXSksaDp2Ll9zaXplLmgqKEYueVsxXS1GLnlbMF0pLGw6di5fc2l6ZS5sK3YuX3NpemUudypGLnhbMF0scjp2Ll9zaXplLnIrdi5fc2l6ZS53KigxLUYueFsxXSksdDp2Ll9zaXplLnQrdi5fc2l6ZS5oKigxLUYueVsxXSksYjp2Ll9zaXplLmIrdi5fc2l6ZS5oKkYueVswXX0sTj1CLmwrQi53LzIsaj1CLnQrQi5oLzIsVT1NYXRoLm1pbihCLncvMixCLmgpLFY9aC5pbm5lclJhZGl1cypVLEg9SS5hbGlnbnx8ImNlbnRlciI7aWYoRT1qLHope2lmKEQmJihtPU4sRT1qK1UvMixMPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbih0LGUpe3ZhciByPU1hdGguc3FydCh0LndpZHRoLzIqKHQud2lkdGgvMikrdC5oZWlnaHQqdC5oZWlnaHQpO3JldHVybltlL3IsdCxlXX0odCwuOSpWKX0pLFIpe3ZhciBxPWguYnVsbGV0UGFkZGluZyxHPTEtaC5idWxsZXROdW1iZXJEb21haW5TaXplK3E7bT1CLmwrKEcrKDEtRykqYltIXSkqQi53LEw9ZnVuY3Rpb24odCl7cmV0dXJuIEEodCwoaC5idWxsZXROdW1iZXJEb21haW5TaXplLXEpKkIudyxCLmgpfX19ZWxzZSBtPUIubCtiW0hdKkIudyxMPWZ1bmN0aW9uKHQpe3JldHVybiBBKHQsQi53LEIuaCl9OyFmdW5jdGlvbih0LGUscixpKXt2YXIgYyx1LGgsbT1yWzBdLnRyYWNlLGc9aS5udW1iZXJzWCx2PWkubnVtYmVyc1ksVD1tLmFsaWdufHwiY2VudGVyIixBPXhbVF0sRT1pLnRyYW5zaXRpb25PcHRzLEw9aS5vbkNvbXBsZXRlLEM9by5lbnN1cmVTaW5nbGUoZSwiZyIsIm51bWJlcnMiKSxQPVtdO20uX2hhc051bWJlciYmUC5wdXNoKCJudW1iZXIiKTttLl9oYXNEZWx0YSYmKFAucHVzaCgiZGVsdGEiKSwibGVmdCI9PT1tLmRlbHRhLnBvc2l0aW9uJiZQLnJldmVyc2UoKSk7dmFyIEk9Qy5zZWxlY3RBbGwoInRleHQiKS5kYXRhKFApO2Z1bmN0aW9uIE8oZSxyLG4saSl7aWYoIWUubWF0Y2goInMiKXx8bj49MD09aT49MHx8cihuKS5zbGljZSgtMSkubWF0Y2goXyl8fHIoaSkuc2xpY2UoLTEpLm1hdGNoKF8pKXJldHVybiByO3ZhciBhPWUuc2xpY2UoKS5yZXBsYWNlKCJzIiwiZiIpLnJlcGxhY2UoL1xkKy8sKGZ1bmN0aW9uKHQpe3JldHVybiBwYXJzZUludCh0KS0xfSkpLG89ayh0LHt0aWNrZm9ybWF0OmF9KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguYWJzKHQpPDE/ZC50aWNrVGV4dChvLHQpLnRleHQ6cih0KX19SS5lbnRlcigpLmFwcGVuZCgidGV4dCIpLEkuYXR0cigidGV4dC1hbmNob3IiLChmdW5jdGlvbigpe3JldHVybiBBfSkpLmF0dHIoImNsYXNzIiwoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkuYXR0cigieCIsbnVsbCkuYXR0cigieSIsbnVsbCkuYXR0cigiZHgiLG51bGwpLmF0dHIoImR5IixudWxsKSxJLmV4aXQoKS5yZW1vdmUoKTt2YXIgeixEPW0ubW9kZSttLmFsaWduO20uX2hhc0RlbHRhJiYoej1mdW5jdGlvbigpe3ZhciBlPWsodCx7dGlja2Zvcm1hdDptLmRlbHRhLnZhbHVlZm9ybWF0fSxtLl9yYW5nZSk7ZS5zZXRTY2FsZSgpLGQucHJlcFRpY2tzKGUpO3ZhciBpPWZ1bmN0aW9uKHQpe3JldHVybiBkLnRpY2tUZXh0KGUsdCkudGV4dH0sbz1mdW5jdGlvbih0KXtyZXR1cm4gbS5kZWx0YS5yZWxhdGl2ZT90LnJlbGF0aXZlRGVsdGE6dC5kZWx0YX0scz1mdW5jdGlvbih0LGUpe3JldHVybiAwPT09dHx8Im51bWJlciIhPXR5cGVvZiB0fHxpc05hTih0KT8iLSI6KHQ+MD9tLmRlbHRhLmluY3JlYXNpbmcuc3ltYm9sOm0uZGVsdGEuZGVjcmVhc2luZy5zeW1ib2wpK2UodCl9LGw9ZnVuY3Rpb24odCl7cmV0dXJuIHQuZGVsdGE+PTA/bS5kZWx0YS5pbmNyZWFzaW5nLmNvbG9yOm0uZGVsdGEuZGVjcmVhc2luZy5jb2xvcn07dm9pZCAwPT09bS5fZGVsdGFMYXN0VmFsdWUmJihtLl9kZWx0YUxhc3RWYWx1ZT1vKHJbMF0pKTt2YXIgYz1DLnNlbGVjdCgidGV4dC5kZWx0YSIpO2Z1bmN0aW9uIGgoKXtjLnRleHQocyhvKHJbMF0pLGkpKS5jYWxsKHkuZmlsbCxsKHJbMF0pKS5jYWxsKHAuY29udmVydFRvVHNwYW5zLHQpfXJldHVybiBjLmNhbGwoZi5mb250LG0uZGVsdGEuZm9udCkuY2FsbCh5LmZpbGwsbCh7ZGVsdGE6bS5fZGVsdGFMYXN0VmFsdWV9KSksdyhFKT9jLnRyYW5zaXRpb24oKS5kdXJhdGlvbihFLmR1cmF0aW9uKS5lYXNlKEUuZWFzaW5nKS50d2VlbigidGV4dCIsKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyksZT1vKHJbMF0pLGM9bS5fZGVsdGFMYXN0VmFsdWUsdT1PKG0uZGVsdGEudmFsdWVmb3JtYXQsaSxjLGUpLGY9YShjLGUpO3JldHVybiBtLl9kZWx0YUxhc3RWYWx1ZT1lLGZ1bmN0aW9uKGUpe3QudGV4dChzKGYoZSksdSkpLHQuY2FsbCh5LmZpbGwsbCh7ZGVsdGE6ZihlKX0pKX19KSkuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtoKCksTCYmTCgpfSkpLmVhY2goImludGVycnVwdCIsKGZ1bmN0aW9uKCl7aCgpLEwmJkwoKX0pKTpoKCksdT1NKHMobyhyWzBdKSxpKSxtLmRlbHRhLmZvbnQsQSx0KSxjfSgpLEQrPW0uZGVsdGEucG9zaXRpb24rbS5kZWx0YS5mb250LnNpemUrbS5kZWx0YS5mb250LmZhbWlseSttLmRlbHRhLnZhbHVlZm9ybWF0LEQrPW0uZGVsdGEuaW5jcmVhc2luZy5zeW1ib2wrbS5kZWx0YS5kZWNyZWFzaW5nLnN5bWJvbCxoPXUpO20uX2hhc051bWJlciYmKCFmdW5jdGlvbigpe3ZhciBlPWsodCx7dGlja2Zvcm1hdDptLm51bWJlci52YWx1ZWZvcm1hdH0sbS5fcmFuZ2UpO2Uuc2V0U2NhbGUoKSxkLnByZXBUaWNrcyhlKTt2YXIgaT1mdW5jdGlvbih0KXtyZXR1cm4gZC50aWNrVGV4dChlLHQpLnRleHR9LG89bS5udW1iZXIuc3VmZml4LHM9bS5udW1iZXIucHJlZml4LGw9Qy5zZWxlY3QoInRleHQubnVtYmVyIik7ZnVuY3Rpb24gdSgpe3ZhciBlPSJudW1iZXIiPT10eXBlb2YgclswXS55P3MraShyWzBdLnkpK286Ii0iO2wudGV4dChlKS5jYWxsKGYuZm9udCxtLm51bWJlci5mb250KS5jYWxsKHAuY29udmVydFRvVHNwYW5zLHQpfXcoRSk/bC50cmFuc2l0aW9uKCkuZHVyYXRpb24oRS5kdXJhdGlvbikuZWFzZShFLmVhc2luZykuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXt1KCksTCYmTCgpfSkpLmVhY2goImludGVycnVwdCIsKGZ1bmN0aW9uKCl7dSgpLEwmJkwoKX0pKS5hdHRyVHdlZW4oInRleHQiLChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpLGU9YShyWzBdLmxhc3RZLHJbMF0ueSk7bS5fbGFzdFZhbHVlPXJbMF0ueTt2YXIgbD1PKG0ubnVtYmVyLnZhbHVlZm9ybWF0LGksclswXS5sYXN0WSxyWzBdLnkpO3JldHVybiBmdW5jdGlvbihyKXt0LnRleHQocytsKGUocikpK28pfX0pKTp1KCksYz1NKHMraShyWzBdLnkpK28sbS5udW1iZXIuZm9udCxBLHQpfSgpLEQrPW0ubnVtYmVyLmZvbnQuc2l6ZSttLm51bWJlci5mb250LmZhbWlseSttLm51bWJlci52YWx1ZWZvcm1hdCttLm51bWJlci5zdWZmaXgrbS5udW1iZXIucHJlZml4LGg9Yyk7aWYobS5faGFzRGVsdGEmJm0uX2hhc051bWJlcil7dmFyIFIsRixCPVsoYy5sZWZ0K2MucmlnaHQpLzIsKGMudG9wK2MuYm90dG9tKS8yXSxOPVsodS5sZWZ0K3UucmlnaHQpLzIsKHUudG9wK3UuYm90dG9tKS8yXSxqPS43NSptLmRlbHRhLmZvbnQuc2l6ZTsibGVmdCI9PT1tLmRlbHRhLnBvc2l0aW9uJiYoUj1TKG0sImRlbHRhUG9zIiwwLC0xKihjLndpZHRoKmJbbS5hbGlnbl0rdS53aWR0aCooMS1iW20uYWxpZ25dKStqKSxELE1hdGgubWluKSxGPUJbMV0tTlsxXSxoPXt3aWR0aDpjLndpZHRoK3Uud2lkdGgraixoZWlnaHQ6TWF0aC5tYXgoYy5oZWlnaHQsdS5oZWlnaHQpLGxlZnQ6dS5sZWZ0K1IscmlnaHQ6Yy5yaWdodCx0b3A6TWF0aC5taW4oYy50b3AsdS50b3ArRiksYm90dG9tOk1hdGgubWF4KGMuYm90dG9tLHUuYm90dG9tK0YpfSksInJpZ2h0Ij09PW0uZGVsdGEucG9zaXRpb24mJihSPVMobSwiZGVsdGFQb3MiLDAsYy53aWR0aCooMS1iW20uYWxpZ25dKSt1LndpZHRoKmJbbS5hbGlnbl0raixELE1hdGgubWF4KSxGPUJbMV0tTlsxXSxoPXt3aWR0aDpjLndpZHRoK3Uud2lkdGgraixoZWlnaHQ6TWF0aC5tYXgoYy5oZWlnaHQsdS5oZWlnaHQpLGxlZnQ6Yy5sZWZ0LHJpZ2h0OnUucmlnaHQrUix0b3A6TWF0aC5taW4oYy50b3AsdS50b3ArRiksYm90dG9tOk1hdGgubWF4KGMuYm90dG9tLHUuYm90dG9tK0YpfSksImJvdHRvbSI9PT1tLmRlbHRhLnBvc2l0aW9uJiYoUj1udWxsLEY9dS5oZWlnaHQsaD17d2lkdGg6TWF0aC5tYXgoYy53aWR0aCx1LndpZHRoKSxoZWlnaHQ6Yy5oZWlnaHQrdS5oZWlnaHQsbGVmdDpNYXRoLm1pbihjLmxlZnQsdS5sZWZ0KSxyaWdodDpNYXRoLm1heChjLnJpZ2h0LHUucmlnaHQpLHRvcDpjLmJvdHRvbS1jLmhlaWdodCxib3R0b206Yy5ib3R0b20rdS5oZWlnaHR9KSwidG9wIj09PW0uZGVsdGEucG9zaXRpb24mJihSPW51bGwsRj1jLnRvcCxoPXt3aWR0aDpNYXRoLm1heChjLndpZHRoLHUud2lkdGgpLGhlaWdodDpjLmhlaWdodCt1LmhlaWdodCxsZWZ0Ok1hdGgubWluKGMubGVmdCx1LmxlZnQpLHJpZ2h0Ok1hdGgubWF4KGMucmlnaHQsdS5yaWdodCksdG9wOmMuYm90dG9tLWMuaGVpZ2h0LXUuaGVpZ2h0LGJvdHRvbTpjLmJvdHRvbX0pLHouYXR0cih7ZHg6UixkeTpGfSl9KG0uX2hhc051bWJlcnx8bS5faGFzRGVsdGEpJiZDLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKCl7dmFyIHQ9aS5udW1iZXJzU2NhbGVyKGgpO0QrPXRbMl07dmFyIGUscj1TKG0sIm51bWJlcnNTY2FsZSIsMSx0WzBdLEQsTWF0aC5taW4pO20uX3NjYWxlTnVtYmVyc3x8KHI9MSksZT1tLl9pc0FuZ3VsYXI/di1yKmguYm90dG9tOnYtciooaC50b3AraC5ib3R0b20pLzIsbS5fbnVtYmVyc1RvcD1yKmgudG9wK2U7dmFyIG49aFtUXTsiY2VudGVyIj09PVQmJihuPShoLmxlZnQraC5yaWdodCkvMik7dmFyIGE9Zy1yKm47cmV0dXJuIGE9UyhtLCJudW1iZXJzVHJhbnNsYXRlIiwwLGEsRCxNYXRoLm1heCksbChhLGUpK3Mocil9KSl9KHQsTyxlLHtudW1iZXJzWDptLG51bWJlcnNZOkUsbnVtYmVyc1NjYWxlcjpMLHRyYW5zaXRpb25PcHRzOnIsb25Db21wbGV0ZTpnfSkseiYmKEM9e3JhbmdlOkkuZ2F1Z2UuYXhpcy5yYW5nZSxjb2xvcjpJLmdhdWdlLmJnY29sb3IsbGluZTp7Y29sb3I6SS5nYXVnZS5ib3JkZXJjb2xvcix3aWR0aDowfSx0aGlja25lc3M6MX0sUD17cmFuZ2U6SS5nYXVnZS5heGlzLnJhbmdlLGNvbG9yOiJyZ2JhKDAsIDAsIDAsIDApIixsaW5lOntjb2xvcjpJLmdhdWdlLmJvcmRlcmNvbG9yLHdpZHRoOkkuZ2F1Z2UuYm9yZGVyd2lkdGh9LHRoaWNrbmVzczoxfSk7dmFyIFk9Ty5zZWxlY3RBbGwoImcuYW5ndWxhciIpLmRhdGEoRD9lOltdKTtZLmV4aXQoKS5yZW1vdmUoKTt2YXIgVz1PLnNlbGVjdEFsbCgiZy5hbmd1bGFyYXhpcyIpLmRhdGEoRD9lOltdKTtXLmV4aXQoKS5yZW1vdmUoKSxEJiZmdW5jdGlvbih0LGUscixhKXt2YXIgbyxzLGYsaCxwPXJbMF0udHJhY2UsbT1hLnNpemUsZz1hLnJhZGl1cyx2PWEuaW5uZXJSYWRpdXMseT1hLmdhdWdlQmcseD1hLmdhdWdlT3V0bGluZSxiPVttLmwrbS53LzIsbS50K20uaC8yK2cvMl0sXz1hLmdhdWdlLEE9YS5sYXllcixNPWEudHJhbnNpdGlvbk9wdHMsUz1hLm9uQ29tcGxldGUsRT1NYXRoLlBJLzI7ZnVuY3Rpb24gTCh0KXt2YXIgZT1wLmdhdWdlLmF4aXMucmFuZ2VbMF0scj0odC1lKS8ocC5nYXVnZS5heGlzLnJhbmdlWzFdLWUpKk1hdGguUEktRTtyZXR1cm4gcjwtRT8tRTpyPkU/RTpyfWZ1bmN0aW9uIEModCl7cmV0dXJuIG4uc3ZnLmFyYygpLmlubmVyUmFkaXVzKCh2K2cpLzItdC8yKihnLXYpKS5vdXRlclJhZGl1cygoditnKS8yK3QvMiooZy12KSkuc3RhcnRBbmdsZSgtRSl9ZnVuY3Rpb24gUCh0KXt0LmF0dHIoImQiLChmdW5jdGlvbih0KXtyZXR1cm4gQyh0LnRoaWNrbmVzcykuc3RhcnRBbmdsZShMKHQucmFuZ2VbMF0pKS5lbmRBbmdsZShMKHQucmFuZ2VbMV0pKSgpfSkpfV8uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJhbmd1bGFyIiwhMCksXy5hdHRyKCJ0cmFuc2Zvcm0iLGwoYlswXSxiWzFdKSksQS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImFuZ3VsYXJheGlzIiwhMCkuY2xhc3NlZCgiY3Jpc3AiLCEwKSxBLnNlbGVjdEFsbCgiZy54YW5ndWxhcmF4aXN0aWNrLHBhdGgsdGV4dCIpLnJlbW92ZSgpLChvPWsodCxwLmdhdWdlLmF4aXMpKS50eXBlPSJsaW5lYXIiLG8ucmFuZ2U9cC5nYXVnZS5heGlzLnJhbmdlLG8uX2lkPSJ4YW5ndWxhcmF4aXMiLG8udGlja2xhYmVsb3ZlcmZsb3c9ImFsbG93IixvLnNldFNjYWxlKCk7dmFyIEk9ZnVuY3Rpb24odCl7cmV0dXJuKG8ucmFuZ2VbMF0tdC54KS8oby5yYW5nZVsxXS1vLnJhbmdlWzBdKSpNYXRoLlBJK01hdGguUEl9LE89e30sej1kLm1ha2VMYWJlbEZucyhvLDApLmxhYmVsU3RhbmRvZmY7Ty54Rm49ZnVuY3Rpb24odCl7dmFyIGU9SSh0KTtyZXR1cm4gTWF0aC5jb3MoZSkqen0sTy55Rm49ZnVuY3Rpb24odCl7dmFyIGU9SSh0KSxyPU1hdGguc2luKGUpPjA/LjI6MTtyZXR1cm4tTWF0aC5zaW4oZSkqKHordC5mb250U2l6ZSpyKStNYXRoLmFicyhNYXRoLmNvcyhlKSkqKHQuZm9udFNpemUqdSl9LE8uYW5jaG9yRm49ZnVuY3Rpb24odCl7dmFyIGU9SSh0KSxyPU1hdGguY29zKGUpO3JldHVybiBNYXRoLmFicyhyKTwuMT8ibWlkZGxlIjpyPjA/InN0YXJ0IjoiZW5kIn0sTy5oZWlnaHRGbj1mdW5jdGlvbih0LGUscil7dmFyIG49SSh0KTtyZXR1cm4tLjUqKDErTWF0aC5zaW4obikpKnJ9O3ZhciBEPWZ1bmN0aW9uKHQpe3JldHVybiBsKGJbMF0rZypNYXRoLmNvcyh0KSxiWzFdLWcqTWF0aC5zaW4odCkpfTtmPWZ1bmN0aW9uKHQpe3JldHVybiBEKEkodCkpfTtpZihzPWQuY2FsY1RpY2tzKG8pLGg9ZC5nZXRUaWNrU2lnbnMobylbMl0sby52aXNpYmxlKXtoPSJpbnNpZGUiPT09by50aWNrcz8tMToxO3ZhciBSPShvLmxpbmV3aWR0aHx8MSkvMjtkLmRyYXdUaWNrcyh0LG8se3ZhbHM6cyxsYXllcjpBLHBhdGg6Ik0iK2gqUisiLDBoIitoKm8udGlja2xlbix0cmFuc0ZuOmZ1bmN0aW9uKHQpe3ZhciBlPUkodCk7cmV0dXJuIEQoZSkrInJvdGF0ZSgiKy1jKGUpKyIpIn19KSxkLmRyYXdMYWJlbHModCxvLHt2YWxzOnMsbGF5ZXI6QSx0cmFuc0ZuOmYsbGFiZWxGbnM6T30pfXZhciBGPVt5XS5jb25jYXQocC5nYXVnZS5zdGVwcyksQj1fLnNlbGVjdEFsbCgiZy5iZy1hcmMiKS5kYXRhKEYpO0IuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJiZy1hcmMiLCEwKS5hcHBlbmQoInBhdGgiKSxCLnNlbGVjdCgicGF0aCIpLmNhbGwoUCkuY2FsbChUKSxCLmV4aXQoKS5yZW1vdmUoKTt2YXIgTj1DKHAuZ2F1Z2UuYmFyLnRoaWNrbmVzcyksaj1fLnNlbGVjdEFsbCgiZy52YWx1ZS1hcmMiKS5kYXRhKFtwLmdhdWdlLmJhcl0pO2ouZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ2YWx1ZS1hcmMiLCEwKS5hcHBlbmQoInBhdGgiKTt2YXIgVT1qLnNlbGVjdCgicGF0aCIpO3coTSk/KFUudHJhbnNpdGlvbigpLmR1cmF0aW9uKE0uZHVyYXRpb24pLmVhc2UoTS5lYXNpbmcpLmVhY2goImVuZCIsKGZ1bmN0aW9uKCl7UyYmUygpfSkpLmVhY2goImludGVycnVwdCIsKGZ1bmN0aW9uKCl7UyYmUygpfSkpLmF0dHJUd2VlbigiZCIsKFY9TixIPUwoclswXS5sYXN0WSkscT1MKHJbMF0ueSksZnVuY3Rpb24oKXt2YXIgdD1pKEgscSk7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybiBWLmVuZEFuZ2xlKHQoZSkpKCl9fSkpLHAuX2xhc3RWYWx1ZT1yWzBdLnkpOlUuYXR0cigiZCIsIm51bWJlciI9PXR5cGVvZiByWzBdLnk/Ti5lbmRBbmdsZShMKHJbMF0ueSkpOiJNMCwwWiIpO3ZhciBWLEgscTtVLmNhbGwoVCksai5leGl0KCkucmVtb3ZlKCksRj1bXTt2YXIgRz1wLmdhdWdlLnRocmVzaG9sZC52YWx1ZTsoR3x8MD09PUcpJiZGLnB1c2goe3JhbmdlOltHLEddLGNvbG9yOnAuZ2F1Z2UudGhyZXNob2xkLmNvbG9yLGxpbmU6e2NvbG9yOnAuZ2F1Z2UudGhyZXNob2xkLmxpbmUuY29sb3Isd2lkdGg6cC5nYXVnZS50aHJlc2hvbGQubGluZS53aWR0aH0sdGhpY2tuZXNzOnAuZ2F1Z2UudGhyZXNob2xkLnRoaWNrbmVzc30pO3ZhciBZPV8uc2VsZWN0QWxsKCJnLnRocmVzaG9sZC1hcmMiKS5kYXRhKEYpO1kuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0aHJlc2hvbGQtYXJjIiwhMCkuYXBwZW5kKCJwYXRoIiksWS5zZWxlY3QoInBhdGgiKS5jYWxsKFApLmNhbGwoVCksWS5leGl0KCkucmVtb3ZlKCk7dmFyIFc9Xy5zZWxlY3RBbGwoImcuZ2F1Z2Utb3V0bGluZSIpLmRhdGEoW3hdKTtXLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiZ2F1Z2Utb3V0bGluZSIsITApLmFwcGVuZCgicGF0aCIpLFcuc2VsZWN0KCJwYXRoIikuY2FsbChQKS5jYWxsKFQpLFcuZXhpdCgpLnJlbW92ZSgpfSh0LDAsZSx7cmFkaXVzOlUsaW5uZXJSYWRpdXM6VixnYXVnZTpZLGxheWVyOlcsc2l6ZTpCLGdhdWdlQmc6QyxnYXVnZU91dGxpbmU6UCx0cmFuc2l0aW9uT3B0czpyLG9uQ29tcGxldGU6Z30pO3ZhciBYPU8uc2VsZWN0QWxsKCJnLmJ1bGxldCIpLmRhdGEoUj9lOltdKTtYLmV4aXQoKS5yZW1vdmUoKTt2YXIgWj1PLnNlbGVjdEFsbCgiZy5idWxsZXRheGlzIikuZGF0YShSP2U6W10pO1ouZXhpdCgpLnJlbW92ZSgpLFImJmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbyxzLGMsdT1yWzBdLnRyYWNlLGY9bi5nYXVnZSxwPW4ubGF5ZXIsbT1uLmdhdWdlQmcsZz1uLmdhdWdlT3V0bGluZSx2PW4uc2l6ZSx4PXUuZG9tYWluLGI9bi50cmFuc2l0aW9uT3B0cyxfPW4ub25Db21wbGV0ZTtmLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgiYnVsbGV0IiwhMCksZi5hdHRyKCJ0cmFuc2Zvcm0iLGwodi5sLHYudCkpLHAuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJidWxsZXRheGlzIiwhMCkuY2xhc3NlZCgiY3Jpc3AiLCEwKSxwLnNlbGVjdEFsbCgiZy54YnVsbGV0YXhpc3RpY2sscGF0aCx0ZXh0IikucmVtb3ZlKCk7dmFyIEE9di5oLE09dS5nYXVnZS5iYXIudGhpY2tuZXNzKkEsUz14LnhbMF0sRT14LnhbMF0rKHgueFsxXS14LnhbMF0pKih1Ll9oYXNOdW1iZXJ8fHUuX2hhc0RlbHRhPzEtaC5idWxsZXROdW1iZXJEb21haW5TaXplOjEpOyhpPWsodCx1LmdhdWdlLmF4aXMpKS5faWQ9InhidWxsZXRheGlzIixpLmRvbWFpbj1bUyxFXSxpLnNldFNjYWxlKCksYT1kLmNhbGNUaWNrcyhpKSxvPWQubWFrZVRyYW5zVGlja0ZuKGkpLHM9ZC5nZXRUaWNrU2lnbnMoaSlbMl0sYz12LnQrdi5oLGkudmlzaWJsZSYmKGQuZHJhd1RpY2tzKHQsaSx7dmFsczoiaW5zaWRlIj09PWkudGlja3M/ZC5jbGlwRW5kcyhpLGEpOmEsbGF5ZXI6cCxwYXRoOmQubWFrZVRpY2tQYXRoKGksYyxzKSx0cmFuc0ZuOm99KSxkLmRyYXdMYWJlbHModCxpLHt2YWxzOmEsbGF5ZXI6cCx0cmFuc0ZuOm8sbGFiZWxGbnM6ZC5tYWtlTGFiZWxGbnMoaSxjKX0pKTtmdW5jdGlvbiBMKHQpe3QuYXR0cigid2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoMCxpLmMycCh0LnJhbmdlWzFdKS1pLmMycCh0LnJhbmdlWzBdKSl9KSkuYXR0cigieCIsKGZ1bmN0aW9uKHQpe3JldHVybiBpLmMycCh0LnJhbmdlWzBdKX0pKS5hdHRyKCJ5IiwoZnVuY3Rpb24odCl7cmV0dXJuLjUqKDEtdC50aGlja25lc3MpKkF9KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQudGhpY2tuZXNzKkF9KSl9dmFyIEM9W21dLmNvbmNhdCh1LmdhdWdlLnN0ZXBzKSxQPWYuc2VsZWN0QWxsKCJnLmJnLWJ1bGxldCIpLmRhdGEoQyk7UC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoImJnLWJ1bGxldCIsITApLmFwcGVuZCgicmVjdCIpLFAuc2VsZWN0KCJyZWN0IikuY2FsbChMKS5jYWxsKFQpLFAuZXhpdCgpLnJlbW92ZSgpO3ZhciBJPWYuc2VsZWN0QWxsKCJnLnZhbHVlLWJ1bGxldCIpLmRhdGEoW3UuZ2F1Z2UuYmFyXSk7SS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInZhbHVlLWJ1bGxldCIsITApLmFwcGVuZCgicmVjdCIpLEkuc2VsZWN0KCJyZWN0IikuYXR0cigiaGVpZ2h0IixNKS5hdHRyKCJ5IiwoQS1NKS8yKS5jYWxsKFQpLHcoYik/SS5zZWxlY3QoInJlY3QiKS50cmFuc2l0aW9uKCkuZHVyYXRpb24oYi5kdXJhdGlvbikuZWFzZShiLmVhc2luZykuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtfJiZfKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXtfJiZfKCl9KSkuYXR0cigid2lkdGgiLE1hdGgubWF4KDAsaS5jMnAoTWF0aC5taW4odS5nYXVnZS5heGlzLnJhbmdlWzFdLHJbMF0ueSkpKSk6SS5zZWxlY3QoInJlY3QiKS5hdHRyKCJ3aWR0aCIsIm51bWJlciI9PXR5cGVvZiByWzBdLnk/TWF0aC5tYXgoMCxpLmMycChNYXRoLm1pbih1LmdhdWdlLmF4aXMucmFuZ2VbMV0sclswXS55KSkpOjApO0kuZXhpdCgpLnJlbW92ZSgpO3ZhciBPPXIuZmlsdGVyKChmdW5jdGlvbigpe3JldHVybiB1LmdhdWdlLnRocmVzaG9sZC52YWx1ZXx8MD09PXUuZ2F1Z2UudGhyZXNob2xkLnZhbHVlfSkpLHo9Zi5zZWxlY3RBbGwoImcudGhyZXNob2xkLWJ1bGxldCIpLmRhdGEoTyk7ei5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRocmVzaG9sZC1idWxsZXQiLCEwKS5hcHBlbmQoImxpbmUiKSx6LnNlbGVjdCgibGluZSIpLmF0dHIoIngxIixpLmMycCh1LmdhdWdlLnRocmVzaG9sZC52YWx1ZSkpLmF0dHIoIngyIixpLmMycCh1LmdhdWdlLnRocmVzaG9sZC52YWx1ZSkpLmF0dHIoInkxIiwoMS11LmdhdWdlLnRocmVzaG9sZC50aGlja25lc3MpLzIqQSkuYXR0cigieTIiLCgxLSgxLXUuZ2F1Z2UudGhyZXNob2xkLnRoaWNrbmVzcykvMikqQSkuY2FsbCh5LnN0cm9rZSx1LmdhdWdlLnRocmVzaG9sZC5saW5lLmNvbG9yKS5zdHlsZSgic3Ryb2tlLXdpZHRoIix1LmdhdWdlLnRocmVzaG9sZC5saW5lLndpZHRoKSx6LmV4aXQoKS5yZW1vdmUoKTt2YXIgRD1mLnNlbGVjdEFsbCgiZy5nYXVnZS1vdXRsaW5lIikuZGF0YShbZ10pO0QuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJnYXVnZS1vdXRsaW5lIiwhMCkuYXBwZW5kKCJyZWN0IiksRC5zZWxlY3QoInJlY3QiKS5jYWxsKEwpLmNhbGwoVCksRC5leGl0KCkucmVtb3ZlKCl9KHQsMCxlLHtnYXVnZTpYLGxheWVyOlosc2l6ZTpCLGdhdWdlQmc6QyxnYXVnZU91dGxpbmU6UCx0cmFuc2l0aW9uT3B0czpyLG9uQ29tcGxldGU6Z30pO3ZhciBKPU8uc2VsZWN0QWxsKCJ0ZXh0LnRpdGxlIikuZGF0YShlKTtKLmV4aXQoKS5yZW1vdmUoKSxKLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZCgidGl0bGUiLCEwKSxKLmF0dHIoInRleHQtYW5jaG9yIiwoZnVuY3Rpb24oKXtyZXR1cm4gUj94LnJpZ2h0OnhbSS50aXRsZS5hbGlnbl19KSkudGV4dChJLnRpdGxlLnRleHQpLmNhbGwoZi5mb250LEkudGl0bGUuZm9udCkuY2FsbChwLmNvbnZlcnRUb1RzcGFucyx0KSxKLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKCl7dmFyIHQsZT1CLmwrQi53KmJbSS50aXRsZS5hbGlnbl0scj1oLnRpdGxlUGFkZGluZyxuPWYuYkJveChKLm5vZGUoKSk7aWYoeil7aWYoRClpZihJLmdhdWdlLmF4aXMudmlzaWJsZSl0PWYuYkJveChXLm5vZGUoKSkudG9wLXItbi5ib3R0b207ZWxzZSB0PUIudCtCLmgvMi1VLzItbi5ib3R0b20tcjtSJiYodD1FLShuLnRvcCtuLmJvdHRvbSkvMixlPUIubC1oLmJ1bGxldFBhZGRpbmcqQi53KX1lbHNlIHQ9SS5fbnVtYmVyc1RvcC1yLW4uYm90dG9tO3JldHVybiBsKGUsdCl9KSl9KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiOjc0NCwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19kZWZhdWx0cyI6ODI5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiOjg0MiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL3Bvc2l0aW9uX2RlZmF1bHRzIjo4NDUsIi4vY29uc3RhbnRzIjoxMTIzLCJAcGxvdGx5L2QzIjo1OCwiZDMtaW50ZXJwb2xhdGUiOjE2NH1dLDExMjc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uL21lc2gzZC9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxjPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDt2YXIgdT1lLmV4cG9ydHM9YyhsKHt4Ont2YWxUeXBlOiJkYXRhX2FycmF5In0seTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHo6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx2YWx1ZTp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LGlzb21pbjp7dmFsVHlwZToibnVtYmVyIn0saXNvbWF4Ont2YWxUeXBlOiJudW1iZXIifSxzdXJmYWNlOntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxjb3VudDp7dmFsVHlwZToiaW50ZWdlciIsZGZsdDoyLG1pbjoxfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0scGF0dGVybjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsiQSIsIkIiLCJDIiwiRCIsIkUiXSxleHRyYXM6WyJhbGwiLCJvZGQiLCJldmVuIl0sZGZsdDoiYWxsIn19LHNwYWNlZnJhbWU6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMTV9fSxzbGljZXM6e3g6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGxvY2F0aW9uczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sZmlsbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9fSx5OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsb2NhdGlvbnM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sejp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sbG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX19fSxjYXBzOnt4OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwfSxmaWxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX19LHk6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sejp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMH0sZmlsbDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9fX0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGVtcGxhdGU6YSgpLHhob3ZlcmZvcm1hdDppKCJ4IikseWhvdmVyZm9ybWF0OmkoInkiKSx6aG92ZXJmb3JtYXQ6aSgieiIpLHZhbHVlaG92ZXJmb3JtYXQ6aSgidmFsdWUiLDEpLHNob3dsZWdlbmQ6bCh7fSxzLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0sbigiIix7Y29sb3JBdHRyOiJgdmFsdWVgIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkse29wYWNpdHk6by5vcGFjaXR5LGxpZ2h0cG9zaXRpb246by5saWdodHBvc2l0aW9uLGxpZ2h0aW5nOm8ubGlnaHRpbmcsZmxhdHNoYWRpbmc6by5mbGF0c2hhZGluZyxjb250b3VyOm8uY29udG91cixob3ZlcmluZm86bCh7fSxzLmhvdmVyaW5mbyl9KSwiY2FsYyIsIm5lc3RlZCIpO3UuZmxhdHNoYWRpbmcuZGZsdD0hMCx1LmxpZ2h0aW5nLmZhY2Vub3JtYWxzZXBzaWxvbi5kZmx0PTAsdS54LmVkaXRUeXBlPXUueS5lZGl0VHlwZT11LnouZWRpdFR5cGU9dS52YWx1ZS5lZGl0VHlwZT0iY2FsYytjbGVhckF4aXNUeXBlcyIsdS50cmFuc2Zvcm1zPXZvaWQgMH0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6ODIzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6ODMwLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL21lc2gzZC9hdHRyaWJ1dGVzIjoxMTMyfV0sMTEyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLGk9dCgiLi4vc3RyZWFtdHViZS9jYWxjIikucHJvY2Vzc0dyaWQsYT10KCIuLi9zdHJlYW10dWJlL2NhbGMiKS5maWx0ZXI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZS5fbGVuPU1hdGgubWluKGUueC5sZW5ndGgsZS55Lmxlbmd0aCxlLnoubGVuZ3RoLGUudmFsdWUubGVuZ3RoKSxlLl94PWEoZS54LGUuX2xlbiksZS5feT1hKGUueSxlLl9sZW4pLGUuX3o9YShlLnosZS5fbGVuKSxlLl92YWx1ZT1hKGUudmFsdWUsZS5fbGVuKTt2YXIgcj1pKGUpO2UuX2dyaWRGaWxsPXIuZmlsbCxlLl9Ycz1yLlhzLGUuX1lzPXIuWXMsZS5fWnM9ci5acyxlLl9sZW49ci5sZW47Zm9yKHZhciBvPTEvMCxzPS0xLzAsbD0wO2w8ZS5fbGVuO2wrKyl7dmFyIGM9ZS5fdmFsdWVbbF07bz1NYXRoLm1pbihvLGMpLHM9TWF0aC5tYXgocyxjKX1lLl9taW5WYWx1ZXM9byxlLl9tYXhWYWx1ZXM9cyxlLl92TWluPXZvaWQgMD09PWUuaXNvbWlufHxudWxsPT09ZS5pc29taW4/bzplLmlzb21pbixlLl92TWF4PXZvaWQgMD09PWUuaXNvbWF4fHxudWxsPT09ZS5pc29taW4/czplLmlzb21heCxuKHQsZSx7dmFsczpbZS5fdk1pbixlLl92TWF4XSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoiYyJ9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjY0NywiLi4vc3RyZWFtdHViZS9jYWxjIjoxMjk5fV0sMTEyOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1tZXNoM2QiKSxpPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUsYT10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyxzPXQoIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyIpLGw9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9ZS5sZW5ndGgtMTtyPjA7ci0tKXt2YXIgbj1NYXRoLm1pbihlW3JdLGVbci0xXSksaT1NYXRoLm1heChlW3JdLGVbci0xXSk7aWYoaT5uJiZuPHQmJnQ8PWkpcmV0dXJue2lkOnIsZGlzdFJhdGlvOihpLXQpLyhpLW4pfX1yZXR1cm57aWQ6MCxkaXN0UmF0aW86MH19O2Z1bmN0aW9uIGModCxlLHIpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1yLHRoaXMubWVzaD1lLHRoaXMubmFtZT0iIix0aGlzLmRhdGE9bnVsbCx0aGlzLnNob3dDb250b3VyPSExfXZhciB1PWMucHJvdG90eXBlO3UuaGFuZGxlUGljaz1mdW5jdGlvbih0KXtpZih0Lm9iamVjdD09PXRoaXMubWVzaCl7dmFyIGU9dC5kYXRhLmluZGV4LHI9dGhpcy5kYXRhLl9tZXNoWFtlXSxuPXRoaXMuZGF0YS5fbWVzaFlbZV0saT10aGlzLmRhdGEuX21lc2haW2VdLGE9dGhpcy5kYXRhLl9Zcy5sZW5ndGgsbz10aGlzLmRhdGEuX1pzLmxlbmd0aCxzPWwocix0aGlzLmRhdGEuX1hzKS5pZCxjPWwobix0aGlzLmRhdGEuX1lzKS5pZCx1PWwoaSx0aGlzLmRhdGEuX1pzKS5pZCxmPXQuaW5kZXg9dStvKmMrbyphKnM7dC50cmFjZUNvb3JkaW5hdGU9W3RoaXMuZGF0YS5fbWVzaFhbZl0sdGhpcy5kYXRhLl9tZXNoWVtmXSx0aGlzLmRhdGEuX21lc2haW2ZdLHRoaXMuZGF0YS5fdmFsdWVbZl1dO3ZhciBoPXRoaXMuZGF0YS5ob3ZlcnRleHR8fHRoaXMuZGF0YS50ZXh0O3JldHVybiBBcnJheS5pc0FycmF5KGgpJiZ2b2lkIDAhPT1oW2ZdP3QudGV4dExhYmVsPWhbZl06aCYmKHQudGV4dExhYmVsPWgpLCEwfX0sdS51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGU9dGhpcy5zY2VuZSxyPWUuZnVsbFNjZW5lTGF5b3V0O2Z1bmN0aW9uIG4odCxlLHIsbil7cmV0dXJuIGUubWFwKChmdW5jdGlvbihlKXtyZXR1cm4gdC5kMmwoZSwwLG4pKnJ9KSl9dGhpcy5kYXRhPWgodCk7dmFyIGw9e3Bvc2l0aW9uczpzKG4oci54YXhpcyx0Ll9tZXNoWCxlLmRhdGFTY2FsZVswXSx0LnhjYWxlbmRhciksbihyLnlheGlzLHQuX21lc2hZLGUuZGF0YVNjYWxlWzFdLHQueWNhbGVuZGFyKSxuKHIuemF4aXMsdC5fbWVzaFosZS5kYXRhU2NhbGVbMl0sdC56Y2FsZW5kYXIpKSxjZWxsczpzKHQuX21lc2hJLHQuX21lc2hKLHQuX21lc2hLKSxsaWdodFBvc2l0aW9uOlt0LmxpZ2h0cG9zaXRpb24ueCx0LmxpZ2h0cG9zaXRpb24ueSx0LmxpZ2h0cG9zaXRpb24uel0sYW1iaWVudDp0LmxpZ2h0aW5nLmFtYmllbnQsZGlmZnVzZTp0LmxpZ2h0aW5nLmRpZmZ1c2Usc3BlY3VsYXI6dC5saWdodGluZy5zcGVjdWxhcixyb3VnaG5lc3M6dC5saWdodGluZy5yb3VnaG5lc3MsZnJlc25lbDp0LmxpZ2h0aW5nLmZyZXNuZWwsdmVydGV4Tm9ybWFsc0Vwc2lsb246dC5saWdodGluZy52ZXJ0ZXhub3JtYWxzZXBzaWxvbixmYWNlTm9ybWFsc0Vwc2lsb246dC5saWdodGluZy5mYWNlbm9ybWFsc2Vwc2lsb24sb3BhY2l0eTp0Lm9wYWNpdHksY29udG91ckVuYWJsZTp0LmNvbnRvdXIuc2hvdyxjb250b3VyQ29sb3I6YSh0LmNvbnRvdXIuY29sb3IpLnNsaWNlKDAsMyksY29udG91cldpZHRoOnQuY29udG91ci53aWR0aCx1c2VGYWNldE5vcm1hbHM6dC5mbGF0c2hhZGluZ30sYz1vKHQpO2wudmVydGV4SW50ZW5zaXR5PXQuX21lc2hJbnRlbnNpdHksbC52ZXJ0ZXhJbnRlbnNpdHlCb3VuZHM9W2MubWluLGMubWF4XSxsLmNvbG9ybWFwPWkodCksdGhpcy5tZXNoLnVwZGF0ZShsKX0sdS5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMubWVzaCksdGhpcy5tZXNoLmRpc3Bvc2UoKX07dmFyIGY9WyJ4eXoiLCJ4enkiLCJ5eHoiLCJ5engiLCJ6eHkiLCJ6eXgiXTtmdW5jdGlvbiBoKHQpe3QuX21lc2hJPVtdLHQuX21lc2hKPVtdLHQuX21lc2hLPVtdO3ZhciBlLHIsbixpLGEsbyxzLGM9dC5zdXJmYWNlLnNob3csdT10LnNwYWNlZnJhbWUuc2hvdyxoPXQuc3VyZmFjZS5maWxsLHA9dC5zcGFjZWZyYW1lLmZpbGwsZD0hMSxtPSExLGc9MCx2PXQuX1hzLHk9dC5fWXMseD10Ll9acyxiPXYubGVuZ3RoLF89eS5sZW5ndGgsdz14Lmxlbmd0aCxUPWYuaW5kZXhPZih0Ll9ncmlkRmlsbC5yZXBsYWNlKC8tL2csIiIpLnJlcGxhY2UoL1wrL2csIiIpKSxrPWZ1bmN0aW9uKHQsZSxyKXtzd2l0Y2goVCl7Y2FzZSA1OnJldHVybiByK3cqZSt3Kl8qdDtjYXNlIDQ6cmV0dXJuIHIrdyp0K3cqYiplO2Nhc2UgMzpyZXR1cm4gZStfKnIrXyp3KnQ7Y2FzZSAyOnJldHVybiBlK18qdCtfKmIqcjtjYXNlIDE6cmV0dXJuIHQrYipyK2IqdyplO2RlZmF1bHQ6cmV0dXJuIHQrYiplK2IqXypyfX0sQT10Ll9taW5WYWx1ZXMsTT10Ll9tYXhWYWx1ZXMsUz10Ll92TWluLEU9dC5fdk1heDtmdW5jdGlvbiBMKHQsZSxzKXtmb3IodmFyIGw9by5sZW5ndGgsYz1yO2M8bDtjKyspaWYodD09PW5bY10mJmU9PT1pW2NdJiZzPT09YVtjXSlyZXR1cm4gYztyZXR1cm4tMX1mdW5jdGlvbiBDKCl7cj1lfWZ1bmN0aW9uIFAoKXtuPVtdLGk9W10sYT1bXSxvPVtdLGU9MCxDKCl9ZnVuY3Rpb24gSSh0LHIscyxsKXtyZXR1cm4gbi5wdXNoKHQpLGkucHVzaChyKSxhLnB1c2gocyksby5wdXNoKGwpLCsrZS0xfWZ1bmN0aW9uIE8odCxlLHIpe2Zvcih2YXIgbj1bXSxpPTA7aTx0Lmxlbmd0aDtpKyspbltpXT10W2ldKigxLXIpK3IqZVtpXTtyZXR1cm4gbn1mdW5jdGlvbiB6KHQpe3M9dH1mdW5jdGlvbiBEKHQsZSl7cmV0dXJuImFsbCI9PT10fHxudWxsPT09dHx8dC5pbmRleE9mKGUpPi0xfWZ1bmN0aW9uIFIodCxlKXtyZXR1cm4gbnVsbD09PXQ/ZTp0fWZ1bmN0aW9uIEYoZSxyLG4pe0MoKTt2YXIgaSxhLG8sbD1bcl0sYz1bbl07aWYocz49MSlsPVtyXSxjPVtuXTtlbHNlIGlmKHM+MCl7dmFyIHU9ZnVuY3Rpb24odCxlKXt2YXIgcj10WzBdLG49dFsxXSxpPXRbMl0sYT1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBuPVtdLGk9MDtpPHQubGVuZ3RoO2krKyluW2ldPSh0W2ldK2VbaV0rcltpXSkvMztyZXR1cm4gbn0ocixuLGkpLG89TWF0aC5zcXJ0KDEtcyksbD1PKGEscixvKSxjPU8oYSxuLG8pLHU9TyhhLGksbyksZj1lWzBdLGg9ZVsxXSxwPWVbMl07cmV0dXJue3h5enY6W1tyLG4sY10sW2MsbCxyXSxbbixpLHVdLFt1LGMsbl0sW2kscixsXSxbbCx1LGldXSxhYmM6W1tmLGgsLTFdLFstMSwtMSxmXSxbaCxwLC0xXSxbLTEsLTEsaF0sW3AsZiwtMV0sWy0xLC0xLHBdXX19KHIsbik7bD11Lnh5enYsYz11LmFiY31mb3IodmFyIGY9MDtmPGwubGVuZ3RoO2YrKyl7cj1sW2ZdLG49Y1tmXTtmb3IodmFyIGg9W10scD0wO3A8MztwKyspe3ZhciBkPXJbcF1bMF0sbT1yW3BdWzFdLHY9cltwXVsyXSx5PXJbcF1bM10seD1uW3BdPi0xP25bcF06TChkLG0sdik7aFtwXT14Pi0xP3g6SShkLG0sdixSKGUseSkpfWk9aFswXSxhPWhbMV0sbz1oWzJdLHQuX21lc2hJLnB1c2goaSksdC5fbWVzaEoucHVzaChhKSx0Ll9tZXNoSy5wdXNoKG8pLCsrZ319ZnVuY3Rpb24gQih0LGUscixuKXt2YXIgaT10WzNdO2k8ciYmKGk9ciksaT5uJiYoaT1uKTtmb3IodmFyIGE9KHRbM10taSkvKHRbM10tZVszXSsxZS05KSxvPVtdLHM9MDtzPDQ7cysrKW9bc109KDEtYSkqdFtzXSthKmVbc107cmV0dXJuIG99ZnVuY3Rpb24gTih0LGUscil7cmV0dXJuIHQ+PWUmJnQ8PXJ9ZnVuY3Rpb24gaih0KXt2YXIgZT0uMDAxKihFLVMpO3JldHVybiB0Pj1TLWUmJnQ8PUUrZX1mdW5jdGlvbiBVKGUpe2Zvcih2YXIgcj1bXSxuPTA7bjw0O24rKyl7dmFyIGk9ZVtuXTtyLnB1c2goW3QuX3hbaV0sdC5feVtpXSx0Ll96W2ldLHQuX3ZhbHVlW2ldXSl9cmV0dXJuIHJ9ZnVuY3Rpb24gVih0LGUscixuLGksYSl7YXx8KGE9MSkscj1bLTEsLTEsLTFdO3ZhciBvPSExLHM9W04oZVswXVszXSxuLGkpLE4oZVsxXVszXSxuLGkpLE4oZVsyXVszXSxuLGkpXTtpZighc1swXSYmIXNbMV0mJiFzWzJdKXJldHVybiExO3ZhciBsPWZ1bmN0aW9uKHQsZSxyKXtyZXR1cm4gaihlWzBdWzNdKSYmaihlWzFdWzNdKSYmaihlWzJdWzNdKT8oRih0LGUsciksITApOmE8MyYmVih0LGUscixTLEUsKythKX07aWYoc1swXSYmc1sxXSYmc1syXSlyZXR1cm4gbCh0LGUscil8fG87dmFyIGM9ITE7cmV0dXJuW1swLDEsMl0sWzIsMCwxXSxbMSwyLDBdXS5mb3JFYWNoKChmdW5jdGlvbihhKXtpZihzW2FbMF1dJiZzW2FbMV1dJiYhc1thWzJdXSl7dmFyIHU9ZVthWzBdXSxmPWVbYVsxXV0saD1lW2FbMl1dLHA9QihoLHUsbixpKSxkPUIoaCxmLG4saSk7bz1sKHQsW2QscCx1XSxbLTEsLTEsclthWzBdXV0pfHxvLG89bCh0LFt1LGYsZF0sW3JbYVswXV0sclthWzFdXSwtMV0pfHxvLGM9ITB9fSkpLGN8fFtbMCwxLDJdLFsxLDIsMF0sWzIsMCwxXV0uZm9yRWFjaCgoZnVuY3Rpb24oYSl7aWYoc1thWzBdXSYmIXNbYVsxXV0mJiFzW2FbMl1dKXt2YXIgdT1lW2FbMF1dLGY9ZVthWzFdXSxoPWVbYVsyXV0scD1CKGYsdSxuLGkpLGQ9QihoLHUsbixpKTtvPWwodCxbZCxwLHVdLFstMSwtMSxyW2FbMF1dXSl8fG8sYz0hMH19KSksb31mdW5jdGlvbiBIKHQsZSxyLG4pe3ZhciBpPSExLGE9VShlKSxvPVtOKGFbMF1bM10scixuKSxOKGFbMV1bM10scixuKSxOKGFbMl1bM10scixuKSxOKGFbM11bM10scixuKV07aWYoIShvWzBdfHxvWzFdfHxvWzJdfHxvWzNdKSlyZXR1cm4gaTtpZihvWzBdJiZvWzFdJiZvWzJdJiZvWzNdKXJldHVybiBtJiYoaT1mdW5jdGlvbih0LGUscil7dmFyIG49ZnVuY3Rpb24obixpLGEpe0YodCxbZVtuXSxlW2ldLGVbYV1dLFtyW25dLHJbaV0sclthXV0pfTtuKDAsMSwyKSxuKDMsMCwxKSxuKDIsMywwKSxuKDEsMiwzKX0odCxhLGUpfHxpKSxpO3ZhciBzPSExO3JldHVybltbMCwxLDIsM10sWzMsMCwxLDJdLFsyLDMsMCwxXSxbMSwyLDMsMF1dLmZvckVhY2goKGZ1bmN0aW9uKGwpe2lmKG9bbFswXV0mJm9bbFsxXV0mJm9bbFsyXV0mJiFvW2xbM11dKXt2YXIgYz1hW2xbMF1dLHU9YVtsWzFdXSxmPWFbbFsyXV0saD1hW2xbM11dO2lmKG0paT1GKHQsW2MsdSxmXSxbZVtsWzBdXSxlW2xbMV1dLGVbbFsyXV1dKXx8aTtlbHNle3ZhciBwPUIoaCxjLHIsbiksZD1CKGgsdSxyLG4pLGc9QihoLGYscixuKTtpPUYobnVsbCxbcCxkLGddLFstMSwtMSwtMV0pfHxpfXM9ITB9fSkpLHM/aTooW1swLDEsMiwzXSxbMSwyLDMsMF0sWzIsMywwLDFdLFszLDAsMSwyXSxbMCwyLDMsMV0sWzEsMywyLDBdXS5mb3JFYWNoKChmdW5jdGlvbihsKXtpZihvW2xbMF1dJiZvW2xbMV1dJiYhb1tsWzJdXSYmIW9bbFszXV0pe3ZhciBjPWFbbFswXV0sdT1hW2xbMV1dLGY9YVtsWzJdXSxoPWFbbFszXV0scD1CKGYsYyxyLG4pLGQ9QihmLHUscixuKSxnPUIoaCx1LHIsbiksdj1CKGgsYyxyLG4pO20/KGk9Rih0LFtjLHYscF0sW2VbbFswXV0sLTEsLTFdKXx8aSxpPUYodCxbdSxkLGddLFtlW2xbMV1dLC0xLC0xXSl8fGkpOmk9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPWZ1bmN0aW9uKG4saSxhKXtGKHQsW2Vbbl0sZVtpXSxlW2FdXSxbcltuXSxyW2ldLHJbYV1dKX07bigwLDEsMiksbigyLDMsMCl9KG51bGwsW3AsZCxnLHZdLFstMSwtMSwtMSwtMV0pfHxpLHM9ITB9fSkpLHN8fFtbMCwxLDIsM10sWzEsMiwzLDBdLFsyLDMsMCwxXSxbMywwLDEsMl1dLmZvckVhY2goKGZ1bmN0aW9uKGwpe2lmKG9bbFswXV0mJiFvW2xbMV1dJiYhb1tsWzJdXSYmIW9bbFszXV0pe3ZhciBjPWFbbFswXV0sdT1hW2xbMV1dLGY9YVtsWzJdXSxoPWFbbFszXV0scD1CKHUsYyxyLG4pLGQ9QihmLGMscixuKSxnPUIoaCxjLHIsbik7bT8oaT1GKHQsW2MscCxkXSxbZVtsWzBdXSwtMSwtMV0pfHxpLGk9Rih0LFtjLGQsZ10sW2VbbFswXV0sLTEsLTFdKXx8aSxpPUYodCxbYyxnLHBdLFtlW2xbMF1dLC0xLC0xXSl8fGkpOmk9RihudWxsLFtwLGQsZ10sWy0xLC0xLC0xXSl8fGkscz0hMH19KSksaSl9ZnVuY3Rpb24gcSh0LGUscixuLGksYSxvLHMsbCxjLHUpe3ZhciBmPSExO3JldHVybiBkJiYoRCh0LCJBIikmJihmPUgobnVsbCxbZSxyLG4sYV0sYyx1KXx8ZiksRCh0LCJCIikmJihmPUgobnVsbCxbcixuLGksbF0sYyx1KXx8ZiksRCh0LCJDIikmJihmPUgobnVsbCxbcixhLG8sbF0sYyx1KXx8ZiksRCh0LCJEIikmJihmPUgobnVsbCxbbixhLHMsbF0sYyx1KXx8ZiksRCh0LCJFIikmJihmPUgobnVsbCxbcixuLGEsbF0sYyx1KXx8ZikpLG0mJihmPUgodCxbcixuLGEsbF0sYyx1KXx8ZiksZn1mdW5jdGlvbiBHKHQsZSxyLG4saSxhLG8scyl7cmV0dXJuWyEwPT09c1swXXx8Vih0LFUoW2UscixuXSksW2UscixuXSxhLG8pLCEwPT09c1sxXXx8Vih0LFUoW24saSxlXSksW24saSxlXSxhLG8pXX1mdW5jdGlvbiBZKHQsZSxyLG4saSxhLG8scyxsKXtyZXR1cm4gcz9HKHQsZSxyLGksbixhLG8sbCk6Ryh0LHIsaSxuLGUsYSxvLGwpfWZ1bmN0aW9uIFcodCxlLHIsbixpLGEsbyl7dmFyIHMsbCxjLHUsZj0hMSxoPWZ1bmN0aW9uKCl7Zj1WKHQsW3MsbCxjXSxbLTEsLTEsLTFdLGksYSl8fGYsZj1WKHQsW2MsdSxzXSxbLTEsLTEsLTFdLGksYSl8fGZ9LHA9b1swXSxkPW9bMV0sbT1vWzJdO3JldHVybiBwJiYocz1PKFUoW2soZSxyLTAsbi0wKV0pWzBdLFUoW2soZS0xLHItMCxuLTApXSlbMF0scCksbD1PKFUoW2soZSxyLTAsbi0xKV0pWzBdLFUoW2soZS0xLHItMCxuLTEpXSlbMF0scCksYz1PKFUoW2soZSxyLTEsbi0xKV0pWzBdLFUoW2soZS0xLHItMSxuLTEpXSlbMF0scCksdT1PKFUoW2soZSxyLTEsbi0wKV0pWzBdLFUoW2soZS0xLHItMSxuLTApXSlbMF0scCksaCgpKSxkJiYocz1PKFUoW2soZS0wLHIsbi0wKV0pWzBdLFUoW2soZS0wLHItMSxuLTApXSlbMF0sZCksbD1PKFUoW2soZS0wLHIsbi0xKV0pWzBdLFUoW2soZS0wLHItMSxuLTEpXSlbMF0sZCksYz1PKFUoW2soZS0xLHIsbi0xKV0pWzBdLFUoW2soZS0xLHItMSxuLTEpXSlbMF0sZCksdT1PKFUoW2soZS0xLHIsbi0wKV0pWzBdLFUoW2soZS0xLHItMSxuLTApXSlbMF0sZCksaCgpKSxtJiYocz1PKFUoW2soZS0wLHItMCxuKV0pWzBdLFUoW2soZS0wLHItMCxuLTEpXSlbMF0sbSksbD1PKFUoW2soZS0wLHItMSxuKV0pWzBdLFUoW2soZS0wLHItMSxuLTEpXSlbMF0sbSksYz1PKFUoW2soZS0xLHItMSxuKV0pWzBdLFUoW2soZS0xLHItMSxuLTEpXSlbMF0sbSksdT1PKFUoW2soZS0xLHItMCxuKV0pWzBdLFUoW2soZS0xLHItMCxuLTEpXSlbMF0sbSksaCgpKSxmfWZ1bmN0aW9uIFgodCxlLHIsbixpLGEsbyxzLGwsYyx1LGYpe3ZhciBoPXQ7cmV0dXJuIGY/KGQmJiJldmVuIj09PXQmJihoPW51bGwpLHEoaCxlLHIsbixpLGEsbyxzLGwsYyx1KSk6KGQmJiJvZGQiPT09dCYmKGg9bnVsbCkscShoLGwscyxvLGEsaSxuLHIsZSxjLHUpKX1mdW5jdGlvbiBaKHQsZSxyLG4saSl7Zm9yKHZhciBhPVtdLG89MCxzPTA7czxlLmxlbmd0aDtzKyspZm9yKHZhciBsPWVbc10sYz0xO2M8dztjKyspZm9yKHZhciB1PTE7dTxfO3UrKylhLnB1c2goWSh0LGsobCx1LTEsYy0xKSxrKGwsdS0xLGMpLGsobCx1LGMtMSksayhsLHUsYykscixuLChsK3UrYyklMixpJiZpW29dP2lbb106W10pKSxvKys7cmV0dXJuIGF9ZnVuY3Rpb24gSih0LGUscixuLGkpe2Zvcih2YXIgYT1bXSxvPTAscz0wO3M8ZS5sZW5ndGg7cysrKWZvcih2YXIgbD1lW3NdLGM9MTtjPGI7YysrKWZvcih2YXIgdT0xO3U8dzt1KyspYS5wdXNoKFkodCxrKGMtMSxsLHUtMSksayhjLGwsdS0xKSxrKGMtMSxsLHUpLGsoYyxsLHUpLHIsbiwoYytsK3UpJTIsaSYmaVtvXT9pW29dOltdKSksbysrO3JldHVybiBhfWZ1bmN0aW9uIEsodCxlLHIsbixpKXtmb3IodmFyIGE9W10sbz0wLHM9MDtzPGUubGVuZ3RoO3MrKylmb3IodmFyIGw9ZVtzXSxjPTE7YzxfO2MrKylmb3IodmFyIHU9MTt1PGI7dSsrKWEucHVzaChZKHQsayh1LTEsYy0xLGwpLGsodS0xLGMsbCksayh1LGMtMSxsKSxrKHUsYyxsKSxyLG4sKHUrYytsKSUyLGkmJmlbb10/aVtvXTpbXSkpLG8rKztyZXR1cm4gYX1mdW5jdGlvbiBRKHQsZSxyKXtmb3IodmFyIG49MTtuPHc7bisrKWZvcih2YXIgaT0xO2k8XztpKyspZm9yKHZhciBhPTE7YTxiO2ErKylYKHQsayhhLTEsaS0xLG4tMSksayhhLTEsaS0xLG4pLGsoYS0xLGksbi0xKSxrKGEtMSxpLG4pLGsoYSxpLTEsbi0xKSxrKGEsaS0xLG4pLGsoYSxpLG4tMSksayhhLGksbiksZSxyLChhK2krbiklMil9ZnVuY3Rpb24gJCh0LGUscil7ZD0hMCxRKHQsZSxyKSxkPSExfWZ1bmN0aW9uIHR0KHQsZSxyLG4saSxhKXtmb3IodmFyIG89W10scz0wLGw9MDtsPGUubGVuZ3RoO2wrKylmb3IodmFyIGM9ZVtsXSx1PTE7dTx3O3UrKylmb3IodmFyIGY9MTtmPF87ZisrKW8ucHVzaChXKHQsYyxmLHUscixuLGlbbF0sYSYmYVtzXSYmYVtzXSkpLHMrKztyZXR1cm4gb31mdW5jdGlvbiBldCh0LGUscixuLGksYSl7Zm9yKHZhciBvPVtdLHM9MCxsPTA7bDxlLmxlbmd0aDtsKyspZm9yKHZhciBjPWVbbF0sdT0xO3U8Yjt1KyspZm9yKHZhciBmPTE7Zjx3O2YrKylvLnB1c2goVyh0LHUsYyxmLHIsbixpW2xdLGEmJmFbc10mJmFbc10pKSxzKys7cmV0dXJuIG99ZnVuY3Rpb24gcnQodCxlLHIsbixpLGEpe2Zvcih2YXIgbz1bXSxzPTAsbD0wO2w8ZS5sZW5ndGg7bCsrKWZvcih2YXIgYz1lW2xdLHU9MTt1PF87dSsrKWZvcih2YXIgZj0xO2Y8YjtmKyspby5wdXNoKFcodCxmLHUsYyxyLG4saVtsXSxhJiZhW3NdJiZhW3NdKSkscysrO3JldHVybiBvfWZ1bmN0aW9uIG50KHQsZSl7Zm9yKHZhciByPVtdLG49dDtuPGU7bisrKXIucHVzaChuKTtyZXR1cm4gcn1yZXR1cm4gZnVuY3Rpb24oKXtpZihQKCksZnVuY3Rpb24oKXtmb3IodmFyIGU9MDtlPGI7ZSsrKWZvcih2YXIgcj0wO3I8XztyKyspZm9yKHZhciBuPTA7bjx3O24rKyl7dmFyIGk9ayhlLHIsbik7SSh0Ll94W2ldLHQuX3lbaV0sdC5feltpXSx0Ll92YWx1ZVtpXSl9fSgpLHUmJnAmJih6KHApLG09ITAsUShudWxsLFMsRSksbT0hMSksYyYmaCl7eihoKTtmb3IodmFyIGU9dC5zdXJmYWNlLnBhdHRlcm4scj10LnN1cmZhY2UuY291bnQscz0wO3M8cjtzKyspe3ZhciBmPTE9PT1yPy41OnMvKHItMSksZD0oMS1mKSpTK2YqRSxUPU1hdGguYWJzKGQtQSk+TWF0aC5hYnMoZC1NKT9bQSxkXTpbZCxNXTskKGUsVFswXSxUWzFdKX19dmFyIEw9W1tNYXRoLm1pbihTLE0pLE1hdGgubWF4KFMsTSldLFtNYXRoLm1pbihBLEUpLE1hdGgubWF4KEEsRSldXTtbIngiLCJ5IiwieiJdLmZvckVhY2goKGZ1bmN0aW9uKGUpe2Zvcih2YXIgcj1bXSxuPTA7bjxMLmxlbmd0aDtuKyspe3ZhciBpPTAsYT1MW25dWzBdLG89TFtuXVsxXSxzPXQuc2xpY2VzW2VdO2lmKHMuc2hvdyYmcy5maWxsKXt6KHMuZmlsbCk7dmFyIGM9W10sdT1bXSxmPVtdO2lmKHMubG9jYXRpb25zLmxlbmd0aClmb3IodmFyIGg9MDtoPHMubG9jYXRpb25zLmxlbmd0aDtoKyspe3ZhciBwPWwocy5sb2NhdGlvbnNbaF0sIngiPT09ZT92OiJ5Ij09PWU/eTp4KTswPT09cC5kaXN0UmF0aW8/Yy5wdXNoKHAuaWQpOnAuaWQ+MCYmKHUucHVzaChwLmlkKSwieCI9PT1lP2YucHVzaChbcC5kaXN0UmF0aW8sMCwwXSk6InkiPT09ZT9mLnB1c2goWzAscC5kaXN0UmF0aW8sMF0pOmYucHVzaChbMCwwLHAuZGlzdFJhdGlvXSkpfWVsc2UgYz1udCgxLCJ4Ij09PWU/Yi0xOiJ5Ij09PWU/Xy0xOnctMSk7dS5sZW5ndGg+MCYmKHJbaV09IngiPT09ZT90dChudWxsLHUsYSxvLGYscltpXSk6InkiPT09ZT9ldChudWxsLHUsYSxvLGYscltpXSk6cnQobnVsbCx1LGEsbyxmLHJbaV0pLGkrKyksYy5sZW5ndGg+MCYmKHJbaV09IngiPT09ZT9aKG51bGwsYyxhLG8scltpXSk6InkiPT09ZT9KKG51bGwsYyxhLG8scltpXSk6SyhudWxsLGMsYSxvLHJbaV0pLGkrKyl9dmFyIGQ9dC5jYXBzW2VdO2Quc2hvdyYmZC5maWxsJiYoeihkLmZpbGwpLHJbaV09IngiPT09ZT9aKG51bGwsWzAsYi0xXSxhLG8scltpXSk6InkiPT09ZT9KKG51bGwsWzAsXy0xXSxhLG8scltpXSk6SyhudWxsLFswLHctMV0sYSxvLHJbaV0pLGkrKyl9fSkpLDA9PT1nJiZQKCksdC5fbWVzaFg9bix0Ll9tZXNoWT1pLHQuX21lc2haPWEsdC5fbWVzaEludGVuc2l0eT1vLHQuX1hzPXYsdC5fWXM9eSx0Ll9acz14fSgpLHR9ZS5leHBvcnRzPXtmaW5kTmVhcmVzdE9uQXhpczpsLGdlbmVyYXRlSXNvTWVzaGVzOmgsY3JlYXRlSXNvc3VyZmFjZVRyYWNlOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbHBsb3QuZ2wsaT1uKHtnbDpyfSksYT1uZXcgYyh0LGksZS51aWQpO3JldHVybiBpLl90cmFjZT1hLGEudXBkYXRlKGUpLHQuZ2xwbG90LmFkZChpKSxhfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2NTEsIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjc3MiwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6ODAxLCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiOjg4MCwiZ2wtbWVzaDNkIjozMDN9XSwxMTMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIik7ZnVuY3Rpb24gcyh0LGUscixuLGEpe3ZhciBzPWEoImlzb21pbiIpLGw9YSgiaXNvbWF4Iik7bnVsbCE9bCYmbnVsbCE9cyYmcz5sJiYoZS5pc29taW49bnVsbCxlLmlzb21heD1udWxsKTt2YXIgYz1hKCJ4IiksdT1hKCJ5IiksZj1hKCJ6IiksaD1hKCJ2YWx1ZSIpO2MmJmMubGVuZ3RoJiZ1JiZ1Lmxlbmd0aCYmZiYmZi5sZW5ndGgmJmgmJmgubGVuZ3RoPyhpLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5IiwieiJdLG4pLGEoInZhbHVlaG92ZXJmb3JtYXQiKSxbIngiLCJ5IiwieiJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2EodCsiaG92ZXJmb3JtYXQiKTt2YXIgZT0iY2Fwcy4iK3Q7YShlKyIuc2hvdyIpJiZhKGUrIi5maWxsIik7dmFyIHI9InNsaWNlcy4iK3Q7YShyKyIuc2hvdyIpJiYoYShyKyIuZmlsbCIpLGEocisiLmxvY2F0aW9ucyIpKX0pKSxhKCJzcGFjZWZyYW1lLnNob3ciKSYmYSgic3BhY2VmcmFtZS5maWxsIiksYSgic3VyZmFjZS5zaG93IikmJihhKCJzdXJmYWNlLmNvdW50IiksYSgic3VyZmFjZS5maWxsIiksYSgic3VyZmFjZS5wYXR0ZXJuIikpLGEoImNvbnRvdXIuc2hvdyIpJiYoYSgiY29udG91ci5jb2xvciIpLGEoImNvbnRvdXIud2lkdGgiKSksWyJ0ZXh0IiwiaG92ZXJ0ZXh0IiwiaG92ZXJ0ZW1wbGF0ZSIsImxpZ2h0aW5nLmFtYmllbnQiLCJsaWdodGluZy5kaWZmdXNlIiwibGlnaHRpbmcuc3BlY3VsYXIiLCJsaWdodGluZy5yb3VnaG5lc3MiLCJsaWdodGluZy5mcmVzbmVsIiwibGlnaHRpbmcudmVydGV4bm9ybWFsc2Vwc2lsb24iLCJsaWdodGluZy5mYWNlbm9ybWFsc2Vwc2lsb24iLCJsaWdodHBvc2l0aW9uLngiLCJsaWdodHBvc2l0aW9uLnkiLCJsaWdodHBvc2l0aW9uLnoiLCJmbGF0c2hhZGluZyIsIm9wYWNpdHkiXS5mb3JFYWNoKChmdW5jdGlvbih0KXthKHQpfSkpLG8odCxlLG4sYSx7cHJlZml4OiIiLGNMZXR0ZXI6ImMifSksZS5fbGVuZ3RoPW51bGwpOmUudmlzaWJsZT0hMX1lLmV4cG9ydHM9e3N1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLGkpe3ModCxlLHIsaSwoZnVuY3Rpb24ocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX0pKX0sc3VwcGx5SXNvRGVmYXVsdHM6c319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2NDksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F0dHJpYnV0ZXMiOjExMjd9XSwxMTMxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY2FsYzp0KCIuL2NhbGMiKSxjb2xvcmJhcjp7bWluOiJjbWluIixtYXg6ImNtYXgifSxwbG90OnQoIi4vY29udmVydCIpLmNyZWF0ZUlzb3N1cmZhY2VUcmFjZSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToiaXNvc3VyZmFjZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjg2OSwiLi9hdHRyaWJ1dGVzIjoxMTI3LCIuL2NhbGMiOjExMjgsIi4vY29udmVydCI6MTEyOSwiLi9kZWZhdWx0cyI6MTEzMH1dLDExMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uL3N1cmZhY2UvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPWwoe3g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sajp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxrOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGhvdmVydGVtcGxhdGU6YSh7ZWRpdFR5cGU6ImNhbGMifSkseGhvdmVyZm9ybWF0OmkoIngiKSx5aG92ZXJmb3JtYXQ6aSgieSIpLHpob3ZlcmZvcm1hdDppKCJ6IiksZGVsYXVuYXlheGlzOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ4IiwieSIsInoiXSxkZmx0OiJ6IixlZGl0VHlwZToiY2FsYyJ9LGFscGhhaHVsbDp7dmFsVHlwZToibnVtYmVyIixkZmx0Oi0xLGVkaXRUeXBlOiJjYWxjIn0saW50ZW5zaXR5Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGludGVuc2l0eW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInZlcnRleCIsImNlbGwiXSxkZmx0OiJ2ZXJ0ZXgiLGVkaXRUeXBlOiJjYWxjIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToiY2FsYyJ9LHZlcnRleGNvbG9yOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGZhY2Vjb2xvcjp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx0cmFuc2Zvcm1zOnZvaWQgMH0sbigiIix7Y29sb3JBdHRyOiJgaW50ZW5zaXR5YCIsc2hvd1NjYWxlRGZsdDohMCxlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pLHtvcGFjaXR5Om8ub3BhY2l0eSxmbGF0c2hhZGluZzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGNvbnRvdXI6e3Nob3c6bCh7fSxvLmNvbnRvdXJzLnguc2hvdyx7fSksY29sb3I6by5jb250b3Vycy54LmNvbG9yLHdpZHRoOm8uY29udG91cnMueC53aWR0aCxlZGl0VHlwZToiY2FsYyJ9LGxpZ2h0cG9zaXRpb246e3g6bCh7fSxvLmxpZ2h0cG9zaXRpb24ueCx7ZGZsdDoxZTV9KSx5Omwoe30sby5saWdodHBvc2l0aW9uLnkse2RmbHQ6MWU1fSksejpsKHt9LG8ubGlnaHRwb3NpdGlvbi56LHtkZmx0OjB9KSxlZGl0VHlwZToiY2FsYyJ9LGxpZ2h0aW5nOmwoe3ZlcnRleG5vcm1hbHNlcHNpbG9uOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MWUtMTIsZWRpdFR5cGU6ImNhbGMifSxmYWNlbm9ybWFsc2Vwc2lsb246e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxZS02LGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxvLmxpZ2h0aW5nKSxob3ZlcmluZm86bCh7fSxzLmhvdmVyaW5mbyx7ZWRpdFR5cGU6ImNhbGMifSksc2hvd2xlZ2VuZDpsKHt9LHMuc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSl9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjY0NiwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo4MzAsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vc3VyZmFjZS9hdHRyaWJ1dGVzIjoxMzE1fV0sMTEzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2UuaW50ZW5zaXR5JiZuKHQsZSx7dmFsczplLmludGVuc2l0eSxjb250YWluZXJTdHI6IiIsY0xldHRlcjoiYyJ9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiOjY0N31dLDExMzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtbWVzaDNkIiksaT10KCJkZWxhdW5heS10cmlhbmd1bGF0ZSIpLGE9dCgiYWxwaGEtc2hhcGUiKSxvPXQoImNvbnZleC1odWxsIikscz10KCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIikucGFyc2VDb2xvclNjYWxlLGw9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikuZXh0cmFjdE9wdHMsdT10KCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiKTtmdW5jdGlvbiBmKHQsZSxyKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9cix0aGlzLm1lc2g9ZSx0aGlzLm5hbWU9IiIsdGhpcy5jb2xvcj0iI2ZmZiIsdGhpcy5kYXRhPW51bGwsdGhpcy5zaG93Q29udG91cj0hMX12YXIgaD1mLnByb3RvdHlwZTtmdW5jdGlvbiBwKHQpe2Zvcih2YXIgZT1bXSxyPXQubGVuZ3RoLG49MDtuPHI7bisrKWVbbl09bCh0W25dKTtyZXR1cm4gZX1mdW5jdGlvbiBkKHQsZSxyLG4pe2Zvcih2YXIgaT1bXSxhPWUubGVuZ3RoLG89MDtvPGE7bysrKWlbb109dC5kMmwoZVtvXSwwLG4pKnI7cmV0dXJuIGl9ZnVuY3Rpb24gbSh0KXtmb3IodmFyIGU9W10scj10Lmxlbmd0aCxuPTA7bjxyO24rKyllW25dPU1hdGgucm91bmQodFtuXSk7cmV0dXJuIGV9ZnVuY3Rpb24gZyh0LGUpe2Zvcih2YXIgcj10Lmxlbmd0aCxuPTA7bjxyO24rKylpZih0W25dPD0tLjV8fHRbbl0+PWUtLjUpcmV0dXJuITE7cmV0dXJuITB9aC5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe2lmKHQub2JqZWN0PT09dGhpcy5tZXNoKXt2YXIgZT10LmluZGV4PXQuZGF0YS5pbmRleDt0LmRhdGEuX2NlbGxDZW50ZXI/dC50cmFjZUNvb3JkaW5hdGU9dC5kYXRhLmRhdGFDb29yZGluYXRlOnQudHJhY2VDb29yZGluYXRlPVt0aGlzLmRhdGEueFtlXSx0aGlzLmRhdGEueVtlXSx0aGlzLmRhdGEueltlXV07dmFyIHI9dGhpcy5kYXRhLmhvdmVydGV4dHx8dGhpcy5kYXRhLnRleHQ7cmV0dXJuIEFycmF5LmlzQXJyYXkocikmJnZvaWQgMCE9PXJbZV0/dC50ZXh0TGFiZWw9cltlXTpyJiYodC50ZXh0TGFiZWw9ciksITB9fSxoLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT10aGlzLnNjZW5lLHI9ZS5mdWxsU2NlbmVMYXlvdXQ7dGhpcy5kYXRhPXQ7dmFyIG4sZj10LngubGVuZ3RoLGg9dShkKHIueGF4aXMsdC54LGUuZGF0YVNjYWxlWzBdLHQueGNhbGVuZGFyKSxkKHIueWF4aXMsdC55LGUuZGF0YVNjYWxlWzFdLHQueWNhbGVuZGFyKSxkKHIuemF4aXMsdC56LGUuZGF0YVNjYWxlWzJdLHQuemNhbGVuZGFyKSk7aWYodC5pJiZ0LmomJnQuayl7aWYodC5pLmxlbmd0aCE9PXQuai5sZW5ndGh8fHQuai5sZW5ndGghPT10LmsubGVuZ3RofHwhZyh0LmksZil8fCFnKHQuaixmKXx8IWcodC5rLGYpKXJldHVybjtuPXUobSh0LmkpLG0odC5qKSxtKHQuaykpfWVsc2Ugbj0wPT09dC5hbHBoYWh1bGw/byhoKTp0LmFscGhhaHVsbD4wP2EodC5hbHBoYWh1bGwsaCk6ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9WyJ4IiwieSIsInoiXS5pbmRleE9mKHQpLG49W10sYT1lLmxlbmd0aCxvPTA7bzxhO28rKyluW29dPVtlW29dWyhyKzEpJTNdLGVbb11bKHIrMiklM11dO3JldHVybiBpKG4pfSh0LmRlbGF1bmF5YXhpcyxoKTt2YXIgdj17cG9zaXRpb25zOmgsY2VsbHM6bixsaWdodFBvc2l0aW9uOlt0LmxpZ2h0cG9zaXRpb24ueCx0LmxpZ2h0cG9zaXRpb24ueSx0LmxpZ2h0cG9zaXRpb24uel0sYW1iaWVudDp0LmxpZ2h0aW5nLmFtYmllbnQsZGlmZnVzZTp0LmxpZ2h0aW5nLmRpZmZ1c2Usc3BlY3VsYXI6dC5saWdodGluZy5zcGVjdWxhcixyb3VnaG5lc3M6dC5saWdodGluZy5yb3VnaG5lc3MsZnJlc25lbDp0LmxpZ2h0aW5nLmZyZXNuZWwsdmVydGV4Tm9ybWFsc0Vwc2lsb246dC5saWdodGluZy52ZXJ0ZXhub3JtYWxzZXBzaWxvbixmYWNlTm9ybWFsc0Vwc2lsb246dC5saWdodGluZy5mYWNlbm9ybWFsc2Vwc2lsb24sb3BhY2l0eTp0Lm9wYWNpdHksY29udG91ckVuYWJsZTp0LmNvbnRvdXIuc2hvdyxjb250b3VyQ29sb3I6bCh0LmNvbnRvdXIuY29sb3IpLnNsaWNlKDAsMyksY29udG91cldpZHRoOnQuY29udG91ci53aWR0aCx1c2VGYWNldE5vcm1hbHM6dC5mbGF0c2hhZGluZ307aWYodC5pbnRlbnNpdHkpe3ZhciB5PWModCk7dGhpcy5jb2xvcj0iI2ZmZiI7dmFyIHg9dC5pbnRlbnNpdHltb2RlO3ZbeCsiSW50ZW5zaXR5Il09dC5pbnRlbnNpdHksdlt4KyJJbnRlbnNpdHlCb3VuZHMiXT1beS5taW4seS5tYXhdLHYuY29sb3JtYXA9cyh0KX1lbHNlIHQudmVydGV4Y29sb3I/KHRoaXMuY29sb3I9dC52ZXJ0ZXhjb2xvclswXSx2LnZlcnRleENvbG9ycz1wKHQudmVydGV4Y29sb3IpKTp0LmZhY2Vjb2xvcj8odGhpcy5jb2xvcj10LmZhY2Vjb2xvclswXSx2LmNlbGxDb2xvcnM9cCh0LmZhY2Vjb2xvcikpOih0aGlzLmNvbG9yPXQuY29sb3Isdi5tZXNoQ29sb3I9bCh0LmNvbG9yKSk7dGhpcy5tZXNoLnVwZGF0ZSh2KX0saC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMubWVzaCksdGhpcy5tZXNoLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbHBsb3QuZ2wsaT1uKHtnbDpyfSksYT1uZXcgZih0LGksZS51aWQpO3JldHVybiBpLl90cmFjZT1hLGEudXBkYXRlKGUpLHQuZ2xwbG90LmFkZChpKSxhfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciI6NzcyLCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Ijo4MDEsIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyI6ODgwLCJhbHBoYS1zaGFwZSI6NzEsImNvbnZleC1odWxsIjoxMzcsImRlbGF1bmF5LXRyaWFuZ3VsYXRlIjoxNzIsImdsLW1lc2gzZCI6MzAzfV0sMTEzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzKXtmdW5jdGlvbiBsKHIsbil7cmV0dXJuIGkuY29lcmNlKHQsZSxvLHIsbil9ZnVuY3Rpb24gYyh0KXt2YXIgZT10Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9bCh0KTtyZXR1cm4gZSYmaS5pc0FycmF5T3JUeXBlZEFycmF5KGUpP2U6bnVsbH0pKTtyZXR1cm4gZS5ldmVyeSgoZnVuY3Rpb24odCl7cmV0dXJuIHQmJnQubGVuZ3RoPT09ZVswXS5sZW5ndGh9KSkmJmV9YyhbIngiLCJ5IiwieiJdKT8oYyhbImkiLCJqIiwiayJdKSwoIWUuaXx8ZS5qJiZlLmspJiYoIWUuanx8ZS5rJiZlLmkpJiYoIWUua3x8ZS5pJiZlLmopPyhuLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5IiwieiJdLHMpLFsibGlnaHRpbmcuYW1iaWVudCIsImxpZ2h0aW5nLmRpZmZ1c2UiLCJsaWdodGluZy5zcGVjdWxhciIsImxpZ2h0aW5nLnJvdWdobmVzcyIsImxpZ2h0aW5nLmZyZXNuZWwiLCJsaWdodGluZy52ZXJ0ZXhub3JtYWxzZXBzaWxvbiIsImxpZ2h0aW5nLmZhY2Vub3JtYWxzZXBzaWxvbiIsImxpZ2h0cG9zaXRpb24ueCIsImxpZ2h0cG9zaXRpb24ueSIsImxpZ2h0cG9zaXRpb24ueiIsImZsYXRzaGFkaW5nIiwiYWxwaGFodWxsIiwiZGVsYXVuYXlheGlzIiwib3BhY2l0eSJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2wodCl9KSksbCgiY29udG91ci5zaG93IikmJihsKCJjb250b3VyLmNvbG9yIiksbCgiY29udG91ci53aWR0aCIpKSwiaW50ZW5zaXR5ImluIHQ/KGwoImludGVuc2l0eSIpLGwoImludGVuc2l0eW1vZGUiKSxhKHQsZSxzLGwse3ByZWZpeDoiIixjTGV0dGVyOiJjIn0pKTooZS5zaG93c2NhbGU9ITEsImZhY2Vjb2xvciJpbiB0P2woImZhY2Vjb2xvciIpOiJ2ZXJ0ZXhjb2xvciJpbiB0P2woInZlcnRleGNvbG9yIik6bCgiY29sb3IiLHIpKSxsKCJ0ZXh0IiksbCgiaG92ZXJ0ZXh0IiksbCgiaG92ZXJ0ZW1wbGF0ZSIpLGwoInhob3ZlcmZvcm1hdCIpLGwoInlob3ZlcmZvcm1hdCIpLGwoInpob3ZlcmZvcm1hdCIpLGUuX2xlbmd0aD1udWxsKTplLnZpc2libGU9ITEpOmUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2NDksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F0dHJpYnV0ZXMiOjExMzJ9XSwxMTM2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxjb2xvcmJhcjp7bWluOiJjbWluIixtYXg6ImNtYXgifSxwbG90OnQoIi4vY29udmVydCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJtZXNoM2QiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2dsM2QiKSxjYXRlZ29yaWVzOlsiZ2wzZCIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9nbDNkIjo4NjksIi4vYXR0cmlidXRlcyI6MTEzMiwiLi9jYWxjIjoxMTMzLCIuL2NvbnZlcnQiOjExMzQsIi4vZGVmYXVsdHMiOjExMzV9XSwxMTM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmV4dGVuZEZsYXQsaT10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LG89dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5kYXNoLHM9dCgiLi4vLi4vY29tcG9uZW50cy9meC9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiKSxjPWwuSU5DUkVBU0lORy5DT0xPUix1PWwuREVDUkVBU0lORy5DT0xPUixmPWkubGluZTtmdW5jdGlvbiBoKHQpe3JldHVybntsaW5lOntjb2xvcjpuKHt9LGYuY29sb3Ise2RmbHQ6dH0pLHdpZHRoOmYud2lkdGgsZGFzaDpvLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9fWUuZXhwb3J0cz17eHBlcmlvZDppLnhwZXJpb2QseHBlcmlvZDA6aS54cGVyaW9kMCx4cGVyaW9kYWxpZ25tZW50OmkueHBlcmlvZGFsaWdubWVudCx4aG92ZXJmb3JtYXQ6YSgieCIpLHlob3ZlcmZvcm1hdDphKCJ5IikseDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxvcGVuOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGhpZ2g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sbG93Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGNsb3NlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxpbmU6e3dpZHRoOm4oe30sZi53aWR0aCx7fSksZGFzaDpuKHt9LG8se30pLGVkaXRUeXBlOiJzdHlsZSJ9LGluY3JlYXNpbmc6aChjKSxkZWNyZWFzaW5nOmgodSksdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxob3ZlcnRleHQ6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0sdGlja3dpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDouNSxkZmx0Oi4zLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJsYWJlbDpuKHt9LHMuaG92ZXJsYWJlbCx7c3BsaXQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InN0eWxlIn19KX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiOjY2MCwiLi4vLi4vY29tcG9uZW50cy9meC9hdHRyaWJ1dGVzIjo2NzAsIi4uLy4uL2NvbnN0YW50cy9kZWx0YS5qcyI6NzQ2LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTkxfV0sMTEzODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPW4uXyxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIikscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIGwodCxlLHIsbil7cmV0dXJue286dCxoOmUsbDpyLGM6bn19ZnVuY3Rpb24gYyh0LGUscixvLGwsYyl7Zm9yKHZhciB1PWwubWFrZUNhbGNkYXRhKGUsIm9wZW4iKSxmPWwubWFrZUNhbGNkYXRhKGUsImhpZ2giKSxoPWwubWFrZUNhbGNkYXRhKGUsImxvdyIpLHA9bC5tYWtlQ2FsY2RhdGEoZSwiY2xvc2UiKSxkPUFycmF5LmlzQXJyYXkoZS50ZXh0KSxtPUFycmF5LmlzQXJyYXkoZS5ob3ZlcnRleHQpLGc9ITAsdj1udWxsLHk9ISFlLnhwZXJpb2RhbGlnbm1lbnQseD1bXSxiPTA7YjxvLmxlbmd0aDtiKyspe3ZhciBfPW9bYl0sdz11W2JdLFQ9ZltiXSxrPWhbYl0sQT1wW2JdO2lmKF8hPT1zJiZ3IT09cyYmVCE9PXMmJmshPT1zJiZBIT09cyl7QT09PXc/bnVsbCE9PXYmJkEhPT12JiYoZz1BPnYpOmc9QT53LHY9QTt2YXIgTT1jKHcsVCxrLEEpO00ucG9zPV8sTS55Yz0odytBKS8yLE0uaT1iLE0uZGlyPWc/ImluY3JlYXNpbmciOiJkZWNyZWFzaW5nIixNLng9TS5wb3MsTS55PVtrLFRdLHkmJihNLm9yaWdfcD1yW2JdKSxkJiYoTS50eD1lLnRleHRbYl0pLG0mJihNLmh0eD1lLmhvdmVydGV4dFtiXSkseC5wdXNoKE0pfWVsc2UgeC5wdXNoKHtwb3M6XyxlbXB0eTohMH0pfXJldHVybiBlLl9leHRyZW1lc1tsLl9pZF09YS5maW5kRXh0cmVtZXMobCxuLmNvbmNhdChoLGYpLHtwYWRkZWQ6ITB9KSx4Lmxlbmd0aCYmKHhbMF0udD17bGFiZWxzOntvcGVuOmkodCwib3BlbjoiKSsiICIsaGlnaDppKHQsImhpZ2g6IikrIiAiLGxvdzppKHQsImxvdzoiKSsiICIsY2xvc2U6aSh0LCJjbG9zZToiKSsiICJ9fSkseH1lLmV4cG9ydHM9e2NhbGM6ZnVuY3Rpb24odCxlKXt2YXIgcj1hLmdldEZyb21JZCh0LGUueGF4aXMpLGk9YS5nZXRGcm9tSWQodCxlLnlheGlzKSxzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1yLl9taW5EaWZmO2lmKCFpKXt2YXIgYSxzPXQuX2Z1bGxEYXRhLGw9W107Zm9yKGk9MS8wLGE9MDthPHMubGVuZ3RoO2ErKyl7dmFyIGM9c1thXTtpZigib2hsYyI9PT1jLnR5cGUmJiEwPT09Yy52aXNpYmxlJiZjLnhheGlzPT09ZS5faWQpe2wucHVzaChjKTt2YXIgdT1lLm1ha2VDYWxjZGF0YShjLCJ4Iik7Yy5fb3JpZ1g9dTt2YXIgZj1vKHIsZSwieCIsdSkudmFscztjLl94Y2FsYz1mO3ZhciBoPW4uZGlzdGluY3RWYWxzKGYpLm1pbkRpZmY7aCYmaXNGaW5pdGUoaCkmJihpPU1hdGgubWluKGksaCkpfX1mb3IoaT09PTEvMCYmKGk9MSksYT0wO2E8bC5sZW5ndGg7YSsrKWxbYV0uX21pbkRpZmY9aX1yZXR1cm4gaSpyLnRpY2t3aWR0aH0odCxyLGUpLHU9ZS5fbWluRGlmZjtlLl9taW5EaWZmPW51bGw7dmFyIGY9ZS5fb3JpZ1g7ZS5fb3JpZ1g9bnVsbDt2YXIgaD1lLl94Y2FsYztlLl94Y2FsYz1udWxsO3ZhciBwPWModCxlLGYsaCxpLGwpO3JldHVybiBlLl9leHRyZW1lc1tyLl9pZF09YS5maW5kRXh0cmVtZXMocixoLHt2cGFkOnUvMn0pLHAubGVuZ3RoPyhuLmV4dGVuZEZsYXQocFswXS50LHt3SG92ZXI6dS8yLHRpY2tMZW46c30pLHApOlt7dDp7ZW1wdHk6ITB9fV19LGNhbGNDb21tb246Y319LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6ODI0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3fV0sMTEzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vb2hsY19kZWZhdWx0cyIpLGE9dCgiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiKSxvPXQoIi4vYXR0cmlidXRlcyIpO2Z1bmN0aW9uIHModCxlLHIsbil7cihuKyIubGluZS5jb2xvciIpLHIobisiLmxpbmUud2lkdGgiLGUubGluZS53aWR0aCkscihuKyIubGluZS5kYXNoIixlLmxpbmUuZGFzaCl9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe2Z1bmN0aW9uIGMocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX1pKHQsZSxjLGwpPyhhKHQsZSxsLGMse3g6ITB9KSxjKCJ4aG92ZXJmb3JtYXQiKSxjKCJ5aG92ZXJmb3JtYXQiKSxjKCJsaW5lLndpZHRoIiksYygibGluZS5kYXNoIikscyh0LGUsYywiaW5jcmVhc2luZyIpLHModCxlLGMsImRlY3JlYXNpbmciKSxjKCJ0ZXh0IiksYygiaG92ZXJ0ZXh0IiksYygidGlja3dpZHRoIiksbC5fcmVxdWVzdFJhbmdlc2xpZGVyW2UueGF4aXNdPSEwKTplLnZpc2libGU9ITF9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9zY2F0dGVyL3BlcmlvZF9kZWZhdWx0cyI6MTIxMSwiLi9hdHRyaWJ1dGVzIjoxMTM3LCIuL29obGNfZGVmYXVsdHMiOjExNDJ9XSwxMTQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxzPXQoIi4uLy4uL2xpYiIpLmZpbGxUZXh0LGw9dCgiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIiksYz17aW5jcmVhc2luZzpsLklOQ1JFQVNJTkcuU1lNQk9MLGRlY3JlYXNpbmc6bC5ERUNSRUFTSU5HLlNZTUJPTH07ZnVuY3Rpb24gdSh0LGUscixuKXt2YXIgaSxzLGw9dC5jZCxjPXQueGEsdT1sWzBdLnRyYWNlLGY9bFswXS50LGg9dS50eXBlLHA9Im9obGMiPT09aD8ibCI6Im1pbiIsZD0ib2hsYyI9PT1oPyJoIjoibWF4IixtPWYuYlBvc3x8MCxnPWYuYmRQb3N8fGYudGlja0xlbix2PWYud0hvdmVyLHk9TWF0aC5taW4oMSxnL01hdGguYWJzKGMucjJjKGMucmFuZ2VbMV0pLWMucjJjKGMucmFuZ2VbMF0pKSk7ZnVuY3Rpb24geCh0KXt2YXIgcj1mdW5jdGlvbih0KXtyZXR1cm4gdC5wb3MrbS1lfSh0KTtyZXR1cm4gYS5pbmJveChyLXYscit2LGkpfWZ1bmN0aW9uIGIodCl7dmFyIGU9dFtwXSxuPXRbZF07cmV0dXJuIGU9PT1ufHxhLmluYm94KGUtcixuLXIsaSl9ZnVuY3Rpb24gXyh0KXtyZXR1cm4oeCh0KStiKHQpKS8yfWk9dC5tYXhIb3ZlckRpc3RhbmNlLXkscz10Lm1heFNwaWtlRGlzdGFuY2UteTt2YXIgdz1hLmdldERpc3RhbmNlRnVuY3Rpb24obix4LGIsXyk7aWYoYS5nZXRDbG9zZXN0KGwsdyx0KSwhMT09PXQuaW5kZXgpcmV0dXJuIG51bGw7dmFyIFQ9bFt0LmluZGV4XTtpZihULmVtcHR5KXJldHVybiBudWxsO3ZhciBrPXVbVC5kaXJdLEE9ay5saW5lLmNvbG9yO3JldHVybiBvLm9wYWNpdHkoQSkmJmsubGluZS53aWR0aD90LmNvbG9yPUE6dC5jb2xvcj1rLmZpbGxjb2xvcix0LngwPWMuYzJwKFQucG9zK20tZywhMCksdC54MT1jLmMycChULnBvcyttK2csITApLHQueExhYmVsVmFsPXZvaWQgMCE9PVQub3JpZ19wP1Qub3JpZ19wOlQucG9zLHQuc3Bpa2VEaXN0YW5jZT1fKFQpKnMvaSx0LnhTcGlrZT1jLmMycChULnBvcywhMCksdH1mdW5jdGlvbiBmKHQsZSxyLGEpe3ZhciBvPXQuY2Qscz10LnlhLGw9b1swXS50cmFjZSxjPW9bMF0udCxmPVtdLGg9dSh0LGUscixhKTtpZighaClyZXR1cm5bXTt2YXIgcD1vW2guaW5kZXhdLmhpfHxsLmhvdmVyaW5mbyxkPXAuc3BsaXQoIisiKTtpZighKCJhbGwiPT09cHx8LTEhPT1kLmluZGV4T2YoInkiKSkpcmV0dXJuW107Zm9yKHZhciBtPVsiaGlnaCIsIm9wZW4iLCJjbG9zZSIsImxvdyJdLGc9e30sdj0wO3Y8bS5sZW5ndGg7disrKXt2YXIgeSx4PW1bdl0sYj1sW3hdW2guaW5kZXhdLF89cy5jMnAoYiwhMCk7YiBpbiBnPyh5PWdbYl0pLnlMYWJlbCs9Ijxicj4iK2MubGFiZWxzW3hdK24uaG92ZXJMYWJlbFRleHQocyxiLGwueWhvdmVyZm9ybWF0KTooKHk9aS5leHRlbmRGbGF0KHt9LGgpKS55MD15LnkxPV8seS55TGFiZWxWYWw9Yix5LnlMYWJlbD1jLmxhYmVsc1t4XStuLmhvdmVyTGFiZWxUZXh0KHMsYixsLnlob3ZlcmZvcm1hdCkseS5uYW1lPSIiLGYucHVzaCh5KSxnW2JdPXkpfXJldHVybiBmfWZ1bmN0aW9uIGgodCxlLHIsaSl7dmFyIGE9dC5jZCxvPXQueWEsbD1hWzBdLnRyYWNlLGY9YVswXS50LGg9dSh0LGUscixpKTtpZighaClyZXR1cm5bXTt2YXIgcD1hW2guaW5kZXhdLGQ9aC5pbmRleD1wLmksbT1wLmRpcjtmdW5jdGlvbiBnKHQpe3JldHVybiBmLmxhYmVsc1t0XStuLmhvdmVyTGFiZWxUZXh0KG8sbFt0XVtkXSxsLnlob3ZlcmZvcm1hdCl9dmFyIHY9cC5oaXx8bC5ob3ZlcmluZm8seT12LnNwbGl0KCIrIikseD0iYWxsIj09PXYsYj14fHwtMSE9PXkuaW5kZXhPZigieSIpLF89eHx8LTEhPT15LmluZGV4T2YoInRleHQiKSx3PWI/W2coIm9wZW4iKSxnKCJoaWdoIiksZygibG93IiksZygiY2xvc2UiKSsiICAiK2NbbV1dOltdO3JldHVybiBfJiZzKHAsbCx3KSxoLmV4dHJhVGV4dD13LmpvaW4oIjxicj4iKSxoLnkwPWgueTE9by5jMnAocC55YywhMCksW2hdfWUuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIsbil7cmV0dXJuIHQuY2RbMF0udHJhY2UuaG92ZXJsYWJlbC5zcGxpdD9mKHQsZSxyLG4pOmgodCxlLHIsbil9LGhvdmVyU3BsaXQ6Zixob3Zlck9uUG9pbnRzOmh9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiOjc0NiwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4Mjd9XSwxMTQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6Im9obGMiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGNhdGVnb3JpZXM6WyJjYXJ0ZXNpYW4iLCJzdmciLCJzaG93TGVnZW5kIl0sbWV0YTp7fSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi9hdHRyaWJ1dGVzIjoxMTM3LCIuL2NhbGMiOjExMzgsIi4vZGVmYXVsdHMiOjExMzksIi4vaG92ZXIiOjExNDAsIi4vcGxvdCI6MTE0MywiLi9zZWxlY3QiOjExNDQsIi4vc3R5bGUiOjExNDV9XSwxMTQyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89cigieCIpLHM9cigib3BlbiIpLGw9cigiaGlnaCIpLGM9cigibG93IiksdT1yKCJjbG9zZSIpO2lmKHIoImhvdmVybGFiZWwuc3BsaXQiKSxuLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiXSxhKSxzJiZsJiZjJiZ1KXt2YXIgZj1NYXRoLm1pbihzLmxlbmd0aCxsLmxlbmd0aCxjLmxlbmd0aCx1Lmxlbmd0aCk7cmV0dXJuIG8mJihmPU1hdGgubWluKGYsaS5taW5Sb3dMZW5ndGgobykpKSxlLl9sZW5ndGg9ZixmfX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDR9XSwxMTQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbz1lLnlheGlzLHM9ZS54YXhpcyxsPSEhcy5yYW5nZWJyZWFrcztpLm1ha2VUcmFjZUdyb3VwcyhhLHIsInRyYWNlIG9obGMiKS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPXRbMF0sYT1yLnQ7aWYoITAhPT1yLnRyYWNlLnZpc2libGV8fGEuZW1wdHkpZS5yZW1vdmUoKTtlbHNle3ZhciBjPWEudGlja0xlbix1PWUuc2VsZWN0QWxsKCJwYXRoIikuZGF0YShpLmlkZW50aXR5KTt1LmVudGVyKCkuYXBwZW5kKCJwYXRoIiksdS5leGl0KCkucmVtb3ZlKCksdS5hdHRyKCJkIiwoZnVuY3Rpb24odCl7aWYodC5lbXB0eSlyZXR1cm4iTTAsMFoiO3ZhciBlPXMuYzJwKHQucG9zLWMsITApLHI9cy5jMnAodC5wb3MrYywhMCksbj1sPyhlK3IpLzI6cy5jMnAodC5wb3MsITApO3JldHVybiJNIitlKyIsIitvLmMycCh0Lm8sITApKyJIIituKyJNIituKyIsIitvLmMycCh0LmgsITApKyJWIitvLmMycCh0LmwsITApKyJNIityKyIsIitvLmMycCh0LmMsITApKyJIIitufSkpfX0pKX19LHsiLi4vLi4vbGliIjo3NzYsIkBwbG90bHkvZDMiOjU4fV0sMTE0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixuPXQuY2QsaT10LnhheGlzLGE9dC55YXhpcyxvPVtdLHM9blswXS50LmJQb3N8fDA7aWYoITE9PT1lKWZvcihyPTA7cjxuLmxlbmd0aDtyKyspbltyXS5zZWxlY3RlZD0wO2Vsc2UgZm9yKHI9MDtyPG4ubGVuZ3RoO3IrKyl7dmFyIGw9bltyXTtlLmNvbnRhaW5zKFtpLmMycChsLnBvcytzKSxhLmMycChsLnljKV0sbnVsbCxsLmksdCk/KG8ucHVzaCh7cG9pbnROdW1iZXI6bC5pLHg6aS5jMmQobC5wb3MpLHk6YS5jMmQobC55Yyl9KSxsLnNlbGVjdGVkPTEpOmwuc2VsZWN0ZWQ9MH1yZXR1cm4gb319LHt9XSwxMTQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIG89cnx8bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLm9obGNsYXllciIpLnNlbGVjdEFsbCgiZy50cmFjZSIpO28uc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdFswXS50cmFjZS5vcGFjaXR5fSkpLG8uZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dFswXS50cmFjZTtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgiKS5lYWNoKChmdW5jdGlvbih0KXtpZighdC5lbXB0eSl7dmFyIHI9ZVt0LmRpcl0ubGluZTtuLnNlbGVjdCh0aGlzKS5zdHlsZSgiZmlsbCIsIm5vbmUiKS5jYWxsKGEuc3Ryb2tlLHIuY29sb3IpLmNhbGwoaS5kYXNoTGluZSxyLmRhc2gsci53aWR0aCkuc3R5bGUoIm9wYWNpdHkiLGUuc2VsZWN0ZWRwb2ludHMmJiF0LnNlbGVjdGVkPy4zOjEpfX0pKX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiQHBsb3RseS9kMyI6NTh9XSwxMTQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGk9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxsPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsYz1uKHtlZGl0VHlwZToiY2FsYyJ9LG8oImxpbmUiLHtlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pLHtzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGluZWFyIiwiaHNwbGluZSJdLGRmbHQ6ImxpbmVhciIsZWRpdFR5cGU6InBsb3QifSxob3ZlcnRlbXBsYXRlOnMoe2VkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSx7a2V5czpbImNvdW50IiwicHJvYmFiaWxpdHkiXX0pfSk7ZS5leHBvcnRzPXtkb21haW46bCh7bmFtZToicGFyY2F0cyIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSksaG92ZXJpbmZvOm4oe30saS5ob3ZlcmluZm8se2ZsYWdzOlsiY291bnQiLCJwcm9iYWJpbGl0eSJdLGVkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSksaG92ZXJvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiY2F0ZWdvcnkiLCJjb2xvciIsImRpbWVuc2lvbiJdLGRmbHQ6ImNhdGVnb3J5IixlZGl0VHlwZToicGxvdCJ9LGhvdmVydGVtcGxhdGU6cyh7ZWRpdFR5cGU6InBsb3QiLGFycmF5T2s6ITF9LHtrZXlzOlsiY291bnQiLCJwcm9iYWJpbGl0eSIsImNhdGVnb3J5IiwiY2F0ZWdvcnljb3VudCIsImNvbG9yY291bnQiLCJiYW5kY29sb3Jjb3VudCJdfSksYXJyYW5nZW1lbnQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInBlcnBlbmRpY3VsYXIiLCJmcmVlZm9ybSIsImZpeGVkIl0sZGZsdDoicGVycGVuZGljdWxhciIsZWRpdFR5cGU6InBsb3QifSxidW5kbGVjb2xvcnM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxzb3J0cGF0aHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImZvcndhcmQiLCJiYWNrd2FyZCJdLGRmbHQ6ImZvcndhcmQiLGVkaXRUeXBlOiJwbG90In0sbGFiZWxmb250OmEoe2VkaXRUeXBlOiJjYWxjIn0pLHRpY2tmb250OmEoe2VkaXRUeXBlOiJjYWxjIn0pLGRpbWVuc2lvbnM6e19pc0xpbmtlZFRvQXJyYXk6ImRpbWVuc2lvbiIsbGFiZWw6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMifSxjYXRlZ29yeW9yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0cmFjZSIsImNhdGVnb3J5IGFzY2VuZGluZyIsImNhdGVnb3J5IGRlc2NlbmRpbmciLCJhcnJheSJdLGRmbHQ6InRyYWNlIixlZGl0VHlwZToiY2FsYyJ9LGNhdGVnb3J5YXJyYXk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdGlja3RleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdLGVkaXRUeXBlOiJjYWxjIn0sZGlzcGxheWluZGV4Ont2YWxUeXBlOiJpbnRlZ2VyIixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIix2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn19LGxpbmU6Yyxjb3VudHM6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoxLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxjdXN0b21kYXRhOnZvaWQgMCxob3ZlcmxhYmVsOnZvaWQgMCxpZHM6dm9pZCAwLGxlZ2VuZGdyb3VwOnZvaWQgMCxsZWdlbmRyYW5rOnZvaWQgMCxvcGFjaXR5OnZvaWQgMCxzZWxlY3RlZHBvaW50czp2b2lkIDAsc2hvd2xlZ2VuZDp2b2lkIDB9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6ODIzLCIuLi8uLi9wbG90cy9kb21haW4iOjg1NSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo4NTYsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OX1dLDExNDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRNb2R1bGVDYWxjRGF0YSxpPXQoIi4vcGxvdCIpO3IubmFtZT0icGFyY2F0cyIsci5wbG90PWZ1bmN0aW9uKHQsZSxyLGEpe3ZhciBvPW4odC5jYWxjZGF0YSwicGFyY2F0cyIpO2lmKG8ubGVuZ3RoKXt2YXIgcz1vWzBdO2kodCxzLHIsYSl9fSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW4uX2hhcyYmbi5faGFzKCJwYXJjYXRzIiksYT1lLl9oYXMmJmUuX2hhcygicGFyY2F0cyIpO2kmJiFhJiZuLl9wYXBlcmRpdi5zZWxlY3RBbGwoIi5wYXJjYXRzIikucmVtb3ZlKCl9fSx7Ii4uLy4uL3Bsb3RzL2dldF9kYXRhIjo4NjQsIi4vcGxvdCI6MTE1Mn1dLDExNDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliL2d1cCIpLndyYXAsaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpLG89dCgiLi4vLi4vbGliL2ZpbHRlcl91bmlxdWUuanMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGw9dCgiLi4vLi4vbGliIiksYz10KCJmYXN0LWlzbnVtZXJpYyIpO2Z1bmN0aW9uIHUodCxlLHIpe3QudmFsdWVJbmRzLnB1c2goZSksdC5jb3VudCs9cn1mdW5jdGlvbiBmKHQsZSxyKXtyZXR1cm57Y2F0ZWdvcnlJbmRzOnQsY29sb3I6ZSxyYXdDb2xvcjpyLHZhbHVlSW5kczpbXSxjb3VudDowfX1mdW5jdGlvbiBoKHQsZSxyKXt0LnZhbHVlSW5kcy5wdXNoKGUpLHQuY291bnQrPXJ9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bC5maWx0ZXJWaXNpYmxlKGUuZGltZW5zaW9ucyk7aWYoMD09PXIubGVuZ3RoKXJldHVybltdO3ZhciBwLGQsbSxnPXIubWFwKChmdW5jdGlvbih0KXt2YXIgZTtpZigidHJhY2UiPT09dC5jYXRlZ29yeW9yZGVyKWU9bnVsbDtlbHNlIGlmKCJhcnJheSI9PT10LmNhdGVnb3J5b3JkZXIpZT10LmNhdGVnb3J5YXJyYXk7ZWxzZXtlPW8odC52YWx1ZXMpO2Zvcih2YXIgcj0hMCxuPTA7bjxlLmxlbmd0aDtuKyspaWYoIWMoZVtuXSkpe3I9ITE7YnJlYWt9ZS5zb3J0KHI/bC5zb3J0ZXJBc2M6dm9pZCAwKSwiY2F0ZWdvcnkgZGVzY2VuZGluZyI9PT10LmNhdGVnb3J5b3JkZXImJihlPWUucmV2ZXJzZSgpKX1yZXR1cm4gZnVuY3Rpb24odCxlKXtlPW51bGw9PWU/W106ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0fSkpO3ZhciByPXt9LG49e30saT1bXTtlLmZvckVhY2goKGZ1bmN0aW9uKHQsZSl7clt0XT0wLG5bdF09ZX0pKTtmb3IodmFyIGE9MDthPHQubGVuZ3RoO2ErKyl7dmFyIG8scz10W2FdO3ZvaWQgMD09PXJbc10/KHJbc109MSxvPWUucHVzaChzKS0xLG5bc109byk6KHJbc10rKyxvPW5bc10pLGkucHVzaChvKX12YXIgbD1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHJbdF19KSk7cmV0dXJue3VuaXF1ZVZhbHVlczplLHVuaXF1ZUNvdW50czpsLGluZHM6aX19KHQudmFsdWVzLGUpfSkpO3A9bC5pc0FycmF5T3JUeXBlZEFycmF5KGUuY291bnRzKT9lLmNvdW50czpbZS5jb3VudHNdLGZ1bmN0aW9uKHQpe3ZhciBlO2lmKGZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1uZXcgQXJyYXkodC5sZW5ndGgpLHI9MDtyPHQubGVuZ3RoO3IrKyl7aWYodFtyXTwwfHx0W3JdPj10Lmxlbmd0aClyZXR1cm4hMTtpZih2b2lkIDAhPT1lW3Rbcl1dKXJldHVybiExO2VbdFtyXV09ITB9cmV0dXJuITB9KHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5aW5kZXh9KSkpKWZvcihlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS5fZGlzcGxheWluZGV4PXRbZV0uZGlzcGxheWluZGV4O2Vsc2UgZm9yKGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLl9kaXNwbGF5aW5kZXg9ZX0ociksci5mb3JFYWNoKChmdW5jdGlvbih0LGUpeyFmdW5jdGlvbih0LGUpe3QuX2NhdGVnb3J5YXJyYXk9ZS51bmlxdWVWYWx1ZXMsbnVsbD09PXQudGlja3RleHR8fHZvaWQgMD09PXQudGlja3RleHQ/dC5fdGlja3RleHQ9W106dC5fdGlja3RleHQ9dC50aWNrdGV4dC5zbGljZSgpO2Zvcih2YXIgcj10Ll90aWNrdGV4dC5sZW5ndGg7cjxlLnVuaXF1ZVZhbHVlcy5sZW5ndGg7cisrKXQuX3RpY2t0ZXh0LnB1c2goZS51bmlxdWVWYWx1ZXNbcl0pfSh0LGdbZV0pfSkpO3ZhciB2LHk9ZS5saW5lO3k/KGkoZSwibGluZSIpJiZhKHQsZSx7dmFsczplLmxpbmUuY29sb3IsY29udGFpbmVyU3RyOiJsaW5lIixjTGV0dGVyOiJjIn0pLHY9cy50cnlDb2xvcnNjYWxlKHkpKTp2PWwuaWRlbnRpdHk7dmFyIHgsYixfLHcsVCxrPXJbMF0udmFsdWVzLmxlbmd0aCxBPXt9LE09Zy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmluZHN9KSk7Zm9yKG09MCx4PTA7eDxrO3grKyl7dmFyIFM9W107Zm9yKGI9MDtiPE0ubGVuZ3RoO2IrKylTLnB1c2goTVtiXVt4XSk7ZD1wW3glcC5sZW5ndGhdLG0rPWQ7dmFyIEU9KF89eCx3PXZvaWQgMCxUPXZvaWQgMCxsLmlzQXJyYXlPclR5cGVkQXJyYXkoeS5jb2xvcik/VD13PXkuY29sb3JbXyV5LmNvbG9yLmxlbmd0aF06dz15LmNvbG9yLHtjb2xvcjp2KHcpLHJhd0NvbG9yOlR9KSxMPVMrIi0iK0UucmF3Q29sb3I7dm9pZCAwPT09QVtMXSYmKEFbTF09ZihTLEUuY29sb3IsRS5yYXdDb2xvcikpLGgoQVtMXSx4LGQpfXZhciBDLFA9ci5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHQsZSxyLG4saSl7cmV0dXJue2RpbWVuc2lvbkluZDp0LGNvbnRhaW5lckluZDplLGRpc3BsYXlJbmQ6cixkaW1lbnNpb25MYWJlbDpuLGNvdW50OmksY2F0ZWdvcmllczpbXSxkcmFnWDpudWxsfX0oZSx0Ll9pbmRleCx0Ll9kaXNwbGF5aW5kZXgsdC5sYWJlbCxtKX0pKTtmb3IoeD0wO3g8azt4KyspZm9yKGQ9cFt4JXAubGVuZ3RoXSxiPTA7YjxQLmxlbmd0aDtiKyspe3ZhciBJPVBbYl0uY29udGFpbmVySW5kLE89Z1tiXS5pbmRzW3hdLHo9UFtiXS5jYXRlZ29yaWVzO2lmKHZvaWQgMD09PXpbT10pe3ZhciBEPWUuZGltZW5zaW9uc1tJXS5fY2F0ZWdvcnlhcnJheVtPXSxSPWUuZGltZW5zaW9uc1tJXS5fdGlja3RleHRbT107eltPXT17ZGltZW5zaW9uSW5kOmIsY2F0ZWdvcnlJbmQ6Qz1PLGNhdGVnb3J5VmFsdWU6RCxkaXNwbGF5SW5kOkMsY2F0ZWdvcnlMYWJlbDpSLHZhbHVlSW5kczpbXSxjb3VudDowLGRyYWdZOm51bGx9fXUoeltPXSx4LGQpfXJldHVybiBuKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2F0ZWdvcmllcy5sZW5ndGh9KSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiBNYXRoLm1heCh0LGUpfSkpO3JldHVybntkaW1lbnNpb25zOnQscGF0aHM6ZSx0cmFjZTp2b2lkIDAsbWF4Q2F0czpuLGNvdW50OnJ9fShQLEEsbSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6NjQ3LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyI6NjUwLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9maWx0ZXJfdW5pcXVlLmpzIjo3NjcsIi4uLy4uL2xpYi9ndXAiOjc3MywiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDExNDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxvPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzLHM9dCgiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIiksbD10KCIuL2F0dHJpYnV0ZXMiKSxjPXQoIi4uL3BhcmNvb3Jkcy9tZXJnZV9sZW5ndGgiKTtmdW5jdGlvbiB1KHQsZSl7ZnVuY3Rpb24gcihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbC5kaW1lbnNpb25zLHIsaSl9dmFyIGk9cigidmFsdWVzIiksYT1yKCJ2aXNpYmxlIik7aWYoaSYmaS5sZW5ndGh8fChhPWUudmlzaWJsZT0hMSksYSl7cigibGFiZWwiKSxyKCJkaXNwbGF5aW5kZXgiLGUuX2luZGV4KTt2YXIgbyxzPXQuY2F0ZWdvcnlhcnJheSxjPUFycmF5LmlzQXJyYXkocykmJnMubGVuZ3RoPjA7YyYmKG89ImFycmF5Iik7dmFyIHU9cigiY2F0ZWdvcnlvcmRlciIsbyk7ImFycmF5Ij09PXU/KHIoImNhdGVnb3J5YXJyYXkiKSxyKCJ0aWNrdGV4dCIpKTooZGVsZXRlIHQuY2F0ZWdvcnlhcnJheSxkZWxldGUgdC50aWNrdGV4dCksY3x8ImFycmF5IiE9PXV8fChlLmNhdGVnb3J5b3JkZXI9InRyYWNlIil9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixmKXtmdW5jdGlvbiBoKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxsLHIsaSl9dmFyIHA9cyh0LGUse25hbWU6ImRpbWVuc2lvbnMiLGhhbmRsZUl0ZW1EZWZhdWx0czp1fSksZD1mdW5jdGlvbih0LGUscixvLHMpe3MoImxpbmUuc2hhcGUiKSxzKCJsaW5lLmhvdmVydGVtcGxhdGUiKTt2YXIgbD1zKCJsaW5lLmNvbG9yIixvLmNvbG9yd2F5WzBdKTtpZihpKHQsImxpbmUiKSYmbi5pc0FycmF5T3JUeXBlZEFycmF5KGwpKXtpZihsLmxlbmd0aClyZXR1cm4gcygibGluZS5jb2xvcnNjYWxlIiksYSh0LGUsbyxzLHtwcmVmaXg6ImxpbmUuIixjTGV0dGVyOiJjIn0pLGwubGVuZ3RoO2UubGluZS5jb2xvcj1yfXJldHVybiAxLzB9KHQsZSxyLGYsaCk7byhlLGYsaCksQXJyYXkuaXNBcnJheShwKSYmcC5sZW5ndGh8fChlLnZpc2libGU9ITEpLGMoZSxwLCJ2YWx1ZXMiLGQpLGgoImhvdmVyb24iKSxoKCJob3ZlcnRlbXBsYXRlIiksaCgiYXJyYW5nZW1lbnQiKSxoKCJidW5kbGVjb2xvcnMiKSxoKCJzb3J0cGF0aHMiKSxoKCJjb3VudHMiKTt2YXIgbT17ZmFtaWx5OmYuZm9udC5mYW1pbHksc2l6ZTpNYXRoLnJvdW5kKGYuZm9udC5zaXplKSxjb2xvcjpmLmZvbnQuY29sb3J9O24uY29lcmNlRm9udChoLCJsYWJlbGZvbnQiLG0pO3ZhciBnPXtmYW1pbHk6Zi5mb250LmZhbWlseSxzaXplOk1hdGgucm91bmQoZi5mb250LnNpemUvMS4yKSxjb2xvcjpmLmZvbnQuY29sb3J9O24uY29lcmNlRm9udChoLCJ0aWNrZm9udCIsZyl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyI6NjQ5LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyI6NjUwLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvYXJyYXlfY29udGFpbmVyX2RlZmF1bHRzIjo4MjIsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6ODU1LCIuLi9wYXJjb29yZHMvbWVyZ2VfbGVuZ3RoIjoxMTYyLCIuL2F0dHJpYnV0ZXMiOjExNDZ9XSwxMTUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLGNvbG9yYmFyOntjb250YWluZXI6ImxpbmUiLG1pbjoiY21pbiIsbWF4OiJjbWF4In0sbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InBhcmNhdHMiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbIm5vT3BhY2l0eSJdLG1ldGE6e319fSx7Ii4vYXR0cmlidXRlcyI6MTE0NiwiLi9iYXNlX3Bsb3QiOjExNDcsIi4vY2FsYyI6MTE0OCwiLi9kZWZhdWx0cyI6MTE0OSwiLi9wbG90IjoxMTUyfV0sMTE1MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCJkMy1pbnRlcnBvbGF0ZSIpLmludGVycG9sYXRlTnVtYmVyLGE9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF9hcGkiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxzPXQoIi4uLy4uL2xpYiIpLGw9cy5zdHJUcmFuc2xhdGUsYz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSx1PXQoInRpbnljb2xvcjIiKSxmPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpO2Z1bmN0aW9uIGgodCxlLHIsaSl7dmFyIGE9dC5tYXAoRi5iaW5kKDAsZSxyKSksbz1pLnNlbGVjdEFsbCgiZy5wYXJjYXRzbGF5ZXIiKS5kYXRhKFtudWxsXSk7by5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwicGFyY2F0c2xheWVyIikuc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIik7dmFyIHU9by5zZWxlY3RBbGwoImcudHJhY2UucGFyY2F0cyIpLmRhdGEoYSxwKSxoPXUuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsInRyYWNlIHBhcmNhdHMiKTt1LmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBsKHQueCx0LnkpfSkpLGguYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJwYXRocyIpO3ZhciB5PXUuc2VsZWN0KCJnLnBhdGhzIikuc2VsZWN0QWxsKCJwYXRoLnBhdGgiKS5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5wYXRoc30pLHApO3kuYXR0cigiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1vZGVsLmNvbG9yfSkpO3ZhciB4PXkuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5hdHRyKCJjbGFzcyIsInBhdGgiKS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsMCkuYXR0cigiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1vZGVsLmNvbG9yfSkpLmF0dHIoImZpbGwtb3BhY2l0eSIsMCk7Xyh4KSx5LmF0dHIoImQiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdmdEfSkpLHguZW1wdHkoKXx8eS5zb3J0KG0pLHkuZXhpdCgpLnJlbW92ZSgpLHkub24oIm1vdXNlb3ZlciIsZykub24oIm1vdXNlb3V0Iix2KS5vbigiY2xpY2siLGIpLGguYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJkaW1lbnNpb25zIik7dmFyIHc9dS5zZWxlY3QoImcuZGltZW5zaW9ucyIpLnNlbGVjdEFsbCgiZy5kaW1lbnNpb24iKS5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaW1lbnNpb25zfSkscCk7dy5lbnRlcigpLmFwcGVuZCgiZyIpLmF0dHIoImNsYXNzIiwiZGltZW5zaW9uIiksdy5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gbCh0LngsMCl9KSksdy5leGl0KCkucmVtb3ZlKCk7dmFyIEE9dy5zZWxlY3RBbGwoImcuY2F0ZWdvcnkiKS5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXRlZ29yaWVzfSkscCksTT1BLmVudGVyKCkuYXBwZW5kKCJnIikuYXR0cigiY2xhc3MiLCJjYXRlZ29yeSIpO0EuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGwoMCx0LnkpfSkpLE0uYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJjYXRyZWN0IikuYXR0cigicG9pbnRlci1ldmVudHMiLCJub25lIiksQS5zZWxlY3QoInJlY3QuY2F0cmVjdCIpLmF0dHIoImZpbGwiLCJub25lIikuYXR0cigid2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC53aWR0aH0pKS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHR9KSksVChNKTt2YXIgUz1BLnNlbGVjdEFsbCgicmVjdC5iYW5kcmVjdCIpLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmJhbmRzfSkscCk7Uy5lYWNoKChmdW5jdGlvbigpe3MucmFpc2VUb1RvcCh0aGlzKX0pKSxTLmF0dHIoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2xvcn0pKTt2YXIgRT1TLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuYXR0cigiY2xhc3MiLCJiYW5kcmVjdCIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwwKS5hdHRyKCJmaWxsIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sb3J9KSkuYXR0cigiZmlsbC1vcGFjaXR5IiwwKTtTLmF0dHIoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2xvcn0pKS5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LndpZHRofSkpLmF0dHIoImhlaWdodCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodH0pKS5hdHRyKCJ5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQueX0pKS5hdHRyKCJjdXJzb3IiLChmdW5jdGlvbih0KXtyZXR1cm4iZml4ZWQiPT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50PyJkZWZhdWx0IjoicGVycGVuZGljdWxhciI9PT10LnBhcmNhdHNWaWV3TW9kZWwuYXJyYW5nZW1lbnQ/Im5zLXJlc2l6ZSI6Im1vdmUifSkpLGsoRSksUy5leGl0KCkucmVtb3ZlKCksTS5hcHBlbmQoInRleHQiKS5hdHRyKCJjbGFzcyIsImNhdGxhYmVsIikuYXR0cigicG9pbnRlci1ldmVudHMiLCJub25lIik7dmFyIHo9ZS5fZnVsbExheW91dC5wYXBlcl9iZ2NvbG9yO0Euc2VsZWN0KCJ0ZXh0LmNhdGxhYmVsIikuYXR0cigidGV4dC1hbmNob3IiLChmdW5jdGlvbih0KXtyZXR1cm4gZCh0KT8ic3RhcnQiOiJlbmQifSkpLmF0dHIoImFsaWdubWVudC1iYXNlbGluZSIsIm1pZGRsZSIpLnN0eWxlKCJ0ZXh0LXNoYWRvdyIsZi5tYWtlVGV4dFNoYWRvdyh6KSkuc3R5bGUoImZpbGwiLCJyZ2IoMCwgMCwgMCkiKS5hdHRyKCJ4IiwoZnVuY3Rpb24odCl7cmV0dXJuIGQodCk/dC53aWR0aCs1Oi01fSkpLmF0dHIoInkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5oZWlnaHQvMn0pKS50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gdC5tb2RlbC5jYXRlZ29yeUxhYmVsfSkpLmVhY2goKGZ1bmN0aW9uKHQpe2MuZm9udChuLnNlbGVjdCh0aGlzKSx0LnBhcmNhdHNWaWV3TW9kZWwuY2F0ZWdvcnlsYWJlbGZvbnQpLGYuY29udmVydFRvVHNwYW5zKG4uc2VsZWN0KHRoaXMpLGUpfSkpLE0uYXBwZW5kKCJ0ZXh0IikuYXR0cigiY2xhc3MiLCJkaW1sYWJlbCIpLEEuc2VsZWN0KCJ0ZXh0LmRpbWxhYmVsIikuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5hdHRyKCJhbGlnbm1lbnQtYmFzZWxpbmUiLCJiYXNlbGluZSIpLmF0dHIoImN1cnNvciIsKGZ1bmN0aW9uKHQpe3JldHVybiJmaXhlZCI9PT10LnBhcmNhdHNWaWV3TW9kZWwuYXJyYW5nZW1lbnQ/ImRlZmF1bHQiOiJldy1yZXNpemUifSkpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4gdC53aWR0aC8yfSkpLmF0dHIoInkiLC01KS50ZXh0KChmdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZT90LnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuZGltZW5zaW9uc1t0Lm1vZGVsLmRpbWVuc2lvbkluZF0uZGltZW5zaW9uTGFiZWw6bnVsbH0pKS5lYWNoKChmdW5jdGlvbih0KXtjLmZvbnQobi5zZWxlY3QodGhpcyksdC5wYXJjYXRzVmlld01vZGVsLmxhYmVsZm9udCl9KSksQS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKS5vbigibW91c2VvdmVyIixMKS5vbigibW91c2VvdXQiLEMpLEEuZXhpdCgpLnJlbW92ZSgpLHcuY2FsbChuLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oKGZ1bmN0aW9uKHQpe3JldHVybnt4OnQueCx5OjB9fSkpLm9uKCJkcmFnc3RhcnQiLFApLm9uKCJkcmFnIixJKS5vbigiZHJhZ2VuZCIsTykpLHUuZWFjaCgoZnVuY3Rpb24odCl7dC50cmFjZVNlbGVjdGlvbj1uLnNlbGVjdCh0aGlzKSx0LnBhdGhTZWxlY3Rpb249bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnBhdGhzIikuc2VsZWN0QWxsKCJwYXRoLnBhdGgiKSx0LmRpbWVuc2lvblNlbGVjdGlvbj1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuZGltZW5zaW9ucyIpLnNlbGVjdEFsbCgiZy5kaW1lbnNpb24iKX0pKSx1LmV4aXQoKS5yZW1vdmUoKX1mdW5jdGlvbiBwKHQpe3JldHVybiB0LmtleX1mdW5jdGlvbiBkKHQpe3ZhciBlPXQucGFyY2F0c1ZpZXdNb2RlbC5kaW1lbnNpb25zLmxlbmd0aCxyPXQucGFyY2F0c1ZpZXdNb2RlbC5kaW1lbnNpb25zW2UtMV0ubW9kZWwuZGltZW5zaW9uSW5kO3JldHVybiB0Lm1vZGVsLmRpbWVuc2lvbkluZD09PXJ9ZnVuY3Rpb24gbSh0LGUpe3JldHVybiB0Lm1vZGVsLnJhd0NvbG9yPmUubW9kZWwucmF3Q29sb3I/MTp0Lm1vZGVsLnJhd0NvbG9yPGUubW9kZWwucmF3Q29sb3I/LTE6MH1mdW5jdGlvbiBnKHQpe2lmKCF0LnBhcmNhdHNWaWV3TW9kZWwuZHJhZ0RpbWVuc2lvbiYmLTE9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigic2tpcCIpKXtzLnJhaXNlVG9Ub3AodGhpcyksdyhuLnNlbGVjdCh0aGlzKSk7dmFyIGU9eSh0KSxyPXgodCk7aWYodC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LmVtaXQoInBsb3RseV9ob3ZlciIse3BvaW50czplLGV2ZW50Om4uZXZlbnQsY29uc3RyYWludHM6cn0pLC0xPT09dC5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoIm5vbmUiKSl7dmFyIGksYSxsLGM9bi5tb3VzZSh0aGlzKVswXSxmPXQucGFyY2F0c1ZpZXdNb2RlbC5ncmFwaERpdixoPXQucGFyY2F0c1ZpZXdNb2RlbC50cmFjZSxwPWYuX2Z1bGxMYXlvdXQsZD1wLl9wYXBlcmRpdi5ub2RlKCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbT10LnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Zm9yKGw9MDtsPHQubGVmdFhzLmxlbmd0aC0xO2wrKylpZih0LmxlZnRYc1tsXSt0LmRpbVdpZHRoc1tsXS0yPD1jJiZjPD10LmxlZnRYc1tsKzFdKzIpe3ZhciBnPXQucGFyY2F0c1ZpZXdNb2RlbC5kaW1lbnNpb25zW2xdLHY9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbbCsxXTtpPShnLngrZy53aWR0aCt2LngpLzIsYT0odC50b3BZc1tsXSt0LnRvcFlzW2wrMV0rdC5oZWlnaHQpLzI7YnJlYWt9dmFyIGI9dC5wYXJjYXRzVmlld01vZGVsLngraSxfPXQucGFyY2F0c1ZpZXdNb2RlbC55K2EsVD11Lm1vc3RSZWFkYWJsZSh0Lm1vZGVsLmNvbG9yLFsiYmxhY2siLCJ3aGl0ZSJdKSxrPXQubW9kZWwuY291bnQsQT1rL3QucGFyY2F0c1ZpZXdNb2RlbC5tb2RlbC5jb3VudCxNPXtjb3VudExhYmVsOmsscHJvYmFiaWxpdHlMYWJlbDpBLnRvRml4ZWQoMyl9LFM9W107LTEhPT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigiY291bnQiKSYmUy5wdXNoKFsiQ291bnQ6IixNLmNvdW50TGFiZWxdLmpvaW4oIiAiKSksLTEhPT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigicHJvYmFiaWxpdHkiKSYmUy5wdXNoKFsiUDoiLE0ucHJvYmFiaWxpdHlMYWJlbF0uam9pbigiICIpKTt2YXIgRT1TLmpvaW4oIjxicj4iKSxMPW4ubW91c2UoZilbMF07by5sb25lSG92ZXIoe3RyYWNlOmgseDpiLWQubGVmdCttLmxlZnQseTpfLWQudG9wK20udG9wLHRleHQ6RSxjb2xvcjp0Lm1vZGVsLmNvbG9yLGJvcmRlckNvbG9yOiJibGFjayIsZm9udEZhbWlseTonTW9uYWNvLCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnLGZvbnRTaXplOjEwLGZvbnRDb2xvcjpULGlkZWFsQWxpZ246TDxiPyJyaWdodCI6ImxlZnQiLGhvdmVydGVtcGxhdGU6KGgubGluZXx8e30pLmhvdmVydGVtcGxhdGUsaG92ZXJ0ZW1wbGF0ZUxhYmVsczpNLGV2ZW50RGF0YTpbe2RhdGE6aC5faW5wdXQsZnVsbERhdGE6aCxjb3VudDprLHByb2JhYmlsaXR5OkF9XX0se2NvbnRhaW5lcjpwLl9ob3ZlcmxheWVyLm5vZGUoKSxvdXRlckNvbnRhaW5lcjpwLl9wYXBlci5ub2RlKCksZ2Q6Zn0pfX19ZnVuY3Rpb24gdih0KXtpZighdC5wYXJjYXRzVmlld01vZGVsLmRyYWdEaW1lbnNpb24mJihfKG4uc2VsZWN0KHRoaXMpKSxvLmxvbmVVbmhvdmVyKHQucGFyY2F0c1ZpZXdNb2RlbC5ncmFwaERpdi5fZnVsbExheW91dC5faG92ZXJsYXllci5ub2RlKCkpLHQucGFyY2F0c1ZpZXdNb2RlbC5wYXRoU2VsZWN0aW9uLnNvcnQobSksLTE9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigic2tpcCIpKSl7dmFyIGU9eSh0KSxyPXgodCk7dC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LmVtaXQoInBsb3RseV91bmhvdmVyIix7cG9pbnRzOmUsZXZlbnQ6bi5ldmVudCxjb25zdHJhaW50czpyfSl9fWZ1bmN0aW9uIHkodCl7Zm9yKHZhciBlPVtdLHI9eih0LnBhcmNhdHNWaWV3TW9kZWwpLG49MDtuPHQubW9kZWwudmFsdWVJbmRzLmxlbmd0aDtuKyspe3ZhciBpPXQubW9kZWwudmFsdWVJbmRzW25dO2UucHVzaCh7Y3VydmVOdW1iZXI6cixwb2ludE51bWJlcjppfSl9cmV0dXJuIGV9ZnVuY3Rpb24geCh0KXtmb3IodmFyIGU9e30scj10LnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuZGltZW5zaW9ucyxuPTA7bjxyLmxlbmd0aDtuKyspe3ZhciBpPXJbbl0sYT1pLmNhdGVnb3JpZXNbdC5tb2RlbC5jYXRlZ29yeUluZHNbbl1dO2VbaS5jb250YWluZXJJbmRdPWEuY2F0ZWdvcnlWYWx1ZX1yZXR1cm4gdm9pZCAwIT09dC5tb2RlbC5yYXdDb2xvciYmKGUuY29sb3I9dC5tb2RlbC5yYXdDb2xvciksZX1mdW5jdGlvbiBiKHQpe2lmKC0xPT09dC5wYXJjYXRzVmlld01vZGVsLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoInNraXAiKSl7dmFyIGU9eSh0KSxyPXgodCk7dC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LmVtaXQoInBsb3RseV9jbGljayIse3BvaW50czplLGV2ZW50Om4uZXZlbnQsY29uc3RyYWludHM6cn0pfX1mdW5jdGlvbiBfKHQpe3QuYXR0cigiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1vZGVsLmNvbG9yfSkpLmF0dHIoImZpbGwtb3BhY2l0eSIsLjYpLmF0dHIoInN0cm9rZSIsImxpZ2h0Z3JheSIpLmF0dHIoInN0cm9rZS13aWR0aCIsLjIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwxKX1mdW5jdGlvbiB3KHQpe3QuYXR0cigiZmlsbC1vcGFjaXR5IiwuOCkuYXR0cigic3Ryb2tlIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUubW9zdFJlYWRhYmxlKHQubW9kZWwuY29sb3IsWyJibGFjayIsIndoaXRlIl0pfSkpLmF0dHIoInN0cm9rZS13aWR0aCIsLjMpfWZ1bmN0aW9uIFQodCl7dC5zZWxlY3QoInJlY3QuY2F0cmVjdCIpLmF0dHIoInN0cm9rZSIsImJsYWNrIikuYXR0cigic3Ryb2tlLXdpZHRoIiwxKS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsMSl9ZnVuY3Rpb24gayh0KXt0LmF0dHIoInN0cm9rZSIsImJsYWNrIikuYXR0cigic3Ryb2tlLXdpZHRoIiwuMikuYXR0cigic3Ryb2tlLW9wYWNpdHkiLDEpLmF0dHIoImZpbGwtb3BhY2l0eSIsMSl9ZnVuY3Rpb24gQSh0KXt2YXIgZT10LnBhcmNhdHNWaWV3TW9kZWwucGF0aFNlbGVjdGlvbixyPXQuY2F0ZWdvcnlWaWV3TW9kZWwubW9kZWwuZGltZW5zaW9uSW5kLG49dC5jYXRlZ29yeVZpZXdNb2RlbC5tb2RlbC5jYXRlZ29yeUluZDtyZXR1cm4gZS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLm1vZGVsLmNhdGVnb3J5SW5kc1tyXT09PW4mJmUubW9kZWwuY29sb3I9PT10LmNvbG9yfSkpfWZ1bmN0aW9uIE0odCxlLHIpe3ZhciBpPW4uc2VsZWN0KHQpLmRhdHVtKCksYT1pLmNhdGVnb3J5Vmlld01vZGVsLm1vZGVsLG89aS5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LHM9bi5zZWxlY3QodC5wYXJlbnROb2RlKS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKSxsPVtdO3MuZWFjaCgoZnVuY3Rpb24odCl7QSh0KS5lYWNoKChmdW5jdGlvbih0KXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShsLHkodCkpfSkpfSkpO3ZhciBjPXt9O2NbYS5kaW1lbnNpb25JbmRdPWEuY2F0ZWdvcnlWYWx1ZSxvLmVtaXQoZSx7cG9pbnRzOmwsZXZlbnQ6cixjb25zdHJhaW50czpjfSl9ZnVuY3Rpb24gUyh0LGUscil7dmFyIGk9bi5zZWxlY3QodCkuZGF0dW0oKSxhPWkuY2F0ZWdvcnlWaWV3TW9kZWwubW9kZWwsbz1pLnBhcmNhdHNWaWV3TW9kZWwuZ3JhcGhEaXYscz1BKGkpLGw9W107cy5lYWNoKChmdW5jdGlvbih0KXtBcnJheS5wcm90b3R5cGUucHVzaC5hcHBseShsLHkodCkpfSkpO3ZhciBjPXt9O2NbYS5kaW1lbnNpb25JbmRdPWEuY2F0ZWdvcnlWYWx1ZSx2b2lkIDAhPT1pLnJhd0NvbG9yJiYoYy5jb2xvcj1pLnJhd0NvbG9yKSxvLmVtaXQoZSx7cG9pbnRzOmwsZXZlbnQ6cixjb25zdHJhaW50czpjfSl9ZnVuY3Rpb24gRSh0LGUscil7dC5fZnVsbExheW91dC5fY2FsY0ludmVyc2VUcmFuc2Zvcm0odCk7dmFyIGksYSxvPXQuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWCxzPXQuX2Z1bGxMYXlvdXQuX2ludlNjYWxlWSxsPW4uc2VsZWN0KHIucGFyZW50Tm9kZSkuc2VsZWN0KCJyZWN0LmNhdHJlY3QiKSxjPWwubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHU9bC5kYXR1bSgpLGY9dS5wYXJjYXRzVmlld01vZGVsLGg9Zi5tb2RlbC5kaW1lbnNpb25zW3UubW9kZWwuZGltZW5zaW9uSW5kXSxwPWYudHJhY2UsZD1jLnRvcCtjLmhlaWdodC8yO2YuZGltZW5zaW9ucy5sZW5ndGg+MSYmaC5kaXNwbGF5SW5kPT09Zi5kaW1lbnNpb25zLmxlbmd0aC0xPyhpPWMubGVmdCxhPSJsZWZ0Iik6KGk9Yy5sZWZ0K2Mud2lkdGgsYT0icmlnaHQiKTt2YXIgbT11Lm1vZGVsLmNvdW50LGc9dS5tb2RlbC5jYXRlZ29yeUxhYmVsLHY9bS91LnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuY291bnQseT17Y291bnRMYWJlbDptLGNhdGVnb3J5TGFiZWw6Zyxwcm9iYWJpbGl0eUxhYmVsOnYudG9GaXhlZCgzKX0seD1bXTstMSE9PXUucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJjb3VudCIpJiZ4LnB1c2goWyJDb3VudDoiLHkuY291bnRMYWJlbF0uam9pbigiICIpKSwtMSE9PXUucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJwcm9iYWJpbGl0eSIpJiZ4LnB1c2goWyJQKCIreS5jYXRlZ29yeUxhYmVsKyIpOiIseS5wcm9iYWJpbGl0eUxhYmVsXS5qb2luKCIgIikpO3ZhciBiPXguam9pbigiPGJyPiIpO3JldHVybnt0cmFjZTpwLHg6byooaS1lLmxlZnQpLHk6cyooZC1lLnRvcCksdGV4dDpiLGNvbG9yOiJsaWdodGdyYXkiLGJvcmRlckNvbG9yOiJibGFjayIsZm9udEZhbWlseTonTW9uYWNvLCAiQ291cmllciBOZXciLCBtb25vc3BhY2UnLGZvbnRTaXplOjEyLGZvbnRDb2xvcjoiYmxhY2siLGlkZWFsQWxpZ246YSxob3ZlcnRlbXBsYXRlOnAuaG92ZXJ0ZW1wbGF0ZSxob3ZlcnRlbXBsYXRlTGFiZWxzOnksZXZlbnREYXRhOlt7ZGF0YTpwLl9pbnB1dCxmdWxsRGF0YTpwLGNvdW50Om0sY2F0ZWdvcnk6Zyxwcm9iYWJpbGl0eTp2fV19fWZ1bmN0aW9uIEwodCl7aWYoIXQucGFyY2F0c1ZpZXdNb2RlbC5kcmFnRGltZW5zaW9uJiYtMT09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJza2lwIikpe2lmKG4ubW91c2UodGhpcylbMV08LTEpcmV0dXJuO3ZhciBlLHI9dC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2LGk9ci5fZnVsbExheW91dCxhPWkuX3BhcGVyZGl2Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxsPXQucGFyY2F0c1ZpZXdNb2RlbC5ob3Zlcm9uO2lmKCJjb2xvciI9PT1sPyghZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuZGF0dW0oKSxyPUEoZSk7dyhyKSxyLmVhY2goKGZ1bmN0aW9uKCl7cy5yYWlzZVRvVG9wKHRoaXMpfSkpLG4uc2VsZWN0KHQucGFyZW50Tm9kZSkuc2VsZWN0QWxsKCJyZWN0LmJhbmRyZWN0IikuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2xvcj09PWUuY29sb3J9KSkuZWFjaCgoZnVuY3Rpb24oKXtzLnJhaXNlVG9Ub3AodGhpcyksbi5zZWxlY3QodGhpcykuYXR0cigic3Ryb2tlIiwiYmxhY2siKS5hdHRyKCJzdHJva2Utd2lkdGgiLDEuNSl9KSl9KHRoaXMpLFModGhpcywicGxvdGx5X2hvdmVyIixuLmV2ZW50KSk6KCFmdW5jdGlvbih0KXtuLnNlbGVjdCh0LnBhcmVudE5vZGUpLnNlbGVjdEFsbCgicmVjdC5iYW5kcmVjdCIpLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPUEodCk7dyhlKSxlLmVhY2goKGZ1bmN0aW9uKCl7cy5yYWlzZVRvVG9wKHRoaXMpfSkpfSkpLG4uc2VsZWN0KHQucGFyZW50Tm9kZSkuc2VsZWN0KCJyZWN0LmNhdHJlY3QiKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS13aWR0aCIsMi41KX0odGhpcyksTSh0aGlzLCJwbG90bHlfaG92ZXIiLG4uZXZlbnQpKSwtMT09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJub25lIikpImNhdGVnb3J5Ij09PWw/ZT1FKHIsYSx0aGlzKToiY29sb3IiPT09bD9lPWZ1bmN0aW9uKHQsZSxyKXt0Ll9mdWxsTGF5b3V0Ll9jYWxjSW52ZXJzZVRyYW5zZm9ybSh0KTt2YXIgaSxhLG89dC5fZnVsbExheW91dC5faW52U2NhbGVYLHM9dC5fZnVsbExheW91dC5faW52U2NhbGVZLGw9ci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxjPW4uc2VsZWN0KHIpLmRhdHVtKCksZj1jLmNhdGVnb3J5Vmlld01vZGVsLGg9Zi5wYXJjYXRzVmlld01vZGVsLHA9aC5tb2RlbC5kaW1lbnNpb25zW2YubW9kZWwuZGltZW5zaW9uSW5kXSxkPWgudHJhY2UsbT1sLnkrbC5oZWlnaHQvMjtoLmRpbWVuc2lvbnMubGVuZ3RoPjEmJnAuZGlzcGxheUluZD09PWguZGltZW5zaW9ucy5sZW5ndGgtMT8oaT1sLmxlZnQsYT0ibGVmdCIpOihpPWwubGVmdCtsLndpZHRoLGE9InJpZ2h0Iik7dmFyIGc9Zi5tb2RlbC5jYXRlZ29yeUxhYmVsLHY9Yy5wYXJjYXRzVmlld01vZGVsLm1vZGVsLmNvdW50LHk9MDtjLmNhdGVnb3J5Vmlld01vZGVsLmJhbmRzLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuY29sb3I9PT1jLmNvbG9yJiYoeSs9dC5jb3VudCl9KSk7dmFyIHg9Zi5tb2RlbC5jb3VudCxiPTA7aC5wYXRoU2VsZWN0aW9uLmVhY2goKGZ1bmN0aW9uKHQpe3QubW9kZWwuY29sb3I9PT1jLmNvbG9yJiYoYis9dC5tb2RlbC5jb3VudCl9KSk7dmFyIF89eS92LHc9eS9iLFQ9eS94LGs9e2NvdW50TGFiZWw6dixjYXRlZ29yeUxhYmVsOmcscHJvYmFiaWxpdHlMYWJlbDpfLnRvRml4ZWQoMyl9LEE9W107LTEhPT1mLnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigiY291bnQiKSYmQS5wdXNoKFsiQ291bnQ6IixrLmNvdW50TGFiZWxdLmpvaW4oIiAiKSksLTEhPT1mLnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJpbmZvSXRlbXMuaW5kZXhPZigicHJvYmFiaWxpdHkiKSYmKEEucHVzaCgiUChjb2xvciBcdTIyMjkgIitnKyIpOiAiK2sucHJvYmFiaWxpdHlMYWJlbCksQS5wdXNoKCJQKCIrZysiIHwgY29sb3IpOiAiK3cudG9GaXhlZCgzKSksQS5wdXNoKCJQKGNvbG9yIHwgIitnKyIpOiAiK1QudG9GaXhlZCgzKSkpO3ZhciBNPUEuam9pbigiPGJyPiIpLFM9dS5tb3N0UmVhZGFibGUoYy5jb2xvcixbImJsYWNrIiwid2hpdGUiXSk7cmV0dXJue3RyYWNlOmQseDpvKihpLWUubGVmdCkseTpzKihtLWUudG9wKSx0ZXh0Ok0sY29sb3I6Yy5jb2xvcixib3JkZXJDb2xvcjoiYmxhY2siLGZvbnRGYW1pbHk6J01vbmFjbywgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlJyxmb250Q29sb3I6Uyxmb250U2l6ZToxMCxpZGVhbEFsaWduOmEsaG92ZXJ0ZW1wbGF0ZTpkLmhvdmVydGVtcGxhdGUsaG92ZXJ0ZW1wbGF0ZUxhYmVsczprLGV2ZW50RGF0YTpbe2RhdGE6ZC5faW5wdXQsZnVsbERhdGE6ZCxjYXRlZ29yeTpnLGNvdW50OnYscHJvYmFiaWxpdHk6XyxjYXRlZ29yeWNvdW50OngsY29sb3Jjb3VudDpiLGJhbmRjb2xvcmNvdW50Onl9XX19KHIsYSx0aGlzKToiZGltZW5zaW9uIj09PWwmJihlPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT1bXTtyZXR1cm4gbi5zZWxlY3Qoci5wYXJlbnROb2RlLnBhcmVudE5vZGUpLnNlbGVjdEFsbCgiZy5jYXRlZ29yeSIpLnNlbGVjdCgicmVjdC5jYXRyZWN0IikuZWFjaCgoZnVuY3Rpb24oKXtpLnB1c2goRSh0LGUsdGhpcykpfSkpLGl9KHIsYSx0aGlzKSksZSYmby5sb25lSG92ZXIoZSx7Y29udGFpbmVyOmkuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOmkuX3BhcGVyLm5vZGUoKSxnZDpyfSl9fWZ1bmN0aW9uIEModCl7dmFyIGU9dC5wYXJjYXRzVmlld01vZGVsO2lmKCFlLmRyYWdEaW1lbnNpb24mJihfKGUucGF0aFNlbGVjdGlvbiksVChlLmRpbWVuc2lvblNlbGVjdGlvbi5zZWxlY3RBbGwoImcuY2F0ZWdvcnkiKSksayhlLmRpbWVuc2lvblNlbGVjdGlvbi5zZWxlY3RBbGwoImcuY2F0ZWdvcnkiKS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKSksby5sb25lVW5ob3ZlcihlLmdyYXBoRGl2Ll9mdWxsTGF5b3V0Ll9ob3ZlcmxheWVyLm5vZGUoKSksZS5wYXRoU2VsZWN0aW9uLnNvcnQobSksLTE9PT1lLmhvdmVyaW5mb0l0ZW1zLmluZGV4T2YoInNraXAiKSkpeyJjb2xvciI9PT10LnBhcmNhdHNWaWV3TW9kZWwuaG92ZXJvbj9TKHRoaXMsInBsb3RseV91bmhvdmVyIixuLmV2ZW50KTpNKHRoaXMsInBsb3RseV91bmhvdmVyIixuLmV2ZW50KX19ZnVuY3Rpb24gUCh0KXsiZml4ZWQiIT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50JiYodC5kcmFnRGltZW5zaW9uRGlzcGxheUluZD10Lm1vZGVsLmRpc3BsYXlJbmQsdC5pbml0aWFsRHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmRzPXQucGFyY2F0c1ZpZXdNb2RlbC5tb2RlbC5kaW1lbnNpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGlzcGxheUluZH0pKSx0LmRyYWdIYXNNb3ZlZD0hMSx0LmRyYWdDYXRlZ29yeURpc3BsYXlJbmQ9bnVsbCxuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcuY2F0ZWdvcnkiKS5zZWxlY3QoInJlY3QuY2F0cmVjdCIpLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4ubW91c2UodGhpcylbMF0saT1uLm1vdXNlKHRoaXMpWzFdOy0yPD1yJiZyPD1lLndpZHRoKzImJi0yPD1pJiZpPD1lLmhlaWdodCsyJiYodC5kcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kPWUubW9kZWwuZGlzcGxheUluZCx0LmluaXRpYWxEcmFnQ2F0ZWdvcnlEaXNwbGF5SW5kcz10Lm1vZGVsLmNhdGVnb3JpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5SW5kfSkpLGUubW9kZWwuZHJhZ1k9ZS55LHMucmFpc2VUb1RvcCh0aGlzLnBhcmVudE5vZGUpLG4uc2VsZWN0KHRoaXMucGFyZW50Tm9kZSkuc2VsZWN0QWxsKCJyZWN0LmJhbmRyZWN0IikuZWFjaCgoZnVuY3Rpb24oZSl7ZS55PGkmJmk8PWUueStlLmhlaWdodCYmKHQucG90ZW50aWFsQ2xpY2tCYW5kPXRoaXMpfSkpKX0pKSx0LnBhcmNhdHNWaWV3TW9kZWwuZHJhZ0RpbWVuc2lvbj10LG8ubG9uZVVuaG92ZXIodC5wYXJjYXRzVmlld01vZGVsLmdyYXBoRGl2Ll9mdWxsTGF5b3V0Ll9ob3ZlcmxheWVyLm5vZGUoKSkpfWZ1bmN0aW9uIEkodCl7aWYoImZpeGVkIiE9PXQucGFyY2F0c1ZpZXdNb2RlbC5hcnJhbmdlbWVudCYmKHQuZHJhZ0hhc01vdmVkPSEwLG51bGwhPT10LmRyYWdEaW1lbnNpb25EaXNwbGF5SW5kKSl7dmFyIGU9dC5kcmFnRGltZW5zaW9uRGlzcGxheUluZCxyPWUtMSxpPWUrMSxhPXQucGFyY2F0c1ZpZXdNb2RlbC5kaW1lbnNpb25zW2VdO2lmKG51bGwhPT10LmRyYWdDYXRlZ29yeURpc3BsYXlJbmQpe3ZhciBvPWEuY2F0ZWdvcmllc1t0LmRyYWdDYXRlZ29yeURpc3BsYXlJbmRdO28ubW9kZWwuZHJhZ1krPW4uZXZlbnQuZHk7dmFyIHM9by5tb2RlbC5kcmFnWSxsPW8ubW9kZWwuZGlzcGxheUluZCxjPWEuY2F0ZWdvcmllcyx1PWNbbC0xXSxmPWNbbCsxXTt2b2lkIDAhPT11JiZzPHUueSt1LmhlaWdodC8yJiYoby5tb2RlbC5kaXNwbGF5SW5kPXUubW9kZWwuZGlzcGxheUluZCx1Lm1vZGVsLmRpc3BsYXlJbmQ9bCksdm9pZCAwIT09ZiYmcytvLmhlaWdodD5mLnkrZi5oZWlnaHQvMiYmKG8ubW9kZWwuZGlzcGxheUluZD1mLm1vZGVsLmRpc3BsYXlJbmQsZi5tb2RlbC5kaXNwbGF5SW5kPWwpLHQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZD1vLm1vZGVsLmRpc3BsYXlJbmR9aWYobnVsbD09PXQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZHx8ImZyZWVmb3JtIj09PXQucGFyY2F0c1ZpZXdNb2RlbC5hcnJhbmdlbWVudCl7YS5tb2RlbC5kcmFnWD1uLmV2ZW50Lng7dmFyIGg9dC5wYXJjYXRzVmlld01vZGVsLmRpbWVuc2lvbnNbcl0scD10LnBhcmNhdHNWaWV3TW9kZWwuZGltZW5zaW9uc1tpXTt2b2lkIDAhPT1oJiZhLm1vZGVsLmRyYWdYPGgueCtoLndpZHRoJiYoYS5tb2RlbC5kaXNwbGF5SW5kPWgubW9kZWwuZGlzcGxheUluZCxoLm1vZGVsLmRpc3BsYXlJbmQ9ZSksdm9pZCAwIT09cCYmYS5tb2RlbC5kcmFnWCthLndpZHRoPnAueCYmKGEubW9kZWwuZGlzcGxheUluZD1wLm1vZGVsLmRpc3BsYXlJbmQscC5tb2RlbC5kaXNwbGF5SW5kPXQuZHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmQpLHQuZHJhZ0RpbWVuc2lvbkRpc3BsYXlJbmQ9YS5tb2RlbC5kaXNwbGF5SW5kfWoodC5wYXJjYXRzVmlld01vZGVsKSxOKHQucGFyY2F0c1ZpZXdNb2RlbCksUih0LnBhcmNhdHNWaWV3TW9kZWwpLEQodC5wYXJjYXRzVmlld01vZGVsKX19ZnVuY3Rpb24gTyh0KXtpZigiZml4ZWQiIT09dC5wYXJjYXRzVmlld01vZGVsLmFycmFuZ2VtZW50JiZudWxsIT09dC5kcmFnRGltZW5zaW9uRGlzcGxheUluZCl7bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJ0ZXh0IikuYXR0cigiZm9udC13ZWlnaHQiLCJub3JtYWwiKTt2YXIgZT17fSxyPXoodC5wYXJjYXRzVmlld01vZGVsKSxpPXQucGFyY2F0c1ZpZXdNb2RlbC5tb2RlbC5kaW1lbnNpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGlzcGxheUluZH0pKSxvPXQuaW5pdGlhbERyYWdEaW1lbnNpb25EaXNwbGF5SW5kcy5zb21lKChmdW5jdGlvbih0LGUpe3JldHVybiB0IT09aVtlXX0pKTtvJiZpLmZvckVhY2goKGZ1bmN0aW9uKHIsbil7dmFyIGk9dC5wYXJjYXRzVmlld01vZGVsLm1vZGVsLmRpbWVuc2lvbnNbbl0uY29udGFpbmVySW5kO2VbImRpbWVuc2lvbnNbIitpKyJdLmRpc3BsYXlpbmRleCJdPXJ9KSk7dmFyIHM9ITE7aWYobnVsbCE9PXQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZCl7dmFyIGw9dC5tb2RlbC5jYXRlZ29yaWVzLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZGlzcGxheUluZH0pKTtpZihzPXQuaW5pdGlhbERyYWdDYXRlZ29yeURpc3BsYXlJbmRzLnNvbWUoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQhPT1sW2VdfSkpKXt2YXIgYz10Lm1vZGVsLmNhdGVnb3JpZXMuc2xpY2UoKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmRpc3BsYXlJbmQtZS5kaXNwbGF5SW5kfSkpLHU9Yy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNhdGVnb3J5VmFsdWV9KSksZj1jLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2F0ZWdvcnlMYWJlbH0pKTtlWyJkaW1lbnNpb25zWyIrdC5tb2RlbC5jb250YWluZXJJbmQrIl0uY2F0ZWdvcnlhcnJheSJdPVt1XSxlWyJkaW1lbnNpb25zWyIrdC5tb2RlbC5jb250YWluZXJJbmQrIl0udGlja3RleHQiXT1bZl0sZVsiZGltZW5zaW9uc1siK3QubW9kZWwuY29udGFpbmVySW5kKyJdLmNhdGVnb3J5b3JkZXIiXT0iYXJyYXkifX1pZigtMT09PXQucGFyY2F0c1ZpZXdNb2RlbC5ob3ZlcmluZm9JdGVtcy5pbmRleE9mKCJza2lwIikmJiF0LmRyYWdIYXNNb3ZlZCYmdC5wb3RlbnRpYWxDbGlja0JhbmQmJigiY29sb3IiPT09dC5wYXJjYXRzVmlld01vZGVsLmhvdmVyb24/Uyh0LnBvdGVudGlhbENsaWNrQmFuZCwicGxvdGx5X2NsaWNrIixuLmV2ZW50LnNvdXJjZUV2ZW50KTpNKHQucG90ZW50aWFsQ2xpY2tCYW5kLCJwbG90bHlfY2xpY2siLG4uZXZlbnQuc291cmNlRXZlbnQpKSx0Lm1vZGVsLmRyYWdYPW51bGwsbnVsbCE9PXQuZHJhZ0NhdGVnb3J5RGlzcGxheUluZCl0LnBhcmNhdHNWaWV3TW9kZWwuZGltZW5zaW9uc1t0LmRyYWdEaW1lbnNpb25EaXNwbGF5SW5kXS5jYXRlZ29yaWVzW3QuZHJhZ0NhdGVnb3J5RGlzcGxheUluZF0ubW9kZWwuZHJhZ1k9bnVsbCx0LmRyYWdDYXRlZ29yeURpc3BsYXlJbmQ9bnVsbDt0LmRyYWdEaW1lbnNpb25EaXNwbGF5SW5kPW51bGwsdC5wYXJjYXRzVmlld01vZGVsLmRyYWdEaW1lbnNpb249bnVsbCx0LmRyYWdIYXNNb3ZlZD1udWxsLHQucG90ZW50aWFsQ2xpY2tCYW5kPW51bGwsaih0LnBhcmNhdHNWaWV3TW9kZWwpLE4odC5wYXJjYXRzVmlld01vZGVsKSxuLnRyYW5zaXRpb24oKS5kdXJhdGlvbigzMDApLmVhc2UoImN1YmljLWluLW91dCIpLmVhY2goKGZ1bmN0aW9uKCl7Uih0LnBhcmNhdHNWaWV3TW9kZWwsITApLEQodC5wYXJjYXRzVmlld01vZGVsLCEwKX0pKS5lYWNoKCJlbmQiLChmdW5jdGlvbigpeyhvfHxzKSYmYS5yZXN0eWxlKHQucGFyY2F0c1ZpZXdNb2RlbC5ncmFwaERpdixlLFtyXSl9KSl9fWZ1bmN0aW9uIHoodCl7Zm9yKHZhciBlLHI9dC5ncmFwaERpdi5fZnVsbERhdGEsbj0wO248ci5sZW5ndGg7bisrKWlmKHQua2V5PT09cltuXS51aWQpe2U9bjticmVha31yZXR1cm4gZX1mdW5jdGlvbiBEKHQsZSl7dmFyIHI7dm9pZCAwPT09ZSYmKGU9ITEpLHQucGF0aFNlbGVjdGlvbi5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5wYXRoc30pLHApLChyPXQucGF0aFNlbGVjdGlvbixlP3IudHJhbnNpdGlvbigpOnIpLmF0dHIoImQiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5zdmdEfSkpfWZ1bmN0aW9uIFIodCxlKXtmdW5jdGlvbiByKHQpe3JldHVybiBlP3QudHJhbnNpdGlvbigpOnR9dm9pZCAwPT09ZSYmKGU9ITEpLHQuZGltZW5zaW9uU2VsZWN0aW9uLmRhdGEoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRpbWVuc2lvbnN9KSxwKTt2YXIgaT10LmRpbWVuc2lvblNlbGVjdGlvbi5zZWxlY3RBbGwoImcuY2F0ZWdvcnkiKS5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jYXRlZ29yaWVzfSkscCk7cih0LmRpbWVuc2lvblNlbGVjdGlvbikuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGwodC54LDApfSkpLHIoaSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIGwoMCx0LnkpfSkpLGkuc2VsZWN0KCIuZGltbGFiZWwiKS50ZXh0KChmdW5jdGlvbih0LGUpe3JldHVybiAwPT09ZT90LnBhcmNhdHNWaWV3TW9kZWwubW9kZWwuZGltZW5zaW9uc1t0Lm1vZGVsLmRpbWVuc2lvbkluZF0uZGltZW5zaW9uTGFiZWw6bnVsbH0pKSxpLnNlbGVjdCgiLmNhdGxhYmVsIikuYXR0cigidGV4dC1hbmNob3IiLChmdW5jdGlvbih0KXtyZXR1cm4gZCh0KT8ic3RhcnQiOiJlbmQifSkpLmF0dHIoIngiLChmdW5jdGlvbih0KXtyZXR1cm4gZCh0KT90LndpZHRoKzU6LTV9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGUscjtkKHQpPyhlPXQud2lkdGgrNSxyPSJzdGFydCIpOihlPS01LHI9ImVuZCIpLG4uc2VsZWN0KHRoaXMpLnNlbGVjdEFsbCgidHNwYW4iKS5hdHRyKCJ4IixlKS5hdHRyKCJ0ZXh0LWFuY2hvciIscil9KSk7dmFyIGE9aS5zZWxlY3RBbGwoInJlY3QuYmFuZHJlY3QiKS5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5iYW5kc30pLHApLG89YS5lbnRlcigpLmFwcGVuZCgicmVjdCIpLmF0dHIoImNsYXNzIiwiYmFuZHJlY3QiKS5hdHRyKCJjdXJzb3IiLCJtb3ZlIikuYXR0cigic3Ryb2tlLW9wYWNpdHkiLDApLmF0dHIoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2xvcn0pKS5hdHRyKCJmaWxsLW9wYWNpdHkiLDApO2EuYXR0cigiZmlsbCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbG9yfSkpLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkdGh9KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkpLmF0dHIoInkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC55fSkpLGsobyksYS5lYWNoKChmdW5jdGlvbigpe3MucmFpc2VUb1RvcCh0aGlzKX0pKSxhLmV4aXQoKS5yZW1vdmUoKX1mdW5jdGlvbiBGKHQsZSxyKXt2YXIgbixpPXJbMF0sYT1lLm1hcmdpbnx8e2w6ODAscjo4MCx0OjEwMCxiOjgwfSxvPWkudHJhY2Uscz1vLmRvbWFpbixsPWUud2lkdGgsYz1lLmhlaWdodCx1PU1hdGguZmxvb3IobCoocy54WzFdLXMueFswXSkpLGY9TWF0aC5mbG9vcihjKihzLnlbMV0tcy55WzBdKSksaD1zLnhbMF0qbCthLmwscD1lLmhlaWdodC1zLnlbMV0qZS5oZWlnaHQrYS50LGQ9by5saW5lLnNoYXBlO249ImFsbCI9PT1vLmhvdmVyaW5mbz9bImNvdW50IiwicHJvYmFiaWxpdHkiXTooby5ob3ZlcmluZm98fCIiKS5zcGxpdCgiKyIpO3ZhciBtPXt0cmFjZTpvLGtleTpvLnVpZCxtb2RlbDppLHg6aCx5OnAsd2lkdGg6dSxoZWlnaHQ6Zixob3Zlcm9uOm8uaG92ZXJvbixob3ZlcmluZm9JdGVtczpuLGFycmFuZ2VtZW50Om8uYXJyYW5nZW1lbnQsYnVuZGxlY29sb3JzOm8uYnVuZGxlY29sb3JzLHNvcnRwYXRoczpvLnNvcnRwYXRocyxsYWJlbGZvbnQ6by5sYWJlbGZvbnQsY2F0ZWdvcnlsYWJlbGZvbnQ6by50aWNrZm9udCxwYXRoU2hhcGU6ZCxkcmFnRGltZW5zaW9uOm51bGwsbWFyZ2luOmEscGF0aHM6W10sZGltZW5zaW9uczpbXSxncmFwaERpdjp0LHRyYWNlU2VsZWN0aW9uOm51bGwscGF0aFNlbGVjdGlvbjpudWxsLGRpbWVuc2lvblNlbGVjdGlvbjpudWxsfTtyZXR1cm4gaS5kaW1lbnNpb25zJiYoaihtKSxOKG0pKSxtfWZ1bmN0aW9uIEIodCxlLHIsbixhKXt2YXIgbyxzLGw9W10sYz1bXTtmb3Iocz0wO3M8ci5sZW5ndGgtMTtzKyspbz1pKHJbc10rdFtzXSx0W3MrMV0pLGwucHVzaChvKGEpKSxjLnB1c2gobygxLWEpKTt2YXIgdT0iTSAiK3RbMF0rIiwiK2VbMF07Zm9yKHUrPSJsIityWzBdKyIsMCAiLHM9MTtzPHIubGVuZ3RoO3MrKyl1Kz0iQyIrbFtzLTFdKyIsIitlW3MtMV0rIiAiK2Nbcy0xXSsiLCIrZVtzXSsiICIrdFtzXSsiLCIrZVtzXSx1Kz0ibCIrcltzXSsiLDAgIjtmb3IodSs9ImwwLCIrbisiICIsdSs9ImwgLSIrcltyLmxlbmd0aC0xXSsiLDAgIixzPXIubGVuZ3RoLTI7cz49MDtzLS0pdSs9IkMiK2Nbc10rIiwiKyhlW3MrMV0rbikrIiAiK2xbc10rIiwiKyhlW3NdK24pKyIgIisodFtzXStyW3NdKSsiLCIrKGVbc10rbiksdSs9ImwtIityW3NdKyIsMCAiO3JldHVybiB1Kz0iWiJ9ZnVuY3Rpb24gTih0KXt2YXIgZT10LmRpbWVuc2lvbnMscj10Lm1vZGVsLG49ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNhdGVnb3JpZXMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC55fSkpfSkpLGk9dC5tb2RlbC5kaW1lbnNpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY2F0ZWdvcmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmRpc3BsYXlJbmR9KSl9KSksYT10Lm1vZGVsLmRpbWVuc2lvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaXNwbGF5SW5kfSkpLG89dC5kaW1lbnNpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQubW9kZWwuZGltZW5zaW9uSW5kfSkpLHM9ZS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lnh9KSksbD1lLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkdGh9KSksYz1bXTtmb3IodmFyIHUgaW4gci5wYXRocylyLnBhdGhzLmhhc093blByb3BlcnR5KHUpJiZjLnB1c2goci5wYXRoc1t1XSk7ZnVuY3Rpb24gZih0KXt2YXIgZT10LmNhdGVnb3J5SW5kcy5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGlbZV1bdF19KSk7cmV0dXJuIG8ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gZVt0XX0pKX1jLnNvcnQoKGZ1bmN0aW9uKGUscil7dmFyIG49ZihlKSxpPWYocik7cmV0dXJuImJhY2t3YXJkIj09PXQuc29ydHBhdGhzJiYobi5yZXZlcnNlKCksaS5yZXZlcnNlKCkpLG4ucHVzaChlLnZhbHVlSW5kc1swXSksaS5wdXNoKHIudmFsdWVJbmRzWzBdKSx0LmJ1bmRsZWNvbG9ycyYmKG4udW5zaGlmdChlLnJhd0NvbG9yKSxpLnVuc2hpZnQoci5yYXdDb2xvcikpLG48aT8tMTpuPmk/MTowfSkpO2Zvcih2YXIgaD1uZXcgQXJyYXkoYy5sZW5ndGgpLHA9ZVswXS5tb2RlbC5jb3VudCxkPWVbMF0uY2F0ZWdvcmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmhlaWdodH0pKS5yZWR1Y2UoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQrZX0pKSxtPTA7bTxjLmxlbmd0aDttKyspe3ZhciBnLHY9Y1ttXTtnPXA+MD9kKih2LmNvdW50L3ApOjA7Zm9yKHZhciB5LHg9bmV3IEFycmF5KG4ubGVuZ3RoKSxiPTA7Yjx2LmNhdGVnb3J5SW5kcy5sZW5ndGg7YisrKXt2YXIgXz12LmNhdGVnb3J5SW5kc1tiXSx3PWlbYl1bX10sVD1hW2JdO3hbVF09bltUXVt3XSxuW1RdW3ddKz1nO3ZhciBrPXQuZGltZW5zaW9uc1tUXS5jYXRlZ29yaWVzW3ddLEE9ay5iYW5kcy5sZW5ndGgsTT1rLmJhbmRzW0EtMV07aWYodm9pZCAwPT09TXx8di5yYXdDb2xvciE9PU0ucmF3Q29sb3Ipe3ZhciBTPXZvaWQgMD09PU0/MDpNLnkrTS5oZWlnaHQ7ay5iYW5kcy5wdXNoKHtrZXk6Uyxjb2xvcjp2LmNvbG9yLHJhd0NvbG9yOnYucmF3Q29sb3IsaGVpZ2h0Omcsd2lkdGg6ay53aWR0aCxjb3VudDp2LmNvdW50LHk6UyxjYXRlZ29yeVZpZXdNb2RlbDprLHBhcmNhdHNWaWV3TW9kZWw6dH0pfWVsc2V7dmFyIEU9ay5iYW5kc1tBLTFdO0UuaGVpZ2h0Kz1nLEUuY291bnQrPXYuY291bnR9fXk9ImhzcGxpbmUiPT09dC5wYXRoU2hhcGU/QihzLHgsbCxnLC41KTpCKHMseCxsLGcsMCksaFttXT17a2V5OnYudmFsdWVJbmRzWzBdLG1vZGVsOnYsaGVpZ2h0OmcsbGVmdFhzOnMsdG9wWXM6eCxkaW1XaWR0aHM6bCxzdmdEOnkscGFyY2F0c1ZpZXdNb2RlbDp0fX10LnBhdGhzPWh9ZnVuY3Rpb24gaih0KXt2YXIgZT10Lm1vZGVsLmRpbWVuc2lvbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm57ZGlzcGxheUluZDp0LmRpc3BsYXlJbmQsZGltZW5zaW9uSW5kOnQuZGltZW5zaW9uSW5kfX0pKTtlLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQuZGlzcGxheUluZC1lLmRpc3BsYXlJbmR9KSk7dmFyIHI9W107Zm9yKHZhciBuIGluIGUpe3ZhciBpPWVbbl0uZGltZW5zaW9uSW5kLGE9dC5tb2RlbC5kaW1lbnNpb25zW2ldO3IucHVzaChVKHQsYSkpfXQuZGltZW5zaW9ucz1yfWZ1bmN0aW9uIFUodCxlKXt2YXIgcixuPXQubW9kZWwuZGltZW5zaW9ucy5sZW5ndGgsaT1lLmRpc3BsYXlJbmQ7cj00MCsobj4xPyh0LndpZHRoLTgwLTE2KS8obi0xKTowKSppO3ZhciBhLG8scyxsLGMsdT1bXSxmPXQubW9kZWwubWF4Q2F0cyxoPWUuY2F0ZWdvcmllcy5sZW5ndGgscD1lLmNvdW50LGQ9dC5oZWlnaHQtOCooZi0xKSxtPTgqKGYtaCkvMixnPWUuY2F0ZWdvcmllcy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybntkaXNwbGF5SW5kOnQuZGlzcGxheUluZCxjYXRlZ29yeUluZDp0LmNhdGVnb3J5SW5kfX0pKTtmb3IoZy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0LmRpc3BsYXlJbmQtZS5kaXNwbGF5SW5kfSkpLGM9MDtjPGg7YysrKWw9Z1tjXS5jYXRlZ29yeUluZCxvPWUuY2F0ZWdvcmllc1tsXSxhPXA+MD9vLmNvdW50L3AqZDowLHM9e2tleTpvLnZhbHVlSW5kc1swXSxtb2RlbDpvLHdpZHRoOjE2LGhlaWdodDphLHk6bnVsbCE9PW8uZHJhZ1k/by5kcmFnWTptLGJhbmRzOltdLHBhcmNhdHNWaWV3TW9kZWw6dH0sbT1tK2ErOCx1LnB1c2gocyk7cmV0dXJue2tleTplLmRpbWVuc2lvbkluZCx4Om51bGwhPT1lLmRyYWdYP2UuZHJhZ1g6cix5OjAsd2lkdGg6MTYsbW9kZWw6ZSxjYXRlZ29yaWVzOnUscGFyY2F0c1ZpZXdNb2RlbDp0LGRyYWdDYXRlZ29yeURpc3BsYXlJbmQ6bnVsbCxkcmFnRGltZW5zaW9uRGlzcGxheUluZDpudWxsLGluaXRpYWxEcmFnRGltZW5zaW9uRGlzcGxheUluZHM6bnVsbCxpbml0aWFsRHJhZ0NhdGVnb3J5RGlzcGxheUluZHM6bnVsbCxkcmFnSGFzTW92ZWQ6bnVsbCxwb3RlbnRpYWxDbGlja0JhbmQ6bnVsbH19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe2gocix0LG4sZSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb21wb25lbnRzL2Z4Ijo2NzksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vLi4vcGxvdF9hcGkvcGxvdF9hcGkiOjgxMywiQHBsb3RseS9kMyI6NTgsImQzLWludGVycG9sYXRlIjoxNjQsdGlueWNvbG9yMjo1NzJ9XSwxMTUyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vcGFyY2F0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpKXt2YXIgYT10Ll9mdWxsTGF5b3V0LG89YS5fcGFwZXIscz1hLl9zaXplO24odCxvLGUse3dpZHRoOnMudyxoZWlnaHQ6cy5oLG1hcmdpbjp7dDpzLnQscjpzLnIsYjpzLmIsbDpzLmx9fSxyLGkpfX0seyIuL3BhcmNhdHMiOjExNTF9XSwxMTUzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxhPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGw9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5O2UuZXhwb3J0cz17ZG9tYWluOm8oe25hbWU6InBhcmNvb3JkcyIsdHJhY2U6ITAsZWRpdFR5cGU6InBsb3QifSksbGFiZWxhbmdsZTp7dmFsVHlwZToiYW5nbGUiLGRmbHQ6MCxlZGl0VHlwZToicGxvdCJ9LGxhYmVsc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsidG9wIiwiYm90dG9tIl0sZGZsdDoidG9wIixlZGl0VHlwZToicGxvdCJ9LGxhYmVsZm9udDphKHtlZGl0VHlwZToicGxvdCJ9KSx0aWNrZm9udDphKHtlZGl0VHlwZToicGxvdCJ9KSxyYW5nZWZvbnQ6YSh7ZWRpdFR5cGU6InBsb3QifSksZGltZW5zaW9uczpsKCJkaW1lbnNpb24iLHtsYWJlbDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToicGxvdCJ9LHRpY2t2YWxzOnMoe30saS50aWNrdmFscyx7ZWRpdFR5cGU6InBsb3QifSksdGlja3RleHQ6cyh7fSxpLnRpY2t0ZXh0LHtlZGl0VHlwZToicGxvdCJ9KSx0aWNrZm9ybWF0OnMoe30saS50aWNrZm9ybWF0LHtlZGl0VHlwZToicGxvdCJ9KSx2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0scmFuZ2U6e3ZhbFR5cGU6ImluZm9fYXJyYXkiLGl0ZW1zOlt7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToicGxvdCJ9LHt2YWxUeXBlOiJudW1iZXIiLGVkaXRUeXBlOiJwbG90In1dLGVkaXRUeXBlOiJwbG90In0sY29uc3RyYWludHJhbmdlOnt2YWxUeXBlOiJpbmZvX2FycmF5IixmcmVlTGVuZ3RoOiEwLGRpbWVuc2lvbnM6IjEtMiIsaXRlbXM6W3t2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJwbG90In0se3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6InBsb3QifV0sZWRpdFR5cGU6InBsb3QifSxtdWx0aXNlbGVjdDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LHZhbHVlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9KSxsaW5lOnMoe2VkaXRUeXBlOiJjYWxjIn0sbigibGluZSIse2NvbG9yc2NhbGVEZmx0OiJWaXJpZGlzIixhdXRvQ29sb3JEZmx0OiExLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2xheW91dF9hdHRyaWJ1dGVzIjo4NDIsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6ODU1LCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiOjg1Nn1dLDExNTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9jb25zdGFudHMiKSxpPXQoIkBwbG90bHkvZDMiKSxhPXQoIi4uLy4uL2xpYi9ndXAiKS5rZXlGdW4sbz10KCIuLi8uLi9saWIvZ3VwIikucmVwZWF0LHM9dCgiLi4vLi4vbGliIikuc29ydGVyQXNjLGw9dCgiLi4vLi4vbGliIikuc3RyVHJhbnNsYXRlLGM9bi5iYXIuc25hcFJhdGlvO2Z1bmN0aW9uIHUodCxlKXtyZXR1cm4gdCooMS1jKStlKmN9dmFyIGY9bi5iYXIuc25hcENsb3NlO2Z1bmN0aW9uIGgodCxlKXtyZXR1cm4gdCooMS1mKStlKmZ9ZnVuY3Rpb24gcCh0LGUscixuKXtpZihmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKWlmKHQ+PWVbcl1bMF0mJnQ8PWVbcl1bMV0pcmV0dXJuITA7cmV0dXJuITF9KHIsbikpcmV0dXJuIHI7dmFyIGk9dD8tMToxLGE9MCxvPWUubGVuZ3RoLTE7aWYoaTwwKXt2YXIgcz1hO2E9byxvPXN9Zm9yKHZhciBsPWVbYV0sYz1sLGY9YTtpKmY8aSpvO2YrPWkpe3ZhciBwPWYraSxkPWVbcF07aWYoaSpyPGkqaChsLGQpKXJldHVybiB1KGwsYyk7aWYoaSpyPGkqZHx8cD09PW8pcmV0dXJuIHUoZCxsKTtjPWwsbD1kfX1mdW5jdGlvbiBkKHQpe3QuYXR0cigieCIsLW4uYmFyLmNhcHR1cmVXaWR0aC8yKS5hdHRyKCJ3aWR0aCIsbi5iYXIuY2FwdHVyZVdpZHRoKX1mdW5jdGlvbiBtKHQpe3QuYXR0cigidmlzaWJpbGl0eSIsInZpc2libGUiKS5zdHlsZSgidmlzaWJpbGl0eSIsInZpc2libGUiKS5hdHRyKCJmaWxsIiwieWVsbG93IikuYXR0cigib3BhY2l0eSIsMCl9ZnVuY3Rpb24gZyh0KXtpZighdC5icnVzaC5maWx0ZXJTcGVjaWZpZWQpcmV0dXJuIjAsIit0LmhlaWdodDtmb3IodmFyIGUscixuLGk9dih0LmJydXNoLmZpbHRlci5nZXRDb25zb2xpZGF0ZWQoKSx0LmhlaWdodCksYT1bMF0sbz1pLmxlbmd0aD9pWzBdWzBdOm51bGwscz0wO3M8aS5sZW5ndGg7cysrKXI9KGU9aVtzXSlbMV0tZVswXSxhLnB1c2gobyksYS5wdXNoKHIpLChuPXMrMSk8aS5sZW5ndGgmJihvPWlbbl1bMF0tZVsxXSk7cmV0dXJuIGEucHVzaCh0LmhlaWdodCksYX1mdW5jdGlvbiB2KHQsZSl7cmV0dXJuIHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLm1heCgwLHQqZSl9KSkuc29ydChzKX0pKX1mdW5jdGlvbiB5KCl7aS5zZWxlY3QoZG9jdW1lbnQuYm9keSkuc3R5bGUoImN1cnNvciIsbnVsbCl9ZnVuY3Rpb24geCh0KXt0LmF0dHIoInN0cm9rZS1kYXNoYXJyYXkiLGcpfWZ1bmN0aW9uIGIodCxlKXt2YXIgcj1pLnNlbGVjdCh0KS5zZWxlY3RBbGwoIi5oaWdobGlnaHQsIC5oaWdobGlnaHQtc2hhZG93Iik7eChlP3IudHJhbnNpdGlvbigpLmR1cmF0aW9uKG4uYmFyLnNuYXBEdXJhdGlvbikuZWFjaCgiZW5kIixlKTpyKX1mdW5jdGlvbiBfKHQsZSl7dmFyIHIsaT10LmJydXNoLGE9TmFOLG89e307aWYoaS5maWx0ZXJTcGVjaWZpZWQpe3ZhciBzPXQuaGVpZ2h0LGw9aS5maWx0ZXIuZ2V0Q29uc29saWRhdGVkKCksYz12KGwscyksdT1OYU4sZj1OYU4saD1OYU47Zm9yKHI9MDtyPD1jLmxlbmd0aDtyKyspe3ZhciBwPWNbcl07aWYocCYmcFswXTw9ZSYmZTw9cFsxXSl7dT1yO2JyZWFrfWlmKGY9cj9yLTE6TmFOLHAmJnBbMF0+ZSl7aD1yO2JyZWFrfX1pZihhPXUsaXNOYU4oYSkmJihhPWlzTmFOKGYpfHxpc05hTihoKT9pc05hTihmKT9oOmY6ZS1jW2ZdWzFdPGNbaF1bMF0tZT9mOmgpLCFpc05hTihhKSl7dmFyIGQ9Y1thXSxtPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bi5iYXIuaGFuZGxlSGVpZ2h0O2lmKCEoZT50WzFdK3J8fGU8dFswXS1yKSlyZXR1cm4gZT49LjkqdFsxXSsuMSp0WzBdPyJuIjplPD0uOSp0WzBdKy4xKnRbMV0/InMiOiJucyJ9KGQsZSk7bSYmKG8uaW50ZXJ2YWw9bFthXSxvLmludGVydmFsUGl4PWQsby5yZWdpb249bSl9fWlmKHQub3JkaW5hbCYmIW8ucmVnaW9uKXt2YXIgZz10LnVuaXRUaWNrdmFscyx5PXQudW5pdFRvUGFkZGVkUHguaW52ZXJ0KGUpO2ZvcihyPTA7cjxnLmxlbmd0aDtyKyspe3ZhciB4PVsuMjUqZ1tNYXRoLm1heChyLTEsMCldKy43NSpnW3JdLC4yNSpnW01hdGgubWluKHIrMSxnLmxlbmd0aC0xKV0rLjc1Kmdbcl1dO2lmKHk+PXhbMF0mJnk8PXhbMV0pe28uY2xpY2thYmxlT3JkaW5hbFJhbmdlPXg7YnJlYWt9fX1yZXR1cm4gb31mdW5jdGlvbiB3KHQsZSl7aS5ldmVudC5zb3VyY2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTt2YXIgcj1lLmhlaWdodC1pLm1vdXNlKHQpWzFdLTIqbi52ZXJ0aWNhbFBhZGRpbmcsYT1lLmJydXNoLnN2Z0JydXNoO2Eud2FzRHJhZ2dlZD0hMCxhLl9kcmFnZ2luZz0hMCxhLmdyYWJiaW5nQmFyP2EubmV3RXh0ZW50PVtyLWEuZ3JhYlBvaW50LHIrYS5iYXJMZW5ndGgtYS5ncmFiUG9pbnRdLm1hcChlLnVuaXRUb1BhZGRlZFB4LmludmVydCk6YS5uZXdFeHRlbnQ9W2Euc3RhcnRFeHRlbnQsZS51bml0VG9QYWRkZWRQeC5pbnZlcnQocildLnNvcnQocyksZS5icnVzaC5maWx0ZXJTcGVjaWZpZWQ9ITAsYS5leHRlbnQ9YS5zdGF5aW5nSW50ZXJ2YWxzLmNvbmNhdChbYS5uZXdFeHRlbnRdKSxhLmJydXNoQ2FsbGJhY2soZSksYih0LnBhcmVudE5vZGUpfWZ1bmN0aW9uIFQodCxlKXt2YXIgcj1fKGUsZS5oZWlnaHQtaS5tb3VzZSh0KVsxXS0yKm4udmVydGljYWxQYWRkaW5nKSxhPSJjcm9zc2hhaXIiO3IuY2xpY2thYmxlT3JkaW5hbFJhbmdlP2E9InBvaW50ZXIiOnIucmVnaW9uJiYoYT1yLnJlZ2lvbisiLXJlc2l6ZSIpLGkuc2VsZWN0KGRvY3VtZW50LmJvZHkpLnN0eWxlKCJjdXJzb3IiLGEpfWZ1bmN0aW9uIGsodCl7dC5vbigibW91c2Vtb3ZlIiwoZnVuY3Rpb24odCl7aS5ldmVudC5wcmV2ZW50RGVmYXVsdCgpLHQucGFyZW50LmluQnJ1c2hEcmFnfHxUKHRoaXMsdCl9KSkub24oIm1vdXNlbGVhdmUiLChmdW5jdGlvbih0KXt0LnBhcmVudC5pbkJydXNoRHJhZ3x8eSgpfSkpLmNhbGwoaS5iZWhhdmlvci5kcmFnKCkub24oImRyYWdzdGFydCIsKGZ1bmN0aW9uKHQpeyFmdW5jdGlvbih0LGUpe2kuZXZlbnQuc291cmNlRXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7dmFyIHI9ZS5oZWlnaHQtaS5tb3VzZSh0KVsxXS0yKm4udmVydGljYWxQYWRkaW5nLGE9ZS51bml0VG9QYWRkZWRQeC5pbnZlcnQociksbz1lLmJydXNoLHM9XyhlLHIpLGw9cy5pbnRlcnZhbCxjPW8uc3ZnQnJ1c2g7aWYoYy53YXNEcmFnZ2VkPSExLGMuZ3JhYmJpbmdCYXI9Im5zIj09PXMucmVnaW9uLGMuZ3JhYmJpbmdCYXIpe3ZhciB1PWwubWFwKGUudW5pdFRvUGFkZGVkUHgpO2MuZ3JhYlBvaW50PXItdVswXS1uLnZlcnRpY2FsUGFkZGluZyxjLmJhckxlbmd0aD11WzFdLXVbMF19Yy5jbGlja2FibGVPcmRpbmFsUmFuZ2U9cy5jbGlja2FibGVPcmRpbmFsUmFuZ2UsYy5zdGF5aW5nSW50ZXJ2YWxzPWUubXVsdGlzZWxlY3QmJm8uZmlsdGVyU3BlY2lmaWVkP28uZmlsdGVyLmdldENvbnNvbGlkYXRlZCgpOltdLGwmJihjLnN0YXlpbmdJbnRlcnZhbHM9Yy5zdGF5aW5nSW50ZXJ2YWxzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0hPT1sWzBdJiZ0WzFdIT09bFsxXX0pKSksYy5zdGFydEV4dGVudD1zLnJlZ2lvbj9sWyJzIj09PXMucmVnaW9uPzE6MF06YSxlLnBhcmVudC5pbkJydXNoRHJhZz0hMCxjLmJydXNoU3RhcnRDYWxsYmFjaygpfSh0aGlzLHQpfSkpLm9uKCJkcmFnIiwoZnVuY3Rpb24odCl7dyh0aGlzLHQpfSkpLm9uKCJkcmFnZW5kIiwoZnVuY3Rpb24odCl7IWZ1bmN0aW9uKHQsZSl7dmFyIHI9ZS5icnVzaCxuPXIuZmlsdGVyLGE9ci5zdmdCcnVzaDthLl9kcmFnZ2luZ3x8KFQodCxlKSx3KHQsZSksZS5icnVzaC5zdmdCcnVzaC53YXNEcmFnZ2VkPSExKSxhLl9kcmFnZ2luZz0hMSxpLmV2ZW50LnNvdXJjZUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO3ZhciBvPWEuZ3JhYmJpbmdCYXI7aWYoYS5ncmFiYmluZ0Jhcj0hMSxhLmdyYWJMb2NhdGlvbj12b2lkIDAsZS5wYXJlbnQuaW5CcnVzaERyYWc9ITEseSgpLCFhLndhc0RyYWdnZWQpcmV0dXJuIGEud2FzRHJhZ2dlZD12b2lkIDAsYS5jbGlja2FibGVPcmRpbmFsUmFuZ2U/ci5maWx0ZXJTcGVjaWZpZWQmJmUubXVsdGlzZWxlY3Q/YS5leHRlbnQucHVzaChhLmNsaWNrYWJsZU9yZGluYWxSYW5nZSk6KGEuZXh0ZW50PVthLmNsaWNrYWJsZU9yZGluYWxSYW5nZV0sci5maWx0ZXJTcGVjaWZpZWQ9ITApOm8/KGEuZXh0ZW50PWEuc3RheWluZ0ludGVydmFscywwPT09YS5leHRlbnQubGVuZ3RoJiZNKHIpKTpNKHIpLGEuYnJ1c2hDYWxsYmFjayhlKSxiKHQucGFyZW50Tm9kZSksdm9pZCBhLmJydXNoRW5kQ2FsbGJhY2soci5maWx0ZXJTcGVjaWZpZWQ/bi5nZXRDb25zb2xpZGF0ZWQoKTpbXSk7dmFyIHM9ZnVuY3Rpb24oKXtuLnNldChuLmdldENvbnNvbGlkYXRlZCgpKX07aWYoZS5vcmRpbmFsKXt2YXIgbD1lLnVuaXRUaWNrdmFscztsW2wubGVuZ3RoLTFdPGxbMF0mJmwucmV2ZXJzZSgpLGEubmV3RXh0ZW50PVtwKDAsbCxhLm5ld0V4dGVudFswXSxhLnN0YXlpbmdJbnRlcnZhbHMpLHAoMSxsLGEubmV3RXh0ZW50WzFdLGEuc3RheWluZ0ludGVydmFscyldO3ZhciBjPWEubmV3RXh0ZW50WzFdPmEubmV3RXh0ZW50WzBdO2EuZXh0ZW50PWEuc3RheWluZ0ludGVydmFscy5jb25jYXQoYz9bYS5uZXdFeHRlbnRdOltdKSxhLmV4dGVudC5sZW5ndGh8fE0ociksYS5icnVzaENhbGxiYWNrKGUpLGM/Yih0LnBhcmVudE5vZGUscyk6KHMoKSxiKHQucGFyZW50Tm9kZSkpfWVsc2UgcygpO2EuYnJ1c2hFbmRDYWxsYmFjayhyLmZpbHRlclNwZWNpZmllZD9uLmdldENvbnNvbGlkYXRlZCgpOltdKX0odGhpcyx0KX0pKSl9ZnVuY3Rpb24gQSh0LGUpe3JldHVybiB0WzBdLWVbMF19ZnVuY3Rpb24gTSh0KXt0LmZpbHRlclNwZWNpZmllZD0hMSx0LnN2Z0JydXNoLmV4dGVudD1bWy0xLzAsMS8wXV19ZnVuY3Rpb24gUyh0KXtmb3IodmFyIGUscj10LnNsaWNlKCksbj1bXSxpPXIuc2hpZnQoKTtpOyl7Zm9yKGU9aS5zbGljZSgpOyhpPXIuc2hpZnQoKSkmJmlbMF08PWVbMV07KWVbMV09TWF0aC5tYXgoZVsxXSxpWzFdKTtuLnB1c2goZSl9cmV0dXJuIDE9PT1uLmxlbmd0aCYmblswXVswXT5uWzBdWzFdJiYobj1bXSksbn1lLmV4cG9ydHM9e21ha2VCcnVzaDpmdW5jdGlvbih0LGUscixuLGksYSl7dmFyIG8sbD1mdW5jdGlvbigpe3ZhciB0LGUscj1bXTtyZXR1cm57c2V0OmZ1bmN0aW9uKG4pezE9PT0ocj1uLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc2xpY2UoKS5zb3J0KHMpfSkpLnNvcnQoQSkpLmxlbmd0aCYmclswXVswXT09PS0xLzAmJnJbMF1bMV09PT0xLzAmJihyPVtbMCwtMV1dKSx0PVMociksZT1yLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm5bTWF0aC5taW4odFswXSxlWzBdKSxNYXRoLm1heCh0WzFdLGVbMV0pXX0pLFsxLzAsLTEvMF0pfSxnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gci5zbGljZSgpfSxnZXRDb25zb2xpZGF0ZWQ6ZnVuY3Rpb24oKXtyZXR1cm4gdH0sZ2V0Qm91bmRzOmZ1bmN0aW9uKCl7cmV0dXJuIGV9fX0oKTtyZXR1cm4gbC5zZXQocikse2ZpbHRlcjpsLGZpbHRlclNwZWNpZmllZDplLHN2Z0JydXNoOntleHRlbnQ6W10sYnJ1c2hTdGFydENhbGxiYWNrOm4sYnJ1c2hDYWxsYmFjazoobz1pLGZ1bmN0aW9uKHQpe3ZhciBlPXQuYnJ1c2gscj1mdW5jdGlvbih0KXtyZXR1cm4gdC5zdmdCcnVzaC5leHRlbnQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgpfSkpfShlKS5zbGljZSgpO2UuZmlsdGVyLnNldChyKSxvKCl9KSxicnVzaEVuZENhbGxiYWNrOmF9fX0sZW5zdXJlQXhpc0JydXNoOmZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zZWxlY3RBbGwoIi4iK24uY24uYXhpc0JydXNoKS5kYXRhKG8sYSk7ci5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5heGlzQnJ1c2gsITApLGZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5zZWxlY3RBbGwoIi5iYWNrZ3JvdW5kIikuZGF0YShvKTtyLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZCgiYmFja2dyb3VuZCIsITApLmNhbGwoZCkuY2FsbChtKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhdXRvIikuYXR0cigidHJhbnNmb3JtIixsKDAsbi52ZXJ0aWNhbFBhZGRpbmcpKSxyLmNhbGwoaykuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0LW4udmVydGljYWxQYWRkaW5nfSkpO3ZhciBpPXQuc2VsZWN0QWxsKCIuaGlnaGxpZ2h0LXNoYWRvdyIpLmRhdGEobyk7aS5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQoImhpZ2hsaWdodC1zaGFkb3ciLCEwKS5hdHRyKCJ4Iiwtbi5iYXIud2lkdGgvMikuYXR0cigic3Ryb2tlLXdpZHRoIixuLmJhci53aWR0aCtuLmJhci5zdHJva2VXaWR0aCkuYXR0cigic3Ryb2tlIixlKS5hdHRyKCJvcGFjaXR5IixuLmJhci5zdHJva2VPcGFjaXR5KS5hdHRyKCJzdHJva2UtbGluZWNhcCIsImJ1dHQiKSxpLmF0dHIoInkxIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkpLmNhbGwoeCk7dmFyIGE9dC5zZWxlY3RBbGwoIi5oaWdobGlnaHQiKS5kYXRhKG8pO2EuZW50ZXIoKS5hcHBlbmQoImxpbmUiKS5jbGFzc2VkKCJoaWdobGlnaHQiLCEwKS5hdHRyKCJ4Iiwtbi5iYXIud2lkdGgvMikuYXR0cigic3Ryb2tlLXdpZHRoIixuLmJhci53aWR0aC1uLmJhci5zdHJva2VXaWR0aCkuYXR0cigic3Ryb2tlIixuLmJhci5maWxsQ29sb3IpLmF0dHIoIm9wYWNpdHkiLG4uYmFyLmZpbGxPcGFjaXR5KS5hdHRyKCJzdHJva2UtbGluZWNhcCIsImJ1dHQiKSxhLmF0dHIoInkxIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkpLmNhbGwoeCl9KHIsZSl9LGNsZWFuUmFuZ2VzOmZ1bmN0aW9uKHQsZSl7aWYoQXJyYXkuaXNBcnJheSh0WzBdKT8odD10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuc29ydChzKX0pKSx0PWUubXVsdGlzZWxlY3Q/Uyh0LnNvcnQoQSkpOlt0WzBdXSk6dD1bdC5zb3J0KHMpXSxlLnRpY2t2YWxzKXt2YXIgcj1lLnRpY2t2YWxzLnNsaWNlKCkuc29ydChzKTtpZighKHQ9dC5tYXAoKGZ1bmN0aW9uKHQpe3ZhciBlPVtwKDAscix0WzBdLFtdKSxwKDEscix0WzFdLFtdKV07aWYoZVsxXT5lWzBdKXJldHVybiBlfSkpLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkpLmxlbmd0aClyZXR1cm59cmV0dXJuIHQubGVuZ3RoPjE/dDp0WzBdfX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9ndXAiOjc3MywiLi9jb25zdGFudHMiOjExNTcsIkBwbG90bHkvZDMiOjU4fV0sMTE1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9wbG90cy9nZXRfZGF0YSIpLmdldE1vZHVsZUNhbGNEYXRhLGE9dCgiLi9wbG90Iiksbz10KCIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyIpO3IubmFtZT0icGFyY29vcmRzIixyLnBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9aSh0LmNhbGNkYXRhLCJwYXJjb29yZHMiKVswXTtlLmxlbmd0aCYmYSh0LGUpfSxyLmNsZWFuPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW4uX2hhcyYmbi5faGFzKCJwYXJjb29yZHMiKSxhPWUuX2hhcyYmZS5faGFzKCJwYXJjb29yZHMiKTtpJiYhYSYmKG4uX3BhcGVyZGl2LnNlbGVjdEFsbCgiLnBhcmNvb3JkcyIpLnJlbW92ZSgpLG4uX2dsaW1hZ2VzLnNlbGVjdEFsbCgiKiIpLnJlbW92ZSgpKX0sci50b1NWRz1mdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll9nbGltYWdlcyxyPW4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiLnN2Zy1jb250YWluZXIiKTtyLmZpbHRlcigoZnVuY3Rpb24odCxlKXtyZXR1cm4gZT09PXIuc2l6ZSgpLTF9KSkuc2VsZWN0QWxsKCIuZ2wtY2FudmFzLWNvbnRleHQsIC5nbC1jYW52YXMtZm9jdXMiKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PXRoaXMudG9EYXRhVVJMKCJpbWFnZS9wbmciKTtlLmFwcGVuZCgic3ZnOmltYWdlIikuYXR0cih7eG1sbnM6by5zdmcsInhsaW5rOmhyZWYiOnQscHJlc2VydmVBc3BlY3RSYXRpbzoibm9uZSIseDowLHk6MCx3aWR0aDp0aGlzLnN0eWxlLndpZHRoLGhlaWdodDp0aGlzLnN0eWxlLmhlaWdodH0pfSkpLHdpbmRvdy5zZXRUaW1lb3V0KChmdW5jdGlvbigpe24uc2VsZWN0QWxsKCIjZmlsdGVyQmFyUGF0dGVybiIpLmF0dHIoImlkIiwiZmlsdGVyQmFyUGF0dGVybiIpfSksNjApfX0seyIuLi8uLi9jb25zdGFudHMveG1sbnNfbmFtZXNwYWNlcyI6NzUzLCIuLi8uLi9wbG90cy9nZXRfZGF0YSI6ODY0LCIuL3Bsb3QiOjExNjQsIkBwbG90bHkvZDMiOjU4fV0sMTE1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5pc0FycmF5T3JUeXBlZEFycmF5LGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIiksYT10KCIuLi8uLi9saWIvZ3VwIikud3JhcDtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixvO3JldHVybiBpLmhhc0NvbG9yc2NhbGUoZSwibGluZSIpJiZuKGUubGluZS5jb2xvcik/KHI9ZS5saW5lLmNvbG9yLG89aS5leHRyYWN0T3B0cyhlLmxpbmUpLmNvbG9yc2NhbGUsaS5jYWxjKHQsZSx7dmFsczpyLGNvbnRhaW5lclN0cjoibGluZSIsY0xldHRlcjoiYyJ9KSk6KHI9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPW5ldyBBcnJheSh0KSxyPTA7cjx0O3IrKyllW3JdPS41O3JldHVybiBlfShlLl9sZW5ndGgpLG89W1swLGUubGluZS5jb2xvcl0sWzEsZS5saW5lLmNvbG9yXV0pLGEoe2xpbmVDb2xvcjpyLGNzY2FsZTpvfSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL2d1cCI6NzczfV0sMTE1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e21heERpbWVuc2lvbkNvdW50OjYwLG92ZXJkcmFnOjQ1LHZlcnRpY2FsUGFkZGluZzoyLHRpY2tEaXN0YW5jZTo1MCxjYW52YXNQaXhlbFJhdGlvOjEsYmxvY2tMaW5lQ291bnQ6NWUzLGxheWVyczpbImNvbnRleHRMaW5lTGF5ZXIiLCJmb2N1c0xpbmVMYXllciIsInBpY2tMaW5lTGF5ZXIiXSxheGlzVGl0bGVPZmZzZXQ6MjgsYXhpc0V4dGVudE9mZnNldDoxMCxkZXNlbGVjdGVkTGluZUNvbG9yOiIjNzc3IixiYXI6e3dpZHRoOjQsY2FwdHVyZVdpZHRoOjEwLGZpbGxDb2xvcjoibWFnZW50YSIsZmlsbE9wYWNpdHk6MSxzbmFwRHVyYXRpb246MTUwLHNuYXBSYXRpbzouMjUsc25hcENsb3NlOi4wMSxzdHJva2VPcGFjaXR5OjEsc3Ryb2tlV2lkdGg6MSxoYW5kbGVIZWlnaHQ6OCxoYW5kbGVPcGFjaXR5OjEsaGFuZGxlT3ZlcmxhcDowfSxjbjp7YXhpc0V4dGVudFRleHQ6ImF4aXMtZXh0ZW50LXRleHQiLHBhcmNvb3Jkc0xpbmVMYXllcnM6InBhcmNvb3Jkcy1saW5lLWxheWVycyIscGFyY29vcmRzTGluZUxheWVyOiJwYXJjb29yZHMtbGluZXMiLHBhcmNvb3JkczoicGFyY29vcmRzIixwYXJjb29yZHNDb250cm9sVmlldzoicGFyY29vcmRzLWNvbnRyb2wtdmlldyIseUF4aXM6InktYXhpcyIsYXhpc092ZXJsYXlzOiJheGlzLW92ZXJsYXlzIixheGlzOiJheGlzIixheGlzSGVhZGluZzoiYXhpcy1oZWFkaW5nIixheGlzVGl0bGU6ImF4aXMtdGl0bGUiLGF4aXNFeHRlbnQ6ImF4aXMtZXh0ZW50IixheGlzRXh0ZW50VG9wOiJheGlzLWV4dGVudC10b3AiLGF4aXNFeHRlbnRUb3BUZXh0OiJheGlzLWV4dGVudC10b3AtdGV4dCIsYXhpc0V4dGVudEJvdHRvbToiYXhpcy1leHRlbnQtYm90dG9tIixheGlzRXh0ZW50Qm90dG9tVGV4dDoiYXhpcy1leHRlbnQtYm90dG9tLXRleHQiLGF4aXNCcnVzaDoiYXhpcy1icnVzaCJ9LGlkOntmaWx0ZXJCYXJQYXR0ZXJuOiJmaWx0ZXItYmFyLXBhdHRlcm4ifX19LHt9XSwxMTU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiKS5oYXNDb2xvcnNjYWxlLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksbz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxzPXQoIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxjPXQoIi4vYXR0cmlidXRlcyIpLHU9dCgiLi9heGlzYnJ1c2giKSxmPXQoIi4vY29uc3RhbnRzIikubWF4RGltZW5zaW9uQ291bnQsaD10KCIuL21lcmdlX2xlbmd0aCIpO2Z1bmN0aW9uIHAodCxlLHIsaSl7ZnVuY3Rpb24gYShyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYy5kaW1lbnNpb25zLHIsaSl9dmFyIG89YSgidmFsdWVzIikscz1hKCJ2aXNpYmxlIik7aWYobyYmby5sZW5ndGh8fChzPWUudmlzaWJsZT0hMSkscyl7YSgibGFiZWwiKSxhKCJ0aWNrdmFscyIpLGEoInRpY2t0ZXh0IiksYSgidGlja2Zvcm1hdCIpO3ZhciBmPWEoInJhbmdlIik7ZS5fYXg9e19pZDoieSIsdHlwZToibGluZWFyIixzaG93ZXhwb25lbnQ6ImFsbCIsZXhwb25lbnRmb3JtYXQ6IkIiLHJhbmdlOmZ9LGwuc2V0Q29udmVydChlLl9heCxpLmxheW91dCksYSgibXVsdGlzZWxlY3QiKTt2YXIgaD1hKCJjb25zdHJhaW50cmFuZ2UiKTtoJiYoZS5jb25zdHJhaW50cmFuZ2U9dS5jbGVhblJhbmdlcyhoLGUpKX19ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGwpe2Z1bmN0aW9uIHUocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGMscixpKX12YXIgZD10LmRpbWVuc2lvbnM7QXJyYXkuaXNBcnJheShkKSYmZC5sZW5ndGg+ZiYmKG4ubG9nKCJwYXJjb29yZHMgdHJhY2VzIHN1cHBvcnQgdXAgdG8gIitmKyIgZGltZW5zaW9ucyBhdCB0aGUgbW9tZW50IiksZC5zcGxpY2UoZikpO3ZhciBtPXModCxlLHtuYW1lOiJkaW1lbnNpb25zIixsYXlvdXQ6bCxoYW5kbGVJdGVtRGVmYXVsdHM6cH0pLGc9ZnVuY3Rpb24odCxlLHIsbyxzKXt2YXIgbD1zKCJsaW5lLmNvbG9yIixyKTtpZihpKHQsImxpbmUiKSYmbi5pc0FycmF5T3JUeXBlZEFycmF5KGwpKXtpZihsLmxlbmd0aClyZXR1cm4gcygibGluZS5jb2xvcnNjYWxlIiksYSh0LGUsbyxzLHtwcmVmaXg6ImxpbmUuIixjTGV0dGVyOiJjIn0pLGwubGVuZ3RoO2UubGluZS5jb2xvcj1yfXJldHVybiAxLzB9KHQsZSxyLGwsdSk7byhlLGwsdSksQXJyYXkuaXNBcnJheShtKSYmbS5sZW5ndGh8fChlLnZpc2libGU9ITEpLGgoZSxtLCJ2YWx1ZXMiLGcpO3ZhciB2PXtmYW1pbHk6bC5mb250LmZhbWlseSxzaXplOk1hdGgucm91bmQobC5mb250LnNpemUvMS4yKSxjb2xvcjpsLmZvbnQuY29sb3J9O24uY29lcmNlRm9udCh1LCJsYWJlbGZvbnQiLHYpLG4uY29lcmNlRm9udCh1LCJ0aWNrZm9udCIsdiksbi5jb2VyY2VGb250KHUsInJhbmdlZm9udCIsdiksdSgibGFiZWxhbmdsZSIpLHUoImxhYmVsc2lkZSIpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjY0OSwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiOjY1MCwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6ODIyLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuLi8uLi9wbG90cy9kb21haW4iOjg1NSwiLi9hdHRyaWJ1dGVzIjoxMTUzLCIuL2F4aXNicnVzaCI6MTE1NCwiLi9jb25zdGFudHMiOjExNTcsIi4vbWVyZ2VfbGVuZ3RoIjoxMTYyfV0sMTE1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKS5pc1R5cGVkQXJyYXk7ci5jb252ZXJ0VHlwZWRBcnJheT1mdW5jdGlvbih0KXtyZXR1cm4gbih0KT9BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KTp0fSxyLmlzT3JkaW5hbD1mdW5jdGlvbih0KXtyZXR1cm4hIXQudGlja3ZhbHN9LHIuaXNWaXNpYmxlPWZ1bmN0aW9uKHQpe3JldHVybiB0LnZpc2libGV8fCEoInZpc2libGUiaW4gdCl9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sMTE2MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxjb2xvcmJhcjp7Y29udGFpbmVyOiJsaW5lIixtaW46ImNtaW4iLG1heDoiY21heCJ9LG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJwYXJjb29yZHMiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbImdsIiwicmVnbCIsIm5vT3BhY2l0eSIsIm5vSG92ZXIiXSxtZXRhOnt9fX0seyIuL2F0dHJpYnV0ZXMiOjExNTMsIi4vYmFzZV9wbG90IjoxMTU1LCIuL2NhbGMiOjExNTYsIi4vZGVmYXVsdHMiOjExNTgsIi4vcGxvdCI6MTE2NH1dLDExNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2xzbGlmeSIpLGk9bihbInByZWNpc2lvbiBoaWdocCBmbG9hdDtcbiNkZWZpbmUgR0xTTElGWSAxXG5cbnZhcnlpbmcgdmVjNCBmcmFnQ29sb3I7XG5cbmF0dHJpYnV0ZSB2ZWM0IHAwMV8wNCwgcDA1XzA4LCBwMDlfMTIsIHAxM18xNixcbiAgICAgICAgICAgICAgIHAxN18yMCwgcDIxXzI0LCBwMjVfMjgsIHAyOV8zMixcbiAgICAgICAgICAgICAgIHAzM18zNiwgcDM3XzQwLCBwNDFfNDQsIHA0NV80OCxcbiAgICAgICAgICAgICAgIHA0OV81MiwgcDUzXzU2LCBwNTdfNjAsIGNvbG9ycztcblxudW5pZm9ybSBtYXQ0IGRpbTBBLCBkaW0xQSwgZGltMEIsIGRpbTFCLCBkaW0wQywgZGltMUMsIGRpbTBELCBkaW0xRCxcbiAgICAgICAgICAgICBsb0EsIGhpQSwgbG9CLCBoaUIsIGxvQywgaGlDLCBsb0QsIGhpRDtcblxudW5pZm9ybSB2ZWMyIHJlc29sdXRpb24sIHZpZXdCb3hQb3MsIHZpZXdCb3hTaXplO1xudW5pZm9ybSBmbG9hdCBtYXNrSGVpZ2h0O1xudW5pZm9ybSBmbG9hdCBkcndMYXllcjsgLy8gMDogY29udGV4dCwgMTogZm9jdXMsIDI6IHBpY2tcbnVuaWZvcm0gdmVjNCBjb250ZXh0Q29sb3I7XG51bmlmb3JtIHNhbXBsZXIyRCBtYXNrVGV4dHVyZSwgcGFsZXR0ZTtcblxuYm9vbCBpc1BpY2sgICAgPSAoZHJ3TGF5ZXIgPiAxLjUpO1xuYm9vbCBpc0NvbnRleHQgPSAoZHJ3TGF5ZXIgPCAwLjUpO1xuXG5jb25zdCB2ZWM0IFpFUk9TID0gdmVjNCgwLjAsIDAuMCwgMC4wLCAwLjApO1xuY29uc3QgdmVjNCBVTklUUyA9IHZlYzQoMS4wLCAxLjAsIDEuMCwgMS4wKTtcblxuZmxvYXQgdmFsKG1hdDQgcCwgbWF0NCB2KSB7XG4gICAgcmV0dXJuIGRvdChtYXRyaXhDb21wTXVsdChwLCB2KSAqIFVOSVRTLCBVTklUUyk7XG59XG5cbmZsb2F0IGF4aXNZKGZsb2F0IHJhdGlvLCBtYXQ0IEEsIG1hdDQgQiwgbWF0NCBDLCBtYXQ0IEQpIHtcbiAgICBmbG9hdCB5MSA9IHZhbChBLCBkaW0wQSkgKyB2YWwoQiwgZGltMEIpICsgdmFsKEMsIGRpbTBDKSArIHZhbChELCBkaW0wRCk7XG4gICAgZmxvYXQgeTIgPSB2YWwoQSwgZGltMUEpICsgdmFsKEIsIGRpbTFCKSArIHZhbChDLCBkaW0xQykgKyB2YWwoRCwgZGltMUQpO1xuICAgIHJldHVybiB5MSAqICgxLjAgLSByYXRpbykgKyB5MiAqIHJhdGlvO1xufVxuXG5pbnQgaU1vZChpbnQgYSwgaW50IGIpIHtcbiAgICByZXR1cm4gYSAtIGIgKiAoYSAvIGIpO1xufVxuXG5ib29sIGZPdXRzaWRlKGZsb2F0IHAsIGZsb2F0IGxvLCBmbG9hdCBoaSkge1xuICAgIHJldHVybiAobG8gPCBoaSkgJiYgKGxvID4gcCB8fCBwID4gaGkpO1xufVxuXG5ib29sIHZPdXRzaWRlKHZlYzQgcCwgdmVjNCBsbywgdmVjNCBoaSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIGZPdXRzaWRlKHBbMF0sIGxvWzBdLCBoaVswXSkgfHxcbiAgICAgICAgZk91dHNpZGUocFsxXSwgbG9bMV0sIGhpWzFdKSB8fFxuICAgICAgICBmT3V0c2lkZShwWzJdLCBsb1syXSwgaGlbMl0pIHx8XG4gICAgICAgIGZPdXRzaWRlKHBbM10sIGxvWzNdLCBoaVszXSlcbiAgICApO1xufVxuXG5ib29sIG1PdXRzaWRlKG1hdDQgcCwgbWF0NCBsbywgbWF0NCBoaSkge1xuICAgIHJldHVybiAoXG4gICAgICAgIHZPdXRzaWRlKHBbMF0sIGxvWzBdLCBoaVswXSkgfHxcbiAgICAgICAgdk91dHNpZGUocFsxXSwgbG9bMV0sIGhpWzFdKSB8fFxuICAgICAgICB2T3V0c2lkZShwWzJdLCBsb1syXSwgaGlbMl0pIHx8XG4gICAgICAgIHZPdXRzaWRlKHBbM10sIGxvWzNdLCBoaVszXSlcbiAgICApO1xufVxuXG5ib29sIG91dHNpZGVCb3VuZGluZ0JveChtYXQ0IEEsIG1hdDQgQiwgbWF0NCBDLCBtYXQ0IEQpIHtcbiAgICByZXR1cm4gbU91dHNpZGUoQSwgbG9BLCBoaUEpIHx8XG4gICAgICAgICAgIG1PdXRzaWRlKEIsIGxvQiwgaGlCKSB8fFxuICAgICAgICAgICBtT3V0c2lkZShDLCBsb0MsIGhpQykgfHxcbiAgICAgICAgICAgbU91dHNpZGUoRCwgbG9ELCBoaUQpO1xufVxuXG5ib29sIG91dHNpZGVSYXN0ZXJNYXNrKG1hdDQgQSwgbWF0NCBCLCBtYXQ0IEMsIG1hdDQgRCkge1xuICAgIG1hdDQgcG50c1s0XTtcbiAgICBwbnRzWzBdID0gQTtcbiAgICBwbnRzWzFdID0gQjtcbiAgICBwbnRzWzJdID0gQztcbiAgICBwbnRzWzNdID0gRDtcblxuICAgIGZvcihpbnQgaSA9IDA7IGkgPCA0OyArK2kpIHtcbiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IDQ7ICsraikge1xuICAgICAgICAgICAgZm9yKGludCBrID0gMDsgayA8IDQ7ICsraykge1xuICAgICAgICAgICAgICAgIGlmKDAgPT0gaU1vZChcbiAgICAgICAgICAgICAgICAgICAgaW50KDI1NS4wICogdGV4dHVyZTJEKG1hc2tUZXh0dXJlLFxuICAgICAgICAgICAgICAgICAgICAgICAgdmVjMihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxvYXQoaSAqIDIgKyBqIC8gMikgKyAwLjUpIC8gOC4wLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwbnRzW2ldW2pdW2tdICogKG1hc2tIZWlnaHQgLSAxLjApICsgMS4wKSAvIG1hc2tIZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgICkpWzNdXG4gICAgICAgICAgICAgICAgICAgICkgLyBpbnQocG93KDIuMCwgZmxvYXQoaU1vZChqICogNCArIGssIDgpKSkpLFxuICAgICAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgKSkgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG52ZWM0IHBvc2l0aW9uKGJvb2wgaXNDb250ZXh0LCBmbG9hdCB2LCBtYXQ0IEEsIG1hdDQgQiwgbWF0NCBDLCBtYXQ0IEQpIHtcbiAgICBmbG9hdCB4ID0gMC41ICogc2lnbih2KSArIDAuNTtcbiAgICBmbG9hdCB5ID0gYXhpc1koeCwgQSwgQiwgQywgRCk7XG4gICAgZmxvYXQgeiA9IDEuMCAtIGFicyh2KTtcblxuICAgIHogKz0gaXNDb250ZXh0ID8gMC4wIDogMi4wICogZmxvYXQoXG4gICAgICAgIG91dHNpZGVCb3VuZGluZ0JveChBLCBCLCBDLCBEKSB8fFxuICAgICAgICBvdXRzaWRlUmFzdGVyTWFzayhBLCBCLCBDLCBEKVxuICAgICk7XG5cbiAgICByZXR1cm4gdmVjNChcbiAgICAgICAgMi4wICogKHZlYzIoeCwgeSkgKiB2aWV3Qm94U2l6ZSArIHZpZXdCb3hQb3MpIC8gcmVzb2x1dGlvbiAtIDEuMCxcbiAgICAgICAgeixcbiAgICAgICAgMS4wXG4gICAgKTtcbn1cblxudm9pZCBtYWluKCkge1xuICAgIG1hdDQgQSA9IG1hdDQocDAxXzA0LCBwMDVfMDgsIHAwOV8xMiwgcDEzXzE2KTtcbiAgICBtYXQ0IEIgPSBtYXQ0KHAxN18yMCwgcDIxXzI0LCBwMjVfMjgsIHAyOV8zMik7XG4gICAgbWF0NCBDID0gbWF0NChwMzNfMzYsIHAzN180MCwgcDQxXzQ0LCBwNDVfNDgpO1xuICAgIG1hdDQgRCA9IG1hdDQocDQ5XzUyLCBwNTNfNTYsIHA1N182MCwgWkVST1MpO1xuXG4gICAgZmxvYXQgdiA9IGNvbG9yc1szXTtcblxuICAgIGdsX1Bvc2l0aW9uID0gcG9zaXRpb24oaXNDb250ZXh0LCB2LCBBLCBCLCBDLCBEKTtcblxuICAgIGZyYWdDb2xvciA9XG4gICAgICAgIGlzQ29udGV4dCA/IHZlYzQoY29udGV4dENvbG9yKSA6XG4gICAgICAgIGlzUGljayA/IHZlYzQoY29sb3JzLnJnYiwgMS4wKSA6IHRleHR1cmUyRChwYWxldHRlLCB2ZWMyKGFicyh2KSwgMC41KSk7XG59XG4iXSksYT1uKFsicHJlY2lzaW9uIGhpZ2hwIGZsb2F0O1xuI2RlZmluZSBHTFNMSUZZIDFcblxudmFyeWluZyB2ZWM0IGZyYWdDb2xvcjtcblxudm9pZCBtYWluKCkge1xuICAgIGdsX0ZyYWdDb2xvciA9IGZyYWdDb2xvcjtcbn1cbiJdKSxvPXQoIi4vY29uc3RhbnRzIikubWF4RGltZW5zaW9uQ291bnQscz10KCIuLi8uLi9saWIiKSxsPW5ldyBVaW50OEFycmF5KDQpLGM9bmV3IFVpbnQ4QXJyYXkoNCksdT17c2hhcGU6WzI1NiwxXSxmb3JtYXQ6InJnYmEiLHR5cGU6InVpbnQ4IixtYWc6Im5lYXJlc3QiLG1pbjoibmVhcmVzdCJ9O2Z1bmN0aW9uIGYodCxlLHIsbixpKXt2YXIgYT10Ll9nbDthLmVuYWJsZShhLlNDSVNTT1JfVEVTVCksYS5zY2lzc29yKGUscixuLGkpLHQuY2xlYXIoe2NvbG9yOlswLDAsMCwwXSxkZXB0aDoxfSl9ZnVuY3Rpb24gaCh0LGUscixuLGksYSl7dmFyIG89YS5rZXk7ci5kcmF3Q29tcGxldGVkfHwoIWZ1bmN0aW9uKHQpe3QucmVhZCh7eDowLHk6MCx3aWR0aDoxLGhlaWdodDoxLGRhdGE6bH0pfSh0KSxyLmRyYXdDb21wbGV0ZWQ9ITApLGZ1bmN0aW9uIHMobCl7dmFyIGM9TWF0aC5taW4obixpLWwqbik7MD09PWwmJih3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoci5jdXJyZW50UmFmc1tvXSksZGVsZXRlIHIuY3VycmVudFJhZnNbb10sZih0LGEuc2Npc3NvclgsYS5zY2lzc29yWSxhLnNjaXNzb3JXaWR0aCxhLnZpZXdCb3hTaXplWzFdKSksci5jbGVhck9ubHl8fChhLmNvdW50PTIqYyxhLm9mZnNldD0yKmwqbixlKGEpLGwqbitjPGkmJihyLmN1cnJlbnRSYWZzW29dPXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKGZ1bmN0aW9uKCl7cyhsKzEpfSkpKSxyLmRyYXdDb21wbGV0ZWQ9ITEpfSgwKX1mdW5jdGlvbiBwKHQsZSl7Zm9yKHZhciByPW5ldyBBcnJheSgyNTYpLG49MDtuPDI1NjtuKyspcltuXT10KG4vMjU1KS5jb25jYXQoZSk7cmV0dXJuIHJ9ZnVuY3Rpb24gZCh0LGUpe3JldHVybih0Pj4+OCplKSUyNTYvMjU1fWZ1bmN0aW9uIG0odCxlLHIpe2Zvcih2YXIgbj1uZXcgQXJyYXkoOCplKSxpPTAsYT0wO2E8ZTthKyspZm9yKHZhciBvPTA7bzwyO28rKylmb3IodmFyIHM9MDtzPDQ7cysrKXt2YXIgbD00KnQrcyxjPXJbNjQqYStsXTs2Mz09PWwmJjA9PT1vJiYoYyo9LTEpLG5baSsrXT1jfXJldHVybiBufWZ1bmN0aW9uIGcodCl7dmFyIGU9IjAiK3Q7cmV0dXJuIGUuc3Vic3RyKGUubGVuZ3RoLTIpfWZ1bmN0aW9uIHYodCl7cmV0dXJuIHQ8bz8icCIrZyh0KzEpKyJfIitnKHQrNCk6ImNvbG9ycyJ9ZnVuY3Rpb24geSh0LGUscixuLGksYSxvLGwsYyx1LGYsaCxwLGQpe2Zvcih2YXIgbT1bW10sW11dLGc9MDtnPDY0O2crKyltWzBdW2ddPWc9PT1pPzE6MCxtWzFdW2ddPWc9PT1hPzE6MDtvKj1kLGwqPWQsYyo9ZCx1Kj1kO3ZhciB2PXQubGluZXMuY2FudmFzT3ZlcmRyYWcqZCx5PXQuZG9tYWluLHg9dC5jYW52YXNXaWR0aCpkLGI9dC5jYW52YXNIZWlnaHQqZCxfPXQucGFkLmwqZCx3PXQucGFkLmIqZCxUPXQubGF5b3V0SGVpZ2h0KmQsaz10LmxheW91dFdpZHRoKmQsQT10LmRlc2VsZWN0ZWRMaW5lcy5jb2xvcjtyZXR1cm4gcy5leHRlbmRGbGF0KHtrZXk6ZixyZXNvbHV0aW9uOlt4LGJdLHZpZXdCb3hQb3M6W28rdixsXSx2aWV3Qm94U2l6ZTpbYyx1XSxpMDppLGkxOmEsZGltMEE6bVswXS5zbGljZSgwLDE2KSxkaW0wQjptWzBdLnNsaWNlKDE2LDMyKSxkaW0wQzptWzBdLnNsaWNlKDMyLDQ4KSxkaW0wRDptWzBdLnNsaWNlKDQ4LDY0KSxkaW0xQTptWzFdLnNsaWNlKDAsMTYpLGRpbTFCOm1bMV0uc2xpY2UoMTYsMzIpLGRpbTFDOm1bMV0uc2xpY2UoMzIsNDgpLGRpbTFEOm1bMV0uc2xpY2UoNDgsNjQpLGRyd0xheWVyOmgsY29udGV4dENvbG9yOltBWzBdLzI1NSxBWzFdLzI1NSxBWzJdLzI1NSxBWzNdPDE/QVszXTpNYXRoLm1heCgxLzI1NSxNYXRoLnBvdygxL3QubGluZXMuY29sb3IubGVuZ3RoLDEvMykpXSxzY2lzc29yWDoobj09PWU/MDpvK3YpKyhfLXYpK2sqeS54WzBdLHNjaXNzb3JXaWR0aDoobj09PXI/eC1vK3Y6YysuNSkrKG49PT1lP28rdjowKSxzY2lzc29yWTpsK3crVCp5LnlbMF0sc2Npc3NvckhlaWdodDp1LHZpZXdwb3J0WDpfLXYrayp5LnhbMF0sdmlld3BvcnRZOncrVCp5LnlbMF0sdmlld3BvcnRXaWR0aDp4LHZpZXdwb3J0SGVpZ2h0OmJ9LHApfWZ1bmN0aW9uIHgodCl7dmFyIGU9TWF0aC5tYXgoMCxNYXRoLmZsb29yKDIwNDcqdFswXSksMCkscj1NYXRoLm1pbigyMDQ3LE1hdGguY2VpbCgyMDQ3KnRbMV0pLDIwNDcpO3JldHVybltNYXRoLm1pbihlLHIpLE1hdGgubWF4KGUscildfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG4sbCxnLGIsXz1lLmNvbnRleHQsdz1lLnBpY2ssVD1lLnJlZ2wsaz1ULl9nbCxBPWsuZ2V0UGFyYW1ldGVyKGsuQUxJQVNFRF9MSU5FX1dJRFRIX1JBTkdFKSxNPU1hdGgubWF4KEFbMF0sTWF0aC5taW4oQVsxXSxlLnZpZXdNb2RlbC5wbG90R2xQaXhlbFJhdGlvKSksUz17Y3VycmVudFJhZnM6e30sZHJhd0NvbXBsZXRlZDohMCxjbGVhck9ubHk6ITF9LEU9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXt9LHI9MDtyPD1vO3IrPTQpZVt2KHIpXT10LmJ1ZmZlcih7dXNhZ2U6ImR5bmFtaWMiLHR5cGU6ImZsb2F0IixkYXRhOm5ldyBVaW50OEFycmF5KDApfSk7cmV0dXJuIGV9KFQpLEw9VC50ZXh0dXJlKHUpLEM9W107SShlKTt2YXIgUD1UKHtwcm9maWxlOiExLGJsZW5kOntlbmFibGU6XyxmdW5jOntzcmNSR0I6InNyYyBhbHBoYSIsZHN0UkdCOiJvbmUgbWludXMgc3JjIGFscGhhIixzcmNBbHBoYToxLGRzdEFscGhhOjF9LGVxdWF0aW9uOntyZ2I6ImFkZCIsYWxwaGE6ImFkZCJ9LGNvbG9yOlswLDAsMCwwXX0sZGVwdGg6e2VuYWJsZTohXyxtYXNrOiEwLGZ1bmM6Imxlc3MiLHJhbmdlOlswLDFdfSxjdWxsOntlbmFibGU6ITAsZmFjZToiYmFjayJ9LHNjaXNzb3I6e2VuYWJsZTohMCxib3g6e3g6VC5wcm9wKCJzY2lzc29yWCIpLHk6VC5wcm9wKCJzY2lzc29yWSIpLHdpZHRoOlQucHJvcCgic2Npc3NvcldpZHRoIiksaGVpZ2h0OlQucHJvcCgic2Npc3NvckhlaWdodCIpfX0sdmlld3BvcnQ6e3g6VC5wcm9wKCJ2aWV3cG9ydFgiKSx5OlQucHJvcCgidmlld3BvcnRZIiksd2lkdGg6VC5wcm9wKCJ2aWV3cG9ydFdpZHRoIiksaGVpZ2h0OlQucHJvcCgidmlld3BvcnRIZWlnaHQiKX0sZGl0aGVyOiExLHZlcnQ6aSxmcmFnOmEscHJpbWl0aXZlOiJsaW5lcyIsbGluZVdpZHRoOk0sYXR0cmlidXRlczpFLHVuaWZvcm1zOntyZXNvbHV0aW9uOlQucHJvcCgicmVzb2x1dGlvbiIpLHZpZXdCb3hQb3M6VC5wcm9wKCJ2aWV3Qm94UG9zIiksdmlld0JveFNpemU6VC5wcm9wKCJ2aWV3Qm94U2l6ZSIpLGRpbTBBOlQucHJvcCgiZGltMEEiKSxkaW0xQTpULnByb3AoImRpbTFBIiksZGltMEI6VC5wcm9wKCJkaW0wQiIpLGRpbTFCOlQucHJvcCgiZGltMUIiKSxkaW0wQzpULnByb3AoImRpbTBDIiksZGltMUM6VC5wcm9wKCJkaW0xQyIpLGRpbTBEOlQucHJvcCgiZGltMEQiKSxkaW0xRDpULnByb3AoImRpbTFEIiksbG9BOlQucHJvcCgibG9BIiksaGlBOlQucHJvcCgiaGlBIiksbG9COlQucHJvcCgibG9CIiksaGlCOlQucHJvcCgiaGlCIiksbG9DOlQucHJvcCgibG9DIiksaGlDOlQucHJvcCgiaGlDIiksbG9EOlQucHJvcCgibG9EIiksaGlEOlQucHJvcCgiaGlEIikscGFsZXR0ZTpMLGNvbnRleHRDb2xvcjpULnByb3AoImNvbnRleHRDb2xvciIpLG1hc2tUZXh0dXJlOlQucHJvcCgibWFza1RleHR1cmUiKSxkcndMYXllcjpULnByb3AoImRyd0xheWVyIiksbWFza0hlaWdodDpULnByb3AoIm1hc2tIZWlnaHQiKX0sb2Zmc2V0OlQucHJvcCgib2Zmc2V0IiksY291bnQ6VC5wcm9wKCJjb3VudCIpfSk7ZnVuY3Rpb24gSSh0KXtyPXQubW9kZWwsbj10LnZpZXdNb2RlbCxsPW4uZGltZW5zaW9ucy5zbGljZSgpLGc9bFswXT9sWzBdLnZhbHVlcy5sZW5ndGg6MDt2YXIgZT1yLmxpbmVzLGk9dz9lLmNvbG9yLm1hcCgoZnVuY3Rpb24odCxyKXtyZXR1cm4gci9lLmNvbG9yLmxlbmd0aH0pKTplLmNvbG9yLGE9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbixpPW5ldyBBcnJheSh0KihvKzQpKSxhPTAscz0wO3M8dDtzKyspe2Zvcih2YXIgbD0wO2w8bztsKyspaVthKytdPWw8ZS5sZW5ndGg/ZVtsXS5wYWRkZWRVbml0VmFsdWVzW3NdOi41O2lbYSsrXT1kKHMsMiksaVthKytdPWQocywxKSxpW2ErK109ZChzLDApLGlbYSsrXT0obj1yW3NdLE1hdGgubWF4KDFlLTYsTWF0aC5taW4oLjk5OTk5OSxuKSkpfXJldHVybiBpfShnLGwsaSk7IWZ1bmN0aW9uKHQsZSxyKXtmb3IodmFyIG49MDtuPD1vO24rPTQpdFt2KG4pXShtKG4vNCxlLHIpKX0oRSxnLGEpLF98fHd8fChMPVQudGV4dHVyZShzLmV4dGVuZEZsYXQoe2RhdGE6cChyLnVuaXRUb0NvbG9yLDI1NSl9LHUpKSl9cmV0dXJue3JlbmRlcjpmdW5jdGlvbih0LGUsbil7dmFyIGksYSxvLHM9dC5sZW5ndGgsYz0xLzAsdT0tMS8wO2ZvcihpPTA7aTxzO2krKyl0W2ldLmRpbTAuY2FudmFzWDxjJiYoYz10W2ldLmRpbTAuY2FudmFzWCxhPWkpLHRbaV0uZGltMS5jYW52YXNYPnUmJih1PXRbaV0uZGltMS5jYW52YXNYLG89aSk7MD09PXMmJmYoVCwwLDAsci5jYW52YXNXaWR0aCxyLmNhbnZhc0hlaWdodCk7dmFyIHA9ZnVuY3Rpb24odCl7dmFyIGUscixuLGk9W1tdLFtdXTtmb3Iobj0wO248NjQ7bisrKXt2YXIgYT0hdCYmbjxsLmxlbmd0aD9sW25dLmJydXNoLmZpbHRlci5nZXRCb3VuZHMoKTpbLTEvMCwxLzBdO2lbMF1bbl09YVswXSxpWzFdW25dPWFbMV19dmFyIG89bmV3IEFycmF5KDE2Mzg0KTtmb3IoZT0wO2U8MTYzODQ7ZSsrKW9bZV09MjU1O2lmKCF0KWZvcihlPTA7ZTxsLmxlbmd0aDtlKyspe3ZhciBzPWUlOCxjPShlLXMpLzgsdT1NYXRoLnBvdygyLHMpLGY9bFtlXS5icnVzaC5maWx0ZXIuZ2V0KCk7aWYoIShmLmxlbmd0aDwyKSl7dmFyIGg9eChmWzBdKVsxXTtmb3Iocj0xO3I8Zi5sZW5ndGg7cisrKXt2YXIgcD14KGZbcl0pO2ZvcihuPWgrMTtuPHBbMF07bisrKW9bOCpuK2NdJj1+dTtoPU1hdGgubWF4KGgscFsxXSl9fX12YXIgZD17c2hhcGU6WzgsMjA0OF0sZm9ybWF0OiJhbHBoYSIsdHlwZToidWludDgiLG1hZzoibmVhcmVzdCIsbWluOiJuZWFyZXN0IixkYXRhOm99O3JldHVybiBiP2IoZCk6Yj1ULnRleHR1cmUoZCkse21hc2tUZXh0dXJlOmIsbWFza0hlaWdodDoyMDQ4LGxvQTppWzBdLnNsaWNlKDAsMTYpLGxvQjppWzBdLnNsaWNlKDE2LDMyKSxsb0M6aVswXS5zbGljZSgzMiw0OCksbG9EOmlbMF0uc2xpY2UoNDgsNjQpLGhpQTppWzFdLnNsaWNlKDAsMTYpLGhpQjppWzFdLnNsaWNlKDE2LDMyKSxoaUM6aVsxXS5zbGljZSgzMiw0OCksaGlEOmlbMV0uc2xpY2UoNDgsNjQpfX0oXyk7Zm9yKGk9MDtpPHM7aSsrKXt2YXIgZD10W2ldLG09ZC5kaW0wLmNyb3NzZmlsdGVyRGltZW5zaW9uSW5kZXgsdj1kLmRpbTEuY3Jvc3NmaWx0ZXJEaW1lbnNpb25JbmRleCxrPWQuY2FudmFzWCxBPWQuY2FudmFzWSxNPWsrZC5wYW5lbFNpemVYLEU9ZC5wbG90R2xQaXhlbFJhdGlvO2lmKGV8fCFDW21dfHxDW21dWzBdIT09a3x8Q1ttXVsxXSE9PU0pe0NbbV09W2ssTV07dmFyIEw9eShyLGEsbyxpLG0sdixrLEEsZC5wYW5lbFNpemVYLGQucGFuZWxTaXplWSxkLmRpbTAuY3Jvc3NmaWx0ZXJEaW1lbnNpb25JbmRleCxfPzA6dz8yOjEscCxFKTtTLmNsZWFyT25seT1uO3ZhciBJPWU/ci5saW5lcy5ibG9ja0xpbmVDb3VudDpnO2goVCxQLFMsSSxnLEwpfX19LHJlYWRQaXhlbDpmdW5jdGlvbih0LGUpe3JldHVybiBULnJlYWQoe3g6dCx5OmUsd2lkdGg6MSxoZWlnaHQ6MSxkYXRhOmN9KSxjfSxyZWFkUGl4ZWxzOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPW5ldyBVaW50OEFycmF5KDQqcipuKTtyZXR1cm4gVC5yZWFkKHt4OnQseTplLHdpZHRoOnIsaGVpZ2h0Om4sZGF0YTppfSksaX0sZGVzdHJveTpmdW5jdGlvbigpe2Zvcih2YXIgZSBpbiB0LnN0eWxlWyJwb2ludGVyLWV2ZW50cyJdPSJub25lIixMLmRlc3Ryb3koKSxiJiZiLmRlc3Ryb3koKSxFKUVbZV0uZGVzdHJveSgpfSx1cGRhdGU6SX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2NvbnN0YW50cyI6MTE1NyxnbHNsaWZ5OjQyNH1dLDExNjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGE7Zm9yKG58fChuPTEvMCksaT0wO2k8ZS5sZW5ndGg7aSsrKShhPWVbaV0pLnZpc2libGUmJihuPU1hdGgubWluKG4sYVtyXS5sZW5ndGgpKTtmb3Iobj09PTEvMCYmKG49MCksdC5fbGVuZ3RoPW4saT0wO2k8ZS5sZW5ndGg7aSsrKShhPWVbaV0pLnZpc2libGUmJihhLl9sZW5ndGg9bik7cmV0dXJuIG59fSx7fV0sMTE2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPWkubnVtYmVyRm9ybWF0LG89dCgiY29sb3ItcmdiYSIpLHM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxsPWkuc3RyUm90YXRlLGM9aS5zdHJUcmFuc2xhdGUsdT10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxmPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGg9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikscD10KCIuLi8uLi9saWIvZ3VwIiksZD1wLmtleUZ1bixtPXAucmVwZWF0LGc9cC51bndyYXAsdj10KCIuL2hlbHBlcnMiKSx5PXQoIi4vY29uc3RhbnRzIikseD10KCIuL2F4aXNicnVzaCIpLGI9dCgiLi9saW5lcyIpO2Z1bmN0aW9uIF8odCxlLHIpe3JldHVybiBpLmFnZ051bXModCxudWxsLGUscil9ZnVuY3Rpb24gdyh0LGUpe3JldHVybiBrKF8oTWF0aC5taW4sdCxlKSxfKE1hdGgubWF4LHQsZSkpfWZ1bmN0aW9uIFQodCl7dmFyIGU9dC5yYW5nZTtyZXR1cm4gZT9rKGVbMF0sZVsxXSk6dyh0LnZhbHVlcyx0Ll9sZW5ndGgpfWZ1bmN0aW9uIGsodCxlKXtyZXR1cm4haXNOYU4odCkmJmlzRmluaXRlKHQpfHwodD0wKSwhaXNOYU4oZSkmJmlzRmluaXRlKGUpfHwoZT0wKSx0PT09ZSYmKDA9PT10Pyh0LT0xLGUrPTEpOih0Kj0uOSxlKj0xLjEpKSxbdCxlXX1mdW5jdGlvbiBBKHQsZSxyLGksbyl7dmFyIHMsbCxjPVQocik7cmV0dXJuIGk/bi5zY2FsZS5vcmRpbmFsKCkuZG9tYWluKGkubWFwKChzPWEoci50aWNrZm9ybWF0KSxsPW8sbD9mdW5jdGlvbih0LGUpe3ZhciByPWxbZV07cmV0dXJuIG51bGw9PXI/cyh0KTpyfTpzKSkpLnJhbmdlKGkubWFwKChmdW5jdGlvbihyKXt2YXIgbj0oci1jWzBdKS8oY1sxXS1jWzBdKTtyZXR1cm4gdC1lK24qKDIqZS10KX0pKSk6bi5zY2FsZS5saW5lYXIoKS5kb21haW4oYykucmFuZ2UoW3QtZSxlXSl9ZnVuY3Rpb24gTSh0KXtpZih0LnRpY2t2YWxzKXt2YXIgZT1UKHQpO3JldHVybiBuLnNjYWxlLm9yZGluYWwoKS5kb21haW4odC50aWNrdmFscykucmFuZ2UodC50aWNrdmFscy5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybih0LWVbMF0pLyhlWzFdLWVbMF0pfSkpKX19ZnVuY3Rpb24gUyh0KXt2YXIgZT10Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF19KSkscj10Lm1hcCgoZnVuY3Rpb24odCl7dmFyIGU9byh0WzFdKTtyZXR1cm4gbi5yZ2IoInJnYigiK2VbMF0rIiwiK2VbMV0rIiwiK2VbMl0rIikiKX0pKSxpPSJyZ2IiLnNwbGl0KCIiKS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiBuLnNjYWxlLmxpbmVhcigpLmNsYW1wKCEwKS5kb21haW4oZSkucmFuZ2Uoci5tYXAoKGk9dCxmdW5jdGlvbih0KXtyZXR1cm4gdFtpXX0pKSk7dmFyIGl9KSk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBpLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIGUodCl9KSl9fWZ1bmN0aW9uIEUodCl7cmV0dXJuIHQuZGltZW5zaW9ucy5zb21lKChmdW5jdGlvbih0KXtyZXR1cm4gdC5icnVzaC5maWx0ZXJTcGVjaWZpZWR9KSl9ZnVuY3Rpb24gTCh0LGUscil7dmFyIGE9ZyhlKSxzPWEudHJhY2UsbD12LmNvbnZlcnRUeXBlZEFycmF5KGEubGluZUNvbG9yKSxjPXMubGluZSx1PXtjb2xvcjpvKHkuZGVzZWxlY3RlZExpbmVDb2xvcil9LGY9aC5leHRyYWN0T3B0cyhjKSxwPWYucmV2ZXJzZXNjYWxlP2guZmxpcFNjYWxlKGEuY3NjYWxlKTphLmNzY2FsZSxkPXMuZG9tYWluLG09cy5kaW1lbnNpb25zLHg9dC53aWR0aCxiPXMubGFiZWxhbmdsZSxfPXMubGFiZWxzaWRlLHc9cy5sYWJlbGZvbnQsaz1zLnRpY2tmb250LEE9cy5yYW5nZWZvbnQsTT1pLmV4dGVuZERlZXBOb0FycmF5cyh7fSxjLHtjb2xvcjpsLm1hcChuLnNjYWxlLmxpbmVhcigpLmRvbWFpbihUKHt2YWx1ZXM6bCxyYW5nZTpbZi5taW4sZi5tYXhdLF9sZW5ndGg6cy5fbGVuZ3RofSkpKSxibG9ja0xpbmVDb3VudDp5LmJsb2NrTGluZUNvdW50LGNhbnZhc092ZXJkcmFnOnkub3ZlcmRyYWcqeS5jYW52YXNQaXhlbFJhdGlvfSksRT1NYXRoLmZsb29yKHgqKGQueFsxXS1kLnhbMF0pKSxMPU1hdGguZmxvb3IodC5oZWlnaHQqKGQueVsxXS1kLnlbMF0pKSxDPXQubWFyZ2lufHx7bDo4MCxyOjgwLHQ6MTAwLGI6ODB9LFA9RSxJPUw7cmV0dXJue2tleTpyLGNvbENvdW50Om0uZmlsdGVyKHYuaXNWaXNpYmxlKS5sZW5ndGgsZGltZW5zaW9uczptLHRpY2tEaXN0YW5jZTp5LnRpY2tEaXN0YW5jZSx1bml0VG9Db2xvcjpTKHApLGxpbmVzOk0sZGVzZWxlY3RlZExpbmVzOnUsbGFiZWxBbmdsZTpiLGxhYmVsU2lkZTpfLGxhYmVsRm9udDp3LHRpY2tGb250OmsscmFuZ2VGb250OkEsbGF5b3V0V2lkdGg6eCxsYXlvdXRIZWlnaHQ6dC5oZWlnaHQsZG9tYWluOmQsdHJhbnNsYXRlWDpkLnhbMF0qeCx0cmFuc2xhdGVZOnQuaGVpZ2h0LWQueVsxXSp0LmhlaWdodCxwYWQ6QyxjYW52YXNXaWR0aDpQKnkuY2FudmFzUGl4ZWxSYXRpbysyKk0uY2FudmFzT3ZlcmRyYWcsY2FudmFzSGVpZ2h0OkkqeS5jYW52YXNQaXhlbFJhdGlvLHdpZHRoOlAsaGVpZ2h0OkksY2FudmFzUGl4ZWxSYXRpbzp5LmNhbnZhc1BpeGVsUmF0aW99fWZ1bmN0aW9uIEModCxlLHIpe3ZhciBvPXIud2lkdGgscz1yLmhlaWdodCxsPXIuZGltZW5zaW9ucyxjPXIuY2FudmFzUGl4ZWxSYXRpbyx1PWZ1bmN0aW9uKHQpe3JldHVybiBvKnQvTWF0aC5tYXgoMSxyLmNvbENvdW50LTEpfSxmPXkudmVydGljYWxQYWRkaW5nL3MsaD1mdW5jdGlvbih0LGUpe3JldHVybiBuLnNjYWxlLmxpbmVhcigpLnJhbmdlKFtlLHQtZV0pfShzLHkudmVydGljYWxQYWRkaW5nKSxwPXtrZXk6ci5rZXkseFNjYWxlOnUsbW9kZWw6cixpbkJydXNoRHJhZzohMX0sZD17fTtyZXR1cm4gcC5kaW1lbnNpb25zPWwuZmlsdGVyKHYuaXNWaXNpYmxlKS5tYXAoKGZ1bmN0aW9uKG8sbCl7dmFyIG09ZnVuY3Rpb24odCxlKXtyZXR1cm4gbi5zY2FsZS5saW5lYXIoKS5kb21haW4oVCh0KSkucmFuZ2UoW2UsMS1lXSl9KG8sZiksZz1kW28ubGFiZWxdO2Rbby5sYWJlbF09KGd8fDApKzE7dmFyIGI9by5sYWJlbCsoZz8iX18iK2c6IiIpLF89by5jb25zdHJhaW50cmFuZ2Usdz1fJiZfLmxlbmd0aDt3JiYhQXJyYXkuaXNBcnJheShfWzBdKSYmKF89W19dKTt2YXIgaz13P18ubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5tYXAobSl9KSk6W1stMS8wLDEvMF1dLFM9by52YWx1ZXM7Uy5sZW5ndGg+by5fbGVuZ3RoJiYoUz1TLnNsaWNlKDAsby5fbGVuZ3RoKSk7dmFyIEwsQz1vLnRpY2t2YWxzO2Z1bmN0aW9uIFAodCxlKXtyZXR1cm57dmFsOnQsdGV4dDpMW2VdfX1mdW5jdGlvbiBJKHQsZSl7cmV0dXJuIHQudmFsLWUudmFsfWlmKEFycmF5LmlzQXJyYXkoQykmJkMubGVuZ3RoKXtMPW8udGlja3RleHQsQXJyYXkuaXNBcnJheShMKSYmTC5sZW5ndGg/TC5sZW5ndGg+Qy5sZW5ndGg/TD1MLnNsaWNlKDAsQy5sZW5ndGgpOkMubGVuZ3RoPkwubGVuZ3RoJiYoQz1DLnNsaWNlKDAsTC5sZW5ndGgpKTpMPUMubWFwKGEoby50aWNrZm9ybWF0KSk7Zm9yKHZhciBPPTE7TzxDLmxlbmd0aDtPKyspaWYoQ1tPXTxDW08tMV0pe2Zvcih2YXIgej1DLm1hcChQKS5zb3J0KEkpLEQ9MDtEPEMubGVuZ3RoO0QrKylDW0RdPXpbRF0udmFsLExbRF09eltEXS50ZXh0O2JyZWFrfX1lbHNlIEM9dm9pZCAwO3JldHVybiBTPXYuY29udmVydFR5cGVkQXJyYXkoUykse2tleTpiLGxhYmVsOm8ubGFiZWwsdGlja0Zvcm1hdDpvLnRpY2tmb3JtYXQsdGlja3ZhbHM6Qyx0aWNrdGV4dDpMLG9yZGluYWw6di5pc09yZGluYWwobyksbXVsdGlzZWxlY3Q6by5tdWx0aXNlbGVjdCx4SW5kZXg6bCxjcm9zc2ZpbHRlckRpbWVuc2lvbkluZGV4OmwsdmlzaWJsZUluZGV4Om8uX2luZGV4LGhlaWdodDpzLHZhbHVlczpTLHBhZGRlZFVuaXRWYWx1ZXM6Uy5tYXAobSksdW5pdFRpY2t2YWxzOkMmJkMubWFwKG0pLHhTY2FsZTp1LHg6dShsKSxjYW52YXNYOnUobCkqYyx1bml0VG9QYWRkZWRQeDpoLGRvbWFpblNjYWxlOkEocyx5LnZlcnRpY2FsUGFkZGluZyxvLEMsTCksb3JkaW5hbFNjYWxlOk0obykscGFyZW50OnAsbW9kZWw6cixicnVzaDp4Lm1ha2VCcnVzaCh0LHcsaywoZnVuY3Rpb24oKXt0LmxpbmVQaWNrQWN0aXZlKCExKX0pLChmdW5jdGlvbigpe3ZhciBlPXA7ZS5mb2N1c0xheWVyJiZlLmZvY3VzTGF5ZXIucmVuZGVyKGUucGFuZWxzLCEwKTt2YXIgcj1FKGUpOyF0LmNvbnRleHRTaG93bigpJiZyPyhlLmNvbnRleHRMYXllciYmZS5jb250ZXh0TGF5ZXIucmVuZGVyKGUucGFuZWxzLCEwKSx0LmNvbnRleHRTaG93bighMCkpOnQuY29udGV4dFNob3duKCkmJiFyJiYoZS5jb250ZXh0TGF5ZXImJmUuY29udGV4dExheWVyLnJlbmRlcihlLnBhbmVscywhMCwhMCksdC5jb250ZXh0U2hvd24oITEpKX0pLChmdW5jdGlvbihyKXtpZihwLmZvY3VzTGF5ZXIucmVuZGVyKHAucGFuZWxzLCEwKSxwLnBpY2tMYXllciYmcC5waWNrTGF5ZXIucmVuZGVyKHAucGFuZWxzLCEwKSx0LmxpbmVQaWNrQWN0aXZlKCEwKSxlJiZlLmZpbHRlckNoYW5nZWQpe3ZhciBuPW0uaW52ZXJ0LGE9ci5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm1hcChuKS5zb3J0KGkuc29ydGVyQXNjKX0pKS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiB0WzBdLWVbMF19KSk7ZS5maWx0ZXJDaGFuZ2VkKHAua2V5LG8uX2luZGV4LGEpfX0pKX19KSkscH1mdW5jdGlvbiBQKHQpe3QuY2xhc3NlZCh5LmNuLmF4aXNFeHRlbnRUZXh0LCEwKS5hdHRyKCJ0ZXh0LWFuY2hvciIsIm1pZGRsZSIpLnN0eWxlKCJjdXJzb3IiLCJkZWZhdWx0Iil9ZnVuY3Rpb24gSSh0LGUpe3ZhciByPSJ0b3AiPT09ZT8xOi0xLG49dCpNYXRoLlBJLzE4MDtyZXR1cm57ZGlyOnIsZHg6TWF0aC5zaW4obiksZHk6TWF0aC5jb3MobiksZGVncmVlczp0fX1mdW5jdGlvbiBPKHQsZSxyKXtmb3IodmFyIG49ZS5wYW5lbHN8fChlLnBhbmVscz1bXSksaT10LmRhdGEoKSxhPTA7YTxpLmxlbmd0aC0xO2ErKyl7dmFyIG89blthXXx8KG5bYV09e30pLHM9aVthXSxsPWlbYSsxXTtvLmRpbTA9cyxvLmRpbTE9bCxvLmNhbnZhc1g9cy5jYW52YXNYLG8ucGFuZWxTaXplWD1sLmNhbnZhc1gtcy5jYW52YXNYLG8ucGFuZWxTaXplWT1lLm1vZGVsLmNhbnZhc0hlaWdodCxvLnk9MCxvLmNhbnZhc1k9MCxvLnBsb3RHbFBpeGVsUmF0aW89cn19ZnVuY3Rpb24geih0LGUpe3JldHVybiBzLnRpY2tUZXh0KHQuX2F4LGUsITEpLnRleHR9ZnVuY3Rpb24gRCh0LGUpe2lmKHQub3JkaW5hbClyZXR1cm4iIjt2YXIgcj10LmRvbWFpblNjYWxlLmRvbWFpbigpLG49cltlP3IubGVuZ3RoLTE6MF07cmV0dXJuIHoodC5tb2RlbC5kaW1lbnNpb25zW3QudmlzaWJsZUluZGV4XSxuKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89dC5fZnVsbExheW91dCxoPW8uX3RvcHBhcGVyLHA9by5fZ2xjb250YWluZXIsXz10Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW8sVD10Ll9mdWxsTGF5b3V0LnBhcGVyX2JnY29sb3I7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKWZvcih2YXIgcj0wO3I8dFtlXS5sZW5ndGg7cisrKWZvcih2YXIgbj10W2VdW3JdLnRyYWNlLGk9bi5kaW1lbnNpb25zLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXS52YWx1ZXMsbD1pW2FdLl9heDtsJiYobC5yYW5nZT9sLnJhbmdlPWsobC5yYW5nZVswXSxsLnJhbmdlWzFdKTpsLnJhbmdlPXcobyxuLl9sZW5ndGgpLGwuZHRpY2t8fChsLmR0aWNrPS4wMSooTWF0aC5hYnMobC5yYW5nZVsxXS1sLnJhbmdlWzBdKXx8MSkpLGwudGlja2Zvcm1hdD1pW2FdLnRpY2tmb3JtYXQscy5jYWxjVGlja3MobCksbC5jbGVhblJhbmdlKCkpfX0oZSk7dmFyIEEsTSxTPShBPSEwLE09ITEse2xpbmVQaWNrQWN0aXZlOmZ1bmN0aW9uKHQpe3JldHVybiBhcmd1bWVudHMubGVuZ3RoP0E9ISF0OkF9LGNvbnRleHRTaG93bjpmdW5jdGlvbih0KXtyZXR1cm4gYXJndW1lbnRzLmxlbmd0aD9NPSEhdDpNfX0pLFI9ZS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBnKHQpLnRyYWNlLnZpc2libGV9KSkubWFwKEwuYmluZCgwLHIpKS5tYXAoQy5iaW5kKDAsUyxhKSk7cC5lYWNoKChmdW5jdGlvbih0LGUpe3JldHVybiBpLmV4dGVuZEZsYXQodCxSW2VdKX0pKTt2YXIgRj1wLnNlbGVjdEFsbCgiLmdsLWNhbnZhcyIpLmVhY2goKGZ1bmN0aW9uKHQpe3Qudmlld01vZGVsPVJbMF0sdC52aWV3TW9kZWwucGxvdEdsUGl4ZWxSYXRpbz1fLHQudmlld01vZGVsLnBhcGVyQ29sb3I9VCx0Lm1vZGVsPXQudmlld01vZGVsP3Qudmlld01vZGVsLm1vZGVsOm51bGx9KSksQj1udWxsO0YuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC5waWNrfSkpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImF1dG8iKS5vbigibW91c2Vtb3ZlIiwoZnVuY3Rpb24odCl7aWYoUy5saW5lUGlja0FjdGl2ZSgpJiZ0LmxpbmVMYXllciYmYSYmYS5ob3Zlcil7dmFyIGU9bi5ldmVudCxyPXRoaXMud2lkdGgsaT10aGlzLmhlaWdodCxvPW4ubW91c2UodGhpcykscz1vWzBdLGw9b1sxXTtpZihzPDB8fGw8MHx8cz49cnx8bD49aSlyZXR1cm47dmFyIGM9dC5saW5lTGF5ZXIucmVhZFBpeGVsKHMsaS0xLWwpLHU9MCE9PWNbM10sZj11P2NbMl0rMjU2KihjWzFdKzI1NipjWzBdKTpudWxsLGg9e3g6cyx5OmwsY2xpZW50WDplLmNsaWVudFgsY2xpZW50WTplLmNsaWVudFksZGF0YUluZGV4OnQubW9kZWwua2V5LGN1cnZlTnVtYmVyOmZ9O2YhPT1CJiYodT9hLmhvdmVyKGgpOmEudW5ob3ZlciYmYS51bmhvdmVyKGgpLEI9Zil9fSkpLEYuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5waWNrPzA6MX0pKSxoLnN0eWxlKCJiYWNrZ3JvdW5kIiwicmdiYSgyNTUsIDI1NSwgMjU1LCAwKSIpO3ZhciBOPWguc2VsZWN0QWxsKCIuIit5LmNuLnBhcmNvb3JkcykuZGF0YShSLGQpO04uZXhpdCgpLnJlbW92ZSgpLE4uZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHkuY24ucGFyY29vcmRzLCEwKS5zdHlsZSgic2hhcGUtcmVuZGVyaW5nIiwiY3Jpc3BFZGdlcyIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsIm5vbmUiKSxOLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBjKHQubW9kZWwudHJhbnNsYXRlWCx0Lm1vZGVsLnRyYW5zbGF0ZVkpfSkpO3ZhciBqPU4uc2VsZWN0QWxsKCIuIit5LmNuLnBhcmNvb3Jkc0NvbnRyb2xWaWV3KS5kYXRhKG0sZCk7ai5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoeS5jbi5wYXJjb29yZHNDb250cm9sVmlldywhMCksai5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gYyh0Lm1vZGVsLnBhZC5sLHQubW9kZWwucGFkLnQpfSkpO3ZhciBVPWouc2VsZWN0QWxsKCIuIit5LmNuLnlBeGlzKS5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kaW1lbnNpb25zfSksZCk7VS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoeS5jbi55QXhpcywhMCksai5lYWNoKChmdW5jdGlvbih0KXtPKFUsdCxfKX0pKSxGLmVhY2goKGZ1bmN0aW9uKHQpe2lmKHQudmlld01vZGVsKXshdC5saW5lTGF5ZXJ8fGE/dC5saW5lTGF5ZXI9Yih0aGlzLHQpOnQubGluZUxheWVyLnVwZGF0ZSh0KSwodC5rZXl8fDA9PT10LmtleSkmJih0LnZpZXdNb2RlbFt0LmtleV09dC5saW5lTGF5ZXIpO3ZhciBlPSF0LmNvbnRleHR8fGE7dC5saW5lTGF5ZXIucmVuZGVyKHQudmlld01vZGVsLnBhbmVscyxlKX19KSksVS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gYyh0LnhTY2FsZSh0LnhJbmRleCksMCl9KSksVS5jYWxsKG4uYmVoYXZpb3IuZHJhZygpLm9yaWdpbigoZnVuY3Rpb24odCl7cmV0dXJuIHR9KSkub24oImRyYWciLChmdW5jdGlvbih0KXt2YXIgZT10LnBhcmVudDtTLmxpbmVQaWNrQWN0aXZlKCExKSx0Lng9TWF0aC5tYXgoLXkub3ZlcmRyYWcsTWF0aC5taW4odC5tb2RlbC53aWR0aCt5Lm92ZXJkcmFnLG4uZXZlbnQueCkpLHQuY2FudmFzWD10LngqdC5tb2RlbC5jYW52YXNQaXhlbFJhdGlvLFUuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC54LWUueH0pKS5lYWNoKChmdW5jdGlvbihlLHIpe2UueEluZGV4PXIsZS54PXQ9PT1lP2UueDplLnhTY2FsZShlLnhJbmRleCksZS5jYW52YXNYPWUueCplLm1vZGVsLmNhbnZhc1BpeGVsUmF0aW99KSksTyhVLGUsXyksVS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiAwIT09TWF0aC5hYnModC54SW5kZXgtZS54SW5kZXgpfSkpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiBjKHQueFNjYWxlKHQueEluZGV4KSwwKX0pKSxuLnNlbGVjdCh0aGlzKS5hdHRyKCJ0cmFuc2Zvcm0iLGModC54LDApKSxVLmVhY2goKGZ1bmN0aW9uKHIsbixpKXtpPT09dC5wYXJlbnQua2V5JiYoZS5kaW1lbnNpb25zW25dPXIpfSkpLGUuY29udGV4dExheWVyJiZlLmNvbnRleHRMYXllci5yZW5kZXIoZS5wYW5lbHMsITEsIUUoZSkpLGUuZm9jdXNMYXllci5yZW5kZXImJmUuZm9jdXNMYXllci5yZW5kZXIoZS5wYW5lbHMpfSkpLm9uKCJkcmFnZW5kIiwoZnVuY3Rpb24odCl7dmFyIGU9dC5wYXJlbnQ7dC54PXQueFNjYWxlKHQueEluZGV4KSx0LmNhbnZhc1g9dC54KnQubW9kZWwuY2FudmFzUGl4ZWxSYXRpbyxPKFUsZSxfKSxuLnNlbGVjdCh0aGlzKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gYyh0LngsMCl9KSksZS5jb250ZXh0TGF5ZXImJmUuY29udGV4dExheWVyLnJlbmRlcihlLnBhbmVscywhMSwhRShlKSksZS5mb2N1c0xheWVyJiZlLmZvY3VzTGF5ZXIucmVuZGVyKGUucGFuZWxzKSxlLnBpY2tMYXllciYmZS5waWNrTGF5ZXIucmVuZGVyKGUucGFuZWxzLCEwKSxTLmxpbmVQaWNrQWN0aXZlKCEwKSxhJiZhLmF4ZXNNb3ZlZCYmYS5heGVzTW92ZWQoZS5rZXksZS5kaW1lbnNpb25zLm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuY3Jvc3NmaWx0ZXJEaW1lbnNpb25JbmRleH0pKSl9KSkpLFUuZXhpdCgpLnJlbW92ZSgpO3ZhciBWPVUuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNPdmVybGF5cykuZGF0YShtLGQpO1YuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHkuY24uYXhpc092ZXJsYXlzLCEwKSxWLnNlbGVjdEFsbCgiLiIreS5jbi5heGlzKS5yZW1vdmUoKTt2YXIgSD1WLnNlbGVjdEFsbCgiLiIreS5jbi5heGlzKS5kYXRhKG0sZCk7SC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoeS5jbi5heGlzLCEwKSxILmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXQubW9kZWwuaGVpZ2h0L3QubW9kZWwudGlja0Rpc3RhbmNlLHI9dC5kb21haW5TY2FsZSxpPXIuZG9tYWluKCk7bi5zZWxlY3QodGhpcykuY2FsbChuLnN2Zy5heGlzKCkub3JpZW50KCJsZWZ0IikudGlja1NpemUoNCkub3V0ZXJUaWNrU2l6ZSgyKS50aWNrcyhlLHQudGlja0Zvcm1hdCkudGlja1ZhbHVlcyh0Lm9yZGluYWw/aTpudWxsKS50aWNrRm9ybWF0KChmdW5jdGlvbihlKXtyZXR1cm4gdi5pc09yZGluYWwodCk/ZTp6KHQubW9kZWwuZGltZW5zaW9uc1t0LnZpc2libGVJbmRleF0sZSl9KSkuc2NhbGUocikpLGYuZm9udChILnNlbGVjdEFsbCgidGV4dCIpLHQubW9kZWwudGlja0ZvbnQpfSkpLEguc2VsZWN0QWxsKCIuZG9tYWluLCAudGljaz5saW5lIikuYXR0cigiZmlsbCIsIm5vbmUiKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwuMjUpLmF0dHIoInN0cm9rZS13aWR0aCIsIjFweCIpLEguc2VsZWN0QWxsKCJ0ZXh0Iikuc3R5bGUoInRleHQtc2hhZG93Iix1Lm1ha2VUZXh0U2hhZG93KFQpKS5zdHlsZSgiY3Vyc29yIiwiZGVmYXVsdCIpO3ZhciBxPVYuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNIZWFkaW5nKS5kYXRhKG0sZCk7cS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoeS5jbi5heGlzSGVhZGluZywhMCk7dmFyIEc9cS5zZWxlY3RBbGwoIi4iK3kuY24uYXhpc1RpdGxlKS5kYXRhKG0sZCk7Ry5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoeS5jbi5heGlzVGl0bGUsITApLmF0dHIoInRleHQtYW5jaG9yIiwibWlkZGxlIikuc3R5bGUoImN1cnNvciIsImV3LXJlc2l6ZSIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImF1dG8iKSxHLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmxhYmVsfSkpLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciByPW4uc2VsZWN0KHRoaXMpO2YuZm9udChyLGUubW9kZWwubGFiZWxGb250KSx1LmNvbnZlcnRUb1RzcGFucyhyLHQpfSkpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPUkodC5tb2RlbC5sYWJlbEFuZ2xlLHQubW9kZWwubGFiZWxTaWRlKSxyPXkuYXhpc1RpdGxlT2Zmc2V0O3JldHVybihlLmRpcj4wPyIiOmMoMCwyKnIrdC5tb2RlbC5oZWlnaHQpKStsKGUuZGVncmVlcykrYygtciplLmR4LC1yKmUuZHkpfSkpLmF0dHIoInRleHQtYW5jaG9yIiwoZnVuY3Rpb24odCl7dmFyIGU9SSh0Lm1vZGVsLmxhYmVsQW5nbGUsdC5tb2RlbC5sYWJlbFNpZGUpO3JldHVybiAyKk1hdGguYWJzKGUuZHgpPk1hdGguYWJzKGUuZHkpP2UuZGlyKmUuZHg8MD8ic3RhcnQiOiJlbmQiOiJtaWRkbGUifSkpO3ZhciBZPVYuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNFeHRlbnQpLmRhdGEobSxkKTtZLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCh5LmNuLmF4aXNFeHRlbnQsITApO3ZhciBXPVkuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNFeHRlbnRUb3ApLmRhdGEobSxkKTtXLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCh5LmNuLmF4aXNFeHRlbnRUb3AsITApLFcuYXR0cigidHJhbnNmb3JtIixjKDAsLXkuYXhpc0V4dGVudE9mZnNldCkpO3ZhciBYPVcuc2VsZWN0QWxsKCIuIit5LmNuLmF4aXNFeHRlbnRUb3BUZXh0KS5kYXRhKG0sZCk7WC5lbnRlcigpLmFwcGVuZCgidGV4dCIpLmNsYXNzZWQoeS5jbi5heGlzRXh0ZW50VG9wVGV4dCwhMCkuY2FsbChQKSxYLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiBEKHQsITApfSkpLmVhY2goKGZ1bmN0aW9uKHQpe2YuZm9udChuLnNlbGVjdCh0aGlzKSx0Lm1vZGVsLnJhbmdlRm9udCl9KSk7dmFyIFo9WS5zZWxlY3RBbGwoIi4iK3kuY24uYXhpc0V4dGVudEJvdHRvbSkuZGF0YShtLGQpO1ouZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKHkuY24uYXhpc0V4dGVudEJvdHRvbSwhMCksWi5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gYygwLHQubW9kZWwuaGVpZ2h0K3kuYXhpc0V4dGVudE9mZnNldCl9KSk7dmFyIEo9Wi5zZWxlY3RBbGwoIi4iK3kuY24uYXhpc0V4dGVudEJvdHRvbVRleHQpLmRhdGEobSxkKTtKLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZCh5LmNuLmF4aXNFeHRlbnRCb3R0b21UZXh0LCEwKS5hdHRyKCJkeSIsIjAuNzVlbSIpLmNhbGwoUCksSi50ZXh0KChmdW5jdGlvbih0KXtyZXR1cm4gRCh0LCExKX0pKS5lYWNoKChmdW5jdGlvbih0KXtmLmZvbnQobi5zZWxlY3QodGhpcyksdC5tb2RlbC5yYW5nZUZvbnQpfSkpLHguZW5zdXJlQXhpc0JydXNoKFYsVCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9ndXAiOjc3MywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4vYXhpc2JydXNoIjoxMTU0LCIuL2NvbnN0YW50cyI6MTE1NywiLi9oZWxwZXJzIjoxMTU5LCIuL2xpbmVzIjoxMTYxLCJAcGxvdGx5L2QzIjo1OCwiY29sb3ItcmdiYSI6MTI4fV0sMTE2NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL3BhcmNvb3JkcyIpLGk9dCgiLi4vLi4vbGliL3ByZXBhcmVfcmVnbCIpLGE9dCgiLi9oZWxwZXJzIikuaXNWaXNpYmxlO2Z1bmN0aW9uIG8odCxlLHIpe3ZhciBuPWUuaW5kZXhPZihyKSxpPXQuaW5kZXhPZihuKTtyZXR1cm4tMT09PWkmJihpKz1lLmxlbmd0aCksaX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0O2lmKGkodCkpe3ZhciBzPXt9LGw9e30sYz17fSx1PXt9LGY9ci5fc2l6ZTtlLmZvckVhY2goKGZ1bmN0aW9uKGUscil7dmFyIG49ZVswXS50cmFjZTtjW3JdPW4uaW5kZXg7dmFyIGk9dVtyXT1uLl9mdWxsSW5wdXQuaW5kZXg7c1tyXT10LmRhdGFbaV0uZGltZW5zaW9ucyxsW3JdPXQuZGF0YVtpXS5kaW1lbnNpb25zLnNsaWNlKCl9KSk7bih0LGUse3dpZHRoOmYudyxoZWlnaHQ6Zi5oLG1hcmdpbjp7dDpmLnQscjpmLnIsYjpmLmIsbDpmLmx9fSx7ZmlsdGVyQ2hhbmdlZDpmdW5jdGlvbihlLG4saSl7dmFyIGE9bFtlXVtuXSxvPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZSgpfSkpLHM9ImRpbWVuc2lvbnNbIituKyJdLmNvbnN0cmFpbnRyYW5nZSIsZj1yLl90cmFjZVByZUdVSVt0Ll9mdWxsRGF0YVtjW2VdXS5fZnVsbElucHV0LnVpZF07aWYodm9pZCAwPT09ZltzXSl7dmFyIGg9YS5jb25zdHJhaW50cmFuZ2U7ZltzXT1ofHxudWxsfXZhciBwPXQuX2Z1bGxEYXRhW2NbZV1dLmRpbWVuc2lvbnNbbl07by5sZW5ndGg/KDE9PT1vLmxlbmd0aCYmKG89b1swXSksYS5jb25zdHJhaW50cmFuZ2U9byxwLmNvbnN0cmFpbnRyYW5nZT1vLnNsaWNlKCksbz1bb10pOihkZWxldGUgYS5jb25zdHJhaW50cmFuZ2UsZGVsZXRlIHAuY29uc3RyYWludHJhbmdlLG89bnVsbCk7dmFyIGQ9e307ZFtzXT1vLHQuZW1pdCgicGxvdGx5X3Jlc3R5bGUiLFtkLFt1W2VdXV0pfSxob3ZlcjpmdW5jdGlvbihlKXt0LmVtaXQoInBsb3RseV9ob3ZlciIsZSl9LHVuaG92ZXI6ZnVuY3Rpb24oZSl7dC5lbWl0KCJwbG90bHlfdW5ob3ZlciIsZSl9LGF4ZXNNb3ZlZDpmdW5jdGlvbihlLHIpe3ZhciBuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGZ1bmN0aW9uKHIsbil7cmV0dXJuIG8odCxlLHIpLW8odCxlLG4pfX0ocixsW2VdLmZpbHRlcihhKSk7c1tlXS5zb3J0KG4pLGxbZV0uZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hYSh0KX0pKS5zb3J0KChmdW5jdGlvbih0KXtyZXR1cm4gbFtlXS5pbmRleE9mKHQpfSkpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3NbZV0uc3BsaWNlKHNbZV0uaW5kZXhPZih0KSwxKSxzW2VdLnNwbGljZShsW2VdLmluZGV4T2YodCksMCx0KX0pKSx0LmVtaXQoInBsb3RseV9yZXN0eWxlIixbe2RpbWVuc2lvbnM6W3NbZV1dfSxbdVtlXV1dKX19KX19fSx7Ii4uLy4uL2xpYi9wcmVwYXJlX3JlZ2wiOjc4OSwiLi9oZWxwZXJzIjoxMTU5LCIuL3BhcmNvb3JkcyI6MTE2M31dLDExNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxhPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGw9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsdT1hKHtlZGl0VHlwZToicGxvdCIsYXJyYXlPazohMCxjb2xvckVkaXRUeXBlOiJwbG90In0pO2UuZXhwb3J0cz17bGFiZWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxhYmVsMDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxkbGFiZWw6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoxLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG1hcmtlcjp7Y29sb3JzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpvLmRlZmF1bHRMaW5lLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGFycmF5T2s6ITAsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LHRleHQ6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJwbG90In0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToic3R5bGUifSxzY2FsZWdyb3VwOnt2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSx0ZXh0aW5mbzp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsibGFiZWwiLCJ0ZXh0IiwidmFsdWUiLCJwZXJjZW50Il0sZXh0cmFzOlsibm9uZSJdLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJpbmZvOmMoe30sbi5ob3ZlcmluZm8se2ZsYWdzOlsibGFiZWwiLCJ0ZXh0IiwidmFsdWUiLCJwZXJjZW50IiwibmFtZSJdfSksaG92ZXJ0ZW1wbGF0ZTpzKHt9LHtrZXlzOlsibGFiZWwiLCJjb2xvciIsInZhbHVlIiwicGVyY2VudCIsInRleHQiXX0pLHRleHR0ZW1wbGF0ZTpsKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsibGFiZWwiLCJjb2xvciIsInZhbHVlIiwicGVyY2VudCIsInRleHQiXX0pLHRleHRwb3NpdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiaW5zaWRlIiwib3V0c2lkZSIsImF1dG8iLCJub25lIl0sZGZsdDoiYXV0byIsYXJyYXlPazohMCxlZGl0VHlwZToicGxvdCJ9LHRleHRmb250OmMoe30sdSx7fSksaW5zaWRldGV4dG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJob3Jpem9udGFsIiwicmFkaWFsIiwidGFuZ2VudGlhbCIsImF1dG8iXSxkZmx0OiJhdXRvIixlZGl0VHlwZToicGxvdCJ9LGluc2lkZXRleHRmb250OmMoe30sdSx7fSksb3V0c2lkZXRleHRmb250OmMoe30sdSx7fSksYXV0b21hcmdpbjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToicGxvdCJ9LHRpdGxlOnt0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6InBsb3QifSxmb250OmMoe30sdSx7fSkscG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCBsZWZ0IiwidG9wIGNlbnRlciIsInRvcCByaWdodCIsIm1pZGRsZSBjZW50ZXIiLCJib3R0b20gbGVmdCIsImJvdHRvbSBjZW50ZXIiLCJib3R0b20gcmlnaHQiXSxlZGl0VHlwZToicGxvdCJ9LGVkaXRUeXBlOiJwbG90In0sZG9tYWluOmkoe25hbWU6InBpZSIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSksaG9sZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSxzb3J0Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sZGlyZWN0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJjbG9ja3dpc2UiLCJjb3VudGVyY2xvY2t3aXNlIl0sZGZsdDoiY291bnRlcmNsb2Nrd2lzZSIsZWRpdFR5cGU6ImNhbGMifSxyb3RhdGlvbjp7dmFsVHlwZToibnVtYmVyIixtaW46LTM2MCxtYXg6MzYwLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHB1bGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSxfZGVwcmVjYXRlZDp7dGl0bGU6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiIixlZGl0VHlwZToiY2FsYyJ9LHRpdGxlZm9udDpjKHt9LHUse30pLHRpdGxlcG9zaXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInRvcCBsZWZ0IiwidG9wIGNlbnRlciIsInRvcCByaWdodCIsIm1pZGRsZSBjZW50ZXIiLCJib3R0b20gbGVmdCIsImJvdHRvbSBjZW50ZXIiLCJib3R0b20gcmlnaHQiXSxlZGl0VHlwZToiY2FsYyJ9fX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIjo2MzgsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6ODIzLCIuLi8uLi9wbG90cy9kb21haW4iOjg1NSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo4NTYsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OX1dLDExNjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvcGxvdHMiKTtyLm5hbWU9InBpZSIsci5wbG90PWZ1bmN0aW9uKHQsZSxpLGEpe24ucGxvdEJhc2VQbG90KHIubmFtZSx0LGUsaSxhKX0sci5jbGVhbj1mdW5jdGlvbih0LGUsaSxhKXtuLmNsZWFuQmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfX0seyIuLi8uLi9wbG90cy9wbG90cyI6ODkwfV0sMTE2NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgidGlueWNvbG9yMiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89e307ZnVuY3Rpb24gcyh0KXtyZXR1cm4gZnVuY3Rpb24oZSxyKXtyZXR1cm4hIWUmJighIShlPWkoZSkpLmlzVmFsaWQoKSYmKGU9YS5hZGRPcGFjaXR5KGUsZS5nZXRBbHBoYSgpKSx0W3JdfHwodFtyXT1lKSxlKSl9fWZ1bmN0aW9uIGwodCxlKXt2YXIgcixuPUpTT04uc3RyaW5naWZ5KHQpLGE9ZVtuXTtpZighYSl7Zm9yKGE9dC5zbGljZSgpLHI9MDtyPHQubGVuZ3RoO3IrKylhLnB1c2goaSh0W3JdKS5saWdodGVuKDIwKS50b0hleFN0cmluZygpKTtmb3Iocj0wO3I8dC5sZW5ndGg7cisrKWEucHVzaChpKHRbcl0pLmRhcmtlbigyMCkudG9IZXhTdHJpbmcoKSk7ZVtuXT1hfXJldHVybiBhfWUuZXhwb3J0cz17Y2FsYzpmdW5jdGlvbih0LGUpe3ZhciByLGksYT1bXSxvPXQuX2Z1bGxMYXlvdXQsbD1vLmhpZGRlbmxhYmVsc3x8W10sYz1lLmxhYmVscyx1PWUubWFya2VyLmNvbG9yc3x8W10sZj1lLnZhbHVlcyxoPWUuX2xlbmd0aCxwPWUuX2hhc1ZhbHVlcyYmaDtpZihlLmRsYWJlbClmb3IoYz1uZXcgQXJyYXkoaCkscj0wO3I8aDtyKyspY1tyXT1TdHJpbmcoZS5sYWJlbDArciplLmRsYWJlbCk7dmFyIGQ9e30sbT1zKG9bIl8iK2UudHlwZSsiY29sb3JtYXAiXSksZz0wLHY9ITE7Zm9yKHI9MDtyPGg7cisrKXt2YXIgeSx4LGI7aWYocCl7aWYoeT1mW3JdLCFuKHkpKWNvbnRpbnVlO2lmKCh5PSt5KTwwKWNvbnRpbnVlfWVsc2UgeT0xO3ZvaWQgMCE9PSh4PWNbcl0pJiYiIiE9PXh8fCh4PXIpO3ZhciBfPWRbeD1TdHJpbmcoeCldO3ZvaWQgMD09PV8/KGRbeF09YS5sZW5ndGgsKGI9LTEhPT1sLmluZGV4T2YoeCkpfHwoZys9eSksYS5wdXNoKHt2OnksbGFiZWw6eCxjb2xvcjptKHVbcl0seCksaTpyLHB0czpbcl0saGlkZGVuOmJ9KSk6KHY9ITAsKGk9YVtfXSkudis9eSxpLnB0cy5wdXNoKHIpLGkuaGlkZGVufHwoZys9eSksITE9PT1pLmNvbG9yJiZ1W3JdJiYoaS5jb2xvcj1tKHVbcl0seCkpKX1yZXR1cm4oImZ1bm5lbGFyZWEiPT09ZS50eXBlP3Y6ZS5zb3J0KSYmYS5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLnYtdC52fSkpLGFbMF0mJihhWzBdLnZUb3RhbD1nKSxhfSxjcm9zc1RyYWNlQ2FsYzpmdW5jdGlvbih0LGUpe3ZhciByPShlfHx7fSkudHlwZTtyfHwocj0icGllIik7dmFyIG49dC5fZnVsbExheW91dCxpPXQuY2FsY2RhdGEsYT1uW3IrImNvbG9yd2F5Il0scz1uWyJfIityKyJjb2xvcm1hcCJdO25bImV4dGVuZCIrcisiY29sb3JzIl0mJihhPWwoYSxvKSk7Zm9yKHZhciBjPTAsdT0wO3U8aS5sZW5ndGg7dSsrKXt2YXIgZj1pW3VdO2lmKGZbMF0udHJhY2UudHlwZT09PXIpZm9yKHZhciBoPTA7aDxmLmxlbmd0aDtoKyspe3ZhciBwPWZbaF07ITE9PT1wLmNvbG9yJiYoc1twLmxhYmVsXT9wLmNvbG9yPXNbcC5sYWJlbF06KHNbcC5sYWJlbF09cC5jb2xvcj1hW2MlYS5sZW5ndGhdLGMrKykpfX19LG1ha2VQdWxsQ29sb3JGbjpzLGdlbmVyYXRlRXh0ZW5kZWRDb2xvcnM6bH19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCJmYXN0LWlzbnVtZXJpYyI6MjQyLHRpbnljb2xvcjI6NTcyfV0sMTE2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmRlZmF1bHRzLHM9dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlVGV4dDtmdW5jdGlvbiBsKHQsZSl7dmFyIHI9QXJyYXkuaXNBcnJheSh0KSxhPWkuaXNBcnJheU9yVHlwZWRBcnJheShlKSxvPU1hdGgubWluKHI/dC5sZW5ndGg6MS8wLGE/ZS5sZW5ndGg6MS8wKTtpZihpc0Zpbml0ZShvKXx8KG89MCksbyYmYSl7Zm9yKHZhciBzLGw9MDtsPG87bCsrKXt2YXIgYz1lW2xdO2lmKG4oYykmJmM+MCl7cz0hMDticmVha319c3x8KG89MCl9cmV0dXJue2hhc0xhYmVsczpyLGhhc1ZhbHVlczphLGxlbjpvfX1lLmV4cG9ydHM9e2hhbmRsZUxhYmVsc0FuZFZhbHVlczpsLHN1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLG4pe2Z1bmN0aW9uIGMocixuKXtyZXR1cm4gaS5jb2VyY2UodCxlLGEscixuKX12YXIgdT1sKGMoImxhYmVscyIpLGMoInZhbHVlcyIpKSxmPXUubGVuO2lmKGUuX2hhc0xhYmVscz11Lmhhc0xhYmVscyxlLl9oYXNWYWx1ZXM9dS5oYXNWYWx1ZXMsIWUuX2hhc0xhYmVscyYmZS5faGFzVmFsdWVzJiYoYygibGFiZWwwIiksYygiZGxhYmVsIikpLGYpe2UuX2xlbmd0aD1mLGMoIm1hcmtlci5saW5lLndpZHRoIikmJmMoIm1hcmtlci5saW5lLmNvbG9yIiksYygibWFya2VyLmNvbG9ycyIpLGMoInNjYWxlZ3JvdXAiKTt2YXIgaCxwPWMoInRleHQiKSxkPWMoInRleHR0ZW1wbGF0ZSIpO2lmKGR8fChoPWMoInRleHRpbmZvIixBcnJheS5pc0FycmF5KHApPyJ0ZXh0K3BlcmNlbnQiOiJwZXJjZW50IikpLGMoImhvdmVydGV4dCIpLGMoImhvdmVydGVtcGxhdGUiKSxkfHxoJiYibm9uZSIhPT1oKXt2YXIgbT1jKCJ0ZXh0cG9zaXRpb24iKTtzKHQsZSxuLGMsbSx7bW9kdWxlSGFzU2VsZWN0ZWQ6ITEsbW9kdWxlSGFzVW5zZWxlY3RlZDohMSxtb2R1bGVIYXNDb25zdHJhaW46ITEsbW9kdWxlSGFzQ2xpcG9uYXhpczohMSxtb2R1bGVIYXNUZXh0YW5nbGU6ITEsbW9kdWxlSGFzSW5zaWRlYW5jaG9yOiExfSksKEFycmF5LmlzQXJyYXkobSl8fCJhdXRvIj09PW18fCJvdXRzaWRlIj09PW0pJiZjKCJhdXRvbWFyZ2luIiksKCJpbnNpZGUiPT09bXx8ImF1dG8iPT09bXx8QXJyYXkuaXNBcnJheShtKSkmJmMoImluc2lkZXRleHRvcmllbnRhdGlvbiIpfW8oZSxuLGMpO3ZhciBnPWMoImhvbGUiKTtpZihjKCJ0aXRsZS50ZXh0Iikpe3ZhciB2PWMoInRpdGxlLnBvc2l0aW9uIixnPyJtaWRkbGUgY2VudGVyIjoidG9wIGNlbnRlciIpO2d8fCJtaWRkbGUgY2VudGVyIiE9PXZ8fChlLnRpdGxlLnBvc2l0aW9uPSJ0b3AgY2VudGVyIiksaS5jb2VyY2VGb250KGMsInRpdGxlLmZvbnQiLG4uZm9udCl9Yygic29ydCIpLGMoImRpcmVjdGlvbiIpLGMoInJvdGF0aW9uIiksYygicHVsbCIpfWVsc2UgZS52aXNpYmxlPSExfX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6ODU1LCIuLi9iYXIvZGVmYXVsdHMiOjkxOCwiLi9hdHRyaWJ1dGVzIjoxMTY1LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sMTE2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5hcHBlbmRBcnJheU11bHRpUG9pbnRWYWx1ZXM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e2N1cnZlTnVtYmVyOmUuaW5kZXgscG9pbnROdW1iZXJzOnQucHRzLGRhdGE6ZS5faW5wdXQsZnVsbERhdGE6ZSxsYWJlbDp0LmxhYmVsLGNvbG9yOnQuY29sb3IsdmFsdWU6dC52LHBlcmNlbnQ6dC5wZXJjZW50LHRleHQ6dC50ZXh0LGJib3g6dC5iYm94LHY6dC52fTtyZXR1cm4gMT09PXQucHRzLmxlbmd0aCYmKHIucG9pbnROdW1iZXI9ci5pPXQucHRzWzBdKSxuKHIsZSx0LnB0cyksImZ1bm5lbGFyZWEiPT09ZS50eXBlJiYoZGVsZXRlIHIudixkZWxldGUgci5pKSxyfX0seyIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjY3NX1dLDExNzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZnVuY3Rpb24gaSh0KXtyZXR1cm4tMSE9PXQuaW5kZXhPZigiZSIpP3QucmVwbGFjZSgvWy5dPzArZS8sImUiKTotMSE9PXQuaW5kZXhPZigiLiIpP3QucmVwbGFjZSgvWy5dPzArJC8sIiIpOnR9ci5mb3JtYXRQaWVQZXJjZW50PWZ1bmN0aW9uKHQsZSl7dmFyIHI9aSgoMTAwKnQpLnRvUHJlY2lzaW9uKDMpKTtyZXR1cm4gbi5udW1TZXBhcmF0ZShyLGUpKyIlIn0sci5mb3JtYXRQaWVWYWx1ZT1mdW5jdGlvbih0LGUpe3ZhciByPWkodC50b1ByZWNpc2lvbigxMCkpO3JldHVybiBuLm51bVNlcGFyYXRlKHIsZSl9LHIuZ2V0Rmlyc3RGaWxsZWQ9ZnVuY3Rpb24odCxlKXtpZihBcnJheS5pc0FycmF5KHQpKWZvcih2YXIgcj0wO3I8ZS5sZW5ndGg7cisrKXt2YXIgbj10W2Vbcl1dO2lmKG58fDA9PT1ufHwiIj09PW4pcmV0dXJuIG59fSxyLmNhc3RPcHRpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gQXJyYXkuaXNBcnJheSh0KT9yLmdldEZpcnN0RmlsbGVkKHQsZSk6dHx8dm9pZCAwfSxyLmdldFJvdGF0aW9uQW5nbGU9ZnVuY3Rpb24odCl7cmV0dXJuKCJhdXRvIj09PXQ/MDp0KSpNYXRoLlBJLzE4MH19LHsiLi4vLi4vbGliIjo3NzZ9XSwxMTcxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMsY3Jvc3NUcmFjZUNhbGM6dCgiLi9jYWxjIikuY3Jvc3NUcmFjZUNhbGMscGxvdDp0KCIuL3Bsb3QiKS5wbG90LHN0eWxlOnQoIi4vc3R5bGUiKSxzdHlsZU9uZTp0KCIuL3N0eWxlX29uZSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJwaWUiLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbInBpZS1saWtlIiwicGllIiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4vYXR0cmlidXRlcyI6MTE2NSwiLi9iYXNlX3Bsb3QiOjExNjYsIi4vY2FsYyI6MTE2NywiLi9kZWZhdWx0cyI6MTE2OCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTE3MiwiLi9sYXlvdXRfZGVmYXVsdHMiOjExNzMsIi4vcGxvdCI6MTE3NCwiLi9zdHlsZSI6MTE3NSwiLi9zdHlsZV9vbmUiOjExNzZ9XSwxMTcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17aGlkZGVubGFiZWxzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHBpZWNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGVkaXRUeXBlOiJjYWxjIn0sZXh0ZW5kcGllY29sb3JzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sMTE3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9cigiaGlkZGVubGFiZWxzIikscigicGllY29sb3J3YXkiLGUuY29sb3J3YXkpLHIoImV4dGVuZHBpZWNvbG9ycyIpfX0seyIuLi8uLi9saWIiOjc3NiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTE3Mn1dLDExNzQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vcGxvdHMvcGxvdHMiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGw9dCgiLi4vLi4vbGliIiksYz1sLnN0clNjYWxlLHU9bC5zdHJUcmFuc2xhdGUsZj10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKSxoPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKSxwPWgucmVjb3JkTWluVGV4dFNpemUsZD1oLmNsZWFyTWluVGV4dFNpemUsbT10KCIuLi9iYXIvY29uc3RhbnRzIikuVEVYVFBBRCxnPXQoIi4vaGVscGVycyIpLHY9dCgiLi9ldmVudF9kYXRhIikseT10KCIuLi8uLi9saWIiKS5pc1ZhbGlkVGV4dFZhbHVlO2Z1bmN0aW9uIHgodCxlLHIpe3ZhciBpPXJbMF0sbz1pLmN4LHM9aS5jeSxjPWkudHJhY2UsdT0iZnVubmVsYXJlYSI9PT1jLnR5cGU7Il9oYXNIb3ZlckxhYmVsImluIGN8fChjLl9oYXNIb3ZlckxhYmVsPSExKSwiX2hhc0hvdmVyRXZlbnQiaW4gY3x8KGMuX2hhc0hvdmVyRXZlbnQ9ITEpLHQub24oIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKHQpe3ZhciByPWUuX2Z1bGxMYXlvdXQsZj1lLl9mdWxsRGF0YVtjLmluZGV4XTtpZighZS5fZHJhZ2dpbmcmJiExIT09ci5ob3Zlcm1vZGUpe3ZhciBoPWYuaG92ZXJpbmZvO2lmKEFycmF5LmlzQXJyYXkoaCkmJihoPWEuY2FzdEhvdmVyaW5mbyh7aG92ZXJpbmZvOltnLmNhc3RPcHRpb24oaCx0LnB0cyldLF9tb2R1bGU6Yy5fbW9kdWxlfSxyLDApKSwiYWxsIj09PWgmJihoPSJsYWJlbCt0ZXh0K3ZhbHVlK3BlcmNlbnQrbmFtZSIpLGYuaG92ZXJ0ZW1wbGF0ZXx8Im5vbmUiIT09aCYmInNraXAiIT09aCYmaCl7dmFyIHA9dC5ySW5zY3JpYmVkfHwwLGQ9byt0LnB4bWlkWzBdKigxLXApLG09cyt0LnB4bWlkWzFdKigxLXApLHk9ci5zZXBhcmF0b3JzLHg9W107aWYoaCYmLTEhPT1oLmluZGV4T2YoImxhYmVsIikmJngucHVzaCh0LmxhYmVsKSx0LnRleHQ9Zy5jYXN0T3B0aW9uKGYuaG92ZXJ0ZXh0fHxmLnRleHQsdC5wdHMpLGgmJi0xIT09aC5pbmRleE9mKCJ0ZXh0Iikpe3ZhciBiPXQudGV4dDtsLmlzVmFsaWRUZXh0VmFsdWUoYikmJngucHVzaChiKX10LnZhbHVlPXQudix0LnZhbHVlTGFiZWw9Zy5mb3JtYXRQaWVWYWx1ZSh0LnYseSksaCYmLTEhPT1oLmluZGV4T2YoInZhbHVlIikmJngucHVzaCh0LnZhbHVlTGFiZWwpLHQucGVyY2VudD10LnYvaS52VG90YWwsdC5wZXJjZW50TGFiZWw9Zy5mb3JtYXRQaWVQZXJjZW50KHQucGVyY2VudCx5KSxoJiYtMSE9PWguaW5kZXhPZigicGVyY2VudCIpJiZ4LnB1c2godC5wZXJjZW50TGFiZWwpO3ZhciBfPWYuaG92ZXJsYWJlbCx3PV8uZm9udCxUPVtdO2EubG9uZUhvdmVyKHt0cmFjZTpjLHgwOmQtcCppLnIseDE6ZCtwKmkucix5Om0sX3gwOnU/byt0LlRMWzBdOmQtcCppLnIsX3gxOnU/byt0LlRSWzBdOmQrcCppLnIsX3kwOnU/cyt0LlRMWzFdOm0tcCppLnIsX3kxOnU/cyt0LkJMWzFdOm0rcCppLnIsdGV4dDp4LmpvaW4oIjxicj4iKSxuYW1lOmYuaG92ZXJ0ZW1wbGF0ZXx8LTEhPT1oLmluZGV4T2YoIm5hbWUiKT9mLm5hbWU6dm9pZCAwLGlkZWFsQWxpZ246dC5weG1pZFswXTwwPyJsZWZ0IjoicmlnaHQiLGNvbG9yOmcuY2FzdE9wdGlvbihfLmJnY29sb3IsdC5wdHMpfHx0LmNvbG9yLGJvcmRlckNvbG9yOmcuY2FzdE9wdGlvbihfLmJvcmRlcmNvbG9yLHQucHRzKSxmb250RmFtaWx5OmcuY2FzdE9wdGlvbih3LmZhbWlseSx0LnB0cyksZm9udFNpemU6Zy5jYXN0T3B0aW9uKHcuc2l6ZSx0LnB0cyksZm9udENvbG9yOmcuY2FzdE9wdGlvbih3LmNvbG9yLHQucHRzKSxuYW1lTGVuZ3RoOmcuY2FzdE9wdGlvbihfLm5hbWVsZW5ndGgsdC5wdHMpLHRleHRBbGlnbjpnLmNhc3RPcHRpb24oXy5hbGlnbix0LnB0cyksaG92ZXJ0ZW1wbGF0ZTpnLmNhc3RPcHRpb24oZi5ob3ZlcnRlbXBsYXRlLHQucHRzKSxob3ZlcnRlbXBsYXRlTGFiZWxzOnQsZXZlbnREYXRhOlt2KHQsZildfSx7Y29udGFpbmVyOnIuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOnIuX3BhcGVyLm5vZGUoKSxnZDplLGluT3V0X2Jib3g6VH0pLHQuYmJveD1UWzBdLGMuX2hhc0hvdmVyTGFiZWw9ITB9Yy5faGFzSG92ZXJFdmVudD0hMCxlLmVtaXQoInBsb3RseV9ob3ZlciIse3BvaW50czpbdih0LGYpXSxldmVudDpuLmV2ZW50fSl9fSkpLHQub24oIm1vdXNlb3V0IiwoZnVuY3Rpb24odCl7dmFyIHI9ZS5fZnVsbExheW91dCxpPWUuX2Z1bGxEYXRhW2MuaW5kZXhdLG89bi5zZWxlY3QodGhpcykuZGF0dW0oKTtjLl9oYXNIb3ZlckV2ZW50JiYodC5vcmlnaW5hbEV2ZW50PW4uZXZlbnQsZS5lbWl0KCJwbG90bHlfdW5ob3ZlciIse3BvaW50czpbdihvLGkpXSxldmVudDpuLmV2ZW50fSksYy5faGFzSG92ZXJFdmVudD0hMSksYy5faGFzSG92ZXJMYWJlbCYmKGEubG9uZVVuaG92ZXIoci5faG92ZXJsYXllci5ub2RlKCkpLGMuX2hhc0hvdmVyTGFiZWw9ITEpfSkpLHQub24oImNsaWNrIiwoZnVuY3Rpb24odCl7dmFyIHI9ZS5fZnVsbExheW91dCxpPWUuX2Z1bGxEYXRhW2MuaW5kZXhdO2UuX2RyYWdnaW5nfHwhMT09PXIuaG92ZXJtb2RlfHwoZS5faG92ZXJkYXRhPVt2KHQsaSldLGEuY2xpY2soZSxuLmV2ZW50KSl9KSl9ZnVuY3Rpb24gYih0LGUscil7dmFyIG49Zy5jYXN0T3B0aW9uKHQuaW5zaWRldGV4dGZvbnQuY29sb3IsZS5wdHMpOyFuJiZ0Ll9pbnB1dC50ZXh0Zm9udCYmKG49Zy5jYXN0T3B0aW9uKHQuX2lucHV0LnRleHRmb250LmNvbG9yLGUucHRzKSk7dmFyIGk9Zy5jYXN0T3B0aW9uKHQuaW5zaWRldGV4dGZvbnQuZmFtaWx5LGUucHRzKXx8Zy5jYXN0T3B0aW9uKHQudGV4dGZvbnQuZmFtaWx5LGUucHRzKXx8ci5mYW1pbHksYT1nLmNhc3RPcHRpb24odC5pbnNpZGV0ZXh0Zm9udC5zaXplLGUucHRzKXx8Zy5jYXN0T3B0aW9uKHQudGV4dGZvbnQuc2l6ZSxlLnB0cyl8fHIuc2l6ZTtyZXR1cm57Y29sb3I6bnx8by5jb250cmFzdChlLmNvbG9yKSxmYW1pbHk6aSxzaXplOmF9fWZ1bmN0aW9uIF8odCxlKXtmb3IodmFyIHIsbixpPTA7aTx0Lmxlbmd0aDtpKyspaWYoKG49KHI9dFtpXVswXSkudHJhY2UpLnRpdGxlLnRleHQpe3ZhciBhPW4udGl0bGUudGV4dDtuLl9tZXRhJiYoYT1sLnRlbXBsYXRlU3RyaW5nKGEsbi5fbWV0YSkpO3ZhciBvPXMudGVzdGVyLmFwcGVuZCgidGV4dCIpLmF0dHIoImRhdGEtbm90ZXgiLDEpLnRleHQoYSkuY2FsbChzLmZvbnQsbi50aXRsZS5mb250KS5jYWxsKGYuY29udmVydFRvVHNwYW5zLGUpLGM9cy5iQm94KG8ubm9kZSgpLCEwKTtyLnRpdGxlQm94PXt3aWR0aDpjLndpZHRoLGhlaWdodDpjLmhlaWdodH0sby5yZW1vdmUoKX19ZnVuY3Rpb24gdyh0LGUscil7dmFyIG49ci5yfHxlLnJweDEsaT1lLnJJbnNjcmliZWQ7aWYoZS5zdGFydGFuZ2xlPT09ZS5zdG9wYW5nbGUpcmV0dXJue3JDZW50ZXI6MS1pLHNjYWxlOjAscm90YXRlOjAsdGV4dFBvc0FuZ2xlOjB9O3ZhciBhLG89ZS5yaW5nLHM9MT09PW8mJk1hdGguYWJzKGUuc3RhcnRhbmdsZS1lLnN0b3BhbmdsZSk9PT0yKk1hdGguUEksbD1lLmhhbGZhbmdsZSxjPWUubWlkYW5nbGUsdT1yLnRyYWNlLmluc2lkZXRleHRvcmllbnRhdGlvbixmPSJob3Jpem9udGFsIj09PXUsaD0idGFuZ2VudGlhbCI9PT11LHA9InJhZGlhbCI9PT11LGQ9ImF1dG8iPT09dSxtPVtdO2lmKCFkKXt2YXIgZyx2PWZ1bmN0aW9uKHIsaSl7aWYoZnVuY3Rpb24odCxlKXt2YXIgcj10LnN0YXJ0YW5nbGUsbj10LnN0b3BhbmdsZTtyZXR1cm4gcj5lJiZlPm58fHI8ZSYmZTxufShlLHIpKXt2YXIgcz1NYXRoLmFicyhyLWUuc3RhcnRhbmdsZSksbD1NYXRoLmFicyhyLWUuc3RvcGFuZ2xlKSxjPXM8bD9zOmw7KGE9InRhbiI9PT1pP2sodCxuLG8sYywwKTpUKHQsbixvLGMsTWF0aC5QSS8yKSkudGV4dFBvc0FuZ2xlPXIsbS5wdXNoKGEpfX07aWYoZnx8aCl7Zm9yKGc9NDtnPj0tNDtnLT0yKXYoTWF0aC5QSSpnLCJ0YW4iKTtmb3IoZz00O2c+PS00O2ctPTIpdihNYXRoLlBJKihnKzEpLCJ0YW4iKX1pZihmfHxwKXtmb3IoZz00O2c+PS00O2ctPTIpdihNYXRoLlBJKihnKzEuNSksInJhZCIpO2ZvcihnPTQ7Zz49LTQ7Zy09Mil2KE1hdGguUEkqKGcrLjUpLCJyYWQiKX19aWYoc3x8ZHx8Zil7dmFyIHk9TWF0aC5zcXJ0KHQud2lkdGgqdC53aWR0aCt0LmhlaWdodCp0LmhlaWdodCk7aWYoKGE9e3NjYWxlOmkqbioyL3ksckNlbnRlcjoxLWkscm90YXRlOjB9KS50ZXh0UG9zQW5nbGU9KGUuc3RhcnRhbmdsZStlLnN0b3BhbmdsZSkvMixhLnNjYWxlPj0xKXJldHVybiBhO20ucHVzaChhKX0oZHx8cCkmJigoYT1UKHQsbixvLGwsYykpLnRleHRQb3NBbmdsZT0oZS5zdGFydGFuZ2xlK2Uuc3RvcGFuZ2xlKS8yLG0ucHVzaChhKSksKGR8fGgpJiYoKGE9ayh0LG4sbyxsLGMpKS50ZXh0UG9zQW5nbGU9KGUuc3RhcnRhbmdsZStlLnN0b3BhbmdsZSkvMixtLnB1c2goYSkpO2Zvcih2YXIgeD0wLGI9MCxfPTA7XzxtLmxlbmd0aDtfKyspe3ZhciB3PW1bX10uc2NhbGU7aWYoYjx3JiYoYj13LHg9XyksIWQmJmI+PTEpYnJlYWt9cmV0dXJuIG1beF19ZnVuY3Rpb24gVCh0LGUscixuLGkpe2U9TWF0aC5tYXgoMCxlLTIqbSk7dmFyIGE9dC53aWR0aC90LmhlaWdodCxvPVMoYSxuLGUscik7cmV0dXJue3NjYWxlOjIqby90LmhlaWdodCxyQ2VudGVyOkEoYSxvL2UpLHJvdGF0ZTpNKGkpfX1mdW5jdGlvbiBrKHQsZSxyLG4saSl7ZT1NYXRoLm1heCgwLGUtMiptKTt2YXIgYT10LmhlaWdodC90LndpZHRoLG89UyhhLG4sZSxyKTtyZXR1cm57c2NhbGU6MipvL3Qud2lkdGgsckNlbnRlcjpBKGEsby9lKSxyb3RhdGU6TShpK01hdGguUEkvMil9fWZ1bmN0aW9uIEEodCxlKXtyZXR1cm4gTWF0aC5jb3MoZSktdCplfWZ1bmN0aW9uIE0odCl7cmV0dXJuKDE4MC9NYXRoLlBJKnQrNzIwKSUxODAtOTB9ZnVuY3Rpb24gUyh0LGUscixuKXt2YXIgaT10KzEvKDIqTWF0aC50YW4oZSkpO3JldHVybiByKk1hdGgubWluKDEvKE1hdGguc3FydChpKmkrLjUpK2kpLG4vKE1hdGguc3FydCh0KnQrbi8yKSt0KSl9ZnVuY3Rpb24gRSh0LGUpe3JldHVybiB0LnYhPT1lLnZUb3RhbHx8ZS50cmFjZS5ob2xlP01hdGgubWluKDEvKDErMS9NYXRoLnNpbih0LmhhbGZhbmdsZSkpLHQucmluZy8yKToxfWZ1bmN0aW9uIEwodCxlKXt2YXIgcj1lLnB4bWlkWzBdLG49ZS5weG1pZFsxXSxpPXQud2lkdGgvMixhPXQuaGVpZ2h0LzI7cmV0dXJuIHI8MCYmKGkqPS0xKSxuPDAmJihhKj0tMSkse3NjYWxlOjEsckNlbnRlcjoxLHJvdGF0ZTowLHg6aStNYXRoLmFicyhhKSooaT4wPzE6LTEpLzIseTphLygxK3Iqci8obipuKSksb3V0c2lkZTohMH19ZnVuY3Rpb24gQyh0LGUpe3ZhciByLG4saSxhPXQudHJhY2Usbz17eDp0LmN4LHk6dC5jeX0scz17dHg6MCx0eTowfTtzLnR5Kz1hLnRpdGxlLmZvbnQuc2l6ZSxpPUkoYSksLTEhPT1hLnRpdGxlLnBvc2l0aW9uLmluZGV4T2YoInRvcCIpPyhvLnktPSgxK2kpKnQucixzLnR5LT10LnRpdGxlQm94LmhlaWdodCk6LTEhPT1hLnRpdGxlLnBvc2l0aW9uLmluZGV4T2YoImJvdHRvbSIpJiYoby55Kz0oMStpKSp0LnIpO3ZhciBsLGMsdT0obD10LnIsYz10LnRyYWNlLmFzcGVjdHJhdGlvLGwvKHZvaWQgMD09PWM/MTpjKSksZj1lLncqKGEuZG9tYWluLnhbMV0tYS5kb21haW4ueFswXSkvMjtyZXR1cm4tMSE9PWEudGl0bGUucG9zaXRpb24uaW5kZXhPZigibGVmdCIpPyhmKz11LG8ueC09KDEraSkqdSxzLnR4Kz10LnRpdGxlQm94LndpZHRoLzIpOi0xIT09YS50aXRsZS5wb3NpdGlvbi5pbmRleE9mKCJjZW50ZXIiKT9mKj0yOi0xIT09YS50aXRsZS5wb3NpdGlvbi5pbmRleE9mKCJyaWdodCIpJiYoZis9dSxvLngrPSgxK2kpKnUscy50eC09dC50aXRsZUJveC53aWR0aC8yKSxyPWYvdC50aXRsZUJveC53aWR0aCxuPVAodCxlKS90LnRpdGxlQm94LmhlaWdodCx7eDpvLngseTpvLnksc2NhbGU6TWF0aC5taW4ocixuKSx0eDpzLnR4LHR5OnMudHl9fWZ1bmN0aW9uIFAodCxlKXt2YXIgcj10LnRyYWNlLG49ZS5oKihyLmRvbWFpbi55WzFdLXIuZG9tYWluLnlbMF0pO3JldHVybiBNYXRoLm1pbih0LnRpdGxlQm94LmhlaWdodCxuLzIpfWZ1bmN0aW9uIEkodCl7dmFyIGUscj10LnB1bGw7aWYoIXIpcmV0dXJuIDA7aWYoQXJyYXkuaXNBcnJheShyKSlmb3Iocj0wLGU9MDtlPHQucHVsbC5sZW5ndGg7ZSsrKXQucHVsbFtlXT5yJiYocj10LnB1bGxbZV0pO3JldHVybiByfWZ1bmN0aW9uIE8odCxlKXtmb3IodmFyIHI9W10sbj0wO248dC5sZW5ndGg7bisrKXt2YXIgaT10W25dWzBdLGE9aS50cmFjZSxvPWEuZG9tYWluLHM9ZS53KihvLnhbMV0tby54WzBdKSxsPWUuaCooby55WzFdLW8ueVswXSk7YS50aXRsZS50ZXh0JiYibWlkZGxlIGNlbnRlciIhPT1hLnRpdGxlLnBvc2l0aW9uJiYobC09UChpLGUpKTt2YXIgYz1zLzIsdT1sLzI7ImZ1bm5lbGFyZWEiIT09YS50eXBlfHxhLnNjYWxlZ3JvdXB8fCh1Lz1hLmFzcGVjdHJhdGlvKSxpLnI9TWF0aC5taW4oYyx1KS8oMStJKGEpKSxpLmN4PWUubCtlLncqKGEuZG9tYWluLnhbMV0rYS5kb21haW4ueFswXSkvMixpLmN5PWUudCtlLmgqKDEtYS5kb21haW4ueVswXSktbC8yLGEudGl0bGUudGV4dCYmLTEhPT1hLnRpdGxlLnBvc2l0aW9uLmluZGV4T2YoImJvdHRvbSIpJiYoaS5jeS09UChpLGUpKSxhLnNjYWxlZ3JvdXAmJi0xPT09ci5pbmRleE9mKGEuc2NhbGVncm91cCkmJnIucHVzaChhLnNjYWxlZ3JvdXApfSFmdW5jdGlvbih0LGUpe2Zvcih2YXIgcixuLGksYT0wO2E8ZS5sZW5ndGg7YSsrKXt2YXIgbz0xLzAscz1lW2FdO2ZvcihuPTA7bjx0Lmxlbmd0aDtuKyspaWYocj10W25dWzBdLChpPXIudHJhY2UpLnNjYWxlZ3JvdXA9PT1zKXt2YXIgbDtpZigicGllIj09PWkudHlwZSlsPXIucipyLnI7ZWxzZSBpZigiZnVubmVsYXJlYSI9PT1pLnR5cGUpe3ZhciBjLHU7aS5hc3BlY3RyYXRpbz4xPyhjPXIucix1PWMvaS5hc3BlY3RyYXRpbyk6KHU9ci5yLGM9dSppLmFzcGVjdHJhdGlvKSxjKj0oMStpLmJhc2VyYXRpbykvMixsPWMqdX1vPU1hdGgubWluKG8sbC9yLnZUb3RhbCl9Zm9yKG49MDtuPHQubGVuZ3RoO24rKylpZihyPXRbbl1bMF0sKGk9ci50cmFjZSkuc2NhbGVncm91cD09PXMpe3ZhciBmPW8qci52VG90YWw7ImZ1bm5lbGFyZWEiPT09aS50eXBlJiYoZi89KDEraS5iYXNlcmF0aW8pLzIsZi89aS5hc3BlY3RyYXRpbyksci5yPU1hdGguc3FydChmKX19fSh0LHIpfWZ1bmN0aW9uIHoodCxlKXtyZXR1cm5bdCpNYXRoLnNpbihlKSwtdCpNYXRoLmNvcyhlKV19ZnVuY3Rpb24gRCh0LGUscil7dmFyIG49dC5fZnVsbExheW91dCxpPXIudHJhY2UsYT1pLnRleHR0ZW1wbGF0ZSxvPWkudGV4dGluZm87aWYoIWEmJm8mJiJub25lIiE9PW8pe3ZhciBzLGM9by5zcGxpdCgiKyIpLHU9ZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1jLmluZGV4T2YodCl9LGY9dSgibGFiZWwiKSxoPXUoInRleHQiKSxwPXUoInZhbHVlIiksZD11KCJwZXJjZW50IiksbT1uLnNlcGFyYXRvcnM7aWYocz1mP1tlLmxhYmVsXTpbXSxoKXt2YXIgdj1nLmdldEZpcnN0RmlsbGVkKGkudGV4dCxlLnB0cyk7eSh2KSYmcy5wdXNoKHYpfXAmJnMucHVzaChnLmZvcm1hdFBpZVZhbHVlKGUudixtKSksZCYmcy5wdXNoKGcuZm9ybWF0UGllUGVyY2VudChlLnYvci52VG90YWwsbSkpLGUudGV4dD1zLmpvaW4oIjxicj4iKX1pZihhKXt2YXIgeD1sLmNhc3RPcHRpb24oaSxlLmksInRleHR0ZW1wbGF0ZSIpO2lmKHgpe3ZhciBiPWZ1bmN0aW9uKHQpe3JldHVybntsYWJlbDp0LmxhYmVsLHZhbHVlOnQudix2YWx1ZUxhYmVsOmcuZm9ybWF0UGllVmFsdWUodC52LG4uc2VwYXJhdG9ycykscGVyY2VudDp0LnYvci52VG90YWwscGVyY2VudExhYmVsOmcuZm9ybWF0UGllUGVyY2VudCh0LnYvci52VG90YWwsbi5zZXBhcmF0b3JzKSxjb2xvcjp0LmNvbG9yLHRleHQ6dC50ZXh0LGN1c3RvbWRhdGE6bC5jYXN0T3B0aW9uKGksdC5pLCJjdXN0b21kYXRhIil9fShlKSxfPWcuZ2V0Rmlyc3RGaWxsZWQoaS50ZXh0LGUucHRzKTsoeShfKXx8IiI9PT1fKSYmKGIudGV4dD1fKSxlLnRleHQ9bC50ZXh0dGVtcGxhdGVTdHJpbmcoeCxiLHQuX2Z1bGxMYXlvdXQuX2QzbG9jYWxlLGIsaS5fbWV0YXx8e30pfWVsc2UgZS50ZXh0PSIifX1mdW5jdGlvbiBSKHQsZSl7dmFyIHI9dC5yb3RhdGUqTWF0aC5QSS8xODAsbj1NYXRoLmNvcyhyKSxpPU1hdGguc2luKHIpLGE9KGUubGVmdCtlLnJpZ2h0KS8yLG89KGUudG9wK2UuYm90dG9tKS8yO3QudGV4dFg9YSpuLW8qaSx0LnRleHRZPWEqaStvKm4sdC5ub0NlbnRlcj0hMH1lLmV4cG9ydHM9e3Bsb3Q6ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGE9ci5fc2l6ZTtkKCJwaWUiLHIpLF8oZSx0KSxPKGUsYSk7dmFyIGg9bC5tYWtlVHJhY2VHcm91cHMoci5fcGllbGF5ZXIsZSwidHJhY2UiKS5lYWNoKChmdW5jdGlvbihlKXt2YXIgaD1uLnNlbGVjdCh0aGlzKSxkPWVbMF0sbT1kLnRyYWNlOyFmdW5jdGlvbih0KXt2YXIgZSxyLG4saT10WzBdLGE9aS5yLG89aS50cmFjZSxzPWcuZ2V0Um90YXRpb25BbmdsZShvLnJvdGF0aW9uKSxsPTIqTWF0aC5QSS9pLnZUb3RhbCxjPSJweDAiLHU9InB4MSI7aWYoImNvdW50ZXJjbG9ja3dpc2UiPT09by5kaXJlY3Rpb24pe2ZvcihlPTA7ZTx0Lmxlbmd0aCYmdFtlXS5oaWRkZW47ZSsrKTtpZihlPT09dC5sZW5ndGgpcmV0dXJuO3MrPWwqdFtlXS52LGwqPS0xLGM9InB4MSIsdT0icHgwIn1mb3Iobj16KGEscyksZT0wO2U8dC5sZW5ndGg7ZSsrKShyPXRbZV0pLmhpZGRlbnx8KHJbY109bixyLnN0YXJ0YW5nbGU9cyxzKz1sKnIudi8yLHIucHhtaWQ9eihhLHMpLHIubWlkYW5nbGU9cyxzKz1sKnIudi8yLG49eihhLHMpLHIuc3RvcGFuZ2xlPXMsclt1XT1uLHIubGFyZ2VBcmM9ci52PmkudlRvdGFsLzI/MTowLHIuaGFsZmFuZ2xlPU1hdGguUEkqTWF0aC5taW4oci52L2kudlRvdGFsLC41KSxyLnJpbmc9MS1vLmhvbGUsci5ySW5zY3JpYmVkPUUocixpKSl9KGUpLGguYXR0cigic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKSxoLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHY9bi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJnLnNsaWNlIikuZGF0YShlKTt2LmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2xpY2UiLCEwKSx2LmV4aXQoKS5yZW1vdmUoKTt2YXIgeT1bW1tdLFtdXSxbW10sW11dXSxfPSExO3YuZWFjaCgoZnVuY3Rpb24oaSxhKXtpZihpLmhpZGRlbiluLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInBhdGgsZyIpLnJlbW92ZSgpO2Vsc2V7aS5wb2ludE51bWJlcj1pLmksaS5jdXJ2ZU51bWJlcj1tLmluZGV4LHlbaS5weG1pZFsxXTwwPzA6MV1baS5weG1pZFswXTwwPzA6MV0ucHVzaChpKTt2YXIgbz1kLmN4LGM9ZC5jeSx1PW4uc2VsZWN0KHRoaXMpLGg9dS5zZWxlY3RBbGwoInBhdGguc3VyZmFjZSIpLmRhdGEoW2ldKTtpZihoLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgic3VyZmFjZSIsITApLnN0eWxlKHsicG9pbnRlci1ldmVudHMiOiJhbGwifSksdS5jYWxsKHgsdCxlKSxtLnB1bGwpe3ZhciB2PStnLmNhc3RPcHRpb24obS5wdWxsLGkucHRzKXx8MDt2PjAmJihvKz12KmkucHhtaWRbMF0sYys9dippLnB4bWlkWzFdKX1pLmN4RmluYWw9byxpLmN5RmluYWw9Yzt2YXIgVD1tLmhvbGU7aWYoaS52PT09ZC52VG90YWwpe3ZhciBrPSJNIisobytpLnB4MFswXSkrIiwiKyhjK2kucHgwWzFdKStDKGkucHgwLGkucHhtaWQsITAsMSkrQyhpLnB4bWlkLGkucHgwLCEwLDEpKyJaIjtUP2guYXR0cigiZCIsIk0iKyhvK1QqaS5weDBbMF0pKyIsIisoYytUKmkucHgwWzFdKStDKGkucHgwLGkucHhtaWQsITEsVCkrQyhpLnB4bWlkLGkucHgwLCExLFQpKyJaIitrKTpoLmF0dHIoImQiLGspfWVsc2V7dmFyIEE9QyhpLnB4MCxpLnB4MSwhMCwxKTtpZihUKXt2YXIgTT0xLVQ7aC5hdHRyKCJkIiwiTSIrKG8rVCppLnB4MVswXSkrIiwiKyhjK1QqaS5weDFbMV0pK0MoaS5weDEsaS5weDAsITEsVCkrImwiK00qaS5weDBbMF0rIiwiK00qaS5weDBbMV0rQSsiWiIpfWVsc2UgaC5hdHRyKCJkIiwiTSIrbysiLCIrYysibCIraS5weDBbMF0rIiwiK2kucHgwWzFdK0ErIloiKX1EKHQsaSxkKTt2YXIgUz1nLmNhc3RPcHRpb24obS50ZXh0cG9zaXRpb24saS5wdHMpLEU9dS5zZWxlY3RBbGwoImcuc2xpY2V0ZXh0IikuZGF0YShpLnRleHQmJiJub25lIiE9PVM/WzBdOltdKTtFLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2xpY2V0ZXh0IiwhMCksRS5leGl0KCkucmVtb3ZlKCksRS5lYWNoKChmdW5jdGlvbigpe3ZhciB1PWwuZW5zdXJlU2luZ2xlKG4uc2VsZWN0KHRoaXMpLCJ0ZXh0IiwiIiwoZnVuY3Rpb24odCl7dC5hdHRyKCJkYXRhLW5vdGV4IiwxKX0pKSxoPWwuZW5zdXJlVW5pZm9ybUZvbnRTaXplKHQsIm91dHNpZGUiPT09Uz9mdW5jdGlvbih0LGUscil7dmFyIG49Zy5jYXN0T3B0aW9uKHQub3V0c2lkZXRleHRmb250LmNvbG9yLGUucHRzKXx8Zy5jYXN0T3B0aW9uKHQudGV4dGZvbnQuY29sb3IsZS5wdHMpfHxyLmNvbG9yLGk9Zy5jYXN0T3B0aW9uKHQub3V0c2lkZXRleHRmb250LmZhbWlseSxlLnB0cyl8fGcuY2FzdE9wdGlvbih0LnRleHRmb250LmZhbWlseSxlLnB0cyl8fHIuZmFtaWx5LGE9Zy5jYXN0T3B0aW9uKHQub3V0c2lkZXRleHRmb250LnNpemUsZS5wdHMpfHxnLmNhc3RPcHRpb24odC50ZXh0Zm9udC5zaXplLGUucHRzKXx8ci5zaXplO3JldHVybntjb2xvcjpuLGZhbWlseTppLHNpemU6YX19KG0saSxyLmZvbnQpOmIobSxpLHIuZm9udCkpO3UudGV4dChpLnRleHQpLmF0dHIoe2NsYXNzOiJzbGljZXRleHQiLHRyYW5zZm9ybToiIiwidGV4dC1hbmNob3IiOiJtaWRkbGUifSkuY2FsbChzLmZvbnQsaCkuY2FsbChmLmNvbnZlcnRUb1RzcGFucyx0KTt2YXIgdix5PXMuYkJveCh1Lm5vZGUoKSk7aWYoIm91dHNpZGUiPT09Uyl2PUwoeSxpKTtlbHNlIGlmKHY9dyh5LGksZCksImF1dG8iPT09UyYmdi5zY2FsZTwxKXt2YXIgeD1sLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LG0ub3V0c2lkZXRleHRmb250KTt1LmNhbGwocy5mb250LHgpLHY9TCh5PXMuYkJveCh1Lm5vZGUoKSksaSl9dmFyIFQ9di50ZXh0UG9zQW5nbGUsaz12b2lkIDA9PT1UP2kucHhtaWQ6eihkLnIsVCk7aWYodi50YXJnZXRYPW8ra1swXSp2LnJDZW50ZXIrKHYueHx8MCksdi50YXJnZXRZPWMra1sxXSp2LnJDZW50ZXIrKHYueXx8MCksUih2LHkpLHYub3V0c2lkZSl7dmFyIEE9di50YXJnZXRZO2kueUxhYmVsTWluPUEteS5oZWlnaHQvMixpLnlMYWJlbE1pZD1BLGkueUxhYmVsTWF4PUEreS5oZWlnaHQvMixpLmxhYmVsRXh0cmFYPTAsaS5sYWJlbEV4dHJhWT0wLF89ITB9di5mb250U2l6ZT1oLnNpemUscChtLnR5cGUsdixyKSxlW2FdLnRyYW5zZm9ybT12LHUuYXR0cigidHJhbnNmb3JtIixsLmdldFRleHRUcmFuc2Zvcm0odikpfSkpfWZ1bmN0aW9uIEModCxlLHIsbil7dmFyIGE9biooZVswXS10WzBdKSxvPW4qKGVbMV0tdFsxXSk7cmV0dXJuImEiK24qZC5yKyIsIituKmQucisiIDAgIitpLmxhcmdlQXJjKyhyPyIgMSAiOiIgMCAiKSthKyIsIitvfX0pKTt2YXIgVD1uLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoImcudGl0bGV0ZXh0IikuZGF0YShtLnRpdGxlLnRleHQ/WzBdOltdKTtpZihULmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgidGl0bGV0ZXh0IiwhMCksVC5leGl0KCkucmVtb3ZlKCksVC5lYWNoKChmdW5jdGlvbigpe3ZhciBlLHI9bC5lbnN1cmVTaW5nbGUobi5zZWxlY3QodGhpcyksInRleHQiLCIiLChmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSkpLGk9bS50aXRsZS50ZXh0O20uX21ldGEmJihpPWwudGVtcGxhdGVTdHJpbmcoaSxtLl9tZXRhKSksci50ZXh0KGkpLmF0dHIoe2NsYXNzOiJ0aXRsZXRleHQiLHRyYW5zZm9ybToiIiwidGV4dC1hbmNob3IiOiJtaWRkbGUifSkuY2FsbChzLmZvbnQsbS50aXRsZS5mb250KS5jYWxsKGYuY29udmVydFRvVHNwYW5zLHQpLGU9Im1pZGRsZSBjZW50ZXIiPT09bS50aXRsZS5wb3NpdGlvbj9mdW5jdGlvbih0KXt2YXIgZT1NYXRoLnNxcnQodC50aXRsZUJveC53aWR0aCp0LnRpdGxlQm94LndpZHRoK3QudGl0bGVCb3guaGVpZ2h0KnQudGl0bGVCb3guaGVpZ2h0KTtyZXR1cm57eDp0LmN4LHk6dC5jeSxzY2FsZTp0LnRyYWNlLmhvbGUqdC5yKjIvZSx0eDowLHR5Oi10LnRpdGxlQm94LmhlaWdodC8yK3QudHJhY2UudGl0bGUuZm9udC5zaXplfX0oZCk6QyhkLGEpLHIuYXR0cigidHJhbnNmb3JtIix1KGUueCxlLnkpK2MoTWF0aC5taW4oMSxlLnNjYWxlKSkrdShlLnR4LGUudHkpKX0pKSxfJiZmdW5jdGlvbih0LGUpe3ZhciByLG4saSxhLG8scyxsLGMsdSxmLGgscCxkO2Z1bmN0aW9uIG0odCxlKXtyZXR1cm4gdC5weG1pZFsxXS1lLnB4bWlkWzFdfWZ1bmN0aW9uIHYodCxlKXtyZXR1cm4gZS5weG1pZFsxXS10LnB4bWlkWzFdfWZ1bmN0aW9uIHkodCxyKXtyfHwocj17fSk7dmFyIGksYyx1LGgscD1yLmxhYmVsRXh0cmFZKyhuP3IueUxhYmVsTWF4OnIueUxhYmVsTWluKSxkPW4/dC55TGFiZWxNaW46dC55TGFiZWxNYXgsbT1uP3QueUxhYmVsTWF4OnQueUxhYmVsTWluLHY9dC5jeUZpbmFsK28odC5weDBbMV0sdC5weDFbMV0pLHk9cC1kO2lmKHkqbD4wJiYodC5sYWJlbEV4dHJhWT15KSxBcnJheS5pc0FycmF5KGUucHVsbCkpZm9yKGM9MDtjPGYubGVuZ3RoO2MrKykodT1mW2NdKT09PXR8fChnLmNhc3RPcHRpb24oZS5wdWxsLHQucHRzKXx8MCk+PShnLmNhc3RPcHRpb24oZS5wdWxsLHUucHRzKXx8MCl8fCgodC5weG1pZFsxXS11LnB4bWlkWzFdKSpsPjA/KHk9dS5jeUZpbmFsK28odS5weDBbMV0sdS5weDFbMV0pLWQtdC5sYWJlbEV4dHJhWSkqbD4wJiYodC5sYWJlbEV4dHJhWSs9eSk6KG0rdC5sYWJlbEV4dHJhWS12KSpsPjAmJihpPTMqcypNYXRoLmFicyhjLWYuaW5kZXhPZih0KSksKGg9dS5jeEZpbmFsK2EodS5weDBbMF0sdS5weDFbMF0pK2ktKHQuY3hGaW5hbCt0LnB4bWlkWzBdKS10LmxhYmVsRXh0cmFYKSpzPjAmJih0LmxhYmVsRXh0cmFYKz1oKSkpfWZvcihuPTA7bjwyO24rKylmb3IoaT1uP206dixvPW4/TWF0aC5tYXg6TWF0aC5taW4sbD1uPzE6LTEscj0wO3I8MjtyKyspe2ZvcihhPXI/TWF0aC5tYXg6TWF0aC5taW4scz1yPzE6LTEsKGM9dFtuXVtyXSkuc29ydChpKSx1PXRbMS1uXVtyXSxmPXUuY29uY2F0KGMpLHA9W10saD0wO2g8Yy5sZW5ndGg7aCsrKXZvaWQgMCE9PWNbaF0ueUxhYmVsTWlkJiZwLnB1c2goY1toXSk7Zm9yKGQ9ITEsaD0wO24mJmg8dS5sZW5ndGg7aCsrKWlmKHZvaWQgMCE9PXVbaF0ueUxhYmVsTWlkKXtkPXVbaF07YnJlYWt9Zm9yKGg9MDtoPHAubGVuZ3RoO2grKyl7dmFyIHg9aCYmcFtoLTFdO2QmJiFoJiYoeD1kKSx5KHBbaF0seCl9fX0oeSxtKSxmdW5jdGlvbih0LGUpe3QuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyk7aWYodC5sYWJlbEV4dHJhWHx8dC5sYWJlbEV4dHJhWSl7dmFyIGk9ci5zZWxlY3QoImcuc2xpY2V0ZXh0IHRleHQiKTt0LnRyYW5zZm9ybS50YXJnZXRYKz10LmxhYmVsRXh0cmFYLHQudHJhbnNmb3JtLnRhcmdldFkrPXQubGFiZWxFeHRyYVksaS5hdHRyKCJ0cmFuc2Zvcm0iLGwuZ2V0VGV4dFRyYW5zZm9ybSh0LnRyYW5zZm9ybSkpO3ZhciBhPXQuY3hGaW5hbCt0LnB4bWlkWzBdLHM9Ik0iK2ErIiwiKyh0LmN5RmluYWwrdC5weG1pZFsxXSksYz0odC55TGFiZWxNYXgtdC55TGFiZWxNaW4pKih0LnB4bWlkWzBdPDA/LTE6MSkvNDtpZih0LmxhYmVsRXh0cmFYKXt2YXIgdT10LmxhYmVsRXh0cmFYKnQucHhtaWRbMV0vdC5weG1pZFswXSxmPXQueUxhYmVsTWlkK3QubGFiZWxFeHRyYVktKHQuY3lGaW5hbCt0LnB4bWlkWzFdKTtNYXRoLmFicyh1KT5NYXRoLmFicyhmKT9zKz0ibCIrZip0LnB4bWlkWzBdL3QucHhtaWRbMV0rIiwiK2YrIkgiKyhhK3QubGFiZWxFeHRyYVgrYyk6cys9ImwiK3QubGFiZWxFeHRyYVgrIiwiK3UrInYiKyhmLXUpKyJoIitjfWVsc2Ugcys9IlYiKyh0LnlMYWJlbE1pZCt0LmxhYmVsRXh0cmFZKSsiaCIrYztsLmVuc3VyZVNpbmdsZShyLCJwYXRoIiwidGV4dGxpbmUiKS5jYWxsKG8uc3Ryb2tlLGUub3V0c2lkZXRleHRmb250LmNvbG9yKS5hdHRyKHsic3Ryb2tlLXdpZHRoIjpNYXRoLm1pbigyLGUub3V0c2lkZXRleHRmb250LnNpemUvOCksZDpzLGZpbGw6Im5vbmUifSl9ZWxzZSByLnNlbGVjdCgicGF0aC50ZXh0bGluZSIpLnJlbW92ZSgpfSkpfSh2LG0pLF8mJm0uYXV0b21hcmdpbil7dmFyIGs9cy5iQm94KGgubm9kZSgpKSxBPW0uZG9tYWluLE09YS53KihBLnhbMV0tQS54WzBdKSxTPWEuaCooQS55WzFdLUEueVswXSksRT0oLjUqTS1kLnIpL2EudyxQPSguNSpTLWQucikvYS5oO2kuYXV0b01hcmdpbih0LCJwaWUuIittLnVpZCsiLmF1dG9tYXJnaW4iLHt4bDpBLnhbMF0tRSx4cjpBLnhbMV0rRSx5YjpBLnlbMF0tUCx5dDpBLnlbMV0rUCxsOk1hdGgubWF4KGQuY3gtZC5yLWsubGVmdCwwKSxyOk1hdGgubWF4KGsucmlnaHQtKGQuY3grZC5yKSwwKSxiOk1hdGgubWF4KGsuYm90dG9tLShkLmN5K2QuciksMCksdDpNYXRoLm1heChkLmN5LWQuci1rLnRvcCwwKSxwYWQ6NX0pfX0pKX0pKTtzZXRUaW1lb3V0KChmdW5jdGlvbigpe2guc2VsZWN0QWxsKCJ0c3BhbiIpLmVhY2goKGZ1bmN0aW9uKCl7dmFyIHQ9bi5zZWxlY3QodGhpcyk7dC5hdHRyKCJkeSIpJiZ0LmF0dHIoImR5Iix0LmF0dHIoImR5IikpfSkpfSksMCl9LGZvcm1hdFNsaWNlTGFiZWw6RCx0cmFuc2Zvcm1JbnNpZGVUZXh0OncsZGV0ZXJtaW5lSW5zaWRlVGV4dEZvbnQ6Yixwb3NpdGlvblRpdGxlT3V0c2lkZTpDLHByZXJlbmRlclRpdGxlczpfLGxheW91dEFyZWFzOk8sYXR0YWNoRnhIYW5kbGVyczp4LGNvbXB1dGVUcmFuc2Zvcm06Un19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uLy4uL3Bsb3RzL3Bsb3RzIjo4OTAsIi4uL2Jhci9jb25zdGFudHMiOjkxNiwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6OTMwLCIuL2V2ZW50X2RhdGEiOjExNjksIi4vaGVscGVycyI6MTE3MCwiQHBsb3RseS9kMyI6NTh9XSwxMTc1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4vc3R5bGVfb25lIiksYT10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikucmVzaXplVGV4dDtlLmV4cG9ydHM9ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dC5fcGllbGF5ZXIuc2VsZWN0QWxsKCIudHJhY2UiKTthKHQsZSwicGllIiksZS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10WzBdLnRyYWNlLHI9bi5zZWxlY3QodGhpcyk7ci5zdHlsZSh7b3BhY2l0eTplLm9wYWNpdHl9KSxyLnNlbGVjdEFsbCgicGF0aC5zdXJmYWNlIikuZWFjaCgoZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuY2FsbChpLHQsZSl9KSl9KSl9fSx7Ii4uL2Jhci91bmlmb3JtX3RleHQiOjkzMCwiLi9zdHlsZV9vbmUiOjExNzYsIkBwbG90bHkvZDMiOjU4fV0sMTE3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuL2hlbHBlcnMiKS5jYXN0T3B0aW9uO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGE9ci5tYXJrZXIubGluZSxvPWkoYS5jb2xvcixlLnB0cyl8fG4uZGVmYXVsdExpbmUscz1pKGEud2lkdGgsZS5wdHMpfHwwO3Quc3R5bGUoInN0cm9rZS13aWR0aCIscykuY2FsbChuLmZpbGwsZS5jb2xvcikuY2FsbChuLnN0cm9rZSxvKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuL2hlbHBlcnMiOjExNzB9XSwxMTc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpO2UuZXhwb3J0cz17eDpuLngseTpuLnkseHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0saW5kaWNlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx4Ym91bmRzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHlib3VuZHM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdGV4dDpuLnRleHQsbWFya2VyOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITEsZWRpdFR5cGU6ImNhbGMifSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MSxhcnJheU9rOiExLGVkaXRUeXBlOiJjYWxjIn0sYmxlbmQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6bnVsbCxlZGl0VHlwZToiY2FsYyJ9LHNpemVtaW46e3ZhbFR5cGU6Im51bWJlciIsbWluOi4xLG1heDoyLGRmbHQ6LjUsZWRpdFR5cGU6ImNhbGMifSxzaXplbWF4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjouMSxkZmx0OjIwLGVkaXRUeXBlOiJjYWxjIn0sYm9yZGVyOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGFycmF5T2s6ITEsZWRpdFR5cGU6ImNhbGMifSxhcmVhcmF0aW86e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxlZGl0VHlwZToiY2FsYyJ9LHRyYW5zZm9ybXM6dm9pZCAwfX0seyIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExOTF9XSwxMTc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImdsLXBvaW50Y2xvdWQyZCIpLGk9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSIpLmZpbmRFeHRyZW1lcyxvPXQoIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIik7ZnVuY3Rpb24gcyh0LGUpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1lLHRoaXMudHlwZT0icG9pbnRjbG91ZCIsdGhpcy5waWNrWERhdGE9W10sdGhpcy5waWNrWURhdGE9W10sdGhpcy54RGF0YT1bXSx0aGlzLnlEYXRhPVtdLHRoaXMudGV4dExhYmVscz1bXSx0aGlzLmNvbG9yPSJyZ2IoMCwgMCwgMCkiLHRoaXMubmFtZT0iIix0aGlzLmhvdmVyaW5mbz0iYWxsIix0aGlzLmlkVG9JbmRleD1uZXcgSW50MzJBcnJheSgwKSx0aGlzLmJvdW5kcz1bMCwwLDAsMF0sdGhpcy5wb2ludGNsb3VkT3B0aW9ucz17cG9zaXRpb25zOm5ldyBGbG9hdDMyQXJyYXkoMCksaWRUb0luZGV4OnRoaXMuaWRUb0luZGV4LHNpemVtaW46LjUsc2l6ZW1heDoxMixjb2xvcjpbMCwwLDAsMV0sYXJlYVJhdGlvOjEsYm9yZGVyQ29sb3I6WzAsMCwwLDFdfSx0aGlzLnBvaW50Y2xvdWQ9bih0LmdscGxvdCx0aGlzLnBvaW50Y2xvdWRPcHRpb25zKSx0aGlzLnBvaW50Y2xvdWQuX3RyYWNlPXRoaXN9dmFyIGw9cy5wcm90b3R5cGU7bC5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuaWRUb0luZGV4W3QucG9pbnRJZF07cmV0dXJue3RyYWNlOnRoaXMsZGF0YUNvb3JkOnQuZGF0YUNvb3JkLHRyYWNlQ29vcmQ6dGhpcy5waWNrWFlEYXRhP1t0aGlzLnBpY2tYWURhdGFbMiplXSx0aGlzLnBpY2tYWURhdGFbMiplKzFdXTpbdGhpcy5waWNrWERhdGFbZV0sdGhpcy5waWNrWURhdGFbZV1dLHRleHRMYWJlbDpBcnJheS5pc0FycmF5KHRoaXMudGV4dExhYmVscyk/dGhpcy50ZXh0TGFiZWxzW2VdOnRoaXMudGV4dExhYmVscyxjb2xvcjp0aGlzLmNvbG9yLG5hbWU6dGhpcy5uYW1lLHBvaW50SW5kZXg6ZSxob3ZlcmluZm86dGhpcy5ob3ZlcmluZm99fSxsLnVwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLmluZGV4PXQuaW5kZXgsdGhpcy50ZXh0TGFiZWxzPXQudGV4dCx0aGlzLm5hbWU9dC5uYW1lLHRoaXMuaG92ZXJpbmZvPXQuaG92ZXJpbmZvLHRoaXMuYm91bmRzPVsxLzAsMS8wLC0xLzAsLTEvMF0sdGhpcy51cGRhdGVGYXN0KHQpLHRoaXMuY29sb3I9byh0LHt9KX0sbC51cGRhdGVGYXN0PWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixvLHMsbCxjPXRoaXMueERhdGE9dGhpcy5waWNrWERhdGE9dC54LHU9dGhpcy55RGF0YT10aGlzLnBpY2tZRGF0YT10LnksZj10aGlzLnBpY2tYWURhdGE9dC54eSxoPXQueGJvdW5kcyYmdC55Ym91bmRzLHA9dC5pbmRpY2VzLGQ9dGhpcy5ib3VuZHM7aWYoZil7aWYobj1mLGU9Zi5sZW5ndGg+Pj4xLGgpZFswXT10Lnhib3VuZHNbMF0sZFsyXT10Lnhib3VuZHNbMV0sZFsxXT10Lnlib3VuZHNbMF0sZFszXT10Lnlib3VuZHNbMV07ZWxzZSBmb3IobD0wO2w8ZTtsKyspbz1uWzIqbF0scz1uWzIqbCsxXSxvPGRbMF0mJihkWzBdPW8pLG8+ZFsyXSYmKGRbMl09byksczxkWzFdJiYoZFsxXT1zKSxzPmRbM10mJihkWzNdPXMpO2lmKHApcj1wO2Vsc2UgZm9yKHI9bmV3IEludDMyQXJyYXkoZSksbD0wO2w8ZTtsKyspcltsXT1sfWVsc2UgZm9yKGU9Yy5sZW5ndGgsbj1uZXcgRmxvYXQzMkFycmF5KDIqZSkscj1uZXcgSW50MzJBcnJheShlKSxsPTA7bDxlO2wrKylvPWNbbF0scz11W2xdLHJbbF09bCxuWzIqbF09byxuWzIqbCsxXT1zLG88ZFswXSYmKGRbMF09byksbz5kWzJdJiYoZFsyXT1vKSxzPGRbMV0mJihkWzFdPXMpLHM+ZFszXSYmKGRbM109cyk7dGhpcy5pZFRvSW5kZXg9cix0aGlzLnBvaW50Y2xvdWRPcHRpb25zLmlkVG9JbmRleD1yLHRoaXMucG9pbnRjbG91ZE9wdGlvbnMucG9zaXRpb25zPW47dmFyIG09aSh0Lm1hcmtlci5jb2xvciksZz1pKHQubWFya2VyLmJvcmRlci5jb2xvciksdj10Lm9wYWNpdHkqdC5tYXJrZXIub3BhY2l0eTttWzNdKj12LHRoaXMucG9pbnRjbG91ZE9wdGlvbnMuY29sb3I9bTt2YXIgeT10Lm1hcmtlci5ibGVuZDtpZihudWxsPT09eSl7eT1jLmxlbmd0aDwxMDB8fHUubGVuZ3RoPDEwMH10aGlzLnBvaW50Y2xvdWRPcHRpb25zLmJsZW5kPXksZ1szXSo9dix0aGlzLnBvaW50Y2xvdWRPcHRpb25zLmJvcmRlckNvbG9yPWc7dmFyIHg9dC5tYXJrZXIuc2l6ZW1pbixiPU1hdGgubWF4KHQubWFya2VyLnNpemVtYXgsdC5tYXJrZXIuc2l6ZW1pbik7dGhpcy5wb2ludGNsb3VkT3B0aW9ucy5zaXplTWluPXgsdGhpcy5wb2ludGNsb3VkT3B0aW9ucy5zaXplTWF4PWIsdGhpcy5wb2ludGNsb3VkT3B0aW9ucy5hcmVhUmF0aW89dC5tYXJrZXIuYm9yZGVyLmFyZWFyYXRpbyx0aGlzLnBvaW50Y2xvdWQudXBkYXRlKHRoaXMucG9pbnRjbG91ZE9wdGlvbnMpO3ZhciBfPXRoaXMuc2NlbmUueGF4aXMsdz10aGlzLnNjZW5lLnlheGlzLFQ9Yi8yfHwuNTt0Ll9leHRyZW1lc1tfLl9pZF09YShfLFtkWzBdLGRbMl1dLHtwcGFkOlR9KSx0Ll9leHRyZW1lc1t3Ll9pZF09YSh3LFtkWzFdLGRbM11dLHtwcGFkOlR9KX0sbC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5wb2ludGNsb3VkLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bmV3IHModCxlLnVpZCk7cmV0dXJuIHIudXBkYXRlKGUpLHJ9fSx7Ii4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjgwMSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSI6ODI2LCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciI6MTIwMSwiZ2wtcG9pbnRjbG91ZDJkIjozMTR9XSwxMTc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXtmdW5jdGlvbiBhKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9YSgieCIpLGEoInkiKSxhKCJ4Ym91bmRzIiksYSgieWJvdW5kcyIpLHQueHkmJnQueHkgaW5zdGFuY2VvZiBGbG9hdDMyQXJyYXkmJihlLnh5PXQueHkpLHQuaW5kaWNlcyYmdC5pbmRpY2VzIGluc3RhbmNlb2YgSW50MzJBcnJheSYmKGUuaW5kaWNlcz10LmluZGljZXMpLGEoInRleHQiKSxhKCJtYXJrZXIuY29sb3IiLHIpLGEoIm1hcmtlci5vcGFjaXR5IiksYSgibWFya2VyLmJsZW5kIiksYSgibWFya2VyLnNpemVtaW4iKSxhKCJtYXJrZXIuc2l6ZW1heCIpLGEoIm1hcmtlci5ib3JkZXIuY29sb3IiLHIpLGEoIm1hcmtlci5ib3JkZXIuYXJlYXJhdGlvIiksZS5fbGVuZ3RoPW51bGx9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuL2F0dHJpYnV0ZXMiOjExNzd9XSwxMTgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO1siKnBvaW50Y2xvdWQqIHRyYWNlIGlzIGRlcHJlY2F0ZWQhIiwiUGxlYXNlIGNvbnNpZGVyIHN3aXRjaGluZyB0byB0aGUgKnNjYXR0ZXJnbCogdHJhY2UgdHlwZS4iXS5qb2luKCIgIik7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4uL3NjYXR0ZXIzZC9jYWxjIikscGxvdDp0KCIuL2NvbnZlcnQiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToicG9pbnRjbG91ZCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wyZCIpLGNhdGVnb3JpZXM6WyJnbCIsImdsMmQiLCJzaG93TGVnZW5kIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvZ2wyZCI6ODY3LCIuLi9zY2F0dGVyM2QvY2FsYyI6MTIyMCwiLi9hdHRyaWJ1dGVzIjoxMTc3LCIuL2NvbnZlcnQiOjExNzgsIi4vZGVmYXVsdHMiOjExNzl9XSwxMTgxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvci9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbD10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSx1PXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKS50ZW1wbGF0ZWRBcnJheSxmPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuZGVzY3JpcHRpb25Pbmx5TnVtYmVycyxoPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LHA9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsOyhlLmV4cG9ydHM9cCh7aG92ZXJpbmZvOmgoe30saS5ob3ZlcmluZm8se2ZsYWdzOltdLGFycmF5T2s6ITF9KSxob3ZlcmxhYmVsOm8uaG92ZXJsYWJlbCxkb21haW46cyh7bmFtZToic2Fua2V5Iix0cmFjZTohMH0pLG9yaWVudGF0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ2IiwiaCJdLGRmbHQ6ImgifSx2YWx1ZWZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIuM3MiLGRlc2NyaXB0aW9uOmYoInZhbHVlIil9LHZhbHVlc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiJ9LGFycmFuZ2VtZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzbmFwIiwicGVycGVuZGljdWxhciIsImZyZWVmb3JtIiwiZml4ZWQiXSxkZmx0OiJzbmFwIn0sdGV4dGZvbnQ6bih7fSksY3VzdG9tZGF0YTp2b2lkIDAsbm9kZTp7bGFiZWw6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGdyb3Vwczp7dmFsVHlwZToiaW5mb19hcnJheSIsaW1wbGllZEVkaXRzOnt4OltdLHk6W119LGRpbWVuc2lvbnM6MixmcmVlTGVuZ3RoOiEwLGRmbHQ6W10saXRlbXM6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifX0seDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwfSxjdXN0b21kYXRhOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDphLmRlZmF1bHRMaW5lLGFycmF5T2s6ITB9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6LjUsYXJyYXlPazohMH19LHBhZDp7dmFsVHlwZToibnVtYmVyIixhcnJheU9rOiExLG1pbjowLGRmbHQ6MjB9LHRoaWNrbmVzczp7dmFsVHlwZToibnVtYmVyIixhcnJheU9rOiExLG1pbjoxLGRmbHQ6MjB9LGhvdmVyaW5mbzp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYWxsIiwibm9uZSIsInNraXAiXSxkZmx0OiJhbGwifSxob3ZlcmxhYmVsOm8uaG92ZXJsYWJlbCxob3ZlcnRlbXBsYXRlOmwoe30se2tleXM6WyJ2YWx1ZSIsImxhYmVsIl19KX0sbGluazp7bGFiZWw6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMH0sY3VzdG9tZGF0YTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGRmbHQ6YS5kZWZhdWx0TGluZSxhcnJheU9rOiEwfSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsYXJyYXlPazohMH19LHNvdXJjZTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sdGFyZ2V0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdfSx2YWx1ZTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0saG92ZXJpbmZvOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhbGwiLCJub25lIiwic2tpcCJdLGRmbHQ6ImFsbCJ9LGhvdmVybGFiZWw6by5ob3ZlcmxhYmVsLGhvdmVydGVtcGxhdGU6bCh7fSx7a2V5czpbInZhbHVlIiwibGFiZWwiXX0pLGNvbG9yc2NhbGVzOnUoImNvbmNlbnRyYXRpb25zY2FsZXMiLHtlZGl0VHlwZToiY2FsYyIsbGFiZWw6e3ZhbFR5cGU6InN0cmluZyIsZWRpdFR5cGU6ImNhbGMiLGRmbHQ6IiJ9LGNtYXg6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLGRmbHQ6MX0sY21pbjp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToiY2FsYyIsZGZsdDowfSxjb2xvcnNjYWxlOmgoYygpLmNvbG9yc2NhbGUse2RmbHQ6W1swLCJ3aGl0ZSJdLFsxLCJibGFjayJdXX0pfSl9fSwiY2FsYyIsIm5lc3RlZCIpKS50cmFuc2Zvcm1zPXZvaWQgMH0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yL2F0dHJpYnV0ZXMiOjYzOCwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjY0NiwiLi4vLi4vY29tcG9uZW50cy9meC9hdHRyaWJ1dGVzIjo2NzAsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuLi8uLi9wbG90X2FwaS9wbG90X3RlbXBsYXRlIjo4MTYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vLi4vcGxvdHMvZG9tYWluIjo4NTUsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTl9XSwxMTgyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxpPXQoIi4uLy4uL3Bsb3RzL2dldF9kYXRhIikuZ2V0TW9kdWxlQ2FsY0RhdGEsYT10KCIuL3Bsb3QiKSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvbGF5b3V0X2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2xpYi9zZXRjdXJzb3IiKSxsPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhZ2VsZW1lbnQiKSxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9zZWxlY3QiKS5wcmVwU2VsZWN0LHU9dCgiLi4vLi4vbGliIiksZj10KCIuLi8uLi9yZWdpc3RyeSIpO2Z1bmN0aW9uIGgodCxlKXt2YXIgcj10Ll9mdWxsRGF0YVtlXSxuPXQuX2Z1bGxMYXlvdXQsaT1uLmRyYWdtb2RlLGE9InBhbiI9PT1uLmRyYWdtb2RlPyJtb3ZlIjoiY3Jvc3NoYWlyIixvPXIuX2JnUmVjdDtpZigicGFuIiE9PWkmJiJ6b29tIiE9PWkpe3MobyxhKTt2YXIgaD17X2lkOiJ4IixjMnA6dS5pZGVudGl0eSxfb2Zmc2V0OnIuX3NhbmtleS50cmFuc2xhdGVYLF9sZW5ndGg6ci5fc2Fua2V5LndpZHRofSxwPXtfaWQ6InkiLGMycDp1LmlkZW50aXR5LF9vZmZzZXQ6ci5fc2Fua2V5LnRyYW5zbGF0ZVksX2xlbmd0aDpyLl9zYW5rZXkuaGVpZ2h0fSxkPXtnZDp0LGVsZW1lbnQ6by5ub2RlKCkscGxvdGluZm86e2lkOmUseGF4aXM6aCx5YXhpczpwLGZpbGxSYW5nZUl0ZW1zOnUubm9vcH0sc3VicGxvdDplLHhheGVzOltoXSx5YXhlczpbcF0sZG9uZUZuQ29tcGxldGVkOmZ1bmN0aW9uKHIpe3ZhciBuLGk9dC5fZnVsbERhdGFbZV0sYT1pLm5vZGUuZ3JvdXBzLnNsaWNlKCksbz1bXTtmdW5jdGlvbiBzKHQpe2Zvcih2YXIgZT1pLl9zYW5rZXkuZ3JhcGgubm9kZXMscj0wO3I8ZS5sZW5ndGg7cisrKWlmKGVbcl0ucG9pbnROdW1iZXI9PT10KXJldHVybiBlW3JdfWZvcih2YXIgbD0wO2w8ci5sZW5ndGg7bCsrKXt2YXIgYz1zKHJbbF0ucG9pbnROdW1iZXIpO2lmKGMpaWYoYy5ncm91cCl7Zm9yKHZhciB1PTA7dTxjLmNoaWxkcmVuTm9kZXMubGVuZ3RoO3UrKylvLnB1c2goYy5jaGlsZHJlbk5vZGVzW3VdLnBvaW50TnVtYmVyKTthW2MucG9pbnROdW1iZXItaS5ub2RlLl9jb3VudF09ITF9ZWxzZSBvLnB1c2goYy5wb2ludE51bWJlcil9bj1hLmZpbHRlcihCb29sZWFuKS5jb25jYXQoW29dKSxmLmNhbGwoIl9ndWlSZXN0eWxlIix0LHsibm9kZS5ncm91cHMiOltuXX0sZSl9LHByZXBGbjpmdW5jdGlvbih0LGUscil7Yyh0LGUscixkLGkpfX07bC5pbml0KGQpfX1yLm5hbWU9InNhbmtleSIsci5iYXNlTGF5b3V0QXR0ck92ZXJyaWRlcz1uKHtob3ZlcmxhYmVsOm8uaG92ZXJsYWJlbH0sInBsb3QiLCJuZXN0ZWQiKSxyLnBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9aSh0LmNhbGNkYXRhLCJzYW5rZXkiKVswXTthKHQsZSksci51cGRhdGVGeCh0KX0sci5jbGVhbj1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1uLl9oYXMmJm4uX2hhcygic2Fua2V5IiksYT1lLl9oYXMmJmUuX2hhcygic2Fua2V5Iik7aSYmIWEmJihuLl9wYXBlcmRpdi5zZWxlY3RBbGwoIi5zYW5rZXkiKS5yZW1vdmUoKSxuLl9wYXBlcmRpdi5zZWxlY3RBbGwoIi5iZ3NhbmtleSIpLnJlbW92ZSgpKX0sci51cGRhdGVGeD1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQuX2Z1bGxEYXRhLmxlbmd0aDtlKyspaCh0LGUpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50Ijo2NTgsIi4uLy4uL2NvbXBvbmVudHMvZngvbGF5b3V0X2F0dHJpYnV0ZXMiOjY4MCwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjc5NywiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vc2VsZWN0Ijo4NDcsIi4uLy4uL3Bsb3RzL2dldF9kYXRhIjo4NjQsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4vcGxvdCI6MTE4N31dLDExODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgic3Ryb25nbHktY29ubmVjdGVkLWNvbXBvbmVudHMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vbGliL2d1cCIpLndyYXAsbz1pLmlzQXJyYXlPclR5cGVkQXJyYXkscz1pLmlzSW5kZXgsbD10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKTtmdW5jdGlvbiBjKHQpe3ZhciBlLHI9dC5ub2RlLGE9dC5saW5rLGM9W10sdT1vKGEuY29sb3IpLGY9byhhLmN1c3RvbWRhdGEpLGg9e30scD17fSxkPWEuY29sb3JzY2FsZXMubGVuZ3RoO2ZvcihlPTA7ZTxkO2UrKyl7dmFyIG09YS5jb2xvcnNjYWxlc1tlXSxnPWwuZXh0cmFjdFNjYWxlKG0se2NMZXR0ZXI6ImMifSksdj1sLm1ha2VDb2xvclNjYWxlRnVuYyhnKTtwW20ubGFiZWxdPXZ9dmFyIHk9MDtmb3IoZT0wO2U8YS52YWx1ZS5sZW5ndGg7ZSsrKWEuc291cmNlW2VdPnkmJih5PWEuc291cmNlW2VdKSxhLnRhcmdldFtlXT55JiYoeT1hLnRhcmdldFtlXSk7dmFyIHgsYj15KzE7dC5ub2RlLl9jb3VudD1iO3ZhciBfPXQubm9kZS5ncm91cHMsdz17fTtmb3IoZT0wO2U8Xy5sZW5ndGg7ZSsrKXt2YXIgVD1fW2VdO2Zvcih4PTA7eDxULmxlbmd0aDt4Kyspe3ZhciBrPVRbeF0sQT1iK2U7dy5oYXNPd25Qcm9wZXJ0eShrKT9pLndhcm4oIk5vZGUgIitrKyIgaXMgYWxyZWFkeSBwYXJ0IG9mIGEgZ3JvdXAuIik6d1trXT1BfX12YXIgTT17c291cmNlOltdLHRhcmdldDpbXX07Zm9yKGU9MDtlPGEudmFsdWUubGVuZ3RoO2UrKyl7dmFyIFM9YS52YWx1ZVtlXSxFPWEuc291cmNlW2VdLEw9YS50YXJnZXRbZV07aWYoUz4wJiZzKEUsYikmJnMoTCxiKSYmKCF3Lmhhc093blByb3BlcnR5KEUpfHwhdy5oYXNPd25Qcm9wZXJ0eShMKXx8d1tFXSE9PXdbTF0pKXt3Lmhhc093blByb3BlcnR5KEwpJiYoTD13W0xdKSx3Lmhhc093blByb3BlcnR5KEUpJiYoRT13W0VdKSxMPStMLGhbRT0rRV09aFtMXT0hMDt2YXIgQz0iIjthLmxhYmVsJiZhLmxhYmVsW2VdJiYoQz1hLmxhYmVsW2VdKTt2YXIgUD1udWxsO0MmJnAuaGFzT3duUHJvcGVydHkoQykmJihQPXBbQ10pLGMucHVzaCh7cG9pbnROdW1iZXI6ZSxsYWJlbDpDLGNvbG9yOnU/YS5jb2xvcltlXTphLmNvbG9yLGN1c3RvbWRhdGE6Zj9hLmN1c3RvbWRhdGFbZV06YS5jdXN0b21kYXRhLGNvbmNlbnRyYXRpb25zY2FsZTpQLHNvdXJjZTpFLHRhcmdldDpMLHZhbHVlOitTfSksTS5zb3VyY2UucHVzaChFKSxNLnRhcmdldC5wdXNoKEwpfX12YXIgST1iK18ubGVuZ3RoLE89byhyLmNvbG9yKSx6PW8oci5jdXN0b21kYXRhKSxEPVtdO2ZvcihlPTA7ZTxJO2UrKylpZihoW2VdKXt2YXIgUj1yLmxhYmVsW2VdO0QucHVzaCh7Z3JvdXA6ZT5iLTEsY2hpbGRyZW5Ob2RlczpbXSxwb2ludE51bWJlcjplLGxhYmVsOlIsY29sb3I6Tz9yLmNvbG9yW2VdOnIuY29sb3IsY3VzdG9tZGF0YTp6P3IuY3VzdG9tZGF0YVtlXTpyLmN1c3RvbWRhdGF9KX12YXIgRj0hMTtyZXR1cm4gZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgYT1pLmluaXQyZEFycmF5KHQsMCksbz0wO288TWF0aC5taW4oZS5sZW5ndGgsci5sZW5ndGgpO28rKylpZihpLmlzSW5kZXgoZVtvXSx0KSYmaS5pc0luZGV4KHJbb10sdCkpe2lmKGVbb109PT1yW29dKXJldHVybiEwO2FbZVtvXV0ucHVzaChyW29dKX1yZXR1cm4gbihhKS5jb21wb25lbnRzLnNvbWUoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lmxlbmd0aD4xfSkpfShJLE0uc291cmNlLE0udGFyZ2V0KSYmKEY9ITApLHtjaXJjdWxhcjpGLGxpbmtzOmMsbm9kZXM6RCxncm91cHM6Xyxncm91cExvb2t1cDp3fX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1jKGUpO3JldHVybiBhKHtjaXJjdWxhcjpyLmNpcmN1bGFyLF9ub2RlczpyLm5vZGVzLF9saW5rczpyLmxpbmtzLF9ncm91cHM6ci5ncm91cHMsX2dyb3VwTG9va3VwOnIuZ3JvdXBMb29rdXB9KX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2NTEsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvZ3VwIjo3NzMsInN0cm9uZ2x5LWNvbm5lY3RlZC1jb21wb25lbnRzIjo1NjR9XSwxMTg0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bm9kZVRleHRPZmZzZXRIb3Jpem9udGFsOjQsbm9kZVRleHRPZmZzZXRWZXJ0aWNhbDozLG5vZGVQYWRBY3Jvc3M6MTAsc2Fua2V5SXRlcmF0aW9uczo1MCxmb3JjZUl0ZXJhdGlvbnM6NSxmb3JjZVRpY2tzUGVyRnJhbWU6MTAsZHVyYXRpb246NTAwLGVhc2U6ImxpbmVhciIsY246e3NhbmtleToic2Fua2V5IixzYW5rZXlMaW5rczoic2Fua2V5LWxpbmtzIixzYW5rZXlMaW5rOiJzYW5rZXktbGluayIsc2Fua2V5Tm9kZVNldDoic2Fua2V5LW5vZGUtc2V0IixzYW5rZXlOb2RlOiJzYW5rZXktbm9kZSIsbm9kZVJlY3Q6Im5vZGUtcmVjdCIsbm9kZUxhYmVsOiJub2RlLWxhYmVsIn19fSx7fV0sMTE4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89dCgidGlueWNvbG9yMiIpLHM9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuZGVmYXVsdHMsbD10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hvdmVybGFiZWxfZGVmYXVsdHMiKSxjPXQoIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiKSx1PXQoIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyIpO2Z1bmN0aW9uIGYodCxlKXtmdW5jdGlvbiByKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLmxpbmsuY29sb3JzY2FsZXMscixhKX1yKCJsYWJlbCIpLHIoImNtaW4iKSxyKCJjbWF4IikscigiY29sb3JzY2FsZSIpfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixoKXtmdW5jdGlvbiBwKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9dmFyIGQ9bi5leHRlbmREZWVwKGguaG92ZXJsYWJlbCx0LmhvdmVybGFiZWwpLG09dC5ub2RlLGc9Yy5uZXdDb250YWluZXIoZSwibm9kZSIpO2Z1bmN0aW9uIHYodCxlKXtyZXR1cm4gbi5jb2VyY2UobSxnLGkubm9kZSx0LGUpfXYoImxhYmVsIiksdigiZ3JvdXBzIiksdigieCIpLHYoInkiKSx2KCJwYWQiKSx2KCJ0aGlja25lc3MiKSx2KCJsaW5lLmNvbG9yIiksdigibGluZS53aWR0aCIpLHYoImhvdmVyaW5mbyIsdC5ob3ZlcmluZm8pLGwobSxnLHYsZCksdigiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciB5PWguY29sb3J3YXk7digiY29sb3IiLGcubGFiZWwubWFwKChmdW5jdGlvbih0LGUpe3JldHVybiBhLmFkZE9wYWNpdHkoZnVuY3Rpb24odCl7cmV0dXJuIHlbdCV5Lmxlbmd0aF19KGUpLC44KX0pKSksdigiY3VzdG9tZGF0YSIpO3ZhciB4PXQubGlua3x8e30sYj1jLm5ld0NvbnRhaW5lcihlLCJsaW5rIik7ZnVuY3Rpb24gXyh0LGUpe3JldHVybiBuLmNvZXJjZSh4LGIsaS5saW5rLHQsZSl9XygibGFiZWwiKSxfKCJzb3VyY2UiKSxfKCJ0YXJnZXQiKSxfKCJ2YWx1ZSIpLF8oImxpbmUuY29sb3IiKSxfKCJsaW5lLndpZHRoIiksXygiaG92ZXJpbmZvIix0LmhvdmVyaW5mbyksbCh4LGIsXyxkKSxfKCJob3ZlcnRlbXBsYXRlIik7dmFyIHcsVD1vKGgucGFwZXJfYmdjb2xvcikuZ2V0THVtaW5hbmNlKCk8LjMzMz8icmdiYSgyNTUsIDI1NSwgMjU1LCAwLjYpIjoicmdiYSgwLCAwLCAwLCAwLjIpIjtfKCJjb2xvciIsbi5yZXBlYXQoVCxiLnZhbHVlLmxlbmd0aCkpLF8oImN1c3RvbWRhdGEiKSx1KHgsYix7bmFtZToiY29sb3JzY2FsZXMiLGhhbmRsZUl0ZW1EZWZhdWx0czpmfSkscyhlLGgscCkscCgib3JpZW50YXRpb24iKSxwKCJ2YWx1ZWZvcm1hdCIpLHAoInZhbHVlc3VmZml4IiksZy54Lmxlbmd0aCYmZy55Lmxlbmd0aCYmKHc9ImZyZWVmb3JtIikscCgiYXJyYW5nZW1lbnQiLHcpLG4uY29lcmNlRm9udChwLCJ0ZXh0Zm9udCIsbi5leHRlbmRGbGF0KHt9LGguZm9udCkpLGUuX2xlbmd0aD1udWxsfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZngvaG92ZXJsYWJlbF9kZWZhdWx0cyI6Njc3LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSI6ODE2LCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiOjgyMiwiLi4vLi4vcGxvdHMvZG9tYWluIjo4NTUsIi4vYXR0cmlidXRlcyI6MTE4MSx0aW55Y29sb3IyOjU3Mn1dLDExODY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNhbmtleSIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxzZWxlY3RQb2ludHM6dCgiLi9zZWxlY3QuanMiKSxjYXRlZ29yaWVzOlsibm9PcGFjaXR5Il0sbWV0YTp7fX19LHsiLi9hdHRyaWJ1dGVzIjoxMTgxLCIuL2Jhc2VfcGxvdCI6MTE4MiwiLi9jYWxjIjoxMTgzLCIuL2RlZmF1bHRzIjoxMTg1LCIuL3Bsb3QiOjExODcsIi4vc2VsZWN0LmpzIjoxMTg5fV0sMTE4NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPWkubnVtYmVyRm9ybWF0LG89dCgiLi9yZW5kZXIiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxsPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxjPXQoIi4vY29uc3RhbnRzIikuY24sdT1pLl87ZnVuY3Rpb24gZih0KXtyZXR1cm4iIiE9PXR9ZnVuY3Rpb24gaCh0LGUpe3JldHVybiB0LmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5PT09ZS50cmFjZUlkfSkpfWZ1bmN0aW9uIHAodCxlKXtuLnNlbGVjdCh0KS5zZWxlY3QoInBhdGgiKS5zdHlsZSgiZmlsbC1vcGFjaXR5IixlKSxuLnNlbGVjdCh0KS5zZWxlY3QoInJlY3QiKS5zdHlsZSgiZmlsbC1vcGFjaXR5IixlKX1mdW5jdGlvbiBkKHQpe24uc2VsZWN0KHQpLnNlbGVjdCgidGV4dC5uYW1lIikuc3R5bGUoImZpbGwiLCJibGFjayIpfWZ1bmN0aW9uIG0odCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3JldHVybi0xIT09dC5ub2RlLnNvdXJjZUxpbmtzLmluZGV4T2YoZS5saW5rKXx8LTEhPT10Lm5vZGUudGFyZ2V0TGlua3MuaW5kZXhPZihlLmxpbmspfX1mdW5jdGlvbiBnKHQpe3JldHVybiBmdW5jdGlvbihlKXtyZXR1cm4tMSE9PWUubm9kZS5zb3VyY2VMaW5rcy5pbmRleE9mKHQubGluayl8fC0xIT09ZS5ub2RlLnRhcmdldExpbmtzLmluZGV4T2YodC5saW5rKX19ZnVuY3Rpb24gdih0LGUscil7ZSYmciYmaChyLGUpLnNlbGVjdEFsbCgiLiIrYy5zYW5rZXlMaW5rKS5maWx0ZXIobShlKSkuY2FsbCh4LmJpbmQoMCxlLHIsITEpKX1mdW5jdGlvbiB5KHQsZSxyKXtlJiZyJiZoKHIsZSkuc2VsZWN0QWxsKCIuIitjLnNhbmtleUxpbmspLmZpbHRlcihtKGUpKS5jYWxsKGIuYmluZCgwLGUsciwhMSkpfWZ1bmN0aW9uIHgodCxlLHIsbil7dmFyIGk9bi5kYXR1bSgpLmxpbmsubGFiZWw7bi5zdHlsZSgiZmlsbC1vcGFjaXR5IiwoZnVuY3Rpb24odCl7aWYoIXQubGluay5jb25jZW50cmF0aW9uc2NhbGUpcmV0dXJuLjR9KSksaSYmaChlLHQpLnNlbGVjdEFsbCgiLiIrYy5zYW5rZXlMaW5rKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmxpbmsubGFiZWw9PT1pfSkpLnN0eWxlKCJmaWxsLW9wYWNpdHkiLChmdW5jdGlvbih0KXtpZighdC5saW5rLmNvbmNlbnRyYXRpb25zY2FsZSlyZXR1cm4uNH0pKSxyJiZoKGUsdCkuc2VsZWN0QWxsKCIuIitjLnNhbmtleU5vZGUpLmZpbHRlcihnKHQpKS5jYWxsKHYpfWZ1bmN0aW9uIGIodCxlLHIsbil7dmFyIGk9bi5kYXR1bSgpLmxpbmsubGFiZWw7bi5zdHlsZSgiZmlsbC1vcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQudGlueUNvbG9yQWxwaGF9KSksaSYmaChlLHQpLnNlbGVjdEFsbCgiLiIrYy5zYW5rZXlMaW5rKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LmxpbmsubGFiZWw9PT1pfSkpLnN0eWxlKCJmaWxsLW9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JBbHBoYX0pKSxyJiZoKGUsdCkuc2VsZWN0QWxsKGMuc2Fua2V5Tm9kZSkuZmlsdGVyKGcodCkpLmNhbGwoeSl9ZnVuY3Rpb24gXyh0LGUpe3ZhciByPXQuaG92ZXJsYWJlbHx8e30sbj1pLm5lc3RlZFByb3BlcnR5KHIsZSkuZ2V0KCk7cmV0dXJuIUFycmF5LmlzQXJyYXkobikmJm59ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXQuX2Z1bGxMYXlvdXQsaT1yLl9wYXBlcixoPXIuX3NpemUsbT0wO208dC5fZnVsbERhdGEubGVuZ3RoO20rKylpZih0Ll9mdWxsRGF0YVttXS52aXNpYmxlJiZ0Ll9mdWxsRGF0YVttXS50eXBlPT09Yy5zYW5rZXkmJiF0Ll9mdWxsRGF0YVttXS5fdmlld0luaXRpYWwpe3ZhciBnPXQuX2Z1bGxEYXRhW21dLm5vZGU7dC5fZnVsbERhdGFbbV0uX3ZpZXdJbml0aWFsPXtub2RlOntncm91cHM6Zy5ncm91cHMuc2xpY2UoKSx4OmcueC5zbGljZSgpLHk6Zy55LnNsaWNlKCl9fX12YXIgdz11KHQsInNvdXJjZToiKSsiICIsVD11KHQsInRhcmdldDoiKSsiICIsaz11KHQsImNvbmNlbnRyYXRpb246IikrIiAiLEE9dSh0LCJpbmNvbWluZyBmbG93IGNvdW50OiIpKyIgIixNPXUodCwib3V0Z29pbmcgZmxvdyBjb3VudDoiKSsiICI7byh0LGksZSx7d2lkdGg6aC53LGhlaWdodDpoLmgsbWFyZ2luOnt0OmgudCxyOmgucixiOmguYixsOmgubH19LHtsaW5rRXZlbnRzOntob3ZlcjpmdW5jdGlvbihlLHIsaSl7ITEhPT10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZSYmKG4uc2VsZWN0KGUpLmNhbGwoeC5iaW5kKDAscixpLCEwKSksInNraXAiIT09ci5saW5rLnRyYWNlLmxpbmsuaG92ZXJpbmZvJiYoci5saW5rLmZ1bGxEYXRhPXIubGluay50cmFjZSx0LmVtaXQoInBsb3RseV9ob3ZlciIse2V2ZW50Om4uZXZlbnQscG9pbnRzOltyLmxpbmtdfSkpKX0sZm9sbG93OmZ1bmN0aW9uKGUsaSl7aWYoITEhPT10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZSl7dmFyIG89aS5saW5rLnRyYWNlLmxpbms7aWYoIm5vbmUiIT09by5ob3ZlcmluZm8mJiJza2lwIiE9PW8uaG92ZXJpbmZvKXtmb3IodmFyIGM9W10sdT0wLGg9MDtoPGkuZmxvdy5saW5rcy5sZW5ndGg7aCsrKXt2YXIgbT1pLmZsb3cubGlua3NbaF07aWYoImNsb3Nlc3QiIT09dC5fZnVsbExheW91dC5ob3Zlcm1vZGV8fGkubGluay5wb2ludE51bWJlcj09PW0ucG9pbnROdW1iZXIpe2kubGluay5wb2ludE51bWJlcj09PW0ucG9pbnROdW1iZXImJih1PWgpLG0uZnVsbERhdGE9bS50cmFjZSxvPWkubGluay50cmFjZS5saW5rO3ZhciBnPXkobSksdj17dmFsdWVMYWJlbDphKGkudmFsdWVGb3JtYXQpKG0udmFsdWUpK2kudmFsdWVTdWZmaXh9O2MucHVzaCh7eDpnWzBdLHk6Z1sxXSxuYW1lOnYudmFsdWVMYWJlbCx0ZXh0OlttLmxhYmVsfHwiIix3K20uc291cmNlLmxhYmVsLFQrbS50YXJnZXQubGFiZWwsbS5jb25jZW50cmF0aW9uc2NhbGU/aythKCIlMC4yZiIpKG0uZmxvdy5sYWJlbENvbmNlbnRyYXRpb24pOiIiXS5maWx0ZXIoZikuam9pbigiPGJyPiIpLGNvbG9yOl8obywiYmdjb2xvciIpfHxsLmFkZE9wYWNpdHkobS5jb2xvciwxKSxib3JkZXJDb2xvcjpfKG8sImJvcmRlcmNvbG9yIiksZm9udEZhbWlseTpfKG8sImZvbnQuZmFtaWx5IiksZm9udFNpemU6XyhvLCJmb250LnNpemUiKSxmb250Q29sb3I6XyhvLCJmb250LmNvbG9yIiksbmFtZUxlbmd0aDpfKG8sIm5hbWVsZW5ndGgiKSx0ZXh0QWxpZ246XyhvLCJhbGlnbiIpLGlkZWFsQWxpZ246bi5ldmVudC54PGdbMF0/InJpZ2h0IjoibGVmdCIsaG92ZXJ0ZW1wbGF0ZTpvLmhvdmVydGVtcGxhdGUsaG92ZXJ0ZW1wbGF0ZUxhYmVsczp2LGV2ZW50RGF0YTpbbV19KX19cy5sb25lSG92ZXIoYyx7Y29udGFpbmVyOnIuX2hvdmVybGF5ZXIubm9kZSgpLG91dGVyQ29udGFpbmVyOnIuX3BhcGVyLm5vZGUoKSxnZDp0LGFuY2hvckluZGV4OnV9KS5lYWNoKChmdW5jdGlvbigpe2kubGluay5jb25jZW50cmF0aW9uc2NhbGV8fHAodGhpcywuNjUpLGQodGhpcyl9KSl9fWZ1bmN0aW9uIHkodCl7dmFyIGUscjt0LmNpcmN1bGFyPyhlPSh0LmNpcmN1bGFyUGF0aERhdGEubGVmdElubmVyRXh0ZW50K3QuY2lyY3VsYXJQYXRoRGF0YS5yaWdodElubmVyRXh0ZW50KS8yLHI9dC5jaXJjdWxhclBhdGhEYXRhLnZlcnRpY2FsRnVsbEV4dGVudCk6KGU9KHQuc291cmNlLngxK3QudGFyZ2V0LngwKS8yLHI9KHQueTArdC55MSkvMik7dmFyIG49W2Uscl07cmV0dXJuInYiPT09dC50cmFjZS5vcmllbnRhdGlvbiYmbi5yZXZlcnNlKCksblswXSs9aS5wYXJlbnQudHJhbnNsYXRlWCxuWzFdKz1pLnBhcmVudC50cmFuc2xhdGVZLG59fSx1bmhvdmVyOmZ1bmN0aW9uKGUsaSxhKXshMSE9PXQuX2Z1bGxMYXlvdXQuaG92ZXJtb2RlJiYobi5zZWxlY3QoZSkuY2FsbChiLmJpbmQoMCxpLGEsITApKSwic2tpcCIhPT1pLmxpbmsudHJhY2UubGluay5ob3ZlcmluZm8mJihpLmxpbmsuZnVsbERhdGE9aS5saW5rLnRyYWNlLHQuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtldmVudDpuLmV2ZW50LHBvaW50czpbaS5saW5rXX0pKSxzLmxvbmVVbmhvdmVyKHIuX2hvdmVybGF5ZXIubm9kZSgpKSl9LHNlbGVjdDpmdW5jdGlvbihlLHIpe3ZhciBpPXIubGluaztpLm9yaWdpbmFsRXZlbnQ9bi5ldmVudCx0Ll9ob3ZlcmRhdGE9W2ldLHMuY2xpY2sodCx7dGFyZ2V0OiEwfSl9fSxub2RlRXZlbnRzOntob3ZlcjpmdW5jdGlvbihlLHIsaSl7ITEhPT10Ll9mdWxsTGF5b3V0LmhvdmVybW9kZSYmKG4uc2VsZWN0KGUpLmNhbGwodixyLGkpLCJza2lwIiE9PXIubm9kZS50cmFjZS5ub2RlLmhvdmVyaW5mbyYmKHIubm9kZS5mdWxsRGF0YT1yLm5vZGUudHJhY2UsdC5lbWl0KCJwbG90bHlfaG92ZXIiLHtldmVudDpuLmV2ZW50LHBvaW50czpbci5ub2RlXX0pKSl9LGZvbGxvdzpmdW5jdGlvbihlLGkpe2lmKCExIT09dC5fZnVsbExheW91dC5ob3Zlcm1vZGUpe3ZhciBvPWkubm9kZS50cmFjZS5ub2RlO2lmKCJub25lIiE9PW8uaG92ZXJpbmZvJiYic2tpcCIhPT1vLmhvdmVyaW5mbyl7dmFyIGw9bi5zZWxlY3QoZSkuc2VsZWN0KCIuIitjLm5vZGVSZWN0KSx1PXQuX2Z1bGxMYXlvdXQuX3BhcGVyZGl2Lm5vZGUoKS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSxoPWwubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLG09aC5sZWZ0LTItdS5sZWZ0LGc9aC5yaWdodCsyLXUubGVmdCx2PWgudG9wK2guaGVpZ2h0LzQtdS50b3AseT17dmFsdWVMYWJlbDphKGkudmFsdWVGb3JtYXQpKGkubm9kZS52YWx1ZSkraS52YWx1ZVN1ZmZpeH07aS5ub2RlLmZ1bGxEYXRhPWkubm9kZS50cmFjZSx0Ll9mdWxsTGF5b3V0Ll9jYWxjSW52ZXJzZVRyYW5zZm9ybSh0KTt2YXIgeD10Ll9mdWxsTGF5b3V0Ll9pbnZTY2FsZVgsYj10Ll9mdWxsTGF5b3V0Ll9pbnZTY2FsZVksdz1zLmxvbmVIb3Zlcih7eDA6eCptLHgxOngqZyx5OmIqdixuYW1lOmEoaS52YWx1ZUZvcm1hdCkoaS5ub2RlLnZhbHVlKStpLnZhbHVlU3VmZml4LHRleHQ6W2kubm9kZS5sYWJlbCxBK2kubm9kZS50YXJnZXRMaW5rcy5sZW5ndGgsTStpLm5vZGUuc291cmNlTGlua3MubGVuZ3RoXS5maWx0ZXIoZikuam9pbigiPGJyPiIpLGNvbG9yOl8obywiYmdjb2xvciIpfHxpLnRpbnlDb2xvckh1ZSxib3JkZXJDb2xvcjpfKG8sImJvcmRlcmNvbG9yIiksZm9udEZhbWlseTpfKG8sImZvbnQuZmFtaWx5IiksZm9udFNpemU6XyhvLCJmb250LnNpemUiKSxmb250Q29sb3I6XyhvLCJmb250LmNvbG9yIiksbmFtZUxlbmd0aDpfKG8sIm5hbWVsZW5ndGgiKSx0ZXh0QWxpZ246XyhvLCJhbGlnbiIpLGlkZWFsQWxpZ246ImxlZnQiLGhvdmVydGVtcGxhdGU6by5ob3ZlcnRlbXBsYXRlLGhvdmVydGVtcGxhdGVMYWJlbHM6eSxldmVudERhdGE6W2kubm9kZV19LHtjb250YWluZXI6ci5faG92ZXJsYXllci5ub2RlKCksb3V0ZXJDb250YWluZXI6ci5fcGFwZXIubm9kZSgpLGdkOnR9KTtwKHcsLjg1KSxkKHcpfX19LHVuaG92ZXI6ZnVuY3Rpb24oZSxpLGEpeyExIT09dC5fZnVsbExheW91dC5ob3Zlcm1vZGUmJihuLnNlbGVjdChlKS5jYWxsKHksaSxhKSwic2tpcCIhPT1pLm5vZGUudHJhY2Uubm9kZS5ob3ZlcmluZm8mJihpLm5vZGUuZnVsbERhdGE9aS5ub2RlLnRyYWNlLHQuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtldmVudDpuLmV2ZW50LHBvaW50czpbaS5ub2RlXX0pKSxzLmxvbmVVbmhvdmVyKHIuX2hvdmVybGF5ZXIubm9kZSgpKSl9LHNlbGVjdDpmdW5jdGlvbihlLHIsaSl7dmFyIGE9ci5ub2RlO2Eub3JpZ2luYWxFdmVudD1uLmV2ZW50LHQuX2hvdmVyZGF0YT1bYV0sbi5zZWxlY3QoZSkuY2FsbCh5LHIsaSkscy5jbGljayh0LHt0YXJnZXQ6ITB9KX19fSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9saWIiOjc3NiwiLi9jb25zdGFudHMiOjExODQsIi4vcmVuZGVyIjoxMTg4LCJAcGxvdGx5L2QzIjo1OH1dLDExODg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMtZm9yY2UiKSxpPXQoImQzLWludGVycG9sYXRlIikuaW50ZXJwb2xhdGVOdW1iZXIsYT10KCJAcGxvdGx5L2QzIiksbz10KCJAcGxvdGx5L2QzLXNhbmtleSIpLHM9dCgiQHBsb3RseS9kMy1zYW5rZXktY2lyY3VsYXIiKSxsPXQoIi4vY29uc3RhbnRzIiksYz10KCJ0aW55Y29sb3IyIiksdT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksZj10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxoPXQoIi4uLy4uL2xpYiIpLHA9aC5zdHJUcmFuc2xhdGUsZD1oLnN0clJvdGF0ZSxtPXQoIi4uLy4uL2xpYi9ndXAiKSxnPW0ua2V5RnVuLHY9bS5yZXBlYXQseT1tLnVud3JhcCx4PXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGI9dCgiLi4vLi4vcmVnaXN0cnkiKSxfPXQoIi4uLy4uL2NvbnN0YW50cy9hbGlnbm1lbnQiKSx3PV8uQ0FQX1NISUZULFQ9Xy5MSU5FX1NQQUNJTkc7ZnVuY3Rpb24gayh0LGUscil7dmFyIG4saT15KGUpLGE9aS50cmFjZSx1PWEuZG9tYWluLGY9ImgiPT09YS5vcmllbnRhdGlvbixwPWEubm9kZS5wYWQsZD1hLm5vZGUudGhpY2tuZXNzLG09dC53aWR0aCoodS54WzFdLXUueFswXSksZz10LmhlaWdodCoodS55WzFdLXUueVswXSksdj1pLl9ub2Rlcyx4PWkuX2xpbmtzLGI9aS5jaXJjdWxhcjsobj1iP3Muc2Fua2V5Q2lyY3VsYXIoKS5jaXJjdWxhckxpbmtHYXAoMCk6by5zYW5rZXkoKSkuaXRlcmF0aW9ucyhsLnNhbmtleUl0ZXJhdGlvbnMpLnNpemUoZj9bbSxnXTpbZyxtXSkubm9kZVdpZHRoKGQpLm5vZGVQYWRkaW5nKHApLm5vZGVJZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucG9pbnROdW1iZXJ9KSkubm9kZXModikubGlua3MoeCk7dmFyIF8sdyxULGs9bigpO2Zvcih2YXIgQSBpbiBuLm5vZGVQYWRkaW5nKCk8cCYmaC53YXJuKCJub2RlLnBhZCB3YXMgcmVkdWNlZCB0byAiLG4ubm9kZVBhZGRpbmcoKSwiIHRvIGZpdCB3aXRoaW4gdGhlIGZpZ3VyZS4iKSxpLl9ncm91cExvb2t1cCl7dmFyIE0sUz1wYXJzZUludChpLl9ncm91cExvb2t1cFtBXSk7Zm9yKF89MDtfPGsubm9kZXMubGVuZ3RoO18rKylpZihrLm5vZGVzW19dLnBvaW50TnVtYmVyPT09Uyl7TT1rLm5vZGVzW19dO2JyZWFrfWlmKE0pe3ZhciBFPXtwb2ludE51bWJlcjpwYXJzZUludChBKSx4MDpNLngwLHgxOk0ueDEseTA6TS55MCx5MTpNLnkxLHBhcnRPZkdyb3VwOiEwLHNvdXJjZUxpbmtzOltdLHRhcmdldExpbmtzOltdfTtrLm5vZGVzLnVuc2hpZnQoRSksTS5jaGlsZHJlbk5vZGVzLnVuc2hpZnQoRSl9fWlmKGZ1bmN0aW9uKCl7Zm9yKF89MDtfPGsubm9kZXMubGVuZ3RoO18rKyl7dmFyIHQsZSxyPWsubm9kZXNbX10sbj17fTtmb3Iodz0wO3c8ci50YXJnZXRMaW5rcy5sZW5ndGg7dysrKXQ9KGU9ci50YXJnZXRMaW5rc1t3XSkuc291cmNlLnBvaW50TnVtYmVyKyI6IitlLnRhcmdldC5wb2ludE51bWJlcixuLmhhc093blByb3BlcnR5KHQpfHwoblt0XT1bXSksblt0XS5wdXNoKGUpO3ZhciBpPU9iamVjdC5rZXlzKG4pO2Zvcih3PTA7dzxpLmxlbmd0aDt3Kyspe3ZhciBhPW5bdD1pW3ddXSxvPTAscz17fTtmb3IoVD0wO1Q8YS5sZW5ndGg7VCsrKXNbKGU9YVtUXSkubGFiZWxdfHwoc1tlLmxhYmVsXT0wKSxzW2UubGFiZWxdKz1lLnZhbHVlLG8rPWUudmFsdWU7Zm9yKFQ9MDtUPGEubGVuZ3RoO1QrKykoZT1hW1RdKS5mbG93PXt2YWx1ZTpvLGxhYmVsQ29uY2VudHJhdGlvbjpzW2UubGFiZWxdL28sY29uY2VudHJhdGlvbjplLnZhbHVlL28sbGlua3M6YX0sZS5jb25jZW50cmF0aW9uc2NhbGUmJihlLmNvbG9yPWMoZS5jb25jZW50cmF0aW9uc2NhbGUoZS5mbG93LmxhYmVsQ29uY2VudHJhdGlvbikpKX12YXIgbD0wO2Zvcih3PTA7dzxyLnNvdXJjZUxpbmtzLmxlbmd0aDt3KyspbCs9ci5zb3VyY2VMaW5rc1t3XS52YWx1ZTtmb3Iodz0wO3c8ci5zb3VyY2VMaW5rcy5sZW5ndGg7dysrKShlPXIuc291cmNlTGlua3Nbd10pLmNvbmNlbnRyYXRpb25PdXQ9ZS52YWx1ZS9sO3ZhciB1PTA7Zm9yKHc9MDt3PHIudGFyZ2V0TGlua3MubGVuZ3RoO3crKyl1Kz1yLnRhcmdldExpbmtzW3ddLnZhbHVlO2Zvcih3PTA7dzxyLnRhcmdldExpbmtzLmxlbmd0aDt3KyspKGU9ci50YXJnZXRMaW5rc1t3XSkuY29uY2VucmF0aW9uSW49ZS52YWx1ZS91fX0oKSxhLm5vZGUueC5sZW5ndGgmJmEubm9kZS55Lmxlbmd0aCl7Zm9yKF89MDtfPE1hdGgubWluKGEubm9kZS54Lmxlbmd0aCxhLm5vZGUueS5sZW5ndGgsay5ub2Rlcy5sZW5ndGgpO18rKylpZihhLm5vZGUueFtfXSYmYS5ub2RlLnlbX10pe3ZhciBMPVthLm5vZGUueFtfXSptLGEubm9kZS55W19dKmddO2subm9kZXNbX10ueDA9TFswXS1kLzIsay5ub2Rlc1tfXS54MT1MWzBdK2QvMjt2YXIgQz1rLm5vZGVzW19dLnkxLWsubm9kZXNbX10ueTA7ay5ub2Rlc1tfXS55MD1MWzFdLUMvMixrLm5vZGVzW19dLnkxPUxbMV0rQy8yfWlmKCJzbmFwIj09PWEuYXJyYW5nZW1lbnQpIWZ1bmN0aW9uKHQpe3QuZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGUscixuLGk9MCxhPXQubGVuZ3RoO2Zvcih0LnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQueTAtZS55MH0pKSxuPTA7bjxhOysrbikoZT10W25dKS55MD49aXx8KHI9aS1lLnkwKT4xZS02JiYoZS55MCs9cixlLnkxKz1yKSxpPWUueTErcH0pKX0oZnVuY3Rpb24odCl7dmFyIGUscixuPXQubWFwKChmdW5jdGlvbih0LGUpe3JldHVybnt4MDp0LngwLGluZGV4OmV9fSkpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQueDAtZS54MH0pKSxpPVtdLGE9LTEsbz0tMS8wO2ZvcihfPTA7XzxuLmxlbmd0aDtfKyspe3ZhciBzPXRbbltfXS5pbmRleF07cy54MD5vK2QmJihhKz0xLGU9cy54MCksbz1zLngwLGlbYV18fChpW2FdPVtdKSxpW2FdLnB1c2gocykscj1lLXMueDAscy54MCs9cixzLngxKz1yfXJldHVybiBpfSh2PWsubm9kZXMpKTtuLnVwZGF0ZShrKX1yZXR1cm57Y2lyY3VsYXI6YixrZXk6cix0cmFjZTphLGd1aWQ6aC5yYW5kc3RyKCksaG9yaXpvbnRhbDpmLHdpZHRoOm0saGVpZ2h0Omcsbm9kZVBhZDphLm5vZGUucGFkLG5vZGVMaW5lQ29sb3I6YS5ub2RlLmxpbmUuY29sb3Isbm9kZUxpbmVXaWR0aDphLm5vZGUubGluZS53aWR0aCxsaW5rTGluZUNvbG9yOmEubGluay5saW5lLmNvbG9yLGxpbmtMaW5lV2lkdGg6YS5saW5rLmxpbmUud2lkdGgsdmFsdWVGb3JtYXQ6YS52YWx1ZWZvcm1hdCx2YWx1ZVN1ZmZpeDphLnZhbHVlc3VmZml4LHRleHRGb250OmEudGV4dGZvbnQsdHJhbnNsYXRlWDp1LnhbMF0qdC53aWR0aCt0Lm1hcmdpbi5sLHRyYW5zbGF0ZVk6dC5oZWlnaHQtdS55WzFdKnQuaGVpZ2h0K3QubWFyZ2luLnQsZHJhZ1BhcmFsbGVsOmY/ZzptLGRyYWdQZXJwZW5kaWN1bGFyOmY/bTpnLGFycmFuZ2VtZW50OmEuYXJyYW5nZW1lbnQsc2Fua2V5Om4sZ3JhcGg6ayxmb3JjZUxheW91dHM6e30saW50ZXJhY3Rpb25TdGF0ZTp7ZHJhZ0luUHJvZ3Jlc3M6ITEsaG92ZXJlZDohMX19fWZ1bmN0aW9uIEEodCxlLHIpe3ZhciBuPWMoZS5jb2xvciksaT1lLnNvdXJjZS5sYWJlbCsifCIrZS50YXJnZXQubGFiZWwrIl9fIityO3JldHVybiBlLnRyYWNlPXQudHJhY2UsZS5jdXJ2ZU51bWJlcj10LnRyYWNlLmluZGV4LHtjaXJjdWxhcjp0LmNpcmN1bGFyLGtleTppLHRyYWNlSWQ6dC5rZXkscG9pbnROdW1iZXI6ZS5wb2ludE51bWJlcixsaW5rOmUsdGlueUNvbG9ySHVlOnUudGlueVJHQihuKSx0aW55Q29sb3JBbHBoYTpuLmdldEFscGhhKCksbGlua1BhdGg6TSxsaW5rTGluZUNvbG9yOnQubGlua0xpbmVDb2xvcixsaW5rTGluZVdpZHRoOnQubGlua0xpbmVXaWR0aCx2YWx1ZUZvcm1hdDp0LnZhbHVlRm9ybWF0LHZhbHVlU3VmZml4OnQudmFsdWVTdWZmaXgsc2Fua2V5OnQuc2Fua2V5LHBhcmVudDp0LGludGVyYWN0aW9uU3RhdGU6dC5pbnRlcmFjdGlvblN0YXRlLGZsb3c6ZS5mbG93fX1mdW5jdGlvbiBNKCl7cmV0dXJuIGZ1bmN0aW9uKHQpe2lmKHQubGluay5jaXJjdWxhcilyZXR1cm4gZT10Lmxpbmsscj1lLndpZHRoLzIsbj1lLmNpcmN1bGFyUGF0aERhdGEsInRvcCI9PT1lLmNpcmN1bGFyTGlua1R5cGU/Ik0gIituLnRhcmdldFgrIiAiKyhuLnRhcmdldFkrcikrIiBMIituLnJpZ2h0SW5uZXJFeHRlbnQrIiAiKyhuLnRhcmdldFkrcikrIkEiKyhuLnJpZ2h0TGFyZ2VBcmNSYWRpdXMrcikrIiAiKyhuLnJpZ2h0U21hbGxBcmNSYWRpdXMrcikrIiAwIDAgMSAiKyhuLnJpZ2h0RnVsbEV4dGVudC1yKSsiICIrKG4udGFyZ2V0WS1uLnJpZ2h0U21hbGxBcmNSYWRpdXMpKyJMIisobi5yaWdodEZ1bGxFeHRlbnQtcikrIiAiK24udmVydGljYWxSaWdodElubmVyRXh0ZW50KyJBIisobi5yaWdodExhcmdlQXJjUmFkaXVzK3IpKyIgIisobi5yaWdodExhcmdlQXJjUmFkaXVzK3IpKyIgMCAwIDEgIituLnJpZ2h0SW5uZXJFeHRlbnQrIiAiKyhuLnZlcnRpY2FsRnVsbEV4dGVudC1yKSsiTCIrbi5sZWZ0SW5uZXJFeHRlbnQrIiAiKyhuLnZlcnRpY2FsRnVsbEV4dGVudC1yKSsiQSIrKG4ubGVmdExhcmdlQXJjUmFkaXVzK3IpKyIgIisobi5sZWZ0TGFyZ2VBcmNSYWRpdXMrcikrIiAwIDAgMSAiKyhuLmxlZnRGdWxsRXh0ZW50K3IpKyIgIituLnZlcnRpY2FsTGVmdElubmVyRXh0ZW50KyJMIisobi5sZWZ0RnVsbEV4dGVudCtyKSsiICIrKG4uc291cmNlWS1uLmxlZnRTbWFsbEFyY1JhZGl1cykrIkEiKyhuLmxlZnRMYXJnZUFyY1JhZGl1cytyKSsiICIrKG4ubGVmdFNtYWxsQXJjUmFkaXVzK3IpKyIgMCAwIDEgIituLmxlZnRJbm5lckV4dGVudCsiICIrKG4uc291cmNlWStyKSsiTCIrbi5zb3VyY2VYKyIgIisobi5zb3VyY2VZK3IpKyJMIituLnNvdXJjZVgrIiAiKyhuLnNvdXJjZVktcikrIkwiK24ubGVmdElubmVyRXh0ZW50KyIgIisobi5zb3VyY2VZLXIpKyJBIisobi5sZWZ0TGFyZ2VBcmNSYWRpdXMtcikrIiAiKyhuLmxlZnRTbWFsbEFyY1JhZGl1cy1yKSsiIDAgMCAwICIrKG4ubGVmdEZ1bGxFeHRlbnQtcikrIiAiKyhuLnNvdXJjZVktbi5sZWZ0U21hbGxBcmNSYWRpdXMpKyJMIisobi5sZWZ0RnVsbEV4dGVudC1yKSsiICIrbi52ZXJ0aWNhbExlZnRJbm5lckV4dGVudCsiQSIrKG4ubGVmdExhcmdlQXJjUmFkaXVzLXIpKyIgIisobi5sZWZ0TGFyZ2VBcmNSYWRpdXMtcikrIiAwIDAgMCAiK24ubGVmdElubmVyRXh0ZW50KyIgIisobi52ZXJ0aWNhbEZ1bGxFeHRlbnQrcikrIkwiK24ucmlnaHRJbm5lckV4dGVudCsiICIrKG4udmVydGljYWxGdWxsRXh0ZW50K3IpKyJBIisobi5yaWdodExhcmdlQXJjUmFkaXVzLXIpKyIgIisobi5yaWdodExhcmdlQXJjUmFkaXVzLXIpKyIgMCAwIDAgIisobi5yaWdodEZ1bGxFeHRlbnQrcikrIiAiK24udmVydGljYWxSaWdodElubmVyRXh0ZW50KyJMIisobi5yaWdodEZ1bGxFeHRlbnQrcikrIiAiKyhuLnRhcmdldFktbi5yaWdodFNtYWxsQXJjUmFkaXVzKSsiQSIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cy1yKSsiICIrKG4ucmlnaHRTbWFsbEFyY1JhZGl1cy1yKSsiIDAgMCAwICIrbi5yaWdodElubmVyRXh0ZW50KyIgIisobi50YXJnZXRZLXIpKyJMIituLnRhcmdldFgrIiAiKyhuLnRhcmdldFktcikrIloiOiJNICIrbi50YXJnZXRYKyIgIisobi50YXJnZXRZLXIpKyIgTCIrbi5yaWdodElubmVyRXh0ZW50KyIgIisobi50YXJnZXRZLXIpKyJBIisobi5yaWdodExhcmdlQXJjUmFkaXVzK3IpKyIgIisobi5yaWdodFNtYWxsQXJjUmFkaXVzK3IpKyIgMCAwIDAgIisobi5yaWdodEZ1bGxFeHRlbnQtcikrIiAiKyhuLnRhcmdldFkrbi5yaWdodFNtYWxsQXJjUmFkaXVzKSsiTCIrKG4ucmlnaHRGdWxsRXh0ZW50LXIpKyIgIituLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudCsiQSIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cytyKSsiICIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cytyKSsiIDAgMCAwICIrbi5yaWdodElubmVyRXh0ZW50KyIgIisobi52ZXJ0aWNhbEZ1bGxFeHRlbnQrcikrIkwiK24ubGVmdElubmVyRXh0ZW50KyIgIisobi52ZXJ0aWNhbEZ1bGxFeHRlbnQrcikrIkEiKyhuLmxlZnRMYXJnZUFyY1JhZGl1cytyKSsiICIrKG4ubGVmdExhcmdlQXJjUmFkaXVzK3IpKyIgMCAwIDAgIisobi5sZWZ0RnVsbEV4dGVudCtyKSsiICIrbi52ZXJ0aWNhbExlZnRJbm5lckV4dGVudCsiTCIrKG4ubGVmdEZ1bGxFeHRlbnQrcikrIiAiKyhuLnNvdXJjZVkrbi5sZWZ0U21hbGxBcmNSYWRpdXMpKyJBIisobi5sZWZ0TGFyZ2VBcmNSYWRpdXMrcikrIiAiKyhuLmxlZnRTbWFsbEFyY1JhZGl1cytyKSsiIDAgMCAwICIrbi5sZWZ0SW5uZXJFeHRlbnQrIiAiKyhuLnNvdXJjZVktcikrIkwiK24uc291cmNlWCsiICIrKG4uc291cmNlWS1yKSsiTCIrbi5zb3VyY2VYKyIgIisobi5zb3VyY2VZK3IpKyJMIituLmxlZnRJbm5lckV4dGVudCsiICIrKG4uc291cmNlWStyKSsiQSIrKG4ubGVmdExhcmdlQXJjUmFkaXVzLXIpKyIgIisobi5sZWZ0U21hbGxBcmNSYWRpdXMtcikrIiAwIDAgMSAiKyhuLmxlZnRGdWxsRXh0ZW50LXIpKyIgIisobi5zb3VyY2VZK24ubGVmdFNtYWxsQXJjUmFkaXVzKSsiTCIrKG4ubGVmdEZ1bGxFeHRlbnQtcikrIiAiK24udmVydGljYWxMZWZ0SW5uZXJFeHRlbnQrIkEiKyhuLmxlZnRMYXJnZUFyY1JhZGl1cy1yKSsiICIrKG4ubGVmdExhcmdlQXJjUmFkaXVzLXIpKyIgMCAwIDEgIituLmxlZnRJbm5lckV4dGVudCsiICIrKG4udmVydGljYWxGdWxsRXh0ZW50LXIpKyJMIituLnJpZ2h0SW5uZXJFeHRlbnQrIiAiKyhuLnZlcnRpY2FsRnVsbEV4dGVudC1yKSsiQSIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cy1yKSsiICIrKG4ucmlnaHRMYXJnZUFyY1JhZGl1cy1yKSsiIDAgMCAxICIrKG4ucmlnaHRGdWxsRXh0ZW50K3IpKyIgIituLnZlcnRpY2FsUmlnaHRJbm5lckV4dGVudCsiTCIrKG4ucmlnaHRGdWxsRXh0ZW50K3IpKyIgIisobi50YXJnZXRZK24ucmlnaHRTbWFsbEFyY1JhZGl1cykrIkEiKyhuLnJpZ2h0TGFyZ2VBcmNSYWRpdXMtcikrIiAiKyhuLnJpZ2h0U21hbGxBcmNSYWRpdXMtcikrIiAwIDAgMSAiK24ucmlnaHRJbm5lckV4dGVudCsiICIrKG4udGFyZ2V0WStyKSsiTCIrbi50YXJnZXRYKyIgIisobi50YXJnZXRZK3IpKyJaIjt2YXIgZSxyLG4sYT10Lmxpbmsuc291cmNlLngxLG89dC5saW5rLnRhcmdldC54MCxzPWkoYSxvKSxsPXMoLjUpLGM9cyguNSksdT10LmxpbmsueTAtdC5saW5rLndpZHRoLzIsZj10LmxpbmsueTArdC5saW5rLndpZHRoLzIsaD10LmxpbmsueTEtdC5saW5rLndpZHRoLzIscD10LmxpbmsueTErdC5saW5rLndpZHRoLzI7cmV0dXJuIk0iK2ErIiwiK3UrIkMiK2wrIiwiK3UrIiAiK2MrIiwiK2grIiAiK28rIiwiK2grIkwiK28rIiwiK3ArIkMiK2MrIiwiK3ArIiAiK2wrIiwiK2YrIiAiK2ErIiwiK2YrIloifX1mdW5jdGlvbiBTKHQsZSl7dmFyIHI9YyhlLmNvbG9yKSxuPWwubm9kZVBhZEFjcm9zcyxpPXQubm9kZVBhZC8yO2UuZHg9ZS54MS1lLngwLGUuZHk9ZS55MS1lLnkwO3ZhciBhPWUuZHgsbz1NYXRoLm1heCguNSxlLmR5KSxzPSJub2RlXyIrZS5wb2ludE51bWJlcjtyZXR1cm4gZS5ncm91cCYmKHM9aC5yYW5kc3RyKCkpLGUudHJhY2U9dC50cmFjZSxlLmN1cnZlTnVtYmVyPXQudHJhY2UuaW5kZXgse2luZGV4OmUucG9pbnROdW1iZXIsa2V5OnMscGFydE9mR3JvdXA6ZS5wYXJ0T2ZHcm91cHx8ITEsZ3JvdXA6ZS5ncm91cCx0cmFjZUlkOnQua2V5LHRyYWNlOnQudHJhY2Usbm9kZTplLG5vZGVQYWQ6dC5ub2RlUGFkLG5vZGVMaW5lQ29sb3I6dC5ub2RlTGluZUNvbG9yLG5vZGVMaW5lV2lkdGg6dC5ub2RlTGluZVdpZHRoLHRleHRGb250OnQudGV4dEZvbnQsc2l6ZTp0Lmhvcml6b250YWw/dC5oZWlnaHQ6dC53aWR0aCx2aXNpYmxlV2lkdGg6TWF0aC5jZWlsKGEpLHZpc2libGVIZWlnaHQ6byx6b25lWDotbix6b25lWTotaSx6b25lV2lkdGg6YSsyKm4sem9uZUhlaWdodDpvKzIqaSxsYWJlbFk6dC5ob3Jpem9udGFsP2UuZHkvMisxOmUuZHgvMisxLGxlZnQ6MT09PWUub3JpZ2luYWxMYXllcixzaXplQWNyb3NzOnQud2lkdGgsZm9yY2VMYXlvdXRzOnQuZm9yY2VMYXlvdXRzLGhvcml6b250YWw6dC5ob3Jpem9udGFsLGRhcmtCYWNrZ3JvdW5kOnIuZ2V0QnJpZ2h0bmVzcygpPD0xMjgsdGlueUNvbG9ySHVlOnUudGlueVJHQihyKSx0aW55Q29sb3JBbHBoYTpyLmdldEFscGhhKCksdmFsdWVGb3JtYXQ6dC52YWx1ZUZvcm1hdCx2YWx1ZVN1ZmZpeDp0LnZhbHVlU3VmZml4LHNhbmtleTp0LnNhbmtleSxncmFwaDp0LmdyYXBoLGFycmFuZ2VtZW50OnQuYXJyYW5nZW1lbnQsdW5pcXVlTm9kZUxhYmVsUGF0aElkOlt0Lmd1aWQsdC5rZXksc10uam9pbigiXyIpLGludGVyYWN0aW9uU3RhdGU6dC5pbnRlcmFjdGlvblN0YXRlLGZpZ3VyZTp0fX1mdW5jdGlvbiBFKHQpe3QuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIHAodC5ub2RlLngwLnRvRml4ZWQoMyksdC5ub2RlLnkwLnRvRml4ZWQoMykpfSkpfWZ1bmN0aW9uIEwodCl7dC5jYWxsKEUpfWZ1bmN0aW9uIEModCxlKXt0LmNhbGwoTCksZS5hdHRyKCJkIixNKCkpfWZ1bmN0aW9uIFAodCl7dC5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGUueDEtdC5ub2RlLngwfSkpLmF0dHIoImhlaWdodCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnZpc2libGVIZWlnaHR9KSl9ZnVuY3Rpb24gSSh0KXtyZXR1cm4gdC5saW5rLndpZHRoPjF8fHQubGlua0xpbmVXaWR0aD4wfWZ1bmN0aW9uIE8odCl7cmV0dXJuIHAodC50cmFuc2xhdGVYLHQudHJhbnNsYXRlWSkrKHQuaG9yaXpvbnRhbD8ibWF0cml4KDEgMCAwIDEgMCAwKSI6Im1hdHJpeCgwIDEgMSAwIDAgMCkiKX1mdW5jdGlvbiB6KHQsZSxyKXt0Lm9uKCIuYmFzaWMiLG51bGwpLm9uKCJtb3VzZW92ZXIuYmFzaWMiLChmdW5jdGlvbih0KXt0LmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3N8fHQucGFydE9mR3JvdXB8fChyLmhvdmVyKHRoaXMsdCxlKSx0LmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZD1bdGhpcyx0XSl9KSkub24oIm1vdXNlbW92ZS5iYXNpYyIsKGZ1bmN0aW9uKHQpe3QuaW50ZXJhY3Rpb25TdGF0ZS5kcmFnSW5Qcm9ncmVzc3x8dC5wYXJ0T2ZHcm91cHx8KHIuZm9sbG93KHRoaXMsdCksdC5pbnRlcmFjdGlvblN0YXRlLmhvdmVyZWQ9W3RoaXMsdF0pfSkpLm9uKCJtb3VzZW91dC5iYXNpYyIsKGZ1bmN0aW9uKHQpe3QuaW50ZXJhY3Rpb25TdGF0ZS5kcmFnSW5Qcm9ncmVzc3x8dC5wYXJ0T2ZHcm91cHx8KHIudW5ob3Zlcih0aGlzLHQsZSksdC5pbnRlcmFjdGlvblN0YXRlLmhvdmVyZWQ9ITEpfSkpLm9uKCJjbGljay5iYXNpYyIsKGZ1bmN0aW9uKHQpe3QuaW50ZXJhY3Rpb25TdGF0ZS5ob3ZlcmVkJiYoci51bmhvdmVyKHRoaXMsdCxlKSx0LmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZD0hMSksdC5pbnRlcmFjdGlvblN0YXRlLmRyYWdJblByb2dyZXNzfHx0LnBhcnRPZkdyb3VwfHxyLnNlbGVjdCh0aGlzLHQsZSl9KSl9ZnVuY3Rpb24gRCh0LGUscixpKXt2YXIgbz1hLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oKGZ1bmN0aW9uKHQpe3JldHVybnt4OnQubm9kZS54MCt0LnZpc2libGVXaWR0aC8yLHk6dC5ub2RlLnkwK3QudmlzaWJsZUhlaWdodC8yfX0pKS5vbigiZHJhZ3N0YXJ0IiwoZnVuY3Rpb24oYSl7aWYoImZpeGVkIiE9PWEuYXJyYW5nZW1lbnQmJihoLmVuc3VyZVNpbmdsZShpLl9mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIsImciLCJkcmFnY292ZXIiLChmdW5jdGlvbih0KXtpLl9mdWxsTGF5b3V0Ll9kcmFnQ292ZXI9dH0pKSxoLnJhaXNlVG9Ub3AodGhpcyksYS5pbnRlcmFjdGlvblN0YXRlLmRyYWdJblByb2dyZXNzPWEubm9kZSxGKGEubm9kZSksYS5pbnRlcmFjdGlvblN0YXRlLmhvdmVyZWQmJihyLm5vZGVFdmVudHMudW5ob3Zlci5hcHBseSgwLGEuaW50ZXJhY3Rpb25TdGF0ZS5ob3ZlcmVkKSxhLmludGVyYWN0aW9uU3RhdGUuaG92ZXJlZD0hMSksInNuYXAiPT09YS5hcnJhbmdlbWVudCkpe3ZhciBvPWEudHJhY2VJZCsifCIrYS5rZXk7YS5mb3JjZUxheW91dHNbb10/YS5mb3JjZUxheW91dHNbb10uYWxwaGEoMSk6ZnVuY3Rpb24odCxlLHIsaSl7IWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ueT0odFtlXS55MCt0W2VdLnkxKS8yLHRbZV0ueD0odFtlXS54MCt0W2VdLngxKS8yfShyLmdyYXBoLm5vZGVzKTt2YXIgYT1yLmdyYXBoLm5vZGVzLmZpbHRlcigoZnVuY3Rpb24odCl7cmV0dXJuIHQub3JpZ2luYWxYPT09ci5ub2RlLm9yaWdpbmFsWH0pKS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LnBhcnRPZkdyb3VwfSkpO3IuZm9yY2VMYXlvdXRzW2VdPW4uZm9yY2VTaW11bGF0aW9uKGEpLmFscGhhRGVjYXkoMCkuZm9yY2UoImNvbGxpZGUiLG4uZm9yY2VDb2xsaWRlKCkucmFkaXVzKChmdW5jdGlvbih0KXtyZXR1cm4gdC5keS8yK3Iubm9kZVBhZC8yfSkpLnN0cmVuZ3RoKDEpLml0ZXJhdGlvbnMobC5mb3JjZUl0ZXJhdGlvbnMpKS5mb3JjZSgiY29uc3RyYWluIixmdW5jdGlvbih0LGUscixuKXtyZXR1cm4gZnVuY3Rpb24oKXtmb3IodmFyIHQ9MCxpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBhPXJbaV07YT09PW4uaW50ZXJhY3Rpb25TdGF0ZS5kcmFnSW5Qcm9ncmVzcz8oYS54PWEubGFzdERyYWdnZWRYLGEueT1hLmxhc3REcmFnZ2VkWSk6KGEudng9KGEub3JpZ2luYWxYLWEueCkvbC5mb3JjZVRpY2tzUGVyRnJhbWUsYS55PU1hdGgubWluKG4uc2l6ZS1hLmR5LzIsTWF0aC5tYXgoYS5keS8yLGEueSkpKSx0PU1hdGgubWF4KHQsTWF0aC5hYnMoYS52eCksTWF0aC5hYnMoYS52eSkpfSFuLmludGVyYWN0aW9uU3RhdGUuZHJhZ0luUHJvZ3Jlc3MmJnQ8LjEmJm4uZm9yY2VMYXlvdXRzW2VdLmFscGhhKCk+MCYmbi5mb3JjZUxheW91dHNbZV0uYWxwaGEoMCl9fSgwLGUsYSxyKSkuc3RvcCgpfSgwLG8sYSksZnVuY3Rpb24odCxlLHIsbixpKXt3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKChmdW5jdGlvbiBhKCl7dmFyIG87Zm9yKG89MDtvPGwuZm9yY2VUaWNrc1BlckZyYW1lO28rKylyLmZvcmNlTGF5b3V0c1tuXS50aWNrKCk7aWYoZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspdFtlXS55MD10W2VdLnktdFtlXS5keS8yLHRbZV0ueTE9dFtlXS55MCt0W2VdLmR5LHRbZV0ueDA9dFtlXS54LXRbZV0uZHgvMix0W2VdLngxPXRbZV0ueDArdFtlXS5keH0oci5ncmFwaC5ub2Rlcyksci5zYW5rZXkudXBkYXRlKHIuZ3JhcGgpLEModC5maWx0ZXIoQihyKSksZSksci5mb3JjZUxheW91dHNbbl0uYWxwaGEoKT4wKXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoYSk7ZWxzZXt2YXIgcz1yLm5vZGUub3JpZ2luYWxYO3Iubm9kZS54MD1zLXIudmlzaWJsZVdpZHRoLzIsci5ub2RlLngxPXMrci52aXNpYmxlV2lkdGgvMixSKHIsaSl9fSkpfSh0LGUsYSxvLGkpfX0pKS5vbigiZHJhZyIsKGZ1bmN0aW9uKHIpe2lmKCJmaXhlZCIhPT1yLmFycmFuZ2VtZW50KXt2YXIgbj1hLmV2ZW50LngsaT1hLmV2ZW50Lnk7InNuYXAiPT09ci5hcnJhbmdlbWVudD8oci5ub2RlLngwPW4tci52aXNpYmxlV2lkdGgvMixyLm5vZGUueDE9bityLnZpc2libGVXaWR0aC8yLHIubm9kZS55MD1pLXIudmlzaWJsZUhlaWdodC8yLHIubm9kZS55MT1pK3IudmlzaWJsZUhlaWdodC8yKTooImZyZWVmb3JtIj09PXIuYXJyYW5nZW1lbnQmJihyLm5vZGUueDA9bi1yLnZpc2libGVXaWR0aC8yLHIubm9kZS54MT1uK3IudmlzaWJsZVdpZHRoLzIpLGk9TWF0aC5tYXgoMCxNYXRoLm1pbihyLnNpemUtci52aXNpYmxlSGVpZ2h0LzIsaSkpLHIubm9kZS55MD1pLXIudmlzaWJsZUhlaWdodC8yLHIubm9kZS55MT1pK3IudmlzaWJsZUhlaWdodC8yKSxGKHIubm9kZSksInNuYXAiIT09ci5hcnJhbmdlbWVudCYmKHIuc2Fua2V5LnVwZGF0ZShyLmdyYXBoKSxDKHQuZmlsdGVyKEIocikpLGUpKX19KSkub24oImRyYWdlbmQiLChmdW5jdGlvbih0KXtpZigiZml4ZWQiIT09dC5hcnJhbmdlbWVudCl7dC5pbnRlcmFjdGlvblN0YXRlLmRyYWdJblByb2dyZXNzPSExO2Zvcih2YXIgZT0wO2U8dC5ub2RlLmNoaWxkcmVuTm9kZXMubGVuZ3RoO2UrKyl0Lm5vZGUuY2hpbGRyZW5Ob2Rlc1tlXS54PXQubm9kZS54LHQubm9kZS5jaGlsZHJlbk5vZGVzW2VdLnk9dC5ub2RlLnk7InNuYXAiIT09dC5hcnJhbmdlbWVudCYmUih0LGkpfX0pKTt0Lm9uKCIuZHJhZyIsbnVsbCkuY2FsbChvKX1mdW5jdGlvbiBSKHQsZSl7Zm9yKHZhciByPVtdLG49W10saT0wO2k8dC5ncmFwaC5ub2Rlcy5sZW5ndGg7aSsrKXt2YXIgYT0odC5ncmFwaC5ub2Rlc1tpXS54MCt0LmdyYXBoLm5vZGVzW2ldLngxKS8yLG89KHQuZ3JhcGgubm9kZXNbaV0ueTArdC5ncmFwaC5ub2Rlc1tpXS55MSkvMjtyLnB1c2goYS90LmZpZ3VyZS53aWR0aCksbi5wdXNoKG8vdC5maWd1cmUuaGVpZ2h0KX1iLmNhbGwoIl9ndWlSZXN0eWxlIixlLHsibm9kZS54Ijpbcl0sIm5vZGUueSI6W25dfSx0LnRyYWNlLmluZGV4KS50aGVuKChmdW5jdGlvbigpe2UuX2Z1bGxMYXlvdXQuX2RyYWdDb3ZlciYmZS5fZnVsbExheW91dC5fZHJhZ0NvdmVyLnJlbW92ZSgpfSkpfWZ1bmN0aW9uIEYodCl7dC5sYXN0RHJhZ2dlZFg9dC54MCt0LmR4LzIsdC5sYXN0RHJhZ2dlZFk9dC55MCt0LmR5LzJ9ZnVuY3Rpb24gQih0KXtyZXR1cm4gZnVuY3Rpb24oZSl7cmV0dXJuIGUubm9kZS5vcmlnaW5hbFg9PT10Lm5vZGUub3JpZ2luYWxYfX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgbz0hMTtoLmVuc3VyZVNpbmdsZSh0Ll9mdWxsTGF5b3V0Ll9pbmZvbGF5ZXIsImciLCJmaXJzdC1yZW5kZXIiLChmdW5jdGlvbigpe289ITB9KSk7dmFyIHM9dC5fZnVsbExheW91dC5fZHJhZ0NvdmVyLG09ci5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB5KHQpLnRyYWNlLnZpc2libGV9KSkubWFwKGsuYmluZChudWxsLG4pKSxiPWUuc2VsZWN0QWxsKCIuIitsLmNuLnNhbmtleSkuZGF0YShtLGcpO2IuZXhpdCgpLnJlbW92ZSgpLGIuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGwuY24uc2Fua2V5LCEwKS5zdHlsZSgiYm94LXNpemluZyIsImNvbnRlbnQtYm94Iikuc3R5bGUoInBvc2l0aW9uIiwiYWJzb2x1dGUiKS5zdHlsZSgibGVmdCIsMCkuc3R5bGUoInNoYXBlLXJlbmRlcmluZyIsImdlb21ldHJpY1ByZWNpc2lvbiIpLnN0eWxlKCJwb2ludGVyLWV2ZW50cyIsImF1dG8iKS5hdHRyKCJ0cmFuc2Zvcm0iLE8pLGIuZWFjaCgoZnVuY3Rpb24oZSxyKXt0Ll9mdWxsRGF0YVtyXS5fc2Fua2V5PWU7dmFyIG49ImJnc2Fua2V5LSIrZS50cmFjZS51aWQrIi0iK3I7aC5lbnN1cmVTaW5nbGUodC5fZnVsbExheW91dC5fZHJhZ2dlcnMsInJlY3QiLG4pLHQuX2Z1bGxEYXRhW3JdLl9iZ1JlY3Q9YS5zZWxlY3QoIi4iK24pLHQuX2Z1bGxEYXRhW3JdLl9iZ1JlY3Quc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIikuYXR0cigid2lkdGgiLGUud2lkdGgpLmF0dHIoImhlaWdodCIsZS5oZWlnaHQpLmF0dHIoIngiLGUudHJhbnNsYXRlWCkuYXR0cigieSIsZS50cmFuc2xhdGVZKS5jbGFzc2VkKCJiZ3NhbmtleSIsITApLnN0eWxlKHtmaWxsOiJ0cmFuc3BhcmVudCIsInN0cm9rZS13aWR0aCI6MH0pfSkpLGIudHJhbnNpdGlvbigpLmVhc2UobC5lYXNlKS5kdXJhdGlvbihsLmR1cmF0aW9uKS5hdHRyKCJ0cmFuc2Zvcm0iLE8pO3ZhciBfPWIuc2VsZWN0QWxsKCIuIitsLmNuLnNhbmtleUxpbmtzKS5kYXRhKHYsZyk7Xy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobC5jbi5zYW5rZXlMaW5rcywhMCkuc3R5bGUoImZpbGwiLCJub25lIik7dmFyIEw9Xy5zZWxlY3RBbGwoIi4iK2wuY24uc2Fua2V5TGluaykuZGF0YSgoZnVuY3Rpb24odCl7cmV0dXJuIHQuZ3JhcGgubGlua3MuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZX0pKS5tYXAoQS5iaW5kKG51bGwsdCkpfSksZyk7TC5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQobC5jbi5zYW5rZXlMaW5rLCEwKS5jYWxsKHosYixpLmxpbmtFdmVudHMpLEwuc3R5bGUoInN0cm9rZSIsKGZ1bmN0aW9uKHQpe3JldHVybiBJKHQpP3UudGlueVJHQihjKHQubGlua0xpbmVDb2xvcikpOnQudGlueUNvbG9ySHVlfSkpLnN0eWxlKCJzdHJva2Utb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiBJKHQpP3Uub3BhY2l0eSh0LmxpbmtMaW5lQ29sb3IpOnQudGlueUNvbG9yQWxwaGF9KSkuc3R5bGUoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JIdWV9KSkuc3R5bGUoImZpbGwtb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRpbnlDb2xvckFscGhhfSkpLnN0eWxlKCJzdHJva2Utd2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gSSh0KT90LmxpbmtMaW5lV2lkdGg6MX0pKS5hdHRyKCJkIixNKCkpLEwuc3R5bGUoIm9wYWNpdHkiLChmdW5jdGlvbigpe3JldHVybiB0Ll9jb250ZXh0LnN0YXRpY1Bsb3R8fG98fHM/MTowfSkpLnRyYW5zaXRpb24oKS5lYXNlKGwuZWFzZSkuZHVyYXRpb24obC5kdXJhdGlvbikuc3R5bGUoIm9wYWNpdHkiLDEpLEwuZXhpdCgpLnRyYW5zaXRpb24oKS5lYXNlKGwuZWFzZSkuZHVyYXRpb24obC5kdXJhdGlvbikuc3R5bGUoIm9wYWNpdHkiLDApLnJlbW92ZSgpO3ZhciBDPWIuc2VsZWN0QWxsKCIuIitsLmNuLnNhbmtleU5vZGVTZXQpLmRhdGEodixnKTtDLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChsLmNuLnNhbmtleU5vZGVTZXQsITApLEMuc3R5bGUoImN1cnNvciIsKGZ1bmN0aW9uKHQpe3N3aXRjaCh0LmFycmFuZ2VtZW50KXtjYXNlImZpeGVkIjpyZXR1cm4iZGVmYXVsdCI7Y2FzZSJwZXJwZW5kaWN1bGFyIjpyZXR1cm4ibnMtcmVzaXplIjtkZWZhdWx0OnJldHVybiJtb3ZlIn19KSk7dmFyIFI9Qy5zZWxlY3RBbGwoIi4iK2wuY24uc2Fua2V5Tm9kZSkuZGF0YSgoZnVuY3Rpb24odCl7dmFyIGU9dC5ncmFwaC5ub2RlcztyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGUscj1bXTtmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKXRbZV0ub3JpZ2luYWxYPSh0W2VdLngwK3RbZV0ueDEpLzIsdFtlXS5vcmlnaW5hbFk9KHRbZV0ueTArdFtlXS55MSkvMiwtMT09PXIuaW5kZXhPZih0W2VdLm9yaWdpbmFsWCkmJnIucHVzaCh0W2VdLm9yaWdpbmFsWCk7Zm9yKHIuc29ydCgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdC1lfSkpLGU9MDtlPHQubGVuZ3RoO2UrKyl0W2VdLm9yaWdpbmFsTGF5ZXJJbmRleD1yLmluZGV4T2YodFtlXS5vcmlnaW5hbFgpLHRbZV0ub3JpZ2luYWxMYXllcj10W2VdLm9yaWdpbmFsTGF5ZXJJbmRleC8oci5sZW5ndGgtMSl9KGUpLGUubWFwKFMuYmluZChudWxsLHQpKX0pLGcpO1IuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKGwuY24uc2Fua2V5Tm9kZSwhMCkuY2FsbChFKS5zdHlsZSgib3BhY2l0eSIsKGZ1bmN0aW9uKGUpe3JldHVybiF0Ll9jb250ZXh0LnN0YXRpY1Bsb3QmJiFvfHxlLnBhcnRPZkdyb3VwPzA6MX0pKSxSLmNhbGwoeixiLGkubm9kZUV2ZW50cykuY2FsbChELEwsaSx0KSxSLnRyYW5zaXRpb24oKS5lYXNlKGwuZWFzZSkuZHVyYXRpb24obC5kdXJhdGlvbikuY2FsbChFKS5zdHlsZSgib3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBhcnRPZkdyb3VwPzA6MX0pKSxSLmV4aXQoKS50cmFuc2l0aW9uKCkuZWFzZShsLmVhc2UpLmR1cmF0aW9uKGwuZHVyYXRpb24pLnN0eWxlKCJvcGFjaXR5IiwwKS5yZW1vdmUoKTt2YXIgRj1SLnNlbGVjdEFsbCgiLiIrbC5jbi5ub2RlUmVjdCkuZGF0YSh2KTtGLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZChsLmNuLm5vZGVSZWN0LCEwKS5jYWxsKFApLEYuc3R5bGUoInN0cm9rZS13aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGVMaW5lV2lkdGh9KSkuc3R5bGUoInN0cm9rZSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1LnRpbnlSR0IoYyh0Lm5vZGVMaW5lQ29sb3IpKX0pKS5zdHlsZSgic3Ryb2tlLW9wYWNpdHkiLChmdW5jdGlvbih0KXtyZXR1cm4gdS5vcGFjaXR5KHQubm9kZUxpbmVDb2xvcil9KSkuc3R5bGUoImZpbGwiLChmdW5jdGlvbih0KXtyZXR1cm4gdC50aW55Q29sb3JIdWV9KSkuc3R5bGUoImZpbGwtb3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LnRpbnlDb2xvckFscGhhfSkpLEYudHJhbnNpdGlvbigpLmVhc2UobC5lYXNlKS5kdXJhdGlvbihsLmR1cmF0aW9uKS5jYWxsKFApO3ZhciBCPVIuc2VsZWN0QWxsKCIuIitsLmNuLm5vZGVMYWJlbCkuZGF0YSh2KTtCLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZChsLmNuLm5vZGVMYWJlbCwhMCkuc3R5bGUoImN1cnNvciIsImRlZmF1bHQiKSxCLmF0dHIoImRhdGEtbm90ZXgiLDEpLnRleHQoKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5vZGUubGFiZWx9KSkuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9YS5zZWxlY3QodGhpcyk7Zi5mb250KHIsZS50ZXh0Rm9udCkseC5jb252ZXJ0VG9Uc3BhbnMocix0KX0pKS5zdHlsZSgidGV4dC1zaGFkb3ciLHgubWFrZVRleHRTaGFkb3codC5fZnVsbExheW91dC5wYXBlcl9iZ2NvbG9yKSkuYXR0cigidGV4dC1hbmNob3IiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5ob3Jpem9udGFsJiZ0LmxlZnQ/ImVuZCI6InN0YXJ0In0pKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgZT1hLnNlbGVjdCh0aGlzKSxyPXgubGluZUNvdW50KGUpLG49dC50ZXh0Rm9udC5zaXplKigoci0xKSpULXcpLGk9dC5ub2RlTGluZVdpZHRoLzIrMyxvPSgodC5ob3Jpem9udGFsP3QudmlzaWJsZUhlaWdodDp0LnZpc2libGVXaWR0aCktbikvMjt0Lmhvcml6b250YWwmJih0LmxlZnQ/aT0taTppKz10LnZpc2libGVXaWR0aCk7dmFyIHM9dC5ob3Jpem9udGFsPyIiOiJzY2FsZSgtMSwxKSIrZCg5MCk7cmV0dXJuIHAodC5ob3Jpem9udGFsP2k6byx0Lmhvcml6b250YWw/bzppKStzfSkpLEIudHJhbnNpdGlvbigpLmVhc2UobC5lYXNlKS5kdXJhdGlvbihsLmR1cmF0aW9uKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vY29uc3RhbnRzL2FsaWdubWVudCI6NzQ0LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL2d1cCI6NzczLCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiOjgwMiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9jb25zdGFudHMiOjExODQsIkBwbG90bHkvZDMiOjU4LCJAcGxvdGx5L2QzLXNhbmtleSI6NTcsIkBwbG90bHkvZDMtc2Fua2V5LWNpcmN1bGFyIjo1NiwiZDMtZm9yY2UiOjE1OSwiZDMtaW50ZXJwb2xhdGUiOjE2NCx0aW55Y29sb3IyOjU3Mn1dLDExODk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49dC5jZFswXS50cmFjZSxpPW4uX3NhbmtleS5ncmFwaC5ub2RlcyxhPTA7YTxpLmxlbmd0aDthKyspe3ZhciBvPWlbYV07aWYoIW8ucGFydE9mR3JvdXApe3ZhciBzPVsoby54MCtvLngxKS8yLChvLnkwK28ueTEpLzJdOyJ2Ij09PW4ub3JpZW50YXRpb24mJnMucmV2ZXJzZSgpLGUmJmUuY29udGFpbnMocywhMSxhLHQpJiZyLnB1c2goe3BvaW50TnVtYmVyOm8ucG9pbnROdW1iZXJ9KX19cmV0dXJuIHJ9fSx7fV0sMTE5MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MDtyPHQubGVuZ3RoO3IrKyl0W3JdLmk9cjtuLm1lcmdlQXJyYXkoZS50ZXh0LHQsInR4Iiksbi5tZXJnZUFycmF5KGUudGV4dHRlbXBsYXRlLHQsInR4dCIpLG4ubWVyZ2VBcnJheShlLmhvdmVydGV4dCx0LCJodHgiKSxuLm1lcmdlQXJyYXkoZS5jdXN0b21kYXRhLHQsImRhdGEiKSxuLm1lcmdlQXJyYXkoZS50ZXh0cG9zaXRpb24sdCwidHAiKSxlLnRleHRmb250JiYobi5tZXJnZUFycmF5Q2FzdFBvc2l0aXZlKGUudGV4dGZvbnQuc2l6ZSx0LCJ0cyIpLG4ubWVyZ2VBcnJheShlLnRleHRmb250LmNvbG9yLHQsInRjIiksbi5tZXJnZUFycmF5KGUudGV4dGZvbnQuZmFtaWx5LHQsInRmIikpO3ZhciBpPWUubWFya2VyO2lmKGkpe24ubWVyZ2VBcnJheUNhc3RQb3NpdGl2ZShpLnNpemUsdCwibXMiKSxuLm1lcmdlQXJyYXlDYXN0UG9zaXRpdmUoaS5vcGFjaXR5LHQsIm1vIiksbi5tZXJnZUFycmF5KGkuc3ltYm9sLHQsIm14Iiksbi5tZXJnZUFycmF5KGkuY29sb3IsdCwibWMiKTt2YXIgYT1pLmxpbmU7aS5saW5lJiYobi5tZXJnZUFycmF5KGEuY29sb3IsdCwibWxjIiksbi5tZXJnZUFycmF5Q2FzdFBvc2l0aXZlKGEud2lkdGgsdCwibWx3IikpO3ZhciBvPWkuZ3JhZGllbnQ7byYmIm5vbmUiIT09by50eXBlJiYobi5tZXJnZUFycmF5KG8udHlwZSx0LCJtZ3QiKSxuLm1lcmdlQXJyYXkoby5jb2xvcix0LCJtZ2MiKSl9fX0seyIuLi8uLi9saWIiOjc3Nn1dLDExOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLG89dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5kYXNoLGM9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksdT10KCIuL2NvbnN0YW50cyIpLGY9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyIsYW5pbTohMH0seDA6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIixhbmltOiEwfSxkeDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjEsZWRpdFR5cGU6ImNhbGMiLGFuaW06ITB9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIixhbmltOiEwfSx5MDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMiLGFuaW06ITB9LGR5Ont2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyIsYW5pbTohMH0seHBlcmlvZDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMifSx5cGVyaW9kOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYyJ9LHhwZXJpb2QwOnt2YWxUeXBlOiJhbnkiLGVkaXRUeXBlOiJjYWxjIn0seXBlcmlvZDA6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSx4cGVyaW9kYWxpZ25tZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzdGFydCIsIm1pZGRsZSIsImVuZCJdLGRmbHQ6Im1pZGRsZSIsZWRpdFR5cGU6ImNhbGMifSx5cGVyaW9kYWxpZ25tZW50Ont2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJzdGFydCIsIm1pZGRsZSIsImVuZCJdLGRmbHQ6Im1pZGRsZSIsZWRpdFR5cGU6ImNhbGMifSx4aG92ZXJmb3JtYXQ6bigieCIpLHlob3ZlcmZvcm1hdDpuKCJ5Iiksc3RhY2tncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sb3JpZW50YXRpb246e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInYiLCJoIl0sZWRpdFR5cGU6ImNhbGMifSxncm91cG5vcm06e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIiIsImZyYWN0aW9uIiwicGVyY2VudCJdLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxzdGFja2dhcHM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImluZmVyIHplcm8iLCJpbnRlcnBvbGF0ZSJdLGRmbHQ6ImluZmVyIHplcm8iLGVkaXRUeXBlOiJjYWxjIn0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMifSx0ZXh0dGVtcGxhdGU6aSh7fSx7fSksaG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsYXJyYXlPazohMCxlZGl0VHlwZToic3R5bGUifSxtb2RlOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsaW5lcyIsIm1hcmtlcnMiLCJ0ZXh0Il0sZXh0cmFzOlsibm9uZSJdLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJvbjp7dmFsVHlwZToiZmxhZ2xpc3QiLGZsYWdzOlsicG9pbnRzIiwiZmlsbHMiXSxlZGl0VHlwZToic3R5bGUifSxob3ZlcnRlbXBsYXRlOmEoe30se2tleXM6dS5ldmVudERhdGFLZXlzfSksbGluZTp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUiLGFuaW06ITB9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGRmbHQ6MixlZGl0VHlwZToic3R5bGUiLGFuaW06ITB9LHNoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJsaW5lYXIiLCJzcGxpbmUiLCJodiIsInZoIiwiaHZoIiwidmh2Il0sZGZsdDoibGluZWFyIixlZGl0VHlwZToicGxvdCJ9LHNtb290aGluZzp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MS4zLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGRhc2g6Zih7fSxsLHtlZGl0VHlwZToic3R5bGUifSksc2ltcGxpZnk6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToicGxvdCJ9LGNvbm5lY3RnYXBzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0sY2xpcG9uYXhpczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToicGxvdCJ9LGZpbGw6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbIm5vbmUiLCJ0b3plcm95IiwidG96ZXJveCIsInRvbmV4dHkiLCJ0b25leHR4IiwidG9zZWxmIiwidG9uZXh0Il0sZWRpdFR5cGU6ImNhbGMifSxmaWxsY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUiLGFuaW06ITB9LG1hcmtlcjpmKHtzeW1ib2w6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpjLnN5bWJvbExpc3QsZGZsdDoiY2lyY2xlIixhcnJheU9rOiEwLGVkaXRUeXBlOiJzdHlsZSJ9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsYXJyYXlPazohMCxlZGl0VHlwZToic3R5bGUiLGFuaW06ITB9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDo2LGFycmF5T2s6ITAsZWRpdFR5cGU6ImNhbGMiLGFuaW06ITB9LG1heGRpc3BsYXllZDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxzaXplcmVmOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LHNpemVtaW46e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0sc2l6ZW1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImRpYW1ldGVyIiwiYXJlYSJdLGRmbHQ6ImRpYW1ldGVyIixlZGl0VHlwZToiY2FsYyJ9LGxpbmU6Zih7d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsYXJyYXlPazohMCxlZGl0VHlwZToic3R5bGUiLGFuaW06ITB9LGVkaXRUeXBlOiJjYWxjIn0sbygibWFya2VyLmxpbmUiLHthbmltOiEwfSkpLGdyYWRpZW50Ont0eXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJyYWRpYWwiLCJob3Jpem9udGFsIiwidmVydGljYWwiLCJub25lIl0sYXJyYXlPazohMCxkZmx0OiJub25lIixlZGl0VHlwZToiY2FsYyJ9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxvKCJtYXJrZXIiLHthbmltOiEwfSkpLHNlbGVjdGVkOnttYXJrZXI6e29wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZWRpdFR5cGU6InN0eWxlIn0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSxzaXplOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9LHRleHRmb250Ontjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9LHVuc2VsZWN0ZWQ6e21hcmtlcjp7b3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxlZGl0VHlwZToic3R5bGUifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSJ9LHNpemU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sdGV4dGZvbnQ6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sdGV4dHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AgbGVmdCIsInRvcCBjZW50ZXIiLCJ0b3AgcmlnaHQiLCJtaWRkbGUgbGVmdCIsIm1pZGRsZSBjZW50ZXIiLCJtaWRkbGUgcmlnaHQiLCJib3R0b20gbGVmdCIsImJvdHRvbSBjZW50ZXIiLCJib3R0b20gcmlnaHQiXSxkZmx0OiJtaWRkbGUgY2VudGVyIixhcnJheU9rOiEwLGVkaXRUeXBlOiJjYWxjIn0sdGV4dGZvbnQ6cyh7ZWRpdFR5cGU6ImNhbGMiLGNvbG9yRWRpdFR5cGU6InN0eWxlIixhcnJheU9rOiEwfSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6NjYwLCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo4MzAsIi4uLy4uL3Bsb3RzL2ZvbnRfYXR0cmlidXRlcyI6ODU2LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4vY29uc3RhbnRzIjoxMTk1fV0sMTE5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCIpLHM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxsPXQoIi4vc3VidHlwZXMiKSxjPXQoIi4vY29sb3JzY2FsZV9jYWxjIiksdT10KCIuL2FycmF5c190b19jYWxjZGF0YSIpLGY9dCgiLi9jYWxjX3NlbGVjdGlvbiIpO2Z1bmN0aW9uIGgodCxlLHIsbixpLG8scyl7dmFyIGM9ZS5fbGVuZ3RoLHU9dC5fZnVsbExheW91dCxmPXIuX2lkLGg9bi5faWQscD11Ll9maXJzdFNjYXR0ZXJbbShlKV09PT1lLnVpZCxkPShnKGUsdSxyLG4pfHx7fSkub3JpZW50YXRpb24sdj1lLmZpbGw7ci5fbWluRHRpY2s9MCxuLl9taW5EdGljaz0wO3ZhciB5PXtwYWRkZWQ6ITB9LHg9e3BhZGRlZDohMH07cyYmKHkucHBhZD14LnBwYWQ9cyk7dmFyIGI9YzwyfHxpWzBdIT09aVtjLTFdfHxvWzBdIT09b1tjLTFdO2ImJigidG96ZXJveCI9PT12fHwidG9uZXh0eCI9PT12JiYocHx8ImgiPT09ZCkpP3kudG96ZXJvPSEwOihlLmVycm9yX3l8fHt9KS52aXNpYmxlfHwidG9uZXh0eSIhPT12JiYidG96ZXJveSIhPT12JiYobC5oYXNNYXJrZXJzKGUpfHxsLmhhc1RleHQoZSkpfHwoeS5wYWRkZWQ9ITEseS5wcGFkPTApLGImJigidG96ZXJveSI9PT12fHwidG9uZXh0eSI9PT12JiYocHx8InYiPT09ZCkpP3gudG96ZXJvPSEwOiJ0b25leHR4IiE9PXYmJiJ0b3plcm94IiE9PXZ8fCh4LnBhZGRlZD0hMSksZiYmKGUuX2V4dHJlbWVzW2ZdPWEuZmluZEV4dHJlbWVzKHIsaSx5KSksaCYmKGUuX2V4dHJlbWVzW2hdPWEuZmluZEV4dHJlbWVzKG4sbyx4KSl9ZnVuY3Rpb24gcCh0LGUpe2lmKGwuaGFzTWFya2Vycyh0KSl7dmFyIHIsbj10Lm1hcmtlcixvPTEuNioodC5tYXJrZXIuc2l6ZXJlZnx8MSk7aWYocj0iYXJlYSI9PT10Lm1hcmtlci5zaXplbW9kZT9mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5tYXgoTWF0aC5zcXJ0KCh0fHwwKS9vKSwzKX06ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGgubWF4KCh0fHwwKS9vLDMpfSxpLmlzQXJyYXlPclR5cGVkQXJyYXkobi5zaXplKSl7dmFyIHM9e3R5cGU6ImxpbmVhciJ9O2Euc2V0Q29udmVydChzKTtmb3IodmFyIGM9cy5tYWtlQ2FsY2RhdGEodC5tYXJrZXIsInNpemUiKSx1PW5ldyBBcnJheShlKSxmPTA7ZjxlO2YrKyl1W2ZdPXIoY1tmXSk7cmV0dXJuIHV9cmV0dXJuIHIobi5zaXplKX19ZnVuY3Rpb24gZCh0LGUpe3ZhciByPW0oZSksbj10Ll9maXJzdFNjYXR0ZXI7bltyXXx8KG5bcl09ZS51aWQpfWZ1bmN0aW9uIG0odCl7dmFyIGU9dC5zdGFja2dyb3VwO3JldHVybiB0LnhheGlzK3QueWF4aXMrdC50eXBlKyhlPyItIitlOiIiKX1mdW5jdGlvbiBnKHQsZSxyLG4pe3ZhciBpPXQuc3RhY2tncm91cDtpZihpKXt2YXIgYT1lLl9zY2F0dGVyU3RhY2tPcHRzW3IuX2lkK24uX2lkXVtpXSxvPSJ2Ij09PWEub3JpZW50YXRpb24/bjpyO3JldHVybiJsaW5lYXIiPT09by50eXBlfHwibG9nIj09PW8udHlwZT9hOnZvaWQgMH19ZS5leHBvcnRzPXtjYWxjOmZ1bmN0aW9uKHQsZSl7dmFyIHIsbCxtLHYseSx4LGI9dC5fZnVsbExheW91dCxfPWEuZ2V0RnJvbUlkKHQsZS54YXhpc3x8IngiKSx3PWEuZ2V0RnJvbUlkKHQsZS55YXhpc3x8InkiKSxUPV8ubWFrZUNhbGNkYXRhKGUsIngiKSxrPXcubWFrZUNhbGNkYXRhKGUsInkiKSxBPW8oZSxfLCJ4IixUKSxNPW8oZSx3LCJ5IixrKSxTPUEudmFscyxFPU0udmFscyxMPWUuX2xlbmd0aCxDPW5ldyBBcnJheShMKSxQPWUuaWRzLEk9ZyhlLGIsXyx3KSxPPSExO2QoYixlKTt2YXIgeixEPSJ4IixSPSJ5IjtJPyhpLnB1c2hVbmlxdWUoSS50cmFjZUluZGljZXMsZS5fZXhwYW5kZWRJbmRleCksKHI9InYiPT09SS5vcmllbnRhdGlvbik/KFI9InMiLHo9IngiKTooRD0icyIsej0ieSIpLHk9ImludGVycG9sYXRlIj09PUkuc3RhY2tnYXBzKTpoKHQsZSxfLHcsUyxFLHAoZSxMKSk7dmFyIEY9ISFlLnhwZXJpb2RhbGlnbm1lbnQsQj0hIWUueXBlcmlvZGFsaWdubWVudDtmb3IobD0wO2w8TDtsKyspe3ZhciBOPUNbbF09e30saj1uKFNbbF0pLFU9bihFW2xdKTtqJiZVPyhOW0RdPVNbbF0sTltSXT1FW2xdLEYmJihOLm9yaWdfeD1UW2xdLE4ueEVuZD1BLmVuZHNbbF0sTi54U3RhcnQ9QS5zdGFydHNbbF0pLEImJihOLm9yaWdfeT1rW2xdLE4ueUVuZD1NLmVuZHNbbF0sTi55U3RhcnQ9TS5zdGFydHNbbF0pKTpJJiYocj9qOlUpPyhOW3pdPXI/U1tsXTpFW2xdLE4uZ2FwPSEwLHk/KE4ucz1zLE89ITApOk4ucz0wKTpOW0RdPU5bUl09cyxQJiYoTi5pZD1TdHJpbmcoUFtsXSkpfWlmKHUoQyxlKSxjKHQsZSksZihDLGUpLEkpe2ZvcihsPTA7bDxDLmxlbmd0aDspQ1tsXVt6XT09PXM/Qy5zcGxpY2UobCwxKTpsKys7aWYoaS5zb3J0KEMsKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHRbel0tZVt6XXx8dC5pLWUuaX0pKSxPKXtmb3IobD0wO2w8Qy5sZW5ndGgtMSYmQ1tsXS5nYXA7KWwrKztmb3IoKHg9Q1tsXS5zKXx8KHg9Q1tsXS5zPTApLG09MDttPGw7bSsrKUNbbV0ucz14O2Zvcih2PUMubGVuZ3RoLTE7dj5sJiZDW3ZdLmdhcDspdi0tO2Zvcih4PUNbdl0ucyxtPUMubGVuZ3RoLTE7bT52O20tLSlDW21dLnM9eDtmb3IoO2w8djspaWYoQ1srK2xdLmdhcCl7Zm9yKG09bCsxO0NbbV0uZ2FwOyltKys7Zm9yKHZhciBWPUNbbC0xXVt6XSxIPUNbbC0xXS5zLHE9KENbbV0ucy1IKS8oQ1ttXVt6XS1WKTtsPG07KUNbbF0ucz1IKyhDW2xdW3pdLVYpKnEsbCsrfX19cmV0dXJuIEN9LGNhbGNNYXJrZXJTaXplOnAsY2FsY0F4aXNFeHBhbnNpb246aCxzZXRGaXJzdFNjYXR0ZXI6ZCxnZXRTdGFja09wdHM6Z319LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2FsaWduX3BlcmlvZCI6ODI0LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3LCIuL2FycmF5c190b19jYWxjZGF0YSI6MTE5MCwiLi9jYWxjX3NlbGVjdGlvbiI6MTE5MywiLi9jb2xvcnNjYWxlX2NhbGMiOjExOTQsIi4vc3VidHlwZXMiOjEyMTYsImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMTkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe24uaXNBcnJheU9yVHlwZWRBcnJheShlLnNlbGVjdGVkcG9pbnRzKSYmbi50YWdTZWxlY3RlZCh0LGUpfX0seyIuLi8uLi9saWIiOjc3Nn1dLDExOTQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiKS5oYXNDb2xvcnNjYWxlLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2NhbGMiKSxhPXQoIi4vc3VidHlwZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXthLmhhc0xpbmVzKGUpJiZuKGUsImxpbmUiKSYmaSh0LGUse3ZhbHM6ZS5saW5lLmNvbG9yLGNvbnRhaW5lclN0cjoibGluZSIsY0xldHRlcjoiYyJ9KSxhLmhhc01hcmtlcnMoZSkmJihuKGUsIm1hcmtlciIpJiZpKHQsZSx7dmFsczplLm1hcmtlci5jb2xvcixjb250YWluZXJTdHI6Im1hcmtlciIsY0xldHRlcjoiYyJ9KSxuKGUsIm1hcmtlci5saW5lIikmJmkodCxlLHt2YWxzOmUubWFya2VyLmxpbmUuY29sb3IsY29udGFpbmVyU3RyOiJtYXJrZXIubGluZSIsY0xldHRlcjoiYyJ9KSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIjo2NDcsIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2NTAsIi4vc3VidHlwZXMiOjEyMTZ9XSwxMTk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17UFRTX0xJTkVTT05MWToyMCxtaW5Ub2xlcmFuY2U6LjIsdG9sZXJhbmNlR3Jvd3RoOjEwLG1heFNjcmVlbnNBd2F5OjIwLGV2ZW50RGF0YUtleXM6W119fSx7fV0sMTE5NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuL2NhbGMiKTtmdW5jdGlvbiBpKHQsZSxyLG4saSxhLG8pe2lbbl09ITA7dmFyIHM9e2k6bnVsbCxnYXA6ITAsczowfTtpZihzW29dPXIsdC5zcGxpY2UoZSwwLHMpLGUmJnI9PT10W2UtMV1bb10pe3ZhciBsPXRbZS0xXTtzLnM9bC5zLHMuaT1sLmkscy5nYXA9bC5nYXB9ZWxzZSBhJiYocy5zPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRbZS0xXSxhPXRbZSsxXTtyZXR1cm4gYT9pP2kucysoYS5zLWkucykqKHItaVtuXSkvKGFbbl0taVtuXSk6YS5zOmkuc30odCxlLHIsbykpO2V8fCh0WzBdLnQ9dFsxXS50LHRbMF0udHJhY2U9dFsxXS50cmFjZSxkZWxldGUgdFsxXS50LGRlbGV0ZSB0WzFdLnRyYWNlKX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnhheGlzLGE9ZS55YXhpcyxvPXIuX2lkK2EuX2lkLHM9dC5fZnVsbExheW91dC5fc2NhdHRlclN0YWNrT3B0c1tvXTtpZihzKXt2YXIgbCxjLHUsZixoLHAsZCxtLGcsdix5LHgsYixfLHcsVD10LmNhbGNkYXRhO2Zvcih2YXIgayBpbiBzKXt2YXIgQT0odj1zW2tdKS50cmFjZUluZGljZXM7aWYoQS5sZW5ndGgpe2Zvcih5PSJpbnRlcnBvbGF0ZSI9PT12LnN0YWNrZ2Fwcyx4PXYuZ3JvdXBub3JtLCJ2Ij09PXYub3JpZW50YXRpb24/KGI9IngiLF89InkiKTooYj0ieSIsXz0ieCIpLHc9bmV3IEFycmF5KEEubGVuZ3RoKSxsPTA7bDx3Lmxlbmd0aDtsKyspd1tsXT0hMTtwPVRbQVswXV07dmFyIE09bmV3IEFycmF5KHAubGVuZ3RoKTtmb3IobD0wO2w8cC5sZW5ndGg7bCsrKU1bbF09cFtsXVtiXTtmb3IobD0xO2w8QS5sZW5ndGg7bCsrKXtmb3IoaD1UW0FbbF1dLGM9dT0wO2M8aC5sZW5ndGg7YysrKXtmb3IoZD1oW2NdW2JdO2Q+TVt1XSYmdTxNLmxlbmd0aDt1KyspaShoLGMsTVt1XSxsLHcseSxiKSxjKys7aWYoZCE9PU1bdV0pe2ZvcihmPTA7ZjxsO2YrKylpKFRbQVtmXV0sdSxkLGYsdyx5LGIpO00uc3BsaWNlKHUsMCxkKX11Kyt9Zm9yKDt1PE0ubGVuZ3RoO3UrKylpKGgsYyxNW3VdLGwsdyx5LGIpLGMrK312YXIgUz1NLmxlbmd0aDtmb3IoYz0wO2M8cC5sZW5ndGg7YysrKXtmb3IobT1wW2NdW19dPXBbY10ucyxsPTE7bDxBLmxlbmd0aDtsKyspKGg9VFtBW2xdXSlbMF0udHJhY2UuX3Jhd0xlbmd0aD1oWzBdLnRyYWNlLl9sZW5ndGgsaFswXS50cmFjZS5fbGVuZ3RoPVMsbSs9aFtjXS5zLGhbY11bX109bTtpZih4KWZvcihnPSgiZnJhY3Rpb24iPT09eD9tOm0vMTAwKXx8MSxsPTA7bDxBLmxlbmd0aDtsKyspe3ZhciBFPVRbQVtsXV1bY107RVtfXS89ZyxFLnNOb3JtPUUucy9nfX1mb3IobD0wO2w8QS5sZW5ndGg7bCsrKXt2YXIgTD0oaD1UW0FbbF1dKVswXS50cmFjZSxDPW4uY2FsY01hcmtlclNpemUoTCxMLl9yYXdMZW5ndGgpLFA9QXJyYXkuaXNBcnJheShDKTtpZihDJiZ3W2xdfHxQKXt2YXIgST1DO2ZvcihDPW5ldyBBcnJheShTKSxjPTA7YzxTO2MrKylDW2NdPWhbY10uZ2FwPzA6UD9JW2hbY10uaV06SX12YXIgTz1uZXcgQXJyYXkoUyksej1uZXcgQXJyYXkoUyk7Zm9yKGM9MDtjPFM7YysrKU9bY109aFtjXS54LHpbY109aFtjXS55O24uY2FsY0F4aXNFeHBhbnNpb24odCxMLHIsYSxPLHosQyksaFswXS50Lm9yaWVudGF0aW9uPXYub3JpZW50YXRpb259fX19fX0seyIuL2NhbGMiOjExOTJ9XSwxMTk3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz1mdW5jdGlvbih0KXtmb3IodmFyIGU9MDtlPHQubGVuZ3RoO2UrKyl7dmFyIHI9dFtlXTtpZigic2NhdHRlciI9PT1yLnR5cGUpe3ZhciBuPXIuZmlsbDtpZigibm9uZSIhPT1uJiYidG9zZWxmIiE9PW4mJihyLm9wYWNpdHk9dm9pZCAwLCJ0b25leHR5Ij09PW58fCJ0b25leHR4Ij09PW4pKWZvcih2YXIgaT1lLTE7aT49MDtpLS0pe3ZhciBhPXRbaV07aWYoInNjYXR0ZXIiPT09YS50eXBlJiZhLnhheGlzPT09ci54YXhpcyYmYS55YXhpcz09PXIueWF4aXMpe2Eub3BhY2l0eT12b2lkIDA7YnJlYWt9fX19fX0se31dLDExOTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi9hdHRyaWJ1dGVzIiksbz10KCIuL2NvbnN0YW50cyIpLHM9dCgiLi9zdWJ0eXBlcyIpLGw9dCgiLi94eV9kZWZhdWx0cyIpLGM9dCgiLi9wZXJpb2RfZGVmYXVsdHMiKSx1PXQoIi4vc3RhY2tfZGVmYXVsdHMiKSxmPXQoIi4vbWFya2VyX2RlZmF1bHRzIiksaD10KCIuL2xpbmVfZGVmYXVsdHMiKSxwPXQoIi4vbGluZV9zaGFwZV9kZWZhdWx0cyIpLGQ9dCgiLi90ZXh0X2RlZmF1bHRzIiksbT10KCIuL2ZpbGxjb2xvcl9kZWZhdWx0cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixnKXtmdW5jdGlvbiB2KHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9dmFyIHk9bCh0LGUsZyx2KTtpZih5fHwoZS52aXNpYmxlPSExKSxlLnZpc2libGUpe2ModCxlLGcsdiksdigieGhvdmVyZm9ybWF0IiksdigieWhvdmVyZm9ybWF0Iik7dmFyIHg9dSh0LGUsZyx2KSxiPSF4JiZ5PG8uUFRTX0xJTkVTT05MWT8ibGluZXMrbWFya2VycyI6ImxpbmVzIjt2KCJ0ZXh0IiksdigiaG92ZXJ0ZXh0IiksdigibW9kZSIsYikscy5oYXNMaW5lcyhlKSYmKGgodCxlLHIsZyx2KSxwKHQsZSx2KSx2KCJjb25uZWN0Z2FwcyIpLHYoImxpbmUuc2ltcGxpZnkiKSkscy5oYXNNYXJrZXJzKGUpJiZmKHQsZSxyLGcsdix7Z3JhZGllbnQ6ITB9KSxzLmhhc1RleHQoZSkmJih2KCJ0ZXh0dGVtcGxhdGUiKSxkKHQsZSxnLHYpKTt2YXIgXz1bXTsocy5oYXNNYXJrZXJzKGUpfHxzLmhhc1RleHQoZSkpJiYodigiY2xpcG9uYXhpcyIpLHYoIm1hcmtlci5tYXhkaXNwbGF5ZWQiKSxfLnB1c2goInBvaW50cyIpKSx2KCJmaWxsIix4P3guZmlsbERmbHQ6Im5vbmUiKSwibm9uZSIhPT1lLmZpbGwmJihtKHQsZSxyLHYpLHMuaGFzTGluZXMoZSl8fHAodCxlLHYpKTt2YXIgdz0oZS5saW5lfHx7fSkuY29sb3IsVD0oZS5tYXJrZXJ8fHt9KS5jb2xvcjsidG9uZXh0IiE9PWUuZmlsbCYmInRvc2VsZiIhPT1lLmZpbGx8fF8ucHVzaCgiZmlsbHMiKSx2KCJob3Zlcm9uIixfLmpvaW4oIisiKXx8InBvaW50cyIpLCJmaWxscyIhPT1lLmhvdmVyb24mJnYoImhvdmVydGVtcGxhdGUiKTt2YXIgaz1pLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTtrKHQsZSx3fHxUfHxyLHtheGlzOiJ5In0pLGsodCxlLHd8fFR8fHIse2F4aXM6IngiLGluaGVyaXQ6InkifSksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsdil9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9hdHRyaWJ1dGVzIjoxMTkxLCIuL2NvbnN0YW50cyI6MTE5NSwiLi9maWxsY29sb3JfZGVmYXVsdHMiOjExOTksIi4vbGluZV9kZWZhdWx0cyI6MTIwNCwiLi9saW5lX3NoYXBlX2RlZmF1bHRzIjoxMjA2LCIuL21hcmtlcl9kZWZhdWx0cyI6MTIxMCwiLi9wZXJpb2RfZGVmYXVsdHMiOjEyMTEsIi4vc3RhY2tfZGVmYXVsdHMiOjEyMTQsIi4vc3VidHlwZXMiOjEyMTYsIi4vdGV4dF9kZWZhdWx0cyI6MTIxNywiLi94eV9kZWZhdWx0cyI6MTIxOH1dLDExOTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89ITE7aWYoZS5tYXJrZXIpe3ZhciBzPWUubWFya2VyLmNvbG9yLGw9KGUubWFya2VyLmxpbmV8fHt9KS5jb2xvcjtzJiYhaShzKT9vPXM6bCYmIWkobCkmJihvPWwpfWEoImZpbGxjb2xvciIsbi5hZGRPcGFjaXR5KChlLmxpbmV8fHt9KS5jb2xvcnx8b3x8ciwuNSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2xpYiI6Nzc2fV0sMTIwMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9e30sYT17X2Z1bGxMYXlvdXQ6cn0sbz1uLmdldEZyb21UcmFjZShhLGUsIngiKSxzPW4uZ2V0RnJvbVRyYWNlKGEsZSwieSIpO3JldHVybiBpLnhMYWJlbD1uLnRpY2tUZXh0KG8sby5jMmwodC54KSwhMCkudGV4dCxpLnlMYWJlbD1uLnRpY2tUZXh0KHMscy5jMmwodC55KSwhMCkudGV4dCxpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3fV0sMTIwMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksaT10KCIuL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYTtpZigibGluZXMiPT09dC5tb2RlKXJldHVybihyPXQubGluZS5jb2xvcikmJm4ub3BhY2l0eShyKT9yOnQuZmlsbGNvbG9yO2lmKCJub25lIj09PXQubW9kZSlyZXR1cm4gdC5maWxsP3QuZmlsbGNvbG9yOiIiO3ZhciBvPWUubWNjfHwodC5tYXJrZXJ8fHt9KS5jb2xvcixzPWUubWxjY3x8KCh0Lm1hcmtlcnx8e30pLmxpbmV8fHt9KS5jb2xvcjtyZXR1cm4oYT1vJiZuLm9wYWNpdHkobyk/bzpzJiZuLm9wYWNpdHkocykmJihlLm1sd3x8KCh0Lm1hcmtlcnx8e30pLmxpbmV8fHt9KS53aWR0aCk/czoiIik/bi5vcGFjaXR5KGEpPC4zP24uYWRkT3BhY2l0eShhLC4zKTphOihyPSh0LmxpbmV8fHt9KS5jb2xvcikmJm4ub3BhY2l0eShyKSYmaS5oYXNMaW5lcyh0KSYmdC5saW5lLndpZHRoP3I6dC5maWxsY29sb3J9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi9zdWJ0eXBlcyI6MTIxNn1dLDEyMDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksYT10KCIuLi8uLi9yZWdpc3RyeSIpLG89dCgiLi9nZXRfdHJhY2VfY29sb3IiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxsPW4uZmlsbFRleHQ7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGMpe3ZhciB1PXQuY2QsZj11WzBdLnRyYWNlLGg9dC54YSxwPXQueWEsZD1oLmMycChlKSxtPXAuYzJwKHIpLGc9W2QsbV0sdj1mLmhvdmVyb258fCIiLHk9LTEhPT1mLm1vZGUuaW5kZXhPZigibWFya2VycyIpPzM6LjUseD0hIWYueHBlcmlvZGFsaWdubWVudCxiPSEhZi55cGVyaW9kYWxpZ25tZW50O2lmKC0xIT09di5pbmRleE9mKCJwb2ludHMiKSl7dmFyIF89ZnVuY3Rpb24odCl7dmFyIGU9TWF0aC5tYXgoeSx0Lm1yY3x8MCkscj1oLmMycCh0LngpLWQsbj1wLmMycCh0LnkpLW07cmV0dXJuIE1hdGgubWF4KE1hdGguc3FydChyKnIrbipuKS1lLDEteS9lKX0sdz1pLmdldERpc3RhbmNlRnVuY3Rpb24oYywoZnVuY3Rpb24odCl7aWYoeCl7dmFyIGU9aC5jMnAodC54U3RhcnQpLHI9aC5jMnAodC54RW5kKTtyZXR1cm4gZD49TWF0aC5taW4oZSxyKSYmZDw9TWF0aC5tYXgoZSxyKT8wOjEvMH12YXIgbj1NYXRoLm1heCgzLHQubXJjfHwwKSxpPTEtMS9uLGE9TWF0aC5hYnMoaC5jMnAodC54KS1kKTtyZXR1cm4gYTxuP2kqYS9uOmEtbitpfSksKGZ1bmN0aW9uKHQpe2lmKGIpe3ZhciBlPXAuYzJwKHQueVN0YXJ0KSxyPXAuYzJwKHQueUVuZCk7cmV0dXJuIG0+PU1hdGgubWluKGUscikmJm08PU1hdGgubWF4KGUscik/MDoxLzB9dmFyIG49TWF0aC5tYXgoMyx0Lm1yY3x8MCksaT0xLTEvbixhPU1hdGguYWJzKHAuYzJwKHQueSktbSk7cmV0dXJuIGE8bj9pKmEvbjphLW4raX0pLF8pO2lmKGkuZ2V0Q2xvc2VzdCh1LHcsdCksITEhPT10LmluZGV4KXt2YXIgVD11W3QuaW5kZXhdLGs9aC5jMnAoVC54LCEwKSxBPXAuYzJwKFQueSwhMCksTT1ULm1yY3x8MTt0LmluZGV4PVQuaTt2YXIgUz11WzBdLnQub3JpZW50YXRpb24sRT1TJiYoVC5zTm9ybXx8VC5zKSxMPSJoIj09PVM/RTp2b2lkIDAhPT1ULm9yaWdfeD9ULm9yaWdfeDpULngsQz0idiI9PT1TP0U6dm9pZCAwIT09VC5vcmlnX3k/VC5vcmlnX3k6VC55O3JldHVybiBuLmV4dGVuZEZsYXQodCx7Y29sb3I6byhmLFQpLHgwOmstTSx4MTprK00seExhYmVsVmFsOkwseTA6QS1NLHkxOkErTSx5TGFiZWxWYWw6QyxzcGlrZURpc3RhbmNlOl8oVCksaG92ZXJ0ZW1wbGF0ZTpmLmhvdmVydGVtcGxhdGV9KSxsKFQsZix0KSxhLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwiaG92ZXJJbmZvIikoVCxmLHQpLFt0XX19aWYoLTEhPT12LmluZGV4T2YoImZpbGxzIikmJmYuX3BvbHlnb25zKXt2YXIgUCxJLE8seixELFIsRixCLE4saj1mLl9wb2x5Z29ucyxVPVtdLFY9ITEsSD0xLzAscT0tMS8wLEc9MS8wLFk9LTEvMDtmb3IoUD0wO1A8ai5sZW5ndGg7UCsrKShPPWpbUF0pLmNvbnRhaW5zKGcpJiYoVj0hVixVLnB1c2goTyksRz1NYXRoLm1pbihHLE8ueW1pbiksWT1NYXRoLm1heChZLE8ueW1heCkpO2lmKFYpe3ZhciBXPSgoRz1NYXRoLm1heChHLDApKSsoWT1NYXRoLm1pbihZLHAuX2xlbmd0aCkpKS8yO2ZvcihQPTA7UDxVLmxlbmd0aDtQKyspZm9yKHo9VVtQXS5wdHMsST0xO0k8ei5sZW5ndGg7SSsrKShCPXpbSS0xXVsxXSk+VyE9KE49eltJXVsxXSk+PVcmJihSPXpbSS0xXVswXSxGPXpbSV1bMF0sTi1CJiYoRD1SKyhGLVIpKihXLUIpLyhOLUIpLEg9TWF0aC5taW4oSCxEKSxxPU1hdGgubWF4KHEsRCkpKTtIPU1hdGgubWF4KEgsMCkscT1NYXRoLm1pbihxLGguX2xlbmd0aCk7dmFyIFg9cy5kZWZhdWx0TGluZTtyZXR1cm4gcy5vcGFjaXR5KGYuZmlsbGNvbG9yKT9YPWYuZmlsbGNvbG9yOnMub3BhY2l0eSgoZi5saW5lfHx7fSkuY29sb3IpJiYoWD1mLmxpbmUuY29sb3IpLG4uZXh0ZW5kRmxhdCh0LHtkaXN0YW5jZTp0Lm1heEhvdmVyRGlzdGFuY2UseDA6SCx4MTpxLHkwOlcseTE6Vyxjb2xvcjpYLGhvdmVydGVtcGxhdGU6ITF9KSxkZWxldGUgdC5pbmRleCxmLnRleHQmJiFBcnJheS5pc0FycmF5KGYudGV4dCk/dC50ZXh0PVN0cmluZyhmLnRleHQpOnQudGV4dD1mLm5hbWUsW3RdfX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9nZXRfdHJhY2VfY29sb3IiOjEyMDF9XSwxMjAzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc3VidHlwZXMiKTtlLmV4cG9ydHM9e2hhc0xpbmVzOm4uaGFzTGluZXMsaGFzTWFya2VyczpuLmhhc01hcmtlcnMsaGFzVGV4dDpuLmhhc1RleHQsaXNCdWJibGU6bi5pc0J1YmJsZSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi9jcm9zc190cmFjZV9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxjcm9zc1RyYWNlQ2FsYzp0KCIuL2Nyb3NzX3RyYWNlX2NhbGMiKSxhcnJheXNUb0NhbGNkYXRhOnQoIi4vYXJyYXlzX3RvX2NhbGNkYXRhIikscGxvdDp0KCIuL3Bsb3QiKSxjb2xvcmJhcjp0KCIuL21hcmtlcl9jb2xvcmJhciIpLGZvcm1hdExhYmVsczp0KCIuL2Zvcm1hdF9sYWJlbHMiKSxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0IiksYW5pbWF0YWJsZTohMCxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlciIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImNhcnRlc2lhbiIsInN2ZyIsInN5bWJvbHMiLCJlcnJvckJhcnNPSyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi9hcnJheXNfdG9fY2FsY2RhdGEiOjExOTAsIi4vYXR0cmlidXRlcyI6MTE5MSwiLi9jYWxjIjoxMTkyLCIuL2Nyb3NzX3RyYWNlX2NhbGMiOjExOTYsIi4vY3Jvc3NfdHJhY2VfZGVmYXVsdHMiOjExOTcsIi4vZGVmYXVsdHMiOjExOTgsIi4vZm9ybWF0X2xhYmVscyI6MTIwMCwiLi9ob3ZlciI6MTIwMiwiLi9tYXJrZXJfY29sb3JiYXIiOjEyMDksIi4vcGxvdCI6MTIxMiwiLi9zZWxlY3QiOjEyMTMsIi4vc3R5bGUiOjEyMTUsIi4vc3VidHlwZXMiOjEyMTZ9XSwxMjA0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmlzQXJyYXlPclR5cGVkQXJyYXksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvaGVscGVycyIpLmhhc0NvbG9yc2NhbGUsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbyxzLGwpe3ZhciBjPSh0Lm1hcmtlcnx8e30pLmNvbG9yOyhzKCJsaW5lLmNvbG9yIixyKSxpKHQsImxpbmUiKSk/YSh0LGUsbyxzLHtwcmVmaXg6ImxpbmUuIixjTGV0dGVyOiJjIn0pOnMoImxpbmUuY29sb3IiLCFuKGMpJiZjfHxyKTtzKCJsaW5lLndpZHRoIiksKGx8fHt9KS5ub0Rhc2h8fHMoImxpbmUuZGFzaCIpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjY0OSwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiOjY1MCwiLi4vLi4vbGliIjo3NzZ9XSwxMjA1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKSxpPW4uQkFETlVNLGE9bi5MT0dfQ0xJUCxvPWErLjUscz1hLS41LGw9dCgiLi4vLi4vbGliIiksYz1sLnNlZ21lbnRzSW50ZXJzZWN0LHU9bC5jb25zdHJhaW4sZj10KCIuL2NvbnN0YW50cyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLG4sYSxoLHAsZCxtLGcsdix5LHgsYixfLHcsVCxrLEEsTSxTPWUueGF4aXMsRT1lLnlheGlzLEw9ImxvZyI9PT1TLnR5cGUsQz0ibG9nIj09PUUudHlwZSxQPVMuX2xlbmd0aCxJPUUuX2xlbmd0aCxPPWUuY29ubmVjdEdhcHMsej1lLmJhc2VUb2xlcmFuY2UsRD1lLnNoYXBlLFI9ImxpbmVhciI9PT1ELEY9ZS5maWxsJiYibm9uZSIhPT1lLmZpbGwsQj1bXSxOPWYubWluVG9sZXJhbmNlLGo9dC5sZW5ndGgsVT1uZXcgQXJyYXkoaiksVj0wO2Z1bmN0aW9uIEgocil7dmFyIG49dFtyXTtpZighbilyZXR1cm4hMTt2YXIgYT1lLmxpbmVhcml6ZWQ/Uy5sMnAobi54KTpTLmMycChuLngpLGw9ZS5saW5lYXJpemVkP0UubDJwKG4ueSk6RS5jMnAobi55KTtpZihhPT09aSl7aWYoTCYmKGE9Uy5jMnAobi54LCEwKSksYT09PWkpcmV0dXJuITE7QyYmbD09PWkmJihhKj1NYXRoLmFicyhTLl9tKkkqKFMuX20+MD9vOnMpLyhFLl9tKlAqKEUuX20+MD9vOnMpKSkpLGEqPTFlM31pZihsPT09aSl7aWYoQyYmKGw9RS5jMnAobi55LCEwKSksbD09PWkpcmV0dXJuITE7bCo9MWUzfXJldHVyblthLGxdfWZ1bmN0aW9uIHEodCxlLHIsbil7dmFyIGk9ci10LGE9bi1lLG89LjUtdCxzPS41LWUsbD1pKmkrYSphLGM9aSpvK2EqcztpZihjPjAmJmM8bCl7dmFyIHU9byphLXMqaTtpZih1KnU8bClyZXR1cm4hMH19ZnVuY3Rpb24gRyh0LGUpe3ZhciByPXRbMF0vUCxuPXRbMV0vSSxpPU1hdGgubWF4KDAsLXIsci0xLC1uLG4tMSk7cmV0dXJuIGkmJnZvaWQgMCE9PUEmJnEocixuLEEsTSkmJihpPTApLGkmJmUmJnEocixuLGVbMF0vUCxlWzFdL0kpJiYoaT0wKSwoMStmLnRvbGVyYW5jZUdyb3d0aCppKSp6fWZ1bmN0aW9uIFkodCxlKXt2YXIgcj10WzBdLWVbMF0sbj10WzFdLWVbMV07cmV0dXJuIE1hdGguc3FydChyKnIrbipuKX12YXIgVyxYLFosSixLLFEsJCx0dD1mLm1heFNjcmVlbnNBd2F5LGV0PS1QKnR0LHJ0PVAqKDErdHQpLG50PS1JKnR0LGl0PUkqKDErdHQpLGF0PVtbZXQsbnQscnQsbnRdLFtydCxudCxydCxpdF0sW3J0LGl0LGV0LGl0XSxbZXQsaXQsZXQsbnRdXTtmdW5jdGlvbiBvdCh0KXtpZih0WzBdPGV0fHx0WzBdPnJ0fHx0WzFdPG50fHx0WzFdPml0KXJldHVyblt1KHRbMF0sZXQscnQpLHUodFsxXSxudCxpdCldfWZ1bmN0aW9uIHN0KHQsZSl7cmV0dXJuIHRbMF09PT1lWzBdJiYodFswXT09PWV0fHx0WzBdPT09cnQpfHwodFsxXT09PWVbMV0mJih0WzFdPT09bnR8fHRbMV09PT1pdCl8fHZvaWQgMCl9ZnVuY3Rpb24gbHQodCxlLHIpe3JldHVybiBmdW5jdGlvbihuLGkpe3ZhciBhPW90KG4pLG89b3QoaSkscz1bXTtpZihhJiZvJiZzdChhLG8pKXJldHVybiBzO2EmJnMucHVzaChhKSxvJiZzLnB1c2gobyk7dmFyIGM9MipsLmNvbnN0cmFpbigoblt0XStpW3RdKS8yLGUsciktKChhfHxuKVt0XSsob3x8aSlbdF0pO2MmJigoYSYmbz9jPjA9PWFbdF0+b1t0XT9hOm86YXx8bylbdF0rPWMpO3JldHVybiBzfX1mdW5jdGlvbiBjdCh0KXt2YXIgZT10WzBdLHI9dFsxXSxuPWU9PT1VW1YtMV1bMF0saT1yPT09VVtWLTFdWzFdO2lmKCFufHwhaSlpZihWPjEpe3ZhciBhPWU9PT1VW1YtMl1bMF0sbz1yPT09VVtWLTJdWzFdO24mJihlPT09ZXR8fGU9PT1ydCkmJmE/bz9WLS06VVtWLTFdPXQ6aSYmKHI9PT1udHx8cj09PWl0KSYmbz9hP1YtLTpVW1YtMV09dDpVW1YrK109dH1lbHNlIFVbVisrXT10fWZ1bmN0aW9uIHV0KHQpe1VbVi0xXVswXSE9PXRbMF0mJlVbVi0xXVsxXSE9PXRbMV0mJmN0KFtaLEpdKSxjdCh0KSxLPW51bGwsWj1KPTB9ZnVuY3Rpb24gZnQodCl7aWYoQT10WzBdL1AsTT10WzFdL0ksVz10WzBdPGV0P2V0OnRbMF0+cnQ/cnQ6MCxYPXRbMV08bnQ/bnQ6dFsxXT5pdD9pdDowLFd8fFgpe2lmKFYpaWYoSyl7dmFyIGU9JChLLHQpO2UubGVuZ3RoPjEmJih1dChlWzBdKSxVW1YrK109ZVsxXSl9ZWxzZSBRPSQoVVtWLTFdLHQpWzBdLFVbVisrXT1RO2Vsc2UgVVtWKytdPVtXfHx0WzBdLFh8fHRbMV1dO3ZhciByPVVbVi0xXTtXJiZYJiYoclswXSE9PVd8fHJbMV0hPT1YKT8oSyYmKFohPT1XJiZKIT09WD9jdChaJiZKPyhuPUssYT0oaT10KVswXS1uWzBdLG89KGlbMV0tblsxXSkvYSwoblsxXSppWzBdLWlbMV0qblswXSkvYT4wP1tvPjA/ZXQ6cnQsaXRdOltvPjA/cnQ6ZXQsbnRdKTpbWnx8VyxKfHxYXSk6WiYmSiYmY3QoW1osSl0pKSxjdChbVyxYXSkpOlotVyYmSi1YJiZjdChbV3x8WixYfHxKXSksSz10LFo9VyxKPVh9ZWxzZSBLJiZ1dCgkKEssdClbMF0pLFVbVisrXT10O3ZhciBuLGksYSxvfWZvcigibGluZWFyIj09PUR8fCJzcGxpbmUiPT09RD8kPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49MCxpPTA7aTw0O2krKyl7dmFyIGE9YXRbaV0sbz1jKHRbMF0sdFsxXSxlWzBdLGVbMV0sYVswXSxhWzFdLGFbMl0sYVszXSk7byYmKCFufHxNYXRoLmFicyhvLngtclswXVswXSk+MXx8TWF0aC5hYnMoby55LXJbMF1bMV0pPjEpJiYobz1bby54LG8ueV0sbiYmWShvLHQpPFkoclswXSx0KT9yLnVuc2hpZnQobyk6ci5wdXNoKG8pLG4rKyl9cmV0dXJuIHJ9OiJodiI9PT1EfHwidmgiPT09RD8kPWZ1bmN0aW9uKHQsZSl7dmFyIHI9W10sbj1vdCh0KSxpPW90KGUpO3JldHVybiBuJiZpJiZzdChuLGkpfHwobiYmci5wdXNoKG4pLGkmJnIucHVzaChpKSkscn06Imh2aCI9PT1EPyQ9bHQoMCxldCxydCk6InZodiI9PT1EJiYoJD1sdCgxLG50LGl0KSkscj0wO3I8ajtyKyspaWYobj1IKHIpKXtmb3IoVj0wLEs9bnVsbCxmdChuKSxyKys7cjxqO3IrKyl7aWYoIShoPUgocikpKXtpZihPKWNvbnRpbnVlO2JyZWFrfWlmKFImJmUuc2ltcGxpZnkpe3ZhciBodD1IKHIrMSk7aWYoeT1ZKGgsbiksRiYmKDA9PT1WfHxWPT09ai0xKXx8ISh5PEcoaCxodCkqTikpe2ZvcihnPVsoaFswXS1uWzBdKS95LChoWzFdLW5bMV0pL3ldLHA9bix4PXksYj13PVQ9MCxtPSExLGE9aCxyKys7cjx0Lmxlbmd0aDtyKyspe2lmKGQ9aHQsaHQ9SChyKzEpLCFkKXtpZihPKWNvbnRpbnVlO2JyZWFrfWlmKGs9KHY9W2RbMF0tblswXSxkWzFdLW5bMV1dKVswXSpnWzFdLXZbMV0qZ1swXSx3PU1hdGgubWluKHcsayksKFQ9TWF0aC5tYXgoVCxrKSktdz5HKGQsaHQpKWJyZWFrO2E9ZCwoXz12WzBdKmdbMF0rdlsxXSpnWzFdKT54Pyh4PV8saD1kLG09ITEpOl88YiYmKGI9XyxwPWQsbT0hMCl9aWYobT8oZnQoaCksYSE9PXAmJmZ0KHApKToocCE9PW4mJmZ0KHApLGEhPT1oJiZmdChoKSksZnQoYSkscj49dC5sZW5ndGh8fCFkKWJyZWFrO2Z0KGQpLG49ZH19ZWxzZSBmdChoKX1LJiZjdChbWnx8S1swXSxKfHxLWzFdXSksQi5wdXNoKFUuc2xpY2UoMCxWKSl9cmV0dXJuIEJ9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsIi4vY29uc3RhbnRzIjoxMTk1fV0sMTIwNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpeyJzcGxpbmUiPT09cigibGluZS5zaGFwZSIpJiZyKCJsaW5lLnNtb290aGluZyIpfX0se31dLDEyMDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49e3RvbmV4dHg6MSx0b25leHR5OjEsdG9uZXh0OjF9O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGksYSxvLHMsbCxjPXt9LHU9ITEsZj0tMSxoPTAscD0tMTtmb3IoYT0wO2E8ci5sZW5ndGg7YSsrKShvPShpPXJbYV1bMF0udHJhY2UpLnN0YWNrZ3JvdXB8fCIiKT9vIGluIGM/bD1jW29dOihsPWNbb109aCxoKyspOmkuZmlsbCBpbiBuJiZwPj0wP2w9cDoobD1wPWgsaCsrKSxsPGYmJih1PSEwKSxpLl9ncm91cEluZGV4PWY9bDt2YXIgZD1yLnNsaWNlKCk7dSYmZC5zb3J0KChmdW5jdGlvbih0LGUpe3ZhciByPXRbMF0udHJhY2Usbj1lWzBdLnRyYWNlO3JldHVybiByLl9ncm91cEluZGV4LW4uX2dyb3VwSW5kZXh8fHIuaW5kZXgtbi5pbmRleH0pKTt2YXIgbT17fTtmb3IoYT0wO2E8ZC5sZW5ndGg7YSsrKW89KGk9ZFthXVswXS50cmFjZSkuc3RhY2tncm91cHx8IiIsITA9PT1pLnZpc2libGU/KGkuX25leHR0cmFjZT1udWxsLGkuZmlsbCBpbiBuJiYocz1tW29dLGkuX3ByZXZ0cmFjZT1zfHxudWxsLHMmJihzLl9uZXh0dHJhY2U9aSkpLGkuX293bmZpbGw9aS5maWxsJiYoInRvemVybyI9PT1pLmZpbGwuc3Vic3RyKDAsNil8fCJ0b3NlbGYiPT09aS5maWxsfHwidG8iPT09aS5maWxsLnN1YnN0cigwLDIpJiYhaS5fcHJldnRyYWNlKSxtW29dPWkpOmkuX3ByZXZ0cmFjZT1pLl9uZXh0dHJhY2U9aS5fb3duZmlsbD1udWxsO3JldHVybiBkfX0se31dLDEyMDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtlfHwoZT0yKTt2YXIgcj10Lm1hcmtlcixpPXIuc2l6ZXJlZnx8MSxhPXIuc2l6ZW1pbnx8MCxvPSJhcmVhIj09PXIuc2l6ZW1vZGU/ZnVuY3Rpb24odCl7cmV0dXJuIE1hdGguc3FydCh0L2kpfTpmdW5jdGlvbih0KXtyZXR1cm4gdC9pfTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIHI9byh0L2UpO3JldHVybiBuKHIpJiZyPjA/TWF0aC5tYXgocixhKTowfX19LHsiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDEyMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjb250YWluZXI6Im1hcmtlciIsbWluOiJjbWluIixtYXg6ImNtYXgifX0se31dLDEyMTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2hlbHBlcnMiKS5oYXNDb2xvcnNjYWxlLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIiksbz10KCIuL3N1YnR5cGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMsbCxjKXt2YXIgdT1vLmlzQnViYmxlKHQpLGY9KHQubGluZXx8e30pLmNvbG9yOyhjPWN8fHt9LGYmJihyPWYpLGwoIm1hcmtlci5zeW1ib2wiKSxsKCJtYXJrZXIub3BhY2l0eSIsdT8uNzoxKSxsKCJtYXJrZXIuc2l6ZSIpLGwoIm1hcmtlci5jb2xvciIsciksaSh0LCJtYXJrZXIiKSYmYSh0LGUscyxsLHtwcmVmaXg6Im1hcmtlci4iLGNMZXR0ZXI6ImMifSksYy5ub1NlbGVjdHx8KGwoInNlbGVjdGVkLm1hcmtlci5jb2xvciIpLGwoInVuc2VsZWN0ZWQubWFya2VyLmNvbG9yIiksbCgic2VsZWN0ZWQubWFya2VyLnNpemUiKSxsKCJ1bnNlbGVjdGVkLm1hcmtlci5zaXplIikpLGMubm9MaW5lfHwobCgibWFya2VyLmxpbmUuY29sb3IiLGYmJiFBcnJheS5pc0FycmF5KGYpJiZlLm1hcmtlci5jb2xvciE9PWY/Zjp1P24uYmFja2dyb3VuZDpuLmRlZmF1bHRMaW5lKSxpKHQsIm1hcmtlci5saW5lIikmJmEodCxlLHMsbCx7cHJlZml4OiJtYXJrZXIubGluZS4iLGNMZXR0ZXI6ImMifSksbCgibWFya2VyLmxpbmUud2lkdGgiLHU/MTowKSksdSYmKGwoIm1hcmtlci5zaXplcmVmIiksbCgibWFya2VyLnNpemVtaW4iKSxsKCJtYXJrZXIuc2l6ZW1vZGUiKSksYy5ncmFkaWVudCkmJigibm9uZSIhPT1sKCJtYXJrZXIuZ3JhZGllbnQudHlwZSIpJiZsKCJtYXJrZXIuZ3JhZGllbnQuY29sb3IiKSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2NDksIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9oZWxwZXJzIjo2NTAsIi4vc3VidHlwZXMiOjEyMTZ9XSwxMjExOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLmRhdGVUaWNrMCxpPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5PTkVXRUVLO2Z1bmN0aW9uIGEodCxlKXtyZXR1cm4gbihlLHQlaT09MD8xOjApfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixuLGkpe2lmKGl8fChpPXt4OiEwLHk6ITB9KSxpLngpe3ZhciBvPW4oInhwZXJpb2QiKTtvJiYobigieHBlcmlvZDAiLGEobyxlLnhjYWxlbmRhcikpLG4oInhwZXJpb2RhbGlnbm1lbnQiKSl9aWYoaS55KXt2YXIgcz1uKCJ5cGVyaW9kIik7cyYmKG4oInlwZXJpb2QwIixhKHMsZS55Y2FsZW5kYXIpKSxuKCJ5cGVyaW9kYWxpZ25tZW50IikpfX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3Nn1dLDEyMTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2xpYiIpLG89YS5lbnN1cmVTaW5nbGUscz1hLmlkZW50aXR5LGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuL3N1YnR5cGVzIiksdT10KCIuL2xpbmVfcG9pbnRzIiksZj10KCIuL2xpbmtfdHJhY2VzIiksaD10KCIuLi8uLi9saWIvcG9seWdvbiIpLnRlc3RlcjtmdW5jdGlvbiBwKHQsZSxyLGYscCxkLG0pe3ZhciBnOyFmdW5jdGlvbih0LGUscixpLG8pe3ZhciBzPXIueGF4aXMsbD1yLnlheGlzLHU9bi5leHRlbnQoYS5zaW1wbGVNYXAocy5yYW5nZSxzLnIyYykpLGY9bi5leHRlbnQoYS5zaW1wbGVNYXAobC5yYW5nZSxsLnIyYykpLGg9aVswXS50cmFjZTtpZighYy5oYXNNYXJrZXJzKGgpKXJldHVybjt2YXIgcD1oLm1hcmtlci5tYXhkaXNwbGF5ZWQ7aWYoMD09PXApcmV0dXJuO3ZhciBkPWkuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC54Pj11WzBdJiZ0Lng8PXVbMV0mJnQueT49ZlswXSYmdC55PD1mWzFdfSkpLG09TWF0aC5jZWlsKGQubGVuZ3RoL3ApLGc9MDtvLmZvckVhY2goKGZ1bmN0aW9uKHQscil7dmFyIG49dFswXS50cmFjZTtjLmhhc01hcmtlcnMobikmJm4ubWFya2VyLm1heGRpc3BsYXllZD4wJiZyPGUmJmcrK30pKTt2YXIgdj1NYXRoLnJvdW5kKGcqbS8zK01hdGguZmxvb3IoZy8zKSptLzcuMSk7aS5mb3JFYWNoKChmdW5jdGlvbih0KXtkZWxldGUgdC52aXN9KSksZC5mb3JFYWNoKChmdW5jdGlvbih0LGUpezA9PT1NYXRoLnJvdW5kKChlK3YpJW0pJiYodC52aXM9ITApfSkpfSgwLGUscixmLHApO3ZhciB2PSEhbSYmbS5kdXJhdGlvbj4wO2Z1bmN0aW9uIHkodCl7cmV0dXJuIHY/dC50cmFuc2l0aW9uKCk6dH12YXIgeD1yLnhheGlzLGI9ci55YXhpcyxfPWZbMF0udHJhY2Usdz1fLmxpbmUsVD1uLnNlbGVjdChkKSxrPW8oVCwiZyIsImVycm9yYmFycyIpLEE9byhULCJnIiwibGluZXMiKSxNPW8oVCwiZyIsInBvaW50cyIpLFM9byhULCJnIiwidGV4dCIpO2lmKGkuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJwbG90IikodCxrLHIsbSksITA9PT1fLnZpc2libGUpe3ZhciBFLEw7eShUKS5zdHlsZSgib3BhY2l0eSIsXy5vcGFjaXR5KTt2YXIgQz1fLmZpbGwuY2hhckF0KF8uZmlsbC5sZW5ndGgtMSk7IngiIT09QyYmInkiIT09QyYmKEM9IiIpLGZbMF1bci5pc1JhbmdlUGxvdD8ibm9kZVJhbmdlUGxvdDMiOiJub2RlMyJdPVQ7dmFyIFAsSSxPPSIiLHo9W10sRD1fLl9wcmV2dHJhY2U7RCYmKE89RC5fcHJldlJldnBhdGh8fCIiLEw9RC5fbmV4dEZpbGwsej1ELl9wb2x5Z29ucyk7dmFyIFIsRixCLE4saixVLFYsSD0iIixxPSIiLEc9W10sWT1hLm5vb3A7aWYoRT1fLl9vd25GaWxsLGMuaGFzTGluZXMoXyl8fCJub25lIiE9PV8uZmlsbCl7Zm9yKEwmJkwuZGF0dW0oZiksLTEhPT1bImh2IiwidmgiLCJodmgiLCJ2aHYiXS5pbmRleE9mKHcuc2hhcGUpPyhSPWwuc3RlcHMody5zaGFwZSksRj1sLnN0ZXBzKHcuc2hhcGUuc3BsaXQoIiIpLnJldmVyc2UoKS5qb2luKCIiKSkpOlI9Rj0ic3BsaW5lIj09PXcuc2hhcGU/ZnVuY3Rpb24odCl7dmFyIGU9dFt0Lmxlbmd0aC0xXTtyZXR1cm4gdC5sZW5ndGg+MSYmdFswXVswXT09PWVbMF0mJnRbMF1bMV09PT1lWzFdP2wuc21vb3RoY2xvc2VkKHQuc2xpY2UoMSksdy5zbW9vdGhpbmcpOmwuc21vb3Rob3Blbih0LHcuc21vb3RoaW5nKX06ZnVuY3Rpb24odCl7cmV0dXJuIk0iK3Quam9pbigiTCIpfSxCPWZ1bmN0aW9uKHQpe3JldHVybiBGKHQucmV2ZXJzZSgpKX0sRz11KGYse3hheGlzOngseWF4aXM6Yixjb25uZWN0R2FwczpfLmNvbm5lY3RnYXBzLGJhc2VUb2xlcmFuY2U6TWF0aC5tYXgody53aWR0aHx8MSwzKS80LHNoYXBlOncuc2hhcGUsc2ltcGxpZnk6dy5zaW1wbGlmeSxmaWxsOl8uZmlsbH0pLFY9Xy5fcG9seWdvbnM9bmV3IEFycmF5KEcubGVuZ3RoKSxnPTA7ZzxHLmxlbmd0aDtnKyspXy5fcG9seWdvbnNbZ109aChHW2ddKTtHLmxlbmd0aCYmKE49R1swXVswXSxVPShqPUdbRy5sZW5ndGgtMV0pW2oubGVuZ3RoLTFdKSxZPWZ1bmN0aW9uKHQpe3JldHVybiBmdW5jdGlvbihlKXtpZihQPVIoZSksST1CKGUpLEg/Qz8oSCs9IkwiK1Auc3Vic3RyKDEpLHE9SSsiTCIrcS5zdWJzdHIoMSkpOihIKz0iWiIrUCxxPUkrIloiK3EpOihIPVAscT1JKSxjLmhhc0xpbmVzKF8pJiZlLmxlbmd0aD4xKXt2YXIgcj1uLnNlbGVjdCh0aGlzKTtpZihyLmRhdHVtKGYpLHQpeShyLnN0eWxlKCJvcGFjaXR5IiwwKS5hdHRyKCJkIixQKS5jYWxsKGwubGluZUdyb3VwU3R5bGUpKS5zdHlsZSgib3BhY2l0eSIsMSk7ZWxzZXt2YXIgaT15KHIpO2kuYXR0cigiZCIsUCksbC5zaW5nbGVMaW5lU3R5bGUoZixpKX19fX19dmFyIFc9QS5zZWxlY3RBbGwoIi5qcy1saW5lIikuZGF0YShHKTt5KFcuZXhpdCgpKS5zdHlsZSgib3BhY2l0eSIsMCkucmVtb3ZlKCksVy5lYWNoKFkoITEpKSxXLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgianMtbGluZSIsITApLnN0eWxlKCJ2ZWN0b3ItZWZmZWN0Iiwibm9uLXNjYWxpbmctc3Ryb2tlIikuY2FsbChsLmxpbmVHcm91cFN0eWxlKS5lYWNoKFkoITApKSxsLnNldENsaXBVcmwoVyxyLmxheWVyQ2xpcElkLHQpLEcubGVuZ3RoPyhFPyhFLmRhdHVtKGYpLE4mJlUmJihDPygieSI9PT1DP05bMV09VVsxXT1iLmMycCgwLCEwKToieCI9PT1DJiYoTlswXT1VWzBdPXguYzJwKDAsITApKSx5KEUpLmF0dHIoImQiLCJNIitVKyJMIitOKyJMIitILnN1YnN0cigxKSkuY2FsbChsLnNpbmdsZUZpbGxTdHlsZSkpOnkoRSkuYXR0cigiZCIsSCsiWiIpLmNhbGwobC5zaW5nbGVGaWxsU3R5bGUpKSk6TCYmKCJ0b25leHQiPT09Xy5maWxsLnN1YnN0cigwLDYpJiZIJiZPPygidG9uZXh0Ij09PV8uZmlsbD95KEwpLmF0dHIoImQiLEgrIloiK08rIloiKS5jYWxsKGwuc2luZ2xlRmlsbFN0eWxlKTp5KEwpLmF0dHIoImQiLEgrIkwiK08uc3Vic3RyKDEpKyJaIikuY2FsbChsLnNpbmdsZUZpbGxTdHlsZSksXy5fcG9seWdvbnM9Xy5fcG9seWdvbnMuY29uY2F0KHopKTooWihMKSxfLl9wb2x5Z29ucz1udWxsKSksXy5fcHJldlJldnBhdGg9cSxfLl9wcmV2UG9seWdvbnM9Vik6KEU/WihFKTpMJiZaKEwpLF8uX3BvbHlnb25zPV8uX3ByZXZSZXZwYXRoPV8uX3ByZXZQb2x5Z29ucz1udWxsKSxNLmRhdHVtKGYpLFMuZGF0dW0oZiksZnVuY3Rpb24oZSxpLGEpe3ZhciBvLHU9YVswXS50cmFjZSxmPWMuaGFzTWFya2Vycyh1KSxoPWMuaGFzVGV4dCh1KSxwPXR0KHUpLGQ9ZXQsbT1ldDtpZihmfHxoKXt2YXIgZz1zLF89dS5zdGFja2dyb3VwLHc9XyYmImluZmVyIHplcm8iPT09dC5fZnVsbExheW91dC5fc2NhdHRlclN0YWNrT3B0c1t4Ll9pZCtiLl9pZF1bX10uc3RhY2tnYXBzO3UubWFya2VyLm1heGRpc3BsYXllZHx8dS5fbmVlZHNDdWxsP2c9dz9LOko6XyYmIXcmJihnPVEpLGYmJihkPWcpLGgmJihtPWcpfXZhciBULGs9KG89ZS5zZWxlY3RBbGwoInBhdGgucG9pbnQiKS5kYXRhKGQscCkpLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuY2xhc3NlZCgicG9pbnQiLCEwKTt2JiZrLmNhbGwobC5wb2ludFN0eWxlLHUsdCkuY2FsbChsLnRyYW5zbGF0ZVBvaW50cyx4LGIpLnN0eWxlKCJvcGFjaXR5IiwwKS50cmFuc2l0aW9uKCkuc3R5bGUoIm9wYWNpdHkiLDEpLG8ub3JkZXIoKSxmJiYoVD1sLm1ha2VQb2ludFN0eWxlRm5zKHUpKSxvLmVhY2goKGZ1bmN0aW9uKGUpe3ZhciBpPW4uc2VsZWN0KHRoaXMpLGE9eShpKTtsLnRyYW5zbGF0ZVBvaW50KGUsYSx4LGIpPyhsLnNpbmdsZVBvaW50U3R5bGUoZSxhLHUsVCx0KSxyLmxheWVyQ2xpcElkJiZsLmhpZGVPdXRzaWRlUmFuZ2VQb2ludChlLGEseCxiLHUueGNhbGVuZGFyLHUueWNhbGVuZGFyKSx1LmN1c3RvbWRhdGEmJmkuY2xhc3NlZCgicGxvdGx5LWN1c3RvbWRhdGEiLG51bGwhPT1lLmRhdGEmJnZvaWQgMCE9PWUuZGF0YSkpOmEucmVtb3ZlKCl9KSksdj9vLmV4aXQoKS50cmFuc2l0aW9uKCkuc3R5bGUoIm9wYWNpdHkiLDApLnJlbW92ZSgpOm8uZXhpdCgpLnJlbW92ZSgpLChvPWkuc2VsZWN0QWxsKCJnIikuZGF0YShtLHApKS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQoInRleHRwb2ludCIsITApLmFwcGVuZCgidGV4dCIpLG8ub3JkZXIoKSxvLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHRoaXMpLGk9eShlLnNlbGVjdCgidGV4dCIpKTtsLnRyYW5zbGF0ZVBvaW50KHQsaSx4LGIpP3IubGF5ZXJDbGlwSWQmJmwuaGlkZU91dHNpZGVSYW5nZVBvaW50KHQsZSx4LGIsdS54Y2FsZW5kYXIsdS55Y2FsZW5kYXIpOmUucmVtb3ZlKCl9KSksby5zZWxlY3RBbGwoInRleHQiKS5jYWxsKGwudGV4dFBvaW50U3R5bGUsdSx0KS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT14LmMycCh0LngpLHI9Yi5jMnAodC55KTtuLnNlbGVjdCh0aGlzKS5zZWxlY3RBbGwoInRzcGFuLmxpbmUiKS5lYWNoKChmdW5jdGlvbigpe3kobi5zZWxlY3QodGhpcykpLmF0dHIoe3g6ZSx5OnJ9KX0pKX0pKSxvLmV4aXQoKS5yZW1vdmUoKX0oTSxTLGYpO3ZhciBYPSExPT09Xy5jbGlwb25heGlzP251bGw6ci5sYXllckNsaXBJZDtsLnNldENsaXBVcmwoTSxYLHQpLGwuc2V0Q2xpcFVybChTLFgsdCl9ZnVuY3Rpb24gWih0KXt5KHQpLmF0dHIoImQiLCJNMCwwWiIpfWZ1bmN0aW9uIEoodCl7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4hdC5nYXAmJnQudmlzfSkpfWZ1bmN0aW9uIEsodCl7cmV0dXJuIHQuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gdC52aXN9KSl9ZnVuY3Rpb24gUSh0KXtyZXR1cm4gdC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiF0LmdhcH0pKX1mdW5jdGlvbiAkKHQpe3JldHVybiB0LmlkfWZ1bmN0aW9uIHR0KHQpe2lmKHQuaWRzKXJldHVybiAkfWZ1bmN0aW9uIGV0KCl7cmV0dXJuITF9fWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscixpLGEsYyl7dmFyIHUsaCxkPSFhLG09ISFhJiZhLmR1cmF0aW9uPjAsZz1mKHQsZSxyKTsoKHU9aS5zZWxlY3RBbGwoImcudHJhY2UiKS5kYXRhKGcsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLnVpZH0pKSkuZW50ZXIoKS5hcHBlbmQoImciKS5hdHRyKCJjbGFzcyIsKGZ1bmN0aW9uKHQpe3JldHVybiJ0cmFjZSBzY2F0dGVyIHRyYWNlIit0WzBdLnRyYWNlLnVpZH0pKS5zdHlsZSgic3Ryb2tlLW1pdGVybGltaXQiLDIpLHUub3JkZXIoKSxmdW5jdGlvbih0LGUscil7ZS5lYWNoKChmdW5jdGlvbihlKXt2YXIgaT1vKG4uc2VsZWN0KHRoaXMpLCJnIiwiZmlsbHMiKTtsLnNldENsaXBVcmwoaSxyLmxheWVyQ2xpcElkLHQpO3ZhciBhPWVbMF0udHJhY2UsYz1bXTthLl9vd25maWxsJiZjLnB1c2goIl9vd25GaWxsIiksYS5fbmV4dHRyYWNlJiZjLnB1c2goIl9uZXh0RmlsbCIpO3ZhciB1PWkuc2VsZWN0QWxsKCJnIikuZGF0YShjLHMpO3UuZW50ZXIoKS5hcHBlbmQoImciKSx1LmV4aXQoKS5lYWNoKChmdW5jdGlvbih0KXthW3RdPW51bGx9KSkucmVtb3ZlKCksdS5vcmRlcigpLmVhY2goKGZ1bmN0aW9uKHQpe2FbdF09byhuLnNlbGVjdCh0aGlzKSwicGF0aCIsImpzLWZpbGwiKX0pKX0pKX0odCx1LGUpLG0pPyhjJiYoaD1jKCkpLG4udHJhbnNpdGlvbigpLmR1cmF0aW9uKGEuZHVyYXRpb24pLmVhc2UoYS5lYXNpbmcpLmVhY2goImVuZCIsKGZ1bmN0aW9uKCl7aCYmaCgpfSkpLmVhY2goImludGVycnVwdCIsKGZ1bmN0aW9uKCl7aCYmaCgpfSkpLmVhY2goKGZ1bmN0aW9uKCl7aS5zZWxlY3RBbGwoImcudHJhY2UiKS5lYWNoKChmdW5jdGlvbihyLG4pe3AodCxuLGUscixnLHRoaXMsYSl9KSl9KSkpOnUuZWFjaCgoZnVuY3Rpb24ocixuKXtwKHQsbixlLHIsZyx0aGlzLGEpfSkpO2QmJnUuZXhpdCgpLnJlbW92ZSgpLGkuc2VsZWN0QWxsKCJwYXRoOm5vdChbZF0pIikucmVtb3ZlKCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL3BvbHlnb24iOjc4OCwiLi4vLi4vcmVnaXN0cnkiOjkwNCwiLi9saW5lX3BvaW50cyI6MTIwNSwiLi9saW5rX3RyYWNlcyI6MTIwNywiLi9zdWJ0eXBlcyI6MTIxNiwiQHBsb3RseS9kMyI6NTh9XSwxMjEzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vc3VidHlwZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixpLGEsbyxzPXQuY2QsbD10LnhheGlzLGM9dC55YXhpcyx1PVtdLGY9c1swXS50cmFjZTtpZighbi5oYXNNYXJrZXJzKGYpJiYhbi5oYXNUZXh0KGYpKXJldHVybltdO2lmKCExPT09ZSlmb3Iocj0wO3I8cy5sZW5ndGg7cisrKXNbcl0uc2VsZWN0ZWQ9MDtlbHNlIGZvcihyPTA7cjxzLmxlbmd0aDtyKyspaT1zW3JdLGE9bC5jMnAoaS54KSxvPWMuYzJwKGkueSksbnVsbCE9PWkuaSYmZS5jb250YWlucyhbYSxvXSwhMSxyLHQpPyh1LnB1c2goe3BvaW50TnVtYmVyOmkuaSx4OmwuYzJkKGkueCkseTpjLmMyZChpLnkpfSksaS5zZWxlY3RlZD0xKTppLnNlbGVjdGVkPTA7cmV0dXJuIHV9fSx7Ii4vc3VidHlwZXMiOjEyMTZ9XSwxMjE0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPVsib3JpZW50YXRpb24iLCJncm91cG5vcm0iLCJzdGFja2dhcHMiXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSl7dmFyIGE9ci5fc2NhdHRlclN0YWNrT3B0cyxvPWkoInN0YWNrZ3JvdXAiKTtpZihvKXt2YXIgcz1lLnhheGlzK2UueWF4aXMsbD1hW3NdO2x8fChsPWFbc109e30pO3ZhciBjPWxbb10sdT0hMTtjP2MudHJhY2VzLnB1c2goZSk6KGM9bFtvXT17dHJhY2VJbmRpY2VzOltdLHRyYWNlczpbZV19LHU9ITApO2Zvcih2YXIgZj17b3JpZW50YXRpb246ZS54JiYhZS55PyJoIjoidiJ9LGg9MDtoPG4ubGVuZ3RoO2grKyl7dmFyIHA9bltoXSxkPXArIkZvdW5kIjtpZighY1tkXSl7dmFyIG09dm9pZCAwIT09dFtwXSxnPSJvcmllbnRhdGlvbiI9PT1wO2lmKChtfHx1KSYmKGNbcF09aShwLGZbcF0pLGcmJihjLmZpbGxEZmx0PSJoIj09PWNbcF0/InRvbmV4dHgiOiJ0b25leHR5IiksbSYmKGNbZF09ITAsIXUmJihkZWxldGUgYy50cmFjZXNbMF1bcF0sZykpKSlmb3IodmFyIHY9MDt2PGMudHJhY2VzLmxlbmd0aC0xO3YrKyl7dmFyIHk9Yy50cmFjZXNbdl07eS5faW5wdXQuZmlsbCE9PXkuZmlsbCYmKHkuZmlsbD1jLmZpbGxEZmx0KX19fXJldHVybiBjfX19LHt9XSwxMjE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi4vLi4vcmVnaXN0cnkiKTtmdW5jdGlvbiBvKHQsZSxyKXtpLnBvaW50U3R5bGUodC5zZWxlY3RBbGwoInBhdGgucG9pbnQiKSxlLHIpfWZ1bmN0aW9uIHModCxlLHIpe2kudGV4dFBvaW50U3R5bGUodC5zZWxlY3RBbGwoInRleHQiKSxlLHIpfWUuZXhwb3J0cz17c3R5bGU6ZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodCkuc2VsZWN0QWxsKCJnLnRyYWNlLnNjYXR0ZXIiKTtlLnN0eWxlKCJvcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHRbMF0udHJhY2Uub3BhY2l0eX0pKSxlLnNlbGVjdEFsbCgiZy5wb2ludHMiKS5lYWNoKChmdW5jdGlvbihlKXtvKG4uc2VsZWN0KHRoaXMpLGUudHJhY2V8fGVbMF0udHJhY2UsdCl9KSksZS5zZWxlY3RBbGwoImcudGV4dCIpLmVhY2goKGZ1bmN0aW9uKGUpe3Mobi5zZWxlY3QodGhpcyksZS50cmFjZXx8ZVswXS50cmFjZSx0KX0pKSxlLnNlbGVjdEFsbCgiZy50cmFjZSBwYXRoLmpzLWxpbmUiKS5jYWxsKGkubGluZUdyb3VwU3R5bGUpLGUuc2VsZWN0QWxsKCJnLnRyYWNlIHBhdGguanMtZmlsbCIpLmNhbGwoaS5maWxsR3JvdXBTdHlsZSksYS5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsInN0eWxlIikoZSl9LHN0eWxlUG9pbnRzOm8sc3R5bGVUZXh0OnMsc3R5bGVPblNlbGVjdDpmdW5jdGlvbih0LGUscil7dmFyIG49ZVswXS50cmFjZTtuLnNlbGVjdGVkcG9pbnRzPyhpLnNlbGVjdGVkUG9pbnRTdHlsZShyLnNlbGVjdEFsbCgicGF0aC5wb2ludCIpLG4pLGkuc2VsZWN0ZWRUZXh0U3R5bGUoci5zZWxlY3RBbGwoInRleHQiKSxuKSk6KG8ocixuLHQpLHMocixuLHQpKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9yZWdpc3RyeSI6OTA0LCJAcGxvdGx5L2QzIjo1OH1dLDEyMTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIik7ZS5leHBvcnRzPXtoYXNMaW5lczpmdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlJiZ0Lm1vZGUmJi0xIT09dC5tb2RlLmluZGV4T2YoImxpbmVzIil9LGhhc01hcmtlcnM6ZnVuY3Rpb24odCl7cmV0dXJuIHQudmlzaWJsZSYmKHQubW9kZSYmLTEhPT10Lm1vZGUuaW5kZXhPZigibWFya2VycyIpfHwic3Bsb20iPT09dC50eXBlKX0saGFzVGV4dDpmdW5jdGlvbih0KXtyZXR1cm4gdC52aXNpYmxlJiZ0Lm1vZGUmJi0xIT09dC5tb2RlLmluZGV4T2YoInRleHQiKX0saXNCdWJibGU6ZnVuY3Rpb24odCl7cmV0dXJuIG4uaXNQbGFpbk9iamVjdCh0Lm1hcmtlcikmJm4uaXNBcnJheU9yVHlwZWRBcnJheSh0Lm1hcmtlci5zaXplKX19fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sMTIxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaSxhKXthPWF8fHt9LGkoInRleHRwb3NpdGlvbiIpLG4uY29lcmNlRm9udChpLCJ0ZXh0Zm9udCIsci5mb250KSxhLm5vU2VsZWN0fHwoaSgic2VsZWN0ZWQudGV4dGZvbnQuY29sb3IiKSxpKCJ1bnNlbGVjdGVkLnRleHRmb250LmNvbG9yIikpfX0seyIuLi8uLi9saWIiOjc3Nn1dLDEyMTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbyxzPWEoIngiKSxsPWEoInkiKTtpZihpLmdldENvbXBvbmVudE1ldGhvZCgiY2FsZW5kYXJzIiwiaGFuZGxlVHJhY2VEZWZhdWx0cyIpKHQsZSxbIngiLCJ5Il0scikscyl7dmFyIGM9bi5taW5Sb3dMZW5ndGgocyk7bD9vPU1hdGgubWluKGMsbi5taW5Sb3dMZW5ndGgobCkpOihvPWMsYSgieTAiKSxhKCJkeSIpKX1lbHNle2lmKCFsKXJldHVybiAwO289bi5taW5Sb3dMZW5ndGgobCksYSgieDAiKSxhKCJkeCIpfXJldHVybiBlLl9sZW5ndGg9byxvfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcmVnaXN0cnkiOjkwNH1dLDEyMTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsbz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLHM9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGw9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGM9dCgiLi4vLi4vY29uc3RhbnRzL2dsM2RfZGFzaGVzIiksdT10KCIuLi8uLi9jb25zdGFudHMvZ2wzZF9tYXJrZXJzIiksZj10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxoPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxwPXQoIi4uLy4uL2xpYi9zb3J0X29iamVjdF9rZXlzIiksZD1uLmxpbmUsbT1uLm1hcmtlcixnPW0ubGluZSx2PWYoe3dpZHRoOmQud2lkdGgsZGFzaDp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOnAoYyksZGZsdDoic29saWQifX0saSgibGluZSIpKTt2YXIgeT1lLmV4cG9ydHM9aCh7eDpuLngseTpuLnksejp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHRleHQ6Zih7fSxuLnRleHQse30pLHRleHR0ZW1wbGF0ZTpzKHt9LHt9KSxob3ZlcnRleHQ6Zih7fSxuLmhvdmVydGV4dCx7fSksaG92ZXJ0ZW1wbGF0ZTpvKCkseGhvdmVyZm9ybWF0OmEoIngiKSx5aG92ZXJmb3JtYXQ6YSgieSIpLHpob3ZlcmZvcm1hdDphKCJ6IiksbW9kZTpmKHt9LG4ubW9kZSx7ZGZsdDoibGluZXMrbWFya2VycyJ9KSxzdXJmYWNlYXhpczp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlstMSwwLDEsMl0sZGZsdDotMX0sc3VyZmFjZWNvbG9yOnt2YWxUeXBlOiJjb2xvciJ9LHByb2plY3Rpb246e3g6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxzY2FsZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MTAsZGZsdDoyLzN9fSx5OntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxvcGFjaXR5Ont2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6MX0sc2NhbGU6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEwLGRmbHQ6Mi8zfX0sejp7c2hvdzp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMX0sb3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0OjF9LHNjYWxlOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxMCxkZmx0OjIvM319fSxjb25uZWN0Z2FwczpuLmNvbm5lY3RnYXBzLGxpbmU6dixtYXJrZXI6Zih7c3ltYm9sOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6cCh1KSxkZmx0OiJjaXJjbGUiLGFycmF5T2s6ITB9LHNpemU6Zih7fSxtLnNpemUse2RmbHQ6OH0pLHNpemVyZWY6bS5zaXplcmVmLHNpemVtaW46bS5zaXplbWluLHNpemVtb2RlOm0uc2l6ZW1vZGUsb3BhY2l0eTpmKHt9LG0ub3BhY2l0eSx7YXJyYXlPazohMX0pLGNvbG9yYmFyOm0uY29sb3JiYXIsbGluZTpmKHt3aWR0aDpmKHt9LGcud2lkdGgse2FycmF5T2s6ITF9KX0saSgibWFya2VyLmxpbmUiKSl9LGkoIm1hcmtlciIpKSx0ZXh0cG9zaXRpb246Zih7fSxuLnRleHRwb3NpdGlvbix7ZGZsdDoidG9wIGNlbnRlciJ9KSx0ZXh0Zm9udDp7Y29sb3I6bi50ZXh0Zm9udC5jb2xvcixzaXplOm4udGV4dGZvbnQuc2l6ZSxmYW1pbHk6Zih7fSxuLnRleHRmb250LmZhbWlseSx7YXJyYXlPazohMX0pfSxob3ZlcmluZm86Zih7fSxsLmhvdmVyaW5mbyl9LCJjYWxjIiwibmVzdGVkIik7eS54LmVkaXRUeXBlPXkueS5lZGl0VHlwZT15LnouZWRpdFR5cGU9ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2NvbnN0YW50cy9nbDNkX2Rhc2hlcyI6NzQ5LCIuLi8uLi9jb25zdGFudHMvZ2wzZF9tYXJrZXJzIjo3NTAsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vbGliL3NvcnRfb2JqZWN0X2tleXMiOjc5OSwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo4MzAsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTkxfV0sMTIyMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLGk9dCgiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1be3g6ITEseTohMSx0cmFjZTplLHQ6e319XTtyZXR1cm4gbihyLGUpLGkodCxlKSxyfX0seyIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6MTE5MCwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjExOTR9XSwxMjIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5Iik7ZnVuY3Rpb24gaSh0LGUscixpKXtpZighZXx8IWUudmlzaWJsZSlyZXR1cm4gbnVsbDtmb3IodmFyIGE9bi5nZXRDb21wb25lbnRNZXRob2QoImVycm9yYmFycyIsIm1ha2VDb21wdXRlRXJyb3IiKShlKSxvPW5ldyBBcnJheSh0Lmxlbmd0aCkscz0wO3M8dC5sZW5ndGg7cysrKXt2YXIgbD1hKCt0W3NdLHMpO2lmKCJsb2ciPT09aS50eXBlKXt2YXIgYz1pLmMybCh0W3NdKSx1PXRbc10tbFswXSxmPXRbc10rbFsxXTtpZihvW3NdPVsoaS5jMmwodSwhMCktYykqciwoaS5jMmwoZiwhMCktYykqcl0sdT4wKXt2YXIgaD1pLmMybCh1KTtpLl9sb3dlckxvZ0Vycm9yQm91bmR8fChpLl9sb3dlckxvZ0Vycm9yQm91bmQ9aCksaS5fbG93ZXJFcnJvckJvdW5kPU1hdGgubWluKGkuX2xvd2VyTG9nRXJyb3JCb3VuZCxoKX19ZWxzZSBvW3NdPVstbFswXSpyLGxbMV0qcl19cmV0dXJuIG99ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1baSh0LngsdC5lcnJvcl94LGVbMF0sci54YXhpcyksaSh0LnksdC5lcnJvcl95LGVbMV0sci55YXhpcyksaSh0LnosdC5lcnJvcl96LGVbMl0sci56YXhpcyldLGE9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPTA7ZTx0Lmxlbmd0aDtlKyspaWYodFtlXSlyZXR1cm4gdFtlXS5sZW5ndGg7cmV0dXJuIDB9KG4pO2lmKDA9PT1hKXJldHVybiBudWxsO2Zvcih2YXIgbz1uZXcgQXJyYXkoYSkscz0wO3M8YTtzKyspe2Zvcih2YXIgbD1bWzAsMCwwXSxbMCwwLDBdXSxjPTA7YzwzO2MrKylpZihuW2NdKWZvcih2YXIgdT0wO3U8Mjt1KyspbFt1XVtjXT1uW2NdW3NdW3VdO29bc109bH1yZXR1cm4gb319LHsiLi4vLi4vcmVnaXN0cnkiOjkwNH1dLDEyMjI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtbGluZTNkIiksaT10KCJnbC1zY2F0dGVyM2QiKSxhPXQoImdsLWVycm9yM2QiKSxvPXQoImdsLW1lc2gzZCIpLHM9dCgiZGVsYXVuYXktdHJpYW5ndWxhdGUiKSxsPXQoIi4uLy4uL2xpYiIpLGM9dCgiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSIpLHU9dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLmZvcm1hdENvbG9yLGY9dCgiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiKSxoPXQoIi4uLy4uL2NvbnN0YW50cy9nbDNkX2Rhc2hlcyIpLHA9dCgiLi4vLi4vY29uc3RhbnRzL2dsM2RfbWFya2VycyIpLGQ9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxtPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZSxnPXQoIi4vY2FsY19lcnJvcnMiKTtmdW5jdGlvbiB2KHQsZSl7dGhpcy5zY2VuZT10LHRoaXMudWlkPWUsdGhpcy5saW5lUGxvdD1udWxsLHRoaXMuc2NhdHRlclBsb3Q9bnVsbCx0aGlzLmVycm9yQmFycz1udWxsLHRoaXMudGV4dE1hcmtlcnM9bnVsbCx0aGlzLmRlbGF1bmF5TWVzaD1udWxsLHRoaXMuY29sb3I9bnVsbCx0aGlzLm1vZGU9IiIsdGhpcy5kYXRhUG9pbnRzPVtdLHRoaXMuYXhlc0JvdW5kcz1bWy0xLzAsLTEvMCwtMS8wXSxbMS8wLDEvMCwxLzBdXSx0aGlzLnRleHRMYWJlbHM9bnVsbCx0aGlzLmRhdGE9bnVsbH12YXIgeT12LnByb3RvdHlwZTtmdW5jdGlvbiB4KHQpe3JldHVybiBudWxsPT10PzA6dC5pbmRleE9mKCJsZWZ0Iik+LTE/LTE6dC5pbmRleE9mKCJyaWdodCIpPi0xPzE6MH1mdW5jdGlvbiBiKHQpe3JldHVybiBudWxsPT10PzA6dC5pbmRleE9mKCJ0b3AiKT4tMT8tMTp0LmluZGV4T2YoImJvdHRvbSIpPi0xPzE6MH1mdW5jdGlvbiBfKHQsZSl7cmV0dXJuIGUoNCp0KX1mdW5jdGlvbiB3KHQpe3JldHVybiBwW3RdfWZ1bmN0aW9uIFQodCxlLHIsbixpKXt2YXIgYT1udWxsO2lmKGwuaXNBcnJheU9yVHlwZWRBcnJheSh0KSl7YT1bXTtmb3IodmFyIG89MDtvPGU7bysrKXZvaWQgMD09PXRbb10/YVtvXT1uOmFbb109cih0W29dLGkpfWVsc2UgYT1yKHQsbC5pZGVudGl0eSk7cmV0dXJuIGF9ZnVuY3Rpb24gayh0LGUpe3ZhciByLG4saSxhLG8scyxoPVtdLHA9dC5mdWxsU2NlbmVMYXlvdXQsdj10LmRhdGFTY2FsZSx5PXAueGF4aXMsaz1wLnlheGlzLEE9cC56YXhpcyxNPWUubWFya2VyLFM9ZS5saW5lLEU9ZS54fHxbXSxMPWUueXx8W10sQz1lLnp8fFtdLFA9RS5sZW5ndGgsST1lLnhjYWxlbmRhcixPPWUueWNhbGVuZGFyLHo9ZS56Y2FsZW5kYXI7Zm9yKG89MDtvPFA7bysrKXI9eS5kMmwoRVtvXSwwLEkpKnZbMF0sbj1rLmQybChMW29dLDAsTykqdlsxXSxpPUEuZDJsKENbb10sMCx6KSp2WzJdLGhbb109W3IsbixpXTtpZihBcnJheS5pc0FycmF5KGUudGV4dCkpcz1lLnRleHQ7ZWxzZSBpZih2b2lkIDAhPT1lLnRleHQpZm9yKHM9bmV3IEFycmF5KFApLG89MDtvPFA7bysrKXNbb109ZS50ZXh0O2Z1bmN0aW9uIEQodCxlKXt2YXIgcj1wW3RdO3JldHVybiBkLnRpY2tUZXh0KHIsci5kMmwoZSksITApLnRleHR9dmFyIFI9ZS50ZXh0dGVtcGxhdGU7aWYoUil7dmFyIEY9dC5mdWxsTGF5b3V0Ll9kM2xvY2FsZSxCPUFycmF5LmlzQXJyYXkoUiksTj1CP01hdGgubWluKFIubGVuZ3RoLFApOlAsaj1CP2Z1bmN0aW9uKHQpe3JldHVybiBSW3RdfTpmdW5jdGlvbigpe3JldHVybiBSfTtmb3Iocz1uZXcgQXJyYXkoTiksbz0wO288TjtvKyspe3ZhciBVPXt4OkVbb10seTpMW29dLHo6Q1tvXX0sVj17eExhYmVsOkQoInhheGlzIixFW29dKSx5TGFiZWw6RCgieWF4aXMiLExbb10pLHpMYWJlbDpEKCJ6YXhpcyIsQ1tvXSl9LEg9e307bShILGUsbyk7dmFyIHE9ZS5fbWV0YXx8e307c1tvXT1sLnRleHR0ZW1wbGF0ZVN0cmluZyhqKG8pLFYsRixILFUscSl9fWlmKGE9e3Bvc2l0aW9uOmgsbW9kZTplLm1vZGUsdGV4dDpzfSwibGluZSJpbiBlJiYoYS5saW5lQ29sb3I9dShTLDEsUCksYS5saW5lV2lkdGg9Uy53aWR0aCxhLmxpbmVEYXNoZXM9Uy5kYXNoKSwibWFya2VyImluIGUpe3ZhciBHPWYoZSk7YS5zY2F0dGVyQ29sb3I9dShNLDEsUCksYS5zY2F0dGVyU2l6ZT1UKE0uc2l6ZSxQLF8sMjAsRyksYS5zY2F0dGVyTWFya2VyPVQoTS5zeW1ib2wsUCx3LCJcdTI1Y2YiKSxhLnNjYXR0ZXJMaW5lV2lkdGg9TS5saW5lLndpZHRoLGEuc2NhdHRlckxpbmVDb2xvcj11KE0ubGluZSwxLFApLGEuc2NhdHRlckFuZ2xlPTB9InRleHRwb3NpdGlvbiJpbiBlJiYoYS50ZXh0T2Zmc2V0PWZ1bmN0aW9uKHQpe3ZhciBlPVswLDBdO2lmKEFycmF5LmlzQXJyYXkodCkpZm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspZVtyXT1bMCwwXSx0W3JdJiYoZVtyXVswXT14KHRbcl0pLGVbcl1bMV09Yih0W3JdKSk7ZWxzZSBlWzBdPXgodCksZVsxXT1iKHQpO3JldHVybiBlfShlLnRleHRwb3NpdGlvbiksYS50ZXh0Q29sb3I9dShlLnRleHRmb250LDEsUCksYS50ZXh0U2l6ZT1UKGUudGV4dGZvbnQuc2l6ZSxQLGwuaWRlbnRpdHksMTIpLGEudGV4dEZvbnQ9ZS50ZXh0Zm9udC5mYW1pbHksYS50ZXh0QW5nbGU9MCk7dmFyIFk9WyJ4IiwieSIsInoiXTtmb3IoYS5wcm9qZWN0PVshMSwhMSwhMV0sYS5wcm9qZWN0U2NhbGU9WzEsMSwxXSxhLnByb2plY3RPcGFjaXR5PVsxLDEsMV0sbz0wO288MzsrK28pe3ZhciBXPWUucHJvamVjdGlvbltZW29dXTsoYS5wcm9qZWN0W29dPVcuc2hvdykmJihhLnByb2plY3RPcGFjaXR5W29dPVcub3BhY2l0eSxhLnByb2plY3RTY2FsZVtvXT1XLnNjYWxlKX1hLmVycm9yQm91bmRzPWcoZSx2LHApO3ZhciBYPWZ1bmN0aW9uKHQpe2Zvcih2YXIgZT1bMCwwLDBdLHI9W1swLDAsMF0sWzAsMCwwXSxbMCwwLDBdXSxuPVsxLDEsMV0saT0wO2k8MztpKyspe3ZhciBhPXRbaV07YSYmITEhPT1hLmNvcHlfenN0eWxlJiYhMSE9PXRbMl0udmlzaWJsZSYmKGE9dFsyXSksYSYmYS52aXNpYmxlJiYoZVtpXT1hLndpZHRoLzIscltpXT1jKGEuY29sb3IpLG5baV09YS50aGlja25lc3MpfXJldHVybntjYXBTaXplOmUsY29sb3I6cixsaW5lV2lkdGg6bn19KFtlLmVycm9yX3gsZS5lcnJvcl95LGUuZXJyb3Jfel0pO3JldHVybiBhLmVycm9yQ29sb3I9WC5jb2xvcixhLmVycm9yTGluZVdpZHRoPVgubGluZVdpZHRoLGEuZXJyb3JDYXBTaXplPVguY2FwU2l6ZSxhLmRlbGF1bmF5QXhpcz1lLnN1cmZhY2VheGlzLGEuZGVsYXVuYXlDb2xvcj1jKGUuc3VyZmFjZWNvbG9yKSxhfWZ1bmN0aW9uIEEodCl7aWYobC5pc0FycmF5T3JUeXBlZEFycmF5KHQpKXt2YXIgZT10WzBdO3JldHVybiBsLmlzQXJyYXlPclR5cGVkQXJyYXkoZSkmJih0PWUpLCJyZ2IoIit0LnNsaWNlKDAsMykubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5yb3VuZCgyNTUqdCl9KSkrIikifXJldHVybiBudWxsfWZ1bmN0aW9uIE0odCl7cmV0dXJuIGwuaXNBcnJheU9yVHlwZWRBcnJheSh0KT80PT09dC5sZW5ndGgmJiJudW1iZXIiPT10eXBlb2YgdFswXT9BKHQpOnQubWFwKEEpOm51bGx9eS5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe2lmKHQub2JqZWN0JiYodC5vYmplY3Q9PT10aGlzLmxpbmVQbG90fHx0Lm9iamVjdD09PXRoaXMuZGVsYXVuYXlNZXNofHx0Lm9iamVjdD09PXRoaXMudGV4dE1hcmtlcnN8fHQub2JqZWN0PT09dGhpcy5zY2F0dGVyUGxvdCkpe3ZhciBlPXQuaW5kZXg9dC5kYXRhLmluZGV4O3JldHVybiB0Lm9iamVjdC5oaWdobGlnaHQmJnQub2JqZWN0LmhpZ2hsaWdodChudWxsKSx0aGlzLnNjYXR0ZXJQbG90JiYodC5vYmplY3Q9dGhpcy5zY2F0dGVyUGxvdCx0aGlzLnNjYXR0ZXJQbG90LmhpZ2hsaWdodCh0LmRhdGEpKSx0LnRleHRMYWJlbD0iIix0aGlzLnRleHRMYWJlbHMmJihBcnJheS5pc0FycmF5KHRoaXMudGV4dExhYmVscyk/KHRoaXMudGV4dExhYmVsc1tlXXx8MD09PXRoaXMudGV4dExhYmVsc1tlXSkmJih0LnRleHRMYWJlbD10aGlzLnRleHRMYWJlbHNbZV0pOnQudGV4dExhYmVsPXRoaXMudGV4dExhYmVscyksdC50cmFjZUNvb3JkaW5hdGU9W3RoaXMuZGF0YS54W2VdLHRoaXMuZGF0YS55W2VdLHRoaXMuZGF0YS56W2VdXSwhMH19LHkudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbCxjLHU9dGhpcy5zY2VuZS5nbHBsb3QuZ2wsZj1oLnNvbGlkO3RoaXMuZGF0YT10O3ZhciBwPWsodGhpcy5zY2VuZSx0KTsibW9kZSJpbiBwJiYodGhpcy5tb2RlPXAubW9kZSksImxpbmVEYXNoZXMiaW4gcCYmcC5saW5lRGFzaGVzIGluIGgmJihmPWhbcC5saW5lRGFzaGVzXSksdGhpcy5jb2xvcj1NKHAuc2NhdHRlckNvbG9yKXx8TShwLmxpbmVDb2xvciksdGhpcy5kYXRhUG9pbnRzPXAucG9zaXRpb24sZT17Z2w6dGhpcy5zY2VuZS5nbHBsb3QuZ2wscG9zaXRpb246cC5wb3NpdGlvbixjb2xvcjpwLmxpbmVDb2xvcixsaW5lV2lkdGg6cC5saW5lV2lkdGh8fDEsZGFzaGVzOmZbMF0sZGFzaFNjYWxlOmZbMV0sb3BhY2l0eTp0Lm9wYWNpdHksY29ubmVjdEdhcHM6dC5jb25uZWN0Z2Fwc30sLTEhPT10aGlzLm1vZGUuaW5kZXhPZigibGluZXMiKT90aGlzLmxpbmVQbG90P3RoaXMubGluZVBsb3QudXBkYXRlKGUpOih0aGlzLmxpbmVQbG90PW4oZSksdGhpcy5saW5lUGxvdC5fdHJhY2U9dGhpcyx0aGlzLnNjZW5lLmdscGxvdC5hZGQodGhpcy5saW5lUGxvdCkpOnRoaXMubGluZVBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5saW5lUGxvdCksdGhpcy5saW5lUGxvdC5kaXNwb3NlKCksdGhpcy5saW5lUGxvdD1udWxsKTt2YXIgZD10Lm9wYWNpdHk7aWYodC5tYXJrZXImJnQubWFya2VyLm9wYWNpdHkmJihkKj10Lm1hcmtlci5vcGFjaXR5KSxyPXtnbDp0aGlzLnNjZW5lLmdscGxvdC5nbCxwb3NpdGlvbjpwLnBvc2l0aW9uLGNvbG9yOnAuc2NhdHRlckNvbG9yLHNpemU6cC5zY2F0dGVyU2l6ZSxnbHlwaDpwLnNjYXR0ZXJNYXJrZXIsb3BhY2l0eTpkLG9ydGhvZ3JhcGhpYzohMCxsaW5lV2lkdGg6cC5zY2F0dGVyTGluZVdpZHRoLGxpbmVDb2xvcjpwLnNjYXR0ZXJMaW5lQ29sb3IscHJvamVjdDpwLnByb2plY3QscHJvamVjdFNjYWxlOnAucHJvamVjdFNjYWxlLHByb2plY3RPcGFjaXR5OnAucHJvamVjdE9wYWNpdHl9LC0xIT09dGhpcy5tb2RlLmluZGV4T2YoIm1hcmtlcnMiKT90aGlzLnNjYXR0ZXJQbG90P3RoaXMuc2NhdHRlclBsb3QudXBkYXRlKHIpOih0aGlzLnNjYXR0ZXJQbG90PWkociksdGhpcy5zY2F0dGVyUGxvdC5fdHJhY2U9dGhpcyx0aGlzLnNjYXR0ZXJQbG90LmhpZ2hsaWdodFNjYWxlPTEsdGhpcy5zY2VuZS5nbHBsb3QuYWRkKHRoaXMuc2NhdHRlclBsb3QpKTp0aGlzLnNjYXR0ZXJQbG90JiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuc2NhdHRlclBsb3QpLHRoaXMuc2NhdHRlclBsb3QuZGlzcG9zZSgpLHRoaXMuc2NhdHRlclBsb3Q9bnVsbCksYz17Z2w6dGhpcy5zY2VuZS5nbHBsb3QuZ2wscG9zaXRpb246cC5wb3NpdGlvbixnbHlwaDpwLnRleHQsY29sb3I6cC50ZXh0Q29sb3Isc2l6ZTpwLnRleHRTaXplLGFuZ2xlOnAudGV4dEFuZ2xlLGFsaWdubWVudDpwLnRleHRPZmZzZXQsZm9udDpwLnRleHRGb250LG9ydGhvZ3JhcGhpYzohMCxsaW5lV2lkdGg6MCxwcm9qZWN0OiExLG9wYWNpdHk6dC5vcGFjaXR5fSx0aGlzLnRleHRMYWJlbHM9dC5ob3ZlcnRleHR8fHQudGV4dCwtMSE9PXRoaXMubW9kZS5pbmRleE9mKCJ0ZXh0Iik/dGhpcy50ZXh0TWFya2Vycz90aGlzLnRleHRNYXJrZXJzLnVwZGF0ZShjKToodGhpcy50ZXh0TWFya2Vycz1pKGMpLHRoaXMudGV4dE1hcmtlcnMuX3RyYWNlPXRoaXMsdGhpcy50ZXh0TWFya2Vycy5oaWdobGlnaHRTY2FsZT0xLHRoaXMuc2NlbmUuZ2xwbG90LmFkZCh0aGlzLnRleHRNYXJrZXJzKSk6dGhpcy50ZXh0TWFya2VycyYmKHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLnRleHRNYXJrZXJzKSx0aGlzLnRleHRNYXJrZXJzLmRpc3Bvc2UoKSx0aGlzLnRleHRNYXJrZXJzPW51bGwpLGw9e2dsOnRoaXMuc2NlbmUuZ2xwbG90LmdsLHBvc2l0aW9uOnAucG9zaXRpb24sY29sb3I6cC5lcnJvckNvbG9yLGVycm9yOnAuZXJyb3JCb3VuZHMsbGluZVdpZHRoOnAuZXJyb3JMaW5lV2lkdGgsY2FwU2l6ZTpwLmVycm9yQ2FwU2l6ZSxvcGFjaXR5OnQub3BhY2l0eX0sdGhpcy5lcnJvckJhcnM/cC5lcnJvckJvdW5kcz90aGlzLmVycm9yQmFycy51cGRhdGUobCk6KHRoaXMuc2NlbmUuZ2xwbG90LnJlbW92ZSh0aGlzLmVycm9yQmFycyksdGhpcy5lcnJvckJhcnMuZGlzcG9zZSgpLHRoaXMuZXJyb3JCYXJzPW51bGwpOnAuZXJyb3JCb3VuZHMmJih0aGlzLmVycm9yQmFycz1hKGwpLHRoaXMuZXJyb3JCYXJzLl90cmFjZT10aGlzLHRoaXMuc2NlbmUuZ2xwbG90LmFkZCh0aGlzLmVycm9yQmFycykpLHAuZGVsYXVuYXlBeGlzPj0wKXt2YXIgbT1mdW5jdGlvbih0LGUscil7dmFyIG4saT0ocisxKSUzLGE9KHIrMiklMyxvPVtdLGw9W107Zm9yKG49MDtuPHQubGVuZ3RoOysrbil7dmFyIGM9dFtuXTshaXNOYU4oY1tpXSkmJmlzRmluaXRlKGNbaV0pJiYhaXNOYU4oY1thXSkmJmlzRmluaXRlKGNbYV0pJiYoby5wdXNoKFtjW2ldLGNbYV1dKSxsLnB1c2gobikpfXZhciB1PXMobyk7Zm9yKG49MDtuPHUubGVuZ3RoOysrbilmb3IodmFyIGY9dVtuXSxoPTA7aDxmLmxlbmd0aDsrK2gpZltoXT1sW2ZbaF1dO3JldHVybntwb3NpdGlvbnM6dCxjZWxsczp1LG1lc2hDb2xvcjplfX0ocC5wb3NpdGlvbixwLmRlbGF1bmF5Q29sb3IscC5kZWxhdW5heUF4aXMpO20ub3BhY2l0eT10Lm9wYWNpdHksdGhpcy5kZWxhdW5heU1lc2g/dGhpcy5kZWxhdW5heU1lc2gudXBkYXRlKG0pOihtLmdsPXUsdGhpcy5kZWxhdW5heU1lc2g9byhtKSx0aGlzLmRlbGF1bmF5TWVzaC5fdHJhY2U9dGhpcyx0aGlzLnNjZW5lLmdscGxvdC5hZGQodGhpcy5kZWxhdW5heU1lc2gpKX1lbHNlIHRoaXMuZGVsYXVuYXlNZXNoJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZGVsYXVuYXlNZXNoKSx0aGlzLmRlbGF1bmF5TWVzaC5kaXNwb3NlKCksdGhpcy5kZWxhdW5heU1lc2g9bnVsbCl9LHkuZGlzcG9zZT1mdW5jdGlvbigpe3RoaXMubGluZVBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5saW5lUGxvdCksdGhpcy5saW5lUGxvdC5kaXNwb3NlKCkpLHRoaXMuc2NhdHRlclBsb3QmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5zY2F0dGVyUGxvdCksdGhpcy5zY2F0dGVyUGxvdC5kaXNwb3NlKCkpLHRoaXMuZXJyb3JCYXJzJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZXJyb3JCYXJzKSx0aGlzLmVycm9yQmFycy5kaXNwb3NlKCkpLHRoaXMudGV4dE1hcmtlcnMmJih0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy50ZXh0TWFya2VycyksdGhpcy50ZXh0TWFya2Vycy5kaXNwb3NlKCkpLHRoaXMuZGVsYXVuYXlNZXNoJiYodGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuZGVsYXVuYXlNZXNoKSx0aGlzLmRlbGF1bmF5TWVzaC5kaXNwb3NlKCkpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1uZXcgdih0LGUudWlkKTtyZXR1cm4gci51cGRhdGUoZSkscn19LHsiLi4vLi4vY29tcG9uZW50cy9meC9oZWxwZXJzIjo2NzUsIi4uLy4uL2NvbnN0YW50cy9nbDNkX2Rhc2hlcyI6NzQ5LCIuLi8uLi9jb25zdGFudHMvZ2wzZF9tYXJrZXJzIjo3NTAsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIjo3NzIsIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjgwMSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiOjEyMDgsIi4vY2FsY19lcnJvcnMiOjEyMjEsImRlbGF1bmF5LXRyaWFuZ3VsYXRlIjoxNzIsImdsLWVycm9yM2QiOjI2MywiZ2wtbGluZTNkIjoyNzAsImdsLW1lc2gzZCI6MzAzLCJnbC1zY2F0dGVyM2QiOjMxOX1dLDEyMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcmVnaXN0cnkiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLG89dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksYz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7ZnVuY3Rpb24gZihyLG4pe3JldHVybiBpLmNvZXJjZSh0LGUsYyxyLG4pfWlmKGZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPTAsbz1yKCJ4Iikscz1yKCJ5IiksbD1yKCJ6Iik7bi5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZVRyYWNlRGVmYXVsdHMiKSh0LGUsWyJ4IiwieSIsInoiXSxpKSxvJiZzJiZsJiYoYT1NYXRoLm1pbihvLmxlbmd0aCxzLmxlbmd0aCxsLmxlbmd0aCksZS5fbGVuZ3RoPWUuX3hsZW5ndGg9ZS5feWxlbmd0aD1lLl96bGVuZ3RoPWEpO3JldHVybiBhfSh0LGUsZix1KSl7ZigidGV4dCIpLGYoImhvdmVydGV4dCIpLGYoImhvdmVydGVtcGxhdGUiKSxmKCJ4aG92ZXJmb3JtYXQiKSxmKCJ5aG92ZXJmb3JtYXQiKSxmKCJ6aG92ZXJmb3JtYXQiKSxmKCJtb2RlIiksYS5oYXNMaW5lcyhlKSYmKGYoImNvbm5lY3RnYXBzIikscyh0LGUscix1LGYpKSxhLmhhc01hcmtlcnMoZSkmJm8odCxlLHIsdSxmLHtub1NlbGVjdDohMH0pLGEuaGFzVGV4dChlKSYmKGYoInRleHR0ZW1wbGF0ZSIpLGwodCxlLHUsZix7bm9TZWxlY3Q6ITB9KSk7dmFyIGg9KGUubGluZXx8e30pLmNvbG9yLHA9KGUubWFya2VyfHx7fSkuY29sb3I7Zigic3VyZmFjZWF4aXMiKT49MCYmZigic3VyZmFjZWNvbG9yIixofHxwKTtmb3IodmFyIGQ9WyJ4IiwieSIsInoiXSxtPTA7bTwzOysrbSl7dmFyIGc9InByb2plY3Rpb24uIitkW21dO2YoZysiLnNob3ciKSYmKGYoZysiLm9wYWNpdHkiKSxmKGcrIi5zY2FsZSIpKX12YXIgdj1uLmdldENvbXBvbmVudE1ldGhvZCgiZXJyb3JiYXJzIiwic3VwcGx5RGVmYXVsdHMiKTt2KHQsZSxofHxwfHxyLHtheGlzOiJ6In0pLHYodCxlLGh8fHB8fHIse2F4aXM6InkiLGluaGVyaXQ6InoifSksdih0LGUsaHx8cHx8cix7YXhpczoieCIsaW5oZXJpdDoieiJ9KX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6MTIwNCwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjEyMTAsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTIxNywiLi9hdHRyaWJ1dGVzIjoxMjE5fV0sMTIyNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3Bsb3Q6dCgiLi9jb252ZXJ0IiksYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxtYXJrZXJTeW1ib2xzOnQoIi4uLy4uL2NvbnN0YW50cy9nbDNkX21hcmtlcnMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6W3tjb250YWluZXI6Im1hcmtlciIsbWluOiJjbWluIixtYXg6ImNtYXgifSx7Y29udGFpbmVyOiJsaW5lIixtaW46ImNtaW4iLG1heDoiY21heCJ9XSxjYWxjOnQoIi4vY2FsYyIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVyM2QiLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2dsM2QiKSxjYXRlZ29yaWVzOlsiZ2wzZCIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sbWV0YTp7fX19LHsiLi4vLi4vY29uc3RhbnRzL2dsM2RfbWFya2VycyI6NzUwLCIuLi8uLi9wbG90cy9nbDNkIjo4NjksIi4vYXR0cmlidXRlcyI6MTIxOSwiLi9jYWxjIjoxMjIwLCIuL2NvbnZlcnQiOjEyMjIsIi4vZGVmYXVsdHMiOjEyMjN9XSwxMjI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxjPW4ubWFya2VyLHU9bi5saW5lLGY9Yy5saW5lO2UuZXhwb3J0cz17Y2FycGV0Ont2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0sYTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxiOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LG1vZGU6bCh7fSxuLm1vZGUse2RmbHQ6Im1hcmtlcnMifSksdGV4dDpsKHt9LG4udGV4dCx7fSksdGV4dHRlbXBsYXRlOm8oe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJhIiwiYiIsInRleHQiXX0pLGhvdmVydGV4dDpsKHt9LG4uaG92ZXJ0ZXh0LHt9KSxsaW5lOntjb2xvcjp1LmNvbG9yLHdpZHRoOnUud2lkdGgsZGFzaDp1LmRhc2gsc2hhcGU6bCh7fSx1LnNoYXBlLHt2YWx1ZXM6WyJsaW5lYXIiLCJzcGxpbmUiXX0pLHNtb290aGluZzp1LnNtb290aGluZyxlZGl0VHlwZToiY2FsYyJ9LGNvbm5lY3RnYXBzOm4uY29ubmVjdGdhcHMsZmlsbDpsKHt9LG4uZmlsbCx7dmFsdWVzOlsibm9uZSIsInRvc2VsZiIsInRvbmV4dCJdLGRmbHQ6Im5vbmUifSksZmlsbGNvbG9yOm4uZmlsbGNvbG9yLG1hcmtlcjpsKHtzeW1ib2w6Yy5zeW1ib2wsb3BhY2l0eTpjLm9wYWNpdHksbWF4ZGlzcGxheWVkOmMubWF4ZGlzcGxheWVkLHNpemU6Yy5zaXplLHNpemVyZWY6Yy5zaXplcmVmLHNpemVtaW46Yy5zaXplbWluLHNpemVtb2RlOmMuc2l6ZW1vZGUsbGluZTpsKHt3aWR0aDpmLndpZHRoLGVkaXRUeXBlOiJjYWxjIn0scygibWFya2VyLmxpbmUiKSksZ3JhZGllbnQ6Yy5ncmFkaWVudCxlZGl0VHlwZToiY2FsYyJ9LHMoIm1hcmtlciIpKSx0ZXh0Zm9udDpuLnRleHRmb250LHRleHRwb3NpdGlvbjpuLnRleHRwb3NpdGlvbixzZWxlY3RlZDpuLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6bi51bnNlbGVjdGVkLGhvdmVyaW5mbzpsKHt9LGkuaG92ZXJpbmZvLHtmbGFnczpbImEiLCJiIiwidGV4dCIsIm5hbWUiXX0pLGhvdmVyb246bi5ob3Zlcm9uLGhvdmVydGVtcGxhdGU6YSgpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODk5LCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExOTF9XSwxMjI2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGE9dCgiLi4vc2NhdHRlci9hcnJheXNfdG9fY2FsY2RhdGEiKSxvPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKSxzPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNNYXJrZXJTaXplLGw9dCgiLi4vY2FycGV0L2xvb2t1cF9jYXJwZXRpZCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWUuX2NhcnBldFRyYWNlPWwodCxlKTtpZihyJiZyLnZpc2libGUmJiJsZWdlbmRvbmx5IiE9PXIudmlzaWJsZSl7dmFyIGM7ZS54YXhpcz1yLnhheGlzLGUueWF4aXM9ci55YXhpczt2YXIgdSxmLGg9ZS5fbGVuZ3RoLHA9bmV3IEFycmF5KGgpLGQ9ITE7Zm9yKGM9MDtjPGg7YysrKWlmKHU9ZS5hW2NdLGY9ZS5iW2NdLG4odSkmJm4oZikpe3ZhciBtPXIuYWIyeHkoK3UsK2YsITApLGc9ci5pc1Zpc2libGUoK3UsK2YpO2d8fChkPSEwKSxwW2NdPXt4Om1bMF0seTptWzFdLGE6dSxiOmYsdmlzOmd9fWVsc2UgcFtjXT17eDohMSx5OiExfTtyZXR1cm4gZS5fbmVlZHNDdWxsPWQscFswXS5jYXJwZXQ9cixwWzBdLnRyYWNlPWUscyhlLGgpLGkodCxlKSxhKHAsZSksbyhwLGUpLHB9fX0seyIuLi9jYXJwZXQvbG9va3VwX2NhcnBldGlkIjo5NzQsIi4uL3NjYXR0ZXIvYXJyYXlzX3RvX2NhbGNkYXRhIjoxMTkwLCIuLi9zY2F0dGVyL2NhbGMiOjExOTIsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjExOTMsIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIjoxMTk0LCJmYXN0LWlzbnVtZXJpYyI6MjQyfV0sMTIyNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvY29uc3RhbnRzIiksYT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksbz10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIiksbD10KCIuLi9zY2F0dGVyL2xpbmVfc2hhcGVfZGVmYXVsdHMiKSxjPXQoIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyIpLHU9dCgiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiKSxmPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixoKXtmdW5jdGlvbiBwKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxmLHIsaSl9cCgiY2FycGV0IiksZS54YXhpcz0ieCIsZS55YXhpcz0ieSI7dmFyIGQ9cCgiYSIpLG09cCgiYiIpLGc9TWF0aC5taW4oZC5sZW5ndGgsbS5sZW5ndGgpO2lmKGcpe2UuX2xlbmd0aD1nLHAoInRleHQiKSxwKCJ0ZXh0dGVtcGxhdGUiKSxwKCJob3ZlcnRleHQiKSxwKCJtb2RlIixnPGkuUFRTX0xJTkVTT05MWT8ibGluZXMrbWFya2VycyI6ImxpbmVzIiksYS5oYXNMaW5lcyhlKSYmKHModCxlLHIsaCxwKSxsKHQsZSxwKSxwKCJjb25uZWN0Z2FwcyIpKSxhLmhhc01hcmtlcnMoZSkmJm8odCxlLHIsaCxwLHtncmFkaWVudDohMH0pLGEuaGFzVGV4dChlKSYmYyh0LGUsaCxwKTt2YXIgdj1bXTsoYS5oYXNNYXJrZXJzKGUpfHxhLmhhc1RleHQoZSkpJiYocCgibWFya2VyLm1heGRpc3BsYXllZCIpLHYucHVzaCgicG9pbnRzIikpLHAoImZpbGwiKSwibm9uZSIhPT1lLmZpbGwmJih1KHQsZSxyLHApLGEuaGFzTGluZXMoZSl8fGwodCxlLHApKSwidG9uZXh0IiE9PWUuZmlsbCYmInRvc2VsZiIhPT1lLmZpbGx8fHYucHVzaCgiZmlsbHMiKSwiZmlsbHMiIT09cCgiaG92ZXJvbiIsdi5qb2luKCIrIil8fCJwb2ludHMiKSYmcCgiaG92ZXJ0ZW1wbGF0ZSIpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLHApfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vc2NhdHRlci9jb25zdGFudHMiOjExOTUsIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIjoxMTk5LCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiOjEyMDQsIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyI6MTIwNiwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjEyMTAsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTIxNywiLi9hdHRyaWJ1dGVzIjoxMjI1fV0sMTIyODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt2YXIgYT1uW2ldO3JldHVybiB0LmE9YS5hLHQuYj1hLmIsdC55PWEueSx0fX0se31dLDEyMjk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9e30sbj1lLl9jYXJwZXQsaT1uLmFiMmlqKFt0LmEsdC5iXSksYT1NYXRoLmZsb29yKGlbMF0pLG89aVswXS1hLHM9TWF0aC5mbG9vcihpWzFdKSxsPWlbMV0tcyxjPW4uZXZhbHh5KFtdLGEscyxvLGwpO3JldHVybiByLnlMYWJlbD1jWzFdLnRvRml4ZWQoMykscn19LHt9XSwxMjMwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvaG92ZXIiKSxpPXQoIi4uLy4uL2xpYiIpLmZpbGxUZXh0O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixhKXt2YXIgbz1uKHQsZSxyLGEpO2lmKG8mJiExIT09b1swXS5pbmRleCl7dmFyIHM9b1swXTtpZih2b2lkIDA9PT1zLmluZGV4KXt2YXIgbD0xLXMueTAvdC55YS5fbGVuZ3RoLGM9dC54YS5fbGVuZ3RoLHU9YypsLzIsZj1jLXU7cmV0dXJuIHMueDA9TWF0aC5tYXgoTWF0aC5taW4ocy54MCxmKSx1KSxzLngxPU1hdGgubWF4KE1hdGgubWluKHMueDEsZiksdSksb312YXIgaD1zLmNkW3MuaW5kZXhdO3MuYT1oLmEscy5iPWguYixzLnhMYWJlbFZhbD12b2lkIDAscy55TGFiZWxWYWw9dm9pZCAwO3ZhciBwPXMudHJhY2UsZD1wLl9jYXJwZXQsbT1wLl9tb2R1bGUuZm9ybWF0TGFiZWxzKGgscCk7cy55TGFiZWw9bS55TGFiZWwsZGVsZXRlIHMudGV4dDt2YXIgZz1bXTtpZighcC5ob3ZlcnRlbXBsYXRlKXt2YXIgdj0oaC5oaXx8cC5ob3ZlcmluZm8pLnNwbGl0KCIrIik7LTEhPT12LmluZGV4T2YoImFsbCIpJiYodj1bImEiLCJiIiwidGV4dCJdKSwtMSE9PXYuaW5kZXhPZigiYSIpJiZ5KGQuYWF4aXMsaC5hKSwtMSE9PXYuaW5kZXhPZigiYiIpJiZ5KGQuYmF4aXMsaC5iKSxnLnB1c2goInk6ICIrcy55TGFiZWwpLC0xIT09di5pbmRleE9mKCJ0ZXh0IikmJmkoaCxwLGcpLHMuZXh0cmFUZXh0PWcuam9pbigiPGJyPiIpfXJldHVybiBvfWZ1bmN0aW9uIHkodCxlKXt2YXIgcjtyPXQubGFiZWxwcmVmaXgmJnQubGFiZWxwcmVmaXgubGVuZ3RoPjA/dC5sYWJlbHByZWZpeC5yZXBsYWNlKC8gPSAkLywiIik6dC5faG92ZXJ0aXRsZSxnLnB1c2gocisiOiAiK2UudG9GaXhlZCgzKSt0LmxhYmVsc3VmZml4KX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9zY2F0dGVyL2hvdmVyIjoxMjAyfV0sMTIzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL3NjYXR0ZXIvc2VsZWN0IiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVyY2FycGV0IixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsic3ZnIiwiY2FycGV0Iiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJjYXJwZXREZXBlbmRlbnQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjEyMDksIi4uL3NjYXR0ZXIvc2VsZWN0IjoxMjEzLCIuLi9zY2F0dGVyL3N0eWxlIjoxMjE1LCIuL2F0dHJpYnV0ZXMiOjEyMjUsIi4vY2FsYyI6MTIyNiwiLi9kZWZhdWx0cyI6MTIyNywiLi9ldmVudF9kYXRhIjoxMjI4LCIuL2Zvcm1hdF9sYWJlbHMiOjEyMjksIi4vaG92ZXIiOjEyMzAsIi4vcGxvdCI6MTIzMn1dLDEyMzI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9wbG90IiksaT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe3ZhciBzLGwsYyx1PXJbMF1bMF0uY2FycGV0LGY9e3hheGlzOmkuZ2V0RnJvbUlkKHQsdS54YXhpc3x8IngiKSx5YXhpczppLmdldEZyb21JZCh0LHUueWF4aXN8fCJ5IikscGxvdDplLnBsb3R9O2ZvcihuKHQsZixyLG8pLHM9MDtzPHIubGVuZ3RoO3MrKylsPXJbc11bMF0udHJhY2UsYz1vLnNlbGVjdEFsbCgiZy50cmFjZSIrbC51aWQrIiAuanMtbGluZSIpLGEuc2V0Q2xpcFVybChjLHJbc11bMF0uY2FycGV0Ll9jbGlwUGF0aElkLHQpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vc2NhdHRlci9wbG90IjoxMjEyfV0sMTIzMzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzLGE9dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nL2F0dHJpYnV0ZXMiKS5kYXNoLGM9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsdT10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsZj1hLm1hcmtlcixoPWEubGluZSxwPWYubGluZTtlLmV4cG9ydHM9dSh7bG9uOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sbGF0Ont2YWxUeXBlOiJkYXRhX2FycmF5In0sbG9jYXRpb25zOnt2YWxUeXBlOiJkYXRhX2FycmF5In0sbG9jYXRpb25tb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJJU08tMyIsIlVTQS1zdGF0ZXMiLCJjb3VudHJ5IG5hbWVzIiwiZ2VvanNvbi1pZCJdLGRmbHQ6IklTTy0zIn0sZ2VvanNvbjp7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9LGZlYXR1cmVpZGtleTp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyIsZGZsdDoiaWQifSxtb2RlOmMoe30sYS5tb2RlLHtkZmx0OiJtYXJrZXJzIn0pLHRleHQ6Yyh7fSxhLnRleHQse30pLHRleHR0ZW1wbGF0ZTppKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsibGF0IiwibG9uIiwibG9jYXRpb24iLCJ0ZXh0Il19KSxob3ZlcnRleHQ6Yyh7fSxhLmhvdmVydGV4dCx7fSksdGV4dGZvbnQ6YS50ZXh0Zm9udCx0ZXh0cG9zaXRpb246YS50ZXh0cG9zaXRpb24sbGluZTp7Y29sb3I6aC5jb2xvcix3aWR0aDpoLndpZHRoLGRhc2g6bH0sY29ubmVjdGdhcHM6YS5jb25uZWN0Z2FwcyxtYXJrZXI6Yyh7c3ltYm9sOmYuc3ltYm9sLG9wYWNpdHk6Zi5vcGFjaXR5LHNpemU6Zi5zaXplLHNpemVyZWY6Zi5zaXplcmVmLHNpemVtaW46Zi5zaXplbWluLHNpemVtb2RlOmYuc2l6ZW1vZGUsY29sb3JiYXI6Zi5jb2xvcmJhcixsaW5lOmMoe3dpZHRoOnAud2lkdGh9LHMoIm1hcmtlci5saW5lIikpLGdyYWRpZW50OmYuZ3JhZGllbnR9LHMoIm1hcmtlciIpKSxmaWxsOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJub25lIiwidG9zZWxmIl0sZGZsdDoibm9uZSJ9LGZpbGxjb2xvcjphLmZpbGxjb2xvcixzZWxlY3RlZDphLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6YS51bnNlbGVjdGVkLGhvdmVyaW5mbzpjKHt9LG8uaG92ZXJpbmZvLHtmbGFnczpbImxvbiIsImxhdCIsImxvY2F0aW9uIiwidGV4dCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6bigpfSwiY2FsYyIsIm5lc3RlZCIpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZy9hdHRyaWJ1dGVzIjo2NjAsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTkxfV0sMTIzNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxhPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIiksbz10KCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSIpLHM9dCgiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiIpLGw9dCgiLi4vLi4vbGliIikuXztmdW5jdGlvbiBjKHQpe3JldHVybiB0JiYic3RyaW5nIj09dHlwZW9mIHR9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsdT1BcnJheS5pc0FycmF5KGUubG9jYXRpb25zKSxmPXU/ZS5sb2NhdGlvbnMubGVuZ3RoOmUuX2xlbmd0aCxoPW5ldyBBcnJheShmKTtyPWUuZ2VvanNvbj9mdW5jdGlvbih0KXtyZXR1cm4gYyh0KXx8bih0KX06Yztmb3IodmFyIHA9MDtwPGY7cCsrKXt2YXIgZD1oW3BdPXt9O2lmKHUpe3ZhciBtPWUubG9jYXRpb25zW3BdO2QubG9jPXIobSk/bTpudWxsfWVsc2V7dmFyIGc9ZS5sb25bcF0sdj1lLmxhdFtwXTtuKGcpJiZuKHYpP2QubG9ubGF0PVsrZywrdl06ZC5sb25sYXQ9W2ksaV19fXJldHVybiBvKGgsZSksYSh0LGUpLHMoaCxlKSxmJiYoaFswXS50PXtsYWJlbHM6e2xhdDpsKHQsImxhdDoiKSsiICIsbG9uOmwodCwibG9uOiIpKyIgIn19KSxofX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6MTE5MCwiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiI6MTE5MywiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjExOTQsImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMjM1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGE9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxvPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIiksbD10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLGM9dCgiLi9hdHRyaWJ1dGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHUpe2Z1bmN0aW9uIGYocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGMscixpKX12YXIgaCxwPWYoImxvY2F0aW9ucyIpO2lmKHAmJnAubGVuZ3RoKXt2YXIgZCxtPWYoImdlb2pzb24iKTsoInN0cmluZyI9PXR5cGVvZiBtJiYiIiE9PW18fG4uaXNQbGFpbk9iamVjdChtKSkmJihkPSJnZW9qc29uLWlkIiksImdlb2pzb24taWQiPT09ZigibG9jYXRpb25tb2RlIixkKSYmZigiZmVhdHVyZWlka2V5IiksaD1wLmxlbmd0aH1lbHNle3ZhciBnPWYoImxvbiIpfHxbXSx2PWYoImxhdCIpfHxbXTtoPU1hdGgubWluKGcubGVuZ3RoLHYubGVuZ3RoKX1oPyhlLl9sZW5ndGg9aCxmKCJ0ZXh0IiksZigiaG92ZXJ0ZXh0IiksZigiaG92ZXJ0ZW1wbGF0ZSIpLGYoIm1vZGUiKSxpLmhhc0xpbmVzKGUpJiYobyh0LGUscix1LGYpLGYoImNvbm5lY3RnYXBzIikpLGkuaGFzTWFya2VycyhlKSYmYSh0LGUscix1LGYse2dyYWRpZW50OiEwfSksaS5oYXNUZXh0KGUpJiYoZigidGV4dHRlbXBsYXRlIikscyh0LGUsdSxmKSksZigiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmbCh0LGUscixmKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxmKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjExOTksIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6MTIwNCwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjEyMTAsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTIxNywiLi9hdHRyaWJ1dGVzIjoxMjMzfV0sMTIzNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbixpKXt0Lmxvbj1lLmxvbix0LmxhdD1lLmxhdCx0LmxvY2F0aW9uPWUubG9jP2UubG9jOm51bGw7dmFyIGE9bltpXTtyZXR1cm4gYS5mSW4mJmEuZkluLnByb3BlcnRpZXMmJih0LnByb3BlcnRpZXM9YS5mSW4ucHJvcGVydGllcyksdH19LHt9XSwxMjM3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT17fSxhPXJbZS5nZW9dLl9zdWJwbG90Lm1vY2tBeGlzLG89dC5sb25sYXQ7cmV0dXJuIGkubG9uTGFiZWw9bi50aWNrVGV4dChhLGEuYzJsKG9bMF0pLCEwKS50ZXh0LGkubGF0TGFiZWw9bi50aWNrVGV4dChhLGEuYzJsKG9bMV0pLCEwKS50ZXh0LGl9fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4Mjd9XSwxMjM4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxpPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0sYT10KCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciIpLG89dCgiLi4vLi4vbGliIikuZmlsbFRleHQscz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBsPXQuY2QsYz1sWzBdLnRyYWNlLHU9dC54YSxmPXQueWEsaD10LnN1YnBsb3QscD1oLnByb2plY3Rpb24uaXNMb25MYXRPdmVyRWRnZXMsZD1oLnByb2plY3Q7aWYobi5nZXRDbG9zZXN0KGwsKGZ1bmN0aW9uKHQpe3ZhciBuPXQubG9ubGF0O2lmKG5bMF09PT1pKXJldHVybiAxLzA7aWYocChuKSlyZXR1cm4gMS8wO3ZhciBhPWQobiksbz1kKFtlLHJdKSxzPU1hdGguYWJzKGFbMF0tb1swXSksbD1NYXRoLmFicyhhWzFdLW9bMV0pLGM9TWF0aC5tYXgoMyx0Lm1yY3x8MCk7cmV0dXJuIE1hdGgubWF4KE1hdGguc3FydChzKnMrbCpsKS1jLDEtMy9jKX0pLHQpLCExIT09dC5pbmRleCl7dmFyIG09bFt0LmluZGV4XSxnPW0ubG9ubGF0LHY9W3UuYzJwKGcpLGYuYzJwKGcpXSx5PW0ubXJjfHwxO3QueDA9dlswXS15LHQueDE9dlswXSt5LHQueTA9dlsxXS15LHQueTE9dlsxXSt5LHQubG9jPW0ubG9jLHQubG9uPWdbMF0sdC5sYXQ9Z1sxXTt2YXIgeD17fTt4W2MuZ2VvXT17X3N1YnBsb3Q6aH07dmFyIGI9Yy5fbW9kdWxlLmZvcm1hdExhYmVscyhtLGMseCk7cmV0dXJuIHQubG9uTGFiZWw9Yi5sb25MYWJlbCx0LmxhdExhYmVsPWIubGF0TGFiZWwsdC5jb2xvcj1hKGMsbSksdC5leHRyYVRleHQ9ZnVuY3Rpb24odCxlLHIsbil7aWYodC5ob3ZlcnRlbXBsYXRlKXJldHVybjt2YXIgaT1lLmhpfHx0LmhvdmVyaW5mbyxhPSJhbGwiPT09aT9zLmhvdmVyaW5mby5mbGFnczppLnNwbGl0KCIrIiksbD0tMSE9PWEuaW5kZXhPZigibG9jYXRpb24iKSYmQXJyYXkuaXNBcnJheSh0LmxvY2F0aW9ucyksYz0tMSE9PWEuaW5kZXhPZigibG9uIiksdT0tMSE9PWEuaW5kZXhPZigibGF0IiksZj0tMSE9PWEuaW5kZXhPZigidGV4dCIpLGg9W107ZnVuY3Rpb24gcCh0KXtyZXR1cm4gdCsiXHhiMCJ9bD9oLnB1c2goZS5sb2MpOmMmJnU/aC5wdXNoKCIoIitwKHIubGF0TGFiZWwpKyIsICIrcChyLmxvbkxhYmVsKSsiKSIpOmM/aC5wdXNoKG4ubG9uK3Aoci5sb25MYWJlbCkpOnUmJmgucHVzaChuLmxhdCtwKHIubGF0TGFiZWwpKTtmJiZvKGUsdCxoKTtyZXR1cm4gaC5qb2luKCI8YnI+Iil9KGMsbSx0LGxbMF0udC5sYWJlbHMpLHQuaG92ZXJ0ZW1wbGF0ZT1jLmhvdmVydGVtcGxhdGUsW3RdfX19LHsiLi4vLi4vY29tcG9uZW50cy9meCI6Njc5LCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciI6MTIwMSwiLi9hdHRyaWJ1dGVzIjoxMjMzfV0sMTIzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi9jYWxjIiksY2FsY0dlb0pTT046dCgiLi9wbG90IikuY2FsY0dlb0pTT04scGxvdDp0KCIuL3Bsb3QiKS5wbG90LHN0eWxlOnQoIi4vc3R5bGUiKSxzdHlsZU9uU2VsZWN0OnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4vc2VsZWN0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNjYXR0ZXJnZW8iLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL2dlbyIpLGNhdGVnb3JpZXM6WyJnZW8iLCJzeW1ib2xzIiwic2hvd0xlZ2VuZCIsInNjYXR0ZXItbGlrZSJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dlbyI6ODYwLCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6MTIwOSwiLi4vc2NhdHRlci9zdHlsZSI6MTIxNSwiLi9hdHRyaWJ1dGVzIjoxMjMzLCIuL2NhbGMiOjEyMzQsIi4vZGVmYXVsdHMiOjEyMzUsIi4vZXZlbnRfZGF0YSI6MTIzNiwiLi9mb3JtYXRfbGFiZWxzIjoxMjM3LCIuL2hvdmVyIjoxMjM4LCIuL3Bsb3QiOjEyNDAsIi4vc2VsZWN0IjoxMjQxLCIuL3N0eWxlIjoxMjQyfV0sMTI0MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2xpYi90b3BvanNvbl91dGlscyIpLmdldFRvcG9qc29uRmVhdHVyZXMsbz10KCIuLi8uLi9saWIvZ2VvanNvbl91dGlscyIpLHM9dCgiLi4vLi4vbGliL2dlb19sb2NhdGlvbl91dGlscyIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSIpLmZpbmRFeHRyZW1lcyxjPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0sdT10KCIuLi9zY2F0dGVyL2NhbGMiKS5jYWxjTWFya2VyU2l6ZSxmPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxoPXQoIi4vc3R5bGUiKTtlLmV4cG9ydHM9e2NhbGNHZW9KU09OOmZ1bmN0aW9uKHQsZSl7dmFyIHIsbixpPXRbMF0udHJhY2Usbz1lW2kuZ2VvXSxmPW8uX3N1YnBsb3QsaD1pLl9sZW5ndGg7aWYoQXJyYXkuaXNBcnJheShpLmxvY2F0aW9ucykpe3ZhciBwPWkubG9jYXRpb25tb2RlLGQ9Imdlb2pzb24taWQiPT09cD9zLmV4dHJhY3RUcmFjZUZlYXR1cmUodCk6YShpLGYudG9wb2pzb24pO2ZvcihyPTA7cjxoO3IrKyl7bj10W3JdO3ZhciBtPSJnZW9qc29uLWlkIj09PXA/bi5mT3V0OnMubG9jYXRpb25Ub0ZlYXR1cmUocCxuLmxvYyxkKTtuLmxvbmxhdD1tP20ucHJvcGVydGllcy5jdDpbYyxjXX19dmFyIGcsdix5PXtwYWRkZWQ6ITB9O2lmKCJnZW9qc29uIj09PW8uZml0Ym91bmRzJiYiZ2VvanNvbi1pZCI9PT1pLmxvY2F0aW9ubW9kZSl7dmFyIHg9cy5jb21wdXRlQmJveChzLmdldFRyYWNlR2VvanNvbihpKSk7Zz1beFswXSx4WzJdXSx2PVt4WzFdLHhbM11dfWVsc2V7Zm9yKGc9bmV3IEFycmF5KGgpLHY9bmV3IEFycmF5KGgpLHI9MDtyPGg7cisrKW49dFtyXSxnW3JdPW4ubG9ubGF0WzBdLHZbcl09bi5sb25sYXRbMV07eS5wcGFkPXUoaSxoKX1pLl9leHRyZW1lcy5sb249bChvLmxvbmF4aXMuX2F4LGcseSksaS5fZXh0cmVtZXMubGF0PWwoby5sYXRheGlzLl9heCx2LHkpfSxwbG90OmZ1bmN0aW9uKHQsZSxyKXt2YXIgYT1lLmxheWVycy5mcm9udHBsb3Quc2VsZWN0KCIuc2NhdHRlcmxheWVyIikscz1pLm1ha2VUcmFjZUdyb3VwcyhhLHIsInRyYWNlIHNjYXR0ZXJnZW8iKTtmdW5jdGlvbiBsKHQsZSl7dC5sb25sYXRbMF09PT1jJiZuLnNlbGVjdChlKS5yZW1vdmUoKX1zLnNlbGVjdEFsbCgiKiIpLnJlbW92ZSgpLHMuZWFjaCgoZnVuY3Rpb24oZSl7dmFyIHI9bi5zZWxlY3QodGhpcyksYT1lWzBdLnRyYWNlO2lmKGYuaGFzTGluZXMoYSl8fCJub25lIiE9PWEuZmlsbCl7dmFyIHM9by5jYWxjVHJhY2VUb0xpbmVDb29yZHMoZSksYz0ibm9uZSIhPT1hLmZpbGw/by5tYWtlUG9seWdvbihzKTpvLm1ha2VMaW5lKHMpO3Iuc2VsZWN0QWxsKCJwYXRoLmpzLWxpbmUiKS5kYXRhKFt7Z2VvanNvbjpjLHRyYWNlOmF9XSkuZW50ZXIoKS5hcHBlbmQoInBhdGgiKS5jbGFzc2VkKCJqcy1saW5lIiwhMCkuc3R5bGUoInN0cm9rZS1taXRlcmxpbWl0IiwyKX1mLmhhc01hcmtlcnMoYSkmJnIuc2VsZWN0QWxsKCJwYXRoLnBvaW50IikuZGF0YShpLmlkZW50aXR5KS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmNsYXNzZWQoInBvaW50IiwhMCkuZWFjaCgoZnVuY3Rpb24odCl7bCh0LHRoaXMpfSkpLGYuaGFzVGV4dChhKSYmci5zZWxlY3RBbGwoImciKS5kYXRhKGkuaWRlbnRpdHkpLmVudGVyKCkuYXBwZW5kKCJnIikuYXBwZW5kKCJ0ZXh0IikuZWFjaCgoZnVuY3Rpb24odCl7bCh0LHRoaXMpfSkpLGgodCxlKX0pKX19fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9nZW9fbG9jYXRpb25fdXRpbHMiOjc2OSwiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiOjc3MCwiLi4vLi4vbGliL3RvcG9qc29uX3V0aWxzIjo4MDUsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hdXRvcmFuZ2UiOjgyNiwiLi4vc2NhdHRlci9jYWxjIjoxMTkyLCIuLi9zY2F0dGVyL3N1YnR5cGVzIjoxMjE2LCIuL3N0eWxlIjoxMjQyLCJAcGxvdGx5L2QzIjo1OH1dLDEyNDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixhLG8scyxsLGM9dC5jZCx1PXQueGF4aXMsZj10LnlheGlzLGg9W10scD1jWzBdLnRyYWNlO2lmKCFuLmhhc01hcmtlcnMocCkmJiFuLmhhc1RleHQocCkpcmV0dXJuW107aWYoITE9PT1lKWZvcihsPTA7bDxjLmxlbmd0aDtsKyspY1tsXS5zZWxlY3RlZD0wO2Vsc2UgZm9yKGw9MDtsPGMubGVuZ3RoO2wrKykoYT0ocj1jW2xdKS5sb25sYXQpWzBdIT09aSYmKG89dS5jMnAoYSkscz1mLmMycChhKSxlLmNvbnRhaW5zKFtvLHNdLG51bGwsbCx0KT8oaC5wdXNoKHtwb2ludE51bWJlcjpsLGxvbjphWzBdLGxhdDphWzFdfSksci5zZWxlY3RlZD0xKTpyLnNlbGVjdGVkPTApO3JldHVybiBofX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTZ9XSwxMjQyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLG89dCgiLi4vc2NhdHRlci9zdHlsZSIpLHM9by5zdHlsZVBvaW50cyxsPW8uc3R5bGVUZXh0O2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2UmJmZ1bmN0aW9uKHQsZSl7dmFyIHI9ZVswXS50cmFjZSxvPWVbMF0ubm9kZTM7by5zdHlsZSgib3BhY2l0eSIsZVswXS50cmFjZS5vcGFjaXR5KSxzKG8scix0KSxsKG8scix0KSxvLnNlbGVjdEFsbCgicGF0aC5qcy1saW5lIikuc3R5bGUoImZpbGwiLCJub25lIikuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykscj10LnRyYWNlLG89ci5saW5lfHx7fTtlLmNhbGwoYS5zdHJva2Usby5jb2xvcikuY2FsbChpLmRhc2hMaW5lLG8uZGFzaHx8IiIsby53aWR0aHx8MCksIm5vbmUiIT09ci5maWxsJiZlLmNhbGwoYS5maWxsLHIuZmlsbGNvbG9yKX0pKX0odCxlKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vc2NhdHRlci9zdHlsZSI6MTIxNSwiQHBsb3RseS9kMyI6NTh9XSwxMjQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxpPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLHM9dCgiLi4vLi4vbGliL3NvcnRfb2JqZWN0X2tleXMiKSxsPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGM9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLHU9dCgiLi9jb25zdGFudHMiKS5EQVNIRVMsZj1pLmxpbmUsaD1pLm1hcmtlcixwPWgubGluZSxkPWUuZXhwb3J0cz1jKHt4OmkueCx4MDppLngwLGR4OmkuZHgseTppLnkseTA6aS55MCxkeTppLmR5LHhwZXJpb2Q6aS54cGVyaW9kLHlwZXJpb2Q6aS55cGVyaW9kLHhwZXJpb2QwOmkueHBlcmlvZDAseXBlcmlvZDA6aS55cGVyaW9kMCx4cGVyaW9kYWxpZ25tZW50OmkueHBlcmlvZGFsaWdubWVudCx5cGVyaW9kYWxpZ25tZW50OmkueXBlcmlvZGFsaWdubWVudCx4aG92ZXJmb3JtYXQ6YSgieCIpLHlob3ZlcmZvcm1hdDphKCJ5IiksdGV4dDppLnRleHQsaG92ZXJ0ZXh0OmkuaG92ZXJ0ZXh0LHRleHRwb3NpdGlvbjppLnRleHRwb3NpdGlvbix0ZXh0Zm9udDppLnRleHRmb250LG1vZGU6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImxpbmVzIiwibWFya2VycyIsInRleHQiXSxleHRyYXM6WyJub25lIl19LGxpbmU6e2NvbG9yOmYuY29sb3Isd2lkdGg6Zi53aWR0aCxzaGFwZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsibGluZWFyIiwiaHYiLCJ2aCIsImh2aCIsInZodiJdLGRmbHQ6ImxpbmVhciIsZWRpdFR5cGU6InBsb3QifSxkYXNoOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6cyh1KSxkZmx0OiJzb2xpZCJ9fSxtYXJrZXI6bCh7fSxvKCJtYXJrZXIiKSx7c3ltYm9sOmguc3ltYm9sLHNpemU6aC5zaXplLHNpemVyZWY6aC5zaXplcmVmLHNpemVtaW46aC5zaXplbWluLHNpemVtb2RlOmguc2l6ZW1vZGUsb3BhY2l0eTpoLm9wYWNpdHksY29sb3JiYXI6aC5jb2xvcmJhcixsaW5lOmwoe30sbygibWFya2VyLmxpbmUiKSx7d2lkdGg6cC53aWR0aH0pfSksY29ubmVjdGdhcHM6aS5jb25uZWN0Z2FwcyxmaWxsOmwoe30saS5maWxsLHtkZmx0OiJub25lIn0pLGZpbGxjb2xvcjppLmZpbGxjb2xvcixzZWxlY3RlZDp7bWFya2VyOmkuc2VsZWN0ZWQubWFya2VyLHRleHRmb250Omkuc2VsZWN0ZWQudGV4dGZvbnR9LHVuc2VsZWN0ZWQ6e21hcmtlcjppLnVuc2VsZWN0ZWQubWFya2VyLHRleHRmb250OmkudW5zZWxlY3RlZC50ZXh0Zm9udH0sb3BhY2l0eTpuLm9wYWNpdHl9LCJjYWxjIiwibmVzdGVkIik7ZC54LmVkaXRUeXBlPWQueS5lZGl0VHlwZT1kLngwLmVkaXRUeXBlPWQueTAuZWRpdFR5cGU9ImNhbGMrY2xlYXJBeGlzVHlwZXMiLGQuaG92ZXJ0ZW1wbGF0ZT1pLmhvdmVydGVtcGxhdGUsZC50ZXh0dGVtcGxhdGU9aS50ZXh0dGVtcGxhdGV9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiOjY0NiwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9saWIvc29ydF9vYmplY3Rfa2V5cyI6Nzk5LCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIjo4MDksIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTkxLCIuL2NvbnN0YW50cyI6MTI0NX1dLDEyNDQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9wb2ludC1jbHVzdGVyIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLG89dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSIpLmZpbmRFeHRyZW1lcyxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKSxsPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLGM9bC5jYWxjTWFya2VyU2l6ZSx1PWwuY2FsY0F4aXNFeHBhbnNpb24sZj1sLnNldEZpcnN0U2NhdHRlcixoPXQoIi4uL3NjYXR0ZXIvY29sb3JzY2FsZV9jYWxjIikscD10KCIuL2NvbnZlcnQiKSxkPXQoIi4vc2NlbmVfdXBkYXRlIiksbT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGc9dCgiLi9jb25zdGFudHMiKS5UT09fTUFOWV9QT0lOVFM7ZnVuY3Rpb24gdih0LGUscil7dmFyIG49dC5fZXh0cmVtZXNbZS5faWRdLGk9byhlLHIuX2JuZHMse3BhZGRlZDohMH0pO24ubWluPW4ubWluLmNvbmNhdChpLm1pbiksbi5tYXg9bi5tYXguY29uY2F0KGkubWF4KX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixvPXQuX2Z1bGxMYXlvdXQsbD1hLmdldEZyb21JZCh0LGUueGF4aXMpLHk9YS5nZXRGcm9tSWQodCxlLnlheGlzKSx4PW8uX3Bsb3RzW2UueGF4aXMrZS55YXhpc10sYj1lLl9sZW5ndGgsXz1iPj1nLHc9MipiLFQ9e30saz1sLm1ha2VDYWxjZGF0YShlLCJ4IiksQT15Lm1ha2VDYWxjZGF0YShlLCJ5IiksTT1zKGUsbCwieCIsayksUz1zKGUseSwieSIsQSksRT1NLnZhbHMsTD1TLnZhbHM7ZS5feD1FLGUuX3k9TCxlLnhwZXJpb2RhbGlnbm1lbnQmJihlLl9vcmlnWD1rLGUuX3hTdGFydHM9TS5zdGFydHMsZS5feEVuZHM9TS5lbmRzKSxlLnlwZXJpb2RhbGlnbm1lbnQmJihlLl9vcmlnWT1BLGUuX3lTdGFydHM9Uy5zdGFydHMsZS5feUVuZHM9Uy5lbmRzKTt2YXIgQz1uZXcgQXJyYXkodyksUD1uZXcgQXJyYXkoYik7Zm9yKHI9MDtyPGI7cisrKUNbMipyXT1FW3JdPT09bT9OYU46RVtyXSxDWzIqcisxXT1MW3JdPT09bT9OYU46TFtyXSxQW3JdPXI7aWYoImxvZyI9PT1sLnR5cGUpZm9yKHI9MDtyPHc7cis9MilDW3JdPWwuYzJsKENbcl0pO2lmKCJsb2ciPT09eS50eXBlKWZvcihyPTE7cjx3O3IrPTIpQ1tyXT15LmMybChDW3JdKTtfJiYibG9nIiE9PWwudHlwZSYmImxvZyIhPT15LnR5cGU/VC50cmVlPW4oQyk6VC5pZHM9UCxoKHQsZSk7dmFyIEksTz1mdW5jdGlvbih0LGUscixuLGEsbyl7dmFyIHM9cC5zdHlsZSh0LHIpO3MubWFya2VyJiYocy5tYXJrZXIucG9zaXRpb25zPW4pO3MubGluZSYmbi5sZW5ndGg+MSYmaS5leHRlbmRGbGF0KHMubGluZSxwLmxpbmVQb3NpdGlvbnModCxyLG4pKTtpZihzLmVycm9yWHx8cy5lcnJvclkpe3ZhciBsPXAuZXJyb3JCYXJQb3NpdGlvbnModCxyLG4sYSxvKTtzLmVycm9yWCYmaS5leHRlbmRGbGF0KHMuZXJyb3JYLGwueCkscy5lcnJvclkmJmkuZXh0ZW5kRmxhdChzLmVycm9yWSxsLnkpfXMudGV4dCYmKGkuZXh0ZW5kRmxhdChzLnRleHQse3Bvc2l0aW9uczpufSxwLnRleHRQb3NpdGlvbih0LHIscy50ZXh0LHMubWFya2VyKSksaS5leHRlbmRGbGF0KHMudGV4dFNlbCx7cG9zaXRpb25zOm59LHAudGV4dFBvc2l0aW9uKHQscixzLnRleHQscy5tYXJrZXJTZWwpKSxpLmV4dGVuZEZsYXQocy50ZXh0VW5zZWwse3Bvc2l0aW9uczpufSxwLnRleHRQb3NpdGlvbih0LHIscy50ZXh0LHMubWFya2VyVW5zZWwpKSk7cmV0dXJuIHN9KHQsMCxlLEMsRSxMKSx6PWQodCx4KTtyZXR1cm4gZihvLGUpLF8/Ty5tYXJrZXImJihJPU8ubWFya2VyLnNpemVBdmd8fE1hdGgubWF4KE8ubWFya2VyLnNpemUsMykpOkk9YyhlLGIpLHUodCxlLGwseSxFLEwsSSksTy5lcnJvclgmJnYoZSxsLE8uZXJyb3JYKSxPLmVycm9yWSYmdihlLHksTy5lcnJvclkpLE8uZmlsbCYmIXouZmlsbDJkJiYoei5maWxsMmQ9ITApLE8ubWFya2VyJiYhei5zY2F0dGVyMmQmJih6LnNjYXR0ZXIyZD0hMCksTy5saW5lJiYhei5saW5lMmQmJih6LmxpbmUyZD0hMCksIU8uZXJyb3JYJiYhTy5lcnJvcll8fHouZXJyb3IyZHx8KHouZXJyb3IyZD0hMCksTy50ZXh0JiYhei5nbFRleHQmJih6LmdsVGV4dD0hMCksTy5tYXJrZXImJihPLm1hcmtlci5zbmFwPWIpLHoubGluZU9wdGlvbnMucHVzaChPLmxpbmUpLHouZXJyb3JYT3B0aW9ucy5wdXNoKE8uZXJyb3JYKSx6LmVycm9yWU9wdGlvbnMucHVzaChPLmVycm9yWSksei5maWxsT3B0aW9ucy5wdXNoKE8uZmlsbCksei5tYXJrZXJPcHRpb25zLnB1c2goTy5tYXJrZXIpLHoubWFya2VyU2VsZWN0ZWRPcHRpb25zLnB1c2goTy5tYXJrZXJTZWwpLHoubWFya2VyVW5zZWxlY3RlZE9wdGlvbnMucHVzaChPLm1hcmtlclVuc2VsKSx6LnRleHRPcHRpb25zLnB1c2goTy50ZXh0KSx6LnRleHRTZWxlY3RlZE9wdGlvbnMucHVzaChPLnRleHRTZWwpLHoudGV4dFVuc2VsZWN0ZWRPcHRpb25zLnB1c2goTy50ZXh0VW5zZWwpLHouc2VsZWN0QmF0Y2gucHVzaChbXSksei51bnNlbGVjdEJhdGNoLnB1c2goW10pLFQuX3NjZW5lPXosVC5pbmRleD16LmNvdW50LFQueD1FLFQueT1MLFQucG9zaXRpb25zPUMsei5jb3VudCsrLFt7eDohMSx5OiExLHQ6VCx0cmFjZTplfV19fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiOjgyNCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F1dG9yYW5nZSI6ODI2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwiLi4vc2NhdHRlci9jYWxjIjoxMTkyLCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6MTE5NCwiLi9jb25zdGFudHMiOjEyNDUsIi4vY29udmVydCI6MTI0NiwiLi9zY2VuZV91cGRhdGUiOjEyNTQsIkBwbG90bHkvcG9pbnQtY2x1c3RlciI6NTl9XSwxMjQ1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17VE9PX01BTllfUE9JTlRTOjFlNSxTWU1CT0xfU0RGX1NJWkU6MjAwLFNZTUJPTF9TSVpFOjIwLFNZTUJPTF9TVFJPS0U6MSxET1RfUkU6Ly1kb3QvLE9QRU5fUkU6Ly1vcGVuLyxEQVNIRVM6e3NvbGlkOlsxXSxkb3Q6WzEsMV0sZGFzaDpbNCwxXSxsb25nZGFzaDpbOCwxXSxkYXNoZG90Ols0LDEsMSwxXSxsb25nZGFzaGRvdDpbOCwxLDEsMV19fX0se31dLDEyNDY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZmFzdC1pc251bWVyaWMiKSxpPXQoInN2Zy1wYXRoLXNkZiIpLGE9dCgiY29sb3Itbm9ybWFsaXplIiksbz10KCIuLi8uLi9yZWdpc3RyeSIpLHM9dCgiLi4vLi4vbGliIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxjPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyIpLHU9dCgiLi4vLi4vbGliL2dsX2Zvcm1hdF9jb2xvciIpLmZvcm1hdENvbG9yLGY9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGg9dCgiLi4vc2NhdHRlci9tYWtlX2J1YmJsZV9zaXplX2Z1bmMiKSxwPXQoIi4vaGVscGVycyIpLGQ9dCgiLi9jb25zdGFudHMiKSxtPXQoIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiKS5ERVNFTEVDVERJTSxnPXtzdGFydDoxLGxlZnQ6MSxlbmQ6LTEscmlnaHQ6LTEsbWlkZGxlOjAsY2VudGVyOjAsYm90dG9tOjEsdG9wOi0xfSx2PXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZTtmdW5jdGlvbiB5KHQsZSl7dmFyIHIsaT10Ll9mdWxsTGF5b3V0LGE9ZS5fbGVuZ3RoLG89ZS50ZXh0Zm9udCxsPWUudGV4dHBvc2l0aW9uLGM9QXJyYXkuaXNBcnJheShsKT9sOltsXSx1PW8uY29sb3IsZj1vLnNpemUsaD1vLmZhbWlseSxwPXt9LGQ9dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvLG09ZS50ZXh0dGVtcGxhdGU7aWYobSl7cC50ZXh0PVtdO3ZhciBnPWkuX2QzbG9jYWxlLHk9QXJyYXkuaXNBcnJheShtKSx4PXk/TWF0aC5taW4obS5sZW5ndGgsYSk6YSxiPXk/ZnVuY3Rpb24odCl7cmV0dXJuIG1bdF19OmZ1bmN0aW9uKCl7cmV0dXJuIG19O2ZvcihyPTA7cjx4O3IrKyl7dmFyIF89e2k6cn0sdz1lLl9tb2R1bGUuZm9ybWF0TGFiZWxzKF8sZSxpKSxUPXt9O3YoVCxlLHIpO3ZhciBrPWUuX21ldGF8fHt9O3AudGV4dC5wdXNoKHMudGV4dHRlbXBsYXRlU3RyaW5nKGIociksdyxnLFQsXyxrKSl9fWVsc2UgQXJyYXkuaXNBcnJheShlLnRleHQpJiZlLnRleHQubGVuZ3RoPGE/cC50ZXh0PWUudGV4dC5zbGljZSgpOnAudGV4dD1lLnRleHQ7aWYoQXJyYXkuaXNBcnJheShwLnRleHQpKWZvcihyPXAudGV4dC5sZW5ndGg7cjxhO3IrKylwLnRleHRbcl09IiI7Zm9yKHAub3BhY2l0eT1lLm9wYWNpdHkscC5mb250PXt9LHAuYWxpZ249W10scC5iYXNlbGluZT1bXSxyPTA7cjxjLmxlbmd0aDtyKyspe3ZhciBBPWNbcl0uc3BsaXQoL1xzKy8pO3N3aXRjaChBWzFdKXtjYXNlImxlZnQiOnAuYWxpZ24ucHVzaCgicmlnaHQiKTticmVhaztjYXNlInJpZ2h0IjpwLmFsaWduLnB1c2goImxlZnQiKTticmVhaztkZWZhdWx0OnAuYWxpZ24ucHVzaChBWzFdKX1zd2l0Y2goQVswXSl7Y2FzZSJ0b3AiOnAuYmFzZWxpbmUucHVzaCgiYm90dG9tIik7YnJlYWs7Y2FzZSJib3R0b20iOnAuYmFzZWxpbmUucHVzaCgidG9wIik7YnJlYWs7ZGVmYXVsdDpwLmJhc2VsaW5lLnB1c2goQVswXSl9fWlmKEFycmF5LmlzQXJyYXkodSkpZm9yKHAuY29sb3I9bmV3IEFycmF5KGEpLHI9MDtyPGE7cisrKXAuY29sb3Jbcl09dVtyXTtlbHNlIHAuY29sb3I9dTtpZihzLmlzQXJyYXlPclR5cGVkQXJyYXkoZil8fEFycmF5LmlzQXJyYXkoaCkpZm9yKHAuZm9udD1uZXcgQXJyYXkoYSkscj0wO3I8YTtyKyspe3ZhciBNPXAuZm9udFtyXT17fTtNLnNpemU9KHMuaXNUeXBlZEFycmF5KGYpP2Zbcl06QXJyYXkuaXNBcnJheShmKT9uKGZbcl0pP2Zbcl06MDpmKSpkLE0uZmFtaWx5PUFycmF5LmlzQXJyYXkoaCk/aFtyXTpofWVsc2UgcC5mb250PXtzaXplOmYqZCxmYW1pbHk6aH07cmV0dXJuIHB9ZnVuY3Rpb24geCh0KXt2YXIgZSxyLG49dC5fbGVuZ3RoLGk9dC5tYXJrZXIsbz17fSxsPXMuaXNBcnJheU9yVHlwZWRBcnJheShpLnN5bWJvbCksYz1zLmlzQXJyYXlPclR5cGVkQXJyYXkoaS5jb2xvciksZj1zLmlzQXJyYXlPclR5cGVkQXJyYXkoaS5saW5lLmNvbG9yKSxkPXMuaXNBcnJheU9yVHlwZWRBcnJheShpLm9wYWNpdHkpLG09cy5pc0FycmF5T3JUeXBlZEFycmF5KGkuc2l6ZSksZz1zLmlzQXJyYXlPclR5cGVkQXJyYXkoaS5saW5lLndpZHRoKTtpZihsfHwocj1wLmlzT3BlblN5bWJvbChpLnN5bWJvbCkpLGx8fGN8fGZ8fGQpe28uY29sb3JzPW5ldyBBcnJheShuKSxvLmJvcmRlckNvbG9ycz1uZXcgQXJyYXkobik7dmFyIHY9dShpLGkub3BhY2l0eSxuKSx5PXUoaS5saW5lLGkub3BhY2l0eSxuKTtpZighQXJyYXkuaXNBcnJheSh5WzBdKSl7dmFyIHg9eTtmb3IoeT1BcnJheShuKSxlPTA7ZTxuO2UrKyl5W2VdPXh9aWYoIUFycmF5LmlzQXJyYXkodlswXSkpe3ZhciBiPXY7Zm9yKHY9QXJyYXkobiksZT0wO2U8bjtlKyspdltlXT1ifWZvcihvLmNvbG9ycz12LG8uYm9yZGVyQ29sb3JzPXksZT0wO2U8bjtlKyspe2lmKGwpe3ZhciBfPWkuc3ltYm9sW2VdO3I9cC5pc09wZW5TeW1ib2woXyl9ciYmKHlbZV09dltlXS5zbGljZSgpLHZbZV09dltlXS5zbGljZSgpLHZbZV1bM109MCl9by5vcGFjaXR5PXQub3BhY2l0eX1lbHNlIHI/KG8uY29sb3I9YShpLmNvbG9yLCJ1aW50OCIpLG8uY29sb3JbM109MCxvLmJvcmRlckNvbG9yPWEoaS5jb2xvciwidWludDgiKSk6KG8uY29sb3I9YShpLmNvbG9yLCJ1aW50OCIpLG8uYm9yZGVyQ29sb3I9YShpLmxpbmUuY29sb3IsInVpbnQ4IikpLG8ub3BhY2l0eT10Lm9wYWNpdHkqaS5vcGFjaXR5O2lmKGwpZm9yKG8ubWFya2Vycz1uZXcgQXJyYXkobiksZT0wO2U8bjtlKyspby5tYXJrZXJzW2VdPUUoaS5zeW1ib2xbZV0pO2Vsc2Ugby5tYXJrZXI9RShpLnN5bWJvbCk7dmFyIHcsVD1oKHQsMSk7aWYobXx8Zyl7dmFyIGssQT1vLnNpemVzPW5ldyBBcnJheShuKSxNPW8uYm9yZGVyU2l6ZXM9bmV3IEFycmF5KG4pLFM9MDtpZihtKXtmb3IoZT0wO2U8bjtlKyspQVtlXT1UKGkuc2l6ZVtlXSksUys9QVtlXTtrPVMvbn1lbHNlIGZvcih3PVQoaS5zaXplKSxlPTA7ZTxuO2UrKylBW2VdPXc7aWYoZylmb3IoZT0wO2U8bjtlKyspTVtlXT1pLmxpbmUud2lkdGhbZV07ZWxzZSBmb3Iodz1pLmxpbmUud2lkdGgsZT0wO2U8bjtlKyspTVtlXT13O28uc2l6ZUF2Zz1rfWVsc2Ugby5zaXplPVQoaSYmaS5zaXplfHwxMCksby5ib3JkZXJTaXplcz1UKGkubGluZS53aWR0aCk7cmV0dXJuIG99ZnVuY3Rpb24gYih0LGUpe3ZhciByPXQubWFya2VyLG49e307cmV0dXJuIGU/KGUubWFya2VyJiZlLm1hcmtlci5zeW1ib2w/bj14KHMuZXh0ZW5kRmxhdCh7fSxyLGUubWFya2VyKSk6ZS5tYXJrZXImJihlLm1hcmtlci5zaXplJiYobi5zaXplPWUubWFya2VyLnNpemUpLGUubWFya2VyLmNvbG9yJiYobi5jb2xvcnM9ZS5tYXJrZXIuY29sb3IpLHZvaWQgMCE9PWUubWFya2VyLm9wYWNpdHkmJihuLm9wYWNpdHk9ZS5tYXJrZXIub3BhY2l0eSkpLG4pOm59ZnVuY3Rpb24gXyh0LGUscil7dmFyIG49e307aWYoIXIpcmV0dXJuIG47aWYoci50ZXh0Zm9udCl7dmFyIGk9e29wYWNpdHk6MSx0ZXh0OmUudGV4dCx0ZXh0dGVtcGxhdGU6ZS50ZXh0dGVtcGxhdGUsdGV4dHBvc2l0aW9uOmUudGV4dHBvc2l0aW9uLHRleHRmb250OnMuZXh0ZW5kRmxhdCh7fSxlLnRleHRmb250KX07ci50ZXh0Zm9udCYmcy5leHRlbmRGbGF0KGkudGV4dGZvbnQsci50ZXh0Zm9udCksbj15KHQsaSl9cmV0dXJuIG59ZnVuY3Rpb24gdyh0LGUscil7dmFyIG49e2NhcFNpemU6MiplLndpZHRoKnIsbGluZVdpZHRoOmUudGhpY2tuZXNzKnIsY29sb3I6ZS5jb2xvcn07cmV0dXJuIGUuY29weV95c3R5bGUmJihuPXQuZXJyb3JfeSksbn12YXIgVD1kLlNZTUJPTF9TREZfU0laRSxrPWQuU1lNQk9MX1NJWkUsQT1kLlNZTUJPTF9TVFJPS0UsTT17fSxTPWwuc3ltYm9sRnVuY3NbMF0oLjA1KmspO2Z1bmN0aW9uIEUodCl7aWYoImNpcmNsZSI9PT10KXJldHVybiBudWxsO3ZhciBlLHIsbj1sLnN5bWJvbE51bWJlcih0KSxhPWwuc3ltYm9sRnVuY3NbbiUxMDBdLG89ISFsLnN5bWJvbE5vRG90W24lMTAwXSxzPSEhbC5zeW1ib2xOb0ZpbGxbbiUxMDBdLGM9cC5pc0RvdFN5bWJvbCh0KTtyZXR1cm4gTVt0XT9NW3RdOihlPWMmJiFvP2EoMS4xKmspK1M6YShrKSxyPWkoZSx7dzpULGg6VCx2aWV3Qm94OlstaywtayxrLGtdLHN0cm9rZTpzP0E6LUF9KSxNW3RdPXIscnx8bnVsbCl9ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0LGUpe3ZhciByLG49e21hcmtlcjp2b2lkIDAsbWFya2VyU2VsOnZvaWQgMCxtYXJrZXJVbnNlbDp2b2lkIDAsbGluZTp2b2lkIDAsZmlsbDp2b2lkIDAsZXJyb3JYOnZvaWQgMCxlcnJvclk6dm9pZCAwLHRleHQ6dm9pZCAwLHRleHRTZWw6dm9pZCAwLHRleHRVbnNlbDp2b2lkIDB9LGk9dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvO2lmKCEwIT09ZS52aXNpYmxlKXJldHVybiBuO2lmKGYuaGFzVGV4dChlKSYmKG4udGV4dD15KHQsZSksbi50ZXh0U2VsPV8odCxlLGUuc2VsZWN0ZWQpLG4udGV4dFVuc2VsPV8odCxlLGUudW5zZWxlY3RlZCkpLGYuaGFzTWFya2VycyhlKSYmKG4ubWFya2VyPXgoZSksbi5tYXJrZXJTZWw9YihlLGUuc2VsZWN0ZWQpLG4ubWFya2VyVW5zZWw9YihlLGUudW5zZWxlY3RlZCksIWUudW5zZWxlY3RlZCYmcy5pc0FycmF5T3JUeXBlZEFycmF5KGUubWFya2VyLm9wYWNpdHkpKSl7dmFyIGE9ZS5tYXJrZXIub3BhY2l0eTtmb3Iobi5tYXJrZXJVbnNlbC5vcGFjaXR5PW5ldyBBcnJheShhLmxlbmd0aCkscj0wO3I8YS5sZW5ndGg7cisrKW4ubWFya2VyVW5zZWwub3BhY2l0eVtyXT1tKmFbcl19aWYoZi5oYXNMaW5lcyhlKSl7bi5saW5lPXtvdmVybGF5OiEwLHRoaWNrbmVzczplLmxpbmUud2lkdGgqaSxjb2xvcjplLmxpbmUuY29sb3Isb3BhY2l0eTplLm9wYWNpdHl9O3ZhciBvPShkLkRBU0hFU1tlLmxpbmUuZGFzaF18fFsxXSkuc2xpY2UoKTtmb3Iocj0wO3I8by5sZW5ndGg7KytyKW9bcl0qPWUubGluZS53aWR0aCppO24ubGluZS5kYXNoZXM9b31yZXR1cm4gZS5lcnJvcl94JiZlLmVycm9yX3gudmlzaWJsZSYmKG4uZXJyb3JYPXcoZSxlLmVycm9yX3gsaSkpLGUuZXJyb3JfeSYmZS5lcnJvcl95LnZpc2libGUmJihuLmVycm9yWT13KGUsZS5lcnJvcl95LGkpKSxlLmZpbGwmJiJub25lIiE9PWUuZmlsbCYmKG4uZmlsbD17Y2xvc2VkOiEwLGZpbGw6ZS5maWxsY29sb3IsdGhpY2tuZXNzOjB9KSxufSxtYXJrZXJTdHlsZTp4LG1hcmtlclNlbGVjdGlvbjpiLGxpbmVQb3NpdGlvbnM6ZnVuY3Rpb24odCxlLHIpe3ZhciBuLGksYT1yLmxlbmd0aCxvPWEvMjtpZihmLmhhc0xpbmVzKGUpJiZvKWlmKCJodiI9PT1lLmxpbmUuc2hhcGUpe2ZvcihuPVtdLGk9MDtpPG8tMTtpKyspaXNOYU4oclsyKmldKXx8aXNOYU4oclsyKmkrMV0pP24ucHVzaChOYU4sTmFOLE5hTixOYU4pOihuLnB1c2goclsyKmldLHJbMippKzFdKSxpc05hTihyWzIqaSsyXSl8fGlzTmFOKHJbMippKzNdKT9uLnB1c2goTmFOLE5hTik6bi5wdXNoKHJbMippKzJdLHJbMippKzFdKSk7bi5wdXNoKHJbYS0yXSxyW2EtMV0pfWVsc2UgaWYoImh2aCI9PT1lLmxpbmUuc2hhcGUpe2ZvcihuPVtdLGk9MDtpPG8tMTtpKyspaWYoaXNOYU4oclsyKmldKXx8aXNOYU4oclsyKmkrMV0pfHxpc05hTihyWzIqaSsyXSl8fGlzTmFOKHJbMippKzNdKSlpc05hTihyWzIqaV0pfHxpc05hTihyWzIqaSsxXSk/bi5wdXNoKE5hTixOYU4pOm4ucHVzaChyWzIqaV0sclsyKmkrMV0pLG4ucHVzaChOYU4sTmFOKTtlbHNle3ZhciBzPShyWzIqaV0rclsyKmkrMl0pLzI7bi5wdXNoKHJbMippXSxyWzIqaSsxXSxzLHJbMippKzFdLHMsclsyKmkrM10pfW4ucHVzaChyW2EtMl0sclthLTFdKX1lbHNlIGlmKCJ2aHYiPT09ZS5saW5lLnNoYXBlKXtmb3Iobj1bXSxpPTA7aTxvLTE7aSsrKWlmKGlzTmFOKHJbMippXSl8fGlzTmFOKHJbMippKzFdKXx8aXNOYU4oclsyKmkrMl0pfHxpc05hTihyWzIqaSszXSkpaXNOYU4oclsyKmldKXx8aXNOYU4oclsyKmkrMV0pP24ucHVzaChOYU4sTmFOKTpuLnB1c2goclsyKmldLHJbMippKzFdKSxuLnB1c2goTmFOLE5hTik7ZWxzZXt2YXIgbD0oclsyKmkrMV0rclsyKmkrM10pLzI7bi5wdXNoKHJbMippXSxyWzIqaSsxXSxyWzIqaV0sbCxyWzIqaSsyXSxsKX1uLnB1c2goclthLTJdLHJbYS0xXSl9ZWxzZSBpZigidmgiPT09ZS5saW5lLnNoYXBlKXtmb3Iobj1bXSxpPTA7aTxvLTE7aSsrKWlzTmFOKHJbMippXSl8fGlzTmFOKHJbMippKzFdKT9uLnB1c2goTmFOLE5hTixOYU4sTmFOKToobi5wdXNoKHJbMippXSxyWzIqaSsxXSksaXNOYU4oclsyKmkrMl0pfHxpc05hTihyWzIqaSszXSk/bi5wdXNoKE5hTixOYU4pOm4ucHVzaChyWzIqaV0sclsyKmkrM10pKTtuLnB1c2goclthLTJdLHJbYS0xXSl9ZWxzZSBuPXI7dmFyIGM9ITE7Zm9yKGk9MDtpPG4ubGVuZ3RoO2krKylpZihpc05hTihuW2ldKSl7Yz0hMDticmVha312YXIgdT1jfHxuLmxlbmd0aD5kLlRPT19NQU5ZX1BPSU5UU3x8Zi5oYXNNYXJrZXJzKGUpPyJyZWN0Ijoicm91bmQiO2lmKGMmJmUuY29ubmVjdGdhcHMpe3ZhciBoPW5bMF0scD1uWzFdO2ZvcihpPTA7aTxuLmxlbmd0aDtpKz0yKWlzTmFOKG5baV0pfHxpc05hTihuW2krMV0pPyhuW2ldPWgsbltpKzFdPXApOihoPW5baV0scD1uW2krMV0pfXJldHVybntqb2luOnUscG9zaXRpb25zOm59fSxlcnJvckJhclBvc2l0aW9uczpmdW5jdGlvbih0LGUscixpLGEpe3ZhciBzPW8uZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJtYWtlQ29tcHV0ZUVycm9yIiksbD1jLmdldEZyb21JZCh0LGUueGF4aXMpLHU9Yy5nZXRGcm9tSWQodCxlLnlheGlzKSxmPXIubGVuZ3RoLzIsaD17fTtmdW5jdGlvbiBwKHQsaSl7dmFyIGE9aS5faWQuY2hhckF0KDApLG89ZVsiZXJyb3JfIithXTtpZihvJiZvLnZpc2libGUmJigibGluZWFyIj09PWkudHlwZXx8ImxvZyI9PT1pLnR5cGUpKXtmb3IodmFyIGw9cyhvKSxjPXt4OjAseToxfVthXSx1PXt4OlswLDEsMiwzXSx5OlsyLDMsMCwxXX1bYV0scD1uZXcgRmxvYXQ2NEFycmF5KDQqZiksZD0xLzAsbT0tMS8wLGc9MCx2PTA7ZzxmO2crKyx2Kz00KXt2YXIgeT10W2ddO2lmKG4oeSkpe3ZhciB4PXJbMipnK2NdLGI9bCh5LGcpLF89YlswXSx3PWJbMV07aWYobihfKSYmbih3KSl7dmFyIFQ9eS1fLGs9eSt3O3Bbdit1WzBdXT14LWkuYzJsKFQpLHBbdit1WzFdXT1pLmMybChrKS14LHBbdit1WzJdXT0wLHBbdit1WzNdXT0wLGQ9TWF0aC5taW4oZCx5LV8pLG09TWF0aC5tYXgobSx5K3cpfX19aFthXT17cG9zaXRpb25zOnIsZXJyb3JzOnAsX2JuZHM6W2QsbV19fX1yZXR1cm4gcChpLGwpLHAoYSx1KSxofSx0ZXh0UG9zaXRpb246ZnVuY3Rpb24odCxlLHIsbil7dmFyIGksYT1lLl9sZW5ndGgsbz17fTtpZihmLmhhc01hcmtlcnMoZSkpe3ZhciBzPXIuZm9udCxsPXIuYWxpZ24sYz1yLmJhc2VsaW5lO2ZvcihvLm9mZnNldD1uZXcgQXJyYXkoYSksaT0wO2k8YTtpKyspe3ZhciB1PW4uc2l6ZXM/bi5zaXplc1tpXTpuLnNpemUsaD1BcnJheS5pc0FycmF5KHMpP3NbaV0uc2l6ZTpzLnNpemUscD1BcnJheS5pc0FycmF5KGwpP2wubGVuZ3RoPjE/bFtpXTpsWzBdOmwsZD1BcnJheS5pc0FycmF5KGMpP2MubGVuZ3RoPjE/Y1tpXTpjWzBdOmMsbT1nW3BdLHY9Z1tkXSx5PXU/dS8uOCsxOjAseD0tdip5LS41KnY7by5vZmZzZXRbaV09W20qeS9oLHgvaF19fXJldHVybiBvfX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyI6Njc1LCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo3NTEsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIjo3NzIsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2lkcyI6ODMxLCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyI6MTIwOCwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTIxNiwiLi9jb25zdGFudHMiOjEyNDUsIi4vaGVscGVycyI6MTI1MCwiY29sb3Itbm9ybWFsaXplIjoxMjYsImZhc3QtaXNudW1lcmljIjoyNDIsInN2Zy1wYXRoLXNkZiI6NTY5fV0sMTI0NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3JlZ2lzdHJ5IiksYT10KCIuL2hlbHBlcnMiKSxvPXQoIi4vYXR0cmlidXRlcyIpLHM9dCgiLi4vc2NhdHRlci9jb25zdGFudHMiKSxsPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxjPXQoIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiKSx1PXQoIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIiksZj10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLGg9dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIikscD10KCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyIpLGQ9dCgiLi4vc2NhdHRlci90ZXh0X2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG0pe2Z1bmN0aW9uIGcocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLG8scixpKX12YXIgdj0hIXQubWFya2VyJiZhLmlzT3BlblN5bWJvbCh0Lm1hcmtlci5zeW1ib2wpLHk9bC5pc0J1YmJsZSh0KSx4PWModCxlLG0sZyk7aWYoeCl7dSh0LGUsbSxnKSxnKCJ4aG92ZXJmb3JtYXQiKSxnKCJ5aG92ZXJmb3JtYXQiKTt2YXIgYj14PHMuUFRTX0xJTkVTT05MWT8ibGluZXMrbWFya2VycyI6ImxpbmVzIjtnKCJ0ZXh0IiksZygiaG92ZXJ0ZXh0IiksZygiaG92ZXJ0ZW1wbGF0ZSIpLGcoIm1vZGUiLGIpLGwuaGFzTGluZXMoZSkmJihnKCJjb25uZWN0Z2FwcyIpLGgodCxlLHIsbSxnKSxnKCJsaW5lLnNoYXBlIikpLGwuaGFzTWFya2VycyhlKSYmKGYodCxlLHIsbSxnKSxnKCJtYXJrZXIubGluZS53aWR0aCIsdnx8eT8xOjApKSxsLmhhc1RleHQoZSkmJihnKCJ0ZXh0dGVtcGxhdGUiKSxkKHQsZSxtLGcpKTt2YXIgXz0oZS5saW5lfHx7fSkuY29sb3Isdz0oZS5tYXJrZXJ8fHt9KS5jb2xvcjtnKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiZwKHQsZSxyLGcpO3ZhciBUPWkuZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJzdXBwbHlEZWZhdWx0cyIpO1QodCxlLF98fHd8fHIse2F4aXM6InkifSksVCh0LGUsX3x8d3x8cix7YXhpczoieCIsaW5oZXJpdDoieSJ9KSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxnKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsIi4uL3NjYXR0ZXIvY29uc3RhbnRzIjoxMTk1LCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyI6MTE5OSwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjoxMjA0LCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6MTIxMCwiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjEyMTEsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTIxNywiLi4vc2NhdHRlci94eV9kZWZhdWx0cyI6MTIxOCwiLi9hdHRyaWJ1dGVzIjoxMjQzLCIuL2hlbHBlcnMiOjEyNTB9XSwxMjQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyIpLkRFU0VMRUNURElNO2UuZXhwb3J0cz17c3R5bGVUZXh0U2VsZWN0aW9uOmZ1bmN0aW9uKHQpe3ZhciBlLHIsbz10WzBdLHM9by50cmFjZSxsPW8udCxjPWwuX3NjZW5lLHU9bC5pbmRleCxmPWMuc2VsZWN0QmF0Y2hbdV0saD1jLnVuc2VsZWN0QmF0Y2hbdV0scD1jLnRleHRPcHRpb25zW3VdLGQ9Yy50ZXh0U2VsZWN0ZWRPcHRpb25zW3VdfHx7fSxtPWMudGV4dFVuc2VsZWN0ZWRPcHRpb25zW3VdfHx7fSxnPW4uZXh0ZW5kRmxhdCh7fSxwKTtpZihmLmxlbmd0aHx8aC5sZW5ndGgpe3ZhciB2PWQuY29sb3IseT1tLmNvbG9yLHg9cC5jb2xvcixiPUFycmF5LmlzQXJyYXkoeCk7Zm9yKGcuY29sb3I9bmV3IEFycmF5KHMuX2xlbmd0aCksZT0wO2U8Zi5sZW5ndGg7ZSsrKXI9ZltlXSxnLmNvbG9yW3JdPXZ8fChiP3hbcl06eCk7Zm9yKGU9MDtlPGgubGVuZ3RoO2UrKyl7cj1oW2VdO3ZhciBfPWI/eFtyXTp4O2cuY29sb3Jbcl09eXx8KHY/XzppLmFkZE9wYWNpdHkoXyxhKSl9fWMuZ2xUZXh0W3VdLnVwZGF0ZShnKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29uc3RhbnRzL2ludGVyYWN0aW9ucyI6NzUxLCIuLi8uLi9saWIiOjc3Nn1dLDEyNDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9mb3JtYXRfbGFiZWxzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT10Lmk7cmV0dXJuIngiaW4gdHx8KHQueD1lLl94W2ldKSwieSJpbiB0fHwodC55PWUuX3lbaV0pLG4odCxlLHIpfX0seyIuLi9zY2F0dGVyL2Zvcm1hdF9sYWJlbHMiOjEyMDB9XSwxMjUwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIik7ci5pc09wZW5TeW1ib2w9ZnVuY3Rpb24odCl7cmV0dXJuInN0cmluZyI9PXR5cGVvZiB0P24uT1BFTl9SRS50ZXN0KHQpOnQlMjAwPjEwMH0sci5pc0RvdFN5bWJvbD1mdW5jdGlvbih0KXtyZXR1cm4ic3RyaW5nIj09dHlwZW9mIHQ/bi5ET1RfUkUudGVzdCh0KTp0PjIwMH19LHsiLi9jb25zdGFudHMiOjEyNDV9XSwxMjUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIik7ZnVuY3Rpb24gbyh0LGUscixvKXt2YXIgcz10LnhhLGw9dC55YSxjPXQuZGlzdGFuY2UsdT10LmR4eSxmPXQuaW5kZXgsaD17cG9pbnROdW1iZXI6Zix4OmVbZl0seTpyW2ZdfTtoLnR4PUFycmF5LmlzQXJyYXkoby50ZXh0KT9vLnRleHRbZl06by50ZXh0LGguaHR4PUFycmF5LmlzQXJyYXkoby5ob3ZlcnRleHQpP28uaG92ZXJ0ZXh0W2ZdOm8uaG92ZXJ0ZXh0LGguZGF0YT1BcnJheS5pc0FycmF5KG8uY3VzdG9tZGF0YSk/by5jdXN0b21kYXRhW2ZdOm8uY3VzdG9tZGF0YSxoLnRwPUFycmF5LmlzQXJyYXkoby50ZXh0cG9zaXRpb24pP28udGV4dHBvc2l0aW9uW2ZdOm8udGV4dHBvc2l0aW9uO3ZhciBwPW8udGV4dGZvbnQ7cCYmKGgudHM9aS5pc0FycmF5T3JUeXBlZEFycmF5KHAuc2l6ZSk/cC5zaXplW2ZdOnAuc2l6ZSxoLnRjPUFycmF5LmlzQXJyYXkocC5jb2xvcik/cC5jb2xvcltmXTpwLmNvbG9yLGgudGY9QXJyYXkuaXNBcnJheShwLmZhbWlseSk/cC5mYW1pbHlbZl06cC5mYW1pbHkpO3ZhciBkPW8ubWFya2VyO2QmJihoLm1zPWkuaXNBcnJheU9yVHlwZWRBcnJheShkLnNpemUpP2Quc2l6ZVtmXTpkLnNpemUsaC5tbz1pLmlzQXJyYXlPclR5cGVkQXJyYXkoZC5vcGFjaXR5KT9kLm9wYWNpdHlbZl06ZC5vcGFjaXR5LGgubXg9aS5pc0FycmF5T3JUeXBlZEFycmF5KGQuc3ltYm9sKT9kLnN5bWJvbFtmXTpkLnN5bWJvbCxoLm1jPWkuaXNBcnJheU9yVHlwZWRBcnJheShkLmNvbG9yKT9kLmNvbG9yW2ZdOmQuY29sb3IpO3ZhciBtPWQmJmQubGluZTttJiYoaC5tbGM9QXJyYXkuaXNBcnJheShtLmNvbG9yKT9tLmNvbG9yW2ZdOm0uY29sb3IsaC5tbHc9aS5pc0FycmF5T3JUeXBlZEFycmF5KG0ud2lkdGgpP20ud2lkdGhbZl06bS53aWR0aCk7dmFyIGc9ZCYmZC5ncmFkaWVudDtnJiYibm9uZSIhPT1nLnR5cGUmJihoLm1ndD1BcnJheS5pc0FycmF5KGcudHlwZSk/Zy50eXBlW2ZdOmcudHlwZSxoLm1nYz1BcnJheS5pc0FycmF5KGcuY29sb3IpP2cuY29sb3JbZl06Zy5jb2xvcik7dmFyIHY9cy5jMnAoaC54LCEwKSx5PWwuYzJwKGgueSwhMCkseD1oLm1yY3x8MSxiPW8uaG92ZXJsYWJlbDtiJiYoaC5oYmc9QXJyYXkuaXNBcnJheShiLmJnY29sb3IpP2IuYmdjb2xvcltmXTpiLmJnY29sb3IsaC5oYmM9QXJyYXkuaXNBcnJheShiLmJvcmRlcmNvbG9yKT9iLmJvcmRlcmNvbG9yW2ZdOmIuYm9yZGVyY29sb3IsaC5odHM9aS5pc0FycmF5T3JUeXBlZEFycmF5KGIuZm9udC5zaXplKT9iLmZvbnQuc2l6ZVtmXTpiLmZvbnQuc2l6ZSxoLmh0Yz1BcnJheS5pc0FycmF5KGIuZm9udC5jb2xvcik/Yi5mb250LmNvbG9yW2ZdOmIuZm9udC5jb2xvcixoLmh0Zj1BcnJheS5pc0FycmF5KGIuZm9udC5mYW1pbHkpP2IuZm9udC5mYW1pbHlbZl06Yi5mb250LmZhbWlseSxoLmhubD1pLmlzQXJyYXlPclR5cGVkQXJyYXkoYi5uYW1lbGVuZ3RoKT9iLm5hbWVsZW5ndGhbZl06Yi5uYW1lbGVuZ3RoKTt2YXIgXz1vLmhvdmVyaW5mbztfJiYoaC5oaT1BcnJheS5pc0FycmF5KF8pP19bZl06Xyk7dmFyIHc9by5ob3ZlcnRlbXBsYXRlO3cmJihoLmh0PUFycmF5LmlzQXJyYXkodyk/d1tmXTp3KTt2YXIgVD17fTtUW3QuaW5kZXhdPWg7dmFyIGs9by5fb3JpZ1gsQT1vLl9vcmlnWSxNPWkuZXh0ZW5kRmxhdCh7fSx0LHtjb2xvcjphKG8saCkseDA6di14LHgxOnYreCx4TGFiZWxWYWw6az9rW2ZdOmgueCx5MDp5LXgseTE6eSt4LHlMYWJlbFZhbDpBP0FbZl06aC55LGNkOlQsZGlzdGFuY2U6YyxzcGlrZURpc3RhbmNlOnUsaG92ZXJ0ZW1wbGF0ZTpoLmh0fSk7cmV0dXJuIGguaHR4P00udGV4dD1oLmh0eDpoLnR4P00udGV4dD1oLnR4Om8udGV4dCYmKE0udGV4dD1vLnRleHQpLGkuZmlsbFRleHQoaCxvLE0pLG4uZ2V0Q29tcG9uZW50TWV0aG9kKCJlcnJvcmJhcnMiLCJob3ZlckluZm8iKShoLG8sTSksTX1lLmV4cG9ydHM9e2hvdmVyUG9pbnRzOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEscyxsLGMsdSxmLGgscCxkLG09dC5jZCxnPW1bMF0udCx2PW1bMF0udHJhY2UseT10LnhhLHg9dC55YSxiPWcueCxfPWcueSx3PXkuYzJwKGUpLFQ9eC5jMnAociksaz10LmRpc3RhbmNlO2lmKGcudHJlZSl7dmFyIEE9eS5wMmMody1rKSxNPXkucDJjKHcrayksUz14LnAyYyhULWspLEU9eC5wMmMoVCtrKTtpPSJ4Ij09PW4/Zy50cmVlLnJhbmdlKE1hdGgubWluKEEsTSksTWF0aC5taW4oeC5fcmxbMF0seC5fcmxbMV0pLE1hdGgubWF4KEEsTSksTWF0aC5tYXgoeC5fcmxbMF0seC5fcmxbMV0pKTpnLnRyZWUucmFuZ2UoTWF0aC5taW4oQSxNKSxNYXRoLm1pbihTLEUpLE1hdGgubWF4KEEsTSksTWF0aC5tYXgoUyxFKSl9ZWxzZSBpPWcuaWRzO3ZhciBMPWs7aWYoIngiPT09bil7dmFyIEM9ISF2LnhwZXJpb2RhbGlnbm1lbnQsUD0hIXYueXBlcmlvZGFsaWdubWVudDtmb3IodT0wO3U8aS5sZW5ndGg7dSsrKXtpZihsPWJbYT1pW3VdXSxmPU1hdGguYWJzKHkuYzJwKGwpLXcpLEMpe3ZhciBJPXkuYzJwKHYuX3hTdGFydHNbYV0pLE89eS5jMnAodi5feEVuZHNbYV0pO2Y9dz49TWF0aC5taW4oSSxPKSYmdzw9TWF0aC5tYXgoSSxPKT8wOjEvMH1pZihmPEwpe2lmKEw9ZixjPV9bYV0saD14LmMycChjKS1ULFApe3ZhciB6PXguYzJwKHYuX3lTdGFydHNbYV0pLEQ9eC5jMnAodi5feUVuZHNbYV0pO2g9VD49TWF0aC5taW4oeixEKSYmVDw9TWF0aC5tYXgoeixEKT8wOjEvMH1kPU1hdGguc3FydChmKmYraCpoKSxzPWlbdV19fX1lbHNlIGZvcih1PWkubGVuZ3RoLTE7dT4tMTt1LS0pbD1iW2E9aVt1XV0sYz1fW2FdLGY9eS5jMnAobCktdyxoPXguYzJwKGMpLVQsKHA9TWF0aC5zcXJ0KGYqZitoKmgpKTxMJiYoTD1kPXAscz1hKTtyZXR1cm4gdC5pbmRleD1zLHQuZGlzdGFuY2U9TCx0LmR4eT1kLHZvaWQgMD09PXM/W3RdOltvKHQsYixfLHYpXX0sY2FsY0hvdmVyOm99fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9zY2F0dGVyL2dldF90cmFjZV9jb2xvciI6MTIwMX1dLDEyNTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9ob3ZlciIpO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNjYXR0ZXJnbCIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuIiksY2F0ZWdvcmllczpbImdsIiwicmVnbCIsImNhcnRlc2lhbiIsInN5bWJvbHMiLCJlcnJvckJhcnNPSyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjcm9zc1RyYWNlRGVmYXVsdHM6dCgiLi4vc2NhdHRlci9jcm9zc190cmFjZV9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxob3ZlclBvaW50czpuLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2NhcnRlc2lhbiI6ODQxLCIuLi9zY2F0dGVyL2Nyb3NzX3RyYWNlX2RlZmF1bHRzIjoxMTk3LCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6MTIwOSwiLi9hdHRyaWJ1dGVzIjoxMjQzLCIuL2NhbGMiOjEyNDQsIi4vZGVmYXVsdHMiOjEyNDcsIi4vZm9ybWF0X2xhYmVscyI6MTI0OSwiLi9ob3ZlciI6MTI1MSwiLi9wbG90IjoxMjUzLCIuL3NlbGVjdCI6MTI1NX1dLDEyNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgicmVnbC1zY2F0dGVyMmQiKSxpPXQoInJlZ2wtbGluZTJkIiksYT10KCJyZWdsLWVycm9yMmQiKSxvPXQoImdsLXRleHQiKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIikuc2VsZWN0TW9kZSxjPXQoIi4uLy4uL2xpYi9wcmVwYXJlX3JlZ2wiKSx1PXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxmPXQoIi4uL3NjYXR0ZXIvbGlua190cmFjZXMiKSxoPXQoIi4vZWRpdF9zdHlsZSIpLnN0eWxlVGV4dFNlbGVjdGlvbjtmdW5jdGlvbiBwKHQsZSxyLG4pe3ZhciBpPXQuX3NpemUsYT10LndpZHRoKm4sbz10LmhlaWdodCpuLHM9aS5sKm4sbD1pLmIqbixjPWkucipuLHU9aS50Km4sZj1pLncqbixoPWkuaCpuO3JldHVybltzK2UuZG9tYWluWzBdKmYsbCtyLmRvbWFpblswXSpoLGEtYy0oMS1lLmRvbWFpblsxXSkqZixvLXUtKDEtci5kb21haW5bMV0pKmhdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYoci5sZW5ndGgpe3ZhciBkLG0sZz10Ll9mdWxsTGF5b3V0LHY9ZS5fc2NlbmUseT1lLnhheGlzLHg9ZS55YXhpcztpZih2KWlmKGModCxbIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiLCJPRVNfZWxlbWVudF9pbmRleF91aW50Il0pKXt2YXIgYj12LmNvdW50LF89Zy5fZ2xjYW52YXMuZGF0YSgpWzBdLnJlZ2w7aWYoZih0LGUsciksdi5kaXJ0eSl7aWYoITA9PT12LmVycm9yMmQmJih2LmVycm9yMmQ9YShfKSksITA9PT12LmxpbmUyZCYmKHYubGluZTJkPWkoXykpLCEwPT09di5zY2F0dGVyMmQmJih2LnNjYXR0ZXIyZD1uKF8pKSwhMD09PXYuZmlsbDJkJiYodi5maWxsMmQ9aShfKSksITA9PT12LmdsVGV4dClmb3Iodi5nbFRleHQ9bmV3IEFycmF5KGIpLGQ9MDtkPGI7ZCsrKXYuZ2xUZXh0W2RdPW5ldyBvKF8pO2lmKHYuZ2xUZXh0KXtpZihiPnYuZ2xUZXh0Lmxlbmd0aCl7dmFyIHc9Yi12LmdsVGV4dC5sZW5ndGg7Zm9yKGQ9MDtkPHc7ZCsrKXYuZ2xUZXh0LnB1c2gobmV3IG8oXykpfWVsc2UgaWYoYjx2LmdsVGV4dC5sZW5ndGgpe3ZhciBUPXYuZ2xUZXh0Lmxlbmd0aC1iO3YuZ2xUZXh0LnNwbGljZShiLFQpLmZvckVhY2goKGZ1bmN0aW9uKHQpe3QuZGVzdHJveSgpfSkpfWZvcihkPTA7ZDxiO2QrKyl2LmdsVGV4dFtkXS51cGRhdGUodi50ZXh0T3B0aW9uc1tkXSl9aWYodi5saW5lMmQmJih2LmxpbmUyZC51cGRhdGUodi5saW5lT3B0aW9ucyksdi5saW5lT3B0aW9ucz12LmxpbmVPcHRpb25zLm1hcCgoZnVuY3Rpb24odCl7aWYodCYmdC5wb3NpdGlvbnMpe2Zvcih2YXIgZT10LnBvc2l0aW9ucyxyPTA7cjxlLmxlbmd0aCYmKGlzTmFOKGVbcl0pfHxpc05hTihlW3IrMV0pKTspcis9Mjtmb3IodmFyIG49ZS5sZW5ndGgtMjtuPnImJihpc05hTihlW25dKXx8aXNOYU4oZVtuKzFdKSk7KW4tPTI7dC5wb3NpdGlvbnM9ZS5zbGljZShyLG4rMil9cmV0dXJuIHR9KSksdi5saW5lMmQudXBkYXRlKHYubGluZU9wdGlvbnMpKSx2LmVycm9yMmQpe3ZhciBrPSh2LmVycm9yWE9wdGlvbnN8fFtdKS5jb25jYXQodi5lcnJvcllPcHRpb25zfHxbXSk7di5lcnJvcjJkLnVwZGF0ZShrKX12LnNjYXR0ZXIyZCYmdi5zY2F0dGVyMmQudXBkYXRlKHYubWFya2VyT3B0aW9ucyksdi5maWxsT3JkZXI9cy5yZXBlYXQobnVsbCxiKSx2LmZpbGwyZCYmKHYuZmlsbE9wdGlvbnM9di5maWxsT3B0aW9ucy5tYXAoKGZ1bmN0aW9uKHQsZSl7dmFyIG49cltlXTtpZih0JiZuJiZuWzBdJiZuWzBdLnRyYWNlKXt2YXIgaSxhLG89blswXSxzPW8udHJhY2UsbD1vLnQsYz12LmxpbmVPcHRpb25zW2VdLHU9W107cy5fb3duZmlsbCYmdS5wdXNoKGUpLHMuX25leHR0cmFjZSYmdS5wdXNoKGUrMSksdS5sZW5ndGgmJih2LmZpbGxPcmRlcltlXT11KTt2YXIgZixoLHA9W10sZD1jJiZjLnBvc2l0aW9uc3x8bC5wb3NpdGlvbnM7aWYoInRvemVyb3kiPT09cy5maWxsKXtmb3IoZj0wO2Y8ZC5sZW5ndGgmJmlzTmFOKGRbZisxXSk7KWYrPTI7Zm9yKGg9ZC5sZW5ndGgtMjtoPmYmJmlzTmFOKGRbaCsxXSk7KWgtPTI7MCE9PWRbZisxXSYmKHA9W2RbZl0sMF0pLHA9cC5jb25jYXQoZC5zbGljZShmLGgrMikpLDAhPT1kW2grMV0mJihwPXAuY29uY2F0KFtkW2hdLDBdKSl9ZWxzZSBpZigidG96ZXJveCI9PT1zLmZpbGwpe2ZvcihmPTA7ZjxkLmxlbmd0aCYmaXNOYU4oZFtmXSk7KWYrPTI7Zm9yKGg9ZC5sZW5ndGgtMjtoPmYmJmlzTmFOKGRbaF0pOyloLT0yOzAhPT1kW2ZdJiYocD1bMCxkW2YrMV1dKSxwPXAuY29uY2F0KGQuc2xpY2UoZixoKzIpKSwwIT09ZFtoXSYmKHA9cC5jb25jYXQoWzAsZFtoKzFdXSkpfWVsc2UgaWYoInRvc2VsZiI9PT1zLmZpbGx8fCJ0b25leHQiPT09cy5maWxsKXtmb3IocD1bXSxpPTAsdC5zcGxpdE51bGw9ITAsYT0wO2E8ZC5sZW5ndGg7YSs9MikoaXNOYU4oZFthXSl8fGlzTmFOKGRbYSsxXSkpJiYoKHA9cC5jb25jYXQoZC5zbGljZShpLGEpKSkucHVzaChkW2ldLGRbaSsxXSkscC5wdXNoKG51bGwsbnVsbCksaT1hKzIpO3A9cC5jb25jYXQoZC5zbGljZShpKSksaSYmcC5wdXNoKGRbaV0sZFtpKzFdKX1lbHNle3ZhciBtPXMuX25leHR0cmFjZTtpZihtKXt2YXIgZz12LmxpbmVPcHRpb25zW2UrMV07aWYoZyl7dmFyIHk9Zy5wb3NpdGlvbnM7aWYoInRvbmV4dHkiPT09cy5maWxsKXtmb3IocD1kLnNsaWNlKCksZT1NYXRoLmZsb29yKHkubGVuZ3RoLzIpO2UtLTspe3ZhciB4PXlbMiplXSxiPXlbMiplKzFdO2lzTmFOKHgpfHxpc05hTihiKXx8cC5wdXNoKHgsYil9dC5maWxsPW0uZmlsbGNvbG9yfX19fWlmKHMuX3ByZXZ0cmFjZSYmInRvbmV4dCI9PT1zLl9wcmV2dHJhY2UuZmlsbCl7dmFyIF89di5saW5lT3B0aW9uc1tlLTFdLnBvc2l0aW9ucyx3PXAubGVuZ3RoLzIsVD1baT13XTtmb3IoYT0wO2E8Xy5sZW5ndGg7YSs9MikoaXNOYU4oX1thXSl8fGlzTmFOKF9bYSsxXSkpJiYoVC5wdXNoKGEvMit3KzEpLGk9YSsyKTtwPXAuY29uY2F0KF8pLHQuaG9sZT1UfXJldHVybiB0LmZpbGxtb2RlPXMuZmlsbCx0Lm9wYWNpdHk9cy5vcGFjaXR5LHQucG9zaXRpb25zPXAsdH19KSksdi5maWxsMmQudXBkYXRlKHYuZmlsbE9wdGlvbnMpKX12YXIgQT1nLmRyYWdtb2RlLE09bChBKSxTPWcuY2xpY2ttb2RlLmluZGV4T2YoInNlbGVjdCIpPi0xO2ZvcihkPTA7ZDxiO2QrKyl7dmFyIEU9cltkXVswXSxMPUUudHJhY2UsQz1FLnQsUD1DLmluZGV4LEk9TC5fbGVuZ3RoLE89Qy54LHo9Qy55O2lmKEwuc2VsZWN0ZWRwb2ludHN8fE18fFMpe2lmKE18fChNPSEwKSxMLnNlbGVjdGVkcG9pbnRzKXt2YXIgRD12LnNlbGVjdEJhdGNoW1BdPXMuc2VsSW5kaWNlczJzZWxQb2ludHMoTCksUj17fTtmb3IobT0wO208RC5sZW5ndGg7bSsrKVJbRFttXV09MTt2YXIgRj1bXTtmb3IobT0wO208STttKyspUlttXXx8Ri5wdXNoKG0pO3YudW5zZWxlY3RCYXRjaFtQXT1GfXZhciBCPUMueHB4PW5ldyBBcnJheShJKSxOPUMueXB4PW5ldyBBcnJheShJKTtmb3IobT0wO208STttKyspQlttXT15LmMycChPW21dKSxOW21dPXguYzJwKHpbbV0pfWVsc2UgQy54cHg9Qy55cHg9bnVsbH1pZihNKXtpZih2LnNlbGVjdDJkfHwodi5zZWxlY3QyZD1uKGcuX2dsY2FudmFzLmRhdGEoKVsxXS5yZWdsKSksdi5zY2F0dGVyMmQpe3ZhciBqPW5ldyBBcnJheShiKTtmb3IoZD0wO2Q8YjtkKyspaltkXT12LnNlbGVjdEJhdGNoW2RdLmxlbmd0aHx8di51bnNlbGVjdEJhdGNoW2RdLmxlbmd0aD92Lm1hcmtlclVuc2VsZWN0ZWRPcHRpb25zW2RdOnt9O3Yuc2NhdHRlcjJkLnVwZGF0ZShqKX12LnNlbGVjdDJkJiYodi5zZWxlY3QyZC51cGRhdGUodi5tYXJrZXJPcHRpb25zKSx2LnNlbGVjdDJkLnVwZGF0ZSh2Lm1hcmtlclNlbGVjdGVkT3B0aW9ucykpLHYuZ2xUZXh0JiZyLmZvckVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPSgodHx8W10pWzBdfHx7fSkudHJhY2V8fHt9O3UuaGFzVGV4dChlKSYmaCh0KX0pKX1lbHNlIHYuc2NhdHRlcjJkJiZ2LnNjYXR0ZXIyZC51cGRhdGUodi5tYXJrZXJPcHRpb25zKTt2YXIgVT17dmlld3BvcnQ6cChnLHkseCx0Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW8pLHJhbmdlOlsoeS5fcmx8fHkucmFuZ2UpWzBdLCh4Ll9ybHx8eC5yYW5nZSlbMF0sKHkuX3JsfHx5LnJhbmdlKVsxXSwoeC5fcmx8fHgucmFuZ2UpWzFdXX0sVj1zLnJlcGVhdChVLHYuY291bnQpO3YuZmlsbDJkJiZ2LmZpbGwyZC51cGRhdGUoViksdi5saW5lMmQmJnYubGluZTJkLnVwZGF0ZShWKSx2LmVycm9yMmQmJnYuZXJyb3IyZC51cGRhdGUoVi5jb25jYXQoVikpLHYuc2NhdHRlcjJkJiZ2LnNjYXR0ZXIyZC51cGRhdGUoViksdi5zZWxlY3QyZCYmdi5zZWxlY3QyZC51cGRhdGUoViksdi5nbFRleHQmJnYuZ2xUZXh0LmZvckVhY2goKGZ1bmN0aW9uKHQpe3QudXBkYXRlKFUpfSkpfWVsc2Ugdi5pbml0KCl9fX0seyIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50L2hlbHBlcnMiOjY1NywiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9wcmVwYXJlX3JlZ2wiOjc4OSwiLi4vc2NhdHRlci9saW5rX3RyYWNlcyI6MTIwNywiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTIxNiwiLi9lZGl0X3N0eWxlIjoxMjQ4LCJnbC10ZXh0IjozMzcsInJlZ2wtZXJyb3IyZCI6NTEyLCJyZWdsLWxpbmUyZCI6NTEzLCJyZWdsLXNjYXR0ZXIyZCI6NTE0fV0sMTI1NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLl9zY2VuZSxpPXtjb3VudDowLGRpcnR5OiEwLGxpbmVPcHRpb25zOltdLGZpbGxPcHRpb25zOltdLG1hcmtlck9wdGlvbnM6W10sbWFya2VyU2VsZWN0ZWRPcHRpb25zOltdLG1hcmtlclVuc2VsZWN0ZWRPcHRpb25zOltdLGVycm9yWE9wdGlvbnM6W10sZXJyb3JZT3B0aW9uczpbXSx0ZXh0T3B0aW9uczpbXSx0ZXh0U2VsZWN0ZWRPcHRpb25zOltdLHRleHRVbnNlbGVjdGVkT3B0aW9uczpbXSxzZWxlY3RCYXRjaDpbXSx1bnNlbGVjdEJhdGNoOltdfSxhPXtmaWxsMmQ6ITEsc2NhdHRlcjJkOiExLGVycm9yMmQ6ITEsbGluZTJkOiExLGdsVGV4dDohMSxzZWxlY3QyZDohMX07cmV0dXJuIGUuX3NjZW5lfHwoKHI9ZS5fc2NlbmU9e30pLmluaXQ9ZnVuY3Rpb24oKXtuLmV4dGVuZEZsYXQocixhLGkpfSxyLmluaXQoKSxyLnVwZGF0ZT1mdW5jdGlvbih0KXt2YXIgZT1uLnJlcGVhdCh0LHIuY291bnQpO2lmKHIuZmlsbDJkJiZyLmZpbGwyZC51cGRhdGUoZSksci5zY2F0dGVyMmQmJnIuc2NhdHRlcjJkLnVwZGF0ZShlKSxyLmxpbmUyZCYmci5saW5lMmQudXBkYXRlKGUpLHIuZXJyb3IyZCYmci5lcnJvcjJkLnVwZGF0ZShlLmNvbmNhdChlKSksci5zZWxlY3QyZCYmci5zZWxlY3QyZC51cGRhdGUoZSksci5nbFRleHQpZm9yKHZhciBpPTA7aTxyLmNvdW50O2krKylyLmdsVGV4dFtpXS51cGRhdGUodCl9LHIuZHJhdz1mdW5jdGlvbigpe2Zvcih2YXIgdD1yLmNvdW50LGU9ci5maWxsMmQsaT1yLmVycm9yMmQsYT1yLmxpbmUyZCxvPXIuc2NhdHRlcjJkLHM9ci5nbFRleHQsbD1yLnNlbGVjdDJkLGM9ci5zZWxlY3RCYXRjaCx1PXIudW5zZWxlY3RCYXRjaCxmPTA7Zjx0O2YrKyl7aWYoZSYmci5maWxsT3JkZXJbZl0mJmUuZHJhdyhyLmZpbGxPcmRlcltmXSksYSYmci5saW5lT3B0aW9uc1tmXSYmYS5kcmF3KGYpLGkmJihyLmVycm9yWE9wdGlvbnNbZl0mJmkuZHJhdyhmKSxyLmVycm9yWU9wdGlvbnNbZl0mJmkuZHJhdyhmK3QpKSxvJiZyLm1hcmtlck9wdGlvbnNbZl0paWYodVtmXS5sZW5ndGgpe3ZhciBoPW4ucmVwZWF0KFtdLHIuY291bnQpO2hbZl09dVtmXSxvLmRyYXcoaCl9ZWxzZSBjW2ZdLmxlbmd0aHx8by5kcmF3KGYpO3NbZl0mJnIudGV4dE9wdGlvbnNbZl0mJnNbZl0ucmVuZGVyKCl9bCYmbC5kcmF3KGMpLHIuZGlydHk9ITF9LHIuZGVzdHJveT1mdW5jdGlvbigpe3IuZmlsbDJkJiZyLmZpbGwyZC5kZXN0cm95JiZyLmZpbGwyZC5kZXN0cm95KCksci5zY2F0dGVyMmQmJnIuc2NhdHRlcjJkLmRlc3Ryb3kmJnIuc2NhdHRlcjJkLmRlc3Ryb3koKSxyLmVycm9yMmQmJnIuZXJyb3IyZC5kZXN0cm95JiZyLmVycm9yMmQuZGVzdHJveSgpLHIubGluZTJkJiZyLmxpbmUyZC5kZXN0cm95JiZyLmxpbmUyZC5kZXN0cm95KCksci5zZWxlY3QyZCYmci5zZWxlY3QyZC5kZXN0cm95JiZyLnNlbGVjdDJkLmRlc3Ryb3koKSxyLmdsVGV4dCYmci5nbFRleHQuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5kZXN0cm95JiZ0LmRlc3Ryb3koKX0pKSxyLmxpbmVPcHRpb25zPW51bGwsci5maWxsT3B0aW9ucz1udWxsLHIubWFya2VyT3B0aW9ucz1udWxsLHIubWFya2VyU2VsZWN0ZWRPcHRpb25zPW51bGwsci5tYXJrZXJVbnNlbGVjdGVkT3B0aW9ucz1udWxsLHIuZXJyb3JYT3B0aW9ucz1udWxsLHIuZXJyb3JZT3B0aW9ucz1udWxsLHIudGV4dE9wdGlvbnM9bnVsbCxyLnRleHRTZWxlY3RlZE9wdGlvbnM9bnVsbCxyLnRleHRVbnNlbGVjdGVkT3B0aW9ucz1udWxsLHIuc2VsZWN0QmF0Y2g9bnVsbCxyLnVuc2VsZWN0QmF0Y2g9bnVsbCxlLl9zY2VuZT1udWxsfSksci5kaXJ0eXx8bi5leHRlbmRGbGF0KHIsaSkscn19LHsiLi4vLi4vbGliIjo3NzZ9XSwxMjU1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxpPXQoIi4vZWRpdF9zdHlsZSIpLnN0eWxlVGV4dFNlbGVjdGlvbjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmNkLGE9dC54YXhpcyxvPXQueWF4aXMscz1bXSxsPXJbMF0udHJhY2UsYz1yWzBdLnQsdT1sLl9sZW5ndGgsZj1jLngsaD1jLnkscD1jLl9zY2VuZSxkPWMuaW5kZXg7aWYoIXApcmV0dXJuIHM7dmFyIG09bi5oYXNUZXh0KGwpLGc9bi5oYXNNYXJrZXJzKGwpLHY9IWcmJiFtO2lmKCEwIT09bC52aXNpYmxlfHx2KXJldHVybiBzO3ZhciB5PVtdLHg9W107aWYoITEhPT1lJiYhZS5kZWdlbmVyYXRlKWZvcih2YXIgYj0wO2I8dTtiKyspZS5jb250YWlucyhbYy54cHhbYl0sYy55cHhbYl1dLCExLGIsdCk/KHkucHVzaChiKSxzLnB1c2goe3BvaW50TnVtYmVyOmIseDphLmMyZChmW2JdKSx5Om8uYzJkKGhbYl0pfSkpOngucHVzaChiKTtpZihnKXt2YXIgXz1wLnNjYXR0ZXIyZDtpZih5Lmxlbmd0aHx8eC5sZW5ndGgpe2lmKCFwLnNlbGVjdEJhdGNoW2RdLmxlbmd0aCYmIXAudW5zZWxlY3RCYXRjaFtkXS5sZW5ndGgpe3ZhciB3PW5ldyBBcnJheShwLmNvdW50KTt3W2RdPXAubWFya2VyVW5zZWxlY3RlZE9wdGlvbnNbZF0sXy51cGRhdGUuYXBwbHkoXyx3KX19ZWxzZXt2YXIgVD1uZXcgQXJyYXkocC5jb3VudCk7VFtkXT1wLm1hcmtlck9wdGlvbnNbZF0sXy51cGRhdGUuYXBwbHkoXyxUKX19cmV0dXJuIHAuc2VsZWN0QmF0Y2hbZF09eSxwLnVuc2VsZWN0QmF0Y2hbZF09eCxtJiZpKHIpLHN9fSx7Ii4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4vZWRpdF9zdHlsZSI6MTI0OH1dLDEyNTY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxhPXQoIi4uL3NjYXR0ZXJnZW8vYXR0cmlidXRlcyIpLG89dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9tYXBib3gvbGF5b3V0X2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksdT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxmPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbCxoPWEubGluZSxwPWEubWFya2VyO2UuZXhwb3J0cz1mKHtsb246YS5sb24sbGF0OmEubGF0LG1vZGU6dSh7fSxvLm1vZGUse2RmbHQ6Im1hcmtlcnMifSksdGV4dDp1KHt9LG8udGV4dCx7fSksdGV4dHRlbXBsYXRlOmkoe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJsYXQiLCJsb24iLCJ0ZXh0Il19KSxob3ZlcnRleHQ6dSh7fSxvLmhvdmVydGV4dCx7fSksbGluZTp7Y29sb3I6aC5jb2xvcix3aWR0aDpoLndpZHRofSxjb25uZWN0Z2FwczpvLmNvbm5lY3RnYXBzLG1hcmtlcjp1KHtzeW1ib2w6e3ZhbFR5cGU6InN0cmluZyIsZGZsdDoiY2lyY2xlIixhcnJheU9rOiEwfSxhbmdsZTp7dmFsVHlwZToibnVtYmVyIixkZmx0OiJhdXRvIixhcnJheU9rOiEwfSxhbGxvd292ZXJsYXA6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LG9wYWNpdHk6cC5vcGFjaXR5LHNpemU6cC5zaXplLHNpemVyZWY6cC5zaXplcmVmLHNpemVtaW46cC5zaXplbWluLHNpemVtb2RlOnAuc2l6ZW1vZGV9LGMoIm1hcmtlciIpKSxmaWxsOmEuZmlsbCxmaWxsY29sb3I6by5maWxsY29sb3IsdGV4dGZvbnQ6cy5sYXllcnMuc3ltYm9sLnRleHRmb250LHRleHRwb3NpdGlvbjpzLmxheWVycy5zeW1ib2wudGV4dHBvc2l0aW9uLGJlbG93Ont2YWxUeXBlOiJzdHJpbmcifSxzZWxlY3RlZDp7bWFya2VyOm8uc2VsZWN0ZWQubWFya2VyfSx1bnNlbGVjdGVkOnttYXJrZXI6by51bnNlbGVjdGVkLm1hcmtlcn0saG92ZXJpbmZvOnUoe30sbC5ob3ZlcmluZm8se2ZsYWdzOlsibG9uIiwibGF0IiwidGV4dCIsIm5hbWUiXX0pLGhvdmVydGVtcGxhdGU6bigpfSwiY2FsYyIsIm5lc3RlZCIpfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uLy4uL3Bsb3RzL21hcGJveC9sYXlvdXRfYXR0cmlidXRlcyI6ODg2LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTE5MSwiLi4vc2NhdHRlcmdlby9hdHRyaWJ1dGVzIjoxMjMzfV0sMTI1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLG89dCgiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLGw9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksYz10KCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyIpLHU9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGY9dCgiLi4vLi4vcGxvdHMvbWFwYm94L2NvbnZlcnRfdGV4dF9vcHRzIiksaD10KCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiKS5hcHBlbmRBcnJheVBvaW50VmFsdWUscD10KCIuLi8uLi9saWIvc3ZnX3RleHRfdXRpbHMiKS5ORVdMSU5FUyxkPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLkJSX1RBR19BTEw7ZnVuY3Rpb24gbSgpe3JldHVybntnZW9qc29uOm8ubWFrZUJsYW5rKCksbGF5b3V0Ont2aXNpYmlsaXR5OiJub25lIn0scGFpbnQ6e319fWZ1bmN0aW9uIGcodCxlKXtyZXR1cm4gaS5pc0FycmF5T3JUeXBlZEFycmF5KHQpP2U/ZnVuY3Rpb24oZSl7cmV0dXJuIG4odFtlXSk/K3RbZV06MH06ZnVuY3Rpb24oZSl7cmV0dXJuIHRbZV19OnQ/ZnVuY3Rpb24oKXtyZXR1cm4gdH06dn1mdW5jdGlvbiB2KCl7cmV0dXJuIiJ9ZnVuY3Rpb24geSh0KXtyZXR1cm4gdFswXT09PWF9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsYT1lWzBdLnRyYWNlLHg9ITA9PT1hLnZpc2libGUmJjAhPT1hLl9sZW5ndGgsYj0ibm9uZSIhPT1hLmZpbGwsXz11Lmhhc0xpbmVzKGEpLHc9dS5oYXNNYXJrZXJzKGEpLFQ9dS5oYXNUZXh0KGEpLGs9dyYmImNpcmNsZSI9PT1hLm1hcmtlci5zeW1ib2wsQT13JiYiY2lyY2xlIiE9PWEubWFya2VyLnN5bWJvbCxNPW0oKSxTPW0oKSxFPW0oKSxMPW0oKSxDPXtmaWxsOk0sbGluZTpTLGNpcmNsZTpFLHN5bWJvbDpMfTtpZigheClyZXR1cm4gQztpZigoYnx8XykmJihyPW8uY2FsY1RyYWNlVG9MaW5lQ29vcmRzKGUpKSxiJiYoTS5nZW9qc29uPW8ubWFrZVBvbHlnb24ociksTS5sYXlvdXQudmlzaWJpbGl0eT0idmlzaWJsZSIsaS5leHRlbmRGbGF0KE0ucGFpbnQseyJmaWxsLWNvbG9yIjphLmZpbGxjb2xvcn0pKSxfJiYoUy5nZW9qc29uPW8ubWFrZUxpbmUociksUy5sYXlvdXQudmlzaWJpbGl0eT0idmlzaWJsZSIsaS5leHRlbmRGbGF0KFMucGFpbnQseyJsaW5lLXdpZHRoIjphLmxpbmUud2lkdGgsImxpbmUtY29sb3IiOmEubGluZS5jb2xvciwibGluZS1vcGFjaXR5IjphLm9wYWNpdHl9KSksayl7dmFyIFA9ZnVuY3Rpb24odCl7dmFyIGUscixhLG8sdT10WzBdLnRyYWNlLGY9dS5tYXJrZXIsaD11LnNlbGVjdGVkcG9pbnRzLHA9aS5pc0FycmF5T3JUeXBlZEFycmF5KGYuY29sb3IpLGQ9aS5pc0FycmF5T3JUeXBlZEFycmF5KGYuc2l6ZSksbT1pLmlzQXJyYXlPclR5cGVkQXJyYXkoZi5vcGFjaXR5KTtmdW5jdGlvbiBnKHQpe3JldHVybiB1Lm9wYWNpdHkqdH1wJiYocj1zLmhhc0NvbG9yc2NhbGUodSwibWFya2VyIik/cy5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2UoZik6aS5pZGVudGl0eSk7ZCYmKGE9Yyh1KSk7bSYmKG89ZnVuY3Rpb24odCl7cmV0dXJuIGcobih0KT8raS5jb25zdHJhaW4odCwwLDEpOjApfSk7dmFyIHYseD1bXTtmb3IoZT0wO2U8dC5sZW5ndGg7ZSsrKXt2YXIgYj10W2VdLF89Yi5sb25sYXQ7aWYoIXkoXykpe3ZhciB3PXt9O3ImJih3Lm1jYz1iLm1jYz1yKGIubWMpKSxhJiYody5tcmM9Yi5tcmM9YShiLm1zKSksbyYmKHcubW89byhiLm1vKSksaCYmKHcuc2VsZWN0ZWQ9Yi5zZWxlY3RlZHx8MCkseC5wdXNoKHt0eXBlOiJGZWF0dXJlIixnZW9tZXRyeTp7dHlwZToiUG9pbnQiLGNvb3JkaW5hdGVzOl99LHByb3BlcnRpZXM6d30pfX1pZihoKWZvcih2PWwubWFrZVNlbGVjdGVkUG9pbnRTdHlsZUZucyh1KSxlPTA7ZTx4Lmxlbmd0aDtlKyspe3ZhciBUPXhbZV0ucHJvcGVydGllczt2LnNlbGVjdGVkT3BhY2l0eUZuJiYoVC5tbz1nKHYuc2VsZWN0ZWRPcGFjaXR5Rm4oVCkpKSx2LnNlbGVjdGVkQ29sb3JGbiYmKFQubWNjPXYuc2VsZWN0ZWRDb2xvckZuKFQpKSx2LnNlbGVjdGVkU2l6ZUZuJiYoVC5tcmM9di5zZWxlY3RlZFNpemVGbihUKSl9cmV0dXJue2dlb2pzb246e3R5cGU6IkZlYXR1cmVDb2xsZWN0aW9uIixmZWF0dXJlczp4fSxtY2M6cHx8diYmdi5zZWxlY3RlZENvbG9yRm4/e3R5cGU6ImlkZW50aXR5Iixwcm9wZXJ0eToibWNjIn06Zi5jb2xvcixtcmM6ZHx8diYmdi5zZWxlY3RlZFNpemVGbj97dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJtcmMifTooaz1mLnNpemUsay8yKSxtbzptfHx2JiZ2LnNlbGVjdGVkT3BhY2l0eUZuP3t0eXBlOiJpZGVudGl0eSIscHJvcGVydHk6Im1vIn06ZyhmLm9wYWNpdHkpfTt2YXIga30oZSk7RS5nZW9qc29uPVAuZ2VvanNvbixFLmxheW91dC52aXNpYmlsaXR5PSJ2aXNpYmxlIixpLmV4dGVuZEZsYXQoRS5wYWludCx7ImNpcmNsZS1jb2xvciI6UC5tY2MsImNpcmNsZS1yYWRpdXMiOlAubXJjLCJjaXJjbGUtb3BhY2l0eSI6UC5tb30pfWlmKChBfHxUKSYmKEwuZ2VvanNvbj1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj1lLl9mdWxsTGF5b3V0LG49dFswXS50cmFjZSxhPW4ubWFya2VyfHx7fSxvPWEuc3ltYm9sLHM9YS5hbmdsZSxsPSJjaXJjbGUiIT09bz9nKG8pOnYsYz0iYXV0byIhPT1zP2cocywhMCk6dixmPXUuaGFzVGV4dChuKT9nKG4udGV4dCk6dixtPVtdLHg9MDt4PHQubGVuZ3RoO3grKyl7dmFyIGI9dFt4XTtpZigheShiLmxvbmxhdCkpe3ZhciBfLHc9bi50ZXh0dGVtcGxhdGU7aWYodyl7dmFyIFQ9QXJyYXkuaXNBcnJheSh3KT93W3hdfHwiIjp3LGs9bi5fbW9kdWxlLmZvcm1hdExhYmVscyhiLG4sciksQT17fTtoKEEsbixiLmkpO3ZhciBNPW4uX21ldGF8fHt9O189aS50ZXh0dGVtcGxhdGVTdHJpbmcoVCxrLHIuX2QzbG9jYWxlLEEsYixNKX1lbHNlIF89Zih4KTtfJiYoXz1fLnJlcGxhY2UocCwiIikucmVwbGFjZShkLCJcbiIpKSxtLnB1c2goe3R5cGU6IkZlYXR1cmUiLGdlb21ldHJ5Ont0eXBlOiJQb2ludCIsY29vcmRpbmF0ZXM6Yi5sb25sYXR9LHByb3BlcnRpZXM6e3N5bWJvbDpsKHgpLGFuZ2xlOmMoeCksdGV4dDpffX0pfX1yZXR1cm57dHlwZToiRmVhdHVyZUNvbGxlY3Rpb24iLGZlYXR1cmVzOm19fShlLHQpLGkuZXh0ZW5kRmxhdChMLmxheW91dCx7dmlzaWJpbGl0eToidmlzaWJsZSIsImljb24taW1hZ2UiOiJ7c3ltYm9sfS0xNSIsInRleHQtZmllbGQiOiJ7dGV4dH0ifSksQSYmKGkuZXh0ZW5kRmxhdChMLmxheW91dCx7Imljb24tc2l6ZSI6YS5tYXJrZXIuc2l6ZS8xMH0pLCJhbmdsZSJpbiBhLm1hcmtlciYmImF1dG8iIT09YS5tYXJrZXIuYW5nbGUmJmkuZXh0ZW5kRmxhdChMLmxheW91dCx7Imljb24tcm90YXRlIjp7dHlwZToiaWRlbnRpdHkiLHByb3BlcnR5OiJhbmdsZSJ9LCJpY29uLXJvdGF0aW9uLWFsaWdubWVudCI6Im1hcCJ9KSxMLmxheW91dFsiaWNvbi1hbGxvdy1vdmVybGFwIl09YS5tYXJrZXIuYWxsb3dvdmVybGFwLGkuZXh0ZW5kRmxhdChMLnBhaW50LHsiaWNvbi1vcGFjaXR5IjphLm9wYWNpdHkqYS5tYXJrZXIub3BhY2l0eSwiaWNvbi1jb2xvciI6YS5tYXJrZXIuY29sb3J9KSksVCkpe3ZhciBJPShhLm1hcmtlcnx8e30pLnNpemUsTz1mKGEudGV4dHBvc2l0aW9uLEkpO2kuZXh0ZW5kRmxhdChMLmxheW91dCx7InRleHQtc2l6ZSI6YS50ZXh0Zm9udC5zaXplLCJ0ZXh0LWFuY2hvciI6Ty5hbmNob3IsInRleHQtb2Zmc2V0IjpPLm9mZnNldH0pLGkuZXh0ZW5kRmxhdChMLnBhaW50LHsidGV4dC1jb2xvciI6YS50ZXh0Zm9udC5jb2xvciwidGV4dC1vcGFjaXR5IjphLm9wYWNpdHl9KX1yZXR1cm4gQ319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2NTEsIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb21wb25lbnRzL2Z4L2hlbHBlcnMiOjY3NSwiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL2dlb2pzb25fdXRpbHMiOjc3MCwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uLy4uL3Bsb3RzL21hcGJveC9jb252ZXJ0X3RleHRfb3B0cyI6ODgzLCIuLi9zY2F0dGVyL21ha2VfYnViYmxlX3NpemVfZnVuYyI6MTIwOCwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTIxNiwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDEyNTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9zY2F0dGVyL3N1YnR5cGVzIiksYT10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLG89dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIikscz10KCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiKSxsPXQoIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIiksYz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsdSl7ZnVuY3Rpb24gZihyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsYyxyLGkpfWlmKGZ1bmN0aW9uKHQsZSxyKXt2YXIgbj1yKCJsb24iKXx8W10saT1yKCJsYXQiKXx8W10sYT1NYXRoLm1pbihuLmxlbmd0aCxpLmxlbmd0aCk7cmV0dXJuIGUuX2xlbmd0aD1hLGF9KDAsZSxmKSl7aWYoZigidGV4dCIpLGYoInRleHR0ZW1wbGF0ZSIpLGYoImhvdmVydGV4dCIpLGYoImhvdmVydGVtcGxhdGUiKSxmKCJtb2RlIiksZigiYmVsb3ciKSxpLmhhc0xpbmVzKGUpJiYobyh0LGUscix1LGYse25vRGFzaDohMH0pLGYoImNvbm5lY3RnYXBzIikpLGkuaGFzTWFya2VycyhlKSl7YSh0LGUscix1LGYse25vTGluZTohMH0pLGYoIm1hcmtlci5hbGxvd292ZXJsYXAiKSxmKCJtYXJrZXIuYW5nbGUiKTt2YXIgaD1lLm1hcmtlcjsiY2lyY2xlIiE9PWguc3ltYm9sJiYobi5pc0FycmF5T3JUeXBlZEFycmF5KGguc2l6ZSkmJihoLnNpemU9aC5zaXplWzBdKSxuLmlzQXJyYXlPclR5cGVkQXJyYXkoaC5jb2xvcikmJihoLmNvbG9yPWguY29sb3JbMF0pKX1pLmhhc1RleHQoZSkmJnModCxlLHUsZix7bm9TZWxlY3Q6ITB9KSxmKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiZsKHQsZSxyLGYpLG4uY29lcmNlU2VsZWN0aW9uTWFya2VyT3BhY2l0eShlLGYpfWVsc2UgZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vc2NhdHRlci9maWxsY29sb3JfZGVmYXVsdHMiOjExOTksIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyI6MTIwNCwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjEyMTAsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTIxNywiLi9hdHRyaWJ1dGVzIjoxMjU2fV0sMTI1OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdC5sb249ZS5sb24sdC5sYXQ9ZS5sYXQsdH19LHt9XSwxMjYwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgaT17fSxhPXJbZS5zdWJwbG90XS5fc3VicGxvdC5tb2NrQXhpcyxvPXQubG9ubGF0O3JldHVybiBpLmxvbkxhYmVsPW4udGlja1RleHQoYSxhLmMybChvWzBdKSwhMCkudGV4dCxpLmxhdExhYmVsPW4udGlja1RleHQoYSxhLmMybChvWzFdKSwhMCkudGV4dCxpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3fV0sMTI2MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2Z4IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIiksbz1pLmZpbGxUZXh0LHM9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtmdW5jdGlvbiBsKHQsZSxyKXtpZighdC5ob3ZlcnRlbXBsYXRlKXt2YXIgbj0oZS5oaXx8dC5ob3ZlcmluZm8pLnNwbGl0KCIrIiksaT0tMSE9PW4uaW5kZXhPZigiYWxsIiksYT0tMSE9PW4uaW5kZXhPZigibG9uIikscz0tMSE9PW4uaW5kZXhPZigibGF0IiksbD1lLmxvbmxhdCxjPVtdO3JldHVybiBpfHxhJiZzP2MucHVzaCgiKCIrdShsWzFdKSsiLCAiK3UobFswXSkrIikiKTphP2MucHVzaChyLmxvbit1KGxbMF0pKTpzJiZjLnB1c2goci5sYXQrdShsWzFdKSksKGl8fC0xIT09bi5pbmRleE9mKCJ0ZXh0IikpJiZvKGUsdCxjKSxjLmpvaW4oIjxicj4iKX1mdW5jdGlvbiB1KHQpe3JldHVybiB0KyJceGIwIn19ZS5leHBvcnRzPXtob3ZlclBvaW50czpmdW5jdGlvbih0LGUscil7dmFyIG89dC5jZCxjPW9bMF0udHJhY2UsdT10LnhhLGY9dC55YSxoPXQuc3VicGxvdCxwPTM2MCooZT49MD9NYXRoLmZsb29yKChlKzE4MCkvMzYwKTpNYXRoLmNlaWwoKGUtMTgwKS8zNjApKSxkPWUtcDtpZihuLmdldENsb3Nlc3QobywoZnVuY3Rpb24odCl7dmFyIGU9dC5sb25sYXQ7aWYoZVswXT09PXMpcmV0dXJuIDEvMDt2YXIgbj1pLm1vZEhhbGYoZVswXSwzNjApLGE9ZVsxXSxvPWgucHJvamVjdChbbixhXSksbD1vLngtdS5jMnAoW2QsYV0pLGM9by55LWYuYzJwKFtuLHJdKSxwPU1hdGgubWF4KDMsdC5tcmN8fDApO3JldHVybiBNYXRoLm1heChNYXRoLnNxcnQobCpsK2MqYyktcCwxLTMvcCl9KSx0KSwhMSE9PXQuaW5kZXgpe3ZhciBtPW9bdC5pbmRleF0sZz1tLmxvbmxhdCx2PVtpLm1vZEhhbGYoZ1swXSwzNjApK3AsZ1sxXV0seT11LmMycCh2KSx4PWYuYzJwKHYpLGI9bS5tcmN8fDE7dC54MD15LWIsdC54MT15K2IsdC55MD14LWIsdC55MT14K2I7dmFyIF89e307X1tjLnN1YnBsb3RdPXtfc3VicGxvdDpofTt2YXIgdz1jLl9tb2R1bGUuZm9ybWF0TGFiZWxzKG0sYyxfKTtyZXR1cm4gdC5sb25MYWJlbD13LmxvbkxhYmVsLHQubGF0TGFiZWw9dy5sYXRMYWJlbCx0LmNvbG9yPWEoYyxtKSx0LmV4dHJhVGV4dD1sKGMsbSxvWzBdLnQubGFiZWxzKSx0LmhvdmVydGVtcGxhdGU9Yy5ob3ZlcnRlbXBsYXRlLFt0XX19LGdldEV4dHJhVGV4dDpsfX0seyIuLi8uLi9jb21wb25lbnRzL2Z4Ijo2NzksIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsIi4uL3NjYXR0ZXIvZ2V0X3RyYWNlX2NvbG9yIjoxMjAxfV0sMTI2MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi4vc2NhdHRlcmdlby9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxob3ZlclBvaW50czp0KCIuL2hvdmVyIikuaG92ZXJQb2ludHMsZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLHN0eWxlT25TZWxlY3Q6ZnVuY3Rpb24odCxlKXtlJiZlWzBdLnRyYWNlLl9nbFRyYWNlLnVwZGF0ZShlKX0sbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNjYXR0ZXJtYXBib3giLGJhc2VQbG90TW9kdWxlOnQoIi4uLy4uL3Bsb3RzL21hcGJveCIpLGNhdGVnb3JpZXM6WyJtYXBib3giLCJnbCIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sbWV0YTp7fX19LHsiLi4vLi4vcGxvdHMvbWFwYm94Ijo4ODQsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMjA5LCIuLi9zY2F0dGVyZ2VvL2NhbGMiOjEyMzQsIi4vYXR0cmlidXRlcyI6MTI1NiwiLi9kZWZhdWx0cyI6MTI1OCwiLi9ldmVudF9kYXRhIjoxMjU5LCIuL2Zvcm1hdF9sYWJlbHMiOjEyNjAsIi4vaG92ZXIiOjEyNjEsIi4vcGxvdCI6MTI2MywiLi9zZWxlY3QiOjEyNjR9XSwxMjYzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29udmVydCIpLGk9dCgiLi4vLi4vcGxvdHMvbWFwYm94L2NvbnN0YW50cyIpLnRyYWNlTGF5ZXJQcmVmaXgsYT1bImZpbGwiLCJsaW5lIiwiY2lyY2xlIiwic3ltYm9sIl07ZnVuY3Rpb24gbyh0LGUpe3RoaXMudHlwZT0ic2NhdHRlcm1hcGJveCIsdGhpcy5zdWJwbG90PXQsdGhpcy51aWQ9ZSx0aGlzLnNvdXJjZUlkcz17ZmlsbDoic291cmNlLSIrZSsiLWZpbGwiLGxpbmU6InNvdXJjZS0iK2UrIi1saW5lIixjaXJjbGU6InNvdXJjZS0iK2UrIi1jaXJjbGUiLHN5bWJvbDoic291cmNlLSIrZSsiLXN5bWJvbCJ9LHRoaXMubGF5ZXJJZHM9e2ZpbGw6aStlKyItZmlsbCIsbGluZTppK2UrIi1saW5lIixjaXJjbGU6aStlKyItY2lyY2xlIixzeW1ib2w6aStlKyItc3ltYm9sIn0sdGhpcy5iZWxvdz1udWxsfXZhciBzPW8ucHJvdG90eXBlO3MuYWRkU291cmNlPWZ1bmN0aW9uKHQsZSl7dGhpcy5zdWJwbG90Lm1hcC5hZGRTb3VyY2UodGhpcy5zb3VyY2VJZHNbdF0se3R5cGU6Imdlb2pzb24iLGRhdGE6ZS5nZW9qc29ufSl9LHMuc2V0U291cmNlRGF0YT1mdW5jdGlvbih0LGUpe3RoaXMuc3VicGxvdC5tYXAuZ2V0U291cmNlKHRoaXMuc291cmNlSWRzW3RdKS5zZXREYXRhKGUuZ2VvanNvbil9LHMuYWRkTGF5ZXI9ZnVuY3Rpb24odCxlLHIpe3RoaXMuc3VicGxvdC5hZGRMYXllcih7dHlwZTp0LGlkOnRoaXMubGF5ZXJJZHNbdF0sc291cmNlOnRoaXMuc291cmNlSWRzW3RdLGxheW91dDplLmxheW91dCxwYWludDplLnBhaW50fSxyKX0scy51cGRhdGU9ZnVuY3Rpb24odCl7dmFyIGUscixpLG89dGhpcy5zdWJwbG90LHM9by5tYXAsbD1uKG8uZ2QsdCksYz1vLmJlbG93TG9va3VwWyJ0cmFjZS0iK3RoaXMudWlkXTtpZihjIT09dGhpcy5iZWxvdyl7Zm9yKGU9YS5sZW5ndGgtMTtlPj0wO2UtLSlyPWFbZV0scy5yZW1vdmVMYXllcih0aGlzLmxheWVySWRzW3JdKTtmb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKWk9bFtyPWFbZV1dLHRoaXMuYWRkTGF5ZXIocixpLGMpO3RoaXMuYmVsb3c9Y31mb3IoZT0wO2U8YS5sZW5ndGg7ZSsrKWk9bFtyPWFbZV1dLG8uc2V0T3B0aW9ucyh0aGlzLmxheWVySWRzW3JdLCJzZXRMYXlvdXRQcm9wZXJ0eSIsaS5sYXlvdXQpLCJ2aXNpYmxlIj09PWkubGF5b3V0LnZpc2liaWxpdHkmJih0aGlzLnNldFNvdXJjZURhdGEocixpKSxvLnNldE9wdGlvbnModGhpcy5sYXllcklkc1tyXSwic2V0UGFpbnRQcm9wZXJ0eSIsaS5wYWludCkpO3RbMF0udHJhY2UuX2dsVHJhY2U9dGhpc30scy5kaXNwb3NlPWZ1bmN0aW9uKCl7Zm9yKHZhciB0PXRoaXMuc3VicGxvdC5tYXAsZT1hLmxlbmd0aC0xO2U+PTA7ZS0tKXt2YXIgcj1hW2VdO3QucmVtb3ZlTGF5ZXIodGhpcy5sYXllcklkc1tyXSksdC5yZW1vdmVTb3VyY2UodGhpcy5zb3VyY2VJZHNbcl0pfX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWVbMF0udHJhY2UsaT1uZXcgbyh0LHIudWlkKSxzPW4odC5nZCxlKSxsPWkuYmVsb3c9dC5iZWxvd0xvb2t1cFsidHJhY2UtIityLnVpZF0sYz0wO2M8YS5sZW5ndGg7YysrKXt2YXIgdT1hW2NdLGY9c1t1XTtpLmFkZFNvdXJjZSh1LGYpLGkuYWRkTGF5ZXIodSxmLGwpfXJldHVybiBlWzBdLnRyYWNlLl9nbFRyYWNlPWksaX19LHsiLi4vLi4vcGxvdHMvbWFwYm94L2NvbnN0YW50cyI6ODgyLCIuL2NvbnZlcnQiOjEyNTd9XSwxMjY0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGE9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixvPXQuY2Qscz10LnhheGlzLGw9dC55YXhpcyxjPVtdLHU9b1swXS50cmFjZTtpZighaS5oYXNNYXJrZXJzKHUpKXJldHVybltdO2lmKCExPT09ZSlmb3Iocj0wO3I8by5sZW5ndGg7cisrKW9bcl0uc2VsZWN0ZWQ9MDtlbHNlIGZvcihyPTA7cjxvLmxlbmd0aDtyKyspe3ZhciBmPW9bcl0saD1mLmxvbmxhdDtpZihoWzBdIT09YSl7dmFyIHA9W24ubW9kSGFsZihoWzBdLDM2MCksaFsxXV0sZD1bcy5jMnAocCksbC5jMnAocCldO2UuY29udGFpbnMoZCxudWxsLHIsdCk/KGMucHVzaCh7cG9pbnROdW1iZXI6cixsb246aFswXSxsYXQ6aFsxXX0pLGYuc2VsZWN0ZWQ9MSk6Zi5zZWxlY3RlZD0wfX1yZXR1cm4gY319LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTIxNn1dLDEyNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxpPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxhPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LG89dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbD1vLmxpbmU7ZS5leHBvcnRzPXttb2RlOm8ubW9kZSxyOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHRoZXRhOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHIwOnt2YWxUeXBlOiJhbnkiLGRmbHQ6MCxlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGRyOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MSxlZGl0VHlwZToiY2FsYyJ9LHRoZXRhMDp7dmFsVHlwZToiYW55IixkZmx0OjAsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSxkdGhldGE6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMifSx0aGV0YXVuaXQ6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJhZGlhbnMiLCJkZWdyZWVzIiwiZ3JhZGlhbnMiXSxkZmx0OiJkZWdyZWVzIixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHRleHQ6by50ZXh0LHRleHR0ZW1wbGF0ZTppKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOlsiciIsInRoZXRhIiwidGV4dCJdfSksaG92ZXJ0ZXh0Om8uaG92ZXJ0ZXh0LGxpbmU6e2NvbG9yOmwuY29sb3Isd2lkdGg6bC53aWR0aCxkYXNoOmwuZGFzaCxzaGFwZTphKHt9LGwuc2hhcGUse3ZhbHVlczpbImxpbmVhciIsInNwbGluZSJdfSksc21vb3RoaW5nOmwuc21vb3RoaW5nLGVkaXRUeXBlOiJjYWxjIn0sY29ubmVjdGdhcHM6by5jb25uZWN0Z2FwcyxtYXJrZXI6by5tYXJrZXIsY2xpcG9uYXhpczphKHt9LG8uY2xpcG9uYXhpcyx7ZGZsdDohMX0pLHRleHRwb3NpdGlvbjpvLnRleHRwb3NpdGlvbix0ZXh0Zm9udDpvLnRleHRmb250LGZpbGw6YSh7fSxvLmZpbGwse3ZhbHVlczpbIm5vbmUiLCJ0b3NlbGYiLCJ0b25leHQiXSxkZmx0OiJub25lIn0pLGZpbGxjb2xvcjpvLmZpbGxjb2xvcixob3ZlcmluZm86YSh7fSxzLmhvdmVyaW5mbyx7ZmxhZ3M6WyJyIiwidGhldGEiLCJ0ZXh0IiwibmFtZSJdfSksaG92ZXJvbjpvLmhvdmVyb24saG92ZXJ0ZW1wbGF0ZTpuKCksc2VsZWN0ZWQ6by5zZWxlY3RlZCx1bnNlbGVjdGVkOm8udW5zZWxlY3RlZH19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTkxfV0sMTI2NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJmYXN0LWlzbnVtZXJpYyIpLGk9dCgiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTSxhPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksbz10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLHM9dCgiLi4vc2NhdHRlci9hcnJheXNfdG9fY2FsY2RhdGEiKSxsPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKSxjPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNNYXJrZXJTaXplO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj10Ll9mdWxsTGF5b3V0LHU9ZS5zdWJwbG90LGY9clt1XS5yYWRpYWxheGlzLGg9clt1XS5hbmd1bGFyYXhpcyxwPWYubWFrZUNhbGNkYXRhKGUsInIiKSxkPWgubWFrZUNhbGNkYXRhKGUsInRoZXRhIiksbT1lLl9sZW5ndGgsZz1uZXcgQXJyYXkobSksdj0wO3Y8bTt2Kyspe3ZhciB5PXBbdl0seD1kW3ZdLGI9Z1t2XT17fTtuKHkpJiZuKHgpPyhiLnI9eSxiLnRoZXRhPXgpOmIucj1pfXZhciBfPWMoZSxtKTtyZXR1cm4gZS5fZXh0cmVtZXMueD1hLmZpbmRFeHRyZW1lcyhmLHAse3BwYWQ6X30pLG8odCxlKSxzKGcsZSksbChnLGUpLGd9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vc2NhdHRlci9hcnJheXNfdG9fY2FsY2RhdGEiOjExOTAsIi4uL3NjYXR0ZXIvY2FsYyI6MTE5MiwiLi4vc2NhdHRlci9jYWxjX3NlbGVjdGlvbiI6MTE5MywiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjExOTQsImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMjY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGE9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxvPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9saW5lX3NoYXBlX2RlZmF1bHRzIiksbD10KCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiKSxjPXQoIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIiksdT10KCIuLi9zY2F0dGVyL2NvbnN0YW50cyIpLlBUU19MSU5FU09OTFksZj10KCIuL2F0dHJpYnV0ZXMiKTtmdW5jdGlvbiBoKHQsZSxyLG4pe3ZhciBpLGE9bigiciIpLG89bigidGhldGEiKTtpZihhKW8/aT1NYXRoLm1pbihhLmxlbmd0aCxvLmxlbmd0aCk6KGk9YS5sZW5ndGgsbigidGhldGEwIiksbigiZHRoZXRhIikpO2Vsc2V7aWYoIW8pcmV0dXJuIDA7aT1lLnRoZXRhLmxlbmd0aCxuKCJyMCIpLG4oImRyIil9cmV0dXJuIGUuX2xlbmd0aD1pLGl9ZS5leHBvcnRzPXtoYW5kbGVSVGhldGFEZWZhdWx0czpoLHN1cHBseURlZmF1bHRzOmZ1bmN0aW9uKHQsZSxyLHApe2Z1bmN0aW9uIGQocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGYscixpKX12YXIgbT1oKHQsZSxwLGQpO2lmKG0pe2QoInRoZXRhdW5pdCIpLGQoIm1vZGUiLG08dT8ibGluZXMrbWFya2VycyI6ImxpbmVzIiksZCgidGV4dCIpLGQoImhvdmVydGV4dCIpLCJmaWxscyIhPT1lLmhvdmVyb24mJmQoImhvdmVydGVtcGxhdGUiKSxpLmhhc0xpbmVzKGUpJiYobyh0LGUscixwLGQpLHModCxlLGQpLGQoImNvbm5lY3RnYXBzIikpLGkuaGFzTWFya2VycyhlKSYmYSh0LGUscixwLGQse2dyYWRpZW50OiEwfSksaS5oYXNUZXh0KGUpJiYoZCgidGV4dHRlbXBsYXRlIiksbCh0LGUscCxkKSk7dmFyIGc9W107KGkuaGFzTWFya2VycyhlKXx8aS5oYXNUZXh0KGUpKSYmKGQoImNsaXBvbmF4aXMiKSxkKCJtYXJrZXIubWF4ZGlzcGxheWVkIiksZy5wdXNoKCJwb2ludHMiKSksZCgiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmKGModCxlLHIsZCksaS5oYXNMaW5lcyhlKXx8cyh0LGUsZCkpLCJ0b25leHQiIT09ZS5maWxsJiYidG9zZWxmIiE9PWUuZmlsbHx8Zy5wdXNoKCJmaWxscyIpLGQoImhvdmVyb24iLGcuam9pbigiKyIpfHwicG9pbnRzIiksbi5jb2VyY2VTZWxlY3Rpb25NYXJrZXJPcGFjaXR5KGUsZCl9ZWxzZSBlLnZpc2libGU9ITF9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vc2NhdHRlci9jb25zdGFudHMiOjExOTUsIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIjoxMTk5LCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiOjEyMDQsIi4uL3NjYXR0ZXIvbGluZV9zaGFwZV9kZWZhdWx0cyI6MTIwNiwiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiOjEyMTAsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4uL3NjYXR0ZXIvdGV4dF9kZWZhdWx0cyI6MTIxNywiLi9hdHRyaWJ1dGVzIjoxMjY1fV0sMTI2ODpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXt2YXIgYSxvLHM9e30sbD1yW2Uuc3VicGxvdF0uX3N1YnBsb3Q7bD8oYT1sLnJhZGlhbEF4aXMsbz1sLmFuZ3VsYXJBeGlzKTooYT0obD1yW2Uuc3VicGxvdF0pLnJhZGlhbGF4aXMsbz1sLmFuZ3VsYXJheGlzKTt2YXIgYz1hLmMybCh0LnIpO3MuckxhYmVsPWkudGlja1RleHQoYSxjLCEwKS50ZXh0O3ZhciB1PSJkZWdyZWVzIj09PW8udGhldGF1bml0P24ucmFkMmRlZyh0LnRoZXRhKTp0LnRoZXRhO3JldHVybiBzLnRoZXRhTGFiZWw9aS50aWNrVGV4dChvLHUsITApLnRleHQsc319LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4Mjd9XSwxMjY5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvaG92ZXIiKTtmdW5jdGlvbiBpKHQsZSxyLG4pe3ZhciBpPXIucmFkaWFsQXhpcyxhPXIuYW5ndWxhckF4aXM7aS5faG92ZXJ0aXRsZT0iciIsYS5faG92ZXJ0aXRsZT0iXHUwM2I4Ijt2YXIgbz17fTtvW2Uuc3VicGxvdF09e19zdWJwbG90OnJ9O3ZhciBzPWUuX21vZHVsZS5mb3JtYXRMYWJlbHModCxlLG8pO24uckxhYmVsPXMuckxhYmVsLG4udGhldGFMYWJlbD1zLnRoZXRhTGFiZWw7dmFyIGw9dC5oaXx8ZS5ob3ZlcmluZm8sYz1bXTtmdW5jdGlvbiB1KHQsZSl7Yy5wdXNoKHQuX2hvdmVydGl0bGUrIjogIitlKX1pZighZS5ob3ZlcnRlbXBsYXRlKXt2YXIgZj1sLnNwbGl0KCIrIik7LTEhPT1mLmluZGV4T2YoImFsbCIpJiYoZj1bInIiLCJ0aGV0YSIsInRleHQiXSksLTEhPT1mLmluZGV4T2YoInIiKSYmdShpLG4uckxhYmVsKSwtMSE9PWYuaW5kZXhPZigidGhldGEiKSYmdShhLG4udGhldGFMYWJlbCksLTEhPT1mLmluZGV4T2YoInRleHQiKSYmbi50ZXh0JiYoYy5wdXNoKG4udGV4dCksZGVsZXRlIG4udGV4dCksbi5leHRyYVRleHQ9Yy5qb2luKCI8YnI+Iil9fWUuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89bih0LGUscixhKTtpZihvJiYhMSE9PW9bMF0uaW5kZXgpe3ZhciBzPW9bMF07aWYodm9pZCAwPT09cy5pbmRleClyZXR1cm4gbzt2YXIgbD10LnN1YnBsb3QsYz1zLmNkW3MuaW5kZXhdLHU9cy50cmFjZTtpZihsLmlzUHRJbnNpZGUoYykpcmV0dXJuIHMueExhYmVsVmFsPXZvaWQgMCxzLnlMYWJlbFZhbD12b2lkIDAsaShjLHUsbCxzKSxzLmhvdmVydGVtcGxhdGU9dS5ob3ZlcnRlbXBsYXRlLG99fSxtYWtlSG92ZXJQb2ludFRleHQ6aX19LHsiLi4vc2NhdHRlci9ob3ZlciI6MTIwMn1dLDEyNzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic2NhdHRlcnBvbGFyIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9wb2xhciIpLGNhdGVnb3JpZXM6WyJwb2xhciIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi9mb3JtYXRfbGFiZWxzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLHN0eWxlOnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZSxzdHlsZU9uU2VsZWN0OnQoIi4uL3NjYXR0ZXIvc3R5bGUiKS5zdHlsZU9uU2VsZWN0LGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKS5ob3ZlclBvaW50cyxzZWxlY3RQb2ludHM6dCgiLi4vc2NhdHRlci9zZWxlY3QiKSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9wb2xhciI6ODkzLCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6MTIwOSwiLi4vc2NhdHRlci9zZWxlY3QiOjEyMTMsIi4uL3NjYXR0ZXIvc3R5bGUiOjEyMTUsIi4vYXR0cmlidXRlcyI6MTI2NSwiLi9jYWxjIjoxMjY2LCIuL2RlZmF1bHRzIjoxMjY3LCIuL2Zvcm1hdF9sYWJlbHMiOjEyNjgsIi4vaG92ZXIiOjEyNjksIi4vcGxvdCI6MTI3MX1dLDEyNzE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9wbG90IiksaT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7Zm9yKHZhciBhPWUubGF5ZXJzLmZyb250cGxvdC5zZWxlY3QoImcuc2NhdHRlcmxheWVyIiksbz17eGF4aXM6ZS54YXhpcyx5YXhpczplLnlheGlzLHBsb3Q6ZS5mcmFtZXdvcmssbGF5ZXJDbGlwSWQ6ZS5faGFzQ2xpcE9uQXhpc0ZhbHNlP2UuY2xpcElkcy5mb3JUcmFjZXM6bnVsbH0scz1lLnJhZGlhbEF4aXMsbD1lLmFuZ3VsYXJBeGlzLGM9MDtjPHIubGVuZ3RoO2MrKylmb3IodmFyIHU9cltjXSxmPTA7Zjx1Lmxlbmd0aDtmKyspe3ZhciBoPXVbZl0scD1oLnI7aWYocD09PWkpaC54PWgueT1pO2Vsc2V7dmFyIGQ9cy5jMmcocCksbT1sLmMyZyhoLnRoZXRhKTtoLng9ZCpNYXRoLmNvcyhtKSxoLnk9ZCpNYXRoLnNpbihtKX19bih0LG8scixhKX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi9zY2F0dGVyL3Bsb3QiOjEyMTJ9XSwxMjcyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXJwb2xhci9hdHRyaWJ1dGVzIiksaT10KCIuLi9zY2F0dGVyZ2wvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLnRleHR0ZW1wbGF0ZUF0dHJzO2UuZXhwb3J0cz17bW9kZTpuLm1vZGUscjpuLnIsdGhldGE6bi50aGV0YSxyMDpuLnIwLGRyOm4uZHIsdGhldGEwOm4udGhldGEwLGR0aGV0YTpuLmR0aGV0YSx0aGV0YXVuaXQ6bi50aGV0YXVuaXQsdGV4dDpuLnRleHQsdGV4dHRlbXBsYXRlOmEoe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJyIiwidGhldGEiLCJ0ZXh0Il19KSxob3ZlcnRleHQ6bi5ob3ZlcnRleHQsaG92ZXJ0ZW1wbGF0ZTpuLmhvdmVydGVtcGxhdGUsbGluZTppLmxpbmUsY29ubmVjdGdhcHM6aS5jb25uZWN0Z2FwcyxtYXJrZXI6aS5tYXJrZXIsZmlsbDppLmZpbGwsZmlsbGNvbG9yOmkuZmlsbGNvbG9yLHRleHRwb3NpdGlvbjppLnRleHRwb3NpdGlvbix0ZXh0Zm9udDppLnRleHRmb250LGhvdmVyaW5mbzpuLmhvdmVyaW5mbyxzZWxlY3RlZDpuLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6bi51bnNlbGVjdGVkfX0seyIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL3NjYXR0ZXJnbC9hdHRyaWJ1dGVzIjoxMjQzLCIuLi9zY2F0dGVycG9sYXIvYXR0cmlidXRlcyI6MTI2NX1dLDEyNzM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiKSxpPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNNYXJrZXJTaXplLGE9dCgiLi4vc2NhdHRlcmdsL2NvbnZlcnQiKSxvPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIikscz10KCIuLi9zY2F0dGVyZ2wvY29uc3RhbnRzIikuVE9PX01BTllfUE9JTlRTO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuX2Z1bGxMYXlvdXQsbD1lLnN1YnBsb3QsYz1yW2xdLnJhZGlhbGF4aXMsdT1yW2xdLmFuZ3VsYXJheGlzLGY9ZS5fcj1jLm1ha2VDYWxjZGF0YShlLCJyIiksaD1lLl90aGV0YT11Lm1ha2VDYWxjZGF0YShlLCJ0aGV0YSIpLHA9ZS5fbGVuZ3RoLGQ9e307cDxmLmxlbmd0aCYmKGY9Zi5zbGljZSgwLHApKSxwPGgubGVuZ3RoJiYoaD1oLnNsaWNlKDAscCkpLGQucj1mLGQudGhldGE9aCxuKHQsZSk7dmFyIG0sZz1kLm9wdHM9YS5zdHlsZSh0LGUpO3JldHVybiBwPHM/bT1pKGUscCk6Zy5tYXJrZXImJihtPTIqKGcubWFya2VyLnNpemVBdmd8fE1hdGgubWF4KGcubWFya2VyLnNpemUsMykpKSxlLl9leHRyZW1lcy54PW8uZmluZEV4dHJlbWVzKGMsZix7cHBhZDptfSksW3t4OiExLHk6ITEsdDpkLHRyYWNlOmV9XX19LHsiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vc2NhdHRlci9jYWxjIjoxMTkyLCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6MTE5NCwiLi4vc2NhdHRlcmdsL2NvbnN0YW50cyI6MTI0NSwiLi4vc2NhdHRlcmdsL2NvbnZlcnQiOjEyNDZ9XSwxMjc0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLGE9dCgiLi4vc2NhdHRlcnBvbGFyL2RlZmF1bHRzIikuaGFuZGxlUlRoZXRhRGVmYXVsdHMsbz10KCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyIpLHM9dCgiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIiksbD10KCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiKSxjPXQoIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIiksdT10KCIuLi9zY2F0dGVyL2NvbnN0YW50cyIpLlBUU19MSU5FU09OTFksZj10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaCl7ZnVuY3Rpb24gcChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsZixyLGkpfXZhciBkPWEodCxlLGgscCk7ZD8ocCgidGhldGF1bml0IikscCgibW9kZSIsZDx1PyJsaW5lcyttYXJrZXJzIjoibGluZXMiKSxwKCJ0ZXh0IikscCgiaG92ZXJ0ZXh0IiksImZpbGxzIiE9PWUuaG92ZXJvbiYmcCgiaG92ZXJ0ZW1wbGF0ZSIpLGkuaGFzTGluZXMoZSkmJihzKHQsZSxyLGgscCkscCgiY29ubmVjdGdhcHMiKSksaS5oYXNNYXJrZXJzKGUpJiZvKHQsZSxyLGgscCksaS5oYXNUZXh0KGUpJiYocCgidGV4dHRlbXBsYXRlIiksbCh0LGUsaCxwKSkscCgiZmlsbCIpLCJub25lIiE9PWUuZmlsbCYmYyh0LGUscixwKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxwKSk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9saWIiOjc3NiwiLi4vc2NhdHRlci9jb25zdGFudHMiOjExOTUsIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIjoxMTk5LCIuLi9zY2F0dGVyL2xpbmVfZGVmYXVsdHMiOjEyMDQsIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjoxMjEwLCIuLi9zY2F0dGVyL3N1YnR5cGVzIjoxMjE2LCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiOjEyMTcsIi4uL3NjYXR0ZXJwb2xhci9kZWZhdWx0cyI6MTI2NywiLi9hdHRyaWJ1dGVzIjoxMjcyfV0sMTI3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVycG9sYXIvZm9ybWF0X2xhYmVscyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9dC5pO3JldHVybiJyImluIHR8fCh0LnI9ZS5fcltpXSksInRoZXRhImluIHR8fCh0LnRoZXRhPWUuX3RoZXRhW2ldKSxuKHQsZSxyKX19LHsiLi4vc2NhdHRlcnBvbGFyL2Zvcm1hdF9sYWJlbHMiOjEyNjh9XSwxMjc2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXJnbC9ob3ZlciIpLGk9dCgiLi4vc2NhdHRlcnBvbGFyL2hvdmVyIikubWFrZUhvdmVyUG9pbnRUZXh0O2UuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIsYSl7dmFyIG89dC5jZFswXS50LHM9by5yLGw9by50aGV0YSxjPW4uaG92ZXJQb2ludHModCxlLHIsYSk7aWYoYyYmITEhPT1jWzBdLmluZGV4KXt2YXIgdT1jWzBdO2lmKHZvaWQgMD09PXUuaW5kZXgpcmV0dXJuIGM7dmFyIGY9dC5zdWJwbG90LGg9dS5jZFt1LmluZGV4XSxwPXUudHJhY2U7aWYoaC5yPXNbdS5pbmRleF0saC50aGV0YT1sW3UuaW5kZXhdLGYuaXNQdEluc2lkZShoKSlyZXR1cm4gdS54TGFiZWxWYWw9dm9pZCAwLHUueUxhYmVsVmFsPXZvaWQgMCxpKGgscCxmLHUpLGN9fX19LHsiLi4vc2NhdHRlcmdsL2hvdmVyIjoxMjUxLCIuLi9zY2F0dGVycG9sYXIvaG92ZXIiOjEyNjl9XSwxMjc3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InNjYXR0ZXJwb2xhcmdsIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9wb2xhciIpLGNhdGVnb3JpZXM6WyJnbCIsInJlZ2wiLCJwb2xhciIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxmb3JtYXRMYWJlbHM6dCgiLi9mb3JtYXRfbGFiZWxzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKS5ob3ZlclBvaW50cyxzZWxlY3RQb2ludHM6dCgiLi4vc2NhdHRlcmdsL3NlbGVjdCIpLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL3BvbGFyIjo4OTMsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMjA5LCIuLi9zY2F0dGVyZ2wvc2VsZWN0IjoxMjU1LCIuL2F0dHJpYnV0ZXMiOjEyNzIsIi4vY2FsYyI6MTI3MywiLi9kZWZhdWx0cyI6MTI3NCwiLi9mb3JtYXRfbGFiZWxzIjoxMjc1LCIuL2hvdmVyIjoxMjc2LCIuL3Bsb3QiOjEyNzh9XSwxMjc4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvcG9pbnQtY2x1c3RlciIpLGk9dCgiZmFzdC1pc251bWVyaWMiKSxhPXQoIi4uL3NjYXR0ZXJnbC9wbG90Iiksbz10KCIuLi9zY2F0dGVyZ2wvc2NlbmVfdXBkYXRlIikscz10KCIuLi9zY2F0dGVyZ2wvY29udmVydCIpLGw9dCgiLi4vLi4vbGliIiksYz10KCIuLi9zY2F0dGVyZ2wvY29uc3RhbnRzIikuVE9PX01BTllfUE9JTlRTO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7aWYoci5sZW5ndGgpe3ZhciB1PWUucmFkaWFsQXhpcyxmPWUuYW5ndWxhckF4aXMsaD1vKHQsZSk7cmV0dXJuIHIuZm9yRWFjaCgoZnVuY3Rpb24ocil7aWYociYmclswXSYmclswXS50cmFjZSl7dmFyIGEsbz1yWzBdLHA9by50cmFjZSxkPW8udCxtPXAuX2xlbmd0aCxnPWQucix2PWQudGhldGEseT1kLm9wdHMseD1nLnNsaWNlKCksYj12LnNsaWNlKCk7Zm9yKGE9MDthPGcubGVuZ3RoO2ErKyllLmlzUHRJbnNpZGUoe3I6Z1thXSx0aGV0YTp2W2FdfSl8fCh4W2FdPU5hTixiW2FdPU5hTik7dmFyIF89bmV3IEFycmF5KDIqbSksdz1BcnJheShtKSxUPUFycmF5KG0pO2ZvcihhPTA7YTxtO2ErKyl7dmFyIGssQSxNPXhbYV07aWYoaShNKSl7dmFyIFM9dS5jMmcoTSksRT1mLmMyZyhiW2FdLHAudGhldGF1bml0KTtrPVMqTWF0aC5jb3MoRSksQT1TKk1hdGguc2luKEUpfWVsc2Ugaz1BPU5hTjt3W2FdPV9bMiphXT1rLFRbYV09X1syKmErMV09QX1kLnRyZWU9bihfKSx5Lm1hcmtlciYmbT49YyYmKHkubWFya2VyLmNsdXN0ZXI9ZC50cmVlKSx5Lm1hcmtlciYmKHkubWFya2VyU2VsLnBvc2l0aW9ucz15Lm1hcmtlclVuc2VsLnBvc2l0aW9ucz15Lm1hcmtlci5wb3NpdGlvbnM9XykseS5saW5lJiZfLmxlbmd0aD4xJiZsLmV4dGVuZEZsYXQoeS5saW5lLHMubGluZVBvc2l0aW9ucyh0LHAsXykpLHkudGV4dCYmKGwuZXh0ZW5kRmxhdCh5LnRleHQse3Bvc2l0aW9uczpffSxzLnRleHRQb3NpdGlvbih0LHAseS50ZXh0LHkubWFya2VyKSksbC5leHRlbmRGbGF0KHkudGV4dFNlbCx7cG9zaXRpb25zOl99LHMudGV4dFBvc2l0aW9uKHQscCx5LnRleHQseS5tYXJrZXJTZWwpKSxsLmV4dGVuZEZsYXQoeS50ZXh0VW5zZWwse3Bvc2l0aW9uczpffSxzLnRleHRQb3NpdGlvbih0LHAseS50ZXh0LHkubWFya2VyVW5zZWwpKSkseS5maWxsJiYhaC5maWxsMmQmJihoLmZpbGwyZD0hMCkseS5tYXJrZXImJiFoLnNjYXR0ZXIyZCYmKGguc2NhdHRlcjJkPSEwKSx5LmxpbmUmJiFoLmxpbmUyZCYmKGgubGluZTJkPSEwKSx5LnRleHQmJiFoLmdsVGV4dCYmKGguZ2xUZXh0PSEwKSxoLmxpbmVPcHRpb25zLnB1c2goeS5saW5lKSxoLmZpbGxPcHRpb25zLnB1c2goeS5maWxsKSxoLm1hcmtlck9wdGlvbnMucHVzaCh5Lm1hcmtlciksaC5tYXJrZXJTZWxlY3RlZE9wdGlvbnMucHVzaCh5Lm1hcmtlclNlbCksaC5tYXJrZXJVbnNlbGVjdGVkT3B0aW9ucy5wdXNoKHkubWFya2VyVW5zZWwpLGgudGV4dE9wdGlvbnMucHVzaCh5LnRleHQpLGgudGV4dFNlbGVjdGVkT3B0aW9ucy5wdXNoKHkudGV4dFNlbCksaC50ZXh0VW5zZWxlY3RlZE9wdGlvbnMucHVzaCh5LnRleHRVbnNlbCksaC5zZWxlY3RCYXRjaC5wdXNoKFtdKSxoLnVuc2VsZWN0QmF0Y2gucHVzaChbXSksZC54PXcsZC55PVQsZC5yYXd4PXcsZC5yYXd5PVQsZC5yPWcsZC50aGV0YT12LGQucG9zaXRpb25zPV8sZC5fc2NlbmU9aCxkLmluZGV4PWguY291bnQsaC5jb3VudCsrfX0pKSxhKHQsZSxyKX19fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9zY2F0dGVyZ2wvY29uc3RhbnRzIjoxMjQ1LCIuLi9zY2F0dGVyZ2wvY29udmVydCI6MTI0NiwiLi4vc2NhdHRlcmdsL3Bsb3QiOjEyNTMsIi4uL3NjYXR0ZXJnbC9zY2VuZV91cGRhdGUiOjEyNTQsIkBwbG90bHkvcG9pbnQtY2x1c3RlciI6NTksImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMjc5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYT10KCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyIpLmRhc2gsYz10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCx1PWEubWFya2VyLGY9YS5saW5lLGg9dS5saW5lO2UuZXhwb3J0cz17YTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxiOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sc3VtOnt2YWxUeXBlOiJudW1iZXIiLGRmbHQ6MCxtaW46MCxlZGl0VHlwZToiY2FsYyJ9LG1vZGU6Yyh7fSxhLm1vZGUse2RmbHQ6Im1hcmtlcnMifSksdGV4dDpjKHt9LGEudGV4dCx7fSksdGV4dHRlbXBsYXRlOmkoe2VkaXRUeXBlOiJwbG90In0se2tleXM6WyJhIiwiYiIsImMiLCJ0ZXh0Il19KSxob3ZlcnRleHQ6Yyh7fSxhLmhvdmVydGV4dCx7fSksbGluZTp7Y29sb3I6Zi5jb2xvcix3aWR0aDpmLndpZHRoLGRhc2g6bCxzaGFwZTpjKHt9LGYuc2hhcGUse3ZhbHVlczpbImxpbmVhciIsInNwbGluZSJdfSksc21vb3RoaW5nOmYuc21vb3RoaW5nLGVkaXRUeXBlOiJjYWxjIn0sY29ubmVjdGdhcHM6YS5jb25uZWN0Z2FwcyxjbGlwb25heGlzOmEuY2xpcG9uYXhpcyxmaWxsOmMoe30sYS5maWxsLHt2YWx1ZXM6WyJub25lIiwidG9zZWxmIiwidG9uZXh0Il0sZGZsdDoibm9uZSJ9KSxmaWxsY29sb3I6YS5maWxsY29sb3IsbWFya2VyOmMoe3N5bWJvbDp1LnN5bWJvbCxvcGFjaXR5OnUub3BhY2l0eSxtYXhkaXNwbGF5ZWQ6dS5tYXhkaXNwbGF5ZWQsc2l6ZTp1LnNpemUsc2l6ZXJlZjp1LnNpemVyZWYsc2l6ZW1pbjp1LnNpemVtaW4sc2l6ZW1vZGU6dS5zaXplbW9kZSxsaW5lOmMoe3dpZHRoOmgud2lkdGgsZWRpdFR5cGU6ImNhbGMifSxzKCJtYXJrZXIubGluZSIpKSxncmFkaWVudDp1LmdyYWRpZW50LGVkaXRUeXBlOiJjYWxjIn0scygibWFya2VyIikpLHRleHRmb250OmEudGV4dGZvbnQsdGV4dHBvc2l0aW9uOmEudGV4dHBvc2l0aW9uLHNlbGVjdGVkOmEuc2VsZWN0ZWQsdW5zZWxlY3RlZDphLnVuc2VsZWN0ZWQsaG92ZXJpbmZvOmMoe30sby5ob3ZlcmluZm8se2ZsYWdzOlsiYSIsImIiLCJjIiwidGV4dCIsIm5hbWUiXX0pLGhvdmVyb246YS5ob3Zlcm9uLGhvdmVydGVtcGxhdGU6bigpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmcvYXR0cmlidXRlcyI6NjYwLCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODk5LCIuLi9zY2F0dGVyL2F0dHJpYnV0ZXMiOjExOTF9XSwxMjgwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImZhc3QtaXNudW1lcmljIiksaT10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGE9dCgiLi4vc2NhdHRlci9hcnJheXNfdG9fY2FsY2RhdGEiKSxvPXQoIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iKSxzPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNNYXJrZXJTaXplLGw9WyJhIiwiYiIsImMiXSxjPXthOlsiYiIsImMiXSxiOlsiYSIsImMiXSxjOlsiYSIsImIiXX07ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHIsdSxmLGgscCxkLG09dC5fZnVsbExheW91dFtlLnN1YnBsb3RdLnN1bSxnPWUuc3VtfHxtLHY9e2E6ZS5hLGI6ZS5iLGM6ZS5jfTtmb3Iocj0wO3I8bC5sZW5ndGg7cisrKWlmKCF2W2Y9bFtyXV0pe2ZvcihwPXZbY1tmXVswXV0sZD12W2NbZl1bMV1dLGg9bmV3IEFycmF5KHAubGVuZ3RoKSx1PTA7dTxwLmxlbmd0aDt1KyspaFt1XT1nLXBbdV0tZFt1XTt2W2ZdPWh9dmFyIHkseCxiLF8sdyxULGs9ZS5fbGVuZ3RoLEE9bmV3IEFycmF5KGspO2ZvcihyPTA7cjxrO3IrKyl5PXYuYVtyXSx4PXYuYltyXSxiPXYuY1tyXSxuKHkpJiZuKHgpJiZuKGIpPygxIT09KF89bS8oKHk9K3kpKyh4PSt4KSsoYj0rYikpKSYmKHkqPV8seCo9XyxiKj1fKSxUPXksdz1iLXgsQVtyXT17eDp3LHk6VCxhOnksYjp4LGM6Yn0pOkFbcl09e3g6ITEseTohMX07cmV0dXJuIHMoZSxrKSxpKHQsZSksYShBLGUpLG8oQSxlKSxBfX0seyIuLi9zY2F0dGVyL2FycmF5c190b19jYWxjZGF0YSI6MTE5MCwiLi4vc2NhdHRlci9jYWxjIjoxMTkyLCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIjoxMTkzLCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyI6MTE5NCwiZmFzdC1pc251bWVyaWMiOjI0Mn1dLDEyODE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9zY2F0dGVyL2NvbnN0YW50cyIpLGE9dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLG89dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvbGluZV9kZWZhdWx0cyIpLGw9dCgiLi4vc2NhdHRlci9saW5lX3NoYXBlX2RlZmF1bHRzIiksYz10KCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiKSx1PXQoIi4uL3NjYXR0ZXIvZmlsbGNvbG9yX2RlZmF1bHRzIiksZj10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsaCl7ZnVuY3Rpb24gcChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsZixyLGkpfXZhciBkLG09cCgiYSIpLGc9cCgiYiIpLHY9cCgiYyIpO2lmKG0/KGQ9bS5sZW5ndGgsZz8oZD1NYXRoLm1pbihkLGcubGVuZ3RoKSx2JiYoZD1NYXRoLm1pbihkLHYubGVuZ3RoKSkpOmQ9dj9NYXRoLm1pbihkLHYubGVuZ3RoKTowKTpnJiZ2JiYoZD1NYXRoLm1pbihnLmxlbmd0aCx2Lmxlbmd0aCkpLGQpe2UuX2xlbmd0aD1kLHAoInN1bSIpLHAoInRleHQiKSxwKCJob3ZlcnRleHQiKSwiZmlsbHMiIT09ZS5ob3Zlcm9uJiZwKCJob3ZlcnRlbXBsYXRlIikscCgibW9kZSIsZDxpLlBUU19MSU5FU09OTFk/ImxpbmVzK21hcmtlcnMiOiJsaW5lcyIpLGEuaGFzTGluZXMoZSkmJihzKHQsZSxyLGgscCksbCh0LGUscCkscCgiY29ubmVjdGdhcHMiKSksYS5oYXNNYXJrZXJzKGUpJiZvKHQsZSxyLGgscCx7Z3JhZGllbnQ6ITB9KSxhLmhhc1RleHQoZSkmJihwKCJ0ZXh0dGVtcGxhdGUiKSxjKHQsZSxoLHApKTt2YXIgeT1bXTsoYS5oYXNNYXJrZXJzKGUpfHxhLmhhc1RleHQoZSkpJiYocCgiY2xpcG9uYXhpcyIpLHAoIm1hcmtlci5tYXhkaXNwbGF5ZWQiKSx5LnB1c2goInBvaW50cyIpKSxwKCJmaWxsIiksIm5vbmUiIT09ZS5maWxsJiYodSh0LGUscixwKSxhLmhhc0xpbmVzKGUpfHxsKHQsZSxwKSksInRvbmV4dCIhPT1lLmZpbGwmJiJ0b3NlbGYiIT09ZS5maWxsfHx5LnB1c2goImZpbGxzIikscCgiaG92ZXJvbiIseS5qb2luKCIrIil8fCJwb2ludHMiKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxwKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3NzYsIi4uL3NjYXR0ZXIvY29uc3RhbnRzIjoxMTk1LCIuLi9zY2F0dGVyL2ZpbGxjb2xvcl9kZWZhdWx0cyI6MTE5OSwiLi4vc2NhdHRlci9saW5lX2RlZmF1bHRzIjoxMjA0LCIuLi9zY2F0dGVyL2xpbmVfc2hhcGVfZGVmYXVsdHMiOjEyMDYsIi4uL3NjYXR0ZXIvbWFya2VyX2RlZmF1bHRzIjoxMjEwLCIuLi9zY2F0dGVyL3N1YnR5cGVzIjoxMjE2LCIuLi9zY2F0dGVyL3RleHRfZGVmYXVsdHMiOjEyMTcsIi4vYXR0cmlidXRlcyI6MTI3OX1dLDEyODI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG4saSl7aWYoZS54YSYmKHQueGF4aXM9ZS54YSksZS55YSYmKHQueWF4aXM9ZS55YSksbltpXSl7dmFyIGE9bltpXTt0LmE9YS5hLHQuYj1hLmIsdC5jPWEuY31lbHNlIHQuYT1lLmEsdC5iPWUuYix0LmM9ZS5jO3JldHVybiB0fX0se31dLDEyODM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBpPXt9LGE9cltlLnN1YnBsb3RdLl9zdWJwbG90O3JldHVybiBpLmFMYWJlbD1uLnRpY2tUZXh0KGEuYWF4aXMsdC5hLCEwKS50ZXh0LGkuYkxhYmVsPW4udGlja1RleHQoYS5iYXhpcyx0LmIsITApLnRleHQsaS5jTGFiZWw9bi50aWNrVGV4dChhLmNheGlzLHQuYywhMCkudGV4dCxpfX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyI6ODI3fV0sMTI4NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zY2F0dGVyL2hvdmVyIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhPW4odCxlLHIsaSk7aWYoYSYmITEhPT1hWzBdLmluZGV4KXt2YXIgbz1hWzBdO2lmKHZvaWQgMD09PW8uaW5kZXgpe3ZhciBzPTEtby55MC90LnlhLl9sZW5ndGgsbD10LnhhLl9sZW5ndGgsYz1sKnMvMix1PWwtYztyZXR1cm4gby54MD1NYXRoLm1heChNYXRoLm1pbihvLngwLHUpLGMpLG8ueDE9TWF0aC5tYXgoTWF0aC5taW4oby54MSx1KSxjKSxhfXZhciBmPW8uY2Rbby5pbmRleF0saD1vLnRyYWNlLHA9by5zdWJwbG90O28uYT1mLmEsby5iPWYuYixvLmM9Zi5jLG8ueExhYmVsVmFsPXZvaWQgMCxvLnlMYWJlbFZhbD12b2lkIDA7dmFyIGQ9e307ZFtoLnN1YnBsb3RdPXtfc3VicGxvdDpwfTt2YXIgbT1oLl9tb2R1bGUuZm9ybWF0TGFiZWxzKGYsaCxkKTtvLmFMYWJlbD1tLmFMYWJlbCxvLmJMYWJlbD1tLmJMYWJlbCxvLmNMYWJlbD1tLmNMYWJlbDt2YXIgZz1mLmhpfHxoLmhvdmVyaW5mbyx2PVtdO2lmKCFoLmhvdmVydGVtcGxhdGUpe3ZhciB5PWcuc3BsaXQoIisiKTstMSE9PXkuaW5kZXhPZigiYWxsIikmJih5PVsiYSIsImIiLCJjIl0pLC0xIT09eS5pbmRleE9mKCJhIikmJngocC5hYXhpcyxvLmFMYWJlbCksLTEhPT15LmluZGV4T2YoImIiKSYmeChwLmJheGlzLG8uYkxhYmVsKSwtMSE9PXkuaW5kZXhPZigiYyIpJiZ4KHAuY2F4aXMsby5jTGFiZWwpfXJldHVybiBvLmV4dHJhVGV4dD12LmpvaW4oIjxicj4iKSxvLmhvdmVydGVtcGxhdGU9aC5ob3ZlcnRlbXBsYXRlLGF9ZnVuY3Rpb24geCh0LGUpe3YucHVzaCh0Ll9ob3ZlcnRpdGxlKyI6ICIrZSl9fX0seyIuLi9zY2F0dGVyL2hvdmVyIjoxMjAyfV0sMTI4NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e2F0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksZm9ybWF0TGFiZWxzOnQoIi4vZm9ybWF0X2xhYmVscyIpLGNhbGM6dCgiLi9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGUsc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL3NjYXR0ZXIvc2VsZWN0IiksZXZlbnREYXRhOnQoIi4vZXZlbnRfZGF0YSIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzY2F0dGVydGVybmFyeSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvdGVybmFyeSIpLGNhdGVnb3JpZXM6WyJ0ZXJuYXJ5Iiwic3ltYm9scyIsInNob3dMZWdlbmQiLCJzY2F0dGVyLWxpa2UiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy90ZXJuYXJ5Ijo5MDAsIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIjoxMjA5LCIuLi9zY2F0dGVyL3NlbGVjdCI6MTIxMywiLi4vc2NhdHRlci9zdHlsZSI6MTIxNSwiLi9hdHRyaWJ1dGVzIjoxMjc5LCIuL2NhbGMiOjEyODAsIi4vZGVmYXVsdHMiOjEyODEsIi4vZXZlbnRfZGF0YSI6MTI4MiwiLi9mb3JtYXRfbGFiZWxzIjoxMjgzLCIuL2hvdmVyIjoxMjg0LCIuL3Bsb3QiOjEyODZ9XSwxMjg2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uL3NjYXR0ZXIvcGxvdCIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscil7dmFyIGk9ZS5wbG90Q29udGFpbmVyO2kuc2VsZWN0KCIuc2NhdHRlcmxheWVyIikuc2VsZWN0QWxsKCIqIikucmVtb3ZlKCk7dmFyIGE9e3hheGlzOmUueGF4aXMseWF4aXM6ZS55YXhpcyxwbG90OmksbGF5ZXJDbGlwSWQ6ZS5faGFzQ2xpcE9uQXhpc0ZhbHNlP2UuY2xpcElkUmVsYXRpdmU6bnVsbH0sbz1lLmxheWVycy5mcm9udHBsb3Quc2VsZWN0KCJnLnNjYXR0ZXJsYXllciIpO24odCxhLHIsbyl9fSx7Ii4uL3NjYXR0ZXIvcGxvdCI6MTIxMn1dLDEyODc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQsbz10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikuaG92ZXJ0ZW1wbGF0ZUF0dHJzLHM9dCgiLi4vc2NhdHRlcmdsL2F0dHJpYnV0ZXMiKSxsPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9jb25zdGFudHMiKS5pZFJlZ2V4LGM9dCgiLi4vLi4vcGxvdF9hcGkvcGxvdF90ZW1wbGF0ZSIpLnRlbXBsYXRlZEFycmF5LHU9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsZj1uLm1hcmtlcixoPWYubGluZSxwPXUoaSgibWFya2VyLmxpbmUiLHtlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pLHt3aWR0aDp1KHt9LGgud2lkdGgse2VkaXRUeXBlOiJjYWxjIn0pLGVkaXRUeXBlOiJjYWxjIn0pLGQ9dShpKCJtYXJrZXIiKSx7c3ltYm9sOmYuc3ltYm9sLHNpemU6dSh7fSxmLnNpemUse2VkaXRUeXBlOiJtYXJrZXJTaXplIn0pLHNpemVyZWY6Zi5zaXplcmVmLHNpemVtaW46Zi5zaXplbWluLHNpemVtb2RlOmYuc2l6ZW1vZGUsb3BhY2l0eTpmLm9wYWNpdHksY29sb3JiYXI6Zi5jb2xvcmJhcixsaW5lOnAsZWRpdFR5cGU6ImNhbGMifSk7ZnVuY3Rpb24gbSh0KXtyZXR1cm57dmFsVHlwZToiaW5mb19hcnJheSIsZnJlZUxlbmd0aDohMCxlZGl0VHlwZToiY2FsYyIsaXRlbXM6e3ZhbFR5cGU6InN1YnBsb3RpZCIscmVnZXg6bFt0XSxlZGl0VHlwZToicGxvdCJ9fX1kLmNvbG9yLmVkaXRUeXBlPWQuY21pbi5lZGl0VHlwZT1kLmNtYXguZWRpdFR5cGU9InN0eWxlIixlLmV4cG9ydHM9e2RpbWVuc2lvbnM6YygiZGltZW5zaW9uIix7dmlzaWJsZTp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LGxhYmVsOnt2YWxUeXBlOiJzdHJpbmciLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWVzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LGF4aXM6e3R5cGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImxpbmVhciIsImxvZyIsImRhdGUiLCJjYXRlZ29yeSJdLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sbWF0Y2hlczp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSksdGV4dDp1KHt9LHMudGV4dCx7fSksaG92ZXJ0ZXh0OnUoe30scy5ob3ZlcnRleHQse30pLGhvdmVydGVtcGxhdGU6bygpLHhob3ZlcmZvcm1hdDphKCJ4IikseWhvdmVyZm9ybWF0OmEoInkiKSxtYXJrZXI6ZCx4YXhlczptKCJ4IikseWF4ZXM6bSgieSIpLGRpYWdvbmFsOnt2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxzaG93dXBwZXJoYWxmOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sc2hvd2xvd2VyaGFsZjp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LHNlbGVjdGVkOnttYXJrZXI6cy5zZWxlY3RlZC5tYXJrZXIsZWRpdFR5cGU6ImNhbGMifSx1bnNlbGVjdGVkOnttYXJrZXI6cy51bnNlbGVjdGVkLm1hcmtlcixlZGl0VHlwZToiY2FsYyJ9LG9wYWNpdHk6cy5vcGFjaXR5fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RfYXBpL3Bsb3RfdGVtcGxhdGUiOjgxNiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2NvbnN0YW50cyI6ODM0LCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTksIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyI6MTE5MSwiLi4vc2NhdHRlcmdsL2F0dHJpYnV0ZXMiOjEyNDN9XSwxMjg4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJlZ2wtbGluZTJkIiksaT10KCIuLi8uLi9yZWdpc3RyeSIpLGE9dCgiLi4vLi4vbGliL3ByZXBhcmVfcmVnbCIpLG89dCgiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiKS5nZXRNb2R1bGVDYWxjRGF0YSxzPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbiIpLGw9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIikuZ2V0RnJvbUlkLGM9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS5zaG91bGRTaG93WmVyb0xpbmU7ZnVuY3Rpb24gdSh0LGUscil7Zm9yKHZhciBuPXIubWF0cml4T3B0aW9ucy5kYXRhLmxlbmd0aCxpPWUuX3Zpc2libGVEaW1zLGE9ci52aWV3T3B0cy5yYW5nZXM9bmV3IEFycmF5KG4pLG89MDtvPGkubGVuZ3RoO28rKyl7dmFyIHM9aVtvXSxjPWFbb109bmV3IEFycmF5KDQpLHU9bCh0LGUuX2RpYWdbc11bMF0pO3UmJihjWzBdPXUucjJsKHUucmFuZ2VbMF0pLGNbMl09dS5yMmwodS5yYW5nZVsxXSkpO3ZhciBmPWwodCxlLl9kaWFnW3NdWzFdKTtmJiYoY1sxXT1mLnIybChmLnJhbmdlWzBdKSxjWzNdPWYucjJsKGYucmFuZ2VbMV0pKX1yLnNlbGVjdEJhdGNoLmxlbmd0aHx8ci51bnNlbGVjdEJhdGNoLmxlbmd0aD9yLm1hdHJpeC51cGRhdGUoe3JhbmdlczphfSx7cmFuZ2VzOmF9KTpyLm1hdHJpeC51cGRhdGUoe3JhbmdlczphfSl9ZnVuY3Rpb24gZih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0LHI9ZS5fZ2xjYW52YXMuZGF0YSgpWzBdLnJlZ2wsaT1lLl9zcGxvbUdyaWQ7aXx8KGk9ZS5fc3Bsb21HcmlkPW4ocikpLGkudXBkYXRlKGZ1bmN0aW9uKHQpe3ZhciBlLHI9dC5fY29udGV4dC5wbG90R2xQaXhlbFJhdGlvLG49dC5fZnVsbExheW91dCxpPW4uX3NpemUsYT1bMCwwLG4ud2lkdGgqcixuLmhlaWdodCpyXSxvPXt9O2Z1bmN0aW9uIHModCxlLG4saSxzLGwpe24qPXIsaSo9cixzKj1yLGwqPXI7dmFyIGM9ZVt0KyJjb2xvciJdLHU9ZVt0KyJ3aWR0aCJdLGY9U3RyaW5nKGMrdSk7ZiBpbiBvP29bZl0uZGF0YS5wdXNoKE5hTixOYU4sbixpLHMsbCk6b1tmXT17ZGF0YTpbbixpLHMsbF0sam9pbjoicmVjdCIsdGhpY2tuZXNzOnUqcixjb2xvcjpjLHZpZXdwb3J0OmEscmFuZ2U6YSxvdmVybGF5OiExfX1mb3IoZSBpbiBuLl9zcGxvbVN1YnBsb3RzKXt2YXIgbCx1LGY9bi5fcGxvdHNbZV0saD1mLnhheGlzLHA9Zi55YXhpcyxkPWguX2dyaWRWYWxzLG09cC5fZ3JpZFZhbHMsZz1oLl9vZmZzZXQsdj1oLl9sZW5ndGgseT1wLl9sZW5ndGgseD1pLmIrcC5kb21haW5bMF0qaS5oLGI9LXAuX20sXz0tYipwLnIybChwLnJhbmdlWzBdLHAuY2FsZW5kYXIpO2lmKGguc2hvd2dyaWQpZm9yKGU9MDtlPGQubGVuZ3RoO2UrKylsPWcraC5sMnAoZFtlXS54KSxzKCJncmlkIixoLGwseCxsLHgreSk7aWYocC5zaG93Z3JpZClmb3IoZT0wO2U8bS5sZW5ndGg7ZSsrKXU9eCtfK2IqbVtlXS54LHMoImdyaWQiLHAsZyx1LGcrdix1KTtjKHQsaCxwKSYmKGw9ZytoLmwycCgwKSxzKCJ6ZXJvbGluZSIsaCxsLHgsbCx4K3kpKSxjKHQscCxoKSYmcygiemVyb2xpbmUiLHAsZyx1PXgrXyswLGcrdix1KX12YXIgdz1bXTtmb3IoZSBpbiBvKXcucHVzaChvW2VdKTtyZXR1cm4gd30odCkpfWUuZXhwb3J0cz17bmFtZToic3Bsb20iLGF0dHI6cy5hdHRyLGF0dHJSZWdleDpzLmF0dHJSZWdleCxsYXlvdXRBdHRyaWJ1dGVzOnMubGF5b3V0QXR0cmlidXRlcyxzdXBwbHlMYXlvdXREZWZhdWx0czpzLnN1cHBseUxheW91dERlZmF1bHRzLGRyYXdGcmFtZXdvcms6cy5kcmF3RnJhbWV3b3JrLHBsb3Q6ZnVuY3Rpb24odCl7dmFyIGU9dC5fZnVsbExheW91dCxyPWkuZ2V0TW9kdWxlKCJzcGxvbSIpLG49byh0LmNhbGNkYXRhLHIpWzBdO2EodCxbIkFOR0xFX2luc3RhbmNlZF9hcnJheXMiLCJPRVNfZWxlbWVudF9pbmRleF91aW50Il0pJiYoZS5faGFzT25seUxhcmdlU3Bsb21zJiZmKHQpLHIucGxvdCh0LHt9LG4pKX0sZHJhZzpmdW5jdGlvbih0KXt2YXIgZT10LmNhbGNkYXRhLHI9dC5fZnVsbExheW91dDtyLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJmYodCk7Zm9yKHZhciBuPTA7bjxlLmxlbmd0aDtuKyspe3ZhciBpPWVbbl1bMF0udHJhY2UsYT1yLl9zcGxvbVNjZW5lc1tpLnVpZF07InNwbG9tIj09PWkudHlwZSYmYSYmYS5tYXRyaXgmJnUodCxpLGEpfX0sdXBkYXRlR3JpZDpmLGNsZWFuOmZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGE9e307aWYobi5fc3Bsb21TY2VuZXMpe2ZvcihpPTA7aTx0Lmxlbmd0aDtpKyspe3ZhciBvPXRbaV07InNwbG9tIj09PW8udHlwZSYmKGFbby51aWRdPTEpfWZvcihpPTA7aTxyLmxlbmd0aDtpKyspe3ZhciBsPXJbaV07aWYoIWFbbC51aWRdKXt2YXIgYz1uLl9zcGxvbVNjZW5lc1tsLnVpZF07YyYmYy5kZXN0cm95JiZjLmRlc3Ryb3koKSxuLl9zcGxvbVNjZW5lc1tsLnVpZF09bnVsbCxkZWxldGUgbi5fc3Bsb21TY2VuZXNbbC51aWRdfX19MD09PU9iamVjdC5rZXlzKG4uX3NwbG9tU2NlbmVzfHx7fSkubGVuZ3RoJiZkZWxldGUgbi5fc3Bsb21TY2VuZXMsbi5fc3Bsb21HcmlkJiYhZS5faGFzT25seUxhcmdlU3Bsb21zJiZuLl9oYXNPbmx5TGFyZ2VTcGxvbXMmJihuLl9zcGxvbUdyaWQuZGVzdHJveSgpLG4uX3NwbG9tR3JpZD1udWxsLGRlbGV0ZSBuLl9zcGxvbUdyaWQpLHMuY2xlYW4odCxlLHIsbil9LHVwZGF0ZUZ4OnMudXBkYXRlRngsdG9TVkc6cy50b1NWR319LHsiLi4vLi4vbGliL3ByZXBhcmVfcmVnbCI6Nzg5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo4MzEsIi4uLy4uL3Bsb3RzL2dldF9kYXRhIjo4NjQsIi4uLy4uL3JlZ2lzdHJ5Ijo5MDQsInJlZ2wtbGluZTJkIjo1MTN9XSwxMjg5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksYT10KCIuLi9zY2F0dGVyL2NhbGMiKS5jYWxjTWFya2VyU2l6ZSxvPXQoIi4uL3NjYXR0ZXIvY2FsYyIpLmNhbGNBeGlzRXhwYW5zaW9uLHM9dCgiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiKSxsPXQoIi4uL3NjYXR0ZXJnbC9jb252ZXJ0IikubWFya2VyU2VsZWN0aW9uLGM9dCgiLi4vc2NhdHRlcmdsL2NvbnZlcnQiKS5tYXJrZXJTdHlsZSx1PXQoIi4vc2NlbmVfdXBkYXRlIiksZj10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNLGg9dCgiLi4vc2NhdHRlcmdsL2NvbnN0YW50cyIpLlRPT19NQU5ZX1BPSU5UUztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcixwLGQsbSxnLHYseT1lLmRpbWVuc2lvbnMseD1lLl9sZW5ndGgsYj17fSxfPWIuY2RhdGE9W10sdz1iLmRhdGE9W10sVD1lLl92aXNpYmxlRGltcz1bXTtmdW5jdGlvbiBrKHQscil7Zm9yKHZhciBpPXQubWFrZUNhbGNkYXRhKHt2OnIudmFsdWVzLHZjYWxlbmRhcjplLmNhbGVuZGFyfSwidiIpLGE9MDthPGkubGVuZ3RoO2ErKylpW2FdPWlbYV09PT1mP05hTjppW2FdO18ucHVzaChpKSx3LnB1c2goImxvZyI9PT10LnR5cGU/bi5zaW1wbGVNYXAoaSx0LmMybCk6aSl9Zm9yKHI9MDtyPHkubGVuZ3RoO3IrKylpZigoZD15W3JdKS52aXNpYmxlKXtpZihtPWkuZ2V0RnJvbUlkKHQsZS5fZGlhZ1tyXVswXSksZz1pLmdldEZyb21JZCh0LGUuX2RpYWdbcl1bMV0pLG0mJmcmJm0udHlwZSE9PWcudHlwZSl7bi5sb2coIlNraXBwaW5nIHNwbG9tIGRpbWVuc2lvbiAiK3IrIiB3aXRoIGNvbmZsaWN0aW5nIGF4aXMgdHlwZXMiKTtjb250aW51ZX1tPyhrKG0sZCksZyYmImNhdGVnb3J5Ij09PWcudHlwZSYmKGcuX2NhdGVnb3JpZXM9bS5fY2F0ZWdvcmllcy5zbGljZSgpKSk6ayhnLGQpLFQucHVzaChyKX1mb3Iocyh0LGUpLG4uZXh0ZW5kRmxhdChiLGMoZSkpLHY9Xy5sZW5ndGgqeD5oP2Iuc2l6ZUF2Z3x8TWF0aC5tYXgoYi5zaXplLDMpOmEoZSx4KSxwPTA7cDxULmxlbmd0aDtwKyspZD15W3I9VFtwXV0sbT1pLmdldEZyb21JZCh0LGUuX2RpYWdbcl1bMF0pfHx7fSxnPWkuZ2V0RnJvbUlkKHQsZS5fZGlhZ1tyXVsxXSl8fHt9LG8odCxlLG0sZyxfW3BdLF9bcF0sdik7dmFyIEE9dSh0LGUpO3JldHVybiBBLm1hdHJpeHx8KEEubWF0cml4PSEwKSxBLm1hdHJpeE9wdGlvbnM9YixBLnNlbGVjdGVkT3B0aW9ucz1sKGUsZS5zZWxlY3RlZCksQS51bnNlbGVjdGVkT3B0aW9ucz1sKGUsZS51bnNlbGVjdGVkKSxbe3g6ITEseTohMSx0Ont9LHRyYWNlOmV9XX19LHsiLi4vLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIjo4MzEsIi4uL3NjYXR0ZXIvY2FsYyI6MTE5MiwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjExOTQsIi4uL3NjYXR0ZXJnbC9jb25zdGFudHMiOjEyNDUsIi4uL3NjYXR0ZXJnbC9jb252ZXJ0IjoxMjQ2LCIuL3NjZW5lX3VwZGF0ZSI6MTI5Nn1dLDEyOTA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9wbG90cy9hcnJheV9jb250YWluZXJfZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpLG89dCgiLi4vc2NhdHRlci9zdWJ0eXBlcyIpLHM9dCgiLi4vc2NhdHRlci9tYXJrZXJfZGVmYXVsdHMiKSxsPXQoIi4uL3BhcmNvb3Jkcy9tZXJnZV9sZW5ndGgiKSxjPXQoIi4uL3NjYXR0ZXJnbC9oZWxwZXJzIikuaXNPcGVuU3ltYm9sO2Z1bmN0aW9uIHUodCxlKXtmdW5jdGlvbiByKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLmRpbWVuc2lvbnMscixpKX1yKCJsYWJlbCIpO3ZhciBpPXIoInZhbHVlcyIpO2kmJmkubGVuZ3RoP3IoInZpc2libGUiKTplLnZpc2libGU9ITEscigiYXhpcy50eXBlIikscigiYXhpcy5tYXRjaGVzIil9ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGYpe2Z1bmN0aW9uIGgocixpKXtyZXR1cm4gbi5jb2VyY2UodCxlLGEscixpKX12YXIgcD1pKHQsZSx7bmFtZToiZGltZW5zaW9ucyIsaGFuZGxlSXRlbURlZmF1bHRzOnV9KSxkPWgoImRpYWdvbmFsLnZpc2libGUiKSxtPWgoInNob3d1cHBlcmhhbGYiKSxnPWgoInNob3dsb3dlcmhhbGYiKTtpZihsKGUscCwidmFsdWVzIikmJihkfHxtfHxnKSl7aCgidGV4dCIpLGgoImhvdmVydGV4dCIpLGgoImhvdmVydGVtcGxhdGUiKSxoKCJ4aG92ZXJmb3JtYXQiKSxoKCJ5aG92ZXJmb3JtYXQiKSxzKHQsZSxyLGYsaCk7dmFyIHY9YyhlLm1hcmtlci5zeW1ib2wpLHk9by5pc0J1YmJsZShlKTtoKCJtYXJrZXIubGluZS53aWR0aCIsdnx8eT8xOjApLGZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGEsbz1lLmRpbWVuc2lvbnMscz1vLmxlbmd0aCxsPWUuc2hvd3VwcGVyaGFsZixjPWUuc2hvd2xvd2VyaGFsZix1PWUuZGlhZ29uYWwudmlzaWJsZSxmPW5ldyBBcnJheShzKSxoPW5ldyBBcnJheShzKTtmb3IoaT0wO2k8cztpKyspe3ZhciBwPWk/aSsxOiIiO2ZbaV09IngiK3AsaFtpXT0ieSIrcH12YXIgZD1uKCJ4YXhlcyIsZiksbT1uKCJ5YXhlcyIsaCksZz1lLl9kaWFnPW5ldyBBcnJheShzKTtlLl94YXhlcz17fSxlLl95YXhlcz17fTt2YXIgdj1bXSx5PVtdO2Z1bmN0aW9uIHgodCxuLGksYSl7aWYodCl7dmFyIG89dC5jaGFyQXQoMCkscz1yLl9zcGxvbUF4ZXNbb107aWYoZVsiXyIrbysiYXhlcyJdW3RdPTEsYS5wdXNoKHQpLCEodCBpbiBzKSl7dmFyIGw9c1t0XT17fTtpJiYobC5sYWJlbD1pLmxhYmVsfHwiIixpLnZpc2libGUmJmkuYXhpcyYmKGkuYXhpcy50eXBlJiYobC50eXBlPWkuYXhpcy50eXBlKSxpLmF4aXMubWF0Y2hlcyYmKGwubWF0Y2hlcz1uKSkpfX19dmFyIGI9IXUmJiFjLF89IXUmJiFsO2ZvcihlLl9heGVzRGltPXt9LGk9MDtpPHM7aSsrKXt2YXIgdz1vW2ldLFQ9MD09PWksaz1pPT09cy0xLEE9VCYmYnx8ayYmXz92b2lkIDA6ZFtpXSxNPVQmJl98fGsmJmI/dm9pZCAwOm1baV07eChBLE0sdyx2KSx4KE0sQSx3LHkpLGdbaV09W0EsTV0sZS5fYXhlc0RpbVtBXT1pLGUuX2F4ZXNEaW1bTV09aX1mb3IoaT0wO2k8di5sZW5ndGg7aSsrKWZvcihhPTA7YTx5Lmxlbmd0aDthKyspe3ZhciBTPXZbaV0reVthXTtpPmEmJmx8fGk8YSYmYz9yLl9zcGxvbVN1YnBsb3RzW1NdPTE6aSE9PWF8fCF1JiZjJiZsfHwoci5fc3Bsb21TdWJwbG90c1tTXT0xKX0oIWN8fCF1JiZsJiZjKSYmKHIuX3NwbG9tR3JpZERmbHQueHNpZGU9ImJvdHRvbSIsci5fc3Bsb21HcmlkRGZsdC55c2lkZT0ibGVmdCIpfSgwLGUsZixoKSxuLmNvZXJjZVNlbGVjdGlvbk1hcmtlck9wYWNpdHkoZSxoKX1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2FycmF5X2NvbnRhaW5lcl9kZWZhdWx0cyI6ODIyLCIuLi9wYXJjb29yZHMvbWVyZ2VfbGVuZ3RoIjoxMTYyLCIuLi9zY2F0dGVyL21hcmtlcl9kZWZhdWx0cyI6MTIxMCwiLi4vc2NhdHRlci9zdWJ0eXBlcyI6MTIxNiwiLi4vc2NhdHRlcmdsL2hlbHBlcnMiOjEyNTAsIi4vYXR0cmlidXRlcyI6MTI4N31dLDEyOTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9zY2F0dGVyL2NvbG9yc2NhbGVfY2FsYyIpLGE9dCgiLi4vc2NhdHRlcmdsL2NvbnZlcnQiKS5tYXJrZXJTdHlsZTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj1lLnRyYWNlLG89dC5fZnVsbExheW91dC5fc3Bsb21TY2VuZXNbci51aWRdO2lmKG8pe2kodCxyKSxuLmV4dGVuZEZsYXQoby5tYXRyaXhPcHRpb25zLGEocikpO3ZhciBzPW4uZXh0ZW5kRmxhdCh7fSxvLm1hdHJpeE9wdGlvbnMsby52aWV3T3B0cyk7by5tYXRyaXgudXBkYXRlKHMsbnVsbCl9fX0seyIuLi8uLi9saWIiOjc3NiwiLi4vc2NhdHRlci9jb2xvcnNjYWxlX2NhbGMiOjExOTQsIi4uL3NjYXR0ZXJnbC9jb252ZXJ0IjoxMjQ2fV0sMTI5MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLmdldERpbUluZGV4PWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPWUuX2lkLG49e3g6MCx5OjF9W3IuY2hhckF0KDApXSxpPXQuX3Zpc2libGVEaW1zLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXTtpZih0Ll9kaWFnW29dW25dPT09cilyZXR1cm4gYX1yZXR1cm4hMX19LHt9XSwxMjkzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vaGVscGVycyIpLGk9dCgiLi4vc2NhdHRlcmdsL2hvdmVyIikuY2FsY0hvdmVyO2UuZXhwb3J0cz17aG92ZXJQb2ludHM6ZnVuY3Rpb24odCxlLHIpe3ZhciBhPXQuY2RbMF0udHJhY2Usbz10LnNjZW5lLm1hdHJpeE9wdGlvbnMuY2RhdGEscz10LnhhLGw9dC55YSxjPXMuYzJwKGUpLHU9bC5jMnAociksZj10LmRpc3RhbmNlLGg9bi5nZXREaW1JbmRleChhLHMpLHA9bi5nZXREaW1JbmRleChhLGwpO2lmKCExPT09aHx8ITE9PT1wKXJldHVyblt0XTtmb3IodmFyIGQsbSxnPW9baF0sdj1vW3BdLHk9Zix4PTA7eDxnLmxlbmd0aDt4Kyspe3ZhciBiPWdbeF0sXz12W3hdLHc9cy5jMnAoYiktYyxUPWwuYzJwKF8pLXUsaz1NYXRoLnNxcnQodyp3K1QqVCk7azx5JiYoeT1tPWssZD14KX1yZXR1cm4gdC5pbmRleD1kLHQuZGlzdGFuY2U9eSx0LmR4eT1tLHZvaWQgMD09PWQ/W3RdOltpKHQsZyx2LGEpXX19fSx7Ii4uL3NjYXR0ZXJnbC9ob3ZlciI6MTI1MSwiLi9oZWxwZXJzIjoxMjkyfV0sMTI5NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9yZWdpc3RyeSIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9ncmlkIik7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic3Bsb20iLGJhc2VQbG90TW9kdWxlOnQoIi4vYmFzZV9wbG90IiksY2F0ZWdvcmllczpbImdsIiwicmVnbCIsImNhcnRlc2lhbiIsInN5bWJvbHMiLCJzaG93TGVnZW5kIiwic2NhdHRlci1saWtlIl0sYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxjYWxjOnQoIi4vY2FsYyIpLHBsb3Q6dCgiLi9wbG90IiksaG92ZXJQb2ludHM6dCgiLi9ob3ZlciIpLmhvdmVyUG9pbnRzLHNlbGVjdFBvaW50czp0KCIuL3NlbGVjdCIpLGVkaXRTdHlsZTp0KCIuL2VkaXRfc3R5bGUiKSxtZXRhOnt9fSxuLnJlZ2lzdGVyKGkpfSx7Ii4uLy4uL2NvbXBvbmVudHMvZ3JpZCI6NjgzLCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6MTIwOSwiLi9hdHRyaWJ1dGVzIjoxMjg3LCIuL2Jhc2VfcGxvdCI6MTI4OCwiLi9jYWxjIjoxMjg5LCIuL2RlZmF1bHRzIjoxMjkwLCIuL2VkaXRfc3R5bGUiOjEyOTEsIi4vaG92ZXIiOjEyOTMsIi4vcGxvdCI6MTI5NSwiLi9zZWxlY3QiOjEyOTd9XSwxMjk1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoInJlZ2wtc3Bsb20iKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfaWRzIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2RyYWdlbGVtZW50L2hlbHBlcnMiKS5zZWxlY3RNb2RlO2Z1bmN0aW9uIHModCxlKXt2YXIgcixzLGwsYyx1LGY9dC5fZnVsbExheW91dCxoPWYuX3NpemUscD1lLnRyYWNlLGQ9ZS50LG09Zi5fc3Bsb21TY2VuZXNbcC51aWRdLGc9bS5tYXRyaXhPcHRpb25zLHY9Zy5jZGF0YSx5PWYuX2dsY2FudmFzLmRhdGEoKVswXS5yZWdsLHg9Zi5kcmFnbW9kZTtpZigwIT09di5sZW5ndGgpe2cubG93ZXI9cC5zaG93dXBwZXJoYWxmLGcudXBwZXI9cC5zaG93bG93ZXJoYWxmLGcuZGlhZ29uYWw9cC5kaWFnb25hbC52aXNpYmxlO3ZhciBiPXAuX3Zpc2libGVEaW1zLF89di5sZW5ndGgsdz1tLnZpZXdPcHRzPXt9O2Zvcih3LnJhbmdlcz1uZXcgQXJyYXkoXyksdy5kb21haW5zPW5ldyBBcnJheShfKSx1PTA7dTxiLmxlbmd0aDt1Kyspe2w9Ylt1XTt2YXIgVD13LnJhbmdlc1t1XT1uZXcgQXJyYXkoNCksaz13LmRvbWFpbnNbdV09bmV3IEFycmF5KDQpOyhyPWEuZ2V0RnJvbUlkKHQscC5fZGlhZ1tsXVswXSkpJiYoVFswXT1yLl9ybFswXSxUWzJdPXIuX3JsWzFdLGtbMF09ci5kb21haW5bMF0sa1syXT1yLmRvbWFpblsxXSksKHM9YS5nZXRGcm9tSWQodCxwLl9kaWFnW2xdWzFdKSkmJihUWzFdPXMuX3JsWzBdLFRbM109cy5fcmxbMV0sa1sxXT1zLmRvbWFpblswXSxrWzNdPXMuZG9tYWluWzFdKX12YXIgQT10Ll9jb250ZXh0LnBsb3RHbFBpeGVsUmF0aW8sTT1oLmwqQSxTPWguYipBLEU9aC53KkEsTD1oLmgqQTt3LnZpZXdwb3J0PVtNLFMsRStNLEwrU10sITA9PT1tLm1hdHJpeCYmKG0ubWF0cml4PW4oeSkpO3ZhciBDPWYuY2xpY2ttb2RlLmluZGV4T2YoInNlbGVjdCIpPi0xLFA9ITA7aWYobyh4KXx8ISFwLnNlbGVjdGVkcG9pbnRzfHxDKXt2YXIgST1wLl9sZW5ndGg7aWYocC5zZWxlY3RlZHBvaW50cyl7bS5zZWxlY3RCYXRjaD1wLnNlbGVjdGVkcG9pbnRzO3ZhciBPPXAuc2VsZWN0ZWRwb2ludHMsej17fTtmb3IobD0wO2w8Ty5sZW5ndGg7bCsrKXpbT1tsXV09ITA7dmFyIEQ9W107Zm9yKGw9MDtsPEk7bCsrKXpbbF18fEQucHVzaChsKTttLnVuc2VsZWN0QmF0Y2g9RH12YXIgUj1kLnhweD1uZXcgQXJyYXkoXyksRj1kLnlweD1uZXcgQXJyYXkoXyk7Zm9yKHU9MDt1PGIubGVuZ3RoO3UrKyl7aWYobD1iW3VdLHI9YS5nZXRGcm9tSWQodCxwLl9kaWFnW2xdWzBdKSlmb3IoUlt1XT1uZXcgQXJyYXkoSSksYz0wO2M8STtjKyspUlt1XVtjXT1yLmMycCh2W3VdW2NdKTtpZihzPWEuZ2V0RnJvbUlkKHQscC5fZGlhZ1tsXVsxXSkpZm9yKEZbdV09bmV3IEFycmF5KEkpLGM9MDtjPEk7YysrKUZbdV1bY109cy5jMnAodlt1XVtjXSl9aWYobS5zZWxlY3RCYXRjaC5sZW5ndGh8fG0udW5zZWxlY3RCYXRjaC5sZW5ndGgpe3ZhciBCPWkuZXh0ZW5kRmxhdCh7fSxnLG0udW5zZWxlY3RlZE9wdGlvbnMsdyksTj1pLmV4dGVuZEZsYXQoe30sZyxtLnNlbGVjdGVkT3B0aW9ucyx3KTttLm1hdHJpeC51cGRhdGUoQixOKSxQPSExfX1lbHNlIGQueHB4PWQueXB4PW51bGw7aWYoUCl7dmFyIGo9aS5leHRlbmRGbGF0KHt9LGcsdyk7bS5tYXRyaXgudXBkYXRlKGosbnVsbCl9fX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe2lmKHIubGVuZ3RoKWZvcih2YXIgbj0wO248ci5sZW5ndGg7bisrKXModCxyW25dWzBdKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmFnZWxlbWVudC9oZWxwZXJzIjo2NTcsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19pZHMiOjgzMSwicmVnbC1zcGxvbSI6NTE1fV0sMTI5NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10Ll9mdWxsTGF5b3V0LGk9ZS51aWQsYT1yLl9zcGxvbVNjZW5lczthfHwoYT1yLl9zcGxvbVNjZW5lcz17fSk7dmFyIG89e2RpcnR5OiEwLHNlbGVjdEJhdGNoOltdLHVuc2VsZWN0QmF0Y2g6W119LHM9YVtlLnVpZF07cmV0dXJuIHN8fCgocz1hW2ldPW4uZXh0ZW5kRmxhdCh7fSxvLHttYXRyaXg6ITEsc2VsZWN0QmF0Y2g6W10sdW5zZWxlY3RCYXRjaDpbXX0pKS5kcmF3PWZ1bmN0aW9uKCl7cy5tYXRyaXgmJnMubWF0cml4LmRyYXcmJihzLnNlbGVjdEJhdGNoLmxlbmd0aHx8cy51bnNlbGVjdEJhdGNoLmxlbmd0aD9zLm1hdHJpeC5kcmF3KHMudW5zZWxlY3RCYXRjaCxzLnNlbGVjdEJhdGNoKTpzLm1hdHJpeC5kcmF3KCkpLHMuZGlydHk9ITF9LHMuZGVzdHJveT1mdW5jdGlvbigpe3MubWF0cml4JiZzLm1hdHJpeC5kZXN0cm95JiZzLm1hdHJpeC5kZXN0cm95KCkscy5tYXRyaXhPcHRpb25zPW51bGwscy5zZWxlY3RCYXRjaD1udWxsLHMudW5zZWxlY3RCYXRjaD1udWxsLHM9bnVsbH0pLHMuZGlydHl8fG4uZXh0ZW5kRmxhdChzLG8pLHN9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sMTI5NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uL3NjYXR0ZXIvc3VidHlwZXMiKSxhPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPXQuY2Qsbz1yWzBdLnRyYWNlLHM9clswXS50LGw9dC5zY2VuZSxjPWwubWF0cml4T3B0aW9ucy5jZGF0YSx1PXQueGF4aXMsZj10LnlheGlzLGg9W107aWYoIWwpcmV0dXJuIGg7dmFyIHA9IWkuaGFzTWFya2VycyhvKSYmIWkuaGFzVGV4dChvKTtpZighMCE9PW8udmlzaWJsZXx8cClyZXR1cm4gaDt2YXIgZD1hLmdldERpbUluZGV4KG8sdSksbT1hLmdldERpbUluZGV4KG8sZik7aWYoITE9PT1kfHwhMT09PW0pcmV0dXJuIGg7dmFyIGc9cy54cHhbZF0sdj1zLnlweFttXSx5PWNbZF0seD1jW21dLGI9W10sXz1bXTtpZighMSE9PWUmJiFlLmRlZ2VuZXJhdGUpZm9yKHZhciB3PTA7dzx5Lmxlbmd0aDt3KyspZS5jb250YWlucyhbZ1t3XSx2W3ddXSxudWxsLHcsdCk/KGIucHVzaCh3KSxoLnB1c2goe3BvaW50TnVtYmVyOncseDp5W3ddLHk6eFt3XX0pKTpfLnB1c2godyk7dmFyIFQ9bC5tYXRyaXhPcHRpb25zO3JldHVybiBiLmxlbmd0aHx8Xy5sZW5ndGg/bC5zZWxlY3RCYXRjaC5sZW5ndGh8fGwudW5zZWxlY3RCYXRjaC5sZW5ndGh8fGwubWF0cml4LnVwZGF0ZShsLnVuc2VsZWN0ZWRPcHRpb25zLG4uZXh0ZW5kRmxhdCh7fSxULGwuc2VsZWN0ZWRPcHRpb25zLGwudmlld09wdHMpKTpsLm1hdHJpeC51cGRhdGUoVCxudWxsKSxsLnNlbGVjdEJhdGNoPWIsbC51bnNlbGVjdEJhdGNoPV8saH19LHsiLi4vLi4vbGliIjo3NzYsIi4uL3NjYXR0ZXIvc3VidHlwZXMiOjEyMTYsIi4vaGVscGVycyI6MTI5Mn1dLDEyOTg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIikuYXhpc0hvdmVyRm9ybWF0LGE9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxvPXQoIi4uL21lc2gzZC9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxjPXt4Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYytjbGVhckF4aXNUeXBlcyJ9LHk6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjK2NsZWFyQXhpc1R5cGVzIn0sejp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMrY2xlYXJBeGlzVHlwZXMifSx1Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHY6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0sdzp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxzdGFydHM6e3g6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGVkaXRUeXBlOiJjYWxjIn0seTp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSx6Ont2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sbWF4ZGlzcGxheWVkOnt2YWxUeXBlOiJpbnRlZ2VyIixtaW46MCxkZmx0OjFlMyxlZGl0VHlwZToiY2FsYyJ9LHNpemVyZWY6e3ZhbFR5cGU6Im51bWJlciIsZWRpdFR5cGU6ImNhbGMiLG1pbjowLGRmbHQ6MX0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0saG92ZXJ0ZXh0Ont2YWxUeXBlOiJzdHJpbmciLGRmbHQ6IiIsZWRpdFR5cGU6ImNhbGMifSxob3ZlcnRlbXBsYXRlOmEoe2VkaXRUeXBlOiJjYWxjIn0se2tleXM6WyJ0dWJleCIsInR1YmV5IiwidHViZXoiLCJ0dWJldSIsInR1YmV2IiwidHViZXciLCJub3JtIiwiZGl2ZXJnZW5jZSJdfSksdWhvdmVyZm9ybWF0OmkoInUiLDEpLHZob3ZlcmZvcm1hdDppKCJ2IiwxKSx3aG92ZXJmb3JtYXQ6aSgidyIsMSkseGhvdmVyZm9ybWF0OmkoIngiKSx5aG92ZXJmb3JtYXQ6aSgieSIpLHpob3ZlcmZvcm1hdDppKCJ6Iiksc2hvd2xlZ2VuZDpsKHt9LHMuc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfTtsKGMsbigiIix7Y29sb3JBdHRyOiJ1L3YvdyBub3JtIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkpO1sib3BhY2l0eSIsImxpZ2h0cG9zaXRpb24iLCJsaWdodGluZyJdLmZvckVhY2goKGZ1bmN0aW9uKHQpe2NbdF09b1t0XX0pKSxjLmhvdmVyaW5mbz1sKHt9LHMuaG92ZXJpbmZvLHtlZGl0VHlwZToiY2FsYyIsZmxhZ3M6WyJ4IiwieSIsInoiLCJ1IiwidiIsInciLCJub3JtIiwiZGl2ZXJnZW5jZSIsInRleHQiLCJuYW1lIl0sZGZsdDoieCt5K3orbm9ybSt0ZXh0K25hbWUifSksYy50cmFuc2Zvcm1zPXZvaWQgMCxlLmV4cG9ydHM9Y30seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiOjgzMCwiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyI6ODk5LCIuLi9tZXNoM2QvYXR0cmlidXRlcyI6MTEzMn1dLDEyOTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyIpO2Z1bmN0aW9uIGEodCl7dmFyIGUscixpLGEscyxsLGMsdSxmLGgscCxkLG09dC5feCxnPXQuX3ksdj10Ll96LHk9dC5fbGVuLHg9LTEvMCxiPTEvMCxfPS0xLzAsdz0xLzAsVD0tMS8wLGs9MS8wLEE9IiI7Zm9yKHkmJihjPW1bMF0sZj1nWzBdLHA9dlswXSkseT4xJiYodT1tW3ktMV0saD1nW3ktMV0sZD12W3ktMV0pLGU9MDtlPHk7ZSsrKXg9TWF0aC5tYXgoeCxtW2VdKSxiPU1hdGgubWluKGIsbVtlXSksXz1NYXRoLm1heChfLGdbZV0pLHc9TWF0aC5taW4odyxnW2VdKSxUPU1hdGgubWF4KFQsdltlXSksaz1NYXRoLm1pbihrLHZbZV0pLGF8fG1bZV09PT1jfHwoYT0hMCxBKz0ieCIpLHN8fGdbZV09PT1mfHwocz0hMCxBKz0ieSIpLGx8fHZbZV09PT1wfHwobD0hMCxBKz0ieiIpO2F8fChBKz0ieCIpLHN8fChBKz0ieSIpLGx8fChBKz0ieiIpO3ZhciBNPW8odC5feCksUz1vKHQuX3kpLEU9byh0Ll96KTtBPShBPShBPUEucmVwbGFjZSgieCIsKGM+dT8iLSI6IisiKSsieCIpKS5yZXBsYWNlKCJ5IiwoZj5oPyItIjoiKyIpKyJ5IikpLnJlcGxhY2UoInoiLChwPmQ/Ii0iOiIrIikrInoiKTt2YXIgTD1mdW5jdGlvbigpe3k9MCxNPVtdLFM9W10sRT1bXX07KCF5fHx5PE0ubGVuZ3RoKlMubGVuZ3RoKkUubGVuZ3RoKSYmTCgpO3ZhciBDPWZ1bmN0aW9uKHQpe3JldHVybiJ4Ij09PXQ/bToieSI9PT10P2c6dn0sUD1mdW5jdGlvbih0KXtyZXR1cm4ieCI9PT10P006InkiPT09dD9TOkV9LEk9ZnVuY3Rpb24odCl7cmV0dXJuIHRbeS0xXTx0WzBdPy0xOjF9LE89QyhBWzFdKSx6PUMoQVszXSksRD1DKEFbNV0pLFI9UChBWzFdKS5sZW5ndGgsRj1QKEFbM10pLmxlbmd0aCxCPVAoQVs1XSkubGVuZ3RoLE49ITEsaj1mdW5jdGlvbih0LGUscil7cmV0dXJuIFIqKEYqdCtlKStyfSxVPUkoQyhBWzFdKSksVj1JKEMoQVszXSkpLEg9SShDKEFbNV0pKTtmb3IoZT0wO2U8Qi0xO2UrKyl7Zm9yKHI9MDtyPEYtMTtyKyspe2ZvcihpPTA7aTxSLTE7aSsrKXt2YXIgcT1qKGUscixpKSxHPWooZSxyLGkrMSksWT1qKGUscisxLGkpLFc9aihlKzEscixpKTtpZihPW3FdKlU8T1tHXSpVJiZ6W3FdKlY8eltZXSpWJiZEW3FdKkg8RFtXXSpIfHwoTj0hMCksTilicmVha31pZihOKWJyZWFrfWlmKE4pYnJlYWt9cmV0dXJuIE4mJihuLndhcm4oIkVuY291bnRlcmVkIGFyYml0cmFyeSBjb29yZGluYXRlcyEgVW5hYmxlIHRvIGlucHV0IGRhdGEgZ3JpZC4iKSxMKCkpLHt4TWluOmIseU1pbjp3LHpNaW46ayx4TWF4OngseU1heDpfLHpNYXg6VCxYczpNLFlzOlMsWnM6RSxsZW46eSxmaWxsOkF9fWZ1bmN0aW9uIG8odCl7cmV0dXJuIG4uZGlzdGluY3RWYWxzKHQpLnZhbHN9ZnVuY3Rpb24gcyh0LGUpe2lmKHZvaWQgMD09PWUmJihlPXQubGVuZ3RoKSxuLmlzVHlwZWRBcnJheSh0KSlyZXR1cm4gdC5zdWJhcnJheSgwLGUpO2Zvcih2YXIgcj1bXSxpPTA7aTxlO2krKylyW2ldPSt0W2ldO3JldHVybiByfWUuZXhwb3J0cz17Y2FsYzpmdW5jdGlvbih0LGUpe2UuX2xlbj1NYXRoLm1pbihlLnUubGVuZ3RoLGUudi5sZW5ndGgsZS53Lmxlbmd0aCxlLngubGVuZ3RoLGUueS5sZW5ndGgsZS56Lmxlbmd0aCksZS5fdT1zKGUudSxlLl9sZW4pLGUuX3Y9cyhlLnYsZS5fbGVuKSxlLl93PXMoZS53LGUuX2xlbiksZS5feD1zKGUueCxlLl9sZW4pLGUuX3k9cyhlLnksZS5fbGVuKSxlLl96PXMoZS56LGUuX2xlbik7dmFyIHI9YShlKTtlLl9ncmlkRmlsbD1yLmZpbGwsZS5fWHM9ci5YcyxlLl9Zcz1yLllzLGUuX1pzPXIuWnMsZS5fbGVuPXIubGVuO3ZhciBuLG8sbCxjPTA7ZS5zdGFydHMmJihuPXMoZS5zdGFydHMueHx8W10pLG89cyhlLnN0YXJ0cy55fHxbXSksbD1zKGUuc3RhcnRzLnp8fFtdKSxjPU1hdGgubWluKG4ubGVuZ3RoLG8ubGVuZ3RoLGwubGVuZ3RoKSksZS5fc3RhcnRzWD1ufHxbXSxlLl9zdGFydHNZPW98fFtdLGUuX3N0YXJ0c1o9bHx8W107dmFyIHUsZj0wLGg9MS8wO2Zvcih1PTA7dTxlLl9sZW47dSsrKXt2YXIgcD1lLl91W3VdLGQ9ZS5fdlt1XSxtPWUuX3dbdV0sZz1NYXRoLnNxcnQocCpwK2QqZCttKm0pO2Y9TWF0aC5tYXgoZixnKSxoPU1hdGgubWluKGgsZyl9Zm9yKGkodCxlLHt2YWxzOltoLGZdLGNvbnRhaW5lclN0cjoiIixjTGV0dGVyOiJjIn0pLHU9MDt1PGM7dSsrKXt2YXIgdj1uW3VdO3IueE1heD1NYXRoLm1heChyLnhNYXgsdiksci54TWluPU1hdGgubWluKHIueE1pbix2KTt2YXIgeT1vW3VdO3IueU1heD1NYXRoLm1heChyLnlNYXgseSksci55TWluPU1hdGgubWluKHIueU1pbix5KTt2YXIgeD1sW3VdO3Iuek1heD1NYXRoLm1heChyLnpNYXgseCksci56TWluPU1hdGgubWluKHIuek1pbix4KX1lLl9zbGVuPWMsZS5fbm9ybU1heD1mLGUuX3hibmRzPVtyLnhNaW4sci54TWF4XSxlLl95Ym5kcz1bci55TWluLHIueU1heF0sZS5femJuZHM9W3Iuek1pbixyLnpNYXhdfSxmaWx0ZXI6cyxwcm9jZXNzR3JpZDphfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6NjQ3LCIuLi8uLi9saWIiOjc3Nn1dLDEzMDA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZ2wtc3RyZWFtdHViZTNkIiksaT1uLmNyZWF0ZVR1YmVNZXNoLGE9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIikucGFyc2VDb2xvclNjYWxlLHM9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIikuZXh0cmFjdE9wdHMsbD10KCIuLi8uLi9wbG90cy9nbDNkL3ppcDMiKSxjPXt4YXhpczowLHlheGlzOjEsemF4aXM6Mn07ZnVuY3Rpb24gdSh0LGUpe3RoaXMuc2NlbmU9dCx0aGlzLnVpZD1lLHRoaXMubWVzaD1udWxsLHRoaXMuZGF0YT1udWxsfXZhciBmPXUucHJvdG90eXBlO2Z1bmN0aW9uIGgodCl7dmFyIGU9dC5sZW5ndGg7cmV0dXJuIGU+Mj90LnNsaWNlKDEsZS0xKToyPT09ZT9bKHRbMF0rdFsxXSkvMl06dH1mdW5jdGlvbiBwKHQpe3ZhciBlPXQubGVuZ3RoO3JldHVybiAxPT09ZT9bLjUsLjVdOlt0WzFdLXRbMF0sdFtlLTFdLXRbZS0yXV19ZnVuY3Rpb24gZCh0LGUpe3ZhciByPXQuZnVsbFNjZW5lTGF5b3V0LGk9dC5kYXRhU2NhbGUsdT1lLl9sZW4sZj17fTtmdW5jdGlvbiBkKHQsZSl7dmFyIG49cltlXSxvPWlbY1tlXV07cmV0dXJuIGEuc2ltcGxlTWFwKHQsKGZ1bmN0aW9uKHQpe3JldHVybiBuLmQybCh0KSpvfSkpfWlmKGYudmVjdG9ycz1sKGQoZS5fdSwieGF4aXMiKSxkKGUuX3YsInlheGlzIiksZChlLl93LCJ6YXhpcyIpLHUpLCF1KXJldHVybntwb3NpdGlvbnM6W10sY2VsbHM6W119O3ZhciBtPWQoZS5fWHMsInhheGlzIiksZz1kKGUuX1lzLCJ5YXhpcyIpLHY9ZChlLl9acywiemF4aXMiKTtpZihmLm1lc2hncmlkPVttLGcsdl0sZi5ncmlkRmlsbD1lLl9ncmlkRmlsbCxlLl9zbGVuKWYuc3RhcnRpbmdQb3NpdGlvbnM9bChkKGUuX3N0YXJ0c1gsInhheGlzIiksZChlLl9zdGFydHNZLCJ5YXhpcyIpLGQoZS5fc3RhcnRzWiwiemF4aXMiKSk7ZWxzZXtmb3IodmFyIHk9Z1swXSx4PWgobSksYj1oKHYpLF89bmV3IEFycmF5KHgubGVuZ3RoKmIubGVuZ3RoKSx3PTAsVD0wO1Q8eC5sZW5ndGg7VCsrKWZvcih2YXIgaz0wO2s8Yi5sZW5ndGg7aysrKV9bdysrXT1beFtUXSx5LGJba11dO2Yuc3RhcnRpbmdQb3NpdGlvbnM9X31mLmNvbG9ybWFwPW8oZSksZi50dWJlU2l6ZT1lLnNpemVyZWYsZi5tYXhMZW5ndGg9ZS5tYXhkaXNwbGF5ZWQ7dmFyIEE9ZChlLl94Ym5kcywieGF4aXMiKSxNPWQoZS5feWJuZHMsInlheGlzIiksUz1kKGUuX3pibmRzLCJ6YXhpcyIpLEU9cChtKSxMPXAoZyksQz1wKHYpLFA9W1tBWzBdLUVbMF0sTVswXS1MWzBdLFNbMF0tQ1swXV0sW0FbMV0rRVsxXSxNWzFdK0xbMV0sU1sxXStDWzFdXV0sST1uKGYsUCksTz1zKGUpO0kudmVydGV4SW50ZW5zaXR5Qm91bmRzPVtPLm1pbi9lLl9ub3JtTWF4LE8ubWF4L2UuX25vcm1NYXhdO3ZhciB6PWUubGlnaHRwb3NpdGlvbjtyZXR1cm4gSS5saWdodFBvc2l0aW9uPVt6Lngsei55LHouel0sSS5hbWJpZW50PWUubGlnaHRpbmcuYW1iaWVudCxJLmRpZmZ1c2U9ZS5saWdodGluZy5kaWZmdXNlLEkuc3BlY3VsYXI9ZS5saWdodGluZy5zcGVjdWxhcixJLnJvdWdobmVzcz1lLmxpZ2h0aW5nLnJvdWdobmVzcyxJLmZyZXNuZWw9ZS5saWdodGluZy5mcmVzbmVsLEkub3BhY2l0eT1lLm9wYWNpdHksZS5fcGFkPUkudHViZVNjYWxlKmUuc2l6ZXJlZioyLEl9Zi5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2NlbmUuZnVsbFNjZW5lTGF5b3V0LHI9dGhpcy5zY2VuZS5kYXRhU2NhbGU7ZnVuY3Rpb24gbih0LG4pe3ZhciBpPWVbbl0sYT1yW2Nbbl1dO3JldHVybiBpLmwyYyh0KS9hfWlmKHQub2JqZWN0PT09dGhpcy5tZXNoKXt2YXIgaT10LmRhdGEucG9zaXRpb24sYT10LmRhdGEudmVsb2NpdHk7cmV0dXJuIHQudHJhY2VDb29yZGluYXRlPVtuKGlbMF0sInhheGlzIiksbihpWzFdLCJ5YXhpcyIpLG4oaVsyXSwiemF4aXMiKSxuKGFbMF0sInhheGlzIiksbihhWzFdLCJ5YXhpcyIpLG4oYVsyXSwiemF4aXMiKSx0LmRhdGEuaW50ZW5zaXR5KnRoaXMuZGF0YS5fbm9ybU1heCx0LmRhdGEuZGl2ZXJnZW5jZV0sdC50ZXh0TGFiZWw9dGhpcy5kYXRhLmhvdmVydGV4dHx8dGhpcy5kYXRhLnRleHQsITB9fSxmLnVwZGF0ZT1mdW5jdGlvbih0KXt0aGlzLmRhdGE9dDt2YXIgZT1kKHRoaXMuc2NlbmUsdCk7dGhpcy5tZXNoLnVwZGF0ZShlKX0sZi5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMubWVzaCksdGhpcy5tZXNoLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbHBsb3QuZ2wsbj1kKHQsZSksYT1pKHIsbiksbz1uZXcgdSh0LGUudWlkKTtyZXR1cm4gby5tZXNoPWEsby5kYXRhPWUsYS5fdHJhY2U9byx0LmdscGxvdC5hZGQoYSksb319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2NTEsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIjo3NzIsIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyI6ODgwLCJnbC1zdHJlYW10dWJlM2QiOjMzNH1dLDEzMDE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiKSxhPXQoIi4vYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvKXtmdW5jdGlvbiBzKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxhLHIsaSl9dmFyIGw9cygidSIpLGM9cygidiIpLHU9cygidyIpLGY9cygieCIpLGg9cygieSIpLHA9cygieiIpO2wmJmwubGVuZ3RoJiZjJiZjLmxlbmd0aCYmdSYmdS5sZW5ndGgmJmYmJmYubGVuZ3RoJiZoJiZoLmxlbmd0aCYmcCYmcC5sZW5ndGg/KHMoInN0YXJ0cy54Iikscygic3RhcnRzLnkiKSxzKCJzdGFydHMueiIpLHMoIm1heGRpc3BsYXllZCIpLHMoInNpemVyZWYiKSxzKCJsaWdodGluZy5hbWJpZW50IikscygibGlnaHRpbmcuZGlmZnVzZSIpLHMoImxpZ2h0aW5nLnNwZWN1bGFyIikscygibGlnaHRpbmcucm91Z2huZXNzIikscygibGlnaHRpbmcuZnJlc25lbCIpLHMoImxpZ2h0cG9zaXRpb24ueCIpLHMoImxpZ2h0cG9zaXRpb24ueSIpLHMoImxpZ2h0cG9zaXRpb24ueiIpLGkodCxlLG8scyx7cHJlZml4OiIiLGNMZXR0ZXI6ImMifSkscygidGV4dCIpLHMoImhvdmVydGV4dCIpLHMoImhvdmVydGVtcGxhdGUiKSxzKCJ1aG92ZXJmb3JtYXQiKSxzKCJ2aG92ZXJmb3JtYXQiKSxzKCJ3aG92ZXJmb3JtYXQiKSxzKCJ4aG92ZXJmb3JtYXQiKSxzKCJ5aG92ZXJmb3JtYXQiKSxzKCJ6aG92ZXJmb3JtYXQiKSxlLl9sZW5ndGg9bnVsbCk6ZS52aXNpYmxlPSExfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvZGVmYXVsdHMiOjY0OSwiLi4vLi4vbGliIjo3NzYsIi4vYXR0cmlidXRlcyI6MTI5OH1dLDEzMDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToic3RyZWFtdHViZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwic2hvd0xlZ2VuZCJdLGF0dHJpYnV0ZXM6dCgiLi9hdHRyaWJ1dGVzIiksc3VwcGx5RGVmYXVsdHM6dCgiLi9kZWZhdWx0cyIpLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LGNhbGM6dCgiLi9jYWxjIikuY2FsYyxwbG90OnQoIi4vY29udmVydCIpLGV2ZW50RGF0YTpmdW5jdGlvbih0LGUpe3JldHVybiB0LnR1YmV4PXQueCx0LnR1YmV5PXQueSx0LnR1YmV6PXQueix0LnR1YmV1PWUudHJhY2VDb29yZGluYXRlWzNdLHQudHViZXY9ZS50cmFjZUNvb3JkaW5hdGVbNF0sdC50dWJldz1lLnRyYWNlQ29vcmRpbmF0ZVs1XSx0Lm5vcm09ZS50cmFjZUNvb3JkaW5hdGVbNl0sdC5kaXZlcmdlbmNlPWUudHJhY2VDb29yZGluYXRlWzddLGRlbGV0ZSB0LngsZGVsZXRlIHQueSxkZWxldGUgdC56LHR9LG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjg2OSwiLi9hdHRyaWJ1dGVzIjoxMjk4LCIuL2NhbGMiOjEyOTksIi4vY29udmVydCI6MTMwMCwiLi9kZWZhdWx0cyI6MTMwMX1dLDEzMDM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vcGxvdHMvdGVtcGxhdGVfYXR0cmlidXRlcyIpLmhvdmVydGVtcGxhdGVBdHRycyxhPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS50ZXh0dGVtcGxhdGVBdHRycyxvPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIikscz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5hdHRyaWJ1dGVzLGw9dCgiLi4vcGllL2F0dHJpYnV0ZXMiKSxjPXQoIi4vY29uc3RhbnRzIiksdT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdDtlLmV4cG9ydHM9e2xhYmVsczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxwYXJlbnRzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LHZhbHVlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZWRpdFR5cGU6ImNhbGMifSxicmFuY2h2YWx1ZXM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInJlbWFpbmRlciIsInRvdGFsIl0sZGZsdDoicmVtYWluZGVyIixlZGl0VHlwZToiY2FsYyJ9LGNvdW50Ont2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJicmFuY2hlcyIsImxlYXZlcyJdLGRmbHQ6ImxlYXZlcyIsZWRpdFR5cGU6ImNhbGMifSxsZXZlbDp7dmFsVHlwZToiYW55IixlZGl0VHlwZToicGxvdCIsYW5pbTohMH0sbWF4ZGVwdGg6e3ZhbFR5cGU6ImludGVnZXIiLGVkaXRUeXBlOiJwbG90IixkZmx0Oi0xfSxtYXJrZXI6dSh7Y29sb3JzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixlZGl0VHlwZToiY2FsYyJ9LGxpbmU6e2NvbG9yOnUoe30sbC5tYXJrZXIubGluZS5jb2xvcix7ZGZsdDpudWxsfSksd2lkdGg6dSh7fSxsLm1hcmtlci5saW5lLndpZHRoLHtkZmx0OjF9KSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sbygibWFya2VyIix7Y29sb3JBdHRyOiJjb2xvcnMiLGFuaW06ITF9KSksbGVhZjp7b3BhY2l0eTp7dmFsVHlwZToibnVtYmVyIixlZGl0VHlwZToic3R5bGUiLG1pbjowLG1heDoxfSxlZGl0VHlwZToicGxvdCJ9LHRleHQ6bC50ZXh0LHRleHRpbmZvOnt2YWxUeXBlOiJmbGFnbGlzdCIsZmxhZ3M6WyJsYWJlbCIsInRleHQiLCJ2YWx1ZSIsImN1cnJlbnQgcGF0aCIsInBlcmNlbnQgcm9vdCIsInBlcmNlbnQgZW50cnkiLCJwZXJjZW50IHBhcmVudCJdLGV4dHJhczpbIm5vbmUiXSxlZGl0VHlwZToicGxvdCJ9LHRleHR0ZW1wbGF0ZTphKHtlZGl0VHlwZToicGxvdCJ9LHtrZXlzOmMuZXZlbnREYXRhS2V5cy5jb25jYXQoWyJsYWJlbCIsInZhbHVlIl0pfSksaG92ZXJ0ZXh0OmwuaG92ZXJ0ZXh0LGhvdmVyaW5mbzp1KHt9LG4uaG92ZXJpbmZvLHtmbGFnczpbImxhYmVsIiwidGV4dCIsInZhbHVlIiwibmFtZSIsImN1cnJlbnQgcGF0aCIsInBlcmNlbnQgcm9vdCIsInBlcmNlbnQgZW50cnkiLCJwZXJjZW50IHBhcmVudCJdLGRmbHQ6ImxhYmVsK3RleHQrdmFsdWUrbmFtZSJ9KSxob3ZlcnRlbXBsYXRlOmkoe30se2tleXM6Yy5ldmVudERhdGFLZXlzfSksdGV4dGZvbnQ6bC50ZXh0Zm9udCxpbnNpZGV0ZXh0b3JpZW50YXRpb246bC5pbnNpZGV0ZXh0b3JpZW50YXRpb24saW5zaWRldGV4dGZvbnQ6bC5pbnNpZGV0ZXh0Zm9udCxvdXRzaWRldGV4dGZvbnQ6dSh7fSxsLm91dHNpZGV0ZXh0Zm9udCx7fSkscm90YXRpb246e3ZhbFR5cGU6ImFuZ2xlIixkZmx0OjAsZWRpdFR5cGU6InBsb3QifSxzb3J0Omwuc29ydCxyb290Ontjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJjYWxjIixkZmx0OiJyZ2JhKDAsMCwwLDApIn0sZWRpdFR5cGU6ImNhbGMifSxkb21haW46cyh7bmFtZToic3VuYnVyc3QiLHRyYWNlOiEwLGVkaXRUeXBlOiJjYWxjIn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiOjgyMywiLi4vLi4vcGxvdHMvZG9tYWluIjo4NTUsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vcGllL2F0dHJpYnV0ZXMiOjExNjUsIi4vY29uc3RhbnRzIjoxMzA2fV0sMTMwNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0ic3VuYnVyc3QiLHIucGxvdD1mdW5jdGlvbih0LGUsaSxhKXtuLnBsb3RCYXNlUGxvdChyLm5hbWUsdCxlLGksYSl9LHIuY2xlYW49ZnVuY3Rpb24odCxlLGksYSl7bi5jbGVhbkJhc2VQbG90KHIubmFtZSx0LGUsaSxhKX19LHsiLi4vLi4vcGxvdHMvcGxvdHMiOjg5MH1dLDEzMDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiZDMtaGllcmFyY2h5IiksaT10KCJmYXN0LWlzbnVtZXJpYyIpLGE9dCgiLi4vLi4vbGliIiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5tYWtlQ29sb3JTY2FsZUZ1bmNGcm9tVHJhY2Uscz10KCIuLi9waWUvY2FsYyIpLm1ha2VQdWxsQ29sb3JGbixsPXQoIi4uL3BpZS9jYWxjIikuZ2VuZXJhdGVFeHRlbmRlZENvbG9ycyxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLmNhbGMsdT10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQUxNT1NUX0VRVUFMLGY9e30saD17fSxwPXt9O3IuY2FsYz1mdW5jdGlvbih0LGUpe3ZhciByLGwsZixoLHAsZCxtPXQuX2Z1bGxMYXlvdXQsZz1lLmlkcyx2PWEuaXNBcnJheU9yVHlwZWRBcnJheShnKSx5PWUubGFiZWxzLHg9ZS5wYXJlbnRzLGI9ZS52YWx1ZXMsXz1hLmlzQXJyYXlPclR5cGVkQXJyYXkoYiksdz1bXSxUPXt9LGs9e30sQT1mdW5jdGlvbih0KXtyZXR1cm4gdHx8Im51bWJlciI9PXR5cGVvZiB0fSxNPWZ1bmN0aW9uKHQpe3JldHVybiFffHxpKGJbdF0pJiZiW3RdPj0wfTt2PyhyPU1hdGgubWluKGcubGVuZ3RoLHgubGVuZ3RoKSxsPWZ1bmN0aW9uKHQpe3JldHVybiBBKGdbdF0pJiZNKHQpfSxmPWZ1bmN0aW9uKHQpe3JldHVybiBTdHJpbmcoZ1t0XSl9KToocj1NYXRoLm1pbih5Lmxlbmd0aCx4Lmxlbmd0aCksbD1mdW5jdGlvbih0KXtyZXR1cm4gQSh5W3RdKSYmTSh0KX0sZj1mdW5jdGlvbih0KXtyZXR1cm4gU3RyaW5nKHlbdF0pfSksXyYmKHI9TWF0aC5taW4ocixiLmxlbmd0aCkpO2Zvcih2YXIgUz0wO1M8cjtTKyspaWYobChTKSl7dmFyIEU9ZihTKSxMPUEoeFtTXSk/U3RyaW5nKHhbU10pOiIiLEM9e2k6UyxpZDpFLHBpZDpMLGxhYmVsOkEoeVtTXSk/U3RyaW5nKHlbU10pOiIifTtfJiYoQy52PStiW1NdKSx3LnB1c2goQykscD1FLFRbaD1MXT9UW2hdLnB1c2gocCk6VFtoXT1bcF0sa1twXT0xfWlmKFRbIiJdKXtpZihUWyIiXS5sZW5ndGg+MSl7Zm9yKHZhciBQPWEucmFuZHN0cigpLEk9MDtJPHcubGVuZ3RoO0krKykiIj09PXdbSV0ucGlkJiYod1tJXS5waWQ9UCk7dy51bnNoaWZ0KHtoYXNNdWx0aXBsZVJvb3RzOiEwLGlkOlAscGlkOiIiLGxhYmVsOiIifSl9fWVsc2V7dmFyIE8sej1bXTtmb3IoTyBpbiBUKWtbT118fHoucHVzaChPKTtpZigxIT09ei5sZW5ndGgpcmV0dXJuIGEud2FybihbIk11bHRpcGxlIGltcGxpZWQgcm9vdHMsIGNhbm5vdCBidWlsZCIsZS50eXBlLCJoaWVyYXJjaHkgb2YiLGUubmFtZSsiLiIsIlRoZXNlIHJvb3RzIGluY2x1ZGU6Iix6LmpvaW4oIiwgIildLmpvaW4oIiAiKSk7Tz16WzBdLHcudW5zaGlmdCh7aGFzSW1wbGllZFJvb3Q6ITAsaWQ6TyxwaWQ6IiIsbGFiZWw6T30pfXRyeXtkPW4uc3RyYXRpZnkoKS5pZCgoZnVuY3Rpb24odCl7cmV0dXJuIHQuaWR9KSkucGFyZW50SWQoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnBpZH0pKSh3KX1jYXRjaCh0KXtyZXR1cm4gYS53YXJuKFsiRmFpbGVkIHRvIGJ1aWxkIixlLnR5cGUsImhpZXJhcmNoeSBvZiIsZS5uYW1lKyIuIiwiRXJyb3I6Iix0Lm1lc3NhZ2VdLmpvaW4oIiAiKSl9dmFyIEQ9bi5oaWVyYXJjaHkoZCksUj0hMTtpZihfKXN3aXRjaChlLmJyYW5jaHZhbHVlcyl7Y2FzZSJyZW1haW5kZXIiOkQuc3VtKChmdW5jdGlvbih0KXtyZXR1cm4gdC5kYXRhLnZ9KSk7YnJlYWs7Y2FzZSJ0b3RhbCI6RC5lYWNoKChmdW5jdGlvbih0KXt2YXIgcj10LmRhdGEuZGF0YSxuPXIudjtpZih0LmNoaWxkcmVuKXt2YXIgaT10LmNoaWxkcmVuLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtlLmRhdGEuZGF0YS52fSksMCk7aWYoKHIuaGFzSW1wbGllZFJvb3R8fHIuaGFzTXVsdGlwbGVSb290cykmJihuPWkpLG48aSp1KXJldHVybiBSPSEwLGEud2FybihbIlRvdGFsIHZhbHVlIGZvciBub2RlIix0LmRhdGEuZGF0YS5pZCwib2YiLGUubmFtZSwiaXMgc21hbGxlciB0aGFuIHRoZSBzdW0gb2YgaXRzIGNoaWxkcmVuLiIsIlxucGFyZW50IHZhbHVlID0iLG4sIlxuY2hpbGRyZW4gc3VtID0iLGldLmpvaW4oIiAiKSl9dC52YWx1ZT1ufSkpfWVsc2UhZnVuY3Rpb24gdChlLHIsbil7dmFyIGk9MCxhPWUuY2hpbGRyZW47aWYoYSl7Zm9yKHZhciBvPWEubGVuZ3RoLHM9MDtzPG87cysrKWkrPXQoYVtzXSxyLG4pO24uYnJhbmNoZXMmJmkrK31lbHNlIG4ubGVhdmVzJiZpKys7ZS52YWx1ZT1lLmRhdGEuZGF0YS52YWx1ZT1pLHIuX3ZhbHVlc3x8KHIuX3ZhbHVlcz1bXSk7cmV0dXJuIHIuX3ZhbHVlc1tlLmRhdGEuZGF0YS5pXT1pLGl9KEQsZSx7YnJhbmNoZXM6LTEhPT1lLmNvdW50LmluZGV4T2YoImJyYW5jaGVzIiksbGVhdmVzOi0xIT09ZS5jb3VudC5pbmRleE9mKCJsZWF2ZXMiKX0pO2lmKCFSKXt2YXIgRixCO2Uuc29ydCYmRC5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiBlLnZhbHVlLXQudmFsdWV9KSk7dmFyIE49ZS5tYXJrZXIuY29sb3JzfHxbXSxqPSEhTi5sZW5ndGg7cmV0dXJuIGUuX2hhc0NvbG9yc2NhbGU/KGp8fChOPV8/ZS52YWx1ZXM6ZS5fdmFsdWVzKSxjKHQsZSx7dmFsczpOLGNvbnRhaW5lclN0cjoibWFya2VyIixjTGV0dGVyOiJjIn0pLEI9byhlLm1hcmtlcikpOkY9cyhtWyJfIitlLnR5cGUrImNvbG9ybWFwIl0pLEQuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9dC5kYXRhLmRhdGE7ci5jb2xvcj1lLl9oYXNDb2xvcnNjYWxlP0IoTltyLmldKTpGKE5bci5pXSxyLmlkKX0pKSx3WzBdLmhpZXJhcmNoeT1ELHd9fSxyLl9ydW5Dcm9zc1RyYWNlQ2FsYz1mdW5jdGlvbih0LGUpe3ZhciByPWUuX2Z1bGxMYXlvdXQsbj1lLmNhbGNkYXRhLGk9clt0KyJjb2xvcndheSJdLGE9clsiXyIrdCsiY29sb3JtYXAiXTtyWyJleHRlbmQiK3QrImNvbG9ycyJdJiYoaT1sKGksImljaWNsZSI9PT10P3A6InRyZWVtYXAiPT09dD9oOmYpKTt2YXIgbyxzPTA7ZnVuY3Rpb24gYyh0KXt2YXIgZT10LmRhdGEuZGF0YSxyPWUuaWQ7ITE9PT1lLmNvbG9yJiYoYVtyXT9lLmNvbG9yPWFbcl06dC5wYXJlbnQ/dC5wYXJlbnQucGFyZW50P2UuY29sb3I9dC5wYXJlbnQuZGF0YS5kYXRhLmNvbG9yOihhW3JdPWUuY29sb3I9aVtzJWkubGVuZ3RoXSxzKyspOmUuY29sb3I9byl9Zm9yKHZhciB1PTA7dTxuLmxlbmd0aDt1Kyspe3ZhciBkPW5bdV1bMF07ZC50cmFjZS50eXBlPT09dCYmZC5oaWVyYXJjaHkmJihvPWQudHJhY2Uucm9vdC5jb2xvcixkLmhpZXJhcmNoeS5lYWNoKGMpKX19LHIuY3Jvc3NUcmFjZUNhbGM9ZnVuY3Rpb24odCl7cmV0dXJuIHIuX3J1bkNyb3NzVHJhY2VDYWxjKCJzdW5idXJzdCIsdCl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi9waWUvY2FsYyI6MTE2NywiZDMtaGllcmFyY2h5IjoxNjMsImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMzA2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Q0xJQ0tfVFJBTlNJVElPTl9USU1FOjc1MCxDTElDS19UUkFOU0lUSU9OX0VBU0lORzoibGluZWFyIixldmVudERhdGFLZXlzOlsiY3VycmVudFBhdGgiLCJyb290IiwiZW50cnkiLCJwZXJjZW50Um9vdCIsInBlcmNlbnRFbnRyeSIsInBlcmNlbnRQYXJlbnQiXX19LHt9XSwxMzA3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxvPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQscz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKSxsPXMuaGFzQ29sb3JzY2FsZSxjPXMuaGFuZGxlRGVmYXVsdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIHUocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX12YXIgZj11KCJsYWJlbHMiKSxoPXUoInBhcmVudHMiKTtpZihmJiZmLmxlbmd0aCYmaCYmaC5sZW5ndGgpe3ZhciBwPXUoInZhbHVlcyIpO3AmJnAubGVuZ3RoP3UoImJyYW5jaHZhbHVlcyIpOnUoImNvdW50IiksdSgibGV2ZWwiKSx1KCJtYXhkZXB0aCIpLHUoIm1hcmtlci5saW5lLndpZHRoIikmJnUoIm1hcmtlci5saW5lLmNvbG9yIixzLnBhcGVyX2JnY29sb3IpLHUoIm1hcmtlci5jb2xvcnMiKTt2YXIgZD1lLl9oYXNDb2xvcnNjYWxlPWwodCwibWFya2VyIiwiY29sb3JzIil8fCh0Lm1hcmtlcnx8e30pLmNvbG9yYXhpcztkJiZjKHQsZSxzLHUse3ByZWZpeDoibWFya2VyLiIsY0xldHRlcjoiYyJ9KSx1KCJsZWFmLm9wYWNpdHkiLGQ/MTouNyk7dmFyIG09dSgidGV4dCIpO3UoInRleHR0ZW1wbGF0ZSIpLGUudGV4dHRlbXBsYXRlfHx1KCJ0ZXh0aW5mbyIsQXJyYXkuaXNBcnJheShtKT8idGV4dCtsYWJlbCI6ImxhYmVsIiksdSgiaG92ZXJ0ZXh0IiksdSgiaG92ZXJ0ZW1wbGF0ZSIpO28odCxlLHMsdSwiYXV0byIse21vZHVsZUhhc1NlbGVjdGVkOiExLG1vZHVsZUhhc1Vuc2VsZWN0ZWQ6ITEsbW9kdWxlSGFzQ29uc3RyYWluOiExLG1vZHVsZUhhc0NsaXBvbmF4aXM6ITEsbW9kdWxlSGFzVGV4dGFuZ2xlOiExLG1vZHVsZUhhc0luc2lkZWFuY2hvcjohMX0pLHUoImluc2lkZXRleHRvcmllbnRhdGlvbiIpLHUoInNvcnQiKSx1KCJyb3RhdGlvbiIpLHUoInJvb3QuY29sb3IiKSxhKGUscyx1KSxlLl9sZW5ndGg9bnVsbH1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlIjo2NTEsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9kb21haW4iOjg1NSwiLi4vYmFyL2RlZmF1bHRzIjo5MTgsIi4vYXR0cmlidXRlcyI6MTMwM31dLDEzMDg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vcmVnaXN0cnkiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyIpLmFwcGVuZEFycmF5UG9pbnRWYWx1ZSxvPXQoIi4uLy4uL2NvbXBvbmVudHMvZngiKSxzPXQoIi4uLy4uL2xpYiIpLGw9dCgiLi4vLi4vbGliL2V2ZW50cyIpLGM9dCgiLi9oZWxwZXJzIiksdT10KCIuLi9waWUvaGVscGVycyIpLmZvcm1hdFBpZVZhbHVlO2Z1bmN0aW9uIGYodCxlLHIpe2Zvcih2YXIgbj10LmRhdGEuZGF0YSxpPXtjdXJ2ZU51bWJlcjplLmluZGV4LHBvaW50TnVtYmVyOm4uaSxkYXRhOmUuX2lucHV0LGZ1bGxEYXRhOmV9LG89MDtvPHIubGVuZ3RoO28rKyl7dmFyIHM9cltvXTtzIGluIHQmJihpW3NdPXRbc10pfXJldHVybiJwYXJlbnRTdHJpbmciaW4gdCYmIWMuaXNIaWVyYXJjaHlSb290KHQpJiYoaS5wYXJlbnQ9dC5wYXJlbnRTdHJpbmcpLGEoaSxlLG4uaSksaX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSxoKXt2YXIgcD1hWzBdLGQ9cC50cmFjZSxtPXAuaGllcmFyY2h5LGc9InN1bmJ1cnN0Ij09PWQudHlwZSx2PSJ0cmVlbWFwIj09PWQudHlwZXx8ImljaWNsZSI9PT1kLnR5cGU7Il9oYXNIb3ZlckxhYmVsImluIGR8fChkLl9oYXNIb3ZlckxhYmVsPSExKSwiX2hhc0hvdmVyRXZlbnQiaW4gZHx8KGQuX2hhc0hvdmVyRXZlbnQ9ITEpO3Qub24oIm1vdXNlb3ZlciIsKGZ1bmN0aW9uKGkpe3ZhciBhPXIuX2Z1bGxMYXlvdXQ7aWYoIXIuX2RyYWdnaW5nJiYhMSE9PWEuaG92ZXJtb2RlKXt2YXIgbCx5PXIuX2Z1bGxEYXRhW2QuaW5kZXhdLHg9aS5kYXRhLmRhdGEsYj14LmksXz1jLmlzSGllcmFyY2h5Um9vdChpKSx3PWMuZ2V0UGFyZW50KG0saSksVD1jLmdldFZhbHVlKGkpLGs9ZnVuY3Rpb24odCl7cmV0dXJuIHMuY2FzdE9wdGlvbih5LGIsdCl9LEE9aygiaG92ZXJ0ZW1wbGF0ZSIpLE09by5jYXN0SG92ZXJpbmZvKHksYSxiKSxTPWEuc2VwYXJhdG9ycztpZihBfHxNJiYibm9uZSIhPT1NJiYic2tpcCIhPT1NKXt2YXIgRSxMO2cmJihFPXAuY3graS5weG1pZFswXSooMS1pLnJJbnNjcmliZWQpLEw9cC5jeStpLnB4bWlkWzFdKigxLWkuckluc2NyaWJlZCkpLHYmJihFPWkuX2hvdmVyWCxMPWkuX2hvdmVyWSk7dmFyIEMsUD17fSxJPVtdLE89W10sej1mdW5jdGlvbih0KXtyZXR1cm4tMSE9PUkuaW5kZXhPZih0KX07TSYmKEk9ImFsbCI9PT1NP3kuX21vZHVsZS5hdHRyaWJ1dGVzLmhvdmVyaW5mby5mbGFnczpNLnNwbGl0KCIrIikpLFAubGFiZWw9eC5sYWJlbCx6KCJsYWJlbCIpJiZQLmxhYmVsJiZPLnB1c2goUC5sYWJlbCkseC5oYXNPd25Qcm9wZXJ0eSgidiIpJiYoUC52YWx1ZT14LnYsUC52YWx1ZUxhYmVsPXUoUC52YWx1ZSxTKSx6KCJ2YWx1ZSIpJiZPLnB1c2goUC52YWx1ZUxhYmVsKSksUC5jdXJyZW50UGF0aD1pLmN1cnJlbnRQYXRoPWMuZ2V0UGF0aChpLmRhdGEpLHooImN1cnJlbnQgcGF0aCIpJiYhXyYmTy5wdXNoKFAuY3VycmVudFBhdGgpO3ZhciBEPVtdLFI9ZnVuY3Rpb24oKXstMT09PUQuaW5kZXhPZihDKSYmKE8ucHVzaChDKSxELnB1c2goQykpfTtQLnBlcmNlbnRQYXJlbnQ9aS5wZXJjZW50UGFyZW50PVQvYy5nZXRWYWx1ZSh3KSxQLnBhcmVudD1pLnBhcmVudFN0cmluZz1jLmdldFB0TGFiZWwodykseigicGVyY2VudCBwYXJlbnQiKSYmKEM9Yy5mb3JtYXRQZXJjZW50KFAucGVyY2VudFBhcmVudCxTKSsiIG9mICIrUC5wYXJlbnQsUigpKSxQLnBlcmNlbnRFbnRyeT1pLnBlcmNlbnRFbnRyeT1UL2MuZ2V0VmFsdWUoZSksUC5lbnRyeT1pLmVudHJ5PWMuZ2V0UHRMYWJlbChlKSwheigicGVyY2VudCBlbnRyeSIpfHxffHxpLm9uUGF0aGJhcnx8KEM9Yy5mb3JtYXRQZXJjZW50KFAucGVyY2VudEVudHJ5LFMpKyIgb2YgIitQLmVudHJ5LFIoKSksUC5wZXJjZW50Um9vdD1pLnBlcmNlbnRSb290PVQvYy5nZXRWYWx1ZShtKSxQLnJvb3Q9aS5yb290PWMuZ2V0UHRMYWJlbChtKSx6KCJwZXJjZW50IHJvb3QiKSYmIV8mJihDPWMuZm9ybWF0UGVyY2VudChQLnBlcmNlbnRSb290LFMpKyIgb2YgIitQLnJvb3QsUigpKSxQLnRleHQ9aygiaG92ZXJ0ZXh0Iil8fGsoInRleHQiKSx6KCJ0ZXh0IikmJihDPVAudGV4dCxzLmlzVmFsaWRUZXh0VmFsdWUoQykmJk8ucHVzaChDKSksbD1bZihpLHksaC5ldmVudERhdGFLZXlzKV07dmFyIEY9e3RyYWNlOnkseTpMLF94MDppLl94MCxfeDE6aS5feDEsX3kwOmkuX3kwLF95MTppLl95MSx0ZXh0Ok8uam9pbigiPGJyPiIpLG5hbWU6QXx8eigibmFtZSIpP3kubmFtZTp2b2lkIDAsY29sb3I6aygiaG92ZXJsYWJlbC5iZ2NvbG9yIil8fHguY29sb3IsYm9yZGVyQ29sb3I6aygiaG92ZXJsYWJlbC5ib3JkZXJjb2xvciIpLGZvbnRGYW1pbHk6aygiaG92ZXJsYWJlbC5mb250LmZhbWlseSIpLGZvbnRTaXplOmsoImhvdmVybGFiZWwuZm9udC5zaXplIiksZm9udENvbG9yOmsoImhvdmVybGFiZWwuZm9udC5jb2xvciIpLG5hbWVMZW5ndGg6aygiaG92ZXJsYWJlbC5uYW1lbGVuZ3RoIiksdGV4dEFsaWduOmsoImhvdmVybGFiZWwuYWxpZ24iKSxob3ZlcnRlbXBsYXRlOkEsaG92ZXJ0ZW1wbGF0ZUxhYmVsczpQLGV2ZW50RGF0YTpsfTtnJiYoRi54MD1FLWkuckluc2NyaWJlZCppLnJweDEsRi54MT1FK2kuckluc2NyaWJlZCppLnJweDEsRi5pZGVhbEFsaWduPWkucHhtaWRbMF08MD8ibGVmdCI6InJpZ2h0IiksdiYmKEYueD1FLEYuaWRlYWxBbGlnbj1FPDA/ImxlZnQiOiJyaWdodCIpO3ZhciBCPVtdO28ubG9uZUhvdmVyKEYse2NvbnRhaW5lcjphLl9ob3ZlcmxheWVyLm5vZGUoKSxvdXRlckNvbnRhaW5lcjphLl9wYXBlci5ub2RlKCksZ2Q6cixpbk91dF9iYm94OkJ9KSxsWzBdLmJib3g9QlswXSxkLl9oYXNIb3ZlckxhYmVsPSEwfWlmKHYpe3ZhciBOPXQuc2VsZWN0KCJwYXRoLnN1cmZhY2UiKTtoLnN0eWxlT25lKE4saSx5LHtob3ZlcmVkOiEwfSl9ZC5faGFzSG92ZXJFdmVudD0hMCxyLmVtaXQoInBsb3RseV9ob3ZlciIse3BvaW50czpsfHxbZihpLHksaC5ldmVudERhdGFLZXlzKV0sZXZlbnQ6bi5ldmVudH0pfX0pKSx0Lm9uKCJtb3VzZW91dCIsKGZ1bmN0aW9uKGUpe3ZhciBpPXIuX2Z1bGxMYXlvdXQsYT1yLl9mdWxsRGF0YVtkLmluZGV4XSxzPW4uc2VsZWN0KHRoaXMpLmRhdHVtKCk7aWYoZC5faGFzSG92ZXJFdmVudCYmKGUub3JpZ2luYWxFdmVudD1uLmV2ZW50LHIuZW1pdCgicGxvdGx5X3VuaG92ZXIiLHtwb2ludHM6W2YocyxhLGguZXZlbnREYXRhS2V5cyldLGV2ZW50Om4uZXZlbnR9KSxkLl9oYXNIb3ZlckV2ZW50PSExKSxkLl9oYXNIb3ZlckxhYmVsJiYoby5sb25lVW5ob3ZlcihpLl9ob3ZlcmxheWVyLm5vZGUoKSksZC5faGFzSG92ZXJMYWJlbD0hMSksdil7dmFyIGw9dC5zZWxlY3QoInBhdGguc3VyZmFjZSIpO2guc3R5bGVPbmUobCxzLGEse2hvdmVyZWQ6ITF9KX19KSksdC5vbigiY2xpY2siLChmdW5jdGlvbih0KXt2YXIgZT1yLl9mdWxsTGF5b3V0LGE9ci5fZnVsbERhdGFbZC5pbmRleF0scz1nJiYoYy5pc0hpZXJhcmNoeVJvb3QodCl8fGMuaXNMZWFmKHQpKSx1PWMuZ2V0UHRJZCh0KSxwPWMuaXNFbnRyeSh0KT9jLmZpbmRFbnRyeVdpdGhDaGlsZChtLHUpOmMuZmluZEVudHJ5V2l0aExldmVsKG0sdSksdj1jLmdldFB0SWQocCkseT17cG9pbnRzOltmKHQsYSxoLmV2ZW50RGF0YUtleXMpXSxldmVudDpuLmV2ZW50fTtzfHwoeS5uZXh0TGV2ZWw9dik7dmFyIHg9bC50cmlnZ2VySGFuZGxlcihyLCJwbG90bHlfIitkLnR5cGUrImNsaWNrIix5KTtpZighMSE9PXgmJmUuaG92ZXJtb2RlJiYoci5faG92ZXJkYXRhPVtmKHQsYSxoLmV2ZW50RGF0YUtleXMpXSxvLmNsaWNrKHIsbi5ldmVudCkpLCFzJiYhMSE9PXgmJiFyLl9kcmFnZ2luZyYmIXIuX3RyYW5zaXRpb25pbmcpe2kuY2FsbCgiX3N0b3JlRGlyZWN0R1VJRWRpdCIsYSxlLl90cmFjZVByZUdVSVthLnVpZF0se2xldmVsOmEubGV2ZWx9KTt2YXIgYj17ZGF0YTpbe2xldmVsOnZ9XSx0cmFjZXM6W2QuaW5kZXhdfSxfPXtmcmFtZTp7cmVkcmF3OiExLGR1cmF0aW9uOmgudHJhbnNpdGlvblRpbWV9LHRyYW5zaXRpb246e2R1cmF0aW9uOmgudHJhbnNpdGlvblRpbWUsZWFzaW5nOmgudHJhbnNpdGlvbkVhc2luZ30sbW9kZToiaW1tZWRpYXRlIixmcm9tY3VycmVudDohMH07by5sb25lVW5ob3ZlcihlLl9ob3ZlcmxheWVyLm5vZGUoKSksaS5jYWxsKCJhbmltYXRlIixyLGIsXyl9fSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2Z4Ijo2NzksIi4uLy4uL2NvbXBvbmVudHMvZngvaGVscGVycyI6Njc1LCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL2V2ZW50cyI6NzY1LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuLi9waWUvaGVscGVycyI6MTE3MCwiLi9oZWxwZXJzIjoxMzA5LCJAcGxvdGx5L2QzIjo1OH1dLDEzMDk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9saWIvc2V0Y3Vyc29yIiksbz10KCIuLi9waWUvaGVscGVycyIpO2Z1bmN0aW9uIHModCl7cmV0dXJuIHQuZGF0YS5kYXRhLnBpZH1yLmZpbmRFbnRyeVdpdGhMZXZlbD1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiBlJiZ0LmVhY2hBZnRlcigoZnVuY3Rpb24odCl7aWYoci5nZXRQdElkKHQpPT09ZSlyZXR1cm4gbj10LmNvcHkoKX0pKSxufHx0fSxyLmZpbmRFbnRyeVdpdGhDaGlsZD1mdW5jdGlvbih0LGUpe3ZhciBuO3JldHVybiB0LmVhY2hBZnRlcigoZnVuY3Rpb24odCl7Zm9yKHZhciBpPXQuY2hpbGRyZW58fFtdLGE9MDthPGkubGVuZ3RoO2ErKyl7dmFyIG89aVthXTtpZihyLmdldFB0SWQobyk9PT1lKXJldHVybiBuPXQuY29weSgpfX0pKSxufHx0fSxyLmlzRW50cnk9ZnVuY3Rpb24odCl7cmV0dXJuIXQucGFyZW50fSxyLmlzTGVhZj1mdW5jdGlvbih0KXtyZXR1cm4hdC5jaGlsZHJlbn0sci5nZXRQdElkPWZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGEuZGF0YS5pZH0sci5nZXRQdExhYmVsPWZ1bmN0aW9uKHQpe3JldHVybiB0LmRhdGEuZGF0YS5sYWJlbH0sci5nZXRWYWx1ZT1mdW5jdGlvbih0KXtyZXR1cm4gdC52YWx1ZX0sci5pc0hpZXJhcmNoeVJvb3Q9ZnVuY3Rpb24odCl7cmV0dXJuIiI9PT1zKHQpfSxyLnNldFNsaWNlQ3Vyc29yPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT1uLmlzVHJhbnNpdGlvbmluZztpZighaSl7dmFyIG89dC5kYXR1bSgpO2k9bi5oaWRlT25Sb290JiZyLmlzSGllcmFyY2h5Um9vdChvKXx8bi5oaWRlT25MZWF2ZXMmJnIuaXNMZWFmKG8pfWEodCxpP251bGw6InBvaW50ZXIiKX0sci5nZXRJbnNpZGVUZXh0Rm9udEtleT1mdW5jdGlvbih0LGUscixpLGEpe3ZhciBvPShhfHx7fSkub25QYXRoYmFyPyJwYXRoYmFyLnRleHRmb250IjoiaW5zaWRldGV4dGZvbnQiLHM9ci5kYXRhLmRhdGEuaTtyZXR1cm4gbi5jYXN0T3B0aW9uKGUscyxvKyIuIit0KXx8bi5jYXN0T3B0aW9uKGUscywidGV4dGZvbnQuIit0KXx8aS5zaXplfSxyLmdldE91dHNpZGVUZXh0Rm9udEtleT1mdW5jdGlvbih0LGUscixpKXt2YXIgYT1yLmRhdGEuZGF0YS5pO3JldHVybiBuLmNhc3RPcHRpb24oZSxhLCJvdXRzaWRldGV4dGZvbnQuIit0KXx8bi5jYXN0T3B0aW9uKGUsYSwidGV4dGZvbnQuIit0KXx8aS5zaXplfSxyLmlzT3V0c2lkZVRleHQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4hdC5faGFzQ29sb3JzY2FsZSYmci5pc0hpZXJhcmNoeVJvb3QoZSl9LHIuZGV0ZXJtaW5lVGV4dEZvbnQ9ZnVuY3Rpb24odCxlLGEsbyl7cmV0dXJuIHIuaXNPdXRzaWRlVGV4dCh0LGUpP2Z1bmN0aW9uKHQsZSxuKXtyZXR1cm57Y29sb3I6ci5nZXRPdXRzaWRlVGV4dEZvbnRLZXkoImNvbG9yIix0LGUsbiksZmFtaWx5OnIuZ2V0T3V0c2lkZVRleHRGb250S2V5KCJmYW1pbHkiLHQsZSxuKSxzaXplOnIuZ2V0T3V0c2lkZVRleHRGb250S2V5KCJzaXplIix0LGUsbil9fSh0LGUsYSk6ZnVuY3Rpb24odCxlLGEsbyl7dmFyIHM9KG98fHt9KS5vblBhdGhiYXIsbD1lLmRhdGEuZGF0YSxjPWwuaSx1PW4uY2FzdE9wdGlvbih0LGMsKHM/InBhdGhiYXIudGV4dGZvbnQiOiJpbnNpZGV0ZXh0Zm9udCIpKyIuY29sb3IiKTtyZXR1cm4hdSYmdC5faW5wdXQudGV4dGZvbnQmJih1PW4uY2FzdE9wdGlvbih0Ll9pbnB1dCxjLCJ0ZXh0Zm9udC5jb2xvciIpKSx7Y29sb3I6dXx8aS5jb250cmFzdChsLmNvbG9yKSxmYW1pbHk6ci5nZXRJbnNpZGVUZXh0Rm9udEtleSgiZmFtaWx5Iix0LGUsYSxvKSxzaXplOnIuZ2V0SW5zaWRlVGV4dEZvbnRLZXkoInNpemUiLHQsZSxhLG8pfX0odCxlLGEsbyl9LHIuaGFzVHJhbnNpdGlvbj1mdW5jdGlvbih0KXtyZXR1cm4hISh0JiZ0LmR1cmF0aW9uPjApfSxyLmdldE1heERlcHRoPWZ1bmN0aW9uKHQpe3JldHVybiB0Lm1heGRlcHRoPj0wP3QubWF4ZGVwdGg6MS8wfSxyLmlzSGVhZGVyPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIShyLmlzTGVhZih0KXx8dC5kZXB0aD09PWUuX21heERlcHRoLTEpfSxyLmdldFBhcmVudD1mdW5jdGlvbih0LGUpe3JldHVybiByLmZpbmRFbnRyeVdpdGhMZXZlbCh0LHMoZSkpfSxyLmxpc3RQYXRoPWZ1bmN0aW9uKHQsZSl7dmFyIG49dC5wYXJlbnQ7aWYoIW4pcmV0dXJuW107dmFyIGk9ZT9bbi5kYXRhW2VdXTpbbl07cmV0dXJuIHIubGlzdFBhdGgobixlKS5jb25jYXQoaSl9LHIuZ2V0UGF0aD1mdW5jdGlvbih0KXtyZXR1cm4gci5saXN0UGF0aCh0LCJsYWJlbCIpLmpvaW4oIi8iKSsiLyJ9LHIuZm9ybWF0VmFsdWU9by5mb3JtYXRQaWVWYWx1ZSxyLmZvcm1hdFBlcmNlbnQ9ZnVuY3Rpb24odCxlKXt2YXIgcj1uLmZvcm1hdFBlcmNlbnQodCwwKTtyZXR1cm4iMCUiPT09ciYmKHI9by5mb3JtYXRQaWVQZXJjZW50KHQsZSkpLHJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zZXRjdXJzb3IiOjc5NywiLi4vcGllL2hlbHBlcnMiOjExNzB9XSwxMzEwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17bW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InN1bmJ1cnN0IixiYXNlUGxvdE1vZHVsZTp0KCIuL2Jhc2VfcGxvdCIpLGNhdGVnb3JpZXM6W10sYW5pbWF0YWJsZTohMCxhdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLGxheW91dEF0dHJpYnV0ZXM6dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIikuY2FsYyxjcm9zc1RyYWNlQ2FsYzp0KCIuL2NhbGMiKS5jcm9zc1RyYWNlQ2FsYyxwbG90OnQoIi4vcGxvdCIpLnBsb3Qsc3R5bGU6dCgiLi9zdHlsZSIpLnN0eWxlLGNvbG9yYmFyOnQoIi4uL3NjYXR0ZXIvbWFya2VyX2NvbG9yYmFyIiksbWV0YTp7fX19LHsiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiOjEyMDksIi4vYXR0cmlidXRlcyI6MTMwMywiLi9iYXNlX3Bsb3QiOjEzMDQsIi4vY2FsYyI6MTMwNSwiLi9kZWZhdWx0cyI6MTMwNywiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTMxMSwiLi9sYXlvdXRfZGVmYXVsdHMiOjEzMTIsIi4vcGxvdCI6MTMxMywiLi9zdHlsZSI6MTMxNH1dLDEzMTE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtzdW5idXJzdGNvbG9yd2F5Ont2YWxUeXBlOiJjb2xvcmxpc3QiLGVkaXRUeXBlOiJjYWxjIn0sZXh0ZW5kc3VuYnVyc3Rjb2xvcnM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifX19LHt9XSwxMzEyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1yKCJzdW5idXJzdGNvbG9yd2F5IixlLmNvbG9yd2F5KSxyKCJleHRlbmRzdW5idXJzdGNvbG9ycyIpfX0seyIuLi8uLi9saWIiOjc3NiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTMxMX1dLDEzMTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiZDMtaGllcmFyY2h5IiksYT10KCJkMy1pbnRlcnBvbGF0ZSIpLmludGVycG9sYXRlLG89dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIikscz10KCIuLi8uLi9saWIiKSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLHU9Yy5yZWNvcmRNaW5UZXh0U2l6ZSxmPWMuY2xlYXJNaW5UZXh0U2l6ZSxoPXQoIi4uL3BpZS9wbG90IikscD10KCIuLi9waWUvaGVscGVycyIpLmdldFJvdGF0aW9uQW5nbGUsZD1oLmNvbXB1dGVUcmFuc2Zvcm0sbT1oLnRyYW5zZm9ybUluc2lkZVRleHQsZz10KCIuL3N0eWxlIikuc3R5bGVPbmUsdj10KCIuLi9iYXIvc3R5bGUiKS5yZXNpemVUZXh0LHk9dCgiLi9meCIpLHg9dCgiLi9jb25zdGFudHMiKSxiPXQoIi4vaGVscGVycyIpO2Z1bmN0aW9uIF8odCxlLGMsZil7dmFyIGg9dC5fZnVsbExheW91dCx2PSFoLnVuaWZvcm10ZXh0Lm1vZGUmJmIuaGFzVHJhbnNpdGlvbihmKSxfPW4uc2VsZWN0KGMpLnNlbGVjdEFsbCgiZy5zbGljZSIpLFQ9ZVswXSxrPVQudHJhY2UsQT1ULmhpZXJhcmNoeSxNPWIuZmluZEVudHJ5V2l0aExldmVsKEEsay5sZXZlbCksUz1iLmdldE1heERlcHRoKGspLEU9aC5fc2l6ZSxMPWsuZG9tYWluLEM9RS53KihMLnhbMV0tTC54WzBdKSxQPUUuaCooTC55WzFdLUwueVswXSksST0uNSpNYXRoLm1pbihDLFApLE89VC5jeD1FLmwrRS53KihMLnhbMV0rTC54WzBdKS8yLHo9VC5jeT1FLnQrRS5oKigxLUwueVswXSktUC8yO2lmKCFNKXJldHVybiBfLnJlbW92ZSgpO3ZhciBEPW51bGwsUj17fTt2JiZfLmVhY2goKGZ1bmN0aW9uKHQpe1JbYi5nZXRQdElkKHQpXT17cnB4MDp0LnJweDAscnB4MTp0LnJweDEseDA6dC54MCx4MTp0LngxLHRyYW5zZm9ybTp0LnRyYW5zZm9ybX0sIUQmJmIuaXNFbnRyeSh0KSYmKEQ9dCl9KSk7dmFyIEY9ZnVuY3Rpb24odCl7cmV0dXJuIGkucGFydGl0aW9uKCkuc2l6ZShbMipNYXRoLlBJLHQuaGVpZ2h0KzFdKSh0KX0oTSkuZGVzY2VuZGFudHMoKSxCPU0uaGVpZ2h0KzEsTj0wLGo9UztULmhhc011bHRpcGxlUm9vdHMmJmIuaXNIaWVyYXJjaHlSb290KE0pJiYoRj1GLnNsaWNlKDEpLEItPTEsTj0xLGorPTEpLEY9Ri5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiB0LnkxPD1qfSkpO3ZhciBVPXAoay5yb3RhdGlvbik7VSYmRi5mb3JFYWNoKChmdW5jdGlvbih0KXt0LngwKz1VLHQueDErPVV9KSk7dmFyIFY9TWF0aC5taW4oQixTKSxIPWZ1bmN0aW9uKHQpe3JldHVybih0LU4pL1YqSX0scT1mdW5jdGlvbih0LGUpe3JldHVyblt0Kk1hdGguY29zKGUpLC10Kk1hdGguc2luKGUpXX0sRz1mdW5jdGlvbih0KXtyZXR1cm4gcy5wYXRoQW5udWx1cyh0LnJweDAsdC5ycHgxLHQueDAsdC54MSxPLHopfSxZPWZ1bmN0aW9uKHQpe3JldHVybiBPK3codClbMF0qKHQudHJhbnNmb3JtLnJDZW50ZXJ8fDApKyh0LnRyYW5zZm9ybS54fHwwKX0sVz1mdW5jdGlvbih0KXtyZXR1cm4geit3KHQpWzFdKih0LnRyYW5zZm9ybS5yQ2VudGVyfHwwKSsodC50cmFuc2Zvcm0ueXx8MCl9OyhfPV8uZGF0YShGLGIuZ2V0UHRJZCkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgic2xpY2UiLCEwKSx2P18uZXhpdCgpLnRyYW5zaXRpb24oKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO3Quc2VsZWN0KCJwYXRoLnN1cmZhY2UiKS50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJkIiwoZnVuY3Rpb24odCl7dmFyIGU9ZnVuY3Rpb24odCl7dmFyIGUscj1iLmdldFB0SWQodCksbj1SW3JdLGk9UltiLmdldFB0SWQoTSldO2lmKGkpe3ZhciBvPSh0LngxPmkueDE/MipNYXRoLlBJOjApK1U7ZT10LnJweDE8aS5ycHgxP3t4MDp0LngwLHgxOnQueDEscnB4MDowLHJweDE6MH06e3gwOm8seDE6byxycHgwOnQucnB4MCxycHgxOnQucnB4MX19ZWxzZXt2YXIgcyxsPWIuZ2V0UHRJZCh0LnBhcmVudCk7Xy5lYWNoKChmdW5jdGlvbih0KXtpZihiLmdldFB0SWQodCk9PT1sKXJldHVybiBzPXR9KSk7dmFyIGMsdT1zLmNoaWxkcmVuO3UuZm9yRWFjaCgoZnVuY3Rpb24odCxlKXtpZihiLmdldFB0SWQodCk9PT1yKXJldHVybiBjPWV9KSk7dmFyIGY9dS5sZW5ndGgsaD1hKHMueDAscy54MSk7ZT17cnB4MDpJLHJweDE6SSx4MDpoKGMvZikseDE6aCgoYysxKS9mKX19cmV0dXJuIGEobixlKX0odCk7cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBHKGUodCkpfX0pKSx0LnNlbGVjdCgiZy5zbGljZXRleHQiKS5hdHRyKCJvcGFjaXR5IiwwKX0pKS5yZW1vdmUoKTpfLmV4aXQoKS5yZW1vdmUoKSxfLm9yZGVyKCk7dmFyIFg9bnVsbDtpZih2JiZEKXt2YXIgWj1iLmdldFB0SWQoRCk7Xy5lYWNoKChmdW5jdGlvbih0KXtudWxsPT09WCYmYi5nZXRQdElkKHQpPT09WiYmKFg9dC54MSl9KSl9dmFyIEo9XztmdW5jdGlvbiBLKHQpe3ZhciBlPXQucGFyZW50LHI9UltiLmdldFB0SWQoZSldLG49e307aWYocil7dmFyIGk9ZS5jaGlsZHJlbixvPWkuaW5kZXhPZih0KSxzPWkubGVuZ3RoLGw9YShyLngwLHIueDEpO24ueDA9bChvL3MpLG4ueDE9bChvL3MpfWVsc2Ugbi54MD1uLngxPTA7cmV0dXJuIG59diYmKEo9Si50cmFuc2l0aW9uKCkuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXt2YXIgZT1uLnNlbGVjdCh0aGlzKTtiLnNldFNsaWNlQ3Vyc29yKGUsdCx7aGlkZU9uUm9vdDohMCxoaWRlT25MZWF2ZXM6ITAsaXNUcmFuc2l0aW9uaW5nOiExfSl9KSkpLEouZWFjaCgoZnVuY3Rpb24oaSl7dmFyIGM9bi5zZWxlY3QodGhpcyksZj1zLmVuc3VyZVNpbmdsZShjLCJwYXRoIiwic3VyZmFjZSIsKGZ1bmN0aW9uKHQpe3Quc3R5bGUoInBvaW50ZXItZXZlbnRzIiwiYWxsIil9KSk7aS5ycHgwPUgoaS55MCksaS5ycHgxPUgoaS55MSksaS54bWlkPShpLngwK2kueDEpLzIsaS5weG1pZD1xKGkucnB4MSxpLnhtaWQpLGkubWlkYW5nbGU9LShpLnhtaWQtTWF0aC5QSS8yKSxpLnN0YXJ0YW5nbGU9LShpLngwLU1hdGguUEkvMiksaS5zdG9wYW5nbGU9LShpLngxLU1hdGguUEkvMiksaS5oYWxmYW5nbGU9LjUqTWF0aC5taW4ocy5hbmdsZURlbHRhKGkueDAsaS54MSl8fE1hdGguUEksTWF0aC5QSSksaS5yaW5nPTEtaS5ycHgwL2kucnB4MSxpLnJJbnNjcmliZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIDA9PT10LnJweDAmJnMuaXNGdWxsQ2lyY2xlKFt0LngwLHQueDFdKT8xOk1hdGgubWF4KDAsTWF0aC5taW4oMS8oMSsxL01hdGguc2luKHQuaGFsZmFuZ2xlKSksdC5yaW5nLzIpKX0oaSksdj9mLnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oImQiLChmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZSxyPVJbYi5nZXRQdElkKHQpXSxuPXt4MDp0LngwLHgxOnQueDEscnB4MDp0LnJweDAscnB4MTp0LnJweDF9O2lmKHIpZT1yO2Vsc2UgaWYoRClpZih0LnBhcmVudClpZihYKXt2YXIgaT0odC54MT5YPzIqTWF0aC5QSTowKStVO2U9e3gwOmkseDE6aX19ZWxzZSBlPXtycHgwOkkscnB4MTpJfSxzLmV4dGVuZEZsYXQoZSxLKHQpKTtlbHNlIGU9e3JweDA6MCxycHgxOjB9O2Vsc2UgZT17eDA6VSx4MTpVfTtyZXR1cm4gYShlLG4pfSh0KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIEcoZSh0KSl9fSkpOmYuYXR0cigiZCIsRyksYy5jYWxsKHksTSx0LGUse2V2ZW50RGF0YUtleXM6eC5ldmVudERhdGFLZXlzLHRyYW5zaXRpb25UaW1lOnguQ0xJQ0tfVFJBTlNJVElPTl9USU1FLHRyYW5zaXRpb25FYXNpbmc6eC5DTElDS19UUkFOU0lUSU9OX0VBU0lOR30pLmNhbGwoYi5zZXRTbGljZUN1cnNvcix0LHtoaWRlT25Sb290OiEwLGhpZGVPbkxlYXZlczohMCxpc1RyYW5zaXRpb25pbmc6dC5fdHJhbnNpdGlvbmluZ30pLGYuY2FsbChnLGksayk7dmFyIHA9cy5lbnN1cmVTaW5nbGUoYywiZyIsInNsaWNldGV4dCIpLF89cy5lbnN1cmVTaW5nbGUocCwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSksdz1zLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LGIuZGV0ZXJtaW5lVGV4dEZvbnQoayxpLGguZm9udCkpO18udGV4dChyLmZvcm1hdFNsaWNlTGFiZWwoaSxNLGssZSxoKSkuY2xhc3NlZCgic2xpY2V0ZXh0IiwhMCkuYXR0cigidGV4dC1hbmNob3IiLCJtaWRkbGUiKS5jYWxsKG8uZm9udCx3KS5jYWxsKGwuY29udmVydFRvVHNwYW5zLHQpO3ZhciBBPW8uYkJveChfLm5vZGUoKSk7aS50cmFuc2Zvcm09bShBLGksVCksaS50cmFuc2Zvcm0udGFyZ2V0WD1ZKGkpLGkudHJhbnNmb3JtLnRhcmdldFk9VyhpKTt2YXIgUz1mdW5jdGlvbih0LGUpe3ZhciByPXQudHJhbnNmb3JtO3JldHVybiBkKHIsZSksci5mb250U2l6ZT13LnNpemUsdShrLnR5cGUscixoKSxzLmdldFRleHRUcmFuc2Zvcm0ocil9O3Y/Xy50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgZT1mdW5jdGlvbih0KXt2YXIgZSxyPVJbYi5nZXRQdElkKHQpXSxuPXQudHJhbnNmb3JtO2lmKHIpZT1yO2Vsc2UgaWYoZT17cnB4MTp0LnJweDEsdHJhbnNmb3JtOnt0ZXh0UG9zQW5nbGU6bi50ZXh0UG9zQW5nbGUsc2NhbGU6MCxyb3RhdGU6bi5yb3RhdGUsckNlbnRlcjpuLnJDZW50ZXIseDpuLngseTpuLnl9fSxEKWlmKHQucGFyZW50KWlmKFgpe3ZhciBpPXQueDE+WD8yKk1hdGguUEk6MDtlLngwPWUueDE9aX1lbHNlIHMuZXh0ZW5kRmxhdChlLEsodCkpO2Vsc2UgZS54MD1lLngxPVU7ZWxzZSBlLngwPWUueDE9VTt2YXIgbz1hKGUudHJhbnNmb3JtLnRleHRQb3NBbmdsZSx0LnRyYW5zZm9ybS50ZXh0UG9zQW5nbGUpLGw9YShlLnJweDEsdC5ycHgxKSxjPWEoZS54MCx0LngwKSxmPWEoZS54MSx0LngxKSxwPWEoZS50cmFuc2Zvcm0uc2NhbGUsbi5zY2FsZSksZD1hKGUudHJhbnNmb3JtLnJvdGF0ZSxuLnJvdGF0ZSksbT0wPT09bi5yQ2VudGVyPzM6MD09PWUudHJhbnNmb3JtLnJDZW50ZXI/MS8zOjEsZz1hKGUudHJhbnNmb3JtLnJDZW50ZXIsbi5yQ2VudGVyKTtyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9bCh0KSxyPWModCksaT1mKHQpLGE9ZnVuY3Rpb24odCl7cmV0dXJuIGcoTWF0aC5wb3codCxtKSl9KHQpLHM9e3B4bWlkOnEoZSwocitpKS8yKSxycHgxOmUsdHJhbnNmb3JtOnt0ZXh0UG9zQW5nbGU6byh0KSxyQ2VudGVyOmEseDpuLngseTpuLnl9fTtyZXR1cm4gdShrLnR5cGUsbixoKSx7dHJhbnNmb3JtOnt0YXJnZXRYOlkocyksdGFyZ2V0WTpXKHMpLHNjYWxlOnAodCkscm90YXRlOmQodCksckNlbnRlcjphfX19fSh0KTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIFMoZSh0KSxBKX19KSk6Xy5hdHRyKCJ0cmFuc2Zvcm0iLFMoaSxBKSl9KSl9ZnVuY3Rpb24gdyh0KXtyZXR1cm4gZT10LnJweDEscj10LnRyYW5zZm9ybS50ZXh0UG9zQW5nbGUsW2UqTWF0aC5zaW4ociksLWUqTWF0aC5jb3MocildO3ZhciBlLHJ9ci5wbG90PWZ1bmN0aW9uKHQsZSxyLGkpe3ZhciBhLG8scz10Ll9mdWxsTGF5b3V0LGw9cy5fc3VuYnVyc3RsYXllcixjPSFyLHU9IXMudW5pZm9ybXRleHQubW9kZSYmYi5oYXNUcmFuc2l0aW9uKHIpOyhmKCJzdW5idXJzdCIscyksKGE9bC5zZWxlY3RBbGwoImcudHJhY2Uuc3VuYnVyc3QiKS5kYXRhKGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLnVpZH0pKSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0cmFjZSIsITApLmNsYXNzZWQoInN1bmJ1cnN0IiwhMCkuYXR0cigic3Ryb2tlLWxpbmVqb2luIiwicm91bmQiKSxhLm9yZGVyKCksdSk/KGkmJihvPWkoKSksbi50cmFuc2l0aW9uKCkuZHVyYXRpb24oci5kdXJhdGlvbikuZWFzZShyLmVhc2luZykuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtvJiZvKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXtvJiZvKCl9KSkuZWFjaCgoZnVuY3Rpb24oKXtsLnNlbGVjdEFsbCgiZy50cmFjZSIpLmVhY2goKGZ1bmN0aW9uKGUpe18odCxlLHRoaXMscil9KSl9KSkpOihhLmVhY2goKGZ1bmN0aW9uKGUpe18odCxlLHRoaXMscil9KSkscy51bmlmb3JtdGV4dC5tb2RlJiZ2KHQscy5fc3VuYnVyc3RsYXllci5zZWxlY3RBbGwoIi50cmFjZSIpLCJzdW5idXJzdCIpKTtjJiZhLmV4aXQoKS5yZW1vdmUoKX0sci5mb3JtYXRTbGljZUxhYmVsPWZ1bmN0aW9uKHQsZSxyLG4saSl7dmFyIGE9ci50ZXh0dGVtcGxhdGUsbz1yLnRleHRpbmZvO2lmKCEoYXx8byYmIm5vbmUiIT09bykpcmV0dXJuIiI7dmFyIGw9aS5zZXBhcmF0b3JzLGM9blswXSx1PXQuZGF0YS5kYXRhLGY9Yy5oaWVyYXJjaHksaD1iLmlzSGllcmFyY2h5Um9vdCh0KSxwPWIuZ2V0UGFyZW50KGYsdCksZD1iLmdldFZhbHVlKHQpO2lmKCFhKXt2YXIgbSxnPW8uc3BsaXQoIisiKSx2PWZ1bmN0aW9uKHQpe3JldHVybi0xIT09Zy5pbmRleE9mKHQpfSx5PVtdO2lmKHYoImxhYmVsIikmJnUubGFiZWwmJnkucHVzaCh1LmxhYmVsKSx1Lmhhc093blByb3BlcnR5KCJ2IikmJnYoInZhbHVlIikmJnkucHVzaChiLmZvcm1hdFZhbHVlKHUudixsKSksIWgpe3YoImN1cnJlbnQgcGF0aCIpJiZ5LnB1c2goYi5nZXRQYXRoKHQuZGF0YSkpO3ZhciB4PTA7digicGVyY2VudCBwYXJlbnQiKSYmeCsrLHYoInBlcmNlbnQgZW50cnkiKSYmeCsrLHYoInBlcmNlbnQgcm9vdCIpJiZ4Kys7dmFyIF89eD4xO2lmKHgpe3ZhciB3LFQ9ZnVuY3Rpb24odCl7bT1iLmZvcm1hdFBlcmNlbnQodyxsKSxfJiYobSs9IiBvZiAiK3QpLHkucHVzaChtKX07digicGVyY2VudCBwYXJlbnQiKSYmIWgmJih3PWQvYi5nZXRWYWx1ZShwKSxUKCJwYXJlbnQiKSksdigicGVyY2VudCBlbnRyeSIpJiYodz1kL2IuZ2V0VmFsdWUoZSksVCgiZW50cnkiKSksdigicGVyY2VudCByb290IikmJih3PWQvYi5nZXRWYWx1ZShmKSxUKCJyb290IikpfX1yZXR1cm4gdigidGV4dCIpJiYobT1zLmNhc3RPcHRpb24ocix1LmksInRleHQiKSxzLmlzVmFsaWRUZXh0VmFsdWUobSkmJnkucHVzaChtKSkseS5qb2luKCI8YnI+Iil9dmFyIGs9cy5jYXN0T3B0aW9uKHIsdS5pLCJ0ZXh0dGVtcGxhdGUiKTtpZighaylyZXR1cm4iIjt2YXIgQT17fTt1LmxhYmVsJiYoQS5sYWJlbD11LmxhYmVsKSx1Lmhhc093blByb3BlcnR5KCJ2IikmJihBLnZhbHVlPXUudixBLnZhbHVlTGFiZWw9Yi5mb3JtYXRWYWx1ZSh1LnYsbCkpLEEuY3VycmVudFBhdGg9Yi5nZXRQYXRoKHQuZGF0YSksaHx8KEEucGVyY2VudFBhcmVudD1kL2IuZ2V0VmFsdWUocCksQS5wZXJjZW50UGFyZW50TGFiZWw9Yi5mb3JtYXRQZXJjZW50KEEucGVyY2VudFBhcmVudCxsKSxBLnBhcmVudD1iLmdldFB0TGFiZWwocCkpLEEucGVyY2VudEVudHJ5PWQvYi5nZXRWYWx1ZShlKSxBLnBlcmNlbnRFbnRyeUxhYmVsPWIuZm9ybWF0UGVyY2VudChBLnBlcmNlbnRFbnRyeSxsKSxBLmVudHJ5PWIuZ2V0UHRMYWJlbChlKSxBLnBlcmNlbnRSb290PWQvYi5nZXRWYWx1ZShmKSxBLnBlcmNlbnRSb290TGFiZWw9Yi5mb3JtYXRQZXJjZW50KEEucGVyY2VudFJvb3QsbCksQS5yb290PWIuZ2V0UHRMYWJlbChmKSx1Lmhhc093blByb3BlcnR5KCJjb2xvciIpJiYoQS5jb2xvcj11LmNvbG9yKTt2YXIgTT1zLmNhc3RPcHRpb24ocix1LmksInRleHQiKTtyZXR1cm4ocy5pc1ZhbGlkVGV4dFZhbHVlKE0pfHwiIj09PU0pJiYoQS50ZXh0PU0pLEEuY3VzdG9tZGF0YT1zLmNhc3RPcHRpb24ocix1LmksImN1c3RvbWRhdGEiKSxzLnRleHR0ZW1wbGF0ZVN0cmluZyhrLEEsaS5fZDNsb2NhbGUsQSxyLl9tZXRhfHx7fSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uL2Jhci9zdHlsZSI6OTI4LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo5MzAsIi4uL3BpZS9oZWxwZXJzIjoxMTcwLCIuLi9waWUvcGxvdCI6MTE3NCwiLi9jb25zdGFudHMiOjEzMDYsIi4vZngiOjEzMDgsIi4vaGVscGVycyI6MTMwOSwiLi9zdHlsZSI6MTMxNCwiQHBsb3RseS9kMyI6NTgsImQzLWhpZXJhcmNoeSI6MTYzLCJkMy1pbnRlcnBvbGF0ZSI6MTY0fV0sMTMxNDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKS5yZXNpemVUZXh0O2Z1bmN0aW9uIHModCxlLHIpe3ZhciBuPWUuZGF0YS5kYXRhLG89IWUuY2hpbGRyZW4scz1uLmksbD1hLmNhc3RPcHRpb24ocixzLCJtYXJrZXIubGluZS5jb2xvciIpfHxpLmRlZmF1bHRMaW5lLGM9YS5jYXN0T3B0aW9uKHIscywibWFya2VyLmxpbmUud2lkdGgiKXx8MDt0LnN0eWxlKCJzdHJva2Utd2lkdGgiLGMpLmNhbGwoaS5maWxsLG4uY29sb3IpLmNhbGwoaS5zdHJva2UsbCkuc3R5bGUoIm9wYWNpdHkiLG8/ci5sZWFmLm9wYWNpdHk6bnVsbCl9ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll9zdW5idXJzdGxheWVyLnNlbGVjdEFsbCgiLnRyYWNlIik7byh0LGUsInN1bmJ1cnN0IiksZS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT1uLnNlbGVjdCh0aGlzKSxyPXRbMF0udHJhY2U7ZS5zdHlsZSgib3BhY2l0eSIsci5vcGFjaXR5KSxlLnNlbGVjdEFsbCgicGF0aC5zdXJmYWNlIikuZWFjaCgoZnVuY3Rpb24odCl7bi5zZWxlY3QodGhpcykuY2FsbChzLHQscil9KSl9KSl9LHN0eWxlT25lOnN9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vbGliIjo3NzYsIi4uL2Jhci91bmlmb3JtX3RleHQiOjkzMCwiQHBsb3RseS9kMyI6NTh9XSwxMzE1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxvPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMscz10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbD10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxjPXQoIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiKS5vdmVycmlkZUFsbDtmdW5jdGlvbiB1KHQpe3JldHVybntzaG93Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxzdGFydDp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsZWRpdFR5cGU6InBsb3QifSxlbmQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDpudWxsLGVkaXRUeXBlOiJwbG90In0sc2l6ZTp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsbWluOjAsZWRpdFR5cGU6InBsb3QifSxwcm9qZWN0Ont4Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx5Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx6Ont2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixkZmx0Om4uZGVmYXVsdExpbmV9LHVzZWNvbG9ybWFwOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSx3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxtYXg6MTYsZGZsdDoyfSxoaWdobGlnaHQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITB9LGhpZ2hsaWdodGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsZGZsdDpuLmRlZmF1bHRMaW5lfSxoaWdobGlnaHR3aWR0aDp7dmFsVHlwZToibnVtYmVyIixtaW46MSxtYXg6MTYsZGZsdDoyfX19dmFyIGY9ZS5leHBvcnRzPWMobCh7ejp7dmFsVHlwZToiZGF0YV9hcnJheSJ9LHg6e3ZhbFR5cGU6ImRhdGFfYXJyYXkifSx5Ont2YWxUeXBlOiJkYXRhX2FycmF5In0sdGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGV4dDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGFycmF5T2s6ITB9LGhvdmVydGVtcGxhdGU6bygpLHhob3ZlcmZvcm1hdDphKCJ4IikseWhvdmVyZm9ybWF0OmEoInkiKSx6aG92ZXJmb3JtYXQ6YSgieiIpLGNvbm5lY3RnYXBzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0sc3VyZmFjZWNvbG9yOnt2YWxUeXBlOiJkYXRhX2FycmF5In19LGkoIiIse2NvbG9yQXR0cjoieiBvciBzdXJmYWNlY29sb3IiLHNob3dTY2FsZURmbHQ6ITAsYXV0b0NvbG9yRGZsdDohMSxlZGl0VHlwZU92ZXJyaWRlOiJjYWxjIn0pLHtjb250b3Vyczp7eDp1KCkseTp1KCksejp1KCl9LGhpZGVzdXJmYWNlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExfSxsaWdodHBvc2l0aW9uOnt4Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMWU1LG1heDoxZTUsZGZsdDoxMH0seTp7dmFsVHlwZToibnVtYmVyIixtaW46LTFlNSxtYXg6MWU1LGRmbHQ6MWU0fSx6Ont2YWxUeXBlOiJudW1iZXIiLG1pbjotMWU1LG1heDoxZTUsZGZsdDowfX0sbGlnaHRpbmc6e2FtYmllbnQ6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouOH0sZGlmZnVzZTp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MSxkZmx0Oi44fSxzcGVjdWxhcjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxtYXg6MixkZmx0Oi4wNX0scm91Z2huZXNzOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGRmbHQ6LjV9LGZyZXNuZWw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjUsZGZsdDouMn19LG9wYWNpdHk6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfSxvcGFjaXR5c2NhbGU6e3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSxfZGVwcmVjYXRlZDp7emF1dG86bCh7fSxpLnphdXRvLHt9KSx6bWluOmwoe30saS56bWluLHt9KSx6bWF4Omwoe30saS56bWF4LHt9KX0saG92ZXJpbmZvOmwoe30scy5ob3ZlcmluZm8pLHNob3dsZWdlbmQ6bCh7fSxzLnNob3dsZWdlbmQse2RmbHQ6ITF9KX0pLCJjYWxjIiwibmVzdGVkIik7Zi54LmVkaXRUeXBlPWYueS5lZGl0VHlwZT1mLnouZWRpdFR5cGU9ImNhbGMrY2xlYXJBeGlzVHlwZXMiLGYudHJhbnNmb3Jtcz12b2lkIDB9LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyI6NjQ2LCIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RfYXBpL2VkaXRfdHlwZXMiOjgwOSwiLi4vLi4vcGxvdHMvYXR0cmlidXRlcyI6ODIzLCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6ODMwLCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIjo4OTl9XSwxMzE2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9jYWxjIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7ZS5zdXJmYWNlY29sb3I/bih0LGUse3ZhbHM6ZS5zdXJmYWNlY29sb3IsY29udGFpbmVyU3RyOiIiLGNMZXR0ZXI6ImMifSk6bih0LGUse3ZhbHM6ZS56LGNvbnRhaW5lclN0cjoiIixjTGV0dGVyOiJjIn0pfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvY2FsYyI6NjQ3fV0sMTMxNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1zdXJmYWNlM2QiKSxpPXQoIm5kYXJyYXkiKSxhPXQoIm5kYXJyYXktbGluZWFyLWludGVycG9sYXRlIikuZDIsbz10KCIuLi9oZWF0bWFwL2ludGVycDJkIikscz10KCIuLi9oZWF0bWFwL2ZpbmRfZW1wdGllcyIpLGw9dCgiLi4vLi4vbGliIikuaXNBcnJheU9yVHlwZWRBcnJheSxjPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUsdT10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5IiksZj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cztmdW5jdGlvbiBoKHQsZSxyKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9cix0aGlzLnN1cmZhY2U9ZSx0aGlzLmRhdGE9bnVsbCx0aGlzLnNob3dDb250b3VyPVshMSwhMSwhMV0sdGhpcy5jb250b3VyU3RhcnQ9W251bGwsbnVsbCxudWxsXSx0aGlzLmNvbnRvdXJFbmQ9W251bGwsbnVsbCxudWxsXSx0aGlzLmNvbnRvdXJTaXplPVswLDAsMF0sdGhpcy5taW5WYWx1ZXM9WzEvMCwxLzAsMS8wXSx0aGlzLm1heFZhbHVlcz1bLTEvMCwtMS8wLC0xLzBdLHRoaXMuZGF0YVNjYWxlWD0xLHRoaXMuZGF0YVNjYWxlWT0xLHRoaXMucmVmaW5lRGF0YT0hMCx0aGlzLm9iamVjdE9mZnNldD1bMCwwLDBdfXZhciBwPWgucHJvdG90eXBlO3AuZ2V0WGF0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWwodGhpcy5kYXRhLngpP2wodGhpcy5kYXRhLnhbMF0pP3RoaXMuZGF0YS54W2VdW3RdOnRoaXMuZGF0YS54W3RdOnQ7cmV0dXJuIHZvaWQgMD09PXI/aTpuLmQybChpLDAscil9LHAuZ2V0WWF0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPWwodGhpcy5kYXRhLnkpP2wodGhpcy5kYXRhLnlbMF0pP3RoaXMuZGF0YS55W2VdW3RdOnRoaXMuZGF0YS55W2VdOmU7cmV0dXJuIHZvaWQgMD09PXI/aTpuLmQybChpLDAscil9LHAuZ2V0WmF0PWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpPXRoaXMuZGF0YS56W2VdW3RdO3JldHVybiBudWxsPT09aSYmdGhpcy5kYXRhLmNvbm5lY3RnYXBzJiZ0aGlzLmRhdGEuX2ludGVycG9sYXRlZFomJihpPXRoaXMuZGF0YS5faW50ZXJwb2xhdGVkWltlXVt0XSksdm9pZCAwPT09cj9pOm4uZDJsKGksMCxyKX0scC5oYW5kbGVQaWNrPWZ1bmN0aW9uKHQpe2lmKHQub2JqZWN0PT09dGhpcy5zdXJmYWNlKXt2YXIgZT0odC5kYXRhLmluZGV4WzBdLTEpL3RoaXMuZGF0YVNjYWxlWC0xLHI9KHQuZGF0YS5pbmRleFsxXS0xKS90aGlzLmRhdGFTY2FsZVktMSxuPU1hdGgubWF4KE1hdGgubWluKE1hdGgucm91bmQoZSksdGhpcy5kYXRhLnpbMF0ubGVuZ3RoLTEpLDApLGk9TWF0aC5tYXgoTWF0aC5taW4oTWF0aC5yb3VuZChyKSx0aGlzLmRhdGEuX3lsZW5ndGgtMSksMCk7dC5pbmRleD1bbixpXSx0LnRyYWNlQ29vcmRpbmF0ZT1bdGhpcy5nZXRYYXQobixpKSx0aGlzLmdldFlhdChuLGkpLHRoaXMuZ2V0WmF0KG4saSldLHQuZGF0YUNvb3JkaW5hdGU9W3RoaXMuZ2V0WGF0KG4saSx0aGlzLmRhdGEueGNhbGVuZGFyLHRoaXMuc2NlbmUuZnVsbFNjZW5lTGF5b3V0LnhheGlzKSx0aGlzLmdldFlhdChuLGksdGhpcy5kYXRhLnljYWxlbmRhcix0aGlzLnNjZW5lLmZ1bGxTY2VuZUxheW91dC55YXhpcyksdGhpcy5nZXRaYXQobixpLHRoaXMuZGF0YS56Y2FsZW5kYXIsdGhpcy5zY2VuZS5mdWxsU2NlbmVMYXlvdXQuemF4aXMpXTtmb3IodmFyIGE9MDthPDM7YSsrKXt2YXIgbz10LmRhdGFDb29yZGluYXRlW2FdO251bGwhPW8mJih0LmRhdGFDb29yZGluYXRlW2FdKj10aGlzLnNjZW5lLmRhdGFTY2FsZVthXSl9dmFyIHM9dGhpcy5kYXRhLmhvdmVydGV4dHx8dGhpcy5kYXRhLnRleHQ7cmV0dXJuIEFycmF5LmlzQXJyYXkocykmJnNbaV0mJnZvaWQgMCE9PXNbaV1bbl0/dC50ZXh0TGFiZWw9c1tpXVtuXTp0LnRleHRMYWJlbD1zfHwiIix0LmRhdGEuZGF0YUNvb3JkaW5hdGU9dC5kYXRhQ29vcmRpbmF0ZS5zbGljZSgpLHRoaXMuc3VyZmFjZS5oaWdobGlnaHQodC5kYXRhKSx0aGlzLnNjZW5lLmdscGxvdC5zcGlrZXMucG9zaXRpb249dC5kYXRhQ29vcmRpbmF0ZSwhMH19O3ZhciBkPVsyLDMsNSw3LDExLDEzLDE3LDE5LDIzLDI5LDMxLDM3LDQxLDQzLDQ3LDUzLDU5LDYxLDY3LDcxLDczLDc5LDgzLDg5LDk3LDEwMSwxMDMsMTA3LDEwOSwxMTMsMTI3LDEzMSwxMzcsMTM5LDE0OSwxNTEsMTU3LDE2MywxNjcsMTczLDE3OSwxODEsMTkxLDE5MywxOTcsMTk5LDIxMSwyMjMsMjI3LDIyOSwyMzMsMjM5LDI0MSwyNTEsMjU3LDI2MywyNjksMjcxLDI3NywyODEsMjgzLDI5MywzMDcsMzExLDMxMywzMTcsMzMxLDMzNywzNDcsMzQ5LDM1MywzNTksMzY3LDM3MywzNzksMzgzLDM4OSwzOTcsNDAxLDQwOSw0MTksNDIxLDQzMSw0MzMsNDM5LDQ0Myw0NDksNDU3LDQ2MSw0NjMsNDY3LDQ3OSw0ODcsNDkxLDQ5OSw1MDMsNTA5LDUyMSw1MjMsNTQxLDU0Nyw1NTcsNTYzLDU2OSw1NzEsNTc3LDU4Nyw1OTMsNTk5LDYwMSw2MDcsNjEzLDYxNyw2MTksNjMxLDY0MSw2NDMsNjQ3LDY1Myw2NTksNjYxLDY3Myw2NzcsNjgzLDY5MSw3MDEsNzA5LDcxOSw3MjcsNzMzLDczOSw3NDMsNzUxLDc1Nyw3NjEsNzY5LDc3Myw3ODcsNzk3LDgwOSw4MTEsODIxLDgyMyw4MjcsODI5LDgzOSw4NTMsODU3LDg1OSw4NjMsODc3LDg4MSw4ODMsODg3LDkwNyw5MTEsOTE5LDkyOSw5MzcsOTQxLDk0Nyw5NTMsOTY3LDk3MSw5NzcsOTgzLDk5MSw5OTcsMTAwOSwxMDEzLDEwMTksMTAyMSwxMDMxLDEwMzMsMTAzOSwxMDQ5LDEwNTEsMTA2MSwxMDYzLDEwNjksMTA4NywxMDkxLDEwOTMsMTA5NywxMTAzLDExMDksMTExNywxMTIzLDExMjksMTE1MSwxMTUzLDExNjMsMTE3MSwxMTgxLDExODcsMTE5MywxMjAxLDEyMTMsMTIxNywxMjIzLDEyMjksMTIzMSwxMjM3LDEyNDksMTI1OSwxMjc3LDEyNzksMTI4MywxMjg5LDEyOTEsMTI5NywxMzAxLDEzMDMsMTMwNywxMzE5LDEzMjEsMTMyNywxMzYxLDEzNjcsMTM3MywxMzgxLDEzOTksMTQwOSwxNDIzLDE0MjcsMTQyOSwxNDMzLDE0MzksMTQ0NywxNDUxLDE0NTMsMTQ1OSwxNDcxLDE0ODEsMTQ4MywxNDg3LDE0ODksMTQ5MywxNDk5LDE1MTEsMTUyMywxNTMxLDE1NDMsMTU0OSwxNTUzLDE1NTksMTU2NywxNTcxLDE1NzksMTU4MywxNTk3LDE2MDEsMTYwNywxNjA5LDE2MTMsMTYxOSwxNjIxLDE2MjcsMTYzNywxNjU3LDE2NjMsMTY2NywxNjY5LDE2OTMsMTY5NywxNjk5LDE3MDksMTcyMSwxNzIzLDE3MzMsMTc0MSwxNzQ3LDE3NTMsMTc1OSwxNzc3LDE3ODMsMTc4NywxNzg5LDE4MDEsMTgxMSwxODIzLDE4MzEsMTg0NywxODYxLDE4NjcsMTg3MSwxODczLDE4NzcsMTg3OSwxODg5LDE5MDEsMTkwNywxOTEzLDE5MzEsMTkzMywxOTQ5LDE5NTEsMTk3MywxOTc5LDE5ODcsMTk5MywxOTk3LDE5OTksMjAwMywyMDExLDIwMTcsMjAyNywyMDI5LDIwMzksMjA1MywyMDYzLDIwNjksMjA4MSwyMDgzLDIwODcsMjA4OSwyMDk5LDIxMTEsMjExMywyMTI5LDIxMzEsMjEzNywyMTQxLDIxNDMsMjE1MywyMTYxLDIxNzksMjIwMywyMjA3LDIyMTMsMjIyMSwyMjM3LDIyMzksMjI0MywyMjUxLDIyNjcsMjI2OSwyMjczLDIyODEsMjI4NywyMjkzLDIyOTcsMjMwOSwyMzExLDIzMzMsMjMzOSwyMzQxLDIzNDcsMjM1MSwyMzU3LDIzNzEsMjM3NywyMzgxLDIzODMsMjM4OSwyMzkzLDIzOTksMjQxMSwyNDE3LDI0MjMsMjQzNywyNDQxLDI0NDcsMjQ1OSwyNDY3LDI0NzMsMjQ3NywyNTAzLDI1MjEsMjUzMSwyNTM5LDI1NDMsMjU0OSwyNTUxLDI1NTcsMjU3OSwyNTkxLDI1OTMsMjYwOSwyNjE3LDI2MjEsMjYzMywyNjQ3LDI2NTcsMjY1OSwyNjYzLDI2NzEsMjY3NywyNjgzLDI2ODcsMjY4OSwyNjkzLDI2OTksMjcwNywyNzExLDI3MTMsMjcxOSwyNzI5LDI3MzEsMjc0MSwyNzQ5LDI3NTMsMjc2NywyNzc3LDI3ODksMjc5MSwyNzk3LDI4MDEsMjgwMywyODE5LDI4MzMsMjgzNywyODQzLDI4NTEsMjg1NywyODYxLDI4NzksMjg4NywyODk3LDI5MDMsMjkwOSwyOTE3LDI5MjcsMjkzOSwyOTUzLDI5NTcsMjk2MywyOTY5LDI5NzEsMjk5OV07ZnVuY3Rpb24gbSh0LGUpe2lmKHQ8ZSlyZXR1cm4gMDtmb3IodmFyIHI9MDswPT09TWF0aC5mbG9vcih0JWUpOyl0Lz1lLHIrKztyZXR1cm4gcn1mdW5jdGlvbiBnKHQpe2Zvcih2YXIgZT1bXSxyPTA7cjxkLmxlbmd0aDtyKyspe3ZhciBuPWRbcl07ZS5wdXNoKG0odCxuKSl9cmV0dXJuIGV9ZnVuY3Rpb24gdih0KXtmb3IodmFyIGU9Zyh0KSxyPXQsbj0wO248ZC5sZW5ndGg7bisrKWlmKGVbbl0+MCl7cj1kW25dO2JyZWFrfXJldHVybiByfWZ1bmN0aW9uIHkodCxlKXtpZighKHQ8MXx8ZTwxKSl7Zm9yKHZhciByPWcodCksbj1nKGUpLGk9MSxhPTA7YTxkLmxlbmd0aDthKyspaSo9TWF0aC5wb3coZFthXSxNYXRoLm1heChyW2FdLG5bYV0pKTtyZXR1cm4gaX19cC5jYWxjWG51bXM9ZnVuY3Rpb24odCl7dmFyIGUscj1bXTtmb3IoZT0xO2U8dDtlKyspe3ZhciBuPXRoaXMuZ2V0WGF0KGUtMSwwKSxpPXRoaXMuZ2V0WGF0KGUsMCk7cltlLTFdPWkhPT1uJiZudWxsIT1uJiZudWxsIT1pP01hdGguYWJzKGktbik6MH12YXIgYT0wO2ZvcihlPTE7ZTx0O2UrKylhKz1yW2UtMV07Zm9yKGU9MTtlPHQ7ZSsrKTA9PT1yW2UtMV0/cltlLTFdPTE6cltlLTFdPU1hdGgucm91bmQoYS9yW2UtMV0pO3JldHVybiByfSxwLmNhbGNZbnVtcz1mdW5jdGlvbih0KXt2YXIgZSxyPVtdO2ZvcihlPTE7ZTx0O2UrKyl7dmFyIG49dGhpcy5nZXRZYXQoMCxlLTEpLGk9dGhpcy5nZXRZYXQoMCxlKTtyW2UtMV09aSE9PW4mJm51bGwhPW4mJm51bGwhPWk/TWF0aC5hYnMoaS1uKTowfXZhciBhPTA7Zm9yKGU9MTtlPHQ7ZSsrKWErPXJbZS0xXTtmb3IoZT0xO2U8dDtlKyspMD09PXJbZS0xXT9yW2UtMV09MTpyW2UtMV09TWF0aC5yb3VuZChhL3JbZS0xXSk7cmV0dXJuIHJ9O3ZhciB4PVsxLDIsNCw2LDEyLDI0LDM2LDQ4LDYwLDEyMCwxODAsMjQwLDM2MCw3MjAsODQwLDEyNjBdLGI9eFs5XSxfPXhbMTNdO2Z1bmN0aW9uIHcodCxlLHIpe3ZhciBuPXJbOF0rclsyXSplWzBdK3JbNV0qZVsxXTtyZXR1cm4gdFswXT0ocls2XStyWzBdKmVbMF0rclszXSplWzFdKS9uLHRbMV09KHJbN10rclsxXSplWzBdK3JbNF0qZVsxXSkvbix0fWZ1bmN0aW9uIFQodCxlLHIpe3JldHVybiBmdW5jdGlvbih0LGUscixuKXtmb3IodmFyIGk9WzAsMF0sbz10LnNoYXBlWzBdLHM9dC5zaGFwZVsxXSxsPTA7bDxvO2wrKylmb3IodmFyIGM9MDtjPHM7YysrKXIoaSxbbCxjXSxuKSx0LnNldChsLGMsYShlLGlbMF0saVsxXSkpfSh0LGUsdyxyKSx0fWZ1bmN0aW9uIGsodCxlKXtmb3IodmFyIHI9ITEsbj0wO248dC5sZW5ndGg7bisrKWlmKGU9PT10W25dKXtyPSEwO2JyZWFrfSExPT09ciYmdC5wdXNoKGUpfXAuZXN0aW1hdGVTY2FsZT1mdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0xK2Z1bmN0aW9uKHQpe2lmKDAhPT10Lmxlbmd0aCl7Zm9yKHZhciBlPTEscj0wO3I8dC5sZW5ndGg7cisrKWU9eShlLHRbcl0pO3JldHVybiBlfX0oMD09PWU/dGhpcy5jYWxjWG51bXModCk6dGhpcy5jYWxjWW51bXModCkpO3I8Yjspcio9Mjtmb3IoO3I+Xzspci0tLHIvPXYociksKytyPGImJihyPV8pO3ZhciBuPU1hdGgucm91bmQoci90KTtyZXR1cm4gbj4xP246MX0scC5yZWZpbmVDb29yZHM9ZnVuY3Rpb24odCl7Zm9yKHZhciBlPXRoaXMuZGF0YVNjYWxlWCxyPXRoaXMuZGF0YVNjYWxlWSxuPXRbMF0uc2hhcGVbMF0sYT10WzBdLnNoYXBlWzFdLG89MHxNYXRoLmZsb29yKHRbMF0uc2hhcGVbMF0qZSsxKSxzPTB8TWF0aC5mbG9vcih0WzBdLnNoYXBlWzFdKnIrMSksbD0xK24rMSxjPTErYSsxLHU9aShuZXcgRmxvYXQzMkFycmF5KGwqYyksW2wsY10pLGY9WzEvZSwwLDAsMCwxL3IsMCwwLDAsMV0saD0wO2g8dC5sZW5ndGg7KytoKXt0aGlzLnN1cmZhY2UucGFkRmllbGQodSx0W2hdKTt2YXIgcD1pKG5ldyBGbG9hdDMyQXJyYXkobypzKSxbbyxzXSk7VChwLHUsZiksdFtoXT1wfX0scC5zZXRDb250b3VyTGV2ZWxzPWZ1bmN0aW9uKCl7dmFyIHQsZSxyLG49W1tdLFtdLFtdXSxpPVshMSwhMSwhMV0sYT0hMTtmb3IodD0wO3Q8MzsrK3QpaWYodGhpcy5zaG93Q29udG91clt0XSYmKGE9ITAsdGhpcy5jb250b3VyU2l6ZVt0XT4wJiZudWxsIT09dGhpcy5jb250b3VyU3RhcnRbdF0mJm51bGwhPT10aGlzLmNvbnRvdXJFbmRbdF0mJnRoaXMuY29udG91ckVuZFt0XT50aGlzLmNvbnRvdXJTdGFydFt0XSkpZm9yKGlbdF09ITAsZT10aGlzLmNvbnRvdXJTdGFydFt0XTtlPHRoaXMuY29udG91ckVuZFt0XTtlKz10aGlzLmNvbnRvdXJTaXplW3RdKXI9ZSp0aGlzLnNjZW5lLmRhdGFTY2FsZVt0XSxrKG5bdF0scik7aWYoYSl7dmFyIG89W1tdLFtdLFtdXTtmb3IodD0wO3Q8MzsrK3QpdGhpcy5zaG93Q29udG91clt0XSYmKG9bdF09aVt0XT9uW3RdOnRoaXMuc2NlbmUuY29udG91ckxldmVsc1t0XSk7dGhpcy5zdXJmYWNlLnVwZGF0ZSh7bGV2ZWxzOm99KX19LHAudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlLHIsbixhLGw9dGhpcy5zY2VuZSxoPWwuZnVsbFNjZW5lTGF5b3V0LHA9dGhpcy5zdXJmYWNlLGQ9Yyh0KSxtPWwuZGF0YVNjYWxlLGc9dC56WzBdLmxlbmd0aCx2PXQuX3lsZW5ndGgseT1sLmNvbnRvdXJMZXZlbHM7dGhpcy5kYXRhPXQ7dmFyIHg9W107Zm9yKGU9MDtlPDM7ZSsrKWZvcih4W2VdPVtdLHI9MDtyPGc7cisrKXhbZV1bcl09W107Zm9yKHI9MDtyPGc7cisrKWZvcihuPTA7bjx2O24rKyl4WzBdW3JdW25dPXRoaXMuZ2V0WGF0KHIsbix0LnhjYWxlbmRhcixoLnhheGlzKSx4WzFdW3JdW25dPXRoaXMuZ2V0WWF0KHIsbix0LnljYWxlbmRhcixoLnlheGlzKSx4WzJdW3JdW25dPXRoaXMuZ2V0WmF0KHIsbix0LnpjYWxlbmRhcixoLnpheGlzKTtpZih0LmNvbm5lY3RnYXBzKWZvcih0Ll9lbXB0eXBvaW50cz1zKHhbMl0pLG8oeFsyXSx0Ll9lbXB0eXBvaW50cyksdC5faW50ZXJwb2xhdGVkWj1bXSxyPTA7cjxnO3IrKylmb3IodC5faW50ZXJwb2xhdGVkWltyXT1bXSxuPTA7bjx2O24rKyl0Ll9pbnRlcnBvbGF0ZWRaW3JdW25dPXhbMl1bcl1bbl07Zm9yKGU9MDtlPDM7ZSsrKWZvcihyPTA7cjxnO3IrKylmb3Iobj0wO248djtuKyspbnVsbD09KGE9eFtlXVtyXVtuXSk/eFtlXVtyXVtuXT1OYU46YT14W2VdW3JdW25dKj1tW2VdO2ZvcihlPTA7ZTwzO2UrKylmb3Iocj0wO3I8ZztyKyspZm9yKG49MDtuPHY7bisrKW51bGwhPShhPXhbZV1bcl1bbl0pJiYodGhpcy5taW5WYWx1ZXNbZV0+YSYmKHRoaXMubWluVmFsdWVzW2VdPWEpLHRoaXMubWF4VmFsdWVzW2VdPGEmJih0aGlzLm1heFZhbHVlc1tlXT1hKSk7Zm9yKGU9MDtlPDM7ZSsrKXRoaXMub2JqZWN0T2Zmc2V0W2VdPS41Kih0aGlzLm1pblZhbHVlc1tlXSt0aGlzLm1heFZhbHVlc1tlXSk7Zm9yKGU9MDtlPDM7ZSsrKWZvcihyPTA7cjxnO3IrKylmb3Iobj0wO248djtuKyspbnVsbCE9KGE9eFtlXVtyXVtuXSkmJih4W2VdW3JdW25dLT10aGlzLm9iamVjdE9mZnNldFtlXSk7dmFyIGI9W2kobmV3IEZsb2F0MzJBcnJheShnKnYpLFtnLHZdKSxpKG5ldyBGbG9hdDMyQXJyYXkoZyp2KSxbZyx2XSksaShuZXcgRmxvYXQzMkFycmF5KGcqdiksW2csdl0pXTtmb3IoZT0wO2U8MztlKyspZm9yKHI9MDtyPGc7cisrKWZvcihuPTA7bjx2O24rKyliW2VdLnNldChyLG4seFtlXVtyXVtuXSk7eD1bXTt2YXIgdz17Y29sb3JtYXA6ZCxsZXZlbHM6W1tdLFtdLFtdXSxzaG93Q29udG91cjpbITAsITAsITBdLHNob3dTdXJmYWNlOiF0LmhpZGVzdXJmYWNlLGNvbnRvdXJQcm9qZWN0OltbITEsITEsITFdLFshMSwhMSwhMV0sWyExLCExLCExXV0sY29udG91cldpZHRoOlsxLDEsMV0sY29udG91ckNvbG9yOltbMSwxLDEsMV0sWzEsMSwxLDFdLFsxLDEsMSwxXV0sY29udG91clRpbnQ6WzEsMSwxXSxkeW5hbWljQ29sb3I6W1sxLDEsMSwxXSxbMSwxLDEsMV0sWzEsMSwxLDFdXSxkeW5hbWljV2lkdGg6WzEsMSwxXSxkeW5hbWljVGludDpbMSwxLDFdLG9wYWNpdHlzY2FsZTp0Lm9wYWNpdHlzY2FsZSxvcGFjaXR5OnQub3BhY2l0eX0sVD1mKHQpO2lmKHcuaW50ZW5zaXR5Qm91bmRzPVtULm1pbixULm1heF0sdC5zdXJmYWNlY29sb3Ipe3ZhciBrPWkobmV3IEZsb2F0MzJBcnJheShnKnYpLFtnLHZdKTtmb3Iocj0wO3I8ZztyKyspZm9yKG49MDtuPHY7bisrKWsuc2V0KHIsbix0LnN1cmZhY2Vjb2xvcltuXVtyXSk7Yi5wdXNoKGspfWVsc2Ugdy5pbnRlbnNpdHlCb3VuZHNbMF0qPW1bMl0sdy5pbnRlbnNpdHlCb3VuZHNbMV0qPW1bMl07KF88YlswXS5zaGFwZVswXXx8XzxiWzBdLnNoYXBlWzFdKSYmKHRoaXMucmVmaW5lRGF0YT0hMSksITA9PT10aGlzLnJlZmluZURhdGEmJih0aGlzLmRhdGFTY2FsZVg9dGhpcy5lc3RpbWF0ZVNjYWxlKGJbMF0uc2hhcGVbMF0sMCksdGhpcy5kYXRhU2NhbGVZPXRoaXMuZXN0aW1hdGVTY2FsZShiWzBdLnNoYXBlWzFdLDEpLDE9PT10aGlzLmRhdGFTY2FsZVgmJjE9PT10aGlzLmRhdGFTY2FsZVl8fHRoaXMucmVmaW5lQ29vcmRzKGIpKSx0LnN1cmZhY2Vjb2xvciYmKHcuaW50ZW5zaXR5PWIucG9wKCkpO3ZhciBBPVshMCwhMCwhMF0sTT1bIngiLCJ5IiwieiJdO2ZvcihlPTA7ZTwzOysrZSl7dmFyIFM9dC5jb250b3Vyc1tNW2VdXTtBW2VdPVMuaGlnaGxpZ2h0LHcuc2hvd0NvbnRvdXJbZV09Uy5zaG93fHxTLmhpZ2hsaWdodCx3LnNob3dDb250b3VyW2VdJiYody5jb250b3VyUHJvamVjdFtlXT1bUy5wcm9qZWN0LngsUy5wcm9qZWN0LnksUy5wcm9qZWN0LnpdLFMuc2hvdz8odGhpcy5zaG93Q29udG91cltlXT0hMCx3LmxldmVsc1tlXT15W2VdLHAuaGlnaGxpZ2h0Q29sb3JbZV09dy5jb250b3VyQ29sb3JbZV09dShTLmNvbG9yKSxTLnVzZWNvbG9ybWFwP3AuaGlnaGxpZ2h0VGludFtlXT13LmNvbnRvdXJUaW50W2VdPTA6cC5oaWdobGlnaHRUaW50W2VdPXcuY29udG91clRpbnRbZV09MSx3LmNvbnRvdXJXaWR0aFtlXT1TLndpZHRoLHRoaXMuY29udG91clN0YXJ0W2VdPVMuc3RhcnQsdGhpcy5jb250b3VyRW5kW2VdPVMuZW5kLHRoaXMuY29udG91clNpemVbZV09Uy5zaXplKToodGhpcy5zaG93Q29udG91cltlXT0hMSx0aGlzLmNvbnRvdXJTdGFydFtlXT1udWxsLHRoaXMuY29udG91ckVuZFtlXT1udWxsLHRoaXMuY29udG91clNpemVbZV09MCksUy5oaWdobGlnaHQmJih3LmR5bmFtaWNDb2xvcltlXT11KFMuaGlnaGxpZ2h0Y29sb3IpLHcuZHluYW1pY1dpZHRoW2VdPVMuaGlnaGxpZ2h0d2lkdGgpKX0oZnVuY3Rpb24odCl7dmFyIGU9dFswXS5yZ2Iscj10W3QubGVuZ3RoLTFdLnJnYjtyZXR1cm4gZVswXT09PXJbMF0mJmVbMV09PT1yWzFdJiZlWzJdPT09clsyXSYmZVszXT09PXJbM119KShkKSYmKHcudmVydGV4Q29sb3I9ITApLHcub2JqZWN0T2Zmc2V0PXRoaXMub2JqZWN0T2Zmc2V0LHcuY29vcmRzPWIscC51cGRhdGUodykscC52aXNpYmxlPXQudmlzaWJsZSxwLmVuYWJsZUR5bmFtaWM9QSxwLmVuYWJsZUhpZ2hsaWdodD1BLHAuc25hcFRvRGF0YT0hMCwibGlnaHRpbmciaW4gdCYmKHAuYW1iaWVudExpZ2h0PXQubGlnaHRpbmcuYW1iaWVudCxwLmRpZmZ1c2VMaWdodD10LmxpZ2h0aW5nLmRpZmZ1c2UscC5zcGVjdWxhckxpZ2h0PXQubGlnaHRpbmcuc3BlY3VsYXIscC5yb3VnaG5lc3M9dC5saWdodGluZy5yb3VnaG5lc3MscC5mcmVzbmVsPXQubGlnaHRpbmcuZnJlc25lbCksImxpZ2h0cG9zaXRpb24iaW4gdCYmKHAubGlnaHRQb3NpdGlvbj1bdC5saWdodHBvc2l0aW9uLngsdC5saWdodHBvc2l0aW9uLnksdC5saWdodHBvc2l0aW9uLnpdKX0scC5kaXNwb3NlPWZ1bmN0aW9uKCl7dGhpcy5zY2VuZS5nbHBsb3QucmVtb3ZlKHRoaXMuc3VyZmFjZSksdGhpcy5zdXJmYWNlLmRpc3Bvc2UoKX0sZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9dC5nbHBsb3QuZ2wsaT1uKHtnbDpyfSksYT1uZXcgaCh0LGksZS51aWQpO3JldHVybiBpLl90cmFjZT1hLGEudXBkYXRlKGUpLHQuZ2xwbG90LmFkZChpKSxhfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiOjc3MiwiLi4vLi4vbGliL3N0cjJyZ2JhcnJheSI6ODAxLCIuLi9oZWF0bWFwL2ZpbmRfZW1wdGllcyI6MTA2NCwiLi4vaGVhdG1hcC9pbnRlcnAyZCI6MTA2NywiZ2wtc3VyZmFjZTNkIjozMzYsbmRhcnJheTo0NjIsIm5kYXJyYXktbGluZWFyLWludGVycG9sYXRlIjo0NTZ9XSwxMzE4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3JlZ2lzdHJ5IiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9kZWZhdWx0cyIpLG89dCgiLi9hdHRyaWJ1dGVzIik7ZnVuY3Rpb24gcyh0LGUscixuKXt2YXIgaT1uKCJvcGFjaXR5c2NhbGUiKTsibWF4Ij09PWk/ZS5vcGFjaXR5c2NhbGU9W1swLC4xXSxbMSwxXV06Im1pbiI9PT1pP2Uub3BhY2l0eXNjYWxlPVtbMCwxXSxbMSwuMV1dOiJleHRyZW1lcyI9PT1pP2Uub3BhY2l0eXNjYWxlPWZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG49MDtuPDMyO24rKyl7dmFyIGk9bi8zMSxhPWUrKDEtZSkqKDEtTWF0aC5wb3coTWF0aC5zaW4odCppKk1hdGguUEkpLDIpKTtyLnB1c2goW2ksTWF0aC5tYXgoMCxNYXRoLm1pbigxLGEpKV0pfXJldHVybiByfSgxLC4xKTpmdW5jdGlvbih0KXt2YXIgZT0wO2lmKCFBcnJheS5pc0FycmF5KHQpfHx0Lmxlbmd0aDwyKXJldHVybiExO2lmKCF0WzBdfHwhdFt0Lmxlbmd0aC0xXSlyZXR1cm4hMTtpZigwIT0rdFswXVswXXx8MSE9K3RbdC5sZW5ndGgtMV1bMF0pcmV0dXJuITE7Zm9yKHZhciByPTA7cjx0Lmxlbmd0aDtyKyspe3ZhciBuPXRbcl07aWYoMiE9PW4ubGVuZ3RofHwrblswXTxlKXJldHVybiExO2U9K25bMF19cmV0dXJuITB9KGkpfHwoZS5vcGFjaXR5c2NhbGU9dm9pZCAwKX1mdW5jdGlvbiBsKHQsZSxyKXtlIGluIHQmJiEociBpbiB0KSYmKHRbcl09dFtlXSl9ZS5leHBvcnRzPXtzdXBwbHlEZWZhdWx0czpmdW5jdGlvbih0LGUscixjKXt2YXIgdSxmO2Z1bmN0aW9uIGgocixuKXtyZXR1cm4gaS5jb2VyY2UodCxlLG8scixuKX12YXIgcD1oKCJ4IiksZD1oKCJ5IiksbT1oKCJ6Iik7aWYoIW18fCFtLmxlbmd0aHx8cCYmcC5sZW5ndGg8MXx8ZCYmZC5sZW5ndGg8MSllLnZpc2libGU9ITE7ZWxzZXtlLl94bGVuZ3RoPUFycmF5LmlzQXJyYXkocCkmJmkuaXNBcnJheU9yVHlwZWRBcnJheShwWzBdKT9tLmxlbmd0aDptWzBdLmxlbmd0aCxlLl95bGVuZ3RoPW0ubGVuZ3RoLG4uZ2V0Q29tcG9uZW50TWV0aG9kKCJjYWxlbmRhcnMiLCJoYW5kbGVUcmFjZURlZmF1bHRzIikodCxlLFsieCIsInkiLCJ6Il0sYyksaCgidGV4dCIpLGgoImhvdmVydGV4dCIpLGgoImhvdmVydGVtcGxhdGUiKSxoKCJ4aG92ZXJmb3JtYXQiKSxoKCJ5aG92ZXJmb3JtYXQiKSxoKCJ6aG92ZXJmb3JtYXQiKSxbImxpZ2h0aW5nLmFtYmllbnQiLCJsaWdodGluZy5kaWZmdXNlIiwibGlnaHRpbmcuc3BlY3VsYXIiLCJsaWdodGluZy5yb3VnaG5lc3MiLCJsaWdodGluZy5mcmVzbmVsIiwibGlnaHRwb3NpdGlvbi54IiwibGlnaHRwb3NpdGlvbi55IiwibGlnaHRwb3NpdGlvbi56IiwiaGlkZXN1cmZhY2UiLCJjb25uZWN0Z2FwcyIsIm9wYWNpdHkiXS5mb3JFYWNoKChmdW5jdGlvbih0KXtoKHQpfSkpO3ZhciBnPWgoInN1cmZhY2Vjb2xvciIpLHY9WyJ4IiwieSIsInoiXTtmb3IodT0wO3U8MzsrK3Upe3ZhciB5PSJjb250b3Vycy4iK3ZbdV0seD1oKHkrIi5zaG93IiksYj1oKHkrIi5oaWdobGlnaHQiKTtpZih4fHxiKWZvcihmPTA7ZjwzOysrZiloKHkrIi5wcm9qZWN0LiIrdltmXSk7eCYmKGgoeSsiLmNvbG9yIiksaCh5KyIud2lkdGgiKSxoKHkrIi51c2Vjb2xvcm1hcCIpKSxiJiYoaCh5KyIuaGlnaGxpZ2h0Y29sb3IiKSxoKHkrIi5oaWdobGlnaHR3aWR0aCIpKSxoKHkrIi5zdGFydCIpLGgoeSsiLmVuZCIpLGgoeSsiLnNpemUiKX1nfHwobCh0LCJ6bWluIiwiY21pbiIpLGwodCwiem1heCIsImNtYXgiKSxsKHQsInphdXRvIiwiY2F1dG8iKSksYSh0LGUsYyxoLHtwcmVmaXg6IiIsY0xldHRlcjoiYyJ9KSxzKHQsZSxjLGgpLGUuX2xlbmd0aD1udWxsfX0sb3BhY2l0eXNjYWxlRGVmYXVsdHM6c319LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvcnNjYWxlL2RlZmF1bHRzIjo2NDksIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9yZWdpc3RyeSI6OTA0LCIuL2F0dHJpYnV0ZXMiOjEzMTV9XSwxMzE5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY29sb3JiYXI6e21pbjoiY21pbiIsbWF4OiJjbWF4In0sY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vY29udmVydCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJzdXJmYWNlIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9nbDNkIiksY2F0ZWdvcmllczpbImdsM2QiLCIyZE1hcCIsInNob3dMZWdlbmQiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9nbDNkIjo4NjksIi4vYXR0cmlidXRlcyI6MTMxNSwiLi9jYWxjIjoxMzE2LCIuL2NvbnZlcnQiOjEzMTcsIi4vZGVmYXVsdHMiOjEzMTh9XSwxMzIwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2NvbXBvbmVudHMvYW5ub3RhdGlvbnMvYXR0cmlidXRlcyIpLGk9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsYT10KCIuLi8uLi9wbG90X2FwaS9lZGl0X3R5cGVzIikub3ZlcnJpZGVBbGwsbz10KCIuLi8uLi9wbG90cy9mb250X2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL3Bsb3RzL2RvbWFpbiIpLmF0dHJpYnV0ZXMsbD10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmRlc2NyaXB0aW9uT25seU51bWJlcnM7KGUuZXhwb3J0cz1hKHtkb21haW46cyh7bmFtZToidGFibGUiLHRyYWNlOiEwfSksY29sdW1ud2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMCxkZmx0Om51bGx9LGNvbHVtbm9yZGVyOnt2YWxUeXBlOiJkYXRhX2FycmF5In0saGVhZGVyOnt2YWx1ZXM6e3ZhbFR5cGU6ImRhdGFfYXJyYXkiLGRmbHQ6W119LGZvcm1hdDp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXSxkZXNjcmlwdGlvbjpsKCJjZWxsIHZhbHVlIil9LHByZWZpeDp7dmFsVHlwZToic3RyaW5nIixhcnJheU9rOiEwLGRmbHQ6bnVsbH0sc3VmZml4Ont2YWxUeXBlOiJzdHJpbmciLGFycmF5T2s6ITAsZGZsdDpudWxsfSxoZWlnaHQ6e3ZhbFR5cGU6Im51bWJlciIsZGZsdDoyOH0sYWxpZ246aSh7fSxuLmFsaWduLHthcnJheU9rOiEwfSksbGluZTp7d2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsYXJyYXlPazohMCxkZmx0OjF9LGNvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxkZmx0OiJncmV5In19LGZpbGw6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsYXJyYXlPazohMCxkZmx0OiJ3aGl0ZSJ9fSxmb250Omkoe30sbyh7YXJyYXlPazohMH0pKX0sY2VsbHM6e3ZhbHVlczp7dmFsVHlwZToiZGF0YV9hcnJheSIsZGZsdDpbXX0sZm9ybWF0Ont2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdLGRlc2NyaXB0aW9uOmwoImNlbGwgdmFsdWUiKX0scHJlZml4Ont2YWxUeXBlOiJzdHJpbmciLGFycmF5T2s6ITAsZGZsdDpudWxsfSxzdWZmaXg6e3ZhbFR5cGU6InN0cmluZyIsYXJyYXlPazohMCxkZmx0Om51bGx9LGhlaWdodDp7dmFsVHlwZToibnVtYmVyIixkZmx0OjIwfSxhbGlnbjppKHt9LG4uYWxpZ24se2FycmF5T2s6ITB9KSxsaW5lOnt3aWR0aDp7dmFsVHlwZToibnVtYmVyIixhcnJheU9rOiEwLGRmbHQ6MX0sY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwLGRmbHQ6ImdyZXkifX0sZmlsbDp7Y29sb3I6e3ZhbFR5cGU6ImNvbG9yIixhcnJheU9rOiEwLGRmbHQ6IndoaXRlIn19LGZvbnQ6aSh7fSxvKHthcnJheU9rOiEwfSkpfX0sImNhbGMiLCJmcm9tLXJvb3QiKSkudHJhbnNmb3Jtcz12b2lkIDB9LHsiLi4vLi4vY29tcG9uZW50cy9hbm5vdGF0aW9ucy9hdHRyaWJ1dGVzIjo2MjIsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyI6ODMwLCIuLi8uLi9wbG90cy9kb21haW4iOjg1NSwiLi4vLi4vcGxvdHMvZm9udF9hdHRyaWJ1dGVzIjo4NTZ9XSwxMzIxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL2dldF9kYXRhIikuZ2V0TW9kdWxlQ2FsY0RhdGEsaT10KCIuL3Bsb3QiKTtyLm5hbWU9InRhYmxlIixyLnBsb3Q9ZnVuY3Rpb24odCl7dmFyIGU9bih0LmNhbGNkYXRhLCJ0YWJsZSIpWzBdO2UubGVuZ3RoJiZpKHQsZSl9LHIuY2xlYW49ZnVuY3Rpb24odCxlLHIsbil7dmFyIGk9bi5faGFzJiZuLl9oYXMoInRhYmxlIiksYT1lLl9oYXMmJmUuX2hhcygidGFibGUiKTtpJiYhYSYmbi5fcGFwZXJkaXYuc2VsZWN0QWxsKCIudGFibGUiKS5yZW1vdmUoKX19LHsiLi4vLi4vcGxvdHMvZ2V0X2RhdGEiOjg2NCwiLi9wbG90IjoxMzI4fV0sMTMyMjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIvZ3VwIikud3JhcDtlLmV4cG9ydHM9ZnVuY3Rpb24oKXtyZXR1cm4gbih7fSl9fSx7Ii4uLy4uL2xpYi9ndXAiOjc3M31dLDEzMjM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXtjZWxsUGFkOjgsY29sdW1uRXh0ZW50T2Zmc2V0OjEwLGNvbHVtblRpdGxlT2Zmc2V0OjI4LGVtcHR5SGVhZGVySGVpZ2h0OjE2LGxhdGV4Q2hlY2s6L15cJC4qXCQkLyxnb2xkZW5SYXRpbzoxLjYxOCxsaW5lQnJlYWtlcjoiPGJyPiIsbWF4RGltZW5zaW9uQ291bnQ6NjAsb3ZlcmRyYWc6NDUscmVsZWFzZVRyYW5zaXRpb25EdXJhdGlvbjoxMjAscmVsZWFzZVRyYW5zaXRpb25FYXNlOiJjdWJpYy1vdXQiLHNjcm9sbGJhckNhcHR1cmVXaWR0aDoxOCxzY3JvbGxiYXJIaWRlRGVsYXk6MWUzLHNjcm9sbGJhckhpZGVEdXJhdGlvbjoxZTMsc2Nyb2xsYmFyT2Zmc2V0OjUsc2Nyb2xsYmFyV2lkdGg6OCx0cmFuc2l0aW9uRHVyYXRpb246MTAwLHRyYW5zaXRpb25FYXNlOiJjdWJpYy1vdXQiLHVwbGlmdDo1LHdyYXBTcGFjZXI6IiAiLHdyYXBTcGxpdENoYXJhY3RlcjoiICIsY246e3RhYmxlOiJ0YWJsZSIsdGFibGVDb250cm9sVmlldzoidGFibGUtY29udHJvbC12aWV3IixzY3JvbGxCYWNrZ3JvdW5kOiJzY3JvbGwtYmFja2dyb3VuZCIseUNvbHVtbjoieS1jb2x1bW4iLGNvbHVtbkJsb2NrOiJjb2x1bW4tYmxvY2siLHNjcm9sbEFyZWFDbGlwOiJzY3JvbGwtYXJlYS1jbGlwIixzY3JvbGxBcmVhQ2xpcFJlY3Q6InNjcm9sbC1hcmVhLWNsaXAtcmVjdCIsY29sdW1uQm91bmRhcnk6ImNvbHVtbi1ib3VuZGFyeSIsY29sdW1uQm91bmRhcnlDbGlwcGF0aDoiY29sdW1uLWJvdW5kYXJ5LWNsaXBwYXRoIixjb2x1bW5Cb3VuZGFyeVJlY3Q6ImNvbHVtbi1ib3VuZGFyeS1yZWN0Iixjb2x1bW5DZWxsczoiY29sdW1uLWNlbGxzIixjb2x1bW5DZWxsOiJjb2x1bW4tY2VsbCIsY2VsbFJlY3Q6ImNlbGwtcmVjdCIsY2VsbFRleHQ6ImNlbGwtdGV4dCIsY2VsbFRleHRIb2xkZXI6ImNlbGwtdGV4dC1ob2xkZXIiLHNjcm9sbGJhcktpdDoic2Nyb2xsYmFyLWtpdCIsc2Nyb2xsYmFyOiJzY3JvbGxiYXIiLHNjcm9sbGJhclNsaWRlcjoic2Nyb2xsYmFyLXNsaWRlciIsc2Nyb2xsYmFyR2x5cGg6InNjcm9sbGJhci1nbHlwaCIsc2Nyb2xsYmFyQ2FwdHVyZVpvbmU6InNjcm9sbGJhci1jYXB0dXJlLXpvbmUifX19LHt9XSwxMzI0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIiksaT10KCIuLi8uLi9saWIvZXh0ZW5kIikuZXh0ZW5kRmxhdCxhPXQoImZhc3QtaXNudW1lcmljIik7ZnVuY3Rpb24gbyh0KXtpZihBcnJheS5pc0FycmF5KHQpKXtmb3IodmFyIGU9MCxyPTA7cjx0Lmxlbmd0aDtyKyspZT1NYXRoLm1heChlLG8odFtyXSkpO3JldHVybiBlfXJldHVybiB0fWZ1bmN0aW9uIHModCxlKXtyZXR1cm4gdCtlfWZ1bmN0aW9uIGwodCl7dmFyIGUscj10LnNsaWNlKCksbj0xLzAsaT0wO2ZvcihlPTA7ZTxyLmxlbmd0aDtlKyspQXJyYXkuaXNBcnJheShyW2VdKXx8KHJbZV09W3JbZV1dKSxuPU1hdGgubWluKG4scltlXS5sZW5ndGgpLGk9TWF0aC5tYXgoaSxyW2VdLmxlbmd0aCk7aWYobiE9PWkpZm9yKGU9MDtlPHIubGVuZ3RoO2UrKyl7dmFyIGE9aS1yW2VdLmxlbmd0aDthJiYocltlXT1yW2VdLmNvbmNhdChjKGEpKSl9cmV0dXJuIHJ9ZnVuY3Rpb24gYyh0KXtmb3IodmFyIGU9bmV3IEFycmF5KHQpLHI9MDtyPHQ7cisrKWVbcl09IiI7cmV0dXJuIGV9ZnVuY3Rpb24gdSh0KXtyZXR1cm4gdC5jYWxjZGF0YS5jb2x1bW5zLnJlZHVjZSgoZnVuY3Rpb24oZSxyKXtyZXR1cm4gci54SW5kZXg8dC54SW5kZXg/ZStyLmNvbHVtbldpZHRoOmV9KSwwKX1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIE9iamVjdC5rZXlzKHQpLm1hcCgoZnVuY3Rpb24ocil7cmV0dXJuIGkoe30sdFtyXSx7YXV4aWxpYXJ5QmxvY2tzOmV9KX0pKX1mdW5jdGlvbiBoKHQsZSl7Zm9yKHZhciByLG49e30saT0wLGE9MCxvPXtmaXJzdFJvd0luZGV4Om51bGwsbGFzdFJvd0luZGV4Om51bGwscm93czpbXX0scz0wLGw9MCxjPTA7Yzx0Lmxlbmd0aDtjKyspcj10W2NdLG8ucm93cy5wdXNoKHtyb3dJbmRleDpjLHJvd0hlaWdodDpyfSksKChhKz1yKT49ZXx8Yz09PXQubGVuZ3RoLTEpJiYobltpXT1vLG8ua2V5PWwrKyxvLmZpcnN0Um93SW5kZXg9cyxvLmxhc3RSb3dJbmRleD1jLG89e2ZpcnN0Um93SW5kZXg6bnVsbCxsYXN0Um93SW5kZXg6bnVsbCxyb3dzOltdfSxpKz1hLHM9YysxLGE9MCk7cmV0dXJuIG59ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7dmFyIHI9bChlLmNlbGxzLnZhbHVlcykscD1mdW5jdGlvbih0KXtyZXR1cm4gdC5zbGljZShlLmhlYWRlci52YWx1ZXMubGVuZ3RoLHQubGVuZ3RoKX0sZD1sKGUuaGVhZGVyLnZhbHVlcyk7ZC5sZW5ndGgmJiFkWzBdLmxlbmd0aCYmKGRbMF09WyIiXSxkPWwoZCkpO3ZhciBtPWQuY29uY2F0KHAocikubWFwKChmdW5jdGlvbigpe3JldHVybiBjKChkWzBdfHxbIiJdKS5sZW5ndGgpfSkpKSxnPWUuZG9tYWluLHY9TWF0aC5mbG9vcih0Ll9mdWxsTGF5b3V0Ll9zaXplLncqKGcueFsxXS1nLnhbMF0pKSx5PU1hdGguZmxvb3IodC5fZnVsbExheW91dC5fc2l6ZS5oKihnLnlbMV0tZy55WzBdKSkseD1lLmhlYWRlci52YWx1ZXMubGVuZ3RoP21bMF0ubWFwKChmdW5jdGlvbigpe3JldHVybiBlLmhlYWRlci5oZWlnaHR9KSk6W24uZW1wdHlIZWFkZXJIZWlnaHRdLGI9ci5sZW5ndGg/clswXS5tYXAoKGZ1bmN0aW9uKCl7cmV0dXJuIGUuY2VsbHMuaGVpZ2h0fSkpOltdLF89eC5yZWR1Y2UocywwKSx3PWgoYix5LV8rbi51cGxpZnQpLFQ9ZihoKHgsXyksW10pLGs9Zih3LFQpLEE9e30sTT1lLl9mdWxsSW5wdXQuY29sdW1ub3JkZXIuY29uY2F0KHAoci5tYXAoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIGV9KSkpKSxTPW0ubWFwKChmdW5jdGlvbih0LHIpe3ZhciBuPUFycmF5LmlzQXJyYXkoZS5jb2x1bW53aWR0aCk/ZS5jb2x1bW53aWR0aFtNYXRoLm1pbihyLGUuY29sdW1ud2lkdGgubGVuZ3RoLTEpXTplLmNvbHVtbndpZHRoO3JldHVybiBhKG4pP051bWJlcihuKToxfSkpLEU9Uy5yZWR1Y2UocywwKTtTPVMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC9FKnZ9KSk7dmFyIEw9TWF0aC5tYXgobyhlLmhlYWRlci5saW5lLndpZHRoKSxvKGUuY2VsbHMubGluZS53aWR0aCkpLEM9e2tleTplLnVpZCt0Ll9jb250ZXh0LnN0YXRpY1Bsb3QsdHJhbnNsYXRlWDpnLnhbMF0qdC5fZnVsbExheW91dC5fc2l6ZS53LHRyYW5zbGF0ZVk6dC5fZnVsbExheW91dC5fc2l6ZS5oKigxLWcueVsxXSksc2l6ZTp0Ll9mdWxsTGF5b3V0Ll9zaXplLHdpZHRoOnYsbWF4TGluZVdpZHRoOkwsaGVpZ2h0OnksY29sdW1uT3JkZXI6TSxncm91cEhlaWdodDp5LHJvd0Jsb2NrczprLGhlYWRlclJvd0Jsb2NrczpULHNjcm9sbFk6MCxjZWxsczppKHt9LGUuY2VsbHMse3ZhbHVlczpyfSksaGVhZGVyQ2VsbHM6aSh7fSxlLmhlYWRlcix7dmFsdWVzOm19KSxnZENvbHVtbnM6bS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkpLGdkQ29sdW1uc09yaWdpbmFsT3JkZXI6bS5tYXAoKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdfSkpLHByZXZQYWdlczpbMCwwXSxzY3JvbGxiYXJTdGF0ZTp7c2Nyb2xsYmFyU2Nyb2xsSW5Qcm9ncmVzczohMX0sY29sdW1uczptLm1hcCgoZnVuY3Rpb24odCxlKXt2YXIgcj1BW3RdO3JldHVybiBBW3RdPShyfHwwKSsxLHtrZXk6dCsiX18iK0FbdF0sbGFiZWw6dCxzcGVjSW5kZXg6ZSx4SW5kZXg6TVtlXSx4U2NhbGU6dSx4OnZvaWQgMCxjYWxjZGF0YTp2b2lkIDAsY29sdW1uV2lkdGg6U1tlXX19KSl9O3JldHVybiBDLmNvbHVtbnMuZm9yRWFjaCgoZnVuY3Rpb24odCl7dC5jYWxjZGF0YT1DLHQueD11KHQpfSkpLEN9fSx7Ii4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi9jb25zdGFudHMiOjEzMjMsImZhc3QtaXNudW1lcmljIjoyNDJ9XSwxMzI1OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0O3Iuc3BsaXRUb1BhbmVscz1mdW5jdGlvbih0KXt2YXIgZT1bMCwwXSxyPW4oe30sdCx7a2V5OiJoZWFkZXIiLHR5cGU6ImhlYWRlciIscGFnZTowLHByZXZQYWdlczplLGN1cnJlbnRSZXBhaW50OltudWxsLG51bGxdLGRyYWdIYW5kbGU6ITAsdmFsdWVzOnQuY2FsY2RhdGEuaGVhZGVyQ2VsbHMudmFsdWVzW3Quc3BlY0luZGV4XSxyb3dCbG9ja3M6dC5jYWxjZGF0YS5oZWFkZXJSb3dCbG9ja3MsY2FsY2RhdGE6bih7fSx0LmNhbGNkYXRhLHtjZWxsczp0LmNhbGNkYXRhLmhlYWRlckNlbGxzfSl9KTtyZXR1cm5bbih7fSx0LHtrZXk6ImNlbGxzMSIsdHlwZToiY2VsbHMiLHBhZ2U6MCxwcmV2UGFnZXM6ZSxjdXJyZW50UmVwYWludDpbbnVsbCxudWxsXSxkcmFnSGFuZGxlOiExLHZhbHVlczp0LmNhbGNkYXRhLmNlbGxzLnZhbHVlc1t0LnNwZWNJbmRleF0scm93QmxvY2tzOnQuY2FsY2RhdGEucm93QmxvY2tzfSksbih7fSx0LHtrZXk6ImNlbGxzMiIsdHlwZToiY2VsbHMiLHBhZ2U6MSxwcmV2UGFnZXM6ZSxjdXJyZW50UmVwYWludDpbbnVsbCxudWxsXSxkcmFnSGFuZGxlOiExLHZhbHVlczp0LmNhbGNkYXRhLmNlbGxzLnZhbHVlc1t0LnNwZWNJbmRleF0scm93QmxvY2tzOnQuY2FsY2RhdGEucm93QmxvY2tzfSkscl19LHIuc3BsaXRUb0NlbGxzPWZ1bmN0aW9uKHQpe3ZhciBlPWZ1bmN0aW9uKHQpe3ZhciBlPXQucm93QmxvY2tzW3QucGFnZV0scj1lP2Uucm93c1swXS5yb3dJbmRleDowLG49ZT9yK2Uucm93cy5sZW5ndGg6MDtyZXR1cm5bcixuXX0odCk7cmV0dXJuKHQudmFsdWVzfHxbXSkuc2xpY2UoZVswXSxlWzFdKS5tYXAoKGZ1bmN0aW9uKHIsbil7cmV0dXJue2tleVdpdGhpbkJsb2NrOm4rKCJzdHJpbmciPT10eXBlb2YgciYmci5tYXRjaCgvWzwkJj4gXS8pPyJfa2V5YnVzdGVyXyIrTWF0aC5yYW5kb20oKToiIiksa2V5OmVbMF0rbixjb2x1bW46dCxjYWxjZGF0YTp0LmNhbGNkYXRhLHBhZ2U6dC5wYWdlLHJvd0Jsb2Nrczp0LnJvd0Jsb2Nrcyx2YWx1ZTpyfX0pKX19LHsiLi4vLi4vbGliL2V4dGVuZCI6NzY2fV0sMTMyNjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vYXR0cmlidXRlcyIpLGE9dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuZGVmYXVsdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLG8pe2Z1bmN0aW9uIHMocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1hKGUsbyxzKSxzKCJjb2x1bW53aWR0aCIpLHMoImhlYWRlci52YWx1ZXMiKSxzKCJoZWFkZXIuZm9ybWF0IikscygiaGVhZGVyLmFsaWduIikscygiaGVhZGVyLnByZWZpeCIpLHMoImhlYWRlci5zdWZmaXgiKSxzKCJoZWFkZXIuaGVpZ2h0IikscygiaGVhZGVyLmxpbmUud2lkdGgiKSxzKCJoZWFkZXIubGluZS5jb2xvciIpLHMoImhlYWRlci5maWxsLmNvbG9yIiksbi5jb2VyY2VGb250KHMsImhlYWRlci5mb250IixuLmV4dGVuZEZsYXQoe30sby5mb250KSksZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jb2x1bW5vcmRlcnx8W10sbj10LmhlYWRlci52YWx1ZXMubGVuZ3RoLGk9ci5zbGljZSgwLG4pLGE9aS5zbGljZSgpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQtZX0pKSxvPWkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gYS5pbmRleE9mKHQpfSkpLHM9by5sZW5ndGg7czxuO3MrKylvLnB1c2gocyk7ZSgiY29sdW1ub3JkZXIiLG8pfShlLHMpLHMoImNlbGxzLnZhbHVlcyIpLHMoImNlbGxzLmZvcm1hdCIpLHMoImNlbGxzLmFsaWduIikscygiY2VsbHMucHJlZml4IikscygiY2VsbHMuc3VmZml4IikscygiY2VsbHMuaGVpZ2h0IikscygiY2VsbHMubGluZS53aWR0aCIpLHMoImNlbGxzLmxpbmUuY29sb3IiKSxzKCJjZWxscy5maWxsLmNvbG9yIiksbi5jb2VyY2VGb250KHMsImNlbGxzLmZvbnQiLG4uZXh0ZW5kRmxhdCh7fSxvLmZvbnQpKSxlLl9sZW5ndGg9bnVsbH19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6ODU1LCIuL2F0dHJpYnV0ZXMiOjEzMjB9XSwxMzI3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY2FsYzp0KCIuL2NhbGMiKSxwbG90OnQoIi4vcGxvdCIpLG1vZHVsZVR5cGU6InRyYWNlIixuYW1lOiJ0YWJsZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxjYXRlZ29yaWVzOlsibm9PcGFjaXR5Il0sbWV0YTp7fX19LHsiLi9hdHRyaWJ1dGVzIjoxMzIwLCIuL2Jhc2VfcGxvdCI6MTMyMSwiLi9jYWxjIjoxMzIyLCIuL2RlZmF1bHRzIjoxMzI2LCIuL3Bsb3QiOjEzMjh9XSwxMzI4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4vY29uc3RhbnRzIiksaT10KCJAcGxvdGx5L2QzIiksYT10KCIuLi8uLi9saWIiKS5udW1iZXJGb3JtYXQsbz10KCIuLi8uLi9saWIvZ3VwIikscz10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxsPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLGM9dCgiLi4vLi4vbGliIikucmFpc2VUb1RvcCx1PXQoIi4uLy4uL2xpYiIpLnN0clRyYW5zbGF0ZSxmPXQoIi4uLy4uL2xpYiIpLmNhbmNlbFRyYW5zaXRpb24saD10KCIuL2RhdGFfcHJlcGFyYXRpb25faGVscGVyIikscD10KCIuL2RhdGFfc3BsaXRfaGVscGVycyIpLGQ9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpO2Z1bmN0aW9uIG0odCl7cmV0dXJuIE1hdGguY2VpbCh0LmNhbGNkYXRhLm1heExpbmVXaWR0aC8yKX1mdW5jdGlvbiBnKHQsZSl7cmV0dXJuImNsaXAiK3QuX2Z1bGxMYXlvdXQuX3VpZCsiX3Njcm9sbEFyZWFCb3R0b21DbGlwXyIrZS5rZXl9ZnVuY3Rpb24gdih0LGUpe3JldHVybiJjbGlwIit0Ll9mdWxsTGF5b3V0Ll91aWQrIl9jb2x1bW5Cb3VuZGFyeUNsaXBwYXRoXyIrZS5jYWxjZGF0YS5rZXkrIl8iK2Uuc3BlY0luZGV4fWZ1bmN0aW9uIHkodCl7cmV0dXJuW10uY29uY2F0LmFwcGx5KFtdLHQubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdH0pKSkubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC5fX2RhdGFfX30pKX1mdW5jdGlvbiB4KHQsZSxyKXt2YXIgYT10LnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxiYXJLaXQpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO2EuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uc2Nyb2xsYmFyS2l0LCEwKS5zdHlsZSgic2hhcGUtcmVuZGVyaW5nIiwiZ2VvbWV0cmljUHJlY2lzaW9uIiksYS5lYWNoKChmdW5jdGlvbih0KXt2YXIgZT10LnNjcm9sbGJhclN0YXRlO2UudG90YWxIZWlnaHQ9ZnVuY3Rpb24odCl7dmFyIGU9dC5yb3dCbG9ja3M7cmV0dXJuIEQoZSxlLmxlbmd0aC0xKSsoZS5sZW5ndGg/UihlW2UubGVuZ3RoLTFdLDEvMCk6MSl9KHQpLGUuc2Nyb2xsYWJsZUFyZWFIZWlnaHQ9dC5ncm91cEhlaWdodC1TKHQpLGUuY3VycmVudGx5VmlzaWJsZUhlaWdodD1NYXRoLm1pbihlLnRvdGFsSGVpZ2h0LGUuc2Nyb2xsYWJsZUFyZWFIZWlnaHQpLGUucmF0aW89ZS5jdXJyZW50bHlWaXNpYmxlSGVpZ2h0L2UudG90YWxIZWlnaHQsZS5iYXJMZW5ndGg9TWF0aC5tYXgoZS5yYXRpbyplLmN1cnJlbnRseVZpc2libGVIZWlnaHQsbi5nb2xkZW5SYXRpbypuLnNjcm9sbGJhcldpZHRoKSxlLmJhcldpZ2dsZVJvb209ZS5jdXJyZW50bHlWaXNpYmxlSGVpZ2h0LWUuYmFyTGVuZ3RoLGUud2lnZ2xlUm9vbT1NYXRoLm1heCgwLGUudG90YWxIZWlnaHQtZS5zY3JvbGxhYmxlQXJlYUhlaWdodCksZS50b3BZPTA9PT1lLmJhcldpZ2dsZVJvb20/MDp0LnNjcm9sbFkvZS53aWdnbGVSb29tKmUuYmFyV2lnZ2xlUm9vbSxlLmJvdHRvbVk9ZS50b3BZK2UuYmFyTGVuZ3RoLGUuZHJhZ011bHRpcGxpZXI9ZS53aWdnbGVSb29tL2UuYmFyV2lnZ2xlUm9vbX0pKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgZT10LndpZHRoK24uc2Nyb2xsYmFyV2lkdGgvMituLnNjcm9sbGJhck9mZnNldDtyZXR1cm4gdShlLFModCkpfSkpO3ZhciBzPWEuc2VsZWN0QWxsKCIuIituLmNuLnNjcm9sbGJhcikuZGF0YShvLnJlcGVhdCxvLmtleUZ1bik7cy5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5zY3JvbGxiYXIsITApO3ZhciBsPXMuc2VsZWN0QWxsKCIuIituLmNuLnNjcm9sbGJhclNsaWRlcikuZGF0YShvLnJlcGVhdCxvLmtleUZ1bik7bC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5zY3JvbGxiYXJTbGlkZXIsITApLGwuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUoMCx0LnNjcm9sbGJhclN0YXRlLnRvcFl8fDApfSkpO3ZhciBjPWwuc2VsZWN0QWxsKCIuIituLmNuLnNjcm9sbGJhckdseXBoKS5kYXRhKG8ucmVwZWF0LG8ua2V5RnVuKTtjLmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZChuLmNuLnNjcm9sbGJhckdseXBoLCEwKS5hdHRyKCJzdHJva2UiLCJibGFjayIpLmF0dHIoInN0cm9rZS13aWR0aCIsbi5zY3JvbGxiYXJXaWR0aCkuYXR0cigic3Ryb2tlLWxpbmVjYXAiLCJyb3VuZCIpLmF0dHIoInkxIixuLnNjcm9sbGJhcldpZHRoLzIpLGMuYXR0cigieTIiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5zY3JvbGxiYXJTdGF0ZS5iYXJMZW5ndGgtbi5zY3JvbGxiYXJXaWR0aC8yfSkpLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sdW1uRHJhZ0luUHJvZ3Jlc3N8fCF0LnNjcm9sbGJhclN0YXRlLmJhcldpZ2dsZVJvb218fHI/MDouNH0pKSxjLnRyYW5zaXRpb24oKS5kZWxheSgwKS5kdXJhdGlvbigwKSxjLnRyYW5zaXRpb24oKS5kZWxheShuLnNjcm9sbGJhckhpZGVEZWxheSkuZHVyYXRpb24obi5zY3JvbGxiYXJIaWRlRHVyYXRpb24pLmF0dHIoInN0cm9rZS1vcGFjaXR5IiwwKTt2YXIgZj1zLnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxiYXJDYXB0dXJlWm9uZSkuZGF0YShvLnJlcGVhdCxvLmtleUZ1bik7Zi5lbnRlcigpLmFwcGVuZCgibGluZSIpLmNsYXNzZWQobi5jbi5zY3JvbGxiYXJDYXB0dXJlWm9uZSwhMCkuYXR0cigic3Ryb2tlIiwid2hpdGUiKS5hdHRyKCJzdHJva2Utb3BhY2l0eSIsLjAxKS5hdHRyKCJzdHJva2Utd2lkdGgiLG4uc2Nyb2xsYmFyQ2FwdHVyZVdpZHRoKS5hdHRyKCJzdHJva2UtbGluZWNhcCIsImJ1dHQiKS5hdHRyKCJ5MSIsMCkub24oIm1vdXNlZG93biIsKGZ1bmN0aW9uKHIpe3ZhciBuPWkuZXZlbnQueSxhPXRoaXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksbz1yLnNjcm9sbGJhclN0YXRlLHM9bi1hLnRvcCxsPWkuc2NhbGUubGluZWFyKCkuZG9tYWluKFswLG8uc2Nyb2xsYWJsZUFyZWFIZWlnaHRdKS5yYW5nZShbMCxvLnRvdGFsSGVpZ2h0XSkuY2xhbXAoITApO28udG9wWTw9cyYmczw9by5ib3R0b21ZfHxMKGUsdCxudWxsLGwocy1vLmJhckxlbmd0aC8yKSkocil9KSkuY2FsbChpLmJlaGF2aW9yLmRyYWcoKS5vcmlnaW4oKGZ1bmN0aW9uKHQpe3JldHVybiBpLmV2ZW50LnN0b3BQcm9wYWdhdGlvbigpLHQuc2Nyb2xsYmFyU3RhdGUuc2Nyb2xsYmFyU2Nyb2xsSW5Qcm9ncmVzcz0hMCx0fSkpLm9uKCJkcmFnIixMKGUsdCkpLm9uKCJkcmFnZW5kIiwoZnVuY3Rpb24oKXt9KSkpLGYuYXR0cigieTIiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5zY3JvbGxiYXJTdGF0ZS5zY3JvbGxhYmxlQXJlYUhlaWdodH0pKSxlLl9jb250ZXh0LnN0YXRpY1Bsb3QmJihjLnJlbW92ZSgpLGYucmVtb3ZlKCkpfWZ1bmN0aW9uIGIodCxlLHIsYSl7dmFyIGw9ZnVuY3Rpb24odCl7dmFyIGU9dC5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQ2VsbCkuZGF0YShwLnNwbGl0VG9DZWxscywoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5V2l0aGluQmxvY2t9KSk7cmV0dXJuIGUuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uY29sdW1uQ2VsbCwhMCksZS5leGl0KCkucmVtb3ZlKCksZX0oZnVuY3Rpb24odCl7dmFyIGU9dC5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQ2VsbHMpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO3JldHVybiBlLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLmNvbHVtbkNlbGxzLCEwKSxlLmV4aXQoKS5yZW1vdmUoKSxlfShyKSk7IWZ1bmN0aW9uKHQpe3QuZWFjaCgoZnVuY3Rpb24odCxlKXt2YXIgcj10LmNhbGNkYXRhLmNlbGxzLmZvbnQsbj10LmNvbHVtbi5zcGVjSW5kZXgsaT17c2l6ZTpUKHIuc2l6ZSxuLGUpLGNvbG9yOlQoci5jb2xvcixuLGUpLGZhbWlseTpUKHIuZmFtaWx5LG4sZSl9O3Qucm93TnVtYmVyPXQua2V5LHQuYWxpZ249VCh0LmNhbGNkYXRhLmNlbGxzLmFsaWduLG4sZSksdC5jZWxsQm9yZGVyV2lkdGg9VCh0LmNhbGNkYXRhLmNlbGxzLmxpbmUud2lkdGgsbixlKSx0LmZvbnQ9aX0pKX0obCksZnVuY3Rpb24odCl7dC5hdHRyKCJ3aWR0aCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNvbHVtbi5jb2x1bW5XaWR0aH0pKS5hdHRyKCJzdHJva2Utd2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5jZWxsQm9yZGVyV2lkdGh9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9aS5zZWxlY3QodGhpcyk7ZC5zdHJva2UoZSxUKHQuY2FsY2RhdGEuY2VsbHMubGluZS5jb2xvcix0LmNvbHVtbi5zcGVjSW5kZXgsdC5yb3dOdW1iZXIpKSxkLmZpbGwoZSxUKHQuY2FsY2RhdGEuY2VsbHMuZmlsbC5jb2xvcix0LmNvbHVtbi5zcGVjSW5kZXgsdC5yb3dOdW1iZXIpKX0pKX0oZnVuY3Rpb24odCl7dmFyIGU9dC5zZWxlY3RBbGwoIi4iK24uY24uY2VsbFJlY3QpLmRhdGEoby5yZXBlYXQsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleVdpdGhpbkJsb2NrfSkpO3JldHVybiBlLmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZChuLmNuLmNlbGxSZWN0LCEwKSxlfShsKSk7dmFyIGM9ZnVuY3Rpb24odCl7dmFyIGU9dC5zZWxlY3RBbGwoIi4iK24uY24uY2VsbFRleHQpLmRhdGEoby5yZXBlYXQsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleVdpdGhpbkJsb2NrfSkpO3JldHVybiBlLmVudGVyKCkuYXBwZW5kKCJ0ZXh0IikuY2xhc3NlZChuLmNuLmNlbGxUZXh0LCEwKS5zdHlsZSgiY3Vyc29yIiwoZnVuY3Rpb24oKXtyZXR1cm4iYXV0byJ9KSkub24oIm1vdXNlZG93biIsKGZ1bmN0aW9uKCl7aS5ldmVudC5zdG9wUHJvcGFnYXRpb24oKX0pKSxlfShmdW5jdGlvbih0KXt2YXIgZT10LnNlbGVjdEFsbCgiLiIrbi5jbi5jZWxsVGV4dEhvbGRlcikuZGF0YShvLnJlcGVhdCwoZnVuY3Rpb24odCl7cmV0dXJuIHQua2V5V2l0aGluQmxvY2t9KSk7cmV0dXJuIGUuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24uY2VsbFRleHRIb2xkZXIsITApLnN0eWxlKCJzaGFwZS1yZW5kZXJpbmciLCJnZW9tZXRyaWNQcmVjaXNpb24iKSxlfShsKSk7IWZ1bmN0aW9uKHQpe3QuZWFjaCgoZnVuY3Rpb24odCl7cy5mb250KGkuc2VsZWN0KHRoaXMpLHQuZm9udCl9KSl9KGMpLF8oYyxlLGEsdCkseihsKX1mdW5jdGlvbiBfKHQsZSxyLG8pe3QudGV4dCgoZnVuY3Rpb24odCl7dmFyIGU9dC5jb2x1bW4uc3BlY0luZGV4LHI9dC5yb3dOdW1iZXIsaT10LnZhbHVlLG89InN0cmluZyI9PXR5cGVvZiBpLHM9byYmaS5tYXRjaCgvPGJyPi9pKSxsPSFvfHxzO3QubWF5SGF2ZU1hcmt1cD1vJiZpLm1hdGNoKC9bPCY+XS8pO3ZhciBjLHU9InN0cmluZyI9PXR5cGVvZihjPWkpJiZjLm1hdGNoKG4ubGF0ZXhDaGVjayk7dC5sYXRleD11O3ZhciBmLGgscD11PyIiOlQodC5jYWxjZGF0YS5jZWxscy5wcmVmaXgsZSxyKXx8IiIsZD11PyIiOlQodC5jYWxjZGF0YS5jZWxscy5zdWZmaXgsZSxyKXx8IiIsbT11P251bGw6VCh0LmNhbGNkYXRhLmNlbGxzLmZvcm1hdCxlLHIpfHxudWxsLGc9cCsobT9hKG0pKHQudmFsdWUpOnQudmFsdWUpK2Q7aWYodC53cmFwcGluZ05lZWRlZD0hdC53cmFwcGVkJiYhbCYmIXUmJihmPXcoZykpLHQuY2VsbEhlaWdodE1heUluY3JlYXNlPXN8fHV8fHQubWF5SGF2ZU1hcmt1cHx8KHZvaWQgMD09PWY/dyhnKTpmKSx0Lm5lZWRzQ29udmVydFRvVHNwYW5zPXQubWF5SGF2ZU1hcmt1cHx8dC53cmFwcGluZ05lZWRlZHx8dC5sYXRleCx0LndyYXBwaW5nTmVlZGVkKXt2YXIgdj0oIiAiPT09bi53cmFwU3BsaXRDaGFyYWN0ZXI/Zy5yZXBsYWNlKC88YSBocmVmPS9naSwiPGFfaHJlZj0iKTpnKS5zcGxpdChuLndyYXBTcGxpdENoYXJhY3RlcikseT0iICI9PT1uLndyYXBTcGxpdENoYXJhY3Rlcj92Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJuIHQucmVwbGFjZSgvPGFfaHJlZj0vZ2ksIjxhIGhyZWY9Iil9KSk6djt0LmZyYWdtZW50cz15Lm1hcCgoZnVuY3Rpb24odCl7cmV0dXJue3RleHQ6dCx3aWR0aDpudWxsfX0pKSx0LmZyYWdtZW50cy5wdXNoKHtmcmFnbWVudDpuLndyYXBTcGFjZXIsd2lkdGg6bnVsbH0pLGg9eS5qb2luKG4ubGluZUJyZWFrZXIpK24ubGluZUJyZWFrZXIrbi53cmFwU3BhY2VyfWVsc2UgZGVsZXRlIHQuZnJhZ21lbnRzLGg9ZztyZXR1cm4gaH0pKS5hdHRyKCJkeSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0Lm5lZWRzQ29udmVydFRvVHNwYW5zPzA6IjAuNzVlbSJ9KSkuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGE9aS5zZWxlY3QodGhpcykscz10LndyYXBwaW5nTmVlZGVkP1A6STt0Lm5lZWRzQ29udmVydFRvVHNwYW5zP2wuY29udmVydFRvVHNwYW5zKGEsbyxzKHIsdGhpcyxlLG8sdCkpOmkuc2VsZWN0KHRoaXMucGFyZW50Tm9kZSkuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUoTyh0KSxuLmNlbGxQYWQpfSkpLmF0dHIoInRleHQtYW5jaG9yIiwoZnVuY3Rpb24odCl7cmV0dXJue2xlZnQ6InN0YXJ0IixjZW50ZXI6Im1pZGRsZSIscmlnaHQ6ImVuZCJ9W3QuYWxpZ25dfSkpfSkpfWZ1bmN0aW9uIHcodCl7cmV0dXJuLTEhPT10LmluZGV4T2Yobi53cmFwU3BsaXRDaGFyYWN0ZXIpfWZ1bmN0aW9uIFQodCxlLHIpe2lmKEFycmF5LmlzQXJyYXkodCkpe3ZhciBuPXRbTWF0aC5taW4oZSx0Lmxlbmd0aC0xKV07cmV0dXJuIEFycmF5LmlzQXJyYXkobik/bltNYXRoLm1pbihyLG4ubGVuZ3RoLTEpXTpufXJldHVybiB0fWZ1bmN0aW9uIGsodCxlLHIpe3QudHJhbnNpdGlvbigpLmVhc2Uobi5yZWxlYXNlVHJhbnNpdGlvbkVhc2UpLmR1cmF0aW9uKG4ucmVsZWFzZVRyYW5zaXRpb25EdXJhdGlvbikuYXR0cigidHJhbnNmb3JtIix1KGUueCxyKSl9ZnVuY3Rpb24gQSh0KXtyZXR1cm4iY2VsbHMiPT09dC50eXBlfWZ1bmN0aW9uIE0odCl7cmV0dXJuImhlYWRlciI9PT10LnR5cGV9ZnVuY3Rpb24gUyh0KXtyZXR1cm4odC5yb3dCbG9ja3MubGVuZ3RoP3Qucm93QmxvY2tzWzBdLmF1eGlsaWFyeUJsb2NrczpbXSkucmVkdWNlKChmdW5jdGlvbih0LGUpe3JldHVybiB0K1IoZSwxLzApfSksMCl9ZnVuY3Rpb24gRSh0LGUscil7dmFyIG49eShlKVswXTtpZih2b2lkIDAhPT1uKXt2YXIgaT1uLnJvd0Jsb2NrcyxhPW4uY2FsY2RhdGEsbz1EKGksaS5sZW5ndGgpLHM9bi5jYWxjZGF0YS5ncm91cEhlaWdodC1TKG4pLGw9YS5zY3JvbGxZPU1hdGgubWF4KDAsTWF0aC5taW4oby1zLGEuc2Nyb2xsWSkpLGM9ZnVuY3Rpb24odCxlLHIpe2Zvcih2YXIgbj1bXSxpPTAsYT0wO2E8dC5sZW5ndGg7YSsrKXtmb3IodmFyIG89dFthXSxzPW8ucm93cyxsPTAsYz0wO2M8cy5sZW5ndGg7YysrKWwrPXNbY10ucm93SGVpZ2h0O28uYWxsUm93c0hlaWdodD1sO2U8aStsJiZlK3I+aSYmbi5wdXNoKGEpLGkrPWx9cmV0dXJuIG59KGksbCxzKTsxPT09Yy5sZW5ndGgmJihjWzBdPT09aS5sZW5ndGgtMT9jLnVuc2hpZnQoY1swXS0xKTpjLnB1c2goY1swXSsxKSksY1swXSUyJiZjLnJldmVyc2UoKSxlLmVhY2goKGZ1bmN0aW9uKHQsZSl7dC5wYWdlPWNbZV0sdC5zY3JvbGxZPWx9KSksZS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXt2YXIgZT1EKHQucm93QmxvY2tzLHQucGFnZSktdC5zY3JvbGxZO3JldHVybiB1KDAsZSl9KSksdCYmKEModCxyLGUsYyxuLnByZXZQYWdlcyxuLDApLEModCxyLGUsYyxuLnByZXZQYWdlcyxuLDEpLHgocix0KSl9fWZ1bmN0aW9uIEwodCxlLHIsYSl7cmV0dXJuIGZ1bmN0aW9uKG8pe3ZhciBzPW8uY2FsY2RhdGE/by5jYWxjZGF0YTpvLGw9ZS5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBzLmtleT09PXQua2V5fSkpLGM9cnx8cy5zY3JvbGxiYXJTdGF0ZS5kcmFnTXVsdGlwbGllcix1PXMuc2Nyb2xsWTtzLnNjcm9sbFk9dm9pZCAwPT09YT9zLnNjcm9sbFkrYyppLmV2ZW50LmR5OmE7dmFyIGY9bC5zZWxlY3RBbGwoIi4iK24uY24ueUNvbHVtbikuc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkJsb2NrKS5maWx0ZXIoQSk7cmV0dXJuIEUodCxmLGwpLHMuc2Nyb2xsWT09PXV9fWZ1bmN0aW9uIEModCxlLHIsbixpLGEsbyl7bltvXSE9PWlbb10mJihjbGVhclRpbWVvdXQoYS5jdXJyZW50UmVwYWludFtvXSksYS5jdXJyZW50UmVwYWludFtvXT1zZXRUaW1lb3V0KChmdW5jdGlvbigpe3ZhciBhPXIuZmlsdGVyKChmdW5jdGlvbih0LGUpe3JldHVybiBlPT09byYmbltlXSE9PWlbZV19KSk7Yih0LGUsYSxyKSxpW29dPW5bb119KSkpfWZ1bmN0aW9uIFAodCxlLHIsYSl7cmV0dXJuIGZ1bmN0aW9uKCl7dmFyIG89aS5zZWxlY3QoZS5wYXJlbnROb2RlKTtvLmVhY2goKGZ1bmN0aW9uKHQpe3ZhciBlPXQuZnJhZ21lbnRzO28uc2VsZWN0QWxsKCJ0c3Bhbi5saW5lIikuZWFjaCgoZnVuY3Rpb24odCxyKXtlW3JdLndpZHRoPXRoaXMuZ2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCl9KSk7dmFyIHIsaSxhPWVbZS5sZW5ndGgtMV0ud2lkdGgscz1lLnNsaWNlKDAsLTEpLGw9W10sYz0wLHU9dC5jb2x1bW4uY29sdW1uV2lkdGgtMipuLmNlbGxQYWQ7Zm9yKHQudmFsdWU9IiI7cy5sZW5ndGg7KWMrKGk9KHI9cy5zaGlmdCgpKS53aWR0aCthKT51JiYodC52YWx1ZSs9bC5qb2luKG4ud3JhcFNwYWNlcikrbi5saW5lQnJlYWtlcixsPVtdLGM9MCksbC5wdXNoKHIudGV4dCksYys9aTtjJiYodC52YWx1ZSs9bC5qb2luKG4ud3JhcFNwYWNlcikpLHQud3JhcHBlZD0hMH0pKSxvLnNlbGVjdEFsbCgidHNwYW4ubGluZSIpLnJlbW92ZSgpLF8oby5zZWxlY3QoIi4iK24uY24uY2VsbFRleHQpLHIsdCxhKSxpLnNlbGVjdChlLnBhcmVudE5vZGUucGFyZW50Tm9kZSkuY2FsbCh6KX19ZnVuY3Rpb24gSSh0LGUscixhLG8pe3JldHVybiBmdW5jdGlvbigpe2lmKCFvLnNldHRsZWRZKXt2YXIgcz1pLnNlbGVjdChlLnBhcmVudE5vZGUpLGw9QihvKSxjPW8ua2V5LWwuZmlyc3RSb3dJbmRleCxmPWwucm93c1tjXS5yb3dIZWlnaHQsaD1vLmNlbGxIZWlnaHRNYXlJbmNyZWFzZT9lLnBhcmVudE5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0KzIqbi5jZWxsUGFkOmYscD1NYXRoLm1heChoLGYpO3AtbC5yb3dzW2NdLnJvd0hlaWdodCYmKGwucm93c1tjXS5yb3dIZWlnaHQ9cCx0LnNlbGVjdEFsbCgiLiIrbi5jbi5jb2x1bW5DZWxsKS5jYWxsKHopLEUobnVsbCx0LmZpbHRlcihBKSwwKSx4KHIsYSwhMCkpLHMuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24oKXt2YXIgdD10aGlzLnBhcmVudE5vZGUuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCksZT1pLnNlbGVjdCh0aGlzLnBhcmVudE5vZGUpLnNlbGVjdCgiLiIrbi5jbi5jZWxsUmVjdCkubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLHI9dGhpcy50cmFuc2Zvcm0uYmFzZVZhbC5jb25zb2xpZGF0ZSgpLGE9ZS50b3AtdC50b3ArKHI/ci5tYXRyaXguZjpuLmNlbGxQYWQpO3JldHVybiB1KE8obyxpLnNlbGVjdCh0aGlzLnBhcmVudE5vZGUpLnNlbGVjdCgiLiIrbi5jbi5jZWxsVGV4dEhvbGRlcikubm9kZSgpLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoKSxhKX0pKSxvLnNldHRsZWRZPSEwfX19ZnVuY3Rpb24gTyh0LGUpe3N3aXRjaCh0LmFsaWduKXtjYXNlImxlZnQiOnJldHVybiBuLmNlbGxQYWQ7Y2FzZSJyaWdodCI6cmV0dXJuIHQuY29sdW1uLmNvbHVtbldpZHRoLShlfHwwKS1uLmNlbGxQYWQ7Y2FzZSJjZW50ZXIiOnJldHVybih0LmNvbHVtbi5jb2x1bW5XaWR0aC0oZXx8MCkpLzI7ZGVmYXVsdDpyZXR1cm4gbi5jZWxsUGFkfX1mdW5jdGlvbiB6KHQpe3QuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9dC5yb3dCbG9ja3NbMF0uYXV4aWxpYXJ5QmxvY2tzLnJlZHVjZSgoZnVuY3Rpb24odCxlKXtyZXR1cm4gdCtSKGUsMS8wKX0pLDApLHI9UihCKHQpLHQua2V5KTtyZXR1cm4gdSgwLHIrZSl9KSkuc2VsZWN0QWxsKCIuIituLmNuLmNlbGxSZWN0KS5hdHRyKCJoZWlnaHQiLChmdW5jdGlvbih0KXtyZXR1cm4oZT1CKHQpLHI9dC5rZXksZS5yb3dzW3ItZS5maXJzdFJvd0luZGV4XSkucm93SGVpZ2h0O3ZhciBlLHJ9KSl9ZnVuY3Rpb24gRCh0LGUpe2Zvcih2YXIgcj0wLG49ZS0xO24+PTA7bi0tKXIrPUYodFtuXSk7cmV0dXJuIHJ9ZnVuY3Rpb24gUih0LGUpe2Zvcih2YXIgcj0wLG49MDtuPHQucm93cy5sZW5ndGgmJnQucm93c1tuXS5yb3dJbmRleDxlO24rKylyKz10LnJvd3Nbbl0ucm93SGVpZ2h0O3JldHVybiByfWZ1bmN0aW9uIEYodCl7dmFyIGU9dC5hbGxSb3dzSGVpZ2h0O2lmKHZvaWQgMCE9PWUpcmV0dXJuIGU7Zm9yKHZhciByPTAsbj0wO248dC5yb3dzLmxlbmd0aDtuKyspcis9dC5yb3dzW25dLnJvd0hlaWdodDtyZXR1cm4gdC5hbGxSb3dzSGVpZ2h0PXIscn1mdW5jdGlvbiBCKHQpe3JldHVybiB0LnJvd0Jsb2Nrc1t0LnBhZ2VdfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPSF0Ll9jb250ZXh0LnN0YXRpY1Bsb3QsYT10Ll9mdWxsTGF5b3V0Ll9wYXBlci5zZWxlY3RBbGwoIi4iK24uY24udGFibGUpLmRhdGEoZS5tYXAoKGZ1bmN0aW9uKGUpe3ZhciByPW8udW53cmFwKGUpLnRyYWNlO3JldHVybiBoKHQscil9KSksby5rZXlGdW4pO2EuZXhpdCgpLnJlbW92ZSgpLGEuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24udGFibGUsITApLmF0dHIoIm92ZXJmbG93IiwidmlzaWJsZSIpLnN0eWxlKCJib3gtc2l6aW5nIiwiY29udGVudC1ib3giKS5zdHlsZSgicG9zaXRpb24iLCJhYnNvbHV0ZSIpLnN0eWxlKCJsZWZ0IiwwKS5zdHlsZSgib3ZlcmZsb3ciLCJ2aXNpYmxlIikuc3R5bGUoInNoYXBlLXJlbmRlcmluZyIsImNyaXNwRWRnZXMiKS5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKSxhLmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkdGgrdC5zaXplLmwrdC5zaXplLnJ9KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0K3Quc2l6ZS50K3Quc2l6ZS5ifSkpLmF0dHIoInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3JldHVybiB1KHQudHJhbnNsYXRlWCx0LnRyYW5zbGF0ZVkpfSkpO3ZhciBsPWEuc2VsZWN0QWxsKCIuIituLmNuLnRhYmxlQ29udHJvbFZpZXcpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pLGQ9bC5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi50YWJsZUNvbnRyb2xWaWV3LCEwKS5zdHlsZSgiYm94LXNpemluZyIsImNvbnRlbnQtYm94Iik7aWYocil7dmFyIF89Im9ud2hlZWwiaW4gZG9jdW1lbnQ/IndoZWVsIjoibW91c2V3aGVlbCI7ZC5vbigibW91c2Vtb3ZlIiwoZnVuY3Rpb24oZSl7bC5maWx0ZXIoKGZ1bmN0aW9uKHQpe3JldHVybiBlPT09dH0pKS5jYWxsKHgsdCl9KSkub24oXywoZnVuY3Rpb24oZSl7aWYoIWUuc2Nyb2xsYmFyU3RhdGUud2hlZWxpbmcpe2Uuc2Nyb2xsYmFyU3RhdGUud2hlZWxpbmc9ITA7dmFyIHI9ZS5zY3JvbGxZK2kuZXZlbnQuZGVsdGFZO0wodCxsLG51bGwscikoZSl8fChpLmV2ZW50LnN0b3BQcm9wYWdhdGlvbigpLGkuZXZlbnQucHJldmVudERlZmF1bHQoKSksZS5zY3JvbGxiYXJTdGF0ZS53aGVlbGluZz0hMX19KSkuY2FsbCh4LHQsITApfWwuYXR0cigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7cmV0dXJuIHUodC5zaXplLmwsdC5zaXplLnQpfSkpO3ZhciB3PWwuc2VsZWN0QWxsKCIuIituLmNuLnNjcm9sbEJhY2tncm91bmQpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO3cuZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKG4uY24uc2Nyb2xsQmFja2dyb3VuZCwhMCkuYXR0cigiZmlsbCIsIm5vbmUiKSx3LmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQud2lkdGh9KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0fSkpLGwuZWFjaCgoZnVuY3Rpb24oZSl7cy5zZXRDbGlwVXJsKGkuc2VsZWN0KHRoaXMpLGcodCxlKSx0KX0pKTt2YXIgVD1sLnNlbGVjdEFsbCgiLiIrbi5jbi55Q29sdW1uKS5kYXRhKChmdW5jdGlvbih0KXtyZXR1cm4gdC5jb2x1bW5zfSksby5rZXlGdW4pO1QuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKG4uY24ueUNvbHVtbiwhMCksVC5leGl0KCkucmVtb3ZlKCksVC5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gdSh0LngsMCl9KSksciYmVC5jYWxsKGkuYmVoYXZpb3IuZHJhZygpLm9yaWdpbigoZnVuY3Rpb24oZSl7cmV0dXJuIGsoaS5zZWxlY3QodGhpcyksZSwtbi51cGxpZnQpLGModGhpcyksZS5jYWxjZGF0YS5jb2x1bW5EcmFnSW5Qcm9ncmVzcz0hMCx4KGwuZmlsdGVyKChmdW5jdGlvbih0KXtyZXR1cm4gZS5jYWxjZGF0YS5rZXk9PT10LmtleX0pKSx0KSxlfSkpLm9uKCJkcmFnIiwoZnVuY3Rpb24odCl7dmFyIGU9aS5zZWxlY3QodGhpcykscj1mdW5jdGlvbihlKXtyZXR1cm4odD09PWU/aS5ldmVudC54OmUueCkrZS5jb2x1bW5XaWR0aC8yfTt0Lng9TWF0aC5tYXgoLW4ub3ZlcmRyYWcsTWF0aC5taW4odC5jYWxjZGF0YS53aWR0aCtuLm92ZXJkcmFnLXQuY29sdW1uV2lkdGgsaS5ldmVudC54KSkseShUKS5maWx0ZXIoKGZ1bmN0aW9uKGUpe3JldHVybiBlLmNhbGNkYXRhLmtleT09PXQuY2FsY2RhdGEua2V5fSkpLnNvcnQoKGZ1bmN0aW9uKHQsZSl7cmV0dXJuIHIodCktcihlKX0pKS5mb3JFYWNoKChmdW5jdGlvbihlLHIpe2UueEluZGV4PXIsZS54PXQ9PT1lP2UueDplLnhTY2FsZShlKX0pKSxULmZpbHRlcigoZnVuY3Rpb24oZSl7cmV0dXJuIHQhPT1lfSkpLnRyYW5zaXRpb24oKS5lYXNlKG4udHJhbnNpdGlvbkVhc2UpLmR1cmF0aW9uKG4udHJhbnNpdGlvbkR1cmF0aW9uKS5hdHRyKCJ0cmFuc2Zvcm0iLChmdW5jdGlvbih0KXtyZXR1cm4gdSh0LngsMCl9KSksZS5jYWxsKGYpLmF0dHIoInRyYW5zZm9ybSIsdSh0LngsLW4udXBsaWZ0KSl9KSkub24oImRyYWdlbmQiLChmdW5jdGlvbihlKXt2YXIgcj1pLnNlbGVjdCh0aGlzKSxuPWUuY2FsY2RhdGE7ZS54PWUueFNjYWxlKGUpLGUuY2FsY2RhdGEuY29sdW1uRHJhZ0luUHJvZ3Jlc3M9ITEsayhyLGUsMCksZnVuY3Rpb24odCxlLHIpe3ZhciBuPWUuZ2RDb2x1bW5zT3JpZ2luYWxPcmRlcjtlLmdkQ29sdW1ucy5zb3J0KChmdW5jdGlvbih0LGUpe3JldHVybiByW24uaW5kZXhPZih0KV0tcltuLmluZGV4T2YoZSldfSkpLGUuY29sdW1ub3JkZXI9cix0LmVtaXQoInBsb3RseV9yZXN0eWxlIil9KHQsbixuLmNvbHVtbnMubWFwKChmdW5jdGlvbih0KXtyZXR1cm4gdC54SW5kZXh9KSkpfSkpKSxULmVhY2goKGZ1bmN0aW9uKGUpe3Muc2V0Q2xpcFVybChpLnNlbGVjdCh0aGlzKSx2KHQsZSksdCl9KSk7dmFyIFM9VC5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQmxvY2spLmRhdGEocC5zcGxpdFRvUGFuZWxzLG8ua2V5RnVuKTtTLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZChuLmNuLmNvbHVtbkJsb2NrLCEwKS5hdHRyKCJpZCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmtleX0pKSxTLnN0eWxlKCJjdXJzb3IiLChmdW5jdGlvbih0KXtyZXR1cm4gdC5kcmFnSGFuZGxlPyJldy1yZXNpemUiOnQuY2FsY2RhdGEuc2Nyb2xsYmFyU3RhdGUuYmFyV2lnZ2xlUm9vbT8ibnMtcmVzaXplIjoiZGVmYXVsdCJ9KSk7dmFyIEM9Uy5maWx0ZXIoTSksUD1TLmZpbHRlcihBKTtyJiZQLmNhbGwoaS5iZWhhdmlvci5kcmFnKCkub3JpZ2luKChmdW5jdGlvbih0KXtyZXR1cm4gaS5ldmVudC5zdG9wUHJvcGFnYXRpb24oKSx0fSkpLm9uKCJkcmFnIixMKHQsbCwtMSkpLm9uKCJkcmFnZW5kIiwoZnVuY3Rpb24oKXt9KSkpLGIodCxsLEMsUyksYih0LGwsUCxTKTt2YXIgST1sLnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxBcmVhQ2xpcCkuZGF0YShvLnJlcGVhdCxvLmtleUZ1bik7SS5lbnRlcigpLmFwcGVuZCgiY2xpcFBhdGgiKS5jbGFzc2VkKG4uY24uc2Nyb2xsQXJlYUNsaXAsITApLmF0dHIoImlkIiwoZnVuY3Rpb24oZSl7cmV0dXJuIGcodCxlKX0pKTt2YXIgTz1JLnNlbGVjdEFsbCgiLiIrbi5jbi5zY3JvbGxBcmVhQ2xpcFJlY3QpLmRhdGEoby5yZXBlYXQsby5rZXlGdW4pO08uZW50ZXIoKS5hcHBlbmQoInJlY3QiKS5jbGFzc2VkKG4uY24uc2Nyb2xsQXJlYUNsaXBSZWN0LCEwKS5hdHRyKCJ4Iiwtbi5vdmVyZHJhZykuYXR0cigieSIsLW4udXBsaWZ0KS5hdHRyKCJmaWxsIiwibm9uZSIpLE8uYXR0cigid2lkdGgiLChmdW5jdGlvbih0KXtyZXR1cm4gdC53aWR0aCsyKm4ub3ZlcmRyYWd9KSkuYXR0cigiaGVpZ2h0IiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuaGVpZ2h0K24udXBsaWZ0fSkpLFQuc2VsZWN0QWxsKCIuIituLmNuLmNvbHVtbkJvdW5kYXJ5KS5kYXRhKG8ucmVwZWF0LG8ua2V5RnVuKS5lbnRlcigpLmFwcGVuZCgiZyIpLmNsYXNzZWQobi5jbi5jb2x1bW5Cb3VuZGFyeSwhMCk7dmFyIHo9VC5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQm91bmRhcnlDbGlwcGF0aCkuZGF0YShvLnJlcGVhdCxvLmtleUZ1bik7ei5lbnRlcigpLmFwcGVuZCgiY2xpcFBhdGgiKS5jbGFzc2VkKG4uY24uY29sdW1uQm91bmRhcnlDbGlwcGF0aCwhMCksei5hdHRyKCJpZCIsKGZ1bmN0aW9uKGUpe3JldHVybiB2KHQsZSl9KSk7dmFyIEQ9ei5zZWxlY3RBbGwoIi4iK24uY24uY29sdW1uQm91bmRhcnlSZWN0KS5kYXRhKG8ucmVwZWF0LG8ua2V5RnVuKTtELmVudGVyKCkuYXBwZW5kKCJyZWN0IikuY2xhc3NlZChuLmNuLmNvbHVtbkJvdW5kYXJ5UmVjdCwhMCkuYXR0cigiZmlsbCIsIm5vbmUiKSxELmF0dHIoIndpZHRoIiwoZnVuY3Rpb24odCl7cmV0dXJuIHQuY29sdW1uV2lkdGgrMiptKHQpfSkpLmF0dHIoImhlaWdodCIsKGZ1bmN0aW9uKHQpe3JldHVybiB0LmNhbGNkYXRhLmhlaWdodCsyKm0odCkrbi51cGxpZnR9KSkuYXR0cigieCIsKGZ1bmN0aW9uKHQpe3JldHVybi1tKHQpfSkpLmF0dHIoInkiLChmdW5jdGlvbih0KXtyZXR1cm4tbSh0KX0pKSxFKG51bGwsUCxsKX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9ndXAiOjc3MywiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4vY29uc3RhbnRzIjoxMzIzLCIuL2RhdGFfcHJlcGFyYXRpb25faGVscGVyIjoxMzI0LCIuL2RhdGFfc3BsaXRfaGVscGVycyI6MTMyNSwiQHBsb3RseS9kMyI6NTh9XSwxMzI5OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsaT10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLG89dCgiLi4vLi4vcGxvdHMvZG9tYWluIikuYXR0cmlidXRlcyxzPXQoIi4uL3BpZS9hdHRyaWJ1dGVzIiksbD10KCIuLi9zdW5idXJzdC9hdHRyaWJ1dGVzIiksYz10KCIuL2NvbnN0YW50cyIpLHU9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQ7ZS5leHBvcnRzPXtsYWJlbHM6bC5sYWJlbHMscGFyZW50czpsLnBhcmVudHMsdmFsdWVzOmwudmFsdWVzLGJyYW5jaHZhbHVlczpsLmJyYW5jaHZhbHVlcyxjb3VudDpsLmNvdW50LGxldmVsOmwubGV2ZWwsbWF4ZGVwdGg6bC5tYXhkZXB0aCx0aWxpbmc6e3BhY2tpbmc6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNxdWFyaWZ5IiwiYmluYXJ5IiwiZGljZSIsInNsaWNlIiwic2xpY2UtZGljZSIsImRpY2Utc2xpY2UiXSxkZmx0OiJzcXVhcmlmeSIsZWRpdFR5cGU6InBsb3QifSxzcXVhcmlmeXJhdGlvOnt2YWxUeXBlOiJudW1iZXIiLG1pbjoxLGRmbHQ6MSxlZGl0VHlwZToicGxvdCJ9LGZsaXA6e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbIngiLCJ5Il0sZGZsdDoiIixlZGl0VHlwZToicGxvdCJ9LHBhZDp7dmFsVHlwZToibnVtYmVyIixtaW46MCxkZmx0OjMsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToiY2FsYyJ9LG1hcmtlcjp1KHtwYWQ6e3Q6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InBsb3QifSxsOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJwbG90In0scjp7dmFsVHlwZToibnVtYmVyIixtaW46MCxlZGl0VHlwZToicGxvdCJ9LGI6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZWRpdFR5cGU6InBsb3QifSxlZGl0VHlwZToiY2FsYyJ9LGNvbG9yczpsLm1hcmtlci5jb2xvcnMsZGVwdGhmYWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyEwLCExLCJyZXZlcnNlZCJdLGVkaXRUeXBlOiJzdHlsZSJ9LGxpbmU6bC5tYXJrZXIubGluZSxlZGl0VHlwZToiY2FsYyJ9LGEoIm1hcmtlciIse2NvbG9yQXR0cjoiY29sb3JzIixhbmltOiExfSkpLHBhdGhiYXI6e3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6InBsb3QifSxzaWRlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AiLCJib3R0b20iXSxkZmx0OiJ0b3AiLGVkaXRUeXBlOiJwbG90In0sZWRnZXNoYXBlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyI+IiwiPCIsInwiLCIvIiwiXFwiXSxkZmx0OiI+IixlZGl0VHlwZToicGxvdCJ9LHRoaWNrbmVzczp7dmFsVHlwZToibnVtYmVyIixtaW46MTIsZWRpdFR5cGU6InBsb3QifSx0ZXh0Zm9udDp1KHt9LHMudGV4dGZvbnQse30pLGVkaXRUeXBlOiJjYWxjIn0sdGV4dDpzLnRleHQsdGV4dGluZm86bC50ZXh0aW5mbyx0ZXh0dGVtcGxhdGU6aSh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpjLmV2ZW50RGF0YUtleXMuY29uY2F0KFsibGFiZWwiLCJ2YWx1ZSJdKX0pLGhvdmVydGV4dDpzLmhvdmVydGV4dCxob3ZlcmluZm86bC5ob3ZlcmluZm8saG92ZXJ0ZW1wbGF0ZTpuKHt9LHtrZXlzOmMuZXZlbnREYXRhS2V5c30pLHRleHRmb250OnMudGV4dGZvbnQsaW5zaWRldGV4dGZvbnQ6cy5pbnNpZGV0ZXh0Zm9udCxvdXRzaWRldGV4dGZvbnQ6dSh7fSxzLm91dHNpZGV0ZXh0Zm9udCx7fSksdGV4dHBvc2l0aW9uOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ0b3AgbGVmdCIsInRvcCBjZW50ZXIiLCJ0b3AgcmlnaHQiLCJtaWRkbGUgbGVmdCIsIm1pZGRsZSBjZW50ZXIiLCJtaWRkbGUgcmlnaHQiLCJib3R0b20gbGVmdCIsImJvdHRvbSBjZW50ZXIiLCJib3R0b20gcmlnaHQiXSxkZmx0OiJ0b3AgbGVmdCIsZWRpdFR5cGU6InBsb3QifSxzb3J0OnMuc29ydCxyb290Omwucm9vdCxkb21haW46byh7bmFtZToidHJlZW1hcCIsdHJhY2U6ITAsZWRpdFR5cGU6ImNhbGMifSl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdHMvZG9tYWluIjo4NTUsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vcGllL2F0dHJpYnV0ZXMiOjExNjUsIi4uL3N1bmJ1cnN0L2F0dHJpYnV0ZXMiOjEzMDMsIi4vY29uc3RhbnRzIjoxMzMyfV0sMTMzMDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9wbG90cy9wbG90cyIpO3IubmFtZT0idHJlZW1hcCIsci5wbG90PWZ1bmN0aW9uKHQsZSxpLGEpe24ucGxvdEJhc2VQbG90KHIubmFtZSx0LGUsaSxhKX0sci5jbGVhbj1mdW5jdGlvbih0LGUsaSxhKXtuLmNsZWFuQmFzZVBsb3Qoci5uYW1lLHQsZSxpLGEpfX0seyIuLi8uLi9wbG90cy9wbG90cyI6ODkwfV0sMTMzMTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9zdW5idXJzdC9jYWxjIik7ci5jYWxjPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG4uY2FsYyh0LGUpfSxyLmNyb3NzVHJhY2VDYWxjPWZ1bmN0aW9uKHQpe3JldHVybiBuLl9ydW5Dcm9zc1RyYWNlQ2FsYygidHJlZW1hcCIsdCl9fSx7Ii4uL3N1bmJ1cnN0L2NhbGMiOjEzMDV9XSwxMzMyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17Q0xJQ0tfVFJBTlNJVElPTl9USU1FOjc1MCxDTElDS19UUkFOU0lUSU9OX0VBU0lORzoicG9seSIsZXZlbnREYXRhS2V5czpbImN1cnJlbnRQYXRoIiwicm9vdCIsImVudHJ5IiwicGVyY2VudFJvb3QiLCJwZXJjZW50RW50cnkiLCJwZXJjZW50UGFyZW50Il0sZ2FwV2l0aFBhdGhiYXI6MX19LHt9XSwxMzMzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksbz10KCIuLi8uLi9wbG90cy9kb21haW4iKS5kZWZhdWx0cyxzPXQoIi4uL2Jhci9kZWZhdWx0cyIpLmhhbmRsZVRleHQsbD10KCIuLi9iYXIvY29uc3RhbnRzIikuVEVYVFBBRCxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSIpLHU9Yy5oYXNDb2xvcnNjYWxlLGY9Yy5oYW5kbGVEZWZhdWx0cztlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYyl7ZnVuY3Rpb24gaChyLGEpe3JldHVybiBuLmNvZXJjZSh0LGUsaSxyLGEpfXZhciBwPWgoImxhYmVscyIpLGQ9aCgicGFyZW50cyIpO2lmKHAmJnAubGVuZ3RoJiZkJiZkLmxlbmd0aCl7dmFyIG09aCgidmFsdWVzIik7bSYmbS5sZW5ndGg/aCgiYnJhbmNodmFsdWVzIik6aCgiY291bnQiKSxoKCJsZXZlbCIpLGgoIm1heGRlcHRoIiksInNxdWFyaWZ5Ij09PWgoInRpbGluZy5wYWNraW5nIikmJmgoInRpbGluZy5zcXVhcmlmeXJhdGlvIiksaCgidGlsaW5nLmZsaXAiKSxoKCJ0aWxpbmcucGFkIik7dmFyIGc9aCgidGV4dCIpO2goInRleHR0ZW1wbGF0ZSIpLGUudGV4dHRlbXBsYXRlfHxoKCJ0ZXh0aW5mbyIsQXJyYXkuaXNBcnJheShnKT8idGV4dCtsYWJlbCI6ImxhYmVsIiksaCgiaG92ZXJ0ZXh0IiksaCgiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciB2PWgoInBhdGhiYXIudmlzaWJsZSIpO3ModCxlLGMsaCwiYXV0byIse2hhc1BhdGhiYXI6dixtb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMSxtb2R1bGVIYXNDbGlwb25heGlzOiExLG1vZHVsZUhhc1RleHRhbmdsZTohMSxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITF9KSxoKCJ0ZXh0cG9zaXRpb24iKTt2YXIgeT0tMSE9PWUudGV4dHBvc2l0aW9uLmluZGV4T2YoImJvdHRvbSIpO2goIm1hcmtlci5saW5lLndpZHRoIikmJmgoIm1hcmtlci5saW5lLmNvbG9yIixjLnBhcGVyX2JnY29sb3IpO3ZhciB4PWgoIm1hcmtlci5jb2xvcnMiKTsoZS5faGFzQ29sb3JzY2FsZT11KHQsIm1hcmtlciIsImNvbG9ycyIpfHwodC5tYXJrZXJ8fHt9KS5jb2xvcmF4aXMpP2YodCxlLGMsaCx7cHJlZml4OiJtYXJrZXIuIixjTGV0dGVyOiJjIn0pOmgoIm1hcmtlci5kZXB0aGZhZGUiLCEoeHx8W10pLmxlbmd0aCk7dmFyIGI9MiplLnRleHRmb250LnNpemU7aCgibWFya2VyLnBhZC50Iix5P2IvNDpiKSxoKCJtYXJrZXIucGFkLmwiLGIvNCksaCgibWFya2VyLnBhZC5yIixiLzQpLGgoIm1hcmtlci5wYWQuYiIseT9iOmIvNCksZS5faG92ZXJlZD17bWFya2VyOntsaW5lOnt3aWR0aDoyLGNvbG9yOmEuY29udHJhc3QoYy5wYXBlcl9iZ2NvbG9yKX19fSx2JiYoaCgicGF0aGJhci50aGlja25lc3MiLGUucGF0aGJhci50ZXh0Zm9udC5zaXplKzIqbCksaCgicGF0aGJhci5zaWRlIiksaCgicGF0aGJhci5lZGdlc2hhcGUiKSksaCgic29ydCIpLGgoInJvb3QuY29sb3IiKSxvKGUsYyxoKSxlLl9sZW5ndGg9bnVsbH1lbHNlIGUudmlzaWJsZT0hMX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiOjY1MSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2RvbWFpbiI6ODU1LCIuLi9iYXIvY29uc3RhbnRzIjo5MTYsIi4uL2Jhci9kZWZhdWx0cyI6OTE4LCIuL2F0dHJpYnV0ZXMiOjEzMjl9XSwxMzM0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxhPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKS5jbGVhck1pblRleHRTaXplLG89dCgiLi4vYmFyL3N0eWxlIikucmVzaXplVGV4dCxzPXQoIi4vcGxvdF9vbmUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsbCxjKXt2YXIgdSxmLGg9Yy50eXBlLHA9Yy5kcmF3RGVzY2VuZGFudHMsZD10Ll9mdWxsTGF5b3V0LG09ZFsiXyIraCsibGF5ZXIiXSxnPSFyOyhhKGgsZCksKHU9bS5zZWxlY3RBbGwoImcudHJhY2UuIitoKS5kYXRhKGUsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLnVpZH0pKSkuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJ0cmFjZSIsITApLmNsYXNzZWQoaCwhMCksdS5vcmRlcigpLCFkLnVuaWZvcm10ZXh0Lm1vZGUmJmkuaGFzVHJhbnNpdGlvbihyKSk/KGwmJihmPWwoKSksbi50cmFuc2l0aW9uKCkuZHVyYXRpb24oci5kdXJhdGlvbikuZWFzZShyLmVhc2luZykuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXtmJiZmKCl9KSkuZWFjaCgiaW50ZXJydXB0IiwoZnVuY3Rpb24oKXtmJiZmKCl9KSkuZWFjaCgoZnVuY3Rpb24oKXttLnNlbGVjdEFsbCgiZy50cmFjZSIpLmVhY2goKGZ1bmN0aW9uKGUpe3ModCxlLHRoaXMscixwKX0pKX0pKSk6KHUuZWFjaCgoZnVuY3Rpb24oZSl7cyh0LGUsdGhpcyxyLHApfSkpLGQudW5pZm9ybXRleHQubW9kZSYmbyh0LG0uc2VsZWN0QWxsKCIudHJhY2UiKSxoKSk7ZyYmdS5leGl0KCkucmVtb3ZlKCl9fSx7Ii4uL2Jhci9zdHlsZSI6OTI4LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo5MzAsIi4uL3N1bmJ1cnN0L2hlbHBlcnMiOjEzMDksIi4vcGxvdF9vbmUiOjEzNDMsIkBwbG90bHkvZDMiOjU4fV0sMTMzNTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9saWIiKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyIpLG89dCgiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIikscz10KCIuL3BhcnRpdGlvbiIpLGw9dCgiLi9zdHlsZSIpLnN0eWxlT25lLGM9dCgiLi9jb25zdGFudHMiKSx1PXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxmPXQoIi4uL3N1bmJ1cnN0L2Z4Iik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGgscCl7dmFyIGQ9cC5iYXJEaWZZLG09cC53aWR0aCxnPXAuaGVpZ2h0LHY9cC52aWV3WCx5PXAudmlld1kseD1wLnBhdGhTbGljZSxiPXAudG9Nb3ZlSW5zaWRlU2xpY2UsXz1wLnN0clRyYW5zZm9ybSx3PXAuaGFzVHJhbnNpdGlvbixUPXAuaGFuZGxlU2xpY2VzRXhpdCxrPXAubWFrZVVwZGF0ZVNsaWNlSW50ZXJwb2xhdG9yLEE9cC5tYWtlVXBkYXRlVGV4dEludGVycG9sYXRvcixNPXt9LFM9dC5fZnVsbExheW91dCxFPWVbMF0sTD1FLnRyYWNlLEM9RS5oaWVyYXJjaHksUD1tL0wuX2VudHJ5RGVwdGgsST11Lmxpc3RQYXRoKHIuZGF0YSwiaWQiKSxPPXMoQy5jb3B5KCksW20sZ10se3BhY2tpbmc6ImRpY2UiLHBhZDp7aW5uZXI6MCx0b3A6MCxsZWZ0OjAscmlnaHQ6MCxib3R0b206MH19KS5kZXNjZW5kYW50cygpOyhPPU8uZmlsdGVyKChmdW5jdGlvbih0KXt2YXIgZT1JLmluZGV4T2YodC5kYXRhLmlkKTtyZXR1cm4tMSE9PWUmJih0LngwPVAqZSx0LngxPVAqKGUrMSksdC55MD1kLHQueTE9ZCtnLHQub25QYXRoYmFyPSEwLCEwKX0pKSkucmV2ZXJzZSgpLChoPWguZGF0YShPLHUuZ2V0UHRJZCkpLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgicGF0aGJhciIsITApLFQoaCwhMCxNLFttLGddLHgpLGgub3JkZXIoKTt2YXIgej1oO3cmJih6PXoudHJhbnNpdGlvbigpLmVhY2goImVuZCIsKGZ1bmN0aW9uKCl7dmFyIGU9bi5zZWxlY3QodGhpcyk7dS5zZXRTbGljZUN1cnNvcihlLHQse2hpZGVPblJvb3Q6ITEsaGlkZU9uTGVhdmVzOiExLGlzVHJhbnNpdGlvbmluZzohMX0pfSkpKSx6LmVhY2goKGZ1bmN0aW9uKHMpe3MuX3gwPXYocy54MCkscy5feDE9dihzLngxKSxzLl95MD15KHMueTApLHMuX3kxPXkocy55MSkscy5faG92ZXJYPXYocy54MS1NYXRoLm1pbihtLGcpLzIpLHMuX2hvdmVyWT15KHMueTEtZy8yKTt2YXIgaD1uLnNlbGVjdCh0aGlzKSxwPWkuZW5zdXJlU2luZ2xlKGgsInBhdGgiLCJzdXJmYWNlIiwoZnVuY3Rpb24odCl7dC5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKX0pKTt3P3AudHJhbnNpdGlvbigpLmF0dHJUd2VlbigiZCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWsodCwhMCxNLFttLGddKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHgoZSh0KSl9fSkpOnAuYXR0cigiZCIseCksaC5jYWxsKGYscix0LGUse3N0eWxlT25lOmwsZXZlbnREYXRhS2V5czpjLmV2ZW50RGF0YUtleXMsdHJhbnNpdGlvblRpbWU6Yy5DTElDS19UUkFOU0lUSU9OX1RJTUUsdHJhbnNpdGlvbkVhc2luZzpjLkNMSUNLX1RSQU5TSVRJT05fRUFTSU5HfSkuY2FsbCh1LnNldFNsaWNlQ3Vyc29yLHQse2hpZGVPblJvb3Q6ITEsaGlkZU9uTGVhdmVzOiExLGlzVHJhbnNpdGlvbmluZzp0Ll90cmFuc2l0aW9uaW5nfSkscC5jYWxsKGwscyxMLHtob3ZlcmVkOiExfSkscy5fdGV4dD0odS5nZXRQdExhYmVsKHMpfHwiIikuc3BsaXQoIjxicj4iKS5qb2luKCIgIil8fCIiO3ZhciBkPWkuZW5zdXJlU2luZ2xlKGgsImciLCJzbGljZXRleHQiKSxUPWkuZW5zdXJlU2luZ2xlKGQsInRleHQiLCIiLChmdW5jdGlvbih0KXt0LmF0dHIoImRhdGEtbm90ZXgiLDEpfSkpLEU9aS5lbnN1cmVVbmlmb3JtRm9udFNpemUodCx1LmRldGVybWluZVRleHRGb250KEwscyxTLmZvbnQse29uUGF0aGJhcjohMH0pKTtULnRleHQocy5fdGV4dHx8IiAiKS5jbGFzc2VkKCJzbGljZXRleHQiLCEwKS5hdHRyKCJ0ZXh0LWFuY2hvciIsInN0YXJ0IikuY2FsbChhLmZvbnQsRSkuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KSxzLnRleHRCQj1hLmJCb3goVC5ub2RlKCkpLHMudHJhbnNmb3JtPWIocyx7Zm9udFNpemU6RS5zaXplLG9uUGF0aGJhcjohMH0pLHMudHJhbnNmb3JtLmZvbnRTaXplPUUuc2l6ZSx3P1QudHJhbnNpdGlvbigpLmF0dHJUd2VlbigidHJhbnNmb3JtIiwoZnVuY3Rpb24odCl7dmFyIGU9QSh0LCEwLE0sW20sZ10pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gXyhlKHQpKX19KSk6VC5hdHRyKCJ0cmFuc2Zvcm0iLF8ocykpfSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciOjY2MSwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyI6ODAyLCIuLi9zdW5idXJzdC9meCI6MTMwOCwiLi4vc3VuYnVyc3QvaGVscGVycyI6MTMwOSwiLi9jb25zdGFudHMiOjEzMzIsIi4vcGFydGl0aW9uIjoxMzQxLCIuL3N0eWxlIjoxMzQ0LCJAcGxvdGx5L2QzIjo1OH1dLDEzMzY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uLy4uL2xpYi9zdmdfdGV4dF91dGlscyIpLHM9dCgiLi9wYXJ0aXRpb24iKSxsPXQoIi4vc3R5bGUiKS5zdHlsZU9uZSxjPXQoIi4vY29uc3RhbnRzIiksdT10KCIuLi9zdW5idXJzdC9oZWxwZXJzIiksZj10KCIuLi9zdW5idXJzdC9meCIpLGg9dCgiLi4vc3VuYnVyc3QvcGxvdCIpLmZvcm1hdFNsaWNlTGFiZWw7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHAsZCl7dmFyIG09ZC53aWR0aCxnPWQuaGVpZ2h0LHY9ZC52aWV3WCx5PWQudmlld1kseD1kLnBhdGhTbGljZSxiPWQudG9Nb3ZlSW5zaWRlU2xpY2UsXz1kLnN0clRyYW5zZm9ybSx3PWQuaGFzVHJhbnNpdGlvbixUPWQuaGFuZGxlU2xpY2VzRXhpdCxrPWQubWFrZVVwZGF0ZVNsaWNlSW50ZXJwb2xhdG9yLEE9ZC5tYWtlVXBkYXRlVGV4dEludGVycG9sYXRvcixNPWQucHJldkVudHJ5LFM9dC5fZnVsbExheW91dCxFPWVbMF0udHJhY2UsTD0tMSE9PUUudGV4dHBvc2l0aW9uLmluZGV4T2YoImxlZnQiKSxDPS0xIT09RS50ZXh0cG9zaXRpb24uaW5kZXhPZigicmlnaHQiKSxQPS0xIT09RS50ZXh0cG9zaXRpb24uaW5kZXhPZigiYm90dG9tIiksST0hUCYmIUUubWFya2VyLnBhZC50fHxQJiYhRS5tYXJrZXIucGFkLmIsTz1zKHIsW20sZ10se3BhY2tpbmc6RS50aWxpbmcucGFja2luZyxzcXVhcmlmeXJhdGlvOkUudGlsaW5nLnNxdWFyaWZ5cmF0aW8sZmxpcFg6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ4Iik+LTEsZmxpcFk6RS50aWxpbmcuZmxpcC5pbmRleE9mKCJ5Iik+LTEscGFkOntpbm5lcjpFLnRpbGluZy5wYWQsdG9wOkUubWFya2VyLnBhZC50LGxlZnQ6RS5tYXJrZXIucGFkLmwscmlnaHQ6RS5tYXJrZXIucGFkLnIsYm90dG9tOkUubWFya2VyLnBhZC5ifX0pLmRlc2NlbmRhbnRzKCksej0xLzAsRD0tMS8wO08uZm9yRWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9dC5kZXB0aDtlPj1FLl9tYXhEZXB0aD8odC54MD10LngxPSh0LngwK3QueDEpLzIsdC55MD10LnkxPSh0LnkwK3QueTEpLzIpOih6PU1hdGgubWluKHosZSksRD1NYXRoLm1heChELGUpKX0pKSxwPXAuZGF0YShPLHUuZ2V0UHRJZCksRS5fbWF4VmlzaWJsZUxheWVycz1pc0Zpbml0ZShEKT9ELXorMTowLHAuZW50ZXIoKS5hcHBlbmQoImciKS5jbGFzc2VkKCJzbGljZSIsITApLFQocCwhMSx7fSxbbSxnXSx4KSxwLm9yZGVyKCk7dmFyIFI9bnVsbDtpZih3JiZNKXt2YXIgRj11LmdldFB0SWQoTSk7cC5lYWNoKChmdW5jdGlvbih0KXtudWxsPT09UiYmdS5nZXRQdElkKHQpPT09RiYmKFI9e3gwOnQueDAseDE6dC54MSx5MDp0LnkwLHkxOnQueTF9KX0pKX12YXIgQj1mdW5jdGlvbigpe3JldHVybiBSfHx7eDA6MCx4MTptLHkwOjAseTE6Z319LE49cDtyZXR1cm4gdyYmKE49Ti50cmFuc2l0aW9uKCkuZWFjaCgiZW5kIiwoZnVuY3Rpb24oKXt2YXIgZT1uLnNlbGVjdCh0aGlzKTt1LnNldFNsaWNlQ3Vyc29yKGUsdCx7aGlkZU9uUm9vdDohMCxoaWRlT25MZWF2ZXM6ITEsaXNUcmFuc2l0aW9uaW5nOiExfSl9KSkpLE4uZWFjaCgoZnVuY3Rpb24ocyl7dmFyIHA9dS5pc0hlYWRlcihzLEUpO3MuX3gwPXYocy54MCkscy5feDE9dihzLngxKSxzLl95MD15KHMueTApLHMuX3kxPXkocy55MSkscy5faG92ZXJYPXYocy54MS1FLm1hcmtlci5wYWQucikscy5faG92ZXJZPXkoUD9zLnkxLUUubWFya2VyLnBhZC5iLzI6cy55MCtFLm1hcmtlci5wYWQudC8yKTt2YXIgZD1uLnNlbGVjdCh0aGlzKSxUPWkuZW5zdXJlU2luZ2xlKGQsInBhdGgiLCJzdXJmYWNlIiwoZnVuY3Rpb24odCl7dC5zdHlsZSgicG9pbnRlci1ldmVudHMiLCJhbGwiKX0pKTt3P1QudHJhbnNpdGlvbigpLmF0dHJUd2VlbigiZCIsKGZ1bmN0aW9uKHQpe3ZhciBlPWsodCwhMSxCKCksW20sZ10pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4geChlKHQpKX19KSk6VC5hdHRyKCJkIix4KSxkLmNhbGwoZixyLHQsZSx7c3R5bGVPbmU6bCxldmVudERhdGFLZXlzOmMuZXZlbnREYXRhS2V5cyx0cmFuc2l0aW9uVGltZTpjLkNMSUNLX1RSQU5TSVRJT05fVElNRSx0cmFuc2l0aW9uRWFzaW5nOmMuQ0xJQ0tfVFJBTlNJVElPTl9FQVNJTkd9KS5jYWxsKHUuc2V0U2xpY2VDdXJzb3IsdCx7aXNUcmFuc2l0aW9uaW5nOnQuX3RyYW5zaXRpb25pbmd9KSxULmNhbGwobCxzLEUse2hvdmVyZWQ6ITF9KSxzLngwPT09cy54MXx8cy55MD09PXMueTE/cy5fdGV4dD0iIjpzLl90ZXh0PXA/ST8iIjp1LmdldFB0TGFiZWwocyl8fCIiOmgocyxyLEUsZSxTKXx8IiI7dmFyIE09aS5lbnN1cmVTaW5nbGUoZCwiZyIsInNsaWNldGV4dCIpLE89aS5lbnN1cmVTaW5nbGUoTSwidGV4dCIsIiIsKGZ1bmN0aW9uKHQpe3QuYXR0cigiZGF0YS1ub3RleCIsMSl9KSksej1pLmVuc3VyZVVuaWZvcm1Gb250U2l6ZSh0LHUuZGV0ZXJtaW5lVGV4dEZvbnQoRSxzLFMuZm9udCkpO08udGV4dChzLl90ZXh0fHwiICIpLmNsYXNzZWQoInNsaWNldGV4dCIsITApLmF0dHIoInRleHQtYW5jaG9yIixDPyJlbmQiOkx8fHA/InN0YXJ0IjoibWlkZGxlIikuY2FsbChhLmZvbnQseikuY2FsbChvLmNvbnZlcnRUb1RzcGFucyx0KSxzLnRleHRCQj1hLmJCb3goTy5ub2RlKCkpLHMudHJhbnNmb3JtPWIocyx7Zm9udFNpemU6ei5zaXplLGlzSGVhZGVyOnB9KSxzLnRyYW5zZm9ybS5mb250U2l6ZT16LnNpemUsdz9PLnRyYW5zaXRpb24oKS5hdHRyVHdlZW4oInRyYW5zZm9ybSIsKGZ1bmN0aW9uKHQpe3ZhciBlPUEodCwhMSxCKCksW20sZ10pO3JldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gXyhlKHQpKX19KSk6Ty5hdHRyKCJ0cmFuc2Zvcm0iLF8ocykpfSkpLFJ9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9saWIiOjc3NiwiLi4vLi4vbGliL3N2Z190ZXh0X3V0aWxzIjo4MDIsIi4uL3N1bmJ1cnN0L2Z4IjoxMzA4LCIuLi9zdW5idXJzdC9oZWxwZXJzIjoxMzA5LCIuLi9zdW5idXJzdC9wbG90IjoxMzEzLCIuL2NvbnN0YW50cyI6MTMzMiwiLi9wYXJ0aXRpb24iOjEzNDEsIi4vc3R5bGUiOjEzNDQsIkBwbG90bHkvZDMiOjU4fV0sMTMzNzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9ZnVuY3Rpb24gdChlLHIsbil7dmFyIGk7bi5zd2FwWFkmJihpPWUueDAsZS54MD1lLnkwLGUueTA9aSxpPWUueDEsZS54MT1lLnkxLGUueTE9aSksbi5mbGlwWCYmKGk9ZS54MCxlLngwPXJbMF0tZS54MSxlLngxPXJbMF0taSksbi5mbGlwWSYmKGk9ZS55MCxlLnkwPXJbMV0tZS55MSxlLnkxPXJbMV0taSk7dmFyIGE9ZS5jaGlsZHJlbjtpZihhKWZvcih2YXIgbz0wO288YS5sZW5ndGg7bysrKXQoYVtvXSxyLG4pfX0se31dLDEzMzg6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXttb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidHJlZW1hcCIsYmFzZVBsb3RNb2R1bGU6dCgiLi9iYXNlX3Bsb3QiKSxjYXRlZ29yaWVzOltdLGFuaW1hdGFibGU6ITAsYXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLmNhbGMsY3Jvc3NUcmFjZUNhbGM6dCgiLi9jYWxjIikuY3Jvc3NUcmFjZUNhbGMscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIikuc3R5bGUsY29sb3JiYXI6dCgiLi4vc2NhdHRlci9tYXJrZXJfY29sb3JiYXIiKSxtZXRhOnt9fX0seyIuLi9zY2F0dGVyL21hcmtlcl9jb2xvcmJhciI6MTIwOSwiLi9hdHRyaWJ1dGVzIjoxMzI5LCIuL2Jhc2VfcGxvdCI6MTMzMCwiLi9jYWxjIjoxMzMxLCIuL2RlZmF1bHRzIjoxMzMzLCIuL2xheW91dF9hdHRyaWJ1dGVzIjoxMzM5LCIuL2xheW91dF9kZWZhdWx0cyI6MTM0MCwiLi9wbG90IjoxMzQyLCIuL3N0eWxlIjoxMzQ0fV0sMTMzOTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtlLmV4cG9ydHM9e3RyZWVtYXBjb2xvcndheTp7dmFsVHlwZToiY29sb3JsaXN0IixlZGl0VHlwZToiY2FsYyJ9LGV4dGVuZHRyZWVtYXBjb2xvcnM6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifX19LHt9XSwxMzQwOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9sYXlvdXRfYXR0cmlidXRlcyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe2Z1bmN0aW9uIHIocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1yKCJ0cmVlbWFwY29sb3J3YXkiLGUuY29sb3J3YXkpLHIoImV4dGVuZHRyZWVtYXBjb2xvcnMiKX19LHsiLi4vLi4vbGliIjo3NzYsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEzMzl9XSwxMzQxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoImQzLWhpZXJhcmNoeSIpLGk9dCgiLi9mbGlwX3RyZWUiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhLG89ci5mbGlwWCxzPXIuZmxpcFksbD0iZGljZS1zbGljZSI9PT1yLnBhY2tpbmcsYz1yLnBhZFtzPyJib3R0b20iOiJ0b3AiXSx1PXIucGFkW28/InJpZ2h0IjoibGVmdCJdLGY9ci5wYWRbbz8ibGVmdCI6InJpZ2h0Il0saD1yLnBhZFtzPyJ0b3AiOiJib3R0b20iXTtsJiYoYT11LHU9YyxjPWEsYT1mLGY9aCxoPWEpO3ZhciBwPW4udHJlZW1hcCgpLnRpbGUoZnVuY3Rpb24odCxlKXtzd2l0Y2godCl7Y2FzZSJzcXVhcmlmeSI6cmV0dXJuIG4udHJlZW1hcFNxdWFyaWZ5LnJhdGlvKGUpO2Nhc2UiYmluYXJ5IjpyZXR1cm4gbi50cmVlbWFwQmluYXJ5O2Nhc2UiZGljZSI6cmV0dXJuIG4udHJlZW1hcERpY2U7Y2FzZSJzbGljZSI6cmV0dXJuIG4udHJlZW1hcFNsaWNlO2RlZmF1bHQ6cmV0dXJuIG4udHJlZW1hcFNsaWNlRGljZX19KHIucGFja2luZyxyLnNxdWFyaWZ5cmF0aW8pKS5wYWRkaW5nSW5uZXIoci5wYWQuaW5uZXIpLnBhZGRpbmdMZWZ0KHUpLnBhZGRpbmdSaWdodChmKS5wYWRkaW5nVG9wKGMpLnBhZGRpbmdCb3R0b20oaCkuc2l6ZShsP1tlWzFdLGVbMF1dOmUpKHQpO3JldHVybihsfHxvfHxzKSYmaShwLGUse3N3YXBYWTpsLGZsaXBYOm8sZmxpcFk6c30pLHB9fSx7Ii4vZmxpcF90cmVlIjoxMzM3LCJkMy1oaWVyYXJjaHkiOjE2M31dLDEzNDI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi9kcmF3IiksaT10KCIuL2RyYXdfZGVzY2VuZGFudHMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIsYSl7cmV0dXJuIG4odCxlLHIsYSx7dHlwZToidHJlZW1hcCIsZHJhd0Rlc2NlbmRhbnRzOml9KX19LHsiLi9kcmF3IjoxMzM0LCIuL2RyYXdfZGVzY2VuZGFudHMiOjEzMzZ9XSwxMzQzOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoImQzLWludGVycG9sYXRlIikuaW50ZXJwb2xhdGUsYT10KCIuLi9zdW5idXJzdC9oZWxwZXJzIiksbz10KCIuLi8uLi9saWIiKSxzPXQoIi4uL2Jhci9jb25zdGFudHMiKS5URVhUUEFELGw9dCgiLi4vYmFyL3Bsb3QiKS50b01vdmVJbnNpZGVCYXIsYz10KCIuLi9iYXIvdW5pZm9ybV90ZXh0IikucmVjb3JkTWluVGV4dFNpemUsdT10KCIuL2NvbnN0YW50cyIpLGY9dCgiLi9kcmF3X2FuY2VzdG9ycyIpO2Z1bmN0aW9uIGgodCl7cmV0dXJuIGEuaXNIaWVyYXJjaHlSb290KHQpPyIiOmEuZ2V0UHRJZCh0KX1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscCxkKXt2YXIgbT10Ll9mdWxsTGF5b3V0LGc9ZVswXSx2PWcudHJhY2UseT0iaWNpY2xlIj09PXYudHlwZSx4PWcuaGllcmFyY2h5LGI9YS5maW5kRW50cnlXaXRoTGV2ZWwoeCx2LmxldmVsKSxfPW4uc2VsZWN0KHIpLHc9Xy5zZWxlY3RBbGwoImcucGF0aGJhciIpLFQ9Xy5zZWxlY3RBbGwoImcuc2xpY2UiKTtpZighYilyZXR1cm4gdy5yZW1vdmUoKSx2b2lkIFQucmVtb3ZlKCk7dmFyIGs9YS5pc0hpZXJhcmNoeVJvb3QoYiksQT0hbS51bmlmb3JtdGV4dC5tb2RlJiZhLmhhc1RyYW5zaXRpb24ocCksTT1hLmdldE1heERlcHRoKHYpLFM9bS5fc2l6ZSxFPXYuZG9tYWluLEw9Uy53KihFLnhbMV0tRS54WzBdKSxDPVMuaCooRS55WzFdLUUueVswXSksUD1MLEk9di5wYXRoYmFyLnRoaWNrbmVzcyxPPXYubWFya2VyLmxpbmUud2lkdGgrdS5nYXBXaXRoUGF0aGJhcix6PXYucGF0aGJhci52aXNpYmxlP3YucGF0aGJhci5zaWRlLmluZGV4T2YoImJvdHRvbSIpPi0xP0MrTzotKEkrTyk6MCxEPXt4MDpQLHgxOlAseTA6eix5MTp6K0l9LFI9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXYudGlsaW5nLnBhZCxpPWZ1bmN0aW9uKHQpe3JldHVybiB0LW48PWUueDB9LGE9ZnVuY3Rpb24odCl7cmV0dXJuIHQrbj49ZS54MX0sbz1mdW5jdGlvbih0KXtyZXR1cm4gdC1uPD1lLnkwfSxzPWZ1bmN0aW9uKHQpe3JldHVybiB0K24+PWUueTF9O3JldHVybiB0LngwPT09ZS54MCYmdC54MT09PWUueDEmJnQueTA9PT1lLnkwJiZ0LnkxPT09ZS55MT97eDA6dC54MCx4MTp0LngxLHkwOnQueTAseTE6dC55MX06e3gwOmkodC54MC1uKT8wOmEodC54MC1uKT9yWzBdOnQueDAseDE6aSh0LngxK24pPzA6YSh0LngxK24pP3JbMF06dC54MSx5MDpvKHQueTAtbik/MDpzKHQueTAtbik/clsxXTp0LnkwLHkxOm8odC55MStuKT8wOnModC55MStuKT9yWzFdOnQueTF9fSxGPW51bGwsQj17fSxOPXt9LGo9bnVsbCxVPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU/QltoKHQpXTpOW2godCldfSxWPWZ1bmN0aW9uKHQsZSxyLG4pe2lmKGUpcmV0dXJuIEJbaCh4KV18fEQ7dmFyIGk9Tlt2LmxldmVsXXx8cjtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIHQuZGF0YS5kZXB0aC1iLmRhdGEuZGVwdGg8TX0odCk/Uih0LGksbik6e319O2cuaGFzTXVsdGlwbGVSb290cyYmayYmTSsrLHYuX21heERlcHRoPU0sdi5fYmFja2dyb3VuZENvbG9yPW0ucGFwZXJfYmdjb2xvcix2Ll9lbnRyeURlcHRoPWIuZGF0YS5kZXB0aCx2Ll9hdFJvb3RMZXZlbD1rO3ZhciBIPS1MLzIrUy5sK1MudyooRS54WzFdK0UueFswXSkvMixxPS1DLzIrUy50K1MuaCooMS0oRS55WzFdK0UueVswXSkvMiksRz1mdW5jdGlvbih0KXtyZXR1cm4gSCt0fSxZPWZ1bmN0aW9uKHQpe3JldHVybiBxK3R9LFc9WSgwKSxYPUcoMCksWj1mdW5jdGlvbih0KXtyZXR1cm4gWCt0fSxKPWZ1bmN0aW9uKHQpe3JldHVybiBXK3R9O2Z1bmN0aW9uIEsodCxlKXtyZXR1cm4gdCsiLCIrZX12YXIgUT1aKDApLCQ9ZnVuY3Rpb24odCl7dC54PU1hdGgubWF4KFEsdC54KX0sdHQ9di5wYXRoYmFyLmVkZ2VzaGFwZSxldD1mdW5jdGlvbih0LGUpe3ZhciByPXQueDAsbj10LngxLGk9dC55MCxhPXQueTEsbz10LnRleHRCQix1PWZ1bmN0aW9uKHQpe3JldHVybi0xIT09di50ZXh0cG9zaXRpb24uaW5kZXhPZih0KX0sZj11KCJib3R0b20iKSxoPXUoInRvcCIpfHxlLmlzSGVhZGVyJiYhZj8ic3RhcnQiOmY/ImVuZCI6Im1pZGRsZSIscD11KCJyaWdodCIpLGQ9dSgibGVmdCIpfHxlLm9uUGF0aGJhcj8tMTpwPzE6MCxnPXZbeT8idGlsaW5nIjoibWFya2VyIl0ucGFkO2lmKGUuaXNIZWFkZXIpe2lmKChyKz0oeT9nOmcubCktcyk+PShuLT0oeT9nOmcuciktcykpe3ZhciB4PShyK24pLzI7cj14LG49eH12YXIgYjtmP2k8KGI9YS0oeT9nOmcuYikpJiZiPGEmJihpPWIpOmk8KGI9aSsoeT9nOmcudCkpJiZiPGEmJihhPWIpfXZhciBfPWwocixuLGksYSxvLHtpc0hvcml6b250YWw6ITEsY29uc3RyYWluZWQ6ITAsYW5nbGU6MCxhbmNob3I6aCxsZWZ0VG9SaWdodDpkfSk7cmV0dXJuIF8uZm9udFNpemU9ZS5mb250U2l6ZSxfLnRhcmdldFg9RyhfLnRhcmdldFgpLF8udGFyZ2V0WT1ZKF8udGFyZ2V0WSksaXNOYU4oXy50YXJnZXRYKXx8aXNOYU4oXy50YXJnZXRZKT97fToociE9PW4mJmkhPT1hJiZjKHYudHlwZSxfLG0pLHtzY2FsZTpfLnNjYWxlLHJvdGF0ZTpfLnJvdGF0ZSx0ZXh0WDpfLnRleHRYLHRleHRZOl8udGV4dFksYW5jaG9yWDpfLmFuY2hvclgsYW5jaG9yWTpfLmFuY2hvclksdGFyZ2V0WDpfLnRhcmdldFgsdGFyZ2V0WTpfLnRhcmdldFl9KX0scnQ9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbj0wLGk9dDshciYmbjxNOyluKyssKGk9aS5wYXJlbnQpP3I9VShpLGUpOm49TTtyZXR1cm4gcnx8e319LG50PWZ1bmN0aW9uKHQsZSxyLG4sYSl7dmFyIHMsbD1VKHQsZSk7aWYobClzPWw7ZWxzZSBpZihlKXM9RDtlbHNlIGlmKEYpaWYodC5wYXJlbnQpe3ZhciBjPWp8fHI7YyYmIWU/cz1SKHQsYyxuKToocz17fSxvLmV4dGVuZEZsYXQocyxydCh0LGUpKSl9ZWxzZSBzPW8uZXh0ZW5kRmxhdCh7fSx0KSx5JiYoImgiPT09YS5vcmllbnRhdGlvbj9hLmZsaXBYP3MueDA9dC54MTpzLngxPTA6YS5mbGlwWT9zLnkwPXQueTE6cy55MT0wKTtlbHNlIHM9e307cmV0dXJuIGkocyx7eDA6dC54MCx4MTp0LngxLHkwOnQueTAseTE6dC55MX0pfSxpdD1mdW5jdGlvbih0LGUscixuKXt2YXIgcz1VKHQsZSksbD17fSx1PVYodCxlLHIsbik7by5leHRlbmRGbGF0KGwse3RyYW5zZm9ybTpldCh7eDA6dS54MCx4MTp1LngxLHkwOnUueTAseTE6dS55MSx0ZXh0QkI6dC50ZXh0QkIsX3RleHQ6dC5fdGV4dH0se2lzSGVhZGVyOmEuaXNIZWFkZXIodCx2KX0pfSkscz9sPXM6dC5wYXJlbnQmJm8uZXh0ZW5kRmxhdChsLHJ0KHQsZSkpO3ZhciBmPXQudHJhbnNmb3JtO3JldHVybiB0LngwIT09dC54MSYmdC55MCE9PXQueTEmJmModi50eXBlLGYsbSksaShsLHt0cmFuc2Zvcm06e3NjYWxlOmYuc2NhbGUscm90YXRlOmYucm90YXRlLHRleHRYOmYudGV4dFgsdGV4dFk6Zi50ZXh0WSxhbmNob3JYOmYuYW5jaG9yWCxhbmNob3JZOmYuYW5jaG9yWSx0YXJnZXRYOmYudGFyZ2V0WCx0YXJnZXRZOmYudGFyZ2V0WX19KX0sYXQ9ZnVuY3Rpb24odCxlLHIsYSxvKXt2YXIgcz1hWzBdLGw9YVsxXTtBP3QuZXhpdCgpLnRyYW5zaXRpb24oKS5lYWNoKChmdW5jdGlvbigpe3ZhciB0PW4uc2VsZWN0KHRoaXMpO3Quc2VsZWN0KCJwYXRoLnN1cmZhY2UiKS50cmFuc2l0aW9uKCkuYXR0clR3ZWVuKCJkIiwoZnVuY3Rpb24odCl7dmFyIHI9ZnVuY3Rpb24odCxlLHIsbil7dmFyIGEsbz1VKHQsZSk7aWYoZSlhPUQ7ZWxzZXt2YXIgcz1VKGIsZSk7YT1zP1IodCxzLG4pOnt9fXJldHVybiBpKG8sYSl9KHQsZSwwLFtzLGxdKTtyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIG8ocih0KSl9fSkpLHQuc2VsZWN0KCJnLnNsaWNldGV4dCIpLmF0dHIoIm9wYWNpdHkiLDApfSkpLnJlbW92ZSgpOnQuZXhpdCgpLnJlbW92ZSgpfSxvdD1mdW5jdGlvbih0KXt2YXIgZT10LnRyYW5zZm9ybTtyZXR1cm4gdC54MCE9PXQueDEmJnQueTAhPT10LnkxJiZjKHYudHlwZSxlLG0pLG8uZ2V0VGV4dFRyYW5zZm9ybSh7dGV4dFg6ZS50ZXh0WCx0ZXh0WTplLnRleHRZLGFuY2hvclg6ZS5hbmNob3JYLGFuY2hvclk6ZS5hbmNob3JZLHRhcmdldFg6ZS50YXJnZXRYLHRhcmdldFk6ZS50YXJnZXRZLHNjYWxlOmUuc2NhbGUscm90YXRlOmUucm90YXRlfSl9O0EmJih3LmVhY2goKGZ1bmN0aW9uKHQpe0JbaCh0KV09e3gwOnQueDAseDE6dC54MSx5MDp0LnkwLHkxOnQueTF9LHQudHJhbnNmb3JtJiYoQltoKHQpXS50cmFuc2Zvcm09e3RleHRYOnQudHJhbnNmb3JtLnRleHRYLHRleHRZOnQudHJhbnNmb3JtLnRleHRZLGFuY2hvclg6dC50cmFuc2Zvcm0uYW5jaG9yWCxhbmNob3JZOnQudHJhbnNmb3JtLmFuY2hvclksdGFyZ2V0WDp0LnRyYW5zZm9ybS50YXJnZXRYLHRhcmdldFk6dC50cmFuc2Zvcm0udGFyZ2V0WSxzY2FsZTp0LnRyYW5zZm9ybS5zY2FsZSxyb3RhdGU6dC50cmFuc2Zvcm0ucm90YXRlfSl9KSksVC5lYWNoKChmdW5jdGlvbih0KXtOW2godCldPXt4MDp0LngwLHgxOnQueDEseTA6dC55MCx5MTp0LnkxfSx0LnRyYW5zZm9ybSYmKE5baCh0KV0udHJhbnNmb3JtPXt0ZXh0WDp0LnRyYW5zZm9ybS50ZXh0WCx0ZXh0WTp0LnRyYW5zZm9ybS50ZXh0WSxhbmNob3JYOnQudHJhbnNmb3JtLmFuY2hvclgsYW5jaG9yWTp0LnRyYW5zZm9ybS5hbmNob3JZLHRhcmdldFg6dC50cmFuc2Zvcm0udGFyZ2V0WCx0YXJnZXRZOnQudHJhbnNmb3JtLnRhcmdldFksc2NhbGU6dC50cmFuc2Zvcm0uc2NhbGUscm90YXRlOnQudHJhbnNmb3JtLnJvdGF0ZX0pLCFGJiZhLmlzRW50cnkodCkmJihGPXQpfSkpKSxqPWQodCxlLGIsVCx7d2lkdGg6TCxoZWlnaHQ6Qyx2aWV3WDpHLHZpZXdZOlkscGF0aFNsaWNlOmZ1bmN0aW9uKHQpe3ZhciBlPUcodC54MCkscj1HKHQueDEpLG49WSh0LnkwKSxpPVkodC55MSksYT1yLWUsbz1pLW47aWYoIWF8fCFvKXJldHVybiIiO3JldHVybiJNIitLKGUsbiswKSsiTCIrSyhyLTAsbikrIkwiK0socixpLTApKyJMIitLKGUrMCxpKSsiWiJ9LHRvTW92ZUluc2lkZVNsaWNlOmV0LHByZXZFbnRyeTpGLG1ha2VVcGRhdGVTbGljZUludGVycG9sYXRvcjpudCxtYWtlVXBkYXRlVGV4dEludGVycG9sYXRvcjppdCxoYW5kbGVTbGljZXNFeGl0OmF0LGhhc1RyYW5zaXRpb246QSxzdHJUcmFuc2Zvcm06b3R9KSx2LnBhdGhiYXIudmlzaWJsZT9mKHQsZSxiLHcse2JhckRpZlk6eix3aWR0aDpQLGhlaWdodDpJLHZpZXdYOlosdmlld1k6SixwYXRoU2xpY2U6ZnVuY3Rpb24odCl7dmFyIGU9WihNYXRoLm1heChNYXRoLm1pbih0LngwLHQueDApLDApKSxyPVooTWF0aC5taW4oTWF0aC5tYXgodC54MSx0LngxKSxQKSksbj1KKHQueTApLGk9Sih0LnkxKSxhPUkvMixvPXt9LHM9e307by54PWUscy54PXIsby55PXMueT0obitpKS8yO3ZhciBsPXt4OmUseTpufSxjPXt4OnIseTpufSx1PXt4OnIseTppfSxmPXt4OmUseTppfTtyZXR1cm4iPiI9PT10dD8obC54LT1hLGMueC09YSx1LngtPWEsZi54LT1hKToiLyI9PT10dD8odS54LT1hLGYueC09YSxvLngtPWEvMixzLngtPWEvMik6IlxcIj09PXR0PyhsLngtPWEsYy54LT1hLG8ueC09YS8yLHMueC09YS8yKToiPCI9PT10dCYmKG8ueC09YSxzLngtPWEpLCQobCksJChmKSwkKG8pLCQoYyksJCh1KSwkKHMpLCJNIitLKGwueCxsLnkpKyJMIitLKGMueCxjLnkpKyJMIitLKHMueCxzLnkpKyJMIitLKHUueCx1LnkpKyJMIitLKGYueCxmLnkpKyJMIitLKG8ueCxvLnkpKyJaIn0sdG9Nb3ZlSW5zaWRlU2xpY2U6ZXQsbWFrZVVwZGF0ZVNsaWNlSW50ZXJwb2xhdG9yOm50LG1ha2VVcGRhdGVUZXh0SW50ZXJwb2xhdG9yOml0LGhhbmRsZVNsaWNlc0V4aXQ6YXQsaGFzVHJhbnNpdGlvbjpBLHN0clRyYW5zZm9ybTpvdH0pOncucmVtb3ZlKCl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9iYXIvY29uc3RhbnRzIjo5MTYsIi4uL2Jhci9wbG90Ijo5MjUsIi4uL2Jhci91bmlmb3JtX3RleHQiOjkzMCwiLi4vc3VuYnVyc3QvaGVscGVycyI6MTMwOSwiLi9jb25zdGFudHMiOjEzMzIsIi4vZHJhd19hbmNlc3RvcnMiOjEzMzUsIkBwbG90bHkvZDMiOjU4LCJkMy1pbnRlcnBvbGF0ZSI6MTY0fV0sMTM0NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi8uLi9saWIiKSxvPXQoIi4uL3N1bmJ1cnN0L2hlbHBlcnMiKSxzPXQoIi4uL2Jhci91bmlmb3JtX3RleHQiKS5yZXNpemVUZXh0O2Z1bmN0aW9uIGwodCxlLHIsbil7dmFyIHMsbCxjPShufHx7fSkuaG92ZXJlZCx1PWUuZGF0YS5kYXRhLGY9dS5pLGg9dS5jb2xvcixwPW8uaXNIaWVyYXJjaHlSb290KGUpLGQ9MTtpZihjKXM9ci5faG92ZXJlZC5tYXJrZXIubGluZS5jb2xvcixsPXIuX2hvdmVyZWQubWFya2VyLmxpbmUud2lkdGg7ZWxzZSBpZihwJiZoPT09ci5yb290LmNvbG9yKWQ9MTAwLHM9InJnYmEoMCwwLDAsMCkiLGw9MDtlbHNlIGlmKHM9YS5jYXN0T3B0aW9uKHIsZiwibWFya2VyLmxpbmUuY29sb3IiKXx8aS5kZWZhdWx0TGluZSxsPWEuY2FzdE9wdGlvbihyLGYsIm1hcmtlci5saW5lLndpZHRoIil8fDAsIXIuX2hhc0NvbG9yc2NhbGUmJiFlLm9uUGF0aGJhcil7dmFyIG09ci5tYXJrZXIuZGVwdGhmYWRlO2lmKG0pe3ZhciBnLHY9aS5jb21iaW5lKGkuYWRkT3BhY2l0eShyLl9iYWNrZ3JvdW5kQ29sb3IsLjc1KSxoKTtpZighMD09PW0pe3ZhciB5PW8uZ2V0TWF4RGVwdGgocik7Zz1pc0Zpbml0ZSh5KT9vLmlzTGVhZihlKT8wOnIuX21heFZpc2libGVMYXllcnMtKGUuZGF0YS5kZXB0aC1yLl9lbnRyeURlcHRoKTplLmRhdGEuaGVpZ2h0KzF9ZWxzZSBnPWUuZGF0YS5kZXB0aC1yLl9lbnRyeURlcHRoLHIuX2F0Um9vdExldmVsfHxnKys7aWYoZz4wKWZvcih2YXIgeD0wO3g8Zzt4Kyspe3ZhciBiPS41KngvZztoPWkuY29tYmluZShpLmFkZE9wYWNpdHkodixiKSxoKX19fXQuc3R5bGUoInN0cm9rZS13aWR0aCIsbCkuY2FsbChpLmZpbGwsaCkuY2FsbChpLnN0cm9rZSxzKS5zdHlsZSgib3BhY2l0eSIsZCl9ZS5leHBvcnRzPXtzdHlsZTpmdW5jdGlvbih0KXt2YXIgZT10Ll9mdWxsTGF5b3V0Ll90cmVlbWFwbGF5ZXIuc2VsZWN0QWxsKCIudHJhY2UiKTtzKHQsZSwidHJlZW1hcCIpLGUuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9bi5zZWxlY3QodGhpcykscj10WzBdLnRyYWNlO2Uuc3R5bGUoIm9wYWNpdHkiLHIub3BhY2l0eSksZS5zZWxlY3RBbGwoInBhdGguc3VyZmFjZSIpLmVhY2goKGZ1bmN0aW9uKHQpe24uc2VsZWN0KHRoaXMpLmNhbGwobCx0LHIse2hvdmVyZWQ6ITF9KX0pKX0pKX0sc3R5bGVPbmU6bH19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9saWIiOjc3NiwiLi4vYmFyL3VuaWZvcm1fdGV4dCI6OTMwLCIuLi9zdW5idXJzdC9oZWxwZXJzIjoxMzA5LCJAcGxvdGx5L2QzIjo1OH1dLDEzNDU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYm94L2F0dHJpYnV0ZXMiKSxpPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGE9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4aXNfZm9ybWF0X2F0dHJpYnV0ZXMiKS5heGlzSG92ZXJGb3JtYXQ7ZS5leHBvcnRzPXt5Om4ueSx4Om4ueCx4MDpuLngwLHkwOm4ueTAseGhvdmVyZm9ybWF0OmEoIngiKSx5aG92ZXJmb3JtYXQ6YSgieSIpLG5hbWU6aSh7fSxuLm5hbWUse30pLG9yaWVudGF0aW9uOmkoe30sbi5vcmllbnRhdGlvbix7fSksYmFuZHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJjYWxjIn0sc2NhbGVncm91cDp7dmFsVHlwZToic3RyaW5nIixkZmx0OiIiLGVkaXRUeXBlOiJjYWxjIn0sc2NhbGVtb2RlOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJ3aWR0aCIsImNvdW50Il0sZGZsdDoid2lkdGgiLGVkaXRUeXBlOiJjYWxjIn0sc3Bhbm1vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNvZnQiLCJoYXJkIiwibWFudWFsIl0sZGZsdDoic29mdCIsZWRpdFR5cGU6ImNhbGMifSxzcGFuOnt2YWxUeXBlOiJpbmZvX2FycmF5IixpdGVtczpbe3ZhbFR5cGU6ImFueSIsZWRpdFR5cGU6ImNhbGMifSx7dmFsVHlwZToiYW55IixlZGl0VHlwZToiY2FsYyJ9XSxlZGl0VHlwZToiY2FsYyJ9LGxpbmU6e2NvbG9yOnt2YWxUeXBlOiJjb2xvciIsZWRpdFR5cGU6InN0eWxlIn0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsZGZsdDoyLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJwbG90In0sZmlsbGNvbG9yOm4uZmlsbGNvbG9yLHBvaW50czppKHt9LG4uYm94cG9pbnRzLHt9KSxqaXR0ZXI6aSh7fSxuLmppdHRlcix7fSkscG9pbnRwb3M6aSh7fSxuLnBvaW50cG9zLHt9KSx3aWR0aDppKHt9LG4ud2lkdGgse30pLG1hcmtlcjpuLm1hcmtlcix0ZXh0Om4udGV4dCxob3ZlcnRleHQ6bi5ob3ZlcnRleHQsaG92ZXJ0ZW1wbGF0ZTpuLmhvdmVydGVtcGxhdGUsYm94Ont2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJwbG90In0sd2lkdGg6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDouMjUsZWRpdFR5cGU6InBsb3QifSxmaWxsY29sb3I6e3ZhbFR5cGU6ImNvbG9yIixlZGl0VHlwZToic3R5bGUifSxsaW5lOntjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJwbG90In0sbWVhbmxpbmU6e3Zpc2libGU6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITEsZWRpdFR5cGU6InBsb3QifSxjb2xvcjp7dmFsVHlwZToiY29sb3IiLGVkaXRUeXBlOiJzdHlsZSJ9LHdpZHRoOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLGVkaXRUeXBlOiJzdHlsZSJ9LGVkaXRUeXBlOiJwbG90In0sc2lkZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiYm90aCIsInBvc2l0aXZlIiwibmVnYXRpdmUiXSxkZmx0OiJib3RoIixlZGl0VHlwZToiY2FsYyJ9LG9mZnNldGdyb3VwOm4ub2Zmc2V0Z3JvdXAsYWxpZ25tZW50Z3JvdXA6bi5hbGlnbm1lbnRncm91cCxzZWxlY3RlZDpuLnNlbGVjdGVkLHVuc2VsZWN0ZWQ6bi51bnNlbGVjdGVkLGhvdmVyb246e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbInZpb2xpbnMiLCJwb2ludHMiLCJrZGUiXSxkZmx0OiJ2aW9saW5zK3BvaW50cytrZGUiLGV4dHJhczpbImFsbCJdLGVkaXRUeXBlOiJzdHlsZSJ9fX0seyIuLi8uLi9saWIvZXh0ZW5kIjo3NjYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo4MzAsIi4uL2JveC9hdHRyaWJ1dGVzIjo5Mzl9XSwxMzQ2OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxhPXQoIi4uL2JveC9jYWxjIiksbz10KCIuL2hlbHBlcnMiKSxzPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ZnVuY3Rpb24gbCh0LGUscil7dmFyIGk9ZS5tYXgtZS5taW47aWYoIWkpcmV0dXJuIHQuYmFuZHdpZHRoP3QuYmFuZHdpZHRoOjA7aWYodC5iYW5kd2lkdGgpcmV0dXJuIE1hdGgubWF4KHQuYmFuZHdpZHRoLGkvMWU0KTt2YXIgYT1yLmxlbmd0aCxvPW4uc3RkZXYocixhLTEsZS5tZWFuKTtyZXR1cm4gTWF0aC5tYXgoZnVuY3Rpb24odCxlLHIpe3JldHVybiAxLjA1OSpNYXRoLm1pbihlLHIvMS4zNDkpKk1hdGgucG93KHQsLS4yKX0oYSxvLGUucTMtZS5xMSksaS8xMDApfWZ1bmN0aW9uIGModCxlLHIsbil7dmFyIGEsbz10LnNwYW5tb2RlLGw9dC5zcGFufHxbXSxjPVtlLm1pbixlLm1heF0sdT1bZS5taW4tMipuLGUubWF4KzIqbl07ZnVuY3Rpb24gZihuKXt2YXIgaT1sW25dLGE9Im11bHRpY2F0ZWdvcnkiPT09ci50eXBlP3IucjJjKGkpOnIuZDJjKGksMCx0W2UudmFsTGV0dGVyKyJjYWxlbmRhciJdKTtyZXR1cm4gYT09PXM/dVtuXTphfXZhciBoPXt0eXBlOiJsaW5lYXIiLHJhbmdlOmE9InNvZnQiPT09bz91OiJoYXJkIj09PW8/YzpbZigwKSxmKDEpXX07cmV0dXJuIGkuc2V0Q29udmVydChoKSxoLmNsZWFuUmFuZ2UoKSxhfWUuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByPWEodCxlKTtpZihyWzBdLnQuZW1wdHkpcmV0dXJuIHI7Zm9yKHZhciBzPXQuX2Z1bGxMYXlvdXQsdT1pLmdldEZyb21JZCh0LGVbImgiPT09ZS5vcmllbnRhdGlvbj8ieGF4aXMiOiJ5YXhpcyJdKSxmPTEvMCxoPS0xLzAscD0wLGQ9MCxtPTA7bTxyLmxlbmd0aDttKyspe3ZhciBnPXJbbV0sdj1nLnB0cy5tYXAoby5leHRyYWN0VmFsKSx5PWcuYmFuZHdpZHRoPWwoZSxnLHYpLHg9Zy5zcGFuPWMoZSxnLHUseSk7aWYoZy5taW49PT1nLm1heCYmMD09PXkpeD1nLnNwYW49W2cubWluLGcubWF4XSxnLmRlbnNpdHk9W3t2OjEsdDp4WzBdfV0sZy5iYW5kd2lkdGg9eSxwPU1hdGgubWF4KHAsMSk7ZWxzZXt2YXIgYj14WzFdLXhbMF0sXz1NYXRoLmNlaWwoYi8oeS8zKSksdz1iL187aWYoIWlzRmluaXRlKHcpfHwhaXNGaW5pdGUoXykpcmV0dXJuIG4uZXJyb3IoIlNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggY29tcHV0aW5nIHRoZSB2aW9saW4gc3BhbiIpLHJbMF0udC5lbXB0eT0hMCxyO3ZhciBUPW8ubWFrZUtERShnLGUsdik7Zy5kZW5zaXR5PW5ldyBBcnJheShfKTtmb3IodmFyIGs9MCxBPXhbMF07QTx4WzFdK3cvMjtrKyssQSs9dyl7dmFyIE09VChBKTtnLmRlbnNpdHlba109e3Y6TSx0OkF9LHA9TWF0aC5tYXgocCxNKX19ZD1NYXRoLm1heChkLHYubGVuZ3RoKSxmPU1hdGgubWluKGYseFswXSksaD1NYXRoLm1heChoLHhbMV0pfXZhciBTPWkuZmluZEV4dHJlbWVzKHUsW2YsaF0se3BhZGRlZDohMH0pO2lmKGUuX2V4dHJlbWVzW3UuX2lkXT1TLGUud2lkdGgpclswXS50Lm1heEtERT1wO2Vsc2V7dmFyIEU9cy5fdmlvbGluU2NhbGVHcm91cFN0YXRzLEw9ZS5zY2FsZWdyb3VwLEM9RVtMXTtDPyhDLm1heEtERT1NYXRoLm1heChDLm1heEtERSxwKSxDLm1heENvdW50PU1hdGgubWF4KEMubWF4Q291bnQsZCkpOkVbTF09e21heEtERTpwLG1heENvdW50OmR9fXJldHVybiByWzBdLnQubGFiZWxzLmtkZT1uLl8odCwia2RlOiIpLHJ9fSx7Ii4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL2JveC9jYWxjIjo5NDAsIi4vaGVscGVycyI6MTM0OX1dLDEzNDc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYm94L2Nyb3NzX3RyYWNlX2NhbGMiKS5zZXRQb3NpdGlvbk9mZnNldCxpPVsidiIsImgiXTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9dC5jYWxjZGF0YSxhPWUueGF4aXMsbz1lLnlheGlzLHM9MDtzPGkubGVuZ3RoO3MrKyl7Zm9yKHZhciBsPWlbc10sYz0iaCI9PT1sP286YSx1PVtdLGY9MDtmPHIubGVuZ3RoO2YrKyl7dmFyIGg9cltmXSxwPWhbMF0udCxkPWhbMF0udHJhY2U7ITAhPT1kLnZpc2libGV8fCJ2aW9saW4iIT09ZC50eXBlfHxwLmVtcHR5fHxkLm9yaWVudGF0aW9uIT09bHx8ZC54YXhpcyE9PWEuX2lkfHxkLnlheGlzIT09by5faWR8fHUucHVzaChmKX1uKCJ2aW9saW4iLHQsdSxjKX19fSx7Ii4uL2JveC9jcm9zc190cmFjZV9jYWxjIjo5NDF9XSwxMzQ4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi4vLi4vY29tcG9uZW50cy9jb2xvciIpLGE9dCgiLi4vYm94L2RlZmF1bHRzIiksbz10KCIuL2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIscyl7ZnVuY3Rpb24gbChyLGkpe3JldHVybiBuLmNvZXJjZSh0LGUsbyxyLGkpfWZ1bmN0aW9uIGMocixpKXtyZXR1cm4gbi5jb2VyY2UyKHQsZSxvLHIsaSl9aWYoYS5oYW5kbGVTYW1wbGVEZWZhdWx0cyh0LGUsbCxzKSwhMSE9PWUudmlzaWJsZSl7bCgiYmFuZHdpZHRoIiksbCgic2lkZSIpLGwoIndpZHRoIil8fChsKCJzY2FsZWdyb3VwIixlLm5hbWUpLGwoInNjYWxlbW9kZSIpKTt2YXIgdSxmPWwoInNwYW4iKTtBcnJheS5pc0FycmF5KGYpJiYodT0ibWFudWFsIiksbCgic3Bhbm1vZGUiLHUpO3ZhciBoPWwoImxpbmUuY29sb3IiLCh0Lm1hcmtlcnx8e30pLmNvbG9yfHxyKSxwPWwoImxpbmUud2lkdGgiKSxkPWwoImZpbGxjb2xvciIsaS5hZGRPcGFjaXR5KGUubGluZS5jb2xvciwuNSkpO2EuaGFuZGxlUG9pbnRzRGVmYXVsdHModCxlLGwse3ByZWZpeDoiIn0pO3ZhciBtPWMoImJveC53aWR0aCIpLGc9YygiYm94LmZpbGxjb2xvciIsZCksdj1jKCJib3gubGluZS5jb2xvciIsaCkseT1jKCJib3gubGluZS53aWR0aCIscCk7bCgiYm94LnZpc2libGUiLEJvb2xlYW4obXx8Z3x8dnx8eSkpfHwoZS5ib3g9e3Zpc2libGU6ITF9KTt2YXIgeD1jKCJtZWFubGluZS5jb2xvciIsaCksYj1jKCJtZWFubGluZS53aWR0aCIscCk7bCgibWVhbmxpbmUudmlzaWJsZSIsQm9vbGVhbih4fHxiKSl8fChlLm1lYW5saW5lPXt2aXNpYmxlOiExfSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2xpYiI6Nzc2LCIuLi9ib3gvZGVmYXVsdHMiOjk0MiwiLi9hdHRyaWJ1dGVzIjoxMzQ1fV0sMTM0OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPWZ1bmN0aW9uKHQpe3JldHVybiAxL01hdGguc3FydCgyKk1hdGguUEkpKk1hdGguZXhwKC0uNSp0KnQpfTtyLm1ha2VLREU9ZnVuY3Rpb24odCxlLHIpe3ZhciBuPXIubGVuZ3RoLGE9aSxvPXQuYmFuZHdpZHRoLHM9MS8obipvKTtyZXR1cm4gZnVuY3Rpb24odCl7Zm9yKHZhciBlPTAsaT0wO2k8bjtpKyspZSs9YSgodC1yW2ldKS9vKTtyZXR1cm4gcyplfX0sci5nZXRQb3NpdGlvbk9uS2RlUGF0aD1mdW5jdGlvbih0LGUscil7dmFyIGksYTsiaCI9PT1lLm9yaWVudGF0aW9uPyhpPSJ5IixhPSJ4Iik6KGk9IngiLGE9InkiKTt2YXIgbz1uLmZpbmRQb2ludE9uUGF0aCh0LnBhdGgscixhLHtwYXRoTGVuZ3RoOnQucGF0aExlbmd0aH0pLHM9dC5wb3NDZW50ZXJQeCxsPW9baV07cmV0dXJuW2wsImJvdGgiPT09ZS5zaWRlPzIqcy1sOnNdfSxyLmdldEtkZVZhbHVlPWZ1bmN0aW9uKHQsZSxuKXt2YXIgaT10LnB0cy5tYXAoci5leHRyYWN0VmFsKTtyZXR1cm4gci5tYWtlS0RFKHQsZSxpKShuKS90LnBvc0RlbnNpdHlTY2FsZX0sci5leHRyYWN0VmFsPWZ1bmN0aW9uKHQpe3JldHVybiB0LnZ9fSx7Ii4uLy4uL2xpYiI6Nzc2fV0sMTM1MDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuLi9ib3gvaG92ZXIiKSxvPXQoIi4vaGVscGVycyIpO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixzLGwpe2x8fChsPXt9KTt2YXIgYyx1LGY9bC5ob3ZlckxheWVyLGg9dC5jZCxwPWhbMF0udHJhY2UsZD1wLmhvdmVyb24sbT0tMSE9PWQuaW5kZXhPZigidmlvbGlucyIpLGc9LTEhPT1kLmluZGV4T2YoImtkZSIpLHY9W107aWYobXx8Zyl7dmFyIHk9YS5ob3Zlck9uQm94ZXModCxlLHIscyk7aWYoZyYmeS5sZW5ndGg+MCl7dmFyIHgsYixfLHcsVCxrPXQueGEsQT10LnlhOyJoIj09PXAub3JpZW50YXRpb24/KFQ9ZSx4PSJ5IixfPUEsYj0ieCIsdz1rKTooVD1yLHg9IngiLF89ayxiPSJ5Iix3PUEpO3ZhciBNPWhbdC5pbmRleF07aWYoVD49TS5zcGFuWzBdJiZUPD1NLnNwYW5bMV0pe3ZhciBTPW4uZXh0ZW5kRmxhdCh7fSx0KSxFPXcuYzJwKFQsITApLEw9by5nZXRLZGVWYWx1ZShNLHAsVCksQz1vLmdldFBvc2l0aW9uT25LZGVQYXRoKE0scCxFKSxQPV8uX29mZnNldCxJPV8uX2xlbmd0aDtTW3grIjAiXT1DWzBdLFNbeCsiMSJdPUNbMV0sU1tiKyIwIl09U1tiKyIxIl09RSxTW2IrIkxhYmVsIl09YisiOiAiK2kuaG92ZXJMYWJlbFRleHQodyxULHBbYisiaG92ZXJmb3JtYXQiXSkrIiwgIitoWzBdLnQubGFiZWxzLmtkZSsiICIrTC50b0ZpeGVkKDMpLFMuc3Bpa2VEaXN0YW5jZT15WzBdLnNwaWtlRGlzdGFuY2U7dmFyIE89eCsiU3Bpa2UiO1NbT109eVswXVtPXSx5WzBdLnNwaWtlRGlzdGFuY2U9dm9pZCAwLHlbMF1bT109dm9pZCAwLFMuaG92ZXJ0ZW1wbGF0ZT0hMSx2LnB1c2goUyksKHU9e3N0cm9rZTp0LmNvbG9yfSlbeCsiMSJdPW4uY29uc3RyYWluKFArQ1swXSxQLFArSSksdVt4KyIyIl09bi5jb25zdHJhaW4oUCtDWzFdLFAsUCtJKSx1W2IrIjEiXT11W2IrIjIiXT13Ll9vZmZzZXQrRX19bSYmKHY9di5jb25jYXQoeSkpfS0xIT09ZC5pbmRleE9mKCJwb2ludHMiKSYmKGM9YS5ob3Zlck9uUG9pbnRzKHQsZSxyKSk7dmFyIHo9Zi5zZWxlY3RBbGwoIi52aW9saW5saW5lLSIrcC51aWQpLmRhdGEodT9bMF06W10pO3JldHVybiB6LmVudGVyKCkuYXBwZW5kKCJsaW5lIikuY2xhc3NlZCgidmlvbGlubGluZS0iK3AudWlkLCEwKS5hdHRyKCJzdHJva2Utd2lkdGgiLDEuNSksei5leGl0KCkucmVtb3ZlKCksei5hdHRyKHUpLCJjbG9zZXN0Ij09PXM/Yz9bY106djpjPyh2LnB1c2goYyksdik6dn19LHsiLi4vLi4vbGliIjo3NzYsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL2JveC9ob3ZlciI6OTQ0LCIuL2hlbHBlcnMiOjEzNDl9XSwxMzUxOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIiksY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4uL2JveC9kZWZhdWx0cyIpLmNyb3NzVHJhY2VEZWZhdWx0cyxzdXBwbHlMYXlvdXREZWZhdWx0czp0KCIuL2xheW91dF9kZWZhdWx0cyIpLGNhbGM6dCgiLi9jYWxjIiksY3Jvc3NUcmFjZUNhbGM6dCgiLi9jcm9zc190cmFjZV9jYWxjIikscGxvdDp0KCIuL3Bsb3QiKSxzdHlsZTp0KCIuL3N0eWxlIiksc3R5bGVPblNlbGVjdDp0KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVPblNlbGVjdCxob3ZlclBvaW50czp0KCIuL2hvdmVyIiksc2VsZWN0UG9pbnRzOnQoIi4uL2JveC9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToidmlvbGluIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiY2FydGVzaWFuIiwic3ZnIiwic3ltYm9scyIsIm9yaWVudGVkIiwiYm94LXZpb2xpbiIsInNob3dMZWdlbmQiLCJ2aW9saW5MYXlvdXQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi4vYm94L2RlZmF1bHRzIjo5NDIsIi4uL2JveC9zZWxlY3QiOjk0OSwiLi4vc2NhdHRlci9zdHlsZSI6MTIxNSwiLi9hdHRyaWJ1dGVzIjoxMzQ1LCIuL2NhbGMiOjEzNDYsIi4vY3Jvc3NfdHJhY2VfY2FsYyI6MTM0NywiLi9kZWZhdWx0cyI6MTM0OCwiLi9ob3ZlciI6MTM1MCwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTM1MiwiLi9sYXlvdXRfZGVmYXVsdHMiOjEzNTMsIi4vcGxvdCI6MTM1NCwiLi9zdHlsZSI6MTM1NX1dLDEzNTI6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYm94L2xheW91dF9hdHRyaWJ1dGVzIiksaT10KCIuLi8uLi9saWIiKS5leHRlbmRGbGF0O2UuZXhwb3J0cz17dmlvbGlubW9kZTppKHt9LG4uYm94bW9kZSx7fSksdmlvbGluZ2FwOmkoe30sbi5ib3hnYXAse30pLHZpb2xpbmdyb3VwZ2FwOmkoe30sbi5ib3hncm91cGdhcCx7fSl9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9ib3gvbGF5b3V0X2F0dHJpYnV0ZXMiOjk0Nn1dLDEzNTM6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuL2xheW91dF9hdHRyaWJ1dGVzIiksYT10KCIuLi9ib3gvbGF5b3V0X2RlZmF1bHRzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyKXthLl9zdXBwbHkodCxlLHIsKGZ1bmN0aW9uKHIsYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxpLHIsYSl9KSwidmlvbGluIil9fSx7Ii4uLy4uL2xpYiI6Nzc2LCIuLi9ib3gvbGF5b3V0X2RlZmF1bHRzIjo5NDcsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEzNTJ9XSwxMzU0OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIkBwbG90bHkvZDMiKSxpPXQoIi4uLy4uL2xpYiIpLGE9dCgiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIiksbz10KCIuLi9ib3gvcGxvdCIpLHM9dCgiLi4vc2NhdHRlci9saW5lX3BvaW50cyIpLGw9dCgiLi9oZWxwZXJzIik7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGMpe3ZhciB1PXQuX2Z1bGxMYXlvdXQsZj1lLnhheGlzLGg9ZS55YXhpcztmdW5jdGlvbiBwKHQpe3ZhciBlPXModCx7eGF4aXM6Zix5YXhpczpoLGNvbm5lY3RHYXBzOiEwLGJhc2VUb2xlcmFuY2U6Ljc1LHNoYXBlOiJzcGxpbmUiLHNpbXBsaWZ5OiEwLGxpbmVhcml6ZWQ6ITB9KTtyZXR1cm4gYS5zbW9vdGhvcGVuKGVbMF0sMSl9aS5tYWtlVHJhY2VHcm91cHMoYyxyLCJ0cmFjZSB2aW9saW5zIikuZWFjaCgoZnVuY3Rpb24odCl7dmFyIHI9bi5zZWxlY3QodGhpcyksYT10WzBdLHM9YS50LGM9YS50cmFjZTtpZighMCE9PWMudmlzaWJsZXx8cy5lbXB0eSlyLnJlbW92ZSgpO2Vsc2V7dmFyIGQ9cy5iUG9zLG09cy5iZFBvcyxnPWVbcy52YWxMZXR0ZXIrImF4aXMiXSx2PWVbcy5wb3NMZXR0ZXIrImF4aXMiXSx5PSJib3RoIj09PWMuc2lkZSx4PXl8fCJwb3NpdGl2ZSI9PT1jLnNpZGUsYj15fHwibmVnYXRpdmUiPT09Yy5zaWRlLF89ci5zZWxlY3RBbGwoInBhdGgudmlvbGluIikuZGF0YShpLmlkZW50aXR5KTtfLmVudGVyKCkuYXBwZW5kKCJwYXRoIikuc3R5bGUoInZlY3Rvci1lZmZlY3QiLCJub24tc2NhbGluZy1zdHJva2UiKS5hdHRyKCJjbGFzcyIsInZpb2xpbiIpLF8uZXhpdCgpLnJlbW92ZSgpLF8uZWFjaCgoZnVuY3Rpb24odCl7dmFyIGUscixpLGEsbyxsLGYsaCxfPW4uc2VsZWN0KHRoaXMpLHc9dC5kZW5zaXR5LFQ9dy5sZW5ndGgsaz12LmMybCh0LnBvcytkLCEwKSxBPXYubDJwKGspO2lmKGMud2lkdGgpZT1zLm1heEtERS9tO2Vsc2V7dmFyIE09dS5fdmlvbGluU2NhbGVHcm91cFN0YXRzW2Muc2NhbGVncm91cF07ZT0iY291bnQiPT09Yy5zY2FsZW1vZGU/TS5tYXhLREUvbSooTS5tYXhDb3VudC90LnB0cy5sZW5ndGgpOk0ubWF4S0RFL219aWYoeCl7Zm9yKGY9bmV3IEFycmF5KFQpLG89MDtvPFQ7bysrKShoPWZbb109e30pW3MucG9zTGV0dGVyXT1rK3dbb10udi9lLGhbcy52YWxMZXR0ZXJdPWcuYzJsKHdbb10udCwhMCk7cj1wKGYpfWlmKGIpe2ZvcihmPW5ldyBBcnJheShUKSxsPTAsbz1ULTE7bDxUO2wrKyxvLS0pKGg9ZltsXT17fSlbcy5wb3NMZXR0ZXJdPWstd1tvXS52L2UsaFtzLnZhbExldHRlcl09Zy5jMmwod1tvXS50LCEwKTtpPXAoZil9aWYoeSlhPXIrIkwiK2kuc3Vic3RyKDEpKyJaIjtlbHNle3ZhciBTPVtBLGcuYzJwKHdbMF0udCldLEU9W0EsZy5jMnAod1tULTFdLnQpXTsiaCI9PT1jLm9yaWVudGF0aW9uJiYoUy5yZXZlcnNlKCksRS5yZXZlcnNlKCkpLGE9eD8iTSIrUysiTCIrci5zdWJzdHIoMSkrIkwiK0U6Ik0iK0UrIkwiK2kuc3Vic3RyKDEpKyJMIitTfV8uYXR0cigiZCIsYSksdC5wb3NDZW50ZXJQeD1BLHQucG9zRGVuc2l0eVNjYWxlPWUqbSx0LnBhdGg9Xy5ub2RlKCksdC5wYXRoTGVuZ3RoPXQucGF0aC5nZXRUb3RhbExlbmd0aCgpLyh5PzI6MSl9KSk7dmFyIHcsVCxrLEE9Yy5ib3gsTT1BLndpZHRoLFM9KEEubGluZXx8e30pLndpZHRoO3k/KHc9bSpNLFQ9MCk6eD8odz1bMCxtKk0vMl0sVD1TKnt4OjEseTotMX1bcy5wb3NMZXR0ZXJdKToodz1bbSpNLzIsMF0sVD1TKnt4Oi0xLHk6MX1bcy5wb3NMZXR0ZXJdKSxvLnBsb3RCb3hBbmRXaGlza2VycyhyLHtwb3M6dix2YWw6Z30sYyx7YlBvczpkLGJkUG9zOncsYlBvc1B4T2Zmc2V0OlR9KSxvLnBsb3RCb3hNZWFuKHIse3Bvczp2LHZhbDpnfSxjLHtiUG9zOmQsYmRQb3M6dyxiUG9zUHhPZmZzZXQ6VH0pLCFjLmJveC52aXNpYmxlJiZjLm1lYW5saW5lLnZpc2libGUmJihrPWkuaWRlbnRpdHkpO3ZhciBFPXIuc2VsZWN0QWxsKCJwYXRoLm1lYW5saW5lIikuZGF0YShrfHxbXSk7RS5lbnRlcigpLmFwcGVuZCgicGF0aCIpLmF0dHIoImNsYXNzIiwibWVhbmxpbmUiKS5zdHlsZSgiZmlsbCIsIm5vbmUiKS5zdHlsZSgidmVjdG9yLWVmZmVjdCIsIm5vbi1zY2FsaW5nLXN0cm9rZSIpLEUuZXhpdCgpLnJlbW92ZSgpLEUuZWFjaCgoZnVuY3Rpb24odCl7dmFyIGU9Zy5jMnAodC5tZWFuLCEwKSxyPWwuZ2V0UG9zaXRpb25PbktkZVBhdGgodCxjLGUpO24uc2VsZWN0KHRoaXMpLmF0dHIoImQiLCJoIj09PWMub3JpZW50YXRpb24/Ik0iK2UrIiwiK3JbMF0rIlYiK3JbMV06Ik0iK3JbMF0rIiwiK2UrIkgiK3JbMV0pfSkpLG8ucGxvdFBvaW50cyhyLHt4OmYseTpofSxjLHMpfX0pKX19LHsiLi4vLi4vY29tcG9uZW50cy9kcmF3aW5nIjo2NjEsIi4uLy4uL2xpYiI6Nzc2LCIuLi9ib3gvcGxvdCI6OTQ4LCIuLi9zY2F0dGVyL2xpbmVfcG9pbnRzIjoxMjA1LCIuL2hlbHBlcnMiOjEzNDksIkBwbG90bHkvZDMiOjU4fV0sMTM1NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIiksYT10KCIuLi9zY2F0dGVyL3N0eWxlIikuc3R5bGVQb2ludHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQpe3ZhciBlPW4uc2VsZWN0KHQpLnNlbGVjdEFsbCgiZy50cmFjZS52aW9saW5zIik7ZS5zdHlsZSgib3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLm9wYWNpdHl9KSksZS5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1lWzBdLnRyYWNlLG89bi5zZWxlY3QodGhpcykscz1yLmJveHx8e30sbD1zLmxpbmV8fHt9LGM9ci5tZWFubGluZXx8e30sdT1jLndpZHRoO28uc2VsZWN0QWxsKCJwYXRoLnZpb2xpbiIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLHIubGluZS53aWR0aCsicHgiKS5jYWxsKGkuc3Ryb2tlLHIubGluZS5jb2xvcikuY2FsbChpLmZpbGwsci5maWxsY29sb3IpLG8uc2VsZWN0QWxsKCJwYXRoLmJveCIpLnN0eWxlKCJzdHJva2Utd2lkdGgiLGwud2lkdGgrInB4IikuY2FsbChpLnN0cm9rZSxsLmNvbG9yKS5jYWxsKGkuZmlsbCxzLmZpbGxjb2xvcik7dmFyIGY9eyJzdHJva2Utd2lkdGgiOnUrInB4Iiwic3Ryb2tlLWRhc2hhcnJheSI6Mip1KyJweCwiK3UrInB4In07by5zZWxlY3RBbGwoInBhdGgubWVhbiIpLnN0eWxlKGYpLmNhbGwoaS5zdHJva2UsYy5jb2xvciksby5zZWxlY3RBbGwoInBhdGgubWVhbmxpbmUiKS5zdHlsZShmKS5jYWxsKGkuc3Ryb2tlLGMuY29sb3IpLGEobyxyLHQpfSkpfX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uL3NjYXR0ZXIvc3R5bGUiOjEyMTUsIkBwbG90bHkvZDMiOjU4fV0sMTM1NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUvYXR0cmlidXRlcyIpLGk9dCgiLi4vaXNvc3VyZmFjZS9hdHRyaWJ1dGVzIiksYT10KCIuLi9zdXJmYWNlL2F0dHJpYnV0ZXMiKSxvPXQoIi4uLy4uL3Bsb3RzL2F0dHJpYnV0ZXMiKSxzPXQoIi4uLy4uL2xpYi9leHRlbmQiKS5leHRlbmRGbGF0LGw9dCgiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyIpLm92ZXJyaWRlQWxsLGM9ZS5leHBvcnRzPWwocyh7eDppLngseTppLnksejppLnosdmFsdWU6aS52YWx1ZSxpc29taW46aS5pc29taW4saXNvbWF4OmkuaXNvbWF4LHN1cmZhY2U6aS5zdXJmYWNlLHNwYWNlZnJhbWU6e3Nob3c6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITF9LGZpbGw6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDoxfX0sc2xpY2VzOmkuc2xpY2VzLGNhcHM6aS5jYXBzLHRleHQ6aS50ZXh0LGhvdmVydGV4dDppLmhvdmVydGV4dCx4aG92ZXJmb3JtYXQ6aS54aG92ZXJmb3JtYXQseWhvdmVyZm9ybWF0OmkueWhvdmVyZm9ybWF0LHpob3ZlcmZvcm1hdDppLnpob3ZlcmZvcm1hdCx2YWx1ZWhvdmVyZm9ybWF0OmkudmFsdWVob3ZlcmZvcm1hdCxob3ZlcnRlbXBsYXRlOmkuaG92ZXJ0ZW1wbGF0ZX0sbigiIix7Y29sb3JBdHRyOiJgdmFsdWVgIixzaG93U2NhbGVEZmx0OiEwLGVkaXRUeXBlT3ZlcnJpZGU6ImNhbGMifSkse2NvbG9yYmFyOmkuY29sb3JiYXIsb3BhY2l0eTppLm9wYWNpdHksb3BhY2l0eXNjYWxlOmEub3BhY2l0eXNjYWxlLGxpZ2h0cG9zaXRpb246aS5saWdodHBvc2l0aW9uLGxpZ2h0aW5nOmkubGlnaHRpbmcsZmxhdHNoYWRpbmc6aS5mbGF0c2hhZGluZyxjb250b3VyOmkuY29udG91cixob3ZlcmluZm86cyh7fSxvLmhvdmVyaW5mbyksc2hvd2xlZ2VuZDpzKHt9LG8uc2hvd2xlZ2VuZCx7ZGZsdDohMX0pfSksImNhbGMiLCJuZXN0ZWQiKTtjLnguZWRpdFR5cGU9Yy55LmVkaXRUeXBlPWMuei5lZGl0VHlwZT1jLnZhbHVlLmVkaXRUeXBlPSJjYWxjK2NsZWFyQXhpc1R5cGVzIixjLnRyYW5zZm9ybXM9dm9pZCAwfSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZS9hdHRyaWJ1dGVzIjo2NDYsIi4uLy4uL2xpYi9leHRlbmQiOjc2NiwiLi4vLi4vcGxvdF9hcGkvZWRpdF90eXBlcyI6ODA5LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uL2lzb3N1cmZhY2UvYXR0cmlidXRlcyI6MTEyNywiLi4vc3VyZmFjZS9hdHRyaWJ1dGVzIjoxMzE1fV0sMTM1NzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJnbC1tZXNoM2QiKSxpPXQoIi4uLy4uL2xpYi9nbF9mb3JtYXRfY29sb3IiKS5wYXJzZUNvbG9yU2NhbGUsYT10KCIuLi8uLi9saWIvc3RyMnJnYmFycmF5Iiksbz10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yc2NhbGUiKS5leHRyYWN0T3B0cyxzPXQoIi4uLy4uL3Bsb3RzL2dsM2QvemlwMyIpLGw9dCgiLi4vaXNvc3VyZmFjZS9jb252ZXJ0IikuZmluZE5lYXJlc3RPbkF4aXMsYz10KCIuLi9pc29zdXJmYWNlL2NvbnZlcnQiKS5nZW5lcmF0ZUlzb01lc2hlcztmdW5jdGlvbiB1KHQsZSxyKXt0aGlzLnNjZW5lPXQsdGhpcy51aWQ9cix0aGlzLm1lc2g9ZSx0aGlzLm5hbWU9IiIsdGhpcy5kYXRhPW51bGwsdGhpcy5zaG93Q29udG91cj0hMX12YXIgZj11LnByb3RvdHlwZTtmLmhhbmRsZVBpY2s9ZnVuY3Rpb24odCl7aWYodC5vYmplY3Q9PT10aGlzLm1lc2gpe3ZhciBlPXQuZGF0YS5pbmRleCxyPXRoaXMuZGF0YS5fbWVzaFhbZV0sbj10aGlzLmRhdGEuX21lc2hZW2VdLGk9dGhpcy5kYXRhLl9tZXNoWltlXSxhPXRoaXMuZGF0YS5fWXMubGVuZ3RoLG89dGhpcy5kYXRhLl9acy5sZW5ndGgscz1sKHIsdGhpcy5kYXRhLl9YcykuaWQsYz1sKG4sdGhpcy5kYXRhLl9ZcykuaWQsdT1sKGksdGhpcy5kYXRhLl9acykuaWQsZj10LmluZGV4PXUrbypjK28qYSpzO3QudHJhY2VDb29yZGluYXRlPVt0aGlzLmRhdGEuX21lc2hYW2ZdLHRoaXMuZGF0YS5fbWVzaFlbZl0sdGhpcy5kYXRhLl9tZXNoWltmXSx0aGlzLmRhdGEuX3ZhbHVlW2ZdXTt2YXIgaD10aGlzLmRhdGEuaG92ZXJ0ZXh0fHx0aGlzLmRhdGEudGV4dDtyZXR1cm4gQXJyYXkuaXNBcnJheShoKSYmdm9pZCAwIT09aFtmXT90LnRleHRMYWJlbD1oW2ZdOmgmJih0LnRleHRMYWJlbD1oKSwhMH19LGYudXBkYXRlPWZ1bmN0aW9uKHQpe3ZhciBlPXRoaXMuc2NlbmUscj1lLmZ1bGxTY2VuZUxheW91dDtmdW5jdGlvbiBuKHQsZSxyLG4pe3JldHVybiBlLm1hcCgoZnVuY3Rpb24oZSl7cmV0dXJuIHQuZDJsKGUsMCxuKSpyfSkpfXRoaXMuZGF0YT1jKHQpO3ZhciBsPXtwb3NpdGlvbnM6cyhuKHIueGF4aXMsdC5fbWVzaFgsZS5kYXRhU2NhbGVbMF0sdC54Y2FsZW5kYXIpLG4oci55YXhpcyx0Ll9tZXNoWSxlLmRhdGFTY2FsZVsxXSx0LnljYWxlbmRhciksbihyLnpheGlzLHQuX21lc2haLGUuZGF0YVNjYWxlWzJdLHQuemNhbGVuZGFyKSksY2VsbHM6cyh0Ll9tZXNoSSx0Ll9tZXNoSix0Ll9tZXNoSyksbGlnaHRQb3NpdGlvbjpbdC5saWdodHBvc2l0aW9uLngsdC5saWdodHBvc2l0aW9uLnksdC5saWdodHBvc2l0aW9uLnpdLGFtYmllbnQ6dC5saWdodGluZy5hbWJpZW50LGRpZmZ1c2U6dC5saWdodGluZy5kaWZmdXNlLHNwZWN1bGFyOnQubGlnaHRpbmcuc3BlY3VsYXIscm91Z2huZXNzOnQubGlnaHRpbmcucm91Z2huZXNzLGZyZXNuZWw6dC5saWdodGluZy5mcmVzbmVsLHZlcnRleE5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcudmVydGV4bm9ybWFsc2Vwc2lsb24sZmFjZU5vcm1hbHNFcHNpbG9uOnQubGlnaHRpbmcuZmFjZW5vcm1hbHNlcHNpbG9uLG9wYWNpdHk6dC5vcGFjaXR5LG9wYWNpdHlzY2FsZTp0Lm9wYWNpdHlzY2FsZSxjb250b3VyRW5hYmxlOnQuY29udG91ci5zaG93LGNvbnRvdXJDb2xvcjphKHQuY29udG91ci5jb2xvcikuc2xpY2UoMCwzKSxjb250b3VyV2lkdGg6dC5jb250b3VyLndpZHRoLHVzZUZhY2V0Tm9ybWFsczp0LmZsYXRzaGFkaW5nfSx1PW8odCk7bC52ZXJ0ZXhJbnRlbnNpdHk9dC5fbWVzaEludGVuc2l0eSxsLnZlcnRleEludGVuc2l0eUJvdW5kcz1bdS5taW4sdS5tYXhdLGwuY29sb3JtYXA9aSh0KSx0aGlzLm1lc2gudXBkYXRlKGwpfSxmLmRpc3Bvc2U9ZnVuY3Rpb24oKXt0aGlzLnNjZW5lLmdscGxvdC5yZW1vdmUodGhpcy5tZXNoKSx0aGlzLm1lc2guZGlzcG9zZSgpfSxlLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmdscGxvdC5nbCxpPW4oe2dsOnJ9KSxhPW5ldyB1KHQsaSxlLnVpZCk7cmV0dXJuIGkuX3RyYWNlPWEsYS51cGRhdGUoZSksdC5nbHBsb3QuYWRkKGkpLGF9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3JzY2FsZSI6NjUxLCIuLi8uLi9saWIvZ2xfZm9ybWF0X2NvbG9yIjo3NzIsIi4uLy4uL2xpYi9zdHIycmdiYXJyYXkiOjgwMSwiLi4vLi4vcGxvdHMvZ2wzZC96aXAzIjo4ODAsIi4uL2lzb3N1cmZhY2UvY29udmVydCI6MTEyOSwiZ2wtbWVzaDNkIjozMDN9XSwxMzU4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO3ZhciBuPXQoIi4uLy4uL2xpYiIpLGk9dCgiLi9hdHRyaWJ1dGVzIiksYT10KCIuLi9pc29zdXJmYWNlL2RlZmF1bHRzIikuc3VwcGx5SXNvRGVmYXVsdHMsbz10KCIuLi9zdXJmYWNlL2RlZmF1bHRzIikub3BhY2l0eXNjYWxlRGVmYXVsdHM7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLHMpe2Z1bmN0aW9uIGwocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1hKHQsZSxyLHMsbCksbyh0LGUscyxsKX19LHsiLi4vLi4vbGliIjo3NzYsIi4uL2lzb3N1cmZhY2UvZGVmYXVsdHMiOjExMzAsIi4uL3N1cmZhY2UvZGVmYXVsdHMiOjEzMTgsIi4vYXR0cmlidXRlcyI6MTM1Nn1dLDEzNTk6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPXthdHRyaWJ1dGVzOnQoIi4vYXR0cmlidXRlcyIpLHN1cHBseURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKSxjYWxjOnQoIi4uL2lzb3N1cmZhY2UvY2FsYyIpLGNvbG9yYmFyOnttaW46ImNtaW4iLG1heDoiY21heCJ9LHBsb3Q6dCgiLi9jb252ZXJ0IiksbW9kdWxlVHlwZToidHJhY2UiLG5hbWU6InZvbHVtZSIsYmFzZVBsb3RNb2R1bGU6dCgiLi4vLi4vcGxvdHMvZ2wzZCIpLGNhdGVnb3JpZXM6WyJnbDNkIiwic2hvd0xlZ2VuZCJdLG1ldGE6e319fSx7Ii4uLy4uL3Bsb3RzL2dsM2QiOjg2OSwiLi4vaXNvc3VyZmFjZS9jYWxjIjoxMTI4LCIuL2F0dHJpYnV0ZXMiOjEzNTYsIi4vY29udmVydCI6MTM1NywiLi9kZWZhdWx0cyI6MTM1OH1dLDEzNjA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vYmFyL2F0dHJpYnV0ZXMiKSxpPXQoIi4uL3NjYXR0ZXIvYXR0cmlidXRlcyIpLmxpbmUsYT10KCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIiksbz10KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYXhpc19mb3JtYXRfYXR0cmlidXRlcyIpLmF4aXNIb3ZlckZvcm1hdCxzPXQoIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiKS5ob3ZlcnRlbXBsYXRlQXR0cnMsbD10KCIuLi8uLi9wbG90cy90ZW1wbGF0ZV9hdHRyaWJ1dGVzIikudGV4dHRlbXBsYXRlQXR0cnMsYz10KCIuL2NvbnN0YW50cyIpLHU9dCgiLi4vLi4vbGliL2V4dGVuZCIpLmV4dGVuZEZsYXQsZj10KCIuLi8uLi9jb21wb25lbnRzL2NvbG9yIik7ZnVuY3Rpb24gaCh0KXtyZXR1cm57bWFya2VyOntjb2xvcjp1KHt9LG4ubWFya2VyLmNvbG9yLHthcnJheU9rOiExLGVkaXRUeXBlOiJzdHlsZSJ9KSxsaW5lOntjb2xvcjp1KHt9LG4ubWFya2VyLmxpbmUuY29sb3Ise2FycmF5T2s6ITEsZWRpdFR5cGU6InN0eWxlIn0pLHdpZHRoOnUoe30sbi5tYXJrZXIubGluZS53aWR0aCx7YXJyYXlPazohMSxlZGl0VHlwZToic3R5bGUifSksZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn0sZWRpdFR5cGU6InN0eWxlIn19ZS5leHBvcnRzPXttZWFzdXJlOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdLGVkaXRUeXBlOiJjYWxjIn0sYmFzZTp7dmFsVHlwZToibnVtYmVyIixkZmx0Om51bGwsYXJyYXlPazohMSxlZGl0VHlwZToiY2FsYyJ9LHg6bi54LHgwOm4ueDAsZHg6bi5keCx5Om4ueSx5MDpuLnkwLGR5Om4uZHkseHBlcmlvZDpuLnhwZXJpb2QseXBlcmlvZDpuLnlwZXJpb2QseHBlcmlvZDA6bi54cGVyaW9kMCx5cGVyaW9kMDpuLnlwZXJpb2QwLHhwZXJpb2RhbGlnbm1lbnQ6bi54cGVyaW9kYWxpZ25tZW50LHlwZXJpb2RhbGlnbm1lbnQ6bi55cGVyaW9kYWxpZ25tZW50LHhob3ZlcmZvcm1hdDpvKCJ4IikseWhvdmVyZm9ybWF0Om8oInkiKSxob3ZlcnRleHQ6bi5ob3ZlcnRleHQsaG92ZXJ0ZW1wbGF0ZTpzKHt9LHtrZXlzOmMuZXZlbnREYXRhS2V5c30pLGhvdmVyaW5mbzp1KHt9LGEuaG92ZXJpbmZvLHtmbGFnczpbIm5hbWUiLCJ4IiwieSIsInRleHQiLCJpbml0aWFsIiwiZGVsdGEiLCJmaW5hbCJdfSksdGV4dGluZm86e3ZhbFR5cGU6ImZsYWdsaXN0IixmbGFnczpbImxhYmVsIiwidGV4dCIsImluaXRpYWwiLCJkZWx0YSIsImZpbmFsIl0sZXh0cmFzOlsibm9uZSJdLGVkaXRUeXBlOiJwbG90IixhcnJheU9rOiExfSx0ZXh0dGVtcGxhdGU6bCh7ZWRpdFR5cGU6InBsb3QifSx7a2V5czpjLmV2ZW50RGF0YUtleXMuY29uY2F0KFsibGFiZWwiXSl9KSx0ZXh0Om4udGV4dCx0ZXh0cG9zaXRpb246bi50ZXh0cG9zaXRpb24saW5zaWRldGV4dGFuY2hvcjpuLmluc2lkZXRleHRhbmNob3IsdGV4dGFuZ2xlOm4udGV4dGFuZ2xlLHRleHRmb250Om4udGV4dGZvbnQsaW5zaWRldGV4dGZvbnQ6bi5pbnNpZGV0ZXh0Zm9udCxvdXRzaWRldGV4dGZvbnQ6bi5vdXRzaWRldGV4dGZvbnQsY29uc3RyYWludGV4dDpuLmNvbnN0cmFpbnRleHQsY2xpcG9uYXhpczpuLmNsaXBvbmF4aXMsb3JpZW50YXRpb246bi5vcmllbnRhdGlvbixvZmZzZXQ6bi5vZmZzZXQsd2lkdGg6bi53aWR0aCxpbmNyZWFzaW5nOmgoKSxkZWNyZWFzaW5nOmgoKSx0b3RhbHM6aCgpLGNvbm5lY3Rvcjp7bGluZTp7Y29sb3I6dSh7fSxpLmNvbG9yLHtkZmx0OmYuZGVmYXVsdExpbmV9KSx3aWR0aDp1KHt9LGkud2lkdGgse2VkaXRUeXBlOiJwbG90In0pLGRhc2g6aS5kYXNoLGVkaXRUeXBlOiJwbG90In0sbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsic3Bhbm5pbmciLCJiZXR3ZWVuIl0sZGZsdDoiYmV0d2VlbiIsZWRpdFR5cGU6InBsb3QifSx2aXNpYmxlOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJwbG90In0sZWRpdFR5cGU6InBsb3QifSxvZmZzZXRncm91cDpuLm9mZnNldGdyb3VwLGFsaWdubWVudGdyb3VwOm4uYWxpZ25tZW50Z3JvdXB9fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vbGliL2V4dGVuZCI6NzY2LCIuLi8uLi9wbG90cy9hdHRyaWJ1dGVzIjo4MjMsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGlzX2Zvcm1hdF9hdHRyaWJ1dGVzIjo4MzAsIi4uLy4uL3Bsb3RzL3RlbXBsYXRlX2F0dHJpYnV0ZXMiOjg5OSwiLi4vYmFyL2F0dHJpYnV0ZXMiOjkxNCwiLi4vc2NhdHRlci9hdHRyaWJ1dGVzIjoxMTkxLCIuL2NvbnN0YW50cyI6MTM2Mn1dLDEzNjE6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKSxpPXQoIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9hbGlnbl9wZXJpb2QiKSxhPXQoIi4uLy4uL2xpYiIpLm1lcmdlQXJyYXksbz10KCIuLi9zY2F0dGVyL2NhbGNfc2VsZWN0aW9uIikscz10KCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIikuQkFETlVNO2Z1bmN0aW9uIGwodCl7cmV0dXJuImEiPT09dHx8ImFic29sdXRlIj09PXR9ZnVuY3Rpb24gYyh0KXtyZXR1cm4idCI9PT10fHwidG90YWwiPT09dH1lLmV4cG9ydHM9ZnVuY3Rpb24odCxlKXt2YXIgcix1LGYsaCxwLGQsbT1uLmdldEZyb21JZCh0LGUueGF4aXN8fCJ4IiksZz1uLmdldEZyb21JZCh0LGUueWF4aXN8fCJ5Iik7ImgiPT09ZS5vcmllbnRhdGlvbj8ocj1tLm1ha2VDYWxjZGF0YShlLCJ4IiksZj1nLm1ha2VDYWxjZGF0YShlLCJ5IiksaD1pKGUsZywieSIsZikscD0hIWUueXBlcmlvZGFsaWdubWVudCxkPSJ5Iik6KHI9Zy5tYWtlQ2FsY2RhdGEoZSwieSIpLGY9bS5tYWtlQ2FsY2RhdGEoZSwieCIpLGg9aShlLG0sIngiLGYpLHA9ISFlLnhwZXJpb2RhbGlnbm1lbnQsZD0ieCIpLHU9aC52YWxzO2Zvcih2YXIgdix5PU1hdGgubWluKHUubGVuZ3RoLHIubGVuZ3RoKSx4PW5ldyBBcnJheSh5KSxiPTAsXz0hMSx3PTA7dzx5O3crKyl7dmFyIFQ9clt3XXx8MCxrPSExOyhyW3ddIT09c3x8YyhlLm1lYXN1cmVbd10pfHxsKGUubWVhc3VyZVt3XSkpJiZ3KzE8eSYmKHJbdysxXSE9PXN8fGMoZS5tZWFzdXJlW3crMV0pfHxsKGUubWVhc3VyZVt3KzFdKSkmJihrPSEwKTt2YXIgQT14W3ddPXtpOncscDp1W3ddLHM6VCxyYXdTOlQsY05leHQ6a307bChlLm1lYXN1cmVbd10pPyhiPUEucyxBLmlzU3VtPSEwLEEuZGlyPSJ0b3RhbHMiLEEucz1iKTpjKGUubWVhc3VyZVt3XSk/KEEuaXNTdW09ITAsQS5kaXI9InRvdGFscyIsQS5zPWIpOihBLmlzU3VtPSExLEEuZGlyPUEucmF3UzwwPyJkZWNyZWFzaW5nIjoiaW5jcmVhc2luZyIsdj1BLnMsQS5zPWIrdixiKz12KSwidG90YWxzIj09PUEuZGlyJiYoXz0hMCkscCYmKHhbd10ub3JpZ19wPWZbd10seFt3XVtkKyJFbmQiXT1oLmVuZHNbd10seFt3XVtkKyJTdGFydCJdPWguc3RhcnRzW3ddKSxlLmlkcyYmKEEuaWQ9U3RyaW5nKGUuaWRzW3ddKSksQS52PShlLmJhc2V8fDApK2J9cmV0dXJuIHgubGVuZ3RoJiYoeFswXS5oYXNUb3RhbHM9XyksYShlLnRleHQseCwidHgiKSxhKGUuaG92ZXJ0ZXh0LHgsImh0eCIpLG8oeCxlKSx4fX0seyIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4vYWxpZ25fcGVyaW9kIjo4MjQsIi4uLy4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4uL3NjYXR0ZXIvY2FsY19zZWxlY3Rpb24iOjExOTN9XSwxMzYyOltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17ZXZlbnREYXRhS2V5czpbImluaXRpYWwiLCJkZWx0YSIsImZpbmFsIl19fSx7fV0sMTM2MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9iYXIvY3Jvc3NfdHJhY2VfY2FsYyIpLnNldEdyb3VwUG9zaXRpb25zO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUpe3ZhciByLGksYT10Ll9mdWxsTGF5b3V0LG89dC5fZnVsbERhdGEscz10LmNhbGNkYXRhLGw9ZS54YXhpcyxjPWUueWF4aXMsdT1bXSxmPVtdLGg9W107Zm9yKGk9MDtpPG8ubGVuZ3RoO2krKyl7dmFyIHA9b1tpXTshMD09PXAudmlzaWJsZSYmcC54YXhpcz09PWwuX2lkJiZwLnlheGlzPT09Yy5faWQmJiJ3YXRlcmZhbGwiPT09cC50eXBlJiYocj1zW2ldLCJoIj09PXAub3JpZW50YXRpb24/aC5wdXNoKHIpOmYucHVzaChyKSx1LnB1c2gocikpfXZhciBkPXttb2RlOmEud2F0ZXJmYWxsbW9kZSxub3JtOmEud2F0ZXJmYWxsbm9ybSxnYXA6YS53YXRlcmZhbGxnYXAsZ3JvdXBnYXA6YS53YXRlcmZhbGxncm91cGdhcH07Zm9yKG4odCxsLGMsZixkKSxuKHQsYyxsLGgsZCksaT0wO2k8dS5sZW5ndGg7aSsrKXtyPXVbaV07Zm9yKHZhciBtPTA7bTxyLmxlbmd0aDttKyspe3ZhciBnPXJbbV07ITE9PT1nLmlzU3VtJiYoZy5zMCs9MD09PW0/MDpyW20tMV0ucyksbSsxPHIubGVuZ3RoJiYoclttXS5uZXh0UDA9clttKzFdLnAwLHJbbV0ubmV4dFMwPXJbbSsxXS5zMCl9fX19LHsiLi4vYmFyL2Nyb3NzX3RyYWNlX2NhbGMiOjkxN31dLDEzNjQ6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vbGliIiksaT10KCIuLi9iYXIvZGVmYXVsdHMiKS5oYW5kbGVHcm91cGluZ0RlZmF1bHRzLGE9dCgiLi4vYmFyL2RlZmF1bHRzIikuaGFuZGxlVGV4dCxvPXQoIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiKSxzPXQoIi4uL3NjYXR0ZXIvcGVyaW9kX2RlZmF1bHRzIiksbD10KCIuL2F0dHJpYnV0ZXMiKSxjPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSx1PXQoIi4uLy4uL2NvbnN0YW50cy9kZWx0YS5qcyIpLGY9dS5JTkNSRUFTSU5HLkNPTE9SLGg9dS5ERUNSRUFTSU5HLkNPTE9SO2Z1bmN0aW9uIHAodCxlLHIpe3QoZSsiLm1hcmtlci5jb2xvciIsciksdChlKyIubWFya2VyLmxpbmUuY29sb3IiLGMuZGVmYXVsdExpbmUpLHQoZSsiLm1hcmtlci5saW5lLndpZHRoIil9ZS5leHBvcnRzPXtzdXBwbHlEZWZhdWx0czpmdW5jdGlvbih0LGUscixpKXtmdW5jdGlvbiBjKHIsaSl7cmV0dXJuIG4uY29lcmNlKHQsZSxsLHIsaSl9aWYobyh0LGUsaSxjKSl7cyh0LGUsaSxjKSxjKCJ4aG92ZXJmb3JtYXQiKSxjKCJ5aG92ZXJmb3JtYXQiKSxjKCJtZWFzdXJlIiksYygib3JpZW50YXRpb24iLGUueCYmIWUueT8iaCI6InYiKSxjKCJiYXNlIiksYygib2Zmc2V0IiksYygid2lkdGgiKSxjKCJ0ZXh0IiksYygiaG92ZXJ0ZXh0IiksYygiaG92ZXJ0ZW1wbGF0ZSIpO3ZhciB1PWMoInRleHRwb3NpdGlvbiIpO2lmKGEodCxlLGksYyx1LHttb2R1bGVIYXNTZWxlY3RlZDohMSxtb2R1bGVIYXNVbnNlbGVjdGVkOiExLG1vZHVsZUhhc0NvbnN0cmFpbjohMCxtb2R1bGVIYXNDbGlwb25heGlzOiEwLG1vZHVsZUhhc1RleHRhbmdsZTohMCxtb2R1bGVIYXNJbnNpZGVhbmNob3I6ITB9KSwibm9uZSIhPT1lLnRleHRwb3NpdGlvbiYmKGMoInRleHR0ZW1wbGF0ZSIpLGUudGV4dHRlbXBsYXRlfHxjKCJ0ZXh0aW5mbyIpKSxwKGMsImluY3JlYXNpbmciLGYpLHAoYywiZGVjcmVhc2luZyIsaCkscChjLCJ0b3RhbHMiLCIjNDQ5OUZGIiksYygiY29ubmVjdG9yLnZpc2libGUiKSljKCJjb25uZWN0b3IubW9kZSIpLGMoImNvbm5lY3Rvci5saW5lLndpZHRoIikmJihjKCJjb25uZWN0b3IubGluZS5jb2xvciIpLGMoImNvbm5lY3Rvci5saW5lLmRhc2giKSl9ZWxzZSBlLnZpc2libGU9ITF9LGNyb3NzVHJhY2VEZWZhdWx0czpmdW5jdGlvbih0LGUpe3ZhciByLGE7ZnVuY3Rpb24gbyh0KXtyZXR1cm4gbi5jb2VyY2UoYS5faW5wdXQsYSxsLHQpfWlmKCJncm91cCI9PT1lLndhdGVyZmFsbG1vZGUpZm9yKHZhciBzPTA7czx0Lmxlbmd0aDtzKyspcj0oYT10W3NdKS5faW5wdXQsaShyLGEsZSxvKX19fSx7Ii4uLy4uL2NvbXBvbmVudHMvY29sb3IiOjYzOSwiLi4vLi4vY29uc3RhbnRzL2RlbHRhLmpzIjo3NDYsIi4uLy4uL2xpYiI6Nzc2LCIuLi9iYXIvZGVmYXVsdHMiOjkxOCwiLi4vc2NhdHRlci9wZXJpb2RfZGVmYXVsdHMiOjEyMTEsIi4uL3NjYXR0ZXIveHlfZGVmYXVsdHMiOjEyMTgsIi4vYXR0cmlidXRlcyI6MTM2MH1dLDEzNjU6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQueD0ieFZhbCJpbiBlP2UueFZhbDplLngsdC55PSJ5VmFsImluIGU/ZS55VmFsOmUueSwiaW5pdGlhbCJpbiBlJiYodC5pbml0aWFsPWUuaW5pdGlhbCksImRlbHRhImluIGUmJih0LmRlbHRhPWUuZGVsdGEpLCJmaW5hbCJpbiBlJiYodC5maW5hbD1lLmZpbmFsKSxlLnhhJiYodC54YXhpcz1lLnhhKSxlLnlhJiYodC55YXhpcz1lLnlhKSx0fX0se31dLDEzNjY6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiKS5ob3ZlckxhYmVsVGV4dCxpPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKS5vcGFjaXR5LGE9dCgiLi4vYmFyL2hvdmVyIikuaG92ZXJPbkJhcnMsbz10KCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiKSxzPW8uSU5DUkVBU0lORy5TWU1CT0wsbD1vLkRFQ1JFQVNJTkcuU1lNQk9MO2UuZXhwb3J0cz1mdW5jdGlvbih0LGUscixvLGMpe3ZhciB1PWEodCxlLHIsbyxjKTtpZih1KXt2YXIgZj11LmNkLGg9ZlswXS50cmFjZSxwPSJoIj09PWgub3JpZW50YXRpb24sZD1wPyJ4IjoieSIsbT1wP3QueGE6dC55YSxnPWZbdS5pbmRleF0sdj1nLmlzU3VtP2cuYitnLnM6Zy5yYXdTO2lmKCFnLmlzU3VtKXt1LmluaXRpYWw9Zy5iK2cucy12LHUuZGVsdGE9dix1LmZpbmFsPXUuaW5pdGlhbCt1LmRlbHRhO3ZhciB5PWsoTWF0aC5hYnModS5kZWx0YSkpO3UuZGVsdGFMYWJlbD12PDA/IigiK3krIikiOnksdS5maW5hbExhYmVsPWsodS5maW5hbCksdS5pbml0aWFsTGFiZWw9ayh1LmluaXRpYWwpfXZhciB4PWcuaGl8fGguaG92ZXJpbmZvLGI9W107aWYoeCYmIm5vbmUiIT09eCYmInNraXAiIT09eCl7dmFyIF89ImFsbCI9PT14LHc9eC5zcGxpdCgiKyIpLFQ9ZnVuY3Rpb24odCl7cmV0dXJuIF98fC0xIT09dy5pbmRleE9mKHQpfTtnLmlzU3VtfHwoIVQoImZpbmFsIil8fFQocD8ieCI6InkiKXx8Yi5wdXNoKHUuZmluYWxMYWJlbCksVCgiZGVsdGEiKSYmKHY8MD9iLnB1c2godS5kZWx0YUxhYmVsKyIgIitsKTpiLnB1c2godS5kZWx0YUxhYmVsKyIgIitzKSksVCgiaW5pdGlhbCIpJiZiLnB1c2goIkluaXRpYWw6ICIrdS5pbml0aWFsTGFiZWwpKX1yZXR1cm4gYi5sZW5ndGgmJih1LmV4dHJhVGV4dD1iLmpvaW4oIjxicj4iKSksdS5jb2xvcj1mdW5jdGlvbih0LGUpe3ZhciByPXRbZS5kaXJdLm1hcmtlcixuPXIuY29sb3IsYT1yLmxpbmUuY29sb3Isbz1yLmxpbmUud2lkdGg7aWYoaShuKSlyZXR1cm4gbjtpZihpKGEpJiZvKXJldHVybiBhfShoLGcpLFt1XX1mdW5jdGlvbiBrKHQpe3JldHVybiBuKG0sdCxoW2QrImhvdmVyZm9ybWF0Il0pfX19LHsiLi4vLi4vY29tcG9uZW50cy9jb2xvciI6NjM5LCIuLi8uLi9jb25zdGFudHMvZGVsdGEuanMiOjc0NiwiLi4vLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vYmFyL2hvdmVyIjo5MjF9XSwxMzY3OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17YXR0cmlidXRlczp0KCIuL2F0dHJpYnV0ZXMiKSxsYXlvdXRBdHRyaWJ1dGVzOnQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKSxzdXBwbHlEZWZhdWx0czp0KCIuL2RlZmF1bHRzIikuc3VwcGx5RGVmYXVsdHMsY3Jvc3NUcmFjZURlZmF1bHRzOnQoIi4vZGVmYXVsdHMiKS5jcm9zc1RyYWNlRGVmYXVsdHMsc3VwcGx5TGF5b3V0RGVmYXVsdHM6dCgiLi9sYXlvdXRfZGVmYXVsdHMiKSxjYWxjOnQoIi4vY2FsYyIpLGNyb3NzVHJhY2VDYWxjOnQoIi4vY3Jvc3NfdHJhY2VfY2FsYyIpLHBsb3Q6dCgiLi9wbG90Iiksc3R5bGU6dCgiLi9zdHlsZSIpLnN0eWxlLGhvdmVyUG9pbnRzOnQoIi4vaG92ZXIiKSxldmVudERhdGE6dCgiLi9ldmVudF9kYXRhIiksc2VsZWN0UG9pbnRzOnQoIi4uL2Jhci9zZWxlY3QiKSxtb2R1bGVUeXBlOiJ0cmFjZSIsbmFtZToid2F0ZXJmYWxsIixiYXNlUGxvdE1vZHVsZTp0KCIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iKSxjYXRlZ29yaWVzOlsiYmFyLWxpa2UiLCJjYXJ0ZXNpYW4iLCJzdmciLCJvcmllbnRlZCIsInNob3dMZWdlbmQiLCJ6b29tU2NhbGUiXSxtZXRhOnt9fX0seyIuLi8uLi9wbG90cy9jYXJ0ZXNpYW4iOjg0MSwiLi4vYmFyL3NlbGVjdCI6OTI2LCIuL2F0dHJpYnV0ZXMiOjEzNjAsIi4vY2FsYyI6MTM2MSwiLi9jcm9zc190cmFjZV9jYWxjIjoxMzYzLCIuL2RlZmF1bHRzIjoxMzY0LCIuL2V2ZW50X2RhdGEiOjEzNjUsIi4vaG92ZXIiOjEzNjYsIi4vbGF5b3V0X2F0dHJpYnV0ZXMiOjEzNjgsIi4vbGF5b3V0X2RlZmF1bHRzIjoxMzY5LCIuL3Bsb3QiOjEzNzAsIi4vc3R5bGUiOjEzNzF9XSwxMzY4OltmdW5jdGlvbih0LGUscil7InVzZSBzdHJpY3QiO2UuZXhwb3J0cz17d2F0ZXJmYWxsbW9kZTp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOlsiZ3JvdXAiLCJvdmVybGF5Il0sZGZsdDoiZ3JvdXAiLGVkaXRUeXBlOiJjYWxjIn0sd2F0ZXJmYWxsZ2FwOnt2YWxUeXBlOiJudW1iZXIiLG1pbjowLG1heDoxLGVkaXRUeXBlOiJjYWxjIn0sd2F0ZXJmYWxsZ3JvdXBnYXA6e3ZhbFR5cGU6Im51bWJlciIsbWluOjAsbWF4OjEsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn19fSx7fV0sMTM2OTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi8uLi9saWIiKSxpPXQoIi4vbGF5b3V0X2F0dHJpYnV0ZXMiKTtlLmV4cG9ydHM9ZnVuY3Rpb24odCxlLHIpe3ZhciBhPSExO2Z1bmN0aW9uIG8ocixhKXtyZXR1cm4gbi5jb2VyY2UodCxlLGkscixhKX1mb3IodmFyIHM9MDtzPHIubGVuZ3RoO3MrKyl7dmFyIGw9cltzXTtpZihsLnZpc2libGUmJiJ3YXRlcmZhbGwiPT09bC50eXBlKXthPSEwO2JyZWFrfX1hJiYobygid2F0ZXJmYWxsbW9kZSIpLG8oIndhdGVyZmFsbGdhcCIsLjIpLG8oIndhdGVyZmFsbGdyb3VwZ2FwIikpfX0seyIuLi8uLi9saWIiOjc3NiwiLi9sYXlvdXRfYXR0cmlidXRlcyI6MTM2OH1dLDEzNzA6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7dmFyIG49dCgiQHBsb3RseS9kMyIpLGk9dCgiLi4vLi4vbGliIiksYT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxvPXQoIi4uLy4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU0scz10KCIuLi9iYXIvcGxvdCIpLGw9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLmNsZWFyTWluVGV4dFNpemU7ZS5leHBvcnRzPWZ1bmN0aW9uKHQsZSxyLGMpe3ZhciB1PXQuX2Z1bGxMYXlvdXQ7bCgid2F0ZXJmYWxsIix1KSxzLnBsb3QodCxlLHIsYyx7bW9kZTp1LndhdGVyZmFsbG1vZGUsbm9ybTp1LndhdGVyZmFsbG1vZGUsZ2FwOnUud2F0ZXJmYWxsZ2FwLGdyb3VwZ2FwOnUud2F0ZXJmYWxsZ3JvdXBnYXB9KSxmdW5jdGlvbih0LGUscixzKXt2YXIgbD1lLnhheGlzLGM9ZS55YXhpcztpLm1ha2VUcmFjZUdyb3VwcyhzLHIsInRyYWNlIGJhcnMiKS5lYWNoKChmdW5jdGlvbihyKXt2YXIgcz1uLnNlbGVjdCh0aGlzKSx1PXJbMF0udHJhY2UsZj1pLmVuc3VyZVNpbmdsZShzLCJnIiwibGluZXMiKTtpZih1LmNvbm5lY3RvciYmdS5jb25uZWN0b3IudmlzaWJsZSl7dmFyIGg9ImgiPT09dS5vcmllbnRhdGlvbixwPXUuY29ubmVjdG9yLm1vZGUsZD1mLnNlbGVjdEFsbCgiZy5saW5lIikuZGF0YShpLmlkZW50aXR5KTtkLmVudGVyKCkuYXBwZW5kKCJnIikuY2xhc3NlZCgibGluZSIsITApLGQuZXhpdCgpLnJlbW92ZSgpO3ZhciBtPWQuc2l6ZSgpO2QuZWFjaCgoZnVuY3Rpb24ocixzKXtpZihzPT09bS0xfHxyLmNOZXh0KXt2YXIgdT1mdW5jdGlvbih0LGUscixuKXt2YXIgaT1bXSxhPVtdLG89bj9lOnIscz1uP3I6ZTtyZXR1cm4gaVswXT1vLmMycCh0LnMwLCEwKSxhWzBdPXMuYzJwKHQucDAsITApLGlbMV09by5jMnAodC5zMSwhMCksYVsxXT1zLmMycCh0LnAxLCEwKSxpWzJdPW8uYzJwKHQubmV4dFMwLCEwKSxhWzJdPXMuYzJwKHQubmV4dFAwLCEwKSxuP1tpLGFdOlthLGldfShyLGwsYyxoKSxmPXVbMF0sZD11WzFdLGc9IiI7ZlswXSE9PW8mJmRbMF0hPT1vJiZmWzFdIT09byYmZFsxXSE9PW8mJigic3Bhbm5pbmciPT09cCYmIXIuaXNTdW0mJnM+MCYmKGcrPWg/Ik0iK2ZbMF0rIiwiK2RbMV0rIlYiK2RbMF06Ik0iK2ZbMV0rIiwiK2RbMF0rIkgiK2ZbMF0pLCJiZXR3ZWVuIiE9PXAmJihyLmlzU3VtfHxzPG0tMSkmJihnKz1oPyJNIitmWzFdKyIsIitkWzBdKyJWIitkWzFdOiJNIitmWzBdKyIsIitkWzFdKyJIIitmWzFdKSxmWzJdIT09byYmZFsyXSE9PW8mJihnKz1oPyJNIitmWzFdKyIsIitkWzFdKyJWIitkWzJdOiJNIitmWzFdKyIsIitkWzFdKyJIIitmWzJdKSksIiI9PT1nJiYoZz0iTTAsMFoiKSxpLmVuc3VyZVNpbmdsZShuLnNlbGVjdCh0aGlzKSwicGF0aCIpLmF0dHIoImQiLGcpLmNhbGwoYS5zZXRDbGlwVXJsLGUubGF5ZXJDbGlwSWQsdCl9fSkpfWVsc2UgZi5yZW1vdmUoKX0pKX0odCxlLHIsYyl9fSx7Ii4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb25zdGFudHMvbnVtZXJpY2FsIjo3NTIsIi4uLy4uL2xpYiI6Nzc2LCIuLi9iYXIvcGxvdCI6OTI1LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo5MzAsIkBwbG90bHkvZDMiOjU4fV0sMTM3MTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCJAcGxvdGx5L2QzIiksaT10KCIuLi8uLi9jb21wb25lbnRzL2RyYXdpbmciKSxhPXQoIi4uLy4uL2NvbXBvbmVudHMvY29sb3IiKSxvPXQoIi4uLy4uL2NvbnN0YW50cy9pbnRlcmFjdGlvbnMiKS5ERVNFTEVDVERJTSxzPXQoIi4uL2Jhci9zdHlsZSIpLGw9dCgiLi4vYmFyL3VuaWZvcm1fdGV4dCIpLnJlc2l6ZVRleHQsYz1zLnN0eWxlVGV4dFBvaW50cztlLmV4cG9ydHM9e3N0eWxlOmZ1bmN0aW9uKHQsZSxyKXt2YXIgcz1yfHxuLnNlbGVjdCh0KS5zZWxlY3RBbGwoImcud2F0ZXJmYWxsbGF5ZXIiKS5zZWxlY3RBbGwoImcudHJhY2UiKTtsKHQscywid2F0ZXJmYWxsIikscy5zdHlsZSgib3BhY2l0eSIsKGZ1bmN0aW9uKHQpe3JldHVybiB0WzBdLnRyYWNlLm9wYWNpdHl9KSkscy5lYWNoKChmdW5jdGlvbihlKXt2YXIgcj1uLnNlbGVjdCh0aGlzKSxzPWVbMF0udHJhY2U7ci5zZWxlY3RBbGwoIi5wb2ludCA+IHBhdGgiKS5lYWNoKChmdW5jdGlvbih0KXtpZighdC5pc0JsYW5rKXt2YXIgZT1zW3QuZGlyXS5tYXJrZXI7bi5zZWxlY3QodGhpcykuY2FsbChhLmZpbGwsZS5jb2xvcikuY2FsbChhLnN0cm9rZSxlLmxpbmUuY29sb3IpLmNhbGwoaS5kYXNoTGluZSxlLmxpbmUuZGFzaCxlLmxpbmUud2lkdGgpLnN0eWxlKCJvcGFjaXR5IixzLnNlbGVjdGVkcG9pbnRzJiYhdC5zZWxlY3RlZD9vOjEpfX0pKSxjKHIscyx0KSxyLnNlbGVjdEFsbCgiLmxpbmVzIikuZWFjaCgoZnVuY3Rpb24oKXt2YXIgdD1zLmNvbm5lY3Rvci5saW5lO2kubGluZUdyb3VwU3R5bGUobi5zZWxlY3QodGhpcykuc2VsZWN0QWxsKCJwYXRoIiksdC53aWR0aCx0LmNvbG9yLHQuZGFzaCl9KSl9KSl9fX0seyIuLi8uLi9jb21wb25lbnRzL2NvbG9yIjo2MzksIi4uLy4uL2NvbXBvbmVudHMvZHJhd2luZyI6NjYxLCIuLi8uLi9jb25zdGFudHMvaW50ZXJhY3Rpb25zIjo3NTEsIi4uL2Jhci9zdHlsZSI6OTI4LCIuLi9iYXIvdW5pZm9ybV90ZXh0Ijo5MzAsIkBwbG90bHkvZDMiOjU4fV0sMTM3MjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLGk9dCgiLi4vbGliIiksYT10KCIuLi9wbG90X2FwaS9wbG90X3NjaGVtYSIpLG89dCgiLi9oZWxwZXJzIikucG9pbnRzQWNjZXNzb3JGdW5jdGlvbixzPXQoIi4uL2NvbnN0YW50cy9udW1lcmljYWwiKS5CQUROVU07ci5tb2R1bGVUeXBlPSJ0cmFuc2Zvcm0iLHIubmFtZT0iYWdncmVnYXRlIjt2YXIgbD1yLmF0dHJpYnV0ZXM9e2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSxncm91cHM6e3ZhbFR5cGU6InN0cmluZyIsc3RyaWN0OiEwLG5vQmxhbms6ITAsYXJyYXlPazohMCxkZmx0OiJ4IixlZGl0VHlwZToiY2FsYyJ9LGFnZ3JlZ2F0aW9uczp7X2lzTGlua2VkVG9BcnJheToiYWdncmVnYXRpb24iLHRhcmdldDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LGZ1bmM6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbImNvdW50Iiwic3VtIiwiYXZnIiwibWVkaWFuIiwibW9kZSIsInJtcyIsInN0ZGRldiIsIm1pbiIsIm1heCIsImZpcnN0IiwibGFzdCIsImNoYW5nZSIsInJhbmdlIl0sZGZsdDoiZmlyc3QiLGVkaXRUeXBlOiJjYWxjIn0sZnVuY21vZGU6e3ZhbFR5cGU6ImVudW1lcmF0ZWQiLHZhbHVlczpbInNhbXBsZSIsInBvcHVsYXRpb24iXSxkZmx0OiJzYW1wbGUiLGVkaXRUeXBlOiJjYWxjIn0sZW5hYmxlZDp7dmFsVHlwZToiYm9vbGVhbiIsZGZsdDohMCxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxjPWwuYWdncmVnYXRpb25zO2Z1bmN0aW9uIHUodCxlLHIsYSl7aWYoYS5lbmFibGVkKXtmb3IodmFyIG89YS50YXJnZXQsbD1pLm5lc3RlZFByb3BlcnR5KGUsbyksYz1sLmdldCgpLHU9ZnVuY3Rpb24odCxlKXt2YXIgcj10LmZ1bmMsbj1lLmQyYyxhPWUuYzJkO3N3aXRjaChyKXtjYXNlImNvdW50IjpyZXR1cm4gZjtjYXNlImZpcnN0IjpyZXR1cm4gaDtjYXNlImxhc3QiOnJldHVybiBwO2Nhc2Uic3VtIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxpPTA7aTxlLmxlbmd0aDtpKyspe3ZhciBvPW4odFtlW2ldXSk7byE9PXMmJihyKz1vKX1yZXR1cm4gYShyKX07Y2FzZSJhdmciOnJldHVybiBmdW5jdGlvbih0LGUpe2Zvcih2YXIgcj0wLGk9MCxvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciBsPW4odFtlW29dXSk7bCE9PXMmJihyKz1sLGkrKyl9cmV0dXJuIGk/YShyL2kpOnN9O2Nhc2UibWluIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MS8wLGk9MDtpPGUubGVuZ3RoO2krKyl7dmFyIG89bih0W2VbaV1dKTtvIT09cyYmKHI9TWF0aC5taW4ocixvKSl9cmV0dXJuIHI9PT0xLzA/czphKHIpfTtjYXNlIm1heCI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPS0xLzAsaT0wO2k8ZS5sZW5ndGg7aSsrKXt2YXIgbz1uKHRbZVtpXV0pO28hPT1zJiYocj1NYXRoLm1heChyLG8pKX1yZXR1cm4gcj09PS0xLzA/czphKHIpfTtjYXNlInJhbmdlIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MS8wLGk9LTEvMCxvPTA7bzxlLmxlbmd0aDtvKyspe3ZhciBsPW4odFtlW29dXSk7bCE9PXMmJihyPU1hdGgubWluKHIsbCksaT1NYXRoLm1heChpLGwpKX1yZXR1cm4gaT09PS0xLzB8fHI9PT0xLzA/czphKGktcil9O2Nhc2UiY2hhbmdlIjpyZXR1cm4gZnVuY3Rpb24odCxlKXt2YXIgcj1uKHRbZVswXV0pLGk9bih0W2VbZS5sZW5ndGgtMV1dKTtyZXR1cm4gcj09PXN8fGk9PT1zP3M6YShpLXIpfTtjYXNlIm1lZGlhbiI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPVtdLG89MDtvPGUubGVuZ3RoO28rKyl7dmFyIGw9bih0W2Vbb11dKTtsIT09cyYmci5wdXNoKGwpfWlmKCFyLmxlbmd0aClyZXR1cm4gcztyLnNvcnQoaS5zb3J0ZXJBc2MpO3ZhciBjPShyLmxlbmd0aC0xKS8yO3JldHVybiBhKChyW01hdGguZmxvb3IoYyldK3JbTWF0aC5jZWlsKGMpXSkvMil9O2Nhc2UibW9kZSI6cmV0dXJuIGZ1bmN0aW9uKHQsZSl7Zm9yKHZhciByPXt9LGk9MCxvPXMsbD0wO2w8ZS5sZW5ndGg7bCsrKXt2YXIgYz1uKHRbZVtsXV0pO2lmKGMhPT1zKXt2YXIgdT1yW2NdPShyW2NdfHwwKSsxO3U+aSYmKGk9dSxvPWMpfX1yZXR1cm4gaT9hKG8pOnN9O2Nhc2Uicm1zIjpyZXR1cm4gZnVuY3Rpb24odCxlKXtmb3IodmFyIHI9MCxpPTAsbz0wO288ZS5sZW5ndGg7bysrKXt2YXIgbD1uKHRbZVtvXV0pO2whPT1zJiYocis9bCpsLGkrKyl9cmV0dXJuIGk/YShNYXRoLnNxcnQoci9pKSk6c307Y2FzZSJzdGRkZXYiOnJldHVybiBmdW5jdGlvbihlLHIpe3ZhciBpLGE9MCxvPTAsbD0xLGM9cztmb3IoaT0wO2k8ci5sZW5ndGgmJmM9PT1zO2krKyljPW4oZVtyW2ldXSk7aWYoYz09PXMpcmV0dXJuIHM7Zm9yKDtpPHIubGVuZ3RoO2krKyl7dmFyIHU9bihlW3JbaV1dKTtpZih1IT09cyl7dmFyIGY9dS1jO2ErPWYsbys9ZipmLGwrK319dmFyIGg9InNhbXBsZSI9PT10LmZ1bmNtb2RlP2wtMTpsO3JldHVybiBoP01hdGguc3FydCgoby1hKmEvbCkvaCk6MH19fShhLG4uZ2V0RGF0YUNvbnZlcnNpb25zKHQsZSxvLGMpKSxkPW5ldyBBcnJheShyLmxlbmd0aCksbT0wO208ci5sZW5ndGg7bSsrKWRbbV09dShjLHJbbV0pO2wuc2V0KGQpLCJjb3VudCI9PT1hLmZ1bmMmJmkucHVzaFVuaXF1ZShlLl9hcnJheUF0dHJzLG8pfX1mdW5jdGlvbiBmKHQsZSl7cmV0dXJuIGUubGVuZ3RofWZ1bmN0aW9uIGgodCxlKXtyZXR1cm4gdFtlWzBdXX1mdW5jdGlvbiBwKHQsZSl7cmV0dXJuIHRbZVtlLmxlbmd0aC0xXV19ci5zdXBwbHlEZWZhdWx0cz1mdW5jdGlvbih0LGUpe3ZhciByLG49e307ZnVuY3Rpb24gbyhlLHIpe3JldHVybiBpLmNvZXJjZSh0LG4sbCxlLHIpfWlmKCFvKCJlbmFibGVkIikpcmV0dXJuIG47dmFyIHM9YS5maW5kQXJyYXlBdHRyaWJ1dGVzKGUpLHU9e307Zm9yKHI9MDtyPHMubGVuZ3RoO3IrKyl1W3Nbcl1dPTE7dmFyIGY9bygiZ3JvdXBzIik7aWYoIUFycmF5LmlzQXJyYXkoZikpe2lmKCF1W2ZdKXJldHVybiBuLmVuYWJsZWQ9ITEsbjt1W2ZdPTB9dmFyIGgscD10LmFnZ3JlZ2F0aW9uc3x8W10sZD1uLmFnZ3JlZ2F0aW9ucz1uZXcgQXJyYXkocC5sZW5ndGgpO2Z1bmN0aW9uIG0odCxlKXtyZXR1cm4gaS5jb2VyY2UocFtyXSxoLGMsdCxlKX1mb3Iocj0wO3I8cC5sZW5ndGg7cisrKXtoPXtfaW5kZXg6cn07dmFyIGc9bSgidGFyZ2V0Iiksdj1tKCJmdW5jIik7bSgiZW5hYmxlZCIpJiZnJiYodVtnXXx8ImNvdW50Ij09PXYmJnZvaWQgMD09PXVbZ10pPygic3RkZGV2Ij09PXYmJm0oImZ1bmNtb2RlIiksdVtnXT0wLGRbcl09aCk6ZFtyXT17ZW5hYmxlZDohMSxfaW5kZXg6cn19Zm9yKHI9MDtyPHMubGVuZ3RoO3IrKyl1W3Nbcl1dJiZkLnB1c2goe3RhcmdldDpzW3JdLGZ1bmM6Yy5mdW5jLmRmbHQsZW5hYmxlZDohMCxfaW5kZXg6LTF9KTtyZXR1cm4gbn0sci5jYWxjVHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyKXtpZihyLmVuYWJsZWQpe3ZhciBuPXIuZ3JvdXBzLGE9aS5nZXRUYXJnZXRBcnJheShlLHt0YXJnZXQ6bn0pO2lmKGEpe3ZhciBzLGwsYyxmLGg9e30scD17fSxkPVtdLG09byhlLnRyYW5zZm9ybXMsciksZz1hLmxlbmd0aDtmb3IoZS5fbGVuZ3RoJiYoZz1NYXRoLm1pbihnLGUuX2xlbmd0aCkpLHM9MDtzPGc7cysrKXZvaWQgMD09PShjPWhbbD1hW3NdXSk/KGhbbF09ZC5sZW5ndGgsZj1bc10sZC5wdXNoKGYpLHBbaFtsXV09bShzKSk6KGRbY10ucHVzaChzKSxwW2hbbF1dPShwW2hbbF1dfHxbXSkuY29uY2F0KG0ocykpKTtyLl9pbmRleFRvUG9pbnRzPXA7dmFyIHY9ci5hZ2dyZWdhdGlvbnM7Zm9yKHM9MDtzPHYubGVuZ3RoO3MrKyl1KHQsZSxkLHZbc10pOyJzdHJpbmciPT10eXBlb2YgbiYmdSh0LGUsZCx7dGFyZ2V0Om4sZnVuYzoiZmlyc3QiLGVuYWJsZWQ6ITB9KSxlLl9sZW5ndGg9ZC5sZW5ndGh9fX19LHsiLi4vY29uc3RhbnRzL251bWVyaWNhbCI6NzUyLCIuLi9saWIiOjc3NiwiLi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiOjgxNSwiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi9oZWxwZXJzIjoxMzc1fV0sMTM3MzpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3JlZ2lzdHJ5IiksYT10KCIuLi9wbG90cy9jYXJ0ZXNpYW4vYXhlcyIpLG89dCgiLi9oZWxwZXJzIikucG9pbnRzQWNjZXNzb3JGdW5jdGlvbixzPXQoIi4uL2NvbnN0YW50cy9maWx0ZXJfb3BzIiksbD1zLkNPTVBBUklTT05fT1BTLGM9cy5JTlRFUlZBTF9PUFMsdT1zLlNFVF9PUFM7ci5tb2R1bGVUeXBlPSJ0cmFuc2Zvcm0iLHIubmFtZT0iZmlsdGVyIixyLmF0dHJpYnV0ZXM9e2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSx0YXJnZXQ6e3ZhbFR5cGU6InN0cmluZyIsc3RyaWN0OiEwLG5vQmxhbms6ITAsYXJyYXlPazohMCxkZmx0OiJ4IixlZGl0VHlwZToiY2FsYyJ9LG9wZXJhdGlvbjp7dmFsVHlwZToiZW51bWVyYXRlZCIsdmFsdWVzOltdLmNvbmNhdChsKS5jb25jYXQoYykuY29uY2F0KHUpLGRmbHQ6Ij0iLGVkaXRUeXBlOiJjYWxjIn0sdmFsdWU6e3ZhbFR5cGU6ImFueSIsZGZsdDowLGVkaXRUeXBlOiJjYWxjIn0scHJlc2VydmVnYXBzOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiExLGVkaXRUeXBlOiJjYWxjIn0sZWRpdFR5cGU6ImNhbGMifSxyLnN1cHBseURlZmF1bHRzPWZ1bmN0aW9uKHQpe3ZhciBlPXt9O2Z1bmN0aW9uIGEoaSxhKXtyZXR1cm4gbi5jb2VyY2UodCxlLHIuYXR0cmlidXRlcyxpLGEpfWlmKGEoImVuYWJsZWQiKSl7dmFyIG89YSgidGFyZ2V0Iik7aWYobi5pc0FycmF5T3JUeXBlZEFycmF5KG8pJiYwPT09by5sZW5ndGgpcmV0dXJuIGUuZW5hYmxlZD0hMSxlO2EoInByZXNlcnZlZ2FwcyIpLGEoIm9wZXJhdGlvbiIpLGEoInZhbHVlIik7dmFyIHM9aS5nZXRDb21wb25lbnRNZXRob2QoImNhbGVuZGFycyIsImhhbmRsZURlZmF1bHRzIik7cyh0LGUsInZhbHVlY2FsZW5kYXIiLG51bGwpLHModCxlLCJ0YXJnZXRjYWxlbmRhciIsbnVsbCl9cmV0dXJuIGV9LHIuY2FsY1RyYW5zZm9ybT1mdW5jdGlvbih0LGUscil7aWYoci5lbmFibGVkKXt2YXIgaT1uLmdldFRhcmdldEFycmF5KGUscik7aWYoaSl7dmFyIHM9ci50YXJnZXQsZj1pLmxlbmd0aDtlLl9sZW5ndGgmJihmPU1hdGgubWluKGYsZS5fbGVuZ3RoKSk7dmFyIGg9ci50YXJnZXRjYWxlbmRhcixwPWUuX2FycmF5QXR0cnMsZD1yLnByZXNlcnZlZ2FwcztpZigic3RyaW5nIj09dHlwZW9mIHMpe3ZhciBtPW4ubmVzdGVkUHJvcGVydHkoZSxzKyJjYWxlbmRhciIpLmdldCgpO20mJihoPW0pfXZhciBnLHYseT1mdW5jdGlvbih0LGUscil7dmFyIG49dC5vcGVyYXRpb24saT10LnZhbHVlLGE9QXJyYXkuaXNBcnJheShpKTtmdW5jdGlvbiBvKHQpe3JldHVybi0xIT09dC5pbmRleE9mKG4pfXZhciBzLGY9ZnVuY3Rpb24ocil7cmV0dXJuIGUociwwLHQudmFsdWVjYWxlbmRhcil9LGg9ZnVuY3Rpb24odCl7cmV0dXJuIGUodCwwLHIpfTtvKGwpP3M9ZihhP2lbMF06aSk6byhjKT9zPWE/W2YoaVswXSksZihpWzFdKV06W2YoaSksZihpKV06byh1KSYmKHM9YT9pLm1hcChmKTpbZihpKV0pO3N3aXRjaChuKXtjYXNlIj0iOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaCh0KT09PXN9O2Nhc2UiIT0iOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaCh0KSE9PXN9O2Nhc2UiPCI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBoKHQpPHN9O2Nhc2UiPD0iOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4gaCh0KTw9c307Y2FzZSI+IjpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuIGgodCk+c307Y2FzZSI+PSI6cmV0dXJuIGZ1bmN0aW9uKHQpe3JldHVybiBoKHQpPj1zfTtjYXNlIltdIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZT49c1swXSYmZTw9c1sxXX07Y2FzZSIoKSI6cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPWgodCk7cmV0dXJuIGU+c1swXSYmZTxzWzFdfTtjYXNlIlspIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZT49c1swXSYmZTxzWzFdfTtjYXNlIihdIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZT5zWzBdJiZlPD1zWzFdfTtjYXNlIl1bIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZTw9c1swXXx8ZT49c1sxXX07Y2FzZSIpKCI6cmV0dXJuIGZ1bmN0aW9uKHQpe3ZhciBlPWgodCk7cmV0dXJuIGU8c1swXXx8ZT5zWzFdfTtjYXNlIl0oIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZTw9c1swXXx8ZT5zWzFdfTtjYXNlIilbIjpyZXR1cm4gZnVuY3Rpb24odCl7dmFyIGU9aCh0KTtyZXR1cm4gZTxzWzBdfHxlPj1zWzFdfTtjYXNlInt9IjpyZXR1cm4gZnVuY3Rpb24odCl7cmV0dXJuLTEhPT1zLmluZGV4T2YoaCh0KSl9O2Nhc2UifXsiOnJldHVybiBmdW5jdGlvbih0KXtyZXR1cm4tMT09PXMuaW5kZXhPZihoKHQpKX19fShyLGEuZ2V0RGF0YVRvQ29vcmRGdW5jKHQsZSxzLGkpLGgpLHg9e30sYj17fSxfPTA7ZD8oZz1mdW5jdGlvbih0KXt4W3QuYXN0cl09bi5leHRlbmREZWVwKFtdLHQuZ2V0KCkpLHQuc2V0KG5ldyBBcnJheShmKSl9LHY9ZnVuY3Rpb24odCxlKXt2YXIgcj14W3QuYXN0cl1bZV07dC5nZXQoKVtlXT1yfSk6KGc9ZnVuY3Rpb24odCl7eFt0LmFzdHJdPW4uZXh0ZW5kRGVlcChbXSx0LmdldCgpKSx0LnNldChbXSl9LHY9ZnVuY3Rpb24odCxlKXt2YXIgcj14W3QuYXN0cl1bZV07dC5nZXQoKS5wdXNoKHIpfSksayhnKTtmb3IodmFyIHc9byhlLnRyYW5zZm9ybXMsciksVD0wO1Q8ZjtUKyspe3koaVtUXSk/KGsodixUKSxiW18rK109dyhUKSk6ZCYmXysrfXIuX2luZGV4VG9Qb2ludHM9YixlLl9sZW5ndGg9X319ZnVuY3Rpb24gayh0LHIpe2Zvcih2YXIgaT0wO2k8cC5sZW5ndGg7aSsrKXt0KG4ubmVzdGVkUHJvcGVydHkoZSxwW2ldKSxyKX19fX0seyIuLi9jb25zdGFudHMvZmlsdGVyX29wcyI6NzQ4LCIuLi9saWIiOjc3NiwiLi4vcGxvdHMvY2FydGVzaWFuL2F4ZXMiOjgyNywiLi4vcmVnaXN0cnkiOjkwNCwiLi9oZWxwZXJzIjoxMzc1fV0sMTM3NDpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RfYXBpL3Bsb3Rfc2NoZW1hIiksYT10KCIuLi9wbG90cy9wbG90cyIpLG89dCgiLi9oZWxwZXJzIikucG9pbnRzQWNjZXNzb3JGdW5jdGlvbjtmdW5jdGlvbiBzKHQsZSl7dmFyIHIscyxsLGMsdSxmLGgscCxkLG0sZz1lLnRyYW5zZm9ybSx2PWUudHJhbnNmb3JtSW5kZXgseT10LnRyYW5zZm9ybXNbdl0uZ3JvdXBzLHg9byh0LnRyYW5zZm9ybXMsZyk7aWYoIW4uaXNBcnJheU9yVHlwZWRBcnJheSh5KXx8MD09PXkubGVuZ3RoKXJldHVyblt0XTt2YXIgYj1uLmZpbHRlclVuaXF1ZSh5KSxfPW5ldyBBcnJheShiLmxlbmd0aCksdz15Lmxlbmd0aCxUPWkuZmluZEFycmF5QXR0cmlidXRlcyh0KSxrPWcuc3R5bGVzfHxbXSxBPXt9O2ZvcihyPTA7cjxrLmxlbmd0aDtyKyspQVtrW3JdLnRhcmdldF09a1tyXS52YWx1ZTtnLnN0eWxlcyYmKG09bi5rZXllZENvbnRhaW5lcihnLCJzdHlsZXMiLCJ0YXJnZXQiLCJ2YWx1ZS5uYW1lIikpO3ZhciBNPXt9LFM9e307Zm9yKHI9MDtyPGIubGVuZ3RoO3IrKyl7TVtmPWJbcl1dPXIsU1tmXT0wLChoPV9bcl09bi5leHRlbmREZWVwTm9BcnJheXMoe30sdCkpLl9ncm91cD1mLGgudHJhbnNmb3Jtc1t2XS5faW5kZXhUb1BvaW50cz17fTt2YXIgRT1udWxsO2ZvcihtJiYoRT1tLmdldChmKSksaC5uYW1lPUV8fCIiPT09RT9FOm4udGVtcGxhdGVTdHJpbmcoZy5uYW1lZm9ybWF0LHt0cmFjZTp0Lm5hbWUsZ3JvdXA6Zn0pLHA9aC50cmFuc2Zvcm1zLGgudHJhbnNmb3Jtcz1bXSxzPTA7czxwLmxlbmd0aDtzKyspaC50cmFuc2Zvcm1zW3NdPW4uZXh0ZW5kRGVlcE5vQXJyYXlzKHt9LHBbc10pO2ZvcihzPTA7czxULmxlbmd0aDtzKyspbi5uZXN0ZWRQcm9wZXJ0eShoLFRbc10pLnNldChbXSl9Zm9yKGw9MDtsPFQubGVuZ3RoO2wrKyl7Zm9yKGM9VFtsXSxzPTAsZD1bXTtzPGIubGVuZ3RoO3MrKylkW3NdPW4ubmVzdGVkUHJvcGVydHkoX1tzXSxjKS5nZXQoKTtmb3IodT1uLm5lc3RlZFByb3BlcnR5KHQsYykuZ2V0KCkscz0wO3M8dztzKyspZFtNW3lbc11dXS5wdXNoKHVbc10pfWZvcihzPTA7czx3O3MrKyl7KGg9X1tNW3lbc11dXSkudHJhbnNmb3Jtc1t2XS5faW5kZXhUb1BvaW50c1tTW3lbc11dXT14KHMpLFNbeVtzXV0rK31mb3Iocj0wO3I8Yi5sZW5ndGg7cisrKWY9YltyXSxoPV9bcl0sYS5jbGVhckV4cGFuZGVkVHJhY2VEZWZhdWx0Q29sb3JzKGgpLGg9bi5leHRlbmREZWVwTm9BcnJheXMoaCxBW2ZdfHx7fSk7cmV0dXJuIF99ci5tb2R1bGVUeXBlPSJ0cmFuc2Zvcm0iLHIubmFtZT0iZ3JvdXBieSIsci5hdHRyaWJ1dGVzPXtlbmFibGVkOnt2YWxUeXBlOiJib29sZWFuIixkZmx0OiEwLGVkaXRUeXBlOiJjYWxjIn0sZ3JvdXBzOnt2YWxUeXBlOiJkYXRhX2FycmF5IixkZmx0OltdLGVkaXRUeXBlOiJjYWxjIn0sbmFtZWZvcm1hdDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHN0eWxlczp7X2lzTGlua2VkVG9BcnJheToic3R5bGUiLHRhcmdldDp7dmFsVHlwZToic3RyaW5nIixlZGl0VHlwZToiY2FsYyJ9LHZhbHVlOnt2YWxUeXBlOiJhbnkiLGRmbHQ6e30sZWRpdFR5cGU6ImNhbGMiLF9jb21wYXJlQXNKU09OOiEwfSxlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sci5zdXBwbHlEZWZhdWx0cz1mdW5jdGlvbih0LGUsaSl7dmFyIGEsbz17fTtmdW5jdGlvbiBzKGUsaSl7cmV0dXJuIG4uY29lcmNlKHQsbyxyLmF0dHJpYnV0ZXMsZSxpKX1pZighcygiZW5hYmxlZCIpKXJldHVybiBvO3MoImdyb3VwcyIpLHMoIm5hbWVmb3JtYXQiLGkuX2RhdGFMZW5ndGg+MT8iJXtncm91cH0gKCV7dHJhY2V9KSI6IiV7Z3JvdXB9Iik7dmFyIGw9dC5zdHlsZXMsYz1vLnN0eWxlcz1bXTtpZihsKWZvcihhPTA7YTxsLmxlbmd0aDthKyspe3ZhciB1PWNbYV09e307bi5jb2VyY2UobFthXSxjW2FdLHIuYXR0cmlidXRlcy5zdHlsZXMsInRhcmdldCIpO3ZhciBmPW4uY29lcmNlKGxbYV0sY1thXSxyLmF0dHJpYnV0ZXMuc3R5bGVzLCJ2YWx1ZSIpO24uaXNQbGFpbk9iamVjdChmKT91LnZhbHVlPW4uZXh0ZW5kRGVlcCh7fSxmKTpmJiZkZWxldGUgdS52YWx1ZX1yZXR1cm4gb30sci50cmFuc2Zvcm09ZnVuY3Rpb24odCxlKXt2YXIgcixuLGksYT1bXTtmb3Iobj0wO248dC5sZW5ndGg7bisrKWZvcihyPXModFtuXSxlKSxpPTA7aTxyLmxlbmd0aDtpKyspYS5wdXNoKHJbaV0pO3JldHVybiBhfX0seyIuLi9saWIiOjc3NiwiLi4vcGxvdF9hcGkvcGxvdF9zY2hlbWEiOjgxNSwiLi4vcGxvdHMvcGxvdHMiOjg5MCwiLi9oZWxwZXJzIjoxMzc1fV0sMTM3NTpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0IjtyLnBvaW50c0FjY2Vzc29yRnVuY3Rpb249ZnVuY3Rpb24odCxlKXtmb3IodmFyIHIsbixpPTA7aTx0Lmxlbmd0aCYmKHI9dFtpXSkhPT1lO2krKylyLl9pbmRleFRvUG9pbnRzJiYhMSE9PXIuZW5hYmxlZCYmKG49ci5faW5kZXhUb1BvaW50cyk7cmV0dXJuIG4/ZnVuY3Rpb24odCl7cmV0dXJuIG5bdF19OmZ1bmN0aW9uKHQpe3JldHVyblt0XX19fSx7fV0sMTM3NjpbZnVuY3Rpb24odCxlLHIpeyJ1c2Ugc3RyaWN0Ijt2YXIgbj10KCIuLi9saWIiKSxpPXQoIi4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIiksYT10KCIuL2hlbHBlcnMiKS5wb2ludHNBY2Nlc3NvckZ1bmN0aW9uLG89dCgiLi4vY29uc3RhbnRzL251bWVyaWNhbCIpLkJBRE5VTTtyLm1vZHVsZVR5cGU9InRyYW5zZm9ybSIsci5uYW1lPSJzb3J0IixyLmF0dHJpYnV0ZXM9e2VuYWJsZWQ6e3ZhbFR5cGU6ImJvb2xlYW4iLGRmbHQ6ITAsZWRpdFR5cGU6ImNhbGMifSx0YXJnZXQ6e3ZhbFR5cGU6InN0cmluZyIsc3RyaWN0OiEwLG5vQmxhbms6ITAsYXJyYXlPazohMCxkZmx0OiJ4IixlZGl0VHlwZToiY2FsYyJ9LG9yZGVyOnt2YWxUeXBlOiJlbnVtZXJhdGVkIix2YWx1ZXM6WyJhc2NlbmRpbmciLCJkZXNjZW5kaW5nIl0sZGZsdDoiYXNjZW5kaW5nIixlZGl0VHlwZToiY2FsYyJ9LGVkaXRUeXBlOiJjYWxjIn0sci5zdXBwbHlEZWZhdWx0cz1mdW5jdGlvbih0KXt2YXIgZT17fTtmdW5jdGlvbiBpKGksYSl7cmV0dXJuIG4uY29lcmNlKHQsZSxyLmF0dHJpYnV0ZXMsaSxhKX1yZXR1cm4gaSgiZW5hYmxlZCIpJiYoaSgidGFyZ2V0IiksaSgib3JkZXIiKSksZX0sci5jYWxjVHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxyKXtpZihyLmVuYWJsZWQpe3ZhciBzPW4uZ2V0VGFyZ2V0QXJyYXkoZSxyKTtpZihzKXt2YXIgbD1yLnRhcmdldCxjPXMubGVuZ3RoO2UuX2xlbmd0aCYmKGM9TWF0aC5taW4oYyxlLl9sZW5ndGgpKTt2YXIgdSxmLGg9ZS5fYXJyYXlBdHRycyxwPWZ1bmN0aW9uKHQsZSxyLG4pe3ZhciBpLGE9bmV3IEFycmF5KG4pLHM9bmV3IEFycmF5KG4pO2ZvcihpPTA7aTxuO2krKylhW2ldPXt2OmVbaV0saTppfTtmb3IoYS5zb3J0KGZ1bmN0aW9uKHQsZSl7c3dpdGNoKHQub3JkZXIpe2Nhc2UiYXNjZW5kaW5nIjpyZXR1cm4gZnVuY3Rpb24odCxyKXt2YXIgbj1lKHQudiksaT1lKHIudik7cmV0dXJuIG49PT1vPzE6aT09PW8/LTE6bi1pfTtjYXNlImRlc2NlbmRpbmciOnJldHVybiBmdW5jdGlvbih0LHIpe3ZhciBuPWUodC52KSxpPWUoci52KTtyZXR1cm4gbj09PW8/MTppPT09bz8tMTppLW59fX0odCxyKSksaT0wO2k8bjtpKyspc1tpXT1hW2ldLmk7cmV0dXJuIHN9KHIscyxpLmdldERhdGFUb0Nvb3JkRnVuYyh0LGUsbCxzKSxjKSxkPWEoZS50cmFuc2Zvcm1zLHIpLG09e307Zm9yKHU9MDt1PGgubGVuZ3RoO3UrKyl7dmFyIGc9bi5uZXN0ZWRQcm9wZXJ0eShlLGhbdV0pLHY9Zy5nZXQoKSx5PW5ldyBBcnJheShjKTtmb3IoZj0wO2Y8YztmKyspeVtmXT12W3BbZl1dO2cuc2V0KHkpfWZvcihmPTA7ZjxjO2YrKyltW2ZdPWQocFtmXSk7ci5faW5kZXhUb1BvaW50cz1tLGUuX2xlbmd0aD1jfX19fSx7Ii4uL2NvbnN0YW50cy9udW1lcmljYWwiOjc1MiwiLi4vbGliIjo3NzYsIi4uL3Bsb3RzL2NhcnRlc2lhbi9heGVzIjo4MjcsIi4vaGVscGVycyI6MTM3NX1dLDEzNzc6W2Z1bmN0aW9uKHQsZSxyKXsidXNlIHN0cmljdCI7ci52ZXJzaW9uPSIyLjUuMSJ9LHt9XX0se30sWzI3XSkoMjcpfSkpOw=="></script>

<style type="text/css">
  code{white-space: pre-wrap;}
  span.smallcaps{font-variant: small-caps;}
  span.underline{text-decoration: underline;}
  div.column{display: inline-block; vertical-align: top; width: 50%;}
  div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
  ul.task-list{list-style: none;}
    </style>


<style type="text/css">
  code {
    white-space: pre;
  }
  .sourceCode {
    overflow: visible;
  }
</style>
<style type="text/css" data-origin="pandoc">
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
  { counter-reset: source-line 0; }
pre.numberSource code > span
  { position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
  { content: counter(source-line);
    position: relative; left: -1em; text-align: right; vertical-align: baseline;
    border: none; display: inline-block;
    -webkit-touch-callout: none; -webkit-user-select: none;
    -khtml-user-select: none; -moz-user-select: none;
    -ms-user-select: none; user-select: none;
    padding: 0 4px; width: 4em;
    color: #aaaaaa;
  }
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa;  padding-left: 4px; }
div.sourceCode
  {   }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; } /* Alert */
code span.an { color: #008000; } /* Annotation */
code span.at { } /* Attribute */
code span.bu { } /* BuiltIn */
code span.cf { color: #0000ff; } /* ControlFlow */
code span.ch { color: #008080; } /* Char */
code span.cn { } /* Constant */
code span.co { color: #008000; } /* Comment */
code span.cv { color: #008000; } /* CommentVar */
code span.do { color: #008000; } /* Documentation */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.im { } /* Import */
code span.in { color: #008000; } /* Information */
code span.kw { color: #0000ff; } /* Keyword */
code span.op { } /* Operator */
code span.ot { color: #ff4000; } /* Other */
code span.pp { color: #ff4000; } /* Preprocessor */
code span.sc { color: #008080; } /* SpecialChar */
code span.ss { color: #008080; } /* SpecialString */
code span.st { color: #008080; } /* String */
code span.va { } /* Variable */
code span.vs { color: #008080; } /* VerbatimString */
code span.wa { color: #008000; font-weight: bold; } /* Warning */

.sourceCode .row {
  width: 100%;
}
.sourceCode {
  overflow-x: auto;
}
.code-folding-btn {
  margin-right: -30px;
}
</style>
<script>
// apply pandoc div.sourceCode style to pre.sourceCode instead
(function() {
  var sheets = document.styleSheets;
  for (var i = 0; i < sheets.length; i++) {
    if (sheets[i].ownerNode.dataset["origin"] !== "pandoc") continue;
    try { var rules = sheets[i].cssRules; } catch (e) { continue; }
    for (var j = 0; j < rules.length; j++) {
      var rule = rules[j];
      // check if there is a div.sourceCode rule
      if (rule.type !== rule.STYLE_RULE || rule.selectorText !== "div.sourceCode") continue;
      var style = rule.style.cssText;
      // check if color or background-color is set
      if (rule.style.color === '' && rule.style.backgroundColor === '') continue;
      // replace div.sourceCode by a pre.sourceCode rule
      sheets[i].deleteRule(j);
      sheets[i].insertRule('pre.sourceCode{' + style + '}', j);
    }
  }
})();
</script>




<link rel="stylesheet" href="data:text/css,body%20%7B%0Afont%2Dfamily%3A%20%22%E6%B8%B8%E3%82%B4%E3%82%B7%E3%83%83%E3%82%AF%22%2C%20%22Yu%20Gothic%20UI%22%2C%20%22Meiryo%20UI%22%2C%20%22Hiragino%20Kaku%20Gothic%20ProN%22%2C%20%22sans%2Dserif%22%3B%0Afont%2Dsize%3A12pt%3B%0A%7D%0Ah1%2Ch2%2Ch3%2Ch4%2Ch5%2Ch6%20%7B%0Afont%2Dweight%3Abold%3B%09margin%3A%202em%200%200%2E3em%200%3B%0A%7D%0Ah1%20%7B%0Afont%2Dsize%3A%2020px%3B%0A%7D%0Ah2%20%7B%0Afont%2Dsize%3A%2020px%3B%0A%7D%0Ah3%20%7B%0Afont%2Dsize%3A%2018px%3B%0A%7D%0Ah4%20%7B%0Afont%2Dsize%3A%2016px%3B%0A%7D%0A%2Emath%20%7B%0Afont%2Dsize%3A%2012px%3B%0A%7D%0Att%2C%20code%2C%20pre%20%7B%0Afont%2Dfamily%3A%20%27DejaVu%20Sans%20Mono%27%2C%20%27Droid%20Sans%20Mono%27%2C%20%27Lucida%20Console%27%2C%20Consolas%2C%20Monaco%2C%20monospace%3B%0A%7D%0A%0Aspan%2Eco%20%7B%0Afont%2Dfamily%3A%20%22%E6%B8%B8%E3%82%B4%E3%82%B7%E3%83%83%E3%82%AF%22%2C%20%22Yu%20Gothic%20UI%22%2C%20%22Meiryo%20UI%22%2C%20%22Hiragino%20Kaku%20Gothic%20ProN%22%2C%20%22sans%2Dserif%22%3B%0Acolor%3A%20%230B6138%3B%0Afont%2Dstyle%3A%20normal%3B%0A%7D%0A%20blockquote%20%7B%0Afont%2Dsize%3A%2014px%3B%0A%7D%0A%0Aem%20%7B%0Afont%2Dstyle%3A%20normal%3B%0A%7D%0A%0A" type="text/css" />



<style type="text/css">
.main-container {
  max-width: 940px;
  margin-left: auto;
  margin-right: auto;
}
img {
  max-width:100%;
}
.tabbed-pane {
  padding-top: 12px;
}
.html-widget {
  margin-bottom: 20px;
}
button.code-folding-btn:focus {
  outline: none;
}
summary {
  display: list-item;
}
pre code {
  padding: 0;
}
</style>



<!-- tabsets -->

<style type="text/css">
.tabset-dropdown > .nav-tabs {
  display: inline-table;
  max-height: 500px;
  min-height: 44px;
  overflow-y: auto;
  border: 1px solid #ddd;
  border-radius: 4px;
}

.tabset-dropdown > .nav-tabs > li.active:before {
  content: "";
  font-family: 'Glyphicons Halflings';
  display: inline-block;
  padding: 10px;
  border-right: 1px solid #ddd;
}

.tabset-dropdown > .nav-tabs.nav-tabs-open > li.active:before {
  content: "";
  border: none;
}

.tabset-dropdown > .nav-tabs.nav-tabs-open:before {
  content: "";
  font-family: 'Glyphicons Halflings';
  display: inline-block;
  padding: 10px;
  border-right: 1px solid #ddd;
}

.tabset-dropdown > .nav-tabs > li.active {
  display: block;
}

.tabset-dropdown > .nav-tabs > li > a,
.tabset-dropdown > .nav-tabs > li > a:focus,
.tabset-dropdown > .nav-tabs > li > a:hover {
  border: none;
  display: inline-block;
  border-radius: 4px;
  background-color: transparent;
}

.tabset-dropdown > .nav-tabs.nav-tabs-open > li {
  display: block;
  float: none;
}

.tabset-dropdown > .nav-tabs > li {
  display: none;
}
</style>

<!-- code folding -->
<style type="text/css">
.code-folding-btn { margin-bottom: 4px; }
</style>



<style type="text/css">

#TOC {
  margin: 25px 0px 20px 0px;
}
@media (max-width: 768px) {
#TOC {
  position: relative;
  width: 100%;
}
}

@media print {
.toc-content {
  /* see https://github.com/w3c/csswg-drafts/issues/4434 */
  float: right;
}
}

.toc-content {
  padding-left: 30px;
  padding-right: 40px;
}

div.main-container {
  max-width: 1200px;
}

div.tocify {
  width: 20%;
  max-width: 260px;
  max-height: 85%;
}

@media (min-width: 768px) and (max-width: 991px) {
  div.tocify {
    width: 25%;
  }
}

@media (max-width: 767px) {
  div.tocify {
    width: 100%;
    max-width: none;
  }
}

.tocify ul, .tocify li {
  line-height: 20px;
}

.tocify-subheader .tocify-item {
  font-size: 0.90em;
}

.tocify .list-group-item {
  border-radius: 0px;
}


</style>



</head>

<body>


<div class="container-fluid main-container">


<!-- setup 3col/9col grid for toc_float and main content  -->
<div class="row">
<div class="col-xs-12 col-sm-4 col-md-3">
<div id="TOC" class="tocify">
</div>
</div>

<div class="toc-content col-xs-12 col-sm-8 col-md-9">




<div id="header">

<div class="btn-group pull-right float-right">
<button type="button" class="btn btn-default btn-xs btn-secondary btn-sm dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span>Code</span> <span class="caret"></span></button>
<ul class="dropdown-menu dropdown-menu-right" style="min-width: 50px;">
<li><a id="rmd-show-all-code" href="#">Show All Code</a></li>
<li><a id="rmd-hide-all-code" href="#">Hide All Code</a></li>
</ul>
</div>



<h1 class="title toc-ignore">COVID-19 employment shock and second-tier safetynet</h1>
<h4 class="author"></h4>
<h4 class="date">2022-01-14</h4>

</div>


<div id="rmd-settings" class="section level1" number="1">
<h1 number="1"><span class="header-section-number">1</span> Rmd Settings</h1>
</div>
<div id="contents" class="section level1" number="2">
<h1 number="2"><span class="header-section-number">2</span> Contents</h1>
<ul>
<li>covid_on_unemp_benefit_numberのOLSとWLS</li>
</ul>
</div>
<div id="read-functions関数の読み込み" class="section level1" number="3">
<h1 number="3"><span class="header-section-number">3</span> Read functions/関数の読み込み</h1>
<div class="sourceCode" id="cb1"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">source</span>(<span class="st">&quot;functions.R&quot;</span>)</span></code></pre></div>
</div>
<div id="read-data分析用データの読み込み" class="section level1" number="4">
<h1 number="4"><span class="header-section-number">4</span> Read data/分析用データの読み込み</h1>
<div class="sourceCode" id="cb2"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a>df_analysis <span class="ot">&lt;-</span> readr<span class="sc">::</span><span class="fu">read_csv</span>(<span class="st">&quot;output/df_analysis.csv&quot;</span>)</span></code></pre></div>
<pre><code>## Rows: 1551 Columns: 273</code></pre>
<pre><code>## ─ Column specification ────────────────────────────
## Delimiter: &quot;,&quot;
## chr    (4): prefec_kanji, prefecture, prefec, prefec_kanji2
## dbl  (268): id, month, year, suicide_total, suicide_male, suicide_female, su...
## date   (1): date</code></pre>
<pre><code>## 
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.</code></pre>
</div>
<div id="y-emergency-small-amount-funds緊急小口の決定件数" class="section level1" number="5">
<h1 number="5"><span class="header-section-number">5</span> Y = emergency small amount funds/緊急小口の決定件数</h1>
<div id="ols-no-trends" class="section level2" number="5.1">
<h2 number="5.1"><span class="header-section-number">5.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb6"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb6-1"><a href="#cb6-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb6-2"><a href="#cb6-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_OLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb6-3"><a href="#cb6-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb6-4"><a href="#cb6-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb6-5"><a href="#cb6-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb6-6"><a href="#cb6-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3,)</span></span>
<span id="cb6-7"><a href="#cb6-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb6-8"><a href="#cb6-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb6-9"><a href="#cb6-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb6-10"><a href="#cb6-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb6-11"><a href="#cb6-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_OLS&quot;</span>)</span>
<span id="cb6-12"><a href="#cb6-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb6-13"><a href="#cb6-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb6-14"><a href="#cb6-14" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_OLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb6-15"><a href="#cb6-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_OLS&quot;</span>)</span>
<span id="cb6-16"><a href="#cb6-16" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_OLS </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0JnK1j/QDw3+Xea71csnSJkHZSIaJQ/xb5SyiyhCRbJJR9yS5LFJVS0Z8kS0oitJAloVChcK3ZylL29d75v79zm3HOmffMnJlzZubMzPf5fMZ53+d53+d93u975lzzO88yoatIIREgQIAAAQIECBAgQIAAAQIECBAgQGAMCsw2Bu/JLREgQIAAAQIECBAgQIAAAQIECBAgQKAiIADqjUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgIADqPUCAAAECBAgQIECAAAECBAgQIECAwJgVEAAds4/WjREgQIAAAQIECBAgQIAAAQIECBAgMBEBgaESuOiii+Lxxx/vqX6VVVaJ17/+9T37Nsa+wC9+8Yv4z3/+03Oj7373u+N1r3tdz367NrzX2iU5+us5//zz46mnnuq5kdVXXz2WXnrpnn0bnSEwffr0yN/bK664Ih566KH417/+FY888khMnTo1llpqqZ6fFVdcMdZZZ52YffbZB93wm2++OW666aaa8z/5yU/GpEmTavKGeufOO++MCy+8MK666qqee37sscdi/vnnj0UWWaTy8+Y3v7lyv6uttlpMnOh/0Yb6maifAAECBAgQIEBg/AhM6CrS+LlddzqcAu94xztq/uj89re/Hdtvv/1wNsG1RljgrW99a9x66609rTjllFNi66237tlv14b3WrskR389+SVLBte60w9/+MPYfPPNu3e9jqDAjBkz4tRTT41jjjkmbr/99qZbsuSSS8YOO+wQn/3sZ2PhhRdu+rzuAw8//PDYf//9u3crr/nFTAYehyOdc845cdBBB9V8FvZ33QwEb7bZZnHwwQfHQgst1N/hygkQIECAAAECBAgQ6EfAEPh+gBQTIECAAAECrQlkz8fll18+tt122wEFP/Oq9913X+y7776xxBJLxBe/+MV4+eWXW2vMMJ2dgfg111wzNt544wEFP7N5GaD91re+FW94wxsqr8PUZJchQIAAAQIECBAgMGYFBEDH7KN1YwQIECBAYOQFDj300Fh33XXjb3/7W5+NmTx5cp/lL7zwQhx33HHxwQ9+MB599NE+jx3pwvvvvz/e//73V4b4t9KWf//737HTTjvFAQcc0Eo1ziVAgAABAgQIECAw7gVMMDXu3wIACBAgQIBA+wVeeumlyrD10047rVflEyZMiA984AOVwOj//M//xGte85rKkPRnn3027rrrrsrPJZdcEj/4wQ8i86rT5ZdfHiuttFL87Gc/i7e//e3VRR2x/fTTT8eHP/zh+Mc//tGrPWussUZssskmlfvNe542bVo8+eSTce+991Z+rr766shpG+p7uR522GHx6le/uhIM7VWpDAIECBAgQIAAAQIE+hUQAO2XyAEECHS6wI477hj//Oc/e5qZwRGJAIGRFdhjjz2iLPj5oQ99KI488sh45zvf2auBc889dyy33HKVn/XWWy+y92jOH53zeFYHQjNgmD0s//rXv8biiy/eq56RzPjOd77Ta8h7fiadeOKJseqqq/ZqWgY2c6h7ppzn9MADD4wvf/nLcfrpp9ccm8P/N9xww0rQtKbADgECBAgQIECAAAEC/QoIgPZL5AACBDpdYLvttuv0JmofgXElcN5558XXv/71mnvOldy/8pWvxJe+9KWa/L52Flxwwcr8nxk0/ehHPxoPP/xwz+E5PDwDhr/85S978kZ648UXX6wM069ux9JLL11Z8b7ZBZzy+AwcZ11nnXVWT1XdUwDkIlISAQIECBAgQIAAAQIDEzAH6MC8HE2AAAECBAj0IfDggw/GZz7zmZojcsj72WefPaDgZ3UF2YPyD3/4Q09Pye6yiy++OL773e92747463XXXRd5/9XppJNOGtTq9d///vfjjW98Y3VVkb1Lc2oBiQABAgQIECBAgACBgQkIgA7My9EECBAgQIBAHwLHH398PPHEEzVH7LfffpXh2zWZA9x57WtfG2eccUbMNlvt/7rk0PAHHnhggLUNzeF33HFHTcUTJ06M9773vTV5ze7MM888vQLJTz31VNx+++3NVuE4AgQIECBAgAABAgT+K2AIvLfCmBTIHjL5h+itt95aGTK50EILVRaQWHnllSP/qGxXevzxx+POO++sLNiRqxIvuuii8frXvz5WWGGFdl1ixOq577774p577qkszPHMM8/EMsssE8suu2wsueSSkX/UtyvdcsstlT/oH3rooZhzzjkr8/nlfHg5DHQ8pJzD8O67764EcNI15wPMhV2WWGKJUXn7uXjLn/70p8r75l//+lcsssgilXt5xzveUXm+fd1ULh7Tfe7zzz9f6e335je/ufJ71dd5AynL9/Lvf//7yFW6n3vuucp8ivk7m/NOtjNl/flsc27aDFq96lWvqjzbd73rXTHvvPO27VJp/Lvf/S4ee+yxns+e/LwbqZSBz+ylWJ3e+ta3xsEHH1ydNejt7Am68847xwknnNBTR/rmfJl77713T95IbdQvfLTAAgtEzms62JQr3u+11141p+dnZppKBAgQIECAAAECBAgMQKBLIjBEAkUQp6t4K/b8FAtZ9HulYmGLriJ42FUsatHzU6yU2/WjH/2o33OLgElXsbBG15ve9KauIpDUc93qNkyePLmrWHm4q1g9uN/6+jrgiiuu6Fp33XW7imGdpdcpAoVdX/3qV7uKYFClmuKP8577yXsr5sZrWH0RiKk59re//W3DY8sKXve619WcXwR7yg4rzSvm1OsqAgtd2YZqt+rtSZMmdW255ZZdxUrNpXVUZ77lLW+pqeeUU06pFBdz23Ude+yxXUXgqaa8+jqrrLJKVzG0tWvmzJnVVZZuF/MD1txzendCet/73tfTrnxPdKd8rxaLuvR5/8UCMV3FCthN3f9wvmeq7ymfb3cqgpddRS+/rmJV69JnWgTluvbZZ5+uIkDWfUrPa/7eF/O4dhWBwdJzi2B414UXXthzfF8b6Vz9PipW1K4cXgTYu7baaquu4guQmvLuY4sAf1ex4E5X8eVJX9X3WVYs0tN11FFHdb3tbW8rvUZeKz+D8v1azFvZZ13VhUXQtOd9lJ+P3Sk/7+aaa66aa+XvZ97n3//+9+7DhvU1f6+7TbtfTz755La2oQh4dhUB5ZrrpHmjVKygXnNstus///lPo8Nbyi+Cv72uVQTDB11nfv5tv/32XcW8qZV/3/IzcaSe7aBvwokECBAgQIAAAQIEOkAgOqANmjBGBQYaAC16HHZloKP7j+Z8zQBjsXJuv0Lnn39+Vwb+qs/tb/vd73531/Tp0/utu/qADPJk4LO/urvLM4iVgcIM/nbn5Wv+Qd4oFYt+1Bx70UUXNTq0NL/oRVlz/uWXX156XH3mOeec0zVlypSac6vbXL+dgZaddtqpK4OZjVJZAPTmm2/uKnr1NX2dD3/4w11FL7dGl6jkD/S91mdlbSysvv+iF1il5r/85S99BpjrnfN9WvQ07rNVw/meqb6nqVOnVtqVgfPVVlutqWeaz6pYyKbnfn7+8593Fb3kmjp300037flSoaeCuo2yAGgGT5u9RjFcuauYw7Gu1v53L7jggq78sqb++fW1n4HQaotGVyl6XffUW/SorRyWwdq+6v7GN77RqLohzS9WZq9pV75HMjDc7rT11lvXXCctip6RpZcZzgDob37zm17t+vSnP13aLpkECBAgQIAAAQIECAyfQO1EWsVfEBKBkRDI+duKnmWVocDd18953nIoZQ53bJRyuO0nPvGJ+NjHPlYZit7ouLL8a665JopehlH05iwr7pWXw93/53/+J37xi1/0KmuUccMNN1Tuq+jh1uiQEc8vehhF0TMvNtpoo8pQ3WYblNMMfPOb34yid1Kzp8Qf//jHWHPNNeNvf/tb0+dccskllbkDs52jPRUB98r7oQgCN30r+T79yEc+kl9WNX3OcB74yCOPVO4ph5U3k2666abYeOONK4f+9Kc/rfzu5mrezaQzzzyz1/Dq/s7rfv80e40rr7wycrh+8cVBf1X3lBdf0lTuI4e9DyRdeumlseqqq0bRo28gp8W1114bX/7ylxueU/QyjSJY3LB8qAryMyEXKqpOq6++ehS9VKuz2rK9/vrr96rnxz/+ca+84c5YY401ogiE11y26Mkde+65ZxSB4Jp8OwQIECBAgAABAgQIDJ+AAOjwWbtSA4Gc+zGDnzmXZneaffbZ49RTT41tt922O6v0tRg2Gz/5yU9qynK14c0337wSKMn5BDO4mkHLDBgUvURrjs158/73f/+334BcBp/WW2+9SuChuoKFF144DjjggCh6aVZW/r366qujGPoeOddod8rg51e+8pXu3Y57Pe6440rbt8kmm8T3vve9uPHGG6MYLlqZm7EY3ho5p111yudUDMWtzmq4/a1vfasyV2EekAHuojdt5TnnHIa//vWvK/P65XuhPl111VVR9Girzx5V+xmsz/vN91ymfJ9uuOGGcfTRR1feP7lC9g477FCZx7H+xjLg9atf/ao+e8T3X3jhhcoCLxnUzJRzHeY9ZKAyv1j4v//7v8jf0bzX6pRlxRQAscUWW/QEdnMezgzEZxCrGB5emfewbC7dAw88MJoNZuY1c27IbGemDAzusssucd5550V+7uQcnfkly1prrVUp7/5PzttZ9M6s+UzqLqt/zfqzzvoAfQboTjvttEib/PIk7zk/G4qesjVV5Dy7G2ywQdMre+f7KD8Xq69X9MauCTLm+6zoFVxzneHYyc/b+iBffsk0FCnnxqyfWzO/LBjplPP47rrrrr2accwxx1QCo7vttlvkvxPVz6/XwTIIECBAgAABAgQIEGi/wPB1NnWl8SbQzLDknJfvjW98Y82QwZy/swig9MtVBOdqzit+OyrzwvU1V2DOP/jxj3+813k5JLuvYZo5F2PWX/2T8/IVC16UtjOHhX/hC1+oOb763By+2igN53DmHJ6fQ7Or2zbffPN15XD4RqkI4HUVPeRqzsmpCopATq9TqodLV1+jWOSoqwg+9Tq+O+Okk06qqT/PLRY/6S7u9drMe63XScOQ0ej+s719zc362c9+ttf9f/SjH23Y4uF8zzS6pxwCXwQOS9tYfAHRVQS8e91TPtfM33333Ut//4ogUVcR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AAECBAgQIECgdQEB0NYN1UCAAAECBAgQIECAAAECBAgQIECAQIcKCIB26IPRLAIECBAgQIAAAQIECBAgQIAAAQIEWhcQAG3dUA0ECBAgQIAAAQIECBAgQIAAAQIECHSogABohz4YzSJAgAABAgQIECBAgAABAgQIECBAoHUBAdDWDdVAgAABAgQIECBAgAABAgQIECBAgECHCgiAduiD0SwCBAgQIECAAAECBAgQIECAAAECBFoXEABt3VANBAgQIECAAAECBAgQIECAAAECBAh0qIAAaIc+GM0iQIAAAQIECBAgQIAAAQIECBAgQKB1gYmtV6EGAhEzZsyIj3/84z0U06ZNi5NOOqln3wYBAgQIECBAgACB0Shw/vnnx8MPP9yr6SuttFKsuOKKvfJlECBAgAABAp0nIADaec9kVLZo5syZkf9z2J2WXXbZ7k2vBAgQIECAAAECBEatwJlnnhk33nhjr/bvsssuAqC9VGQQIECAAIHOFDAEvjOfi1YRIECAAAECBAgQIECAAAECBAgQINAGAQHQNiCqggABAgQIECBAgAABAgQIECBAgACBzhQQAO3M56JVBAgQIECAAAECBAgQIECAAAECBAi0QUAAtA2IqiBAgAABAgQIECBAgAABAgQIECBAoDMFBEA787loFQECBAgQIECAAAECBAgQIECAAAECbRAQAG0DoioIECBAgAABAgQIECBAgAABAgQIEOhMAQHQznwuWkWAAAECBAgQIECAAAECBAgQIECAQBsEBEDbgKgKAgQIECBAgAABAgQIECBAgAABAgQ6U0AAtDOfi1YRIECAAAECBAgQIECAAAECBAgQINAGAQHQNiCqggABAgQIECBAgAABAgQIECBAgACBzhQQAO3M56JVBAgQIECAAAECBAgQIECAAAECBAi0QUAAtA2IqiBAgAABAgQIECBAgAABAgQIECBAoDMFBEA787loFQECBAgQIECAAAECBAgQIECAAAECbRAQAG0DoioIECBAgAABAgQIECBAgAABAgQIEOhMAQHQznwuWkWAAAECBAgQIECAAAECBAgQIECAQBsEBEDbgKgKAgQIECBAgAABAgQIECBAgAABAgQ6U0AAtDOfi1YRIECAAAECBAgQIECAAAECBAgQINAGAQHQNiCqggABAgQIECBAgAABAgQIECBAgACBzhQQAO3M56JVBAgQIECAAAECBAgQIECAAAECBAi0QUAAtA2IqiBAgAABAgQIECBAgAABAgQIECBAoDMFJnZms7SKAAECBAgQIECAAAECIy+w0korxQILLNCrIUsvvXSvPBkECBAgQIBAZwpM6CpSZzZNq0aTwEsvvRSTJ0/uafKyyy4bd9xxR8++DQIECBAgQIAAAQIECBAgQIAAAQIjIWAI/EiouyYBAgQIECBAgAABAgQIECBAgAABAsMiIAA6LMwuQoAAAQIECBAgQIAAAQIECBAgQIDASAgIgI6EumsSIECAAAECBAgQIECAAAECBAgQIDAsAgKgw8LsIgQIECBAgAABAgQIECBAgAABAgQIjISAAOhIqLsmAQIECBAgQIAAAQIECBAgQIAAAQLDIjBxWK7iIgQIECBAgAABAgQIECBAgACBcSzw05/+NP785z83FHjLW94SG2+8ccNyBQQIDF5AAHTwds4kQIAAAQIECBAgQIAAAQIECDQlcN5558UPf/jDhsduuOGGAqANdRQQaE3AEPjW/JxNgAABAgQIECBAgAABAgQIECBAgEAHC+gB2sEPR9MIECBAgAABAgQIECBAgACBsSGw8847x7rrrlu5me233z6eeOKJmGuuueLUU0+t5L3mNa8ZGzfqLgh0oMCEriJ1YLs0aZQJvPTSSzF58uSeVi+77LJxxx139OzbIECAAAECBAgQIECAAAECBGYJTJs2LR5++OGYb775KoFQLgQIDK2AIfBD66t2AgQIECBAgAABAgQIECBAgAABAgRGUEAAdATxXZoAAQIECBAgQIAAAQIECBAgQIAAgaEVEAAdWl+1EyBAgAABAgQIECBAgAABAgQIECAwggICoCOI79IECBAgQIAAAQIECBAgQIAAAQIECAytgADo0PqqnQABAgQIECBAgAABAgQIECBAgACBERQQAB1BfJcmQIAAAQIECBAgQIAAAQIECBAgQGBoBQRAh9ZX7QQIECBAgAABAgQIECBAgAABAgQIjKCAAOgI4rs0AQIECBAgQIAAAQIECBAgQIAAAQJDKyAAOrS+aidAgAABAgQIECBAgAABAgQIECBAYAQFBEBHEN+lCRAgQIAAAQIECBAgQIAAAQIECBAYWgEB0KH1VTsBAgQIECBAgAABAgQIECBAgAABAiMoIAA6gvguTYAAAQIECBAgQIAAAQIECBAgQIDA0AoIgA6tr9oJECBAgAABAgQIECBAgAABAgQIEBhBgYkjeG2XJkCAAAECBAgQIECAQEcL/OUvf4mnnnqqVxuXXHLJWGKJJXrlyyBAgAABAgQ6T0AAtPOeiRYRIECAAAECBAgQINAhAkcccUTceOONvVqzyy67xE477dQrXwYBAgQIECDQeQKGwHfeM9EiAgQIECBAgAABAgQIECBAgAABAgTaJCAA2iZI1RAgQIAAAQIECBAgQIAAAQIECBAg0HkCAqCd90y0iAABAgQIECBAgAABAgQIECBAgACBNgkIgLYJUjUECBAgQIAAAQIECBAgQIAAAQIECHSegABo5z0TLSJAgAABAgQIECBAgAABAgQIECBAoE0CAqBtglQNAQIECBAgQIAAAQIECBAgQIAAAQKdJyAA2nnPRIsIECBAgAABAgQIECBAgAABAgQIEGiTgABomyBVQ4AAAQIECBAgQIAAAQIECBAgQIBA5wkIgHbeM9EiAgQIECBAgAABAgQIECBAgAABAgTaJCAA2iZI1RAgQIAAAQIECBAgQIAAAQIECBAg0HkCAqCd90y0iAABAgQIECBAgAABAgQIECBAgACBNgkIgLYJUjUECBAgQIAAAQIECBAgQIAAAQIECHSegABo5z0TLSJAgAABAgQIECBAgAABAgQIECBAoE0CAqBtglQNAQIECBAgQIAAAQIECBAgQIAAAQKdJyAA2nnPRIsIECBAgAABAgQIECBAgAABAgQIEGiTgABomyBVQ4AAAQIECBAgQIAAAQIECBAgQIBA5wkIgHbeM9EiAgQIECBAgAABAgQIECBAgAABAgTaJCAA2iZI1RAgQIAAAQIECBAgQIAAAQIECBAg0HkCAqCd90y0iAABAgQIECBAgAABAgQIECBAgACBNgkIgLYJUjUECBAgQIAAAQIECBAgQIAAAQIECHSegABo5z0TLSJAgAABAgQIECBAgAABAgQIECBAoE0CAqBtglQNAQIECBAgQIAAAQIECBAgQIAAAQKdJyAA2nnPRIsIECBAgAABAgQIECBAgAABAgQIEGiTwMQ21aMaAgQIECBAgAABAgQIjDmBN77xjTFhwoRe9zVt2rReeTIIECBAgACBzhQQAO3M56JVBAgQIECAAAECBAh0gMDBBx/cAa3QBAIECBAgQKAVAUPgW9FzLgECBAgQIECAAAECBAgQIECAAAECHS0gANrRj0fjCBAgQIAAAQIECBAgQIAAAQIECBBoRUAAtBU95xIgQIAAAQIECBAgQIAAAQIECBAg0NECAqAd/Xg0jgABAgQIECBAgAABAgQIECBAgACBVgQEQFvRcy4BAgQIECBAgAABAgQIECBAgAABAh0tIADa0Y9H4wgQIECAAAECBAgQIECAAAECBAgQaEVAALQVPecSIECAAAECBAgQIECAAAECBAgQINDRAgKgHf14NI4AAQIECBAgQIAAAQIECBAgQIAAgVYEJrZysnMJECBAgAABAgQIECBAgAABAu0QePnll+Oyyy7rs6qVV145pk6d2ucxCgkQIFAvIABaL2KfAAECBAgQIECAAAECBAgQGHaBp556Kj70oQ/1ed3f/e53scYaa/R5jEICBAjUCxgCXy9inwABAgQIECBAgAABAgQIECBAgACBMSOgB+iYeZRuhAABAgQIECBAgAABAgQIjF6BOeecM3beeefKDUyfPj0uvvjiyvZKK60Uq666amV78cUXH703qOUECIyYgADoiNG7MAECBAgQIECAAAECBAgQINAtMNdcc8WJJ55Y2T3nnHN6AqAf+chH4pBDDuk+zCsBAgQGLGAI/IDJnECAAAECBAgQIECAAAECBAgQIECAwGgREAAdLU9KOwkQIECAAAECBAgQIECAAAECBAgQGLCAAOiAyZxAgAABAgQIECBAgAABAgQIECBAgMBoERAAHS1PSjsJECBAgAABAgQIECBAgAABAgQIEBiwgADogMmcQIAAAQIECBAgQIAAAQIECBAgQIDAaBEQAB0tT0o7CRAgQIAAAQIECBAgQIAAAQIECBAYsIAA6IDJnECAAAECBAgQIECAAAECBAgQIECAwGgRmDhaGjoa2/nMM8/ETjvtFI8//ni8973vjT322KPf23jggQfi9NNPj9tuuy1ye5FFFonlllsull9++Xj/+98fc801V7915AHtqqepizmIAAECBAgQIECAAAECBAgQIECAQIcKCIAO4YM5/vjj484776xc4emnn+73SmeeeWZ85zvfiRkzZvQce++990b+XHjhhXHBBRfEMcccE1OmTOkpL9toVz1ldcsjQIAAAQIECBAgQIAAAQIECBAgMJoEDIEfoqf129/+Ni655JKma88A57e+9a1K8HPy5Mmx9tprx5e+9KXYcsst43Wve12lnltuuSV23nnnSo/SRhW3q55G9csnQIAAAQIECBAgQIAAAQIECBAgMJoE9AAdgqf1r3/9K4499tima/73v/8dxx13XOX4eeaZJ4488sh4xzve0XP+1ltvHYcddlj85je/ibvuuit+8IMfxO67795T3r3Rrnq66/NKgAABAgQIECBAYLwL3H333fHcc8/1Ylh44YUjfyQCBAgQIECg8wX0AG3zM+rq6oojjjginnrqqabn6zznnHPixRdfrLRkxx13rAl+ZubEiRPjwAMPjDe96U2VYy6++OJ49tlnK9vV/2lXPdV12iZAgAABAgQIECAwngX22Wef2GCDDXr9nH322eOZxb0TIECAAIFRJSAA2ubHddZZZ8Wf/vSnmDBhQnz+85/vqT33G6Uctp4pFzhaZ511Sg+bbbbZ4pOf/GSlLL+BziBofWpXPfX12idAgAABAgQIECBAgAABAgQIECAwWgUEQNv45KZPnx4nn3xypcbNNtssVlhhhX5rf+ihh3rm9Mxh75MmTWp4zoorrthTdumll/Zs50a76qmp1A4BAgQIECBAgAABAgQIECBAgACBUS4gANqmB5hD2A855JB46aWXYtlll41tttmmqZpzYaPulOf1lRZYYIF41ateVTkk5wKtTu2qp7pO2wQIECBAgAABAgQIECBAgAABAgRGu4AAaJue4Le//e3ICdKzB+cBBxzQZ0/O6kvef//9PbuLLbZYz3ajjUUXXbRSlMPgH3300Z7D2lVPT4U2CBAgQIAAAQIECBAgQIAAAQIECIwBAavAt+EhXn/99ZELEGXabrvtYplllmm61meeeabn2Ozh2V+aOnVqzyFPPvlkLLTQQpX9dtXTU3ndxgsvvBAbbbRRXW7t7mtf+9qYMWNGVAdja4+wR4AAAQIECBAgQIAAAQIECBAgQGB4BQRAW/TOIOThhx9eqSXn8OxeqKjZaqsDl3PMMUe/p1Uf8/zzz/cc3656eiqs28jA5m233VaXW7ubbcvjJAIECBAgQIAAAQIECBAgQIAAAQKdImAIfItP4uijj47HHnss5plnnthvv/0qq78PpMpnn3225/DJkyf3bDfaqD4me2V2p3bV012fVwIECBAgQIAAAQIECBAgQIAAAQJjQUAAtIWneNFFF8Xvfve7Sg277rprdM/POZAqJ058pRNuM70nq4+pDoa2q56BtN2xBAgQIECAAAECBAgQIECAAAECBDpd4JXoW6e3tMPa9+CDD8bXvva1SqvWWmutWHvttQfVwrnmmqvnvFxJvr9U3esze512p3bV011f/evcc88d1113XX12z/5LL700qABwTwU2CBAgQIAAAQIECBAgQIAAAQIECAyBgADoIFCzF+ahhx4auRL7fPPNFzvssEM89dRTvWqqnpczA4Tdx8w+++yRAcVM1UHM6uN7VfbfjOqh7tXnVm+3Uk+j62b+/PPP37A472/mzJkNyxUQIECAAAECBAgQIECAAAECBAgQGAkBAdBBqD/xxBNx8803V87MRZA22WSTfmu54oorIn8yvf3tb48TTzyxsr3YYotVXvM///rXv3q2G210H5NB1Ay+dqd21dNdn1cCBAgQIECAAAECBAgQIECAAAECY0HAHKAj/BSXWmqpnhY88MADPdtlGy+//HI8/PDDlaJlllkmqleEb1c9ZdeVR4AAAQIECBAgQIAAAQIECBAgQGC0CugBOognN+ecc8aWW27Z75nZU/T888+vHJcByjXWWKOyXd1bc9lll41JkyZFDiEeC67yAABAAElEQVS/6aab+qzz1ltvrRyXB73lLW+pObZd9dRUaocAAQIECBAgQIAAAQIECBAgQIDAKBcQAB3EA8z5O7fddtt+z7zvvvt6AqCve93rSs/JulZZZZW46qqr4u67747bb7893vCGN5TWfckll/Tkr7baaj3budGuemoqtUOAAAECBAgQIECAAAECBAgQIEBglAsYAt8BD3DdddftacUxxxzTs1hST2axcc0118SFF15YyVp66aXj3e9+d3VxZbtd9fSqWAYBAgQIECBAgAABAgQIECBAgACBUSogANoBD2711Vev9ALNpvz973+PXXbZJf70pz/FCy+8EI888kicc845sc8++0SuPj9hwoTKqvP5Wp/aVU99vfYJECBAgAABAgQIECBAgAABAgQIjFYBQ+A75MkdeOCBcdBBB8X1118f06dPj1133TVypfcMelannXfeOeqHv1eXt6ue6jptEyBAgAABAgQIECBAgAABAgQIEBitAnqAdsiTm2+++eLYY4+NLbbYIqZMmVJpVXXwM1d9P/roo2PjjTfus8XtqqfPiygkQIAAAQIECBAgQIAAAQIECBAgMEoE9AAdwge15JJLxpVXXtn0FWabbbbYbrvtKj8PPvhg3HHHHTHHHHPEEkssEdOmTYssbya1q55mruUYAgQIECBAgAABAgQIECBAgAABAp0sIADaoU9nscUWi/xpNbWrnlbb4XwCBAgQIECAAAECBAgQIECAAAECIyHQXJfCkWiZaxIgQIAAAQIECBAgQIAAAQIECBAgQKBFAQHQFgGdToAAAQIECBAgQIAAAQIECBAgQIBA5woIgHbus9EyAgQIECBAgAABAgQIECBAgAABAgRaFDAHaIuATidAgAABAgQIECBAYOwK5Jz6//nPf3rd4NSpU3vlySBAgAABAgQ6U0AAtDOfi1YRIECAAAECBAgQINABAscdd1wHtEITCBAgQIAAgVYEDIFvRc+5BAgQIECAAAECBAgQIECAAAECBAh0tIAAaEc/Ho0jQIAAAQIECBAgQIAAAQIECBAgQKAVAQHQVvScS4AAAQIECBAgQIAAAQIECBAgQIBARwsIgHb049E4AgQIECBAgAABAgQIECBAgAABAgRaERAAbUXPuQQIECBAgAABAgQIECBAgAABAgQIdLSAAGhHPx6NI0CAAAECBAgQIECAAAECBAgQIECgFQEB0Fb0nEuAAAECBAgQIECAAAECBAgQIECAQEcLCIB29OPROAIECBAgQIAAAQIECBAgQIAAAQIEWhEQAG1Fz7kECBAgQIAAAQIECBAgQIAAAQIECHS0gABoRz8ejSNAgAABAgQIECBAgAABAgQIECBAoBUBAdBW9JxLgAABAgQIECBAgAABAgQIECBAgEBHCwiAdvTj0TgCBAgQIECAAAECBAgQIECAAAECBFoREABtRc+5BAgQIECAAAECBAgQIECAAAECBAh0tIAAaEc/Ho0jQIAAAQIECBAgQIAAAQIECBAgQKAVAQHQVvScS4AAAQIECBAgQIAAAQIECBAgQIBARwsIgHb049E4AgQIECBAgAABAgQIECBAgAABAgRaERAAbUXPuQQIECBAgAABAgQIECBAgAABAgQIdLSAAGhHPx6NI0CAAAECBAgQIECAAAECBAgQIECgFQEB0Fb0nEuAAAECBAgQIECAAAECBAgQGOcCN9xwQ8w999x9/jz44IPjXMntj6TAxJG8uGsTIECAAAECBAgQIECAAAECBMaLQFdXxHXXRTz77Kw7fvHFiN//PmLVVSNmG8Vd1GbOnBnPPfdcn4+xK29eIjBCAqP412uExFyWAAECBAgQIECAAAECBAgQIDAAgSI+GN/7XsRrXzsr2Pnkk7NOfv75iNVXj1hiiYiTToqYMWMAlXbQoXPMMUcsueSSlZ/555+/p2ULLrhgT/7Eifrg9cDYGHYBAdBhJ3dBAgQIECBAgAABAgQIECBAYLwIPP10xPrrR2y7bcQ//lF+1zk6/HOfi1hnnYgnnig/ppNzl19++bj33nsrP3vvvXdPU4877rie/EUXXbQn3waB4RYQAB1ucdcjQIAAAQIECBAgQIAAAQIExoVA9vzcdNOICy5o7nYvvTTiE5+IePnl5o53FAECzQnof9yck6MIECBAgAABAgQIEBiHAo899li8mJP01aUpU6bEvPPOW5drlwABArUCJ58c8Ytf1Ob1t/frX0eccELE7rv3d6RyAgSaFRAAbVbKcQQIECBAgAABAgQIjDuBnXbaKW688cZe973LLrtElkkECBBoJJDzeR5ySKPSvvOPOCJi550jJk/u+zilBAg0J2AIfHNOjiJAgAABAgQIECBAgAABAgQINC2Qq7s/9FDTh9ccWHQ+j8suq8myQ4BACwICoC3gOZUAAQIECBAgQIAAAQIECBAgUCZQ0nm87LCGea2e37BiBQTGoYAA6Dh86G6ZAAECBAgQIECAAAECBAgQGFqBRx5prf5Wz2/t6s4mMLYEBEDH1vN0NwQIECBAgAABAgQIECBAgEAHCCy4YGuNaPX81q7ubAJjS0AAdGw9T3dDgAABAgQIECBAgAABAgQIdIDAcsu11ohWz2/t6s4mMLYEBEDH1vN0NwQIECBAgAABAgQIECBAgEAHCKy1VsQCCwyuIfPME/HBDw7uXGcRINBbQAC0t4kcAgQIECBAgAABAgQIECBAgEBLApMmRey11+CqeO1rI+aee3DnOosAgd4CAqC9TeQQIECAAAECBAgQIECAAAECBFoW2G23iPnnH3g1t94acdRRAz/PGQQIlAsIgJa7yCVAgAABAgQIECBAgAABAgQItCTwm99EPPHE4KrYb7+ISy8d3LnOIkCgVkAAtNbDHgECBAgQIECAAAECBAgQIECgZYGuroh99x18NTNmRGy2WcQ99wy+DmcSIDBLQADUO4EAAQIECBAgQIAAAQIECBAg0GaB006LuOmm8kpn+280ZvLkiKOPjphzzvLjHnssYoMNIp57rrxcLgECzQkIgDbn5CgCBAgQIECAAAECBAgQIECAQFMCL7wQcdBBjQ+dOnVWWQY+99gj4nvfa3xsBlG33bZxuRICBPoXEADt38gRBAgQIECAAAECBAgQIECAAIGmBU48sfHQ9Y02isien9Vp880jdt+9Oqd2+4wzIo4/vjbPHgECzQsIgDZv5UgCBAgQIECAAAECBAgQIECAQJ8CuejRkUeWHzJxYsRhh5WX5arva61VXpa5e+4ZcfnljcuVECDQWEAAtLGNEgIECBAgQIAAAQIECBAgQIDAgAQOPzzi8cfLT9l++4g3vKG8LIOjZ58dscQS5eUvvxyx8cYR//hHeblcAgQaCwiANrZRQoAAAQIECBAgQIAAAQIECBBoWuCBByK+8Y3yw+eZJ2L//cvLunMXXjjivPMaL4r0yCMRG24YkXOMSgQINC8gANq8lSMJECBAgAABAgQIECBAgAABAg0F9tuv8YrtOYT91a9ueGpPwUorRZx0Us9ur40//jFixx17ZcsgQKAPAQHQPnAUESBAgAABAgQIECBAgAABAgSaEbjllojTTy8/cpFF+l7kqP6sT386Yued63Nf2T/11MY9TV85yhYBAt0CAqDdEl4JECBAgAABAgQIECBAgAABAoMU2GOPiJkzy08++OCIeectL2uUe9xxEe95T6PSWQHVq69uXK6EAIFXBARAX7GwRYAAAQIECBAgQIAAAQIECBAYsMAVV0T88pflpy27bMQ225SX9ZU7aVLEOedELLZY+VEvvRTxiU9EPPhgeblcAgReERAAfcXCFgECBAgQIECAAAECBAgQIEBgwAI5v2ej9JWvRGQwczAp5wz9yU8iJk8uP/vhh2cFQV98sbxcLgECswQEQL0TCBAgQIAAAQIECBAgQIAAAQKDFDj77Ihrry0/eeWVIz7+8fKyZnNXXTXixBMbH33NNRGf/3zjciUECEQIgHoXECBAgAABAgQIECBAgAABAgQGIfDyyxH779/4xKOPblw2kJLttovIn0bp5JMj8kciQKBcYGJ5tlwCBAgQIECAAAECBAgQmDJlSkydOrUXxFxzzdUrTwYBAuNP4NvfjrjjjvL7/uhHI9Zaq7xsMLnZC/TPf27c23SXXSJWWCFilVUGU7tzCIxtAQHQsf183R0BAgQIECBAgAABAi0IfPe7323hbKcSIDCWBZ5+OuKww8rvcLZivO0RR5SXDTY35wHN+UBXXDHin//sXcsLL8wabv+nP0UsumjvcjkExrOAIfDj+em7dwIECBAgQIAAAQIECBAgQGBQAjm8vSwQmZVtvXXEcssNqto+T1p88Yhzz228qNIDD0RstFFErhAvESDwioAA6CsWtggQIECAAAECBAgQIECAAAEC/Qpk4PP448sPm3POiC9/ubysHbnveU/E177WuKYrr4zYbbfG5UoIjEcBAdDx+NTdMwECBAgQIECAAAECBAgQIDBogQxw5hD4srTrrhFLLFFW0r68z30uYqutGtf3zW9G/N//NS5XQmC8CQiAjrcn7n4JECBAgAABAgQIECBAgACBQQvkokff/3756QssELHXXuVl7c7NBZhyPtBGaYcdInI+UIkAgQgBUO8CAgQIECBAgAABAgQIECBAgECTAnvvHfHyy+UHH3BAxNSp5WXtzs2h9uedF7HwwuU1P/98xIYbRjz6aHm5XALjSUAAdDw9bfdKgAABAgQIECBAgAABAgQIDFrg2mtnBR3LKlhyyYgcmj6cKa951lkRs89eftX77ovYeOOIGTPKy+USGC8CAqDj5Um7TwIECBAgQIAAAQIECBAgQKAlgT33bHz6EUdEzDFH4/KhKnnf+yKOPbZx7ZddFrHHHo3LlRAYDwICoOPhKbtHAgQIECBAgAABAgQIECBAoCWBn/884ooryqtYYYWITTctLxuO3Fx4abPNGl8pV6w/88zG5UoIjHUBAdCx/oTdHwECBAgQIECAAAECBAgQINCSwMyZEfvu27iKY44pFlkZ4QjLd78bkYHYRumzn434858blconMLYFRvjXc2zjujsCBAgQIECAAAECBAgQIEBg9AucckrELbeU38f73x/xwQ+Wlw1n7txzR/z0pxELLlh+1Wefjdhgg4jHHy8vl0tgLAsIgI7lp+veCBAgQIAAAQIECBAgQIAAgZYEnnsu4uCDy6uYMCHi6KPLy0Yid+mlZw11b9Qb9e67Zw3Vzx6tEoHxJCAAOp6etnslQIAAAQIECBAgQIAAAQIEBiTwta9F3H9/+Sk57+eKK5aXjVTuhz4UceSRja9+6aV9D+dvfKYSAqNXQAB09D47LSdAgAABAgQIECBAgAABAgSGUCCHizfq4Tl5csShhw7hxVuoOler/8QnGldw1FER557buFwJgbEmIAA61p6o+yFAgAABAgQIECBAgAABAgTaIpABzv/8p7yqz30uYpllyss6IffUUyPe+tbGLdl668bzmjY+SwmB0SkgADo6n5tWEyBAgAABAgQIECBAgAABAkMocO+9ESedVH6B+eaL2G+/8rJOyZ133oif/Sxi6tTyFj399KxFkZ54orxcLoGxJCAAOpaepnshQIAAAQIECBAgQIAAAQIE2iKw774RL7xQXtXee0cstFB5WSflLrtsxBlnRDRaFOmOOyI23zyiq6uTWq0tBNovIADaflM1EiBAgAABAgQIECBAgAABAqNY4KabZq2mXnYL06ZFfOELZSWdmbfOOo1Xsc8WX3hhxIEHdmbbtYpAuwQEQNslqR4CBAgQIECAAAECBAgQIEBgTAjstVfjXpE5L+jcc4+u28zh+h/7WOM2H354xPnnNy5XQmC0CwiAjvYnqP0ECBAgQIAAAQIECBAgQIBA2wQuvTQif8rSm94U8elPl5V0dt6ECRGnnRaR7S9LOQR+yy0jbrutrFQegdEvIAA6+p+hOyBAgAABAgQIECBAgAABAgTaIJCBwH32aVzRUUdFzD574/JOLsmFm37604gpU8pb+eSTEeuvH/HUU+XlcgmMZgEB0NH89LSdAAECBAgQIECAAAECBAgQaJvAj34UccMN5dWtvnrEeuuVl42W3OwBevrpEdkjtCz9/e+zeoJaFKlMR95oFhAAHc1PT9sJECBAgAABAgQIECBAgACBtgi8+GLEAQc0rurooxuXjaaSnAt0//0bt/hnP4s47LDG5UoIjEYBAdDR+NS0mQABAgQIECBAgAABAgQIEGirwDe/GXH33eVVbrhhxGqrlZeNxtyDDorI1eEbpSy/6KJGpfIJjD4BAdDR98y0mAABAgQIECBAgACBYRJ4segS9txzz/X6efnll4epBS5DgMBwCOT8l0ccUX6lnPMzV0kfS2m2Ihp0xhkRyy5bflczZ0ZsvnnE9Onl5XIJjDaBiaOtwdpLgAABAgQIECBAgACB4RLYslgW+cYbb+x1uV122SV22mmnXvkyCBAYnQJHHhnx6KPlbd9228arp5efMTpyp06dtSjSqqtGPPNM7zb/5z8RG2wQ8Yc/RMwzT+9yOQRGk4AeoKPpaWkrAQIECBAgQIAAAQIECBAg0FaBBx+MOOGE8irnnjviwAPLy8ZC7nLLRZx6auM7ufnmiK23blyuhMBoERAAHS1PSjsJECBAgAABAgQIECBAgACBtgvkwkfPPlte7Re/GDFtWnnZWMndaKOIvfZqfDfnnBNx1FGNy5UQGA0CAqCj4SlpIwECBAgQIECAAAECBAgQINB2gb/9LeL//q+82oUXjthjj/KysZab859+8ION72q//SJ+9avG5UoIdLqAAGinPyHtI0CAAAECBAgQIECAAAECBIZEIHs+zphRXnUOfZ8ypbxsrOXmokg//nHE0kuX31kabbJJxD33lJfLJdDpAgKgnf6EtI8AAQIECBAgQIAAAQIECBBou8BVV0VccEF5tcssE7H99uVlYzV3wQVnLYqU856Wpccfn7Uo0nPPlZXKI9DZAgKgnf18tI4AAQIECBAgQIAAAQIECBAYAoE992xcaa4KP2lS4/KxWrLCChHf/W7ju7vppojPfrZxuRICnSogANqpT0a7CBAgQIAAAQIECBAgQIAAgSER+MlPIq65przqFVeMyIWBxmvabLOI3XdvfPc/+lHE8cc3LldCoBMFBEA78aloEwECBAgQIECAAAECBAgQIDAkAi+/HJGL+jRKRx8dMWFCo9LxkZ+rvr/vfY3vNXvPXn5543IlBDpNQAC0056I9hAgQIAAAQIECBAgQIAAAQJDJpBDvG+7rbz6ddaJeP/7y8vGU+7EiRFnnRWx5JLld51B5I03jvjHP8rL5RLoNAEB0E57ItpDgAABAgQIECBAgAABAgQIDInAM89EHHJIedW5EnrO/SnNElh44YjzzouYc85ykUceidhww4jnny8vl0ugkwQEQDvpaWgLAQIECBAgQIAAAQIECBAgMGQCX/1qxMMPl1e/xRYRb3tbedl4zc35UL/97cZ3/8c/Ruy4Y+NyJQQ6RUAAtFOehHYQIECAAAECBAgQIECAAAECQyaQPRaPPba8+jnmaNwztPyM8ZO71VYRO+/c+H5/8IOIb36zcbkSAp0gIADaCU9BGwgQIECAAAECBAgQIECAAIEhFTj44Iinniq/xC67NJ7vsvyM8ZV73HER73lP43vebbeIq65qXK6EwEgLCICO9BNwfQIECBAgQIAAAQIECBAgQGBIBe68M+Lkk8svMXVqxD77lJfJnSUwaVLEuedGLL54uchLL0VstFHEgw+Wl8slMNICxbpeEgECBAgQIECAAAECBAgQIEBg7ApkgDODdGVpv/0iFligrERetcCii84Kgq65ZsSLL1aXzNrOuVVXXz1i7rlfKfvWtyJmzIj4xCci5pvvlXxbBIZbQA/Q4RZ3PQIECBAgQIAAAQIECBAgQGDYBK6/flbgruyCSyzR9/yWZeeM57xVV434xjcaC9xzT8Stt75Sft11EdtsE/G610V873uv5NsiMNwCAqDDLe56BAgQIECAAAECBAgQIECAwLAJ7LVXRFdX+eUOOyxizjnLy+SWC2y7bcR225WXNcp99NGIPC/nWpUIjISAAOhIqLsmAQIECBAgQIAAAQIECBAgMOQCF14Ycdll5ZdZfvmIT32qvExu3wInnhiRvUEHmvK8448f6FmOJ9C6gABo64ZqIECAAAECBAgQIECAAAECBDpMYObMvhc3OuqoiNlERQb11CZPjjjyyEGdGvvvH/HQQ4M711kEBivgV32wcs4jQIAAAQIECBAgQIAAAQIEOlbgtNMi/vrX8uattVbERz5SXia3OYEzz2zuuPqjnn024jvfqc+1T2BoBQRAh9ZX7QQIECBAgAABAgQIECBAgMAwCzz/fMSBB5ZfdMKEiKOPLi+T27zAL37R/LH1R7Zybn1d9gk0IyAA2oySYwgQIECAAAECBAgQIECAAIFRI3DCCRH/+Ed5czfeOGLllcvL5DYnkAHmBx9s7tiyo+68syxXHoGhExAAHTpbNRMgQIAAAQIECBAgQIAAAQLDLPDvf0d85SvlF500KSJXfpdaE8hh7K2kVs9v5drOHZ8CAqDj87m7awIECBAgQIAAAQIEmhCYkGNlJQIERpXA4YdHZBC0LO2wQ8Syy5aVyBuIwAILRMwxx0DOqD122rTafXsEhlpg4lBfQP0ECBAgQIAAAQIECBAYrQJnDnaVj9F6w9pNYJQL3HdfxDe+UX4TU6ZEHHBAeZncgQnkd0Orrx7x298O7Lzuo9/znu4trwSGR0AP0OFxdhUCBAgQIECAAAECBAgQIEBgiAX23z/ihRfKL7LHHhELL1xeJnfgAp/61MDP6T5jk026t7wSGB4BPUCHx9lVCBAgQIAAAQIECBAgQIBAywK//OUv46KLLmpYz2te85rYa6+9GpaP5YK//CXijDPK7/DVr47YfffyMrmDE9hyy4ivfjXillsGfv6vfhWx7roDP88ZBAYrIAA6WDnnESBAgAABAgQIECBAgACBYRa49tpriyHeDcZ4F21ZYYUVxm0ANOO+M2eWP5CDDoqYZ57yMrmDE5h99oif/CRilVUinnhiYHWccELE294Wsc02AzvP0QQGK2AI/GDlnEeAAAECBAgQIECAAAECBAh0hMBll0VcfHF5U974RoG2cpnWc9P2qqsill564HXtuGPElVcO/DxnEBiMgB6gg1FzDgECBAgQIECAAAECBAgQGAGBLYtxx+/57woyu+66azH8eNb443PPPTfmn3/+mJIr/Yyz1NUVseeejW/6yCMjJop+NAZqsWS55SJuvjni61+P+P73I+68s7bC2Yqud2U9c196KWLDDSOuvz5iqaVqz7FHoN0CPgLaLao+AgQIECBAgAABAgQIECAwRALLLLNM5E+mqVOn9lxlzTXXjIUWWqhnfzxtnHVWxB//WH7H7353xAYblJfJbZ/A3HNH7LPPrJ+ciuDoo2fVffzxERkgXXvtiBkzel/v0UcjPvrRiGuuiZh33t7lcgi0S8AQ+HZJqocAAQIECBAgQIAAAQIECBAYVoHsRZgrvzdK3YG4RuXy2y+wwAKv1JnbH/jArN6hr+TWbmXv0c02K+8lWnukPQKDFxAAHbydMwkQIECAAAECBAgQIECAAIERFDjppN5Drrub87GPRTFdQPee15EU2GmniO23b9yCCy6Y1Xu08REjW/KBIoqb00s0+jnggANGtoGu3q+AIfD9EjmAAAECBAgQIECAAAECBAgQ6DSBp56KOOyw8lblCuVHHFFeJndkBE48MeK22yIuv7z8+tlbN4fLb7FFeflI5j777LPx9NNPN2zCCy+80LCs0wvuueeeuOKKKxo2c/bil2nzzTdvWD5aCgRAR8uT0k4CBAgQIECAAAECBAgQIECgRyADZo880rNbs7H11hFveUtNlp0RFpg0KaJYqyve9a6Iu+4qb8y220a8/vURq65aXj5SuQsvvHAsvvji0VWsuPXggw9WmjGpuKFFFlmksp0LkI3WdO2118ZWW23VsPmTJ08WAG2oo4AAAQIECBAgQIAAAQIECBAgMEQCDz0UkQvslKW55oo4+OCyEnkjLfCqV0XkcPdcnOrJJ3u3JjtS5qJV110XscQSvctHKuf888+vXPq5556LuXPFpyItV3RXveGGGyrb/tP5AnqAdv4z0kICBAgQIECAAAECBAgQIECg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KNSTTorIW/3rmNwCX8deU2cCBAgQIECAAAECBAgQIFBxgXa3v+ciKjvtVPHKq96oBO4slgb/zne+03vOBRdc0Hfu2WefHffdd1/v67e+9a2x0kor9e2r40brqMlllqljC5bW+ZhjIu6+O+LrX1+a124rR5B+61sR227b7ojq5wuAVr+P1JAAAQIECBAgQIAAgSkSOOSQQ+LPf/7zoKu/5S1viTe96U2D8mUQILBUYMGCpdutW3vs0VgUpjXPdr0F/vrXv8a///u/D2rEt7/97chHpn322af2AdBBDaxxRgZwc9Gml7wk4kMfirjjjvLGvPSljVvmn/e88v11ya3pwNW68KonAQIECBAgQIAAAQJ1Fri7GB5zR/GpcODjwXb39da5sepOoIMCF18cceut5QXWdRGV8tbIJVBvgWJgbtxwQ8T8+RGtQc63vz3isssifvGL/vl1ba0RoHXtOfUmQIAAAQIECBAgQIAAAQIVFTjzzPKKLbtsxG67le+TW1+B9dZbL0444YQhG7Bazn0gVVJg+eUbizjlz+3//m+jigccEPGCF1SyumOqlADomNicRIAAAQIECBAgQIAAAQIECLQTaDf/Z95O+7SntTtLfl0F1lprrXjHO95R1+qr9zQQcAv8NOhkTSRAgAABAgQIECBAgAABApMlUEwH2TeKbOA1rf4+UMRrAgQmQ0AAdDKUXYMAAQIECBAgQIAAAQIECEwTgTPOaN/QPfdsv88eAgQITJSAAOhEySqXAAECBAgQIECAAAECBAhMQ4F283++6EURxVSREgECBCZdQAB00sldkAABAgQIECBAgAABAgQIdKfA/fdH/PrX5W1z+3u5i1wCBCZeQAB04o1dgQABAgQIECBAgAABAgQITAuBBQsiHn+8vKkCoOUucgkQmHgBAdCJN3YFAgQIECBAgAABAgQIECAwLQTarf4+d25E3gIvESBAYCoEBECnQt01CRAgQIAAAQIECBAgQIBAlwk88UTEwoXljXr1qyNmzCjfJ5cAAQITLSAAOtHCyidAgAABAgQIECBAgAABAtNA4LzzIu69t7yhbn8vd5FLgMDkCAiATo6zqxAgQIAAAQIECBAgQIAAga4WaHf7+8orR+yyS1c3XeMIEKi4gABoxTtI9QgQIECAAAECBAgQIECAQB0Efvzj8lruvnvEcsuV75NLgACByRAQAJ0MZdcgQIAAAQIECBAgQIAAAQJdLPDHP0bccEN5A93+Xu4ilwCByRMQAJ08a1ciQIAAAQIECBAgQIAAAQJdKdDu9vdllonIEaASAQIEplJAAHQq9V2bAAECBAgQIECAAAECBAh0gUC7AOhOO0WssUYXNFATCBCotYAAaK27T+UJECBAgAABAgQIECBAgMDUCtx+e8Tvf19eh3nzyvPlEiBAYDIFBEAnU9u1CBAgQIAAAQIECBAgQIBAlwmceWZET095o/bcszxfLgECBCZTQAB0MrVdiwABAgQIECBAgAABAgQIdJlAu9vft9gi4jnP6bLGag4BArUUEACtZbepNAECBAgQIECAAAECBAgQmHqBhx+OOPfc8npY/b3cRS4BApMvIAA6+eauSIAAAQIECBAgQIAAAQIEukJg4cKIRx8tb4r5P8td5BIgMPkCAqCTb+6KBAgQIECAAAECBAgQIECgKwRy/s+ytNZaEdtsU7ZHHgECBCZfQAB08s1dkQABAgQIECBAgAABAgQI1F7gyScjfvrT8mbk7e8zRRzKceQSIDDpAt6OJp3cBQkQIECAAAECBAgQIECAQP0FLrggYtGi8naY/7PcRS4BAlMjMGtqLuuqBAgQIECAAAECBAgQqL7A8ccfX8xvOHiCw9VXX736lVdDAhMs0G719+WXj9h11wm+uOIJECAwCgEB0FFgOZQAAQIECBAgQIAAgeklMHfu3OnVYK0lMAqB+fPLD95tt4gVVyzfJ5cAAQJTIeAW+KlQd00CBAgQIECAAAECBAgQIFBjgauuirj66vIGuP293EUuAQJTJyAAOnX2rkyAAAECBAgQIECAAAECBGop0O729xkzIvbYo5ZNUmkCBLpYQAC0iztX0wgQIECAAAECBAgQIECAwEQItAuAbrddxDOeMRFXVCYBAgTGLiAAOnY7ZxIgQIAAAQIECBAgQIAAgWkncNddEb/9bXmz3f5e7iKXAIGpFRAAnVp/VydAgAABAgQIECBAgAABArUSyMWPliwpr7IAaLmLXAIEplZAAHRq/V2dAAECBAgQIECAAAECBAjUSqDd7e8bbhixxRa1aorKEiAwTQQEQKdJR2smAQIECBAgQIAAAQIECBAYr8DixRE/+1l5Ka9+dXm+XAIECEy1gADoVPeA6xMgQIAAAQIECBAgQIAAgZoIZPDzoYfKK+v293IXuQQITL2AAOjU94EaECBAgAABAgQIECBAgACBWgi0u/199dUjdtyxFk1QSQIEpqGAAOg07HRNJkCAAAECBAgQIECAAAECoxXo6YlYsKD8rD32iJg1q3yfXAIECEy1gADoVPeA6xMgQIAAAQIECBAgQIAAgRoIXHxxxG23lVd03rzyfLkECBCogoAAaBV6QR0IECBAgAABAgQIECBAgEDFBc48s7yCyy4bsdtu5fvkEiBAoAoCAqBV6AV1IECAAAECBAgQIECAAAECFRdoN//ny14WseqqFa+86hEgMK0FBECndfdrPAECBAgQIECAAAECBAgQGF7gxhsj/vzn8uOs/l7uIpcAgeoICIBWpy/UhAABAgQIECBAgAABAgQIVFKg3e3vWdk996xklVWKAAECfQICoH0UNggQIECAAAECBAgQIECAAIEygXYB0H/4h4hnP7vsDHkECBCojoAAaHX6Qk0IECBAgAABAgQIECBAgEDlBO67L+L888ur5fb3che5BAhUS2BWtaqjNgQIECBAgAABAgQIECBAgECVBBYsiHj88fIaCYCWu8jtLoEPfehDcfXVV8eSJUv6GnbDDTfEv/zLv/S+njdvXrzhDW/o22ejegICoNXrEzUiQIAAAQIECBAgQIAAAQKVEWi3+vuznhXxohdVppoqQmDCBH7xi1/EhRde2K/8e++9N04//fTevA022KDfPi+qJ+AW+Or1iRoRIECAAAECBAgQIECAAIFKCOTIz4ULy6tSDHqTCBAgUAsBI0Br0U0qSYAAAQIECBAgQIAAAQIEJl/gvPMicg7QsuT29zIVed0o8M1vfjMeeuihtk1ba6212u6zMfryYwAAQABJREFUoxoCAqDV6Ae1IECAAAECBAgQIECAAAEClRNod/v7KqtE7LJL5aqrQgQmRGDDDTeckHIVOnkCAqCTZ+1KBAgQIECAAAECBAgQIECgVgI//nF5dXffPWL27PJ9cgkQqI/AXXfdFVdddVVvhe+4446+iv/pT3/q3Z45c2bssMMOffl13RAArWvPqTcBAgQIECBAgAABAhMu8L73vS+uvPLKQdd5/etfH/vuu++gfBkEukngsssibryxvEVufy93kUugbgLnnHNO7L///oOqfcghh/TmzS6+6Vi8ePGg/XXLEACtW4+pLwECBAgQIECAAAECkyZwYxH9aY6M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5Udb/b3cRS4BAt0jIADaPX2pJQQIECBAgAABAgQIECBAoFRg4cKIxYtLd4X5P8td5BIg0D0CAqDd05daQoAAAQIECBAgQIAAAQIESgXazf/5jGdEbL116SkyCRAg0DUCAqBd05UaQoAAAQIECBAgQIAAAQIEBgssWRLx058Ozs+cXPxoxozyfXIJECDQLQICoN3Sk9pBgAABAgQIECBAgAABAgRKBM4/P+Luu0t2FFnm/yx3kUuAQHcJCIB2V39qDQECBAgQIECAAAECBAgQ6CfQbvX3FVeMePnL+x3qBQECBLpSQAC0K7tVowgQIECAAAECBAgQIECAQEOgXQB0t90iVliBEgECBLpfQAC0+/tYCwkQIECAAAECBAgQIEBgmgpccUXEddeVN97t7+UucgkQ6D6BWd3XJC0iQIAAAQIECBAgQIBAZwSOPvrouPbaawcV9prXvKaYO3HvQfkyCFRNoN3oz5nFcKg99qhabdWHAAECEyMgADoxrkolQIAAAQIECBAgQKALBP73f/83Lr300kEt2XrrrQflySBQRYF2AdDtt494+tOrWGN1IkCAQOcF3ALfeVMlEiBAgAABAgQIECBAgACBKRe4886Iiy4qr4YBzOUucgkQ6E4BAdDu7FetIkCAAAECBAgQIECAAIFpLjB/fsSTT5YjCICWu8glQKA7BdwC3539Grfeemt84xvfiKuvvrp3++nFvQ1bbrllPO95z4uXvexlxUp/lvrr0q7XLAIECBAgQIAAAQIECPQKtLv9/TnPidhsM0gECBCYPgICoF3Y16eddlp85StfiSVLlvS17qabbop8LFiwIOYXXwMee+yxscoqq/Ttt0GAAAECBAgQIECAAAEC3SPwyCMRP/95eXvmzSvPl0uAAIFuFRAA7bKezQDnCSec0Nuq2bNn9472zJGfdxaTv1xwwQVx/fXXx+WXXx6HHnpofPazn405c+Z0jUDGe3/3u4i//CUif9nPnRuxww4Rq63WHU38058iLrkkir5stGmLLSJ23DFimWW6o33d2Iqenii+dIj44Q8jivUT4u67I9ZcM+KFL4x47WsjdtutG1utTXUReOCBxnvm7bdHrLRSxMYbR3GXQF1qP3Q977gjYuHCKH7nNX4frLNOxM47R7z4xREzZgx9bl325u+8fE952tMilluuLrUeWT1vuCGKL22j+CI3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QIAAga4T+OAHI+bOHV2zZsyI+OxnI2bNGt15jiZAgEA3CgiAdmOvahMBAgQIECBAgAABAgQIdI3AnDkRZ5wRseqqI2/SJz8ZsfvuIz/ekQQIEOhmAQHQbu5dbSNAgAABAgQIECBAgACBrhDIuUAvvDDiec8bujk5X+ipp0a8971DH2cvAQIEppOAAOh06m1tJUCAAAECBAgQIECAAIHaCmyxRcRll0V861sRe+8dkfODNtM//EPEJz4Rcf31EQcc0Mz1TIAAAQIpMKOnSCgIjFfg8ccfj9mzZ/cVs/HGG8e1117b99oGAQIECBAgQIAAAQIECHRWYKeddooLLrigt9BFixbFmmuu2dkLKI0AAQJdImAEaJd0pGYQIECAAAECBAgQIECAAAECBAgQIDBYQAB0sIkcAgQIECBAgAABAgQIECBAgAABAgS6REAAtEs6UjMIECBAgAABAgQIECBAgAABAgQIEBgsIAA62EQOAQIECBAgQIAAAQIECBAgQIAAAQJdIjCrS9qhGQQIECBAgAABAgQIEOi4wOc///m44YYbBpW7++67x2677TYoXwYBAgQIECBQPQEB0Or1iRoRIECAAAECBAgQIFARgd/85jdx6aWXDqrNxhtvLAA6SEUGAQIECBCopoBb4KvZL2pFgAABAgQIECBAgAABAgQIECBAgEAHBARAO4CoCAIECBAgQIAAAQIECBAgQIAAAQIEqikgAFrNflErAgQIECBAgAABAgQIECBAgAABAgQ6ICAA2gFERRAgQIAAAQIECBAgQIAAAQIECBAgUE0BAdBq9otaESBAgAABAgQIECBAgAABAgQIECDQAQEB0A4gKoIAAQIECBAgQIAAAQIECBAgQIAAgWoKCIBWs1/UigABAgQIECBAgAABAgQIECBAgACBDggIgHYAUREECBAgQIAAAQIECBAgQIAAAQIECFRTQAC0mv2iVgQIECBAgAABAgQIECBAgAABAgQIdEBAALQDiIogQIAAAQIECBAgQIAAAQIECBAgQKCaAgKg1ewXtSJAgAABAgQIECBAgAABAgQIECBAoAMCAqAdQFQEAQIECBAgQIAAAQIECBAgQIAAAQLVFBAArWa/qBUBAgQIECBAgAABAgQIECBAgAABAh0QEADtAKIiCBAgQIAAAQIECBAgQIAAAQIECBCopoAAaDX7Ra0IECBAgAABAgQIECBAgAABAgQIEOiAgABoBxAVQYAAAQIECBAgQIAAAQIECBAgQIBANQUEQKvZL2pFgAABAgQIECBAgAABAgQIECBAgEAHBARAO4CoCAIECBAgQIAAAQIECBAgQIAAAQIEqikgAFrNflErAgQIECBAgAABAgQIECBAgAABAgQ6ICAA2gFERRAgQIAAAQIECBAgQIAAAQIECBAgUE0BAdBq9otaESBAgAABAgQIECBAgAABAgQIECDQAQEB0A4gKoIAAQIECBAgQIAAAQIECBAgQIAAgWoKCIBWs1/UigABAgQIECBAgAABAgQIECBAgACBDgjM6kAZiiBAgAABAgQIECBAgEBXChx88MFx1113DWrbc5/73EF5MggQIECAAIFqCgiAVrNf1IoAAQIECBAgQIAAgQoI7LLLLhWohSoQIECAAAEC4xFwC/x49JxLgAABAgQIECBAgAABAgQIECBAgEClBQRAK909KkeAAAECBAgQIECAAAECBAgQIECAwHgEBEDHo+dcAgQIECBAgAABAgQIECBAgAABAgQqLSAAWunuUTkCBAgQIECAAAECBAgQIECAAAECBMYjIAA6Hj3nEiBAgAABAgQIECBAgAABAgQIECBQaQEB0Ep3j8oRIECAAAECBAgQIECAAAECBAgQIDAeAQHQ8eg5lwABAgQIECBAgAABAgQIECBAgACBSgsIgFa6e1SOAAECBAgQIECAAAECBAgQIECAAIHxCAiAjkfPuQQIECBAgAABAgQIECBAgAABAgQIVFpAALTS3aNyBAgQIECAAAECBAgQIECAAAECBAiMR0AAdDx6ziVAgAABAgQIECBAgAABAgQIECBAoNICAqCV7h6VI0CAAAECBAgQIECAAAECBAgQIEBgPAICoOPRcy4BAgQIECBAgAABAgQIECBAgAABApUWEACtdPeoHAECBAgQIECAAAECBAgQIECAAAEC4xEQAB2PnnMJECBAgAABAgQIECBAgAABAgQIEKi0gABopbtH5QgQIECAAAECBAgQIECAAAECBAgQGI+AAOh49JxLgAABAgQIECBAgAABAgQIECBAgEClBQRAK909KkeAAAECBAgQIECAAAECBAgQIECAwHgEBEDHo+dcAgQIECBAgAABAgQIECBAgAABAgQqLSAAWunuUTkCBAgQIECAAAECBAgQIECAAAECBMYjIAA6Hj3nEiBAgAABAgQIECBAgAABAgQIECBQaQEB0Ep3j8oRIECAAAECBAgQIECAAAECBAgQIDAeAQHQ8eg5lwABAgQIECBAgAABAgQIECBAgACBSgvMqnTtVI4AAQIECBAgQIAAAQJTKHDyySfHzTffPKgGu+yyS+y8886D8mUQIECAAAEC1RMQAK1en6gRAQIECBAgQIAAAQIVETjrrLPi0ksvHVSbNdZYQwB0kIoMAgQIECBQTQG3wFezX9SKAAECBAgQIECAAAECBAgQIECAAIEOCAiAdgBREQQIECBAgAABAgQIECBAgAABAgQIVFNAALSa/aJWBAgQIECAAAECBAgQIECAAAECBAh0QEAAtAOIiiBAgAABAgQIECBAgAABAgQIECBAoJoCAqDV7Be1IkCAAAECBAgQIECAAAECBAgQIECgAwICoB1AVAQBAgQIECBAgAABAgQIECBAgAABAtUUEACtZr+oFQECBAgQIECAAAECBAgQIECAAAECHRAQAO0AoiIIECBAgAABAgQIECBAgAABAgQIEKimgABoNftFrQgQIECAAAECBAgQIECAAAECBAgQ6ICAAGgHEBVBgAABAgQIECBAgAABAgQIECBAgEA1BQRAq9kvakWAAAECBAgQIECAAAECBAgQIECAQAcEBEA7gKgIAgQIECBAgAABAgQIECBAgAABAgSqKSAAWs1+USsCBAgQIECAAAECBAgQIECAAAECBDogIADaAURFECBAgAABAgQIECBAgAABAgQIECBQTQEB0Gr2i1oRIECAAAECBAgQIECAAAECBAgQINABAQHQDiAqggABAgQIECBAgAABAgQIECBAgACBagoIgFazX9SKAAECBAgQIECAAAECBAgQIECAAIEOCAiAdgBREQQIECBAgAABAgQIECBAgAABAgQIVFNAALSa/aJWBAgQIECAAAECBAgQIECAAAECBAh0QEAAtAOIiiBAgAABAgQIECBAgAABAgQIECBAoJoCAqDV7Be1IkCAAAECBAgQIECAAAECBAgQIECgAwICoB1AVAQBAgQIECBAgAABAgQIECBAgAABAtUUEACtZr+oFQECBAgQIECAAAECBAgQIECAAAECHRCY1YEyFEGAAAECBAgQIECAAIGuFHj9618fu+6666C2bbXVVoPyZBAgQIAAAQLVFBAArWa/qBUBAgQIECBAgAABAhUQ2GuvvSpQC1UgQIAAAQIExiPgFvjx6DmXAAECBAgQIECAAAECBAgQIECAAIFKCwiAVrp7VI4AAQIECBAgQIAAAQIECBAgQIAAgfEICICOR8+5BAgQIECAAAECBAgQIECAAAECBAhUWkAAtNLdo3IECBAgQIAAAQIECBAgQIAAAQIECIxHQAB0PHrOJUCAAAECBAgQIECAAAECBAgQIECg0gICoJXuHpUjQIAAAQIECBAgQIAAAQIECBAgQGA8AgKg49FzLgECBAgQIECAAAECBAgQIECAAAEClRYQAK1096gcAQIECBAgQIAAAQIECBAgQIAAAQLjERAAHY+ecwkQIECAAAECBAgQIECAAAECBAgQqLSAAGilu0flCBAgQIAAAQIECBAgQIAAAQIECBAYj4AA6Hj0nEuAAAECBAgQIECAAAECBAgQIECAQKUFBEAr3T0qR4AAAQIECBAgQIAAAQIECBAgQIDAeAQEQMej51wCBAgQIECAAAECBAgQIECAAAECBCotIABa6e5ROQIECBAgQIAAAQIECBAgQIAAAQIExiMgADoePecSIECAAAECBAgQIECAAAECBAgQIFBpAQHQSnePyhEgQIAAAQIECBAgQIAAAQIECBAgMB4BAdDx6DmXAAECBAgQIECAAAECBAgQIECAAIFKCwiAVrp7VI4AAQIECBAgQIAAAQIECBAgQIAAgfEICICOR8+5BAgQIECAAAECBAgQIECAAAECBAhUWkAAtNLdo3IECBAgQIAAAQIECBAgQIAAAQIECIxHQAB0PHrOJUCAAAECBAgQIECAAAECBAgQIECg0gICoJXuHpUjQIAAAQIECBAgQIAAAQIECBAgQGA8AgKg49FzLgECBAgQIECAAAECBAgQIECAAAEClRaYVenaqRwBAgQIECBAgAABAgSmUOD000+P22+/fVANtttuu9h6660H5csgQIAAAQIEqicgAFq9PlEjAgQIECBAgAABAgQqIpAB0EsvvXRQbWbOnCkAOkhFBgECBAgQqKaAW+Cr2S9qRYAAAQIECBAgQIAAAQIECBAgQIBABwQEQDuAqAgCBAgQIECAAAECBAgQIECAAAECBKopIABazX5RKwIECBAgQIAAAQIECBAgQIAAAQIEOiAgANoBREUQIECAAAECBAgQIECAAAECBAgQIFBNAQHQavaLWhEgQIAAAQIECBAgQIAAAQIECBAg0AEBAdAOICqCAAECBAgQIECAAAECBAgQIECAAIFqCsyqZrXqV6v77rsvvvvd78bVV18dt9xyS9x1110xd+7cWHfddeMFL3hBvOY1r4lll1122Ibdeuut8Y1vfKO3nNx++tOfHltuuWU873nPi5e97GWxwgorDFtGHtCpckZ0MQcRIECAAAECBAgQIECAAAECBAgQqKiAAGgHOub73/9+fO1rX4sHH3ywX2k33nhj5OPXv/51nHnmmXHkkUfGi170on7HtL447bTT4itf+UosWbKkL/umm26KfCxYsCDmz58fxx57bKyyyip9+8s2OlVOWdnyCBAgQIAAAQIECBAgQIAAAQIECNRJQAB0nL119tlnx+c///m+UrbddtveEZ9rrrlm70jQX/3qV71B0JtvvjmOOOKIOOmkk2KDDTboO765kQHOE044offl7Nmze0d75sjPO++8My644IK4/vrr4/LLL49DDz00PvvZz8acOXOap/Z77lQ5/Qr1ggABAgQIECBAgAABAgQIECBAgEBNBQRAx9Fxt912Wxx33HG9JSyzzDLxsY99LHbeeed+JR544IHxxS9+MX7wgx/EY4891nvMiSeeGLNmLaW/55574vjjj+89b6WVVopPfvKT/UaKZhkf//jH45xzzom//OUvccopp8Thhx/e7zr5olPlDCpYBgECBAgQIECAAAECBAgQIECAAIGaClgEaRwdlwHJRx55pLeE173udYOCn7kjA53vfOc7Y7PNNus97rrrruud37P3xVP/5C30GRzN9I53vKNf8DPzsoyjjjqqr4yFCxfGww8/nLv6pU6V069QLwgQIECAAAECBAgQIECAAAECBAjUWEAAdBydd9lll/Wdvffee/dtD9zI0aG77LJLX/Y111zTt50bedt6plzg6FWvelXv9sB/Zs6cGfvtt19vdgZdMwg6MHWqnIHlek2AAAECBAgQIECAAAECBAgQIECgrgICoOPouZyHc4sttuhd6X3ttdcesqQ11lijb/+iRYv6tm+//fb4+9//3vs6F0gaaqX4rbbaqu+8nHu0NXWqnNYybRMgQIAAAQIECBAgQIAAAQIECBCou8DSiSjr3pIpqP8HP/jBEV81b31vpo022qi52buwUfPFxhtv3NwsfV599dUjA6l3331371ygrQflAknNNJ5ymmV4JkCAAAECBAgQIECAAAECBAgQINANAkaATkIv5nydrSM2N998876r3nLLLX3bc+fO7dtut9EcaZq3wd911119h3WqnL4CbRAgQIAAAQIECBAgQIAAAQIECBDoAgEjQCehE3PV9lyhPdM222wTrYHOhx56qK8GOcJzuLTaaqv1HXL//ffHmmuu2fu6U+X0FT5gY/HixfHGN75xQO7Slz09Pb1TATz55JNx6623Lt1hiwABAgQIECBAgAABAgQIECBAgMAUCgiATjD+T37ykzjttNN6r7LiiivGe97znn5XbA1cLrfccv32lb1oPebRRx/tO6RT5fQVOGBjyZIl0bro04DdvS9zEac8TiJAgAABAgQIECBAgAABAgQIECBQFQG3wE9gT1xwwQVxzDHH9F3hsMMOi+Yt7M3MvD2+mWbPnt3cbPvcekyOymymTpXTLM8zAQIECBAgQIAAAQIECBAgQIAAgW4QMAJ0gnoxR35m8LM5IvJNb3pT7LHHHoOuNmvW0i5oHjvooJaM1mNag6GdKqflUjYJECBAgAABAgQIECBAgAABAgQI1F5gafSt9k0ZfwPOOeecOOuss4Ys6IgjjoinP/3pQx7zta99LU4++eS+Yw488MB4y1ve0ve6dSNvG2+mxx57rLnZ9rl11OdKK63Ud1ynyukrcMBGlv+rX/1qQO7Sl0888USst956SzNsESBAgAABAgQIECBAgAABAgQIEKiAgABoSyfkSuoXXnhhS87gzdZ5NwfuzSDgscceGzn6M9PMmTPj8MMPj3nz5g08tO91axCzdR7PvgMGbLTe6t56buv2eMoZcLm+lzNmzBh0+37fzmLj8ccf7xvt2ppvmwABAgQIECBAgAABAgQIECBAgMBUCgiAdkg/g44f+tCH4pJLLuktcfnll4+PfvSjseOOOw55hdYV4e+8884hj82dzWOWWWaZWHXVVfuO71Q5fQXaIECAAAECBAgQIECAAAECBAgQINAFAgKgLZ24zz77xD/90z+15AzeXHPNNQdl3nvvvfGud70rrr/++t59a6yxRnz605+OTTfddNCxAzPWX3/9vqxbb721b7tsI0eY3nHHHb27Ntxww2hdEb5T5ZRdVx4BAgQIECBAgAABAgQIECBAgACBugoIgLb03Morrxz5GE164IEHem9zbwY/N9hgg97b4Aeu9t6uzI033jiWXXbZ3lvIL7vssnaH9eZfccUVvcfliy222KLfsZ0qp1+hXhAgQIAAAQIECBCY5gJ77713bLXVVoMUXvSiFw3Kk0GAAAECBAhUU0AAdJz98pnPfCauvfba3lI222yzyNett6YPV/yKK64Y2267bZx//vlxww03xDXXXBObbLJJ6WmtCzTtsMMO/Y7pVDn9CvWCAAECBAgQIECAwDQXeN3rXjfNBTSfAAECBAjUX2Bm/ZswdS3I+T5z5fhMedv7pz71qVEFP5s133PPPZubvaNHc1TpwJSLMy1YsKA3O0eZbr/99gMPiU6VM6hgGQQIECBAgAABAgQIECBAgAABAgRqKmAE6Bg7Llc9P/744/vOzhGYOe/nSNI222wTr33ta/sOzYWSchToRRddFFdddVUcdthhceihh8aWW24Z999/f5x33nnxpS99qXeV9VyN/eCDD458Hpg6Vc7Acr0mQIAAAQIECBAgQIAAAQIECBAgUFeBGT1Fqmvlp7LeGaw84ogjxlSFPfbYI973vvf1OzcDnblq/MUXX9yXnyu9L1mypO91brzzne+Mfffdt19e64tOldNa5ki2MyA8e/bsvkNzTtLm1AB9mTYIECBAgAABAgQIECBAoGMCO+20U1xwwQW95S1atCjKFu3t2MUURIAAgRoLuAV+jJ2X83V2MuW8occdd1wccMABscoqq/QW3Rr8zFXfjznmmCGDn3lSp8rpZNuURYAAAQIECBAgQIAAAQIECBAgQGCqBIwAnSr5Ya5722239Y6gXG655WLdddeNddZZJ2bOHH28ulPlDFPd3tXpjQAdTsl+AgQIECBAgAABAgQIdE7ACNDOWSqJAIHuFjAHaEX7d+7cuZGP8aZOlTPeejifAAECBAgQIECAAAECBAgQIECAwFQIjH5I4VTU0jUJECBAgAABAgQIECBAgAABAgQIECAwBgEB0DGgOYUAAQIECBAgQIAAAQIECBAgQIAAgXoICIDWo5/UkgABAgQIECBAgAABAgQIECBAgACBMQgIgI4BzSkECBAgQIAAAQIECBAgQIAAAQIECNRDQAC0Hv2klgQIECBAgAABAtL5Lg4AAEAASURBVAQIECBAgAABAgQIjEFAAHQMaE4hQIAAAQIECBAgQIAAAQIECBAgQKAeAgKg9egntSRAgAABAgQIECBAgAABAgQIECBAYAwCAqBjQHMKAQIECBAgQIAAAQIECBAgQIAAAQL1EBAArUc/qSUBAgQIECBAgAABAgQIECBAgAABAmMQEAAdA5pTCBAgQIAAAQIECBAgQIAAAQIECBCoh4AAaD36SS0JECBAgAABAgQIECBAgAABAgQIEBiDgADoGNCcQoAAAQIECBAgQIAAAQIECBAgQIBAPQQEQOvRT2pJgAABAgQIECBAgAABAgQIECBAgMAYBARAx4DmFAIECBAgQIAAAQIECBAgQIAAAQIE6iEgAFqPflJLAgQIECBAgAABAgQIECBAgAABAgTGICAAOgY0pxAgQIAAAQIECBAgQIAAAQIECBAgUA8BAdB69JNaEiBAgAABAgQIECBAgAABAgQIECAwBoFZYzjHKQQIECBAgAABAgQIEJgWAmeddVYsWrRoUFuf//znRz4kAgQIECBAoPoCAqDV7yM1JECAAAECBAgQIEBgigROPvnkuPTSSwdd/bDDDhMAHaQigwABAgQIVFPALfDV7Be1IkCAAAECBAgQIECAAAECBAgQIECgAwICoB1AVAQBAgQIECBAgAABAgQIECBAgAABAtUUEACtZr+oFQECBAgQIECAAAECBAgQIECAAAECHRAQAO0AoiIIECBAgAABAgQIECBAgAABAgQIEKimgABoNftFrQgQIECAAAECBAgQIECAAAECBAgQ6ICAAGgHEBVBgAABAgQIECBAgAABAgQIECBAgEA1BQRAq9kvakWAAAECBAgQIECAAAECBAgQIECAQAcEBEA7gKgIAgQIECBAgAABAgQIECBAgAABAgSqKSAAWs1+USsCBAgQIECAAAECBAgQIECAAAECBDogIADaAURFECBAgAABAgQIECBAgAABAgQIECBQTQEB0Gr2i1oRIECAAAECBAgQIECAAAECBAgQINABAQHQDiAqggABAgQIECBAgAABAgQIECBAgACBagoIgFazX9SKAAECBAgQIECAAAECBAgQIECAAIEOCAiAdgBREQQIECBAgAABAgQIECBAgAABAgQIVFNAALSa/aJWBAgQIECAAAECBAgQIECAAAECBAh0QEAAtAOIiiBAgAABAgQIECBAgAABAgQIECBAoJoCAqDV7Be1IkDg/7d3HvBWFOf/Hqp0QaWIqIAoTVGiYhTzU1BMNMbEgkRj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s27dOtOgQQNz/fXXm27dukW5W7RoYVTvHXLIIeYXv/iF0fylCxcuNOecc451+m611VZRXh830B26wy4rT4A6hfag8lZXul/EAVo6llypjAS0MtnSpUvL8gtffvllWa5bm4tKNnWoQ0why4Zdptdi0R26y0aA9iAbldLtC/m+C1k2WUDIbflHH30UGfkZZ5wRbVffOProo40cgpdddpnRSu+KCtUq6IoY9TlpMSelgw8+uIrz0+78379tttnG3Hbbbeb88883U6dONfPmzbORoopik6PX14TujEF3/lkndold+meVG0sUcnsQlzkO0LikyJcogeOOO84O09H8RM5RqJU4W7ZsWXS5mjVrVvQ1ir2AOp1XXXWV0dAjl9TJ1vCktKeQZcMu02ud6A7dZSNAe5CNSun2hXzfhSybLCDktlyLACmpT1lo2PeAAQNs3+yiiy6y/VGtXiwHlFaJ9zU5+bp37563iM2bNzcjR440Z599tpk+fbrRSvGKhr366qtt9GjekxM66GRDd+guIRPM+rPY5UYs1ClZzSPRnc42Q2wP4oLFARqXFPkSJSBnpyae17AdOQo1lEcTuN91112245lo4Urw47vttpu58847zbnnnmveeuste8Vvf/vbdjXOElw+0UuELBt2mahpFfXj6K4ofImejO4SxV/Uj4esu5Blk9JDbssVzakkHcZJBxxwgJ0n8+abb7aRoL/+9a9tNOgOO+wQ5/SK53Hyqd9cKImBHJ6nn366mTNnjnnllVfMjTfeaPunhc5N4riTDd1ttF90l4QV1vxN7HITE+qUTSx82HK2GWJ7EJdv+sPL4kpKviAIfOtb34o6YUuWLDGXX365dYaGIJzeXt9www1mxx13tOI88MAD5rXXXgtBNBtVEapsUhB2mV4zRXfozkcCIbcH4h3yfReybKHaZadOnWw1oPkktShQnDR48GBz7LHH2qzLli0z5513nlm8eHGcUyuex8n34f+GwhcqQOvWrc11111n9Kmk+f4eeeSRQqclctzJhu424kd3iZhhjR/FLqsiwS6r8kjym7PNENuDuFxxgMYlRT5vCBxxxBFmn332seXRipwaFh9K0lABzb+kSfc11F8O3hUrVgQhXsiySUHYZXrNFN2hOx8JUGf6qJV4ZaJOicfJl1zugVDl0UJHcdOZZ55pFA2qNHfuXLuIUFwHatzfKEU+J9/48eNjz6e/3Xbb2UjQxo0b2yJoCoSxY8eWojglvYaTTRdFdxvRoruSmlidLoZd1sSGXdZkksQeZ5shtgdxeTa4dEOKm5l8EPCFwO67726efvppO/Ro5syZ5sgjjzSNGjXypXhFlUMT6muxgRkzZpiVK1fayeclbwgpZNmkH+wyvVaK7tCdjwSoM33USrwyUafE4+RDrlatWtmh3ooifOONN4weELt27VqwaHpZ3b9/fzta55NPPjGffvqpeemll+xInhdeeMGer7lBk54fVE7Mf/zjH2bVqlXm3XffNXvvvXeshY1U/3Tp0sVMmDDByiLZ9HJess6ePdvuGzp0aEFO5cyA7rLTRXfJ3nfYJXZJe5DdBnzYiwPUBy1QhloTaNGihdHfyy+/bLTyqiJl+vTpU+vr+HqCHpzUWVUkgTqrITl4Q5YNu/T1jipcLnRXmJGvOdCdr5opXK6QdReybNJsSG25HJmafuiZZ56x0yo999xz5tVXXzVayVkLHLVp0yanMTds2NDsv//+ZtKkSXYIvKZnevHFF6P8PjhAt99+e+vYVZSq5vUcM2aMlW3hwoWmV69eUVmzbYiLFuWcOHGiPawV4nUNl5J2gKI7p4man+guuYXJsMua9uj2YJfJ2aV0EHJ74Gys0CcO0EKEOO4tgR49etgJ69V504NG7969vS1rbQumaFbJpU6n5Gzbtq3dru11fMwfsmzijV36aHXxyoTu4nHyMRe681Er8coUsu5Cli20trx9+/ZGkZJTpkyxUY5yDr755ps2elNRkPmSFpMYOHCgPVdRpJnJBweoyqMgAU0bpXlKFTigl+vz5883Rx11VGZxs27Ljjt06GCDDhQBmpmSdoCqLOguUyNVt9FdVR6V/IZd5qaNXeZmU4kjIbcHcfjV29CQVW3J4pxFHghAAAIQgAAEIAABCEAAAgEReP31181vf/tb4xaIuP32281uu+0WS0Ktrqt56e+991473FwnnXzyycYHJ6HK8uWXXxrN5fm3v/3Nlm+vvfayi2/qWJz0/vvv28WRxMilzGhXty+pT3SXmzy6y82m3Eewy9yEscvcbMp9JPT2IB8/HKD56HAMAhCAAAQgAAEIQAACENisCCiSU8O9+/XrZzSfX22SokdHjRplh50feuih5qSTTqrN6WXPK0ft22+/bRfZlHy1TVoM6cknn7RO4nHjxtX29LLnR3e5EaO73GzKfQS7zE0Yu8zNptxHQm8PsvHDAZqNCvsgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBIAjUD0IKhIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgkIVAwyz72AWB1BHQPBYLFiywcxqtWrXKfPXVV3ZleC2OpBXit9xyy9TJlFlgDZtYunSplU+yaqJ+yaU/Dc3aYostMrOnajtk2bDL9NolukN3vlak1Jm+aiZ/uahTqFPyW0hyR6lTkmNf7C+ju2IJJnM+7QHtQTKWV/hXQ65TnPQ4QB0JPlNHYMaMGWb06NFm2rRpZt68eXbVzlxCtG7d2q6qvuuuu5rDDjvMbL311rmyerH/iy++MJoPZfz48UYTRK9cuTJnuRo0aGC6du1q5dtvv/3Mvvvua+rVq5czf9IHQpZNbLHLjRaWNrtEdxv1pv/obhMLH7aoMzdpIW1tOe3BRt1Rp2yyYR+2qFM2aSFtdQq6S6/uaA826o72YJMN+7AVep2SjTFzgGajwj6vCUyYMME8+OCDdgL3uhS0UaNGRpPSn3HGGUYRoj6lzz77zNx3333W+ZnP6ZmvzF26dDGnn366kTPUpxSybOKMXea3Nl/tEt3l15uOorvCjMqRgzozP1Wf23Lag/y6o07Jz6dcR6lT8pP1uU5Bd+nVHe1Bft3RHuTnU66jodcp+bjhAM1Hh2PeEXj66afNtddeW6VcGv7doUMH07ZtW9OsWTM7PFxvl1avXm00xEA3uIbHL168uMp5ipocOXKkPa/KgYS+LFu2zJx11lk24jOzCIpWbd++vdFbasmq4e8a4i/Z9NZGq43Onz/frFmzJjpNEaC61rHHHhvtS3IjZNnEFbtMp12iu/TWKegO3ckGlHxry2kPaA98tEv6YTwfyC59ez5QmUKuM0OWjTqFOsXXOkXlypdwgOajwzGvCOgN2iWXXGKHussReOSRR5qDDjrI7LzzznbIZqHCfvLJJ2bSpEnm4YcfNh999JHN3rNnTzNq1KhCp5b9uKI9hw8fbqZPn25/q0ePHmbIkCFmzz33NG3atCn4+2vXrrVDr8eNG2fGjBljHaQ6Sc5iDYlPMoUsm7hil7mty2e7RHe59aYj6C4/n3Iepc7MT9fntpz2ILfuqFNysyn3EeqU/IR9rlPQXXp1R3uQW3e0B7nZlPtI6HVKLH7rSRBICYGjjjpq/f77779+0KBB69988806l3rDIknrzz77bHstXe/ZZ5+t87VKdeJf//rXqDwbnLzrN0R41vnSEydOXH/AAQfY6/3oRz8q6lp1LkTGiSHLJjGxywxl59n0zS7RXR5lVTuE7qoBKfNX6sx4gH1sy2kP4umOOiUep1Llok6JR9LHOgXdpVd3tAfxdEd7EI9TqXKFXqfE4VQ/lpeUTBBImICGeetP6fzzzze9e/euc4kUPXrVVVeZdu3a2Wu89NJLdb5WqU7c4NC1l9ppp53MhRdeaOrXr/utqYjPM888015PCyhpgagkU8iyYZfxLcs3u0R36E4EaA/i20EpcoZ834Usm3RPWx7vDqBOicepVLm47+KTpB8Wn1WxObHL+ASxy/isSpEz5LY8Lp+6e1ni/gL5IFACAu5mbdiwYUkW92natKnp16+fLdnHH39cghIWd4k33njDXqB///5GMhabDjzwwOgSScsXsmzYZWRmsTZ8skt0F0tlUSZ0F6Eo+wZ1ZnzEPrXl1Cnx9aac1Cm141VMbuqU+PR8qlNUanSXTt3RHsTXm3LSHtSOVzG5Q65T4nLBARqXFPkSJaA3aUqtWrUyTZo0KUlZtLiQkhYTSjo5+VxUarHlESctBKWUtHybg2zYZTyL9dEu0R26EwHag3h2UGwu1x6EeN+FLJv07uQLuZ8Sol2iu9rXWrQHtWdWlzNcnRLifReybNQptbd26pTaMyvnGThAy0mXa5eMwHbbbWevpRXdSzWke8qUKfaaWkQp6eTkc28Miy2PrqOV4pWSlm9zkA27jGexPtolukN3IkB7EM8Ois3l2oMQ77uQZZPenXwh91NCtEt0V/tai/ag9szqcoarU0K870KWjTql9tZOnVJ7ZuU8AwdoOely7ZIRkBOvXr169no33nijXaG4mItrpfTXX3/dXkIrriedunfvbouwYUGm6EG8rmVatmyZufXWW+3pLVu2NB07dqzrpUpyXsiyYZfxTcQ3u0R36M4RoD1wJMr/GfJ9F7Jssgza8vj3B3VKfFbF5uS+i0+Qflh8VsXmxC7jE8Qu47MqRc6Q2/K4fBpcuiHFzUw+CCRFoEWLFmb+/Plm1qxZRnNavvPOO6Zbt26mTZs2tSqShoM/+uij5qabbrLntW7d2mxYEd40b968VtcpdeYuXbqYJ5980jp2X3jhBSPHpRZEcsPY4/6e+Fx88cWWj84ZMmSI2XPPPeOeXpZ8IcuGXcYzGR/tEt2hO9qDeDZQylwh33chyyYboC0vfCdQpxRmVOoc3HfxiNIPi8epVLmwy3gksct4nEqZK+S2PC6neloqPm5m8kEgSQKLFi0yw4YNM7Nnz46K0blzZ7PHHnvYoVnt27c3zZo1s6v6ynG4evVqO//l4sWLzYIFC8zbb79tpk2bZlasWGHPV54bbrjB9O3bN7pekhsPP/ywuf3226MiaCJ2lU2OXkVxytmr1UUbN25sh7dLPsmieWbmzJljpk6daj744IPo/L333tuMHDmyqBXlo4sVuRGybNhleu0S3aE72oMiK/c6nB7yfReybFI1bTl9THfL+9TH5L6jLfexLccusUsf7TL0tty1Ufk+cYDmo8Mx7wh8/vnnZsSIEdGqiHUtoCIshw8fbgYNGlTXS5TlPA2buv76663ztpgf2GeffWwkqCYW9yWFLBt2Gc/KfLRLdIfuaA/i2UApc4V834Usm2yAtrzwnUCdUphRqXNw38UjSj8sHqdS5cIu45HELuNxKmWukNvyQpxwgBYixHEvCbzyyivmoYcesvN4usV+4hS0U6dOZuDAgeaYY46p9fD5ONcvRR5FrD722GP2IUMTg8dNjRo1MmpADj/8cNO/f/+4p1U0X8iyCSR2WdOc0mCX6K6m3rQH3WXnUsm91JnZaaehLac9qKk76pSaTCq9hzolO/E01CnoLr26oz2oqTvag5pMKr0n9DolF08coLnIsD8VBDTfkoa2609v2ZYvX26Hha9du9Y0adLEaBi5ho5rqHzXrl2NOjhpSlrxfvr06XbYv8Lo9ffFF1+Yhg0bWtk0d6mGx0s+DZXXFABpSSHLhl2m1y7RHbrztQ6lzkxnW06dQp1CnVJ5Atx33HeVt7rCv4hdYpeFrSSZHCH3MasTxQFanQjfIQABCEAAAhCAAAQgAAEIQAACEIAABCAAgWAI1A9GEgSBAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIFCNQMNq3/kKgVQRWLNmjR0OXq9evVqVW0Pk3fyaGkauPx+TVnrXqu+1TUuWLDEaZqHUrl272p5ekfwhy4ZdZjehNNglukN3tAfZbaCce0O+70KWTTZBW17zzqCPWZNJpfdw32UnTj8sO5dK7cUus5PGLrNzqeTekNvy6hxxgFYnwnfvCWiuz3vuuccugPThhx/auT579Ohh+vbta77//e+bLbbYoqAM7733njnllFNsvpNPPtkMHTq04DmVyjBhwgS7AJKb13SHHXYwPXv2NEcccYTp06dPrGJceeWVZuLEiTbviy++GOucSmQKWTbssrAF+WqX6A7d0R4UtoFS5wj5vgtZNtkBbXn+u4E+Zn4+5TrKfVeYLP2wwoxKnQO7LEwUuyzMqBw5Qm7L8/HCAZqPDse8I/Cf//zHXHHFFVH0pgqohYFee+01+zd27FhzwQUXxHYU+iTgypUrzXXXXWfGjRtXpVj//e9/jf7Gjx9vBg8ebE477bRYTt4qF0n4S8iyCS12mU67RHfprVPQHbqTDfiYaA9oD3y0S/phPB/4aJcqU8h1ZsiyUadQp/hapxQqF3OAFiLEcW8ILFiwwIwYMaKK87N9+/Z2NXRXyNmzZ5uzzjrL3H///W5Xaj5HjRpVxfmpVey33XbbqPzr1683jz76qFHE6ty5c6P9adgIWTbsMr12ie7Qna/1J3VmOtty6hTqFOqUyhPgvuO+q7zVFf5F7BK7LGwlyeQIuY8ZhygRoHEokccLArfccotZtWqVLcugQYPMsGHDTJs2bYwcgzNnzjR33HGHmTx5sv1+9913G82z4oY1eiFAnkLMmjXLPPHEEzaHZPrlL39p9ttvP1O/fn2zfPly89RTT5k//OEPNtr1448/trKLR8eOHfNc1Y9DIcsmwthlOu0S3aW3TkF36E424GOiPaA98NEu6YfxfOCjXapMIdeZIctGnUKd4mudEqdcRIDGoUSexAksWrTIPP/887YcBx54oLn44out81M7tACS5si86aabzDnnnGO/a7+iQB988EFtep9Gjx5t1q1bZxo0aGCuv/56s//++1vnpwreokULc/zxx5sHHnjA7LTTTlaWhQsXWlndQk4+CxiybNhleu0S3aE7X+tN6sx0tuXUKdQp1CmVJ8B9x31Xeasr/IvYJXZZ2EqSyRFyHzMuURygcUmRL1ECH330UfT7Z5xxRrRdfePoo482v/nNb+zK8DqmqNC///3v1bN5912LOSkdfPDBplu3bna7+r9tttnG3HbbbWaPPfawh+bNm2cjRTUHi88pZNmwS2PSapfoDt35Wm9SZxqTxracOoU6hTql8gS477jvKm91hX8Ru8QuC1tJMjlC7mPGJYoDNC4p8iVKQIsAKbVs2bLgsO8BAwaYSy+9NIoE1cpyU6ZMSbT8hX7cyde9e/e8WZs3b25GjhxpevfubfNppXhFw3711Vd5z0vy4OYgG3aZXrtEd+guyfox229TZ26kkra23OmNOoU6Jdt9neQ+Z5sh9zG577jvkrzHqv+2u+ewS+yyum0k/d3ZZojtQVy2OEDjkiJfogTWrl1rf3+LLbaIVY4DDjjAzpOpzDr317/+tV1JPdbJCWRy8mnho0JJDK6++mqz3Xbb2ayvvPKKufHGGwudltjxzUE27NKYtNolukN3iVWOOX6YOnMTmDS15U5v1CnUKZss2I8tZ5sh9zG577jv/LjbNpbC3XPYJXbpk12qLM42Q2wP4rLGARqXFPkSJdCpUyf7+5pTRYsCxUmDBw82xx57rM26bNkyc95555nFixfHObXieZx8Liy9UAFat25trrvuOqNPJc3n8cgjjxQ6LZHjm4Ns2OVG00qjXaI7dJdIxZjnR6kzq8JJS1vu9EadQp1S1YKT/+ZsM+Q+Jvcd913yd9qmErh7DrvELjdZhR9bzjZDbA/iEsYBGpcU+RIl4G5WFeLxxx+PXZYzzzzTKIJEae7cueYXv/hFbAdq7B8pQUYn3/jx483SpUtjXVERoIoEbdy4sc2v+UHHjh0b69xKZtocZBNP7HKjVaXNLtHdRr3pP7rbxCLJLerMmvTT0JY7van0tAcbdUidUtOWk9jjbDPkPqa4ct9ttC7uuyTusqq/6e457cUuN7LBLqvaSFLfnG2G2B7EZdpgw1yJl8bNTD4IJEWgVatWRkO99SbtjTfeMLp5u3btWrA4WiG+f//+5rXXXjOffPKJ+fTTT81LL71kdtxxR/PCCy/Y8/v27Wv0l2SSE/Mf//iHWbVqlXn33XfN3nvvbZo2bVqwSO3atTNdunQxEyZMsHkl2/r1662ss2fPtvuGDh1a8DrlzBCybNhldstJg12iO3RHe5DdBsq5N+T7LmTZZBO05TXvDPqYxiTdx+S+q2mX2kM/LNlnO+wSu6SPmd0GfNiLA9QHLVCGggTUyZTT8plnnjHr1q0zzz33nHn11VeNVtnTKtRt2rTJeY2GDRua/fff30yaNMkOgV+yZIl58cUXo/w+OEC3335769hVlOqcOXPMmDFjrGwLFy40vXr1isqabUNcttpqKzNx4kR7eOrUqfYaLm/SndOQZcMunZXV/PTdLtFdTZ25Pegu2Rdi1JnOEqt++t6WU6dU1VfmN+oU6pRMeyjlNvddbprcd8ndd9gldqlp9/A55LaDJI/gAE2SPr9dKwLt27e3EQha0V1RjnIOvvnmmzZ6U1GQ+ZIm+h04cKBdDV5RpJnJBweoytOnTx8zefJk66RdvXq1jQSdP3++OeqoozKLm3W7R48epkOHDubll1+2bDIzJe0AVVlClg27zLS2qtu+2yW6q6qvzG/oLpNG5bepM7Mz970tp07JrjftpU7JzaYSR6hTslP2vU5RqdFdOnVHe5Bdb9pLe5CbTSWOhFynxOHHHKBxKJHHGwInnHCCueWWW0znzp2jMikCNE7ScITbb7/dnHHGGSbOymdxrlnKPB07djSjRo0yRx55ZFS+uLKpHIcddpi55557bEeplOUqxbVClk18sMvcVuKzXaK73HrTEXSXn085j1Jn5qbre1tOe5Bbd9QpudmU+wh1Sm7Cvtcp6C69uqM9yK072oPcbMp9JPQ6pRC/ehsi6dYXysRxCPhIQJGcGu7dr18/o85LbZKiR+Vs1Hyihx56qDnppJNqc3rZ865du9a8/fbbZsWKFVa+2v6gFkN68sknjVZ4GzduXG1PL2v+kGUTOOwyt/n4bJfoLrfedATd5edTzqPUmbnp+t6W0x7k1h11Sm425T5CnZKbsO91CrpLr+5oD3LrjvYgN5tyHwm9TsnGDwdoNirsgwAEIAABCEAAAhCAAAQgAAEIQAACEIAABIIgwBD4INSIEBCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEA2AjhAs1FhHwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIBAEARygQagRISAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIFsBHCAZqPCPghAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCAIAjhAg1AjQkAAAhCAAAQgAAEIQAACEIAABCAAAQhAAALZCOAAzUaFfRCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEAQBHCABqFGhIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAASyEcABmo0K+yAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEgCOAADUKNCAEBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhkI4ADNBsV9kEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJBEMABGoQaEQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhDIRgAHaDYq7IMABCAAAQhAAAIQgAAEIAABCEAAAhCAAASCIIADNAg1IgQEIAABCEAAAhCAAAQgAAEIQAACEIAABCCQjQAO0GxU2AcBCEAAAhCAAAQgAAEIQAACEIAABCAAAQgEQQAHaBBqRAgIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgGwEcoNmosA8CEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIggAO0CDUiBAQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBANgI4QLNRYR8EIAABCEAAAhCAAAQgAAEIQAACEIAABCAQBAEcoEGoESEgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBbARwgGajwj4IQAACEIAABCAAAQhAAAIQgAAEIAABCEAgCAI4QINQI0JAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAAC2QjgAM1GhX0QgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAEARwgAahRoSAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEshHAAZqNCvsgAAEIQAACEIAABCAAAQhAAAIQgAAEIACBIAjgAA1CjQgBAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIZCOAAzQbFfZBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACQRDAARqEGhECAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQyEYAB2g2KuyDAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEgiCAAzQINSIEBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgkI0ADtBsVNgHAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIBEEAB2gQakQICEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIBsBHKDZqLAPAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQCIIADtAg1IgQEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQDYCOECzUWEfBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgEAQBHKBBqBEhIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgWwEcIBmo8I+CEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIAgCOECDUCNCQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAtkI4ADNRoV9EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQBAEcIAGoUaEgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABLIRwAGajQr7IAABCEAAAhCAAAQgAAEIQAACEIAABCAAgSAI4AANQo0IAQEIQAACEIAABCAAAQhAAAIQgAAEIAABCGQjgAM0GxX2QQACEIAABCAAAQhAAAIQgAAEIAABCEAAAkEQwAEahBoRAgIQgAAEIAABCEAAAhCAAAQgAAEIQAACEMhGAAdoNirsgwAEIAABCEAAAhCAAAQgAAEIQAACEIAABIIggAM0CDUiBAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIJCNAA7QbFTYBwEIQAACEIAABCAAAQhAAAIQgAAEIAABCARBAAdoEGpECAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCAbARyg2aiwDwIQgAAEIAABCEAAAhCAAAQgAAEIQAACEAiCAA7QINSIEBCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEA2AjhAs1FhHwQgAAEIQAACEIAABCAAAQhAAAIQgAAEIBAEARygQagRISAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIFsBHCAZqPCPghAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCAIAjhAg1AjQkAAAhCAAAQgAAEIQAACEIAABCAAAQhAAALZCOAAzUaFfRCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEAQBHCABqFGhIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAASyEcABmo0K+yAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEgCOAADUKNCAEBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhkI4ADNBsV9kEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJBEMABGoQaEQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhDIRgAHaDYq7IMABCAAAQhAAAIQgAAEIAABCEAAAhCAAASCIIADNAg1IgQEIAABCEAAAhCAAAQgAAEIQAACEIAABCCQjQAO0GxU2AcBCEAAAhCAAAQgAAEIQAACEIAABCAAAQgEQQAHaBBqRAgIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgGwEcoNmosA8CEIAABCAAAQhAAAIQgAAEIAABCEAAAhAIggAO0CDUiBAQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBANgI4QLNRYR8EIAABCEAAAhCAAAQgAAEIQAACEIAABCAQBIH/D0rCn9UmMr79AAAAAElFTkSuQmCC" width="672" /></p>
<div class="sourceCode" id="cb8"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_OLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends" class="section level2" number="5.2">
<h2 number="5.2"><span class="header-section-number">5.2</span> WLS, no trends</h2>
<div class="sourceCode" id="cb9"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb9-1"><a href="#cb9-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb9-2"><a href="#cb9-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb9-3"><a href="#cb9-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb9-4"><a href="#cb9-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb9-5"><a href="#cb9-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb9-6"><a href="#cb9-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3,)</span></span>
<span id="cb9-7"><a href="#cb9-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb9-8"><a href="#cb9-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb9-9"><a href="#cb9-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb9-10"><a href="#cb9-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb9-11"><a href="#cb9-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb9-12"><a href="#cb9-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb9-13"><a href="#cb9-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb9-14"><a href="#cb9-14" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb9-15"><a href="#cb9-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb9-16"><a href="#cb9-16" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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TEZAoFOBc889Nz322GP1am9+85vTMsssU9+3Mb4FfvOb36R//etf9Ztce+2109JLL13fH8oN77Wh1By7bf3qV79KTz31VP0G1l133bTkkkvW920MvcBdd92VrrjiioaGN9poo7TYYos15LWz8/LLL6ef/vSnqa+vr+HwFVZYIa2++uoNee3unHPOOenJJ5+sHz5t2rS04YYb1vdj48Ybb0zXX399Q94HPvCBNMssszTkDefOHXfckWbMmJEuv/zy9I9//CM99NBD6dFHH03zzjtvWmihhfKf5ZdfPm222WZpnXXWSZMn+9+y4Xwe2iZAgAABAgQIEJi4ApOyP0ga/yKZuBbuvE2B1VZbreGPyhNOOCHtvPPObdZ22FgXWHHFFdPf/va3+m2cfPLJ6WMf+1h9fyg3vNeGUnPsthVfsNx+++31G/jxj3+ctt9++/q+jaEXuOGGG9Iqq6zS0PA3v/nNtMceezTktbNz5ZVXpghal1MELC+++OJy9oD7zz77bB5AfPHFF+vHfulLX0qHHXZYfT82Dj300PTlL3+5IS++vIng43CnX/ziF+mggw5q+Kwc6JxTp05N2223XTr44IPTAgssMNDhygkQIECAAAECBAgQ6EDAEPgOsBxKgAABAgQmgsBKK62U904s3mu5R2ixrNX2b3/728riaO/f//53ZVmrzKuuuioVg59x7P/8z/+0qjJiZRGoX3/99dM222zTUfAzLjCCs8cdd1x6wxvekL+O2EU7EQECBAgQIECAAIEJICAAOgEeslskQIAAAQKdCEyaNCnFkPdiGuoA6AsvvJAuuuii4ina2r700ksbjptrrrkqe5g2HDQCO/fdd19uVr6+Tk/9+OOPp9122y3tv//+nVZ1PAECBAgQIECAAAECTQQEQJvAyCZAgAABAhNZ4B3veEfD7cf8lbfddltD3kA7jzzySPq///u/+mEzzdT4vx3NeofWK1RsXHLJJQ25G2ywQZp11lkb8kZ6J3qyvvOd70z33ntvv1Ovt956eY/OmLf0uuuuy+cCveWWW9IFF1yQvv/976ePfvSjlXN/HnLIIenYY4/t154MAgQIECBAgAABAgQ6FzDbfudmahAgMEICu+66a3rwwQfrZ1tzzTXr2zYIEBhegbe//e39ThC9QDtZ9C6CfK+88kq9nQ9+8IPp9NNPr+93GgCNXqNXX311vX5s9MLw9xNPPLHfkPf4vPrud7+b3vKWtzRcb+wsssgi+VD32P7EJz6RDjjggHTggQemH/3oR5FVTzHn6pZbbpkWXXTRep4NAgQIECBAgAABAgQ6FxAA7dxMDQIERkhgp512GqEzOQ0BAmWB17/+9Wn69OkNC1DFaubRY7HdVA5wfuYzn0m/+93v8tXQo42777473XzzzWm55ZZrq8k//vGP6bnnnms4drQDoBGUPeqooxquackll0znnntuWnDBBRvym+3E8aeddlqKtn72s5/VD3v++efztr/xjW/U82wQIECAAAECBAgQINC5QONYtM7rq0GAAAECBAiMU4HyMPhO5gHt6+tL559/fl1m7rnnTmussUbaeOON63mxUQ6SNhSWdsrzay6xxBJtB09LTQ3ZbgRlH3jggYb2jj/++LaDn8WKP/jBD9Kyyy5bzErRu7S86FPDAXYIECBAgAABAgQIEBhQQAB0QCIHECBAgACBiSlQDoDG3JWPPvpoWxgx32XMG1pLb33rW/O5Lss9Ns8777zaIQO+luf/LAdTB2xgGA4oz4s6efLk9La3vW1QZ4oFnXbccceGuk899VS69dZbG/LsECBAgAABAgQIECDQmYAh8J15OXqUBaIXTPyx+be//S3985//TAsssEA+l9qb3vSmFH84DkV67LHH0h133JHuvPPOFAt4LLzwwvmcd6ussspQND+qbdxzzz35kNO///3v6emnn05LLbVUPsQ1elHFH+1DlW666ab8D/Z//OMfafbZZ0/Tpk3L57uLYZ4TIf31r39Nd911V7r//vtz15jvb9VVV02LL774mLz9l156KV/IJt43EdBaaKGF8ntZbbXV8ufb6qZicZhYBCfqxtDlN7zhDWn55ZfPf69a1eukLN7LV155ZYpVuJ999tl8vsSYp/KNb3xjJ80MeGy0H8825qWNoNRrXvOa/PNnrbXWSlOmTBmwficHhHME+yLYGPcSnz/xeTfSacMNN0yxcFFtHs/o1Rm9QN/73vcOeCnlnp21YGU5ABq9Op955pk055xztmwz3ofxnIspFh4a7VRe+Gi++eYb8F5aXXM47b333g2HxGfqiiuu2JBnhwABAgQIECBAgACBDgSyP2YkAh0JZIGcvuwtVv854YQTBqyfBT/6sj/g+7JAWP3nta99bd9PfvKTAetmQZO+ww47rC+bI64vC9LVz1u8hmwF4L6sp1Lf//7v/w7YXrMDsj/C+9797nf3TZo0qfIc2Vx4fUceeWRf9kd43kS2WEX9XuK+vv3tbzdrui8LxDQce/HFFzc9tqpg6aWXbqifBQGqDqvMe/zxx/u+853v5NdQNCtuzzLLLH0f/vCH+7Kgb2UbxcwVVlihwefkk0/Oi7O56/q++c1v9mXBmoby4nne/OY392WrHvdlwZRik023s0BJw32H+WinLCBUv6Z4T9RSvE8PPfTQlve/+uqr9/3whz9s+/5H6n1TvKd4vrWUBS/79ttvv75sAZbKZ5oF5Pr22WefvieeeKJWpf4av/PZHK59WWCwsm4WDO+bMWNG/fhWG+FcfB/9+Mc/zg/PAux9H/nIR/qyLz8aymvHZgH+vq9+9at92RcnrZpvWZYF5vqOOOKIvpVXXrnyHHGu+PyJ92rWk7FlW+XCLHBafy/F52MtxefdHHPM0XC++B2Ne83my6wdNmKv2WI+Ddey1157tXXurMdnQ73si6t6vbJnO++Fa665pqG9LDDblwWI622WN7JV1BuOj2f1r3/9q3xY1/vZEPV+58mC5YNuNz4fd955574vfvGL+b998Zk5Gs990DegIgECBAgQIECAAIEeFEg9eE0uqccFOg2AZr0O+yLYUQtKxGsEGbPVcQe801/96ld9Efwr1h1oe+211+67/fbbB2y7dkAEeSLwOVC7tfIIYkWgMAK/tbx4jT+2m6X555+/4dhscYxmh1bmZ70oG+r/4Q9/qDyunPmLX/yiL5t3r6Fu8ZrL2xFk2W233foimNksVQVAb7zxxr6sV1/b58l6bfVlPdyanaKe3+l7rV5xGDeK95/1WMvPdMMNN7QMMJed4z2a9TQe8CpH6n1TvKepU6fm1xWB83XWWaetZxrPKeuRXb+fc845py/rBddW3WxV8PqXCvUGShtVAdAImLV7jmw4cl82R2Op1YF3f/3rX/fFFzXl59dqPwKhRYtWZ8l6XtfbznrV5odGwLZV+8ccc0yrJoelLOuN2HBN8b4YKEWgsfiFVdb7uaHKnnvu2dBmtjhSQ3nVTrYQUEOdCCC3SiMVAL3ooosariueX7ZQVKtLU0aAAAECBAgQIECAwAgLmAM0+0tFGj6BGAIcQyhjOHAtxXDKWNTh05/+dC2r32sMdXz/+9+fNt9883w4er8DWmRcddVVKetpmMqLZVRVieHub3/729NvfvObquLKvJjXLu4phvT2aorhqlnPvLT11lvnQ3Xbvc6YYuDYY49NWe+jdquka6+9Nq2//vrp//2//9d2nVgYZcstt6wPq227Yg8emAXb8/dDFgRu++riPbrpppvGF1Bt1xnJAx9++OH8nsrDjZtdw/XXX5+22WabvPiXv/xl/nubBVCbHd6Qf8YZZ+SfBw2ZA+zU3j/tnuOyyy5LMVw/++JggJb/W5x9QZPfRwx77yRdcMEF6S1veUu+snkn9eLYrIdjOvDAA5tWy3qapixg3LR8uArK84DGlAaxOnmrdOGFF6b4HK+l8lD18n4784CW5/8sD6WvnWukX9dbb72UBcobTpv19E5ZT9l8aH9DgR0CBAgQIECAAAECBEZFQAB0VNgnxklj/scIFMZ8mrU088wzp1NOOSV98pOfrGVVvmZDZ9NZZ53VUJb1Gk3bb799HiyJP8AjuBqBywgYZL1EG46NefPe9a53tQzKRfAp5rGLoEMxLbjggmn//fdPWS/NfGXfmO8uG/qeYp7RWorg5+GHH17b7bnXo446qvL6tt1223TSSSelP//5zynroZXPzZgNW08xZ10xxTPKhuEWs5puH3fccfVFUSK4nfWmzZ9xBCsiCJINv8/fB+UGLr/88pT1Zitnj6n9CPDE/dYWhYn3aAR2v/71r+fvn5///Odpl112yedwLN9YvO9+97vflbNHfT8CW7GASwQ1I8W8jHEPEaiMLxVOPfXUFL+fca/FFGXZFABphx12qAd2Y+7KCMT/9Kc/TRHginkNq+bSPeCAA1K7wcw4ZzYVQj0AF0HBz372s+nss89O8ZkTc3TGFywbbLBB8fLyeTsjYFb8PGo4oLAT7Ueb8UVCMW2xxRbptNNOy23iy5O45/hsyHpEFg/L59l93/ve19HK3fFeis/F4jmzHtkpGwpfbzvea1mv4Pr+SG2su+66DXO9xnskvvholcrzf5YDnrEgUnHOz/giodWzCZf4zCimXgmAxvzJn//854uXlm9nPVbzwOjuu++ez5tafLb9DpZBgAABAgQIECBAgMDwCoxwj1OnGwcC7QxLjrn5ll122YZhgTEcMguiDCiQBega6mW/AX3ZYiMt5wuMOQi32mqrfvViWHbM4VeVYi7GaLv4E0MqswUtqg7Ph4V/7nOfazi+WDeGrjZLIzWUOc4fw/NjaHbx2uaZZ56+GA7fLMU8elkPuYY6MU3B3Xff3a9Kcbh08RzZ4jZ9WfCp3/G1jOOPP76h/agbcwu2Su2811rVH46yZvcf19pqbtZPfOIT/e7/Pe95T8tLHKn3TbN7iqHO2YI/ldeYffnQF3MwFt8Dte3I/8IXvlD5u5cFgfqyQGK/eq2mxCgPga+dJ4aNZ0Gxyut7+eWX+2KuytqxtdcsQFt5fC0z5loszyka52n1+5MFL/vKQ7rjfEcffXSt2crX4hD42vXFazyPrCdp/pkTXllgsO/LX/5ynlfZ0AhkZj3lGyyzL4BanrU4dUD2xVdfTKlQTptttllDm63eA9mXNg3HxtQeA83tOlJD4OO+4j2QfenWcI3FZxrb2ZdrfdnIhr6YxiCmzYhnKxEgQIAAAQIECBAgMDIC0VNHItCRwEBBqQiYlOeDjLklsx5aA54nFpKJueKKfzjGH40xj2g7qSoIUbU40ZNPPtmXre7ecJ4I9sT5B0rleehq19orAdDyfKZhX1x8pNn9RbAzAs21+4nXWIylnKqCZTFPa1WAo1w3/vgvth9B1lZzgQ70Xiu3PxL7Vfcfbq0WY4nrimBNLNRVvP8IFLaam3I0A6CxAFOzLw9qzlWBzLi/rMdo7ZDK15h3t/wFSdbjsvLYyKwKgIZ5O58LsTBV0TyCcdl0DU3PlfXgbTg+vrjJepw3Pb5YEIvVFM8177zztnx/VwVAI/gaAc9eS/FZULy3VsH7+CKkeGyzOUPjs7l4XAQQm6Xysdn0KM0OreePZAA0TvrUU0/1xYJixXtqtR1z2Ibjt771rb5slff6ddsgQIAAAQIECBAgQGDoBQyBz/46kYZOIOYO3GijjRqGns8222wp5gWMIaEDpRhem/XAbDhs3333TVlQtCGv2c5BBx2UshWrG4pjiHfMbVlM2Wrx+ZDYYl4MaY9rHSjFUMfykPuB6oxU+SOPPJIPNS6eb8cdd0xZQLqYVbn9ute9rt/cn6effnrlseXMGAafLZ5Tzu63X57fMPtIS9kf/v2OG2sZX/va1wYcmhzDZMvTCsSQ2KzHYU/ebvzeFIdfV11ktip5v+x4H2RfBvTLL2ZkQb58+oliXtZzubg74Hb2ZUdbnwsx/DjrwVlvL+sZmuJzoirFEOz4bCim/fbbL2ULnxWzmm5nvXzz+T9rB2Q901PWc7O229ZrDJvOVq9v69iRPKg8D2jMDxu/v1VpoOHvtTrlIey///3v61Mb1I6pvfbq/J+164vXKVOmpGxBpJQFaxuG9xePKW7HtA/ZQlv58PkVV1wx/3clpom49dZbi4fZJkCAAAECBAgQIEBgCAQEQIcAUROvCsQ8iLGgUDGgFQGUbEXofD7OdpyylZ0bDovA56677tqQ12on5pQrB9kioBqLzhRTtrp8cTfF/HQx72E7KQJZX/nKV9o5dMSPCb8I8NRSzI8YAZx2UwS0Iggcf4zHXJZZ76T07LPPtqw+bdq0VA5kNKsQgdjwK6ZO5n4s1uuV7XiPRuCrnZT1aO0XZI8vDXotxTy45Tkbq65xySWX7Jcd8/QusMAC/fLLGdmUCQ1ZnQRAs97bKVs1vKF+s534DPriF7/YUJwNZ69cnCbm/oygdC1lPTg7+v2JevGFTTHFlzrFNotl5e3ZZ589n2+1nN8L+xEELs4VHJ/3zYL37QZAl1tuuZT1gq3fXtbjuOnidbGQVTG1+5lTrDMS2zE3bswfe/fdd+dzAcc8uO2m+B2I+YPjczIWCYx5miUCBAgQIECAAAECBIZGQAB0aBwnfCuxIEj0EIoFSGopennFQkLt/qEagbtyL5/4I7CdXpm1c8brxz/+8X69EYvtxgIesYp0MUUvyU5SrMRcDAZ0Unc4j41gczFtsskmbfWSq9WJoFQEIWJF81iEKno2DtQLMHr8tptiEazyasnx3hnLKcxi8ad2UgR/y4vYvPDCC+1UHdFjyov6NDv5Yost1q8oG67eL68qI5vDsSE7m5aiYb/VTgSciwvotDo2ysqLrkVAMhbdKadykC1Wc4+FiDpJZbv4vCn3am/WXvQsLy8u1ezYkc6P93j5dz0WiCunp59+OhUd4/1eXECufHw50F61MFg2hUcqflEQgfd232fl843UfnyJEL2Ub7nllnzRuSOOOCL3a+ffs3h/HnvssSk+W8rB5JG6fuchQIAAAQIECBAgMN4E2vurfbzdtfsZUoEIYG288cb1VaNrjX/qU5/qtxJzrazqNXoTxZDRYsrmCSzutrUdQabyEPXiSu8xvDCbg7ChraqebA0HlHYiSNFpnVITw7Jb7H0bJxjMNbYbzKvdwOtf//raZluv0XuvmMrPolg2FrZj6oBOUjnw14sB0HamTIh7rgpCtjt8e6DAeivTcu/RVsdGWQzLL39hUR5mHF/AFD8not7aa68dLx2lbG7Shl6NUfm2225rq41eD+pFD/9iKq/KHmUxjL34no5/G1p9ppQDoFG/nC699NKGrHa/VGuoNEo78W9F9PzOFuTKh8fHv5fZAld5z+IIlpd7xBcvM4K+MXVMlUnxONsECBAgQIAAAQIECAws0DgWdeDjHUGgn8BBBx3U8Adv7YBspdt8aHC7wYpiD59aG50G12r1IvCXLVxS203ZQjv17X/+85/17drGYM4T57juuutqTfTEa7YAVcN1FIeXNhQM4U45sDRQ073aw22g625W3mkANKYlKKZm8ygWjxnp7Rj6PdjU7nuum/fBYAL7MVVBcbqFcgA0hnRH78Vi+t73vpd+9rOfFbPa2i5/lkUAtDyHZlVDnQyXrqo/3Hnle6jqAVrusVgOcJavMYKq0TO8NnVHttp7/kVY8T1Y7MEf9Qdqs3yOXtqPLw0iKBw/kbKFk/LAaPTeP/PMM/P94vVmC/Pl8+Vmq8YP6gutYlu2CRAgQIAAAQIECExkAT1AJ/LTH6J7L/b2KTYZc0fG0PJ257+LAEQ5DSYwGW2UAyTFYdb/+Mc/Gk4TQ/VjuGKnabDX1ul52j0+nkN5zrh2g1HtnqPquHnmmacqe8LkVQ0DH+s3380z7XTI+GCsBvO7V15IrRwALQZHa9f0wAMP5Au6ZavGd/Ranjd3vPQAjQBt8TMlphEof+nSaQA0eueutdZaNfI8EFru8Vncj2BpeSh+vfIY3Ige4VtssUU6+eST83lDY87m8pck0Us+5gaVCBAgQIAAAQIECBAYvIAA6ODt1CwJRE/Aj33sYw250UPoW9/6VkNes51y8C6GyBZ7ATWrV5VfXPU5yotB2uhxU0ztzMlWPL62Pdhrq9Uf6tdikLfWdnm4eS1/KF9bDW8dyvP0alsRkBlvqZvh6SNhMZgvLMq/C+XPgfLnz1DeRyyI004qzw/bTp2RPqZVL9AIiN5xxx31S1pppZVSO18QlHt0Fod8R5sRiK6lN7/5zYP+d6HWRq++xvM/5JBD0nnnnZevKF+8zh/+8Iep6kvC4jG2CRAgQIAAAQIECBBoLmAIfHMbJR0IREAi5jV74xvfmM8FGsMYa+nLX/5yvgr8QPN5TpkypVYlf41eVNHzpZzfcFCTnXIvz+Kq1OXeYxE4jKGv0RO0k9TuwiadtNns2Nrw0GblkR9zDxaHkkbeI488Ei/SBBVo530zFmkiWLnIIot0dOnFaTCiYnme4Kqg6uabb5666Q1bu8A11lijtjnmXyMAGr0Va+mqq65KW265Zb7bae/PWhsRAI2pVGqpGAAt9v6M8l6b/zPeizGtSry/4ifeV6uttlrtVgb1Gj1c999//7T33nvX68dQ+L/85S/jqvdr/eZsECBAgAABAgQIEBgBAQHQEUAe76dYdNFF04UXXphWWGGF/FZ/8IMf5EMaX3rppXw/ApnRMzQWzGjVW7BqLsnoORVB1U5TucdVsUdo1ZykEcxcbrnlOjrNPffc09HxxYNrNsW8Ztvxh++LL77YrLieH0OPYz7KO++8s55333331bdtjH2B4XjfjEWVmGOz0wDo3//+94ZbLQdA43cnhh4Xe4vvsssuaZNNNmmoN9F3IjgX87fW5q7905/+VCcpr+Be7tlZP7C0EavEx+d/bRqCCPQ9+eSTefC5uKJ8VOu1AOh73/vehlXvt99++/TjH/+4dIed7+68884NAdBoIXrXjqfh/52rqEGAAAECBAgQIEBg8AKGwA/eTs3/CEQPz1rwM7Ki98sXv/jFBp/oJXTUUUc15JV3ikHKWlk5aFHLH+i1XK/Yuyt6gJZX3h1Mb85uAqDFIMtA99LJ0NzyKtKDua/odVsLbgx0bcpHVmC43jcjexfdn20wPZvLnwnl35XoPV0OivbaImfdy3XfQkwlEEPbaykWm4t5nuOnGKyMxX7e9ra31Q5r+Rr2xaH18fkTi/5EKrZZni+0ZaMjVLj88ss3nOmaa65p2B/sTkyxUhy5EO1UTXMy2PbVI0CAAAECBAgQIDDRBARAJ9oTH4b7rZoD8cADD0zlnpYxpO/mm29uegXR0zP+aC6mmP+t0xR/iN91110N1YoLd0RPyfIw+OKK8Q0Vm+xEULJ8jiaH5tnlRS2ef/75Voc3lFUFMZsFKMtBnaq6DY1X7Gy66aYp5oCMHrGxHfPRSaMjMFLvm9G5u8GfNRYl6iRFj9HoUVhM5d+VKCt/ZhWn8ijWnejbxWBlfGESn+t//etf6z04w2eDDTZIncyvXO7ZGQHQmPuzOKdobcX4XvIvB0Dj36wrr7yy60uMXv/lL7/KAfquT6IBAgQIECBAgAABAhNIQAB0Aj3skbzV2WefPX3/+9/Ph0rWzhtDuWMofLN5CaNXZixwUUwnnnhi0+OLxxW3Tz/99H49Zd7znvcUD+k3jDAWanrmmWcajmm1c+SRR6a4n3ZTeBRTzBnXbrrkkkvaPTSVgzoRvHziiSfarh8Lw1x99dUpArS33HJLijn9Ym5RaXQERup9Mzp3N/iz/vSnP+2o8vHHH99wfATmyqvCxwHlAOgf/vCHjn5/oo2YBzIWs4m2Nt544/TJT36yoRdjHDPWUwQiiymGwRd7akZZu8Pfa+2Uj49h8PFZVEzlIGmxbLS2I9BbTl/96lfLWR3vX3zxxak85UX5/dlxoyoQIECAAAECBAgQmMACAqAT+OEP962vt956KeYxK6b4gzaCh83S+973voai6On1ox/9qCGv1U70mikuphHHRqCjHFjdb7/9GnonPfjgg+mEE05o1XS9LIbffvvb367vt7NRHt4fvaXaSdHT8+c//3k7h+bHxHyFxR65Efz8zne+03b9CHgW/+ieNm1aivn5pNERGKn3zejc3eDPGvMJtzsFRfSiO/rooxtOttNOO1XORxzzORZT/K7HFB+dpG9+85t5T8jbbrstnxs55kTudL7STs43GsfGZ3v0pK+lCICWFysqBzRrxzZ7jc/pYm/KsRIAXXXVVfNAd/G+4nM0RjwMNsUXUPFvVDFF8HMw82EX27BNgAABAgQIECBAYCILCIBO5Kc/Avd+xBFHpNe+9rUNZ4rh8c2GsO644475YhjFChHQLA9fLZYXt4877riGRYCibJtttmnoiRp5MSQ+giDFdOihh/brxVQsj+24jrjG6CnZSSr+YR/1IqhZW/CjVTsRlC0uMtLq2CiL88TCLcUUvVvLQymL5bXtOGaPPfao7eavW2yxRT+7hgPsDKvASL1vhvUmhqHx+GIgelbGdBcDpcMOO6zh/R+L7cRnUFV661vfmrbbbruGoug92u4UGRG0i8+gYtpss83SMsssU8wa89tTpkxJb3nLW+r3Ue4BGlOMLLvssvXydjeKQdMbb7wxxdzRtRSG5alLamWj/brPPvv0u4RDDjkk7bbbbg3vvX4HVWTElALxuVt+z+25556VQfuKJmQRIECAAAECBAgQIFAhIABagSJr6ATmmWeefgGBGDr+0Y9+tHJo+1xzzZW+9KUvNVxALF6y+uqrp1bz8UWvxb322ivtvvvuDXVjZedmPbj23XffhjlHY4GJWGE3enBVBVYiuLHmmmumX//61w3naGcngqbFFMPtt9xyy5bD6L/xjW+kT3/608VqbW0ffPDBDUHkuK8IVtx0001N68cf3fFMinOGxnysu+66a9M6CoZfYCTfN8N/N0N7hgsuuCB/f0av76oUnwmf/exn09e//vWG4vg8aDWtQ/zeRYCvlmLKjhjKPtCw+1tvvTUf9v3000/Xquavn/vc5xr2x8tOcR7Qa6+9NhWn9SgGMju532K9cLziiivq1Ydq+Ht8idXNT9WXXxtuuGH6yEc+Ur/W2kYEwyNwe/jhh6d4fzRL8R6L8hhZEPN8Rg/SYopFBj/84Q8Xs2wTIECAAAECBAgQINChgABoh2AO71wg5t/cdtttGyr+8Y9/TBFoqErR0yWGchdTLISxzjrr5MMKL7zwwrz3ZAQpoyfpaaedluIP0GivuDhQDAX/yU9+kmLl4KoUw1LjD9NiiqBJnD/qRDA0ekTGtS+11FIphjrGsNZaKi/wMWnSpFpRv9cYMloevhjzC8YfttHDLFabjgU/wuWYY45JK664Yh7QjXuMdldeeeV+bTbLiOBOuYdbzOcZ0wB87Wtfy3u51lZ6j4WcTj311HzBo1/96lcNTcb8q3Ed0ugJjOT7ZvTusvMz137Xvve976V11103nXXWWSne05Huu+++PFgZAbrvfve7DY3HHLkDfamw2GKLpQMOOKChXvTW/uAHP5h/Fvzv//5vqq0oH1/mxHQWEeRcZZVVUkylUUzx+RHB0/GYigHQ8hdGxUBmJ/e+/vrrN0xNUvw8H2yb5fNH7/9YYX2wPzG/a1U66aSTKuc9jWkUoodo9IiNheVimpf4YimGuH/oQx/K/12JgHuUf/7zn8/nkC22H+/HmMu5vCBa8RjbBAgQIECAAAECBAi0IZD9gSER6EggCwT2ZW+t+k82THvA+tnCIH1ZYK5eJ+pnAcS+rFdiZd2s12JfNhy14fjiOWM7W6m8aXnWk7QvC35Wtl3OzBasaNpO+ZyxnwVf+rIgZV8WlGyol/U0KzfdsJ8FahuOr2q7Ki+uL+ut2lA3C542tF3eyXrF9b3//e9vqFNse6aZZmrp95nPfKbcZH0/C9o2tHvyySfXy9rZyHqjNtTPhug3rTaY91rTxoaooNv7zwLhDfefBU5aXtlIvG8Ge09Z0LHhXuI9lg1dbnk/tcJzzjmnoW42VUatqN9rFrhsODYL5Dfs197bc889d2V+lC+88MJ9119/fb+2qzJeeOGFvuyLj6ZtRXtZ0Cr/LKidu/yaLfjWlwUGq5qv52XBuIZzZFNj1Mt6fSM+Y6q8s8Xs+rK5hwd9+VlgtcEkXLP5RvuyXpsdt5kNQ+/XVvk5dbof99csZb1D+zbddNMhO2c2B3Pb79lm1ySfAAECBAgQIECAAIFXBfQAzf76kYZfYMEFF0wxF2UxxUIPMey6alX4mKfvoosuyufprPX2KtaN7Weffbacle9Hr8WYky56bLWTYkjsueee29b8crFQR/SUjLndykNvyz1Cy+feYYcd8uG4xUWKyscU92ORkeih2mwIf/HY8nb2R3o+z2j0PIrtcooeW1V+0RMp5kw86qijylXsj5LASL5vRukWOz5t9OKMXs7lz4aq4cnR+EorrZQPp45emu2k+N0744wz0le+8pWGHonFurVe1MW82J599tnTF77whfT973+/3/WVjx3L+/G5UrUCeky3EVOfDDZV9fRce+21UxZsHWyTI1YvPj/j35IzzzwzX3xvsCfOvqDKp2+IEQ7tvmcHey71CBAgQIAAAQIECEwUAQHQifKke+A+Y7hf1jum4UoiUFmeo692QAz5i2HYWa+tfL7MrMdnrajfawRCYhh8DHmPxSPKi8f0q1DKiOuKPzbPPvvstP322+fD1WMoeQQ1Yx7RKI/VnOOYGNIfqRwAjflLB0oxvD7mMn33u99dGZiM+hEgjfNdeeWVae+99x6oyablYRJD3mMxkQ984AMN852WK8Uf3PF8Yqh8zMFaFTQt17E/cgIj+b4Zubvq7kyxOFrMA9oqQBS/u7ECfEwxEXMrdppiJe+Y9mLnnXduOW9otBuBz5hzNKbrOPLII/Pf407PN9aOLw6Dr117efqSWn67r1UB0KGa/7Pda+j2uK222ir/t+KHP/xhvghfs2lYyueJ92jMZR3/5sV8oGMh6Fu+B/sECBAgQIAAAQIEelVgUnQE7dWLc10EigIx395ll12Wbr/99nyetOhBGj0yI8gRvT7jdSRTNqS2Yb623/zmN+ld73pX25cQ8wrGfKYxn+DDDz+cFlhggZQNA04xD17M+zbUKbwuvfTSPKCTTUmQz5ca887FPKTx2irAPNTXor3BC4z0+2bwVzpyNWOBsmuuuSaf/zPOmg0dTquttlpaa621huwiotd0fLlyww035L+v8RxiHuGYH7j2086XIEN2QRoaMwIxt3S8d+6///78vRPzgj766KP5l1LxHlp00UXzz+DyPNFj5gZdKAECBAgQIECAAIExICAAOgYekkvsPYEIxpYDhtGzMxZKkggQIECAAAECBAgQIECAAAECBHpHoP/kgL1zba6EwLAJHHHEESlbhCW94Q1vyH9i2OXqq6/e9vmuuOKKhmNjzsBOh903NGCHAAECBAgQIECAAAECBAgQIEBgWAQEQIeFVaO9LhBDzWOOzfiJFAsuxXD0dlPMz1ZMa6yxRtPFUorH2SZAgAABAgQIECBAgAABAgQIEBhZAYsgjay3s/WIQHmutZgbM+YRbCedcsopKeb7LKbtttuuuGubAAECBAgQIECAAAECBAgQIECgRwQEQHvkQbiMkRWI4erzzz9//aSxonus7n7uuefW88obTz75ZL6q+ic+8Yl8AaFa+UorrZR22mmn2q5XAgQIECBAgAABAgQIECBAgACBHhKwCFIPPQyXMrICMeR9k002SS+//HLDiSOguc4666QlllgizT333PnK0vfcc08eHI0gaDHNNtts6U9/+lOKOtLICZx22mnp9ttvH7ETRtA73g8SgdEU8L4fTX3nJkCAAAECBAgQIEBgLAsIgI7lp+fauxY4+uij0xe+8IVBtbPoooumM844I62//vqDqq/S4AVi0aoLLrhg8A10WPPyyy9P6667boe1HE5gaAW874fWU2sECBAgQIAAAQIECEwcAUPgJ86zdqcVArvvvnv65S9/md70pjdVlFZnzTzzzGmrrbZK119/veBnNZFcAgQIECBAgAABAgQIECBAgEDPCFgFvmcehQsZLYEtttgixU+sBP+jH/0o3Xnnnenuu+9O999/f3rllVfy1d0XW2yxtPjii6f3vve9afvtt0+LLLLIaF2u82YCW2+9dVp11VVHzGLatGkjdi4nItBMwPu+mYx8AgQIECBAgAABAgQItBYwBL61j9IJLBALI/373/9O88033wRWcOsECBAgQIAAAQIECBAgQIAAgbEtIAA6tp+fqydAgAABAgQIECBAgAABAgQIECBAoIWAOUBb4CgiQIAAAQIECBAgQIAAAQIECBAgQGBsCwiAju3n5+oJECBAgAABAgQIECBAgAABAgQIEGghIADaAkcRAQIECBAgQIAAAQIECBAgQIAAAQJjW0AAdGw/P1dPgAABAgQIECBAgAABAgQIECBAgEALAQHQFjiKCBAgQIAAAQIECBAgQIAAAQIECBAY2wICoGP7+bl6AgQIECBAgAABAgQIECBAgAABAgRaCAiAtsBRRIAAAQIECBAgQIAAAQIECBAgQIDA2BYQAB3bz8/VEyBAgAABAgQIECBAgAABAgQIECDQQkAAtAWOIgIECBAgQIAAAQIECBAgQIAAAQIExraAAOjYfn6ungABAgQIECBAgAABAgQIECBAgACBFgICoC1wFBEgQIAAAQIECBAgQIAAAQIECBAgMLYFBEDH9vNz9QQIECBAgAABAgQIECBAgAABAgQItBAQAG2Bo4gAAQIECBAgQIAAAQIECBAgQIAAgbEtIAA6tp+fqydAgAABAgQIECBAgAABAgQIECBAoIWAAGgLHEUECBAgQIAAAQIECBAgQIAAAQIECIxtAQHQsf38XD0BAgQIECBAgAABAgQIECBAgAABAi0EBEBb4CgiQIAAAQIECBAgQIAAAQIECBAgQGBsC0we25fv6odb4IgjjkhXXXVV/TRHHnlkWnrppev7NggQIECAAAECBAiMF4Fnn302nXbaaZW3s80226T55puvskwmAQIECBAg0NsCk/qy1NuX6OpGU2CrrbZKZ599dv0Srr322rTGGmvU920QIECAAAECBAgQGC8CjzzySFp33XUrb2fGjBlp+vTplWUyCRAgQIAAgd4WMAS+t5+PqyNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8FQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v5uDoCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9VAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLefj6sjQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvBUJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7+bg6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPVQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS3n4+rI0CAAAECBAgQIECAAAECBAgQIECgCwEB0C7wVCVAgAABAgQIECBAgAABAgQIECBAoLcFBEB7+/m4OgIECBAgQIAAAQIECBAgQIAAAQIEuhAQAO0CT1UCBAgQIECAAAECBAgQIECAAAECBHpbQAC0t5+PqyNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8FQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v5uDoCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9VAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLefj6sjQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvBUJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7+bg6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPVQIECBAgQIAAAQIECBAgQIAAAQIEeltgcm9fnqsjQIAAAQIECBAgQIDAyAjMOuusaaONNqo82VxzzVWZL5MAAQIECBDofQEB0N5/Rq6QAAECBAgQIECAAIEREJhnnnnS8ccfPwJncgoCBAgQIEBgJAUMgR9JbeciQIAAAQIECBAgQIAAAQIECBAgQGBEBQRAR5TbyQgQIECAAAECBAgQIECAAAECBAgQGEkBAdCR1HYuAgQIECBAgAABAgQIECBAgAABAgRGVEAAdES5nYwAAQIECBAgQIAAAQIECBAgQIAAgZEUEAAdSW3nIkCAAAECBAgQIECAAAECBAgQIEBgRAWsAj+i3E5GgAABAgQIECBAgAABAgQITCSBSy+9NF188cVNb3nuuedOe+yxR9NyBQQIdC8gANq9oRYIECBAgAABAgQIECBAgAABApUCEQA9+OCDK8sic5FFFhEAbaqjgMDQCBgCPzSOWiFAgAABAgQIECBAgAABAgQIECBAoAcF9ADtwYfikggQIECAAAECBAgQIECAAIHxIbDlllumZZZZJr+Zww8/PF1//fX59re//e208MILpznmmGN83Ki7INDDAgKgPfxwXBoBAgQIECBAgAABAgQIECAwtgVWWGGFFD+RTj311HoA9N3vfndaaqmlxvbNuXoCY0TAEPgx8qBcJgECBAgQIECAAAECBAgQIECAAAECnQsIgHZupgYBAgQIECBAgAABAgQIECBAgAABAmNEQAB0jDwol0mAAAECBAgQIECAAAECBAgQIECAQOcCAqCdm6lBgAABAgQIECBAgAABAgQIECBAgMAYERAAHSMPymUSIECAAAECBAgQIECAAAECBAgQINC5gABo52ZqECBAgAABAgQIECBAgAABAgQIECAwRgQEQMfIg3KZBAgQIECAAAECBAgQIECAAAECBAh0LiAA2rmZGgQIECBAgAABAgQIECBAgAABAgQIjBEBAdAx8qBcJgECBAgQIECAAAECBAgQIECAAAECnQtM7rzKxKpxyy23pMsuuyzdfPPNKbYjve51r0srr7xy2m677dKUKVMGBHn55ZfTeeedly688MJ07733pmeeeSYtv/zyaaWVVkprr712Wm655QZsIw4YqnbaOpmDCBAgQIAAAQIECBAgQIAAAQIECIwDgUl9WRoH9zEst3DmmWemY445Jg88Vp1g6tSpaZ999knrrLNOVXGe9/DDD6c99tgj3XXXXZXHzDzzzHkb73znOyvLa5lD1U6tvXZft9pqq3T22WfXD7/22mvTGmusUd+3QYAAAQIECBAgQIAAAQIECLQnsNlmm+UdpOLoO+64Iy211FLtVXQUAQJdCegBWsEXMeFDDz00nX/++Xnp5MmT05prrpnWXXfdvPfmpZdemm666ab0r3/9Kx100EHppJNOSksssUS/lp5++um055571oOf06dPz9tYcMEF0/XXX5+inRdeeCEdcsghKY7dcsst+7URGUPVTmXjMgkQIECAAAECBAgQIECAAAECBAiMYwEB0IqHe+6559aDn4svvnj69re/nSJoWUvbbrttOuGEE9IZZ5yRnn322XTEEUekY489tlZcfz3llFPyb3QiY8MNN0z7779/mmWWWfLyzTffPN1www1pr732ygOc3/nOd9J6662XFlhggXr92sZQtVNrzysBAgQIECBAgAABAgQIECBAgACBiSJgEaTSk44emccff3yeO9tss6Wjjz66IfgZBTPNNFPaeeedUwRHI/31r39Njz/+eL5d+8+TTz6ZzjnnnHx3oYUWagh+1o6JeUQjKBop5vesHV8rj9ehaqfYpm0CBAgQIECAAAECBPoLxN8CV1xxReVPzOMvESBAgAABAmNTQA/Q0nO7+uqr0xNPPJHnfuADH0gLL7xw6YhXd2Puzk033TRFb9F55503X9xovvnmqx/7+9//Pu8dGhlbbLFFvedn/YD/bMSw+gikxuJIEQD98Ic/nGLIfS0NVTu19rwSIECAAAECBAgQIFAtEJ0Pdtxxx8rCGTNmpJjSSiJAgAABAgTGnoAeoKVnFgHHWorJiVulHXbYIR8GH8PhozdnMd1444313bXWWqu+XbUR84tGevTRR9N1113XcMhQtdPQqB0CBAgQIECAAAECBAgQIECAAAECE0RAALT0oG+55ZY8J4atT5s2rVTa/m4skhRp0qRJaemll25ZsfhN8p133tlw7FC109CoHQIECBAgQIAAAQIECBAgQIAAAQITROC/Y60nyA23us3nn38+3XffffkhyyyzTP76yiuvpOiFGau2/+Uvf8lXgV922WXTG9/4xrTRRhvl84FWtXn//ffn2bF4UnFIe9WxxWH299xzT8MhQ9VOQ6N2CBAgQIAAAQIECBAgQIAAAQIECEwQAQHQwoP+5z//mfr6+vKcmNfzpZdeSocccki66KKLCkelPCB61llnpV//+tdpv/32S9FbtJhiZfgInEYqzgtaPKa4PXXq1PpuzDtUS0PVTq29qtdYfT4Cu83S3XffnfeEfeSRR1IEiCUCBAgQIECAAAECBAgQIECAAAECY0lAALTwtIorO84666zpS1/6UrrmmmtSLHj0+te/Pr32ta/Ne4hGUDBWbY/5OmOS9FNPPTW95jWvqbf09NNP17djJfmBUvGY5557rn74ULVTb7BiI4bYX3755RUl/82aa6650mOPPfbfDFsECBAgQIAAAQIECBAgQIAAAQIExoiAAGjhQRUDoNG7M4KcMRR+//33T0suuWT9yJin86CDDkp33XVXvmJ89KI8+OCD6+XFdiKQOlAqHlPsZTlU7Qx0fuUECBAgQIAAAQIECBAgQIAAAQIExquARZAKT/bFF1+s70Xwc4EFFkjHHHNMQ/AzDlhqqaVSBD2nTJmSH3/xxRfnc4TWKhfn/Ix2Bkox1L6WisHQoWqn1rZXAgQIECBAgAABAgQIECBAgAABAhNNQA/QwhOfc845C3sp7brrrqmcVzsg5u380Ic+lE444YQ8K+bRXHXVVfPtOeaYo3ZYeuGFF+rbzTaKx8Rw81oaqnZq7VW9Rs/V4lD78jGf+9zn0gUXXJDPh1ous0+AAAECBAgQIECAAAECBAgQIECg1wUEQAtPqBzsXGWVVQql/TdXWmmlembMC1pLxXZaBRdrxxeHuhcDoEPVTu08Va+LLLJIVXY9L+YnLfaMrRfYIECAAAECBAgQIECAAAECBAgQIDAGBAyBLzykBRdcsL4XCx+VV3evF/5nIxZFqqX77ruvtpkiaFhbFOmhhx6q5zfbePDBB+tF888/f317qNqpN2iDAAECBAgQIECAAAECBAgQIECAwAQTEAAtPPB55523HriMuTvvv//+Qmn/zaeeeqqeOffcc9e3Y6O2aFL07nz88ccbyso7xeDp8ssv31A8VO00NGqHAAECBAgQIECAAAECBAgQIECAwAQREAAtPegVVlihnnPjjTfWt6s2ioHLRRddtOGQYjsxP2irdMMNN9SLi/Uis7jfTTv1E9ggQIAAAQIECBAgQIAAAQIECBAgMIEEBEBLD/sd73hHPeeiiy5KfX199f3yxowZM+pZb3vb2+rbsbHBBhvU988///z6dnkjhr//+c9/zrOXXXbZVBwCH5lD1U75vPYJECBAgAABAgQIECBAgAABAgQITAQBAdDSU1533XXTwgsvnOdeffXV6cQTTywd8eruFVdckS677LJ8J+YKfdOb3tRw3DLLLJMioBnp8ssvT1VB0Oeffz4dfvjhKYbbR9p+++3z1+J/hqqdYpu2CRAgQIAAAQIECBAgQIAAAQIECEwUAQHQ0pOOhYf22muvNNNMr9Kcfvrp6cgjj8x7ab700kspemyedtppad99963X3HvvvVMsmlROu+++ez3r0EMPTaeeemp64IEHUrQTw9732GOPdO211+bHxFD39ddfv358cWOo2im2aZsAAQIECBAgQIAAAQIECBAgQIDARBCYlA3xbj7GeyIINLnH6667Lh100EENCxhNnjw5D17WqkyaNCl9+tOfTttss00tq9/rxRdfnA477LD03HPP1csiWFrr9RmZ06ZNSyeccEKaOnVq/ZjyxlC1U253oP2tttoqnX322fXDImC7xhpr1PdtECBAgAABAgQIEBgvAo888kiKEWFVKaa/mj59elWRPAIECLQtsNlmm6XzzjsvP/6OO+5ISy21VNt1HUiAwOAF9ABtYrf66qunk08+Ob31rW9Nc8wxR35U9NyspZVWWikdddRRLYOfcexGG22UD6OP4fC1XqW14GcEVLfeeuu8vFXwcyjbqV2/VwIECBAgQIAAAQIECBAgQIAAAQITQWDyRLjJwd7jAgsskPfejE6y9957b7r99tvTnHPOmZZYYom02GKLtd1sfKNz0kkn5b1Ab7vttnwYfdSPdqZMmTLi7bR9QgcSIECAAAECBAgQIECAAAECBAgQGOMCAqBtPMAY6h7ByvjpJs0+++wpeo7GTzdpqNrp5hrUJUCAAAECBAgQIECAAAECBAgQIDAWBAyBHwtPyTUSIECAAAECBAgQIECAAAECBAgQIDAoAQHQQbGpRIAAAQIECBAgQIAAAQIECBAgQIDAWBAQAB0LT8k1EiBAgAABAgQIECBAgAABAgQIECAwKAEB0EGxqUSAAAECBAgQIECAAAECBAgQIECAwFgQsAjSWHhKrpEAAQIECBAgQIAAgWEXmDx5clp99dUrzxMLkUoECBAgQIDA2BQQAB2bz81VEyBAgAABAgQIECAwxAJTp05NZ5xxxhC3qjkCBAgQIEBgtAUMgR/tJ+D8BAgQIECAAAECBAgQIECAAAECBAgMm4AA6LDRapgAAQIECBAgQIAAAQIECBAgQIAAgdEWEAAd7Sfg/AQIECBAgAABAgQIECBAgAABAgQIDJuAAOiw0WqYAAECBAgQIECAAAECBAgQIECAAIHRFhAAHe0n4PwECBAgQIAAAQIECBAgQIAAAQIECAybgADosNFqmAABAgQIECBAgAABAgQIECBAgACB0RYQAB3tJ+D8BAgQIECAAAECBAgQIECAAAECBAgMm4AA6LDRapgAAQIvIi84AABAAElEQVQECBAgQIAAAQIECBAgQIAAgdEWEAAd7Sfg/AQIECBAgAABAgQIECBAgAABAgQIDJuAAOiw0WqYAAECBAgQIECAAAECBAgQIECAAIHRFhAAHe0n4PwECBAgQIAAAQIECBAgQIAAAQIECAybgADosNFqmAABAgQIECBAgAABAgQIECBAgACB0RYQAB3tJ+D8BAgQIECAAAECBAgQIECAAAECBAgMm4AA6LDRapgAAQIECBAgQIAAAQIECBAgQIAAgdEWEAAd7Sfg/AQIECBAgAABAgQIECBAgAABAgQIDJuAAOiw0WqYAAECBAgQIECAAAECBAgQIECAAIHRFhAAHe0n4PwECBAgQIAAAQIECBAgQIAAAQIECAybgADosNFqmAABAgQIECBAgAABAgQIECBAgACB0RYQAB3tJ+D8BAgQIECAAAECBAgQIECAAAECBAgMm4AA6LDRapgAAQIECBAgQIAAAQIECBAgQIAAgdEWEAAd7Sfg/AQIECBAgAABAgQIECBAgAABAgQIDJuAAOiw0WqYAAECBAgQIECAAAECBAgQIECAAIHRFhAAHe0n4PwECBAgQIAAAQIECBAgQIAAAQIECAybwORha1nDBAgQIECAAAECBAgQGEMCL730Urr11lsrr3jppZdOs802W2WZTAIECBAgQKC3BQRAe/v5uDoCBAgQIECAAAECBEZI4F//+ld63/veV3m2GTNmpOnTp1eWySRAgAABAgR6W8AQ+N5+Pq6OAAECBAgQIECAAAECBAgQIECAAIEuBARAu8BTlQABAgQIECBAgAABAgQIECBAgACB3hYQAO3t5+PqCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8VQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj6ujgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5UAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7efj6ggQIECAAAECBAgQIECAAAECBAgQ6EJAALQLPFUJECBAgAABAgQIECBAgAABAgQIEOhtAQHQ3n4+ro4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOVAAECBAgQIECAAAECBAgQIECAAIHeFhAA7e3n4+oIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxVCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+Pq6OAAECBAgQIECAAAECBAgQIECAAIEuBARAu8BTlQABAgQIECBAgAABAgQIECBAgACB3hYQAO3t5+PqCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8VQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj6ujgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5UAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7efj6ggQIECAAAECBAgQIECAAAECBAgQ6EJAALQLPFUJECBAgAABAgQIECBAgAABAgQIEOhtAQHQ3n4+ro4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOVAAECBAgQIECAAAECBAgQIECAAIHeFhAA7e3n4+oIECBAgAABAgQIECBAgAABAgQIEOhCYHIXdVUlQIAAAQIECBAgQIDAuBGYaaaZ0pJLLll5P7PMMktlvkwCBAgQIECg9wUEQHv/GblCAgQIECBAgAABAgRGQGD++edPv/3tb0fgTE5BgAABAgQIjKSAIfAjqe1cBAgQIECAAAECBAgQIECAAAECBAiMqIAA6IhyOxkBAgQIECBAgAABAgQIECBAgAABAiMpIAA6ktrORYAAAQIECBAgQIAAAQIECBAgQIDAiAoIgI4ot5MRIECAAAECBAgQIECAAAECBAgQIDCSAhZBGklt5yJAgAABAgQIECBAgAABAgQaBH7961+nY445piGvuDPrrLOmOEYiQIDAYAUEQAcrpx4BAgQIECBAgAABAgQIECDQtcA999yTLrjggqbtzDbbbE3LFBAgQKAdAUPg21FyDAECBAgQIECAAAECBAgQIECAAAECY1JAAHRMPjYXTYAAAQIECBAgQIAAAQIExofARz7ykfT3v/89/9l8883rN/Wb3/wmz7vtttvqeTYIECAwGAFD4Aejpg4BAgQIECBAgAABAgQIECAwJAJTpkxJ8RNprrnmqre56KKLpiWWWKK+b4MAAQKDFdADdLBy6hEgQIAAAQIECBAgQIAAAQIECBAg0PMCAqA9/4hcIAECBAgQIECAAAECBAgQIECAAAECgxUQAB2snHoECBAgQIAAAQIECBAgQIAAAQIECPS8gABozz8iF0iAAAECBAgQIECAAAECBAgQIECAwGAFBEAHK6ceAQIECBAgQIAAAQIECBAgQIAAAQI9LyAA2vOPyAUSIECAAAECBAgQIECAAAECBAgQIDBYAQHQwcqpR4AAAQIECBAgQIAAAQIECBAgQIBAzwsIgPb8I3KBBAgQIECAAAECBAgQIECAAAECBAgMVkAAdLBy6hEgQIAAAQIECBAgQIAAAQIECBAg0PMCAqA9/4hcIAECBAgQIECAAAECBAgQIECAAAECgxUQAB2snHoECBAgQIAAAQIECBAgQIAAAQIECPS8gABozz8iF0iAAAECBAgQIECAAAECBAgQIECAwGAFBEAHK6ceAQIECBAgQIAAAQIECBAgQIAAAQI9LyAA2vOPyAUSIECAAAECBAgQIECAAAECBAgQIDBYgcmDrageAQIECBAgQIAAAQIExpPAK6+8kh588MHKW1pwwQXT5Mn+fKrEkUmAAAECBHpcwL/gPf6AXB4BAgQIECBAgAABAiMj8Nhjj6UNNtig8mQzZsxI06dPryyTSYAAAQIECPS2gCHwvf18XB0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacqAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvPx9URIECAAAECBAgQIECAAAECBAgQINCFgABoF3iqEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fFwdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKgECBAgQIECAAAECBAgQIECAAAECvS0gANrbz8fVESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4qhIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/XxcHQECBAgQIECAAAECBAgQIECAAAECXQgIgHaBpyoBAgQIECBAgAABAgQIECBAgAABAr0tIADa28/H1REgQIAAAQIECBAgQIAAAQIECBAg0IWAAGgXeKoSIECAAAECBAgQIECAAAECBAgQINDbAgKgvf18XB0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacqAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvPx9URIECAAAECBAgQIECAAAECBAgQINCFgABoF3iqEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fFwdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKgECBAgQIECAAAECBAgQIECAAAECvS0gANrbz8fVESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4qhIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/XxcHQECBAgQIECAAAECBAgQIECAAAECXQgIgHaBpyoBAgQIECBAgAABAgQIECBAgAABAr0tIADa28/H1REgQIAAAQIECBAgQIAAAQIECBAg0IXA5C7qqkqAAAECBAgQIECAAIFxIzDTTDOlqVOnVt5PlEkECBAgQIDA2BQQAB2bz81VEyBAgAABAgQIECAwxALzzz9/uuaaa4a4Vc0RIECAAAECoy3ga8zRfgLOT4AAAQIECBAgQIAAAQIECBAgQIDAsAkIgA4brYYJECBAgAABAgQIECBAgAABAgQIEBhtAQHQ0X4Czk+AAAECBAgQIECAAAECBAgQIECAwLAJCIAOG62GCRAgQIAAAQIECBAgQIAAAQIECBAYbQEB0NF+As5PgAABAgQIECBAgAABAgQIECBAgMCwCQiADhuthgkQIECAAAECBAgQIECAAAECBAgQGG0BAdDRfgLOT4AAAQIECBAgQIAAAQIECBAgQIDAsAkIgA4brYYJECBAgAABAgQIECBAgAABAgQIEBhtAQHQ0X4Czk+AAAECBAgQIECAAAECBAgQIECAwLAJCIAOG62GCRAgQIAAAQIECBAgQIAAAQIECBAYbQEB0NF+As5PgAABAgQIECBAgAABAgQIECBAgMCwCQiADhuthgkQIECAAAECBAgQIECAAAECBAgQGG0BAdDRfgLOT4AAAQIECBAgQIAAAQIECBAgQIDAsAkIgA4brYYJECBAgAABAgQIECBAgAABAgQIEBhtAQHQ0X4Czk+AAAECBAgQIECAAAECBAgQIECAwLAJCIAOG62GCRAgQIAAAQIECBAgQIAAAQIECBAYbQEB0NF+As5PgAABAgQIECBAgAABAgQIECBAgMCwCQiADhuthgkQIECAAAECBAgQIECAAAECBAgQGG0BAdDRfgLOT4AAAQIECBAgQIAAAQIECBAgQIDAsAkIgA4brYYJECBAgAABAgQIECBAgAABAgQIEBhtAQHQ0X4Czk+AAAECBAgQIECAAAECBAgQIECAwLAJCIAOG62GCRAgQIAAAQIECBAgQIAAAQIECBAYbQEB0NF+As5PgAABAgQIECBAgAABAgQIECBAgMCwCUwetpY1TIAAAQIECBAgQIAAgTEm8Oyzz1Ze8eyzz54mTZpUWSaTAAECBAgQ6G0BAdDefj6ujgABAgQIECBAgACBERJ45JFH0rrrrlt5thkzZqTp06dXlskkQIAAAQIEelvAEPjefj6ujgABAgQIECBAgAABAgQIEBjjAn/8Y0q7757SlVf+90Y+9amUfvjDlJ577r95tggQGB4BAdDhcdUqAQIECBAgQIAAAQIECBAgMMEFso7lacstU3rzm1P61rdSeuKJ/4Kcf35KH/tYSm94Q0pZJ3OJAIFhFBAAHUZcTRMgQIAAAQIECBAgQIAAAQITU+Dee1Naa62UfvnL1vcfx733vSkdd1zr45QSIDB4AQHQwdupSYAAAQIECBAgQIAAAQIECBDoJ/DCCyltvnlKd93Vr6gy45VXUvrsZ1O66KLKYpkECHQpIADaJaDqBAgQIECAAAECBAgQIECAAIGiwPHHp/TnPxdzBt5++eWUPv3plOJVIkBgaAWsAt+h59NPP51222239Nhjj6W3ve1tac899xywhZezT6/zzjsvXXjhhenerG/7M888k5Zffvm00korpbXXXjstt9xyA7YRBwxVO22dzEEECBAgQIAAAQIECBAgQIDAoAS+851BVUs335zSBRektOmmg6uvFgEC1QICoNUuTXOPPvrodMcdd+Tl//73v5seVyt4+OGH0x577JF1e2/s9/6nP/0pxc+pp56a9tlnn/TOd76zVqXydajaqWxcJgECBAgQIECAAAECBAgQIDAkArfemtKddw6+qaz/lADo4PnUJFApIABayVKdefHFF6fzY5m2NlP0Fo0eorXg5/Tp09O6666bFlxwwXT99denSy+9NL2QTQxyyCGHpDh2y1gariINVTsVTcsiQIAAAQIECBAgQIAAAQIEhlCgm+BnXEap/9QQXpmmCExcAQHQNp/9Qw89lL75zW+2efSrh51yyin13qIbbrhh2n///dMss8ySF26ezYZ8ww03pL322isPfn4n6x+/3nrrpQUWWKDfOYaqnX4NyyBAgAABAgQIECBAgAABAgSGVOD557tr7rnnuquvNgEC/QUsgtTfpF9OX19f+trXvpaeeuqpNMccc/Qrr8p48skn0znnnJMXLbTQQg3Bz9rxK6+8cp4f+zG/Z+34Wnm8DlU7xTZtEyBAgAABAgQIECBAgAABAsMjsNhi3bU7bVp39dUmQKC/gABof5N+OT/72c/S//3f/6VJkyalz3zmM/Xy2G+Wfv/736dnn302L95iiy3qPT/Lx8eQ+MUXXzzPjgDoSy+91HDIULXT0KgdAgQIECBAgAABAgQIECBAYFgEVl01pXnnHXzT668/+LpqEiBQLSAAWu1Sz7399tvT9773vXx/u+22S6usskq9rNXGjTfeWC9ea6216ttVG2uuuWae/eijj6brrruu4ZChaqehUTsECBAgQIAAAQIECBAgQIDAsAjEzHcf/ODgmp5nnpSyPlQSAQJDLCAA2gI0Fij6yle+kl588cUUCxh9/OMfb3F0Y9FNN92UZ0Qv0aWXXrqxsLQXbdfSnaXZkoeqnVr7XgkQIECAAAECBAgQIECAAIHhFTjggMH1At1vv5Tmm294r03rBCaigEWQWjz1E044IV/BPRYuKi5g1KJKvej+++/Pt2PF98mTWzMvvPDC9Xr33HNPfTs2hqqdhkYLO3/5y1/Sww8/XMhp3Iw5SOeaa658OP8rr7zSWGiPAAECBAgQIECAAAECBAgQ6Cew6KIpnX56Su9+d7+iphkROthxx6bFCggQ6EKgdWSui4bHetU//elP6Re/+EV+GzvttFNaaqml2r6lmPuzFiycr42vbqZOnVpvOwKOtTRU7dTaq3o97rjj0h/+8IeqonretGwG5nvvvbc+p2m9wAYBAgQIECBAgAABAgQIECAwJAKxJEi2/nI66qghaU4jBAgUBAyBL2DUNiMIeeihh+a7q622WvrABz5QK2rr9emnn64fN9tss9W3m20Uj3nuuefqhw1VO/UGbRAgQIAAAQIECBAgQIAAAQIjIpD1N+o4ZQNR0wMPdFxNBQIEBhAQAK0A+vrXv55iQaIY+r1fNgFHq9XeK6qnZ555pp4966yz1rebbRSPef755+uHDVU79QZtECBAgAABAgQIECBAgAABAsMu8Pe/p/Tb33Z+mmxAabYWSef11CBAoLWAIfAln3PPPTddcsklee7nP//5VJyfs3Ro093inJ8vv/xy0+NqBS9FP/f/pGIwdKjaqbVd9fr2t789Lb744lVFed6MGTPSHXfckYrX2PRgBQQIECBAgAABAgQIECBAgECKnpwDLaPxmtekrPNVf6xTTknpS19K6fWv718mhwCBwQkIgBbcHsj6mX/rW9/KczbYYIO0ySabFErb35xjjjnqB8dK8gOl4jHR67SWhqqdWntVr9tss01Vdj3vz3/+c7r66qvr+zYIECBAgAABAgQIECBAgACB5gIRBjj55OryKVNS+ve/Xy37zGdSOuig/sdF/QMPTOnUU/uXySFAYHAChsD/xy16an71q1/NF/qZZ5550i677JKeeuqpfj/FeTlffPHFenlxuPqcc85ZfxrF4+uZpY1i3WIAdKjaKZ3OLgECBAgQIECAAAECBAgQIDBMAmeemdJDD1U3vsQS/82P/kjNBmTGCvK33PLfY20RINCdgB6g//F74okn0o033pjvxSJI22677YCyl156aYqfSKuuumr67ne/m2/HokavyfqyxzyiDzX71MuPfPU/Dz74YH1v/vnnr28PVTv1Bm0QIECAAAECBAgQIECAAAECwypw/PHVzceAz8UWS+lvf3u1PNZMPvjglHbcsf/xMZvel7+c0i9+0b9MDgECnQvoAdq5WVs1llxyyfy46N35+OOPt6xz33331cuXX375+nZsDFU7DY3aIUCAAAECBAgQIECAAAECBIZc4KabUrr88upmd9ghpVlmaSyLvOnTG/Nqe2edldJf/lLb80qAQDcCeoD+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n9K991aXySVAICUBUO8CAgQIECBAgAABAgQIECBAgMAAAlddldKf/1x90Mc/ntLss1eXDVXulCkp7btvdWvPP5/SQQdVl8klQEAA1HuAAAECBAgQIECAAAECBAgQIDCgQLPFjyZNSmmnnQasPiQHxCJL06ZVN3XaaSndfnt1mVwCE11AD9CJ/g5w/wQIECBAgAABAgQIECBAgEBLgUcfTenMM6sP+Z//SWn69Oqyoc6NXqYHHFDd6ksvpbT//tVlcglMdAEB0In+DnD/BAgQIECAAAECBAgQIECAQEuBk09O6bnnqg/51Keq84cr92MfS2nJJatb//nPU7rxxuoyuQQmsoAA6ER++u6dAAECBAgQIECAAAECBAgQaCnQ15dSs8WPXvvalN71rpbVh7xwlllS+spXqpt95ZWU9tuvukwugYksIAA6kZ++eydAgAABAgQIECBAgAABAgRaCpx/fkp33FF9yM47pzTzzNVlw5m73XYpLb989RnOOSela6+tLpNLYKIKTJ6oN+6+CRAgQIAAAQIECBAgUBR4NJvkb8MNNyxm1bd/+ctfpqWXXrq+b4MAgYkjcPzx1fc6OYuoxOrvo5FmyrqzHXJISlttVX32WC3+gguqy+QSmIgCeoBOxKfungkQIECAAAECBAgQ6CfQl41zff755yt/okwiQGDiCdx7b0ozZlTf95ZbprTootVlI5H7vveltNpq1Wf63e9Suuyy6jK5BCaigADoRHzq7pkAAQIECBAgQIAAAQIECBAYUCDm/nz55erDdt21On+kcidNSulrX2t+NnOBNrdRMvEEBEAn3jN3xwQIECBAgAABAgQIECBAgMAAAi++mNIPflB90HLLpbTBBtVlI5m7ySYprbNO9RmjB+h551WXySUw0QQEQCfaE3e/BAgQIECAAAECBAgQIECAwIAC2dS/6Z//rD7sU5+qzh+N3EMPbX7WAw5oXqaEwEQSEACdSE/bvRIgQIAAAQIECBAgQIAAAQJtCRx3XPVhc86Z0g47VJeNRm70RN144+ozx2rwZ51VXSaXwEQSEACdSE/bvRIgQIAAAQIECBAgQIAAAQIDCtx8c0qXXFJ92HbbpTR1anXZaOV+9avNz3zggSm98krzciUEJoKAAOhEeMrukQABAgQIECBAgAABAgQIEGhboFnvz2hgl13abmbEDnzzm1PafPPq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lpiFCxd65+O+IednqnyLFy82X375ZdzF8tKvCmDbtm29/a+++sroLylBFaTWrVt74nzxxRdGwx+TEpo3b57WarpgwQKzdOnSpIhnNttsM9OyZUtPHg1NTZKTQrJJhy7o25ekSvzmm29umjZt6sQzn3zySaIakFq1apXWwPnRRx8lqgFCeWdqA9ns2bMT5cDWt881QMgxL/mSFLbaaivPQa+GMdlnUoIchKllMzVuKn9JSlDDSqp8SasbqWEzVT5915M09YQab1PlU7lM5bOkhMy6kcrVKl8nJahxU/mnC0mrG6lcllo3Ur1W9dukBIbAJ0WTVZbj2muvNTNnzqzyU7LfXj2W3njjDe9ks2bNTI8ePbz9uG/oo/7WW295YrRo0cJ069bN24/7hj7q77zzjieGKoRdunTx9uO+8fXXX5v333/fE0MVpo4dO3r7cd9QgSW1UqQC29Zbbx13sbz0z58/33z66afe/rbbbptWqPFOxHRDDrPUSsN2221nttxyy5hKUzvZH3/8cVqDSteuXdMcorWviNeRDz74IG30xY477pjmEI2XNLVT+95776U1OOyyyy5pIz5qXxGvI2+//XbavOl77LFHWo/zeElTO7UzZsxIc8j36tXLpPborX1FvI5o3ns34kEOtT59+sRLgAKp1Xymrse1HL177rlngSvic1o9IqdOneolWA6Z3XbbzduP+4YcutOmTfPEkMNip5128vbjviGHrvIXF9TY2b17d7cb+99ly5al1as1vHf77bePvVxOADnLZs2a5XZNmzZtTKdOnbz9uG/IIfjhhx96YiStbiRnfGqD0TbbbGPatWvnyRv0xujRo01qj/5yn48DtFyCXF91AnJQDBgwwHtOz549zT333OPtx31DFcBDDjnEE2OfffYxt9xyi7cf9w0VQE866SRPDMkqh3pSwtNPP22GDBniiXPyySebiy66yNuP+4bmAL7wwgs9MSTr0KFDvf24b9xxxx3m6quv9sQYPny4+fnPf+7tx33jxhtvNCo4uHDNNdeYQw891O3G/veyyy4zY8eO9eT461//avbdd19vP+4b5557rnnsscc8MSRrkpwUp59+unn++ec9+caNG2d22GEHbz/uG8cee2xaA+4LL7xgK4Jxl8ul/4ADDkhrIJs+fXpaj1cXL66//fr180Z0yEEYVkeAavHbeeedvR7X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JAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIBBnAvXjnHjSDgEIQAACEIAABCAAAQhAoFwCmoNeq74XG5YsWeItlhflKVOQL7tm0V92LkEfxT6zE8c+s3MJ+miS7fO7776zU71oMeligobIu7mzNUWM/uIQGAIfBy2RRghAAAIQgAAEIAABCECgogQmTZpkF0Byc59pbuju3bubgw8+2GhxTT/h/PPPN5MnT7ZRX3zxRT+XBBYH+QqjRn+FGVUrBvZZmCz2WZhRtWIk2T411+ftt99uF0DS2gia67Nbt25m9913N8cee6zZZJNNCmLVd/O0006z8U499VQzePDggtdEIQI9QKOgBdIAAQhAAAIQgAAEIAABCARCYNWqVea6664zEydOTHueFuDU31NPPWWOOuooc/rpp/uqCKbdJAI7yIf+ImCGOZOAfWKfOY0jAieSbp+vvvqqueKKK7zem0KuRf9ef/11+zdhwgRz4YUX+m4EjIDKikoCc4AWhYvIEIAABCAAAQhAAAIQgECcCYwZMybN+aneL1tttZUn0vr16839999v1Ktl3rx53vG4bCAf+ouyrWKf2Cf2GQ6BhQsXmuHDh6c5P9u0aWNXencpmjNnjhkyZIi566673KFE/eIATZQ6EQYCEIAABCAAAQhAAAIQyEVg9uzZ5qGHHrKnW7Zsaa666irrDJXD88knnzRnnnmmN5fZ559/boYOHRorJyjyob9cth+F49gn9hkFO8yVhqTb50033WRWr15txR84cKB57LHHzL///W/7DVTDxB577GHPqRHwtttus3+5WMX1OEPg46q5hKT7oIMOMnrBqhHGjx9fjdsWdU/kKwpXWmT0l4ajKjtJts977rnHjB07tircjj/+eHPCCSdU5d5+b4p8fknVjof+ajOp9BHss3Si2Gfp7Pxe+cgjj5h169aZevXqmVGjRpkuXbp4lzZt2tRIBz/5yU/M73//e/Phhx+aL774wpxzzjnmlltuMZtvvrkXN6obyIf+omqbShf2iX1in+EQWLRokXn++eftwwcMGGBGjBjhJUQLIGn+6xtvvNE8+OCD9lc+GvUCbdy4cej1Hi+hFdjAAVoBiNyidAJLly6tmgO09FRV7krkqxzLMO6E/sKgXplnarVG6a8a4dtvv63GbYu6J/IVhSstMvpLw1GVHeyzdKzYZ+ns/F6pBR8U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" width="672" /></p>
<div class="sourceCode" id="cb11"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_WLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb11-2"><a href="#cb11-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb11-3"><a href="#cb11-3" aria-hidden="true" tabindex="-1"></a>results_koguchi_number_WLS <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-emergency-small-amount-funds緊急小口の決定件数-with-covar" class="section level1" number="6">
<h1 number="6"><span class="header-section-number">6</span> Y = emergency small amount funds/緊急小口の決定件数 with covar</h1>
<div id="ols-no-trends-1" class="section level2" number="6.1">
<h2 number="6.1"><span class="header-section-number">6.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb12"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb12-2"><a href="#cb12-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_OLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb12-3"><a href="#cb12-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb12-4"><a href="#cb12-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb12-5"><a href="#cb12-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb12-6"><a href="#cb12-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3,)</span></span>
<span id="cb12-7"><a href="#cb12-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb12-8"><a href="#cb12-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb12-9"><a href="#cb12-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb12-10"><a href="#cb12-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb12-11"><a href="#cb12-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_OLS&quot;</span>)</span>
<span id="cb12-12"><a href="#cb12-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb12-13"><a href="#cb12-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb12-14"><a href="#cb12-14" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_OLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb12-15"><a href="#cb12-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_OLS&quot;</span>)</span>
<span id="cb12-16"><a href="#cb12-16" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_OLS_covar</span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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AgQIjEFAYKAErrjiivTCCy9Uq1911VXThz/84eq+jZEv8Lvf/S699NJL1RtdbbXV0uKLL17d79SG91qnJId/PZdeeml65ZVXqjeyxhprpEUXXbS6b6McApMnT07xe3v99denp556Kj3zzDPp2WefTbPNNltaZJFFqj8TJkxIn/3sZ9N0003X74bfdddd6c4776w5/wtf+EIaO3ZsTd5A7zz44IPp8ssvTzfeeGP1np9//vn0wQ9+MM0zzzz5z9JLL53f7+qrr57GjPG/aAP9TNRPgAABAgQIECAwegSm6crS6LlddzqYAiuuuGLNH50/+tGP0m677TaYTXCtIRZYdtll0z333FNtxdlnn5122mmn6n6nNrzXOiU5/OuJL1kiuFZJP/3pT9O2225b2fU6hAJTpkxJ55xzTjrhhBPS/fff33JLFlpoobT77runr3zlK2nuuedu+bxKwaOPPjodfPDBld38Nb6YicDjYKSLLrooHX744TWfhb1dNwLB22yzTTriiCPSXHPN1VtxxwkQIECAAAECBAgQ6EXAEPhegBwmQIAAAQIE2hOIno/LL7982mWXXfoU/IyrPvbYY+nAAw9MCy64YPrGN76R3n333fYaM0hnRyB+rbXWSltttVWfgp/RvAjQnnbaaekjH/lI/jpITXYZAgQIECBAgAABAiNWQAB0xD5aN0aAAAECBIZe4Nvf/nbacMMN0z/+8Y8eGzP99NP3ePytt95KJ510Uvrv//7v9Nxzz/VYdqgPPv7442ndddfNh/i305YXX3wxTZw4MR1yyCHtVONcAgQIECBAgAABAqNewARTo/4tAIAAAQIECHRe4J133smHrZ933nndKp9mmmnSf/3Xf+WB0U9/+tPpQx/6UD4k/fXXX08PPfRQ/nPVVVelc889N0VeMf3xj39MK6+8cvrNb36TPvaxjxUPlWL71VdfTeutt1765z//2a09a665Ztp6663z+417nn/++dPLL7+cHn300fznpptuSjFtQ30v16OOOirNN998eTC0W6UyCBAgQIAAAQIECBDoVUAAtFciBQgQKLvAHnvskf71r39VmxnBEYkAgaEV2G+//VKj4OdnPvOZ9J3vfCettNJK3Rr4gQ98IC233HL5z8Ybb5yi92jMHx3zeBYDoREwjB6W//d//5cWWGCBbvUMZcYZZ5zRbch7fCZ9//vf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msccm/ETKRZdiuHoraaYv62YJkyYkM8XWsyzTYAAAQIECBAgQIAAAQIECBAgMDACFkEaGFe1jiCB+rnYYm7MmEewlXTOOeekmO+zmLbZZpvirm0CBAgQIECAAAECBAgQIECAAIEBFBAAHUBcVY8MgRiuPsccc1RvJlZ0j9Xdr7jiimpe/cbLL7+cr6r+la98JV9AqHJ8+eWXT7vuumtl1ysBAgQIECBAgAABAgQIECBAgMAAC1gEaYCBVT8yBGLI+/rrr5+mTJlSc0MR0Fx99dXzlYrHjRuXrywdKxlHcDSCoMU0wwwzpNtuuy3FOdLgCZx33nlp8uTJg3bBCHrHytUSgaES8J4fKnnXJUCAAAECBAgQIECgrAICoGV9MtpVOoGTTz457bPPPv1q1/zzz58uuOCCtNZaa/XrfCf1X2C99dZLV199df8r6OOZN954Y1pjjTX6eJbiBDon4D3fOUs1ESBAgAABAgQIECAwMgQMgR8Zz9FdDILA17/+9fTrX/86ffzjH2/5atNNN13aYost0p133in42bKaggQIECBAgAABAgQIECBAgACBzglYBb5zlmoaBQKbbrppip9YCf78889PDz30UHrkkUfSE088kd577718dffx48enBRdcMG288cZp2223TfPNN98okCnvLX7+859PH/vYxwatgQsssMCgXcuFCDQS8J5vpCKPAAECBAgQIECAAIHRLGAI/Gh++u69YwKxMNKrr76aZp999o7VqSICBAgQIECAAAECBAgQIECAAIH2BQRA2zdUAwECBAgQIECAAAECBAgQIECAAAECJRUwB2hJH4xmESBAgAABAgQIECBAgAABAgQIECDQvoAAaPuGaiBAgAABAgQIECBAgAABAgQIECBAoKQCAqAlfTCaRYAAAQIECBAgQIAAAQIECBAgQIBA+wICoO0bqoEAAQIECBAgQIAAAQIECBAgQIAAgZIKCICW9MFoFgECBAgQIECAAAECBAgQIECAAAEC7QsIgLZvqAYCBAgQIECAAAECBAgQIECAAAECBEoqIABa0gejWQQIECBAgAABAgQIECBAgAABAgQItC8gANq+oRoIECBAgAABAgQIECBAgAABAgQIECipgABoSR+MZhEgQIAAAQIECBAgQIAAAQIECBAg0L6AAGj7hmogQIAAAQIECBAgQIAAAQIECBAgQKCkAgKgJX0wmkWAAAECBAgQIECAAAECBAgQIECAQPsCAqDtG6qBAAECBAgQIECAAAECBAgQIECAAIGSCgiAlvTBaBYBAgQIECBAgAABAgQIECBAgAABAu0LCIC2b6gGAgQIECBAgAABAgQIECBAgAABAgRKKiAAWtIHo1kECBAgQIAAAQIECBAgQIAAAQIECLQvIADavqEaCBAgQIAAAQIECBAgQIAAAQIECBAoqYAAaEkfjGYRIECAAAECBAgQIECAAAECBAgQINC+wJj2q1ADgZSmTJmStthiiyrF/PPPn04//fTqvg0CBAgQIECAAAECw1Hg0ksvTU8//XS3pq+88sppwoQJ3fJlECBAgAABAuUTEAAt3zMZli167733UvzPYSUtscQSlU2vBAgQIECAAAECBIatwAUXXJDuuOOObu2fNGmSAGg3FRkECBAgQKCcAobAl/O5aBUBAgQIECBAgAABAgQIECBAgAABAh0QEADtAKIqCBAgQIAAAQIECBAgQIAAAQIECBAop4AAaDmfi1YRIECAAAECBAgQIECAAAECBAgQINABAQHQDiCqggABAgQIECBAgAABAgQIECBAgACBcgoIgJbzuWgVAQIECBAgQIAAAQIECBAgQIAAAQIdEBAA7QCiKggQIECAAAECBAgQIECAAAECBAgQKKeAAGg5n4tWESBAgAABAgQIECBAgAABAgQIECDQAQEB0A4gqoIAAQIECBAgQIAAAQIECBAgQIAAgXIKCICW87loFQECBAgQIECAAAECBAgQIECAAAECHRAQAO0AoioIECBAgAABAgQIECBAgAABAgQIECingABoOZ+LVhEgQIAAAQIECBAgQIAAAQIECBAg0AEBAdAOIKqCAAECBAgQIECAAAECBAgQIECAAIFyCgiAlvO5aBUBAgQIECBAgAABAgQIECBAgAABAh0QEADtAKIqCBAgQIAAAQIECBAgQIAAAQIECBAop4AAaDmfi1YRIECAAAECBAgQIECAAAECBAgQINABAQHQDiCqggABAgQIECBAgAABAgQIECBAgACBcgoIgJbzuWgVAQIECBAgQIAAAQIECBAgQIAAAQIdEBAA7QCiKggQIECAAAECBAgQIECAAAECBAgQKKeAAGg5n4tWESBAgAABAgQIECBAgAABAgQIECDQAYExHahDFU0EXnvttTRx4sT0wgsvpE996lNpv/32a1Ly/ewnnnginX/++em+++5LsT3PPPOk5ZZbLi2//PJp3XXXTTPNNNP7hXvY6lQ9PVzCIQIECBAgQIAAAQIECBAgQIAAAQKlFxAAHcBHdPLJJ6cHH3wwv8Krr77a65UuuOCCdMYZZ6QpU6ZUyz766KMpfi6//PJ02WWXpRNOOCGNGzeuerzRRqfqaVS3PAIECBAgQIAAAQKjSWDllVdOs88+e7dbXnTRRbvlySBAgAABAgTKKSAAOkDP5Q9/+EO66qqrWq49ApynnXZaXn766afPe3tGz89nnnkm3XTTTXkg9e6770577rlnisDqHHPM0bDuTtXTsHKZBAgQIECAAAECBEaZwL777jvK7tjtEiBAgACBkScwTVeWRt5tDe0dRdByxx13TK+88kq1ITF8/YgjjqjuFzdefPHFtOWWW6a33347zTzzzOk73/lOWnHFFatF3n333XTUUUela6+9Ns/bbLPN0j777FM9XtnoVD2V+vry+s4776QI3FbSEksskR544IHKrlcCBAgQIECAAAECBAgQIECAAAECQyJgEaQOs0c8+ZhjjsmDn63O13nRRRflwc9oyh577FET/Iy8MWPGpEMPPTQttdRSsZuuvPLK9Prrr+fbxf90qp5inbYJECBAgAABAgQIECBAgAABAgQIDGcBAdAOP70LL7ww/fWvf03TTDNN2muvvaq1x36zFMPWI0XA9LOf/WzDYtNOO236whe+kB9744038iBofcFO1VNfr30CBAgQIECAAAECBAgQIECAAAECw1VAALSDT27y5MnpzDPPzGvcZptt0gorrNBr7U899VS+SnwUjGHvY8eObXrOhAkTqseuvvrq6nZsdKqemkrtECBAgAABAgQIECBAgAABAgQIEBjmAgKgHXqAMX/nkUcemWIuzJj/8stf/nJLNcfCRpUU5/WUYvXJOeecMy/y0EMP1RTtVD01ldohQIAAAQIECBAgQIAAAQIECBAgMMwFrALfoQf4ox/9KD388MN5D85DDjmkx56cxUs+/vjj1d3x48dXt5ttzDvvvOn5559PMQz+ueeeS3PNNVdetFP1NLuufAIECBAgQIAAAQIECBAgMJACb775Zjr22GN7vMROO+2UFl544R7LOEiAAIF6AQHQepF+7N92220pFiCKtOuuu6bFFlus5Vpee+21atno4dlbmm222apFXn755WoAtFP1VCuv23jrrbfSzjvvXJf7/m4s/vShD30ovffee+nJJ598/4AtAgQIECBAgAABAgQIECDQgkB09DniiCN6LLnuuusKgPYo5CABAo0EBEAbqfQhL4KQRx99dH5GzOFZWaio1SqKgcsZZpih19OKZeLbsUrqVD2V+upfp0yZkv7yl7/UZ9fsf+ADH0hRTiJAgAABAgQIECBAgAABAgQIECBQFgEB0DafxPHHH58PSZ955pnTQQcdlK/+3pcqX3/99Wrx6aefvrrdbKNYJnplVlKn6qnU55UAAQIECBAgQIAAAQIECAymwCyzzJJ+8Ytf5Jf885//nE455ZR8e/PNN09bbbVVvr300ksPZpNciwCBESIgANrGg7ziiivSn/70p7yGvffeO8X8nH1NY8a8/wha6T1ZLFMMhnaqnr62X3kCBAgQIECAAAECBAgQINAJgbFjx1ZHVU477bTVAOiyyy5bze/EddRBgMDoE3g/+jb67r2tO455LivfRq299tpp/fXX71d9M800U/W8WEm+t1Ts9Rm9TiupU/VU6qt/jfr/8Ic/1GdX9999993U2yr21cI2CBAgQIAAAQIECBAgQIAAAQIECAySgABoP6CjF+a3v/3tfCX2WWedNe2+++7plVde6VZTcV7Od955p1pmuummSzFfZqRiELNYvltl/8koDnUvnlvcbqeeZtedZppp0gILLNDscIr7iyCoRIAAAQIECBAgQIAAAQIECBAgQKBMAgKg/Xga//73v9Ndd92VnxmLIG299da91nL99den+In0sY99LH3/+9/Pt8ePH5+/xn+eeeaZ6nazjUqZCKJG8LWSOlVPpT6vBAgQIECAAAECBAgQIECAAAECBEaCwLQj4SaG8z0sssgi1eY/8cQT1e1GG9HD8umnn84PLbbYYqm4Inyn6ml0XXkECBAgQIAAAQIECBAgQIAAAQIEhquAHqD9eHIzzjhj2n777Xs9M3qKXnrppXm5CFCuueaa+Xaxt2bMmxkTPccQ8jvvvLPHOu+55568XBRaZpllasp2qp6aSu0QIECAAAECBAgQIECAAAECBAgQGOYCAqD9eIAxf+cuu+zS65mPPfZYNQC6+OKLNzwn6lp11VXTjTfemB5++OF0//33p4985CMN677qqquq+auvvnp1OzY6VU9NpXYIECBAgAABAgQIECBAgAABAgQIDHMBQ+BL8AA33HDDaitOOOGE6mJJ1cxs45ZbbkmXX355nrXoooum1VZbrXg43+5UPd0qlkGAAAECBAgQIECAAAECBAgQIEBgmAoIgJbgwa2xxhp5L9Boyr333psmTZqU/vrXv6a33norPfvss+miiy5KBxxwQIrV52M19lh1Pl7rU6fqqa/XPgECBAgQIECAAAECBAgQIECAAIHhKmAIfEme3KGHHpoOP/zwdNttt6XJkyenvffeO8VK7xH0LKY999wz1Q9/Lx7vVD3FOm0TIECAAAECBAgQIECAAAECBAgQGK4CeoCW5MnNOuus6cQTT0zbbbddGjduXN6qYvAzVn0//vjj01ZbbdVjiztVT48XcZAAAQIECBAgQIAAAQIECBAgQIDAMBHQA3QAH9RCCy2UbrjhhpavMO2006Zdd901/3nyySfTAw88kGaYYYa04IILpvnnnz/F8VZSp+pp5VrKECBAgAABAgQIECBAgAABAgQIECizgABoSZ/O+PHjU/y0mzpVT7vtcD4BAgQIECBAgAABAgQIECBAgACBoRBorUvhULTMNQkQIECAAAECBAgQIECAAAECBAgQINCmgB6gbQI6nQABAgQIECBAgACBkSvw97//Pb3yyivdbjCmu4qpqiQCBAgQIECg/AICoOV/RlpIgAABAgQIECBAgMAQCRxzzDHpjjvu6Hb1SZMmpYkTJ3bLl0GAAAECBAiUT8AQ+PI9Ey0iQIAAAQIECBAgQIAAAQIECBAgQKBDAgKgHYJUDQECBAgQIECAAAECBAgQIECAAAEC5RMQAC3fM9EiAgQIECBAgAABAgQIECBAgAABAgQ6JCAA2iFI1RAgQIAAAQIECBAgQIAAAQIECBAgUD4BAdDyPRMtIkCAAAECBAgQIECAAAECBAgQIECgQwICoB2CVA0BAgQIECBAgAABAgQIECBAgAABAuUTEAAt3zPRIgIECBAgQIAAAQIECBAgQIAAAQIEOiQgANohSNUQIECAAAECBAgQIECAAAECBAgQIFA+AQHQ8j0TLSJAgAABAgQIECBAgAABAgQIECBAoEMCAqAdglQNAQIECBAgQIAAAQIECBAgQIAAAQLlExAALd8z0SICBAgQIECAAAECBAgQIECAAAECBDokIADaIUjVECBAgAABAgQIECBAgAABAgQIECBQPgEB0PI9Ey0iQIAAAQIECBAgQIAAAQIECBAgQKBDAgKgHYJUDQECBAgQIECAAAECBAgQIECAAAEC5RMQAC3fM9EiAgQIECBAgAABAgQIECBAgAABAgQ6JCAA2iFI1RAgQIAAAQIECBAgQIAAAQIECBAgUD4BAdDyPRMtIkCAAAECBAgQIECAAAECBAgQIECgQwICoB2CVA0BAgQIECBAgAABAgQIECBAgAABAuUTEAAt3zPRIgIECBAgQIAAAQIECBAgQIAAAQIEOiQgANohSNUQIECAAAECBAgQIECAAAECBAgQIFA+AQHQ8j0TLSJAgAABAgQIECBAgAABAgQIECBAoEMCAqAdglQNAQIECBAgQIAAAQIECBAgQIAAAQLlExAALd8z0SICBAgQIECAAAECBAgQIECAAAECBDokMKZD9aiGAAECBAgQIECAAAECI05gySWXTNNMM023+5p//vm75ckgQIAAAQIEyikgAFrO56JVBAgQIECAAAECBAiUQOCII44oQSs0gQABAgQIEGhHwBD4dvScS4AAAQIECBAgQIAAAQIECBAgQIBAqQUEQEv9eDSOAAECBAgQIECAAAECBAgQIECAAIF2BARA29FzLgECBAgQIECAAAECBAgQIECAAAECpRYQAC3149E4AgQIECBAgAABAgQIECBAgAABAgTaERAAbUfPuQQIECBAgAABAgQIECBAgAABAgQIlFpAALTUj0fjCBAgQIAAAQIECBAgQIAAAQIECBBoR0AAtB095xIgQIAAAQIECBAgQIAAAQIECBAgUGoBAdBSPx6NI0CAAAECBAgQIECAAAECBAgQIECgHQEB0Hb0nEuAAAECBAgQIECAAAECBAgQIECAQKkFBEBL/Xg0jgABAgQIECBAgAABAgQIECBAgACBdgQEQNvRcy4BAgQIECBAgAABAgQIECBAgAABAqUWEAAt9ePROAIECBAgQIAAAQIECBAgQIAAAQIE2hEQAG1Hz7kECBAgQIAAAQIECBAgQIAAAQIECJRaYEypW6dxBAgQIECAAAECBAgQIECAAIERIHDzzTenhx9+uOmdLLTQQulTn/pU0+MOECDQfwEB0P7bOZMAAQIECBAgQIAAAQIECBAg0JLA6aefnn760582Lbv55psLgDbVcYBAewKGwLfn52wCBAgQIECAAAECBAgQIECAAAECBEosoAdoiR+OphEgQIAAAQIECBAgQIAAAQIjQ2DLLbdMSy65ZH4zxx13XHr11VfTDDPMkA4++OA8b6mllhoZN+ouCJRQQAC0hA9FkwgQIECAAAECBAgQIECAAIGRJbDJJpuk+In0wx/+sFsAdGTdrbshUC4BQ+DL9Ty0hgABAgQIECBAgAABAgQIECBAgACBDgoIgHYQU1UECBAgQIAAAQIECBAgQIAAAQIECJRLQAC0XM9DawgQIECAAAECBAgQIECAAAECBAgQ6KCAAGgHMVVFgAABAgQIECBAgAABAgQIECBAgEC5BARAy/U8tIYAAQIECBAgQIAAAQIECBAgQIAAgQ4KWAW+g5iqIkCAAAECBAgQIEBgZAk8/PDD6Y033uh2U3PPPXeKH4kAAQIECBAov4AAaPmfkRYSIECAAAECBAgQIDBEAgcccEC64447ul190qRJaeLEid3yZRAgQIAAAQLlEzAEvnzPRIsIECBAgAABAgQIECBAgAABAgQIEOiQgABohyBVQ4AAAQIECBAgQIAAAQIECBAgQIBA+QQEQMv3TLSIAAECBAgQIECAAAECBAgQIEA6gvD5AABAAElEQVSAAIEOCQiAdghSNQQIECBAgAABAgQIECBAgAABAgQIlE9AALR8z0SLCBAgQIAAAQIECBAgQIAAAQIECBDokIAAaIcgVUOAAAECBAgQIECAAAECBAgQIECAQPkEBEDL90y0iAABAgQIECBAgAABAgQIECBAgACBDgkIgHYIUjUECBAgQIAAAQIECBAgQIAAAQIECJRPQAC0fM9EiwgQIECAAAECBAgQIECAAAECBAgQ6JCAAGiHIFVDgAABAgQIECBAgAABAgQIECBAgED5BARAy/dMtIgAAQIECBAgQIAAAQIECBAgQIAAgQ4JCIB2CFI1BAgQIECAAAECBAgQIECAAAECBAiUT0AAtHzPRIsIECBAgAABAgQIECBAgAABAgQIEOiQgABohyBVQ4AAAQIECBAgQIAAAQIECBAgQIBA+QQEQMv3TLSIAAECBAgQIECAAAECBAgQIECAAIEOCQiAdghSNQQIECBAgAABAgQIECBAgAABAgQIlE9AALR8z0SLCBAgQIAAAQIECBAgQIAAAQIECBDokIAAaIcgVUOAAAECBAgQIECAAAECBAgQIECAQPkEBEDL90y0iAABAgQIECBAgAABAgQIECBAgACBDgkIgHYIUjUECBAgQIAAAQIECBAgQIAAAQIECJRPQAC0fM9EiwgQIECAAAECBAgQIECAAAECBAgQ6JCAAGiHIFVDgAABAgQIECBAgAABAgQIECBAgED5BARAy/dMtIgAAQIECBAgQIAAAQIECBAgQIAAgQ4JjOlQPaohQIAAAQIECBAgQIDAiBMYP358eumll7rd12yzzdYtTwYBAgQIECBQTgEB0HI+F60iQIAAAQIECBAgQKAEAieddFIJWqEJBAgQIECAQDsChsC3o+dcAgQIECBAgAABAgQIECBAgAABAgRKLSAAWurHo3EECBAgQIAAAQIECBAgQIAAAQIECLQjIADajp5zCRAgQIAAAQIECBAgQIAAAQIECBAotYAAaKkfj8YRIECAAAECBAgQIECAAAECBAgQINCOgABoO3rOJUCAAAECBAgQIECAAAECBAgQIECg1AICoKV+PBpHgAABAgQIECBAgAABAgQIECBAgEA7AgKg7eg5lwABAgQIECBAgAABAgQIECBAgACBUgsIgJb68WgcAQIECBAgQIAAAQIECBAgQIAAAQLtCAiAtqPnXAIECBAgQIAAAQIECBAgQIAAAQIESi0gAFrqx6NxBAgQIECAAAECBAgQIECAAAECBAi0IyAA2o6ecwkQIECAAAECBAgQIECAAAECBAgQKLWAAGipH4/GESBAgAABAgQIECBAgAABAgQIECDQjoAAaDt6ziVAgAABAgQIECBAgAABAgQIECBAoNQCAqClfjwaR4AAAQIECBAgQIAAAQIECBAgQIBAOwICoO3oOZcAAQIECBAgQIAAAQIECBAgQIAAgVILCICW+vFoHAECBAgQIECAAAECBAgQIECAAAEC7QgIgLaj51wCBAgQIECAAAECBAgQIECAAAECBEotIABa6sejcQQIECBAgAABAgQIECBAgAABAgQItCMgANqOnnMJECBAgAABAgQIECBAgAABAgQIECi1gABoqR+PxhEgQIAAAQIECBAgQIAAAQIECBAg0I6AAGg7es4lQIAAAQIECBAgQIAAAQIECBAgQKDUAgKgpX48GkeAAAECBAgQIECAAAECBAgQIECAQDsCAqDt6DmXAAECBAgQIECAAAECBAgQIECAAIFSC4wpdes0jgABAgQIECBAgAABAkMo8Pzzz6e33367WwvGjRuXZplllm75MggQIECAAIHyCQiAlu+ZaBEBAgQIECBAgAABAiURmDhxYrrjjju6tWbSpEkpjkkECBAgQIBA+QUMgS//M9JCAgQIECBAgAABAgQIECBAgAABAgT6KSAA2k84pxEgQIAAAQIECBAgQIAAAQIECBAgUH4BAdDyPyMtJECAAAECBAgQIECAAAECBAgQIECgnwICoP2EcxoBAgQIECBAgAABAgQIECBAgAABAuUXEAAt/zPSQgIECBAgQIAAAQIECBAgQIAAAQIE+ikgANpPOKcRIECAAAECBAgQIECAAAECBAgQIFB+AQHQ8j8jLSRAgAABAgQIECBAgAABAgQIECBAoJ8CAqD9hHMaAQIECBAgQIAAAQIECBAgQIAAAQLlFxAALf8z0kICBAgQIECAAAECBAgQIECAAAECBPopIADaTzinESBAgAABAgQIECBAgAABAgQIECBQfgEB0PI/Iy0kQIAAAQIECBAgQIAAAQIECBAgQKCfAgKg/YRzGgECBAgQIECAAAECBAgQIECAAAEC5RcQAC3/M9JCAgQIECBAgAABAgQIECBAgAABAgT6KSAA2k84pxEgQIAAAQIECBAgQIAAAQIECBAgUH4BAdDyPyMtJECAAAECBAgQIECAAAECBAgQIECgnwICoP2EcxoBAgQIECBAgAABAgQIECBAgAABAuUXEAAt/zPSQgIECBAgQIAAAQIECBAgQIAAAQIE+ikgANpPOKcRIECAAAECBAgQIECAAAECBAgQIFB+AQHQ8j8jLSRAgAABAgQIECBAgAABAgQIECBAoJ8CAqD9hHMaAQIECBAgQIAAAQIECBAgQIAAAQLlFxAALf8z0kICBAgQIECAAAECBAgQIECAAAECBPopIADaTzinESBAgAABAgQIECBAgAABAgQIECBQfoEx5W+iFhIgQIAAAQIECBAgQIAAAQIECJRV4Nlnn00XX3xxj83bbrvt0swzz9xjGQcJDJSAAOhAyaqXAAECBAgQIECAAIFhLzBu3Lg022yzdbuPmWaaqVueDAIECIxWgUcffTTtsccePd7+RhttJADao5CDAykgADqQuuomQIAAAQIECBAgQGBYC/z4xz8e1u3XeAIECBAgQCAlAVDvAgIECBAgQIAAAQIECBAgQIAAgX4LLLTQQumUU07Jz7/mmmvS7373u3x7m222Sausskq+3ag3fb8v6EQCfRQQAO0jmOIECBAgQIAAAQIECBAgQIAAAQLvC8wzzzzpa1/7Wp7xxhtvVAOgn/nMZ9IOO+zwfkFbBIZIwCrwQwTvsgQIECBAgAABAgQIECBAgAABAgQIDLyAAOjAG7sCAQIECBAgQIAAAQIECBAgQIAAAQJDJCAAOkTwLkuAAAECBAgQIECAAAECBAgQIECAwMALCIAOvLErECBAgAABAgQIECBAgAABAgQIECAwRAICoEME77IECBAgQIAAAQIECBAgQIAAAQIECAy8gADowBu7AgECBAgQIECAAAECBAgQIECAAAECQyQgADpE8C5LgAABAgQIECBAgAABAgQIECBAgMDACwiADryxKxAgQIAAAQIECBAgQIAAAQIECBAgMEQCAqBDBO+yBAgQIECAAAECBAgQIECAAAECBAgMvIAA6MAbuwIBAgQIECBAgAABAgQIECBAgAABAkMkIAA6RPAuS4AAAQIECBAgQIAAAQIECBAgQIDAwAsIgA68sSsQIECAAAECBAgQIECAAAECBAgQIDBEAgKgQwTvsgQIECBAgAABAgQIECBAgAABAgQIDLyAAOjAG7sCAQIECBAgQIAAAQIECBAgQIAAAQJDJCAAOkTwLkuAAAECBAgQIECAAAECBAgQIECAwMALCIAOvLErECBAgAABAgQIECBAgAABAgQIECAwRAICoEME77IECBAgQIAAAQIECBAgQIAAAQIECAy8gADowBu7AgECBAgQIECAAAECBAgQIECAAAECQyQgADpE8C5LgAABAgQIECBAgAABAgQIECBAgMDACwiADryxKxAgQIAAAQIECBAgQIAAAQIECBAgMEQCAqBDBO+yBAgQIECAAAECBAgQIECAAAECBAgMvMCYgb+EKxAgQIAAAQIECBAgQGB4Crz99ttpypQp3Ro/duzYNGaMP6e6wcggQIAAAQIlFPAvdgkfiiYRIECAAAECBAgQIFAOge233z7dcccd3RozadKkNHHixG75MggQIECAAIHyCRgCX75nokUECBAgQIAAAQIECBAgQIAAAQIECHRIQAC0Q5CqIUCAAAECBAgQIECAAAECBAgQIECgfAICoOV7JlpEgAABAgQIECBAgAABAgQIECBAgECHBARAOwSpGgIECBAgQIAAAQIECBAgQIAA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l6UTTjghjRs3rnq80Uan6mlUtzwCBAgQIECAAAECBAgQGDqB+LsyfiJ98pOfTDfddFO+HZ1xKoHRPGMY/WcYjthvWTc6kf/0pyntsENKWeigz+mFF94PglaG1ve5EicQIJCyDtlSOwJXX311+t73vlcNfq6aLUu36667pgMPPDBtv/32aZFFFsmr/2f2dda+++6bHn744YaXiwDnaaedlgc/p59++qyr+/p5+ahj8cUXz8+5++6705577pleiE/AJqlT9TSpXjYBAgQIECBAgAABAgQIEOiowEgOgAZUDOTMBozmgdAPf7gxXU+DPWNWg//6r5RuvbXxuXIJEOhdQAC0d6OmJZ588sl04okn5senm266dPTRR+f72223Xdpggw3SLrvsks4555y0xRZb5GXefvvtdOSRR1aHKFQqfvHFF9NJJ52U78ZwhqjzoIMOSptssklex1lnnZV1e8/6vWfpoYceSueee26+Xf+fTtVTX699AgQIECBAgAABAgQIECAwUALXXz9QNZen3ugJuu22Kd1/f0p/+1tKH/zg1LbNOGNKt9+eUhYWyOIIzdubzbqXPvOZlG65pXkZRwgQaC4gANrcptcj1157bXrjjTfycttss01ac801u50zZsyYtNdee6WllloqPzZ58uR8fs9iwRhCH8HRSHvssUe3YfJRx6GHHlqt48orr0wx8XV96lQ99fXaJ0CAAAECBAgQIECAAAECAyEQ83/2Z5X0gWjLYNX50Y9O7RUa18sGgGYxgJRmmCGlX/86pQ03bN6Kl19Oab31UjbtQfMyjhAg0FhAALSxS0u5d955Z7XcxhtvXN2u34jeoWuvvXY1+/74yqeQYth6pFjg6LOf/WzhyPubMZn1F77whTwjgq4RBK1Pnaqnvl77BAgQIECAAAECBAgQIEBgIARG+vD3vphFEPTii1PqIbyQXnll6urw2VIjEgECfRAQAO0DVn3RWGVvmWWWyVd6n3feeesP1+zPOeec1f1nn322uv3UU09V5/SMBZJ6Wil+woQJ1fNi7tFi6lQ9xTptEyBAgAABAgQIECBAgACBgRS47rrGtf9nOY3GB0dwbvQI/dWvUtpss+Y3Gesvx3D5P/2peRlHCBCoFbAKfK1Hn/Zins5WUwx9r6TKokaxHwsbVdISSyxR2Wz4Ovvss6cIpD7//PP5XKDFQp2qp1in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AgQIECBAgAABAgQIVFCgXQDU+p8VHCxNGqjA9tv3V11OKc+fk1yPc9NNI1Zdtb/6HN2/gABo/4ZqIECAAAECBAgQIECAAAECQyWQ63+efnp5l0x/L3eROzwCeTVk3uTrttt671MGT9/97t6Pc8TcCqw8t9WrnQABAgQIECBAgAABAgQIEKibQK7/ecMN5a0WAC13kTs8AnkX9Te8YXb9EfycndtcHyUAOtfC6idAgAABAgQIECBAgAABAjUTaDf93fqfNRtIzZ21QE5j32mn3g7PmwY9/em9HaP0/AgIgM6Ps7MQIECAAAECBAgQIECAAIHaCCxbVt5U63+Wu8gdPoG8OdF3vxvx+Md317dXvSriE5/orqxS8y8gADr/5s5IgAABAgQIECBAgAABAgQqK5Drf55xRnnzli4tz5dLYBgFNtgg4pRTGoHNjTYq7+G220Z8+9sR//EfxZ3G3WmnHKkCuQKgFRgETSBAgAABAgQIECBAgAABAlUROPdc639WZSy0Y+EF8g7uBx8ccdllEa1XRj/0oRG/+U1Erpe7994L304t6CwgANrZx14CBAgQIECAAAECBAgQIDBSAu3W/1xttYicAi8RGEWBlYsIWuuaoHmjpC22GEWJevZZALSe46bVBAgQIECAAAECBAgQIEBgTgTaBUAz+JnrIkoECBCom4AAaN1GTHsJECBAgAABAgQIECBAgMAcCXRa/3NsbI5OqloCBAjMsYAA6BwDq54AAQIECBAgQIAAAQIECNRFwPqfdRkp7SRAoBcBAdBetJQlQIAAAQIECBAgQIAAAQJDLNBu+rv1P4d40HWNwAgICICOwCDrIgECBAgQIECAAAECBAgQ6Eag9S7XreWt/9mqYZsAgboJCIDWbcS0lwABAgQIECBAgAABAgQIzIFAp/U/ly6dgxOqkgABAvMkIAA6T9BOQ4AAAQIECBAgQIAAAQIEqizws59F3HhjeQvHxsrz5RIgQKAOAgKgdRglbSRAgAABAgQIECBAgAABAnMs0Gn9z512muOTq54AAQJzKCAAOoe4qiZAgAABAgQIECBAgAABAnURaBcA3XnniNVXr0svtJMAAQLTBRZNz5JDgAABAgQIECBAgAABAgQIjJLA3XdHnHFGeY9Nfy936TX3yCOPjNNPP33isBtuuGHi8dZbb4199913Ynun4jLbQw45pNdqlSdAoAsBAdAukBQhQIAAAQIECBAgQIAAAQLDLHDuudb/nOvx/fGPfxxf+9rXVjjNXXfdNZmX2wKgK/B4QmBgAgKgA6NUEQECBAgQIECAAAECwybw5je/OX79619P69b+++8fz3ve86blyyBQV4F2099XWy3C+p91HVXtJkCgKSAA2pTwSIAAAQIECBAgQIAAgSkCl1xySfzmN7+ZkhtxzTXXTMuTQaDOAsuWlbfe+p/lLrPJff/73x+HHXZY20PXXXfdtvvsIECgPwEB0P78HE2AAAECBAgQIECAAAECBGotkOt/nnlmeReWLi3Pl9u7wMYbbxz5JREgMP8C7gI//+bOSIAAAQIECBAgQIAAAQIEKiPws59Z/7Myg6EhBAjMiYAA6JywqpQAAQIECBAgQIAAAQIECNRDoN36n6uvbv3PeoygVhIgMJOAAOhMQvYTIECAAAECBAgQIECAAIEhFmgXAM31P/MmSBIBAgTqLiAAWvcR1H4CBAgQIECAAAECBAgQIDBLgVz/84wzyg8eGyvPl0uAAIG6CQiA1m3EtJcAAQIECBAgQIAAAQIECAxIINf/vOmm8soEQMtd5BIgUD8BAdD6jZkWEyBAgAABAgQIECBAgACBgQi0m/5u/c+B8KqEAIGKCAiAVmQgNIMAAQIECBAgQIAAAQIECMy3wLJl5We0/me5i1wCBOopIABaz3HTagIECBAgQIAAAQIECBAg0JdArv955pnlVSxdWp4vlwABAnUUEACt46hpMwECBAgQIECAAAECBAgQ6FPgnHOs/9knocMJEKiJgABoTQZKMwkQIECAAAECBAgQIECAwCAFOq3/ueOOgzyTuggQILCwAgKgC+vv7AQIECBAgAABAgQIECBAYEEE2gVAd9klYrXVFqRJTkqAAIE5ERAAnRNWlRIgQIAAAQIECBAgQIAAgeoK5PqfZ5xR3r6xsfJ8uQQIEKirgABoXUdOuwkQIECAAAECBAgQIECAwCwFcv3Pv/61/GAB0HIXuQQI1FdAALS+Y6flBAgQIECAAAECBAgQIEBgVgLtpr+vsUaE9T9nReogAgQqLCAAWuHB0TQCBAgQIECAAAECBAgQIDAXAsuWlde6887W/yyXkUuAQJ0FBEDrPHraToAAAQIECBAgQIAAAQIEehTI9T/PPLP8oKVLy/PlEiBAoM4CAqB1Hj1tJ0CAAAECBAgQIECAAAECPQqcfbb1P3skU5wAgZoLCIDWfAA1nwABAgQIECBAgAABAgQI9CJg/c9etJQlQGAYBARAh2EU9YEAAQIECBAgQIAAAQIECHQp0C4AussuEYsXd1mJYgQIEKiRgABojQZLUwkQIECAAAECBAgQIECAQD8Cd93Vfv3PsbF+anYsAQIEqiuwqLpN0zICBAgQIECAAAECBAgQIEBgkALnnGP9z0F6qqshcMcdd8QVV1wx8eT666+fZLnmmmvikksumXi+8cYbxyqrrDK5zwaB+RQQAJ1PbeciQIAAAQIECBAgQIAAAQILKNBu+vsaa0TsuOMCNsypay3wi1/8InbYYYdpfTjssMMivzJddtll8aAHPWhaGRkE5kNAAHQ+lJ2DAAECBAgQIECAAIFaCrzrXe+KW265ZVrblyxZMi1PBoE6CCxbVt5K63+Wu8glQGA4BARAh2Mc9YIAAQIECBAgQIAAgTkQ2GKLLeagVlUSWBiBTut/Ll26MG1y1uEQWHfddWPPPffs2JnVV1+94347CcylgADoXOqqmwABAgQIECBAgAABAgQIVETg7LMjbr65vDFugFTuIrc7gYc//OFx4okndldYKQILIOAu8AuA7pQECBAgQIAAAQIECBAgQGC+BTqt/1myfON8N8/5CBAgMGcCAqBzRqtiAgQIECBAgAABAgQIECBQHYF2AdBdd41YvLg67dQSAgQIDFpAAHTQouojQIAAAQIECBAgQIAAAQIVE+i0/qfp7xUbLM0hQGDgAgKgAydVIQECBAgQIECAAAECBAgQqJaA9T+rNR5aQ4DA/AoIgM6vt7MRIECAAAECBAgQIECAVSgZ4gAAQABJREFUAIF5F2g3/X3NNSOs/znvw+GEBAjMs4AA6DyDOx0BAgQIECBAgAABAgQIEJhvgWXLys+4yy7W/yyXkUuAwDAJCIAO02jqCwECBAgQIECAAAECBAgQmCKQ63+eddaUzHufLl1ani+XAAECwyQgADpMo6kvBAgQIECAAAECBAgQIEBgisBPfxpx881TMu99OjZWni+XAAECwyQgADpMo6kvBAgQIECAAAECBAgQIEBgioD1P6eAeEqAwMgJCICO3JDrMAECBAgQIECAAAECBAiMkkC7AOiuu0asuuooSegrAQKjKiAAOqojr98ECBAgQIAAAQIECBAgMPQCuf7nmWeWd9P093IXuQQIDJ+AAOjwjakeESBAgAABAgQIECBAgACBCYFc//OWW8oxBEDLXeQSIDB8AgKgwzemekSAAAECBAgQIECAAAECBCYE2k1/X3PNiB12gESAAIHREBAAHY1x1ksCBAgQIECAAAECBAgQGEGBZcvKO239z3IXuQQIDKfAouHsll4RIECAAAECBAgQIECAAIHRFrjzzoizzio3WLq0PH8hc+++++44//zzJ5pwySWXTDblqquuivPOO2/i+cMf/vBYa621JvfZIECAQDcCAqDdKClDgAABAgQIECBAgAABAgRqJlC39T9vuumm2G677aYpH3300ZFfmU499dTYfffdp5WRQYAAgU4CpsB30rGPAAECBAgQIECAAAECBAjUVKDd+p95AeVjH1vTTmk2AQIEZiHgCtBZoDmEAAECBAgQIECAAAECBAhUXaBdALSq638uXrw49ttvv46sG264Ycf9dhIgQKBMQAC0TEUeAQIECBAgQIAAAQIECBCosUCn9T/HxqrZsVzb87jjjqtm47SKAIFaC5gCX+vh03gCBAgQIECAAAECBAgQIDBdoG7rf07vgRwCBAgMTkAAdHCWaiJAgAABAgQIECBAgAABApUQaDf93fqflRgejSBAYJ4FBEDnGdzpCBAgQIAAAQIECBAgQIDAXAssW1Z+hqqu/1neWrkECBAYjIA1QAfjqBYCBAgQIECAAAECBIZQ4H3ve19cdNFF03r27Gc/O/bZZ59p+TIIVEGg0/qfS5dWoYXaQIBAVQROPfXUyL91mX71q19NNusNb3hDrLfeerHqqqvGCSecMJlf1w0B0LqOnHYTIECAAAECBAgQIDDnAueff36ce+65086zww47TMuTQaAqAj/5ScStt5a3pqo3QCpvrVwCBOZa4KqrroqTTz552mnOPvvsibzFixdP21fHDFPg6zhq2kyAAAECBAgQIECAAAECBNoIWP+zDYxsAgRGVsAVoCM79DpOgAABAgQIECBAgAABAsMo0C4AuttuEYtEAYZxyPWJwKwF9t577/jjH//Y9viVVlqp7b467fCrr06jpa0ECBAgQIAAAQIECBAgQKCDQKf1P01/7wBnF4ERFVhzzTXjIQ95yND33hT4oR9iHSRAgAABAgQIECBAgACBURGw/ueojLR+EiDQi4AAaC9ayhIgQIAAAQIE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IECAAAECBAgQIDCKAi4FHMVR12cCBAgQIECAAAECBAgQIECAAAECIyIgADoiA62bBAgQIECAAAECBAgQIECAAAECBEZRQAB0FEddnwkQIECAAAECBAgQIECAAAECBAiMiIAA6IgMtG4SIECAAAECBAgQIECAAAECBAgQGEUBAdBRHHV9JkCAAAECBAgQIECAAAECBAgQIDAiAgKgIzLQukmAAAECBAgQIECAAAECBAgQIEBgFAUEQEdx1PWZAAECBAgQIECAAAECBAgQIECAwIgICICOyEDrJgECBAgQIECAAAECBAgQIECAAIFRFBAAHcVR12cCBAgQIECAAAECBAgQIECAAAECIyIgADoiA62bBAgQIECAAAECBAgQIECAAAECBEZRQAB0FEddnwkQIECAAAECBAgQIECAAAECBAiMiIAA6IgMtG4SIECAAAECBAgQIECAAAECBAgQGEUBAdBRHHV9JkCAAAECBAgQIECAAAECBAgQIDAiAgKgIzLQukmAAAECBAgQIECAAAECBAgQIEBgFAUEQEdx1PWZAAECBAgQIECAAAECBAgQIECAwIgICICOyEDrJgECBAgQIECAAAECBAgQIECAAIFRFBAAHcVR12cCBAgQIECAAAECBAgQIECAAAECIyIgADoiA62bBAgQIECAAAECBAgQIECAAAECBEZRQAB0FEddnwkQIECAAAECBAgQIECAAAECBAiMiIAA6IgMtG4SIECAAAECBAgQIECAAAECBAgQGEUBAdBRHHV9JkCAAAECBAgQIECAAAECBAgQIDAiAgKgIzLQukmAAAECBAgQIECAAAECBAgQIEBgFAUWjWKn9ZkAAQIECBAgQIAAAQLdCLzyla+Ma6+9dlrRrbbaalqeDAIECBAgQKCaAgKg1RwXrSJAgAABAgQIECBAoAICY2NjFWiFJhAgQIAAAQL9CJgC34+eYwkQIECAAAECBAgQIECAAAECBAgQqLSAAGilh0fjCBAgQIAAAQIECBAgQIAAAQIECBDoR0AAtB89xxIgQIAAAQIECBAgQIAAAQIECBAgUGkBAdBKD4/GESBAgAABAgQIECBAgAABAgQIECDQj4AAaD96jiVAgAABAgQIECBAgAABAgQIECBAoNICAqCVHh6NI0CAAAECBAgQIECAAAECBAgQIECgHwEB0H70HEuAAAECBAgQIECAAAECBAgQIECAQKUFBEArPTwaR4AAAQIECBAgQIAAAQIECBAgQIBAPwICoP3oOZYAAQIECBAgQIAAAQIECBAgQIAAgUoLCIBWeng0jgABAgQIECBAgAABAgQIECBAgACBfgQEQPvRcywBAgQIECBAgAABAgQIECBAgAABApUWEACt9PBoHAECBAgQIECAAAECBAgQIECAAAEC/QgIgPaj51gCBAgQIECAAAECBAgQIECAAAECBCotIABa6eHROAIECBAgQIAAAQIECBAgQIAAAQIE+hEQAO1Hz7EECBAgQIAAAQIECBAgQIAAAQIECFRaQAC00sOjcQQIECBAgAABAgQIECBAgAABAgQI9CMgANqPnmMJECBAgAABAgQIECBAgAABAgQIEKi0gABopYdH4wgQIECAAAECBAgQIECAAAECBAgQ6EdAALQfPccSIECAAAECBAgQIECAAAECBAgQIFBpAQHQSg+PxhEgQIAAAQIECBAgQIAAAQIECBAg0I+AAGg/eo4lQIAAAQIECBAgQIAAAQIECBAgQKDSAgKglR4ejSNAgAABAgQIECBAgAABAgQIECBAoB8BAdB+9BxLgAABAgQIECBAgAABAgQIECBAgEClBRZVunUaR4AAAQIECBAgQIAAgQUUOPbYY+NPf/rTtBaMjY3F7rvvPi1fBgECBAgQIFA9AQHQ6o2JFhEgQIAAAQIECBAgUBGBk046Kc4999xprVl//fUFQKepyCBAgAABAtUUMAW+muOiVQQIECBAgAABAgQIECBAgAABAgQIDEBAAHQAiKogQIAAAQIECBAgQIAAAQIECBAgQKCaAgKg1RwXrSJAgAABAgQIECBAgAABAgQIECBAYAACAqADQFQFAQIECBAgQIAAAQIECBAgQIAAAQLVFBAArea4aBUBAgQIECBAgAABAgQIECBAgAABAgMQEAAdAKIqCBAgQIAAAQIECBAgQIAAAQIECBCopoAAaDXHRasIECBAgAABAgQIECBAgAABAgQIEBiAgADoABBVQYAAAQIECBAgQIAAAQIECBAgQIBANQUEQKs5LlpFgAABAgQIECBAgAABAgQIECBAgMAABARAB4CoCgIECBAgQIAAAQIECBAgQIAAAQIEqikgAFrNcdEqAgQIECBAgAABAgQIECBAgAABAgQGICAAOgBEVRAgQIAAAQIECBAgQIAAAQIECBAgUE0BAdBqjotWESBAgAABAgQIECBAgAABAgQIECAwAAEB0AEgqoIAAQIECBAgQIAAAQIECBAgQIAAgWoKCIBWc1y0igABAgQIECBAgAABAgQIECBAgACBAQgIgA4AURUECBAgQIAAAQIECBAgQIAAAQIECFRTQAC0muOiVQQIECBAgAABAgQIECBAgAABAgQIDEBAAHQAiKogQIAAAQIECBAgQIAAAQIECBAgQKCaAgKg1RwXrSJAgAABAgQIECBAgAABAgQIECBAYAACAqADQFQFAQIECBAgQIAAAQIECBAgQIAAAQLVFBAArea4aBUBAgQIECBAgAABAgQIECBAgAABAgMQEAAdAKIqCBAgQIAAAQIECBAgQIAAAQIECBCopoAAaDXHRasIECBAgAABAgQIECBAgAABAgQIEBiAwKIB1KEKAgQIECBAgAABAgQIDKXA/vvvH3vssce0vm2//fbT8mQQIECAAAEC1RQQAK3muGgVAQIECBAgQIAAAQIVENh7770r0ApNIECAAAECBPoRMAW+Hz3HEiBAgAABAgQIECBAgAABAgQIECBQaQEB0EoPj8YRIECAAAECBAgQIECAAAECBAgQINCPgABoP3qOJUCAAAECBAgQIECAAAECBAgQIECg0gICoJUeHo0jQIAAAQIECBAgQIAAAQIECBAgQKAfAQHQfvQcS4AAAQIECBAgQIAAAQIECBAgQIBApQUEQCs9PBpHgAABAgQIECBAgAABAgQIECBAgEA/AgKg/eg5lgABAgQIECBAgAABAgQIECBAgACBSgsIgFZ6eDSOAAECBAgQIECAAAECBAgQIECAAIF+BARA+9FzLAECBAgQIECAAAECBAgQIECAAAEClRYQAK308GgcAQIECBAgQIAAAQIECBAgQIAAAQL9CAiA9qPnWAIECBAgQIAAAQIECBAgQIAAAQIEKi0gAFrp4dE4AgQIECBAgAABAgQIECBAgAABAgT6ERAA7UfPsQQIECBAgAABAgQIECBAgAABAgQIVFpAALTSw6NxBAgQIECAAAECBAgQIECAAAECBAj0IyAA2o+eYwkQIECAAAECBAgQIECAAAECBAgQqLSAAGilh0fjCBAgQIAAAQIECBAgQIAAAQIECBDoR0AAtB89xxIgQIAAAQIECBAgQIAAAQIECBAgUGkBAdBKD4/GESBAgAABAgQIECBAgAABAgQIECDQj4AAaD96jiVAgAABAgQIECBAgAABAgQIECBAoNICAqCVHh6NI0CAAAECBAgQIECAAAECBAgQIECgHwEB0H70HEuAAAECBAgQIECAAAECBAgQIECAQKUFBEArPTwaR4AAAQIECBAgQIAAAQIECBAgQIBAPwICoP3oOZYAAQIECBAgQIAAAQIECBAgQIAAgUoLLKp06zSOAAECBAgQIECAAAECCyjwjW98I6688sppLXjc4x4XO+yww7R8GQQIECBAgED1BARAqzcmWkSAAAECBAgQIECAQEUEMgB67rnnTmvNyiuvLAA6TUUGAQIECBCopoAp8NUcF60iQIAAAQIECBAgQIAAAQIECBAgQGAAAgKgA0BUBQECBAgQIECAAAECBAgQIECAAAEC1RQQAK3muGgVAQIECBAgQIAAAQIECBAgQIAAAQIDEBAAHQCiKggQIECAAAECBAgQIECAAAECBAgQqKaAAGg1x0WrCBAgQIAAAQIECBAgQIAAAQIECBAYgIAA6AAQVUGAAAECBAgQIECAAAECBAgQIECAQDUFBECrOS5aRYAAAQIECBAgQIAAAQIECBAgQIDAAAQEQAeAqAoCBAgQIECAAAECBAgQIECAAAECBKopIABazXHRKgIECBAgQIAAAQIECBAgQIAAAQIEBiAgADoARFUQIECAAAECBAgQIECAAAECBAgQIFBNAQHQao6LVhEgQIAAAQIECBAgQIAAAQIECBAgMAABAdABIKqCAAECBAgQIECAAAECBAgQIECAAIFqCgiAVnNctIoAAQIECBAgQIAAAQIECBAgQIAAgQEICIAOAFEVBAgQIECAAAECBAgQIECAAAECBAhUU0AAtJrjolUECBAgQIAAAQIECBAgQIAAAQIECAxAQAB0AIiqIECAAAECBAgQIECAAAECBAgQIECgmgICoNUcF60iQIAAAQIECBAgQIAAAQIECBAgQGAAAgKgA0BUBQECBAgQIECAAAECBAgQIECAAAEC1RQQAK3muGgVAQIECBAgQIAAAQIECBAgQIAAAQIDEBAAHQCiKggQIECAAAECBAgQIECAAAECBAgQqKaAAGg1x0WrCBAgQIAAAQIECBAgQIAAAQIECBAYgIAA6AAQVUGAAAECBAgQIECAAAECBAgQIECAQDUFBECrOS5aRYAAAQIECBAgQIAAAQIECBAgQIDAAAQWDaAOVRAgQIAAAQIECBAgQGAoBfbZZ5/Yfvvtp/Vtu+22m5YngwABAgQIEKimgABoNcdFqwgQIECAAAECBAgQqIDAC17wggq0QhMIECBAgACBfgRMge9Hz7EECBAgQIAAAQIECBAgQIAAAQIECFRaQAC00sOjcQQIECBAgAABAgQIECBAgAABAgQI9CMgANqPnmMJECBAgAABAgQIECBAgAABAgQIEKi0gABopYdH4wgQIECAAAECBAgQIECAAAECBAgQ6EdAALQfPccSIECAAAECBAgQIECAAAECBAgQIFBpAQHQSg+PxhEgQIAAAQIECBAgQIAAAQIECBAg0I+AAGg/eo4lQIAAAQIECBAgQIAAAQIECBAgQKDSAgKglR4ejSNAgAABAgQIECBAgAABAgQIECBAoB8BAdB+9BxLgAABAgQIECBAgAABAgQIECBAgEClBQRAKz08GkeAAAECBAgQIECAAAECBAgQIECAQD8CAqD96DmWAAECBAgQIECAAAECBAgQIECAAIFKCwiAVnp4NI4AAQIECBAgQIAAAQIECBAgQIAAgX4EBED70XMsAQIECBAgQIAAAQIECBAgQIAAAQKVFhAArfTwaBwBAgQIECBAgAABAgQIECBAgAABAv0ICID2o+dYAgQIECBAgAABAgQIECBAgAABAgQqLSAAWunh0TgCBAgQIECAAAECBAgQIECAAAECBPoREADtR8+xBAgQIECAAAECBAgQIECAAAECBAhUWkAAtNLDo3EECBAgQIAAAQIECBAgQIAAAQIECPQjIADaj55jCRAgQIAAAQIECBAgQIAAAQIECBCotIAAaKWHR+MIECBAgAABAgQIECBAgAABAgQIEOhHQAC0Hz3HEiBAgAABAgQIECBAgAABAgQIECBQaQEB0EoPj8YRIECAAAECBAgQIECAAAECBAgQINCPgABoP3qOJUCAAAECBAgQIECAAAECBAgQIECg0gKLKt06jSNAgAABAgQIECBAgMACCpx00klxzTXXTGvBox/96MgviQABAgQIEKi+gABo9cdICwkQIECAAAECBAgQWCCBY489Ns4999xpZz/44IMFQKepyCBAgAABAtUUMAW+muOiVQQIECBAgAABAgQIECBAgAABAgQIDEBAAHQAiKogQIAAAQIECBAgQIAAAQIECBAgQKCaAgKg1RwXrSJAgAABAgQIECBAgAABAgQIECBAYAACAqADQFQFAQIECBAgQIAAAQIECBAgQIAAAQLVFBAArea4aBUBAgQIECBAgAABAgQIECBAgAABAgMQEAAdAKIqCBAgQIAAAQIECBAgQIAAAQIECBCopoAAaDXHRasIECBAgAABAgQIECBAgAABAgQIEBiAgADoABBVQYAAAQIECBAgQIAAAQIECBAgQIBANQUEQKs5LlpFgAABAgQIECBAgAABAgQIECBAgMAABARAB4CoCgIECBAgQIAAAQIECBAgQIAAAQIEqikgAFrNcdEqAgQIECBAgAABAgQIECBAgAABAgQGICAAOgBEVRAgQIAAAQIECBAgQIAAAQIECBAgUE0BAdBqjotWESBAgAABAgQIECBAgAABAgQIECAwAAEB0AEgqoIAAQIECBAgQIAAAQIECBAgQIAAgWoKCIBWc1y0igABAgQIECBAgAABAgQIECBAgACBAQgIgA4AURUECBAgQIAAAQIECBAgQIAAAQIECFRTQAC0muOiVQQIECBAgAABAgQIECBAgAABAgQIDEBAAHQAiKogQIAAAQIECBAgQIAAAQIECBAgQKCaAgKg1RwXrSJAgAABAgQIECBAgAABAgQIECBAYAACAqADQFQFAQIECBAgQIAAAQIECBAgQIAAAQLVFBAArea4aBUBAgQIECBAgAABAgQIECBAgAABAgMQEAAdAKIqCBAgQIAAAQIECBAgQIAAAQIECBCopoAAaDXHRasIECBAgAABAgQIECBAgAABAgQIEBiAwKIB1KEKAgQIECBAgAABAgQIDKXA0qVLY7PNNpvWty233HJangwCBAgQIECgmgICoNUcF60iQIAAAQIECBAgQKACAgcddFAFWqEJBAgQIECAQD8CpsD3o+dYAgQIECBAgAABAgQIECBAgAABAgQqLSAAWunh0TgCBAgQIECAAAECBAgQIECAAAECBPoREADtR8+xBAgQIECAAAECBAgQIECAAAECBAhUWsAaoAManhtvvDG++tWvxm9/+9u47LLL4tprr40lS5bExhtvHNtuu208+9nPjlVXXXXGs11++eXxxS9+caKe3N5www1j6623jm222Sae+MQnxhprrDFjHVlgUPV0dTKFCBAgQIAAAQIECBAgQIAAAQIECFRUYKXxIlW0bbVp1te//vU45phj4uabb27b5gyEHnbYYbHddtu1LXPcccfFUUcdFXfffXdpma222iqOOOKIWGeddUr3NzMHVU+zvm4e77zzzli8ePFk0c033zwuuuiiyec2CBAgQIAAAQIECBAgQGCwArvttluceeaZE5Vec801scEGGwz2BGojQIDAkAgIgPY5kN///vfjPe95z2QtO+2008QVn/mHJ68EPe200+KSSy6Z2J8Bws985jOx6aabTpZvbpxwwgnxwQ9+cLJcXu2ZV35effXVE3/QLr744ol9m222WXzsYx+L+93vfs1DV3gcVD0rVNrFEwHQLpAUIUCAAAECBAgQIECAwAAFBEAHiKkqAgSGWkAAtI/hveKKK+JFL3pR3HbbbbHKKqvEu9/97th9991XqPGuu+6KI488Mr75zW9O5OeVkUcffXQsWrR89YHrr78+nvvc58Ydd9wRa621VnzgAx9Y4UrRrOO9731vnHLKKRN1POtZz4pDDjlkhfPkk0HVM63iLjIEQLtAUoQAAQIECBAgQIAAAQIDFBAAHSCmqggQGGoBN0HqY3gzIJnBz0wveMELpgU/Mz8Dna973evikY98ZD6N3/3udxPre048ufdbTqHP4GemV73qVSsEPzMv63j7298+WceJJ54Yt956a+5aIQ2qnhUq9YQAAQIECBAgQIAAAQIECBAgQIBAjQUEQPsYvPPOO2/y6H322Wdye+pGXh06NjY2mX3hhRdObudGTlvPlDc4evrTnz6xPfXbyiuvHPvuu+9EdgZdMwg6NQ2qnqn1ek6AAAECBAgQIECAAAECBAgQIECgrgICoH2MXK7D+ahHPWriTu8PeMADOta0/vrrT+7Pxamb6corr4y//OUvE0/zBkmd7hS//fbbNw+LXHu0NQ2qntY6bRMgQIAAAQIECBAgQIAAAQIECBCou8DyhSjr3pMFaP9b3/rWrs+aU9+b6WEPe1hzMy644ILJ7VwftFNab731IgOp1113Xfz+979foeig6lmhUk8IECBAgAABAgQIECBAgAABAgQI1FzAFaDzMIC5XmfrFZtbbrnl5FnzTvHNtGTJkuZm28fmlaY5Df7aa6+dLDeoeiYrtEGAAAECBAgQIECAAAECBAgQIEBgCARcAToPg/i5z31u4g7teaodd9wxWgOdt9xyy2QL8grPmdJ973vfySI33XRTbLDBBhPPB1XPZOVTNm6//fbYa6+9puQufzo+Ph6bbrpp3H333XHppZcu32GLAAECBAgQIECAAAECBAgQIECAwAIKCIDOMf73vve9OO644ybOsuaaa8Yb3/jGFc7YGrhcbbXVVthX9qS1TAYlm2lQ9TTrm/p4zz33ROtVplP35/NcvzRv1iQRIECAAAECBAgQIECAAAECBAgQqIqAaNUcjsSZZ54Zhx9++OQZDj744GhOYW9m5vT4Zlq8eHFzs+1ja5m//e1vk+UGVc9khTYIECBAgAABAgQIECBAgAABAgQIDIGAK0DnaBDzys8MfuaU8EwHHnhg6RTyRYuWD0GzbKcmtZZpDYYOqp5O57aPAAECBAgQIECAAAECBAgQIECAQN0Elkff6tbyOWjvKaecEieddFLHmg899NDYcMMNO5Y55phj4thjj50s8+IXvzhe8pKXTD5v3VhjjTUmn95xxx2T2+02Wq/6XGuttSaLDaqeyQqnbOT0/V//+tdTcpc/vfPOO2P11VdfnmGLAAECBAgQIECAAAECBAYucMEFF0R+ZWq9Me7xxx8f97nPfSLvG/GUpzxl4OdVIQECBOosIADaMnq5xuWPfvSjlpzpm63rbk7de9ddd8URRxwRefVnplwP85BDDolnPvOZU4tOPm8NYrau4zlZYMpG61T31mNbt/upZ8rpVnjaaX3PTvtWqMQTAgQIECBAgAABAgQIEJi1wNe//vV417veNe34l7/85RN52267rQDoNB0ZBAiMuoAA6IBeARl0fNvb3hZnn332RI15NeQ73/nO2HXXXTueofWO8FdffXXHsrmzWWaVVVaZ+HSvecCg6mnW55EAAQIECBAgQIAAAQIECBAgQIDAMAgIgLaM4nOe85zYc889W3Kmb26wwQbTMm+44YZ4/etfHxdffPHEvvXXXz8+9KEPxRZbbDGt7NSMTTbZZDLr8ssvn9wu28grTK+66qqJXZtttlm03hF+UPWUnVceAQIECBAgQIAAAQIECFRDYGxsLMbHx9s25oEPfGDbfXYQIEBgVAUEQFtGfu2114786iX99a9/nZjm3gx+brrpphPT4Kfe7XZsN48AAEAASURBVL1dnZtvvnmsuuqqkWtonnfeee2KTeT/6le/miiXTx71qEetUHZQ9axQqScECBAgQIAAAQIE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g7BVq1aBGBpa/cknnwTf076RaZdy7Oq+8yWpLchsD5YsWWJ8ccbIEZOpO8kl+XxJih7KdM6rn+JLEIEcaJm6U32iesWXpPYgc5Shng98CW6RTUo+l9SOqz33Jem51QW3+NYe6PmgRYsWgarUf1Y/2ockv05mnaIXmXr+8SUxBN4XTSZEDt34F1xwQWylmT9/vlm3bl3w+z179iz3Zi04kMKNjz76qJxTcM899zT77rtvCiUJL/Jrr71Wzjnxla98JTxjCvfqIeKDDz4ISt6+fXsjh68PSRGf06dPD0SRY+bggw8Ovqd9Qy9RMh8kOnfuXO4BOM3yqUMzZ86cQAQ92Es+X9KCBQvM2rVrA3Fkl7JPH5JegGU6BfUA1aFDBx9EszLMmDGjnHOib9++wUNU2oVctmyZef/99wMx1I6rPfchySnx73//OxBFjhn1w3xJcubqBaZLnTp1KvcA7Pan8VMjN2bPnh0UvVmzZqZr167B97RvvP766+VePB900EHlAibSLJ8cngsXLgxE0AuWjh07Bt/TvjFr1qxyo1P69OlTLiI0zfItX77cyBnv0j777FMu2MXtT+vnK6+8EhRdL9179eoVfE/7hvQm/bl0wAEHFHSYtrtuHJ+KIJ85c2bw002bNjXdunULvpd648477yz3Aqumv48DtKYEOT9RBE4//XQjR5pLU6ZM8aYh0dQCF154oRPNnH322eayyy4Lvqd94/DDDw8imPTmSc4LX9LYsWPNyJEjA3GuvvpqI1v1IamR7NGjRyCKnDBxToMRFKRAG1dccYV54okngqv9/ve/N7JVH5KiKI4//vhAlK997WvmnnvuCb6nfePMM880mZ3vyZMne/PS6J///Kf56U9/GqjojDPOMFdeeWXwPe0bRx11VLloZD3cuyiStMt2//33m5tuuikQY/jw4Ua26kPSC7EuXboEorRr187IVn1J1157rXn44YcDce666y4jW/Uh6WH+G9/4RiDKoYceah544IHge9o3zjnnHDN16tRAjGeffdbst99+wfc0b7z44ovmxz/+cSDCoEGDjGzVl/T1r3+93EujuXPnlosITbOcDz30kLnuuusCES655BIjW/UlqT1Qu6Akx3zmPZh2GW+88cZydeRtt91mZKs+JAXu9O/fPxDlkEMOKdf2BQdSurFjQo2UCkCxIQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhkI4ADNBsZ9kMAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKpJ4ADNPUqRAAIQAACEIAABCAAAQhAAAIQgAAEIAABCEAgGwEcoNnIsB8CEIAABCAAAQhAAAIQgAAEIAABCEAAAhBIPQEcoKlXIQJAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAAC2QjgAM1Ghv0QgAAEIAABCEAAAhCAAAQgAAEIQAACEIBA6gnUTb0ECACBDAKHHnqoad26dbCnYcOGwXbaN/bcc09z3HHHBWJ07do12PZh45hjjjFr1qyxotSpU8cHkQIZ9t9//3K6a9++fXAs7Ru1a9cuJ1vm/Zd22VT+Hj16mA0bNgSitGzZMthO+0bTpk3L6c63OuUrX/mK2W233QI1NW7cONhO+4bus8z24MADD0y7SOXK379/f/Pxxx8H+2rVqhVsp32jY8eO5XTXoUOHtIsUlF96yrTL3XffPTjmw4bus0z5fGrvVD9mytapUycfVBbI0KdPH6M2z6UmTZq4zdR/tmrVqpzuunfvnnqZMgU46qijzMqVK4Nd6nf6kvQ8kHnf7bfffr6IZuWQbFu3brXbzZs390o29ZkzddemTRtv5JP/JFM23+yy1rbtyRttIQgEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgQwC/rxCyRCKTQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACIoADFDuAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEvCWAA9Rb1SIYBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQggAMUG4AABCAAAQhAAAIQgAAEIAABCEAAAhCAAAS8JYAD1FvVIhgEIAABCEAAAhCAAAQgAAEIQAACEIAABCCAAxQbgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABLwlgAPUW9UiGAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIIADFBuAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEvCVQ11vJEAwCHhDYvHmzqV+/fpUlWbNmjfnss8/sea1atary+Uk4YdWqVWbJkiVm48aN5oADDjC77757EopVsDJItpUrV9rrHXzwwaZWrVoFu3ZcF5Ku3n33XfPOO+8Y2eDee+9t9tlnH/tZp06duIpV0N9dt26dlVGy6t7aa6+9qnWPFrRQIRd7/fXX7f2z6667mt69e4fk2Pl2bdmyxepO916DBg3Ml770JbPbbrulBsS2bdvM4sWL7b21fv16I1v84osvTJMmTYK/tm3bmkaNGqVGpooFVbu1YsUKs2nTJvsn+Ro3bmzl06fsmZQsAjtzPyVZmqh6aXZm3Ul21afLli0zLVu2NB07djR16/rzWKy6c86cOdYoWrdubdQ2pD2pDVy+fLntY7733numadOmZt999zXt27f3pm2gj5leK6WPmR7d+VPTp4c5JYVATgJTpkwxEyZMMIsWLTKffPKJdSB16dLFnHDCCaZHjx45z3UHb7jhBjNt2jT7derUqW53Ij7V6VQHpnnz5qZZs2aVyvT222+bu+++27z88svljskB+r3vfc8MGjTIC2fhk08+aZ544gkro3SexI73a6+9ZqQPJdmfnEZh6fPPPzd//OMfzR/+8AfrkKmYR47Q888/33z1q1+teCgR33Wf/eMf/zCvvPKKGTx4sOnatWu5cqlT89hjj5k///nP5qOPPip3TM6no446ypx22mnW0VvuYIxfnnnmGfPXv/7VluDb3/62GTZsmKlXr16MJSreT+uB4Y033jD//e9/zR577GG+/OUvW6dZ5i9OnDjR3H///Wbp0qWZu02bNm3MxRdfbL7yla+U25+kL88//7xRHTFjxgzbJuQqW+3atc1+++1n24oBAwaYbt265cqeiGMLFiww48aNM7Nnz7bOCD3kZktqN3R/Hnjggea4447z7sVYNrmTtt/3fkrSeBeyPDuD7lavXm1fFMk5VvHlshyD6ns9/PDD5epT9cEOOugg84tf/MK0a9eukMhjuZZe0v7sZz+zv/3DH/7Q/PjHP46lHLl+VC+61FdRUrvVq1evrNnVxt94443mrbfeqpRHL9jVz1H/rUWLFpWOx72DPmbcGqjZ79PH3MEvjX3MHaXfsVVre0cze09zRz62IACBIhNQZ2XkyJFm0qRJob+kTtzAgQPNueeea3bZZZfQPG7npZdemjgHqBqQu+66y8gRISeoKlE9nOsh/cQTT7RFl7NtyJAhRtFN2dIhhxxirrjiitQ/+P72t79NvAN0xIgR5i9/+YtVhRwUYVG4cmb/8pe/tJF12XTm9svJpA5skpy9crpcffXVgWPz//7v/8zXvvY1V2Qrl44rsjVXUqS2bNfZcq68pTh28803Bw5Q/Z7u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73+/KNeOetHjjz/edqqj5q9KvgkTJlQle8Hz+iwbdll9c4nbLtEdugsjQHsQRqVw+3y+73yWTRbgc1u+atUq88ILL1hDP/LII81VV10VGL0WQNIcmbfeeqt58skn7aecoooCbdiwYez9x6CgOTbGjRtntm7daurUqWNGjRpl9t9//yB3kyZNjOq9r3/96+YXv/iF0fylK1euNBdddJF1+u62225B3iRuoDt0h12WngB1Cu1B6a2ucL+IA7RwLLlSEQloZbK1a9cW5Rc+++yzoly3KheVbOpQ+5h8lg27TK/Fojt0F0aA9iCMSuH2+Xzf+SybLMDntvz9998PjPz8888PtitunHzyyUYOwWuvvdZopXdFhWoVdEWMJjlpMSelY445ppzz0+7837899tjD3HHHHeayyy4zs2bNMsuWLbORoopik6M3qQndGYPukmed2CV2mTyrLCuRz+1BVOY4QKOSIl+sBE477TQ7TEfzEzlHoVbibNq0aY3L1ahRoxpfo6YXUKfzxhtvNBp65JI62RqelPbks2zYZXqtE92huzACtAdhVAq3z+f7zmfZZAE+t+VaBEhJfcp8w76POuoo2ze78sorbX9UqxfLAaVV4pOanHydOnXKWcTGjRubESNGmAsvvNDMnz/faKV4RcPedNNNNno058kxHXSyoTt0F5MJhv4sdlmGhTol1Dxi3els08f2ICpYHKBRSZEvVgJydmrieQ3bkaNQQ3k0gfs999xjO56xFq4AP969e3dz9913m4svvti8/vrr9orf+ta37GqcBbh8rJfwWTbsMlbTqtGPo7sa4Yv1ZHQXK/4a/bjPuvNZNind57Zc0ZxK0mGUdMQRR9h5Mn/729/aSNBf/epXNhp0n332iXJ6yfM4+dRvzpfEQA7P8847zyxZssS88sorZsyYMbZ/mu/cOI472dBdmf2iuzissPJvYpc7mFCn7GCRhC1nmz62B1H5pj+8LKqk5POCwDe/+c2gE7ZmzRpz3XXXWWeoD8Lp7fXo0aPNvvvua8V56KGHzGuvveaDaDaqwlfZpCDsMr1miu7QXRIJ+NweiLfP953Psvlql+3atbPVgOaT1KJAUdLAgQPNqaeearOuW7fOXHLJJWb16tVRTi15Hiffe/8bCp+vAM2bNzcjR440+lTSfH+PPfZYvtNiOe5kQ3dl+NFdLGZY6Uexy/JI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" width="672" /></p>
<div class="sourceCode" id="cb14"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_OLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-1" class="section level2" number="6.2">
<h2 number="6.2"><span class="header-section-number">6.2</span> WLS, no trends</h2>
<div class="sourceCode" id="cb15"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb15-2"><a href="#cb15-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb15-3"><a href="#cb15-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>koguchi_number, </span>
<span id="cb15-4"><a href="#cb15-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb15-5"><a href="#cb15-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb15-6"><a href="#cb15-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3,)</span></span>
<span id="cb15-7"><a href="#cb15-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb15-8"><a href="#cb15-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb15-9"><a href="#cb15-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb15-10"><a href="#cb15-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb15-11"><a href="#cb15-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb15-12"><a href="#cb15-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb15-13"><a href="#cb15-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb15-14"><a href="#cb15-14" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb15-15"><a href="#cb15-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;koguchi_number_WLS&quot;</span>)</span>
<span id="cb15-16"><a href="#cb15-16" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_covar </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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AgQIECBAgAABAgTGIyAwUIGLL744/fWvf62f9pa3vCWtueaa9X0bo1vgl7/8ZXrmmWfqN7npppumNdZYo74/lBvea0OpOXLruuiii9Jzzz1Xv4Hp06enKVOm1PdtDL3A7Nmz07XXXttQ8dZbb50mT57ckNfOziuvvJLOO++81NPT01B83XXXTRtuuGFDXrs7M2bMSM8++2y9+EorrZS22mqr+n5s3HnnnenWW29tyPvgBz+YFlpooYa8+blz7733ppkzZ6ZrrrkmPfbYY+kvf/lLeuqpp9JrX/vatNxyy+U/66yzTtphhx3SZpttlsaP979l8/N5qJsAAQIECBAgQGDsCozL/iBp/Itk7Fq48zYFNthgg4Y/Kk8//fS0zz77tHm2YiNdYL311kv/+7//W7+NM888M33sYx+r7w/lhvfaUGqO3LriC5Z77rmnfgM//OEP0x577FHftzH0Arfffnt605ve1FDx17/+9XTAAQc05LWzc91116UIWpdTBCyvuOKKcna/+y+++GIeQHz55ZfrZQ899NB07LHH1vdj45hjjklf/OIXG/Liy5sIPs7v9OMf/zgdeeSRDZ+V/bW55JJLpt133z0dddRRadKkSf0Vd5wAAQIECBAgQIAAgQEIGAI/ACxFCRAgQIDAWBCYNm1a3juxeK/lHqHFY31t/+pXv2p6OOr7+9//3vRYX5m///3vUzH4GWXf+c539nVKZcciUL/FFluk3XbbbUDBz7jACM5++9vfTq9//evz18ouWkMECBAgQIAAAQIExoCAAOgYeMhukQABAgQIDERg3LhxKYa8F9NQB0Dnzp2bLr/88mITbW1fddVVDeUWW2yxpj1MGwpVsPPwww/nZuXrG2jTTz/9dPrUpz6VDj/88IGeqjwBAgQIECBAgAABAi0EBEBbwMgmQIAAAQJjWeAd73hHw+3H/JV33313Q15/O08++WT6n//5n3qxBRZo/N+OVr1D6yc02fjd737XkLvlllum17zmNQ15Ve9ET9btttsuPfTQQ72afvvb35736Ix5S2+55ZZ8LtBZs2alSy+9NH33u99N//qv/9p07s+jjz46nXrqqb3qk0GAAAECBAgQIECAwMAFzLY/cDNnECBQkcAnP/nJ9Pjjj9db23jjjevbNggQmL8C22yzTa8GohfoQBa9iyDfq6++Wq/nX/7lX9I555xT3x9oADR6jV5//fX182OjG4a/f+c73+k15D0+r771rW+lt771rQ3XGzsrrLBCPtQ9tj/+8Y+nI444In3pS19KP/jBDyKrnmLO1Z133jmtuOKK9TwbBAgQIECAAAECBAgMXEAAdOBmziBAoCKBvffeu6KWNEOAQFngda97XZo6dWrDAlSxmnn0WGw3lQOcn/70p9NvfvObfDX0qOP+++9Pf/zjH9Paa6/dVpU33nhjeumllxrKDncANIKyJ554YsM1TZkyJV188cVp2WWXbchvtRPlzz777BR1nX/++fVic+bMyev+2te+Vs+zQYAAAQIECBAgQIDAwAUax6IN/HxnECBAgAABAqNUoDwMfiDzgPb09KRf//rXdZnFF188bbTRRmnbbbet58VGOUjacLC0U55fc9VVV207eFqqash2Iyj76KOPNtR32mmntR38LJ743//932mttdYqZqXoXVpe9KmhgB0CBAgQIECAAAECBPoVEADtl0gBAgQIECAwNgXKAdCYu/Kpp55qCyPmu4x5Q2tp8803z+e6LPfYvOSSS2pF+n0tz/9ZDqb2W8F8KFCeF3X8+PHpbW9726BaigWd9tprr4Zzn3vuufSnP/2pIc8OAQIECBAgQIAAAQIDEzAEfmBeSg+zQPSCiT82//d//zf9+c9/TpMmTcrnUnvzm9+c4g/HoUh//etf07333pvuu+++FAt4LL/88vmcd29605uGovphrePBBx/Mh5w+8MAD6fnnn0+rr756PsQ1elHFH+1Dle666678D/bHHnssTZgwIa200kr5fHcxzHMspDvuuCPNnj07PfLII7lrzPe3/vrrp1VWWWVE3v68efPyhWzifRMBreWWWy6/lw022CB/vn3dVCwOE4vgxLkxdPn1r399WmeddfLfq77OG8ixeC9fd911KVbhfvHFF/P5EmOeyje84Q0DqabfslF/PNuYlzaCUssss0z++bPJJpukiRMn9nv+QAqEcwT7ItgY9xKfP/F5V3XaaqutUixcVJvHM3p1Ri/Q973vff1eSrlnZy1YWQ6ARq/OF154IS266KJ91hnvw3jOxRQLDw13Ki98tNRSS/V7L31dczgdcsghDUXiM3W99dZryLNDgAABAgQIECBAgMAABLI/ZiQCAxLIAjk92Vus/nP66af3e34W/OjJ/oDvyQJh9Z+VV16550c/+lG/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eIGq3zeDv9LqzowFym644YZ8/s9oNRs6nDbYYIO0ySabDNlFRK/p+HLl9ttvz39f4znEPMIxP3Dtp50vQYbsglQ0YgRibul47zzyyCP5eyfmBX3qqafyL6XiPbTiiivmn8HleaJHzA26UAIECBAgQIAAAQIjQEAAdAQ8JJfYfQIRjC0HDKNnZyyUJBEgQIAAAQIECBAgQIAAAQIECHSPQO/JAbvn2lwJgfkmcPzxx6dsEZb0+te/Pv+JYZcbbrhh2+1de+21DWVjzsCBDrtvqMAOAQIECBAgQIAAAQIECBAgQIDAfBEQAJ0vrCrtdoEYah5zbMZPpFhwKYajt5tifrZi2mijjVoullIsZ5sAAQIECBAgQIAAAQIECBAgQKBaAYsgVeuttS4RKM+1FnNjxjyC7aTvfe97Keb7LKbdd9+9uGubAAECBAgQIECAAAECBAgQIECgSwQEQLvkQbiMagViuPrSSy9dbzRWdI/V3S+++OJ6Xnnj2WefzVdV//jHP54vIFQ7Pm3atLT33nvXdr0SIECAAAECBAgQIECAAAECBAh0kYBFkLroYbiUagViyPv222+fXnnllYaGI6C52WabpVVXXTUtvvji+crSDz74YB4cjSBoMS288MLppptuSnGOVJ3A2Wefne65557KGoygd7wfJALDKeB9P5z62iZAgAABAgQIECBAYCQLCICO5Kfn2jsWOOmkk9L+++8/qHpWXHHFdO6556YttthiUOc7afACsWjVpZdeOvgKBnjmNddck6ZPnz7AsxQnMLQC3vdD66k2AgQIECBAgAABAgTGjoAh8GPnWbvTJgL77bdf+tnPfpbe/OY3NznaPGvBBRdMu+yyS7r11lsFP5sTySVAgAABAgQIECBAgAABAgQIdI2AVeC75lG4kOES2HHHHVP8xErwP/jBD9J9992X7r///vTII4+kV199NV/dffLkyWmVVVZJ73vf+9Iee+yRVlhhheG6XO1mArvuumtaf/31K7NYaaWVKmtLQwRaCXjft5KRT4AAAQIECBAgQIAAgb4FDIHv28fRMSwQCyP9/e9/T0sttdQYVnDrBAgQIECAAAECBAgQIECAAIGRLSAAOrKfn6snQIAAAQIECBAgQIAAAQIECBAgQKAPAXOA9oHjEAECBAgQIECAAAECBAgQIECAAAECI1tAAHRkPz9XT4AAAQIECBAgQIAAAQIECBAgQIBAHwICoH3gOESAAAECBAgQIECAAAECBAgQIECAwMgWEAAd2c/P1RMgQIAAAQIECBAgQIAAAQIECBAg0IeAAGgfOA4RIECAAAECBAgQIECAAAECBAgQIDCyBQRAR/bzc/UECBAgQIAAAQIECBAgQIAAAQIECPQhIADaB45DBAgQIECAAAECBAgQIECAAAECBAiMbAEB0JH9/Fw9AQIECBAgQIAAAQIECBAgQIAAAQJ9CAiA9oHjEAECBAgQIECAAAECBAgQIECAAAECI1tAAHRkPz9XT4AAAQIECBAgQIAAAQIECBAgQIBAHwICoH3gOESAAAECBAgQIECAAAECBAgQIECAwMgWEAAd2c/P1RMgQIAAAQIECBAgQIAAAQIECBAg0IeAAGgfOA4RIECAAAECBAgQIECAAAECBAgQIDCyBcaP7Mufv1c/Z86cdMEFF6TbbrstPfDAA+lvf/tbWnnlldNqq62W3vOe96SNNtqorQt45ZVX0iWXXJIuu+yy9NBDD6UXXnghrbPOOmnatGlp0003TWuvvXal9bTVmEIECBAgQIAAAQIECBAgQIAAAQIERoHAuJ4sjYL7GPJb+MMf/pCOO+649Oijj7ase9ttt037779/mjhxYssyTzzxRDrggAPS7Nmzm5ZZcMEF02GHHZa22267psdrmUNVT60+rwQIECBAgAABAgQIECBAgAABAgTGgsCCR2ZpLNzoQO7x8ccfT5/+9KfTU089lZ8WPTR33XXXtP3226dVVlkl3Xfffenll1/OXyNAutVWWzWt/vnnn0+f+9zn8nJRYOrUqem9731visDpoosumh5++OE0b968dNVVV6Ull1wy7xXarKKhqqdZ3fIIECBAgAABAgQIECBAgAABAgQIjGYBPUCbPN0DDzww3XDDDfmRnXbaKX32s59N0VOzlp588sn0H//xH+mxxx7Ls770pS+ld7zjHbXD9ddTTjklnX/++fl+BEkPP/zwtNBCC9WP33777enggw9OEeCM+n/yk5+kSZMm1Y/XNoaqnlp9XgkQIECAAAECBAgQIECAAAECBAiMFQEB0NKTnjt3bnrnO9+ZYt7O5ZZbLp133nkNQcta8euvvz4ddNBB+e7WW2+djjrqqNqh/PXZZ59NH/jAB9KLL77YZz3XXnttOvTQQ/NzPvaxj6W99tprvtTTUOkAdo4//vj0+9//vn7GCSeckNZYY436vg0CBAgQIECAAAECo0Ug/t/97LPPbno7u+22W1pqqaWaHpNJgAABAgQIdLeARZBKzyfm6ozgZ6T11luvafAzjm2wwQZpgQUWSK+++mqaNWtWZDWk3/72t3nwMzJ33HHHlvVMnz49H1YfiyPNmDEjfeQjH0njx//zsQxVPQ0XN4CdG2+8MV100UX1M6IXq0SAAAECBAgQIEBgNArEyKwTTzyx6a1ts802AqBNZWQSIECAAIHuF1ig+y9x+K4wVmtvlSLwWVs/KuYDLac777yznrXJJpvUt5ttbLzxxnl2zDl6yy23NBQZqnoaKrVDgAABAgQIECBAgAABAgQIECBAYIwICICWHnQscrTwwgvnuXfddVd65plnSiX+sRvDwmsB0DXXXLNXmTg30rhx4/odMh6LI9VSLLBUTENVT7FO2wQIECBAgAABAgQIECBAgAABAgTGioAAaOlJx+rsO++8c57797//PR199NHpueeeaygVQ95POumkPC8CnLvvvnvD8dh55JFH8rxll122YUh7r4JZxvLLL1/PfvDBB+vbsTFU9TRUaocAAQIECBAgQIAAAQIECBAgQIDAGBH452STY+SG27nNvffeO8Vw9EsvvTRfDT4CnDFMPVZof+CBB/K8GAIfc3XGQkhvfOMbG6qNydPjeKR2Jkpfcskl6+fH4km1NFT11Opr9vrlL385xTyfrVIEZFdbbbX0+OOPp5deeqlVMfkECBAgQIAAAQIECBAgQIAAAQIEulJAALTJY4nAZiz2s/7666evfe1r+TD4yy67rKFkBC2/+c1vptVXX70hP3Zi8vRaqg2nr+03ey2WKQYZh6qeZm3W8qKH6d13313bbfoa1xc9XSUCBAgQIECAAAECBAgQIECAAAECI03AEPgmTyyGvB9yyCHpq1/9an2ez4kTJ+artcfK75FibtB99903XXjhhb1qKC6e9JrXvKbX8XJGscycOXPqh4eqnnqFNggQIECAAAECBAgQIECAAAECBAiMMQE9QEsPPOb9/NSnPpVmz56dH5k2bVo68MAD6z09586dm6644op08skn53ODxlyg0VNzzz33rNcUPUhr6ZVXXqlttnydN29e/VgxGDpU9dQrt0GAAAECBAgQIECAAAECBAgQIEBgjAn8M1I3xm681e2ef/759eBnzPt5wgknpFqvzzgnApTbb799isDoxz72sRTzdJ5xxhlpyy23zHuIRplFFlkkXvIUAdP+UrHMYostVi8+VPXUK2yyEcP4iwHYcpEPf/jDacaMGfWesOXj9gkQIECAAAECBAgQIECAAAECBAh0s4Ah8KWnUxvSHnNexjD4YvCzWHSllVZK//Zv/5ZnxYJHP/7xj+uHYyX5WirO41nLK78Wh7oXA6BDVU+5veL+hAkTUgzvb/Wz4IILCn4WwWwTIECAAAECBAgQIECAAAECBAiMKAEB0MLjevrpp1NtFfaVV145rbDCCoWjvTff8pa31DPvu++++nYsGrTMMsvk+3/5y1/q+a02YoX1Wlp66aVrm2mo6qlXaIMAAQIECBAgQIAAAQIECBAgQIDAGBMQAC088FrwM7JqAczC4V6bkydPruf99a9/rW/HxpQpU/L96N0ZgdW+0sMPP1w/vM4669S3Y2Oo6mmo1A4BAgQIECBAgAABAgQIECBAgACBMSIgAFp40DGsfaGFFspzZs2alfpbwOiRRx6pn73aaqvVt2Nj3XXXre/fdttt9e1mG7fffns9u3heZBb3O6mn3oANAgQIECBAgAABAgQIECBAgAABAmNIQAC08LBj1fVaj8tY3Oiuu+4qHO29ed1119Uz11xzzfp2bMSiSLX061//urbZ6zWGv//hD3/I89daa61UHAIfmUNVT6+GZRAgQIAAAQIECBAgQIAAAQIECBAYAwICoKWH/O53v7uec+SRR6ZHH320vl/cmD17djrzzDPzrFgZfptttikeThEQjYBmpGuuuSY1C4LOmTMnHXfccfWepnvssUdDHbEzVPX0qlgGAQIECBAgQIAAAQIECBAgQIAAgTEgIABaesg77bRT2njjjfPcJ554In32s59NM2bMSA899FCeFz02zz///LT33nunuXPn5nmf+MQnUnkIfBzYb7/98uPxn2OOOSadddZZeUB13rx5KYa9H3DAAenmm2/Oy8RQ9y222KJevrgxVPUU67RNgAABAgQIECBAgAABAgQIECBAYCwIjOvJ0li40YHc45NPPpmOOOKIdMcddzScFvODvvzyy/W8cePGpZ133jkPksZ2s3TFFVekY489Nr300kv1wwsuuGC912dkxtyjp59+elpyySXrZcobQ1VPud7+9nfZZZd04YUX1otFwHajjTaq79sgQIAAAQIECBAgMFoE4u+A6dOnN72dmTNnpqlTpzY9JpMAAQIECBDobgE9QJs8n0mTJqVTTz01HXTQQQ1zchaDnzG8/bTTTkuf+9znUqvgZ1S99dZbp+985zv5cPgFFvgHd21xpZhzdNddd82P9xX8HMp6mtyuLAIECBAgQIAAAQIECBAgQIAAAQKjVmD8qL2zDm8sgprve9/78p+nn3463X///empp55Kq6yySlp11VXTIoss0nYLq6++ejrjjDPyXqB33313imH0kydPzuuZOHFi5fW03aCCBAgQIECAAAECBAgQIECAAAECBEa4gABoGw9wqaWWSvHTaZowYUKaNm1a/tNJXUNVTyfX4FwCBAgQIECAAAECBAgQIECAAAECI0HAEPiR8JRcIwECBAgQIECAAAECBAgQIECAAAECgxLQA3RQbE4iQIAAAQIECBAgQGC0CbzmNa/J5/Bvdl+LLbZYs2x5BAgQIECAwAgQEAAdAQ/JJRIgQIAAAQIECBAgMP8FllhiiXyh0/nfkhYIECBAgACBKgUMga9SW1sECBAgQIAAAQIECBAgQIAAAQIECFQqIABaKbfGCBAgQIAAAQIECBAgQIAAAQIECBCoUkAAtEptbREgQIAAAQIECBAgQIAAAQIECBAgUKmAAGil3BojQIAAAQIECBAgQIAAAQIECBAgQKBKAQHQKrW1RYAAAQIECBAgQIAAAQIECBAgQIBApQJWga+UW2MECBAgQIAAAQIECBAgQIBAUeCmm25KM2fOLGY1bI8fPz598YtfbMizQ4AAgYEICIAOREtZAgQIECBAgAABAgQIECBAYEgFbrzxxnTUUUe1rHPhhRcWAG2p4wABAu0IGALfjpIyBAgQIECAAAECBAgQIECAAAECBAiMSAE9QEfkY3PRBAgQIECAAAECBAgQIEBgdAhst9126bzzzstv5lvf+la69tpr8+1jjz02TZkyJS244IKj40bdBQECwyYgADps9BomQIAAAQIECBAgQIAAAQIEpk6dmuIn0owZM+oB0He+851pww03BESAAIGOBQyB75hQBQQIECBAgAABAgQIECBAgAABAgQIdKuAAGi3PhnXRYAAAQIECBAgQIAAAQIECBAgQIBAxwICoB0TqoAAAQIECBAgQIAAAQIECBAgQIAAgW4VEADt1ifjuggQIECAAAECBAgQIECAAAECBAgQ6FhAALRjQhUQIECAAAECBAgQIECAAAECBAgQINCtAgKg3fpkXBcBAgQIECBAgAABAgQIECBAgAABAh0LCIB2TKgCAgQIECBAgAABAgQIECBAgAABAgS6VUAAtFufjOsiQIAAAQIECBAgQIAAAQIECBAgQKBjAQHQjglVQIAAAQIECBAgQIAAAQIECBAgQIBAtwoIgHbrk3FdBAgQIECAAAECBAgQIECAAAECBAh0LCAA2jGhCggQIECAAAECBAgQIECAAAECBAgQ6FYBAdBufTKuiwABAgQIECBAgAABAgQIECBAgACBjgUEQDsmVAEBAgQIECBAgAABAgQIECBAgAABAt0qML5bL8x1ESBAgAABAgQIECBAoEqBuXPnpptuuqlpkxtssEFadNFFmx6TSYAAAQIECHS3gABodz8fV0eAAAECBAgQIECAQEUCzz77bNprr72atjZz5sw0derUpsdkEiBAgAABAt0tYAh8dz8fV0eAAAECBAgQIECAAAECBAgQIECAQAcCAqAd4DmVAAECBAgQIECAAAECBAgQIECAAIHuFhAA7e7n4+oIECBAgAABAgQIECBAgAABAgQIEOhAQAC0AzynEiBAgAABAgQIECBAgAABAgQIECDQ3QICoN39fFwdAQIECBAgQIAAAQIECBAgQIAAAQIdCAiAdoDnVAIECBAgQIAAAQIECBAgQIAAAQIEultAALS7n4+rI0CAAAECBAgQIECAAAECBAgQIECgAwEB0A7wnEqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/NxdQQIECBAgAABAgQIECBAgAABAgQIdCAgANoBnlMJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4+ro4AAQIECBAgQIAAAQIECBAgQIAAgQ4EBEA7wHMqAQIECBAgQIAAAQIECBAgQIAAAQLdLSAA2t3Px9URIECAAAECBAgQIECAAAECBAgQINCBgABoB3hOJUCAAAECBAgQIECAAAECBAgQIECguwUEQLv7+bg6AgQIECBAgAABAgQIECBAgAABAgQ6EBAA7QDPqQQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3Px9XR4AAAQIECBAgQIAAAQIECBAgQIBABwICoB3gOZUAAQIECBAgQIAAAQIECBAgQIAAge4WEADt7ufj6ggQIECAAAECBAgQIECAAAECBAgQ6EBAALQDPKcSIECAAAECBAgQIECAAAECBAgQINDdAgKg3f18XB0BAgQIECBAgAABAgQIECBAgAABAh0ICIB2gOdUAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLufj6sjQIAAAQIECBAgQIAAAQIECBAgQKADgfEdnOtUAgQIECBAgAABAgQIjBqB8ePHpw033LDp/UyYMKFpvkwCBAgQIECg+wUEQLv/GblCAgQIECBAgAABAgQqEFhyySXTueeeW0FLmiBAgAABAgSqFDAEvkptbREgQIAAAQIECBAgQIAAAQIECBAgUKmAAGil3BojQIAAAQIECBAgQIAAAQIECBAgQKBKAQHQKrW1RYAAAQIECBAgQIAAAQIECBAgQIBApQICoJVya4wAAQIECBAgQIAAAQIECBAgQIAAgSoFBECr1NYWAQIECBAgQIAAAQIECBAgQIAAAQKVCgiAVsqtMQIECBAgQIAAAQIECBAgQIAAAQIEqhQQAK1SW1sECBAgQIAAAQIECBAgQIAAAQIECFQqIABaKbfGCBAgQIAAAQIECBAgQIBc8agqAABAAElEQVQAAQIECBCoUkAAtEptbREgQIAAAQIECBAgQIAAAQIECBAgUKmAAGil3BojQIAAAQIECBAgQIAAAQIECBAgQKBKAQHQKrW1RYAAAQIECBAgQIAAAQIECBAgQIBApQICoJVya4wAAQIECBAgQIAAAQIECBAgQIAAgSoFBECr1NYWAQIECBAgQIAAAQIECBAgQIAAAQKVCgiAVsqtMQIECBAgQIAAAQIECBAgQIAAAQIEqhQQAK1SW1sECBAgQIAAAQIECBAgQIAAAQIECFQqIABaKbfGCBAgQIAAAQIECBAgQIAAAQIECBCoUkAAtEptbREgQIAAAQIECBAgQIAAAQIECBAgUKmAAGil3BojQIAAAQIECBAgQIAAAQIECBAgQKBKAQHQKrW1RYAAAQIECBAgQIAAAQIECBAgQIBApQICoJVya4wAAQIECBAgQIAAAQIECBAgQIAAgSoFBECr1NYWAQIECBAgQIAAAQIECBAgQIAAAQKVCgiAVsqtMQIECBAgQIAAAQIECBAgQIAAAQIEqhQQAK1SW1sECBAgQIAAAQIECBAgQIAAAQIECFQqML7S1jRGgAABAgQIECBAgACBLhWYN29e+tOf/tT06tZYY4208MILNz0mkwABAgQIEOhuAQHQ7n4+ro4AAQIECBAgQIAAgYoEnnnmmbTTTjs1bW3mzJlp6tSpTY/JJECAAAECBLpbwBD47n4+ro4AAQIECBAgQIAAAQIECBAgQIAAgQ4EBEA7wHMqAQIECBAgQIAAAQIECBAgQIAAAQLdLSAA2t3Px9URIECAAAECBAgQIECAAAECBAgQINCBgABoB3hOJUCAAAECBAgQIECAAAECBAgQIECguwUsgtTdz8fVESBAgAABAgQIECBAgAABAiNY4LzzzktnnXVWyztYeuml0znnnNPyuAMECHQuIADauaEaCBAgQIAAAQIECBAgQIAAAQJNBe655570q1/9qumxyFxhhRVaHnOAAIGhETAEfmgc1UKAAAECBAgQIECAAAECBAgQIECAQBcKCIB24UNxSQQIECBAgAABAgQIECBAgMDoENh3333Tfffdl/9sscUW9Zu68sor87wbb7yxnmeDAIH5I2AI/PxxVSsBAgQIECBAgAABAgQIECBAIC255JL5T1AsuuiidZFVVlklTZkypb5vgwCB+SegB+j8s1UzAQIECBAgQIAAAQIECBAgQIAAAQLDLCAAOswPQPMECBAgQIAAAQIECBAgQIAAAQIECMw/AQHQ+WerZgIECBAgQIAAAQIECBAgQIAAAQIEhllAAHSYH4DmCRAgQIAAAQIECBAgQIAAAQIECBCYfwICoPPPVs0ECBAgQIAAAQIECBAgQIAAAQIECAyzgADoMD8AzRMgQIAAAQIECBAgQIAAAQIECBAgMP8EBEDnn62aCRAgQIAAAQIECBAgQIAAAQIECBAYZgEB0GF+AJonQIAAAQIECBAgQIAAAQIECBAgQGD+CQiAzj9bNRMgQIAAAQIECBAgQIAAAQIECBAgMMwCAqDD/AA0T4AAAQIECBAgQIAAAQIECBAgQIDA/BMQAJ1/tmomQIAAAQIECBAgQIAAAQIECBAgQGCYBQRAh/kBaJ4AAQIECBAgQIAAAQIECBAgQIAAgfknIAA6/2zVTIAAAQIECBAgQIAAAQIECBAgQIDAMAsIgA7zA9A8AQIECBAgQIAAAQIECBAgQIAAAQLzT2D8/KtazQQIECBAgAABAgQIEBg5AgsssECaMmVK0wteaKGFmubLJECAAAECBLpfQAC0+5+RKyRAgAABAgQIECBAoAKBpZdeOv3qV7+qoCVNECBAgAABAlUKGAJfpba2CBAgQIAAAQIECBAgQIAAAQIECBCoVEAAtFJujREgQIAAAQIECBAgQIAAAQIECBAgUKWAAGiV2toiQIAAAQIECBAgQIAAAQIECBAgQKBSAQHQSrk1RoAAAQIECBAgQIAAAQIECBAgQIBAlQICoFVqa4sAAQIECBAgQIAAAQIECBAgQIAAgUoFBEAr5dYYAQIECBAgQIAAAQIECBAgQIAAAQJVCgiAVqmtLQIECBAgQIAAAQIECBAgQIAAAQIEKhUQAK2UW2MECBAgQIAAAQIECBAgQIAAAQIECFQpIABapba2CBAgQIAAAQIECBAgQIAAAQIECBCoVEAAtFJujREgQIAAAQIECBAgQIAAAQIECBAgUKWAAGiV2toiQIAAAQIECBAgQIAAAQIECBAgQKBSAQHQSrk1RoAAAQIECBAgQIAAAQIECBAgQIBAlQICoFVqa4sAAQIECBAgQIAAAQIECBAgQIAAgUoFBEAr5dYYAQIECBAgQIAAAQIECBAgQIAAAQJVCgiAVqmtLQIECBAgQIAAAQIECBAgQIAAAQIEKhUQAK2UW2MECBAgQIAAAQIECBAgQIAAAQIECFQpIABapba2CBAgQIAAAQIECBAgQIAAAQIECBCoVEAAtFJujREgQIAAAQIECBAgQIAAAQIECBAgUKWAAGiV2toiQIAAAQIECBAgQIAAAQIECBAgQKBSAQHQSrk1RoAAAQIECBAgQIAAAQIECBAgQIBAlQICoFVqa4sAAQIECBAgQIAAAQIECBAgQIAAgUoFBEAr5dYYAQIECBAgQIAAAQIECBAgQIAAAQJVCgiAVqmtLQIECBAgQIAAAQIECBAgQIAAAQIEKhUYX2lrGiNAgAABAgQIECBAgECXCrz66qvp8ccfb3p1yy67bBo/3p9PTXFkEiBAgACBLhfwL3iXPyCXR4AAAQIECBAgQIBANQJ//etf05Zbbtm0sZkzZ6apU6c2PSaTAAECBAgQ6G4BQ+C7+/m4OgIECBAgQIAAAQIECBAgQIAAAQIEOhAQAO0Az6kECBAgQIAAAQIECBAgQIAAAQIECHS3gABodz8fV0eAAAECBAgQIECAAAECBAgQIECAQAcCAqAd4DmVAAECBAgQIECAAAECBAgQIECAAIHuFhAA7e7n4+oIECBAgAABAgQIECBAgAABAgQIEOhAwCrw/eDNmjUrXX311emPf/xjiu1Iq622WnrjG9+Ydt999zRx4sR+akjplVdeSZdcckm67LLL0kMPPZReeOGFtM4666Rp06alTTfdNK299tr91hEFhqqethpTiAABAgQIECBAgAABAgQIECBAgMAoEBAA7eMh/uQnP0mnnHJKHngsFnvmmWfSbbfdln7xi1+kww47LG222WbFww3bTzzxRDrggAPS7NmzG/JvuummFD9nnXVWXsd2223XcLy8M1T1lOu1T4AAAQIECBAgQIAAAQIECBAgQGA0CwiANnm6PT096Zhjjkm//vWv86Pjx49PG2+8cZo+fXree/Oqq65Kd911V4pA6JFHHpnOOOOMtOqqq/aq6fnnn08HHXRQPfg5derUvI5ll1023XrrrSnqmTt3bjr66KNTlN1555171REZQ1VP08plEiBAgAABAgQIECBAgAABAgQIEBjFAgKgTR7uxRdfXA9+rrLKKumb3/xmiqBlLX3oQx9Kp59+ejr33HPTiy++mI4//vh06qmn1g7XX7/3ve+le++9N9/faqut0uGHH54WWmihfP/9739/uv3229PBBx+cBzhPPvnk9Pa3vz1NmjSpfn5tY6jqqdXnlQABAgQIECBAgAABAgQIECBAgMBYEbAIUulJR4/M0047Lc9deOGF00knndQQ/IwDCyywQNpnn31SBEcj3XHHHenpp5/Ot2v/efbZZ9OMGTPy3eWWW64h+FkrE/OIRlA0UszvWStfOx6vQ1VPsU7bBAgQIECAAAECBAgQIECAAAECBMaKgABo6Ulff/316W9/+1ue+8EPfjAtv/zypRL/2F1wwQXTu971rrTyyiunddddN1/cqFjwt7/9bd47NPJ23HHHes/PYpnYjmH1tUBqBEDnzZvXUGSo6mmo1A4BAgQIECBAgAABAgQIECBAgACBMSIgAFp60BFwrKUddtihttn0dc8998yHwcdw+OjNWUx33nlnfXeTTTapbzfbiPlFIz311FPplltuaSgyVPU0VGqHAAECBAgQIECAAAECBAgQIECAwBgREAAtPehZs2blOTFsfaWVViodbX83FkmKNG7cuLTGGmv0eWIsjlRL9913X20zfx2qehoqtUOAAAECBAgQIECAAAECBAgQIEBgjAhY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gAABAgQIECBAgMBIEBAAHQlPyTUSIECAAAECBAgQIECAAAECBAgQIDAoAQHQQbE5iQABAgQIECBAgAABAgQIECBAgACBkSAgADoSnpJrJECAAAECBAgQIECAAAECBAgQIEBgUAICoINicxIBAgQIECBAgAABAgQIECBAgAABAiNBQAB0JDwl10iAAAECBAgQIECAAAECBAgQIECAwKAEBEAHxeYkAgQIECBAgAABAgQIECBAgAABAgRGgoAA6Eh4Sq6RAAECBAgQIECAAAECBAgQIECAAIFBCQiADorNSQQIECBAgAABAgQIECBAgAABAgQIjAQBAdCR8JRcIwECBAgQIECAAAECBAgQIECAAAECgxIQAB0Um5MIECBAgAABAgQIECBAgAABAgQIEBgJAgKgI+EpuUYCBAgQIECAAAECBAgQIECAAAECBAYlIAA6KDYnESBAgAABAgQIECBAgAABAgQIECAwEgQEQEfCU3KNBAgQIECAAAECBAgQIECAAAECBAgMSkAAdFBsTiJAgAABAgQIECBAgAABAgQIECBAYCQICICOhKfkGgkQIECAAAECBAgQIECAAAECBAgQGJSAAOig2JxEgAABAgQIECBAgAABAgQIECBAgMBIEBg/Ei7SNRIgQIAAAQIECBAgQKAKgRdffLFpMxMmTEjjxo1rekwmAQIECBAg0N0CAqDd/XxcHQECBAgQIECAAAECFQk8+eSTafr06U1bmzlzZpo6dWrTYzIJECBAgACB7hYwBL67n4+rI0CAAAECBAgQIECAAAECBAgQIECgAwEB0A7wnEqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/NxdQQIECBAgAABAgQIECBAgAABAgQIdCAgANoBnlMJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4+ro4AAQIECBAgQIAAAQIECBAgQIAAgQ4EBEA7wHMqAQIECBAgQIAAAQIECBAgQIAAAQLdLSAA2t3Px9URIECAAAECBAgQIECAAAECBAgQINCBgABoB3hOJUCAAAECBAgQIECAAAECBAgQIECguwUEQLv7+bg6AgQIECBAgAABAgQIECBAgAABAgQ6EBAA7QDPqQQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3Px9XR4AAAQIECBAgQIAAAQIECBAgQIBABwICoB3gOZUAAQIECBAgQIAAAQIECBAgQIAAge4WEADt7ufj6ggQIECAAAECBAgQIECAAAECBAgQ6EBAALQDPKcSIECAAAECBAgQIECAAAECBAgQINDdAgKg3f18XB0BAgQIECBAgAABAgQIECBAgAABAh0ICIB2gOdUAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLufj6sjQIAAAQIECBAgQIAAAQIECBAgQKADAQHQDvCcSoAAAQIECBAgQIAAAQIECBAgQIBAdwsIgHb383F1BAgQIECAAAECBAgQIECAAAECBAh0ICAA2gGeUwkQIECAAAECBAgQIECAAAECBAgQ6G4BAdDufj6ujgABAgQIECBAgAABAgQIECBAgACBDgQEQDvAcyoBAgQIECBAgAABAgQIECBAgAABAt0tIADa3c/H1REgQIAAAQIECBAgQIAAAQIECBAg0IGAAGgHeE4lQIAAAQIECBAgQIAAAQIECBAgQKC7BcZ39+W5OgIECBAgQIAAAQIECFQjMGnSpDRr1qxqGtMKAQIECBAgUJmAHqCVUWuIAAECBAgQIECAAAECBAgQIECAAIGqBQRAqxbXHgECBAgQIECAAAECBAgQIECAAAEClQkIgFZGrSECBAgQIECAAAECBAgQIECAAAECBKoWEACtWlx7BAgQIECAAAECBAgQIECAAAECBAhUJiAAWhm1hggQIECAAAECBAgQIECAAAECBAgQqFpAALRqce0RIECAAAECBAgQIECAAAECBAgQIFCZgABoZdQaIkCAAAECBAgQIECAAAECBAgQIECgagEB0KrFtUeAAAECBAgQIECAAAECBAgQIECAQGUCAqCVUWuIAAECBAgQIECAAAECBAgQIECAAIGqBQRAqxbXHgECBAgQIECAAAECBAgQIECAAAEClQkIgFZGrSECBAgQIECAAAECBAgQIECAAAECBKoWEACtWlx7BAgQIECAAAECBAgQIECAAAECBAhUJiAAWhm1hggQIECAAAECBAgQIECAAAECBAgQqFpAALRqce0RIECAAAECBAgQIECAAAECBAgQIFCZgABoZdQaIkCAAAECBAgQIECAAAECBAgQIECgagEB0KrFtUeAAAECBAgQIECAAAECBAgQIECAQGUCAqCVUWuIAAECBAgQIECAAAECBAgQIECAAIGqBQRAqxbXHgECBAgQIECAAAECBAgQIECAAAEClQkIgFZGrSECBAgQIECAAAECBAgQIECAAAECBKoWEACtWlx7BAgQIECAAAECBAgQIECAAAECBAhUJiAAWhm1hggQIECAAAECBAgQIECAAAECBAgQqFpAALRqce0RIECAAAECBAgQIECAAAECBAgQIFCZgABoZdQaIkCAAAECBAgQIECAAAECBAgQIECgagEB0KrFtUeAAAECBAgQIECAAAECBAgQIECAQGUC4ytrSUMECBAgQIAAAQIECBDoYoGnnnoqbbXVVk2v8Gc/+1laY401mh6TSYAAAQIECHS3gABodz8fV0eAAAECBAgQIECAQEUCPT09ac6cOU1bi2MSAQIECBAgMDIFDIEfmc/NVRMgQIAAAQIECBAgQIAAAQIECBAg0IaAAGgbSIoQIECAAAECBAgQIECAAAECBAgQIDAyBQRAR+Zzc9UECBAgQIAAAQIECBAgQIAAAQIECLQhIADaBpIiBAgQIECAAAECBAgQIECAAAECBAiMTAEB0JH53Fw1AQIECBAgQIAAAQIECBAgQIAAAQJtCAiAtoGkCAECBAgQIECAAAECBAgQIECAAAECI1NAAHRkPjdXTYAAAQIECBAgQIAAAQIECBAgQIBAGwICoG0gKUKAAAECBAgQIECAAAECBAgQIECAwMgUEAAdmc/NVRMgQIAAAQIECBAgQIAAAQIECBAg0IaAAGgbSIoQIECAAAECBAgQIECAAAECBAgQIDAyBQRAR+Zzc9UECBAgQIAAAQIECBAgQGDUCMyaldKRR6Z0+eX/vKXDDkvphz9M6aWX/plniwABAoMREAAdjJpzCBAgQIAAAQIECBAgQIAAgY4Fnn8+pb33Tmm99VI66qiUHn/8n1VeemlKe+6Z0lprpTRjxj/zbREgQGCgAgKgAxVTngABAgQIECBAgAABAgQIEOhY4OmnU9p885S++92UXnmldXUPPpjSjjum9I1vtC7jCAECBPoSEADtS8cxAgQIECBAgAABAgQIECBAYMgFenpS2m23lG69tb2qo/z++6f0y1+2V14pAgQIFAUEQIsatgkQIECAAAECBAgQIECAAIH5LnDeeSlddtnAmokg6Kc/ndLcuQM7T2kCBAgIgHoPECBAgAABAgQIECBAgAABApUKDHY4+/33p/Tzn1d6qRojQGAUCAiAjoKH6BYIECBA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69hQE1S1//4R663Xu44OGxald4tEjLBUrXdwShOoQUAAtAakvhY5pOrXPUcddVSce+658eyzz8Y777wTadv7YYcd1r5NPm1133rrrTObqlc9mZVLJECAAAECBAgQIECAAAECdRDIC4Dm/KhbhxaLW8WoURG/+13vAr+rr271Z3FnVM+aXcDvFQZwBtctvebue9/7XhxzzDHx1ltvxVlnnVX+Gj58ePuqz9T88ssvH8cee2wssEB2PLpe9QzgUFVNgAABAgQIECBAgAABAkNY4O23I+6+OxtgqG1/ryistFLE7bdHfP7zbcHQSnre58MPR2mRVMSGG+aVKGb66aefHhdccEFu51ZeeeX45S9/mZsvg0AjBARAB1j5Ax/4QPllSUcffXQ8XPpuNnfu3Pbg54jSuvbdd9899t5771h00UW77Um96um2EZkECBAgQIAAAQIECBAgQKAPArfdFqWFP9k3DtUAaNJYcskovUck4tZbI84/P0o7QyNK71bOPY47LuKii3KzC5nx+OOPlx/9l9e5adOm5WVJJ9AwAQHQXlKvVPoVzo3pyc69OFYrvf4trf5Mq0BTEDS9+Ci9NT7VNW7cuJprqlc9NTeoIAECBAgQIECAAAECBAgQqEEgb/t7+pF30qQaKmjxIptuGpG+0irPK6/MH+wll7S9PT69Rd5BgED9BLL3XNevfjVVCYwePbr0jX9SbL/99pGe+dmb4GdVNVGveqrrdE6AAAECBAgQIECAAAECBPoqkBcA3WKLiNJT4Bw1CqR3JJ94Yo2FC1IsPfrvxRdfLH9tsMEG7b166KGHymk333xze5oTAoMlIAA6WPLaJUCAAAECBAgQIECAAAECLSAwb17bFu+soQzl7e9ZHtVpeas8zzknopl2jY8dO7a01X/J8tfIkSPbh7jEEkuU0xZbbLH2NCcEBktAAHSw5LVLgAABAgQIECBAgAABAgRaQOD++yNeeSV7IAKg2S4p9YtfzM6bOTPitNOy86QSINA3AQHQvrm5iwABAgQIECBAgAABAgQIECgJ5G1/L733NzbaCFGewK67Riy7bHZu6cXqkQKhDgIE6iMgAFofR7UQIECAAAECBAgQIECAAIEhKZAXAE2PgyztjnbkCIwaFXHQQdmZaQv82Wdn50klQKD3AgKgvTdzBwECBAgQIECAAAECBAgQIPCuQF4A1Pb3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V4449NCINdaYX893vhOx++4R110nCDpfxdlgCQiADpa8dgkQIECAAAECBAgQIECAwAAIpNWf8+ZlVywAmu0ideAEVl1VEHTgdNVcq4AAaK1SyhEgQIAAAQIECBAgQIAAgSYQyNv+vtxyEaus0gQD0MWWE6g1CLrjjhGvv95ywzegAggIgBZgEnSBAAECBAgQIECAAAECBAjUSyAvALrllvVqQT0Eei9QCYKuuGL+vbfc0vZMUEHQfCM5fRMQAO2bm7sIECBAgAABAgQIECBAgEDhBGbNirjrruxu2f6e7SK1cQKCoI2z1lJHAQHQjh6uCBAgQIAAAQIECBAgQIBA0wrcfntECoJmHQKgWSrSGi2w2mptzwTtaSWo7fCNnpnWbk8AtLXn1+gIECBAgAABAgQIECBAYAgJ5G1/X3jhiEmThhCEoRZaoJYg6M03RwiCFnoam6pzAqBNNV06S4AAAQIECBAgQIAAAQIE8gXyAqCbbx4xfHj+fXIINFpAELTR4kO7PQHQoT3/Rk+AAAECBAgQIECAAAECLSIwb15EeolM1mH7e5aKtMEWSEHQa6+NWGGF/J6klaA77eTt8PlCcmoREACtRUkZAgQIECBAgAABAgQIECBQcIH774+YPj27kwKg2S5SB19g4sS2Z4J2FwS96aa2IOgbbwx+f/WgOQUEQJtz3vSaAAECBAgQIECAAAECBAh0EMjb/j5iRMTGG3co6oJAoQRqDYKmZ4IKghZq6pqmMwKgTTNVOkqAAAECBAgQIECAAAECBPIF8gKgG2wQsdBC+ffJIVAEgVqDoGk7vCBoEWasufogANpc86W3BAgQIECAAAECBAgQIEAgUyAvAGr7eyaXxAIKpCBoeibo8svndy79ORcEzfeRky1QWgjvyBN49dVX48ILL4x//OMf8fTTT8e0adNiueWWixVXXDHWW2+92GOPPWLkyJF5t7enz5kzJ6688sq4+uqr46mnnoo333wz1l577Zg0aVJsttlmsdZaa7WX7e6kXvV014Y8AgQIECBAgAABAgQIEGg+gdKPrPHkk9n9FgDNdpFaTIHVV297Jug220Q880x2HytB0FKoJcaNyy4jlUC1gABotUbV+a9//es4++yzS8uqOz5h94knnoj0deONN8all14aU6ZMifXXX7/qzo6nL730Uhx22GHx+OOPd8i44447In2d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AQIECBAgQIBAQwUEQBvKrTECBAgQIECAAAECBAgQIECAAAECBBopIADaSG1tESBAgAABAgQIECBAgAABAgQIECDQUAEB0IZya4wAAQIECBAgQIAAAQIECBAgQIAAgUYKCIA2UltbBAgQIECAAAECBAgQIECAAAECBAg0VEAAtKHcGiNAgAABAgQIECBAgAABAgQIECBAoJECAqCN1NYWAQIECBAgQIAAAQIECBAgQIAAAQINFRAAbSi3xggQIECAAAECBAgQIECAAAECBAgQaKSAAGgjtbVFgAABAgQIECBAgAABAgQIECBAgEBDBQRAG8qtMQIECBAgQIAAAQIECBAgQIAAAQIEGikgANpIbW0RIECAAAECBAgQIECAAAECBAgQINBQAQHQhnJrjAABAgQIECBAgAABAgQIECBAgACBRgoIgDZSW1sECBAgQIAAAQIECBAgQIAAAQIECDRUQAC0odwaI0CAAAECBAgQIECAAAECBAgQIECgkQICoI3U1hYBAgQIECBAgAABAgQIECBAgAABAg0VEABtKLfGCBAgQIAAAQIECBAgQIAAAQIECBBopIAAaCO1tUWAAAECBAgQIECAAAECBAgQIECAQEMFBEAbyq0xAgQIECBAgAABAgQIECBAgAABAgQaKSAA2khtbREgQIAAAQIECBAgQIAAAQIECBAg0FCBEQ1tTWMECBAgQIAAAQIECBAoqMCbb74Z//3f/53Zu7322isWX3zxzDyJBAgQIECAQLEFBECLPT96R4AAAQIECBAgQIBAgwRSAPS0007LbG2nnXYSAM2UkUiAQE8Cd955Z9x2223lYv/85z/bi//iF7+IJZZYIsaOHRuf/exn29OdECBQfwEB0PqbqpEAAQIECBAgQIAAAQIECBAgUBb4wx/+EEcccUQXje9+97vltGWWWUYAtIuOBAL1FfAM0Pp6qo0AAQIECBAgQIAAAQIECBAgQIAAgQIJWAFaoMnQFQIECBAgQIAAAQIECBAgQKC1BHbYYYdYdNFFcweVtsA7CBAYWAEB0IH1VTsBAgQIECBAgAABAgQIECAwhAU22mijSF8OAgQGT8AW+MGz1zIBAgQIECBAgAABAgQIECBAgAABAgMsIAA6wMCqJ0CAAAECBAgQIECAAAECBAgQIEBg8AQEQAfPXssECBAgQIAAAQIECBAgQIAAAQIECAywgADoAAOrngABAgQIECBAgAABAgQIECBAgACBwRMQAB08ey0TIECAAAECBAgQIECAAAECBAgQIDDAAgKgAwysegIECBAgQIAAAQIECBAgQIAAAQIEBk9AAHTw7LVMgAABAgQIECBAgAABAgQIECBAgMAACwiADjCw6gkQIECAAAECBAgQIECAAAECBAgQGDyBEYPXtJYJECBAgAABAgQIECBAgAABAgSaWeCXv/xlXH755eUhPPzww+1D2XfffWPUqFGx/PLLx4knntie7oTAYAgIgA6GujYJECBAgAABAgQIECBAgAABAi0gcO+998aFF17YZSS//e1vy2lrrbWWAGgXHQmNFrAFvtHi2iNAgAABAgQIECBAgAABAgQIECBAoGECVoA2jFpDBAgQIECAAAECBAgQIECAAIHWEjj00EPj05/+dO6gRo8enZsng0CjBARAGyWtHQIECBAgQIAAAQIECBAgQIBAiwkst9xykb4cBIosYAt8kWdH3wgQIECAAAECBAgQIECAAAECBAgQ6JeAAGi/+NxMgAABAgQIECBAgAABAgQIECBAgECRBQRAizw7+kaAAAECBAgQIECAAAECBAgQIECAQL8EBED7xedmAgQIECBAgAABAgQIECBAgAABAgSKLCAAWuTZ0TcCBAgQIECAAAECBAgQIECAAAECBPolIADaLz43EyBAgAABAgQIECBAgAABAgQIECBQZIERRe6cvhEgQIAAAQIECBAgQKBRAmPGjInPf/7zmc2NHz8+M10iAQIECBAgUHwBAdDiz5EeEiBAgAABAgQIECDQAIGxY8fGlClTGtCSJggQIECAAIFGCtgC30htbREgQIAAAQIECBAgQIAAAQIECBAg0FABAdCGcmuMAAECBAgQIECAAAECBAgQIECAAIFGCgiANlJbWwQIECBAgAABAgQIECBAgAABAgQINFRAALSh3BojQIAAAQIECBAgQIAAAQIECBAgQKCRAgKgjdTWFgECBAgQIECAAAECBAgQIECAAAECDRUQAG0ot8YIECBAgAABAgQIECBAgAABAgQIEGikgABoI7W1RYAAAQIECBAgQIAAAQIECBAgQIBAQwUEQBvKrTECBAgQIECAAAECBAgQIECAAAECBBopIADaSG1tESBAgAABAgQIECBAgAABAgQIECDQUAEB0IZya4wAAQIECBAgQIAAAQIECBAgQIAAgUYKCIA2UltbBAgQIECAAAECBAgQIECAAAECBAg0VEAAtKHcGiNAgAABAgQIECBAgAABAgQIECBAoJECAqCN1NYWAQIECBAgQIAAAQIECBAgQIAAAQINFRAAbSi3xggQIECAAAECBAgQIECAAAECBAgQaKSAAGgjtbVFgAABAgQIECBAgAABAgQIECBAgEBDBQRAG8qtMQIECBAgQIAAAQIECBAgQIAAAQIEGikgANpIbW0RIECAAAECBAgQIECAAAECBAgQINBQAQHQhnJrjAABAgQIECBAgAABAgQIECBAgACBRgoIgDZSW1sECBAgQIAAAQIECBAgQIAAAQIECDRUQAC0odwaI0CAAAECBAgQIECAAAECBAgQIECgkQICoI3U1hYBAgQIECBAgAABAgQIECBAgAABAg0VEABtKLfGCBAgQIAAAQIECBAgQIAAAQIECBBopIAAaCO1tUWAAAECBAgQIECAAAECBAgQINA0Avvtt1+MHj26/PWPf/yjvd+VtG222aY9zUlxBUYUt2t6RoAAAQIECBAgQIAAgcYJzJw5My6++OLMBj/ykY/E+PHjM/MkEiBAgEDrCsyePTtmzZrVZYCVtLfffrtLnoTiCQiAFm9O9IgAAQIECBAgQIAAgUEQmDFjRnz/+9/PbHnTTTcVAM2UkUiAAIHWFlhiiSVilVVWyR3ksssum5snozgCAqDFmQs9IUCAAAECBAgQIECAAAECBAgQKJDAscceG+nL0dwCngHa3POn9wQIECBAgAABAgQIECBAgAABAgQIdCMgANoNjiwCBAgQIECAAAECBAgQIECAAAECBJpbQAC0uedP7wkQIECAAAECBAgQIECAAAECBAgQ6EZAALQbHFkECBAgQIAAAQIECBAgQIAAAQIECDS3gABoc8+f3hMgQIAAAQIECBAgQIAAAQIECBAg0I2AAGg3OLIIECBAgAABAgQIECBAgAABAgQIEGhugRHN3X29J0CAAAECBAgQIECAAAECBAgQIECgLwJz586NefPmlW+t/pwzZ045bdiwYbHAAs2/frL5R9CX2XUPAQIECBAgQIAAAQIECBAgQIAAgSEusOeee8aIESPKXy+++GJZ49VXX21P22WXXVpCSAC0JabRIAgQIECAAAECBAgQIECAAAECBAgQyBKwBT5LRRoBAgQIECBAgAABAgQIECBAgACBFhdYaaWVYt11180d5corr5yb10wZAqDNNFv6SoAAAQIECBAgQIAAAQIECBAgQKBOAj/84Q/rVFOxq7EFvtjzo3cECBAgQIAAAQIECBAgQIAAAQIECPRDQAC0H3huJUCAAAECBAgQIECAAAECBAgQIECg2AICoMWeH70jQIAAAQIECBAgQIAAAQIECBAgQKAfAgKg/cBzKwECBAgQIECAAAECBAgQIECAAAECxRYQAC32/OgdAQIECBAgQIAAAQIECBAgQIAAAQL9EBAA7QeeWwkQIECAAAECBAgQIECAAAECBAgQKLaAAGix50fvCBAgQIAAAQIECBAgQIAAAQIECBDoh4AAaD/w3EqAAAECBAgQIECAAAECBAgQIECAQLEFBECLPT96R4AAAQIECBAgQIAAAQIECBAgQIBAPwQEQPuB51YCBAgQIECAAAECBAgQIECAAAECBIotIABa7PnROwIECBAgQIAAAQIECBAgQIAAAQIE+iEwoh/3upUAAQIECBAgQIAAAQItIzB69OiYPHly5ngWXnjhzHSJBAgQIECAQPEFBECLP0d6SIAAAQIECBAgQIBAAwTGjRsXRx99dANa0gQBAgQIECDQSAFb4BuprS0CBAgQIECAAAECBAgQIECAAAECBBoqIADaUG6NESBAgAABAgQIECBAgAABAgQIECDQSAEB0EZqa4sAAQIECBAgQIAAAQIECBAgQIAAgYYKCIA2lFtjBAgQIECAAAECBAgQIECAAAECBAg0UsBLkBqp3c+25syZE1deeWVcffXV8dRTT8Wbb74Za6+9dkyaNCk222yzWGuttfrZgtsJECBAgAABAgQIECBAgAABAgQItJaAAGiTzOdLL70Uhx12WDz++OMdenzHHXdE+jr33HPjG9/4Ruywww4d8l0QIECAAAECBAgQIECAAAECBAgQGMoCAqBNMPszZsyIKVOmtAc/V1999dhiiy1iySWXjHvvvTduuOGGePvtt+PII4+MVHaPPfZoglH1vouvvhoxenTEggv2/t4i3zF3bsTDD0c891zE2LERq60WMWFCkXusb9UCae5Kv4OIF1+MWHTRKK3Kjth444gFPGCkmqnQ57NnR0yfHrH44hEjWvBfxVmz2saXvq+MHFnoqehV5956K+KaayIefDDiX/+KWHrpiI02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2/th34BB8Ntvv7XFiFrbCMZ4Z4fREUccIbVr17blzffGqFGjxOnRX9zn0wBaXIK83nMCMFB06dLFfk6bNm3kxRdftPfDvoEG4BlnnGGLcdJJJ8kTTzxh74d9AxXQiy++2BYDssKgHpXwzjvvyIABA2xxLrnkErn11lvt/bBvYA7gW265xRYDsg4cONDeD/vGs88+K/fdd58txuDBg+XSSy+198O+MXLkSEHFQYf7779fzjzzTL0b+t8777xTxowZY8vx+OOPS9euXe39sG/ccMMN8sYbb9hiQNYoGSmuuuoq+fDDD235Jk6cKEcffbS9H/aN8847L64D96OPPlINwbDLpdPfo0ePuA6yuXPnxnm86nhh/e3UqZM9ogMGQr8cAbzid8wxx9ge1/DG/vTTT716VN7vC+cJdKjoAOPL5MmT9W7of9E5feKJJ9pyHHvssTJu3Dh7P+wbMC717NnTFgOyPv300/Z+2DdgvD7//PNtMU499VQZPny4vR/2jQ8++ED+8pe/2GJccMEFcvvtt9v7Yd94/fXX5cYbb7TF6NevnwwaNMjeD/vGf/7zH7n77rttMSDrFVdcYe+HfSM2MVHYJWH6SYAESIAESIAESIAESIAESIAESIAESIAESIAESCCBAA2gCUC4SwIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkEB0CNIBGJy8pCQmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQQAIBGkATgHCXBEiABEiABEiABEiABEiABEiABEiABEiABEggOgRoAI1OXlISEiABEiABEiABEiABEiABEiABEiABEiABEiCBBAI0gCYA4S4JkAAJkAAJkAAJkAAJkAAJkAAJkAAJkAAJkEB0CJSOjiiUJKoEypcvLz179rTFa9Cggb0dhY0qVarEydeiRYsoiGXLUK1atTj5WrVqZZ+LwkatWrXi5GvevHkUxLJlOPzww+PkO/roo+1zUdjA98T5falfv34UxLJlQH455atbt659Lgob+F465atZs2YUxLJlwPdyz5499v4hhxxib0dho127dlKxYkVbFJSHUQodOnSQww47zBapXLly9nYUNjp37ixNmjSxRSlVqpS9HYWNbt26yebNm5UopUtHr8nUo0cP+fXXX5V8lStXjkKW2TKULFky0mUDviXOsq9evXq27FHYqFSpUpx8TZs2jYJYtgwoy535d9xxx9nnorBRo0aNOPmi1ratU6dOnHyNGzeOQrbZMuB74tTPhg0b2ueisFFinxWiIAhlIAESIAESIAESIAESIAESIAESIAESIAESIAESIIFEAhwCn0iE+yRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAApEhQANoZLKSgpAACZAACZAACZAACZAACZAACZAACZAACZAACSQSoAE0kQj3SYAESIAESIAESIAESIAESIAESIAESIAESIAEIkOABtDIZCUFIQESIAESIAESIAESIAESIAESIAESIAESIAESSCRAA2giEe6TAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAmQAAlEhgANoJHJSgpCAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiSQSIAG0EQi3CcBEiABEiABEiABEiABEiABEiABEiABEiABEogMARpAI5OVFIQESIAESIAESIAESIAESIAESIAESIAESIAESCCRQOnEA9wnARLwnsDu3bulbNmyGT9o8+bN8ssvv6jratSokfH1Qblg48aNsmrVKtm5c6ccddRRUq1ataAkLSfp+O233+TLL79U96pZs6bUrl07J/f1+ybIr++//16+++47gS4efvjhcsQRR6jfUqVK+Z28nDx/69atSkbIinesTp06Wb2rOUmMy03wHfj4449VjFatWkn16tVdYh84p/bs2aPyD9+XcuXKydFHHy2HHHJIqABAB9esWSPbtm0TbO/YsUPJUrFiRalUqZJUrVo19N8U6O+6detk165d6g/fTC0ffg8++OBQ5dmBkthff/1VSpcuLSVKlMhIZLyXP/30k7oG+Ys/hvwTYN2Tdc/8a13xn3gg1D1RBqLegr/KlSvLYYcdFti20VdffaXSiXK6bdu2xc/giNwBZdyyZctUWXfkkUdK/fr1VXkZFvEOhLqnzosS+6ygd/hLAiTgHYFp06bJpEmTZMmSJfLzzz8rw1HTpk3l9NNPl5YtWxo9+KabbpLp06eruNr4YXRhniKhcr127VrVQK9SpUqRp3777bfy5JNPyqeffhp3DgbQ8847T/r06ZNxwyruRgHZgeGiR48eKjWXXHKJ/PnPfw5IyuKTMWvWLEGeIEAPYTBKFtDo/c9//iP//ve/BZW0xABDaP/+/eXEE09MPBWIfbxv7777rsyYMUP69u0rzZo1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" width="672" /></p>
<div class="sourceCode" id="cb17"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_WLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb17-2"><a href="#cb17-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb17-3"><a href="#cb17-3" aria-hidden="true" tabindex="-1"></a>results_koguchi_number_WLS_covar <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-general-support-funds総合支援の決定件数" class="section level1" number="7">
<h1 number="7"><span class="header-section-number">7</span> Y= general support funds/総合支援の決定件数</h1>
<div id="ols-no-trends-2" class="section level2" number="7.1">
<h2 number="7.1"><span class="header-section-number">7.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb18"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb18-2"><a href="#cb18-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_OLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb18-3"><a href="#cb18-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb18-4"><a href="#cb18-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb18-5"><a href="#cb18-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb18-6"><a href="#cb18-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3,)</span></span>
<span id="cb18-7"><a href="#cb18-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb18-8"><a href="#cb18-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb18-9"><a href="#cb18-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb18-10"><a href="#cb18-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb18-11"><a href="#cb18-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_OLS&quot;</span>)</span>
<span id="cb18-12"><a href="#cb18-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb18-13"><a href="#cb18-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb18-14"><a href="#cb18-14" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_OLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb18-15"><a href="#cb18-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_OLS&quot;</span>)</span>
<span id="cb18-16"><a href="#cb18-16" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_OLS </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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gAABAgQIEJiAgAABAgR6R+DSSy9NL774YqXD6623XlpmmWUq1066Q2D69OnpiiuuSNOmTUt//etf05NPPpmeeuqpNHny5PSud72r8rXGGmukj33sY2n8+PFD7vg999yT7rrrrpryO+64Y5p99tlr0ob7YsaMGenyyy9PN910U+WZn3nmmfTOd74zLbTQQvnXiiuumD/vuuuumyZM8H9BhvudqJ8AAQIECBAgQIAAgX8IjCtlBwwCBAgQ6A2Bd7/73SmCa+XjwgsvTLvsskv50ucICrz11lvpvPPOSyeddFK6//77m+7JUkstlfbaa6+0++67pwUXXLDpcuWMxx57bDr88MPLl/nn888/nwceaxKH6eLHP/5x+spXvpLuvffepluIQPDOO++cjjzyyLTAAgs0XU5GAgQIECBAgAABAgQIDEXAFPihqClDgAABAgSqBGLk48orr5z22GOPQQU/o4pHHnkkfelLX0pLLrlkOvDAA9PMmTOrau7e0wjEb7DBBmmHHXYYVPAznigCtN/61rfSe97znvyze59SzwgQIECAAAECBAgQGA0CAqCj4S16BgIECBAYMYGjjz46bbHFFumPf/xjv32YOHFiv/dff/31dOqpp6ZNNtkkPf300/3mHembjz76aNp4443zKf6t9OW5555L++yzTzriiCNaqUZZAgQIECBAgAABAgQI9CtgAa5+edwkQIAAAQLFAm+++WY+bf2CCy7ok2HcuHHp//2//5cHRj/84Q+nJZZYIp+S/sorr6QHH3ww/7rqqqvSf//3f6dIqz6uv/76tOaaa6b//d//Tauuumr1ra44f+mll9Kmm26a/vKXv/Tpz/rrr5922mmn/HnjmRdddNH0wgsvpIcffjj/uvnmm1Ms21A/yvWYY45JiyyySB4M7VOpBAIECBAgQIAAAQIECLQoYA3QFgEVJ0CAQCcFrAHaSe3+29pvv/3S17/+9T6ZPvKRj6Tjjz8+rb766n3u1Sc8++yz6ayzzkqxjmd9IHTKlCnp97//fVp88cXri9Vcd3oN0FNOOSUddNBBNX2IgO0ZZ5yR/uVf/qUmvejioYceSl/+8pfT9773vZrbc8wxR4p7ETR1ECBAgAABAgQIECBAoJ0CpsC3U1NdBAgQIDAmBC6++OI+wc/YyT02QIqRnc0EPwNqvvnmy9f/vOGGG/IRkNV4MT08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2HArvjeyNXnz741seYCUrQedbzgX3yOLLrpoytYHzf/I1KWvTbcIECBAgAABAgQIEBiFAgKgo/CleqThF4jAZf2I1BiZGCNdHQQIECBAgAABAgQIECBAgAABAt0jUDyHtHv6pycEhkXgxBNPTNnO2/l6fe95z3tStqNxWn311ZtuK9ZQrD5incTBTruvLu+cAAECBAgQIECAAAECBAgQIEBgeAQEQIfHVa1dLhBTpWONyPiKIzZciunUzR6xZl31scYaazTcIKY6n3MCBAgQIECAAAECBAgQIECAAIHOCtgEqbPeWusSgfe97301PZk2bVqKtRObOc4777wU631WHzvvvHP1pXMCBAgQIECAAAECBAgQIECAAIEuERAA7ZIXoRudFYjp6vPNN1+l0djRPXZ3v+KKKypp9ScvvPBCOu6449Luu++eqvcOW3nlldOee+5Zn901AQIECBAgQIAAAQIECBAgQIBAFwjYBKkLXoIujIxATHnfbLPNUuxiX31EQHPdddfNd2eOHZtjN+3YvTmCoxEErT7mmGOOdPvtt6coM1LHBRdckKZPn96x5iMAHDtXOwiMlIDv+ZGS1y4BAgQIECBAgAABAgR6U0AAtDffm163SeC0005LBxxwwJBqW3TRRdNFF12UNthggyGVb1eh2MDp6quvbld1A9Zz0003pfXWW2/AfDIQGC4B3/PDJateAgQIECBAgAABAgQIjE4BU+BH53v1VE0K7L///umSSy5JH/jAB5oskdL48ePTdtttl+66664RD3423WkZCRAgQIAAAQIECBAgQIAAAQJjVMAu8GP0xXvstwW23nrrFF+xE/z3vve99OCDD6Y///nP6bHHHkuzZs3Kd3dfbLHF0pJLLpm23HLLtMsuu6RFFlnk7QpG+Gz77bdPq666asd6sfjii3esLQ0RKBLwPV+kIo0AAQIECBAgQIAAAQIEGgmYAt9IRvqYF4iNkV566aU0ZcqUMW8BgAABAgQIECBAgAABAgQIECDQqwICoL365vSbAAECBAgQIECAAAECBAgQIECAAIEBBawBOiCRDAQIECBAgAABAgQIECBAgAABAgQI9KqAAGivvjn9JkCAAAECBAgQIECAAAECBAgQIEBgQAEB0AGJZCBAgAABAgQIECBAgAABAgQIECBAoFcFBEB79c3pNwECBAgQIECAAAECBAgQIECAAAECAwoIgA5IJAMBAgQIECBAgAABAgQIECBAgAABAr0qIADaq29OvwkQIECAAAECBAgQIECAAAECBAgQGFBAAHRAIhkIECBAgAABAgQIECBAgAABAgQIEOhVAQHQXn1z+k2AAAECBAgQIECAAAECBAgQIECAwIACAqADEslAgAABAgQIECBAgAABAgQIECBAgECvCgiA9uqb028CBAgQIECAAAECBAgQIECAAAECBAYUEAAdkEgGAgQIECBAgAABAgQIECBAgAABAgR6VUAAtFffnH4TIECAAAECBAgQIECAAAECBAgQIDCggADogEQyECBAgAABAgQIECBAgAABAgQIECDQqwICoL365vSbAAECBAgQIECAAAECBAgQIECAAIEBBQRABySSgQABAgQIECBAgAABAgQIECBAgACBXhUQAO3VN6ffBAgQIECAAAECBAgQIECAAAECBAgMKCAAOiCRDAQIECBAgAABAgQIECBAgAABAgQI9KrAhF7tuH53RuDEE09Mv/rVryqNnXLKKWm55ZarXDshQIAAAQIECBAgMFoEXn311XTBBRcUPs4OO+yQpkyZUnhPIgECBAgQINDdAuNK2dHdXdS7kRTYbrvt0sUXX1zpwm9+85u0xhprVK6dECBAgAABAgQIEBgtAk8//XRab731Ch/n8ssvT1OnTi28J5EAAQIECBDobgFT4Lv7/egdAQIECBAgQIAAAQIECBAgQIAAAQItCAiAtoCnKAECBAgQIECAAAECBAgQIECAAAEC3S0gANrd70fvCBAgQIAAAQIECBAgQIAAAQIECBBoQUAAtAU8RQkQIECAAAECBAgQIECAAAECBAgQ6G4BAdDufj96R4AAAQIECBAgQIAAAQIECBAgQIBACwICoC3gKUqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/vROwIECBAgQIAAAQIECBAgQIAAAQIEWhAQAG0BT1ECBAgQIECAAAECBAgQIECAAAECBLpbQAC0u9+P3hEgQIAAAQIECBAgQIAAAQIECBAg0IKAAGgLeIoSIECAAAECBAgQIECAAAECBAgQINDdAgKg3f1+9I4AAQIECBAgQIAAAQIECBAgQIAAgRYEBEBbwFOUAAECBAgQIECAAAECBAgQIECAAIHuFhAA7e73o3cECBAgQIAAAQIECBAgQIAAAQIECLQgIADaAp6iBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H70jQIAAAQIECBAgQIAAAQIECBAgQKAFAQHQFvAUJUCAAAECBAgQIECAAAECBAgQIECguwUEQLv7/egdAQIECBAgQIAAAQIECBAgQIAAAQItCAiAtoCnKAECBAgQIECAAAECBAgQIECAAAEC3S0gANrd70fvCBAgQIAAAQIECBAgQIAAAQIECBBoQUAAtAU8RQkQIECAAAECBAgQIECAAAECBAgQ6G6BCd3dPb0jQIAAAQIECBAgQIBAZwQmTpyYNt5448LG5plnnsJ0iQQIECBAgED3CwiAdv870kMCBAgQIECAAAECBDogMO+886YzzzyzAy1pggABAgQIEOikgCnwndTWFgECBAgQIECAAAECBAgQIECAAAECHRUQAO0ot8YIECBAgAABAgQIECBAgAABAgQIEOikgABoJ7W1RYAAAQIECBAgQIAAAQIECBAgQIBARwUEQDvKrTECBAgQIECAAAECBAgQIECAAAECBDopIADaSW1tESBAgAABAgQIECBAgAABAgQIECDQUQG7wHeUW2MECBAgQIAAAQIECBAgQIAAgdEjcPXVV6dbbrml4QMtuOCCaZ999ml43w0CnRAQAO2EsjYIECBAgAABAgQIECBAgAABAqNQIAKgp5xySsMnW2GFFQRAG+q40SkBU+A7Ja0dAgQIECBAgAABAgQIECBAgAABAgQ6LmAEaMfJNUiAAAECBAgQIECAAAECBAgQGB0Cu+66a/rABz6QP8zhhx+epk+fnp+fe+65adKkSWneeecdHQ/qKXpaQAC0p1+fzhMgQIAAAQIECBAgQIAAAQIERk5glVVWSfEVx9e+9rVKAHTbbbdNU6ZMGbmOaZlAlYAp8FUYTgkQIECAAAECBAgQIECAAAECBAgQGF0CAqCj6316GgIECBAgQIAAAQIECBAgQIAAAQIEqgQEQKswnBIgQIAAAQIECBAgQIAAAQIECBAgMLoErAE6yPf58ssvp3322Sc9++yz6UMf+lA6+OCDB6zhrbfeSldeeWW65ppr0l/+8pf0yiuvpBVXXDGtvPLKaZ111kkrrLDCgHVEhnbV01RjMhEgQIAAAQIECBAgQIAAAQIECBAYBQICoIN8iaeddlqaMWNGXuqll14asPRTTz2VDjzwwPTQQw/V5L399ttTfJ1//vnp0EMPTZtuumnN/fqLdtVTX69rAgQIECBAgAABAgQIECBAgAABAqNZQAB0EG/32muvTVdddVXTJWK0aIwQLQc/p06dmtZbb7204IILprvuuitNmzYtvfHGG+mYY45JkTd2SCs62lVPUd3SCBAgQIAAAQIECBAgQIAAAQIECIxmAQHQJt/uk08+mU4++eQmc/8j23nnnVcZLbrRRhulI444Is0+++z5za222irdfffd6Qtf+EIe/Dz99NPT+uuvnxZYYIE+bbSrnj4VSyBAgAABAgQIECBAgAABAgQIECAwygVsgtTECy6VSum4445LL774YpprrrmaKJHSCy+8kC677LI870ILLVQT/CxX8P73vz9Pj+tY37Ocv3w/PttVT3WdzgkQIECAAAECBAgQIECAAAECBAiMFQEB0Cbe9I9+9KP029/+No0bNy7tu+++lRJx3ei47rrr0quvvprf3nrrrSsjP+vzx5T4JZdcMk+OAOjMmTNrsrSrnppKXRAgQIAAAQIECBAgQIAAAQIECBAYIwICoAO86OnTp6dzzjknz7XzzjunVVZZZYAS/7h9zz33VPKttdZalfOikzXXXDNPfuaZZ9Idd9xRk6Vd9dRU6oIAAQIECBAgQIAAAQIECBAgQIDAGBEQAO3nRccGRUcddVR68803U2xg9OlPf7qf3LW3/vCHP+QJMUp0ueWWq71ZdxV1l48HH3ywfJp/tquemkpdECBAgAABAgQIECBAgAABAgQIEBgjAgKg/bzos846K9/BPTYuqt7AqJ8ilVuPPfZYfh47vk+Y0P9eUwsvvHCl3COPPFI5j5N21VNTqQsCBAgQIECAAAECBAgQIECAAAECY0Sg/8jcGEEoeszbb789/fjHP85v7bnnnmnZZZctylaYFmt/zpo1K783ZcqUwjzViZMnT65cxqZH5aNd9ZTrK/q88MIL03333Vd0K0+LAGwEaJ999tl8JGzDjG4QIECAAAECBAgQIECAAAECBAgQ6EIBAdCClxJByGOPPTa/s9pqq6Udd9yxIFfjpJdffrlyc4455qicNzqpzvPaa69VsrWrnkqFBSc33nhjuv766wvuvJ30zne+M9+NPpYCcBAgQIAAAQIECBAYrQKxBFYMhCg64t8Fc889d9EtaQQIECBAgECXCwiAFrygr371qyk2JJpnnnnSYYcdlu/+XpCtYdIrr7xSuTdx4sTKeaOT6jyvv/56JVu76qlU6IQAAQIECBAgQIAAgYYCMRBit912K7x/+eWX5/sCFN6USIAAAQIECHS1gDVA617PFVdckW644YY8db/99sunf9dlGfCyes3Pt956a8D8M2fOrOSpDoa2q55K5U4IECBAgAABAgQIECBAgAABAgQIjDEBI0CrXvjjjz+evva1r+UpG264Ydpss82q7jZ/Otdcc1UyxzSagY7qPDHqtHy0q55yfUWfEeT95Cc/WXQrTzvqqKPSTTfdlKpHpjbM7AYBAgQIECBAgAABAgQIECBAgACBLhMQAP3nC4mRmkcffXSKjYfmnXfetNdee6UXX3yxz+uqXpcz1sQs5xk/fnxlTaDqtYGq8/ep7J8J1VPdqwOg7aqnUbuRvuKKK/Z3O02aNClV96/fzG4SIECAAAECBAgQIECAAAECBAgQ6DIBAdB/vpC///3v6Z577smvYu2fnXbaacBXNW3atBRfcay66qrpjDPOyM9jU6P5558/X0f0ySefzNP6+58nnniicnu++earnLernkqFTggQIECAAAECBAgQIECAAAECBAiMMQFrgA7TC19mmWXymmP05HPPPddvK48++mjlfv2IzHbVU2nACQECBAgQIECAAAECBAgQIECAAIExJGAE6D9f9pxzztnvWpjl74kYKXrppZfml+9617vS+uuvn58vtthi5Sz553vf+970m9/8Jj//3e9+l2JN0UbH3XffXbkV5aqPdtVTXadzAgQIECBAgAABAgQIECBAgAABAmNFQAD0n2861tvcY489BnzvjzzySCUAutxyyzUsEwHPCy64IK/vqquuahgAjenvd955Z55v+eWXT9VT4COxXfXkDfgfAgQIECBAgAABAgQIECBAgAABAmNMwBT4YXrh7373u1MENOOIXdQjCFp/xM7qJ5xwQooNmOLYZZdd6rOkdtXTp2IJBAgQIECAAAECBAgQIECAAAECBMaAgADoML7k/fffv1L7sccem84///z0+OOPp5kzZ6aY9n7ggQdWpsnHVPcNNtigkr/6pF31VNfpnAABAgQIECBAgAABAgQIECBAgMBYEDAFfhjf8korrZSOPPLIdPzxx6fXXnstnXvuufnX+PHjK6M+o/nFF188nXjiiWm22Yrj0e2qZxgfVdUECBAgQIAAAQIECBAgQIAAAQIEulKgOOLWlV3tzU5tvPHG6eyzz86nw5cDnOUp7xMmTEjbb799fn/y5Mn9PmC76um3ETcJECBAgAABAgQIECBAgAABAgQIjDIBI0AH+UKXWmqpdOONNw6q1LLLLpuP/IxRoA888ECKjY9i1/ioa9KkSU3X1a56mm5QRgIECBAgQIAAAQIECBAgQIAAAQI9LiAA2sEXOOecc6aVV145/2ql2XbV00oflCVAgAABAgQIECBAgAABAgQIECDQCwKmwPfCW9JHAgQIECBAgAABAgQIECBAgAABAgSGJCAAOiQ2hQgQIECAAAECBAgQIECAAAECBAgQ6AUBAdBeeEv6SIAAAQIECBAgQIAAAQIECBAgQIDAkAQEQIfEphABAgQIECBAgAABAgQIECBAgAABAr0gIADaC29JHwkQIECAAAECBAgQIECAAAECBAgQGJKAAOiQ2BQiQIAAAQIECBAgQIAAAQIECBAgQKAXBARAe+Et6SMBAgQIECBAgAABAgQIECBAgAABAkMSEAAdEptCBAgQIECAAAECBAgQIECAAAECBAj0goAAaC+8JX0kQIAAAQIECBAgQIAAAQIECBAgQGBIAgKgQ2JTiAABAgQIECBAgAABAgQIECBAgACBXhCY0Aud1EcCBAgQIECAAAECBAgMt8CECRPS6quvXtjMnHPOWZgukQABAgQIEOh+AQHQ7n9HekiAAAECBAgQIECAQAcEJk+enC666KIOtKQJAgQIECBAoJMCpsB3UltbBAgQIECAAAECBAgQIECAAAECBAh0VEAAtKPcGiNAgAABAgQIECBAgAABAgQIECBAoJMCAqCd1NYWAQIECBAgQIAAAQIECBAgQIAAAQIdFRAA7Si3xggQIECAAAECBAgQIECAAAECBAgQ6KSAAGgntbVFgAABAgQIECBAgAABAgQIECBAgEBHBQRAO8qtMQIECBAgQIAAAQIECBAgQIAAAQIEOikgANpJbW0RIECAAAECBAgQIECAAAECBAgQINBRAQHQjnJrjAABAgQIECBAgAABAgQIECBAgACBTgoIgHZSW1sECBAgQIAAAQIECBAgQIAAAQIECHRUQAC0o9waI0CAAAECBAgQIECAAAECBAgQIECgkwICoJ3U1hYBAgQIECBAgAABAgQIECBAgAABAh0VEADtKLfGCBAgQIAAAQIECBAgQIAAAQIECBDopIAAaCe1tUWAAAECBAgQIECAAAECBAgQIECAQEcFBEA7yq0xAgQIECBAgAABAgQIECBAgAABAgQ6KSAA2kltbREgQIAAAQIECBAgQIAAAQIECBAg0FEBAdCOcmuMAAECBAgQIECAAAECBAgQIECAAIFOCgiAdlJbWwQIECBAgAABAgQIECBAgAABAgQIdFRAALSj3BojQIAAAQIECBAgQIAAAQIECBAgQKCTAgKgndTWFgECBAgQIECAAAECBAgQIECAAAECHRUQAO0ot8YIECBAgAABAgQIECBAgAABAgQIEOikgABoJ7W1RYAAAQIECBAgQIAAAQIECBAgQIBARwUEQDvKrTECBAgQIECAAAECBAgQIECAAAECBDopIADaSW1tESBAgAABAgQIECBAgAABAgQIECDQUYEJHW1NYwQIECBAgAABAgQIEOhSgZkzZ6b777+/sHfLLbdcmmOOOQrvSSRAgAABAgS6W0AAtLvfj94RIECAAAECBAgQINAhgeeffz5ts802ha1dfvnlaerUqYX3JBIgQIAAAQLdLWAKfHe/H70jQIAAAQIECBAgQIAAAQIECBAgQKAFAQHQFvAUJUCAAAECBAgQIECAAAECBAgQIECguwUEQLv7/egdAQIECBAgQIAAAQIECBAgQIAAAQItCAiAtoCnKAECBAgQIECAAAECBAgQIECAAAEC3S0gANrd70fvCBAgQIAAAQIECBAgQIAAAQIECBBoQUAAtAU8RQkQIECAAAECBAgQIECAAAECBAgQ6G4BAdDufj96R4AAAQIECBAgQIAAAQIECBAgQIBACwICoC3gKUqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/vROwIECBAgQIAAAQIECBAgQIAAAQIEWhAQAG0BT1ECBAgQIECAAAECBAgQIECAAAECBLpbQAC0u9+P3hEgQIAAAQIECBAgQIAAAQIECBAg0IKAAGgLeIoSIECAAAECBAgQIECAAAECBAgQINDdAgKg3f1+9I4AAQIECBAgQIAAAQIECBAgQIAAgRYEBEBbwFOUAAECBAgQIECAAAECBAgQIECAAIHuFhAA7e73o3cECBAgQIAAAQIECBAgQIAAAQIECLQgIADaAp6iBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H70jQIAAAQIECBAgQIAAAQIECBAgQKAFAQHQFvAUJUCAAAECBAgQIECAAAECBAgQIECguwUEQLv7/egdAQIECBAgQIAAAQIECBAgQIAAAQItCAiAtoCnKAECBAgQIECAAAECBAgQIECAAAEC3S0gANrd70fvCBAgQIAAAQIECBAgQIAAAQIECBBoQUAAtAU8RQkQIECAAAECBAgQIECAAAECBAgQ6G4BAdDufj96R4AAAQIECBAgQIAAAQIECBAgQIBACwITWiirKAECBAgQIECAAAECBEaNwGyzzZaWWWaZwueZffbZC9MlEiBAgAABAt0vIADa/e9IDwkQIECAAAECBAgQ6IDAfPPNl37+8593oCVNECBAgAABAp0UMAW+k9raIkCAAAECBAgQIECAAAECBAgQIECgowICoB3l1hgBAgQIECBAgAABAgQIECBAgAABAp0UEADtpLa2CBAgQIAAAQIECBAgQIAAAQIECBDoqIA1QDvKrTECBAgQIECAAAECBAgQIEBgLAn85Cc/ST/4wQ8aPvKUKVPSd77znYb33SBAoHUBAdDWDdVAgAABAgQIECBAgAABAgQIECgUuO8KGtfIAABAAElEQVS++9Ill1xSeC8SF1lkkYb33CBAoD0CpsC3x1EtBAgQIECAAAECBAgQIECAAAECBAh0oYAAaBe+FF0iQIAAAQIECBAgQIAAAQIERofA3nvvne69997860Mf+lDloa666qo8bdq0aZU0JwQIDI+AKfDD46pWAgQIECBAgAABAgQIECBAgECaf/7586+gmDRpUkVk6tSpadlll61cOyFAYPgEjAAdPls1EyBAgAABAgQIECBAgAABAgQIECAwwgICoCP8AjRPgAABAgQIECBAgAABAgQIECBAgMDwCQiADp+tmgkQIECAAAECBAgQIECAAAECBAgQGGEBAdARfgGaJ0CAAAECBAgQIECAAAECBAgQIEBg+AQEQIfPVs0ECBAgQIAAAQIECBAgQIAAAQIECIywgADoCL8AzRMgQIAAAQIECBAgQIAAAQIECBAgMHwCAqDDZ6tmAgQIECBAgAABAgQIECBAgAABAgRGWEAAdIRfgOYJECBAgAABAgQIECBAgAABAgQIEBg+AQHQ4bNVMwECBAgQIECAAAECBAgQIECAAAECIywgADrCL0DzBAgQIECAAAECBAgQIECAAAECBAgMn4AA6PDZqpkAAQIECBAgQIAAAQIECBAgQIAAgREWEAAd4RegeQIECBAgQIAAAQIECBAgQIAAAQIEhk9AAHT4bNVMgAABAgQIECBAgAABAgQIECBAgMAICwiAjvAL0DwBAgQIECBAgAABAgQIECBAgAABAsMnIAA6fLZqJkCAAAECBAgQIECAAAECBAgQIEBghAUmjHD7midAgAABAgQIECBAgEBXCMyaNSs98cQThX1ZcMEF04QJ/vlUiCORAAECBAh0uYD/gnf5C9I9AgQIECBAgAABAgQ6I/Dss8+mDTfcsLCxyy+/PE2dOrXwnkQCBAgQIECguwVMge/u96N3BAgQIECAAAECBAgQIECAAAECBAi0ICAA2gKeogQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3vx+9I0CAAAECBAgQIECAAAECBAgQIECgBQEB0BbwFCVAgAABAgQIECBAgAABAgQIECBAoLsFBEC7+/3oHQECBAgQIECAAAECBAgQIECAAAECLQgIgLaApygBAgQIECBAgAABAgQIECBAgAABAt0tIADa3e9H7wgQIECAAAECBAgQIECAAAECBAgQaEFAALQFPEUJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/ekeAAAECBAgQIECAAAECBAgQIECAQAsCAqAt4ClKgAABAgQIECBAgAABAgQIECBAgEB3CwiAdvf70TsCBAgQIECAAAECBAgQIECAAAECBFoQEABtAU9RAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECBAgQINCCgABoC3iKEiBAgAABAgQIECBAgAABAgQIECDQ3QICoN39fvSOAAECBAgQIECAAAECBAgQIECAAIEWBARAW8BTlAABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAi0ICAA2gKeogQIECBAgAABAgQIECBAgAABAgQIdLfAhO7u3sj27rnnnkvf//7307333pseeeSR9MYbb6SFF144rb322mnLLbdMSy21VFMdfOutt9KVV16ZrrnmmvSXv/wlvfLKK2nFFVdMK6+8clpnnXXSCius0NF6mmpMJgIECBAgQIAAAQIECBAgQIAAAQKjQEAAtMFLvOyyy9I3v/nNPFhZneXPf/5ziq9LL700HXPMMXkwtPp+/flTTz2VDjzwwPTQQw/V3Lr99ttTfJ1//vnp0EMPTZtuumnN/fqLdtVTX69rAgQIECBAgAABAgQIECBAgAABAqNZQAC04O3ecsst6aSTTqrc2XjjjdOqq66aJk6cmP74xz+mn/3sZ+m1115LhxxySDrssMPSJptsUslbffLyyy+ngw8+uBL8nDp1alpvvfXSggsumO666640bdq0fFRpBFIj77bbbltdvHLernoqFTohQIAAAQIECBAgQIAAAQIECBAgMEYEBEDrXvQLL7yQjjrqqDx13Lhx6fjjj8+DluVsm2++eT79/T//8z/T66+/no499tj0/ve/P58aX85T/jzvvPPSjBkz8suNNtooHXHEEWn22WfPr7faaqt09913py984Qt58PP0009P66+/flpggQXKxSuf7aqnUqETAgQIECBAgAABAgQIECBAgAABAmNEwCZIdS/6hhtuyAOSkbzddtvVBD/LWd/znvekXXfdNb8sr+9Zvlf+jEBqTKOPY6GFFqoJfpbzROA0gqJxRD3l/OX78dmueqrrdE6AAAECBAgQIECAAAECBAgQIEBgrAgIgNa96QiAlo/NNtusfNrnM4KX5SPWBK0/rrvuuvTqq6/myVtvvXVl5Gd9vpgSv+SSS+bJEQCdOXNmTZZ21VNTqQsCBAgQIECAAAECBPoIzDbbbGny5MmFX3HPQYAAAQIECPSmgCnwde8tprw//PDD+bqdMdKz0RE7uZeP+eefv3xa+bznnnsq52uttVblvOhkzTXXzHeHf+aZZ9Idd9yRqvO3q56idqURIECAAAECBAgQIPC2wHzzzZduu+22txOcESBAgAABAqNCwJ8x615jrNEZmxXFxkaxBmijI3ZwLx/rrLNO+bTy+Yc//CE/jzqWW265SnrRSbRXPh588MHyaf7ZrnpqKnVBgAABAgQIECBAgAABAgQIECBAYIwICIAO4UXHLvA//elP85KxaVHsEF9/PPbYY3lS7Pg+YUL/A20XXnjhSvFHHnmkch4n7aqnplIXBAgQIECAAAECBAgQIECAAAECBMaIQP+RuTGCMNBjxtT02LE9gpHXXntteuCBB/IiK6ywQr5LfH2AM9b+nDVrVp5nypQpA1WfrzFUzhSbHpWPdtVTrq/o88gjj+x3ms+jjz6all566fTEE0+k1157ragKaQQIECBAgAABAgQIECBAgAABAgS6VkAAtIlXc/PNN6eTTjqpJmfs7B7rhcYI0Prj5ZdfriTNMccclfNGJ9V5qoOM7aqnUbuR/vjjj6cZM2b0lyVF//pbDqDfwm4SIECAAAECBAgQIECAAAECBAgQGEEBU+CbwP/rX/+a7+Ie09nLx5NPPpl23HHHdNZZZ6VSqVROzj+rN0iaOHFizb2ii+o8r7/+eiVLu+qpVOiEAAECBAgQIECAAAECBAgQIECAwBgTMAK0iRe+8847p9133z2NHz8+RVAypsF/85vfTC+99FL6/ve/n55//vn0xS9+sVJT9ZT4t956q5Le6GTmzJmVW9XB0HbVU6ncCQECBAgQIECAAAECBAgQIECAAIExJiAA2sQLf8c73lHJNffcc6ctttgivfe9702f/vSnUwQvL7/88rTVVlulFVdcMc8311xzVfK/8cYblfNGJ9V55plnnkq2dtVTqbDg5IwzzsifoeBWnrTLLrukSy+9tM8o10b5pRMgQIAAAQIECBAgQIAAAQIECBDoJgFT4If4NpZddtl8Cny5eOwMXz4iSFo+qtfxLKfVf1ZPda8OgLarnvr2qq9jxGm00+hrttlmE/ysBnNOgAABAgQIECBAgAABAgQIECDQUwICoC28rlVXXbVSOnZLLx+xadD888+fX8ZaoQMdscN6+ZhvvvnKp/nmQ+2op1KhEwIECBAgQIAAAQIECBAgQIAAAQJjTEAAtOqFz5o1K98V/Te/+U369a9/XXWn+LQ6WFm9e3vkXmaZZfJCMbrzueeeK67gn6nVwdPyNPpygXbVU67PJwECBAgQIECAAAECBAgQIECAAIGxJCAAWvW233zzzfRv//Zvaf/9909f+cpX+l0bM4o99NBDldJTp06tnMdJrBFaPn73u9+VTws/77777kp6dblIrL5upZ5KA04IECBAgAABAgQIECBAgAABAgQIjCEBAdCqlx1T11dZZZU85cUXXxxwFOgvfvGLSunll1++ch4nG264YeX6qquuqpzXn8T09zvvvDNPjjqqR5VGYrvqqW/XNQECBAgQIECAAAECBAgQIECAAIGxICAAWveWN9hgg0rKaaedlhptYvS///u/6bbbbsvzLrTQQmmjjTaqlIuTd7/73akcFL3ppptSURD09ddfTyeccEJ666238rKx43r90a566ut1TYAAAQIECBAgQIAAAQIECBAgQGAsCAiA1r3lrbbaKq299tp56t/+9re011575YHOWONz5syZacaMGem4445Lp5xySp5n3Lhx6fDDD0/veMc76mpK+VT6cuKxxx6bzj///HyN0agnpr0feOCBKdYbjSOmulcHX8vl4jOm5JePVuop1+GTAAECBAgQIECAAAECBAgQIECAwFgRGFfKjrHysM0+5/PPP5/222+/PNhZLhOBzvHjx9esCzr33HOnz33uc2nzzTcvZ+vzee2116bjjz8+VW+SFPWUR31GgcUXXzydddZZafLkyX3KlxPaVU+5vmY/t9tuu3TxxRdXskfAdo011qhcOyFAgAABAgQIECBAgAABAgSaE/jYxz6WrrzyyjxzDLBadtllmyvYI7nWWWeddOutt+a9ffbZZ9OUKVN6pOe6OdoFjAAteMMRiDz33HPTvvvum+aZZ548R8SJY+RmHBHAjNGaF154Yb/Bz8i78cYbp7PPPjufDj/bbP/gLgc/J0yYkLbffvv8fn/Bz3bWE3U5CBAgQIAAAQIECBAgQIAAAQIECIwVgQlj5UEH+5wRnNxhhx3Sv/7rv+bT1h9++OEUa3Yus8wyackll0xxv9kj/qITAdUYBfrAAw+k2PhoscUWS0sttVSaNGlSs9XkfxlqRz1NNygjAQIECBAgQIAAAQIECBAgQIAAgR4XaD6K1+MPOtTux6jNJZZYIv8aah3lcnPOOWdaeeWV869y2lA+21XPUNpWhgABAgQIECBAgAABAgQIECBAgEAvCZgC30tvS18JECBAgAABAgQIECBAgAABAgQIEBiUgADooLhkJkCAAAECBAgQIECAAAECBAgQIECglwQEQHvpbekrAQIECBAgQIAAAQIECBAgQIAAAQKDEhAAHRSXzAQIECBAgAABAgQIECBAgAABAgQI9JKAAGgvvS19JUCAAAECBAgQIECAAAECBAgQIEBgUAJ2gR8Ul8wECBAgQIAAAQIECIxmgVdffbXw8eacc840bty4wnsSCRAgQIAAge4WEADt7vejdwQIECBAgAABAgQIdEjg6aefTuutt15ha5dffnmaOnVq4T2JBAgQIECAQHcLmALf3e9H7wgQIECAAAECBAgQIECAAAECBAgQaEFAALQFPEUJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/ekeAAAECBAgQIECAAAECBAgQIECAQAsCAqAt4ClKgAABAgQIECBAgAABAgQIECBAgEB3CwiAdvf70TsCBAgQIECAAAECBAgQIECAAAECBFoQEABtAU9RAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECBAgQINCCgABoC3iKEiBAgAABAgQIECBAgAABAgQIECDQ3QICoN39fvSOAAECBAgQIECAAAECBAgQIECAAIEWBARAW8BTlAABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAi0ICAA2gKeogQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3vx+9I0CAAAECBAgQIECAAAECBAgQIECgBQEB0BbwFCVAgAABAgQIECBAgAABAgQIECBAoLsFBEC7+/3oHQECBAgQIECAAAECBAgQIECAAAECLQgIgLaApygBAgQIECBAgAABAgQIECBAgAABAt0tIADa3e9H7wgQIECAAAECBAgQIECAAAECBAgQaEFAALQFPEUJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/ekeAAAECBAgQIECAAAECBAgQIECAQAsCAqAt4ClKgAABAgQIECBAgAABAgQIECBAgEB3CwiAdvf70TsCBAgQIECAAAECBAgQIECAAAECBFoQEABtAU9RAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECBAgQINCCwIQWyipKgAABAgQIECBAgAABAgQIECBAgECPChx66KHphhtuaNj7ddddN5188skN7/fKDQHQXnlT+kmAAAECBAgQIECAwLAKLLDAAulPf/rTsLahcgIECBAg0E0C8d+9X/3qVw27NGXKlIb3eumGKfC99Lb0lQABAgQIECBAgAABAgQIECBAgACBQQkYATooLpkJECBAgAABAgQIECBAgAABAgQIjA6B733ve+mNN97IH2b55ZdPTz31VJp33nnTn//85zxt9tlnHxUPKgA6Kl6jhyBAgAABAgQIECBAgAABAgQIECAwOIF55pknxVccs832j4ni8Tlapr6XNQRAyxI+CRAgQIAAAQIECBAgQIAAAQIECFQJTJs2Ld13331VKbWnCy+8cNpqq61qE111nYAAaNe9Eh0iQIAAAQIECBAgQIAAAQIECBDoBoHzzz8/ffe7323YlXXWWUcAtKFO99ywCVL3vAs9IUCAAAECBAgQIECAAAECBAgQIECgzQJGgLYZVHUECBAgQIAAAQIECBAgQIAAAQKjQ2CnnXZK73vf+/KHOeGEE9KTTz6Zn5966qn552KLLTY6HnSUP4UA6Ch/wR6PAAECBAgQIECAAAECBAgQIEBgaAKbbLJJiq84zjnnnEoAdP/99x9ahUqNiIAp8CPCrlECBAgQIECAAAECBAgQIECAAAECBDohIADaCWVtECBAgAABAgQIECBAgAABAgQIECAwIgICoCPCrlECBAgQIECAAAECBAgQIECAAAECBDohIADaCWVtECBAgAABAgQIECBAgAABAgRGoUCplNJPfpLS9tundMcdbz/gFlukdNppKb344ttpzgiMlIAA6EjJa5cAAQIECBAgQIAAAQIECBAg0MMCf/pTSmus8Y/gZwRB33jj7Ye55ZaUDjggpeWW+0eA9O07zgh0XkAAtPPmWiRAgAABAgQIECBAgAABAgQI9LTAb3+b0tprp3Tnnf0/xlNPpbTDDimdfnr/+dwlMJwCAqDDqatuAgQIECBAgAABAgQIECBAgMAoE3j22ZS22iqlv/+9uQeLafL775/SL3/ZXH65CLRbQAC03aLqI0CAAAECBAgQIECAAAECBAiMYoHjjkvpsccG94CzZqW0334pxaeDQKcFBEA7La49AgQIECBAgAABAgQIECBAgECPCrz5Zkrf+c7QOn/PPSndeOPQyipFoBUBAdBW9JQlQIAAAQIECBAgQIAAAQIECIwhgdtuS+n554f+wFddNfSyShIYqoAA6FDllCNAgAABAgQIECBAgAABAgQIjDGBhx9u7YFbLd9a60qPVQEB0LH65j03AQIECBAgQIAAAQIECBAgQGCQAm+9NcgCddlbLV9XnUsCTQkIgDbFJBMBAgQIECBAgAABAgQIECBAgMASS7Rm0Gr51lpXeqwKCICO1TfvuQkQIECAAAECBAgQIECAAAECgxRYZ52U5p57kIWqsn/4w1UXTgl0SEAAtEPQmiFAgAABAgQIECBAgAABAgQI9LrAXHOl9IlPDO0pll46JQHQodkp1ZqAAGhrfkoTIECAAAECBAgQIECAAAECBMaUwGGHpTTbECJK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qAICoEOVU44AAQIECBAgQIAAAQIECBAg0EMCv/99SqecUtzhmPIea2/OMUfx/eFIXXTRlHbdtbjm3/628Q71xSWkEmgsIADa2MYdAgQIECBAgAABAgQIECBAgMCoEJg1K6U990zpzTeLH2e33VLaYIPie8OZGpsxNTpOPrnRHekEBicgADo4L7kJECBAgAABAgQIECBAgAABAj0n8K1vpWyjt+JuL7RQSiedVHxvuFNXWimlLbYobuWqq1K6997ie1IJDEZAAHQwWvISIECAAAECBAgQIECAAAECBHpM4LHHUjrssMad/vrXU7YBXOP7w33noIOKWyiVRi4wW9wjqb0qIADaq29OvwkQIECAAAECBAgQIECAAAECTQjsu29KL7xQnHGzzVLaaafie51Kjan3q61W3NpFF6X0t78V35NKoFkBAdBmpeQjQIAAAQIECBAgQIAAAQIECPSYwCWXpBRfRcfcc6cUU+O74TjkkOJevP56SjFC1UGgFQEB0Fb0lCVAgAABAgQIECBAgAABAgQIdKnAiy+mFKM/Gx1HHpnSMss0utvZ9O22S2mppYrbjN3pX365+J5UAs0ICIA2oyQPAQIECBAgQIAAAQIECBAgQKDHBA49NKVY/7PoWHXVlPbbr+jOyKRNmJDSAQcUt/3ccymde27xPakEmhEQAG1GSR4CBAgQIECAAAECBAgQIECAQA8J3HZbSmeeWdzh2bJo0Le/nVIEHbvp2G23lN75zuIexTT4t94qvieVwEACAqADCblPgAABAgQIECBAgAABAgQIEOghgZkzU9pzz5RmzSru9Oc+l9KaaxbfG8nUd7wjpb33Lu7BQw+l9JOfFN+TSmAgAQHQgYTcJ0CAAAECBAgQIECAAAECBAj0kMDJJ6d0993FHV5yyZSOPrr4XjekfvazKc0+e3FPTj21OF0qgYEEBEAHEnKfAAECBAgQIECAAAECBAgQINAjAjNmpHTUUY07+81vpjRpUuP7I31n8cVT2mWX4l78+tcpXX998T2pBPoTEADtT8c9AgQI/H/27gNOyuL+4/j3BKSKNEFADAgIqFhRoxgpRlFRmmgMGFvsHQGN8W+MUWJM0BhLxII1aowRAQUsKNgbQUE0EhSRoqIgTXrZ//PbZff27ua5273b232e3c+8Xsc9O/M888y857jy25lnEEAAAQQQQAABBBBAAAEEQiRgS8jXr3c3+OSTpRNPdJcFKXfYMP/W2OxWEgLpChAATVeM8xFAAAEEEEAAAQQQQAABBBBAAIEACjz2mPTyy+6G2eZCtpFQGNK++0rHHutu6eTJ0ty57jJyEfATIADqJ0M+AggggAACCCCAAAIIIIAAAgggEBKB5culK6/0b+wtt0gtW/qXB61kxAh3iyIR6S9/cZeRi4CfAAFQPxnyEUAAAQQQQAABBBBAAAEEEEAAgZAIDB8uLVvmbuzhh8d2hXeXBjP3qKOk/fZzt+3xx6XvvnOXkYuAS4AAqEuFPAQQQAABBBBAAAEEEEAAAQQQQCAkAq++Kj3yiLuxtqP6ffdJRUXu8iDnjhzpbt2GDdIdd7jLyEXAJUAA1KVCHgIIIIAAAggggAACCCCAAAIIIBACAQsGXnCBf0Ovvlrae2//8iCXnHKKtNtu7haOGSOtW+cuIxeB0gIEQEuL8BoBBBBAAAEEEEAAAQQQQAABBBAIicCNN0rz5rkb27GjdO217rIw5NrsVb8d4e2Zpw8+GIZe0MYgCBAADcIo0AYEEEAAAQQQQAABBBBAAAEEEEAgTYFPPil/Q6B775Xq1Emz0oCdfs45UsOG7kbZrvbbtrnLyEUgWYAAaLIGxwgggAACCCCAAAIIIIAAAggggEAIBGw39HPPlTZvdjf2rLOkXr3cZWHKteDn+ee7W/z559K4ce4ychFIFqiZ/ILjkgKrVq3SU089pblz52rx4sXebmrL1KpVK7Vp08bbiWw/DRo0SLVsPnYFaevWrZoyZYqmTp2qRYsWec+oWKcuXbqoa9euOuyww9S5c+cKaogVZ6qelG7GSQgggAACCCCAAAIIIIAAAgggEFiBe+6R3nnH3bxddpFGj3aXhTH30kulv/5V2rKlbOtvu00aPLhsPjkIJAsQAE3WSDp++umnvWdJPKgff/wxKVdasGBB9OONN97QhAkTNNLbkuyAAw4ocU7yi++//17Dhw/Xl19+mZytDz74IPrxiLdN2zXXXKM+ffqUKC/9IlP1lK6X1wgggAACCCCAAAIIIBAT+OGHHzRw4EAnh/3e3rZtW2cZmQgggEC2Bb7+Wvrtb/3vasHCJk38y8NW4s1D0y9/KT32WNmWWxD4zTelI44oW0YOAnEBAqBxiaTPL730ku64445EzqGHHhqd8dmsWbPoTNDXX389GgS12ZwjRozQAw88oHbt2iXOjx+sXbs2GiCNBz87dOig7t27axfvrZiPPvpIVs+mTZt00003yc61GaWulKl6XHWThwACCCCAAAIIIIAAAjGBbd6D5L799lsnxxbXtCPnmWQigAAC1S9gMyK9RavOdMwx0tChzqJQZ155pTsAap2y2a4EQEM9vNXeeAKgpYi/9t5GGb19nniNGjX0hz/8QUceeWSJs87yHqRx11136ZlnnokGMO2c+++/XzVrluR86KGH9MUXX0Sv7eU9eOO6665LLJnv37+/Zs+erauuuioa/LSAq93HgqylU6bqKV0vrxFAAAEEEEAAAQQQQAABBBBAIFwCEyf6P/eybl3JlsbnY9p/f+noo6WXXy7bu+eek+bNk2zXexICLgE2QSql8sorr2j9+vXR3CFDhpQJflqBBTov9d5uiT+783Pvqbv2nNDktHr1ak2070peat68eYngZ/y8fffdN5pvr+35nvHz4+X2OVP1JNfJMQIIIIAAAggggAACCCCAAAIIhE/AntJ3ySX+7f7976U99vAvD3uJtwjXmWwn+FtvdRaRiUBUgABoqS8EW5oeT/369Ysflvlss0N79uyZyP/f//6XOLaDadOmJQKpAwYMSMz8LHGS98KWxNumSpYsAFp6aU2m6onegH8QQAABBBBAAAEEEEAAAQQQQCC0AtdeK29zZXfzvb2aZcvE8znZ8v599nH38NFH5W1e7S4jFwECoKW+Bpp4Twnea6+9okHJFi1alCot+bJp06aJDNukKDnNmTMn8fKQQw5JHLsOunXrFs1evny5Zs6cWeKUTNVTolJeIIAAAggggAACCCCAAAIIIIBAqAS8vZS9x/G5m7yDF9257z5bseouz6dcby9qZ7LFvHfe6SwiEwERAC31RXCt93bKvffeqyeeeEJFRUWlSku+tKXv8dS+ffv4YfTzJ598Ev1sdZQuK3Gi98I2R4qn+fPnxw+jnzNVT4lKeYEAAggggAACCCCAAAIIIIAAAqERsH3Yzj1XsqXermTL4iuYe+W6LJR5p54qtWrlbro9/3TDBncZuYUtQAC0kuO/bt062W7x8dSlS5f4YfTzkiVLop9tx/fSmyOVONF7kTzTdOHChSWKM1VPiUqTXlg/7Dmjfh/2bNId7K0kEgIIIIAAAggggAACCCCAAAII5ETgttukWbPct95tN+mm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0xx88MGmcePGURLHNy3vvPOOefTRR82MGTOsgzeXjHLy6j3dZZddzKBBgyJbEfQVNGEHlX/ecccdtlFPlTt9J7p162b23HNP+93ebLPN8kqscs/pp59u45122mk2H857ERHKQoCyp7HlHMqeZTGnstxkUyl7CpZkVX1NjX0XXnhhLX4qg//xj380b731llFZOzWojnjIIYfYv7p1ozNo99prrzX/+te/bFJ//OMfm2HDhpkGDRqkJj0x2+vWrTOfffaZLZdJP+q0o4b11PD555+bMWPGmKeeesoovgtqLDzwwAPNueeeW6u86uKE/bsplD39GOMA9aPCMQiUkYBaLq+//nozceJE37uqJ8UxxxxjzjjjDJOvIhFVB6icE7feequRA0JOUH2oe/ToYQYOHGiOOOIIK7c+8kOGDLG9mnxBbDi49957m0suuST2ld24OEBHjhxpHnvsMasOOSb8euLKoX3++efbXnXZ9OaOy8F09dVXR6rFU86WSy+91HNs/u///q/5n//5H5dkK5fOq2drrqAe27JfZ8+54lbjXKoDVM9TQUuFUDmykxTknJZTUw74VIeZekj86le/Mj/60Y+suDqvAmiuIN2JUaG913Ldsxzn/vGPf5i//vWvtkd8MfeTs1ANLUcffXTkZJM8csCMHTvWViCKkU8VKzUoqZFFDRKE6hF49dVXzZVXXun13sx8cocOHcxFF12UtxEXB2gmucrvU/ak7BnVxvdNoeypUQ433XSTGTdunH3Zd9hhB3PXXXelvfi33Xab/Tb6dSxIjajGzssuu8yOSko9HtZ2qgNUaVB9T9+JpI1E+uCDD8zvf/97M3v27DTUqqtefvnltqeuyuKqG2Q2vKdeoJGA4qOGwyiFpJc9c7Gut+GFuixXBM5BAAKlERg9erT3AdSd1Hti6623TnMEzpw501YS99lnH5uhZnuierGpJUpBPdmiEPSR/+1vf2tbON1HXI4KtYipp2fLli2NWjHVAqZjCnL0du3a1bai6Ro5UBX0Afnwww89p4Y9GOK/OXPmmMWLF9vh3hryHfRPvQhdoadjx452GHXmtXJahB3Um1gVUwX1wN18883TkiQ9Dh8+3Lz33nvecbV+9unTx/Tr18+oZ50cb2pBVBAvOX+j0tNOsp199tlmxYoVXvr1jnXp0sXuq4J4zjnnpBVuJJ+GlKtXtpxs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OOy5SuCkSZMCzxXdvn172xO0YcOGVkRNkTNhwoRIiot8tdWC/mozCesI9lmbPPZZm0lYR5Jsn042sdVCR0HD2WefbdQbVGHevHl2gcCgDtSgz6hmvHqXbQjVfCDPgkA2AppcV4uWvPPOO2blypV2kvndd989W/TYHUe+2KksLcHoLw1H7HaUl4wbN84O4XjvvffMEUccYRo0aBA7ObIlGPmykYnHcfQXDz1lSyX6y0YmmsflxHz66afNqlWrzIcffmh69eoVaGEjlQM6depkJk+ebAV78cUXbaP9F198YebMmWOPDR48OHShkc9fBejPGOzT3zbKeZT3z58m71/471/z5s3tNC7qAfrWW28ZOUQ7d+7sr7CUo+qg1rdvXztCV9+7L7/80uj7p9G7zz//vI2puUHjMj8oDtAU5bIZPgFVIlQoVauCCqVJdFIgX/h2VmwKsM9iyYV/XdOmTY3+XnrpJaMVqtWrd7fddgs/YWVKAfKVCWRIt0F/IYEv02PRX5lAVuk22267ra38qSeL5vUcP3680eq4n3/+udl5551zpkIVPi3WOWXKFBtPK8TrHi5EwcGEfE4btX/RX/gOeuyztl26I9gn9ulsoRK/cmTKxp544gk7Hdizzz5rXnvtNfv9a9WqlWnZsmXWx9avX9/069fPTJ061Q6B17RiL7zwghcfB6iHgg0IFEZAPbJU+FThslu3bmbrrbe224XdJbqxkS+6ugmSMvQXhFJ04yhP0cTfymPksOjRo0d0E1tEypCvCGgRugT9RUgZRSQF/RUBLcRL1ACmKVE0l5kaxdTovmDBAnPkkUfmTZV03bZtW9ugpmmbUkMUHKBKD/KlaiV9G/2l8whjD/vMTh37zM6mWmeSbJ9t2rQx6qX8xhtv2BEMavh7++23be9NjXDIFbRw4P7772+vVS/S1BAnB2idDR/u9C93qiRsQwACEIAABCAAAQhAAAIQSBiBb7/91mguzyeffNIOh997773topxBxfz444/t4khvvvmmd0lqjxjvYEgbyJcbPPrLzafSZ7HP3ISxz9x8Kn026fap79Yf/vAH4xYDHD16tNl1110DYdVq8g888IC588477bdTF5122mmRmGIjiAA4QINQIg4EIAABCEAAAhCAAAQgkDgCqszNmjXLLr7Zu3fvguXTYkiPPPKIrUhOnDix4OsrfQHy5SaM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gAAEIAABCEAAAhCAAAQgAIFEEMABmgg1IgQEIAABCEAAAhCAAAQgAAEIQAACEIAABCDgRwAHqB8VjkEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKJIIADNBFqRAgIQAAC/9eOHdMAAMAwDOPPugSCoPLbb94XAgQIECBAgAABAgQIECBAgEAJCKClYiNAgAABAgQIECBAgAABAgQIECBA4EJAAL14oyMIECBAgAABAgQIECBAgAABAgQIECgBAbRUbAQIECBAgAABAgQIECBAgAABAgQIXAgIoBdvdAQBAgQIECBAgAABAgQIECBAgAABAiUggJaKjQABAgQIECBAgAABAgQIECBAgACBCwEB9OKNjiBAgAABAgQIECBAgAABAgQIECBAoAQE0FKxESBAgAABAgQIECBAgAABAgQIECBwISCAXrzREQQIECBAgAABAgQIECBAgAABAgQIlIAAWio2AgQIECBAgAABAgQIECBAgAABAgQuBATQizc6ggABAgQIECBAgAABAgQIECBAgACBEhBAS8VGgAABAgQIECBAgAABAgQIECBAgMCFgAB68UZHECBAgAABAgQIECBAgAABAgQIECBQAgJoqdgIECBAgAABAgQIECBAgAABAgQIELgQEEAv3ugIAgQIECBAgAABAgQIECBAgAABAgRKQAAtFRsBAgQIECBAgAABAgQIECBAgAABAhcCAujFGx1BgAABAgQIECBAgAABAgQIECBAgEAJCKClYiNAgAABAgQIECBAgAABAgQIECBA4EJAAL14oyMIECBAgAABAgQIECBAgAABAgQIECgBAbRUbAQIECBAgAABAgQIECBAgAABAgQIXAgIoBdvdAQBAgQIECBAgAABAgQIECBAgAABAiUggJaKjQABAgQIECBAgAABAgQIECBAgACBCwEB9OKNjiBAgAABAgQIECBAgAABAgQIECBAoAQE0FKxESBAgAABAgQIECBAgAABAgQIECBwISCAXrzREQQIECBAgAABAgQIECBAgAABAgQIlIAAWio2AgQIECBAgAABAgQIECBAgAABAgQuBATQizc6ggABAgQIECBAgAABAgQIECBAgACBEhBAS8VGgAABAgQIECBAgAABAgQIECBAgMCFwABjyO/arjfjVwAAAABJRU5ErkJggg==" width="672" /></p>
<div class="sourceCode" id="cb20"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb20-1"><a href="#cb20-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_OLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-2" class="section level2" number="7.2">
<h2 number="7.2"><span class="header-section-number">7.2</span> WLS, no trends</h2>
<div class="sourceCode" id="cb21"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb21-1"><a href="#cb21-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb21-2"><a href="#cb21-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb21-3"><a href="#cb21-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb21-4"><a href="#cb21-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb21-5"><a href="#cb21-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb21-6"><a href="#cb21-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3,)</span></span>
<span id="cb21-7"><a href="#cb21-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb21-8"><a href="#cb21-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb21-9"><a href="#cb21-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb21-10"><a href="#cb21-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb21-11"><a href="#cb21-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb21-12"><a href="#cb21-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb21-13"><a href="#cb21-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb21-14"><a href="#cb21-14" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb21-15"><a href="#cb21-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb21-16"><a href="#cb21-16" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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CBAgQIAAAQIECBAYj4AAAQIERo/ARRddlJ5//vl6h3fcccc0derU+rmDoRe4995703XXXddQ8a677prWW2+9hrx2Tl5++eX0ne98J9VqtYbim222Wdpmm20a8to9ufjii9Nzzz1XLz5lypQ0e/bs+vkdd9yRbrvttvp5HOy///5pueWWa8gb7pP58+enSy65JF177bXpkUceSY8//nh66qmn0t/8zd+ktdZaK/+ZMWNGetOb3pRe+9rXpvHj/V+U4X4n6idAgAABAgQIECCwtAiMy/4R1vivsKXlyT0nAQIERqHAxhtvnO6+++56z7/xjW+kAw88sH7uYOgFbr/99rTllls2VHzaaaeluXPnNuS1c3L99denCFpXUwQsr7zyymp2n+cLFy7MA4h//vOf62WPPvrodPLJJ9fPTzzxxHTsscfWz+Pg2Wefze9ryBymk+9973vpk5/8ZLrzzjvbbmHSpEnpgAMOSJ/61KfS5MmT275PQQIECBAgQIAAAQIECDQTMAW+mYo8AgQIECDwF4GZM2fmoxPLINURoeVrvR3/53/+Z9PLUd+f/vSnptd6y/zVr36VysHPKPv//t//6+2Wjl2LQP3OO++c9ttvv34FP6ODEaD993//97TJJpvknx3rtIYIECBAgAABAgQIEBiTAgKgY/K1eigCBAgQGCqBcePGpZjyXk5DHQBdtGhR+sUvflFuoq3ja665pqHcyiuv3HSEaUOhDpw8+OCDuVm1f/1t+plnnknvf//703HHHdffW5UnQIAAAQIECBAgQIBAXUAAtE7hgAABAgQINBf4u7/7u4YLsX7lvHnzGvL6OnnyySfT//zP/9SLLbNM43+CW40Ord/Q5OCXv/xlQ+4uu+ySll9++Ya8Tp/ESNbdd989PfDAAz2a3mmnnfIRnbFu6S233JKvBfr73/8+XX755enLX/5y+qd/+qema3+ecMIJ6eyzz+5RnwwCBAgQIECAAAECBAi0I9D4r6927lCGAAECBAgsZQJveMMbejxxf0eBRpBvyZIl9Xre8Y531I/joL8B0Bg1esMNNzTU0Q3T388999weU9632267FNP1I2B7+OGHp7e85S1p6623Tuuss04+zX233XZLhxxySDr//PPTXXfdlQ466KCG54qTWHM1Nk+SCBAgQIAAAQIECBAg0F8BAdD+iilPgAABAkudwCtf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Pfek++67Lz300ENpyZIl+e7u6623Xlp//fXTW9/61nTggQemddZZ568VjPDRvvvum7baaquO9WLKlCkda0tDBJoJ+M43U5FHgAABAgQIECBAgAABAq0ETIFvJSN/qReIjZH+9Kc/pdVWW22ptwBAgAABAgQIECBAgAABAgQIEBitAgKgo/XN6TcBAgQIECBAgAABAgQIECBAgAABAn0KWAO0TyIFCBAgQIAAAQIECBAgQIAAAQIECBAYrQICoKP1zek3AQIECBAgQIAAAQIECBAgQIAAAQJ9CgiA9kmkAAECBAgQIECAAAECBAgQIECAAAECo1VAAHS0vjn9JkCAAAECBAgQIECAAAECBAgQIECgTwEB0D6JFCBAgAABAgQIECBAgAABAgQIECBAYLQKCICO1jen3wQIECBAgAABAgQIECBAgAABAgQI9CkgANonkQIECBAgQIAAAQIECBAgQIAAAQIECIxWAQHQ0frm9JsAAQIECBAgQIAAAQIECBAgQIAAgT4FBED7JFKAAAECBAgQIECAAAECBAgQIECAAIHRKiAAOlrfnH4TIECAAAECBAgQIECAAAECBAgQINCngABon0QKECBAgAABAgQIECBAgAABAgQIECAwWgUEQEfrm9NvAgQIECBAgAABAgQIECBAgAABAgT6FBAA7ZNIAQIECBAgQIAAAQIECBAgQIAAAQIERquAAOhofXP6TYAAAQIECBAgQIAAAQIECBAgQIBAnwICoH0SKUCAAAECBAgQIECAAAECBAgQIECAwGgVEAAdrW9OvwkQIECAAAECBAgQIECAAAECBAgQ6FNAALRPIgUIECBAgAABAgQIECBAgAABAgQIEBitAuNHa8f1uzMCp556avrVr35Vb+z0009PG220Uf3cAQECBAgQIECAAIGxIrBw4cJ04YUXNn2c/fbbL6222mpNr8kkQIAAAQIEultgXC1L3d1FvRtJgX322Sf98Ic/rHfh5ptvTttuu2393AEBAgQIECBAgACBsSLw5JNPph133LHp41xyySVp2rRpTa/JJECAAAECBLpbwBT47n4/ekeAAAECBAgQIECAAAECBAgQIECAwCAEBEAHgedWAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECBAgQIDAIAQHQQeC5lQABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAgMQkAAdBB4biVAgAABAgQIECBAgAABAgQIECBAoLsFBEC7+/3oHQECBAgQIECAAAECBAgQIECAAAECgxAQAB0EnlsJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/ekeAAAECBAgQIECAAAECBAgQIECAwCAEBEAHgedWAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECBAgQIDAIAQHQQeC5lQABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAgMQkAAdBB4biVAgAABAgQIECBAgAABAgQIECBAoLsFBEC7+/3oHQECBAgQIECAAAECBAgQIECAAAECgxAQAB0EnlsJECBAgAABAgQIECBAgAABAgQIEOhugfHd3b2R6911112Xrr/++rY6MGHChPSBD3ygZdmXX345XXrppemKK65IDzzwQHrhhRfSjBkz0syZM9OsWbPS9OnTW95bvjBU9ZTrdEyAAAECBAgQIECAAAECBAgQIEBgLAsIgLZ4u5dffnm68sorW1xtzF555ZVbBkCfeOKJNHfu3HTvvfc23HTTTTel+LngggvSMccck3bfffeG69WToaqnWq9zAgQIECBAgAABAgQIECBAgAABAmNZQAC0xdudN29eiyvtZy9YsCAdeeSR9eDntGnT0o477pjWXHPNdNttt6VrrrkmLVq0KJ1wwgkpys6ZM6dp5UNVT9PKZRIgQIAAAQIECBAgQIAAAQIECBAYwwICoE1e7sKFC9ODDz6YX9luu+3Sscce26TUX7OWWab5Uqrnn39+mj9/fl5w9uzZ6bjjjkvLLbdcfr7XXnul22+/PR111FF58POss85KO+20U5o8efJfK/7L0VDV06NiGQQIECBAgAABAgQIECBAgAABAgTGuIAAaJMXHEHLWq2WX9lss83SGmus0aRU71nPPfdcuvjii/NCa621VkPws7hziy22yPOPPvroFOt7RvmDDz64uJx/DlU9DZU6IUCAAAECBAgQIECgh8Dyyy+fdt111x75kRHLXkkECBAgQIDA6BQQAG3y3srT3zfddNMmJfrOuuqqq1KMJI20995710d+Vu+MKfHrr79+vjlSBEDf+c53pvHj//pahqqearvOCRAgQIAAAQIECBBoFFh11VXTF7/4xcZMZwQIECBAgMCoF2g+d3vUP9bgHmAoAqB33HFHvRM77LBD/bjZQUyzj/TUU0+lW265paHIUNXTUKkTAgQIECBAgAABAgQIECBAgAABAkuJgABokxddBEAnTZqU1l577bxETIl/9NFH0x//+Mcmd/TM+u1vf5tnjhs3Lm200UY9C5RyYnOkIt1zzz3FYf45VPU0VOqEAAECBAgQIECAAAECBAgQIECAwFIi8Ne51kvJA/f1mLEWZxGEjOnvv/nNb9LXvva1fMOiF198Mb891vSMtUEPO+ywNGXKlKZVPvTQQ3l+7PhentLerHARZI1r999/f0ORoaqnoVInBAgQIECAAAECBAgQIECAAAECBJYSAQHQyouOAOSiRYvy3Nil/X3ve1+lREqPP/54/nPDDTekww8/PM2ZM6ehTKz9uWTJkjxvtdVWa7jW7CRGmhYpNj0q0lDVU9TX7PNf/uVf0o033tjsUp738MMPp1e+8pX56NciANyysAsECBAgQIAAAQIECBAgQIAAAQIEukxAALTyQorp75EdAcgJEyakrbbaKm299dZp9dVXT/fee2+6+uqrUwQGIyB45plnplVWWSXttttu9ZoWLFhQP15hhRXqx60OymXKQcahqqdVu5H/2GOPpfvuu6+3Iil2w4yp/BIBAgQIECBAgAABAgQIECBAgACB0SYgAFp5Y+UA6OTJk9MZZ5yRpk6d2lDqXe96VzrrrLPST37ykzz/85//fIqNjIrRni+88EK9fAQP+0rlMi+99FK9+FDVU6/QAQECBAgQIECAAAECBAgQIEBgCAUuv/zydP3117esMZYGfP/739/yugsEOiEgAFpR3muvvdLmm2+eHnnkkbTLLrukddddt1Ii5aNC586dm373u9+lCJjGxkjf/e5303vf+968bHnNz1hTtK+0ePHiepFyMHSo6qlX7oAAAQIECBAgQIAAAQIECBAgMIQCEQA9/fTTW9Y4ffp0AdCWOi50SkAAtCL9ile8IsVPX2nZZZdNBx98cDrmmGPyouWRoyuuuGL99mI90XpGk4NymZVXXrleYqjqqVfY5ODss8+ur1fa5HLaf//900UXXZRqtVqzy/IIECBAgAABAgQIECBAgAABAgQIdLWAAOggXs+0adPqdxc7x0fGSiutVM8vr+NZz6wclKe6lwOgQ1VPpbmG0/Io04YLfzlZZpllBD+bwcgjQIAAAQIECBAgQIAAAQIE0kEHHZS23377XOLYY49Nd999d3583nnnpYkTJ6ZVV12VEoERFxAAHcQriHUsihTT4IsUmxqtscYa6amnnsp3iy/yW33GRkRFio2WijRU9RT1+SRAgAABAgQIECBAgAABAgQIDKXAlltumeIn0uc+97l6AHTOnDn1vVKGsj11ERiIwDIDuWks3xMjNh988ME0f/78Ph/z8ccfr5dZf/3168dxUGycFKM7n3nmmYZr1ZNor0gzZswoDvPPoaqnoVInBAgQIECAAAECBAgQIECAAAECBJYSAQHQ0ouOYOWee+6Z3vGOd6RDDz00lXdkLxWrH95333314w022KB+HAebbbZZ/fzXv/51/bjZwe23317PLt8XmeXzwdRTb8ABAQIECBAgQIAAAQIECBAgQIAAgaVIQAC09LJjzc0i4BgbE914442lqz0Pv/Wtb9UzX/e619WP4yB2kC/SZZddVhz2+Izp77feemuev+mmm6byFPjIHKp6ejQsgwABAgQIECBAgAABAgQIECBAgMBSICAAWnnJ5UDm5z//+fT8889XSvzf6fe///1022235Scbb7xx2m233RrKRV4ENCNde+21qVkQNEaYnnLKKenll1/Oyx144IH5Z/l/hqqecp2OCRAgQIAAAQIECBAgQIAAAQIECCwtAgKglTe93377pZkzZ+a5scbne97znnTdddelmB6/ePHiNG/evHTiiSemCI5GWn755dMHP/jBNG7cuPy8/D9HHHFE/TTuueCCC9LDDz+c1xPT3ufOnZtuvvnmvEyMPN15553r5csHQ1VPuU7HBAgQIECAAAECBAgQIECAAAECBJYGgXG1LC0ND9qfZ3ziiSfyoGZ5c6K4f/z48XnwsqhrrbXWyoOh06dPL7J6fF555ZXp5JNPTi+++GL92rLLLlsf9RmZU6ZMSeecc06aNGlSvUz1YKjqqdbb1/k+++yTfvjDH9aLRcB22223rZ87IECAAAECBAgQIECAAAECBAiEwKxZs9INN9yQYzz99NN2gfe16BoBI0CbvIo111wzXXjhhenwww9PK6+8cr1EjACNFIHK2bNnp/POOy/1FvyMsrvuums699xz8+nwyyzzf9zFlPcIqO6777759d6Cn0NZT9QlESBAgAABAgQIECBAgAABAgQIEFhaBIwA7eNNL1myJD366KPp/vvvT7Ex0iabbJLWWWedPu5qfjlGgcYU+tj4aL311kuxc/zEiRObF+4ld6jq6aWJ+iUjQOsUDggQIECAAAECBAgQIECAAIFeBIwA7QXHpREVGD+irY+CxmPUZgQr42ewacKECfn6osUaowOtb6jqGWj77iNAgAABAgQIECBAgAABAgQIECAwWgRMgR8tb0o/CRAgQIAAAQIECBAgQIAAAQIECBDot4AAaL/J3ECAAAECBAgQIECAAAECBAgQIECAwGgREAAdLW9KPwkQIECAAAECBAgQIECAAAECBAgQ6LeAAGi/ydxAgAABAgQIECBAgAABAgQIECBAgMBoEbAJ0mh5U/pJgAABAgQIECBAgMCwCixatCjddNNNTdvYeuut00orrdT0mkwCBAgQIECguwUEQLv7/egdAQIECBAgQIAAAQIdEnjuuefSwQcf3LS1Sy65JE2bNq3pNZkECBAgQIBAdwuYAt/d70fvCBAgQIAAAQIECBAgQIAAAQIECBAYhIAA6CDw3EqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/vROwIECBAgQIAAAQIECBAgQIAAAQIEBiEgADoIPLcSIECAAAECBAgQIECAAAECBAgQINDdAgKg3f1+9I4AAQIECBAgQIAAAQIECBAgQIAAgUEICIAOAs+tBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H70jQIAAAQIECBAgQIAAAQIECBAgQGAQAgKgg8BzKwECBAgQIECAAAECBAgQIECAAAEC3S0gANrd70fvCBAgQIAAAQIECBAgQIAAAQIECBAYhIAA6CDw3EqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/vROwIECBAgQIAAAQIECBAgQIAAAQIEBiEgADoIPLcSIECAAAECBAgQIECAAAECBAgQINDdAgKg3f1+9I4AAQIECBAgQIAAAQIECBAgQIAAgUEICIAOAs+tBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H70jQIAAAQIECBAgQIAAAQIECBAgQGAQAgKgg8BzKwECBAgQIECAAAECBAgQIECAAAEC3S0gANrd70fvCBAgQIAAAQIECBAgQIAAAQIECBAYhIAA6CDw3EqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/vROwIECBAgQIAAAQIECBAgQIAAAQIEBiEgADoIPLcSIECAAAECBAgQIECAAAECBAgQINDdAgKg3f1+9I4AAQIECBAgQIAAAQIECBAgQIAAgUEICIAOAs+tBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H70jQIAAAQIECBAgQIAAAQIECBAgQGAQAuMHca9bCRAgQIAAAQIECBAgMGYExo8fn7bZZpumzzNhwoSm+TIJECBAgACB7hcQAO3+d6SHBAgQIECAAAECBAh0QGDSpEnp29/+dgda0gQBAgQIECDQSQFT4DuprS0CBAgQIECAAAECBAgQIECAAAECBDoqIADaUW6NESBAgAABAgQIECBAgAABAgQIECDQSQEB0E5qa4sAAQIECBAgQIAAAQIECBAgQIAAgY4KCIB2lFtjBAgQIECAAAECBAgQIECAAAECBAh0UkAAtJPa2iJAgAABAgQIECBAgAABAgQIECBAoKMCAqAd5dYYAQIECBAgQIAAAQIECBAgQIAAAQKdFBAA7aS2tggQIECAAAECBAgQIECAAAECBAgQ6KiAAGhHuTVGgAABAgQIECBAgAABAgQIECBAgEAnBQRAO6mtLQIECBAgQIAAAQIECBAgQIAAAQIEOiogANpRbo0RIECAAAECBAgQIECAAAECBAgQINBJAQHQTmpriwABAgQIECBAgAABAgQIECBAgACBjgoIgHaUW2MECBAgQIAAAQIECBAgQIAAAQIECHRSQAC0k9raIkCAAAECBAgQIECAAAECBAgQIECgowICoB3l1hgBAgQIECBAgAABAgQIECBAgAABAp0UEADtpLa2CBAgQIAAAQIECBAgQIAAAQIECBDoqIAAaEe5NUaAAAECBAgQIECAAAECBAgQIECAQCcFBEA7qa0tAgQIECBAgAABAgQIECBAgAABAgQ6KiAA2lFujREgQIAAAQIECBAgQIAAAQIECBAg0EkBAdBOamuLAAECBAgQIECAAAECBAgQIECAAIGOCgiAdpRbYwQIECBAgAABAgQIECBAgAABAgQIdFJAALST2toiQIAAAQIECBAgQIAAAQIECBAgQKCjAgKgHeXWGAECBAgQIECAAAECBAgQIECAAAECnRQQAO2ktrYIECBAgAABAgQIECBAgAABAgQIEOiowPiOtqYxAgQIECBAgAABAgQIdKnA4sWL01133dW0dxtttFFaYYUVml6TSYAAAQIECHS3gABod78fvSNAgAABAgQIECBAoEMCzz77bHrb297WtLVLLrkkTZs2rek1mQQIECBAgEB3C5gC393vR+8IECBAgAABAgQIECBAgAABAgQIEBiEgADoIPDcSoAAAQIECBAgQIAAAQIECBAgQIBAdwsIgHb3+9E7AgQIECBAgAABAgQIECBAgAABAgQGISAAOgg8txIgQIAAAQIECBAgQIAAAQIECBAg0N0CAqDd/X70jgABAgQIECBAgAABAgQIECBAgACBQQgIgA4Cz60ECBAgQIAAAQIECBAgQIAAAQIECHS3gABod78fvSNAgAABAgQIECBAgAABAgQIECBAYBACAqCDwHMrAQIECBAgQIAAAQIECBAgQIAAAQLdLSAA2t3vR+8IECBAgAABAgQIECBAgAABAgQIEBiEgADoIPDcSoAAAQIECBAgQIAAAQIECBAgQIBAdwsIgHb3+9E7AgQIECBAgAABAgQIECBAgAABAgQGISAAOgg8txK3l4o5AABAAElEQVQgQIAAAQIECBAgQIAAAQIECBAg0N0CAqDd/X70jgABAgQIECBAgAABAgQIECBAgACBQQgIgA4Cz60ECBAgQIAAAQIECBAgQIAAAQIECHS3gABod78fvSNAgAABAgQIECBAgAABAgQIECBAYBACAqCDwHMrAQIECBAgQIAAAQIECBAgQIAAAQLdLSAA2t3vR+8IECBAgAABAgQIECBAgAABAgQIEBiEgADoIPDcSoAAAQIECBAgQIAAAQIECBAgQIBAdwsIgHb3+9E7AgQIECBAgAABAgQIECBAgAABAgQGISAAOgg8txIgQIAAAQIECBAgQIAAAQIECBAg0N0CAqDd/X70jgABAgQIECBAgAABAgQIECBAgACBQQgIgA4Cz60ECBAgQIAAAQIECBAgQIAAAQIECHS3gABod78fvSNAgAABAgQIECBAgAABAgQIECBAYBAC4wdxr1sJECBAgAABAgQIECAwZgSWWWaZNHXq1KbPs9xyyzXNl0mAAAECBAh0v4AAaPe/Iz0kQIAAAQIECBAgQKADAquvvnr6z//8zw60pAkCBAgQIECgkwKmwHdSW1sECBAgQIAAAQIECBAgQIAAAQIECHRUQAC0o9waI0CAAAECBAgQIECAAAECBAgQIECgkwICoJ3U1hYBAgQIECBAgAABAgQIECBAgAABAh0VEADtKLfGCBAgQIAAAQIECBAgQIAAAQIECBDopIBNkPqpvWDBgvT+978/Pf300+n1r399OvLII/us4eWXX06XXnppuuKKK9IDDzyQXnjhhTRjxow0c+bMNGvWrDR9+vQ+64gCQ1VPW40pRIAAAQIECBAgQIAAAQIECBAgQGAMCAiA9vMlnnnmmWn+/Pn5XX/605/6vPuJJ55Ic+fOTffee29D2ZtuuinFzwUXXJCOOeaYtPvuuzdcr54MVT3Vep0TIECAAAECBAgQIECAAAECBAgQGMsCAqD9eLtXXnlluuyyy9q+I0aLxgjRIvg5bdq0tOOOO6Y111wz3Xbbbemaa65JixYtSieccEKKsnPmzGla91DV07RymQQIECBAgAABAgQIECBAgAABAgTGsIAAaJsv9/HHH0+nnXZam6X/r9j5559fHy06e/bsdNxxx6Xlllsuv7jXXnul22+/PR111FF58POss85KO+20U5o8eXKPNoaqnh4VyyBAgAABAgQIECBAgAABAgQIECAwxgVsgtTGC67Vaumkk05Kzz//fFpxxRXbuCOl5557Ll188cV52bXWWqsh+FlUsMUWW+T5cR7rexbli+vxOVT1lOt0TIAAAQIECBAgQIAAAQIECBAgQGBpERAAbeNN/8d//Ef6n//5nzRu3Lj0gQ98oH5HnLdKV111VVq4cGF+ee+9966P/KyWjynx66+/fp4dAdDFixc3FBmqehoqdUKAAAECBAgQIECAAAECBAgQIEBgKREQAO3jRd99993pS1/6Ul7qgAMOSFtuuWUfd/zf5TvuuKNebocddqgfNzvYbrvt8uynnnoq3XLLLQ1FhqqehkqdECBAgAABAgQIECBAgAABAgQIEFhKBARAe3nRsUHR8ccfn/785z+n2MDo3e9+dy+lGy/99re/zTNilOhGG23UeLFyFnUX6Z577ikO88+hqqehUicECBAgQIAAAQIECBAgQIAAAQIElhIBmyD18qLPOeecfAf32LiovIFRL7fULz300EP5cez4Pn5878xrr712/b7777+/fhwHQ1VPQ6Wlk1hj9KWXXirlNB5G8HfZZZfN1yhtvOKMAAECBAgQIECAAAECBAgQIECAQPcL9B6Z6/7+D1sPb7rppvS9730vr//QQw9NG264YdttxdqfS5Ysycuvttpqfd43adKkepkISBZpqOop6mv2eeSRR6arr7662aV6XoxgfeCBB+prmtYvOCBAgAABAgQIECBAgAABAgQIECDQ5QKmwDd5QRGEPPHEE/MrW2+9ddp///2blGqdtWDBgvrFFVZYoX7c6qBc5sUXX6wXG6p66hU6IECAAAECBAgQIECAAAECBAgQILCUCRgB2uSFf+Yzn0mxIdHKK6+cPvGJT+S7vzcp1jLrhRdeqF9bfvnl68etDsplytPRh6qeVu3KJ0CAAAECBAgQIECAAAECBIZXIDZX/v3vf9+ykQkTJqQ3vOENLa+7QIDA4AUEQCuGP/vZz9Ivf/nLPPfDH/5wKq/PWSna8rS85ufLL7/cslxxYfHixcVhKgdDh6qeeuVNDqZOnZqefvrpJlf+L2vevHn59WJKf8uCLhAgQIAAAQIECBAgQIAAAQI9BL7zne/k+4r0uPCXjHXWWSc98sgjrS7LJ0BgCAQEQEuIDz/8cPrc5z6X5+yyyy5pjz32KF1t/3DFFVesF46d5PtK5TIx6rRIQ1VPUV+zz6OPPrpZdj1vn332Sb/+9a/r5w4IECBAgAABAgQIECBAgAABAgQIjCYBAdC/vK0YqfnpT3863+hn1VVXTYcddlh6/vnne7zL8rqcsUN6USZ2Sl9ppZXy8sVnnJTL96jsLxnlqe7lAOhQ1dOqXfkECBAgQIAAAQIECBAgQIDA8Aq85jWvSXPnzs0b+cEPfpDuu+++/Pjd7353ik2RIwYhESAwvAICoH/x/eMf/5juuOOO/Cw2QXr729/ep/w111yT4ifSVlttlb7whS/kx7Gp0RprrJGvI/r444/neb39z2OPPVa/vPrqq9ePh6qeeoUOCBAgQIAAAQIECBAgQIAAgY4K/N3f/V2Kn0h33nlnPQD68Y9/PG244YYd7YvGCCytAnaBH6Y3H2trRorRnc8880yvrTz44IP16zNmzKgfx8FQ1dNQqRMCBAgQIECAAAECBAgQIECAAAECS4mAEaB/edGx69o73/nOPl97jBS96KKL8nKvfOUr00477ZQfr7feeg33brbZZunmm2/O82INzVhTtFW6/fbb65fivnIaqnrKdTomQIAAAQIECBAgQIAAAQIECBAgsLQICID+5U3Hepvvec97+nzv999/fz0AutFGG7W8JwKeF154YV7fZZdd1jIAGtPfb7311rzcpptumspT4CNzqOrJG/A/BAgQIECAAAECBAgQIECAAAECBJYyAVPgh+mFb7zxxikCmpGuvfbaFEHQanrppZfSKaeckmIDpkgHHnhgtUgaqnp6VCyDAAECBAgQIECAAIEGgSVLlqRHHnmk6c/ixYsbyjohQIAAAQIERo+AEaDD+K6OOOKIfDf5aOLEE09Mjz76aNptt93SWmutlS98/KUvfSnF9PhIMdV95513zo+r/zNU9VTrdU6AAAECBAgQIECAwF8Fnn766ZYzty655JI0bdq0vxZ2RIAAAQIECIwaAQHQYXxVm2++efrUpz6VTj755PTiiy+m8847L/9Zdtll66M+o/kpU6akU089NS2zTPMBuUNVzzA+qqoJECBAgAABAgQIECBAgAABAgQIdKVA84hbV3Z1dHZq1113Teeee24+Hb4IcBZT3sePH5/23Xff/PqkSZN6fcChqqfXRlwkQIAAAQIECBAgQIAAAQIECBAgMMYEjADt5wvdYIMN0n/913/1664NN9wwH/kZo0DnzZuXYuOj2DU+6po4cWLbdQ1VPW03qCABAgQIECBAgAABAgQIECBAgACBUS4gANrBFzhhwoQ0c+bM/GcwzQ5VPYPpg3sJECBAgAABAgQIECBAgAABAgQIjAYBU+BHw1vSRwIECBAgQIAAAQIECBAgQIAAAQIEBiQgADogNjcRIECAAAECBAgQIECAAAECBAgQIDAaBARAR8Nb0kcCBAgQIECAAAECBAgQIECAAAECBAYkIAA6IDY3ESBAgAABAgQIECBAgAABAgQIECAwGgQEQEfDW9JHAgQIECBAgAABAgQIECBAgAABAgQGJCAAOiA2NxEgQIAAAQIECBAgQIAAAQIECBAgMBoEBEBHw1vSRwIECBAgQIAAAQIECBAgQIAAAQIEBiQgADogNjcRIECAAAECBAgQIECAAAECBAgQIDAaBARAR8Nb0kcCBAgQIECAAAECBAgQIECAAAECBAYkIAA6IDY3ESBAgAABAgQIECBAgAABAgQIECAwGgQEQEfDW9JHAgQIECBAgAABAgQIECBAgAABAgQGJCAAOiA2NxEgQIAAAQIECBAgQIAAAQIECBAgMBoEBEBHw1vSRwIECBAgQIAAAQIECBAgQIAAAQIEBiQgADogNjcRIECAAAECBAgQIECAAAECBAgQIDAaBARAR8Nb0kcCBAgQIECAAAECBAgQIECAAAECBAYkIAA6IDY3ESBAgAABAgQIECBAgAABAgQIECAwGgQEQEfDW9JHAgQIECBAgAABAgQIECBAgAABAgQGJCAAOiA2NxEgQIAAAQIECBAgQIAAAQIECBAgMBoEBEBHw1vSRwIECBAgQIAAAQIECBAgQIAAAQIEBiQwfkB3uYkAAQIECBAgQIAAAQJjTGCZZZZJkyZNavpUcU0iQIAAAQIERqeAAOjofG96TYAAAQIECBAgQIDAEAusvvrq6cYbbxziWlVHgAABAgQIjLSAX2OO9BvQPgECBAgQIECAAAECBAgQIECAAAECwyYgADpstComQIAAAQIECBAgQIAAAQIECBAgQGCkBQRAR/oNaJ8AAQIECBAgQIAAAQIECBAgQIAAgWETEAAdNloVEyBAgAABAgQIECBAgAABAgQIECAw0gICoCP9BrRPgAABAgQIECBAgAABAgQIECBAgMCwCQiADhutigkQIECAAAECBAgQIECAAAECBAgQGGkBAdCRfgPaJ0CAAAECBAgQIECAAAECBAgQIEBg2AQEQIeNVsUECBAgQIAAAQIECBAgQIAAAQIECIy0gADoSL8B7RMgQIAAAQIECBAgQIAAAQIECBAgMGwCAqDDRqtiAgQIECBAgAABAgQIECBAgAABAgRGWkAAdKTfgPYJECBAgAABAgQIECBAgAABAgQIEBg2AQHQYaNVMQECBAgQIECAAAECBAgQIECAAAECIy0gADrSb0D7BAgQIECAAAECBAgQIECAAAECBAgMm4AA6LDRqpgAAQIECBAgQIAAAQIECBAgQIAAgZEWEAAd6TegfQIECBAgQIAAAQIECBAgQIAAAQIEhk1AAHTYaFVMgAABAgQIECBAgAABAgQIECBAgMBICwiAjvQb0D4BAgQIECBAgAABAgQIECBAgAABAsMmIAA6bLQqJkCAAAECBAgQIECAAAECBAgQIEBgpAUEQEf6DWifAAECBAgQIECAAAECBAgQIECAAIFhExAAHTZaFRMgQIAAAQIECBAgQIAAAQIECBAgMNICAqAj/Qa0T4AAAQIECBAgQIAAAQIECBAgQIDAsAkIgA4brYoJECBAgAABAgQIECBAgAABAgQIEBhpAQHQkX4D2idAgAABAgQIECBAgAABAgQIECBAYNgExg9bzSomQIAAAQIECBAgQIDAKBNYuHBh0x5PmDAhjRs3ruk1mQQIECBAgEB3CwiAdvf70TsCBAgQIECAAAECBDok8OSTT6Ydd9yxaWuXXHJJmjZtWtNrMgkQIECAAIHuFjAFvrvfj94RIECAAAECBAgQIECAAAECBAgQIDAIAQHQQeC5lQABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAgMQkAAdBB4biVAgAABAgQIECBAgAABAgQIECBAoLsFBEC7+/3oHQECBAgQIECAAAECBAgQIECAAAECgxAQAB0EnlsJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/ekeAAAECBAgQIECAAAECBAgQIECAwCAEBEAHgedWAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECBAgQIDAIAQHQQeC5lQABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAgMQkAAdBB4biVAgAABAgQIECBAgAABAgQIECBAoLsFBEC7+/3oHQECBAgQIECAAAECBAgQIECAAAECgxAQAB0EnlsJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/ekeAAAECBAgQIECAAAECBAgQIECAwCAEBEAHgedWAgQIECBAgAABAgQIECBAgAABAgS6W0AAtLvfj94RIECAAAECBAgQIECAAAECBAgQIDAIAQHQQeC5lQABAgQIECBAgAABAgQIECBAgACB7hYQAO3u96N3BAgQIECAAAECBAgQIECAAAECBAgMQkAAdBB4biVAgAABAgQIECBAgAABAgQIECBAoLsFBEC7+/3oHQECBAgQIECAAAECBAgQIECAAAECgxAQAB0EnlsJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/ekeAAAECBAgQIECAAAECBAgQIECAwCAEBEAHgedWAgQIECBAgAABAgQIECBAgAABAgS6W2B8d3dP7wgQIECAAAECBAgQINAZgcmTJ6ff//73nWlMKwQIECBAgEDHBIwA7Ri1hggQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxbVHgAABAgQIECBAgAABAgQIECBAgEDHBARAO0atIQIECBAgQIAAAQIECBAgQIAAAQIEOi0gANppce0RIECAAAECBAgQIECAAAECBAgQINAxAQHQjlFriAABAgQIECBAgAABAgQIECBAgACBTgsIgHZaXHsECBAgQIAAAQIECBAgQIAAAQIECHRMQAC0Y9QaIkCAAAECBAgQIECAAAECBAgQIECg0wICoJ0W1x4BAgQIECBAgAABAgQIECBAgAABAh0TEADtGLWGCBAgQIAAAQIECBAgQIAAAQIECBDotIAAaKfFtUeAAAECBAgQIECAAAECBAgQIECAQMcEBEA7Rq0hAgQIECBAgAABAgQIECBAgAABAgQ6LSAA2mlx7REgQIAAAQIECBAgQIAAAQIECBAg0DEBAdCOUWuIAAECBAgQIECAAAECBAgQIECAAIFOCwiAdlpcewQIECBAgAABAgQIECBAgAABAgQIdExgfMdaGoUNPfPMM+mb3/xmuvPOO9P999+fFi1alNZee+306le/Or31rW9NG2ywQVtP9fLLL6dLL700XXHFFemBBx5IL7zwQpoxY0aaOXNmmjVrVpo+fXpH62mrMYUIECBAgAABAgQIECBAgAABAgQIjAEBAdAWL/Hiiy9OZ599dh6sLBe57777UvxcdNFF6YQTTsiDoeXr1eMnnngizZ07N917770Nl2666aYUPxdccEE65phj0u67795wvXoyVPVU63VOgAABAgQIECBAgAABAgQIECBAYCwLCIA2ebvXX399+uxnP1u/suuuu6atttoqLb/88ul///d/009/+tP04osvpo997GPpE5/4RNptt93qZcsHCxYsSEceeWQ9+Dlt2rS04447pjXXXDPddttt6ZprrslHlUYgNcrOmTOnfHv9eKjqqVfogAABAgQIECBAgAABAgQIECBAgMBSIiAAWnnRzz33XDr++OPz3HHjxqWTTz45D1oWxfbcc898+vv73ve+9NJLL6UTTzwxbbHFFvnU+KJM8Xn++een+fPn56ezZ89Oxx13XFpuueXy87322ivdfvvt6aijjsqDn2eddVbaaaed0uTJk4vb659DVU+9QgcECBAgQIAAAQIECBAgQIAAAQIElhIBmyBVXvQvf/nLPCAZ2fvss09D8LMouskmm6SDDjooPy3W9yyu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1ltvXanl/04333zz9KlPfSqdfPLJKQKo5513Xv4T9RSjPqNk7BgWu4cts0zzePRQ1dO0kzIJECBAgAABAgQIECBAgAABAgQIjGGB5hG3MfzA7TzapEmT8kDlBz7wgbTyyivnt9RqtXrwMwKYMVrzG9/4Rtpzzz17rXLXXXdN5557bj4dvghwFsHP8ePHp3333Te/Hm32loaqnt7acI0AAQIECBAgQIAAAQIECBAgQIDAWBMwArTFG43g5H777Zf+/u//Pp+2/oc//CHFmp1Tp05N66+/forr7aYNN9wwD6jGKNB58+al2PhovfXWSxtssEGaOHFiu9Wkoaqn7QYVJECAAAECBAgQIECAAAECBAgQIDDKBdqP4o3yBx1o92PU5ite8Yr8Z6B1FPdNmDAhzZw5M/8p8gbyOVT1DKRt9xAgQIAAAQIECBAgQIAAAQIECBAYTQKmwI+mt6WvBAgQIECAAAECBAgQIECAAAECBAj0S0AAtF9cChMgQIAAAQIECBAgQIAAAQIECBAgMJoEBEBH09vSVwIECBAgQIAAAQIECBAgQIAAAQIE+iUgANovLoUJECBAgAABAgQIECBAgAABAgQIEBhNAgKgo+lt6SsBAgQIECBAgAABAgQIECBAgAABAv0SEADtF5fCBAgQIECAAAECBAgQIECAAAECBAiMJgEB0NH0tvSVAAECBAgQIECAAAECBAgQIECAAIF+CQiA9otLYQIECBAgQIAAAQIECBAgQIAAAQIERpOAAOhoelv6SoAAAQIECBAgQIAAAQIECBAgQIBAvwQEQPvFpTABAgQIECBAgAABAgQIECBAgAABAqNJYPxo6qy+EiBAgAABAgQIECBAYLgE1lhjjXTDDTc0rX7VVVdtmi+TAAECBAgQ6H4BAdDuf0d6SIAAAQIECBAgQIBABwTGjRuXVltttQ60pAkCBAgQIECgkwKmwHdSW1sECBAgQIAAAQIECBAgQIAAAQIECHRUQAC0o9waI0CAAAECBAgQIECAAAECBAgQIECgkwICoJ3U1hYBAgQIECBAgAABAgQIECBAgAABAh0VEADtKLfGCBAgQIAAAQIECBAgQIAAAQIECBDopIAAaCe1tUWAAAECBAgQIECAAAECBAgQIECAQEcFBEA7yq0xAgQIECBAgAABAgQIECBAgAABAgQ6KSAA2kltbREgQIAA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dqwuueQS9enTp1J51Re5aqdqu7xGAAEEEEAAAQQQQACBmMBiL5pw4oknOjlGjx4dnQjhLCQTAQQQKLCAF2rQoYfGgoN+l27RQnruOalHD78awcivUyc2C3Tw4Or9ic8C9cIvJARqJUAA1ME3efJkjRo1KlGy1157RWd8tm7dOjoTdNq0adEgqM3mvPDCC3Xvvfeqc+fOifrxg+XLl0cDpPHg57bbbqt9991Xbdq08d7BeFfWzpo1a3TdddfJ6tqMUlfKVTuutslDAAEEEEAAAQQQQACBmICtuPr444+dHKvtCSMkBBBAIAAC334rHXyw9OGH/p3xwg56/nl5sQz/OkEqOeqoWF/fe696r558Unr7bWm33aqXkYNApgIEQKtIzZs3T7fccks0t169errmmmt0wAEHVKp10kknyd4BftTbkdcCmFbnnnvuUf36lTnHjBmjzz//PHpur169dMUVVySWzA8YMEAzZszQiBEjosFPC7jadSzIWjXlqp2q7fIaAQQQQAABBBBAAAEEEEAAAQTCI+DNw9JBB0mffebfZ2/nvuieoN7Oe6FJNgv06qulgQPdXb7yytQPeXKfRS4CFQI8BKnCInr0wgsvaOXKldHjYcOGVQt+WoEFOs8555zE3p2fed95bJ/Q5LR06VI9aW9TeKlt27aVgp/xejvvvHM0317bu83x+vFy+5yrdpLb5BgBBBBAAAEEEEAAAQQQQAABBMIlYPOr9t8/dfCzUyd5q03lPXckXGOz3nrzxHxnedo+pt5OgiQEaixAALQKnS1Nj6cjjzwyfljts80OPfDAAxP5n376aeLYDqZOnZoIpA703sLwe1iSLYm3hypZsgDounXrosfxf3LVTrw9PiOAAAIIIIAAAggggAACCCCAQLgEbHcOW5z61Vf+/fZ23YsGP7fZxr9O0EtsFqhf4onwfjLkZyJAALSKUsuWLdWtW7doULJdu3ZVSiu/bNWqVSLDHlKUnD744IPEyz333DNx7DrYY489otkLFy709rXwNrZISrlqJ6lJDhFAAAEEEEAAAQQQQAABBBBAICQC3u556tlT8nbs800249Nmfm65pW+VUBT07y/9HCKp1t9Jk6TXXquWTQYCGQkQAK3CdNlll+muu+7Sgw8+qDq2CUWKZEvf42mbKm+xzJw5M1pkbVQti58T/2wPR4qnL774In4Y/Zyrdio1ygsEEEAAAQQQQAABBBBAAAEEEAi8wPTpkvdIEc2f799Ve9DRiy9Km23mXydMJd5jVnwTs0B9aShII0AANA2QX/GKFStkT4uPp65VNtiYO3dutMie+F714Ujxc+Kfk2eafv311/Hs6OdctVOpUV4ggAACCCCAAAIIIIAAAggggECgBV55RerdW1q0yL+bPXrYFnySPfW9VFK/ftJee7lHY2GYV191l5GLQCqByo8tT1WTskoCf//737V48eJoni1x72CPWfs52UOUNmzYEH3VokWLeLbv5+bNmyfK7KFH8ZSrduLtuT7bTNeq+5cm15vnzbG3hzjZWNeuXZtcxDECCCCAAAIIIIAAAggggAACCORB4D//keyxJMuX+ze+336SPRxok03864S1xPYC7dvX3Xt7IvyUKe4ychHwEyAA6ieTIv+ZZ57RQw89FK2x0UYbacSIEZVqL0/6DtWoUaNKZa4XyXVWrVqVqJKrdhINOg5e9ObJ//e//3WUVGRZgPann34iAFpBwhECCCCAAAIIIIAAAggggAACeRGwvS4HDZKSwgPVrmMzQ73nKMsLSZRk6tNH2mcf92zPF16QXnpJ2n//khw6g8qTAEvgs4R9xZuDfvPNNyfOOvfcc5W8hN0KbHl8PDVs2DB+6Ps5uc7q1asT9XLVTqJBDhBAAAEEEEAAAQQQQAABBBBAILACEyZIAwemDn4efrg0cWLpBj/jN4cnwscl+JwLAQKgWSjazE97SNL69eujZ51wwgk63L7zVEnJe37G61apUunlunXrEq+Tg6G5aifROAcIIIAAAggggAACCCCAAAIIIBBIAVtoOmSItGaNf/cGD5YsSNq4sX+dUik5+GDJlvm7ku17mmYxq+s08spYgCXwGd78+++/X2PGjEnUPumkk3TyyScnXicfNGnSJPFyTarvXD/XSq7TtGnTxLm5aifRoOPgnHPO0bBhwxwlsayRI0d6Gwy/quSZqb6VKUAAAQQQQAABBBBAAAEEEEAAgawFvJCDTjtN3vNE/E897jhp7FipXj3/OqVWYk+EP+gg96jsifDern4kBDISIACahslmZ/7xj3+Uzf60VLduXf3+97/XgAEDfM+0fUHjKXkfz3he1c/JS92TA6C5aqfq9ZJf77TTTskvqx2PGjXK23Q5xa7L1c4gAwEEEEAAAQQQQAABBBBAAAEE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AggggAACCCCAQEgFVq2SBg1KH/w891zpgQcIfob0NtNtBEpWgABoyd5aBoYAAggggAACCCCAAAIIIIBA7QWWLJEOOUR68snUbY0cKdneoHXqpK5HKQIIIFBoAZbAF1qc6yGAAAIIIIAAAggggAACCCAQEoF586S+faX33/fvcL160l13Saec4l+HEgQQQKCYAgRAi6nPtRFAAAEEEEAAAQQQQAABBBAIqMCnn0p9+khffunfwcaNpXHjpAED/OtQggACCBRbgABose8A10cAAQQQQAABBBBAAAEEEEAgYALTp0uHHSYtWODfsebNY8vi99/fvw4lCCCAQBAE2AM0CHeBPiCAAAIIIIAAAggggAACCCAQEIHnn5d69Uod/NxsM2naNIngZ0BuGt1AAIGUAgRAU/JQiAACCCCAAAIIIIAAAggggED5CNhy9sMPl5Yt8x/zdttJr74qde/uX4cSBBBAIEgCBECDdDfoCwIIIIAAAggggAACCCCAAAJFErjtNmnYMGntWv8O7LGH9Mor0lZb+dehBAEEEAiaAAHQoN0R+oMAAggggAACCCCAAAIIIIBAgQUuv1w691wpEvG/8MEHS1OnSm3a+NehBAEEEAiiAA9BCuJdoU8IIIAAAggggAACCCCAAAII/Cwwf/58zZw5M6VHz549Vbdu9nOc1q+XfvMb6d57Uzav//s/6R//kBo2TF2PUgQQQCCIAgRAg3hX6BMCCCCAAAIIIIAAAggggAACPwtMmTJFxx13XEqPFStWqEmTJinrVC1ctUo69ljp8cerllR+ffbZ0l//Ki/AWjmfVwgggEBYBPj2FZY7RT8RQAABBBBAAAEEEEAAAQQQyJHAjz9KffqkD35ee61ke4MS/MwRPM0ggEBRBJgBWhR2LooAAggggAACCCCAAAIIIIBAZgLbeY9d/42tU/fSSy+9lFgO379/f22++ebR/Pr1M//z/ttvpb59pRkzoqc6/6lXT/rb36TTTnMWk4kAAgiESiDz75ChGhadRQABBBBAAAEEEEAAAQQQQKA0BHr06CH7sHS2tx49vh/oeeedp969e2c1yFmzYjM/Z8/2P61xY+nBB6WjjvKvQwkCCCAQJgECoCG6W+u93aknTZok2//lm2++ke3x0rVrV3Xv3l177723dthhhxCNhq4igAACCCCAAAIIIIAAAggUUuCtt6R+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jjzySPP444/HSSRkgQAEIAABCEAAAhCAAAQgAAEIQAACEAgxgaVLl5ott9yyZCksnSu1ZEniRmEi0LNnT/PDDz+Y//znP0bGF0SoVauWadSokfdopWft2rXeftQ3ateubRo2bOiJEXf51q9fb7777jtP3qhv1KlTxzRo0MAT4/vvvzfr1q3z9qO+oRa3+vXre2JINskYl1CvXj2z2WabeeLEXT69e3oH4xKkO+nQBX0blIfGJejdS2z1XrNmjdmwYUNcxLN5p/JQF9TrLk7t8vq26xvvQtzlW716tRM1Fr8qe6oM6kLc5GvcuLETzb53mXq9epEitpEon/JN5Z9xCal1o7jLR90oWpZL3Sha+kpNbdzrfjhAUzXOfhKBiy66yO4feOCB5t///nfSuUrtKBNt166d9zgVYL744gtvP+obymQS5dMUAwsWLIi6WF76VYFPlG/58uVm8eLF3vmob8j5mSjfsmXLzJdffhl1sbz0qwLYpk0bb/+rr74y+otLUAWpVatWnjhLliwxGv4Yl9CsWbOkVtNFixaZFStWxEU8s/nmm5sWLVp48mhoapycFJJNOnRB3744VeK32GIL06RJEyee+fzzz2PVgNSyZcukBs5PP/00Vg0QyjsTG8jmzJkTKwe2vn2uAUKOeckXp7D11lt7Dno1jMk+4xLkIEwsm6lxU/lLXIIaVhLli1vdSA2bifLpux6nqSfUeJson8plKp/FJaTWjVSuVvk6LkGNm8o/XYhb3UjlssS6keq1qt/GJTAEPi6aLLMcN954o5k1a1aZn5L+9uqx9NZbb3knmzZtarp37+7tR31DH/V3333XE6N58+ama9eu3n7UN/RRf//99z0xVCHs3Lmztx/1ja+//tp89NFHnhiqMHXo0MHbj/qGCiyJlSIV2LbZZpuoi+Wlf+HChWbu3Lne/nbbbZdUqPFORHRDDrPESsP2229vttpqq4hKUzPZn332WVKDSpcuXZIcojWviNaRjz/+OGn0xU477ZTkEI2WNDVT++GHHyY1OOy6665JIz5qXhGtI++9917SvOl77rlnUo/zaElTM7UzZ85Mcsj36NHDJPborXlFtI5o3ns34kEOtX322SdaAuRIreYzdT2u5ejde++9c1wRndPqETlt2jQvwXLI7L777t5+1Dfk0J0xY4YnhhwWO++8s7cf9Q05dJW/uKDG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Yaken+ecc469nxZQ0iInQQfk868B9OefValixtk+NUWG/hQuvvjigp2ful69R6+77jrTqlUr7ZpXX33V/gb5D/n800d//lmVKqamk1ixYkVZ/uTQDjogX+G6DYP+4vzt07uBfP5zCMqe/lmVKib26Z8k9umfValixtk+41538GsDOED9kiJeWQi8++679r69evUydevWLfoZffv29e7xxRdfeNtBbSBffuTRX368io0dZ/t0BRjlK/vtt1+xqIx6kfbs2dPeJwx5C/Llp1L0lx+vYmMff/zxdjobze3lghzRLVu2LPpP8/YGHZCvcD2GQX9x/vbp3UC+/HIIyp758So2NvaZH0HsMz9excaOs33Gve7gV/fFe5z8Pol4EEhDwPXQcj2r0kTJ61CzZs3s3H5usaS8Li5DZOTLDyr6y49XsbHjbJ9ONtlUgwYNikVlr9fCbAph6MGEfFYVef1Df3nhKiqynJ1akLBz58629/SGDRvse3j33XdbB2hRNw/BxcgXAiUUkQSXf1L29AeRspk/TqWKhX3mRxL7zI9XsbGxz/wIhsk+ne7iWjfyqxl6gPolRbyyEGjXrp29r2uRKPYhuo+cnwpa6CTogHz5aQD95cer2Nhxtk8nm1Z0L9V0GG+99ZZFHqa8Bfn8vwXozz+rUsX8xS9+Yf7whz/Y2y1fvtxcffXVRs7QuATki6Ym3feBsqc//VE288epVLGwz/xIYp/58So2NvaZH8Ew2afTXVzrDn41gwPULynilYVAly5d7H1feOEF4yqnhT5o5cqV5o477rCXN23a1LRt27bQW5XsOuTzjxL9+WdVqphxtk85Kd3w21tvvdVoVc1igiZFf+edd+wtunbtWsytSnIt8uWHEf3lx6uUsQ855BCzzz772FvOmDHDPPLII6W8feD3Qr7AVZB3AuL87RMM5PNvEpQ9/bMqVUzs0z9J7NM/q1LFjLN9xr3u4NcG6lxZFfxGJh4ESk2gY8eO5oknnrDOiZdfftnIcakFkerUqZPXo+bMmWNXkP/oo4/sdccee6zZa6+98rpHOSIjnz+q6M8fp1LHirN9NmnSxCxatMjItjRnp/IGDcdt0aJFXhg13F0Om5EjR9rrmjdvbs477zzTuHHjvO5T6sjI548o+vPHqdyxdtttNzNu3Dj7rf/www/N4YcfburVq1fux1bs/shXMdQl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AAQgAAEIQAACEIAABCAAgVgQwAEaCzUiBAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIJCOAA7QdFQ4BgEIQAACEIAABCAAAQhAAAIQgAAEIAABCMSCAA7QWKgRISAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIF0BHCApqPCMQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCAWBHCAxkKNCAEBCEAAAhCAAAQgAAEIQAACEIAABCAAAQikI4ADNB0VjkEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKxIIADNBZqRAgIQAACEIAABCAAAQhAAAIQ+P/t2DENAAAMwzD+rEsgCCq//eZ9IUCAAAECBEpAAC0VGwECBAgQIECAAAECBAgQIECAAAECFwIC6MUbHUGAAAECBAgQIECAAAECBAgQIECAQAkIoKViI0CAAAECBAgQIECAAAECBAgQIEDgQkAAvXijIwgQIECAAAECBAgQIECAAAECBAgQKAEBtFRsBAgQIECAAAECBAgQIECAAAECBAhcCAigF290BAECBAgQIECAAAECBAgQIECAAAECJSCAloqNAAECBAgQIECAAAECBAgQIECAAIELAQH04o2OIECAAAECBAgQIECAAAECBAgQIECgBATQUrERIECAAAECBAgQIECAAAECBAgQIHAhIIBevNERBAgQIECAAAECBAgQIECAAAECBAiUgABaKjYCBAgQIECAAAECBAgQIECAAAECBC4EBNCLNzqCAAECBAgQIECAAAECBAgQIECAAIESEEBLxUaAAAECBAgQIECAAAECBAgQIECAwIWAAHrxRkcQIECAAAECBAgQIECAAAECBAgQIFACAmip2AgQIECAAAECBAgQIECAAAECBAgQuBAQQC/e6AgCBAgQIECAAAECBAgQIECAAAECBEpAAC0VGwECBAgQIECAAAECBAgQIECAAAECFwIC6MUbHUGAAAECBAgQIECAAAECBAgQIECAQAkIoKViI0CAAAECBAgQIECAAAECBAgQIEDgQkAAvXijIwgQIECAAAECBAgQIECAAAECBAgQKAEBtFRsBAgQIECAAAECBAgQIECAAAECBAhcCAigF290BAECBAgQIECAAAECBAgQIECAAAECJSCAloqNAAECBAgQIECAAAECBAgQIECAAIELAQH04o2OIECAAAECBAgQIECAAAECBAgQIECgBATQUrERIECAAAECBAgQIECAAAECBAgQIHAhIIBevNERBAgQIECAAAECBAgQIECAAAECBAiUgABaKjYCBAgQIECAAAECBAgQIECAAAECBC4EBNCLNzqCAAECBAgQIECAAAECBAgQIECAAIESEEBLxUaAAAECBAgQIECAAAECBAgQIECAwIWAAHrxRkcQIECAAAECBAgQIECAAAECBAgQIFACAmip2AgQIECAAAECBAgQIECAAAECBAgQuBAQQC/e6AgCBAgQIECAAAECBAgQIECAAAECBEpAAC0VGwECBAgQIECAAAECBAgQIECAAAECFwIC6MUbHUGAAAECBAgQIECAAAECBAgQIECAQAkIoKViI0CAAAECBAgQIECAAAECBAgQIEDgQkAAvXijIwgQIECAAAECBAgQIECAAAECBAgQKAEBtFRsBAgQIECAAAECBAgQIECAAAECBAhcCAigF290BAECBAgQIECAAAECBAgQIECAAAECJSCAloqNAAECBAgQIECAAAECBAgQIECAAIELAQH04o2OIECAAAECBAgQIECAAAECBAgQIECgBATQUrERIECAAAECBAgQIECAAAECBAgQIHAhIIBevNERBAgQIECAAAECBAgQIECAAAECBAiUgABaKjYCBAgQIECAAAECBAgQIECAAAECBC4EBNCLNzqCAAECBAgQIECAAAECBAgQIECAAIESEEBLxUaAAAECBAgQIECAAAECBAgQIECAwIWAAHrxRkcQIECAAAECBAgQIECAAAECBAgQIFACAmip2AgQIECAAAECBAgQIECAAAECBAgQuBAQQC/e6AgCBAgQIECAAAECBAgQIECAAAECBEpAAC0VGwECBAgQIECAAAECBAgQIECAAAECFwIC6MUbHUGAAAECBAgQIECAAAECBAgQIECAQAkIoKViI0CAAAECBAgQIECAAAECBAgQIEDgQkAAvXijIwgQIECAAAECBAgQIECAAAECBAgQKAEBtFRsBAgQIECAAAECBAgQIECAAAECBAhcCAigF290BAECBAgQIECAAAECBAgQIECAAAECJSCAloqNAAECBAgQIECAAAECBAgQIECAAIELgQFWc/w1WMONLgAAAABJRU5ErkJggg==" width="672" /></p>
<div class="sourceCode" id="cb23"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb23-1"><a href="#cb23-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_WLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb23-2"><a href="#cb23-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb23-3"><a href="#cb23-3" aria-hidden="true" tabindex="-1"></a>results_sogo_number_WLS <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-general-support-funds総合支援の決定件数-with-covar" class="section level1" number="8">
<h1 number="8"><span class="header-section-number">8</span> Y= general support funds/総合支援の決定件数 with covar</h1>
<div id="ols-no-trends-3" class="section level2" number="8.1">
<h2 number="8.1"><span class="header-section-number">8.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb24"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb24-1"><a href="#cb24-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb24-2"><a href="#cb24-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_OLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb24-3"><a href="#cb24-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb24-4"><a href="#cb24-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb24-5"><a href="#cb24-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb24-6"><a href="#cb24-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3,)</span></span>
<span id="cb24-7"><a href="#cb24-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb24-8"><a href="#cb24-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb24-9"><a href="#cb24-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb24-10"><a href="#cb24-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb24-11"><a href="#cb24-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_OLS&quot;</span>)</span>
<span id="cb24-12"><a href="#cb24-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb24-13"><a href="#cb24-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb24-14"><a href="#cb24-14" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_OLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb24-15"><a href="#cb24-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_OLS&quot;</span>)</span>
<span id="cb24-16"><a href="#cb24-16" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_OLS_covar</span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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AgQIEJiMgAABAgTGj8DMmTPT008/XevwlltumaZNm1Z776A3BGbPnp3OO++8dMUVV6SHHnooPfzww+mRRx5JU6dOTauvvnrtZ5NNNkk777xzmjRp0og7fvPNN6cbb7yx7vp3vetdaYEFFqjL6/SbO++8M82aNStdddVVtXt+7LHH0hJLLJGWW265/GfttdfO7/dNb3pTmjzZ/wXp9DNRPwECBAgQIECAAAEC8wTmq2QJBgECBAiMD4HXvOY1KYJr1fSTn/wk7bffftW3XsdQ4OWXX06nnXZaOuGEE9Ltt9/eck9WW221dMABB6T9998/Lbvssi1fVy143HHHpSOOOKL6Nn994okn8sBjXWaH3vzsZz9LRx11VLr11ltbbiECwfvuu2/60pe+lJZZZpmWr1OQAAECBAgQIECAAAECIxEwBX4kaq4hQIAAAQIFgRj5uN5666WPfOQjwwp+RhX33Xdf+sIXvpBWXXXVdPDBB6eXXnqpUHPvHkYgfuutt0777LPPsIKfcUcRoP3ud7+bXvva1+avvXuXekaAAAECBAgQIECAQD8ICID2w1N0DwQIECAwZgLHHHNM2nXXXdNtt902aB+mTJky6PkXX3wxff3rX0/bb799evTRRwctO9Yn77///rTddtvlU/zb6cvjjz+ePv7xj6cjjzyynWpcS4AAAQIECBAgQIAAgUEFLMA1KI+TBAgQIECgXODvf/97Pm39jDPOGFBgvvnmS29961vzwOhb3vKWtMoqq+RT0p977rl011135T+/+tWv0o9+9KMUecX061//Om266abpF7/4Rdpwww2Lp3ri+Jlnnkk77LBD+vOf/zygP1tttVV697vfnd9v3POKK66YnnrqqXTvvffmP1dffXWKZRsaR7kee+yxaYUVVsiDoQMqlUGAAAECBAgQIECAAIE2BawB2iagywkQINBNAWuAdlN78LY+85nPpG9961sDCr3tbW9LX/nKV9LGG2884Fxjxt/+9rf0ve99L8U6no2B0CWXXDL94Q9/SCuvvHLjZXXvu70G6IknnpgOOeSQuj5EwPbkk09Ob3zjG+vyy97cfffd6Ytf/GL68Y9/XHd6wQUXTHEugqYSAQIECBAgQIAAAQIERlPAFPjR1FQXAQIECEwIgRkzZgwIfsZO7rEBUozsbCX4GVBLLbVUvv7n5Zdfno+ALOLF9PDYGKmX0pw5c/Jp+sU+TZs2Ld/xvpXgZ1wX5WPUbOxUX0zVJQCKeY4JECBAgAABAgQIECAwGgICoKOhqA4CBAgQmDACDz74YPrQhz5Ud78x5f1//ud/BoyMrCs0yJsYQXnttdfmmwIVi11wwQXpBz/4QTFrTI9/85vfpLj/YjrllFNGtHv9f/7nf6bXve51xarS97///RRLC0gECBAgQIAAAQIECBAYTQEB0NHUVBcBAgQI9L3AN77xjfTkk0/W3efhhx+e9tprr7q84b559atfnc4888w0//z1/2mOneEfeOCB4VbXkfJ33HFHXb2TJ09O//RP/1SX1+qbRRZZZEAg+emnn0633357q1UoR4AAAQIECBAgQIAAgZYEbILUEpNCQwlEMODOO+9Ms2fPTn/961/T1KlT0zLLLJOP7lljjTWGurzl8zEyKP4Bfuutt6a//OUveRuxccYb3vCGFP+YHo0Ua/LFvcRGJbET8/LLL59i3cUNNthgNKofUEc37mlAo13MiDUMY12/COBEsCSeV2zssuqqq3axF6PXVGze8n//93/5hi4PP/xwWm655fJ72WijjdJCCy00aEOxeUz12hdeeCEf7bf22mvnn7FBLxzGyWeffTZdc801KXbpfv755/P1FOPz+/rXv34YtQxdNOqPZxu/7xG0WnrppfNnu9lmm6VFF1106ApaLBHGMT38scceq/0ext+WsUrxty5GKRbTuuuum770pS8Vs0Z8HCNBP/GJT6STTjqpVkf4xnqZn/vc52p5Y3XQuPFRrFO68MILj7g7seP9YYcdVnf9LbfcksJUIkCAAAECBAgQIECAwKgJVCQCIxTIgiuVLBBQWWuttSrZB7LpT7beW+WTn/xk5b777htRS1mgqJJtKJK3kwXQStuZMmVKJdtxuZLtmjyiNuKiK664orLrrrtWsqmspW1Mnz69km3+UckCYHkbWUCikm1OUvvJNkNpue1u3VPLHRphwW233bZ2/+FTTXF/2cYslSzwVmoZn5dsjcRKtgN2Ze7cudXLmr5mwbtaO2F+6aWXNi1bdmLNNdesuz4LEJYVy/OK97TOOuvUymXBy0o2yq+SbdBSek9ZUK7y+c9/vpIFyGrXVA+yHbArH/3oRytZYLD02vgdmTVrVrX4oK/hXPx9y3bUzss/9NBDlfe///2V7IuAuvPVstkXEZVjjjmmkgXcB61/sJPZJj2V448/vrL++uuXthFtxe9itglQ5fzzzx+sqrpzWdC09nyyLxpq5+L3/lWvelVdWwsssEB+n3/84x9r5bp58O///u91/Yl7/o//+I9R7UIW8KxkAeW6dsK8Wcp2UK8rG3164oknmhVvKz/+5lc/U9XXLBg+4jrj9/9jH/tYJdtUKf87n033r4zVsx3xTbiQAAECBAgQIECAAIGeF0g930Md7EmBbK26SjYycsA/hKv/IC57zXb4rWSjpIZ1PzNnzqxE8KqsvmZ5W2yxRSUbidpyOxHYisBns/oa8yNwl40OrWQ7N9ddE0GIVlI37qmVfoxGmQgQVn2yUWB5lTfddFMlApbV/KFe43llo24H7U62UUxdfeedd96g5RtPZiMz667/9a9/3Vik9r54T9lI5jw/24ym8qY3vamujmb3lY1urWSjk2v1nXPOOZVslFxL177nPe+pBdhrFTQclAVAI3jaahvZdOVKtoZjQ61Dvz333HMrq6yySkv3UbWJQGjRolkrq622Wq3ebERtXiyCtdV6yl6//e1vN6uuo/nbbbddXb/iMxKB4dFOH/zgB+vaCYNsZGRpM90MgF5yySUD+vWBD3ygtF8yCRAgQIAAAQIECBAg0CsC9QuNZf/CkggMJRDT3N/+9rfnU1+HKls8Hzv8fvGLX2xpk5CYZvyOd7wj7b777vl09GI9Qx3/7//+b9p8881TNqJzqKIppru/5S1vSb/85S+HLFstcMMNN6RslGA+Bbqa18prt+6plb50qkx8NsLm5ptvbrmJeF477bRTfBnT8jXdLPjII4/k9xTTyltJN954Y9pnn33yomeffXb+GY7dvFtJZ5111oDp1UNdFzuOx9qTrbZx5ZVXppiunwWBh6q6dv7kk0/O7yOmvQ8nXXjhhSl2Bs9G9A3nsnTdddflfyuaXZSNMk1ZsLjZ6Y7lx3IVsVFRMW255ZYpG6VazBqV4z322GNAPT/96U8H5HU7Y6uttkpZILyu2Wwkdzr00ENTFgiuy/eGAAECBAgQIECAAAECvSIgANorT2Kc9CP+gRvBqggKVVOsAffZz342XX311flaj7HOYTblNw+wZKOY8nUfq2Xj9etf/3qKIOJgKZsunH7+85/XFYldlvfbb788QBTrKMaakhG4jKBqNkq0rmysF7jLLruk2267rS6/+CYCbrvttlsebCnmL7vssunII49M2SjDfLfjuK9s6nu+zmi1XNzfV7/61erbll67cU8tdaRDhSLAm42kzddqjCbieUVg7mtf+1puGTtkH3DAAfk6jo1diIDXRRdd1Jg95u8jaB8bvERQM1KsdRj3EIHKCLCffvrpKZ5r3GsxxblsCYD0vve9rxbYjXU4synyKYJY2fTwfN3DsnVl/+3f/q3lYGa0GWtDRj8jRWDwU5/6VJoxY0bKpsTna3TGepXbbLNNfr76P7FuZzY6s6UvF6L+qDObqly9PH+NAN0ZZ5yR28QXCXHP8XuSjZStK3fPPfekPffcs+WdveNz9JGPfKSuvWzae12QMT5n2ajguna68Sb+7jQG+eLLlk6kWBuzcW3N+LJgrFOs4/uZz3xmQDdOOOGEPDB64IEH5v8taPy8DLhABgECBAgQIECAAAECBLop0CtDUfVjfAhkI7rqpj9mG9pUsg1uBu18NuKsEtPfs8917eed73xn02tOPfXUWrnqNbEe3mBrJMa6i3vvvfeA67INZppOT431J6v1V19jLcJsk4/Svs2ZM6fy6U9/esA11Wtjym6z1K17atZ+p/KL08WrDvEa08AHW2dz//33H+CYjSpu2s2xmgJfvKeYAp8FDkv7mAXiK9nO3QPuKa6P/IMOOqj0cxjrH2aBxAHXZSMuS9uJzMYp8NU+xtTxq666qvS6l19+uZKN0BvQThagLS1fzYy1GBvXFI12fvazn1WLDHjNApiV7AuRAW1lO6cPKFvNKE6Br95PvMbnK/7mxO9eWGWbk1WOOOKIPK96bTdfTznllAH3dcEFF3SsC/F71OhR1lg3p8BH+/GMsy+Y6vpW7GccZ18kVbJR/JVYqiCWxYjnJxEgQIAAAQIECBAgQGCsBGJ0kkSgZYHYBKb4D91sNGdL18bGKcXrYr3CCMo0ptg8J9sdvK5s/EO61Q2UygIvZZsTPfXUUwPWMI0AV7Q/VMpGOtX1r3pfzQKg3bqnofrdifNlAdAIVmcjcAdtLjbiiU2rqnbxGoHCZmtTjnUANNY0HWqdx7JAZtxXNmJ0UItYg/Z1r3tdnUU24rLpNWUB0DBv5XckNqYqmk+aNKmSjZJu2lY2greufGxClo2CbFq+eCI2sym2tcQSS1SyHd2LRWrHZQHQCLxGwLOXUlmgMYJ7nUo77LBDnWF1TdrG9sr61alNkKptx0ZNsWFY8RkPdhx/8+NLjm9+85tN1zKt1u2VAAECBAgQIECAAAECoy1gCnz2LzapdYFshFld4SzwUve+2ZuYup4FuFK2g3Z685vfnE89j2mzjSmmFGcjMOuyv/CFL6QsKFqX1+zNUUcdlbdRPJ/t2jxg+m22W/yANUxjSns2UrV4aelxTP9snHJfWvAfmd26p8H60M1zX/7yl4ecnhzTaLMdvuu6FVNmh7tWZF0FHXwTn6Gh1nnMdmAf0IMsYJWywPiA/GJGFujLfx+KedkmW8W3Qx7HEhSt/I7E9ORsBGetvuxLiBS/M2UpCz6m+D0ppuwLkJRtAlbManqcjfLN1/+sFshGaads9Gb17ZCvMaU627l+yHLdLFD2NysL7HasC9lGc3V1Z0HNAVPw6wp08c2iiy6asg2RUvYF04Cp+mXdiDVqs4208unz6667bv439LDDDku33357WXF5BAgQIECAAAECBAgQGFUBAdBR5ez/yhqDQLEGYARRhkorr7xyevbZZ/M1NWMTltg0Y5lllhlwWTbNvS4vgjr/8i//Upc32JtYMy/WBC2mCKg2rp2X7cReLJKykVb5Wo91mU3eRPDu6KOPbnJ2YHa37mlgy93PiecVga9WUja9d0DAubi2bCt1dKNMrAkbn4+h0rRp0wYUicB/2ee8seBrX/vauqzhBEAjSPbJT36y7vpmb+L395BDDqk7nU1nLw2qxdqfEZSupgj0RQB0OCm+vCim+DKgWGfxXPF4oYUWytdaLeb1wnGsLdyYIsjdqdQYAI12Ym3XXkmx9m2sDxvrvMZav7HObaspPuNxTbZMSfrEJz6RIrgrESBAgAABAgQIECBAoFMCAqCdku3Tetdbb726O4sRQDGi85ZbbqnLL3sTQY3BUgRSL7/88roi8Q/jVkZlFi/68Ic/nBqDEsV6Y8OY2Dm7mD70oQ8V3w55HDtQx+ZPQ6Vu3dNQ/ejW+QjkxUjfVlIEkhs3ssnWemzl0q6WadzUp1njK6200oBT2XT1AXllGYsttlhddrZEQ937wd5EwLlxs5zByscGQ8UUAcnZs2cXs/Lj+KKimGI399iMaDip0S5+9xpHeJfVFyOsGzeWKivX7bzYBb4xDfV3rbH8cN6Xfbk03L+Hw2lvpGXjS4IYhfynP/0p/e53v0vZkidpu+22a+lvd3z+vvOd76T425GtpzrSLriOAAECBAgQIECAAAECgwq0FqkYtAonJ5JABE8aAxPXXnttytZIzH/iH8EXX3xxbVfq4djE9OeYJltM2dqIxbctHUdgrXGKeuwyXk0x5TJ2qi+mstF7xfONx2HQyjXduqfG/o3V+1e/+tXDarox8NeLAdAYodZKKgtCtjqFu3FkdSvtVcs0jh6t5jd7jS8HGoP3jdOQI/BW/J2JurbYYotmVTbNjyUysvU9687fcccdde/L3rQaOC67tpN5MZK9McXU7k6lxrrjy4Vs47lONdd2vfF3MUZ2Zxtu5dPjY8mAbBOrfORwBMPjb3OzFKO/99xzz3TZZZc1KyKfAAECBAgQIECAAAECIxZo/q+REVfpwn4WiCmOMa0120xlwG3GKND4ifUSY13DGAG000475T+rr776gPKNGWXTn1u5rrGeeB/ByWyzltqpbPOV2vFf/vKX2nH1YCTtRBs33HBDtYrS127dU2njY5A53ADolClT6nqZLXJc974X3rSzxmNj8K/Z/TR+qdCsXFl+K4H4xutiqYJicK0xABpTvWPJimL6j//4j/Tf//3fxayWjht/ByIAmm2ANei1w5lKPWhFo3xylVVWGVBjBPnKpqoPKDiCjOIzisujncGCiCNooqOXxJcC22+/ff4TDWUbJ+WB0XPOOSf9v//3//L3xQ5kG8bl6+FmG0u19AVT8VrHBAgQIECAAAECBAgQGExAAHQwHedKBWJTl+effz5lu/k2Xc8vgiex4UX8RNpkk01SrIf43ve+N8V0ybJUtr7eSAKTUXdjUKi4eUnjGnoRrG3Wp7J+VvNa6Vu37qnap7F+LZsGPtZ9arf9xRdffMRVDHfK+EgaauVz2FhvBEAjyFRNjQHQxsBblHvwwQfzn+o1I30dzyNAw60xxZT+VkcJN1471PvG51IWgB2qjl46HyO+99hjj/wnvij7+te/nmKzq+LI7xidH2uDnnLKKb3UdX0hQIAAAQIECBAgQGCcC5gCP84f4Fh0P0arnXjiienqq69Oe+21V2ocxVfWpxiNedBBB+XT5IvrcRbLNm6CEdOCRzr6rrjTdbRR/Ad2jEIqppGuqddK37p1T8X7GcvjSZMmjWXzHWm7nenpHelQQ6UjCd43jlhs/J1o/Nw2NNnW29gwZ6jUuDbsUOW7db4s2HzVVVd1pPkIQt922211dY/3AGjxZuIZH3vssen8889PsaN8McUmeWVfHhXLOCZAgAABAgQIECBAgMBwBIwAHY6WsnUCsSnKz3/+8/wfqjGdMTawuPTSS9NgG7jEVPSY/hoB1Ng9uJga/xEco0xjNFBjfvGaZseNozyLO3E3BjFidGiMWI2RoMNJrWzm0tj3Tt3TcPo9EcuWbSbTLw4RrBzuupDFJSHCoXHN3LKg6u67757aGQ1b9Y7R4OM1xfqWEYS8//77a7dwxRVX1I5H8+Caa65JjUtCvO1tbxvNJoZdV3zWYgmR+PzET3xuNtpoo2HXU7wglko58sgj02GHHVbLjqnwv//97/NlVGqZDggQIECAAAECBAgQINCGgABoG3gunScQG5187GMfy39eeumlFP9wj13WIyAaOwI3/iM+ynz6059OK664YnrnO99ZY2zcmCVOxGix2GBpuKlxlFlxRGjZpjERzFxrrbWG1cx99903ZPlu3dOQHemzAvEZajVFMKVs9+5Wr+/1crHG5nADoPfee2/dbTUGQGMt1xjZXRw5fcABB6Qdd9yx7rqJ9iZGv7/nPe/Jp21X7z1GgN51112p1Q2vqtcN9frDH/6wrkg8j3322acur9tvdtttt3TllVfWmo1lTX7yk5/U3o/0IP77UQyARj133nmnAOhIQV1HgAABAgQIECBAgMAAAVPgB5DIaEcgNujYaqut8k2SYtp7jMT81re+lcp2dY414IqpGKSs5jcGaqr5Q702Xlcc0RYjQBs3EmllNGdjm60EQLt1T4196/f3xcDcUPfayencQ7XdjfOPPvrosJtp/P1o/P2MpQwag6JDbfg17E6M0wsi6FdMMbo41rIczRRf4MycObOuythQbqyXBmhc6/S6666r6+NI38RyIsVR+lFPcd3mkdbrOgIECBAgQIAAAQIECFQFBECrEl6HLdBKECrWGoyp7hE82XTTTevaiLzi1OQY6Rm7BhfT7Nmzi29bOp47d266++6768oWd+OOjWkap8EXd4yvu7DJmwiqNbZRVrRb91TWdj/lNa4z++KLL7Z8e2XB7cZRyS1X1oMFG9eJHKqLMWK0cZmKxgBo1NE4UjpGc0spbbDBBmndddeto/jP//zPdPPNN9fltfPms5/9bN3fxqgrNpAb69QYAI2/zzHiv90UI7Qbv6hoDMC324brCRAgQIAAAQIECBCY2AICoBP7+Q/r7mO0z7/8y7+kbbfdNp++3hjQHKyy2P33kEMOqSsS05iLa3XGqMzNN9+8rsz3v//9AYGAugIlb84888wBo4fe/va315WMdeeKKXa0f+6554pZgx7HGqYxtXqo1M17Gqov4/n8QgstVNf9WIew1dRs061Wr+/1cj/96U+H1cXG3bVjE7Cy3c0bA6C//vWv05NPPjmstmKdyBi1GHVtv/326SMf+UjdFOphVdZDhRtHfMbfgpieHmsJt5t+8IMfpFhTuZgi8Nj4N6x4vlvH22yzzYCmjjnmmAF5w82ItaMbl7Vo/PwNt07lCRAgQIAAAQIECBAgUBQQAC1qOB5UINa/+973vpciEBIBqD/84Q+pca3NwSqYOnVq3en5559/wLTHPffcs65MjG778Y9/XJc32JsYSXTUUUfVFYngTmNg9fDDD0/F3d//+te/5vdWd2GTNzHlOKb1t5q6dU+t9mc8lmtcSiA+e62kGOn5P//zP60UHbdlYg3KVpZjiBuMUXbf+MY36u71ox/9aIrfxcYU6z0WU3zujzjiiGLWkMexzEXsZn7HHXekiy++OMVIyeGuVzpkI2NQIDYjCrdiir9V8bv+9NNPF7OHdTxjxowBm8PF6Of4Uqf492pYlY5i4dgEKgLZxRRrPccmRiNNMZo7/h4XUwQ/R7L2c7EOxwQIECBAgAABAgQIECgKDPxXb/GsYwIFgc0222zA1PFjjz22UGLwwwsvvLCuQExDbxzZ96EPfSg1bhwUAc3GKbt1FRXefPe73803JClk5SOzInhbTDElvjGAcdxxxw05Oi36EX0cTpCjW/dUvL9+O26cehtBzQisDZUiYH/99dcPVWxcn48gb4ysjKUfhkpf+cpX6qYax+/aF7/4xdLL3vzmN6d999237lyMHm11uYjYxTt+H4tp5513Tq95zWuKWeP2OIK7sVlUMV100UX5GsixKdJwUjy7GFUam8I1jiw/+uij295pfTh9Gars5z//+QFF4r8DH//4x+s+WwMKlWQ888wzaY899hjwmYolAMqC8iVVyCJAgAABAgQIECBAgEBLAgKgLTEpVBUo7toeeTGi66STTqqebvoawc/GUZP777//gPKLLLJI+tznPleXHxu2bLzxxvmO8nUnCm9i+uShhx6aDjzwwEJuygMUzUatfeELX6hbczQ23Yip8RHYKAsmRUAnpv2f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th50vuFcfEZWXHHFlK0Pmn/J1KOPTbcIECBAgAABAgQIEOhDAQHQPnyobqnzAhG4bByRGiMTY6SrRIAAAQIECBAgQIAAAQIECBAg0DsC5XNIe6d/ekKgIwLHH398ynbeztfre+1rX5uyHY3Txhtv3HJbsYZiMcU6icOddl+83jEBAgQIECBAgAABAgQIECBAgEBnBARAO+Oq1h4XiKnSsUZk/ESKDZdiOnWrKdasK6ZNNtmk6QYxxXKOCRAgQIAAAQIECBAgQIAAAQIEuitgE6TuemutRwRe//rX1/XkiiuuSLF2YivptNNOS7HeZzHtu+++xbeOCRAgQIAAAQIECBAgQIAAAQIEekRAALRHHoRudFcgpqsvtdRStUZjR/fY3f28886r5TUePPXUU+nLX/5y2n///VNx77D11lsvffSjH20s7j0BAgQIECBAgAABAgQIECBAgEAPCNgEqQcegi6MjUBMed9xxx1T7GJfTBHQfNOb3pTvzhw7Nsdu2rF7cwRHIwhaTAsuuGC6/vrrU1wzVumMM85Is2fP7lrzEQCOnaslAmMl4DM/VvLaJUCAAAECBAgQIECAwPgUEAAdn89Nr0dJ4Bvf+EY66KCDRlTbiiuumM4666y09dZbj+j60booNnC68MILR6u6Ieu56qqr0pZbbjlkOQUIdErAZ75TsuolQIAAAQIECBAgQIBAfwqYAt+fz9VdtShw4IEHprPPPju94Q1vaPGKlCZNmpT23nvvdOONN4558LPlTitIgAABAgQIECBAgAABAgQIEJigAnaBn6AP3m2/IrDHHnuk+Imd4H/84x+nu+66K91zzz3pgQceSHPnzs13d19ppZXSqquumnbbbbe03377pRVWWOGVCsb46J3vfGfacMMNu9aLlVdeuWttaYhAmYDPfJmKPAIECBAgQIAAAQIECBBoJmAKfDMZ+RNeIDZGeuaZZ9KSSy454S0AECBAgAABAgQIECBAgAABAgTGq4AA6Hh9cvpNgAABAgQIECBAgAABAgQIECBAgMCQAtYAHZJIAQIECBAgQIAAAQIECBAgQIAAAQIExquAAOh4fXL6TYAAAQIECBAgQIAAAQIECBAgQIDAkAICoEMSKUCAAAECBAgQIECAAAECBAgQIECAwHgVEAAdr09OvwkQIECAAAECBAgQIECAAAECBAgQGFJAAHRIIgUIECBAgAABAgQIECBAgAABAgQIEBivAgKg4/XJ6TcBAgQIECBAgAABAgQIECBAgAABAkMKCIAOSaQAAQIECBAgQIAAAQIECBAgQIAAAQLjVUAAdLw+Of0mQIAAAQIECBAgQIAAAQIECBAgQGBIAQHQIYkUIECAAAECBAgQIECAAAECBAgQIEBgvAoIgI7XJ6ffBAgQIECAAAECBAgQIECAAAECBAgMKSAAOiSRAgQIECBAgAABAgQIECBAgAABAgQIjFcBAdDx+uT0mwABAgQIECBAgAABAgQIECBAgACBIQUEQIckUoAAAQIECBAgQIAAAQIECBAgQIAAgfEqIAA6Xp+cfhMgQIAAAQIECBAgQIAAAQIECBAgMKSAAOiQRAoQIECAAAECBAgQIECAAAECBAgQIDBeBQRAx+uT028CBAgQIECAAAECBAgQIECAAAECBIYUEAAdkkgBAgQIECBAgAABAgQIECBAgAABAgTGq8Dk8dpx/e6OwPHHH5/+93//t9bYiSeemNZcc83aewcECBAgQIAAAQIE+kXg+eefT2eccUbp7eyzzz5pySWXLD0nkwABAgQIEOhtgfkqWertLurdWArsvffeacaMGbUu/Pa3v02bbLJJ7b0DAgQIECBAgAABAv0i8Oijj6Ytt9yy9HZmzZqVpk+fXnpOJgECBAgQINDbAqbA9/bz0TsCBAgQIECAAAECBAgQIECAAAECBNoQEABtA8+lBAgQIECAAAECBAgQIECAAAECBAj0toAAaG8/H70jQIAAAQIECBAgQIAAAQIECBAgQKANAQHQNvBcSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb289E7AgQIECBAgAABAgQIECBAgAABAgTaEBAAbQPPpQQIECBAgAABAgQIECBAgAABAgQI9LaAAGhvPx+9I0CAAAECBAgQIECAAAECBAgQIECgDQEB0DbwXEqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vPROwIECBAgQIAAAQIECBAgQIAAAQIE2hAQAG0Dz6UECBAgQIAAAQIECBAgQIAAAQIECPS2gABobz8fvSNAgAABAgQIECBAgAABAgQIECBAoA0BAdA28FxKgAABAgQIECBAgAABAgQIECBAgEBvCwiA9vbz0TsCBAgQIECAAAECBAgQIECAAAECBNoQEABtA8+lBAgQIECAAAECBAgQIECAAAECBAj0toAAaG8/H70jQIAAAQIECBAgQIAAAQIECBAgQKANAQHQNvBcSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb289E7AgQIECBAgAABAgQIECBAgAABAgTaEBAAbQPPpQQIECBAgAABAgQIECBAgAABAgQI9LaAAGhvPx+9I0CAAAECBAgQIECAAAECBAgQIECgDQEB0DbwXEqAAAECBAgQIECAAAECBAgQIECAQG8LTO7t7ukdAQIECBAgQIAAAQIEuiMwZcqUtN1225U2tsgii5TmyyRAgAABAgR6X0AAtPefkR4SIECAAAECBAgQINAFgcUXXzydcsopXWhJEwQIECBAgEA3BUyB76a2tggQIECAAAECBAgQIECAAAECBAgQ6KqAAGhXuTVGgAABAgQIECBAgAABAgQIECBAgEA3BQRAu6mtLQIECBAgQIAAAQIECBAgQIAAAQIEuiogANpVbo0RIECAAAECBAgQIECAAAECBAgQINBNAQHQbmpriwABAgQIECBAgAABAgQIECBAgACBrgrYBb6r3BojQIAAAQIECBAgQIAAAQIECPSPwIUXXpiuueaapje07LLLpo9//ONNzztBoBsCAqDdUNYGAQIECBAgQIAAAQIECBAgQKAPBSIAeuKJJza9s7XWWksAtKmOE90SMAW+W9LaIUCAAAECBAgQIECAAAECBAgQIECg6wJGgHadXIMECBAgQIAAAQIECBAgQIAAgf4QeN/73pfe8IY35DdzxBFHpNmzZ+fHp556alp00UXT4osv3h836i7GtYAA6Lh+fDpPgAABAgQIECBAgAABAgQIEBg7gQ022CDFT6RvfvObtQDoXnvtlZZccsmx65iWCRQETIEvYDgkQIAAAQIECBAgQIAAAQIECBAgQKC/BARA++t5uhsCBAgQIECAAAECBAgQIECAAAECBAoCAqAFDIcECBAgQIAAAQIECBAgQIAAAQIECPSXgABofz1Pd0OAAAECBAgQIECAAAECBAgQIECAQEFAALSA4ZAAAQIECBAgQIAAAQIECBAgQIAAgf4SEADtr+fpbggQIECAAAECBAgQIECAAAECBAgQKAgIgBYwHBIgQIAAAQIECBAgQIAAAQIECBAg0F8CAqD99TzdDQECBAgQIECAAAECBAgQIECAAAECBQEB0AKGQwIECBAgQIAAAQIECBAgQIAAAQIE+ktAALS/nqe7IUCAAAECBAgQIECAAAECBAgQIECgICAAWsBwSIAAAQIECBAgQIAAAQIECBAgQIBAfwkIgPbX83Q3BAgQIECAAAECBAgQIECAAAECBAgUBARACxgOCRAgQIAAAQIECBAgQIAAAQIECBDoL4HJ/XU77oYAAQIECBAgQIAAAQIjE5gzZ066/vrrSy/eaKON0sILL1x6TiYBAgQIECDQ2wICoL39fPSOAAECBAgQIECAAIEuCTz11FPpQx/6UGlrs2bNStOnTy89J5MAAQIECBDobQFT4Hv7+egdAQIECBAgQIAAAQIECBAgQIAAAQJtCAiAtoHnUgIECBAgQIAAAQIECBAgQIAAAQIEeltAALS3n4/eESBAgAABAgQIECBAgAABAgQIECDQhoAAaBt4LiVAgAABAgQIECBAgAABAgQIECBAoLcFBEB7+/noHQECBAgQIECAAAECBAgQIECAAAECbQjYBb4NPJcSIECAAAECBAgQIECAAAECBAYTePLJJ9Pjjz/etMjkyZPTKqus0vS8EwQItC8gANq+oRoIECBAgAABAgQIECBAgAABAqUCJ598cjryyCNLz0XmCiuskB566KGm550gQKB9AVPg2zdUAwECBAgQIECAAAECBAgQIECAAAECPSpgBGiPPhjdIkCAAAECBAgQIECAAAECBMa/wJprrpl22GGH/Eb+7//+Lz366KP58T/90z+lhRdeOC211FLj/ybdAYEeFxAA7fEHpHsECBAgQIAAAQIECBAgQIDA+BV4z3vek+In0s4775zOP//8/PhHP/pRWmONNfJj/0OAQGcFTIHvrK/aCRAgQIAAAQIECBAgQIAAAQIECBAYQwEB0DHE1zQBAgQIECBAgAABAgQIECBAgAABAp0VEADtrK/aCRAgQIAAAQIECBAgQIAAAQIECBAYQwEB0DHE1zQBAgQIECBAgAABAgQIECBAgAABAp0VEADtrK/aCRAgQIAAAQIECBAgQIAAAQIECBAYQwEB0DHE1zQBAgQIECBAgAABAgQIECBAgAABAp0VEADtrK/aCRAgQIAAAQIECBAgQIAAAQIECBAYQwEB0DHE1zQBAgQIECBAgAABAgQIECBAgAABAp0VEADtrK/aCRAgQIAAAQIECBAgQIAAAQIECBAYQwEB0DHE1zQBAgQIECBAgAABAgQIECBAgAABAp0VEADtrK/aCRAgQIAAAQIECBAgQIAAAQIECBAYQwEB0DHE1zQBAgQIECBAgAABAgQIECBAgAABAp0VEADtrK/aCRAgQIAAAQIECBAgQIAAAQIECBAYQ4HJY9i2pgkQIECAAAECBAgQINAzApMnT04bb7xxaX8WWmih0nyZBAgQIECAQO8LCID2/jPSQwIECBAgQIAAAQIEuiAwderUdNZZZ3WhJU0QIECAAAEC3RQwBb6b2toiQIAAAQIECBAgQIAAAQIECBAgQKCrAgKgXeXWGAECBAgQIECAAAECBAgQIECAAAEC3RQQAO2mtrYIECBAgAABAgQIECBAgAABAgQIEOiqgABoV7k1RoAAAQIECBAgQIAAAQIECBAgQIBANwUEQLuprS0CBAgQIECAAAECBAgQIECAAAECBLoqIADaVW6NESBAgAABAgQIECBAgAABAgQIECDQTQEB0G5qa4sAAQIECBAgQIAAAQIECBAgQIAAga4KCIB2lVtjBAgQIECAAAECBAgQIECAAAECBAh0U0AAtJva2iJAgAABAgQIECBAgAABAgQIECBAoKsCAqBd5dYYAQIECBAgQIAAAQIECBAgQIAAAQLdFBAA7aa2tggQIECAAAECBAgQIECAAAECBAgQ6KqAAGhXuTVGgAABAgQIECBAgAABAgQIECBAgEA3BQRAu6mtLQIECBAgQIAAAQIECBAgQIAAAQIEuiogANpVbo0RIECAAAECBAgQIECAAAECBAgQINBNAQHQbmpriwABAgQIECBAgAABAgQIECBAgACBrgoIgHaVW2MECBAgQIAAAQIECBAgQIAAAQIECHRTQAC0m9raIkCAAAECBAgQIECAAAECBAgQIECgqwICoF3l1hgBAgQIECBAgAABAgQIECBAgAABAt0UEADtpra2CBAgQIAAAQIECBAgQIAAAQIECBDoqoAAaFe5NUaAAAECBAgQIECAAAECBAgQIECAQDcFBEC7qa0tAgQIECBAgAABAgQIECBAgAABAgS6KiAA2lVujREgQIAAAQIECBAgQIAAAQIECBAg0E0BAdBuamuLAAECBAgQIECAAAECBAgQIECAAIGuCkzuamsaI0CAAAECBAgQIECAQI8KvPTSS+n2228v7d2aa66ZFlxwwdJzMgkQIECAAIHeFhAA7e3no3cECBAgQIAAAQIECHRJ4Iknnkh77rlnaWuzZs1K06dPLz0nkwABAgQIEOhtAVPge/v56B0BAgQIECBAgAABAgQIECBAgAABAm0ICIC2gedSAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLefj94RIECAAAECBAgQIECAAAECBAgQINCGgABoG3guJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7+egdAQIECBAgQIAAAQIECBAgQIAAAQJtCAiAtoHnUgIECBAgQIAAAQIECBAgQIAAAQIEeltAALS3n4/eESBAgAABAgQIECBAgAABAgQIECDQhoAAaBt4LiVAgAABAgQIECBAgAABAgQIECBAoLcFBEB7+/noHQECBAgQIECAAAECBAgQIECAAAECbQgIgLaB51ICBAgQIECAAAECBAgQIECAAAECBHpbQAC0t5+P3hEgQIAAAQIECBAgQIAAAQIECBAg0IaAAGgbeC4lQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v56B0BAgQIECBAgAABAgQIECBAgAABAm0ICIC2gedSAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLefj94RIECAAAECBAgQIECAAAECBAgQINCGgABoG3guJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7+egdAQIECBAgQIAAAQIECBAgQIAAAQJtCAiAtoHnUgIECBAgQIAAAQIECBAgQIAAAQIEeltAALS3n4/eESBAgAABAgQIECBAgAABAgQIECDQhoAAaBt4LiVAgAABAgQIECBAgAABAgQIECBAoLcFBEB7+/noHQECBAgQIECAAAECBAgQIECAAAECbQgIgLaB51ICBAgQIECAAAECBAgQIECAAAECBHpbQAC0t5+P3hEgQIAAAQIECBAgQIAAAQIECBAg0IbA5DaudSkBAgQIECBAgAABAgT6RmD++edP06ZNK72fBRZYoDRfJgECBAgQIND7AgKgvf+M9JAAAQIECBAgQIAAgS4ILLXUUumCCy7oQkuaIECAAAECBLopYAp8N7W1RYAAAQIECBAgQIAAAQIECBAgQIBAVwUEQLvKrTECBAgQIECAAAECBAgQIECAAAECBLopYAr8INqPP/54OvPMM9Ott96a7rvvvjRnzpy0/PLLp8033zzttttuabXVVhvk6ldOvfzyy+n8889PF198cfrzn/+cnnvuubT22mun9dZbL22xxRZprbXWeqXwIEejVc8gTThFgAABAgQIECBAgAABAgQIECBAoK8EBECbPM5zzjknfec738mDlcUi99xzT4qfmTNnpmOPPTYPhhbPNx4/8sgj6eCDD05333133anrr78+xc/pp5+ePv/5z6cddtih7nzjm9Gqp7Fe7wkQIECAAAECBAgQIECAAAECBAj0s4AAaMnTveaaa9IJJ5xQO7PddtulDTfcME2ZMiXddttt6Ze//GV64YUX0mGHHZYOP/zwtP3229fKFg+effbZ9NnPfrYW/Jw+fXracsst07LLLptuvPHGdMUVV+SjSiOQGmX32muv4uW149Gqp1ahAwIECBAgQIAAAQIECBAgQIAAAQITREAAtOFBP/XUU+noo4/Oc+ebb770la98JQ9aVovtsssu+fT3f/3Xf00vvvhiOu6449L666+fT42vlqm+nnbaaenOO+/M32677bbpyCOPTAsssED+fvfdd0833XRTOvTQQ/Pg50knnZS22mqrtMwyy1Qvr72OVj21Ch0QIECAAAECBAgQIECAAAECBAgQmCACNkFqeNCXX355HpCM7L333rsu+Fkt+trXvja9733vy99W1+Wsnqu+RiA1ptFHWm655eqCn9UyETiNoGikqKdavno+XkernmKdjgkQIECAAAECBAgQIECAAAECBAhMFAEB0IYnHQHQatpxxx2rhwNeI3hZTbEmaGO67LLL0vPPP59n77HHHrWRn43lYkr8qquummdHAPSll16qKzJa9dRV6g0BAgQIECBAgAABAgQIECBAgACBCSIgANrwoGPKe0w5/7d/+7cUIz2bpdjJvZqWXnrp6mHt9eabb64db7bZZrXjsoNNN900z37sscfSDTfcUFdktOqpq9QbAgQIECBAgAABAgQIECBAgAABAhNEQAC04UHHGp2xWVFsbBRrgDZLsYN7NW2xxRbVw9rrLbfckh9HHWuuuWYtv+wg2qumu+66q3qYv45WPXWVekOAAAECBAgQIECAAAECBAgQIEBggggIgI7gQccu8D//+c/zK2PTotghvjE98MADeVbs+D558uB7TS2//PK1y++7777acRyMVj11lXpDgAABAgQIECBAgAABAgQIECBAYIIIDB6ZmyAIQ91mTE2PHdsjGHnppZemO+64I79krbXWyneJbwxwxtqfc+fOzcssueSSQ1Wfpk6dWisTmx5V02jVU62v7PULX/hCuuaaa8pO5XmPPvpomjZtWnrooYfSCy+80LScEwQIECBAgAABAgQIECBAgAABAgR6UUAAtIWncvXVV6cTTjihrmTs7B7rhcYI0Mb07LPP1rIWXHDB2nGzg2KZYpBxtOpp1m7kR3A3gpuDpVgWYLDlAAa71jkCBAgQIECAAAECBAgQIECAAAECYylgCnwL+hEgjCBgTGevpocffji9613vSt/73vdSpVKpZuevxQ2SpkyZUneu7E2xzIsvvlgrMlr11Cp0QIAAAQIECBAgQIAAAQIECBAgQGCCCRgB2sID33fffdP++++fJk2alCIoGdPgv/Od76RnnnkmnXnmmemJJ55In/vc52o1FafEv/zyy7X8ZgcvvfRS7VQxGDpa9dQqd0CAAAECBAgQIECAAAECBAgQIEBgggkIgLbwwBdbbLFaqYUXXjjtuuuuaZ111kkf/vCHUwQvZ82alXbfffe09tpr5+Ve9apX1crPmTOndtzsoFhmkUUWqRUbrXpqFZb98OjOAABAAElEQVQcfP/73y/JfSVr7733TjNmzHglwxEBAgQIECBAgAABAgQIECBAgACBcSRgCvwIH9Yaa6yRT4GvXh47w1dTBEmrqbiOZzWv8bU41b0YAB2tehrb854AAQIECBAgQIAAAQIECBAgQIDARBEQAG3jSW+44Ya1q++///7acWxqtPTSS+fvY63QodJf//rXWpGlllqqdjxa9dQqdECAAAECBAgQIECAAAECBAgQIEBgggkIgBYe+Ny5c9ODDz6Yfvvb36bf/OY3hTPlh8VgZXH39ig9bdq0/KIY3fn444+XV/CP3GLwtDqNvnrBaNVTrc8rAQIECBAgQIAAAQIECBAgQIAAgYkkIABaeNp///vf03vf+9504IEHpqOOOipf37NwesDh3XffXcubPn167TgOYo3Qavr9739fPSx9vemmm2r5xesis/i+nXpqDTggQIAAAQIECBAgQIAAAQIECBAgMIEEBEALDzumnG+wwQZ5ztNPPz3kKNCLLrqodvXrXve62nEcbLPNNrX3v/rVr2rHjQcx/f13v/tdnh11FEeVRuZo1dPYrvcECBAgQIAAAQIECBAgQIAAAQIEJoKAAGjDU956661rOd/4xjdSs02MfvGLX6TrrrsuL7vccsulbbfdtnZdHLzmNa9J1aDoVVddlcqCoC+++GL66le/ml5++eX82v3226+ujtGsZ0DFMggQIECAAAECBAgQIECAAAECBAhMAAEB0IaHvPvuu6fNN988z/3LX/6SDjjggDzQGWt8vvTSS+nOO+9MX/7yl9OJJ56Yl5lvvvnSEUcckRZbbLGGmlI+lb6aedxxx6XTTz89X2M06olp7wcffHC+3miUianuxeBr9bp4jSn51dROPdU6vBIgQIAAAQIECBAgQIAAAQIECBCYKALzVbI0UW621ft84okn0mc+85k82Fm9JgKdkyZNqlsXdOGFF06f+tSn0i677FItNuD10ksvTV/5yldScZOkqKc66jMuWHnlldP3vve9NHXq1AHXVzNGq55qfa2+7r333mnGjBm14rFB1CabbFJ774AAAQIECBAgQIBAvwjEpqixRFVZWnbZZdPkyZPLTskjQIBAywI777xzOv/88/PyMcBqjTXWaPna8VBwiy22SNdee23e1b/97W9pySWXHA/d1scJIOC/4CUPOQKRp556ah74++EPf5hPg484cYzcjBQBzDe/+c3p05/+dIr/IzRY2m677dLqq6+ejxq94447UvyfqmrwM/4P1J577pne//73pyWWWGKwatJo1TNoI04SIECAAAECBAgQmMAC8Y/14hr8RYpZs2alxo1Pi+cdEyBAgAABAr0rIADa5NlEcHKfffZJ73jHO/Jp6/fee2+KNTunTZuWVl111WF9+xvf6ERANUaBRhA0vlVeaaWV0mqrrZYWXXTRJj0YmD1a9QysWQ4BAgQIECBAgAABAgQIECBAgACB/hQQAB3iuc4///xplVVWyX+GKDrk6YUWWiitt956+c+QhQcpMFr1DNKEUwQIECBAgAABAgQIECBAgAABAgT6QsAmSH3xGN0EAQIECBAgQIAAAQIECBAgQIAAAQJlAgKgZSryCBAgQIAAAQIECBAgQIAAAQIECBDoCwEB0L54jG6CAAECBAgQIECAAAECBAgQIECAAIEyAQHQMhV5BAgQIECAAAECBAgQIECAAAECBAj0hYAAaF88RjdBgAABAgQIECBAgAABAgQIECBAgECZgABomYo8AgQIECBAgAABAgQIECBAgAABAgT6QkAAtC8eo5sgQIAAAQIECBAgQIAAAQIECBAgQKBMQAC0TEUeAQIECBAgQIAAAQIECBAgQIAAAQJ9ISAA2heP0U0QIECAAAECBAgQIECAAAECBAgQIFAmIABapiKPAAECBAgQIECAAAECBAgQIECAAIG+EBAA7YvH6CYIECBAgAABAgQIECBAgAABAgQIECgTEAAtU5FHgAABAgQIECBAgAABAgQIECBAgEBfCAiA9sVjdBMECBAgQIAAAQIECBAgQIAAAQIECJQJCICWqcgjQIAAAQIECBAgQIAAAQIECBAgQKAvBARA++IxugkCBAgQIECAAAECBAgQIECAAAECBMoEBEDLVOQRIECAAAECBAgQIECAAAECBAgQINAXAgKgffEY3QQBAgQIECBAgAABAgQIECBAgAABAmUCAqBlKvIIECBAgAABAgQIECBAgAABAgQIEOgLAQHQvniMboIAAQIECBAgQIAAAQIECBAgQIAAgTIBAdAyFXkECBAgQIAAAQIECBAgQIAAAQIECPSFgABoXzxGN0GAAAECBAgQIECAAAECBAgQIECAQJnA5LJMeQQIECBAgAABAgQIEJhoAvPPP3+aOnVq6W3HOYkAAQIECBAYnwICoOPzuek1AQIECBAgQIAAAQKjLLDUUkul6667bpRrVR0BAgQIECAw1gK+xhzrJ6B9AgQIECBAgAABAgQIECBAgAABAgQ6JiAA2jFaFRMgQIAAAQIECBAgQIAAAQIECBAgMNYCAqBj/QS0T4AAAQIECBAgQIAAAQIECBAgQIBAxwQEQDtGq2ICBAgQIECAAAECBAgQIECAAAECBMZaQAB0rJ+A9gkQIECAAAECBAgQIECAAAECBAgQ6JiAAGjHaFVMgAABAgQIECBAgAABAgQIECBAgMBYCwiAjvUT0D4BAgQIECBAgAABAgQIECBAgAABAh0TEADtGK2KCRAgQIAAAQIECBAgQIAAAQIECBAYawEB0LF+AtonQIAAAQIECBAgQIAAAQIECBAgQKBjAgKgHaNVMQECBAgQIECAAAECBAgQIECAAAECYy0gADrWT0D7BAgQIECAAAECBAgQIECAAAECBAh0TEAAtGO0KiZAgAABAgQIECBAgAABAgQIECBAYKwFBEDH+glonwABAgQIECBAgAABAgQIECBAgACBjgkIgHaMVsUECBAgQIAAAQIECBAgQIAAAQIECIy1gADoWD8B7RMgQIAAAQIECBAgQIAAAQIECBAg0DEBAdCO0aqYAAECBAgQIECAAAECBAgQIECAAIGxFhAAHesnoH0CBAgQIECAAAECBAgQIECAAAECBDomIADaMVoVEyBAgAABAgQIECBAgAABAgQIECAw1gICoGP9BLRPgAABAgQIECBAgAABAgQIECBAgEDHBARAO0arYgIECBAgQIAAAQIECBAgQIAAAQIExlpAAHSsn4D2CRAgQIAAAQIECBAgQIAAAQIECBDomIAAaMdoVUyAAAECBAgQIECAAAECBAgQIECAwFgLCICO9RPQPgECBAgQIECAAAECBAgQIECAAAECHROY3LGaVUyAAAECBAgQIECAAIFxJvD888+X9nihhRZK8803X+k5mQQIECBAgEBvCwiA9vbz0TsCBAgQIECAAAECBLok8Oijj6Ytt9yytLVZs2al6dOnl56TSYAAAQIECPS2gCnwvf189I4AAQIECBAgQIAAAQIECBAgQIAAgTYEBEDbwHMpAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvPR+8IECBAgAABAgQIECBAgAABAgQIEGhDQAC0DTyXEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fPSOAAECBAgQIECAAAECBAgQIECAAIE2BARA28BzKQECBAgQIECAAAECBAgQIECAAAECvS0gANrbz0fvCBAgQIAAAQIECBAgQIAAAQIECBBoQ0AAtA08lxIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/Xz0jgABAgQIECBAgAABAgQIECBAgACBNgQEQNvAcykBAgQIECBAgAABAgQIECBAgAABAr0tIADa289H7wgQIECAAAECBAgQIECAAAECBAgQaENAALQNPJcSIECAAAECBAgQIECAAAECBAgQINDbAgKgvf189I4AAQIECBAgQIAAAQIECBAgQIAAgTYEBEDbwHMpAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvPR+8IECBAgAABAgQIECBAgAABAgQIEGhDQAC0DTyXEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fPSOAAECBAgQIECAAAECBAgQIECAAIE2BARA28BzKQECBAgQIECAAAECBAgQIECAAAECvS0gANrbz0fvCBAgQIAAAQIECBAgQIAAAQIECBBoQ0AAtA08lxIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/Xz0jgABAgQIECBAgAABAgQIECBAgACBNgQEQNvAcykBAgQIECBAgAABAgQIECBAgAABAr0tIADa289H7wgQIECAAAECBAgQIECAAAECBAgQaENAALQNPJcSIECAAAECBAgQIECAAAECBAgQINDbApN7u3t6R4AAAQIECBAgQIAAge4ILLPMMulPf/pTdxrTCgECBAgQINA1ASNAu0atIQIECBAgQIAAAQIECBAgQIAAAQIEui0gANptce0RIECAAAECBAgQIECAAAECBAgQINA1AQHQrlFriAABAgQIECBAgAABAgQIECBAgACBbgsIgHZbXHsECBAgQIAAAQIECBAgQIAAAQIECHRNQAC0a9QaIkCAAAECBAgQIECAAAECBAgQIECg2wICoN0W1x4BAgQIECBAgAABAgQIECBAgAABAl0TEADtGrWGCBAgQIAAAQIECBAgQIAAAQIECBDotoAAaLfFtUeAAAECBAgQIECAAAECBAgQIECAQNcEBEC7Rq0hAgQIECBAgAABAgQIECBAgAABAgS6LSAA2m1x7REgQIAAAQIECBAgQIAAAQIECBAg0DUBAdCuUWuIAAECBAgQIECAAAECBAgQIECAAIFuCwiAdltcewQIECBAgAABAgQIECBAgAABAgQIdE1AALRr1BoiQIAAAQIECBAgQIAAAQIECBAgQKDbAgKg3RbXHgECBAgQIECAAAECBAgQIECAAAECXRMQAO0atYYIECBAgAABAgQIECBAgAABAgQIEOi2gABot8W1R4AAAQIECBAgQIAAAQIECBAgQIBA1wQEQLtGrSECBAgQIECAAAECBAgQIECAAAECBLotIADabXHtESBAgAABAgQIECBAgAABAgT6SODZZ1OaMSOl++575aZOOy2lBx545b0jAmMpIAA6lvraJkCAAAECBAgQIECAAAECBAiMU4GXX07p+ONTWnnllPbeO6UHH3zlRg4+OKXVVkvpAx9I6a9/fSXfEYGxEBAAHQt1bRIgQIAAAQIECBAgQIAAAQIExrHA00+ntOOOKX3ucyk9+WT5jcydm9Lpp6e06aYp3XRTeRm5BLohIADaDWVtECBAgAABAgQIECBAgAABAgT6RKBSSWm//VK6+OLWbuj++1PaeeeUHnqotfJKERhtAQHQ0RZVHwECBAgQIECAAAECBAgQIECgjwXOPDOlc88d3g3GeqAxLV4iMBYCAqBjoa5NAgQIECBAgAABAgQIECBAgMA4FTjuuJF1/Kc/TenOO0d2rasItCMgANqOnmsJECBAgAABAgQIECBAgAABAhNI4I9/TCl+RpJi6vzMmSO50jUE2hOY3N7lriZAgAABAgQIECBAgEB/CDz22GNp2223Lb2Zs88+O6255pql52QSIEBgogi8+GJKP/lJe3d7663tXe9qAiMREAAdiZprCBAgQIAAAQIECBDoO4FKNjTpxfjXfUmKcxIBAgQmosBTT6V0wQUpZd8DpVmzUord39tJjz/eztWuJTAyAQHQkbm5igABAgQIECBAgAABAgQIECDQlwIPP5zSOeekNGNGSpdcktKcOaN3m8stN3p1qYlAqwICoK1KKUeAAAECBAgQIECAAAECBAgQ6FOBu+9O6Re/mDfS8+qrU5o7tzM3uskmnalXrQQGExAAHUzHOQIECBAgQIAAAQIECBAgQIBAnwr84Q/zRnlG4PPGGzt/kwsumNJuu3W+HS0QaBQQAG0U8Z4AAQIECBAgQIAAAQIECBAg0IcCMarz2mvnBT1jTc+77uruTX7iEymZAt9dc63NExAA9UkgQIAAAQIECBAgQIAAAQIECPSpQKzfedll86a2x0jPv/61/RudOjWlFVZI6Y9/bL2ujTdO6eijWy+vJIHRFBAAHU1NdREgQIAAAQIECBAgQIAAAQIExljgmWdSOv/8V3Zuj53c200rrpjS7runtOeeKW27bUqTJqV00EEpfetbQ9e8yCLz+rPwwkOXVYJAJwQEQDuhqk4CBAgQIECAAAECBAgQIECAQBcFHnkkpXPPnRf0vOiilF58sf3GX/OalPbYY17Q841vTGm++err/OY3U9pxx5QOPzylG26oP1d89+yzKVUqxRzHBLorIADaXW+tESBAgAABAgQIECBAgAABAgRGReDee1/Zuf2qq1J6+eX2q91oo3kBzxjp+frXD11fBEDjZ/bslN7ylpTuu6/8mph+/7GPlZ+TS6DTAgKgnRZWPwECBAgQIECAAAECBAgQIEBglARuuWXeKM/YxGiwUZetNhdT2bfccl7Qc6+9UlpttVavrC83fXpKK63UPAAao1MFQOvNvOuegABo96y1RIAAAQIECBAg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AAECBAgQIECAAAECBMaXwLXXpvTAA+V9bjb6sbx0f+YusEBKu+5afm/nnVeeL5fAaAgIgI6GojoIECBAgAABAgQIECBAgACBCS/QbPp7BP7e+tYJz5MDNAsE//nPKf32t4wIdEZAALQzrmolQIAAAQIECBAgQIAAAQIEJphAswDoW97SfOr3BCNKb3tbSpMnl991r06DL++t3PEk0OQjN55uoXN9ffLJJ9N///d/pz/96U/p/vvvT48++miKxW9XXXXVtMEGG6S99torLRBf4wyRXn755XR+tgjIxRdfnP6cfaXx3HPPpbXXXjutt956aYsttkhrrbXWEDXMOz1a9bTUmEIECBAgQIAAAQIECBAgQIBAywL33ZeydSLLi8f6n9I8gdgIapttUhYjGSgSAeQvfWlgvhwC7QoIgDYR/NnPfpZ++MMfpmeeeaauxD333JPi58orr0wzZ85Mn/3sZ9NGG21UV6b45pFHHkkHH3xwuvvuu4vZ6frrr89/Tj/99PT5z38+7bDDDnXnG9+MVj2N9XpPgAABAgQIECBAgAABAgQItC8wY0bzOnbaqfm5iXgmpsGXBUB///uUHnwwZYPPJqKKe+6kgABoie6FF16YTjrppNqZzTffPB/xucwyy+QjQa+44oo8CBqjOQ855JB06qmnpmnTptXKVw+effbZPEBaDX5Onz49bbnllmnZZZdNN954Y4p65syZk4499tgUZWNEaVkarXrK6pZHgAABAgQIECBAgAABAgQItC/QbPr7Jpuk9OpXt19/P9Ww884pfepTA++oUknpF79I6V//deA5OZ0RmDt3bqoEfJM033zzpfnnH/8raAqANjzgB7OvGv793/89z500aVI6+uij01ZbbVVX6oMf/GD69re/nX7+85/nAcwo84Mf/CBbw6Ke87TTTkt33nlnfu22226bjjzyyNqU+d2z8e833XRTOvTQQ/PgZwRco50Isjam0aqnsV7vCRAgQIAAAQIECBAgQIAAgfYFnnoqpauuKq+n2aY/5aUnRu6aa6ZsWcCU/vCHgfcbgWQB0IEuncp5xzvekc4+++ym1e+cRatnzZrV9Px4OTH+Q7ijLH3JJZek559/Pq913333HRD8jBMR6PzkJz9ZW7tz9uzZ+Tqhxa48lf31O+cfX/8st9xydcHParn1118/z4/3sb5ntXz1fLyOVj3F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MQJ+z//s108aMqSYK3IOArkFLLFOAjS3UZhKmdAbptGirQgggAACCCCAAAIIIIAAAgjETKCmRpo9291pZn+6XYg2XaCxr61//avp9+AKlRMgAVo5a+6EAAIIIIAAAggggAACCCCAAAIFCjz6qLRmjfukxpJU7rOIItC4wMCB0q67+tfbay9pl12kW2+Vtm71r0dJMARIgAZjHGgFAggggAACCCCAAAIIIIAAAgg4BPx2f+/cWTr8cMcJhBAogcDmzVL79rkv9Pbb0jnnSOPGSatX565LaXUFSIBW15+7I4AAAggggAACCCCAAAIIIIBADoFp09yFtlN3q1buMqIINFXgW9+SXn45v6vMmCGdeKJkSVOOYAqQAA3muNAqBBBAAAEEEEAAAQQQQAABBGIv8M9/SkuWuBlY/u52Idp0Adt067rrCrvO3LnS735X2DnUrpwACdDKWXMnBBBAAAEEEEAAAQQQQAABBBAoQMBv+bvN/Bw1qoALURWBAgR++tMCKmdVvewyae3arAAvAyNAAjQwQ0FDEEAAAQQQQAABBBBAAAEEEEAgW8AvAWrP/rRngHIgUGqBV1+Vit3hfdUqafbsUreI65VCgARoKRS5BgIIIIAAAggggAACCCCAAAIIlFRg6VLppZfclxw/3h0nikBTBRYsaNoV/vY3qaamadfg7NILkAAtvSlXRAABBBBAAAEEEEAAAQQQQACBJgo88YT/BWzXbQ4EyiGwfHnTrnr33dK220onnyz95S/Sxx837XqcXRqBlqW5DFdBAAEEEEAAAQQQQAABBBBAAAEESifw5JPua+21l9Svn7uMKAJNFejSpalXkNaskf7+99RHc2/q4SGHSGPHSpa432OPpl+fKxQuwAzQws04AwEEEEAAAQQQQAABBBBAAAEEyizgtxSZ3d/LDB/zyw8eXFqArVulp5+WfvQjac89pf79pQsvlB55hKXypZXOfTUSoLl9KEUAAQQQQAABBBBAAAEEEEAAgSoIbN7svikJULcL0dIIHHyw1LNnaa7lusp//iNdfbV0zDGppfInnSTddpv00Ueu2sRKJUACtFSSXAcBBBBAAAEEEEAAAQQQQAABBMoq0Lu3tP/+Zb0FF4+5gC1Z/+EPK4NgS+XvvVc6+2ypVy9p6FDp8sulf/+7MveP011IgMZptOkrAggggAACCCCAAAIIIIAA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gARo5ay5EwIIIIAAAggggAACCCCAAAKRE9i61X/zo912k444InJdpkMIIBAyARKgIRswmosAAggggAACCCCAAAIIIIBAkAQeekh67z13iyZOZPMjtwxRBBCopAAJ0Epqcy8EEEAAAQQQQAABBBBAAAEEIiZw3XXuDrVpI515pruMKAIIIFBJARKgldTmXggggAACCCCAAAIIIIAAAghESMBmfs6a5e7QySdL3bu7y4gigAAClRQgAVpJbe6FAAIIIIAAAggggAACCCCAQIQErr9esmeAug42P3KpEEMAgWoIkACthjr3RAABBBBAAAEEEEAAAQQQQCDkArbr+803uzsxeLB02GHuMqIIIIBApQVIgFZanPshgAACCCCAAAIIIIAAAgggEAGBBx+UPvjA3ZFvfMMdJ4oAAghUQ4AEaDXUuScCCCCAAAIIIIAAAggggAACIRfw2/yoXTvpjDNC3jmajwACkRJoGane0BkEEEAAAQQQQAABBBBAoEiBzz77TFdeeaXz7G9409l69OjhLCOIQBwF3nlHmjPH3fMvfUnq2tVdRhQBBBCohgAJ0Gqoc08EEEAAAQQQQAABBBAInMCGDRt05513Otv15S9/mQSoU4ZgXAVs9qff5kcTJ8ZVhX4jgEBQBVgCH9SRoV0IIIAAAggggAACCCCAAAIIBFBg0ybp1lvdDRsyRDroIHcZUQQQQKBaAiRAqyXPfRFAAAEEEEAAAQQQQAABBBAIocD990vLlrkbzuZHbheiCCBQXQESoNX15+4IIIAAAggggAACCCCAAAIIhErAb/OjDh2k008PVVdoLAIIxESABGhMBppuIoAAAggggAACCCCAAAIIINBUgbfekh57zH0V71G56tTJXUYUAQQQqKYACdBq6nNvBBBAAAEEEEAAAQQQQAABBEIkMHmylEi4G/z1r7vjRBFAAIFqC5AArfYIcH8EEEAAAQQQQAABBBBAAAEEQiBQUyPddpu7ofvtJx1wgLuMKAIIIFBtARKg1R4B7o8AAggggAACCCCAAAIIIIBACAT+/nfp44/dDT3/fHecKAIIIBAEARKgQRgF2oAAAggggAACCCCAAAIIIIBAwAVs+bvr2GYb6bTTXCXEEEAAgWAIkAANxjjQCgQQQAABBBBAAAEEEEAAAQQCK/Daa9JTT7mbd8YZUseO7jKiCCCAQBAESIAG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wz526fbb/+PtZ+emTal+tWiRLuEzAggggAACCCAQPIEI/IoePNRSt+iWW27R2/YbgncceeSR+ulPf6pWrVol348fP14LFy7URRddlEx+Xn311Tr88MO9X+S93+RDfjz+uLx+yZvh2rAjllw66yzpl79M/dLUsEbwI/fcI2/WrryxbdhW+yXizDOlSy8Nb//+9jfp//0/6a23GvbPEtkXXCDva1nq3LlheRgi990n/eQnqeRL/fbat5/3NwtdeKHUpk390uC/9/6eossvl2wzQEuC1j9at5a++U3p5z+XOnWqXxqO996TRJLtf/ppyX6JTx/NvSdjWwL7//5POuqodDRcn1evli6+WLr2Wnl/HGvYdhsz+9lqH5//r6RhpQBH7I9h3oIITZlSd+zSTbbkrpXbzx/7Wg3b8eab0ne+k/rjQ/22//nPqT8e2djZ/z/C+IcW7+k9uvJK6Q9/SP1hJbuP9v1nfyD71a+k/fbLLgnP608/TbV/8uRU4jq75dY/W6hz2WXSF76QXRKu1489lvr58vDDtf+PsJ8lluA95xzpy1+WrK9hPP7zn9T/v/3a/u1vS7//vbzHTvnVII4AAggggAACgRVIcARaYNWqVYkRI0YkDjvssIQ3szPhzfR0tnfevHnJOlbvpptuctYpJmj39L54Mx8LFiwo5jIFn3PJJYlEs2aWlsj90bNnIvHccwVfvqonbNmSSHzzm7n7le53796JxD/+UdXmFnzzTZsSia9/Pb/+7bprIvH66wXfoqonWP/OPTe//h10UCLx4YdVbW7BN//440Ti0EPz69/gwYnEO+8UfIuqnmDj941v5Ne/Cy5IJKx+mA4bDxuX9M+QXJ8PPzyRWLEiTL1LJP75z0TCfi7m6le6zPvfYWLlynD179FHE4kuXfLr3/DhicSaNeHq3+LFicSeezbevxYtEonf/z5cfbPW/utfiUS/fo33r1WrRGLy5PD177PPEolTTmm8f/vvn0j897/h69/MmYlE586JRIsWHyV2220350fr1m8m2rVLJKZMCV//aHG0BC7w/pGS/h3N2x8iWp2jNwgggECZBEL699nA5pNL3rDHvD+zr1+/Pnnd448/PjPzs/6NbEl83759k+EHvTWBmzdvrl8lNO9tVojNrLN/Yjd22PLVUaMkmzETlsNm7fzpT/m19sMPpdGj5T3+IL/6Qaj1/e9LN9yQX0ts3Gw2jPeI29Ac3/qWdOON+TXXHm9g42cznsJw2DLGCROkZ57Jr7W29Nj6ZzMOw3Kcd55ks+jyOWwG5cSJ+dQMRh0bBxsPG5d8Dnu0yEknyfv/RT61q1/n/fdTj1+wn4v5HPZokVNOkWypdRiO11+XTjhBshmE+RyPPiqdcUZ+/6/M53rlrmNLpW1W9aJFjd/Jxux738v/e7XxK5a/hrc3ZXL2qs0gbOywn7X2s+X22xurGZxyW8Zv42erOxo77NE3Bx0kvftuYzWDU26P6vH+mZ18nEZjrbJ/ltssV5sBy4EAAggggAAC4REgARrwsVqU9ZvCgQcemLO1+++/f7L8E++3jBfsoX0hPGy5tC0dLuSwZ9vZkqswHJYQ+/WvC2upPXvx/PMLO6date0X8j/+sbC72y+L9otuGA57nuJ11xXW0hdflH72s8LOqVZtS8w/8URhd7dkmy23DsNx112S90SRgo6bbkottS7opCpVtmX7+SY/002079lCv6bT51b6sy1rt2clF3I88oh0662FnFG9uvZYCXuWaSHH1KmSPU4lDIc99qTQP+bZY0TC8gdO+3eI/VG2kMP+326J/TAc9lgG+zdMvod9r9oj6bduzfeM6tWzR4Wcfrpkz23N97AkvT2qyJ7Py4EAAggggAAC4RBoGY5mxreV/7bdK7yjWbNm2nnnnXNC2OZI6WOx99T9xhKm6bpB+mzPvLSZEYUe9hw/2zho++1TZ/rNHnXF843ZlfOt66pn59tzs4o57Jd461/2o129L4mcRzXKZ87M2STfwjvvTI27PQ/U7Oo/O8yvL654vjFrTL510/Xuvtu3CzkL7HlhK1akNvGyiumvD/vsep2uk12WjtX/7Fcn+5dOvzoWT5dZfUvwFnPYrG1LbNjzTs3Kxs8+pz/qv88Vd9V1xVz3yRWzfv32t8X0LvW80/SzetNm6c/mln5d/3NjZdaaxuqkr2n17Ei/T3+2uH3YL+4PPJCqU+h/LbFo37vmZ9fNPoLy3mZR2wytYg6btf2Xv/ifWb+P/jXdJaU435Io3uO8izq+9jXp+utrv9/8vg8s7ipzfX+5Yk053/6QZ89sLfSwfw9YEs173HnOoxRjkPMGjRT+97/S3LmNVHIU20xC699xx9X+3Ezbpz9nu6dj6c/Z45mO1f+cq06usvR1rI71L9+VD9nd/Oc/pR//ODUzNv2zLvuz32sbTysrtDxdv9Dzbc6AbVZV6LF8eWpFzw9/WOiZ1EcAAQQQQACBagiQAK2GegH3fP/zqQG243vLRnY76Jm1deq7ea47esZb6/qB7Sjhc6z0pld28nbMsN3lt5R5HaEtw7TZLLWHt95KjU2H6ZmpHr6lSNY377dC38MmaPfPlIavf7Z7jn34HS28gh6ZwnyW1WUqB+LF614r3s3Rkm28soOT5fZLWaEzD3NcuEJFj3v3eSPHvXp7ZeOS5da/YpNvOW4QmCJLXtuGOuE6bFpgrqllu3vlxyS7ZMnTYpPf1TO5xbt1rp+ftiLiyGTzbOmuLfcP1/GY11z7f6DfsatXkPqjp21UVkzyze/KlYl70+eSjxf3u5v9/8HLvHmHLYTJWgyTjAX/P7n+32Ct39b7aJ/sxj/+IdlHVI8rrpDsI6qHzcAmARrV0aVfCCCAAAJREyABGuARtWd/brXMgnd07dq10ZZ26dIlU2d1ng/lu+222/T4449nznO96NWrl97zHm5l7XnOm4KzwrIBZThspoftPF172H0aS4D28+qkfkmqPS8srz7yGur95przqE2A5qwWyMJlXqu8aVu+h41bP9/S4Bc01j/7BT7Ma+P8/zCSGhv7+vWmJof2sOSgt+7R9/Cms6qPb2nwC+xrL5Vgcbd1qRcO8/hZAs2bMu57LPFKwty//3jtrzcdt05fLfn7Tp1IuN401vZOXne6h6tLmdbauP0n8879wv5NV/tvNnedoEbtey/XH1es3bUJ3qD2wr9d670/+r+tyZPdNS6++B517z7IK+yYqWCrdDgQqLSAt/Gt9tprr+RtbaLKI3whVnoIuB8CCFRAwNsQvKR3IQFaUs7SXsz+Z5Y+2tja0kaO7DobbMpLGQ677roy7uiSNYnVa33bzz9ydcRbPxbao4PXcvvIdeRKIOY6LwhlNgPSPnId9C+XTnXL8vnlPMzj1/gflXIn8Ks7Oo3fPZ/kUZjHr3b2uL9FmPu3nX+3MiVh7l/t6o1Mdxq8oH8NSAITsARnY0d4x2/Dhj464IADnB3c3nvWUufOtkKntn9l/Gexsw0EETCBdu3aJT/stbdZcll/P7N7cCCAAALVELCfb/Y4yFIdJEBLJVmG62QnGlu3bt3oHbLrbCzkSe6NXrm2gn3xlfILsPbKqWfP1d2N2GYZpGbAZter+7pV3behekf/pCiPn/2gDvOPWNsaPNcMNPoX7B83cR8/S1DYLOywHpsaaTj9awSoysVRHj/7/4L9fMl12PeefY2G8UgkHzl1wgkn+DZ+82YzqO1fqzD/U8a3lxQEXcAeTZZeKWiPSSvX72dBd6B9CCAQbYFS/2wL82/n0R5pr3fZz/zM5/mbm7Oyh9nJ0FxQx3lP3h8yZIhvlSnergWvvPKKtzFR6h/zRxxxhPbbbz/f+k0psFt4jzrN2gXXlofbMttcR/9chQEvs9kDtkzV77B/XOczy8nv/GrHV3sNyPUIA/vxY8+RDOvxrNfwRTka380rOy5HedCLXvMaaMuk/Q6bIbq3X2EI4o95bXwvRzt39MqG5SgPetFTXgM/ydFI69++OcqDXmTfe7lWAPTyyvsGvRMxbt/TXt/tj4B+xy5eQVgfQWHJsWl+Hfs8bt97OzRSJ6jFn3oNO6WRxv3SKz+okTrRKN5jjzA+ozYa9nHvxbe8Hf6uvfbaJMOcOXN01FFHxZ2E/iOAAAKNCpAAbZSoehVsaUP6qKnJ9ay6VK3sOh06NLa0OnXOmDFj0rdwfn7M27Z83rx5zrJSB+0v6OPGSXfckb6yPV+p9hlL6ajf52HDaneBz67jmjHtitk5rni+sXzO9/59otr9qez5fLme0WdXrD3MJnsX+NqS1Cvb9TTXUYly26jpo0zO2p7hZh/5HaNGebU/r27m1l5Xm10xu4Mrnm8s3/Pt8Uq1T6Y4xDvNPvI7rH/tveFOfz3Z5+zXdpXs99nl9cvS77Prp2Ppz7aDr/U/V536ZXfeKdU+PtiecWYfjR/2vfuVr3jz7VrUjpvdO3tHXnuf/qgfr/8+Xc91DVddV6z+ufYHFtvp1+Kp48j0i0Y/m9O+Xr7C9qHL3hnZ4tkfucrS9erXsfd2uMqzy9Kv659v51nM+vfXv6Y+p674xdSnPP5rj48+55y6Fe262Ue139tu2X/8ozfvLDPxbM/s5uV83dfLg371qzmr5Cys3/eclR2F+Zy/yvtb0VVXpb5nHJfIGdptN+mkk1Jf267vBYvZUb+s/vv09139eP33fvXqf89l17P/L9Td6GdoqlF5/Ncegb7PPnlU9KmSj7/PqclwPufbbuALF6avYt88x6XfNPq5e3dp113rjl+2efp1/c/Z3vXL0u9z1clVVv/8up3wfmBodt1QI+/M0H5OpX9+1X9drfJ0e5Yskd58s5FO+BSfeKJPAWEEEEAAAQQQCJyA9+scR1AF2lu25PMj+3mg6Vj9z9lL5vNNgNa/RrXf207L9kt8oRvOH3ig5OVqA3+8+KK8GbTZSZj8mjx2rPTgg/nVrWYtSxAec0zhLTj11NS4F35mZc+4/XbpzDMLv6clX266qfDzKn2G9zx9nX564Xe9+GLpxz8u/LxKn/Hd70p/+EPhd7Xzrryy8PMqfcYuu0g/+1nhd/3Tn6TTTiv8vEqfYX8T/NWvCr/rX/7izeUdVvh5lT7DktiW5C3ksD862C7Un++DUcipFa978MHS888Xftv77gv++FnC8AtfKHwmoCXg5s5NnVu4TOXOsASh/Xwp5ulKM2dKxx5bubYWcyf7w6b1b2muRQ+OC9sfbb/zHUcBIQQQQAABBBAIpID3Ty+OoArYpkbdbWqAdyy36QWNHMuWLcvU6NatW+Z1mF4M8iacXXppYS3eZhvpllsKO6datW0Wy//9X2F3791bvruRFnal8te2TdomTizsPjY7y2Y+heE44wxp/PjCWtqvn3TFFYWdU63aX/5y4Ykw76kYmjSpWi0u7L72vbfzzoWdU2xSsbC7lKb2D38oDR1a2LUs8RmG5Kf1ypK7lkQr5LjoouAnz9L9ufxy76ESe6ff5ff5178OR/LTenPDDd6ajvwXdSQBzjsvHONniUz7I1fbtvmNW7rWj34U/OSntXWHHST7A3Whh/eUpcAnP61PtmjKxs/GsZDD/niUa2VOIdeiLgIIIIAAAgiUX6DA/9WXv0Hcoa5A//79kwGb3bly5cq6hfXeLbE/0X9+DB48OP0ydJ/tl3j7pSCfw/LDDz0k7b57PrWDUcd+ibdfyvM5dtpJsmXl3qajoTlsBtNZZ+XX3AEDUv3r2TO/+tWuZcv07BENI0fm1xLr36xZ4foF6eabJUuE5nPY46buv9/byspbAh+Gw5bS2s+LHXfMr7X2/Wf1bYl4GA7bK89mig8bll9rLfFp4x2Ww/uboKZPl448Mr8W28/Zyy7Lr24Qatmij9neymKbid3YYYkaS35+//uN1QxOuT1u/N57ax910ljLTjlFuuaaxhdDYlIAAEAASURBVGoFp9xWoniPTU8m0/Jplf2x8Je/zKdmMOr85CeSrdbI97A/+NqqibAco0enfh7msedo8nEv9ofbYlZMhMWDdiKAAAIIIBBFAe+f0BxBFtg9K7P38ssv52zqwtoHUHkJwRBlBB29smWO9ouuPVzedVgiyn55t2f6HX64q0ZwY9Z2mxFoy8L8li3aL/rf/rb0z3/K26QquH1xtcyek3jrralEYb9+rhqS/YJh/Zs/Xwpbrt5mMNnX5u9+J/lNtDaDb3wj1b+BA90GQY3aDCZ7Fuhdd6WeS+dqZ58+8h68n0peW1IxTIfNMrevO/v5Yd+LrsPilgS2emEbP/uatEdR2FL/Xr1cvUst9UyPcaEz1txXrFw03b/JkyVLULuOQw+VHn009XO20BldrutVMmYbAdrjXOz7y/Xz05a823Jie55mWGZeZ/vZI1Ks7fZMZL/DDKz/d98dnj+upPtiMx5tmf/RR6cjDT/bH2DsD2l//rP/z6CGZ1U/Yj8X7f8LP/+5ZP9G8Tusnj0T+qmn8k92+12r0nH74+3TT0tf/KL/ne0xRvbz5cIL/etQggACCCCAAALBFGiW8I5gNo1WmcCb3lPZv/r57g2HedNCLvOZzmLL37/0pS95z87c4v3CPlA33nhjSQAnTJig++wBXJ8fCxYsKNsu8Ol71P9sSc4nn5Q++CC1vMxm1dkvgH6/3Nc/P+jvFy1K/YP7ww9TM0dsya398mRL+8N+2HPRnnsu9WHP1rLnZdmGHTaDsnPnsPdO2rBBso2tLFFmT6mwPllC1/YWi8qyOPu7iz271jYxsWTnnt7eMwcdFK5f3P2+0t54Q97Pt9TmJZ98Iu+RI6nlqLapxf9v70zgpSiuvl2sgiCCIiDgAqKAuCsQhXwgSt6Ixh13jRJjNEKUGDdi0KivWxA1GqJoXBJRo3ElKKgRtyCiIqiouC+siiI7Isp3/8Vbc2fm9sz0rN1TPPX73Tu9VHfXec7p6qpTmxYlqfag9++ll4yZNcvUjCAwRo4l9coqZkGZuDGZMcOYd9815ptvjFFP8r32qln7fau4pbLw9Lz5pjGy02XL1svXs6c/ecs776zvYf3BB8bUDHIxmu5FUzjISZq0BmTh8CK+8u23jXn8cWM+/nj9t0INR2qw7d+/+hy76Si1mKOGjGuEwyefrF98TSNV1Dv75JPXLxqXfk217Ut/6pH96afr523XNAAqm+U7TUW1yU16q4cAq8BXj65IKQQgEB8COEDjo4uMKTn11FPN7Nmz7fmLasYg/U/a+Ntva2alv+CCC4yckwqXXnppTSG0phRaghAHB2gJxOAWEIAABCAAAQhAAAIQgAAEvCCAA9QLNSIEBCBQYQL1K/w8HlcAgeHDhyeu+t+aFYLuuuuumt6Q88zatWuNhr2fc845Ceenhr7306okBAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMA0hEH8CfSomQjzjzWTLmn4++qaMbca3q6/BjWTgWnIuwsdasYfXV0zuWT9apv0zAnALwQgAAEIQAACEIAABCAAAQhAAAIQgAAESkyAHqAlBlqu2w0YMMDccsstdn5P5+B0zs+GNSuuDB482J5vWS3LFZcLFPeFAAQgAAEIQAACEIAABCAAAQhAAAIQgEASAXqAJsGI+2bnmtV/1PNTvUC1OJIWPmpfM6v+1jVLijbX0tQECEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIIUADtAUHNWx06RJE7Pzzjvbv+pIMamEAAQgAAEIQAACEIAABCAAAQhAAAIQgEA0BBgCHw13ngoBCEAAAhCAAAQgAAEIQAACEIAABCAAAQhUgAAO0ApA5hEQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBANARwgEbDnadCAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACFSDAHKAVgMwjIAABCEAAAhCAAAQgAAEIQAAChRL47LPPzNSpU+3lWhDXhWeffdZ89dVXdveII44wDRo0cKf4hQAEIACBJAI4QJNgsAkBCEAAAhCAAAQgAAEIQAACEIgbgRdffNEcf/zxdZJ1+eWXJ46tXLnSNG3aNLHPBgQgAAEI1BJgCHwtC7YgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABzwjQA9QzhSIOBCAAAQhAAAIQgAAEIAABCPhFYOeddzYjR47MKlSjRo2ynuckBCAAgQ2ZAA7QDVn7yA4BCEAAAhCAAAQgAAEIQAACsScgB6j+CBCAAAQgUBgBhsAXxo2rIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgSoggAO0CpREEiEAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIHCCDAEvjBuXAUBCEAAAhCAAAQgAAEIeEbg22+/NU8//XSgVP369TPNmzcPPMdBCEAAAhCAAATiTQAHaLz1Q+ogAAEIQAACEIAABCAAgQoRWLZsmfntb38b+LQJEyaYLl26BJ7jIAQgAAEIQAAC8SbAEPh464fUQQACEIAABCAAAQhAAAIQgAAEIAABCEAAAkUQwAFaBDwuhQAEIAABCEAAAhCAAAQgAAEIQAACEIAABOJNAAdovPVD6iAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEiCOAALQIel0IAAhCAAAQgAAEIQAACEIAABCAAAQhAAALxJoADNN76IXUQgAAEIAABCEAAAhCAAAQgAAEIQAACEIBAEQRwgBYBj0shAAEIQAACEIAABCAAAQhAAAIQgAAEIACBeBPAARpv/ZA6CEAAAhCAAAQgAAEIQAACEIAABCAAAQhAoAgCOECLgMelEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQLwJ4ACNt35IHQQgAAEIQAACEIAABCAAAQhAAAIQgAAEIFAEARygRcDjUghAAAIQgAAEIAABCEAAAhCAAAQgAAEIQCDeBHCAxls/pA4CEIAABCAAAQhAAAIQgAAEIAABCEAAAhAoggAO0CLgcSkEIAABCEAAAhCAAAQgAAEIQAACEIAABCAQbwI4QOOtH1IHAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIFEEAB2gR8LgUAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQiDcBHKDx1g+pgwAEIAABCEAAAhCAAAQgAAEIQAACEIAABIoggAO0CHhcCgEIQAACEIAABCAAAQhAAAIQgAAEIAABCMSbAA7QeOuH1EEAAhCAAAQgAAEIQAACEIAABCAAAQhAAAJFEMABWgQ8LoUABCAAAQhAAAIQgAAEIAABCEAAAhCAAATiTQAHaLz1Q+ogAAEIQAACEIAABCAAAQhAAAIQgAAEIACBIgjgAC0CHpdCAAIQgAAEIAABCEAAAhCAAAQgAAEIQAAC8SaAAzTe+iF1EIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQBEEGhZxLZdugARee+01s3z58g1QckSGAAQgAAEIQAACEPCdwDfffGNWrlwZKObLL79s5s6dG3iOgxCAAAQgAAEIlJZAnz59TMOGpXNb1ltXE0qbRO7mE4EjjjjCPPTQQz6JhCwQgAAEIAABCEAAAhCAAAQgAAEIQAACMSawaNEis/nmm5cshaVzpZYsSdwoTgR69eplvv/+e/Pf//7XyPiiCPXq1TMbb7xx4tFKz+rVqxP71b5Rv35907Rp04QYvsu3du1a8+233ybkrfaNBg0amCZNmiTE+O6778yaNWsS+9W+oRa3jTbaKCGGZJOMvoRGjRqZxo0bJ8TxXT69e3oHfQnSnXTogr4NykN9CXr3klu9V61aZX744QdfxLN5p/JQF9Trzqd2eX3b9Y13wXf5VqxY4UT14ldlT5VBXfBNvmbNmjnR7HuXqddrIlKVbSTLp3xT+acvIb1u5Lt81I2qy3KpG1WXvtJT63vdDwdousbZTyFw/vnn2/3999/f/Oc//0k5V6kdZaIdOnRIPE4FmM8//zyxX+0bymSS5dMUA/Pmzat2sRLpVwU+Wb4lS5aYhQsXJs5X+4acn8nyLV682Hz55ZfVLlYi/aoAtmvXLrH/1VdfGf35ElRBatOmTUKcL774wmj4oy+hRYsWKa2mCxYsMEuXLvVFPLPpppuaVq1aJeTR0FSfnBSSTTp0Qd8+nyrxm222mWnevLkTz3zyySdeNSC1bt06pYHzo48+8qoBQnlncgPZ+++/75UDW98+1wAhx7zk8ylsueWWCQe9GsZkn74EOQiTy2Zq3FT+4ktQw0qyfL7VjdSwmSyfvus+TT2hxttk+VQuU/nMl5BeN1K5WuVrX4IaN5V/uuBb3UjlsuS6keq1qt/6EhgC74smyyzHNddcY2bNmlXmpwTfXj2WXn/99cTJTTbZxPTo0SOxX+0b+qi/+eabCTFatmxpunXrltiv9g191N9+++2EGKoQdunSJbFf7Rtff/21ee+99xJiqMK07bbbJvarfUMFluRKkQpsW221VbWLlUj//PnzzaeffprY32abbVIKNYkTVbohh1lypWG77bYzW2yxRZVKUzfZH3/8cUqDSteuXVMconWvqK4jH3zwQcroix133DHFIVpd0tRN7bvvvpvS4LDLLrukjPioe0V1HXnrrbdS5k3fY489UnqcV5c0dVM7c+bMFId8z549TXKP3rpXVNcRzXvvRjzIoda7d+/qEiBHajWfqetxLUfvXnvtleOK6jmtHpHTpk1LJFgOmd122y2xX+0bcuhOnz49IYYcFjvttFNiv9o35NBV/uKCGju7d+/udqv+d9myZSn1ag3v3X777ateLieAnGWzZ892u6Zt27amU6dOif1q35BD8MMPP0yI4VvdSM745Aajrbfe2rRv3z4hb6U3xowZY5J79Bf7fBygxRLk+rITkIOif//+iefsueee5p577knsV/uGKoCHHHJIQox9993X3HzzzYn9at9QAfTEE09MiCFZ5VD3JTz11FNm6NChCXFOOukk8/vf/z6xX+0bmgP4wgsvTIghWYcNG5bYr/aNO+64w1x11VUJMUaMGGF+/vOfJ/arfeOGG24wKji4cPXVV5tDDz3U7Vb976WXXmrGjRuXkOOvf/2rGTBgQGK/2jfOPfdc89hjjyXEkKw+OSlOO+0089xzzyXkGz9+vNlhhx0S+9W+ccwxx6Q04D7//PO2Iljtcrn0H3DAASkNZDNmzEjp8eriVetv3759EyM65CCMqiNAufjtvPPOiR7X6o390ksvletRFb+vOk+oQcUFOV8mTpzodqv+V43TP/7xjxNy7Lrrrub+++9P7Ff7hpxLgwYNSoghWW+77bbEfrVvyHl97LHHJsQ48MADzejRoxP71b7x7LPPml/96lcJMY477jhz8cUXJ/arfePRRx815513XkKM008/3QwfPjyxX+0b//jHP8zll1+eEEOy/uIXv0jsV/tG7cRE1S4J6YcABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgkEYAB2gaEHYhAAEIQAACEIAABCAAAQhAAAIQgAAEIAABfwjgAPVHl0gCAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIpBHAAZoGhF0IQAACEIAABCAAAQhAAAIQgAAEIAABCEDAHwI4QP3RJZJAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACaQRwgKYBYRcCEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwh0BDf0RBEl8JNG3a1AwaNCghXufOnRPbPmy0aNEiRb6ddtrJB7ESMmy++eYp8u22226Jcz5stGvXLkW+Hj16+CBWQoatttoqRb4ddtghcc6HDeUnyflLp06dfBArIYP0lSxfx44dE+d82FB+mSxf27ZtfRArIYPyy7Vr1yb2N9tss8S2Dxu9evUyzZo1S4ii76FPYZ999jFbbrllQqQmTZoktn3Y6Nevn+nWrVtClAYNGiS2fdjYf//9zZIlS6woDRv6V2U64IADzHfffWfl22STTXxQWUKG+vXre/1tUF6S/O3bdtttE7L7sNG8efMU+bp37+6DWAkZ9C1P1t8ee+yROOfDRps2bVLk861u26FDhxT5unbt6oPaEjIoP0m2z+222y5xzoeNeutqgg+CIAMEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgXQCDIFPJ8I+BCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4A0BHKDeqBJBIAABCEAAAhCAAAQgAAEIQAACEIAABCAAgXQCOEDTibAPAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIeEMAB6g3qkQQCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAIJ0ADtB0IuxDAAIQgAAEIAABCEAAAhCAAAQgAAEIQAAC3hDAAeqNKhEEAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQSCeAAzSdCPsQgAAEIAABCEAAAhCAAAQgAAEIQAACEICANwRwgHqjSgSBAAQgAAEIQAACEIAABCAAAQhAAAIQgAAE0gk0TD/APgQgUH4Ca9asMY0bN877QUuWLDHffvutva5NmzZ5Xx+XCxYtWmTmzp1rVq1aZbbffnuz+eabxyVpJUnH999/b9544w17r7Zt25r27duX5L5R30T6+vjjj81HH31kZItbbbWV2Xrrre1vgwYNok5eSZ6/bNkyK6Nk1TvWoUOHgt7VkiQmy02UD7zwwgs2xm677WZat26dJfaGc2rt2rVWf8pfmjRpYnbYYQez2WabVRUA2eD8+fPN8uXLjbZXrlxpZWnWrJlp3ry5admyZdXnKbLfhQsXmtWrV9s/5ZlOPv1uuummVaWzDSWx3333nWnYsKGpV69eXiLrvfz666/tNdKv/giVJ0DZk7Jn5a2u+CduCGVPfQNVbtHfJptsYrbccsvY1o3eeecdm059p3v27Fm8gj25g75xn3zyif3WbbPNNqZTp072e1kt4m0IZU+ni3rraoLb4RcCECgfgcmTJ5sJEyaY2bNnm2+++cY6jrp3724OPvhgs8suu4R68Pnnn2+mTJli4zrnR6gLKxRJhesFCxbYCnqLFi3qPPXDDz80t9xyi3nppZdSzskBeswxx5ijjz4674pVyo1isiPHxQEHHGBTc9JJJ5lf/vKXMUlZajJee+01I50oyA7lMAoKqvT+4x//MH//+9+NCmnpQY7QM844w/z4xz9OPxWLfb1vTz/9tJk6daoZMmSI2XHHHVPSpcr5fffdZ/71r3+Zr776KuWcHE777ruvOfbYY62jN+VkhDtffvmlOfzww20K9P5cdtllZuedd44wReV9tApm7733nvnss8+ss3ePPfao40SZOHGiueOOO8y8efNSEtOuXTtzzjnnmB/96Ecpx+O0o0ahBx980Lz66qv2G5GraKaKh/S95557mgMPPNA0bdo0TuIEpuXtt982jzzyiJk5c6Z18GaTUU5evac77bSTGTRoUGwrgoGCenZQ+eftt99uG/VUudN3olu3bmb33Xe33+2NNtoop8Qq95x66qk23imnnGLz4ZwXEaEkBCh7GlvOoexZEnMqyU02lLKnYElW1dfU2HfBBRfU4acy+J///Gfz5ptvGpW1k4PqiAcddJD9q18/PoN2r776avPvf//bJvVnP/uZGT58uGnUqFFy0r3Z/uGHH8znn39uy2XSjzrtqGE9OXzxxRdm7Nix5qmnnjKK74IaC/fff39z9tln1ymvujhR/24IZc8gxjhAg6hwDAIlJKCWy2uvvdZMmjQp8K7qSTF48GBz2mmnmVwVibg6QOWcuPnmm40cEHKC6kPdo0cPM3DgQHPYYYdZufWRHzp0qO3VFAii5uBee+1lLrrooqqv7FaLA3TUqFHm0UcfteqQYyKoJ64c2uedd57tVZdJb+64HExXXnllrFo85Wy5+OKLE47N//3f/zX/7//9P5dkK5fOq2drtqAe27JfZ8/Z4lbiXLIDVM9TQUuFUDmyfQpyTsupKQd8ssNMPSR+85vfmJ/+9KdWXJ1XATRbkO7EKN/ea9nuWYpz//znP83f/vY32yO+kPvJWaiGliOPPDJ2skkeOWDGjRtnKxCFyKeKlRqU1MiiBglC5Qi88sor5vLLL0/03kx/cseOHc2FF16YsxEXB2g6ufLvU/ak7BnXxvcNoeypUQ433HCDGT9+vH3Zt9tuO3PnnXemvPi33nqr/TYGdSxIjqjGzksuucSOSko+HtV2sgNUaVB9T98J30Yivf/+++aPf/yj+fTTT1NQq6566aWX2p66KourbpDe8J58gUYCio8aDuMUfC97ZmPdoOaFuiRbBM5BAALFERgzZkziA6g7qffEFltskeIInDVrlq0k7r333jZDzfRE9WJTS5SCerLFIegj/7vf/c62cLqPuBwVahFTT89WrVoZtWKqBUzHFOTo7dq1q21F0zVyoCroA/LBBx8knBr2YIT/5syZYxYvXmyHe2vId9g/9SJ0hZ5tt93WDqNOv1ZOi6iDehOrYqqgHrgbb7xxSpKkxxEjRph33303cVytn7179zZ9+/Y16lknx5taEBXES87fuPS0k2xnnnmmWbFiRSL9ese6dOli91VBPOuss1IKN5JPQ8rVK1tONg0/Vsu97FT2rOkM3PWJm0awoXSp8OKCWp2lz7feesv2mgvqge3iVsuvnJ9ycqpVPT2ooeXFF1+0eYh6qKkHrAvSnexT+Y7s0+U7smMV0JX3xCXI8SnHrWRVkKNdQ6c0/YLszvUIUZ6pPF+2p4YKOQXdkGLFe/nll+2Q8j59+sTKCap8UAX/5J7VkkWOM71rkke/+tN0Gnq/NDxa75vkUpBt613W+ye9MnzaYin7P01RoPzTfZ/1QFXkpA9nr0uXLjVPPPGEbfRUvpkpSP+PPfaYPa2eo/ojlJcAZU/KnprCh7Jned+zTHdXw3py2UV1P3V2cUHfRr2jrmHXjerQkHLpLfkbrzKMepL+z//8Tyx6Wv73v/+1I3KcLHICqkeo6hAqX8WtkdmlM59flS9/+9vf2jpg+nWqq77++ut29M0f/vCHRD1KZTPVf1QOU1lT757KMaqDSH/qoKAyaRyC72XPXIzjoYVcqeQ8BKqUgFqPHnroIZt6OQLVk26fffaxlQU5ilQh0LBiZY5ybA4bNszceOONVTO/myqpI0eOtEM3JKR656hCK8eSHJk6rxZQVZJcDzsNB1AvrGQHjRzAV1xxhR3eqiGg6knqenZFqXpV/pyTodB0qIel62WZfI84TmGQnD5ta0jujBkz7GHNo6hhxMm9J1386dOnm9GjR1tHoq5RAchNAeDiRPGrYUWyQQUVHI8//ng7J49Ly0033ZRoUFDrvBz5GnKbHORoe+CBB2wvRDn7//SnP1kHsN7nuAT1DpCzQoVk9dhSb0D9HXfccbEoLBfKSVMSaFiYgoZ4ayoCOcg0DP6ZZ56xTpi//OUv1imjOHIaqgd5unNl2rRpRj1/9S6rp7qmaoiD/p577rlEjxA5BNWLQN+H5MqDnLZueJzmFVYPazfUTHOFqdKhPzmBH3/8cTt35q9//WvhiDyo56feFwU5PdUDd7/99rPOzjBzBqtSJd3de++9Nm/R3MO///3vc/b0jVxwTxKgsohzQms0h8onem9UYZdd6l1S3q/92267zTrr3TB3TxBUrRiUPSl7UvaM7vVVPeb555+3CZBTTKMXksvO6iyg77qCRsydcMIJ5sQTT6wzDZXe4+uuu86WgzSKTk4rlRPiFFSnU+cc1WOVVo12VFlajZrVGtTBQL2UXUOfpuPRtEtq/FNjs3ShKX2kQ+la4dBDDzUqeyVPRyQmqgOrkVBO07vuusuO9oyai+9lzzB8GQIfhhJxykZAc5u41q9SP0TzbUYdVPmTk1OVPVUQgnqOqfecPhbKUBU08bUqFkELd8RtCLwclXIsKMjBpNYy14tQzoZzzz03pZVQLWOuQmwvSvqnXiYqAKiniFrOHn744aSz0WwecsghRTtAM6U8Dg7QXMOQNHzK9f6Us3DXXXfNJI5tJT355JMtr6ChPhkvLNMJvU9Kj4LmENQwzeQgx6hsVk5NVepVMMnmFFMBT0NhFDRdhWw1ypA8BF6tykqTekGqcOaCeujK6Sv5C1l0zd0nil8VHOUwU2OK5pjVNCLKG12QftU7VI0rCqpEaI63TEOMVEhVw4uCCqma0zXqoLkQ1VAk+fR9cHlnerpU6FYPevU4kBNYQ6+Sg5zfck5p4SQ5R9UzWKMMog5HHHGEdcqrQqCKkYbJFRL0jurbpx4UCpJfHKIM99xzjx26WI40qOFC722UQeUSN91H//79U3pYJ6dLDV6q4Lly3Omnnx6Y9rgNgafsaezIDcqexvZwpuyZ/FaXf9vnsqfoqaFODlA1/MlpqVEdySF5yp5ccyLr+6d8VWUFdTJR3SjTfP3JzyjndvIQeE2fpY4SOqbymoIacdXYqYZ4LQRUbUHlMdUJFH71q1/Zb5prmJZTVI7P5DqqRqaocToo6NuosqoYqSwkB7G7V1D8ShzzvewZhmH9MJGIA4FyEVDltVx/5UpzPvf9pGbBAAW1kAU5P3VOzj71YnLDx1SJVU9R9yFRnLgGN7xDDi9N7p1cgZcDV4UcFQBcyNZy6eb0U1xVvjT0POrw85//PMVxpI/XgAED7IddH/dMf8ktvRoCHxQvatlyPV8OQvW4UpDM2ZyfiiPnoT7yCrJ7FdqiDOol6IJ68qYHzenj0qjKTzbnp67VO6wWYAXXK9buxOSfhk+pcUGyuhZozd8qx6EWF1MvVtebKyZJzpoM9Rh3eaDylmTnpy5UnqNeFS6oh1om56fiaM4m/SnIPqMOalhQhUZB00wk553paZNzV3EU1KtSPeaTg4Ylq7eenJ8aMu9GHSTHqfS2eiO7qQekv0Kdn0q3viGqXKiHr4KGpkUd1DO8XGUXly9FKWPynGfJ71l6muTkVsOQG9anxltXLkiPG6f9culO941DcHkcZc/12qDsWVtejYN9ZktDtZc9JZsrf2qBoHTnp867qadUblM9I1vQ908NoAoaOeg6y2S7ptLnVMeR09DVE+T0U6cBOUDlDHbyVjpdhT5PvTsVVGZU79xkh6W+dWpw1mgkF7SfKehadVBQUJnWlYsyxS/3cd/LnmH5MQQ+LCnilYWAHH+q2Lh5LfUQOc5U4fMhuI9grjnnNKeZnIWaj1CVW30sNLT8qquusr1H48rCDWuX88FVgJLTKqeSetmpF6ycMprjLVtIHrqqe+dySmW7VynOaZVtpUk9juSs0MdLBRD1JpTjOlNQHDf8Rc7QuE5Enyn9Oi7nmSr5CppLMUxwDkIVYDV0J304eZh7lCqO0q8g51DydAvu/mpocCF9VXh3PP1XQ8015NPdO/181PsqaGkuVxVGlbf+5z//sUlSg4JarDXhvoZ/631VwS7onY1aBvd8V4FXw4jm9AwKvXr1ShwOY6PKh9UT1N07cXEEGy4NyhfD2J9688oBqMKznKDpDkXZuY7JOe8aLiIQK/FIzUWrIBvTsP5igzhJ3xrun1xeKPa+hV6vHsTK5++///5E70dVVGWvxYZszvBi7x32eld2kTzJFb2g69UbV2U2zYWmiq+ms9H3Mfl7HnRdlMcoe66nT9lzPYdkW6XsGeWbWf1lT9FzZcRMw8Bd+VNlkjDTwah8o3gqW+ve6d//aDW2/umq32mk2JNPPmnnNnXzfqsupD81WqvsqUYZlVfiHFz5LFPZRY3NyjM0rF31i1zfSNmByuf6Pip/iVJ+J5uvZc+wdoUDNCwp4pWFgBwKGraouQXfeecd+4wDDzww0VpSlodW8KZu/pAwwxVUeZLDU0MdNLfb1KlTzfXXX2/ZVDDJeT1KEzwrZBtu6Zy/ymyTW9GCHiSHp4bqyvGmIb5xCBq+oUVK5Dy677777Jx0atXU0DH1jPQ1JDufk7ezyauFnZz+VEiL0gGqSeQV5PzT9Arpjglnl9nkST/n5oMNyyP9+krt63285JJL7JxEGsbj5iiSA1+FU/1JV3Iode7c2Q5R0q8KZbne0UrJIOeSQjZnkPIUF9L1644n/7qGNc3vFHVwtqR836UrV5okoxygKnQHBRXI5QDV/GJRB9fLQZWDMN+/MOnVXGoKceghKb2pV5lGdqgRV9MUSE59J7I1joWRMw5xXNlFcoYJ/fr1s71i1NCia9XrR71BczV6hrl3OeJQ9qylStlz/QgWV3ah7FlrG1FsJZevkrezpSVOZU+lU+VP9dTM1Bip0SrvvfdeNpFSzqmuJeenQlgmKTeo4M5PfvITu1ihpuLRFCmunige+tN3QfmvGn5Vv1LZc9uakXLJ5bkKJjfwUa78mW3BRZfeMGVPPUTlPOnQjWwKfHAFDvpe9gyL0I9udmGlJV4sCSjz0PxgbpjA3XffnZjrK5YJziNRWthC4ZOQQy71EdeQVf0qaG4VOd3iGtQrSSFbhVsVIFVclem6j0omeTSXnet16BxYmeJW8rha+zRvoOY6Uy8sOdS0wqN6huaSqZLpLOWz5HhyrZTpQ24zPUet2nHRnxsOrQKHVqxMD3JSOBtzw13S4yTvq+VWq6wrFOI8Tb5XpbY1rYbyVs1BpV6hyY42LZojR6gKo5pfUauTqre25jt69tlnK5XEjM9xjhPlCUprUEiuQGSqaCRfpzk0FVTYjjo4+SRbJodmchrlVHLDkjMVuJ1jMFuhPfme5dx275byfdfbpdjnOf1l6lVT7P0LuV6L9akBV0EVPc3DK2dotQdXdlEDUthvnPKQo446yoqub6TmAI/DVDaZdEHZs5YMZU/KnrXWEO1WtZc9Rc+VP91IsHSibqi4yjDOsZkeJ3nflT11bIcddkg+Fctt6VDzTGohSw3fT5/CSItbykGqTj8aHi6nqaZq0nQ5cQiufJZt6L4rf6r8lmt6Kcnr9Bx1+dPJ5mvZM6z94AANS4p4ZSWgCpsyPtdFXJUILYJR7cFVIuRoCDs3lCqO+ii4RUs0VEuLDcUxOKe1FpzK1KtKThg5cjUfjGsxyySL5il0IeqPhEtH8q96WN155512CIeOa64zzd/jFudIjltt2xri7xwoLu2av0hB8skBmCskO+vdRzbXNeU6L0e16zGmXpCqyKeH/v3720NqdHGt1Olx3L4WPXFDelzh1p2L+68KzOoRqvdQzpo999wzcNiVWqblDA7jTCy3zMnvv4ZVpQc5BDV6wAW9i9m+GXLCuVEGyfd211f6N9mJFyRfenpUkXC98oIc8DrnHP1Rv3tKuxvypW2NZHBp134hQd+YN954w14at/dPi5D17t3bpk1TZGhYfLUHV3aRHOrFEzZoDmL1BlVQxVAjJcI6UMM+o5TxKHvW0qTsuZ5FHL4PtVpZv0XZM51I6n6cyp5KmZvWRuUOlR3Tg8pgynvkhFL5M1tQI7CchQrKl7UQUrUEjYrQPNHSj+Yp13amERL6XrgyTNTyuTxg/PjxgR2YtIitK4+obqR42cIzzzxjT2sag+Rva7ZrynXO97JnWG4NaipFl4SNTDwIlJOAHBZyEqoCroq4nGWulayczy3nveXElONPrUNyMPXs2TOnE1DpEQsNDdBcbwpa9EGZrIbmuN6WQ4YMseei/KeekcrY5XiQ3jSvYKbeR5oLLrkHWnq65fyUo0py6j6qVMYxaLiYHGf6iMkxqAKMHNRiIGev5FQvyHHjxtnky4ZV2IljUKuya+GUk15pVu8/OYrkMNTwTn3otS0Hd/Kci8nySGcqoGllSwUV1g855JDkKJFsq9VZ9ql8RXJIZ1px2wWlU0NyxEBDhzXXpOt97eLIcaNe2U6fci6pki/bjzJIH65QLIdYnz59ciZHeaqcR+q1duihh9q5XZXXqOFJduxaqMVFf1EG9c6SXjTfo3Sk1nbNDy19zJw50/a+1jFVBlSg1pQLmjpk7733rjO3qY5rkno5YiSrenNnm7ajEnIr3crX1UNS8y2qx5zyiiC7UqVAc0SrZ6HSr2lSkofB6fuiBbBcQ4zmp8y06F4lZNMzJJ90ormApUPpSmlKTneYtKhRRg5F9b5X0PupubIzfWfC3LMccaQ7VYJkn1pkQCuoB+myHM8uxz01dYGm4VHer94ryjs1VDFXkH0qL5ItqryiRiPZuRpLXW+oOOQvyXJQ9qylQdmTsmetNZRvy/eyp+pv06ZNs/mnpiBS+UpOUTcdjHpIqryp+qEazXRc83ym15E0+krfOzlBFbQgXRx6gKpM4npAat55yZMt6LugEYM/+tGPbE9P/W5bMxJH33GVZZMbr+NQt1X5UPONq0ysxnWlU+VnlSUfffRRWx5RvUdlb33jXP3BjYpMZqFpcVznHpVPNdIqyuB72TMs23o1CszdrSfs3YgHgSIJyPGpHnVqNVMBXJlGroy1yEeW/fLhw4cn5uBTpb5v374201RLWK6gjFYVXxf0EXGvrBw6cQhyLCjzV5BzUM4+fcCCeimlp1eVfznetFiLKo0KaiFTL0t9HOMeVChRb2U5ZBSUZi0EoQmxDzjgAHtM84XGdREkOfbUKzBs0Lxucp65oF6T6h2kCq4cHQoqwGnIddQOGJfGv/71rykt8HIAqreWnNWq7MlmNZWBWnPlvJaTV4VXBRU+5Qx2PWMVV4UZd949I4pfORe0SJeCGgs03LSYIOea9KnCnAp76UOWirl3odeqR8CJJ56YmFYh6D6nnnqq/UZo7kEFvXvKWzXhvuRR3qSGJFVAFOT4dUOW7YEI/6mnrdKvldsVVOgeNGiQdRbJUSjHoSpRer9cEA+3oqgK59dcc42dmsHJp3xXNqpvRdRBzjN9H1yjndKjPFLvnnqbaYoNfd/1XinfV8OR3jUNm1beKge48lZXOVIcTekQtXM+E9eHH37YjB492p7WVBJaPbaag/JENfa4oHnbNK+zvm258kDZo4Y+qvFCIbnsoqGRcajkOrn0S9kzmYaxlXzKnqlM4rRH2TP+ZU/p6Be/+EVidJHKVWoc0mKh6oWnFeC1WKDqEPqWq3FeeazKMJruRuVPlYFcUNlbZfA4hKuvvto6CJUW1SHcaKtC06ZGXNUHVWbItOhlofcu9Drlf6qDZwqqz6tjhHwWbqoXrWGiOrAa5VV3eOWVVxL1f5Vz1EkkDmVr38uemXSWfBwHaDINtmNBQJm+m+9Ei8yoIlvNQR8wrRqePKxUlUDXWy6XbI8//rit5LreWS5+XByg+mhddNFFtpeIS5sqgertmivIMaHV7l1QBfc3v/lNwrHjjsf5V44jDXG57bbbbCFGMqhF1PUYjLMDVGl3vbPUQ1lOTP05Z0o6d80VedBBByUO6xpVZpND3Cr+em809Oahhx5KNB4kpzfstgovKnxqxeM4hFI7QOMgU1Aa1LNcDmq1vKcH6UJz8cpxpgVpXI+E9HhuX713NWxeLeBxCSpgy6mXnr8HpU+9DDWcXI56F7SiqnPQq5edVuCOwxB4lz7lJSNGjEj5Prhz+fyqsqHGRK0iG9egxkl9C9SjRT1VNSdmtQcNz5RDXd8KF/Q+hskH1fNeQ+Dd1BPu+jg6QJU2yp5OQ+t/KXum8ojbHmXPeJc9ZS/KUy6//PKURsBC7EjffjnkXA/SQu5RymtK7QAtZdpKdS81TKu86EZaJd9XvUHVgUQOa/UQ1TcxW1ADoMovGhkSl+B72TMXZxyguQhxHgIlIKAKqubyfOKJJ+xweA3xVqU3bJDzVJmtm3NE18XFAaq0aNjfHXfcYYeCa/VfZawarporqIePekApqMXskpoZOfShr8YgWfQR1HDW5BBnB2hyOpO31QrrnKFycsqxJAeUnC/Jw/kVz33Q1WNbjnAN8YhjkH5UkFFvOvX2CRs0jcWPf/xj24vXLewS9tpyxttQHKBiKH2pp7h0KDtUT0k5YPbZZ59ET0e1wKsxxfVGT2cvO9XQ97hUIJLTp3dMQ9jl7A0K6iWpXuTq8Zs+RE4LByj/1byLiqOCeRyDhlPLOahvWBhnr5NBQ6/VEHrkkUfmPXze3YPf4ghIZ7LPT/5vMccxY8bYil+Yu8o2NYWBygduoYi4OkDDyFNtcSh7BmuMsmcwl6iP+lj2VAOtGuA1VZbrER+Wsxo19e3TlFJxGNXh0r0hOECdrOql+/LLLyca2NV7V+XJ5F6vmv5GdXw3WsVdq18Ni1fnCY18iVvYEMqemZjjAM1EhuMQKAMBVQZU8FImmWk+xWyP1QdUw+xUEZk0aVK2qJGcUw8YVeJ79OgR6vmak09OKfUW1fw4yT2bQt0gZpFcZUM6cqEaHaAu7cm/6tUk/bjFuXRO9qzeQdKfWkLVSzLuQZVwFWg+/vhj+6ceanKwOfnkbFIPQfXS1px3Gq6koUtxC0qvm1dIw541pxLBGK0Urjm31PNevQY1FYPyo7iPJFBvHuWdytv1pzlB1ZNTFSClP9PcmWpw0lQO1RKUR+obqD+9e/oG6HuovETOaTlwJat7/+QAJcSDgJwTamBQ2UUNXvkE2enYsWNtT2ANoT/55JPzuZy4RRKg7JkKkLJnKo8477myWbWXPcVYHST07VP5U2UUfftU/lRvQ337VP5UA6/KK6oTxWUqqXT70ChNN+3VUUcdFduG1/R0l3NfZTY11Gv6Ak2/pGli5CzVlD3Sa1zDhlL2TOePAzSdCPsQgAAEiiSg3k6uh656RGreVwIEIAABCEAAAhCAAATKQYCyZzmock8IQMA3AjhAfdMo8kAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIJArUz6ScOsQGB+BDQkCtNpK9hqxo6pyEQGo6qPw3BqoYht9loIl/8h0yjPz/fP+UnWqVTeYv+NC+h8hUNf9evVuis5oB86K+a7Ze0QyBKApTNKJtFaX+5no19Yp+5bCTK89hn9dqn73UH917gAHUk+I0FAc31onkuNY+GFv7JtliJVtvWHH2aJ0WLYWiocZwmiQ4Ciny1VNBfLYu4bPlun5pj8ZFHHjEzZ8408+fPz7oqvFZxVt6y0047mUGDBqVMeB4XfaWnA/lqiaC/WhZsQQAC2Qn4/u1Dvlr9U/asZRGXLeyzVhPYZy2LuGz5bp++1x2C7Igh8EFUOFZxAl9//bW58847rfMzm9MzW8I04fDpp59unaHZ4kVxDvlyU0d/uRmVK4bv9jl58mQzbtw4O/l8IQwbNWpktHDHGWecYXuIFnKPcl6DfNnpor/sfDgLgQ2VgO/fPuTLbdmUPXMzKlcM7DM3WewzN6NyxfDdPn2vO2SzCxyg2ehwriIEtHLa0KFDbY/P5Aduvvnmpm3btkY9eTTUXcPfNUxV3bPVGqNVRRcsWGBXz3PXqQeo7qVV6eISkA/9OVvEPh2Jyv2OHz/eXHPNNSkPVH7Srl07u9qmVmdU3qJW9zVr1tj8RYUeDY9fvHhxynXqcT5q1Ch7XcqJCHeQD/0584ujfbq08QuBuBGgbEbZzNkkZTNHonK/vH+8f87aeP8cicr9+l53yEUSB2guQpwvKwH19hw+fLiZNWuWfU63bt3M0Ucfbfbcc0/TqlWrnM9eu3atUdftSZMmmQkTJlgHqS6Sw0ND4qMOyJddA+gvO59yn/XdPtW6efHFF9uh7nJ6HnbYYWa//fYz22+/vXV45uL75ZdfmmnTppl7773XfPrppzZ69+7dzdixY3NdWpHzyJcdM/rLzoezENhQCfj+7UO+7JZN2TM7n3KfxT6zE8Y+s/Mp91nf7dP3ukMY+8ABGoYSccpGQE7Lq666yt5fjomRI0ea+vXrF/S8l156yVx44YXWCaqeMHfccUfB9yooAQEXIV8AlAyH0F8GMGU87Lt9HnHEEbaneNOmTc11111nevToURBN9To///zzzWuvvWavv/TSS82+++5b0L1KeRHyhaOJ/sJxKmWse+65x047Ucp7unsdd9xx5vjjj3e7kfwiX+HY46A/3799yBfePil7hmdVqpjYZ3iS2Gd4VqWK6bt9+l53CGMHhXmawtyZOBAIQeCtt96ysbbbbjtz0UUXFeWwVI/PM888095PCyhpkZOoA/KF1wD6C8+qVDF9tk9NkaE/hQsuuKBg56euV+/RK6+80rRp00a75sUXX7S/Uf5DvvD00V94VqWKqekkli5dWpY/ObSjDshXuG7joD+fv316N5AvfA5B2TM8q1LFxD7Dk8Q+w7MqVUyf7dP3ukNYG8ABGpYU8cpC4M0337T37dOnj2nYsGHRz+jfv3/iHp9//nliO6oN5MuPPPrLj1exsX22T1eAUb6yzz77FIvKqBdpr1697H3ikLcgX34qRX/58So29rHHHmuns9HcXi7IEd26deui/zRvb9QB+QrXYxz05/O3T+8G8uWXQ1D2zI9XsbGxz/wIYp/58So2ts/26XvdIazui/c4hX0S8SAQQMD10HI9qwKi5HWoRYsWdm4/t1hSXheXITLy5QcV/eXHq9jYPtunk0021aRJk2JR2eu1MJtCHHowIZ9VRV7/0F9euIqKLGenFiTs0qWL7T39ww8/2Pfw1ltvtQ7Qom4eg4uRLwZKKCIJLv+k7BkOImWzcJxKFQv7zI8k9pkfr2JjY5/5EYyTfTrd+Vo3CqsZeoCGJUW8shDo0KGDva9rkSj2IbqPnJ8KWugk6oB8+WkA/eXHq9jYPtunk00rupdqOozXX3/dIo9T3oJ84d8C9BeeVali/vSnPzXnnHOOvd2SJUvMZZddZuQM9SUgX3Vq0n0fKHuG0x9ls3CcShUL+8yPJPaZH69iY2Of+RGMk3063fladwirGRygYUkRrywEunbtau/7zDPPGFc5LfRBy5YtMzfddJO9fJNNNjHt27cv9FYluw75wqNEf+FZlSqmz/YpJ6Ubfnv99dcbrapZTNCk6G+88Ya9Rbdu3Yq5VUmuRb78MKK//HiVMvbBBx9sevfubW85ffp0c//995fy9pHfC/kiV0HeCfD52ycYyBfeJCh7hmdVqpjYZ3iS2Gd4VqWK6bN9+l53CGsDDS6pCWEjEw8CpSbQqVMn8/DDD1vnxPPPP2/kuNSCSA0aNMjrUe+//75dQf69996z1x199NFmzz33zOse5YiMfOGoor9wnEody2f7bN68uVmwYIGRbWnOTuUNGo7bqlWrvDBquLscNjfccIO9rmXLluass84yzZo1y+s+pY6MfOGIor9wnModa9dddzXjx4+33/p3333XHHbYYaZRo0blfmzF7o98FUNdkgf5/O0TIOQLZyaUPcNxKnUs7DMcUewzHKdSx/LZPn2vO4S1hXrrakLYyMSDQDkI3HvvvWbMmDGJW2uxit133906K9SLUw4LzbfVuHFjO7xdq6+uWLHCrvA8d+5cM2PGDPPxxx8nru/Zs6cZNWpUUSvKJ25Wgg3kQ3/YZwlepAJusWjRIjNs2DAzZ86cxNXbbrut2W233YyGgbRt29ZoQQ7lL2p0Ud4ih9nixYvNwoULzezZs83MmTNtfqMbKM51111n86fEDSPcQD70F2f7TH811Ng5evRoe/hXv/qVOeGEE9KjVPU+8lWX+iibUTajbBbdO8v7x/vH+xfN++d73SEMVRygYSgRp+wENDxRFSM5IIoJGmY3cuRIo8l94xSQL5w20F84TqWO5bN9fvPNN2bEiBGJVXELZafe6cOHDzcDBw4s9BZluQ75wmFFf+E4lTOW2tvvueces3LlSqOe1IMHDy7n4yp+b+SrOPKiH+jzt09wkC+ciVD2DMep1LGwz3BEsc9wnEody2f79L3ukMsWcIDmIsT5ihFQr6sHHnjAFtg0OW/YoGF0+jgcdNBBpk+fPmEvq3g85AtGjv6CuVT6qO/2OXXqVOt80TyebqG0MIw7duxoBgwYYI488si8h8+HuX+p4iBfMEn0F8yFoxCAwHoCvn/7kC/Y0il7BnOp9FHsM5g49hnMpdJHfbdP3+sOmewFB2gmMhyPlIBWbZ41a5Yduqrh7vpTr5GGDRsaDZHX/HsaHq/hrJrXT8NYqykgH/qLs736bJ8a4q6h7fpTC+jy5ctt/qJFkpo0aWLzF027obylc+fORg60agrI19Q6qtFfNVktaYVAPAj4/O0TYeSj7BmPNy04Fdgn9hlsGfE46rN9+l53SLcgHKDpRNiHAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEvCHQ0BtJEGSDITBu3Di7orMEPvvss2M9LLUQpSBfIdTicw36i48u8k3JvHnzzC233GIv00JJWqnap4B81a1N9If+4kzAd/vk2x5n68udNvSXm1GcY6C/OGsnd9rQX25GcY3h47e9flxhky4IZCKgOfyeeeYZ+7d69epM0ar2OPJVrepswtFf9epv2bJlibzl7bffrl5BMqQc+TKAqZLD6K9KFJUhmegvA5gqOcy3vUoUlSGZ6C8DmCo5jP6qRFEZkon+MoCpgsM+ll1wgFaB4ZFECEAAAhCAAAQgAAEIQAACEIAABCAAAQhAoDACOEAL48ZVEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAQBUQwAFaBUoiiRCAAAQgAAEIQAACEIAABCAAAQhAAAIQgEBhBHCAFsaNqyAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAIEqIIADtAqURBIhAAEIQAACEIAABCAAAQhAAAIQgAAEIACBwgjgAC2MG1dBAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACVUCgYRWkkSRCIIVAvXr1TIMGDewxbfsWkK+6NYr+qlt/Lm+pX9/P9kHkwz7jTAD7jLN2cqfNZ/3xbc+t/zjHQH9x1k7utKG/3IziHAP9xVk7udPm27e93rqakFtsYkAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQqD4CfnZxqT49kGIIQAACEIAABCAAAQhAAAIQgAAEIAABCECgDAQYAl8GqNyyeALqmDxnzhyzZMkSs3z5crNs2TLz/fffm+bNmyf+2rdvbzbeeOPiHxbBHZCvuUF/ERheyEf6bp/KT+bPn5/IW1auXGmaNGlimjVrZvOXli1bWvsMiSt20ZAP/cXOKJMShH1in0nmEMvNRYsWmaVLl5rVq1ebb7/91jRu3Nh+H/SNaNGihdloo41ime6wiUI+9BfWVqKIh31in1HYXdhn+myf+t4tXLjQfvv0/ZPvxdWN9LvpppuGxRTreDhAY62eDS9xzz77rJk8ebKZPn26+eabb7IC0Bx92223ndlll13MwIEDTY8ePbLGj8NJ5KvVAvqrZRGXLZ/tUwWWBx980Lz66qtm9uzZJtfsL/rI77zzzmbPPfc0Bx54oGnatGlc1BSYDuRLxYL+UnlEvYd9pmoA+0zlEfWeGsEmTpxonnzySfPRRx+ZVatWZUyS5kLr3Lmz2XHHHc0+++xj9t57b6P57eIckK9WO+ivlkVctrDPWk1gn7Us4rLlu32+/fbb5pFHHjEzZ860nUOy1Y/UQUTfvp122skMGjTIbL755nFRU17pYA7QvHARuVwE1Nvz6quvNjNmzCj4ESqI/vrXvzbbbLNNwfco14XIl5ss+svNqFwxfLfPf/7zn+Zvf/tb1kptNrb64J900knmyCOPjGVFF/myac8Y9JedT7nPYp/ZCWOf2fmU8+zXX39t7rzzTuv8zOb0zJaGTp06mdNPP906Q7PFi+Ic8uWmjv5yMypXDOwzN1nsMzejcsXw3T7V4WzcuHG2U0ghDBs1amQOOOAAc8YZZ9jRc4XcI6prcIBGRZ7nJgioq7UKj+oh4oJaFLbcckujzGfBggXmhx9+sKfkJOvWrZs9puMffvihHSbvrttkk03M9ddfb3bYYQd3KPJf5EN/zgixT0eicr9yfKqC64KGMnbs2NHowy3H74oVK+wpDWmUk1PTbihvmTdvnvnggw/cZfZXrZ3nn3++idMK8ciH/pyRYp+OROX7BCc/AAAxXklEQVR+ef+q9/3TVAxDhw61PT6TLUblz7Zt29qGE30X9M3QMEANDVRPoC+++MJ+I7777rvEZeoBqnsdddRRiWNRbyBfSztVAfoztuEW+6zsG8n7x/vnLC6O34fx48eba665xiXR/up7165dO7PFFlvYKQaVd6pH8po1a+z3Tz4Z+TQWL16ccp1GRIwaNcpel3Iixjs4QGOsnA0haepmPWTIEOtokFPhZz/7mfnFL35hWrVqlRBfhc777rvP3H333bYQqhd2r732sufXrl1rXnjhBfPvf//bTJs2zR6Tk0kOjzZt2iTuEdUG8hmbaaI/7DOKd/C5554zF110kX20nJ6qAKgRJXm44rvvvmv+/Oc/mzfffNP07t3bXHnlldY5qovmzp1r8xblL25KjmOPPdb2NI9CnvRnIp8x6O/f1kaxz/S3o/z7vH/V+/6pt+fw4cPNrFmzrKGoYf3oo4+2U54klz8zWZHKnho2OGnSJDNhwgRbNlVclU81JD7qgHzZNYD+svMp91nsMzth7DM7n3Kf9d0+1fPz4osvtlOByel52GGHmf32289sv/321uGZi++XX35pfS733nuv+fTTT2307t27m7Fjx+a6ND7naxw0BAhERqCmArGub9++9u+xxx7Lmo6auftsvP33339dTcGzTtwap2fiXtdee22d81EcQL5a6ugP+6y1hspsnXzyyTZPqHFarqvp6ZnxoTW9e9YNGzbMxv3DH/5QJ15Nj9B1gwcPtuf33XffdTU9gOrEieIA8q2njv6wT96/0hPwOX+padRKlBdrKoLrlIcUGqZMmbKuX79+9n41owiKulehaUi/DvnSiWTeR3+Z2ZTrDPYZniz2GZ5VqWL6bp+HH364/V7VrJ+y7q233ioYW80iSevOOuusxLf0mWeeKfhelb6wfnxcsaRkQyRQk8lYsXv27Gl7f2ZjoMVINNeEViXTsLP08POf/9wccsgh9rDuq6FKUQfkq9UA+sM+a62h/FvqGeiGsI8YMcIO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" width="672" /></p>
<div class="sourceCode" id="cb26"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb26-1"><a href="#cb26-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_OLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-3" class="section level2" number="8.2">
<h2 number="8.2"><span class="header-section-number">8.2</span> WLS, no trends</h2>
<div class="sourceCode" id="cb27"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb27-1"><a href="#cb27-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb27-2"><a href="#cb27-2" aria-hidden="true" tabindex="-1"></a>estimation_results <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_WLS_notrend_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb27-3"><a href="#cb27-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>sogo_number, </span>
<span id="cb27-4"><a href="#cb27-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb27-5"><a href="#cb27-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb27-6"><a href="#cb27-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results, include.ci = FALSE, digits=3,)</span></span>
<span id="cb27-7"><a href="#cb27-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb27-8"><a href="#cb27-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb27-9"><a href="#cb27-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_loan</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb27-10"><a href="#cb27-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb27-11"><a href="#cb27-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb27-12"><a href="#cb27-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb27-13"><a href="#cb27-13" aria-hidden="true" tabindex="-1"></a><span class="co"># graph</span></span>
<span id="cb27-14"><a href="#cb27-14" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_2nd_safetynet</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb27-15"><a href="#cb27-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;sogo_number_WLS&quot;</span>)</span>
<span id="cb27-16"><a href="#cb27-16" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_covar</span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0HmGRVmTDgMzDkAWZgkDCADDk4ZFBAorqCu0paUEEMLKYVV5EFE/yCgogKKAZgFwOoCyZc0AFBkoCIwgICsgIzgKQFJKchDNR/v4tV3Lpd1V3d1X27uvs9z9PWDSfd99YMztcnTKplKUkECBAgQIAAAQIECBAgQIAAAQIECBAYhwILjMNn8kgECBAgQIAAAQIECBAgQIAAAQIECBDIBQRAfREIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi3AgKg4/bVejACBAgQIECAAAECBAgQIECAAAECBCYjIECAAIGxI3D22WenJ598stHhbbbZJs2cObNx7mD4Be644470u9/9rqninXbaKa200kpN1zo5efHFF9OZZ56ZarVaU/b1118/bbrppk3XOj0555xz0hNPPNHIPmPGjLTjjjs2zm+66aZ0/fXXN87j4O1vf3taaKGFmq6N9MncuXPT7Nmz0xVXXJH+7//+Lz344IPp4YcfTksvvXR61atelf+st9566S1veUvaeuut0+TJ/i/KSL8T9RMgQIAAAQIECBCYKAKTsn+ENf8rbKI8ueckQIDAGBRYa6210pw5cxo9/+EPf5j23XffxrmD4Re44YYb0kYbbdRU8Ve/+tV08MEHN13r5OTKK69MEbQupwhYXnzxxeXLA57PmzcvDyC+8MILjbyf+tSn0jHHHNM4P/roo9Nhhx3WOI+Dxx57LC/XdHGETn7605+mI444It18880dtzB16tS0zz77pCOPPDJNnz6943IyEiBAgAABAgQIECBAoJWAKfCtVFwjQIAAAQJ/F5g1a1Y+OrEIUh4RWrzX3/Gvf/3rlrejvqeeeqrlvf4u/v73v0/F4Gfk/Yd/+If+ilR2LwL122+/fdp7770HFfyMDkaA9tvf/nZae+2188/KOq0hAgQIECBAgAABAgTGpYAA6Lh8rR6KAAECBIZLYNKkSSmmvBfTcAdAn3/++XTRRRcVm+jo+LLLLmvKt8QSS7QcYdqUqYKTe+65Jzcr92+wTT/66KPpIx/5SDr88MMHW1R+AgQIECBAgAABAgQINAQEQBsUDggQIECAQGuBN77xjU03Yv3K2267renaQCcPPfRQ+p//+Z9GtgUWaP5PcLvRoY0CLQ5++9vfNl3dYYcd0sILL9x0reqTGMn65je/Od199919mt5uu+3yEZ2xbum1116brwV6yy23pAsuuCD953/+Z3rve9/bcu3Po446Kn3rW9/qU58LBAgQIECAAAECBAgQ6ESg+V9fnZSQhwABAgQITDCBN7zhDX2eeLCjQCPI99JLLzXqeec739k4joPBBkBj1OhVV13VVEcvTH8/5ZRT+kx533zzzVNM14+A7Yc//OH01re+NW2yySZphRVWyKe5v+lNb0oHHHBA+t73vpduvfXWtN9++zU9V5zEmquxeZJEgAABAgQIECBAgACBwQoIgA5WTH4CBAgQmHACq622Wlpz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CBAgUJGAAGhF0OOlmVibLoJVERSqp1jjLRvBlK+FF2s9xjqHERyMAMv73ve+fN3Het74PP7441MEEftL2XTh9POf/7wpSzY1Pe277755gCiCDrGmZAQuI6iajRJtyhvrBf7jP/5j+t///d+m68WTCLjF2n0RbCmm2K348MMPT9kow3w341jjL5v6nq8zWs8Xz/elL32pftrRZxXP1FFHRihTBHiykbSNTWHifUVg7stf/nJu+ZOf/CR96EMfytdxLHch3sFvfvOb8uVRP4/AVmzgEkHNSLEuYzxDBCojwH7aaaeleK/xrMUU97IlANJ+++3XCOzG+pXZFPl05plnpghwxbqGrdaV/X//7/91HMyMNrOlGBoBuAgM/tu//Vs666yzUjYlPl+jMwKqO+ywQ7F7+S8vImAW6/YOlKL+qLO+7mU9/2677ZZOP/303CZ+kRDPHH9OshGR9Sz555133pl23333jnfuju/R+9///qb2smnvKZsK36g3vmfZqODGeZUH22yzTdNar/Edueaaa/rtQnn9z3LAMzZEKq75Gb9I6O/dxLu44oormtrslQBobHr08Y9/vKlvcZKNWM0DowcddFD+34ry96lPARcIECBAgAABAgQIECAwnAKVjDPVyLgRyEZ0NU1vzDa0qWVBz36fLxtxVovp79n3tvGz1157tS1z6qmnNvLVy2QbrPS7RmKsu7jnnnv2KZdtMFOLdQtbpVh/sl5//TOmkWabeLTKXnv++edrH/vYx/qUqZeNKbvtUlXP1K79kbpenC5ed4jPmAbe3zqbBxxwQB/HbFRx226O1hT44jPFVOdsw5+WfcwC8bVYg7GYv34c1z/xiU+0/B7G+oZZILFPuWzEZct24mJ5Cny9nZg6ngXFWpZ78cUXa7FWZT1v/TML0LbMX78Yay2W1xSNdn7605/Ws/T5zAKYtfKU7mjvhBNO6JO3fqE4Bb7et/iM71f8nRN/9sIqCwrWDjvssPxavexofGajxpsss1+G9NuN4tIBCy64YC2WVCint7zlLU119vcduO6665ryLrnkkv2u7VrlFPh4rvgOZL+Aaupj8b3GcfaLplo2yr8WSxnEshnxfiUCBAgQIECAAAECBAiMlECMTpIIdCwQm8AU/yGbjebsqGxsnFIsF+sVRlCmnGLznFgfr5g3/qHc6QZKrQIvrTYneuKJJ/qs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Ac3ylN3i/eLxt7/97XT77bcXL6W9994736ikeDGmxEfgp5iOPvroPiO3ivfjOPoRfXzyySfLt9qeV/VMbTswDm4Ug0HxOBHUrG8S09/jRcC+uDFNf3nH6r0I8sbIylj6YaB0zDHHNE0ljs12Pve5z7Us9vrXvz7ts88+Tfdi9Giny0VE0C7+PBbTW97ylrTWWmsVL4354ylTpqTXve51jecojwCNv+fWWWedxv1OD4pB05tuuinFDvP1FIZRby+mT3/60326Ff+d+MhHPtL03euTqcWFWFJgt9126/OdO+SQQ1oG7VtU4RIBAgQIECBAgAABAgRyAQFQX4RBCRR3bY+CMaLrxBNPHLCOCH6WR00ecMABfcotscQS6VOf+lTT9diwZdNNN813lG+6UTiJ6ZGHHnpoOuiggwpXU4rdrNuNWvvMZz7TtOZobKoRU+Nj1FqrYFIEdGLa/y9/+cumNgY6qfKZBurLWL0fQeRiiuUK9thjj36XIfjKV76SDjzwwGKxcXscf75ieYp2u93Hn49Yi/fLX/5yk0H82Vh22WWbrhVPwjACfPUUa/bGVPaBpt3feuut+bTvp59+ul40//zYxz7WdD5eTorrgF5zzTX5CPn6sxUDmfVrnXwWy4Xj7373u0ax4Zj+Hr/M6ean3S+BYomU97znPY2+1g8iGB6B2y996Uspvh/tUnzH4n789yLW+YwRpMW0/vrrp3e/+93FS44JECBAgAABAgQIECAwsEA2ekgi0LFAtmZnLZueWcu+WU0/W221VS0LDNayqbi17B+weX0PP/xwLVs3tPaud72rlu1s3JQ/m9Jcy9YTbNluFnys7bzzzk35o71stGgtC9jUfvOb39SyYGXezs0331w77bTTatlotT75o80saNCyjfrFLHjbp1y0la1ZWsv+IV/7xCc+UXv7299emzlzZp982dqJTdeyUU71avt8VvlMfRofwQtZMKLJ4Lvf/e6gWsumsTaVP/XUU9uWL+eN9xTvJQus1LJRibV77703/7594xvfqBX7lS3dUNtwww2b2rnkkkvatlMsG210+kzZaLWmNqJsNnKvbTvFG+ecc05T2ZVXXrl4u+k427CoKW88X7QVP1tssUXtZz/7WS0LTuVlsg2gameccUZt++23b+Sp5416sunFTXW3OsmCpn3KRh3x5+IXv/hFLVsGIy82b968WrZZTy0LtOZ/Vuvt1D8PPvjgVtXn17IR2U1tZCN82+btxRvx90z9OcufZ5111pC6nAX5a+W/Y+p1x/dlMCn+bqqXHa7PbH3jtl3IAvG1LIDbb5vZqNhaNrqz9qEPfaiW/TKqtu+++9Y22mijlt+dep9XWmmlWvYLsbbtukGAAAECBAgQIECAAIF2AqndDdcJtBPIdm+vZbu1t/3HbbZjdy0b9dj2fjairJZNE21XfX49Apytgpr1fwjH52KLLda2jWj/v/7rv/pto34z26SjbT3F9urHEXD65je/2SeoFoGi/lKVz9RfP4bz3lCDhfU+lIOa/QVATz/99EG9p/r7ivcbAZb6eXxm69jWu9Dnc6jPNFoB0C9+8YtNz1Z/zgji14/Ln8svv3zt+uuv7/PsrS48//zztXe84x1t64q64890MRBbbu9973tfLX4J0C6N9QBoBPxaeUeQsN0vetpZFK9nI0v7uGfrjdaykZvFbAMeVx0AjQ5FEH6XXXbp0//yd6PT8xkzZnT8nR0QRAYCBAgQIECAAAECBCacgCnw2b++pMEJbLLJJvkajNlonJYFs4BJKk99rWdcd911U0zXHWgH+Vib8KKLLsrX6cwCK/XiTZ/ZiLOm8/rJBhtskK/7+M53vrN+qd/PmAZ87rnndrSmXmxOcvbZZ+fr2ZWnG8du2v2lKp+pv36M1Xv77bdfPoU7G9nb0SPExjQx3bbdEggdVTIGMsU0/1jHs/znpN0U5VmzZuXTqbPRdh09XThmo0jT5z//+aaNw4qFY63G7L+exUv5cazxm42iTv/5n//Zp399Mo/hC1mgM7XaAT3WBl1qqaWG/GTFafD1SrLR9ikLttZPe/Yzlk6Iv1ezEcn5RnRD7Whs0BXLN8SGeJ1+Z4falnIECBAgQIAAAQIECIxfAQHQ8ftuR/TJ/vEf/zHfbCg2RelkM47YHfj4449P2RTZFP+A7yRlI0nTKaeckrKRavl6j9mIz7bFIvgTa89loz7zDTPKm+a0Lfj3G9lIpfwf2Nl01ZRNxcx3GI61ESOoGeuIxv1Y7zT+Ef7Wt741L1UOgMZanwOlKp9poL6Mxfux+cl1112X/umf/ilF0KlVigBpvK8rr7wyffKTn2yVZdxdi43C4hcL/QWI4nscO8BnI7jztRUHixA7ecdu7h/84Af7XTc06o3AZwSt5s6dm4477rjUadB6sH3qpfzFdUDr/cqW8qgfDumzVQB0ONb/HFJnhlhozz33zP/e/P73v59vSDd16tSOaor1P2Nd5/j7P9YDHQtB344eTCYCBAgQIECAAAECBEZFYFKMeR2VljU6bgRi04rYqChb/zP/ieMYnZlNs00rrLBCvkNyBF+6Tc8++2y+S/ucOXPSgw8+mLL1C/ORRVF3jPocjjYG08d4vuhHPf3qV79KERgeTOq1ZxpM30c7b+wCf+GFF+bfvb/97W9p+vTpKVs7M2XrXaZ2o5NHu89VtB+bdWVr76Z77rknby6bOpxi1PaWW245bM3HJmGxG3z8QiPs413En/XVV1+98dPJLwSGrUMqGjMCsSFXfHeyNXvz785DDz2UsvWi8w3p4ju04oorpmx90PyXUGPmoXSUAAECBAgQIECAAIGeFxAA7flXpIO9KBCBy/KI1BiZGCNdJQIECBAgQIAAAQIECBAgQIAAgd4RaD2HtHf6pycERkTg2GOPTdlOymnttdfOf2Kq6aabbtpxW9muz015Y53EwU67b6rACQECBAgQIECAAAECBAgQIECAwIgICICOCKtKe10gpkrHGpHxEyk2XIrp1J2mWJOumDbbbLO2G8QU8zkmQIAAAQIECBAgQIAAAQIECBCoVsAmSNV6a61HBF7zmtc09eSyyy5LsXZiJ+l73/teivU+i2mfffYpnjomQIAAAQIECBAgQIAAAQIECBDoEQEB0B55EbpRrUBMV19mmWUajcaO7rG7+7nnntu4Vj544okn0he/+MV0wAEHpOLeYbNmzUof+MAHytmdEyBAgAABAgQIECBAgAABAgQI9ICATZB64CXowugIxJT3nXfeOcUu9sUUAc2tt946rbrqqmnJJZfMd9OOHe4jOBpB0GJaZJFF0tVXX52izGil008/Pc2ZM6ey5iMAHDYSgdES8J0fLXntEiBAgAABAgQIECBAYGwKCICOzfem18MkcMIJJ6RPfOITQ6ptxRVXTGeccUbafvvth1R+uArFBk4XXHDBcFU3YD1XXHFF2mabbQbMJwOBkRLwnR8pWfUSIECAAAECBAgQIEBgfAqYAj8+36un6lDgoIMOSr/4xS/SFlts0WGJlBZccMG05557puuvv37Ug58dd1pGAgQIECBAgAABAgQIECBAgMAEFbAL/AR98R77FYHddtstxU/sBP+DH/wg3X777enOO+9M9957b3rppZfy3d1XWmmltMoqq6S3ve1tad99900rrLDCKxWM8tFee+2VNt5448p6MWPGjMra0hCBVgK+861UXCNAgAABAgQIECBAgACBdgKmwLeTcX3CC8TGSE899VSaNm3ahLcAQIAAAQIECBAgQIAAAQIECBAYqwICoGP1zek3AQIECBAgQIAAAQIECBAgQIAAAQIDClgDdEAiGQgQIECAAAECBAgQIECAAAECBAgQGKsCAqBj9c3pNwECBAgQIECAAAECBAgQIECAAAECAwoIgA5IJAMBAgQIECBAgAABAgQIECBAgAABAmNVQAB0rL45/SZAgAABAgQIECBAgAABAgQIECBAYEABAdABiWQgQIAAAQIECBAgQIAAAQIECBAgQGCsCgiAjtU3p98ECBAgQIAAAQIECBAgQIAAAQIECAwoIAA6IJEMBAgQIECAAAECBAgQIECAAAECBAiMVQEB0LH65vSbAAECBAgQIECAAAECBAgQIECAAIEBBQRABySSgQABAgQIECBAgAABAgQIECBAgACBsSogADpW35x+EyBAgAABAgQIECBAgAABAgQIECAwoIAA6IBEMhAgQIAAAQIECBAgQIAAAQIECBAgMFYFBEDH6pvTbwIECBAgQIAAAQIECBAgQIAAAQIEBhQQAB2QSAYCBAgQIECAAAECBAgQIECAAAECBMaqgADoWH1z+k2AAAECBAgQIECAAAECBAgQIECAwIACAqADEslAgAABAgQIECBAgAABAgQIECBAgMBYFRAAHatvTr8JECBAgAABAgQIECBAgAABAgQIEBhQQAB0QCIZCBAgQIAAAQIECBAgQIAAAQIECBAYqwKTx2rH9bsagWOPPTb9/ve/bzR23HHHpTXWWKNx7oAAAQIECBAgQIDAeBGYN29eOv3001s+zt57752mTZvW8p6LBAgQIECAQG8LTKplqbe7qHejKbDnnnums846q9GFa665Jm222WaNcwcECBAgQIAAAQIExovAQw89lLbZZpuWjzN79uy05pprtrznIgECBAgQINDbAqbA9/b70TsCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9RAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLffj94RIECAAAECBAgQIECAAAECBAgQINCFgABoF3iKEiBAgAABAgQIECBAgAABAgQIECDQ2wICoL39fvSOAAECBAgQIECAAAECBAgQIECAAIEuBARAu8BTlAABAgQIECBAgAABAgQIECBAgACB3hYQAO3t96N3BAgQIECAAAECBAgQIECAAAECBAh0ISAA2gWeogQIECBAgAABAgQIECBAgAABAgQI9LaAAGhvvx+9I0CAAAECBAgQIECAAAECBAgQIECgCwEB0C7wFCVAgAABAgQIECBAgAABAgQIECBAoLcFBEB7+/3oHQECBAgQIECAAAECBAgQIECAAAECXQgIgHaBpygBAgQIECBAgAABAgQIECBAgAABAr0tIADa2+9H7wgQIECAAAECBAgQIECAAAECBAgQ6EJAALQLPEUJECBAgAABAgQIECBAgAABAgQIEOhtAQHQ3n4/ekeAAAECBAgQIECAAAECBAgQIECAQBcCAqBd4ClKgAABAgQIECBAgAABAgQIECBAgEBvCwiA9vb70TsCBAgQIECAAAECBAgQIECAAAECBLoQEADtAk9RAgQIECBAgAABAgQIECBAgAABAgR6W0AAtLffj94RIECAAAECBAgQIECAAAECBAgQINCFgABoF3iKEiBAgAABAgQIECBAgAABAgQIECDQ2wKTe7t7ekeAAAECBAgQIECAAIFqBBZeeOG00047tWxsiSWWaHndRQIECBAgQKD3BQRAe/8d6SEBAgQIECBAgAABAhUILLXUUumkk06qoCVNECBAgAABAlUKmAJfpba2CBAgQIAAAQIECBAgQIAAAQIECBCoVEAAtFJujREgQIAAAQIECBAgQIAAAQIECBAgUKWAAGiV2toiQIAAAQIECBAgQIAAAQIECBAgQKBSAQHQSrk1RoAAAQIECBAgQIAAAQIECBAgQIBAlQICoFVqa4sAAQIECBAgQIAAAQIECBAgQIAAgUoF7AJfKbfGCBAgQIAAAQIECBAgQIAAAQLjR+CCCy5IV155ZdsHWm655dJHPvKRtvfdIFCFgABoFcraIECAAAECBAgQIECAAAECBAiMQ4EIgB533HFtn2zdddcVAG2r40ZVAqbAVyWtHQIECBAgQIAAAQIECBAgQIAAAQIEKhcwArRycg0SIECAAAECBAgQIECAAAECBMaHwH777Ze22GKL/GEOO+ywNGfOnPz41FNPTVOmTElLLbXU+HhQTzGmBQRAx/Tr03kCBAgQIECAAAECBAgQIECAwOgJbLTRRil+In3ta19rBED32GOPNG3atNHrmJYJFARMgS9gOCRAgAABAgQIECBAgAABAgQIECBAYHwJCICOr/fpaQgQIECAAAECBAgQIECAAAECBAgQKAgIgBYwHBIgQIAAAQIECBAgQIAAAQIECBAgML4EBEDH1/v0NAQIECBAgAABAgQIECBAgAABAgQIFAQEQAsYDgkQIECAAAECBAgQIECAAAECBAgQGF8CAqDj6316GgIECBAgQIAAAQIECBAgQIAAAQIECgICoAUMhwQIECBAgAABAgQIECBAgAABAgQIjC8BAdDx9T49DQECBAgQIECAAAECBAgQIECAAAECBQEB0AKGQwIECBAgQIAAAQIECBAgQIAAAQIExpeAAOj4ep+ehgABAgQIECBAgAABAgQIECBAgACBgoAAaAHDIQECBAgQIECAAAECBAgQIECAAAEC40tAAHR8vU9PQ4AAAQIECBAgQIAAAQIECBAgQIBAQWBy4dhhC4FbbrklXX755ekvf/lLiuNIr371q9OGG26Y9tlnnzRlypQWpZovvfjii+m8885LF154Ybr77rvTM888k9Zbb700a9astNVWW6V11123uUCbs+Gqp031LhMgQIAAAQIECBAgQIAAAQIECBAYdwKTalkad081TA/0s5/9LH3zm99MEXhslaZOnZo+/elPp6233rrV7fza3/72t3TwwQenO+64o2WeBRdcMK/jzW9+c8v79YvDVU+9vk4/99xzz3TWWWc1sl9zzTVps802a5w7IECAAAECBAgQIDBeBJ5//vl09dVXt3ycTTbZJC2++OIt77lIgAABAi8LxCCvq666Kj955JFH0rRp09AQ6AkBI0BbvIaICR999NHp/PPPz+9Onjw5bb755mmbbbbJR29edtll6c9//nN67LHH0hFHHJFOPfXUtOqqq/ap6emnn06HHHJII/i55ppr5nUst9xy6frrr09RT/yfrKOOOipF3j322KNPHXFhuOppWbmLBAgQIECAAAECBAjkAk888UTaf//9W2rMnj07xf+flwgQIECAAIGxJyAA2uKdnXvuuY3g5yqrrJK+/vWvpwha1tM73vGOdPLJJ6czzjgjzZs3Lx177LHpW9/6Vv124/N73/temjt3bn6+4447psMPPzwttNBC+fmuu+6abrjhhnTooYfmAc4TTzwxbbfddmn69OmN8vWD4aqnXp9PAgQIECBAgAABAgQIECBAgAABAhNFwCZIpTcdIzJPOumk/OoiiyySTjjhhKbgZ9xYYIEF0gc/+MEUwdFIN954Y3r00Ufz4/r/xG+PzznnnPz0Va96VVPws54n1hGNoGikmGZfz1+/H5/DVU+xTscECBAgQIAAAQIECBAgQIAAAQIEJoqAAGjpTcdaFY8//nh+9e1vf3tafvnlSzlePo21O3fZZZe08sorp/XXXz/f3KiY8ZJLLslHh8a13XbbrTHys5gnjmNafT2QGgHQ+fPnN2UZrnqaKnVCgAABAgQIECBAgAABAgQIECBAYIIICICWXnQEHOvpLW95S/2w5ed+++2XT4OP6fAxmrOYbrrppsbplltu2ThudRDri0Z6+OGH07XXXtuUZbjqaarUCQECBAgQIECAAAECBAgQIECAAIEJIiAAWnrRt9xyS34lpq3PmDGjdLfz09gkKdKkSZPSGmus0W/B4mLqt99+e1Pe4aqnqVInBAgQIECAAAECBAgQIECAAAECBCaIgE2QCi/6ueeeS/fcc09+Za211so/X3rppRSjMGPX9j/96U/5LvDrrLNOes1rXpN22mmnfD3QQhWNw3vvvTc/js2TYhf5/lJxmv1dd93VlHW46mmq1AkBAgQIECBAgAABAgQIECBAgACBCSLQf2RugiDUH/P+++9PtVotP1166aXz9TiPOuqodNFFF9Wz5J8REP35z3+efvnLX6bPfvazKUaLFlPsDB+B00jTpk0r3mp5PHXq1Mb12PSonoarnnp9rT6//e1v57vRt7oX1/7617+mlVZaKT300EMpNoiSCBAgQIAAAQIECBAgQIAAAQIECIwlAQHQwtt65plnGmcLL7xw+tSnPpX+8Ic/pNjwaLXVVss3PIoRonfeeWe+a3us17n//vun0047LS277LKNsk8//XTjOHaSHygV8zz77LON7MNVT6PCFgcxqvXSSy9tceeVS1OmTOmzy/0rdx0RIECAAAECBAgQIECAAAECBAgQ6F0BAdDCuykGQGN054svvphiKvzhhx+eZs6c2cgZ63QeccQR6Y477sh3jD/xxBPTkUce2bhfrCcCqQOlYp6Yhl9Pw1VPvT6fBAgQIECAAAECBAgQIECAAAECBCaagE2QCm/8hRdeaJxF8HP69Onpm9/8ZlPwMzKsvvrqKYKeMTIy0sUXX5yvEZqfZP9TXPMz6hkozZ8/v5GlGAwdrnoalTsgQIAAAQIECBAgQIAAAQIECBAgMMEEjAAtvPDFF1+8cJbShz/84VS+Vs8Q63a+613vSieffHJ+KaaSb7zxxvnxYostVs/W0bqZxbU1l1hiiUbZ4aqnUWGLgxjdetBBB7W48/Klgw8+OF144YWpGBxum9kNAgQIECBAgAABAgQIECBAgAABAj0mIABaeCHlYOdGG21UuNv3cNasWY2LsS5oPRXrKa7jWb9f/ixOdS8GQIernnJ7xfOVV165eNrneNFFF+0oiNunoAsECBAgQIAAAQIECBAgQIAAAQIEekDAFPjCS1huueUaZ7HxUXl398bNvx8Ug4exOVI9xaZG9U2RHnzwwfrltp8PPPBA494yyyzTOB6uehoVOiBAgAABAgQIECBAgAABAgQIECAwwQQEQAsvfOmll24ELmPtznvvvbdwt+/hk08+2bi45JJLNo7joL5pUozufPTRR5vulU+KwdP11luv6fZw1dNUqRMCBAgQIECAAAECBAgQIECAAAECE0RAALT0otdff/3GlZtuuqlx3OqgGLhcccUVm7IU64n1QftLN9xwQ+N2sVxcLJ53U0+jAQcECBAgQIAAAQIECBAgQIAAAQIEJpCAAGjpZb/xjW9sXLnoootSrVZrnJcPZs+e3bi07bbbNo7jYIcddmicn3/++Y3j8kFMf7/uuuvyy+uss04qToGPi8NVT7ld5wQIECBAgAABAgQIECBAgAABAgQmgoAAaOktb7PNNmn55ZfPr1511VXplFNOKeV4+fR3v/tduvzyy/OTWCt0iy22aMq31lprpQhoRrriiitSqyDoc889l770pS+lmG4fad99980/i/8zXPUU63RMgAABAgQIECBAgAABAgQIECBAYKIICICW3nRsPHTooYemBRZ4meZHP/pROu644/JRmvPnz08xYvP0009Pn/nMZxolP/nJT6bYNKmcDjrooMalo48+Op122mnpvvvuS1FPTHs/+OCD0zXXXJPnianu22+/fSN/8WC46inW6ZgAAQIECBAgQIAAAQIECBAgQIDARBCYlE3xbj/HeyIItHnGa6+9Nh1xxBFNGxhNnjw5D17Wi0yaNCkdeOCBae+9965f6vN58cUXp2OOOSY9++yzjXsRLK2P+oyLM2bMSCeffHKaOnVqI0/5YLjqKdc70Pmee+6ZzjrrrEa2CNhuttlmjXMHBAgQIECAAAECBMaLwEMPPZRiRlirFMtfrbnmmq1uuUaAAAECfxfYaqutUsymjfTII4+kadOm/f2ODwKjK2AEaBv/TTfdNH33u99Nr3/969Niiy2W54qRm/U0a9asdPzxx/cb/Iy8O+20Uz6NPqbD10eV1oOfEVDda6+98vv9BT+Hs556/30SIECAAAECBAgQIECAAAECBAgQmAgCkyfCQw71GadPn56P3oxBsnfffXeaM2dOWnzxxdOqq66aVlpppY6rXX311dOpp56ajwK97bbb8mn0UT7qmTJlSuX1dNygjAQIECBAgAABAgQIECBAgAABAgTGuIAAaAcvMKa6R7AyfrpJiy66aIqRo/HTTRquerrpg7IECBAgQIAAAQIECBAgQIAAAQIExoKAKfBj4S3pIwECBAgQIECAAAECBAgQIECAAAECQxIwAnRIbAoRIECAAAECBAgQIDDeBGKN/tgLoFWKWVgSAQIECBAgMDYFBEDH5nvTawIECBAgQIAAAQIEhlkgNiY944wzhrlW1REgQIAAAQKjLWAK/Gi/Ae0TIECAAAECBAgQIECAAAECBAgQIDBiAgKgI0arYgIECBAgQIAAAQIECBAgQIAAAQIERlvAFPjRfgPaJ0CAAAECBAgQIECAAAECBMatwJlnnplOP/30ts+3zDLLpB/+8Idt77tBgED3AgKg3RuqgQABAgQIECBAgAABAgQIECDQUmDOnDnpvPPOa3kvLq6wwgpt77lBgMDwCJgCPzyOaiFAgAABAgQIECBAgAABAgQIECBAoAcFBEB78KXoEgECBAgQIECAAAECBAgQIDA+BA488MB0++235z/bb79946EuvfTS/Nof//jHxjUHBAiMjIAp8CPjqlYCBAgQIECAAAECBAgQIECAQJo6dWr+ExSLL754Q2SVVVZJM2fObJw7IEBg5ASMAB05WzUTIECAAAECBAgQIECAAAECBAgQIDDKAgKgo/wCNE+AAAECBAgQIECAAAECBAgQIECAwMgJCICOnK2aCRAgQIAAAQIECBAgQIAAAQIECBAYZQEB0FF+AZonQIAAAQIECBAgQIAAAQIECBAgQGDkBARAR85WzQQIECBAgAABAgQIECBAgAABAgQIjLKAAOgovwDNEyBAgAABAgQIECBAgAABAgQIECAwcgICoCNnq2YCBAgQIECAAAECBAgQIECAAAECBEZZQAB0lF+A5gkQIECAAAECBAgQIECAAAECBAgQGDkBAdCRs1UzAQIECBAgQIAAAQIECBAgQIAAAQKjLCAAOsovQPMECBAgQIAAAQIECBAgQIAAAQIECIycgADoyNmqmQABAgQIECBAgAABAgQIECBAgACBURYQAB3lF6B5AgQIECBAgAABAgQIECBAgAABAgRGTkAAdORs1UyAAAECBAgQIECAAAECBAgQIECAwCgLCICO8gvQPAECBAgQIECAAAECBAgQIECAAAECIycgADpytmomQIAAAQIECBAgQIAAAQIECBAgQGCUBQRAR/kFaJ4AAQIECBAgQIAAAQIECBAgQIAAgZETmDxyVauZAAECBAgQIECAAAECY0dg/vz56dZbb23Z4TXWWCMtssgiLe+5SIAAAQIECPS2gABob78fvSNAgAABAgQIECBAoCKBxx57LO2+++4tW5s9e3Zac801W95zkQABAgQIEOhtAVPge/v96B0BAgQIECBAgABuzGHfAABAAElEQVQBAgQIECBAgAABAl0ICIB2gacoAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvvR+8IECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+P3pHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeApSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb2+9E7AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/eESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X70jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdwQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqIECBAgQIAAAQIECBAgQIAAAQIECPS2gABob78fvSNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8BQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v96B0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacoAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvvR+8IECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+P3pHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeApSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb2+9E7AgQIECBAgAABAgQIECBAgAABAgS6EJjcRVlFCRAgQIAAAQIECBAgMG4EFlhggTRz5syWz7PQQgu1vO4iAQIECBAg0PsCAqC9/470kAABAgQIECBAgACBCgSWWWaZ9Otf/7qCljRBgAABAgQIVClgCnyV2toiQIAAAQIECBAgQIAAAQIECBAgQKBSAQHQSrk1RoAAAQIECBAgQIAAAQIECBAgQIBAlQICoFVqa4sAAQIECBAgQIAAAQIECBAgQIAAgUoFBEAr5dYYAQIECBAgQIAAAQIECBAgQIAAAQJVCgiAVqmtLQIECBAgQIAAAQIECBAgQIAAAQIEKhUQAK2UW2MECBAgQIAAAQIECBAgQIAAAQIECFQpIABapba2CBAgQIAAAQIECBAgQIAAAQIECBCoVEAAtFJujREgQIAAAQIECBAgQIAAAQIECBAgUKWAAGiV2toiQIAAAQIECBAgQIAAAQIECBAgQKBSAQHQSrk1RoAAAQIECBAgQIAAAQIECBAgQIBAlQICoFVqa4sAAQIECBAgQIAAAQIECBAgQIAAgUoFBEAr5dYYAQIECBAgQIAAAQIECBAgQIAAAQJVCgiAVqmtLQIECBAgQIAAAQIECBAgQIAAAQIEKhUQAK2UW2MECBAgQIAAAQIECBAgQIAAAQIECFQpIABapba2CBAgQIAAAQIECBAgQIAAAQIECBCoVEAAtFJujREgQIAAAQIECBAgQIAAAQIECBAgUKWAAGiV2toiQIAAAQIECBAgQIAAAQIECBAgQKBSAQHQSrk1RoAAAQIECBAgQIAAAQIECBAgQIBAlQICoFVqa4sAAQIECBAgQIAAAQIECBAgQIAAgUoFBEAr5dYYAQIECBAgQIAAAQIECBAgQIAAAQJVCgiAVqmtLQIECBAgQIAAAQIECBAgQIAAAQIEKhUQAK2UW2MECBAgQIAAAQIECBAgQIAAAQIECFQpIABapba2CBAgQIAAAQIECBAgQIAAAQIECBCoVGBypa1pjAABAgQIECBAgAABAj0q8NJLL6UHHnigZe+WW265NHmyfz61xHGRAAECBAj0uID/gvf4C9I9AgQIECBAgAABAgSqEXjkkUfSDjvs0LKx2bNnpzXXXLPlPRcJECBAgACB3hYwBb6334/eESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X70jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdwQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqIECBAgQIAAAQIECBAgQIAAAQIECPS2gABob78fvSNAgAABAgQIECBAgAABAgQIECBAoAsBAdAu8BQlQIAAAQIECBAgQIAAAQIECBAgQKC3BQRAe/v96B0BAgQIECBAgAABAgQIECBAgAABAl0ICIB2gacoAQIECBAgQIAAAQIECBAgQIAAAQK9LSAA2tvvR+8IECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBDobQEB0N5+P3pHgAABAgQIECBAgAABAgQIECBAgEAXAgKgXeApSoAAAQIECBAgQIAAAQIECBAgQIBAbwsIgPb2+9E7AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEeltAALS334/eESBAgAABAgQIECBAgAABAgQIECDQhYAAaBd4ihIgQIAAAQIECBAgQIAAAQIECBAg0NsCAqC9/X70jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgd4WEADt7fejdwQIECBAgAABAgQIECBAgAABAgQIdCEgANoFnqIECBAgQIAAAQIECBAgQIAAAQIECPS2gABob78fvSNAgAABAgQIECBAgAABAgQIECBAoAuByV2UVZQAAQIECBAgQIAAAQLjRmCBBRZIU6dObfk8cU8iQIAAAQIExqaAAOjYfG96TYAAAQIECBAgQIDAMAsss8wy6Q9/+MMw16o6AgQIECBAYLQF/BpztN+A9gkQIECAAAECBAgQIECAAAECBAgQGDEBAdARo1UxAQIECBAgQIAAAQIECBAgQIAAAQKjLSAAOtpvQPsECBAgQIAAAQIECBAgQIAAAQIECIyYgADoiNGqmAABAgQIECBAgAABAgQIECBAgACB0RYQAB3tN6B9AgQIECBAgAABAgQIECBAgAABAgRGTEAAdMRoVUyAAAECBAgQIECAAAECBAgQIECAwGgLCICO9hvQPgECBAgQIECAAAECBAgQIECAAAECIyYgADpitComQIAAAQIECBAgQIAAAQIECBAgQGC0BQRAR/sNaJ8AAQIECBAgQIAAAQIECBAgQIAAgRETEAAdMVoVEyBAgAABAgQIECBAgAABAgQIECAw2gICoKP9BrRPgAABAgQIECBAgAABAgQIECBAgMCICQiAjhitigkQIECAAAECBAgQIECAAAECBAgQGG0BAdDRfgPaJ0CAAAECBAgQIECAAAECBAgQIEBgxAQEQEeMVsUECBAgQIAAAQIECBAgQIAAAQIECIy2gADoaL8B7RMgQIAAAQIECBAgQIAAAQIECBAgMGICAqAjRqtiAgQIECBAgAABAgQIECBAgAABAgRGW0AAdLTfgPYJECBAgAABAgQIECBAgAABAgQIEBgxAQHQEaNVMQECBAgQIECAAAECBAgQIECAAAECoy0gADrab0D7BAgQIECAAAECBAgQIECAAAECBAiMmIAA6IjRqpgAAQIECBAgQIAAAQIECBAgQIAAgdEWEAAd7TegfQIECBAgQIAAAQIECBAgQIAAAQIERkxAAHTEaFVMgAABAgQIECBAgAABAgQIECBAgMBoCwiAjvYb0D4BAgQIECBAgAABAgQIECBAgAABAiMmMHnEalYxAQIECBAgQIAAAQIExpjAvHnzWvZ40UUXTZMmTWp5z0UCBAgQIECgtwUEQHv7/egdAQIECBAgQIAAAQIVCTz00ENpm222adna7Nmz05prrtnynosECBAgQIBAbwuYAt/b70fvCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8RQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj96R4AAAQIECBAgQIAAAQIECBAgQIBAFwICoF3gKUqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vvROwIECBAgQIAAAQIECBAgQIAAAQIEuhAQAO0CT1ECBAgQIECAAAECBAgQIECAAAECBHpbQAC0t9+P3hEgQIAAAQIECBAgQIAAAQIECBAg0IWAAGgXeIoSIECAAAECBAgQIECAAAECBAgQINDbAgKgvf1+9I4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIHeFhAA7e33o3cECBAgQIAAAQIECBAgQIAAAQIECHQhIADaBZ6iBAgQIECAAAECBAgQIECAAAECBAj0toAAaG+/H70jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECgtwUEQHv7/egdAQIECBAgQIAAAQIECBAgQIAAAQJdCAiAdoGnKAECBAgQIECAAAECBAgQIECAAAECvS0gANrb70fvCBAgQIAAAQIECBAgQIAAAQIECBDoQkAAtAs8RQkQIECAAAECBAgQIECAAAECBAgQ6G0BAdDefj96R4AAAQIECBAgQIAAAQIECBAgQIBAFwICoF3gKUqAAAECBAgQIECAAAECBAgQIECAQG8LCID29vvROwIECBAgQIAAAQIECBAgQIAAAQIEuhAQAO0CT1ECBAgQIECAAAECBAgQIECAAAECBHpbQAC0t9+P3hEgQIAAAQIECBAgQIAAAQIECBAg0IWAAGgXeIoSIECAAAECBAgQIECAAAECBAgQINDbApN7u3t6R4AAAQIECBAgQIAAgWoEpk+fnm655ZZqGtMKAQIECBAgUJmAEaCVUWuIAAECBAgQIECAAAECBAgQIECAAIGqBQRAqxbXHgECBAgQIECAAAECBAgQIECAAAEClQkIgFZGrSECBAgQIECAAAECBAgQIECAAAECBKoWEACtWlx7BAgQIECAAAECBAgQIECAAAECBAhUJiAAWhm1hggQIECAAAECBAgQIECAAAECBAgQqFpAALRqce0RIECAAAECBAgQIECAAAECBAgQIFCZgABoZdQaIkCAAAECBAgQIECAAAECBAgQIECgagEB0KrFtUeAAAECBAgQIECAAAECBAgQIECAQGUCAqCVUWuIAAECBAgQIECAAAECBAgQIECAAIGqBQRAqxbXHgECBAgQIECAAAECBAgQIECAAAEClQkIgFZGrSECBAgQIECAAAECBAgQIECAAAECBKoWEACtWlx7BAgQIECAAAECBAgQIECAAAECBAhUJiAAWhm1hggQIECAAAECBAgQIECAAAECBAgQqFpAALRqce0RIECAAAECBAgQIECAAAECBAgQIFCZgABoZdQaIkCAAAECBAgQIECAAAECBAgQIECgagEB0KrFtUeAAAECBAgQIECAAAECBAgQIECAQGUCAqCVUWuIAAECBAgQIECAAAECBAgQIECAAIGqBSZX3eBYb+/pp59OH/nIR9IjjzyStt1223TIIYcM+EgvvvhiOu+889KFF16Y7r777vTMM8+k9dZbL82aNStttdVWad111x2wjsgwXPV01JhMBAgQIECAAAECBAgQIECAAAECBMaBgADoIF/iCSeckObOnZuXeuqppwYs/be//S0dfPDB6Y477mjKe/XVV6f4Oe2009KnP/3p9OY3v7npfvlkuOop1+ucAAECBAgQIECAAAECBAgQIECAwHgWEAAdxNu9+OKL0/nnn99xiRgtGiNE68HPNddcM22zzTZpueWWS9dff3267LLL0vPPP5+OOuqoFHn32GOPlnUPVz0tK3eRAAECBAgQIECAAAECBAgQIECAwDgWEADt8OU++OCD6atf/WqHuV/O9r3vfa8xWnTHHXdMhx9+eFpooYXym7vuumu64YYb0qGHHpoHP0888cS03XbbpenTp/dpY7jq6VOxCwQIECBAgAABAgQIECBAgAABAgTGuYBNkDp4wbVaLX3xi19MTz75ZFpsscU6KJHSE088kc4555w876te9aqm4Ge9gg033DC/Huexvmc9f/1+fA5XPcU6HRMgQIAAAQIECBAgQIAAAQIECBCYKAICoB286R//+Mfpf/7nf9KkSZPSRz/60UaJOG+XLrnkkjRv3rz89m677dYY+VnOH1PiV1lllfxyBEDnz5/flGW46mmq1AkBAgQIECBAgAABAgQIECBAgACBCSIgADrAi54zZ076j//4jzzXPvvskzbaaKMBSrx8+6abbmrk23LLLRvHrQ4233zz/PLDDz+crr322qYsw1VPU6VOCBAgQIAAAQIECBAgQIAAAQIECEwQAQHQfl50bFD0+c9/Pr3wwgspNjD6l3/5l35yN9/685//nF+IUaJrrLFG883SWdRdT7fffnv9MP8crnqaKnVCgAABAgQIECBAgEAfgRiQEMtUtfqZO3dun/wuECBAgAABAmNDwCZI/bynk08+Od/BPTYuKm5g1E+Rxq177703P44d3ydP7p95+eWXb5S76667GsdxMFz1NFXqhAABAgQIECBAgACBPgKx9v9zzz3X53pciHsSAQIECBAgMDYF+o/Mjc1nGpZeX3311emnP/1pXtcHPvCBtPrqq3dcb6z9+dJLL+X5p02bNmC5qVOnNvLEpkf1NFz11Otr9XnWWWc1dqpvdf/+++/Pd6Z//PHH85GwrfK4RoAAAQIECBAgQIAAAQIECBAgQKBXBQRAW7yZCEIeffTR+Z1NNtkkvf3tb2+Rq/2lp59+unFzkUUWaRy3OyjmefbZZxvZhqueRoUtDs4///x06aWXtrjzyqVlllkmRV9iKQCJAAECBAgQIECAAAECBAgQIECAwFgSsAZoi7f15S9/OcX6P0sssUT67Gc/m+/+3iJb20vPPPNM497CCy/cOG53UMxTnHIzXPW0a9d1AgQIECBAgAABAgQIECBAgAABAuNdQAC09IbPPffc9Nvf/ja/+vGPfzwV1+csZW17Wlzz88UXX2ybr35j/vz59cNUDIYOVz2Nyh0QIECAAAECBAgQIECAAAECBAgQmGACpsAXXvh9992Xvva1r+VXdthhh7TzzjsX7nZ+uNhiizUyx07yA6Vinhh1Wk/DVU+9vlaf73//+9Pb3va2Vrfya8cff3z64x//mIp9bJvZDQIECBAgQIAAAQIECBAgQIAAAQI9JiAA+vcXEiM1v/CFL6TYeGippZZKH/rQh9KTTz7Z53UV1+WMNTHreRZccMG0+OKL5/nrn3FSzN+nsr9fKE51LwZAh6uedu3G9c0337y/2+m73/1ueuqpp/rN4yYBAgQIECBAgAABAgQIECBAgACBXhUQAP37m4ldzm+66ab8LDZBesc73jHgO7vssstS/ETaeOON0ze+8Y38ODY1WnbZZfN1RB988MH8Wn//88ADDzRux4ZD9TRc9dTr80mAAAECBAgQIECAAAECBAgQIEBgoglYA3SE3vjMmTPzmmN056OPPtpvK/fcc0/j/nrrrdc4joPhqqepUicECBAgQIAAAQIECBAgQIAAAQIEJoiAEaB/f9GLLrpoeve73z3ga4+RomeffXaeb7XVVkvbbbddfrzSSis1lV1//fXTNddck1/705/+lGJN0XbphhtuaNyKcsU0XPUU63RMgAABAgQIECBAgAABAgQIECBAYKIICID+/U3HepuxIdBA6a677moEQNdYY422ZSLgefrpp+fVnX/++W0DoDH9/brrrsvzrbPOOqk4BT4uDlc9eQP+hwABAgQIECBAgAABAgQIECBAgMAEEzAFfoRe+FprrZUioBnpiiuuSBEELafnnnsufelLX0qxAVOkfffdt5wlDVc9fSp2gQABAgQIECBAgAABAgQIECBAgMAEEBAAHcGXfNBBBzVqP/roo9Npp52W7rvvvjR//vwU094PPvjgxjT5mOq+/fbbN/IXD4arnmKdjgkQIECAAAECBAgQIECAAAECBAhMBAFT4EfwLW+wwQbpyCOPTMccc0x69tln06mnnpr/LLjggo1Rn9H8jBkz0rHHHpsWWKB1PHq46hnBR1U1AQIECBAgQIAAAQIECBAgQIAAgZ4UaB1x68mujs1O7bTTTumUU07Jp8PXA5z1Ke+TJ09Oe+21V35/6tSp/T7gcNXTbyNuEiBAgAABAgQIECBAgAABAgQIEBhnAkaADvKFrrrqqunyyy8fVKnVV189H/kZo0Bvu+22FBsfxa7xUdeUKVM6rmu46um4QRkJECBAgAABAgQIECBAgAABAgQIjHEBAdAKX+Ciiy6aZs2alf900+xw1dNNH5QlQIAAAQIECBAgQIAAAQIECBAgMBYETIEfC29JHwkQIECAAAECBAgQIECAAAECBAgQGJKAAOiQ2BQiQIAAAQIECBAgQIAAAQIECBAgQGAsCAiAjoW3pI8ECBAgQIAAAQIECBAgQIAAAQIECAxJQAB0SGwKESBAgAABAgQIECBAgAABAgQIECAwFgQEQMfCW9JHAgQIECBAgAABAgQIECBAgAABAgSGJCAAOiQ2hQgQIECAAAECBAgQIECAAAECBAgQGAsCAqBj4S3pIwECBAgQIECAAAECBAgQIECAAAECQxKYPKRSChEgQIAAAQIECBAgQGCcCSy77LLpqquuavlUSy21VMvrLhIgQIAAAQK9LyAA2vvvSA8JECBAgAABAgQIEKhAYNKkSWnatGkVtKQJAgQIECBAoEoBU+Cr1NYWAQIECBAgQIAAAQIECBAgQIAAAQKVCgiAVsqtMQIECBAgQIAAAQIECBAgQIAAAQIEqhQQAK1SW1sECBAgQIAAAQIECBAgQIAAAQIECFQqIABaKbfGCBAgQIAAAQIECBAgQIAAAQIECBCoUkAAtEptbREgQIAAAQIECBAgQIAAAQIECBAgUKmAAGil3BojQIAAAQIECBAgQIAAAQIECBAgQKBKAQHQKrW1RYAAAQIECBAgQIAAAQIECBAgQIBApQICoJVya4wAAQIECBAgQIAAAQIECBCYiALPPJPSo4++8uT33ffKsSMCBEZWQAB0ZH3VToAAAQIECBAgQIAAAQIECExggVtvTemd70xp+vSUrrrqFYhtt01po41S+tGPUqrVXrnuiACB4RcQAB1+UzUSIECAAAECBAgQIECAAAECBNJ3vpPSrFkpnXlmSvPm9QW54YaU3vWulHbZJaXHHut73xUCBIZHQAB0eBzVQoAAAQIECBAgQIAAAQIECBBoCETw84ADUnr++caltgfnn/9yEPS559pmcYMAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIFAWiGnv//qv5av9n8f0+MMO6z+PuwQIDE1AAHRobkoRIECAAAECBAgQIECAAAECBFoKfO5znY38LBf+xjdSsjlSWcU5ge4FBEC7N1QDAQIECBAgQIAAAQIECBAgQCAXiN3ezz57aBgxBf6oo1KaOzelF18cWh1KESDQV2By30uuECBAgAABAgQIECBAgAABAgQIDEXgT39qveFRp3WddFJK8bPwwimtsUZK66yT0tprN/8sv3yntclHgEAICID6HhAgQIAAAQIECBAgQIAAAQIEhkng/vuHp6LYPOl///fln3KNSy/9SkC0GCBda62Upkwp53ZOgIAAqO8AAQIECBAgQIAAAQIECBAgQGCYBJZccpgq6qeaxx9P6eqrX/4pZ5sx45XgaIwcrQdIZ87MRsGNQBSoVkvpv/87pR//OKXrrnulN7vumtI//3NK++8vKPuKiqPREhiBr/5oPYp2CRAgQIAAAQIECBAgQIAAAQKjKxCjMEcz3XtvSvFzySXNvYjg5+qrvxIQrU+rjwDpiis25+307LbbUtpnn5SuuaZvicsvTyl+jj765Sn9e+zRN48rBKoSEACtSlo7BAgQIECAAAECBAgQIECAwLgXePWrU9pww5RuuKG3HnX+/JRuvfXln3LPYtp8MSBaP47PpZYq5375/NprU3rjG1N69NHW9+tXH3zw5ZGgJ56Y0oEH1q/6JFCtgABotd5aI0CAAAECBAgQIECAAAECBMa5wCGHpLTffoN/yIUWSumF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zfo4aoUAAQIECBAgQIAAAQIECBAoucAdd0T89a/5QRZd3p2v3brRomUCbrop4uWXW9fFyIdWQAJ0aH21ToAAAQIECBAgQIAAAQIECJREoOju7+my7v32K8kgh3gYRYniRYsiZs4c4oNrvmUFJEBbduoNnAABAgQIECBAgAABAgQIEOiPQNFl2rvtFjF1an9aat26m28esfba+fEX+eZrixLou4AEaN+t1CRAgAABAgQIECBAgAABAgRaVCBdnv2HP+QHX3RZd7626CGH5A0uuyyiUsmXiRIYjIAE6GD07EuAAAECBAgQIECAAAECBAi0hEC6+VG6TDu3FV3WnasrFlHk9cwzEWktUBuBegtIgNZbVHsECBAgQIAAAQIECBAgQIBA6QSK1v9Ml3NvuWXphjukA5o+PWLcuPwhipzztUUJ9E1AArRvTmoRIECAAAECBAgQIECAAAECLSqQLsu+9NL84A8+OB8XLRaYMiVi773z5dYBzbuIDk5AAnRwfvYmQIAAAQIECBAgQIAAAQIESi5w440Rzz6bH6T1P/MuvUWLLoO/7baI557rbW/lBPonIAHaPy+1CRAgQIAAAQIECBAgQIAAgRYTKDorcfz44jMZW4yo38M98MD8LkuWRLgMPm8jOnABCdCB29mTAAECBAgQIECAAAECBAgQaAGBooRcuox78uQWABiCIW68cUR65LaihHOurhiBvghIgPZFSR0CBAgQIECAAAECBAgQIECgJQXSncnTZdm5regy7lxdse4CRX6XXx6xeHH3+iIEBiowZqA72o8AAQIECBAgQIAAAQJlEnjppZfiQx/6UHZIp5xySqyzzjrZMkECBMotkM7+TDdBym0zZuSiYn0VSAnQ73yne+3qt+O47rqIPffsXiZCYCACEqADUbMPAQIECBAgQIAAAQKlE1hcPd3o3nvvzY5r/vz52bggAQLlFyi6HHuTTSI23LD84x/KEe6xR8TEiRFz53Y/SnKXAO3uIjIwAZfAD8zNXgQIECBAgAABAgQIECBAgEDJBRYtikiXY+c2d3/PqfQvNmFCxH775fcpWnc1X1uUQM8CEqA9+yglQIAAAQIECBAgQIAAAQIEWlTg97+PeOWV/OCL1q/M1xYtEihyvOuuiCefLNpLnED/BCRA++elNgECBAgQIECAAAECBAgQINAiAkVnIU6ZEpEu37YN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KZDO1i26GZIE6EjOTGMf2yXwjT0/ekeAAAECBAgQIECAAAECBEotsOGGG0Z6pO3CCy+M66+/vu11Soxuv/32ba/r8c/MmRGLF+dbsv5n3qVRoylhff753Xv3wAMRDz8cscEG3ctEWlvAGaCtPf9GT4AAAQIECBAgQIAAAQIEWkKg6OzAdGfxzTdvCYLSDLKaG49Ro/LDueiifFy0tQWcAdra82/0BAgQIECAAAECBAi8IfDKK6/E//t//y/r8bWvfS3WWmutbJkgAQKNL7BkScQll+T7efDB+bho4wqsvnrEDjtE3HJL9z6mdV4//vHucZHWFpAAbe35N3oCBAgQIECAAAECBN4QWLhwYdxwww1Zj7lz52bjggQINIdAWvvz+efzfbX+Z96l0aNp3nIJ0GuuiUjfsidObPQR6N9wCrgEfji1HYsAAQIECBAgQIAAAQIECBAYdoGiu79PmBCx997D3h0HrINAUeJ63ryIyy+vwwE0USoBCdBSTafBECBAgAABAgQIECBAgAABAl0Fitb/TMnPSZO61va+GQR22ilipZXyPS2a73xt0VYQkABthVk2RgIECBAgQIAAAQIECBAg0KICTz0Vcfvt+cG7+3vepRmiy1QzWkVngV58cTOMQB+HU0ACdDi1HYsAAQIECBAgQIAAAQIECBAYVoF0NmClkj/kjBn5uGhzCBQlQP/yl4i7726OMejl8AhIgA6Ps6MQIECAAAECBAgQIECAAAECIyBQtP7nZptFbLDBCHTIIesmsN9+EelM0NzmMvicSuvGCj4mrQti5AQIECBAgAABAgQIECBAgEA5BBYujLjiivxYis4ezNcWbUSBtAbotGn5nkmA5l1aNSoB2qozb9wECBAgQIAAAQIECBAgQKDkAtdcE/Hqq/lBWv8z79Js0aJE9nXXRbz2WrONRn+HSkACdKhktUuAAAECBAgQIECAAAECBAiMqEDRWYDLLhux++4j2jUHr5NAUQI0nf17ySV1Oohmml5AArTpp9AACBAgQIAAAQIECBAgQIAAgZxA0fqf++8fMXZsbg+xZhPYZpuINdbI97ooAZ6vLVpmAQnQMs+usREgQIAAAQIECBAgQIAAgRYVeOSRiPvuyw++6KzBfG3RRhYYNSqiaDkDZ4A28swNb98kQIfX29EIECBAgAABAgQIECBAgACBYRC46KL8QVLCbMaMfJlocwoUJbSffDLi1lubc0x6XV8BCdD6emqNAAECBAgQIECAAAECBAgQaACBosuft9uu+JLpBui2LgxAYJ99ipc0KPocDOAwdmliAQnQJp48XSdAgAABAgQIECBAgAABAgS6C8ydGzFrVvd4ihRdLp2vLdoMAsstF7HHHvmeSoDmXVotKgHaajNuvAQIECBAgAABAgQIECBAoOQCV1wRMW9efpBFl0vna4s2i0DRvN50U8SLLzbLKPRzqAQkQIdKVrsECBAgQIAAAQIECBAgQIDAiAgU3f19pZUidt55RLrkoEMsUJQAXbw4YubMIT645hteQAK04adIBwkQIECAAAECBAgQIECAAIH+CBQlvNLNj5aRCekPZdPU3WyziLe8Jd9dl8HnXVop6su+lWbbWAkQIECAAAECBAgQIECAQMkF7ror4tFH84O0/mfepSzRovm99NKIJUvKMkrjGIiABOhA1OxDgAABAgQIECBAgAABAgQINKRA0dl+o0dH7L9/Q3ZZp+okUJQAff75iBtvrNNBNNOUAhKgTTltOk2AAAECBAgQIECAAAECBAjkBIrW/5w2LWLFFXN7iJVFYPr0iAkT8qMpSozna4uWTUACtGwzajwECBAgQIAAAQIECBAgQKBFBV55JeL66/ODL7pJTr62aDMKTJoUsffe+Z5LgOZdWiUqAdoqM22cBAgQIECAAAECBAgQIECg5AKXXBKxaFF+kEWXR+drizarQFGi+7bbIp55pllHpd+DFZAAHayg/QkQIECAAAECBAgQIECAAIGGECg6y2+ttSK23rohuqgTQywwY0b+AJVKRNHnI7+HaJkEJEDLNJvGQoAAAQIECBAgQIAAAQIEWlQgJbguvjg/eGd/5l3KGH3rWyM22SQ/sqL1YfO1RcskMKZMgzEWAgQIECBAgAABAgQIDFRgueWWi1NPPTW7++qrr56NCxIg0DgCt9xSfIlz0WXRjdN7PamnQJrv++7r3uLll7cvkTBGNqw7TskjprzkE2x4BAgQIECAAAECBAj0TWDcuHGxzz779K2yWgQINJxA0dl91S/t6td2w3VXh4ZQICVA//M/ux8g3STr2msjpk/vXiZSbgGXwJd7fo2OAAECBAgQIECAAAECBAi0hEDR+o577RUxZUpLEBjkGwJ77BExeXKeo+hzkq8tWhYBCdCyzKRxECBA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AAECBAgQIECAAAECBEokcOqp+cEsU802pASojQABAo0gIAHaCLOgDwQIECBAgAABAgQIECBAoMkEnn464je/yXf6kEMi3vKWfJkoAQIEhltAAnS4xR2PAAECBAgQIECAAAECBAiUQOCMMyIWLswP5Nhj83FRAgQIjISABOhIqDsmAQIECBAgQIAAAQIECBBoYoHFiyN+8IP8ADbYIGL//fNlogQIEBgJAQnQkVB3TAIECBAgQIAAAQIECBAg0MQC6dL3xx/PD+C44yJGjcqXiRIgQGAkBCRAR0LdMQkQIECAAAECBAgQIECAQBMLFN38aMKEiA99qIkHpusECJRSQAK0lNNqUAQIECBAgAABAgQIECBAYGgEHngg4sor822/970RK62ULxMlQIDASAlIgI6UvOMSIECAAAECBAgQIECAAIEmFEhnf1Yq+Y67+VHeRZQAgZEVkAAdWX9HJ0CAAAECBAgQIECAAAECTSMwd27Ej36U7+7220fsvHO+TJQAAQIjKSABOpL6jk2AAAECBAgQIECAAAECBJpI4Gc/i3jppXyHjz8+HxclQIDASAtIgI70DDg+AQIECBAgQIAAAQIECBBoEoHTTst3dIUVItL6nzYCBAg0ooAEaCPOij4RIECAAAECBAgQIECAAIEGE7jxxohbbsl36sMfjpg0KV8mSoAAgZEWkAAd6RlwfAIECBAgQIAAAQIECBAg0AQC3/9+cSePOaa4TAkBAgRGWkACdKRnwPEJECBAgAABAgQIECBAgECDC7z4YsT55+c7ue++EZtski8TJUCAQCMISIA2wizoAwECBAgQIECAAAECBAgQaGCBs86KSHeAz23HHZeLihEgQKBxBCRAG2cu9IQAAQIECBAgQIAAAQIECDScQKUScfrp+W6ttVbEIYfky0QJECDQKAISoI0yE/pBgAABAgQIECBAgAABAgQaUOCSSyIefDDfsbT255gx+TJRAgQINIqABGijzIR+ECBAgAABAgQIECBAgACBBhQouvlRSnx+5CMN2GFdIkCAQBcBCdAuIN4SIECAAAECBAgQIECAAAEC7QKPPRbx29/mNd797og118yXiRIgQKCRBCRAG2k29IUAAQIECBAgQIAAAQIECDSQwGmnRSxenO+Qmx/lXUQJEGg8AQnQxpsTPSJAgAABAgQIECBAgAABAiMusHBhxA9/mO/GpptGTJ+eLxMlQIBAowlIgDbajOgPAQIECBAgQIAAAQIECBBoAIFf/jLimWfyHTn++HxclAABAo0o4F5tjTgr+kSAAAECBAgQIECAwLALzJkzp3q2W/50tyOPPDJWXHHFYe+TAxIYSYFTT80fffLkiPe/P18mSoAAgUYUkABtxFnRJwIECBAgQIAAAQIEhl0gJUBPOeWU7HFnzJghAZqVESyrwN13R1x7bX501b8HxPLL58tECRAg0IgCLoFvxFnRJwIECBAgQIAAAQIECBAgMIIC3/te8cGPPba4TAkBAgQaUUACtBFnRZ8IECBAgAABAgQIECBAgMAICbz+esS55+YPvuuuEdtumy8TJUCAQKMKSIA26szoFwECBAgQIECAAAECBAgQGAGBH/844rXX8gc+7rh8XJQAAQKNLCAB2sizo28ECBAgQIAAAQIECBAgQGCYBU47LX/AlVeOOPzwfJkoAQIEGllAArSRZ0ffCBAgQIAAAQIECBAgQIDAMAr8/vcRd96ZP+BHPhIxfny+TJQAAQKNLCAB2sizo28ECBAgQIAAAQIECBAgQGAYBU49NX+wZarZg2OOyZeJEiBAoNEFJEAbfYb0jwABAgQIECBAgAABAgQIDIPAs89G/O//5g80Y0bE+uvny0QJECDQ6AISoI0+Q/pHgAABAgQIECBAgAABAgSGQeAHP4hYsCB/IDc/yruIEiDQHAISoM0xT3pJgAABAgQIECBAgAABAgSGTGDJkogzzsg3v956EQcemC8TJUCAQDMISIA2wyzpIwECBAgQIECAAAECBAgQGEKBiy6K+Otf8wc49tiItAaojQABAs0q4FtYs86cfhMgQIAAAQIECBAgQIAAgToJFN38KN31/cMfrtNBNEOAAIEREpAAHSF4hyVAgAABAgQIECBAgAABAo0g8NBDEZdemu/J3/xNxCqr5MtECRAg0CwCEqDNMlP6SYAAAQIECBAgQIAAAQIEhkDg+9+PqFTyDbv5Ud5FlACB5hKQAG2u+dJbAgQIECBAgAABAgQIECBQN4F58yLOOSff3DbbREybli8TJUCAQDMJSIA202zpKwECBAgQIECAAAECBAgQqKPAz38e8cIL+QaPPz4fFyVAgECzCYxptg7rLwECBAgQIECAAAECBAgQIFAfgXT5e25bbrmII47IlYgRWFrgySefjGeeeaYtOHv27I7CO+64I5arfpAmTJgQm222WUfcCwIjISABOhLqjkmAAAECBAgQIECAAAECBEZY4NZbI266Kd+JD34wYvLkfJkogc4CJ598cpx00kmdQ22vp0+f3va86aabxp///Odu5QIEhlPAJfDDqe1YBAgQIECAAAECBAgQIECgQQS+973ijnzsY8VlSggQINBsAs4AbbYZ018CBAgQIECAAAECBAgQIDBIgZdfjkjrf+a2vfeO2HzzXIkYge4C2223Xbzvfe/rXvBGZK211iosU0BguAQkQIdL2nEIECBAgAABAgQIECBAgECDCJx9dsScOfnOHHdcPi5KICdw5JFHRnrYCDSygARoI8+OvhEgQIAAAQIECBAgQIAAgToLVCoRp5+eb3SNNSIOPTRfNlTRK6+8Mn7yk5+0NX/DDTd0HOZLX/pSrLTSSjF27Ng444wzOuJeECBAoL8CEqD9FVOfAAECBAgQIECAAAECBAg0scAVV0Tcd19+AP/wD1FNOObLhiqabpBzzjnndGv+wgsvbIuNHz9eArSbjgABAv0RcBOk/mipS4AAAQIECBAgQIAAAQIEmlzg1FPzAxg9OiIlQG0ECBAom4AzQMs2o8ZDgAABAgQIECBAgMCABCZOnBhHH310dt8VVlghGxck0GwCTzwR8caJld26ni59X3vtbuEhDxx++OGx/fbbFx5nmWWcu1WIo4AAgT4JSID2iUklAgQIECBAgAABAgTKLjB58uQ44YQTyj5M42txgbT256JFeYSRuvnRaqutFulhI0CAwFAJ+DPKUMlqlwABAgQIECBAgAABAgQINJBASnyeeWa+QxtvHPH2t+fLRAkQINDsAhKgzT6D+k+AAAECBAgQIECAAAECBPog8OtfRzz1VL7iscdGjBqVLxMlQIBAswtIgDb7DOo/AQIECBAgQIAAAQIECBDog0DRzY+qy9/GBz/YhwZUIUCAQJMKSIA26cTpNgECBAgQIECAAAECBAgQ6KvAn/8cMWtWvvYRR0RMnZovEyVAgEAZBCRAyzCLxkCAAAECBAgQIECAAAECBHoQKDr7M+2SLn+3ESBAoMwCEqBlnl1jI0CAAAECBAgQIECAAIGWF5g9O+InP8kz7LJLxA475MtECRAgUBYBCdCyzKRxECBAgAABAgQIECBAgACBjMBPfxrxyiuZgmrI2Z95F1ECBMolIAFarvk0GgIECBAgQIAAAQIECBAgsJTA97+/1NuONyuuGPF3f9fx1gsCBAiUVkACtLRTa2AECBAgQIAAAQIECBAg0OoC118fcfvteYWjjoqYMCFfJkqAAIEyCUiAlmk2jYUAAQIECBAgQIAAAQIECHQSKLr50ahREccc06milwQIECixgARoiSfX0AgQIECAAAECBAgQIECgdQWefz7il7/Mj/+AAyI23DBfJkqAAIGyCUiAlm1GjYcAAQIECBAgQIAAAQIECFQFfvjDiPnz8xRufpR3ESVAoJwCEqDlnFejIkCAAAECBAgQIECAAIEWFliyJOL00/MA664bcdBB+TJRAgQIlFFAArSMs2pMBAgQIECAAAECBAgQINDSAjNnRjzySJ4grf05enS+TJQAAQJlFJAALeOsGhMBAgQIECBAgAABAgQItLRA0c2Pxo2L+MhHWprG4AkQaEEBCdAWnHRDJkCAAAECBAgQIECAAIHyCvzlLxEXX5wf33veE7HaavkyUQIECJRVQAK0rDNrXAQIECBAgAABAgQIECDQkgKnnRaR1gDNbccdl4uKESBAoNwCEqDlnl+jI0CAAAECBAgQIECAAIEWEkh3fU93f89tW24ZsfvuuRIxAgQIlFtAArTc82t0BAgQIECAAAECBAgQINBCAr/4RcTzz+cH7OzPvIsoAQLlFxhT/iEaIQECBAgQIECAAAECBAgQaF6BG264IU4tuqvRG8M666yzYuzYsdV6+XEuu2zE3/99vkyUAAECZReQAC37DBsfAQIECBAgQIAAAQIECDS1wCOPPBLnnntuj2M444wz4p57xkY1V5rd3v/+iJQEtREgQKAVBVwC34qzbswECBAgQIAAAQIECBAgUDqB732veEjHHltcpoQAAQJlF5AALfsMGx8BAgQIECBAgAABAgQINLXAgQceGDfddFPb4/DDD+8YyymnnNIRX7BgQvzsZx1FS73YY4+IdAMkGwECBFpVwCXwrTrzxk2AAAECBAgQIECAwFICc+fOjV/96ldLxWpvDj744FhhhRVqbz0TGFaBFVdcMdIjbauttlrHsTfddNPYaaed2t7/939HzJ7dUbTUCzc/WorDGwIEWlBAArQFJ92QCRAgQIAAAQIECBDoLjC7mj36yle+0r2gGnnb294mAZqVEWwUge9/P9+TlC897LB8mSgBAgRaRcAl8K0y08ZJgAABAgQIECBAgAABAqUUuOqqiD//OT+0o4+OGDcuXyZKgACBVhGQAG2VmTZOAgQIECBAgAABAgQIECilwKmn5oc1enTERz+aLxMlQIBAKwlIgLbSbBsrAQIECBAgQIAAAQIECJRK4KmnIv7v//JDOuigiHXXzZeJEiBAoJUEJEBbabaNlQABAgQIECBAgAABAgRKJfCDH0QsWpQfkpsf5V1ECRBoPQEJ0NabcyMmQIAAAQIECBAgQIAAgRIILF4cccYZ+YG89a0R+++fLxMlQIBAqwlIgLbajBsvAQIECBAgQIAAAQIECJRC4PrrI554Ij+UY4+NGDUqXyZKgACBVhOQAG21GTdeAgQIECBAgAABAgQIECiFwAUX5IcxYULEhz+cLxMlQIBAKwpIgLbirBszAQIECBAgQIAAAQIECDS9wG235Yfw3vdGrLhivkyUAAECrSggAdqKs27MBAgQIECAAAECBAgQIFBagXT5u40AAQIE3hSQAH3TwisCBAgQIECAAAECBAgQINDUAjvsELHzzk09BJ0nQIBA3QXG1L1FDRIgQIAAAQIECBAgQIAAAQJ1Fbjrrohzz4345S97bva443ouV0qAAIFWFJAAbcVZN2YCBAgQIECAAAECBAgQaAqB2bMjPv7xiHPOiViypOcuT50a8b739VxHKQECBFpRQAK0FWfdmAkQIECAAAECBAgQIECg4QVeeSVi770jim521HUA668fMXFi16j3BAgQIGANUJ8BAgQIECBAgAABAgQIECDQgAJHHNH35Gfq/q23RvzgBw04EF0iQIDACAtIgI7wBDg8AQIECBAgQIAAAQIECBDoKvCb30T87nddo72//+xnI15+ufd6ahAgQKCVBCRAW2m2jZUAAQIECBAgQIAAAQIEmkLgu98dWDdffDHipz8d2L72IkCAQFkFJEDLOrPGRYAAAQIECBAgQIAAAQJNKTBnTsQ11wy86zNnDnxfexIgQKCMAhKgZZxVYyJAgAABAgQIECBAgACBphV47LGIRYsG3v1HHhn4vvYkQIBAGQUkQMs4q8ZEgAABAgQIECBAgAABAk0rsGDB4Lo+f/7g9rc3AQIEyiYgAVq2GTUeAgQIECBAgAABAgQIEGhqgTXXHFz311prcPvbmwABAmUTkAAt24waDwECBAgQIECAAAECBAg0tcBKK0VstdXAhzB9+sD3tScBAgTKKCABWsZZNSYCBAgQIECAAAECBAgQaGqBD35wYN0fPTriyCMHtq+9CBAgUFYBCdCyzqxxESBAgAABAgQIECBAgEDTChx/fMT66/e/+8ccE7Hxxv3fzx4ECBAos8CYMg/O2AgQIECAAAECBAgQINBXgQkTJsR73vOebPVll102GxckMFQC1Y9j/N//Rey+e8Rrr/XtKG97W8RJJ/WtrloECBBoJQEJ0FaabWMlQIAAAQIECBAgQKBQYMqUKfH1r3+9sFwBgeEW2HrriOuui3jXuyIefrjnox92WMSPfhSREqc2AgQIEFhawCXwS3t4R4AAAQIECBAgQIAAAQIEGkYg3QzpnnsiTj45Ytttl+7W2LERM2ZEXHxxxK9+FVHN4dsIECBAICMgAZpBESJAgAABAgQIECBAgAABAo0iMH58xCc+EXHbbRFHH/1mr37zm4jf/S7igAPejHlFgAABAt0FJEC7m4gQIECAAAECBAgQIECAAIGGFEjJ0No2blztlWcCBIZK4J//+Z9j1VVXbXs88MADHYepxQ466KCOmBeNK2AN0MadGz0jQIAAAQIECBAgQIAAAQIECBAYQYHXqnche+6557r1oBZ76aWXupUJNJ6ABGjjzYkeESBAgAABAgQIECBAgAABAgQINIBAukHeiiuuWNiT5ZZbrrBMQeMISIA2zlzoCQECBAgQIECAAAECBAgQIECAQAMJ/Nd//Vekh625BawB2tzzp/cECBAgQIAAAQIECBAgQIAAAQIECPQg4AzQHnAarWjx4sUxc+bMuPzyy+Oxxx6LOXPmxGabbRZbbbVVTJs2LTbddNNG67L+ECBAgAABAgQIECBAgAABAgQIEBhRAQnQEeXv+8HT4rqf/OQn45FHHllqp5tvvjnS40c/+lF87nOfiwMOOGCpcm8IECBAgAABAgQIECBAgAABAgQItLKABGgTzP7s2bPjhBNO6Eh+brjhhrHbbrvFKqusErfffntcc801sWDBgvjqV78aqe5hhx3WBKPqexerJ7rGTTdFPPlkxMSJERtsELH11hGjRvW9jUaumcb3xz9GPP10xOTJEdXpjY03buQe969vr7wSceut7eNLa0OnsW20Uf/aaOTa1S+5uPPOiGefjVh++aieiR2x2mqN3OP+9e355yPuuCMiPU+dGrHF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Td0f5wbn7e36+wVb0rPwxz9G/6BT1zhFng0alB75br45+geBusZNmGBMzdCrqUjqZnbHHcbI6RAlyfl599113VOjHBNnHn3k3ndf9PKus44x99xTG1kSZ7mjXlsjZyjCTpFMUZKcicpfqlMxyrkrkUcf8ffeG92JpvYn6Tst8nXrVlve/7WbFUWo14v0l5bum+qmL/1FHepk221rny+K0kpDUk8G2VtU+QYPNuavf02DZLVlVKR/KY2VO+9c+/5Li4SK9L/66uhO0L32Mubaa9MinTGnnmqMouijpu99r2ER91HPX+58v/xlXWNQkyZf1Qw5NDn0r2nT2jDRY481RtHzJAhAAAIQgAAE0kOgaXqK+t0s6ZZbbhkIPmvWrGA5bOGll14KNmceF2xMyYIiOidOrI2aKxTto0i8xx4z5ogjUiLY/4qpkQ3U5U3RFIWGau1fMwTjk0+mI/olUwNy+k2bZswZZxjTqlXmnuzl3Xc35tlnjdlzz+ztSV/r0sWYZ54xRh8/bszLsDIPGlSbT79pShqrVHrRh26haKYDDjDmuedMzaRoaZKuZmTTmvtK8hWLupKzZvr02onZ0iShnA4qt7pT50tqqFB3eekvbdFL3/9+rf4KySeHp6K1//Of2siufBySuP3//q9WL4p8zJfatjXmoouMefDBwu+QfMfHuf2YY2q7+Rdqo1XD5q9/XfsekaxpSnKi6f3es2f+Uuu9ryEn1PigRrU0pb/8xZg//KGw3em9+Itf1OqvUB0niXIrClSNzl26LKuJev116F+HDgus4/r669PRMyeJnCkTBCAAAQhAIC4CTVbXpLguznWLE3jzzTdrHBE1noiaNHDgwJqupheHHqTu78OGDbOztfesqXnfUKYB6zQJ0t0K0ftfev75541mjq9WWrasduzExx83Zt68WoeaooCGDDFmwID0Vz4XLaqN+NGHusbY0seCxqHSx2+NulOfNHKDIrbkMNQIDYr41IehhgIotSt5EmFoUpZ//KNmvtjna+VT91V92O+3nzGKXkp7evfd2gi6F1+sneBDkWkax0/Ozz590i6dMXqu3HWXMWo70r2oiUi22aa20UGOqLQnOTgVgTx7tjGfflozZ/j6xuywQ22Efa9eaZfOmBdeqH1+alzJzz6rdXb262eMuoUrGjbt6bXXap1kb7xhjN6F6qar54ref2po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" width="672" /></p>
<div class="sourceCode" id="cb29"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb29-1"><a href="#cb29-1" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_WLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb29-2"><a href="#cb29-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb29-3"><a href="#cb29-3" aria-hidden="true" tabindex="-1"></a>results_sogo_number_WLS_covar <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-housing-security-benefit住居確保給付金の決定件数" class="section level1" number="9">
<h1 number="9"><span class="header-section-number">9</span> Y = housing security benefit/住居確保給付金の決定件数</h1>
<div id="ols-no-trends-4" class="section level2" number="9.1">
<h2 number="9.1"><span class="header-section-number">9.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb30"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb30-1"><a href="#cb30-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb30-2"><a href="#cb30-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_OLS</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb30-3"><a href="#cb30-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb30-4"><a href="#cb30-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb30-5"><a href="#cb30-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb30-6"><a href="#cb30-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results , include.ci = FALSE, digits=3,)</span></span>
<span id="cb30-7"><a href="#cb30-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb30-8"><a href="#cb30-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb30-9"><a href="#cb30-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb30-10"><a href="#cb30-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb30-11"><a href="#cb30-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_OLS&quot;</span>)</span>
<span id="cb30-12"><a href="#cb30-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb30-13"><a href="#cb30-13" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb30-14"><a href="#cb30-14" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_OLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb30-15"><a href="#cb30-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_OLS&quot;</span>)</span>
<span id="cb30-16"><a href="#cb30-16" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_OLS </span></code></pre></div>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABUAAAAPACAYAAAD0ZtPZAAAEDmlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPpu5syskzoPUpqaSDv41lLRsUtGE2uj+ZbNt3CyTbLRBkMns3Z1pJjPj/KRpKT4UQRDBqOCT4P9bwSchaqvtiy2itFCiBIMo+ND6R6HSFwnruTOzu5O4a73L3PnmnO9+595z7t4LkLgsW5beJQIsGq4t5dPis8fmxMQ6dMF90A190C0rjpUqlSYBG+PCv9rt7yDG3tf2t/f/Z+uuUEcBiN2F2Kw4yiLiZQD+FcWyXYAEQfvICddi+AnEO2ycIOISw7UAVxieD/Cyz5mRMohfRSwoqoz+xNuIB+cj9loEB3Pw2448NaitKSLLRck2q5pOI9O9g/t/tkXda8Tbg0+PszB9FN8DuPaXKnKW4YcQn1Xk3HSIry5ps8UQ/2W5aQnxIwBdu7yFcgrxPsRjVXu8HOh0qao30cArp9SZZxDfg3h1wTzKxu5E/LUxX5wKdX5SnAzmDx4A4OIqLbB69yMesE1pKojLjVdoNsfyiPi45hZmAn3uLWdpOtfQOaVmikEs7ovj8hFWpz7EV6mel0L9Xy23FMYlPYZenAx0yDB1/PX6dledmQjikjkXCxqMJS9WtfFCyH9XtSekEF+2dH+P4tzITduTygGfv58a5VCTH5PtXD7EFZiNyUDBhHnsFTBgE0SQIA9pfFtgo6cKGuhooeilaKH41eDs38Ip+f4At1Rq/sjr6NEwQqb/I/DQqsLvaFUjvAx+eWirddAJZnAj1DFJL0mSg/gcIpPkMBkhoyCSJ8lTZIxk0TpKDjXHliJzZPO50dR5ASNSnzeLvIvod0HG/mdkmOC0z8VKnzcQ2M/Yz2vKldduXjp9bleLu0ZWn7vWc+l0JGcaai10yNrUnXLP/8Jf59ewX+c3Wgz+B34Df+vbVrc16zTMVgp9um9bxEfzPU5kPqUtVWxhs6OiWTVW+gIfywB9uXi7CGcGW/zk98k/kmvJ95IfJn/j3uQ+4c5zn3Kfcd+AyF3gLnJfcl9xH3OfR2rUee80a+6vo7EK5mmXUdyfQlrYLTwoZIU9wsPCZEtP6BWGhAlhL3p2N6sTjRdduwbHsG9kq32sgBepc+xurLPW4T9URpYGJ3ym4+8zA05u44QjST8ZIoVtu3qE7fWmdn5LPdqvgcZz8Ww8BWJ8X3w0PhQ/wnCDGd+LvlHs8dRy6bLLDuKMaZ20tZrqisPJ5ONiCq8yKhYM5cCgKOu66Lsc0aYOtZdo5QCwezI4wm9J/v0X23mlZXOfBjj8Jzv3WrY5D+CsA9D7aMs2gGfjve8ArD6mePZSeCfEYt8CONWDw8FXTxrPqx/r9Vt4biXeANh8vV7/+/16ffMD1N8AuKD/A/8leAvFY9bLAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAVAoAMABAAAAAEAAAPAAAAAALYRw1EAAEAASURBVHgB7N0HmGRlmTDsZ5gZGHLOgoRB0oIkiUpw5UMRJa0kXXFRJCgqkhUQEBaRBQT5RBSXYADUHUU+oixJhiCCiIiS0yBIUGAkzDjD/PWUfxVV1ae6q7u6q6u77/e62j7nPW845z7VjfP0G8bNKaWQCBAgQIAAAQIECBAgQIAAAQIECBAgMAoF5hqFz+SRCBAgQIAAAQIECBAgQIAAAQIECBAgUBYQAPVBIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBAQAPUZIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBAQAPUZIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBAQAPUZIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBAQAPUZIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBAQAPUZIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBAQAPUZIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBAQAPUZIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBAQAPUZIECAAAECBAgQIECAAAECBAgQIEBg1AoIgI7aV+vBCBAgQIAAAQIECBAgQIAAAQIECBCYgIBAfwUuu+yymD59erXaFltsESuvvHL1fDgOrrzyyvjrX/9a7XqTTTaJ1VZbrXrugMBYEejGn8+xYt+f53z44Ycjf2/dfPPN8cwzz8Rzzz0Xzz//fCyyyCKx0korVb823HDD2H777WP8+PH9ab6u7H333Rf33HNPXd7uu+8eEydOrMsb6pNHHnkkrrjiirjllluqz/ziiy/GwgsvHEsttVT5a8011yw/7+abbx4TJvi/KEP9TrRPgAABAgQIECBAYKwIjJtTSmPlYT3n4AhkYDH/8V5JP/jBD+KjH/1o5XRYvq+//vp1/8D/9re/Hfvtt9+w3ItOCQynQDf+fA6nRzf1PXv27Dj//PPj1FNPjQcffLDlW1txxRVj//33j0996lOx5JJLtlyvUvCkk06Ko48+unJa/v7SSy+VA491mUN08pOf/CSOO+64uP/++1vuIQPBe+21Vxx//PGxxBJLtFxPQQIECBAgQIAAAQIECBQJmAJfpCKPAAECBAgMokCOfFxnnXVi33337VfwM2/hySefjC996UuxwgorxCGHHBKzZs0axDsbuqbyD2VbbbVV7Lbbbv0KfuYdZYD2W9/6VrzjHe8ofx+6u9QyAQIECBAgQIAAAQJjQUAAdCy8Zc9IgAABAsMm8NWvfjV22GGH+OMf/9jrPcw999y9Xp8xY0acfvrpse2228YLL7zQa9nhvjht2rR473vfW57i3869/O1vf4vPfOYzccwxx7TTjLoECBAgQIAAAQIECIxxAQtsjfEPgMcnQIAAgaER+Mc//lGetn7RRRf16GDcuHHxvve9rxwY/dd//dd429veVp6S/tprr8Wjjz5a/rrmmmviggsuiMyrTTfeeGNstNFG8fOf/zzWW2+92ktdcfz3v/89tttuu3jqqad63M+WW24Ze+yxR/l585mXXXbZeOWVV+KJJ54of02dOjVyWZXGUa4nnnhiLLPMMuVgaI9GZRAgQIAAAQIECBAgQKAPAQHQPoBc7imQUzhz44pKWmuttSqHvhMgQIDA/y9w2GGHRVHw8//8n/8TJ598cmywwQY9rOabb774l3/5l/LXhz/84cjRo7mmca7jWRsIzYBhjrD8/e9/H8svv3yPdoYz49xzz+0x5T0Dtt/85jdj00037XFrGdjMqe6Zcp3TY489Nr7yla/E97///bqyOf1/l112KQdN6y44IUCAAAECBAgQIECAQB8CAqB9ALncU+Dwww/vmSmHAAECBKoCU6ZMiTPPPLN6nge5k/vXvva1OPTQQ+vyeztZbLHFyut/ZtD0Qx/6UDz77LPV4jk9PAOGV111VTVvuA9mzpxZnqZfex8rr7xyecf7VjdwyvIZOM62Lr300mpTlSUAchMpiQABAgQIECBAgAABAv0RsAZof7SUJUCAAAECfQj8+c9/jn322aeuVE55//GPf9yv4GdtAzmC8vbbb6+OlKxcu/rqq+O73/1u5XTYv//617+OfP7adM455wxo9/rvfe97sfrqq9c2FTm6NJcWkAgQIECAAAECBAgQINAfAQHQ/mgpS4AAAQIE+hA444wz4uWXX64r9eUvf7k8fbsus58nb3/72+OHP/xhzDVX/X+6c2r4008/3c/Whqb4Qw89VNfwhAkT4j3veU9dXqsn888/f49A8vTp0+PBBx9stQnlCBAgQIAAAQIECBAgUBYwBd4HgUCXC+Ropwwq3H///eXpr0sssUR5M5B3vetdkQGCkZ5yDcPHHnusHMDJYEmuB5gbu6ywwgoj8tFy85a77rqrvKHLc889F0sttVT5WdZff/2YNGlSr8+Um8dU6r7xxhvl0X5rrrlmLL300r3W68/FV199NW699dbIXbpff/318nqKq622WnnNyf6001fZbD/f7V/+8pfIoNXiiy9efrcbb7xxLLDAAn1Vb/l6Gt90003ldYnzOd75zndG/owMV8rAZ45SrE1rr712HH/88bVZAz7OkaCf/exn46yzzqq2kb65XuaRRx5ZzRuug8aNjxZddNHIdU0HmnLH+yOOOKKu+h/+8IdIU4kAAQIECBAgQIAAAQKtCgiAtiqlXFUgR/NkwKqScmOLnXfeuXJa/b7OOutErlFXSfkP9G222aZy2uf3yZMnRwaBKuknP/lJbLbZZpXTtr8/+eSTkZuMvPDCC9W2cprq17/+9dhzzz3L956blNROt8x/iB900EHV8q0efOADHygHgyrlcwOUf//3f6+c9viea93lKLILL7wwHn744R47ImeFueeeO3JH5QyG7Ljjjj3a6IaM3KSlMlpr3nnnLQdy877y+U477bTyDteNI8Yq9532n/vc5+LjH/945HvpLXXys1b7TAsvvHBkMCZTBhbzvf73f/93PPPMMz1uN4NyuYFY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xB0RIECAAAECBAgQIECAAAECBAgQIDBIAgKggwSpGQIECBAgQIAAAQIECBAgQIAAAQIEuk9AALT73ok7IkCAAAECBAgQIECAAAECBAgQIEBgkAQEQAcJUjMECBAgQIAAAQIECBAgQIAAAQIECHSfgABo970Td0SAAAECBAgQIECAAAECBAgQIECAwCAJCIAOEqRmCBAgQIAAAQIECBAgQIAAAQIECBDoPgEB0O57J+6IAAECBAgQIECAAAECBAgQIECAAIFBEpgwSO1oZpQKnHLKKXHbbbdVn+60006LVVddtXrugAABAgQIECBAgMBoEXj99dfjoosuKnyc3XbbLRZddNHCazIJECBAgACB7hYYN6eUuvsW3d1wCuy6664xZcqU6i385je/iQ033LB67oAAAQIECBAgQIDAaBF44YUXYosttih8nCuuuCImT55ceE0mAQIECBAg0N0CpsB39/txdwQIECBAgAABAgQIECBAgAABAgQItCEgANoGnqoECBAgQIAAAQIECBAgQIAAAQIECHS3gABod78fd0eAAAECBAgQIECAAAECBAgQIECAQBsCAqBt4KlKgAABAgQIECBAgAABAgQIECBAgEB3CwiAdvf7cXcECBAgQIAAAQIECBAgQIAAAQIECLQhIADaBp6qBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H3dHgAABAgQIECBAgAABAgQIECBAgEAbAgKgbeCpSoAAAQIECBAgQIAAAQIECBAgQIBAdwsIgHb3+3F3BAgQIECAAAECBAgQIECAAAECBAi0ISAA2gaeqgQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3vx93R4AAAQIECBAgQIAAAQIECBAgQIBAGwICoG3gqUqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/txdwQIECBAgAABAgQIECBAgAABAgQItCEwoY26Y7LqoYceGnfccUd84QtfiF133bUlg9mzZ8dVV10V1113XTz11FPx2muvxZprrhnrrLNObLbZZrHGGmt0tJ2WOlOIAAECBAgQIECAAAECBAgQIECAwCgQEADtx0ucMmVKOfjZjyrx/PPPxyGHHBKPPfZYXbU777wz8uvCCy+Mo446Krbbbru6640ng9VOY7vOCRAgQIAAAQIECBAgQIAAAQIECIxmAQHQFt/uL3/5y/jGN77RYul/Fnv11VfjsMMOqwY/J0+eHFtssUUsueSScc8998TNN98cM2fOjBNPPDGy7C677FLY/mC1U9i4TAIECBAgQIAAAQIECBAgQIAAAQKjWEAAtI+XO2PGjPje974Xl156acyZM6eP0vWXzz///HjkkUfKmdtss00cc8wxMXHixPL5jjvuGPfee28cfvjh5eDnWWedFVtuuWUsscQS9Y2UzgarnR4NyyBAgAABAgQIECBAgAABAgQIECAwygVsgtTLC85Rmp/4xCfi4osvjjfffLOXkj0vvfLKK/GLX/yifGGppZaqC35WSq+77rrl/DzPdUIr5SvX8/tgtVPbpmMCBAgQIECAAAECBAgQIECAAAECY0VAALTgTedIz9NPPz0OOuigmDZtWrnEiiuu2PKmR1nhhhtuiNdff71cd6eddqqO/Cxn1PxPTolfYYUVyjkZAJ01a1bN1cFrp65RJwQIECBAgAABAgQIECBAgAABAgTGiIAAaMGLztGeP/vZz6pXPvjBD5anwecanpU0bty4ymHh9/vuu6+av/HGG1ePiw422mijcvaLL74Yd999d12RwWqnrlEnBAgQIECAAAECBAgQIECAAAECBMaIgDVAe3nR73rXu8pT4HOqen/TH/7wh3KVDJSuuuqqvVavDaw++uijURswHax2er0BFwkQIECAAAECBAgQiLnnnjve+973FkrMP//8hfkyCRAgQIAAge4XEAAteEdzzTVXfPvb346111674GprWU8//XS5YO74PmFC78xLL710tdEnn3yyepwHg9VOXaNOCBAgQIAAAQIECBDoIbDQQgvFOeec0yNfBgECBAgQIDCyBXqPzI3sZxvw3eeozXaCn7n2Z2XTpEUXXbTP+1hkkUWqZXLTo0oarHYq7RV9/8xnPhM33XRT0aVyXq5JmiNUMxBbWdO0aWEXCBAgQIAAAQIECBAgQIAAAQIECHSZgADoELyQV199tdrqPPPMUz1udlBb5o033qgWG6x2qg0WHGSA8x//+EfBlbeyckSsRIAAAQIECBAgQIAAAQIECBAgQGAkCohsDcFbe+2116qt5jpCfaXaMjNmzKgWH6x2qg06IECAAAECBAgQIECAAAECBAgQIDDGBIwAHYIXXrvm5+zZs/vsIUdhVlJtMHSw2qm0XfQ91zlabLHFii6V815++eWoDco2LegCAQIECBAgQIAAAQIECBAgQIAAgS4UEAAdgpcy77zzVludOXNm9bjZQW2Z2t0lB6udZv1m/qmnntrb5dh1111jypQpvZZxkQABAgQIECBAgAABAgQIECBAgEC3CgiADsGbmW+++aqt1q7jWc1sOKid6l4bAB2sdhq6c0qAAAECBAgQIECAAAECBAh0SODmm2+O66+/vmlvCy64YBxyyCFNr7tAgED7AgKg7Rv2aCE3NVp88cXjxRdfjOeee67H9caMv/zlL9Ws2unog9VOtXEHBAgQIECAAAECBAgQIECAQEcFMgB6/PHHN+1zmWWWEQBtquMCgcERsAnS4Dj2aGXllVcu5+Xozr/97W89rtdmTJs2rXq65pprVo/zYLDaqWvUCQECBAgQIECAAAECBAgQIECAAIExIiAAOkQveq211qq2/Lvf/a56XHRw7733VrNr62Vm7Xk77VQ7cECAAAECBAgQIECAAAECBAh0TGCXXXaJSy65pPy13nrrVfs988wzy3nnnntuNc8BAQJDIyAAOjSusfXWW1dbvuaaa6rHjQc5/f23v/1tOXv11VfvsSP7YLXT2K9zAgQIECBAgAABAgQIECBAYOgFcmDT7rvvXv5adtllqx3usMMO5bwPf/jD1TwHBAgMjYAA6NC4xmqrrRYZ0Mx0yy23RFEQdMaMGfG1r30tZs+eXS730Y9+tPy99n8Gq53aNh0TIECAAAECBAgQIECAAAECBAgQGCsCAqBD+KYPPvjgausnnXRSXHjhhfHnP/85Zs2aFTntPXd5+81vflMuk38R2mqrrarlaw8Gq53aNh0TIECAAAECBAgQIECAAAECBAgQGAsCdoEfwre89tprl3d6O/nkk+ONN96I8847r/w1fvz46qjP7H755ZePU045JeaaqzgePVjtDOGjapoAAQIECBAgQIAAAQIECBAgQIBAVwoUR9y68lZH5k29973vjVzQOKfDVwKclSnvEyZMiI985CPl64ssskivDzhY7fTaiYsECBAgQIAAAQIECBAgQIAAAQIERpmAEaD9eKG5QHF+9Tetssoq5ZGfOQr0oYceitz4aLnllosVV1wxFlhggZabG6x2Wu5QQQIECBAgQIAAAQIECBAgQIAAAQIjXEAAtIMvcNKkSbHOOuuUv9rpdrDaaece1CVAgAABAgQIECBAgAABAgQIECAwEgRMgR8Jb8k9EiBAgAABAgQIECBAgAABAgQIECAwIAEB0AGxqUSAAAECBAgQIECAAAECBAgQIECAwEgQEAAdCW/JPRIgQIAAAQIECBAgQIAAAQIECBAgMCABAdABsalEgAABAgQIECBAgAABAgQIECBAgMBIEBAAHQlvyT0SIECAAAECBAgQIECAAAECBAgQIDAgAQHQAbGpRIAAAQIECBAgQIAAAQIECBAgQIDASBAQAB0Jb8k9EiBAgAABAgQIECBAgAABAgQIECAwIIEJA6qlEgECBAgQIECAAAECBEaZwMyZM+POO+8sfKr1118/5ptvvsJrMgkQIECAAIHuFhAA7e734+4IECBAgAABAgQIEOiQwCuvvBL77LNPYW9XXHFFTJ48ufCaTAIECBAgQKC7BUyB7+734+4IECBAgAABAgQIECBAgAABAgQIEGhDQAC0DTxVCRAgQIAAAQIECBAgQIAAAQIECBDobgEB0O5+P+6OAAECBAgQIECAAAECBAgQIECAAIE2BARA28BTlQABAgQIECBAgAABAgQIECBAgACB7hYQAO3u9+PuCBAgQIAAAQIECBAgQIAAAQIECBBoQ0AAtA08VQkQIECAAAECBAgQIECAAAECBAgQ6G4BAdDufj/ujgABAgQIECBAgAABAgQIECBAgACBNgQEQNvAU5UAAQIECBAgQIAAAQIECBAgQIAAge4WEADt7vfj7ggQIECAAAECBAgQIECAAAECBAgQaENAALQNPFUJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/7o4AAQIECBAgQIAAAQIECBAgQIAAgTYEBEDbwFOVAAECBAgQIECAAAECBAgQIECAAIHuFhAA7e734+4IECBAgAABAgQIECBAgAABAgQIEGhDQAC0DTxVCRAgQIAAAQIECBAgQIAAAQIECBDobgEB0O5+P+6OAAECBAgQIECAAAECBAgQIECAAIE2BARA28BTlQABAgQIECBAgAABAgQIECBAgACB7hYQAO3u9+PuCBAgQIAAAQIECBAgQIAAAQIECBBoQ0AAtA08VQkQIECAAAECBAgQIECAAAECBAgQ6G4BAdDufj/ujgABAgQIECBAgAABAgQIECBAgACBNgQEQNvAU5UAAQIECBAgQIAAAQIECBAgQIAAge4WEADt7vfj7ggQIECAAAECBAgQIECAAAECBAgQaENAALQNPFUJECBAgAABAgQIECBAgAABAgQIEOhuAQHQ7n4/7o4AAQIECBAgQIAAAQIECBAgQIAAgTYEJrRRV1UCBAgQIECAAAECBAiMGoEJEybEBhtsUPg8kyZNKsyXSYAAAQIECHS/gABo978jd0iAAAECBAgQIECAQAcEFllkkbj44os70JMuCBAgQIAAgU4KmALfSW19ESBAgAABAgQIECBAgAABAgQIECDQUQEB0I5y64wAAQIECBAgQIAAAQIECBAgQIAAgU4KCIB2UltfBAgQIECAAAECBAgQIECAAAECBAh0VEAAtKPcOiNAgAABAgQIECBAgAABAgQIECBAoJMCAqCd1NYXAQIECBAgQIAAAQIECBAgQIAAAQIdFRAA7Si3zggQIECAAAECBAgQIECAAAECBAgQ6KSAAGgntfVFgAABAgQIECBAgAABAgQIECBAgEBHBQRAO8qtMwIECBAgQIAAAQIECBAgQIAAAQIEOikgANpJbX0RIECAAAECBAgQIECAAAECBAgQINBRAQHQjnLrjAABAgQIECBAgAABAgQIECBAgACBTgoIgHZSW18ECBAgQIAAAQIECBAgQIAAAQIECHRUQAC0o9w6I0CAAAECBAgQIECAAAECBAgQIECgkwICoJ3U1hcBAgQIECBAgAABAgQIECBAgAABAh0VEADtKLfOCBAgQIAAAQIECBAgQIAAAQIECBDopIAAaCe19UWAAAECBAgQIECAAAECBAgQIECAQEcFBEA7yq0zAgQIECBAgAABAgQIECBAgAABAgQ6KSAA2kltfREgQIAAAQIECBAgQIAAAQIECBAg0FEBAdCOcuuMAAECBAgQIECAAAECBAgQIECAAIFOCgiAdlJbXwQIECBAgAABAgQIECBAgAABAgQIdFRAALSj3DojQIAAAQIECBAgQIAAAQIECBAgQKCTAgKgndTWFwECBAgQIECAAAECBAgQIECAAAECHRUQAO0ot84IECBAgAABAgQIECBAgAABAgQIEOikgABoJ7X1RYAAAQIECBAgQIAAAQIECBAgQIBARwUmdLQ3nREgQIAAAQIECBAgQKBLBWbNmhUPPvhg4d2tuuqqMc888xRek0mAAAECBAh0t4AAaHe/H3dHgAABAgQIECBAgECHBF566aXYeeedC3u74oorYvLkyYXXZBIgQIAAAQLdLWAKfHe/H3dHgAABAgQIECBAgAABAgQIECBAgEAbAgKgbeCpSoAAAQIECBAgQIAAAQIECBAgQIBAdwsIgHb3+3F3BAgQIECAAAECBAgQIECAAAECBAi0ISAA2gaeqgQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3vx93R4AAAQIECBAgQIAAAQIECBAgQIBAGwICoG3gqUqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/txdwQIECBAgAABAgQIECBAgAABAgQItCEgANoGnqoECBAgQIAAAQIECBAgQIAAAQIECHS3gABod78fd0eAAAECBAgQIECAAAECBAgQIECAQBsCAqBt4KlKgAABAgQIECBAgAABAgQIECBAgEB3CwiAdvf7cXcECBAgQIAAAQIECBAgQIAAAQIECLQhIADaBp6qBAgQIECAAAECBAgQIECAAAECBAh0t4AAaHe/H3dHgAABAgQIECBAgAABAgQIECBAgEAbAgKgbeCpSoAAAQIECBAgQIAAAQIECBAgQIBAdwsIgHb3+3F3BAgQIECAAAECBAgQIECAAAECBAi0ISAA2gaeqgQIECBAgAABAgQIECBAgAABAgQIdLeAAGh3vx93R4AAAQIECBAgQIAAAQIECBAgQIBAGwICoG3gqUqAAAECBAgQIECAAAECBAgQIECAQHcLCIB29/txdwQIECBAgAABAgQIECBAgAABAgQItCEgANoGnqoECBAgQIAAAQIECBAgQIAAAQIECHS3gABod78fd0eAAAECBAgQIECAAAECBAgQIECAQBsCAqBt4KlKgAABAgQIECBAgAABAgQIECBAgEB3CwiAdvf7cXcECBAgQIAAAQIECBAgQIAAAQIECLQhMKGNuqoSIECAAAECBAgQIEBg1AjMNddcsfLKKxc+z8SJEwvzZRIgQIAAAQLdLyAA2v3vyB0SIECAAAECBAgQINABgcUWWyyuvvrqDvSkCwIECBAgQKCTAqbAd1JbXwQIECBAgAABAgQIECBAgAABAgQIdFRAALSj3DojQIAAAQIECBAgQIAAAQIECBAgQKCTAgKgndTWFwECBAgQIECAAAECBAgQIECAAAECHRUQAO0ot84IECBAgAABAgQIECBAgAABAgQIEOikgABoJ7X1RYAAAQIECBAgQIAAAQIECBAgQIBARwUEQDvKrTMCBAgQIECAAAECBAgQIECAAAECBDopIADaSW19ESBAgAABAgQIECBAgAABAgQIECDQUQEB0I5y64wAAQIECBAgQIAAAQIECBAgQIAAgU4KCIB2UltfBAgQIECAAAECBAgQIECAAAECBAh0VEAAtKPcOiNAgAABAgQIECBAgAABAgQIECBAoJMCAqCd1NYXAQIECBAgQIAAAQIECBAgQIAAAQIdFRAA7Si3zggQIECAAAECBAgQIECAAAECBAgQ6KSAAGgntfVFgAABAgQIECBAgAABAgQIECBAgEBHBQRAO8qtMwIECBAgQIAAAQIECBAgQIAAAQIEOikgANpJbX0RIECAAAECBAgQIECAAAECBAgQINBRAQHQjnLrjAABAgQIECBAgAABAgQIECBAgACBTgoIgHZSW18ECBAgQIAAAQIECBAgQIAAAQIECHRUQAC0o9w6I0CAAAECBAgQIECAAAECBAgQIECgkwICoJ3U1hcBAgQIECBAgAABAgQIECBAgAABAh0VEADtKLfOCBAgQIAAAQIECBAgQIAAAQIECBDopIAAaCe19UWAAAECBAgQIEBlM5GfAABAAElEQVSAAAECBAgQIECAQEcFJnS0tzHU2amnnhqzZ8/u9xMvvvjise+++/aoN3Xq1Lj11lt75BdlTJo0KQ466KCiS/IIECBAgAABAgQIECBAgAABAgQIjCkBAdAhet1XXHHFgAKgK664YmEA9Nprr43rr7++pbudf/75BUBbklKIAAECBAgQIECAAAECBAgQIEBgtAsIgHbZG15ooYUK7+ihhx4qzJdJgAABAgQIECBAgMDgCLz55pvxl7/8pbCxJZdcMiZM8M+nQhyZBAgQIECgywX8F3yIXtCUKVNaannatGlx8MEHx8yZM2O++eaLI488ske9119/PbJcpo022iiOPvroHmVqM+aay9KutR6OCRAgQIAAAQIECLQi8Ne//jW23nrrwqI5w2vy5MmF12QSIECAAAEC3S0gADpE72exxRbrs+UZM2bEGWecUQ5+ZuFjjjkm3v72t/eo98gjj8ScOXPK+WuttVbkOqESAQIECBAgQIAAAQIECBAgQIAAAQJ9Cxgq2LfRkJU488wz4+GHHy63v+eee8a73/3uwr5qp7+vvvrqhWVkEiBAgAABAgQIECBAgAABAgQIECDQU0AAtKdJR3LuuuuuuPzyy8t9LbPMMrHPPvs07VcAtCmNCwQIECBAgAABAgQIECBAgAABAgR6FRAA7ZVnaC7OmjWrPPW90nquATpp0qTKaY/vlQDoIossEksvvXT5ek6Jf/bZZ+Pll1/uUV4GAQIECBAgQIAAAQIECBAgQIAAAQL/FLAG6DB8En7yk5/EE088Ue55yy23jM0337zpXcyePTseffTR8vWc/v773/8+Lrjggrj33nvjjTfeKOcvtdRSkWuD7r///rH88ss3bcsFAgQIECBAgAABAgQIECBAgAABAmNNQAC0w2/81VdfjQsvvLDc67hx4+LTn/50r3fw5JNPVjdJyqDngQce2KP8c889F/l1++23xwEHHBC77LJLjzLNMq655ppqMLaozPPPPx+LLrpoTJ8+PXLkqkSAAAECBAgQIECAAAECBAgQIEBgJAkIgHb4bV122WWRQdBMW2+9deGu77W3VJn+nnmvv/56ear8euutF+uvv37kTvOPPfZY3HjjjfHnP/+5PCI0d5VfcMEFY9ttt61tpunxlClTyvWbFihdWHLJJcttC4D2puQaAQIECBAgQIAAAQIECBAgQIBANwoIgHbwrfzjH/+IH//4x9UeP/7xj1ePmx3UBkCXWGKJOP3002PllVeuK/4f//EfcdZZZ1U3Vcrd5TfaaKPyyM26gk4IECBAgAABAgQIECBAgAABAgQIjDEBAdAOvvBrr702XnzxxXKPue7n5MmT++x9xx13jLXXXjueeeaZ8ojRZZddtked3EDpkEMOiT/96U+RAdPcGCkDrfvtt1+PsjIIECBAgAABAgQIECBAgAABAgQIjCUBAdAOvu1cb7OSPvjBD1YOe/3+tre9LfKrrzR+/PjYZ5994qijjioXrR052lvdvfbaK7baaqumRb7zne/EPffcEzl6VSJAgAABAgQIECBAgAABAgQIECAw0gQEQDv0xv72t7/F7373u3JvCyywQGy66aaD3nPtiNLKzvF9ddJb8DPr/s///E95RGlf7bhOgAABAgQIECBAgAABAgQIECBAoBsF5urGmxqN9/SrX/0q3nzzzfKjZdBx7rnnHvTHzM2KKimnwUsECBAgQIAAAQIECBAgQIAAAQIExrqAEaAd+gTcfPPN1Z7e9773VY/7Osgd43P06IwZM2LVVVfttfhzzz1Xvb7CCitUjx0QIECAAAECBAgQIECAAAECBAgQGKsCAqAdePNz5syJ++67r9rTWmutVT3u7eC1116LXCt09uzZ5RGjV155ZcwzzzxNqzz++OPVayuuuGL12AEBAgQIECBAgAABAgQIECBAgACBsSpgCnwH3vwTTzwROZIz01JLLRXzzTdfS71muUqwdObMmXHHHXf0Wu9HP/pR9fq73/3u6rEDAgQIECBAgAABAgQIECBAgAABAmNVQAC0A2/+D3/4Q7WXVVZZpXrcykFtIPPMM8+M6dOnF1b76U9/Wt6tPS+uttpqse222xaWk0mAAAECBAgQIECAAAECBAgQIEBgLAkIgHbgbecI0ErqbwB0t912i3XWWadcPdf43HfffWPq1KmR0+NnzZoVDz30UJx00kmRwdFMubnS5z73uRg3blz53P8QIECAAAECBAgQIECAAAECBAgQGMsC1gDtwNv/61//Wu1l5ZVXrh63cjBhwoQ4/vjjy0HNadOmxdNPPx1HHnlkuWpeyyBoJeX0+gyGrrHGGpUs3wkQIECAAAECBAgQIECAAAECBAiMaQEjQDvw+l988cVqL/0dAZoVl1xyybjooovigAMOiPnnn7/aViX4ucgii8Q222wT5513nuBnVccBAQIECBAgQIAAAQIECBAgQIAAgQgjQDvwKTjjjDPa7mXixImx1157xR577BHPPvtsPPnkk5EbI73jHe+IZZZZpu32NUCAAAECBAgQIECAAAECBAgQIEBgNAoIgI6wtzrXXHPFcsstV/4aYbfudgkQIECAAAECBAgQIECAAAECBAh0XMAU+I6T65AAAQIECBAgQIAAAQIECBAgQIAAgU4JCIB2Slo/BAgQIECAAAECBAgQIECAAAECBAh0XMAU+I6T65AAAQIECBAgQIAAgW4UyOWmcoPRopTXJAIECBAgQGBkCgiAjsz35q4JECBAgAABAgQIEBhkgcUWWyzuuOOOQW5VcwQIECBAgMBwC/gz5nC/Af0TIECAAAECBAgQIECAAAECBAgQIDBkAgKgQ0arYQIECBAgQIAAAQIECBAgQIAAAQIEhltAAHS434D+CRAgQIAAAQIECBAgQIAAAQIECBAYMgEB0CGj1TABAgQIECBAgAABAgQIECBAgAABAsMtIAA63G9A/wQIECBAgAABAgQIECBAgAABAgQIDJmAAOiQ0WqYAAECBAgQIECAAAECBAgQIECAAIHhFhAAHe43oH8CBAgQIECAAAECBAgQIECAAAECBIZMQAB0yGg1TIAAAQIECBAgQIAAAQIECBAgQIDAcAsIgA73G9A/AQIECBAgQIAAAQIECBAgQIAAAQJDJiAAOmS0GiZAgAABAgQIECBAgAABAgQIECBAYLgFBECH+w3onwABAgQIECBAgAABAgQIECBAgACBIRMQAB0yWg0TIECAAAECBAgQIECAAAECBAgQIDDcAgKgw/0G9E+AAAECBAgQIECAAAECBAgQIECAwJAJCIAOGa2GCRAgQIAAAQIECBAgQIAAAQIECBAYbgEB0OF+A/onQIAAAQIECBAgQIAAAQIECBAgQGDIBARAh4xWwwQIECBAgAABAgQIECBAgAABAgQIDLeAAOhwvwH9EyBAgAABAgQIECBAgAABAgQIECAwZAICoENGq2ECBAgQIECAAAECBAgQIECAAAECBIZbQAB0uN+A/gkQIECAAAECBAgQIECAAAECBAgQGDIBAdAho9UwAQIECBAgQIAAAQIECBAgQIAAAQLDLSAAOtxvQP8ECBAgQIAAAQIECBAgQIAAAQIECAyZgADokNFqmAABAgQIECBAgAABAgQIECAQ8ec/R5x9dsQ997yl8bWvRfzqV2+dOyJAYOgEBECHzlbLBAgQIECAAAECBAgQIECAwBgWmDEj4tBDI1ZZJeKggyKeeeYtjO9+N2LLLSM226w+MPpWCUcECAyWwITBakg7BAgQIECAAAECBAgQGOkCr7/+euEjTJo0KcaNG1d4TSYBAgSKBF56KeL974+4446iq2/l3X57xBZbRFx8ccSHP/xWviMCBAZPQAB08Cy1RIAAAQIECBAgQIDACBZ44YUXSkGIUhSiIF1xxRUxefLkgiuyCBAg0FNgzpyI3XfvO/hZqfnaaxF77hkxdWrEeutVcn0nQGCwBEyBHyxJ7RAgQIAAAQIECBAgQIAAAQIESgI//GHEtdf2jyKDoAcc0L86ShMg0JqAAGhrTkoRIECAAAECBAgQIECAAAECBFoSOPXUlor1KJTT4W2M1INFBoG2BQRA2ybUAAECBAgQIECAAAECBAgQIEDgnwJPPBFx770D17j88oHXVZMAgWIBAdBiF7kECBAgQIAAAQIECBAgQIAAgX4LPPRQv6vUVXjwwbpTJwQIDIKAAOggIGqCAAECBAgQIECAAAECBAgQIJAC06e359Bu/fZ6V5vA6BQQAB2d79VTESBAgAABAgQIECBAgAABAsMgsMwy7XXabv32elebwOgUEAAdne/VUxEgQIAAAQIECBAgQIAAAQLDIPDOd0bMO+/AO95ss4HXVZMAgWIBAdBiF7kECBAgQIAAAQIECBAgQIAAgX4LzDdfxI479rtaucI880TsssvA6qpFgEBzgQnNL7lCgAABAgQIECBAgAABAgQIECDQX4Hjj4+YMiVi5sz+1TzooIjllutfneEu/eSTT8YzzzzT9DbmLQ2HXXfddZted4FAJwQEQDuhrA8CBAgQIECAAAECBAgQIEBgzAi84x0R3/pWxKc+1foj5+jP445rvXy3lDzrrLPitNNOa3o7a6yxRvzxj39set0FAp0QMAW+E8r6IECAAAECBAgQIECAAAECBMaUwCc/GXH22a0/8owZERdf3Hp5JQkQaF3ACNDWrZQkQIAAAQIECBAgQIAAAQIECLQssNJKLRctFzzppIi9946YOLF/9Yaz9Lve9a7SPZduupSuuOKKeOGFF8rHe+yxR8xTGta63Eib01++e/8z2gQEQEfbG/U8BAgQIECAAAECBAgQIECAQFcI3Hxz/27j8ccjvve9iP3371+94Sy9++67R35l2qy0hX0lAPqt0hoAiy666HDemr4JVAVMga9SOCBAgAABAgQIECBAgAABAgQIDJ5AbwHQ8eOL+/nP/+z/5knFLcklQKAiIABakfCdAAECBAgQIECAAAECBAgQIDBIAm+8EfHb3zZvbLfdiq899VTEd75TfE0uAQIDExAAHZibWgQIECBAgAABAgQIECBAgACBpgJTp0bkxkbN0oEHRsw9d/HVk0+OyACqRIDA4AgIgA6Oo1YIECBAgAABAgQIECBAgAABAlWB3qa/Z6HcG2jffavF6w7+/OeIc86py3JCgEAbAgKgbeCpSoAAAQIECBAgQIAAAQIECBAoEugrAJp1jjoqSjulF9WO+PrXI15/vfiaXAIE+icgANo/L6UJECBAgAABAgQIECBAgAABAr0KzJoVceedvRYpX1x++eY7vj/7bMTZZ/fdhhIECPQtIADat5ESBAgQIECAAAECBAgQIECAAIGWBe64I+LVV1srfsQREfPOW1z21FNbb6e4BbkECKSAAKjPAQECBAgQIECAAAECBAgQIEBgEAWaTX+fqyAKs+yyEZ/5THHnzz8fceaZxdfkEiDQukDBj17rlZUkQIAAAQIECBAgQIAAAQIECBCoF7jppvrzytlii1WO6r8fdljE/PPX51XOTj89Yvr0ypnvBAgMREAAdCBq6hAgQIAAAQIECBAgQIAAAQIECgTefDMip8AXpWYB0KWWijjooKIaES++GHHGGcXX5BIg0JqAAGhrTkoRIECAAAECBAgQIECAAAECBPoUuPvuiJdeKi626KLF+Zl76KERCyxQfD0DoC+/XHxNLgECfQtM6LuIEgQIECBAgAABAgQIEBj9AksssUQ88MADo/9BPSEBAkMq0Gz9z7nnjlh44eZdL754xMEHR3z1qz3LZED1tNMiTjih5zU5BAj0LWAEaN9GShAgQIAAAQIECBAgQIAAAQIEWhJoFgDdbLOI8eN7byIDoM2CpLkZ0t/+1nt9VwkQKBYQAC12kUuAAAECBAgQIECAAAECBAgQ6LfAbbcVV9lyy+L82tycIv/FL9bmvHX8yisRX//6W+eOCBBoXUAAtHUrJQkQIECAAAECBAgQIECAAAECTQXuuy/iueeKL7cSAM2an/98RLO1Qs8+O+KFF4rbl0uAQHMBAdDmNq4QIECAAAECBAgQIECAAAECBFoWaDb9Pae+b7JJa83kFPjcEKko/f3vEaecUnRFHgECvQkIgPam4xoBAgQIECBAgAABAgQIECBAoEWBZgHQjTaKWHDBFhspFTvooIjcFKkofetbzUeZFpWXR4BAhACoTwEBAgQIECBAgAABAgQIECBAYBAEbr21uJFWp79Xamew9IgjKmf13197LeLkk+vznBEg0LuAAGjvPq4SIECAAAECBAgQIECAAAECBPoUePjhiKeeKi7W3wBotnLggRFLLVXc3rnnRjzzTPE1uQQI9BQQAO1pIocAAQIECBAgQIAAAQIECBAg0C+BZtPfx42L2GyzfjVVLjz//BFHHllc7/XXI046qfiaXAIEegoIgPY0kUOAAAECBAgQIECAAAECBAgQ6JdAswDouus2X8+zrw723z9imWWKS513XsS0acXX5BIgUC8gAFrv4YwAAQIECBAgQIAAAQIECBAg0G+BZgHQgUx/r3Q+77wRX/pS5az++4wZESeeWJ/njACBYgEB0GIXuQQIECBAgAABAgQIECBAgACBlgSefTbisceKi261VXF+q7mf/nTE8ssXlz7//Ignnii+JpcAgbcEBEDfsnBEgAABAgQIECBAgAABAgQIEOi3wPXXN68ykPU/a1ubZ56Io4+uzXnreObMiBNOeOvcEQECxQICoMUucgkQIECAAAECBAgQIECAAAECLQncdFNxsTXWiFhuueJr/cndZ5+IFVcsrnHRRRGPPlp8TS4BAv8UEAD1SSBAgAABAgQIECBAgAABAgQItCEwFOt/1t7O3HNHHHNMbc5bx7NmRRx//FvnjggQ6CkgANrTRA4BAgQIECBAgAABAgQIECBAoCWBv/414oEHiou2swFSY4t77x2x8sqNuf88/+EPIx56qPiaXAIEIgRAfQoIECBAgAABAgQIECBAgAABAgMUuOGGiDlziitvvnlx/kByJ06M+MpXimvOnh1x3HHF1+QSICAA6jNAgAABAgQIECBAgAABAgQIEBiwQLPp7yut1HzE5kA7+9jHIiZPLq59ySURf/xj8TW5BMa6gBGgY/0T4PkJECBAgAABAgQIECBAgACBAQs0C4AO5vT3ys2NH998pOebbzYfIVqp7zuBsSogADpW37znJkCAAAECBAgQIECAAAECBNoSmD494ve/L25iKAKg2dOee0bk7vJF6ac/jbjvvqIr8giMbQEB0LH9/j09AQIECBAgQIAAAQIECBAgMECBHP2Z628WpaEKgM5ViuQ0W+8z1yI99tiiu5FHYGwLCICO7ffv6QkQIECAAAECBAgQIECAAIEBCjSb/r7kkhGrrTbARluo9pGPRKy9dnHBn/884p57iq/JJTBWBQRAx+qb99wECBAgQIAAAQIECBAgQIBAWwLNAqDbbNNWs31WzlGgJ5xQXMwo0GIXuWNbQAB0bL9/T0+AAAECBAgQIECAAAECBAgMQOCNNyLuvru44lBNf6/tbeedI975ztqct44vvzziN79569wRgbEuIAA61j8Bnp8AAQIECBAgQIAAAQIECBDot8DUqREzZxZX60QAdNy45qNA866OOab43uQSGIsCE8biQ3tmAgQIECBAgAABAgQINAq8+OKLsU2Teas/+9nPYtVVV22s4pwAgTEs0Gz6+8ILN1+fc7C5PvzhiA03jLjrrp4tX311xO23R2y6ac9rcgiMNQEjQMfaG/e8BAgQIECAAAECBAgUCswpLZw3Y8aMwq+8JhEgQKBWoFkAdKutInKNzk6lZmuBZv9GgXbqLein2wU6+CPZ7RTujwABAgQIECBAgAABAgQIECDQt8CsWRG//nVxuQyAdjJtv33EJpsU93jddRG33FJ8TS6BsSQgADqW3rZnJUCAAAECBAgQIECAAAECBNoWuOOOiNdeK26mE+t/Nvb81a825rx1fuyxbx07IjBWBQRAx+qb99wECBAgQIAAAQIECBAgQIDAgARuuqm42nzzNd+ZvbjG4ORuu23EFlsUt3XDDRHXX198TS6BsSIgADpW3rTnJECAAAECBAgQIECAAAECBAZFoNn6n+95T8TEiYPSRb8b6W0U6Fe+0u/mVCAwqgQEQEfV6/QwBAgQIECAAAECBAgQIECAwFAKvPnmP3dXL+pjOKa/V+5jm20imq0/muuAXnttpaTvBMaegADo2HvnnpgAAQIECBAgQIAAAQIECBAYoMDdd0e8/HJx5eEMgOYd9bYjvFGgxe9M7tgQmDA2HtNTEiBAgAABAgQIECBAgAABAt0o8Nhjj8W9997b9NbGjx8fO+ywQ9Prnb7QbPr73HNHbLRRp++mvr8MwOZ6oL/8ZX1+nt1+e8SVV0bkrvESgbEmIAA61t645yVAgAABAgQIECBAgAABAl0kcGUpKvfZz3626R3NM8888cYbbzS93ukLzQKgm20WMWlSp++mZ3/HH18cAM2SOQpUALSnmZzRL2AK/Oh/x56QAAECBAgQIECAAAECBAgQGCSBW28tbmi4p79X7ioDsR/4QOWs/vtvfhNx2WX1ec4IjAUBI0DHwlv2jAQIECBAgAABAgQIECBAoEsFNthggzjiiCPKd3f55ZfH/fffXz7ee++9Y5lllokJE7ondHHffRHPP18M2S0B0Ly7HAV61VXF93nccREf/nDEuHHF1+USGI0C3fNbZDTqeiYCBAgQIECAAAECBAgQIECgV4HNSkMW8yvTU089VQ2Afu5zn4sMjnZTajb9vbRMaWyySffc6bveFfGhD0WU4sk90j33REyZErHrrj0uySAwagVMgR+1r9aDESBAgAABAgQIECBAgAABAoMp0CwAmpsfLbjgYPbUfls5CrTZKM8cBTpnTvt9aIHASBEQAB0pb8p9EiBAgAABAgQIECBAgAABAsMqMHVqcffdNP29cofrrx+x886Vs/rvOZX/0kvr85wRGM0CAqCj+e16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7409gQABAgQIECBAgAABAgQIECihQL3l7xMmRKy1VgkbXIImpQ2jTjyxew354x8j7rije9e6ikBPBCRAe6LnWgIECBAgQIAAAQIECBAgQKCyAvUSoNtvX9ku9XnDb7894rHHuv+Y3/62+9e6kkB3BSRAuyvnOgIECBAgQIAAAQIECBAgQKCyAq+8EnHrrfnmW/6ed0nRri59X/hOPb1+4fv5TqAzAhKgnVFyDgECBAgQIECAAAECBAgQINBQAtdf37SZT65TEqA5laZY2tCoJ6Wn1/fk2a4dvAISoIN37PWcAAECBAgQIECAAAECBAgMWoF6y9+XXjpi/fUHLcsiO77CCos8pcMTenp9hzdXSaCOgARoHRhhAgQIECBAgAABAgQIECBAoHEF6iVA0+zPxWRL6g78lltGDB1at3qRFVtvvchTnECg1wX8lu51UjckQIAAAQIECBAgQIAAAQIEyiwwZ07ETTflW2j5e96lObrMMhHveU/zt679XGqpiPe+t2vXOJtAbwhIgPaGonsQIECAAAECBAgQIECAAAEClRG48caIWbPyzZUAzbu0jh53XPdmgX7xixFLLtn6To4J9I+ABGj/OHsKAQIECBAgQIAAAQIECBAgUBKBesvfx4yJ2HjjkjSyxM3YaKOIqVO71sANNog4+uiuXeNsAr0lIAHaW5LuQ4AAAQIECBAgQIAAAQIECFRCoF4CdJttIoYNq0QXBryRhx8ecdppEcOHd64p8+Z5t2rnpJzVFwISoH2h6p4ECBAgQIAAAQIECBAgQIBAKQXmz4+44YZ80yx/z7vUi06eHHH33RF77hmRZs92VP7+94jf/76jM9QR6DsBCdC+s3VnAgQIECBAgAABAgQIECBAoGQCt94a8eKL+UZJgOZdOoquvXbE+edHPPNMRFrm3lHp6rL5ju6ljkBXBCRAu6LlXAIECBAgQIAAAQIECBAgQKDSAvWWv48YEbHZZpXu2oA2fuTIRc8CveKKiHvuGdBmevggFfBmi0E68LpNgAABAgQIECBAgEBbgaWXXjouu+yytsHXv6200krZuCABAtUTqJcAfetbI1IST+k7gQULIk46KeLMM/vuGe5MICcgAZpTESNAgAABAgQIECBAYNAJDB06NNZYY41B128dJjDYBK67Lt9jy9/zLt2NbrhhxJ13tr/6Zz+L+Pa3I8aPb18n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ECBAgAABApUTqJcAXW21iFVWqVx3NLiOwDLLRHzyk/nK22+PuPLKfJ0ogSQwDAMBAgQIECBAgAABAgQIRCy11FJxwQUXZClWWmmlbFyQAIGBF6iXALX8feDHprdbcMQRUXvn54IF7e88dWrEjju2j4sQSAISoH4dECBAgAABAgQIECBAoBAYXrxk7i1veQsLAgQqJPDCCxF33plvcFkSoOedd16ceeaZtUb+7W9/a2nsRz/60Rg5cmSMHz8+fvWrX7XEHdQXWGediPe9L+K3v21/zv/7fxH33x+x1lrt60QISID6NUCAAAECBAgQIECAAAECBAhUUmD69Ij58/NNL0sC9JFHHonpqaELlZtvvrkWWWGFFRaq8bUjgSlT8gnQNCv0e9+L+MEPOrpa3WAV8A7QwTry+k2AAAECBAgQIECAAAECBCouUG/5e8opmglY8cGt0/y0zH3DDfOV554b8dxz+TrRwS0gATq4x1/vCRAgQIAAAQIECBAgQIBAZQXqJUDLMvszwR599NHx9NNP1/20XhZf2YHo54YfdVT+gS+/HDFtWr5OdHALSIAO7vHXewIECBAgQIAAAQIECBAgUEmBWbMibrkl3/TttsvHByI6atSoWHbZZet+lknbmytdEthjj4jll89fkpbAz52brxMdvAISoIN37PWcAAECBAgQIECAAAECBAhUVuCGGyLmzMk3v0wzQPMtFO2JwIgREYcemr/DjBkRF16YrxMdvAISoIN37PWcAAECBAgQIECAAAECBAhUVuCaa/JNX3rpiPXXz9eJNo7AwQdHjByZ70/aDEkh0FpAArS1hmMCBAgQIECAAAECBAgQIECgEgIdvf9zyJBKdEEjeyCw3HIRH/tY/gZ//WvE9On5OtHBKSABOjjHXa8JECBAgAABAgQIECBAgEBlBWbPjrjppnzzLX/PuzRi9Mgj6/dq6tT6dWoGn4AE6OAbcz0mQIAAAQIECBAgQIAAAQKVFkjJz1deyXdBAjTv0ojR//qviHe9K9+zSy+NeOihfJ3o4BOQAB18Y67HBAgQIECAAAECBAgQIECg0gL1lr+PHRux8caV7prGd1HgqKPyF8ybF3Hyyfk60cEnIAE6+MZcjwkQIECAAAECBAgQIECAQKUF6iVAt946YtiwSndN47sokGaArrtu/qJzzol48cV8nejgEpAAHVzjrbcE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P77Dz9JLL93qaocECBAgQIAAAQIECBAgQKCaAvUSoNttV83+aPXACmy9dZpYlm/Dz34W8fTT+TrR6gtIgPbRGN5+++0td/7ABz7QcrzwQZoduv3227eE77vvvpbj5oPWy9/XWWed5rCfBAgQIECAAAECBAgQIECgYQXSnKJbbsl3b6EFlvmTRAlkBI46KhMsQq++GnH66fk60eoLSID20Rgus8wykWZrpp3el19++Q6fkmZ0NpenM3/dIAHarOMnAQIECBAgQIAAAQIECAwWgbT50Zw5+d5KgOZdRBctsNtuESuumD/vtNOieEVhvk602gJtXzZZ7b6UqvVf/OIXO92etPS9uay55prNhy0/mxOg48aNa0mmpiXx//73v2PUqFGx1FJLtZzrgAABAgQIECBAgAABAgQINILArbfme1HMN4r118/XiRJYlEDadqV4G2F87nPtzyzSLHH++RGf/GT7OpFqC0iADvD4zZo1K9Ju8c1l3XXXbT6s/Zw3b17885//rB2n5e933XVX/PjHP447i78KezXNzy7KhAkTarNNDz744OJvMer8NUbtTP8gQIAAAQIECBAgQIAAAQLVEKiXAN1224ghQ6rRB60sp8CBB0axEXVEkZJpV773PQnQdigNEJAAHeBBTMnM5557rtaKLbbYIiZOnNimRY888khth/gUTEnPQw45pE19+vLUU0/VPn/5y19i8uTJscsuu7Q7p17g8ssvj3/961/1qosXAD8daVOlmTNnxty5c+uep4IAAQIECBAgQIAAAQIECPSmwN135+9m+XveZaCiL7zwQrz44ou1x7/22mstzZgxY0a89NJLMXz48FhhhRVa4mU4SHtHp1meacn7wuWOOyKuvDJixx0XrvG9ygISoAM4er/73e/iggsuqLVg9OjR8ZnPfKZda5qXv6eKtKv8yJEjY+ONN45NNtkk0ntGH3roobj66qvj8ccfr80InTp1aiyxxBKx0047tbtXLnDJJZfUrs/VNceWW2652r0lQJtF/CRAgAABAgQIECBAgACBvhao9y5GCdC+lu/a/b/xjW/EiSee2O6iDTfcsBabNGlS3HPPPe3qBzpw5JFNmx4VbxhsV046SQK0HUrFAxKgAzSA1113Xfzv//5vy9OPOOKIlvd7tgSLg9YJ0GWXXTZOKn4Xrr766q1PiX322SdOOeWU+M1vflOLn3zyybHZZpvVZm62OdEXAgQIECBAgAABAgQIECBQYYGxY6OYEFThDmh6aQTWXjvi/e+PIpfSvknFfLW4776IdI7SGAISoAMwjmnmZ0p+pvd7prL33nvH+973vmxLPvjBDxYvd14/nnjiidh+++3jTW96U7vz0qzQo48+Ou69995awjRNP7/wwgvjoIMOaneuAAECBAgQIECAAAECBAgQqKrA1ltHDB1a1dY3ZrvXLrKEHa1CXWWVVUrb8SlT8gnQNCs0vQs0t0S+tJ3RsA4FJEA75On9yrPPPjvOOeeclhun2Zv77rtvy/eFD1ZaaaVIn0WVocV/AdJ9Pv/5z9dObT1ztKNr99prr9huu+3qnnLGGWfE7bffHnPmzKl7jgoCBAgQIECAAAECBAgQINAfApa/94dy155xYLGjUPpUseywQ8RGG0Wk934uXM49N+K446JYXbtwje9VFJAA7adRS+/P/M53vhNp9mcqiy22WBx11FGRZnj2Vnnzm9/ccqvmneNbAnUOOkp+pkt++ctfRppRqhAgQIAAAQIECBAgQIAAgYEWkAAd6BFovOenWaBpQ6SFS9ohftq0iM99buEa36sosFgVG121Nr/88stxzDHHtCQ/05L1b33rW72a/EwmabOi5iJp2SzhJwECBAgQIECAAAECBAg0gkDxR+nYfPNG6Ik+lElgzz2j2KU+36JTT41iRWy+TrRaAhKgfTxezz//fBx66KFx88031540fvz4OLX4HbR1enFJJ0pKns6YMSMefPDBRZ791FNPtZyz8sortxw7IECAAAECBAgQIECAAAECVRfYcsuIESOq3gvtL5vA4otHHHJIvlWPPRZx0UX5OtFqCVgC34fjNXPmzNoy9+bkZdq9PS2DX3755Tv11FnFfOu0OVLaLGnx4ndkWj4/ooN/2z/88MMt9y3zS4ZbGumAAAECBAgQIECAQIkEllxyyWLDi9OyLVqh3vSg7NmCBAh0VyBtPlOvWP5eT0a8pwIHHxzFSt2IV19tf6epUyOK7VOUigtIgPbhAJ544om1XdnTIyZNmhTpe/qfqs6W0aNHx3rrrRd33XVXzJ49O2688cZ4ewf/xj///PNbbr3NNtu0HDsgQIAAAQIECBAgQGDRAmnSwTve8Y5Fn+gMAgT6TKCjLSg6+ONwn7XHjQeHQHqj4Mc/HnHmme37mxb0XnttxLbbtq8TqY6AJfB9NFZpyfuf/vSn2t3Tsvdvf/vbXUp+NjerdSLz5JNPjjSrNFcuvvji2m7tqW6ttdaKnXbaKXeaGAECBAgQIECAAAECBAgQKK3AE0/kmzasmL611Vb5OlECvSFw5JH175JmgSrVFjADtA/Gb07xhtyTTjqp5c5pJucJJ5zQ8r2jgy222CJ23XXXllN23333mD59em0WaHrH5wEHHBCHH354bLLJJrVl8Q899FBceOGF8fvf/752Tfpb6yOOOCKGDBnScg8HBAgQIECAAAECBAgQIECgrAJpt+1TTon46U8j/va3fCs32yxizJh8nSiB3hBYf/2Id7874vLL29/t0ksjivSLUmEBCdA+GLxbb701Hn300ZY7p+PW31sqMgfLLLNMm+iw4q+5jj322FpSM22G9FjxBt7Pfe5ztXNS3dy5c1vOnzBhQhx33HG15fYtQQcECBAgQIAAAQIECBAgQKCkAsWb3opJQFFs/ttxA9NiyNdeswlSx0pqeyowZUo+ATp/fkSxKLchy7777lvbc6Ze5975zncWfzlR/O1ExYsEaB8MYJqV2ZtlueJlFOedd16x89hFtZ9pZ/hUmpOf48aNq80InVL8Tl166aV789HuRYAAAQIECBAgQIAAAQIE+kTghhsidtwxv/HMwg9MM0N33jmKRE1EWg6vEOgLgXe9K4q9WCL+/vf2dz/77IhG3A/v+eefj3//+9/tO/x65LnnnqtbV6UK/9rog9HaY489In16swwfPrzYdWyv2n2ffPLJeOSRR2obI6299trFb8AVevNR7kWAAAECBAgQIECAAAECBPpUIG12tMsunUt+Njfkiisivva1iG9+szniJ4HeFUhvE/zUpyIOPLD9fdMs5FGj2serHhlTvFtiqaWWqnXjxRdfjAULFtSOm2OpvhGKBGjFRnGxxRaLiRMn1j4Va7rmEiBAgAABAgQIECBAgACBmsB3vhNRzO3pcjnxxIhDDoniz8RdvtQFBDolkHaD/8IXIp55pv3p//lP+1jVIz/5yU9aupAm2KXZoGmlcaPM/GzunF3gmyX8JECAAAECBAgQIECAAAECBPpFoHjLW7fKq69GsRFwty51EYFOCYwcGXHwwflTW23DEunXolIdAQnQ6oyVlhIgQIAAAQIECBAgQIAAgcoLPPhgFBsFd78bV1/d/WtdSaAzAoceGrH44h2fOX58xEc+EnHLLR2fp7YcAhKg5RgHrSBAgAABAgQIECBAgAABAoNC4LHHetbNnl7fs6e7ejAIpK1W9tyz457OmhVxySURm28e8bnPRaSd4pXyCkiAlndstIwAAQIECBAgQIAAAQIECDScwIgRPevSombm9ezuribQJLDssp2TSHsGnXBCxOTJnTvfWQMjIAE6MO6eSoAAAQIECBAgQIAAAQIEBqXAaqv1rNurr96z611NYFECN90U8b3vLeqstvVnnBHxs5+1jflWHgEJ0PKMhZYQIECAAAECBAgQIECAAIGGF1h++Yi3vKX73fzv/+7+ta4k0BmBz38+Yt68zpzZ9py0e3zrjZLa1vo2kAISoAOp79kECBAgQIAAAQIECBAgQGAQChx+ePc6veKKEbvs0r1rXUWgMwLpHbNXXdWZM9uf88gjEddc0z4uMvACEqADPwZaQIAAAQIECBAgQIAAAQIEBpXAJz4RsfXWXe/y1KkRo0Z1/TpXEOiswLXXRqT3ena3pOuV8glIgJZvTLSIAAECBAgQIECAAAECBAg0tMBiRTbi/PMjhg7tfDe/8Y2I3Xbr/PnOJNAdgSee6M5Vb1xz6aUR99//xndH5RCQAC3HOGgFAQIECBAgQIAAAQIECBAYVAJXXtm59ywut1zT5jJf+tKg4tHZARLo6Qzj22+PWHvtiLe/PeKccyJeemmAOuKxbQQkQNtw+EKAAAECBAgQIECAAAECBAj0h8Bpp3X8lLRE/gc/iHjwwYi99ur4XLUEektgjTV6505pKfy++0assELTT0vje8e1u3eRAO2unOsIECBAgAABAgQIECBAgACBbgncckvEX//a8aWnnBJxyCERSyzR8XlqCfSmwHbbRYwd23t3fPnlppmgaUboWmtFfOtbETNm9N793alzAhKgnXNyFgECBAgQIECAAAECBAgQINBLAoua/dlLj3EbAl0WGDEiYvLkLl/WqQseeCDii1+MWHXViPe+N+KiiyJee61TlzqphwISoD0EdDkBAgQIECBAgAABAgQIECDQeYEXX4z4xS/y50+YkI+LEuhPgS98IWL11fvuifPnR1x2WcTuu0dMnBhxxBER6d2hSt8JSID2na07EyBAgAABAgQIECBAgAABAgsJnH12RFoWnCtp8xiFwEALjBsX8ZvfNL2/szNtGT06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hg8fHksttVTtMa3f8zl27NiWeF+04be/jfjXv/J3Ln5LRHoHqEKAAIEqCEiAVmGUtJEAAQIECBAgQIAAgT4XePXVV+NnP/tZ9jl77bWXBGhWRrCRBeptfrT44hH77NPIPdc3AgQaTcDf1zTaiOoPAQIECBAgQIAAAQIECBDoocA//xlRbD6fLbvvHsVfCGSrBAkQIFBKAQnQUg6LRhEgQIAAAQIECBAgQIAAgYETOP30iAUL8s+3+VHeRZQAgfIKSICWd2y0jAABAgQIECBAgAABAgQI9LvAa69F/PjH+cduuGHEVlvl60QJECBQVgEJ0LKOjHYRIECAAAECBAgQIECAAIEBEPj5zyOeeSb/4EMPzcdFCRAgUGYBCdAyj462ESBAgAABAgQIECBAgACBfhZIy99zZYklIor9wBQCBAhUTkACtHJDpsEECBAgQIAAAQIECBAgQKBvBG6/PeLGG/P33nvviLFj83WiBAgQKLOABGiZR0fbCBAgQIAAAQIECBAgQIBAPwr84Af1H3bwwfXr1BAgQKDMAhKgZR4dbSNAgAABAgQIECBAgAABAv0k8MILERdckH/YdttFrL9+vk6UAAECZReQAC37CGkfAQIECBAgQIAAAQIECBDoB4G08/vLL+cfdMgh+bgoAQIEqiAgAVqFUdJGAgQIECBAgAABAgQIECDQxwLTpuUfsPzyER/+cL5OlAABAlUQkACtwihpIwECBAgQIECAAAECBAgQ6EOBK6+MuOee/AMOOCBi+PB8nSgBAgSqICABWoVR0kYCBAgQIECAAAECBAgQINCHAqedlr/50KERKQGqECBAoMoCEqBVHj1tJ0CAAAECBAgQIECAAAECPRR44omIX/86f5Odd45YZZV8nSgBAgSqIiABWpWR0k4CBAgQIECAAAECBAgQINAHAmecETFnTv7Gkyfn46IECBCokoAEaJVGS1sJECBAgAABAgQIECBAgEAvCsybF3HWWfkbrrlmxE475etECRAgUCUBCdAqjZa2EiBAgAABAgQIECBAgACBXhS49NKIGTPyN0yzP4cMydeJEiBAoEoCEqBVGi1tJUCAAAECBAgQIECAAAECvShQb/OjkSMjPvnJXnyQWxEgQGAABSRABxDfowkQIECAAAECBAgQIECAwEAJ3H9/xJVX5p++xx4R48fn60QJECBQNQEJ0KqNmPYSIECAAAECBAgQIECAAIFeEEizPxcsyN/I5kd5F1ECBKopIAFazXHTagIECBAgQIAAAQIECBAg0G2BV16JOPfc/OVveUvEFlvk60QJECBQRQEJ0CqOmjYTIECAAAECBAgQIECAAIEeCFxwQcRzz+VvcOih+bgoAQIEqiogAVrVkdNuAgQIECBAgAABAgQIECDQTYEf/jB/4VJLRaT3fyoECBBoJAEJ0EYaTX0hQIAAAQIECBAgQIAAAQKLEPjrXyPSJ1f22Sdi9OhcjRgBAgSqKzCsuk3XcgIECBAgQIAAAQIECPSewJgxY+KYY47J3nC87bCzLoLVFEibH9UrBx1Ur0acAAEC1RWQAK3u2Gk5AQIECBAgQIAAAQK9KDBq1KjYf//9e/GObkWgfALpvZ+/+EW+Xe94R8SkSfk6UQIECFRZwBL4Ko+ethMgQIAAAQIECBAgQIAAgS4InHNORNoBPlcOOSQXFSNAgED1BSRAqz+GekCAAAECBAgQIECAAAECBBYpsGBBxLRp+dMmToz4wAfydaIECBCouoAEaNVHUPsJECBAgAABAgQIECBAgEAnBK64IuK++/InHnhgxDAvycvjiBIgUHkBCdDKD6EOECBAgAABAgQIECBAgACBRQucfnr+nJT49PrbvI0oAQKNISAB2hjjqBcECBAgQIAAAQIECBAgQKCuwIwZEb/5Tb76gx+MWHHFfJ0oAQIEGkFAArQRRlEfCBAgQIAAAQIECBAgQIBABwJnnBExb17+BJsf5V1ECRBoHAEJ0MYZSz0hQIAAAQIECBAgQIAAAQLtBObOjTjrrHbhWmDttSN22CFfJ0qAAIFGEZAAbZSR1A8CBAgQIECAAAECBAgQIJARuOSSiCeeyFQUoTT7c8iQfJ0oAQIEGkVAArRRRlI/CBAgQIAAAQIECBAgQIBARqDe5kejR0fsvXfmAiECBAg0mIAEaIMNqO4QIECAAAECBAgQIECAAIFmgXvuibj66uZvbX/uuWfEuHFtY74RIECgEQUkQBtxVPWJAAECBAgQIECAAAECBAgUAqedVp9h8uT6dWoIECDQSAISoI00mvpCgAABAgQIECBAgAABAgReF3j55Yif/CTPseWWEZtumq8TJUCAQKMJDGu0DjVyf+bNmxeXXXZZ/PGPf4xHH300Zs2aFeuuu25ssMEGsdVWW8WkSZMatvvz50c89VTEqFERSy3VsN3UMQIECBAgQIAAAQIECPSawM9+FvHCC/nbmf2ZdxElQKAxBcwArci4Pv3007HPPvvECSecELfcckuRDHwqXnrppfjrX/8aZ599dhx88MFx+eWXV6Q3nWtmke8t+haxww4RI0ZEvOlNTe+nGT8+4uMfj6LvnbuPswgQIECAAAECBAgQIDAYBX74w3yvl1km4qMfzdeJEiBAoBEFJEArMKovF+sWjjnmmHjooYdqrX3zm99c7NS3d3z605+Od77znbH44otHmh36zW9+My655JIK9GjRTbz//oiNN47Yb7+mF3bPnfvGNf/5T8RPfxqRlmwUed+YPfuNuqod/fa3EenF46usEsU4NiV4N9ss4mtfi3jyyar1puP2vvhiFL9OOz5HLQECBAgQIECAAAECvSNwww0Rt92Wv1cxtyZGjszXiRIgQKARBSRAKzCq55xzTjz44IO1lu5QTIc844wzYv/9948PfvCD8dWvfjWmTp0aY8aMqdWfcsop8cwzz1SgV/WbeO+9TcnNu++uf06qWbAgYtq0KByql1ibMSNi220jdt454uc/j+KVBhFz5jQtTykm+Maxx0YUee4ohrOyJfXnzDMjdtwxYvToplcXpCTv2mtHkbyPeOSRynZNwwkQIECAAAECBAiUXqDe5kdDhjRNJCl9BzSQAAECvSggAdqLmH1xqxeLaXO//vWva7eeMGFCfPnLX47hw4e3edSGG25Yi6dgmgnafH6bkyry5bXXmhKazz2XGpymQF65iM+C+P3vI77ylXR+NUrKZW++ecT06R23N72w/MgjI6ZM6fi8MtbecUfE+utHHHhgxFVXRbzySlMr07tc0+zeE0+MWGedpp9lbL82ESBAgAABAgQIEKiywLPPRlx0Ub4H73pX02SLfK0oAQIEGlNAArTk43pVkT165fXs0Yc+9KF2yc/m5m+99dax8sor176mBOjc1mvGm0+qwM/TT4+4777mhl5eHLxjEZ95tZO/+92m69KswzQztKwlJXg/8IGuLW//3vcifvzjsvaofbv+8peI4pdjLdHZvvaNyKuvNs0ErWKC941eOCJAgAABAgQIECBQPoEf/Sgi/dkjV2x+lFMRI0Cg0QWGNXoHq96/u1utA99iiy067M5mxcsj0+7wzxZ/3XfrrbfGos7v8GYDVJk2PepOSe8B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m8+aNy/igAMi6u0O33yenwQIEBhsAhKgg23E9ZcAAQIECBAgQIAAAQIESi9wwgkRCxZ0vZn33x9x8cVdv84VBAgQaGQBCdBGHl19I0CAAAECBAgQIECAAIHKCcyZE/G733W/2Zde2v1rXUmAAIFGFJAAbcRR1ScCBAgQIECAAAECBAgQqKzAjBkRL73U/ebfc0/3r3UlAQIEGlFAArQRR1WfCBAgQIAAAQIECBAgQKCyAi+80LOm9/T6nj3d1QQIECifgARo+cZEiwgQIECAAAECBAgQIEBgEAtMmNCzzi+/fM+udzUBAgQaTUACtNFGVH8IECBAgAABAgQIECBAoNICEydGrLRS97uw+ebdv9aVBAgQaEQBCdBGHFV9IkCAAAECBAgQIECAAIFKC+y+e/eb/9GPdv9aVxIgQKARBYY1Yqf0iQABAgQIECBAgAABAl0VGDVqVOy///7Zy8aNG5eNCxLoK4HPfjbizDMjZs7s2hPe856Ibbbp2jXOJkCAQKMLSIA2+gjrHwECBAgQIECAAAECnRIYM2ZMHHPMMZ0610kE+logvQf0xz+O2HXXiAULOve0tHT+Rz/q3LnOIkCAwGASsAR+MI22vhIgQIAAAQIECBAgQIBAZQR22SXipz+NGDly0U1ee+2Iq66KSElQhQABAgTaCkiAtvXwjQABAgQIECBAgAABAgQIlEZgr70i7rgjIr0TdPHF2zdr2WUjvvrViFtuiUhJUIUAAQIE2gtIgLY3ESFAgAABAgQIECBAgAABAqURSInNX/wi4umnI3be+Y1mnXJKxJNPRnztaxFjx74Rd0SAAAECbQUkQNt6+EaAAAECBAgQIECAAAECBEopsOSSEaus8kbT1lsvYujQN747IkCAAIG8gARo3kWUAAECBAgQIECAAAECBAgQIECAAIEGEJAAbYBB1AUCBAgQIECAAAECBAgQIECAAAECBPICEqB5F1ECBAgQIECAAAECBAgQIECAAAECBBpAQAK0AQZRFwgQIECAAAECBAgQIECAAAECBAgQyAtIgOZdRAkQIECAAAECBAgQIECAAAECBAgQaAABCdAGGERdIECAAAECBAgQIECAAAECBAgQIEAgLyABmncRJUCAAAECBAgQIECAAAECBAgQIECgAQQkQBtgEHWBAAECBAgQIECAAAECBAgQIECAAIG8gARo3kWUAAECBAgQIECAAAECBAgQIECAAIEGEJAAbYBB1AUCBAgQIECAAAECBAgQIECAAAECBPICEqB5F1ECBAgQIECAAAECBAgQIECAAAECBBpAQAK0AQZRFwgQIECAAAECBAgQIECAAAECBAgQyAtIgOZdRAkQIECAAAECBAgQIECAAAECBAgQaAABCdAGGERdIECAAAECBAgQIECAAAECBAgQIEAgLyABmncRJUCAAAECBAgQIECAAAECBAgQIECgAQQkQBtgEHWBAAECBAgQIECAAAECBAgQIECAAIG8gARo3kWUAAECBAgQIECAAAECBAgQIECAAIEGEJAAbYBB1AUCBAgQIECAAAECBAgQIECAAAECBPICEqB5F1ECBAgQIECAAAECBAgQIECAAAECBBpAYFgD9EEXCBAgQIAAAQIECBAg0GOBV155JX75y19m7/P+978/xo0bl60TJECAAAECBMotIAFa7vHROgIECBAgQIAAAQIE+kng5Zdfjm984xvZp731rW+VAM3KCBIgQIAAgfILWAJf/jHSQgIECBAgQIAAAQIECBAgQIAAAQIEuikgAdpNOJcRIECAAAECBAgQIECAAAECBAgQIFB+AQnQ8o+RFhIgQIAAAQIECBAgQIAAAQIECBAg0E0BCdBuwrmMAAECBAgQIECAAAECBAgQIECAAIHyC0iAln+MtJAAAQIECBAgQIAAAQIECBAgQIAAgW4KSIB2E85lBAgQIECAAAECBAgQIECAAAECBAiUX0ACtPxjpIUECBAgQIAAAQIECBAgQIAAAQIECHRTQAK0m3AuI0CAAAECBAgQIECAAAECBAgQIECg/ALDyt9ELSRAgAABAgQIECBAgAABAgQaVeDCCy+M448/vta9hx9+uKWbe+65Z4wePToWX3zxuPHGG1viDggQINBVAQnQroo5nwABAgQIECBAgAABAgQIEOg1gaeffjpuv/32dve77777arERI0a0qxMgQIBAVwQsge+KlnMJECBAgAABAgQIECBAgAABAgQIEKiUgARopYZLYwkQIECAAAECBAgQIECAQGMJHHzwwTFr1qy6n+eff76xOqw3BAj0u4Al8P1O7oEECBAgQIAAAQIECBAgQIBAs8DQoUNj1KhRzV/9JECAQK8LmAHa66RuSIAAAQIECBAgQIAAAQIECBAgQIBAWQQkQMsyEtpB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" width="672" /></p>
<div class="sourceCode" id="cb32"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb32-1"><a href="#cb32-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_OLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-4" class="section level2" number="9.2">
<h2 number="9.2"><span class="header-section-number">9.2</span> WLS, no trends</h2>
<div class="sourceCode" id="cb33"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb33-1"><a href="#cb33-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb33-2"><a href="#cb33-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_WLS</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb33-3"><a href="#cb33-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb33-4"><a href="#cb33-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb33-5"><a href="#cb33-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb33-6"><a href="#cb33-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results , include.ci = FALSE, digits=3,)</span></span>
<span id="cb33-7"><a href="#cb33-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb33-8"><a href="#cb33-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb33-9"><a href="#cb33-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb33-10"><a href="#cb33-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb33-11"><a href="#cb33-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb33-12"><a href="#cb33-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb33-13"><a href="#cb33-13" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb33-14"><a href="#cb33-14" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb33-15"><a href="#cb33-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb33-16"><a href="#cb33-16" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS </span></code></pre></div>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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BAgQIECAAAECBAgQmICAQKcC//Ef/5FefPHFRrFtttkmrbnmmo3z4Ti49NJL07PPPtt49BZbbJHWWWedxrkDAmNFoIp/Pke7/cMPP5yuv/76ptfccccd0yqrrNKU187Ja6+9ln7605+mvr6+ptvXX3/9tOmmmzbltXtyySWXpFmzZjVuX3XVVdMOO+zQOL/77rvTHXfc0TiPg/e///1p4YUXbsob6pMHH3wwzZw5M1133XXpj3/8Y/rzn/+cnnnmmbT00kunFVZYIfuZPn16es973pO23nrrNGGC/wsz1H2ifgIECBAgQIAAAQKjRWBc7R9Zzf/KGi1v5j2GTCACiw888ECj/vPOOy/tt99+jfPhONhkk02a/gF/xhlnpIMPPng4muKZBIZVoIp/PocVpAcPv/POO9Nb3/rWpid9/etfTzNmzGjKa+fkhhtuSPFLpWKKgOXVV19dzB7wfM6cOVkA8dVXX23ce+SRR6YTTzyxcX7CCSeko48+unEeB88//3xWrilziE5+9rOfpS996Uvp97//fdtPWGaZZdK+++6bjjvuuDR58uS2y7mRAAECBAgQIECAAIGxKWAK/Njsd29NgAABAoMksOGGG2ajE/PVFUeE5q/1d/yf//mfpZejvv/7v/8rvdZf5o033pjywc+4993vfnd/RXp2LX6Rtt1226V99tmno+BnNDACtN/73vfSuuuum332rNEeRIAAAQIECBAgQIDAiBQQAB2R3abRBAgQIFAVgXHjxqWY8p5Pgx0AfeWVV9KvfvWr/CPaOr722mub7ps0aVLpCNOmm3pw8vjjj2dmxfZ1+ujnnnsufeITn0jHHHNMp0XdT4AAAQIECBAgQIDAGBIQAB1Dne1VCRAgQGBoBP7mb/6mqeJYv/L+++9vyhvo5C9/+Uv6zW9+07ht/Pjm/4luNTq0UaDk4L/+67+acrfffvu0yCKLNOX1+iRGsu68887psccem+/R73znO7MRnbFu6e23356tBXrfffelK664Iv3gBz9IBxxwQOnan8cff3z67ne/O199MggQIECAAAECBAgQIBACdhDwPehY4KMf/Wi2MUW9YGzOIREgQGAsC7zrXe+a7/VjFGgnm7FFkO/1119v1PPBD34wnX/++Y3zTgOgMWr0pptuapSPgypMfz/zzDPnm/K+2Wabpe985ztpyy23bGpvnKy00krZVPc4Puigg9IXv/jFdOyxx6Zzzz03shop1lzda6+90sorr9zIc0CAAAECBAgQIECAAIEQEAD1PehY4Igjjui4jAIECBAYzQJvfvOb09SpU5s2iIvdzGPEYrupGOD81Kc+la688spsN/So45FHHkn33ntvmjZtWltV3nLLLenll19uune4A6ARlP3mN7/Z1KY111wzXXrppWnKlClN+a1O4v5zzjknRV0XXnhh47a5c+dmdZ9yyimNPAcECBAgQIAAAQIECBAIgeb5dUwIECBAgACBBRIoToPvZB3Qvr6+dPnllzeeu+SSS6a3ve1taaeddmrkxUExSNp0sXBSXF9zjTXWaDt4Wqhq0E4jKPvkk0821Xf66ae3HfzMF/zRj36U1ltvvXxWitGlxU2fmm5wQoAAAQIECBAgQIDAmBQQAB2T3e6lCRAgQGCwBYoB0Fi78plnnmnrMbHeZawbWk/veMc7srUuiyM2L7vssvotA34W1/8sBlMHrGAIbiiuizphwoS07bbbLtCTYkOnAw88sKnsiy++mP7whz805TkhQIAAAQIECBAgQICAKfC+AwQqLhCjmSJo8Pvf/z796U9/SpMnT87WxHv729+eIgAw0tNdd92VHn744fTEE09kAZ9Y72/jjTdOq6+++oh8tXnz5mUb2fzv//5vFtBaYYUVsnfZZJNN0sSJE/t9p9gcJjbBibIxdXnddddN06dPTyuuuGK/5Tq5OHv27HTDDTek2IV7zpw52XqJsU7lW97ylk6qGfDeqD/69qmnnkoRlFp++eWz7+3mm2+ellhiiQHLt3tDBA0j0BeBxniPt771rdmfkXbLD+Z9O+ywQ4qNi+rreMaozhgF+nd/93cDPqY4srMerCwGQGNU50svvZQWX3zxfuuM72H0cz7FxkPDnYobHy277LIDvkt/bQ6nz3/+80233HPPPWmDDTZoynNCgAABAgQIECBAgMDYFhAAHdv9v0BvH6N1ImBVT7FxxZ577lk/bXxuuOGG6bnnnmucx4YVESBoN8V6evn16372s5+lrbbaqt3iA9736KOPZoGJ2Hm5nsaNG5e+9rWvpdh8JNq+6aabNk2njH9ox7p8naZdd901CwbVy5144onpQx/6UP10vs9Yy+5b3/pWOvvss7M1BSOYUUyxk3PsmPzJT34y7b777sXLlTjfcccdG6OxFlts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8fdtrAFaXF+6WI9zAgQIECBAgAABAgQI5AUEQPMajtsSiLUvH3nkkca9sfbf+9///sb5WDqITV5io4562n333bONX+rnPgkQIECAAAECBAgQIECAAAECBIZXwBT44fUfkU9/4YUXmtrd326/TTeOwpOzzjqr6a0OOuigpnMnBAgQIECAAAECBAgQIECAAAECwysgADq8/iPy6bNmzWpqd0xjH4sppvHHJh71FFOJi+uJ1q/5JECAAAECBAgQIECAAAECBAgQGB4BAdDhcR+xT42ddos7pC+//PIj9n0WtOGxNmds9hLr1dVT7LY9FjZzqb+vTwIECBAgQIAAAQIECBAgQIDASBAo35J7JLRcG4dF4PTTT2967tJLL51tAtSUOcpO7r333vT8889nG2+8+OKL6ZZbbknf+c530rXXXtt406WWWiodeuihjXMHBAgQIECAAAECBAgQIECAAAEC1RAQAK1GP1S2Faecckq6+OKLs52b77vvvmx33nxj995777Twwgvns0bd8fXXX58GWtvzmGOOSREMrmI655xzsl3ke9W2sFpjjTV69TjPITCfgO/8fCQyCBAgQIAAAQIECBAgMKYFBEDHdPcP/PJXXXVVuummm7Kf4t3jxo1LBxxwQDF71J0PFMzbeuut02c/+9nKvvf555+frrjiip61b+eddxYA7Zm2B5UJ+M6XqcgjQIAAAQIECBAgQIDA2BWwBujY7fsB37yvry/dfPPNpfdNnDgx/fSnP03bbrtt6fXRlPmmN72p5etsueWW6Ze//GUaP94fpZZILhAgQIAAAQIECBAgQIAAAQIEhlHACNBhxK/6o59++um08cYbp4ceeig98cQTKUZ8Tps2LW2yySbp4x//eNpqq62q/gqD0r4YAbrHHnukO+64Iz3yyCNpwoQJaZ111kmHHHJI+uhHP5oWW2yxQXnOUFXyvve9L+vHoaq/WO+qq65azHJOoKcCvvM95fYwAgQIECBAgAABAgQIVF5gXG2UX1/lW6mBwy4wd+7c9Prrr1c+2DfUULEJ0uKLL26396GGVj8BAgQIECBAgAABAgQIECBAYJAEBEAHCVI1BAgQIECAAAECBAgQIECAAAECBAhUT8DChdXrEy0iQIAAAQIECBAgQIAAAQIECBAgQGCQBARABwlSNQQIECBAgAABAgQIECBAgAABAgQIVE9AALR6faJFBAgQIECAAAECBAgQIECAAAECBAgMkoAA6CBBqoYAAQIECBAgQIAAAQIECBAgQIAAgeoJCIBWr0+0iAABAgQIECBAgAABAgQIECBAgACBQRIQAB0kSNUQIECAAAECBAgQIECAAAECBAgQIFA9AQHQ6vWJFhEgQIAAAQIECBAgQIAAAQIECBAgMEgCAqCDBKkaAgQIECBAgAABAgQIECBAgAABAgSqJyAAWr0+0SICBAgQIECAAAECBAgQIECAAAECBAZJQAB0kCBVQ4AAAQIECBAgQIAAAQIECBAgQIBA9QQEQKvXJ1pEgAABAgQIECBAgAABAgQIECBAgMAgCQiADhKkaggQIECAAAECBAgQIECAAAECBAgQqJ6AAGj1+kSLCBAgQIAAAQIECBAgQIAAAQIECBAYJAEB0EGCVA0BAgQIECBAgAABAgQIECBAgAABAtUTEACtXp9oEQECBAgQIECAAAECBAgQIECAAAECgyQgADpIkKohQIAAAQIECBAgQIAAAQIECBAgQKB6AgKg1esTLSJAgAABAgQIECBAgAABAgQIECBAYJAEJgxSPaoZpQInn3xyuvHGGxtv941vfCOtvfbajXMHBAgQIECAAAECBEaLwJw5c9I555xT+jr77LNPWnbZZUuvySRAgAABAgSqLTCur5aq3UStG06BvffeO1188cWNJtx2223pbW97W+PcAQECBAgQIECAAIHRIvCXv/wlbbPNNqWvM3PmzDR16tTSazIJECBAgACBaguYAl/t/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0gAFrt/tE6AgQIECBAgAABAgQIECBAgAABAgS6EBAA7QJPUQIECBAgQIAAAQIECBAgQIAAAQIEqi0wodrN0zoCBAgQIECAAAECBAj0RmCRRRZJO+64Y+nDJk2aVJovkwABAgQIEKi+gABo9ftICwkQIECAAAECBAgQ6IHAUkstlU4//fQePMkjCBAgQIAAgV4KmALfS23PIkCAAAECBAgQIECAAAECBAgQIECgpwICoD3l9jACBAgQIECAAAECBAgQIECAAAECBHopIADaS23PIkCAAAECBAgQIECAAAECBAgQIECgpwICoD3l9jACBAgQIECAAAECBAgQIECAAAECBHopIADaS23PIkCAAAECBAgQIECAAAECBAgQIECgpwJ2ge8pt4cRIECAAAECBAgQIECAAAECY0ng2muvTVdffXXLV15yySXTjBkzWl53gQCB7gUEQLs3VAMBAgQIECBAgAABAgQIECBAoFQgAqDHHXdc6bXIXGmllQRAW+q4QGBwBEyBHxxHtRAgQIAAAQIECBAgQIAAAQIECBAgUEEBI0Ar2CmaRIAAAQIECBAgQIAAAQIECIwOgb322iuts8462cucdNJJ6Y477siOTzvttLTiiiumxRZbbHS8qLcgUGEBAdAKd46mESBAgAABAgQIECBAgAABAiNbYP3110/xE+nss89uBEB32223tNZaa43sl9N6AiNEwBT4EdJRmkmAAAECBAgQIECAAAECBAgQIECAQOcCAqCdmylBgAABAgQIECBAgAABAgQIECBAgMAIERAAHSEdpZkECBAgQIAAAQIECBAgQIAAAQIECHQuIADauZkSBAgQIECAAAECBAgQIECAAAECBAiMEAEB0BHSUZpJgAABAgQIECBAgAABAgQIECBAgEDnAgKgnZspQYAAAQIECBAgQIAAAQIECBAgQIDACBEQAB0hHaWZBAgQIECAAAECBAgQIECAAAECBAh0LiAA2rmZEgQIECBAgAABAgQIECBAgAABAgQIjBABAdAR0lGaSYAAAQIECBAgQIAAAQIECBAgQIBA5wICoJ2bKUGAAAECBAgQIECAAAECBAgQIECAwAgREAAdIR2lmQQIECBAgAABAgQIECBAgAABAgQIdC4gANq5mRIECBAgQIAAAQIECBAgQIAAAQIECIwQAQHQEdJRmkmAAAECBAgQIECAAAECBAgQIECAQOcCEzovogQBAgQIECBAgAABAgRGn8Arr7ySbr311tIX22STTdLiiy9eek0mAQIECBAgUG0BAdBq94/WESBAgAABAgQIECDQI4FZs2alAw88sPRpM2fOTFOnTi29JpMAAQIECBCotoAp8NXuH60jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECg2gICoNXuH60jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECg2gICoNXuH60jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECg2gICoNXuH60jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECg2gICoNXuH60jQIAAAQIECBAgQIAAAQIECBAgQKALAQHQLvAUJUCAAAECBAgQIECAAAECBAgQIECg2gICoNXuH60jQIAAAQIECBAgQIAAAQIECBAgQKALgQldlB2TRT/3uc+lm2++OX3mM59Je++994AG119/fbrhhhsGvC9umDhxYvrUpz7V8t7XXnstXXbZZemqq65Kjz32WHrppZfS9OnT04Ybbpi22mqrNG3atJZlXSBAgAABAgQIECBAgAABAgQIECAwFgUEQDvo9YsvvjgLfnZQJF1xxRXp6quvbqvIpEmTWgZAn3766TRjxoz08MMPN9V16623pvg5++yz01FHHZV23nnnputOCBAgQIAAAQIECBAgQIAAAQIECIxlAQHQNnv/yiuvTKeeemqbd79x2/333//GyQIezZ49Ox1++OGN4OfUqVPTNttsk6ZMmZLuuOOOdO2116ZXXnklHX/88Snu3WuvvRbwSYoRIECAAAECBAgQIECAAAECBAgQGF0CAqAD9OfcuXPTj370o3ThhRemvr6+Ae5uvjxnzpz0+OOPZ5mbbbZZOvroo5tvKJyNH1++JOtZZ52VHnzwwezuHXbYIR1zzDFp4YUXzs533333dOedd6YjjjgiC35++9vfTu985zvT5MmTC7U7JUCAAAECBAgQIECAAAECBAgQIDD2BMojbmPPofSNY3TlAQcckC644IL0+uuvl97TX2YELetB0/XXXz8tv/zy/f4su+yy81U3a9asdMkll2T5K6ywQlPws37zRhttlOXHeawTWr+/ft0nAQIECBAgQIAAAQIECBAgQIAAgbEqIABa0vMRtPzmN7+ZrcdZH8G5xhprtLXpUb66/PT39dZbL3+p7eNf//rXKUaSRtpjjz0aIz+LFcSU+NVXXz3LjgDovHnzirc4J0CAAAECBAgQIECAAAECBAgQIDDmBARAS7o8Rnv+4he/aFx573vfm02Dj7U362ncuHH1w5afgxEAvfvuuxv1b7755o3jsoOYZh/pmWeeSbfffnvZLfIIECBAgAABAgQIECBAgAABAgQIjCkBa4D2091vf/vbsynwMcV8QVI9ALrMMsukFVdcMasiRpc+9dRTabHFFktLL730gNXec8892T0RcF177bX7vT8foH3ooYfSQAHTfitzkQABAgQIECBAgAABAgQIECBAgMAoEBAALenE2IzojDPOSBtssEHJ1fayYi3OCEJGiunvd911V/rxj3+cbVj08ssvZ/mxpmesDXrIIYekVVddNcsr/ueJJ57IsmLH9wkT+u+uepA1Cjz66KPFqpwTIECAAAECBAgQIECAAAECBAgQGHMC/UfUxhzHX184Rlt2E/yMWiIA+corr2QVxi7tH//4x/9aee6/f/7zn1P83HTTTenQQw9Ne+21V+5qytb+rG++VLZBUtPNtZMYaVpPsXlSOynWC60Hasvuj9GqsXlT1Pfqq6+W3SKPAAECBAgQIECAAAECBAgQIECAQGUFBECHqGvq09+j+tjEaOLEiWnjjTdOm2yySVpuueXSww8/nK655pr05JNPphgR+q1vfSstueSSaaeddmq0aPbs2Y3jRRddtHHc6iB/T32Uaat76/kzZ87M2lE/L/uMAOhLL70kAFqGI48AAQIECBAgQIAAAQIECBAgQKDSAgKgQ9Q9+QDo5MmTs13l11xzzaan/eM//mP69re/nX75y19m+aeddlqKjYzqoz0j6FhPiyyySP2w5Wf+nrlz57a8zwUCBAgQIECAAAECBAgQIECAAAECY0VAAHSIenr33XfPptH/8Y9/TNtvv31aeeWV53tSjAqdMWNGuvfee1METF944YV00UUXpYMPPji7N7/mZ6wpOlCaN29e45Z8MLSR6YAAAQIECBAgQIAAgZYC8f+/N91009Lr8f/dJQIECBAgQGBkCgiADlG/rbbaail+BkoLLbRQOvDAA9NRRx2V3ZofORo7xddTfT3R+nnZZ/6eSZMmld0yX16MQt11113ny69nxAjV2267rbGeaT3fJwECBAgQIECAAIHRJhBr6l9wwQWj7bW8DwECBAgQGPMCAqAV+ApMnTq10Yr8hkSLL754Iz+/Hmgjs3CQnzLfbgB0yy23LNTSfHruueemF198sTnTGQECBAgQIECAAAECBAgQIECAAIERIjB+hLRzVDdzypQpjfeLafD1FJsaxQZEkWK3+IFS7NheT7HRkkSAAAECBAgQIECAAAECBAgQIEBgrAsIgA7RNyBGbD7++OPpwQcfHPAJ+eDm6quv3nR/feOkGN353HPPNV0rnsTz6mn69On1Q58ECBAgQIAAAQIECBAgQIAAAQIExqyAAOgQdH0EK9/73vemD37wg+ljH/tYGmhH9kceeaTRijXWWKNxHAfrr79+4/x3v/td47js4M4772xk58s1Mh0QIECAAAECBAgQIECAAAECBAgQGGMCAqBD0OGxdmc9ABkbE9188839PuUnP/lJ4/o73vGOxnEcxA7y9XT55ZfXD+f7jOnvv/3tb7P89dZbL5kCPx+RDAIECBAgQIAAAQIECBAgQIAAgTEoIAA6RJ2eD2SedtppLTcS+vnPf57uuOOOrBXrrLNO2mmnnZpaFHkR0Ix03XXXpbIgaIwwPemkk9Jrr72W3bfffvtln/5DgAABAgQIECBAgAABAgQIECBAYKwLCIAO0Tdgn332SRtuuGFWe6zx+dGPfjRdf/31KabHz5s3L91///3phBNOSBEcjbTIIoukT3/602ncuHHZef4/hx12WOM0ypx99tnpySefzOqJae8zZsxIt912W3ZPjDzdbrvtGvc7IECAAAECBAgQIECAAAECBAgQIDCWBSaM5ZcfynefMGFCOu6447KgZmxO9MQTT6Qjjzwye2RciyBoPa2wwgpZMHTatGn1rKbPDTbYIKvrxBNPTC+//HL64Q9/mP0stNBCjVGfUWDVVVdNJ598cho/Xly7CdAJAQIECBAgQIAAAQIECBAgQIDAmBUQKRvCrp8yZUo655xz0qGHHpomTZrUeFI9+LnMMsukHXbYIQtmtgp+1gvtuOOO6cwzz8ymw9cDnPUp7xFQfd/73pddjzolAgQIECBAgAABAgQIECBAgAABAgT+KmAEaAffhN122y3FTydp4YUXTvvuu2/6wAc+kP70pz+lRx99NMXGSOuuu25aaaWVOqkqrbXWWlmwNEaBxhT62PholVVWSbFz/BJLLNFRXW4mQIAAAQIECBAgQIAAAQIECBAgMBYEBEB71MsxajOClfHTbZo4cWK2vmh9jdFu61OeAAECBAgQIECAAAECBAgQIECAwGgVMAV+tPas9yJAgAABAgQIECBAgAABAgQIECBAIAmA+hIQIECAAAECBAgQIECAAAECBAgQIDBqBQRAR23XejECBAgQIECAAAECBAgQIECAAAECBARAfQcIECBAgAABAgQIECBAgAABAgQIEBi1AgKgo7ZrvRgBAgQIECBAgAABAgQIECBAgAABAgKgvgMECBAgQIAAAQIECBAgQIAAAQIECIxaAQHQUdu1XowAAQIECBAgQIAAAQIECBAgQIAAAQFQ3wECBAgQIECAAAECBAgQIECAAAECBEatgADoqO1aL0aAAAECBAgQIECAAAECBAgQIECAgACo7wABAgQIECBAgAABAgQIECBAgAABAqNWQAB01HatFyNAgAABAgQIECBAgAABAgQIECBAQADUd4AAAQIECBAgQIAAAQIECBAgQIAAgVErMGHUvpkXI0CAAAECBAgQIECAQAcC8+bNS3/4wx9KS6y99tpp0UUXLb0mkwABAgQIEKi2gABotftH6wgQIECAAAECBAgQ6JHA888/n/bcc8/Sp82cOTNNnTq19JpMAgQIECBAoNoCpsBXu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECCZU73BAABAAElEQVRAgAABAgQIECBAgACBLgQEQLvAU5QAAQIECBAgQIAAAQIECBAgQIAAgWoLCIBWu3+0jgABAgQIECBAgAABAgQIECBAgACBLgQmdFFWUQIECBAgQIAAAQIECIwagfHjx6c111yz9H0WXnjh0nyZBAgQIECAQPUFBECr30daSIAAAQIECBAgQIBADwSWW2659J//+Z89eJJHECBAgAABAr0UMAW+l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUEQHvK7WEECBAgQIAAAQIECBAgQIAAAQIECPRSQAC0l9qeRYAAAQIECBAgQIAAAQIECBAgQIBATwUm9PRpHkaAAAECBAgQIECAAIGKCrz++uvpqaeeKm3dlClT0oQJ/vlUiiOTAAECBAhUXMD/gle8gzSPAAECBAgQIECAAIHeCDz77LNp++23L33YzJkz09SpU0uvySRAgAABAgSqLWAKfLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQIECBCotoAAaLX7R+sIECBAgAABAgQIECBAgAABAgQIEOhCYEIXZRUlQIAAAQIECBAgQIDAqBEYP358WmaZZUrfJ65JBAgQIECAwMgUEAAdmf2m1QQIECBAgAABAgQIDLLAcsstl26++eZBrlV1BAgQIECAwHAL+DXmcPeA5xMgQIAAAQIECBAgQIAAAQIECBAgMGQCAqBDRqtiAgQIECBAgAABAgQIECBAgAABAgSGW0AAdLh7wPMJECBAgAABAgQIECBAgAABAgQIEBgyAQHQIaNVMQECBAgQIECAAAECBAgQIECAAAECwy0gADrcPeD5BAgQIECAAAECBAgQIECAAAECBAgMmYAA6JDRqpgAAQIECBAgQIAAAQIECBAgQIAAgeEWEAAd7h7wfAIECBAgQIAAAQIECBAgQIAAAQIEhkxAAHTIaFVMgAABAgQIECBAgAABAgQIECBAgMBwCwiADncPeD4BAgQIECBAgAABAgQIECBAgAABAkMmIAA6ZLQqJkCAAAECBAgQIECAAAECBAgQIEBguAUEQIe7BzyfAAECBAgQIECAAAECBAgQIECAAIEhExAAHTJaFRMgQIAAAQIECBAgQIAAAQIECBAgMNwCAqDD3QOeT4AAAQIECBAgQIAAAQIECBAgQIDAkAkIgA4ZrYoJECBAgAABAgQIECBAgAABAgQIEBhuAQHQ4e4BzydAgAABAgQIECBAgAABAgQIECBAYMgEBECHjFbFBAgQIECAAAECBAgQIECAAAECBAgMt4AA6HD3gOcTIECAAAECBAgQIECAAAECBAgQIDBkAgKgQ0arYgIECBAgQIAAAQIECBAgQIAAAQIEhltAAHS4e8DzCRAgQIAAAQIECBAgQIAAAQIECBAYMgEB0CGjVTEBAgQIECBAgAABAgQIECBAgAABAsMtIAA63D3g+QQIECBAgAABAgQIECBAgAABAgQIDJmAAOiQ0aqYAAECBAgQIECAAAECBAgQIECAAIHhFhAAHe4e8HwCBAgQIECAAAECBAgQIECAAAECBIZMYMKQ1axiAgQIECBAgAABAgQIjDCBOXPmlLZ44sSJady4caXXZBIgQIAAAQLVFhAArXb/aB0BAgQIECBAgAABAj0S+Mtf/pK22Wab0qfNnDkzTZ06tfSaTAIECBAgQKDaAqbAV7t/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqCwiAVrt/tI4AAQIECBAgQIAAAQIECBAgQIAAgS4EBEC7wFOUAAECBAgQIECAAAECBAgQIECAAIFqC0yodvO0jgABAgQIECBAgAABAr0RmDx5crrvvvt68zBPIUCAAAECBHomYARoz6g9iAABAgQIECBAgAABAgQIECBAgACBXgsIgPZa3PMIECBAgAABAgQIECBAgAABAgQIEOiZgCnwPaP2IAIECBAgQIAAAQIECBAgQIDA6BJ49tln0/PPP9/ypRZZZJG02mqrtbzuAoFeCAiA9kLZMwgQIECAAAECBAgQIECAAAECo1Dgq1/9avrGN77R8s2mTZuW/ud//qfldRcI9ELAFPheKHsGAQIECBAgQIAAAQIECBAgQIAAAQLDImAE6LCweygBAgQIECBAgAABAgQIECBAYOQLTJ8+Pe26667Zi9x4442N6fB/8zd/kxZeeOG0+uqrj/yX9AYjXkAAdMR3oRcgQIAAAQIECBAgQIAAAQIECAyPwEc+8pEUP5G22mqrdNNNN2XHF110UVp22WWzY/8hMNwCpsAPdw94PgECBAgQIECAAAECBAgQIECAAAECQyYgADpktComQIAAAQIECBAgQIAAAQIECBAgQGC4BQRAh7sHPJ8AAQIECBAgQIAAAQIECBAgQIAAgSETEAAdMloVEyBAgAABAgQIECBAgAABAgQIECAw3AICoMPdA55PgAABAgQIECBAgAABAgQIECBAgMCQCQiADhmtigkQIECAAAECBAgQIECAAAECBAgQGG6BCcPdgJH2/M997nPp5ptvTp/5zGfS3nvv3VbzX3vttXTZZZelq666Kj322GPppZdeStOnT08bbrhh2mqrrdK0adN6Wk9bD3MTAQIECBAgQIAAAQIECBAgQIAAgVEgIADaQSdefPHFWfCzgyLp6aefTjNmzEgPP/xwU7Fbb701xc/ZZ5+djjrqqLTzzjs3XS+eDFY9xXqdEyBAgAABAgQIECBAgAABAgQIEBjNAgKgbfbulVdemU499dQ27/7rbbNnz06HH354I/g5derUtM0226QpU6akO+64I1177bXplVdeSccff3yKe/faa6/S+gerntLKZRIgQIAAAQIECBAgQIAAAQIECBAYxQICoAN07ty5c9OPfvSjdOGFF6a+vr4B7m6+fNZZZ6UHH3wwy9xhhx3SMccckxZeeOHsfPfdd0933nlnOuKII7Lg57e//e30zne+M02ePLm5ktrZYNUzX8UyCBAgQIAAAQIECBAgQIAAAQIECIxyAZsg9dPBMUrzgAMOSBdccEF6/fXX+7lz/kuzZs1Kl1xySXZhhRVWaAp+1u/eaKONsvw4j3VC6/fXr8fnYNWTr9MxAQIECBAgQIAAAQIECBAgQIAAgbEiIABa0tMx0vOb3/xm+tSnPpUef/zx7I411lij7U2PosCvf/3rNGfOnKzsHnvs0Rj5mWXk/hNT4ldfffUsJwKg8+bNy10dvHqaKnVCgAABAgQIECBAgAABAgQIECBAYIwICICWdHSM9vzFL37RuPLe9743mwYfa3jW07hx4+qHpZ933313I3/zzTdvHJcdbLbZZln2M888k26//famWwarnqZKnRAgQIAAAQIECBAgQIAAAQIECBAYIwICoP109Nvf/vb03e9+Nx155JFp4sSJ/dw5/6V77rkny4xA6dprrz3/DbmcfGD1oYceyl1JabDqaarUCQECBAgQIECAAAECBAgQIECAAIExImATpJKOHj9+fDrjjDPSBhtsUHK1vawnnngiuzF2fJ8woX/mFVdcsVHpo48+2jiOg8Gqp6nSwkl/mzv1d61QjVMCBAgQIECAAAECBAgQIECAAAEClRPoPzJXueb2pkExarOb4Ges/VnfNGnZZZcdsNHLLLNM457Y9KieBqueen1lnwcffHC65ppryi418tZdd9302GOPNdY0bVxwQIAAAQIECBAgQIAAAQIECBAgQKDiAqbAD0EHzZ49u1Hroosu2jhudZC/5+WXX27cNlj1NCp0QIAAAQIECBAgQIAAAQIECBAgQGCMCRgBOgQd/tJLLzVqXWSRRRrHrQ7y98ydO7dx22DV06jQAQECBAgQIECAAAECLQViU9Iddtih9HpskjrQ2v6lBWUSIECAAAECwy4gADoEXZBf8/O1114b8Anz5s1r3JMPhg5WPY3KSw4mT56cVl111ZIrf83685//nCIQay3QlkQuECBAgAABAgQIjBKB+P+8+QEJ+dfy/4fzGo4JECBAgMDIEhAAHYL+WmyxxRq1vvLKK43jVgf5eyZNmtS4bbDqaVRYcnDCCSeU5L6Rtffee6eLL774jQxHBAgQIECAAAECBAgQIECAAAECBEaQgDVAh6CzFl988Uat+XU8G5mFg/xU93wAdLDqKTzOKQECBAgQIECAAAECBAgQIECAAIExIyAAOgRdHZsaLb/88lnNMYV8oPTUU081blluueUax4NVT6NCBwQIECBAgAABAgQIECBAgAABAgTGmIAA6BB1+JprrpnVHKM7n3vuuX6f8vjjjzeuT58+vXEcB4NVT1OlTggQIECAAAECBAgQIECAAAECBAiMEQEB0CHq6PXXX79R8+9+97vGcdnBnXfe2cjOl4vM/Hk39TQe4IAAAQIECBAgQIAAAQIECBAgQIDAGBIQAB2izt5+++0bNV9++eWN4+JBTH//7W9/m2Wvt956KT8FPjIHq57ic50TIECAAAECBAgQIECAAAECBAgQGAsCAqBD1MvrrLNOioBmpOuuuy6VBUHnzp2bTjrppPTaa69l9+23337ZZ/4/g1VPvk7HBAgQIECAAAECBAgQIECAAAECBMaKgADoEPb0YYcd1qj9hBNOSGeffXZ68skn07x581JMe58xY0a67bbbsntiqvt2223XuD9/MFj15Ot0TIAAAQIECBAgQIAAAQIECBAgQGAsCEwYCy85XO+4wQYbpOOOOy6deOKJ6eWXX04//OEPs5+FFlqoMeoz2rbqqqumk08+OY0fXx6PHqx6hsvBcwkQIECAAAECBAgQIECAAAECBAgMl0B5xG24WjMKn7vjjjumM888M5sOXw9w1qe8T5gwIb3vfe/Lri+zzDL9vv1g1dPvQ1wkQIAAAQIECBAgQIAAAQIECBAgMMoEjADtoEN32223FD+dprXWWisb+RmjQO+///4UGx+tssoqaY011khLLLFE29UNVj1tP9CNBAgQIECAAAECBAgQIECAAAECBEa4gABoDztw4sSJacMNN8x+unnsYNXTTRuUJUCAAAECBAgQIECAAAECBAgQIDASBEyBHwm9pI0ECBAgQIAAAQIECBAgQIAAAQIECCyQgADoArEpRIAAAQIECBAgQIAAAQIECBBoX6C2Il564ok37r/++pReeeWNc0cECAydgADo0NmqmQABAgQIECBAgAABAgQIEBjjAldemdJmm6W07rop3XnnGxj775/SCiukdOyxKc2e/Ua+IwIEBl9AAHTwTdVIgAABAgQIECBAgAABAgQIjHGBvr6UjjwypXe/O6Xf/KYc44UXUvryl1PaYouUHn64/B65BAh0LyAA2r2hGggQIECAAAECBAgQIECAAAECTQIxsvPkk5uyWp7cc89fA6XPPtvyFhcIEOhCQAC0CzxFCRAgQIAAAQIECBAgQIAAAQJFgVtuSekrXynm9n/+wAMpHXZY//e4SoDAggkIgC6Ym1IECBAgQIAAAQIECBAgQIAAgVKBGP25IOm881KKzZIkAgQGV0AAdHA91UaAAAECBAgQIECAAAECBAiMYYHnn0/pqqsWDOD111O6+OIFK6sUAQKtBQRAW9u4QoAAAQIECBAgQIAAAQIECBDoSOCuu1KaN6+jIk03335706kTAgQGQUAAdBAQVUGAAAECBAgQIECAAAECBAgQCIGnn+7Oodvy3T1daQKjU0AAdHT2q7ciQIAAAQIECBAgQIAAAQIEhkFgueW6e2i35bt7utIERqfAhNH5Wt6KAAECBAgQIECAAAECnQksv/zy6aabbiottNRSS5XmyyRAgEBRYPr0lMaNS6mvr3ilvfMNNmjvPncRINC+gABo+1buJECAAAECBAgQIEBgFAuMq0Usll122VH8hl6NAIFeCKy4Ykpbb53S9dcv2NP23HPByilFgEBrAVPgW9u4QoAAAQIECBAgQIAAAQIECBDoWODoozsukhXYbLOUNt54wcoqRYBAawEB0NY2rhAgQIAAAQIECBAgQIAAAQIEOhbYZZeUDjyw42LpoYdSeuqpzsspQYBA/wICoP37uEqAAAECBAgQIECAAAECBAgQ6Fjg9NNT2mmnzoo9++yCBU47e4q7CYw9AQHQsdfn3pgAAQIECBAgQIAAAQIECBAYYoFFFknpXe/q/CGXXprS977XeTklCBBoLSAA2trGFQIECBAgQIAAAQIECBAgQIDAAgtccUXrottu2/ra4YendN99ra+7QoBAZwICoJ15uZsAAQIECBAgQIAAAQIECBAgMKDAnDkp3XBD69u+//2UNtmk/PpLL6W0334pvfpq+XW5BAh0JiAA2pmXuwkQIECAAAECBAgQIECAAAECAwr8+tcpvfxy69tiivx556U0cWL5Pb/5TUrHHlt+TS4BAp0JCIB25uVuAgQIECBAgAABAgQIECBAgMCAApdfPuAtaf31UzrllNb3nXxyStdd1/q6KwQItCcgANqek7sIECBAgAABAgQIECBAgAABAm0L9Lf+Z76ST3wipZ13zue8cfz66yl96EMpzZr1Rp4jAgQ6FxAA7dxMCQIECBAgQIAAAQIECBAgQIBAS4Ennkjp3ntbXm66MG5cSmedldLkyU3ZjZNHHknpk59snDogQGABBARAFwBNEQIECBAgQIAAAQIECBAgQIBAK4HLLmt1pTx/5ZVTik2RWqVzz03pZz9rdVU+AQIDCQiADiTkOgECBAgQIECAAAECBAgQIECgA4FW09+XWKJ1JXvumdJHPtL6+sEHpxQjSyUCBDoXEADt3EwJAgQIECBAgAABAgQIECBAgECpQKzbefXVpZdaTnOv333qqSmtvXb9rPnzuedS+vCHU+rra853RoDAwAICoAMbuYMAAQIECBAgQIAAAQIECBAg0JbArbem9Mwz5be2WuezfneMED3vvJQWWqie0/z5q1+l9K1vNec5I0BgYAEB0IGN3EGAAAECBAgQIECAAAECBAgQaEvg8svLb1t00ZSWW678Wj53yy1TOvrofE7z8Re+kNJddzXnOSNAoH8BAdD+fVwlQIAAAQIECBAgQIAAAQIECLQt0Gr9z+22az2ys1h5BEC32KKY+9fzuXNT2m+/lOJTIkCgPQEB0Pac3EWAAAECBAgQIECAAAECBAgQ6FfgxRdTuuWW8lt23rk8vyx3woS/ToWfNKns6l9HgB51VPk1uQQIzC8gADq/iRwCBAgQIECAAAECBAgQIECAQMcCV12V0quvlhd797vL81vlTp2aUmyK1CrFtVgTVCJAYGABAdCBjdxBgAABAgQIECBAgAABAgQIEBhQoNX6nyutlNJb3jJg8fluOOiglHbffb7sLCN2g49d4WN3eIkAgf4FBED793GVAAECBAgQIECAAAECBAgQINCWQKsRmbvs0lbx0pt+8IOUVlyx9FJ64omUDjmk/JpcAgTeEBAAfcPCEQECBAgQIECAAAECBAgQIEBggQQeeCCl+ClLnU5/z9cxZUpKZ52Vz2k+vuiilM45pznPGQECzQICoM0ezggQIECAAAECBAgQIECAAAECHQu0mv4+blxK73pXx9U1Fdh115Q+8YmmrKaTT30qpUceacpyQoBATkAANIfhkAABAgQIECBAgAABAgQIECCwIAJXXFFeatNNU1phhfJrneSeckpK06aVl5g1K6UPfSil118vvy6XwFgXmDDWAbw/AQIECBAgQIAAAQIEQuDZZ59Ne+65ZynG2Wefnd785jeXXpNJgACBefNSuuaacoeddy7P7zR3scVSOv/8lLbcsnyn+euuS+mkk1L6whc6rdn9BEa/gBGgo7+PvSEBAgQIECBAgAABAm0IvF4bOvWnP/2p9GdeRDckAgQItBC44YaUYhRmWepm/c9ifTGa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R9x6a77Jlr/nXcoS3WWXiGHD8q1xGFLeRXTOAhKgczZyBQECBAgQIECAAAECBAgQIFAhgWuuiahN6s4WByBlWUoTXGCBiG23zTfn0ksjnnkmXydKoCMBCdCOdNQRIECAAAECBAgQIECAAAEClRMo2v/z/e+PWG21ynWn4RpcdBjStGkRZ57ZcBw63AsCEqC9gOgRBAgQIECAAAECBAgQIECAQHkEivb/TLM/Bw0qTzu1JC+w4YYRyy+fr0uHIc2cma8TJVAkIAFaJCNOgAABAgQIECBAgAABAgQIVE7g0UcjHn4432z7f+ZdyhZNSeqiWaBpfItm+JatH9pTHgEJ0PKMhZYQIECAAAECBAgQIECAAAECPRS44or8A1JSbdNN83Wi5RNIhyENHZpvl8OQ8i6ixQISoMU2aggQIECAAAECBAgQIECAAIGKCRTNDvzQhyLSHqBKNQQWWijif/4n39Y//SniuefydaIEcgISoDkVMQIECBAgQIAAAQIECBAgQKByAumQnGuvzTfb8ve8S5mjRcvg33kn4qyzytxybSubgARo2UZEewgQIECAAAECBAgQIECAAIFuCdx6a8Srr+ZvTQcgKdUS2HjjiGWXzbf5jDMchpSXEc0JSIDmVMQIECBAgAABAgQIECBAgACBygkULX+fZ56IddapXHcavsFp39Y99sgzpIOurr46XydKYHYBCdDZRXwnQIAAAQIECBAgQIAAAQIEKikwcWK+2RttFDH33Pk60XIL7Labw5DKPULVaJ0EaDXGSSsJECBAgAABAgQIECBAgACBDgRefjni9tvzF9j/M+9ShWg6uOrTn8639A9/iHj++XydKIG2AhKgbTV8JkCAAAECBAgQIECAAAECBCopcOWVETNm5Jtu/8+8S1WiHR2G9MtfVqUX2jmQAkMG8uWN8O6bbropbr755k51dfjw4fH1r3+98Nrp06fH5ZdfHldddVU88cQT8eabb8a4ceNitdVWi4997GOx8sorF96rggABAgQIECBAgAABAgQI1LNA0f6fSywRsdJK9dzz+u/bZptFLLNMxKOPtu9rOgzpoIMi0n6hCoEiAQnQIpleiv+l9m/ga665plNPGzlyZGEC9IUXXogDDjig9g/7rP+0T5o0KdLP2WefHYceemiM99danbJ2EQECBAgQIECAAAECBAjUl0CaAZor/picU6lWLCU3d9894n//t327H3ww4tprI9KJ8QqBIgFL4Itkein+YPonsYfljTfeqP1txkGtyc/ll18+dtlllzjwwANj0003jWHDhkWaHfr9738/Lr744h6+ze0ECBAgQIAAAQIECBAgQKBaAv/8Z8Tjj+fbLAGad6laNB2GNKRgGt9pp1WtN9rb3wIFv3X6uxn1+b633nornnzyyabOrbnmmvHtb3+7w47ONVc+H33WWWfFww8/3HTvRrWj677zne/E0KFDm75vvfXW8fe//z0OPvjgSInSE088MdZff/1YYIEFOnyXSgIECBAgQIAAAQIECBAgUC8CRcvf0x+zN9mkXnrZ2P1YZJGIrbaK+P3v2zuk2H//G7VcSPs6EQJJIJ9xY9MrAilpOXPmzKZnrbLKKjF27NgOf+abb752733ttdfikksuaYovtNBCsyQ/Wy5effXVm+Lpe5oJ2nJ9S71fCRAgQIAAAQIECBAgQIBAPQtMnJjv3dprR2T+qJ2/WLT0AkWHIb39doTDkEo/fAPaQAnQPuRvu/x9pW7uuHxtbSOLNJM0lW222aZ15ufszV533XVjibSzc62kBOi0adNmv8R3AgQIECBAgAABAgQIECBQdwIp+XXDDflubb55Pi5aTYE0nkstlW97OgxJIVAkIAFaJNML8d5IgP7jH/9obcna6a+uOihpmX0qL774Ytx5550dXKmKAAECBAgQIECAAAECBAjUh8Bf/xq1LeHyfbH/Z96lqtG0pUE6DClXHngg4rrrcjViBCyB79PfAy0J0DFjxsT73//+pnelJfHPPvtsvPrqq51693333dd03aDakWfLLbdch/ekw5FayiOPPNLy0a8ECBAgQIAAAQIECBAgQKBuBYr2/3zf+yLmMI+obk3quWPpMKTBg/M9dBhS3kW0doAWhL4RSHtxtiQh0/L3e++9t7YfxS+bDiyaMmVK00vTnp5pb9C99torFltssWxDnnrqqab4ggsuWDvtrOPhakmyphseLzr+LvsWQQIECBAgQIAAAQIECBAgUE2Bov0/N920+NTwavZUq5NASp9suWXEH//Y3uPii9Oq2Kidv9K+TqSxBTrOqDW2TY96nxKQb6eNSGolndL+la98pd3znn/++Ug/t956a+y9996x7bbbznJN2vtzxowZTbHcAUmzXFz7kmaatpR0eFJnyqWXXhqPPvpo4aWpffPPP3+k59lXtJBJBQECBAgQIECAAAECBAgMgEDtj6y1P3PnX2z/z7xLPUTTYUi5BOjUqRHnnBOx33710Et96E0BCdDe1GzzrJbl7ymUEpnDhw+PD33oQ7HGGms0JRRT0vG62uYUTz/9dKQZoccff3yMHj06Nttss9anvNFmE5O55567NV70oe01LbNMi65tif/pT39qakfL99yvCyywQFMfJEBzOmIECBAgQIAAAQL1IvC+2nrZU045JdudhRdeOBsXJEBgYAXS8vfaTnPZIgGaZamL4BZbRO0g6IgnnmjfndNPlwBtryIiAdpHvwfaJkBTAvG4446LZZZZZpa37VbbuOLEE0+MlIRM5Sc/+Umkg4xaZnu++eabrdcPGzas9XPRh7bXTE1/7aEQIECAAAECBAgQINBpgfTf05tsskmnr3chAQIDL1C0/H2FFaL2Z/CBb58W9I1Ay2FI3/1u++f/858R6WCsj3+8fZ1I4wo4Bb6Pxn7rrbeOI444omnpe/pb5NmTn+m1aVboAQccECukfzPXSjoY6cILL2z6nP6n7Z6faU/ROZW2MzTbJkPndJ96AgQIECBAgAABAgQIECBQNYE08/Oqq/KtNvsz71JP0S9+0WFI9TSefd0XM0D7SHjxxReP9DOnMrh2dNkXa//UHnrooU2Xtp05OmLEiNbbW/YTbQ1kPrS9ZuTIkZkr2od22WWX2LyD/2c4+eST44477mjdz7T9E0QIECBAgAABAgQIECBAgED/C9xzT8Szz+bfO358Pi5aPwIp5fKJT0TUjjZpVy66KGorbqO2wrZdlUCDCkiAlmDgl19++dZWtJwcnwLzzDNPZDjP9gAAQABJREFUa7ztfqCtwdk+tF0y39kE6DrrrDPbU2b9+qtf/arpAKRZo74RIECAAAECBAgQIECAAIGBFUj7f+bK0KERG26YqxGrN4F0GFIuAVo7aqXpMKR99+2dHs8s2mi29vhBgwb1zks8pU8FLIHvU97OPXzBBRdsvTAtg28p6VCjsWPHNn1Np7HPqTz33HOtl6ST2xUCBAgQIECAAAECBAgQIFCvAkX7f6Z5PrUzhpUGEPjkJyMWWyzf0XQYUm+UL33pSzFXbdPRop85TSzrjTZ4Rs8FJEB7bph9Qpqx+eSTT8bDDz+crW8bbJvcXCIdY9amtOwdmmZ3vvzyy21q2n9M72sp48aNa/noVwIECBAgQIAAAQIECBAgUFcC6czgm27Kd6mDXd7yN4hWVqC2q2DU8pPZct99xb9HsjcI1rWABGgfDG9KVn7qU5+Kz3/+87FnbT72nE5k/89//tPaiiWXXLL1c/qwyiqrtH6/J21w0kH5+9//3lrb9r7WoA8ECBAgQIAAAQIECBAgQKAOBK6/Pmp/1s53RAI071Kv0ZQATafC58ppp+WiXYstuuiikSaZpZ+2B063xJZeeumuPdDVAyJQ8FtkQNpSNy9Ne3e2JCDTwUR/+9vfOuxb2mezpay33notH5t+3XDDDVu/Tyya31+7Ii1/v+uuu5quXWmllcIS+FY2HwgQIECAAAECBAgQIECgzgSK/nicdpH78IfrrLO606FAmke2xRb5S37724hXXsnXdTZ6xBFHxP3339/0s+yyy7be1hJrm9NprfShdAISoH00JG0TmT/5yU9i8uTJ2TddVDua7O67726qW2GFFWKzzTab5boUSwnNVG688cbIJUHTDNMf/vCHMX369KbrJkyY0PSr/yFAgAABAgQIECBAgAABAvUoUHQAUvojddFswHp00KdmgXQYUq689VbEuefmasQaTUACtI9G/DOf+UysttpqTU9Pe3zusccetf1Jboq0PH7atGnx4IMPxpFHHhkpOZpKmka9zz77ZE8P22+//ZquSf+T7jn77LPj6aefbnpOWvZ+wAEHxO233950TZp5usEGG7Re7wMBAgQIECBAgAABAgQIEKgngXT8xT//me/R+PH5uGh9C9R2IYzaSvVs6a3DkLIPF6yMwJDKtLRiDR0yZEgcfvjhTUnNdDjRU089FYccckhTL1JdSoK2lIUWWqgpsbnyyiu3hGb5ddVVV2161lFHHRVTpkyJM844o+lncG2335ZZn+mGxWpHn/3oRz9qOplslgf4QoAAAQIECBAgQIAAAQIE6kSgaPl76t5siyrrpMe6MSeBWpolvvjFiO9/v/2V994bccstER/7WPs6kcYRMAO0D8d6wQUXjHPOOSf23nvvGDlyZOubWpKfY8aMiY022qgpmVmU/Gy5aeONN45TTz21aTn8XO/O529JfqaE6g477NBUn56pECBAgAABAgQIECBAgACBehUoSoB+4ANpYlC99lq/5iTQ14chzen96sstYAZoH4/P0KFDY8cdd4zPfe5z8eyzz8bjjz8e6WCkFVdcMRZeeOEuvT1ttptmf6ZZoGkJfTr4KJ1Glk6OHzVqVJee5WICBAgQIECAAAECBAgQIFA1gRkzIq6+Ot9qp7/nXRolmg5jT78HrriifY8vvDDihBMi5p23fZ1IYwhIgPbTOKdZmylZmX56WoYPH960v2jLHqM9fZ77CRAgQIAAAQIECBAgQIBAFQQmTYp46aV8S+3/mXdppGg6DCmXAK0dxxLnnRfx1a82koa+thWwBL6ths8ECBAgQIAAAQIECBAgQIBAaQWKTn+vzROKj3+8tM3WsH4S2GqrqK22zb/MYUh5l0aJSoA2ykjrJwECBAgQIECAAAECBAgQqLhAUQI0JT9HjKh45zS/xwIthyHlHnTPPRG33ZarEWsEAQnQRhhlfSRAgAABAgQIECBAgAABAhUXeO21iFtvzXfC8ve8SyNG02FIgwble37aafm4aP0LSIDW/xjrIQECBAgQIECAAAECBAgQqLzANddETJuW74YDkPIujRitnR8dm26a7/mvfx0xeXK+TrS+BSRA63t89Y4AAQIECBAgQIAAAQIECNSFwMSJ+W4sskjUDgrO14k2pkA6DClX3ngj4vzzczVi9S4gAVrvI6x/BAgQIECAAAECBAgQIECgDgSK9v80+7MOBreXu7D11hELLZR/qGXweZd6j0qA1vsI6x8BAgQIECBAgAABAgQIEKi4wEMPRTzySL4T9v/MuzRydOjQiN12ywvcdVfE7bfn60TrV0ACtH7HVs8IECBAgAABAgQIECBAgEBdCBTN/kyH3RTt91gXHdeJbgvssYfDkLqNV4c3SoDW4aDqEgECBAgQIECAAAECBAgQqCeBogToGmtELLhgPfVUX3pLYLnlIjbeOP+0Cy6IeP31fJ1ofQpIgNbnuOoVAQIECBAgQIAAAQIECBCoC4F08ns6AT5XLH/PqYi1CBQdhpSSn7/6VctVfm0EgSGN0El9JECAAAECBAgQIECAwJwEJk+eHIcddlj2sm9+85ux8MILZ+sECRDoW4Fbbomo/eOZLQ5AyrIIviuwzTbNM4RfeKE9SToMqShB2v5qkaoLSIBWfQS1nwABAgQIECBAgACBXhGYOnVq/PnPf84+66tf/Wo2LkiAQN8LTJyYf8fIkRHrrJOvEyWQBIYNi9h114ijj27vcccdEelApLSNglL/ApbA1/8Y6yEBAgQIECBAgAABAgQIEKisQNH+nxtt1JzgqmzHNLxfBNJhSEXl1FOLasTrTUACtN5GVH8IECBAgAABAgQIECBAgECdCLz4YkSaqZcr9v/MqYjNLrDCChEpWZ4raR/QN97I1YjVm4AEaL2NqP4QIECAAAECBAgQIECAAIE6EbjqqogZM/Kdsf9n3kW0vUDRXp9pb9l0IrxS/wISoPU/xnpIgAABAgQIECBAgAABAgQqKVC0/+dSS0WsuGIlu6TRAyDwP/8TscAC+Renw5CU+heQAK3/MdZDAgQIECBAgAABAgQIECBQSYErr8w32/L3vItoXmDuuSN22SVfN2lSxD335OtE60dAArR+xlJPCBAgQIAAAQIECBAgQIBA3Qg88kjEk0/mu2P5e95FtFigo8OQzAItdquXGgnQehlJ/SBAgAABAgQIECBAgAABAnUkcMst+c4MHhyxySb5OlECRQIrrRSxwQb52vPPj3jzzXydaH0ISIDWxzjqBQECBAgQIECAAAECBAgQqCuBogTo2mtHjBlTV13VmX4SKJoF+uqrEb/5TT81wmsGREACdEDYvZQAAQIECBAgQIAAAQIECBDoSODOO/O19v/Mu4jOWWD77SPmnz9/nWXweZd6iUqA1stI6gcBAgQIECBAgAABAgQIEKgjgalT852x/2feRXTOAukwpJ13zl93660R996brxOtvoAEaPXHUA8IECBAgAABAgQIECBAgEBDCKSl72kJvEKguwJ77ll8p1mgxTZVr5EArfoIaj8BAgQIECBAgAABAgQIEGgQgXT4UToESSHQXYFx4yLWWy9/93nnRbz1Vr5OtNoCEqDVHj+tJ0CAAAECBAgQIECAAAECDSNg+XvDDHWfdrRoFugrr0RceGGfvtrDB0hAAnSA4L2WAAECBAgQIECAAAECBAgQ6JqAA5C65uXqvMAOO0TMN1++zjL4vEvVoxKgVR9B7SdAgAABAgQIECBAgAABAg0gsOKKEUst1QAd1cU+Fxg+PGKnnfKvufnmiPvuy9eJVldAArS6Y6flBAgQIECAAAECBAgQIECgrgRmzizujtmfxTZqui5QtAw+Pcks0K57lv0OCdCyj5D2ESBAgAABAgQIECBAgACBBhCYMSPiySeLO2r/z2IbNV0XWHXViHXWyd937rkRU6bk60SrKSABWs1x02oCBAgQIECA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7LL5OlECBMopkE50v+665gToRRdFnHpqxDvvRAwe3LydxXbbRWy8cTnb3tVWSYB2Vcz1BAgQIECAAAECBAgQIECgAQV+/OPiTu+3X3GdGgIEyi2wwQYR6ee3v4147rmI0aMjTj653G3uautqk9QVAgQIECBAgAABAgQIECBAgECxwGOPRVx8cb5+/fUjPvrRfJ0oAQIEyiAgAVqGUdAGAgQIECBAgAABAgQIECBQYoHjjouYNi3fwAMPzMdFCRAgUBYBCdCyjIR2ECBAgAABAgQIECBAgACBEgq8+mrEWWflG7bCChGf+lS+TpQAAQJlEZAALctIaAcBAgQIECBAgAABAgQIECihwCmnREyenG/YQQdFpBPgFQIECJRZwL+myjw62kaAAAECBAgQIECAAAECBAZQIJ0I/dOf5huwwAIRX/hCvk6UAAECZRKQAC3TaGgLAQIECBAgQIAAAQIECBAokcB550U8/XS+QV//esSIEfk6UQIECJRJQAK0TKOhLQQIECBAgAABAgQIECBAoEQCxx+fb8zw4RF7752vEyVAgEDZBCRAyzYi2kOAAAECBAgQIECAAAECBEogcPnlEffem2/IbrtFLLhgvk6UAAECZROQAC3biGgPAQIECBAgQIAAAQIECBAogcCxx+YbMWhQxDe+ka8TJUCAQBkFJEDLOCraRIAAAQIECBAgQIAAAQIEBlDgnnsirr4634BttolYccV8nSgBAgTKKCABWsZR0SYCBAgQIECAAAECBAgQIDCAAkcfXfzyAw8srlNDgACBMgpIgJZxVLSJAAECBAgQIECAAAECBAgMkMCTT0ZceGH+5f/v/0Wss06+TpQAAQJlFZAALevIaBcBAgQIECBAgAABAgQIEBgAgRNOiHjnnfyLDz44HxclQIBAmQUkQMs8OtpGgAABAgQIECBAgAABAgT6UWDy5Igzzsi/cNllI7beOl8nSoAAgTILSICWeXS0jQABAgQIECBAgAABAgQI9KPAqadGvPpq/oUHHBAxeHC+TpQAAQJlFpAALfPoaBsBAgQIECBAgAABAgQIEOgngWnTIk48Mf+y+eeP2GWXfJ0oAQIEyi4gAVr2EdI+AgQIECBAgAABAgQIECDQDwK//nXEE0/kX/TVr0aMHJmvEyVAgEDZBSRAyz5C2keAAAECBAgQIECAAAECBPpB4Ljj8i+Z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I1277bbbVqBXHTfx2msjdtgh4sUX89fdcUfETjtF/OIXERddVL3TDb/znaiNV75vKVqb3BvHHhvx+983/w1vbaJvpUuaxZvGcvToiLnnrnRXNJ4AAQIECBAgQIBAvwm89VbEJz8Zcd11nXvl/PNHbL115651FQECBBpJwB6gFRjts846Kx5++OGmlm600UZx2mmnxe677177P7at47vf/W4cf/zxMTKtna6VE088Mf773/82fa7q/1x/fdRmshYnP9v2K/2HQI0kXn+9bbTcn3/wg46Tn21b/8gjEZtt1n4GbNtryvo5/e30ySdHrLdec9Kzlq+P4cMjll46Yp99IlLfFAIECBAgQIAAAQIEigW++MXOJz/TU9IqujRBRCFAgACBWQUkQGf1KN231157LS655JKmdi200ELxndrUwaFDh87SztVXX70pnoJpn9CW62e5qCJfXn21eeZnWubR2XLvvRFf/3pnrx7Y6/7+96iNVdfa8NRTEV/5StfuGeir0wzdNGv1a19r3t+07Xg+9ljESSc116ctDhQCBAgQIECAAAECBNoL1I5+iF//un18TpF9943aysA5XaWeAAECjSVgCXzJx/va2lrwt9K6h1rZZptt2iU/W5qflsQvscQSTYcjpQTozjvvHEOGVG94jzkmorbd6bvln7Vf/9LypeDX2lTCGFTbA7V5ZuGii0ak5dZl/fnjHyNmzGjpyu9qH37a8iXz64ha7M9N8T/8oXm5/xprRG2276w/w4Zlbh3A0I03Rmy+edR+33bciNquDfGtb0WkBO9PO2Lo+DFqCRAgQIAAAQIECNSlwHHHda9bzz4b8atfReyxR/fudxcBAgTqUaB6GbJ6HIUO+vSPf/yjtXbttddu/Zz7sOaaazYlQF+sbbZ45513xpyuzz1joGPpwKP3ym21j7WTjjosX63VDmlKeH7vex1eWMLK2jGOcV0H7Ro1S11t14Nsmas2j3tU7dLZE6Od/Z4OXCq6NtV15ZCptM/ndtvNOfnZtiNpmXztt27sumvbqM8ECBAgQIAAAQIEGldgypSIa67pfv8vu0wCtPt67iRAoB4FJEBLPqr33XdfUwsH1bJQyy23XIetTYcjtZRHahssVi0BmmYCznbIfUt3/NqBQJpRWtspoemng8u6XdVRgjQlTtvW187jiuef7/qrDj004jOfaX5W1+92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M6Ql/T/4QcQjj0h+VmZANZQAAQIECBAgQIAAAQIECFRYwAzQkg/eCiusECmh+UBt05cba+ukUxJ0/Pjxs7R66tSpkU5znz59elN8Qto8UiEwwAJpH9Ntt23+GeCmeD0BAgQIECBAgAABAgQIECDQwAJmgFZg8Pdrc8rPkbWNX84+++zafphPx7Rp0yItez/ggANal8mnpe8bbLBBBXqliQQIECBAgAABAgQIECBAgAABAgT6XsAM0L437vEbVl111Tj88MPjqKOOiilTpsQZZ5zR9DO4toFky6zP9JLFFlusdnDQj2KuueS1e4zuAQQIECBAgAABAgQIECBAgAABAnUhIFNWkWHceOON49RTT21aDt+S4GxJfg4ZMiR22GGHpvoxdsGuyIhqJgECBAgQIECAAAECBAgQIECAQH8ImAHaH8q99I5ll122aeZnmgX64IMPRjr4aNFFF40ll1wyRo0a1Utv8RgCBAgQIECAAAECBAgQIECAAAEC9SMgAVrBsRw+fHisttpqTT8VbL4mEyBAgAABAgQIECBAgAABAgQIEOg3AUvg+43aiwgQIECAAAECBAgQIECAAAECBAgQ6G8BCdD+Fvc+AgQIECBAgAABAgQIECBAgAABAgT6TUACtN+ovYgAAQIECBAgQIAAAQIECBAgQIAAgf4WkADtb3HvI0CAAAECBAgQIECAAAECBAgQIECg3wQkQPuN2osIECBAgAABAgQIECBAgAABAgQIEOhvAQnQ/hb3PgIECBAgQIAAAQIECBAgQIAAAQIE+k1AArTfqL2IAAECBAgQIECAAAECBAgQIECAAIH+FpAA7W9x7yNAgAABAgQIECBAgAABAgQIECBAoN8EhvTbm7yIAAECBAgQIECAAAECJRYYPnx4bLfddtkWjh49OhsXJECAAAECBMovIAFa/jHSQgIECBAgQIAAAQIE+kFg1KhR8YMf/KAf3uQVBLomcOWVV8bhhx/edNPDDz/cevO+++4bY8aMafp+zTXXxLBhw1rrfCBAgACB9wQkQN+z8IkAAQIECBAgQIAAAQIECJRO4IUXXoibbrqpXbvuu+++1tj06dNbP/tAgAABArMK2AN0Vg/fCBAgQIAAAQIECBAgQIAAAQIECBCoIwEzQOtoMHWFAAECBAgQIECAAAECBOpPYPvtt4/x48d32LERI0Z0WK+SAAECjSwgAdrIo6/vBAgQIECAAAECBAgQIFB6gbS359ixY0vfTg0kQIBAWQUsgS/ryGgXAQIECBAgQIAAAQIECBAgQIAAAQI9FpAA7TGhBxAgQIAAAQIECBAgQIAAAQIECBAgUFYBCdCyjox2ESBAgAABAgQIECBAgAABAgQIECDQYwEJ0B4TegABAgQIECBAgAABAgQIECBAgAABAmUVkAAt68hoFwECBAgQIECAAAECBAgQIECAAAECPRaQAO0xoQcQIECAAAECBAgQIECAAAECBAgQIFBWAQnQso6MdhEgQIAAAQIECBAgQIAAAQIECBAg0GMBCdAeE3oAAQIECBAgQIAAAQIECBAgQIAAAQJlFZAALevIaBcBAgQIECBAgAABAgQIECBAgAABAj0WkADtMaEHECBAgAABAgQIECBAgAABAgQIECBQVgEJ0LKOjHYRIECAAAECBAgQIECAAAECBAgQINBjAQnQHhN6AAECBAgQIECAAAECBAgQIECAAAECZRUYUtaGaRcBAgQIECBAgAABAgQIECBQ/wIPPfRQ3HnnnU0dfeyxx1o7/Je//CVS3eDBg2O77bZrjftAgACBrgpIgHZVzPUECBAgQIAAAQIECBAgQIBArwlMnDgxvva1r7V73qGHHtoUm3vuuSVA2+kIECDQFQFL4Lui5VoCBAgQIECAAAECBAgQIECAAAECBColYAZopYZLYwkQIECAAAECBAgQIECAQH0JrLXWWnHYYYcVdmrIEKmLQhwVBAh0SsC/RTrF5CICBAgQIECAAAECBAgQIECgLwTWXnvtSD8KAQIE+krAEvi+kvVcAgQIECBAgAABAgQIECBAgAABAgQGXEACdMCHQAMIECBAgAABAgQIECBAgAABAgQIEOgrAUvg+0rWcwkQIECAAAECBAgQqJTA1KlT46qrrsq2eYMNNohRo0Zl6wQJECBAgACBcgtIgJZ7fLSOAAECBAgQIECAAIF+Epg8eXLsv//+2bdddtllsfzyy2frBAkQIECAAIFyC1gCX+7x0ToCBAgQIECAAAECBAgQIECAAAECBHogIAHaAzy3EiBAgAABAgQIECBAgAABAgQIECBQbgEJ0HKPj9YRIECAAAECBAgQIECAAAECBAgQINADAQnQHuC5lQABAgQIECBAgAABAgQIECBAgACBcgtIgJZ7fLSOAAECBAgQ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NNLBD37wA/Ob3/zGvP/+++bTTz81Z555prnpppvMxhtvHMRN6gbyob+k2qbShX1in9hnPAQWLlxonn76afvwQYMGmQsvvDBIiBZA0vzX119/vbn//vvtr3w06gXavHnz2Os9QULLsIEDtAwQuUXxBJYsWVIxB2jxqSrflchXPpZx3An9xUG9PM/Uao3SXyXC119/XYnbFnRP5CsIV1pk9JeGoyI72GfxWLHP4tlFvVILPijsu+++ac5Pe/D//rVr18788Y9/NOeee66ZPn26mTdvnjn77LONes+oMpjkgHzGoL/kWij2iX0m1zqN8dk+P/744wC9RjpkC4cddpht7LvkkkuMVnpX41/79u2Neoz6EHCA+qDFGpZBhUsNPdIQIxfUut6woR+zMyCf02pt/qK/2tSbUn3MMceYZcuW2TncXC9zrWjYqlWrkoXacMMNS75HqTdAvuIJor/i2UW9EvuMSqp+POyzPpNyH9EiRwo9evTIeesWLVqYUaNGmTPOOMPMnDnTaMVb9Zi58sorbe/RnBfHeBL5voOP/mI0whyPxj6xT/W+T2rw2T6dbKoLderUKacK9tprL+uP+e1vf2s7q11++eW2YUmrxNd6wAFa6xqs8fTvsMMO5s9//rP59a9/bd566y0rzf77729X3axx0Wzyka+2tYj+ald/cnZqAm8NbVQji4Y7apGLm2++2X7Aa1ey71KOfLWtQfSH/pJMwHf7VI8WBX0T8gWxkMPz1FNPNXPmzDEvvPCCue6662y5Nd+1cZ1Hvjry6K+ORVK2sM86TWCfdSySsuWzfTrZZHdRwp577mnnwP7DH/5ge4Kef/75tjfoFltsEeXyxMbxo5tdYvGSsCgE1Apx7bXXmi233NJGv/POO80rr7wS5dKaiIN8NaGmrIlEf1nR1MSJH/7wh0FFdfHixebSSy+1ztCaSHyERCJfBEgJjoL+EqycCElDfxEgJTBKly5dbKo++r+h8PmS2KZNG3PNNdcY/SpoDsN77rkn32WxnUe+dPToL51H3HvYZ7oGsM90HnHv+WyfTjbNBapRclHCEUccYY488kgbdenSpeass84yixYtinJpYuPgAE2satavhGmYiuZZ0gS8Gq4qJ8Xy5cu9gYB8ta1K9Ffb+jvwwANN//79rRDTpk2zw+JrW6L01CNfOo9a20N/taax9PSiv3QetbDn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" width="672" /></p>
<div class="sourceCode" id="cb35"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb35-1"><a href="#cb35-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_WLS <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb35-2"><a href="#cb35-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb35-3"><a href="#cb35-3" aria-hidden="true" tabindex="-1"></a>results_jukyo_number_WLS <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="y-housing-security-benefit住居確保給付金の決定件数-with-covar" class="section level1" number="10">
<h1 number="10"><span class="header-section-number">10</span> Y = housing security benefit/住居確保給付金の決定件数 with covar</h1>
<div id="ols-no-trends-5" class="section level2" number="10.1">
<h2 number="10.1"><span class="header-section-number">10.1</span> OLS, no trends</h2>
<div class="sourceCode" id="cb36"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb36-1"><a href="#cb36-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb36-2"><a href="#cb36-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_OLS_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb36-3"><a href="#cb36-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb36-4"><a href="#cb36-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb36-5"><a href="#cb36-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb36-6"><a href="#cb36-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results , include.ci = FALSE, digits=3,)</span></span>
<span id="cb36-7"><a href="#cb36-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb36-8"><a href="#cb36-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb36-9"><a href="#cb36-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb36-10"><a href="#cb36-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb36-11"><a href="#cb36-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_OLS&quot;</span>)</span>
<span id="cb36-12"><a href="#cb36-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb36-13"><a href="#cb36-13" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb36-14"><a href="#cb36-14" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_OLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb36-15"><a href="#cb36-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_OLS&quot;</span>)</span>
<span id="cb36-16"><a href="#cb36-16" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_OLS_covar </span></code></pre></div>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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mIKAQCOBM844I5588snKpfXXXz+WXHLJyvl4HJx99tnxyCOPVB69zjrrxLLLLls5d0Bgsgj04s/nZLFv5z2nT58e+Xvrsssui/vvvz8eeOCBePDBB2O++eaLJZZYovK11lprxcYbbxyzzDJLO9XXlP3rX/8a119/fU3eFltsEVOnTq3JG+uTW2+9Nc4666z44x//WHnnhx9+OOadd95YaKGFiq8VV1yxeN/11lsvpkzxf0PGuk/UT4AAAQIECBAgQIBAxEwDpQSCQL1ABhbzH+/l9Itf/CI+8YlPlE/H5fsaa6xR8w/8H//4x7HTTjuNS1s8lMB4CvTiz+d4evTSs1966aU48cQT47DDDotbbrll2E17wxveEDvvvHNsv/328drXvnbY95ULfuMb34gvf/nL5dPi+2OPPVYEHmsyx+jktNNOi4MPPjhuvPHGYT8hA8FbbbVVfPWrX40FF1xw2PcpSIAAAQIECBAgQIAAgXYFTIFvV0x5AgQIECDQQCBHPq666qqxww47tBX8zKruuuuu2H///WPxxRePL3zhC/Hiiy82eELvZeUfyt72trfF5ptv3lbwM98kA7Q/+tGPYrnlliu+997baREBAgQIECBAgAABAhNFQAB0ovSk9yBAgACBcRP4+te/Hptsskn8/e9/b9mGWWedteX1GTNmxBFHHBHvec974qGHHmpZdrwv3nPPPfHOd76zmOI/mrY8+uijsdtuu8WBBx44mmrcS4AAAQIECBAgQIAAgaYCFt9qSuMCAQIECBBoLfDCCy8U09Z/9rOfDSo400wzxbvf/e4iMPqud70rXv/61xdT0p955pm47bbbiq/zzjsvTjrppMi86nTJJZfEm9/85vjd734Xq6++evWlnjh+6qmn4r3vfW/cfffdg9qz4YYbxpZbblm8b77zoosuGk888UTceeedxdfll18euaxK/SjXQw45JBZZZJEiGDqoUhkECBAgQIAAAQIECBAYhYAA6CjwJvKtOYUzN64op5VWWql86DsBAgQI/Ftgn332iUbBz//4j/+Ib33rW7HmmmsOsppzzjljlVVWKb4++MEPRo4ezTWNcx3P6kBoBgxzhOVf/vKXeN3rXjeonvHMOPbYYwdNec+A7VFHHRVvectbBjUtA5s51T1TrnN60EEHxVe+8pX4+c9/XlM2p/9vttlmRdC05oITAgQIECBAgAABAgQIjEJAAHQUeBP51n333Xciv553I0CAwKgFTj/99Pj+979fU0/u5P7tb3879t5775r8Vievec1rivU/M2j6gQ98IP75z39Wiuf08AwYnnPOOZW88T54/vnni2n61e1Ycsklix3vh7uBU5bPwHHWdcopp1SqKi8BkJtISQQIECBAgAABAgQIEOiUgDVAOyWpHgIECBCYNAL33XdfbLfddjXvm1PeTz311LaCn9UV5AjKP/3pT5WRkuVr5557bhx//PHl03H/fvXVV0e+f3U65phjRrR7/U9/+tNYfvnlq6uKHF2aSwtIBAgQIECAAAECBAgQ6JSAAGinJNVDgAABApNG4Mgjj4zHH3+85n0POOCAYvp2TWabJ2984xvjl7/8Zcw8c+3/POfU8HvvvbfN2sam+D/+8Y+aiqdMmRIbbLBBTd5wT+aaa65BgeQnn3wybrnlluFWoRwBAgQIECBAgAABAgSGFDAFfkgiBQiMvUCOdsqgwo033lhMf11wwQWLzUD+3//7f5EBgn5OuX7h7bffXgRvMlCSawHmpi6LL754375Wbt5y7bXXFhu6PPDAA7HQQgsV77PGGmvE7LPP3vK9cvOY8r3PPfdcMdpvxRVXjIUXXrjlfe1cfPrpp+OKK66I3KX72WefLdZTXHbZZYs1J9upp1XZrDv79l//+ldkwGqBBRYo+nbttdeOueeeu9WtbV9L40svvbRYlzjfY7XVVov8GRmvlIHPHKVYnVZeeeX46le/Wp014uMcCbr77rvHD37wg0odaZzrZX7xi1+s5I3XQf3GR/PPP3/kuqYjTbnj/X777Vdz+9/+9rdIU4kAAQIECBAgQIAAAQKdEBAA7YTiBKwjR/Nk0KqccmOLD3/4w+XTyvdVV101co26csp/oL/jHe8onw75fZlllokMApXTaaedFuuuu275dNTf77rrrshNRh566KFKXTlN9dBDD42Pf/zjRdtzk5Lq6Zb5D/HPfvazlfLDPXjf+95XBITK5XMDlE996lPl00Hfc627HEX2n//5nzF9+vRBOyLnDbPOOmvkjsoZDPnQhz40qI7xzsgNWsojteaYY44iiJttynf77ne/W+xuXT9arNzmdN9jjz1i6623juyToVI3P2vV7zXvvPNGBmMyZWAx+/WEE06I+++/f1CTMyiXG4hlkGqeeeapuZ6fxdzk5le/+lVkELQ+5ZqIRx99dGy88cb1l4Z9nmtH5rN/85vfFG2tv3GppZaKbbfdtiiTweh2UwZT83dBjlC84YYbGt6en9m3v/3t8fnPfz422mijhmUaZa6zzjqVEY7peP311xfFcj3Nr33ta0Ugt3zf1KlTY6uttoovfelLg6ZPl8uM5fef/OQnRdC3+hmf+9znBo3arL7e7nF+VtK5ejO6k08+uScCoPlHjOr04IMPFn030o2a8g8iO+20U0ybNq0IpGf/Z5BbIkCAAAECBAgQIECAQMcEBiQCDQRKgcmB0oes8vWLX/yiQamBgdLmHZUyWf7ss89uWK5ZZmm0XM39l1xySbOiA6V/JNeULe2a3LRsXigFnAZKQaWae0qBtoFSAKfmvtKmIzVl3vSmN9VcH87JzTffXFNHKUAzUAoKNL31jDPOGFh66aVr7qn2bnRcCgwPlAKlTescjwsrrbRS5R1KI8CKJpQCYwOlHa4r+Y3epTov3+uRRx4Zsvnd/KxVv9d8881XtK0U6B9Yb731hvVe+VktBSMr7/Tf//3fA6VRcsO6txSYHyiNMK3c2+ig0c/nWWedNexnlP7AMVBaw7FR1U3zzjzzzIHXv/71w3qHcv+WNvWpcWhaeenCG97whkrdpRG1RdHS7uiVvHKd1d9LAeNWVY7ZtVKAvKZd+Rkp7d7e8eeVgtU1z8l3LwXjGz7nkEMOGVT2sccea1h2tJkXXnjhoGd9+tOfHm217idAgAABAgQIECBAgMCYCdQuMlb615VEYCII5Fp5ORK1ehRrrqmX01ZzNGV1yhFx1SlHtjUb3VZdrvo4dzOuTptssknDKbo5dfqjH/1oMZrz1ltvrb5lyOMrr7wycpTcZZddNmTZ8SqQI1nT/a9//euwm5DvlaNnS7/lhn1PtwvmCLd8r5xWPpyUoxc333zzouh//dd/Ff1dPVK6VR05yq9+enWr8nntvPPOK9aeHO4z/vCHP0RO1y/9wWGoqovrOeozRyDntPd20vnnnx9vectb4qabbmrntqLsVVddFV/5ylea3pcjTXMUd7dTjhbPjYqq0/rrrx85ArrTadNNNx1U5a9//etBed3OyFHppWB4zWNPOumk2HfffaMUCK7Jd0KAAAECBAgQIECAAIFeEBAA7YVe0IaOCuTU5AxWVQcYZ5llljjxxBOL6cn1D2sUrCyNeK0v1vQ8A3f15bfZZpuG5Xfcccf47W9/W3Mtp39/4hOfKIJeuTZkBm//53/+pwj+lEaJ1pTN6bDvf//74+9//3tNfi+cZHA3LctTdvO9Nttss2K5gdLI4GJ37J133jlyDcf6lMGu3//+9/XZPXGe0/lzSYjylOxc6zDfIwOVGYzOJQyyX+un8ee1nMacyyCUg7v57jltO4NY55xzTrHuYaOpvgcddFDN0hJDQeTSE9nOTBkYzKUFTj/99GKafq7TmQHVnJZenXLtztIIzZqfk+rr5eOsO+t7+eWXy1nF9wzOZeA/XUojeAuLXPagNEq2ptwdd9xRLJ9RvcxETYEGJ/lZyqUEqp+Z096rg4z5WSuNCm5w99hm5c9ofZAv/zAxFinXxqxfWzP/YDDeKZdP2HPPPQc147DDDisCo7n8weWXX17Tf4MKyyBAgAABAgQIECBAgEA3BcZsbKmK+1qg0RTbRi/UzWnJw5kCXwp+Diy//PI10zNL/1gfKAWrGjW/kldav6/mnpzq+9JLL1Wutzq4+OKLa+597WtfO/D8888PuqW0bmBNudLP+UBp45iBnLrcLJU2Wxn4yEc+Mui+0qY5YzLltlk7muVXTxXP9yl/ZV+VRks2u21g++23r5Qt35NLEbRK3fysNXuvnAJfChw2bGYpaD1QGmU86L3y/TJ/r732athnpSDfQCmYOOi++qUaqh9a//NZNsyp43/84x+ri1aO8/NcGqE36DmlAG2lTP1BaeTmQGkTrpp78hmltXrri1bOc/r+PvvsU3NPtq+03m2lTKOD6inw5ffJ79kXpZGkxc9UWpX+sDHw5S9/uchrVM9Y5x1zzDGD3u3cc88ds8fW/95Lj0apm1Pg8/nZz6U/xgyyqO67/F1YGvE+kEsV5NIY2X8SAQIECBAgQIAAAQIExkPACNDSv9akiSGQO0Xn5jWl9TgrL5Sjxk499dTYcsstK3mNDuqnwedU3+FOD66f/p6jOfO51SlH59XvEF0KDsT//u//ttz0JjfSyQ1tSgGl6uqKEaDHH398TV6vnORu4KU1AltuZlUKIsW73/3umiaXAsENNxaqKTSOJ6V1TeOCCy4odnxv1IwcmZsbbjVKOUI0R0dWj2Asl8uRozmCuBS4L2cV35ttHlVTqOok3f/85z9HTsdulHIJiO985zvFqNTq67kpU7Mp6vvvv3/NZko58i9HruYyDs1SjrbOTcbqP58HH3xw5FIC7aRS8DVKa49GjoTMn6m0yo2cSmuDFnnt1NWpsuURztX1LbbYYtWnHT1eeOGFa+orrd1acz5eJ9nPOZI5R9s3S9nf+fsrlx0pra1cbHCUPyPf//7348Ybb2x2m3wCBAgQIECAAAECBAh0XEAAtOOkKhwPgfyHdgY/q6eGzzbbbJHrLzbavb6+jTkNOddErE65A/NQKXfFzn/gV6fSZiDVp8VxTpO+++67a/IzuLT44ovX5DU7yeDRoosuWnP58MMPr9m9vubiOJ5885vfHHJqcgbScjf16pTTnZsF4qrLjddxejcKYFa3p9HSB6UNcoqAXXW5+uMM9NUHT2+77bb6Yi3PM0g+nM9TTk8ujeKs1FUaGRr5+apPuYTE7373u5rsAw44INZcc82avGYnpVG+xfqf5eul0cxRGrlZPh3W95xSnQHPXko53b8+zTvvvPVZHTuvD4CWNjYaNAW/Yw9rs6K55567+GNHBjTrp+o3qirXqM2Adk6fX3nllSOX+Nhvv/3illtuaVRcHgECBAgQIECAAAECBDomIADaMUoVjZdAjsh617veFaXdkStNyEBVaeftYr3MSuYQB/WjQDOw+dxzz7W8KwNETz75ZKVMabpqNFrTMUc3VqcMVO2yyy7VWS2PM7hQvyFMBlR7YT3A6obne2XgazgprTJIXZ3aHSFYfe9YHudo3fe+971DPmLJJZccVCZHBC+44IKD8uszlltuuZqsdgKgGST77Gc/W3N/s5P82dh7771rLpemtA8KquXanxmULqcM8mUAtJ2UQf7qlH8IqK6z+lr98eyzz16stVqfP97njUaAZpB7rFJ9ADSfk+sc90rKUbm5Rmyu9Zojfxut8dusrfkZz3tKS3oUo0QzuCsRIECAAAECBAgQIEBgLAQEQMdCVZ1dE8jRWDmVOjd6KaccTZeb7uQGL+2krbbaqthApnzPE088UYxWKp83+l4//b3RCMAcYXfppZfW3J5TQuuDfzUFGpx85jOfifpAS329DW7ralYG8XKq9XBSjgKt38SmtHbqcG7tepn6jX2aNaDRVOjSep3NitfkT5s2reY8P3/DTRl0Hs4IvHJ9ucFQdcqg5PTp06uzIneKr065m3v90g7V1xsd17vlUhD1I6Eb3Zd5OTqwfmOpZmW7md9oM6cM1o5Vyt8f9and3x3194/Fef6RIEch5xIkubRHLreQo/KH09b8/P3whz+M/P1RWk91LJqnTgIECBAgQIAAAQIEJrnA8CIVkxzJ6/emQAY/c23A8u7c5Vbuuuuug3a8Ll9r9T3XUKyfhly/u3v1/TkKq3rn8gwO5Wi/+pTTunP6b3WqX++x+lqz4wwY1u8Kn7un91J64xvf2FZz6oN+vRoAzRFqw0mNgpDDncI91PT6Vs+vHz3aqmxey0D6/PPPX1OsehpyBt3qP1vrrrtuTfnhnOTPVGlzo5qiw13bdLiB45rKu3Dyute9btBTcmr3WKX6uvMPDIsssshYPW7U9WbQOkd3lzbcKqbH5+/p0iZWxejhDIjn77FmKUeA55IlpY3lmhWRT4AAAQIECBAgQIAAgREJNP+XyIiqcxOB7gnkuoWNAmalHYeLadjtBoWy5TkNvnpNz9zwJae8ZiCnPuXmMdWjszbeeOPIUVD1qdG07iWWWKK+2LDOc4r1tddeWymbGz/1Umo3ADrrrLPWNL+0E1zNea+cjGaNx/oAYLN3Gs1ox0ZT75s9p5yfyxVUB9eqA6D5mX/66afLRYvvxx13XJxyyik1ecM5qf/8ZwC0fgOsRvW0M5W60f1jlff6179+UNUZ5Gs0VX1QwRFkVPdR3p7PaRVEHMEjxvSW/KNA/qEqvzLlkiG5SVouUZK/a6uXEMnruexI/iGqtGt8jORznXVIBAgQIECAAAECBAgQqBcwArRexHnfCDQKfmbjc2Oi7bbbbthrDVa/cK7zWL3ZUE53zV3kG6XhTH/P+xqtGTiaAGh1WzLw0kup0RTwXmrfSNsyzzzzjPTWtqeNj+RBI/k81W+YVB0ArQ+6ZZty9/HcZKzdr/x5rE79PgK03i3fbbjT+qsdhntc3S95T6MA7HDr6oVyOep70003jRNOOKFYNzTXla3/Q8hTTz1VrA3aC+3VBgIECBAgQIAAAQIEJoaAAOjE6MdJ/RY5lbd+A6PLL788vve977XtMssss8TWW29dc1+jafD/93//V4xQKhfMTW422WST8mnN9/qNPXKq80hHFFbv3p0PaRYErmlAF0/SbyKm0UxP74ZHo5HHQz23fsRi9Ui8+s/sUHW1cz03yxlOql8fdjj3dKNMo2DzH//4xzF5dAaiM+Bcnfo9AFr9LtnHhxxySORI+9xRvjqddNJJDf94VF3GMQECBAgQIECAAAECBIYrYAr8cKWUGxOB6inkI3lABn5yfblVVlmlWAs0N98opy9/+cvFLvDtrrf56U9/utjAo1zPFVdcEblbcfVajvWjP3MDpWYbxNT/wz5HxOUIp/r88vNafa/f/Xk4u4u3qm8yXRvtZ62XrTJg2e66kPXLJ1SvL9sooPqhD30oRjMStuy31lprlQ/78nuub5lByHvuuafS/ssuu6xy3MmD/N1TvyxEu5u7dbI9WVd+1v75z39Gfn7yKz83a6yxxqgek5slHXjggbHffvtV6smp8PmHprwmESBAgAABAgQIECBAYLQCAqCjFXR/jcCLL75Yc97qJP+B22hH5Vb3VF/LqeoXXHBBrLTSSkX2T3/601h77bWj3IYMNObI0BydNdydybOiFVZYIXLDlyuvvLLyuFzvMwOqmXLH4jyvThk0bZbqN5vJcjkKLoO27ab60XP1I0Lbra+fy5f7eTjvMNrP2nCeMZ5lcp3NdgOgd955Z02TqwOguZZrTkuuHmG88847x0YbbVRzz2Q8ybVaP/7xj8dhhx1Wef38HVP/R5LKxVEc5DTx6pR9svnmm1dndf041+f8wx/+UHlubvzWaJR8pcAwD3baaaeaAGjeduuttwqADtNPMQIECBAgQIAAAQIEWguYAt/ax9U2BaoDJkPdOtppthmQLAc/81k5CmnvvfeueWwGMY844oiavOGc1E+pP/300yu3ZZ05Aqqc3vSmN7UcAdUoSFkffCrXNdT3+vsajdQbqo6Jcr2bn7VeN3vooYfabmL9Z6l61/VcyqA6IJqVX3fddW0/Y6LekEG/6pSji0fye6a6jvrj/GPHGWecUZP9vve9L8Z7aYAVV1yxpk1XXXVVzflIT3JZkPoR7b22xvFI3819BAgQIECAAAECBAiMv4AA6Pj3QV+3oH7zihkzZgz7fRptHFI/3bNVZY3Wm/zKV74S9bu/59TKm266qVVVg65tscUWUb3uY06tv+uuu4pyuXtxddpmm22qTwcd50jP3Am5Ok2fPr36dFjHOfL09ttvryk73B3Ga27q05Px/Kz1Oln9OpFDtTdHjD7xxBM1xaoDoHmh/ueoenmJmhsn4clqq60WK6+8cs2b5wj0v/71rzV5oznZZ599on7Zhk9+8pOjqbIj99YHQPN3WU7VH23K2QD1fxSrD8KP9hnuJ0CAAAECBAgQIEBg8goIgE7evu/Im88+++w19VSPjKy50ODk0ksvbZA7uqxsz/HHHx85TbWccvpzjuisDyaUrzf6nmsdfuQjH6m59Lvf/a44rw6ATpkyJepHg9XcVDrJMuuss05N9rHHHttWe/LmX/7yl1E/IuoDH/hATb0T+aTXPmu9ZP3rX/+6reYcc8wxNeVnm222qN/dvD4Aeskll8Tjjz9ec99QJ7lGZI5YzLre8573xA477FAzfXqo+3v5ev2Iz/w9k9PTn3766VE3O3+H/eY3v6mpJwOPvfDz/va3v72mXXny9a9/fVBeuxkXXXRRZfmS8r31n8Fyvu8ECBAgQIAAAQIECBBoV0AAtF0x5WsE6qd3/+Uvf6m53uwkR3qeeuqpzS6PKn/DDTeMXE+uOv3pT3+K7373u9VZQx7XT4PPAOgtt9xSM5o0p6TW76bdqOIPf/jDNdk5Yu/nP/95TV6rkxwddfDBB9cUyYBVfWC1psAEO+nFz1qvEOcalOURykO1KUfZHXnkkTXFdtxxx0Hr5OZaj9Upp9mX18Gtzm91fPjhh0fuZP6Pf/yjWK83R0m2u1Zpq/rH81puRpRu1Sl/rvNn/cknn6zObus4l9vYY489au7J0c/5B5AMVI93yk2gMphdnc4999xiE6PqvHaOc+bAAQccUHNLBj9Hsk5yTSVOCBAgQIAAAQIECBAg8G8BAVAfhVEJ1E+HzKBmBjyGSj/+8Y/jmmuuGarYiK9/5zvfKXZqrq4gp8e3M1X4He94R+RmMOWUG3+cdNJJ5dPi+1DT38uFt9tuu6jfDCkDmvXTkMvl67//6Ec/KjZZqc7P0WbVI12rr03E4179rPWCdf5BIUdX5jIJQ6VvfetbNVON83OZPxv16a1vfWtstdVWNdk5cvTaa6+tyWt2kjt45+e2Om288cax7LLLVmf19XEGeKt/R+TL/P73v4/8I0xuitROyr7LUaUf+9jHIkeTVqevfe1rLdcZri7bjeMvfelLgx5zyCGHxG677Vbz2RpUqEHGU089FZtuuumgz1UuAdDO5nUNqpZFgAABAgQIECBAgACBioAAaIXCwUgEMrBXnZ555pnYbLPNBv0DvrpM7p68++67V2d1/DinsNcHXzKokLu1D3cqfAYXqwOcuet49SjSBRZYYNhTUueaa6744he/WPOeuQnNmmuuGa3WVsxn7rvvvvH5z3++5t4MurQ7Gq+mgj486dXPWq9Qnn/++bHLLrtEjhZulPKzlCMLDz300JrL+TnKz3KjlD+rc889d+VS/uzk6L+hptznSOn3vve9g6aDf+5zn6vUNREOpk2bVuyAnt+r0/XXX19s0JY/u//617+qLw06zsBnjqDM3wVf+MIXBgWx8w8xGQwcSco/sIzmq9lI1mxT9e/Gctvyd24GuL/97W8Xo+XL+fXf83OUn5Hvf//7xWZb+f7VKTe323rrrauzHBMgQIAAAQIECBAgQGBUAlNGdbebJ71AjnTKaYrVm3/kWoH5D9j8R3tO0c4pr/fcc09cffXVkSPIbrzxxsItA4yrrrpq3HDDDWPimOvlbbnlljXBmmxDBnXqg5HNGpAB01zfrrw5U/XO4x//+MejfmOeZvVkfnpcfPHFRbCjXO7WW2+N9dZbr9i9/m1ve1ustdZakbsh33zzzcUI2VwLMKc3V6fc/OlXv/pVzDfffNXZE/64lz9r442fP0v5GT3uuOOKgPp+++1XBCAzeJk/e/kZylHX9evu5sZHrf4Ysdhii8VBBx1UBOHL75gjvPOzn0tC5M/XGmusUYyCzD8w5FT3n/zkJ0U76kcxZnCvfup0uc5+/p4jZa+88srIJQOqR33mtO78XZN/NMnfgxk0TM9cyiHXCc3AaP4uPPvssyOXF2iU8vdPBhVHOhJytJuk5frFzQLq2c+55vN5551X0/R8lxwhml/LL7985Mjt/N+AXAs2/+iT/1uRv9/qPx/lStLonHPOaet3a/le3wkQIECAAAECBAgQINBMQAC0mYz8YQvkKKf60Tq5W/muu+7aso6c1vnss8/WBEA7PaX7Bz/4QTEl9eGHH660JaeeZ7Aig7RDpSWXXDIyMJlB3fqUwYl2Ur5bBi7z2dVBzQwE5PTR/MqUu8+nS6OUI0kzKJpB08mYevmzNp798Y1vfCP233//ogm5tMRHP/rR4jhHJjYbxZdr1+ZGO0MF8ffcc8+47rrrav6QkJWfcsopxVceZ6A1g3rlPxRkXnXK9XQzGDhRU+4In39cSff63xU5wjMDpPk13JQbfh199NHxmc98Zri3dL1cBkfz85NLcWTAslHKQGd+DTe97nWvi7POOitGG7gd7vOUI0CAAAECBAgQIEBg8giYAj95+nrM3vRTn/pUMa02RyYOJ02dOrWYItmNKdyvfe1r43vf+15Ns3JkVgYvhzsVvn4zpKwsR73maM12U663eOGFFxabpzQL9jYLfmaQJYNbOfpusqZe/qyNZ5/kKM5cx7P+M9Us+Jkjry+//PJYbbXVhmx2/ryefPLJkX+waLYJT67j2Cj4mYG8vfbaqwja17dtyAf3WYFcRiDX/zzqqKOKXe9H0vz8HbrJJptEbtrWy8HP8rtl4DtHsGYgNDdlG2nKEa65PEOu0Tycz+RIn+M+AgQIECBAgAABAgQmr4AA6OTt+46+eU7vzrUs8x/vOTKoUcp/3Oeu6VdccUXkFN1upU9+8pPFc6ufl4HE+rUQq69XH+eorvo1/hqtf1d9T6vjHHF37LHHRq4TmOul5ojPZimDRjl1NkeO5uYz9RsBNbtvIuf38mdtPN1zZHOuA9oqgJRrx+YO8Dmic+mll26ruQceeGAxxX2nnXZqumZoucIMfGZAK5d4yCngw/3jSPn+fv2ev/syGH3TTTcVgcGNNtpoUFC60btlv2SAOaeIn3nmmS37sNH94533kY98pAhe5iZxOSJ0uMtz5GcwR3Xn78JcD7T+9+x4v5fnEyBAgAABAgQIECAwcQRmKo3aGZg4r+NNOiWQG1lMnz69Ut0vfvGL+MQnPlE5b3WQawRecMEFxT/mH3zwwVhwwQWLHdlzKnmu79ZvKdfAW3TRRaM8jT6DHHfffXexrl0n3iWnwOcO8+n9wAMPRI5QzdFUGRTJUZ/5XWosMNE+a43fsv3c3IH9qquuKtb/zLtzanGu1bn22mu3X1mDO3Jadwbkc/3e/BnPfsh1HpdaaqnKVy7XIEWxNMAdd9wRuSxIft11111FoC9/rpdYYoni5zunfI90nc9eNM4Nt/Lzce+99xafj1wXNH9/zjnnnMXnJH+f5vqgOZJeIkCAAAECBAgQIECAQDcEBEC7odyHz8i1L/Mf7eWUuz5vscUW5dNJ9T03e/nwhz9ceecPfehDxQYwlQwHBAgQIECAAAECBAgQIECAAAECPStgCnzPds34Nuzxxx+vaUDu4DtZ04knnljz6ttvv33NuRMCBAgQIECAAAECBAgQIECAAIHeFRAA7d2+GdeWPfHEEzXPz2nskzHlmny5yUc55VTiXMdUIkCAAAECBAgQIECAAAECBAgQ6A8BAdD+6KeutjJ34q3fIT13OJ5sKdfmzA1fcj27csoNTibLhi7ld/adAAECBAgQIECAAAECBAgQINDPAo236+7nN9L2UQscc8wxNXXMO++8xSZANZkT7CR3bX7ssceKjTmefPLJuPrqq+Ooo46Kyy67rPKm88wzT+yyyy6VcwcECBAgQIAAAQIECBAgQIAAAQK9LyAA2vt9NOYtPOyww+L0008vdm+++eabi917qx/6kY98JKZOnVqdNeGOL7/88hhqbc8DDzwwMhjci+lnP/tZsYt8t9qWVrlztURgvAR85sdL3nMJECBAgAABAgQIECDQfwICoP3XZx1v8QUXXBB/+tOfiq/6ymeaaab49Kc/XZ894c6HCuatt956sddee/Xse//yl7+M888/v2vte+973ysA2jVtD2ok4DPfSEUeAQIECBAgQIAAAQIECDQSsAZoI5VJlDcwMBBXXXVVwzeeffbZ49e//nVssMEGDa9PpMw3vvGNTV/nLW95S5x55pkx88x+XJoiuUCAAAECBAgQIECAAAECBAgQ6FEBI0B7tGO61awHH3wwVl999bjtttvi3nvvjRzxucIKK8Qaa6wRu+66a6y77rrdasq4PidHgG666aZx/fXXxx133BFTpkyJZZddNnbeeefYYYcdYo455hjX9g318I997GNFPw5VrlPXX/e613WqKvUQGJGAz/yI2NxEgAABAgQIECBAgACBSSkwU2kE4MCkfHMvPUhgxowZ8fLLL/d8sG9QwzuckZsgzTnnnHZ777Cr6ggQIECAAAECBAgQIECAAAEC4yEgADoe6p5JgAABAgQIECBAgAABAgQIECBAgEBXBCxq2BVmDyFAgAABAgQIECBAgAABAgQIECBAYDwEBEDHQ90zCRAgQIAAAQIECBAgQIAAAQIECBDoioAAaFeYPYQAAQIECBAgQIAAAQIECBAgQIAAgfEQEAAdD3XPJECAAAECBAgQIECAAAECBAgQIECgKwICoF1h9hACBAgQIECAAAECBAgQIECAAAECBMZDQAB0PNQ9kwABAgQIECBAgAABAgQIECBAgACBrggIgHaF2UMIECBAgAABAgQIECBAgAABAgQIEBgPAQHQ8VD3TAIECBAgQIAAAQIECBAgQIAAAQIEuiIgANoVZg8hQIAAAQIECBAgQIAAAQIECBAgQGA8BARAx0PdMwkQIECAAAECBAgQIECAAAECBAgQ6IqAAGhXmD2EAAECBAgQIECAAAECBAgQIECAAIHxEBAAHQ91zyRAgAABAgQIECBAgAABAgQIECBAoCsCAqBdYfYQAgQIECBAgAABAgQIECBAgAABAgTGQ0AAdDzUPZMAAQIECBAgQIAAAQIECBAgQIAAga4ICIB2hdlDCBAgQIAAAQIECBAgQIAAAQIECBAYDwEB0PFQ90wCBAgQIECAAAECBAgQIECAAAECBLoiIADaFWYPIUCAAAECBAgQIECAAAECBAgQIEBgPASmjMdDPbO3BPbcc8+44447Ko361a9+FXPOOWfl3AEBAgQIECBAgACBiSxw3HHHxcDAwKBXfP/73x+vf/3rB+XLIECAAAECBPpLQAC0v/prTFp78cUXxw033FCp+4UXXqgcOyBAgAABAgQIECAw0QWOOOKIhgHQVVZZRQB0one+9yNAgACBSSFgCvyk6GYvSYAAAQIECBAgQIAAAQIECBAgQGByCgiATs5+99YECBAgQIAAAQIECBAgQIAAAQIEJoWAAOik6GYvSYAAAQIECBAgQIAAAQIECBAgQGByCgiATs5+99YECBAgQIAAAQIECBAgQIAAAQIEJoWATZDGsJuffvrp2G233eKRRx6JDTbYIPbZZ58hn3bvvffGz3/+87j55psjjxdaaKHIxddXXXXVeOc73xlzzDHHkHUoQIAAAQIECBAgQIAAAQIECBAgQIDAKwICoGP4STjyyCPj1ltvLZ7w1FNPDfmkk08+OY499th46aWXKmXvvPPOyK+zzjorzjzzzDjssMNi2rRplesOCBAgQIAAAQIECBAgQIAAAQIECBBoLmAKfHObUV256KKL4rzzzht2HRng/NGPflQEP2edddbYaKONYu+9946tt946ll566aKev/3tb7H77rsXI0qHXbGCBAgQIECAAAECBAgQIECAAAECBCaxgBGgY9D5DzzwQBx++OHDrvnRRx+NI444oig/11xzxbe+9a1YY401Kvdvu+22ccghh8SFF14Yt912W5x00kmx1157Va47IECAAAECBAgQIECAAAECBAgQIECgsYARoI1dRpw7MDAQ3/zmN+PJJ58c9nqdp512Wjz//PPFM3fZZZea4GdmTpkyJQ466KBYYYUVijLnnntuPPPMM8Wx/xAgQIAAAQIECBAgQIAAAQIECBAg0FxAALS5zYiunHLKKXHttdfGTDPNFJ/97GcrdeR5s5TT3zPlBkcbb7xxw2IzzzxzbLHFFsW1Z599NjIIKhEgQIAAAQIECBAgQIAAAQIECBAg0FpAALS1T1tXp0+fHscdd1xxz1ZbbRWrrbbakPfff//9lTU9c9r71KlTm96z1lprVa6df/75lWMHBAgQIECAAAECBAgQIECAAAECBAg0FhAAbezSdm5OYf/a174WL7zwQiyzzDLxmc98Zlh15MZG5ZT3tUrzzz9/LLDAAkWRXAtUIkCAAAECBAgQIECAAAECBAgQIECgtYAAaGufYV/98Y9/HLfffnsxgvPAAw9sOZKzutJ77rmncrrYYotVjpsdLLzwwsWlnAb/0EMPNSsmnwABAgQIECBAgAABAgQIECBAgACBkoBd4DvwMbjmmmsiNzLKtOOOO8ZSSy017FqffvrpStkc4TlUmm+++SpFnnjiiVhwwQUr580ONt9887jjjjuaXY7nnnsull566bjzzjvjxRdfbFrOBQIECBAgQIAAAQIECBAgQIAAAQL9JiAAOsoeyyDkN77xjaKWXMOzvFHRcKutDoDONttsQ95WXSYDl8NJuSP9448/3rLoLLPM0vK6iwQIECBAgAABAgQIECBAgAABAgT6UcAU+FH22qGHHhoPP/xwzDXXXHHAAQcUu7+3U+UzzzxTKT7rrLNWjpsdVJeZMWNGs2LyCRAgQIAAAQIECBAgQIAAAQIECBAoCRgBOoqPwdlnnx2XXnppUcOee+4Z5fU526lyypRXu+Cll14a8tbqMtXB0FY3zjHHHDHnnHM2LZJB2JdffrnpdRcIECBAgAABAgQIECBAgAABAgQI9KvAq9G3fn2DcWr3fffdF9/73veKp7/97W+PjTbaaEQtyeBkOeVO8kOl6lGfOep0OOn0009vWWy11VaLG264oWUZFwkQIECAAAECBAgQIECAAAECBAj0o4AA6Ah6LUdhfv3rX4/ciX2eeeaJnXfeOXKdzfpUvb7nCy+8UCmT622WR2RWBzGry9fXVT6vnjJffW/5uu8ECBAgQIAAAQIECBAgQIAAAQIECLwqIAD6qsWwj3JDob/+9a9F+dwEacsttxzy3ssuuyzyK9Pqq68eRx11VHG82GKLFd/zPw888EDluNlBuUwGUTP4KhEgQIAAAQIECBAgQIAAAQIECBAg0FxAALS5TVeuLLHEEpXn3HvvvZXjRgcvvvhi/POf/ywuLbXUUlG9I3yj8vIIECBAgAABAgQIEBha4F3velfDNfEXWGCBoW9WggABAgQIEOh5AQHQEXTR7LPPHltvvfWQd+ZI0TPOOKMol4HODTfcsDiuHvW5zDLLxNSpUyOnyF9//fUt67zxxhuLcllopZVWalnWRQIECBAgQIAAAQIEhifwwx/+cHgFlSJAgAABAgT6UkAAdATdlut37rDDDkPeedddd1UCoEsvvXTDe7KuddZZJ/74xz/G7bffHrfccksst9xyDes+77zzKvnrrbde5dgBAQIECBAgQIAAAQIECBAgQIAAAQKNBWZunC23mwKbbLJJ5XGHHXZYZbOkSmbp4Morr4yzzjqryFpyySVj3XXXrb7smAABAgQIECBAgAABAgQIECBAgACBBgICoA1Qup21/vrrF6NA87k33XRT7LHHHnHttdfGjBkz4sEHH4zTTjstvvSlL0XuPj/TTDMVu87nd4kAAQIECBAgQIAAAQIECBAgQIAAgdYCpsC39una1YMOOigOPvjguOaaa2L69Omx5557Ru70nkHP6rT77ruH6e/VIo4JECBAgAABAgQIECBAgAABAgQINBcwArS5TVevzDPPPHH44YfHpz71qZg2bVrx7OrgZ+76fuihh8bmm2/e1XZ5GAECBAgQIECAAAECBAgQIECAAIF+FphpoJT6+QUmatvvu++++Mc//hGzzTZbLL744rHooovGzDOPTbx6tdVWixtuuKFC+dhjj8W8885bOXdAgAABAgQIECBAgAABAgQItC/wi1/8opjl2ezOZZddNj7xiU80uyyfAIEOCZgC3yHITlez2GKLRX5JBAgQIECAAAECBAgQIECAQH8KZAD0vPPOa9r4jTbaSAC0qY4LBDonMDZDCjvXPjURIECAAAECBAgQIECAAAECBAgQIEBgxAJGgI6Yzo0ECBAgQIAAAQIECBAgQIAAgeYC+++/f2y77bZFge233z6eeuqpYt+P448/vsjL5e4kAgTGXsAaoGNv3PNPsAZoz3eRBhIgQIAAAQIECBAgQIBAnwssuOCC8fDDD0d+f/DBB/v8bTSfQH8JmALfX/2ltQQIECBAgAABAgQIECBAgAABAgQItCEgANoGlqIECBAgQIAAAQIECBAgQIAAAQIECPSXgABof/WX1hIgQIAAAQIECBAgQIAAAQIECBAg0IaAAGgbWIoSIECAAAECBAgQIECAAAECBAgQINBfAgKg/dVfWkuAAAECBAgQIECAAAECBAgQIECAQBsCAqBtYClKgAABAgQIECBAgAABAgQIECBAgEB/CQiA9ld/aS0BAgQIECBAgAABAgQIECBAgAABAm0ICIC2gaUoAQIECBAgQIAAAQIECBAgQIAAAQL9JSAA2l/9pbUECBAgQIAAAQIECBAgQIAAAQIECLQhIADaBpaiBAgQIECAAAECBAgQIECAAAECBAj0l4AAaH/1l9YSIECAAAECBAgQIECAAAECBAgQINCGgABoG1iKEiBAgAABAgQIECBAgAABAgQIECDQXwICoP3VX1pLgAABAgQIECBAgAABAgQIECBAgEAbAlPaKKsoAQIECBAgQIAAAQIEJpzAFVdcEQMDA4Pea+WVV4755ptvUL4MAgQIECBAoL8EBED7q7+0lgABAgQIECBAgACBDgtst912DQOgJ5xwQqy//vodfprqCBAgQIAAgW4LmALfbXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawICoF2j9iACBAgQIECAAAECBAgQIECAAAECBLotIADabXHPI0CAAAECBAgQIECAAAECBAgQIECgawJTuvYkDyJAgAABAgQIECBAgEAPCqy55poxMDAwqGXTpk0blCeDAAECBAgQ6D8BAdD+6zMtJkCAAAECBAgQIECggwK/+tWvOlibqggQIECAAIFeEzAFvtd6RHsIECBAgAABAgQIECBAgAABAgQIEOiYgABoxyhVRIAAAQIECBAgQIAAAQIECBAgQIBArwkIgPZaj2gPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RiliggQIECAAAECBAgQIECAAAECBAgQ6DUBAdBe6xHtIUCAAAECBAgQIECAAAECBAgQIECgYwICoB2jVBEBAgQIECBAgAABAgQIECBAgAABAr0mIADaaz2iPQQIECBAgAABAgQIECBAgAABAgQIdExAALRjlCoiQIAAAQIECBAgQIAAAQIECBAgQKDXBARAe61HtIcAAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jFJFBAgQIECAAAECBAgQIECAAAECBAj0moAAaK/1iPYQIECAAAECBAgQIECAAAECBAgQINAxAQHQjlGqiAABAgQIECBAgAABAgQIECBAgACBXhMQAO21HtEeAgQIECBAgAABAgQIECBAgAABAgQ6JiAA2jFKFREgQIAAAQIECBAgQIAAAQIECBAg0GsCAqC91iPaQ4AAAQIECBAgQIAAAQIECBAgQIBAxwQEQDtGqSICBAgQIECAAAECBAgQIECAAAECBHpNQAC013pEewgQIECAAAECBAgQIECAAAECBAgQ6JiAAGjHKFVEgAABAgQIECBAgAABAgQIECBAgECvCQiA9lqPaA8BAgQIECBAgAABAgQIECBAgAABAh0TEADtGKWKCBAgQIAAAQIECBAgQIAAAQIECBDoNQEB0F7rEe0hQIAAAQIECBAgQIAAAQIECBAgQKBjAgKgHaNUEQECBAgQIECAAAECBAgQIECAAAECvSYgANprPaI9BAgQIECAAAECBAgQIECAAAECBAh0TGBKx2pSEQECBAgQIECAAAECBPpQ4O9//3sMDAwMavkb3vCGmHvuuQflyyBAgAABAgT6S0AAtL/6S2sJECBAgAABAgQIEOiwwIc//OGGAdATTjgh1l9//Q4/TXUECBAgQIBAtwVMge+2uOcRIECAAAECBAgQIECAAAECBAgQINA1AQHQrlF7EAECBAgQIECAAAECBAgQIECAAAEC3RYQAO22uOcRIECAAAECBAgQIECAAAECBAgQINA1AQHQrlF7EAECBAgQIECAAAECBAgQIECAAAEC3RYQAO22uOcRIECAAAECBAgQIECAAAECBAgQINA1AbvAd43agwgQIECAAAECBAgQIECAAIFqgYsuuigGBgaqs2qOl1tuuVh88cVr8pwQIECgXQEB0HbFlCdAgAABAgQIECBAgAABAgQ6IvDud7+7ZQD0u9/9buy1114deZZKCBCYvAKmwE/evvfmBAgQIECAAAECBAgQIECAAAECBCa8gBGgE76LvSABAgQIECBAgAABAgQIEOhNgd12260YAfrggw/GqaeeWjRy2WWXjf/4j/8ojldfffXebLhWESDQVwICoH3VXRpLgAABAgQIECBAgAABAgQmjsBRRx1VvMx1111XCYC++c1vjqOPPnrivKQ3IUBg3AVMgR/3LtAAAgQIECBAgAABAgQIECBAgAABAgTGSkAAdKxk1UuAAAECBAgQIECAAAECBAgQIECAwLgLCICOexdoAAECBAgQIECAAAECBAgQIECAAAECYyUgADpWsuolQIAAAQIECBAgQIAAAQIECBAgQGDcBQRAx70LNIAAAQIECBAgQIAAAQIECBAgQIAAgbESEAAdK1n1EiBAgAABAgQIECBAgAABAgQIECAw7gICoOPeBRpAgAABAgQIECBAgAABAgQIECBAgMBYCQiAjpWsegkQIECAAAECBAgQIECAAAECBAgQGHcBAdBx7wINIECAAAECBAgQIECAAAECBAgQIEBgrAQEQMdKVr0ECBAgQIAAAQIECBAgQIAAAQIECIy7gADouHeBBhAgQIAAAQIECBAgQIAAAQIECBAgMFYCAqBjJateAgQIECBAgAABAgQIECBAgAABAgTGXUAAdNy7QAMIECBAgAABAgQIECBAgAABAgQIEBgrgSljVbF6CRAgQIAAAQIECBAg0A8CSy65ZAwMDAxq6hxzzDEoTwYBAgQIECDQfwICoP3XZ1pMgAABAgQIECBAgEAHBc4555wO1qYqAgQIECBAoNcETIHvtR7RHgIECBAgQIAAAQIECBAgQIAAAQIEOiYgANoxShURIECAAAECBAgQIECAAAECBAgQINBrAgKgvdYj2kOAAAECBAgQIECAAAECBAgQIECAQMcEBEA7RqkiAgQIECBAgAABAgQIECBAgAABAgR6TUAAtNd6RHsIECBAgAABAgQIECBAgAABAgQIEOiYgABoxyhVRIAAAQIECBAgQIAAAQIECBAgQIBArwkIgPZaj2gPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RiliggQIECAAAECBAgQIECAAAECBAgQ6DUBAdBe6xHtIUCAAAECBAgQIECAAAECBAgQIECgYwICoB2jVBEBAgQIECBAgAABAgQIECBAgAABAr0mIADaaz2iPQQIECBAgAABAgQIECBAgAABAgQIdExAALRjlCoiQIAAAQIECBAgQIAAAQIECBAgQKDXBARAe61HtIcAAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jFJFBAgQIECAAAECBAgQIECAAAECBAix/mg5AABAAElEQVT0moAAaK/1iPYQIECAAAECBAgQIECAAAECBAgQINAxAQHQjlGqiAABAgQIECBAgAABAgQIECBAgACBXhMQAO21HtEeAgQIECBAgAABAgQIECBAgAABAgQ6JiAA2jFKFREgQIAAAQIECBAgQIAAAQIECBAg0GsCAqC91iPaQ4AAAQIECBAgQIAAAQIECBAgQIBAxwQEQDtGqSICBAgQIECAAAECBAgQIECAAAECBHpNQAC013pEewgQIECAAAECBAgQIECAAAECBAgQ6JiAAGjHKFVEgAABAgQIECBAgAABAgQIECBAgECvCQiA9lqPaA8BAgQIECBAgAABAgQIECBAgAABAh0TmNKxmlREgAABAgQIECBAgACBPhS4//77G7b6Na95Tcw222wNr8kkQIAAAQIE+kdAALR/+kpLCRAgQIAAAQIECBAYA4F3vOMdMTAwMKjmE044IdZff/1B+TIIECBAgACB/hIwBb6/+ktrCRAgQIAAAQIECBAgQIAAAQIECBBoQ0AAtA0sRQkQIECAAAECBAgQIECAAAECBAgQ6C8BAdD+6i+tJUCAAAECBAgQIECAAAECBAgQIECgDQEB0DawFCVAgAABAgQIECBAgAABAgQIECBAoL8EBED7q7+0lgABAgQIECBAgAABAgQIECBAgACBNgQEQNvAUpQAAQIECBAgQIAAAQIECBAgQIAAgf4SEADtr/7SWgIECBAgQIAAAQIECBAgQIAAAQIE2hAQAG0DS1ECBAgQIECAAAECBAgQIECAAAECBPpLQAC0v/pLawkQIECAAAECBAgQIECAAAECBAgQaENAALQNLEUJECBAgAABAgQIECBAgAABAgQIEOgvAQHQ/uovrSVAgAABAgQIECBAgAABAgQIECBAoA0BAdA2sBQlQIAAAQIECBAgQIAAAQIECBAgQKC/BARA+6u/tJYAAQIECBAgQIAAAQIECBAgQIAAgTYEBEDbwFKUAAECBAgQIECAAAECBAgQIECAAIH+EhAA7a/+0loCBAgQIECAAAECBAgQIECAAAECBNoQmNJGWUUJECBAgAABAgQIECBAgAABAgQIFAK//e1v49hjj22qMfPMM8e5557b9LoLBLolIADaLWnPIUCAAAECBAgQIECAAAECBAhMIIE77rgjfv/73zd9owyASgR6QcAnsRd6QRsIECBAgAABAgQIECBAgAABAgQIEBgTAQHQMWFVKQECBAgQIECAAAECBAgQIEBgYgvsuOOOcddddxVfH/jAByove/bZZxd5d955ZyXPAYHxFDAFfjz1PZsAAQIECBAgQIAAAQIECBAg0KcC06ZNi/zKNNdcc1XeYpFFFonFF1+8cu6AwHgLGAE63j3g+QQIECBAgAABAgQIECBAgAABAgQIjJmAAOiY0aqYAAECBAgQIECAAAECBAgQIECAAIHxFhAAHe8e8HwCBAgQIECAAAECBAgQIECAAAECBMZMwBqgY0arYgIECBAgQIAAAQIE+kFg/vnnj5dffnlQU6dOnTooTwYBAgQIECDQfwICoP3XZ1pMgAABAgQIECBAgEAHBa688soO1qYqAgQIECBAoNcETIHvtR7RHgIECBAgQIAAAQIECBAgQIAAAQIEOiYgANoxShURIECAAAECBAgQIECAAAECBAgQINBrAgKgvdYj2kOAAAECBAgQIECAAAECBAgQIECAQMcEBEA7RqkiAgQIECBAgAABAgQIECBAgAABAgR6TUAAtNd6RHsIECBAgAABAgQIECBAgAABAgQIEOiYgABoxyhVRIAAAQIECBAgQIAAAQIECBAgQIBArwkIgPZaj2gPAQIECBAgQIAAAQIECBAgQIAAAQIdExAA7RiliggQIECAAAECBAgQIECAAAECBAgQ6DUBAdBe6xHtIUCAAAECBAgQIECAAAECBAgQIECgYwICoB2jVBEBAgQIECBAgAABAgQIECBAgAABAr0mIADaaz2iPQQIECBAgAABAgQIECBAgAABAgQIdExAALRjlCoiQIAAAQIECBAgQIAAAQIECBAgQKDXBARAe61HtIcAAQIECBAgQIAAAQIECBAgQIAAgY4JCIB2jFJFBAgQIECAAAECBAgQIECAAAECBAj0moAAaK/1iPYQIECAAAECBAgQIECAAAECBAgQINAxAQHQjlGqiAABAgQIECBAgAABAgQIECBAgACBXhMQAO21HtEeAgQIECBAgAABAgQIECBAgAABAgQ6JiAA2jFKFREgQIAAAQIECBAgQIAAAQIECBAg0GsCU3qtQf3anscffzxOOeWUuPnmm+Oee+6Jhx56KBZbbLFYfPHFY7XVVovNNtsspk6dOuTr3XvvvfHzn/+8qCePF1pooVhllVVi1VVXjXe+850xxxxzDFmHAgQIECBAgAABAgQIECBAgAABAgQIvCIgANqBT8Jpp50WJ5xwQjz11FM1td1xxx2RX3/4wx/ijDPOiH322SfWWGONmjLVJyeffHIce+yx8dJLL1Wy77zzzsivs846K84888w47LDDYtq0aZXrDggQIECAAAECBAgQIECAAAECBAgQaC4gANrcZlhXzj///PjBD35QKbvOOusUIz4XXHDBYiToZZddVgRB77777th7773jJz/5SSy55JKV8uWDDHD+6Ec/Kk5nnXXWYrRnjvx84IEH4vLLL49bb701/va3v8Xuu+8eRx55ZLzmNa8p3+o7AQIECBAgQIAAAQIECBAgQIAAAQJNBARAm8AMJ/u+++6Lww8/vCg6yyyzxNe+9rXYcMMNa27ddttt4+ijj47f/va38fzzzxdljj/++Jgy5VX6Rx99NI444ojivrnmmiu+9a1v1YwUzToOOeSQuPDCC+O2226Lk046Kfbaa6+a5zghQIAAAQIECBAgQIAAAQIECBAgQGCwgE2QBpsMOycDks8++2xRfqutthoU/MwLGej87Gc/GyussEJRbvr06cX6nsXJv/+TU+gzOJppl112qQl+Zl7WcdBBB1XqOPfcc+OZZ57JSxIBAgQIECBAgAABAgQIECBAgAABAi0EBEBb4Ax16frrr68U+eAHP1g5rj/I0aFvf/vbK9m33HJL5TgPcvp7ptzgaOONNy6O6/8z88wzxxZbbFFkZ9A1g6ASAQIECBAgQIAAAQKjF3juueeKgQ35/7Orv15++eXRV64GAgQIECBAYNwFXp2HPe5N6b8G5DqcK620Ujz55JOx8MILt3yBBRZYoHL9wQcfrBzff//98cgjjxTnuUFSq53i11prrcp9ufZo7iwvESBAgAABAgQIECAwOoHVV189BgYGBlWSG52uv/76g/JlECBAgAABAv0lIAA6iv464IADhn13Tn0vp6WXXrp8WGxsVD5ZZpllyocNv88///yRgdSHH364WAu0YSGZBAgQIECAAAECBAgQIECAAAECBAhUBEyBr1CM3UGu15kjNstpxRVXLB8WO8WXTxZbbLHyYdPv5ZGmOTXnoYcealrOBQIECBAgQIAAAQIECBAgQIAAAQIESvvrQBh7gdy1PXd6z7T22mtHdaDz6aefrjQgR3gOleabb75KkSeeeCIWXHDBynmzg9122y3uvvvuZpdjxowZ8cY3vrEIxr700ktNy7lAgAABAgQIECBAgAABAgQIECBAoN8EBEDHuMfOPvvsOPnkk4unzDnnnLHvvvvWPLE6ADrbbLPVXGt0Ul0mF2sfTrrtttuGnDKf9c4000zDqU4ZAgQIECBAgAABAgQIECBAgAABAn0jYAr8GHbV5ZdfHoceemjlCXvsscegzZJyenw5zTrrrOXDpt+ry+TITYkAAQIECBAgQIAAAQIECBAgQIAAgeYCRoA2txnVlRz5mcHP8pTybbbZJt7//vcPqnPKlFe7oFx2UKGqjOoy1cHQqiIOCRAgQIAAAQIECBAgQIAAAQIECBD4t8Cr0TckHRM44YQT4sQTT6zUt+2228Z2221XOa8+mGOOOSqnzz//fOW42UH1qM+55pqrWbGa/NNOOy1efvnlmrzqk7e+9a3FbvStylSXd0yAAAECBAgQIECAAAECBAgQIECgXwQEQDvYUy+++GIcdthhkaM/M80888yx1157xYc+9KGmT6kOYlavB9rshuop89X3Niuf+XPPPXery8Xan4KfLYlcJECAAAECBAgQIECAAAECBAgQ6FMBAdAOdVwGL7/85S/Hn//856LG2WefPQ4++OBYf/31Wz6hekf4Bx54oGXZvFguM8sss8Q888wzZHkFCBAgQIAAAQIECBAgQIAAAQIECExmAQHQDvT+Y489FnvuuWfceuutRW0LLLBAfOc734nll19+yNqXWGKJSpl77723ctzoIEeY/vOf/ywuLbXUUlG9I3yj8vIIECBAgAABAgQIECBAgAABAgQITHYBu8CP8hPw5JNPFtPcy8HPJZdcMo499thhBT/z0csss0xMnTq1aMX111/fsjU33nhjvPDCC0WZlVZaqWVZFwkQIECAAAECBAgQIECAAAECBAgQKC1TCWF0At/97nfjH//4R1HJCiusEEcffXQsvPDCw650zjnnjHXWWacof/vtt8ctt9zS9N7zzjuvcm299darHDsgQIAAAQIECBAgQIAAAQIECBAgQKCxgABoY5dh5eZ6nxdeeGFRNqe9f/vb3x7RupybbLJJ5Xm5iVKOKq1PV155ZZx11llFdo4yXXfddeuLOCdAgAABAgQIECBAgAABAgQIECBAoE7AGqB1IMM9zanoRxxxRKV4juTMdT+Hk9Zee+346Ec/WimaGyXlKNCrrroqbrrppthjjz1i9913j1VWWSWeeOKJuOSSS+KHP/xhvPTSS8WO7TvvvHPxvVKBAwIECBAgQIAAAQIECBAgQIAAAQIEGgoIgDZkGTrzuuuui7vvvrtSMI+rzysXGhy85jWvGZR70EEHFbvGX3PNNTF9+vRiU6Xc6T2DntUpA6Omv1eLOCZAgAABAgQIECBAgAABAgQIECDQXMAU+OY2La/kep2dTPPMM08cfvjh8alPfSqmTZtWVF0d/Mxd3w899NDYfPPNO/lYdREgQIAAAQIECBAgQIAAAQIECBCY0AJGgI6we7fccsvIr06mmWeeOXbcccfi67777is2V5ptttli8cUXj0UXXTTyukSAAAECBAgQIECAAAECBAgQIECAwPAFBECHb9XVkosttljkl0SAAAECBAgQIECAAAECBAgQIECAwMgFDCkcuZ07CRAgQIAAAQIECBAgQIAAAQIECBDocQEB0B7vIM0jQIAAAQIECBAgQIAAAQIECBAgQGDkAgKgI7dzJwECBAgQIECAAAECBAgQIECAAAECPS4gANrjHaR5BAgQIECAAAECBAgQIECAAAECBAiMXEAAdOR27iRAgAABAgQIECBAgAABAgQIECBAoMcFBEB7vIM0jwABAgQIECBAgAABAgQIECBAgACBkQtMGfmt7iRAgAABAgQIECBAgED/C9x00039/xLegAABAgQIEGgqYARoUxoXCBAgQIAAAQIECBAgQIAAAQIECBDodwEB0H7vQe0nQIAAAQIECBAgQIAAAQIECBAgQKCpgABoUxoXCBAgQIAAAQIECBAgQIAAAQKjE5gxI+KccyKeffaVep555pXzzJcIEOiOgABod5w9hQABAgQIECBAgAABAgQIEJhEAs8/H/Gd70QsskjExhtHZOAzU37P80UXjTj00IgXXngl338JEBg7AQHQsbNVMwECBAgQIECAAAECBAgQIDAJBR5+OOLd74744hcjHnusMcCjj0bst1/Eu94VkeUlAgTGTkAAdOxs1UyAAAECBAgQIECAAAECBAhMMoEc+fnhD0f84Q/De/Est9lmRoIOT0spAiMTEAAdmZu7CBAgQIAAAQIECBAgQIAAAQKDBL73veEHP8s3X3ZZRN4nESAwNgICoGPjqlYCBAgQIECAAAECBAgQIEBgkgnk6M9vf3tkL5335f0SAQKdFxAA7bypGgkQIECAAAECBAgQIECAAIFJKHDRRRG5tudI0iOPRFxyyUjudA8BAkMJCIAOJeQ6AQIECBAgQIAAAQIECBAgQGAYAn/5yzAKtShyww0tLrpEgMCIBQRAR0znRgIECBAgQIAAAQIECBAgQIDAqwIPPfTq8UiO7AY/EjX3EBhaQAB0aCMlCBAgQIAAAQIECBAgQIAAAQJDCiy44JBFWhZYYIGWl10kQGCEAgKgI4RzGwECBAgQIECAAAECBAgQIECgWmC11arP2j9+6aX273EHAQJDCwiADm2kBAECBAgQIECAAAECBAgQIEBgSIG3vz3iNa8ZsljTAl/6UsS3vhUxMNC0iAsECIxAQAB0BGhuIUCAAAECBAgQIECAAAECBAjUC8w6a0QGMUeaMvC5//4Rm24a8fjjI63FfQQI1AsIgNaLOCdAgAABAgQIECBAgAABAgQIjFDgc5+LeNvbRnjzv2/77/+OWGutiP/7v9HV424CBF4READ1SSBAgAABAgQIECBAgAABAgQIdEhg6tSI7bcffWW33hqx7roRP/vZ6OtSA4HJLiAAOtk/Ad6fAAECBAgQIECAAAECBAgQ6KjAL385dHW54/tb39q63LPPRmyzTcSuu0Y8/3zrsq4SINBcQAC0uY0rBAgQIECAAAECBAgQIECAAIG2BO6+O+L885vfMtdcEb//fcT990f84Q8Rv/51ROa1SsccE7HBBhFZt0SAQPsCAqDtm7mDAAECBAgQIECAAAECBAgQINBQ4NhjI15+ueGlInOOOSLe/e6InCqfaYstIq6+OmL55V85b/bfLLPmmq8ET5uVkU+AQGMBAdDGLnIJECBAgAABAgQIECBAgAABAm0JvPRSxEknNb5lllka52fuSitFXHNNxEc/2rxMXnnooYiNNor45jcjcsd4iQCB4QkIgA7PSSkCBAgQIECAAAECBAgQIECAQEuBM86IuPfexkVmm61xfjl32rSI006LOOywiClTyrmDv+fo0gMOiPjgByMee2zwdTkECAwWEAAdbCKHAAECBAgQIECAAAECBAgQINC2QE5/b5Rmnz1iqABo+b6994648MKIRRYp5zT+/j//E7HWWhH/93+Nr8slQOBVAQHQVy0cESBAgAABAgQIECBAgAABAgRGJHDnnREXXND41o9/PGLmNiIwG24Ycd11Q+8Sf9ttEeuuG/Gf/9n4uXIJEHhFoI0fP2QECBAgQIAAAQIECBCYeAJrrLFGvOlNbxr0deWVV068l/VGBAiMmUCrzY923LH9xy66aMTFF0fsuWfre599NuLTn47YeeeIGTNal3WVwGQVEACdrD3vvQkQIECAAAECBAgQKASeLUUPZpSiBvVfL7faxpkdAQIEqgRefLH5KMyVV454y1uqCrdxmGuBHnlkxCmnRMw9d+sbMwC7wQYRd93VupyrBCajgADoZOx170yAAAECBAgQIECAAAECBAh0TOB3v4u4777G1e26a+P8dnI33zzi6qsjVlih9V25k/yaa0acf37rcq4SmGwCAqCTrce9LwECBAgQIECAAAECBAgQINBRgeOOa1zdHHNEbLVV42vt5q64YkQGOD/2sdZ3PvxwxPveF3HIIREDA63LukpgsggIgE6WnvaeBAgQIECAAAECBAgQIECAQMcF7rjjlV3bG1Wcmx/NN1+jKyPLy2nwp54a8d3vRuT0+GYpV/A48MCID3wg4tFHm5WST2DyCAiATp6+9qYECBAgQIAAAQIECBAgQIBAhwV+/OOIZksG77RThx/27+r22ivioosiFlmkdf1nnRXx5jdHXH9963KuEpjoAgKgE72HvR8BAgQIECBAgAABAgQIECAwJgKtNj9addWItdcek8cWleaGR//7v69sfNTqKbfdFrHuuhEnntiqlGsEJraAAOjE7l9vR4AAAQIECBAgQIAAAQIECIyRwH/9V8Q//9m48k5sftS45ldzcwRojgT9/OdfzWt09NxzEdttF5EjUmfMaFRCHoGJLSAAOrH719sRIECAAAECBAgQIECAAAECYyRw7LGNK55zzohc/7MbKdcCPeKIV9YGzTVCW6XcrOmtb424885WpVwjMPEEBEAnXp96IwIECBAgQIAAAQIECBAgQGCMBXJqeY6+bJRy5/d55210Zezycnf43CU+d4tvlf7854i11oo477xWpVwjMLEEBEAnVn96GwIECBAgQIAAAQIECBAgQKALArn50cBA4weN1eZHjZ/2au4KK0RcfXXE5pu/mtfo6OGHIzbeOOJrX2v+Do3uk0egXwUEQPu157SbAAECBAgQIECAAAECBAgQGBeBF16I+NnPGj96tdVe2Xm98dWxz81p8KecEnHkkRE5Pb5Zyp3rv/KViE02iXj00Wal5BOYGAICoBOjH70FAQIECBAgQIAAAQIECBAg0CWB00+P+Ne/Gj9sl10a53c7d889Iy6+OGLRRVs/+eyzX5kSnzvKSwQmqoAA6ETtWe9FgAABAgQIECBAgAABAgQIjIlAs82P5pqre5sfDefFcsOj666L2HDD1qVvvz1ivfUiTjihdTlXCfSrgABov/acdhMgQIAAAQIECBAgQIAAAQJdF7j11ohLLmn82E98ImKeeRpfG6/cRRaJuPDCiC98oXULnnsu4jOfidhhh4gZM1qXdZVAvwkIgPZbj2kvAQIECBAgQIAAAQIECBAgMG4CrTY/2n77cWtWywfnWqCHHx7xm99ETJvWsmj85CcR668fcccdrcu5SqCfBARA+6m3tJUAAQIECBAgQIAAAQIECBAYN4FWmx+ttVbE//t/49a0YT34Ix+JuOaaiJVWal382mtfWRf03HNbl3OVQL8ICID2S09pJwECBAgQIECAAAECBAgQIDCuAjmC8oEHGjdhp50a5/da7vLLR1x9dcSWW7Zu2SOPRLz//RFf/WpE7hgvEehnAQHQfu49bSdAgAABAgQIECBAgAABAgS6JtBs86O55x46oNi1Rg7jQblZ08knR3zvexFTpza/IQOfBx8csckmERkQlQj0q4AAaL/2nHYTIECAAAECBAgQIECAAAECXRP4xz8iLrus8eM++cmh19ZsfOf45n7ucxEXXxyx2GKt23HOOa9Mic8d5SUC/SggANqPvabNBAgQIECAAAECBAgQIECAQFcF+nHzo+EA5YZHGdh829tal85NkbLsT3/aupyrBHpRoLQPmESAAAECBAgQIECAAAECBAgQINBM4PnnI37+88ZXc+Oj3ACpn9PCC0dceGHEF7/4ym7xzd7luecicqf7K66I+OEPI2afvVlJ+f0icMEFF8SMGTOaNnfppZeOFVZYoen1frkgANovPaWdBAgQIECAAAECBAgQIECAwLgInHZaxIMPNn50v2x+1Lj1r+bOMkvEYYdFrLtuxLbbRjzxxKvX6o9OOCHi+usjclOogYGIU0+NuPTSV0t95SsR22wT8cEPtl5j9NU7evdoIF+wRZpppplaXO39S58srd/wr3/9q2lD99tvv/j2t7/d9Hq/XDAFvl96SjsJECBAgAABAgQIECBAgACBcRE47rjGj502LWKLLRpf69fczTaLuOaaiJVXbv0GOW1+xRUjll024ktfirj//lfLn3lmxEc/GrHSShHnn/9qfr8d/eUvf4mZZ5655ddFF13Ub681KdtrBOik7HYvTYAAAQIECBAgQIAAAQIECAxH4JZbWm9+lDvAT7S03HIRV10VscMOr+wW3+z9WsycLm6ZPj1i441fmS4/UUbKNrPo1/xddtklnnzyyeLruH9H+t/whjfExz72seKVNtxww359tZp2C4DWcDghQIAAAQIECBAgQGCyCVx55ZUNX3nuiRjVaPimMgkQaCVwzDHNr+Z6mBM1zTVXxK9+9cqU+C98IeKFF0b2pi+9FLHbbhFLLRXxnveMrI7xumv20iKnK+Yw11J67LHHSqNcXxnmutBCC8UCCyxQ5M+VUH2cvpLrFZTSPffcE+UA6LKlYb2HH354H7/V4KYLgA42kUOAAAECBAgQIECAwCQSmH/++SfR23pVAgTaEcgRjs02P1pnnYg112yntv4s+9nPvrLJ0+abR9x778jeIYOgu+4aceON/bUmaAYCb8xGl9KJJ54Y2223XXH8hVJEeN999y2O/ac/BKwB2h/9pJUECBAgQIAAAQIECBAgQIBAlwVy86OHH2780Mk0pXu99SJyzc93vKOxxXByczp8rg0qERgPAQHQ8VD3TAIECBAgQIAAAQIECBAgQKDnBY49tnETc/OjHBE5mVJp1ncxJX4073zWWaO5270ERi4gADpyO3cSIECAAAECBAgQIECAAAECE1Tgppsi/vjHxi+39dYRfb70Y+MXGyL3zjuHKDDE5RwFKhEYDwEB0PFQ90wCBAgQIECAAAECBAgQIECgpwUm6+ZHrTrlmWdaXR362mjvH/oJShBoLCAA2thFLgECBAgQIECAAAECBAgQIDBJBZ57LuIXv2j88uuuG7H66o2vTfTcRRcd3RuO9v7RPd3dk1lAAHQy9753J0CAAAECBAgQIECAAAECBAYJnHpqxCOPDMouMnbcsXH+ZMhdbrmIXAt0pGmDDUZ6p/sIjE5AAHR0fu4mQIAAAQIECBAgQIAAAQIEJphAs82P5pln8m1+VN21M5eiSB//eHVOe8cLLNBeeaUJdEpAALRTkuohQIAAAQIECBAgQIAAAQIE+l7gxhsjrrii8Wtss03EnHM2vjZZcvffP2LeeUf2trvuGvH734/sXncRGI2AAOho9NxLgAABAgQIECBAgAABAgQITCiBH/+4+etsv33za5PlSk6BP/nkiFlmaf+NZ8yI2HTTiEsvbf9edxAYjYAA6Gj03EuAAAECBAgQIECAAAECBAhMGIFWmx+tt17Em940YV51VC/yvvdFnHnmyEaC5k7wm2wS8ac/jaoJbibQlsD/Z+9OwOSqyoQBf1nICmELCQQiCYQlGCSCgCKiLMoi+yYOgxDW+AvqgMzoqIwijOzyKKKABhQRBVSQiQLKIgiI7PseQAj7lhACSUj6r1NNV6rTVd3VneqqutXvfZ6m7z3n3LO8p0l3f33uPQKg3eJSmAABAgQIECBAgAABAgQIEGhWgd/8JuKNN0qP7ogjSqf31dQUBH388YivfjVi9Oj2Cv36RXS24/ucORE77BBx113t73NFoLcEBEB7S1a9BAgQIECAAAECBAgQIECAQKYEym1+tMIKEfvsk6mh1KSzq6wS8YMfRDz/fMROOy1u8tprW9OmTl2ctuTZrFkRn/lMxP33L5njmkD1BQRAq2+qRgIECBAgQIAAAQIECBAgQCBjAg8+WP6x7LT50dChGRtQDbubdocfMWJxgylgnI6zz4446KD8acn/vPZaxHbbRTz6aMlsiQSqJiAAWjVKFREgQIAAAQIECBAgQIAAAQJZFfjJT8r33OZH5W06y0mPwv/85xH77Ve+1MsvR2yzTcSTT5YvI4fA0goIgC6toPsJECBAgAABAgQIECBAgACBTAu8807ERReVHsKWW0ZMmlQ6T2rXAml16IUXtu7+Xq50eoR+220j/vWvciWkE1g6AQHQpfNzNwECBAgQIECAAAECBAgQIJBxgYsvjnjzzdKDsPlRaZfupA4cGPHb30akjZPKHc880xoETcFQB4FqCwiAVltUfQQIECBAgAABAgQIECBAgECmBM49t3R3V1wxYq+9SudJ7Z7AoEERv/996+Pu5e584onWd4Kmx+IdBKopkIvBOwgQIECAAAECBAgQIECAAIFGE3j77bfjqaee6rRb66yzTgwePLjTMjI7F0i7kN92W+kyNj8q7dLT1CFDIv74x4gddoj4+99L1/LwwxGf/nTE9ddHrLRS6TJSCXRXQAC0u2LKEyBAgAABAgQIECBAgACBGgj84x//yO2QvV2nLd2fi95N8oLKTo26yuxs86PDDuvqbvndFRg+POJPf2pd6fnPf5a++777IrbfPuKvf41YfvnSZaQS6I6AR+C7o6UsAQIECBAgQIAAAQIECBAg0DQCc+dG/PrXpYez1VYRG2xQOk/q0gkst1zEVVdFTJ5cvp477ojYaaeIOXPKl5FDoFIBK0ArlVKOAAECBAgQIECAAAECBAjUUGDUqFG590+2voDy0UcfjQceeCDf+iabbBLjxo3Lny9vedxSzUja/GjWrNJV2PyotEu1UtP7Vf/yl4hPfSriwQdL13rLLRG77NK6YnTo0NJlpBKoRMAK0EqUlCFAgAABAgQIECBAgAABAjUW2HDDDeOyyy7Lf/z7v/97ofUjjzyykD527NhCupPuC5xzTul70rsn99yzdJ7U6gmMHNn6mHvuVbZljxtuiNhjj4h588oWkUGgSwEB0C6JFCBAgAABAgQIECBAgAABAgSaTeDeeyNuv730qA46KCJt2OPofYFVV4247rqI8ePLt3X11RH77huxYEH5MnIIdCbgEfjOdOQRIECAAAECBAgQIND0AltvvXUsWrSowzhPP/30+MhHPtIhXQIBAs0h0NnmR4ce2hxjzMoo1lgj4tprI9J7V597rnSv0+7x++8fkV5bMGBA6TJSCZQTEAAtJyOdAAECBAgQIECAAIE+IfDCCy9ES0tLh7HO87xlBxMJBJpF4O23WwNppcaT3kk5cWKpHGm9KZBWgKYg6Cc/GfHii6VbuvTS1pW5F1wQ0d8zzaWRpJYU8OVSkkUiAQIECBAgQIAAAQIECBAg0KwCaef32bNLj+7ww0unS+19gXXXbX0naHo3aLnjwgsjpk6N3B+uypWQTqCjgABoRxMpBAgQIECAAAECBAgQIECAQBMLlNv8aOWVbX5U72n/4Adbd4dfYYXyPTnvvIivfKV8vhwCSwoIgC4p4poAAQIECBAgQIAAAQIECBBoWoG77464887Sw5syJWLw4NJ5UmsnMHlyRNr4aLnlyrf5ox9F/Nd/lc+XQ6BYQAC0WMM5AQIECBAgQIAAAQIECBAg0NQCP/1p+eHZ/Ki8Ta1zNtss4k9/ihg2rHzLp5wS8T//Uz5fDoE2AQHQNgmfCRAgQIAAAQIECBAgQIAAgaYWmDOn/OZHW28dsd56TT38zA1uyy0j0u7vQ4aU7/rxx0ecfHL5fDkEkoAAqK8DAgQIECBAgAABAgQIECBAoE8IXHRRxFtvlR7qEUeUTpdaX4Ftt4343e8iBg0q34+vfz3ihz8sny+HgACorwECBAgQIECAAAECBAgQIECgTwikzXNKHWnX8T32KJUjrREEdtop4je/iRg4sHxv0qZI555bPl9O3xYQAO3b82/0BAgQIECAAAECBAgQIECgTwjccUf5zY8OPrjzFYZ9AqjBB5kC1BdemHuUuZNI1tSpEb/8ZYMPpEG79/rrizuWVkkvWLD4uhnOOvmyaYbhGQMBAgQIECBAgAABAgQIECBAIOKcc0or9OsXYfOj0jaNlrrffhE//3lEmrNSR0tLRApmX3JJqVxppQSuvDIivWt18uTFuf/8Z8Qqq7RaPv304vQsnwmAZnn29J0AAQIECBAgQIAAAQIECBDoUiCtaEuPUJc6ttkmYp11SuVIa0SBgw6KOPvs8j1buDBi//0jrriifBk5EXPnRuy7b8Suu0bcfHNECh4XH7NmRZx/fsTEia0rb4vzsnguAJrFWdNnAgQIECBAgAABAgQIECBAoGKBX/0qIu0AX+qw+VEplcZOS4+6n3FG+T6+915rcO+qq8qX6cs5yWe33SIuvbRrhXffjfjCFyIuuKDrso1cQgC0kWdH3wgQIECAAAECBAgQIECAAIGlFii3+VF6zDcFghzZE/iP/4g48cTy/Z4/P2LPPSOuv758mb6ak9z++tfujT4FnR9/vHv3NFJpAdBGmg19IUCAAAECBAgQIECAAAECBKoqkN5nePfdpau0+VFpl6yk/vd/R3z72+V7+847Ebvs0vqId/lSfSvntdciTj21+2OeNy/iuOO6f1+j3CEA2igzoR8ECBAgQIAAAQIECBAgQIBA1QVsflR10oaq8PjjI445pnyX3n47YqedIm6/vXyZvpST3o2aTHpyXH55z+/tSXvVvEcAtJqa6iJAgAABAgQIECBAgAABAgQaRmD27Ijf/rZ0d7bbLmLChNJ5UrMlcNppEV/6Uvk+p6+D7bePuPfe8mX6Ss7f/97zkab3gd51V8/vr+edAqD11Nc2AQIECBAgQIAAAQIECBAg0GsCafOjcqvdbH7Ua+x1qfhHP4o45JDyTb/xRsSnPx3x8MPlyzRzTnonalrBOX360o3yhReW7v563S0AWi957RIgQIAAAQIECBAgQIAAAQK9KnDuuaWrHzUqYtddS+dJzaZAv34Rab733798/195JWLbbSOeeKJ8mWbLSY/+H3VUxGqrReyxR8TLLy/dCIcPX7r763X3wHo1rF0CBAgQIECAAAECBAgQIECAQG8J/OMf5R95TisFl1mmt1pWb70E+ueW+f3iFxHpUe3f/a50L9IKxm22ibjxxohx40qXyXrqc89FXHRRxAUXRDzySHVHk9XXRlgBWt2vA7URIECAAAECBAgQIECAAAECDSDQ2eZHhx3WAB3UhV4RGDAg4uKLI3beuXz1zz7buhJ05szyZbKWk171cOGFEZ/5TMSaa0Z8/eu9E/xcb72sybT2VwA0m/Om1wQIECBAgAABAgQIECBAgEAZgVmzIi65pHRmChCNH186T2pzCKTVvZdd1vrOz3IjmjGjNQj60kvlSjR+ektLxA03REyZErHqqhFf+ELEX/4SsWhR7/T9mGN6p95a1CoAWgtlbRAgQIAAAQIECBAgQIAAAQI1E0gr4ebOLd3c4YeXTpfaXAKDB7du+rPVVuXH9eijEdttF/Haa+XLNGLOY49FfPvbrY/wb71166Puc+b0bk+32CLi0EN7t43erF0AtDd11U2AAAECBAgQIECAAAECBAjUXOC880o3mVbJ7bJL6TypzScwbFjrrucf/Wj5sT3wQOtj42++Wb5MI+SkXezTax1SIDI9hn7CCRH/+lf3ezZiROuK0eOPj0hB4kqOSZMi/vCHiIEDKyndmGUEQBtzXvSKAAECBAgQIECAAAECBAgQ6IHALbdE3Hdf6RttflTapZlTl1024qqrIjbeuPwo77orYocdIt56q3yZeuS8917E//1fxL77tu7iPnVqxK23dr8naXOoT3864le/injxxYhp01pXkKaNoD784fL1pfeppvflpjZHjSpfLgs5GY7dZoFXHwkQIECAAAECBAgQaHSBP//5z9GSXqS2xLHaaqstkeKSAIEsCJx7bule9usXkQKgjr4nsPzyEddcE5EeF7///tLjv+221o2Tct8SIq0credxzz0Rv/xl607uL7/c85588IMRBxzQ+jFmTMd6Ntss4s47W23SxlG/+EVrmZEjI44+OmKffSKyuuv7kqMVAF1SxDUBAgQIECBAgAABAn1KYLzdUPrUfBtscwukx5jLbX60/fY2P2ru2e98dCuv3LpB0Cc/GZHe/VnqSCsid9utddVlpY+Hl6qnJ2lpZeZFF7UGIcsFaSupNwUvP//51g2RPvKRru9IfxhI/2+kYGlbAHSjjSK+8Y2u781SCQHQLM2WvhIgQIAAAQIECBAgQIAAAQJlBdKquXfeKZ19xBGl06X2HYHRoyOuvTYibYyUdoEvdfz1rxF77dX6zsu0m3xvHu++G3HFFa2Bx7RCdeHCnrU2aFDEZz8bceCBETvtFNHb/e5ZL+t7lwBoff21ToAAAQIECBAgQIAAAQIECFRJoNzmR+mNFjvvXKVGVJNpgdVXj7juutYgaLlNhKZPj9hvv4jf/rZ3Nv65+ebWoGdarTxrVs85N920NeiZVnyutFLP6+kLdwqA9oVZNkYCBAgQIECAAAECBAgQINDkAimolHb0LnUcemjvBLJKtSWt8QXWXHPxStAXXijd39//vjW4eOGFEWkToaU9nnoqItWVVik/+WTPaxs7NmL//Vv7tv76Pa+nr90pANrXZtx4CRAgQIAAAQIECBAgQIBAEwqcc07pQaXglc2PStv05dS0uU96HD69E/SVV0pL/PrXEUOGRJxySsTtty8ukzYpeumliPRIfWfH7NkRl17aGvS86abIbbjXWenyecOHR+yxR2vQc5ttqhOQLd9ac+ZUIYbdnDBGRYAAAQIECBAgQIAAAQIE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rEBLS8Stt/a8+0OGRDz0UMSaa/a8DncSIECgGQWsAG3GWTUmAgQIECBAgAABAgQIEMicwBtvRMyf3/Nuv/ee4GfP9dxJgEAzCwiANvPsGhsBAgQIECBAgAABAgQIZEZg+PCl6+qyyy7d/e4mQIBAswoIgDbrzBoXAQIECBAgQIAAAQIECGRKYPDgiA98oOddXmednt/rTgIECDSzgABoM8+usREgQIAAAQIECBAgQIBApgR22aXn3V2ae3veqjsJECDQ+AICoI0/R3pIgAABAgQIECBAgAABAn1E4KtfjVhmme4PdrnlIqZO7f597iBAgEBfEBAA7QuzbIwECBAgQIAAAQIECBAgkAmBCRMivvnN7nf11FMjVlml+/e5gwABAn1BQAC0L8yyMRIgQIAAAQIECBAgQIBAZgSOOy7i0EMr7+43vhFxxBGVl1eSAAECfU1AALSvzbjxEiBAgAABAgQIECBAgEBDC/TrF3HeeRE//WnEyJHlu7r66hEXXxzxv/9bvowcAgQIEIgQAPVVQIAAAQIECBAgQIAAAQIEGlAgreqcMSPiwgsjNtlkcQe32irikksiHn88Yr/9Fqc7I0CAAIHSAgNLJ0slQIAAAQIECBAgQIAAAQIE6i2QNjf693+PmDkz4s47W3szZUrEPvvUu2faJ0CAQHYErADNzlzpKQECBAgQIECAAAECBAgQIECAAAEC3RQQAO0mmOIECBAgQIAAAQIECBAgQIAAAQIECGRHQAA0O3OlpwQIECBAgAABAgQIECBAgAABAgQIdFNAALSbYIoTIECAAAECBAgQIECAAAECBAgQIJAdAZsgZWeu9JQAAQIECBAgQIAAgV4QOPvss6OlpaVDzRMnTuyQJoEAAQIECBDInoAAaPbmTI8JECBAgAABAgQIEKiiwDbbbFPF2lRFgAABAgQINJqAR+AbbUb0hwABAgQIECBAgAABAgQIECBAgACBqgkIgFaNUkUECBAgQIAAAQIECBAgQIAAAQIECDSagABoo82I/hAgQIAAAQIECBAgQIAAAQIECBAgUDUBAdCqUaqIAAECBAgQIECAAAECBAgQIECAAIFGExAAbbQZ0R8CBAgQIECAAAECBAgQIECAAAECBKomIABaNUoVESBAgAABAgQIECBAgAABAgQIECDQaAICoI02I/pDgAABAgQIECBAgAABAgQIECBAgEDVBARAq0apIgIECBAgQIAAAQIECBAgQIAAAQIEGk1AALTRZkR/CBAgQIAAAQIECBAgQIAAAQIECBComoAAaNUoVUSAAAECBAgQIECAAAECBAgQIECAQKMJCIA22ozoDwECBAgQIECAAAECBAgQIECAAAECVRMYWLWaVESAAAECBAgQIECAAAECBAgQIFAQuO666+L555/PX8+bNy//+d13341f/epX+fMxY8bENttsUyjvhACB3hEQAO0dV7USIECAAAECBAgQIECAAAECfVzglFNOiauvvrqdwpw5c+KAAw7Ip+2www4CoO10XBDoHQGPwPeOq1oJECBAgAABAgQIECBAgAABAgQIEGgAAStAG2ASdIEAAQIECBAgQIAAAQIECBBoPoGDDjooPvGJT5Qd2Nprr102TwYBAtUTEACtnqWaCBAgQIAAAQIECBAgQIAAAQIFgf32269w7oQAgfoJeAS+fvZaJkCAAAECBAgQIECAAAECBAgQIECglwUEQHsZWPUECBAgQIAAAQIECBAgQIAAAQIECNRPQAC0fvZaJkCAAAECBAgQIECAAAECBAgQIECglwUEQHsZWPUECBAgQIAAAQIECBAgQIAAAQIECNRPQAC0fvZaJkCAAAECBAgQIECAAAECBAgQIECglwUEQHsZWPUECBAgQIAAAQIECBAgQIAAAQIECNRPQAC0fvZaJkCAAAECBAgQIECAAAECBAgQIECglwUG9nL9qidAgAABAgQIECBAgEBDCxxzzDGxaNGiDn2cOnVqrLfeeh3SJRAgQIAAAQLZEhAAzdZ86S0BAgQIECBAgAABAlUWmD59erS0tHSode+99xYA7aAigQABAgQIZE/AI/DZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQgEB0AqhFCNAgAABAgQIECBAgAABAgQIECBAIHsCAqDZmzM9JkCAAAECBAgQIECAAAECBAgQIECgQoGBFZZTjAABAgQIECBAgAABAk0pcOKJJ0ZLS0uHsU2YMKFDmgQCBAgQIEAgewICoNmbMz0mQIAAAQIECBAgQKCKAnvttVcVa1MVAQIECBAg0GgCHoFvtBnRHwIECBAgQIAAAQIECBAgQIAAAQIEqiYgAFo1ShURIECAAAECBAgQIECAAAECBAgQINBoAgKgjTYj+kOAAAECBAgQIECAAAECBAgQIECAQNUEBECrRqkiAgQIECBAgAABAgQIECBAgAABAgQaTUAAtNFmRH8IECBAgAABAgQIECBAgAABAgQIEKiagABo1ShVRIAAAQIECBAgQIAAAQIECBAgQIBAowkIgDbajOgPAQIECBAgQIAAAQIECBAgQIAAAQJVExAArRqliggQIECAAAECBAgQIECAAAECBAgQaDQBAdBGmxH9IUCAAAECBAgQIECAAAECBAgQIECgagICoFWjVBEBAgQIECBAgAABAgQIECBAgAABAo0mIADaaDOiPwQIECBAgAABAgQIECBAgAABAgQIVE1AALRqlCoiQIAAAQIECBAgQIAAAQIECBAgQKDRBARAG21G9IcAAQIECBAgQIAAAQIECBAgQIAAgaoJCIBWjVJFBAgQIECAAAECBAgQIECAAAECBAg0moAAaKPNiP4QIECAAAECBAgQIECAAAECBAgQIFA1AQHQqlGqiAABAgQIECBAgAABAgQIECBAgACBRhMQAG20GdEfAgQIECBAgAABAgQIECBAgAABAgSqJiAAWjVKFREgQIAAAQIECBAgQIAAAQIECBAg0GgCAqCNNiP6Q4AAAQIECBAgQIAAAQIECBAgQIBA1QQEQKtGqSICBAgQIECAAAECBAgQIECAAAECBBpNQAC00WZEfwgQIECAAAECBAgQIECAAAECBAgQqJqAAGjVKFVEgAABAgQIECBAgAABAgQIECBAgECjCQiANtqM6A8BAgQIECBAgAABAgQIECBAgAABAlUTGFi1mlREgAABAgQIECBAgACBDAp873vfi5aWlg4933///WPttdfukC6BAAECBAgQyJaAAGi25ktvCRAgQIAAAQIECBCossBFF11UMgC67bbbCoBW2Vp1BAgQIECgHgIega+HujYJECBAgAABAgQIECBAgAABAgQIEKiJgABoTZg1QoAAAQIECBAgQIAAAQIECBAgQIBAPQQEQOuhrk0CBAgQIECAAAECBAgQIECAAAECBGoiIABaE2aNECBAgAABAgQIECBAgAABAgQIECBQDwEB0Hqoa5MAAQIECBAgQIAAAQIECBAgQIAAgZoICIDWhFkjBAgQIECAAAECBAgQIECAAAECBAjUQ0AAtB7q2iRAgAABAgQIECBAgAABAgQIECBAoCYCAqA1YdYIAQIECBAgQIAAAQIECBAgQIAAAQL1EBAArYe6NgkQIECAAAECBAgQIECAAAECBAgQqImAAGhNmDVCgAABAgQIECBAgAABAgQIECBAgEA9BARA66GuTQIECBAgQIAAAQIECBAgQIAAAQIEaiIgAFoTZo0QIECAAAECBAgQIECAAAECBAgQIFAPAQHQeqhrkwABAgQIECBAgAABAgQIECBAgACBmggIgNaEWSMECBAgQIAAAQIECBAgQIAAAQIECNRDQAC0HuraJECAAAECBAgQIECAAAECBAgQIECgJgICoDVh1ggBAgQIECBAgAABAgQIECBAgAABAvUQEACth7o2CRAgQIAAAQIECBAgQIAAAQIECBCoiYAAaE2YNUKAAAECBAgQIECAAAECBAgQIECAQD0EBEDroa5NAgQIECBAgAABAgQIECBAgAABAgRqIiAAWhNmjRAgQIAAAQIECBAgQIAAAQIECBAgUA8BAdB6qGuTAAECBAgQIECAAAECBAgQIECAAIGaCAiA1oRZIwQIECBAgAABAgQIECBAgAABAgQI1ENAALQe6tokQIAAAQIECBAgQIAAAQIECBAgQKAmAgNr0opGCBAgQIAAAQIECBAg0KACxx57bLS0tHTo3bhx4zqkSSBQS4HZs2fHgw8+mG/ymWeeKTT9xBNPxK233pq/njx5cgwdOrSQ54QAAQIEOgoIgHY0kUKAAAECBAgQIECAQB8SOOSQQ/rQaA01SwK33357bLfddh26fOKJJ0b6SMf9998fkyZN6lBGAgECBAgsFvAI/GILZwQIECBAgAABAgQIECBAgAABAgQINJmAFaBNNqGGQ4AAAQIECBAgQIAAAQLNITBmzJiYMmVKp4NZccUVO82XSYAAAQIRAqC+CggQIECAAAECBAgQIECAQAMKTJw4MaZNm9aAPdMlAgQIZEvAI/DZmi+9JUCAAAECBAgQIECAAAECBAgQIECgGwICoN3AUpQAAQIECBAgQIAAAQIECBAgQIAAgWwJCIBma770lgABAgQIECBAgAABAgQIECBAgACBbggIgHYDS1ECBAgQIECAAAECBAgQIECAAAECBLIlIACarfnSWwIECBAgQIAAAQIECBAgQIAAAQIEuiEgANoNLEUJECBAgAABAgQIECBAgAABAgQIEMiWgABotuZLbwkQIECAAAECBAgQIECAAAECBAgQ6IaAAGg3sBQlQIAAAQIECBAgQIAAAQIECBAgQCBbAgKg2ZovvSVAgAABAgQIECBAgAABAgQIECBAoBsCAqDdwFKUAAECBAgQIECAAAECBAgQIECAAIFsCQiAZmu+9JYAAQIECBAgQIAAAQIECBAgQIAAgW4ICIB2A0tRAgQIECBAgAABAgQIECBAgAABAgSyJSAAmq350lsCBAgQIECAAAECBAgQIECAAAECBLohIADaDSxFCRAgQIAAAQIECBAgQIAAAQIECBDIloAAaLbmS28JECBAgAABAgQIECBAgAABAgQIEOiGgABoN7AUJUCAAAECBAgQIECAAAECBAgQIEAgWwICoNmaL70lQIAAAQIECBAgQIAAAQIECBAgQKAbAgKg3cBSlAABAgQIECBAgAABAgQIECBAgACBbAkIgGZrvvSWAAECBAgQIECAAAECBAgQIECAAIFuCAiAdgNLUQIECBAgQIAAAQIECBAgQIAAAQIEsiUwMFvd1VsCBAgQIECAAAECBAhUV+Css86KlpaWDpXuvvvuMXbs2A7pEggQIECAAIFsCQiAZmu+9JYAAQIECBAgQIAAgSoLlAuAbrzxxgKgVbZWHQECBAgQqIeAR+Droa5NAgQIECBAgAABAgQIECBAgAABAgRqIiAAWhNmjRAgQIAAAQIECBAgQIAAAQIECBAgUA8BAdB6qGuTAAECBAgQIECAAAECBAgQIECAAIGaCAiA1oRZIwQIECBAgAABAgQIECBAgAABAgQI1ENAALQe6tokQIAAAQIECBAgQIAAAQIECBAgQKAmAgKgNWHWCAECBAgQIECAAAECBAgQIECAAAEC9RAQAK2HujYJECBAgAABAgQIECBAgAABAgQIEKiJgABoTZg1QoAAAQIECBAgQIAAAQIECBAgQIBAPQQEQOuhrk0CBAgQIECAAAECBAgQIECAAAECBGoiIABaE2aNECBAgAABAgQIECBAgAABAgQIECBQDwEB0Hqoa5MAAQIECBAgQIAAAQIECBAgQIAAgZoICIDWhFkjBAgQIECAAAECBAgQIECAAAECBAjUQ0AAtB7q2iRAgAABAgQIECBAgAABAgQIECBAoCYCAqA1YdYIAQIECBAgQIAAAQIECBAgQIAAAQL1EBhYj0absc1Zs2bFb3/723j00Ufjueeei1dffTXGjBkTY8eOjY022ij23HPPWGaZZboc+syZM+PCCy/M15POR40aFZMmTYoNN9wwttlmmxg6dGiXdShAgAABAgQIECBAgAABAgQIECBAgECrgABoFb4SLr300pg2bVrMmTOnXW1PP/10pI+bbroprrjiijj22GPjwx/+cLsyxRcXX3xxnHPOObFw4cJC8jPPPBPpY/r06XHllVfGqaeeGsstt1wh3wkBAgQIECBAgAABAgQIECBAgAABAuUFBEDL21SUc80118QPf/jDQtnNN988v+Jz5MiR+ZWgN954Yz4I+uyzz8bXvva1+NnPfhbjx48vlG87SQHOs88+O385aNCg/GrPtPLz5ZdfjptvvjmefPLJePDBB+PII4+MH/zgB7HSSiu13eozAQIECBAgQIAAAQIECBAgQIAAAQJlBARAy8BUkvz888/Haaedli86YMCAOP7442OrrbZqd+uUKVPirLPOit/97ncxf/78fJnzzjsvBg5cTP/GG2/EGWeckb9v+PDh8f3vf7/dStFUxwknnBDXXnttzJgxIy644II4+uij27XjggABAgQIECBAgAABAgQIECBAgACBjgI2QepoUnFKCki+8847+fL/9m//1iH4mTJSoPOoo46K9ddfP1/uiSeeyL/fM3/x/n/SI/QpOJqOL37xi+2Cnykt1XHccccV6rjqqqti7ty5KctBgAABAgQIECBAgAABAgQIECBAgEAnAgKgneB0lXXPPfcUiuy6666F8yVP0urQT33qU4Xkxx57rHCeTtLj7+lIGxzttNNO+fMl/9O/f//43Oc+l09OQdcUBHUQIECAAAECBAgQIECAAAECBAgQINC5gABo5z6d5qb3cG6wwQb5nd5Hjx7dadmVV165kP/KK68Uzl944YV4/fXX89dpg6TOdorfZJNNCveld486CBAgQIAAAQIECBAgQIAAAQIECBDoXGDxiyg7Lye3hMA3v/nNEqmlk9Kj723H2muv3Xaa39io7WLChAltpyU/r7jiipECqa+99lr+XaAlC0kkQIAAAQIECBAgQIAAAQIECBAgQKAgYAVogaL3TtL7OotXbE6cOLHQ2HPPPVc4HzNmTOG83EnbStP0GPyrr75arph0AgQIECBAgAABAgQIECBAgAABAgRyAlaA1uDLIO3annZ6T8dmm20WxYHOt99+u9CDtMKzq2OFFVYoFJk9e3aMHDmycF3u5Ec/+lGnwdIFCxbEqFGj8mUWLVpUrhrpBAgQIECAAAECBJpS4NBDD42WlpYOY1t99dU7pEkgQIAAAQIEsicgANrLc/anP/0pLr744nwrw4YNi//8z/9s12JxAHTw4MHt8kpdFJd59913SxXpkJb6MGPGjA7pxQkpsJreRSoAWqzinAABAgQIECBAoC8IfO1rX+sLwzRGAgQIECDQZwU8At+LU3/zzTfHKaecUmjhy1/+crQ9wt6WmB6PbzsGDRrUdlr2c3GZefPmlS0ngwABAgQIECBAgAABAgQIECBAgAABj8D32tdAWnWZgp8LFy7Mt3HggQfGZz/72Q7tDRy4eBFuW9kOhYoSissUB0OLijglQIAAAQIECBAgQIAAAQIECBAgQOB9gcXRNyRx7bXXxtVXX92pRHo8Jr0vs7Nj2rRpcf755xeKTJkyJQ4++ODCdfHJ0KFDC5fz588vnJc7KV71OXz48HLF2qUff/zxUbzStF1m7uJLX/pSPP3004Vg7ZL5rgkQIECAAAECBAgQIECAAAECBAhkVUAAtGjm0o7st956a1FKx9PO3rv53nvvxamnnhpp9Wc6+vfvH0cffXTstttuHSt6P6U4iFn8PtByNxQHMovvLVc+pW+66aadZceAAQOikrY7rUQmAQIECBAgQIAAAQIECBAgQIAAgQYUEACt0qSkAOK3vvWtuOOOO/I1DhkyJL7zne/Exz/+8U5bKN4R/uWXX+60bMpsK5OCliNGjOiyvAIECBAgQIAAAQIECBAgQIAAAQIE+rKAAGjR7O+1116x/fbbF6V0PB05cmSHxDfffDO++tWvxpNPPpnPW3nllePkk0+O9dZbr0PZJRPGjRtXSJo5c2bhvNRJWmH64osv5rPWWmutKN4RvlR5aQQIECBAgAABAgQIECBAgAABAgT6uoAAaNFXwLLLLhvpozvHW2+9lX/MvS34OX78+Pxj8Evu9l6uzgkTJsQyyywTCxYsiHvuuadcsXz6Qw89lC+XLjbYYINOy8okQIAAAQIECBAgQIAAAQIECBAgQCD3mkoISydw+umnx+OPP56vZP3114+zzjorKg1+ppuGDRsWm2++ef7+p556Kh577LH8ean/FG/QtMUWW5QqIo0AAQIECBAgQIAAAQIECBAgQIAAgSIBAdAijO6epvd9pp3j05Eeez/ppJN69F7OnXfeudB02kQprSpd8kibM02fPj2fnFaZfuxjH1uyiGsCBAgQIECAAAECBAgQIECAAAECBJYQ8Aj8EiCVXqZH1s8444xC8bSSM733s5Jjs802i7333rtQNG2UlFaB3nbbbfHII4/El7/85TjyyCNj0qRJMXv27Ljhhhvixz/+cSxcuDD69esXU6dOzX8uVOCEAAECBAgQIECAAAECBAgQIECAAIGSAgKgJVm6Trzrrrvi2WefLRRM58XXhYwSJyuttFKH1OOOOy6/a/ztt98eTzzxRH5TpbTTewp6Fh8pMOrx92IR5wQIECBAgAABAgQIECBAgAABAgTKC3gEvrxNpznpfZ3VPEaMGBGnnXZaHHDAAbHccsvlqy4OfqZd30855ZTYd999q9msuggQIECAAAECBAgQIECAAAECBAg0tYAVoD2c3v322y/SRzWP/v37x+GHH57/eP755/ObKw0ePDjGjh0bq622WqR8BwECBAgQIECAAAECBAgQIECAAAEClQsIgFZuVdOSY8aMifThIECAAAECBAgQIECAAAECBAgQIECg5wKWFPbczp0ECBAgQIAAAQIECBAgQIAAAQIECDS4gABog0+Q7hEgQIAAAQIECBAgQIAAAQIECBAg0HMBAdCe27mTAAECBAgQIECAAAECBAgQIECAAIEGFxAAbfAJ0j0CBAgQIECAAAECBAgQIECAAAECBHouIADaczt3EiBAgAABAgQIECBAgAABAgQIECDQ4AICoA0+QbpHgAABAgQIECBAgAABAgQIECBAgEDPBQRAe27nTgIECBAgQIAAAQIECBAgQIAAAQIEGlxAALTBJ0j3CBAgQIAAAQIECBAgQIAAAQIECBDouYAAaM/t3EmAAAECBAgQIECAAAECBAgQIECAQIMLDGzw/ukeAQIECBAgQIAAAQIEelXgV7/6Vcn6t91221httdVK5kkkQIAAAQIEsiMgAJqdudJTAgQIECBAgAABAgR6QeCEE06IlpaWDjWPHz9eALSDigQCBAgQIJA9AY/AZ2/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBEArhFKMAAECBAgQIECAAAECBAgQIECAAIHsCQiAZm/O9JgAAQIECBAgQIAAAQIECBAgQIAAgQoFBlZYTjECBAgQIECAAAECBAg0pcDee+8dixYt6jC20aNHd0iTQIAAAQIECGRPQAA0e3OmxwQIECBAgAABAgQIVFHghBNOqGJtqiJAgAABAgQaTcAj8I02I/pDgAABAgQIECBAgAABAgQIECBAgEDVBARAq0apIgIECBAgQIAAAQIECBAgQIAAAQIEGk1AALTRZkR/CBAgQIAAAQIECBAgQIAAAQIECBComoAAaNUoVUSAAAECBAgQIECAAAECBAgQIECAQKMJCIA22ozoDwECBAgQIECAAAECBAgQIECAAAECVRMQAK0apYoIECBAgAABAgQIECBAgAABAgQIEGg0AQHQRpsR/SFAgAABAgQIECBAgAABAgQIECBAoGoCAqBVo1QRAQIECBAgQIAAAQIECBAgQIAAAQKNJiAA2mgzoj8ECBAgQIAAAQIECBAgQIAAAQIECFRNQAC0apQqIkCAAAECBAgQIECAAAECBAgQIECg0QQEQBttRvSHAAECBAgQIECAAAECBAgQIECAAIGqCQiAVo1SRQQIECBAgAABAgQIECBAgAABAgQINJqAAGijzYj+ECBAgAABAgQIECBAgAABAgQIECBQNQEB0KpRqogAAQIECBAgQIAAAQIECBAgQIAAgUYTEABttBnRHwIECBAgQIAAAQIECBAgQIAAAQIEqiYgAFo1ShURIECAAAECBAgQIECAAAECBAgQINBoAgMbrUP6Q4AAAQIECBAgQIAAAQIECPQNgUsvvTRaWlpixowZhQE/88wzcckll+SvJ0+eHOuuu24hzwkBAgR6ItAv9w9NS09udE/zCGy00UZx3333FQb05ptvxvLLL1+4dkKAAAECBAgQIECAAAECBHpDoH///vkAaLm6Tz/99Dj66KPLZUsnQIBARQIega+ISSECBAgQIECAAAECBAgQIECAAAECBLIo4BH4LM6aPhMgQIAAAQIECBAgQIAAgSYQOO644zpdAfqxj32sCUZpCAQI1FvAI/D1noEGaN8j8A0wCbpAgAABAgQIECBAgAABAgQIECDQKwIege8VVpUSIECAAAECBAgQIECAAAECBAgQINAIAgKgjTAL+kCAAAECBAgQIECAAAECBAgQIECAQK8IeAdor7CqlAABAgQIECBAgACBrAhMnz69ZFc322yzWGWVVUrmSSRAgAABAgSyIyAAmp250lMCBAgQIECAAAECBHpB4Jhjjim5Ccu0adMEQHvBW5UECBAgQKDWAh6Br7W49ggQIECAAAECBAgQIECAAAECBAgQqJmAAGjNqDVEgAABAgQIECBAgAABAgQIECBAgECtBQRAay2uPQIECBAgQIAAAQIECBAgQIAAAQIEaiYgAFozag0RIECAAAECBAgQIECAAAECBAgQIFBrAQHQWotrjwABAgQIECBAgAABAgQIECBAgACBmgkIgNaMWkMECBAgQIAAAQIECBAgQIAAAQIECNRaQAC01uLaI0CAAAECBAgQIECAAAECBAgQIECgZgICoDWj1hABAgQIECBAgAABAgQIECBAgAABArUWEACttbj2CBAgQIAAAQIECBAgQIAAAQIECBComYAAaM2oNUSAAAECBAgQIECAAAECBAgQIECAQK0FBEBrLa49AgQIECBAgAABAgQIECBAgAABAgRqJiAAWjNqDREgQIAAAQIECBAgQIAAAQIECBAgUGsBAdBai2uPAAECBAgQIECAAAECBAgQIECAAIGaCQiA1oxaQwQIECBAgAABAgQIECBAgAABAgQI1FpAALTW4tojQIAAAQIECBAgQIAAAQIECBAgQKBmAgKgNaPWEAECBAgQIECAAAECBAgQIECAAAECtRYQAK21uPYIECBAgAABAgQIECBAgAABAgQIEKiZgABozag1RIAAAQIECBAgQIAAAQIECBAgQIBArQUEQGstrj0CBAgQIECAAAECBAgQIECAAAECBGomIABaM2oNESBAgAABAgQIECBAgAABAgQIECBQawEB0FqLa48AAQIECBAgQIAAAQIECBAgQIAAgZoJDKxZSxrKjMDf//73WHbZZTPTXx0lQIAAAQIECBAgsDQCc+fOjZaWlg5V3H333fHee+91SJdAgAABAgQI9K7Axz/+8Rg4sHphy365b/Qdv9P37hjU3mACG220Udx3330N1ivdIUCAAAECBAgQIECAAAECBAgQ6IsCr776aqy88spVG3r1QqlV65KKai2w9dZbx/jx4+Oaa66Jd955p9bNF9obPnx44XzRokV17UuhI1U8GTp0aPTvv/itE+VWGlSxyZpWtcwyy8SgQYMKbc6bN6+pVkykuUtz2Hak1SBpjM10FP8/mP42lr5Gm+kYMmRIDBgwoDCk9O9d+remWY7019HBgwcXhjN//vxYsGBB4TrrJ/369Ythw4YVhrFw4cJ49913C9fNcJLGl8bZdrz99tttp03xOX19Fv8VP81fmsdmOdK/L+nfmbYj/f+X/j9spqP4+0Rf+Fmt2f4fTD+npZ/X2g4/q7VJZOdz8f+DfeFntWb/fcnPatn5f6+tp33tZ7Wm+32pbSJ97rsCZ555Zn7w48aNi2eeeaYuECm4tPrqqxfaTj+Q1asvhU5U+WTkyJHtAmhPPvlkU/3iN2LEiHZ/nXnhhRfirbfeqrJi/apLv7gXf43Onj07Xnzxxfp1qBdaXm211QpB+hTgnTFjRi+0Ur8qV1pppXav93j66aebKjiRXl0yatSoAvArr7wSb7zxRuE66ycpcFb8/2AKTMycOTPrw2rX/9GjRxeCE+kX28cff7xdftYvVlhhhVh++eULw3juueea6g8t6Y9kY8aMKYzv9ddfj7RyoVmOJX9WSwHsf/3rX80yvPw4VllllXZB7CeeeKKp/lCWflZL3wvbjmb/WW3WrFnx0ksvtQ23KT6nf2Pa/lDWjD+rpZVexUHeZvtZLY2t+Ge1l19+Od58882m+NpMg0h/YCn+WW3OnDnx/PPPN8340kBWXXXVwh9z+8LPas8++2xTLUzzCHxT/e+4dIM55phj6vaDevoGfscddxQGkH6JSI/mN9PxwAMPRPom0HZsvPHG7VZMtqVn9XP6x7E4GLH22mtH+kWiWY4U8HzooYcKw0kB7QkTJhSum+HktttuK7z/LP0As8kmmzTDsApjeOSRR9r9kLnhhhu2+yG7UDCjJykgn35RaDs+8IEPtAvGtKVn9XP6C/S9995b6H4KpE2cOLFw3Qwnd911V7ug/Ec/+tFmGFZhDOkPfykw33ak+SsOiLalZ/VzCnamgFnbkf6otOaaa7ZdZv7zkj+rpVUwH/rQhzI/ruIB3H///VG86jN9HyxeMVlcNovnKWBdHIxIP8ekn2ea5UgBz4cffrgwnPRzaPp5tJmOf/zjH4Xh9IWf1dK/McVPfxQGn9GT9EeH4kU+6XtE+l7RLEdasVv8ar30h8/111+/WYaXH8edd95ZeMIq/TFi8803b6rxpZ9jiv94W++f1c4+++yq/r4mANpUX67ZHUwKDBYHW9Zdd9248sorszugEj3fZ5992n1DSJtNNVOAMK0k/slPflIY+cknnxy777574TrrJylAv//++xeGseuuu8app55auG6Gk0mTJhW+oae/wN9yyy3NMKzCGKZOnRrXX3994fqKK65oqh/KLrzwwjjhhBMK4/uv//qvOPjggwvXWT9JK5J33HHHwjDSS9GnTZtWuG6Gk09+8pPtVpY/+uijzTCswhi++c1vxmWXXVa4Pv/882OLLbYoXGf9ZPr06XH00UcXhnHooYfGscceW7jO+klapVT8i176pTb9O9pMx5577hkPPvhgYUi33npruxWThYyMnpx++ulx7rnnFnp/2mmnxS677FK4zvpJCg4eeOCBhWHssccecdJJJxWum+EkBSPaXt+TVhLedNNNzTCswhgOO+ywuPHGGwvX6d/VZlpwkL7vFX9NfuMb34iDDjqoMN6sn6QnV3beeefCMLbaaqs477zzCtfNcLLlllsW/pibnk4q/p7RDONLvz9cfvnlhaH88pe/bPe9v5CR0ZPFLyTM6AB0mwABAgQIECBAgAABAgQIECBAgAABAuUEBEDLyUgnQIAAAQIECBAgQIAAAQIECBAgQCDzAgKgmZ9CAyBAgAABAgQIECBAgAABAgQIECBAoJyAAGg5GekECBAgQIAAAQIECBAgQIAAAQIECGReQAA081NoAAQIECBAgAABAgQIECBAgAABAgQIlBMQAC0nI50AAQIECBAgQIAAAQIECBAgQIAAgcwLDMz8CAygKQQGDhwYO+20U2EsY8aMKZw3y8mWW24Za6yxRmE4Q4YMKZw3w8l6663Xbg6Lx9oM41tppZXajW/y5MnNMKx2Y0j/Dy5YsCCfNmLEiHZ5zXCx6aabxtChQwtDabYxjhs3rt3X6FprrVUYazOcLLvssu3Gt/766zfDsNqNYdttt4033ngjn9avX792ec1w8aEPfSjmzp1bGMrIkSML581wsvrqq7f7Gp04cWIzDKswhkGDBrUbX7N9n08DTT+rrbnmmu3GXLhogpP072bxz9vpa7aZjvRvSvH4Ntpoo2YaXn4saXyLFi3Kn6+wwgpNN770s1r6ft92LLfccm2nTfE5/WxW/DU6fvz4phhX2yDSfBWPb4MNNmjLaprP2223XcyaNSs/nhTDaLYj/Y47f/78wrCa7We1fi25ozA6JwQIECBAgAABAgQIECBAgAABAgQIEGgiAY/AN9FkGgoBAgQIECBAgAABAgQIECBAgAABAu0FBEDbe7giQIAAAQIECBAgQIAAAQIECBAgQKCJBARAm2gyDYUAAQIECBAgQIAAAQIECBAgQIAAgfYCAqDtPVwRIECAAAECBAgQIECAAAECBAgQINBEAgKgTTSZhkKAAAECBAgQIECAAAECBAgQIECAQHsBAdD2Hq4IECBAgAABAgQIECBAgAABAgQIEGgiAQHQJppMQyFAgAABAgQIECBAgAABAgQIECBAoL2AAGh7D1cECBAgQIAAAQIECBAgQIAAAQIECDSRwMAmGouhEGgogQULFsTAgQOjX79+3erXe++9F6+//nr+nuHDh0f6yOIxf/78eO655+KFF16IVVZZJdZaa628RxbHUq7PCxcujPvuuy+fPXr06BgzZky5oplKf+edd+Kpp56KGTNmxKxZs2Ls2LHxgQ98IP95wIABmRpLZ51966238uNM4x01alSsvvrqMWjQoM5uqUvevHnz4qabbsq3PXny5Bg5cmRd+tGIjaZ/K59++un8v5lrrrlmjB8/PnP/zqSvw/Tv5Jw5cyKdz507N4YMGfL/2zsTeCmKaw8Xq2wSMCqKGBU1oihKEIlinriQF5WYoCJuSZRnjER4SjYVDRrNcwsibiSicUlUjEYlIgokEbcgQUFQUIgaNcqmGBREiBp49ytSw9xLz0zfOzN3ek7/6/e7d3q6q3vqfHVq6VOnqnzd365dO9ehQ4eqr1vQ4eXLl7t169b5P+pO2jbk4/Nzn/tcEtVLaaohQFvekHqRtoN8J1C/KlSGQNr7olBfsWKFW7x4saOt33333d3nP//5ymRGmX7Val90w4YNbtmyZb4vSju/5ZZbOtr5nXfe2VSbUS19UdT3lVde8WWJNrt3795l0ujqe6z6otWVZ01qKpcN1ZVkpVYEkkvggw8+cLfddps3itFY8xLbrVs317NnT3fiiSe6LbbYomDiFy1a5M444wwf7/TTT3dDhgwpeE9jR1i5cqU3jNERqWvgpSN2//33u7vvvtvBIwSMwfvuu6/70Y9+5Lp06RJOV/UnBosjjzzSy/Dtb3/bffe7302kPLNnz3avv/66T9sxxxzj9TIqobwo/fa3v3W/+c1vHPlYN2AIHTp0qPvKV75S91JivqNzf/rTn9zMmTN92dlrr71qpY0Bhnvvvdf9/ve/d++//36taxhjDj30UHfSSSd5Y2+tixX88t5777ljjz3Wp4AXt8suu8zts88+FUxReX96/fr17u2333bUhegkL6xf/OIXa/3ou+++68aPH+/++Mc/OuKHQD1zxBFHuHPPPTfRg0e8kD/wwAPu+eef93IW6orxskGe9+rVyx199NGudevWQeTEfr788stu4sSJbt68ed7Am09GjLyU1b333tsdddRR5gwUic2kHAmbPn26mzx5stdN6lQGwPbcc09H+9GjR48cd9U+fd5557kZM2b4k2EAp3YMfSsXgbT0RTHOYyCj/mjfvv1mOOn33Hzzze7ZZ5+tdY12lD754MGDN+vD1opYJV+qpS/KANjDDz/sqe66666+PcuF+G9/+5u74oor3GuvvbZZFAbiv/71r/s+XseOHTe7noQTFvuicL3qqqvcI4884hGTByNGjHAtWrRIAvKSp0F90c2RVmNfdHMpnJMBNIqKzolAAwg899xz7uc//3nGe7PuIzD6XXDBBQVfHpJsAOUl5te//nXGmLbVVlu5L3/5y+5b3/pWxqh55ZVX+henuvKH77y402AGw2E4X42f1dLpHD16tPvDH/7gEWOQiPJ+4CXiJz/5ifeILJQX5DkdU4xNSQoYWi6++OKMYfP//u//3H/9139lkohXK9f5zBfwdho2bJgbOHBgvmiNdi3bAMqPwp0yhDHCWnj11Vfdz372M/fWW2/VEm3//fd3l156qfcAgQf5s2TJklpxsr/gkU19zABU0sLvfvc7X4/ijdSQwMs+Ay7HH398Il/eMZ4xAEZb1pDAyxTtA4MtDEooNB4BdPKaa65xU6dOjfxRBjwHDRrkzjzzzIIDujKARiIs+8k09EXxmPvVr37lpkyZ4j2UmzZt6rp37+769++fabcxfpdBQYoAAEAASURBVNJO0E/LFWhXLrroosg+Ua57kni+WvqieMl94xvf8Ajpv/z4xz+OxEn7ccstt0QOxGffwPsE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MJtGdRw3rY5kKpUiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiUH8CMoDWn5nuEAEREAEREAEREAEREAEREAEREAEREAEREAERqBICMoBWSUYpmSIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAvUnIANo/ZnpDhEQAREQAREQAREQAREQAREQAREQAREQAREQgSohIANolWSUkikCIiACIiACIiACIiACIiACIiACIiACIiACIlB/AjKA1p+Z7hABERABERABERABERABERABERABERABERABEagSAs2rJJ1KZsoINGnSxDVr1sxLzbHFEORr2tTmOIR1+azrqHX5qFOs66h1+aSj1d8ySkerOw9VBqs7/0i9ymB156HKYHXnn8pg9eefymD15WGTDTWh+pKtFIuACIiACIiACIiACIiACIiACIiACIiACIiACIhAYQI2Xc8Ky60YIiACIiACIiACIiACIiACIiACIiACIiACIiACKSCgKfApyOSkiojz8TvvvOM+/PBD99FHH7nVq1e7f//7365du3aZv86dO7s2bdokVYSC6UKmpUuXZuT7+OOPXatWrVzbtm29jB06dHDIWK3BunzWddS6fJQr6zpqXT7paDundiLZLaR1HbUuX9Cuf/3rX2758uVu3bp1/o/+aOir8fm5z30uRK3KT+vykSkrVqxwq1at8vmHvC1btvR5SP61b9/ebbHFFlWZdyHR1uWzrqPW5VMZrP46Jg06ip7KABpaFX02GoEnnnjCTZ8+3c2ZM8d98MEHeX+X9TF33XVX16NHD9e/f3/XvXv3vPGTcJEOygMPPOCef/55t2jRIsfLQ75Ap3qfffZxvXr1ckcffbRr3bp1vugVv2ZdPgBb11Hr8lnXUevypaEMWs9D6/KlQUettxPk4csvv+wmTpzo5s2b5wer8/XXGIjYa6+93N577+2OOuoo9/nPf55HJDpYlw+ngilTprhp06a5v//9727t2rU584O1Trt27erz8KCDDnIHHnigY+2+JAfr8sHeuo5al8+6jlqXLw1lMKqO1xqgUVR0riwE8Pa86qqr3Ny5cxv8fDot3//+991OO+3U4GeU88bf/e537te//nXeTli+36eD/e1vf9sdf/zxieyYWZfPuo5al4+yZV1HrcsnHc3XQmy8pnaiMKNyxrCuo9blQzcYhL/77rv9IHVDdKVFixbuyCOPdEOHDvWzeRryjHLeY12+f/7zn+6OO+7wxs98Rs98jHfZZRd31llnOd4rkhasywdv6zpqXT7rOmpdvjSUwXz1ugyg+ejoWskIMK2IjgZeISEwer799ts7Kplly5a59evX+0t0Rrp16+bPcf7111/30+TDfVtuuaUbO3as++IXvxhOJeITwycdshCYetOlSxdHR5kXijVr1vhLTMHByMnUf+RbsmSJe+2118Jt/hPvgvPOO88laYd46/JZ11Hr8lFwrOuodfmko2onshvCJLaD1nXUunzo16RJk9zVV1+drWp+avR2223nttlmG7/sEv03PAY/+eQTx5RA+qmwWblyZa378CgcPXq0v6/WhQp+sS4fy74MGzbMe3xmY+adolOnTn7JEPrZ5CHLGJB/eHG9++67vs/96aefZm7DA5RnnXDCCZlzlT6wLh98reuodfms66h1+dJQBgvV4zKAFiKk60UTYErRkCFDvJEPg97Xv/519z//8z+uY8eOmWfTQbn33nvdXXfd5TssdE73339/f/2zzz5zTz/9tHvkkUfcrFmz/DmMoBgbt91228wzKnnw5JNPuosuusgnAaMnHSoMudnTaxYuXOiuv/5699JLL7k+ffq4K664whtHuWnx4sVePmQMywKcdNJJ3tu1knKF37Yun3UdtS4fempdR63LJx3dWNuqnXjEt4VJbAet66h1+ShheGVdfPHFfmkijGQDBw50hx9+uNt99929wXNjKcz9/7333vP90AkTJri33nrLR9xzzz3d+PHjc9/UiFesy4e354gRI9yCBQs8VZwlBg8e7JeQyn6nyIWc9wmmJE+dOtVNnjzZv28Ql3cOpsRXOliXD77WddS6fNZ11Lp8aSiDserxmg6PggiUlUDNi/uGgw8+2P89/PDDeX+rZt1MH++II47YUNNJ2SxujdEz86xrrrlms+uVOnHaaaf5dNUYLTfUeHrmTEbNaPSG4cOH+7g//elPN4tX4xG6YdCgQf76oYceuqFmxHqzOJU4YV0+6zpqXT7KhHUdtS6fdHRTza52IpntoHUdtS4fJezYY4/1/auaNeU3zJ8/f1Ohq+dRzUZJG8455xz/LPq3jz/+eD2fUJ7o1uWrcRLIMK8xZG+grmxomDFjxoZDDjnEP69mVlZRz2poGureZ10+5LWuo9bls66j1uVL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ZVmmOAPX4T6WXzrssMPc8ccf72f4hPNJ+7QuH165999/vzfEsKFH3ICTBYbPAQMGJGYWWVTarcuHzNZ11Lp81nXUunxpKINRdSvnZADNRUbny0YA1+uFCxe6N9980/3jH//wI69MQeratavba6+9In8XrwSmGjE1Kelh/fr13gCKfPyRdqb649XZvXv3nB1mpudsu+22SRfPWZePDLCuo9bls66j1uVLQxm0nofW5UuDjlpvJ8hDAlPcmdrOH14xH330kZ8yjSG4VatWfjCaadWhn4oBtJqCdfnIi6VLlzqWyGJpA6a78/fxxx/7WVY4E7Rt29ZPjycPmSpfDe8S2TpmXT7rOmpdPpXB6q9j0qCj2XWqDKDZNHQsAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiJgioB2gTeVnRJGBERABERABERABERABERABERABERABERABEQgm0Dz7C86FgEREAEREAEREAEREAEREIE0EPj000/9VGk22KxPYIp8WHuSKdb8JTFYlw/m7CvAru/1DR9++GFm89EkL0FlXT7rOmpdPpXB3DVPtdQxadDR7FySATSbho5FQAREQAREQAREQAREQATMEmCtz9tuu81vgMRa7az12a1bN9ezZ0934oknui222KKg7K+//ro744wzfLzTTz/dDRkypOA9jRXBunxwnD59ut8AKazdylr7e+65pzvmmGMcG6bGCZdffrmbMWOGj/r000/HuaXR4liXz7qOWpePgmBdR63LlwYdzVVhywCai4zOi4AIiIAIiIAIiIAIiIAImCHw3HPPuZ///OcZ700EY9Oc2bNn+78pU6a4Cy64ILYRLWlgrMu3du1ad80117ipU6fWQs+mqvxNmzbNDRo0yJ155pmxDNm1HpKAL9blA7F1HbUun3UdtS5fGspgoapca4AWIqTrIiACIiACIiACIiACIiACVU1g+fLlbuTIkbWMn506dfI7vQfB2El82LBh7s477wynqubTunxkxPjx42sZP/He3X777TN5tGHDBnffffc5vHKXLFmSOV8tB9bls66j1uWjHFnXUevypUFHC9X38gAtREjXRUAEREAEREAEREAEREAEqprADTfc4NatW+dl6N+/vxs+fLjr2LGjw2i2cOFC96tf/crNmTPHf7/11lsd66KFae7VILh1+V599VX34IMP+qwg337y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vviif0S3bt2KeVRJ7rUuH5Cs66h1+azrqHX50lAGreehdfnSoKNqJ8jl+EF9tfisShXTuo5al896O2FdPsqxdR21Ll8adDROe9PskpoQJ6LiiEBDCeyyyy7uoYce8obBp556ymG4ZEOk4BIe97mvvvqqGzVqlPvb3/7mbxk8eLDr1atX3NvLFq9du3Zu2bJljvSxZifp22233VzHjh3r9Zu4xt93333uuuuu8/d16NDB1ewI79q2bVuv55Q6snX54GVdR63LZ11HrcuXhjJoPQ+ty5cGHVU7QS4XDuqrFWZUrhjWddS6fNbbCevyUa6t66h1+dKgo3HanyZsFR8nouKIQDEEJkyY4MaNG5d5BIvm9uzZ0xsK8eLEWMiumi1btvTT2z/55BO3Zs0av97P4sWL3dy5c90bb7yRub93795u9OjRRe0on3lYCQ5WrFjhhg8f7t55553M03beeWe33377+Sk7nTp1cm3atPEyYvhFPjrRK1eudMuXL3eLFi1y8+bN8zLzAOJce+21nlHmgRU8sC4faK3rqHX5rOuodfnSUAat56F1+dKgo2on1FdLcl9UZVDvS3pfohRUNlhvJ6zLl4a+WqESIgNoIUK6XjICTBcaM2aMN/4V89A+ffp4T1AWFk5S+OCDD9zIkSMzuxk3NG14yI4YMcL179+/oY8oy33W5QOadR21Lp91HbUuXxrKoPU8tC5fGnRU7QS5XDior1aYUbliWNdR6/JZbyesy0e5tq6j1uVLg47ma39kAM1HR9dKTgCPx/vvv99XnCzAGze0aNHCYfgcMGCA69u3b9zbKhJv5syZ7p577vHreIbNmuIkpEuXLu6www5zxx9/fL2nz8d5fqniWJfPuo5alw89t66j1uWTjuaurdVO5GbTmFes66h1+dAV6/Wodfms66h1+VQGc7dY1dLOW9dR6/KloQzmKmUygOYio/NlJ8CO6QsWLPDTxpnuzt/HH3/smjdv7pgiz9qXTI9nKjlrajKFvJoCU9yZqsEfIy0fffSRl5FNklq1auVlZOo/8nXt2tXR4FVTsC4feWFdR63LZ11HrcuXhjJoPQ+ty5cGHVU70doPSquvhrYnM1jXUevyWW8nrMtHrWBdR63LlwYdzW69ZADNpqFjERABERABERABERABERABERABERABERABERABUwSampJGwoiACIiACIiA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" width="672" /></p>
<div class="sourceCode" id="cb38"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb38-1"><a href="#cb38-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_OLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span></code></pre></div>
</div>
<div id="wls-no-trends-5" class="section level2" number="10.2">
<h2 number="10.2"><span class="header-section-number">10.2</span> WLS, no trends</h2>
<div class="sourceCode" id="cb39"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb39-1"><a href="#cb39-1" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimation</span></span>
<span id="cb39-2"><a href="#cb39-2" aria-hidden="true" tabindex="-1"></a>estimation_results  <span class="ot">&lt;-</span> <span class="fu">dynamic_DID_jukyo_WLS_covar8Xcovid_months</span>(<span class="at">dataset =</span> df_analysis, </span>
<span id="cb39-3"><a href="#cb39-3" aria-hidden="true" tabindex="-1"></a>                    <span class="at">outcome_var =</span> df_analysis<span class="sc">$</span>jukyo_number, </span>
<span id="cb39-4"><a href="#cb39-4" aria-hidden="true" tabindex="-1"></a>                    <span class="at">treat_var =</span> df_analysis<span class="sc">$</span>job_seeker_total_shock)</span>
<span id="cb39-5"><a href="#cb39-5" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb39-6"><a href="#cb39-6" aria-hidden="true" tabindex="-1"></a><span class="co">#texreg::screenreg(l = estimation_results , include.ci = FALSE, digits=3,)</span></span>
<span id="cb39-7"><a href="#cb39-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb39-8"><a href="#cb39-8" aria-hidden="true" tabindex="-1"></a><span class="co"># DID estimates and 90% CI</span></span>
<span id="cb39-9"><a href="#cb39-9" aria-hidden="true" tabindex="-1"></a>df_estimates <span class="ot">&lt;-</span> <span class="fu">DID_coefficients_jukyo</span>(<span class="at">DID_results =</span> estimation_results, </span>
<span id="cb39-10"><a href="#cb39-10" aria-hidden="true" tabindex="-1"></a>                                         <span class="at">treat_var =</span> <span class="st">&quot;job_seeker_total_shock&quot;</span>,</span>
<span id="cb39-11"><a href="#cb39-11" aria-hidden="true" tabindex="-1"></a>                                 <span class="at">estimation_label =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb39-12"><a href="#cb39-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb39-13"><a href="#cb39-13" aria-hidden="true" tabindex="-1"></a><span class="co"># Event study graph</span></span>
<span id="cb39-14"><a href="#cb39-14" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_jukyo</span>(<span class="at">data =</span> df_estimates,</span>
<span id="cb39-15"><a href="#cb39-15" aria-hidden="true" tabindex="-1"></a>                                                <span class="at">graph_title =</span> <span class="st">&quot;jukyo_number_WLS&quot;</span>)</span>
<span id="cb39-16"><a href="#cb39-16" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_covar</span></code></pre></div>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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ECAwAQGBRgI///nPY9q0adWiKVOmxLLLLls9H46DSy65JJ588snqrdddd91YccUVq+cOCIwVgW789zna7e+555645pprah7z7W9/e0yaNKkmr5WT6dOnxw9/+MPo6empqb7KKqvEWmutVZPX6skvfvGLeOaZZ6rVl1hiidh4442r5//85z/jxhtvrJ7nwTbbbBMTJ06syZvZJ3fddVdcfPHF8Yc//CEefvjhePTRR+OJJ56I+eabLxZZZJHyzxvf+MbYdNNNY/31148JE/y/KTP7nWifAAECBAgQIECAwFgQGFf6D7Da/wIbC0/tGfsVyMDinXfeWa13zjnnxHbbbVc9H46DyZMn1/wH/Le+9a349Kc/PRxdcU8CwyrQjf8+hxWkAze/6aabYo011qi50wknnBBf/OIXa/JaObn22msj/6hUnzJg+etf/7o+u9/zF154oRxAfOWVV6p1999//zj66KOr50ceeWQcdNBB1fM8eOqpp8rX1WTOpJMLLrggDjvssLjllltavsP8888f2267bXz5y1+OhRdeuOXrVCRAgAABAgQIECBAgEC9gCnw9SLOCRAgQIBAncDqq69eHp1YzK4fEVos6+v40ksvbVic7T377LMNy/rKvO6666IY/My67373u/u6pGNl+Ye0t73tbbH11lsPKPiZHcwA7WmnnRYrrbRS+bNjnXYjAgQIECBAgAABAgRGnYAA6Kh7pR6IAAECBNotMG7cuMgp78XU7gDoyy+/HFdddVXxFi0d/+53v6upN9dcczUcYVpTqQMnDzzwQNmsvn8DvfV///vf+OxnPxsHH3zwQC9VnwABAgQIECBAgAABAmUBAVBfBAIECBAg0ILAO9/5zppauX7lHXfcUZPX38njjz8ef/nLX6rVxo+v/T/DzUaHVi9ocPDb3/62JnejjTaKWWedtSav0yc5kvU973lP3H///b1uveGGG5ZHdOa6pX/961/La4Hedtttcfnll8eZZ54Zn/zkJxuu/XnEEUfEqaee2qs9GQQIECBAgAABAgQIEOhPwO4C/QmN0fKdd965vDFF5fFzcw6JAAECY1ngHe94R6/Hz1GgA9mMLYN8M2bMqLbz0Y9+NH7wgx9UzwcaAM1Ro9dff331+jzohunvp59+eq8p7//v//2/OPnkk+Mtb3lLTX/zZLHFFitPdc/jnXbaKQ455JA4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zjqrclr+7G/6e6XyjjvuWN7UpHKenxnQrJ+GXCwvHp922mnlneiLeVtvvXXNSNdi2Wg87tbvWjdY5x8UcnRlLpPQXzr66KNrphLnZjv5b6M+vfWtb41tt922JjtHjuYal62kDNjl97aYNt1001hxxRWLWaPieO655463vOUt1WepHwG6zDLLxBve8IZqeasHxaDpP//5z5qN2dIx2+3G9KUvfalXt4444oj47Gc/W/Pd61WpQUYuKfDBD36w1/dun3326RW0b3C5LAIECBAgQIAAAQIECJQFBEB9EYYkkIG9Ynr++edjiy22iJx23iwdf/zxsfvuuzcrbkt+TmGvD75kn3K39lanwuc0+mKAM6dfFkeRLrTQQtHqFPS55por9t9//5pny01o1lprrehrbcW857777htf+MIXaq7NwOxAR+PVNDACT7r1u9YtlJdffnnstttukaOFG6X8Lu2xxx5x3HHH1RTn9yi/y41S/lvN4F4l5b+dnMre35T7HCmdwbvnnnuucmn58/Of/3zN+Wg6KW5a9Oc//7lmo7RiIHMgz1y8Li2vueaa6uXtmP6ef4AZys+0adOq/Ske5B+Pir87K2X5OzkDt8ccc0x5NH0lv/4zv2f5Hfr6179e3owrR5AWU25+t/322xezHBMgQIAAAQIECBAgQKBPAQHQPnkU9ieQUz/rpyHmWoH5H6g5Wix3js6NO/74xz/GKaecEquuumo5oJcj1TLAmDuoz6yUwcmPfOQjNc1nPzKo02rKgGlxPdHizuMf/ehHo35jnr7azRFLm2yySU2V3NBk/fXXL08PvfLKK8ujZ9MmR6p+//vfjwwkZH+Lm0Pl5k/nnntu5A7QYyl183dtuN9D5Tt6xhlnxJQpU+InP/lJ5Mi5TA888EA5YJkBupNPPrmmq7nxUV9/jJg0aVIccsghNdfkCO/87ue/rVwWorKbfP6BIZfAyCDnGmusEY888kjNdV/84hd7TY2uqTDCT4oB0PqRuMVA5kAe821ve1vNxknF3wODbbN4/9xELXdXH+xPru/aLH37299uuO5pLqWQI0RzROzKK68cuTxIBu5zivvHPvaxyCn0GXTP8j333DNyHdliyu/kr371qwH97i1e75gAAQIECBAgQIAAgbEpMGFsPranbqdAjlCsH42Tu5V/5jOf6fM2hx9+eLzwwguRuxtXUiWQUzkf6uc3vvGNuOKKK+KJJ56oNpVTz3N9wwzS9peWXXbZyCBEBnXrUwZHB5Ly2TJwmffONRsrKQNHOT00fzLl7vPp0ijlSNLc5CmDpmMxdfN3bTjfx5FHHhkHHHBAuQs5/XqrrbYqH88zzzzRbJRerl374x//uN9AUgah8g8Z9aM+zz///MifTBmwyhGKxQBdueD//ifX0x3IHx6K146U43XWWScaeecmaPWbJLX6TPm7YIMNNiivn1q8JtcbbbTZULHOcB/nc+f3K5fqyIBlo3TbbbdF/rSallhiibj44osjA7cSAQIECBAgQIAAAQIEBiJgBOhAtNRtKPDxj3+8PK02Rya2kvI/3nMKZCemcL/uda+Lr33tazXdyg01MnjZ6lT4+s2QsrEc9br22mvXtNvKSa63eNVVV0VuOtMs2Nss+JmjZzO4laPvxmrq5u/acL6THMWZ63jWf6eaBT9XX3318nTqHKnZX8p/r+edd17kHyxyt/hGKUebNgp+zj777LHXXnuVg/b1fWvUzkjOy4Bfo6Bkrg2aS3IMNjUa6bneeuuVg62DbbNT12Vg/JJLLikHQnNTp8Gm8ePHl5dvyJHxrXxnB3sf1xEgQIAAAQIECBAgMHoFBEBH77vt6JPl9O5cy3KzzTaLDAQ0ShkgzV3Tr7322thvv/0aVZkpeTmtMu9bTBlIrF8LsVhePM7RdDmyq5garW9XLO/rOKfNn3766XHjjTeW10vNUV7NUgaNchp8jhzNzWfqNwJqdt1ozu/m79pwuh9WGtmc64D2FSDKtWNzB/gc0bn88ssPqLu5i3fu5v7pT3+66ZqhlQYz8JnrjeYSD7lubqt/HKlcP1I/i9PgK89Qv+xFJb/Vz0YB0Has/9nq/dtRb8sttywv65GbyOWI0FaX78jvaI76zt+VuR5o/e/hdvRNGwQIECBAgAABAgQIjA2BcaVROz1j41E95UAEcqOKO++8s3rJOeecE9ttt131vK+DXCMw17PMtQEfe+yxWHjhhcs7sudU8ly/baSl3FRm8cUXr06jzwDv/fffH4sttlhbHiWnwOcO8+md693lCNUcLZXBqhz1WdyJvi03HEWNjLbvWrteTe7AfsMNN5TX/8w2c+rw5MmTI6dptyPlGpcZkM/lK/LfeL6H/Pew3HLLVX9yuQaJQCOB3JArvz8PPvhg+fuT64LmMiVzzjln+XuUv29zDdD69aUbtSWPAAECBAgQIECAAAECrQgIgLaiNAbr5NqX9957b/XJc/2/bbbZpno+lg5yo5fcqKOSNt988/LmL5VznwQIECBAgAABAgQIECBAgAABAt0rYAp8976bYe3Z008/XXP/vnb7rak4Ck+++93v1jzVTjvtVHPuhAABAgQIECBAgAABAgQIECBAoHsFBEC7990Ma8+eeeaZmvvnNPaxmHIaf27iUUk5lbh+PdFKmU8CBAgQIECAAAECBAgQIECAAIHuExAA7b53Muw9yp1263dIX2ihhYa9X53uQK7NmRu+5Hp1lZS7bY+VDV0qz+yTAAECBAgQIECAAAECBAgQIDCSBRpv1z2Sn0jfhyzwzW9+s6aN+eabr7wJUE3mKDu59dZb46mnnipvvDFt2rT44x//GCeffHL87ne/qz7pvPPOG7vttlv13AEBAgQIECBAgAABAgQIECBAgED3CwiAdv87muk9PP744+PCCy8s79582223lXfnLd50yy23jIkTJxazRt3xNddcE/2t7XnwwQdHBoO7MX3/+98v7yLfqb6l1etf//pO3c59CPQS8J3vRSKDAAECBAgQIECAAAECBJoICIA2gRlL2VdeeWVcf/315Z/65x43blx88pOfrM8edef9BfPWX3/92Guvvbr2uX/wgx/E5Zdf3rH+vec97xEA7Zi2GzUS8J1vpCKPAAECBAgQIECAAAECBBoJWAO0kcoYyuvp6Ykbbrih4RPPPvvs8cMf/jA22GCDhuWjKXPppZdu+jhvectb4qKLLorx4/1zaYqkgAABAgQIECBAgAABAgQIECDQpQJGgHbpi+lUtx577LFYc8014+67744HH3wwcsTnyiuvHJMnT47PfOYzsd5663WqK8N6nxwB+sEPfjBuvPHGuPfee2PChAmx4oorxq677ho777xzzDHHHMPav/5u/uEPf7j8Hvur167yJZZYol1NaYfAoAR85wfF5iICBAgQIECAAAECBAiMSYFxpRGAPWPyyT10L4GXXnopZsyY0fXBvl4db3NGboI055xz2u29za6aI0CAAAECBAgQIECAAAECBAgMh4AA6HCouycBAgQIECBAgAABAgQIECBAgAABAh0RsKhhR5jdhAABAgQIECBAgAABAgQIECBAgACB4RAQAB0OdfckQIAAAQIECBAgQIAAAQIECBAgQKAjAgKgHWF2EwIECBAgQIAAAQIECBAgQIAAAQIEhkNAAHQ41N2TAAECBAgQIECAAAECBAgQIECAAIGOCAiAdoTZTQgQIECAAAECBAgQIECAAAECBAgQGA4BAdDhUHdPAgQIECBAgAABAgQIECBAgAABAgQ6IiAA2hFmNyFAgAABAgQIECBAgAABAgQIECBAYDgEBECHQ909CRAgQIAAAQIECBAgQIAAAQIECBDoiIAAaEeY3YQAAQIECBAgQIAAAQIECBAgQIAAgeEQEAAdDnX3JECAAAECBAgQIECAAAECBAgQIECgIwICoB1hdhMCBAgQIECAAAECBAgQIECAAAECBIZDQAB0ONTdkwABAgQIECBAgAABAgQIECBAgACBjggIgHaE2U0IECBAgAABAgQIECBAgAABAgQIEBgOAQHQ4VB3TwIECBAgQIAAAQIECBAgQIAAAQIEOiIgANoRZjchQIAAAQIECBAgQIAAAQIECBAgQGA4BARAh0PdPQkQIECAAAECBAgQIECAAAECBAgQ6IiAAGhHmN2EAAECBAgQIECAAAECBAgQIECAAIHhEJgwHDd1z+4S2HPPPePee++tdurcc8+NOeecs3rugAABAgQIECBAgMBoFjjjjDOip6en1yO+733viyWXXLJXvgwCBAgQIEBgZAkIgI6s9zVTevub3/wmbrrppmrbr7zySvXYAQECBAgQIECAAIHRLnDiiSc2DICuttpqAqCj/eV7PgIECBAYEwICoDPxNT/33HPx2c9+Np588snYYIMNYp999un3bg8++GCcffbZcdttt0UeL7LIIpH/j9fqq68eb3/722OOOebotw0VCBAgQIAAAQIECBAgQIAAAQIECBB4TUAAdCZ+E0466aS46667ynd49tln+73TeeedF6effnpMnz69Wve+++6L/Ln44ovjoosuiuOPPz7mmWeearkDAgQIECBAgAABAgQIECBAgAABAgSaC9gEqbnNkEp+/etfx2WXXdZyGxngPO2008rBz1lnnTU22WST2HvvvWP77beP5ZdfvtzOzTffHLvvvnt5RGnLDatIgAABAgQIECBAgAABAgQIECBAYAwLGAE6E17+o48+GieccELLLf/3v/+NXHco01xzzRVHH310TJ48uXr9DjvsEEcccURcddVVcffdd8dZZ50Ve+21V7XcAQECBAgQIECAAAECBAgQIECAAAECjQWMAG3sMujc3D3yqKOOimnTprW8XucFF1wQL7/8cvmeu+22W03wMzMnTJgQhxxySKy88srlOpdeemk8//zz5WP/Q4AAAQIECBAgQIAAAQIECBAgQIBAcwEB0OY2gyo5//zz4y9/+UuMGzcuPve5z1XbyPNmKae/Z8oNjjbddNOG1caPHx/bbLNNueyFF16IDIJKBAgQIECAAAECBAgQIECAAAECBAj0LSAA2rfPgErvvPPOOOOMM8rXbLvttrHGGmv0e/3DDz9cXdMzp71PnDix6TVrr712tezyyy+vHjsgQIAAAQIECBAgQIAAAQIECBAgQKCxgABoY5cB5+YU9sMPPzxeeeWVWGGFFeJTn/pUS23kxkaVlNf1lRZYYIFYaKGFylVyLVCJAAECBAgQIECAAAECBAgQIECAAIG+BQRA+/ZpufRb3/pW3HPPPeURnAcffHCfIzmLjT7wwAPV00mTJlWPmx0suuii5aKcBv/44483qyafAAECBAgQIECAAAECBAgQIECAAIGSgF3g2/A1+NOf/hS5kVGmXXbZJZZbbrmWW33uueeqdXOEZ39p/vnnr1Z55plnYuGFF66eNzvYdddd4/77729WHC+99FIsvfTSkcHY6dOnN62ngAABAgQIECBAgAABAgQIECBAgMBIExAAHeIbyyDkkUceWW4l1/CsbFTUarPFAOhss83W72XFOi+++GK/9bPCfffdF/1Nmc92+9qoqaUbqUSAAAECBAgQIECAAAECBAgQIECgywRMgR/iCznuuOPiiSeeiLnmmisOPPDAAQcRn3/++WoPZp111upxs4NinRy5KREgQIAAAQIECBAgQIAAAQIECBAg0FxAALS5Tb8ll1xySfz2t78t19tzzz2jsj5nvxcWKkyY8L9BuK1MPy/WKQZDC006JECAAAECBAgQIECAAAECBAgQIEDg/wT+F31DMiCBhx56KL72ta+Vr9loo41ik002GdD1lcpzzDFH5TByJ/n+UnHUZ446bSVdeOGFMWPGjKZV11tvvfjnP/8ZPT09TesoIECAAAECBAgQIECAAAECBAgQIDASBQRAB/HWchTmV77ylcid2Oedd97ITYamTZvWq6Xi+p6vvPJKtc4ss8wSc845Z7l+MYhZrN+rsf/LKE6ZL17brH7mF4Osjerl2p+Cn41k5BEgQIAAAQIECBAgQIAAAQIECIx0AQHQQbzBp59+ujxiMi/NTZA+8pGP9NvK7373u8ifTGuuuWacfPLJ5eNJkyaVP/N/Hn300epxs4NKnQyiZvBVIkCAAAECBAgQIECAAAECBAgQIECguYA1QJvbdKRkmWWWqd7nwQcfrB43Onj11VfjP//5T7loueWWi+KO8I3qyyNAgAABAgQIECBAgAABAgQIECAw1gWMAB3EN2D22WeP7bffvt8rc6Toz3/+83K9DHRuuOGG5ePiqM8VVlghJk6cGDlF/sYbb+yzzVtuuaVcLyutssoqfdZVSIAAAQIECBAgQIAAAQIECBAgQIBAhADoIL4FuX7nzjvv3O+V//73v6sB0OWXX77hNdnWuuuuG3/4wx/innvuidtvvz1WWmmlhm1fdtll1fz111+/euyAAAECBAgQIECAAAECBAgQIECAAIHGAqbAN3bpaO5mm21Wvd/xxx9f3Sypmlk6uO666+Liiy8uZy277LKRO7dLBAgQIECAAAECBAgQIECAAAECBAj0LWAEaN8+HSmdMmVKeRToDTfcELfeemvssccesfvuu8dqq61W3mTp6quvjlNPPTVy9/ncsT13nc9PiQABAgQIECBAgACBoQu84x3viBkzZvRqaKGFFuqVJ4MAAQIECBAYeQICoF3yzg455JA47LDD4k9/+lPceeedseeee0bu9J5Bz2LKwKjp70URxwQIECBAgAABAgSGJpCDDSQCBAgQIEBg9AqYAt8l73beeeeNE044IT7+8Y/HPPPMU+5VMfiZu74fd9xxsfXWW3dJj3WDAAECBAgQIECAAAECBAgQIECAQPcLjOsppe7v5tjr4UMPPRR33HFHzDbbbLHUUkvF4osvHuPHz5x49RprrBE33XRTFfmpp56K+eabr3rugAABAgQIECBAgAABAgQIECBAgMBIFTAFvkvf3KRJkyJ/JAIECBAgQIAAAQIECBAgQIAAAQIEBi8wc4YUDr4/riRAgAABAgQIECBAgAABAgQIECBAgEDbBARA20apIQIECBAgQIAAAQIECBAgQIAAAQIEuk3AFPhueyP6Q4AAAQIECBAgQIAAAQIECIwKgXPOOSfuvPPOps+y4oorxnbbbde0XAEBAu0REABtj6NWCBAgQIAAAQIECBAgQIAAAQI1AhkAveyyy2ryiiebbLKJAGgRxDGBmSRgCvxMgtUsAQIECBAgQIAAAQIECBAgQIAAAQLDL2AE6PC/Az0gQIAAAQIECBAgQIAAAQIERqHAAQccEDvssEP5yXbaaad49tlnY5555okzzzyznLf44ouPwqf2SAS6T2BcTyl1X7f0qJMCa6yxRtx0003VWz711FMx33zzVc8dECBAgAABAgQIECBAgAABAkMTWHjhheOJJ56I/HzssceG1liXXH377bfH3//+96a9GTduXGy11VZNyxUQ6JSAEaCdknYfAgQIECBAgAABAgQIECBAgMAoErjoooti7733bvpE48ePj+nTpzctV0CgUwLWAO2UtPsQIECAAAECBAgQIECAAAECBAgQINBxASNAO07uhgQIECBAgAABAgQIECBAgACBkS+w3nrrxcEHH1x+kAsvvDBuvvnm8nGud5rrm+YIUIlANwgIgHbDW9AHAgQIECBAgAABAgQIECBAgMAIE1h//fUjfzLdcccd1QDoZz7zmZg8efIIexrdHc0CQvGj+e16NgIECBAgQIAAAQIECBAgQIAAAQJjXEAAdIx/ATw+AQIECBAgQIAAAQIECBAgQIAAgdEsIAA6mt+uZyNAgAABAgQIECBAgAABAgQIECAwxgUEQMf4F8DjEyBAgAABAgQIECBAgAABAgQIEBjNAgKgo/ntejYCBAgQIECAAAECBAgQIECAAAECY1xAAHSMfwE8PgECBAgQIECAAAECBAgQIECAAIHRLCAAOprfrmcjQIAAAQIECBAgQIAAAQIECBAgMMYFBEDH+BfA4xMgQIAAAQIECBAgQIAAAQIECBAYzQICoKP57Xo2AgQIECBAgAABAgQIECBAgAABAmNcYMIYf36PT4AAAQIECBAgQIDAGBe49tpro6enp5fCqquuGvPPP3+vfBkECBAgQIDAyBIQAB1Z70tvCRAgQIAAAQIECBBos8COO+7YMAA6derUmDJlSpvvpjkCBAgQIECg0wKmwHda3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYgABox6jdiAABAgQIECBAgAABAgQIECBAgACBTgsIgHZa3P0IECBAgAABAgQIECBAgAABAgQIEOiYwISO3cmNCBAgQIAAAQIECBAg0IUCa621VvT09PTq2TzzzNMrTwYBAgQIECAw8gQEQEfeO9NjAgQIECBAgAABAgTaKHDuuee2sTVNESBAgAABAt0mYAp8t70R/SFAgAABAgQIECBAgAABAgQIECBAoG0CAqBto9QQAQIECBAgQIAAAQIECBAgQIAAAQLdJiAA2m1vRH8IECBAgAABAgQIECBAgAABAgQIEGibgABo2yg1RIAAAQIECBAgQIAAAQIECBAgQIBAtwkIgHbbG9EfAgQIECBAgAABAgQIECBAgAABAgTaJiAA2jZKDREgQIAAAQIECBAgQIAAAQIECBAg0G0CAqDd9kb0hwABAgQIECBAgAABAgQIECBAgACBtgkIgLaNUkMECBAgQIAAAQIECBAgQIAAAQIECHSbgABot70R/SFAgAABAgQIECBAgAABAgQIECBAoG0CAqBto9QQAQIECBAgQIAAAQIECBAgQIAAAQLdJiAA2m1vRH8IECBAgAABAgQIECBAgAABAgQIEGibgABo2yg1RIAAAQIECBAgQIAAAQIECBAgQIBAtwkIgHbbG9EfAgQIECBAgAABAgQIECBAgAABAgTaJiAA2jZKDREgQIAAAQIECBAgQIAAAQIECBAg0G0CAqDd9kb0hwABAgQIECBAgAABAgQIECBAgACBtgkIgLaNUkMECBAgQIAAAQIECBAgQIAAAQIECHSbgABot70R/SFAgAABAgQIECBAgAABAgQIECBAoG0CAqBto9QQAQIECBAgQIAAAQIECBAgQIAAAQLdJiAA2m1vRH8IECBAgAABAgQIECBAgAABAgQIEGibgABo2yg1RIAAAQIECBAgQIAAAQIECBAgQIBAtwkIgHbbG9EfAgQIECBAgAABAgQIECBAgAABAgTaJiAA2jZKDREgQIAAAQIECBAgQIAAAQIECBAg0G0CAqDd9kb0hwABAgQIECBAgAABAgQIECBAgACBtglMaFtLGiJAgAABAgQIECBAgMAIFPjXv/4VPT09vXr++te/Puaee+5e+TIIECBAgACBkSUgADqy3pfeEiBAgAABAgQIECDQZoEPfehDDQOgU6dOjSlTprT5bpojQIAAAQIEOi1gCnynxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCQiAdozajQgQIECAAAECBAgQIECAAAECBAgQ6LSAAGinxd2PAAECBAgQIECAAAECBAgQIECAAIGOCUzo2J3ciAABAgQIECBAgAABAl0osOyyy0ZPT0+vns0xxxy98mQQIECAAAECI09AAHTkvTM9JkCAAAECBAgQIECgjQK/+tWv2tiapggQIECAAIFuEzAFvtveiP4QIECAAAECBAgQIECAAAECBAgQINA2AQHQtlFqiAABAgQIECBAgAABAgQIECBAgACBbhMQAO22N6I/BAgQIECAAAECBAgQIECAAAECBAi0TUAAtG2UGiJAgAABAgQIECBAgAABAgQIECBAoNsEBEC77Y3oDwECBAgQIECAAAECBAgQIECAAAECbRMQAG0HDDPjAABAAElEQVQbpYYIECBAgAABAgQIECBAgAABAgQIEOg2AQHQbnsj+kOAAAECBAgQIECAAAECBAgQIECAQNsEBEDbRqkhAgQIECBAgAABAgQIECBAgAABAgS6TUAAtNveiP4QIECAAAECBAgQIECAAAECBAgQINA2AQHQtlFqiAABAgQIECBAgAABAgQIECBAgACBbhMQAO22N6I/BAgQIECAAAECBAgQIECAAAECBAi0TUAAtG2UGiJAgAABAgQIECBAgAABAgQIECBAoNsEBEC77Y3oDwECBAgQIECAAAECBAgQIECAAAECbRMQAG0bpYYIECBAgAABAgQIECBAgAABAgQIEOg2AQHQbnsj+kOAAAECBAgQIECAAAECBAgQIECAQNsEBEDbRqkhAgQIECBAgAABAgQIECBAgAABAgS6TUAAtNveiP4QIECAAAECBAgQIECAAAECBAgQINA2AQHQtlFqiAABAgQIECBAgAABAgQIECBAgACBbhMQAO22N6I/BAgQIECAAAECBAgQIECAAAECBAi0TUAAtG2UGiJAgAABAgQIECBAgAABAgQIECBAoNsEBEC77Y3oDwECBAgQIECAAAECBAgQIECAAAECbRMQAG0bpYYIECBAgAABAgQIECBAgAABAgQIEOg2AQHQbnsj+kOAAAECBAgQIECAAAECBAgQIECAQNsEJrStJQ0RIECAAAECBAgQIEBgBAo8/PDDDXu94IILxmyzzdawTCYBAgQIECAwcgQEQEfOu9JTAgQIECBAgAABAgRmgsDGG28cPT09vVqeOnVqTJkypVe+DAIECBAgQGBkCZgCP7Lel94SIECAAAECBAgQIECAAAECBAgQIDAAAQHQAWCpSoAAAQIECBAgQIAAAQIECBAgQIDAyBIQAB1Z70tvCRAgQIAAAQIECBAgQIAAAQIECBAYgIAA6ACwVCVAgAABAgQIECBAgAABAgQIECBAYGQJCICOrPeltwQIECBAgAABAgQIECBAgAABAgQIDEBAAHQAWKoSIECAAAECBAgQIECAAAECBAgQIDCyBARAR9b70lsCBAgQIECAAAECBAgQIECAAAECBAYgIAA6ACxVCRAgQIAAAQIECBAgQIAAAQIECBAYWQICoCPrfektAQIECBAgQIAAAQIECBAgQIAAAQIDEJgwgLqqEiBAgAABAgQIECBAgAABAgTaJrDzzjtHT09P0/a22WabeNe73tW0XAEBAgRaERAAbUVJHQIECBAgQIAAAQIECBAgQKDtAt/5znf6DICussoqAqBtV9cggbEnYAr82HvnnpgAAQIECBAgQIAAAQIECBAgQIDAmBEwAnTMvGoPSoAAAQIECBAgQIAAAQIEukvg97//fXkE6G233RY77bRTuXPvfOc749BDDy0fL7fcct3VYb0hQGBECgiAjsjXptMECBAgQIAAAQIECBAgQGDkC0yZMqX8EHPOOWf1YV73utfFW9/61uq5AwIECAxVwBT4oQq6ngABAgQIECBAgAABAgQIECBAgACBrhUQAO3aV6NjBAgQIECAAAECBAgQIECAAAECBAgMVUAAdKiCridAgAABAgQIECBAgAABAgQIECBAoGsFBEC79tXoGAECBAgQIECAAAECBAgQIECAAAECQxUQAB2qoOsJECBAgAABAgQIECBAgAABAgQIEOhaAQHQrn01OkaAAAECBAgQIECAAAECBAgQIECAwFAFBECHKuh6AgQIECBAgAABAgQIECBAgAABAgS6VmBC1/ZshHXs6aefjvPPPz9uu+22eOCBB+Lxxx+PSZMmxVJLLRVrrLFGbLHFFjFx4sR+n+rBBx+Ms88+u9xOHi+yyCKx2mqrxeqrrx5vf/vbY4455ui3DRUIECBAgAABAgQIECBAgAABAgQIEHhNQAC0Dd+ECy64IKZOnRrPPvtsTWv33ntv5M/vf//7+PnPfx777LNPTJ48uaZO8eS8886L008/PaZPn17Nvu+++yJ/Lr744rjooovi+OOPj3nmmada7oAAAQIECBAgQIAAAQIECBAgQIAAgeYCAqDNbVoqufzyy+Mb3/hGte66665bHvG58MILl0eC/u53vysHQe+///7Ye++949vf/nYsu+yy1fqVgwxwnnbaaeXTWWedtTzaM0d+Pvroo3HNNdfEXXfdFTfffHPsvvvucdJJJ8WCCy5YudQnAQIECBAgQIAAAQJDEFhggQVixowZvVpoZQZXr4tkECBAgAABAl0nIAA6hFfy0EMPxQknnFBuYZZZZonDDz88Ntxww5oWd9hhhzjllFPiJz/5Sbz88svlOmeeeWZMmPA/+v/+979x4oknlq+ba6654uijj64ZKZptHHHEEXHVVVfF3XffHWeddVbstddeNfdxQoAAAQIECBAgQIDA4ASuu+66wV3oKgIECBAgQGBECNgEaQivKQOSL7zwQrmFbbfdtlfwMwsy0Pm5z30uVl555XK9O++8s7y+Z/nk//4np9BncDTTbrvtVhP8zLxs45BDDqm2cemll8bzzz+fRRIBAgQIECBAgAABAgQIECBAgAABAn0ICID2gdNf0Y033lit8oEPfKB6XH+Qo0M32mijavbtt99ePc6DnP6eKTc42nTTTcvH9f8zfvz42GabbcrZGXTNIKhEgAABAgQIECBAgAABAgQIECBAgEDfAgKgffv0WZrrcK6yyirlnd4XXXTRPusutNBC1fLHHnusevzwww/Hk08+WT7PDZL6Wmdo7bXXrl6Xa49KBAgQIECAAAECBAgQIECAAAECBAj0LfC/hSj7rqe0gcCBBx7YILdxVk59r6Tll1++clje2KhyssIKK1QOG37m4uwZSH3iiSfKa4E2rCSTAAECBAgQIECAAAECBAgQIECAAIGqgABolWLmHeR6ncURm2984xurN3vggQeqx5MmTaoeNzvIkaYZAM1p8I8//njkbvP9pZtuuilefPHFptVyx8ucfp91enp6mtZTQIAAAQIECBAgQIAAAQIECBAgQGCkCQiAduCN5a7tudN7pnXWWSeKgc7nnnuu2oMc4dlfmn/++atVnnnmmZYCoPvtt1+/I0aXWmqpcp1XX3212r4DAgQIECBAgAABAgQIECBAgAABAiNdwBqgM/kNXnLJJXHeeeeV7zLnnHPGvvvuW3PHYgB0ttlmqylrdFKs09eozkbXyiNAgAABAgQIECBAgAABAgQIECAw1gQEQGfiG7/mmmviuOOOq95hjz32iPrNknJ6fCXNOuuslcOmn8U6L730UtN6CggQIECAAAECBAgQIECAAAECBAgQiDAFfiZ9C3LkZwY/p0+fXr7DJz7xiXjf+97X624TJvzvFVTq9qpUyCjWKQZDC1V6Hb7zne+MRx55pFd+JeOiiy4qT9HPtUAlAgQIECBAgAABAgQIECBAgAABAqNJ4H/Rt9H0VMP8LFOnTo3vfve71V7ssMMOseOOO1bPiwe5+VAlvfzyy5XDpp/FUZ9zzTVX03rFgi9+8YvF017Hl112WZ8B0l4XyCBAgAABAgQIECBAgAABAgQIECAwQgQEQNv4onIDoeOPPz5y9Gem8ePHx1577RWbb75507sUg5jF9UCbXVCcMl+8tll9+QQIECBAgAABAgQIECBAgAABAgTGsoAAaJvefgYvDzrooPjzn/9cbnH22WePww47LKZMmdLnHYo7wj/66KN91s3CSp1ZZpkl5p133n7rq0CAAAECBAgQIECAAAECBAgQIEBgLAsIgLbh7T/11FOx5557xl133VVubaGFFopjjz023vCGN/Tb+jLLLFOt8+CDD1aPGx3kCNP//Oc/5aLlllsuijvCN6ovjwABAgQIECBAgAABAgQIECBAgMBYF7AL/BC/AdOmTStPc68EP5dddtk4/fTTWwp+5q1XWGGFmDhxYrkXN954Y5+9ueWWW+KVV14p11lllVX6rKuQAAECBAgQIECAAAECBAgQIECAAIHSMpUQhibw1a9+Ne64445yIyuvvHKccsopseiii7bc6Jxzzhnrrrtuuf4999wTt99+e9Nrc7OiSlp//fUrhz4JECBAgAABAgQIECBAgAABAgQIEGgiIADaBKaV7Fzv86qrripXzWnvxxxzzKDW5dxss82qt8tNlHJUaX267rrr4uKLLy5n5yjT9dZbr76KcwIECBAgQIAAAQIECBAgQIAAAQIE6gSsAVoH0uppTkU/8cQTq9VzJGeu+9lKWmeddWKrrbaqVs2NknIU6A033BC33npr7LHHHrH77rvHaqutFs8880xcffXVceqpp8b06dNj3Lhxseuuu5Y/qw04IECAAAECBAgQIECAAAECBAgQIECgoYAAaEOW/jP/+te/xv3331+tmMfF82pBg4MFF1ywV+4hhxxS3jX+T3/6U9x5553lTZVyp/cMehZTBkZNfy+KOCZAgAABAgQIECBAgAABAgQIECDQXMAU+OY2fZbkep3tTPPOO2+ccMIJ8fGPfzzmmWeectPF4Gfu+n7cccfF1ltv3c7baosAAQIECBAgQIAAAQIECBAgMGiBf/wj4oADorRE4P+a2HvviO9+N+L55/+X54jAcAoYATpI/Y985CORP+1M48ePj1122aX889BDD5U3V5ptttliqaWWisUXXzyyXCJAgAABAgQIECBAgAABAgQIDLdAbl/y2c9GnHNORE9PbW9+/euI/DnooIiTT47YYovacmcEOi0gANpp8RbvN2nSpMgfiQABAgQIECBAgAABAgQIECDQTQKPPx6x0UYRN9/cd69KY7tKe6BEaUZrRI4KlQgMl4AhhcMl774ECBAgQIAAAQIECBAgQIAAgREmMGNGxJZb9h/8rDxWjg7dd9+IX/yikuOTQOcFBEA7b+6OBAgQIECAAAECBAgQIECAAIERKZBT3n/3u4F1PYOge+wR8dJLA7tObQLtEhAAbZekdggQIECAAAECBAgQGJECL774Yrzwwgu9fmbkMCeJAAECBGoEvv71mtOWT+67L+LnP2+5uooE2ipgDdC2cmqMAAECBAgQIECAAIGRJrDmmmuWNvCo28Gj9BBTp06NKVOmjLTH0V8CBAjMNIFHHon4618H3/wll0RsvfXgr3clgcEKGAE6WDnXESBAgAABAgQIECBAgAABAgTGkMA99wztYe++e2jXu5rAYAUEQAcr5zoCBAgQIECAAAECBAgQIECAwBgSKK0YMqQ01OuHdHMXj2kBAdAx/fo9PAECBAgQIECAAAECBAgQIECgNYFJk1qr16zWUK9v1q58Av0JCID2J6ScAAECBAgQIECAAAECBAgQIEAgVlwxYrHFBg/xtrcN/lpXEhiKgADoUPRcS4AAAQIECBAgQIAAAQIECBAYIwLTp0fMNdfgHna22WyANDg5V7VDQAC0HYraIECAAAECBAgQIECAAAECBAiMYoEZMyI+9rGIu+4a3EN+4QsRSywxuGtdRWCoAgKgQxV0PQECBAgQIECAAAECBAgQIEBgFAv09ETsvHPE+ecP7iFnnz3i0EMHd62rCLRDQAC0HYraIECAAAECBAgQIECAAAECBAiMUoE994yYOnXwD5e7vw82eDr4u7qSwP8EBED/Z+GIAAECBAgQIECAAAECBAgQIECgIHDggRHf+EYho+4wR3cuuWRdZoPTo46KyGn0EoHhEBAAHQ519yRAgAABAgQIECBAgAABAgQIdLnAscdGZOCyWZp77oirr464//6IzTdvVuu1/NtvjzjvvL7rKCUwswQEQGeWrHYJECBAgAABAgQIECBAgAABAiNU4NRTI/bfv3nnc+TnRRdFrLvua3XmmON/dcc3iTZlMDXXE5UIdFqgyVey091wPwIECBAgQIAAAQIECBAgQIAAgW4Q+N73Ij73ueY9mTgx4ic/idhoo8Z13vvexvm33BJxwQWNy+QSmJkCAqAzU1fbBAgQIECAAAECBAgQIECAAIERJPDjH0d86lPNR2rOMkvEuedGbLpp84facceIZqNAjzyyedvNW1RCYGgCAqBD83M1AQIECBAgQIAAAQIECBAgQGBUCFxyScS220ZMn974ccaNi/jOdyK22qpxeSV32WUjtt66clb7edNNET/7WW2eMwIzW0AAdGYLa58AAQIECBAgQIAAAQIECBAg0OUCuZnRlltGvPJK846eckrEJz7RvLxYkrvHZ8C0UTriiEa58gjMPAEB0Jlnq2UCBAgQIECAAAECBAgQIECAQNcL3HBDxPvfH/Hii827eswxEZ/5TPPy+pLVVovYYov63NfO//rXiF/+snGZXAIzQ0AAdGaoapMAAQIECBAgQIAAAQIECBAgMAIE/v73iE02iXj22eadPeigiP32a17erCSva5aMAm0mI39mCAiAzgxVbRIgQIAAAQIECBAgQIAAAQIEulzg1lsj3v3uiKeeat7Rz38+4itfaV7eV8maa0Z84AONa+So00svbVwml0C7BQRA2y2qPQIECBAgQIAAAQIECBAgQIBAlwvcc0/EO98Z8eijzTuau8GfdFLz8lZKjAJtRUmdmS0gADqzhbVPgAABAgQIECBAgAABAgQIEOgigYceei34+eCDzTv1kY9EnHFG842Mml9ZW/LmN0dsumltXuXsmmsirrqqcuaTwMwTEACdebZaJkCAAAECBAgQIECAAAECBAh0lcBjj70W/Lz77ubdyg2Rzj47YnybokZ9jQId7PT65r1XQqC3QJu+yr0blkOAAAECBAgQIECAAAECBAgQINA9ArnW53veE/GvfzXvU06Lv+CCiAkTmtcZaMl660W8612Nr/rtbyN+//vGZXIJtEtAALRdktohQIAAAQIECBAgQIAAAQIECHSpwHPPvTYV/W9/a97B9deP+NnPImabrXmdwZb0NQr0y18ebKuuI9CagABoa05qESBAgAABAgQIECBAgAABAgRGpMCLL762G/t11zXv/lprRVxyScRcczWvM5SSDTeM2Gijxi3kOqDXX9+4TC6Bdgi0cUBzO7qjDQIECBAgQIAAAQIECHRW4NZbb+3sDd2NAAECHRR45ZWID3844te/bn7TVVaJuOyyiPnma16nHSWHHBJx9dWNW8pRoL/6VeMyuQSGKmAE6FAFXU+AAAECBAgQIECAAAECBAgQ6EKBGTMiPvaxiF/+snnnll8+4sorIxZeuHmddpVsvHFETrNvlC69NOLPf25UIo/A0AUEQIduqAUCBAgQIECAAAECBAgQIECAQFcJ9PRE7LRTxI9+1LxbSy75WvBz8cWb12l3yaGHNm/x8MOblykhMBQBU+CHoudaAgQIECBAgAABAgQIECBAgEAXCnz+8xHf/W7zji2ySESuvbnMMs3rzIySd787Yp11Iv74x96tX3RRxI03Rqy5Zu+y4ci59957Y5dddunz1scdd1ypv13S4T57OrYLBUDH9vv39AQIECBAgAABAgQIECBAgMAoEzjwwIiTT27+UAssEHHFFRErrdS8zswsybVAN9us8R2+8pWIn/ykcVmnc6dNm1ZyKkH1kZ588sk+ShV1i4AAaLe8Cf0gQIAAAQIECBAgQIAAAQIECAxR4OijI446qnkj88wTkettvulNzevM7JL3vS9i8uSIv/2t951++tOIm2+OWHXV3mVy2i/wr3/9K17JnbKapEVKQ4UXW2yxJqUjJ1sAdOS8Kz0lQIAAAQIECBAgQIAAAQIECDQVOOWUiAMOaFocc8wRkdPMcwr6cKdcC/SDH+zdi1y7NNcCPf/83mWdzll55ZXjvvvuK9/2R6XFVPfZZ5/y8f777x+77bZb+XjR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AQIECBAgQIAAAQIECBAg0AKB886b/UVXXjnioou6NuyZe+7Z11cjW+DggyOqBY/Hj88+R+7gExAAHXxzbsQECBAgQIAAAQIECBAgQIDAAAlMnhzx5z9Xb3y++SLuuy/i3/+O2Hbb6vWU1CeQAsnpEQJZ6c47Iy67LKtE3mATEAAdbDNuvAQIECBAgAABAgQIECBAgMCACZx1VsT06dWbHz48YsUVq5cr6b3AIYdUXwV65JG9b88Z7ScgANp+c2pEBAgQIECAAAECBAgQIECAQAsE3n8/4pxzsi9sh/dsl0bkrrZaxFZbZbd0++0Rf/pTdpncwSMgADp45tpICRAgQIAAAQIECBAgQIAAgQEUuPLKiMcey76A53xmuzQqN60CrZasAq0mM3jyBUAHz1wbKQECBAgQIECAAAECBAgQIDCAAmeemd34XHNFpFvfpYETWGutiC22yG7/llsirr46u0zu4BAQAB0c82yUBAgQIECAAAECBAgQIECAwAAKPPdcxB//mH2BL385wi3w2TaNzD300OqtWQVa3WYwlAwbDIM0RgIECBAgQIAAAQIECFQTuPnmmzOL5p133sx8mQQIEMgSOPvsiHffzSqJ+Na3rEDMlmls7nrrRWy2WUR6FMGs6W9/i7j++ohPfGLWEu8Hg4AVoINhlo2RAAECBAgQIECAAIGqAgsttFBkfc0555xVz1FAgACBSoGOjogUAM1Kyy4bsckmWSXyBkKg1irQH/94IK6ozSIICIAWYZb0kQABAgQIECBAgAABAgQIEMitwLXXRkyalN293XePGDIku0xu4wU22ihi002z273uuoibbsouk9veAgKg7T2/RkeAAAECBAgQIECAAAECBAgMsMAZZ2RfYFjpwYM77ZRdJnfgBA47rHrbVoFWt2nnEgHQdp5dYyNAgAABAgQIECBAgAABAgQGVGDKlIg//CH7El/8YsQSS2SXyR04gY9/POI//zO7/auuivjHP7LL5LavgABo+86tkREgQIAAAQIECBAgQIAAAQIDLHDuuRHTpmVfJG1+JLVGwCrQ+t3T5l1///uM+s88E/HggzPet8ORAGg7zKIxECBAgAABAgQIECBAgAABAi0R+OUvsy+79NIRn/50dpncgRf41KciPvrR7OtMmBAxcWJ22WDKffPNiCOPjBg1KuKrX50x8nvvjVhhhYi11464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0ZHKJQIECBAgQIAAAQIECBBoX4HNNov4zW/6Nr7HH4847bSI73ynb+cX8az33os499zsnq+xRsQ662SXySVAYHAJCIDmdL7HjBkT6UsiQIAAAQIECBAgQIAAgcEjsOeefQ+Avv9+xF57Rfz97xFnnBExcmT7u6VNWJ99NnucpfVFEgECBDoFLCn0jUCAAAECBAgQIECAAAECBHIikDYW3W67/nXmgguitNFuxIMP9q+dIpxdbfOjFPxNz/+UCBAgkASsAPV9QIAAAQIECBAgQIAAAQIEciRw1lkRaWOfW2/te6fuuSdi3XUjzj47Yuut+95Ons984omIq67K7uFXvxqxwALZZXIbJzBlypR45plnOhucOnVqueH0SL9hpV29hgwZEqussko53wGBVglYAdoqedclQIAAAQIECBAgQIAAAQIZAmn14nXXRey6a5QCSBkVPsiqVZaqvPpqxDbbRBx4YER6Vma7pRQoTrf9ZyWbH2WpND7vV7/6Vay22mqdX1dccUX5Al8tRaBT/uqrr17Oc0CglQICoK3Ud20CBAgQIECAAAECBAgQIJAhMGJExC9/GTFxYsS++0ZU7vD+oQ91BTXvvz/iF7+I0ua5GQ1UZJ1wQsSmm0ZppV5FZsEPp0+POOec7EF85CMRG2yQXSaXAIHBKeAW+ME570ZNgAABAgQIECBAgAABAgUQSDuZn3JKlDbJjTjooK4OH3lkxM47dx0vv3zXTudppWfaBb5a+tvfItZaK+KiiyI23rhareLk/+lPEU89ld1fmx9luwxE7gorrBBf+cpXqjY9dKh1d1VxFDRVQAC0qdwuRoAAAQIECBAgQIAAAQIEGiuwzjpdK0V32CGi4i7kHhdJu6V/8pMRxxwTsf/+PYoLlVFt86O5547YccdCDaXQnd1iiy0ifUkE8i4gFJ/3GdI/AgQIECBAgAABAgQIECAwG4GFF46YMCHi8MMjai26S88CPeCAro2R0jNCi5iefjoirQDNSmklbLKQCBAgUCkgAFqp4ZgAAQIECBAgQIAAAQIECBRUIAU+jziiKzi4yCK1B3HppV23zt99d+16eSxNO9unZ4BmJZsfZanII0BAANT3AAECBAgQIECAAAECBAgQaCOBzTbruiV+3XVrD+qhhyI++tGIX/+6dr08laZd31MANCuVHkfZFs83zRqbPAIE+icgANo/P2cTIECAAAECBAgQIECAAIHcCSy9dMSNN0Z8+9u1u/bmmxFf/3rEXntFTJtWu24eSq++OuKxx7J7YvVntotcAgRKjwaBQIAAAQIECBAgQIAAAQIECLSfwFxzRfzP/0Scd17EyJG1x3faaREf+1jEE0/Urtfq0jPOyO5BGus3vpFdJpcAAQJ2gfc9QIAAAQIECBAgQIDAoBb4zW9+kzn+//iP/8jMl0mgaAJphecaa3RtfJRue6+WbrstYq21Ii64ICLdRp+39NxzEZdfnt2rL30pYrHFssvkEiBAQADU9wABAgQIECBAgAABAoNaYK0U8ZEItLnAqqtG3H57xM47R/z+99UH++KLEZtv3rWb/KGHRgwZUr1us0vOOSfi3Xezr+r292wXuQQIdAm4Bd53AgECBAgQIECAAAECBAgQGAQC888fkXZ/P/bYiGE1lkOljYYOP7wrEPrSS/mA6eiI+OUvs/uy7LIRm26aXSaXAAECSUAA1PcBAQIECBAgQIAAAQIECBAYRAI/+EHENddELLFE7UFfcUXXLfFp5Wir03XXRUyalN2LtPozTytVs3splwCBVgoIgLZS37UJECBAgAABAgQIECBAgEALBDbeOGLixIj//M/aF3/88a7NkaptPlT77MaVVrt+WsmabuuXCBAgUEtAALSWjjICBAgQIECAAAECBAgQINCmAqNHR1x7bcR++9Ue4DvvRHz72xE77RTx1lu16w5E6ZQp1Z9b+oUvzH4l60D0SZsECBRLQAC0WPOltwQIECBAgAABAgQIECBAoGECaQXliSdG/O53EfPNV7vZ886L+OhHq9+KXvvsvpem606bln3+7rtn58slQIBApYAAaKWGYwIECBAgQIAAAQIECBAgMAgFtt66a5f4VVapPfi77opYZ52IP/yhdr1Glp55ZnZrSy8d8ZnPZJfJJUCAQKWAAGilhmMCBAgQIECAAAECBAgQIDBIBZZfPuLWWyN22KE2wCuvRHzpSxEHHRQxfXrtuv0t/dvfIu6/P7uV3XYr7ewsqpGNI5cAgZkE/FMxE4c3BAgQIECAAAECBAgQIEBg8AqMHBnx619HnHpqxFxz1XY49tiIT30q4rnnatfrT2m1zY/mmCNil13607JzCRAYTAICoINpto2VAAECBAgQIECAAAECBAjUIbDXXhE33BCx1FK1K19/fcRaa0XceGPten0pffnlrmeTZp37uc9FfOhDWSXyCBAg0FNAALSniRwCBAgQIECAAAECBAgQIDDoBdZfP2LixIhPf7o2xeTJEZtsEnHyybXr9bY0rUR9++3ss2x+lO0ilwCBbAEB0GwXuQQIECBAgAABAgQIECBAYNALLLpoxBVXRBxySMSQIdU53nsv4vvfj9h224jXXqterzcl1TY/GjMmYvPNe9OSugQIDHYBAdDB/h1g/AQIECBAgAABAgQIECBAoIZA2mjoyCMj/vjHiIUXrlGxVHTxxRHrrhvx73/Xrje70ltuibj77uxau+4akZ4BKhEgQKBeAQHQeqXUI0CAAAECBAgQIECAAAECg1ggrbq8446ItdeujfDAAxHp9vkLL6xdr1ZptdWfKRj7zW/WOlMZAQIEegoIgPY0kUOAAAECBAgQIECAAAECBAhkCCyzTMRNN0V861sZhRVZb7wRsf32EfvsE/HuuxUFdRym+hddlF0xPY809UEiQIBAbwQEQHujpS4BAgQIECBAgAABAgQIEBjkAsOHR5xxRsQ550SMGFEb49RTIzbeOOKpp2rXqyx97LGIFEDNSjY/ylKRR4DA7AQEQGcnpJwAAQIECBAgQIAAAQIECBDoIbDzzhE33xyx3HI9imbKSM/zXGutiL/8Zabsqm8efji7aNSoiC98IbtMLgECBGoJCIDW0lFGgAABAgQIECBAgAABAgQIVBVYffWu54JuuWXVKp0FL7wQsdlmEUcdFdHRUbvuyy9nl6eA65xzZpfJJUCAQC0BAdBaOsoIECBAgAABAgQIECBAgACBmgILLBDxhz9EHH107d3Z338/4pBDulZxVgtyVrvQkCERu+1WrVQ+AQIEagsIgNb2UUqAAAECBAgQIECAAAECBAjMRiAFKA86KOLqqyMWX7x25QkTunaSnzixq97TT0dcemntczbZJGLcuNp1lBIgQKCawLBqBfIJECBAgAABAgQIECBAgAABAr0RSIHKf/4z4itfifj736uf+eijERtuGLHaahG33z772+Jnt+t89SspIUCAQIQVoL4LCBAgQIAAAQIECBAgQIAAgYYJjBkTcf31Ed/9bu0m33kn4rbbZh/8nHvuiK22qt2WUgIECNQSEACtpaOMAAECBAgQIECAAAECBAgQ6LVA2qzo5JMjLrooYt55e336TCe8/XbEYYfNlOUNAQIEeiUgANorLpUJECBAgAABAgQIECBAgACBegW23bZrlefKK9d7Rna944+P+Mc/ssvkEiBAYHYCngE6OyHlBAgQIECAAAECBAi0tcCuu+4a76ftqWdJBx54YHzkIx+ZJddbAgR6K7DiihG33hqRnuP529/29uwZ9cePj7jsshnvHREgQKBeAQHQeqXUI0CAAAECBAgQIECgLQX+XtqppaOjo8fYpk6d2iNPBgECfRNIt8FfeGHEM89E/PWvfWvjqqsi3ngjYp55+na+swgQGLwCAqCDd+6NnAABAgQIECBAgAABAgQINFVgWD+iEGnTpIceilhjjaZ22cUGscALL7wQp59+eqfAxIkTyxLXXHNNTJs2rfP9jjvuGMsss0y5zEE+BfrxT08+B6RXBAgQIECAAAECBAgQIECAQD4FXnqpf/3q7/n9u7qzB5vAs88+G4ceemiPYV9VWo6cvlLacMMNBUB7COUvwyZI+ZsTPSJAgAABAgQIECBAgAABAm0psNhi/RtWf8/v39WdTYBAUQWsAC3qzOk3AQIECBAgQIAAAQIECBAomMCaa0Zp5VzfOp2e/fkf/9G3c51FoC8CSy21VPz617+uearN8mry5KZQADQ3U6EjBAgQIECAAAECBAgQIECgvQW22Sbi2GP7NsYttoiYe+6+nessAn0RWHDBBWOHHXboy6nOyZmAW+BzNiG6Q4AAAQIECBAgQIAAAQIE2lVgnXUiUiCzt2mOOSIOO6y3Z6lPgACBLgEBUN8JBAgQIECAAAECBAgQIECAQNME0qbao0f37nLHHBOx8sq9O0dtAgQIdAsIgHZLeCVAgAABAgQIECBAgAABAgQGXGDMmIirr44YO3b2lxoyJOJHP4o44IDZ11WDAAEC1QQEQKvJyCdAgAABAgQIECBAgAABAgQGROAjH4m4446I/faLGDky+xLrrx9x7bVufc/WkUuAQG8EBEB7o6UuAQIECBAgQIAAAQIECBAg0BCBhRaKOPHEiClTIk4+eUaTKfD50EMRt9wS8YlPzMh3RIAAgb4KCID2Vc55BAgQIECAAAECBAgQIECAQL8FRoyI+M//nNHMsstGjBs3470jAgQI9FdAALS/gs4nQIAAAQIECBAgQIAAAQIECBAgQCC3AgKguZ0aHSNAgAABAgQIECBAgAABAgQIECBAoL8CAqD9FXQ+AQIECBAgQIAAAQIECBAgQIAAAQK5FRAAze3U6BgBAgQIECBAgAABAgQIECBAgAABAv0VEADtr6DzCRAgQIAAAQIECBAgQIAAAQIECBDIrYAAaG6nRscIECBAgAABAgQIECBAgAABAgQIEOivwLD+NuB8AgQIECBAgAABAgQIECBAoPECzz33XFx77bWdDd95553lC9xyyy0xfPjwzvebb755LLDAAuUyBwQIECDQU0AAtKeJHAIECBAgQIAAAQIECBAg0HKBe+65J7bffvse/Tj99NMjfaV09913C4D2EJJBgACBmQXcAj+zh3cECBAgQIAAAQIECBAgQIAAAQIECLSRgBWgbTSZhkKAAAECBAgQIECAAAEC7SOw7LLLxhFHHFFzQKNGjapZrpAAAQIEIgRAfRcQIECAAAECBAgQIECAAIEcCowdOzYOP/zwHPZMlwgQIFAsAbfAF2u+9JYAAQIECBAgQIAAAQIECBAgQIAAgV4IWAHaCyxVCRAgQIAAAQIECBBoP4HTTjstOjo6egxspZVW6pEngwABAgQIECiegABo8eZMjwkQIECAAAECBAgQaKDApptu2sDWNEWAAAECBAjkTcAt8HmbEf0hQIAAAQIECBAgQIAAAQIECBAgQKBhAgKgDaPUEAECBAgQIECAAAECBAgQIECAAAECeRMQAM3bjOgPAQIECBAgQIAAAQIECBAgQIAAAQINExAAbRilhggQIECAAAECBAgQIECAAAECBAgQyJuAAGjeZkR/CBAgQIAAAQIECBAgQIAAAQIECBBomIAAaMMoNUSAAAECBAgQIECAAAECBAgQIECAQN4EBEDzNiP6Q4AAAQIECBAgQIAAAQIECBAgQIBAwwQEQBtGqSECBAgQIECAAAECBAgQIECAAAECBPImIACatxnRHwIECBAgQIAAAQIECBAgQIAAAQIEGiYgANowSg0RIECAAAECBAgQIECAAAECBAgQIJA3AQHQvM2I/hAgQIAAAQIECBAgQIAAAQIECBAg0DABAdCGUWqIAAECBAgQIECAAAECBAgQIECAAIG8CQiA5m1G9IcAAQIECBAgQIAAAQIECBAgQIAAgYYJCIA2jFJDBAgQIECAAAECBAgQIECAAAECBAjkTUAANG8zoj8ECBAgQIAAAQIECBAgQIAAAQIECDRMQAC0YZQaIkCAAAECBAgQIECAAAECBAgQIEAgbwICoHmbEf0hQIAAAQIECBAgQIAAAQIECBAgQKBhAgKgDaPUEAECBAgQIECAAAECBAgQIECAAAECeRMQAM3bjOgPAQIECBAgQIAAAQIECBAgQIAAAQINExAAbRilhggQIECAAAECBAgQIECAAAECBAgQyJuAAGjeZkR/CBAgQIAAAQIECBAgQIAAAQIECBBomIAAaMMoNUSAAAECBAgQIECAAAECBAgQIECAQN4EBEDzNiP6Q4AAAQIECBAgQIAAAQIECBAgQIBAwwSGNawlDREgQIAAAQIECBAgQKCAAvvvv3+8//77PXq+xx57xAorrNAjXwYBAgQIECBQLAEB0GLNl94SIECAAAECBAgQINBggQkTJkRHR0ePVrfZZhsB0B4qMggQIECAQPEE3AJfvDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQQAK0TSjUCBAgQIECAAAECBAgQIECAAAECBIonIABavDnTYwIECBAgQIAAAQIECBAgQIAAAQIE6hQYVmc91QgQIECAAAECBAgQINCWAkcddVR0dHT0GNu4ceN65MkgQIAAAQIEiicgAFq8OdNjAgQIECBAgAABAgQaKLD11ls3sDVNESBAgAABAnkTcAt83mZEfwgQIECAAAECBAgQIECAAAECBAgQaJiAAGjDKDVEgAABAgQIECBAgAABAgQIECBAgEDeBARA8zYj+kOAAAECBAgQIECAAAECBAgQIECAQMMEBEAbRqkhAgQIECBAgAABAgQIECBAgAABAgTyJiAAmrcZ0R8CBAgQIECAAAECBAgQIECAAAECBBomIADaMEoNESBAgAABAgQIECBAgAABAgQIECCQNwEB0LzNiP4QIECAAAECBAgQIECAAAECBAgQINAwAQHQhlFqiAABAgQIECBAgAABAgQIECBAgACBvAkIgOZtRvSHAAECBAgQIECAAAECBAgQIECAAIGGCQiANoxSQwQIECBAgAABAgQIECBAgAABAgQI5E1AADRvM6I/BAgQIECAAAECBAgQIECAAAECBAg0TGBYw1rSEAECBAgQIECAAAECBAgQIECAQFngtNNOi/vuu6/z/RtvvNH5+vrrr8c+++zTebzyyivHnnvuWa7vgACBgREQAB0YV60SIECAAAECBAgQIECAAAECg1zgsssuiyuvvHImhbfffjtOPfXUzrzPfvazAqAz6XhDYGAE3AI/MK5aJUCAAAECBAgQIECAAAECBAgQIEAgBwJWgOZgEnSBAAECBAgQIECAAAECBAgQaD+Bo48+Og444ICqA1t00UWrlikgQKBxAgKgjbPUEgECBAgQIECAAAECBAgQIECgLLDmmmuWjx0QINA6AbfAt87elQkQIECAAAECBAgQIECAAAECBAgQGGABAdABBtY8AQIECBAgQIAAAQIECBAgQIAAAQKtExAAbZ29KxMgQIAAAQIECBAgQIAAAQIECBAgMMACAqADDKx5AgQIECBAgAABAgQIECBAgAABAgRaJyAA2jp7VyZAgAABAgQIECBAgAABAgQIECBAYIAFBEAHGFjzBAgQIECAAAECBAgQIECAAAECBAi0TkAAtHX2rkyAAAECBAgQIECAAAECBAgQIECAwAALDBvg9jVPgAABAgQIECBAgACBXAsceeSR0dHR0aOPO+ywQyy33HI98mUQIECAAAECxRIQAC3WfOktAQIECBAgQIAAAQINFrjgggsyA6Cf/OQnBUAbbK05AgQIECDQCgG3wLdC3TUJECBAgAABAgQIECBAgAABAgQIEGiKgABoU5hdhAABAgQIECBAgAABAgQIECBAgACBVggIgLZC3TUJECBAgAABAgQIECBAgAABAgQIEGiKgABoU5hdhAABAgQIECBAgAABAgQIECBAgACBVggIgLZC3TUJECBAgAABAgQIECBAgAABAgQIEGiKgF3gG8T8yiuvxEUXXRQPPPBAPPXUUzFlypQYM2ZMLLXUUrH66qvHl7/85Zhzzjlne7Wnn346zj///M520vHiiy8eq6yySqy66qqx6aabxogRI2bbhgoECBAgQIAAAQIECBAgQIAAAQIECHQJCIA24Dvh4osvjrPPPjtef/31mVp77LHHIn397W9/i//7v/+LAw88MNZcc82Z6lS+ufDCC+P000+P6dOnl7Mff/zxSF8TJkyIyy+/PI4//viYb775yuUOCBAgQIAAAQIECBAgQIAAAQIECBCoLiAAWt2mrpKrrroqfvazn5Xrrr/++p0rPhdddNHOlaA33HBDZxD0ySefjAMOOCDOOuusGDt2bLl+90EKcJ522mmdb+eaa67O1Z5p5efzzz8fN910Uzz88MPx73//O/bee+/46U9/GgsvvHD3qV4JECBAgAABAgQIECBAgAABAgQIEKgiIABaBaae7MmTJ8cJJ5zQWXWOOeaIH//4x7HxxhvPdOouu+wSp556alxyySUxbdq0zjpnnnlmDBs2g/7ll1+Ok046qfO8eeaZJ44++uiZVoqmNsaPHx/XXHNNPPLII3HuuefGfvvtN9N1vCFAgAABAgQIECBAgAABAgQIECBAoKeATZB6mtSdkwKSb731Vmf97bffvkfwMxWkQOc+++wTK664Yme9SZMmdT7fs/PNB/9Jt9Cn4GhKe+6550zBz5SX2jjssMPKbVxxxRXx5ptvpiKJAAECBAgQIECAAAECBAgQIECAAIEaAgKgNXBmV3TnnXeWq2y55Zbl41kP0urQT3ziE+XsBx98sHycDtLt7ymlDY4233zzzuNZ/zN06ND46le/2pmdgq4pCCoRIECAAAECBAgQIECAAAECBAgQIFBbQAC0tk/N0vQczpVXXrlzp/dRo0bVrLvIIouUy1944YXy8TPPPBMvvfRS5/u0QVKtneLXXnvt8nnp2aMSAQIECBAgQIAAAQIECBAgQIAAAQK1BWY8iLJ2PaUZAgcffHBGbnZWuvW9Oy233HLdh50bG3W/GTduXPdh5utCCy0UKZD64osvdj4LNLOSTAIECBAgQIAAAQIECBAgQIAAAQIEygICoGWKgTtIz+usXLG50korlS/21FNPlY/HjBlTPq52kFaapgBoug1+ypQpkXabn12aOnVqTJ8+vWq1jo6OSLfp16pT9WQFBAgQIECAAAECBAgQIECAAAECBHIsIADahMlJu7annd5TWm+99aIy0PnGG2+Ue5BWeM4uLbjgguUqr776al0B0O222262K0bTqtS0w/x7771Xbt8BAQIECBAgQIAAAQIECBAgQIAAgaILeAboAM/gn/70p7jwwgs7rzJy5Mj4wQ9+MNMVKwOgw4cPn6ks601lnbfffjurijwCBAgQIECAAAECBAgQIECAAAECBD4QEAAdwG+Fm266KY477rjyFfbdd9+YdbOkdHt8d5prrrm6D6u+VtZ55513qtZTQIAAAQIECBAgQIAAAQIECBAgQIBAhFvgB+i7IK38TMHP7udq7rTTTvH5z3++x9WGDZsxBd11e1SqyKisUxkMrajS43D55ZePeeaZp0d+d8Y999zT+UzR9CxQiQABAgQIECBAgAABAgQIECBAgEA7CcyIvrXTqPo4lmuuuSauvPLKmmcfcMABsfjii9esc/bZZ8c555xTrrPLLrvErrvuWn5feTBixIjy22nTppWPqx1UrvqsFdSsPP+UU06pfNvjePXVV48HHnigR74MAgQIECBAgAABAgQIECBAgAABAkUXEACtmMG0I/vNN99ckdPzsNZzN9MGQscff3yk1Z8pDR06NPbbb7/44he/2LOhD3Iqg5iVzwOtdkLlLfOV51arL58AAQIECBAgQIAAAQIECBAgQIDAYBYQAG3Q7Kfg5SGHHBK33357Z4tzzz13HHHEEbHRRhvVvELljvDPP/98zbqpsLvOHHPMEfPPP/9s66tAgAABAgQIECBAgAABAgQIECBAYDALCIBWzP7WW28dm222WUVOz8NFF120R+bUqVPje9/7Xjz88MOdZYssskgce+yxscIKK/SoO2vGMsssU856+umny8dZB2mF6bPPPttZtOyyy0bljvBZ9eURIECAAAECBAgQIECAAAECBAgQGOwCAqAV3wHzzjtvpK/epNdee63zNvfu4OfYsWM7b4Ofdbf3am2OGzcu5pxzznj33XfjzjvvrFatM//ee+/trJferLzyyjXrKiRAgAABAgQIECBAgAABAgQIECBAwC7w/f4eOPHEE+Ohhx7qbGfFFVeM9L43t6aPHDky1l9//bjxxhvj0UcfjQcffDDSru1ZqXKDpg033DCrijwCBAgQIECAAAECBHopcOCBB0ZHR0ePsyrv1upRKIMAAQIECBAojIAVoP2YqvS8z7RzfErptvdjjjmmV8HP7ktvscUWnQHQ9D5tonTSSSfFfPPN113c+Zo2Z5owYULncVplusEGG8xU7g0BAgQIECBAgAABAn0T+OY3v9m3E51FgAABAgQIFEJAALSP05RuWU+Byu6UVnKm537Wk9Zbb73YZpttylXTRklpFeitt94a999/f+y7776x9957xyqrrBKvvvpqXH/99fHzn/88pk+fHkOGDIk99tij87XcgAMCBAgQIECAAAECBAgQIECAAAECBDIFBEAzWWafOXHixHjyySfLFdNx5ftyQcbBwgsv3CP3sMMO69w1/rbbbotJkyZ1bqqUdnpPQc/KlAKjbn+vFHFMgAABAgQIECBAgAABAgQIECBAoLrA0OpFSmoJpOd1NjKl54aecMIJ8fWvf718+3tl8DPt+n7cccfFtttu28jLaosAAQIECBAgQIAAAQIECBAgQIBAWwtYAdrH6f3a174W6auRaejQobH77rt3fk2ePLlzc6Xhw4fHUkstFaNHj45ULhEgQIAAAQIECBAgQIAAAQIECBAgUL+AAGj9Vk2tOWbMmEhfEgECBAgQIECAAAECBAgQIECAAAECfRewpLDvds4kQIAAAQIECBAgQIAAAQIECBAgQCDnAgKgOZ8g3SNAgAABAgQIECBAgAABAgQIECBAoO8CAqB9t3MmAQIECBAgQIAAAQIECBAgQIAAAQI5FxAAzfkE6R4BAgQIECBAgAABAgQIECBAgAABAn0XEADtu50zCRAgQIAAAQIECBAgQIAAAQIECBDIuYAAaM4nSPcIECBAgAABAgQIECBAgAABAgQIEOi7gABo3+2cSYAAAQIECBAgQIAAAQIECBAgQIBAzgUEQHM+QbpHgAABAgQIECBAgAABAgQIECBAgEDfBQRA+27nTAIECBAgQIAAAQIECBAgQIAAAQIEci4gAJrzCdI9AgQIECBAgAABAgQIECBAgAABAgT6LiAA2nc7ZxIgQIAAAQIECBAgQIAAAQIECBAgkHMBAdCcT5DuESBAgAABAgQIECBAgAABAgQIECDQdwEB0L7bOZMAAQIECBAgQIAAAQIECBAgQIAAgZwLCIDmfIJ0jwABAgQIECBAgAABAgQIECBAgACBvgsIgPbdzpkECBAgQIAAAQIECBAgQIAAAQIECORcQAA05xOkewQIECBAgAABAgQIECBAgAABAgQI9F1AALTvds4kQIAAAQIECBAgQIAAAQIECBAgQCDnAgKgOZ8g3SNAgAABAgQIECBAgAABAgQIECBAoO8Cw/p+qjMJECBAgAABAgQIECBQfIFTTz01Ojo6egxkq622iqWWWqpHvgwCBAgQIECgWAICoMWaL70lQIAAAQIECBAgQKDBAtUCoGuttZYAaIOtNUeAAAECBFoh4Bb4Vqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREQAG0Ks4sQIECAAAECBAgQIECAAAECBAgQINAKAQHQVqi7JgECBAgQIECAAAECBAgQIECAAAECTREY1pSruAgBAgQIECBAgAABAgRyKrDbbrtFR0dHj94tueSSPfJkECBAgAABAsUTEAAt3pzpMQECBAgQIECAAAECDRQ44IADGtiapggQIECAAIG8CbgFPm8zoj8ECBAgQIAAAQIECBAgQIAAAQIECDRMQAC0YZQaIkCAAAECBAgQIECAAAECBAgQIEAgbwICoHmbEf0hQIAAAQIECBAgQIAAAQIECBAgQKBhAgKgDaPUEAECBAgQIECAAAECBAgQIECAAAECeRMQAM3bjOgPAQIECBAgQIAAAQIECBAgQIAAAQINExAAbRilhggQIECAAAECBAgQIECAAAECBAgQyJuAAGjeZkR/CBAgQIAAAQIECBAgQIAAAQIECBBomIAAaMMoNUSAAAECBAgQIECAAAECBAgQIECAQN4EBEDzNiP6Q4AAAQIECBAgQIAAAQIECBAgQIBAwwQEQBtGqSECBAgQIECAAAECBAgQIECAAAECBPImIACatxnRHwIECBAgQIAAAQIECBAgQIAAAQIEGiYgANowSg0RIECAAAECBAgQIECAAAECBAgQIJA3AQHQvM2I/hAgQIAAAQIECBAgQIAAAQIECBAg0DABAdCGUWqIAAECBAgQIECAAAECBAgQIECAAIG8CQiA5m1G9IcAAQIECBAgQIAAAQIECBAgQIAAgYYJCIA2jFJDBAgQIECAAAECBAgQIECAAAECBAjkTUAANG8zoj8ECBAgQIAAAQIECBAgQIAAAQIECDRMQAC0YZQaIkCAAAECBAgQIECAAAECBAgQIEAgbwICoHmbEf0hQIAAAQIECBAgQIAAAQIECBAgQKBhAgKgDaPUEAECBAgQIECAAAECBAgQIECAAAECeRMQAM3bjOgPAQIECBAgQIAAAQIECBAgQIAAAQINExAAbRilhggQIECAAAECBAgQIECAAAECBAgQyJuAAGjeZkR/CBAgQIAAAQIECBAgQIAAAQIECBBomMCwhrWkIQIECBAgQIAAAQIECBRQ4Ne//nVmrz/5yU/G6NGjM8tkEiBAgAABAsUREAAtzlzpKQECBAgQIECAAAECAyAwfvz46Ojo6NHy2LFjBUB7qMggQIAAAQLFE3ALfPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTQAC0TijVCBAgQIAAAQIECBAgQIAAAQIECBAonoAAaPHmTI8JECBAgAABAgQIECBAgAABAgQIEKhTYFid9VQjQIAAAQIECBAgQIBAWwpss8028f777/cY26hRo3rkySBAgAABAgSKJyAAWrw502MCBAgQIECAAAECBBooMH78+Aa2pikCBAgQIEAgbwJugc/bjOgPAQIECBAgQIAAAQIECBAgQIAAAQINExAAbRilhggQIECAAAECBAgQIECAAAECBAgQyJuAAGjeZkR/CBAgQIAAAQIECBAgQIAAAQIECBBomIAAaMMoNUSAAAECBAgQIECAAAECBAgQIECAQN4EBEDzNiP6Q4AAAQIECBAgQIAAAQIECBAgQIBAwwQEQBtGqSECBAgQIECAAAECBAgQIECAAAECBPImIACatxnRHwIECBAgQIAAAQIECBAgQIAAAQIEGiYgANowSg0RIECAAAECBAgQIECAAAECBAgQIJA3AQHQvM2I/hAgQIAAAQIECBAgQIAAAQIECBAg0DABAdCGUWqIAAECBAgQIECAAAECBAgQIECAAIG8CQiA5m1G9IcAAQIECBAgQIAAAQIECBAgQIAAgYYJCIA2jFJDBAgQIECAAAECBAgQIECAAAECBAjkTUAANG8zoj8ECBAgQIAAAQIECBAgQIAAAQIECDRMQAC0YZQaIkCAAAECBAgQIECAAAECBAgQIEAgbwICoHmbEf0hQIAAAQIECBAgQIAAAQIECBAgQKBhAgKgDaPUEAECBAgQIECAAAECBAgQIECAAAECeRMYlrcO6Q8BAgQIECBAgAABAgQIECAwOAQuvvji6OjoiEceeaQ84Mcffzz+93//t/P9GmusEcsvv3y5zAEBAgT6IjCk9A9NR19OdE77CKy++upx1113lQc0derUWGCBBcrvHRAgQIAAAQIECBAgQIAAgYEQGDp0aGcAtFrbJ554Yuy3337ViuUTIECgLgG3wNfFpBIBAgQIECBAgAABAgQIECBAgAABAkUUcAt8EWdNnwkQIECAAAECBAgQIECAQBsIHHbYYTVXgG6wwQZtMEpDIECg1QJugW/1DOTg+m6Bz8Ek6AIBAgQIECBAgAABAgQIECBAgMCACLgFfkBYNUqAAAECBAgQIECAAAECBAgQIECAQB4EBEDzMAv6QIAAAQIECBAgQIAAAQIECBAgQIDAgAh4BuiAsGqUAAECBAgQIECAAIGiCEyYMCGzq+utt14stthimWUyCRAgQIAAgeIICIAWZ670lAABAgQIECBAgACBARDYf//9MzdhOfvsswVAB8BbkwQIECBAoNkCboFvtrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNAEB0KZRuxABAgQIECBAgAABAgQIECBAgAABAs0WEABttrjrESBAgAABAgQIECBAgAABAgQIECDQNIFhTbuSCxVG4MYbb4x55523MP3VUQIECBAgQIAAAQL9EXjzzTejo6OjRxP//Oc/47333uuRL4MAAQIECBAYWIGNNtoohg1rXNhySOkHfc+f9AM7Bq3nTGD11VePu+66K2e90h0CBAgQIECAAAECBAgQIECAAIHBKDBlypRYZJFFGjb0xoVSG9YlDTVbYJNNNomxY8fGVVddFW+99VazL1++3jzzzFM+fv/991val3JHGngwYsSIGDp0xlMnqq00aOAlm9rUnHPOGXPNNVf5mu+8805brZhIc5fmsDul1SBpjO2UKv8fTH8bS9+j7ZTmnnvumGOOOcpDSv/epX9r2iWlv44OHz68PJxp06bFu+++W35f9IMhQ4bEyJEjy8OYPn16vP322+X37XCQxpfG2Z3eeOON7sO2eE3fn5V/xU/zl+axXVL69yX9O9Od0v9/6f/DdkqVPycGw2e1dvt/MH1OS5/XupPPat0SxXmt/H9wMHxWa/ffl3xWK87/e909HWyf1dru96XuifQ6eAVOPvnkzsEvs8wy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" width="672" /></p>
<div class="sourceCode" id="cb41"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb41-1"><a href="#cb41-1" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_WLS_covar <span class="ot">&lt;-</span> df_estimates 　 <span class="co">#for robustness check</span></span>
<span id="cb41-2"><a href="#cb41-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb41-3"><a href="#cb41-3" aria-hidden="true" tabindex="-1"></a>results_jukyo_number_WLS_covar <span class="ot">&lt;-</span> estimation_results <span class="co"># for only-post DID table</span></span></code></pre></div>
</div>
</div>
<div id="merge-outcome-resultsアウトカム結果の結合" class="section level1" number="11">
<h1 number="11"><span class="header-section-number">11</span> Merge outcome results/アウトカム結果の結合</h1>
<div id="emergency-small-amount-funds緊急小口" class="section level2" number="11.1">
<h2 number="11.1"><span class="header-section-number">11.1</span> emergency small amount funds/緊急小口</h2>
<div class="sourceCode" id="cb42"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb42-1"><a href="#cb42-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb42-2"><a href="#cb42-2" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_koguchi_number_OLS, </span>
<span id="cb42-3"><a href="#cb42-3" aria-hidden="true" tabindex="-1"></a>                                           　　　 estimates_koguchi_number_WLS)</span>
<span id="cb42-4"><a href="#cb42-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb42-5"><a href="#cb42-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb42-6"><a href="#cb42-6" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_koguchi_number_bind)</span>
<span id="cb42-7"><a href="#cb42-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb42-8"><a href="#cb42-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb42-9"><a href="#cb42-9" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_bind <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_koguchi_number_bind, </span>
<span id="cb42-10"><a href="#cb42-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;Emergency Small Amount Funds&quot;</span>) <span class="sc">+</span></span>
<span id="cb42-11"><a href="#cb42-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb42-12"><a href="#cb42-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb42-13"><a href="#cb42-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_bind)</span></code></pre></div>
<div id="htmlwidget-df395e6bd22b4c1b71a6" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-df395e6bd22b4c1b71a6">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.678166886803628,0.76834656906024,-0.238457415627141,1.28384930498099,0.0597183413143277,0.146226710477484,0.632079939060884,0.88183901948369,0.270409613091415,0.524465199467242,-1.32307936623076,-0.774427966523655,-28.3241205020361,207.065668975806,339.711554921973,249.237454864141,162.376991822736,157.823049215291,0,null,null],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -28.32412050<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 207.06566898<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 339.71155492<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 249.23745486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 162.37699182<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 157.82304922<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.580371107620238,0.819543315197549,0.0310046107384778,1.05145794374577,0.253475661037555,0.603500662793962,0.612248704620242,1.14239227536977,0.670381961446708,0.805486514305713,-1.63911903914419,-1.22168361669272,38.030397739035,239.830497044059,409.323199419762,275.079521146602,171.047158246805,143.655040818754,0,null,null],"text":["month: 2019-01<br />estimate:   0.58037111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:   0.81954332<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:   0.03100461<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:   1.05145794<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:   0.25347566<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:   0.60350066<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:   0.61224870<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:   1.14239228<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.67038196<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:   0.80548651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -1.63911904<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -1.22168362<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  38.03039774<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 239.83049704<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 409.32319942<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 275.07952115<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 171.04715825<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 143.65504082<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.678166886803628,0.76834656906024,-0.238457415627141,1.28384930498099,0.0597183413143277,0.146226710477484,0.632079939060884,0.88183901948369,0.270409613091415,0.524465199467242,-1.32307936623076,-0.774427966523655,0,null,null,-28.3241205020361,207.065668975806,339.711554921973,249.237454864141,162.376991822736,157.823049215291],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -28.32412050<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 207.06566898<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 339.71155492<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 249.23745486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 162.37699182<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 157.82304922<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.580371107620238,0.819543315197549,0.0310046107384778,1.05145794374577,0.253475661037555,0.603500662793962,0.612248704620242,1.14239227536977,0.670381961446708,0.805486514305713,-1.63911903914419,-1.22168361669272,0,null,null,38.030397739035,239.830497044059,409.323199419762,275.079521146602,171.047158246805,143.655040818754],"text":["month: 2019-01<br />estimate:   0.58037111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:   0.81954332<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:   0.03100461<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:   1.05145794<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:   0.25347566<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:   0.60350066<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:   0.61224870<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:   1.14239228<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.67038196<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:   0.80548651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -1.63911904<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -1.22168362<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  38.03039774<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 239.83049704<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 409.32319942<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 275.07952115<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 171.04715825<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 143.65504082<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.678166886803628,0.76834656906024,-0.238457415627141,1.28384930498099,0.0597183413143277,0.146226710477484,0.632079939060884,0.88183901948369,0.270409613091415,0.524465199467242,-1.32307936623076,-0.774427966523655,-28.3241205020361,207.065668975806,339.711554921973,249.237454864141,162.376991822736,157.823049215291,0,null,null],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.4967972<br />ci_upper:   1.85313098<br />width: 0.5","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.2258365<br />ci_upper:   1.76252966<br />width: 0.5","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.7118382<br />ci_upper:   1.23492341<br />width: 0.5","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:    0.2243990<br />ci_upper:   2.34329961<br />width: 0.5","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.0950480<br />ci_upper:   1.21448472<br />width: 0.5","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.7484633<br />ci_upper:   1.04091669<br />width: 0.5","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.5651436<br />ci_upper:   1.82930352<br />width: 0.5","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.1651227<br />ci_upper:   1.92880078<br />width: 0.5","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.7799752<br />ci_upper:   1.32079447<br />width: 0.5","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.6779024<br />ci_upper:   1.72683278<br />width: 0.5","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -2.7184825<br />ci_upper:   0.07232375<br />width: 0.5","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.8860474<br />ci_upper:   0.33719144<br />width: 0.5","month: 2020-04<br />estimate: -28.32412050<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -298.5858692<br />ci_upper: 241.93762818<br />width: 0.5","month: 2020-05<br />estimate: 207.06566898<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -13.1069807<br />ci_upper: 427.23831866<br />width: 0.5","month: 2020-06<br />estimate: 339.71155492<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  183.0574229<br />ci_upper: 496.36568695<br />width: 0.5","month: 2020-07<br />estimate: 249.23745486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  148.2511057<br />ci_upper: 350.22380402<br />width: 0.5","month: 2020-08<br />estimate: 162.37699182<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   90.1207721<br />ci_upper: 234.63321157<br />width: 0.5","month: 2020-09<br />estimate: 157.82304922<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   83.0666342<br />ci_upper: 232.57946419<br />width: 0.5","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:    0.0000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[1.17496409053387,0.994183092425631,1.47338082113999,1.05945030792292,1.15476638335392,0.894689978359473,1.19722358223252,1.0469617653201,1.0503848549971,1.20236758177244,1.3954031193367,1.11161941116697,270.261748685655,220.172649680592,156.654132026616,100.986349153827,72.2562197517951,74.7564149739418,0,null,null],"arrayminus":[1.17496409053387,0.994183092425631,1.47338082113999,1.05945030792292,1.15476638335392,0.894689978359474,1.19722358223252,1.0469617653201,1.0503848549971,1.20236758177244,1.3954031193367,1.11161941116697,270.261748685655,220.172649680592,156.654132026616,100.986349153827,72.2562197517951,74.7564149739418,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.580371107620238,0.819543315197549,0.0310046107384778,1.05145794374577,0.253475661037555,0.603500662793962,0.612248704620242,1.14239227536977,0.670381961446708,0.805486514305713,-1.63911903914419,-1.22168361669272,38.030397739035,239.830497044059,409.323199419762,275.079521146602,171.047158246805,143.655040818754,0,null,null],"text":["month: 2019-01<br />estimate:   0.58037111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.6819934<br />ci_upper:   1.84273558<br />width: 0.5","month: 2019-02<br />estimate:   0.81954332<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.2640060<br />ci_upper:   1.90309262<br />width: 0.5","month: 2019-03<br />estimate:   0.03100461<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -1.3342014<br />ci_upper:   1.39621059<br />width: 0.5","month: 2019-04<br />estimate:   1.05145794<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.1802196<br />ci_upper:   2.28313547<br />width: 0.5","month: 2019-05<br />estimate:   0.25347566<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -1.0669537<br />ci_upper:   1.57390501<br />width: 0.5","month: 2019-06<br />estimate:   0.60350066<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.4393542<br />ci_upper:   1.64635555<br />width: 0.5","month: 2019-07<br />estimate:   0.61224870<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.6642090<br />ci_upper:   1.88870645<br />width: 0.5","month: 2019-08<br />estimate:   1.14239228<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:    0.0322143<br />ci_upper:   2.25257025<br />width: 0.5","month: 2019-09<br />estimate:   0.67038196<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.3057163<br />ci_upper:   1.64648023<br />width: 0.5","month: 2019-10<br />estimate:   0.80548651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.5800346<br />ci_upper:   2.19100767<br />width: 0.5","month: 2019-11<br />estimate:  -1.63911904<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -3.3219671<br />ci_upper:   0.04372898<br />width: 0.5","month: 2019-12<br />estimate:  -1.22168362<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -2.4629764<br />ci_upper:   0.01960914<br />width: 0.5","month: 2020-04<br />estimate:  38.03039774<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -134.1913097<br />ci_upper: 210.25210520<br />width: 0.5","month: 2020-05<br />estimate: 239.83049704<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -26.2319365<br />ci_upper: 505.89293057<br />width: 0.5","month: 2020-06<br />estimate: 409.32319942<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  189.5973589<br />ci_upper: 629.04903995<br />width: 0.5","month: 2020-07<br />estimate: 275.07952115<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  169.1745194<br />ci_upper: 380.98452286<br />width: 0.5","month: 2020-08<br />estimate: 171.04715825<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   95.6313259<br />ci_upper: 246.46299059<br />width: 0.5","month: 2020-09<br />estimate: 143.65504082<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   58.5418030<br />ci_upper: 228.76827862<br />width: 0.5","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:    0.0000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[1.26236446944932,1.08354930446157,1.36520597991335,1.23167752986006,1.32042935200218,1.04285488653016,1.27645774225503,1.11017797182737,0.976098264371459,1.38552115276014,1.68284801496154,1.24129275278962,172.221707465211,266.062433521819,219.725840527419,105.905001718328,75.4158323423901,85.1132378005881,0,null,null],"arrayminus":[1.26236446944932,1.08354930446157,1.36520597991335,1.23167752986006,1.32042935200218,1.04285488653016,1.27645774225503,1.11017797182737,0.976098264371459,1.38552115276014,1.68284801496154,1.24129275278962,172.221707465211,266.062433521819,219.725840527419,105.905001718328,75.4158323423901,85.1132378005881,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-344.967614644434,675.430785403924],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":46.8244084682441},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Emergency Small Amount Funds","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-344.967614644434,675.430785403924],"tickmode":"array","ticktext":["-250","0","250","500"],"tickvals":[-250,0,250,500],"categoryorder":"array","categoryarray":["-250","0","250","500"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d9259d4c23a":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d921f1b9be9":{"x":{},"y":{},"colour":{},"shape":{}},"8d924d98edf3":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d92732e1451":{"yintercept":{}},"8d9256380cea":{"xintercept":{}}},"cur_data":"8d9259d4c23a","visdat":{"8d9259d4c23a":["function (y) ","x"],"8d921f1b9be9":["function (y) ","x"],"8d924d98edf3":["function (y) ","x"],"8d92732e1451":["function (y) ","x"],"8d9256380cea":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="emergency-small-amount-funds緊急小口-with-covar" class="section level2" number="11.2">
<h2 number="11.2"><span class="header-section-number">11.2</span> emergency small amount funds/緊急小口 with covar</h2>
<div class="sourceCode" id="cb43"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb43-1"><a href="#cb43-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb43-2"><a href="#cb43-2" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_koguchi_number_OLS_covar, </span>
<span id="cb43-3"><a href="#cb43-3" aria-hidden="true" tabindex="-1"></a>                                           estimates_koguchi_number_WLS_covar)</span>
<span id="cb43-4"><a href="#cb43-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb43-5"><a href="#cb43-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb43-6"><a href="#cb43-6" aria-hidden="true" tabindex="-1"></a>estimates_koguchi_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_koguchi_number_bind)</span>
<span id="cb43-7"><a href="#cb43-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb43-8"><a href="#cb43-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb43-9"><a href="#cb43-9" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_bind_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_koguchi_number_bind, </span>
<span id="cb43-10"><a href="#cb43-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;Emergency Small Amount Funds, with covariates&quot;</span>) <span class="sc">+</span></span>
<span id="cb43-11"><a href="#cb43-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb43-12"><a href="#cb43-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb43-13"><a href="#cb43-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-110f2fe3b2293b45195e" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-110f2fe3b2293b45195e">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.678166886803585,0.768346569060317,-0.238457415627075,1.28384930498107,0.0597183413145777,0.146226710477599,0.63207993906082,0.881839019483647,0.270409613091445,0.524465199467305,-1.32307936623071,-0.774427966523534,3.93878344606306,222.642879783937,215.884165833281,161.762696988425,108.122356523032,115.829161796785,0,null,null],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:   3.93878345<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 222.64287978<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 215.88416583<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 161.76269699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 108.12235652<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 115.82916180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.634728618156529,0.87390082573393,0.085362121275057,1.10581545428177,0.307833171573856,0.657858173330311,0.666606215156604,1.19674978590623,0.724739471983187,0.859844024842012,-1.58476152860807,-1.16732610615665,168.906317186425,470.227754300485,394.86448337367,240.943870519099,170.157675041696,192.545178018757,0,null,null],"text":["month: 2019-01<br />estimate:   0.63472862<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:   0.87390083<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:   0.08536212<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:   1.10581545<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:   0.30783317<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:   0.65785817<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:   0.66660622<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:   1.19674979<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.72473947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:   0.85984402<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -1.58476153<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -1.16732611<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: 168.90631719<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 470.22775430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 394.86448337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 240.94387052<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 170.15767504<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 192.54517802<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.678166886803585,0.768346569060317,-0.238457415627075,1.28384930498107,0.0597183413145777,0.146226710477599,0.63207993906082,0.881839019483647,0.270409613091445,0.524465199467305,-1.32307936623071,-0.774427966523534,0,null,null,3.93878344606306,222.642879783937,215.884165833281,161.762696988425,108.122356523032,115.829161796785],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:   3.93878345<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 222.64287978<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 215.88416583<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 161.76269699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 108.12235652<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 115.82916180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.634728618156529,0.87390082573393,0.085362121275057,1.10581545428177,0.307833171573856,0.657858173330311,0.666606215156604,1.19674978590623,0.724739471983187,0.859844024842012,-1.58476152860807,-1.16732610615665,0,null,null,168.906317186425,470.227754300485,394.86448337367,240.943870519099,170.157675041696,192.545178018757],"text":["month: 2019-01<br />estimate:   0.63472862<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:   0.87390083<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:   0.08536212<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:   1.10581545<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:   0.30783317<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:   0.65785817<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:   0.66660622<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:   1.19674979<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.72473947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:   0.85984402<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -1.58476153<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -1.16732611<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: 168.90631719<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 470.22775430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 394.86448337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 240.94387052<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 170.15767504<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 192.54517802<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.678166886803585,0.768346569060317,-0.238457415627075,1.28384930498107,0.0597183413145777,0.146226710477599,0.63207993906082,0.881839019483647,0.270409613091445,0.524465199467305,-1.32307936623071,-0.774427966523534,3.93878344606306,222.642879783937,215.884165833281,161.762696988425,108.122356523032,115.829161796785,0,null,null],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.53323883<br />ci_upper:   1.88957260<br />width: 0.5","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.25667121<br />ci_upper:   1.79336434<br />width: 0.5","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.75753528<br />ci_upper:   1.28062045<br />width: 0.5","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:    0.19154005<br />ci_upper:   2.37615856<br />width: 0.5","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.13086323<br />ci_upper:   1.25029991<br />width: 0.5","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.77621216<br />ci_upper:   1.06866558<br />width: 0.5","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.60227565<br />ci_upper:   1.86643552<br />width: 0.5","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.19759436<br />ci_upper:   1.96127240<br />width: 0.5","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.81255303<br />ci_upper:   1.35337225<br />width: 0.5","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.71519393<br />ci_upper:   1.76412433<br />width: 0.5","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -2.76176105<br />ci_upper:   0.11560231<br />width: 0.5","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.92052436<br />ci_upper:   0.37166843<br />width: 0.5","month: 2020-04<br />estimate:   3.93878345<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -203.96599582<br />ci_upper: 211.84356272<br />width: 0.5","month: 2020-05<br />estimate: 222.64287978<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   44.03762173<br />ci_upper: 401.24813784<br />width: 0.5","month: 2020-06<br />estimate: 215.88416583<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   88.00573663<br />ci_upper: 343.76259504<br />width: 0.5","month: 2020-07<br />estimate: 161.76269699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   62.75729277<br />ci_upper: 260.76810121<br />width: 0.5","month: 2020-08<br />estimate: 108.12235652<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   27.40758939<br />ci_upper: 188.83712365<br />width: 0.5","month: 2020-09<br />estimate: 115.82916180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   36.65842684<br />ci_upper: 194.99989676<br />width: 0.5","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:    0.00000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[1.21140571331587,1.0250177754191,1.51907786717475,1.09230925980161,1.19058157233476,0.922438872964286,1.23435558528539,1.07943338385563,1.08296264097754,1.23965912647245,1.43868167954058,1.14609639271537,207.904779270936,178.605258058165,127.878429207676,99.0054042216627,80.714767131522,79.1707349609679,0,null,null],"arrayminus":[1.21140571331587,1.0250177754191,1.51907786717475,1.09230925980161,1.19058157233476,0.922438872964286,1.23435558528539,1.07943338385563,1.08296264097754,1.23965912647245,1.43868167954058,1.14609639271537,207.904779270936,178.605258058165,127.878429207676,99.0054042216627,80.714767131522,79.1707349609679,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.634728618156529,0.87390082573393,0.085362121275057,1.10581545428177,0.307833171573856,0.657858173330311,0.666606215156604,1.19674978590623,0.724739471983187,0.859844024842012,-1.58476152860807,-1.16732610615665,168.906317186425,470.227754300485,394.86448337367,240.943870519099,170.157675041696,192.545178018757,0,null,null],"text":["month: 2019-01<br />estimate:   0.63472862<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.63633291<br />ci_upper:   1.90579015<br />width: 0.5","month: 2019-02<br />estimate:   0.87390083<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.19717117<br />ci_upper:   1.94497282<br />width: 0.5","month: 2019-03<br />estimate:   0.08536212<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -1.33101633<br />ci_upper:   1.50174057<br />width: 0.5","month: 2019-04<br />estimate:   1.10581545<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.08632568<br />ci_upper:   2.29795659<br />width: 0.5","month: 2019-05<br />estimate:   0.30783317<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -1.00696991<br />ci_upper:   1.62263626<br />width: 0.5","month: 2019-06<br />estimate:   0.65785817<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.38448693<br />ci_upper:   1.70020328<br />width: 0.5","month: 2019-07<br />estimate:   0.66660622<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.57868500<br />ci_upper:   1.91189743<br />width: 0.5","month: 2019-08<br />estimate:   1.19674979<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:    0.07106156<br />ci_upper:   2.32243802<br />width: 0.5","month: 2019-09<br />estimate:   0.72473947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.24551199<br />ci_upper:   1.69499094<br />width: 0.5","month: 2019-10<br />estimate:   0.85984402<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.52115984<br />ci_upper:   2.24084789<br />width: 0.5","month: 2019-11<br />estimate:  -1.58476153<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -3.30605805<br />ci_upper:   0.13653499<br />width: 0.5","month: 2019-12<br />estimate:  -1.16732611<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -2.42478317<br />ci_upper:   0.09013096<br />width: 0.5","month: 2020-04<br />estimate: 168.90631719<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.79746452<br />ci_upper: 338.61009889<br />width: 0.5","month: 2020-05<br />estimate: 470.22775430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  170.52430534<br />ci_upper: 769.93120326<br />width: 0.5","month: 2020-06<br />estimate: 394.86448337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  113.00038722<br />ci_upper: 676.72857953<br />width: 0.5","month: 2020-07<br />estimate: 240.94387052<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   96.88156839<br />ci_upper: 385.00617265<br />width: 0.5","month: 2020-08<br />estimate: 170.15767504<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   53.06830219<br />ci_upper: 287.24704789<br />width: 0.5","month: 2020-09<br />estimate: 192.54517802<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   39.23033850<br />ci_upper: 345.86001754<br />width: 0.5","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:    0.00000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[1.27106153210133,1.07107199627244,1.41637845180312,1.19214113073323,1.31480308344105,1.04234510714717,1.24529121451348,1.12568823024944,0.970251463278795,1.38100386480161,1.72129652226632,1.25745706411769,169.703781706275,299.703448961543,281.864096155517,144.062302130304,117.089372852463,153.314839519818,0,null,null],"arrayminus":[1.27106153210133,1.07107199627244,1.41637845180312,1.19214113073323,1.31480308344105,1.04234510714717,1.24529121451348,1.12568823024944,0.970251463278795,1.38100386480161,1.72129652226632,1.25745706411769,169.703781706275,299.703448961543,281.864096155517,144.062302130304,117.089372852463,153.314839519818,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-252.660855779218,818.626063216373],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":46.8244084682441},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Emergency Small Amount Funds, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-252.660855779218,818.626063216373],"tickmode":"array","ticktext":["-250","0","250","500","750"],"tickvals":[-250,0,250,500,750],"categoryorder":"array","categoryarray":["-250","0","250","500","750"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d9267eaf9db":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d9273b9ce29":{"x":{},"y":{},"colour":{},"shape":{}},"8d922b8e211a":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d921f484d":{"yintercept":{}},"8d925c3b74b":{"xintercept":{}}},"cur_data":"8d9267eaf9db","visdat":{"8d9267eaf9db":["function (y) ","x"],"8d9273b9ce29":["function (y) ","x"],"8d922b8e211a":["function (y) ","x"],"8d921f484d":["function (y) ","x"],"8d925c3b74b":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="general-support-funds総合支援" class="section level2" number="11.3">
<h2 number="11.3"><span class="header-section-number">11.3</span> general support funds/総合支援</h2>
<div class="sourceCode" id="cb44"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb44-1"><a href="#cb44-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb44-2"><a href="#cb44-2" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_sogo_number_OLS, </span>
<span id="cb44-3"><a href="#cb44-3" aria-hidden="true" tabindex="-1"></a>                                               estimates_sogo_number_WLS)</span>
<span id="cb44-4"><a href="#cb44-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb44-5"><a href="#cb44-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb44-6"><a href="#cb44-6" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_sogo_number_bind)</span>
<span id="cb44-7"><a href="#cb44-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb44-8"><a href="#cb44-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb44-9"><a href="#cb44-9" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_bind <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_sogo_number_bind, </span>
<span id="cb44-10"><a href="#cb44-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;General Support Funds&quot;</span>) <span class="sc">+</span> </span>
<span id="cb44-11"><a href="#cb44-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb44-12"><a href="#cb44-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb44-13"><a href="#cb44-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_bind)</span></code></pre></div>
<div id="htmlwidget-785c95926410ef2fe56c" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-785c95926410ef2fe56c">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0212407394009413,0.0488709846945137,0.0270753908416846,-0.00452815238640957,0.0788446137949815,-0.0841996475544506,0.07318981566986,0.110561233169453,0.126322956665742,-0.036451274941047,-0.0247392812094645,-0.222598076948959,-5.32862106175363,44.8344120661707,181.651463587594,249.944348139415,154.912045555675,148.002465685642,0,null,null],"text":["month: 2019-01<br />estimate:   0.021240739<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.048870985<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:   0.027075391<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  -0.004528152<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.078844614<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  -0.084199648<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.073189816<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.110561233<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.126322957<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  -0.036451275<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -0.024739281<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.222598077<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  -5.328621062<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  44.834412066<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 181.651463588<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 249.944348139<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 154.912045556<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 148.002465686<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.00415272319365556,-0.0169752408362882,-0.0065851755367845,-0.0498324762804003,-0.0192338633936657,-0.120583608132435,-0.0573761876504335,-0.0220903912597521,0.0406684963519837,-0.0782977634403892,-0.0540803247303643,-0.20568687192781,-6.05568955314975,40.3100172904751,189.780513634226,238.778780762359,137.986071371726,130.391623754908,0,null,null],"text":["month: 2019-01<br />estimate:   0.004152723<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  -0.016975241<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  -0.006585176<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  -0.049832476<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  -0.019233863<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  -0.120583608<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  -0.057376188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  -0.022090391<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.040668496<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  -0.078297763<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -0.054080325<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -0.205686872<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  -6.055689553<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  40.310017290<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 189.780513634<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 238.778780762<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 137.986071372<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 130.391623755<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0212407394009413,0.0488709846945137,0.0270753908416846,-0.00452815238640957,0.0788446137949815,-0.0841996475544506,0.07318981566986,0.110561233169453,0.126322956665742,-0.036451274941047,-0.0247392812094645,-0.222598076948959,0,null,null,-5.32862106175363,44.8344120661707,181.651463587594,249.944348139415,154.912045555675,148.002465685642],"text":["month: 2019-01<br />estimate:   0.021240739<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.048870985<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:   0.027075391<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  -0.004528152<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.078844614<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  -0.084199648<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.073189816<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.110561233<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.126322957<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  -0.036451275<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -0.024739281<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.222598077<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  -5.328621062<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  44.834412066<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 181.651463588<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 249.944348139<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 154.912045556<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 148.002465686<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.00415272319365556,-0.0169752408362882,-0.0065851755367845,-0.0498324762804003,-0.0192338633936657,-0.120583608132435,-0.0573761876504335,-0.0220903912597521,0.0406684963519837,-0.0782977634403892,-0.0540803247303643,-0.20568687192781,0,null,null,-6.05568955314975,40.3100172904751,189.780513634226,238.778780762359,137.986071371726,130.391623754908],"text":["month: 2019-01<br />estimate:   0.004152723<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  -0.016975241<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  -0.006585176<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  -0.049832476<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  -0.019233863<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  -0.120583608<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  -0.057376188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  -0.022090391<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.040668496<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  -0.078297763<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -0.054080325<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -0.205686872<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  -6.055689553<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  40.310017290<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 189.780513634<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 238.778780762<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 137.986071372<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 130.391623755<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0212407394009413,0.0488709846945137,0.0270753908416846,-0.00452815238640957,0.0788446137949815,-0.0841996475544506,0.07318981566986,0.110561233169453,0.126322956665742,-0.036451274941047,-0.0247392812094645,-0.222598076948959,-5.32862106175363,44.8344120661707,181.651463587594,249.944348139415,154.912045555675,148.002465685642,0,null,null],"text":["month: 2019-01<br />estimate:   0.021240739<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.092150373<br />ci_upper:   0.13463185<br />width: 0.5","month: 2019-02<br />estimate:   0.048870985<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.066468939<br />ci_upper:   0.16421091<br />width: 0.5","month: 2019-03<br />estimate:   0.027075391<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.082753331<br />ci_upper:   0.13690411<br />width: 0.5","month: 2019-04<br />estimate:  -0.004528152<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.251215130<br />ci_upper:   0.24215883<br />width: 0.5","month: 2019-05<br />estimate:   0.078844614<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.163083038<br />ci_upper:   0.32077227<br />width: 0.5","month: 2019-06<br />estimate:  -0.084199648<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.237648155<br />ci_upper:   0.06924886<br />width: 0.5","month: 2019-07<br />estimate:   0.073189816<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.198510255<br />ci_upper:   0.34488989<br />width: 0.5","month: 2019-08<br />estimate:   0.110561233<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.135248918<br />ci_upper:   0.35637138<br />width: 0.5","month: 2019-09<br />estimate:   0.126322957<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.001262121<br />ci_upper:   0.25390803<br />width: 0.5","month: 2019-10<br />estimate:  -0.036451275<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.160367311<br />ci_upper:   0.08746476<br />width: 0.5","month: 2019-11<br />estimate:  -0.024739281<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.198015112<br />ci_upper:   0.14853655<br />width: 0.5","month: 2019-12<br />estimate:  -0.222598077<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.456987898<br />ci_upper:   0.01179174<br />width: 0.5","month: 2020-04<br />estimate:  -5.328621062<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -39.317937415<br />ci_upper:  28.66069529<br />width: 0.5","month: 2020-05<br />estimate:  44.834412066<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -58.304290331<br />ci_upper: 147.97311446<br />width: 0.5","month: 2020-06<br />estimate: 181.651463588<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  25.262689997<br />ci_upper: 338.04023718<br />width: 0.5","month: 2020-07<br />estimate: 249.944348139<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  86.469913446<br />ci_upper: 413.41878283<br />width: 0.5","month: 2020-08<br />estimate: 154.912045556<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  49.058982811<br />ci_upper: 260.76510830<br />width: 0.5","month: 2020-09<br />estimate: 148.002465686<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  31.097832374<br />ci_upper: 264.90709900<br />width: 0.5","month: 2020-01<br />estimate:   0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.113391112172617,0.115339923641743,0.109828721535116,0.24668697798436,0.24192765165384,0.153448507265885,0.271700071122514,0.245810151051171,0.127585077557944,0.123916035614066,0.173275831214055,0.234389821233685,33.9893163533765,103.138702397149,156.38877359109,163.474434693306,105.853062744418,116.904633311504,0,null,null],"arrayminus":[0.113391112172617,0.115339923641743,0.109828721535116,0.24668697798436,0.24192765165384,0.153448507265885,0.271700071122514,0.245810151051171,0.127585077557944,0.123916035614066,0.173275831214055,0.234389821233685,33.9893163533765,103.138702397149,156.38877359109,163.474434693306,105.853062744418,116.904633311504,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.00415272319365556,-0.0169752408362882,-0.0065851755367845,-0.0498324762804003,-0.0192338633936657,-0.120583608132435,-0.0573761876504335,-0.0220903912597521,0.0406684963519837,-0.0782977634403892,-0.0540803247303643,-0.20568687192781,-6.05568955314975,40.3100172904751,189.780513634226,238.778780762359,137.986071371726,130.391623754908,0,null,null],"text":["month: 2019-01<br />estimate:   0.004152723<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.305620770<br />ci_upper:   0.31392622<br />width: 0.5","month: 2019-02<br />estimate:  -0.016975241<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.321049885<br />ci_upper:   0.28709940<br />width: 0.5","month: 2019-03<br />estimate:  -0.006585176<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.318206067<br />ci_upper:   0.30503572<br />width: 0.5","month: 2019-04<br />estimate:  -0.049832476<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.390193939<br />ci_upper:   0.29052899<br />width: 0.5","month: 2019-05<br />estimate:  -0.019233863<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.360723012<br />ci_upper:   0.32225529<br />width: 0.5","month: 2019-06<br />estimate:  -0.120583608<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.420515119<br />ci_upper:   0.17934790<br />width: 0.5","month: 2019-07<br />estimate:  -0.057376188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.386684799<br />ci_upper:   0.27193242<br />width: 0.5","month: 2019-08<br />estimate:  -0.022090391<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.374903582<br />ci_upper:   0.33072280<br />width: 0.5","month: 2019-09<br />estimate:   0.040668496<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.287102791<br />ci_upper:   0.36843978<br />width: 0.5","month: 2019-10<br />estimate:  -0.078297763<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.380671953<br />ci_upper:   0.22407643<br />width: 0.5","month: 2019-11<br />estimate:  -0.054080325<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.373422403<br />ci_upper:   0.26526175<br />width: 0.5","month: 2019-12<br />estimate:  -0.205686872<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.547167952<br />ci_upper:   0.13579421<br />width: 0.5","month: 2020-04<br />estimate:  -6.055689553<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -24.586474083<br />ci_upper:  12.47509498<br />width: 0.5","month: 2020-05<br />estimate:  40.310017290<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -59.426779839<br />ci_upper: 140.04681442<br />width: 0.5","month: 2020-06<br />estimate: 189.780513634<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -18.358724434<br />ci_upper: 397.91975170<br />width: 0.5","month: 2020-07<br />estimate: 238.778780762<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -20.774200016<br />ci_upper: 498.33176154<br />width: 0.5","month: 2020-08<br />estimate: 137.986071372<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -20.889923093<br />ci_upper: 296.86206584<br />width: 0.5","month: 2020-09<br />estimate: 130.391623755<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -41.504885969<br />ci_upper: 302.28813348<br />width: 0.5","month: 2020-01<br />estimate:   0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.309773493118343,0.30407464385604,0.311620891554992,0.340361462819077,0.341489149104203,0.299931510973222,0.329308610854489,0.352813191174195,0.327771287843503,0.302374189191928,0.31934207850141,0.341481079725665,18.530784529702,99.7367971291084,208.139238068,259.552980778309,158.875994464445,171.896509723673,0,null,null],"arrayminus":[0.309773493118343,0.30407464385604,0.311620891554992,0.340361462819077,0.341489149104203,0.299931510973222,0.329308610854489,0.352813191174195,0.327771287843503,0.302374189191928,0.31934207850141,0.341481079725665,18.530784529702,99.7367971291084,208.139238068,259.552980778309,158.875994464445,171.896509723673,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-87.3147069075983,526.219688609633],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"General Support Funds","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-87.3147069075983,526.219688609633],"tickmode":"array","ticktext":["0","100","200","300","400","500"],"tickvals":[-1.4210854715202e-14,100,200,300,400,500],"categoryorder":"array","categoryarray":["0","100","200","300","400","500"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d9245a24f29":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d9222fb3076":{"x":{},"y":{},"colour":{},"shape":{}},"8d92192aa4eb":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d923eb14d35":{"yintercept":{}},"8d926a43f2ba":{"xintercept":{}}},"cur_data":"8d9245a24f29","visdat":{"8d9245a24f29":["function (y) ","x"],"8d9222fb3076":["function (y) ","x"],"8d92192aa4eb":["function (y) ","x"],"8d923eb14d35":["function (y) ","x"],"8d926a43f2ba":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="general-support-funds総合支援-with-covar" class="section level2" number="11.4">
<h2 number="11.4"><span class="header-section-number">11.4</span> general support funds/総合支援 with covar</h2>
<div class="sourceCode" id="cb45"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb45-1"><a href="#cb45-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb45-2"><a href="#cb45-2" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_sogo_number_OLS_covar, </span>
<span id="cb45-3"><a href="#cb45-3" aria-hidden="true" tabindex="-1"></a>                                               estimates_sogo_number_WLS_covar)</span>
<span id="cb45-4"><a href="#cb45-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb45-5"><a href="#cb45-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb45-6"><a href="#cb45-6" aria-hidden="true" tabindex="-1"></a>estimates_sogo_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_sogo_number_bind)</span>
<span id="cb45-7"><a href="#cb45-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb45-8"><a href="#cb45-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb45-9"><a href="#cb45-9" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_bind_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_sogo_number_bind, </span>
<span id="cb45-10"><a href="#cb45-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;General Support Funds, with covariates&quot;</span>) <span class="sc">+</span></span>
<span id="cb45-11"><a href="#cb45-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb45-12"><a href="#cb45-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb45-13"><a href="#cb45-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-ff9c8b106c49cfa33b5a" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-ff9c8b106c49cfa33b5a">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0212407394011124,0.0488709846946072,0.027075390841752,-0.00452815238629362,0.0788446137952109,-0.0841996475543559,0.0731898156699749,0.110561233169561,0.126322956665896,-0.0364512749410284,-0.0247392812094144,-0.222598076948877,21.4535297020299,106.950158857465,219.808322949096,230.719738539358,117.123572788197,106.78092869882,0,null,null],"text":["month: 2019-01<br />estimate:  2.124074e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  4.887098e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  2.707539e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate: -4.528152e-03<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  7.884461e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate: -8.419965e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  7.318982e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  1.105612e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  1.263230e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate: -3.645127e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate: -2.473928e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate: -2.225981e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  2.145353e+01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  1.069502e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate:  2.198083e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate:  2.307197e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  1.171236e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  1.067809e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0590296673348339,0.0379017033050974,0.0482917686045389,0.00504446786039549,0.0356430807474955,-0.0657066639910075,-0.00249924350926697,0.0327865528815601,0.0955454404933097,-0.0234208192992271,0.000796619410779288,-0.150809927786601,25.1990529195559,163.829317603991,360.742181872117,352.172664878544,154.314862587754,140.938741805099,0,null,null],"text":["month: 2019-01<br />estimate:  5.902967e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  3.790170e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  4.829177e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  5.044468e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  3.564308e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate: -6.570666e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate: -2.499244e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  3.278655e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  9.554544e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate: -2.342082e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  7.966194e-04<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -1.508099e-01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  2.519905e+01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  1.638293e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate:  3.607422e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate:  3.521727e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  1.543149e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  1.409387e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0212407394011124,0.0488709846946072,0.027075390841752,-0.00452815238629362,0.0788446137952109,-0.0841996475543559,0.0731898156699749,0.110561233169561,0.126322956665896,-0.0364512749410284,-0.0247392812094144,-0.222598076948877,0,null,null,21.4535297020299,106.950158857465,219.808322949096,230.719738539358,117.123572788197,106.78092869882],"text":["month: 2019-01<br />estimate:  2.124074e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  4.887098e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  2.707539e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate: -4.528152e-03<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  7.884461e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate: -8.419965e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  7.318982e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  1.105612e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  1.263230e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate: -3.645127e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate: -2.473928e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate: -2.225981e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  2.145353e+01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  1.069502e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate:  2.198083e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate:  2.307197e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  1.171236e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  1.067809e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0590296673348339,0.0379017033050974,0.0482917686045389,0.00504446786039549,0.0356430807474955,-0.0657066639910075,-0.00249924350926697,0.0327865528815601,0.0955454404933097,-0.0234208192992271,0.000796619410779288,-0.150809927786601,0,null,null,25.1990529195559,163.829317603991,360.742181872117,352.172664878544,154.314862587754,140.938741805099],"text":["month: 2019-01<br />estimate:  5.902967e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  3.790170e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  4.829177e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  5.044468e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  3.564308e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate: -6.570666e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate: -2.499244e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  3.278655e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  9.554544e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate: -2.342082e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  7.966194e-04<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -1.508099e-01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  2.519905e+01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  1.638293e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate:  3.607422e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate:  3.521727e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  1.543149e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  1.409387e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0212407394011124,0.0488709846946072,0.027075390841752,-0.00452815238629362,0.0788446137952109,-0.0841996475543559,0.0731898156699749,0.110561233169561,0.126322956665896,-0.0364512749410284,-0.0247392812094144,-0.222598076948877,21.4535297020299,106.950158857465,219.808322949096,230.719738539358,117.123572788197,106.78092869882,0,null,null],"text":["month: 2019-01<br />estimate:  2.124074e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.095667209<br />ci_upper:   0.13814869<br />width: 0.5","month: 2019-02<br />estimate:  4.887098e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.070046218<br />ci_upper:   0.16778819<br />width: 0.5","month: 2019-03<br />estimate:  2.707539e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.086159679<br />ci_upper:   0.14031046<br />width: 0.5","month: 2019-04<br />estimate: -4.528152e-03<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.258866150<br />ci_upper:   0.24980985<br />width: 0.5","month: 2019-05<br />estimate:  7.884461e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.170586447<br />ci_upper:   0.32827567<br />width: 0.5","month: 2019-06<br />estimate: -8.419965e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.242407375<br />ci_upper:   0.07400808<br />width: 0.5","month: 2019-07<br />estimate:  7.318982e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.206937059<br />ci_upper:   0.35331669<br />width: 0.5","month: 2019-08<br />estimate:  1.105612e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.142872743<br />ci_upper:   0.36399521<br />width: 0.5","month: 2019-09<br />estimate:  1.263230e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.005219184<br />ci_upper:   0.25786510<br />width: 0.5","month: 2019-10<br />estimate: -3.645127e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.164210578<br />ci_upper:   0.09130803<br />width: 0.5","month: 2019-11<br />estimate: -2.473928e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.203389279<br />ci_upper:   0.15391072<br />width: 0.5","month: 2019-12<br />estimate: -2.225981e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.464257521<br />ci_upper:   0.01906137<br />width: 0.5","month: 2020-04<br />estimate:  2.145353e+01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -12.042163570<br />ci_upper:  54.94922297<br />width: 0.5","month: 2020-05<br />estimate:  1.069502e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  23.865664234<br />ci_upper: 190.03465348<br />width: 0.5","month: 2020-06<br />estimate:  2.198083e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  89.812828825<br />ci_upper: 349.80381707<br />width: 0.5","month: 2020-07<br />estimate:  2.307197e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  95.986715834<br />ci_upper: 365.45276125<br />width: 0.5","month: 2020-08<br />estimate:  1.171236e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  23.878560650<br />ci_upper: 210.36858493<br />width: 0.5","month: 2020-09<br />estimate:  1.067809e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   9.358609412<br />ci_upper: 204.20324799<br />width: 0.5","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.116907948338901,0.118917202391054,0.113235069858423,0.254337998005897,0.249431060777474,0.158207727290763,0.280126874634229,0.253433976209145,0.131542140889856,0.127759303233464,0.178649997592956,0.241659443831903,33.495693271706,83.084494623017,129.99549412448,134.733022705748,93.2450121379736,97.422319286372,0,null,null],"arrayminus":[0.116907948338901,0.118917202391054,0.113235069858423,0.254337998005897,0.249431060777474,0.158207727290763,0.280126874634229,0.253433976209145,0.131542140889856,0.127759303233464,0.178649997592956,0.241659443831903,33.495693271706,83.084494623017,129.99549412448,134.733022705748,93.2450121379736,97.422319286372,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0590296673348339,0.0379017033050974,0.0482917686045389,0.00504446786039549,0.0356430807474955,-0.0657066639910075,-0.00249924350926697,0.0327865528815601,0.0955454404933097,-0.0234208192992271,0.000796619410779288,-0.150809927786601,25.1990529195559,163.829317603991,360.742181872117,352.172664878544,154.314862587754,140.938741805099,0,null,null],"text":["month: 2019-01<br />estimate:  5.902967e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.063657640<br />ci_upper:   0.18171697<br />width: 0.5","month: 2019-02<br />estimate:  3.790170e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.082041105<br />ci_upper:   0.15784451<br />width: 0.5","month: 2019-03<br />estimate:  4.829177e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.080031600<br />ci_upper:   0.17661514<br />width: 0.5","month: 2019-04<br />estimate:  5.044468e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.202740538<br />ci_upper:   0.21282947<br />width: 0.5","month: 2019-05<br />estimate:  3.564308e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.165168308<br />ci_upper:   0.23645447<br />width: 0.5","month: 2019-06<br />estimate: -6.570666e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.209814544<br />ci_upper:   0.07840122<br />width: 0.5","month: 2019-07<br />estimate: -2.499244e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.183924091<br />ci_upper:   0.17892560<br />width: 0.5","month: 2019-08<br />estimate:  3.278655e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.168835165<br />ci_upper:   0.23440827<br />width: 0.5","month: 2019-09<br />estimate:  9.554544e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.048349264<br />ci_upper:   0.23944015<br />width: 0.5","month: 2019-10<br />estimate: -2.342082e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.160380579<br />ci_upper:   0.11353894<br />width: 0.5","month: 2019-11<br />estimate:  7.966194e-04<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.161839950<br />ci_upper:   0.16343319<br />width: 0.5","month: 2019-12<br />estimate: -1.508099e-01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.363913841<br />ci_upper:   0.06229399<br />width: 0.5","month: 2020-04<br />estimate:  2.519905e+01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   2.292172120<br />ci_upper:  48.10593372<br />width: 0.5","month: 2020-05<br />estimate:  1.638293e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  72.685183294<br />ci_upper: 254.97345191<br />width: 0.5","month: 2020-06<br />estimate:  3.607422e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: 142.460426906<br />ci_upper: 579.02393684<br />width: 0.5","month: 2020-07<br />estimate:  3.521727e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  77.371601128<br />ci_upper: 626.97372863<br />width: 0.5","month: 2020-08<br />estimate:  1.543149e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  14.573256564<br />ci_upper: 294.05646861<br />width: 0.5","month: 2020-09<br />estimate:  1.409387e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   6.789839750<br />ci_upper: 275.08764386<br />width: 0.5","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.122687307141673,0.119942808568877,0.128323368721729,0.207785005455943,0.200811388765248,0.144107880031676,0.181424847610019,0.20162171827426,0.14389470472107,0.136959759904556,0.162636569452239,0.213103913699017,22.9068807994417,91.1441343099215,218.281754966041,274.801063750261,139.74160602423,134.148902054966,0,null,null],"arrayminus":[0.122687307141673,0.119942808568877,0.128323368721729,0.207785005455943,0.200811388765248,0.144107880031676,0.181424847610019,0.20162171827426,0.14389470472107,0.136959759904556,0.162636569452239,0.213103913699017,22.9068807994417,91.1441343099215,218.281754966041,274.801063750261,139.74160602423,134.148902054966,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-43.9929581796002,658.924523238729],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"General Support Funds, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-43.9929581796002,658.924523238729],"tickmode":"array","ticktext":["0","200","400","600"],"tickvals":[0,200,400,600],"categoryorder":"array","categoryarray":["0","200","400","600"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d9237792b7d":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d92741637fe":{"x":{},"y":{},"colour":{},"shape":{}},"8d925eb6403c":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d92f3353b8":{"yintercept":{}},"8d9272bd5cd3":{"xintercept":{}}},"cur_data":"8d9237792b7d","visdat":{"8d9237792b7d":["function (y) ","x"],"8d92741637fe":["function (y) ","x"],"8d925eb6403c":["function (y) ","x"],"8d92f3353b8":["function (y) ","x"],"8d9272bd5cd3":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="housing-security-benefit居住確保給付金" class="section level2" number="11.5">
<h2 number="11.5"><span class="header-section-number">11.5</span> housing security benefit/居住確保給付金</h2>
<div class="sourceCode" id="cb46"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb46-1"><a href="#cb46-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb46-2"><a href="#cb46-2" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_jukyo_number_OLS, </span>
<span id="cb46-3"><a href="#cb46-3" aria-hidden="true" tabindex="-1"></a>                                                estimates_jukyo_number_WLS)</span>
<span id="cb46-4"><a href="#cb46-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb46-5"><a href="#cb46-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb46-6"><a href="#cb46-6" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_jukyo_number_bind)</span>
<span id="cb46-7"><a href="#cb46-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb46-8"><a href="#cb46-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb46-9"><a href="#cb46-9" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_bind <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_jukyo_number_bind, </span>
<span id="cb46-10"><a href="#cb46-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;Housing Security Benefit&quot;</span>) <span class="sc">+</span></span>
<span id="cb46-11"><a href="#cb46-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb46-12"><a href="#cb46-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb46-13"><a href="#cb46-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_bind)</span></code></pre></div>
<div id="htmlwidget-4dd562efdb801a5f1fb8" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-4dd562efdb801a5f1fb8">{"x":{"data":[{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.391919082094109,0.178148583966891,-4.09680890107197,21.860212364067,66.0313180069205,44.9648422304242,20.722134358884,16.6400380821047,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -4.0968089<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 21.8602124<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 66.0313180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 44.9648422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 20.7221344<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 16.6400381<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.618053754151575,0.680761868854958,0.774197561738596,35.7429068921771,93.3061306661446,70.7724461854539,30.9847620033236,23.8369112210112,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  0.7741976<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 35.7429069<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 93.3061307<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 70.7724462<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 30.9847620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 23.8369112<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.391919082094109,0.178148583966891,0,null,null,null,null,null,null,null,null,null,null,null,null,-4.09680890107197,21.860212364067,66.0313180069205,44.9648422304242,20.722134358884,16.6400380821047],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -4.0968089<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 21.8602124<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 66.0313180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 44.9648422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 20.7221344<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 16.6400381<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.618053754151575,0.680761868854958,0,null,null,null,null,null,null,null,null,null,null,null,null,0.774197561738596,35.7429068921771,93.3061306661446,70.7724461854539,30.9847620033236,23.8369112210112],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  0.7741976<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 35.7429069<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 93.3061307<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 70.7724462<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 30.9847620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 23.8369112<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.391919082094109,0.178148583966891,-4.09680890107197,21.860212364067,66.0313180069205,44.9648422304242,20.722134358884,16.6400380821047,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.1380933<br />ci_upper:   0.9219314<br />width: 0.5","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.2425401<br />ci_upper:   0.5988372<br />width: 0.5","month: 2020-04<br />estimate: -4.0968089<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -18.2199613<br />ci_upper:  10.0263435<br />width: 0.5","month: 2020-05<br />estimate: 21.8602124<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -11.8083079<br />ci_upper:  55.5287327<br />width: 0.5","month: 2020-06<br />estimate: 66.0313180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  33.0106392<br />ci_upper:  99.0519968<br />width: 0.5","month: 2020-07<br />estimate: 44.9648422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  25.0318808<br />ci_upper:  64.8978036<br />width: 0.5","month: 2020-08<br />estimate: 20.7221344<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  11.6454590<br />ci_upper:  29.7988097<br />width: 0.5","month: 2020-09<br />estimate: 16.6400381<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  10.3954750<br />ci_upper:  22.8846011<br />width: 0.5","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   0.0000000<br />ci_upper:   0.0000000<br />width: 0.5","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.530012344927902,0.420688655269835,14.1231523558881,33.6685203116159,33.0206788386433,19.9329614076121,9.07667534630045,6.24456306762364,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.530012344927902,0.420688655269835,14.1231523558881,33.6685203116159,33.0206788386433,19.9329614076121,9.07667534630045,6.24456306762364,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.618053754151575,0.680761868854958,0.774197561738596,35.7429068921771,93.3061306661446,70.7724461854539,30.9847620033236,23.8369112210112,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.1138032<br />ci_upper:   1.1223043<br />width: 0.5","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.1503571<br />ci_upper:   1.2111666<br />width: 0.5","month: 2020-04<br />estimate:  0.7741976<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -6.9976569<br />ci_upper:   8.5460521<br />width: 0.5","month: 2020-05<br />estimate: 35.7429069<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -11.9349077<br />ci_upper:  83.4207215<br />width: 0.5","month: 2020-06<br />estimate: 93.3061307<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  25.1375817<br />ci_upper: 161.4746797<br />width: 0.5","month: 2020-07<br />estimate: 70.7724462<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  35.9796936<br />ci_upper: 105.5651988<br />width: 0.5","month: 2020-08<br />estimate: 30.9847620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  13.3784186<br />ci_upper:  48.5911054<br />width: 0.5","month: 2020-09<br />estimate: 23.8369112<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  11.9818447<br />ci_upper:  35.6919778<br />width: 0.5","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.0000000<br />ci_upper:   0.0000000<br />width: 0.5","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.504250513309101,0.5304047586356,7.77185449093305,47.6778146337064,68.168549007827,34.7927526220545,17.6063433798381,11.8550665526538,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.504250513309101,0.5304047586356,7.77185449093305,47.6778146337064,68.168549007827,34.7927526220545,17.6063433798381,11.8550665526538,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-27.2046933035067,170.459411720518],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Housing Security Benefit","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-27.2046933035067,170.459411720518],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d9238c90e75":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d9217d44073":{"x":{},"y":{},"colour":{},"shape":{}},"8d926fd34a3d":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d9218af2426":{"yintercept":{}},"8d92126e4773":{"xintercept":{}}},"cur_data":"8d9238c90e75","visdat":{"8d9238c90e75":["function (y) ","x"],"8d9217d44073":["function (y) ","x"],"8d926fd34a3d":["function (y) ","x"],"8d9218af2426":["function (y) ","x"],"8d92126e4773":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="housing-security-benefit居住確保給付金-with-covar" class="section level2" number="11.6">
<h2 number="11.6"><span class="header-section-number">11.6</span> housing security benefit/居住確保給付金 with covar</h2>
<div class="sourceCode" id="cb47"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb47-1"><a href="#cb47-1" aria-hidden="true" tabindex="-1"></a><span class="co">#merge and label estimates data</span></span>
<span id="cb47-2"><a href="#cb47-2" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_bind <span class="ot">&lt;-</span> dplyr<span class="sc">::</span><span class="fu">bind_rows</span>(estimates_jukyo_number_OLS_covar, </span>
<span id="cb47-3"><a href="#cb47-3" aria-hidden="true" tabindex="-1"></a>                                                estimates_jukyo_number_WLS_covar)</span>
<span id="cb47-4"><a href="#cb47-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb47-5"><a href="#cb47-5" aria-hidden="true" tabindex="-1"></a><span class="co">#change labels and reorder labels</span></span>
<span id="cb47-6"><a href="#cb47-6" aria-hidden="true" tabindex="-1"></a>estimates_jukyo_number_bind <span class="ot">&lt;-</span> <span class="fu">estimates_labeling_poverty</span>(estimates_jukyo_number_bind)</span>
<span id="cb47-7"><a href="#cb47-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb47-8"><a href="#cb47-8" aria-hidden="true" tabindex="-1"></a><span class="co">#graph</span></span>
<span id="cb47-9"><a href="#cb47-9" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_bind_covar <span class="ot">&lt;-</span> <span class="fu">event_study_graph_bind_legend</span>(<span class="at">data =</span> estimates_jukyo_number_bind, </span>
<span id="cb47-10"><a href="#cb47-10" aria-hidden="true" tabindex="-1"></a>                                             <span class="at">graph_title =</span> <span class="st">&quot;Housing Security Benefit, with covariates&quot;</span>) <span class="sc">+</span></span>
<span id="cb47-11"><a href="#cb47-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;none&#39;</span>)</span>
<span id="cb47-12"><a href="#cb47-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb47-13"><a href="#cb47-13" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-0304f563d81d838cc517" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-0304f563d81d838cc517">{"x":{"data":[{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.391919082094113,0.178148583966897,-2.20154313784824,1.57075811323903,16.6293835478172,11.9298223336594,5.66166597462719,7.89643959796808,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -2.2015431<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  1.5707581<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 16.6293835<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 11.9298223<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  5.6616660<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  7.8964396<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.618053754151538,0.68076186885499,-1.15320007069408,-6.34649650682659,10.6084460323692,17.6754820229643,3.9927096276942,7.36378429492522,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -1.1532001<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: -6.3464965<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 10.6084460<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 17.6754820<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  3.9927096<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  7.3637843<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.391919082094113,0.178148583966897,0,null,null,null,null,null,null,null,null,null,null,null,null,-2.20154313784824,1.57075811323903,16.6293835478172,11.9298223336594,5.66166597462719,7.89643959796808],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -2.2015431<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  1.5707581<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 16.6293835<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 11.9298223<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  5.6616660<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  7.8964396<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.618053754151538,0.68076186885499,0,null,null,null,null,null,null,null,null,null,null,null,null,-1.15320007069408,-6.34649650682659,10.6084460323692,17.6754820229643,3.9927096276942,7.36378429492522],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -1.1532001<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: -6.3464965<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 10.6084460<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 17.6754820<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  3.9927096<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  7.3637843<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.391919082094113,0.178148583966897,-2.20154313784824,1.57075811323903,16.6293835478172,11.9298223336594,5.66166597462719,7.89643959796808,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.17740550<br />ci_upper:  0.9612437<br />width: 0.5","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.27374352<br />ci_upper:  0.6300407<br />width: 0.5","month: 2020-04<br />estimate: -2.2015431<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -14.61060994<br />ci_upper: 10.2075237<br />width: 0.5","month: 2020-05<br />estimate:  1.5707581<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -27.27873228<br />ci_upper: 30.4202485<br />width: 0.5","month: 2020-06<br />estimate: 16.6293835<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -5.24667249<br />ci_upper: 38.5054396<br />width: 0.5","month: 2020-07<br />estimate: 11.9298223<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.16275127<br />ci_upper: 24.0223959<br />width: 0.5","month: 2020-08<br />estimate:  5.6616660<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -1.23044089<br />ci_upper: 12.5537728<br />width: 0.5","month: 2020-09<br />estimate:  7.8964396<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   3.10056504<br />ci_upper: 12.6923142<br />width: 0.5","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   0.00000000<br />ci_upper:  0.0000000<br />width: 0.5","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.56932458544077,0.451892105067422,12.4090667982278,28.8494903942761,21.8760560336999,12.0925736004652,6.89210686244711,4.79587455763836,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.56932458544077,0.451892105067422,12.4090667982278,28.8494903942761,21.8760560336999,12.0925736004652,6.89210686244711,4.79587455763836,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.618053754151538,0.68076186885499,-1.15320007069408,-6.34649650682659,10.6084460323692,17.6754820229643,3.9927096276942,7.36378429492522,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.07640181<br />ci_upper:  1.1597057<br />width: 0.5","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.11101576<br />ci_upper:  1.2505080<br />width: 0.5","month: 2020-04<br />estimate: -1.1532001<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -8.45013000<br />ci_upper:  6.1437299<br />width: 0.5","month: 2020-05<br />estimate: -6.3464965<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -35.18461435<br />ci_upper: 22.4916213<br />width: 0.5","month: 2020-06<br />estimate: 10.6084460<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -16.65756705<br />ci_upper: 37.8744591<br />width: 0.5","month: 2020-07<br />estimate: 17.6754820<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -2.02590083<br />ci_upper: 37.3768649<br />width: 0.5","month: 2020-08<br />estimate:  3.9927096<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -6.40472277<br />ci_upper: 14.3901420<br />width: 0.5","month: 2020-09<br />estimate:  7.3637843<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.64146068<br />ci_upper: 14.0861079<br />width: 0.5","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.00000000<br />ci_upper:  0.0000000<br />width: 0.5","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.541651939234177,0.569746105382429,7.29692992829483,28.8381178469778,27.2660130838865,19.7013828518888,10.3974323978302,6.72232361933553,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.541651939234177,0.569746105382429,7.29692992829483,28.8381178469778,27.2660130838865,19.7013828518888,10.3974323978302,6.72232361933553,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-38.8691170505705,42.1899422782832],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Housing Security Benefit, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-38.8691170505705,42.1899422782832],"tickmode":"array","ticktext":["-20","0","20","40"],"tickvals":[-20,0,20,40],"categoryorder":"array","categoryarray":["-20","0","20","40"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d92425001d7":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d9212a8ec44":{"x":{},"y":{},"colour":{},"shape":{}},"8d92102f6dee":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d9219da2c8f":{"yintercept":{}},"8d9242a36d8b":{"xintercept":{}}},"cur_data":"8d92425001d7","visdat":{"8d92425001d7":["function (y) ","x"],"8d9212a8ec44":["function (y) ","x"],"8d92102f6dee":["function (y) ","x"],"8d9219da2c8f":["function (y) ","x"],"8d9242a36d8b":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
<div id="ggplotly" class="section level2" number="11.7">
<h2 number="11.7"><span class="header-section-number">11.7</span> GGplotly</h2>
<div class="sourceCode" id="cb48"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb48-1"><a href="#cb48-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_bind)</span></code></pre></div>
<div id="htmlwidget-ae8c69f3d1e08a5dddaf" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-ae8c69f3d1e08a5dddaf">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.678166886803628,0.76834656906024,-0.238457415627141,1.28384930498099,0.0597183413143277,0.146226710477484,0.632079939060884,0.88183901948369,0.270409613091415,0.524465199467242,-1.32307936623076,-0.774427966523655,-28.3241205020361,207.065668975806,339.711554921973,249.237454864141,162.376991822736,157.823049215291,0,null,null],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -28.32412050<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 207.06566898<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 339.71155492<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 249.23745486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 162.37699182<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 157.82304922<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.580371107620238,0.819543315197549,0.0310046107384778,1.05145794374577,0.253475661037555,0.603500662793962,0.612248704620242,1.14239227536977,0.670381961446708,0.805486514305713,-1.63911903914419,-1.22168361669272,38.030397739035,239.830497044059,409.323199419762,275.079521146602,171.047158246805,143.655040818754,0,null,null],"text":["month: 2019-01<br />estimate:   0.58037111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:   0.81954332<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:   0.03100461<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:   1.05145794<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:   0.25347566<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:   0.60350066<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:   0.61224870<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:   1.14239228<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.67038196<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:   0.80548651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -1.63911904<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -1.22168362<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  38.03039774<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 239.83049704<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 409.32319942<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 275.07952115<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 171.04715825<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 143.65504082<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.678166886803628,0.76834656906024,-0.238457415627141,1.28384930498099,0.0597183413143277,0.146226710477484,0.632079939060884,0.88183901948369,0.270409613091415,0.524465199467242,-1.32307936623076,-0.774427966523655,0,null,null,-28.3241205020361,207.065668975806,339.711554921973,249.237454864141,162.376991822736,157.823049215291],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -28.32412050<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 207.06566898<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 339.71155492<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 249.23745486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 162.37699182<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 157.82304922<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.580371107620238,0.819543315197549,0.0310046107384778,1.05145794374577,0.253475661037555,0.603500662793962,0.612248704620242,1.14239227536977,0.670381961446708,0.805486514305713,-1.63911903914419,-1.22168361669272,0,null,null,38.030397739035,239.830497044059,409.323199419762,275.079521146602,171.047158246805,143.655040818754],"text":["month: 2019-01<br />estimate:   0.58037111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:   0.81954332<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:   0.03100461<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:   1.05145794<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:   0.25347566<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:   0.60350066<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:   0.61224870<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:   1.14239228<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.67038196<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:   0.80548651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -1.63911904<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -1.22168362<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  38.03039774<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 239.83049704<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 409.32319942<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 275.07952115<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 171.04715825<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 143.65504082<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.678166886803628,0.76834656906024,-0.238457415627141,1.28384930498099,0.0597183413143277,0.146226710477484,0.632079939060884,0.88183901948369,0.270409613091415,0.524465199467242,-1.32307936623076,-0.774427966523655,-28.3241205020361,207.065668975806,339.711554921973,249.237454864141,162.376991822736,157.823049215291,0,null,null],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.4967972<br />ci_upper:   1.85313098<br />width: 0.5","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.2258365<br />ci_upper:   1.76252966<br />width: 0.5","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.7118382<br />ci_upper:   1.23492341<br />width: 0.5","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:    0.2243990<br />ci_upper:   2.34329961<br />width: 0.5","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.0950480<br />ci_upper:   1.21448472<br />width: 0.5","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.7484633<br />ci_upper:   1.04091669<br />width: 0.5","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.5651436<br />ci_upper:   1.82930352<br />width: 0.5","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.1651227<br />ci_upper:   1.92880078<br />width: 0.5","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.7799752<br />ci_upper:   1.32079447<br />width: 0.5","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.6779024<br />ci_upper:   1.72683278<br />width: 0.5","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -2.7184825<br />ci_upper:   0.07232375<br />width: 0.5","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.8860474<br />ci_upper:   0.33719144<br />width: 0.5","month: 2020-04<br />estimate: -28.32412050<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -298.5858692<br />ci_upper: 241.93762818<br />width: 0.5","month: 2020-05<br />estimate: 207.06566898<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -13.1069807<br />ci_upper: 427.23831866<br />width: 0.5","month: 2020-06<br />estimate: 339.71155492<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  183.0574229<br />ci_upper: 496.36568695<br />width: 0.5","month: 2020-07<br />estimate: 249.23745486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  148.2511057<br />ci_upper: 350.22380402<br />width: 0.5","month: 2020-08<br />estimate: 162.37699182<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   90.1207721<br />ci_upper: 234.63321157<br />width: 0.5","month: 2020-09<br />estimate: 157.82304922<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   83.0666342<br />ci_upper: 232.57946419<br />width: 0.5","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:    0.0000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[1.17496409053387,0.994183092425631,1.47338082113999,1.05945030792292,1.15476638335392,0.894689978359473,1.19722358223252,1.0469617653201,1.0503848549971,1.20236758177244,1.3954031193367,1.11161941116697,270.261748685655,220.172649680592,156.654132026616,100.986349153827,72.2562197517951,74.7564149739418,0,null,null],"arrayminus":[1.17496409053387,0.994183092425631,1.47338082113999,1.05945030792292,1.15476638335392,0.894689978359474,1.19722358223252,1.0469617653201,1.0503848549971,1.20236758177244,1.3954031193367,1.11161941116697,270.261748685655,220.172649680592,156.654132026616,100.986349153827,72.2562197517951,74.7564149739418,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.580371107620238,0.819543315197549,0.0310046107384778,1.05145794374577,0.253475661037555,0.603500662793962,0.612248704620242,1.14239227536977,0.670381961446708,0.805486514305713,-1.63911903914419,-1.22168361669272,38.030397739035,239.830497044059,409.323199419762,275.079521146602,171.047158246805,143.655040818754,0,null,null],"text":["month: 2019-01<br />estimate:   0.58037111<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.6819934<br />ci_upper:   1.84273558<br />width: 0.5","month: 2019-02<br />estimate:   0.81954332<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.2640060<br />ci_upper:   1.90309262<br />width: 0.5","month: 2019-03<br />estimate:   0.03100461<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -1.3342014<br />ci_upper:   1.39621059<br />width: 0.5","month: 2019-04<br />estimate:   1.05145794<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.1802196<br />ci_upper:   2.28313547<br />width: 0.5","month: 2019-05<br />estimate:   0.25347566<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -1.0669537<br />ci_upper:   1.57390501<br />width: 0.5","month: 2019-06<br />estimate:   0.60350066<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.4393542<br />ci_upper:   1.64635555<br />width: 0.5","month: 2019-07<br />estimate:   0.61224870<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.6642090<br />ci_upper:   1.88870645<br />width: 0.5","month: 2019-08<br />estimate:   1.14239228<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:    0.0322143<br />ci_upper:   2.25257025<br />width: 0.5","month: 2019-09<br />estimate:   0.67038196<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.3057163<br />ci_upper:   1.64648023<br />width: 0.5","month: 2019-10<br />estimate:   0.80548651<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.5800346<br />ci_upper:   2.19100767<br />width: 0.5","month: 2019-11<br />estimate:  -1.63911904<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -3.3219671<br />ci_upper:   0.04372898<br />width: 0.5","month: 2019-12<br />estimate:  -1.22168362<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -2.4629764<br />ci_upper:   0.01960914<br />width: 0.5","month: 2020-04<br />estimate:  38.03039774<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -134.1913097<br />ci_upper: 210.25210520<br />width: 0.5","month: 2020-05<br />estimate: 239.83049704<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -26.2319365<br />ci_upper: 505.89293057<br />width: 0.5","month: 2020-06<br />estimate: 409.32319942<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  189.5973589<br />ci_upper: 629.04903995<br />width: 0.5","month: 2020-07<br />estimate: 275.07952115<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  169.1745194<br />ci_upper: 380.98452286<br />width: 0.5","month: 2020-08<br />estimate: 171.04715825<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   95.6313259<br />ci_upper: 246.46299059<br />width: 0.5","month: 2020-09<br />estimate: 143.65504082<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   58.5418030<br />ci_upper: 228.76827862<br />width: 0.5","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:    0.0000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[1.26236446944932,1.08354930446157,1.36520597991335,1.23167752986006,1.32042935200218,1.04285488653016,1.27645774225503,1.11017797182737,0.976098264371459,1.38552115276014,1.68284801496154,1.24129275278962,172.221707465211,266.062433521819,219.725840527419,105.905001718328,75.4158323423901,85.1132378005881,0,null,null],"arrayminus":[1.26236446944932,1.08354930446157,1.36520597991335,1.23167752986006,1.32042935200218,1.04285488653016,1.27645774225503,1.11017797182737,0.976098264371459,1.38552115276014,1.68284801496154,1.24129275278962,172.221707465211,266.062433521819,219.725840527419,105.905001718328,75.4158323423901,85.1132378005881,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-344.967614644434,675.430785403924],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":46.8244084682441},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Emergency Small Amount Funds","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-344.967614644434,675.430785403924],"tickmode":"array","ticktext":["-250","0","250","500"],"tickvals":[-250,0,250,500],"categoryorder":"array","categoryarray":["-250","0","250","500"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d9239949e19":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d924c1798d7":{"x":{},"y":{},"colour":{},"shape":{}},"8d9221337248":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d923893e5ff":{"yintercept":{}},"8d9275e0e55d":{"xintercept":{}}},"cur_data":"8d9239949e19","visdat":{"8d9239949e19":["function (y) ","x"],"8d924c1798d7":["function (y) ","x"],"8d9221337248":["function (y) ","x"],"8d923893e5ff":["function (y) ","x"],"8d9275e0e55d":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb49"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb49-1"><a href="#cb49-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_koguchi_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-b1390941ee2fb7487eee" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-b1390941ee2fb7487eee">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.678166886803585,0.768346569060317,-0.238457415627075,1.28384930498107,0.0597183413145777,0.146226710477599,0.63207993906082,0.881839019483647,0.270409613091445,0.524465199467305,-1.32307936623071,-0.774427966523534,3.93878344606306,222.642879783937,215.884165833281,161.762696988425,108.122356523032,115.829161796785,0,null,null],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:   3.93878345<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 222.64287978<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 215.88416583<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 161.76269699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 108.12235652<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 115.82916180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.634728618156529,0.87390082573393,0.085362121275057,1.10581545428177,0.307833171573856,0.657858173330311,0.666606215156604,1.19674978590623,0.724739471983187,0.859844024842012,-1.58476152860807,-1.16732610615665,168.906317186425,470.227754300485,394.86448337367,240.943870519099,170.157675041696,192.545178018757,0,null,null],"text":["month: 2019-01<br />estimate:   0.63472862<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:   0.87390083<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:   0.08536212<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:   1.10581545<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:   0.30783317<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:   0.65785817<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:   0.66660622<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:   1.19674979<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.72473947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:   0.85984402<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -1.58476153<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -1.16732611<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: 168.90631719<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 470.22775430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 394.86448337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 240.94387052<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 170.15767504<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 192.54517802<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.678166886803585,0.768346569060317,-0.238457415627075,1.28384930498107,0.0597183413145777,0.146226710477599,0.63207993906082,0.881839019483647,0.270409613091445,0.524465199467305,-1.32307936623071,-0.774427966523534,0,null,null,3.93878344606306,222.642879783937,215.884165833281,161.762696988425,108.122356523032,115.829161796785],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:   3.93878345<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 222.64287978<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 215.88416583<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 161.76269699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 108.12235652<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 115.82916180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.634728618156529,0.87390082573393,0.085362121275057,1.10581545428177,0.307833171573856,0.657858173330311,0.666606215156604,1.19674978590623,0.724739471983187,0.859844024842012,-1.58476152860807,-1.16732610615665,0,null,null,168.906317186425,470.227754300485,394.86448337367,240.943870519099,170.157675041696,192.545178018757],"text":["month: 2019-01<br />estimate:   0.63472862<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:   0.87390083<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:   0.08536212<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:   1.10581545<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:   0.30783317<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:   0.65785817<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:   0.66660622<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:   1.19674979<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.72473947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:   0.85984402<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -1.58476153<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -1.16732611<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: 168.90631719<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 470.22775430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 394.86448337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 240.94387052<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 170.15767504<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 192.54517802<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.678166886803585,0.768346569060317,-0.238457415627075,1.28384930498107,0.0597183413145777,0.146226710477599,0.63207993906082,0.881839019483647,0.270409613091445,0.524465199467305,-1.32307936623071,-0.774427966523534,3.93878344606306,222.642879783937,215.884165833281,161.762696988425,108.122356523032,115.829161796785,0,null,null],"text":["month: 2019-01<br />estimate:   0.67816689<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.53323883<br />ci_upper:   1.88957260<br />width: 0.5","month: 2019-02<br />estimate:   0.76834657<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.25667121<br />ci_upper:   1.79336434<br />width: 0.5","month: 2019-03<br />estimate:  -0.23845742<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.75753528<br />ci_upper:   1.28062045<br />width: 0.5","month: 2019-04<br />estimate:   1.28384930<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:    0.19154005<br />ci_upper:   2.37615856<br />width: 0.5","month: 2019-05<br />estimate:   0.05971834<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.13086323<br />ci_upper:   1.25029991<br />width: 0.5","month: 2019-06<br />estimate:   0.14622671<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.77621216<br />ci_upper:   1.06866558<br />width: 0.5","month: 2019-07<br />estimate:   0.63207994<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.60227565<br />ci_upper:   1.86643552<br />width: 0.5","month: 2019-08<br />estimate:   0.88183902<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.19759436<br />ci_upper:   1.96127240<br />width: 0.5","month: 2019-09<br />estimate:   0.27040961<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.81255303<br />ci_upper:   1.35337225<br />width: 0.5","month: 2019-10<br />estimate:   0.52446520<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -0.71519393<br />ci_upper:   1.76412433<br />width: 0.5","month: 2019-11<br />estimate:  -1.32307937<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -2.76176105<br />ci_upper:   0.11560231<br />width: 0.5","month: 2019-12<br />estimate:  -0.77442797<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   -1.92052436<br />ci_upper:   0.37166843<br />width: 0.5","month: 2020-04<br />estimate:   3.93878345<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -203.96599582<br />ci_upper: 211.84356272<br />width: 0.5","month: 2020-05<br />estimate: 222.64287978<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   44.03762173<br />ci_upper: 401.24813784<br />width: 0.5","month: 2020-06<br />estimate: 215.88416583<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   88.00573663<br />ci_upper: 343.76259504<br />width: 0.5","month: 2020-07<br />estimate: 161.76269699<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   62.75729277<br />ci_upper: 260.76810121<br />width: 0.5","month: 2020-08<br />estimate: 108.12235652<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   27.40758939<br />ci_upper: 188.83712365<br />width: 0.5","month: 2020-09<br />estimate: 115.82916180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   36.65842684<br />ci_upper: 194.99989676<br />width: 0.5","month: 2020-01<br />estimate:   0.00000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:    0.00000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:           NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[1.21140571331587,1.0250177754191,1.51907786717475,1.09230925980161,1.19058157233476,0.922438872964286,1.23435558528539,1.07943338385563,1.08296264097754,1.23965912647245,1.43868167954058,1.14609639271537,207.904779270936,178.605258058165,127.878429207676,99.0054042216627,80.714767131522,79.1707349609679,0,null,null],"arrayminus":[1.21140571331587,1.0250177754191,1.51907786717475,1.09230925980161,1.19058157233476,0.922438872964286,1.23435558528539,1.07943338385563,1.08296264097754,1.23965912647245,1.43868167954058,1.14609639271537,207.904779270936,178.605258058165,127.878429207676,99.0054042216627,80.714767131522,79.1707349609679,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.634728618156529,0.87390082573393,0.085362121275057,1.10581545428177,0.307833171573856,0.657858173330311,0.666606215156604,1.19674978590623,0.724739471983187,0.859844024842012,-1.58476152860807,-1.16732610615665,168.906317186425,470.227754300485,394.86448337367,240.943870519099,170.157675041696,192.545178018757,0,null,null],"text":["month: 2019-01<br />estimate:   0.63472862<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.63633291<br />ci_upper:   1.90579015<br />width: 0.5","month: 2019-02<br />estimate:   0.87390083<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.19717117<br />ci_upper:   1.94497282<br />width: 0.5","month: 2019-03<br />estimate:   0.08536212<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -1.33101633<br />ci_upper:   1.50174057<br />width: 0.5","month: 2019-04<br />estimate:   1.10581545<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.08632568<br />ci_upper:   2.29795659<br />width: 0.5","month: 2019-05<br />estimate:   0.30783317<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -1.00696991<br />ci_upper:   1.62263626<br />width: 0.5","month: 2019-06<br />estimate:   0.65785817<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.38448693<br />ci_upper:   1.70020328<br />width: 0.5","month: 2019-07<br />estimate:   0.66660622<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.57868500<br />ci_upper:   1.91189743<br />width: 0.5","month: 2019-08<br />estimate:   1.19674979<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:    0.07106156<br />ci_upper:   2.32243802<br />width: 0.5","month: 2019-09<br />estimate:   0.72473947<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.24551199<br />ci_upper:   1.69499094<br />width: 0.5","month: 2019-10<br />estimate:   0.85984402<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.52115984<br />ci_upper:   2.24084789<br />width: 0.5","month: 2019-11<br />estimate:  -1.58476153<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -3.30605805<br />ci_upper:   0.13653499<br />width: 0.5","month: 2019-12<br />estimate:  -1.16732611<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -2.42478317<br />ci_upper:   0.09013096<br />width: 0.5","month: 2020-04<br />estimate: 168.90631719<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   -0.79746452<br />ci_upper: 338.61009889<br />width: 0.5","month: 2020-05<br />estimate: 470.22775430<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  170.52430534<br />ci_upper: 769.93120326<br />width: 0.5","month: 2020-06<br />estimate: 394.86448337<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  113.00038722<br />ci_upper: 676.72857953<br />width: 0.5","month: 2020-07<br />estimate: 240.94387052<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   96.88156839<br />ci_upper: 385.00617265<br />width: 0.5","month: 2020-08<br />estimate: 170.15767504<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   53.06830219<br />ci_upper: 287.24704789<br />width: 0.5","month: 2020-09<br />estimate: 192.54517802<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   39.23033850<br />ci_upper: 345.86001754<br />width: 0.5","month: 2020-01<br />estimate:   0.00000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:    0.00000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:           NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[1.27106153210133,1.07107199627244,1.41637845180312,1.19214113073323,1.31480308344105,1.04234510714717,1.24529121451348,1.12568823024944,0.970251463278795,1.38100386480161,1.72129652226632,1.25745706411769,169.703781706275,299.703448961543,281.864096155517,144.062302130304,117.089372852463,153.314839519818,0,null,null],"arrayminus":[1.27106153210133,1.07107199627244,1.41637845180312,1.19214113073323,1.31480308344105,1.04234510714717,1.24529121451348,1.12568823024944,0.970251463278795,1.38100386480161,1.72129652226632,1.25745706411769,169.703781706275,299.703448961543,281.864096155517,144.062302130304,117.089372852463,153.314839519818,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-252.660855779218,818.626063216373],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":46.8244084682441},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Emergency Small Amount Funds, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-252.660855779218,818.626063216373],"tickmode":"array","ticktext":["-250","0","250","500","750"],"tickvals":[-250,0,250,500,750],"categoryorder":"array","categoryarray":["-250","0","250","500","750"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d926357c58d":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d92176adeef":{"x":{},"y":{},"colour":{},"shape":{}},"8d92695228eb":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d9210fc9252":{"yintercept":{}},"8d9235ea4e34":{"xintercept":{}}},"cur_data":"8d926357c58d","visdat":{"8d926357c58d":["function (y) ","x"],"8d92176adeef":["function (y) ","x"],"8d92695228eb":["function (y) ","x"],"8d9210fc9252":["function (y) ","x"],"8d9235ea4e34":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb50"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb50-1"><a href="#cb50-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_bind)</span></code></pre></div>
<div id="htmlwidget-54bb413757d6fac0fb21" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-54bb413757d6fac0fb21">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0212407394009413,0.0488709846945137,0.0270753908416846,-0.00452815238640957,0.0788446137949815,-0.0841996475544506,0.07318981566986,0.110561233169453,0.126322956665742,-0.036451274941047,-0.0247392812094645,-0.222598076948959,-5.32862106175363,44.8344120661707,181.651463587594,249.944348139415,154.912045555675,148.002465685642,0,null,null],"text":["month: 2019-01<br />estimate:   0.021240739<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.048870985<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:   0.027075391<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  -0.004528152<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.078844614<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  -0.084199648<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.073189816<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.110561233<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.126322957<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  -0.036451275<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -0.024739281<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.222598077<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  -5.328621062<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  44.834412066<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 181.651463588<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 249.944348139<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 154.912045556<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 148.002465686<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.00415272319365556,-0.0169752408362882,-0.0065851755367845,-0.0498324762804003,-0.0192338633936657,-0.120583608132435,-0.0573761876504335,-0.0220903912597521,0.0406684963519837,-0.0782977634403892,-0.0540803247303643,-0.20568687192781,-6.05568955314975,40.3100172904751,189.780513634226,238.778780762359,137.986071371726,130.391623754908,0,null,null],"text":["month: 2019-01<br />estimate:   0.004152723<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  -0.016975241<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  -0.006585176<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  -0.049832476<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  -0.019233863<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  -0.120583608<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  -0.057376188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  -0.022090391<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.040668496<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  -0.078297763<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -0.054080325<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -0.205686872<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  -6.055689553<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  40.310017290<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 189.780513634<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 238.778780762<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 137.986071372<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 130.391623755<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0212407394009413,0.0488709846945137,0.0270753908416846,-0.00452815238640957,0.0788446137949815,-0.0841996475544506,0.07318981566986,0.110561233169453,0.126322956665742,-0.036451274941047,-0.0247392812094645,-0.222598076948959,0,null,null,-5.32862106175363,44.8344120661707,181.651463587594,249.944348139415,154.912045555675,148.002465685642],"text":["month: 2019-01<br />estimate:   0.021240739<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:   0.048870985<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:   0.027075391<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:  -0.004528152<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:   0.078844614<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:  -0.084199648<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:   0.073189816<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:   0.110561233<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:   0.126322957<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:  -0.036451275<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:  -0.024739281<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:  -0.222598077<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:   0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  -5.328621062<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  44.834412066<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 181.651463588<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 249.944348139<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 154.912045556<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 148.002465686<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.00415272319365556,-0.0169752408362882,-0.0065851755367845,-0.0498324762804003,-0.0192338633936657,-0.120583608132435,-0.0573761876504335,-0.0220903912597521,0.0406684963519837,-0.0782977634403892,-0.0540803247303643,-0.20568687192781,0,null,null,-6.05568955314975,40.3100172904751,189.780513634226,238.778780762359,137.986071371726,130.391623754908],"text":["month: 2019-01<br />estimate:   0.004152723<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  -0.016975241<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  -0.006585176<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  -0.049832476<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  -0.019233863<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:  -0.120583608<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:  -0.057376188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  -0.022090391<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:   0.040668496<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:  -0.078297763<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  -0.054080325<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:  -0.205686872<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:   0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  -6.055689553<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  40.310017290<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 189.780513634<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 238.778780762<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 137.986071372<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 130.391623755<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0212407394009413,0.0488709846945137,0.0270753908416846,-0.00452815238640957,0.0788446137949815,-0.0841996475544506,0.07318981566986,0.110561233169453,0.126322956665742,-0.036451274941047,-0.0247392812094645,-0.222598076948959,-5.32862106175363,44.8344120661707,181.651463587594,249.944348139415,154.912045555675,148.002465685642,0,null,null],"text":["month: 2019-01<br />estimate:   0.021240739<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.092150373<br />ci_upper:   0.13463185<br />width: 0.5","month: 2019-02<br />estimate:   0.048870985<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.066468939<br />ci_upper:   0.16421091<br />width: 0.5","month: 2019-03<br />estimate:   0.027075391<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.082753331<br />ci_upper:   0.13690411<br />width: 0.5","month: 2019-04<br />estimate:  -0.004528152<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.251215130<br />ci_upper:   0.24215883<br />width: 0.5","month: 2019-05<br />estimate:   0.078844614<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.163083038<br />ci_upper:   0.32077227<br />width: 0.5","month: 2019-06<br />estimate:  -0.084199648<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.237648155<br />ci_upper:   0.06924886<br />width: 0.5","month: 2019-07<br />estimate:   0.073189816<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.198510255<br />ci_upper:   0.34488989<br />width: 0.5","month: 2019-08<br />estimate:   0.110561233<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.135248918<br />ci_upper:   0.35637138<br />width: 0.5","month: 2019-09<br />estimate:   0.126322957<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.001262121<br />ci_upper:   0.25390803<br />width: 0.5","month: 2019-10<br />estimate:  -0.036451275<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.160367311<br />ci_upper:   0.08746476<br />width: 0.5","month: 2019-11<br />estimate:  -0.024739281<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.198015112<br />ci_upper:   0.14853655<br />width: 0.5","month: 2019-12<br />estimate:  -0.222598077<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.456987898<br />ci_upper:   0.01179174<br />width: 0.5","month: 2020-04<br />estimate:  -5.328621062<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -39.317937415<br />ci_upper:  28.66069529<br />width: 0.5","month: 2020-05<br />estimate:  44.834412066<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -58.304290331<br />ci_upper: 147.97311446<br />width: 0.5","month: 2020-06<br />estimate: 181.651463588<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  25.262689997<br />ci_upper: 338.04023718<br />width: 0.5","month: 2020-07<br />estimate: 249.944348139<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  86.469913446<br />ci_upper: 413.41878283<br />width: 0.5","month: 2020-08<br />estimate: 154.912045556<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  49.058982811<br />ci_upper: 260.76510830<br />width: 0.5","month: 2020-09<br />estimate: 148.002465686<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  31.097832374<br />ci_upper: 264.90709900<br />width: 0.5","month: 2020-01<br />estimate:   0.000000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.113391112172617,0.115339923641743,0.109828721535116,0.24668697798436,0.24192765165384,0.153448507265885,0.271700071122514,0.245810151051171,0.127585077557944,0.123916035614066,0.173275831214055,0.234389821233685,33.9893163533765,103.138702397149,156.38877359109,163.474434693306,105.853062744418,116.904633311504,0,null,null],"arrayminus":[0.113391112172617,0.115339923641743,0.109828721535116,0.24668697798436,0.24192765165384,0.153448507265885,0.271700071122514,0.245810151051171,0.127585077557944,0.123916035614066,0.173275831214055,0.234389821233685,33.9893163533765,103.138702397149,156.38877359109,163.474434693306,105.853062744418,116.904633311504,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.00415272319365556,-0.0169752408362882,-0.0065851755367845,-0.0498324762804003,-0.0192338633936657,-0.120583608132435,-0.0573761876504335,-0.0220903912597521,0.0406684963519837,-0.0782977634403892,-0.0540803247303643,-0.20568687192781,-6.05568955314975,40.3100172904751,189.780513634226,238.778780762359,137.986071371726,130.391623754908,0,null,null],"text":["month: 2019-01<br />estimate:   0.004152723<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.305620770<br />ci_upper:   0.31392622<br />width: 0.5","month: 2019-02<br />estimate:  -0.016975241<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.321049885<br />ci_upper:   0.28709940<br />width: 0.5","month: 2019-03<br />estimate:  -0.006585176<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.318206067<br />ci_upper:   0.30503572<br />width: 0.5","month: 2019-04<br />estimate:  -0.049832476<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.390193939<br />ci_upper:   0.29052899<br />width: 0.5","month: 2019-05<br />estimate:  -0.019233863<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.360723012<br />ci_upper:   0.32225529<br />width: 0.5","month: 2019-06<br />estimate:  -0.120583608<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.420515119<br />ci_upper:   0.17934790<br />width: 0.5","month: 2019-07<br />estimate:  -0.057376188<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.386684799<br />ci_upper:   0.27193242<br />width: 0.5","month: 2019-08<br />estimate:  -0.022090391<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.374903582<br />ci_upper:   0.33072280<br />width: 0.5","month: 2019-09<br />estimate:   0.040668496<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.287102791<br />ci_upper:   0.36843978<br />width: 0.5","month: 2019-10<br />estimate:  -0.078297763<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.380671953<br />ci_upper:   0.22407643<br />width: 0.5","month: 2019-11<br />estimate:  -0.054080325<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.373422403<br />ci_upper:   0.26526175<br />width: 0.5","month: 2019-12<br />estimate:  -0.205686872<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.547167952<br />ci_upper:   0.13579421<br />width: 0.5","month: 2020-04<br />estimate:  -6.055689553<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -24.586474083<br />ci_upper:  12.47509498<br />width: 0.5","month: 2020-05<br />estimate:  40.310017290<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -59.426779839<br />ci_upper: 140.04681442<br />width: 0.5","month: 2020-06<br />estimate: 189.780513634<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -18.358724434<br />ci_upper: 397.91975170<br />width: 0.5","month: 2020-07<br />estimate: 238.778780762<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -20.774200016<br />ci_upper: 498.33176154<br />width: 0.5","month: 2020-08<br />estimate: 137.986071372<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -20.889923093<br />ci_upper: 296.86206584<br />width: 0.5","month: 2020-09<br />estimate: 130.391623755<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -41.504885969<br />ci_upper: 302.28813348<br />width: 0.5","month: 2020-01<br />estimate:   0.000000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.309773493118343,0.30407464385604,0.311620891554992,0.340361462819077,0.341489149104203,0.299931510973222,0.329308610854489,0.352813191174195,0.327771287843503,0.302374189191928,0.31934207850141,0.341481079725665,18.530784529702,99.7367971291084,208.139238068,259.552980778309,158.875994464445,171.896509723673,0,null,null],"arrayminus":[0.309773493118343,0.30407464385604,0.311620891554992,0.340361462819077,0.341489149104203,0.299931510973222,0.329308610854489,0.352813191174195,0.327771287843503,0.302374189191928,0.31934207850141,0.341481079725665,18.530784529702,99.7367971291084,208.139238068,259.552980778309,158.875994464445,171.896509723673,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-87.3147069075983,526.219688609633],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"General Support Funds","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-87.3147069075983,526.219688609633],"tickmode":"array","ticktext":["0","100","200","300","400","500"],"tickvals":[-1.4210854715202e-14,100,200,300,400,500],"categoryorder":"array","categoryarray":["0","100","200","300","400","500"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d9236a026dc":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d924c575188":{"x":{},"y":{},"colour":{},"shape":{}},"8d9278a9dedf":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d925867405c":{"yintercept":{}},"8d9262b2855b":{"xintercept":{}}},"cur_data":"8d9236a026dc","visdat":{"8d9236a026dc":["function (y) ","x"],"8d924c575188":["function (y) ","x"],"8d9278a9dedf":["function (y) ","x"],"8d925867405c":["function (y) ","x"],"8d9262b2855b":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb51"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb51-1"><a href="#cb51-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_sogo_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-10089f5308945ee412e3" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-10089f5308945ee412e3">{"x":{"data":[{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0212407394011124,0.0488709846946072,0.027075390841752,-0.00452815238629362,0.0788446137952109,-0.0841996475543559,0.0731898156699749,0.110561233169561,0.126322956665896,-0.0364512749410284,-0.0247392812094144,-0.222598076948877,21.4535297020299,106.950158857465,219.808322949096,230.719738539358,117.123572788197,106.78092869882,0,null,null],"text":["month: 2019-01<br />estimate:  2.124074e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  4.887098e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  2.707539e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate: -4.528152e-03<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  7.884461e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate: -8.419965e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  7.318982e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  1.105612e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  1.263230e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate: -3.645127e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate: -2.473928e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate: -2.225981e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  2.145353e+01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  1.069502e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate:  2.198083e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate:  2.307197e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  1.171236e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  1.067809e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0590296673348339,0.0379017033050974,0.0482917686045389,0.00504446786039549,0.0356430807474955,-0.0657066639910075,-0.00249924350926697,0.0327865528815601,0.0955454404933097,-0.0234208192992271,0.000796619410779288,-0.150809927786601,25.1990529195559,163.829317603991,360.742181872117,352.172664878544,154.314862587754,140.938741805099,0,null,null],"text":["month: 2019-01<br />estimate:  5.902967e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  3.790170e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  4.829177e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  5.044468e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  3.564308e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate: -6.570666e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate: -2.499244e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  3.278655e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  9.554544e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate: -2.342082e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  7.966194e-04<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -1.508099e-01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  2.519905e+01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  1.638293e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate:  3.607422e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate:  3.521727e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  1.543149e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  1.409387e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.0212407394011124,0.0488709846946072,0.027075390841752,-0.00452815238629362,0.0788446137952109,-0.0841996475543559,0.0731898156699749,0.110561233169561,0.126322956665896,-0.0364512749410284,-0.0247392812094144,-0.222598076948877,0,null,null,21.4535297020299,106.950158857465,219.808322949096,230.719738539358,117.123572788197,106.78092869882],"text":["month: 2019-01<br />estimate:  2.124074e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  4.887098e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  2.707539e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate: -4.528152e-03<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:  7.884461e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate: -8.419965e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:  7.318982e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:  1.105612e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:  1.263230e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate: -3.645127e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate: -2.473928e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate: -2.225981e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate:  2.145353e+01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  1.069502e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate:  2.198083e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate:  2.307197e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  1.171236e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  1.067809e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.0590296673348339,0.0379017033050974,0.0482917686045389,0.00504446786039549,0.0356430807474955,-0.0657066639910075,-0.00249924350926697,0.0327865528815601,0.0955454404933097,-0.0234208192992271,0.000796619410779288,-0.150809927786601,0,null,null,25.1990529195559,163.829317603991,360.742181872117,352.172664878544,154.314862587754,140.938741805099],"text":["month: 2019-01<br />estimate:  5.902967e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  3.790170e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  4.829177e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:  5.044468e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:  3.564308e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate: -6.570666e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate: -2.499244e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:  3.278655e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:  9.554544e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate: -2.342082e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:  7.966194e-04<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate: -1.508099e-01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  2.519905e+01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate:  1.638293e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate:  3.607422e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate:  3.521727e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  1.543149e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  1.409387e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,15.875,16.875,17.875,18.875,19.875,20.875,12.875,13.875,14.875],"y":[0.0212407394011124,0.0488709846946072,0.027075390841752,-0.00452815238629362,0.0788446137952109,-0.0841996475543559,0.0731898156699749,0.110561233169561,0.126322956665896,-0.0364512749410284,-0.0247392812094144,-0.222598076948877,21.4535297020299,106.950158857465,219.808322949096,230.719738539358,117.123572788197,106.78092869882,0,null,null],"text":["month: 2019-01<br />estimate:  2.124074e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.095667209<br />ci_upper:   0.13814869<br />width: 0.5","month: 2019-02<br />estimate:  4.887098e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.070046218<br />ci_upper:   0.16778819<br />width: 0.5","month: 2019-03<br />estimate:  2.707539e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.086159679<br />ci_upper:   0.14031046<br />width: 0.5","month: 2019-04<br />estimate: -4.528152e-03<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.258866150<br />ci_upper:   0.24980985<br />width: 0.5","month: 2019-05<br />estimate:  7.884461e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.170586447<br />ci_upper:   0.32827567<br />width: 0.5","month: 2019-06<br />estimate: -8.419965e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.242407375<br />ci_upper:   0.07400808<br />width: 0.5","month: 2019-07<br />estimate:  7.318982e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.206937059<br />ci_upper:   0.35331669<br />width: 0.5","month: 2019-08<br />estimate:  1.105612e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.142872743<br />ci_upper:   0.36399521<br />width: 0.5","month: 2019-09<br />estimate:  1.263230e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.005219184<br />ci_upper:   0.25786510<br />width: 0.5","month: 2019-10<br />estimate: -3.645127e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.164210578<br />ci_upper:   0.09130803<br />width: 0.5","month: 2019-11<br />estimate: -2.473928e-02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.203389279<br />ci_upper:   0.15391072<br />width: 0.5","month: 2019-12<br />estimate: -2.225981e-01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.464257521<br />ci_upper:   0.01906137<br />width: 0.5","month: 2020-04<br />estimate:  2.145353e+01<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -12.042163570<br />ci_upper:  54.94922297<br />width: 0.5","month: 2020-05<br />estimate:  1.069502e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  23.865664234<br />ci_upper: 190.03465348<br />width: 0.5","month: 2020-06<br />estimate:  2.198083e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  89.812828825<br />ci_upper: 349.80381707<br />width: 0.5","month: 2020-07<br />estimate:  2.307197e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  95.986715834<br />ci_upper: 365.45276125<br />width: 0.5","month: 2020-08<br />estimate:  1.171236e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  23.878560650<br />ci_upper: 210.36858493<br />width: 0.5","month: 2020-09<br />estimate:  1.067809e+02<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   9.358609412<br />ci_upper: 204.20324799<br />width: 0.5","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:            NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.116907948338901,0.118917202391054,0.113235069858423,0.254337998005897,0.249431060777474,0.158207727290763,0.280126874634229,0.253433976209145,0.131542140889856,0.127759303233464,0.178649997592956,0.241659443831903,33.495693271706,83.084494623017,129.99549412448,134.733022705748,93.2450121379736,97.422319286372,0,null,null],"arrayminus":[0.116907948338901,0.118917202391054,0.113235069858423,0.254337998005897,0.249431060777474,0.158207727290763,0.280126874634229,0.253433976209145,0.131542140889856,0.127759303233464,0.178649997592956,0.241659443831903,33.495693271706,83.084494623017,129.99549412448,134.733022705748,93.2450121379736,97.422319286372,0,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,16.125,17.125,18.125,19.125,20.125,21.125,13.125,14.125,15.125],"y":[0.0590296673348339,0.0379017033050974,0.0482917686045389,0.00504446786039549,0.0356430807474955,-0.0657066639910075,-0.00249924350926697,0.0327865528815601,0.0955454404933097,-0.0234208192992271,0.000796619410779288,-0.150809927786601,25.1990529195559,163.829317603991,360.742181872117,352.172664878544,154.314862587754,140.938741805099,0,null,null],"text":["month: 2019-01<br />estimate:  5.902967e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.063657640<br />ci_upper:   0.18171697<br />width: 0.5","month: 2019-02<br />estimate:  3.790170e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.082041105<br />ci_upper:   0.15784451<br />width: 0.5","month: 2019-03<br />estimate:  4.829177e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.080031600<br />ci_upper:   0.17661514<br />width: 0.5","month: 2019-04<br />estimate:  5.044468e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.202740538<br />ci_upper:   0.21282947<br />width: 0.5","month: 2019-05<br />estimate:  3.564308e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.165168308<br />ci_upper:   0.23645447<br />width: 0.5","month: 2019-06<br />estimate: -6.570666e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.209814544<br />ci_upper:   0.07840122<br />width: 0.5","month: 2019-07<br />estimate: -2.499244e-03<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.183924091<br />ci_upper:   0.17892560<br />width: 0.5","month: 2019-08<br />estimate:  3.278655e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.168835165<br />ci_upper:   0.23440827<br />width: 0.5","month: 2019-09<br />estimate:  9.554544e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.048349264<br />ci_upper:   0.23944015<br />width: 0.5","month: 2019-10<br />estimate: -2.342082e-02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.160380579<br />ci_upper:   0.11353894<br />width: 0.5","month: 2019-11<br />estimate:  7.966194e-04<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.161839950<br />ci_upper:   0.16343319<br />width: 0.5","month: 2019-12<br />estimate: -1.508099e-01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -0.363913841<br />ci_upper:   0.06229399<br />width: 0.5","month: 2020-04<br />estimate:  2.519905e+01<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   2.292172120<br />ci_upper:  48.10593372<br />width: 0.5","month: 2020-05<br />estimate:  1.638293e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  72.685183294<br />ci_upper: 254.97345191<br />width: 0.5","month: 2020-06<br />estimate:  3.607422e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: 142.460426906<br />ci_upper: 579.02393684<br />width: 0.5","month: 2020-07<br />estimate:  3.521727e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  77.371601128<br />ci_upper: 626.97372863<br />width: 0.5","month: 2020-08<br />estimate:  1.543149e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  14.573256564<br />ci_upper: 294.05646861<br />width: 0.5","month: 2020-09<br />estimate:  1.409387e+02<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   6.789839750<br />ci_upper: 275.08764386<br />width: 0.5","month: 2020-01<br />estimate:  0.000000e+00<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.000000000<br />ci_upper:   0.00000000<br />width: 0.5","month: 2020-02<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5","month: 2020-03<br />estimate:            NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:            NA<br />ci_upper:           NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.122687307141673,0.119942808568877,0.128323368721729,0.207785005455943,0.200811388765248,0.144107880031676,0.181424847610019,0.20162171827426,0.14389470472107,0.136959759904556,0.162636569452239,0.213103913699017,22.9068807994417,91.1441343099215,218.281754966041,274.801063750261,139.74160602423,134.148902054966,0,null,null],"arrayminus":[0.122687307141673,0.119942808568877,0.128323368721729,0.207785005455943,0.200811388765248,0.144107880031676,0.181424847610019,0.20162171827426,0.14389470472107,0.136959759904556,0.162636569452239,0.213103913699017,22.9068807994417,91.1441343099215,218.281754966041,274.801063750261,139.74160602423,134.148902054966,0,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-43.9929581796002,658.924523238729],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"General Support Funds, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-43.9929581796002,658.924523238729],"tickmode":"array","ticktext":["0","200","400","600"],"tickvals":[0,200,400,600],"categoryorder":"array","categoryarray":["0","200","400","600"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d92e04a626":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d9253380ffa":{"x":{},"y":{},"colour":{},"shape":{}},"8d925a110c5":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d921153f866":{"yintercept":{}},"8d921fd8f96d":{"xintercept":{}}},"cur_data":"8d92e04a626","visdat":{"8d92e04a626":["function (y) ","x"],"8d9253380ffa":["function (y) ","x"],"8d925a110c5":["function (y) ","x"],"8d921153f866":["function (y) ","x"],"8d921fd8f96d":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb52"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb52-1"><a href="#cb52-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_bind)</span></code></pre></div>
<div id="htmlwidget-730c418f9adb6e4b17b2" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-730c418f9adb6e4b17b2">{"x":{"data":[{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.391919082094109,0.178148583966891,-4.09680890107197,21.860212364067,66.0313180069205,44.9648422304242,20.722134358884,16.6400380821047,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -4.0968089<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 21.8602124<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 66.0313180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 44.9648422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 20.7221344<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 16.6400381<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.618053754151575,0.680761868854958,0.774197561738596,35.7429068921771,93.3061306661446,70.7724461854539,30.9847620033236,23.8369112210112,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  0.7741976<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 35.7429069<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 93.3061307<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 70.7724462<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 30.9847620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 23.8369112<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.391919082094109,0.178148583966891,0,null,null,null,null,null,null,null,null,null,null,null,null,-4.09680890107197,21.860212364067,66.0313180069205,44.9648422304242,20.722134358884,16.6400380821047],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -4.0968089<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate: 21.8602124<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 66.0313180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 44.9648422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate: 20.7221344<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate: 16.6400381<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.618053754151575,0.680761868854958,0,null,null,null,null,null,null,null,null,null,null,null,null,0.774197561738596,35.7429068921771,93.3061306661446,70.7724461854539,30.9847620033236,23.8369112210112],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate:  0.7741976<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: 35.7429069<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 93.3061307<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 70.7724462<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate: 30.9847620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate: 23.8369112<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.391919082094109,0.178148583966891,-4.09680890107197,21.860212364067,66.0313180069205,44.9648422304242,20.722134358884,16.6400380821047,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.1380933<br />ci_upper:   0.9219314<br />width: 0.5","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.2425401<br />ci_upper:   0.5988372<br />width: 0.5","month: 2020-04<br />estimate: -4.0968089<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -18.2199613<br />ci_upper:  10.0263435<br />width: 0.5","month: 2020-05<br />estimate: 21.8602124<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -11.8083079<br />ci_upper:  55.5287327<br />width: 0.5","month: 2020-06<br />estimate: 66.0313180<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  33.0106392<br />ci_upper:  99.0519968<br />width: 0.5","month: 2020-07<br />estimate: 44.9648422<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  25.0318808<br />ci_upper:  64.8978036<br />width: 0.5","month: 2020-08<br />estimate: 20.7221344<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  11.6454590<br />ci_upper:  29.7988097<br />width: 0.5","month: 2020-09<br />estimate: 16.6400381<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  10.3954750<br />ci_upper:  22.8846011<br />width: 0.5","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   0.0000000<br />ci_upper:   0.0000000<br />width: 0.5","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.530012344927902,0.420688655269835,14.1231523558881,33.6685203116159,33.0206788386433,19.9329614076121,9.07667534630045,6.24456306762364,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.530012344927902,0.420688655269835,14.1231523558881,33.6685203116159,33.0206788386433,19.9329614076121,9.07667534630045,6.24456306762364,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.618053754151575,0.680761868854958,0.774197561738596,35.7429068921771,93.3061306661446,70.7724461854539,30.9847620033236,23.8369112210112,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.1138032<br />ci_upper:   1.1223043<br />width: 0.5","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.1503571<br />ci_upper:   1.2111666<br />width: 0.5","month: 2020-04<br />estimate:  0.7741976<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -6.9976569<br />ci_upper:   8.5460521<br />width: 0.5","month: 2020-05<br />estimate: 35.7429069<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -11.9349077<br />ci_upper:  83.4207215<br />width: 0.5","month: 2020-06<br />estimate: 93.3061307<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  25.1375817<br />ci_upper: 161.4746797<br />width: 0.5","month: 2020-07<br />estimate: 70.7724462<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  35.9796936<br />ci_upper: 105.5651988<br />width: 0.5","month: 2020-08<br />estimate: 30.9847620<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  13.3784186<br />ci_upper:  48.5911054<br />width: 0.5","month: 2020-09<br />estimate: 23.8369112<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  11.9818447<br />ci_upper:  35.6919778<br />width: 0.5","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.0000000<br />ci_upper:   0.0000000<br />width: 0.5","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:          NA<br />ci_upper:          NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.504250513309101,0.5304047586356,7.77185449093305,47.6778146337064,68.168549007827,34.7927526220545,17.6063433798381,11.8550665526538,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.504250513309101,0.5304047586356,7.77185449093305,47.6778146337064,68.168549007827,34.7927526220545,17.6063433798381,11.8550665526538,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-27.2046933035067,170.459411720518],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Housing Security Benefit","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-27.2046933035067,170.459411720518],"tickmode":"array","ticktext":["0","50","100","150"],"tickvals":[0,50,100,150],"categoryorder":"array","categoryarray":["0","50","100","150"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d92280d77ad":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d92c2c1366":{"x":{},"y":{},"colour":{},"shape":{}},"8d9221ad93c8":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d92ac140be":{"yintercept":{}},"8d9215817f76":{"xintercept":{}}},"cur_data":"8d92280d77ad","visdat":{"8d92280d77ad":["function (y) ","x"],"8d92c2c1366":["function (y) ","x"],"8d9221ad93c8":["function (y) ","x"],"8d92ac140be":["function (y) ","x"],"8d9215817f76":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
<div class="sourceCode" id="cb53"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb53-1"><a href="#cb53-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ggplotly</span>(graph_jukyo_number_bind_covar)</span></code></pre></div>
<div id="htmlwidget-c9a4cf060c10d63d994d" style="width:672px;height:480px;" class="plotly html-widget"></div>
<script type="application/json" data-for="htmlwidget-c9a4cf060c10d63d994d">{"x":{"data":[{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.391919082094113,0.178148583966897,-2.20154313784824,1.57075811323903,16.6293835478172,11.9298223336594,5.66166597462719,7.89643959796808,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -2.2015431<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  1.5707581<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 16.6293835<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 11.9298223<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  5.6616660<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  7.8964396<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(248,118,109,1)","opacity":1,"size":11.3385826771654,"symbol":"circle","line":{"width":1.88976377952756,"color":"rgba(248,118,109,1)"}},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.618053754151538,0.68076186885499,-1.15320007069408,-6.34649650682659,10.6084460323692,17.6754820229643,3.9927096276942,7.36378429492522,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -1.1532001<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: -6.3464965<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 10.6084460<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 17.6754820<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  3.9927096<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  7.3637843<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"markers","marker":{"autocolorscale":false,"color":"rgba(0,191,196,1)","opacity":1,"size":11.3385826771654,"symbol":"triangle-up","line":{"width":1.88976377952756,"color":"rgba(0,191,196,1)"}},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":true,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875,15.875,16.875,17.875,18.875,19.875,20.875],"y":[0.391919082094113,0.178148583966897,0,null,null,null,null,null,null,null,null,null,null,null,null,-2.20154313784824,1.57075811323903,16.6293835478172,11.9298223336594,5.66166597462719,7.89643959796808],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-04<br />estimate: -2.2015431<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-05<br />estimate:  1.5707581<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-06<br />estimate: 16.6293835<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-07<br />estimate: 11.9298223<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-08<br />estimate:  5.6616660<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS","month: 2020-09<br />estimate:  7.8964396<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(248,118,109,1)","dash":"solid"},"hoveron":"points","name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125,16.125,17.125,18.125,19.125,20.125,21.125],"y":[0.618053754151538,0.68076186885499,0,null,null,null,null,null,null,null,null,null,null,null,null,-1.15320007069408,-6.34649650682659,10.6084460323692,17.6754820229643,3.9927096276942,7.36378429492522],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-04<br />estimate: -1.1532001<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-05<br />estimate: -6.3464965<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-06<br />estimate: 10.6084460<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-07<br />estimate: 17.6754820<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-08<br />estimate:  3.9927096<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS","month: 2020-09<br />estimate:  7.3637843<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS"],"type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(0,191,196,1)","dash":"solid"},"hoveron":"points","name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.875,1.875,15.875,16.875,17.875,18.875,19.875,20.875,2.875,3.875,4.875,5.875,6.875,7.875,8.875,9.875,10.875,11.875,12.875,13.875,14.875],"y":[0.391919082094113,0.178148583966897,-2.20154313784824,1.57075811323903,16.6293835478172,11.9298223336594,5.66166597462719,7.89643959796808,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.3919191<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.17740550<br />ci_upper:  0.9612437<br />width: 0.5","month: 2019-02<br />estimate:  0.1781486<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.27374352<br />ci_upper:  0.6300407<br />width: 0.5","month: 2020-04<br />estimate: -2.2015431<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -14.61060994<br />ci_upper: 10.2075237<br />width: 0.5","month: 2020-05<br />estimate:  1.5707581<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower: -27.27873228<br />ci_upper: 30.4202485<br />width: 0.5","month: 2020-06<br />estimate: 16.6293835<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -5.24667249<br />ci_upper: 38.5054396<br />width: 0.5","month: 2020-07<br />estimate: 11.9298223<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -0.16275127<br />ci_upper: 24.0223959<br />width: 0.5","month: 2020-08<br />estimate:  5.6616660<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:  -1.23044089<br />ci_upper: 12.5537728<br />width: 0.5","month: 2020-09<br />estimate:  7.8964396<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   3.10056504<br />ci_upper: 12.6923142<br />width: 0.5","month: 2019-03<br />estimate:  0.0000000<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:   0.00000000<br />ci_upper:  0.0000000<br />width: 0.5","month: 2019-04<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-05<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-06<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-07<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-08<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-09<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-10<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-11<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-12<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-01<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-02<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-03<br />estimate:         NA<br />legend_title: OLS<br />legend_title: OLS<br />legend_title: OLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.56932458544077,0.451892105067422,12.4090667982278,28.8494903942761,21.8760560336999,12.0925736004652,6.89210686244711,4.79587455763836,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.56932458544077,0.451892105067422,12.4090667982278,28.8494903942761,21.8760560336999,12.0925736004652,6.89210686244711,4.79587455763836,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641509,"symmetric":false,"color":"rgba(248,118,109,1)"},"name":"OLS","legendgroup":"OLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[1.125,2.125,16.125,17.125,18.125,19.125,20.125,21.125,3.125,4.125,5.125,6.125,7.125,8.125,9.125,10.125,11.125,12.125,13.125,14.125,15.125],"y":[0.618053754151538,0.68076186885499,-1.15320007069408,-6.34649650682659,10.6084460323692,17.6754820229643,3.9927096276942,7.36378429492522,0,null,null,null,null,null,null,null,null,null,null,null,null],"text":["month: 2019-01<br />estimate:  0.6180538<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.07640181<br />ci_upper:  1.1597057<br />width: 0.5","month: 2019-02<br />estimate:  0.6807619<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.11101576<br />ci_upper:  1.2505080<br />width: 0.5","month: 2020-04<br />estimate: -1.1532001<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -8.45013000<br />ci_upper:  6.1437299<br />width: 0.5","month: 2020-05<br />estimate: -6.3464965<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -35.18461435<br />ci_upper: 22.4916213<br />width: 0.5","month: 2020-06<br />estimate: 10.6084460<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower: -16.65756705<br />ci_upper: 37.8744591<br />width: 0.5","month: 2020-07<br />estimate: 17.6754820<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -2.02590083<br />ci_upper: 37.3768649<br />width: 0.5","month: 2020-08<br />estimate:  3.9927096<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:  -6.40472277<br />ci_upper: 14.3901420<br />width: 0.5","month: 2020-09<br />estimate:  7.3637843<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.64146068<br />ci_upper: 14.0861079<br />width: 0.5","month: 2019-03<br />estimate:  0.0000000<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:   0.00000000<br />ci_upper:  0.0000000<br />width: 0.5","month: 2019-04<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-05<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-06<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-07<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-08<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-09<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-10<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-11<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2019-12<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-01<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-02<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5","month: 2020-03<br />estimate:         NA<br />legend_title: WLS<br />legend_title: WLS<br />legend_title: WLS<br />ci_lower:           NA<br />ci_upper:         NA<br />width: 0.5"],"type":"scatter","mode":"lines","opacity":1,"line":{"color":"transparent"},"error_y":{"array":[0.541651939234177,0.569746105382429,7.29692992829483,28.8381178469778,27.2660130838865,19.7013828518888,10.3974323978302,6.72232361933553,0,null,null,null,null,null,null,null,null,null,null,null,null],"arrayminus":[0.541651939234177,0.569746105382429,7.29692992829483,28.8381178469778,27.2660130838865,19.7013828518888,10.3974323978302,6.72232361933553,0,null,null,null,null,null,null,null,null,null,null,null,null],"type":"data","width":0.594339622641511,"symmetric":false,"color":"rgba(0,191,196,1)"},"name":"WLS","legendgroup":"WLS","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":[0.4,21.6],"y":[0,0],"text":"yintercept: 0","type":"scatter","mode":"lines","line":{"width":1.88976377952756,"color":"rgba(190,190,190,1)","dash":"solid"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null},{"x":["2020-01","2020-01"],"y":[-38.8691170505705,42.1899422782832],"text":"xintercept: 2020-01","type":"scatter","mode":"lines","line":{"width":4.15748031496063,"color":"rgba(51,51,51,1)","dash":"dash"},"hoveron":"points","showlegend":false,"xaxis":"x","yaxis":"y","hoverinfo":"text","frame":null}],"layout":{"margin":{"t":53.8580323785803,"r":9.9626400996264,"b":74.719800747198,"l":38.854296388543},"plot_bgcolor":"rgba(255,255,255,1)","paper_bgcolor":"rgba(255,255,255,1)","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528},"title":{"text":"Housing Security Benefit, with covariates","font":{"color":"rgba(0,0,0,1)","family":"","size":23.9103362391034},"x":0,"xref":"paper"},"xaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[0.4,21.6],"tickmode":"array","ticktext":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"tickvals":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21],"categoryorder":"array","categoryarray":["2019-01","2019-02","2019-03","2019-04","2019-05","2019-06","2019-07","2019-08","2019-09","2019-10","2019-11","2019-12","2020-01","2020-02","2020-03","2020-04","2020-05","2020-06","2020-07","2020-08","2020-09"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-90,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"y","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"yaxis":{"domain":[0,1],"automargin":true,"type":"linear","autorange":false,"range":[-38.8691170505705,42.1899422782832],"tickmode":"array","ticktext":["-20","0","20","40"],"tickvals":[-20,0,20,40],"categoryorder":"array","categoryarray":["-20","0","20","40"],"nticks":null,"ticks":"outside","tickcolor":"rgba(51,51,51,1)","ticklen":4.9813200498132,"tickwidth":0.905694554511491,"showticklabels":true,"tickfont":{"color":"rgba(77,77,77,1)","family":"","size":15.9402241594022},"tickangle":-0,"showline":true,"linecolor":"rgba(0,0,0,1)","linewidth":0.905694554511491,"showgrid":false,"gridcolor":null,"gridwidth":0,"zeroline":false,"anchor":"x","title":{"text":"","font":{"color":"rgba(0,0,0,1)","family":"","size":19.9252801992528}},"hoverformat":".2f"},"shapes":[{"type":"rect","fillcolor":null,"line":{"color":null,"width":0,"linetype":[]},"yref":"paper","xref":"paper","x0":0,"x1":1,"y0":0,"y1":1}],"showlegend":false,"legend":{"bgcolor":"rgba(255,255,255,1)","bordercolor":"transparent","borderwidth":2.57695060844667,"font":{"color":"rgba(0,0,0,1)","family":"","size":15.9402241594022}},"hovermode":"closest","barmode":"relative"},"config":{"doubleClick":"reset","modeBarButtonsToAdd":["hoverclosest","hovercompare"],"showSendToCloud":false},"source":"A","attrs":{"8d923c480098":{"x":{},"y":{},"colour":{},"shape":{},"type":"scatter"},"8d921b1f1a13":{"x":{},"y":{},"colour":{},"shape":{}},"8d9216e8e34e":{"x":{},"y":{},"colour":{},"shape":{},"ymin":{},"ymax":{},"width":{}},"8d9213a321a2":{"yintercept":{}},"8d923af51cc0":{"xintercept":{}}},"cur_data":"8d923c480098","visdat":{"8d923c480098":["function (y) ","x"],"8d921b1f1a13":["function (y) ","x"],"8d9216e8e34e":["function (y) ","x"],"8d9213a321a2":["function (y) ","x"],"8d923af51cc0":["function (y) ","x"]},"highlight":{"on":"plotly_click","persistent":false,"dynamic":false,"selectize":false,"opacityDim":0.2,"selected":{"opacity":1},"debounce":0},"shinyEvents":["plotly_hover","plotly_click","plotly_selected","plotly_relayout","plotly_brushed","plotly_brushing","plotly_clickannotation","plotly_doubleclick","plotly_deselect","plotly_afterplot","plotly_sunburstclick"],"base_url":"https://plot.ly"},"evals":[],"jsHooks":[]}</script>
</div>
</div>
<div id="merge-graphsグラフ統合" class="section level1" number="12">
<h1 number="12"><span class="header-section-number">12</span> Merge graphs/グラフ統合</h1>
<div id="extract-legendlegend取り出し" class="section level2" number="12.1">
<h2 number="12.1"><span class="header-section-number">12.1</span> Extract legend/legend取り出し</h2>
<div class="sourceCode" id="cb54"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb54-1"><a href="#cb54-1" aria-hidden="true" tabindex="-1"></a><span class="co">#Legendの表示</span></span>
<span id="cb54-2"><a href="#cb54-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb54-3"><a href="#cb54-3" aria-hidden="true" tabindex="-1"></a>graph_for_legend  <span class="ot">&lt;-</span>　graph_koguchi_number_bind <span class="sc">+</span></span>
<span id="cb54-4"><a href="#cb54-4" aria-hidden="true" tabindex="-1"></a> <span class="fu">theme</span>(<span class="at">legend.position =</span> <span class="st">&#39;bottom&#39;</span>, <span class="co"># Adjust x axis label</span></span>
<span id="cb54-5"><a href="#cb54-5" aria-hidden="true" tabindex="-1"></a>       <span class="at">legend.title =</span> <span class="fu">element_text</span>(<span class="at">color =</span> <span class="st">&quot;black&quot;</span>, <span class="at">size =</span> <span class="dv">20</span>),</span>
<span id="cb54-6"><a href="#cb54-6" aria-hidden="true" tabindex="-1"></a>       <span class="at">legend.text =</span> <span class="fu">element_text</span>(<span class="at">color =</span> <span class="st">&quot;black&quot;</span>, <span class="at">size =</span> <span class="dv">20</span>))</span>
<span id="cb54-7"><a href="#cb54-7" aria-hidden="true" tabindex="-1"></a>graph_for_legend  </span></code></pre></div>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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AAIIIIAAAggggAACCCDQZAUIgDbZquXGEEAAAQQQQAABBBBAAAEEEEAAAQQQQKAcAgSyJbBy5Up55513spW9lW/v3r1l//33z+o1yBwBBDIvMGvWLHn77bfl008/lcWLF8vSpUtlxYoV0r59e+ncubP1s+OOO8rAgQOt3/Hycv67amwtjB49WjZt2hQ//dBDD5Xu3bvH150LqRzrPC/Tyy+//LLU1NS4sj3++OOlZcuWrm2sIJAvAX0+9TnNVjruuOOkVatW2cq+yeT70ksvSV1dXfx+jjzySOnUqVN8nQUEEEAAAQQQQMAWKImZZK/wikAmBb755hvZc889M5llQl6///3vZdSoUQnb2YAAAtEU0ADb8OHDZfLkyaEL2KFDBznllFPkhhtu4INtaLWfDuzYsaPoF1J20i+mfvnLX9qrrtdUjnWdmMGVr776Svbee++EHJ955hk5/fTTE7azAYEggS+//FL69Okjm2++edAhjd6+Zs0a0fembKX58+dLz549s5V9k8lXvxSpqqqK38+YMWNkv/32i6+zgAACCCCAAAII2AJ0gbcleEUAAQQQyJrAzJkz5aCDDpITTjghpeCnFmj16tXyyCOPyPbbb2+9Zq2QZBwJgaefftq3HI8++qjvdjYi4BXQgP95551nBcL0/YOEAAIIIIAAAggggAABUJ4BBBBAAIGsCixYsEC02/XHH3+c1nVWrVolgwcPluuuuy6tfDg5ugKVlZWiXVr9krbm+/bbb/12sQ0BS0A7NY0cOdL6suSJJ56Q+vp6ZBBAAAEEEEAAAQQQsAQYVI0HIacCAwYMkC233DJj19xjjz0ylhcZIYBA5gXWr18vRxxxhHz//fcJmf/85z+Xk046SXr06GH9dOvWTdauXSvz5s2zfj777DN5/vnnpba21nXuiBEjpGvXrlYw1LWDlYIXeO2110S7Fttpp512kkmTJtmr8thjj4kGtkgI+Ano+8c555zj2lVSUuJaz+ZK3759reBrJq7BeLeZUCQPBBBAAAEEEEDgJwECoD9ZsJQDgcsuu0xOPPHEHFyJSyCAQBQEHn/88YQu7zo28IMPPij77rtvQhE1sKld3TWdffbZMmzYMLn++usTxvq99NJLRScJ0aApqekIeLu/P/TQQ3LIIYfEb/DFF1+Uu+66S9q1axffxgICURHQccmvueaaqBSHciCA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CCCAAAIIIIAAAggggAACGRJgDNAMQZINAggggAACCCCAAAIIIIAAAgggkI7AlytXyZwNP028tmO7NrJL+/bpZMm5CCBgBAiA8hgggAACCCCAAAIIIIAAAggggAACERAYNf97Gb1gUbwkF227DQHQuAYLCDRegC7wjbfjTAQQQAABBBBAAAEEEEAAAQQQQAABBBCIuAAB0IhXEMVDAAEEEEAAAQQQQAABBBBAAIHiEPhVt65iB2ral5fLwVt0Ko4b5y4RyLKA/XuV5cuQPQIIIIAAAggggAACCCCAAAIIIIBAMoHDu3SWspIS65B2zZrJAZ06JjucfQggEFKAAGhIKA5DAAEEEEAAAQQQQAABBBBAAAEEEEAAgcITIABaeHVGiRFAAAEEEEAAAQQQQAABBBBAAAEEEEAgpAAB0JBQHIYAAggggAACCCCAAAIIIIAAAggggAAChSdAALTw6owSI4AAAggggAACCCCAAAIIIIAAAggggEBIAQKgIaE4DAEEEEAAAQQQQAABBBBAAAEEEEAAAQQKT4AAaOHVGSVGAAEEEEAAAQQQQAABBBBAAAEEEEAAgZACBEBDQnEYAggggAACCCCAAAIIIIAAAggggAACCBSeAAHQwqszSowAAggggAACCCCAAAIIIIAAAggggAACIQUIgIaE4jAEEEAAAQQQQAABBBBAAAEEEEAAAQQQKDwBAqCFV2eUGAEEEEAAAQQQQAABBBBAAAEEEEAAAQRCChAADQnFYQgggAACCCCAAAIIIIAAAggggAACCCBQeAIEQAuvzigxAggggAACCCCAAAIIIIAAAggggAACCIQUIAAaEorDEEAAAQQQQAABBBBAAAEEEEAAAQQQQKDwBAiAFl6dUWIEEEAAAQQQQAABBBBAAAEEEEAAAQQQCClAADQkFIchgAACCCCAAAIIIIAAAggggAACCCCAQOEJlBdekSkxAggggAACCCCAAAIIIJAbga222ko2bNiQcLFOnTolbGMDAggggAACCERTgABoNOuFUiGAAAIIIIAAAggggEAEBO64444IlIIiIIAAAggggEA6AnSBT0ePcxFAAAEEEEAAAQQQQAABBBBAAAEEEEAg0gIEQCNdPRQOAQQQQAABBBBAAAEEEEAAAQQQQAABBNIRIACajh7nIoAAAggggAACCCCAAAIIIIAAAggggECkBQiARrp6KBwCCCCAAAIIIIAAAggggAACCCCAAAIIpCNAADQdPc5FAAEEEEAAAQQQQAABBBBAAAEEEEAAgUgLEACNdPVQOAQQQAABBBBAAAEEEEAAAQQQQAABBBBIR4AAaDp6nIsAAggggAACCCCAAAIIIIAAAggggAACkRYgABrp6qFwCCCAAAIIIIAAAggggAACCCCAAAIIIJCOAAHQdPQ4FwEEEEAAAQQQQAABBBBAAAEEEEAAAQQiLUAANNLVQ+EQQAABBBBAAAEEEEAAAQQQQAABBBBAIB0BAqDp6HEuAggggAACCCCAAAIIIIAAAggggAACCERagABopKuHwiGAAAIIIIAAAggggAACCCCAAAIIIIBAOgIEQNPR41wEEEAAAQQQQAABBBBAAAEEEEAAAQQQiLQAAdBIVw+FQwABBBBAAAEEEEAAAQQQQAABBBBAAIF0BAiApqPHuQgggAACCCCAAAIIIIAAAggggAACCCAQaQECoJGuHgqHAAIIIIAAAggggAACCCCAAAIIIIAAAukIEABNR49zEUAAAQQQQAABBBBAAAEEEEAAAQQQQCDSAgRAI109FA4BBBBAAAEEEEAAAQQQQAABBBBAAAEE0hEgAJqOHucigAACCCCAAAIIIIAAAggggAACCCCAQKQFCIBGunooHAIIIIAAAggggAACCCCAAAIIIIAAAgikI0AANB09zkUAAQQQQAABBBBAAAEEEEAAAQQQQACBSAsQAI109VA4BBBAAAEEEEAAAQQQQAABBBBAAAEEEEhHgABoOnqciwACCCCAAAIIIIAAAggggAACCCCAAAKRFiiPdOkoHAIIIIAAAggggAACCCCQR4EffvhBqqqqEkrQoUMHad++fcJ2NiCAAAIIIIBA9AQIgEavTigRAggggAACCCCAAAIIRETg4osvlrFjxyaUZsiQITJ48OCE7WxAAAEEEEAAgegJ0AU+enVCiRBAAAEEEEAAAQQQQAABBBBAAAEEEEAgQwIEQDMESTYIIIAAAggggAACCCCAAAIIIIAAAgggED0BAqDRqxNKhAACCCCAAAIIIIAAAggggAACCCCAAAIZEiAAmiFIskEAAQQQQAABBBBAAAEEEEAAAQQQQACB6AkQAI1enVAiBBBAAAEEEEAAAQQQQAABBBBAAAEEEMiQAAHQDEGSDQIIIIAAAggggAACCCCAAAIIIIAAAghET4AAaPTqhBIhgAACCCCAAAIIIIAAAggggAACCCCAQIYECIBmCJJsEEAAAQQQQAABBBBAAAEEEEAAAQQQQCB6AgRAo1cnlAgBBBBAAAEEEEAAAQQQQAABBBBAAAEEMiRAADRDkGSDAAIIIIAAAggggAACCCCAAAIIIIAAAtETIAAavTqhRAgggAACCCCAAAIIIIAAAggggAACCCCQIQECoBmCJBsEEEAAAQQQQAABBBBAAAEEEEAAAQQQiJ4AAdDo1QklQgABBBBAAAEEEEAAAQQQQAABBBBAAIEMCZRnKJ+izuazzz6TMWPGhDKoqKiQiy66KPDYhQsXyqhRo2TatGmiy507d5add95Z+vfvL4ceeqi0bNky8Fznjkzl48yTZQQQQAABBBBAAAEEEEAAAQQQQAABBApNgABoBmrsvffekw8//DBUTq1btw4MgL700kvy+OOPS11dXTyvefPmif68/fbb8uabb8qdd94pbdu2je/3W8hUPn55sw0BBBBAAAEEEEAAAQQQQAABBBBAAIFCEqALfAZqa8aMGWnnogHORx55xAp+Nm/eXI488kj5059qQtAfAABAAElEQVT+JKeeeqpsu+22Vv6TJk2SCy+8UFauXBl4vUzlE3gBdiCAAAIIIIAAAggggAACCCCAAAIIIFBAArQATbOyKisrZcGCBVYue+65p1x77bVJcywtTYw5r1q1Su655x7rPG0heuutt8ruu+8ez+eMM86QESNGyAcffCCzZ8+WZ599VoYOHRrfby9kKh87P14RQAABBBBAAAEEEEAAAQQQQAABBBAodIHEaFyh31GOyz9r1iyJxWLWVfv16ycdO3ZM+rPZZpsllHD06NFSXV1tbT///PNdwU/dWF5eLsOGDZO+fftax/zzn/+UjRs3WsvOfzKVjzNPlhFAAAEEEEAAAQQQQAABBBBAAAEEEChkAQKgadaes/v7Djvs0KjctNu6Jp3gaODAgb55aMvRE0880dqnrU41COpNmcrHmy/rCCCAAAIIIIAAAggggAACCCCAAAIIFKoAAdA0ay7dAOjixYvjY3pqt/dmzZoFlmjAgAHxfTrxkjNlKh9nniwjgAACCCCAAAIIIIAAAgggECWBjWbS4DO+/tb1s6amJkpFpCwIIBBBAcYATbNS7ABohw4dpEuXLlZu2iX+hx9+sFp0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Fi0ZQwABBBBAAAEEEEAAAQQQQAABBBBAAAECoOwDCCCAAAIIIIAAAggggAACCCCAAAIIIBBbgdLY5oyMIYAAAggggAACCCCAAAJZCpx44olmwoQJNdYycuTIGtOYgAACCCCAAALhFCAAGs5yYasQQAABBBBAAAEEEEAgBALJgp8h2Cw2AQEEEEAAAQTqIEAX+DpgMSsCCCCAAAIIIIAAAggggAACCCCAAAIIREuAAGi0youtRQABBBBAAAEEEEAAAQQQQAABBBBAAIE6CBAArQMWsyKAAAIIIIAAAggggAACCCCAAAIIIIBAtAQIgEarvNhaBBBAAAEEEEAAAQQQQAABBBBAAAEEEKiDAAHQOmAxKwIIIIAAAggggAACCCCAAAIIIIAAAghES4AAaLTKi61FAAEEEEAAAQQQQAABBBBAAAEEEEAAgToIEACtAxazIoAAAggggAACCCCAAAIIIIAAAggggEC0BAiARqu82FoEEEAAAQQQQAABBBBAAAEEEEAAAQQQqIMAAdA6YDErAggggAACCCCAAAIIIIAAAggggAACCERLgABotMqLrUUAAQQQQAABBBBAAAEEEEAAAQQQQACBOggQAK0DFrMigAACCCCAAAIIIIAAAggggAACCCCAQLQECIBGq7zYWgQQQAABBBBAAAEEEEAAAQQQQAABBBCogwAB0DpgMSsCCCCAAAIIIIAAAggggAACCCCAAAIIREuAAGi0youtRQABBBBAAAEEEEAAAQQQQAABBBBAAIE6CBAArQMWsyKAAAIIIIAAAggggAACCCCAAAIIIIBAtAQIgEarvNhaBBBAAAEEEEAAAQQQQAABBBBAAAEEEKiDAAHQOmAxKwIIIIAAAggggAACCCCAAAIIIIAAAghES4AAaLTKi61FAAEEEEAAAQQQQAABBBBAAAEEEEAAgToIEACtAxazIoAAAggggAACCCCAAAIIIIAAAggggEC0BAiARqu82FoEEEAAAQQQQAABBBBAAAEEEEAAAQQQqIMAAdA6YDErAggggAACCCCAAAIIIIAAAggggAACCERLgABotMqLrUUAAQQQQAABBBBAAAEEEEAAAQQQQACBOggQAK0DFrMigAACCCCAAAIIIIAAAggggAACCCCAQLQESqO1uWwtAggggAACCCCAAAIIINBwAg8//LBZsmRJjS8cN26cGTt2bI3pTEAAAQQQQACB8AkQAA1fmbBFCCCAAAIIIIAAAgggEBKBJ5980sycObPG1jRv3pwAaA0VJiCAAAIIIBBOAbrAh7Nc2CoEEEAAAQQQQAABBBBAAAEEEEAAAQQQyIEAAdAcILIKBBBAAAEEEEAAAQQQQAABBBBAAAEEEAinAAHQcJYLW4UAAggggAACCCCAAAIIIIAAAggggAACORAgAJoDRFaBAAIIIIAAAggggAACCCCAAAIIIIAAAuEUIAAaznJhqxBAAAEEEEAAAQQQQAABBBBAAAEEEEAgBwIEQHOAyCoQQAABBBBAAAEEEEAAAQQQQAABBBBAIJwCBEDDWS5sFQIIIIAAAggggAACCCCAAAIIIIAAAgjkQIAAaA4QWQUCCCCAAAIIIIAAAggggAACCCCAAAIIhFOAAGg4y4WtQgABBBBAAAEEEEAAAQQQQAABBBBAAIEcCBAAzQEiq0AAAQQQQAABBBBAAAEEEEAAAQQQQACBcAoQAA1nubBVCCCAAAIIIIAAAggggAACCCCAAAIIIJADAQKgOUBkFQgggAACCCCAAAIIIIAAAggggAACCCAQToHScG5W9LZq9erV5pFHHjGffPKJWbx4sfnmm29M9+7dTa9evcxOO+1kjjjiCNOkSZOUGduyZYu56aabjF4zSfvss48ZNWpUylmXLFliHnjgAbs9et+5c2czbNgwM3z4cKNlW7RokXJZPkAAAQQQQAABBBBAAAEEEEAAAQQQQCAuAgRAc1CSjz76qPnTn/5kvvvuu2prW7hwodG/V1991fz97383v/71r83IkSOrzeP++OKLL8yTTz7p/qz1tXfv3ikDoFOnTjV33nmnKS8v99ezaNEio3/Tpk0zTz/9tLn++utN69at/c95gwACCCCAAAIIIIAAAggggAACCCCAQBwFCIBmWarPP/+8ufXWW/21jBkzxrb47Nixo20J+sorr9ggqAKcF1xwgfnjH/9o+vbt68/v3nz66afubVavCnDecccddh1Nmza1rT3V8nP58uVmxowZ5rPPPjOzZ882kyZNsi1Ot91226y+j4URQAABBBBAAAEEEEAAAQQQQAABBBAIswAB0CxKZ+nSpWbKlCl2DSUlJebKK680e+65Z7U1nnzyyea2224zjz32mNm0aZOd5+677zalpdXp582b5y+ndfbv39//O9mbli1b1pi8cuVKc+ONN9rp+vyaa66p1uJU23L11Veb6dOnm/nz55v77rvPnHfeeTXWwwQEEEAAAQQQQAABBBBAAAEEEEAAAQTiIsBDkLIoSQUS169fb9dw3HHH1Qh+6gMFOs866ywzaNAgO58CnRonNDHNnTvXTlIgdcSIEaZDhw5p/zVv3jxxFUZd8RVkVTrjjDOqBT81Tdty2WWX+dvy7LPPmnXr1ukjEgIIIIAAAggggAACCCCAAAIIIIAAArEUIACaRbHOmjXLX/rQQw/13ye+UVBzr7328icn6+7uAqB9+vQxzZo18+etyxt1f1fSA44OPvjgpIsWFxebY445xn6m4K2CoCQEEEAAAQQQQAABBBBAAAEEEEAAAQTiKkAANIuS1fiZQ4YMsU9679KlS9o1qUWnS19//bV7a1/1xPhVq1bZ9wMHDqz2WaZ/fPnll2bFihV2dj1oKd0T54NPj9cYpiQEEEAAAQQQQAABBBBAAAEEEEAAAQTiKlB9IMq45jJP+br44oszXnNwjM/tt9++2nKu9acmuq7yeq/u6RrXs2vXrkatSNMlPdjIpdrGD23fvr3tXv/tt9/asUDdcrwigAACCCCAAAIIIIAAAggggAACCCAQNwECoA1QogpkBltaDh48uNq3BgOgvXr1Mvfff7/5xz/+YZYtW2bn09Pc+/XrZw488EBz5JFHmqKiomrL64/Fixf707p37+6/T/VGLVYVAFU3eLVA1VPra0sVFRUpZ0n3WcqF+AABBBBAAAEEEEAAAQQQQAABBBBAAIE8CxAAzTOwVq+nraslp9Lo0aNNYoAy2DpUrUoTH0ykBxvNmTPH/nv55ZeN5lGr0GD6/vvv/T/VwrO21K5dO3+WNWvW1BoA1Tapa326NGDAAFNeXm4+++yzdLPxGQIIIIAAAggggAACCCCAAAIIIIAAAg0mQAA0z9TPPPOMmTp1qv2WbbbZxvzmN7+p8Y3BhyIp0LjddtsZjdM5dOhQGzj9+OOPzQsvvGCX04OXtI577rmn2jifwQBoJg9RCs6zYcOGGtvEBAQQQAABBBBAAAEEEEAAAQQQQAABBOIgQAA0j6U4Y8YMM3nyZP8bzj77bJP4sCQFPJcsWeLPoye0n3nmmTW6uR9xxBHmsssusw86WrBggXnggQfMKaec4i8XbDWqLvO1peA8GzdurG12PkcAAQQQQAABBBBAoFEKqB6+22671cj7LrvsUmMaExBAAAEEEEAgnAIEQPNULmr5qeCnuoQrnXjiieaHP/xhjW8rLS01N998s9FT3PX+oIMOqjGPJuy0007m/PPPt93f9fef//xnc+yxxxq1KlXSsi6573R/J3sNzhMMhiabV9OKi4tNjx49Un1sNAbookWL/PymnJEPEEAAAQQQQAABBBCIkMDEiRMjtLVsKgIIIIAAAggkE6iKmiX7tJFNmz59unnuuefS5vqCCy4wnTt3TjvPn/70J3Pvvff685x88snVWmv6H3hvFHxUd/dM0p577ml22GEHo4cmKYC5cOFCM2TIELtoixYt/FVozNDaUrDVZ8uWLWub3TRv3tzvhp9s5s2bN9u8JPuMaQgggAACCCCAAAIIIIAAAggggAACCBRKgABoQF5PUn/jjTcCU2q+TTdeZllZmbn++uuNWn8qqdXkeeedZw477LCaK6rnlP79+9sAqBafP3++HwANBjGD44Gm+ppgl/ngsqnmZzoCCCCAAAIIIIAAAggggAACCCCAAAJRFCAAmqNSU9DxkksuMW+//bZdo1pMXnHFFWb8+PE5+obK1QTHEF29erW/7uCT5ZcvX+5PT/XGzVNSUmLatGmTajamI4AAAggggAACCCCAAAIIIIAAAgggEGkBAqCB4jvyyCPNgQceGJhS823Hjh1rTFy1apU555xzzGeffWY/69Chg7nuuuvMwIEDa8ybOEGtRrW8/nXq1Mm0bds2cZZqfy9btsz/u1evXv77Pn36+O+DD1XyJwbe6Dvdevr162eCT4QPzMZbBBBAAAEEEEAAAQQQQAABBBBAAAEEIi9AADRQhK1atTL6V5e0du1a283dBT/79u1ru8EHW2qmW9/dd99tHnroITtLurFC3To07qdL2223nXtr1DW+SZMmRmNxzpo1y5+e7M1HH31k59NnbgzRZPMxDQEEEEAAAQQQQAABBBBAAAEEEEAAgagLFEc9A4Xe/htuuMEfk3PQoEHmtttuM5kGP7Xtu+66q5+FV1991T5N3Z+Q8Obdd981c+bMsVPV+jPYAlRPgx8zZoz9bMGCBebTTz9NWLrqz+CDnsaNG1f1Ae8QQAABBBBAAAEEEEAAAQQQQAABBBCImQAB0CwKVON96snxSur2fu2119Z5PM3hw4f7y8ybN8888sgjSbdo5cqV5sYb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1IpqpBAIIIAAAggggAACCCCAAAIIIIAAAggg4CVAANRLhXUIIIAAAggggAACCCCAAAIIIIAAAgggYIUAAVArqpFCIIAAAggggAACCCCAAAIIIIAAAggggICXAAFQLxXWIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACXgIEQL1UWIcAAggggAACCCCAAAIIIIAAAggggAACVggQALWiGikEAggggAACCCCAAAIIIIAAAggggAACCHgJEAD1UmEdAggggAACCCCAAAIIIIAAAggggAACCFghQADUimqkEAgggAACCCCAAAIIIIAAAggggAACCCDgJUAA1EuFdQgggAACCCCAAAIIIIAAAggggAACCCBghQABUCuqkUIggAACCCCAAAIIIIAAAggggAACCCCAgJcAAVAvFdYhgAACCCCAAAIIIIAAAggggAACCCCAgBUCBECtqEYKgQACCCCAAAIIIIAAAggggAACCCCAAAJeAgRAvVRYhwACCCCAAAIIIIAAAggggAACCCCAAAJWCBAAtaIaKQQCCCCAAAIIIIAAAggggAACCCCAAAIIeAkQAPVSYR0CCCCAAAIIIIAAAggggAACCCCAAAIIWCFAANSKaqQQCCCAAAIIIIAAAggggAACCCCAAAIIIOAlQADUS4V1CCCAAAIIIIAAAggggAACCCCAAAIIIGCFAAFQK6qRQiCAAAIIIIAAAggggAACCCCAAAIIIICAlwABUC8V1iGAAAIIIIAAAggggAACCCCAAAIIIICAFQIEQK2oRgqBAAIIIIAAAggggAACCCCAAAIIIIAAAl4CBEC9VFiHAAIIIIAAAggggAACCCCAAAIIIIAAAlYIEAC1ohopBAIIIIAAAggggAACCCCAAAIIIIAAAgh4CRAA9VJhHQIIIIAAAggggAACCCCAAAIIIIAAAghYIUAA1IpqpBAIIIAAAggggAACCCCAAAIIIIAAAggg4CVAANRLhXUIIIAAAggggAACCCCAAAIIIIAAAgggYIUAAVArqpFCIIAAAggggAACCCCAAAIIIIAAAggggICXAAFQLxXWIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACXgIEQL1UWIcAAggggAACCCCAAAIIIIAAAggggAACVggQALWiGikEAggggAACCCCAAAIIIIAAAggggAACCHgJEAD1UmEdAggggAACCCCAAAIIIIAAAggggAACCFghQADUimqkEAgggAACCCCAAAIIIIAAAggggAACCCDgJUAA1EuFdQgggAACCCCAAAIIIIAAAggggAACCCBghQABUCuqkUIggAACCCCAAAIIIIAAAggggAACCCCAgJcAAVAvFdYhgAACCCCAAAIIIIAAAggggAACCCCAgBUCBECtqEYKgQACCCCAAAIIIIAAAggggAACCCCAAAJeAgRAvVRYhwACCCCAAAIIIIAAAggggAACCCCAAAJWCBAAtaIaKQQCCCCAAAIIIIAAAggggAACCCCAAAIIeAkQAPVSYR0CCCCAAAIIIIAAAggggAACCCCAAAIIWCFAANSKaqQQCCCAAAIIIIAAAggggAACCCCAAAIIIOAlQADUS4V1CCCAAAIIIIAAAggggAACCCCAAAIIIGCFAAFQK6qRQiCAAAIIIIAAAggggAACCCCAAAIIIICAlwABUC8V1iGAAAIIIIAAAggggAACCCCAAAIIIICAFQIEQK2oRgqBAAIIIIAAAggggAACCCCAAAIIIIAAAl4CBEC9VFiHAAIIIIAAAggggAACCCCAAAIIIIAAAlYIEAC1ohopBAIIIIAAAggggAACCCCAAAIIIIAAAgh4CRAA9VJhHQIIIIAAAggggAACCCCAAAIIIIAAAghYIUAA1IpqpBAIIIAAAggggAACCCCAAAIIIIAAAggg4CVAANRLhXUIIIAAAggggAACCCCAAAIIIIAAAgggYIUAAVArqpFCIIAAAggggAACCCCAAAIIIIAAAggggICXAAFQLxXWIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACXgIEQL1UWIcAAggggAACCCCAAAIIIIAAAggggAACVggQALWiGikEAggggAACCCCAAAIIIIAAAggggAACCHgJEAD1UmEdAggggAACCCCAAAIIIIAAAggggAACCFghQADUimqkEAgggAACCCCAAAIIIIAAAggggAACCCDgJUAA1EuFdQgggAACCCCAAAIIIIAAAggggAACCCBghQABUCuqkUIggAACCCCAAAIIIIAAAggggAACCCCAgJcAAVAvFdYhgAACCCCAAAIIIIAAAggggAACCCCAgBUCBECtqEYKgQACCCCAAAIIIIAAAggggAACCCCAAAJeAgRAvVRYhwACCCCAAAIIIIAAAggggAACCCCAAAJWCBAAtaIaKQQCCCCAAAIIIIAAAggggAACCCCAAAIIeAkQAPVSYR0CCCCAAAIIIIAAAggggAACCCCAAAIIWCFAANSKaqQQCCCAAAIIIIAAAggggAACCCCAAAIIIOAlQADUS4V1CCCAAAIIIIAAAggggAACCCCAAAIIIGCFAAFQK6qRQiCAAAIIIIAAAggggAACCCCAAAIIIICAlwABUC8V1iGAAAIIIIAAAggggAACCCCAAAIIIICAFQIEQK2oRgqBAAIIIIAAAggggAACCCCAAAIIIIAAAl4CBEC9VFiHAAIIIIAAAggggAACCCCAAAIIIIAAAlYIEAC1ohopBAIIIIAAAggggAACCCCAAAIIIIAAAgh4CRAA9VJhHQIIIIAAAggggAACCCCAAAIIIIAAAghYIUAA1IpqpBAIIIAAAggggAACCCCAAAIIIIAAAggg4CVAANRLhXUIIIAAAggggAACCCCAAAIIIIAAAgggYIUAAVArqpFCIIAAAggggAACCCCAAAIIIIAAAggggICXAAFQLxXWIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACXgIEQL1UWIcAAggggAACCCCAAAIIIIAAAggggAACVggQALWiGikEAggggAACCCCAAAIIIIAAAggggAACCHgJEAD1UmEdAggggAACCCCAAAIIIIAAAggggAACCFghQADUimqkEAgggAACCCCAAAIIIIAAAggggAACCCDgJUAA1EuFdQgggAACCCCAAAIIIIAAAggggAACCCBghQABUCuqkUIggAACCCCAAAIIIIAAAggggAACCCCAgJcAAVAvFdYhgAACCCCAAAIIIIAAAggggAACCCCAgBUCBECtqEYKgQACCCCAAAIIIIAAAggggAACCCCAAAJeAgRAvVRYhwACCCCAAAIIIIAAAggggAACCCCAAAJWCBAAtaIaKQQCCCCAAAIIIIAAAggggAACCCCAAAIIeAkQAPVSYR0CCCCAAAIIIIAAAggggAACCCCAAAIIWCFAANSKaqQQCCCAAAIIIIAAAggggAACCCCAAAIIIOAlQADUS4V1CCCAAAIIIIAAAggggAACCCCAAAIIIGCFAAFQK6qRQiCAAAIIIIAAAggggAACCCCAAAIIIICAlwABUC8V1iGAAAIIIIAAAggggAACCCCAAAIIIICAFQIEQK2oRgqBAAIIIIAAAggggAACCCCAAAIIIIAAAl4CBEC9VFiHAAIIIIAAAggggAACCCCAAAIIIIAAAlYIEAC1ohopBAIIIIAAAggggAACCCCAAAIIIIAAAgh4CRAA9VJhHQIIIIAAAggggAACCCCAAAIIIIAAAghYIUAA1IpqpBAIIIAAAggggAACCCCAAAIIIIAAAggg4CVAANRLhXUIIIAAAggggAACCCCAAAIIIIAAAgggYIUAAVArqpFCIIAAAggggAACCCCAAAIIIIAAAggggICXAAFQLxXWIYAAAggggAACCCCAAAIIIIAAAggggIAVAgRArahGCoEAAggggAACCCCAAAIIIIAAAggggAACXgIEQL1UWIcAAggggAACCCCAAAIIIIAAAggggAACVggQALWiGikEAggggAACCCCAAAIIIIAAAggggAACCHgJEAD1UmEdAggggAACCCCAAAIIIIAAAggggAACCFghUGBFKSgEAggggAACCCCAgG+BTZs2yYQJE2Tu3Lmirzdu3CibN2+W6tWrS4sWLaR58+aRn27duknVqlV9HztRwgMHDshXX30Vszk/P1/at28fsy4Xb+bPny8TJ06UFStWGAs12blzp9SrV08aNGhgflq1aiXnnnuu8clFHvnMzAhs375dVq5cGXOwypUry3HHHRezLt03y5Ytk927d8ft1qRJE6ldu3bcer8rfvjhB1m9enVM8iOOOMKcn85Kzi1Hgt8IIIAAAggkFsgrKl4Sb2YLAggggAACCCCAgA0Cu3btkqeeekreeOMN+eyzz8TvV8C6devKgAED5Le//W2pgn8aZD3qqKNiKKtVqyaar1wsa9askb/97W/y9ttvy6pVq3xnoW3btvLzn/9c/vCHP0jDhg1970fCYAgsWrQoLuhepUoV2bZtm1SqVKlEmdQAZP369UWDle7ljjvukAcffNC92vf7P//5z3L//ffHpNe2N2zYsMg6zq0IBS8QQAABBBBIKMAj8Alp2IAAAggggAACCIRfQIMzzzzzjGgPxttv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AggggAACCCCAQLgECICGq77ILQIIIIAAAggggAACCCCAAAIIIIAAAgikIUAANA0skiKAAAIIIIAAAggggAACCCCAAAIIIIBAuAQIgIarvsgtAggggAACCCCAAAIIIIAAAggggAACCKQhQAA0DSySIoAAAggggAACCCCAAAIIIIAAAggggEC4BAiAhqu+yC0CCCCAAAIIIIAAAggggAACCCCAAAIIpCFAADQNLJIigAACCCCAAAIIIIAAAggggAACCCCAQLgECICGq77ILQIIIIAAAggggAACCCCAAAIIIIAAAgikIUAANA0skiKAAAIIIIAAAggggAACCCCAAAIIIIBAuAQIgIarvsgtAggggAACCCCAAAIIIIAAAggggAACCKQhQAA0DSySIoAAAggggAACCCCAAAIIIIAAAggggEC4BAiAhqu+yC0CCCCAAAIIIIAAAggggAACCCCAAAIIpCFAADQNLJIigAACCCCAAAIIIIAAAggggAACCCCAQLgECICGq77ILQIIIIAAAggggAACCCCAAAIIIIAAAgikIUAANA0skiKAAAIIIIAAAggggAACCCCAAAIIIIBAuAQIgIarvsgtAggggAACCCCAAAIIIIAAAggggAACCKQhQAA0DSySIoAAAggggAACCCCAAAIIIIAAAggggEC4BAiAhqu+yC0CCCCAAAIIIIAAAggggAACCCCAAAIIpCFAADQNLJIigAACCCCAAAIIIIAAAggggAACCCCAQLgECICGq77ILQIIIIAAAggggAACCCCAAAIIIIAAAgikIUAANA0skiKAAAIIIIAAAggggAACCCCAAAIIIIBAuAQIgIarvsgtAggggAACCCCAAAIIIIAAAggggAACCKQhQAA0DSySIoAAAggggAACCCCAAAIIIIAAAggggEC4BAiAhqu+yC0CCCCAAAIIIIAAAggggAACCCCAAAIIpCFAADQNLJIigAACCCCAAAIIIIAAAggggAACCCCAQLgECICGq77ILQIIIIAAAggggAACCCCAAAIIIIAAAgikIUAANA0skiKAAAIIIIAAAggggAACCCCAAAIIIIBAuAQIgIarvsgtAggggAACCCCAAAIIIIAAAggggAACCKQhQAA0DSySIoAAAggggAACCCCAAAIIIIAAAggggEC4BAiAhqu+yC0CCCCAAAIIIIAAAggggAACCCCAAAIIpCFAADQNLJIigAACCCCAAAIIIIAAAggggAACCCCAQLgECICGq77ILQIIIIAAAggggAACCCCAAAIIIIAAAgikIUAANA0skiKAAAIIIIAAAggggAACCCCAAAIIIIBAuAQIgIarvsgtAggggAACCCCAAAIIIIAAAggggAACCKQhQAA0DSySIoAAAggggAACCCCAAAIIIIAAAggggEC4BAiAhqu+yC0CCCCAAAIIIIAAAggggAACCCCAAAIIpCFAADQNLJIigAACCCCAAAIIIIAAAggggAACCCCAQLgE/h/URdPOT9WpIwAAAABJRU5ErkJggg==" width="672" /></p>
<div class="sourceCode" id="cb56"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb56-1"><a href="#cb56-1" aria-hidden="true" tabindex="-1"></a><span class="co">#extract legend</span></span>
<span id="cb56-2"><a href="#cb56-2" aria-hidden="true" tabindex="-1"></a>legend_model_types <span class="ot">&lt;-</span> ggpubr<span class="sc">::</span><span class="fu">get_legend</span>(graph_for_legend)</span></code></pre></div>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<div class="sourceCode" id="cb58"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb58-1"><a href="#cb58-1" aria-hidden="true" tabindex="-1"></a>legend_model_types <span class="ot">&lt;-</span> ggpubr<span class="sc">::</span><span class="fu">as_ggplot</span>(legend_model_types)</span>
<span id="cb58-2"><a href="#cb58-2" aria-hidden="true" tabindex="-1"></a>legend_model_types</span></code></pre></div>
<p><img src="data:image/png;base64,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OUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYAQFo2NYqjAABAgQIECBAgAABAgQIECBAgAABAag5QIAAAQIECBAgQIAAAQIECBAgQIBAWAEBaNjWKowAAQIECBAgQIAAAQIECBAgQIAAAQGoOUCAAAECBAgQIECAAAECBAgQIECAQFgBAWjY1iqMAAECBAgQIECAAAECBAgQIECAAAEBqDlAgAABAgQIECBAgAABAgQIECBAgEBYgaXDVqYwAgQIECBAgEAbgWeffTb96U9/SnfeeWfKj5955pk0Y8aMtPzyy6e3ve1taf3111/4Z/vtt09jx45t8ykD3/Xqq6+m+++/v+mNo0aNSptttlnTvpF4cs8996TLL788Pf7443WP7PLSSy+l1VZbLa2xxhr1PxtssEHaY4896kYjMUbfuegCs2bNSlOmTGn6oDFjxqSNN964ad9Anzz66KNp9uzZLW8bN25cWnnllVv2d7pj5syZ6Yknnmg6/E1velP999m4s1t/W35XjV3ymAABAgQIjKxAz4LaNrJD8O0ECBAgQIAAgcUr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sLyY14QJE5oGle/VmW8pUbYV7/+Zw9QVV1yx6W2NZ4TmF5599tmUP79sK/6ec0jbLmgs+5zheN3vajiUfQcBAgQIEBgaAQHo0Dj6FAIECBAgsFgF8iJFr9fCybI/9cve581dpLHMv/Ly9NqUKaXf9fqsFxfpe4bizXNrZ+HdeuutLR/1z//8zy37hnrHBz/4wZaPLK623nLACO3YdtttU75fZ3F76aWX0te//vU0bty4tOeee6YzzjgjTZ06tXhYZZ/PqZ2lOKUWUHb655wpU9P1f3++43rn1u5XedTdkzr+/DyOv9fuL9ot2y677NI0lHm1sbX7PTUdVHty+eWXN+0qhp35xXaXrReD06YPqT3JZ4gWA9Add9wx5dtOdOO2pP6uurEXxkSAAAECBMoEli47wOsECBAgQIDAyAu8XrtH5yu1hYqGZauFra8cW/5dS713qzT2C/82LEPq60tyWJdD0OKW70G4uLf111+/5Sueeuqpln3dsiMv0rTddtuldqu05+Ar36Ox9z6NeUXvnXbaqX6GYD77rt2iT91SV3/juP2FmekjN7UG5P29Z6Cv/fW559LWf7m247cdMG7t9KN3bd7x8YvzwHb3Ac2Xwe+www59fu0999yTnnzyyabX2wWgeTGszTffPOXje7c8v/IiYn1t999/f8tq8e2C1L7ePxL7l8Tf1Ug4+04CBAgQILCoAs4AXVRB7ydAgAABAsMgsKALL7Nd8GLzQiXDwNDyFc8/33q2Xl75ffnll285dqh3tFuVupsD0HxP1MsuuyxtueWWpRSTJ09OP//5z9OnPvWptNFGG9VXdj/ooIPS2WefnZ555pnS93fLAd10tmWvyfQ5rYF972vD/XdeXX311Vdv+tqy+4AWz+LM7+/rPxyKwejNN9+cXnjhhabva3xSpft/9o57Sfxd9dbubwIECBAgUCUBAWiVumWsBAgQILDECix4ceQvNy/iv147822kt3YB6MorrzwswyqurJ6/tHhm3LAMZABfsu6666Ybb7wx5ft+5ntAdro9/fTT6bzzzkuf/OQn62FoPiv09NNPT//4xz86/YgROe7pV8rvZzncA3u8i/4zo6enp2nxomxxww039LtYUTEAzWdo5s9ptxXP3swLJ/35z39ud2h9X/Hy93XWWSe94x3v6PP4bnlhSftddYu7cRAgQIAAgYEICEAH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DMtyyy2Xtt9++5a3DsVnt3zoMO/wuxpmcF9HgAABAgQGIOAeoAPAcigBAgQIECBQfYG8yNH06dPT448/niZPnlz/M2XKlJTPEM0LCa2//vr1v3MoWJUVqYeiK3lhmkmTJtVXu3/uuedS/vP888/XF0PKl/7nP+uuu279Ho3tzuAbijH4DALRBPyuonVUPQQIECBQVQEBaFU7Z9wECBAgQIAAAQIECBAgQIAAAQIECJQKuAS+lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECBAgAABAgQIECBAgAABAgQIlAoIQEuJHECAAAECBAgQIECAAAECBAgQIECAQFUFBKBV7ZxxEyBAgAABAgQIECBAgAABAgQIECBQKiAALSVyAAECBAgQIECAAAECBAgQIECAAAECVRUQgFa1c8ZNgAABAgQIECBAgAABAgQIECBAgECpgAC0lMgBBAgQIECAAAECBAgQIECAAAECBAhUVUAAWtXOGTcBAgQIECBAgAABAgQIECBAgAABAqUCAtBSIgcQIECAAAECBAgQIECAAAECBAgQIFBVAQFoVTtn3AQIECDw/9qxQxsAAACEYf9/zQnTJPUIUhwECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKeAATSIBAgQIECBAgAABAgQIECBAgAABAgReBRygr8vpTYAAAQIECBAgQIAAAQIECBAgQIBACjhAk0iAAAECBAgQIECAAAECBAgQIECAAIFXAQfo63J6EyBAgAABAgQIECBAgAABAgQIECCQAg7QJBIgQIAAAQIECBAgQIAAAQIECBAgQOBVwAH6upzeBAgQIECAAAECBAgQIECAAAECBAikgAM0iQQIECBAgAABAgQIECBAgAABAgQIEHgVcIC+Lqc3AQIECBAgQIAAAQIECBAgQIAAAQIp4ABNIgECBAgQIECAAAECBAgQIECAAAECBF4FHKCvy+lNgAABAgQIECBAgAABAgQIECBAgEAKOECTSIAAAQIECBAgQIAAAQIECBAgQIAAgVcBB+jrcnoTIECAAAECBAgQIECAAAECBAgQIJACDtAkEiBAgAABAgQIECBAgAABAgQIECBA4FXAAfq6nN4ECBAgQIAAAQIECBAgQIAAAQIECKSAAzSJBAgQIECAAAECBAgQIECAAAECBAgQeBVwgL4upzcBAgQIECBAgAABAgQIECBAgAABAingAE0iAQIECBAgQIAAAQIECBAgQIAAAQIEXgUcoK/L6U2AAAECBAgQIECAAAECBAgQIECAQAo4QJNIgAABAgQIECBAgAABAgQIECBAgACBVwEH6OtyehMgQIAAAQIECBAgQIAAAQIECBAgkAIO0CQSIECAAAECBAgQIECAAAECBAgQIEDgVcAB+rqc3gQIECBAgAABAgQIECBAgAABAgQIpIADNIkECBAgQIAAAQIECBAgQIAAAQIECBB4FXCAvi6nNwECBAgQIECAAAECBAgQIECAAAECKTAK5TTYcAdf5AAAAABJRU5ErkJggg==" width="672" /></p>
</div>
<div id="merge統合" class="section level2" number="12.2">
<h2 number="12.2"><span class="header-section-number">12.2</span> Merge/統合</h2>
<div id="graph-size" class="section level3" number="12.2.1">
<h3 number="12.2.1"><span class="header-section-number">12.2.1</span> graph size</h3>
<div class="sourceCode" id="cb59"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb59-1"><a href="#cb59-1" aria-hidden="true" tabindex="-1"></a>dpi_num <span class="ot">&lt;-</span> <span class="dv">100</span></span>
<span id="cb59-2"><a href="#cb59-2" aria-hidden="true" tabindex="-1"></a>width_num <span class="ot">&lt;-</span> <span class="dv">15</span></span>
<span id="cb59-3"><a href="#cb59-3" aria-hidden="true" tabindex="-1"></a>height_num <span class="ot">&lt;-</span> <span class="dv">15</span></span></code></pre></div>
<div class="sourceCode" id="cb60"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb60-1"><a href="#cb60-1" aria-hidden="true" tabindex="-1"></a>ymin <span class="ot">&lt;-</span> <span class="sc">-</span> <span class="dv">200</span></span>
<span id="cb60-2"><a href="#cb60-2" aria-hidden="true" tabindex="-1"></a>ymax <span class="ot">&lt;-</span> <span class="dv">800</span></span>
<span id="cb60-3"><a href="#cb60-3" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb60-4"><a href="#cb60-4" aria-hidden="true" tabindex="-1"></a>ymin_num <span class="ot">&lt;-</span> <span class="sc">-</span> <span class="dv">200</span></span>
<span id="cb60-5"><a href="#cb60-5" aria-hidden="true" tabindex="-1"></a>ymax_num  <span class="ot">&lt;-</span> <span class="dv">800</span></span>
<span id="cb60-6"><a href="#cb60-6" aria-hidden="true" tabindex="-1"></a>interval <span class="ot">&lt;-</span> <span class="dv">200</span></span></code></pre></div>
</div>
<div id="wls" class="section level3" number="12.2.2">
<h3 number="12.2.2"><span class="header-section-number">12.2.2</span> WLS</h3>
<div class="sourceCode" id="cb61"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb61-1"><a href="#cb61-1" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS <span class="ot">&lt;-</span> graph_koguchi_number_WLS <span class="sc">+</span> </span>
<span id="cb61-2"><a href="#cb61-2" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(a) Emergency Small Amount Funds&quot;</span>) <span class="sc">+</span> </span>
<span id="cb61-3"><a href="#cb61-3" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb61-4"><a href="#cb61-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb61-5"><a href="#cb61-5" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_WLS_covar <span class="ot">&lt;-</span> graph_koguchi_number_WLS_covar <span class="sc">+</span> </span>
<span id="cb61-6"><a href="#cb61-6" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(b) Emergency Small Amount Funds, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb61-7"><a href="#cb61-7" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb61-8"><a href="#cb61-8" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb61-9"><a href="#cb61-9" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS <span class="ot">&lt;-</span> graph_sogo_number_WLS <span class="sc">+</span> </span>
<span id="cb61-10"><a href="#cb61-10" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span>  <span class="st">&quot;(c) General Support Funds&quot;</span>)<span class="sc">+</span> </span>
<span id="cb61-11"><a href="#cb61-11" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb61-12"><a href="#cb61-12" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb61-13"><a href="#cb61-13" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_WLS_covar <span class="ot">&lt;-</span> graph_sogo_number_WLS_covar <span class="sc">+</span> </span>
<span id="cb61-14"><a href="#cb61-14" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(d) General Support Funds, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb61-15"><a href="#cb61-15" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb61-16"><a href="#cb61-16" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb61-17"><a href="#cb61-17" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS <span class="ot">&lt;-</span> graph_jukyo_number_WLS <span class="sc">+</span> </span>
<span id="cb61-18"><a href="#cb61-18" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(e) Housing Security Benefit&quot;</span>) <span class="sc">+</span> </span>
<span id="cb61-19"><a href="#cb61-19" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(<span class="sc">-</span><span class="dv">50</span>, <span class="dv">200</span>), <span class="at">breaks=</span><span class="fu">seq</span>(<span class="sc">-</span><span class="dv">50</span>, <span class="dv">200</span>, <span class="dv">50</span>))</span>
<span id="cb61-20"><a href="#cb61-20" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb61-21"><a href="#cb61-21" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_WLS_covar <span class="ot">&lt;-</span> graph_jukyo_number_WLS_covar <span class="sc">+</span> </span>
<span id="cb61-22"><a href="#cb61-22" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(f) Housing Security Benefit, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb61-23"><a href="#cb61-23" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(<span class="sc">-</span><span class="dv">50</span>, <span class="dv">200</span>), <span class="at">breaks=</span><span class="fu">seq</span>(<span class="sc">-</span><span class="dv">50</span>, <span class="dv">200</span>, <span class="dv">50</span>))</span>
<span id="cb61-24"><a href="#cb61-24" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb61-25"><a href="#cb61-25" aria-hidden="true" tabindex="-1"></a>graph <span class="ot">&lt;-</span> (graph_koguchi_number_WLS <span class="sc">|</span> graph_koguchi_number_WLS_covar) <span class="sc">/</span> </span>
<span id="cb61-26"><a href="#cb61-26" aria-hidden="true" tabindex="-1"></a>  (graph_sogo_number_WLS <span class="sc">|</span> graph_sogo_number_WLS_covar) <span class="sc">/</span></span>
<span id="cb61-27"><a href="#cb61-27" aria-hidden="true" tabindex="-1"></a>    (graph_jukyo_number_WLS <span class="sc">|</span> graph_jukyo_number_WLS_covar) </span>
<span id="cb61-28"><a href="#cb61-28" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb61-29"><a href="#cb61-29" aria-hidden="true" tabindex="-1"></a>graph</span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).

## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAABcBcAwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBGBCgAzsiJ5DAQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABCoC5BhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGMCFAAnJETyWEggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACFABzDSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZEaAAOCMnksNAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEKADmGkAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQyIkABcEZOJIeBAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIUADMNYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghkRIAC4IycSA4DAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQoACYawABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIiAAFwBk5kRwGAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQAEw1wACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQEQEKgDNyIjkMBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAgAJgrgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgIwIUAGfkRHIYCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAXAXAMIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBARgQoAM7IieQwEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQqAuQYQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBjAi0zshxcBgtROD99983O+64o/nyyy/NGmusYaZOnWpWXXXVqh99Lpczu+66q3n11VdNq1atzKOPPmp69uxZlf2YN2+eeeSRRyq6ra5du1bteCp6IGSOQAsSmDFjhnn44YfNU089ZT788EMzd+5c89lnn5nVVlvNrLnmms6/zTbbzPTt29f5fLduzU+Aci+PMWPGmMWLF3ur77333qZz587euH8gybL+9dIeHjVqlPn2228D2fbv39+0adMmMI0RBGoloOtT12mlUr9+/cxKK61Uqewzle9dd91llixZ4h1T7969TYcOHbxxBhBAILlAnDj2gQceMAsXLvQyV7y54YYbeuNpDdQqliWOTesMkg8C2RMglq3eOU0SnyZZtpJHQCxbSV3yTkOAWDYNxebnQRxbwND++Cch0DACffr0ydlL2fl35ZVX1nS/H3vsMW9fNt1009zXX39dlf154YUXvO26Fmn/PfLII6tyLGwEAQSaLzB69Ojc5ptvnui+0K5du9zgwYNzn3zySfN3oAXmsPrqqwe87Us5BRWSLFswk2bOeO655wL7635n3Hbbbc3MmdVbmsCkSZNy9sWSihz2559/Hnmdutdrc//OmjWrIvudxUxXXHHFwLl45plnsniYHBMCVRWIE8d269Yt8Nn729/+VrF9rEUsSxxbsdNJxgg0rACxbPVPXZL4NMmylToSYtlKyba8fIlls3/OiWOjzzFNQNunSaTGELjjjjucmrba24033tjYwoua7vi+++5rVCNC6c033zQXXnhhTfeHjSOAQMsSePvtt80ee+xhDj30UPP6668nOnhb0GKuu+46516qv6RsC9x6662RB3j99ddHTmciAmEB1do6/vjjTY8ePYzuHyQEEEAAgfgC9RbHas+JZeOfP5ZEAIH0BYhl0zfNao7Eslk9s9U7LmLZ6lmzpfoUoAC4Ps8LexUSUFOmQ4YM8aaOGDHCLLfcct54rQYuv/xys+yyyzqbHz58uHnppZdqtStsFwEEWpDA7NmzjZodfvLJJ5t11PPnzzcnnniiGTZsWLPyYeX6Ffjqq6+MmsGJSvZtajN58uSoWUxDwBGw74+am2++2XlZ5M9//rP5/vvvkUEAAQQQSCBQr3GsDoFYNsGJZFEEEEhNgFg2NcrMZ0Qsm/lTXNEDJJatKC+ZN5AAHQA20Mlqybt68sknO31ZymC33XYzBxxwQF1wbLHFFuboo482t9xyi/nuu+/MMcccY2yTEqbafWtuv/32Zp111knNZLvttkstLzJCAIF0BRYtWuTU2lBfcuG0++67mwEDBpguXbo4/9Zee22zYMECM3PmTOff008/bWxzgs79yr/uRRddZNZaay2nMNg/neHGF7jnnnvMF1984R2Ivrdee+01b/yGG24wKtgjIRAloPvHscceG5jVqlWrwHglR2wXG07hcxrboL/rNBTJAwEEkgrUaxyr46iHWJY4NukVxfIINLYAsWxjn79q7z2xbLXFs7U9YtlsnU+OphkC0S1DMxWB+hG47777An0hjRs3rn52zu7JO++8k7MFvt4+XnrppRXdv6i+k/7xj39UdJtkjgAC9SNga2t49xv79e8M77DDDrmJEyfG2kndswYNGpSXxworrJD74IMPYuXR0hdK0hdSkmUr4brXXnsFzvX48eMD4yuvvHLOFhBXYtPkmQGBqH55dQ+pRIraln05pRKbIs8SAvSdVAKI2QjEFEgax1azD2D3EKoZyxLHuur8RaDlChDL1v7cJ4lPkyxbiSMjlq2EasvJMyq+JJbN9vknjo0+vzQB3YzCc1atvIC9bM2ZZ57pbUi1f9XsaT2lDTfc0PzsZz/zduniiy+mfzxPgwEEEEhT4JtvvjFXXHFFIEvdgx555BGzyy67BKYXGtHyf/3rX81hhx0WWGTx4sV5eQcWYKThBGxwY/7zn/94+7355pubPffc02y11VbetP/973/O9eBNYAABBBBAAAEEmi3QCHGsDpJYttmnmgwQQCCmALFsTCgWcwSIZbkQEEAAgXQEKABOx5FcKiTw4IMPmrfeesvL/aSTTvKG62lATXu5aeHChebGG290R/mLAAIIpCagPlttLd1Aftdff73p2LFjYFqcETVdv8kmmwQW1b3r22+/DUxjpHEFbrvtNqMH0G7q3bu3M9i/f393kvNXzUCTEEAAAQQQQCA9gUaJY3XExLLpnXdyQgCBwgLEsoVtmJMvQCybb8IUBBBAoBwBCoDLUWOdqgnY5mG8ba200kpmv/3288braWDrrbc2G220kbdLf/rTn4zebiQhgAACaQpMnz49kJ36G1fLCOUk2/Sv+cUvfhFYVS+w+F+6CcxkpKEEvv/+e3P77bcH9tktAD7iiCMC09Un8IQJEwLTGEEAAQQQQACB8gUaJY7VERLLln+eWRMBBOILEMvGt2rpSxLLtvQrgONHAIE0BVqnmRl5IZCmwKRJk8xTTz3lZdm3b1+jAotyk35AvPrqq+b999838+bNM/Pnzze2bXjTvn1706FDB2P70DSrrLJKudmbn/70p+aSSy5x1lcNvbvuuivQNHTZGTfYit9995158cUXzcyZM83cuXPNmmuuadZdd12z7bbbOt7FDmfRokXeul9//bXZeOONzWabbWY6depUbLXY82bPnm1eeeUV8/HHHxsVdK2xxhpmrbXWMjvttJNp27Zt7HxKLajj/u9//2s+++wz58UAPVTRNRYn6dqcMWOGUXM3n376qXPserlAeVQiVcvEv+86B++++66ZM2eOUQGmzsE222zjXCf+5codnjVrlnnvvfeca1DN23bt2tXYPtXMeuut52yv3HzrYT3dv/xJ9y+9HFNu2meffQLN7CsfFQZuscUWZWVZr5//St//y8Kq8EqPP/64833nbkbXye677+6M/uAHPzA9e/Y0zzzzjDvbqCZ5uS8TeJlEDNTrNaFdVW13PYh6/fXXzUcffeTcp3U/2nHHHZv1eyOCoSaTKn2vrclBZXyjlT5n+l2ha16/M/Q7qEuXLmbLLbd0moBNi9b2Ke7k//bbbzu/t9q1a+d8ttTihL6PSQi0BIG041jXTL9r9d2t3+9fffWVWXvttZ1YQ5/j5iZiWWPq+TdLNWM2YtnCn6ZKf09ry8Syhf3Dc4hl03mWGXath3Fi2dJnIcuxbDXutaWFWSKpQCXPWzXiWB1vZmPZ6K6BmYpA7QVsEKp2K71/o0aNKmunHnjggdyBBx6YswUlXl7+fN3hZZddNmcf+uZuuummnK29m3hbkydPDuTfvXv3xHnEWeGFF14IbEf7/49//CPOqqkss9dee+XWWWcd55/tT9LL0xbe5n73u9/l7IOIvP3TPtoC0NxZZ52VszdTbx13wBYW54477ricLYSNXNf2TZV7+OGH3cUT/f3yyy9zw4cPz9k+LyPz1r4tv/zyuR//+Me5Rx99NHbettDYc7CFs9569iWAXJs2bQLbWm655XK2n+jcm2++6S0XHnjyySdz+++/f65Vq1aBdd3r0xZg5v74xz/m7IMJZ9U77rjD277Ox1VXXRXOsuB4pUy0Qf/1oX12ky3Qz9n+sXO2MDvy+HSc2223Xe4vf/lLzhbWuavF/mtf6MjZmvc5+wCsYP46D0cddVTOFq5H5msL33MbbLBBwFV5lpNsTctAPrbP3XKyyVvHNtGcd3z2gVDecnEnyPr444/PDR06NKdrV/e/Ytep//w2wue/Uvf/1VdfPXAebB/MBcmTLFswkzJmHHrooYF9tC1oBHK57rrrAvN1H7QP/ALLxBlptGtC9yJd65tuumnOvoASMHDvt7Lo1atX7v77749D4C2j+4/7/ai/TzzxhDcvzoAtmA+sbx/yF1zN7572vdYW3Hn70blz5zwjW0juzddxjh49uuB+Jpnx+eef523roosuSpJF4mWzcs5KHbjtCzxnX6Qs+BvDvvyR0+8QN9kXJAPnoti1qHVsQVRO30/6XLmfo6i/+j1nm5rN2Yfb7qb4i0AmBcqNY3U/9392/va3vzk+H374oRNL2JehA/PdZe3LFbkLL7wwZx8Gl+1ZjViWODbZ6alkzEYsm38uKvnbKn9rwSnEskGPuGPEskuflyZ9lpkkPk2ybNzzFmc5YtlopSzEspW+1xLLRl87UVPr5flD1L650yodx2o7jRrL2pb9As9lhgwZ4rLl/VXfcCQE6k5ABTT6EeMGtbbmUk4FjEmSAkxb69TLw80rzl9b8zRnm0FNsjlnWQXf/vz/9a9/Jc6j1Aq1DpxV6OMeo63V4eyuAhZbm8yb7s6P+mtreuZsTSvvMG3/WCUL5918Bg4c6BWAehkUGXjooYdytnZLrP1yt6GCYP/+Fcre1ib18rW1nJ3F9ODFzSfq7zXXXJOXna5rFfxGLR81TYWk+nzYPjsD68R9SF5JEx2c//rQ51bp5ZdfLlowGz7OHj165FQYGzeNGTMmZ2vvBzzCefrHVRB84oknRr7o8ZOf/CSQj14cSJqmTZsWyEPb++STT5JmE7n8uHHjAnnruI4++ujIZSsx0X9+6/nzX+n7f5JAOMmyaZ0z+3ak82KL/7p3HyK727AtFOQtc+mll7qzY/9tlGtCB6QXAhTk+F1KDet+pCAyTmruuQ4XuinYKZT87mnfa/USSCkX/3y9uJNGqkUBcFbOWSH/JL8x9OKDe58IX4vFCoCfffbZnG2pJdE1s8IKK+R+//vfF9ptpiPQ0ALNiWOjCoD1EmypF5nde7Je5rAtUZXtV+lYljh26Yu8cU5QpWM2Ytn8s1DJ31b5W2uaQixLLNt0NSwdIpYllg1fExrPSixb6XstsWzU1RM9LRzz1er5Q9TeVSOO1XYbOZZVRTA3BtBf/bYrlEyhGUxHoJYCI0aMCFzE/fv3T7Q7Y8eOLVib1P/hKDasWi96CyRJOvPMMwP7fcwxxyRZPday9RY4q8aYCnWLWYbn2WZInWO99957C9ZGCa/jjl977bWxnFRzc5lllkm0X+42VAv0jTfeKLqdcNCsL41i29ODVRW4+JPGd95558T7uP766zu1qd391d84BcCVNtGxhX/M2aYmc7ap7cTHKJdSNYGXLFmS++1vf5s4b9ft5z//uf90OMO6Jt357t+pU6fmLVdsgmrCu+vq78EHH1xs8UTzVLMj6qWG008/PWebBUyUVzkL+8+vCoDr8fNfjft/kkKjJMuWc06i1gn/EFx11VUjr49wDSXVztPnKklqhGtCnxv9jvB/LpMM6x5mm/UvydLcc92cACzNey1Bc8lT7S1QL+fM2yHfgF4EUQ2vJNe6lr3gggtyKqD1r1eoAFjXXceOHQPL+tcrNXzaaaf59phBBLIh0Jw4NlwAPGjQoLzPY6nPlV7IGD9+fFmYlY5liWPrI47VxUEsm/8R8f+m1ct1af62yt9azvnNTSy7tAYrsWzTFUIsm3Nat/N/1xHLZiuWrfS9lli26X5SaqheY9lqxLGyafRYVi+d+u+VGi5UlkEBcKlPA/NrItCnT5/ARZykiWMVSKhgIvwhsP2D5NSMtO2f1nkzWk1pTZw4Mff3v//daeoxvLzG1ZxdkvT8888HtquH6Wmnegqc1dSx7dPNO2YFSieccELO9n/sNCV4++23O007RzVrrAJLfzNmahpYTUTrXKspZj2AUNPK4fOiB/Glaoequd3weho/6KCDcpr30ksvOXmouUM1qxxVe1nNGBZrCtwfNOuhv5r89m9TtT79TUH369cvcCmocHPXXXcNrKP19SB12LBhOTUpqzf4n376aWcf1Ty5P/+waakC4GqY6AD9P+ZU6O2/PrTPcrjsssuc41OzobpeCjULXaoGffgBm+szYMCA3M0335ybMmVKTjXK9Jm//PLLI2tP/OEPfwicF51zNVfu5qW/CkjjJp1XFdD710/ajGypbelY/Pm7w6od8pvf/CZn+05PXIhXapvufP/5rcfPf7Xu/0kK+pIs6zo392/43lnoZSTVKnKvH/dvseaso/ar3q8J7bNe9nCPz/2r+5GazNH3vO4Rtk/y3D//+c/ceeedF1lLWF0U2L6Cowi8ac091+UGYGnfa3Xf1D1U//TikGvm/lUT2u58/S2nxRQPzTfQkmoAp33OfIzeYNRvDHXTcf755+f0/arfwSok0veg/3Psnmf/X/0WCSe9dBQurNL3kL4ztfy7777rtN6jbj70Nrk+h+Fm1/U51OePhECWBJoTx4Y/U/7Poe4bv/71r3N6WVGfX9vPmvMdtueee+bdpxWHxG29wm9f6ViWOLY+4lidc2JZ/5W/dNj/XViN72li2abu3nSvI5bNOS9XV+NZZpKYJcmy+Z+q8qYQywbdshbLVvpeSywbvH6KjdXL84fwPlY6jtX2shLLhssirrzyyjCnM04BcCQLE2spoAKYcF+w7733XuxdOvbYYwNBsB4uxek/+N///negwE4/QtUUdJLaUOqfNXwD1QOwNFM9Bc7+hxIqRP34448jD1UP1QvVjtX0U089Nac+jsJJhWkqtPVvR8NXX311eFFvXG97+QuWtbyaaFbTSoWSzpseWIa3M3LkyEKrBIJm/3r6MaNrSdex9n/GjBm5c845x5nmz0xNZvrX07Bq6rz//vv+xbxh5XfKKafkrePmoeanC6VqmWj7/h9z7r7pr2qJF6pBpPV++ctf5h2bmmMulPSmk1448G9Db4YWO8+qcR1uFl73h/D9JeysGrdx7wN6mO7fJxXo69ylmXS9qj9X/3bCw9quaneq2XE1wa1rMY1U6PzWy+e/Wvf/JIFwkmXTOEcqTAlfDxMmTIjMWtdSuN/2Yp+7qEzq/ZpQAWXYQy8SFetXXn3VR9UY3myzzSK/q1yX5p7r8O+HuE0w+Y8v7XttVKGs7r+VSFHbKvVyU3P3I4vnTCZ33nln3nWv3xh60SEqqYktvaDlv5b8w1EFwPqt419GfUO/W+I3r+5F4drFhxxySNQuMQ2BhhRobhxbqABYsYxe8ItK+o16xhlnBD6P+myq9nDSVOlYlji2PuJYXRf+AmD/vbwlx7KFftOm/dtK/sSyxLK6DsKJWDbnvBjovydpmFg2+LJEo8ey1bzXRsWXxLJNd556fP5QjThWAlmJZVXe4L9n9u3bt+kE+4YoAPZhMFgfAnrI5L941bdn3MILvcERvoGpVmncpFoQ/m1rWIVnSVK4gOmWW25JsnrJZaMCZz0sUJO5afwrVesy6st6yy23LPpQXAcVVZArX9UALZb0UNJfi1Tr6O33Qin8AFO1TeLWLrnpppsC53+11VZz3sKM2lZU0KyCZxX4lkoLFizI6y9PBWhff/11qVVzhd4ULlYAXC0T7XzU9aEfqOHmr8MHqiZae/XqFfDXywGF+jEL95usmg6laudpmyrs1f74P+eqzeZPqiHun69h9b0bJ4XfzlSN3EqkhQsX5vbaa6+8/QzvtzuuN6pVsKe3wV577bWydynq/NbL57+a9/8khUZJli37xPhWHDx4cOC60PdDsRR++WXZZZfNqcZe3FTP14Tuqeuuu27AQy9HzJo1K9bhhW30eVLz2oVSc891+PdL0gLgStxrax006/6iAsJy/91www2FTpczPYvnTC/UrbPOOoHrfocddijZrYl+a//iF78IrOd+h0QVAIe7O7jiiiuKWrszhw8fHtiGvp/ivmTl5sFfBOpVoDlxrI4pqgBY9/Y431sXX3xx4LOl7/NCzcAV86tkLEscWx9xrM4/sWz+pyDqN20lfltpy8SyxLLhK5BYdqkIsWzTlZHVWLaa91pi2abrKWqo3p4/VCuOlUVWYtnnnnsu8PtfFaWiyhYoAI76BDCtpgLqe8x94KS/u+yyS+z9CfffqcK/jz76KPb6airLv20Nq0ZfknTUUUcF8jj88MOTrF5y2ajAObzPzRlXk9jFUtSX9WOPPVZsFWfefffdF3DRPqp5m08++aTkuuGH8AqYopLOX7imsZrzTJJ0vfn9jjvuuMjVo4Lm6667LnLZ8MSo5pjVHHWcpILSH/zgB4F91P4WKgCupon2P+r6iNuUerjZOR3XE088kceia0YPtfzn6fjjj89brtCEs88+O7CuChjCKfzwSw/FSyX9WNELK/79UmFypZIe1qswKlwT2r/9QsNdu3Z1aotMmzYt0e5Fnd96+fxX8/6fpNAoybKJTkbEwuq3PtxsWKF7g7u6XpwIXyd6izBuqudrQvee8LEVa9khfMx6EBOuIa0C5UK1+pt7rpsbgKV9r5VHrYPm8PlLOq7WJYqlLJ6zqN9bDzzwQDEGb55eugrX0JV5VAHwHnvsEfh8qduPOGn27NnObzV9tn74wx/mfvazn8X6LRgnb5ZBoNYCzYljte9RBcCXXnpprMPS71DVFPbfJw877LBY6/oXqmQsSxxrnII/v7c7XO2YjVjWlW/6G/WbthK/rYhll5oTyzZdexoils05LysSyzZdF1mNZat1r5UksWzT9RQ1VG/PH6oVx8oiK7Gsvks7d+4c+P2vvuTDaRkbIJAQqCuBqVOnBvbHFs4ExouN2EIbY5sLMDb4NkcffbSxte9Mp06diq0SmGf77jS2YCkwzT5QD4yXGgnvb/h4Sq3faPNtbSqz7777ltxt2x9y3jK2/0Vj+1vNmx6eYJviDkyyTXYExt2RO+64w9ibnztqbA1eY9/q8cbjDNjCwcBi9oFmIM/ATN+I/eI0tjazb0rhQfsgNjBTfrvttltgWqER+1KDc30Xmh+eXksT7YstLDH2AXx4tyLHbfNaxj54DsyzAXJgXCO26VZjawt5020fTYnOs33Y7Gxniy22MLZ2tLE1Y034c25r8nr5a+Duu+829i2qwLTwiO3r19iaud5kHY/tv8YbT3vANl9tbG14Y2s1G9uvsrF9KcfehD5DWsc2aWtOOukkY38Yx17Xv2A9ff7r4f7vt6nFsP3BHDiXukbsg9yiu6JrwDYNG1jGtlxh7MsmgWlxR+rpmtC9wp90P/rVr37ln1R02L5cYexLRIFlbDP9ZuLEiYFp9TBSiXttPRxXlvehUucsfN3bfoGc77k4lrZQ1oS//wqtZ/uBD8yyL7cFvpsDM30jtnaysS9XGFvYbGyTfsZ2iRHrt6AvCwYRqFuBcNwXjguT7rji2JNPPjnWavpMDh06NLCs7RrF2ILhwLRSI+F9Dh9TqfUbaX49/WapdcxGLJt/5Vbye5pY1hhi2eA1RyxrDLFs8JoI/6bPaixbqXttUJOxtAUqcd7C13yl4lhZZCWW1Xepnmn7k23e2j/qDFMAnEfChFoLzJ07N7ALtqZaYLzYyAYbbGBsjVszbNgwc9tttxnbXG6xxfPmqXDN9iMamG5r+gTGS43Y2pmBRcLHE5iZgRHbdHGso7BvpOQtZ99yz5sWNcHWqgxMtk0oB8bdET1I9Cdbm9fYpoH9k0oOh49n8eLFRg/8SyWdd914SyXlZ5vZDixma5cGxkuNDBw40NgmE0st5syvpYl2QIX3tlZ2rH3V58/WxgosG/X5e/DBBwPL9O7d2yloDkwsMqJ90sOwV1991dxzzz3GNv2e9+Wv+4gKlt2ka+6hhx5yRyP/6uG3P6mguRpJD69sLXlja/OaKVOmGNu8ptl7773zCtOj9kUvTFx77bXOebI1eaMWKTot/HkptHA1Pv/1cP8vdPzVmn7rrbcGNmWbCTe2hkdgWtRIuMDnww8/NHqhoZxUL9eEHqz997//DRyCXnYIv2QSWCBi5JhjjjH2TfTAnHC+gZk1GqnEvbZGh9JiNlupc/boo48GDPX5jvP7xF1JL0/GSQrI/cl2lWBsjV5juxnwT44cVkEDCYEsCoTjviRxbJSHXqLUy0hxk+0/MrCofufZmqWBaaVGWlIsWy+/WXROah2zEcvmfzIq9T1NLBu0JpZd6kEsawyxbNNnoyXFspW61zZpMlQJgUqct2rFsfLIUix7wAEHBE5xuMxBM1sHlmAEgToQCNf4Uy3OSqfp06cb29Sz8y9cuOh/OzPOfoT31/Z96tQgjVsIFmcb4WXOPfdcp8AnPL2ccdUGS5LiLh/18CLuQ5HwmzlR+6fzNGnSpMCsHj16BMbjjNh+fpwCE9vXlre4rg/VDi+W4hZmv/XWW8b2axzIKqp2dGCB0Ige5Gqd+fPnh+YER2ttor0p5RbcY2NU2K/CJzdFFQCHHy4n9VPepT6Pug70Jaqav27629/+Zmw/lO5o4K/2+fHHH/em6cUD1XCvZtJ1oVrH+nfGGWc4hdy22U6nEEz3N9s3hPnuu+8id0n33YMPPtg88sgjRoWGcVO9fP7j7m/Ucmne/6Pyr9Y01QRXAYw/qSWMOGnAgAFmyJAhgVrutu/Ugtd7sTzr5Zp48803zRdffBHYVduffGA8zoheTNFDUduXvLd4+LvGm1HDgUrca2t4ON6mDzroIGO7ffDGkw6Uc86TbqPc5Stxzj7++GMzZ86cwC4l/Y7U7xm1hlPq968Kmi6//HJ1J+Rt79lnnzWqPagWNvr06eO0EKMWTpK+eOFlyAACDSaQdhyrh2tJkl5Y0kui/hhBscdWW20VO5tqx7LEsca534Z/W1QzjtXFQSyb/xGpxPe0tkIsm2+tKcSy0S6lphLLGkMsW/gqaYRYtlL32sIq1ZtDLNtkXepZbzXjWO1VlmJZVQBaeeWVnVa2dGwvv/yykae/RVwKgCVDqiuBcOAcrpFb7s6qYFdvQOsHkgJh/VONOf0NPyQudxtaLxw0683refPmVbR5O9uHgrHt1zdnt8teN3y8STKKUzNN+SkYKJVU0K4mBf3pz3/+sxk1apR/Uqzh8DWoa6ZXr15F143b/K7tkzovH73tmTTpge7kyZOLrlZrE+1c0h9z/lq3Wt//YFnjSvoi86e415F/nTjDqjXlLwDW22gyVeFwONm+swMPy/v27Wv0NnMtk1662GeffZx/2g81T60CQr11ruPyN1et+WriWoXe+rEQt8CgXj7/2v9iqVr3/2L7UOl5akbV/3lRDbudd97Z2P42Y21aBf/+Ny5t/9vOd2TSArR6uSbC93EhlHOv1Xr6PPgLgMM1vLRMrVMl7rW1PiZtf4cddjCqhZ3FVIlzFnVtdunSJRGfCn/VFHSpe4d+96jbjIsvvjgvfz3c1j8VECsYVVCqAmH9K/dzmLcRJiBQhwLh757mxrFxf4/5KdQkX7gA2D+/1HD4e7zSsSxxrHHii1rGsbomiGXzPxmV+J7WVohl862jphDLNqkQyzZZFBoili0kU/+xbKXutYVFqjeHWLbJutSz3mrGsdqrLMWyevanriVtX/IOuJ4LqhnoQYMGeSeAAmCPgoF6EFBtAxWW+lM4CPXPKzU8Y8YMc+WVVzoPtTVcjRS1v3oYEKev22rsX9rbaM6DjaTNMxfbd/+DDnc59S+nf81NKgAuleK+Ne2v3ao89WC0nILCOA9Qa22i44tq+lfTy02qERzur7ZSBcD6AtVDcPecqU/U0aNHR/YhWqvmn5M46o07vYGof3oof8UVVzjN5PtrWat2uvoGvv7662NlXS+f/6idrcX9P2o/qjFND2dVAOxPKtBPWnjrX1/DqgU8cuTI8OSi4/VyTehljXCKc98Mr6Px8AP48O+UqHWqPS3te221978lbq8S5yyNwFnnQgVIpQqAtdyFF15ovvrqK+e3tu5DUUmFGupCwe1GYfvtt3dayDjyyCPL+v0TtQ2mIVAPAmnHsTqmcr639PnVy3xu0svOSVJLimXr5TdLPcRsxLL5n5JKfE8Ty+Y7x51CLBtXqvGWI5bNP2ctKZatxL02X5QpaQukfd6qHcfKI0uxrCrzuAXAOrZwAXC8jhm1JgmBKgioJq6/BpM2qQKypEkFdmqqVc1mXXPNNSZO4W/btm1N//79A/1+Jt2ulo/a36igrpy863GdOM0zV2O/w4WCaW5TTauWSuG+awstH651WW6ziFEPZ8LbrLWJ9kc1idJMUQUv/mYt0tyW9v2oo44KZKlmoMNp6tSpgQdtetmjOU2WhvOvxLiu14suush5OUb3Pn9SQWJUwOFfxh2ul8+/uz/6W8v7v38/qjms2rozZ85MfZO33367U7iTJON6uSbC9z/tV5z7ZtSxrrnmmoHJ/pcmAjNqOJL2vbaGh9JiNl2Jcxb+jlQLKuHrNw5w3FrDyv+Pf/yjUXcD/fr1i/UbWrXpTz31VKep6HrsTzuOD8sgECWQVhzrz7ucl0TDv4vDsYc//6jhlhTL1utvlqjzUu60OHGs8iaWzReuxve0thr+zObvSXlTiGVLu9XLPcC/p8Syfo3mDRPLLvULxwL1FstW4l7bvCuHteMIpH3eqh3H6hizFMvut99+ga4O1UWhv3yNGsBxrmqWqZqAHs6qb05/LYJwn7yldkY1FtTUXLGaC/qQq//Zrbfe2ukTaZdddjF77rmn00eZ9sH/hahlk6So/Y0bUCXZDssGBaIekBx44IGmOW92u1tQbZW00gah5p71JafaMVEPW4pt8/333y8225nXKCYlD8S3gJpf1g8Nf9+En376qW+JdAePtn2oDh8+3Mv0mWeeMe+8845z/3Anhmv/Hn744SbN2u3udlSgpSbE9Wac/qlf0m233dadXdZf3SuHDRtmzjzzTG991RxVobbmNVqq9f2/Vl633HJLRTatl5fUjL4+B42Wwi82qJaiariHp8c5LrcVAHfZSrXo4b+vudvib30L1Ns5U/+f/qSgT9+R4Qc//mWihtXiRZKk39H33HOP8/KQuhh47LHHjF5MifpN7Oar7zF1r6EC5F//+tfuZP4i0LACacSx4YPXb7+11lorPLnoeLgGhX4vJklRn1ti2SSCyZdtpJiNWDb5+fWvQSxLLOu/HsLDxLJhkeaNE8su9SOWbd51lOW16ymWrVUcq/ObhVhWz6h69uxpnnrqKeeSVXcTeq67zTbbOOMUADsM/FcvAirY0UMqfz+pSQp39AXfu3fvvMJfBa16G+KHP/yhU+C75ZZbFnwIrMIPf/K/MeGfXmg4an/VjCypsgLqN0J9CvgL70844QTneqjslpPlrlrp4aTC3E033TQ8uej4rFmzis7XzEYxKXkgvgVUsKrjUiGsm4q97OEuU+5fnZcePXqYiRMnelmov99zzjnHGdfLKhr3p0oVlqlJjwkTJnibOuKII0xUjWRvgZgDxx9/fKAAWKup1YRGKwCuh/t/TPJUF9Nx33///YE89QNWLzglTQoAbr755sBqag68Utd0YEMpj7Rv3z4vR9WC0fd/0hSuPRO3MO27776LvSn99kha6BY7cxaMLdDo5yyqoEitA8S9Zl2oclsU0INtfafonyz10tS//vUvp0B4ypQpgbeQtS0tc8oppzjdLajlHhICjSzQ3Dg26tjVjVDU5zpqWXda+PObtACYWNaVrN7fRorZiGWbd10QyxLLFrqCiGWbZIhljSGWbboeGIov0MixbNTv3WrGsVJu9FhWleDcAmAdj+JwCoAlQapLARWWllsA/Lvf/c689tprgeNSIcaYMWNiNWukmpj+AkRl1NwC4OY0Oxk4EEaKCuihix5wvPHGG95ykydPrrsCYL013bp1a+ehp7ujlSoAbhQT1yHuX/VR5S8AjlMbOpy3agKq1nWcGv4///nPAwXA6lfBLQBWwbD/frXVVls1u1ZueF/d8c022yxQADxp0iR3VrP+qsaK3hbzP/ALN7/SrA1UaeV6uP9X6VADm9ELCOEXl9T1QbktF6jZMX+zrM8995zRvXS77bYLbLfeR6IKvBRAlFMAHH6YHlVTJ8oj/Hsiahl3WrjJanc6f6sr0OjnLOqFQ12/O+64YyLIOC+ZlcpQv3V2331359/FF19s9BayWhS4+uqrzdtvvx1YXf3SUwAcIGGkQQWaE8dGHbL/t1nU/Khp4e+suH27unmFt0ks68pU7m8jxWzEss2/DohllxoSywavJWLZJg9iWRP58iaxbNM1wlC0QCPHsvUUx0q3EWNZVRo6/fTTvYtDBcBq7VEVDegD2GNhoF4Ewm99hIPQQvu5ePFic+eddwZm77DDDs4bD3GbrQo3jaHM/M1RBzIvMBLe36ibWIFVmdxMgfAbyaptUm9Jb/2Gm85Sf3hJkgoK3n333VirNIJJrAPxLRR+kFVOAXCfPn2MHmiphq+GH330Ud8WgoOHHXaYs6w7VdeV+3D8wQcfdCc7f3/2s58FxtMcUQGwP+kBumpXNTfpx0C48ClpbZHm7kNz16+X+39zj6Oc9W+99dbAarpOyi38VUbHHHNMID+NqBZwoyUV9K600kqB3Q4XOgVmFhjRb4Dw/Xa99daLXFqtUPiTrsu4Keo+lvQFtLjbYrkmgaydM721HP4d7X9hqunICw/pZci4/cC7ucR52KA+DtXUs14o0e9zf9K0emqCzL9vDCOQRCD8+QvHhUny0rL+F1vjrKsaw+EmnMO/m0vlE95nYtlSYunMb5SYjVi2+ec7/JmM+g1YaivEsk1CxLJLLdJ4ltmkWr0hYtloa2LZaBemBgWyFMvWKo6VaFZiWf2W3GSTTbyL5Omnn3a6nFSlDgqAPRYG6kUgHGTGfQilJhrDAW+/fv2ctzbiHpv6KwunpAXA4f0NH084f8bTEwgHzv/5z3/MF198kWgD6jdLLwwor3322ccce+yxgVqXiTIrsHC4ad0rr7zSfPnllwWWzp+s/vLCNf7yl1o6pVFMCu1/1PRw0KzC2yTneeHChebZZ581KpyZNm2a0zSlfmwUSupHun///oHZbpO7/gJgvSGmZpkrldRPeThdeOGF4UmJx3XfCzcVE75uEmda5RXq5f5f5cM2ehlBBSf+dOSRR/pHEw/rWg/3nX7XXXcl+owl3mgFVtDnceeddw7kfOONNyYuZNKLZeEa8T/5yU8C+bojK664ojvo/PW3DhCYETHir3UdMZtJFRLI2jlTqxYHH3xwQEsP1pIUrqqVi1JJtXZ+9atfmb322stpvjlcoFts/VVWWcUMHTo0sIi+g6IeXAYWYgSBBhAIx33huDDpIfzjH/9ItEr4ha0VVljBrLvuuonyCO9z+JgSZcbCsQXCv73rNY7VARHLxj6tkQsSyzaxEMsutSCWbbomiGWXWhDLNl0TDBUWyFIsW604VppZjmXVDLSbVLCt35P6RwGwq8LfuhHo3LlzYF/CNW8CM30j4Qe0mtW9e3ffEsUHVdAbfvtMa8R5E8Sfc3h/w8fjX5bhdAXU3IE/6Q12t6le//Riw2qGUP2vqBnUsWPHmltuuSWvNk2x9ePMU/M+eiDjJjWLeMMNN7ijRf/qmK666qqiy/hnNoqJf59LDaufbzWV5iYV/v7pT39yR0v+feyxxwIFnuuss07J5jHVDLQ/qQD4rbfeMm+++aY3WW9iq4ZTpZL6btBLCf6kYxk2bJh/UqJhFYLrevQnPYAqp5lcfx7VHq6X+3+1j/u2224LbFI/mpsbNKvW7MCBAwP5qkbgHXfcEZjWCCPhgjDVpEpyHKpRcP755wcOVQ/SwwXL7gLhZqdfeeUVd1bRv6rpO3r06KLL1GpmOKjUfiT9XVSrfY+z3Syes/ALS3rRKdxCTiEbFcRecMEFhWZ703Wv0e8WBZN60UHXuh5exk3t2rULLLrMMss4XREEJjKCQAMKhOO+cFyY9JDUj5fb6kypddWay8iRIwOLHXfccUafryQpvM/hY0qSF8vGF2ikmI1YNv55jVqSWLZJhVh2qQWx7FIHYtmmz4aGiGWDHuWMEctGq9Xr84dqxLESyXIsG/49qWagKQCO/hwwtcYC6i/Mn55//nmnvXL/tKjhcPOoWmbq1KlRi0ZOGz58uPMWSHhm3JqW7nqqYu9P4ePxz2M4XYEf/vCH5vDDDw9kqjfh4zaxrOvluuuuC6zft29fs9FGGwWmNXdEzYfqgYw/qX+8CRMm+CflDauG+y9+8QujGqxxU6OYxD0eLafP+gknnBBYRbWow80YBxb4/xEtc9pppwVmHXTQQSX7AlYtp/XXX99bT+fqL3/5izeugUo2/+xu6KyzznIHvb8XXXSROfHEE2Mdv7eSHVA/yDr28OdDfUYkfVjoz7cWw/Vy/6/msUc1e63vm0LNEyfZN91nwinuSyrh9Wo5ruNo3759YBdUoBtuLSSwgG9E3wfh5nMPPfTQgveL8HWoQl29UFQqyVa/deox6WWl8P0gzr22Ho8lap+yeM7UWkT4d4sKdfUiR6mk77U4TaXvtNNOZoMNNghkp++iuOnf//53YFHlFfWAJrAQIwg0gEA47osbxxY6ND2gU2tEcVqkuuSSSwK/BfX9d9555xXKuuB0YtmCNBWd0UgxG7Fs8y4FYtmgH7Hs0ucbQZXaPMsM70Mlx4llS+sSy5Y2KrUEsWy0UL0+f6hGHCuRLMeyPXr0MB07dvRO/COPPOJ0HZjsdVBvdQYQqJzAHnvsYdQ8nJvUNG6cvlxVm6Br167uas5fFQrNnj07MC08ooD63HPPzasF5y6XpLBND0Vfe+01d1Xnb6GmIgMLNXNERnqgnea/Rq3hM2LECNO2bVtPVM0eqtZkqSbUVJtz3333zXtAesopp3h5pTlw9tlnB/qn1Fufak5LNZCjHvKocFpNLD700EOJd6NRTJIc2O9///tAwY78dtlll7zPnz9PFXgeffTRxt/Pkmo7qhnLUklviPkLeFVLSk1xu0lNSFfjs66CaP9+uNtXQZUe+F966aVOzWR3evivPg+61lWLXP386q1rf9p8883NUUcd5Z/UEMP1cP+vNtQDDzyQ1zTxoEGDUtkN/SAO1wLXd9uTTz6ZSv7VymTllVc2v/3tbwObmzlzptluu+2K/q7Q5/uMM84wQ4YMCayrl0CKtSoRLjjXd7O6oij2IpnuzyeddFJgO/U2Ikd/uv322/2jDT2cxXOmFjLCL2zMmDHD9OzZM68/a//J0/fI4MGD/ZOKDh9yyCGB+WoxJU5rHCr8Dbdk8stf/jKQFyMINKpAuXFssePVZ0a/VdUqRVTSd5b6177ssssCs/V9VayLk8DC/z9Si1iWOLbpTDRSzEYs23Teyhkilg2qEcvW/llm8IxUfoxYtrQxsWxpozhLEMsGler5+UO14liJVCuW1W94PX/y/4tbISF45uKN6eX9/fff31tYzwH0W9vYt0pJCNSdwE9/+tOcvVq9f7agJdY+nnnmmd467vq2UDg3atSonC1UC+RhC4NytsnnnC1UC6xjC3oC48ozbnr44YcD62611VZxV4293AsvvBDYhnucaf+1heeR+2QLiALbl2GcJO/wPr766qtxVs3ZflYD63bp0qXoevYBSGB5d7uHHXZY7r777svZZgqd9b/66qvcyy+/nLMPTXK25kneOramaMHt2DefA8vbml4Fly00wz4oDeTh7qd9ASJnC/pyp556ak77vOGGG+YtZ99kC0yzb84W2owzvRom2lC514e787bQKXBcN998szsr76+uUdfM/Wt/3OVsbeqcLajK2Zc3nM+9rcGXs7Wacrap57zlbXOwefkWmqB8wvcHd7u2AKfQaqlPtw8Ac/ZlhbxjcfdFfzfZZJOcrd2bszWlc/YBTc72TZzbeuutI69zdz3bxF/OFo4V3d9yz281Pv/VvP/bfsID/vatuoJuSZYtmEnEjB//+MeBfdA9zD64jViyvElXXHFFIH9dJ7Zp6LzM6vma0M7qu982tZd3LPKyD8dzjz/+eM6+QJKzL0fkXn/99Zwt3MzZWjh5y9tgJGdrReUdf3hC+B4mN93D7YOtnK1tn5szZ07O9jmTu/rqqwP3S91b9JvB/Tzq7/jx48PZe+PlursZhPez2L12++23D+yX9m2LLbbI2RY3cvbFl1w533/ufvj/6vr1H7+GS323+dcvdzhsoe02+jmThX3hKc/TFgbl9N2pa9EWGuVstxI5/XbVZ9tvbwPHwHjUtW/77M3ZJtEDyykP+9Zxzr6slrPN1jqfK+2L7VPUue5tE/U5fZb827LNcOdsVw5ajIRAJgTKjWN18LZv0MDnw/+7c8cdd8zdfffdzu9bLWtfaMzdddddOVvoHFhHny/lY2tXabFEqdKxLHGsydVDHKuLglg2/6NRzd9W2jqxbNPzPv/vAg0Tyy61qdSzzCTxaZJl8z9VhacQyzZd/8W+F7IYy1b7Xkss23jPHyodx+rOVK1YtlevXnm/0/X8qZJJ5R7h71UKgCspTt5lC+gBrP9itX0fxMpLga59qyKwrpuPHvba5nZytpagE3iFH0BpOdssb+4Pf/hDYH09CI6bbPOsgXVt/zhxV429HIFz6cDZ1l7ODRgwIHAu3OvA/WtrCRcszNMyts/XvJcG/CcpjaBZ+V144YVF99PdX/evHgRdc801eQUFKuAtlqphou1X88ecCkLDD9lcJ/3VA+w2bdoU9D355JOLkUXOs02SROanz2U1kwq3bZ/DkfviN4g7rMLxl156qeQhlHt+q1EAXM37f5JAOMmyJU/A/y+ggvpwAY19gzHu6rGW++STT3LLL7984BrTuO2zPLB+PV8T7o7qB3ZUoa7/81HsXqEXS/7+97+72RX9+9e//jVg5t9GsWF9F+hlDf8ytq+Wgtsq193NMFzoWawAWC8j+fcrPGxrjbrZNutvrQqAs3jOdCLsm77Oi0Dh8+WOF7rm9VkJf78888wzked28uTJOduSRsHrQ/cMfX7cbYb/6reYbSI3Mm8mItCoAuXGsTrecAFwOC51P0N6WdQdDv/t1KlTrN90Ub6VjmWJY+sjjtW5J5bN/wRU87eVtk4sSyzrvwqJZYll/deDfzhrsWy177XEsk0vG/h/M9bz84dqxLH6jFUjlq1FAbCev4YrudEEtL36SfUnoH5XVW3dTeqLyH423dGCf+2DJmPfhM7r+0wrqAnGN954wzz77LNOs9BqCtVNa6+9trG1hM2NN97o9InpTtdfbdvWGPVPKjj81FNPBeaFO98OzGSkYgLLLbeccx2ozzv1+RCV7A0x8pqyN0ljfyCYm266qWA/j1H5lTtNzbOpTf5wX3pR+dmaNkZN5ai/13AzcIWO082nkUzcfS71t3Xr1kZ9bKpfXA2Hk5rStrW8w5OdJsLVT5qt4Zg3r9QE+2JA3iK2IMXYtwrzpldygpo513Vja4IYXRflJt1n1Wyg7o22hnC52dTFerW+/1cTQU3w6vr2p7Saf3bz7NChQ16z5uoawLb64C7SMH/VD+K4ceOcvtftSzSR+x11r9CCtqar0z+vrSEZuV54os6DmuFU80Vxku7Narpd3wX1mtQ3W7hfS/++2prT/tGGG87iOdNJsAW85p577inYrHPUNb/ttts665T6TeGeZC2v72HbgoQ7KfBX94xCfQ9vuummRk3bqnsLEgJZEig3jo0yUBcB6sc3/N1VqIui7t27O7Frub/piGWjzkJ1pzVazEYsW/71QSxLLOu/eohl0+nKyDUlll0qQSxrDLGs+6lY+rcRnj9UI46VRlZjWTV7bgueAye+qYQtMJkRBGoroC9r9VXmprlz58bue3DjjTd2+gG1TeoYW/PKzSLyr5bVcrZpV3PooYc6y9hawoECFRU825o/kev7J9pmHZ2Otd1pKlS2TXW5o/ytgcCwYcPM9OnTzfHHH1+yDywV/KogTO3jq2/XuA/v0zgsW9PGKYC79957jW2q1+l7U3126QGs+pzUfPWtp0I6t5/ZcAGwbvBxUqOYxDkWLaMHYrZ2hLHNiRvbXHagX+VwHirstM1PmmnTpjn9gkYVGofXCY/bGseBPso1P6pP3vB6lRrv37+/c13YJq6de5j6wo2T1P+v+ji1tX6dvhj9/a7HWb9el6nV/b+aHvpOuu222wKb1HembeY4MC2NkWOOOSYvmz//+c95hc95C9XhBD1U0UteuubVL6+CikJJ9xX1t63vfttUrtHvgiTp9NNPd/oYVt8rhe4z+o7Rvd3WrDTZtS22AABAAElEQVS2+fIk2Vd9WVmp/3m5KWAMJ91TGz1l7Zy550Pfe9dee62xzY47LziGC5Hc5fTdof6y9ZKkbZLZnRzr73777ef8jr7++uvNBhtsUHKdbbbZxnkBy3bBYWxz0SWXZwEEGk2gOXFs1LGef/75zssSxQp1FS+MHDnS2JoMRr/xyknEsuWoVW6dRorZiGXLvw6IZYll/VcPsaxfo/nDxLLEsrqKiGWXfpYa6fmD9rgacay2k9VYNlwhsZV9kFi6WqVESAhUWWDMmDFeoaw2rYIb219nor1Q7QYVAL799ttOwZ7tg8woKFfhrG3izilcS5RhkYVtv6OBGjwat805FlmDWdUUUG05PcjXA0fbtKmZP3++WWuttYztV8X7F7cQtZr7XWhbtnk3oxcj3PTPf/7T+eJyx+P8zZqJjtk2neS8LKLPvXz0FWf7EDK2mRnnb7FCnzhmKnjX/UP3EiUV7tg+2JxrKc76lV7G9unoXOd6iKfr3Pbv6OyrbaLT2UftuzxUaznrqZr3/6xbZvH41CrIhAkTnN8Hulfo3qHa9HqIrjel9TeNpO+asWPHGttst/OZ1G8Q28+TsX02Fqw1mcZ2K5WHjse9v6666qrGNiFpbBPykQXDldqHSuebtXPm97L98ppXXnnFOYe2OXej3xK2yVmzzz77FGwxxb9+qWG1rqNrXdvRPw3rXqzt6DeX7YYltc9WqX1hPgK1FEgjjo3a/6lTpzovdMyePduZrfuvai/stNNOUYsnmkYsm4irqgtnMWYjlo2+hIhliWXdK4NY1pXgb5QAsWyUSulpxLLRrTaVlqv9EpWOY3WElYxlVZFCldP04pc+v6qgUM1EAXA1tdlWIgEFOnoI++abbzrrqeDmgw8+MHFruCXaWDMXViGTHqCpJrGS9lEPvfRwlIRA2gL6sggXZE6ZMsWoVg2psgL333+/sX2Sexs58MADjaaREEAAAQQQQAABBBCQQCPFsdpfYlkpkKolQCxbLen87RDL5pswBQEEEEAAgUoLqGUXNUeu1j5VUafaiSagqy3O9mILqLq/vwat3oCL0xRz7A2kuOD48eO9wl9lq6aEKfxNEThjWQ0fPtzsuuuuRv3Jqi9aNdeWJKlfan9Sk5xJmyj1r89wfIFw07u//OUv46/MkggggAACCCCAAAKZF2ikOFYng1g285dkqgdILJsqZ1UzI5atKjcbQwABBBBAwBEYN26c81dN/dciUQO4FupsM7aAqt/rw+HWrN1uu+2c5k1jZ1ClBQ8//HBz1113OVtr27atU/u3VP/DVdo1NlOHAnfeeafTpLm7az/60Y+cJkLd8VJ/1Za/+mN0k5pUnDhxojvK3woJqFa/avqrmWUlNbunadXsL7pCh0a2CCCAAAIIIIAAAikKNEocq0Mmlk3xxLeArIhlG/MkE8s25nljrxFAAAEEGltg1KhRZsCAAc5BXH311eakk06q+gFRA7jq5GwwiYAKVs466yxvFdWUnDRpkjdeDwPqQ+2+++7zdmXw4MGGwl+Pg4EIgXD/q08++aRRn15xkt7aVX+//qSHNqTKCqipMvXX4Bb+amv60qbwt7Lu5I4AAggggAACCDSiQCPEsXIllm3Eq6u2+0wsW1v/crZOLFuOGusggAACCCDQPIERI0aYgQMHOpl07drVDBo0qHkZlrk2NYDLhGO16gl88803Zuutt/b6At5rr73ME088Ub0dKLElFfhef/31zlJqy/2NN94wHTt2LLEWs1uygK7ptdde28ybN89jWHfddc0NN9xg+vbt603zDyxYsMBcc801Rv0GqF8xN3Xv3t08//zzZoUVVnAn8beZAup3/PPPPzebbLKJWbhwoXnuueeM3tJSQb2b1MT7rFmzzGqrreZO4i8CCCCAAAIIIIAAAp5Avcex2lFiWe90MRBTgFg2JlSNFiOWrRE8m0UAAQQQQCAkcPDBB5v777/fdOrUySnL2nzzzUNLVGeUAuDqOLOVZgqoAKZnz55GTWkpPfLII6ZPnz7NzLX5q7/11ltmiy228GoFqhlot1p/83MnhywLjB071vTu3du7pt1jVYGurvX11lvPrLLKKmb27NlOQaOueRUC+5MKfVX4q3VI6QnccsstplTfvnqLa+jQoeltlJwQQAABBBBAAAEEMidQr3GsoIllM3e5Ve2AiGWrRp14Q8SyiclYAQEEEEAAgYoIfPjhh+ayyy4z5513nmnXrl1FthEnUwqA4yixTF0InH322eaSSy5x9kUFXi+99JJZZpnatmLev39/c++99zr7pOG77767LqzYicYQGDlypDn11FPL2lnVINYLB3vssUdZ67NSYYHHH3/c/PjHPy64gAroJ0yYUPP7T8EdZAYCCCCAAAIIIIBA3QjUYxwrHGLZurlEGnJHiGXr87QRy9bneWGvEEAAAQQQqJVAbUvPanXUbLchBc4//3zj9jfzyiuvmL/+9a81PY6JEyd6hb8dOnQw1113XU33h403nsCQIUOc/qN33HHH2Duv/sT0sEYvQFD4G5st0YLrr79+weV32WUX89BDD1H4W1CIGQgggAACCCCAAAJ+gXqLY7VvxLL+M8RwOQLEsuWoVX4dYtnKG7MFBBBAAAEEGkmAGsCNdLbYVzN58mSz8847O00ud+nSxUyfPt2suOKKNZHZbbfdzFNPPeVse/To0eaQQw6pyX6w0WwIjBs3ztxxxx3mnXfeMe+9956ZM2eO09evmnnu3LmzUR/BBxxwgDniiCPMWmutlY2DrtOj+Prrr83AgQOdQnadi9atW5uNNtrInHDCCebYY481bdq0qdM9Z7cQQAABBBBAAAEE6lGgnuJY+RDL1uNV0rj7RCxbP+eOWLZ+zgV7ggACCCCAQD0IUABcD2eBfUgk8Omnn5pvv/3WWUc1b5dbbrlE66excC6XMx999JGTVatWrSiQSwOVPAICusYXLVpk2rdvH5jOSHUFFi5caFZaaSWjmtckBBBAAAEEEEAAAQTKFaiHOFb7Tixb7hlkvbgCxLJxpSq7HLFsZX3JHQEEEEAAgUYQoAC4Ec4S+4gAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjEEKAP4BhILIIAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgg0ggAFwI1wlthHBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIIYABcAxkFgEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQaAQBCoAb4SyxjwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAMAQqAYyCxCAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIINAIAhQAN8JZYh8RQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBGAIUAMdAYhEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgEQQoAG6Es8Q+IoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAjEEKACOgcQiCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQCMIUADcCGeJfUQAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRiCFAAHAOJRRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIFGEKAAuBHOEvuIAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxBCgADgGEosggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACjSBAAXAjnCX2EQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEIghQAFwDCQWQQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBpBgALgRjhL7CMCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQQ4AC4BhILIIAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgg0gkDrRthJ9jG7Ag8//LCZPXu2d4ADBw40q666qjfOAAIIIIAAAggsFZg7d65ZuHBhHkfbtm1Np06d8qYzAQEEEEAAAQQqI/D999+bm266yct8tdVWMwMGDPDGGUAAAQQQQACBJoH33nvPLFmypGnC/w+tueaaZpVVVsmbzgQEEEAAgXQEWuVsSicrckEguUCvXr3MuHHjvBWnT59uunXr5o0zgAACCCCAAAJLBc455xwzZsyYPI6+ffuakSNH5k1nAgIIIIAAAghURuDbb781yy+/vJe5YljFsiQEEEAAAQQQyBfYbbfdjF5oDqfhw4ebgw46KDyZcQQQQACBlARoAjolSLJBAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEai1AAXCtzwDbRwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBFISoAA4JUiyQQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGotQAFwrc8A20cAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRSEqAAOCVIskEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRqLUABcK3PANtHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEUhKgADglSLJBAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEai1AAXCtzwDbRwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBFISoAA4JUiyQQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGotQAFwrc8A20cAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRSEqAAOCVIskEAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRqLUABcK3PANtHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEUhJonVI+ZIMAAggggAACCCBQQYGhQ4eawYMH521hxRVXzJvGBAQQQAABBBBAAAEEEEAAAQTqQeDuu+82S5YsyduVdu3a5U1jAgIIIIBAegIUAKdnSU4IIIAAAggggEDFBBQcEyBXjJeMEUAAAQQQQAABBBBAAAEEKiDQqVOnCuRKlggggAACpQRoArqUEPMRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBBhGgALhBThS7iQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJQSoAC4lBDzEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQYRoAC4QU4Uu4kAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgiUEmhdagHmV05g8eLFZvTo0Wbq1Klm5syZ5osvvjBdunQx66+/vtl///3N9ttvH2vjS5YsMY8++qgZO3asef/9982XX35pNttsM9O9e3fTo0cPs+mmm8bKZ86cOeaOO+4w06ZNMxpec801zZZbbunks/fee5s2bdrEyoeFEEAAAQQQQAABBBBAAAEEsiuQViybVgyaVj7ZPWMcGQIIIIAAAggggAACCLQ0gVY5m1raQdfD8U6ZMsVceuml5oMPPii4O/vss4859dRTTdu2bQsu88knn5jTTjvNvPvuu5HLLLvssuass84y++67b+R8d+Jdd91lbrzxRqPC5Ki0xRZbmBEjRphVVlklanbZ03r16mXGjRvnrT99+nTTrVs3b5wBBBBAAAEEEEAAAQQQQACB+hFIK5ZNKwZNK58kwt9++61ZfvnlvVUUwyqWJSGAAAIIIIAAAggggAAC9SJAAXANzsTHH39sjj76aLNo0SJn66qhu9dee5k11ljDKci9//77zf/+9z9nnqZfcMEFkXupZU488UQzY8YMZ76Czl133dV07NjRvPTSS+bJJ58033zzjTNvyJAhpl+/fpH5PPzww05htGYqiFVtX9X8nTt3rnn66ae9/Lt27WpGjhxpVl999ch8yplIAXA5aqyDAAIIIIAAAggggAACCFRfIK1YNq0YNK18kkpSAJxUjOURQAABBBBAAAEEEECg2gIUAFdb3G5v6NChZtKkSc6WDz74YHPKKacY1dR106effmoGDx5sPvzwQ2fSeeedZ1RQGk7XXHONGTVqlDNZBcXDhg0zyy23nLfYyy+/bM444wynMFn533333aZDhw7efA3Mnz/f/PSnP3UKildeeWVzySWXmG233dZb5rvvvjMXXXSRV0tX+6tayWklCoDTkiQfBBBAAAEEEEAAAQQQQKCyAmnEsmnFoGnlU44YBcDlqLEOAggggAACCCCAAAIIVFNgmWpujG0Zp6D1hRdecCjUx+7JJ58cKPzVDBXS+gtZJ0yYkEe3YMEC8+CDD3r5hAt/NWOrrbZyCoU1rKad3eU17qYxY8Z4tYR/9atfBQp/tUzr1q3Nueee6/Uj/Nhjjzl9DLvr8xcBBBBAAAEEEEAAAQQQQCD7AmpdKo1YNq0YNK18sn/mOEIEEEAAAQQQQAABBBBoiQIUAFf5rKuvXrefXfWr66+x698V1cJdZpmlp2fatGn+Wc7w+PHjzVdffeUMH3TQQQXzUZPQ6667rrOcCoBVo9ef1GSWUps2bUzfvn39s7xh7cdhhx3mjGubKgQmIYAAAggggAACCCCAAAIItByBtGLZtGLQtPJpOWeQI0UAAQQQQAABBBBAAIGWJEABcA3P9pdffllw699//73J5XLOfDUvFU6vvvqqN2mnnXbyhqMGdthhB2fyZ599ZiZPnuwtoiam582b54yrwLlQYbQW2H777b31/v3vf3vDDCCAAAIIIIAAAggggAACCLQsgXJj2bRi0LTyaVlnjaNFAAEEEEAAAQQQQACBliRAAXCVz7Zq466wwgrOVl977TXz+eefR+7BxIkTvQLgjTbaKG8ZravUqlUr84Mf/CBvvn9Ct27dvNF33nnHG3bz0AT/Mt4CvoH27dubNdZYw5niz8O3CIMIIIAAAggggAACCCCAAAIZFUgjlk0rBk0rn4yeKg4LAQQQQAABBBBAAAEEEDAUAFf5IlhppZVMv379nK0uWrTIXHTRRWbhwoWBvVCTzyNHjnSmqYD38MMPD8zXyJw5c5xpHTt2dPrpzVvAN6FTp07e2KxZs7zh2bNne8OdO3f2hgsNuPmoGehPP/200GKB6R9//LHRNgv9U5PUqnms4yQhgAACCCCAAAIIIIAAAgjUp0AasWxaMWha+RSSVmtchWJYd7ri2NatWxfKgukIIIAAAggggAACCCCAQE0FiFZqwH/ccccZNcesppQnTZrkFPCqmeYOHTqYmTNnOtPUBLSCydNPP91stdVWgb1UAazmK6lmbqnUrl07b5EFCxZ4w//73/+84XLy0f6WSkOGDDEvvvhi0cU23HBD57gXL15cdDlmIoAAAggggAACCCCAAAII1E6gubFsWjFoWvkUklTMvc8++xSa7UxXHLtkyRIzY8aMossxEwEEEEAAAQQQQAABBBCohQAFwDVQV8HusGHDzDbbbGNGjBjhNAM9duzYwJ6o0Paqq64yXbt2DUzXiD/YdZuTzlvIN8G/zNdff+3NSSsfL0MGEEAAAQQQQAABBBBAAAEEMitALJvZU8uBIYAAAggggAACCCCAQMYEaAK6BidUTT6feeaZ5rLLLvP6+W3btq1Rn0rLLLP0lKhv4JNOOsnce++9eXv45ZdfetOWX355b7jQgH8Zfy3btPIptF2mI4AAAggggAACCCCAAAIIZEeAWDY755IjQQABBBBAAAEEEEAAgWwLUAO4yudX/f6eeOKJ5t1333W23L17dzN06FCvpu8333xjnnjiCfOnP/3J6RtYfQGrpu6gQYO8PfX3M6Qmp0ol9bPrJn9hcNJ8/Nvy5+PmHfV3yy23dPr4jZqnaVOmTDHz58/3mrQutBzTEUAAAQQQQAABBBBAAAEEaidQi1i2UAxa6Vh22WWXNbvssktBbHXJ9J///MdpArrgQsxAAAEEEEAAAQQQQAABBGooQAFwlfFHjRrlFf6q398//vGPXq1f7YoKVnv37m1UMPzzn//cqO+hm2++2ey5555ODWEt06ZNG/1xkgqMSyX/MiuvvLK3eNJ8/LWH/fl4GUYMnH322RFTmyb16tXLvPLKK00TGEIAAQQQQAABBBBAAAEEEKg7gVrEsoVi0ErHsupG6fbbby94Dr799lsndi+4ADMQQAABBBBAAAEEEEAAgRoL0AR0lU+A26Rzq1atnGag3Safw7uxzjrrmGOOOcaZrLeLx4wZ4y2y0korecP+fny9iaEBf1PP/oJb/3Bz8gltjlEEEEAAAQQQQAABBBBAAIGMCaQRy6YVg6aVT8ZOEYeDAAIIIIAAAggggAACCHgCFAB7FJUfUFPHCxYscDbUpUsXs9ZaaxXd6M477+zNf+edd7xhvY28xhprOONz5871phca+Pjjj71Zq6++ujfcuXNnbzhOPu4yag5r1VVX9dZlAAEEEEAAAQQQQAABBBBAILsCacWyacWgaeWT3TPGkSGAAAIIIIAAAggggEBLF6AAuIpXgFv4q026BbjFNu8PaufNmxdYdMMNN3TGVbtXwXixNHv2bG/2Zptt5g1vsMEG3vCcOXO84agB9SP80UcfObO6du1qVAhNQgABBBBAAAEEEEAAAQQQyL5AWrFsWjFoWvlk/8xxhAgggAACCCCAAAIIINBSBSgAruKZV7POyy23nLPFadOmmSVLlhTdur9Qdv311w8su/nmm3vjU6dO9YajBl5++WVvsn+9bt26efvz0ksvectEDbz++utG/Rwp+fOIWpZpCCCAAAIIIIAAAggggAAC2RFIK5ZNKwZNK5/snCGOBAEEEEAAAQQQQAABBBAIClAAHPSo6Fjr1q2NW3P3q6++Mq+99lrR7T3zzDPe/I022sgb1sCee+7pjf/rX//yhsMDav55ypQpzuRNNtnE+JuAVl/CbjPT7777rnnrrbfCq3vj/m307NnTm84AAggggAACCCCAAAIIIIBAtgXSimXTikHTyifbZ42jQwABBBBAAAEEEEAAgZYsQAFwlc/+fvvt523x/PPPNx988IE37h9Qgeytt97qTFp++eXNj370I/9sowJhFegqPfXUU8ZfQOsuuHjxYnPppZd6NY2POOIId5b3d//99/eGR4wYYRYuXOiNuwMTJ040Dz/8sDOqAuwePXq4s/iLAAIIIIAAAlUSuOqqq0yfPn3y/um7noQAAggggEClBdKKZdOKQdPKp9Ju5I8AAggggEBLFxg0aFBeHKvYduzYsS2dhuNHAAEEKipAAXBFefMzP/jgg80OO+zgzPjkk0/MKaecYh588EHz/vvvO9NUY3fUqFHmuOOOM998840z7YQTTjDhJqA1Y8iQIc58/XfxxReb22+/3SlQVn+9avb5tNNOMy+88IKzjJpt3mOPPbzl3YFdd93VqwX85ptvml//+tfmxRdfNCo81v6NGTPGnHXWWU4hcqtWrYz2RX9JCCCAAAIIIFBdAX0vv/POO3n/9NuBhAACCCCAQKUF0opl04pB08qn0m7kjwACCCCAQEsXeO+99/LiWMW2ixYtauk0HD8CCCBQUYFWOZsqugUyzxP49NNPzbnnnmteeeWVwDz1D+z2s6sZKmjt16+fU0hcqND1iSeeMJdccon5+uuvvbyWXXZZr9avJqq/phtuuMG0a9fOW8Y/sGDBAqPayM8//7w3OZyHZpx88snm0EMP9ZZJY6BXr15m3LhxXlbTp0836s+JhAACCCCAAAJBgXPOOcd5MSs41Zi+ffuakSNHhiczjgACCCCAQOoCacWyacWgaeWTFEpxu1rqcpNiWMWyJAQQQAABBBDIF9htt93M3Llz82YMHz7cHHTQQXnTmYAAAgggkI4ANYDTcUyUS4cOHcy1115rTj/99ECfvP7CXzXvfP3115vf/OY3RWvc7r333ubGG290moNeZpmlp3PJkiXO/qifpkMOOcSZX6jwVwuuuuqq5vLLLzdqjmOVVVZx1nXz0EjXrl3NZZddlnrhr7Mh/kMAAQQQQAABBBBAAAEEEGgIgbRi2bRi0LTyaQh8dhIBBBBAAAEEEEAAAQQQSCBADeAEWJVadP78+UZNYXz22Wdm3XXXNeutt55p06ZN4s2pFrDeOlZTkJ07d3byadu2beJ81C+x8llhhRWc/Vl77bWNW7icOLMSK1ADuAQQsxFAAAEEEPh/AWoAcykggAACCNSbQFqxbFoxaFr5lHKmBnApIeYjgAACCCDQJEAN4CYLhhBAAIFqCrSu5sbYVrRA+/btjf41N6244oqme/fuzr/m5KXCY/0jIYAAAggggAACCCCAAAIIIFBIIK1YNq0YNK18Ch0v0xFAAAEEEEAAAQQQQACBRhGgCehGOVPsJwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFBCgALgEkDMRgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBpFgCagG+VMsZ8IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQAsUGD16tJk1a1bgyLt06WIGDBgQmMYIAggsFaAAmCsBAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgbgVuuOEGM378+MD+7bbbbhQAB0QYQaBJgCagmywYQgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBpagBrADX362HkEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAINsCp59+uuncubO58847nQNV089HHnlktg+ao0OgGQLUAG4GHqsigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghUVqBPnz6mZ8+e3kZ69Ohh9ttvP2+cAQQQCApQABz0YAwBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBoWAEKgBv21LHjCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQFCAAuCgB2MIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAwwpQANywp44dRwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBIICFAAHPRhDAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEGlaAAuCGPXXsOAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBAUoAA46MEYAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0LACFAA37KljxxFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGgAAXAQQ/GEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgYYVoAC4YU8dO44AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggEBSgADnowhgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSsAAXADXvq2HEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgKNA6OMoYAggggAACCCCAQD0KDB482AwcODBv11ZbbbW8aUxAAAEEEEAAAQQQQAABBBBAoB4EbrnlFvPtt9/m7co666yTN40JCCCAAALpCVAAnJ4lOSGAAAIIIIAAAhUT6Ny5s9E/EgIIIIAAAggggAACCCCAAAKNIrDxxhs3yq6ynwgggECmBGgCOlOnk4NBAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGWLEABcEs++xw7AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghkSoAC4EydTg4GAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRasgAFwC357HPsCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQKQEKgDN1OjkYBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBoyQIUALfks8+xI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBApgQoAM7U6eRgEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgJQtQANySzz7HjgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACmRKgADhTp5ODQQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBlixAAXBLPvscOwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIZEqAAuBMnU4OBgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEWrIABcAt+exz7AgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkCkBCoAzdTo5GAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQaMkCFAC35LPPsSOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQKYEKADO1OnkYBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCULUADcks8+x44AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAApkSoAA4U6eTg0EAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgZYsQAFwSz77HDsCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCGRKgALgTJ1ODgYBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBFqyAAXALfnsc+wIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJApAQqAM3U6ORgEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGjJAhQAt+Szz7EjgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECmBCgAztTp5GAQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKAlC7RuyQfPsSOAAAIIIIAAAo0icNNNN5nx48fn7W6PHj3MySefnDedCQgggAACCCCAAAIIIIAAAgjUWuDEE0808+fPz9uNE044wey+++5505mAAAIIIJCOAAXA6TiSCwIIIIAAAgggUFGBmTNnmhdffDFvG506dcqbxgQEEEAAAQQQQAABBBBAAAEE6kHg5ZdfNnPnzs3blXnz5uVNYwICCCCAQHoCNAGdniU5IYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAjUVoAC4pvxsHAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEhPgALg9CzJCQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEKipAAXANeVn4wgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEB6AhQAp2dJTggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBNBSgArik/G0cAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTSE6AAOD1LckIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRqKkABcE352TgCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQngAFwOlZkhMCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQUwEKgGvKz8YRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACB9AQoAE7PkpwQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBmgpQAFxTfjaOAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpCfQOr2syAkBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBbAvkcjkzffr0vIPs2LGjad++fd50JiBQbQEKgKstzvYQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQaVmDRokVmk002ydv/yy+/3Jx22ml505mAQLUFaAK62uJsDwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEKiQAAXAFYIlWwQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgewJtG7d2hxwwAFGTT67qVevXqZbt27uKH8RqKkABcA15WfjCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACjSTQpk0b88ADD5htt93W2+2bb77ZHHjggd44AwjUUoAC4Frqs20EEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgRQEKgFPEJCsEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECglgIUANdSn20jgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACKQpQAJwiJlkhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACtRSgALiW+mwbAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQSFGAAuAUMckKAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqKVA61punG0jgAACCCCAAAIIxBM4+uijTe/evfMW7tixY940JiCAAAIIIIAAAggggAACCCBQDwJXXHGFWbx4cd6ubLzxxnnTmIAAAgggkJ4ABcDpWZITAggggAACCCBQMYFu3boZ/SMhgAACCCCAAAIIIIAAAggg0CgCO+64Y6PsKvuJAAIIZEqAJqAzdTo5GAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQaMkCFAC35LPPsSOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQKYEKADO1OnkYBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoCULUADcks8+x44AAggggMD/sXcn8HZN9+LAf5FJCI25QowxzxTFK6VeDdWWogihZlr116Kv6vHoq6qailaplJqfUtqqos/QGlqvpBJTzakhhgQpqSRCkv9Zh3Ny7r17J3fYdzjnfPfnc3v2/q21117ruy+17+/stQgQIECAAAECBAgQIECAAAECBAgQIECAQEMJSAA31O00GAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmllAAriZ776xEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQUAISwA11Ow2GAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFmFpAAbua7b+wECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDSUgARwQ91OgyFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoJkFJICb+e4bOwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECDSUgAdxQt9NgCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoZgEJ4Ga++8ZOgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBDCUgAN9TtNBgCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJpZQAK4me++sRMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0FACEsANdTsNhgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBZhaQAG7mu2/sBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0lMCAhhqNwRAgQIAAAQIECBAgUHcCd9xxR0yePLlFvz/+8Y/Htttu2yLmgAABAgQIECBAgAABAgQIECBAYP4CEsDzN1KDAAECBAgQIECAAIFuFDjllFPi/vvvb3GFz3zmMxLALUQcECBAgAABAgQIECBAgAABAgTaJ2AK6PY5qUWAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIE+LyAB3OdvkQ4SIECAAAECBAgQaGyBgw8+OHbYYYfqIHfZZZc44IADqsd2CBAgQIAAAQIECBAgQIAAAQIE2i8gAdx+KzUJECBAgAABAgQIEOgGgQMPPDB23HHHasspATx69OjqsR0CBAgQIECAAAECBAgQIECAAIH2C0gAt99KTQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECPRpAQngPn17dI4AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLtFxjQ/qpqEiBAgAABAgQI9JbAVVddFX/+85/bXP4Tn/hEHHTQQW3iAgQIECBAgAABAgQIECBAoLcFTjzxxJgyZUqbbhxwwAGx+eabt4kLECBAgEAxAhLAxThqhQABAgQIECDQrQJPPvlk3HnnnW2uMXjw4DYxAQIECBAgQIAAAQIECBAg0BcE7rnnnpg0aVKbrnz2s59tExMgQIAAgeIEJICLs+xUS0899VTce++9kf6om/bTtuKKK8b6668fo0aNiqFDh8633VmzZsWtt94ad9xxR7z00ksxbdq0WGuttWK99daLLbbYItZcc835tpEqTJw4Ma688spyP9L+0ksvHeuuu265ne222y6GDBnSrnZUIkCAAAECBAgQIECAAIHGFijiWbaoZ9Ci2mnsO2Z0BAgQIECAAAECBAg0k4AEcC/e7RtuuCF+/OMfR0rg1m7//Oc/Y/z48XHzzTfHCSecEFtuuWVtcYv9yZMnx7HHHhsTJkxoEX/wwQcj/Vx++eXlNnbYYYcW5a0Prr322rj44otb9OWFF16I9HPLLbeU+3LmmWfGIoss0vpUxwQIECBAgAABAgQIECDQRAJFPMsW9QxaVDtNdPsMlQABAgQIECBAgACBJhCQAO6Fmzxnzpw47bTT4vbbby9ffcCAAZHW79tqq63Kb++maTEef/zxSIngU045JcaMGRMrrLBCm56+++67cfzxx1eTvyNHjiy3sdRSS8W4ceMitTNz5sz43ve+F6nul770pTZtpEBK8F544YXlskGDBkV62ze9+Zum5rj//vvjueeeK/fnqKOOinPPPTcWX3zxzHYECRAgQIAAAQIECBAgQKBxBYp6li3qGbSodhr3jhkZAQIECBAgQIAAAQLNKiAB3At3/ve//301+TtixIg477zzIiVtK9vee+8dF110UaRvMk+fPj3OOOOM+MlPflIprn5edtll5eRsCmy77bZx0kknxcCBA8vlX/ziF+ORRx6Jb33rW+Xk7/nnnx9bb711LLnkktXz086UKVPinHPOKccWXnjhOP3002OjjTaq1jnwwAPLCeS05uDzzz8fv/jFL+Kb3/xmtdwOAQIECBAgQIAAAQIECDSHQBHPskU9gxbVTnPcOaMkQIAAAQIECBAgQKDZBBZotgH39njTG7k//elPy90YPHhw+Y3a2uRvKlhggQXi8MMPj5QcTtujjz5aTtSWDz76n3feeSd++9vflo/SWr21yd9KvbSOcIqnLU0zXalfKU+f119/ffkt4bR/5JFHtkj+plh6O/nkk0+uriN82223ld9STmU2AgQIECBAgAABAgQIEGgOgaKeZYt6Bi2qnea4e0ZJgAABAgQIECBAgECzCUgA9/Adf+CBB+Ltt98uX3WvvfaKZZZZJrMH/fv3j5122imWX375WHvtteOll15qUe/uu+8uvx2cgrvuumv1zd8WlUoHaVrpSiI5JYA/+OCDFlXSlFlpGzJkSOy8884tyioHKSGd+pq29EZySgLbCBAgQIAAAQIECBAgQKB5BIp6li3qGbSodprnDhopAQIECBAgQIAAAQLNJCAB3MN3OyVuK1tewrVSPnr06PI00Gk66PQ2b+322GOPVQ8322yz6n7WTlpfOG1vvvlm/O1vf6tWefXVV+Ott94qH6dpnyvTR1cr1Oxssskm1aM//OEP1X07BAgQIECAAAECBAgQIND4AkU8yxb1DFpUO41/14yQAAECBAgQIECAAIFmFZAA7uE7/9RTT5WvmKZtXm655Tp99ccff7x8br9+/WLVVVedZzsjR46slqd1fCtbpY10XFunUl77udhii8USSyxRDtW2UVvHPgECBAgQIECAAAECBAg0pkARz7JFPYMW1U5j3imjIkCAAAECBAgQIECAQGmJVwg9J/Dee+/Fyy+/XL7gaqutVv6cPXt2pLd5x40bF+PHjy+vr7vGGmvEuuuuG9ttt115PeCsHk6cOLEcTusHp3V657XVTjP94osvVqtW+pICw4cPr8bzdlI76S3iNA30G2+8EUsuuWRe1Wr8oYcearN+cbWwtDNt2rQYOnRo+TNZ2AgQIECAAAECBAgQIECgbwkU9Sxb1DNoUe3kKc+aNSvuuuuuvOLy0krpOXbOnDnx7rvv5tZTQIAAAQIECBAgQIAAgd4SmHfmsLd61aDXfe2118oPiGl4H/vYx8oPjd/73vfizjvvbDHilBD+1a9+FTfffHOceOKJkd4Wrt1SAraSLE1v5s5vGzZsWLXKO++8U92vfVDtTDvtSQCfc845MXbs2Oo1s3ZS8vmFF16I9EcFGwECBAgQIECAAAECBAj0LYGinmWLegYtqp085fRsetRRR+UVl+PpOTYlip977rl51lNIgAABAgQIECBAgACB3hAwBXQPqqe3XSvboEGD4tvf/nY5+du/f//yNM7bbLNN+TMdpy2t13vQQQeV37qtnJc+ax92Bw8eXFuUuV9bZ8aMGdU6RbVTbdAOAQIECBAgQIAAAQIECDScgGfZhrulBkSAAAECBAgQIECAQIMLeAO4B29w7UNzers3fVs4TQV90kknxcorr1ztSVpj95RTTokJEybE22+/Heeff36ceuqp1fLadlIieX5bbZ3at2yLamd+11dOgAABAgQIECBAgAABAvUrUPvs6Fm2fu+jnhMgQIAAAQIECBAg0DwCEsA9eK/ff//96tVS8jdNofzjH/84FlpooWo87ayyyirlpO8+++wT//rXv8prD+22226x4YYbluvVrvmb2pnf9sEHH1Sr1CaDO9pO7bVq26k2nrGz0047xTrrrJNR8mHoxhtvjJdeeqmcDM+tpIAAAQIECBAgQIAAAQIEek2gt55l855Bu/tZNrW///7753qnJZkuuOCC6tJMuRUVECBAgAABAgQIECBAoJcEJIB7EL51ovfII49sk/ytdCet27vffvvFRRddVA6NHz++mgAeMmRIpVrMnDmzup+3U1tn4YUXrlbraDu1bw/XtlNtMGNn9OjRGdG5obvvvrs81fXciD0CBAgQIECAAAECBAgQ6EsCvfUsm/cM2t3PsukLzyeeeGLuLUgJ8ZNPPjm3XAEBAgQIECBAgAABAgR6W8AawD14B1o/NG+wwQbzvPp6661XLf/HP/5R3a9tp3Yd32qFVju103XVJm5r97vSTqvLOSRAgAABAgQIECBAgACBBhKofQZNw+rss2xRz6BFtdNAt8hQCBAgQIAAAQIECBAg0EJAArgFR/ceLLXUUtUL9O/fP5ZeeunqcdbO8ssvXw2//PLL1f3BgwfHEkssUT6eNGlSNZ638/rrr1eLFl988er+8OHDq/vtaadSJ/V90UUXrZ5rhwABAgQIECBAgAABAgQaV6CoZ9minkGLaqdx75iRESBAgAABAgQIECDQ7AISwD34G/Cxj32smrhNaxlNnDhxnlefOnVqtXyRRRap7qedlVdeuXyc3u6dMmVKi7LWB7XJ47XWWqtavNJKK1X359eXtI7wa6+9Vq6f1ihOSWgbAQIECBAgQIAAAQIECDS+QFHPskU9gxbVTuPfOSMkQIAAAQIECBAgQKBZBSSAe/jOr7322tUrPvbYY9X9rJ3axO2yyy7bokptO2l94HltjzzySLW49ryRI0fGwIEDy2Xjxo2r1snaeeKJJyKtc5S22jay6ooRIECAAAECBAgQIECAQGMJ1D4HdvZZtqhn0KLaaaw7ZDQECBAgQIAAAQIECBCYKyABPNeiR/a233776nXuvPPOmDNnTvW49c4tt9xSDX3qU5+q7qedT3/609Xj22+/vbrfeidN//zwww+Xw2ussUbUTgGd1nHafPPNy2UTJkyIp59+uvXp1ePaa2y55ZbVuB0CBAgQIECAAAECBAgQaHyBIp5li3oGLaqdxr9rRkiAAAECBAgQIECAQLMKSAD38J3faqutYplllilf9YEHHoiLL744swf3339/3HvvveWytFbwpptu2qLeaqutFimhm7b77rsvahO0lYrvvfde/OAHP4g03XTa9t1330pR9XOXXXap7p955plRO+10peAvf/lLVJLRaerpLbbYolLkkwABAgQIECBAgAABAgSaQKCoZ9minkGLaqcJbp0hEiBAgAABAgQIECDQhAISwD1809Paud/61rdigQU+pL/66qvj7LPPLr+lm9bZTW/sXnHFFfGd73yn2rP/+I//iP79+1ePKzvf+MY3Krtx2mmnxeWXXx6vvPJKpHbStM/HHntsPPTQQ+U6abqubbbZplq/spMe4itvAT/55JNx9NFHx9ixYyMljydPnhzXX399nHDCCeUkcr9+/eKII46I9GkjQIAAAQIECBAgQIAAgeYRKOpZtqhn0KLaaZ47aKQECBAgQIAAAQIECDSTwIBmGmxfGetmm20W5557bpxyyikxZcqU+PWvf13+GTBgQDl5W+lnSrQeddRRkepnbeuss06ceuqpcfrpp8eMGTNizJgx5Z+ULK689ZvOW2655eKMM86oJp1bt3XyySeX+/Lggw/Gs88+G8ccc0w54VzbRjon9cX0z631HBMgQIAAAQIECBAgQKA5BIp6li3qGbSodprj7hklAQIECBAgQIAAAQLNJOAN4F662xtvvHFceuml8W//9m8xZMiQci/Sm7uVbb311otzzjknvvzlL1dCmZ/bbbddeRrpNB105a3iSuI2JZT33HPPcvmwYcMyz0/BRRddNM4666wYPXp0LLLIIuV6lTbSwSqrrBI//OEP59uX8on+hwABAgQIECBAgAABAgQaVqCIZ9minkGLaqdhb5aBESBAgAABAgQIECDQtALeAO7FW7/kkkuW396dM2dOvPTSS+W3bxdaaKFYYYUVYvjw4e3uWUrQprd/01vAzzzzTHka6XR+amfo0KHtaicljw877LDyT5pGOrWTpvgaMWJELLvsstXkcrsaU4kAAQIECBAoXCB9KeyTn/xkm3Y78t8MbU4WIECAAAECnRAo4lm2qGfQotrpBINTCBAgQIAAgXYI/Nd//Vf579atq26wwQatQ44JECBAoEABCeACMTvbVJrqOSVr009XtgUXXDDSm8Pppytb+kOyPyZ3RdC5BAgQIECgeIH1118/0o+NAAECBAj0FYGinmWLegYtqp2+4qsfBAgQIECgEQS23377RhiGMRAgQKDuBEwBXXe3TIcJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQLSABnO0iSoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgboTkACuu1umwwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMgWkADOdhElQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA3QlIANfdLdNhAgQIECBAyT8pdQAAQABJREFUgAABAgQIECBAgAABAgQIECBAgAABAgQIZAtIAGe7iBIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDuBCSA6+6W6TABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSyBSSAs11ECRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUHcCEsB1d8t0mAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAtkCEsDZLqIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoOwEJ4Lq7ZTpMgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBbAEJ4GwXUQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECNSdgARw3d0yHSZAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEC2gARwtosoAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE6k5AArjubpkOEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIFtAAjjbRZQAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ1JyABXHe3TIcJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQLSABnO0iSoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgboTkACuu1umwwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMgWkADOdhElQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA3QlIANfdLdNhAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIZAtIAGe7iBIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDuBCSA6+6W6TABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSyBQZkh0UJECBAgAABAgT6ksBNN90UDz30UJsurb/++rHXXnu1iQsQIECAAAECBAgQIECAAIHeFjjjjDPinXfeadONPfbYIzbaaKM2cQECBAgQKEZAArgYR60QIECAAAECBLpVYOzYsXHDDTe0uca0adMkgNuoCBAgQIAAAQIECBAgQIBAXxD43e9+F5MmTWrTlU033VQCuI2KAAECBIoTMAV0cZZaIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQK8KSAD3Kr+LEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoDgBCeDiLLVEgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBXhWQAO5VfhcnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAcQISwMVZaokAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQK9KiAB3Kv8Lk6AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHiBCSAi7PUEgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBHpVQAK4V/ldnAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAsUJSAAXZ6klAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9KqABHCv8rs4AQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEihOQAC7OUksECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoVQEJ4F7ld3ECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUJyABXJyllggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINCrAhLAvcrv4gQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEChOQAK4OEstESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoFcFJIB7ld/FCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUJyABHBxlloiQIAAAQIECBAg0OcFzjvvvFh00UXb/EyfPr3P910HCRAgQIAAAQIECBAgQIAAAQIE5i8wYP5V1CBAgAABAgQIECBAoFEEZs6cGVOnTm0znDlz5rSJCRAgQIAAAQIECBAgQIAAAQIECNSfgDeA6++e6TEBAgQIECBAgACBTgsMHTo0ll566er5gwcPjuHDh8cCC3g0qKLYIUCAAAECBAgQIECAAAECBAjUsYC/8tTxzdN1AgQIECBAgAABAh0VOPLII+OBBx6onrbddtvFxIkTY8EFF6zG7BAgQIAAAQIECBAgQIAAAQIECNSvgARw/d47PSdAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEALAQngFhwOCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUL8CEsD1e+/0nAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAi0EBrQ4ckCAAAECBAgQINAnBT73uc/FGmus0aZvK620UpuYAAECBAgQIECAAAECBAgQ6AsCxxxzTEybNq1NV9Zbb702MQECBAgQKE5AArg4Sy0RIECAAAECBLpNYIsttoj0YyNAgAABAgQIECBAgAABAvUisPvuu9dLV/WTAAECDSVgCuiGup0GQ4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAMwtIADfz3Td2AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQaSkACuKFup8EQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDMAhLAzXz3jZ0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgYYSkABuqNtpMAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINLOABHAz331jJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgoQQGNNRoDIYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBhBB56KOKSSyJ+9au5Qzr11IjHHos45JCIzTabG7dHgMCHAt4A9ptAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQpwSmT4848MAPE7w/+1nEm2/O7d5bb32YFN5884j994+YNm1umT0CBCK8Aey3gAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoM8IpOTvdttFPPDA/Lt05ZURTz4Z8cc/Riy00Pzrq0GgGQS8AdwMd9kYCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ1InDEEe1L/laG8+CDEYcdVjnySYCABLDfAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgT4h8Ne/RlxxRce7cvXVEX/5S8fPcwaBRhSQAG7Eu2pMBAgQIECAAAECBAgQIECAAAECBAgQIECAAIE6FLjkks53Oq0VbCNAIEIC2G8BAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAnxD4wx86342unNv5qzqTQN8TkADue/dEjwgQIECAAAECBAgQIECAAAECBAgQIECAAAECTScwe3bExImdH/arr0a8/37nz3cmgUYRkABulDtpHAQIECBAgAABAgQIECBAgAABAgQIECBAgACBOhaYMyci/dgIEOiagARw1/ycTYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUIBA//4Rw4d3vqFllokYOLDz5zuTQKMISAA3yp00DgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAnQtsv33nB/Dv/975c51JoJEEJIAb6W4aCwECBAgQIECAAAECBAgQIECAAAECBAgQIECgjgUOPbTznR89uvPnOpNAIwlIADfS3TQWAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAdC2y5ZcRee3VuAFde2bnznEWg0QQkgBvtjhoPAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCOBcaMidhoo44PICWAzz234+c5g0CjCUgAN9odNR4CBAgQIECAAAECBAgQIECAAAECBAgQIECAQB0LDB0acc89EWut1fFBHH98xJ13dvw8ZxBoJAEJ4Ea6m8ZCgAABAgQIECBAgAABAgQIECBAgAABAgQIEGgAgZQEXmGF7IEsUMpuDRmSXTZr1odTSE+YkF0uSqAZBCSAm+EuGyMBAgQIECBAgAABAgQIECBAgAABAgQIECBAoM4Exo3L7vDnPhfxpz9FDB6cXf7mmxG77hrx7rvZ5aIEGl1gQKMP0PgIECBAgAABAo0gcPvtt8ejjz7aZihrrrlm7LLLLm3iAgQIECBAgAABAgQIECBAoLcFLr744pg6dWqbbuy0006xzjrrtIkLEKgVeOGFiNdfr43M3R8xImLTTSNKv2Lxla/MjdfuPfJIxEEHRVx3XW3UPoHmEJAAbo77bJQECBAgQIBAnQvce++9cf3117cZxc477ywB3EZFgAABAgQIECBAgAABAgT6gsBVV10VkyZNatOVkSNHSgC3URFoLTB2bOvI3OPll/9w/4ADIh5+OOK88+aW1e798pcRG24YccIJtVH7BBpfwBTQjX+PjZAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUFcCDz2U392FF55bdtZZEdtuO/e49d5//mfErbe2jjom0NgCEsCNfX+NjgABAgQIECBAgAABAgQIECBAgAABAgQIECBQdwLzSgDXDmZAaa7b9KbviivWRufuz54dMWpUxDPPzI3ZI9DoAhLAjX6HjY8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUGcC48a1v8NLLhnx619HLLRQ9jn//GfEF78YpTWps8tFCTSagARwo91R4yFAgAABAgQIECBAgAABAgQIECBAgAABAgQI1LHAhAkRkyd3bABprd+f/zz/nL//PWL06Ig5c/LrKCHQKAISwI1yJ42DAAECBAgQIECAAAECBAgQIECAAAECBAgQINAAAmPHdm4Qe+8d8a1v5Z/7m99EnHpqfrkSAo0iIAHcKHfSOAgQIECAAAECBAgQIECAAAECBAgQIECAAAECDSDQ3vV/s4Z6+ukRO+yQVfJh7Lvf/XC66PwaSgjUv4AEcP3fQyMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDSMQGffAE4AC5QyX9deGzFyZDZHmgJ6//0jnngiu1yUQCMISAA3wl00BgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAgwiMG9e1gSy22Idv+Q4dmt3O1KkRu+4a8c9/ZpeLEqh3AQnger+D+k+AAAECBAgQIECAAAECBAgQIECAAAECBAgQaBCB556LeOONrg9mnXUirrgiol+/7LaeeSZin30iZs/OLhclUM8CEsD1fPf0nQABAgQIECBAgAABAgQIECBAgAABAgQIECDQQAJdmf65NcNuu0WcdFLr6Nzj226L+M535h7bI9AoAhLAjXInjYMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUOcCDz2UPYCll86Ozy96yikRX/hCfq0zzoi47rr8ciUE6lFAArge75o+EyBAgAABAgQIECBAgAABAgQIECBAgAABAgQaUCDvDeAVV+zcYNMU0FdeGbHmmvnnH3RQxPjx+eVKCNSbgARwvd0x/SVAgAABAgQIECBAgAABAgQIECBAgAABAgQINKjAuHHZAxsxIjvenuiii0b85jcRH/tYdu1p0yJ23TXizTezy0UJ1JuABHC93TH9JUCAAAECBAgQIECAAAECBAgQIECAAAECBAg0oMCzz0a89Vb2wDr7BnCltdVXj7jmmogFcjJj//hHxJe/HDFrVuUMnwTqVyDn17x+B6TnBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC9SeQt/5vmsZ5ueW6Pp6dd4747//Ob+euuyKOOy6/XAmBehGQAK6XO6WfBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEGFshb/zet3ztkSDED/853IvbYI7+tH/0o4oor8suVEKgHAQngerhL+kiAAAECBAgQIECAAAECBAgQIECAAAECBAgQaHCBvDeAN9mk2IH/4hcR662X3+bhh0fk9SX/LCUE+o6ABHDfuRd6QoAAAQIECBAgQKBpBf71r7lDr92fG7VHgAABAgQIECBAgAABAo0uMG5c9gg/8YnseGejCy8c8etfRyy+eHYLM2ZE7LZbxOuvZ5eLEujrAhLAff0O6R8BAgQIECBAgACBBhV4//2In/wkYsMNI046ae4g03pL6dvdF18c8cEHc+P2CBAgQIAAAQIECBAgQKBxBZ5+OuKf/8weX9FvAKerrLJK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/PDDD5frrbHGGlE7BXTq0+abbx733XdfTJgwIZ5++ulYffXVM/uYrlHZttxyy8quTwIECBAgQIAAAQLtFkjr/v7P/2RXL303MZ599sOytFLJTjtF/P73beveemtE6buJpS9Eti0TIUCgeIEin2WLegYtqp3itbRIgAABAgQIECDQEYHHH494993sM/rSG8Cphyed9OFzanZv86Mp+esN4HwfJd0nYAro7rPt1pZXW221SAndtKUEbm2CtnLh9957L37wgx/ErFmzyqF99923UlT93GWXXar7Z555ZkydOrV6XNn5S+n1i1tuuaV8mKae3iJ91cVGgAABAgQIECBAoIMCd90VUbM6SYuzWz/cH3dci+LqQUoip7WAbQQI1KdAUc+gRbVTn4p6TYAAAQIECBBoDIG89X8HlF5d7GtJ0x13jDjooI65L710xAUXdOycrtS+4YYbYqmllmrzk14AtDWfgARwHd/zb3zjG9Xen3baaXH55ZfHK6+8Emm93jTt87HHHludJjpN27zNNttU61d2ttpqq/JbwOn4ySefjKOPPjrGlibdT8njyZMnx/XXXx8nnHBCOYncrzTJ/RFHHFGa674Lk91XLuyTAAECBAgQIECg6QSuuip7yIMHR6y/fsuyNM3zRhu1jFWO0jTSpYlubAQI1KFAUc+gRbVTh4S6TIAAAQIECBBoGIG8BHB6Piytqtnntp/+NGLvvdvfrZQwXm659tfvas0ZM2bEG2+80ean8pJgV9t3fn0JmAK6vu5Xi96uU1p5/NRTT43TTz890j/YY8aMKf/079+/+tZvOmG50r9hzjjjjFhggex8/8knnxynnHJKPPjgg6Vp956NY445Jlq3kdo56qijwvTPScJGgAABAgQIECDQUYHS9wvjppuyz/r85yOGDGlblt4CzpjEpvRlxQ+/Rf2977U9p4jI9OnT46y02HCrbcfSV7433XTTVlGHBAh0VKCoZ9Ci2ulo/9UnQIAAAQIECBAoRqD0Llrm1pfW/63t4KBBEddeG/GZz0T8139F6YW82tK2+7fdFqX8Tdt4d0UGl75dvdhii8WUKVPKl0h5no997GPlfE93XVO7fVcgOyPYd/urZ60Etttuu7j44ovL00FXEryVb3MMKM2TsOeee5bLhw0b1urMuYeLLrpo+Q9co0ePjkUWWaRcUGkjHayyyirxwx/+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2GGH7LKORo85JqJ//+yzzjorOy5KgAABAgQIECBAgAABAr0nkKY+fvzx7Os3yvq/ldGlWav22ady1PLzzjsjJkxoGXNEoGgBCeCiRbVHgAABAgQIECBAoIkF3ngj4g9/yAZI34AuakqvlVaK2H337Ovcc0/Egw9ml4kSIECAAAECBAgQIECAQO8IjB+fv/5to70BnITzpoFOyxaNGdM798BVm0dAArh57rWREiBAgAABAgQIEOh2gWuvjfjgg+zLFDH9c23Lxx1Xe9Ry31vALT0cESBAgAABAgQIECBAoLcFxo7N7sGCC0astVZ2WT1HN900Yv31s0fwi19EzJqVXSZKoAgBCeAiFLVBgAABAgQIECBAgEBZIG/655VXjthii2KR0sP01ltnt/mrX0X84x/ZZaIECBAgQIAAAQIECBAg0PMCeev/brRRxIABPd+fnrjiYYdlX+WVVyJ+97vsMlECRQhIABehqA0CBAgQIECAAAECBOK55yL+7/+yIUaPzo53NZr3FnD6JvW553a1decTIECAAAECBAgQIECAQFECeW8AN+L0zxWzNBPWkCGVo5afl1zS8tgRgSIFGvQ7FUUSaYsAAQIECBAgQIAAgfYIXHllfq1Ro/LLulKyyy4Ra6wR8dRTbVu59NKIU0+NGDasbZkIAQIECBAgQIAAAQIECPScwHvvRTz+ePb1NtkkO94I0fQ8uueeEVdc0XY0t90WMXFixHLLtS0T6T6BO++8M2bPnt3iAiuXpi0bOXJki1i9H3gDuN7voP4TIECAAAECBAgQ6CMCaf3frC1N1ZyStN2x9esX8c1vZrf8r39FXHRRdpkoAQIECBAgQIAAAQIECPScwPjxEe+/n329Rn4DOI340EOzx51mrvr5z7PLRLtPYOedd47PfvazLX5+3oA3QgK4+36HtEyAAAECBAgQIECgaQTS1M9PP5093P32y44XFd1//4illspu7YILImbOzC4TJUCAAAECBAgQIECAAIGeEchb/zdNj7zmmj3Th966yr/9W/4Y08xVrV5G7a1uum6DCUgAN9gNNRwCBAgQIECAAAECvSFw1VXZV+3fP+LLX84uKyq64IIRRx2V3dorr0Rcc012mSgBAgQIECBAgAABAgQI9IxAXgJ4440j0nNjo295bwG/8ELEH/7Q6KPvW+P76le/Gquvvnq1U18u/dFi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6RbD7dDBDjt0qLrKBAgQIECAAAECBAgQaDiBvPV/07PWcss13HB7bUAHHhjRv3/25S+5JDsu2rwCEsDNe++NnAABAgQIECBAgEBVIG/658UWi9h552q1httZoPREdMQRnRvWmmtGbLdd5851FgECBAgQIECAAAECBBpFIG/93003bZQR9o1xDB8e8bnPZfclzeg1ZUp2mWhzCkgAN+d9N2oCBAgQIECAAAECVYG0XtNtt1UPW+zsuWfEoEEtQg13cPzxEaus0vFhff/7+d++7nhrziBAgAABAgQIECBAgEB9CuS9AWz93+Lv56GHZreZlnW68srsMtHmFJAAbs77btQECBAgQIAAAQIEqgK//GXEzJnVwxY7jTz9c2WgQ4dGpCmwl1qqEmnf5x//2L56ahEgQIAAAQIECBAgQKBRBd54I+LFF7NHZ/3fbJeuRHfaKX9a7TFjutKycxtNQAK40e6o8RAgQIAAAQIECBDooEDe9M8rrhjxb//WwcbqtPraa0c8+GDEVlu1fwAXXhjxxBPtr68mAQIECBAgQIAAAQIEGk0gPUflbRLAeTKdj6c1gA86KPv8Rx+N+L//yy4TbT4BCeDmu+dGTIAAAQIECBAgQKAqMG1axJ//XD1ssTNqVES/fi1CDX2QEt733Rdxyy0Ro0dHDBky7+F+8EHEMcfMu45SAgQIECBAgAABAgQINLJA3vTPyy4bkdastRUvcPDBEQvkZPcuvbT462mxPgVyfkXqczB6TYAAAQIECBAgQIBAxwReeSVizpzsc5ph+ueske+8c8QVV0Rsvvnc0vTHi6ztf/834qabskrECBAgQIAAAQIECBAg0PgCDz2UPUbr/2a7FBFNX17+93/Pbun667Pjos0nIAHcfPfciAkQIECAAAECBAhUBVICOGvbaKOINC2y7UOBk07Klzj22Ij33ssvV0KAAAECBAgQIECAAIFGFch7A1gCuHvv+KGHZrefZvmyEUgCEsB+DwgQIECAAAECBAg0scC772YPft99s+PNGt111/z1kCdMiDjzzGaVMW4CBAgQIECAAAECBJpVYNKkiJdfzh699X+zXYqKfuELEUsvXVRr2mlEAQngRryrxkSAAAECBAgQIECgCwJpLaF99ulCAw166vnn56+z9IMf5P/ho0E5DIsAAQIECBAgQIAAgSYXyJv+ObFIAHfvL8fAgRFf+Ur3XkPr9S0gAVzf90/vCRAgQIAAAQIECBQusN12EcOHF95s3TeYpsXOm2YrvUl9/PF1P0QDIECAAAECBAgQIECAQLsF8hLAyy0X8fGPt7sZFTspcMgh8z7xjTciHnwwYs6ceddT2pgCEsCNeV+NigABAgQIECBAgEAbgQ8+iLjxxvknKk3/3IauGvje9yKGDasettj5n/+JuO++FiEHBAgQIECAAAECBAgQaFiBvASw9X975pavtlrEpz+df62JEyM22yxi1VUjrroqv56SxhSQAG7M+2pUBAgQIECAAAECBFoI/PGPEeuuG7H77hG/+lWLohYHCy74YZ0WQQdVgSWXjPjud6uHbXaOPjpi9uw2YQECBAgQIECAAAECBAg0nMDYsdlDMv1ztkt3RPfYY/6tTpgQMXp0RPqy93vvzb++Go0hMKAxhmEUBAgQIECAAAECBAjkCVxxRcTBB0ekN4Dnt6V1hNJ0xossMr+azVt+5JERF18c8fjjbQ0efjjikksiDj+8bVlXIpMnT45nn322TROblP6yMmjQoDZxAQIECBAgQIAAAQIECHSnwGuvRbzySvYVvAGc7VJ0ND27/+xn7W/1mmsi+vePSH8jsDW+gARw499jIyRAgAABAgQaQGC99dYrJeVK/2Xfatt4441bRRwSaClw//0RaV2g9iR/05lTp0bstlvEvfdGDPC00BLzo6Pkct55Edtvn1kc//mfEXvtlT9VdPZZ847efPPNpSR+KYvfanvhhRdihRVWaBV1SIAAAQIECBAgQKBvCHzmM5+Jt99+u01nlkuLxNrqWiBv+uc0KH+q6Jlbe8opEY880rFrXXllxBe+ENGeN4c71rLafU3An3T62h3RHwIECBAgQIBAhsBepWxS+rER6IhAmor4a1+LeP/9jpwV8cADEWPGRBxxRMfOa6bapb9jxZe+9OGayq3H/cYbESefHHH++a1LHBMgQIAAAQIECBBoLoFTUobK1pACeQngESMillmmIYfcpwb15psRF1zQuS6lfywlgDtnV09nWQO4nu6WvhIgQIAAAQIECBDogMBdd0WMH9+BE2qqnntuzYHdTIGzz45IayZnbT/9afYU0Vl12xNbbbXVYtSoUdWqSyyxRHzlK1+JoUOHVmN2CBAgQIAAAQIECBAg0FMCeev/mv65Z+5AaZKoTq/nm5YzevLJ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/fWxuGpYoAK4Gu4i14AAAggggAACVS9w66232siRI1Ous1+/fjZs2LCUeCKKLzBzZt3OOWNG3fZnbwQQQAABBBBAAAEEEECg3ASOO+44W7BgQUq2hgwZYgMGDEiJJwIBBBBAID8CVADnx5GjIIAAAggggAACCNRzgbjGozlJrFyZ0240zcx0AABAAElEQVTshAACCCCAAAIIIIAAAggggAACCCAQUqBnz562MuklTIcOHULuXTnJqACunHtFThFAAAEEEEAAAQTKWGCjjeqWubruX7ezszcCCCCAAAIIIIAAAggggAACCCBQ/QKTJk2q/ot0V9iwXlwlF4kAAggggAACCCCAQIEF9tjDrFGj3E+y996578ueCCCAAAIIIIAAAggggAACCCCAAAIIRAWoAI5K8IkAAggggAACCCCAQB0E2rY1O/jg3A6w2WZmqkAmIIAAAggggAACCCCAAAIIIIAAAgggUFcBKoDrKsj+CCCAAAIIIIAAAgisEbjuOrPmzbPnGDrUrDGTs2QPxx4IIIAAAggggAACCCCAAAIIIIAAAikCVACnkBCBAAIIIIAAAggggEBuAt27m913n1mDBuH3v+ACsyOOCJ+elAgggAACCCCAAAIIIIAAAggggAACCKQToAI4nQ7bEEAAAQQQQAABBBDIUuD4482eespsnXXS76gev9dfb3bTTenTsRUBBBBAAAEEEEAAAQQQQAABBBBAAIFsBKgAzkaLtAgggAACCCCAAAIIhBAYMMBs+nSzgQPNunZN3KFdO7NTTzWbMsXbnriVNQQQQAABBBBAAAEEEEAAAQQQQAABBOomwExjdfNjbwQQQAABBBBAAAEEfAXatvV6+KqXb48eXoWvEs6ZY9a0qe8uRCKAAAIIIIAAAggggAACCCCAAAIIIFBnAXoA15mQAyCAAAIIIIAAAgggkF6gUaPa7dnMD1y7F0sIIIAAAggggAACCCCAAAIIIIAAAgiEE6ACOJwTqRBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGyF6ACuOxvERlEAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEwgkwB3A4p3qRao6bkO6RRx6xTz/91M1NN8c22GAD22abbWzbbbe1ffbZx1q0aFEvHLhIBBBAAAEEEEAAAQQQQACByhGgLFs594qc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rmwVAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqLkAHcA1J2eHCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQHUE6ACujitbRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGou0L7me2SHCCCAAAIIIIAAAk0WGDt2rLvwwgsbfa9du3aNlrEAAQQQQAABBBBAAAEEEEAAAQsCDzzwgFu1alWjqHTs2LHRMhYggAACCGQnQAdwdpZsCQEEEEAAAQQQqJoAleOq0bJhBBBAAAEEEEAAAQQQQACBKgl07ty5SltmswgggAAC5QSYArqcDp8hgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACdSRAB3AdJRZRRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBMoJ0AFcTofPEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgToSoAO4jhKLqCKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALlBOgALqfDZwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAdCdABXEeJRVQRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBcgJ0AJfT4TMEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgjgTa11FcW1xU582b52677Tb3xhtvuGnTprmPPvrI9evXz2244YZuu+22c4cddpjr0KFD4nGvXLnS/fWvf3UPPvigmzp1qlu8eLHbeuut3bbbbut23XVXt9VWWyVuQyu8//777je/+Y2Pj1736dPHDRo0yG9nn332cV26dEm1HVZCAAEEEEAAAQQQQAABBBBouQJZ1WWzqoNmtZ2Wm2IcGQIIIIAAAggggAACCLQ2gTarVofWdtAWjvf22293v/rVr9zChQtLRkcdwd/5znfcDjvsUHKdDz/80J199tluypQpRddp166dO//8893+++9f9POwcMKECe7666936kwuFgYOHOh+9KMfuTXWWKPYxxUvGzp0qHvooYei77/11ltus802i97zAgEEEEAAAQQQQAABBBBAwI5AVnXZrOqgWW2nKcLLly93HTt2jL6iOqzqsgQEEEAAAQQQQAABBBBAwIoAHcA5pMT999/vLr300mjPu+yyix/xu/baa/uRwH//+9/du+++6z9XpfLGG290/fv3j9YPLxYtWuROOeUU98477/hFqnQOGTLErbPOOu7FF1902s6yZcv8Z2eeeaYfURy+G/977733ussvv9wv0v402lcjf2fNmuX++c9/RtvfdNNN3dVXX+3WWmut+Neb9ZoO4Gbx8WUEEEAAAQQQQAABBBBAoGYCWdVls6qDZrWdpgLSAdxUMdZHAAEEEEAAAQQQQACBWgvQAVxj8enTp7vjjz/eLVmyxGl07iWXXOL22GOPBrFYsWKFu/baa90f/vAHv1wdu7/4xS9c+/YNZ+zWOppCWmHvvfd2F110UYMpoydNmuTOOeccp45i7euOO+5w6mSOhzlz5riRI0f6juJu3bq5yy67rMGIY8Xl+9//fjRKMZiAsAAAQABJREFUd8SIEe6ss86Kb6JZr+kAbhYfX0YAAQQQQAABBBBAAAEEaiKQVV02qzpoVtupBI8O4ErU+A4CCCCAAAIIIIAAAgjUUqBtLXfGvpzvSFXnr8JXv/rVRp2/Wq6O3lNPPTV6du/bb7/tn8urz0KYP3++u+uuu/xbPau3sPNXH3zuc5/zy/VaUzuH9fU+BE3fFUYJn3zyyQ06f7WO4jJ27NgoLvfdd59/xnD4Pn8RQAABBBBAAAEEEEAAAQRavoAe3ZNFXTarOmhW22n5KccRIoAAAggggAACCCCAQGsUoAO4xqmuqZlDOOSQQ8LLRn81YnevvfaKlr/55pvRa7145JFHosr3oYce2mDkb3xFTQmtZwkrqANYI3rjQVNmKXTp0sUNGzYs/lH0um3btm7UqFH+vSr86gQmIIAAAggggAACCCCAAAIItB6BrOqyWdVBs9pO60lBjhQBBBBAAAEEEEAAAQRakwAdwDVObT0/d5tttvGdsn379i279969e0eff/jhh9FrvXjllVei9zvvvHP0utiLHXfc0S/++OOP3fPPPx+tMmPGDDd79mz/focddijZiawVBg8eHH1Pz30iIIAAAggggAACCCCAAAIItB6BLOqyWdVBs9pO60k9jhQBBBBAAAEEEEAAAQRam0DDh8q2tqPP4XgvvPDC1HvV1M8hDBgwILz0f1999VX/t02bNq7wswYrrn6jZwiHMHnyZBc6jMM29Fl8nbBu/G+vXr2cOqTViaxtEBBAAAEEEEAAAQQQQAABBFqPQBZ12azqoFltp/WkHkeKAAIIIIAAAggggAACrU2AEcBGU3zx4sUuPtJ26623bhDT999/379fZ511/HN6G3xY8CY+0vjf//539Om0adOi1/369Ytel3oRtqNpoD/66KNSqzVYrimn9YzhUv9WrVrVYH3eIIAAAggggAACCCCAAAII1K9AubpsVnXQrLZTTrlUHVbLly9fXu6rfIYAAggggAACCCCAAAII5C7ACODck6B4BG6++WY3Z84c/6FG7MY7aNUB++mnn/rPNDI3KfTs2TNaZf78+dHrRYsWRa8r2c7aa68dfb/Ui2OPPdY999xzpT72y7fYYgv33nvvuU8++aTsenyIAAIIIIAAAggggAACCCBgW6BcXTarOmhW2yklqU5sPSapXFA9duXKle6dd94ptxqfIYAAAggggAACCCCAAAK5CDACOBf28jv9y1/+4iZMmOBX6tq1qzvnnHMafCFe2e3UqVODz4q9ia+zdOnSaJWsthNtkBcIIIAAAggggAACCCCAAAKtVoC6bKtNeg4cAQQQQAABBBBAAAEEjAnQAWwsQf75z3+6cePGRbE67bTTXJh6OSzU3cghdOzYMbws+Te+TnyUbVbbKbljPkAAAQQQQAABBBBAAAEEEGgVAtRlW0Uyc5AIIIAAAggggAACCCBQJwJMAW0ooXS3tDp/NY2UwnHHHecOOuigRjFs3/6zZAvrNloptkDP4Q0h3hnc1O3E9xXfTth2sb/rrbee23jjjYt95JfpWcbqiOZZwCWJ+AABBBBAAAEEEEAAAQQQMC1QrbpsqTpoteuybdu2LVuPVf317bffjuruphOHyCGAAAIIIIAAAggggECrFPisJ7FVHn42B33eeedFz+QttsXtttvOHXXUUcU+ipb96le/cjfddFP0/mtf+5o74YQTovfxF126dIneLlu2LHpd6kV8nW7dukWrNXU78dHD8e1EGyzy4sorryyy9LNFQ4cOdQ899NBnC3iFAAIIIIAAAggggAACCCBQdQHVwyZOnFh2P9/+9rddnz59yq5TzbpsqTpoteuynTt3dvfff3/J416+fLlLe1N0yY3wAQIIIIAAAggggAACCCBQRQE6gDPAffLJJ8ve+avn+JYKGp37ox/9yOmOaQXdaXzWWWe5L33pS6W+4uLbiz/Ht9QX4lM9xztu46+bs51S+2U5AggggAACCCCAAAIIIICATYFp06a5J554omzkli5dWvLzSuqyWdVBs9pOyYPjAwQQQAABBBBAAAEEEECgzgXoAM4xAdXpOmbMGPfss8/6WOgu44svvtgNGTKkbKw6derkevfu7T7++GM3a9assuvqw5kzZ0brrLXWWtHrfv36Ra/TbCes065dO9ejR4/ou7xAAAEEEEAAAQQQQAABBBBoPQKV1mWzqoNmtZ3Wk2IcKQIIIIAAAggggAACCLQ2ATqAM0jx3/3ud2W3oo7dwjB37lx3xhlnuHfeecd/pA7dK664wm255ZaFqxZ9379/f98BrNG9c+bMcb169Sq6nhbqzu4Qtt566/DSbbLJJtFrPYu3XNDd3R988IFfZdNNN3XqhCYggAACCCCAQO0ELrvsMvfnP/+50Q73228/d+mllzZazgIEEEAAAQTKCRx++OFu//33L7eKW3vttRt93py6bFZ10Ky20+jgWIAAAggggAACmQsccsghRQcxjR071g0bNizz/bFBBBBAAIH/CNABnEFOWHfddZu0lQULFvhpnkPnrzpzNQ103759U29nm222iUYOv/TSS26vvfYq+d1JkyZFn+l7IWy22WauQ4cOTs8vevHFF8Pion9fe+01v54+jG+j6MosRAABBBBAAIHMBTTaSjd9FYaFCxcWLuI9AggggAACiQLdu3d3+teU0Ny6bFZ10Ky205RjZ10EEEAAAQQQqExA9dhiddlly5ZVtkG+hQACCCCQSqBtqrVYKVOBK6+80r311lt+m1tttZW79tprm9T5qy/GO3wnTpxYMn6a/vmFF17wn2t0cXwKaD1LeJdddvGfTZkyxb355psltxPfx2677VZyPT5AAAEEEEAAAQQQQAABBBBomQLNrctmVQfNajstM5U4KgQQQAABBBBAAAEEEEDAOTqAa5wL9Lzfhx56yO9V0z5ffvnlFT1Pd/PNN4+mi37sscdcvIM2HNInn3zit79y5Uq/6KijjgofRX+HDx8evdYoZN3RXRieeOIJd++99/rFGq286667Fq7CewQQQAABBBBAAAEEEEAAgRYskFVdNqs6aFbbacFJxqEhgAACCCCAAAIIIIBAKxZgCugaJr6mWr7qqquiPequZT33N03Yeeed3ciRIxuseuaZZ7qTTjrJL/vBD37gn9Gr5wD26dPHacrmG264wWl6aAVN27znnnv61/H/hgwZ4kcBP/XUU+711193p512mhs9erQbNGiQmz9/vnv00Ufdz372M6dO5DZt2vj96S8BAQQQQAABBBBAAAEEEECgdQhkWZfNqg6a1XZaRwpylAgggAACCCCAAAIIINDaBOgArmGKP//8827q1KnRHvU6/j76oMiL+NTN4eOBAwe6733ve+6yyy5zS5cudTfeeKP/165dO99hG9Zbf/31fUdz27bFB3yPHTvWXXzxxe6ZZ55xb7/9tjvjjDNc4Ta0LXUMM/1zUOUvAggggAACCCCAAAIIINA6BLKuy2ZVB81qO60jFTlKBBBAAAEEEEAAAQQQaE0CxXsEW5NADY9Vz9nNOuyzzz7u+uuv99NBhw7eMOVz+/bt3RFHHOE/79mzZ8ld9+jRw40fP94dc8wxbo011vDrhW3ozaabburGjRvnjjzyyJLb4AMEEEAAAQQQQAABBBBAAIGWKZB1XTarOmhW22mZqcZRIYAAAggggAACCCCAQGsWaLNqdWjNAC3p2DUK+K233nIzZ850/fr1cxtttJHr3r17kw9x+vTpfjudOnVyG264oVtvvfVc6Fxu8sYSvjB06NDomchaVfHfbLPNEr7FxwgggAACCLQ+gTFjxrjbb7+90YEPGzbMXX311Y2WswABBBBAAIF6EciqDprVdpLcNCV2x44do9VUh1VdloAAAggggAACjQV23313N2vWrEYf6NGIhx56aKPlLEAAAQQQyEaAKaCzcTSxlc6dO7ttt93W/2tOhNR5rH8EBBBAAAEEEEAAAQQQQAABBKotkFUdNKvtVPt42T4CCCCAAAIIIIAAAgggUG0BpoCutjDbRwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGokQAdwjaDZDQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFBtATqAqy3M9hFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEaCdABXCNodoMAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghUW4AO4GoLs30EEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgRgJ0ANcImt0ggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC1RagA7jawmwfAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqJEAHcA1gmY3CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLUF6ACutjDbRwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGokQAdwjaDZDQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFBtATqAqy3M9hFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEaCdABXCNodoMAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghUW4AO4GoLs30EEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgRgJ0ANcImt0ggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC1RZos2p1qPZO2D4CpQSGDh3qHnrooejjLbbYwnXq1Cl6zwsEEEAAAQQQ+I/ABx984ObNm9eIY4011nD9+vVrtJwFCCCAQEsQ+Mc//uHWXHPNlnAoHEMLEli+fLnr2LFjdER6veWWW0bveYEAAggggAACnwm88847bsWKFZ8t+P9X6667Ltd5jVRYgAACLUFg0KBB7tZbb839UNrnHgMigEBM4M0334y94yUCCCCAAAIIJAl8/PHHTv8ICCCAQEsUKNZY2BKPk2Oqb4Fly5a5l19+ub4PgtgjgAACCCBQY4F///vfNd4ju0MAAQRqI9C5c+fa7ChhL3QAJwDxcXUFdBfE0qVL3fDhwzOtMOsOsi5dukSRnzZtmtNd2nmG/v37R7tXXBSnPEO3bt1cnz59oihoVNns2bOj93m8WGeddVz37t2jXU+fPt198skn0fs8XmyyySauTZs2fteffvqpe++99/KIRrRPFR7rrbde9H7BggXuo48+it7n8WKttdZqcMfmzJkz3eLFi/OISrTPDTfc0LVv/1kRN2XKlOizPF5oVMj6668f7Vo+csoz9OzZ0/Xq1SuKwocffugWLlwYvc/jhUaxxmeB0O9Nv7u8Qrt27dxGG20U7V7l1YwZM6L3ebzQaN+111472rXO28VGBUcr1OCFtTJX5+xNVp+7Q7BY5s6dO9fNmTMnRDGXv5S5yewWy9zevXu7Hj16RJGnzI0oeIFATQU6dOjg6wUqh3fYYYdM9x2vN+oGiKlTp2a6/aZurGvXrq5v377R1yzUG3UtpGuiEHR9puu0PMPGG2/s2rb9z1PWLNQbdU0dnyFG1/m63s8zFNYbZ82a5RYtWpRnlNwGG2zg9HsOIe96o+KiOIVgod6oWTiUdiGo/UHtEHkGtYnEG9bVibhy5crcoqTfvs4BIagdS+1ZeYbCeqPqHqqD5BlUlqhMCcFaWy1lbkiZhn8pcxt6FHtHmVtMpfEyytzGJrVY8lnreC32xj4QKBAIHZDx6bMKVqnorRrt4xfxFW0kwy+pMToeHwszrxfGKVRWMzzsJm+qMN1Cx2uTN5ThF9SJGGzyrFCEQypMN5nlHaymW/w3l7eRxXRTvo4bhXyep5V+b/E45RkX7bsw3SyMQrOYboXngLzTTfuP5yOLZS7n7uK5hDK3uEt8aeE5wMq1Uvw3F48vrxFoyQK6SSzekJ3VsVr7PRVeD1GGFU9plWHBJs8bGEPsLKYbZVhIndJ/C9NN+SrvUJhuep93sF5vtNh2ZCHdCuuNFq5jrZW5hb+3UK7k+ZuzmG7WylyL6VYYJwu/N+vnbgtlbjV+6/lfSVTjqNhm3Qk8+uijmd6td+qpp7qnnnoqcnjmmWcajAaKPqjRC00J9sUvfjHa22abbeZefPHF6H0eLx544AF34YUXRrs+7bTTnP7lGS666CI3ceLEKAp6vd1220Xv83ixxx57RHeT667X5557Lo9oRPt8+umn3ejRo6P3Rx11lBs7dmz0Po8XV155pbvtttuiXWtk/5577hm9z+PFIYcc4vS81BDyvtNV09sfffTRITruwAMPdHLLM9x4443uhhtuiKJw7bXXOrnlGY455hj3xhtvRFGYPHmy00jlvIJG1h188MHR7nfeeedMZ6uINtyEF3fccYcbN25c9I3vfe977thjj43e5/GisMx99tlnG9wBX+s46Y773XffPdqtxTL39NNPd3LLM4wZM8bdf//9URQocyOK6EVhmavzuK5V8gzjx493v//976MoTJgwwelaJc+g82R8Vousy9z4iOc8j5N9I1BMQKPys8zzumlpl112iXalTuYXXnghep/HC9XVzznnnGjXJ510kjv77LOj93m8uOSSS9w999wT7fruu+92O+64Y/Q+jxf77rtvNCpSs21lmS8qOR61N3zjG9+IvnrkkUc6ueUZfvzjH7tbbrklisLNN9/shg4dGr3P48Xhhx/eYJS9Rknn2SGkEcijRo2KKOQjtzyD0um6666LoqB67MiRI6P3ebw48cQTG9TLXn/9dafZbfIKGl27//77R7vXzBCTJk2K3ufx4s4773Q//OEPo12r/U9ueYazzjrLPfbYY1EUHn/8cae6Wl5BN+t84QtfiHavUdx5l7mPPPKIO/fcc6M4UeZGFA1exMtczSSZd5mrfPPNb34ziqPFMvfXv/61k1ue4bDDDmswI2pLL3OtdCjTAZxnrmffkUB82t9oYTNeFP7AtH1NW5NXUAdwPOgunDzjo7gU3q2u6SryjlNhRUsV57zjFL9DSq/zjo9M4kGj5/OOU+EIfuWtvOOk31g85B2f+BR1ipfyet5xik+1rDhp2vy841R4d6vc8ozTkiVLRBMFlS15xkcRiU91Ft7nHSdrZW7howOUr/I2ij+WQulGmSuFxoEyt7FJ4RLK3EIR3iOQr0DW9YPCWSuoNxZPX+qNxV3iSwvrjRbrHxbrjbrpqLCsjbtW+3VhvdFi/YN6Y+NcUDji12L9Q/XIvOtE1uqNhbM1WChzC8/d1Bsb/960xFq9sbBfg7ba4ulW2FZLmVvcKeulDVvIs94620MAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQqJkAHcA1o2ZHCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQHUF6ACuri9bRwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGomQAdwzajZEQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFBdATqAq+vL1hFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIGaCdABXDNqdoQAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAghUV6DNqtWhurtg6wjUXmDhwoVu2bJl0Y7XXHNN165du+h9Hi9mz54d7VZxUZzyDPKRUwhdunRx+pdnWLRokfvkk0+iKPTo0cO1b98+ep/Hizlz5rhwmmzbtq3r2bNnHtGI9rl8+XK3YMGC6H2nTp1ct27dovd5vFi8eLFbunRptOvu3bu7jh07Ru/zeDFv3jy3cuXKaNdrrbVW9DqPF4qL4hSCfOSUZ1CaKe1CsJBu8+fPdytWrAhRcr169XJt2rSJ3tf6xaeffurmzp0b7bZDhw5ujTXWiN7n8ULnSJ0rQ+jatavr3LlzeJvLX+tlrsoRlSd5BotlbmG6UeY2ziGUuY1Nii2xVuYWiyPLEKgnAev1Rl136Pojz1BYb9T1ma7T8gy6ZtS1o4KuX3Udm2fQNbWurUOwUG9csmSJ078QLNQ/rJVh9VBvVPuD8lOeQW0iuk4LQe00aq/JK6jNSG1HIVioNxbWP6g3htRp+Jcyt6FHsXfWy1wLbbWUucVyTuNllLmNTWqxhA7gWiizDwQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKAGAvndHlWDg2MXCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQGsSoAO4NaU2x4oAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAi1agA7gFp28HBwCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLQmATqAW1Nqc6wIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIINCiBegAbtHJy8EhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEBrEqADuDWlNseKAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAItWoAO4BadvBwcAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgi0JoH2relgOVYEaimwbNky17Fjxybvct68ee6TTz7x3+vTp0+Tv9+cL3z00Ufu/fffd0uWLHGbb7656927d3M2l8l3FZ9Zs2b5bW2//fauTZs2mWy3qRuRyZQpU9zkyZOd0mjDDTd0G220kf/brl27pm4us/VXrlzp00xOa6yxhltvvfUySzflw3/84x8+rrJfe+21M4t3rTe0YsUKn35y6ty5s9tiiy3cWmutVdVorFq1yk2bNs3nl4ULF7oFCxY4pVf37t2jf/369XNdu3atajwKN650nTlzplu6dKn/pzh169bNx0l/11xzzcKvtKr39XjurnUCLV++3LVv377J52P9DmfPnu2jq7ymf7UKFss3/fYmTZrkCfr27et0Psgj6Fz1wQcf+PLt3Xff9WXJxhtv7DbZZJNczwfVLN/k/K9//cuXnzrn7bTTTnnQZ7LPPMo3RVxl2owZM1wo3xYvXuzL11Ce9OzZM7c8nQksG0GglQvU2/WQ4qvrbp2X1llnHbfpppv6a5U8k9FKOS8Dq3VZlSWqYyt+avtYf/31K2pDKZbOLakuq+tnXaPpr67R+vfvX/X8bbWcpy5bLLd/tqzezt2fxbx2r+rRyGJdlrba8nm2mnXZllS+5VGXtdpWWz5HNe/TNqsPelXzNsG3EUAgCDzyyCPu3nvvdW+88YabO3eu7yDceuut3SGHHOI+97nPhdXK/j333HPd448/7tcJnW9lv5DiQ13gqHFXjXE9evRo9I133nnHXX/99e6JJ55o8Jk6gL/85S+7UaNGNbmhv8GGmvHmJz/5ibv99tv9FuSrTocswnPPPed03ApKH3UKFgvq6PjNb37j/vd//9d33hWuo47gk08+2e2+++6FHzXrveKn9Fcn3XnnnddoW4q7bF5++WWnOMaD8tzw4cP9v7ZtK5/o4cMPP3SHHXaY37TywqWXXuq23Xbb+K5yf62K6Ztvvun+/e9/+w7qz3/+8406le677z530003uenTpzeI77rrruvOPvts94UvfKHB8ua+efTRR53y6vPPP+/PA+W2p/QZMGCAPz/st99+buDAgeVWr/iz1157zd15553upZde8g1j5Yp+nSe22WYbN2jQIDds2LDMbiioOPI1+KLVc3cNDj31LlSm/epXv/IdlmqA0jlzq622cjvssIMvJzp16pS4LZWNX//61/16X/va19wJJ5yQ+J2kFeq5fFPH2YEHHugP8dhjj3X//d//nXS4qT5XuXHXXXf5dXV+GTx4cMnv6fx52WWXubfffrvROrq56eCDD/bp1KtXr0afV7rAQvmmuF9xxRXunnvu8Yeh4zzzzDNdhw4dKj2szL9nsXxT49Mf/vAH9+yzz/pr3XJliUDUua7rBuXBgw46yHXp0iVzJzaIAALZCVi9HpozZ46/oVIdX4U3A6uBVXXFW265pcF1t+qM2223nfv2t7/tNthgg+yQmrClapXzioLluqyuGR988EH35JNP+msI1SviQY29v/vd79wdd9zhPv744/hH/obUvffe233lK1/xN1o3+LCJb6zXZT/99FM3depUX56qPq8b8HWTcjzoRvgbbrjBPfDAA07rh6D8PXToUHfGGWc0qvuGdSr5a7Wcpy5bPjWtnrvLx7q2n1o1que6LG21tNWW+xVbrMtabKstZ5jlZ3QAZ6nJ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QAABBBBAAAEEEEgWoAM42Yg1EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgboQoAO4LpKJSCKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALJAu2TV2ENBOpfoF27dv4g2ra1cc9DmzZtXIiTXlsIFuMUjEi30jmEdCttE/+EvBTXKP7ampFiaS1O/N6K553CpaRboUjj9+SlxiaFSywaWYyTtd+b0tFinArzF+8RqBcBi+cdi3Gydt6xaGQxTtbSTecFa3Ei3dKdrUm3ZCfyUn0akW6kW7JAujWsnScVa2txsvh7S5e65ddqs2p1KL8KnyKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII1IOAjeGQ9SBFHBFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAHjAkwBbTyBiF56gQULFrgZM2a4hQsXOr1evHix69y5s+vWrZvr3r2769mzp+vXr1/6DTZzTQ2unzZtmps3b14Up5UrV/q4KD76p/h07dq1mXtK/3WLcSLdktOPdEs20hrkpWQna0akW3KahTU++eQTN3PmTLd06VL/T+VJKN/0d8011wyr1uyvxTh99NFHbv78+d5I8evYsaN3klGPHj1cp06dauYTdmQtTqRbSJnyf0m38j761GJeSo41ayBgT8Ditb7FOFm7jrVoZDFO1tJNZwBrcSLd0p2XSbdkJ4t5SbG2eM1o7VpfTtbiRLopVZID6ZZsRF5KNqrmGnQAV1OXbVddQCfZP/zhD+7ZZ591b7zxhtPFTrmgBvJtt93WDR482B100EGuS5cu5Vav6LNHH33UPfLII+755593c+fOLbsNPdt2wIAB7nOf+5zbb7/93MCBA8uuX+mH1uJEuqVLSdIt2Ym8VJ9GpFtyummN1157zd15553upZde8jc4lSvjdJPTNtts4wYNGuSGDRvmevfunW4nTVzLWpx0s9d9993n7r//fjd58mS3ZMmSkkek58tsuumm3mm33XZzu+66q9MzXrIOFuNEuiWnMumWbKQ1rOWldLFmLQRsCli71peStThxzZgu75JuyU7kpfo0It2S001rWDsHKE7WrhktXutbjBPpptxbPpBu5X3Cp+SlIJH/X54BnH8aEIMKBW677Tb3y1/+smxjb7lNq7H82GOPdSNH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r2UnjMXQrBaXXHKJ/37TKXU2WmWVVWKx8u1alGmrrbbyp2z+5ptv3AEHHOD+/e9/u2+//TbfDYVivfTSS+7//b//54JZOdZbb73Q2cY2rcmE3vLpD71lc7JoS9lSEwMCdglYq+uLlDWZqDPms1/0ls0JW+pORugtW2+KYa0MsFhntFbXl96syYTepJXsgN6yGWFL2YzKjNGj4oUyBeDaEGiUwKuvvuq233776gffWWaZxa299tpunnnmcQMGDHBvvPGGe/jhh919991XzVqF9Q477ODva6rH4447zukDu6YDUlCvkLPPPrvaY80/2MC/ww8/3N16663VFKuuuqpbcskl/Sm1vvjiCyeZr7322ur1NCf++eef72aeeWY/zYMPPujva0qZ4JE85phj3EorrVTNs9ENazKht3waRG/ZnLCl7mSE3rL19sEHH7jddtvNhdd/n3feef0OTJrmRx9EpplmGtenT5+qE1QO348//ti9++67bsyYMe6pp55yeu8oaG3bk08+2SV1OMqW5ocYFmW69NJL3RlnnFG9hX79+vn3uMACC/ijeFUXEKPevXv70zvLWSwmWivnrbfeck8++WTEua4OYCeccILr2bP5fpHWZEJvVfOou4He6uLxT1q0pWypiQEBuwSs1fVFyppM1Bnz2S96y+aELXUnI/SWrTfFsFYGWKwzWqvrS2/WZEJv0kp2QG/ZjLClbEZlxcABXBZ5rtsSAY340UftYN2+epnJEavpNHv16lWNtsYaa7hg7V85jo866qjq+kfVSA1saBrJXXfd1Xf0ZiWbeuqp/Ypa0GNP8TVa68wzz/STarTyNtts44YPH56VVd3zFmVCb3VV5p9Eb9mMFANbyuZkjRF6y9aZYqhjkkb/PvPMM/kSpMTSlMZ77bWXGzZsWEqM/IctyqQprk866SQn524rYfnll3d/+tOfnDpmtRqsyYTe8mkUvWVzsmhL2VITAwI2CVis61uUyVo91iIjizJZ05tKAWsyobd8ZTN6y+Zk0ZYs1hmt1fWlWWsyobfs5w295WOELeXj1OlYOIA7TZzrFUZA0zYef/zx7vnnn0/MU6Okfv/737sNNtigZlTPpptu6q+vqGkxFUejh1oNmgJajlyN7E37IL3MMsv4U07ONddckcuNGjXKn65ziSWWcFtuuaVrdjrqSKbejkWZ0FtcS7X76K2W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nXzyyRI1V3j11VfdiSee6N9XkCA8ajo41sivRZnQW7YG0Vs2I8WwZkv5pCYWBCAAAQhAAAIQgEAnCVirM1qs61uUCb1lPyXoLZuRYmBL+Th1MhYO4E7S5loQgAAEIAABCEAgJwGN5NU0xcstt5zTmiqNBI0eHjFihD9d8lprreW22WabRpKnxrUmkxzeY8aMcV988YXPKVXwlBOjRo1y11xzje9sv/nmm1NiNXbYokzoLVuH6C2bkWJYs6V8UhMLAhCAAAQgAAEIQKCTBKzVGS3W9S3KhN6ynxL0ls1IMbClfJw6EQsHcCcocw0IQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACHSDQswPX4BIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEINABAr06cA0uAYGOEdB8/O+++66/HuCECRPcd99956addlrXv39///dHP/pRx2QJLqQpDz799FNfJsnXu3dvXxbJpSk9+/TpE0Tt2K81mdBbPtWjt2xO2FJ3MkJv6C2bQL4Y1spJSW1NJp637rQli3qzKFM+7RILAjYJWHtfiJI1mSyWO9YYobd8zze2lM3JIiOLMlEGdKctoTf0lk0gXwxrtmSxnLQokzW95bO25mLhAG6OG6kMEXj++efdtdde65566ik3fvx4V6lUUqWbYYYZ3CKLLOIWW2wxt/baa7uZZpopNW6zJ7788kunNQVvueUW9+qrr7qvvvoqNauppprKDR482JdpxRVXdCussILr0aNHavxmT1iUCb1laxO9ZTNSDGwpm5M1RugtW2cWGVmUyWI5aVEma2WARUYWZbKmN4tlQL7SlFgQsEnAYrljUSZrZaFFRhZlsqY3lQLWZEJv+cpm9JbNCVvqTkboDb1lE8gXw1o5KamtyWTxecun3dZjsQZw6wzJoSQCd955p7v44ovdmDFjmpJg6qmndmuttZbbeeed/RHCTWUSSvTRRx+58847z3f+1nP6hpLUbM4333xup512cnIGFxEsyoTesjWL3rIZKQa2lM3JGiP0lq0zi4wsymSxnLQok7UywCIjizJZ05vFMiBfaUosCNgkYLHcsSiTtbLQIiOLMlnTm0oBazKht3xlM3rL5oQtdScj9Ibeivrub62clGatyWTxect+AoqNgQO4WJ7k1iEC119/vTvuuOMiV9NUyrPNNpubZZZZ3DTTTONPtawRtt98843TVAN64DU99McffxxJpxG4J5xwgp8ucqKBnc8++8ztuuuu/ojfcDKNMB44cKDTyGPJp+mfNS215FHPk/fee8+988477ttvv60m0whg5bXJJptUjzWzYVEm9JatSfSWzUgxsKVsTtYYobdsnVlkZFEmi+WkRZmslQEWGVmUyZreLJYB+UpTYkHAJgGL5Y5FmayVhRYZWZTJmt5UCliTCb3lK5vRWzYnbKk7GaE39FbUd39r5aQ0a00mi89b9hNQfAwcwMUzJcc2E1BPkj//+c/+VM9yqq6//vru5z//uVtwwQWdHL5Z4f3333cPP/ywu/TSS93rr7/uR1944YXdiBEjspImntdo37322ss999xz/vkhQ4a4TTfd1C299NJuwIABiWnCBydOnOhPi3DzzTe7kSNH+g5inZeDW1NCNxMsyoTesjWJ3rIZKQa2lM3JGiP0lq0zi4wsymSxnLQok7UywCIjizJZ05vFMiBfaUosCNgkYLHcsSiTtbLQIiOLMlnTm0oBazKht3xlM3rL5oQtdScj9Ibeivrub62clGatyWTxect+AtoUw1svlQCBriKwwQYbVFZeeeXKsGHDKs8++2zTsk+YMKGyxx57+HkpvzvuuKOpvG644YZqHp5juuKN8G0qHyUaPXp0ZZVVVvHz23rrrZvOy6JM6C3bLNBbNiPFwJayOVljhN6ydWaRkUWZLJaTFmWyVgZYZGRRJmt6s1gG5CtNiQUBmwQsljsWZbJWFlpkZFEma3pTKWBNJvSWr2xGb9mcsKXuZITe0FtR3/2tlZPSrDWZLD5v2U9Ae2L0bJNfmWwh0BYCmjJZfwr777+/W3TRRZu+jkYPH3300W7WWWf187jvvvuaystzQvvp5p9/fnfwwQe7nj2bf6w04neXXXbx83v11Vfd+PHjJwuZ0Fs+NVqzJYt6sygTesu2b/TWnYzQW7beFIMyIJuTNUboLVtnimGxDMgnObEgYJMAZWG2XiyWO+itO/WGLaE3vvll24BiFPEdkuctH2tr7xP0ht6KKiexpXy2VFas5j1VZUnMdadoAsHLslevXq6IBdP79evnlltuOZ/pG2+80RTbZ555xk+30korOcnValh11VWrWUwuMqG3qkrrblizJYt6sygTeqtr1v5J9NadjNBbtt4U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gAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAoBgCOICL4UguEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABEon0Kt0CRAAAg0QeOONN9yyyy7rvvzySzfTTDO5p556yk0//fQN5NBa1Eql4lZaaSX37LPPuh49eribbrrJrbjiiq1lWmBqyXfnnXe6Bx54wL311lvuzTff9P+03bdvXzfLLLO4WWed1Q0ePNitueaabvXVV3f9+/cvUAKymhwJXHHFFe7rr7+u3prsZtCgQdX9dm688sorbuTIke6+++5z48ePd++995778MMP3Y9+9CPflmXPCy+8sFt77bX9Z7FXL15r7dQHeecn8O2337p//etf+RM0GHODDTZw00wzTYOpprzol156qfvuu++qN/7LX/7SzTzzzNV9NiAAAQhAAAKdINCJdmzedx5t2k5onGtYJEC71qJWkMkyAdq0drST9x1vR+LJS5Ibb7zRffTRR9WbWn755d2CCy5Y3W9144YbbnD//e9/q9mssMIKbv7556/uswGBVgj08Cr/lVYyIC0EOklATh45XRVOOeUUt8cee3Ty8v61br75ZqcPyApDhgxxTz75pOvTp4+/X9a/l19+2Z1//vnuwgsvdK+//npuMXr37u2GDRvmDj30ULfMMsvkTkfEKYuAOluEKzqq+Ky11lpthaDGuezy+eefz32dGWaYwW2++ebusMMOw8GTm9qUHfHhhx92CyywgJtxxhkLB/HJJ5842WS7wrhx49xcc83Vruwnm3z79evnJkyYUL2f0aNHOzWmCBCAAAQgAIFOEuhEO7aRdx5t2k5qn2tZIUC71oomkKNIArRpi6RpN69G3vF276J7JRs6dKj//T+4g7POOsvtuOOOwW7qb97nc9FFF418/zz33HPdtttum5ovJyDQCAGmgG6EFnFLJSDnZuD8/fGPf+z+8Ic/lCLPL37xi6oD+MUXX3RHHHFEKXLoonIwbLTRRn6voyOPPLIh56/Sf/PNN/7oyuWWW85tuumm/qhhHSdAoCwC6sywyiqruE022SRS+ckjj3rLnXHGGU7lg34JEEgjoA4NqqzLERjuZZkWn+MQgAAEIAABCECgWQJW2rFh+WnThmmwDYHiCdCuLZ4pOUYJ0KaN8mAPApYI8Hxa0gay4ADGBrqCgKZ93WuvvaqyHn/88W7qqaeu7nd644QTTnBTTTWVf9ljjz020guoU7Jo5PHSSy/trrrqqsxLaoSypqxOC5oI4PLLL/en0H3ppZfSonEcAm0loCnLNb30Pffc09J1Pv74Y7fLLru4Qw45pKV8SDz5EVBZd8455/idBEaMGOG+//77ye8muSMIQAACEIAABMwQsNaODYOhTRumwTYEiiNAu7Y4luRUS4A2bS0TjkDACgGeTyuaQI4wARZLDNNg2yyB3XbbzV/3UwL+3//9n1t33XVLlVVTM2yzzTbuH//4h5s4caLbbrvt3EMPPeQ6tf7oP//5T38EdHhaywDIvPPO69ZZZx1/il6tjap1f7XOr+R8//333X/+8x9/1O/VV1/ttL5qOGhKUfG99957C13LIHwNtiGQRODzzz93Gomg9dHi4Wc/+5nbbLPN3Jxzzun/zT777O7TTz/1R7xryvP777/fXXTRRb6Nh9NqVPxss83mO4PDx9mecgnIbn7/+99HANTrHBOJWMCOlg3QCPUigqaAIkAAAhCAAAQgYJuAtXZsmBZt2jANtiFQDAHatcVwJJd0ArRp09lwBgJlEyj7+Sz7/rm+UQJezwQCBEwTuOaaa7ROdfXv9ttvNyHvq6++WvEcvlW5jjnmmI7Iddddd1U8h0X1ugGbeeaZp+KtA1z57rvvcsnhOYQr3gi4ysCBA2vyWnXVVXPlQaQpg4C3PmrERrw1gAu/cW8EQuQasmtvXerKAw88kOtaeh632mqrmjy80e+Vt99+O1ceRJr8CXjTPdfYiGynHSHpWl6nhHZcijzrEOjbt29E594awHVicwoCEIAABCBQHIFOt2ObeefRpi1O3+RknwDtWvs6QsJsAkntTNq02dy6PUYz7/huv2dL8v/973+vHH744dW/Rx99NFG8Zp/PRRZZJPLdwlsDODF/DkKgGQJMAW3UMY9YPxDwjNrtt99+VRwanaopYi2E+eabz/3ud7+rivKXv/yl7WtJqjepFoEXl3D41a9+5Z599lm39dZbu5498z3WmsJaI+G0IP38888fzs55TmZ3ySWXRI6xA4F2EdBa1CeddFIkez1fnqPZ/fSnP40cT9tR/AsuuMBfyzoc5+uvv67JO3yebQhAAAIQgAAEIAABCBRNwHI7NnyvtGnDNNiGQGsEaNe2xo/UEIAABKwS2GGHHfxl5rTUnP60JCMBAt1CIJ+nqFvuBjknOwLXXXedP2VxcGO77rprsGniV1N6BeGzzz5zXo+gYLctv/vuu6977bXXInlvsMEG7t///rc/zXPkRM6dueee291xxx016f/85z/nzIFoEGiNgDoheKN0I5mceeaZ/vTlkYM5djQt+0ILLRSJqefy22+/jRxjBwIQgAAEIAABCEAAAu0iYL0dG75v2rRhGmxDoHkCtGubZ0dKCEAAAhCAAATaQwAHcHu4kmtBBLxpYas5TTPNNE4jXS2FJZdcMrJW7l//+lenXp/tCHfffbc766yzIll7Uxg5Oco0mreVICewejCFw8svv+weeeSR8CG2IdAWAi+99FIkX62lrdH+zYRpp53WDR8+PJJUnTO09jUBAhCAAAQgAAEIQAACnSBgvR0bZkCbNkyDbQg0T4B2bfPsSAkBCEAAAhCAQHsI9GpPtuQKgdYJPPTQQ+6+++6rZrT22ms7OXdaCePGjXNjx451r7/+uvviiy/c4MGD3QILLODkAJXTqZmw0UYbuaOPPtpPqlGMl156aWRq6GbyTEoTd/4qzoknnuhmnXXWpOgNH9t9993dUUcd5T755JNqWt3LsssuW93Pu/Hmm2+6Z555xr377rtOzreZZprJzTbbbG655ZarGWmcN8+seLqeRke/9dZbvi51vaWWWsrNNddcWUlzn+/Ufb333ntODv8PP/zQ72CgjzIzzzxzLjm///57fzrwN954w3300Ufu448/dt5aIW7AgAF+Ht66um666abLlVenIknWcJCs6vDRbBg2bFhk6njl89xzz7lFF1202Sw7lk768tYS8e14woQJTtPyaYp2/bba0SN+E524lkZe60PI888/79555x3fBvVsqlxptTyP308rz008L/aLIdDOcvmDDz7wbeuVV17x3zNzzjmnW2yxxfxnpRjpf8hF70RdQ52i9E6bYYYZfDvWTAOqQxAgAAEIQAACcQJFt2M78c6jTRvX4g/7nWr/BVdvZ90puEYn76mV+jntWue6tV3biXZmYM+dulan2rWtPDMBE36LJdDucrkT73jatMXaRFm56bumBreMHz/e/847xxxzuB//+MeFfwNp9P7a4WsJy9Cp8jd8zaK3O12nib9LtJYoAQImCXiNUC10W/3717/+1ZScXoWw4o3MrXgfhqt5hfPV9tRTT13x1s+tvPrqqw1f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kSNHhniiho0Agd4psFHv7JZeEQihdFnmNmfSxm9O/Pu//3uvopk9e3Ya/I0dK13aWPC3V82QzhAgQIAAAQIECBAgQKB+An1hHZvVsKbNakgTIECAAAECXRGYNWtWUqx027muFFeGAIGCBASAC4LXbNcEjj/++OSyweXSP/nJT8rJXvH44x//OO3HJptsEk499dR0X4IAAQIECBAgQIAAAQIEmk+gt69jszNiTZvVkCZAgAABAgRqCVx//fXJ7ctiufg7j40Agd4rIADce+dGz0oC/fv3D+ecc05q8fDDD4c//OEP6X6RiXjPwf/+7/9Ou/DFL34xjBgxIt2XIECAAAECBAgQIECAAIHmE+jN69jsbFjTZjWkCRAgQIAAgVoC06ZNCx//+MeTYuPHjw8nnHBCrac4ToBAgQICwAXia7prAp/61KfCzjvvnBbOBoTTzAISF1xwQXKT+9h0vN/BV7/61QJ6oUkCBAgQIECAAAECBAgQ6G0CvXUdm3Wyps1qSBMgQIAAAQK1BH7/+9+H1tbWsOWWW4abbropvOMd76j1FMcJEChQQAC4QHxNd01g0KBB4ZprrknOBo7PiPcouuWWW7r25B4q9fTTT4cf/ehHae1XXXVVGD16dLovQYAAAQIECBAgQIAAAQLNK9Ab17HZ2bCmzWpIEyBAgAABAl0R+P73vx9OO+208OSTT4ZddtmlK09RhgCBAgUEgAvE13TXBfbdd99w1llnpU84++yzw7p169L9eifiWchr1qxJmv2Hf/iHcNxxx9W7C9ojQIAAAQIECBAgQIAAgV4s0NvWsVkqa9qshjQBAgQIECDQFYExY8aE6dOnh80226wrxZUhQKBgAQHggidA810XOP/888Nuu+2WPOGxxx4L1157bdefnGPJ++67L/zqV79Kahw1alSI33yyESBAgAABAgQIECBAgACB9gK9ZR2b7Zc1bVZDmgABAgQIECBAgEBjCgxozGEZVSMKlC+htd9++yVn35577rnJmbcbb7xxXYebPRM5Bn+32GKLuravMQIE+q7AZz7zmdDS0pIOYNKkSWk670Q928q77+ojQIAAAQIECDSKQG9Zx2Y9rWmzGtIECHRHoJ7rzHq21R0DZQkQIECAQF8R6Fe6aXdrX+msfhKIAq+99lpYvXp1ghHPwB04cGDdYOKPy8svv5y0169fv/DOd76zbm1riAABAgQIECBAgAABAgT6pkCR69ismDVtVkOaAAECBAgQIECAQOMKCAA37twaGQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECTSbgHsBNNuGGS4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4woIADfu3BoZAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJNJiAA3GQTbrgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDSugABw486tkREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0GQCAsBNNuGGS4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4woIADfu3BoZAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJNJiAA3GQTbrgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDSugABw486tkREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0GQCAsBNNuGGS4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4woIADfu3BoZAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJNJiAA3GQTbrgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDSugABw486tkREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0GQCAsBNNuGGS4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4woIADfu3BoZAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJNJiAA3GQTbrgECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDSugABw486tkREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0GQCAsBNNuGGS4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA4woMaNyhGVlfEJgzZ05444030q5Onjw5DBkyJN2XIECAAAECBP4isHLlyrBq1aoKjoEDB4ahQ4dW5MsgQIAAAQIEekagtbU1zJ49O608fg6/973vTfclCBAgQIAAgb8JLF26NKxbt+5vGX9Nxb8BDxo0qCJfBgECBAjkI9CvtHBpzacqtRDovsBhhx0WZs2alT7xmWeeCRMmTEj3JQgQIECAAIG/CHzzm98MM2fOrOCYOnVqmD59ekW+DAIECBAgQKBnBFavXt3mD9ZxDRvXsjYCBAgQIECgUuDAAw8MLS0tFQcuvfTScMQRR1TkyyBAgACBfARcAjofR7UQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgcAEB4MKnQAcIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQj4AAcD6OaiFAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDhAgLAhU+BDhAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCAfAQHgfBzVQoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgcIFBIALnwIdIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQD4CAsD5OKqFAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEChQsIABc+BTpAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBfAQEgPNxVAsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQKFxAALnwKdIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQL5CAgA5+OoFgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBQuIABc+BToAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPIRGJBPNWohQIAAAQIECBDoSYETTzwxTJ06taKJUaNGVeTJIECAAAECBAgQIECAAAECvUFg+vTpYdWqVRVd2WGHHSryZBAgQIBAfgICwPlZqokAAQIECBAg0GMC22+/fYj/bAQIECBAgAABAgQIECBAoK8I7LPPPn2lq/pJgACBhhJwCeiGmk6DIUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgmQUEgJt59o2dAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIGGEhAAbqjpNBgCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJpZQAC4mWff2AkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaCiBAQ01mj42mLfffjv853/+Z5g7d254/vnnw5tvvhm23nrrsO2224bDDz887L333l0a0dq1a8Mtt9wS7rjjjrBgwYKwYsWKMHHixDBp0qQwefLksPPOO3epnkWLFoVf/OIX4amnngoxvcUWW4TddtstqWfKlClhyJAhXapHIQIECBAgQIAAAQIECBBoXIG81rJ5rUHzqqdxZ8zICBAgQIAAAQIECBBoNoF+raWt2QbdG8b7yCOPhEsuuSS8+OKLHXbn/e9/fzj99NPDJpts0mGZV199NZxxxhlh/vz5Vcv0798/nHPOOeEDH/hA1ePlzOuuuy5cffXVIQaTq2277rprmDZtWhg+fHi1w+udd9hhh4VZs2alz3/mmWfChAkT0n0JAgQIECBAgAABAgQIEOg9AnmtZfNag+ZVT3eEV69eHQYNGpQ+Ja5h41rWRoAAAQIECBAgQIAAgd4iIABcwEy88sor4dOf/nRYtmxZ0no8Q/fQQw8NI0eOTAK5v/71r8Py5cuTYzH/W9/6VtVexjJf+tKXwrPPPpscj4vOAw44IIwePTrMmTMn3HXXXWHVqlXJsa985SvhqKOOqlrPzTffnASj48G4iI1n+8Yzf1taWsK9996b1j9+/Pgwffr0MGLEiKr1rE+mAPD6qHkOAQIECBAgQIAAAQIE6i+Q11o2rzVoXvV0V1IAuLtiyhMgQIAAAQIECBAgUG8BAeB6i5fa++pXvxr+8Ic/JC0feeSR4dRTTw3xTN3y9tprr4UvfvGL4aWXXkqy/t//+38hBkrbb1dddVW4/vrrk+wYKD733HPDwIED02KPPvpoOOuss5Jgcqz/hhtuCKNGjUqPx8TixYvDxz72sSRQPGzYsHDxxReHPffcMy2zZs2acOGFF6Zn6cb+xrOS89oEgPOSVA8BAgQIECBAgAABAgR6ViCPtWxea9C86lkfMQHg9VHzHAIECBAgQIAAAQIE6imwUT0b01ZIAq0PPvhgQhHvsXvKKae0Cf7GAzFImw2y3n333RV0S5YsCTfeeGNaT/vgbzyw++67J0HhmI6Xdi6Xj/vlbebMmelZwieddFKb4G8sM2DAgHDeeeel9xG+9dZbk3sMl5/vkQABAgQIECBAgAABAgQaXyBeXSqPtWxea9C86mn8mTNCAgQIECBAgAABAgSaUUAAuM6zHu/VW77PbryvbvaM3WxX4lm4G230l+l56qmnsoeS9OzZs8PKlSuT9BFHHNFhPfGS0Ntss01SLgaA4xm92S1eMituQ4YMCVOnTs0eStOxH8cee2yyH9uMQWAbAQIECBAgQIAAAQIECDSPQF5r2bzWoHnV0zwzaKQECBAgQIAAAQIECDSTgABwgbO9YsWKDltft25daG1tTY7Hy0u13x5//PE0a999903T1RL77LNPkv3666+Hhx9+OC0SLzH9xhtvJPsx4NxRMDoW2HvvvdPn3X777WlaggABAgQIECBAgAABAgSaS2B917J5rUHzqqe5Zs1oCRAgQIAAAQIECBBoJgEB4DrPdjwbd/DgwUmr8+bNC3/+85+r9uC+++5LA8A77LBDRZn43Lj169cvbL/99hXHsxkTJkxId5977rk0Xa4jZmTLpAUyic033zyMHDkyycnWkSkiSYAAAQIECBAgQIAAAQINKpDHWjavNWhe9TToVBkWAQIECBAgQIAAAQIEggBwnV8EQ4cODUcddVTS6rJly8KFF14Yli5d2qYX8ZLP06dPT/JigPf4449vczzuLFq0KMkbPXp0cp/eigKZjC233DLde+GFF9L0woUL0/TYsWPTdEeJcj3xMtCvvfZaR8XkEyBAgAABAgQIECBAgECDCeSxls1rDZpXPQ02RYZDgAABAgQIECBAgACBVGBAmpKom8DnPve5EC/HHC+l/Ic//CEJ8MbLNI8aNSo8//zzSV68BPSAAQPCmWeeGXbfffc2fYsB2Hg8bvHM3FrbZpttlhZZsmRJml6+fHmaXp96Yn9rbZ/4xCfCgw8+2GmxeIZzDEy//fbbnZZzkAABAgQIECBAgAABAgSKE9jQtWxea9C86ulIMq653/3ud3d0OMmP69i1a9cGV8jqlMlBAgQIECBAgAABAgQKEhAALgA+BnbPPffcZEE5bdq05DLQd9xxR5uexKDtd7/73TB+/Pg2+XEnu9gtX066olAmI1vmrbfeSo/kVU9aYZVE+T7GVQ6lWfEsZxsBAgQIECBAgAABAgQI9G6BZlnLdnUday3bu1+vekeAAAECBAgQIECgmQVcArqA2Y+XfD777LPDZZddlt7nd5NNNgnxnkobbfSXKYn3Bj755JPDr371q4oerlixIs0bNGhQmu4okS2TPcs2r3o6alc+AQIECBAgQIAAAQIECDSOgLVs48ylkRAgQIAAAQIECBAg0NgCzgCu8/zG+/5+6UtfCvPnz09anjRpUvjqV7+anum7atWqcOedd4Yrr7wyuTdwvBdwPFP3hBNOSHsav3Vd3uIlp2pta9asSYtkg8HdrSfbVraetPIqiXiZ6He+851Vjvwl69VXXw3xrOSufMO6w0ocIECAAAECBAgQIECAAIEeFShiLdvRGrSn17Lxi9mdrWMj9IIFC9JbM/UovMoJECBAgAABAgQIECCwHgJ/iySux5M9pfsC119/fRr8jff9/c53vpOe9Rtri4HVD37wgyEGhk888cQQ7z304x//OBxyyCHJGcKxzJAhQ+JDssWAca0tW2bYsGFp8e7Wkz17OFtPWmGVRAxkd7YddthhYdasWZ0VcYwAAQIECBAgQIAAAQIEChYoYi3b0Rq0p9eyG2+8cfjd737Xofjq1auTtXuHBRwgQIAAAQIECBAgQIBAwQIuAV3nCShf0jneKyheBrp8yef23dhqq63CZz/72SR73bp1YebMmWmRoUOHpunsfXzTzHaJ7KWes4HbbHpD6mnXnF0CBAgQIECAAAECBAgQaDCBPNayea1B86qnwabIcAgQIECAAAECBAgQIJAKCACnFD2fWLx4cViyZEnS0NZbb13zklL77bdf2qnnnnsuTQ8ePDiMHDky2W9paUnzO0q88sor6aERI0ak6bFjx6bprtRTLtO/f/+w6aabps+VIECAAAECBAgQIECAAIHGFchrLZvXGjSvehp3xoyMAAECBAgQIECAAIFmFxAAruMroBz8jU2WA7idNZ9d1L7xxhttim633XbJfjy7Ny7GO9sWLlyYHp44cWKaHjduXJpetGhRmq6WiPcRfvnll5ND48ePDzEIbSNAgAABAgQIECBAgACBxhfIay2b1xo0r3oaf+aMkAABAgQIECBAgACBZhUQAK7jzMfLOg8cODBp8amnngpr167ttPVsUHbbbbdtU3aXXXZJ9+fOnZumqyUeffTRNDv7vAkTJqT9mTNnTlqmWuKJJ54I8T5HccvWUa2sPAIECBAgQIAAAQIECBBoHIG81rJ5rUHzqqdxZshICBAgQIAAAQIECBAg0FZAALitR4/uDRgwIJTP3F25cmWYN29ep+39/ve/T4/vsMMOaTomDjnkkHT/tttuS9PtE/Hyz4888kiSvdNOO4XsJaDjvYTLl5meP39+ePrpp9s/Pd3PtrH//vun+RIECBAgQIAAAQIECBAg0NgCea1l81qD5lVPY8+a0REgQIAAAQIECBAg0MwCAsB1nv0Pf/jDaYvnn39+ePHFF9P9bCIGZH/6058mWYMGDQrve9/7sodDDAjHgG7c7rnnnpAN0JYLvv322+GSSy5JzzT+xCc+UT6UPh5++OFpetq0aWHp0qXpfjlx3333hZtvvjnZjQHsyZMnlw95JECAAAECBOok8G//9m/hC1/4QsW/n/zkJ3XqgWYIECBAoJkF8lrL5rUGzaueZp5TYydAgAABAvUQ+NrXvlaxjo1r2/vvv78ezWuDAAECTSsgAFznqT/yyCPDPvvsk7T66quvhlNPPTXceOONYcGCBUlePGP3+uuvD5/73OfCqlWrkrz4gdj+EtDxwFe+8pXkePzvoosuCtdcc00SUI73642XfT7jjDPCgw8+mJSJl20++OCD0/LlxAEHHJCeBfzkk0+GL3/5y+Ghhx4KMXgc+zdz5sxwzjnnJEHkfv36JR/W8dFGgAABAgQI1Fcgfk7Pnj274t/jjz9e345ojQABAgSaUiCvtWxea9C86mnKyTRoAgQIECBQR4F77723Yh0b17Yvv/xyHXuhKQIECDSfQL/W0tZ8wy52xK+99lo477zzwmOPPdamI/H+wOX77MYDMdB61FFHJUHijoKud955Z7j44ovDW2+9ldbVv3//9KzfmBnv1zRjxoyw2WabpWWyiSVLloR4NvIDDzyQZrevIx445ZRTwjHHHJOWySNx2GGHhVmzZqVVPfPMMyHez8lGgAABAgQItBX45je/mXwxq21uCFOnTg3Tp09vn22fAAECBAjkLpDXWjavNWhe9XQXKq7b45W6yltcw8a1rI0AAQIECBCoFDjwwANDS0tLxYFLL700HHHEERX5MggQIEAgHwFnAOfj2K1aRo0aFb73ve+FM888s809ebPB33h55x/84AfhtNNOSwLBHTUwZcqUcPXVVyeXg95oo79M59q1a5Pi8T5NRx99dHK8o+BvLLjpppuGyy+/PJxwwglh+PDhyXPLdcSd8ePHh8suuyz34G/SkP8IECBAgAABAgQIECBAoE8I5LWWzWsNmlc9fQJfJwkQIECAAAECBAgQINANAWcAdwOrp4ouXrw4/OlPfwqvv/562GabbcK73vWuMGTIkG43F88Cjt86jpeRHjt2bFLPJpts0u164n2JYz2DBw9O+jNmzJhQDi53u7IaT3AGcA0ghwkQIECAwF8FnAHspUCAAAECvU0gr7VsXmvQvOqp5ewM4FpCjhMgQIAAgb8JOAP4bxZSBAgQqKfAgHo2pq3qAptvvnmI/zZ023jjjcOkSZOSfxtSVwwex382AgQIECBAgAABAgQIECDQkUBea9m81qB51dPReOUTIECAAAECBAgQIECgrwi4BHRfmSn9JECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQA0BAeAaQA4TIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgrwgIAPeVmdJPAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI1BAQAK4B5DABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgT6ioAAcF+ZKf0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBADQEB4BpADhMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCvCAgA95WZ0k8CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjUEBAArgHkMAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPqKgABwX5kp/SRAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEANAQHgGkAOEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoK8ICAD3lZnSTwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECNQQEACuAeQwAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE+oqAAHBfmSn9JECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQA0BAeAaQA4TIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgrwgIAPeVmdJPAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI1BAQAK4B5DABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgT6ioAAcF+ZKf0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBADQEB4BpADhMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCvCAgA95WZ0k8CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjUEBhQ47jDBAgQIECAAAECvUDgmGOOCZMnT67oyVZbbVWRJ4MAAQIECBAgQIAAAQIECPQGgQsuuCCsXLmyoit77LFHRZ4MAgQIEMhPQAA4P0s1ESBAgAABAgR6TGD33XcP8Z+NAAECBAgQIECAAAECBAj0FYEpU6b0la7qJwECBBpKwCWgG2o6DYYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYWEABu5tk3dgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGkpAALihptNgCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoZgEB4GaefWMnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKChBASAG2o6DYYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYWEABu5tk3dgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGkpAALihptNgCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoZgEB4GaefWMnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKChBASAG2o6DYYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYWEABu5tk3dgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGkpAALihptNgCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoZgEB4GaefWMnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKChBASAG2o6DYYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYWEABu5tk3dgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGkpAALihptNgCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoZgEB4GaefWMnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKChBASAG2o6DYYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYWEABu5tk3dgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGkpAALihptNgCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoZgEB4GaefWMnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKChBASAG2o6DYYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYWEABu5tk3dgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGkpAALihptNgCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBoZoEBzTx4YydAgAABAgQI9BWBX/3qV+GBBx6o6O4ee+wRjjvuuIp8GQQIECBAgAABAgQIECBAoGiBSy65JLz55psV3Tj66KPDXnvtVZEvgwABAgTyERAAzsdRLQQIECBAgACBHhV4+OGHQwwCt9/eeustAeD2KPYJECBAgAABAgQIECBAoFcI3HzzzaGlpaWiL/vtt58AcIWKDAIECOQn4BLQ+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqMCAQlvXOAECBAgQIECAQJcEPvKRj4SJEydWlB03blxFngwCBAgQIMg+vwwAAEAASURBVECAAAECBAgQINAbBE4//fSwYsWKiq7svvvuFXkyCBAgQCA/AQHg/CzVRIAAAQIECBDoMYH99tsvxH82AgQIECBAgAABAgQIECDQVwSOPPLIvtJV/SRAgEBDCbgEdENNp8EQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDMAgLAzTz7xk6AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQEMJCAA31HQaDAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECzSwgANzMs2/sBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0lIAAcENNp8EQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDMAgLAzTz7xk6AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQEMJCAA31HQaDAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECzSwgANzMs2/sBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0lIAAcENNp8EQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDMAgLAzTz7xk6AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQEMJCAA31HQaDAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECzSwgANzMs2/sBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0lIAAcENNp8EQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDMAgLAzTz7xk6AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQEMJCAA31HQaDAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECzSwgANzMs2/sBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0lIAAcENNp8EQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDMAgLAzTz7xk6AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQEMJCAA31HQaDAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQLMJXH/99WH48OEV/5577rlmozDeksAACgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI9F2B1atXh2XLllUMYN26dRV5MhpfwBnAjT/HRkiAAAECBAgQIECAAAECBAgQIECAAAECBAgQINDAAkOHDg1jxoxJRzhgwIAwduzYEB9tzScgANx8c27EBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECDSRw1FFHhfnz56cj2nXXXcOiRYvCuHHj0jyJ5hEQAG6euTZSAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQaXMB53w0+wYZHgAABAgQINIbArbfeGubOnVsxmF122SV85CMfqciXQYAAAQIECBAgQIAAAQIEihb4/ve/H5YuXVrRjQ9/+MNht912q8iXQYAAAQL5CAgA5+OoFgIECBAgQIBAjwrcc889YebMmRVtTJ06VQC4QkUGAQIECBAgQIAAAQIECPQGgeuuuy60tLRUdGWnnXYSAK5QkUGAAIH8BASA87Ncr5qeeuqpcPfdd4cnn3wyxHTctt1227D77ruH448/PmyyySY16127dm245ZZbwh133BEWLFgQVqxYESZOnBgmTZoUJk+eHHbeeeeadcQC8Vrwv/jFL5J+xPQWW2yRfAjHeqZMmRKGDBnSpXoUIkCAAAECBAgQIECAAIHGFshjLZvXGjSvehp7xoyOAAECBAgQIECAAIFmEhAALnC2b7jhhnDVVVeFGMDNbn/+85+TSzzedNNN4Zxzzgn7779/9nCb9KuvvhrOOOOMNjf2jgUeeOCB5N8111yT1PGBD3ygzfPa78RvYl199dVt+vL888+H+O/mm28OsS/Tpk0Lw4cPb/9U+wQIECBAgAABAgQIECDQRAJ5rGXzWoPmVU8TTZ+hEiBAgAABAgQIECDQBAICwAVMcmtra7jooovCbbfdlrQ+YMCAsM8++4QDDjggOXv3rrvuCvPmzQsxEHz++eeHH//4x+Fd73pXRU+XL18e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adKkdP9Pf/pTms7Wk72Pb1qgXSJ7ua5s4Dab3pB62jVnlwABAgQIECBAgAABAgQaSCC7Bo3DWt+1bF5r0LzqaaApMhQCBAgQIECAAAECBAi0ERAAbsPRszujR49OG+jfv3/YYost0v1qia233jrNXrhwYZoePHhwGDlyZLLf0tKS5neUeOWVV9JDI0aMSNNjx45N012pp1wm9n3TTTdNnytBgAABAgQIECBAgAABAo0rkNdaNq81aF71NO6MGRkBAgQIECBAgAABAs0uIABcx1fAO97xjjRwG+9ltGjRok5bX7p0aXp8+PDhaTomtttuu2Q/nt27ePHiNsfa72SDxxMnTkwPjxs3Lk3X6ku8j/DLL7+clI/3KI5BaBsBAgQIECBAgAABAgQINL5AXmvZvNagedXT+DNnhAQIECBAgAABAgQINKuAAHCdZ36XXXZJW3z88cfTdLVENnA7ZsyYNkWy9cT7A3e2Ze+xm33ehAkTwsCBA5Onzpkzp7MqwhNPPBHifY7ilq2j0yc5SIAAAQIECBAgQIAAAQINIZBdB67vWjavNWhe9TTExBgEAQIECBAgQIAAAQIEqggIAFdB6cmsww47LK1+1qxZobW1Nd1vn7j55pvTrAMPPDBNx8QhhxyS7t92221pun0iXv75kUceSbJ32mmnkL0EdLyP03777Zccmz9/fnj66afbPz3dz7ax//77p/kSBAgQIECAAAECBAgQIND4AnmsZfNag+ZVT+PPmhESIECAAAECBAgQINCsAgLAdZ75Aw44IGy55ZZJq/fff3+4+uqrq/bg3nvvDXfffXdyLN4r+D3veU+bcjvssEOIAd243XPPPSEboC0XfPvtt8Mll1wS4uWm4/aJT3yifCh9PPzww9P0tGnTQvay0+UD9913XygHo+OlpydPnlw+5JEAAQIECBAgQIAAAQIEmkAgr7VsXmvQvOppgqkzRAIECBAgQIAAAQIEmlBAALjOkx7vnXvWWWeFjTb6C/0vf/nL8J3vfCc5SzfeZzeesXvttdeGr3/962nPzj777NC/f/90v5z4yle+Uk6Giy66KFxzzTXhxRdfDLGeeNnnM844Izz44INJmXi5roMPPjgtX07ERXz5LOAnn3wyfPnLXw4PPfRQiMHjV199NcycOTOcc845SRC5X79+4Qtf+EKIjzYCBAgQIECAAAECBAgQaB6BvNayea1B86qneWbQSAkQIECAAAECBAgQaCaBfqVLEHd8DeJmkqjzWB9++OFw/vnnh8WLF6ctDxgwIAneljNioPXkk08OxxxzTDmr4vHOO+8MF198cXjrrbfSYzFYXD7rN2ZutdVWYcaMGWGzzTZLy2QTS5YsSfrywAMPpNnt64gHTjnllE77kj65G4l4GbF4Kezy9swzz4R4PycbAQIECBAg0Fbgm9/8ZvLFrLa5IUydOjVMnz69fbZ9AgQIECDQIwJ5rGXzWoPmVU93oVavXh0GDRqUPi2uYeNa1kaAAAECBAhUCsRbG7a0tFQcuPTSS8MRRxxRkS+DAIENE4gn92288cZJJXvssUeYM2fOhlXo2X1WwBnABU3dXnvtFX7605+Gv/u7vwtDhgxJehHP3C1vkyZNCldccUXNgOuUKVOSy0jHy0GXzyouB39jQPnoo49OjncU/I3tbbrppuHyyy8PJ5xwQhg+fHjShXIdcWf8+PHhsssuq9mX5In+I0CAAAECBAgQIECAAIGGFchjLZvXGjSvehp2sgyMAAECBAgQIECgxwSWLVsWBg4cWPHPl/R7jFzF3RRwBnA3wXqieDwJe8GCBeGPf/xjGDp0aHjXu94Vxo4d2+2m4lnA8VvH8TLS8fmxnk022aTb9cTLSMd64iW+ttlmmzBmzJg0uNztymo8wRnANYAcJkCAAAECfxWYPXt2mDdvXoXHjjvuGP7+7/++Il8GAQIECBDoaYG81rJ5rUHzqqeWmzOAawk5ToAAAQIE/ibw85//PMRAWfst/l145513bp9tn0CfEVi6dGlycl37DseT7eLtOYvanAFclHzva3dA7+tS8/UoXuo5Bmvjvw3Z4mn98czh+G9Dthg8Xp8A9Ia06bkECBAgQIBA5wKHHnpoiP9sBAgQIECgtwjktZbNaw2aVz29xVc/CBAgQIBAIwh8+tOfboRhGAOBCoF4Rdbtt98+xC8hrly5MjkeYzydXY21ohIZBHpQwCWgexBX1QQIECBAgAABAgQIECBAgAABAgQIECBAgAABAo0lMGzYsOSqrvE+1+XtrrvuCp/97GfLux4JFCogAFwov8YJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQn4AAcH6WaiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEChAgLAhfJrnAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvkJCADnZ6kmAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFCogAFwov8YJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQn4AAcH6WaiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEChAgLAhfJrnAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvkJCADnZ6kmAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFCogAFwov8YJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQn4AAcH6WaiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEChAgLAhfJrnAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvkJCADnZ6kmAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFCogAFwov8YJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQn4AAcH6WaiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEChAgLAhfJrnAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvkJCADnZ6kmAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFCogAFwov8YJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQn4AAcH6WaiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEChAgLAhfJrnAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAvkJCADnZ6kmAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFCogAFwov8YJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQn4AAcH6WaiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEChAgMKbV3jBAgQIECAAAECXRK46667wpNPPllRdsKECWHKlCkV+TIIECBAgAABAgQIECBAgEDRAr/85S/D8uXLK7pxyCGHhB133LEiXwYBAgQI5CMgAJyPo1oIECBAgAABAj0qcPvtt4eZM2dWtDF16lQB4AoVGQQIECBAgAABAgQIECDQGwRmzJgRWlpaKrqyxRZbCABXqMggQIBAfgIuAZ2fpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcgAJyfpZoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQqIAAcKH8GidAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEB+AgLA+VmqiQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAoUKCAAXyq9xAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5CcwIL+q1ESAAAECBAgQIECAAIG+L7BmzZpw//33Vwxk++23D2PGjKnIl0GAAAECBAgQIECAAAECBAgQ6E0CAsC9aTb0hQABAgQIECBAgACBwgXefPPNcOCBB1b048orrwynnHJKRb4MAgQIECBAgAABAgQIECBAgEBvEnAJ6N40G/pCgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBDRBwBvAG4HkqAQIECBAgQKBeApMnTw6DBw+uaG633XaryJNBgMCGCWy88cbhH//xH8PNN98cXnrppaSy448/Puy6664bVrFnEyBAgAABAgQIEGgygY997GNhyZIlFaMeP358RZ4MAgQIEMhPQAA4P0s1ESBAgAABAgR6TODDH/5wiP9sBAj0vMCwYcPCj370o3DooYemAeDLL7/c/X97nl4LBAgQIECAAAECDSZw6qmnNtiIDIcAAQJ9Q8AloPvGPOklAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEagoIANckUoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ9Q0AAuG/Mk14SIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgpoAAcE0iBQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINA3BASA+8Y86SUBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRqCggA1yRSgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAn1DQAC4b8yTXhIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCmgABwTSIFCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0DcEBID7xjzpJQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBGoKCADXJFKAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECfUNAALhvzJNeEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoKaAAHBNIgUIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQNwQEgPvGPOklAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEagoIANckUoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ9Q0AAuG/Mk14SIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgpoAAcE0iBQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINA3BASA+8Y86SUBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRqCggA1yRSgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAn1DQAC4b8yTXhIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCmgABwTSIFCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0DcEBID7xjzpJQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBGoKCADXJFKAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECfUNAALhvzJNeEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoKbAgJolFCBAgAABAgQIEChc4MEHHwzz58+v6Mc222wT3vve91bkyyBAgAABAgQIECBAgAABAkUL/OY3vwkrV66s6Ma+++4btt1224p8GQQIECCQj4AAcD6OaiFAgAABAgQI9KjAr3/96zBz5syKNqZOnSoAXKEigwABAgQIECBAgAABAgR6g8Cll14aWlpaKroS8wWAK1hkECBAIDcBl4DOjVJFBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFZAALhYf60TIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgNwEB4NwoVUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFiBQSAi/XXOgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBHITEADOjVJFBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFZAALhYf60TIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgNwEB4NwoVUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFiBQSAi/XXOgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBHITEADOjVJFBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFZAALhYf60TIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgNwEB4NwoVUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFiBQSAi/XXOgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBHITEADOjVJFBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFZAALhYf60TIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgNwEB4NwoVUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFiBQSAi/XXOgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBHITEADOjVJFBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFZAALhYf60TIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgNwEB4NwoVUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFiBQSAi/XXOgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBHITEADOjVJFBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFZgQLHNa729wPLly8OXvvSl8MYbb4QDDzwwnHnmme2LVOyvXbs23HLLLeGOO+4ICxYsCCtWrAgTJ04MkyZNCpMnTw4777xzxXOqZSxatCj84he/CE899VSI6S222CLstttuST1TpkwJQ4YMqfY0eQQIECBAgAABAgQIECDQ5ALrs5bNaw2aVz1NPoWGT4AAAQIECBAgQIBAAwkIAPeyyZw+fXp49tlnk14tW7asZu9effXVcMYZZ4T58+e3KfvAAw+E+O+aa64J55xzTvjABz7Q5nj7neuuuy5cffXVIQaTy9vzzz8f4r+bb7453HTTTWHatGlh+PDh5cMeCRAgQIAAAQIECBAgQIBAItDdtWxea9C86jGNBAgQIECAAAECBAgQaCQBAeBeNJt33nlnuO2227rco/gN63iGcDn4O2HChHDAAQeE0aNHhzlz5oS77rorrFq1Klx44YUhlj3qqKOq1h0DvN///veTY4MGDQrxbN945m9LS0u49957k4D0vHnzwsknnxzion7EiBFV65FJgAABAgQI9JzA7rvvnlzlo30Le+21V/ss+wQIECBAoK4C3V3L5rUGzaueumJpjAABAgQINJnA+9///vDnP/+5YtRbb711RZ4MAgQIEMhPQAA4P8sNqikGWy+//PJu1fGzn/0sPVv40EMPDeeee24YOHBgUsdHP/rR8Oijj4azzjorCf5eeeWV4aCDDgqjRo1q08bixYvDFVdckeQNGzYsXHzxxWHPPfdMy5x44olJAHnWrFnhueeeCz//+c/D6aefnh6XIECAAAECBOojcMwxx4T4z0aAAAECBHqTQHfXsnmtQfOqpzdZ6gsBAgQIEGhEgfPOO68Rh2VMBAgQ6PUCG/X6HjZBB1tbW8M///M/h6VLl3b5PrtLliwJN954Y6IT79WbDf6WyeKZQjE/bvHSzuXy5ePxcebMmclZwjF90kkntQn+xrwBAwaE+CFdvo/wrbfeWvXso1jWRoAAAQIECBAgQIAAAQLNI7A+a9m81qB51dM8s2WkBAgQIECAAAECBAg0k4AAcC+Y7euvvz489NBDoV+/fuGUU05JexT3O9pmz54dVq5cmRw+4ogj0jN/25ePl4TeZpttkuwYAF6zZk2bIvGSWXEbMmRImDp1aptj5Z2NNtooHHvssclubDMGgW0ECBAgQIAAAQIECBAg0NwC67OWzWsNmlc9zT2DRk+AAAECBAgQIECAQKMKCAAXPLN//OMfww9/+MOkF8cff3zYY489utSjxx9/PC237777pulqiX322SfJfv3118PDDz+cFnnppZfCG2+8kezHyz6XLx+dFsgk9t5773Tv9ttvT9MSBAgQIECAAAECBAgQINB8Auuzls1rDZpXPc03a0ZMgAABAgQIECBAgECzCAgAFzjTq1atCt/61rfC6tWrw4QJE8JnP/vZLvdm3rx5Sdl4lvD222/f6fNi3eUt3se3vJXriPvZMuXj2cfNN988jBw5MsnK1pEtI02AAAECBAgQIECAAAECjS+wvmvZvNagedXT+DNlhAQIECBAgAABAgQINKvAgGYdeG8Y94wZM8L8+fOTM2+r3cO3sz4uWrQoOTx69OjkPr2dld1yyy3Twy+88EKaXrhwYZoeO3Zsmu4oEeuJZxHHy0C/9tprYdSoUR0VTfN///vfp2cZp5mZxPLly8Pw4cNDfFy3bl3miCQBAgQIECBAgAABAgQI9EaB9V3L5rUGzauejmzXrl0bbrnllo4Oh3g8rmPjPZCXLVvWYTkHCBAgQIAAAQIECBAgUJSAAHBB8g888ECYOXNm0vrnPve5MH78+C73JAZgy8HSeGZurW2zzTZLiyxZsiRNx6BreVuferoSAL7qqquS+xuX26n2OGbMmPD888+Ht99+u9pheQQIECBAgAABAgQIECDQSwQ2ZC2b1xo0r3o6Io1r0zPOOKOjw0l+XMfGQLAAcKdMDhIgQIAAAQIECBAgUJCAAHAB8DEIe9FFFyUtx3vvHnvssd3qRXaxO3jw4JrPzZZ566230vJ51ZNWKEGAAAECBAgQIEBgPQT+5V/+JTz77LNtnrnTTjuFk08+uU2eHQIEihWwli3WX+sECBAgQIAAAQIECBDoqoAAcFelcix32WWXJZdSHjZsWPjGN74R4n18u7OtWLEiLT5o0KA03VEiWyZ7lm1e9XTUrnwCBAgQIECAAAECXRG44YYbwr333tum6Pve9z4B4DYidggUL2AtW/wc6AEBAgQIECBAgAABAgS6IiAA3BWlHMv89re/Db/73e+SGk877bSQvT9vV5sZMOBv0xYvOVVrW7NmTVokGwzubj3ZtrL1pJVXSXz0ox8Ne++9d5Ujf8m67rrrkss/Z+vusLADBAgQIECAAAECBAgQIFCIQBFr2ew6MbsG7em17MCBA0O8VVNHW+zXtGnT0lszdVROPgECBAgQIECAAAECBIoS+FsksageNFG7L774YoiXt4vbIYccEj74wQ+u1+iHDBmSPm/VqlVpuqNEtkw867i8dbee7NnD2XrK9VV7rHV561tuuaXmPYKr1SuPAAECBAgQIECgcQTi78g/+clPwowZM5JBnXrqqeFTn/pU4wzQSAj0cYGi1rIdrUF7ei0bA8Cd3QN49erV4eyzz+7js6r7BAgQIECAAAECBAg0soAAcJ1mN35D+Nvf/nZYuXJl2HTTTcMXvvCFsHTp0orWs/fljYvKcpn+/fuHoUOHJuXLj3EnW76isr9mZC/1nA3cZtMbUk9H7conQIAAAQIECBAg0BWBffbZJ9xzzz1p0YkTJ4a99tor3ZcgQKA4gTzXsnmtQfOqpzhVLRMgQIAAAQIECBAgQKBnBQSAe9Y3rf3NN98Mjz/+eLK/ZMmScNxxx6XHOkrcddddIf6L27vf/e7wr//6r0l68ODBYeTIkcl9hFtaWpK8zv575ZVX0sMjRoxI02PHjk3TXamnXCYGo2MQ20aAAAECBAgQIECAAAECjS2Q51o2rzVoXvU09swZHQECBAgQIECAAAECzSywUTMPvi+Pfbvttku6H8/uXbx4cadDWbhwYXo8nk1R3saNG1dOhkWLFqXpaol4H+GXX345OTR+/PgQg9A2AgQIECBAgAABAgQIECDQVYG81qB51dPVfitHgAABAgQIECBAgACBvibgDOA6zdjGG2/cpfuYxW9X/8///E/Sq7ioPeigg5J09hvOMWOXXXYJDz74YHJs7ty5yT2Fk50q/z366KNpbnxeeZswYUKI9zaKl5qeM2dOObvq4xNPPJGUiwezdVQtLJMAAQIECBAgQIAAAQIEGkIgz7VsXmvQvOppiAkyCAIECBAgQIAAAQIECFQREACugtITWfG+vf/0T/9Us+oXXnghDQBvv/32HT7nkEMOCddee21S32233dZhADhe/vmRRx5Jyu20004hewno2Kf99tsvud/a/Pnzw9NPPx123HHHqn2MbZS3/fffv5z0SIAAAQIECBAgQIDA/2fvTuCunPP/j7/vtru0aJNKJcqSiol+kZKUlIjGECZlr0xpss5YxzIm2UqWf9kZWyK0oAxRmoYIEaJop6Rd2vtf3/s45z73fb7Xuc9yneU653U9Hvfvvs53/z4v83t03Z/z/X4RQCCHBbx8l/XqHdSrdnL4sTE1BBBAAAEEEEAAAQQQyHMBtoD26X8ABx10kExA11wffPCBwgO0wSlt27ZNd955p3bt2lWU1Ldv32BW6Pepp54aur/77ru1adOm0OfgzezZszVlypSij2br6fbt2wez+I0AAggggAACCCCAAAIIIIBAzAJevYN61U7MA6cgAggggAACCCCAAAIIIOAjAQLAPnpYpYd6xRVXhJLuuOMOPf3001q5cqXMeb1m2+errroqtE202bb5+OOPD5UP3nTo0KFoFbD5/M0332jo0KH65JNPZILHP//8s8aPH6/rrruuKIhcUFCgQYMGyfzmQgABBBBAAAEEEEAAAQQQQCBeAa/eQb1qJ97xUx4BBBBAAAEEEEAAAQQQ8IMAW0D74Sm5jLFly5a69dZbNXz4cG3dulWPPfZY0U/58uVDq35N1f32208jRoxQuXL2eP/NN9+sW265RXPmzNHChQs1bNgwlW7DtDNkyBCx/bOR4EIAAQQQQAABBBBAAAEEEEhUwKt3UK/aSXQe1EMAAQQQQAABBBBAAAEEslXAHhHM1tEyrgiBLl26aOzYsUXbQQcDvMEtnytUqKCzzjqrKL9mzZoRdYMJNWrU0D333KN+/fqpevXqRcnBNsyHAw88UHfddZf69OkTrMJvBBBAAAEEEEAAAQQQQAABBBIS8Ood1Kt2EpoElRBAAAEEEEAAAQQQQACBLBZgBXCWPZwmTZpo5syZcY3KBGjN6l+zCvi7777TqlWr1LBhQ5m2qlWrFlNbJng8YMCAoh+zjbRpp7CwUI0bN1aDBg1cVw/H1DiFEEAAAQQQQAABBBBAAAEEclog3ndZr95BvWonpx8Ok0MAAQQQQAABBBBAAIG8EyAAnEOPvHLlymrdunXRTzLTMsFj88OFAAIIIIAAAggggAACCCCAQKoFvHoH9aqdVM+X9hFAAAEEEEAAAQQQQACBVAuwBXSqhWkfAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQSJMAAeA0QdMNAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICA/wV++kkaM0b64oviudx9t/S//xV/5g6BTAqwBXQm9ekbAQQQQAABBBCIUeDrr7/W8uXLI0rXr18/6eMfIholAQEEEEAAAQQQQAABBBBAAAEPBGbOnKmtW7dGtNSqVSs1aNAgIp0EBLJdYNs26eabpdGj5fy3XXK0Dz0kmZ9OnQK/nf/MuRDImAAB4IzR0zECCCCAAAIIIBC7wHPPPafx48dHVOjZs6dGjhwZkU4CAggggAACCCCAAAIIIIAAApkWuP7667V69eqIYYwYMUK9e/eOSCcBgWwWWL9ecv4Mo9mzo49yxgypfXs5f8eRevSIXpZcBFIlwBbQqZKlXQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAd8L7NkjnXNO2cHf4EQ3b5bOOkv68stgCr8RSK8AAeD0etMbAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIICAjwScjdk0dWp8AzZB4L/8Jb46lEbAKwECwF5J0g4CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDOCTi7lid0Ocdgl7lldEINWyqZgPNrrxVnmN3X331X2rmzOI27/BHgDOD8edbMFAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIA6BxYuT28rZbB3drZt00EFS8+aBn2bNpGrV4hhElKIm8PvPf0qjR0u//VZc8Mcfpa5dpX33lf7xD2ngQKkcy0KLgXL8jgBwjj9gpocAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJCYwIIFidUL1lq6VHr88eCn4t8NGhQHg0sHh/feu7hctLslS6RTTpHmz3cvtWpVYCvqt96SXnhB2msv97Lk5I4AAeDceZbMBAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwEOBTZs8bCysKbNC1/yYbaJLX/vsU7xaOLhqOPi7du1A6Y0bpZNPlr7+unRt++eJE6X+/aXx46WCAnsZUnNHgABw7jxLZoIAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIOChQP36HjYWY1M//yyZn9mzIyvUqhUIDm/YIH37bWR+tJRXXpGef17q2zdaKfJyQYDdvnPhKTIHBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABzwX+8AepsNDzZhNucN06ac6c+IO/wQ5vuy14x+9cFiAAnMtPl7khgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggkLFCtmtSrV8LVs66iWTX85ZdZNywG5LEAAWCPQWkOAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgdwRuvVWqkMChqiecIF1+udSjR2Db5ooVs8Pkiy+yYxyMInUCCfznmrrB0DICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC2SRw2GHS/fdLgwfHPqqjj5befLPk9tG7dkmLF0sLF0b+/PCDtG1b7O0nU/KXX5KpTV0/CBAA9sNTYowIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIZE/jLX6QpU6Q33ih7CN26SePGlQz+mlrly0vNmgV+uncv2c7u3dKyZZGBYRMsXrRI+u23kuWT+VS3bjK1qesHAQLAfnhKjBEBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCjAj/+GL17s1L4b3+TzjtPKhfnIaym/P77B366di3Zz5490ooVxcHhCRMCq4tLlor90xFHxF6Wkv4UIADsz+fGqBFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBNIkYFbnfvqpe2czZkjHHeeen0xOQYHUqFHgp3NnqXfvwH0iW0a3aCGZH67cFojz+we5jcHsEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEECgt8PrrpVNKfm7SpOTnVH4yWzibLakTuW65JZFa1PGbAAFgvz0xxosAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJBWgbICwGkdjNPZbbdJrVvH1+u550p9+sRXh9L+FCAA7M/nxqgRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTSILBxo2S2eM6mq1q1wDnAbdrENiqz7fMTT8RWllL+FyAA7P9nyAwQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRSJPDGG9L27SlqPIlm99tP+uADyWzrXKNG9IbKORHBypWjlyE3dwQIAOfOs2QmCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACHgu4bf9cWOhxRwk0t9de0j/+Ia1aJbmN0zQ7f770ww8JdEAVXwoQAPblY2PQCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACqRbYsSOw1bKtn332saVmJs2s7u3ePXrfr70WPZ/c3BEgAJw7z5KZIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIeCjw3nvShg32BuvVs6dna2q0FcLZOmbGlZgAAeDE3KiFAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQ4wJuQdPq1aXatf01+VmzpHXr/DVmRpuYAAHgxNyohQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkOMCkybZJ3jyyVI5n0XZdu6UJk+2z4fU3BKokFvTYTYIIIAAAggggEBuCjRv3lwdOnSImNyhhx4akUYCAggggAACCCCAAAIIIIAAAtkg0K5dO2e1YeRyw3p+2zc3GzAZQ0YE5s6Vli61d3366dLTT9vzsiG1YkXJnF9c+po4UerXr3Qqn3NNgABwrj1R5oMAAggggAACOSlwwQUXyPxwIYAAAggggAACCCCAAAIIIOAXgXvvvdcvQ2WcCFgF3LZ/ruBE18wK4GwOAO+9t7RmTeS0pk6Vtm+XKlWKzCMldwR8tjg9d+CZCQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQPYKuAWAjz9eqlUre8dtRlajhn18mzZJ775rzyM1dwQIAOfOs2QmCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACHgiYrZ8//9zekNn+OduvatUkswrYdrkFtm1lSfOnAAFgfz43Ro0AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJAigddec2+4Vy/3vGzJKSiQeva0j2byZHs6qbkjQAA4d54lM0EAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEPBAwG2V7B/+IDVt6kEHaWjCbaXy8uXSxx+nYQB0kTEBAsAZo6djBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBbBNYv16aOdM+Kregqr10ZlN79JAqVrSPwS3AbS9Nqt8ECAD77YkxXgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgZQJTJki7dhhb95PAWBzBnDnzvZ5TJxoTyc1NwQIAOfGc2QWCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACHgi4rY5t1Ehq08aDDtLYhFvAet48acmSNA6ErtIqQAA4rdx0hgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkK0C27dLU6faR9e7tz09m1NPPdV9dG6Bbvca5PhFgACwX54U40QAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEipwPTp0saN9i7cVtPaS2dH6v77u69aJgCcHc8oFaMgAJwKVdpEAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDwnYBbULRGDen44303naIBn3aafdwzZ0obNtjzSPW3AAFgfz8/Ro8AAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIOCRwKRJ9oZ69pQqVrTnZXuq28rlHTukKVOyffSMLxEBAsCJqFEHAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgpwQ+/lhavtw+Jbcgqr10dqW2aSM1amQfk9uKZ3tpUv0iQADYL0+KcSKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCKRMwC0Yalb+nnxyyrpNS8NuAeypUyWzEpgrtwQIAOfW82Q2CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCQi4BYA7d5b23juBBrOoits5wOYM4OnTs2igDMUTgQqetEIjCCCAAAIIIIAAAggggAACeSVw5ZVX6v333y8x50MOOUTPP/98iTQ+IIAAAggggAACCCCAAAJ+EFi8WPriC/tI3VbP2ktnZ6oJYlevLm3aFDm+iROlk06KTCfFvwIEgP377Bg5AggggAACCCCAAAIIIJAxgUWLFmnu3Lkl+t+9e3eJz3xAAAEEEEAAAQQQQAABBPwi8Npr7iPt1cs9zy85lSpJPXtK48ZFjnjSJOnBByPTSfGvAFtA+/fZMXIEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEPBNy2fz7ySKlJEw86yIIm3LaBXrpU+vTTLBggQ/BMgBXAnlHSEAIIIIAAAggggAACCCCQGoFPPvlEr7zySkTjf/vb35xzqDJzENX48eP173//W5dccknRuG6++WZdd911EWMkAQEEEEAAAQQQQAABBBDIdoF166QPPrCPMhe2fw7O7OSTpQpOZHDnzmBK8W8TAG/Tpvgzd/4WIADs7+fH6BFAAAEEEEAAAQQQQCAPBD7//HMNHz48YqaDBg3KWAC4krN/WGFhYWhM5nPlypVDn7lBAAEEEEAAAQQQQAABBPwiMHmyPShqxp9LAeBataROnaR33418MiYAfMstkemk+FOAALA/nxujRgABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQ8EDAbftns/XzEUd40EEWNWEC2rYA8GefScuWSY0bezfYq666SlOnTi3RYLNmzfS6G3iJknxIRoAzgJPRoy4CCCCAAAIIIIAAAgggkAaBrl276tlnnw311Lx5c02YMEH77LNPKI0bBBBxdNUXAABAAElEQVRAAAEEEEAAAQQQQACB+AW2bZOmTbPX693bnu7n1F693EfvdVx2mRNRnj9/fomfhQsXug+AHM8ECAB7RklDCCCAAAIIIIAAAggggEBqBPbff3/1CntLr+Xs2/XHP/5RVapUSU2HtIoAAggggAACCCCAAAII5InAO+9ImzbZJ5tL2z8HZ3jAAdLhhwc/lfw9cWLJz3zyrwABYP8+O0aOAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQhIDbqteaNaXjjkui4Syu6hbYfv99aeNG7wb+4osv6oUXXgg1eOONN+qLL74IfeYmdQKcAZw6W1pGAAEEEEAAAQQ8E1iyZIl+/vnniPZq166tAw88MCKdBAQQQAABBBBAAAEEEEAAAQQyLTBv3jxt3749YhgHOEsQ69SpE5FOAgLpFtizR5o82d7rKadIFSva8/yeetpp0u23R87C/M/1zTels8+OzEskpVy5cjI/wav052A6v70XIADsvSktIoAAAggggAACngs8+uijGj9+fES7PXv21MiRIyPSSUAAAQQQQAABBBBAAAEEEEAg0wKDBw/W6tWrI4YxYsQI9c7Fw1UjZkpCtgvMmSOtXGkfpdsqWXtpf6UedZTUsKF97mZFtFcBYH+p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qLL4pZfMpkwx697dTBXIyk+ZuujEMqrff/no3L3/vtlXX5mpC5ENN8w/+bTccontuuSGZ8wwpyWS2SOPmH3yiVm7dmbKx4gRZrvuas7T8CVXTWzGZ5+Z3X232fPPm02aZNatm5luuHbc0Wzo0MR2W3bDThsRu+ces3feMZOZ03O8mxc9sbbCCmVXTWTmrFn5/Dz4YP49merUQDeuW2xhtttuZj16JLLbshsdM8bsttvMnn7a7PPPzZyfWhs0yGz77fN/c/pNqHd69dX89/vNN82++MKsd29zfvvzRvpO1Tvpt/v++81Gjzb76COzb781W3rp/O+R/t569qx3jvIFHX2PnnzSbOJEsy5dzAYONNt22/T+3vR7XSxNm1ZsKtOyIjDL+WF66KGHCrKz3377FUzThDlzzH772/wTvUUXCEzcZx+zK6/M/64EJjOIAAIINIVAo5Vlda+v7v6dordbbuzQYUG5UWVZldnqnXTPqMrdF180p4F4Pg+rrJK/h1V5VmWkeibd26vM+K9/mfPqqny5sW9fsx/9yGyPPcx5hVU9c5Pfl8pAKls//HC+3Kipeoeiyo0qE6Vx3lQ2U/nj2Wfz5UaVXVdayWyHHfL/9N2qd1IZVk+Jvf222Zdf5suN666bN1LZqN5JDexUtn7gAbNx48zmzs2XG523n7nnTeWjeienys09b//5j5l+DxZZJF9u3G67/N+c87xGXZPqaeSjehHVIanMIZe11sobqYxd7/Tdd2b33psvO6rcqPvmfv3MfvKTfJ5Uj1TvpHN1++1mTzxhzuv08q9iGTAgX27caad8ObLeeXI6c3T/3l55xUx1knqOR7+PqvPTb0G9k/6+dK6KpVJl3GLLMq1+Akcema8fuvzyfJ32Bx/k963rx2abmelJ4X33NevYsX55Yk9tW2ApJ0Cz4oortjiI5dMI1LTIQZOMOJF3UhMLON0+5zbZZBP33z//+c+iEk630Llf/epX7jIjRozIORWZRZerZuIWW2zh3FKa/2/MmDHVbMZd58EHc7lBg3SLWvxfp0653FFH5XJz5lS9i1gr/vBDLnfeebncYosVz4/yufTSudytt8babKsWnjIll9t991yuXbvSedpoo1zuzTdbtZtYK7/4Yi637rql86PzdsQRudzs2bE226qF/+//crklliidp969c7mrr27VLmKt/M03udyx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IIBAGxEgANxGThTZRAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBCoJEACuJMR8BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoI0IdGwj+SSbCCCAAAIIIIBAUwtceumlNnr06AKDzTbbzEaOHFkwnQkIIIAAAggggAACCCCAAAIIpC2w11572dSpUwuycfzxx9uIESMKpjMBAQQQQKA2AgSAa+PIVhBAAAEEEEAAgUQFpk2bZh9//HHBPiZPnlwwjQkIIIAAAggggAACCCCAAAIIZEHg008/tWLl1lmzZmUhe+QBAQQQaFgBuoBu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJEAButjPO8SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQMMKEABu2FPLgSGAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQLMJdGy2A+Z4EUAAAQQQQACBtihw2GGH2T777FOQ9cUWW6xgGhMQQAABBBBAAAEEEEAAAQQQyILAddddZ3Pnzi3IylJLLVUwjQkIIIAAArUTIABcO0u2hAACCCCAAAIIJCagwjEF5MR42TACCCCAAAIIIIAAAggggEACAoMGDUpgq2wSAQQQQKCSAF1AVxJiPgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIINBGBAgAt5ETRTYRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBSgIEgCsJMR8BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBoIwIEgNvIiSKbCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQCUBAsCVhJiPAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIItBEBAsBt5ESRTQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKCSAAHgSkLMRwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBNqIQMc2ks+GzOaMGTPstttus/fee8/Gjx9vU6dOtX79+tmyyy5ra621lu26667WqVOnisc+b948Gz16tD3yyCP26aef2uzZs23w4MG2xhpr2IYbbmirrLJKxW1ogQkTJtgNN9zg5kfDffr0sdVXX93dzuabb24LL7xwpO2wEAIIIIAAAggggAACCCCAQOMK1KosW6syaK2207hnjCNDAAEEEEAAAQQQQACBZhNol3NSsx10Fo739ttvt2uvvda+/vrrktlRIPj444+3IUOGlFxmypQpduyxx9pHH31UdJkOHTrYyJEjbauttio635t4yy232FVXXWUKJhdLq622ml144YW22GKLFZtd9bThw4fbo48+6q8/ZswYGzRokD/OAAIIIIAAAggggAACCCCAQHYEalWWrVUZtFbbiSP8/fff20ILLeSvojKsyrIkBBBAAAEEEEAAAQQQQCArAgSAUzgTDz30kP3hD3/w97zBBhu4T/z26tXLfRL4qaeesnHjxrnzVai85pprbMCAAf7y3sCsWbPssMMOs7Fjx7qTVOjceOONrXfv3vbqq6+atvPdd9+5844++mj3iWJv3eDnfffdZ+edd547SfvT07568nfy5Mn2zDPP+NsfOHCgXXrppbbEEksEV2/VMAHgVvGxMgIIIIAAAggggAACCCBQN4FalWVrVQat1XbiAhIAjivG8ggggAACCCCAAAIIIFBvAQLAdRafOHGi7bfffvbNN9+Yns4988wzbdNNN22Ri7lz59oVV1xhd955pztdgd2rr77aOnZs2WO3llEX0kqbbbaZnXLKKS26jH799dfthBNOMAWKta877rjDFGQOpunTp9tPf/pTN1C86KKL2rnnntviiWPl5ayzzvKf0t1ll13smGOOCW6iVcMEgFvFx8oIIIAAAggggAACCCCAQF0EalWWrVUZtFbbqQaPAHA1aqyDAAIIIIAAAggggAAC9RRoX8+dsS9zA6kK/irttddeBcFfTVeg94gjjvDf3fvBBx+47+XVPC/NnDnT/vWvf7mjeldvOPirGWuuuaY7XcPq2tlbXuNeUvdd3lPCv/nNb1oEf7WM8nLqqaf6eXnggQfcdwx76/OJAAIIIIAAAggggAACCCDQ+AJ6dU8tyrK1KoPWajuNf+Y4QgQQQAABBBBAAAEEEGhGAQLAdT7r6prZSzvuuKM3WPCpJ3aHDRvmT3///ff9YQ08/vjjfuF75513bvHkb3BBdQmtdwkrKQCsJ3qDSV1mKS288MK27bbbBmf5w+3bt7c99tjDHVeBX0FgEgIIIIAAAggggAACCCCAQPMI1KosW6syaK220zxnkCNFAAEEEEAAAQQQQACBZhIgAFzns63356666qpuULZv375l996zZ09//pQpU/xhDbz5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CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQA4F2OSfVYDtsAoFMCYwdO9Zmzpzp52nVVVe1zp07++P1HtCf2auvvurvtkuXLjZ48GB/PI2B6dOn27hx4/xd9+3b1/r16+ePpzHw8ccf2xdffOHvesUVV7SuXbv642kMvP766zZv3jx31x07drQ11lgjjWz4+/z6669tzJgx/njPnj1tueWW88fTGBg/frxNmTLF3/XAgQNt8cUX98fTGHjrrbfsu+++83c9ZMgQfziNgW+++cbeffddf9fykVOa6fPPP7fPPvvMz8Lyyy9vSyyxhD+exsB7771ns2fP9netvzf93aWV9B3Sd8lLiy66qK200kreaCqfU6dOtU8//dTft3639fudZuKaW1k/i9dc3QMoX17imutJLPjkmrvAotxQ1q655fLKPATagsArr7ziZ1NlWJVl00wzZsywDz/80M9C7969bZlllvHH0xj45JNPbNq0af6us3YN69Chg6255pp+/tIYCF/DdJ+v+/0004QJE2zy5Ml+Fvr37289evTwx9MYeOedd2zOnDn+rtdee21r166dP17vAeVFefJSt27dbIUVVvBGU/mcNGmSTZw40d/3sssua7169fLH0xh4//33bdasWf6uV199devUqZM/Xu+BuXPn2htvvOHvdpFFFrGVV17ZH09jQL+R+q30UhbLjaussootvPDCXhZT+czaNffLL7+0jz76yLfgmutTtBgI1tVyzW1B44+Er7kDBgyw7t27+/PTGOCam4a6GQHgdNzZKwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFBzAbqArjkpG0QAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQTSESAAnI47e0UAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRqLkAAuOakbBABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBIR4AAcDru7BUBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCouQAB4JqTskEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAgHQECwOm4s1cEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECg5gIEgGtOygYRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBdAQ6prNb9opA4wt89913ttBCC8U+0BkzZti3337rrtenT5/Y67dmhalTp9qECRPsm2++sRVXXNF69uzZms3VZF3lZ/Lkye621l57bWvXrl1Ntht3IzL56KOP7MMPPzSdo2WXXdaWW24597NDhw5xN1ez5efNm+eeMzkttthittRSS9XsvOl7+J///MfNq+x79epVs3zXe0Nz5851z5+cunTpYiuttJItscQSiWYjl8vZ+PHj3e/L119/bV999ZXpfHXt2tX/169fP1tkkUUSzUd44zqvkyZNsjlz5rj/lKdFF13UzZM+F1988fAqTTXeFn+7632Cvv/+e+vYsWPs32P9HX7xxRdudvVd0796pSxe3/S39/rrr7sEffv2Nf0epJH0W/X555+717dx48a515Lll1/e+vfvn+rvQZLXNzm/88477vVTv3lDhw5Ng74m+0zj+qaM65r22WefmXd9mz17tnt99a4n3bt3T+07XRNYNoJAkwu0tfsh5Vf33fpd6t27tw0cONC9V0nzNGblOi+DrJZldS1RGVv5U93H0ksvXVUdSrHz3EhlWd0/6x5Nn7pHGzBgQOLf76xe5ynLFvu2L5jW1n67F+S8fkNt0SiLZVnqast/Z5MsyzbS9S2NsmxW62rLf6NaN7edc9C51m2CtRFAwBN4/PHH7b777rP33nvPvvzySzdAOHjwYNtxxx1tzTXX9BYr+/m73/3O/vvf/7rLeMG3sitEmKkbHFXuqjKuW7duBWuMHTvWrrrqKnv22WdbzFMA+Oc//7ntsccesSv6W2yoFSOXXXaZ3X777e4W5KugQy3S//73P9NxK+n8KChYLCnQccMNN9jf//53N3gXXkaB4N/85jf24x//ODyrVePKn86/gnQnnnhiwbaUd9m88cYbpjwGk75z22+/vfuvffvqO3qYMmWK7brrru6m9V34wx/+YGussUZwV6kPq2D6/vvv2yeffOIGqNdZZ52CoNIDDzxg1113nU2cOLFFfpdcckk79thj7Uc/+lGL6a0deeKJJ0zf1Zdfftn9HSi3PZ2fFVZYwf19GDFihK222mrlFq963ttvv23//Oc/7bXXXnMrxspd+vU7seqqq9rqq69u2267bc0aFFSd+TqsmNXf7joceuRd6Jp27bXXugFLVUDpN3OVVVaxIUOGuNeJzp07V9yWro2/+tWv3OX2339/O+CAAyquU2mBtnx9U+Bsm222cQ/xl7/8pR100EGVDjfSfF03/vWvf7nL6vdl3XXXLbmefj/PPfdc++CDDwqWUeOmHXbYwT1PPXr0KJhf7YQsXN+U9/PPP9/uvfde9zB0nEcffbR16tSp2sOq+XpZvL6p8unOO++0l156yb3XLXctEYiC67pv0Hdwu+22s4UXXrjmTmwQAQRqJ5DV+6Hp06e7DSoV+Ao3BlYFq8qKN910U4v7bpUZ11prLTvuuONsmWWWqR1SjC0ldZ1XFrJcltU94yOPPGLPPfecew+hckUwqbL31ltvtTvuuMOmTZsWnOU2SN1ss81szz33dBtat5gZcyTrZdkffvjBPv30U/d6qvK8GuCrkXIwqSH8X//6V3v44YdNy3tJ3+/hw4fbUUcdVVD29Zap5jOr13nKsuXPZlZ/u8vnur5zs2rUlsuy1NVSV1vurziLZdks1tWWM6zlPALAtdRkW00roBarF198sT344INFDVRQ/dnPfmYHH3ywVaokr2UAWD+4V155pSkAphsLBZsUYFKgaZdddnHzqkDi4Ycf7j7BUTTzzsT11lvPTj755FQCQUndVFx00UV2zz33uIeswFixp50VND/hhBPcVsmlbLzpCiKqEr21AWq15PrTn/5k//73v91Nq/J+1KhR3m7cz6uvvtqt5FCFR7mkStfTTz/dbU1dbrlS84KFZi2jY1MFuQLmaSdVHCioq+B8sAJaT0EfeeSRtvXWW7tZ1HwVmssl/S3ouMIVSuXWKTZPTx0ooPDqq68Wmx1p2kYbbWSHHnqo27I70goVFlJBRxViCrxVkxQMUYBKjRz05HKjpaz+dmfN+cUXX7SzzjrLf3o3nD9VrI4cObJiQ6daBoAb4fqWVMWwng7Zaaed3NOk3+vjjz8+fMrccf026HpS6VqioJ0aAG2wwQZFtxN1Ypaub8pzMACscd0f6Xuedm8XWby+yee2226zv/3tb+5TWhqPm9S4SA0dfvrTn7b6eht33yyPAALlBbJ6P6TGsPrd8Rrtqvcelbl+8Ytf+EHd8847z22AXeoIdQ3Tfb7X4KrUcklMT+o6r7xmtSyrxqannXaaH9g9++yzbdNNN/V59bSv5uuzXFJPaqqj8Oosyi1bal6Wy7JjxoyxM844wz7++OMW2Ve9y5lnnun2xqL8yyDciDm4gnqQ0b2LGmW2NmXxOk9ZtvxZzepvd/lc13duVo0aoSxLXS11tcX+mrNYls1iXW0xuySn1eZRuiRzyLYRaAMCCjAFg796MkpPy6gLKiUFqP7xj3+4T9iqsFaPbh5V0apgsp4Q9ZJajWrcm6YClQoeKpwqKTitgKPyrkKZV9jQkx4qWFx66aXepmJ96ubG6/Yz1orOwjNnzvRXUQvZ8BOterpElYq1TjpnKrAGC6dqlTto0CBTQUvBYT0F9+6777q7VgvnK664wm2F25q8qMD31FNP+ZtQl4rBpMCwnkb2ko5f+VJ3WXLWhU0FSuVf51kB7L/85S81eepGF/ILL7zQ1GpKT85qn2kk5UNBXu97HMyDDM455xy30KxgcDD4q6fwZSUbGXnr33333e55bU1gW10qH3HEEaZW015SowJ1ya3vvr4vXqttBXlVSNc0/VOllroVV9LT/8rXH//4x4IW4N52o37qu3LBBRe0WFx/43ryWV3jqetpVa7oKT81ENFvhvKqY9GTFkpqja4nCd988023oknrNVLK4m931nz1ffj973/v9kbg5U2/gfptVoFaSb87qqA68MADbd999/UWS+wzS9c37/grBVGLYQR/3/UbEK4E1Dp62imJpCeH1EDMS2rgod9IvdpAv5G63r711lvub5POs+4VFCxuze9+lq9vctDx7rPPPm5jvZ133rngfsOzSvIzi9c3Ha8CMMHGaLp2qOGHGgnp73/WrFkui64xCvLq+6zrm+4jvafL9USYKoo0rvvT8P1ckq5sGwEEygtk8X5I5aFTTjnFv3/WEeg+9f7773fvldV7la5l6n3LS7rHVdfPKg/ot0bXL/1T2UDlbz0RXE3S71xbu86nUZZVQ7/f/va3LayC9zo6FyeddJJ7j+GdB5XN1KOWym3qTlTnTdcLlU0uueQStwzrNez11qn2Mytl2aefftr9bis/4aR6Fz21rvK7vrdefYzKlbpP0/dY09TgWOU13acroK76gUoPGoT3FRzP4nWesmzwDBUfzuJvd/Gcpjc1i0ZZKstSVxv9u5nlsmxWrm9ZLMtmsa42+reudksSAK6dJVtqUgEFku666y736BU4VcBNAR5VbCmwquCJbshVOaYKVQWJLr/88kSDwCqgnnrqqX6ASxW7Clyq0KVClebr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pdW29pWiA7h9fnwaAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQMCPQxUwkBIIAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0C6Bru36NB9GoAEEXnzxRffd737XR3rggQe6CRMmFB71dddd5/7whz/4OM4777xc70Nc74+zFhN5S8skeYs7UZca04i8kbe4QFoJa+2korYWE8tbY9Yli3mzGFNadimFgE0Ba+sLKVmLyWK7Y82IvKUt39SluJNFI4sx0QY0Zl0ib+QtLpBWwlpdsthOWozJWt7Salu8FFcAx40o0eAC69atc3feeaf/98QTT5j4NfPnzy/FtGnTJmKqIEDeKqBUeMlaXbKYN4sxkbcKlbnsJfJWBlLhqUUjizFZW96USmsxkbcKC1iFl8hbBZSylyzWpbIQeYpAQwlYa3eEZy0mi+2ONSPylrbYU5fiThaNLMZEG9CYdYm8kbe4QFoJa3XJYjtpMSZreUurbfFSdADHjSiBAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIINIQAHcANkSaCRAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBOICdADHjSiBAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIINIQAHcANkSaCRAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBOICdADHjSiBAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIINIQAHcANkSaCRAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBOICXeNFKIFA4wtss802/kd06WLjnIempiYXYtJjC5PFmIIReateQ8hbdZvsO9SlrEblx9aMFKW1mFjeKted8lfJW7lI6+fUpdYm5a9YNLIYk7XlTXm0GFN5/eI5Ao0iYLHdsRiTtXbHopHFmKzlTe2CtZjIW1prTd7iTtSlxjQib+QtLpBWwlo7qaitxWRxeUvLbu1STVubp9pFeBcBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBEEbFwO2QhSxIgAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggYF2AIaOMJIrx0gXXr1rlly5a59evXOz1+9dVX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b48YMaJasZqv77XXXv79O++804UDpDU/UOPNdevWuW9+85u+xLbbbusGDx5co3T1t6zFRN6q5yr7DnnLalR+TF2q7JJ91aKRxZhY3rK1pvJj8lbZpfxV6lK5SOvn1owUobWYLC5vFmNqXbt4BYHGEbDW7kjOWkwW2x1rRuQtbZmnLsWdLBpZjIk2oDHrEnkjbxxjj9cBlcijb4S2O826qFLbfKl5KurL+V4E2irQt29ft3z5cvf000873R/3D3/4g9tzzz3dgAED2jQrDa184403uquuusp/rn///u7cc891ffr0adN8VHjo0KHulltu8Z3R9957r1PH7bBhw0rDOKfOUL9p6tSp/jfpMyeffLI76KCDUj/eopy1mMhbi/RUfULeqtKU3qAulSiqPrBoZDEmlreqVaj0BnkrUdR8QF2qyePftGakoKzFZHF5sxhTvLZRAgG7AtbaHUlZi8liu2PNiLylLePUpbiTRSOLMdEGNGZdIm/kjWPstetAnn0jtN21rYt+t2lr81R0EHw/Am0RePnll90555zjli5dWvrY7rvv7g488EA/DMqgQYNc7969XY8ePXwn7ObNm50atdWrV7sVK1a4RYsWuccee8xt2LDBf173/rviiivcqFGjSvNr64MbbrjBTZ8+vfQx3UBd81PntK7iVQe14unevbsf3lkx6fs1Rv4LL7zg5s2b55599tnS50ePHu2mTZvmunSp/yJ9azGRt1J6az4gbzV5/JvUpcY0Im/kTQKscztnO4DlLb68qQTr3LiTxboUj5oSCNgVsNbuSMpaTBbbHWtG5C1tGacuxZ0sGlmMiTagMesSeSNvEuAY+zauM/pGaLvjy1tRJegALkqe722XwCuvvOKmTJniFixY0K756GrdyZMnu3HjxrVrPvqwhky4/PLLfaPanpkdcsgh/kpg3Ti9vZO1mMhbWkbJW9yJutSYRuSNvLHOjdeBvLYDWN7i1irBOjfuZLEuxaOmBAJ2Bay1O5KyFpPFdseaEXlLW8apS3Eni0YWY6INaMy6RN7Im64E5hh79XqQZ98IbXd15yLfoQO4SH2+u90CDz74oLv++uv9fXzfeOON5PkNGTLEHXXUUe7EE09s8/DRtb5EVxn/9Kc/9TvQuvF56tStWzenA77HHXecGzt2bOrHkspZjIm8xVNH3uJGKkFdijtZMyJv8ZxZ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AggggAACCCCAAAIIIIAAAggggAACCCBQuAAdwIWngAAQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBfAToAM7HkbkggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAChQvQAVx4CggAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyEeADuB8HJkLAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggULgAHcCFp4AAEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgXwE6ADOx5G5IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAoUL0AFceAoIAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEMhHgA7gfByZCwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFC4AB3AhaeAABBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIF8BOgAzseRuSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKFC9ABXHgKCAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIR4AO4HwcmQsCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQuAAdwIWngAAQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBfAToAM7HkbkggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAChQvQAVx4CggAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyEeADuB8HJkLAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggULgAHcCFp4AAEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgXwE6ADOx5G5IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAoUL0AFceAoIAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEMhHgA7gfByZCwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFC4AB3AhaeAABBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIF8BOgAzseRuSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKFC9ABXHgKCAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIR4AO4HwcmQsCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQuAAdwIWngAAQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBfAToAM7HkbkggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAChQvQAVx4CggAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyEeADuB8HJkLAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggULgAHcCFp4AAEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgXwE6ADOx5G5IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAoUL0AFceAoIAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEMhHgA7gfByZCwIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIFC4AB3AhaeAABBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIF8BOgAzseRuSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKFC9ABXHgKCAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBDIR4AO4HwcmQsCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQuAAdwIWngAAQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBfAToAM7HkbkggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAChQvQAVx4CggAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyEeADuB8HJkLAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggULgAHcCFp4AAEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgXwE6ADOx5G5IIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAoUL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AggggAACCCCAAAIIIIAAAggggAACCCCAQKUCBIArlWM9BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoMEECAA32AkhOwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEClAgSAK5VjPQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKDBBAgAN9gJITsIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBApQIEgCuVYz0EEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgwQQIADfYCSE7CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQKUCBIArlWM9BBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoMEECAA32AkhOwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEClAh0rXZH1EEhD4OOPPzbfffddsKkllljCdOzIZRmAMIAAAggggECMQC6XMz/99FPenDnmmMN06MD7fXkwTEAAAQQQQKBCgW+++cZ8+umnwdoLLLCAWXDBBYNxBhBAAAEEEEAgXmDmzJmxM+acc87Y6UxEAAEEEEhXYA77ADGX7ibZGgLJBTbeeGMzduzYYIVJkyaZFVZYIRhnAAEEEEAAAQTyBa666ipzxhln5M3o3bu3uf322/OmMwEBBBBAAAEEKhMYPXq02XXXXYOVjz766Njf4GABBhBAAAEEEEDATJ8+3ayyyiqxEjfccIMZOHBg7DwmIoAAAgikJ0AVkfQs2RICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCBQVwECwHXlZ+cIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAegIEgNOzZEsIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAXQUIANeVn50jgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAAC6QkQAE7Pki0hgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACdRUgAFxXfnaOAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIpCdAADg9S7aEAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII1FWAAHBd+dk5AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkJ4AAeD0LNkSAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUFcBAsB15WfnCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQHoCBIDTs2RLCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQF0FCADXlZ+dI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAukJdExvU2wJAQQQQAABBBBAIAuBNddc05x88sl5u+ratWveNCYggAACCCCAAAIIIIAAAgggkKXA3HPPHVtmVR6WWmqpLLPCvhBAAIG2FSAA3LanngNHAAEEEEAAgWYV6NOnj9E/EgIIIIAAAggggAACCCCAAAKNJtCpUyezyy67NFq2yA8CCCDQVgI0Ad1Wp5uDRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBVhYgANzKZ5djQwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBthIgANxWp5uDRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBVhYgANzKZ5djQwABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBthLo2FZH22AH++WXX5rrrrvOvPrqq2bKlCnmk08+MT169DBLL720WWmllcz2229vOnXqVDLXM2fONPfcc4954IEHzLvvvmu++eYb07dvXzNgwAAzaNAg06dPn5Lb0ALvvfeeufbaa738aLh79+6mf//+3nY22mgj06VLl0TbYSEEEEAAAQQQQAABBBBAAIHWEHjiiSfMmDFjvDKryq0dO3Y0PXv2NMsuu6zZdtttTa9evRIdaBrlzbTKvokyzEIIIIAAAggggAACCCCAQBMLzJGzqYnz37RZv+GGG8wVV1xhpk+fXvAYFAg+8sgjzS9/+cuCy3z88cdm2LBh5s0334xdZs455zTHHHOM2WyzzWLn+xNHjx5tRo0aZVSgjkv9+vUzI0aMMPPPP3/c7Iqnbbzxxmbs2LHB+pMmTTIrrLBCMM4AAggggAACCCCAAAIIIIBA9gJTp071yoDPPvtswZ136NDBe3F5//33L/rCcBrlzbTKvgUPpsAM5X3XXXcN5h599NHmjDPOCMYZQAABBBBAAAEEEEAAAQQaUYAawHU4K/fff7/529/+Fux5jTXW8Gr8Lrroot5b1Y888oh56623vNq8w4cPN5dddplZbrnlguX9ga+//toLEPvBXwVO1157bdOtWzfz/PPPG23n+++/N6eddprRsqpRHJfuuusuc+GFF3qz5pprLqPavqr5+9FHH5nHH3/cvPHGG2bixInm0EMPNeeee65ZeOGF4zbDNAQQQAABBBBAAAEEEEAAgRYQmDFjhvci8eTJk72j6dq1q9l00029Wr/fffed12qUWqDSC8Q33nijmTZtmjn++ONjjzyN8mZaZd/YDDIRAQQQQAABBBBAAAEEEGhBAWoAZ3xS9Rb1XnvtZb799luj2rl/+tOfzHrrrRfKxY8//mguuOACc9NNN3nTFdi99NJLvaa23AW1jJqQVtpwww3NCSecEGoyesKECeaoo47ygr/alwrmCjK76fPPPzc77LCDFyied955vTeZ3RrHyosCyH4t3e22284cccQR7iaqGqYGcFV8rIwAAggggAACCCCAAAIIpC4wcuRIc8stt3jbXX311c1JJ51kFlhggdB+Xn/9da9sqDKlksq2Kpe6Ka3yZhplXzdf5QxTA7gcLZZFAAEEEEAAAQQQQACBRhHo0CgZaZd8KJCq4K+SmpGKBn81XX0qHXbYYUHfvSpYq59gN3311Vfm9ttv9yapr95o8FczBg4c6E3XsN7M9pfXuJ/UFLVqCSsddNBBec1NKy8nnnhikJd7773X62PYX5+/CCCAAAIIIIAAAggggAACrSOgl4Dvuece74DUBdBxxx2XF/zVTL2orBeO/aSavtGURnkzrbJvNG+MI4AAAggggAACCCCAAAKtLEAAOOOzq6aZ/bT11lv7g3l/VWN3gw02CKa/9tprwbAGHnrooSCQvO2224Zq/roLqklo9SWspACwCvNu8gvpXbp0MYMHD3ZnBcPq1+k3v/mNN67gtYLAJAQQQAABBBBAAAEEEEAAgdYT0MvHauZZaZ111inaBdBaa61lOnfu7C0bfWlZE9Mob6ZV9vUyyX8IIIAAAggggAACCCCAQJsIEADO+ESr/9wVV1zRC8outthiRfe+yCKLBPM//vjjYFgDL730UjCuJrmKpVVXXdWb/emnn5rx48cHi77//vvms88+88bV7HOnTp2CedGBVVZZJZikPoxJCCCAAAIIIIAAAggggAACrSeg/nZVhlx22WVN7969ix6gXhZeaKGFvGW++OKLoHUpTUirvJlG2bfoQTATAQQQQAABBBBAAAEEEGhBgY4teEwNfUhqPitpUtPPfvrZz37mD3p/J06c6P2dY445THReaEE7oqa5/DR58mTjB4z9bWieu4y/rPtXhXoFpBVE1jZICCCAAAIIIIAAAggggAACrSeg8qJfZix1dNOnT/cCvVquZ8+eZq655gpWSau86W+nmrJvkCkGEEAAAQQQQAABBBBAAIE2EaAGcIOe6G+++ca4NW379u0byul7773njXfr1s3rMzg0MzLi1jR+5513grlTpkwJhnv06BEMFxrwt6NmoD/55JNCizEdAQQQQAABBBBAAAEEEECgDQTUzZCfomXWtMqbaZR9/TzyFwEEEEAAAQQQQAABBBBoFwFqADfomb7qqqvM559/7uVOb1+7AVoFYH/66Sdvnt/cVrHD6Nq1azD7q6++CobVtJefKtnOoosu6q9e8O+wYcNCzVVHF1SzYGpabOrUqaHmwqLLMY4AAggggAACCCCAAAIIINA4Anop+JprrvEypNq5W2+9dShzaZQ30yr7hjIWGRkzZow5++yzI1Nnj06bNs0rs+qvWsQiIYAAAggggAACCCCAAALNIEAAuAHP0t13321Gjx7t5WyeeeYxRx11VCiXbkF67rnnDs2LG3GX+e6774JF0tpOsMGYAQV433rrrZg5syepmTA9MCAhgAACCCCAAAIIIIAAAgg0voCafh4+fLjxy5Q77rijGThwYCjj/jxNdMukoYWcEXcZv9yaxjacXcQO6liSlFnnnHPO2PWZiAACCCCAAAIIIIAAAgg0ogBNQDfYWXn88cfNWWedFeRq6NChxm962Z+o5qH95Pax5E+L/nWXmTFjRjA7re0EG2QAAQQQQAABBBBAAAEEEECgpQVUpjzmmGPMG2+84R3n0ksvbfbff/+8Y06jvJnGNvIyxgQEEEAAAQQQQAABBBBAoA0EqAHcQCdZNX8V/J05c6aXqz333NNsueWWeTns2HH2afOXzVvImfDjjz8GY24wuNztuPtytxNsnAEEEEAAAQQQQAABBBBAAIGWFfjiiy/M0UcfbSZOnOgdY/fu3b3mk93au/7Bp1HeLHcbhcq+fp74iwACCCCAAAIIIIAAAgi0i8DsSGK7HHGDHucVV1xhrrzyyiB3v/vd78zee+8djLsDXbp0CUa///77YLjQgLvMvPPOGyxW7nbc2sPudoINxgxcffXVJpfLxcyZNWmLLbYwDz30UNFlCq7MDAQQQAABBBBAAAEEEEAAgUwEpkyZ4jX7/N5773n7W2KJJcx5551nevToEbv/NMqb5W6jUNk3NoP/P3GbbbaJffHaX+e6664zejm7WLnWX5a/CCCAAAIIIIAAAggggECjCBAArvOZ0BvKI0aMMKr9q9ShQwdzxBFHGBVCCyX1C+wnt08kf1r0r9tslhu4dYer2U50f+54p06d3NG8YfX9S0E6j4UJCCCAAAIIIIAAAggggEDDCKjGr2r+qgawUu/evb3WqxZeeOGCeUyjvJlW2bdgJu0MlcGLtXClWsiUWYsJMg8BBBBAAAEEEEAAAQQaUYA+gOt4VhR0PfLII4Pgb+fOnc2f//znosFfZVfNay2yyCJezj/66KOSR/Dhhx8Gy7gFdPdN7STb8ZeZc845zQILLBBskwEEEEAAAQQQQAABBBBAAIHWFHjkkUfM0KFDg+Dvmmuuac4//3zjli3jjjyN8mZaZd+4/DENAQQQQAABBBBAAAEEEGhlAQLAdTq7enP6kEMOMc8++6yXAwV0L7jgArP22msnytFyyy3nLafavZ9//nnRddRUl5/69u3rD5pll102GPab8QomRAZUU/mDDz7wpi6//PJeEDqyCKMIIIAAAggggAACCCCAAAItJHDbbbeZ448/3vhNK2+77bbmL3/5i3GbZi50uGmVN9Mo+xbKI9MRQAABBBBAAAEEEEAAgVYVIABchzM7bdo0r5nnN954w9u7CrSjRo3ymtFKmp0VV1wxWPSFF14IhuMGJkyYEEx211thhRWM30Tz888/HywTN/Dyyy+bH374wZvlbiNuWaYhgAACCCCAAAIIIIAAAgg0t4C6KTr77LOD5o/1AvOwYcOMWoRKktIqb7rlz0rLvknyyzIIIIAAAggggAACCCCAQCsJEACuw9k855xzzKRJk7w99+nTx6v5u9hii5WVkw022CBY/r777guGowNq/vm5557zJqufJreZLvWntMYaa3jz3nzzTfPaa69FVw/G3X2stdZawXQGEEAAAQQQQAABBBBAAAEEWktg8uTJXh+/Oqo55pjDHHfccWbnnXcu6yDTKm+mUfYtK+MsjAACCCCAAAIIIIAAAgi0gEDHFjiGpjoENfk8duxYL89q9lnNZ1XSn26vXr28GsOvvvqqeeyxx4wCtJtttlnIYsaMGd72Z86c6U3fbbfdQvM1stVWW3nra3jEiBFm5MiRZv7559dokMaNG2fuuusub1y1lQcNGhTMYwABBBBAAAEEshd45plngvsJd+/dunUz++yzjzuJYQQQQAABBMoW0EvLfjnyd7/7ndl8883L3oZWSKO8mVbZt6IDYCUEEEAAAQQQqEhA3UfoOXNc2nPPPc0SSywRN4tpCCCAAAIpChAAThGz1KbUhLL7w6c3os8888xSq3nzV199dbPDDjuElj388MPNgQce6E07/fTTvT56N9lkE9O9e3ejJpsvueQS4zeRpWaz1l9//dD6GlGfw6oF/NRTT5n//e9/ZujQoebQQw81/fv3N1999ZV5+OGHzd///nev8K83v7U//SUhgAACCCCAQP0EJk6caK688sq8DKi1DwLAeSxMQAABBBAoQ+Dee+81fjdCKvupbHnUUUcl2oJqCi+44ILBsmmVN9Mo+waZYgABBBBAAAEEai6gAHBcmVU7Hjx4MAHgmp8BdoAAAggYQwA4w6tg/Pjx5t133w32qGF3PJgRM+A23ezP7tevnznllFPMGWecYb777jtz2WWXef/UJ5P/traWXXLJJb1Ac4cO8S1+n3jiiebkk082qk30+uuvmz/84Q9ev07uNrQdBYZp/lkSJAQQQAABBBBAAAEEEECgNQVuueWW4MByuZx58skng/FSA2qFKprSKG+mVfaN5o1xBBBAAAEEEEAAAQQQQKBVBeIjgq16tHU+LvWzm3baaKONzKhRo7zmoP0Arx+47dixo9lxxx29+V27di24azW+li8LAABAAElEQVRBffbZZ5vdd989aP7Z34ZWWn755b3+n3baaaeC22AGAggggAACCCCAAAIIIIBA8wu89dZbqR5EWuXNNMq+qR4YG0MAAQQQQAABBBBAAAEEGliAGsAZnpydd97Z6F/aSQFa1f5VLeBJkyaZDz/80PTo0cP07NnTzDfffIl2p+Dx/vvv7/2bOnWqt525557bLL300l6THH5wOdHGWAgBBBBAAAEEEEAAAQQQQKApBe67777U851WeTONsm/qB8cGEUAAAQQQQAABBBBAAIEGFCAA3IAnpdIsde7c2QwYMMD7V+k2tJ6Cx/pHQgABBBBAAAEEEEAAAQQQQCBNgTTKm2mVfdM8LraFAAIIIIAAAggggAACCDSSAE1AN9LZIC8IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAFQIEgKvAY1UEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgkQQIADfS2SAvCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQBUCBICrwGNVBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoJEECAA30tkgLwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAVAgSAq8BjVQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKCRBAgAN9LZIC8IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAFQIEgKvAY1UEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgkQQIADfS2SAvCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQBUCBICrwGNVBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoJEECAA30tkgLwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAVAgSAq8BjVQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKCRBAgAN9LZIC8IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAFQIEgKvAY1UEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgkQQIADfS2SAvCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQBUCBICrwGNVBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoJEECAA30tkgLwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAVAgSAq8BjVQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKCRBAgAN9LZIC8IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAFQIdq1iXVRFAAAEEEEAAAQTqILDyyiub3//+93l7XnTRRfOmMQEBBBBAAAEEEEAAAQQQQACBLAXmmmuu2DKr8rD44otnmRX2hQACCLStAAHgtj31HDgCCCCAAAIINKvAwIEDjf6REEAAAQQQQAABBBBAAAEEEGg0AQWADz744EbLFvlBAAEE2kqAJqDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCBIBb+exybAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0FYCBIDb6nRzsAgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0MoCHVv54Dg2BBBAAAEEEECgFQUmTJhgxo0bl3doCy+8sNlxxx3zpjMBAQQQQAABBBBAAAEEEEAAgawEvv/+e3PllVfG7m677bYz3bt3j53HRAQQQACB9AQIAKdnyZYQQAABBBBAAIFMBMaPH29GjhyZt6/evXsTAM5TYQICCCCAAAIIIIAAAggggECWAgoAx5VZlYdBgwYRAM7yZLAvBBBoWwGagG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwkQAG61M8rxIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2woQAG7bU8+BI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAqwl0bLUD4ngQQAABBBBAAIFWF1hxxRXNnnvumXeY3bt3z5vGBAQQQAABBBBAAAEEEEAAAQSyFJhrrrliy6zKQ7du3bLMCvtCAAEE2laAAHDbnnoOHAEEEEAAAQSaVWD11Vc3+kdCAAEEEEAAAQQQQAABBBBAoNEEFAA+9thjGy1b5AcBBBBoKwGagG6r083BIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAKwsQAG7ls8uxIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAWwkQAG6r083BIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAKwsQAG7ls8uxIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAWwkQAG6r083BIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAKwsQAG7ls8uxIYAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAWwl0bKuj5WARQAABBBBAAAEEEECg4QU++ugj8+qrr+blc5VVVjHzzDNP3nQmIIAAAggggAACCCCAAAIIIIAAAgjMFiAAPNuCIQQQQAABBBBAAAEEEGgAgfvuu8/sscceeTmZMGGCGTBgQN50JiCAAAIIIIAAAggggAACCCCAAAIIzBagCejZFgwhgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACTS1AALipTx+ZRwABBBBAAAEEEECg9QR69epl9t577+DAunbtavbdd1+z8MILB9MYQAABBBBAAAEEEEAAAQQQQAABBBCIFyAAHO/CVAQQQAABBBBAAAEEEKiTwJprrmlGjRoV7H3JJZc0l156qdFfEgIIIIAAAggggAACCCCAAAIIIIBAcQECwMV9mIsAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgg0jQAB4KY5VWQUAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQKC5AALi4D3MRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBphEgANw0p4qMIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAsUFCAAX92EuAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggg0DQCBICb5lSRUQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKC4AAHg4j7MRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBJpGgABw05wqMooAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggUFyAAXNyHuQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDTCBAAbppTRUYRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACB4gIEgIv7MBcBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBoGgECwE1zqsgoAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUFygY/HZzEUAAQQQQAABBBBoNIFXX33VPP/883nZ6tq1q9lss83ypjMBAQQQQAABBBBAAAEEEEAAgawEfvjhB3PzzTfH7m6TTTYxCy+8cOw8JiKAAAIIpCdAADg9S7aEAAIIIIAAAghkIjBu3Dhzxhln5O2rd+/eBIDzVJiAAAIIIIAAAggggAACCCCQpcCMGTPMiSeeGLvLvn37EgCOlWEiAgggkK4AAeB0Pave2vDhw81TTz1l/vCHP5ghQ4aU3N7j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WbZsWfE8feHbVkpfGhfSG2+80a4AcNoz6uGHHy5clvt7++23j/nz58c777yTWy6TAAECBAgQIECAAAECBNavQFtf27anN/PmzStWu+CCCyJ9+Vua0pz2ySefzH5+/etfR6qTvgoupPTycQrQprQuc9ZCO639vu222+K8885rrUqkOWtayjrNryUCBAgQIECAAAECBAjUgoAAcC08pZw+lr5JnSbF/fv3j1122SXSXr6bbLJJPPfcc3HPPffECy+8kH0RfMUVV8QGG2wQBx98cLG10gBwv379ivnlDkrrFL4yLldXPgECBAgQIECAAAECBAg0tsBTTz1VBEjB35EjR8Zuu+2WvRCdloB+4okn4q677srqPProo3HuuefG9OnTo0+fPlmeOWuRzwEBAgQIECBAgAABAgQ6JCAA3CGu6qlcGgBOSzFffvnlse22267VwcmTJ8dVV10Vt99+e5Z/5ZVXxu677158c7r07eu09FZbqbSOr3Xb0lJOgAABAgQIECBAgACBxhVI883C8s1J4ZhjjokzzzwzW065VCWtVDVlypR49dVXsxeZb7zxxjjllFOyKuaspVKOCRAgQIAAAQIECBAg0H4BAeD2W1VVzSOOOCJ7a/rFF1+MAw44ILbccssW/UtfBZ9zzjnZclopYPz666/Hj370ozjttNOyuqX7J6U9hdtKpXVKg8GtXZf69YEPfKBslfQXAmlSbw/gskQKCBAgQIAAAQIECBAgUHMCab45bdq0SHPWdPzxj388dwwf+tCHsnlrWv45pRtuuCGOPfbYbO/hjs5ZS/fybe+cdfDgwa3OWd98881sz+LS+XDuQGQSIECAAAECBAgQIECgigQEgKvoYXSkK1tvvXWkn7ZSr169srenzz///Kxq6ZfDAwYMKF5e2E+4mJFzUPrV76BBg3JqtMz6j//4j5aZJTkHHXRQzJkzpyTHIQECBAgQIECAAAECBAjUukAKwKblntuT9t9//2yf3TRfTYHWv/3tb7HDDjtER+espfPa9s5Z0zZJpVslNe/vTTfdFMcdd1zzbOcECBAgQIAAAQIECBCoaoGeVd07nauIwOjRo4vtPPvss8Xj0glx6d5KxQrNDkqX3yq9tlk1pwQIECBAgAABAgQIECBAoEMCefPWgQMHFtswZy1SOCBAgAABAgQIECBAgECbAgLAbRLVfoVhw4YVB5GWgS6k4cOHFw5jyZIlxeNyB4U66aviIUOGlKsmnwABAgQIECBAgAABAgQIdEhg8803L9YvzFv79esXQ4cOzfIL89FipZyDxYsXF3M32WST4rEDAgQIECBAgAABAgQINJqAAHCNPvH09vOCBQvimWeeaXMEpRPlESNGFOtvs802xeO0F29rKe2ltGjRoqzKqFGjIk3EJQIECBAgQIAAAQIECBAgkCeQ5pAvv/xyzJs3LwoB3bx6hbzCfDOdl85bt91226xKWpFq6dKlheq5v9McuZDGjRtXOPSbAAECBAgQIECAAAECDScgAFyDjzxNfA899ND47Gc/G6eeemqU7s2bN5y0f1IhjRw5snAYaYmtPn36ZOePPvpoMT/v4C9/+Uu8++67WVHai0kiQIAAAQIECBAgQIAAAQLlBP7rv/4rPvWpT8XkyZPj1ltvLVetmF9u3lo6//zTn/5UrJ93MHfu3GJ26XXFTAcECBAgQIAAAQIECBBoEAEB4Bp80GkfpMJkdsWKFfG73/2u1VH88Ic/LJbvu+++xePUzp577pmdP/fcc/HUU08Vy5of/OIXvyhm7b333sVjBwQIECBAgAABAgQIECBAoLnAhAkTiln33XdfrFmzpnje/OCRRx6JJ598MstOX/+WfgF8wAEHFKuXzkuLmf88SMs///GPf8zOxowZE5aAbi7knAABAgQIECBAgACBRhIQAK7Rp10ayL3yyivjzTffzB3JLbfcEoWve7fffvs4+OCD16p32GGHFc8vvfTS3HYefPDBuOOOO7J6afmtvfbaq3iNAwIECBAgQIAAAQIECBAg0Fxg5513jiFDhmTZaRnom2++uXmV7Dwt63z55ZcXy84444zo1atX8TzNY1NAN6Xf/OY3kRcETqtiXXzxxbFq1aqs3vHHH5/99g8CBAgQIECAAAECBAg0qoAAcI0++c985jORJtQppT1+v/CFL8T9998faXnotNfS008/Hd/97ncjBYdT6tu3b3z5y1+OHj16ZOeFf+yzzz7Fr4DTG9epzsMPP5wtK/3SSy/FrFmz4vzzz88m0una008/vUUbhbb8JkCAAAECBAgQIECAAAECSaBfv35x4YUXFjGuvvrqLND7wgsvZF8Dp8DvnDlz4uSTT4758+dn9T7ykY/EfvvtV7ymcPDVr361cJjNc2fOnBmpnTT3Tcs+n3POOfGHP/whq5NWy/roRz9arO+AAAECBAgQIECAAAECjSjQuxEHXQ9j7t27d3z729/OArYLFiyIhQsXxnnnnZcNLZWliXAhbbbZZtkkeezYsYWstX5PmTIlLrroonjooYcivZl99tlnZ29cF96eLlQ+66yzwvLPBQ2/CRAgQIAAAQIECBAgQKA1gbR61GmnnRZpP+DVq1fHT37yk+wnvaCctjMqTUcddVSkOWde2nHHHbP579SpU2P58uVx7bXXZj/pS+HSeetWW20Vl1xySfTs6V33PEd5BAgQIECAAAECBAg0joBZUQ0/62HDhsUNN9wQaYmsQYMGFUdSCP5utNFGMXHixGxiXC74my5Ky3JddtllceKJJ8YGG2yQtVM6iR41alR873vfi/TVsUSAAAECBAgQIECAAAECBNorcMIJJ8T06dNj1113LV5SCP6mAO52220XF1xwQfYicnqZuVyaNGlSXHPNNdly0IUAb2Hemq47+uijs/I0D5YIECBAgAABAgQIECDQ6ALlZ1eNLtMN40/78ZbuydueLvTp0yeOO+64OPbYY2PRokXx/PPPZ29Sf/CDH4wtttiiPU1kddIE+tRTT81+0lJaaQnptGTXiBEjYsstt/QGdbslVSRAgAABAl0vkF7OOvzww1vcKP1/tkSAAAECBLpS4Mc//nGHmx89enRcddVVsWzZsmzOmlawSvPVtL9vmne2N6X//0tf/6avgNOcdfHixTF8+PAYOXJkDB48uL3NqEeAAAECBAh0sUD6O+u8OWu67cYbb9zFd9c8AQIECCQBAeA6+fcgBXDTxDf9dDZVqp3O9sP1BAgQIECAQL7A/vvvH+lHIkCAAAECtSSQVq4aN25c9tOZfvfv3z923nnn7Kcz7biWAAECBAgQ6BqB9ILXpZde2jWNa5UAAQIE2iVgCeh2MalEgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB6hcQAK7+Z6SHBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaJeAAHC7mFQiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA9QsIAFf/M9JDAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQItEtAALhdTCoRIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg+gUEgKv/GekhAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE2iUgANwuJpUIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQ/QICwNX/jPSQAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC7RIQAG4Xk0oECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCofgEB4Op/RnpIgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBdgkIALeLSSUCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhUv4AAcPU/Iz0kQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAuwQEgNvFpBIBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSqX0AAuPqfkR4SIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgXQICwO1iUokAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLVLyAAXP3PSA8JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQLgEB4HYxqUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHqFxAArv5npIcECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBBol4AAcLuYVCJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgED1CwgAV/8z0kMCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAi0S0AAuF1MKhEgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKD6BQSAq/8Z6SEBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTaJSAA3C4mlQgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFD9Ar2rv4t6SIAAAQIECBAgUCowf/78+Otf/1qalR0PHjw49t577xb5MggQIECAAAECBAgQIECAwPoSWLlyZdx11125t9tzzz1jww03zC2TSYAAAQKVExAArpyllggQIECAAAEC60Xg7rvvjqlTp7a415gxY2L27Nkt8mUQIECAAAECBAgQIECAAIH1JbB8+fL40pe+lHu7WbNmxfjx43PLZBIgQIBA5QQsAV05Sy0RIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgWwUEgLuV380JECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQOQEB4MpZaokAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLdKiAA3K38bk6AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHKCQgAV85SSwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhWAQHgbuV3cwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFROQAC4cpZaIkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQLcKCAB3K7+bEyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoHICAsCVs9QSAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEulVAALhb+d2cAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEClRMQAK6cpZYIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQrQICwN3K7+YECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBConIAAcOUstUSAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFuFRAA7lZ+NydAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDlBASAK2epJQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECHSrgABwt/K7OQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBConIABcOUstESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoFsFBIC7ld/NCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUDkBAeDKWWqJAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC3SogANyt/G5OgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBygkIAFfOUksECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoVgEB4G7ld3MCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhUTkAAuHKWWiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEC3CvTu1ru7OQECBAgQIECAQIcFttpqq9hvv/1aXLf11lu3yJNBgAABAgQIECBAgAABAgTWp0Dv3r1z56ypDxtssMH67Ip7ESBAoGEFBIAb9tEbOAECBAgQIFCrAgcffHCkH4kAAQIECBAgQIAAAQIECFSbQP/+/ePaa6+ttm7pDwECBBpKwBLQDfW4DZYAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgXoWEACu56drbAQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINJSAAHBDPW6DJUCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgngUEgOv56RobAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQINJSAA3FCP22AJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhnAQHgen66xkaAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQEMJCAA31OM2WAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE6llAALien66xESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQUAICwA31uA2WAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIF6FhAAruena2wECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDSUgABwQz1ugyVAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoJ4FBIDr+ekaGwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECDSUgANxQj9tgCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoZwEB4Hp+usZGgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEBDCQgAN9TjNlgCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBOpZQAC4np+usREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0FACAsAN9bgNlgABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBehYQAK7np2tsBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0lIAAcEM9boMlQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCeBQSA6/npGhsBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAg0lIADcUI/bYAkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqGcBAeB6frrGRoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAQwkIADfU4zZYAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTqWaB3PQ/O2AgQIECAAAEC9SiwePHieP7551sMbcCAAbHTTju1yJdBgAABAgQIECBAgAABAgTWl8CqVavikUceyb3duHHjYvDgwbllMgkQIECgcgICwJWz1BIBAgQIECBAYL0I/OxnP4upU6e2uNeYMWNi9uzZLfJlECBAgAABAgQIECBAgACB9SXw9ttvxwknnJB7u1mzZsX48eNzy2QSIECAQOUELAFdOUstESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoFsFBIC7ld/NCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUDkBAeDKWWqJAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEC3SogANyt/G5OgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBygkIAFfOUksECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDoVgEB4G7ld3MCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAhUTkAAuHKWWiJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEC3CggAdyu/mxMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKByAgLAlbPUEgECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBLpVQAC4W/ndnAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABApUTEACunKWWCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0K0CAsDdyu/mBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqJyAAHDlLLVEgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBbhUQAO5WfjcnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA5QQEgCtnqSUCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAh0q4AAcLfyuzkBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQqJ9C7ck1piQABAgQIECBAgAABAvUp8MYbb8TLL7/cYnAjR46M3r1Nq1rAyCBAgAABAgQIECBAgAABAgS6TcDfVHQbvRsTIECAAAECBAgQIFArAjfeeGOcddZZLbo7f/78SEFgiQABAgQIECBAgAABAgQIECBQLQKWgK6WJ6EfBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQ6KSAAHAnAV1OgAABAgQIECBAgED9C2yzzTZx0EEHFQe60UYbxSc+8YkYMGBAMc8BAQIECBAgQIAAAQIECBAgQKAaBCwBXQ1PQR8IECBAgAABAgQIEKhqgUMPPTT22muvGDp0aNbPHXbYIe64446q7rPOESBAgAABAgQIECBAgAABAo0pIABcZc/961//evzud7+Ls88+O4466qh29W7VqlXxs5/9LH71q1/F3//+93jrrbdi3LhxsfPOO2d/STV27Nh2tbNw4cJIe5v99a9/jXS82WabxU477ZS1M2nSJF83tEtRJQIECBAgQIAAAQIECNSvwJ///Oc488wzY4MNNujQSxCVmG9Wau5bv0/HyAgQIECAAAECBAgQIPCegABwFf2b8OMf/zgL/nakSy+99FKcc8458dxzz6112UMPPRTpZ+bMmXH++efHIYccslZ585ObbroprrnmmkgT6kKaP39+pJ/0ZcPtt98el156aTbJL5T7TYAAAQIECBAgQIAAAQKNI/Dmm2/G1KlTY82aNR0adCXmm5Wa+3ao4yoTIECAAAECBAgQIECgRgUEgKvkwf3yl7+MadOmdag3y5Yti2984xvF4O/o0aNjn332iWHDhsWjjz4a9957b6xYsSK+853vRKp75JFH5rafArxXX311Vta3b99IX/umL3+XLFkS999/fzzzzDPx+OOPx1lnnRVXXHFFbLLJJrntyCRAgAABAgTWj8Cmm26ardDR/G4jR45snuWcAAECBAhURCDNKb/2ta9lq051pMFKzDcrNfftSL/VJUCAAAECBNZdoFevXrlz1tTiwIED171hVxIgQIBAuwUEgNtN1TUV33nnnZg+fXrcfPPNHX6L+vrrr8+Cs6lnEydOjG9+85vRp0+frKNHHHFEzJ07N84999ws+HvVVVfF/vvvH+kvjEvT0qVL4/LLL8+yBg0alL3NveuuuxarTJ48OQsgz5kzJ5599tmYMWNGNukvVnBAgAABAgQIrHeBww47LNKPRIAAAQIE1ofAY489FhdffHG2QlRH7lep+WYl5r4d6be6BAgQIECAQOcEBgwYELfcckvnGnE1AQIECHRKoGenrnZxpwTSV7onn3xypOWwVq9e3aG23njjjZg9e3Z2TdqrtzT4W2ho/PjxWX46T0s7F+oXytPvWbNmZV8Jp+MzzjgjSoO/Ka93794xZcqUKOwj/POf/zzbYziVSQQIECBAgAABAgQIECBQvwJvv/12XHnllfHFL36xw8HfpFKJ+Wal5r71+5SMjAABAgQIECBAgAABAi0FBIBbmnR5TtovKX11+6UvfSkWLFiQ3S8t2XjUUUe1+9533313pMl4Sp/85CeLX/42byAtCT1ixIgsOwWAV65cuVaVtBxXSumtrE984hNrlRVOevbsGcccc0x2mu6ZgsASAQIECBAgQIAAAQIECNSvQNoG6KSTTsq+3klz2B49esSJJ57YoS2BKjHfrNTct36flJERIECAAAECBAgQIECgpYAAcEuTLs9JX/v+5Cc/Kd7n0EMPzZaBTnv4FlKaXLeW0hJchbTHHnsUDnN/77777ln+K6+8Eo888kixzosvvhivvvpqdp6+/C0sH12sUHKw2267Fc/uvPPO4rEDAgQIECBAgAABAgQIEKg/gQceeCDSnDGloUOHxrRp0+LUU0+NtKdfSm3NWSs136zE3DfrsH8QIECAAAECBAgQIECggQTsAdyND3vChAnZEtBpqeaOpvQ2dkpp0r3ddtu1enlpYDnt41sIGBfaSBeX1slrbOONN84m/SmInNqQCBAgQIAAAQIECBAgQKC+BYYMGZKtBpVWqxo0aFCHBlup+Wahnc7MfTvUcZUJECBAgAABAgQIECBQBwICwN3wENOSyt///vdjxx13XOe7L1y4MLt22LBh2T69rTW0+eabF4uff/754nFh+emUMXz48GJ+uYPUTgoAp2WgX3755dh0003LVS3mp2DxsmXLiufND1asWBH9+vXL9iFOy4pJBAgQIECAAAECBAgQIND9ApMmTYrjjz8+Bg4cuE6dqdR8sxJz39YGsHTp0uLWTHn10v3TnHXVqlUttlTKqy+PAAECBAgQIECAAAEC1SAgANwNTyG9udyZ4G8KwKZlpFNKX+a2lTbaaKNilTfeeKN4XBqYXZd22hMAvvDCC+Phhx8u3jPv4AMf+EDMnz8/3nnnnbxieQQIECBAgAABAgQIECCwngXaWmmqre5UYr5Zqblva32955574rzzzmut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CDSCgABwIzxlYyRAgAABAgQIECBQxQKPPBLx0kvt6+CUKRG77JJf9/XXI045Jb9MLgECBAgQIECAAAECBAgQIECgUQQEgBvlSRsnAQIECBAgQIAAgSoVaG3/3+Zd7tPnvaWe+/ZtXvLe+S9/GfH97+eXySVAgAABAgQIECBAgAABAgQINIKAAHAjPGVjJECAAAECBAgQIFDFAh0JAKdhjB8f8a1vlR/Q178e8eyz5cuVECBAgAABAgQIECBAgAABAgTqWUAAuJ6frrERIECAAAECBAgQqHKBFSsiHnig4538l3+J2HPP/OuWLYuYPDli9er8crkECBAgQIAAAQIECBAgQIAAgXoWEACu56drbAQIECBAgAABAgSqXOC++yLeeqvjnezV672loAcMyL/23nsjrrwyv0wuAQIECBAgQIAAAQIECBAgQKCeBQSA6/npGhsBAgQIECBAgACBKhcot/zzBhu03fExYyK++93y9f7X/4p48sny5UoIECBAgAABAgQIECBAgAABAvUoIABcj0/VmAgQIECAAAECBAjUiEC5APCkSe0bwNlnR+y/f37d5csjTjopYtWq/HK5BAgQIECAAAECBAgQIECAAIF6FBAArsenakwECBAgQIAAAQIEakDg9dcj/vjH/I4eeGB+fvPcHj0iZsyIGDy4ecl757//fcQll+SXySVAgAABAgQIECBAgAABAgQI1KOAAHA9PlVjIkCAAAECBAgQIFADAunr33Jf57Y3AJyGue22EZddVn7A3/52xNy55cuVECBAgAABAgQIECBAgAABAgTqSUAAuJ6eprEQIECAAAECBAgQqCGBcss/Dx8e8cEPdmwgp50W8bGP5V+zYkXE5z4X8e67+eVyCRAgQIAAAQIECBAgQIAAAQL1JNC7ngZjLAQIECBAgAABAgQIdEzg0UcfjWnTprW46IILLojtt9++RX4lM8oFgA85ZN3uMn16xE47RaSlpZunP/0p4l//NeLf/q15iXMCBAgQIECAAAECBAgQIECAQH0JCADX1/M0GgIECBAgQIAAAQIdEnj++edj5syZLa75whe+0KUB4AULIubNa3HbLOOgg/Lz28rdeuuIq66KOOmk/JoXXxxx+OEREybkl8slQIAAAQIECBAgQIAAAQIECNSDgCWg6+EpGgMBAgQIECBAgACBGhP4xS/Kd/iAA8qXtVWSlnpOQd68tHLle8Hh5cvzSuURIECAAAECBAgQIECAAAECBOpDwBfA9fEcjYIAAQIECBBoIIHBgwfH1ulTx2Zp8803b5bjlEDbAvvtt188+OCDcUBT1PWdd96JzTbbLG677bampZSb1lLuwlRu+eedd45IewCnYO26ph/8IOL++yNeeaVlC088EXHhhRGXXdayTA4BAgQIECBAgAABAp0X6NmzZ+6cNbXct2/fzt9ACwQIECDQpoAAcJtEKhAgQIAAAQIEqkvg05/+dKQfiUAlBDbeeOP4yEc+Er169cqa69evX3ZeibZba+Oee/JLDzwwP78jueldiP/zfyI+85n8q664IuKTn4zYd9/8crkECBAgQIAAAQIECKy7wMCBA2POnDnr3oArCRAgQKDTApaA7jShBggQIECAAAECBAgQ6IjA3LkRixblX7Gu+/82b+3ooyOOOaZ57nvnq1dHnHxyxLJl+eVyCRAgQIAAAQIECBAgQIAAAQK1LCAAXMtPT98JECBAgAABAgQI1KBAueWfezetT9S0InXF0n/+Z8QWW+Q398wzEd/4Rn6ZXAIECBAgQIAAAQIECBAgQIBALQsIANfy09N3AgQIECBAgAABAjUoUC4A3LQSdQwZUrkBDR0akfYDLpe+//2Icn0pd418AgQIECBAgAABAgQIECBAgEC1CwgAV/sT0j8CBAgQIECAAAECdSSwcmXEb36TP6BKLf9c2vr/+B/vLfdcmlc4XrMm4pRTIl5/vZDjNwECBAgQIECAAAECBAgQIECg9gUEgGv/GRoBAQIECBAgQIAAgZoReOCBiDffzO9uVwSA052mTYsYMSL/nn//e8TZZ+eXySVAgAABAgQIECBAgAABAgQI1KKAAHAtPjV9JkCAAAECBAgQIFCjAuWWXB40KGKPPbpmUBtuGHHddRE9euS3P2NGxO2355fJJUCAAAECBAgQIECAAAECBAjUmoAAcK09Mf0lQIAAAQIECBAgUMMC5QLAEydG9OnTdQNLXxeffnr59k89NeKVV8qXKyFAgAABAgQIECBAgAABAgQI1IqAAHCtPCn9JECAAAECBAgQIFDjAv/4R8Qf/pA/iK5a/rn0bpdeGrHddqU57x8vWhRx5pnvnzsiQIAAAQIECBAgQIAAAQIECNSqgABwrT45/SZAgAABAgQIECBQYwJ33RXx7rv5nV4fAeC0zHRa7rlnmVnQzTdHzJqV3z+5BAgQIECAAAECBAgQIECAAIFaESjzVx+10n39JECAAAECBAgQIECgVgTKLf+82WYRO+ywfkax774RX/1q+XudcUbE4sXly5UQIECAAAECBAgQIECAAAECBKpdQAC42p+Q/hEgQIAAAQIECBCoE4FyAeCPfSyiR4/1N8jvfCdi3Lj8+6V9gNN+wBIBAgQIECBAgAABAgQIECBAoFYFBIBr9cnpNwECBAgQIECAAIEaEkh77D7xRH6H18fyz6V37t8/YubMiF69SnPfP549O+KGG94/d0SAAAECBAgQIECAAAECBAgQqCUBAeBaelr6SoAAAQIECBAgQKBGBe68s3zHJ04sX9ZVJRMmRJx/fvnWv/zliAULypcrIUCAAAECBAgQIECAAAECBAhUq4AAcLU+Gf0iQIAAAQIECBAgUEcC5ZZ/Hjs2YuTI7hnolCkRH/pQ/r1ffz3i85/PL5NLgAABAgQIECBAgAABAgQIEKhmAQHgan46+kaAAAECBAgQIECgTgTuvjt/IOt7+efSXvTp895Sz337lua+f5y+Wr7mmvfPHREgQIAAAQIECBAgQIAAAQIEakFAALgWnpI+EiBAgAABAgQIEKhhgbT3b7nllA88sHsHNn58xLe+Vb4PX/96xHPPlS9XQoAAAQIECBAgQIAAAQIECBCoNgEB4Gp7IvpDgAABAgQIECBAoM4Eyi3/3LNpNvLRj3b/YP/lXyL22CO/H//4R8TJJ0esWZNfLpcAAQIECBAgQIAAAQIECBAgUG0CAsDV9kT0hwABAgQIECBAgECdCZQLAE+YELHxxt0/2F69ImbOjOjfP78v994bMW1afplcAgQIECBAgAABAgQIECBAgEC1CQgAV9sT0R8CBAgQIECAAAECdSSwalVECqDmpe7c/7d5f8aOjfj3f2+e+/75BRdEPP30++eOCBAgQIAAAQIECBAgQIAAAQLVKiAAXK1PRr8IECBAgAABAgQI1IHA738f8dpr+QOppgBw6uFXvhKx3375fX377Ygjj3y/7NlnI264IeLVV9/Pc0SAAAECBAgQIECAAAECBAgQqAYBAeBqeAr6QIAAAQIECBAgQKBOBcot/zxgQMRee1XXoNOexDNmRAwalN+vF154P3/RooiTTooYMSJiypSIFSveL3NEgAABAgQIECBAgAABAgQIEOhOAQHg7tR3bwIECBAgQIAAAQJ1LlAuALz//hH9+lXf4EeNirjssvb36623Iv7t3yIOPLD8l87tb01NAgQIECBAgAABAgQIECBAgEDnBQSAO2+oBQIECBAgQIAAAQIEcgRScPS3v80paMqqtuWfS3t5+ukR++5bmtP28W9+E3HMMRGrV7ddVw0CBAgQIECAAAECBAgQIECAQFcK9O7KxrVNgAABAgQIECBQeYG3mzYjXbZsWYuGe/XqFRtvvHGLfBkEukvg178uvzRyNQeAk9fgwR1Xu/POiJkzIyZP7vi1riBAgAABAgQIECBQLwJr1qyJV155JXc4G220UfTuLSyRiyOTAAECFRTwv7QVxNQUAQIECBAgQGB9CNx8880xderUFrcaM2ZMzJ49u0W+DALdJVBu+eehQyPGj++uXrV93yefjPj5z9uul1cj/acpAJwnI48AAQIECBAgQKBRBNILy/vss0/ucGfNmtU0F6jiyUBur2USIECg9gQsAV17z0yPCRAgQIAAAQIECNSEQLkAcPr6t2cVz0Q68x7F009HPPFETTwenSRAgAABAgQIECBAgAABAgTqVKCK/9qlTsUNiwABAgQIECBAgEADCCxZEvHnP+cPtNqXf+5sALez1+erySVAgAABAgQIECBAgAABAgQItE9AALh9TmoRIECAAAECBAgQINABgTlzIpq2/spNEyfmZldN5uuvd64rnb2+c3d3NQECBAgQIECAAAECBAgQINDoAgLAjf5vgPETIECAAAECBAgQ6AKBcss/b7ddRPqp5rT55p3rXWev79zdXU2AAAECBAgQIECAAAECBAg0uoAAcKP/G2D8BAgQIECAAAECBLpA4K678hut9uWfU68nTMjve3ty097Gu+3WnprqECBAgAABAgQIECBAgAABAgS6RkAAuGtctUqAAAECBAgQIECgYQWefjrib3/LH34tBIAPPzxiwID8/reV+9GPRvgCuC0l5QQIECBAgAABAgQIECBAgEBXCggAd6WutgkQIECAAAECBAg0oEDa/zcv9egRccABeSXVlbfpphFf+cq69enf/m3drnMVAQIECBAgQIAAAQIECBAgQKBSAgLAlZLUDgECBAgQIECAAAECmUC5/X933TUiBVdrIV10UcRHPtKxnn7zmxH77NOxa9QmQIAAAQIECBAgQIAAAQIECFRaQAC40qLaI0CAAAECBAgQINDAAqtXR9xzTz5ALSz/XOh5v34Rd9wRMWlSIaf13+nr5jPPbL2OUgIECBAgQIAAAQIECBAgQIDA+hAQAF4fyu5BgAABAgQIECBAoEEEHnkk4pVX8gdbSwHgNIJNNom4886Ia66J2Hbb/DEVctesiZg5s3DmNwECBAgQIECAAAECBAgQIECg+wQEgLvP3p0JECBAgAABAgQI1J1AueWf+/atzeWRe/WKOPXUiGefjbjvvtYf14wZrZcrJUCAAAECBAgQIECAAAECBAisDwEB4PWh7B4ECBAgQIAAAQIEGkSgXAB4330jBg6sbYQddmi9/088EXH//a3XUUqAAAECBAgQIECAAAECBAgQ6GoBAeCuFtY+AQIECBAgQIAAgQYReOediAceyB9srS3/nD+KtnOvu67tOmoQIECAAAECBAgQIECAAAECBLpSQAC4K3W1TYAAAQIECBAgQKCBBNISyW+/nT/gegsAb7xx/jhnzYpYtiy/TC4BAgQIECBAgAABAgQIECBAYH0ICACvD2X3IECAAAECBAgQINAAAuWWf95ww4gPf7i+ADbbLH88b74ZcfPN+WVyCRAgQIAAAQIECBAgQIAAAQLrQ0AAeH0ouwcBAgQIECBAgACBBhAoFwA+8MCIXr3qCyB9Abzppvljsgx0votcAgQIECBAgAABAgQIECBAYP0ICACvH2d3IUCAAAECBAgQIFDXAkuXRvzxj/lDrLfln9MoezbNpD73ufzx3n9/xNNP55fJJUCAAAECBAgQIECAAAECBAh0tYAAcFcLa58AAQIECBAgQIBAAwjMmROxenX+QOsxAJxGevLJ+eNNuddeW75MCQECBAgQIECAAAECBAgQIECgKwUEgLtSV9sECBAgQIAAAQIEGkSg3PLPW28dsf329Ymw884Re+6ZP7b/+38jVq3KL5NLgAABAgQIECBAgAABAgQIEOhKAQHgrtTVNgECBAgQIECAAIEGESgXAP7Yx+ob4JRT8sf3wgsRd9yRXyaXAAECBAgQIECAAAECBAgQINCVAgLAXamrbQIECBAgQIAAAQINIPD88xHPPJM/0Hpd/rkw2mOOiRgwoHC29u/rrlv73BkBAgQIECBAgAABAgQIECBAYH0ICACvD2X3IECAAAECBAgQIFDHAnfeWX5wEyeWL6uHkg03jDj66PyR/L//F/HSS/llcgkQIECAAAECBAgQIECAAAECXSUgANxVstolQIAAAQIECBAg0CACc+bkDzTtkbvFFvll9ZRbbhnod9+NmDmznkZqLAQIECBAgAABAgQIECBAgEAtCAgA18JT0kcCBAgQIECAQIlAnz59YtCgQS1+BpRbh7bkWocEKi2wZk3EXXflt1rvyz8XRr3//hHbbls4W/v3jBlrnzsjQIAAAQIECBAgUO8CPXr0aDFfLcxhe/XqVe/DNz4CBAhUhUDvquiFThAgQIAAAQIECLRb4Pjjj4/0IxGoBoG5cyOWLMnvSaMEgJv+fiv+5/+MuOCClg6PPx7x4IMRe+3VskwOAQIECBAgQIAAgXoUSMHeRx55pB6HZkwECBCoGQFfANfMo9JRAgQIECBAgAABAtUn8Ktf5fepd9OrpunL2EZJJ54Y0bPM7Oq66xpFwTgJECBAgAABAgQIECBAgACBahAo81cU1dA1fSBAgAABAgQIECBAoNoFygWA0xevgwdXe+8r178RIyIOOSS/vR/9KOKtt/LL5BIgQIAAAQIECBAgQIAAAQIEKi0gAFxpUe0RIECAAAECBAgQaBCBd9+NuO++/ME2yvLPpaM/5ZTSs/eP33gjIgWBJQIECBAgQIAAAQIECBAgQIDA+hAQAF4fyu5BgAABAgQIECBAoA4FHnggYtmy/IE1YgD48MMjhg7N97AMdL6LXAIECBAgQIAAAQIECBAgQKDyAgLAlTfVIgECBAgQIECAAIGGECi3/HNa+nmPPRqCYK1B9u0bkfYCzkvpS+l58/JK5BEgQIAAAQIECBAgQIAAAQIEKisgAFxZT60RIECAAAECBAgQaBiBcgHgiRMjevduGIa1BnryyWudrnUyffpap04IECBAgAABAgQIECBAgAABAl0iIADcJawaJUCAAAECBAgQIFDfAmlf2z/8IX+Mjbj8c0HiQx+KmDChcLb27xtvjFi1au08ZwQIECBAgAABAgQIECBAgACBSgsIAFdaVHsECBAgQIAAAQIEGkDg7rsjVq7MH2gjB4CTyCmn5LssXBjxs5/ll8klQIAAAQIECBAgQIAAAQIECFRKQAC4UpLaIUCAAAECBAgQINBAAuWWf95ii4gddmggiJyhHntsRP/+OQVNWdddl58vlwABAgQIECBAgAABAgQIECBQKQEB4EpJaocAAQIECBAgQIBAAwmUCwAffHADIZQZ6kYbRXz60/mFP/1pxMsv55fJJUCAAAECBAgQIECAAAECBAhUQkAAuBKK2iBAgAABAgQIECDQQAIvvBDx5JP5A2705Z8LKuWWgX733YiZMwu1/CZAgAABAgQIECBAgAABAgQIVF5AALjyplokQIAAAQIECBAgUNcCv/xl+eFNmlS+rJFKDjggYptt8kc8Y0Z+vlwCBAgQIECAAAECBAgQIECAQCUEBIAroagNAgQIECBAgAABAg0kUG7553HjIrbeuoEgWhlqjx4Rn/98foXHHov43e/yy+QSIECAAAECBAgQIECAAAECBDorIADcWUHXEyBAgAABAgQIEGgwgbvuyh/wgQfm5zdq7uc+F9GzzIzruusaVcW4CRAgQIAAAQIECBAgQIAAga4WKPPXEV19W+0TIECAAAECBAgQIFCLAn/5S0TaAzgv2f93bZWRIyMOPnjtvMLZzTdHvP124cxvAgQIECBAgAABAgQIECBAgEDlBASAK2epJQIECBAgQIAAAQJ1L1Bu+edevSIOOKDuh9/hAZZbBvr11yNmzepwcy4gQIAAAQIECBAgQIAAAQIECLQpIADcJpEKBAgQIECAAAECBAgUBMoFgCdMiNhww0ItvwsChx8esckmhbO1f1sGem0PZwQIECBAgAABAgQIECBAgEBlBHpXphmtdJfA/fffHw888EC7bt+/f//40pe+VLbuwoUL48Ybb4y//vWvkY4322yz2GmnnWLnnXeOSZMmxYABA8peq4AAAQIECBAgQKD+BVaujPj1r/PHafnnfJd+/SJOOCHiqqtalt97b8Szz0aMGtWyTA6BehFYvXp1XHHFFZF+tyelueduu+2WW3XVqlXxs5/9LH7V9CbK3//+93jrrbdi3Lhx2Zx1r732irFjx+ZeJ5MAAQIECBAgQIAAAQKNJiAAXONP/M4774y77rqrXaMYNGhQ2QDwTTfdFNdcc02kCXUhzZ8/P9LPHXfcEbfffntceumlscEGGxSK/SZAgAABAgQIEGgwgd//PuKNN/IHLQCc75JyJ0/ODwCvWRMxfXrEd79b/lolBGpdIAVq//u//7vdw/jABz6QGwB+6aWX4pxzzonnnnturbYeeuihSD8zZ86M888/Pw455JC1yp0QIECAAAECBAgQIECgEQUsAV3jT/3pp5/u9AhSgPfqq6/Ogr99+/aNj3/84/H1r389Pve5z8V2222Xtf/444/HWWedFa+++mqn76cBAgQIECBAgACB2hQot/zzwIERTR/fSWUEdtklmgJa+YU33BBNX0bml8klUA8CTz31VKeHsWzZsvjGN75RDP6OHj06TjrppGzeelDT2ydpHpteZv7Od74TP/7xjzt9Pw0QIECAAAECBAgQIECg1gV8AVzDT/Dtt9+OBQsWZCPYfffd48ILL2x1ND17toz3L126NC6//PLsuvSF8NSpU2PXXXcttjO56XOFNImeM2dO0/J0z8aMGTPia1/7WrHcAQECBAgQIECAQOMIlAsA779/NAVgGsdhXUZ6yikRDz/c8sr0x/mf/zziE59oWSaHQD0IzJs3rziMyy67LFLwtrWU5qXN0/XXXx/PPPNMlj1x4sT45je/GX369MnOjzjiiJg7d26ce+65kQLFVzWtt75/0/8obbrpps2bcU6AAAECBAgQIECAAIGGEWgZEWyYodf+QNMEeE1aN64p7bDDDjF06NBWfzbeeOMWg541a1asWLEiyz/jjDPWCv6mzN69e8eUKVOKeyn9vOlvp9I+SxIBAgQIECBAgEBjCTTFVeJ3v8sfs+Wf811Kcz/72Yi0H3Beuu66vFx5BOpDoLBqVa9evWKXps/h25q39u/ff62Bv9G07vzs2bOzvM0222yt4G+h4vjx47P8dJ6+BC7UL5T7TYAAAQIECBAgQIAAgUYTEACu4SdemEinIYwZM2adRpKWf05pwIABTV8d5H92kL4cPuaYY7J66avjFASWCBAgQIAAAQIEGkvg17+OphcH88csAJzvUpqb3sU86qjSnPePb7894pVX3j93RKCeBArz1m222abpJYgyb0G0MuC777470jw0pU9+8pPFL3+bX7LPPvvEiBEjsuwUAF65cmXzKs4JECBAgAABAgQIECDQMAICwDX8qAsT6TSEdQkAv/jii8U9fdOyz4UltPJIdivZtOzOO+/MqyKPAAECBAgQWE8CaQWQ9IVT3s966oLbNKBAueWf0yqrTR/fSe0QSMtA56UUWE97AUsE6k3g5Zdfjtdeey0b1rrMWdOFjz32WJFljz32KB7nHaStkVJ6pemNikceeSSvijwCBAgQIEBgPQnkzVdTnkSAAAEC60dAAHj9OHfJXQoB4I022ig233zz7B7pL4QXLVoUr7/+epv3fPzxx4t12tqHKS0fnZbqSintBSwRIECAAAEC3Scwc+bMbPuHtAVE6c+nPvWp7uuUO9e9QLkAcPr6t0ePuh9+RQY4aVLEBz6Q39SMGfn5cgnUskBhzprGMHbs2OJQ0rZCCxcuzF5kKmaWOSjMW3s0/Q/NdtttV6bWe9ml81rz1lapFBIgQIAAgS4V+Mc//rHWXLV03jp37twuvbfGCRAgQOA9gd4galMgvS1VmNCmN6n//Oc/x4ymvzVK/we6fPnybFBpf6T0f66nn356bLXVVi0GumDBgmLe8OHDi8flDlKQOb1JnZbfSm9yb5o+92gj/bpprcCXXnqpbK30h4EhQ4ZE+r169eqy9RQQIECAAAECBAh0n8CSJekrvPz7W/453yUvNwXK01fA3/pWy9L092APPRQxYULLMjkEalWgNACclmdOLzD99Kc/zV5aTmPq27dvjBo1Kg455JCmJdKPanqZpOXbJClQnNKwYcOid+/W/wqj8GJ0qv/888+nX22m+fPnN/231/QfX5mUviROc9YVTZ/qF+baZarKJkCAAAECBAgQIECAQNUItD57qppu6khzgTSZTRPQlFLQ94tf/GLzKrGk6W/q0s9vf/vbOOOMM+LII49cq86yZcuK5+kL37ZS+tK4kN544412BYCvueaaePjhhwuX5f7eYostIk2633nnndxymQQIECBAgAABAt0rkL7+bVpoJjcdeGButswyAiedFHHRRfme06cLAJdhk12jAvPmzSv2/IILLoj05W9pSnPaJ598MvtJLw+nOml+WEjp5ePCi8LrMmcttNPa7xTgTfdtLaU+paWsBYBbU1JGgAABAgQIECBAgEA1CQgAV9PT6EBfSt+kTpPi/v37xy677BJpL99NNtkknnvuubjnnnvihRdeyCapV1xxRWywwQZx8MEHF+9SGgDu169fMb/cQWkdE99ySvIJECBAgAABAvUnUG7559GjI7bZpv7G25UjSktAp6+mf/nLlne5+eaIpj+2x4ABLcvkEKhFgaeeeqrY7RT8HTlyZOy2226x4447xtKlS+OJJ56Iu+66K6vz6KOPxrnnnhvTm96E6NOnT5Znzlrkc0CAAAECBAgQIECAAIEOCQgAd4ireiqXBoDTUsyXX355bLvttmt1cPLkyXHVVVfF7bffnuVf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JLn1paQVK0qrBrFd99hjj3V1XKGnn37ad0CLFi10+umnM/o3Nj72QgABBBBAAAEEEEAAAQQQQCApAqwBnBRGToIAAggggAACCCCAQPoLnHhi4nW02Xv//OfEj+fI4gm45ZzUr1/xzlESR5922mm65pprgpc67LDDdO+99wY/s4EAAggggAACCCCAAAIIIIAAAqkXIACcemOugAACCCCAAAIIIIBAWgi0bi116pRYVc44Q6pfP7FjOSo5Av37y42kjXyuH3+UZs6UW5c48j6UIIAAAggggAACCCCAAAIIIIBA9gsQAM7+e0wLEUAAAQQQQAABBBAICowYIeXFuRBMlSrS8OHBU7BRSgLNmkmdO0e++LffSkccIbVs6b1ecOQjKUEAAQQQQAABBBBAAAEEEEAAgWwSIACcTXeTtiCAAAIIIIAAAgggUISABQj79Clip5BiCxaPHy+1ahWSyWapCZx8ctGX/v576dxzpQEDpJ07i96fPRBAAAEEEEAAAQQQQAABBBBAILsECABn1/2kNQgggAACCCCAAAIIFCnw9ddF7uLboUED6fXXpXPOiW1/9kqtwMqV0gMPxH6Nhx+WW4839v3ZEwEEEEAAAQQQQAABBBBAAAEEskOAAHB23EdagQACCCCAAAIIIIBATAIffih98UXkXW2N2Y4dpXvvlRYulLp2jbwvJSUrMGSItGJFfNccOVL64IP4jmFvBBBAAAEEEEAAAQQQQAABBBDIbIE4V//K7MZSewQQQAABBBBAAAEEcl1g1KjoAg0bSjNmRN+H0pIXsPV9n38+seveeqs0bVpix3IUAggggAACCCCAAAIIIIAAAghkngAjgDPvnlFjBBBAAAEEEEAAAQQSEvjxR+m117wPLUvPwBsmTXJfflnavTuxytio7zVrEjuWoxBAAAEEEEAAAQQQQAABBBBAIPME+Jon8+4ZNUYAAQQQQAABBBBAICGB0aOlnTu9Dy1f3juf3PQQmDMn8XrYPZ87N/HjORIBBBBAAAEEEEAAAQQQQAABBDJLgABwZt0vaosAAggggAACCCCAQEICGzdKTzzhfWjLlhIjgL1t0iW3uCN4bQppEgIIIIAAAggggAACCCCAAAII5IYAawDnxn2mlQgggAACCCCQRQLPPvus7r333rAWtWjRQhMmTAjLJwMBE7Dg76+/eltcdZV09dXeZeSm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AOfy3d/T9mHDhumWW27RzJkztdBNmn/llVfK5osPPD0dILLAcDpP/xyoJ+8IIIAAAggggAACCCCAAALZI3DwwQe79eNu1R1uDr8tW7boscce870K91v3228/N33wcJW1p11JCCCAAAIIIIAAAjELtG4tzZnjnyly7Fj/duBgGw92zDH+kbgWWA2MD6tZU7roIv9r9WrpxRf9o3Q/+kjatStwdGzvu3fbbC/+lwtPyNYMtimj4z2PXe2EE/yzXvInYWz27JW9AvSKsvfextyyvfbaS/fcc4/69Omj6tWr+44LDf42bdpUd911l3v6xv3rTkIAAQQQQAABBBBAAAEEEECghAVOcN/kPfzww77poAMB3kC/Nc/NXXiuGypi5TXimb+whNvA5RBAAAEEEEAAgXQWqFhRbnCY3Mwq0tVX59d0/Hjpww/9o3EDwd/8Uv+WTdFsSzS4CUV90znbusJHH50fLC68f7TPFvS1OiQS/G3XTnrlFalChWhXoAyB3BBgBHBu3OciW2kd6EsuucT3+umnn/T999+rovsXv5Gba6mBm9Q/0MEu8kTsgAACCCCAAAIIIIAAAggggEAKBOzhZBv9a6OArc+6cuVK7bvvvm79t/1VrVq1FFyRUyKAAAIIIIAAArkpUKVKfrsrV87fjmXL1gh2K036XsuW+aeMtmmiP/88lqOLt8/tt0tuvBsJAQScAAFgfgzCBKwDbS8SAggggAACCCCAAAIIIIAAAukmUKlSJTctYFvfK93qRn0QQAABBBBAAAEE8gXc+DLfaGIbUbx4sfT88/5por/6Kn+fZG699ZZ0yinJPCPnQiBzBZgCOnPvHTVHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBNJe4IADpOuvl778UvruO+nf/5batElutWfMSO75OFvxBP744w8NGTLE3W93w/ekm2++We+9917gI+8pFCAAnEJcTo0AAggggAACCCCAQKiATVu6aNEi7dixw5e9yy1qZJ83b94cuhvbCCCAAAIIIIAAAggggAACCGStwIEHSv/4h/T119K8edKwYVLLlsVv7i+/FP8cnCF5Aps2bdLo0aPdutDLgyd94okn3EMA7ikAUsoFCACnnJgLIIAAAggggAACCCDgF/j000/VrFkzrVmzxpdhT8PaZ55+5ScEAQQQQAABBBBAAAEEEEAgFwUO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AggggAACCGSpAAHgLL2xNAsBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBHJPgABw7t1zWowAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAlkqQAA4S28szUIAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgdwTIACce/ecFiOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQJYK5GVpu2gWAggggAACCCCQtQInn3yyWrVqFda+KlWqhOWRgQACCCCAAAIIIIAAAggggEBJClSuXFnjx4/3vGTTpk0988lEAAEEEEiuAAHg5HpyNgQQQAABBBBAIOUC9evXl71ICCCAAAIIIIAAAggggAACCKSbQLly5XTUUUelW7WoDwIIIJBTAkwBnVO3m8YigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEA2CxAAzua7S9sQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCnBAgA59TtprEIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJDNAgSAs/nu0jYEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEMgpAQLAOXW7aSwCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCGSzAAHgbL67tA0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBHJKgABwTt1uGosAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAtksQAA4m+8ubUMAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgZwSIACcU7ebxiKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQDYLEADO5rtL2xBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIKcECADn1O2msQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkM0CBICz+e7SNgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQyCkBAsA5dbtpLAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIZLMAAeBsvru0DQEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEckqA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40j7BvJtvaZZs2YFPnq+V6lSRWXLMhu5Jw6ZCCCAAAIIIIAAAggggECGCoQ+DGzB3/3331/t27fXwQcfrPXr1+vbb7/VtGnTfK2bPXu2rrvuOj3++OMqX768L68k+qyrV6/WJ598ElXY+qyBB7Cj7kghAggggAACCCCAAAIIIJAmAgSA0+RGxFuN0ACwTcU8YsQIHXDAAQVO079/f40ePVqTJk3y5Y8aNUodOnRQ4Mnp0KevbeqtolLoPlu3bi1qd8oRQAABBBBAAAEEEEAAAQRyVCCwzm+g+eeff74uv/zysGmebaaqYcOGad26db4HmZ966ildcMEFvsPoswb0eEcAAQQQQAABBBBAAAEE4hMgAByfV9rs3b17d99T0z///LO6dOmiBg0ahNXNRgUPHTrUN52WBYw3bNig559/Xpdeeqlv39D1k2xN4aJS6D6hweCijqMcAQQQQAABBBBAAAEEEEAgtwSsvzly5EhZn9W2Tz75ZE+AQw891NdvtemfLT355JPq1auXbNRtvH3WHTt2BK9BnzVIwQYCCCCAAAIIIIAAAgjkoAAB4DS66TfccENwfSOvalnHuHfv3r4iW4PIXkWlcuXK+Z6evvHGG327ho4crly5cvDwWKazCh31W7Vq1eCx0TZs6ulo00X37dvXN91WaEc92vkoQwABBBBAAAEEEEAAAQQQKB2BePqsFoC16Z5jSZ07d9aBBx4o66/ag8dLlizRQQcdpHj7rKH92lj7rLZM0uGHHx6xmjaj1tVXXx21rx7xYAoQQAABBBBAAAEEEEAAgVISIABcSvBel/300099nV2vMsuzJ6ATSc2bNw8etmjRouB2aIc4dG2l4A6FNkKn3wo9ttBuBT7Wq1evwOfCH2xtp+3btxfO5jMCCCCAAAIIIIAAAggggECaCaSqz2rNtH5r4IFl67daADi0D5yqPmu1/8/eecBbUZx9eOgIiKBSREABUYpYooiCBkRJLESDBfsXuxKxxST2EruIPbEnaqJo7JFg72BXBFTEhg1pKiBFEBE+njGz7N17zp45555zds/lP7/fvWfL7Oy7z8zuzLzvzDvNmhn+soV11llHfdZscHRcBERABERABERABERABEQgtQTqplYyCVY0Aq1atQrSwg20C+3atXObZvbs2cF2tg0Xh1nFzZs3zxZNx0VABERABERABERABERABERABEQgLwLhwcOu39qoUSODAZbg+qNxic6aNSs4vfbaawfb2hABERABERABERABERABERCB1Y2AZgCnKMfvueeeWGlY09cFRj/PnTvX4Ja5S5cu7nDG33BHuUOHDkGcDTfcMNj+6quvgu1MG7honjlzpj3VuXNnQ0dcQQREQAREQAREIBkCY8eONbikjIb11lvPnHzyydHD2hcBERABERCBohDIp89KH3LevHn2j0HJa621VqwMrr9JpHC/tVOnTubbb781eKSiD9yyZcus6UybNi04171792BbGyIgAiIgAiIgAuUlgM767LPPznjT448/vkpdnzGSDoqACIiACNSYgAzANUZYvATatm3rlRgd39133926i2ZdpUcffTTWIMv6SS507NjRbVoXW84F84QJE4LjmTYmT54cuL3CFZeCCIiACIiACIhAcgQ++eQT85///KeaAJtssokMwNWo6IAIiIAIiECxCPj2WbnfLbfcYkaNGmVvfdhhh5nDDz88Voxs/Vb6n2+++aa9duLEiWbAgAFZ05k0aVJwTv3WAIU2REAEREAERKDsBFjyL1OfFUEOPvhgGYDLniO6oQiIwOpIQC6gKzDXWQfJdWaXLl1qXnvttdincJ1uIm2//fZBXNLp06eP3f/000/Nhx9+GJyLbjzxxBPBob59+wbb2hABERABERABERABERABERABERCBKIHevXsHh/BcsWLFimA/ujF+/HgzZcoUe5jZv+EZwGGDb7hfGk0D989vv/22PcyAKLmAjhLSvgiIgAiIgAiIgAiIgAiIwOpEQAbgCs3tsCH3mmuuMQsWLMj4JPfff79xs3u7du1qBg0aVCXe4MGDg/3LL788YzqvvPKKGTNmjI2H+63tttsuuEYbIiACIiACIiACIiACIiACIiACIhAl0KtXL9O8eXN7+OOPPzb//ve/o1HsPm6dr7zyyuDcsGHDTL169YJ9+rEYdAnjxo0zmYzAuJm89NJLrZcs4h100EH8KIiACIiACIiACIiACIiACIjAaktABuAKzfqhQ4caOtQE1vg96qijzEsvvWTXRWKtpY8++shcdNFFBuMwAVfRJ5xwgqlTp47dd//69esXzAJmxDVx3nrrLbu28Ndff23uu+8+c/rpp9uONNcee+yx1dJwaelXBERABERABERABERABERABERABCDQqFEjc9ZZZwUwrr/+emvonT59up0NjOH3mWeeMYceeqj5/PPPbbxtt93W7LDDDsE1biO8vj393DvuuMOQDn1f3D6fcsopgZtovGX179/fXapfERABERABERABERABERABEVgtCWgN4ArN9vr165u//OUv1mA7bdo089VXX5nTTjvNPg3n6Ai70Lp1a2sM7tatmztU5fecc84x5513nnnjjTcMI7NPOukkO+L6p59+qhJv+PDhRu6fqyDRjgiIgAiIgAiIgAiIgAiIgAiIQBYCeI865phj7HrAy5cvNw899JD9Y4AyyxmFw957723oc2YKPXv2tP3fSy65xCxZssTceuut9o+ZwuF+6/rrr28uu+wyU7euxrpn4qhjIiACIiACIiACIiACIiACqw8B9YoqOK9btWpl/vnPfxpcZDVt2jR4Emf8bdGihdlxxx1txzib8ZeLcMs1cuRIc8ghh5g111zTphPuRHfu3NmMGDHCMOtYQQREQAREQAREQAREQAREQAREQAR8CRx88MHm73//u9lyyy2DS5zxFwNuly5dzJlnnmkHIjOYOVsYOHCguemmm6w7aGfgdf1Wrtt3333tefrBCiIgAiIgAiIgAiIgAiIgAiKwuhPI3rta3clUyPM3aNDAHHjggWb//fc3M2fONF988YUdSb3xxhubtm3bej8FHeijjz7a/uFKCxfSuOzq0KGDWW+99TSC2pukIoqACIiACIiACIiACIiACIiACIQJbLTRRubaa681ixYtsn1WPFjRX2V9X/qdvoHBycz+ZRYwfdZZs2aZdu3amY4dO5pmzZr5JqN4IiACIiACIiACIiACIiACIlDrCcgAXEuyGAMuHV/+ahqKlU5N5dD1IiACIiACIiACIiACIiACIiACtYcAnqu6d+9u/2ryVI0bNza9evWyfzVJR9eKgAiIgAiIgAiIgAiIgAiIQG0lIBfQtTVn9VwiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAKrHQEZgFe7LNcDi4AIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAI1FYCMgDX1pzVc4mACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACIiACKx2BGQAXu2yXA8sAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIg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eB82AKO/6tChg8OYyC/GjLABmEEO4VmcSQiF18ewAXi//fZLfAIDRmnngYmZwEl/L8kXjK3OYw592KRlwmtD2ACcBv0VxtawARgDW9Kc+AaEDcAMTElapnfffbeKATgN+qtXXnmligEYQ3nSnBhwHjYAMxgzaZlK8Y3+ebHGUqSsNEVABERABERABERABERABERABERABERABERABERABERABERABERABERABMpKQAbgsuLWzURABERABERABERABERABERABERABERABERABERABERABERABERABESgdARkAC4dW6UsAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAmUlIANwWXHrZiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiIgAiJQOgIyAJeOrVIWAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQgbISkAG4rLh1MxEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREoHYE6K1aG0iWvlEUgGQKTJk0yU6dODW6+7bbbmrZt2wb7SWyMHz/efPHFF8Gtt99+e7PuuusG+0lsvPbaa2bGjBnBrQcMGGBatGgR7Cex8dJLL5mvv/46uPWgQYNM06ZNg/0kNp5//nkzb9684Na77babadiwYbCfxMZTTz1lFi1aFNx6jz32MHXrJjum57HHHjM//PCDlQlZkCnp8Mgjj5jly5dbMRo1amR23XXXREVCFmRygbJNGU8yLF261Dz66KOBCHwD+BYkGSjblHEX+FbyzUwy8A3gW+DCeuutZ/r06eN2E/n95ptvzLhx44J7d+jQwWy11VbBfhIbM2fONK+++mpw686dO5vNNtss2E9i48svvzRvvfVWcOtNNtnEdO/ePdhPYoM2Cm0VF3r27Gm6du3qdhP5/fDDD83kyZODe2+xxRZmww03DPaT2HjvvffMRx99FNx66623Nu3btw/2k9iYOHGi+fTTT4Nbb7fddqZNmzbBfhIbb775ppk2bVpw61/+8pdm7bXXDvaT2OA7wPfAhYEDB5rmzZu7Xf2KgAisJDB//nzz7LPPBizor9JvTTJ8++23ZuzYsYEIfHP59iYZZs2aZV555ZVAhDS2LTbeeGPTo0ePQMYkNqibqKNcQB7kSjJQh1OXu7D55pubTp06ud1Efmnr0OZxgbYzbegkQxr1V7SdaUO7sMMOO5h11lnH7SbyG21b7LjjjmattdZKRBZ3U/pi9MlckP7Kkaj6G9Vf7bnnnqZOnTpVI5V5Dx0IuhBCvXr1zG9+85syS1D9dmnXXzVr1szsvPPO1QUv4xF0jugeXWjZsqXp37+/203kd+HChebpp58O7t2qVSvTr1+/YD+Jjaj+ql27dmabbbZJQpTgnuj60fm70LFjR/OLX/zC7Sbyi00E24gLaWhjOlmK+SsDcDFpKi0REAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERSJBAstPFEnxw3VoEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEahsBGYBrW47qeURABERABERABERABERABERABERABERABERABERABERABERABERABFZbAjIAr7ZZrwcXAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQARGobQRkAK5tOarnEQEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERWG0JyAC82ma9HlwEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERKC2EZABuLblqJ5HBERABERABERABERABERABERABERABERABERABERABERABERABERgtSUgA/Bqm/V6cBEQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQgdpGQAbg2pajeh4REAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREIHVlkD91fbJ9eAiUGICP/74o6lfv76pU6dOXndatmyZmTNnjr2madOmhr9yhaVLl5pp06aZGTNmmFatWpnOnTvbZyjX/bPd56uvvjKzZ8+2p7fYYou8mWZLN9/jK1asMDNnzjRTp041n332mVlzzTXNBhtsYDbccEOz1lpr5ZtcUeMvWLDAfPrpp2bx4sWmdevWZv311zcNGzYsyj3ef/99Qx7wjL179y5KmkklwrtF3vFL3nXq1KnkZZxyw3v13XffmYULFxry6qeffjLNmjUL/tq1a2eaNGlSdizffPONmT9/vlmyZIn54YcfbJlx353mzZubRo0alV2mNN2Qb2Ih7xF5DU8C72NtD5XIibLPd41vZteuXc0666yTeDaprsudBaWs63hnx44da4WgrbHuuuvmFiilMWhL0iagTDVu3NhsvPHGZu211y65tOQPbUhX133//ff2/tQr1HktWrQw1HcKIiAC6SKgerw4+UH7ftKkSTaxNm3aJPa9W137rKrHa16O01qPk7ezZs2yfVb6rbxrrm3Bb9K6mJqTr1kKlah7rNkTF3a16rrCuEWvSktdh1z05enzoKNFB9OhQwfTsWNH+1uvXr2o6GXbhxH9MP7QG6+33npF1TdIR1uzrEyzjrZmT5b96jorH3pF9tM6IwIikA+BefPmmX/84x+244eRCaVbt27dzJZbbmn2339/L2PKBx98YI488kh728MOO8wcfvjh+YiQNe7cuXNthYjRK2qUpnK67777zF133WV4BhcwYG+++ebmj3/8o2nfvr07XPbfa6+91srHjZ977rmiGezoPDzyyCP2ebp06WK22mqrrM/24YcfmksuucR8/PHH1eLQsPjNb35j86ply5bVzhd6gLx4+umnzauvvmrT7tGjR5WkUPDec8895v777zfffvttlXMoWnfccUdzwAEH2MZPlZN57lx22WXmv//9r72K5zz55JNNgwYN8kyldNGXL19uvvzyS8O7Q+cHYw7K7nBgAMHNN99snnrqKUN8FyjjO++8sznppJOKPtji+eeft+V1/PjxVd4rd+/wb926dQ1lcLPNNjODBg0yPXv2DJ8u2jbK+Mcff9w8+eSTtpFMgzlboFwzCIRy17dvX7PddttV+3Zku7aSj/ONGTNmjC1PvIN0ILp372722GMPmz8+z3bqqaeal19+2UZ1BiWf6yopTlo50bFnoA6GJgYxRMMnn3xibrrpJvPKK69UOYUBmHp6v/32S6ycq65Ltq77+uuvzV577WXLBeXhggsuML169apSTpLeQTFLe+SLL76wBupf/OIX1eouvvG33XabmT59ehVx27Zta0455RSz7bbbVjle0x0GUzzwwAPmzTfftN/NXF1LlLRwpc21++67mzXWWKOmIuh6ERCBAgioHi8AWo5LGPyy66672lj/93//Z4466qgcV/idVp/Vj5PqcT9O0VhprccnT55sHn74YTNx4kQ7uCyufUG7nz7rpptuanbbbbeiGlqivNKyn2bdY1oY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gAiIgAiIgAgUTKB+wVfqQhGoEALTp083N910k5V2iy22MEOGDElccsnklwXiVLmc7rrrLvPhhx/aBzjppJOKvta2H5mqsSRTVR7Z9sQpG5mqx8WpKo9se+KUjcyq46rrVrGI2xKnODqrzonTKhbaEoFKI6A60y/HxCk3J9UFuRkRQ5zEyY+AXyyVp8rlpHrFL+/ESZz8CPjFUnny41SMWJoBXAyKSiPVBBYsWGCeffZZ+zd58uRUyCqZ/LJBnCqX06RJk4L3bsmSJX4PUuJYkskPsDiJkx8Bv1gqT7k5qa7LzYgY4iROfgQUSwQql4DqTL+8E6fcnFRn5mZEDHESJz8CfrFUniqXk+oVv7wTJ3HyI+AXS+XJj1MxYskAXAyKSkMEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEUkBABuAUZIJEEAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREIFiEJABuBgUlYYIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIpICADMApyASJIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIAIiIALFICADcDEoKg0REAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERSAEBGYBTkAkSQQREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQASKQaB+MRJRGiKQdgL16tWzItatm54xD5LJr9SIU2VyqlOnjnF5x3YagmTyywVxEic/An6xVJ78OLnvpdop8bzEKZ6POytOjoR+RaCyCKjO9MsvcfLjpLpAnPwI+MVSeRInPwJ+sdJWnlSv+OWbOImTHwG/WCpPfpyKEavOipWhGAkpDREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQAREQgWQJpGc6ZLIcdHcREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAEREAERqHgCcgFd8VmoB3AEFixYYGbMmGEWLlxo2P7+++9N48aNTdOmTU2zZs1MixYtTLt27Vz0svxKJj/M4lSZnHAgMW3aNPPdd98F791PP/1k3zfeOf5455o0aeL3gEWIJZn8IIpT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AQXr1q0Lt956a9iyZUtYv379gKjJrdanMi9OnBx3+THQxufTqH2GRwF9yo+DVMopSeSXo+iU77FSAjMv4ByszJxTmdMofu7qk33nO7XBY8B3j4NtJpa04WRemSg8+DmnwTYTSzhN1Bj8nNNgmy5KJIC7UNcmAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEWhBwC+gWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAUBCeAWUFVJgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBLgQkgLtQ1yYBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRaEJAAbgFVlQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEOhCQAK4C3VtEiBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAWB/wB39l+Y4ZY8JwAAAABJRU5ErkJggg==" width="960" /></p>
<div class="sourceCode" id="cb64"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb64-1"><a href="#cb64-1" aria-hidden="true" tabindex="-1"></a><span class="co">#保存</span></span>
<span id="cb64-2"><a href="#cb64-2" aria-hidden="true" tabindex="-1"></a><span class="fu">ggsave</span>(<span class="at">file =</span> <span class="st">&quot;output/graph_job_seeker_total_shock_on_2nd_safetynet_WLS.pdf&quot;</span>, <span class="at">plot =</span> graph, </span>
<span id="cb64-3"><a href="#cb64-3" aria-hidden="true" tabindex="-1"></a>       <span class="at">dpi =</span> dpi_num, <span class="at">width =</span> width_num, <span class="at">height =</span> height_num)  </span></code></pre></div>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).

## Warning: Removed 2 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 12 rows containing missing values (geom_point).

## Warning: Removed 12 rows containing missing values (geom_point).</code></pre>
</div>
<div id="robustness-check" class="section level3" number="12.2.3">
<h3 number="12.2.3"><span class="header-section-number">12.2.3</span> Robustness check</h3>
<div class="sourceCode" id="cb68"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb68-1"><a href="#cb68-1" aria-hidden="true" tabindex="-1"></a><span class="co"># 2021Feb12Waki</span></span>
<span id="cb68-2"><a href="#cb68-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-3"><a href="#cb68-3" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-4"><a href="#cb68-4" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_bind　 <span class="ot">&lt;-</span> graph_koguchi_number_bind <span class="sc">+</span> </span>
<span id="cb68-5"><a href="#cb68-5" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(a) Emergency Small Amount Funds&quot;</span>)　<span class="sc">+</span> </span>
<span id="cb68-6"><a href="#cb68-6" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb68-7"><a href="#cb68-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-8"><a href="#cb68-8" aria-hidden="true" tabindex="-1"></a>graph_koguchi_number_bind_covar　 <span class="ot">&lt;-</span> graph_koguchi_number_bind_covar<span class="sc">+</span> </span>
<span id="cb68-9"><a href="#cb68-9" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(b) Emergency Small Amount Funds, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb68-10"><a href="#cb68-10" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb68-11"><a href="#cb68-11" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-12"><a href="#cb68-12" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_bind　 <span class="ot">&lt;-</span> graph_sogo_number_bind<span class="sc">+</span> </span>
<span id="cb68-13"><a href="#cb68-13" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span>  <span class="st">&quot;(c) General Support Funds&quot;</span>) <span class="sc">+</span> </span>
<span id="cb68-14"><a href="#cb68-14" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb68-15"><a href="#cb68-15" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-16"><a href="#cb68-16" aria-hidden="true" tabindex="-1"></a>graph_sogo_number_bind_covar　 <span class="ot">&lt;-</span> graph_sogo_number_bind_covar<span class="sc">+</span> </span>
<span id="cb68-17"><a href="#cb68-17" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(d) General Support Funds, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb68-18"><a href="#cb68-18" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(ymin, ymax), <span class="at">breaks=</span><span class="fu">seq</span>(ymin_num, ymax_num, interval))</span>
<span id="cb68-19"><a href="#cb68-19" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-20"><a href="#cb68-20" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_bind　 <span class="ot">&lt;-</span> graph_jukyo_number_bind<span class="sc">+</span> </span>
<span id="cb68-21"><a href="#cb68-21" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(e) Housing Security Benefit&quot;</span>) <span class="sc">+</span> </span>
<span id="cb68-22"><a href="#cb68-22" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(<span class="sc">-</span><span class="dv">50</span>, <span class="dv">200</span>), <span class="at">breaks=</span><span class="fu">seq</span>(<span class="sc">-</span><span class="dv">50</span>, <span class="dv">200</span>, <span class="dv">50</span>))</span>
<span id="cb68-23"><a href="#cb68-23" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-24"><a href="#cb68-24" aria-hidden="true" tabindex="-1"></a>graph_jukyo_number_bind_covar　 <span class="ot">&lt;-</span> 　graph_jukyo_number_bind_covar<span class="sc">+</span> </span>
<span id="cb68-25"><a href="#cb68-25" aria-hidden="true" tabindex="-1"></a>  <span class="fu">labs</span>(<span class="at">title =</span> <span class="st">&quot;(f) Housing Security Benefit, with covariates&quot;</span>) <span class="sc">+</span> </span>
<span id="cb68-26"><a href="#cb68-26" aria-hidden="true" tabindex="-1"></a>  <span class="fu">scale_y_continuous</span>(<span class="at">limit =</span> <span class="fu">c</span>(<span class="sc">-</span><span class="dv">50</span>, <span class="dv">200</span>), <span class="at">breaks=</span><span class="fu">seq</span>(<span class="sc">-</span><span class="dv">50</span>, <span class="dv">200</span>, <span class="dv">50</span>))</span>
<span id="cb68-27"><a href="#cb68-27" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb68-28"><a href="#cb68-28" aria-hidden="true" tabindex="-1"></a>graph_2nd_tier_diff_models <span class="ot">&lt;-</span>  (graph_koguchi_number_bind <span class="sc">+</span> graph_koguchi_number_bind_covar)<span class="sc">/</span></span>
<span id="cb68-29"><a href="#cb68-29" aria-hidden="true" tabindex="-1"></a>                                (graph_sogo_number_bind <span class="sc">+</span> graph_sogo_number_bind_covar)<span class="sc">/</span></span>
<span id="cb68-30"><a href="#cb68-30" aria-hidden="true" tabindex="-1"></a>                                (graph_jukyo_number_bind <span class="sc">+</span> graph_jukyo_number_bind_covar)<span class="sc">/</span>legend_model_types <span class="sc">+</span> </span>
<span id="cb68-31"><a href="#cb68-31" aria-hidden="true" tabindex="-1"></a><span class="fu">plot_layout</span>(<span class="at">heights =</span> <span class="fu">c</span>(<span class="dv">2</span>,<span class="dv">2</span>,<span class="dv">2</span>, <span class="fl">0.5</span>))  <span class="co">#0.3から0.5へ変更 2021Sep7 Waki</span></span>
<span id="cb68-32"><a href="#cb68-32" aria-hidden="true" tabindex="-1"></a> </span>
<span id="cb68-33"><a href="#cb68-33" aria-hidden="true" tabindex="-1"></a> </span>
<span id="cb68-34"><a href="#cb68-34" aria-hidden="true" tabindex="-1"></a>graph_2nd_tier_diff_models</span></code></pre></div>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 24 rows containing missing values (geom_point).

## Warning: Removed 24 rows containing missing values (geom_point).</code></pre>
<p><img src="data:image/png;base64,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EEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESADiHEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoIEFSABq4IPHpiOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQAIQ5wACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAg0sQAJQAx88Nh0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARKAOAcQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGhgARKAGvjgsekIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJAAxDmAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEADC5AA1MAHj01HAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQIAEIM4BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQaWIAEoAY+eGw6AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIkAHEOIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDQwAIkADXwwWPTEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAgAYhzAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBBhYgAaiBDx6bjgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAACUCcAwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIINLAACUANfPDYdAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEESADiHEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoIEFSABq4IPHpiOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggQAIQ5wACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAg0sQAJQAx88Nh0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAARKAOAcQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGhggQ4NvO1sehsUGDt2rFl77bXNjz/+aOaff34zYsQI07lz56pL5HI5s8EGG5h3333XtGvXzjzxxBNm/fXXr8p2TJ482Tz++OMVXVePHj2qtj8V3REWjkAbEvjkk0/MY489ZoYOHWq+/PJL8/XXX5tJkyaZeeaZxyy00ELev+WXX9707t3b+3536MAtQLmnx6BBg8wvv/wSzP6nP/3JdO3aNeh3O9JM686Xdfe9995rpk+fHlrszjvvbDp16hQaRg8CtRLQ+anztFKlT58+Zo455qjU4ptquQMHDjS//fZbsE9bb721WWCBBYJ+OhBAAAEEEEgjkCSO89BDD5mpU6cGi1W8Zamllgr6s+qoVSyHOE5WR5DlINB8AsRyqndM08Rn0kxbyT0gllNJXZadhQCxnCwUW78M4jitN2zNEvS8Vvf7fll33XXNMsss4/e2+vPRRx813377bbCcXr16maWXXjropwOBOIF29o/fXNwIhiFQjwJ6cK1kG5Urr7zSHHfccTXbzKeeesrogYjKcsstZ4YPH25mm222im/Pm2++adZaa62Krmfvvfc2d911V0XXwcIRQCAbAQUlzj77bPP+++8nXuC8885r9tprL3POOefwUDexWsuESkB1b+p1k7/NNtu0TOB0pZnWmS3Tztdff92ss846ecu8/fbbzf777583nAEIFBJ47bXXTM+ePU2XLl0KTVL28O+++87o2lSpMmbMGNO9e/dKLb6plqvEwJ9//jnYp5deeskouEBBAAEEEECgHIEkcRwFyD/++ONg8Xfffbfp27dv0J9lRy1iOcRxsjyCLAuB5hAgllP945gmPpNm2krtCbGcSsm2veUSy2n+Y04cp7bHePXVV/eeD/tbccMNN5jDDjvM7y36meT7ueKKK4ae/dx2223mgAMOKLpcRiJAE2CcAw0joIQUP/nnD3/4gznyyCNruu1bbbVVkAA0cuRIc95559V0e1g5Agi0LQEFyDfeeGOz2267hW4AkygoY/y6664zupbqk9LcAvqjIK5cf/31cYMZhkCegBLe9IerkkDcN07yJmQAAggggAACCCDgCNRbHEebRizHOUB0IoBA1QWI5VSdvGFXSCynYQ9d3Ww4sZy6ORRsCAJ5Anw/80gYkLEACUAZg7K4ygioKZvjjz8+WPill15qOnbsGPTXquOyyy4z7du391Z/8cUXh7I8a7VNrBcBBJpfYNy4cUbNTj3//POt2tkpU6aYo446yvTr169Vy2Hm+hX46aefjKqBjSt6w2DYsGFxoxiGgCegikJvueUWL1nwpptuMr///jsyCCCAAAIIIIBAIoF6jeNo44nlJDqETIQAAhkLEMvJGLSJF0csp4kPbhV2jVhOFZBZBQJlCvD9LBOO2VILdEg9BzMgUAOBY445xkyaNMlb84Ybbmi23377GmxF/ipV9ZqaT7n11lvNjBkzzEEHHWReffVV06FDdb9aa665pllsscXyN7DMIWussUaZczIbAghUWmDatGneW6tjx47NW9VGG21k9thjD9OtWzfv36KLLmq+//578/nnn3v/XnzxRaPq9HW9csv5559vFllkES8ZyB1Od+ML3H///UZNK/lFv1vvvfee32tUJakSOygIxAno+nHIIYeERrVr1y7UX8keNbGqmsqyKKoOmYIAAggggAAC1ROo1ziOBOohlkMcp3rnImtCoB4EiOXUw1FonG0gltM4x6oet5RYTj0eFbYJgZkCtf5+chzajkB1sxTajit7mqHA4MGDzX333Rcs8eyzzw6666HjjDPOMHfccYf3QF01KVx++eXm1FNPreqmnXzyyWb33Xev6jpZGQII1EbgxhtvzGvya6211jLXXHONWW+99fI2Sok9/gP0gw8+2Jx55pnmrLPOMqqO3y0nnnii6dOnj1HSEKV5BKJVRl977bVm0003DXbwnnvu8d6A7ty5czCMDgTqRWDvvfc2us+iIIAAAggggEBjCdR7HEeatY7lEMdprHOarUWgtQLEclor2LbmJ5bTto53s+0tsZxmO6LsTymBI444wkyYMCGYTM9qKAjUWoAmwGp9BFh/UQFVh+Ym06j2HzV7U09lqaWWMvvtt1+wSf379zfffvtt0E8HAgggkJXAr7/+aq644orQ4nQNevzxx2OTf0IT/q9H09955515SYO//PJL3rLj5mdY4wh8+umn5j//+U+wwSussILZZJNNzCqrrBIM++GHH7zzIRhABwIIIIAAAggggAACrRBohDiOdo9YTisOMrMigEAqAWI5qbja/MTEctr8KQAAAgg0mMChhx5q+vXrF/xTTZ8UBGotQAJQrY8A6y8q8PDDD5sPP/wwmOboo48OuuupQ1Vb+2Xq1KlGb3VQEEAAgawFXnvtNfPFF1+EFnv99debBRdcMDQsSY+aLlx22WVDk+raNX369NAwehpX4Pbbbzd6AOOXrbfe2uvceeed/UHep5oBoyCAAAIIIIAAAgggkIVAo8RxtK/EcrI44iwDAQRKCRDLKSXEeFeAWI6rQTcCCCCAAAIIlCNAAlA5asxTNYHLLrssWNccc8xhtt1226C/njpWXXVVs8wyywSbdPXVVxu93UFBAAEEshT46KOPQovr0KGDUc1o5ZQ555zTHHjggaFZlcDoJl2GRtLTUAK///671zylu9F+AlDfvn3dwea9994zL7zwQmgYPQgggAACCCCAAAIIlCPQKHEc7RuxnHKOMPMggEBaAWI5acXa7vTEctrusWfPEUAAAQQQyFKgQ5YLY1kIZCnw6quvmqFDhwaL7N27t9ED63KLbqDfffddM3bsWDN58mQzZcoUM/vss5v55pvPLLDAAkbtMs4999zlLt7ssssu5sILL/TmVw0dAwcODDUNVvaCG2zGGTNmmDfffNN8/vnn5uuvvzYLLbSQ6d69u1l99dU972K7M23atGDen3/+2fzhD38wyy+/vFl44YWLzZZ43Lhx48w777zjtcepRIf555/fLLLIImadddYxc801V+LllJpQ+/3f//7XTJo0yUsMU1BR51iSonPzk08+MarudeLEid6+K7lMy6hEqZaJu+06BqNHjzbjx483SmDRMVhttdW888SdrtzuMWPGmM8++8w7B9W8UY8ePUzPnj3N4osv7q2v3OXWw3y6frlF1y8lR5Zbtthii1Azi1qOkkFWXHHFshZZr9//Sl//y8Kq8ExPP/2093vnr0bnyUYbbeT1Lr300mb99dc3L730kj/aqCapcpPJgoXEdNTrOaFNVW1XCsS+//775quvvvKu07oerb322q2634hhqMmgSl9ra7JTTb7SSh8z3VfonNd9hu6DunXrZlZaaSWvCZSsaL/77jtv+R9//LF3vzXvvPN63y3VOKffYwoCCCCAQHMLZB3H8bX0d53uXfX3608//WQWXXRR729t/Y61thDLMaae79mrGbMgllP421Tp+1StmVhOYf/oGGI52cTyo6710E8sp/RRaOZYTjWutaWFmSKtQCWPWzXiONpfYjlpj3r9Ta9nOnqx+8svv/Sewy622GLe81U1e1zLUun7u2b5TajI8yvbNAQFgboUsEEYtVsS/Lv33nvL2s6HHnoot8MOO+Tsg/JgWe5y/e727dvn7EO/3M0335yztfekXtewYcNCy1955ZVTLyPJDG+88UZoPdr+f/7zn0lmzWSaTTfdNGd/PLx/K6ywQrBMm7yTO+OMM3I2EJe3fdpGmwCTO+2003L2ZiKYx++wyUI5205mzibhxM5rf6Ryjz32mD95qs8ff/wxd/HFF+dWWWWV2GVr22adddbclltumXviiScSL9smDQUONjknmM8mgeU6deoUWlfHjh1z++23X27kyJHBdNGO559/Prfddtvl2rVrF5rXPz9tAkvu8ssvz9nAnDfrXXfdFaxfx+Oqq66KLrJgf6VMtEL3/NA2+8UmdOX69++fs8lMsfun/VxjjTVyf//733P2x86fLfGnTejL2Zq3cjYAXHD5Og777rtvziZXxS7XJl/lllxyyZCrlllOsTWthJZz5513lrOYvHlsE115+2cDonnTJR0g68MOOyx30kkn5XTu6vpX7Dx1j28jfP8rdf3v0qVL6Dg8/vjjBcnTTFtwIWWM2G233ULbaGvQCy3luuuuC43XddAGvEPTJOlptHNC1yKd68stt1zOJiCGDPzrrSw233zz3ODBg5MQBNPo+uP/Purz2WefDcYl6bCJWaH57UOugrO57llfa23iRrAdXbt2zTOySVLBeO3nfffdV3A704z49ttv89Z1/vnnp1lE6mmb5ZiV2vH//Oc/OZtIX/Aewyb/5XQf4hebIB86FsXORc1jH8Tm9Puk75X/PYr71P2cbWolZ//491fFJwIIIIBAkwmUG8fR/Yz723H33Xd7MjaA7f0tbV8GC433p7XJpbnzzjsvZwO/ZUtWI5ZDHCfd4alkzIJYTv6xqOTfFvlrCw8hlhP2SNpHLGfm84K0sfw08Zk00yY9bkmmI5YTr9QMsZxKX2uJ5cSfO3FD6yX+Frdt/rBKx3G0nkaN5dia7UNxyeOPP95nK/qp385oHPDYY48tOo8/8rfffsvZF6ZD63WfMenZohsT1rM7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/W6qen69rKHfr3feece7h9tkk03y7lP0d3jS2htdtUrHcojj1EccR8ecWI575s/sdu8Fq3GfSiynJQFI1zpiOTnv5bJqxPLT/M2eZtr8b1V5Q4jlhN2aLZZT6WstsZzw+VOsr17ib9FtrHQcR+trllhO9FnclVdeGeXM699ss83y/nbQ73CSZ8BqJcL9+yQaJyuVANTa76d7/XC3Q92qlEAtjNx+++3eC6xKLlE8V80ORqdVv14crkSpxP2du52V/k0YO3ZsXgUPTz75pLsJRbv1N2jUW4mZ0VKt51daLwlAUX36ay6gB/B60OZ+WT777LPE23XIIYeE5tXDBSX+lCr//ve/QwkbWr+qcktTG4IyAqM3EHoAkmWpp8CRe4yURDNhwoTYXdVD1UK142j4CSeckFMb79GiZAol7bjrUfc111wTnTTo10XVTSzS9GqiS1XPFSo6bnpgFV3PgAEDCs0SChq58+nHWOeSzmNt/yeffJL7v//7P2+YuzA1meLOp269qa8fmrii5R133HF58/jLUPNjhUq1TLT+QjcjugkqVIOA5jv44IPz9k3NcRUqyvRWwpm///rUmzHFjrNqXIo2C6jrQ/T6EnVWjTtJrwN6mOpukxK6dOyyLDpft91229B63HWqW+tV7S5qdk5NsOlczKIUOr718v2v1vU/TSAozbRZHCM9TI+eDy+88ELsonUuKSHAnb7Y9y5uIfV+TihBxd0/dSuRVMlPhcp3330XW2OQqlWN+63yl9PaYx29f0haBbG7f1lfa+OScnT9rUSJW1ep5NbWbkczHjOZ/OMf/8g773WPoUS3uKIqppWg655Lbnc0sKFl6F7HnUZvxowucc+ra1G0dqFdd901bpMYhgACCCDQYAKtjeMUSgDS3/J6wSGu6G+0U045JfR7pN8m1R6UtlQ6lkMcpz7iODov3AQg916mLcdyCv1Nl/XfFvInlkMsR+dBtBDLyXkvRrjXJHUTywknyzV6LKea19q4+AqxnJYrTz3G36oRx5FAs8Ry9LzNvWb27t275QDHdCmeG41H+fPvvvvuMXO0DBozZkxoXYp/RZ8VlUoAallaznth3V+3/1nq+1no+qHn13o5olC5/vrrQ9uu9a211lqFJi97eCXv77RR1Yrvq5k0/5joc++9905sohcu3Xl79eoVO2+17nm0chKAYg8BA2spoIcM7hdl7rnnTvzwWhms0R9w1SqTtOgtaHfd6o7L0iu2vGiCwa233lps8tTj4gJHCpapyaQs/pWqdSXux2allVYq+lBUOxmXyCNf1QBTrOihlFuLjObR23+FSvQBlt42T/p2+c033xw6/vPMM0/BdjHjgkZKPFLCT6ny/fff51Q9uXuuKYHi559/LjVrrlAmbbEEoGqZaOPjzg/9gRZt/iy6o6rCb/PNNw+ZKDlMtSDFFWU1u35607NU7RxajpJ9tD3uvKrNwi2qIcodr+4hQ4a4kxTsjmYil9NWaMGFOyOmTp1aMIs7uu3q1xtlSuxQNvx7773nLCldZ9zxrZfvfzWv/2mSBtJMm+5oxE+tKkDdc0C/D8VKNPmxffv2OdXYkbTU8zmha2r37t1DHkqO0x9uSUrURq7F3pJo7bGO3r+kTQCqxLW21kEjXV+UIFLuv2iVu9Hj3ozHTEGNxRZbLHTe64/7Us3aKlH0wAMPDM3nX0viEoCizV1eccUVUd7Y/miVy/p9igZOYmdkIAIIIIBAXQu0Jo6jHYtLANK9TZL7tv79+4d+v3Q/m6QZgChoJWM5xHHqI46jY04sJ3rmVy+OozUTyyGWEz0DieXMFCGW03JmNGssJy5+Vok4jiSJ5bScT3Fd9RZ/q1YcRxbNEst57bXXQvf/elG82LM11eTix7j0qZfC/X69cFDs5enrrrsumFbzKIEjWmqRALT00kvnpkyZEt2UvH69JO7vq7/vqoUmy1LJ+7tq/iaoIhHXShWV6D4lSdHxcOe96aab8mar5j2PVk4CUN4hYECtBc4999zQF2W99dZLvEmqEtr9kin546uvvko8f1w1XarRI03Zd999Q9uw1157pZm95LRxgSN3n1vbrSbRipW4m9UkVaE9+OCDIRdtp6p3/eabb4qtzhsXfQirH5S4ouMXrWlIzbmkKTrfXMNDDz00dva4oJFuBpKUuOa41BxZkqJEmeiPiba3UAJQNU20/XHnR5JqFDVvtNp17dezzz6rUaGic0ZBXfc4HXbYYaFpivVE22zVA+ZoiQZ/9VC0VNHNuhIW3e1SMlGlim5MlYwQrQnJXX+h7h49enhvy44aNSrV5sUd33r5/lfz+p8maSDNtKkORszEesAfrTa70LXBn12Jc9HzRG9RJC31fE7o2hPdt2I1u0X3WTfl0RqSlFBUqFav1h7r1gYgsr7WyqPWQaPo8Uvbr9rlipVmPGZx91sPPfRQMYZgnJJu496IiksA2njjjUPfLzX7mqSMGzfOu1fTd0ttj++3336J7gWTLJtpEEAAAQRqJ9CaOI62Oi4B6KKLLkq0Q/o7TIF79z6h1Ju8cQuuZCyHOI7xEj/i3KsdsyCWk38U4v6mq8TfFsRyZtoTywmfg8Ryct7LGsRyWs6LZo3lVOtaK0liOS3nU1xXvcXfqhXHkUWzxHL0W9q1a9fQ/b+avipUTjzxxGBavUgeTVgpVotOtCWGuFrla5EAVKoiB99C++b+naTutM+8/WXFfVb6/q6avwlKNtKLiq6XaucqVdTyiTuPntephYFoqeY9j9Y9i90oCgJ1JTBixIjQ9tiH86H+Yj32ob2xX0hjg09m//33N7b2DWNrWik2S2jcEkssYWxiQWiYfaAa6i/VE93e6P6Umr/RxtvaFIytGq3kZi+11FJ50/Tt29cssMACecOjA2xVdqFBtkq5UL/fc9dddxn74+/3GluDj7FZzUF/kg6bHBKazD7QCi0zNNLpsTeOxtZm5Awp3GkfxIVGym/DDTcMDSvUY5PavPO70Pjo8FqaaFvsw3JjH8BGNyu2394oGfvgMTTO3kCE+tVjb7KMrS0gGG7bqE91nO3DRm89K664orG1IxlbM46Jfs9tTT7B8tXxr3/9y9gbgNCwaM/gwYONrZknGKz9se13B/1Zd9hMdWNrwzK2ViNzySWXmGWWWSbxKvQd0jy2SSNz9NFHG/uHYeJ53Qnr6ftfD9d/16YW3fYPxtCx1DliH2QU3RSdA7ZpoNA0tuY6Y5MNQ8OS9tTTOaFrhVt0PTriiCPcQUW77c26sUmkoWlsM43m5ZdfDg2rh55KXGvrYb+aeRsqdcyi571tF937nUtiaZNyTPT3r9B8nTp1Co2yyc2h3+bQSKfH1k5kbHKdsclGxlZpb2yTqInuBZ1F0IkAAgggUIcC0bhHNC6SdpMVxznmmGMSzabfpJNOOik0rW0a2tjEoNCwUj3RbY7uU6n5G2l8Pd2z1zpmQSwn/8yt5H0qsRxjiOWEzzliOcYQywmfE9G/aZs1llOpa21Yk76sBSpx3KLnfKXiOLJolliOfkv1TMcttnkztzfU7Y5THDz6PNO+hB6a3u/RMyN3nH3522y22Wb+6Jp9Kra25ZZbJlq/Yv96pugWW3OQ29uqbp2/lby/i34/KvmboGeTtkKPkMfdd98d6o/rUUzULXrm2LlzZ3eQ113tex4SgPIOAQNqLWCrHwttgq2pItRfrGfJJZf0vqD9+vUzt99+u7HNJRWbPG+cLoTRL6Z90z9vumIDbO0sodHR/QmNbIIe23RVor2wGbl509m3/PKGxQ3QD6tbbBNabm/QrQdJbrG1+Rib0esOKtkd3Z9ffvnF6IFvqaLjrhuPUkXLs9m5ocls7TKh/lI9e+65p7GZqKUm88bX0kQboOQtWytTom3V98/WxhCaNu779/DDD4em2Xrrrb1Eo9DAIj3aJgWD3333XXP//fcb2/Rf3s2vfuiVWOQXnXOPPPKI3xv7Gf2hV6JRNYqCt7aWLGNr8zFvvfWWsc2rmD/96U95yVRx26KEub/97W/ecbI1+cRNUnRY9PtSaOJqfP/r4fpfaP+rNfy2224LrWrTTTc19g3X0LC4nugD/y+//NIooa2cUi/nhP7w+O9//xvaBSW7RZMMQxPE9Bx00EHGvokXGhNdbmhkjXoqca2t0a60mdVW6pg98cQTIUN9v5Pcn/gzKXk+SVFAyi22qUxja/QxtplJd3Bstx60URBAAAEEmksgGvdIE8eJk9BLJErGTlpsVfyhSfV3jq1ZJjSsVE9biuXUyz27jkmtYxbEcvK/GZW6TyWWE7YmljPTg1iOMcRyWr4bbSmWU6lrbYsmXZUQqMRxq1YcRx7NFMvZfvvtQ4c4+szNH2lbiDG2Fhy/10vgid4Lu0k+wYS2Q7Eu98VxPYdKG1t2l5dVt579JC2q8KJbt26hySdPnhzqb01PJe/vavGbEH1W+/TTT5vo37qul55f3nfffe6ggi9XVvueJ5z2FdpEehCojUC0xg/V4lLp8tFHHxlb7Zn3L5pc4mYvJtmO6PZOmjTJq0EmaRJEknVEpznzzDO9B/7R4eX0KyM0TUk6fVzwLmlQMJqZHLd9Ok6vvvpqaFSvXr1C/Ul6bNu73gPzMWPGBJPr/FDtUMVK0mSmDz/80EybNi20qLjakUITRHr0IE/zlMrUrbWJNruUW2TXjJK9lHzgl7gEoOjDxbR+Wnap76POA91EquYfvyjbd9ddd/V7Q5/aZt0M+EWJZ6rhqppF54VqHdK/U045xUtyss22eEkQur7ZtnHNjBkzYjdJ192ddtrJPP7440ZJI0lLvXz/k25v3HRZXv/jll+tYaoJSn+UuEU14SUpe+yxhzn++ONDtVzdcMMNBc/3Ysusl3Ni5MiRxla1GdrUZZddNtSfpEeJiXoo8OabbwaTR39rghE17KjEtbaGuxOsescddzS2Wt6gP21HOcc87TrKnb4Sx2zChAlm/PjxoU1K+xup+xkFB0rd/+pB62WXXabmpIP1vfLKK0a1J6iGvW222cZ7o0o1HNZDcCTYSDoQQAABBCoikHUcRw9X0hQlbOslGfdvZP3tvcoqqyReTLVjOcRxjHe/Eb23rmYcRycHsZz8r0gl7lO1FmI5+dYaQiwn3qXUUGI5xhDLKXyWNEIsp1LX2sIq1RtDLKfFutSzjmrGcbRVzRTLURLMnHPO6dUyrX17++23jTyjLcK4z2w03eabb+79jeDOq5c99QJB9JnRo48+qlmConO7HooSSdIUmejZgV+izyf94eV8VvL+rhbx/TXWWMM7P3Q+qeh52r333luwdlrVUOQmVOnYpHm+lsS83HseEoCS6DJNVQWigaNojTzlbowSe/QGmL4sCgTpn2rM0Gf0IWG569B80aCRfjh0AUjS1FW567VtyBrbfme5s7dqvuj+pllYkpoptDz9MVyqKNFKTUq45aabbvIuzu6wJN3Rc1DnjG4MipWkzS8p4zha0v5ga3490Bs2bFh0UaH+WptoY9L+MePWuqP53QeL6lfRjZxbkp5H7jxJulVrgpsApGx8mSo5KFruueee0MPS3r17G73NVcuipLstttjC+6ftUPNkShBRVrb2y22uTOPVxJmSnnRzk/SBcb18/7X9xUq1rv/FtqHS49SMjvt9UQ0b6667rhk3blyiVevG1H3jRG8+6DcybQJFvZwT0eu4EMq51mo+fR/cBKBiWf+avhalEtfaWuxHdJ1rrbWWUS1MzVgqcczizs3oWz6lLJX8o6bASl07dN+jZlP79++ft0j98a9/ShBSQEVBGSUE6V+538O8lTAAAQQQQKCuBKL3Xq2N4yT9e8RFUHXw0QQgd3yp7uh9bKVjOcRxjPf3dS3jODoniOXkfzMqcZ+qtRDLybeOG0Isp0WFWE6LRaEuYjmFZOo/llOpa21hkeqNIZbTYl3qWUc14zjaqmaK5Sj2raa8HnjgAQ9ccXE19bXPPvu0HADb5SYAKUalVkOUJKhagPxx3377rfesTeeuW9zmp/TC97bbbuuOrll30tZB/A1M8nzVnzbtZyXv76J/Y2rbyo0rponv67mgXpb2iyoGKNQ8tZozdsu+++6b6Hm2O4+6K3HPQwJQVJn+mgrobWM3W04bEw3CpNnATz75xFx55ZXeQ011V6PEba8uVJVMAKrGfhVaR2sCe2mb5yq0DRruBvr86b744gujf60tSgAqVZK+NebWbqNl6qajnESRJD90tTbR/sU1/aTh5RbVCKQbMrdUKgFIN5B6COofs+nTp3vV+R1xxBHu6r3uWjX/lbchRQbojQNlqeufHspeccUVXjOJbi1Lyv6+5JJLzPXXX19kSS2j6uX737JFLV21uP63rL26XXo4oQQgtyihK23yjju/ulUL0IABA6KDi/bXyzmhZL1oSXLdjM6j/ugDqOh9Stw81R6W9bW22tvfFtdXiWOWReBIx0IPUEslAGm68847z6sKWffaug7FFT3UUxOafjOaa665pldD3t57713W/U/cOhiGAAIIIFBbgazjONqbcu7b9Pvlv6mpZehlrzSlLcVy6uWevR5iFsRy8r8llbhPJZaT75x0CLGcpFKNNx2xnPxj1pZiOZW41uaLMiRrgayPW7XjOPJopliOXmb2E4C0b6USgFRLtf9MUi/8+wlAmlcvw7oJQMOHDw/FxjbZZJNWPavWOrIqrbmXz2obtJxK39/V6jdBMUu1sKHngSpqWUPPiKMvDugZgZskpkSrpC0yaLmVfn41i1ZCQaBeBFQTj1uDgbZLCRJpi76MaqpH1UZfe+213hep1DLmmmsus/POO5toVm6p+aLj47Y3LqgRna9R+5M0z1WNfYsmhWS5Trd6vELL7dKlS6FRoeHRWlfKbRYjLjgZWpHtqbWJtkc1CWRZ4h68R6t1zGp92nZl7LpF2b7RMmLEiFCgWcl+rWmyJrr8SvTrfD3//PO95Ehd+9yiRJK4myt3Gr+7Xr7//vbos5bXf3c7qtmtP1A+//zzzFd5xx13hNo5TrKCejknotc/bVeS62bcPi600EKhwW7SXGhEDXuyvtbWcFfazKorccyiv5H6wzN6/iYBTlprkJZ/+eWXGzU32adPn0T30KpN64QTTvCaClMVyxQEEEAAgcYXyCqO40qU85JM9O/C6N/e7vLjuttSLKde79njjku5w5LEcbRsYjn5wtW4T9Vao9/Z/C0pbwixnNJu9XINcLeUWI6r0bpuYjkz/aJ/C9dbLKcS19rWnTnMnUQg6+NW7TiO9rGZYjmqkcdttksJPe7z5Xfeece4LXK4rXy43XJRfN0t9dr8l7bR3Wd3m6vdHT1/tf4s7+9qFd/X870///nPIc6454JqGsz9bVErPdEXiUML+V9Pte55qAEoTp9hNRPQwzldvNy3iFX1VZqiN5bV1ECxN5f1I9ejRw+z6qqreu35qdo3ZXAqGUPb4H5pNW2aEre9SQMKadbDtGGBuADhDjvsYLLIhtXb6lmVJZdcMrQo/Ujq7fi4YGNowkjP2LFjI0PyexvFJH/LCw9R81u60dZbpn6ZOHGi35n5pzJ2L7744mC5L730kvn000+964c/MFr7z1577RVkkvvTZPGpGx7dsOrNAP1beumlzeqrr96qReta2a9fP3PqqacGy1HNMUpq0rhGK7W+/tfK69Zbb63IqpW8qhtZfQ8arUQT23766SejGq6iw5Psl18LmD9tpWr0c69r/rr4rG+Bejtm8847bwhMQQ/9RkYDn6GJYnr8N1xiRsUO0n30/fff7yWPqonJJ5980gucxN0T+wvQ75iCLUogOvbYY/3BfCKAAAIINKBAFnGc6G7rb59FFlkkOrhof/QNav29lKbE/W4Ry0kjmH7aRopZEMtJf3zdOYjlEMtxz4doN7GcqEjr+onlzPQjltO686iZ566nWE6t4jg6vs0Qy1GMVk15DR061Dtl1RyVnmusttpqXr9qBHLLZpttFvTquYruT/wXobUMxcP8GoLcBCA9I9azRkpYoNL3d9E4fjXj+wceeGCodql77rnHnHPOOSGAaPNfajqsVKnmPQ8JQKWOBuOrKqAH+3pI4WZlpnm4rxvcrbfeOi/5R0EbZYP+8Y9/9BJ+VlpppYIPAfXw2y1uxqg7vFB33PaqGSFKZQXUbq5qb3KTtw4//HDvfKjsmtMtXbVSRYuSeZZbbrno4KL9Y8aMKTpeIxvFpOSOOBPoBkz7pSQcvxRL9vOnKfdTx6VXr17m5ZdfDhahH/v/+7//8/qVrKh+t1QqWUJVWr7wwgvBqvr27WviMo+DCRJ2HHbYYaEEIM2m6gcbLQGoHq7/CckznUz7PXjw4NAy9QecElzTFv0BfMstt4RmU3NwlTqnQyvKuCeuLWS9Bazf/7Ql+vZw0mSKGTNmJF6V7j3SJl0kXjgTJhZo9GMW96BUtYMlPWd9qHJrFNMf/vpN0T9ZKmn2qaee8hKC3nrrrdBbWFqXpjnuuOO85jZVcycFAQQQQKAxBVobx4nbazWjHve7FjetPyz6+5U2AYhYji9Zvc9GilkQy2ndeUEsh1hOoTOIWE6LDLEcY4jltJwPdCUXaORYTtz9bjXjOFJu9FiOEnP8BCDtj+JQfgKQ28SXkoXceLmSevT8Y9CgQZrNe0n/1Vdf9Z4h68WC119/3Ruu/9Q02GKLLRb00zFToNL3d7X8TVCegZ7r+8mkH3/8sXnllVe8xDntvfrdZ4ZqsnWXXXYpempU+56HBKCih4ORtRDQl6rcBKAzzjjDvPfee6HN9i/iSd7cUk0sbgKJFtTaBKDWNDsS2hF6igoo6KgA3wcffBBMN2zYsLpLANJbYx06dPAeevkbWqkEoEYx8R2Sfvbs2TOUAJSkNqToslUTiGpdSlLDlzJ33R9ztSvrJwBpuHu9WmWVVVpdK090W/3+5ZdfPpQApBvSLIre2NUNsBvwjqu+MYt1VXIZ9XD9r+T+FVq2EtCiiatq+rLcmstUBaXbLI/auNW1dI011ii0CXU5PC7hQX9Al5MAFH2YFPemchxC9H4ibhp/WLRKU384n9UVaPRjFpdwrvN37bXXTgWZJMm41AJ1r7PRRht5//r372/0FpZqFLvmmmu8P5Ld+S+77DKv6V53GN0IIIAAAo0l0Jo4Ttyeun+bxI2PGxa9Z9PfjWlKdJ3EctLolTdtI8UsiOWUd4zduYjlzNQgluOeFcYQy2nxIJZjYl9eIZbTco7QFS/QyLGceorjSLcRYzl6afrkk08OTg4lAKm1A71o6b5Mvemmm+Y9C1LN1H4CkBYwZMgQLwHo8ccfD7VSs+OOOwbLpyMsUMn7u1rG9/V3yj777GMuueSSYIcV11Syrkq0UoDddtvNzDHHHMG0cR3VvueZJW4jGIZALQWiWa/RIEyhbfvll1/MP/7xj9BoZWbqgp8k+Ucz+tl87kLc5sjc4YW6o9sb9yNeaF6Gt04g+kaW3javt6KsWAWO3PLmm2+6vSW79aB49OjRJafTBI1gkmhHnImigdxyEoC22WYbo4CuavhR9xNPPOGsIdy5++67e9P6Q3Ve+Q9HH374YX+w97nffvuF+rPsUQKQW5RlrNoVWlt0MxxNPkj7tmxrt6G189fL9b+1+1HO/LfddltoNp0n5Sb/aEEHHXRQaHnqUS1AjVaU6BO96dZ3Jm3RPUD0erv44ovHLka10LlF52XSEncdS5uAnHRdTNci0GzHTG9tRe+j3RrzWva8cJeS4f3qjwtPFR6TJNimNsDV1JcSCnV/7hYNq6cquN1toxsBBBBAIJlA9PcnGhdJtpSWqdwXe1qGFu5SjUHRJryifzcWnnvmmOg2E8spJZbN+EaJWRDLaf3xjn4n4/4GKrUWYjktQsRyZlpkEctvUa1eF7GceGtiOfEuDA0LNFMsp1ZxHIk2SyxH95LLLrtscJK8+OKLXm0+eqn1xx9/DIYr2SdaosOUAKTiNv+lfhKApBBfKnl/V4vfBHcvo016Pfjgg8Ho++67L+hWR3Ta0EjbU4vnVyQARY8C/TUXiAZZkj6EUBMd0YBPnz59vKzVpDv17LPP5k2aNgEour3R/clbAQMyE4gGjv7zn/+Y7777LtXyVb2fEsa0rC222MIccsghoUzhVAsrMHG0aaUrr7wydDNSYLZg8OWXX55X40cwMtLRKCaRzS7aG72pUPJOmuM8depUr7o+/eiOGjXKa5pEN9uFSufOnc3OO+8cGu03ueQmAClDXs1yVapssskmeYs+77zz8oalHaDrXrSq1Oh5k3aZ1Z6+Xq7/1d5vJaPpwblb9t57b7c3dbfOdZ3zbhk4cGCq75g7b6269X1cd911Q6u/8cYbUycZKLE4WiPWn//859By/Z7ZZ5/d7/Q+3drBQiNietxal2JGM6hCAs12zFSr3U477RTSUmA5TXKNarkrVfTW8hFHHGH09pTuc6MJPcXmV5W4J510UmgS/QbFBe5DE9GDAAIIIFDXAtG4RzQuknbj//nPf6aaJZqwPttss5nu3bunWkZ0m6P7lGphTJxYIPq3Z73GcbRDxHISH9bYCYnltLAQy5lpQSyn5ZwgljPTglhOyzlBV2GBZorlVCuOI81mjuWoGTC/KLFJ95P655bNNtvM7fW6e/ToYZZaaqlguJp4UjNN//73v4NhulddYYUVgn46wgKVvL+rxW+Cu3eqPKBXr17BINVIp2cxelnFbYlI58gGG2wQTBfXUYt7HhKA4o4Ew2oq0LVr19D6o2/eh0Y6PdEHdBq18sorO1MU71SiTzT7XnMkyYR1lxzd3uj+uNPSna2Aqvtzi97g85tqcocX61YzFPqRVzM4zzzzjLn11lvz3qYvNn+ScarqTQFJv6hZjBtuuMHvLfqpfbrqqquKTuOObBQTd5tLdav9TVXB5xcl/1x99dV+b8nPJ598MpTwovZbSzWPEs3gVQLQhx9+aEaOHBmsT2+iqYaDShW1XaukNLdoX/r16+cOStWtJCidj27RDUs5zSS5y6h2d71c/6u937fffntolfqjsbVBI9Was+eee4aWqxpB7rrrrtCwRuiJJkLo5jzNfuiNyrPPPju0q3qQFE0s8ieIVkv6zjvv+KOKfqqmn+hbA0VnqOLIaFBFq057X1TFzU29qmY8ZtGEVSW6RmvILASlRJxzzz230OhguK41um9RMEWJbjrX9Yds0jLvvPOGJp1lllm8pihDA+lBAAEEEGgogWjcIxoXSbszQ4cODWpdLTWvajMdMGBAaLJDDz3U6PclTYluc3Sf0iyLaZMLNFLMglhO8uMaNyWxnBYVYjkzLYjlzHQgltPy3VAXsZywRzl9xHLi1eo1/laNOI5EmjmWE72fVKswbgKQWuQo1OKBWwuQYsFqxl4vkPvFTS7yh7Xms9m+n5W+v6v2b0L02EafC6oWoH/961+hyZK0ClKLe550fw2HdokeBCojsNFGG4UW/Prrr3vtNYYGxvREm8fRJCNGjIiZMn7QxRdf7GXBRsf+/PPP0UFF+1XFnFui++OOoztbgT/+8Y9mr732Ci1UbwImbWJL58t1110Xmr93795mmWWWCQ1rbY+aj1FA0i26sXDbJHXH+d2q4erAAw8M3YD44wp9NopJoe2PG67v+uGHHx4apVqUos1YhSb4X4+mOfHEE0OjVIWjboCLFdVysMQSSwST6Fj9/e9/D/rVkeSHPjRDGT2nnXZa3lznn3++OeqooxLtvzvztGnTvOoro98PtZmbNljuLrcW3fVy/a/mvsdVG6nfm0LNU6XZNl1noiVpkmJ0vlr2az/mm2++0CYooSdaW2BoAqdHvwfR5pPUnm+h60X0PFRSjxJKSxXZ6l6nHouSVaPXgyTX2nrcl7htasZjptriovctSupRIl+pot+1JE3lrbPOOkbBE7fotyhpcd+k0jxaVlwAJOnymA4BBBBAoPYC0bhH0jhOoS3XAxrVxpukRuYLL7ww9LeQ7v/OOuusQosuOJxYTkGaio5opJgFsZzWnQrEcsJ+xHKMif49JqFaxPLDR6ayfcRySvsSyyltVGoKYjnxQvUaf6tGHEcizRzLUS0tCy64YHDgH3/8cfPSSy8F/XG1//gj3QQgDbvmmmv8Ud5n1s1/Ndv3s9L3d9X+TQgdfNuz++67G70w7RclAA0aNMjv9eLm++67b9BfqKMW9zwkABU6GgyvmcDGG29s1DyAX9ROo5o5KVX0NrGqbHOLkgLGjRvnDsrrVkDpzDPPzKsFw5/Qzfb0hxX61EMxt+ovTVeoqZBCyyhnuIz0QDPLf436hv+ll15q5pprroBRzV6o1pRSVYirNpetttoq7wHZcccdFywry47TTz899MOhDFBVJ60aiOKCnPoDWE1sPPLII6k3o1FM0uzYOeecE3qwL7/11lsv7/vnLlMJL/vvv79x25nXj7eaMSlV9MDfTfBRLQlqis0vakKsGt91JSK52+GvX4kKeuB70UUXeTUT+cOjn/o+6FxXLVLKetdbZ25RdZZJbljceeqhux6u/9V2eOihh/Kaptpnn30y2Qz9QRitBUq/bc8//3wmy6/WQuacc07z17/+NbQ6VdW5xhprFL2v0Pf7lFNOMccff3xoXiUBFqtVLpo4pd9mNUVaLJFY1+eUw+9LAABAAElEQVSjjz46tJ5665GjW+644w63t6G7m/GYqYa8aMLeJ598YtZff30TrdnAPXj6HTnyyCPdQUW7d91119B41ZiYpDY+Jf9EazI8+OCDQ8uiBwEEEECg8QTKjeMU21P9ZuhvNb2JG1d0z3bssceaSy65JDRa92vFmngOTfy/nlrEcojjtByJRopZEMtpOW7ldBHLCasRy6l9LD98RCrfRyyntDGxnNJGSaYglhNWquf4W7XiOBKpVixH9/CKv7r/kr6QGT5yyfr08uJ2220XTKw4mO61/VIsAUjP5NyXPd3noosssoj3zMlfTlafzfb9rOT9XbV/E6LHuHPnzsatpUvPSNxa//XsuVu3btHZ8vpr8vzKvlVDQaDuBHbZZZec/YYE/+yD9kTbeOqppwbz+PPbpKDcvffem7NJFaFl2GSAnG3yK2eTKkLz2It9qF/LTFoee+yx0LyrrLJK0lkTT/fGG2+E1uHvZ9afNnkqdptsgkBo/TJMUuQd3cZ33303yay5hx9+ODSvvaAWnc8GAEPT++u12Zo5m6GZs81UePP/9NNPubfffjtng4Y5++Z53jy2ppiC67FvfoWmtzU9FJy20Aj7oCy0DH87bQJcziZ65E444YScttm2Q5o3nc0UDg2zbw4VWo03vBomWlG554e/8TbpILRft9xyiz8q71PnqG/mf9obgpytTSlnExVyNnnP+97bGjxytlaDnG3qK2962xxQ3nILDdByotcHf732AX6h2TIfbgPgOZuslrcv/rboc9lll83Z7PScrSkpZwOUub59++ZWXXXV2PPcn89WcZ+zyRFFt7fc41uN7381r/9dunQJ+du3Cgq6pZm24EJiRmy55ZahbdA1zD64iJmyvEFXXHFFaPk6T2zTYHkLq+dzQhur335bFWnevsjLPhzKPf300zmbQJizyXG5999/P2eTW3L2LeS86e0f4zn7Vnje/kcHRK9hctM13AZ2c7a2rdz48eNzts3tnH2bJHS91LVF9wz+91Gfzz33XHTxQX+57v4CottZ7Fq75pprhrZL27biiivmbI17OZv4mCvn98/fDvdT56+7/+ou9dvmzl9ud9RC6230YyYLm/Ca52kfhub026lz0T40zdlmRXO6d9V327W3gZNQf9y5/+WXX+Zsk3ih6bQM+9ZVziYr58aMGeN9r7QtkyZN8s5720RhTt8ld122GbacbcpTk1EQQAABBBpcoNw4jna7Z8+eod8H9+8u21xzzlaz7v19p2ntCx25gQMH5mzSUWge/b5oObZ2BU2WqlQ6lkMcx+TqIY6jk4JYTv5Xo5p/W2jtxHJa4t3ufbG6ieXMtKlULD9NfCbNtPnfqsJDiOW0nP/FfheaMZZT7WstsZzGi79VOo6jK1O1Yjm2Vp28+3TFXytZ9Nwv+ruqfv1dYZuvL7rq1VdfPXZeWyNp0fn8kauttlpofvtinj8q9jPt97O11w/74nxo+wo9+43d2IQDK3l/V+3fhOguK0Yfd25pmK14Ijp5wf5qPr/SRpiCW8IIBGoooAdw7hfKtvOXaGsU6LFZpaF5/eXoYZ+tZiuni51uMKMPIDSdbZYpd8EFF4Tm14PApMU2zxOa17YPnnTWxNMROCodOLJZurk99tgjdCz888D/tLUEFUzm0DS2bce8pDH3IGURNNLyzjvvvKLb6W+v/6kblmuvvTbvQbESfIqVapho/a29GYk+iC32UFqJMNEgs++kTz3A7NSpU0HfY445phhZ7DhbJWfs8vS9rGZRctM222wTuy2uQdJuJUcNHz685C6Ue3yr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jVFblh988IFZcMEFY6ZkEAIzBXROL7roomby5MkBSffu3c0NN9xgevfuHQxzO77//ntz7bXXGrWb+vvvvwejVl55ZfP666+b2WabLRhGR+sEdK359ttvzbLLLmumTp1qXnvtNaMsdSVq+UVN/I0ZM8bMM888/iA+EUAAAQQQQAABBBBAAAEErEC9x3F0kIjlcKqmFSCWk1asutMTy6muN2tDAAEEEECgkMBOO+1kBg8ebBZeeGHvWe4KK6xQaFKGI4BAhQRIAKoQLIvNVkAP4Ndff32jqqRVHn/8cbPNNttku5Iylvbhhx+aFVdcMagVRM2A+dXalbE4ZmlDAmrya+uttw7OaX/XldCjc33xxRc3c889txk3bpyXaKJzXklAblHSj5J/NA8lO4Fbb73VHHzwwUUXqCz2k046qeg0jEQAAQQQQAABBBBAAAEE2qpAvcZxdDyI5bTVs7L1+00sp/WGlVoCsZxKybJcBBBAAAEE0gl8+eWX5pJLLjFnnXWWmXfeedPNzNQIIJCJAAlAmTCykGoInH766ebCCy/0VqWEh+HDh5tZZqltK3Y777yzeeCBB7xtUve//vWvalCwjiYRGDBggDnhhBPK2hvVIKSEs4033ris+ZmpsMDTTz9tttxyy4ITKEHrhRdeqPn1p+AGMgIBBBBAAAEEEEAAAQQQqAOBeozjiIVYTh2cHA28CcRy6vPgEcupz+PCViGAAAIIIIAAAghUX6C22RPV31/W2MACZ599tvHb237nnXfMnXfeWdO9efnll4PknwUWWMBcd911Nd0eVt54Ascff7x58MEHzdprr51449u3b+8FK5UAR/JPYrZUEy6xxBIFp19vvfXMI488QvJPQSFGIIAAAggggAACCCCAAAIzBeotjqOtIpbD2dlaAWI5rRWszPzEcirjylIRQAABBBBAAAEEGk+AGoAa75i16S0eNmyYWXfddb0mt7p162Y++ugjM/vss9fEZMMNNzRDhw711n3fffeZXXfdtSbbwUqbQ2DIkCHmrrvuMp9++qn57LPPzPjx483vv/9u1MxX165dTffu3c32229v+vbtaxZZZJHm2Ok63Yuff/7Z7Lnnnl4tYzoWHTp0MMsss4w5/PDDzSGHHGI6depUp1vOZiGAAAIIIIAAAggggAAC9SVQT3EcyRDLqa/zo9G3hlhO/RxBYjn1cyzYEgQQQAABBBBAAIHaCpAAVFt/1l6GwMSJE8306dO9OVXzTseOHctYSutmyeVy5quvvvIW0q5dOxIyWsfJ3DECOsenTZtm5ptvvpixDKqWwNSpU80cc8xhVPMSBQEEEEAAAQQQQAABBBBAIL1APcRxtNXEctIfO+ZIJ0AsJ51XpaYmllMpWZaLAAIIIIAAAggg0AgCJAA1wlFiGxFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQKCAwS4HhDEYAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEGECABqAEOEpuIAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAhARKACskwHAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBBhAgAagBDhKbiAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAIQESgArJMBwBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQYQIAGoAQ4Sm4gAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQCEBEoAKyTAcAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEGECABqAEOEpuIAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAhARKACskwHAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBBhAgAagBDhKbiAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAIQESgArJMBwBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQYQIAGoAQ4Sm4gAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQCEBEoAKyTAcAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEGECABqAEOEpuIAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAhARKACskwHAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBBhAgAagBDhKbiAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAIQESgArJMBwBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQYQ6NAA28gmNrHAY489ZsaNGxfs4Z577mk6d+4c9NOBAAIIIIAAAgg0k8DkyZPNlClT8nZp9tlnN4sttljecAYggAACCCCAAAL1JPD777+bm2++OdikeeaZx+yxxx5BPx0IIIAAAggggECzCegZ1i+//JK3W126dDHzzTdf3nAGIIAAAgggUEuBdjlbarkBrLttC2y++eZmyJAhAcJHH31kevbsGfTTgQACCCCAAAIINJPAtddea6655pq8XVpjjTXMwIED84YzAAEEEEAAAQQQqCeB6dOnm1lnnTXYJMVwFMuhIIAAAggggAACzSqw2267mREjRuTt3l/+8hdzxBFH5A1nAAIIIIAAArUUoAmwWuqzbgQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEWilAAlArAZkdAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIFaCnSo5crb+rrVZuh9993nVR34+eefm++++85069bNLLHEEma77bYza665ZiKi3377zTzxxBPmmWeeMWPHjjU//vijWX755c3KK69sevXqZZZbbrlEyxk/fry56667zKhRo4y6F1poIbPSSit5y/nTn/5kOnXqlGg5TIQAAggggAACCCCAAAIIIIAAAgg0o0BWsZysYjBZLacZjxX7hAACCCCAAAIIIIAAAggggEBbEyABqEZH/K233jIXXXSR+eKLL0JboHbT9U/JPFtssYU54YQTzFxzzRWaxu355ptvzIknnmhGjx7tDjavv/669++OO+4wp512mtlqq61C46M9AwcONDfeeKNRMpFflJSkf4899ph55JFHzKWXXmrmnntufzSfCCCAAAIIIIAAAggggAACCCCAQJsRyCqWk1UMJqvltJkDyI4igAACCCCAAAIIIIAAAggg0OQCJADV4ABPmDDBnH766WbatGne2lVDz6abbmrmn39+L5Fn8ODB5ocffjBPP/20mTFjhjn33HNjt1LTnHzyyUHyT8+ePc0GG2xgFlxwQTN8+HDz/PPPm19//dWcf/753vL69OkTuxwl+Fx33XXeuFlnndWoth/V/PP111+bF1980XzyySfmvffeM0cffbQZMGCA6dKlS+xyGIgAAggggAACCCCAAAIIIIAAAgg0o0BWsZysYjBZLacZjxX7hAACCCCAAAIIIIAAAggggEBbFSABqAZHXjXp+Mk/O+20kznuuONM+/btgy3ZZZddzJFHHmm+/PJL89xzz3m1AW2++ebBeL/j9ttv95Jz1K8Eon79+pmOHTt6o3fYYQfz9ttvm1NOOcVL/rn66qvNRhttZBZYYAF/du9zypQp5oorrvC655xzTnPhhRea1VdfPZjmgAMO8BKIhgwZYj799FPz97//3auVKJiADgQQQAABBBBAAAEEEEAAAQQQQKDJBbKI5WQVg8lqOU1+yNg9BBBAAAEEEEAAAQQQQAABBNqcwCxtbo9rvMOqkeeNN97wtmKhhRYyxxxzTCj5RyOUpKOmv/zywgsv+J3B5/fff28efvhhr1/LcZN//IlWWWUVb7j61bSXP70/Xp+DBg3yaglS9xFHHBFK/tGwDh06mDPPPNOoliKVJ5980vz4449eN/8hgAACCCCAAAIIIIAAAggggAACzS6QVSwnqxhMVstp9uPG/iGAAAIIIIAAAggggAACCCDQ1gRIAKryER89erSXjKPVrrjiikGNPdHNUC08s8wy8/CMGjUqOtqrGeinn37yhu+4444Fl6Mmwbp37+5NpwQgNSnmFlUZrdKpUyfTu3dvd1TQre3YfffdvX6tU0lAFAQQQAABBBBAAAEEEEAAAQQQQKAtCGQVy8kqBpPVctrCsWMfEUAAAQQQQAABBBBAAAEEEGhLAiQA1fBoF6tJ5/fffze5XM7buunTp+dt5bvvvhsMW2eddYLuuI611lrLGzxp0iQzbNiwYBI1MTZ58mSvXwlHfvNhwQROx5prrhn0/fvf/w666UAAAQQQQAABBBBAAAEEEEAAAQTaikC5sZysYjBZLaetHC/2EwEEEEAAAQQQQAABBBBAAIG2JEACUJWPtmrjmW222by1vvfee+bbb7+N3YKXX345SABaZpll8qbRvCrt2rUzSy+9dN54d0DPnj2D3k8//TTo9pehAe40wQROx3zzzWfmn39+b4i7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3AQdf8JffvnFXHTRRUFNQ3379vVHBZ/bbbdd0H3ppZeaqVOnBv1+x8svv2wee+wxr1cJTL169fJH8YkAAggggAACCCCAAAIIIIAAAgg0tUBWsZysYjBZLaepDxo7hwACCCCAAAIIIIAAAmULvDRpsnn8qwnev2e/mVj2cpgRAQSqL0ACUJXNd9ppJ7PWWmt5a/3mm2/McccdZx5++GEzduxYb5hq7Ln33nvNoYcean799Vdv2OGHH26iTYBpxPHHH++N13/9+/c3d9xxh5dQNGPGDKNmv0488UTzxhtveNOo2a6NN944mN7v2GCDDYJagEaOHGmOPfZY8+abbxolD2n7Bg0aZE477TQviahdu3ZG26JPCgIIIIAAAggggAACCCCAAAIIINAWBLKK5WQVg8lqOW3h2LGPCCCAAAIIIIAAAgggkF7gm19mPqPWnJP/97w6/VKYAwEEaiHQLmdLLVbcltc5ceJEc+aZZ5p33nknxNCxY0czffr0YJgSbfr06eMlCRVKunn22WfNhRdeaH7++edgvvbt2we1/mig2qu/4YYbzLzzzhtM43Z8//33RrURvf7668Hg6DI04phjjjG77bZbME0WHZtvvrkZMmRIsKiPPvrIqD17CgIIIIAAAggggAACCCCAAAIIIFAvAlnFcrKKwWS1nLS+iluppmq/KIajWA4FAQQQQAABBBBAAAEEmkfg1tGfmzPe+8DbocOWWsKcs+LyzbNz7AkCTS5AAlCNDrDyrh555BFz6623msmTJ+dthZr3Ug0/K664Yt646IBPP/3UXHDBBV7A5ffffw9Gq516vaW23377mXnmmScYHteh+W655RYzePDgvGbAevTo4dX8U4mmv0gAijsaDEMAAQQQQAABBBBAAAEEEEAAgXoTyCqWk1UMJqvlpHEmASiNFtMigAACCCCAAAIIINCYAveP+8IcNfxtb+NPXbanOX4ZKm9ozCPJVrdFARKA6uCoT5kyxXz22Wdm0qRJpnv37mbxxRc3nTp1Sr1lqgVIb12pGbGuXbt6y5lrrrlSL+eLL77wljPbbLN527PooouaWWapTGtxJAClPjzMgAACCCCAAAIIIIAAAggggAACNRbIKpaTVQwmq+WUYiUBqJQQ4xFAAAEEEEAAAQQQaHwBEoAa/xiyB21XoEPb3fX62fP55pvP6F9ry+yzz25WXnll719rlqXkIf2jIIAAAggggAACCCCAAAIIIIAAAgjkC2QVy8kqBpPVcvL3lCEIIIAAAggggAACCCCAAAIIINAoApWp1qVR9p7tRAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgwQVIAGrwA8jmI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLRtARKA2vbxZ+8RQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEGlyABKAGP4BsPgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDbFiABqG0ff/YeAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoMEFSABq8API5iOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgi0bQESgNr28WfvEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBpcgASgBj+AbD4CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA2xYgAahtH3/2HgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKDBBUgAavADyOYjgAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIItG0BEoDa9vFn7xFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQaXIAEoAY/gGw+AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQNsWIAGobR9/9h4BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEECgwQVIAGrwA8jmI4AAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCLRtgQ5te/fZewQQQAABBBBAAAEEqidw3333mXvuuSdvhSussIK54IIL8oYzAAEEEEAAAQQQQAABBBBAAAEEEECgdgKnnnqqGTVqVN4G9O3b1+y66655wxmAAAIIIIBALQVIAKqlPutGAAEEEEAAAQQQaFMCX3/9tfnggw/y9rlTp055wxiAAAIIIIAAAggggAACCCCAAAIIIFBbgdGjR8fGciZOnFjbDWPtCCCAAAIIxAjQBFgMCoMQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEGgUARKAGuVIsZ0IIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCMQIkAAUg8IgBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQaRYAEoEY5UmwnAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIxAh1ihjEIAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBoCIHD3hxuJk+f7m3rjl0XNX0X79YQ281GIpClAAlAWWqyLAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCoqsDzEyeZKf9LAFpurjmrum5WhkC9CNAEWL0cCbYDAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBFIL/PTbb8E8k3+dWRNQMIAOBNqIAAlAbeRAs5sIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgg0o8A2iywc7NYu3RYLuulAoC0JkADUlo42+4oAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggECTCXRq3z7Yozk6tHQHA+lAoA0IkADUBg4yu4gAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCDQvAIkADXvsWXPEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBNqAAAlAbeAgs4sIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACzStAAlDzHtv/Z+8+4Kus7sePf7MHe4UZRtgIKIIMEQdqrf6ts466+lProIW2bqmCaFFUEOssjrpnqa2KuCdDRlgBAgmQBMggrCQkZK//OY/ch5vkPjc3yZPkjs95vW7vueec5zznvJ+WVzl8n3OYGQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAACBAAFAAPmSkigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII+K8AAUD++2yZGQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAACBAAFAAPmSkigAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAII+K8AAUD++2yZGQIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAACIQGwBy9eorJycmyfPlySUpKEp3XqV+/fjJ69Gi55pprpG3btvWOv7KyUr744gv59ttvJT09XYqKimT48OEyatQomTRpkgwbNqzePnSDzMxMefvtt41x6HxMTIyMHDnS6Gfq1KkSFRXlUT80QgABBBBAAAEEEEAAAQQQQAABBPxVwI61HLvWYOzqx1+fFfNCAAEEEEAAAQQQQAABBBBAIJAECABqxaf9n//8R55//nnRATzOKS8vTxISEmTJkiUyc+ZMOfXUU52ra+QPHjwod911l6SlpdUoj4+PF/158803jT7OO++8GvW1f7z//vvy0ksv1RjLnj17RH+WLl1qjGX+/PnSrl272pfyGwEEEEAAAQQQQAABBBDwO4H7tyTK4owsY17D27eTzyZP9Ls5MiEEEGi4gB1rOXatwdjVT8MVuAIBBBBAAAEEEEAAAQQQQAABBLxRgACgVngq1dXV8uijj8pXX31l3D00NFTGjRsnkydPNnbvWbZsmSQmJooOBJozZ468+uqr0rdv3zojLSwslHvuuccM/hk0aJDRR7du3WTTpk2i+ykrK5O5c+eKbnvZZZfV6UMX6ACfF1980agLDw8XvduP3vnnwIEDsnLlSklJSTHGM336dHn66aelc+fOLvuhEAEEEEAAAQQQQAABBBDwF4H9JaVSeOxljQOlpf4yLeaBAAKNFLBrLceuNRi7+mkkB5chgAACCCCAAAIIIIAAAggggIAXChAA1AoP5fPPPzeDf2JjY+WZZ54RHbTjSFdffbUsWrRI9JtcxcXF8sQTT8gLL7zgqDa/X3/9dSM4RxecddZZMmvWLAkLCzPqL774Ytm8ebPce++9RvDPs88+K6effrp07drVvF5ncnNzZeHChUZZmzZtZN68eTJmzBizzY033mgEEH333XeSmpoqb7zxhtx5551mPRkEEEAAAQQQQAABBBBAwB8FKtSLG47klHUU8Y0AAgEmYMdajl1rMHb1E2CPkOkigAACCCCAAAIIIIAAAggg4PcCwX4/Qy+boN6R55///KcxqoiICGNHHefgH10RHBwst912m+jgIJ22bNliBOoYP479R35+vnz66afGr5iYmBrBP452o0ePNsr1b33MmKO9o15/L1682NglSOenTZtWI/hHl+ndiWbPni3Dhg3TP+XLL780dikyfvAfCCCAAAIIIIAAAggggICfClwV29uc2aW9e5p5MgggEHgCdq3l2LUGY1c/gfckmTECCCCAAAIIIIAAAggggAAC/i1AAFALP9/Vq1fLkSNHjLteddVV0r17d5cjCAkJkfPPP1/69OkjI0aMkPT09BrtfvjhB2N3IF14ySWXmDv/1GikfuhjxRyBRDoAqKKiokYTvWW0TlFRUXLBBRfUqHP80AFJeqw66R2JdBAQCQEEEEAAAQQQQAABBBBAAAEEEAgEAbvWcuxag7Grn0B4dswRAQQQQAABBBBAAAEEEEAAgUAS4AiwFn7aOnDHkawCbhz1119/veiPq7R161azePz48WbeVWbcuHFGANHhw4dlw4YN4mi/b98+ycnJMS7Rx345jg9z1cfYsWPN4q+//louu+wy8zcZBBBAAAEEEEAAAc8ELr/8cpk0aVKdxm3btq1TRgECCCCAAAIIeIeAHWs5dq3B2NWPd8gyCgQQQAABBBBAwPsFHnnkESksLKwz0N69j+8aW6eSAgQQQAABBFpJgACgFoZPTk427qiP7WrK/zlITEw0+gkKCpKBAwe6ncWgQYPM+tTUVDMAyNGHrnRuYzZ2ynTq1Em6dOkiOohI90FCAAEEEEAAAQQQaLhAz549RX9ICCCAAAIIIOA7Anas5di1BmNXP76jz0gRQAABBBBAAIHWFRg2bFjrDoC7I4AAAggg0AABAoAagNXUpqWlpZKRkWF0M3jwYOO7qqpK9G4+mzZtkoSEBCkqKpKhQ4fKyJEjZerUqaKP33KVMjMzjeJu3bpJaKj7x+h8zNjevXvN7hxj0QW9evUyy60yuh8dAKSPATt06JB07drVqqlZrqOiax87ZlaqjJ6/nqP+JiGAAAIIIIAAAggggAACCCCAAALeJGDXWo5dazB29ePO2HF0vas25eXl5loVazmuhChDAAEEEEAAAQQQQAABBBBAoPUE3EeOtN64/PLO2dnZUl1dbcytQ4cORmDM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IAESIAESaCgC8CCW2049cRWr5zP1JBY2Y5qw1beh7jPLDQ4BzJjO1Vn1Xkje0KFeZMM8SIAESIAEGgEB6nIawU3kJZAACZAACZBAPQnAizq84mGJsjAZ/+DyoMcJmrefemJnMhIgARIgARIIJQEuRhjK2+Z9pXO1E/aLX/zC/K3UpXqwfnuRuqEtLi6WruriFfEUEiABEiABEiABEiABEiCB1AkU7DdWSnTJikwkb8DAatfuX2eSDc8lARIgARJoRASoy2lEN5OXQgIkQAIkQAIkQAIkQAIkQAIkQAIeEKABkAcQG1sW3bp1E/xRSIAESIAESIAESIAESIAEMieQv/9YKZ38qlStXp1eZuouvfDkU9M7l2eRAAmQAAk0CQLU5TSJ28yLJAESIAESIAESIAESIAESIAESIIGkBOjWJSkeRpIACZAACZAACZAACZAACZBAZgRy8vOl2QUXixQWpZVR4YknS16fvmmdy5NIgARIgARIgARIgARIgARIgARIgARIgARIgARIgASaBgEaADWN+8yrJAESIAESIAESIAESIAESaEACeT17SbMJl4m0aJFSLQqOOEoKjzw6pXOYmARIgARIgARIgARIgARIgARIgARIgARIgARIgARIoOkRoAFQ07vnvGISIAESIAESIAESIAESIIEGIJA/aLC0uOFmyRs4qM7Sc9q1N16Dirj0V52smIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESEAknxBIgARIgARIgARIgARIgARIgASyQyC3S1dpfvVvpWLeXCn7+COzrVq/XqS8THLatJFc9RSUP3yk5O8xWnIKC7NTKZZCAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiQQegI0AAr9LeQFkAAJkAAJkAAJkAAJkAAJhI1AXv8Bgj8KCZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACXhBgEuAeUGReZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZBAAxGgAVADgWexJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJOAFARoAeUGReZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZAACZBAAxHIb6ByWSwJkAAJkAAJkAAJkAAJNDkCw4cPl3PPPbfWde+00061whhAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiTQsASOPvpoGTlyZK1K7L777rXCGEACJEACJEACDU2ABkANfQdYPgmQAAmQAAmQAAmQQJMhsPfeewv+KCRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAsEn8JOf/CT4lWQNSYAESIAESKCaAJcAY1MgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIggRAToAFQiG8eq04CJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACNABiGyABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiCBEBOgAVCIbx6rTgIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAI0AGIbIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIIEQE6ABUIhvHqtOAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAjQAYhsgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIggRAToAFQiG8eq04CJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACJEACNABiGyABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiCBEBOgAVCIbx6rTgIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAIkQAI0AGIbIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIIEQE6ABUIhvHqtOAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAjQAYhsgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIggRAToAFQiG8eq04CJEACJEACJEACJEACJNB0CGyvqJAfy8udC15bUuLsc4cESIAESIAESIAESIAESIAESIAESIAESIAESIAESKBpE6ABUNO+/7x6EiABEiABEiABEiABEiCBkBBYV1oqy7dtd2r72YZNzj53SIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEmjYBGgA17fvPqycBEiABEiABEiABEiABEggpgfzcnJDWnNUmARIgARIgARIgARIgARIgARIgARIgARIgARIgARLwmkC+1xkyPxIgARIgARIgARIgARIgARIgAe8JtMrPl1/07ulk3KtFC2efOyRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAiRAAk2bAA2Amvb959WTAAmQAAmQAAmQAAmQAAmEhEDrggK5edCAkNSW1SQBEiABEiABEiABEiABEiABEiABEiABEiABEiABEsgmAS4Blk3aLIsESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEPCZAAyCPgTI7EiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEsgmARoAZZM2yyIBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABjwnQAMhjoMyOBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABLJJgAZA2aTNskiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEjAYwL5HufH7FIgsGnTJvn3v/8tX3/9tSxfvlzWrl0r3bp1k+LiYhk6dKgcf/zxUlBQUGeOFRUV8tprr8lbb70ly5Ytk61bt8qAAQNkt912k7322kv69+9fZx5IsGLFCvnHP/5h6oP9Tp06yeDBg00+Bx54oDRv3rxe+TARCZAACZAACZAACZBAfAKzZs0S/MUK+l2HHnpobDCPSYAESIAESIAEAkbAK12OVzoYr/IJGGZWhwRIgARIgARIgAQCQ2Dy5MmyZs2aWvXBdzx8h6OQAAmQAAmQQJAI5FSpBKlCTaUuzz77rDz22GPy448/JrxkGAJdeeWVMmzY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Jk+enBAQlv/64osvTDy8C7mXAGvRooWMHj3axC1atEi++eabhPm4y9h7770TpmMECZAACZAACZAACZAACZAACZAACZAACTQ2ApnqcrzSwXiVT2O7P7weEiABEiABEiABEiABEiABEiABEiABERoAZbkVfPbZZzJlyhRTKpb9uuOOO2THHXdMuRY777yzs1zY1KlTxW2gYzMrKSkx+VdUVJigM844w0Y52yOPPNLZhxcizGiLlQ8//FAmTZpkguGtaK+99opNwmMSIAESIAESIAESIAESIAESIAESIAESaJQEvNLleKWD8SqfRnmzeFEkQAIkQAIkQAIkQAIkQAIkQAIk0IQJcAmwLN58LLV13333OSVi1tadd97pHCfb2WOPPeTEE0+MSnLppZfKr371KxN22223yapVq+SQQw6RTp06CZbs+utf/ypYHgyCZbv2339/s+/+Z8yYMcYL0Mcffyzz5s2Tiy++WC688EIZPHiwbN68Wd5991154IEHBEZEOTk5pjxsKSRAAiRAAiRAAiRAAiRAAiRAAiRAAiTQ2Al4qcvxSgfjVT6N/d7x+kiABEiABEiABEiABEiABEiABEigqRGgAVAW7/j06dNl2bJlTonYdx87EXF23Et32ehBgwbJTTfdJLfffrts375dHn30UfOXl5dnDHZsuu7duxtDo9zc+A6frr/+ernxxhvl008/lQULFsiECRMkNg/kBcMgLv9lqXJLAiRAAiRAAiRAAiRAAiRAAiRAAiTQ2Al4rcvxSgfjVT6N/f7x+kiABEiABEiABEiABEiABEiABEigKRGIbxHSlAhk8VoXLVrkeWkHHnigPPzww2Y5MGvgY5f8ys/Pl5NOOsnEt2nTJmHZWILsnnvukTPPPFN22GEHk87mgYM+ffrIXXfdJSeffHLCPBhBAiRAAiRAAiRAAiRAAiRAAiRAAiRAAo2NgNe6HK90MF7l09juF6+HBEiABEiABEiABEiABEiABEiABJoygZwqlaYMoDFdO7wAzZ8/X1avXi3dunWTHj16SKtWrVK+xJUrV5p8ioqKpLi4WLp27SrWuCjlzOo44eCDD5YpU6Y4qSZOnGjKcwK4QwIkQAIkQAIkQAKNiMCrr74q+IsVGFxfdtllscE8JgESIAESaMIEjjzySCksLGzCBJrGpXulg/Eqn7qoY0k0d7vs0qWLWTq+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5ZVXZpqt7+fjW5LbuC0sbRv6dvckXHxvcq9K4ju4NApYs2ZNlAFQmNv2FVdckQaB7J4CnaS7bf/iF78IxQRLLyjlepEJ8yABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgYAjQAahjuLJUESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEPCFAAyBPMDITEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgYAjQAahjuLJUESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEPCFAAyBPMDITEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEmgYAjQAahjuLJUESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAEPCGQ70kuzIQEQkCge/fucsYZZzg1HTFihLMf5J1hw4ZF1btXr15Brq5Tt/Hjx8uQIUOc42bNmjn7Qd3Jz8+PYt2hQ4egVjWqXrFte+TIkVHxQT0YPny4lJSUONXr2bOnsx/kncMOO0yGDh3qVLGoqMjZD+pOQUFBVNvu2LFjUKsaVa/Ytj1q1Kio+KAe4PeltLTUqV5Y2vbhhx8u+M2xEob3dmFhYVTb7tSpk61+oLc77bRTVL3D1LbLysoctj169HD2g7yDto3fHCthfG937tzZVj/Q2+Li4lC2bfSdysvLHba4jjAI2rZ7TBOGth373g5r2w5LfzsM7Zh1JIG6CKCfVFVV5SRDPyoMcuSRR8rq1audqmJMFnTB74hbb9alS5egV9nUD31Sd73dv41BvoDYMUCY2vaaNWsctPhtD7pgbOtuI127dg16lU39oEtw1ztMbTsnJ8dhDN1OGOSoo44Sd9uGnjjoEvve7tatW9CrbOqH7xvutu0erwf5AvDezs2t8akQpra9du1aB20Y2nbsezusbdutZ3VuQAB39thjD8nLy3NqFqa2vW7dOqfe7mtwAgO207x586j3X1hYx/ZJwtK299xzT3GPw8LC24tmm6OD6JpRtBc5Mg8SIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIAESIIGsEagxV81akSyIBEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEjAKwI0APKKJPMhARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIggQYgQAOgBoDOIkmABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEjAKwI0APKKJPMhARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIggQYgQAOgBoDOIkmABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEjAKwI0APKKJPMhARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIggQYgQAOgBoDOIkmABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEiABEjAKwI0APKKJPMhARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIgARIggQYgkN8AZbJIEiCBJATKysokPz9fcnJykqSqHVVeXi7r1683ES1bthT8BUlKS0tl+fLl8t1330nHjh2lT58+5jqDVMd4damoqJBZs2aZqM6dO0u3bt3iJQtM2LZt22TRokWycOFC2bRpkxQXF0uPHj3MNi8vLzD1jFeRH374wdQd19CpUyfp3r27FBYWxkvqS1hJSYm8//77Ju/dd99dOnTo4Es5QckU74vFixeb90bPnj2ld+/egXgmq6qqzLsC7ffHH38UtAs8h61atXL+8By2aNEiKCideqANrV69WrZv327+UG+8i1F3bFu3bu2k5U76BPB7ks67AW0K9wiCdwylbgLsk9TNKJsp2CfJHm32SbLHGiWxT5Jd3iyNBEjAHwKNtd+0du1aWbFihWCcvvPOO0v79u39AehxrmHqN2EMvGrVKqPHwRh9hx12EIzRe/XqFYoxZEP3m+bOnWvaKMbbo0aN8rglBS+7oPab0A6g87V6nK1bt0qzZs0cnUibNm0Cq1Ol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QAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEggwACgBMotAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCWAAOAYsnSLgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCQQYAJQAmUUggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBBLgAFAsWRpFwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBBAIMAEqAzCIQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEIglwACgWLK0iwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAAgEGACVAZhEIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCMQSYABQLFnaRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAggQADgBIgswgEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGIJMAAoliztIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQQIABQAmQWQQCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAArEEGAAUS5Z2EUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBIIMAAoATILAIBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgVgCDACKJUu7CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggkEGAAUAJkFoEAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQCwBBgDFkqVdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQSCDAAKAEyi0AAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIJYAA4BiydIuAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIJBBgAlACZRSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEEuAAUCxZGkXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEEAgwASoDMIhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQiCXAAKBYsrSLAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEACAQYAJUBmEQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxBJgAFAsWdpFAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCBAAOAEiCzCAQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEYgkwACiWLO0igAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJBAgAFACZBZBAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACsQQYABRLlnYRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEggwACgBMgsAgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBWAIMAIolS7sIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQQYABQAmQWgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBALAEGAMWSpV0EEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBIIMAAoATKLQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAglgADgGLJ0i4CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgkEGACUAJlFIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQS4ABQLFkaRcBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQQCDABKgMwiEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCIJcAAoFiytIsAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQAIBBgAlQGYRCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgjEEmAAUCxZ2kUAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIIEAA4ASILMIBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRiCTAAKJYs7SKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkECAAUAJkFkEAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKxBBgAFEuWdhFAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQSCDAAKAEyCwCAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIFYAgwAiiVLuwgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIJBBgAFACZBaBAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEAsAQYAxZKlXQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEggwACgBMotAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCWAAOAYsnSLgIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCQQYAJQAmUUggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIBBLgAFAsWRpFwEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBBAIMAEqAzCIQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEIglwACgWLK0iwACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAAgEGACVAZhEIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCMQSYABQLFnaRQABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAggQADgBIgswgEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBGIJMAAoliztIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCQQIABQAmQWQQCCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAArEEGAAUS5Z2EUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBIIMAAoATILAIBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgVgCDACKJUu7CCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggkEGAAUAJkFoEAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQCwBBgDFkqVdBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQSCDAAKAEyi0AAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIJYAA4BiydIuAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIJBBgAlACZRSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEEuAAUCxZGkXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAIEEAgwASoDMIhBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQiCXAAKBYsrSLAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggEACAQYAJUBmEQgggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIxBJgAFAsWdpFAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQCCBAAOAEiCzCAQQQAABBBBACPSPJQAAQABJREFUAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEYgkwACiWLO0igAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIJBAgAFACZBZBAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACsQQYABRLlnYRQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEggwACgBMgsAgEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBWAIMAIolS7sIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCQQYABQAmQWgQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBALAEGAMWSpV0EEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBIIMAAoATKLQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAglgADgGLJ0i4CCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgkEGACUAJlFIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCAQS4ABQLFkaRcBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgQQCDABKgMwiEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCIJdApVsO0i0AMgTlz5tj+++9v77//vm255Zb23HPPWa9evWIsqsU2GxoabPjw4fb8889bXV2d/fnPf7Zhw4a1OG817vT6Jk+ebI8//rjNmzfP5s6dG/757fr6ett6662tb9++NmDAAPv0pz9tI0aMsJ49e1ajVJYpJHDXXXfZBx98UKjYc9O/f//C7zFvvPrqqzZhwgR77LHHbP78+bZw4UJ75513bPPNNw9Z9jwPHjzYDj/88LAudurE21rM14O2KxdYvXq1/eEPf6j8Ca2c85hjjrHu3bu38lkfvdnvuOMOW7t2beEP/8xnPmNbbbVV4XduIIAAAggggAACCMQVSHEcp9JtPo7pxH2tab12BTiuU7uvDZXVpgDHdGrndan0Pb52Kt60KnnggQds0aJFhT/qwAMPtF133bXwe3tv/OlPf7J333230MwnPvEJGzhwYOF3biCQt0DsTOddL+0h0FaBunU7vw1tfTLPQyC1gH/I74NufLrmmmvs7LPPTl2CTZo0yfwDRJ8GDRpkU6dOta5duyavo+kCX3nlFbvlllvsP//zP2327NlNHyp5u0uXLjZy5Ei78MILbb/99is5Lw9+dAV8sF3TDX3fSBo1alRUED845bl88cUXK15O79697cQTT7Qf//jHfMBfsdpHe8Ynn3zSdtllF9tiiy1yh3jvvffMMxlrev3112377beP1fwm0263bt1s5cqVhb9nypQp5gcTmBBAAAEEEEAAAQTSCKQ4jtOabT6O6aR53VlKbQlwXKe2Xg+qyUeAYzr5ONZ6K615j6/1v0WxvqFDh4bPv7Laf/nLX9rXv/717NeiPytdP4cMGdLs+P/NN99sp5xyStF2eQCB9gq0NdPtXW5rnl/p+tOaNpn3oyfAJcA+eq+57F/sg1uywT8f//jH7Rvf+EZV/pZ/+7d/KwwAeumll+ziiy+uSh2+UP+A+dhjjw2jri+55JJWDf7x569atSqcXeWAAw6wE044IZw1yO9nQqBaAj6Y7eCDD7bjjz++2cZ/JfX4twVuuOEG8/7BfzIhUEzAB7T5zqoPBGn6LZNi83M/AggggAACCCCAAAIItF6gVo7jNK2cYzpNNbiNQP4CHNfJ35QWmwtwTKe5B78hUEsCrJ+19GpQi5oA64/aK1bb9TIAqLZfH6r7PwG/7M/YsWMLHj/96U+tc+fOhd9T3xg3bpx17NgxLPYnP/lJs1HQqWrxMw/tu+++dvfdd5ddpJ+hyC9ZVmzyE4Hdeeed4RJKL7/8crHZuB+BqAJ+yTq/vNgjjzzSruUsXrzYzjrrLPvhD3/YrnZ48qYn4H3dTTfdFAaJjR8/3j788MNN74/kL0IAAQQQQAABBBBAoAYEau04TlMSjuk01eA2AvkJcFwnP0ta2liAYzobm3APArUiwPpZK68EdSgKsP4ovmq1X3On2i+RChEwGzNmjL3zzjuB4pOf/KQdddRRVWXxUxOefPLJ9utf/9rWrFljX/va1+zvf/+7dfr/7N0H/BTF/f/xoQhSVKQKoiCi2MCGGuw1xvZXiS3WqD9r7L1Eg91Yo7EmNjRWjDEau2gUFY2KIGLAAipFwIKiKAh6/32v2WV2b+9u725vr73m8fh+b+vsznP39vZmPzfTOp231O233+62gGR3a+KB9O3b1+y8885uF02rr7666datm+nYsaO7n5999pl577333FZ/HnroIfPhhx96q7mv6lJGvqNGjUq0L9fARhhBIELg22+/Nfol5tSpU7Pmbr755mafffYxvXv3dv969uxp5s6d67Z4pS7vXn75ZfO3v/3NPcftldUq1nLLLecGA9nTGW5eAZ03hx12WAAgX3BkYMEERtRtpFqoSiKpCWQSAggggAACCCCAAAK1KlBr9Ti2E3U6tgbDCCQjQL1OMo7kkluAOp3cNsxBoNoC1X5/Vrv8bB+BcgR4/5Sjx7q5BNKJVsi1daYjEEPg4Ycfdlun8RYdNmyYN1jV17PPPtsMHz7cDToYM2aMufLKK83pp59e8X164YUX3IAjRYXaqU+fPub88883+++/v2nZMrtxLwUnKXBCf+pi6ZJLLjHqU1WtpMyaNcvPSsOHH364ef755/1pDCBQaYGbb745q8uvwYMHmz//+c/mF7/4RdbmFdjjBVL83//9nzn33HPNH/7wB6Mm5u108sknm6FDh7rnvT2dYQSqIaDrsz47SAgggAACCCCAAAIINLJArdbj2ObU6dgaDCNQvgD1OuUbkkNtC1CnU9vHh72rjMBRRx0VeHak+noSAvUswDldz0ePfS9GgACgYrRYNnUBBbnYQTVqnUZdBNVCWmmllcxBBx3ktgKk/bnooovMEUccYTp16lSx3dOvaQ4++GATDv7ZaaedzH333ee29BN34+rCTC1hqNUVmdqtAf373/8299xzj9l3333jZsdyCJQs8MMPP5irrroqsL7eX48//rjbglVgRo4RLX/nnXca5XX//ff7Sy1YsMDNW90GkhBAAAEEEEAAAQQQQAABBCorUMv1OHbJqdOxNRhGoDwB6nXK82NtBBBAoFYF9ENxEgKNJMA53UhHk7LkE8huJiTf0sxDIGWBRx55xO2yytvsMccc4w3WxKuatPbSN998Y/Rrl0qmU0891UyZMiWwCbVu8s9//rOo4B87gxVXXNE899xzWeurNRUSAmkI/Oc//zEzZswIbOrGG2+MHfxjr6hu+QYMGGBPct+XCxcuDExjBAEEEEAAAQQQQAABBBBAIHmBWq/HsUtMnY6twTACpQtQr1O6HWsigAACCCCAAAIIIJC0AAFASYuSX6ICV1xxhZ9f+/btjVq6qaW09tprm1VWWcXfpWuvvdZtgcSfkOCAuv666aabAjl27tzZKFBCrfmUkxQEpK7A7PTBBx+Y119/3Z7EMAIVEXj//fcD+aq7OrX2VUrq0KGDOeSQQwKrKjjvvffeC0xjBAEEEEAAAQQQQAABBBBAIHmBWq/HsUtMnY6twTACpQtQr1O6HWsigAACCCCAAAIIIJC0AF2AJS1KfokJvPbaa+all17y89txxx2NHu6Xkz755BPz0UcfmY8//tjMmzfP9OvXz/Tv398oAEZBB6WkPfbYw1xyySXuqmrF5N5773W7Bislr3zrhIN/tOyVV15punfvnm+12POOO+44c/HFF5uvv/7aX0dl2WCDDfzxuAPTpk0z48ePd/uHVfBFly5dzHLLLWc23HDDrJaG4uZZaDltT60jTZ8+3T2W2t4666xjVlhhhUKrxp6fVrlmz55tFPD1xRdfuAFmqpTs2rVrrP386aefzDvvvGOmTp1qvvzySzNnzhyz5JJLmmWXXdbNQ/30LrXUUrHySmsh7audtK8K+Cs1bbfddoGuA5XPhAkTzJprrllqlqmtp+P1xhtvuOfx/PnzjZqlX3nlld3XcgP9woVIY1tqeUkVge+++66ZOXOmew7qvanrSrnX83B5ynnfhPNiPBmBSl6XP//8c/fcUveV+pzp3bu3WWuttdz3SjJ7/3Mu+kzUNhQUO2vWLLebT12P1dKY7iFICCCAAAIIIIAAAosFkq7HSeOejzqdxcfPHkqr/sPbZiW/O3jbSLNM5Xw/pV7HmHqt10mjnsU7n9PaVlr1OuW8ZzwTXpMVqPR1OY3PeOp0kj0nqpWb6vX1495PP/3Ufc6x/PLLm1VXXTXxOsBiy1eJZ432PqR1/bW3mfRw2vc0aX2WpF2uUo5LGve9XGNLOTIpruP0zU1CoCYFnEqYjPNW8P/uv//+kvbT+UKUcVrmyTgPBv287Hw1vMQSS2QOPPDAzOTJk4vexpgxYwL5Dhw4sOg8Cq3w7bffZpyAiMB2ttpqq0KrFT3/sMMOc7fhBM1kDj300Mzjjz8eO4/vvvsu88c//jEzaNCgwH7a1m3atMn88pe/zDzxxBOx89WCKqtzY+f+OQFb/rpOgETmoosuyjitMOXc5nrrrZe54447Ms6Hsr9eMQOVKpcTDOWXyQnw8XfJCSbLtGvXLlAenZ8HHXRQZuLEif5y4QGnG7jMrrvumnGCZwLr2v4adoJIMk7wReavf/1rxumjPZxN5LjT0lQgz2LOi8gMQxOdrvMC+Ws/nRuU0FLxR3WsjzjiiMwpp5ySkafKms9O1wbv/NKr0yVe/I05SzoBOoH1X3nllZzr2+eytuWdl06AQWavvfbKtG3bNstCHlrWCfjLOIEOOfMOz0hzW/a29b6U+2qrrZZxAisjy6Nrwbbbbpt5+OGH7VULDpfyvnn66af949OrV6+s/XECkvz5cn7ggQcK7kecBb766qusbV144YVxVi15mWqdy2lel//9739nnIDgTIsWLbJ89V5xWg/LvPjii76hEwAZWC7f+9Nb6fvvv8/ouqRzWHnm+nMC9DJOtxEZ5wu/tyqvCCCAAAIIIIBAUwskVY+Txj2fd6Co0/EkMplK1X/Y303T/O6gklWqTMq7lO+n+eomqNeR6s+pVut17HO5Uet0dAQqVa9TynuGOp3/vSlivJRaP5n2dbnSn/H1Wqez3377BeonTzzxxBhHPePWLYfrA50fesda98cff8w4P5gNbDf8fEzPcnS98/7uuusuP2/nx3L+9FLrXNdYY41Avdttt93m5q/nFk6rknmf+2y00UZuvb9Xv+7vWAUHKv2sMcnr75tvvukfH+/4aVqxyfmReaZPnz6BvOy616j8KnlPU8pniX3/le+cjiqLPS3JciXx/rH3TcOVvO/1tlWv11hv/5vp1TRTYSlr/QjoRkOBCt5DNwW/KAim2DRixIiM09qJn4+XX65XBVr87ne/ix0Y4e2P0wpAYBtPPfWUNyuR13vuuSeQv/bfaZ0nkbztTJyWkTJOSx32pFjDjz76aMZpfSFrH3M5a7o+aJ0WQWLlb98I6lxQevvtt/MGdYW3PWTIkIxuVopJlSyX0+qU7+W04uTu1gUXXOBPC++/xq+77rqs3Xdai8msu+66edeLykvTnEj5jBM9n5VneEKlA4BGjhyZtf+//e1vw7tRsfFyyxcOMNAX2VzJPpd1DPQF5cEHH8wsvfTSWQZRx81pTSuTL397u2luy9uuboJV4RC177mm6b2pG944qZT3jdO9YVH7o4DBJFI1AoCqdS6ncV3WPcDOO+8c61gqwOxvf/ubexjD789CAUCvvvpqpkePHrG2453TCtw777zzkjhtyAMBBBBAAAEEEKhbgSTqcdK65wsjN3udjjwqWf9hfzdN47uDd3wrWSZto5Tvp9TreEcn2de0vgvb57K+DzZanY6OSiXrdUp5z1CnE/+9Eq7/yFd/aJ/LaV2X0/iMr+c6nWuuuSZQF6X3S5wUDmTWtSnuuqoj8+q29KpnBeHk9LAQWMbppcJfREEV9vqFhqPqXO1zUesrAMjp3SCz+uqrx857++23zzgtv/j7VamBSj9rrMT1VwF+9nE54YQTiubRMbfzULDXokWLIvNJ41lVKZ8l9v1XvnM6slDOxEqUK4n3j72/lb7v1bbq+RprWzXLMAFAzXKk66ycl19+eeBD5de//nVRJVD08hlnnBHIw/6QKjR88MEHF7W9008/PbAttZ6TZAo/9FSrGoo2roWk1pVatmwZKH8hX29+3759M//9738LFsO+EdSXEqdLoYwCIbx84r4qKjxuRHilyxW+UdGHZz5HPdB2ugQLWD377LOZjh07Fu1ge+mGTVG7+VK5FSn58tY8pznLyACyU089NeN01Vdo9bLnl1u+Ur9g6zioNayoVnLUkpOOuX2svGFtT18ICiX7fVPpbekY6jrt7WOxr3o/O93eFSpSVgVrnPeNlilmf6K+jBbcsYgFmi0AqJLXZadZaPfXtcUcRy17/vnnZ7WqlS8ASGXo1q1bUeeLvU8nn3xyxJnAJAQQQAABBBBAoDkEyq3HSeueL+poNHOdjjwqXf9hfzdtlDoduVGvI4WfU7PU69jnsr4LNkqdjo5iGvU6pbxnqNP535ssxkup9ZNpXJfT+Iyv9zodBVLbdUwajvPcRD0yhNfTuDwKpbPOOiuwruriwylfsEQSAQzh6+rRRx9d0nOfTTfdNKNngpVIlX7WWMnrr1qjt88PtYSfK3gnl93GG28cyEP3zVEprWdVpXyW2M/V8p3TaZYrifePt7+VvpfXdur9GutZNdMrAUDNdLTrqKw77LBD4EPlvvvuK2rvwxVP3ofcPvvsk7nlllsyb731VkYPZ9XknZoSjOo26eKLL469zddffz2wv+oWJMmkG3GvDHrdYostksy+5LzuvPPOwH55+7jbbrtlNG/s2LFuqztqElDdF4VvFrS8ulgp1BWVfSOooIgBAwb421U3MEOHDs1cdtllbpdl6r7nyCOPzNk8ZJzWmdIol32jogAUdR3n+elVrVHZXYGpjHZSVHunTp0C62g9p5/0jLrL07k9Y8aMjNM3bmb06NEZtSKlLpfsbXjD6uomXyo3QCZf3t48vQ+9/bFf9d5UZPpLL71UsZv4cstX6hdsldNuoaxDhw4ZXbvGjRvnBqopMEtBMYcffniWjYKG9AuPfMl+31R6WwqatI+bhvXeVPO1Or90Pk6fPj3zr3/9K/OHP/whspUgBbMVaoGslPeNrvW67utPN8Ph/VR3Zd58vcZpFSufuzevmQKAKn1d3mSTTbKOW8+ePTPDhg3L6Jqu69zzzz+f0ed2+LwPH++XX37ZO0SBVwUbhn8Vo+uPKj+0zpQpU9yWCNVSnn5Fp3M+HLync76UpnQDO8IIAggggAACCCBQpwLl1uOkcc+Xi7ZZ63TkkUb9h32PXunvDmmVSdsp5fup1vMS9TqeRPmvadXr2Oeyvms2Sp2OjkAa9TqlvGeo04n//ii1fjKN63KlP+MbpU4n/HzgT3/6U8ETYJtttsmqM9P1qVB9vzIeNGhQYN2oOrN8wRJJvD/D11W7Hk8/ltYP42+//Xa3jlwBJqrbVXeM9nLesFpRqkSq9LPGSl5/p06dmvWj8yeffDI2k1rt93y9VwWuhFOa9zSlfJbY+5vvnLaX03Aly5XE+0f7mMa9fKNcY+XVTIkAoGY62nVSVgWDhFs1+eijj2LvvaKlwwEz6l5HTfTlSooADXejpAd5cberqNnwTbYeFiaR1G2V9+HqvZ522mlJZF1WHvqgV8CCt096VVdW+ZzlpIep9joavvrqq/PuS64bQX1Y52vN4f/+7/+ytrXLLrvk3VZa5bJvVGwPlVX9W+t9oNaKPvzww8zvf/97d5q944cddligbDpfFfhTKClvO7BI21bznvki5MutSCm0T5qvc2OnnXYKlMl20bBa5thjjz3crtDUBVzc1pwKbb/c8oXf+3Gb2LXLp3548wX0KDBFX8jtdfTLhnwp1/sm6W1p3+z90rBa9Hnsscdy7t7XX38d2WKQmndVX7W5Urnvm6igHH1mVCJFbUu/uqhkqoVzOenr8t133511fqmvZwWURSU1Ka2AyfA56Y1HVWYoH10bvWX0ql/EFPocHzVqVFYLQ3vuuWfUbjENAQQQQAABBBBoaIFy63HSuufLdRCasU5HFmnVf+T6bpr0d4c0y6Rtlfv9lHqd+qvXyXUuJ13PovMrzW2lVa9T7nsmqp6FOh2dLT+nJOonK3FdTuMzvlHqdPQMwK6b2nHHHb3DG/mqOlR1S2+v4w3vvffeket4Ez/55JPAeqoHi3o+oHPCy1OvdhdgXl56LfX9metap+cV48ePtzcRGL7xxhsD+6V9Gzx4cGCZJEYq/awxjeuvukizj+H+++8fm0Y/vrTXHTJkSOS6ad7TlPtZEvecVkHTKlep75+07uUb5RobefI28EQCgBr44NZr0fRwzv5Q0a8pinnQH+4uSy2pFGpVQlYK9gl3K6WWIeKmcADRrbfeGnfVvMsp0MH20PBVV12Vd500ZoYfsKolhLgtH/z1r38NlGmZZZbJ209r1I2gjpXddF9UmdV8YrjVG0WOq2WcXCmtckXdqCigSgE/hZIibsNf6s4888xCq/nz1UpG+JzSzUKuVG5QQa58w9O/+eabnBH84f3VuFrnUECXfg0xYcKEcHaxx8stX/hYFBsApHJMmzat4P6qa6qwQ77W0aLeN0lva/78+ZkVVlghsF8K1NKXyDgpKiAw3681ynnfaH9KvZmOU5bwMlHbWmuttTIKECn1L9eXbG/b1T6Xk74uqyJDFan2ea8v84W6LdQ9wyGHHBJYz8sjVwDQ2WefHVg+7udsuKllvceiKky8Y8QrAggggAACCCDQiALl1OOkec+Xz77Z6nRkkVb9R9R306S/O3jHNq0yaXvlfD+lXse437/qrV4n6lxOup7FO5fT2laa9TrlvGfkElXPkmYAEHU6P3cVV0xde1qf8Y1Sp/Of//wnUDelH7nrPZorqSUXr75Lr/qBsDeuH2rne6Z2ww03+MtqHQU6RKW4wRKlvj+jrnUrr7xyZs6cOVG7E5imHwp75fXKrxZbkkyVfNaY1vVXPxq3ndT4gu5D4iQdC3vdv/zlL1mrpX1PU+5nSdxzOs1ylfr+Seu+t1GusVknb4NPIACowQ9wPRbv/PPPD3yo/OIXv4hdjM8++yzTqlWrwPpHHHFE7PXD/Z7qxj5uOvDAAwPb3XfffeOumnc59Sdtf8hqWJHz1Uxq+k+BNPZ+qVufYpKOq72+ujnKlaJuBOM0Y6n8wk15a5vPPfdc5KbSLFfUjYpuvOOkhx56KGCn4KuZM2fGWdVdJqrpRnWfkyuVG1SQK9+o6fpiogCQcCte9rmSa7hfv34ZtY41adKkqKxzTiu3fOUGAOmaFyfpV6n69YNdfjXzmitFvW+S3pbeh/b+aLhQi172/upGWl052XkooChXt4DlvG+03VJvpu19jjsctS27nKUMq1WzfKna53LS1+V//OMfgXNDZv/85z/zEfjzFOgZ9SuoXAFA6lrTPibDhw/388o3oOA9fR7qPFarXAcddFBG9yIkBBBAAAEEEECgmQTKqcdJ854v3zFppjodOaRZ/xH13TTp7w5pl0nbK+f7KfU6PwcA2d/BNFzr9TpR53LS9Sw6t5TS2laa9TrlvGdkElXPkmYAUPh8LXa82ep0dMzS+oxvlDod1Yv36tUrUD+lbq9ypZNPPtlfVj+CDwer5GtBJ9wSf66W3OMGS5T6/oy61j311FO5ihyYrvKF34f5nnEEVo4xUulnjWldfxVopGBV2yrO80X1vGGvo+c1atU/nNK+pyn3syTuOZ1muUp5/6R5L98o19jwudvo462dNzAJgZoSGDduXGB/nCCcwHi+EedGxTi/vPcXcbrMMU50oj9eaMB5cGeuvPJK079/fzNgwAD3z2lpwDhdJhVa1YT3M1yOghnkWMB5uJg1x4ngzpqWb4LycKJz3UWci5q/aNRweJoTyGSc/mf9dTRw1113GeeG1J/mtOBTlLNWdIKtzP/7f//Pz8N52GqcphuN8yDVn5ZrwAkQMM6XplyzA9OdD3TjPAQ2CxYs8Kc7N2/+sD1QzXI5QSTmyCOPtHcn57Dzy0Tj3KQZp7Ug43zRNV27djU9evTIuXx4Rp8+fYwTKBd4r+g8r4Xk/FLBHHfcceY3v/mNcVq8MU5rUeb999+PtWuyuOyyy8wVV1xhjjrqKON0t2Q6deoUa91qLeTcfJvjjz8+1uZ1zJymYI1TMe0v/+KLL5q5c+cap5tDf1qugUpsS9dcO+m9Kfu4yfniYJzgwcC57/RNbEaPHm0233zzgtkU874pmBkLlCVQiety+PzSZ5HT6les/XQCcozTh7ZxWk2KtXz4c97pP9nst99+7rUyXwZOC0XGCWQzOhdJCCCAAAIIIIBAswqE6z/C9SP5XNK858u3H+F9Dpcp37r55tVinY72t5r1H5X47lDtMmn7xXw/pV5HYtmp3up1KlHPkq3y85RKbSt8DU6zXqeY90wuF6YnI1Cp63L4/KpUvU6j1OmoXlz1Xk5giH9gna53jPMDUH/cHtA8L2244YbG6erJ/Otf//ImGedH0FnPrDRTzwE0z0tODxw5t+Etk9ar6tl++ctfxtrc6quvbpwfRhvnR7P+8k7LQf5wuQM6fyv5rDH8/qjU9VfPxvSM7/rrr/dJ/va3v7nT/AkRA6obtZPT2kzkM4hq39NU6rOk2uWy7aOG07yXb5RrbJRjI08jAKiRj26dls1ppi+w586vPwLj+UYeeeSRwOxf/epXRh+ccZPTuoZxmqaMFYQSztNpDi8wKVyOwMwiRnTjF05OV0nhSXnHp0+fbi644IK8y+Saud5662UFAI0aNSqwuNOaj3GizAPTCo1svPHGgUUUoKMH/wpOKZR0nOIECikf3QQ6rWKYTz/91M/WaV3EH7YHqlkunT9Rx9reP2+4b9++Rn+lJpkoYMS+Ic5lUuo2yl3P6UbKON1DmVNOOcWo4lVfaJzof+O03hEI5orajoLTdEP7wAMPGN2o6jpQq8lpXjXyxjnX/iow6tBDDzVO93buInqVjdPkaa5V/OlJb0tfgF544QU/fw0cc8wxbsBdYGKBEZXnjDPOME6ku7+k8o0TAFTM+8bPnIGKCFTiuuy0gBfYVwX0xL1OasUTTjghdgCQKqGcppP97Y0cOdI4LfoYpy9us+aaa/rTowYI/olSYRoCCCCAAAIINJNAuP6jmHqcNO/58h2TZqrTkUM16z8q8d2h2mXS9ov5fkq9zuIf6ckunOqlXifpepawgz1eiW1Vu16nmPeMbcFw8gKVui6n9RnfSHU6+sG0HQCk+nCn+/msg+70BmCcFnD86QoSCj9vUZCPfmgbTqrzsn8MrLpzBYnUQtp6661j74Z+LNu7d2/z0Ucf+et8+eWX/nC5A5V81pj29feQQw4JBAA988wzRvfvuRoa0LMiPVuxk+plo1K172kq9VlS7XJFWdvT0ryXb6RrrG3Y6MMEADX6Ea7D8oVbZ1HrMnHThAkTAouutNJKgfE4I3EDS8J5hffziy++cFvJKTU/L3/dxISTbvCqlXRz8tprrwU2P2TIkMB4nBGnv3fjNNdnPvnkE39xtfQSJwAozjJ+ps6AotgLBQBVu1xqdarSSb5OM5jun1qNsZPKX4tJD/vVipP+nO693AA9BQEpQERlcfpGDkT522XQtWT33Xc3jz/+uNlqq63sWTUzrF8qFJMUvKVfQthfbBQgFScAKOltTZw40TjNfgZ2Xy2nFZtUJt2ov/nmm/6q4WuMPyM0kMb7JrTJskZ322034zTHW3IepfiWvLEiV0z6ujxr1iyj4FU7FfuZrvMj3NqZnZ89rMpUtR5mt4L36quvur+UUgDQDjvs4P6SarPNNquZShF7/xlGAAEEEEAAAQSqKVBqPU7a93z5jJqlTkcG1a7/SPq7Qy2USfuQxvdT6nUkXTsp6XqWfCWrxLaqXa+Txnsmn2mx86jTWSwWp649zc/4RqrTUQBMhw4d3NamJf72228bWYZb/1cAh5223XZbM2jQoMC6qj9XQGX4+ZTdSpDy0LldK0lBF8Ukudj15N9++20xq+ddtpLPGtO+/upH/jo/dD4pqdWk+++/3xx77LGRBmqdyA6m0nFJ+vlKUvc0tfZZklS5Ig/M/yamfS/fSNfYfK6NNo8AoEY7og1QnnDFUZyubbxi62bITgowSSuFK4t0c6UPSXXPVE6qtQAgBTapuxM7qXsx3TAUm8LHWh+OulktlIqtLFJXcHayH/B606tdrlVWWcXblbJeFdjj9P/pdpv13nvvGf1NmjTJfQ0Ha5S1oSqtrC6jtttuO/dPu6DWsPSrBUXkP/jgg+64vWtOH7duV3O6uS02eMDOp1LDxX6p0X7oumZ/sQlf93Lta9LbCr9/td1StqH1dGzsAKDwL4i1TFRK6n0TlXclpg0ePNhtwakSeVc7z6Svy1HnQNTnYb5yK/hHXYFFdbsQXk/nkrqmvOiii8KzjL7w608BQqqEUWWMAoL0V+o5n7URJiCAAAIIIIAAAnUsEP5uELceJ+17vnzEzVKnI4Nq138k/d2hFsqkfUjq+yn1OsFWz2u5XqeU74O1UqejczZ87da0Usqk9Uqp10nqPaPtp5Go01msHKeuPc3P+Eaq01Er0+rK66GHHnLB9RxDrb8fcMABiw+AM2QHAKmuSj006EeWagXIm6fW1seMGWN07trJ7npKvTrstNNO9uyqDqu7w2JSMS2FF5Ovlg3XuSf5rLEa11+14HPiiSf6DOoGLFcAkLqXstOBBx5YVKvs3rpp3NNU47MkjXJ5hlGvad/LN9I1NsqzUacRANSoR7ZOy6XIRTuyVMUIV8LkKpqapbO7kNFySX4o59quNz1qP/VBXgsBQL169XIfbHr7mutVASJ2X6BRy9ndRnnzZ8yYYfRXblIAUJyk8iSdql2uciKVP/zwQ/OnP/3JqFlVDTdT0i9O9CsF/enh/FVXXWUuv/xyY3dppsj/yy67zNx44401R1NsxacKEL6uhb+M5Cpk0tvSjWY4lVNRZOcV/hyw59nD5bxv7HwYLl8g6etyEhVFKpW6AY0TAKRl1VWmmkDW9VRBvFFJAbCPPvqo+6f566+/vtlvv/3M/vvvb9R1IQkBBBBAAAEEEGg2gXLqcapxz5fr+DRLnY7KX+36j6S/O9RCmbQP5Xw/pV6nPut1kq5n0XmUK1ViW9Wu1ynnPZPLiemlCVTiupz2Z3wj1emoGzAvAEhHtFAAkFqrViCPkn5c7QUAaVzdgNkBQGPHjg3Uk2255Zaxn78pv0qnuEHkld6PSj9rrMb1V3WX6mFh4cKFLp96VtDzuHAAjerl7SAxBVn99re/jU2e9j1NWp8laZcrH3g17uUb6Rqbz7aR5hEA1EhHswHKogCUcOssimCOk6IeGIebRoyTT6nLRO1n1IW42PxVCaUgB7V04qWXXnrJG4z1qgegUa0ahFeeOnVqwQCgcJBVOI9yxu1WTfLlo1Ydkk7VLlfnzp2LLpJu0NRihb4Q5HpYHc60Y8eO7q8I9ADbDpIJL1eP4zK88MIL3dY5dt11V2M3+XnHHXe489T1XC2lYls00b6HfwmhiPM4Kelthd8z7dq1K/kLY7i/4bjnZinvmzhWLFO8QNLX5fBnur5shs+TOHtZzHmvbVx55ZVmzz33dAMJ1SRyoXNRLVfp79JLL3X7xt5iiy3i7BbLIIAAAggggAACDSOQZD1OGvd8ueCbpU5H5Q9/l8tlUsr0OPU6SX93qIUyaR9K+X5KvU7wLKu3ep1ivm96Ja2VOh3tT/hakHa9TinvGc+R12QFKnFdTrtep5HqdNQij7rt8ur7FdCjZ2Yqo9L48ePNzJkz/ZPA7lHBHtYCCgBS0IeXarn7L+1juLsyb7/Tfg2fv9p+ks8aq3H9VUMFu+yySyC4TK0AnXfeeQFe9fRh14eqrjNOzwrVuqep9GdJtcoVOCihkfD5E5pd1miue/lGusaWBVRHKxMAVEcHqxl2VcEu9s2Nyhz34bYe7OtmVb8+89Lnn3/uDVb8NWo/k/rw+dWvfmVGjBjhl+Hdd991b/QGDhzoT0trIKqFAwVbJBGdrZYUqpXqrVxq0ULd0ORr2UIfyv369TNrr72228ermgJVVH/btm3dQA37Rs77ApG2v25W9IVFvwrR38orr2zWXXfdsnZDLuecc445/fTT/XzUZPS4ceNcM39iQgP2NafYLHXdKDYoKdzaVtS5G7UfSW9LwWR2UsspCroKT7eXyTX86aefBmaV23JaIDNGYguUcy7H3kjMBTt16hRYUhUd+kwvNgjI+1VLILMCI7pW/v3vf3e7RlDXgk8++aRbYRL1Oe9lpeuXKlkUQHTcccd5k3lFAAEEEEAAAQQaXqCcepxq3vOFD0zUvV4j1umo3FHfIeu9Xqcey0S9TvhduHi8Xup1kq5nWSyQPVSJbYXrb6jXyXavpym1VKcjt2p9xjdCnY7qRdWVl/cjcLX+rnrtddZZxz0l1SKQnbbZZht/VPXqqmv2WphRHqob81oIsgOA9DxAn/+kbIFKP2us1vX3kEMOCQQA3XPPPVkBQOHuv9R1WKHUKPc04XLWarmqed/bCNfY8HFu1HECgBr1yNZpuRTAo4d7dgRz3CAe3cSoOdTJkyf7pc8XHOEvlNBA1H727NkzkdzVx6sdAKRMFYlbjQAgGaufXzt45MgjjzQKUqrnVE/lUstS8g6f36qc1C8ENt10UzfgZ6211soZjKGAGDuFW96y51VyWE2ajho1yt+EutJR5Hm56YgjjggEACk/NdOoSqRCadGiRYUW8efLsZQAAy+DTz75pOgAILXUZaflllvOHs05nPS2wr9a04YVIa7zrtgUjiwvNsij2O01y/JpnstJm0ad1x9//HHRAUBap9SkL/u6luhPlq+88op56qmn3ICgt956K6vFQi1z/PHHG332qxUhEgIIIIAAAggg0AwC5dTj1MI9n3eMmqVOR+Wtp/oP7/gUeq23MlGvU+iIGvd7mP3DLq1Ra/U6Sdez5FOpxLao18knXv159VynI71qf8bXe52OAnO8ACB5qj7KCwCyu/hSsJB+/OslBfWo/tt7lqSu7F977TX3eYF+vPb66697i7pdgy2//PL+OAOLBSr9rLFa1189U1K9pfdj3A8++MC8+uqrRkEdShofPXq0D6GeSfbYYw9/PGqgke5p7PLVcrlq4b633q+x9rFu1OGWjVowylW/AuGgmahKmFylC/f3GH5Qnms9e7pasCglGCK8n+U0m2rvj4Z32GGHrF9o3XnnnYEujsLrVGpclXtqpcVOY8aMsUfrcrieynX22WebCRMmBJx1Y6/mCHVeHH744e5NWziS3FtBN/52AJeml3LOe/mV87r66qsHVtcXkiSSfoUabkUmqunOqG2FbaKW8aaV29yiKnCKTeF1or5QR+UZXi9qmfC08Dr2tqKCdEoNtgivFxXFHt43xgsLpHkuF96b4pYI3wto7fB5EifH8DkcZ52oZVq3bm0233xztztNdfmlL8rXXHONCd93aN0rrrgiKgumIYAAAggggAACDSsQvncL14/kKnh4PS1XrXu+8D43ap2OjOup/kP7GyfVW5mo1yl8VOuhXqeU75vhdex6lnwq4fXyLevNC68T3hb1Op5Ubb7Wc52ORGvpM74e63T0o1k7KQBIST9EtX9Mu9VWW/ldg3nLh7sBGzlypDvr8ccf97sV04TddtvNW4XXCIFwnV+Szxqrdf3V/ZIaG7CTGhrwkloEstNee+1l2rdvb0/KGm6kexq7cLVcrlq7763Ha6x9rBt1mACgRj2ydVyu8JeRcCVMvqIl8aGsYBtV9Ky22mpu4M0TTzyRb5P+vPB+Rt3k+gsXOaAL6D777BNYSzccxx57bGBaWiOrrrpqYFNqCaERUj2Ua8GCBebuu+8OcA8ePNj9FUDc5sm9CG87E69PYXtaGsPhACBFmauVjXKTvgyFg3PCgWveNtSilZ1kHDdF3fgXE0xVbOW2grfU7KudNthgA3s053DS21JLP+EvADp+xSade1OmTAmstuKKKwbGGYknUM1zOd4exl9KvyII3w/YLfzFyUnvF6/J4zjLe8vEqWRTv9/q6ksBsLoG20nTaq3pbXv/GEYAAQQQQAABBJIWCN+3hetHcm2vmvd84X0K73Mj1+mo7PVQ/xE+RoXG66VM1OsUOpI/z6+Hep2k61nyyVRiW9Tr5BNPf14j1elIr1qf8Y1Sp6PPtAEDBvgn4ssvv2xUz/Wf//zHfPfdd/70cLCPZoSneQFAdvdfWo4AICnkTpV81ljN62+4S69//OMfPsIDDzzgD2sgvGxgpjPSaPc0XvnqoVzVuu9tlGusd6wb+ZUAoEY+unVatnAlSzEP78Ifygre+frrr2NLfPPNN26Td7rAT5o0ye3mQzercVJ4P8PliJNHvmVOPPFEoyb37HTHHXeY++67z55U1nDcIJDwh8u///3vopy1k2pyUgErymu77bYzhx12WCB6vayClLhyPZRLXSWp3287DR061ChILG567rnnshaNe+yzVixzwpZbbpmVwwUXXJA1rdgJKmO4qdzw8fXyXHLJJb1B99XugjAwI2LkhRdeiJgaf1I4qr7Qmn/5y18CrTWpP+0ow6h8kt6WzrmNNtoosKmbb7656MAHBbSFW2faZZddAvkyEk+gmudyvD2Mv5SaLN59990DK9x2221FnV8PPfRQYP1cI2p57KijjjL61ZQ+u8MBPbnW03R9Lp9yyimBRXTtiQq0DCzECAIIIIAAAggg0EAC4fqPcP1IrqKmec+Xax+86eF9DpfJW67U11qq01EZwt+PG6Fep17KRL1OvHdRPdTrJF3Pkk+mEtuiXiefePrzGqlOR3ppfcY3cp2OugHzkh6667Naf3baZptt7FF3uF+/fmallVbyp6uLJ3Vn9PTTT/vT9Jm5xhpr+OMMZAtU8lljNa+/avhgyJAhfoEVYKofM/73v/8N9Dqhc2STTTbxl4saaLR7Gq+M9VCutO57G/ka6x3vRn0lAKhRj2wdl6tXr16BvQ+3DBGYGRpRH5Zq/sxLCv659tprvdGCr08++WQgaEB9oMZtXSO8n+FyFNx4gQV003bjjTdmLXXooYeaW265JWt6sRMU8BTVn2dUaybhJij1S7nf//73RW1SXaToxlPdVj377LPm1ltvzWrtoagME1i4HsoVDpRQsQcOHBi79Ar00UP0cIoTuRteJ4lx9V2sADA76X14zjnn2JOKGlYAn5potJNuiBRZH5XCTW6OHz8+arGsaXpvhKPisxYqMEE3UCpvnPT999+byy67LLDozjvvbNQncZxUiW2FAzT0ReGuu+6KszvuMvpF37BhwwLLr7DCClmBRYEFyhgJV6Yoq2qd+2UUI+eq1TyXc+5UGTN+/etfB9bW51S4BbTAAtaIgnDOP/98a0ruQVVK3XTTTW4ligIAdQ3QF724SYF4dmrZsmVWF4T2fIYRQAABBBBAAIFGEwjXf4TrR/KVN617vnz7oHnhfQ6XqdD6hebXUp2O9rUe6j8KmYbn10uZqNcJH7ns8Xqp16lEPUu2xs9TKrWteqrXoU4n+uxIon4yOufyp6bxGd/IdTrhzzV1A2YHAPXt29fkavHebgVI9a8XXXSR0Y/fvWQHF3nTynltxPdnpZ81VvP6G27ZR60APfjgg4FT4KCDDgqMR4002j2NV8a0y1XK+yd8fajUM9pGvsZ6x7tRXwkAatQjW8fl2nzzzQN7//rrr7t9mwYm5hhRd0JHHnlkYO6f/vSnrK6AAgv8b0TdBZ188smBWWoGURe4OEnNMNopXA57XqnD++23X1YfnWryUa3n6IY66oOp0LbUSoFaL1h33XXNG2+8UWhxd/6mm25q9t1338CyCk568803A9NyjYwbN87ccMMNgdk77rijWWWVVQLT0h6ph3KFu8ySkTzjpj/+8Y9GlQbhNH/+/PCk1MbPPPPMrG1deOGF5ne/+12s96698rfffus2Xxo+F0899VSjh/JRKWyqoB4FpxVKChjQ9ancpACYON0FKZgx3DrR4YcfXtTmk97WIYccYpZddtnAPmgb4VaqAgtYI7oOhLt1Ut/Cca+7VlaxBtu2bZt1HoS7iouVUY0uVO1zOWkWtW4V/lxQUI+aPC6U1EJe3C7pNtxwQ6NKEzvpGhQ32b+g0jrKK+qLW9z8WA4BBBBAAAEEEKg3gXD9RzH1OGnd8xUybaY6HVnUQ/1HoWMWnl8vZQp/b1M5qNdZfDTrrV4n6XqWxRLZQ5XYVj3V61Cnk31OaEpS9ZPRuZc3NY3P+Eau01ErLd26dfMPwuOPP25eeeUVfzyq9R9vph0ApGl//vOfvVnua9LdfzXi+1Of15V81ljN6+/ee+9t2rdv758TCgAaMWKEP67nKAceeKA/nmugEe9pVNa0y1XK+yet+95GvsbmOq8bZroTIUxCoKYEnF95ZJwuNTLOm8z/cwIWYu+jE+mYcR5I++sqH6e/1Mw777yTMw8n+jnjRD0H1nE+APOuY2fmBAtknAfWgfWd1gPsRRIbdh6sZ5xm+gLb8qw6duyYcT6YM88880zGCSjIuU2V1+kaxV3W+XCJzEt5/uIXv8hMnTo1Mp/p06dntD1v23qV+7333hu5vDfRacEh06NHj8B6Wtd5gOotkvXqNEcZWN5pwSZrmXwTnJZfAus7LSblXDytcq244oqBfXKCTnLuU3iG04xnYN2uXbvmPE7eujofnFZ1ss5T7/hdeeWV3qJZr05XbYHtOV82spYpd4ITUR7YhrdfKtsll1yS0XmTKzktfbjznWC/jNMCSlY+On90XcmVnG68stZxvqBmnBZ3cq2ScVriyTg3wlnrab+ff/75nOuFz2WvnM6XsoyuXVHJabUp8tj99re/jVrcn5bWtpygsiwH59cnGafpUH9fwgPOL08yTlBW1vnYp0+fjK6nuVI57xsvz/Dni9P1kzcr0VcnsCjLxQkqSXQb4cyqeS5X6rrs9FOe5Tho0KCMEzgWLr4/fv3112eclrGy1tP7zXmw4y9nD+h89N6P3us111xjLxI57Pz6KuO0PBhY9+KLL45clokIIIAAAggggECjCpRbj5PWPV8u/2as05FFWvUf4e+mlfrukGaZtK1yvp9SryPBxale6nXC57L33bGe63R0FNKq1ynnPeOdLdTpeBI/vyZVP1nJ63Ian/Fp1ek4wSAZ50fUgT+nB4rgQUl4zGmpJVDn5F139Op0DZhza5999llWvau37nLLLZf32ZGdqdN6f2D7TsCZPTswXMr7M3xdLfZc1PMrr1x61fOBJFOlnzWmdf2NMjnggAMCdrbj9ttvH7VK5LS072nK/SyJe06nXa5S3j9p3cundY2NPMGYWLKAKXlNVkSgggJOV1SBD598wQlRu6EPevsDS8MdOnTIOE0dZl588cWMAmD0UF0PEJ1WAjJOV19Zyzvd2ERlHTntscceC6yvh5OVTLqxdKJ0A9sMl7dLly6ZjTbaKCNLp6/5jNOaSmbo0KFuUE++oB/lowenelCtL+D5kr5khLerce2bEzWc8YKgFEjx9ttvZ4477riM0ypC1jpOy0v5NpMp90awmAAg7Uga5SrnRuX000/PMtQNyf333++e1zam88upjG6cBw8eHFgnHLCmPHOlNAKAFBCiG8uo88mbpkA+59cJGX3ZOuusszJOi1iZtddeO/Kc8tZxmm3POP3Y5iqaPz18jmh9p4n2jNNCTcZpTcitGFUgovNricD5KEe9373t6bWUACBvewpOe/fdd93jqBs4J/I+s8MOOwTy17IKjMoVMOQVKvy+sfdRZUtqW7qWOk2iZu2j3utO14BuQKLTOpn7xVJlGz58eMaJUM9aXkEUuYIzvDKV877x8lh//fWztr3mmmtmnFbNMrvsskummGA8L8+o12oEAGk/qnUuF/sFPbyf+QIzFexmn78a1mecPuv1/tRnld4P+iz+zW9+E1g2HKiX6xxzWsPLON3PBdbVdpxfW2UeffTRzCeffOJXjnzxxRcZXQ/233//rOAfBSFWuvIn6nxjGgIIIIAAAgggUG2Bcutx0rjny2XUrHU68kij/iP83bSS3x3SKpO2U873U+p16rNeJ3wu299Tk6xn0fmV5rbSqtcp5z0jEyXqdKa79RFJ109W+rpc6c/4tOp0FOxnv+81rDrPSiY9YwlvU+Oqk3Zais+7aQUrRa3r9CaRdz17ZtxgCa1TyvszfK0r9lysdACQylXJZ41pXX9VjnDSM4yo80PT7rvvvvDiOcfTvqcp97Mk7jmddrlKef/ooKRxL5/WNTbnScaMkgQIACqJjZUqLaAHxPaHj9MfZlGbVDBBuPLJzk8PBNu1axfYhj3/2GOPLWp7ThdGgbzOPvvsotYvdWE9MFVLRfa+lzusB/NvvfVWrF364YcfMvvss0/e7auVoHCwib2PimLXjU6+VO6NYDEPmrUfaZSrnBsV/bpyvfXWi3RX0IXTRKEb6NW7d++sh9Oyd7qNyqiFCvs46LjnSmkEAGnbCsyLCnax97OYYQX2jR07NlexAtPvvPPOgEfc7VxwwQVuMJK9vNMXcyBveyR8Lkfd2CmvfNenuOVKc1v6shsV1GO75CuTAjTz/WrFMyznfePlcdJJJ+U91kcffbS3aFmv1QoAqta5XOwX9GKuy05Xl27wn30+2cO5zi2dk+FritNUcs7jqlar8n2mtmnTxg0mtrdtD+vzzunuImf+zEAAAQQQQAABBBpZoNx6nLTu+aKOQbPW6cgijfqP8HfTSn53SKtM2k4530+p11nc6rv9nSo8HLf+Q8cjje/C4XO5Uep05JdGvU457xntoxJ1OtHvnXLrJyt9XU7jMz6NOp1qBADpx71RP6geOHDgz2+KPP+jWu3QdVaBz3FT3GAJ5VfK+zN8XS32XEwjAKjSzxrTuP5GHW89k1PwavizV718zJ8/P2qVyGlp39OU+1kS95xOu1ylvH90QNK4l9d20rjGajuk5AQIAErOkpwSFFAThfav9vWL+kJBIuHNa3lV4rRu3TrrQyz8oeaN6+GduhvSh3oxabPNNgtso5guy4rZTtSy//3vf91WCPI9tPTKl+9Vra+o+5hS0vnnn58p1KpQeNu6cdWHWqFWhrQ/5d4IFvOg2S5/JctV7o2KusRaZZVVAudd2Dg83rNnT7eVIJVRLbHY8xWkNWXKFLv4/nBaAUDeBh988MHIljjs/c03rGuHWptSd3nFJEVLh7vyybUdtZJ16aWXutmrNSJ7uWICgPSlRi03xX3/6gZ12rRpsYoV9b6p1La0Q7opVnBZvoA/28kbVus7Oh/jpHLfN9qGKh0233zzwDHz9kWv6v4tiVStACDte7XO5WLcir0uqxtDBWfZxyrfsH7lNGvWrKzAoXwBQNr/f/3rXxm1HJYv76h56pqzUN7F+LAsAggggAACCCBQbwJJ1OOkdc8Xtm32Oh15VLL+I+q7afgY5Bsv9ruDl1cly6RtlPv9lHqd6EAGfd+q1XqdqHO5UvUsaW7Le89Uul6n3PeM9pM6neD7Jsn6Se88iK6dipgAAEAASURBVPNaynU5jc/4StfpVCMASMdj5513zqqnOuGEEwoeKnVbH67DUjdDxQR3xA2W0M6U8v6MutYVLJi1QBoBQNpcpZ81Vvr6a5EFBs8777ysc6SUH8emeU9T7mdJMed0muUq5f1jH8xK3/dqW5W+xtrlYbh8AQKAyjckhwoJhFuTyPdQPd8uTJw40e2SKt8Ddn2xVFce6nKn2KSH8XbQgIIsig1WKnabUcsr2EHBBFtssUWsB/DaZ3VtMmzYsNitpERt15um7lGOOOIIt1uW8I2lPa7AHwVnFGNd7o1gKV9KKl2ucm9UtH+K7lUTlOEAHdtbw6uuuqq7nLpis1O4uxt1kReVwvk//vjjUYslOk2/blD3fHvttVemU6dOWTei4TJqfOWVV86cdtppbndzpe6MuqrTl6pcgYN636hFEbuVj3IDgLSviqDO1aqTyqZghrvvvruo4MRc75tKbMv2HjdunNvdYK5WWVQeBQlttdVWbqs/xXzpTOJ9o31VF03qElEVJeFzSdfwJFI1A4C0/9U6l+PalXpdVoCtugLMFWim68UZZ5zhBqRpX7SsfYzjBOnonLzxxhszffv2Daxr5+MN60vjVVdd5V6P45ad5RBAAAEEEEAAgUYVSKoeJ417Pu8YUKfjSWTcbm8rUa+T67vp4i3nHyr1u4NyrWRdVRLfT6nXCQYz1Hq9Tq5zuRL1LGluK/wOrFS9ThLvGe0rdTrGfRZRifrJ8LmQa7yc63KlP+MrWadTrQCgv/zlL1n1U+quvlBSQEH4R9t77rlnodUC84sJltCKxb4/c13rAjuRZyStACBvFyr9rLFS119v/8OvH3/8cVYdq/3cI7x8vvG07mnK/Swp9pxOq1yyLfb9Ez4elbzv9bZVyWustw1ekxFooWychxgkBGpOYMSIEcZ5+O/vlxOgY+666y5/vNgBJ4rWvPjii+b99983s2fPVvCbGTBggHFuMtxX52F1sVm6yztBE+b3v/+9v67GnYAAf7waA86DZ+Nc7I1TkWWmTp3q/jkXZtOjRw/3b7nlljMbbLCBcZrzS3z3nOAn8+abbxrn4bNxfgFo5syZY7S9fv36+X9Odz+Jb7fSGdZyuZzAHve8/uCDD8yHH35ovvjiC9O1a1fjBDIYpwLW9OnTp9I8Fc3faSXKPaecoDH3nPr888/dMjpBfe65pXLqvex8+UxsP3TePvvss8a5CXa3KU+nSzXjBNgZp3WQkrfjtHZjnNZu/PWdoD3jdIPnj+t9M3r0aPe9q2uS08qTcVoWMU6zrv4ycQfS3FbUPumaM2rUKKPzUtdcXYOdoDP3fNS+1cJ5qePsfSYsvfTSxvkCYZwmxo0TGBRVpLqcVqlzudoY+owbP368e/ycln7cz7b+/fub7bbbzjiVG4nsnvPrNPcaoG3pT9cDXW/1WarPNaeSoSbO40QKSyYIIIAAAggggEACAknX46Rxz0edTvaBr+X6j+y9jTel1stEvU591OukWc+S5rZyvYtqvV6HOp3S6ydzHfM0p1f6M76SdTpOQI5xAmaN8+M0o/eJ02V8mnR1sa1Gf39W6lmjd3Br/frr7WfUa6Pe06RZrnLfP2nc91byGht1XjGteAECgIo3Y42UBHSR0pcdJ6rW3aIehs+YMcM4v+5PaQ8Kb0ZBRHrgOHnyZHdh7ZseEOpBMgkBBBAICxSqwAkvX854mtsqZz9ZFwEEEEAAAQQQQAABBBpDoB7qcWxp6nRsDYYRQKCQQJr1LGluq1C5mY8AAkGBc845x1x44YWmS5cuRj9UJSGAAAIIIFBrAi1rbYfYHwQ8AadbrkBLOoqwvOeee7zZNfH6/PPP+8E/2iGnayuCf2riyLATCCCAAAIIIIAAAggggAACCCCQpkA91OPYHtTp2BoMI4AAAggggEAcgZEjR7qLrbrqqnEWZxkEEEAAAQRSFyAAKHVyNliMwL777ut2G+Wtc+utt3qDNfF6yy23+PvRsWNHc/zxx/vjDCCAAAIIIIAAAggggAACCCCAAALNJFDr9Tj2saBOx9ZgGAEEEEAAAQQKCdx///1m9OjR7mK65yEhgAACCCBQiwIEANXiUWGffIFWrVqZM8880x8fM2aMee211/zxag7MmjXL/OMf//B34eijjzadO3f2xxlAAAEEEEAAAQQQQAABBBBAAAEEmkmglutx7ONAnY6twTACCCCAAAIIFBK4/PLLzW9+8xt3sX79+pkDDjig0CrMRwABBBBAoCoCBABVhZ2NFiNw4IEHmtVWW81fxQ4I8idWYeC8884z8+fPd7es/l5POeWUKuwFm0QAAQQQQAABBBBAAAEEEEAAAQRqR6BW63FsIep0bA2GEUAAAQQQQKCQwCuvvGIymYzp0aOHefTRR80yyyxTaBXmI4AAAgggUBUBAoCqws5GixFo06aNGT58uNGvyJTUR/sTTzxRTBaJL/vee++Zv/71r36+1113nenWrZs/zgACCCCAAAIIIIAAAggggAACCCDQjAK1WI9jHwfqdGwNhhFAAAEEEEAgjsANN9xgTjjhBDNx4kSzxhprxFmFZRBAAAEEEKiKAAFAVWFno8UKbLjhhua0007zVzv99NPNTz/95I+nPaBWiBYtWuRu9te//rXZZ5990t4FtocAAggggAACCCCAAAIIIIAAAgjUpECt1ePYSNTp2BoMI4AAAggggEAcgZ49e5qrr77adOrUKc7iLIMAAggggEDVBAgAqho9Gy5WYNiwYWattdZyVxs/fry58847i80ikeVHjx5tHnroITevrl27GkV+kxBAAAEEEEAAAQQQQAABBBBAAAEEFgvUSj3O4j0yhjodW4NhBBBAAAEEEEAAAQQQQACBRhNo3WgFojyNK+A1Ib3RRhu5re+cc845bss7Sy65ZKqFtlsiUvBP9+7dU90+G0MAgfoVOOSQQ8zs2bP9AgwcONAfTnogzW0lve/khwACCCCAAAIIIIAAAvUvUCv1OLYkdTq2BsMIIFCMQJr1LGluqxgDlkUAAQQQQAABBBCofYEWGSfV/m6yhwgsFvj888/NwoUL3QlqgWeJJZZYPLPCQ3q7zJw5091KixYtzHLLLVfhLZI9AggggAACCCCAAAIIIIAAAgggUL8C1azHsdWo07E1GEYAAQQQQAABBBBAAAEEEGhEAQKAGvGoUiYEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQACBphFo2TQlpaAIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgAAFADXhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA8wgQANQ8x5qSIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgAAFADXhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA8wgQANQ8x5qSIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgAAFADXhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA8wgQANQ8x5qSIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgAAFADXhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA8wgQANQ8x5qSIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgAAFADXhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA8wgQANQ8x5qSIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgAAFADXhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA8wgQANQ8x5qSIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgAAFADXhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA8wgQANQ8x5qSIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgAAFADXhQKRICCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA8wgQANQ8x5qSIoAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCDSgQOsGLBNFqiOBE0880bzxxhv+Ht93331m+eWX98cZQAABBBBAAAEEGknghRdeMPoLpxVWWMEcfPDB4cmMI4AAAggggAACNSXw448/mi233NLfp969e5t7773XH2cAAQQQQAABBBBoNIHbbrvNTJs2LatYW221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QAABBBBAAIHUBQgASp2cDSKAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggkJwAAUDJWZITAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAKpCxAAlDo5G0QAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAIDkBAoCSsyQnBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQRSFyAAKHVyNogAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAQHICBAAlZ0lOCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgikLtA69S2yQQQQQAABBBBAAAEEmlTgyy+/NHPmzMkq/ZJLLmmWX375rOlMQAABBBBAAAEEEEAAAQQQQAABBBConsC0adPMggULsnZg2WWXNZ07d86azgQEEEAAAQSqKUAAUDX12TYCCCCAAAIIIIBAUwncc8895s9//nNWmddbbz1z7733Zk1nAgIIIIAAAggggAACCCCAAAIIIIBA9QROOukkM27cuKwdOOGEE8xRRx2VNZ0JCCCAAAIIVFOALsCqqc+2EUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAoU4AAoDIBWR0BBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgWoKEABUTX22jQACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBAmQIEAJUJyOoIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCFRTgACgauqzbQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEyhQgAKhMQFZHAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKCaAgQAVVOfbSOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUKYAAUBlArI6AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAALVFCAAqJr6bBsBBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAgTIFCAAqE5DVEUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBCopgABQNXUZ9sIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCJQpQABQmYCsjgACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIBANQUIAKqmPttGAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQKBMAQKAygRkdQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEqilAAFA19dk2AggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAJlChAAVCYgqyOAAAIIIIAAAggggAACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAgggUE0BAoCqqc+2EUAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAoU6B1meuzepkCkyZNMqNGjTITJ040Glbq06ePGTRokNl3331Nx44dC27hxx9/NE888YR59tlnzdSpU813331nVl99dTNw4EAzZMgQs9pqqxXMQwtMnz7d3HXXXe5+aLh79+5mrbXWcvPZeuutTbt27WLlw0IIIIAAAggggAACCCCAAAIIIIBAowokUZeTVB1MUvk06rGiXAgggAACCCCAAAIIIIAAAgg0kwABQFU82g8++KC57rrrjAJ47PTVV1+ZcePGmUcffdSceeaZZuONN7ZnB4Y/++wzc/LJJ5spU6YEpr/++utGf8OHD3fz2H777QPzwyP33nuvufnmmwP78vHHHxv9PfbYY+6+XH755WappZYKr8o4AggggAACCCCAAAIIIIAAAggg0BQCSdTlJFUHk1Q+TXHgKCQCCCCAAAIIIIAAAggggAACTSBAAFAVDnImkzEXXXSReeqpp9ytt27d2gwePNhssskmbus9L774opkwYYJRINCwYcPMLbfcYlZcccWsPZ03b5459dRT/eCf/v37u3l069bNjB071iifH374wVx44YVGyw4dOjQrD01QgM8NN9zgzmvTpo1Raz9q+Wf27Nnm5ZdfNh9+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6k99//33NzfddJM7ady4cWadddZxh9u1a+ctZtQ0c6FkL9OhQwd/8WLzsVsPsvPxM4wY2G+//cw222wTMefnSTfffLP54IMPjB2klHNhZiCAAAIIIIAAAggggAACCCCAAAIpCoTrbdKqy8lVB1PpupwllljCnHbaaTmFFZikLu1/+umnnMswAwEEEEAAAQQQQAABBBBAAAEEqiNAAFCK7uFKo7XXXjvv1gcOHOjP/+ijj/xhO5958+b503MN2M1V24E79nA5+eTarqbvtNNO+Wabe++918yZMyfvMsxEAAEEEEAAAQQQQAABBBBAAAEEqiFg18Fo+6XW5SRVB5NUPrksFQB06KGH5ppt1CLSEUcckXM+MxBAAAEEEEAAAQQQQAABBBBAoHoCdAGWon23bt38rbVq1cp0797dH48a6N27tz952rRp/nDbtm1Nly5d3PHZs2f703MNzJo1y5/VuXNnf7hXr17+cJx8vGW070svvbS/LgMIIIAAAggggAACCCCAAAIIIIBAIwokVZeTVB1MUvk04rGiTAgggAACCCCAAAIIIIAAAgg0uwABQCmeAcsss4wfuKMmk6dPn5536998840/f6mllvKHNbDSSiu542rdp1ALOnbw0Oqrr+7n07dvX3+40L6oi66ZM2e6y/fr188oCImEAAIIIIAAAggggAACCCCAAAIINLJAUnU5SdXBJJVPIx8zyoYAAggggAACCCCAAALNKbDbK6+ZTZ8f5f7dPPmj5kSg1E0vQABQyqfAGmus4W/xnXfe8YejBuzAnZ49ewYWsfMZN25cYF545O233/Yn2ev179/fqGlnpbFjx/rLRA28++67bjPPmmfnEbUs0xBAAAEEEEAAAQQQQAABBBBAAIFGEbDrQUqty0mqDiapfBrl2FAOBBBAAAEEEEAAAQQQQMATmPjNt+aDefPcv4+dVxICzShAAFDKR33bbbf1tzhy5EiTyWT88fDAY4895k/abLPN/GENbLnllv74U0895Q+HB9T911tvveVOHjBggLG7AFM/9htttJE7b8qUKea9994Lr+6P29vYeOON/ekMIIAAAggggAACCCCAAAIIIIAAAo0skERdTlJ1MEnl08jHi7IhgAACCCCAAAIIIIBAcwrMd3rg8dLXCxd5g7wi0FQCBAClfLg32WQT06NHD3err776qrn55psj9+Dl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r79Gy6txokmTJm7ZZZeNTJNjUxm1qr2g7WzPENrOjjfazo619oS2s+ONtrNjXUjbEyZMcNWeBJU+SbYaye9vK+hC2VWrveS32xa1PXv2bPfNN99UO2qX327/+OOPBd8ArvoDwUAIJEBAw80rk7Pegt9uu+0SqLF0FRrSPp4p2kob3bVrV9eiRYvo4Cy00cr+rYzioVhpo9u0aZMTLGmljUbbQWnpf6Lt9BnH94C24zTSnUbb6fLNrx1t5xNJ7zvaTo9toZobi7bHjx9f6PCqal5j0fa0adOc/qq95Gv722+/dT///HO1m52IfQQAJYKRSupKYPXVV/ebauz6tIsa1rZt20a7kSPDQpHDKG63haAlcZWTXH+h6EGWhRJnbeWHoFmzZjkaQdvpKg1tp8s3XjvajtNIfzpf2+nvMZk9NIZ228rvjYb7iPO23CexEAAUZ21FI/ntthW787Wth9sWSn67rf62NW1LMxaKVW1bYIuN9giordl4442dAnGyKPk+ESvthtroVq1aRYgstNEyNt7/kB/NQrHaRjcWbVvQiGxsDNq2EKAu1vl9a6vtto6l2ot+W9B2dmcJbWfHGm1nx1p7yte2lT6ggsBleygW+tv52tZ3C0V+svjvDX2S6j9rNjyb1c8RC+tJ4LbbbnPTp0+vZy2lN3/33XfdBRdcEK20/fbbuz//+c/R92qduOOOO9wjjzwSmXfeeee53/zmN9H3ap045ZRT3OjRoyPznnzySae3q6u56CHVvvvuG5nYo0cPd99990Xfq3XinXfecRdeeGFk3o477phzHNGCKpu4/fbb3fDhwyOrrGj75JNPdmPGjIns/u9//+uyCGKMdliHCXXI9ttvv2jLnj17mtD222+/7ZQpLhQr2tZv2qOPPhrM9mO+Dho0KPperRMnnXSSGzt2bGTeU089VfXaVka8+G+5xl630G6/9dZb7uKLL45Y77zzzm6fffaJvlfrxK233uoee+yxyLzzzz/fWdD2iSee6L744ovI7meeeSYnk0C0oIomZsyY4fbff//IopVWWsmEtt988013ySWXRHZb0fYtt9ziHn/88chu9auUsrfai0Vt657vgAMOiNBa0fYbb7zhLr300sjuXXfd1e21117R97Qm9LYaBQLVSkD6VLufdrnpppuc/Amh6HdmrbXWCl+r9vP4449348aNi+x77rnncpzm0YIqmlDmnIMOOiiyaJVVVnH3339/9L1aJ1577TV3+eWXR+btvvvubo899oi+V+uEVW3/5S9/ccpoFcrzzz/v9ACumoveUFf2+VD69u1rUtvStQVt33jjjU6+slDUh1pzzTXD16r9zNf2Cy+8kPNyazUablXbr776qrviiisipHvuuadT213t5YYbbnDylYVy2WWXuTXWWCN8rdrP4447zml0hlBefPHFnCDlML+aPpVp8pBDDolM6tevn4l2+5VXXnFXXnllZLfuGXfbbbfoe7VO/Otf//IZPoN9uj5D8oYwrxo/jz32WDdx4sTItJdeeiknIChaUEUTepny0EMPjSwaMGCAe+CBB6Lv1Trx8ssvu6uuuioyb++993byi1R7uf766538wKHo+hw4cGD4mspnu3btUqm3tpUSAFRbYqyfCoE+ffqkUm+8Ug35FS+dO3c24TRSau14UVCKBWdXfiOnRrVjx47xQ6m66fyh1fTGngXWctLFixVtx2+YZL+CUizwLqTtpZZaKn4Kqm46P8BSzjkLrPPTSGqoEwt2xx1dlrQdj+KX3Wq3q13b+b/tVrQtR0a8WGm34w/fZL8Crixck4W0Xe0P1a1qe8qUKXFp+6EFLWjkiSeeyLHbirbzH7bJQVftAff5v+26Pi1oRMNWx4uVPkncZqYhkDQBvQWaxfUbD6zXMVhto/WAMD6UWdLnI4n68n/HrbTR+dmoNPxaFtqsL/P4C1GqS0GxFuwu1P+odm3n/45b0baGqYgXK9qOv8hqSdvyA8eL2u38e8n48mqYzte2fJYW2pFJkybl4LOi7YcffjjH7t69e5vgXUjb+W15zoFVwZf833Yr2v76669z6C299NImNPLQQw/l2G2lT1JI2/nzcg6sCr7k/7aj7XRPyoMPPpizAyvazjG6jl9s5HKt48GxGQQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBo7AQKAGvsZ5vggAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBo1AQKAGvXp5eAgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBo7AQKAGvsZ5vggAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBo1AQKAGvXp5eAgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBo7AQKAGvsZ5vggAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABBo1gSbz5pdGfYQcHAT+P4Fp06a50aNHRzw6duzounfvHn2v1omvvvrKffPNN5F5K664omvfvn30vVonPvnkEzdjxozIvAEDBrjmzZtH36tx4tdff3UjRoyITGvdurXr06dP9L1aJ/K13alTJ7fccstVq7mRXWg7QpH6BNpOHXHODqxqe9SoUW7mzJnRsdBuRygSn7Dabk+YMMF9++23EQ8rfZJ8ba+66qquWbNm0XFU48TcuXPdyJEjI9Os9El++OEHN2bMmMhuK32SfG336NHDLbnkktFxVOtEY9B2mzZt3CqrrFKtiCO78rXduXNnt+yyy0bLmYAABNIjMH78ePfdd99FO7DSRn/88cdu1qxZkd0W+h+//PKLe//99yObrbTRU6dOdWPHjo3s7tKli+vWrVv0vVon8rXds2dPt8QSS1SruZFd+dpebbXVXNOm1f2Ocb6227Zt61ZeeeXomKp1Am1ne2bQdna80XZ2rLUni9qeM2eO++CDDyJQVtrtKVOmuC+++CKy20qfZNy4ce7777+P7LbaJxk4cKBr0qRJdBzVOJGv7Xbt2rnevXtXo6k5NuVru2vXrm6ZZZbJWacav+Rru1evXm7xxRevRlMTt4kAoMSRUiEEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAASyI1Dd4fnZcWBPEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQMEmAACCTpw2jIQABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgsIAAAUAoAQIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAoYJEABk+ORhOgQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABAgAQgMQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhAwTIAAIMMnD9MhAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCBAABAagAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAgGECzQ3bjukQaJQE5syZ45o3b+6aNGlSq+P75Zdf3OTJk/027dq1c/qrpjJ79mw3fvx4N3HiRNe5c2fXs2dPf5zVZGMhW+bOnetGjBjhF3Xt2tV169at0GpVM2/mzJluzJgxbvTo0e6HH35w3bt3d8svv7z/bNasWdXYWciQH3/80duuY+jSpYtbdtllXcuWLQutmsq8n3/+2b3wwgu+7tVXX9116tQplf1US6VqL8aOHevbjRVWWMH16NGjKq7JefPm+bZC+v3pp5+cdKHrcLHFFov+dB22bdu2WlBGdkhDkyZNcrNmzfJ/slttsWzX55JLLhmty0TdCej3pC5tgzSlc6SiNoZSngB9kvKMslyDPkl2tOmTZMdae6JPki1v9gYBCKRDoLH2m7777js3YcIEp/v03r17u44dO6YDMOFaLfWbdA/89ddfez+O7tEXX3xxp3v0FVdc0cQ9ZEP3mz766COvUd1vr7POOgkrqfqqq9Z+k3Qgn2/w48yYMcO1bt068om0b9++an2q+HKy0Tm+nGw4ay/0SbJjXcme6JNUQimZdeiTJMOx0lrok1RKqmHWazL/JmNew+yavUIAAoHA1KlT3Q033OADTXSzrxukPn36uDXWWMPtsssurlWrVmHVop+jRo1y+++/v1++7777uv3226/oukkvmDJlig82kYMiP3BJHZx77rnH3X777U7HGYqCnAYOHOiOO+44t9xyy4XZVfepG9dNN93U27XXXnu5Aw44IFMb33rrLff555/7fW611VZeG4UMUMf+1ltvdbfccosPlshfR4FAhxxyiPu///u//EWpftc5f+qpp9yrr77qNdmvX7+c/Slw7a677nL33nuv+/7773OWKWhio402crvuuqsPYMpZmMKXb7/91m233Xa+Zjk1zzrrLLfqqqumsKf0qvz111/duHHjnNoDaUIO2pVXXjlnh998840bNmyY++9//+u0fii6JocMGeKOOuqoBgkgfO6559yzzz7r3n777Zy2ItgX/2zatKnr1auXW2211dwmm2zi+vfvH1+c6fSHH37oHnzwQffee+95Z1epbpUcXroGBgwY4DbbbDMzzvNMgRbZmbQxfPhwr221Kwps7Nu3r1O7KB1UUo4//nj38ssv+1VDsF8l2y1q69AnoU9STPP0SeiTFNNGofn0SQpRYR4EINDYCFjuN+lBrIJOdI+yxBJL1Dg18kNce+217pVXXslZpntl+al23nnnGv6fnBUb+EtD+nL0QshDDz3kCei+da211ipK45NPPnHnnnuu++yzz2qso5e4ttxyS+9L6dChQ43lac6w5Ms5//zz3SOPPOJxiNfRRx/tWrRokSaexOu22m9SgOB9993n3nzzTX+vXsofImgK0pKfTdfE5ptv7tq0aZM4y0orxJdTKan6rYcvp378arM1fZLavUxfG7b1XZc+Sf0I0iepH7/abk2fpLbEqnd9AoCq99xg2SJC4I033nBnn312lL0n/7AVHHPiiSeWfcDZEAFAeoD6r3/9KwpQWWqppdxvfvMbt+eee0ZBPeedd55/aJt/XOG7bvZ0cx6CbML8avlsyA6aGFx00UXuP//5j8ehIINCb9vJaffXv/7VZ88px03nR84lBXukXRQQcfrpp0eBPX//+9/d7373u2i3ylSk5fosVZTpY+jQoW7bbbcttVq9l8UDgFSZGEmbCjCwUD799FP3t7/9zX3xxRc55q699truzDPP9G8R6hjF8quvvspZJ/5Fma7UJikIMYuizGBy2L377rt13t3666/vDj30UP+WZJ0rqeWGcmIosFFtb12KHJJq9xSYp2A3SmECetP44osvdk888UTBFRR0uuOOO7oDDzywbLAsAUAFEebMpE9CnyRHEHlf6JM4n32MPkmeMAp8pU+SbZ+kwClgFgQgkAEBq/0mvRn9z3/+0z3++ONOQUB6uUIvVOjFinDPreAf/d7JH1Ks6D7zlFNOKeijKLZNlvMb0pejt6G33nprf7jyJ/zlL38peOi6n7zuuusKvsQV30B+M72gNGjQoPjs1Kat+XLiAUCCIj3Lp2Elq7PVftO///1v7xPWPXtdioIP9aLlDjvskGkwIb6cupyt2m+DL6f2zOqzBX0S+iTF9EOfZAGZrJ4v0SdZwDvr50tW+yTFrtuk5jc7Y35JqjLqgQAEakdAQ8UcdthhfoibsKUaR0VZKjOKyrRp09xjjz3mnTIalqhYUfaU8IaRMgfpL83y/PPPu1NPPTUncEmd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CEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAKwI4ALkiS74QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwQAAHIA+QKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKuCOAA5Ios+UIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMADARyAPECmCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCLgigAOQK7LkCwEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAKwI4ALkiS74QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwQAAHIA+QKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKuCOAA5Ios+UIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMADARyAPECmCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCLgigAOQK7LkCwEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAKwI4ALkiS74QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwQAAHIA+QKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKuCOAA5Ios+UIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMADARyAPECmCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCLgigAOQK7LkCwEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAKwI4ALkiS74QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwQAAHIA+QKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKuCOAA5Ios+UIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMADARyAPECmCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCLgigAOQK7LkCwEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAKwI4ALkiS74QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwQAAHIA+QKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKuCOAA5Ios+UIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMADARyAPECmCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCLgigAOQK7LkCwEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAKwI4ALkiS74QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwQAAHIA+QKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKuCOAA5Ios+UIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMADARyAPECmCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCLgigAOQK7LkCwEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAKwI4ALkiS74QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwQAAHIA+QKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKuCOAA5Ios+UIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMADARyAPECmCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCLgigAOQK7LkCwEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEICAKwI4ALkiS74QgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhDwQAAHIA+QKQICEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAKuCOAA5Ios+UIAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQMADARyAPECmCAhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCLgigAOQK7LkCwEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQ8EcADyAJkiIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAAAhCAAAQg4IoADkCuyJIvBCAAAQhAAAIQgAAEIAABCEAAAhCAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEPBDAAcgDZIqAAAQgAAEIQAACEIAABCAAAQhAAAIQgAAEIAABCEAA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995peekCxl9KN3MGAQIECBAgQGBtBcwAtLaCzm9RgWeffTZ22223bMmtT33qUzFlypTo0aNHi7Yhf7EvfOEL8eijj2a7v/vd7+LQQw/NH/JKoE0LTJw4MW655ZaYNm1avPnmmzF79uxYvXp1pGW+Bg0aFIMHD44DDjggjjrqqNhkk03adF81vmMKLF26NL7+9a9nwWvpPV5VVRXDhw+PE044Ib797W9Hz549OyaMXhMgQIAAAQIECBBYC4F1NWZj/GUtbopTK1rA+EtF3x6NK4OA8ZcyIKqCAAECBAgQIFCigACgEsEUb32B9957L1asWJE1JM2807Vr1xZv1Jo1a2LOnDnZdTt16iQIosXvgAu2pED6flu0aFFssMEGLXlZ1yLQIgILFy6MXr16RZrRykaAAAECBAgQIECAwNoJlHvMxvjL2t0PZ7ctAeMvbet+aW1pAsZfSvNSmgABAgQIECDQXAEBQM2Vcx4BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBChDoXAFt0AQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBJopIAComXBOI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFAJAgKAKuEuaAMBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBZgoIAGomnNMIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIVIKAAKBKuAvaQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCZAgKAmgnnNAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQKVICAAqBLugjYQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQaKaAAKBmwjmNAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQCUICACqhLugDQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSaKSAAqJlwTiNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQCQICgCrhLmgDAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYKCABqJpzTCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECFSCgACgSrgL2kCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgmQICgJoJ5zQCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAEClSAgAKgS7oI2ECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEGimgACgZsI5jQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAlCAgAqoS7oA0ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEmilQ1czznEagLALz5s2LpUuXFuoaNGhQVFV5WxZAJAgQIECAAIF2K7BmzZpYvXp1nf3r0qVLnfkyCRAgQIAAAQItJbBkyZJ47733Cpdbf/31I33ZCBAgQIAAAQIdQWDVqlV1drNz587RqVOnOo/JJECAAAECrS3QKffBw5rWboTrd1yBfffdNyZOnFgAmDJlSgwbNqywL0GAAAECBAgQaK8C9913X5x22mm1ute3b9946qmnauXLIECAAAECBAi0pMCECRPiyCOPLFzy3HPPjXHjxhX2JQgQIECAAAEC7Vlgp512ikWLFtXq4k9+8pP40pe+VCtfBgECBAgQqAQBS4BVwl3QBgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLNFBAA1Ew4pxEgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoBIGqSmhER23DRx99FLfeemtMnjw5Zs2ala2rPmjQoBg8eHB85jOfiYMPPji6du3aKE9ah/Tee++NBx54IGbOnBlpjfaRI0fGqFGjYvfdd48RI0Y0WkcqMHv27Ljllluy9qT0wIEDY7vttsvqGTNmTPTs2bNJ9ShEgAABAgQIECBAgAABAgQIEGjrAo8//nj89a9/zcZs0rhNVVVVDBkyJLbYYos46KCDYvjw4U3qYjnGW8o19tOkBitEgAABAgQIECBAgAABAgQItEkBAUCtdNtuu+22+NWvflVr/dA333wz0tcjjzwSf/zjH+M73/lO7LDDDvW28t13342zzjorpk+fXq3MU089Fenr5ptvjvPOOy/222+/asdr7qR13cePHx9pQCm/vfXWW5G+7rnnnrjrrrvi8ssvjz59+uQPeyVAgAABAgQIECBAgAABAgQItDuBt99+OxsDefrpp2v17cMPP4wXX3wx7r777uzBreOOO67BB6bKMd5SrrGfWp2RQYAAAQIECBAgQIAAAQIECLQrAQFArXA777///vjxj39cuPJuu+2Wzfiz0UYbZU+VPfzww1kQUJrN5+yzz45f/vKXseWWWxbK5xOLFy/OAoTywT/Dhg2L0aNHx4ABA+L555+PVM/y5cvjhz/8YaSyaUahurYU4HPddddlh7p16xZptp8088+8efPisccei6lTp8Yrr7wSp5xySlx11VXRv3//uqqRR4AAAQIECBAgQIAAAQIECBBo0wLLli3LHqSaNm1a1o9+/frFl770pWzWn6VLl2azJqcZmNMDVLfffnssXLgwLrjggjr7XI7xlnKN/dTZQJkECBAgQIAAAQIECBAgQIBAuxIQANTCtzM9RXbFFVdkV+3SpUv84Ac/iD333LNaK4499ti49tpr44477sgCeFKZX/ziF9lU08UFb7zxxiw4J+Xts88+ceGFFxaWDDvwwAOzJ9LOOeecLPgnBRyl66Qgo+Jt/vz5ceWVV2ZZvXv3jnHjxlWbcSi1JQUQTZw4MdLg10033RRnnnlmcRXSBAgQIECAAAECBAgQIECAAIF2IfDTn/40G/9Indl1113je9/7XvTt27da34444ohsbCSNqdx3333Zw1hpXKZ4K9d4SznGforbJU2AAAECBAgQIECAAAECBAi0X4HO7bdrldmzFEjz8ccfZ4078sgjawX/pANpTflTTz01RowYkZV74403sifMsp1//7NgwYL405/+lO0NHDiwWvBPvtz222+f5af99GRavnz+eHpNS5GlWYLSduKJJ1YL/kl5qS0XXXRRoS1/+ctfYsmSJemQjQABAgQIECBAgAABAgQIECDQbgRWrlwZ9957b9aftAT6+eefXyv4Jx1MMzCnB67yW5rpp+ZWjvGWco391GybfQIECBAgQIAAAQIECBAgQKB9CggAauH7mpbmym8HHHBAPlnrNc0OtPfeexfyX3/99UI6JR566KFCINFBBx1UmPmnWqHcTloSbPDgwVl2CgBKg1nFW36QqmfPnrH//vsXHyqkO3fuHIcffni2n4KXUhCQjQABAgQIECBAgAABAgQIECDQngQmT54caZmvtH3+859vcAn0PfbYI3r06JGVTefV3Mox3lKusZ+abbNPgAABAgQIECBAgAABAgQItE8BAUAtfF/79+8f22yzTRaUs/HGGzd49Q033LBw/N133y2kU+Lll18u7KcpqRvadt555+zw+++/H88++2yh6DvvvBMffPBBtr/DDjvUG0SUCuy0006F8+6///5CWoIAAQIECBAgQIAAAQIECBAg0B4EFi9eHGkMZYsttoitt966wS6lh6U22GCDrMyHH35YmF05ZZRrvKUcYz8NdsJBAgQIECBAgAABAgQIECBAoF0JVLWr3rSBzqTpo5u6paW/8ttWW22VT2avr7zySvbaqVOnqHmsWsHcTpqaOr9NmzYtW8M+7efrSOniMmm/5pYGtVJAUgoiSnXYCBAgQIAAAQIECBAgQIAAAQLtSSA9YNXYQ1b5/i5atCgL9En7Q4YMiW7duuUPlW28JT9uszZjP4VGSRAgQIAAAQIECBAgQIAAAQLtXsAMQBV6i5csWRLFM+2MHDmyWktnz56d7Q8YMCCqqhqO4yqeaWjGjBmFembNmlVIDxo0qJCuL5GvJy0D9t5779VXTD4BAgQIECBAgAABAgQIECBAoF0LpGXW81vNMZtyjbeUY+wn30avBAgQIECAAAECBAgQIECAQPsXaDhypP33v2J7eNNNN8X8+fOz9qWnz4oDdFIAzurVq7Nj+emmG+pIv379CocXLFhQSKeprfNbc+rZaKON8qfX+/rLX/4y3nzzzXqPpyXIBg4cmC1FtnLlynrLOUCAAAECBAgQIECAAAECBAgQqASB9FDUr3/966wpaXaeAw44oFqzyjHeUq6xn2oNq7Hz3HPPxR133FEj95PdqVOnZmM2qS0LFy785IAUAQIECBAgQIAAAQIECBAgUJECAoAq8Lb8+c9/jgkTJmQt69WrV5xzzjnVWlk8kNS9e/dqx+raKS6zdOnSQpFy1VOosI7Egw8+GM8880wdRz7JSgFKH330UQgA+sREigABAgQIECBAgAABAgQIEKg8gbT019lnnx35MZVDDz00tt9++2oNzR9LmcVjMtUKFe0Ul8mP25SjjqJL1JlMD2zddtttdR7LZ+YfKhMAlBfxSoAAAQIECBAgQIAAAQIEKlfAEmAVdm8ee+yxuOyyywqtOu200yK/9FY+My0Plt+K15jP59V8LS6zbNmywuFy1VOoUIIAAQIECBAgQIAAAQIECBAg0E4F0pjKeeedF2lmnLQNHjw4jjvuuFq9Lcd4SznqqNUwGQQIECBAgAABAgQIECBAgEC7FjADUAXd3jTzTwr+WbVqVdaqb3zjGzF27NhaLayq+uS25cvWKlSUUTyzTnEwUKn1FF+ruJ6iS0kSIECAAAECBAgQIECAAAECBNqdwIcffhjnnntuvPLKK1nf0nLmV1xxRZ0z/JRjvKXUOuob+2l3N0KHCBAgQIAAAQIECBAgQIAAgXoFPokkqbeIAy0h8Ktf/SpuvPHGwqWOPfbY+OY3v1nYL0707NmzsLt8+fJCur5EcZnevXsXipVaT/HsQcX1FCqsI5EGxxYsWFDHkX9lpeNpzfkVK1bUW8YBAgQIECBAgAABAgQIECBAgEBrCcyaNStb9mv27NlZEzbddNO4+uqrY9CgQXU2qRzjLaXWUd/YT50N/HfmHnvsETfccEO9RR566KG45JJLLNler5ADBAgQIECAAAECBAgQIECgsgQEALXy/UhPaF1++eWRZv9JW+fOnePMM8+MAw88sN6W9erVq3CseE34QmaNRPG00cWBO8XptamnxuWq7W6//fbV9mvu9OjRI4rbV/O4fQIECBAgQIBAexXYeuuts2VEavbPTIs1RewTIECAAIHWE0gz/qSHl9IMQGlLv7/T7M39+/evt1HlGG8p19hPvY3MHUhLztdcdr64/MyZM43ZFINIEyBAgAABAh1KIH1WV9fD6+n/gzYCBAgQIFCpAgKAWvHOpKCbCy64IJ5++umsFSkY5uKLL47Ro0c32Kru3bvHhhtuGO+//37MmzevwbLp4Ny5cwtligeoip9Ua0o9+TJdunSJvn37FuqUIECAAAECBAgQKF1giy22iGOOOab0E51BgAABAgQItIjAww8/HN///vcjP7vO5z73ufjBD34QxbPz1NWQcoy3lGvsp672ySNAgAABAgQIEGhc4Kijjmq8kBIECBAgQKDCBDpXWHs6THPSk2Mnn3xyIfgnBfRce+21jQb/5IG23HLLLJlmz5k/f34+u87XNFV1fhs5cmQ+GelDp/yWn8Y6v1/zNc1UNGfOnCx76NChda5xX/Mc+wQIECBAgAABAgQIECBAgACBtijwxz/+MXtoKx/8c9BBB2XLYTUW/JP6Wq7xlnKM/bRFe20mQIAAAQIECBAgQIAAAQIEmicgAKh5bmt11sKFC7NlvqZOnZrVkwZ0xo8fn00j3dSKt9lmm0LRF154oZCuK/Hiiy8WsovPGzZsWHTt2jU79vzzzxfK1JV49dVXC1MdFtdRV1l5BAgQIECAAAECBAgQIECAAIG2KpCWab/iiitizZo1WRfSA1xnnXVWpBmRm7KVa7ylePyluWM/TWmvMgQIECBAgAABAgQIECBAgED7EBAA1Ar38X/+539iypQp2ZVHjBiRzfzT0JrrdTVx7733LmTfd999hXTNRFr+67nnnsuy07qkxUuApfXkd9ttt+zY9OnT4/XXX695emG/+Bp77LFHIV+CAAECBAgQIECAAAECBAgQINBeBKZNmxaXXXZZ1p1OnTrF+eefH0cccURJ3SvXeEs5xn5KarjCBAgQIECAAAECBAgQIECAQJsWEADUwrfv6aefjokTJ2ZXTct+XXLJJdG3b9+SWzF8+PDCjEGPPvpoFAfo5CtbtmxZVv+qVauyrLrWK/3qV7+aLx6XX355pNmJam5PPPFE3HPPPVl2mq1o9913r1nEPgECBAgQIECAAAECBAgQIECgzQukh7by4yjHHntsfPnLX25Wn8ox3lKusZ9mdcBJBAgQIECAAAECBAgQIECAQJsTqGpzLW7DDV6xYkVceeWVhR6kJ8IuvfTSwn5DiV133TX+1//6X9WKnHHGGXHCCSdkeT/60Y9izpw58cUvfjEGDhwYacmun//855GfIjpNG73XXntVOz/tjB49OpsF6Mknn4xJkybFaaedFqecckpst912sWDBgvjb3/4WP/3pT7PBr/TkW7peerURIECAAAECBAgQIECAAAECBNqTwF/+8pfIL6Oexj7S2Mo555zTpC6mmYLWX3/9QtlyjbeUY+yn0CgJAgQIECBAgAABAgQIECBAoF0LdMqtZ/6vBc3bdTcro3MpyObss89uVmPGjh0b5557bq1zH3zwwRg3blwsXbq0cCytSZ9/Wi1lbrbZZnH99ddHv379CmWKEynQ5+KLL46nnnqqkF2zjnTg1FNPjcMOO6xQphyJfffdtzAjUqovLY02bNiwclStDgIECBAgQIAAAQIECBAgQIBAkwWOP/74LOinyScUFbzjjjuyB7KKsrIHq8ox3lKOsZ/idjU1PWHChDjyyCMLxdO4VBqDshEgQIAAAQIECBAgQIAAAQKVKWAJsBa8L9OnTy/71caMGRPjx4/PlgPr3PlftzMf/FNVVRWHHnpodry+4J/UoLQE2RVXXBFHH3109OnTJ2tjvo60M3To0LjsssvKHvyTXcg/BAgQIECAAAECBAgQIECAAIEKEHjzzTfL2opyjbeUY+ynrB1TGQECBAgQIECAAAECBAgQIFCRAmYAqsjb0rxGpVmA0gw6c+fOjUGDBsWQIUNivfXWK7myt99+O6une/fuMXjw4Nh0000jH1xUcmWNnGAGoEaAHCZAgAABAgQIECBAgAABAgTahUA5xlvKNfbTFFAzADVFSRkCBAgQIECAAAECBAgQIFA5AlWV0xQtWVuBHj16xKhRo7KvtakrBQ+lLxsBAgQIECBAgAABAgQIECBAgEB5BMox3lKusZ/y9EgtBAgQIECAAAECBAgQIECAQCUJWAKsku6GthAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoUUAAUIlgihMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoJAEBQJV0N7SFAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIkCAoBKBFOcAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQCUJCACqpLuhLQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgRKFBAAVCKY4gQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQqSUAAUCXdDW0hQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUKKAAKASwRQnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUEkCAoAq6W5oCwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIESBQQAlQimOAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIFKEhAAVEl3Q1sIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIlCggAKhEMMUJECBAgAABAgQIECBAgAABAgQIECBAgAABuqHSOAAAQABJREFUAgQIECBAgAABAgQIVJKAAKBKuhvaQoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBEAQFAJYIpToAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCSBKoqqTHaQoAAAQIECBAgQKCjCEyZMiXuuuuuWt3t0aNHnHTSSbXyZRAgQIAAAQIECBAgQIAAAQIECLSMwE9/+tNYtmxZrYsdcMABMWzYsFr5MggQIECAQCUICACqhLugDQQIECBAgAABAh1OYNq0aTF+/Pha/e7bt68AoFoqMggQIECAAAECBAgQIECAAAECLSfwq1/9KhYtWlTrgtttt50AoFoqMggQIECgUgQsAVYpd0I7CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDRDQABQM9CcQoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBSBAQAVcqd0A4CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECzRAQANQMNKcQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqBQBAUCVcie0gwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAzBAQANQPNKQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQqRUAAUKXcCe0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0AwBAUDNQHMKAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgUoREABUKXdCOwgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0Q0AAUDPQnEKAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgUgQEAFXKndAOAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAs0QEADUDDSnECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKgUAQFAlXIntIMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAMwSqmnGOUwgQIECAAAECBAgQIECAQIcSeHfZshg/7c1Cn48c/KkYul7vwr4EAQIECBAgQIAAAQIECBAgQIAAAQIEWlNAAFBr6rs2AQIECBAgQIAAAQIECLQJgfeWLY9rp04vtHX0hv0FABU0JAgQIECAAAECBAgQIECAAAECBAgQaG0BS4C19h1wfQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJrISAAaC3wnEqAAAECBAgQIECAAAECHUNgcK+esVG3bllnu3TqFKPWX79jdFwvCRAgQIAAAQIECBAgQIAAAQIECBBoEwKWAKuw23T22WfHk08+Gaeffnoccsghjbbusccei8cff7zRcqlAjx494tRTT6237OzZs+OWW26JyZMnR0oPHDgwtttuuxg1alSMGTMmevbsWe+5DhAgQIAAAQIECBAgQKA9C6xXVRW9unTJupiepNmo+7+Cgdpzn/WNAIHqAi+99FKcfPLJ0adPn7jnnnuqH6xjb/Xq1XHVVVdFem3KlsZedtpppzqLrlq1Ku6999544IEHYubMmbFkyZIYOXJkNmaz++67x4gRI+o8TyYBAgQIECBAgAABAgQIECDQcQQEAFXQvf7973+fBf+U0qT7778/HnzwwSad0rt373oDgCZMmBDjx4+PNKCU3956661IX2lQ66677orLL788G+TKH/dKgAABAgQIECBAgAABAgQIEOgIAgsXLoxx48bFmjVrmtzdFKjzhz/8ocnlN9988zoDgN59990466yzYvr06dXqeuqppyJ93XzzzXHeeefFfvvtV+24HQIECBAgQIAAAQIECBAgQKBjCQgAqpD7/de//jWuvvrqklszZcqUks+peUIK8Lnuuuuy7G65Ke3TE2dp5p958+ZFmmFo6tSp8corr8Qpp5ySPbnWv3//mlXYJ0CAAAECBAgQIECAAAECBAi0S4HFixfHmWeemc28U0oHX3/99VKK11k2Xfs73/lOIfhn2LBhMXr06BgwYEA8//zz8fDDD8fy5cvjhz/8YaSyBx98cJ31yCRAgAABAgQIECBAgAABAgTav4AAoFa+x8uWLYsbbrghbr311pKeIkvN/vjjj2PWrFlZD3beeee44IILGuxN585povrq2/z58+PKK6/MMtMMQelpth122KFQ6Nhjj80GkSZOnBjTpk2Lm266KRv0KhSQIECAAAECBAgQIECAAAECBAi0U4GXX345LrnkkmyG5FK7+MYbbxROueKKKyIF7zS0pXGZmtuNN96YPZiV8vfZZ5+48MILo2vXrlmxAw88MF588cU455xzsuCfH//4x7HnnnvGRhttVLMa+wQIECBAgAABAgQIECBAgEAHEBAA1Io3OT2pdemllxaCeEptSpqZJz/19DbbbBMbbrhhqVXEbbfdlj0plk488cQTqwX/pLyqqqq46KKLYvbs2TFp0qT4y1/+EieccEL06tUrHbYRIECAAAECBAgQIECAAAECBNqdQHro6uc//3nccccdhbGXUjuZn7W5S5cu8dnPfja6d+9eUhULFiyIP/3pT9k5AwcOrBb8k69o++23z/LPPffcbFn3VP6b3/xm/rBXAgQIECBAgAABAgQIECBAoAMJ1J4SpgN1vrW6moJ20qw7p556aiH4Z8iQIXHIIYeU1KT8QFI6aeutty7p3HzhtPxX2nr27Bn7779/Prvaa5o56PDDD8/y0gBYCgKyESBAgAABAgQIECBAgAABAgTao0BaBv0b3/hG3H777VnwT6dOneLoo4+OUpdEz4/bbLHFFiUH/yTXhx56KJv9OaUPOuigwsw/ab94S0uCDR48OMtKAUArV64sPixNgAABAgQIECBAgAABAgQIdBABMwC1wo1evXp13HnnnYUrjx07Nk4//fR44IEHCnlpcKmxLT+QlMo1JwDonXfeiQ8++CC7TFr2Kz+FdF3X3WmnnQrZ999/vzXlCxoSBAgQIECAAIHmCQwdOjSbWbHm2T169KiZZZ8AAQIECBBoQYHHH3880phJ2tJsy2lm5B133LHwQFRTxmzee++9+PDDD7M6mjNmk05My4/lt1133TWfrPM1LQ0/c+bMeP/99+PZZ5+NxsrXWYlMAgQIECBAgACBgsD//t//O5YtW1bYzyfSeI6NAAECBAhUqoAAoFa8M7vsskscc8wxkaZrbs6WDwDq169fbLzxxlkVaXahuXPnZjP6rL/++g1Wm55oy2+NrUO/wQYbZINeaSBp2rRp+dO8EiBAgAABAgQINFNg+PDhccYZZzTzbKcRIECAAAEC61Kgb9++2WzIabbm3r17l3yp/JhNOnHEiBGF85csWRLz58+PTTbZJNLSYA1t+XGbFHC01VZbNVQ0isd10riNAKAGuRwkQIAAAQIECDQqcNJJJzVaRgECBAgQIFBpAgKAWuGOpCW1rr/++th2222bffVVq1YVAnHSk2QvvfRS3HTTTfHiiy/G0qVLs3rT+vDbbLNN9mT5ZpttVutas2bNKuQNGjSokK4vkYKMUgBQWgYsPcm20UYb1VdUPgECBAgQIECAAAECBAgQIECgTQqMGTMmjjrqqOjVq1ez218cAJSW57r55pvj7rvvjjlz5mR1duvWLdLT4/vtt1+2JHxdswrNnj07KztgwICoqmp4CC//YFg6YcaMGdl5/iFAgAABAgQIECBAgAABAgQ6lkDDowcdy6LFepsGddYm+Cc1NA3mLF++PGtzCvqpKxJ53rx5kb7+8Y9/xIknnlhr2a7FixcX+pxm+GlsSzMN5bcFCxY0KQAoTZP92muv5U+r9ZpmK0oDYWkAbMWKFbWOyyBAgAABAgQIECBAgAABAgQItKRAY7PtNKUtb7zxRqHY+eefH2nmn+ItjelMmjQp+/r73/8eqUyaFSi/pYev0hLyaWvOmE2+noZe03Wvvfbaeoukh8DSmM2iRYuyWYvqLegAAQIECBAgQIAAAQIECBAgUBECAoAq4jaU3ojiJ8nSoFCPHj3is5/9bOywww7Rv3//mD59evztb3+Lt99+O5sR6Kqrroo+ffrEF7/4xcLFigOAunfvXsivL1FcJj/LUH1l8/lpwCsFKDW09ezZM9KsSDYCBAgQIECAAAECBAgQIECAQHsQeP311wvdSME/Q4YMiZ122il7ICwtAZYelnrwwQezMs8//3ycc845ccMNN0TXrl2zvJYYs/nggw+aNGazbNmyQl8kCBAgQIAAAQIECBAgQIAAgcoVEABUufemwZYVBwClpbiuvPLK2HLLLaudc+yxx8aPf/zjuOuuu7L8a665JnbeeefCk2PFT5+lqacb24rLGPxpTMtxAgQIECBAgAABAgQIECBAoCMKpPGW/PJdqf+HH354nHzyyVFzma+DDz440szJKRAnPch1yy23xDe/+c2MzJhNR3zn6DMBAgQIECBAgAABAgQIEFg7AQFAa+fXamcfeOCB2VNj77zzTuy9996x6aab1mpLmhXorLPOyqaTTgFDH330Ufzud7+L448/PitbvH78qlWrap1fM6O4THEwUM1y9gkQIECAAAECBAgQIECAAAECHVUgjbdcffXVkcZsUvrLX/5ynRSf+cxnsnGbtPxX2n7961/HEUccEb169crOy59UPB6Tz6v5unLlykKWMZsChQQBAgQIECBAgAABAgQIEOhQAgKA2ujt/tSnPhXpq7GtS5cu2dNj5513Xla0eOagtPRWfktrzze2Fc/607t378aKZ8evu+66WLFiRb1lDzvssHjkkUeiKYNZ9VbiAAECBAgQIECAAAECBAgQIECgQgRSAE5a7qsp25577hnDhw+PNF6TxkbefPPN2GabbaLUMZvicZ2mjtnsv//+8fnPf77eZt55551x0kknxZo1a+ot4wABAgQIECBAgAABAgQIECBQOQICgCrnXqyzlgwbNqxQ97Rp0wrp4gGh4rXlCwVqJIqnny4+t0axarv9+vWrtl9zJwUoCf6pqWKfAAECBAgQIECAAAECBAgQ6CgCadwm/8BWGrdJAUBpFqD8tq7GbLp37x4DBgzIX6bWa58+fYzZ1FKRQYAAAQIECBAgQIAAAQIEKlegc+U2TcvKJVA8mJOWActvgwYNyidj3rx5hXR9iXyZFLTTt2/f+orJJ0CAAAECBAgQIECAAAECBAgQaKLAxhtvXCiZH7dJwTkbbrhhlp8fjykUqiMxd+7cQm7//v0LaQkCBAgQIECAAAECBAgQIECg4wgIAGqj9zo9/TVr1qyYOnVqoz0oHigaPHhwofwWW2xRSM+ePbuQriuR1pKfM2dOdmjo0KGRBqJsBAgQIECAAAECBAgQIECAAAEC1QXSGMp7770Xb7zxRuQDeqqXqL6XH29JucXjNltuuWVWMM3IPH/+/Oon1dhLY0T5beTIkfmkVwIECBAgQIAAAQIECBAgQKADCQgAaoM3Ow38jB07Nr7+9a/HcccdF8uWLWuwF2n9+Pw2ZMiQfDLSFNNdu3bN9p9//vlCfl2JV199NVasWJEdSlNR2wgQIECAAAECBAgQIECAAAECBGoL/OIXv4ivfe1rceyxx8Ydd9xRu0CNnPrGbYrHX1544YUaZ1XfffHFFwsZxecVMiUIECBAgAABAgQIECBAgACBdi8gAKgN3uK0Dnx+MGf58uXx5JNPNtiL3/72t4Xjn//85wvpVM9uu+2W7U+fPj1ef/31wrGaifvuu6+QtcceexTSEgQIECBAgAABAgQIECBAgAABAp8I7LLLLoWdRx55JNasWVPYr5l49tlnY9KkSVl2mv2neAagvffeu1C8eFymkPnvRFr+67nnnsv2tt5667AEWE0h+wQIECBAgAABAgQIECBAoGMICABqo/e5OJDnmmuuiYULF9bZk9tvvz3ys/sMHz48vvjFL1Yr99WvfrWwf/nll9dZzxNPPBH33HNPVi5NP7377rsXzpEgQIAAAQIECBAgQIAAAQIECBD4RGDUqFHRt2/fLCMtA3brrbd+crAolZb1uvLKKws5J554YnTp0qWwn8ZxUkBP2h599NGoKwgozQp9ySWXxKpVq7JyRx11VPbqHwIECBAgQIAAAQIECBAgQKDjCQgAaqP3/LDDDos0oJS2efPmxbe//e147LHHIi0PltaanzJlSvzoRz+KFByUtm7dusVpp50WnTp1yvbz/4wePbowC1B64iyVeeaZZ7Jlxd5999247bbb4rzzzssGktK5J5xwQq068nV5JUCAAAECBAgQIECAAAECBAh0dIHu3bvHBRdcUGC47rrrskCft99+O5sNKAX+TJw4MY455ph46623snKf+9zn4gtf+ELhnHzijDPOyCezcZ6bb745Uj1p7Cct+3XWWWfF008/nZVJs0XvtddehfISBAgQIECAAAECBAgQIECAQMcSqOpY3W0/va2qqorvf//7WcDOrFmzYvbs2XHuuedmHUzH0kBQfhs4cGA2SDRixIh8VrXXiy66KC6++OJ46qmnIj2Zdvrpp2dPnOWfHssXPuWUU8LyX3kNrwQIECBAgAABAgQIECBAgACBugXS7MnHH398/OIXv4jVq1fHnXfemX2lB7TScu7F2yGHHBJpzKWubdttt83Gf8aNGxdLly6NX/7yl9lXmimoeNxms802i0svvTQ6d/asX12O8ggQIECAAAECBAgQIECAQEcQMCrQhu/ygAED4te//nWkKaJ79+5d6Ek++Kdfv36xzz77ZAND9QX/pJPStNRXXHFFHH300dGnT5+snuJBpKFDh8Zll10WadYhGwECBAgQIECAAAECBAgQIECAQOMC//mf/xk33HBD7LDDDoXC+eCfFMCz1VZbxfnnn589iJUe5qpvGzNmTIwfPz5bDiwf4JMft0nnHXroodnxNA5kI0CAAAECBAgQIECAAAECBDquQKc1ua3jdr/99Dw9TTZnzpyYMWNG9iTZpz/96dhkk02a1cE0lXRaQixNWT148ODYdNNN19kTZPvuu2827XW+oem6w4YNy+96JUCAAAECBAgQIECAQMUI7Drx7zHj44+ja2555Jlj96uYdmkIAQKVL7B48eJszCbN4JzGa4YPH56Nu5Ta8jQLUBo7mTt3bgwaNCiGDBkS6623XqnVNKn8hAkT4sgjjyyUTTNPp5mIbAQIECBAgAABAgQIECBAgEBlCtT/eFFltler6hFIT4ClgZ/0tbZbuepZ23Y4nwABAgQIECBAgAABAgQIECDQHgTSzM0jR47MvtamPz169IhRo0ZlX2tTj3MJECBAgAABAgQIECBAgACB9idgCbD2d0/1iAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoAMJCADqQDdbVwkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBNqfgACg9ndP9YgAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKADCQgA6kA3W1cJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTan4AAoPZ3T/WIAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgAwkIAOpAN1tXCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE2p9AVfvrkh4RIECAAAECBAgQqHyBN998Mx566KFaDe3evXsceeSRtfJlECBAgAABAgQIECBAgAABAgQItIzAb37zm1i+fHmti40ZMyY233zzWvkyCBAgQIBAJQgIAKqEu6ANBAgQIECAAAECHU5g8uTJcckll9Tqd9++fQUA1VKRQYAAAQIECBAgQIAAAQIECBBoOYErr7wyFi1aVOuCm222mQCgWioyCBAgQKBSBCwBVil3QjsIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQINENAAFAz0JxCgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoFIEBABVyp3QDgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQLNEBAA1Aw0pxAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoFAEBQJVyJ7SDAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQDMEBAA1A80pBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBCpFQABQpdwJ7SBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECDQDAEBQM1AcwoBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBShEQAFQpd0I7CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDRDQABQM9CcQoAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBSBAQAVcqd0A4CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECzRAQANQMNKcQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqBQBAUCVcie0gwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEAzBAQANQPNKQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQqRUAAUKXcCe0gQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0AwBAUDNQHMKAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgUoREABUKXdCOwgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAg0Q0AAUDPQnEKAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgUgQEAFXKndAOAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAs0QEADUDDSnECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKgUAQFAlXIntIMAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAMwQEADUDzSkECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEKkVAAFCl3AntIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQINAMgapmnOMUAgQIECBAgAABAgTWUmDw4MFx+OGH16qlV69etfJkECBAgAABAgQIECBAgAABAgQItJzAIYccEkuXLq11wTSeYyNAgAABApUqIACoUu+MdhEgQIAAAQIECLRrgW222SZ+8IMftOs+6hwBAgQIECBAgAABAgQIECBAoC0KfPe7322LzdZmAgQIEOjgAgKAKuwNcPbZZ8eTTz4Zp59+eqTo4qZsq1atinvvvTceeOCBmDlzZixZsiRGjhwZo0aNit133z1GjBjRlGpi9uzZccstt8TkyZOz9MCBA2O77bbL6hkzZkz07NmzSfUoRIAAAQIECBAgQIAAAQIECBBobwIvvfRSnHzyydGnT5+45557mty9coy3lGvsp8mNVpAAAQIECBAgQIAAAQIECBBocwICgCrolv3+97/Pgn9KadK7774bZ511VkyfPr3aaU899VSkr5tvvjnOO++82G+//aodr7kzYcKEGD9+fKQBpfz21ltvRfpKg1p33XVXXH755dkgV/64VwIECBAgQIAAAQIECBAgQIBARxBYuHBhjBs3LtasWVNSd8sx3lKusZ+SGq4wAQIECBAgQIAAAQIECBAg0OYEBABVyC3761//GldffXVJrVm8eHF85zvfKQT/DBs2LEaPHh0DBgyI559/Ph5++OFYvnx5/PCHP4xU9uCDD66z/hTgc91112XHunXrFmm2nzTzz7x58+Kxxx6LqVOnxiuvvBKnnHJKXHXVVdG/f/8665FJgAABAgQIECBAgAABAgQIEGhvAmlM5cwzz8xmXS6lb+UYbynX2E8p7VaWAAECBAgQIECAAAECBAgQaJsCAoBa+b4tW7Ysbrjhhrj11ltLforsxhtvzIJzUhf22WefuPDCC6Nr165Zjw488MB48cUX45xzzsmCf3784x/HnnvuGRtttFG1Hs+fPz+uvPLKLK93797Z02w77LBDocyxxx6bBRBNnDgxpk2bFjfddFM26FUoIEGAAAECBAgQIECAAAECFSswddHiOPzJpwrt+8lnt4/dN/RQRwFEgkAjAi+//HJccskl2QzJjRStdrhc4y3lGPup1jA7BAgQIECAAAECBAgQIECAQLsV6Nxue9YGOpZm6TnmmGMiTQe9evXqklq8YMGC+NOf/pSdM3DgwGrBP/mKtt9++yw/7aelvfLl88fT62233ZbNEpTSJ554YhQH/6S8qqqquOiii2LEiBFpN/7yl7/EkiVLsrR/CBAgQIAAAQIECBAgQKCyBZbn/tac9fHSwtfSomWfK7vlWkegdQU+/vjjuOaaa+Kkk04qOfgntbwc4y3lGvtpXUlXJ0CAAAECBAgQIECAAAECBFpKQABQS0kXXSetF59m3Tn11FNj1qxZ2ZEhQ4bEIYccUlSq4eRDDz0UaTAqbQcddFBh5p+aZ6UlwQYPHpxlpwCglStXViuSpqNOW8+ePWP//fevdiy/07lz5zj88MOz3XTNFARkI0CAAAECBAgQIECAQEcTWPLv4JnVub/p2srWuVOnak3tUmO/2kE7BAhkAmkZ9G984xtx++23Z7M1d8p93xx99NElLYlejvGWco39uK0ECBAgQIAAAQIECBAgQIBAxxAQANQK9znN9nPnnXcWrjx27NhsGbBhw4YV8tLgUkNbmoI6v+266675ZJ2vO++8c5b//vvvx7PPPlso884778QHH3yQ7aeZf/LLhxUKFCV22mmnwt79999fSEsQIECAAAECBAgQIECgIwikmXPmr1iRdXVV7t8Pli9vE93eus96MST3wEfauub+ztxzQPVlodtEJzSSQAsLPP7445HGTNK24YYbxtVXXx3HHXdcdOnSJctrbMymXOMt5Rj7yRrsHwIECBAgQIAAAQIECBAgQKBDCAgAasXbvMsuu8RPf/rTOPfcc6NHjx4ltSQ9jZa2NOi01VZbNXhucWDRtGnTCmXzdaSM4jKFAkWJDTbYIBv0SlnFdRQVkSRAgAABAgQIECBAgEC7FfjZtOmxqmjmn0smTWm3fdUxAgQi+vbtG9/+9rfjN7/5Tey4444lkZRrvCVfz9qM/ZTUcIUJECBAgAABAgQIECBAgACBNi1Q1aZb30Ybn5bUuv7662Pbbbdtdg9mz56dnTtgwICoqmr4Nm688caF68yYMaOQzi8/ljIGDRpUyK8vkepJswilZcDee++92GgjT47WZyWfAAECBAgQIECAAIH2IzBn6dL4yRvTq3Xo/5sxM47dYkiM7NunWr4dAgTavsCYMWPiqKOOil69ejWrM+UabynH2E+zOuAkAgQIECBAgAABAgQIECBAoE0KNBw50ia7VPmNTk9urU3wTwrAScuIpS3NzNPY1q9fv0KRBQsWFNKLFy8upJtTT1MCgI499thqy44VLvjvxLJly7LZh2bOnBkpbSNAgAABAgQIECBAgEClCfzf1ybHktwSYMVb+ovswldei9t3b3hJ5uJzpAkQaBsCjc203FgvyjHeUq6xn4ba+qc//SkuvPDCeousyv3cSzNGf/TRR/Huu+/WW84BAgQIECBAgAABAgQIECBAoDIEBABVxn0oqRXFA0ndu3dv9NziMktzT67mt3LVk6+vrtcU1FN8zbrKpBmRbAQIECBAgAABAgQIEGhpgVWvT47VH3yQXbZTnz5Rte12tZrwzPwP447Z79TKTxmPvv9B3PPOnBi76SZ1HpdJgEDHFCjHeEs56mhMPwX4NGXMJj3IZiNAgAABAgQIECBAgAABAgQqX0AAUOXfo1otXLJkSSGvW7duhXR9ieIyxbPslKue+q4rnwABAgQIECBAgAABApUssPy+e2PV009lTey81bBaAUBr1qyJC3Kz/DS0fT83O9C+AwdG9y4ebGjIyTECHUmgHOMt5aijI5nrKwECBAgQIECAAAECBAgQIBAhAKgNvguqqj65belprca2lStXFooUBwOVWk/xtYrrKVReR6Jv374NLlOWppFesWJFHWfKIkCAAAECBAgQIECAwLoVyM/+k66y5sMPa13stllvx3MfflQrvzhjxpKP4/pp0+P/DN+qOFuaAIEOLFCO8ZZS66hv7Keh25DGdhpaEj49RLZw4cLCMvQN1eUYAQIECBAgQIAAAQIECBAg0PoCn0SStH5btKCJAj179iyUXL58eSFdX6K4TO/evQvFSq2nePag4noKFdaRuP766+vI/SRr3333jYkTJ36SIUWAAAECBAgQIECAAIEWEqjacmismDY1u1rnLbaodtXFuQcpfjjp9Wp59e1c88a0OGLwZrFxjx71FZFPgEAHEijHeEupddQ39tMQ+9ixYyN91bdNmDAhjjzyyPoOyydAgAABAgQIECBAgAABAgQqTMAc5RV2Q5rSnF69ehWKFa8JX8iskSieNro4cKc4vTb11LicXQIECBAgQIAAAQIECLQJgc5DP5m1p0suGKh4S0E983KzXzRlW5KbmbWpwUJNqU8ZAgTatkA5xlvKNfbTtiW1ngABAgQIECBAgAABAgQIEChFQABQKVoVUrZ79+6x4YYbZq2ZN29eo62aO3duoUz//v0L6UGDBhXSTaknX6ZLly6RlvayESBAgAABAgQIECBAoD0KvLVkSbasVyl9S8uFPTu/9jJipdShLAEC7UOgHOMt5Rr7aR+iekGAAAECBAgQIECAAAECBAg0RUAAUFOUKrDMlltumbUqze4zf/78Bls4a9aswvGRI0cW0lsUTXE/e/bsQn5dibSW/Jw5c7JDQ4cOjTQQZSNAgAABAgQIECBAgEB7FPj+q5Nj+eo1JXftgldeizVrSj+v5As5gQCBihYo13hLOcZ+KhpK4wgQIECAAAECBAgQIECAAIGyCggAKitny1W2zTbbFC72wgsvFNJ1JV588cVCdvF5w4YNi65du2bHnn/++UKZuhKvvvpqrFixIjtUXEddZeURIECAAAECBAgQIECgrQo8+t778ec5n8yiWko/nv3wo7hj9julnKIsAQLtUKBc4y3F4y/NHftph7y6RIAAAQIECBAgQIAAAQIECNQjIACoHphKz957770LTbzvvvsK6ZqJtPzXc889l2VvvfXWUbwEWFpPfrfddsuOTZ8+PV5//fWapxf2i6+xxx57FPIlCBAgQIAAAQIECBAg0F4EVuVm77kwN4vP2mw/nDQ5FudmULURINBxBco13lKOsZ+Oexf0nAABAgQIECBAgAABAgQIdDwBAUBt9J4PHz48UkBP2h599NEoDtDJd2nZsmVxySWXxKpVq7Kso446Kn+o8PrVr361kL788stj4cKFhf184oknnoh77rkn203TT+++++75Q14JECBAgAABAgQIECDQbgRueWtmvLZw0Vr1Z87SZXHNlKlrVYeTCRBo+wLlGG8p19hP29fUAwIECBAgQIAAAQIECBAgQKApAgKAmqJUoWXOOOOMQst+9KMfxc033xxvv/12rMw9bZqW/TrrrLPi6aefzsqkaaP32muvQvl8YvTo0YVZgCZNmhSnnXZaPPPMM5GCh95999247bbb4rzzzsuCiDp16hQnnHBCpFcbAQIECBAgQIAAAQIE2pPA0lWr47LJU8rSpZ9MnR5/mP12WepSCQECbVOgXOMt5Rj7aZuCWk2AAAECBAgQIECAAAECBAiUKlBV6gnKV47AtttuG9///vdj3LhxsXTp0vjlL3+ZfXXp0qUw609q7WabbRaXXnppdO5cd7zXRRddFBdffHE89dRT8cYbb8Tpp58eNetI9Zxyyilh+a8kYSNAgAABAgQIECBAoL0JPPz++/HBxj3L0q01uVpOeO7FuOuduXHRyK1j8969ylKvSggQaFsC5RhvKdfYT9uS01oCBAgQIECAAAECBAgQIECgOQJ1R4Q0pybntIrAmDFjYvz48dlyYPkAn/ySX1VVVXHooYdmx/v161dv+/r27RtXXHFFHH300dGnT5+sXL6OtDN06NC47LLL4rDDDqu3DgcIECBAgAABAgQIECDQlgWemf9h2Zt/z5y58YW/PxL/97XJsWDFirLXr0ICBCpboFzjLeUY+6lsKa0jQIAAAQIECBAgQIAAAQIEyiHQaU1uK0dF6mh9gTQL0JQpU2Lu3LkxaNCgGDJkSKy33nolNywtI5bq6d69ewwePDg23XTTemcPKrnyGifsu+++MXHixEJuuu6wYcMK+xIECBAgQIAAgfYqkP7P9c9//rNW97p27Rpjx46tlS+DAIHyC6x49JFY9ovrs4qv2O6zcf3IUeW/yL9r3LBb1/jvrYfHUUMGR5cWXlZ514l/jxkffxxdc9edOXa/ddZHFRMg0LBAOcZbyjX203BL/3V0woQJceSRRxaKnnvuudks1IUMCQIECBAgQIBAOxa45557YkUdD3Lsuuuu2Wdw7bjrukaAAAECbVjAEmBt+ObVbHqPHj1i1KhR2VfNY6Xsp+Ch9GUjQIAAAQIECBBYdwIvvfRS/Pd//3etC6TZAgQA1WKRQaDNC7y/fEWc89Kr8as3Z8TF24yIvQds1Ob7pAMECJQmUI7xlnKN/ZTWcqUJECBAgAABAh1PIC3numjRolod/8lPfuIztFoqMggQIECgUgQsAVYpd0I7CBAgQIAAAQIECBAgQKBFBVatWd2i10sXm7RwURzx5NPxn/98JqbUMZjc4g1yQQIECBAgQIAAAQIECBAgQIAAAQIE2oWAGYDaxW3UCQIECBAgQIAAAQIECBAoVaBT0Qn/Z9hWMWvTjePud+YW5X6S3LBbt+jWuVO8s3RZVOWW0npu370/Ofjv1D8/mB+XTX4jJjchsOeBee/GQ+++F8dsPjjO+vSw6J+r30aAAAECBAgQIECAAAECBAgQIECAAIHmCpgBqLlyziNAgAABAgQIECBAgACBNi3QudMnfxLP+vjjeoN/Uiev+cyo6Prv8ilwaED37rW+xm66STy01+j4n+23yx1rPKBn1Zo1cUNuSbDdH3o4fj7tzVixuuVnJGrTN1DjCRAgQIAAAQIECBAgQIAAAQIECBAoCHwy2lnIkiBAgAABAgQIECBAgAABAutGYPHKlfH33Mw3+a8Pli9fNxcqsdY/z6l75p9UzX8NGRz7bjygSTV2zs0OdNSQT8U/9tkzThs2NLp3bvzP7o9WrIyLXp0Ue/790bivgXY0qQEKESBAgAABAgQIECBAgAABAgQIECDQIQUaH4nskCw6TYAAAQIECBAgQIAAAQLrQmDGko/j8CefLny98OFH6+IyJdf58apVdZ6zea+e8b1ttq7zWEOZvauq4rsjPh2P7v2FOGjQJg0VLRybvnhJfOPp5+KQJ/4Zr3y0oJAvQYAAAQIECBAgQIAAAQIECBAgQIAAgcYEBAA1JuQ4AQIECBAgQIAAAQIECHRIgfQH87Wf3T5SME9zt8G5AKLrd/xs3D16t9ix3/pNquax9z+IfR95PM584eWYt3RZk85RiAABAgQIECBAgAABAgQIECBAgACBji0gAKhj33+9J0CAAAECBAgQIECAQIsK9O/WNdar6pJdM/1B+qlcgExrbe8vazi45pTcEl679N+gLM3beYMN4p7Rn4vrdtg+BvXo0Wida3IlfjtzVnzuoYfjmilTY2k9MxQ1WlGuQH52o9VNKawMAQIECBAgQIAAAQIECBAgQIAAAQJtUkAAUJu8bRpNgAABAgQIECBAgACBtimwcS74pX/Xblnju3TqFMPXW69VOrJ6zZq4ZcbMeq+9bd8+8Z1PD6v3eHMOdMr19+DNBsVj+3wh/nvrYdGry78CoRqqa0ku8Gfc5Cnx+b89En94+52GitZ5bMXq1TF/xYrs2Kpcnxf8O11nYZkECBAgQIAAAQIECBAgQIAAAQIECLRZAQFAbfbWaTgBAgQIECBAgAABAgQINFfg2qnTY9riJXWe3q1zp2zpr66d182fzD1zgT9nDB8WT+QCgY741GbRqc5WVM+c9fHSOOHZF2Lso/+IZ+Z/WP1gA3u/nP5WrMwF/uS3K15/I5/0SoAAAQIECBAgQIAAAQIECBAgQIBAOxJYN6OZ7QhIVwgQIECAAAECBAgQIECgfQm8umBhXJ6bVae+7bsjPh0jczMArestzYZ09WdHxf1f2CN2b+JSY898+GGMfewfcdJzL8Tsjz9usInvLVseV+aWDyvefvXmjHhj0aLiLGkCBAgQIECAAAECBAgQIECAAAECBNqBgACgdnATdYEAAQIECBAgQIAAAQIEmiawPLckVgqeWVE0K07xmSkQ57gttyjOWufpUev3jTv32C1+tdMOsXmvnk263u9nvxOjH3okLs0FMi1eubLOc8ZNfj0W1jiWZgP63quT6iwvkwABAgQIECBAgAABAgQIECBAgACBtisgAKjt3jstJ0CAAAECBAgQIECAAIESBS6ZNCUmLax7Bpz1qrrENbkZeTp3asqiXCVeuAnF999043hk7y/E90ZuHX2qqho9Y2kumOmq3Aw/u+cCgf7fzFmxuiio6eWPFsRvZ8yqs46J896LifPerfOYTAIECBAgQIAAAQIECBAgQIAAAQIE2qaAAKC2ed+0mgABAgQIECBAgAABAgRKFPjH+x/Ez6ZNr/esH247Mob06lXv8ZY40K1z5zhxqy3jH2P2jGM2HxxN+aN93rJlcfoLL8d+jzwRj+f6mLYLXnkt1jTQ4O+9MilW5AKIbAQIECBAgAABAgQIECBAgAABAgQItA+Bpowlto+e6gUBAgQIECBAgAABAgQIdFiBRbmlsE57/qV6g2KGr7deHDH4UxXjs2G3bnHJqG3job0+H/sM2KhJ7XppwYI4+Il/xlcefSL+8cH8Bs95Y/Hi+NWbMxos4yABAgQIECBAgAABAgQIECBAgAABAm1HQABQ27lXWkqAAAECBAgQIECAAAECzRS4MDcjzoyPP6737P032bjeY615YOs+68WE3XaO3+66U3x6vd5NaspzH37UpHL/8/ob8f7y5U0qqxABAgQIECBAgAABAgQIECBAgAABApUtIACosu+P1hEgQIAAAQIECBAgQIDAWgrcN3deTJg5u8Faeq1e1eDx1j44ZuCAeHDP0TFuu22if9euZWnOgtysSJdMmlKWulRCgAABAgQIECBAgAABAgQIECBAgEDrCggAal1/VydAgAABAgQIECBAgACBdSjw3rLlcdYLLzd6hRV/+kMs/s6Zsez//TZWz294+axGK1tHBao6d45jtxgST4zZM04YukV07dRpra/0mxkz45WPFqx1PSogQIAAAQIECBAgQIAAAQIECBAgQKB1BQQAta6/qxMgQIAAAQIECBAgQIDAOhQ4+8WX4716lrnaYNnSaldeM29urLj3nlhyzpmx/M93VztWSTvr52YAunibEfHw3p+Pr2wycK2atjp39oWvTlqrOpxMgAABAgQIECBAgAABAgQIECBAgEDrCwgAav17oAUECBAgQIAAAQIECBAgsA4E/t/MWfGX3PJfdW2d1qyJw6fVs/xVLmBo+a0TYun462LN6hQiU5nblr17x4077xh3fG6XGNq7V7Mb+fj7H8Td78xp9vlOJECAAAECBAgQ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uPbaa+2WW25xaI488kg76qijcmLKpreR/uWFF15wx7766qs2ceLErOW89tprqX3obVIo2IAABCAAAQhAAAIQgAAEIAABCLQpAoQAq8LLrTjwXpmzbNkye/bZZ3O2wiudlOkb3/hGKq/KGT9+vPs9Y8YMe+edd1L70jceeOCBVNI222yT2mYDAhCAAAQgAAEIQAACEIAABCAAAQhAoJHAFltskfrx+OOPW319fep3+sZLL71kb7/9tkuW95+wB6CwwU9YL5NehsJ/vfzyyy55vfXWM0KApRPiNwQgAAEIQAACEIAABCAAAQhAoG0QwACoSq9z2JDnsssus4ULF2ZsyR133JHy7jNq1CibNGlSk3x77rln6vdFF12UsZynn37a7r33XpdP7qe33nrr1DFsQAACEIAABCAAAQhAAAIQgAAEIAABCDQSGDt2rPXo0cMlvPfee3bbbbc17gxtKazXJZdckko59thjrX379qnf0uPIoEfyxBNPWCYjIIWGP//8852XaOU79NBD9YVAAAIQgAAEIAABCEAAAhCAAAQg0AYJYABUpRf9wAMPNCmUJHPmzLEf/vCH9uSTT7q48Io1/+6779q5555rMg6SKFTYCSecYDU1Ne63/zNhwoSUFyCtOFOeF1980aRAmjt3rt1+++122mmnOUWSjj3mmGOaleHL4hsCEIAABCAAAQhAAAIQgAAEIAABCLR1Ah07drQzzjgjheHKK690hj6ffPKJ8wYkw5+HH37YjjjiCPvggw9cvq222sq23Xbb1DF+46STTvKbTs9z4403msqR7kdhvyZPnpwKEyZv0dtvv30qPxsQgAAEIAABCEAAAhCAAAQgAAEItC0CtW2rua2ntbW1tXb22Wc7g52ZM2faxx9/bKeeeqproPZJEeSlX79+Tkm0/vrr+6Qm31OmTLGpU6fa888/b1qZduKJJ7oVZytXrmyS7/jjjzfCfzVBwg8IQAACEIAABCAAAQhAAAIQgAAEINCMgLwn/+hHP7Jrr73WVq1aZXfddZf7aIGWwrmHZf/99zfpXDLJmDFjnP7nvPPOsyVLlth1113nPvIUFNbbDBo0yC644AJr1461fpk4kgYBCEAAAhCAAAQgAAEIQAACEGgLBNAKVPFV7tu3r910000mF9Fdu3ZNtcQb//Ts2dN22GEHpxjKZvyjg+SW+uKLL7bDDz/c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dHpkgLgT7Q6Bd+PYyne/jZz0W1TPyUm/SBE5iZ19TjrppLDjjjtmo8a99tpr2d+f7373u1knoP7WdNecdhd7PLwu+72LeF3y5t0v0HhOTvptvC77LarnhmtOqp9HJx8bAaiTuuouTGCrrbbK9tXXO7TdHcd6YuefOO20007tVtdwe+3upeHdMCLZCjmRk+YJ6V0rJ8XmJO5tgw02COedd17Ydttts51fdtll4e677+5tSBf/q93FHRyvy15rf+ebZ05O5KR5QnrXyomcpOREGQLdKtB3Dlu6dGlut1m/9957s6dbxDUb7Q6Bd+NXl3z328hJv0X1nJz0ixSRk769HXHEEdkXt+LjF154IXz5y18OsTNQt0/aXcwR8rrsdy7idcmbd79A4zk56bfxuuy3qJ4brjmpfh6dfKwDUCd11V2YwM4775zt66abbipdlBjszl966aVw0UUXZZvHD0m33HLLwVbVcjvtDoF3y5gEOZGT1ikJcrIOqcjzSd8xmThxYjjttNOyYaV7enqyi0krVqzoW921v7W7mEPj/F3s65I375RXtpzIyes5JynPTRkCQyEQO+n03Ybl/PPPD2vXrm2rGdOnTw9z5szJ6pg2bVpbdTXbWLt7dXg3S0nvFwflOwQ5kZPmAsWeT8rbctRRR4X9998/W3TPPfeEq6++unx1185rd+cPjb/zvcbO382zJidy0jwhvWvlRE5SclJkmVH/um4qcof2RaATAlOnTg3XXXdddhHp1ltvzUZl2GGHHbLbeA1kfw8//HA488wzwx//+Mdss3iv4H322WcgVQyorHbzTgmMnMiJnLQWKPr8Xd6iePvJF198MTz44INh5cqVYfz48WHPPfcsL9KV89rd+cPi/O38nZIyOZETOWktUPTf+eH6umwtqQSBoRFYf/31w1NPPRXia3nBggXZNZd4W5aNNtpoQA2Kt/uKH9xecMEF2XaTJ08Op5xySoid2zsxaTfvlFzJiZzISWuBos/f1S2K12huuOGG7LODhx56KBx99NFhvfXWqy7WdY+1u7OHxPnb+TslYXIiJ3LSWqDov/PD9XXZWjK/EiPWfVu9J7/q1ERg6ASuvPLKcMkll5QaED+A3XvvvbN7/cZRfOKFpXgf3TFjxmS391q9enWIozTEewUuWrQozJ49Ozz22GOl7ffdd99w9tlnh5EjOztQlnb3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+WT405/+1LdZ9jt+0/6f//mfQxzVudOTdodsZAPezZMmJ3LSPCG9a+VETuQkZLc776a/8zfccEP4xje+UXFo4nuRLbbYImy22WZhwoQJ2TWbOFLz6tWrs+s28fOmeH1t2bJlFdvFkZzPPvvsbLuKFR14oN0hGzmbd/NwyYmcNE9I71o5KTYnKcek3TI6ALUraPuuEIhDMZ5wwgnZBaF48ef9739/+D//5/+EjTbaqNS++IHaVVddFS677LLsA7b4pu7tb397tn7t2rXhtttuCz/72c/CnXfemS2LnVLihanNN9+8VEfeM9rNOyVTciIncuL8nZKBlDLOJ8WeT+JoP6eeemp44IEHssMTOx8ff/zx2e0ryt+jNDp28f1JHHZ15syZYfr06dn7l1g2voeJtwTr1KTdvFOyJSdyIieNBYbq/N24RdYQGHqBW265JZxxxhlZQ2Knn9jJNn45q/wWpw899FD41re+FebOnRv233//8NWvfjXrHBQ3WrRoUXbNJl636bvV+1/91V9lIzh38tlpN++UfMmJnMiJ83dKBlLKOJ8Uez6JI6N88YtfzG5HGjv9HH300eFd73pX2GmnnULs8NNqevbZZ7PPk6688srw+OOPZ8V32WWXcOmll7batK312s07JUByIidy0lhgqM7fjVuU85p1HwSZCAx7gXVvjHsOOuig7OenP/1p0+ez7h7zWbnDDjusZ92HajVl13X6KdV1zjnn1KzPc4F29/Twbp0oOZGT1inp6ZETOZGTXoFu+ju/7gOq0nuKdReUetaN8JNymOqWmTVrVs/BBx+c1bfum3Jt1VV3B2ULtbunh3dZIBrMyomcNIhGxWI5KTYnFfgeEOgygY9+9KPZ+5h1nXZ61o3007B18f3SySefnJX9whe+UFNu3YhAPccee2y2/p3vfGfPulETa8rkuUC7eafkSU7kRE56sv+jOn+nJKF5GeeTYs8nxxxzTPae4vDDD++5//77mx+cJmtXrVrVc8opp2R1xc+pbrrppial21+l3bxTUiQnciInrQWKPn+3blE+JTo/Tm7OHZZUR6CewLoLy9nifffdNxv9p16ZvmX77LNPdj/WdS/q7L7zfcv7fn/kIx8JH/jAB7KHsd54G45OTdodAu/W6ZITOWmdkpB9GzaWcx50/m6WF+eTYs8n6y4eZYdjhx12yL7x3s4tKuKI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B2/eKWGREzmRk8YC/l42tqm3xvnE+aReLqqXyYmcVGei3mM5kZN6ubCMwHAS+PCHPxwuvPDCsN1225WanXrdJt7G4JJLLgknnnhi6ZpPqZIOz2h37zW2DjOXqufNuxSGJjNyIidN4lFaJSdyUgpDkxk5kZMm8SitkhM5KYWhyYycyEmTeBS6akTPuqnQPdoZgQIE1q5dG+bNmxdWrFgR9ttvvwHvccaMGeG6664L8+fPDzNnzhzw9oPdQLt5p2RHTuREThoLOH83tqm3xvnE+aReLqqXyYmcVGei3mM5kZN6uaheJifF5qTa32MC3SQQR/KJtwSP12xi556BTHH0oPgFsLlz54YjjzwyfPSjHx3I5m2V1W7eKQGSEzmRk/oCzt/1XZotdT5xPmmWj751ciInfVlo9ltO5KRZPvrWyUmxOelzz/u3DkB5i6qPAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIECbgFWILZdESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMhbQAegvEXVR4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBAAR2ACsS2KwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ5C+gAlLeo+ggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUKKADUIHYdkWAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgbwEdgPIWVR8BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBAgV0ACoQ264IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5C2gA1DeouojQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUKCADkAFYtsVAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbwFdADKW1R9BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAoU0AGoQGy7IkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJC3gA5AeYuqjwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECBAjoAFYhtVwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTyFtABKG9R9REgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoUEAHoAKx7YoAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA3gI6AOUtqj4CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBQroAFQgtl0RIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyFtAB6C8RdVHgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoEABHYAKxLYrAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAnkL6ACUt6j6CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBQooANQgdh2RYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBvAR2A8hZVHwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIECBXQAKhDbrggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkLaADUN6i6iNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQoIAOQAVi2xUBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBvAV0AMpbVH0ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEChTQAahAbLsiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkLeADkB5i6qPAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIECOgAViG1XBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPIW0AEob1H1ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEChQQAegArHtigABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDeAjoA5S2qPgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIFCugAVCC2XREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIW0AHoLxF1UeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgQAEdgArEtisCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECeQvoAJS3qPoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFCigA1CB2HZFgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIG8BHYDyFlUfAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQIFdAAqENuuCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQtoANQ3qLqI0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIFCggA5ABWLbFQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIG8BXQAyltUfQQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQKFNABqEBsuyJAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECCQt4AOQHmLqo8AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAgQI6ABWIbVcECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIE8hbQAShvUfURIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKFBAB6ACse2KAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQN4COgDlLao+AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgUK6ABUILZdESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEMhbQAegvEXVR4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKBAAR2ACsS2KwIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQJ5C+gAlLeo+ggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgUKKADUIHYdkWAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIEAgbwEdgPIWVR8BAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBAgV0ACoQ264IECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQI5C2gA1DeouojQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgUKCADkAFYtsVAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgbwFdADKW1R9BAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAoU0AGoQGy7IkCAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIJC3gA5AeYuqjwABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgECBAjoAFYhtVwQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgTyFtABKG9R9REgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAoUEAHoAKx7YoAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIBA3gI6AOUtqj4CBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBQroAFQgtl0RIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQyFtAB6C8RdVHgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoEABHYAKxLYrAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAnkL6ACUt6j6CBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBQooANQgdh2RYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQCBvAR2A8hZVHwECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIECBXQAKhDbrggQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAjkLaADUN6i6iNAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBQoIAOQAVi2xUBAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBvAV0AMpbVH0ECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEChTQAahAbLsiQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgkLeADkB5i6qPAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQIECOgAViG1XBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBPIW0AEob1H1ESBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEChQQAegArHtigABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgEDeAjoA5S2qPgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIFCugAVCC2XREgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBDIW0AHoLxF1UeAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgQAEdgArEtisCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECeQvoAJS3qPoIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIFCigA1CB2HZFgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAIG8BHYDyFlUfAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgQIFdAAqENuuCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECOQtMDrvCtVHgAABAgQIECBAgAABAgQIECBQKfDMM8+EGTNmhHvvvTfE+aeffjo8++yzYeLEiWHq1Klhu+22K/0cdNBBYfz48ZUVDOLR2rVrwx/+8IeKLUeOHBl22223imVD8WDu3Llh5syZYf78+ZlFNFm+fHnYdNNNw+abb5797LDDDuHII4/MfIaijfaZj8CLL74YHn/88YrKxo4dG97ylrdULBvog0ceeSS8/PLLNZu9+c1vDpMnT65Znrrg+eefDwsWLKgovsEGG2Svz76FXlt9En4TIECAAAECBAgQIECAQDcJjOhZN3VTg7SFAAECBAgQIECAAAECBAgQIPB6EFixYkW46KKLwjXXXBN+//vfh9RLMBtvvHE44YQTwj/8wz+01fkldjLaYostKignTJgQYruGYlq4cGH4+te/Hn7605+GJ554IrkJu+yyS3j/+98fPvOZz4QpU6Ykb6dgdwg8+OCDNZ3Oxo0bF1544YUwZsyYQTUydsDZbLPNQuysUz19/vOfD2eddVb14uTHX/ziF8OXvvSlivIxe+ecc05pmddWicIMAQIECBAgQIAAAQIECHSRgFuAddHB0BQCBAgQIECAAAECBAgQIEBg+AvEzgn//u//HuIINqeddlq46667kjv/xGe/dOnScPbZZ4cdd9wx6/gya9asYY2ycuXKrEPFzjvvnHWIGkjnn/jE4yhG3/jGN7IRY84999ywZs2aYe3xRmv8rrvuGt70pjdVPO1Vq1aFu+++u2LZQB787ne/q9v5J9YRR9pqZ7r11ltrNn/3u99ds6wbFnhtdcNR0AYCBAgQIECAAAECBAh0j4AOQN1zLLSEAAECBAgQIECAAAECBAgQGOYC8ZZWe++9dzZ6TxwlpJ3ptddeCz/72c/CwQcfHL71rW+1U9WQbRtHeTnggANCHFWl3u2aBtKweCupf/zHfwz7779/WLZs2UA2VXaIBQ477LCaFvzmN7+pWZa64Be/+EXDorNnzw5PPfVUw/XNVqxevTrccccdFUXiaEV/9md/VrGsGx54bXXDUdAGAgQIECBAgAABAgQIdJfA6O5qjtYQIECAAAECBAgQIECAAAECBIanQByV5KijjgrPPPNMwyew4YYbhne84x3ZiCjxdlbLly8Pjz76aPbz2GOPhVdeeaVm2zii0CmnnBLuvffe8O1vfzuMHTu2pkw3LoijvHzgAx8IsUNGo2nSpElhq622yn423XTTEDtNPf744yHeLix2xqg3RYfofOONN4bx48fXK/K6WHb9k4vD+9+0RRg1YsSwfz6xA9D/+3//r+J53H777eGzn/1sxbLUB81G+Ym32ps5c2b4yEc+klpdqdydd94ZYm7Lp4MOOqjrcua1VX6EzBMgQIAAAQIECBAgQIBAn4AOQH0SfhMgQIAAAQIECBAgQIAAAQIEBikQOxwcffTRId6S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ynodgKo73jRq5vPPPx9+97vfVawu7/Tztre9LWy66aYV66s7DFWsLHswZ86cEOsvn7rt9l+xbV5b5UfIPAECBAgQIECAAAECBAhUC+gAVC3iMQECBAgQIECAAAECBAgQIDAggZ6XXgqrzj83hHWj4gx0Wvub28Pqn/9soJsNefnbbrutpg1HHnlkiLc56tT053/+5zVV33///SH+dNt00EEH1TQpdmDqxluW1TR0CBZ88cGH1o3u03o0rPPWjRL0bJNRgoag6QPa5Tve8Y6sE0v5Rr/5zW/KHzac/+UvfxleffXV0vr11lsvxFGg+qaRI0eG6g5GN954Y9LIU7fccktfNaXf3dgBKDbOa6t0iMwQIECAAAECBAgQIECAQJWADkBVIB4SIECAAAECBAgQIECAAAECAxNYff21oWfZ0oFtVFZ69XXXhNeeX1a2pPtnb7311ppG7r///jXL8lywyy67hLe85S01VV577bU1y4Z6wamnnlrThOeeey67dddXvvKVmtGTagq/gRbctuS5MOPpytGkGj395WtfDWc99MdGq7t++ZgxY8Kf/dmfVbTz7rvvXtd3sHXnwRkzZlRsFzsTTZo0qWJZ+YhAcUUcpSvW32qqfj3HkXbqdbRpVU8R6722ilC2DwIECBAgQIAAAQIECAxPgdHDs9laTYAAAQIECBAgQIAAAQIECHRa4LWlz4WwcmXT3fS8vCKsuelXTcu0XLl6dVj9k6vDmPe8t2XREZtPCSPWjfwxlNMr60Zgueuuu2qasN9++9Usy3vBe9/73vDHP1Z2AHnkkUfy3k3b9R1wwAHhiCOOCNWdNpYvXx6+8IUvhC9/+cvhXe96V4ijGsVy22yzTdv77JYKFry8MrxcNlJNs3a91tMTPjfngWZFatZduWBROHSzTcNbNtigZl2jBTtMnBBGrxshpxumeNzLc7F63es/vp7+1//6X02bN3PmzIr11Z194sp6o/bEfb397W+v2Lb8Qc+6Y1DdAejggw8O8bZ73Ti9kV9b3Xg8tIkAAQIECBAgQIAAAQLdJKADUDcdDW0hQIAAAQIECBAgQIAAAQJdJPDKj34YXr239egZeTR57e23hvjTahr//30tjNr6za2KdXT9E088EWInoOrpbW97W/Wi3B9vt912NXU++eSTNcu6YcFVV10VDjzwwPDAA7UdXGKnj1/84hfZ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fV9mz54d4upaRTy8W0WcNX0mQIAAAQIECBAgQIBAzwoIAPWsr9YJECBAgAABAgQIECBAgACBKhQ46aSTwve+972wadOm0opA48eP75BC3M4qBh5+8pOflO698847S1uFdejmHFeKAaa1a9eGX/7yl+H6668Pxx57bId7O3To0HDZZZeVTGKwqqhhqA4PuEorVgoAxZV/4gpAXT0GDx4cpk+fnmmmO9rONNrLBd6tXgb3OAIECBAgQIAAAQIECORYoOZg05Hj/ukaAQIECBAgQIAAAQIECBAgQKDwAvHPL42NjeGFF14Izz//fOnnxRdfDHGFoAkTJoR3vOMdpd8xGBNX9qiGY/369eHZZ58N27ZtC6+++mrp57XXXgsx8BO3PYs/xxxzTDjjjDMqrt5SDUbGSKAzAt6tzqi5hwABAgQIECBAgAABAsUXEAAq/hwaAQECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAQBUL2AKsiiff0AkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBIovIABU/Dk0AgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSoWEACq4sk3dAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgeILCAAVfw6NgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoIoFBICqePINnQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoPgCAkDFn0MjIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqGIBAaAqnnxDJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKL6AAFDx59AICBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEqlhAAKiKJ9/QCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEii8gAFT8OTQCAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACBKhYQAKriyTd0AgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgACB4gsIABV/Do2AAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECgigUEgKp48g2dAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECg+AICQMWfQyMgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoYgEBoCqefEMnQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAovoAAUPHn0AgIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSqWEAAqIon39AJECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgSKLyAAVPw5NAICBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIEqFhAAquLJN3QCBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAIHiCwgAFX8OjYAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKCKBQSAqnjyDZ0AAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKD4AgJAxZ9DIyBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIEKhiAQGgKp58QydAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECi+gABQ8efQCAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBKpYQACoiiff0AkQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBIovIABU/Dk0AgIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgSoWEACq4sk3dAIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgeILCAAVfw6NgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoIoFBICqePINnQABAgQIECBAgAABAgQIECBAgAABAgQIECBAgAABAgQIECBAoPgCAkDFn0MjIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQqGIBAaAqnnxDJ0CAAAECBAgQIECAAAECBAgQIECAAAECBAgQIECAAAECBAgQKL7A/wG2GD1r3K8ffwAAAABJRU5ErkJggg==" width="1152" /></p>
<div class="sourceCode" id="cb71"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb71-1"><a href="#cb71-1" aria-hidden="true" tabindex="-1"></a><span class="co">#保存</span></span>
<span id="cb71-2"><a href="#cb71-2" aria-hidden="true" tabindex="-1"></a><span class="fu">ggsave</span>(<span class="at">file =</span> <span class="st">&quot;output/graph_job_seeker_total_shock_on_2nd_safetynet_robust.pdf&quot;</span>, <span class="at">plot =</span> graph_2nd_tier_diff_models, </span>
<span id="cb71-3"><a href="#cb71-3" aria-hidden="true" tabindex="-1"></a>       <span class="at">dpi =</span> dpi_num, <span class="at">width =</span> width_num, <span class="at">height =</span> height_num)     </span></code></pre></div>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).

## Warning: Removed 4 rows containing missing values (geom_point).</code></pre>
<pre><code>## Warning: Removed 24 rows containing missing values (geom_point).

## Warning: Removed 24 rows containing missing values (geom_point).</code></pre>
</div>
</div>
</div>
<div id="regression-table回帰結果表-without-covar" class="section level1" number="13">
<h1 number="13"><span class="header-section-number">13</span> Regression table/回帰結果表 without covar</h1>
<div class="sourceCode" id="cb75"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb75-1"><a href="#cb75-1" aria-hidden="true" tabindex="-1"></a><span class="fu">options</span>(<span class="st">&quot;modelsummary_format_numeric_latex&quot;</span> <span class="ot">=</span> <span class="st">&quot;plain&quot;</span>)</span>
<span id="cb75-2"><a href="#cb75-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb75-3"><a href="#cb75-3" aria-hidden="true" tabindex="-1"></a><span class="co"># 列の選択 column order</span></span>
<span id="cb75-4"><a href="#cb75-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb75-5"><a href="#cb75-5" aria-hidden="true" tabindex="-1"></a><span class="co"># 緊急小口、総合支援、住居確保、YOYのみ, monthlyhのみ</span></span>
<span id="cb75-6"><a href="#cb75-6" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb75-7"><a href="#cb75-7" aria-hidden="true" tabindex="-1"></a>rows_MONTH <span class="ot">&lt;-</span> <span class="fu">tribble</span>(<span class="sc">~</span>name, <span class="sc">~</span><span class="st">&quot;(1)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(2)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(3)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(4)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(5)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(6)&quot;</span>, </span>
<span id="cb75-8"><a href="#cb75-8" aria-hidden="true" tabindex="-1"></a><span class="st">&quot;Ref. month&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>,  <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>,<span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>)</span>
<span id="cb75-9"><a href="#cb75-9" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb75-10"><a href="#cb75-10" aria-hidden="true" tabindex="-1"></a><span class="do">## results list</span></span>
<span id="cb75-11"><a href="#cb75-11" aria-hidden="true" tabindex="-1"></a>table_results_MONTH <span class="ot">&lt;-</span> <span class="fu">list</span>()</span>
<span id="cb75-12"><a href="#cb75-12" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(1)&quot;</span>]] <span class="ot">&lt;-</span> results_koguchi_number_WLS</span>
<span id="cb75-13"><a href="#cb75-13" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(2)&quot;</span>]] <span class="ot">&lt;-</span> results_koguchi_number_WLS_onlypost</span>
<span id="cb75-14"><a href="#cb75-14" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(3)&quot;</span>]] <span class="ot">&lt;-</span> results_sogo_number_WLS</span>
<span id="cb75-15"><a href="#cb75-15" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(4)&quot;</span>]] <span class="ot">&lt;-</span> results_sogo_number_WLS_onlypost</span>
<span id="cb75-16"><a href="#cb75-16" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(5)&quot;</span>]] <span class="ot">&lt;-</span> results_jukyo_number_WLS</span>
<span id="cb75-17"><a href="#cb75-17" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(6)&quot;</span>]] <span class="ot">&lt;-</span> results_jukyo_number_WLS_onlypost</span>
<span id="cb75-18"><a href="#cb75-18" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb75-19"><a href="#cb75-19" aria-hidden="true" tabindex="-1"></a><span class="do">## HTML table</span></span>
<span id="cb75-20"><a href="#cb75-20" aria-hidden="true" tabindex="-1"></a><span class="fu">estimates_table_MONTH</span>(<span class="at">df =</span> table_results_MONTH,</span>
<span id="cb75-21"><a href="#cb75-21" aria-hidden="true" tabindex="-1"></a>                      <span class="at">rows =</span> rows_MONTH,</span>
<span id="cb75-22"><a href="#cb75-22" aria-hidden="true" tabindex="-1"></a>                      <span class="at">title_words =</span> <span class="st">&quot;UIbenefit&quot;</span>,</span>
<span id="cb75-23"><a href="#cb75-23" aria-hidden="true" tabindex="-1"></a>                      <span class="at">gof =</span> gm,</span>
<span id="cb75-24"><a href="#cb75-24" aria-hidden="true" tabindex="-1"></a>                      <span class="at">output_style =</span> <span class="st">&quot;html&quot;</span>) <span class="sc">%&gt;%</span></span>
<span id="cb75-25"><a href="#cb75-25" aria-hidden="true" tabindex="-1"></a>    kableExtra<span class="sc">::</span><span class="fu">add_header_above</span>(<span class="fu">c</span>(<span class="st">&quot; &quot;</span> <span class="ot">=</span> <span class="dv">1</span>, <span class="st">&quot;Emergency S.A.&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;General Support&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;Housing Security&quot;</span> <span class="ot">=</span> <span class="dv">2</span>))</span>
<span id="cb75-26"><a href="#cb75-26" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb75-27"><a href="#cb75-27" aria-hidden="true" tabindex="-1"></a><span class="do">## Latex table</span></span>
<span id="cb75-28"><a href="#cb75-28" aria-hidden="true" tabindex="-1"></a><span class="fu">estimates_table_MONTH</span>(<span class="at">df =</span> table_results_MONTH,</span>
<span id="cb75-29"><a href="#cb75-29" aria-hidden="true" tabindex="-1"></a>                      <span class="at">rows =</span> rows_MONTH,</span>
<span id="cb75-30"><a href="#cb75-30" aria-hidden="true" tabindex="-1"></a>                      <span class="at">gof =</span> gm,</span>
<span id="cb75-31"><a href="#cb75-31" aria-hidden="true" tabindex="-1"></a>                      <span class="at">title_words =</span> <span class="st">&quot;DID estimates for suicide rates</span><span class="sc">\\</span><span class="st">label{tab:DID_unemploy_on_suicide}&quot;</span>, </span>
<span id="cb75-32"><a href="#cb75-32" aria-hidden="true" tabindex="-1"></a>                      <span class="at">output_style =</span> <span class="st">&quot;latex&quot;</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb75-33"><a href="#cb75-33" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">add_header_above</span>(<span class="fu">c</span>(<span class="st">&quot; &quot;</span> <span class="ot">=</span> <span class="dv">1</span>, <span class="st">&quot;Emergency S.A.&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;General Support&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;Housing Security&quot;</span> <span class="ot">=</span> <span class="dv">2</span>)) <span class="sc">%&gt;%</span></span>
<span id="cb75-34"><a href="#cb75-34" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">add_footnote</span>(<span class="fu">c</span>(<span class="st">&quot;Notes: Robust standard errors are clustered at the prefecture level and the number of clusters (i.e. prefectures) is 47. The treatment variable is the COVID-19-induced employment shock, which is calculated as equation </span><span class="sc">\\</span><span class="st">eqref{eq:employment_shock}. Estimates are obtained based on equation </span><span class="sc">\\</span><span class="st">eqref{eq:did_model_ver2} with WLS estimation weighted by prefecture population size.&quot;</span>),<span class="at">threeparttable =</span> <span class="cn">TRUE</span>, <span class="at">notation =</span> <span class="st">&quot;none&quot;</span>,<span class="at">escape =</span> <span class="cn">FALSE</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb75-35"><a href="#cb75-35" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">column_spec</span>(<span class="dv">2</span><span class="sc">:</span><span class="dv">7</span>, <span class="at">width =</span> <span class="st">&quot;1.5cm&quot;</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb75-36"><a href="#cb75-36" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">save_kable</span>(<span class="st">&quot;output/job_seeker_total_shock_on_2nd_safetynet_robust_tables.tex&quot;</span>)</span></code></pre></div>
</div>
<div id="regression-table回帰結果表-with-covar" class="section level1" number="14">
<h1 number="14"><span class="header-section-number">14</span> Regression table/回帰結果表 with covar</h1>
<div class="sourceCode" id="cb76"><pre class="sourceCode r"><code class="sourceCode r"><span id="cb76-1"><a href="#cb76-1" aria-hidden="true" tabindex="-1"></a><span class="co"># 列の選択 column order</span></span>
<span id="cb76-2"><a href="#cb76-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb76-3"><a href="#cb76-3" aria-hidden="true" tabindex="-1"></a><span class="co"># 緊急小口、総合支援、住居確保、YOYのみ, monthlyhのみ</span></span>
<span id="cb76-4"><a href="#cb76-4" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb76-5"><a href="#cb76-5" aria-hidden="true" tabindex="-1"></a>rows_MONTH <span class="ot">&lt;-</span> <span class="fu">tribble</span>(<span class="sc">~</span>name, <span class="sc">~</span><span class="st">&quot;(1)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(2)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(3)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(4)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(5)&quot;</span>, <span class="sc">~</span><span class="st">&quot;(6)&quot;</span>, </span>
<span id="cb76-6"><a href="#cb76-6" aria-hidden="true" tabindex="-1"></a><span class="st">&quot;Ref. month&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>,  <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>,<span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{Jan.2020}&quot;</span>, <span class="st">&quot;</span><span class="sc">\\</span><span class="st">footnotesize{$</span><span class="sc">\\</span><span class="st">leq$Jan.2020}&quot;</span>)</span>
<span id="cb76-7"><a href="#cb76-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb76-8"><a href="#cb76-8" aria-hidden="true" tabindex="-1"></a><span class="do">## results list</span></span>
<span id="cb76-9"><a href="#cb76-9" aria-hidden="true" tabindex="-1"></a>table_results_MONTH <span class="ot">&lt;-</span> <span class="fu">list</span>()</span>
<span id="cb76-10"><a href="#cb76-10" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(1)&quot;</span>]] <span class="ot">&lt;-</span> results_koguchi_number_WLS_covar</span>
<span id="cb76-11"><a href="#cb76-11" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(2)&quot;</span>]] <span class="ot">&lt;-</span> results_koguchi_number_WLS_covar_onlypost</span>
<span id="cb76-12"><a href="#cb76-12" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(3)&quot;</span>]] <span class="ot">&lt;-</span> results_sogo_number_WLS_covar</span>
<span id="cb76-13"><a href="#cb76-13" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(4)&quot;</span>]] <span class="ot">&lt;-</span> results_sogo_number_WLS_covar_onlypost</span>
<span id="cb76-14"><a href="#cb76-14" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(5)&quot;</span>]] <span class="ot">&lt;-</span> results_jukyo_number_WLS_covar</span>
<span id="cb76-15"><a href="#cb76-15" aria-hidden="true" tabindex="-1"></a>table_results_MONTH[[<span class="st">&quot;(6)&quot;</span>]] <span class="ot">&lt;-</span> results_jukyo_number_WLS_covar_onlypost</span>
<span id="cb76-16"><a href="#cb76-16" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb76-17"><a href="#cb76-17" aria-hidden="true" tabindex="-1"></a><span class="do">## HTML table</span></span>
<span id="cb76-18"><a href="#cb76-18" aria-hidden="true" tabindex="-1"></a><span class="fu">estimates_table_MONTH</span>(<span class="at">df =</span> table_results_MONTH,</span>
<span id="cb76-19"><a href="#cb76-19" aria-hidden="true" tabindex="-1"></a>                      <span class="at">rows =</span> rows_MONTH,</span>
<span id="cb76-20"><a href="#cb76-20" aria-hidden="true" tabindex="-1"></a>                      <span class="at">title_words =</span> <span class="st">&quot;UIbenefit&quot;</span>,</span>
<span id="cb76-21"><a href="#cb76-21" aria-hidden="true" tabindex="-1"></a>                      <span class="at">gof =</span> gm,</span>
<span id="cb76-22"><a href="#cb76-22" aria-hidden="true" tabindex="-1"></a>                      <span class="at">output_style =</span> <span class="st">&quot;html&quot;</span>) <span class="sc">%&gt;%</span></span>
<span id="cb76-23"><a href="#cb76-23" aria-hidden="true" tabindex="-1"></a>    kableExtra<span class="sc">::</span><span class="fu">add_header_above</span>(<span class="fu">c</span>(<span class="st">&quot; &quot;</span> <span class="ot">=</span> <span class="dv">1</span>, <span class="st">&quot;Emergency S.A.&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;General Support&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;Housing Security&quot;</span> <span class="ot">=</span> <span class="dv">2</span>))</span>
<span id="cb76-24"><a href="#cb76-24" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb76-25"><a href="#cb76-25" aria-hidden="true" tabindex="-1"></a><span class="do">## Latex table</span></span>
<span id="cb76-26"><a href="#cb76-26" aria-hidden="true" tabindex="-1"></a><span class="fu">estimates_table_MONTH</span>(<span class="at">df =</span> table_results_MONTH,</span>
<span id="cb76-27"><a href="#cb76-27" aria-hidden="true" tabindex="-1"></a>                      <span class="at">rows =</span> rows_MONTH,</span>
<span id="cb76-28"><a href="#cb76-28" aria-hidden="true" tabindex="-1"></a>                      <span class="at">gof =</span> gm,</span>
<span id="cb76-29"><a href="#cb76-29" aria-hidden="true" tabindex="-1"></a>                      <span class="at">title_words =</span> <span class="st">&quot;DID estimates for suicide rates</span><span class="sc">\\</span><span class="st">label{tab:DID_unemploy_on_suicide}&quot;</span>, </span>
<span id="cb76-30"><a href="#cb76-30" aria-hidden="true" tabindex="-1"></a>                      <span class="at">output_style =</span> <span class="st">&quot;latex&quot;</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb76-31"><a href="#cb76-31" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">add_header_above</span>(<span class="fu">c</span>(<span class="st">&quot; &quot;</span> <span class="ot">=</span> <span class="dv">1</span>, <span class="st">&quot;Emergency S.A.&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;General Support&quot;</span> <span class="ot">=</span> <span class="dv">2</span>, <span class="st">&quot;Housing Security&quot;</span> <span class="ot">=</span> <span class="dv">2</span>)) <span class="sc">%&gt;%</span></span>
<span id="cb76-32"><a href="#cb76-32" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">add_footnote</span>(<span class="fu">c</span>(<span class="st">&quot;Notes: Robust standard errors are clustered at the prefecture level and the number of clusters (i.e. prefectures) is 47. The treatment variable is the COVID-19-induced employment shock, which is calculated as equation </span><span class="sc">\\</span><span class="st">eqref{eq:employment_shock}. Estimates are obtained based on equation </span><span class="sc">\\</span><span class="st">eqref{eq:did_model_ver2} with WLS estimation weighted by prefecture population size.&quot;</span>),<span class="at">threeparttable =</span> <span class="cn">TRUE</span>, <span class="at">notation =</span> <span class="st">&quot;none&quot;</span>,<span class="at">escape =</span> <span class="cn">FALSE</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb76-33"><a href="#cb76-33" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">column_spec</span>(<span class="dv">2</span><span class="sc">:</span><span class="dv">7</span>, <span class="at">width =</span> <span class="st">&quot;1.5cm&quot;</span>) <span class="sc">%&gt;%</span> </span>
<span id="cb76-34"><a href="#cb76-34" aria-hidden="true" tabindex="-1"></a>  kableExtra<span class="sc">::</span><span class="fu">save_kable</span>(<span class="st">&quot;output/job_seeker_total_shock_on_2nd_safetynet_robust_covar_tables.tex&quot;</span>)</span></code></pre></div>
</div>



</div>
</div>

</div>

<script>

// add bootstrap table styles to pandoc tables
function bootstrapStylePandocTables() {
  $('tr.odd').parent('tbody').parent('table').addClass('table table-condensed');
}
$(document).ready(function () {
  bootstrapStylePandocTables();
});


</script>

<!-- tabsets -->

<script>
$(document).ready(function () {
  window.buildTabsets("TOC");
});

$(document).ready(function () {
  $('.tabset-dropdown > .nav-tabs > li').click(function () {
    $(this).parent().toggleClass('nav-tabs-open');
  });
});
</script>

<!-- code folding -->
<script>
$(document).ready(function () {
  window.initializeCodeFolding("hide" === "show");
});
</script>

<script>
$(document).ready(function ()  {

    // move toc-ignore selectors from section div to header
    $('div.section.toc-ignore')
        .removeClass('toc-ignore')
        .children('h1,h2,h3,h4,h5').addClass('toc-ignore');

    // establish options
    var options = {
      selectors: "h1,h2,h3",
      theme: "bootstrap3",
      context: '.toc-content',
      hashGenerator: function (text) {
        return text.replace(/[.\\/?&!#<>]/g, '').replace(/\s/g, '_');
      },
      ignoreSelector: ".toc-ignore",
      scrollTo: 0
    };
    options.showAndHide = true;
    options.smoothScroll = true;

    // tocify
    var toc = $("#TOC").tocify(options).data("toc-tocify");
});
</script>

<!-- dynamically load mathjax for compatibility with self-contained -->
<script>
  (function () {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src  = "https://mathjax.rstudio.com/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML";
    document.getElementsByTagName("head")[0].appendChild(script);
  })();
</script>

</body>
</html>
